From 66b4e630652648bb0e71f043521a5cfb7907dec3 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Thu, 3 Aug 2023 12:01:34 +0200 Subject: [PATCH 001/336] `containerapps`: updating to API version `2022-03-01` --- internal/services/containerapps/client/client.go | 12 ++++++------ .../containerapps/container_app_data_source.go | 4 ++-- ...tainer_app_environment_certificate_data_source.go | 2 +- ...container_app_environment_certificate_resource.go | 4 ++-- ...iner_app_environment_certificate_resource_test.go | 2 +- ...tainer_app_environment_dapr_component_resource.go | 2 +- ...r_app_environment_dapr_component_resource_test.go | 2 +- .../container_app_environment_data_source.go | 2 +- .../container_app_environment_resource.go | 2 +- .../container_app_environment_resource_test.go | 2 +- .../container_app_environment_storage_resource.go | 2 +- ...ontainer_app_environment_storage_resource_test.go | 2 +- .../services/containerapps/container_app_resource.go | 4 ++-- .../containerapps/container_app_resource_test.go | 2 +- .../services/containerapps/helpers/container_apps.go | 6 +++--- 15 files changed, 25 insertions(+), 25 deletions(-) diff --git a/internal/services/containerapps/client/client.go b/internal/services/containerapps/client/client.go index 30703667ec97..c7a5e0726a77 100644 --- a/internal/services/containerapps/client/client.go +++ b/internal/services/containerapps/client/client.go @@ -4,12 +4,12 @@ package client import ( - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages" "github.com/hashicorp/terraform-provider-azurerm/internal/common" ) diff --git a/internal/services/containerapps/container_app_data_source.go b/internal/services/containerapps/container_app_data_source.go index b8249b39ac3a..cf8abced4163 100644 --- a/internal/services/containerapps/container_app_data_source.go +++ b/internal/services/containerapps/container_app_data_source.go @@ -14,8 +14,8 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" "github.com/hashicorp/terraform-provider-azurerm/internal/services/containerapps/helpers" diff --git a/internal/services/containerapps/container_app_environment_certificate_data_source.go b/internal/services/containerapps/container_app_environment_certificate_data_source.go index ecf6120976d6..a97647580778 100644 --- a/internal/services/containerapps/container_app_environment_certificate_data_source.go +++ b/internal/services/containerapps/container_app_environment_certificate_data_source.go @@ -12,7 +12,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" "github.com/hashicorp/terraform-provider-azurerm/internal/services/containerapps/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" diff --git a/internal/services/containerapps/container_app_environment_certificate_resource.go b/internal/services/containerapps/container_app_environment_certificate_resource.go index 8b3685f86e37..89062c0e65e1 100644 --- a/internal/services/containerapps/container_app_environment_certificate_resource.go +++ b/internal/services/containerapps/container_app_environment_certificate_resource.go @@ -12,8 +12,8 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" "github.com/hashicorp/terraform-provider-azurerm/internal/services/containerapps/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" diff --git a/internal/services/containerapps/container_app_environment_certificate_resource_test.go b/internal/services/containerapps/container_app_environment_certificate_resource_test.go index 57b71789f665..b1f925820982 100644 --- a/internal/services/containerapps/container_app_environment_certificate_resource_test.go +++ b/internal/services/containerapps/container_app_environment_certificate_resource_test.go @@ -10,7 +10,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/containerapps/container_app_environment_dapr_component_resource.go b/internal/services/containerapps/container_app_environment_dapr_component_resource.go index 69274e22e1f3..6ffe8538b74c 100644 --- a/internal/services/containerapps/container_app_environment_dapr_component_resource.go +++ b/internal/services/containerapps/container_app_environment_dapr_component_resource.go @@ -10,7 +10,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" "github.com/hashicorp/terraform-provider-azurerm/internal/services/containerapps/helpers" "github.com/hashicorp/terraform-provider-azurerm/internal/services/containerapps/validate" diff --git a/internal/services/containerapps/container_app_environment_dapr_component_resource_test.go b/internal/services/containerapps/container_app_environment_dapr_component_resource_test.go index ad9fa4b8a47c..2d14bc2cc4d3 100644 --- a/internal/services/containerapps/container_app_environment_dapr_component_resource_test.go +++ b/internal/services/containerapps/container_app_environment_dapr_component_resource_test.go @@ -10,7 +10,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/containerapps/container_app_environment_data_source.go b/internal/services/containerapps/container_app_environment_data_source.go index 60086f241f6f..9f5281c38adf 100644 --- a/internal/services/containerapps/container_app_environment_data_source.go +++ b/internal/services/containerapps/container_app_environment_data_source.go @@ -13,7 +13,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" diff --git a/internal/services/containerapps/container_app_environment_resource.go b/internal/services/containerapps/container_app_environment_resource.go index c915e7bed6a2..e03e08efb839 100644 --- a/internal/services/containerapps/container_app_environment_resource.go +++ b/internal/services/containerapps/container_app_environment_resource.go @@ -14,7 +14,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments" "github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" "github.com/hashicorp/terraform-provider-azurerm/internal/services/containerapps/validate" diff --git a/internal/services/containerapps/container_app_environment_resource_test.go b/internal/services/containerapps/container_app_environment_resource_test.go index 15a0990e373d..323ae5dd2b11 100644 --- a/internal/services/containerapps/container_app_environment_resource_test.go +++ b/internal/services/containerapps/container_app_environment_resource_test.go @@ -10,7 +10,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/containerapps/container_app_environment_storage_resource.go b/internal/services/containerapps/container_app_environment_storage_resource.go index 52096a95bc8c..ce2bdf2332d2 100644 --- a/internal/services/containerapps/container_app_environment_storage_resource.go +++ b/internal/services/containerapps/container_app_environment_storage_resource.go @@ -10,7 +10,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" "github.com/hashicorp/terraform-provider-azurerm/internal/services/containerapps/validate" storageValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/storage/validate" diff --git a/internal/services/containerapps/container_app_environment_storage_resource_test.go b/internal/services/containerapps/container_app_environment_storage_resource_test.go index f54c6bd43bfe..1bb100f92204 100644 --- a/internal/services/containerapps/container_app_environment_storage_resource_test.go +++ b/internal/services/containerapps/container_app_environment_storage_resource_test.go @@ -10,7 +10,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/containerapps/container_app_resource.go b/internal/services/containerapps/container_app_resource.go index 272c8520de26..a117f56789c6 100644 --- a/internal/services/containerapps/container_app_resource.go +++ b/internal/services/containerapps/container_app_resource.go @@ -15,8 +15,8 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" "github.com/hashicorp/terraform-provider-azurerm/internal/services/containerapps/helpers" diff --git a/internal/services/containerapps/container_app_resource_test.go b/internal/services/containerapps/container_app_resource_test.go index 05f00e35846d..ade9bad6aac0 100644 --- a/internal/services/containerapps/container_app_resource_test.go +++ b/internal/services/containerapps/container_app_resource_test.go @@ -11,7 +11,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/containerapps/helpers/container_apps.go b/internal/services/containerapps/helpers/container_apps.go index dd034ddbbe3a..7f61fd3fd2c9 100644 --- a/internal/services/containerapps/helpers/container_apps.go +++ b/internal/services/containerapps/helpers/container_apps.go @@ -8,9 +8,9 @@ import ( "strings" "github.com/hashicorp/go-azure-helpers/lang/pointer" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents" - "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents" + "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" "github.com/hashicorp/terraform-provider-azurerm/internal/services/containerapps/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" From b984b62853fd390206371c3bec6e2f91e819fc03 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Thu, 3 Aug 2023 12:08:50 +0200 Subject: [PATCH 002/336] go mod vendor --- .../2022-03-01/certificates/README.md | 111 ---- .../2022-03-01/containerapps/constants.go | 276 --------- .../containerapps/model_configuration.go | 12 - .../containerapps/model_containerapp.go | 20 - .../2022-03-01/containerapps/model_dapr.go | 11 - .../2022-03-01/containerapps/model_ingress.go | 14 - .../containerapps/model_template.go | 11 - .../2022-03-01/containerapps/model_volume.go | 10 - .../2022-03-01/containerapps/predicates.go | 32 -- .../containerappsrevisions/model_template.go | 11 - .../2022-03-01/daprcomponents/README.md | 106 ---- .../model_daprcomponentproperties.go | 14 - .../model_managedenvironmentproperties.go | 16 - .../2023-05-01/certificates/README.md | 202 +++++++ .../certificates/client.go | 0 .../certificates/constants.go | 0 .../certificates/id_certificate.go | 0 .../certificates/id_connectedenvironment.go | 127 +++++ .../id_connectedenvironmentcertificate.go | 140 +++++ .../certificates/id_managedenvironment.go | 0 ...entscertificatescreateorupdate_autorest.go | 69 +++ ...environmentscertificatesdelete_autorest.go | 66 +++ ...tedenvironmentscertificatesget_autorest.go | 68 +++ ...edenvironmentscertificateslist_autorest.go | 186 ++++++ ...environmentscertificatesupdate_autorest.go | 69 +++ .../method_createorupdate_autorest.go | 0 .../certificates/method_delete_autorest.go | 0 .../certificates/method_get_autorest.go | 0 .../certificates/method_list_autorest.go | 0 .../certificates/method_update_autorest.go | 0 .../certificates/model_certificate.go | 0 .../certificates/model_certificatepatch.go | 0 .../model_certificateproperties.go | 21 +- .../certificates/predicates.go | 0 .../certificates/version.go | 2 +- .../containerapps/README.md | 128 ++++- .../containerapps/client.go | 0 .../2023-05-01/containerapps/constants.go | 536 ++++++++++++++++++ .../containerapps/id_containerapp.go | 0 .../2023-05-01/containerapps/id_detector.go | 140 +++++ .../containerapps/id_revisionsapirevision.go | 142 +++++ .../method_createorupdate_autorest.go | 0 .../containerapps/method_delete_autorest.go | 0 .../method_diagnosticsgetdetector_autorest.go | 68 +++ .../method_diagnosticsgetrevision_autorest.go | 68 +++ .../method_diagnosticsgetroot_autorest.go | 69 +++ ...ethod_diagnosticslistdetectors_autorest.go | 186 ++++++ ...ethod_diagnosticslistrevisions_autorest.go | 215 +++++++ .../containerapps/method_get_autorest.go | 0 .../method_getauthtoken_autorest.go | 69 +++ .../method_listbyresourcegroup_autorest.go | 0 .../method_listbysubscription_autorest.go | 0 ...hod_listcustomhostnameanalysis_autorest.go | 0 .../method_listsecrets_autorest.go | 0 .../containerapps/method_start_autorest.go | 78 +++ .../containerapps/method_stop_autorest.go | 78 +++ .../containerapps/method_update_autorest.go | 0 .../containerapps/model_basecontainer.go | 14 + .../containerapps/model_configuration.go | 14 + .../containerapps/model_container.go | 0 .../containerapps/model_containerapp.go | 22 + .../model_containerappauthtoken.go | 18 + .../model_containerappauthtokenproperties.go | 27 + .../containerapps/model_containerappprobe.go | 0 .../model_containerappprobehttpget.go | 0 ...tainerappprobehttpgethttpheadersinlined.go | 0 .../model_containerappprobetcpsocket.go | 0 .../model_containerappproperties.go | 4 + .../containerapps/model_containerappsecret.go | 11 + .../containerapps/model_containerresources.go | 0 .../containerapps/model_corspolicy.go | 13 + .../containerapps/model_customdomain.go | 0 .../model_customhostnameanalysisresult.go | 0 ...sultcustomdomainverificationfailureinfo.go | 0 ...inverificationfailureinfodetailsinlined.go | 0 .../containerapps/model_customscalerule.go | 0 .../2023-05-01/containerapps/model_dapr.go | 15 + .../model_diagnosticdataprovidermetadata.go | 9 + ...dataprovidermetadatapropertybaginlined.go} | 2 +- ...model_diagnosticdatatableresponsecolumn.go | 10 + ...model_diagnosticdatatableresponseobject.go | 10 + .../model_diagnosticrendering.go | 11 + .../containerapps/model_diagnostics.go | 16 + .../model_diagnosticsdataapiresponse.go | 9 + .../model_diagnosticsdefinition.go | 16 + .../model_diagnosticsproperties.go | 11 + .../containerapps/model_diagnosticsstatus.go | 9 + .../model_diagnosticsupporttopic.go | 9 + .../containerapps/model_environmentvar.go | 0 .../containerapps/model_extendedlocation.go | 9 + .../containerapps/model_httpscalerule.go | 0 .../2023-05-01/containerapps/model_ingress.go | 19 + .../model_ingressstickysessions.go} | 7 +- .../model_ipsecurityrestrictionrule.go | 11 + .../containerapps/model_queuescalerule.go | 0 .../model_registrycredentials.go | 0 .../containerapps/model_revision.go | 16 + .../containerapps/model_revisionproperties.go | 48 ++ .../containerapps/model_scale.go | 0 .../containerapps/model_scalerule.go | 1 + .../containerapps/model_scaleruleauth.go | 0 .../2023-05-01/containerapps/model_secret.go | 11 + .../containerapps/model_secretscollection.go | 0 .../containerapps/model_secretvolumeitem.go | 9 + .../2023-05-01/containerapps/model_service.go | 8 + .../containerapps/model_servicebind.go | 9 + .../containerapps/model_tcpscalerule.go | 9 + .../containerapps/model_template.go | 14 + .../containerapps/model_trafficweight.go | 0 .../2023-05-01/containerapps/model_volume.go | 12 + .../containerapps/model_volumemount.go | 1 + .../2023-05-01/containerapps/predicates.go | 83 +++ .../containerapps/version.go | 2 +- .../containerappsrevisions/README.md | 6 +- .../containerappsrevisions/client.go | 0 .../containerappsrevisions/constants.go | 43 ++ .../containerappsrevisions/id_containerapp.go | 0 .../containerappsrevisions/id_revision.go | 0 .../method_activaterevision_autorest.go | 0 .../method_deactivaterevision_autorest.go | 0 .../method_getrevision_autorest.go | 0 .../method_listrevisions_autorest.go | 0 .../method_restartrevision_autorest.go | 0 .../model_basecontainer.go | 14 + .../containerappsrevisions/model_container.go | 0 .../model_containerappprobe.go | 0 .../model_containerappprobehttpget.go | 0 ...tainerappprobehttpgethttpheadersinlined.go | 0 .../model_containerappprobetcpsocket.go | 0 .../model_containerresources.go | 0 .../model_customscalerule.go | 0 .../model_environmentvar.go | 0 .../model_httpscalerule.go | 0 .../model_queuescalerule.go | 0 .../containerappsrevisions/model_revision.go | 0 .../model_revisionproperties.go | 14 + .../containerappsrevisions/model_scale.go | 0 .../containerappsrevisions/model_scalerule.go | 1 + .../model_scaleruleauth.go | 0 .../model_secretvolumeitem.go | 9 + .../model_servicebind.go | 9 + .../model_tcpscalerule.go} | 7 +- .../containerappsrevisions/model_template.go | 14 + .../containerappsrevisions/model_volume.go | 12 + .../model_volumemount.go | 1 + .../containerappsrevisions/predicates.go | 0 .../containerappsrevisions/version.go | 2 +- .../2023-05-01/daprcomponents/README.md | 192 +++++++ .../daprcomponents/client.go | 0 .../daprcomponents/id_connectedenvironment.go | 127 +++++ .../id_connectedenvironmentdaprcomponent.go | 140 +++++ .../daprcomponents/id_daprcomponent.go | 0 .../daprcomponents/id_managedenvironment.go | 0 ...tsdaprcomponentscreateorupdate_autorest.go | 69 +++ ...vironmentsdaprcomponentsdelete_autorest.go | 66 +++ ...denvironmentsdaprcomponentsget_autorest.go | 68 +++ ...environmentsdaprcomponentslist_autorest.go | 186 ++++++ ...mentsdaprcomponentslistsecrets_autorest.go | 69 +++ .../method_createorupdate_autorest.go | 0 .../daprcomponents/method_delete_autorest.go | 0 .../daprcomponents/method_get_autorest.go | 0 .../daprcomponents/method_list_autorest.go | 0 .../method_listsecrets_autorest.go | 0 .../daprcomponents/model_daprcomponent.go | 0 .../model_daprcomponentproperties.go | 15 + .../daprcomponents/model_daprmetadata.go | 0 .../daprcomponents/model_daprsecret.go | 0 .../model_daprsecretscollection.go | 0 .../2023-05-01/daprcomponents/model_secret.go | 11 + .../daprcomponents/predicates.go | 0 .../daprcomponents/version.go | 2 +- .../managedenvironments/README.md | 174 +++++- .../managedenvironments/client.go | 0 .../managedenvironments/constants.go | 31 + .../managedenvironments/id_certificate.go | 0 .../id_managedcertificate.go | 140 +++++ .../id_managedenvironment.go | 0 .../id_managedenvironmentdetector.go | 140 +++++ ...hod_certificatescreateorupdate_autorest.go | 0 .../method_certificatesdelete_autorest.go | 0 .../method_certificatesget_autorest.go | 0 .../method_certificateslist_autorest.go | 0 .../method_certificatesupdate_autorest.go | 0 .../method_createorupdate_autorest.go | 0 .../method_delete_autorest.go | 0 .../method_diagnosticsgetroot_autorest.go | 69 +++ .../method_get_autorest.go | 0 .../method_getauthtoken_autorest.go | 69 +++ .../method_listbyresourcegroup_autorest.go | 0 .../method_listbysubscription_autorest.go | 0 ...thod_listworkloadprofilestates_autorest.go | 186 ++++++ ...agedcertificatescreateorupdate_autorest.go | 79 +++ ...thod_managedcertificatesdelete_autorest.go | 66 +++ .../method_managedcertificatesget_autorest.go | 68 +++ ...method_managedcertificateslist_autorest.go | 186 ++++++ ...thod_managedcertificatesupdate_autorest.go | 69 +++ ...ironmentdiagnosticsgetdetector_autorest.go | 68 +++ ...onmentdiagnosticslistdetectors_autorest.go | 69 +++ ...amespaceschecknameavailability_autorest.go | 0 .../method_update_autorest.go | 0 .../model_applogsconfiguration.go | 0 .../managedenvironments/model_certificate.go | 0 .../model_certificatepatch.go | 0 .../model_certificateproperties.go | 21 +- .../model_checknameavailabilityrequest.go | 0 .../model_checknameavailabilityresponse.go | 0 .../model_customdomainconfiguration.go | 32 ++ .../model_daprconfiguration.go | 8 + .../model_diagnosticdataprovidermetadata.go | 9 + ...dataprovidermetadatapropertybaginlined.go} | 4 +- ...model_diagnosticdatatableresponsecolumn.go | 10 + ...model_diagnosticdatatableresponseobject.go | 10 + .../model_diagnosticrendering.go | 11 + .../managedenvironments/model_diagnostics.go | 16 + .../model_diagnosticscollection.go | 9 + .../model_diagnosticsdataapiresponse.go | 9 + .../model_diagnosticsdefinition.go | 16 + .../model_diagnosticsproperties.go | 11 + .../model_diagnosticsstatus.go | 9 + .../model_diagnosticsupporttopic.go | 9 + .../model_environmentauthtoken.go | 18 + .../model_environmentauthtokenproperties.go | 27 + .../model_kedaconfiguration.go | 8 + .../model_loganalyticsconfiguration.go | 0 .../model_managedcertificate.go | 18 + .../model_managedcertificatepatch.go | 8 + .../model_managedcertificateproperties.go | 12 + .../model_managedenvironment.go | 1 + .../model_managedenvironmentproperties.go | 23 + ...environmentpropertiespeerauthentication.go | 8 + .../managedenvironments/model_mtls.go | 8 + .../model_vnetconfiguration.go | 1 - .../model_workloadprofile.go | 11 + .../model_workloadprofilestates.go | 16 + .../model_workloadprofilestatesproperties.go | 10 + .../managedenvironments/predicates.go | 56 ++ .../managedenvironments/version.go | 2 +- .../managedenvironmentsstorages/README.md | 6 +- .../managedenvironmentsstorages/client.go | 0 .../managedenvironmentsstorages/constants.go | 0 .../id_managedenvironment.go | 0 .../managedenvironmentsstorages/id_storage.go | 0 .../method_createorupdate_autorest.go | 0 .../method_delete_autorest.go | 0 .../method_get_autorest.go | 0 .../method_list_autorest.go | 0 .../model_azurefileproperties.go | 0 .../model_managedenvironmentstorage.go | 0 ...del_managedenvironmentstorageproperties.go | 0 ...el_managedenvironmentstoragescollection.go | 0 .../managedenvironmentsstorages/version.go | 2 +- vendor/modules.txt | 12 +- 252 files changed, 6112 insertions(+), 700 deletions(-) delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/README.md delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/constants.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_configuration.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerapp.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_dapr.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_ingress.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_template.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_volume.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/predicates.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_template.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/README.md delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_daprcomponentproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_managedenvironmentproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/README.md rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/certificates/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/certificates/constants.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/certificates/id_certificate.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/id_connectedenvironment.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/id_connectedenvironmentcertificate.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/certificates/id_managedenvironment.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatescreateorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatesdelete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatesget_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificateslist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatesupdate_autorest.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/certificates/method_createorupdate_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/certificates/method_delete_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/certificates/method_get_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/certificates/method_list_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/certificates/method_update_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/certificates/model_certificate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/certificates/model_certificatepatch.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/certificates/model_certificateproperties.go (51%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/certificates/predicates.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/certificates/version.go (88%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/README.md (51%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/client.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/constants.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/id_containerapp.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/id_detector.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/id_revisionsapirevision.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/method_createorupdate_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/method_delete_autorest.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticsgetdetector_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticsgetrevision_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticsgetroot_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticslistdetectors_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticslistrevisions_autorest.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/method_get_autorest.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_getauthtoken_autorest.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/method_listbyresourcegroup_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/method_listbysubscription_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/method_listcustomhostnameanalysis_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/method_listsecrets_autorest.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_start_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_stop_autorest.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/method_update_autorest.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_basecontainer.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_configuration.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_container.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerapp.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappauthtoken.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappauthtokenproperties.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_containerappprobe.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_containerappprobehttpget.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_containerappprobehttpgethttpheadersinlined.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_containerappprobetcpsocket.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_containerappproperties.go (71%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappsecret.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_containerresources.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_corspolicy.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_customdomain.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_customhostnameanalysisresult.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_customhostnameanalysisresultcustomdomainverificationfailureinfo.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_customhostnameanalysisresultcustomdomainverificationfailureinfodetailsinlined.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_customscalerule.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_dapr.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdataprovidermetadata.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01/containerapps/model_secret.go => 2023-05-01/containerapps/model_diagnosticdataprovidermetadatapropertybaginlined.go} (80%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdatatableresponsecolumn.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdatatableresponseobject.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticrendering.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnostics.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsdataapiresponse.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsdefinition.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsstatus.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsupporttopic.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_environmentvar.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_extendedlocation.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_httpscalerule.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_ingress.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01/daprcomponents/model_secret.go => 2023-05-01/containerapps/model_ingressstickysessions.go} (56%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_ipsecurityrestrictionrule.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_queuescalerule.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_registrycredentials.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_revision.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_revisionproperties.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_scale.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_scalerule.go (89%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_scaleruleauth.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_secret.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_secretscollection.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_secretvolumeitem.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_service.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_servicebind.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_tcpscalerule.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_template.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_trafficweight.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_volume.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/model_volumemount.go (86%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/predicates.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerapps/version.go (88%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/README.md (96%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/constants.go (74%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/id_containerapp.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/id_revision.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/method_activaterevision_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/method_deactivaterevision_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/method_getrevision_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/method_listrevisions_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/method_restartrevision_autorest.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_basecontainer.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_container.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_containerappprobe.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_containerappprobehttpget.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_containerappprobehttpgethttpheadersinlined.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_containerappprobetcpsocket.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_containerresources.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_customscalerule.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_environmentvar.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_httpscalerule.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_queuescalerule.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_revision.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_revisionproperties.go (71%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_scale.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_scalerule.go (89%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_scaleruleauth.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_secretvolumeitem.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_servicebind.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01/containerappsrevisions/model_volume.go => 2023-05-01/containerappsrevisions/model_tcpscalerule.go} (50%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_template.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_volume.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/model_volumemount.go (87%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/predicates.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/containerappsrevisions/version.go (89%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/README.md rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/daprcomponents/client.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/id_connectedenvironment.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/id_connectedenvironmentdaprcomponent.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/daprcomponents/id_daprcomponent.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/daprcomponents/id_managedenvironment.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentscreateorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentsdelete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentsget_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentslist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentslistsecrets_autorest.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/daprcomponents/method_createorupdate_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/daprcomponents/method_delete_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/daprcomponents/method_get_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/daprcomponents/method_list_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/daprcomponents/method_listsecrets_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/daprcomponents/model_daprcomponent.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_daprcomponentproperties.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/daprcomponents/model_daprmetadata.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/daprcomponents/model_daprsecret.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/daprcomponents/model_daprsecretscollection.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_secret.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/daprcomponents/predicates.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/daprcomponents/version.go (88%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/README.md (54%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/constants.go (81%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/id_certificate.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/id_managedcertificate.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/id_managedenvironment.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/id_managedenvironmentdetector.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/method_certificatescreateorupdate_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/method_certificatesdelete_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/method_certificatesget_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/method_certificateslist_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/method_certificatesupdate_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/method_createorupdate_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/method_delete_autorest.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_diagnosticsgetroot_autorest.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/method_get_autorest.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_getauthtoken_autorest.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/method_listbyresourcegroup_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/method_listbysubscription_autorest.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_listworkloadprofilestates_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatescreateorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatesdelete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatesget_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificateslist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatesupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedenvironmentdiagnosticsgetdetector_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedenvironmentdiagnosticslistdetectors_autorest.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/method_namespaceschecknameavailability_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/method_update_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/model_applogsconfiguration.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/model_certificate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/model_certificatepatch.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/model_certificateproperties.go (51%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/model_checknameavailabilityrequest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/model_checknameavailabilityresponse.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_customdomainconfiguration.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_daprconfiguration.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdataprovidermetadata.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01/containerapps/model_containerappsecret.go => 2023-05-01/managedenvironments/model_diagnosticdataprovidermetadatapropertybaginlined.go} (72%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdatatableresponsecolumn.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdatatableresponseobject.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticrendering.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnostics.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticscollection.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsdataapiresponse.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsdefinition.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsstatus.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsupporttopic.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_environmentauthtoken.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_environmentauthtokenproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_kedaconfiguration.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/model_loganalyticsconfiguration.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedcertificate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedcertificatepatch.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedcertificateproperties.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/model_managedenvironment.go (92%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedenvironmentproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedenvironmentpropertiespeerauthentication.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_mtls.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/model_vnetconfiguration.go (89%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_workloadprofile.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_workloadprofilestates.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_workloadprofilestatesproperties.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/predicates.go (53%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironments/version.go (89%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironmentsstorages/README.md (95%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironmentsstorages/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironmentsstorages/constants.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironmentsstorages/id_managedenvironment.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironmentsstorages/id_storage.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironmentsstorages/method_createorupdate_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironmentsstorages/method_delete_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironmentsstorages/method_get_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironmentsstorages/method_list_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironmentsstorages/model_azurefileproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironmentsstorages/model_managedenvironmentstorage.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironmentsstorages/model_managedenvironmentstorageproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironmentsstorages/model_managedenvironmentstoragescollection.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/{2022-03-01 => 2023-05-01}/managedenvironmentsstorages/version.go (89%) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/README.md deleted file mode 100644 index 2babae42ce65..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/README.md +++ /dev/null @@ -1,111 +0,0 @@ - -## `github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates` Documentation - -The `certificates` SDK allows for interaction with the Azure Resource Manager Service `containerapps` (API Version `2022-03-01`). - -This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). - -### Import Path - -```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates" -``` - - -### Client Initialization - -```go -client := certificates.NewCertificatesClientWithBaseURI("https://management.azure.com") -client.Client.Authorizer = authorizer -``` - - -### Example Usage: `CertificatesClient.CreateOrUpdate` - -```go -ctx := context.TODO() -id := certificates.NewCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "certificateValue") - -payload := certificates.Certificate{ - // ... -} - - -read, err := client.CreateOrUpdate(ctx, id, payload) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` - - -### Example Usage: `CertificatesClient.Delete` - -```go -ctx := context.TODO() -id := certificates.NewCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "certificateValue") - -read, err := client.Delete(ctx, id) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` - - -### Example Usage: `CertificatesClient.Get` - -```go -ctx := context.TODO() -id := certificates.NewCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "certificateValue") - -read, err := client.Get(ctx, id) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` - - -### Example Usage: `CertificatesClient.List` - -```go -ctx := context.TODO() -id := certificates.NewManagedEnvironmentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue") - -// alternatively `client.List(ctx, id)` can be used to do batched pagination -items, err := client.ListComplete(ctx, id) -if err != nil { - // handle the error -} -for _, item := range items { - // do something -} -``` - - -### Example Usage: `CertificatesClient.Update` - -```go -ctx := context.TODO() -id := certificates.NewCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "certificateValue") - -payload := certificates.CertificatePatch{ - // ... -} - - -read, err := client.Update(ctx, id, payload) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/constants.go deleted file mode 100644 index 72596fcfc937..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/constants.go +++ /dev/null @@ -1,276 +0,0 @@ -package containerapps - -import "strings" - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ActiveRevisionsMode string - -const ( - ActiveRevisionsModeMultiple ActiveRevisionsMode = "Multiple" - ActiveRevisionsModeSingle ActiveRevisionsMode = "Single" -) - -func PossibleValuesForActiveRevisionsMode() []string { - return []string{ - string(ActiveRevisionsModeMultiple), - string(ActiveRevisionsModeSingle), - } -} - -func parseActiveRevisionsMode(input string) (*ActiveRevisionsMode, error) { - vals := map[string]ActiveRevisionsMode{ - "multiple": ActiveRevisionsModeMultiple, - "single": ActiveRevisionsModeSingle, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := ActiveRevisionsMode(input) - return &out, nil -} - -type AppProtocol string - -const ( - AppProtocolGrpc AppProtocol = "grpc" - AppProtocolHTTP AppProtocol = "http" -) - -func PossibleValuesForAppProtocol() []string { - return []string{ - string(AppProtocolGrpc), - string(AppProtocolHTTP), - } -} - -func parseAppProtocol(input string) (*AppProtocol, error) { - vals := map[string]AppProtocol{ - "grpc": AppProtocolGrpc, - "http": AppProtocolHTTP, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := AppProtocol(input) - return &out, nil -} - -type BindingType string - -const ( - BindingTypeDisabled BindingType = "Disabled" - BindingTypeSniEnabled BindingType = "SniEnabled" -) - -func PossibleValuesForBindingType() []string { - return []string{ - string(BindingTypeDisabled), - string(BindingTypeSniEnabled), - } -} - -func parseBindingType(input string) (*BindingType, error) { - vals := map[string]BindingType{ - "disabled": BindingTypeDisabled, - "snienabled": BindingTypeSniEnabled, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := BindingType(input) - return &out, nil -} - -type ContainerAppProvisioningState string - -const ( - ContainerAppProvisioningStateCanceled ContainerAppProvisioningState = "Canceled" - ContainerAppProvisioningStateDeleting ContainerAppProvisioningState = "Deleting" - ContainerAppProvisioningStateFailed ContainerAppProvisioningState = "Failed" - ContainerAppProvisioningStateInProgress ContainerAppProvisioningState = "InProgress" - ContainerAppProvisioningStateSucceeded ContainerAppProvisioningState = "Succeeded" -) - -func PossibleValuesForContainerAppProvisioningState() []string { - return []string{ - string(ContainerAppProvisioningStateCanceled), - string(ContainerAppProvisioningStateDeleting), - string(ContainerAppProvisioningStateFailed), - string(ContainerAppProvisioningStateInProgress), - string(ContainerAppProvisioningStateSucceeded), - } -} - -func parseContainerAppProvisioningState(input string) (*ContainerAppProvisioningState, error) { - vals := map[string]ContainerAppProvisioningState{ - "canceled": ContainerAppProvisioningStateCanceled, - "deleting": ContainerAppProvisioningStateDeleting, - "failed": ContainerAppProvisioningStateFailed, - "inprogress": ContainerAppProvisioningStateInProgress, - "succeeded": ContainerAppProvisioningStateSucceeded, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := ContainerAppProvisioningState(input) - return &out, nil -} - -type DnsVerificationTestResult string - -const ( - DnsVerificationTestResultFailed DnsVerificationTestResult = "Failed" - DnsVerificationTestResultPassed DnsVerificationTestResult = "Passed" - DnsVerificationTestResultSkipped DnsVerificationTestResult = "Skipped" -) - -func PossibleValuesForDnsVerificationTestResult() []string { - return []string{ - string(DnsVerificationTestResultFailed), - string(DnsVerificationTestResultPassed), - string(DnsVerificationTestResultSkipped), - } -} - -func parseDnsVerificationTestResult(input string) (*DnsVerificationTestResult, error) { - vals := map[string]DnsVerificationTestResult{ - "failed": DnsVerificationTestResultFailed, - "passed": DnsVerificationTestResultPassed, - "skipped": DnsVerificationTestResultSkipped, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := DnsVerificationTestResult(input) - return &out, nil -} - -type IngressTransportMethod string - -const ( - IngressTransportMethodAuto IngressTransportMethod = "auto" - IngressTransportMethodHTTP IngressTransportMethod = "http" - IngressTransportMethodHTTPTwo IngressTransportMethod = "http2" -) - -func PossibleValuesForIngressTransportMethod() []string { - return []string{ - string(IngressTransportMethodAuto), - string(IngressTransportMethodHTTP), - string(IngressTransportMethodHTTPTwo), - } -} - -func parseIngressTransportMethod(input string) (*IngressTransportMethod, error) { - vals := map[string]IngressTransportMethod{ - "auto": IngressTransportMethodAuto, - "http": IngressTransportMethodHTTP, - "http2": IngressTransportMethodHTTPTwo, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := IngressTransportMethod(input) - return &out, nil -} - -type Scheme string - -const ( - SchemeHTTP Scheme = "HTTP" - SchemeHTTPS Scheme = "HTTPS" -) - -func PossibleValuesForScheme() []string { - return []string{ - string(SchemeHTTP), - string(SchemeHTTPS), - } -} - -func parseScheme(input string) (*Scheme, error) { - vals := map[string]Scheme{ - "http": SchemeHTTP, - "https": SchemeHTTPS, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := Scheme(input) - return &out, nil -} - -type StorageType string - -const ( - StorageTypeAzureFile StorageType = "AzureFile" - StorageTypeEmptyDir StorageType = "EmptyDir" -) - -func PossibleValuesForStorageType() []string { - return []string{ - string(StorageTypeAzureFile), - string(StorageTypeEmptyDir), - } -} - -func parseStorageType(input string) (*StorageType, error) { - vals := map[string]StorageType{ - "azurefile": StorageTypeAzureFile, - "emptydir": StorageTypeEmptyDir, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := StorageType(input) - return &out, nil -} - -type Type string - -const ( - TypeLiveness Type = "Liveness" - TypeReadiness Type = "Readiness" - TypeStartup Type = "Startup" -) - -func PossibleValuesForType() []string { - return []string{ - string(TypeLiveness), - string(TypeReadiness), - string(TypeStartup), - } -} - -func parseType(input string) (*Type, error) { - vals := map[string]Type{ - "liveness": TypeLiveness, - "readiness": TypeReadiness, - "startup": TypeStartup, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := Type(input) - return &out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_configuration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_configuration.go deleted file mode 100644 index 4522d21ae9bc..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_configuration.go +++ /dev/null @@ -1,12 +0,0 @@ -package containerapps - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type Configuration struct { - ActiveRevisionsMode *ActiveRevisionsMode `json:"activeRevisionsMode,omitempty"` - Dapr *Dapr `json:"dapr,omitempty"` - Ingress *Ingress `json:"ingress,omitempty"` - Registries *[]RegistryCredentials `json:"registries,omitempty"` - Secrets *[]Secret `json:"secrets,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerapp.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerapp.go deleted file mode 100644 index 23a9510e0bb5..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerapp.go +++ /dev/null @@ -1,20 +0,0 @@ -package containerapps - -import ( - "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" - "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ContainerApp struct { - Id *string `json:"id,omitempty"` - Identity *identity.LegacySystemAndUserAssignedMap `json:"identity,omitempty"` - Location string `json:"location"` - Name *string `json:"name,omitempty"` - Properties *ContainerAppProperties `json:"properties,omitempty"` - SystemData *systemdata.SystemData `json:"systemData,omitempty"` - Tags *map[string]string `json:"tags,omitempty"` - Type *string `json:"type,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_dapr.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_dapr.go deleted file mode 100644 index 666f11e6b10d..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_dapr.go +++ /dev/null @@ -1,11 +0,0 @@ -package containerapps - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type Dapr struct { - AppId *string `json:"appId,omitempty"` - AppPort *int64 `json:"appPort,omitempty"` - AppProtocol *AppProtocol `json:"appProtocol,omitempty"` - Enabled *bool `json:"enabled,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_ingress.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_ingress.go deleted file mode 100644 index 18f6f703dd8b..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_ingress.go +++ /dev/null @@ -1,14 +0,0 @@ -package containerapps - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type Ingress struct { - AllowInsecure *bool `json:"allowInsecure,omitempty"` - CustomDomains *[]CustomDomain `json:"customDomains,omitempty"` - External *bool `json:"external,omitempty"` - Fqdn *string `json:"fqdn,omitempty"` - TargetPort *int64 `json:"targetPort,omitempty"` - Traffic *[]TrafficWeight `json:"traffic,omitempty"` - Transport *IngressTransportMethod `json:"transport,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_template.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_template.go deleted file mode 100644 index 866a7d6cec0d..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_template.go +++ /dev/null @@ -1,11 +0,0 @@ -package containerapps - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type Template struct { - Containers *[]Container `json:"containers,omitempty"` - RevisionSuffix *string `json:"revisionSuffix,omitempty"` - Scale *Scale `json:"scale,omitempty"` - Volumes *[]Volume `json:"volumes,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_volume.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_volume.go deleted file mode 100644 index 6bc10f6a829d..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_volume.go +++ /dev/null @@ -1,10 +0,0 @@ -package containerapps - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type Volume struct { - Name *string `json:"name,omitempty"` - StorageName *string `json:"storageName,omitempty"` - StorageType *StorageType `json:"storageType,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/predicates.go deleted file mode 100644 index c6d7b602461a..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/predicates.go +++ /dev/null @@ -1,32 +0,0 @@ -package containerapps - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ContainerAppOperationPredicate struct { - Id *string - Location *string - Name *string - Type *string -} - -func (p ContainerAppOperationPredicate) Matches(input ContainerApp) bool { - - if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { - return false - } - - if p.Location != nil && *p.Location != input.Location { - return false - } - - if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { - return false - } - - if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { - return false - } - - return true -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_template.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_template.go deleted file mode 100644 index ecf3d02a34f7..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_template.go +++ /dev/null @@ -1,11 +0,0 @@ -package containerappsrevisions - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type Template struct { - Containers *[]Container `json:"containers,omitempty"` - RevisionSuffix *string `json:"revisionSuffix,omitempty"` - Scale *Scale `json:"scale,omitempty"` - Volumes *[]Volume `json:"volumes,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/README.md deleted file mode 100644 index b3ff41d48e78..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/README.md +++ /dev/null @@ -1,106 +0,0 @@ - -## `github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents` Documentation - -The `daprcomponents` SDK allows for interaction with the Azure Resource Manager Service `containerapps` (API Version `2022-03-01`). - -This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). - -### Import Path - -```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents" -``` - - -### Client Initialization - -```go -client := daprcomponents.NewDaprComponentsClientWithBaseURI("https://management.azure.com") -client.Client.Authorizer = authorizer -``` - - -### Example Usage: `DaprComponentsClient.CreateOrUpdate` - -```go -ctx := context.TODO() -id := daprcomponents.NewDaprComponentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "daprComponentValue") - -payload := daprcomponents.DaprComponent{ - // ... -} - - -read, err := client.CreateOrUpdate(ctx, id, payload) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` - - -### Example Usage: `DaprComponentsClient.Delete` - -```go -ctx := context.TODO() -id := daprcomponents.NewDaprComponentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "daprComponentValue") - -read, err := client.Delete(ctx, id) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` - - -### Example Usage: `DaprComponentsClient.Get` - -```go -ctx := context.TODO() -id := daprcomponents.NewDaprComponentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "daprComponentValue") - -read, err := client.Get(ctx, id) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` - - -### Example Usage: `DaprComponentsClient.List` - -```go -ctx := context.TODO() -id := daprcomponents.NewManagedEnvironmentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue") - -// alternatively `client.List(ctx, id)` can be used to do batched pagination -items, err := client.ListComplete(ctx, id) -if err != nil { - // handle the error -} -for _, item := range items { - // do something -} -``` - - -### Example Usage: `DaprComponentsClient.ListSecrets` - -```go -ctx := context.TODO() -id := daprcomponents.NewDaprComponentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "daprComponentValue") - -read, err := client.ListSecrets(ctx, id) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_daprcomponentproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_daprcomponentproperties.go deleted file mode 100644 index d7a9fb1d6acf..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_daprcomponentproperties.go +++ /dev/null @@ -1,14 +0,0 @@ -package daprcomponents - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DaprComponentProperties struct { - ComponentType *string `json:"componentType,omitempty"` - IgnoreErrors *bool `json:"ignoreErrors,omitempty"` - InitTimeout *string `json:"initTimeout,omitempty"` - Metadata *[]DaprMetadata `json:"metadata,omitempty"` - Scopes *[]string `json:"scopes,omitempty"` - Secrets *[]Secret `json:"secrets,omitempty"` - Version *string `json:"version,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_managedenvironmentproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_managedenvironmentproperties.go deleted file mode 100644 index 813ce767ba85..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_managedenvironmentproperties.go +++ /dev/null @@ -1,16 +0,0 @@ -package managedenvironments - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ManagedEnvironmentProperties struct { - AppLogsConfiguration *AppLogsConfiguration `json:"appLogsConfiguration,omitempty"` - DaprAIConnectionString *string `json:"daprAIConnectionString,omitempty"` - DaprAIInstrumentationKey *string `json:"daprAIInstrumentationKey,omitempty"` - DefaultDomain *string `json:"defaultDomain,omitempty"` - DeploymentErrors *string `json:"deploymentErrors,omitempty"` - ProvisioningState *EnvironmentProvisioningState `json:"provisioningState,omitempty"` - StaticIP *string `json:"staticIp,omitempty"` - VnetConfiguration *VnetConfiguration `json:"vnetConfiguration,omitempty"` - ZoneRedundant *bool `json:"zoneRedundant,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/README.md new file mode 100644 index 000000000000..43ed8b751ef7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/README.md @@ -0,0 +1,202 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates` Documentation + +The `certificates` SDK allows for interaction with the Azure Resource Manager Service `containerapps` (API Version `2023-05-01`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates" +``` + + +### Client Initialization + +```go +client := certificates.NewCertificatesClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `CertificatesClient.ConnectedEnvironmentsCertificatesCreateOrUpdate` + +```go +ctx := context.TODO() +id := certificates.NewConnectedEnvironmentCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "connectedEnvironmentValue", "certificateValue") + +payload := certificates.Certificate{ + // ... +} + + +read, err := client.ConnectedEnvironmentsCertificatesCreateOrUpdate(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `CertificatesClient.ConnectedEnvironmentsCertificatesDelete` + +```go +ctx := context.TODO() +id := certificates.NewConnectedEnvironmentCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "connectedEnvironmentValue", "certificateValue") + +read, err := client.ConnectedEnvironmentsCertificatesDelete(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `CertificatesClient.ConnectedEnvironmentsCertificatesGet` + +```go +ctx := context.TODO() +id := certificates.NewConnectedEnvironmentCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "connectedEnvironmentValue", "certificateValue") + +read, err := client.ConnectedEnvironmentsCertificatesGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `CertificatesClient.ConnectedEnvironmentsCertificatesList` + +```go +ctx := context.TODO() +id := certificates.NewConnectedEnvironmentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "connectedEnvironmentValue") + +// alternatively `client.ConnectedEnvironmentsCertificatesList(ctx, id)` can be used to do batched pagination +items, err := client.ConnectedEnvironmentsCertificatesListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `CertificatesClient.ConnectedEnvironmentsCertificatesUpdate` + +```go +ctx := context.TODO() +id := certificates.NewConnectedEnvironmentCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "connectedEnvironmentValue", "certificateValue") + +payload := certificates.CertificatePatch{ + // ... +} + + +read, err := client.ConnectedEnvironmentsCertificatesUpdate(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `CertificatesClient.CreateOrUpdate` + +```go +ctx := context.TODO() +id := certificates.NewCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "certificateValue") + +payload := certificates.Certificate{ + // ... +} + + +read, err := client.CreateOrUpdate(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `CertificatesClient.Delete` + +```go +ctx := context.TODO() +id := certificates.NewCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "certificateValue") + +read, err := client.Delete(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `CertificatesClient.Get` + +```go +ctx := context.TODO() +id := certificates.NewCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "certificateValue") + +read, err := client.Get(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `CertificatesClient.List` + +```go +ctx := context.TODO() +id := certificates.NewManagedEnvironmentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue") + +// alternatively `client.List(ctx, id)` can be used to do batched pagination +items, err := client.ListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `CertificatesClient.Update` + +```go +ctx := context.TODO() +id := certificates.NewCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "certificateValue") + +payload := certificates.CertificatePatch{ + // ... +} + + +read, err := client.Update(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/constants.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/constants.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/constants.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/id_certificate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/id_certificate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/id_certificate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/id_certificate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/id_connectedenvironment.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/id_connectedenvironment.go new file mode 100644 index 000000000000..2a6232f173ad --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/id_connectedenvironment.go @@ -0,0 +1,127 @@ +package certificates + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ConnectedEnvironmentId{} + +// ConnectedEnvironmentId is a struct representing the Resource ID for a Connected Environment +type ConnectedEnvironmentId struct { + SubscriptionId string + ResourceGroupName string + ConnectedEnvironmentName string +} + +// NewConnectedEnvironmentID returns a new ConnectedEnvironmentId struct +func NewConnectedEnvironmentID(subscriptionId string, resourceGroupName string, connectedEnvironmentName string) ConnectedEnvironmentId { + return ConnectedEnvironmentId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + ConnectedEnvironmentName: connectedEnvironmentName, + } +} + +// ParseConnectedEnvironmentID parses 'input' into a ConnectedEnvironmentId +func ParseConnectedEnvironmentID(input string) (*ConnectedEnvironmentId, error) { + parser := resourceids.NewParserFromResourceIdType(ConnectedEnvironmentId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ConnectedEnvironmentId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ConnectedEnvironmentName, ok = parsed.Parsed["connectedEnvironmentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "connectedEnvironmentName", *parsed) + } + + return &id, nil +} + +// ParseConnectedEnvironmentIDInsensitively parses 'input' case-insensitively into a ConnectedEnvironmentId +// note: this method should only be used for API response data and not user input +func ParseConnectedEnvironmentIDInsensitively(input string) (*ConnectedEnvironmentId, error) { + parser := resourceids.NewParserFromResourceIdType(ConnectedEnvironmentId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ConnectedEnvironmentId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ConnectedEnvironmentName, ok = parsed.Parsed["connectedEnvironmentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "connectedEnvironmentName", *parsed) + } + + return &id, nil +} + +// ValidateConnectedEnvironmentID checks that 'input' can be parsed as a Connected Environment ID +func ValidateConnectedEnvironmentID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseConnectedEnvironmentID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Connected Environment ID +func (id ConnectedEnvironmentId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.App/connectedEnvironments/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.ConnectedEnvironmentName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Connected Environment ID +func (id ConnectedEnvironmentId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftApp", "Microsoft.App", "Microsoft.App"), + resourceids.StaticSegment("staticConnectedEnvironments", "connectedEnvironments", "connectedEnvironments"), + resourceids.UserSpecifiedSegment("connectedEnvironmentName", "connectedEnvironmentValue"), + } +} + +// String returns a human-readable description of this Connected Environment ID +func (id ConnectedEnvironmentId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Connected Environment Name: %q", id.ConnectedEnvironmentName), + } + return fmt.Sprintf("Connected Environment (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/id_connectedenvironmentcertificate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/id_connectedenvironmentcertificate.go new file mode 100644 index 000000000000..85a6c7db3d2e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/id_connectedenvironmentcertificate.go @@ -0,0 +1,140 @@ +package certificates + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ConnectedEnvironmentCertificateId{} + +// ConnectedEnvironmentCertificateId is a struct representing the Resource ID for a Connected Environment Certificate +type ConnectedEnvironmentCertificateId struct { + SubscriptionId string + ResourceGroupName string + ConnectedEnvironmentName string + CertificateName string +} + +// NewConnectedEnvironmentCertificateID returns a new ConnectedEnvironmentCertificateId struct +func NewConnectedEnvironmentCertificateID(subscriptionId string, resourceGroupName string, connectedEnvironmentName string, certificateName string) ConnectedEnvironmentCertificateId { + return ConnectedEnvironmentCertificateId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + ConnectedEnvironmentName: connectedEnvironmentName, + CertificateName: certificateName, + } +} + +// ParseConnectedEnvironmentCertificateID parses 'input' into a ConnectedEnvironmentCertificateId +func ParseConnectedEnvironmentCertificateID(input string) (*ConnectedEnvironmentCertificateId, error) { + parser := resourceids.NewParserFromResourceIdType(ConnectedEnvironmentCertificateId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ConnectedEnvironmentCertificateId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ConnectedEnvironmentName, ok = parsed.Parsed["connectedEnvironmentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "connectedEnvironmentName", *parsed) + } + + if id.CertificateName, ok = parsed.Parsed["certificateName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "certificateName", *parsed) + } + + return &id, nil +} + +// ParseConnectedEnvironmentCertificateIDInsensitively parses 'input' case-insensitively into a ConnectedEnvironmentCertificateId +// note: this method should only be used for API response data and not user input +func ParseConnectedEnvironmentCertificateIDInsensitively(input string) (*ConnectedEnvironmentCertificateId, error) { + parser := resourceids.NewParserFromResourceIdType(ConnectedEnvironmentCertificateId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ConnectedEnvironmentCertificateId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ConnectedEnvironmentName, ok = parsed.Parsed["connectedEnvironmentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "connectedEnvironmentName", *parsed) + } + + if id.CertificateName, ok = parsed.Parsed["certificateName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "certificateName", *parsed) + } + + return &id, nil +} + +// ValidateConnectedEnvironmentCertificateID checks that 'input' can be parsed as a Connected Environment Certificate ID +func ValidateConnectedEnvironmentCertificateID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseConnectedEnvironmentCertificateID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Connected Environment Certificate ID +func (id ConnectedEnvironmentCertificateId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.App/connectedEnvironments/%s/certificates/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.ConnectedEnvironmentName, id.CertificateName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Connected Environment Certificate ID +func (id ConnectedEnvironmentCertificateId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftApp", "Microsoft.App", "Microsoft.App"), + resourceids.StaticSegment("staticConnectedEnvironments", "connectedEnvironments", "connectedEnvironments"), + resourceids.UserSpecifiedSegment("connectedEnvironmentName", "connectedEnvironmentValue"), + resourceids.StaticSegment("staticCertificates", "certificates", "certificates"), + resourceids.UserSpecifiedSegment("certificateName", "certificateValue"), + } +} + +// String returns a human-readable description of this Connected Environment Certificate ID +func (id ConnectedEnvironmentCertificateId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Connected Environment Name: %q", id.ConnectedEnvironmentName), + fmt.Sprintf("Certificate Name: %q", id.CertificateName), + } + return fmt.Sprintf("Connected Environment Certificate (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/id_managedenvironment.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/id_managedenvironment.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/id_managedenvironment.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/id_managedenvironment.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatescreateorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatescreateorupdate_autorest.go new file mode 100644 index 000000000000..250309b3ab67 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatescreateorupdate_autorest.go @@ -0,0 +1,69 @@ +package certificates + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConnectedEnvironmentsCertificatesCreateOrUpdateOperationResponse struct { + HttpResponse *http.Response + Model *Certificate +} + +// ConnectedEnvironmentsCertificatesCreateOrUpdate ... +func (c CertificatesClient) ConnectedEnvironmentsCertificatesCreateOrUpdate(ctx context.Context, id ConnectedEnvironmentCertificateId, input Certificate) (result ConnectedEnvironmentsCertificatesCreateOrUpdateOperationResponse, err error) { + req, err := c.preparerForConnectedEnvironmentsCertificatesCreateOrUpdate(ctx, id, input) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesCreateOrUpdate", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesCreateOrUpdate", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForConnectedEnvironmentsCertificatesCreateOrUpdate(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesCreateOrUpdate", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForConnectedEnvironmentsCertificatesCreateOrUpdate prepares the ConnectedEnvironmentsCertificatesCreateOrUpdate request. +func (c CertificatesClient) preparerForConnectedEnvironmentsCertificatesCreateOrUpdate(ctx context.Context, id ConnectedEnvironmentCertificateId, input Certificate) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithJSON(input), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForConnectedEnvironmentsCertificatesCreateOrUpdate handles the response to the ConnectedEnvironmentsCertificatesCreateOrUpdate request. The method always +// closes the http.Response Body. +func (c CertificatesClient) responderForConnectedEnvironmentsCertificatesCreateOrUpdate(resp *http.Response) (result ConnectedEnvironmentsCertificatesCreateOrUpdateOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatesdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatesdelete_autorest.go new file mode 100644 index 000000000000..41afe4fd94a2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatesdelete_autorest.go @@ -0,0 +1,66 @@ +package certificates + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConnectedEnvironmentsCertificatesDeleteOperationResponse struct { + HttpResponse *http.Response +} + +// ConnectedEnvironmentsCertificatesDelete ... +func (c CertificatesClient) ConnectedEnvironmentsCertificatesDelete(ctx context.Context, id ConnectedEnvironmentCertificateId) (result ConnectedEnvironmentsCertificatesDeleteOperationResponse, err error) { + req, err := c.preparerForConnectedEnvironmentsCertificatesDelete(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesDelete", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesDelete", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForConnectedEnvironmentsCertificatesDelete(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesDelete", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForConnectedEnvironmentsCertificatesDelete prepares the ConnectedEnvironmentsCertificatesDelete request. +func (c CertificatesClient) preparerForConnectedEnvironmentsCertificatesDelete(ctx context.Context, id ConnectedEnvironmentCertificateId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsDelete(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForConnectedEnvironmentsCertificatesDelete handles the response to the ConnectedEnvironmentsCertificatesDelete request. The method always +// closes the http.Response Body. +func (c CertificatesClient) responderForConnectedEnvironmentsCertificatesDelete(resp *http.Response) (result ConnectedEnvironmentsCertificatesDeleteOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatesget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatesget_autorest.go new file mode 100644 index 000000000000..0a76e34bac8a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatesget_autorest.go @@ -0,0 +1,68 @@ +package certificates + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConnectedEnvironmentsCertificatesGetOperationResponse struct { + HttpResponse *http.Response + Model *Certificate +} + +// ConnectedEnvironmentsCertificatesGet ... +func (c CertificatesClient) ConnectedEnvironmentsCertificatesGet(ctx context.Context, id ConnectedEnvironmentCertificateId) (result ConnectedEnvironmentsCertificatesGetOperationResponse, err error) { + req, err := c.preparerForConnectedEnvironmentsCertificatesGet(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesGet", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesGet", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForConnectedEnvironmentsCertificatesGet(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesGet", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForConnectedEnvironmentsCertificatesGet prepares the ConnectedEnvironmentsCertificatesGet request. +func (c CertificatesClient) preparerForConnectedEnvironmentsCertificatesGet(ctx context.Context, id ConnectedEnvironmentCertificateId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForConnectedEnvironmentsCertificatesGet handles the response to the ConnectedEnvironmentsCertificatesGet request. The method always +// closes the http.Response Body. +func (c CertificatesClient) responderForConnectedEnvironmentsCertificatesGet(resp *http.Response) (result ConnectedEnvironmentsCertificatesGetOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificateslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificateslist_autorest.go new file mode 100644 index 000000000000..fe9afa257c46 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificateslist_autorest.go @@ -0,0 +1,186 @@ +package certificates + +import ( + "context" + "fmt" + "net/http" + "net/url" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConnectedEnvironmentsCertificatesListOperationResponse struct { + HttpResponse *http.Response + Model *[]Certificate + + nextLink *string + nextPageFunc func(ctx context.Context, nextLink string) (ConnectedEnvironmentsCertificatesListOperationResponse, error) +} + +type ConnectedEnvironmentsCertificatesListCompleteResult struct { + Items []Certificate +} + +func (r ConnectedEnvironmentsCertificatesListOperationResponse) HasMore() bool { + return r.nextLink != nil +} + +func (r ConnectedEnvironmentsCertificatesListOperationResponse) LoadMore(ctx context.Context) (resp ConnectedEnvironmentsCertificatesListOperationResponse, err error) { + if !r.HasMore() { + err = fmt.Errorf("no more pages returned") + return + } + return r.nextPageFunc(ctx, *r.nextLink) +} + +// ConnectedEnvironmentsCertificatesList ... +func (c CertificatesClient) ConnectedEnvironmentsCertificatesList(ctx context.Context, id ConnectedEnvironmentId) (resp ConnectedEnvironmentsCertificatesListOperationResponse, err error) { + req, err := c.preparerForConnectedEnvironmentsCertificatesList(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesList", nil, "Failure preparing request") + return + } + + resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesList", resp.HttpResponse, "Failure sending request") + return + } + + resp, err = c.responderForConnectedEnvironmentsCertificatesList(resp.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesList", resp.HttpResponse, "Failure responding to request") + return + } + return +} + +// preparerForConnectedEnvironmentsCertificatesList prepares the ConnectedEnvironmentsCertificatesList request. +func (c CertificatesClient) preparerForConnectedEnvironmentsCertificatesList(ctx context.Context, id ConnectedEnvironmentId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/certificates", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// preparerForConnectedEnvironmentsCertificatesListWithNextLink prepares the ConnectedEnvironmentsCertificatesList request with the given nextLink token. +func (c CertificatesClient) preparerForConnectedEnvironmentsCertificatesListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { + uri, err := url.Parse(nextLink) + if err != nil { + return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) + } + queryParameters := map[string]interface{}{} + for k, v := range uri.Query() { + if len(v) == 0 { + continue + } + val := v[0] + val = autorest.Encode("query", val) + queryParameters[k] = val + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(uri.Path), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForConnectedEnvironmentsCertificatesList handles the response to the ConnectedEnvironmentsCertificatesList request. The method always +// closes the http.Response Body. +func (c CertificatesClient) responderForConnectedEnvironmentsCertificatesList(resp *http.Response) (result ConnectedEnvironmentsCertificatesListOperationResponse, err error) { + type page struct { + Values []Certificate `json:"value"` + NextLink *string `json:"nextLink"` + } + var respObj page + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&respObj), + autorest.ByClosing()) + result.HttpResponse = resp + result.Model = &respObj.Values + result.nextLink = respObj.NextLink + if respObj.NextLink != nil { + result.nextPageFunc = func(ctx context.Context, nextLink string) (result ConnectedEnvironmentsCertificatesListOperationResponse, err error) { + req, err := c.preparerForConnectedEnvironmentsCertificatesListWithNextLink(ctx, nextLink) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesList", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesList", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForConnectedEnvironmentsCertificatesList(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesList", result.HttpResponse, "Failure responding to request") + return + } + + return + } + } + return +} + +// ConnectedEnvironmentsCertificatesListComplete retrieves all of the results into a single object +func (c CertificatesClient) ConnectedEnvironmentsCertificatesListComplete(ctx context.Context, id ConnectedEnvironmentId) (ConnectedEnvironmentsCertificatesListCompleteResult, error) { + return c.ConnectedEnvironmentsCertificatesListCompleteMatchingPredicate(ctx, id, CertificateOperationPredicate{}) +} + +// ConnectedEnvironmentsCertificatesListCompleteMatchingPredicate retrieves all of the results and then applied the predicate +func (c CertificatesClient) ConnectedEnvironmentsCertificatesListCompleteMatchingPredicate(ctx context.Context, id ConnectedEnvironmentId, predicate CertificateOperationPredicate) (resp ConnectedEnvironmentsCertificatesListCompleteResult, err error) { + items := make([]Certificate, 0) + + page, err := c.ConnectedEnvironmentsCertificatesList(ctx, id) + if err != nil { + err = fmt.Errorf("loading the initial page: %+v", err) + return + } + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + for page.HasMore() { + page, err = page.LoadMore(ctx) + if err != nil { + err = fmt.Errorf("loading the next page: %+v", err) + return + } + + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + } + + out := ConnectedEnvironmentsCertificatesListCompleteResult{ + Items: items, + } + return out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatesupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatesupdate_autorest.go new file mode 100644 index 000000000000..9d8b51209cc6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_connectedenvironmentscertificatesupdate_autorest.go @@ -0,0 +1,69 @@ +package certificates + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConnectedEnvironmentsCertificatesUpdateOperationResponse struct { + HttpResponse *http.Response + Model *Certificate +} + +// ConnectedEnvironmentsCertificatesUpdate ... +func (c CertificatesClient) ConnectedEnvironmentsCertificatesUpdate(ctx context.Context, id ConnectedEnvironmentCertificateId, input CertificatePatch) (result ConnectedEnvironmentsCertificatesUpdateOperationResponse, err error) { + req, err := c.preparerForConnectedEnvironmentsCertificatesUpdate(ctx, id, input) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesUpdate", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesUpdate", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForConnectedEnvironmentsCertificatesUpdate(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "certificates.CertificatesClient", "ConnectedEnvironmentsCertificatesUpdate", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForConnectedEnvironmentsCertificatesUpdate prepares the ConnectedEnvironmentsCertificatesUpdate request. +func (c CertificatesClient) preparerForConnectedEnvironmentsCertificatesUpdate(ctx context.Context, id ConnectedEnvironmentCertificateId, input CertificatePatch) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithJSON(input), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForConnectedEnvironmentsCertificatesUpdate handles the response to the ConnectedEnvironmentsCertificatesUpdate request. The method always +// closes the http.Response Body. +func (c CertificatesClient) responderForConnectedEnvironmentsCertificatesUpdate(resp *http.Response) (result ConnectedEnvironmentsCertificatesUpdateOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_createorupdate_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/method_createorupdate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_createorupdate_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_delete_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/method_delete_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_delete_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_get_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/method_get_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_get_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/method_list_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_list_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/method_list_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_list_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/method_update_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_update_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/method_update_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/method_update_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/model_certificate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/model_certificate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/model_certificate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/model_certificate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/model_certificatepatch.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/model_certificatepatch.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/model_certificatepatch.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/model_certificatepatch.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/model_certificateproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/model_certificateproperties.go similarity index 51% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/model_certificateproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/model_certificateproperties.go index f9b83d5882ea..b37db70c194a 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/model_certificateproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/model_certificateproperties.go @@ -10,16 +10,17 @@ import ( // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type CertificateProperties struct { - ExpirationDate *string `json:"expirationDate,omitempty"` - IssueDate *string `json:"issueDate,omitempty"` - Issuer *string `json:"issuer,omitempty"` - Password *string `json:"password,omitempty"` - ProvisioningState *CertificateProvisioningState `json:"provisioningState,omitempty"` - PublicKeyHash *string `json:"publicKeyHash,omitempty"` - SubjectName *string `json:"subjectName,omitempty"` - Thumbprint *string `json:"thumbprint,omitempty"` - Valid *bool `json:"valid,omitempty"` - Value *string `json:"value,omitempty"` + ExpirationDate *string `json:"expirationDate,omitempty"` + IssueDate *string `json:"issueDate,omitempty"` + Issuer *string `json:"issuer,omitempty"` + Password *string `json:"password,omitempty"` + ProvisioningState *CertificateProvisioningState `json:"provisioningState,omitempty"` + PublicKeyHash *string `json:"publicKeyHash,omitempty"` + SubjectAlternativeNames *[]string `json:"subjectAlternativeNames,omitempty"` + SubjectName *string `json:"subjectName,omitempty"` + Thumbprint *string `json:"thumbprint,omitempty"` + Valid *bool `json:"valid,omitempty"` + Value *string `json:"value,omitempty"` } func (o *CertificateProperties) GetExpirationDateAsTime() (*time.Time, error) { diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/predicates.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/predicates.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/predicates.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/version.go index 1cfd42892bf4..99d93672900e 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2022-03-01" +const defaultApiVersion = "2023-05-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/certificates/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/README.md similarity index 51% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/README.md index a88845f76c16..aa69c9fd6b23 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps` Documentation -The `containerapps` SDK allows for interaction with the Azure Resource Manager Service `containerapps` (API Version `2022-03-01`). +The `containerapps` SDK allows for interaction with the Azure Resource Manager Service `containerapps` (API Version `2023-05-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps" +import "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps" ``` @@ -49,6 +49,88 @@ if err := client.DeleteThenPoll(ctx, id); err != nil { ``` +### Example Usage: `ContainerAppsClient.DiagnosticsGetDetector` + +```go +ctx := context.TODO() +id := containerapps.NewDetectorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "containerAppValue", "detectorValue") + +read, err := client.DiagnosticsGetDetector(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `ContainerAppsClient.DiagnosticsGetRevision` + +```go +ctx := context.TODO() +id := containerapps.NewRevisionsApiRevisionID("12345678-1234-9876-4563-123456789012", "example-resource-group", "containerAppValue", "revisionValue") + +read, err := client.DiagnosticsGetRevision(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `ContainerAppsClient.DiagnosticsGetRoot` + +```go +ctx := context.TODO() +id := containerapps.NewContainerAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "containerAppValue") + +read, err := client.DiagnosticsGetRoot(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `ContainerAppsClient.DiagnosticsListDetectors` + +```go +ctx := context.TODO() +id := containerapps.NewContainerAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "containerAppValue") + +// alternatively `client.DiagnosticsListDetectors(ctx, id)` can be used to do batched pagination +items, err := client.DiagnosticsListDetectorsComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `ContainerAppsClient.DiagnosticsListRevisions` + +```go +ctx := context.TODO() +id := containerapps.NewContainerAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "containerAppValue") + +// alternatively `client.DiagnosticsListRevisions(ctx, id, containerapps.DefaultDiagnosticsListRevisionsOperationOptions())` can be used to do batched pagination +items, err := client.DiagnosticsListRevisionsComplete(ctx, id, containerapps.DefaultDiagnosticsListRevisionsOperationOptions()) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + ### Example Usage: `ContainerAppsClient.Get` ```go @@ -65,6 +147,22 @@ if model := read.Model; model != nil { ``` +### Example Usage: `ContainerAppsClient.GetAuthToken` + +```go +ctx := context.TODO() +id := containerapps.NewContainerAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "containerAppValue") + +read, err := client.GetAuthToken(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + ### Example Usage: `ContainerAppsClient.ListByResourceGroup` ```go @@ -131,6 +229,30 @@ if model := read.Model; model != nil { ``` +### Example Usage: `ContainerAppsClient.Start` + +```go +ctx := context.TODO() +id := containerapps.NewContainerAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "containerAppValue") + +if err := client.StartThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `ContainerAppsClient.Stop` + +```go +ctx := context.TODO() +id := containerapps.NewContainerAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "containerAppValue") + +if err := client.StopThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + ### Example Usage: `ContainerAppsClient.Update` ```go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/constants.go new file mode 100644 index 000000000000..b8e60935170c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/constants.go @@ -0,0 +1,536 @@ +package containerapps + +import "strings" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Action string + +const ( + ActionAllow Action = "Allow" + ActionDeny Action = "Deny" +) + +func PossibleValuesForAction() []string { + return []string{ + string(ActionAllow), + string(ActionDeny), + } +} + +func parseAction(input string) (*Action, error) { + vals := map[string]Action{ + "allow": ActionAllow, + "deny": ActionDeny, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Action(input) + return &out, nil +} + +type ActiveRevisionsMode string + +const ( + ActiveRevisionsModeMultiple ActiveRevisionsMode = "Multiple" + ActiveRevisionsModeSingle ActiveRevisionsMode = "Single" +) + +func PossibleValuesForActiveRevisionsMode() []string { + return []string{ + string(ActiveRevisionsModeMultiple), + string(ActiveRevisionsModeSingle), + } +} + +func parseActiveRevisionsMode(input string) (*ActiveRevisionsMode, error) { + vals := map[string]ActiveRevisionsMode{ + "multiple": ActiveRevisionsModeMultiple, + "single": ActiveRevisionsModeSingle, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ActiveRevisionsMode(input) + return &out, nil +} + +type Affinity string + +const ( + AffinityNone Affinity = "none" + AffinitySticky Affinity = "sticky" +) + +func PossibleValuesForAffinity() []string { + return []string{ + string(AffinityNone), + string(AffinitySticky), + } +} + +func parseAffinity(input string) (*Affinity, error) { + vals := map[string]Affinity{ + "none": AffinityNone, + "sticky": AffinitySticky, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Affinity(input) + return &out, nil +} + +type AppProtocol string + +const ( + AppProtocolGrpc AppProtocol = "grpc" + AppProtocolHTTP AppProtocol = "http" +) + +func PossibleValuesForAppProtocol() []string { + return []string{ + string(AppProtocolGrpc), + string(AppProtocolHTTP), + } +} + +func parseAppProtocol(input string) (*AppProtocol, error) { + vals := map[string]AppProtocol{ + "grpc": AppProtocolGrpc, + "http": AppProtocolHTTP, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := AppProtocol(input) + return &out, nil +} + +type BindingType string + +const ( + BindingTypeDisabled BindingType = "Disabled" + BindingTypeSniEnabled BindingType = "SniEnabled" +) + +func PossibleValuesForBindingType() []string { + return []string{ + string(BindingTypeDisabled), + string(BindingTypeSniEnabled), + } +} + +func parseBindingType(input string) (*BindingType, error) { + vals := map[string]BindingType{ + "disabled": BindingTypeDisabled, + "snienabled": BindingTypeSniEnabled, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := BindingType(input) + return &out, nil +} + +type ContainerAppProvisioningState string + +const ( + ContainerAppProvisioningStateCanceled ContainerAppProvisioningState = "Canceled" + ContainerAppProvisioningStateDeleting ContainerAppProvisioningState = "Deleting" + ContainerAppProvisioningStateFailed ContainerAppProvisioningState = "Failed" + ContainerAppProvisioningStateInProgress ContainerAppProvisioningState = "InProgress" + ContainerAppProvisioningStateSucceeded ContainerAppProvisioningState = "Succeeded" +) + +func PossibleValuesForContainerAppProvisioningState() []string { + return []string{ + string(ContainerAppProvisioningStateCanceled), + string(ContainerAppProvisioningStateDeleting), + string(ContainerAppProvisioningStateFailed), + string(ContainerAppProvisioningStateInProgress), + string(ContainerAppProvisioningStateSucceeded), + } +} + +func parseContainerAppProvisioningState(input string) (*ContainerAppProvisioningState, error) { + vals := map[string]ContainerAppProvisioningState{ + "canceled": ContainerAppProvisioningStateCanceled, + "deleting": ContainerAppProvisioningStateDeleting, + "failed": ContainerAppProvisioningStateFailed, + "inprogress": ContainerAppProvisioningStateInProgress, + "succeeded": ContainerAppProvisioningStateSucceeded, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ContainerAppProvisioningState(input) + return &out, nil +} + +type DnsVerificationTestResult string + +const ( + DnsVerificationTestResultFailed DnsVerificationTestResult = "Failed" + DnsVerificationTestResultPassed DnsVerificationTestResult = "Passed" + DnsVerificationTestResultSkipped DnsVerificationTestResult = "Skipped" +) + +func PossibleValuesForDnsVerificationTestResult() []string { + return []string{ + string(DnsVerificationTestResultFailed), + string(DnsVerificationTestResultPassed), + string(DnsVerificationTestResultSkipped), + } +} + +func parseDnsVerificationTestResult(input string) (*DnsVerificationTestResult, error) { + vals := map[string]DnsVerificationTestResult{ + "failed": DnsVerificationTestResultFailed, + "passed": DnsVerificationTestResultPassed, + "skipped": DnsVerificationTestResultSkipped, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := DnsVerificationTestResult(input) + return &out, nil +} + +type ExtendedLocationTypes string + +const ( + ExtendedLocationTypesCustomLocation ExtendedLocationTypes = "CustomLocation" +) + +func PossibleValuesForExtendedLocationTypes() []string { + return []string{ + string(ExtendedLocationTypesCustomLocation), + } +} + +func parseExtendedLocationTypes(input string) (*ExtendedLocationTypes, error) { + vals := map[string]ExtendedLocationTypes{ + "customlocation": ExtendedLocationTypesCustomLocation, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ExtendedLocationTypes(input) + return &out, nil +} + +type IngressClientCertificateMode string + +const ( + IngressClientCertificateModeAccept IngressClientCertificateMode = "accept" + IngressClientCertificateModeIgnore IngressClientCertificateMode = "ignore" + IngressClientCertificateModeRequire IngressClientCertificateMode = "require" +) + +func PossibleValuesForIngressClientCertificateMode() []string { + return []string{ + string(IngressClientCertificateModeAccept), + string(IngressClientCertificateModeIgnore), + string(IngressClientCertificateModeRequire), + } +} + +func parseIngressClientCertificateMode(input string) (*IngressClientCertificateMode, error) { + vals := map[string]IngressClientCertificateMode{ + "accept": IngressClientCertificateModeAccept, + "ignore": IngressClientCertificateModeIgnore, + "require": IngressClientCertificateModeRequire, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := IngressClientCertificateMode(input) + return &out, nil +} + +type IngressTransportMethod string + +const ( + IngressTransportMethodAuto IngressTransportMethod = "auto" + IngressTransportMethodHTTP IngressTransportMethod = "http" + IngressTransportMethodHTTPTwo IngressTransportMethod = "http2" + IngressTransportMethodTcp IngressTransportMethod = "tcp" +) + +func PossibleValuesForIngressTransportMethod() []string { + return []string{ + string(IngressTransportMethodAuto), + string(IngressTransportMethodHTTP), + string(IngressTransportMethodHTTPTwo), + string(IngressTransportMethodTcp), + } +} + +func parseIngressTransportMethod(input string) (*IngressTransportMethod, error) { + vals := map[string]IngressTransportMethod{ + "auto": IngressTransportMethodAuto, + "http": IngressTransportMethodHTTP, + "http2": IngressTransportMethodHTTPTwo, + "tcp": IngressTransportMethodTcp, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := IngressTransportMethod(input) + return &out, nil +} + +type LogLevel string + +const ( + LogLevelDebug LogLevel = "debug" + LogLevelError LogLevel = "error" + LogLevelInfo LogLevel = "info" + LogLevelWarn LogLevel = "warn" +) + +func PossibleValuesForLogLevel() []string { + return []string{ + string(LogLevelDebug), + string(LogLevelError), + string(LogLevelInfo), + string(LogLevelWarn), + } +} + +func parseLogLevel(input string) (*LogLevel, error) { + vals := map[string]LogLevel{ + "debug": LogLevelDebug, + "error": LogLevelError, + "info": LogLevelInfo, + "warn": LogLevelWarn, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := LogLevel(input) + return &out, nil +} + +type RevisionHealthState string + +const ( + RevisionHealthStateHealthy RevisionHealthState = "Healthy" + RevisionHealthStateNone RevisionHealthState = "None" + RevisionHealthStateUnhealthy RevisionHealthState = "Unhealthy" +) + +func PossibleValuesForRevisionHealthState() []string { + return []string{ + string(RevisionHealthStateHealthy), + string(RevisionHealthStateNone), + string(RevisionHealthStateUnhealthy), + } +} + +func parseRevisionHealthState(input string) (*RevisionHealthState, error) { + vals := map[string]RevisionHealthState{ + "healthy": RevisionHealthStateHealthy, + "none": RevisionHealthStateNone, + "unhealthy": RevisionHealthStateUnhealthy, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := RevisionHealthState(input) + return &out, nil +} + +type RevisionProvisioningState string + +const ( + RevisionProvisioningStateDeprovisioned RevisionProvisioningState = "Deprovisioned" + RevisionProvisioningStateDeprovisioning RevisionProvisioningState = "Deprovisioning" + RevisionProvisioningStateFailed RevisionProvisioningState = "Failed" + RevisionProvisioningStateProvisioned RevisionProvisioningState = "Provisioned" + RevisionProvisioningStateProvisioning RevisionProvisioningState = "Provisioning" +) + +func PossibleValuesForRevisionProvisioningState() []string { + return []string{ + string(RevisionProvisioningStateDeprovisioned), + string(RevisionProvisioningStateDeprovisioning), + string(RevisionProvisioningStateFailed), + string(RevisionProvisioningStateProvisioned), + string(RevisionProvisioningStateProvisioning), + } +} + +func parseRevisionProvisioningState(input string) (*RevisionProvisioningState, error) { + vals := map[string]RevisionProvisioningState{ + "deprovisioned": RevisionProvisioningStateDeprovisioned, + "deprovisioning": RevisionProvisioningStateDeprovisioning, + "failed": RevisionProvisioningStateFailed, + "provisioned": RevisionProvisioningStateProvisioned, + "provisioning": RevisionProvisioningStateProvisioning, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := RevisionProvisioningState(input) + return &out, nil +} + +type RevisionRunningState string + +const ( + RevisionRunningStateDegraded RevisionRunningState = "Degraded" + RevisionRunningStateFailed RevisionRunningState = "Failed" + RevisionRunningStateProcessing RevisionRunningState = "Processing" + RevisionRunningStateRunning RevisionRunningState = "Running" + RevisionRunningStateStopped RevisionRunningState = "Stopped" + RevisionRunningStateUnknown RevisionRunningState = "Unknown" +) + +func PossibleValuesForRevisionRunningState() []string { + return []string{ + string(RevisionRunningStateDegraded), + string(RevisionRunningStateFailed), + string(RevisionRunningStateProcessing), + string(RevisionRunningStateRunning), + string(RevisionRunningStateStopped), + string(RevisionRunningStateUnknown), + } +} + +func parseRevisionRunningState(input string) (*RevisionRunningState, error) { + vals := map[string]RevisionRunningState{ + "degraded": RevisionRunningStateDegraded, + "failed": RevisionRunningStateFailed, + "processing": RevisionRunningStateProcessing, + "running": RevisionRunningStateRunning, + "stopped": RevisionRunningStateStopped, + "unknown": RevisionRunningStateUnknown, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := RevisionRunningState(input) + return &out, nil +} + +type Scheme string + +const ( + SchemeHTTP Scheme = "HTTP" + SchemeHTTPS Scheme = "HTTPS" +) + +func PossibleValuesForScheme() []string { + return []string{ + string(SchemeHTTP), + string(SchemeHTTPS), + } +} + +func parseScheme(input string) (*Scheme, error) { + vals := map[string]Scheme{ + "http": SchemeHTTP, + "https": SchemeHTTPS, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Scheme(input) + return &out, nil +} + +type StorageType string + +const ( + StorageTypeAzureFile StorageType = "AzureFile" + StorageTypeEmptyDir StorageType = "EmptyDir" + StorageTypeSecret StorageType = "Secret" +) + +func PossibleValuesForStorageType() []string { + return []string{ + string(StorageTypeAzureFile), + string(StorageTypeEmptyDir), + string(StorageTypeSecret), + } +} + +func parseStorageType(input string) (*StorageType, error) { + vals := map[string]StorageType{ + "azurefile": StorageTypeAzureFile, + "emptydir": StorageTypeEmptyDir, + "secret": StorageTypeSecret, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := StorageType(input) + return &out, nil +} + +type Type string + +const ( + TypeLiveness Type = "Liveness" + TypeReadiness Type = "Readiness" + TypeStartup Type = "Startup" +) + +func PossibleValuesForType() []string { + return []string{ + string(TypeLiveness), + string(TypeReadiness), + string(TypeStartup), + } +} + +func parseType(input string) (*Type, error) { + vals := map[string]Type{ + "liveness": TypeLiveness, + "readiness": TypeReadiness, + "startup": TypeStartup, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Type(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/id_containerapp.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/id_containerapp.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/id_containerapp.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/id_containerapp.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/id_detector.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/id_detector.go new file mode 100644 index 000000000000..e0635c427725 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/id_detector.go @@ -0,0 +1,140 @@ +package containerapps + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = DetectorId{} + +// DetectorId is a struct representing the Resource ID for a Detector +type DetectorId struct { + SubscriptionId string + ResourceGroupName string + ContainerAppName string + DetectorName string +} + +// NewDetectorID returns a new DetectorId struct +func NewDetectorID(subscriptionId string, resourceGroupName string, containerAppName string, detectorName string) DetectorId { + return DetectorId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + ContainerAppName: containerAppName, + DetectorName: detectorName, + } +} + +// ParseDetectorID parses 'input' into a DetectorId +func ParseDetectorID(input string) (*DetectorId, error) { + parser := resourceids.NewParserFromResourceIdType(DetectorId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DetectorId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ContainerAppName, ok = parsed.Parsed["containerAppName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "containerAppName", *parsed) + } + + if id.DetectorName, ok = parsed.Parsed["detectorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "detectorName", *parsed) + } + + return &id, nil +} + +// ParseDetectorIDInsensitively parses 'input' case-insensitively into a DetectorId +// note: this method should only be used for API response data and not user input +func ParseDetectorIDInsensitively(input string) (*DetectorId, error) { + parser := resourceids.NewParserFromResourceIdType(DetectorId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DetectorId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ContainerAppName, ok = parsed.Parsed["containerAppName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "containerAppName", *parsed) + } + + if id.DetectorName, ok = parsed.Parsed["detectorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "detectorName", *parsed) + } + + return &id, nil +} + +// ValidateDetectorID checks that 'input' can be parsed as a Detector ID +func ValidateDetectorID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseDetectorID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Detector ID +func (id DetectorId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.App/containerApps/%s/detectors/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.ContainerAppName, id.DetectorName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Detector ID +func (id DetectorId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftApp", "Microsoft.App", "Microsoft.App"), + resourceids.StaticSegment("staticContainerApps", "containerApps", "containerApps"), + resourceids.UserSpecifiedSegment("containerAppName", "containerAppValue"), + resourceids.StaticSegment("staticDetectors", "detectors", "detectors"), + resourceids.UserSpecifiedSegment("detectorName", "detectorValue"), + } +} + +// String returns a human-readable description of this Detector ID +func (id DetectorId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Container App Name: %q", id.ContainerAppName), + fmt.Sprintf("Detector Name: %q", id.DetectorName), + } + return fmt.Sprintf("Detector (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/id_revisionsapirevision.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/id_revisionsapirevision.go new file mode 100644 index 000000000000..a46f51fe65ea --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/id_revisionsapirevision.go @@ -0,0 +1,142 @@ +package containerapps + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = RevisionsApiRevisionId{} + +// RevisionsApiRevisionId is a struct representing the Resource ID for a Revisions Api Revision +type RevisionsApiRevisionId struct { + SubscriptionId string + ResourceGroupName string + ContainerAppName string + RevisionName string +} + +// NewRevisionsApiRevisionID returns a new RevisionsApiRevisionId struct +func NewRevisionsApiRevisionID(subscriptionId string, resourceGroupName string, containerAppName string, revisionName string) RevisionsApiRevisionId { + return RevisionsApiRevisionId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + ContainerAppName: containerAppName, + RevisionName: revisionName, + } +} + +// ParseRevisionsApiRevisionID parses 'input' into a RevisionsApiRevisionId +func ParseRevisionsApiRevisionID(input string) (*RevisionsApiRevisionId, error) { + parser := resourceids.NewParserFromResourceIdType(RevisionsApiRevisionId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := RevisionsApiRevisionId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ContainerAppName, ok = parsed.Parsed["containerAppName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "containerAppName", *parsed) + } + + if id.RevisionName, ok = parsed.Parsed["revisionName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "revisionName", *parsed) + } + + return &id, nil +} + +// ParseRevisionsApiRevisionIDInsensitively parses 'input' case-insensitively into a RevisionsApiRevisionId +// note: this method should only be used for API response data and not user input +func ParseRevisionsApiRevisionIDInsensitively(input string) (*RevisionsApiRevisionId, error) { + parser := resourceids.NewParserFromResourceIdType(RevisionsApiRevisionId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := RevisionsApiRevisionId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ContainerAppName, ok = parsed.Parsed["containerAppName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "containerAppName", *parsed) + } + + if id.RevisionName, ok = parsed.Parsed["revisionName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "revisionName", *parsed) + } + + return &id, nil +} + +// ValidateRevisionsApiRevisionID checks that 'input' can be parsed as a Revisions Api Revision ID +func ValidateRevisionsApiRevisionID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseRevisionsApiRevisionID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Revisions Api Revision ID +func (id RevisionsApiRevisionId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.App/containerApps/%s/detectorProperties/revisionsApi/revisions/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.ContainerAppName, id.RevisionName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Revisions Api Revision ID +func (id RevisionsApiRevisionId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftApp", "Microsoft.App", "Microsoft.App"), + resourceids.StaticSegment("staticContainerApps", "containerApps", "containerApps"), + resourceids.UserSpecifiedSegment("containerAppName", "containerAppValue"), + resourceids.StaticSegment("staticDetectorProperties", "detectorProperties", "detectorProperties"), + resourceids.StaticSegment("staticRevisionsApi", "revisionsApi", "revisionsApi"), + resourceids.StaticSegment("staticRevisions", "revisions", "revisions"), + resourceids.UserSpecifiedSegment("revisionName", "revisionValue"), + } +} + +// String returns a human-readable description of this Revisions Api Revision ID +func (id RevisionsApiRevisionId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Container App Name: %q", id.ContainerAppName), + fmt.Sprintf("Revision Name: %q", id.RevisionName), + } + return fmt.Sprintf("Revisions Api Revision (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_createorupdate_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_createorupdate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_createorupdate_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_delete_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_delete_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_delete_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticsgetdetector_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticsgetdetector_autorest.go new file mode 100644 index 000000000000..d70f51a4094b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticsgetdetector_autorest.go @@ -0,0 +1,68 @@ +package containerapps + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsGetDetectorOperationResponse struct { + HttpResponse *http.Response + Model *Diagnostics +} + +// DiagnosticsGetDetector ... +func (c ContainerAppsClient) DiagnosticsGetDetector(ctx context.Context, id DetectorId) (result DiagnosticsGetDetectorOperationResponse, err error) { + req, err := c.preparerForDiagnosticsGetDetector(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsGetDetector", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsGetDetector", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForDiagnosticsGetDetector(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsGetDetector", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForDiagnosticsGetDetector prepares the DiagnosticsGetDetector request. +func (c ContainerAppsClient) preparerForDiagnosticsGetDetector(ctx context.Context, id DetectorId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForDiagnosticsGetDetector handles the response to the DiagnosticsGetDetector request. The method always +// closes the http.Response Body. +func (c ContainerAppsClient) responderForDiagnosticsGetDetector(resp *http.Response) (result DiagnosticsGetDetectorOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticsgetrevision_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticsgetrevision_autorest.go new file mode 100644 index 000000000000..9519af20656d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticsgetrevision_autorest.go @@ -0,0 +1,68 @@ +package containerapps + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsGetRevisionOperationResponse struct { + HttpResponse *http.Response + Model *Revision +} + +// DiagnosticsGetRevision ... +func (c ContainerAppsClient) DiagnosticsGetRevision(ctx context.Context, id RevisionsApiRevisionId) (result DiagnosticsGetRevisionOperationResponse, err error) { + req, err := c.preparerForDiagnosticsGetRevision(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsGetRevision", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsGetRevision", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForDiagnosticsGetRevision(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsGetRevision", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForDiagnosticsGetRevision prepares the DiagnosticsGetRevision request. +func (c ContainerAppsClient) preparerForDiagnosticsGetRevision(ctx context.Context, id RevisionsApiRevisionId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForDiagnosticsGetRevision handles the response to the DiagnosticsGetRevision request. The method always +// closes the http.Response Body. +func (c ContainerAppsClient) responderForDiagnosticsGetRevision(resp *http.Response) (result DiagnosticsGetRevisionOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticsgetroot_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticsgetroot_autorest.go new file mode 100644 index 000000000000..5acecfe5eea0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticsgetroot_autorest.go @@ -0,0 +1,69 @@ +package containerapps + +import ( + "context" + "fmt" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsGetRootOperationResponse struct { + HttpResponse *http.Response + Model *ContainerApp +} + +// DiagnosticsGetRoot ... +func (c ContainerAppsClient) DiagnosticsGetRoot(ctx context.Context, id ContainerAppId) (result DiagnosticsGetRootOperationResponse, err error) { + req, err := c.preparerForDiagnosticsGetRoot(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsGetRoot", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsGetRoot", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForDiagnosticsGetRoot(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsGetRoot", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForDiagnosticsGetRoot prepares the DiagnosticsGetRoot request. +func (c ContainerAppsClient) preparerForDiagnosticsGetRoot(ctx context.Context, id ContainerAppId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/detectorProperties/rootApi", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForDiagnosticsGetRoot handles the response to the DiagnosticsGetRoot request. The method always +// closes the http.Response Body. +func (c ContainerAppsClient) responderForDiagnosticsGetRoot(resp *http.Response) (result DiagnosticsGetRootOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticslistdetectors_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticslistdetectors_autorest.go new file mode 100644 index 000000000000..5b07761128e8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticslistdetectors_autorest.go @@ -0,0 +1,186 @@ +package containerapps + +import ( + "context" + "fmt" + "net/http" + "net/url" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsListDetectorsOperationResponse struct { + HttpResponse *http.Response + Model *[]Diagnostics + + nextLink *string + nextPageFunc func(ctx context.Context, nextLink string) (DiagnosticsListDetectorsOperationResponse, error) +} + +type DiagnosticsListDetectorsCompleteResult struct { + Items []Diagnostics +} + +func (r DiagnosticsListDetectorsOperationResponse) HasMore() bool { + return r.nextLink != nil +} + +func (r DiagnosticsListDetectorsOperationResponse) LoadMore(ctx context.Context) (resp DiagnosticsListDetectorsOperationResponse, err error) { + if !r.HasMore() { + err = fmt.Errorf("no more pages returned") + return + } + return r.nextPageFunc(ctx, *r.nextLink) +} + +// DiagnosticsListDetectors ... +func (c ContainerAppsClient) DiagnosticsListDetectors(ctx context.Context, id ContainerAppId) (resp DiagnosticsListDetectorsOperationResponse, err error) { + req, err := c.preparerForDiagnosticsListDetectors(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsListDetectors", nil, "Failure preparing request") + return + } + + resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsListDetectors", resp.HttpResponse, "Failure sending request") + return + } + + resp, err = c.responderForDiagnosticsListDetectors(resp.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsListDetectors", resp.HttpResponse, "Failure responding to request") + return + } + return +} + +// preparerForDiagnosticsListDetectors prepares the DiagnosticsListDetectors request. +func (c ContainerAppsClient) preparerForDiagnosticsListDetectors(ctx context.Context, id ContainerAppId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/detectors", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// preparerForDiagnosticsListDetectorsWithNextLink prepares the DiagnosticsListDetectors request with the given nextLink token. +func (c ContainerAppsClient) preparerForDiagnosticsListDetectorsWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { + uri, err := url.Parse(nextLink) + if err != nil { + return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) + } + queryParameters := map[string]interface{}{} + for k, v := range uri.Query() { + if len(v) == 0 { + continue + } + val := v[0] + val = autorest.Encode("query", val) + queryParameters[k] = val + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(uri.Path), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForDiagnosticsListDetectors handles the response to the DiagnosticsListDetectors request. The method always +// closes the http.Response Body. +func (c ContainerAppsClient) responderForDiagnosticsListDetectors(resp *http.Response) (result DiagnosticsListDetectorsOperationResponse, err error) { + type page struct { + Values []Diagnostics `json:"value"` + NextLink *string `json:"nextLink"` + } + var respObj page + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&respObj), + autorest.ByClosing()) + result.HttpResponse = resp + result.Model = &respObj.Values + result.nextLink = respObj.NextLink + if respObj.NextLink != nil { + result.nextPageFunc = func(ctx context.Context, nextLink string) (result DiagnosticsListDetectorsOperationResponse, err error) { + req, err := c.preparerForDiagnosticsListDetectorsWithNextLink(ctx, nextLink) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsListDetectors", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsListDetectors", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForDiagnosticsListDetectors(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsListDetectors", result.HttpResponse, "Failure responding to request") + return + } + + return + } + } + return +} + +// DiagnosticsListDetectorsComplete retrieves all of the results into a single object +func (c ContainerAppsClient) DiagnosticsListDetectorsComplete(ctx context.Context, id ContainerAppId) (DiagnosticsListDetectorsCompleteResult, error) { + return c.DiagnosticsListDetectorsCompleteMatchingPredicate(ctx, id, DiagnosticsOperationPredicate{}) +} + +// DiagnosticsListDetectorsCompleteMatchingPredicate retrieves all of the results and then applied the predicate +func (c ContainerAppsClient) DiagnosticsListDetectorsCompleteMatchingPredicate(ctx context.Context, id ContainerAppId, predicate DiagnosticsOperationPredicate) (resp DiagnosticsListDetectorsCompleteResult, err error) { + items := make([]Diagnostics, 0) + + page, err := c.DiagnosticsListDetectors(ctx, id) + if err != nil { + err = fmt.Errorf("loading the initial page: %+v", err) + return + } + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + for page.HasMore() { + page, err = page.LoadMore(ctx) + if err != nil { + err = fmt.Errorf("loading the next page: %+v", err) + return + } + + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + } + + out := DiagnosticsListDetectorsCompleteResult{ + Items: items, + } + return out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticslistrevisions_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticslistrevisions_autorest.go new file mode 100644 index 000000000000..30b840508636 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_diagnosticslistrevisions_autorest.go @@ -0,0 +1,215 @@ +package containerapps + +import ( + "context" + "fmt" + "net/http" + "net/url" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsListRevisionsOperationResponse struct { + HttpResponse *http.Response + Model *[]Revision + + nextLink *string + nextPageFunc func(ctx context.Context, nextLink string) (DiagnosticsListRevisionsOperationResponse, error) +} + +type DiagnosticsListRevisionsCompleteResult struct { + Items []Revision +} + +func (r DiagnosticsListRevisionsOperationResponse) HasMore() bool { + return r.nextLink != nil +} + +func (r DiagnosticsListRevisionsOperationResponse) LoadMore(ctx context.Context) (resp DiagnosticsListRevisionsOperationResponse, err error) { + if !r.HasMore() { + err = fmt.Errorf("no more pages returned") + return + } + return r.nextPageFunc(ctx, *r.nextLink) +} + +type DiagnosticsListRevisionsOperationOptions struct { + Filter *string +} + +func DefaultDiagnosticsListRevisionsOperationOptions() DiagnosticsListRevisionsOperationOptions { + return DiagnosticsListRevisionsOperationOptions{} +} + +func (o DiagnosticsListRevisionsOperationOptions) toHeaders() map[string]interface{} { + out := make(map[string]interface{}) + + return out +} + +func (o DiagnosticsListRevisionsOperationOptions) toQueryString() map[string]interface{} { + out := make(map[string]interface{}) + + if o.Filter != nil { + out["$filter"] = *o.Filter + } + + return out +} + +// DiagnosticsListRevisions ... +func (c ContainerAppsClient) DiagnosticsListRevisions(ctx context.Context, id ContainerAppId, options DiagnosticsListRevisionsOperationOptions) (resp DiagnosticsListRevisionsOperationResponse, err error) { + req, err := c.preparerForDiagnosticsListRevisions(ctx, id, options) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsListRevisions", nil, "Failure preparing request") + return + } + + resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsListRevisions", resp.HttpResponse, "Failure sending request") + return + } + + resp, err = c.responderForDiagnosticsListRevisions(resp.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsListRevisions", resp.HttpResponse, "Failure responding to request") + return + } + return +} + +// preparerForDiagnosticsListRevisions prepares the DiagnosticsListRevisions request. +func (c ContainerAppsClient) preparerForDiagnosticsListRevisions(ctx context.Context, id ContainerAppId, options DiagnosticsListRevisionsOperationOptions) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + for k, v := range options.toQueryString() { + queryParameters[k] = autorest.Encode("query", v) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithHeaders(options.toHeaders()), + autorest.WithPath(fmt.Sprintf("%s/detectorProperties/revisionsApi/revisions", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// preparerForDiagnosticsListRevisionsWithNextLink prepares the DiagnosticsListRevisions request with the given nextLink token. +func (c ContainerAppsClient) preparerForDiagnosticsListRevisionsWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { + uri, err := url.Parse(nextLink) + if err != nil { + return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) + } + queryParameters := map[string]interface{}{} + for k, v := range uri.Query() { + if len(v) == 0 { + continue + } + val := v[0] + val = autorest.Encode("query", val) + queryParameters[k] = val + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(uri.Path), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForDiagnosticsListRevisions handles the response to the DiagnosticsListRevisions request. The method always +// closes the http.Response Body. +func (c ContainerAppsClient) responderForDiagnosticsListRevisions(resp *http.Response) (result DiagnosticsListRevisionsOperationResponse, err error) { + type page struct { + Values []Revision `json:"value"` + NextLink *string `json:"nextLink"` + } + var respObj page + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&respObj), + autorest.ByClosing()) + result.HttpResponse = resp + result.Model = &respObj.Values + result.nextLink = respObj.NextLink + if respObj.NextLink != nil { + result.nextPageFunc = func(ctx context.Context, nextLink string) (result DiagnosticsListRevisionsOperationResponse, err error) { + req, err := c.preparerForDiagnosticsListRevisionsWithNextLink(ctx, nextLink) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsListRevisions", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsListRevisions", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForDiagnosticsListRevisions(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "DiagnosticsListRevisions", result.HttpResponse, "Failure responding to request") + return + } + + return + } + } + return +} + +// DiagnosticsListRevisionsComplete retrieves all of the results into a single object +func (c ContainerAppsClient) DiagnosticsListRevisionsComplete(ctx context.Context, id ContainerAppId, options DiagnosticsListRevisionsOperationOptions) (DiagnosticsListRevisionsCompleteResult, error) { + return c.DiagnosticsListRevisionsCompleteMatchingPredicate(ctx, id, options, RevisionOperationPredicate{}) +} + +// DiagnosticsListRevisionsCompleteMatchingPredicate retrieves all of the results and then applied the predicate +func (c ContainerAppsClient) DiagnosticsListRevisionsCompleteMatchingPredicate(ctx context.Context, id ContainerAppId, options DiagnosticsListRevisionsOperationOptions, predicate RevisionOperationPredicate) (resp DiagnosticsListRevisionsCompleteResult, err error) { + items := make([]Revision, 0) + + page, err := c.DiagnosticsListRevisions(ctx, id, options) + if err != nil { + err = fmt.Errorf("loading the initial page: %+v", err) + return + } + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + for page.HasMore() { + page, err = page.LoadMore(ctx) + if err != nil { + err = fmt.Errorf("loading the next page: %+v", err) + return + } + + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + } + + out := DiagnosticsListRevisionsCompleteResult{ + Items: items, + } + return out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_get_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_get_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_get_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_getauthtoken_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_getauthtoken_autorest.go new file mode 100644 index 000000000000..a3ea06035f7a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_getauthtoken_autorest.go @@ -0,0 +1,69 @@ +package containerapps + +import ( + "context" + "fmt" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetAuthTokenOperationResponse struct { + HttpResponse *http.Response + Model *ContainerAppAuthToken +} + +// GetAuthToken ... +func (c ContainerAppsClient) GetAuthToken(ctx context.Context, id ContainerAppId) (result GetAuthTokenOperationResponse, err error) { + req, err := c.preparerForGetAuthToken(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "GetAuthToken", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "GetAuthToken", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForGetAuthToken(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "GetAuthToken", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForGetAuthToken prepares the GetAuthToken request. +func (c ContainerAppsClient) preparerForGetAuthToken(ctx context.Context, id ContainerAppId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/getAuthtoken", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForGetAuthToken handles the response to the GetAuthToken request. The method always +// closes the http.Response Body. +func (c ContainerAppsClient) responderForGetAuthToken(resp *http.Response) (result GetAuthTokenOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_listbyresourcegroup_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_listbyresourcegroup_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_listbyresourcegroup_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_listbyresourcegroup_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_listbysubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_listbysubscription_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_listbysubscription_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_listbysubscription_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_listcustomhostnameanalysis_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_listcustomhostnameanalysis_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_listcustomhostnameanalysis_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_listcustomhostnameanalysis_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_listsecrets_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_listsecrets_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_listsecrets_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_listsecrets_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_start_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_start_autorest.go new file mode 100644 index 000000000000..50a689f5252f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_start_autorest.go @@ -0,0 +1,78 @@ +package containerapps + +import ( + "context" + "fmt" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/hashicorp/go-azure-helpers/polling" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type StartOperationResponse struct { + Poller polling.LongRunningPoller + HttpResponse *http.Response +} + +// Start ... +func (c ContainerAppsClient) Start(ctx context.Context, id ContainerAppId) (result StartOperationResponse, err error) { + req, err := c.preparerForStart(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "Start", nil, "Failure preparing request") + return + } + + result, err = c.senderForStart(ctx, req) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "Start", result.HttpResponse, "Failure sending request") + return + } + + return +} + +// StartThenPoll performs Start then polls until it's completed +func (c ContainerAppsClient) StartThenPoll(ctx context.Context, id ContainerAppId) error { + result, err := c.Start(ctx, id) + if err != nil { + return fmt.Errorf("performing Start: %+v", err) + } + + if err := result.Poller.PollUntilDone(); err != nil { + return fmt.Errorf("polling after Start: %+v", err) + } + + return nil +} + +// preparerForStart prepares the Start request. +func (c ContainerAppsClient) preparerForStart(ctx context.Context, id ContainerAppId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/start", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// senderForStart sends the Start request. The method will close the +// http.Response Body if it receives an error. +func (c ContainerAppsClient) senderForStart(ctx context.Context, req *http.Request) (future StartOperationResponse, err error) { + var resp *http.Response + resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + return + } + + future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_stop_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_stop_autorest.go new file mode 100644 index 000000000000..5c07c08ff8f2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_stop_autorest.go @@ -0,0 +1,78 @@ +package containerapps + +import ( + "context" + "fmt" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/hashicorp/go-azure-helpers/polling" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type StopOperationResponse struct { + Poller polling.LongRunningPoller + HttpResponse *http.Response +} + +// Stop ... +func (c ContainerAppsClient) Stop(ctx context.Context, id ContainerAppId) (result StopOperationResponse, err error) { + req, err := c.preparerForStop(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "Stop", nil, "Failure preparing request") + return + } + + result, err = c.senderForStop(ctx, req) + if err != nil { + err = autorest.NewErrorWithError(err, "containerapps.ContainerAppsClient", "Stop", result.HttpResponse, "Failure sending request") + return + } + + return +} + +// StopThenPoll performs Stop then polls until it's completed +func (c ContainerAppsClient) StopThenPoll(ctx context.Context, id ContainerAppId) error { + result, err := c.Stop(ctx, id) + if err != nil { + return fmt.Errorf("performing Stop: %+v", err) + } + + if err := result.Poller.PollUntilDone(); err != nil { + return fmt.Errorf("polling after Stop: %+v", err) + } + + return nil +} + +// preparerForStop prepares the Stop request. +func (c ContainerAppsClient) preparerForStop(ctx context.Context, id ContainerAppId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/stop", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// senderForStop sends the Stop request. The method will close the +// http.Response Body if it receives an error. +func (c ContainerAppsClient) senderForStop(ctx context.Context, req *http.Request) (future StopOperationResponse, err error) { + var resp *http.Response + resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + return + } + + future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_update_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_update_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/method_update_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/method_update_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_basecontainer.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_basecontainer.go new file mode 100644 index 000000000000..3190b1630ca0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_basecontainer.go @@ -0,0 +1,14 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BaseContainer struct { + Args *[]string `json:"args,omitempty"` + Command *[]string `json:"command,omitempty"` + Env *[]EnvironmentVar `json:"env,omitempty"` + Image *string `json:"image,omitempty"` + Name *string `json:"name,omitempty"` + Resources *ContainerResources `json:"resources,omitempty"` + VolumeMounts *[]VolumeMount `json:"volumeMounts,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_configuration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_configuration.go new file mode 100644 index 000000000000..199878bdae15 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_configuration.go @@ -0,0 +1,14 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Configuration struct { + ActiveRevisionsMode *ActiveRevisionsMode `json:"activeRevisionsMode,omitempty"` + Dapr *Dapr `json:"dapr,omitempty"` + Ingress *Ingress `json:"ingress,omitempty"` + MaxInactiveRevisions *int64 `json:"maxInactiveRevisions,omitempty"` + Registries *[]RegistryCredentials `json:"registries,omitempty"` + Secrets *[]Secret `json:"secrets,omitempty"` + Service *Service `json:"service,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_container.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_container.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_container.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_container.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerapp.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerapp.go new file mode 100644 index 000000000000..0c382ed58675 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerapp.go @@ -0,0 +1,22 @@ +package containerapps + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerApp struct { + ExtendedLocation *ExtendedLocation `json:"extendedLocation,omitempty"` + Id *string `json:"id,omitempty"` + Identity *identity.LegacySystemAndUserAssignedMap `json:"identity,omitempty"` + Location string `json:"location"` + ManagedBy *string `json:"managedBy,omitempty"` + Name *string `json:"name,omitempty"` + Properties *ContainerAppProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Tags *map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappauthtoken.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappauthtoken.go new file mode 100644 index 000000000000..89b63f9e3692 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappauthtoken.go @@ -0,0 +1,18 @@ +package containerapps + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerAppAuthToken struct { + Id *string `json:"id,omitempty"` + Location string `json:"location"` + Name *string `json:"name,omitempty"` + Properties *ContainerAppAuthTokenProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Tags *map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappauthtokenproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappauthtokenproperties.go new file mode 100644 index 000000000000..243fce5c07e4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappauthtokenproperties.go @@ -0,0 +1,27 @@ +package containerapps + +import ( + "time" + + "github.com/hashicorp/go-azure-helpers/lang/dates" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerAppAuthTokenProperties struct { + Expires *string `json:"expires,omitempty"` + Token *string `json:"token,omitempty"` +} + +func (o *ContainerAppAuthTokenProperties) GetExpiresAsTime() (*time.Time, error) { + if o.Expires == nil { + return nil, nil + } + return dates.ParseAsFormat(o.Expires, "2006-01-02T15:04:05Z07:00") +} + +func (o *ContainerAppAuthTokenProperties) SetExpiresAsTime(input time.Time) { + formatted := input.Format("2006-01-02T15:04:05Z07:00") + o.Expires = &formatted +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerappprobe.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappprobe.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerappprobe.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappprobe.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerappprobehttpget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappprobehttpget.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerappprobehttpget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappprobehttpget.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerappprobehttpgethttpheadersinlined.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappprobehttpgethttpheadersinlined.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerappprobehttpgethttpheadersinlined.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappprobehttpgethttpheadersinlined.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerappprobetcpsocket.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappprobetcpsocket.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerappprobetcpsocket.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappprobetcpsocket.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerappproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappproperties.go similarity index 71% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerappproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappproperties.go index 883c2d42cd44..5dab8083bdc2 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerappproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappproperties.go @@ -6,10 +6,14 @@ package containerapps type ContainerAppProperties struct { Configuration *Configuration `json:"configuration,omitempty"` CustomDomainVerificationId *string `json:"customDomainVerificationId,omitempty"` + EnvironmentId *string `json:"environmentId,omitempty"` + EventStreamEndpoint *string `json:"eventStreamEndpoint,omitempty"` + LatestReadyRevisionName *string `json:"latestReadyRevisionName,omitempty"` LatestRevisionFqdn *string `json:"latestRevisionFqdn,omitempty"` LatestRevisionName *string `json:"latestRevisionName,omitempty"` ManagedEnvironmentId *string `json:"managedEnvironmentId,omitempty"` OutboundIPAddresses *[]string `json:"outboundIpAddresses,omitempty"` ProvisioningState *ContainerAppProvisioningState `json:"provisioningState,omitempty"` Template *Template `json:"template,omitempty"` + WorkloadProfileName *string `json:"workloadProfileName,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappsecret.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappsecret.go new file mode 100644 index 000000000000..5f93d41bec2f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerappsecret.go @@ -0,0 +1,11 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerAppSecret struct { + Identity *string `json:"identity,omitempty"` + KeyVaultUrl *string `json:"keyVaultUrl,omitempty"` + Name *string `json:"name,omitempty"` + Value *string `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerresources.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerresources.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerresources.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_containerresources.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_corspolicy.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_corspolicy.go new file mode 100644 index 000000000000..414eae004705 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_corspolicy.go @@ -0,0 +1,13 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CorsPolicy struct { + AllowCredentials *bool `json:"allowCredentials,omitempty"` + AllowedHeaders *[]string `json:"allowedHeaders,omitempty"` + AllowedMethods *[]string `json:"allowedMethods,omitempty"` + AllowedOrigins []string `json:"allowedOrigins"` + ExposeHeaders *[]string `json:"exposeHeaders,omitempty"` + MaxAge *int64 `json:"maxAge,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_customdomain.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_customdomain.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_customdomain.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_customdomain.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_customhostnameanalysisresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_customhostnameanalysisresult.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_customhostnameanalysisresult.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_customhostnameanalysisresult.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_customhostnameanalysisresultcustomdomainverificationfailureinfo.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_customhostnameanalysisresultcustomdomainverificationfailureinfo.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_customhostnameanalysisresultcustomdomainverificationfailureinfo.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_customhostnameanalysisresultcustomdomainverificationfailureinfo.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_customhostnameanalysisresultcustomdomainverificationfailureinfodetailsinlined.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_customhostnameanalysisresultcustomdomainverificationfailureinfodetailsinlined.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_customhostnameanalysisresultcustomdomainverificationfailureinfodetailsinlined.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_customhostnameanalysisresultcustomdomainverificationfailureinfodetailsinlined.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_customscalerule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_customscalerule.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_customscalerule.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_customscalerule.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_dapr.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_dapr.go new file mode 100644 index 000000000000..be3e090812be --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_dapr.go @@ -0,0 +1,15 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Dapr struct { + AppId *string `json:"appId,omitempty"` + AppPort *int64 `json:"appPort,omitempty"` + AppProtocol *AppProtocol `json:"appProtocol,omitempty"` + EnableApiLogging *bool `json:"enableApiLogging,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + HTTPMaxRequestSize *int64 `json:"httpMaxRequestSize,omitempty"` + HTTPReadBufferSize *int64 `json:"httpReadBufferSize,omitempty"` + LogLevel *LogLevel `json:"logLevel,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdataprovidermetadata.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdataprovidermetadata.go new file mode 100644 index 000000000000..4f49cfc12683 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdataprovidermetadata.go @@ -0,0 +1,9 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticDataProviderMetadata struct { + PropertyBag *[]DiagnosticDataProviderMetadataPropertyBagInlined `json:"propertyBag,omitempty"` + ProviderName *string `json:"providerName,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_secret.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdataprovidermetadatapropertybaginlined.go similarity index 80% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_secret.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdataprovidermetadatapropertybaginlined.go index 172aa1e71e0c..bb3c8371f295 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_secret.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdataprovidermetadatapropertybaginlined.go @@ -3,7 +3,7 @@ package containerapps // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type Secret struct { +type DiagnosticDataProviderMetadataPropertyBagInlined struct { Name *string `json:"name,omitempty"` Value *string `json:"value,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdatatableresponsecolumn.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdatatableresponsecolumn.go new file mode 100644 index 000000000000..f0da0d4af5ad --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdatatableresponsecolumn.go @@ -0,0 +1,10 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticDataTableResponseColumn struct { + ColumnName *string `json:"columnName,omitempty"` + ColumnType *string `json:"columnType,omitempty"` + DataType *string `json:"dataType,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdatatableresponseobject.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdatatableresponseobject.go new file mode 100644 index 000000000000..f5ab6cef03a5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticdatatableresponseobject.go @@ -0,0 +1,10 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticDataTableResponseObject struct { + Columns *[]DiagnosticDataTableResponseColumn `json:"columns,omitempty"` + Rows *[]interface{} `json:"rows,omitempty"` + TableName *string `json:"tableName,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticrendering.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticrendering.go new file mode 100644 index 000000000000..febf8f4bc441 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticrendering.go @@ -0,0 +1,11 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticRendering struct { + Description *string `json:"description,omitempty"` + IsVisible *bool `json:"isVisible,omitempty"` + Title *string `json:"title,omitempty"` + Type *int64 `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnostics.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnostics.go new file mode 100644 index 000000000000..332b9e6e8a78 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnostics.go @@ -0,0 +1,16 @@ +package containerapps + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Diagnostics struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *DiagnosticsProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsdataapiresponse.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsdataapiresponse.go new file mode 100644 index 000000000000..8a4e162a0f14 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsdataapiresponse.go @@ -0,0 +1,9 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsDataApiResponse struct { + RenderingProperties *DiagnosticRendering `json:"renderingProperties,omitempty"` + Table *DiagnosticDataTableResponseObject `json:"table,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsdefinition.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsdefinition.go new file mode 100644 index 000000000000..01d57bd28c29 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsdefinition.go @@ -0,0 +1,16 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsDefinition struct { + AnalysisTypes *[]string `json:"analysisTypes,omitempty"` + Author *string `json:"author,omitempty"` + Category *string `json:"category,omitempty"` + Description *string `json:"description,omitempty"` + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Score *float64 `json:"score,omitempty"` + SupportTopicList *[]DiagnosticSupportTopic `json:"supportTopicList,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsproperties.go new file mode 100644 index 000000000000..5606b01916ef --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsproperties.go @@ -0,0 +1,11 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsProperties struct { + DataProviderMetadata *DiagnosticDataProviderMetadata `json:"dataProviderMetadata,omitempty"` + Dataset *[]DiagnosticsDataApiResponse `json:"dataset,omitempty"` + Metadata *DiagnosticsDefinition `json:"metadata,omitempty"` + Status *DiagnosticsStatus `json:"status,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsstatus.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsstatus.go new file mode 100644 index 000000000000..ff2dafc6e9e0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsstatus.go @@ -0,0 +1,9 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsStatus struct { + Message *string `json:"message,omitempty"` + StatusId *int64 `json:"statusId,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsupporttopic.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsupporttopic.go new file mode 100644 index 000000000000..36d9fb7fe24c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_diagnosticsupporttopic.go @@ -0,0 +1,9 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticSupportTopic struct { + Id *string `json:"id,omitempty"` + PesId *string `json:"pesId,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_environmentvar.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_environmentvar.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_environmentvar.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_environmentvar.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_extendedlocation.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_extendedlocation.go new file mode 100644 index 000000000000..20073b0ba295 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_extendedlocation.go @@ -0,0 +1,9 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ExtendedLocation struct { + Name *string `json:"name,omitempty"` + Type *ExtendedLocationTypes `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_httpscalerule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_httpscalerule.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_httpscalerule.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_httpscalerule.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_ingress.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_ingress.go new file mode 100644 index 000000000000..1941dc5835df --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_ingress.go @@ -0,0 +1,19 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Ingress struct { + AllowInsecure *bool `json:"allowInsecure,omitempty"` + ClientCertificateMode *IngressClientCertificateMode `json:"clientCertificateMode,omitempty"` + CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"` + CustomDomains *[]CustomDomain `json:"customDomains,omitempty"` + ExposedPort *int64 `json:"exposedPort,omitempty"` + External *bool `json:"external,omitempty"` + Fqdn *string `json:"fqdn,omitempty"` + IPSecurityRestrictions *[]IPSecurityRestrictionRule `json:"ipSecurityRestrictions,omitempty"` + StickySessions *IngressStickySessions `json:"stickySessions,omitempty"` + TargetPort *int64 `json:"targetPort,omitempty"` + Traffic *[]TrafficWeight `json:"traffic,omitempty"` + Transport *IngressTransportMethod `json:"transport,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_secret.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_ingressstickysessions.go similarity index 56% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_secret.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_ingressstickysessions.go index 8a23d9f334e1..48b18e0ee171 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_secret.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_ingressstickysessions.go @@ -1,9 +1,8 @@ -package daprcomponents +package containerapps // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type Secret struct { - Name *string `json:"name,omitempty"` - Value *string `json:"value,omitempty"` +type IngressStickySessions struct { + Affinity *Affinity `json:"affinity,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_ipsecurityrestrictionrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_ipsecurityrestrictionrule.go new file mode 100644 index 000000000000..959c43b6cbb4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_ipsecurityrestrictionrule.go @@ -0,0 +1,11 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type IPSecurityRestrictionRule struct { + Action Action `json:"action"` + Description *string `json:"description,omitempty"` + IPAddressRange string `json:"ipAddressRange"` + Name string `json:"name"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_queuescalerule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_queuescalerule.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_queuescalerule.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_queuescalerule.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_registrycredentials.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_registrycredentials.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_registrycredentials.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_registrycredentials.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_revision.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_revision.go new file mode 100644 index 000000000000..02d416846200 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_revision.go @@ -0,0 +1,16 @@ +package containerapps + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Revision struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *RevisionProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_revisionproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_revisionproperties.go new file mode 100644 index 000000000000..2fc409ae580b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_revisionproperties.go @@ -0,0 +1,48 @@ +package containerapps + +import ( + "time" + + "github.com/hashicorp/go-azure-helpers/lang/dates" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type RevisionProperties struct { + Active *bool `json:"active,omitempty"` + CreatedTime *string `json:"createdTime,omitempty"` + Fqdn *string `json:"fqdn,omitempty"` + HealthState *RevisionHealthState `json:"healthState,omitempty"` + LastActiveTime *string `json:"lastActiveTime,omitempty"` + ProvisioningError *string `json:"provisioningError,omitempty"` + ProvisioningState *RevisionProvisioningState `json:"provisioningState,omitempty"` + Replicas *int64 `json:"replicas,omitempty"` + RunningState *RevisionRunningState `json:"runningState,omitempty"` + Template *Template `json:"template,omitempty"` + TrafficWeight *int64 `json:"trafficWeight,omitempty"` +} + +func (o *RevisionProperties) GetCreatedTimeAsTime() (*time.Time, error) { + if o.CreatedTime == nil { + return nil, nil + } + return dates.ParseAsFormat(o.CreatedTime, "2006-01-02T15:04:05Z07:00") +} + +func (o *RevisionProperties) SetCreatedTimeAsTime(input time.Time) { + formatted := input.Format("2006-01-02T15:04:05Z07:00") + o.CreatedTime = &formatted +} + +func (o *RevisionProperties) GetLastActiveTimeAsTime() (*time.Time, error) { + if o.LastActiveTime == nil { + return nil, nil + } + return dates.ParseAsFormat(o.LastActiveTime, "2006-01-02T15:04:05Z07:00") +} + +func (o *RevisionProperties) SetLastActiveTimeAsTime(input time.Time) { + formatted := input.Format("2006-01-02T15:04:05Z07:00") + o.LastActiveTime = &formatted +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_scale.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_scale.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_scale.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_scale.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_scalerule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_scalerule.go similarity index 89% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_scalerule.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_scalerule.go index 4fc431004612..93c358a6fa7b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_scalerule.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_scalerule.go @@ -8,4 +8,5 @@ type ScaleRule struct { Custom *CustomScaleRule `json:"custom,omitempty"` HTTP *HTTPScaleRule `json:"http,omitempty"` Name *string `json:"name,omitempty"` + Tcp *TcpScaleRule `json:"tcp,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_scaleruleauth.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_scaleruleauth.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_scaleruleauth.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_scaleruleauth.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_secret.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_secret.go new file mode 100644 index 000000000000..a1fbe4ec8f65 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_secret.go @@ -0,0 +1,11 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Secret struct { + Identity *string `json:"identity,omitempty"` + KeyVaultUrl *string `json:"keyVaultUrl,omitempty"` + Name *string `json:"name,omitempty"` + Value *string `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_secretscollection.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_secretscollection.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_secretscollection.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_secretscollection.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_secretvolumeitem.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_secretvolumeitem.go new file mode 100644 index 000000000000..09096efbdd0f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_secretvolumeitem.go @@ -0,0 +1,9 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SecretVolumeItem struct { + Path *string `json:"path,omitempty"` + SecretRef *string `json:"secretRef,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_service.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_service.go new file mode 100644 index 000000000000..f66b3642bfc5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_service.go @@ -0,0 +1,8 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Service struct { + Type string `json:"type"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_servicebind.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_servicebind.go new file mode 100644 index 000000000000..29229a27ecea --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_servicebind.go @@ -0,0 +1,9 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServiceBind struct { + Name *string `json:"name,omitempty"` + ServiceId *string `json:"serviceId,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_tcpscalerule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_tcpscalerule.go new file mode 100644 index 000000000000..4a970c61e67d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_tcpscalerule.go @@ -0,0 +1,9 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TcpScaleRule struct { + Auth *[]ScaleRuleAuth `json:"auth,omitempty"` + Metadata *map[string]string `json:"metadata,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_template.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_template.go new file mode 100644 index 000000000000..03f13f079804 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_template.go @@ -0,0 +1,14 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Template struct { + Containers *[]Container `json:"containers,omitempty"` + InitContainers *[]BaseContainer `json:"initContainers,omitempty"` + RevisionSuffix *string `json:"revisionSuffix,omitempty"` + Scale *Scale `json:"scale,omitempty"` + ServiceBinds *[]ServiceBind `json:"serviceBinds,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Volumes *[]Volume `json:"volumes,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_trafficweight.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_trafficweight.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_trafficweight.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_trafficweight.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_volume.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_volume.go new file mode 100644 index 000000000000..422cdf3ec3d9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_volume.go @@ -0,0 +1,12 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Volume struct { + MountOptions *string `json:"mountOptions,omitempty"` + Name *string `json:"name,omitempty"` + Secrets *[]SecretVolumeItem `json:"secrets,omitempty"` + StorageName *string `json:"storageName,omitempty"` + StorageType *StorageType `json:"storageType,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_volumemount.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_volumemount.go similarity index 86% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_volumemount.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_volumemount.go index 06e860defd67..c59e9fc682d9 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_volumemount.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/model_volumemount.go @@ -5,5 +5,6 @@ package containerapps type VolumeMount struct { MountPath *string `json:"mountPath,omitempty"` + SubPath *string `json:"subPath,omitempty"` VolumeName *string `json:"volumeName,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/predicates.go new file mode 100644 index 000000000000..2f9822c394b4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/predicates.go @@ -0,0 +1,83 @@ +package containerapps + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerAppOperationPredicate struct { + Id *string + Location *string + ManagedBy *string + Name *string + Type *string +} + +func (p ContainerAppOperationPredicate) Matches(input ContainerApp) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Location != nil && *p.Location != input.Location { + return false + } + + if p.ManagedBy != nil && (input.ManagedBy == nil || *p.ManagedBy != *input.ManagedBy) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type DiagnosticsOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p DiagnosticsOperationPredicate) Matches(input Diagnostics) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type RevisionOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p RevisionOperationPredicate) Matches(input Revision) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/version.go index b76ce8f07974..07a5b1edc557 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2022-03-01" +const defaultApiVersion = "2023-05-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/containerapps/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/README.md similarity index 96% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/README.md index 72a9d7a55012..b0db98f8088d 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions` Documentation -The `containerappsrevisions` SDK allows for interaction with the Azure Resource Manager Service `containerapps` (API Version `2022-03-01`). +The `containerappsrevisions` SDK allows for interaction with the Azure Resource Manager Service `containerapps` (API Version `2023-05-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions" +import "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions" ``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/constants.go similarity index 74% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/constants.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/constants.go index 9493b0c859ee..9eee43d32f77 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/constants.go @@ -73,6 +73,46 @@ func parseRevisionProvisioningState(input string) (*RevisionProvisioningState, e return &out, nil } +type RevisionRunningState string + +const ( + RevisionRunningStateDegraded RevisionRunningState = "Degraded" + RevisionRunningStateFailed RevisionRunningState = "Failed" + RevisionRunningStateProcessing RevisionRunningState = "Processing" + RevisionRunningStateRunning RevisionRunningState = "Running" + RevisionRunningStateStopped RevisionRunningState = "Stopped" + RevisionRunningStateUnknown RevisionRunningState = "Unknown" +) + +func PossibleValuesForRevisionRunningState() []string { + return []string{ + string(RevisionRunningStateDegraded), + string(RevisionRunningStateFailed), + string(RevisionRunningStateProcessing), + string(RevisionRunningStateRunning), + string(RevisionRunningStateStopped), + string(RevisionRunningStateUnknown), + } +} + +func parseRevisionRunningState(input string) (*RevisionRunningState, error) { + vals := map[string]RevisionRunningState{ + "degraded": RevisionRunningStateDegraded, + "failed": RevisionRunningStateFailed, + "processing": RevisionRunningStateProcessing, + "running": RevisionRunningStateRunning, + "stopped": RevisionRunningStateStopped, + "unknown": RevisionRunningStateUnknown, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := RevisionRunningState(input) + return &out, nil +} + type Scheme string const ( @@ -106,12 +146,14 @@ type StorageType string const ( StorageTypeAzureFile StorageType = "AzureFile" StorageTypeEmptyDir StorageType = "EmptyDir" + StorageTypeSecret StorageType = "Secret" ) func PossibleValuesForStorageType() []string { return []string{ string(StorageTypeAzureFile), string(StorageTypeEmptyDir), + string(StorageTypeSecret), } } @@ -119,6 +161,7 @@ func parseStorageType(input string) (*StorageType, error) { vals := map[string]StorageType{ "azurefile": StorageTypeAzureFile, "emptydir": StorageTypeEmptyDir, + "secret": StorageTypeSecret, } if v, ok := vals[strings.ToLower(input)]; ok { return &v, nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/id_containerapp.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/id_containerapp.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/id_containerapp.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/id_containerapp.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/id_revision.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/id_revision.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/id_revision.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/id_revision.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/method_activaterevision_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/method_activaterevision_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/method_activaterevision_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/method_activaterevision_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/method_deactivaterevision_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/method_deactivaterevision_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/method_deactivaterevision_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/method_deactivaterevision_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/method_getrevision_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/method_getrevision_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/method_getrevision_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/method_getrevision_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/method_listrevisions_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/method_listrevisions_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/method_listrevisions_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/method_listrevisions_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/method_restartrevision_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/method_restartrevision_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/method_restartrevision_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/method_restartrevision_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_basecontainer.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_basecontainer.go new file mode 100644 index 000000000000..1826920dd686 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_basecontainer.go @@ -0,0 +1,14 @@ +package containerappsrevisions + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BaseContainer struct { + Args *[]string `json:"args,omitempty"` + Command *[]string `json:"command,omitempty"` + Env *[]EnvironmentVar `json:"env,omitempty"` + Image *string `json:"image,omitempty"` + Name *string `json:"name,omitempty"` + Resources *ContainerResources `json:"resources,omitempty"` + VolumeMounts *[]VolumeMount `json:"volumeMounts,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_container.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_container.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_container.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_container.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_containerappprobe.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_containerappprobe.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_containerappprobe.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_containerappprobe.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_containerappprobehttpget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_containerappprobehttpget.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_containerappprobehttpget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_containerappprobehttpget.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_containerappprobehttpgethttpheadersinlined.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_containerappprobehttpgethttpheadersinlined.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_containerappprobehttpgethttpheadersinlined.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_containerappprobehttpgethttpheadersinlined.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_containerappprobetcpsocket.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_containerappprobetcpsocket.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_containerappprobetcpsocket.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_containerappprobetcpsocket.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_containerresources.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_containerresources.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_containerresources.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_containerresources.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_customscalerule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_customscalerule.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_customscalerule.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_customscalerule.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_environmentvar.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_environmentvar.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_environmentvar.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_environmentvar.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_httpscalerule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_httpscalerule.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_httpscalerule.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_httpscalerule.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_queuescalerule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_queuescalerule.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_queuescalerule.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_queuescalerule.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_revision.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_revision.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_revision.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_revision.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_revisionproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_revisionproperties.go similarity index 71% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_revisionproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_revisionproperties.go index 60753fcac96a..9c61e1f4b45d 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_revisionproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_revisionproperties.go @@ -14,9 +14,11 @@ type RevisionProperties struct { CreatedTime *string `json:"createdTime,omitempty"` Fqdn *string `json:"fqdn,omitempty"` HealthState *RevisionHealthState `json:"healthState,omitempty"` + LastActiveTime *string `json:"lastActiveTime,omitempty"` ProvisioningError *string `json:"provisioningError,omitempty"` ProvisioningState *RevisionProvisioningState `json:"provisioningState,omitempty"` Replicas *int64 `json:"replicas,omitempty"` + RunningState *RevisionRunningState `json:"runningState,omitempty"` Template *Template `json:"template,omitempty"` TrafficWeight *int64 `json:"trafficWeight,omitempty"` } @@ -32,3 +34,15 @@ func (o *RevisionProperties) SetCreatedTimeAsTime(input time.Time) { formatted := input.Format("2006-01-02T15:04:05Z07:00") o.CreatedTime = &formatted } + +func (o *RevisionProperties) GetLastActiveTimeAsTime() (*time.Time, error) { + if o.LastActiveTime == nil { + return nil, nil + } + return dates.ParseAsFormat(o.LastActiveTime, "2006-01-02T15:04:05Z07:00") +} + +func (o *RevisionProperties) SetLastActiveTimeAsTime(input time.Time) { + formatted := input.Format("2006-01-02T15:04:05Z07:00") + o.LastActiveTime = &formatted +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_scale.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_scale.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_scale.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_scale.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_scalerule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_scalerule.go similarity index 89% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_scalerule.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_scalerule.go index 4bcd2c4a29e3..c456a55fad25 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_scalerule.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_scalerule.go @@ -8,4 +8,5 @@ type ScaleRule struct { Custom *CustomScaleRule `json:"custom,omitempty"` HTTP *HTTPScaleRule `json:"http,omitempty"` Name *string `json:"name,omitempty"` + Tcp *TcpScaleRule `json:"tcp,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_scaleruleauth.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_scaleruleauth.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_scaleruleauth.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_scaleruleauth.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_secretvolumeitem.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_secretvolumeitem.go new file mode 100644 index 000000000000..507833690ca2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_secretvolumeitem.go @@ -0,0 +1,9 @@ +package containerappsrevisions + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SecretVolumeItem struct { + Path *string `json:"path,omitempty"` + SecretRef *string `json:"secretRef,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_servicebind.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_servicebind.go new file mode 100644 index 000000000000..91f1da05ffdb --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_servicebind.go @@ -0,0 +1,9 @@ +package containerappsrevisions + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServiceBind struct { + Name *string `json:"name,omitempty"` + ServiceId *string `json:"serviceId,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_volume.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_tcpscalerule.go similarity index 50% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_volume.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_tcpscalerule.go index 0ba0817465fa..be173ac2b1af 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_volume.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_tcpscalerule.go @@ -3,8 +3,7 @@ package containerappsrevisions // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type Volume struct { - Name *string `json:"name,omitempty"` - StorageName *string `json:"storageName,omitempty"` - StorageType *StorageType `json:"storageType,omitempty"` +type TcpScaleRule struct { + Auth *[]ScaleRuleAuth `json:"auth,omitempty"` + Metadata *map[string]string `json:"metadata,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_template.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_template.go new file mode 100644 index 000000000000..8de2ea6c5bb7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_template.go @@ -0,0 +1,14 @@ +package containerappsrevisions + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Template struct { + Containers *[]Container `json:"containers,omitempty"` + InitContainers *[]BaseContainer `json:"initContainers,omitempty"` + RevisionSuffix *string `json:"revisionSuffix,omitempty"` + Scale *Scale `json:"scale,omitempty"` + ServiceBinds *[]ServiceBind `json:"serviceBinds,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` + Volumes *[]Volume `json:"volumes,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_volume.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_volume.go new file mode 100644 index 000000000000..8088c22d5163 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_volume.go @@ -0,0 +1,12 @@ +package containerappsrevisions + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Volume struct { + MountOptions *string `json:"mountOptions,omitempty"` + Name *string `json:"name,omitempty"` + Secrets *[]SecretVolumeItem `json:"secrets,omitempty"` + StorageName *string `json:"storageName,omitempty"` + StorageType *StorageType `json:"storageType,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_volumemount.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_volumemount.go similarity index 87% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_volumemount.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_volumemount.go index 1098dfc541f2..2c57b8dd4c1f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/model_volumemount.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/model_volumemount.go @@ -5,5 +5,6 @@ package containerappsrevisions type VolumeMount struct { MountPath *string `json:"mountPath,omitempty"` + SubPath *string `json:"subPath,omitempty"` VolumeName *string `json:"volumeName,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/predicates.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/predicates.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/predicates.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/version.go similarity index 89% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/version.go index bc818eafe498..fa0ac8268de1 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2022-03-01" +const defaultApiVersion = "2023-05-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/containerappsrevisions/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/README.md new file mode 100644 index 000000000000..a55e054f4b62 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/README.md @@ -0,0 +1,192 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents` Documentation + +The `daprcomponents` SDK allows for interaction with the Azure Resource Manager Service `containerapps` (API Version `2023-05-01`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents" +``` + + +### Client Initialization + +```go +client := daprcomponents.NewDaprComponentsClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `DaprComponentsClient.ConnectedEnvironmentsDaprComponentsCreateOrUpdate` + +```go +ctx := context.TODO() +id := daprcomponents.NewConnectedEnvironmentDaprComponentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "connectedEnvironmentValue", "daprComponentValue") + +payload := daprcomponents.DaprComponent{ + // ... +} + + +read, err := client.ConnectedEnvironmentsDaprComponentsCreateOrUpdate(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `DaprComponentsClient.ConnectedEnvironmentsDaprComponentsDelete` + +```go +ctx := context.TODO() +id := daprcomponents.NewConnectedEnvironmentDaprComponentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "connectedEnvironmentValue", "daprComponentValue") + +read, err := client.ConnectedEnvironmentsDaprComponentsDelete(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `DaprComponentsClient.ConnectedEnvironmentsDaprComponentsGet` + +```go +ctx := context.TODO() +id := daprcomponents.NewConnectedEnvironmentDaprComponentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "connectedEnvironmentValue", "daprComponentValue") + +read, err := client.ConnectedEnvironmentsDaprComponentsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `DaprComponentsClient.ConnectedEnvironmentsDaprComponentsList` + +```go +ctx := context.TODO() +id := daprcomponents.NewConnectedEnvironmentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "connectedEnvironmentValue") + +// alternatively `client.ConnectedEnvironmentsDaprComponentsList(ctx, id)` can be used to do batched pagination +items, err := client.ConnectedEnvironmentsDaprComponentsListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `DaprComponentsClient.ConnectedEnvironmentsDaprComponentsListSecrets` + +```go +ctx := context.TODO() +id := daprcomponents.NewConnectedEnvironmentDaprComponentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "connectedEnvironmentValue", "daprComponentValue") + +read, err := client.ConnectedEnvironmentsDaprComponentsListSecrets(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `DaprComponentsClient.CreateOrUpdate` + +```go +ctx := context.TODO() +id := daprcomponents.NewDaprComponentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "daprComponentValue") + +payload := daprcomponents.DaprComponent{ + // ... +} + + +read, err := client.CreateOrUpdate(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `DaprComponentsClient.Delete` + +```go +ctx := context.TODO() +id := daprcomponents.NewDaprComponentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "daprComponentValue") + +read, err := client.Delete(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `DaprComponentsClient.Get` + +```go +ctx := context.TODO() +id := daprcomponents.NewDaprComponentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "daprComponentValue") + +read, err := client.Get(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `DaprComponentsClient.List` + +```go +ctx := context.TODO() +id := daprcomponents.NewManagedEnvironmentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue") + +// alternatively `client.List(ctx, id)` can be used to do batched pagination +items, err := client.ListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `DaprComponentsClient.ListSecrets` + +```go +ctx := context.TODO() +id := daprcomponents.NewDaprComponentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "daprComponentValue") + +read, err := client.ListSecrets(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/id_connectedenvironment.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/id_connectedenvironment.go new file mode 100644 index 000000000000..ac0bd53cbd06 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/id_connectedenvironment.go @@ -0,0 +1,127 @@ +package daprcomponents + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ConnectedEnvironmentId{} + +// ConnectedEnvironmentId is a struct representing the Resource ID for a Connected Environment +type ConnectedEnvironmentId struct { + SubscriptionId string + ResourceGroupName string + ConnectedEnvironmentName string +} + +// NewConnectedEnvironmentID returns a new ConnectedEnvironmentId struct +func NewConnectedEnvironmentID(subscriptionId string, resourceGroupName string, connectedEnvironmentName string) ConnectedEnvironmentId { + return ConnectedEnvironmentId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + ConnectedEnvironmentName: connectedEnvironmentName, + } +} + +// ParseConnectedEnvironmentID parses 'input' into a ConnectedEnvironmentId +func ParseConnectedEnvironmentID(input string) (*ConnectedEnvironmentId, error) { + parser := resourceids.NewParserFromResourceIdType(ConnectedEnvironmentId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ConnectedEnvironmentId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ConnectedEnvironmentName, ok = parsed.Parsed["connectedEnvironmentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "connectedEnvironmentName", *parsed) + } + + return &id, nil +} + +// ParseConnectedEnvironmentIDInsensitively parses 'input' case-insensitively into a ConnectedEnvironmentId +// note: this method should only be used for API response data and not user input +func ParseConnectedEnvironmentIDInsensitively(input string) (*ConnectedEnvironmentId, error) { + parser := resourceids.NewParserFromResourceIdType(ConnectedEnvironmentId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ConnectedEnvironmentId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ConnectedEnvironmentName, ok = parsed.Parsed["connectedEnvironmentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "connectedEnvironmentName", *parsed) + } + + return &id, nil +} + +// ValidateConnectedEnvironmentID checks that 'input' can be parsed as a Connected Environment ID +func ValidateConnectedEnvironmentID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseConnectedEnvironmentID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Connected Environment ID +func (id ConnectedEnvironmentId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.App/connectedEnvironments/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.ConnectedEnvironmentName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Connected Environment ID +func (id ConnectedEnvironmentId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftApp", "Microsoft.App", "Microsoft.App"), + resourceids.StaticSegment("staticConnectedEnvironments", "connectedEnvironments", "connectedEnvironments"), + resourceids.UserSpecifiedSegment("connectedEnvironmentName", "connectedEnvironmentValue"), + } +} + +// String returns a human-readable description of this Connected Environment ID +func (id ConnectedEnvironmentId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Connected Environment Name: %q", id.ConnectedEnvironmentName), + } + return fmt.Sprintf("Connected Environment (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/id_connectedenvironmentdaprcomponent.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/id_connectedenvironmentdaprcomponent.go new file mode 100644 index 000000000000..ee117ae73ec6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/id_connectedenvironmentdaprcomponent.go @@ -0,0 +1,140 @@ +package daprcomponents + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ConnectedEnvironmentDaprComponentId{} + +// ConnectedEnvironmentDaprComponentId is a struct representing the Resource ID for a Connected Environment Dapr Component +type ConnectedEnvironmentDaprComponentId struct { + SubscriptionId string + ResourceGroupName string + ConnectedEnvironmentName string + DaprComponentName string +} + +// NewConnectedEnvironmentDaprComponentID returns a new ConnectedEnvironmentDaprComponentId struct +func NewConnectedEnvironmentDaprComponentID(subscriptionId string, resourceGroupName string, connectedEnvironmentName string, daprComponentName string) ConnectedEnvironmentDaprComponentId { + return ConnectedEnvironmentDaprComponentId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + ConnectedEnvironmentName: connectedEnvironmentName, + DaprComponentName: daprComponentName, + } +} + +// ParseConnectedEnvironmentDaprComponentID parses 'input' into a ConnectedEnvironmentDaprComponentId +func ParseConnectedEnvironmentDaprComponentID(input string) (*ConnectedEnvironmentDaprComponentId, error) { + parser := resourceids.NewParserFromResourceIdType(ConnectedEnvironmentDaprComponentId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ConnectedEnvironmentDaprComponentId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ConnectedEnvironmentName, ok = parsed.Parsed["connectedEnvironmentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "connectedEnvironmentName", *parsed) + } + + if id.DaprComponentName, ok = parsed.Parsed["daprComponentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "daprComponentName", *parsed) + } + + return &id, nil +} + +// ParseConnectedEnvironmentDaprComponentIDInsensitively parses 'input' case-insensitively into a ConnectedEnvironmentDaprComponentId +// note: this method should only be used for API response data and not user input +func ParseConnectedEnvironmentDaprComponentIDInsensitively(input string) (*ConnectedEnvironmentDaprComponentId, error) { + parser := resourceids.NewParserFromResourceIdType(ConnectedEnvironmentDaprComponentId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ConnectedEnvironmentDaprComponentId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ConnectedEnvironmentName, ok = parsed.Parsed["connectedEnvironmentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "connectedEnvironmentName", *parsed) + } + + if id.DaprComponentName, ok = parsed.Parsed["daprComponentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "daprComponentName", *parsed) + } + + return &id, nil +} + +// ValidateConnectedEnvironmentDaprComponentID checks that 'input' can be parsed as a Connected Environment Dapr Component ID +func ValidateConnectedEnvironmentDaprComponentID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseConnectedEnvironmentDaprComponentID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Connected Environment Dapr Component ID +func (id ConnectedEnvironmentDaprComponentId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.App/connectedEnvironments/%s/daprComponents/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.ConnectedEnvironmentName, id.DaprComponentName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Connected Environment Dapr Component ID +func (id ConnectedEnvironmentDaprComponentId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftApp", "Microsoft.App", "Microsoft.App"), + resourceids.StaticSegment("staticConnectedEnvironments", "connectedEnvironments", "connectedEnvironments"), + resourceids.UserSpecifiedSegment("connectedEnvironmentName", "connectedEnvironmentValue"), + resourceids.StaticSegment("staticDaprComponents", "daprComponents", "daprComponents"), + resourceids.UserSpecifiedSegment("daprComponentName", "daprComponentValue"), + } +} + +// String returns a human-readable description of this Connected Environment Dapr Component ID +func (id ConnectedEnvironmentDaprComponentId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Connected Environment Name: %q", id.ConnectedEnvironmentName), + fmt.Sprintf("Dapr Component Name: %q", id.DaprComponentName), + } + return fmt.Sprintf("Connected Environment Dapr Component (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/id_daprcomponent.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/id_daprcomponent.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/id_daprcomponent.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/id_daprcomponent.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/id_managedenvironment.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/id_managedenvironment.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/id_managedenvironment.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/id_managedenvironment.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentscreateorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentscreateorupdate_autorest.go new file mode 100644 index 000000000000..e32fcb2f578f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentscreateorupdate_autorest.go @@ -0,0 +1,69 @@ +package daprcomponents + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConnectedEnvironmentsDaprComponentsCreateOrUpdateOperationResponse struct { + HttpResponse *http.Response + Model *DaprComponent +} + +// ConnectedEnvironmentsDaprComponentsCreateOrUpdate ... +func (c DaprComponentsClient) ConnectedEnvironmentsDaprComponentsCreateOrUpdate(ctx context.Context, id ConnectedEnvironmentDaprComponentId, input DaprComponent) (result ConnectedEnvironmentsDaprComponentsCreateOrUpdateOperationResponse, err error) { + req, err := c.preparerForConnectedEnvironmentsDaprComponentsCreateOrUpdate(ctx, id, input) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsCreateOrUpdate", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsCreateOrUpdate", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForConnectedEnvironmentsDaprComponentsCreateOrUpdate(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsCreateOrUpdate", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForConnectedEnvironmentsDaprComponentsCreateOrUpdate prepares the ConnectedEnvironmentsDaprComponentsCreateOrUpdate request. +func (c DaprComponentsClient) preparerForConnectedEnvironmentsDaprComponentsCreateOrUpdate(ctx context.Context, id ConnectedEnvironmentDaprComponentId, input DaprComponent) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithJSON(input), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForConnectedEnvironmentsDaprComponentsCreateOrUpdate handles the response to the ConnectedEnvironmentsDaprComponentsCreateOrUpdate request. The method always +// closes the http.Response Body. +func (c DaprComponentsClient) responderForConnectedEnvironmentsDaprComponentsCreateOrUpdate(resp *http.Response) (result ConnectedEnvironmentsDaprComponentsCreateOrUpdateOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentsdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentsdelete_autorest.go new file mode 100644 index 000000000000..94f064649211 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentsdelete_autorest.go @@ -0,0 +1,66 @@ +package daprcomponents + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConnectedEnvironmentsDaprComponentsDeleteOperationResponse struct { + HttpResponse *http.Response +} + +// ConnectedEnvironmentsDaprComponentsDelete ... +func (c DaprComponentsClient) ConnectedEnvironmentsDaprComponentsDelete(ctx context.Context, id ConnectedEnvironmentDaprComponentId) (result ConnectedEnvironmentsDaprComponentsDeleteOperationResponse, err error) { + req, err := c.preparerForConnectedEnvironmentsDaprComponentsDelete(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsDelete", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsDelete", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForConnectedEnvironmentsDaprComponentsDelete(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsDelete", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForConnectedEnvironmentsDaprComponentsDelete prepares the ConnectedEnvironmentsDaprComponentsDelete request. +func (c DaprComponentsClient) preparerForConnectedEnvironmentsDaprComponentsDelete(ctx context.Context, id ConnectedEnvironmentDaprComponentId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsDelete(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForConnectedEnvironmentsDaprComponentsDelete handles the response to the ConnectedEnvironmentsDaprComponentsDelete request. The method always +// closes the http.Response Body. +func (c DaprComponentsClient) responderForConnectedEnvironmentsDaprComponentsDelete(resp *http.Response) (result ConnectedEnvironmentsDaprComponentsDeleteOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentsget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentsget_autorest.go new file mode 100644 index 000000000000..b14c45e74fe7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentsget_autorest.go @@ -0,0 +1,68 @@ +package daprcomponents + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConnectedEnvironmentsDaprComponentsGetOperationResponse struct { + HttpResponse *http.Response + Model *DaprComponent +} + +// ConnectedEnvironmentsDaprComponentsGet ... +func (c DaprComponentsClient) ConnectedEnvironmentsDaprComponentsGet(ctx context.Context, id ConnectedEnvironmentDaprComponentId) (result ConnectedEnvironmentsDaprComponentsGetOperationResponse, err error) { + req, err := c.preparerForConnectedEnvironmentsDaprComponentsGet(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsGet", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsGet", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForConnectedEnvironmentsDaprComponentsGet(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsGet", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForConnectedEnvironmentsDaprComponentsGet prepares the ConnectedEnvironmentsDaprComponentsGet request. +func (c DaprComponentsClient) preparerForConnectedEnvironmentsDaprComponentsGet(ctx context.Context, id ConnectedEnvironmentDaprComponentId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForConnectedEnvironmentsDaprComponentsGet handles the response to the ConnectedEnvironmentsDaprComponentsGet request. The method always +// closes the http.Response Body. +func (c DaprComponentsClient) responderForConnectedEnvironmentsDaprComponentsGet(resp *http.Response) (result ConnectedEnvironmentsDaprComponentsGetOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentslist_autorest.go new file mode 100644 index 000000000000..d4de441780f5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentslist_autorest.go @@ -0,0 +1,186 @@ +package daprcomponents + +import ( + "context" + "fmt" + "net/http" + "net/url" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConnectedEnvironmentsDaprComponentsListOperationResponse struct { + HttpResponse *http.Response + Model *[]DaprComponent + + nextLink *string + nextPageFunc func(ctx context.Context, nextLink string) (ConnectedEnvironmentsDaprComponentsListOperationResponse, error) +} + +type ConnectedEnvironmentsDaprComponentsListCompleteResult struct { + Items []DaprComponent +} + +func (r ConnectedEnvironmentsDaprComponentsListOperationResponse) HasMore() bool { + return r.nextLink != nil +} + +func (r ConnectedEnvironmentsDaprComponentsListOperationResponse) LoadMore(ctx context.Context) (resp ConnectedEnvironmentsDaprComponentsListOperationResponse, err error) { + if !r.HasMore() { + err = fmt.Errorf("no more pages returned") + return + } + return r.nextPageFunc(ctx, *r.nextLink) +} + +// ConnectedEnvironmentsDaprComponentsList ... +func (c DaprComponentsClient) ConnectedEnvironmentsDaprComponentsList(ctx context.Context, id ConnectedEnvironmentId) (resp ConnectedEnvironmentsDaprComponentsListOperationResponse, err error) { + req, err := c.preparerForConnectedEnvironmentsDaprComponentsList(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsList", nil, "Failure preparing request") + return + } + + resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsList", resp.HttpResponse, "Failure sending request") + return + } + + resp, err = c.responderForConnectedEnvironmentsDaprComponentsList(resp.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsList", resp.HttpResponse, "Failure responding to request") + return + } + return +} + +// preparerForConnectedEnvironmentsDaprComponentsList prepares the ConnectedEnvironmentsDaprComponentsList request. +func (c DaprComponentsClient) preparerForConnectedEnvironmentsDaprComponentsList(ctx context.Context, id ConnectedEnvironmentId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/daprComponents", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// preparerForConnectedEnvironmentsDaprComponentsListWithNextLink prepares the ConnectedEnvironmentsDaprComponentsList request with the given nextLink token. +func (c DaprComponentsClient) preparerForConnectedEnvironmentsDaprComponentsListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { + uri, err := url.Parse(nextLink) + if err != nil { + return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) + } + queryParameters := map[string]interface{}{} + for k, v := range uri.Query() { + if len(v) == 0 { + continue + } + val := v[0] + val = autorest.Encode("query", val) + queryParameters[k] = val + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(uri.Path), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForConnectedEnvironmentsDaprComponentsList handles the response to the ConnectedEnvironmentsDaprComponentsList request. The method always +// closes the http.Response Body. +func (c DaprComponentsClient) responderForConnectedEnvironmentsDaprComponentsList(resp *http.Response) (result ConnectedEnvironmentsDaprComponentsListOperationResponse, err error) { + type page struct { + Values []DaprComponent `json:"value"` + NextLink *string `json:"nextLink"` + } + var respObj page + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&respObj), + autorest.ByClosing()) + result.HttpResponse = resp + result.Model = &respObj.Values + result.nextLink = respObj.NextLink + if respObj.NextLink != nil { + result.nextPageFunc = func(ctx context.Context, nextLink string) (result ConnectedEnvironmentsDaprComponentsListOperationResponse, err error) { + req, err := c.preparerForConnectedEnvironmentsDaprComponentsListWithNextLink(ctx, nextLink) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsList", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsList", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForConnectedEnvironmentsDaprComponentsList(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsList", result.HttpResponse, "Failure responding to request") + return + } + + return + } + } + return +} + +// ConnectedEnvironmentsDaprComponentsListComplete retrieves all of the results into a single object +func (c DaprComponentsClient) ConnectedEnvironmentsDaprComponentsListComplete(ctx context.Context, id ConnectedEnvironmentId) (ConnectedEnvironmentsDaprComponentsListCompleteResult, error) { + return c.ConnectedEnvironmentsDaprComponentsListCompleteMatchingPredicate(ctx, id, DaprComponentOperationPredicate{}) +} + +// ConnectedEnvironmentsDaprComponentsListCompleteMatchingPredicate retrieves all of the results and then applied the predicate +func (c DaprComponentsClient) ConnectedEnvironmentsDaprComponentsListCompleteMatchingPredicate(ctx context.Context, id ConnectedEnvironmentId, predicate DaprComponentOperationPredicate) (resp ConnectedEnvironmentsDaprComponentsListCompleteResult, err error) { + items := make([]DaprComponent, 0) + + page, err := c.ConnectedEnvironmentsDaprComponentsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading the initial page: %+v", err) + return + } + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + for page.HasMore() { + page, err = page.LoadMore(ctx) + if err != nil { + err = fmt.Errorf("loading the next page: %+v", err) + return + } + + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + } + + out := ConnectedEnvironmentsDaprComponentsListCompleteResult{ + Items: items, + } + return out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentslistsecrets_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentslistsecrets_autorest.go new file mode 100644 index 000000000000..978818a64f14 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_connectedenvironmentsdaprcomponentslistsecrets_autorest.go @@ -0,0 +1,69 @@ +package daprcomponents + +import ( + "context" + "fmt" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConnectedEnvironmentsDaprComponentsListSecretsOperationResponse struct { + HttpResponse *http.Response + Model *DaprSecretsCollection +} + +// ConnectedEnvironmentsDaprComponentsListSecrets ... +func (c DaprComponentsClient) ConnectedEnvironmentsDaprComponentsListSecrets(ctx context.Context, id ConnectedEnvironmentDaprComponentId) (result ConnectedEnvironmentsDaprComponentsListSecretsOperationResponse, err error) { + req, err := c.preparerForConnectedEnvironmentsDaprComponentsListSecrets(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsListSecrets", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsListSecrets", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForConnectedEnvironmentsDaprComponentsListSecrets(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "daprcomponents.DaprComponentsClient", "ConnectedEnvironmentsDaprComponentsListSecrets", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForConnectedEnvironmentsDaprComponentsListSecrets prepares the ConnectedEnvironmentsDaprComponentsListSecrets request. +func (c DaprComponentsClient) preparerForConnectedEnvironmentsDaprComponentsListSecrets(ctx context.Context, id ConnectedEnvironmentDaprComponentId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/listSecrets", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForConnectedEnvironmentsDaprComponentsListSecrets handles the response to the ConnectedEnvironmentsDaprComponentsListSecrets request. The method always +// closes the http.Response Body. +func (c DaprComponentsClient) responderForConnectedEnvironmentsDaprComponentsListSecrets(resp *http.Response) (result ConnectedEnvironmentsDaprComponentsListSecretsOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_createorupdate_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/method_createorupdate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_createorupdate_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_delete_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/method_delete_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_delete_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_get_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/method_get_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_get_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/method_list_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_list_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/method_list_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_list_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/method_listsecrets_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_listsecrets_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/method_listsecrets_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/method_listsecrets_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_daprcomponent.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_daprcomponent.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_daprcomponent.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_daprcomponent.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_daprcomponentproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_daprcomponentproperties.go new file mode 100644 index 000000000000..5dba15d7cddf --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_daprcomponentproperties.go @@ -0,0 +1,15 @@ +package daprcomponents + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DaprComponentProperties struct { + ComponentType *string `json:"componentType,omitempty"` + IgnoreErrors *bool `json:"ignoreErrors,omitempty"` + InitTimeout *string `json:"initTimeout,omitempty"` + Metadata *[]DaprMetadata `json:"metadata,omitempty"` + Scopes *[]string `json:"scopes,omitempty"` + SecretStoreComponent *string `json:"secretStoreComponent,omitempty"` + Secrets *[]Secret `json:"secrets,omitempty"` + Version *string `json:"version,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_daprmetadata.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_daprmetadata.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_daprmetadata.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_daprmetadata.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_daprsecret.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_daprsecret.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_daprsecret.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_daprsecret.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_daprsecretscollection.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_daprsecretscollection.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/model_daprsecretscollection.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_daprsecretscollection.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_secret.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_secret.go new file mode 100644 index 000000000000..a4647e5d6ec4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/model_secret.go @@ -0,0 +1,11 @@ +package daprcomponents + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Secret struct { + Identity *string `json:"identity,omitempty"` + KeyVaultUrl *string `json:"keyVaultUrl,omitempty"` + Name *string `json:"name,omitempty"` + Value *string `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/predicates.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/predicates.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/predicates.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/version.go index 95e019e9fea9..928d2c04bddc 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2022-03-01" +const defaultApiVersion = "2023-05-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/daprcomponents/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/README.md similarity index 54% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/README.md index 9700fc39cc51..77d6f57d6c51 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments` Documentation -The `managedenvironments` SDK allows for interaction with the Azure Resource Manager Service `containerapps` (API Version `2022-03-01`). +The `managedenvironments` SDK allows for interaction with the Azure Resource Manager Service `containerapps` (API Version `2023-05-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments" +import "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments" ``` @@ -140,6 +140,22 @@ if err := client.DeleteThenPoll(ctx, id); err != nil { ``` +### Example Usage: `ManagedEnvironmentsClient.DiagnosticsGetRoot` + +```go +ctx := context.TODO() +id := managedenvironments.NewManagedEnvironmentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue") + +read, err := client.DiagnosticsGetRoot(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + ### Example Usage: `ManagedEnvironmentsClient.Get` ```go @@ -156,6 +172,22 @@ if model := read.Model; model != nil { ``` +### Example Usage: `ManagedEnvironmentsClient.GetAuthToken` + +```go +ctx := context.TODO() +id := managedenvironments.NewManagedEnvironmentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue") + +read, err := client.GetAuthToken(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + ### Example Usage: `ManagedEnvironmentsClient.ListByResourceGroup` ```go @@ -190,6 +222,142 @@ for _, item := range items { ``` +### Example Usage: `ManagedEnvironmentsClient.ListWorkloadProfileStates` + +```go +ctx := context.TODO() +id := managedenvironments.NewManagedEnvironmentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue") + +// alternatively `client.ListWorkloadProfileStates(ctx, id)` can be used to do batched pagination +items, err := client.ListWorkloadProfileStatesComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `ManagedEnvironmentsClient.ManagedCertificatesCreateOrUpdate` + +```go +ctx := context.TODO() +id := managedenvironments.NewManagedCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "managedCertificateValue") + +payload := managedenvironments.ManagedCertificate{ + // ... +} + + +if err := client.ManagedCertificatesCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `ManagedEnvironmentsClient.ManagedCertificatesDelete` + +```go +ctx := context.TODO() +id := managedenvironments.NewManagedCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "managedCertificateValue") + +read, err := client.ManagedCertificatesDelete(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `ManagedEnvironmentsClient.ManagedCertificatesGet` + +```go +ctx := context.TODO() +id := managedenvironments.NewManagedCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "managedCertificateValue") + +read, err := client.ManagedCertificatesGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `ManagedEnvironmentsClient.ManagedCertificatesList` + +```go +ctx := context.TODO() +id := managedenvironments.NewManagedEnvironmentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue") + +// alternatively `client.ManagedCertificatesList(ctx, id)` can be used to do batched pagination +items, err := client.ManagedCertificatesListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `ManagedEnvironmentsClient.ManagedCertificatesUpdate` + +```go +ctx := context.TODO() +id := managedenvironments.NewManagedCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "managedCertificateValue") + +payload := managedenvironments.ManagedCertificatePatch{ + // ... +} + + +read, err := client.ManagedCertificatesUpdate(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `ManagedEnvironmentsClient.ManagedEnvironmentDiagnosticsGetDetector` + +```go +ctx := context.TODO() +id := managedenvironments.NewManagedEnvironmentDetectorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue", "detectorValue") + +read, err := client.ManagedEnvironmentDiagnosticsGetDetector(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `ManagedEnvironmentsClient.ManagedEnvironmentDiagnosticsListDetectors` + +```go +ctx := context.TODO() +id := managedenvironments.NewManagedEnvironmentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "managedEnvironmentValue") + +read, err := client.ManagedEnvironmentDiagnosticsListDetectors(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + ### Example Usage: `ManagedEnvironmentsClient.NamespacesCheckNameAvailability` ```go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/constants.go similarity index 81% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/constants.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/constants.go index 066bda49bd2b..b720ac1397b5 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/constants.go @@ -121,3 +121,34 @@ func parseEnvironmentProvisioningState(input string) (*EnvironmentProvisioningSt out := EnvironmentProvisioningState(input) return &out, nil } + +type ManagedCertificateDomainControlValidation string + +const ( + ManagedCertificateDomainControlValidationCNAME ManagedCertificateDomainControlValidation = "CNAME" + ManagedCertificateDomainControlValidationHTTP ManagedCertificateDomainControlValidation = "HTTP" + ManagedCertificateDomainControlValidationTXT ManagedCertificateDomainControlValidation = "TXT" +) + +func PossibleValuesForManagedCertificateDomainControlValidation() []string { + return []string{ + string(ManagedCertificateDomainControlValidationCNAME), + string(ManagedCertificateDomainControlValidationHTTP), + string(ManagedCertificateDomainControlValidationTXT), + } +} + +func parseManagedCertificateDomainControlValidation(input string) (*ManagedCertificateDomainControlValidation, error) { + vals := map[string]ManagedCertificateDomainControlValidation{ + "cname": ManagedCertificateDomainControlValidationCNAME, + "http": ManagedCertificateDomainControlValidationHTTP, + "txt": ManagedCertificateDomainControlValidationTXT, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ManagedCertificateDomainControlValidation(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/id_certificate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/id_certificate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/id_certificate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/id_certificate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/id_managedcertificate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/id_managedcertificate.go new file mode 100644 index 000000000000..e862ec48850a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/id_managedcertificate.go @@ -0,0 +1,140 @@ +package managedenvironments + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ManagedCertificateId{} + +// ManagedCertificateId is a struct representing the Resource ID for a Managed Certificate +type ManagedCertificateId struct { + SubscriptionId string + ResourceGroupName string + ManagedEnvironmentName string + ManagedCertificateName string +} + +// NewManagedCertificateID returns a new ManagedCertificateId struct +func NewManagedCertificateID(subscriptionId string, resourceGroupName string, managedEnvironmentName string, managedCertificateName string) ManagedCertificateId { + return ManagedCertificateId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + ManagedEnvironmentName: managedEnvironmentName, + ManagedCertificateName: managedCertificateName, + } +} + +// ParseManagedCertificateID parses 'input' into a ManagedCertificateId +func ParseManagedCertificateID(input string) (*ManagedCertificateId, error) { + parser := resourceids.NewParserFromResourceIdType(ManagedCertificateId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ManagedCertificateId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ManagedEnvironmentName, ok = parsed.Parsed["managedEnvironmentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "managedEnvironmentName", *parsed) + } + + if id.ManagedCertificateName, ok = parsed.Parsed["managedCertificateName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "managedCertificateName", *parsed) + } + + return &id, nil +} + +// ParseManagedCertificateIDInsensitively parses 'input' case-insensitively into a ManagedCertificateId +// note: this method should only be used for API response data and not user input +func ParseManagedCertificateIDInsensitively(input string) (*ManagedCertificateId, error) { + parser := resourceids.NewParserFromResourceIdType(ManagedCertificateId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ManagedCertificateId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ManagedEnvironmentName, ok = parsed.Parsed["managedEnvironmentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "managedEnvironmentName", *parsed) + } + + if id.ManagedCertificateName, ok = parsed.Parsed["managedCertificateName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "managedCertificateName", *parsed) + } + + return &id, nil +} + +// ValidateManagedCertificateID checks that 'input' can be parsed as a Managed Certificate ID +func ValidateManagedCertificateID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseManagedCertificateID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Managed Certificate ID +func (id ManagedCertificateId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.App/managedEnvironments/%s/managedCertificates/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.ManagedEnvironmentName, id.ManagedCertificateName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Managed Certificate ID +func (id ManagedCertificateId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftApp", "Microsoft.App", "Microsoft.App"), + resourceids.StaticSegment("staticManagedEnvironments", "managedEnvironments", "managedEnvironments"), + resourceids.UserSpecifiedSegment("managedEnvironmentName", "managedEnvironmentValue"), + resourceids.StaticSegment("staticManagedCertificates", "managedCertificates", "managedCertificates"), + resourceids.UserSpecifiedSegment("managedCertificateName", "managedCertificateValue"), + } +} + +// String returns a human-readable description of this Managed Certificate ID +func (id ManagedCertificateId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Managed Environment Name: %q", id.ManagedEnvironmentName), + fmt.Sprintf("Managed Certificate Name: %q", id.ManagedCertificateName), + } + return fmt.Sprintf("Managed Certificate (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/id_managedenvironment.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/id_managedenvironment.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/id_managedenvironment.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/id_managedenvironment.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/id_managedenvironmentdetector.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/id_managedenvironmentdetector.go new file mode 100644 index 000000000000..b564dfc7b20b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/id_managedenvironmentdetector.go @@ -0,0 +1,140 @@ +package managedenvironments + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ManagedEnvironmentDetectorId{} + +// ManagedEnvironmentDetectorId is a struct representing the Resource ID for a Managed Environment Detector +type ManagedEnvironmentDetectorId struct { + SubscriptionId string + ResourceGroupName string + ManagedEnvironmentName string + DetectorName string +} + +// NewManagedEnvironmentDetectorID returns a new ManagedEnvironmentDetectorId struct +func NewManagedEnvironmentDetectorID(subscriptionId string, resourceGroupName string, managedEnvironmentName string, detectorName string) ManagedEnvironmentDetectorId { + return ManagedEnvironmentDetectorId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + ManagedEnvironmentName: managedEnvironmentName, + DetectorName: detectorName, + } +} + +// ParseManagedEnvironmentDetectorID parses 'input' into a ManagedEnvironmentDetectorId +func ParseManagedEnvironmentDetectorID(input string) (*ManagedEnvironmentDetectorId, error) { + parser := resourceids.NewParserFromResourceIdType(ManagedEnvironmentDetectorId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ManagedEnvironmentDetectorId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ManagedEnvironmentName, ok = parsed.Parsed["managedEnvironmentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "managedEnvironmentName", *parsed) + } + + if id.DetectorName, ok = parsed.Parsed["detectorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "detectorName", *parsed) + } + + return &id, nil +} + +// ParseManagedEnvironmentDetectorIDInsensitively parses 'input' case-insensitively into a ManagedEnvironmentDetectorId +// note: this method should only be used for API response data and not user input +func ParseManagedEnvironmentDetectorIDInsensitively(input string) (*ManagedEnvironmentDetectorId, error) { + parser := resourceids.NewParserFromResourceIdType(ManagedEnvironmentDetectorId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ManagedEnvironmentDetectorId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ManagedEnvironmentName, ok = parsed.Parsed["managedEnvironmentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "managedEnvironmentName", *parsed) + } + + if id.DetectorName, ok = parsed.Parsed["detectorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "detectorName", *parsed) + } + + return &id, nil +} + +// ValidateManagedEnvironmentDetectorID checks that 'input' can be parsed as a Managed Environment Detector ID +func ValidateManagedEnvironmentDetectorID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseManagedEnvironmentDetectorID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Managed Environment Detector ID +func (id ManagedEnvironmentDetectorId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.App/managedEnvironments/%s/detectors/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.ManagedEnvironmentName, id.DetectorName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Managed Environment Detector ID +func (id ManagedEnvironmentDetectorId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftApp", "Microsoft.App", "Microsoft.App"), + resourceids.StaticSegment("staticManagedEnvironments", "managedEnvironments", "managedEnvironments"), + resourceids.UserSpecifiedSegment("managedEnvironmentName", "managedEnvironmentValue"), + resourceids.StaticSegment("staticDetectors", "detectors", "detectors"), + resourceids.UserSpecifiedSegment("detectorName", "detectorValue"), + } +} + +// String returns a human-readable description of this Managed Environment Detector ID +func (id ManagedEnvironmentDetectorId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Managed Environment Name: %q", id.ManagedEnvironmentName), + fmt.Sprintf("Detector Name: %q", id.DetectorName), + } + return fmt.Sprintf("Managed Environment Detector (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_certificatescreateorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_certificatescreateorupdate_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_certificatescreateorupdate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_certificatescreateorupdate_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_certificatesdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_certificatesdelete_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_certificatesdelete_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_certificatesdelete_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_certificatesget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_certificatesget_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_certificatesget_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_certificatesget_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_certificateslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_certificateslist_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_certificateslist_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_certificateslist_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_certificatesupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_certificatesupdate_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_certificatesupdate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_certificatesupdate_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_createorupdate_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_createorupdate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_createorupdate_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_delete_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_delete_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_delete_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_diagnosticsgetroot_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_diagnosticsgetroot_autorest.go new file mode 100644 index 000000000000..02584c0041a8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_diagnosticsgetroot_autorest.go @@ -0,0 +1,69 @@ +package managedenvironments + +import ( + "context" + "fmt" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsGetRootOperationResponse struct { + HttpResponse *http.Response + Model *ManagedEnvironment +} + +// DiagnosticsGetRoot ... +func (c ManagedEnvironmentsClient) DiagnosticsGetRoot(ctx context.Context, id ManagedEnvironmentId) (result DiagnosticsGetRootOperationResponse, err error) { + req, err := c.preparerForDiagnosticsGetRoot(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "DiagnosticsGetRoot", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "DiagnosticsGetRoot", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForDiagnosticsGetRoot(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "DiagnosticsGetRoot", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForDiagnosticsGetRoot prepares the DiagnosticsGetRoot request. +func (c ManagedEnvironmentsClient) preparerForDiagnosticsGetRoot(ctx context.Context, id ManagedEnvironmentId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/detectorProperties/rootApi", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForDiagnosticsGetRoot handles the response to the DiagnosticsGetRoot request. The method always +// closes the http.Response Body. +func (c ManagedEnvironmentsClient) responderForDiagnosticsGetRoot(resp *http.Response) (result DiagnosticsGetRootOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_get_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_get_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_get_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_getauthtoken_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_getauthtoken_autorest.go new file mode 100644 index 000000000000..51e0ea24854d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_getauthtoken_autorest.go @@ -0,0 +1,69 @@ +package managedenvironments + +import ( + "context" + "fmt" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetAuthTokenOperationResponse struct { + HttpResponse *http.Response + Model *EnvironmentAuthToken +} + +// GetAuthToken ... +func (c ManagedEnvironmentsClient) GetAuthToken(ctx context.Context, id ManagedEnvironmentId) (result GetAuthTokenOperationResponse, err error) { + req, err := c.preparerForGetAuthToken(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "GetAuthToken", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "GetAuthToken", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForGetAuthToken(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "GetAuthToken", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForGetAuthToken prepares the GetAuthToken request. +func (c ManagedEnvironmentsClient) preparerForGetAuthToken(ctx context.Context, id ManagedEnvironmentId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/getAuthtoken", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForGetAuthToken handles the response to the GetAuthToken request. The method always +// closes the http.Response Body. +func (c ManagedEnvironmentsClient) responderForGetAuthToken(resp *http.Response) (result GetAuthTokenOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_listbyresourcegroup_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_listbyresourcegroup_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_listbyresourcegroup_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_listbyresourcegroup_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_listbysubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_listbysubscription_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_listbysubscription_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_listbysubscription_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_listworkloadprofilestates_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_listworkloadprofilestates_autorest.go new file mode 100644 index 000000000000..d6e806eecd3e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_listworkloadprofilestates_autorest.go @@ -0,0 +1,186 @@ +package managedenvironments + +import ( + "context" + "fmt" + "net/http" + "net/url" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListWorkloadProfileStatesOperationResponse struct { + HttpResponse *http.Response + Model *[]WorkloadProfileStates + + nextLink *string + nextPageFunc func(ctx context.Context, nextLink string) (ListWorkloadProfileStatesOperationResponse, error) +} + +type ListWorkloadProfileStatesCompleteResult struct { + Items []WorkloadProfileStates +} + +func (r ListWorkloadProfileStatesOperationResponse) HasMore() bool { + return r.nextLink != nil +} + +func (r ListWorkloadProfileStatesOperationResponse) LoadMore(ctx context.Context) (resp ListWorkloadProfileStatesOperationResponse, err error) { + if !r.HasMore() { + err = fmt.Errorf("no more pages returned") + return + } + return r.nextPageFunc(ctx, *r.nextLink) +} + +// ListWorkloadProfileStates ... +func (c ManagedEnvironmentsClient) ListWorkloadProfileStates(ctx context.Context, id ManagedEnvironmentId) (resp ListWorkloadProfileStatesOperationResponse, err error) { + req, err := c.preparerForListWorkloadProfileStates(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ListWorkloadProfileStates", nil, "Failure preparing request") + return + } + + resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ListWorkloadProfileStates", resp.HttpResponse, "Failure sending request") + return + } + + resp, err = c.responderForListWorkloadProfileStates(resp.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ListWorkloadProfileStates", resp.HttpResponse, "Failure responding to request") + return + } + return +} + +// preparerForListWorkloadProfileStates prepares the ListWorkloadProfileStates request. +func (c ManagedEnvironmentsClient) preparerForListWorkloadProfileStates(ctx context.Context, id ManagedEnvironmentId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/workloadProfileStates", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// preparerForListWorkloadProfileStatesWithNextLink prepares the ListWorkloadProfileStates request with the given nextLink token. +func (c ManagedEnvironmentsClient) preparerForListWorkloadProfileStatesWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { + uri, err := url.Parse(nextLink) + if err != nil { + return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) + } + queryParameters := map[string]interface{}{} + for k, v := range uri.Query() { + if len(v) == 0 { + continue + } + val := v[0] + val = autorest.Encode("query", val) + queryParameters[k] = val + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(uri.Path), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForListWorkloadProfileStates handles the response to the ListWorkloadProfileStates request. The method always +// closes the http.Response Body. +func (c ManagedEnvironmentsClient) responderForListWorkloadProfileStates(resp *http.Response) (result ListWorkloadProfileStatesOperationResponse, err error) { + type page struct { + Values []WorkloadProfileStates `json:"value"` + NextLink *string `json:"nextLink"` + } + var respObj page + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&respObj), + autorest.ByClosing()) + result.HttpResponse = resp + result.Model = &respObj.Values + result.nextLink = respObj.NextLink + if respObj.NextLink != nil { + result.nextPageFunc = func(ctx context.Context, nextLink string) (result ListWorkloadProfileStatesOperationResponse, err error) { + req, err := c.preparerForListWorkloadProfileStatesWithNextLink(ctx, nextLink) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ListWorkloadProfileStates", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ListWorkloadProfileStates", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForListWorkloadProfileStates(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ListWorkloadProfileStates", result.HttpResponse, "Failure responding to request") + return + } + + return + } + } + return +} + +// ListWorkloadProfileStatesComplete retrieves all of the results into a single object +func (c ManagedEnvironmentsClient) ListWorkloadProfileStatesComplete(ctx context.Context, id ManagedEnvironmentId) (ListWorkloadProfileStatesCompleteResult, error) { + return c.ListWorkloadProfileStatesCompleteMatchingPredicate(ctx, id, WorkloadProfileStatesOperationPredicate{}) +} + +// ListWorkloadProfileStatesCompleteMatchingPredicate retrieves all of the results and then applied the predicate +func (c ManagedEnvironmentsClient) ListWorkloadProfileStatesCompleteMatchingPredicate(ctx context.Context, id ManagedEnvironmentId, predicate WorkloadProfileStatesOperationPredicate) (resp ListWorkloadProfileStatesCompleteResult, err error) { + items := make([]WorkloadProfileStates, 0) + + page, err := c.ListWorkloadProfileStates(ctx, id) + if err != nil { + err = fmt.Errorf("loading the initial page: %+v", err) + return + } + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + for page.HasMore() { + page, err = page.LoadMore(ctx) + if err != nil { + err = fmt.Errorf("loading the next page: %+v", err) + return + } + + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + } + + out := ListWorkloadProfileStatesCompleteResult{ + Items: items, + } + return out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatescreateorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatescreateorupdate_autorest.go new file mode 100644 index 000000000000..f9eb7c6fb1c4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatescreateorupdate_autorest.go @@ -0,0 +1,79 @@ +package managedenvironments + +import ( + "context" + "fmt" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/hashicorp/go-azure-helpers/polling" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ManagedCertificatesCreateOrUpdateOperationResponse struct { + Poller polling.LongRunningPoller + HttpResponse *http.Response +} + +// ManagedCertificatesCreateOrUpdate ... +func (c ManagedEnvironmentsClient) ManagedCertificatesCreateOrUpdate(ctx context.Context, id ManagedCertificateId, input ManagedCertificate) (result ManagedCertificatesCreateOrUpdateOperationResponse, err error) { + req, err := c.preparerForManagedCertificatesCreateOrUpdate(ctx, id, input) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesCreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = c.senderForManagedCertificatesCreateOrUpdate(ctx, req) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesCreateOrUpdate", result.HttpResponse, "Failure sending request") + return + } + + return +} + +// ManagedCertificatesCreateOrUpdateThenPoll performs ManagedCertificatesCreateOrUpdate then polls until it's completed +func (c ManagedEnvironmentsClient) ManagedCertificatesCreateOrUpdateThenPoll(ctx context.Context, id ManagedCertificateId, input ManagedCertificate) error { + result, err := c.ManagedCertificatesCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ManagedCertificatesCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(); err != nil { + return fmt.Errorf("polling after ManagedCertificatesCreateOrUpdate: %+v", err) + } + + return nil +} + +// preparerForManagedCertificatesCreateOrUpdate prepares the ManagedCertificatesCreateOrUpdate request. +func (c ManagedEnvironmentsClient) preparerForManagedCertificatesCreateOrUpdate(ctx context.Context, id ManagedCertificateId, input ManagedCertificate) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithJSON(input), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// senderForManagedCertificatesCreateOrUpdate sends the ManagedCertificatesCreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (c ManagedEnvironmentsClient) senderForManagedCertificatesCreateOrUpdate(ctx context.Context, req *http.Request) (future ManagedCertificatesCreateOrUpdateOperationResponse, err error) { + var resp *http.Response + resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + return + } + + future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatesdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatesdelete_autorest.go new file mode 100644 index 000000000000..89efe9af8b18 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatesdelete_autorest.go @@ -0,0 +1,66 @@ +package managedenvironments + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ManagedCertificatesDeleteOperationResponse struct { + HttpResponse *http.Response +} + +// ManagedCertificatesDelete ... +func (c ManagedEnvironmentsClient) ManagedCertificatesDelete(ctx context.Context, id ManagedCertificateId) (result ManagedCertificatesDeleteOperationResponse, err error) { + req, err := c.preparerForManagedCertificatesDelete(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesDelete", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesDelete", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForManagedCertificatesDelete(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesDelete", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForManagedCertificatesDelete prepares the ManagedCertificatesDelete request. +func (c ManagedEnvironmentsClient) preparerForManagedCertificatesDelete(ctx context.Context, id ManagedCertificateId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsDelete(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForManagedCertificatesDelete handles the response to the ManagedCertificatesDelete request. The method always +// closes the http.Response Body. +func (c ManagedEnvironmentsClient) responderForManagedCertificatesDelete(resp *http.Response) (result ManagedCertificatesDeleteOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatesget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatesget_autorest.go new file mode 100644 index 000000000000..e0efa49045fd --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatesget_autorest.go @@ -0,0 +1,68 @@ +package managedenvironments + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ManagedCertificatesGetOperationResponse struct { + HttpResponse *http.Response + Model *ManagedCertificate +} + +// ManagedCertificatesGet ... +func (c ManagedEnvironmentsClient) ManagedCertificatesGet(ctx context.Context, id ManagedCertificateId) (result ManagedCertificatesGetOperationResponse, err error) { + req, err := c.preparerForManagedCertificatesGet(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesGet", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesGet", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForManagedCertificatesGet(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesGet", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForManagedCertificatesGet prepares the ManagedCertificatesGet request. +func (c ManagedEnvironmentsClient) preparerForManagedCertificatesGet(ctx context.Context, id ManagedCertificateId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForManagedCertificatesGet handles the response to the ManagedCertificatesGet request. The method always +// closes the http.Response Body. +func (c ManagedEnvironmentsClient) responderForManagedCertificatesGet(resp *http.Response) (result ManagedCertificatesGetOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificateslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificateslist_autorest.go new file mode 100644 index 000000000000..91d9c8c93e0d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificateslist_autorest.go @@ -0,0 +1,186 @@ +package managedenvironments + +import ( + "context" + "fmt" + "net/http" + "net/url" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ManagedCertificatesListOperationResponse struct { + HttpResponse *http.Response + Model *[]ManagedCertificate + + nextLink *string + nextPageFunc func(ctx context.Context, nextLink string) (ManagedCertificatesListOperationResponse, error) +} + +type ManagedCertificatesListCompleteResult struct { + Items []ManagedCertificate +} + +func (r ManagedCertificatesListOperationResponse) HasMore() bool { + return r.nextLink != nil +} + +func (r ManagedCertificatesListOperationResponse) LoadMore(ctx context.Context) (resp ManagedCertificatesListOperationResponse, err error) { + if !r.HasMore() { + err = fmt.Errorf("no more pages returned") + return + } + return r.nextPageFunc(ctx, *r.nextLink) +} + +// ManagedCertificatesList ... +func (c ManagedEnvironmentsClient) ManagedCertificatesList(ctx context.Context, id ManagedEnvironmentId) (resp ManagedCertificatesListOperationResponse, err error) { + req, err := c.preparerForManagedCertificatesList(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesList", nil, "Failure preparing request") + return + } + + resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesList", resp.HttpResponse, "Failure sending request") + return + } + + resp, err = c.responderForManagedCertificatesList(resp.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesList", resp.HttpResponse, "Failure responding to request") + return + } + return +} + +// preparerForManagedCertificatesList prepares the ManagedCertificatesList request. +func (c ManagedEnvironmentsClient) preparerForManagedCertificatesList(ctx context.Context, id ManagedEnvironmentId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/managedCertificates", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// preparerForManagedCertificatesListWithNextLink prepares the ManagedCertificatesList request with the given nextLink token. +func (c ManagedEnvironmentsClient) preparerForManagedCertificatesListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { + uri, err := url.Parse(nextLink) + if err != nil { + return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) + } + queryParameters := map[string]interface{}{} + for k, v := range uri.Query() { + if len(v) == 0 { + continue + } + val := v[0] + val = autorest.Encode("query", val) + queryParameters[k] = val + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(uri.Path), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForManagedCertificatesList handles the response to the ManagedCertificatesList request. The method always +// closes the http.Response Body. +func (c ManagedEnvironmentsClient) responderForManagedCertificatesList(resp *http.Response) (result ManagedCertificatesListOperationResponse, err error) { + type page struct { + Values []ManagedCertificate `json:"value"` + NextLink *string `json:"nextLink"` + } + var respObj page + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&respObj), + autorest.ByClosing()) + result.HttpResponse = resp + result.Model = &respObj.Values + result.nextLink = respObj.NextLink + if respObj.NextLink != nil { + result.nextPageFunc = func(ctx context.Context, nextLink string) (result ManagedCertificatesListOperationResponse, err error) { + req, err := c.preparerForManagedCertificatesListWithNextLink(ctx, nextLink) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesList", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesList", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForManagedCertificatesList(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesList", result.HttpResponse, "Failure responding to request") + return + } + + return + } + } + return +} + +// ManagedCertificatesListComplete retrieves all of the results into a single object +func (c ManagedEnvironmentsClient) ManagedCertificatesListComplete(ctx context.Context, id ManagedEnvironmentId) (ManagedCertificatesListCompleteResult, error) { + return c.ManagedCertificatesListCompleteMatchingPredicate(ctx, id, ManagedCertificateOperationPredicate{}) +} + +// ManagedCertificatesListCompleteMatchingPredicate retrieves all of the results and then applied the predicate +func (c ManagedEnvironmentsClient) ManagedCertificatesListCompleteMatchingPredicate(ctx context.Context, id ManagedEnvironmentId, predicate ManagedCertificateOperationPredicate) (resp ManagedCertificatesListCompleteResult, err error) { + items := make([]ManagedCertificate, 0) + + page, err := c.ManagedCertificatesList(ctx, id) + if err != nil { + err = fmt.Errorf("loading the initial page: %+v", err) + return + } + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + for page.HasMore() { + page, err = page.LoadMore(ctx) + if err != nil { + err = fmt.Errorf("loading the next page: %+v", err) + return + } + + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + } + + out := ManagedCertificatesListCompleteResult{ + Items: items, + } + return out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatesupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatesupdate_autorest.go new file mode 100644 index 000000000000..f8b8e0e517b6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedcertificatesupdate_autorest.go @@ -0,0 +1,69 @@ +package managedenvironments + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ManagedCertificatesUpdateOperationResponse struct { + HttpResponse *http.Response + Model *ManagedCertificate +} + +// ManagedCertificatesUpdate ... +func (c ManagedEnvironmentsClient) ManagedCertificatesUpdate(ctx context.Context, id ManagedCertificateId, input ManagedCertificatePatch) (result ManagedCertificatesUpdateOperationResponse, err error) { + req, err := c.preparerForManagedCertificatesUpdate(ctx, id, input) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesUpdate", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesUpdate", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForManagedCertificatesUpdate(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedCertificatesUpdate", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForManagedCertificatesUpdate prepares the ManagedCertificatesUpdate request. +func (c ManagedEnvironmentsClient) preparerForManagedCertificatesUpdate(ctx context.Context, id ManagedCertificateId, input ManagedCertificatePatch) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithJSON(input), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForManagedCertificatesUpdate handles the response to the ManagedCertificatesUpdate request. The method always +// closes the http.Response Body. +func (c ManagedEnvironmentsClient) responderForManagedCertificatesUpdate(resp *http.Response) (result ManagedCertificatesUpdateOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedenvironmentdiagnosticsgetdetector_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedenvironmentdiagnosticsgetdetector_autorest.go new file mode 100644 index 000000000000..a79560ae7d32 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedenvironmentdiagnosticsgetdetector_autorest.go @@ -0,0 +1,68 @@ +package managedenvironments + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ManagedEnvironmentDiagnosticsGetDetectorOperationResponse struct { + HttpResponse *http.Response + Model *Diagnostics +} + +// ManagedEnvironmentDiagnosticsGetDetector ... +func (c ManagedEnvironmentsClient) ManagedEnvironmentDiagnosticsGetDetector(ctx context.Context, id ManagedEnvironmentDetectorId) (result ManagedEnvironmentDiagnosticsGetDetectorOperationResponse, err error) { + req, err := c.preparerForManagedEnvironmentDiagnosticsGetDetector(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedEnvironmentDiagnosticsGetDetector", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedEnvironmentDiagnosticsGetDetector", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForManagedEnvironmentDiagnosticsGetDetector(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedEnvironmentDiagnosticsGetDetector", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForManagedEnvironmentDiagnosticsGetDetector prepares the ManagedEnvironmentDiagnosticsGetDetector request. +func (c ManagedEnvironmentsClient) preparerForManagedEnvironmentDiagnosticsGetDetector(ctx context.Context, id ManagedEnvironmentDetectorId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForManagedEnvironmentDiagnosticsGetDetector handles the response to the ManagedEnvironmentDiagnosticsGetDetector request. The method always +// closes the http.Response Body. +func (c ManagedEnvironmentsClient) responderForManagedEnvironmentDiagnosticsGetDetector(resp *http.Response) (result ManagedEnvironmentDiagnosticsGetDetectorOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedenvironmentdiagnosticslistdetectors_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedenvironmentdiagnosticslistdetectors_autorest.go new file mode 100644 index 000000000000..462a41574f66 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_managedenvironmentdiagnosticslistdetectors_autorest.go @@ -0,0 +1,69 @@ +package managedenvironments + +import ( + "context" + "fmt" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ManagedEnvironmentDiagnosticsListDetectorsOperationResponse struct { + HttpResponse *http.Response + Model *DiagnosticsCollection +} + +// ManagedEnvironmentDiagnosticsListDetectors ... +func (c ManagedEnvironmentsClient) ManagedEnvironmentDiagnosticsListDetectors(ctx context.Context, id ManagedEnvironmentId) (result ManagedEnvironmentDiagnosticsListDetectorsOperationResponse, err error) { + req, err := c.preparerForManagedEnvironmentDiagnosticsListDetectors(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedEnvironmentDiagnosticsListDetectors", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedEnvironmentDiagnosticsListDetectors", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForManagedEnvironmentDiagnosticsListDetectors(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "managedenvironments.ManagedEnvironmentsClient", "ManagedEnvironmentDiagnosticsListDetectors", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForManagedEnvironmentDiagnosticsListDetectors prepares the ManagedEnvironmentDiagnosticsListDetectors request. +func (c ManagedEnvironmentsClient) preparerForManagedEnvironmentDiagnosticsListDetectors(ctx context.Context, id ManagedEnvironmentId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/detectors", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForManagedEnvironmentDiagnosticsListDetectors handles the response to the ManagedEnvironmentDiagnosticsListDetectors request. The method always +// closes the http.Response Body. +func (c ManagedEnvironmentsClient) responderForManagedEnvironmentDiagnosticsListDetectors(resp *http.Response) (result ManagedEnvironmentDiagnosticsListDetectorsOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_namespaceschecknameavailability_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_namespaceschecknameavailability_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_namespaceschecknameavailability_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_namespaceschecknameavailability_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_update_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_update_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/method_update_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/method_update_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_applogsconfiguration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_applogsconfiguration.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_applogsconfiguration.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_applogsconfiguration.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_certificate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_certificate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_certificate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_certificate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_certificatepatch.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_certificatepatch.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_certificatepatch.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_certificatepatch.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_certificateproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_certificateproperties.go similarity index 51% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_certificateproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_certificateproperties.go index d6cde77952bd..dc685477167e 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_certificateproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_certificateproperties.go @@ -10,16 +10,17 @@ import ( // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type CertificateProperties struct { - ExpirationDate *string `json:"expirationDate,omitempty"` - IssueDate *string `json:"issueDate,omitempty"` - Issuer *string `json:"issuer,omitempty"` - Password *string `json:"password,omitempty"` - ProvisioningState *CertificateProvisioningState `json:"provisioningState,omitempty"` - PublicKeyHash *string `json:"publicKeyHash,omitempty"` - SubjectName *string `json:"subjectName,omitempty"` - Thumbprint *string `json:"thumbprint,omitempty"` - Valid *bool `json:"valid,omitempty"` - Value *string `json:"value,omitempty"` + ExpirationDate *string `json:"expirationDate,omitempty"` + IssueDate *string `json:"issueDate,omitempty"` + Issuer *string `json:"issuer,omitempty"` + Password *string `json:"password,omitempty"` + ProvisioningState *CertificateProvisioningState `json:"provisioningState,omitempty"` + PublicKeyHash *string `json:"publicKeyHash,omitempty"` + SubjectAlternativeNames *[]string `json:"subjectAlternativeNames,omitempty"` + SubjectName *string `json:"subjectName,omitempty"` + Thumbprint *string `json:"thumbprint,omitempty"` + Valid *bool `json:"valid,omitempty"` + Value *string `json:"value,omitempty"` } func (o *CertificateProperties) GetExpirationDateAsTime() (*time.Time, error) { diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_checknameavailabilityrequest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_checknameavailabilityrequest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_checknameavailabilityrequest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_checknameavailabilityrequest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_checknameavailabilityresponse.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_checknameavailabilityresponse.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_checknameavailabilityresponse.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_checknameavailabilityresponse.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_customdomainconfiguration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_customdomainconfiguration.go new file mode 100644 index 000000000000..567a79cebd0b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_customdomainconfiguration.go @@ -0,0 +1,32 @@ +package managedenvironments + +import ( + "time" + + "github.com/hashicorp/go-azure-helpers/lang/dates" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomDomainConfiguration struct { + CertificatePassword *string `json:"certificatePassword,omitempty"` + CertificateValue *string `json:"certificateValue,omitempty"` + CustomDomainVerificationId *string `json:"customDomainVerificationId,omitempty"` + DnsSuffix *string `json:"dnsSuffix,omitempty"` + ExpirationDate *string `json:"expirationDate,omitempty"` + SubjectName *string `json:"subjectName,omitempty"` + Thumbprint *string `json:"thumbprint,omitempty"` +} + +func (o *CustomDomainConfiguration) GetExpirationDateAsTime() (*time.Time, error) { + if o.ExpirationDate == nil { + return nil, nil + } + return dates.ParseAsFormat(o.ExpirationDate, "2006-01-02T15:04:05Z07:00") +} + +func (o *CustomDomainConfiguration) SetExpirationDateAsTime(input time.Time) { + formatted := input.Format("2006-01-02T15:04:05Z07:00") + o.ExpirationDate = &formatted +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_daprconfiguration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_daprconfiguration.go new file mode 100644 index 000000000000..53bd17d37574 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_daprconfiguration.go @@ -0,0 +1,8 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DaprConfiguration struct { + Version *string `json:"version,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdataprovidermetadata.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdataprovidermetadata.go new file mode 100644 index 000000000000..4370d2d5424a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdataprovidermetadata.go @@ -0,0 +1,9 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticDataProviderMetadata struct { + PropertyBag *[]DiagnosticDataProviderMetadataPropertyBagInlined `json:"propertyBag,omitempty"` + ProviderName *string `json:"providerName,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerappsecret.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdataprovidermetadatapropertybaginlined.go similarity index 72% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerappsecret.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdataprovidermetadatapropertybaginlined.go index a2ca83f001b0..4d8963617106 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps/model_containerappsecret.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdataprovidermetadatapropertybaginlined.go @@ -1,9 +1,9 @@ -package containerapps +package managedenvironments // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContainerAppSecret struct { +type DiagnosticDataProviderMetadataPropertyBagInlined struct { Name *string `json:"name,omitempty"` Value *string `json:"value,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdatatableresponsecolumn.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdatatableresponsecolumn.go new file mode 100644 index 000000000000..ab6b5a67c29e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdatatableresponsecolumn.go @@ -0,0 +1,10 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticDataTableResponseColumn struct { + ColumnName *string `json:"columnName,omitempty"` + ColumnType *string `json:"columnType,omitempty"` + DataType *string `json:"dataType,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdatatableresponseobject.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdatatableresponseobject.go new file mode 100644 index 000000000000..27daeba457de --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticdatatableresponseobject.go @@ -0,0 +1,10 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticDataTableResponseObject struct { + Columns *[]DiagnosticDataTableResponseColumn `json:"columns,omitempty"` + Rows *[]interface{} `json:"rows,omitempty"` + TableName *string `json:"tableName,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticrendering.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticrendering.go new file mode 100644 index 000000000000..12c6de84296f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticrendering.go @@ -0,0 +1,11 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticRendering struct { + Description *string `json:"description,omitempty"` + IsVisible *bool `json:"isVisible,omitempty"` + Title *string `json:"title,omitempty"` + Type *int64 `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnostics.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnostics.go new file mode 100644 index 000000000000..206b21e02c0e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnostics.go @@ -0,0 +1,16 @@ +package managedenvironments + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Diagnostics struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *DiagnosticsProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticscollection.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticscollection.go new file mode 100644 index 000000000000..f7b5214c1aae --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticscollection.go @@ -0,0 +1,9 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsCollection struct { + NextLink *string `json:"nextLink,omitempty"` + Value []Diagnostics `json:"value"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsdataapiresponse.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsdataapiresponse.go new file mode 100644 index 000000000000..f03854afb04c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsdataapiresponse.go @@ -0,0 +1,9 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsDataApiResponse struct { + RenderingProperties *DiagnosticRendering `json:"renderingProperties,omitempty"` + Table *DiagnosticDataTableResponseObject `json:"table,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsdefinition.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsdefinition.go new file mode 100644 index 000000000000..4b111825f406 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsdefinition.go @@ -0,0 +1,16 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsDefinition struct { + AnalysisTypes *[]string `json:"analysisTypes,omitempty"` + Author *string `json:"author,omitempty"` + Category *string `json:"category,omitempty"` + Description *string `json:"description,omitempty"` + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Score *float64 `json:"score,omitempty"` + SupportTopicList *[]DiagnosticSupportTopic `json:"supportTopicList,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsproperties.go new file mode 100644 index 000000000000..b8b0624147b2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsproperties.go @@ -0,0 +1,11 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsProperties struct { + DataProviderMetadata *DiagnosticDataProviderMetadata `json:"dataProviderMetadata,omitempty"` + Dataset *[]DiagnosticsDataApiResponse `json:"dataset,omitempty"` + Metadata *DiagnosticsDefinition `json:"metadata,omitempty"` + Status *DiagnosticsStatus `json:"status,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsstatus.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsstatus.go new file mode 100644 index 000000000000..bff7d6b2f939 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsstatus.go @@ -0,0 +1,9 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticsStatus struct { + Message *string `json:"message,omitempty"` + StatusId *int64 `json:"statusId,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsupporttopic.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsupporttopic.go new file mode 100644 index 000000000000..3402c1969afd --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_diagnosticsupporttopic.go @@ -0,0 +1,9 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticSupportTopic struct { + Id *string `json:"id,omitempty"` + PesId *string `json:"pesId,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_environmentauthtoken.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_environmentauthtoken.go new file mode 100644 index 000000000000..500c9d596430 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_environmentauthtoken.go @@ -0,0 +1,18 @@ +package managedenvironments + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type EnvironmentAuthToken struct { + Id *string `json:"id,omitempty"` + Location string `json:"location"` + Name *string `json:"name,omitempty"` + Properties *EnvironmentAuthTokenProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Tags *map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_environmentauthtokenproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_environmentauthtokenproperties.go new file mode 100644 index 000000000000..78e904953fd6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_environmentauthtokenproperties.go @@ -0,0 +1,27 @@ +package managedenvironments + +import ( + "time" + + "github.com/hashicorp/go-azure-helpers/lang/dates" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type EnvironmentAuthTokenProperties struct { + Expires *string `json:"expires,omitempty"` + Token *string `json:"token,omitempty"` +} + +func (o *EnvironmentAuthTokenProperties) GetExpiresAsTime() (*time.Time, error) { + if o.Expires == nil { + return nil, nil + } + return dates.ParseAsFormat(o.Expires, "2006-01-02T15:04:05Z07:00") +} + +func (o *EnvironmentAuthTokenProperties) SetExpiresAsTime(input time.Time) { + formatted := input.Format("2006-01-02T15:04:05Z07:00") + o.Expires = &formatted +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_kedaconfiguration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_kedaconfiguration.go new file mode 100644 index 000000000000..16513cb6808a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_kedaconfiguration.go @@ -0,0 +1,8 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type KedaConfiguration struct { + Version *string `json:"version,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_loganalyticsconfiguration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_loganalyticsconfiguration.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_loganalyticsconfiguration.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_loganalyticsconfiguration.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedcertificate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedcertificate.go new file mode 100644 index 000000000000..7e1f1e64b10d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedcertificate.go @@ -0,0 +1,18 @@ +package managedenvironments + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ManagedCertificate struct { + Id *string `json:"id,omitempty"` + Location string `json:"location"` + Name *string `json:"name,omitempty"` + Properties *ManagedCertificateProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Tags *map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedcertificatepatch.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedcertificatepatch.go new file mode 100644 index 000000000000..4f8a0d6af6b6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedcertificatepatch.go @@ -0,0 +1,8 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ManagedCertificatePatch struct { + Tags *map[string]string `json:"tags,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedcertificateproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedcertificateproperties.go new file mode 100644 index 000000000000..b67b5aec7199 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedcertificateproperties.go @@ -0,0 +1,12 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ManagedCertificateProperties struct { + DomainControlValidation *ManagedCertificateDomainControlValidation `json:"domainControlValidation,omitempty"` + Error *string `json:"error,omitempty"` + ProvisioningState *CertificateProvisioningState `json:"provisioningState,omitempty"` + SubjectName *string `json:"subjectName,omitempty"` + ValidationToken *string `json:"validationToken,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_managedenvironment.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedenvironment.go similarity index 92% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_managedenvironment.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedenvironment.go index a62721d9740c..860e7bc71278 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_managedenvironment.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedenvironment.go @@ -9,6 +9,7 @@ import ( type ManagedEnvironment struct { Id *string `json:"id,omitempty"` + Kind *string `json:"kind,omitempty"` Location string `json:"location"` Name *string `json:"name,omitempty"` Properties *ManagedEnvironmentProperties `json:"properties,omitempty"` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedenvironmentproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedenvironmentproperties.go new file mode 100644 index 000000000000..6d43445d0f19 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedenvironmentproperties.go @@ -0,0 +1,23 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ManagedEnvironmentProperties struct { + AppLogsConfiguration *AppLogsConfiguration `json:"appLogsConfiguration,omitempty"` + CustomDomainConfiguration *CustomDomainConfiguration `json:"customDomainConfiguration,omitempty"` + DaprAIConnectionString *string `json:"daprAIConnectionString,omitempty"` + DaprAIInstrumentationKey *string `json:"daprAIInstrumentationKey,omitempty"` + DaprConfiguration *DaprConfiguration `json:"daprConfiguration,omitempty"` + DefaultDomain *string `json:"defaultDomain,omitempty"` + DeploymentErrors *string `json:"deploymentErrors,omitempty"` + EventStreamEndpoint *string `json:"eventStreamEndpoint,omitempty"` + InfrastructureResourceGroup *string `json:"infrastructureResourceGroup,omitempty"` + KedaConfiguration *KedaConfiguration `json:"kedaConfiguration,omitempty"` + PeerAuthentication *ManagedEnvironmentPropertiesPeerAuthentication `json:"peerAuthentication,omitempty"` + ProvisioningState *EnvironmentProvisioningState `json:"provisioningState,omitempty"` + StaticIP *string `json:"staticIp,omitempty"` + VnetConfiguration *VnetConfiguration `json:"vnetConfiguration,omitempty"` + WorkloadProfiles *[]WorkloadProfile `json:"workloadProfiles,omitempty"` + ZoneRedundant *bool `json:"zoneRedundant,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedenvironmentpropertiespeerauthentication.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedenvironmentpropertiespeerauthentication.go new file mode 100644 index 000000000000..3a549e035946 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_managedenvironmentpropertiespeerauthentication.go @@ -0,0 +1,8 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ManagedEnvironmentPropertiesPeerAuthentication struct { + Mtls *Mtls `json:"mtls,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_mtls.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_mtls.go new file mode 100644 index 000000000000..a3a25e876956 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_mtls.go @@ -0,0 +1,8 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Mtls struct { + Enabled *bool `json:"enabled,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_vnetconfiguration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_vnetconfiguration.go similarity index 89% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_vnetconfiguration.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_vnetconfiguration.go index 1cb11fc88149..014a2857454c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/model_vnetconfiguration.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_vnetconfiguration.go @@ -9,5 +9,4 @@ type VnetConfiguration struct { Internal *bool `json:"internal,omitempty"` PlatformReservedCidr *string `json:"platformReservedCidr,omitempty"` PlatformReservedDnsIP *string `json:"platformReservedDnsIP,omitempty"` - RuntimeSubnetId *string `json:"runtimeSubnetId,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_workloadprofile.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_workloadprofile.go new file mode 100644 index 000000000000..bcf34bbba5b3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_workloadprofile.go @@ -0,0 +1,11 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type WorkloadProfile struct { + MaximumCount *int64 `json:"maximumCount,omitempty"` + MinimumCount *int64 `json:"minimumCount,omitempty"` + Name string `json:"name"` + WorkloadProfileType string `json:"workloadProfileType"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_workloadprofilestates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_workloadprofilestates.go new file mode 100644 index 000000000000..e0db3501de72 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_workloadprofilestates.go @@ -0,0 +1,16 @@ +package managedenvironments + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type WorkloadProfileStates struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *WorkloadProfileStatesProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_workloadprofilestatesproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_workloadprofilestatesproperties.go new file mode 100644 index 000000000000..e5e7acb2d494 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/model_workloadprofilestatesproperties.go @@ -0,0 +1,10 @@ +package managedenvironments + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type WorkloadProfileStatesProperties struct { + CurrentCount *int64 `json:"currentCount,omitempty"` + MaximumCount *int64 `json:"maximumCount,omitempty"` + MinimumCount *int64 `json:"minimumCount,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/predicates.go similarity index 53% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/predicates.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/predicates.go index 8a7b008b49c9..4dd46763353b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/predicates.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/predicates.go @@ -31,8 +31,37 @@ func (p CertificateOperationPredicate) Matches(input Certificate) bool { return true } +type ManagedCertificateOperationPredicate struct { + Id *string + Location *string + Name *string + Type *string +} + +func (p ManagedCertificateOperationPredicate) Matches(input ManagedCertificate) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Location != nil && *p.Location != input.Location { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + type ManagedEnvironmentOperationPredicate struct { Id *string + Kind *string Location *string Name *string Type *string @@ -44,6 +73,10 @@ func (p ManagedEnvironmentOperationPredicate) Matches(input ManagedEnvironment) return false } + if p.Kind != nil && (input.Kind == nil || *p.Kind != *input.Kind) { + return false + } + if p.Location != nil && *p.Location != input.Location { return false } @@ -58,3 +91,26 @@ func (p ManagedEnvironmentOperationPredicate) Matches(input ManagedEnvironment) return true } + +type WorkloadProfileStatesOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p WorkloadProfileStatesOperationPredicate) Matches(input WorkloadProfileStates) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/version.go similarity index 89% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/version.go index 1aa6d02f9748..e3b0cf7f9f06 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2022-03-01" +const defaultApiVersion = "2023-05-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/managedenvironments/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/README.md similarity index 95% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/README.md index 25185f6fff18..dcea63a4cfa5 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages` Documentation -The `managedenvironmentsstorages` SDK allows for interaction with the Azure Resource Manager Service `containerapps` (API Version `2022-03-01`). +The `managedenvironmentsstorages` SDK allows for interaction with the Azure Resource Manager Service `containerapps` (API Version `2023-05-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages" +import "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages" ``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/constants.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/constants.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/constants.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/id_managedenvironment.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/id_managedenvironment.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/id_managedenvironment.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/id_managedenvironment.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/id_storage.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/id_storage.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/id_storage.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/id_storage.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/method_createorupdate_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/method_createorupdate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/method_createorupdate_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/method_delete_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/method_delete_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/method_delete_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/method_get_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/method_get_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/method_get_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/method_list_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/method_list_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/method_list_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/method_list_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/model_azurefileproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/model_azurefileproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/model_azurefileproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/model_azurefileproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/model_managedenvironmentstorage.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/model_managedenvironmentstorage.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/model_managedenvironmentstorage.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/model_managedenvironmentstorage.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/model_managedenvironmentstorageproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/model_managedenvironmentstorageproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/model_managedenvironmentstorageproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/model_managedenvironmentstorageproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/model_managedenvironmentstoragescollection.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/model_managedenvironmentstoragescollection.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/model_managedenvironmentstoragescollection.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/model_managedenvironmentstoragescollection.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/version.go similarity index 89% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/version.go index fa52a4869555..75d2da96cefa 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2022-03-01" +const defaultApiVersion = "2023-05-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/managedenvironmentsstorages/%s", defaultApiVersion) diff --git a/vendor/modules.txt b/vendor/modules.txt index cfc8c212eb80..6ca86d4e37f8 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -215,12 +215,12 @@ github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-03/galleryapp github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-03/gallerysharingupdate github.com/hashicorp/go-azure-sdk/resource-manager/confidentialledger/2022-05-13/confidentialledger github.com/hashicorp/go-azure-sdk/resource-manager/consumption/2019-10-01/budgets -github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/certificates -github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerapps -github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/containerappsrevisions -github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/daprcomponents -github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironments -github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2022-03-01/managedenvironmentsstorages +github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates +github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerapps +github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/containerappsrevisions +github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/daprcomponents +github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments +github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironmentsstorages github.com/hashicorp/go-azure-sdk/resource-manager/containerinstance/2023-05-01/containerinstance github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/agentpools From 68501839610f0c6bef8e6fa61d545edac2ba5b0c Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Thu, 3 Aug 2023 12:14:49 +0200 Subject: [PATCH 003/336] containerapps: adding a todo for the new functionality in 2023-05-01 --- internal/services/containerapps/helpers/container_apps.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/services/containerapps/helpers/container_apps.go b/internal/services/containerapps/helpers/container_apps.go index 7f61fd3fd2c9..f088b5508df8 100644 --- a/internal/services/containerapps/helpers/container_apps.go +++ b/internal/services/containerapps/helpers/container_apps.go @@ -2243,7 +2243,11 @@ func UnpackContainerDaprSecretsCollection(input *daprcomponents.DaprSecretsColle result := make([]daprcomponents.Secret, 0) for _, v := range input.Value { - result = append(result, daprcomponents.Secret(v)) + result = append(result, daprcomponents.Secret{ + // TODO: add support for Identity & KeyVaultUrl + Name: v.Name, + Value: v.Value, + }) } return &result From bb2b52ba5b275d72f2ea09f8ba8ef5e4ff042fe1 Mon Sep 17 00:00:00 2001 From: xuwu1 Date: Mon, 14 Aug 2023 17:24:25 +0800 Subject: [PATCH 004/336] fix pin active role assignment timeout --- .../pim_active_role_assignment_resource.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/internal/services/authorization/pim_active_role_assignment_resource.go b/internal/services/authorization/pim_active_role_assignment_resource.go index 2dd57a956ef5..4523d2731827 100644 --- a/internal/services/authorization/pim_active_role_assignment_resource.go +++ b/internal/services/authorization/pim_active_role_assignment_resource.go @@ -201,13 +201,18 @@ func (r PimActiveRoleAssignmentResource) Create() sdk.ResourceFunc { return fmt.Errorf("generating uuid: %+v", err) } + deadline, ok := ctx.Deadline() + if !ok { + return fmt.Errorf("internal error: context has no deadline") + } + requestId := roleassignmentschedulerequests.NewScopedRoleAssignmentScheduleRequestID(config.Scope, uuid) stateConf := &pluginsdk.StateChangeConf{ Pending: []string{"Missing"}, Target: []string{"Created"}, Refresh: createActiveRoleAssignment(ctx, clientRequest, requestId, &payload), MinTimeout: 30 * time.Second, - Timeout: 5 * time.Minute, + Timeout: time.Until(deadline), } if _, err = stateConf.WaitForStateContext(ctx); err != nil { return fmt.Errorf("waiting for %s to be created: %+v", id, err) @@ -219,7 +224,7 @@ func (r PimActiveRoleAssignmentResource) Create() sdk.ResourceFunc { Target: []string{"Found"}, Refresh: waitForActiveRoleAssignment(ctx, clientInstances, config.Scope, config.PrincipalId, config.RoleDefinitionId, "Found"), MinTimeout: 30 * time.Second, - Timeout: 5 * time.Minute, + Timeout: time.Until(deadline), } if _, err = stateConf.WaitForStateContext(ctx); err != nil { @@ -341,13 +346,17 @@ func (PimActiveRoleAssignmentResource) Delete() sdk.ResourceFunc { } deleteId := roleassignmentschedulerequests.NewScopedRoleAssignmentScheduleRequestID(id.Scope, uuid) + deadline, ok := ctx.Deadline() + if !ok { + return fmt.Errorf("internal error: context has no deadline") + } // wait for resource to deleted stateConf := &pluginsdk.StateChangeConf{ Pending: []string{"Exist"}, Target: []string{"Deleted"}, Refresh: deleteActiveRoleAssignment(ctx, clientRequest, deleteId, &payload), MinTimeout: 1 * time.Minute, - Timeout: 5 * time.Minute, + Timeout: time.Until(deadline), } if _, err = stateConf.WaitForStateContext(ctx); err != nil { @@ -360,7 +369,7 @@ func (PimActiveRoleAssignmentResource) Delete() sdk.ResourceFunc { Target: []string{"Missing"}, Refresh: waitForActiveRoleAssignment(ctx, clientInstances, id.Scope, id.PrincipalId, id.RoleDefinitionId, "Missing"), MinTimeout: 30 * time.Second, - Timeout: 5 * time.Minute, + Timeout: time.Until(deadline), } if _, err = stateConf.WaitForStateContext(ctx); err != nil { From c7a78b4bfb90223d62456f61c98ff85598bfcde6 Mon Sep 17 00:00:00 2001 From: xuwu1 Date: Fri, 18 Aug 2023 10:48:55 +0800 Subject: [PATCH 005/336] increase timeout for virtual network gateway create --- .../services/network/virtual_network_gateway_resource.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/services/network/virtual_network_gateway_resource.go b/internal/services/network/virtual_network_gateway_resource.go index 3856d6e75942..814422deb6b8 100644 --- a/internal/services/network/virtual_network_gateway_resource.go +++ b/internal/services/network/virtual_network_gateway_resource.go @@ -37,7 +37,7 @@ func resourceVirtualNetworkGateway() *pluginsdk.Resource { }), Timeouts: &pluginsdk.ResourceTimeout{ - Create: pluginsdk.DefaultTimeout(60 * time.Minute), + Create: pluginsdk.DefaultTimeout(90 * time.Minute), Read: pluginsdk.DefaultTimeout(5 * time.Minute), Update: pluginsdk.DefaultTimeout(60 * time.Minute), Delete: pluginsdk.DefaultTimeout(60 * time.Minute), @@ -315,7 +315,7 @@ func resourceVirtualNetworkGatewaySchema() map[string]*pluginsdk.Schema { }, }, - //lintignore:XS003 + // lintignore:XS003 "peering_addresses": { Type: pluginsdk.TypeList, Computed: true, @@ -365,7 +365,7 @@ func resourceVirtualNetworkGatewaySchema() map[string]*pluginsdk.Schema { }, }, - //lintignore:XS003 + // lintignore:XS003 "custom_route": { Type: pluginsdk.TypeList, Optional: true, From 387ed1ad70040617fe694ecba22a9cce83ecf570 Mon Sep 17 00:00:00 2001 From: id Date: Mon, 21 Aug 2023 15:10:04 +0000 Subject: [PATCH 006/336] Add deprecation warning for retention policy at enabled log --- .../monitor/monitor_diagnostic_setting_resource.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/services/monitor/monitor_diagnostic_setting_resource.go b/internal/services/monitor/monitor_diagnostic_setting_resource.go index 65e7e15e0d42..d48735619d0f 100644 --- a/internal/services/monitor/monitor_diagnostic_setting_resource.go +++ b/internal/services/monitor/monitor_diagnostic_setting_resource.go @@ -126,9 +126,10 @@ func resourceMonitorDiagnosticSetting() *pluginsdk.Resource { }, "retention_policy": { - Type: pluginsdk.TypeList, - Optional: true, - MaxItems: 1, + Type: pluginsdk.TypeList, + Optional: true, + MaxItems: 1, + Deprecated: "`retention_policy` has been deprecated - to learn more https://aka.ms/diagnostic_settings_log_retention", Elem: &pluginsdk.Resource{ Schema: map[string]*pluginsdk.Schema{ "enabled": { From 10b12a32148a3b1d27abf43b1176877ef5cb1a3b Mon Sep 17 00:00:00 2001 From: xuwu1 Date: Wed, 23 Aug 2023 11:42:25 +0800 Subject: [PATCH 007/336] update nginx certificate acc test --- .../nginx/nginx_certificate_resource_test.go | 40 +++++++++++++++++-- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/internal/services/nginx/nginx_certificate_resource_test.go b/internal/services/nginx/nginx_certificate_resource_test.go index 427d505bcff0..738d03be42c4 100644 --- a/internal/services/nginx/nginx_certificate_resource_test.go +++ b/internal/services/nginx/nginx_certificate_resource_test.go @@ -88,8 +88,8 @@ func (a CertificateResource) basic(data acceptance.TestData) string { resource "azurerm_nginx_certificate" "test" { name = "acctest%[2]d" nginx_deployment_id = azurerm_nginx_deployment.test.id - key_virtual_path = "/src/cert/soservermekey.key" - certificate_virtual_path = "/src/cert/server.cert" + key_virtual_path = "/opt/cert/soservermekey.key" + certificate_virtual_path = "/opt/cert/server.cert" key_vault_secret_id = azurerm_key_vault_certificate.test.secret_id } `, a.template(data), data.RandomInteger, data.Locations.Primary) @@ -149,8 +149,8 @@ resource "azurerm_key_vault_certificate" "test2" { resource "azurerm_nginx_certificate" "test" { name = "acctest%[2]d" nginx_deployment_id = azurerm_nginx_deployment.test.id - key_virtual_path = "/src/cert/soservermekey2.key" - certificate_virtual_path = "/src/cert/server2.cert" + key_virtual_path = "/opt/cert/soservermekey.key" + certificate_virtual_path = "/opt/cert/server.cert" key_vault_secret_id = azurerm_key_vault_certificate.test2.secret_id } `, a.template(data), data.RandomInteger) @@ -215,6 +215,13 @@ resource "azurerm_subnet" "test" { } } +resource "azurerm_user_assigned_identity" "test" { + name = "acct-%[1]d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location +} + + resource "azurerm_nginx_deployment" "test" { name = "acctest-%[1]d" resource_group_name = azurerm_resource_group.test.name @@ -222,6 +229,11 @@ resource "azurerm_nginx_deployment" "test" { location = azurerm_resource_group.test.location diagnose_support_enabled = true + identity { + type = "UserAssigned" + identity_ids = [azurerm_user_assigned_identity.test.id] + } + frontend_public { ip_address = [azurerm_public_ip.test.id] } @@ -239,6 +251,25 @@ resource "azurerm_key_vault" "test" { sku_name = "standard" soft_delete_retention_days = 7 + access_policy { + tenant_id = data.azurerm_client_config.current.tenant_id + object_id = azurerm_user_assigned_identity.test.principal_id + + key_permissions = [ + "Get", + ] + + certificate_permissions = [ + "Get", + "List", + ] + + secret_permissions = [ + "Get", + "List", + ] + } + access_policy { tenant_id = data.azurerm_client_config.current.tenant_id object_id = data.azurerm_client_config.current.object_id @@ -252,6 +283,7 @@ resource "azurerm_key_vault" "test" { "Create", "Delete", "List", + "ManageContacts", "Purge", "Recover", ] From 2040f8322707ca6f175dadffe0a43ee7b2a26deb Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Wed, 23 Aug 2023 04:52:10 -0600 Subject: [PATCH 008/336] [Documentation]: update example usage for `azurerm_cdn_frontdoor_origin_group` (#23045) --- website/docs/r/cdn_frontdoor_origin_group.html.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/website/docs/r/cdn_frontdoor_origin_group.html.markdown b/website/docs/r/cdn_frontdoor_origin_group.html.markdown index 0bed80ee7c0e..f903c27b372a 100644 --- a/website/docs/r/cdn_frontdoor_origin_group.html.markdown +++ b/website/docs/r/cdn_frontdoor_origin_group.html.markdown @@ -21,6 +21,7 @@ resource "azurerm_resource_group" "example" { resource "azurerm_cdn_frontdoor_profile" "example" { name = "example-profile" resource_group_name = azurerm_resource_group.example.name + sku_name = "Standard_AzureFrontDoor" } resource "azurerm_cdn_frontdoor_origin_group" "example" { From 322f14b21656b60e3c10d0d539ed75e0c1806d9b Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Wed, 23 Aug 2023 04:57:42 -0600 Subject: [PATCH 009/336] [Documentation]: update example usage for `azurerm_cdn_frontdoor_route`, `azurerm_cdn_frontdoor_rule`, `azurerm_cdn_frontdoor_secret` and `azurerm_cdn_frontdoor_security_policy` (#23046) --- .../docs/r/cdn_frontdoor_route.html.markdown | 12 +++++++++++ .../docs/r/cdn_frontdoor_rule.html.markdown | 1 + .../docs/r/cdn_frontdoor_secret.html.markdown | 17 +++++++++++++--- ...dn_frontdoor_security_policy.html.markdown | 20 ++++++++++++++++++- 4 files changed, 46 insertions(+), 4 deletions(-) diff --git a/website/docs/r/cdn_frontdoor_route.html.markdown b/website/docs/r/cdn_frontdoor_route.html.markdown index 4526f508c26c..e86f50922a8a 100644 --- a/website/docs/r/cdn_frontdoor_route.html.markdown +++ b/website/docs/r/cdn_frontdoor_route.html.markdown @@ -26,11 +26,18 @@ resource "azurerm_dns_zone" "example" { resource "azurerm_cdn_frontdoor_profile" "example" { name = "example-profile" resource_group_name = azurerm_resource_group.example.name + sku_name = "Standard_AzureFrontDoor" } resource "azurerm_cdn_frontdoor_origin_group" "example" { name = "example-originGroup" cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.example.id + + load_balancing { + additional_latency_in_milliseconds = 0 + sample_size = 16 + successful_samples_required = 3 + } } resource "azurerm_cdn_frontdoor_origin" "example" { @@ -53,6 +60,11 @@ resource "azurerm_cdn_frontdoor_endpoint" "example" { cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.example.id } +resource "azurerm_cdn_frontdoor_rule_set" "example" { + name = "ExampleRuleSet" + cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.example.id +} + resource "azurerm_cdn_frontdoor_custom_domain" "contoso" { name = "contoso-custom-domain" cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.example.id diff --git a/website/docs/r/cdn_frontdoor_rule.html.markdown b/website/docs/r/cdn_frontdoor_rule.html.markdown index 92a64cf21b59..f5f03b437241 100644 --- a/website/docs/r/cdn_frontdoor_rule.html.markdown +++ b/website/docs/r/cdn_frontdoor_rule.html.markdown @@ -23,6 +23,7 @@ resource "azurerm_resource_group" "example" { resource "azurerm_cdn_frontdoor_profile" "example" { name = "example-profile" resource_group_name = azurerm_resource_group.example.name + sku_name = "Premium_AzureFrontDoor" } resource "azurerm_cdn_frontdoor_endpoint" "example" { diff --git a/website/docs/r/cdn_frontdoor_secret.html.markdown b/website/docs/r/cdn_frontdoor_secret.html.markdown index 2ab8fc085686..e2d22ebb8b3e 100644 --- a/website/docs/r/cdn_frontdoor_secret.html.markdown +++ b/website/docs/r/cdn_frontdoor_secret.html.markdown @@ -34,6 +34,11 @@ data "azuread_service_principal" "frontdoor" { display_name = "Microsoft.Azure.Cdn" } +resource "azurerm_resource_group" "example" { + name = "example-cdn-frontdoor" + location = "West Europe" +} + resource "azurerm_key_vault" "example" { name = "example-keyvault" location = azurerm_resource_group.example.location @@ -78,20 +83,26 @@ resource "azurerm_key_vault" "example" { resource "azurerm_key_vault_certificate" "example" { name = "example-cert" - key_vault_id = azurerm_key_vault.test.id + key_vault_id = azurerm_key_vault.example.id certificate { contents = filebase64("my-certificate.pfx") } } +resource "azurerm_cdn_frontdoor_profile" "example" { + name = "example-cdn-profile" + resource_group_name = azurerm_resource_group.example.name + sku_name = "Standard_AzureFrontDoor" +} + resource "azurerm_cdn_frontdoor_secret" "example" { name = "example-customer-managed-secret" - cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.test.id + cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.example.id secret { customer_certificate { - key_vault_certificate_id = azurerm_key_vault_certificate.test.id + key_vault_certificate_id = azurerm_key_vault_certificate.example.id } } } diff --git a/website/docs/r/cdn_frontdoor_security_policy.html.markdown b/website/docs/r/cdn_frontdoor_security_policy.html.markdown index 08343e23f934..1a86d2abe26b 100644 --- a/website/docs/r/cdn_frontdoor_security_policy.html.markdown +++ b/website/docs/r/cdn_frontdoor_security_policy.html.markdown @@ -21,6 +21,7 @@ resource "azurerm_resource_group" "example" { resource "azurerm_cdn_frontdoor_profile" "example" { name = "example-profile" resource_group_name = azurerm_resource_group.example.name + sku_name = "Standard_AzureFrontDoor" } resource "azurerm_cdn_frontdoor_firewall_policy" "example" { @@ -51,6 +52,23 @@ resource "azurerm_cdn_frontdoor_firewall_policy" "example" { } } +resource "azurerm_dns_zone" "example" { + name = "sub-domain.domain.com" + resource_group_name = azurerm_resource_group.example.name +} + +resource "azurerm_cdn_frontdoor_custom_domain" "example" { + name = "example-customDomain" + cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.example.id + dns_zone_id = azurerm_dns_zone.example.id + host_name = "contoso.fabrikam.com" + + tls { + certificate_type = "ManagedCertificate" + minimum_tls_version = "TLS12" + } +} + resource "azurerm_cdn_frontdoor_security_policy" "example" { name = "Example-Security-Policy" cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.example.id @@ -61,7 +79,7 @@ resource "azurerm_cdn_frontdoor_security_policy" "example" { association { domain { - cdn_frontdoor_domain_id = azurerm_cdn_frontdoor_custom_domain.domain1.id + cdn_frontdoor_domain_id = azurerm_cdn_frontdoor_custom_domain.example.id } patterns_to_match = ["/*"] } From 339d27e0132f78c59a0e9661ffe3de5504c88e5f Mon Sep 17 00:00:00 2001 From: magodo Date: Wed, 23 Aug 2023 23:08:16 +0800 Subject: [PATCH 010/336] `azurerm_container_group` - Support `sku` and `(init_)container.*.security` (#23034) --- .../containers/container_group_resource.go | 76 ++++++++++++++++++- .../container_group_resource_test.go | 58 ++++++++++++++ website/docs/r/container_group.html.markdown | 14 ++++ 3 files changed, 147 insertions(+), 1 deletion(-) diff --git a/internal/services/containers/container_group_resource.go b/internal/services/containers/container_group_resource.go index e6e60fd2e7c7..d3b2fcb8aed9 100644 --- a/internal/services/containers/container_group_resource.go +++ b/internal/services/containers/container_group_resource.go @@ -149,6 +149,14 @@ func resourceContainerGroup() *pluginsdk.Resource { "tags": commonschema.Tags(), + "sku": { + Type: pluginsdk.TypeString, + Optional: true, + ForceNew: true, + Default: string(containerinstance.ContainerGroupSkuStandard), + ValidateFunc: validation.StringInSlice(containerinstance.PossibleValuesForContainerGroupSku(), false), + }, + "restart_policy": { Type: pluginsdk.TypeString, Optional: true, @@ -261,6 +269,8 @@ func resourceContainerGroup() *pluginsdk.Resource { }, "volume": containerVolumeSchema(), + + "security": containerSecurityContextSchema(), }, }, }, @@ -427,6 +437,8 @@ func resourceContainerGroup() *pluginsdk.Resource { "volume": containerVolumeSchema(), + "security": containerSecurityContextSchema(), + "liveness_probe": SchemaContainerGroupProbe(), "readiness_probe": SchemaContainerGroupProbe(), @@ -644,6 +656,23 @@ func containerVolumeSchema() *pluginsdk.Schema { } } +func containerSecurityContextSchema() *pluginsdk.Schema { + return &pluginsdk.Schema{ + Type: pluginsdk.TypeList, + Optional: true, + ForceNew: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "privilege_enabled": { + Type: pluginsdk.TypeBool, + ForceNew: true, + Required: true, + }, + }, + }, + } +} + func resourceContainerGroupCreate(d *pluginsdk.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Containers.ContainerInstanceClient subscriptionId := meta.(*clients.Client).Account.SubscriptionId @@ -700,6 +729,7 @@ func resourceContainerGroupCreate(d *pluginsdk.ResourceData, meta interface{}) e Location: &location, Tags: tags.Expand(d.Get("tags").(map[string]interface{})), Properties: containerinstance.ContainerGroupPropertiesProperties{ + Sku: pointer.To(containerinstance.ContainerGroupSku(d.Get("sku").(string))), InitContainers: initContainers, Containers: containers, Diagnostics: diagnostics, @@ -833,6 +863,13 @@ func resourceContainerGroupRead(d *pluginsdk.ResourceData, meta interface{}) err d.Set("zones", zones.FlattenUntyped(model.Zones)) props := model.Properties + + var sku string + if v := props.Sku; v != nil { + sku = string(*v) + } + d.Set("sku", sku) + containerConfigs := flattenContainerGroupContainers(d, &props.Containers, props.Volumes) if err := d.Set("container", containerConfigs); err != nil { return fmt.Errorf("setting `container`: %+v", err) @@ -995,7 +1032,8 @@ func expandContainerGroupInitContainers(d *pluginsdk.ResourceData, addedEmptyDir container := containerinstance.InitContainerDefinition{ Name: name, Properties: containerinstance.InitContainerPropertiesDefinition{ - Image: pointer.FromString(image), + Image: pointer.FromString(image), + SecurityContext: expandContainerSecurityContext(data["security"].([]interface{})), }, } @@ -1049,6 +1087,37 @@ func expandContainerGroupInitContainers(d *pluginsdk.ResourceData, addedEmptyDir return &containers, containerGroupVolumes, nil } +func expandContainerSecurityContext(input []interface{}) *containerinstance.SecurityContextDefinition { + if len(input) == 0 || input[0] == nil { + return nil + } + + raw := input[0].(map[string]interface{}) + + output := &containerinstance.SecurityContextDefinition{ + Privileged: pointer.To(raw["privilege_enabled"].(bool)), + } + + return output +} + +func flattenContainerSecurityContext(input *containerinstance.SecurityContextDefinition) []interface{} { + if input == nil { + return []interface{}{} + } + + var privileged bool + if v := input.Privileged; v != nil { + privileged = *v + } + + return []interface{}{ + map[string]interface{}{ + "privilege_enabled": privileged, + }, + } +} + func expandContainerGroupContainers(d *pluginsdk.ResourceData, addedEmptyDirs map[string]bool) ([]containerinstance.Container, []containerinstance.Port, []containerinstance.Volume, error) { containersConfig := d.Get("container").([]interface{}) containers := make([]containerinstance.Container, 0) @@ -1074,6 +1143,7 @@ func expandContainerGroupContainers(d *pluginsdk.ResourceData, addedEmptyDirs ma Cpu: cpu, }, }, + SecurityContext: expandContainerSecurityContext(data["security"].([]interface{})), }, } @@ -1594,6 +1664,9 @@ func flattenContainerGroupInitContainers(d *pluginsdk.ResourceData, initContaine containersConfigRaw := d.Get("container").([]interface{}) flattenContainerVolume(containerConfig, containersConfigRaw, container.Name, container.Properties.VolumeMounts, containerGroupVolumes) } + + containerConfig["security"] = flattenContainerSecurityContext(container.Properties.SecurityContext) + containerCfg = append(containerCfg, containerConfig) } @@ -1680,6 +1753,7 @@ func flattenContainerGroupContainers(d *pluginsdk.ResourceData, containers *[]co containerConfig["liveness_probe"] = flattenContainerProbes(container.Properties.LivenessProbe) containerConfig["readiness_probe"] = flattenContainerProbes(container.Properties.ReadinessProbe) + containerConfig["security"] = flattenContainerSecurityContext(container.Properties.SecurityContext) containerCfg = append(containerCfg, containerConfig) } diff --git a/internal/services/containers/container_group_resource_test.go b/internal/services/containers/container_group_resource_test.go index 231091810f20..671a180f4fda 100644 --- a/internal/services/containers/container_group_resource_test.go +++ b/internal/services/containers/container_group_resource_test.go @@ -695,6 +695,28 @@ func TestAccContainerGroup_encryption(t *testing.T) { }) } +func TestAccContainerGroup_securityContext(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_container_group", "test") + r := ContainerGroupResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.securityContextPriviledged(data, false), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.securityContextPriviledged(data, true), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func (ContainerGroupResource) SystemAssignedIdentity(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { @@ -2466,3 +2488,39 @@ resource "azurerm_container_group" "test" { } `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } + +func (ContainerGroupResource) securityContextPriviledged(data acceptance.TestData, v bool) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[1]d" + location = "%[2]s" +} + +resource "azurerm_container_group" "test" { + name = "acctestcontainergroup-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + ip_address_type = "Public" + os_type = "Linux" + sku = "Confidential" + + container { + name = "hw" + image = "ubuntu:20.04" + cpu = "0.5" + memory = "0.5" + ports { + port = 80 + protocol = "TCP" + } + security { + privilege_enabled = %[3]t + } + } +} +`, data.RandomInteger, data.Locations.Primary, v) +} diff --git a/website/docs/r/container_group.html.markdown b/website/docs/r/container_group.html.markdown index 3646b65e1bd3..db1d29cc7841 100644 --- a/website/docs/r/container_group.html.markdown +++ b/website/docs/r/container_group.html.markdown @@ -65,6 +65,8 @@ The following arguments are supported: * `location` - (Required) Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. +* `sku` - (Optional) Specifies the sku of the Container Group. Possible values are `Confidential`, `Dedicated` and `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created. + * `identity` - (Optional) An `identity` block as defined below. * `init_container` - (Optional) The definition of an init container that is part of the group as documented in the `init_container` block below. Changing this forces a new resource to be created. @@ -137,6 +139,8 @@ An `init_container` block supports: * `volume` - (Optional) The definition of a volume mount for this container as documented in the `volume` block below. Changing this forces a new resource to be created. +* `security` - (Optional) The definition of the security context for this container as documented in the `security` block below. Changing this forces a new resource to be created. + --- A `container` block supports: @@ -173,6 +177,8 @@ A `container` block supports: * `volume` - (Optional) The definition of a volume mount for this container as documented in the `volume` block below. Changing this forces a new resource to be created. +* `security` - (Optional) The definition of the security context for this container as documented in the `security` block below. Changing this forces a new resource to be created. + --- An `exposed_port` block supports: @@ -335,6 +341,14 @@ The `dns_config` block supports: * `options` - (Optional) A list of [resolver configuration options](https://man7.org/linux/man-pages/man5/resolv.conf.5.html). Changing this forces a new resource to be created. +--- + +The `security` block supports: + +* `privilege_enabled` - (Required) Whether the container's permission is elevated to privileged? Changing this forces a new resource to be created. + +~> **NOTE:** Currently, this only applies when the `os_type` is `Linux` and the `sku` is `Confidential`. + ## Attributes Reference In addition to the Arguments listed above - the following Attributes are exported: From e9a76a8f20687301b35ace10556d87c99eb10fbb Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Wed, 23 Aug 2023 08:08:44 -0700 Subject: [PATCH 011/336] Update CHANGELOG.md for #23034 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fed9c730716d..eae3f64b8d33 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ENHANCEMENTS: * `automation`: upgrade remaining resources to `2022-08-08` [GH-22989] * `azurerm_storage_management_policy` - move to `hashicorp/go-azure-sdk` [GH-23035] * Data Source: `azurerm_disk_encryption_set` - add support for the `identity` block [GH-23005] +* `azurerm_container_group` - Support `sku` and `(init_)container.*.security` [GH-23034] * `azurerm_linux_virtual_machine_scale_set` - cancel rolling upgrades that are in progress before destroying the resource [GH-22991] * `azurerm_windows_virtual_machine_scale_set` - cancel rolling upgrades that are in progress before destroying the resource [GH-22991] * `azurerm_synapse_spark_pool` - support addtional values for the `node_size_family` property [GH-23040] From c3d28bd312c23bda5fdca9462f7676b3ebf030e8 Mon Sep 17 00:00:00 2001 From: magodo Date: Wed, 23 Aug 2023 23:51:07 +0800 Subject: [PATCH 012/336] Doc Fix: `azurerm_storage_share` update `quota` section to mention the standard SA can set quota larger than 5TB (#23033) --- website/docs/r/storage_share.html.markdown | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/website/docs/r/storage_share.html.markdown b/website/docs/r/storage_share.html.markdown index 1a337601cf37..b68886fbbf15 100644 --- a/website/docs/r/storage_share.html.markdown +++ b/website/docs/r/storage_share.html.markdown @@ -63,7 +63,11 @@ The following arguments are supported: ~>**NOTE:** The `Premium` SKU of the `azurerm_storage_account` is required for the `NFS` protocol. -* `quota` - (Required) The maximum size of the share, in gigabytes. For Standard storage accounts, this must be `1`GB (or higher) and at most `5120` GB (`5` TB). For Premium FileStorage storage accounts, this must be greater than 100 GB and at most `102400` GB (`100` TB). +* `quota` - (Required) The maximum size of the share, in gigabytes. + +~>**NOTE:** For Standard storage accounts, by default this must be `1` GB (or higher) and at most `5120` GB (`5` TB). This can be set to a value larger than `5120` GB if `large_file_share_enabled` is set to `true` in the parent `azurerm_storage_account`. + +~>**NOTE:** For Premium FileStorage storage accounts, this must be greater than `100` GB and at most `102400` GB (`100` TB). * `metadata` - (Optional) A mapping of MetaData for this File Share. From 0f52e426a94bdcd4f4b7943f8790c833d465cb48 Mon Sep 17 00:00:00 2001 From: stephybun Date: Wed, 23 Aug 2023 18:16:10 +0200 Subject: [PATCH 013/336] tooling: update generated labeller template with a pattern match for state migrations (#23052) * update generated labeller template with a pattern match for state migrations * restore missing terminator * make generate --------- Co-authored-by: jackofallops --- .github/labeler-pull-request-triage.yml | 2 ++ internal/tools/generator-services/main.go | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/labeler-pull-request-triage.yml b/.github/labeler-pull-request-triage.yml index d02368e107e6..70376d840c31 100644 --- a/.github/labeler-pull-request-triage.yml +++ b/.github/labeler-pull-request-triage.yml @@ -7,6 +7,8 @@ documentation: - website/**/* tooling: - internal/tools/**/* +state-migration: + - internal/services/**/migration/**/* service/aadb2c: - internal/services/aadb2c/**/* diff --git a/internal/tools/generator-services/main.go b/internal/tools/generator-services/main.go index 95f1ab3da020..9ba7f59ee75c 100644 --- a/internal/tools/generator-services/main.go +++ b/internal/tools/generator-services/main.go @@ -66,6 +66,8 @@ documentation: - website/**/* tooling: - internal/tools/**/* +state-migration: + - internal/services/**/migration/**/* ` type githubLabelsGenerator struct{} From a5565334610ce35f4bf1a05ac79c5714f6676214 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Thu, 24 Aug 2023 02:48:21 +0200 Subject: [PATCH 014/336] nit: updating `automation` references for API Version `2021-06-22` to use `2022-08-08` --- .../automation_software_update_configuration_resource.go | 2 +- .../loganalytics/log_analytics_linked_service_resource.go | 2 +- internal/services/monitor/monitor_action_group_resource.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/services/automation/automation_software_update_configuration_resource.go b/internal/services/automation/automation_software_update_configuration_resource.go index 0bd1918cb8ea..2806e2f8130e 100644 --- a/internal/services/automation/automation_software_update_configuration_resource.go +++ b/internal/services/automation/automation_software_update_configuration_resource.go @@ -13,7 +13,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration" - "github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount" + "github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/automationaccount" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" validate4 "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/features" diff --git a/internal/services/loganalytics/log_analytics_linked_service_resource.go b/internal/services/loganalytics/log_analytics_linked_service_resource.go index 37749e1b870d..f4d9e9ded951 100644 --- a/internal/services/loganalytics/log_analytics_linked_service_resource.go +++ b/internal/services/loganalytics/log_analytics_linked_service_resource.go @@ -11,7 +11,7 @@ import ( "time" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount" + "github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/automationaccount" "github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters" "github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" diff --git a/internal/services/monitor/monitor_action_group_resource.go b/internal/services/monitor/monitor_action_group_resource.go index 432980bf9c8e..35666bbc4643 100644 --- a/internal/services/monitor/monitor_action_group_resource.go +++ b/internal/services/monitor/monitor_action_group_resource.go @@ -11,7 +11,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" - "github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount" + "github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/automationaccount" "github.com/hashicorp/go-azure-sdk/resource-manager/eventhub/2021-11-01/eventhubs" "github.com/hashicorp/go-azure-sdk/resource-manager/insights/2023-01-01/actiongroupsapis" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" From 4ee939b35e6b494584dbe453e347aee51046926a Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Thu, 24 Aug 2023 02:48:57 +0200 Subject: [PATCH 015/336] go mod vendor --- .../2021-06-22/automationaccount/README.md | 128 ------------ .../2021-06-22/automationaccount/client.go | 18 -- .../2021-06-22/automationaccount/constants.go | 93 --------- .../automationaccount/id_automationaccount.go | 127 ------------ .../method_createorupdate_autorest.go | 69 ------- .../method_delete_autorest.go | 66 ------- .../automationaccount/method_get_autorest.go | 68 ------- .../automationaccount/method_list_autorest.go | 187 ------------------ .../method_listbyresourcegroup_autorest.go | 187 ------------------ .../method_update_autorest.go | 69 ------- .../model_automationaccount.go | 21 -- ...tomationaccountcreateorupdateparameters.go | 16 -- ...tomationaccountcreateorupdateproperties.go | 11 -- .../model_automationaccountproperties.go | 48 ----- ...model_automationaccountupdateparameters.go | 16 -- ...model_automationaccountupdateproperties.go | 11 -- .../model_encryptionproperties.go | 10 - .../model_encryptionpropertiesidentity.go | 8 - .../model_keyvaultproperties.go | 10 - .../model_privateendpointconnection.go | 11 -- ...del_privateendpointconnectionproperties.go | 10 - .../model_privateendpointproperty.go | 8 - ...ivatelinkserviceconnectionstateproperty.go | 10 - .../2021-06-22/automationaccount/model_sku.go | 10 - .../automationaccount/predicates.go | 37 ---- .../2021-06-22/automationaccount/version.go | 12 -- vendor/modules.txt | 1 - 27 files changed, 1262 deletions(-) delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/README.md delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/client.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/constants.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/id_automationaccount.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_createorupdate_autorest.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_delete_autorest.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_get_autorest.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_list_autorest.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_listbyresourcegroup_autorest.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_update_autorest.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccount.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountcreateorupdateparameters.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountcreateorupdateproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountupdateparameters.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountupdateproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_encryptionproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_encryptionpropertiesidentity.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_keyvaultproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privateendpointconnection.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privateendpointconnectionproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privateendpointproperty.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privatelinkserviceconnectionstateproperty.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_sku.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/predicates.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/version.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/README.md deleted file mode 100644 index f0e30e273d51..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/README.md +++ /dev/null @@ -1,128 +0,0 @@ - -## `github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount` Documentation - -The `automationaccount` SDK allows for interaction with the Azure Resource Manager Service `automation` (API Version `2021-06-22`). - -This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). - -### Import Path - -```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount" -``` - - -### Client Initialization - -```go -client := automationaccount.NewAutomationAccountClientWithBaseURI("https://management.azure.com") -client.Client.Authorizer = authorizer -``` - - -### Example Usage: `AutomationAccountClient.CreateOrUpdate` - -```go -ctx := context.TODO() -id := automationaccount.NewAutomationAccountID("12345678-1234-9876-4563-123456789012", "example-resource-group", "automationAccountValue") - -payload := automationaccount.AutomationAccountCreateOrUpdateParameters{ - // ... -} - - -read, err := client.CreateOrUpdate(ctx, id, payload) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` - - -### Example Usage: `AutomationAccountClient.Delete` - -```go -ctx := context.TODO() -id := automationaccount.NewAutomationAccountID("12345678-1234-9876-4563-123456789012", "example-resource-group", "automationAccountValue") - -read, err := client.Delete(ctx, id) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` - - -### Example Usage: `AutomationAccountClient.Get` - -```go -ctx := context.TODO() -id := automationaccount.NewAutomationAccountID("12345678-1234-9876-4563-123456789012", "example-resource-group", "automationAccountValue") - -read, err := client.Get(ctx, id) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` - - -### Example Usage: `AutomationAccountClient.List` - -```go -ctx := context.TODO() -id := automationaccount.NewSubscriptionID("12345678-1234-9876-4563-123456789012") - -// alternatively `client.List(ctx, id)` can be used to do batched pagination -items, err := client.ListComplete(ctx, id) -if err != nil { - // handle the error -} -for _, item := range items { - // do something -} -``` - - -### Example Usage: `AutomationAccountClient.ListByResourceGroup` - -```go -ctx := context.TODO() -id := automationaccount.NewResourceGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group") - -// alternatively `client.ListByResourceGroup(ctx, id)` can be used to do batched pagination -items, err := client.ListByResourceGroupComplete(ctx, id) -if err != nil { - // handle the error -} -for _, item := range items { - // do something -} -``` - - -### Example Usage: `AutomationAccountClient.Update` - -```go -ctx := context.TODO() -id := automationaccount.NewAutomationAccountID("12345678-1234-9876-4563-123456789012", "example-resource-group", "automationAccountValue") - -payload := automationaccount.AutomationAccountUpdateParameters{ - // ... -} - - -read, err := client.Update(ctx, id, payload) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/client.go deleted file mode 100644 index e5abe278fa4b..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/client.go +++ /dev/null @@ -1,18 +0,0 @@ -package automationaccount - -import "github.com/Azure/go-autorest/autorest" - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AutomationAccountClient struct { - Client autorest.Client - baseUri string -} - -func NewAutomationAccountClientWithBaseURI(endpoint string) AutomationAccountClient { - return AutomationAccountClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, - } -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/constants.go deleted file mode 100644 index 720d1402880b..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/constants.go +++ /dev/null @@ -1,93 +0,0 @@ -package automationaccount - -import "strings" - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AutomationAccountState string - -const ( - AutomationAccountStateOk AutomationAccountState = "Ok" - AutomationAccountStateSuspended AutomationAccountState = "Suspended" - AutomationAccountStateUnavailable AutomationAccountState = "Unavailable" -) - -func PossibleValuesForAutomationAccountState() []string { - return []string{ - string(AutomationAccountStateOk), - string(AutomationAccountStateSuspended), - string(AutomationAccountStateUnavailable), - } -} - -func parseAutomationAccountState(input string) (*AutomationAccountState, error) { - vals := map[string]AutomationAccountState{ - "ok": AutomationAccountStateOk, - "suspended": AutomationAccountStateSuspended, - "unavailable": AutomationAccountStateUnavailable, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := AutomationAccountState(input) - return &out, nil -} - -type EncryptionKeySourceType string - -const ( - EncryptionKeySourceTypeMicrosoftPointAutomation EncryptionKeySourceType = "Microsoft.Automation" - EncryptionKeySourceTypeMicrosoftPointKeyvault EncryptionKeySourceType = "Microsoft.Keyvault" -) - -func PossibleValuesForEncryptionKeySourceType() []string { - return []string{ - string(EncryptionKeySourceTypeMicrosoftPointAutomation), - string(EncryptionKeySourceTypeMicrosoftPointKeyvault), - } -} - -func parseEncryptionKeySourceType(input string) (*EncryptionKeySourceType, error) { - vals := map[string]EncryptionKeySourceType{ - "microsoft.automation": EncryptionKeySourceTypeMicrosoftPointAutomation, - "microsoft.keyvault": EncryptionKeySourceTypeMicrosoftPointKeyvault, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := EncryptionKeySourceType(input) - return &out, nil -} - -type SkuNameEnum string - -const ( - SkuNameEnumBasic SkuNameEnum = "Basic" - SkuNameEnumFree SkuNameEnum = "Free" -) - -func PossibleValuesForSkuNameEnum() []string { - return []string{ - string(SkuNameEnumBasic), - string(SkuNameEnumFree), - } -} - -func parseSkuNameEnum(input string) (*SkuNameEnum, error) { - vals := map[string]SkuNameEnum{ - "basic": SkuNameEnumBasic, - "free": SkuNameEnumFree, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := SkuNameEnum(input) - return &out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/id_automationaccount.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/id_automationaccount.go deleted file mode 100644 index 507f59b0248c..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/id_automationaccount.go +++ /dev/null @@ -1,127 +0,0 @@ -package automationaccount - -import ( - "fmt" - "strings" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -var _ resourceids.ResourceId = AutomationAccountId{} - -// AutomationAccountId is a struct representing the Resource ID for a Automation Account -type AutomationAccountId struct { - SubscriptionId string - ResourceGroupName string - AutomationAccountName string -} - -// NewAutomationAccountID returns a new AutomationAccountId struct -func NewAutomationAccountID(subscriptionId string, resourceGroupName string, automationAccountName string) AutomationAccountId { - return AutomationAccountId{ - SubscriptionId: subscriptionId, - ResourceGroupName: resourceGroupName, - AutomationAccountName: automationAccountName, - } -} - -// ParseAutomationAccountID parses 'input' into a AutomationAccountId -func ParseAutomationAccountID(input string) (*AutomationAccountId, error) { - parser := resourceids.NewParserFromResourceIdType(AutomationAccountId{}) - parsed, err := parser.Parse(input, false) - if err != nil { - return nil, fmt.Errorf("parsing %q: %+v", input, err) - } - - var ok bool - id := AutomationAccountId{} - - if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) - } - - if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) - } - - if id.AutomationAccountName, ok = parsed.Parsed["automationAccountName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "automationAccountName", *parsed) - } - - return &id, nil -} - -// ParseAutomationAccountIDInsensitively parses 'input' case-insensitively into a AutomationAccountId -// note: this method should only be used for API response data and not user input -func ParseAutomationAccountIDInsensitively(input string) (*AutomationAccountId, error) { - parser := resourceids.NewParserFromResourceIdType(AutomationAccountId{}) - parsed, err := parser.Parse(input, true) - if err != nil { - return nil, fmt.Errorf("parsing %q: %+v", input, err) - } - - var ok bool - id := AutomationAccountId{} - - if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) - } - - if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) - } - - if id.AutomationAccountName, ok = parsed.Parsed["automationAccountName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "automationAccountName", *parsed) - } - - return &id, nil -} - -// ValidateAutomationAccountID checks that 'input' can be parsed as a Automation Account ID -func ValidateAutomationAccountID(input interface{}, key string) (warnings []string, errors []error) { - v, ok := input.(string) - if !ok { - errors = append(errors, fmt.Errorf("expected %q to be a string", key)) - return - } - - if _, err := ParseAutomationAccountID(v); err != nil { - errors = append(errors, err) - } - - return -} - -// ID returns the formatted Automation Account ID -func (id AutomationAccountId) ID() string { - fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Automation/automationAccounts/%s" - return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.AutomationAccountName) -} - -// Segments returns a slice of Resource ID Segments which comprise this Automation Account ID -func (id AutomationAccountId) Segments() []resourceids.Segment { - return []resourceids.Segment{ - resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), - resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), - resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), - resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), - resourceids.StaticSegment("staticProviders", "providers", "providers"), - resourceids.ResourceProviderSegment("staticMicrosoftAutomation", "Microsoft.Automation", "Microsoft.Automation"), - resourceids.StaticSegment("staticAutomationAccounts", "automationAccounts", "automationAccounts"), - resourceids.UserSpecifiedSegment("automationAccountName", "automationAccountValue"), - } -} - -// String returns a human-readable description of this Automation Account ID -func (id AutomationAccountId) String() string { - components := []string{ - fmt.Sprintf("Subscription: %q", id.SubscriptionId), - fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), - fmt.Sprintf("Automation Account Name: %q", id.AutomationAccountName), - } - return fmt.Sprintf("Automation Account (%s)", strings.Join(components, "\n")) -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_createorupdate_autorest.go deleted file mode 100644 index 9ca9eedcf4e9..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_createorupdate_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package automationaccount - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - HttpResponse *http.Response - Model *AutomationAccount -} - -// CreateOrUpdate ... -func (c AutomationAccountClient) CreateOrUpdate(ctx context.Context, id AutomationAccountId, input AutomationAccountCreateOrUpdateParameters) (result CreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "CreateOrUpdate", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "CreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForCreateOrUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "CreateOrUpdate", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForCreateOrUpdate prepares the CreateOrUpdate request. -func (c AutomationAccountClient) preparerForCreateOrUpdate(ctx context.Context, id AutomationAccountId, input AutomationAccountCreateOrUpdateParameters) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForCreateOrUpdate handles the response to the CreateOrUpdate request. The method always -// closes the http.Response Body. -func (c AutomationAccountClient) responderForCreateOrUpdate(resp *http.Response) (result CreateOrUpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusCreated, http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_delete_autorest.go deleted file mode 100644 index 04aa852b82e5..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_delete_autorest.go +++ /dev/null @@ -1,66 +0,0 @@ -package automationaccount - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - HttpResponse *http.Response -} - -// Delete ... -func (c AutomationAccountClient) Delete(ctx context.Context, id AutomationAccountId) (result DeleteOperationResponse, err error) { - req, err := c.preparerForDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "Delete", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "Delete", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForDelete(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "Delete", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForDelete prepares the Delete request. -func (c AutomationAccountClient) preparerForDelete(ctx context.Context, id AutomationAccountId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForDelete handles the response to the Delete request. The method always -// closes the http.Response Body. -func (c AutomationAccountClient) responderForDelete(resp *http.Response) (result DeleteOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_get_autorest.go deleted file mode 100644 index 4c582e8f9f16..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_get_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package automationaccount - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - Model *AutomationAccount -} - -// Get ... -func (c AutomationAccountClient) Get(ctx context.Context, id AutomationAccountId) (result GetOperationResponse, err error) { - req, err := c.preparerForGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "Get", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "Get", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "Get", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGet prepares the Get request. -func (c AutomationAccountClient) preparerForGet(ctx context.Context, id AutomationAccountId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGet handles the response to the Get request. The method always -// closes the http.Response Body. -func (c AutomationAccountClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_list_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_list_autorest.go deleted file mode 100644 index eeee92f3aeaf..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_list_autorest.go +++ /dev/null @@ -1,187 +0,0 @@ -package automationaccount - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListOperationResponse struct { - HttpResponse *http.Response - Model *[]AutomationAccount - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (ListOperationResponse, error) -} - -type ListCompleteResult struct { - Items []AutomationAccount -} - -func (r ListOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r ListOperationResponse) LoadMore(ctx context.Context) (resp ListOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// List ... -func (c AutomationAccountClient) List(ctx context.Context, id commonids.SubscriptionId) (resp ListOperationResponse, err error) { - req, err := c.preparerForList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "List", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "List", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForList(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "List", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForList prepares the List request. -func (c AutomationAccountClient) preparerForList(ctx context.Context, id commonids.SubscriptionId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.Automation/automationAccounts", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForListWithNextLink prepares the List request with the given nextLink token. -func (c AutomationAccountClient) preparerForListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForList handles the response to the List request. The method always -// closes the http.Response Body. -func (c AutomationAccountClient) responderForList(resp *http.Response) (result ListOperationResponse, err error) { - type page struct { - Values []AutomationAccount `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result ListOperationResponse, err error) { - req, err := c.preparerForListWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "List", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "List", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "List", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// ListComplete retrieves all of the results into a single object -func (c AutomationAccountClient) ListComplete(ctx context.Context, id commonids.SubscriptionId) (ListCompleteResult, error) { - return c.ListCompleteMatchingPredicate(ctx, id, AutomationAccountOperationPredicate{}) -} - -// ListCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c AutomationAccountClient) ListCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate AutomationAccountOperationPredicate) (resp ListCompleteResult, err error) { - items := make([]AutomationAccount, 0) - - page, err := c.List(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := ListCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_listbyresourcegroup_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_listbyresourcegroup_autorest.go deleted file mode 100644 index 9b7d0e540053..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_listbyresourcegroup_autorest.go +++ /dev/null @@ -1,187 +0,0 @@ -package automationaccount - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByResourceGroupOperationResponse struct { - HttpResponse *http.Response - Model *[]AutomationAccount - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (ListByResourceGroupOperationResponse, error) -} - -type ListByResourceGroupCompleteResult struct { - Items []AutomationAccount -} - -func (r ListByResourceGroupOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r ListByResourceGroupOperationResponse) LoadMore(ctx context.Context) (resp ListByResourceGroupOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// ListByResourceGroup ... -func (c AutomationAccountClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (resp ListByResourceGroupOperationResponse, err error) { - req, err := c.preparerForListByResourceGroup(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "ListByResourceGroup", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "ListByResourceGroup", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForListByResourceGroup(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "ListByResourceGroup", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForListByResourceGroup prepares the ListByResourceGroup request. -func (c AutomationAccountClient) preparerForListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.Automation/automationAccounts", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForListByResourceGroupWithNextLink prepares the ListByResourceGroup request with the given nextLink token. -func (c AutomationAccountClient) preparerForListByResourceGroupWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListByResourceGroup handles the response to the ListByResourceGroup request. The method always -// closes the http.Response Body. -func (c AutomationAccountClient) responderForListByResourceGroup(resp *http.Response) (result ListByResourceGroupOperationResponse, err error) { - type page struct { - Values []AutomationAccount `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result ListByResourceGroupOperationResponse, err error) { - req, err := c.preparerForListByResourceGroupWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "ListByResourceGroup", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "ListByResourceGroup", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListByResourceGroup(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "ListByResourceGroup", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// ListByResourceGroupComplete retrieves all of the results into a single object -func (c AutomationAccountClient) ListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (ListByResourceGroupCompleteResult, error) { - return c.ListByResourceGroupCompleteMatchingPredicate(ctx, id, AutomationAccountOperationPredicate{}) -} - -// ListByResourceGroupCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c AutomationAccountClient) ListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate AutomationAccountOperationPredicate) (resp ListByResourceGroupCompleteResult, err error) { - items := make([]AutomationAccount, 0) - - page, err := c.ListByResourceGroup(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := ListByResourceGroupCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_update_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_update_autorest.go deleted file mode 100644 index 166c133ee26e..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/method_update_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package automationaccount - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type UpdateOperationResponse struct { - HttpResponse *http.Response - Model *AutomationAccount -} - -// Update ... -func (c AutomationAccountClient) Update(ctx context.Context, id AutomationAccountId, input AutomationAccountUpdateParameters) (result UpdateOperationResponse, err error) { - req, err := c.preparerForUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "Update", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "Update", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "automationaccount.AutomationAccountClient", "Update", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForUpdate prepares the Update request. -func (c AutomationAccountClient) preparerForUpdate(ctx context.Context, id AutomationAccountId, input AutomationAccountUpdateParameters) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPatch(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForUpdate handles the response to the Update request. The method always -// closes the http.Response Body. -func (c AutomationAccountClient) responderForUpdate(resp *http.Response) (result UpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccount.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccount.go deleted file mode 100644 index b95604324bd6..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccount.go +++ /dev/null @@ -1,21 +0,0 @@ -package automationaccount - -import ( - "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" - "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AutomationAccount struct { - Etag *string `json:"etag,omitempty"` - Id *string `json:"id,omitempty"` - Identity *identity.SystemAndUserAssignedMap `json:"identity,omitempty"` - Location *string `json:"location,omitempty"` - Name *string `json:"name,omitempty"` - Properties *AutomationAccountProperties `json:"properties,omitempty"` - SystemData *systemdata.SystemData `json:"systemData,omitempty"` - Tags *map[string]string `json:"tags,omitempty"` - Type *string `json:"type,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountcreateorupdateparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountcreateorupdateparameters.go deleted file mode 100644 index 63cc08e2fc46..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountcreateorupdateparameters.go +++ /dev/null @@ -1,16 +0,0 @@ -package automationaccount - -import ( - "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AutomationAccountCreateOrUpdateParameters struct { - Identity *identity.SystemAndUserAssignedMap `json:"identity,omitempty"` - Location *string `json:"location,omitempty"` - Name *string `json:"name,omitempty"` - Properties *AutomationAccountCreateOrUpdateProperties `json:"properties,omitempty"` - Tags *map[string]string `json:"tags,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountcreateorupdateproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountcreateorupdateproperties.go deleted file mode 100644 index 9f0325c18efe..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountcreateorupdateproperties.go +++ /dev/null @@ -1,11 +0,0 @@ -package automationaccount - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AutomationAccountCreateOrUpdateProperties struct { - DisableLocalAuth *bool `json:"disableLocalAuth,omitempty"` - Encryption *EncryptionProperties `json:"encryption,omitempty"` - PublicNetworkAccess *bool `json:"publicNetworkAccess,omitempty"` - Sku *Sku `json:"sku,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountproperties.go deleted file mode 100644 index 4a52729a3411..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountproperties.go +++ /dev/null @@ -1,48 +0,0 @@ -package automationaccount - -import ( - "time" - - "github.com/hashicorp/go-azure-helpers/lang/dates" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AutomationAccountProperties struct { - AutomationHybridServiceUrl *string `json:"automationHybridServiceUrl,omitempty"` - CreationTime *string `json:"creationTime,omitempty"` - Description *string `json:"description,omitempty"` - DisableLocalAuth *bool `json:"disableLocalAuth,omitempty"` - Encryption *EncryptionProperties `json:"encryption,omitempty"` - LastModifiedBy *string `json:"lastModifiedBy,omitempty"` - LastModifiedTime *string `json:"lastModifiedTime,omitempty"` - PrivateEndpointConnections *[]PrivateEndpointConnection `json:"privateEndpointConnections,omitempty"` - PublicNetworkAccess *bool `json:"publicNetworkAccess,omitempty"` - Sku *Sku `json:"sku,omitempty"` - State *AutomationAccountState `json:"state,omitempty"` -} - -func (o *AutomationAccountProperties) GetCreationTimeAsTime() (*time.Time, error) { - if o.CreationTime == nil { - return nil, nil - } - return dates.ParseAsFormat(o.CreationTime, "2006-01-02T15:04:05Z07:00") -} - -func (o *AutomationAccountProperties) SetCreationTimeAsTime(input time.Time) { - formatted := input.Format("2006-01-02T15:04:05Z07:00") - o.CreationTime = &formatted -} - -func (o *AutomationAccountProperties) GetLastModifiedTimeAsTime() (*time.Time, error) { - if o.LastModifiedTime == nil { - return nil, nil - } - return dates.ParseAsFormat(o.LastModifiedTime, "2006-01-02T15:04:05Z07:00") -} - -func (o *AutomationAccountProperties) SetLastModifiedTimeAsTime(input time.Time) { - formatted := input.Format("2006-01-02T15:04:05Z07:00") - o.LastModifiedTime = &formatted -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountupdateparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountupdateparameters.go deleted file mode 100644 index 9855a40c4a12..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountupdateparameters.go +++ /dev/null @@ -1,16 +0,0 @@ -package automationaccount - -import ( - "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AutomationAccountUpdateParameters struct { - Identity *identity.SystemAndUserAssignedMap `json:"identity,omitempty"` - Location *string `json:"location,omitempty"` - Name *string `json:"name,omitempty"` - Properties *AutomationAccountUpdateProperties `json:"properties,omitempty"` - Tags *map[string]string `json:"tags,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountupdateproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountupdateproperties.go deleted file mode 100644 index 7a3970e64fd1..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_automationaccountupdateproperties.go +++ /dev/null @@ -1,11 +0,0 @@ -package automationaccount - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AutomationAccountUpdateProperties struct { - DisableLocalAuth *bool `json:"disableLocalAuth,omitempty"` - Encryption *EncryptionProperties `json:"encryption,omitempty"` - PublicNetworkAccess *bool `json:"publicNetworkAccess,omitempty"` - Sku *Sku `json:"sku,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_encryptionproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_encryptionproperties.go deleted file mode 100644 index b01f327857e9..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_encryptionproperties.go +++ /dev/null @@ -1,10 +0,0 @@ -package automationaccount - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type EncryptionProperties struct { - Identity *EncryptionPropertiesIdentity `json:"identity,omitempty"` - KeySource *EncryptionKeySourceType `json:"keySource,omitempty"` - KeyVaultProperties *KeyVaultProperties `json:"keyVaultProperties,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_encryptionpropertiesidentity.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_encryptionpropertiesidentity.go deleted file mode 100644 index f295cc93f97f..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_encryptionpropertiesidentity.go +++ /dev/null @@ -1,8 +0,0 @@ -package automationaccount - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type EncryptionPropertiesIdentity struct { - UserAssignedIdentity *interface{} `json:"userAssignedIdentity,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_keyvaultproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_keyvaultproperties.go deleted file mode 100644 index 26155817fab1..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_keyvaultproperties.go +++ /dev/null @@ -1,10 +0,0 @@ -package automationaccount - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type KeyVaultProperties struct { - KeyName *string `json:"keyName,omitempty"` - KeyVersion *string `json:"keyVersion,omitempty"` - KeyvaultUri *string `json:"keyvaultUri,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privateendpointconnection.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privateendpointconnection.go deleted file mode 100644 index 771c3d87b7ea..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privateendpointconnection.go +++ /dev/null @@ -1,11 +0,0 @@ -package automationaccount - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type PrivateEndpointConnection struct { - Id *string `json:"id,omitempty"` - Name *string `json:"name,omitempty"` - Properties *PrivateEndpointConnectionProperties `json:"properties,omitempty"` - Type *string `json:"type,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privateendpointconnectionproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privateendpointconnectionproperties.go deleted file mode 100644 index be495fc43e20..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privateendpointconnectionproperties.go +++ /dev/null @@ -1,10 +0,0 @@ -package automationaccount - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type PrivateEndpointConnectionProperties struct { - GroupIds *[]string `json:"groupIds,omitempty"` - PrivateEndpoint *PrivateEndpointProperty `json:"privateEndpoint,omitempty"` - PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionStateProperty `json:"privateLinkServiceConnectionState,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privateendpointproperty.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privateendpointproperty.go deleted file mode 100644 index 1a0f95543849..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privateendpointproperty.go +++ /dev/null @@ -1,8 +0,0 @@ -package automationaccount - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type PrivateEndpointProperty struct { - Id *string `json:"id,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privatelinkserviceconnectionstateproperty.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privatelinkserviceconnectionstateproperty.go deleted file mode 100644 index 7bdbb686816e..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_privatelinkserviceconnectionstateproperty.go +++ /dev/null @@ -1,10 +0,0 @@ -package automationaccount - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type PrivateLinkServiceConnectionStateProperty struct { - ActionsRequired *string `json:"actionsRequired,omitempty"` - Description *string `json:"description,omitempty"` - Status *string `json:"status,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_sku.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_sku.go deleted file mode 100644 index 0e4ac06e953e..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/model_sku.go +++ /dev/null @@ -1,10 +0,0 @@ -package automationaccount - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type Sku struct { - Capacity *int64 `json:"capacity,omitempty"` - Family *string `json:"family,omitempty"` - Name SkuNameEnum `json:"name"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/predicates.go deleted file mode 100644 index 0e3e0289b539..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/predicates.go +++ /dev/null @@ -1,37 +0,0 @@ -package automationaccount - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AutomationAccountOperationPredicate struct { - Etag *string - Id *string - Location *string - Name *string - Type *string -} - -func (p AutomationAccountOperationPredicate) Matches(input AutomationAccount) bool { - - if p.Etag != nil && (input.Etag == nil || *p.Etag != *input.Etag) { - return false - } - - if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { - return false - } - - if p.Location != nil && (input.Location == nil || *p.Location != *input.Location) { - return false - } - - if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { - return false - } - - if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { - return false - } - - return true -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/version.go deleted file mode 100644 index dc533843b897..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount/version.go +++ /dev/null @@ -1,12 +0,0 @@ -package automationaccount - -import "fmt" - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -const defaultApiVersion = "2021-06-22" - -func userAgent() string { - return fmt.Sprintf("hashicorp/go-azure-sdk/automationaccount/%s", defaultApiVersion) -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 4c2b36ed1a18..b73bd4c31943 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -200,7 +200,6 @@ github.com/hashicorp/go-azure-sdk/resource-manager/authorization/2022-04-01/role github.com/hashicorp/go-azure-sdk/resource-manager/automation/2015-10-31/webhook github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration github.com/hashicorp/go-azure-sdk/resource-manager/automation/2020-01-13-preview/watcher -github.com/hashicorp/go-azure-sdk/resource-manager/automation/2021-06-22/automationaccount github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08 github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/activity github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/automationaccount From 36c726d3e9aa9ebcf7a1e9c88846338d2b7e3c5f Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Thu, 24 Aug 2023 02:52:21 +0200 Subject: [PATCH 016/336] paloalto: fixing the reference to the `network` package using the old api version --- internal/services/paloalto/schema/network_profile.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/services/paloalto/schema/network_profile.go b/internal/services/paloalto/schema/network_profile.go index 99812db1ad18..3ddebc8a8219 100644 --- a/internal/services/paloalto/schema/network_profile.go +++ b/internal/services/paloalto/schema/network_profile.go @@ -2,7 +2,7 @@ package schema import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" - "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/networkvirtualappliances" "github.com/hashicorp/go-azure-sdk/resource-manager/paloaltonetworks/2022-08-29/firewalls" networkValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" From acd4712557d64e75633944374aeb3cb6dcfeaf20 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Thu, 24 Aug 2023 02:52:55 +0200 Subject: [PATCH 017/336] go mod tidy / go mod vendor --- .../networkvirtualappliances/README.md | 137 ----------------- .../networkvirtualappliances/client.go | 26 ---- .../networkvirtualappliances/constants.go | 98 ------------ .../id_inboundsecurityrule.go | 140 ------------------ .../id_networkvirtualappliance.go | 127 ---------------- .../method_createorupdate.go | 74 --------- .../networkvirtualappliances/method_delete.go | 71 --------- .../networkvirtualappliances/method_get.go | 80 ---------- ...ethod_inboundsecurityrulecreateorupdate.go | 74 --------- .../networkvirtualappliances/method_list.go | 90 ----------- .../method_listbyresourcegroup.go | 90 ----------- .../method_updatetags.go | 55 ------- .../model_delegationproperties.go | 9 -- .../model_inboundsecurityrule.go | 12 -- .../model_inboundsecurityruleproperties.go | 9 -- .../model_inboundsecurityrules.go | 10 -- .../model_networkvirtualappliance.go | 19 --- ...networkvirtualappliancepropertiesformat.go | 24 --- .../model_partnermanagedresourceproperties.go | 10 -- .../model_subresource.go | 8 - .../model_tagsobject.go | 8 - ...virtualapplianceadditionalnicproperties.go | 9 -- .../model_virtualappliancenicproperties.go | 11 -- .../model_virtualapplianceskuproperties.go | 10 -- .../networkvirtualappliances/predicates.go | 37 ----- .../networkvirtualappliances/version.go | 12 -- vendor/modules.txt | 1 - 27 files changed, 1251 deletions(-) delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/README.md delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/client.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/constants.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/id_inboundsecurityrule.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/id_networkvirtualappliance.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_inboundsecurityrulecreateorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_list.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_listbyresourcegroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_updatetags.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_delegationproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_inboundsecurityrule.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_inboundsecurityruleproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_inboundsecurityrules.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_networkvirtualappliance.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_networkvirtualappliancepropertiesformat.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_partnermanagedresourceproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_subresource.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_tagsobject.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_virtualapplianceadditionalnicproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_virtualappliancenicproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_virtualapplianceskuproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/predicates.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/version.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/README.md deleted file mode 100644 index a124c5ff8e76..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/README.md +++ /dev/null @@ -1,137 +0,0 @@ - -## `github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances` Documentation - -The `networkvirtualappliances` SDK allows for interaction with the Azure Resource Manager Service `network` (API Version `2023-02-01`). - -This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). - -### Import Path - -```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances" -``` - - -### Client Initialization - -```go -client := networkvirtualappliances.NewNetworkVirtualAppliancesClientWithBaseURI("https://management.azure.com") -client.Client.Authorizer = authorizer -``` - - -### Example Usage: `NetworkVirtualAppliancesClient.CreateOrUpdate` - -```go -ctx := context.TODO() -id := networkvirtualappliances.NewNetworkVirtualApplianceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "networkVirtualApplianceValue") - -payload := networkvirtualappliances.NetworkVirtualAppliance{ - // ... -} - - -if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil { - // handle the error -} -``` - - -### Example Usage: `NetworkVirtualAppliancesClient.Delete` - -```go -ctx := context.TODO() -id := networkvirtualappliances.NewNetworkVirtualApplianceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "networkVirtualApplianceValue") - -if err := client.DeleteThenPoll(ctx, id); err != nil { - // handle the error -} -``` - - -### Example Usage: `NetworkVirtualAppliancesClient.Get` - -```go -ctx := context.TODO() -id := networkvirtualappliances.NewNetworkVirtualApplianceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "networkVirtualApplianceValue") - -read, err := client.Get(ctx, id, networkvirtualappliances.DefaultGetOperationOptions()) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` - - -### Example Usage: `NetworkVirtualAppliancesClient.InboundSecurityRuleCreateOrUpdate` - -```go -ctx := context.TODO() -id := networkvirtualappliances.NewInboundSecurityRuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "networkVirtualApplianceValue", "inboundSecurityRuleValue") - -payload := networkvirtualappliances.InboundSecurityRule{ - // ... -} - - -if err := client.InboundSecurityRuleCreateOrUpdateThenPoll(ctx, id, payload); err != nil { - // handle the error -} -``` - - -### Example Usage: `NetworkVirtualAppliancesClient.List` - -```go -ctx := context.TODO() -id := networkvirtualappliances.NewSubscriptionID("12345678-1234-9876-4563-123456789012") - -// alternatively `client.List(ctx, id)` can be used to do batched pagination -items, err := client.ListComplete(ctx, id) -if err != nil { - // handle the error -} -for _, item := range items { - // do something -} -``` - - -### Example Usage: `NetworkVirtualAppliancesClient.ListByResourceGroup` - -```go -ctx := context.TODO() -id := networkvirtualappliances.NewResourceGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group") - -// alternatively `client.ListByResourceGroup(ctx, id)` can be used to do batched pagination -items, err := client.ListByResourceGroupComplete(ctx, id) -if err != nil { - // handle the error -} -for _, item := range items { - // do something -} -``` - - -### Example Usage: `NetworkVirtualAppliancesClient.UpdateTags` - -```go -ctx := context.TODO() -id := networkvirtualappliances.NewNetworkVirtualApplianceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "networkVirtualApplianceValue") - -payload := networkvirtualappliances.TagsObject{ - // ... -} - - -read, err := client.UpdateTags(ctx, id, payload) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/client.go deleted file mode 100644 index cfaeae574dec..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/client.go +++ /dev/null @@ -1,26 +0,0 @@ -package networkvirtualappliances - -import ( - "fmt" - - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type NetworkVirtualAppliancesClient struct { - Client *resourcemanager.Client -} - -func NewNetworkVirtualAppliancesClientWithBaseURI(sdkApi sdkEnv.Api) (*NetworkVirtualAppliancesClient, error) { - client, err := resourcemanager.NewResourceManagerClient(sdkApi, "networkvirtualappliances", defaultApiVersion) - if err != nil { - return nil, fmt.Errorf("instantiating NetworkVirtualAppliancesClient: %+v", err) - } - - return &NetworkVirtualAppliancesClient{ - Client: client, - }, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/constants.go deleted file mode 100644 index d744d8f8da2e..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/constants.go +++ /dev/null @@ -1,98 +0,0 @@ -package networkvirtualappliances - -import ( - "encoding/json" - "fmt" - "strings" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type InboundSecurityRulesProtocol string - -const ( - InboundSecurityRulesProtocolTCP InboundSecurityRulesProtocol = "TCP" - InboundSecurityRulesProtocolUDP InboundSecurityRulesProtocol = "UDP" -) - -func PossibleValuesForInboundSecurityRulesProtocol() []string { - return []string{ - string(InboundSecurityRulesProtocolTCP), - string(InboundSecurityRulesProtocolUDP), - } -} - -func (s *InboundSecurityRulesProtocol) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseInboundSecurityRulesProtocol(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseInboundSecurityRulesProtocol(input string) (*InboundSecurityRulesProtocol, error) { - vals := map[string]InboundSecurityRulesProtocol{ - "tcp": InboundSecurityRulesProtocolTCP, - "udp": InboundSecurityRulesProtocolUDP, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := InboundSecurityRulesProtocol(input) - return &out, nil -} - -type ProvisioningState string - -const ( - ProvisioningStateDeleting ProvisioningState = "Deleting" - ProvisioningStateFailed ProvisioningState = "Failed" - ProvisioningStateSucceeded ProvisioningState = "Succeeded" - ProvisioningStateUpdating ProvisioningState = "Updating" -) - -func PossibleValuesForProvisioningState() []string { - return []string{ - string(ProvisioningStateDeleting), - string(ProvisioningStateFailed), - string(ProvisioningStateSucceeded), - string(ProvisioningStateUpdating), - } -} - -func (s *ProvisioningState) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseProvisioningState(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseProvisioningState(input string) (*ProvisioningState, error) { - vals := map[string]ProvisioningState{ - "deleting": ProvisioningStateDeleting, - "failed": ProvisioningStateFailed, - "succeeded": ProvisioningStateSucceeded, - "updating": ProvisioningStateUpdating, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := ProvisioningState(input) - return &out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/id_inboundsecurityrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/id_inboundsecurityrule.go deleted file mode 100644 index 57ed3f89cae8..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/id_inboundsecurityrule.go +++ /dev/null @@ -1,140 +0,0 @@ -package networkvirtualappliances - -import ( - "fmt" - "strings" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -var _ resourceids.ResourceId = InboundSecurityRuleId{} - -// InboundSecurityRuleId is a struct representing the Resource ID for a Inbound Security Rule -type InboundSecurityRuleId struct { - SubscriptionId string - ResourceGroupName string - NetworkVirtualApplianceName string - InboundSecurityRuleName string -} - -// NewInboundSecurityRuleID returns a new InboundSecurityRuleId struct -func NewInboundSecurityRuleID(subscriptionId string, resourceGroupName string, networkVirtualApplianceName string, inboundSecurityRuleName string) InboundSecurityRuleId { - return InboundSecurityRuleId{ - SubscriptionId: subscriptionId, - ResourceGroupName: resourceGroupName, - NetworkVirtualApplianceName: networkVirtualApplianceName, - InboundSecurityRuleName: inboundSecurityRuleName, - } -} - -// ParseInboundSecurityRuleID parses 'input' into a InboundSecurityRuleId -func ParseInboundSecurityRuleID(input string) (*InboundSecurityRuleId, error) { - parser := resourceids.NewParserFromResourceIdType(InboundSecurityRuleId{}) - parsed, err := parser.Parse(input, false) - if err != nil { - return nil, fmt.Errorf("parsing %q: %+v", input, err) - } - - var ok bool - id := InboundSecurityRuleId{} - - if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) - } - - if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) - } - - if id.NetworkVirtualApplianceName, ok = parsed.Parsed["networkVirtualApplianceName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "networkVirtualApplianceName", *parsed) - } - - if id.InboundSecurityRuleName, ok = parsed.Parsed["inboundSecurityRuleName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "inboundSecurityRuleName", *parsed) - } - - return &id, nil -} - -// ParseInboundSecurityRuleIDInsensitively parses 'input' case-insensitively into a InboundSecurityRuleId -// note: this method should only be used for API response data and not user input -func ParseInboundSecurityRuleIDInsensitively(input string) (*InboundSecurityRuleId, error) { - parser := resourceids.NewParserFromResourceIdType(InboundSecurityRuleId{}) - parsed, err := parser.Parse(input, true) - if err != nil { - return nil, fmt.Errorf("parsing %q: %+v", input, err) - } - - var ok bool - id := InboundSecurityRuleId{} - - if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) - } - - if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) - } - - if id.NetworkVirtualApplianceName, ok = parsed.Parsed["networkVirtualApplianceName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "networkVirtualApplianceName", *parsed) - } - - if id.InboundSecurityRuleName, ok = parsed.Parsed["inboundSecurityRuleName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "inboundSecurityRuleName", *parsed) - } - - return &id, nil -} - -// ValidateInboundSecurityRuleID checks that 'input' can be parsed as a Inbound Security Rule ID -func ValidateInboundSecurityRuleID(input interface{}, key string) (warnings []string, errors []error) { - v, ok := input.(string) - if !ok { - errors = append(errors, fmt.Errorf("expected %q to be a string", key)) - return - } - - if _, err := ParseInboundSecurityRuleID(v); err != nil { - errors = append(errors, err) - } - - return -} - -// ID returns the formatted Inbound Security Rule ID -func (id InboundSecurityRuleId) ID() string { - fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/networkVirtualAppliances/%s/inboundSecurityRules/%s" - return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.NetworkVirtualApplianceName, id.InboundSecurityRuleName) -} - -// Segments returns a slice of Resource ID Segments which comprise this Inbound Security Rule ID -func (id InboundSecurityRuleId) Segments() []resourceids.Segment { - return []resourceids.Segment{ - resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), - resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), - resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), - resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), - resourceids.StaticSegment("staticProviders", "providers", "providers"), - resourceids.ResourceProviderSegment("staticMicrosoftNetwork", "Microsoft.Network", "Microsoft.Network"), - resourceids.StaticSegment("staticNetworkVirtualAppliances", "networkVirtualAppliances", "networkVirtualAppliances"), - resourceids.UserSpecifiedSegment("networkVirtualApplianceName", "networkVirtualApplianceValue"), - resourceids.StaticSegment("staticInboundSecurityRules", "inboundSecurityRules", "inboundSecurityRules"), - resourceids.UserSpecifiedSegment("inboundSecurityRuleName", "inboundSecurityRuleValue"), - } -} - -// String returns a human-readable description of this Inbound Security Rule ID -func (id InboundSecurityRuleId) String() string { - components := []string{ - fmt.Sprintf("Subscription: %q", id.SubscriptionId), - fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), - fmt.Sprintf("Network Virtual Appliance Name: %q", id.NetworkVirtualApplianceName), - fmt.Sprintf("Inbound Security Rule Name: %q", id.InboundSecurityRuleName), - } - return fmt.Sprintf("Inbound Security Rule (%s)", strings.Join(components, "\n")) -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/id_networkvirtualappliance.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/id_networkvirtualappliance.go deleted file mode 100644 index c4feaf36235e..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/id_networkvirtualappliance.go +++ /dev/null @@ -1,127 +0,0 @@ -package networkvirtualappliances - -import ( - "fmt" - "strings" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -var _ resourceids.ResourceId = NetworkVirtualApplianceId{} - -// NetworkVirtualApplianceId is a struct representing the Resource ID for a Network Virtual Appliance -type NetworkVirtualApplianceId struct { - SubscriptionId string - ResourceGroupName string - NetworkVirtualApplianceName string -} - -// NewNetworkVirtualApplianceID returns a new NetworkVirtualApplianceId struct -func NewNetworkVirtualApplianceID(subscriptionId string, resourceGroupName string, networkVirtualApplianceName string) NetworkVirtualApplianceId { - return NetworkVirtualApplianceId{ - SubscriptionId: subscriptionId, - ResourceGroupName: resourceGroupName, - NetworkVirtualApplianceName: networkVirtualApplianceName, - } -} - -// ParseNetworkVirtualApplianceID parses 'input' into a NetworkVirtualApplianceId -func ParseNetworkVirtualApplianceID(input string) (*NetworkVirtualApplianceId, error) { - parser := resourceids.NewParserFromResourceIdType(NetworkVirtualApplianceId{}) - parsed, err := parser.Parse(input, false) - if err != nil { - return nil, fmt.Errorf("parsing %q: %+v", input, err) - } - - var ok bool - id := NetworkVirtualApplianceId{} - - if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) - } - - if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) - } - - if id.NetworkVirtualApplianceName, ok = parsed.Parsed["networkVirtualApplianceName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "networkVirtualApplianceName", *parsed) - } - - return &id, nil -} - -// ParseNetworkVirtualApplianceIDInsensitively parses 'input' case-insensitively into a NetworkVirtualApplianceId -// note: this method should only be used for API response data and not user input -func ParseNetworkVirtualApplianceIDInsensitively(input string) (*NetworkVirtualApplianceId, error) { - parser := resourceids.NewParserFromResourceIdType(NetworkVirtualApplianceId{}) - parsed, err := parser.Parse(input, true) - if err != nil { - return nil, fmt.Errorf("parsing %q: %+v", input, err) - } - - var ok bool - id := NetworkVirtualApplianceId{} - - if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) - } - - if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) - } - - if id.NetworkVirtualApplianceName, ok = parsed.Parsed["networkVirtualApplianceName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "networkVirtualApplianceName", *parsed) - } - - return &id, nil -} - -// ValidateNetworkVirtualApplianceID checks that 'input' can be parsed as a Network Virtual Appliance ID -func ValidateNetworkVirtualApplianceID(input interface{}, key string) (warnings []string, errors []error) { - v, ok := input.(string) - if !ok { - errors = append(errors, fmt.Errorf("expected %q to be a string", key)) - return - } - - if _, err := ParseNetworkVirtualApplianceID(v); err != nil { - errors = append(errors, err) - } - - return -} - -// ID returns the formatted Network Virtual Appliance ID -func (id NetworkVirtualApplianceId) ID() string { - fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/networkVirtualAppliances/%s" - return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.NetworkVirtualApplianceName) -} - -// Segments returns a slice of Resource ID Segments which comprise this Network Virtual Appliance ID -func (id NetworkVirtualApplianceId) Segments() []resourceids.Segment { - return []resourceids.Segment{ - resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), - resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), - resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), - resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), - resourceids.StaticSegment("staticProviders", "providers", "providers"), - resourceids.ResourceProviderSegment("staticMicrosoftNetwork", "Microsoft.Network", "Microsoft.Network"), - resourceids.StaticSegment("staticNetworkVirtualAppliances", "networkVirtualAppliances", "networkVirtualAppliances"), - resourceids.UserSpecifiedSegment("networkVirtualApplianceName", "networkVirtualApplianceValue"), - } -} - -// String returns a human-readable description of this Network Virtual Appliance ID -func (id NetworkVirtualApplianceId) String() string { - components := []string{ - fmt.Sprintf("Subscription: %q", id.SubscriptionId), - fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), - fmt.Sprintf("Network Virtual Appliance Name: %q", id.NetworkVirtualApplianceName), - } - return fmt.Sprintf("Network Virtual Appliance (%s)", strings.Join(components, "\n")) -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_createorupdate.go deleted file mode 100644 index 1730b596e663..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_createorupdate.go +++ /dev/null @@ -1,74 +0,0 @@ -package networkvirtualappliances - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - Poller pollers.Poller - HttpResponse *http.Response - OData *odata.OData -} - -// CreateOrUpdate ... -func (c NetworkVirtualAppliancesClient) CreateOrUpdate(ctx context.Context, id NetworkVirtualApplianceId, input NetworkVirtualAppliance) (result CreateOrUpdateOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusCreated, - http.StatusOK, - }, - HttpMethod: http.MethodPut, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - if err = req.Marshal(input); err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) - if err != nil { - return - } - - return -} - -// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed -func (c NetworkVirtualAppliancesClient) CreateOrUpdateThenPoll(ctx context.Context, id NetworkVirtualApplianceId, input NetworkVirtualAppliance) error { - result, err := c.CreateOrUpdate(ctx, id, input) - if err != nil { - return fmt.Errorf("performing CreateOrUpdate: %+v", err) - } - - if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after CreateOrUpdate: %+v", err) - } - - return nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_delete.go deleted file mode 100644 index 9eb9b6f13ac9..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_delete.go +++ /dev/null @@ -1,71 +0,0 @@ -package networkvirtualappliances - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - Poller pollers.Poller - HttpResponse *http.Response - OData *odata.OData -} - -// Delete ... -func (c NetworkVirtualAppliancesClient) Delete(ctx context.Context, id NetworkVirtualApplianceId) (result DeleteOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusAccepted, - http.StatusNoContent, - http.StatusOK, - }, - HttpMethod: http.MethodDelete, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) - if err != nil { - return - } - - return -} - -// DeleteThenPoll performs Delete then polls until it's completed -func (c NetworkVirtualAppliancesClient) DeleteThenPoll(ctx context.Context, id NetworkVirtualApplianceId) error { - result, err := c.Delete(ctx, id) - if err != nil { - return fmt.Errorf("performing Delete: %+v", err) - } - - if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after Delete: %+v", err) - } - - return nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_get.go deleted file mode 100644 index e750e7bc23c6..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_get.go +++ /dev/null @@ -1,80 +0,0 @@ -package networkvirtualappliances - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *NetworkVirtualAppliance -} - -type GetOperationOptions struct { - Expand *string -} - -func DefaultGetOperationOptions() GetOperationOptions { - return GetOperationOptions{} -} - -func (o GetOperationOptions) ToHeaders() *client.Headers { - out := client.Headers{} - - return &out -} - -func (o GetOperationOptions) ToOData() *odata.Query { - out := odata.Query{} - return &out -} - -func (o GetOperationOptions) ToQuery() *client.QueryParams { - out := client.QueryParams{} - if o.Expand != nil { - out.Append("$expand", fmt.Sprintf("%v", *o.Expand)) - } - return &out -} - -// Get ... -func (c NetworkVirtualAppliancesClient) Get(ctx context.Context, id NetworkVirtualApplianceId, options GetOperationOptions) (result GetOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodGet, - Path: id.ID(), - OptionsObject: options, - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - if err = resp.Unmarshal(&result.Model); err != nil { - return - } - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_inboundsecurityrulecreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_inboundsecurityrulecreateorupdate.go deleted file mode 100644 index d7c19477e5b4..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_inboundsecurityrulecreateorupdate.go +++ /dev/null @@ -1,74 +0,0 @@ -package networkvirtualappliances - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type InboundSecurityRuleCreateOrUpdateOperationResponse struct { - Poller pollers.Poller - HttpResponse *http.Response - OData *odata.OData -} - -// InboundSecurityRuleCreateOrUpdate ... -func (c NetworkVirtualAppliancesClient) InboundSecurityRuleCreateOrUpdate(ctx context.Context, id InboundSecurityRuleId, input InboundSecurityRule) (result InboundSecurityRuleCreateOrUpdateOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusCreated, - http.StatusOK, - }, - HttpMethod: http.MethodPut, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - if err = req.Marshal(input); err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) - if err != nil { - return - } - - return -} - -// InboundSecurityRuleCreateOrUpdateThenPoll performs InboundSecurityRuleCreateOrUpdate then polls until it's completed -func (c NetworkVirtualAppliancesClient) InboundSecurityRuleCreateOrUpdateThenPoll(ctx context.Context, id InboundSecurityRuleId, input InboundSecurityRule) error { - result, err := c.InboundSecurityRuleCreateOrUpdate(ctx, id, input) - if err != nil { - return fmt.Errorf("performing InboundSecurityRuleCreateOrUpdate: %+v", err) - } - - if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after InboundSecurityRuleCreateOrUpdate: %+v", err) - } - - return nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_list.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_list.go deleted file mode 100644 index a9d87cc79e6f..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_list.go +++ /dev/null @@ -1,90 +0,0 @@ -package networkvirtualappliances - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *[]NetworkVirtualAppliance -} - -type ListCompleteResult struct { - Items []NetworkVirtualAppliance -} - -// List ... -func (c NetworkVirtualAppliancesClient) List(ctx context.Context, id commonids.SubscriptionId) (result ListOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodGet, - Path: fmt.Sprintf("%s/providers/Microsoft.Network/networkVirtualAppliances", id.ID()), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.ExecutePaged(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - var values struct { - Values *[]NetworkVirtualAppliance `json:"value"` - } - if err = resp.Unmarshal(&values); err != nil { - return - } - - result.Model = values.Values - - return -} - -// ListComplete retrieves all the results into a single object -func (c NetworkVirtualAppliancesClient) ListComplete(ctx context.Context, id commonids.SubscriptionId) (ListCompleteResult, error) { - return c.ListCompleteMatchingPredicate(ctx, id, NetworkVirtualApplianceOperationPredicate{}) -} - -// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c NetworkVirtualAppliancesClient) ListCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate NetworkVirtualApplianceOperationPredicate) (result ListCompleteResult, err error) { - items := make([]NetworkVirtualAppliance, 0) - - resp, err := c.List(ctx, id) - if err != nil { - err = fmt.Errorf("loading results: %+v", err) - return - } - if resp.Model != nil { - for _, v := range *resp.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - result = ListCompleteResult{ - Items: items, - } - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_listbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_listbyresourcegroup.go deleted file mode 100644 index 57def9f778db..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_listbyresourcegroup.go +++ /dev/null @@ -1,90 +0,0 @@ -package networkvirtualappliances - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByResourceGroupOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *[]NetworkVirtualAppliance -} - -type ListByResourceGroupCompleteResult struct { - Items []NetworkVirtualAppliance -} - -// ListByResourceGroup ... -func (c NetworkVirtualAppliancesClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodGet, - Path: fmt.Sprintf("%s/providers/Microsoft.Network/networkVirtualAppliances", id.ID()), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.ExecutePaged(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - var values struct { - Values *[]NetworkVirtualAppliance `json:"value"` - } - if err = resp.Unmarshal(&values); err != nil { - return - } - - result.Model = values.Values - - return -} - -// ListByResourceGroupComplete retrieves all the results into a single object -func (c NetworkVirtualAppliancesClient) ListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (ListByResourceGroupCompleteResult, error) { - return c.ListByResourceGroupCompleteMatchingPredicate(ctx, id, NetworkVirtualApplianceOperationPredicate{}) -} - -// ListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c NetworkVirtualAppliancesClient) ListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate NetworkVirtualApplianceOperationPredicate) (result ListByResourceGroupCompleteResult, err error) { - items := make([]NetworkVirtualAppliance, 0) - - resp, err := c.ListByResourceGroup(ctx, id) - if err != nil { - err = fmt.Errorf("loading results: %+v", err) - return - } - if resp.Model != nil { - for _, v := range *resp.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - result = ListByResourceGroupCompleteResult{ - Items: items, - } - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_updatetags.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_updatetags.go deleted file mode 100644 index c79705d335ae..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/method_updatetags.go +++ /dev/null @@ -1,55 +0,0 @@ -package networkvirtualappliances - -import ( - "context" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type UpdateTagsOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *NetworkVirtualAppliance -} - -// UpdateTags ... -func (c NetworkVirtualAppliancesClient) UpdateTags(ctx context.Context, id NetworkVirtualApplianceId, input TagsObject) (result UpdateTagsOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodPatch, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - if err = req.Marshal(input); err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - if err = resp.Unmarshal(&result.Model); err != nil { - return - } - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_delegationproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_delegationproperties.go deleted file mode 100644 index cf2170e1c38c..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_delegationproperties.go +++ /dev/null @@ -1,9 +0,0 @@ -package networkvirtualappliances - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DelegationProperties struct { - ProvisioningState *ProvisioningState `json:"provisioningState,omitempty"` - ServiceName *string `json:"serviceName,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_inboundsecurityrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_inboundsecurityrule.go deleted file mode 100644 index f921a8c65340..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_inboundsecurityrule.go +++ /dev/null @@ -1,12 +0,0 @@ -package networkvirtualappliances - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type InboundSecurityRule struct { - Etag *string `json:"etag,omitempty"` - Id *string `json:"id,omitempty"` - Name *string `json:"name,omitempty"` - Properties *InboundSecurityRuleProperties `json:"properties,omitempty"` - Type *string `json:"type,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_inboundsecurityruleproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_inboundsecurityruleproperties.go deleted file mode 100644 index 11569615b5c7..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_inboundsecurityruleproperties.go +++ /dev/null @@ -1,9 +0,0 @@ -package networkvirtualappliances - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type InboundSecurityRuleProperties struct { - ProvisioningState *ProvisioningState `json:"provisioningState,omitempty"` - Rules *[]InboundSecurityRules `json:"rules,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_inboundsecurityrules.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_inboundsecurityrules.go deleted file mode 100644 index c03db57794b2..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_inboundsecurityrules.go +++ /dev/null @@ -1,10 +0,0 @@ -package networkvirtualappliances - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type InboundSecurityRules struct { - DestinationPortRange *int64 `json:"destinationPortRange,omitempty"` - Protocol *InboundSecurityRulesProtocol `json:"protocol,omitempty"` - SourceAddressPrefix *string `json:"sourceAddressPrefix,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_networkvirtualappliance.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_networkvirtualappliance.go deleted file mode 100644 index 03612c989df6..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_networkvirtualappliance.go +++ /dev/null @@ -1,19 +0,0 @@ -package networkvirtualappliances - -import ( - "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type NetworkVirtualAppliance struct { - Etag *string `json:"etag,omitempty"` - Id *string `json:"id,omitempty"` - Identity *identity.SystemAndUserAssignedMap `json:"identity,omitempty"` - Location *string `json:"location,omitempty"` - Name *string `json:"name,omitempty"` - Properties *NetworkVirtualAppliancePropertiesFormat `json:"properties,omitempty"` - Tags *map[string]string `json:"tags,omitempty"` - Type *string `json:"type,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_networkvirtualappliancepropertiesformat.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_networkvirtualappliancepropertiesformat.go deleted file mode 100644 index c321e0bc6e99..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_networkvirtualappliancepropertiesformat.go +++ /dev/null @@ -1,24 +0,0 @@ -package networkvirtualappliances - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type NetworkVirtualAppliancePropertiesFormat struct { - AdditionalNics *[]VirtualApplianceAdditionalNicProperties `json:"additionalNics,omitempty"` - AddressPrefix *string `json:"addressPrefix,omitempty"` - BootStrapConfigurationBlobs *[]string `json:"bootStrapConfigurationBlobs,omitempty"` - CloudInitConfiguration *string `json:"cloudInitConfiguration,omitempty"` - CloudInitConfigurationBlobs *[]string `json:"cloudInitConfigurationBlobs,omitempty"` - Delegation *DelegationProperties `json:"delegation,omitempty"` - DeploymentType *string `json:"deploymentType,omitempty"` - InboundSecurityRules *[]SubResource `json:"inboundSecurityRules,omitempty"` - NvaSku *VirtualApplianceSkuProperties `json:"nvaSku,omitempty"` - PartnerManagedResource *PartnerManagedResourceProperties `json:"partnerManagedResource,omitempty"` - ProvisioningState *ProvisioningState `json:"provisioningState,omitempty"` - SshPublicKey *string `json:"sshPublicKey,omitempty"` - VirtualApplianceAsn *int64 `json:"virtualApplianceAsn,omitempty"` - VirtualApplianceConnections *[]SubResource `json:"virtualApplianceConnections,omitempty"` - VirtualApplianceNics *[]VirtualApplianceNicProperties `json:"virtualApplianceNics,omitempty"` - VirtualApplianceSites *[]SubResource `json:"virtualApplianceSites,omitempty"` - VirtualHub *SubResource `json:"virtualHub,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_partnermanagedresourceproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_partnermanagedresourceproperties.go deleted file mode 100644 index e89793be377c..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_partnermanagedresourceproperties.go +++ /dev/null @@ -1,10 +0,0 @@ -package networkvirtualappliances - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type PartnerManagedResourceProperties struct { - Id *string `json:"id,omitempty"` - InternalLoadBalancerId *string `json:"internalLoadBalancerId,omitempty"` - StandardLoadBalancerId *string `json:"standardLoadBalancerId,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_subresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_subresource.go deleted file mode 100644 index 8df29cf10318..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_subresource.go +++ /dev/null @@ -1,8 +0,0 @@ -package networkvirtualappliances - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type SubResource struct { - Id *string `json:"id,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_tagsobject.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_tagsobject.go deleted file mode 100644 index 3ad1ec8468c7..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_tagsobject.go +++ /dev/null @@ -1,8 +0,0 @@ -package networkvirtualappliances - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type TagsObject struct { - Tags *map[string]string `json:"tags,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_virtualapplianceadditionalnicproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_virtualapplianceadditionalnicproperties.go deleted file mode 100644 index 7eb59c309c13..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_virtualapplianceadditionalnicproperties.go +++ /dev/null @@ -1,9 +0,0 @@ -package networkvirtualappliances - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type VirtualApplianceAdditionalNicProperties struct { - HasPublicIP *bool `json:"hasPublicIp,omitempty"` - Name *string `json:"name,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_virtualappliancenicproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_virtualappliancenicproperties.go deleted file mode 100644 index bfd6f5f914bf..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_virtualappliancenicproperties.go +++ /dev/null @@ -1,11 +0,0 @@ -package networkvirtualappliances - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type VirtualApplianceNicProperties struct { - InstanceName *string `json:"instanceName,omitempty"` - Name *string `json:"name,omitempty"` - PrivateIPAddress *string `json:"privateIpAddress,omitempty"` - PublicIPAddress *string `json:"publicIpAddress,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_virtualapplianceskuproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_virtualapplianceskuproperties.go deleted file mode 100644 index b194523806f7..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/model_virtualapplianceskuproperties.go +++ /dev/null @@ -1,10 +0,0 @@ -package networkvirtualappliances - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type VirtualApplianceSkuProperties struct { - BundledScaleUnit *string `json:"bundledScaleUnit,omitempty"` - MarketPlaceVersion *string `json:"marketPlaceVersion,omitempty"` - Vendor *string `json:"vendor,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/predicates.go deleted file mode 100644 index 676b2af6c25c..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/predicates.go +++ /dev/null @@ -1,37 +0,0 @@ -package networkvirtualappliances - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type NetworkVirtualApplianceOperationPredicate struct { - Etag *string - Id *string - Location *string - Name *string - Type *string -} - -func (p NetworkVirtualApplianceOperationPredicate) Matches(input NetworkVirtualAppliance) bool { - - if p.Etag != nil && (input.Etag == nil || *p.Etag != *input.Etag) { - return false - } - - if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { - return false - } - - if p.Location != nil && (input.Location == nil || *p.Location != *input.Location) { - return false - } - - if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { - return false - } - - if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { - return false - } - - return true -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/version.go deleted file mode 100644 index 210742258d45..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances/version.go +++ /dev/null @@ -1,12 +0,0 @@ -package networkvirtualappliances - -import "fmt" - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -const defaultApiVersion = "2023-02-01" - -func userAgent() string { - return fmt.Sprintf("hashicorp/go-azure-sdk/networkvirtualappliances/%s", defaultApiVersion) -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 4c2b36ed1a18..03c7fd2e3f46 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -598,7 +598,6 @@ github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/snapshots github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumes github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumesreplication -github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-02-01/networkvirtualappliances github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01 github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/adminrulecollections github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/adminrules From c61f5230f8d53f44780d37d7e51b7f30fed9eb00 Mon Sep 17 00:00:00 2001 From: kt Date: Wed, 23 Aug 2023 18:28:53 -0700 Subject: [PATCH 018/336] transport layer: trafficmanager, webpubsub (#23054) --- go.mod | 2 +- go.sum | 4 +- internal/clients/client.go | 4 +- internal/services/signalr/client/client.go | 11 +- .../services/trafficmanager/client/client.go | 35 ++-- .../2018-08-01/endpoints/client.go | 22 ++- .../2018-08-01/endpoints/constants.go | 45 ++++- .../endpoints/method_createorupdate.go | 56 ++++++ .../method_createorupdate_autorest.go | 69 ------- .../2018-08-01/endpoints/method_delete.go | 52 +++++ .../endpoints/method_delete_autorest.go | 68 ------- .../2018-08-01/endpoints/method_get.go | 51 +++++ .../endpoints/method_get_autorest.go | 68 ------- .../2018-08-01/endpoints/method_update.go | 55 ++++++ .../endpoints/method_update_autorest.go | 69 ------- .../geographichierarchies/client.go | 22 ++- .../method_getdefault.go | 51 +++++ .../method_getdefault_autorest.go | 68 ------- .../2018-08-01/profiles/client.go | 22 ++- .../2018-08-01/profiles/constants.go | 110 ++++++++++- ...afficmanagerrelativednsnameavailability.go | 55 ++++++ ...gerrelativednsnameavailability_autorest.go | 69 ------- .../profiles/method_createorupdate.go | 56 ++++++ .../method_createorupdate_autorest.go | 69 ------- .../2018-08-01/profiles/method_delete.go | 52 +++++ .../profiles/method_delete_autorest.go | 68 ------- .../2018-08-01/profiles/method_get.go | 51 +++++ .../profiles/method_get_autorest.go | 68 ------- .../profiles/method_listbyresourcegroup.go | 53 +++++ .../method_listbyresourcegroup_autorest.go | 70 ------- .../profiles/method_listbysubscription.go | 53 +++++ .../method_listbysubscription_autorest.go | 70 ------- .../2018-08-01/profiles/method_update.go | 55 ++++++ .../profiles/method_update_autorest.go | 69 ------- .../webpubsub/2023-02-01/client.go | 21 +- .../webpubsub/2023-02-01/webpubsub/client.go | 22 ++- .../2023-02-01/webpubsub/constants.go | 149 +++++++++++++- .../webpubsub/method_checknameavailability.go | 56 ++++++ .../method_checknameavailability_autorest.go | 70 ------- .../webpubsub/method_createorupdate.go | 75 +++++++ .../method_createorupdate_autorest.go | 79 -------- ...method_customcertificatescreateorupdate.go | 74 +++++++ ...stomcertificatescreateorupdate_autorest.go | 79 -------- .../method_customcertificatesdelete.go | 47 +++++ ...ethod_customcertificatesdelete_autorest.go | 66 ------- .../webpubsub/method_customcertificatesget.go | 51 +++++ .../method_customcertificatesget_autorest.go | 68 ------- .../method_customcertificateslist.go | 89 +++++++++ .../method_customcertificateslist_autorest.go | 186 ----------------- .../method_customdomainscreateorupdate.go | 73 +++++++ ...od_customdomainscreateorupdate_autorest.go | 79 -------- .../webpubsub/method_customdomainsdelete.go | 71 +++++++ .../method_customdomainsdelete_autorest.go | 78 -------- .../webpubsub/method_customdomainsget.go | 51 +++++ .../method_customdomainsget_autorest.go | 68 ------- .../webpubsub/method_customdomainslist.go | 89 +++++++++ .../method_customdomainslist_autorest.go | 186 ----------------- .../2023-02-01/webpubsub/method_delete.go | 71 +++++++ .../webpubsub/method_delete_autorest.go | 78 -------- .../2023-02-01/webpubsub/method_get.go | 51 +++++ .../webpubsub/method_get_autorest.go | 68 ------- .../webpubsub/method_hubscreateorupdate.go | 74 +++++++ .../method_hubscreateorupdate_autorest.go | 79 -------- .../2023-02-01/webpubsub/method_hubsdelete.go | 71 +++++++ .../webpubsub/method_hubsdelete_autorest.go | 78 -------- .../2023-02-01/webpubsub/method_hubsget.go | 51 +++++ .../webpubsub/method_hubsget_autorest.go | 68 ------- .../2023-02-01/webpubsub/method_hubslist.go | 89 +++++++++ .../webpubsub/method_hubslist_autorest.go | 186 ----------------- .../webpubsub/method_listbyresourcegroup.go | 90 +++++++++ .../method_listbyresourcegroup_autorest.go | 187 ------------------ .../webpubsub/method_listbysubscription.go | 90 +++++++++ .../method_listbysubscription_autorest.go | 187 ------------------ .../2023-02-01/webpubsub/method_listkeys.go | 52 +++++ .../webpubsub/method_listkeys_autorest.go | 69 ------- .../2023-02-01/webpubsub/method_listskus.go | 52 +++++ .../webpubsub/method_listskus_autorest.go | 69 ------- ...method_privateendpointconnectionsdelete.go | 71 +++++++ ...ivateendpointconnectionsdelete_autorest.go | 78 -------- .../method_privateendpointconnectionsget.go | 51 +++++ ..._privateendpointconnectionsget_autorest.go | 68 ------- .../method_privateendpointconnectionslist.go | 89 +++++++++ ...privateendpointconnectionslist_autorest.go | 186 ----------------- ...method_privateendpointconnectionsupdate.go | 55 ++++++ ...ivateendpointconnectionsupdate_autorest.go | 69 ------- .../method_privatelinkresourceslist.go | 89 +++++++++ ...ethod_privatelinkresourceslist_autorest.go | 186 ----------------- .../webpubsub/method_regeneratekey.go | 73 +++++++ .../method_regeneratekey_autorest.go | 79 -------- .../2023-02-01/webpubsub/method_restart.go | 70 +++++++ .../webpubsub/method_restart_autorest.go | 78 -------- ...haredprivatelinkresourcescreateorupdate.go | 74 +++++++ ...atelinkresourcescreateorupdate_autorest.go | 79 -------- ...method_sharedprivatelinkresourcesdelete.go | 71 +++++++ ...aredprivatelinkresourcesdelete_autorest.go | 78 -------- .../method_sharedprivatelinkresourcesget.go | 51 +++++ ..._sharedprivatelinkresourcesget_autorest.go | 68 ------- .../method_sharedprivatelinkresourceslist.go | 89 +++++++++ ...sharedprivatelinkresourceslist_autorest.go | 186 ----------------- .../2023-02-01/webpubsub/method_update.go | 74 +++++++ .../webpubsub/method_update_autorest.go | 79 -------- .../2023-02-01/webpubsub/method_usageslist.go | 89 +++++++++ .../webpubsub/method_usageslist_autorest.go | 186 ----------------- .../sdk/client/resourcemanager/poller_lro.go | 4 + vendor/modules.txt | 2 +- 105 files changed, 3368 insertions(+), 4333 deletions(-) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_createorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_delete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_get_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_update.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_update_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/geographichierarchies/method_getdefault.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/geographichierarchies/method_getdefault_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_checktrafficmanagerrelativednsnameavailability.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_checktrafficmanagerrelativednsnameavailability_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_createorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_delete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_get_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbyresourcegroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbyresourcegroup_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbysubscription.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbysubscription_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_update.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_update_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_checknameavailability.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_checknameavailability_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_createorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatescreateorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatescreateorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesdelete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesdelete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesget.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesget_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificateslist.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificateslist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainscreateorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainscreateorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsdelete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsdelete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsget.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsget_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainslist.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainslist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_delete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_get_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubscreateorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubscreateorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsdelete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsdelete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsget.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsget_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubslist.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubslist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbyresourcegroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbyresourcegroup_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbysubscription.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbysubscription_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listkeys.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listkeys_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listskus.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listskus_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsdelete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsdelete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsget.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsget_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionslist.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionslist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privatelinkresourceslist.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privatelinkresourceslist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_regeneratekey.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_regeneratekey_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_restart.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_restart_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcescreateorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcescreateorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesdelete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesdelete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesget.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesget_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourceslist.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourceslist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_update.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_update_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_usageslist.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_usageslist_autorest.go diff --git a/go.mod b/go.mod index 39c6f3d7c3af..3ce1bfec78c6 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/google/go-cmp v0.5.9 github.com/google/uuid v1.3.0 github.com/hashicorp/go-azure-helpers v0.59.0 - github.com/hashicorp/go-azure-sdk v0.20230815.1165905 + github.com/hashicorp/go-azure-sdk v0.20230823.1052657 github.com/hashicorp/go-hclog v1.4.0 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-uuid v1.0.3 diff --git a/go.sum b/go.sum index 6489173746f0..6699d876c25d 100644 --- a/go.sum +++ b/go.sum @@ -121,8 +121,8 @@ github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv github.com/hashicorp/go-azure-helpers v0.12.0/go.mod h1:Zc3v4DNeX6PDdy7NljlYpnrdac1++qNW0I4U+ofGwpg= github.com/hashicorp/go-azure-helpers v0.59.0 h1:E73yoPN2r1y0vvZ4dgAh8NRGuVTNXH3lZKRjT+4oNmA= github.com/hashicorp/go-azure-helpers v0.59.0/go.mod h1:BQUQp5udwbJ8pnzl0wByCLVEEyPMAFpJ9vOREiCzObo= -github.com/hashicorp/go-azure-sdk v0.20230815.1165905 h1:/gjAbKSekRzKM/Atps7k0eCaA3n7hrLx1FtWhOqAl4Q= -github.com/hashicorp/go-azure-sdk v0.20230815.1165905/go.mod h1:3GK3YHV1vwn/jHHeUyAPWkUyYy91PEzXg0dziKlSMaA= +github.com/hashicorp/go-azure-sdk v0.20230823.1052657 h1:Dk78GhVOIT78Wn7oS/TB9tmgC/HPa7yoYsBx8WowRDA= +github.com/hashicorp/go-azure-sdk v0.20230823.1052657/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU= github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= diff --git a/internal/clients/client.go b/internal/clients/client.go index 2fe19fdc270f..dd2ce84cff05 100644 --- a/internal/clients/client.go +++ b/internal/clients/client.go @@ -578,7 +578,9 @@ func (client *Client) Build(ctx context.Context, o *common.ClientOptions) error client.StreamAnalytics = streamAnalytics.NewClient(o) client.Subscription = subscription.NewClient(o) client.Synapse = synapse.NewClient(o) - client.TrafficManager = trafficManager.NewClient(o) + if client.TrafficManager, err = trafficManager.NewClient(o); err != nil { + return fmt.Errorf("building clients for Traffic Manager: %+v", err) + } if client.VideoAnalyzer, err = videoAnalyzer.NewClient(o); err != nil { return fmt.Errorf("building clients for Video Analyzer: %+v", err) } diff --git a/internal/services/signalr/client/client.go b/internal/services/signalr/client/client.go index ef3ff9adf12f..186381ddf0f5 100644 --- a/internal/services/signalr/client/client.go +++ b/internal/services/signalr/client/client.go @@ -4,9 +4,9 @@ package client import ( - "github.com/Azure/go-autorest/autorest" "github.com/hashicorp/go-azure-sdk/resource-manager/signalr/2023-02-01/signalr" webpubsub_v2023_02_01 "github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" "github.com/hashicorp/terraform-provider-azurerm/internal/common" ) @@ -22,12 +22,15 @@ func NewClient(o *common.ClientOptions) (*Client, error) { } o.Configure(signalRClient.Client, o.Authorizers.ResourceManager) - webPubSubClient := webpubsub_v2023_02_01.NewClientWithBaseURI(o.ResourceManagerEndpoint, func(c *autorest.Client) { - o.ConfigureClient(c, o.ResourceManagerAuthorizer) + webPubSubClient, err := webpubsub_v2023_02_01.NewClientWithBaseURI(o.Environment.ResourceManager, func(c *resourcemanager.Client) { + o.Configure(c, o.Authorizers.ResourceManager) }) + if err != nil { + return nil, err + } return &Client{ SignalRClient: signalRClient, - WebPubSubClient: &webPubSubClient, + WebPubSubClient: webPubSubClient, }, nil } diff --git a/internal/services/trafficmanager/client/client.go b/internal/services/trafficmanager/client/client.go index 2472a970d617..3d68e16e35fe 100644 --- a/internal/services/trafficmanager/client/client.go +++ b/internal/services/trafficmanager/client/client.go @@ -4,6 +4,8 @@ package client import ( + "fmt" + "github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints" "github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/geographichierarchies" "github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles" @@ -11,24 +13,33 @@ import ( ) type Client struct { - GeographialHierarchiesClient *geographichierarchies.GeographicHierarchiesClient EndpointsClient *endpoints.EndpointsClient + GeographialHierarchiesClient *geographichierarchies.GeographicHierarchiesClient ProfilesClient *profiles.ProfilesClient } -func NewClient(o *common.ClientOptions) *Client { - endpointsClient := endpoints.NewEndpointsClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&endpointsClient.Client, o.ResourceManagerAuthorizer) +func NewClient(o *common.ClientOptions) (*Client, error) { + endpointsClient, err := endpoints.NewEndpointsClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building Endpoints Client: %+v", err) + } + o.Configure(endpointsClient.Client, o.Authorizers.ResourceManager) - geographialHierarchiesClient := geographichierarchies.NewGeographicHierarchiesClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&geographialHierarchiesClient.Client, o.ResourceManagerAuthorizer) + geographialHierarchiesClient, err := geographichierarchies.NewGeographicHierarchiesClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building Geographial Hierarchies Client: %+v", err) + } + o.Configure(geographialHierarchiesClient.Client, o.Authorizers.ResourceManager) - profilesClient := profiles.NewProfilesClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&profilesClient.Client, o.ResourceManagerAuthorizer) + profilesClient, err := profiles.NewProfilesClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building Profiles Client: %+v", err) + } + o.Configure(profilesClient.Client, o.Authorizers.ResourceManager) return &Client{ - EndpointsClient: &endpointsClient, - GeographialHierarchiesClient: &geographialHierarchiesClient, - ProfilesClient: &profilesClient, - } + EndpointsClient: endpointsClient, + GeographialHierarchiesClient: geographialHierarchiesClient, + ProfilesClient: profilesClient, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/client.go index 6c305c6e8ca7..5f6c4ea9eceb 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/client.go @@ -1,18 +1,26 @@ package endpoints -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type EndpointsClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewEndpointsClientWithBaseURI(endpoint string) EndpointsClient { - return EndpointsClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewEndpointsClientWithBaseURI(sdkApi sdkEnv.Api) (*EndpointsClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "endpoints", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating EndpointsClient: %+v", err) } + + return &EndpointsClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/constants.go index 202519d0c589..2b3267661c7c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/constants.go @@ -1,6 +1,10 @@ package endpoints -import "strings" +import ( + "encoding/json" + "fmt" + "strings" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. @@ -27,6 +31,19 @@ func PossibleValuesForEndpointMonitorStatus() []string { } } +func (s *EndpointMonitorStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseEndpointMonitorStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseEndpointMonitorStatus(input string) (*EndpointMonitorStatus, error) { vals := map[string]EndpointMonitorStatus{ "checkingendpoint": EndpointMonitorStatusCheckingEndpoint, @@ -59,6 +76,19 @@ func PossibleValuesForEndpointStatus() []string { } } +func (s *EndpointStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseEndpointStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseEndpointStatus(input string) (*EndpointStatus, error) { vals := map[string]EndpointStatus{ "disabled": EndpointStatusDisabled, @@ -89,6 +119,19 @@ func PossibleValuesForEndpointType() []string { } } +func (s *EndpointType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseEndpointType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseEndpointType(input string) (*EndpointType, error) { vals := map[string]EndpointType{ "azureendpoints": EndpointTypeAzureEndpoints, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_createorupdate.go new file mode 100644 index 000000000000..26b2cebe8380 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_createorupdate.go @@ -0,0 +1,56 @@ +package endpoints + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Endpoint +} + +// CreateOrUpdate ... +func (c EndpointsClient) CreateOrUpdate(ctx context.Context, id EndpointTypeId, input Endpoint) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_createorupdate_autorest.go deleted file mode 100644 index 562902bf61fc..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_createorupdate_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package endpoints - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - HttpResponse *http.Response - Model *Endpoint -} - -// CreateOrUpdate ... -func (c EndpointsClient) CreateOrUpdate(ctx context.Context, id EndpointTypeId, input Endpoint) (result CreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "endpoints.EndpointsClient", "CreateOrUpdate", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "endpoints.EndpointsClient", "CreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForCreateOrUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "endpoints.EndpointsClient", "CreateOrUpdate", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForCreateOrUpdate prepares the CreateOrUpdate request. -func (c EndpointsClient) preparerForCreateOrUpdate(ctx context.Context, id EndpointTypeId, input Endpoint) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForCreateOrUpdate handles the response to the CreateOrUpdate request. The method always -// closes the http.Response Body. -func (c EndpointsClient) responderForCreateOrUpdate(resp *http.Response) (result CreateOrUpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusCreated, http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_delete.go new file mode 100644 index 000000000000..60f91eee04b0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_delete.go @@ -0,0 +1,52 @@ +package endpoints + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *DeleteOperationResult +} + +// Delete ... +func (c EndpointsClient) Delete(ctx context.Context, id EndpointTypeId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_delete_autorest.go deleted file mode 100644 index 96c745749934..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_delete_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package endpoints - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - HttpResponse *http.Response - Model *DeleteOperationResult -} - -// Delete ... -func (c EndpointsClient) Delete(ctx context.Context, id EndpointTypeId) (result DeleteOperationResponse, err error) { - req, err := c.preparerForDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "endpoints.EndpointsClient", "Delete", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "endpoints.EndpointsClient", "Delete", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForDelete(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "endpoints.EndpointsClient", "Delete", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForDelete prepares the Delete request. -func (c EndpointsClient) preparerForDelete(ctx context.Context, id EndpointTypeId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForDelete handles the response to the Delete request. The method always -// closes the http.Response Body. -func (c EndpointsClient) responderForDelete(resp *http.Response) (result DeleteOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_get.go new file mode 100644 index 000000000000..675d1cd73559 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_get.go @@ -0,0 +1,51 @@ +package endpoints + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Endpoint +} + +// Get ... +func (c EndpointsClient) Get(ctx context.Context, id EndpointTypeId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_get_autorest.go deleted file mode 100644 index c77dce43a2bc..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_get_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package endpoints - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - Model *Endpoint -} - -// Get ... -func (c EndpointsClient) Get(ctx context.Context, id EndpointTypeId) (result GetOperationResponse, err error) { - req, err := c.preparerForGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "endpoints.EndpointsClient", "Get", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "endpoints.EndpointsClient", "Get", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "endpoints.EndpointsClient", "Get", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGet prepares the Get request. -func (c EndpointsClient) preparerForGet(ctx context.Context, id EndpointTypeId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGet handles the response to the Get request. The method always -// closes the http.Response Body. -func (c EndpointsClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_update.go new file mode 100644 index 000000000000..87256486c666 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_update.go @@ -0,0 +1,55 @@ +package endpoints + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Endpoint +} + +// Update ... +func (c EndpointsClient) Update(ctx context.Context, id EndpointTypeId, input Endpoint) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_update_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_update_autorest.go deleted file mode 100644 index 3eedd41d2012..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/endpoints/method_update_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package endpoints - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type UpdateOperationResponse struct { - HttpResponse *http.Response - Model *Endpoint -} - -// Update ... -func (c EndpointsClient) Update(ctx context.Context, id EndpointTypeId, input Endpoint) (result UpdateOperationResponse, err error) { - req, err := c.preparerForUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "endpoints.EndpointsClient", "Update", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "endpoints.EndpointsClient", "Update", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "endpoints.EndpointsClient", "Update", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForUpdate prepares the Update request. -func (c EndpointsClient) preparerForUpdate(ctx context.Context, id EndpointTypeId, input Endpoint) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPatch(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForUpdate handles the response to the Update request. The method always -// closes the http.Response Body. -func (c EndpointsClient) responderForUpdate(resp *http.Response) (result UpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/geographichierarchies/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/geographichierarchies/client.go index 763bd52bb6c7..f2da2c827380 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/geographichierarchies/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/geographichierarchies/client.go @@ -1,18 +1,26 @@ package geographichierarchies -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type GeographicHierarchiesClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewGeographicHierarchiesClientWithBaseURI(endpoint string) GeographicHierarchiesClient { - return GeographicHierarchiesClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewGeographicHierarchiesClientWithBaseURI(sdkApi sdkEnv.Api) (*GeographicHierarchiesClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "geographichierarchies", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating GeographicHierarchiesClient: %+v", err) } + + return &GeographicHierarchiesClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/geographichierarchies/method_getdefault.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/geographichierarchies/method_getdefault.go new file mode 100644 index 000000000000..6b26b840a8d8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/geographichierarchies/method_getdefault.go @@ -0,0 +1,51 @@ +package geographichierarchies + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetDefaultOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *TrafficManagerGeographicHierarchy +} + +// GetDefault ... +func (c GeographicHierarchiesClient) GetDefault(ctx context.Context) (result GetDefaultOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: "/providers/Microsoft.Network/trafficManagerGeographicHierarchies/default", + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/geographichierarchies/method_getdefault_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/geographichierarchies/method_getdefault_autorest.go deleted file mode 100644 index e5f5620df8b9..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/geographichierarchies/method_getdefault_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package geographichierarchies - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetDefaultOperationResponse struct { - HttpResponse *http.Response - Model *TrafficManagerGeographicHierarchy -} - -// GetDefault ... -func (c GeographicHierarchiesClient) GetDefault(ctx context.Context) (result GetDefaultOperationResponse, err error) { - req, err := c.preparerForGetDefault(ctx) - if err != nil { - err = autorest.NewErrorWithError(err, "geographichierarchies.GeographicHierarchiesClient", "GetDefault", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "geographichierarchies.GeographicHierarchiesClient", "GetDefault", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGetDefault(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "geographichierarchies.GeographicHierarchiesClient", "GetDefault", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGetDefault prepares the GetDefault request. -func (c GeographicHierarchiesClient) preparerForGetDefault(ctx context.Context) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath("/providers/Microsoft.Network/trafficManagerGeographicHierarchies/default"), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGetDefault handles the response to the GetDefault request. The method always -// closes the http.Response Body. -func (c GeographicHierarchiesClient) responderForGetDefault(resp *http.Response) (result GetDefaultOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/client.go index a99722efb6cd..720482266180 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/client.go @@ -1,18 +1,26 @@ package profiles -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type ProfilesClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewProfilesClientWithBaseURI(endpoint string) ProfilesClient { - return ProfilesClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewProfilesClientWithBaseURI(sdkApi sdkEnv.Api) (*ProfilesClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "profiles", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating ProfilesClient: %+v", err) } + + return &ProfilesClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/constants.go index ec50b4737527..8a703cfc8493 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/constants.go @@ -1,6 +1,10 @@ package profiles -import "strings" +import ( + "encoding/json" + "fmt" + "strings" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. @@ -23,6 +27,19 @@ func PossibleValuesForAllowedEndpointRecordType() []string { } } +func (s *AllowedEndpointRecordType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseAllowedEndpointRecordType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseAllowedEndpointRecordType(input string) (*AllowedEndpointRecordType, error) { vals := map[string]AllowedEndpointRecordType{ "any": AllowedEndpointRecordTypeAny, @@ -61,6 +78,19 @@ func PossibleValuesForEndpointMonitorStatus() []string { } } +func (s *EndpointMonitorStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseEndpointMonitorStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseEndpointMonitorStatus(input string) (*EndpointMonitorStatus, error) { vals := map[string]EndpointMonitorStatus{ "checkingendpoint": EndpointMonitorStatusCheckingEndpoint, @@ -93,6 +123,19 @@ func PossibleValuesForEndpointStatus() []string { } } +func (s *EndpointStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseEndpointStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseEndpointStatus(input string) (*EndpointStatus, error) { vals := map[string]EndpointStatus{ "disabled": EndpointStatusDisabled, @@ -123,6 +166,19 @@ func PossibleValuesForMonitorProtocol() []string { } } +func (s *MonitorProtocol) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseMonitorProtocol(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseMonitorProtocol(input string) (*MonitorProtocol, error) { vals := map[string]MonitorProtocol{ "http": MonitorProtocolHTTP, @@ -158,6 +214,19 @@ func PossibleValuesForProfileMonitorStatus() []string { } } +func (s *ProfileMonitorStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseProfileMonitorStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseProfileMonitorStatus(input string) (*ProfileMonitorStatus, error) { vals := map[string]ProfileMonitorStatus{ "checkingendpoints": ProfileMonitorStatusCheckingEndpoints, @@ -189,6 +258,19 @@ func PossibleValuesForProfileStatus() []string { } } +func (s *ProfileStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseProfileStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseProfileStatus(input string) (*ProfileStatus, error) { vals := map[string]ProfileStatus{ "disabled": ProfileStatusDisabled, @@ -225,6 +307,19 @@ func PossibleValuesForTrafficRoutingMethod() []string { } } +func (s *TrafficRoutingMethod) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseTrafficRoutingMethod(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseTrafficRoutingMethod(input string) (*TrafficRoutingMethod, error) { vals := map[string]TrafficRoutingMethod{ "geographic": TrafficRoutingMethodGeographic, @@ -257,6 +352,19 @@ func PossibleValuesForTrafficViewEnrollmentStatus() []string { } } +func (s *TrafficViewEnrollmentStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseTrafficViewEnrollmentStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseTrafficViewEnrollmentStatus(input string) (*TrafficViewEnrollmentStatus, error) { vals := map[string]TrafficViewEnrollmentStatus{ "disabled": TrafficViewEnrollmentStatusDisabled, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_checktrafficmanagerrelativednsnameavailability.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_checktrafficmanagerrelativednsnameavailability.go new file mode 100644 index 000000000000..bb44de6f43af --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_checktrafficmanagerrelativednsnameavailability.go @@ -0,0 +1,55 @@ +package profiles + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CheckTrafficManagerRelativeDnsNameAvailabilityOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *TrafficManagerNameAvailability +} + +// CheckTrafficManagerRelativeDnsNameAvailability ... +func (c ProfilesClient) CheckTrafficManagerRelativeDnsNameAvailability(ctx context.Context, input CheckTrafficManagerRelativeDnsNameAvailabilityParameters) (result CheckTrafficManagerRelativeDnsNameAvailabilityOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: "/providers/Microsoft.Network/checkTrafficManagerNameAvailability", + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_checktrafficmanagerrelativednsnameavailability_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_checktrafficmanagerrelativednsnameavailability_autorest.go deleted file mode 100644 index 1cc71e88da74..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_checktrafficmanagerrelativednsnameavailability_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package profiles - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CheckTrafficManagerRelativeDnsNameAvailabilityOperationResponse struct { - HttpResponse *http.Response - Model *TrafficManagerNameAvailability -} - -// CheckTrafficManagerRelativeDnsNameAvailability ... -func (c ProfilesClient) CheckTrafficManagerRelativeDnsNameAvailability(ctx context.Context, input CheckTrafficManagerRelativeDnsNameAvailabilityParameters) (result CheckTrafficManagerRelativeDnsNameAvailabilityOperationResponse, err error) { - req, err := c.preparerForCheckTrafficManagerRelativeDnsNameAvailability(ctx, input) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "CheckTrafficManagerRelativeDnsNameAvailability", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "CheckTrafficManagerRelativeDnsNameAvailability", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForCheckTrafficManagerRelativeDnsNameAvailability(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "CheckTrafficManagerRelativeDnsNameAvailability", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForCheckTrafficManagerRelativeDnsNameAvailability prepares the CheckTrafficManagerRelativeDnsNameAvailability request. -func (c ProfilesClient) preparerForCheckTrafficManagerRelativeDnsNameAvailability(ctx context.Context, input CheckTrafficManagerRelativeDnsNameAvailabilityParameters) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPost(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath("/providers/Microsoft.Network/checkTrafficManagerNameAvailability"), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForCheckTrafficManagerRelativeDnsNameAvailability handles the response to the CheckTrafficManagerRelativeDnsNameAvailability request. The method always -// closes the http.Response Body. -func (c ProfilesClient) responderForCheckTrafficManagerRelativeDnsNameAvailability(resp *http.Response) (result CheckTrafficManagerRelativeDnsNameAvailabilityOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_createorupdate.go new file mode 100644 index 000000000000..3115bccd056c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_createorupdate.go @@ -0,0 +1,56 @@ +package profiles + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Profile +} + +// CreateOrUpdate ... +func (c ProfilesClient) CreateOrUpdate(ctx context.Context, id TrafficManagerProfileId, input Profile) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_createorupdate_autorest.go deleted file mode 100644 index 0afeb87048f3..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_createorupdate_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package profiles - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - HttpResponse *http.Response - Model *Profile -} - -// CreateOrUpdate ... -func (c ProfilesClient) CreateOrUpdate(ctx context.Context, id TrafficManagerProfileId, input Profile) (result CreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "CreateOrUpdate", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "CreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForCreateOrUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "CreateOrUpdate", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForCreateOrUpdate prepares the CreateOrUpdate request. -func (c ProfilesClient) preparerForCreateOrUpdate(ctx context.Context, id TrafficManagerProfileId, input Profile) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForCreateOrUpdate handles the response to the CreateOrUpdate request. The method always -// closes the http.Response Body. -func (c ProfilesClient) responderForCreateOrUpdate(resp *http.Response) (result CreateOrUpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusCreated, http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_delete.go new file mode 100644 index 000000000000..d571623f0e37 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_delete.go @@ -0,0 +1,52 @@ +package profiles + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *DeleteOperationResult +} + +// Delete ... +func (c ProfilesClient) Delete(ctx context.Context, id TrafficManagerProfileId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_delete_autorest.go deleted file mode 100644 index 9a8483411487..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_delete_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package profiles - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - HttpResponse *http.Response - Model *DeleteOperationResult -} - -// Delete ... -func (c ProfilesClient) Delete(ctx context.Context, id TrafficManagerProfileId) (result DeleteOperationResponse, err error) { - req, err := c.preparerForDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "Delete", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "Delete", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForDelete(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "Delete", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForDelete prepares the Delete request. -func (c ProfilesClient) preparerForDelete(ctx context.Context, id TrafficManagerProfileId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForDelete handles the response to the Delete request. The method always -// closes the http.Response Body. -func (c ProfilesClient) responderForDelete(resp *http.Response) (result DeleteOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_get.go new file mode 100644 index 000000000000..e337bf37736a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_get.go @@ -0,0 +1,51 @@ +package profiles + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Profile +} + +// Get ... +func (c ProfilesClient) Get(ctx context.Context, id TrafficManagerProfileId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_get_autorest.go deleted file mode 100644 index 87e2d5e35704..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_get_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package profiles - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - Model *Profile -} - -// Get ... -func (c ProfilesClient) Get(ctx context.Context, id TrafficManagerProfileId) (result GetOperationResponse, err error) { - req, err := c.preparerForGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "Get", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "Get", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "Get", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGet prepares the Get request. -func (c ProfilesClient) preparerForGet(ctx context.Context, id TrafficManagerProfileId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGet handles the response to the Get request. The method always -// closes the http.Response Body. -func (c ProfilesClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbyresourcegroup.go new file mode 100644 index 000000000000..4e0c5207f505 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbyresourcegroup.go @@ -0,0 +1,53 @@ +package profiles + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByResourceGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ProfileListResult +} + +// ListByResourceGroup ... +func (c ProfilesClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.Network/trafficManagerProfiles", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbyresourcegroup_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbyresourcegroup_autorest.go deleted file mode 100644 index 4366a3089190..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbyresourcegroup_autorest.go +++ /dev/null @@ -1,70 +0,0 @@ -package profiles - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByResourceGroupOperationResponse struct { - HttpResponse *http.Response - Model *ProfileListResult -} - -// ListByResourceGroup ... -func (c ProfilesClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { - req, err := c.preparerForListByResourceGroup(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "ListByResourceGroup", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "ListByResourceGroup", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListByResourceGroup(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "ListByResourceGroup", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForListByResourceGroup prepares the ListByResourceGroup request. -func (c ProfilesClient) preparerForListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.Network/trafficManagerProfiles", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListByResourceGroup handles the response to the ListByResourceGroup request. The method always -// closes the http.Response Body. -func (c ProfilesClient) responderForListByResourceGroup(resp *http.Response) (result ListByResourceGroupOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbysubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbysubscription.go new file mode 100644 index 000000000000..35bd706a53d5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbysubscription.go @@ -0,0 +1,53 @@ +package profiles + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListBySubscriptionOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ProfileListResult +} + +// ListBySubscription ... +func (c ProfilesClient) ListBySubscription(ctx context.Context, id commonids.SubscriptionId) (result ListBySubscriptionOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.Network/trafficManagerProfiles", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbysubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbysubscription_autorest.go deleted file mode 100644 index fbe9ff0da0da..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_listbysubscription_autorest.go +++ /dev/null @@ -1,70 +0,0 @@ -package profiles - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListBySubscriptionOperationResponse struct { - HttpResponse *http.Response - Model *ProfileListResult -} - -// ListBySubscription ... -func (c ProfilesClient) ListBySubscription(ctx context.Context, id commonids.SubscriptionId) (result ListBySubscriptionOperationResponse, err error) { - req, err := c.preparerForListBySubscription(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "ListBySubscription", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "ListBySubscription", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListBySubscription(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "ListBySubscription", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForListBySubscription prepares the ListBySubscription request. -func (c ProfilesClient) preparerForListBySubscription(ctx context.Context, id commonids.SubscriptionId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.Network/trafficManagerProfiles", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListBySubscription handles the response to the ListBySubscription request. The method always -// closes the http.Response Body. -func (c ProfilesClient) responderForListBySubscription(resp *http.Response) (result ListBySubscriptionOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_update.go new file mode 100644 index 000000000000..8c7aeb0535a0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_update.go @@ -0,0 +1,55 @@ +package profiles + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Profile +} + +// Update ... +func (c ProfilesClient) Update(ctx context.Context, id TrafficManagerProfileId, input Profile) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_update_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_update_autorest.go deleted file mode 100644 index 5a86bf294c0e..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/trafficmanager/2018-08-01/profiles/method_update_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package profiles - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type UpdateOperationResponse struct { - HttpResponse *http.Response - Model *Profile -} - -// Update ... -func (c ProfilesClient) Update(ctx context.Context, id TrafficManagerProfileId, input Profile) (result UpdateOperationResponse, err error) { - req, err := c.preparerForUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "Update", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "Update", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "profiles.ProfilesClient", "Update", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForUpdate prepares the Update request. -func (c ProfilesClient) preparerForUpdate(ctx context.Context, id TrafficManagerProfileId, input Profile) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPatch(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForUpdate handles the response to the Update request. The method always -// closes the http.Response Body. -func (c ProfilesClient) responderForUpdate(resp *http.Response) (result UpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/client.go index 5344101cad83..e17c6e475705 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/client.go @@ -4,20 +4,25 @@ package v2023_02_01 // Licensed under the MIT License. See NOTICE.txt in the project root for license information. import ( - "github.com/Azure/go-autorest/autorest" + "fmt" + "github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" ) type Client struct { WebPubSub *webpubsub.WebPubSubClient } -func NewClientWithBaseURI(endpoint string, configureAuthFunc func(c *autorest.Client)) Client { - - webPubSubClient := webpubsub.NewWebPubSubClientWithBaseURI(endpoint) - configureAuthFunc(&webPubSubClient.Client) - - return Client{ - WebPubSub: &webPubSubClient, +func NewClientWithBaseURI(sdkApi sdkEnv.Api, configureFunc func(c *resourcemanager.Client)) (*Client, error) { + webPubSubClient, err := webpubsub.NewWebPubSubClientWithBaseURI(sdkApi) + if err != nil { + return nil, fmt.Errorf("building WebPubSub client: %+v", err) } + configureFunc(webPubSubClient.Client) + + return &Client{ + WebPubSub: webPubSubClient, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/client.go index 2e86ea49bf57..aaf69b3d112f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/client.go @@ -1,18 +1,26 @@ package webpubsub -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type WebPubSubClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewWebPubSubClientWithBaseURI(endpoint string) WebPubSubClient { - return WebPubSubClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewWebPubSubClientWithBaseURI(sdkApi sdkEnv.Api) (*WebPubSubClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "webpubsub", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating WebPubSubClient: %+v", err) } + + return &WebPubSubClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/constants.go index 419b11a6efa5..6278e6111dbf 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/constants.go @@ -1,6 +1,10 @@ package webpubsub -import "strings" +import ( + "encoding/json" + "fmt" + "strings" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. @@ -19,6 +23,19 @@ func PossibleValuesForACLAction() []string { } } +func (s *ACLAction) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseACLAction(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseACLAction(input string) (*ACLAction, error) { vals := map[string]ACLAction{ "allow": ACLActionAllow, @@ -45,6 +62,19 @@ func PossibleValuesForEventListenerEndpointDiscriminator() []string { } } +func (s *EventListenerEndpointDiscriminator) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseEventListenerEndpointDiscriminator(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseEventListenerEndpointDiscriminator(input string) (*EventListenerEndpointDiscriminator, error) { vals := map[string]EventListenerEndpointDiscriminator{ "eventhub": EventListenerEndpointDiscriminatorEventHub, @@ -70,6 +100,19 @@ func PossibleValuesForEventListenerFilterDiscriminator() []string { } } +func (s *EventListenerFilterDiscriminator) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseEventListenerFilterDiscriminator(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseEventListenerFilterDiscriminator(input string) (*EventListenerFilterDiscriminator, error) { vals := map[string]EventListenerFilterDiscriminator{ "eventname": EventListenerFilterDiscriminatorEventName, @@ -99,6 +142,19 @@ func PossibleValuesForKeyType() []string { } } +func (s *KeyType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseKeyType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseKeyType(input string) (*KeyType, error) { vals := map[string]KeyType{ "primary": KeyTypePrimary, @@ -132,6 +188,19 @@ func PossibleValuesForPrivateLinkServiceConnectionStatus() []string { } } +func (s *PrivateLinkServiceConnectionStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parsePrivateLinkServiceConnectionStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parsePrivateLinkServiceConnectionStatus(input string) (*PrivateLinkServiceConnectionStatus, error) { vals := map[string]PrivateLinkServiceConnectionStatus{ "approved": PrivateLinkServiceConnectionStatusApproved, @@ -176,6 +245,19 @@ func PossibleValuesForProvisioningState() []string { } } +func (s *ProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseProvisioningState(input string) (*ProvisioningState, error) { vals := map[string]ProvisioningState{ "canceled": ProvisioningStateCanceled, @@ -213,6 +295,19 @@ func PossibleValuesForScaleType() []string { } } +func (s *ScaleType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseScaleType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseScaleType(input string) (*ScaleType, error) { vals := map[string]ScaleType{ "automatic": ScaleTypeAutomatic, @@ -248,6 +343,19 @@ func PossibleValuesForSharedPrivateLinkResourceStatus() []string { } } +func (s *SharedPrivateLinkResourceStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseSharedPrivateLinkResourceStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseSharedPrivateLinkResourceStatus(input string) (*SharedPrivateLinkResourceStatus, error) { vals := map[string]SharedPrivateLinkResourceStatus{ "approved": SharedPrivateLinkResourceStatusApproved, @@ -279,6 +387,19 @@ func PossibleValuesForUpstreamAuthType() []string { } } +func (s *UpstreamAuthType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseUpstreamAuthType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseUpstreamAuthType(input string) (*UpstreamAuthType, error) { vals := map[string]UpstreamAuthType{ "managedidentity": UpstreamAuthTypeManagedIdentity, @@ -311,6 +432,19 @@ func PossibleValuesForWebPubSubRequestType() []string { } } +func (s *WebPubSubRequestType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseWebPubSubRequestType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseWebPubSubRequestType(input string) (*WebPubSubRequestType, error) { vals := map[string]WebPubSubRequestType{ "clientconnection": WebPubSubRequestTypeClientConnection, @@ -345,6 +479,19 @@ func PossibleValuesForWebPubSubSkuTier() []string { } } +func (s *WebPubSubSkuTier) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseWebPubSubSkuTier(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseWebPubSubSkuTier(input string) (*WebPubSubSkuTier, error) { vals := map[string]WebPubSubSkuTier{ "basic": WebPubSubSkuTierBasic, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_checknameavailability.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_checknameavailability.go new file mode 100644 index 000000000000..3da8b33310f1 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_checknameavailability.go @@ -0,0 +1,56 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CheckNameAvailabilityOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *NameAvailability +} + +// CheckNameAvailability ... +func (c WebPubSubClient) CheckNameAvailability(ctx context.Context, id LocationId, input NameAvailabilityParameters) (result CheckNameAvailabilityOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/checkNameAvailability", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_checknameavailability_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_checknameavailability_autorest.go deleted file mode 100644 index 57bdce7a48cb..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_checknameavailability_autorest.go +++ /dev/null @@ -1,70 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CheckNameAvailabilityOperationResponse struct { - HttpResponse *http.Response - Model *NameAvailability -} - -// CheckNameAvailability ... -func (c WebPubSubClient) CheckNameAvailability(ctx context.Context, id LocationId, input NameAvailabilityParameters) (result CheckNameAvailabilityOperationResponse, err error) { - req, err := c.preparerForCheckNameAvailability(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CheckNameAvailability", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CheckNameAvailability", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForCheckNameAvailability(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CheckNameAvailability", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForCheckNameAvailability prepares the CheckNameAvailability request. -func (c WebPubSubClient) preparerForCheckNameAvailability(ctx context.Context, id LocationId, input NameAvailabilityParameters) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPost(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/checkNameAvailability", id.ID())), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForCheckNameAvailability handles the response to the CheckNameAvailability request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForCheckNameAvailability(resp *http.Response) (result CheckNameAvailabilityOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_createorupdate.go new file mode 100644 index 000000000000..398ab6faff3d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_createorupdate.go @@ -0,0 +1,75 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CreateOrUpdate ... +func (c WebPubSubClient) CreateOrUpdate(ctx context.Context, id WebPubSubId, input WebPubSubResource) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c WebPubSubClient) CreateOrUpdateThenPoll(ctx context.Context, id WebPubSubId, input WebPubSubResource) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_createorupdate_autorest.go deleted file mode 100644 index e21fceac1155..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_createorupdate_autorest.go +++ /dev/null @@ -1,79 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// CreateOrUpdate ... -func (c WebPubSubClient) CreateOrUpdate(ctx context.Context, id WebPubSubId, input WebPubSubResource) (result CreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CreateOrUpdate", nil, "Failure preparing request") - return - } - - result, err = c.senderForCreateOrUpdate(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed -func (c WebPubSubClient) CreateOrUpdateThenPoll(ctx context.Context, id WebPubSubId, input WebPubSubResource) error { - result, err := c.CreateOrUpdate(ctx, id, input) - if err != nil { - return fmt.Errorf("performing CreateOrUpdate: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after CreateOrUpdate: %+v", err) - } - - return nil -} - -// preparerForCreateOrUpdate prepares the CreateOrUpdate request. -func (c WebPubSubClient) preparerForCreateOrUpdate(ctx context.Context, id WebPubSubId, input WebPubSubResource) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForCreateOrUpdate sends the CreateOrUpdate request. The method will close the -// http.Response Body if it receives an error. -func (c WebPubSubClient) senderForCreateOrUpdate(ctx context.Context, req *http.Request) (future CreateOrUpdateOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatescreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatescreateorupdate.go new file mode 100644 index 000000000000..dd6d055b0c5c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatescreateorupdate.go @@ -0,0 +1,74 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomCertificatesCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CustomCertificatesCreateOrUpdate ... +func (c WebPubSubClient) CustomCertificatesCreateOrUpdate(ctx context.Context, id CustomCertificateId, input CustomCertificate) (result CustomCertificatesCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CustomCertificatesCreateOrUpdateThenPoll performs CustomCertificatesCreateOrUpdate then polls until it's completed +func (c WebPubSubClient) CustomCertificatesCreateOrUpdateThenPoll(ctx context.Context, id CustomCertificateId, input CustomCertificate) error { + result, err := c.CustomCertificatesCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CustomCertificatesCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CustomCertificatesCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatescreateorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatescreateorupdate_autorest.go deleted file mode 100644 index f7e0c1a1fbed..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatescreateorupdate_autorest.go +++ /dev/null @@ -1,79 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CustomCertificatesCreateOrUpdateOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// CustomCertificatesCreateOrUpdate ... -func (c WebPubSubClient) CustomCertificatesCreateOrUpdate(ctx context.Context, id CustomCertificateId, input CustomCertificate) (result CustomCertificatesCreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCustomCertificatesCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomCertificatesCreateOrUpdate", nil, "Failure preparing request") - return - } - - result, err = c.senderForCustomCertificatesCreateOrUpdate(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomCertificatesCreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// CustomCertificatesCreateOrUpdateThenPoll performs CustomCertificatesCreateOrUpdate then polls until it's completed -func (c WebPubSubClient) CustomCertificatesCreateOrUpdateThenPoll(ctx context.Context, id CustomCertificateId, input CustomCertificate) error { - result, err := c.CustomCertificatesCreateOrUpdate(ctx, id, input) - if err != nil { - return fmt.Errorf("performing CustomCertificatesCreateOrUpdate: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after CustomCertificatesCreateOrUpdate: %+v", err) - } - - return nil -} - -// preparerForCustomCertificatesCreateOrUpdate prepares the CustomCertificatesCreateOrUpdate request. -func (c WebPubSubClient) preparerForCustomCertificatesCreateOrUpdate(ctx context.Context, id CustomCertificateId, input CustomCertificate) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForCustomCertificatesCreateOrUpdate sends the CustomCertificatesCreateOrUpdate request. The method will close the -// http.Response Body if it receives an error. -func (c WebPubSubClient) senderForCustomCertificatesCreateOrUpdate(ctx context.Context, req *http.Request) (future CustomCertificatesCreateOrUpdateOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesdelete.go new file mode 100644 index 000000000000..3cfa28c039de --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesdelete.go @@ -0,0 +1,47 @@ +package webpubsub + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomCertificatesDeleteOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData +} + +// CustomCertificatesDelete ... +func (c WebPubSubClient) CustomCertificatesDelete(ctx context.Context, id CustomCertificateId) (result CustomCertificatesDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesdelete_autorest.go deleted file mode 100644 index f03cf9396aee..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesdelete_autorest.go +++ /dev/null @@ -1,66 +0,0 @@ -package webpubsub - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CustomCertificatesDeleteOperationResponse struct { - HttpResponse *http.Response -} - -// CustomCertificatesDelete ... -func (c WebPubSubClient) CustomCertificatesDelete(ctx context.Context, id CustomCertificateId) (result CustomCertificatesDeleteOperationResponse, err error) { - req, err := c.preparerForCustomCertificatesDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomCertificatesDelete", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomCertificatesDelete", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForCustomCertificatesDelete(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomCertificatesDelete", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForCustomCertificatesDelete prepares the CustomCertificatesDelete request. -func (c WebPubSubClient) preparerForCustomCertificatesDelete(ctx context.Context, id CustomCertificateId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForCustomCertificatesDelete handles the response to the CustomCertificatesDelete request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForCustomCertificatesDelete(resp *http.Response) (result CustomCertificatesDeleteOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesget.go new file mode 100644 index 000000000000..acb550f2a381 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesget.go @@ -0,0 +1,51 @@ +package webpubsub + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomCertificatesGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *CustomCertificate +} + +// CustomCertificatesGet ... +func (c WebPubSubClient) CustomCertificatesGet(ctx context.Context, id CustomCertificateId) (result CustomCertificatesGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesget_autorest.go deleted file mode 100644 index 41979d76a105..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificatesget_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package webpubsub - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CustomCertificatesGetOperationResponse struct { - HttpResponse *http.Response - Model *CustomCertificate -} - -// CustomCertificatesGet ... -func (c WebPubSubClient) CustomCertificatesGet(ctx context.Context, id CustomCertificateId) (result CustomCertificatesGetOperationResponse, err error) { - req, err := c.preparerForCustomCertificatesGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomCertificatesGet", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomCertificatesGet", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForCustomCertificatesGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomCertificatesGet", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForCustomCertificatesGet prepares the CustomCertificatesGet request. -func (c WebPubSubClient) preparerForCustomCertificatesGet(ctx context.Context, id CustomCertificateId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForCustomCertificatesGet handles the response to the CustomCertificatesGet request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForCustomCertificatesGet(resp *http.Response) (result CustomCertificatesGetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificateslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificateslist.go new file mode 100644 index 000000000000..4406c92b1189 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificateslist.go @@ -0,0 +1,89 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomCertificatesListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]CustomCertificate +} + +type CustomCertificatesListCompleteResult struct { + Items []CustomCertificate +} + +// CustomCertificatesList ... +func (c WebPubSubClient) CustomCertificatesList(ctx context.Context, id WebPubSubId) (result CustomCertificatesListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/customCertificates", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]CustomCertificate `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// CustomCertificatesListComplete retrieves all the results into a single object +func (c WebPubSubClient) CustomCertificatesListComplete(ctx context.Context, id WebPubSubId) (CustomCertificatesListCompleteResult, error) { + return c.CustomCertificatesListCompleteMatchingPredicate(ctx, id, CustomCertificateOperationPredicate{}) +} + +// CustomCertificatesListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c WebPubSubClient) CustomCertificatesListCompleteMatchingPredicate(ctx context.Context, id WebPubSubId, predicate CustomCertificateOperationPredicate) (result CustomCertificatesListCompleteResult, err error) { + items := make([]CustomCertificate, 0) + + resp, err := c.CustomCertificatesList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = CustomCertificatesListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificateslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificateslist_autorest.go deleted file mode 100644 index 058dabda48f4..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customcertificateslist_autorest.go +++ /dev/null @@ -1,186 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CustomCertificatesListOperationResponse struct { - HttpResponse *http.Response - Model *[]CustomCertificate - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (CustomCertificatesListOperationResponse, error) -} - -type CustomCertificatesListCompleteResult struct { - Items []CustomCertificate -} - -func (r CustomCertificatesListOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r CustomCertificatesListOperationResponse) LoadMore(ctx context.Context) (resp CustomCertificatesListOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// CustomCertificatesList ... -func (c WebPubSubClient) CustomCertificatesList(ctx context.Context, id WebPubSubId) (resp CustomCertificatesListOperationResponse, err error) { - req, err := c.preparerForCustomCertificatesList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomCertificatesList", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomCertificatesList", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForCustomCertificatesList(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomCertificatesList", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForCustomCertificatesList prepares the CustomCertificatesList request. -func (c WebPubSubClient) preparerForCustomCertificatesList(ctx context.Context, id WebPubSubId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/customCertificates", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForCustomCertificatesListWithNextLink prepares the CustomCertificatesList request with the given nextLink token. -func (c WebPubSubClient) preparerForCustomCertificatesListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForCustomCertificatesList handles the response to the CustomCertificatesList request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForCustomCertificatesList(resp *http.Response) (result CustomCertificatesListOperationResponse, err error) { - type page struct { - Values []CustomCertificate `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result CustomCertificatesListOperationResponse, err error) { - req, err := c.preparerForCustomCertificatesListWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomCertificatesList", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomCertificatesList", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForCustomCertificatesList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomCertificatesList", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// CustomCertificatesListComplete retrieves all of the results into a single object -func (c WebPubSubClient) CustomCertificatesListComplete(ctx context.Context, id WebPubSubId) (CustomCertificatesListCompleteResult, error) { - return c.CustomCertificatesListCompleteMatchingPredicate(ctx, id, CustomCertificateOperationPredicate{}) -} - -// CustomCertificatesListCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c WebPubSubClient) CustomCertificatesListCompleteMatchingPredicate(ctx context.Context, id WebPubSubId, predicate CustomCertificateOperationPredicate) (resp CustomCertificatesListCompleteResult, err error) { - items := make([]CustomCertificate, 0) - - page, err := c.CustomCertificatesList(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := CustomCertificatesListCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainscreateorupdate.go new file mode 100644 index 000000000000..da0067d2a2e4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainscreateorupdate.go @@ -0,0 +1,73 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomDomainsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CustomDomainsCreateOrUpdate ... +func (c WebPubSubClient) CustomDomainsCreateOrUpdate(ctx context.Context, id CustomDomainId, input CustomDomain) (result CustomDomainsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CustomDomainsCreateOrUpdateThenPoll performs CustomDomainsCreateOrUpdate then polls until it's completed +func (c WebPubSubClient) CustomDomainsCreateOrUpdateThenPoll(ctx context.Context, id CustomDomainId, input CustomDomain) error { + result, err := c.CustomDomainsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CustomDomainsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CustomDomainsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainscreateorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainscreateorupdate_autorest.go deleted file mode 100644 index 7ab78e6c0af3..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainscreateorupdate_autorest.go +++ /dev/null @@ -1,79 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CustomDomainsCreateOrUpdateOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// CustomDomainsCreateOrUpdate ... -func (c WebPubSubClient) CustomDomainsCreateOrUpdate(ctx context.Context, id CustomDomainId, input CustomDomain) (result CustomDomainsCreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCustomDomainsCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomDomainsCreateOrUpdate", nil, "Failure preparing request") - return - } - - result, err = c.senderForCustomDomainsCreateOrUpdate(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomDomainsCreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// CustomDomainsCreateOrUpdateThenPoll performs CustomDomainsCreateOrUpdate then polls until it's completed -func (c WebPubSubClient) CustomDomainsCreateOrUpdateThenPoll(ctx context.Context, id CustomDomainId, input CustomDomain) error { - result, err := c.CustomDomainsCreateOrUpdate(ctx, id, input) - if err != nil { - return fmt.Errorf("performing CustomDomainsCreateOrUpdate: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after CustomDomainsCreateOrUpdate: %+v", err) - } - - return nil -} - -// preparerForCustomDomainsCreateOrUpdate prepares the CustomDomainsCreateOrUpdate request. -func (c WebPubSubClient) preparerForCustomDomainsCreateOrUpdate(ctx context.Context, id CustomDomainId, input CustomDomain) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForCustomDomainsCreateOrUpdate sends the CustomDomainsCreateOrUpdate request. The method will close the -// http.Response Body if it receives an error. -func (c WebPubSubClient) senderForCustomDomainsCreateOrUpdate(ctx context.Context, req *http.Request) (future CustomDomainsCreateOrUpdateOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsdelete.go new file mode 100644 index 000000000000..7636cb2504fc --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsdelete.go @@ -0,0 +1,71 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomDomainsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CustomDomainsDelete ... +func (c WebPubSubClient) CustomDomainsDelete(ctx context.Context, id CustomDomainId) (result CustomDomainsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CustomDomainsDeleteThenPoll performs CustomDomainsDelete then polls until it's completed +func (c WebPubSubClient) CustomDomainsDeleteThenPoll(ctx context.Context, id CustomDomainId) error { + result, err := c.CustomDomainsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing CustomDomainsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CustomDomainsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsdelete_autorest.go deleted file mode 100644 index d96aad4bd5c9..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsdelete_autorest.go +++ /dev/null @@ -1,78 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CustomDomainsDeleteOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// CustomDomainsDelete ... -func (c WebPubSubClient) CustomDomainsDelete(ctx context.Context, id CustomDomainId) (result CustomDomainsDeleteOperationResponse, err error) { - req, err := c.preparerForCustomDomainsDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomDomainsDelete", nil, "Failure preparing request") - return - } - - result, err = c.senderForCustomDomainsDelete(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomDomainsDelete", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// CustomDomainsDeleteThenPoll performs CustomDomainsDelete then polls until it's completed -func (c WebPubSubClient) CustomDomainsDeleteThenPoll(ctx context.Context, id CustomDomainId) error { - result, err := c.CustomDomainsDelete(ctx, id) - if err != nil { - return fmt.Errorf("performing CustomDomainsDelete: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after CustomDomainsDelete: %+v", err) - } - - return nil -} - -// preparerForCustomDomainsDelete prepares the CustomDomainsDelete request. -func (c WebPubSubClient) preparerForCustomDomainsDelete(ctx context.Context, id CustomDomainId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForCustomDomainsDelete sends the CustomDomainsDelete request. The method will close the -// http.Response Body if it receives an error. -func (c WebPubSubClient) senderForCustomDomainsDelete(ctx context.Context, req *http.Request) (future CustomDomainsDeleteOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsget.go new file mode 100644 index 000000000000..090d98e33c16 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsget.go @@ -0,0 +1,51 @@ +package webpubsub + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomDomainsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *CustomDomain +} + +// CustomDomainsGet ... +func (c WebPubSubClient) CustomDomainsGet(ctx context.Context, id CustomDomainId) (result CustomDomainsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsget_autorest.go deleted file mode 100644 index c663498ee513..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainsget_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package webpubsub - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CustomDomainsGetOperationResponse struct { - HttpResponse *http.Response - Model *CustomDomain -} - -// CustomDomainsGet ... -func (c WebPubSubClient) CustomDomainsGet(ctx context.Context, id CustomDomainId) (result CustomDomainsGetOperationResponse, err error) { - req, err := c.preparerForCustomDomainsGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomDomainsGet", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomDomainsGet", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForCustomDomainsGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomDomainsGet", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForCustomDomainsGet prepares the CustomDomainsGet request. -func (c WebPubSubClient) preparerForCustomDomainsGet(ctx context.Context, id CustomDomainId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForCustomDomainsGet handles the response to the CustomDomainsGet request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForCustomDomainsGet(resp *http.Response) (result CustomDomainsGetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainslist.go new file mode 100644 index 000000000000..29614b2a8251 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainslist.go @@ -0,0 +1,89 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomDomainsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]CustomDomain +} + +type CustomDomainsListCompleteResult struct { + Items []CustomDomain +} + +// CustomDomainsList ... +func (c WebPubSubClient) CustomDomainsList(ctx context.Context, id WebPubSubId) (result CustomDomainsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/customDomains", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]CustomDomain `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// CustomDomainsListComplete retrieves all the results into a single object +func (c WebPubSubClient) CustomDomainsListComplete(ctx context.Context, id WebPubSubId) (CustomDomainsListCompleteResult, error) { + return c.CustomDomainsListCompleteMatchingPredicate(ctx, id, CustomDomainOperationPredicate{}) +} + +// CustomDomainsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c WebPubSubClient) CustomDomainsListCompleteMatchingPredicate(ctx context.Context, id WebPubSubId, predicate CustomDomainOperationPredicate) (result CustomDomainsListCompleteResult, err error) { + items := make([]CustomDomain, 0) + + resp, err := c.CustomDomainsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = CustomDomainsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainslist_autorest.go deleted file mode 100644 index 24e1691e5c19..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_customdomainslist_autorest.go +++ /dev/null @@ -1,186 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CustomDomainsListOperationResponse struct { - HttpResponse *http.Response - Model *[]CustomDomain - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (CustomDomainsListOperationResponse, error) -} - -type CustomDomainsListCompleteResult struct { - Items []CustomDomain -} - -func (r CustomDomainsListOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r CustomDomainsListOperationResponse) LoadMore(ctx context.Context) (resp CustomDomainsListOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// CustomDomainsList ... -func (c WebPubSubClient) CustomDomainsList(ctx context.Context, id WebPubSubId) (resp CustomDomainsListOperationResponse, err error) { - req, err := c.preparerForCustomDomainsList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomDomainsList", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomDomainsList", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForCustomDomainsList(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomDomainsList", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForCustomDomainsList prepares the CustomDomainsList request. -func (c WebPubSubClient) preparerForCustomDomainsList(ctx context.Context, id WebPubSubId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/customDomains", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForCustomDomainsListWithNextLink prepares the CustomDomainsList request with the given nextLink token. -func (c WebPubSubClient) preparerForCustomDomainsListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForCustomDomainsList handles the response to the CustomDomainsList request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForCustomDomainsList(resp *http.Response) (result CustomDomainsListOperationResponse, err error) { - type page struct { - Values []CustomDomain `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result CustomDomainsListOperationResponse, err error) { - req, err := c.preparerForCustomDomainsListWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomDomainsList", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomDomainsList", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForCustomDomainsList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "CustomDomainsList", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// CustomDomainsListComplete retrieves all of the results into a single object -func (c WebPubSubClient) CustomDomainsListComplete(ctx context.Context, id WebPubSubId) (CustomDomainsListCompleteResult, error) { - return c.CustomDomainsListCompleteMatchingPredicate(ctx, id, CustomDomainOperationPredicate{}) -} - -// CustomDomainsListCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c WebPubSubClient) CustomDomainsListCompleteMatchingPredicate(ctx context.Context, id WebPubSubId, predicate CustomDomainOperationPredicate) (resp CustomDomainsListCompleteResult, err error) { - items := make([]CustomDomain, 0) - - page, err := c.CustomDomainsList(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := CustomDomainsListCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_delete.go new file mode 100644 index 000000000000..a4d031a8feca --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_delete.go @@ -0,0 +1,71 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c WebPubSubClient) Delete(ctx context.Context, id WebPubSubId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c WebPubSubClient) DeleteThenPoll(ctx context.Context, id WebPubSubId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_delete_autorest.go deleted file mode 100644 index 7f35dcf5f4ef..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_delete_autorest.go +++ /dev/null @@ -1,78 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// Delete ... -func (c WebPubSubClient) Delete(ctx context.Context, id WebPubSubId) (result DeleteOperationResponse, err error) { - req, err := c.preparerForDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "Delete", nil, "Failure preparing request") - return - } - - result, err = c.senderForDelete(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "Delete", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// DeleteThenPoll performs Delete then polls until it's completed -func (c WebPubSubClient) DeleteThenPoll(ctx context.Context, id WebPubSubId) error { - result, err := c.Delete(ctx, id) - if err != nil { - return fmt.Errorf("performing Delete: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after Delete: %+v", err) - } - - return nil -} - -// preparerForDelete prepares the Delete request. -func (c WebPubSubClient) preparerForDelete(ctx context.Context, id WebPubSubId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForDelete sends the Delete request. The method will close the -// http.Response Body if it receives an error. -func (c WebPubSubClient) senderForDelete(ctx context.Context, req *http.Request) (future DeleteOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_get.go new file mode 100644 index 000000000000..2c73f617136d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_get.go @@ -0,0 +1,51 @@ +package webpubsub + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *WebPubSubResource +} + +// Get ... +func (c WebPubSubClient) Get(ctx context.Context, id WebPubSubId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_get_autorest.go deleted file mode 100644 index dba6e5aeceee..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_get_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package webpubsub - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - Model *WebPubSubResource -} - -// Get ... -func (c WebPubSubClient) Get(ctx context.Context, id WebPubSubId) (result GetOperationResponse, err error) { - req, err := c.preparerForGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "Get", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "Get", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "Get", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGet prepares the Get request. -func (c WebPubSubClient) preparerForGet(ctx context.Context, id WebPubSubId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGet handles the response to the Get request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubscreateorupdate.go new file mode 100644 index 000000000000..5c7f1125bb2a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubscreateorupdate.go @@ -0,0 +1,74 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type HubsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// HubsCreateOrUpdate ... +func (c WebPubSubClient) HubsCreateOrUpdate(ctx context.Context, id HubId, input WebPubSubHub) (result HubsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// HubsCreateOrUpdateThenPoll performs HubsCreateOrUpdate then polls until it's completed +func (c WebPubSubClient) HubsCreateOrUpdateThenPoll(ctx context.Context, id HubId, input WebPubSubHub) error { + result, err := c.HubsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing HubsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after HubsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubscreateorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubscreateorupdate_autorest.go deleted file mode 100644 index 9be5ec8cb78b..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubscreateorupdate_autorest.go +++ /dev/null @@ -1,79 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type HubsCreateOrUpdateOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// HubsCreateOrUpdate ... -func (c WebPubSubClient) HubsCreateOrUpdate(ctx context.Context, id HubId, input WebPubSubHub) (result HubsCreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForHubsCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "HubsCreateOrUpdate", nil, "Failure preparing request") - return - } - - result, err = c.senderForHubsCreateOrUpdate(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "HubsCreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// HubsCreateOrUpdateThenPoll performs HubsCreateOrUpdate then polls until it's completed -func (c WebPubSubClient) HubsCreateOrUpdateThenPoll(ctx context.Context, id HubId, input WebPubSubHub) error { - result, err := c.HubsCreateOrUpdate(ctx, id, input) - if err != nil { - return fmt.Errorf("performing HubsCreateOrUpdate: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after HubsCreateOrUpdate: %+v", err) - } - - return nil -} - -// preparerForHubsCreateOrUpdate prepares the HubsCreateOrUpdate request. -func (c WebPubSubClient) preparerForHubsCreateOrUpdate(ctx context.Context, id HubId, input WebPubSubHub) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForHubsCreateOrUpdate sends the HubsCreateOrUpdate request. The method will close the -// http.Response Body if it receives an error. -func (c WebPubSubClient) senderForHubsCreateOrUpdate(ctx context.Context, req *http.Request) (future HubsCreateOrUpdateOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsdelete.go new file mode 100644 index 000000000000..73d78731b242 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsdelete.go @@ -0,0 +1,71 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type HubsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// HubsDelete ... +func (c WebPubSubClient) HubsDelete(ctx context.Context, id HubId) (result HubsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// HubsDeleteThenPoll performs HubsDelete then polls until it's completed +func (c WebPubSubClient) HubsDeleteThenPoll(ctx context.Context, id HubId) error { + result, err := c.HubsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing HubsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after HubsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsdelete_autorest.go deleted file mode 100644 index da74ad5370e9..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsdelete_autorest.go +++ /dev/null @@ -1,78 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type HubsDeleteOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// HubsDelete ... -func (c WebPubSubClient) HubsDelete(ctx context.Context, id HubId) (result HubsDeleteOperationResponse, err error) { - req, err := c.preparerForHubsDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "HubsDelete", nil, "Failure preparing request") - return - } - - result, err = c.senderForHubsDelete(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "HubsDelete", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// HubsDeleteThenPoll performs HubsDelete then polls until it's completed -func (c WebPubSubClient) HubsDeleteThenPoll(ctx context.Context, id HubId) error { - result, err := c.HubsDelete(ctx, id) - if err != nil { - return fmt.Errorf("performing HubsDelete: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after HubsDelete: %+v", err) - } - - return nil -} - -// preparerForHubsDelete prepares the HubsDelete request. -func (c WebPubSubClient) preparerForHubsDelete(ctx context.Context, id HubId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForHubsDelete sends the HubsDelete request. The method will close the -// http.Response Body if it receives an error. -func (c WebPubSubClient) senderForHubsDelete(ctx context.Context, req *http.Request) (future HubsDeleteOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsget.go new file mode 100644 index 000000000000..049f8df8f74a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsget.go @@ -0,0 +1,51 @@ +package webpubsub + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type HubsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *WebPubSubHub +} + +// HubsGet ... +func (c WebPubSubClient) HubsGet(ctx context.Context, id HubId) (result HubsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsget_autorest.go deleted file mode 100644 index 201d1f3d2269..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubsget_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package webpubsub - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type HubsGetOperationResponse struct { - HttpResponse *http.Response - Model *WebPubSubHub -} - -// HubsGet ... -func (c WebPubSubClient) HubsGet(ctx context.Context, id HubId) (result HubsGetOperationResponse, err error) { - req, err := c.preparerForHubsGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "HubsGet", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "HubsGet", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForHubsGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "HubsGet", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForHubsGet prepares the HubsGet request. -func (c WebPubSubClient) preparerForHubsGet(ctx context.Context, id HubId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForHubsGet handles the response to the HubsGet request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForHubsGet(resp *http.Response) (result HubsGetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubslist.go new file mode 100644 index 000000000000..7ca2f476be83 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubslist.go @@ -0,0 +1,89 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type HubsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]WebPubSubHub +} + +type HubsListCompleteResult struct { + Items []WebPubSubHub +} + +// HubsList ... +func (c WebPubSubClient) HubsList(ctx context.Context, id WebPubSubId) (result HubsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/hubs", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]WebPubSubHub `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// HubsListComplete retrieves all the results into a single object +func (c WebPubSubClient) HubsListComplete(ctx context.Context, id WebPubSubId) (HubsListCompleteResult, error) { + return c.HubsListCompleteMatchingPredicate(ctx, id, WebPubSubHubOperationPredicate{}) +} + +// HubsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c WebPubSubClient) HubsListCompleteMatchingPredicate(ctx context.Context, id WebPubSubId, predicate WebPubSubHubOperationPredicate) (result HubsListCompleteResult, err error) { + items := make([]WebPubSubHub, 0) + + resp, err := c.HubsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = HubsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubslist_autorest.go deleted file mode 100644 index ac760eff81e4..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_hubslist_autorest.go +++ /dev/null @@ -1,186 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type HubsListOperationResponse struct { - HttpResponse *http.Response - Model *[]WebPubSubHub - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (HubsListOperationResponse, error) -} - -type HubsListCompleteResult struct { - Items []WebPubSubHub -} - -func (r HubsListOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r HubsListOperationResponse) LoadMore(ctx context.Context) (resp HubsListOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// HubsList ... -func (c WebPubSubClient) HubsList(ctx context.Context, id WebPubSubId) (resp HubsListOperationResponse, err error) { - req, err := c.preparerForHubsList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "HubsList", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "HubsList", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForHubsList(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "HubsList", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForHubsList prepares the HubsList request. -func (c WebPubSubClient) preparerForHubsList(ctx context.Context, id WebPubSubId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/hubs", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForHubsListWithNextLink prepares the HubsList request with the given nextLink token. -func (c WebPubSubClient) preparerForHubsListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForHubsList handles the response to the HubsList request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForHubsList(resp *http.Response) (result HubsListOperationResponse, err error) { - type page struct { - Values []WebPubSubHub `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result HubsListOperationResponse, err error) { - req, err := c.preparerForHubsListWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "HubsList", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "HubsList", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForHubsList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "HubsList", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// HubsListComplete retrieves all of the results into a single object -func (c WebPubSubClient) HubsListComplete(ctx context.Context, id WebPubSubId) (HubsListCompleteResult, error) { - return c.HubsListCompleteMatchingPredicate(ctx, id, WebPubSubHubOperationPredicate{}) -} - -// HubsListCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c WebPubSubClient) HubsListCompleteMatchingPredicate(ctx context.Context, id WebPubSubId, predicate WebPubSubHubOperationPredicate) (resp HubsListCompleteResult, err error) { - items := make([]WebPubSubHub, 0) - - page, err := c.HubsList(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := HubsListCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbyresourcegroup.go new file mode 100644 index 000000000000..7892fa6e8f40 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbyresourcegroup.go @@ -0,0 +1,90 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByResourceGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]WebPubSubResource +} + +type ListByResourceGroupCompleteResult struct { + Items []WebPubSubResource +} + +// ListByResourceGroup ... +func (c WebPubSubClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.SignalRService/webPubSub", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]WebPubSubResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListByResourceGroupComplete retrieves all the results into a single object +func (c WebPubSubClient) ListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (ListByResourceGroupCompleteResult, error) { + return c.ListByResourceGroupCompleteMatchingPredicate(ctx, id, WebPubSubResourceOperationPredicate{}) +} + +// ListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c WebPubSubClient) ListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate WebPubSubResourceOperationPredicate) (result ListByResourceGroupCompleteResult, err error) { + items := make([]WebPubSubResource, 0) + + resp, err := c.ListByResourceGroup(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListByResourceGroupCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbyresourcegroup_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbyresourcegroup_autorest.go deleted file mode 100644 index 6e5e9ee624f8..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbyresourcegroup_autorest.go +++ /dev/null @@ -1,187 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByResourceGroupOperationResponse struct { - HttpResponse *http.Response - Model *[]WebPubSubResource - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (ListByResourceGroupOperationResponse, error) -} - -type ListByResourceGroupCompleteResult struct { - Items []WebPubSubResource -} - -func (r ListByResourceGroupOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r ListByResourceGroupOperationResponse) LoadMore(ctx context.Context) (resp ListByResourceGroupOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// ListByResourceGroup ... -func (c WebPubSubClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (resp ListByResourceGroupOperationResponse, err error) { - req, err := c.preparerForListByResourceGroup(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListByResourceGroup", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListByResourceGroup", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForListByResourceGroup(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListByResourceGroup", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForListByResourceGroup prepares the ListByResourceGroup request. -func (c WebPubSubClient) preparerForListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.SignalRService/webPubSub", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForListByResourceGroupWithNextLink prepares the ListByResourceGroup request with the given nextLink token. -func (c WebPubSubClient) preparerForListByResourceGroupWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListByResourceGroup handles the response to the ListByResourceGroup request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForListByResourceGroup(resp *http.Response) (result ListByResourceGroupOperationResponse, err error) { - type page struct { - Values []WebPubSubResource `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result ListByResourceGroupOperationResponse, err error) { - req, err := c.preparerForListByResourceGroupWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListByResourceGroup", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListByResourceGroup", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListByResourceGroup(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListByResourceGroup", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// ListByResourceGroupComplete retrieves all of the results into a single object -func (c WebPubSubClient) ListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (ListByResourceGroupCompleteResult, error) { - return c.ListByResourceGroupCompleteMatchingPredicate(ctx, id, WebPubSubResourceOperationPredicate{}) -} - -// ListByResourceGroupCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c WebPubSubClient) ListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate WebPubSubResourceOperationPredicate) (resp ListByResourceGroupCompleteResult, err error) { - items := make([]WebPubSubResource, 0) - - page, err := c.ListByResourceGroup(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := ListByResourceGroupCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbysubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbysubscription.go new file mode 100644 index 000000000000..22a7e401e275 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbysubscription.go @@ -0,0 +1,90 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListBySubscriptionOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]WebPubSubResource +} + +type ListBySubscriptionCompleteResult struct { + Items []WebPubSubResource +} + +// ListBySubscription ... +func (c WebPubSubClient) ListBySubscription(ctx context.Context, id commonids.SubscriptionId) (result ListBySubscriptionOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.SignalRService/webPubSub", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]WebPubSubResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListBySubscriptionComplete retrieves all the results into a single object +func (c WebPubSubClient) ListBySubscriptionComplete(ctx context.Context, id commonids.SubscriptionId) (ListBySubscriptionCompleteResult, error) { + return c.ListBySubscriptionCompleteMatchingPredicate(ctx, id, WebPubSubResourceOperationPredicate{}) +} + +// ListBySubscriptionCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c WebPubSubClient) ListBySubscriptionCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate WebPubSubResourceOperationPredicate) (result ListBySubscriptionCompleteResult, err error) { + items := make([]WebPubSubResource, 0) + + resp, err := c.ListBySubscription(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListBySubscriptionCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbysubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbysubscription_autorest.go deleted file mode 100644 index 58dbe5fa5076..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listbysubscription_autorest.go +++ /dev/null @@ -1,187 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListBySubscriptionOperationResponse struct { - HttpResponse *http.Response - Model *[]WebPubSubResource - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (ListBySubscriptionOperationResponse, error) -} - -type ListBySubscriptionCompleteResult struct { - Items []WebPubSubResource -} - -func (r ListBySubscriptionOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r ListBySubscriptionOperationResponse) LoadMore(ctx context.Context) (resp ListBySubscriptionOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// ListBySubscription ... -func (c WebPubSubClient) ListBySubscription(ctx context.Context, id commonids.SubscriptionId) (resp ListBySubscriptionOperationResponse, err error) { - req, err := c.preparerForListBySubscription(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListBySubscription", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListBySubscription", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForListBySubscription(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListBySubscription", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForListBySubscription prepares the ListBySubscription request. -func (c WebPubSubClient) preparerForListBySubscription(ctx context.Context, id commonids.SubscriptionId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.SignalRService/webPubSub", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForListBySubscriptionWithNextLink prepares the ListBySubscription request with the given nextLink token. -func (c WebPubSubClient) preparerForListBySubscriptionWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListBySubscription handles the response to the ListBySubscription request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForListBySubscription(resp *http.Response) (result ListBySubscriptionOperationResponse, err error) { - type page struct { - Values []WebPubSubResource `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result ListBySubscriptionOperationResponse, err error) { - req, err := c.preparerForListBySubscriptionWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListBySubscription", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListBySubscription", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListBySubscription(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListBySubscription", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// ListBySubscriptionComplete retrieves all of the results into a single object -func (c WebPubSubClient) ListBySubscriptionComplete(ctx context.Context, id commonids.SubscriptionId) (ListBySubscriptionCompleteResult, error) { - return c.ListBySubscriptionCompleteMatchingPredicate(ctx, id, WebPubSubResourceOperationPredicate{}) -} - -// ListBySubscriptionCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c WebPubSubClient) ListBySubscriptionCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate WebPubSubResourceOperationPredicate) (resp ListBySubscriptionCompleteResult, err error) { - items := make([]WebPubSubResource, 0) - - page, err := c.ListBySubscription(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := ListBySubscriptionCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listkeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listkeys.go new file mode 100644 index 000000000000..7a5d4d214206 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listkeys.go @@ -0,0 +1,52 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListKeysOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *WebPubSubKeys +} + +// ListKeys ... +func (c WebPubSubClient) ListKeys(ctx context.Context, id WebPubSubId) (result ListKeysOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/listKeys", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listkeys_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listkeys_autorest.go deleted file mode 100644 index 720b9f34e68a..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listkeys_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListKeysOperationResponse struct { - HttpResponse *http.Response - Model *WebPubSubKeys -} - -// ListKeys ... -func (c WebPubSubClient) ListKeys(ctx context.Context, id WebPubSubId) (result ListKeysOperationResponse, err error) { - req, err := c.preparerForListKeys(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListKeys", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListKeys", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListKeys(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListKeys", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForListKeys prepares the ListKeys request. -func (c WebPubSubClient) preparerForListKeys(ctx context.Context, id WebPubSubId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPost(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/listKeys", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListKeys handles the response to the ListKeys request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForListKeys(resp *http.Response) (result ListKeysOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listskus.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listskus.go new file mode 100644 index 000000000000..2669d2321238 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listskus.go @@ -0,0 +1,52 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListSkusOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *SkuList +} + +// ListSkus ... +func (c WebPubSubClient) ListSkus(ctx context.Context, id WebPubSubId) (result ListSkusOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/skus", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listskus_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listskus_autorest.go deleted file mode 100644 index 75385a27e316..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_listskus_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListSkusOperationResponse struct { - HttpResponse *http.Response - Model *SkuList -} - -// ListSkus ... -func (c WebPubSubClient) ListSkus(ctx context.Context, id WebPubSubId) (result ListSkusOperationResponse, err error) { - req, err := c.preparerForListSkus(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListSkus", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListSkus", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListSkus(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "ListSkus", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForListSkus prepares the ListSkus request. -func (c WebPubSubClient) preparerForListSkus(ctx context.Context, id WebPubSubId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/skus", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListSkus handles the response to the ListSkus request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForListSkus(resp *http.Response) (result ListSkusOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsdelete.go new file mode 100644 index 000000000000..8eda7a0abdbe --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsdelete.go @@ -0,0 +1,71 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PrivateEndpointConnectionsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// PrivateEndpointConnectionsDelete ... +func (c WebPubSubClient) PrivateEndpointConnectionsDelete(ctx context.Context, id PrivateEndpointConnectionId) (result PrivateEndpointConnectionsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// PrivateEndpointConnectionsDeleteThenPoll performs PrivateEndpointConnectionsDelete then polls until it's completed +func (c WebPubSubClient) PrivateEndpointConnectionsDeleteThenPoll(ctx context.Context, id PrivateEndpointConnectionId) error { + result, err := c.PrivateEndpointConnectionsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing PrivateEndpointConnectionsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after PrivateEndpointConnectionsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsdelete_autorest.go deleted file mode 100644 index e2e61479e523..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsdelete_autorest.go +++ /dev/null @@ -1,78 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type PrivateEndpointConnectionsDeleteOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// PrivateEndpointConnectionsDelete ... -func (c WebPubSubClient) PrivateEndpointConnectionsDelete(ctx context.Context, id PrivateEndpointConnectionId) (result PrivateEndpointConnectionsDeleteOperationResponse, err error) { - req, err := c.preparerForPrivateEndpointConnectionsDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateEndpointConnectionsDelete", nil, "Failure preparing request") - return - } - - result, err = c.senderForPrivateEndpointConnectionsDelete(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateEndpointConnectionsDelete", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// PrivateEndpointConnectionsDeleteThenPoll performs PrivateEndpointConnectionsDelete then polls until it's completed -func (c WebPubSubClient) PrivateEndpointConnectionsDeleteThenPoll(ctx context.Context, id PrivateEndpointConnectionId) error { - result, err := c.PrivateEndpointConnectionsDelete(ctx, id) - if err != nil { - return fmt.Errorf("performing PrivateEndpointConnectionsDelete: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after PrivateEndpointConnectionsDelete: %+v", err) - } - - return nil -} - -// preparerForPrivateEndpointConnectionsDelete prepares the PrivateEndpointConnectionsDelete request. -func (c WebPubSubClient) preparerForPrivateEndpointConnectionsDelete(ctx context.Context, id PrivateEndpointConnectionId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForPrivateEndpointConnectionsDelete sends the PrivateEndpointConnectionsDelete request. The method will close the -// http.Response Body if it receives an error. -func (c WebPubSubClient) senderForPrivateEndpointConnectionsDelete(ctx context.Context, req *http.Request) (future PrivateEndpointConnectionsDeleteOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsget.go new file mode 100644 index 000000000000..7aa174a940bd --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsget.go @@ -0,0 +1,51 @@ +package webpubsub + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PrivateEndpointConnectionsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *PrivateEndpointConnection +} + +// PrivateEndpointConnectionsGet ... +func (c WebPubSubClient) PrivateEndpointConnectionsGet(ctx context.Context, id PrivateEndpointConnectionId) (result PrivateEndpointConnectionsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsget_autorest.go deleted file mode 100644 index 01679cb955d3..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsget_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package webpubsub - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type PrivateEndpointConnectionsGetOperationResponse struct { - HttpResponse *http.Response - Model *PrivateEndpointConnection -} - -// PrivateEndpointConnectionsGet ... -func (c WebPubSubClient) PrivateEndpointConnectionsGet(ctx context.Context, id PrivateEndpointConnectionId) (result PrivateEndpointConnectionsGetOperationResponse, err error) { - req, err := c.preparerForPrivateEndpointConnectionsGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateEndpointConnectionsGet", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateEndpointConnectionsGet", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForPrivateEndpointConnectionsGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateEndpointConnectionsGet", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForPrivateEndpointConnectionsGet prepares the PrivateEndpointConnectionsGet request. -func (c WebPubSubClient) preparerForPrivateEndpointConnectionsGet(ctx context.Context, id PrivateEndpointConnectionId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForPrivateEndpointConnectionsGet handles the response to the PrivateEndpointConnectionsGet request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForPrivateEndpointConnectionsGet(resp *http.Response) (result PrivateEndpointConnectionsGetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionslist.go new file mode 100644 index 000000000000..809f8b5c5191 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionslist.go @@ -0,0 +1,89 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PrivateEndpointConnectionsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]PrivateEndpointConnection +} + +type PrivateEndpointConnectionsListCompleteResult struct { + Items []PrivateEndpointConnection +} + +// PrivateEndpointConnectionsList ... +func (c WebPubSubClient) PrivateEndpointConnectionsList(ctx context.Context, id WebPubSubId) (result PrivateEndpointConnectionsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/privateEndpointConnections", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]PrivateEndpointConnection `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// PrivateEndpointConnectionsListComplete retrieves all the results into a single object +func (c WebPubSubClient) PrivateEndpointConnectionsListComplete(ctx context.Context, id WebPubSubId) (PrivateEndpointConnectionsListCompleteResult, error) { + return c.PrivateEndpointConnectionsListCompleteMatchingPredicate(ctx, id, PrivateEndpointConnectionOperationPredicate{}) +} + +// PrivateEndpointConnectionsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c WebPubSubClient) PrivateEndpointConnectionsListCompleteMatchingPredicate(ctx context.Context, id WebPubSubId, predicate PrivateEndpointConnectionOperationPredicate) (result PrivateEndpointConnectionsListCompleteResult, err error) { + items := make([]PrivateEndpointConnection, 0) + + resp, err := c.PrivateEndpointConnectionsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = PrivateEndpointConnectionsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionslist_autorest.go deleted file mode 100644 index 1ee816853476..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionslist_autorest.go +++ /dev/null @@ -1,186 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type PrivateEndpointConnectionsListOperationResponse struct { - HttpResponse *http.Response - Model *[]PrivateEndpointConnection - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (PrivateEndpointConnectionsListOperationResponse, error) -} - -type PrivateEndpointConnectionsListCompleteResult struct { - Items []PrivateEndpointConnection -} - -func (r PrivateEndpointConnectionsListOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r PrivateEndpointConnectionsListOperationResponse) LoadMore(ctx context.Context) (resp PrivateEndpointConnectionsListOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// PrivateEndpointConnectionsList ... -func (c WebPubSubClient) PrivateEndpointConnectionsList(ctx context.Context, id WebPubSubId) (resp PrivateEndpointConnectionsListOperationResponse, err error) { - req, err := c.preparerForPrivateEndpointConnectionsList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateEndpointConnectionsList", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateEndpointConnectionsList", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForPrivateEndpointConnectionsList(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateEndpointConnectionsList", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForPrivateEndpointConnectionsList prepares the PrivateEndpointConnectionsList request. -func (c WebPubSubClient) preparerForPrivateEndpointConnectionsList(ctx context.Context, id WebPubSubId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/privateEndpointConnections", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForPrivateEndpointConnectionsListWithNextLink prepares the PrivateEndpointConnectionsList request with the given nextLink token. -func (c WebPubSubClient) preparerForPrivateEndpointConnectionsListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForPrivateEndpointConnectionsList handles the response to the PrivateEndpointConnectionsList request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForPrivateEndpointConnectionsList(resp *http.Response) (result PrivateEndpointConnectionsListOperationResponse, err error) { - type page struct { - Values []PrivateEndpointConnection `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result PrivateEndpointConnectionsListOperationResponse, err error) { - req, err := c.preparerForPrivateEndpointConnectionsListWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateEndpointConnectionsList", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateEndpointConnectionsList", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForPrivateEndpointConnectionsList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateEndpointConnectionsList", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// PrivateEndpointConnectionsListComplete retrieves all of the results into a single object -func (c WebPubSubClient) PrivateEndpointConnectionsListComplete(ctx context.Context, id WebPubSubId) (PrivateEndpointConnectionsListCompleteResult, error) { - return c.PrivateEndpointConnectionsListCompleteMatchingPredicate(ctx, id, PrivateEndpointConnectionOperationPredicate{}) -} - -// PrivateEndpointConnectionsListCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c WebPubSubClient) PrivateEndpointConnectionsListCompleteMatchingPredicate(ctx context.Context, id WebPubSubId, predicate PrivateEndpointConnectionOperationPredicate) (resp PrivateEndpointConnectionsListCompleteResult, err error) { - items := make([]PrivateEndpointConnection, 0) - - page, err := c.PrivateEndpointConnectionsList(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := PrivateEndpointConnectionsListCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsupdate.go new file mode 100644 index 000000000000..362e2af3b49c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsupdate.go @@ -0,0 +1,55 @@ +package webpubsub + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PrivateEndpointConnectionsUpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *PrivateEndpointConnection +} + +// PrivateEndpointConnectionsUpdate ... +func (c WebPubSubClient) PrivateEndpointConnectionsUpdate(ctx context.Context, id PrivateEndpointConnectionId, input PrivateEndpointConnection) (result PrivateEndpointConnectionsUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsupdate_autorest.go deleted file mode 100644 index dd813e5b1479..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privateendpointconnectionsupdate_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package webpubsub - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type PrivateEndpointConnectionsUpdateOperationResponse struct { - HttpResponse *http.Response - Model *PrivateEndpointConnection -} - -// PrivateEndpointConnectionsUpdate ... -func (c WebPubSubClient) PrivateEndpointConnectionsUpdate(ctx context.Context, id PrivateEndpointConnectionId, input PrivateEndpointConnection) (result PrivateEndpointConnectionsUpdateOperationResponse, err error) { - req, err := c.preparerForPrivateEndpointConnectionsUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateEndpointConnectionsUpdate", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateEndpointConnectionsUpdate", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForPrivateEndpointConnectionsUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateEndpointConnectionsUpdate", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForPrivateEndpointConnectionsUpdate prepares the PrivateEndpointConnectionsUpdate request. -func (c WebPubSubClient) preparerForPrivateEndpointConnectionsUpdate(ctx context.Context, id PrivateEndpointConnectionId, input PrivateEndpointConnection) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForPrivateEndpointConnectionsUpdate handles the response to the PrivateEndpointConnectionsUpdate request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForPrivateEndpointConnectionsUpdate(resp *http.Response) (result PrivateEndpointConnectionsUpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privatelinkresourceslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privatelinkresourceslist.go new file mode 100644 index 000000000000..f6b1208e7911 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privatelinkresourceslist.go @@ -0,0 +1,89 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PrivateLinkResourcesListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]PrivateLinkResource +} + +type PrivateLinkResourcesListCompleteResult struct { + Items []PrivateLinkResource +} + +// PrivateLinkResourcesList ... +func (c WebPubSubClient) PrivateLinkResourcesList(ctx context.Context, id WebPubSubId) (result PrivateLinkResourcesListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/privateLinkResources", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]PrivateLinkResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// PrivateLinkResourcesListComplete retrieves all the results into a single object +func (c WebPubSubClient) PrivateLinkResourcesListComplete(ctx context.Context, id WebPubSubId) (PrivateLinkResourcesListCompleteResult, error) { + return c.PrivateLinkResourcesListCompleteMatchingPredicate(ctx, id, PrivateLinkResourceOperationPredicate{}) +} + +// PrivateLinkResourcesListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c WebPubSubClient) PrivateLinkResourcesListCompleteMatchingPredicate(ctx context.Context, id WebPubSubId, predicate PrivateLinkResourceOperationPredicate) (result PrivateLinkResourcesListCompleteResult, err error) { + items := make([]PrivateLinkResource, 0) + + resp, err := c.PrivateLinkResourcesList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = PrivateLinkResourcesListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privatelinkresourceslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privatelinkresourceslist_autorest.go deleted file mode 100644 index 1ddc3adc529b..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_privatelinkresourceslist_autorest.go +++ /dev/null @@ -1,186 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type PrivateLinkResourcesListOperationResponse struct { - HttpResponse *http.Response - Model *[]PrivateLinkResource - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (PrivateLinkResourcesListOperationResponse, error) -} - -type PrivateLinkResourcesListCompleteResult struct { - Items []PrivateLinkResource -} - -func (r PrivateLinkResourcesListOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r PrivateLinkResourcesListOperationResponse) LoadMore(ctx context.Context) (resp PrivateLinkResourcesListOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// PrivateLinkResourcesList ... -func (c WebPubSubClient) PrivateLinkResourcesList(ctx context.Context, id WebPubSubId) (resp PrivateLinkResourcesListOperationResponse, err error) { - req, err := c.preparerForPrivateLinkResourcesList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateLinkResourcesList", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateLinkResourcesList", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForPrivateLinkResourcesList(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateLinkResourcesList", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForPrivateLinkResourcesList prepares the PrivateLinkResourcesList request. -func (c WebPubSubClient) preparerForPrivateLinkResourcesList(ctx context.Context, id WebPubSubId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/privateLinkResources", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForPrivateLinkResourcesListWithNextLink prepares the PrivateLinkResourcesList request with the given nextLink token. -func (c WebPubSubClient) preparerForPrivateLinkResourcesListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForPrivateLinkResourcesList handles the response to the PrivateLinkResourcesList request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForPrivateLinkResourcesList(resp *http.Response) (result PrivateLinkResourcesListOperationResponse, err error) { - type page struct { - Values []PrivateLinkResource `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result PrivateLinkResourcesListOperationResponse, err error) { - req, err := c.preparerForPrivateLinkResourcesListWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateLinkResourcesList", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateLinkResourcesList", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForPrivateLinkResourcesList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "PrivateLinkResourcesList", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// PrivateLinkResourcesListComplete retrieves all of the results into a single object -func (c WebPubSubClient) PrivateLinkResourcesListComplete(ctx context.Context, id WebPubSubId) (PrivateLinkResourcesListCompleteResult, error) { - return c.PrivateLinkResourcesListCompleteMatchingPredicate(ctx, id, PrivateLinkResourceOperationPredicate{}) -} - -// PrivateLinkResourcesListCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c WebPubSubClient) PrivateLinkResourcesListCompleteMatchingPredicate(ctx context.Context, id WebPubSubId, predicate PrivateLinkResourceOperationPredicate) (resp PrivateLinkResourcesListCompleteResult, err error) { - items := make([]PrivateLinkResource, 0) - - page, err := c.PrivateLinkResourcesList(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := PrivateLinkResourcesListCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_regeneratekey.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_regeneratekey.go new file mode 100644 index 000000000000..a2c07d4ca0c4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_regeneratekey.go @@ -0,0 +1,73 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type RegenerateKeyOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// RegenerateKey ... +func (c WebPubSubClient) RegenerateKey(ctx context.Context, id WebPubSubId, input RegenerateKeyParameters) (result RegenerateKeyOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/regenerateKey", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// RegenerateKeyThenPoll performs RegenerateKey then polls until it's completed +func (c WebPubSubClient) RegenerateKeyThenPoll(ctx context.Context, id WebPubSubId, input RegenerateKeyParameters) error { + result, err := c.RegenerateKey(ctx, id, input) + if err != nil { + return fmt.Errorf("performing RegenerateKey: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after RegenerateKey: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_regeneratekey_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_regeneratekey_autorest.go deleted file mode 100644 index f020b148e9dc..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_regeneratekey_autorest.go +++ /dev/null @@ -1,79 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type RegenerateKeyOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// RegenerateKey ... -func (c WebPubSubClient) RegenerateKey(ctx context.Context, id WebPubSubId, input RegenerateKeyParameters) (result RegenerateKeyOperationResponse, err error) { - req, err := c.preparerForRegenerateKey(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "RegenerateKey", nil, "Failure preparing request") - return - } - - result, err = c.senderForRegenerateKey(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "RegenerateKey", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// RegenerateKeyThenPoll performs RegenerateKey then polls until it's completed -func (c WebPubSubClient) RegenerateKeyThenPoll(ctx context.Context, id WebPubSubId, input RegenerateKeyParameters) error { - result, err := c.RegenerateKey(ctx, id, input) - if err != nil { - return fmt.Errorf("performing RegenerateKey: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after RegenerateKey: %+v", err) - } - - return nil -} - -// preparerForRegenerateKey prepares the RegenerateKey request. -func (c WebPubSubClient) preparerForRegenerateKey(ctx context.Context, id WebPubSubId, input RegenerateKeyParameters) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPost(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/regenerateKey", id.ID())), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForRegenerateKey sends the RegenerateKey request. The method will close the -// http.Response Body if it receives an error. -func (c WebPubSubClient) senderForRegenerateKey(ctx context.Context, req *http.Request) (future RegenerateKeyOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_restart.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_restart.go new file mode 100644 index 000000000000..1dccc25a857c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_restart.go @@ -0,0 +1,70 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type RestartOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Restart ... +func (c WebPubSubClient) Restart(ctx context.Context, id WebPubSubId) (result RestartOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/restart", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// RestartThenPoll performs Restart then polls until it's completed +func (c WebPubSubClient) RestartThenPoll(ctx context.Context, id WebPubSubId) error { + result, err := c.Restart(ctx, id) + if err != nil { + return fmt.Errorf("performing Restart: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Restart: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_restart_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_restart_autorest.go deleted file mode 100644 index 472b5281352f..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_restart_autorest.go +++ /dev/null @@ -1,78 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type RestartOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// Restart ... -func (c WebPubSubClient) Restart(ctx context.Context, id WebPubSubId) (result RestartOperationResponse, err error) { - req, err := c.preparerForRestart(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "Restart", nil, "Failure preparing request") - return - } - - result, err = c.senderForRestart(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "Restart", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// RestartThenPoll performs Restart then polls until it's completed -func (c WebPubSubClient) RestartThenPoll(ctx context.Context, id WebPubSubId) error { - result, err := c.Restart(ctx, id) - if err != nil { - return fmt.Errorf("performing Restart: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after Restart: %+v", err) - } - - return nil -} - -// preparerForRestart prepares the Restart request. -func (c WebPubSubClient) preparerForRestart(ctx context.Context, id WebPubSubId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPost(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/restart", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForRestart sends the Restart request. The method will close the -// http.Response Body if it receives an error. -func (c WebPubSubClient) senderForRestart(ctx context.Context, req *http.Request) (future RestartOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcescreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcescreateorupdate.go new file mode 100644 index 000000000000..4c5a9c8db369 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcescreateorupdate.go @@ -0,0 +1,74 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SharedPrivateLinkResourcesCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// SharedPrivateLinkResourcesCreateOrUpdate ... +func (c WebPubSubClient) SharedPrivateLinkResourcesCreateOrUpdate(ctx context.Context, id SharedPrivateLinkResourceId, input SharedPrivateLinkResource) (result SharedPrivateLinkResourcesCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// SharedPrivateLinkResourcesCreateOrUpdateThenPoll performs SharedPrivateLinkResourcesCreateOrUpdate then polls until it's completed +func (c WebPubSubClient) SharedPrivateLinkResourcesCreateOrUpdateThenPoll(ctx context.Context, id SharedPrivateLinkResourceId, input SharedPrivateLinkResource) error { + result, err := c.SharedPrivateLinkResourcesCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing SharedPrivateLinkResourcesCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after SharedPrivateLinkResourcesCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcescreateorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcescreateorupdate_autorest.go deleted file mode 100644 index f1ac76454752..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcescreateorupdate_autorest.go +++ /dev/null @@ -1,79 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type SharedPrivateLinkResourcesCreateOrUpdateOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// SharedPrivateLinkResourcesCreateOrUpdate ... -func (c WebPubSubClient) SharedPrivateLinkResourcesCreateOrUpdate(ctx context.Context, id SharedPrivateLinkResourceId, input SharedPrivateLinkResource) (result SharedPrivateLinkResourcesCreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForSharedPrivateLinkResourcesCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "SharedPrivateLinkResourcesCreateOrUpdate", nil, "Failure preparing request") - return - } - - result, err = c.senderForSharedPrivateLinkResourcesCreateOrUpdate(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "SharedPrivateLinkResourcesCreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// SharedPrivateLinkResourcesCreateOrUpdateThenPoll performs SharedPrivateLinkResourcesCreateOrUpdate then polls until it's completed -func (c WebPubSubClient) SharedPrivateLinkResourcesCreateOrUpdateThenPoll(ctx context.Context, id SharedPrivateLinkResourceId, input SharedPrivateLinkResource) error { - result, err := c.SharedPrivateLinkResourcesCreateOrUpdate(ctx, id, input) - if err != nil { - return fmt.Errorf("performing SharedPrivateLinkResourcesCreateOrUpdate: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after SharedPrivateLinkResourcesCreateOrUpdate: %+v", err) - } - - return nil -} - -// preparerForSharedPrivateLinkResourcesCreateOrUpdate prepares the SharedPrivateLinkResourcesCreateOrUpdate request. -func (c WebPubSubClient) preparerForSharedPrivateLinkResourcesCreateOrUpdate(ctx context.Context, id SharedPrivateLinkResourceId, input SharedPrivateLinkResource) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForSharedPrivateLinkResourcesCreateOrUpdate sends the SharedPrivateLinkResourcesCreateOrUpdate request. The method will close the -// http.Response Body if it receives an error. -func (c WebPubSubClient) senderForSharedPrivateLinkResourcesCreateOrUpdate(ctx context.Context, req *http.Request) (future SharedPrivateLinkResourcesCreateOrUpdateOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesdelete.go new file mode 100644 index 000000000000..c0e985619ed3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesdelete.go @@ -0,0 +1,71 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SharedPrivateLinkResourcesDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// SharedPrivateLinkResourcesDelete ... +func (c WebPubSubClient) SharedPrivateLinkResourcesDelete(ctx context.Context, id SharedPrivateLinkResourceId) (result SharedPrivateLinkResourcesDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// SharedPrivateLinkResourcesDeleteThenPoll performs SharedPrivateLinkResourcesDelete then polls until it's completed +func (c WebPubSubClient) SharedPrivateLinkResourcesDeleteThenPoll(ctx context.Context, id SharedPrivateLinkResourceId) error { + result, err := c.SharedPrivateLinkResourcesDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing SharedPrivateLinkResourcesDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after SharedPrivateLinkResourcesDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesdelete_autorest.go deleted file mode 100644 index 2a78d27a8b85..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesdelete_autorest.go +++ /dev/null @@ -1,78 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type SharedPrivateLinkResourcesDeleteOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// SharedPrivateLinkResourcesDelete ... -func (c WebPubSubClient) SharedPrivateLinkResourcesDelete(ctx context.Context, id SharedPrivateLinkResourceId) (result SharedPrivateLinkResourcesDeleteOperationResponse, err error) { - req, err := c.preparerForSharedPrivateLinkResourcesDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "SharedPrivateLinkResourcesDelete", nil, "Failure preparing request") - return - } - - result, err = c.senderForSharedPrivateLinkResourcesDelete(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "SharedPrivateLinkResourcesDelete", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// SharedPrivateLinkResourcesDeleteThenPoll performs SharedPrivateLinkResourcesDelete then polls until it's completed -func (c WebPubSubClient) SharedPrivateLinkResourcesDeleteThenPoll(ctx context.Context, id SharedPrivateLinkResourceId) error { - result, err := c.SharedPrivateLinkResourcesDelete(ctx, id) - if err != nil { - return fmt.Errorf("performing SharedPrivateLinkResourcesDelete: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after SharedPrivateLinkResourcesDelete: %+v", err) - } - - return nil -} - -// preparerForSharedPrivateLinkResourcesDelete prepares the SharedPrivateLinkResourcesDelete request. -func (c WebPubSubClient) preparerForSharedPrivateLinkResourcesDelete(ctx context.Context, id SharedPrivateLinkResourceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForSharedPrivateLinkResourcesDelete sends the SharedPrivateLinkResourcesDelete request. The method will close the -// http.Response Body if it receives an error. -func (c WebPubSubClient) senderForSharedPrivateLinkResourcesDelete(ctx context.Context, req *http.Request) (future SharedPrivateLinkResourcesDeleteOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesget.go new file mode 100644 index 000000000000..7743c14dc687 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesget.go @@ -0,0 +1,51 @@ +package webpubsub + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SharedPrivateLinkResourcesGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *SharedPrivateLinkResource +} + +// SharedPrivateLinkResourcesGet ... +func (c WebPubSubClient) SharedPrivateLinkResourcesGet(ctx context.Context, id SharedPrivateLinkResourceId) (result SharedPrivateLinkResourcesGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesget_autorest.go deleted file mode 100644 index 8ad0ec32f178..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourcesget_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package webpubsub - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type SharedPrivateLinkResourcesGetOperationResponse struct { - HttpResponse *http.Response - Model *SharedPrivateLinkResource -} - -// SharedPrivateLinkResourcesGet ... -func (c WebPubSubClient) SharedPrivateLinkResourcesGet(ctx context.Context, id SharedPrivateLinkResourceId) (result SharedPrivateLinkResourcesGetOperationResponse, err error) { - req, err := c.preparerForSharedPrivateLinkResourcesGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "SharedPrivateLinkResourcesGet", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "SharedPrivateLinkResourcesGet", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForSharedPrivateLinkResourcesGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "SharedPrivateLinkResourcesGet", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForSharedPrivateLinkResourcesGet prepares the SharedPrivateLinkResourcesGet request. -func (c WebPubSubClient) preparerForSharedPrivateLinkResourcesGet(ctx context.Context, id SharedPrivateLinkResourceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForSharedPrivateLinkResourcesGet handles the response to the SharedPrivateLinkResourcesGet request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForSharedPrivateLinkResourcesGet(resp *http.Response) (result SharedPrivateLinkResourcesGetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourceslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourceslist.go new file mode 100644 index 000000000000..59f8a1161a39 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourceslist.go @@ -0,0 +1,89 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SharedPrivateLinkResourcesListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]SharedPrivateLinkResource +} + +type SharedPrivateLinkResourcesListCompleteResult struct { + Items []SharedPrivateLinkResource +} + +// SharedPrivateLinkResourcesList ... +func (c WebPubSubClient) SharedPrivateLinkResourcesList(ctx context.Context, id WebPubSubId) (result SharedPrivateLinkResourcesListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/sharedPrivateLinkResources", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]SharedPrivateLinkResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// SharedPrivateLinkResourcesListComplete retrieves all the results into a single object +func (c WebPubSubClient) SharedPrivateLinkResourcesListComplete(ctx context.Context, id WebPubSubId) (SharedPrivateLinkResourcesListCompleteResult, error) { + return c.SharedPrivateLinkResourcesListCompleteMatchingPredicate(ctx, id, SharedPrivateLinkResourceOperationPredicate{}) +} + +// SharedPrivateLinkResourcesListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c WebPubSubClient) SharedPrivateLinkResourcesListCompleteMatchingPredicate(ctx context.Context, id WebPubSubId, predicate SharedPrivateLinkResourceOperationPredicate) (result SharedPrivateLinkResourcesListCompleteResult, err error) { + items := make([]SharedPrivateLinkResource, 0) + + resp, err := c.SharedPrivateLinkResourcesList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = SharedPrivateLinkResourcesListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourceslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourceslist_autorest.go deleted file mode 100644 index 3210645f02c9..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_sharedprivatelinkresourceslist_autorest.go +++ /dev/null @@ -1,186 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type SharedPrivateLinkResourcesListOperationResponse struct { - HttpResponse *http.Response - Model *[]SharedPrivateLinkResource - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (SharedPrivateLinkResourcesListOperationResponse, error) -} - -type SharedPrivateLinkResourcesListCompleteResult struct { - Items []SharedPrivateLinkResource -} - -func (r SharedPrivateLinkResourcesListOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r SharedPrivateLinkResourcesListOperationResponse) LoadMore(ctx context.Context) (resp SharedPrivateLinkResourcesListOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// SharedPrivateLinkResourcesList ... -func (c WebPubSubClient) SharedPrivateLinkResourcesList(ctx context.Context, id WebPubSubId) (resp SharedPrivateLinkResourcesListOperationResponse, err error) { - req, err := c.preparerForSharedPrivateLinkResourcesList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "SharedPrivateLinkResourcesList", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "SharedPrivateLinkResourcesList", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForSharedPrivateLinkResourcesList(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "SharedPrivateLinkResourcesList", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForSharedPrivateLinkResourcesList prepares the SharedPrivateLinkResourcesList request. -func (c WebPubSubClient) preparerForSharedPrivateLinkResourcesList(ctx context.Context, id WebPubSubId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/sharedPrivateLinkResources", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForSharedPrivateLinkResourcesListWithNextLink prepares the SharedPrivateLinkResourcesList request with the given nextLink token. -func (c WebPubSubClient) preparerForSharedPrivateLinkResourcesListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForSharedPrivateLinkResourcesList handles the response to the SharedPrivateLinkResourcesList request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForSharedPrivateLinkResourcesList(resp *http.Response) (result SharedPrivateLinkResourcesListOperationResponse, err error) { - type page struct { - Values []SharedPrivateLinkResource `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result SharedPrivateLinkResourcesListOperationResponse, err error) { - req, err := c.preparerForSharedPrivateLinkResourcesListWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "SharedPrivateLinkResourcesList", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "SharedPrivateLinkResourcesList", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForSharedPrivateLinkResourcesList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "SharedPrivateLinkResourcesList", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// SharedPrivateLinkResourcesListComplete retrieves all of the results into a single object -func (c WebPubSubClient) SharedPrivateLinkResourcesListComplete(ctx context.Context, id WebPubSubId) (SharedPrivateLinkResourcesListCompleteResult, error) { - return c.SharedPrivateLinkResourcesListCompleteMatchingPredicate(ctx, id, SharedPrivateLinkResourceOperationPredicate{}) -} - -// SharedPrivateLinkResourcesListCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c WebPubSubClient) SharedPrivateLinkResourcesListCompleteMatchingPredicate(ctx context.Context, id WebPubSubId, predicate SharedPrivateLinkResourceOperationPredicate) (resp SharedPrivateLinkResourcesListCompleteResult, err error) { - items := make([]SharedPrivateLinkResource, 0) - - page, err := c.SharedPrivateLinkResourcesList(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := SharedPrivateLinkResourcesListCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_update.go new file mode 100644 index 000000000000..ffef27ed511b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_update.go @@ -0,0 +1,74 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Update ... +func (c WebPubSubClient) Update(ctx context.Context, id WebPubSubId, input WebPubSubResource) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// UpdateThenPoll performs Update then polls until it's completed +func (c WebPubSubClient) UpdateThenPoll(ctx context.Context, id WebPubSubId, input WebPubSubResource) error { + result, err := c.Update(ctx, id, input) + if err != nil { + return fmt.Errorf("performing Update: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Update: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_update_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_update_autorest.go deleted file mode 100644 index 849c6e6b9a6f..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_update_autorest.go +++ /dev/null @@ -1,79 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type UpdateOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// Update ... -func (c WebPubSubClient) Update(ctx context.Context, id WebPubSubId, input WebPubSubResource) (result UpdateOperationResponse, err error) { - req, err := c.preparerForUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "Update", nil, "Failure preparing request") - return - } - - result, err = c.senderForUpdate(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "Update", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// UpdateThenPoll performs Update then polls until it's completed -func (c WebPubSubClient) UpdateThenPoll(ctx context.Context, id WebPubSubId, input WebPubSubResource) error { - result, err := c.Update(ctx, id, input) - if err != nil { - return fmt.Errorf("performing Update: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after Update: %+v", err) - } - - return nil -} - -// preparerForUpdate prepares the Update request. -func (c WebPubSubClient) preparerForUpdate(ctx context.Context, id WebPubSubId, input WebPubSubResource) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPatch(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForUpdate sends the Update request. The method will close the -// http.Response Body if it receives an error. -func (c WebPubSubClient) senderForUpdate(ctx context.Context, req *http.Request) (future UpdateOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_usageslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_usageslist.go new file mode 100644 index 000000000000..e6b95d5b5275 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_usageslist.go @@ -0,0 +1,89 @@ +package webpubsub + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UsagesListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]SignalRServiceUsage +} + +type UsagesListCompleteResult struct { + Items []SignalRServiceUsage +} + +// UsagesList ... +func (c WebPubSubClient) UsagesList(ctx context.Context, id LocationId) (result UsagesListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/usages", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]SignalRServiceUsage `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// UsagesListComplete retrieves all the results into a single object +func (c WebPubSubClient) UsagesListComplete(ctx context.Context, id LocationId) (UsagesListCompleteResult, error) { + return c.UsagesListCompleteMatchingPredicate(ctx, id, SignalRServiceUsageOperationPredicate{}) +} + +// UsagesListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c WebPubSubClient) UsagesListCompleteMatchingPredicate(ctx context.Context, id LocationId, predicate SignalRServiceUsageOperationPredicate) (result UsagesListCompleteResult, err error) { + items := make([]SignalRServiceUsage, 0) + + resp, err := c.UsagesList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = UsagesListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_usageslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_usageslist_autorest.go deleted file mode 100644 index 7d4593e77ff0..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/method_usageslist_autorest.go +++ /dev/null @@ -1,186 +0,0 @@ -package webpubsub - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type UsagesListOperationResponse struct { - HttpResponse *http.Response - Model *[]SignalRServiceUsage - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (UsagesListOperationResponse, error) -} - -type UsagesListCompleteResult struct { - Items []SignalRServiceUsage -} - -func (r UsagesListOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r UsagesListOperationResponse) LoadMore(ctx context.Context) (resp UsagesListOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// UsagesList ... -func (c WebPubSubClient) UsagesList(ctx context.Context, id LocationId) (resp UsagesListOperationResponse, err error) { - req, err := c.preparerForUsagesList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "UsagesList", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "UsagesList", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForUsagesList(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "UsagesList", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForUsagesList prepares the UsagesList request. -func (c WebPubSubClient) preparerForUsagesList(ctx context.Context, id LocationId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/usages", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForUsagesListWithNextLink prepares the UsagesList request with the given nextLink token. -func (c WebPubSubClient) preparerForUsagesListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForUsagesList handles the response to the UsagesList request. The method always -// closes the http.Response Body. -func (c WebPubSubClient) responderForUsagesList(resp *http.Response) (result UsagesListOperationResponse, err error) { - type page struct { - Values []SignalRServiceUsage `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result UsagesListOperationResponse, err error) { - req, err := c.preparerForUsagesListWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "UsagesList", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "UsagesList", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForUsagesList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "webpubsub.WebPubSubClient", "UsagesList", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// UsagesListComplete retrieves all of the results into a single object -func (c WebPubSubClient) UsagesListComplete(ctx context.Context, id LocationId) (UsagesListCompleteResult, error) { - return c.UsagesListCompleteMatchingPredicate(ctx, id, SignalRServiceUsageOperationPredicate{}) -} - -// UsagesListCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c WebPubSubClient) UsagesListCompleteMatchingPredicate(ctx context.Context, id LocationId, predicate SignalRServiceUsageOperationPredicate) (resp UsagesListCompleteResult, err error) { - items := make([]SignalRServiceUsage, 0) - - page, err := c.UsagesList(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := UsagesListCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/poller_lro.go b/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/poller_lro.go index 50dc7595be36..8e6898d3edb1 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/poller_lro.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/poller_lro.go @@ -183,6 +183,10 @@ func (p *longRunningOperationPoller) Poll(ctx context.Context) (result *pollers. "newReplicaGroup": pollers.PollingStatusInProgress, // AnalysisServices @ 2017-08-01 (Servers) returns `Provisioning` during Creation "Provisioning": pollers.PollingStatusInProgress, + // AnalysisServices @ 2017-08-01 (Servers Resume) returns `Resuming` during Update + "Resuming": pollers.PollingStatusInProgress, + // AnalysisServices @ 2017-08-01 (Servers Suspend) returns `Scaling` during Update + "Scaling": pollers.PollingStatusInProgress, // HealthBot @ 2022-08-08 (HealthBots CreateOrUpdate) returns `Working` during Creation "Working": pollers.PollingStatusInProgress, } diff --git a/vendor/modules.txt b/vendor/modules.txt index 4c2b36ed1a18..8cd70d0ab654 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -127,7 +127,7 @@ github.com/hashicorp/go-azure-helpers/resourcemanager/tags github.com/hashicorp/go-azure-helpers/resourcemanager/zones github.com/hashicorp/go-azure-helpers/sender github.com/hashicorp/go-azure-helpers/storage -# github.com/hashicorp/go-azure-sdk v0.20230815.1165905 +# github.com/hashicorp/go-azure-sdk v0.20230823.1052657 ## explicit; go 1.19 github.com/hashicorp/go-azure-sdk/resource-manager/aad/2021-05-01/domainservices github.com/hashicorp/go-azure-sdk/resource-manager/aadb2c/2021-04-01-preview From 839809d6b8bf972e5006e17bdf52780ff2dc8d38 Mon Sep 17 00:00:00 2001 From: kt Date: Wed, 23 Aug 2023 18:30:06 -0700 Subject: [PATCH 019/336] Update CHANGELOG.md #22579 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index eae3f64b8d33..a434a9c585bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ FEATURES: ENHANCEMENTS: +* `trafficmanager`: updating to use the transport layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` [GH-22579] +* `webpubsub`: updating to use the transport layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` [GH-22579] * `automation`: upgrade remaining resources to `2022-08-08` [GH-22989] * `azurerm_storage_management_policy` - move to `hashicorp/go-azure-sdk` [GH-23035] * Data Source: `azurerm_disk_encryption_set` - add support for the `identity` block [GH-23005] From e1bd288bef8e88e17419ebdfdf056e849cce5db2 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Thu, 24 Aug 2023 03:46:58 +0200 Subject: [PATCH 020/336] including #23058 There's a cost to using this, but right now the acctests take 9 hours since these have to be run sequentially - so using the standard sku makes more sense here --- .teamcity/components/settings.kt | 4 -- .../signalr/signalr_service_resource_test.go | 58 +++++-------------- 2 files changed, 15 insertions(+), 47 deletions(-) diff --git a/.teamcity/components/settings.kt b/.teamcity/components/settings.kt index 673fbdaf9253..ceae71c13f27 100644 --- a/.teamcity/components/settings.kt +++ b/.teamcity/components/settings.kt @@ -155,10 +155,6 @@ var serviceTestConfigurationOverrides = mapOf( // execute too quickly as we run out of namespaces in the sub "servicebus" to testConfiguration(parallelism = 10), - // SignalR only allows provisioning one "Free" instance at a time, - // which is used in multiple tests - "signalr" to testConfiguration(parallelism = 1), - // Spring Cloud only allows a max of 10 provisioned "springcloud" to testConfiguration(parallelism = 5), diff --git a/internal/services/signalr/signalr_service_resource_test.go b/internal/services/signalr/signalr_service_resource_test.go index 8b517c66f3f4..36636cfa46af 100644 --- a/internal/services/signalr/signalr_service_resource_test.go +++ b/internal/services/signalr/signalr_service_resource_test.go @@ -28,8 +28,6 @@ func TestAccSignalRService_basic(t *testing.T) { Config: r.basic(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("sku.0.name").HasValue("Free_F1"), - check.That(data.ResourceName).Key("sku.0.capacity").HasValue("1"), check.That(data.ResourceName).Key("hostname").Exists(), check.That(data.ResourceName).Key("ip_address").Exists(), check.That(data.ResourceName).Key("public_port").Exists(), @@ -119,8 +117,6 @@ func TestAccSignalRService_premium(t *testing.T) { Config: r.premium(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("sku.0.name").HasValue("Premium_P1"), - check.That(data.ResourceName).Key("sku.0.capacity").HasValue("1"), check.That(data.ResourceName).Key("hostname").Exists(), check.That(data.ResourceName).Key("ip_address").Exists(), check.That(data.ResourceName).Key("public_port").Exists(), @@ -144,8 +140,6 @@ func TestAccSignalRService_requiresImport(t *testing.T) { Config: r.basic(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("sku.0.name").HasValue("Free_F1"), - check.That(data.ResourceName).Key("sku.0.capacity").HasValue("1"), check.That(data.ResourceName).Key("hostname").Exists(), check.That(data.ResourceName).Key("ip_address").Exists(), check.That(data.ResourceName).Key("public_port").Exists(), @@ -169,8 +163,6 @@ func TestAccSignalRService_standard(t *testing.T) { Config: r.standardWithCapacity(data, 1), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("sku.0.name").HasValue("Standard_S1"), - check.That(data.ResourceName).Key("sku.0.capacity").HasValue("1"), check.That(data.ResourceName).Key("hostname").Exists(), check.That(data.ResourceName).Key("ip_address").Exists(), check.That(data.ResourceName).Key("public_port").Exists(), @@ -194,8 +186,6 @@ func TestAccSignalRService_standardWithCap2(t *testing.T) { Config: r.standardWithCapacity(data, 2), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("sku.0.name").HasValue("Standard_S1"), - check.That(data.ResourceName).Key("sku.0.capacity").HasValue("2"), check.That(data.ResourceName).Key("hostname").Exists(), check.That(data.ResourceName).Key("ip_address").Exists(), check.That(data.ResourceName).Key("public_port").Exists(), @@ -219,8 +209,6 @@ func TestAccSignalRService_skuUpdate(t *testing.T) { Config: r.basic(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("sku.0.name").HasValue("Free_F1"), - check.That(data.ResourceName).Key("sku.0.capacity").HasValue("1"), check.That(data.ResourceName).Key("hostname").Exists(), check.That(data.ResourceName).Key("ip_address").Exists(), check.That(data.ResourceName).Key("public_port").Exists(), @@ -235,8 +223,6 @@ func TestAccSignalRService_skuUpdate(t *testing.T) { Config: r.standardWithCapacity(data, 1), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("sku.0.name").HasValue("Standard_S1"), - check.That(data.ResourceName).Key("sku.0.capacity").HasValue("1"), check.That(data.ResourceName).Key("hostname").Exists(), check.That(data.ResourceName).Key("ip_address").Exists(), check.That(data.ResourceName).Key("public_port").Exists(), @@ -251,8 +237,6 @@ func TestAccSignalRService_skuUpdate(t *testing.T) { Config: r.basic(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("sku.0.name").HasValue("Free_F1"), - check.That(data.ResourceName).Key("sku.0.capacity").HasValue("1"), check.That(data.ResourceName).Key("hostname").Exists(), check.That(data.ResourceName).Key("ip_address").Exists(), check.That(data.ResourceName).Key("public_port").Exists(), @@ -275,8 +259,6 @@ func TestAccSignalRService_capacityUpdate(t *testing.T) { Config: r.standardWithCapacity(data, 1), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("sku.0.name").HasValue("Standard_S1"), - check.That(data.ResourceName).Key("sku.0.capacity").HasValue("1"), check.That(data.ResourceName).Key("hostname").Exists(), check.That(data.ResourceName).Key("ip_address").Exists(), check.That(data.ResourceName).Key("public_port").Exists(), @@ -291,8 +273,6 @@ func TestAccSignalRService_capacityUpdate(t *testing.T) { Config: r.standardWithCapacity(data, 5), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("sku.0.name").HasValue("Standard_S1"), - check.That(data.ResourceName).Key("sku.0.capacity").HasValue("5"), check.That(data.ResourceName).Key("hostname").Exists(), check.That(data.ResourceName).Key("ip_address").Exists(), check.That(data.ResourceName).Key("public_port").Exists(), @@ -307,8 +287,6 @@ func TestAccSignalRService_capacityUpdate(t *testing.T) { Config: r.standardWithCapacity(data, 1), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("sku.0.name").HasValue("Standard_S1"), - check.That(data.ResourceName).Key("sku.0.capacity").HasValue("1"), check.That(data.ResourceName).Key("hostname").Exists(), check.That(data.ResourceName).Key("ip_address").Exists(), check.That(data.ResourceName).Key("public_port").Exists(), @@ -331,8 +309,6 @@ func TestAccSignalRService_skuAndCapacityUpdate(t *testing.T) { Config: r.basic(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("sku.0.name").HasValue("Free_F1"), - check.That(data.ResourceName).Key("sku.0.capacity").HasValue("1"), check.That(data.ResourceName).Key("hostname").Exists(), check.That(data.ResourceName).Key("ip_address").Exists(), check.That(data.ResourceName).Key("public_port").Exists(), @@ -347,8 +323,6 @@ func TestAccSignalRService_skuAndCapacityUpdate(t *testing.T) { Config: r.standardWithCapacity(data, 2), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("sku.0.name").HasValue("Standard_S1"), - check.That(data.ResourceName).Key("sku.0.capacity").HasValue("2"), check.That(data.ResourceName).Key("hostname").Exists(), check.That(data.ResourceName).Key("ip_address").Exists(), check.That(data.ResourceName).Key("public_port").Exists(), @@ -363,8 +337,6 @@ func TestAccSignalRService_skuAndCapacityUpdate(t *testing.T) { Config: r.basic(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("sku.0.name").HasValue("Free_F1"), - check.That(data.ResourceName).Key("sku.0.capacity").HasValue("1"), check.That(data.ResourceName).Key("hostname").Exists(), check.That(data.ResourceName).Key("ip_address").Exists(), check.That(data.ResourceName).Key("public_port").Exists(), @@ -606,7 +578,7 @@ resource "azurerm_signalr_service" "test" { resource_group_name = azurerm_resource_group.test.name sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } } @@ -630,7 +602,7 @@ resource "azurerm_signalr_service" "test" { resource_group_name = azurerm_resource_group.test.name sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } @@ -666,7 +638,7 @@ resource "azurerm_signalr_service" "test" { resource_group_name = azurerm_resource_group.test.name sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } @@ -701,7 +673,7 @@ resource "azurerm_signalr_service" "test" { resource_group_name = azurerm_resource_group.test.name sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } @@ -752,7 +724,7 @@ resource "azurerm_signalr_service" "import" { resource_group_name = azurerm_signalr_service.test.resource_group_name sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } } @@ -800,7 +772,7 @@ resource "azurerm_signalr_service" "test" { resource_group_name = azurerm_resource_group.test.name sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } @@ -831,7 +803,7 @@ resource "azurerm_signalr_service" "test" { resource_group_name = azurerm_resource_group.test.name sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } @@ -859,7 +831,7 @@ resource "azurerm_signalr_service" "test" { resource_group_name = azurerm_resource_group.test.name sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } @@ -921,7 +893,7 @@ resource "azurerm_signalr_service" "test" { resource_group_name = azurerm_resource_group.test.name sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } @@ -964,7 +936,7 @@ resource "azurerm_signalr_service" "test" { resource_group_name = azurerm_resource_group.test.name sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } @@ -1024,7 +996,7 @@ resource "azurerm_signalr_service" "test" { resource_group_name = azurerm_resource_group.test.name sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } tags = { @@ -1057,7 +1029,7 @@ resource "azurerm_signalr_service" "test" { } sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } } @@ -1088,7 +1060,7 @@ resource "azurerm_signalr_service" "test" { } sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } } @@ -1115,7 +1087,7 @@ resource "azurerm_signalr_service" "test" { connectivity_logs_enabled = true sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } } @@ -1143,7 +1115,7 @@ resource "azurerm_signalr_service" "test" { http_request_logs_enabled = true sku { - name = "Free_F1" + name = "Standard_S1" capacity = 1 } } From 72a4967838f4e7afaffe305ddfe140b9823b34dc Mon Sep 17 00:00:00 2001 From: Zhenhua Hu Date: Thu, 24 Aug 2023 11:26:05 +0800 Subject: [PATCH 021/336] including #23061 * add code * resolve comments --- ...le_assignment_marketplace_resource_test.go | 143 ++++++++++++++---- 1 file changed, 112 insertions(+), 31 deletions(-) diff --git a/internal/services/authorization/role_assignment_marketplace_resource_test.go b/internal/services/authorization/role_assignment_marketplace_resource_test.go index 74bbb7c1f329..a4dad3759fd5 100644 --- a/internal/services/authorization/role_assignment_marketplace_resource_test.go +++ b/internal/services/authorization/role_assignment_marketplace_resource_test.go @@ -4,14 +4,19 @@ import ( "context" "fmt" "testing" + "time" "github.com/google/uuid" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-sdk/resource-manager/authorization/2022-04-01/roleassignments" + "github.com/hashicorp/go-azure-sdk/resource-manager/authorization/2022-04-01/roledefinitions" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/testclient" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/services/authorization" "github.com/hashicorp/terraform-provider-azurerm/internal/services/authorization/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" @@ -22,10 +27,13 @@ type RoleAssignmentMarketplaceResource struct{} func TestAccRoleAssignmentMarketplace_emptyName(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_marketplace_role_assignment", "test") r := RoleAssignmentMarketplaceResource{} + roleName := "Reader" data.ResourceTest(t, r, []acceptance.TestStep{ { - Config: r.emptyNameConfig(), + // Last error may cause the role already assigned. Need to delete it before a new test. + PreConfig: r.deleteAssignedRole(t, roleName), + Config: r.emptyNameConfig(roleName), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), check.That(data.ResourceName).Key("name").Exists(), @@ -40,14 +48,17 @@ func TestAccRoleAssignmentMarketplace_roleName(t *testing.T) { id := uuid.New().String() r := RoleAssignmentMarketplaceResource{} + roleName := "Log Analytics Reader" data.ResourceSequentialTest(t, r, []acceptance.TestStep{ { - Config: r.roleNameConfig(id), + // Last error may cause the role already assigned. Need to delete it before a new test. + PreConfig: r.deleteAssignedRole(t, roleName), + Config: r.roleNameConfig(id, roleName), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), check.That(data.ResourceName).Key("role_definition_id").Exists(), - check.That(data.ResourceName).Key("role_definition_name").HasValue("Log Analytics Reader"), + check.That(data.ResourceName).Key("role_definition_name").HasValue(roleName), ), }, data.ImportStep("skip_service_principal_aad_check"), @@ -59,18 +70,21 @@ func TestAccRoleAssignmentMarketplace_requiresImport(t *testing.T) { id := uuid.New().String() r := RoleAssignmentMarketplaceResource{} + roleName := "Managed Applications Reader" data.ResourceSequentialTest(t, r, []acceptance.TestStep{ { - Config: r.roleNameConfig(id), + // Last error may cause the role already assigned. Need to delete it before a new test. + PreConfig: r.deleteAssignedRole(t, roleName), + Config: r.roleNameConfig(id, roleName), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), check.That(data.ResourceName).Key("role_definition_id").Exists(), - check.That(data.ResourceName).Key("role_definition_name").HasValue("Log Analytics Reader"), + check.That(data.ResourceName).Key("role_definition_name").HasValue(roleName), ), }, { - Config: r.requiresImportConfig(id), + Config: r.requiresImportConfig(id, roleName), ExpectError: acceptance.RequiresImportError("azurerm_marketplace_role_assignment"), }, }) @@ -81,10 +95,13 @@ func TestAccRoleAssignmentMarketplace_builtin(t *testing.T) { id := uuid.New().String() r := RoleAssignmentMarketplaceResource{} + roleName := "Monitoring Reader" data.ResourceTest(t, r, []acceptance.TestStep{ { - Config: r.builtinConfig(id), + // Last error may cause the role already assigned. Need to delete it before a new test. + PreConfig: r.deleteAssignedRole(t, roleName), + Config: r.builtinConfig(id, roleName), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), ), @@ -99,10 +116,13 @@ func TestAccRoleAssignmentMarketplace_ServicePrincipal(t *testing.T) { id := uuid.New().String() r := RoleAssignmentMarketplaceResource{} + roleName := "Contributor" data.ResourceTest(t, r, []acceptance.TestStep{ { - Config: r.servicePrincipal(ri, id), + // Last error may cause the role already assigned. Need to delete it before a new test. + PreConfig: r.deleteAssignedRole(t, roleName), + Config: r.servicePrincipal(ri, id, roleName), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), acceptance.TestCheckResourceAttr(data.ResourceName, "principal_type", "ServicePrincipal"), @@ -117,10 +137,13 @@ func TestAccRoleAssignmentMarketplace_ServicePrincipalWithType(t *testing.T) { id := uuid.New().String() r := RoleAssignmentMarketplaceResource{} + roleName := "Log Analytics Contributor" data.ResourceTest(t, r, []acceptance.TestStep{ { - Config: r.servicePrincipalWithType(ri, id), + // Last error may cause the role already assigned. Need to delete it before a new test. + PreConfig: r.deleteAssignedRole(t, roleName), + Config: r.servicePrincipalWithType(ri, id, roleName), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), ), @@ -134,10 +157,13 @@ func TestAccRoleAssignmentMarketplace_ServicePrincipalGroup(t *testing.T) { id := uuid.New().String() r := RoleAssignmentMarketplaceResource{} + roleName := "Monitoring Contributor" data.ResourceTest(t, r, []acceptance.TestStep{ { - Config: r.group(ri, id), + // Last error may cause the role already assigned. Need to delete it before a new test. + PreConfig: r.deleteAssignedRole(t, roleName), + Config: r.group(ri, id, roleName), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), ), @@ -168,12 +194,12 @@ func (r RoleAssignmentMarketplaceResource) Exists(ctx context.Context, client *c return utils.Bool(true), nil } -func (RoleAssignmentMarketplaceResource) emptyNameConfig() string { - return ` +func (RoleAssignmentMarketplaceResource) emptyNameConfig(roleName string) string { + return fmt.Sprintf(` data "azurerm_client_config" "test" {} data "azurerm_role_definition" "test" { - name = "Monitoring Reader" + name = "%s" } resource "azurerm_marketplace_role_assignment" "test" { @@ -188,17 +214,17 @@ resource "azurerm_marketplace_role_assignment" "test" { ] } } -` +`, roleName) } -func (RoleAssignmentMarketplaceResource) roleNameConfig(id string) string { +func (RoleAssignmentMarketplaceResource) roleNameConfig(id string, roleName string) string { return fmt.Sprintf(` data "azurerm_client_config" "test" { } resource "azurerm_marketplace_role_assignment" "test" { name = "%s" - role_definition_name = "Log Analytics Reader" + role_definition_name = "%s" principal_id = data.azurerm_client_config.test.object_id lifecycle { @@ -207,10 +233,10 @@ resource "azurerm_marketplace_role_assignment" "test" { ] } } -`, id) +`, id, roleName) } -func (RoleAssignmentMarketplaceResource) requiresImportConfig(id string) string { +func (RoleAssignmentMarketplaceResource) requiresImportConfig(id string, roleName string) string { return fmt.Sprintf(` %s @@ -225,16 +251,16 @@ resource "azurerm_marketplace_role_assignment" "import" { ] } } -`, RoleAssignmentMarketplaceResource{}.roleNameConfig(id)) +`, RoleAssignmentMarketplaceResource{}.roleNameConfig(id, roleName)) } -func (RoleAssignmentMarketplaceResource) builtinConfig(id string) string { +func (RoleAssignmentMarketplaceResource) builtinConfig(id string, roleName string) string { return fmt.Sprintf(` data "azurerm_client_config" "test" { } data "azurerm_role_definition" "test" { - name = "Log Analytics Reader" + name = "%s" } resource "azurerm_marketplace_role_assignment" "test" { @@ -248,10 +274,10 @@ resource "azurerm_marketplace_role_assignment" "test" { ] } } -`, id) +`, roleName, id) } -func (RoleAssignmentMarketplaceResource) servicePrincipal(rInt int, roleAssignmentID string) string { +func (RoleAssignmentMarketplaceResource) servicePrincipal(rInt int, roleAssignmentID string, roleName string) string { return fmt.Sprintf(` provider "azuread" {} @@ -265,7 +291,7 @@ resource "azuread_service_principal" "test" { resource "azurerm_marketplace_role_assignment" "test" { name = "%s" - role_definition_name = "Reader" + role_definition_name = "%s" principal_id = azuread_service_principal.test.id lifecycle { @@ -274,10 +300,10 @@ resource "azurerm_marketplace_role_assignment" "test" { ] } } -`, rInt, roleAssignmentID) +`, rInt, roleAssignmentID, roleName) } -func (RoleAssignmentMarketplaceResource) servicePrincipalWithType(rInt int, roleAssignmentID string) string { +func (RoleAssignmentMarketplaceResource) servicePrincipalWithType(rInt int, roleAssignmentID string, roleName string) string { return fmt.Sprintf(` provider "azuread" {} @@ -291,7 +317,7 @@ resource "azuread_service_principal" "test" { resource "azurerm_marketplace_role_assignment" "test" { name = "%s" - role_definition_name = "Reader" + role_definition_name = "%s" principal_id = azuread_service_principal.test.id skip_service_principal_aad_check = true @@ -301,10 +327,10 @@ resource "azurerm_marketplace_role_assignment" "test" { ] } } -`, rInt, roleAssignmentID) +`, rInt, roleAssignmentID, roleName) } -func (RoleAssignmentMarketplaceResource) group(rInt int, roleAssignmentID string) string { +func (RoleAssignmentMarketplaceResource) group(rInt int, roleAssignmentID string, roleName string) string { return fmt.Sprintf(` provider "azuread" {} @@ -315,7 +341,7 @@ resource "azuread_group" "test" { resource "azurerm_marketplace_role_assignment" "test" { name = "%s" - role_definition_name = "Reader" + role_definition_name = "%s" principal_id = azuread_group.test.id lifecycle { @@ -324,5 +350,60 @@ resource "azurerm_marketplace_role_assignment" "test" { ] } } -`, rInt, roleAssignmentID) +`, rInt, roleAssignmentID, roleName) +} + +func (r RoleAssignmentMarketplaceResource) deleteAssignedRole(t *testing.T, roleName string) func() { + return func() { + clientManager, err := testclient.Build() + if err != nil { + t.Fatalf("building client: %+v", err) + } + + ctx, cancel := context.WithDeadline(clientManager.StopContext, time.Now().Add(30*time.Minute)) + defer cancel() + + roleDefinitionsClient := clientManager.Authorization.ScopedRoleDefinitionsClient + roleDefinitions, err := roleDefinitionsClient.List(ctx, commonids.NewScopeID(authorization.MarketplaceScope), roledefinitions.ListOperationOptions{Filter: pointer.To(fmt.Sprintf("roleName eq '%s'", roleName))}) + if err != nil { + t.Fatalf("loading Role Definition List: %+v", err) + } + + if roleDefinitions.Model == nil || len(*roleDefinitions.Model) != 1 || (*roleDefinitions.Model)[0].Id == nil { + t.Fatalf("loading Role Definition List: failed to find role '%s'", roleName) + } + + roleAssignmentsClient := clientManager.Authorization.ScopedRoleAssignmentsClient + roleAssignments, err := roleAssignmentsClient.ListForScope(ctx, commonids.NewScopeID(authorization.MarketplaceScope), roleassignments.DefaultListForScopeOperationOptions()) + if err != nil { + t.Fatalf("loading Role Assignment List: %+v", err) + } + + if roleAssignments.Model == nil || len(*roleAssignments.Model) == 0 { + return + } + + for _, roleAssignment := range *roleAssignments.Model { + if roleAssignment.Id == nil || roleAssignment.Properties == nil || roleAssignment.Properties.RoleDefinitionId != *(*roleDefinitions.Model)[0].Id || pointer.From(roleAssignment.Properties.Scope) != authorization.MarketplaceScope { + continue + } + + id, err := parse.ScopedRoleAssignmentID(*roleAssignment.Id) + if err != nil { + t.Fatalf("parsing scoped role assignment id: %+v", err) + } + + options := roleassignments.DefaultDeleteOperationOptions() + if id.TenantId != "" { + options.TenantId = &id.TenantId + } + + resp, err := roleAssignmentsClient.Delete(ctx, id.ScopedId, options) + if err != nil { + if !response.WasNotFound(resp.HttpResponse) { + t.Fatalf("deleting role assignment: %+v", err) + } + } + } + } } From a75bf648cea026110b096168284920616ac3a12c Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Wed, 23 Aug 2023 23:46:41 -0600 Subject: [PATCH 022/336] [Documentation]: update example usage for `azurerm_cdn_frontdoor_custom_domain` and `azurerm_cdn_frontdoor_custom_domain_association` (#23044) --- .../cdn_frontdoor_custom_domain.html.markdown | 2 +- ...or_custom_domain_association.html.markdown | 95 ++++++++++++++++++- 2 files changed, 94 insertions(+), 3 deletions(-) diff --git a/website/docs/r/cdn_frontdoor_custom_domain.html.markdown b/website/docs/r/cdn_frontdoor_custom_domain.html.markdown index e034657ce7a6..6a67d0d4661c 100644 --- a/website/docs/r/cdn_frontdoor_custom_domain.html.markdown +++ b/website/docs/r/cdn_frontdoor_custom_domain.html.markdown @@ -22,7 +22,7 @@ resource "azurerm_resource_group" "example" { resource "azurerm_dns_zone" "example" { name = "sub-domain.domain.com" - resource_group_name = azurerm_resource_group.test.name + resource_group_name = azurerm_resource_group.example.name } resource "azurerm_cdn_frontdoor_profile" "example" { diff --git a/website/docs/r/cdn_frontdoor_custom_domain_association.html.markdown b/website/docs/r/cdn_frontdoor_custom_domain_association.html.markdown index 8ed8fc157561..82426daeb82b 100644 --- a/website/docs/r/cdn_frontdoor_custom_domain_association.html.markdown +++ b/website/docs/r/cdn_frontdoor_custom_domain_association.html.markdown @@ -13,9 +13,100 @@ Manages the association between a Front Door (standard/premium) Custom Domain an ## Example Usage ```hcl +resource "azurerm_resource_group" "example" { + name = "example-cdn-frontdoor" + location = "West Europe" +} + +resource "azurerm_dns_zone" "example" { + name = "domain.com" + resource_group_name = azurerm_resource_group.example.name +} + +resource "azurerm_cdn_frontdoor_profile" "example" { + name = "example-profile" + resource_group_name = azurerm_resource_group.example.name + sku_name = "Standard_AzureFrontDoor" +} + +resource "azurerm_cdn_frontdoor_origin_group" "example" { + name = "example-origin-group" + cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.example.id + session_affinity_enabled = true + + restore_traffic_time_to_healed_or_new_endpoint_in_minutes = 10 + + health_probe { + interval_in_seconds = 240 + path = "/healthProbe" + protocol = "Https" + request_type = "HEAD" + } + + load_balancing { + additional_latency_in_milliseconds = 0 + sample_size = 16 + successful_samples_required = 3 + } +} + +resource "azurerm_cdn_frontdoor_origin" "example" { + name = "example-origin" + cdn_frontdoor_origin_group_id = azurerm_cdn_frontdoor_origin_group.example.id + enabled = true + + certificate_name_check_enabled = false + + host_name = "contoso.com" + http_port = 80 + https_port = 443 + origin_host_header = "www.contoso.com" + priority = 1 + weight = 1 +} + +resource "azurerm_cdn_frontdoor_endpoint" "example" { + name = "example-endpoint" + cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.example.id +} + +resource "azurerm_cdn_frontdoor_rule_set" "example" { + name = "ExampleRuleSet" + cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.example.id +} + +resource "azurerm_cdn_frontdoor_route" "example" { + name = "example-route" + cdn_frontdoor_endpoint_id = azurerm_cdn_frontdoor_endpoint.example.id + cdn_frontdoor_origin_group_id = azurerm_cdn_frontdoor_origin_group.example.id + cdn_frontdoor_origin_ids = [azurerm_cdn_frontdoor_origin.example.id] + cdn_frontdoor_rule_set_ids = [azurerm_cdn_frontdoor_rule_set.example.id] + enabled = true + + forwarding_protocol = "HttpsOnly" + https_redirect_enabled = true + patterns_to_match = ["/*"] + supported_protocols = ["Http", "Https"] + + cdn_frontdoor_custom_domain_ids = [azurerm_cdn_frontdoor_custom_domain.example.id] + link_to_default_domain = false +} + +resource "azurerm_cdn_frontdoor_custom_domain" "example" { + name = "example-customDomain" + cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.example.id + dns_zone_id = azurerm_dns_zone.example.id + host_name = join(".", ["contoso", azurerm_dns_zone.example.name]) + + tls { + certificate_type = "ManagedCertificate" + minimum_tls_version = "TLS12" + } +} + resource "azurerm_cdn_frontdoor_custom_domain_association" "example" { - cdn_frontdoor_custom_domain_id = azurerm_cdn_frontdoor_custom_domain.contoso.id - cdn_frontdoor_route_ids = [azurerm_cdn_frontdoor_route.contoso.id, azurerm_cdn_frontdoor_route.fabrikam.id] + cdn_frontdoor_custom_domain_id = azurerm_cdn_frontdoor_custom_domain.example.id + cdn_frontdoor_route_ids = [azurerm_cdn_frontdoor_route.example.id] } ``` From 89754fb91add0d8a8e436b14741581eefa407188 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Thu, 24 Aug 2023 12:26:04 +0200 Subject: [PATCH 023/336] `resources`: refactoring `features` to use `hashicorp/go-azure-sdk` --- internal/services/resource/client/client.go | 13 ++- internal/services/resource/parse/feature.go | 72 -------------- .../services/resource/parse/feature_test.go | 94 ------------------- ...resource_provider_registration_resource.go | 66 +++++++------ .../services/resource/validate/feature_id.go | 24 ----- .../resource/validate/feature_id_test.go | 64 ------------- 6 files changed, 40 insertions(+), 293 deletions(-) delete mode 100644 internal/services/resource/parse/feature.go delete mode 100644 internal/services/resource/parse/feature_test.go delete mode 100644 internal/services/resource/validate/feature_id.go delete mode 100644 internal/services/resource/validate/feature_id_test.go diff --git a/internal/services/resource/client/client.go b/internal/services/resource/client/client.go index e0b2a5fe7124..3f2b72c924ce 100644 --- a/internal/services/resource/client/client.go +++ b/internal/services/resource/client/client.go @@ -7,10 +7,10 @@ import ( "fmt" "github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2019-06-01-preview/templatespecs" // nolint: staticcheck - "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features" // nolint: staticcheck "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2020-06-01/resources" // nolint: staticcheck "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/managementlocks" "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-10-01/deploymentscripts" + "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features" "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2022-09-01/providers" "github.com/hashicorp/terraform-provider-azurerm/internal/common" ) @@ -18,7 +18,7 @@ import ( type Client struct { DeploymentsClient *resources.DeploymentsClient DeploymentScriptsClient *deploymentscripts.DeploymentScriptsClient - FeaturesClient *features.Client + FeaturesClient *features.FeaturesClient GroupsClient *resources.GroupsClient LocksClient *managementlocks.ManagementLocksClient ResourceProvidersClient *providers.ProvidersClient @@ -39,8 +39,11 @@ func NewClient(o *common.ClientOptions) (*Client, error) { } o.Configure(deploymentScriptsClient.Client, o.Authorizers.ResourceManager) - featuresClient := features.NewClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId) - o.ConfigureClient(&featuresClient.Client, o.ResourceManagerAuthorizer) + featuresClient, err := features.NewFeaturesClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building Features client: %+v", err) + } + o.Configure(featuresClient.Client, o.Authorizers.ResourceManager) groupsClient := resources.NewGroupsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId) o.ConfigureClient(&groupsClient.Client, o.ResourceManagerAuthorizer) @@ -70,7 +73,7 @@ func NewClient(o *common.ClientOptions) (*Client, error) { GroupsClient: &groupsClient, DeploymentsClient: &deploymentsClient, DeploymentScriptsClient: deploymentScriptsClient, - FeaturesClient: &featuresClient, + FeaturesClient: featuresClient, LocksClient: locksClient, ResourceProvidersClient: resourceProvidersClient, ResourcesClient: &resourcesClient, diff --git a/internal/services/resource/parse/feature.go b/internal/services/resource/parse/feature.go deleted file mode 100644 index 99255c6981a3..000000000000 --- a/internal/services/resource/parse/feature.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -import ( - "fmt" - "strings" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" - "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" -) - -var _ resourceids.Id = FeatureId{} - -type FeatureId struct { - SubscriptionId string - ProviderNamespace string - Name string -} - -func NewFeatureID(subscriptionId, resourceProvider, name string) FeatureId { - return FeatureId{ - SubscriptionId: subscriptionId, - ProviderNamespace: resourceProvider, - Name: name, - } -} - -func (id FeatureId) String() string { - segments := []string{ - fmt.Sprintf("Name %q", id.Name), - } - segmentsStr := strings.Join(segments, " / ") - return fmt.Sprintf("Feature: (%s)", segmentsStr) -} - -func (id FeatureId) ID() string { - fmtString := "/subscriptions/%s/providers/Microsoft.Features/providers/%s/features/%s" - return fmt.Sprintf(fmtString, id.SubscriptionId, id.ProviderNamespace, id.Name) -} - -// FeatureID parses a Feature ID into an FeatureId struct -func FeatureID(input string) (*FeatureId, error) { - id, err := azure.ParseAzureResourceID(input) - if err != nil { - return nil, err - } - - resourceId := FeatureId{ - SubscriptionId: id.SubscriptionID, - ProviderNamespace: id.SecondaryProvider, - } - - if resourceId.SubscriptionId == "" { - return nil, fmt.Errorf("ID was missing the 'subscriptions' element") - } - - if resourceId.ProviderNamespace == "" { - return nil, fmt.Errorf("ID was missing the 'providers' element") - } - - if resourceId.Name, err = id.PopSegment("features"); err != nil { - return nil, err - } - - if err := id.ValidateNoEmptySegments(input); err != nil { - return nil, err - } - - return &resourceId, nil -} diff --git a/internal/services/resource/parse/feature_test.go b/internal/services/resource/parse/feature_test.go deleted file mode 100644 index 6c41aafd5afb..000000000000 --- a/internal/services/resource/parse/feature_test.go +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -import "testing" - -func TestFeatureIDFormatter(t *testing.T) { - actual := NewFeatureID("12345678-1234-9876-4563-123456789012", "Microsoft.Test", "Feature1").ID() - expected := "/subscriptions/12345678-1234-9876-4563-123456789012/providers/Microsoft.Features/providers/Microsoft.Test/features/Feature1" - if actual != expected { - t.Fatalf("Expected %q but got %q", expected, actual) - } -} - -func TestFeatureID(t *testing.T) { - testData := []struct { - Input string - Error bool - Expected *FeatureId - }{ - { - // empty - Input: "", - Error: true, - }, - - { - // missing SubscriptionId - Input: "/", - Error: true, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Error: true, - }, - - { - // missing Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/providers/Microsoft.Features/providers/Microsoft.SomeAzureService/", - Error: true, - }, - - { - // missing value for Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/providers/Microsoft.Features/providers/Microsoft.SomeAzureService/features/", - Error: true, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/providers/Microsoft.Features/providers/Microsoft.SomeAzureService/features/Feature1", - Expected: &FeatureId{ - SubscriptionId: "12345678-1234-9876-4563-123456789012", - ProviderNamespace: "Microsoft.SomeAzureService", - Name: "Feature1", - }, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/PROVIDERS/MICROSOFT.FEATURES/PROVIDERS/MICROSOFT.SOMEAZURESERVICE/FEATURES/FEATURE1", - Error: true, - }, - } - - for _, v := range testData { - t.Logf("[DEBUG] Testing %q", v.Input) - - actual, err := FeatureID(v.Input) - if err != nil { - if v.Error { - continue - } - - t.Fatalf("Expect a value but got an error: %s", err) - } - if v.Error { - t.Fatal("Expect an error but didn't get one") - } - - if actual.SubscriptionId != v.Expected.SubscriptionId { - t.Fatalf("Expected %q but got %q for SubscriptionId", v.Expected.SubscriptionId, actual.SubscriptionId) - } - if actual.ProviderNamespace != v.Expected.ProviderNamespace { - t.Fatalf("Expected %q but got %q for ProviderNamespace", v.Expected.ProviderNamespace, actual.ProviderNamespace) - } - if actual.Name != v.Expected.Name { - t.Fatalf("Expected %q but got %q for Name", v.Expected.Name, actual.Name) - } - } -} diff --git a/internal/services/resource/resource_provider_registration_resource.go b/internal/services/resource/resource_provider_registration_resource.go index 9b7aec2a0dd3..072c8dce2794 100644 --- a/internal/services/resource/resource_provider_registration_resource.go +++ b/internal/services/resource/resource_provider_registration_resource.go @@ -10,15 +10,14 @@ import ( "strings" "time" - "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features" // nolint: staticcheck "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features" "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2022-09-01/providers" "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/resourceproviders" "github.com/hashicorp/terraform-provider-azurerm/internal/resourceproviders/custompollers" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/resource/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/resource/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" @@ -259,25 +258,22 @@ func (r ResourceProviderRegistrationResource) Read() sdk.ResourceFunc { return metadata.MarkAsGone(id) } - result, err := featureClient.ListComplete(ctx, id.ProviderName) + resourceProviderFeatureId := features.NewProviders2ID(id.SubscriptionId, id.ProviderName) + result, err := featureClient.ListComplete(ctx, resourceProviderFeatureId) if err != nil { return fmt.Errorf("retrieving features for %s: %+v", *id, err) } features := make([]ResourceProviderRegistrationFeatureModel, 0) - for result.NotDone() { - value := result.Value() - if value.Properties != nil && value.Properties.State != nil && value.Name != nil { - featureName := (*value.Name)[len(id.ProviderName)+1:] - switch *value.Properties.State { + for _, item := range result.Items { + if item.Properties != nil && item.Properties.State != nil && item.Name != nil { + featureName := (*item.Name)[len(id.ProviderName)+1:] + switch *item.Properties.State { case Registering, Registered: features = append(features, ResourceProviderRegistrationFeatureModel{Name: featureName, Registered: true}) case Unregistering, Unregistered: features = append(features, ResourceProviderRegistrationFeatureModel{Name: featureName, Registered: false}) } } - if err := result.NextWithContext(ctx); err != nil { - return fmt.Errorf("enumerating features: %+v", err) - } } return metadata.Encode(&ResourceProviderRegistrationModel{ @@ -395,12 +391,13 @@ func (r ResourceProviderRegistrationResource) applyFeatures(ctx context.Context, for _, v := range newFeatures { value := v.(map[string]interface{}) name := value["name"].(string) + featureId := features.NewFeatureID(id.SubscriptionId, id.ProviderName, name) if value["registered"].(bool) { - if err := r.registerFeature(ctx, metadata, parse.NewFeatureID(id.SubscriptionId, id.ProviderName, name)); err != nil { + if err := r.registerFeature(ctx, metadata, featureId); err != nil { return err } } else { - if err := r.unregisterFeature(ctx, metadata, parse.NewFeatureID(id.SubscriptionId, id.ProviderName, name)); err != nil { + if err := r.unregisterFeature(ctx, metadata, featureId); err != nil { return err } } @@ -421,7 +418,8 @@ func (r ResourceProviderRegistrationResource) applyFeatures(ctx context.Context, for featureName, registered := range unmanagedRegisteredFeatures { if registered { - if err := r.unregisterFeature(ctx, metadata, parse.NewFeatureID(id.SubscriptionId, id.ProviderName, featureName)); err != nil { + featureId := features.NewFeatureID(id.SubscriptionId, id.ProviderName, featureName) + if err := r.unregisterFeature(ctx, metadata, featureId); err != nil { return err } } @@ -429,30 +427,30 @@ func (r ResourceProviderRegistrationResource) applyFeatures(ctx context.Context, return nil } -func (r ResourceProviderRegistrationResource) registerFeature(ctx context.Context, metadata sdk.ResourceMetaData, id parse.FeatureId) error { +func (r ResourceProviderRegistrationResource) registerFeature(ctx context.Context, metadata sdk.ResourceMetaData, id features.FeatureId) error { client := metadata.Client.Resource.FeaturesClient - existing, err := client.Get(ctx, id.ProviderNamespace, id.Name) + existing, err := client.Get(ctx, id) if err != nil { return fmt.Errorf("error checking for existing feature %q: %+v", id, err) } - if existing.Properties != nil && existing.Properties.State != nil { - if strings.EqualFold(*existing.Properties.State, Pending) { + if existing.Model != nil && existing.Model.Properties != nil && existing.Model.Properties.State != nil { + if strings.EqualFold(*existing.Model.Properties.State, Pending) { return fmt.Errorf("%s which requires manual approval should not be managed by terraform", id) } - if strings.EqualFold(*existing.Properties.State, Registered) { + if strings.EqualFold(*existing.Model.Properties.State, Registered) { return nil } } log.Printf("[INFO] registering feature %q.", id) - resp, err := client.Register(ctx, id.ProviderNamespace, id.Name) + resp, err := client.Register(ctx, id) if err != nil { return fmt.Errorf("error registering feature %q: %+v", id, err) } - if resp.Properties != nil && resp.Properties.State != nil { - if strings.EqualFold(*resp.Properties.State, Pending) { + if resp.Model != nil && resp.Model.Properties != nil && resp.Model.Properties.State != nil { + if strings.EqualFold(*resp.Model.Properties.State, Pending) { return fmt.Errorf("%s which requires manual approval can not be managed by terraform", id) } } @@ -475,30 +473,30 @@ func (r ResourceProviderRegistrationResource) registerFeature(ctx context.Contex return nil } -func (r ResourceProviderRegistrationResource) unregisterFeature(ctx context.Context, metadata sdk.ResourceMetaData, id parse.FeatureId) error { +func (r ResourceProviderRegistrationResource) unregisterFeature(ctx context.Context, metadata sdk.ResourceMetaData, id features.FeatureId) error { client := metadata.Client.Resource.FeaturesClient - existing, err := client.Get(ctx, id.ProviderNamespace, id.Name) + existing, err := client.Get(ctx, id) if err != nil { return fmt.Errorf("error checking for existing feature %q: %+v", id, err) } - if existing.Properties != nil && existing.Properties.State != nil { - if strings.EqualFold(*existing.Properties.State, Pending) { + if existing.Model != nil && existing.Model.Properties != nil && existing.Model.Properties.State != nil { + if strings.EqualFold(*existing.Model.Properties.State, Pending) { return fmt.Errorf("%s which requires manual approval should not be managed by terraform", id) } - if strings.EqualFold(*existing.Properties.State, Unregistered) { + if strings.EqualFold(*existing.Model.Properties.State, Unregistered) { return nil } } log.Printf("[INFO] unregistering feature %q.", id) - resp, err := client.Unregister(ctx, id.ProviderNamespace, id.Name) + resp, err := client.Unregister(ctx, id) if err != nil { return fmt.Errorf("unregistering feature %q: %+v", id, err) } - if resp.Properties != nil && resp.Properties.State != nil { - if strings.EqualFold(*resp.Properties.State, Pending) { + if resp.Model != nil && resp.Model.Properties != nil && resp.Model.Properties.State != nil { + if strings.EqualFold(*resp.Model.Properties.State, Pending) { return fmt.Errorf("%s requires manual registration approval and can not be managed by terraform", id) } } @@ -522,16 +520,16 @@ func (r ResourceProviderRegistrationResource) unregisterFeature(ctx context.Cont return nil } -func (r ResourceProviderRegistrationResource) featureRegisteringStateRefreshFunc(ctx context.Context, client *features.Client, id parse.FeatureId) pluginsdk.StateRefreshFunc { +func (r ResourceProviderRegistrationResource) featureRegisteringStateRefreshFunc(ctx context.Context, client *features.FeaturesClient, id features.FeatureId) pluginsdk.StateRefreshFunc { return func() (interface{}, string, error) { - res, err := client.Get(ctx, id.ProviderNamespace, id.Name) + res, err := client.Get(ctx, id) if err != nil { return nil, "", fmt.Errorf("retrieving %s: %+v", id, err) } - if res.Properties == nil || res.Properties.State == nil { + if res.Model == nil || res.Model.Properties == nil || res.Model.Properties.State == nil { return nil, "", fmt.Errorf("error reading %s registering status: %+v", id, err) } - return res, *res.Properties.State, nil + return res, *res.Model.Properties.State, nil } } diff --git a/internal/services/resource/validate/feature_id.go b/internal/services/resource/validate/feature_id.go deleted file mode 100644 index fdc1c29f1007..000000000000 --- a/internal/services/resource/validate/feature_id.go +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -import ( - "fmt" - - "github.com/hashicorp/terraform-provider-azurerm/internal/services/resource/parse" -) - -func FeatureID(input interface{}, key string) (warnings []string, errors []error) { - v, ok := input.(string) - if !ok { - errors = append(errors, fmt.Errorf("expected %q to be a string", key)) - return - } - - if _, err := parse.FeatureID(v); err != nil { - errors = append(errors, err) - } - - return -} diff --git a/internal/services/resource/validate/feature_id_test.go b/internal/services/resource/validate/feature_id_test.go deleted file mode 100644 index 9349ef26a3b6..000000000000 --- a/internal/services/resource/validate/feature_id_test.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -import "testing" - -func TestFeatureID(t *testing.T) { - cases := []struct { - Input string - Valid bool - }{ - { - // empty - Input: "", - Valid: false, - }, - - { - // missing SubscriptionId - Input: "/", - Valid: false, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Valid: false, - }, - - { - // missing Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/providers/Microsoft.Features/providers/Microsoft.SomeAzureService/", - Valid: false, - }, - - { - // missing value for Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/providers/Microsoft.Features/providers/Microsoft.SomeAzureService/features/", - Valid: false, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/providers/Microsoft.Features/providers/Microsoft.SomeAzureService/features/Feature1", - Valid: true, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/PROVIDERS/MICROSOFT.FEATURES/PROVIDERS/MICROSOFT.SOMEAZURESERVICE/FEATURES/FEATURE1", - Valid: false, - }, - } - for _, tc := range cases { - t.Logf("[DEBUG] Testing Value %s", tc.Input) - _, errors := FeatureID(tc.Input, "test") - valid := len(errors) == 0 - - if tc.Valid != valid { - t.Fatalf("Expected %t but got %t", tc.Valid, valid) - } - } -} From c97c565243036166089f5268066d342dfa919210 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Thu, 24 Aug 2023 12:26:41 +0200 Subject: [PATCH 024/336] go mod tidy / go mod vendor --- .../mgmt/2015-12-01/features/CHANGELOG.md | 2 - .../mgmt/2015-12-01/features/_meta.json | 11 - .../mgmt/2015-12-01/features/client.go | 159 ------ .../mgmt/2015-12-01/features/features.go | 491 ------------------ .../mgmt/2015-12-01/features/models.go | 374 ------------- .../mgmt/2015-12-01/features/version.go | 19 - .../resources/2021-07-01/features/README.md | 102 ++++ .../resources/2021-07-01/features/client.go | 26 + .../2021-07-01/features/id_feature.go | 127 +++++ .../2021-07-01/features/id_providers2.go | 114 ++++ .../2021-07-01/features/method_get.go | 51 ++ .../2021-07-01/features/method_list.go | 89 ++++ .../2021-07-01/features/method_listall.go | 90 ++++ .../2021-07-01/features/method_register.go | 52 ++ .../2021-07-01/features/method_unregister.go | 52 ++ .../features/model_featureproperties.go | 8 + .../features/model_featureresult.go | 11 + .../2021-07-01/features/predicates.go | 27 + .../resources/2021-07-01/features/version.go | 12 + vendor/modules.txt | 2 +- 20 files changed, 762 insertions(+), 1057 deletions(-) delete mode 100644 vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/CHANGELOG.md delete mode 100644 vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/_meta.json delete mode 100644 vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/client.go delete mode 100644 vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/features.go delete mode 100644 vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/models.go delete mode 100644 vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/version.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/README.md create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/id_feature.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/id_providers2.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_get.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_list.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_listall.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_register.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_unregister.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/model_featureproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/model_featureresult.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/predicates.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/version.go diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/CHANGELOG.md b/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/CHANGELOG.md deleted file mode 100644 index 52911e4cc5e4..000000000000 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Change History - diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/_meta.json b/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/_meta.json deleted file mode 100644 index 0c20b36e4e18..000000000000 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/_meta.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "commit": "3c764635e7d442b3e74caf593029fcd440b3ef82", - "readme": "/_/azure-rest-api-specs/specification/resources/resource-manager/readme.md", - "tag": "package-features-2015-12", - "use": "@microsoft.azure/autorest.go@2.1.187", - "repository_url": "https://github.com/Azure/azure-rest-api-specs.git", - "autorest_command": "autorest --use=@microsoft.azure/autorest.go@2.1.187 --tag=package-features-2015-12 --go-sdk-folder=/_/azure-sdk-for-go --go --verbose --use-onever --version=2.0.4421 --go.license-header=MICROSOFT_MIT_NO_VERSION /_/azure-rest-api-specs/specification/resources/resource-manager/readme.md", - "additional_properties": { - "additional_options": "--go --verbose --use-onever --version=2.0.4421 --go.license-header=MICROSOFT_MIT_NO_VERSION" - } -} \ No newline at end of file diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/client.go b/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/client.go deleted file mode 100644 index 4f07538f6388..000000000000 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/client.go +++ /dev/null @@ -1,159 +0,0 @@ -// Deprecated: Please note, this package has been deprecated. A replacement package is available [github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armfeatures](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armfeatures). We strongly encourage you to upgrade to continue receiving updates. See [Migration Guide](https://aka.ms/azsdk/golang/t2/migration) for guidance on upgrading. Refer to our [deprecation policy](https://azure.github.io/azure-sdk/policies_support.html) for more details. -// -// Package features implements the Azure ARM Features service API version 2015-12-01. -// -// Azure Feature Exposure Control (AFEC) provides a mechanism for the resource providers to control feature exposure to -// users. Resource providers typically use this mechanism to provide public/private preview for new features prior to -// making them generally available. Users need to explicitly register for AFEC features to get access to such -// functionality. -package features - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -import ( - "context" - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/Azure/go-autorest/tracing" - "net/http" -) - -const ( - // DefaultBaseURI is the default URI used for the service Features - DefaultBaseURI = "https://management.azure.com" -) - -// BaseClient is the base client for Features. -type BaseClient struct { - autorest.Client - BaseURI string - SubscriptionID string -} - -// New creates an instance of the BaseClient client. -func New(subscriptionID string) BaseClient { - return NewWithBaseURI(DefaultBaseURI, subscriptionID) -} - -// NewWithBaseURI creates an instance of the BaseClient client using a custom endpoint. Use this when interacting with -// an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). -func NewWithBaseURI(baseURI string, subscriptionID string) BaseClient { - return BaseClient{ - Client: autorest.NewClientWithUserAgent(UserAgent()), - BaseURI: baseURI, - SubscriptionID: subscriptionID, - } -} - -// ListOperations lists all of the available Microsoft.Features REST API operations. -func (client BaseClient) ListOperations(ctx context.Context) (result OperationListResultPage, err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ListOperations") - defer func() { - sc := -1 - if result.olr.Response.Response != nil { - sc = result.olr.Response.Response.StatusCode - } - tracing.EndSpan(ctx, sc, err) - }() - } - result.fn = client.listOperationsNextResults - req, err := client.ListOperationsPreparer(ctx) - if err != nil { - err = autorest.NewErrorWithError(err, "features.BaseClient", "ListOperations", nil, "Failure preparing request") - return - } - - resp, err := client.ListOperationsSender(req) - if err != nil { - result.olr.Response = autorest.Response{Response: resp} - err = autorest.NewErrorWithError(err, "features.BaseClient", "ListOperations", resp, "Failure sending request") - return - } - - result.olr, err = client.ListOperationsResponder(resp) - if err != nil { - err = autorest.NewErrorWithError(err, "features.BaseClient", "ListOperations", resp, "Failure responding to request") - return - } - if result.olr.hasNextLink() && result.olr.IsEmpty() { - err = result.NextWithContext(ctx) - return - } - - return -} - -// ListOperationsPreparer prepares the ListOperations request. -func (client BaseClient) ListOperationsPreparer(ctx context.Context) (*http.Request, error) { - const APIVersion = "2015-12-01" - queryParameters := map[string]interface{}{ - "api-version": APIVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsGet(), - autorest.WithBaseURL(client.BaseURI), - autorest.WithPath("/providers/Microsoft.Features/operations"), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// ListOperationsSender sends the ListOperations request. The method will close the -// http.Response Body if it receives an error. -func (client BaseClient) ListOperationsSender(req *http.Request) (*http.Response, error) { - return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) -} - -// ListOperationsResponder handles the response to the ListOperations request. The method always -// closes the http.Response Body. -func (client BaseClient) ListOperationsResponder(resp *http.Response) (result OperationListResult, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result), - autorest.ByClosing()) - result.Response = autorest.Response{Response: resp} - return -} - -// listOperationsNextResults retrieves the next set of results, if any. -func (client BaseClient) listOperationsNextResults(ctx context.Context, lastResults OperationListResult) (result OperationListResult, err error) { - req, err := lastResults.operationListResultPreparer(ctx) - if err != nil { - return result, autorest.NewErrorWithError(err, "features.BaseClient", "listOperationsNextResults", nil, "Failure preparing next results request") - } - if req == nil { - return - } - resp, err := client.ListOperationsSender(req) - if err != nil { - result.Response = autorest.Response{Response: resp} - return result, autorest.NewErrorWithError(err, "features.BaseClient", "listOperationsNextResults", resp, "Failure sending next results request") - } - result, err = client.ListOperationsResponder(resp) - if err != nil { - err = autorest.NewErrorWithError(err, "features.BaseClient", "listOperationsNextResults", resp, "Failure responding to next results request") - } - return -} - -// ListOperationsComplete enumerates all values, automatically crossing page boundaries as required. -func (client BaseClient) ListOperationsComplete(ctx context.Context) (result OperationListResultIterator, err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ListOperations") - defer func() { - sc := -1 - if result.Response().Response.Response != nil { - sc = result.page.Response().Response.Response.StatusCode - } - tracing.EndSpan(ctx, sc, err) - }() - } - result.page, err = client.ListOperations(ctx) - return -} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/features.go b/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/features.go deleted file mode 100644 index 42088f87ad9a..000000000000 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/features.go +++ /dev/null @@ -1,491 +0,0 @@ -package features - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -import ( - "context" - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/Azure/go-autorest/tracing" - "net/http" -) - -// Client is the azure Feature Exposure Control (AFEC) provides a mechanism for the resource providers to control -// feature exposure to users. Resource providers typically use this mechanism to provide public/private preview for new -// features prior to making them generally available. Users need to explicitly register for AFEC features to get access -// to such functionality. -type Client struct { - BaseClient -} - -// NewClient creates an instance of the Client client. -func NewClient(subscriptionID string) Client { - return NewClientWithBaseURI(DefaultBaseURI, subscriptionID) -} - -// NewClientWithBaseURI creates an instance of the Client client using a custom endpoint. Use this when interacting -// with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). -func NewClientWithBaseURI(baseURI string, subscriptionID string) Client { - return Client{NewWithBaseURI(baseURI, subscriptionID)} -} - -// Get gets the preview feature with the specified name. -// Parameters: -// resourceProviderNamespace - the resource provider namespace for the feature. -// featureName - the name of the feature to get. -func (client Client) Get(ctx context.Context, resourceProviderNamespace string, featureName string) (result Result, err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/Client.Get") - defer func() { - sc := -1 - if result.Response.Response != nil { - sc = result.Response.Response.StatusCode - } - tracing.EndSpan(ctx, sc, err) - }() - } - req, err := client.GetPreparer(ctx, resourceProviderNamespace, featureName) - if err != nil { - err = autorest.NewErrorWithError(err, "features.Client", "Get", nil, "Failure preparing request") - return - } - - resp, err := client.GetSender(req) - if err != nil { - result.Response = autorest.Response{Response: resp} - err = autorest.NewErrorWithError(err, "features.Client", "Get", resp, "Failure sending request") - return - } - - result, err = client.GetResponder(resp) - if err != nil { - err = autorest.NewErrorWithError(err, "features.Client", "Get", resp, "Failure responding to request") - return - } - - return -} - -// GetPreparer prepares the Get request. -func (client Client) GetPreparer(ctx context.Context, resourceProviderNamespace string, featureName string) (*http.Request, error) { - pathParameters := map[string]interface{}{ - "featureName": autorest.Encode("path", featureName), - "resourceProviderNamespace": autorest.Encode("path", resourceProviderNamespace), - "subscriptionId": autorest.Encode("path", client.SubscriptionID), - } - - const APIVersion = "2015-12-01" - queryParameters := map[string]interface{}{ - "api-version": APIVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsGet(), - autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Features/providers/{resourceProviderNamespace}/features/{featureName}", pathParameters), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// GetSender sends the Get request. The method will close the -// http.Response Body if it receives an error. -func (client Client) GetSender(req *http.Request) (*http.Response, error) { - return client.Send(req, azure.DoRetryWithRegistration(client.Client)) -} - -// GetResponder handles the response to the Get request. The method always -// closes the http.Response Body. -func (client Client) GetResponder(resp *http.Response) (result Result, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result), - autorest.ByClosing()) - result.Response = autorest.Response{Response: resp} - return -} - -// List gets all the preview features in a provider namespace that are available through AFEC for the subscription. -// Parameters: -// resourceProviderNamespace - the namespace of the resource provider for getting features. -func (client Client) List(ctx context.Context, resourceProviderNamespace string) (result OperationsListResultPage, err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/Client.List") - defer func() { - sc := -1 - if result.olr.Response.Response != nil { - sc = result.olr.Response.Response.StatusCode - } - tracing.EndSpan(ctx, sc, err) - }() - } - result.fn = client.listNextResults - req, err := client.ListPreparer(ctx, resourceProviderNamespace) - if err != nil { - err = autorest.NewErrorWithError(err, "features.Client", "List", nil, "Failure preparing request") - return - } - - resp, err := client.ListSender(req) - if err != nil { - result.olr.Response = autorest.Response{Response: resp} - err = autorest.NewErrorWithError(err, "features.Client", "List", resp, "Failure sending request") - return - } - - result.olr, err = client.ListResponder(resp) - if err != nil { - err = autorest.NewErrorWithError(err, "features.Client", "List", resp, "Failure responding to request") - return - } - if result.olr.hasNextLink() && result.olr.IsEmpty() { - err = result.NextWithContext(ctx) - return - } - - return -} - -// ListPreparer prepares the List request. -func (client Client) ListPreparer(ctx context.Context, resourceProviderNamespace string) (*http.Request, error) { - pathParameters := map[string]interface{}{ - "resourceProviderNamespace": autorest.Encode("path", resourceProviderNamespace), - "subscriptionId": autorest.Encode("path", client.SubscriptionID), - } - - const APIVersion = "2015-12-01" - queryParameters := map[string]interface{}{ - "api-version": APIVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsGet(), - autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Features/providers/{resourceProviderNamespace}/features", pathParameters), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// ListSender sends the List request. The method will close the -// http.Response Body if it receives an error. -func (client Client) ListSender(req *http.Request) (*http.Response, error) { - return client.Send(req, azure.DoRetryWithRegistration(client.Client)) -} - -// ListResponder handles the response to the List request. The method always -// closes the http.Response Body. -func (client Client) ListResponder(resp *http.Response) (result OperationsListResult, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result), - autorest.ByClosing()) - result.Response = autorest.Response{Response: resp} - return -} - -// listNextResults retrieves the next set of results, if any. -func (client Client) listNextResults(ctx context.Context, lastResults OperationsListResult) (result OperationsListResult, err error) { - req, err := lastResults.operationsListResultPreparer(ctx) - if err != nil { - return result, autorest.NewErrorWithError(err, "features.Client", "listNextResults", nil, "Failure preparing next results request") - } - if req == nil { - return - } - resp, err := client.ListSender(req) - if err != nil { - result.Response = autorest.Response{Response: resp} - return result, autorest.NewErrorWithError(err, "features.Client", "listNextResults", resp, "Failure sending next results request") - } - result, err = client.ListResponder(resp) - if err != nil { - err = autorest.NewErrorWithError(err, "features.Client", "listNextResults", resp, "Failure responding to next results request") - } - return -} - -// ListComplete enumerates all values, automatically crossing page boundaries as required. -func (client Client) ListComplete(ctx context.Context, resourceProviderNamespace string) (result OperationsListResultIterator, err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/Client.List") - defer func() { - sc := -1 - if result.Response().Response.Response != nil { - sc = result.page.Response().Response.Response.StatusCode - } - tracing.EndSpan(ctx, sc, err) - }() - } - result.page, err = client.List(ctx, resourceProviderNamespace) - return -} - -// ListAll gets all the preview features that are available through AFEC for the subscription. -func (client Client) ListAll(ctx context.Context) (result OperationsListResultPage, err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/Client.ListAll") - defer func() { - sc := -1 - if result.olr.Response.Response != nil { - sc = result.olr.Response.Response.StatusCode - } - tracing.EndSpan(ctx, sc, err) - }() - } - result.fn = client.listAllNextResults - req, err := client.ListAllPreparer(ctx) - if err != nil { - err = autorest.NewErrorWithError(err, "features.Client", "ListAll", nil, "Failure preparing request") - return - } - - resp, err := client.ListAllSender(req) - if err != nil { - result.olr.Response = autorest.Response{Response: resp} - err = autorest.NewErrorWithError(err, "features.Client", "ListAll", resp, "Failure sending request") - return - } - - result.olr, err = client.ListAllResponder(resp) - if err != nil { - err = autorest.NewErrorWithError(err, "features.Client", "ListAll", resp, "Failure responding to request") - return - } - if result.olr.hasNextLink() && result.olr.IsEmpty() { - err = result.NextWithContext(ctx) - return - } - - return -} - -// ListAllPreparer prepares the ListAll request. -func (client Client) ListAllPreparer(ctx context.Context) (*http.Request, error) { - pathParameters := map[string]interface{}{ - "subscriptionId": autorest.Encode("path", client.SubscriptionID), - } - - const APIVersion = "2015-12-01" - queryParameters := map[string]interface{}{ - "api-version": APIVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsGet(), - autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Features/features", pathParameters), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// ListAllSender sends the ListAll request. The method will close the -// http.Response Body if it receives an error. -func (client Client) ListAllSender(req *http.Request) (*http.Response, error) { - return client.Send(req, azure.DoRetryWithRegistration(client.Client)) -} - -// ListAllResponder handles the response to the ListAll request. The method always -// closes the http.Response Body. -func (client Client) ListAllResponder(resp *http.Response) (result OperationsListResult, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result), - autorest.ByClosing()) - result.Response = autorest.Response{Response: resp} - return -} - -// listAllNextResults retrieves the next set of results, if any. -func (client Client) listAllNextResults(ctx context.Context, lastResults OperationsListResult) (result OperationsListResult, err error) { - req, err := lastResults.operationsListResultPreparer(ctx) - if err != nil { - return result, autorest.NewErrorWithError(err, "features.Client", "listAllNextResults", nil, "Failure preparing next results request") - } - if req == nil { - return - } - resp, err := client.ListAllSender(req) - if err != nil { - result.Response = autorest.Response{Response: resp} - return result, autorest.NewErrorWithError(err, "features.Client", "listAllNextResults", resp, "Failure sending next results request") - } - result, err = client.ListAllResponder(resp) - if err != nil { - err = autorest.NewErrorWithError(err, "features.Client", "listAllNextResults", resp, "Failure responding to next results request") - } - return -} - -// ListAllComplete enumerates all values, automatically crossing page boundaries as required. -func (client Client) ListAllComplete(ctx context.Context) (result OperationsListResultIterator, err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/Client.ListAll") - defer func() { - sc := -1 - if result.Response().Response.Response != nil { - sc = result.page.Response().Response.Response.StatusCode - } - tracing.EndSpan(ctx, sc, err) - }() - } - result.page, err = client.ListAll(ctx) - return -} - -// Register registers the preview feature for the subscription. -// Parameters: -// resourceProviderNamespace - the namespace of the resource provider. -// featureName - the name of the feature to register. -func (client Client) Register(ctx context.Context, resourceProviderNamespace string, featureName string) (result Result, err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/Client.Register") - defer func() { - sc := -1 - if result.Response.Response != nil { - sc = result.Response.Response.StatusCode - } - tracing.EndSpan(ctx, sc, err) - }() - } - req, err := client.RegisterPreparer(ctx, resourceProviderNamespace, featureName) - if err != nil { - err = autorest.NewErrorWithError(err, "features.Client", "Register", nil, "Failure preparing request") - return - } - - resp, err := client.RegisterSender(req) - if err != nil { - result.Response = autorest.Response{Response: resp} - err = autorest.NewErrorWithError(err, "features.Client", "Register", resp, "Failure sending request") - return - } - - result, err = client.RegisterResponder(resp) - if err != nil { - err = autorest.NewErrorWithError(err, "features.Client", "Register", resp, "Failure responding to request") - return - } - - return -} - -// RegisterPreparer prepares the Register request. -func (client Client) RegisterPreparer(ctx context.Context, resourceProviderNamespace string, featureName string) (*http.Request, error) { - pathParameters := map[string]interface{}{ - "featureName": autorest.Encode("path", featureName), - "resourceProviderNamespace": autorest.Encode("path", resourceProviderNamespace), - "subscriptionId": autorest.Encode("path", client.SubscriptionID), - } - - const APIVersion = "2015-12-01" - queryParameters := map[string]interface{}{ - "api-version": APIVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsPost(), - autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Features/providers/{resourceProviderNamespace}/features/{featureName}/register", pathParameters), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// RegisterSender sends the Register request. The method will close the -// http.Response Body if it receives an error. -func (client Client) RegisterSender(req *http.Request) (*http.Response, error) { - return client.Send(req, azure.DoRetryWithRegistration(client.Client)) -} - -// RegisterResponder handles the response to the Register request. The method always -// closes the http.Response Body. -func (client Client) RegisterResponder(resp *http.Response) (result Result, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result), - autorest.ByClosing()) - result.Response = autorest.Response{Response: resp} - return -} - -// Unregister unregisters the preview feature for the subscription. -// Parameters: -// resourceProviderNamespace - the namespace of the resource provider. -// featureName - the name of the feature to unregister. -func (client Client) Unregister(ctx context.Context, resourceProviderNamespace string, featureName string) (result Result, err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/Client.Unregister") - defer func() { - sc := -1 - if result.Response.Response != nil { - sc = result.Response.Response.StatusCode - } - tracing.EndSpan(ctx, sc, err) - }() - } - req, err := client.UnregisterPreparer(ctx, resourceProviderNamespace, featureName) - if err != nil { - err = autorest.NewErrorWithError(err, "features.Client", "Unregister", nil, "Failure preparing request") - return - } - - resp, err := client.UnregisterSender(req) - if err != nil { - result.Response = autorest.Response{Response: resp} - err = autorest.NewErrorWithError(err, "features.Client", "Unregister", resp, "Failure sending request") - return - } - - result, err = client.UnregisterResponder(resp) - if err != nil { - err = autorest.NewErrorWithError(err, "features.Client", "Unregister", resp, "Failure responding to request") - return - } - - return -} - -// UnregisterPreparer prepares the Unregister request. -func (client Client) UnregisterPreparer(ctx context.Context, resourceProviderNamespace string, featureName string) (*http.Request, error) { - pathParameters := map[string]interface{}{ - "featureName": autorest.Encode("path", featureName), - "resourceProviderNamespace": autorest.Encode("path", resourceProviderNamespace), - "subscriptionId": autorest.Encode("path", client.SubscriptionID), - } - - const APIVersion = "2015-12-01" - queryParameters := map[string]interface{}{ - "api-version": APIVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsPost(), - autorest.WithBaseURL(client.BaseURI), - autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Features/providers/{resourceProviderNamespace}/features/{featureName}/unregister", pathParameters), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// UnregisterSender sends the Unregister request. The method will close the -// http.Response Body if it receives an error. -func (client Client) UnregisterSender(req *http.Request) (*http.Response, error) { - return client.Send(req, azure.DoRetryWithRegistration(client.Client)) -} - -// UnregisterResponder handles the response to the Unregister request. The method always -// closes the http.Response Body. -func (client Client) UnregisterResponder(resp *http.Response) (result Result, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result), - autorest.ByClosing()) - result.Response = autorest.Response{Response: resp} - return -} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/models.go b/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/models.go deleted file mode 100644 index d5b01ec00530..000000000000 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/models.go +++ /dev/null @@ -1,374 +0,0 @@ -package features - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -import ( - "context" - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/to" - "github.com/Azure/go-autorest/tracing" - "net/http" -) - -// The package's fully qualified name. -const fqdn = "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features" - -// Operation microsoft.Features operation -type Operation struct { - // Name - Operation name: {provider}/{resource}/{operation} - Name *string `json:"name,omitempty"` - // Display - The object that represents the operation. - Display *OperationDisplay `json:"display,omitempty"` -} - -// OperationDisplay the object that represents the operation. -type OperationDisplay struct { - // Provider - Service provider: Microsoft.Features - Provider *string `json:"provider,omitempty"` - // Resource - Resource on which the operation is performed: Profile, endpoint, etc. - Resource *string `json:"resource,omitempty"` - // Operation - Operation type: Read, write, delete, etc. - Operation *string `json:"operation,omitempty"` -} - -// OperationListResult result of the request to list Microsoft.Features operations. It contains a list of -// operations and a URL link to get the next set of results. -type OperationListResult struct { - autorest.Response `json:"-"` - // Value - List of Microsoft.Features operations. - Value *[]Operation `json:"value,omitempty"` - // NextLink - URL to get the next set of operation list results if there are any. - NextLink *string `json:"nextLink,omitempty"` -} - -// OperationListResultIterator provides access to a complete listing of Operation values. -type OperationListResultIterator struct { - i int - page OperationListResultPage -} - -// NextWithContext advances to the next value. If there was an error making -// the request the iterator does not advance and the error is returned. -func (iter *OperationListResultIterator) NextWithContext(ctx context.Context) (err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/OperationListResultIterator.NextWithContext") - defer func() { - sc := -1 - if iter.Response().Response.Response != nil { - sc = iter.Response().Response.Response.StatusCode - } - tracing.EndSpan(ctx, sc, err) - }() - } - iter.i++ - if iter.i < len(iter.page.Values()) { - return nil - } - err = iter.page.NextWithContext(ctx) - if err != nil { - iter.i-- - return err - } - iter.i = 0 - return nil -} - -// Next advances to the next value. If there was an error making -// the request the iterator does not advance and the error is returned. -// Deprecated: Use NextWithContext() instead. -func (iter *OperationListResultIterator) Next() error { - return iter.NextWithContext(context.Background()) -} - -// NotDone returns true if the enumeration should be started or is not yet complete. -func (iter OperationListResultIterator) NotDone() bool { - return iter.page.NotDone() && iter.i < len(iter.page.Values()) -} - -// Response returns the raw server response from the last page request. -func (iter OperationListResultIterator) Response() OperationListResult { - return iter.page.Response() -} - -// Value returns the current value or a zero-initialized value if the -// iterator has advanced beyond the end of the collection. -func (iter OperationListResultIterator) Value() Operation { - if !iter.page.NotDone() { - return Operation{} - } - return iter.page.Values()[iter.i] -} - -// Creates a new instance of the OperationListResultIterator type. -func NewOperationListResultIterator(page OperationListResultPage) OperationListResultIterator { - return OperationListResultIterator{page: page} -} - -// IsEmpty returns true if the ListResult contains no values. -func (olr OperationListResult) IsEmpty() bool { - return olr.Value == nil || len(*olr.Value) == 0 -} - -// hasNextLink returns true if the NextLink is not empty. -func (olr OperationListResult) hasNextLink() bool { - return olr.NextLink != nil && len(*olr.NextLink) != 0 -} - -// operationListResultPreparer prepares a request to retrieve the next set of results. -// It returns nil if no more results exist. -func (olr OperationListResult) operationListResultPreparer(ctx context.Context) (*http.Request, error) { - if !olr.hasNextLink() { - return nil, nil - } - return autorest.Prepare((&http.Request{}).WithContext(ctx), - autorest.AsJSON(), - autorest.AsGet(), - autorest.WithBaseURL(to.String(olr.NextLink))) -} - -// OperationListResultPage contains a page of Operation values. -type OperationListResultPage struct { - fn func(context.Context, OperationListResult) (OperationListResult, error) - olr OperationListResult -} - -// NextWithContext advances to the next page of values. If there was an error making -// the request the page does not advance and the error is returned. -func (page *OperationListResultPage) NextWithContext(ctx context.Context) (err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/OperationListResultPage.NextWithContext") - defer func() { - sc := -1 - if page.Response().Response.Response != nil { - sc = page.Response().Response.Response.StatusCode - } - tracing.EndSpan(ctx, sc, err) - }() - } - for { - next, err := page.fn(ctx, page.olr) - if err != nil { - return err - } - page.olr = next - if !next.hasNextLink() || !next.IsEmpty() { - break - } - } - return nil -} - -// Next advances to the next page of values. If there was an error making -// the request the page does not advance and the error is returned. -// Deprecated: Use NextWithContext() instead. -func (page *OperationListResultPage) Next() error { - return page.NextWithContext(context.Background()) -} - -// NotDone returns true if the page enumeration should be started or is not yet complete. -func (page OperationListResultPage) NotDone() bool { - return !page.olr.IsEmpty() -} - -// Response returns the raw server response from the last page request. -func (page OperationListResultPage) Response() OperationListResult { - return page.olr -} - -// Values returns the slice of values for the current page or nil if there are no values. -func (page OperationListResultPage) Values() []Operation { - if page.olr.IsEmpty() { - return nil - } - return *page.olr.Value -} - -// Creates a new instance of the OperationListResultPage type. -func NewOperationListResultPage(cur OperationListResult, getNextPage func(context.Context, OperationListResult) (OperationListResult, error)) OperationListResultPage { - return OperationListResultPage{ - fn: getNextPage, - olr: cur, - } -} - -// OperationsListResult list of previewed features. -type OperationsListResult struct { - autorest.Response `json:"-"` - // Value - The array of features. - Value *[]Result `json:"value,omitempty"` - // NextLink - The URL to use for getting the next set of results. - NextLink *string `json:"nextLink,omitempty"` -} - -// OperationsListResultIterator provides access to a complete listing of Result values. -type OperationsListResultIterator struct { - i int - page OperationsListResultPage -} - -// NextWithContext advances to the next value. If there was an error making -// the request the iterator does not advance and the error is returned. -func (iter *OperationsListResultIterator) NextWithContext(ctx context.Context) (err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/OperationsListResultIterator.NextWithContext") - defer func() { - sc := -1 - if iter.Response().Response.Response != nil { - sc = iter.Response().Response.Response.StatusCode - } - tracing.EndSpan(ctx, sc, err) - }() - } - iter.i++ - if iter.i < len(iter.page.Values()) { - return nil - } - err = iter.page.NextWithContext(ctx) - if err != nil { - iter.i-- - return err - } - iter.i = 0 - return nil -} - -// Next advances to the next value. If there was an error making -// the request the iterator does not advance and the error is returned. -// Deprecated: Use NextWithContext() instead. -func (iter *OperationsListResultIterator) Next() error { - return iter.NextWithContext(context.Background()) -} - -// NotDone returns true if the enumeration should be started or is not yet complete. -func (iter OperationsListResultIterator) NotDone() bool { - return iter.page.NotDone() && iter.i < len(iter.page.Values()) -} - -// Response returns the raw server response from the last page request. -func (iter OperationsListResultIterator) Response() OperationsListResult { - return iter.page.Response() -} - -// Value returns the current value or a zero-initialized value if the -// iterator has advanced beyond the end of the collection. -func (iter OperationsListResultIterator) Value() Result { - if !iter.page.NotDone() { - return Result{} - } - return iter.page.Values()[iter.i] -} - -// Creates a new instance of the OperationsListResultIterator type. -func NewOperationsListResultIterator(page OperationsListResultPage) OperationsListResultIterator { - return OperationsListResultIterator{page: page} -} - -// IsEmpty returns true if the ListResult contains no values. -func (olr OperationsListResult) IsEmpty() bool { - return olr.Value == nil || len(*olr.Value) == 0 -} - -// hasNextLink returns true if the NextLink is not empty. -func (olr OperationsListResult) hasNextLink() bool { - return olr.NextLink != nil && len(*olr.NextLink) != 0 -} - -// operationsListResultPreparer prepares a request to retrieve the next set of results. -// It returns nil if no more results exist. -func (olr OperationsListResult) operationsListResultPreparer(ctx context.Context) (*http.Request, error) { - if !olr.hasNextLink() { - return nil, nil - } - return autorest.Prepare((&http.Request{}).WithContext(ctx), - autorest.AsJSON(), - autorest.AsGet(), - autorest.WithBaseURL(to.String(olr.NextLink))) -} - -// OperationsListResultPage contains a page of Result values. -type OperationsListResultPage struct { - fn func(context.Context, OperationsListResult) (OperationsListResult, error) - olr OperationsListResult -} - -// NextWithContext advances to the next page of values. If there was an error making -// the request the page does not advance and the error is returned. -func (page *OperationsListResultPage) NextWithContext(ctx context.Context) (err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/OperationsListResultPage.NextWithContext") - defer func() { - sc := -1 - if page.Response().Response.Response != nil { - sc = page.Response().Response.Response.StatusCode - } - tracing.EndSpan(ctx, sc, err) - }() - } - for { - next, err := page.fn(ctx, page.olr) - if err != nil { - return err - } - page.olr = next - if !next.hasNextLink() || !next.IsEmpty() { - break - } - } - return nil -} - -// Next advances to the next page of values. If there was an error making -// the request the page does not advance and the error is returned. -// Deprecated: Use NextWithContext() instead. -func (page *OperationsListResultPage) Next() error { - return page.NextWithContext(context.Background()) -} - -// NotDone returns true if the page enumeration should be started or is not yet complete. -func (page OperationsListResultPage) NotDone() bool { - return !page.olr.IsEmpty() -} - -// Response returns the raw server response from the last page request. -func (page OperationsListResultPage) Response() OperationsListResult { - return page.olr -} - -// Values returns the slice of values for the current page or nil if there are no values. -func (page OperationsListResultPage) Values() []Result { - if page.olr.IsEmpty() { - return nil - } - return *page.olr.Value -} - -// Creates a new instance of the OperationsListResultPage type. -func NewOperationsListResultPage(cur OperationsListResult, getNextPage func(context.Context, OperationsListResult) (OperationsListResult, error)) OperationsListResultPage { - return OperationsListResultPage{ - fn: getNextPage, - olr: cur, - } -} - -// Properties information about feature. -type Properties struct { - // State - The registration state of the feature for the subscription. - State *string `json:"state,omitempty"` -} - -// Result previewed feature information. -type Result struct { - autorest.Response `json:"-"` - // Name - The name of the feature. - Name *string `json:"name,omitempty"` - // Properties - Properties of the previewed feature. - Properties *Properties `json:"properties,omitempty"` - // ID - The resource ID of the feature. - ID *string `json:"id,omitempty"` - // Type - The resource type of the feature. - Type *string `json:"type,omitempty"` -} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/version.go b/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/version.go deleted file mode 100644 index 382caa0ee967..000000000000 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features/version.go +++ /dev/null @@ -1,19 +0,0 @@ -package features - -import "github.com/Azure/azure-sdk-for-go/version" - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -// UserAgent returns the UserAgent string to use when sending http.Requests. -func UserAgent() string { - return "Azure-SDK-For-Go/" + Version() + " features/2015-12-01" -} - -// Version returns the semantic version (see http://semver.org) of the client. -func Version() string { - return version.Number -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/README.md new file mode 100644 index 000000000000..e6f3ac4be9fe --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/README.md @@ -0,0 +1,102 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features` Documentation + +The `features` SDK allows for interaction with the Azure Resource Manager Service `resources` (API Version `2021-07-01`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features" +``` + + +### Client Initialization + +```go +client := features.NewFeaturesClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `FeaturesClient.Get` + +```go +ctx := context.TODO() +id := features.NewFeatureID("12345678-1234-9876-4563-123456789012", "providerValue", "featureValue") + +read, err := client.Get(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `FeaturesClient.List` + +```go +ctx := context.TODO() +id := features.NewProviders2ID("12345678-1234-9876-4563-123456789012", "providerValue") + +// alternatively `client.List(ctx, id)` can be used to do batched pagination +items, err := client.ListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `FeaturesClient.ListAll` + +```go +ctx := context.TODO() +id := features.NewSubscriptionID("12345678-1234-9876-4563-123456789012") + +// alternatively `client.ListAll(ctx, id)` can be used to do batched pagination +items, err := client.ListAllComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `FeaturesClient.Register` + +```go +ctx := context.TODO() +id := features.NewFeatureID("12345678-1234-9876-4563-123456789012", "providerValue", "featureValue") + +read, err := client.Register(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `FeaturesClient.Unregister` + +```go +ctx := context.TODO() +id := features.NewFeatureID("12345678-1234-9876-4563-123456789012", "providerValue", "featureValue") + +read, err := client.Unregister(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/client.go new file mode 100644 index 000000000000..9849a64bcf6d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/client.go @@ -0,0 +1,26 @@ +package features + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type FeaturesClient struct { + Client *resourcemanager.Client +} + +func NewFeaturesClientWithBaseURI(sdkApi sdkEnv.Api) (*FeaturesClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "features", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating FeaturesClient: %+v", err) + } + + return &FeaturesClient{ + Client: client, + }, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/id_feature.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/id_feature.go new file mode 100644 index 000000000000..9023d1d55195 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/id_feature.go @@ -0,0 +1,127 @@ +package features + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = FeatureId{} + +// FeatureId is a struct representing the Resource ID for a Feature +type FeatureId struct { + SubscriptionId string + ProviderName string + FeatureName string +} + +// NewFeatureID returns a new FeatureId struct +func NewFeatureID(subscriptionId string, providerName string, featureName string) FeatureId { + return FeatureId{ + SubscriptionId: subscriptionId, + ProviderName: providerName, + FeatureName: featureName, + } +} + +// ParseFeatureID parses 'input' into a FeatureId +func ParseFeatureID(input string) (*FeatureId, error) { + parser := resourceids.NewParserFromResourceIdType(FeatureId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := FeatureId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ProviderName, ok = parsed.Parsed["providerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "providerName", *parsed) + } + + if id.FeatureName, ok = parsed.Parsed["featureName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "featureName", *parsed) + } + + return &id, nil +} + +// ParseFeatureIDInsensitively parses 'input' case-insensitively into a FeatureId +// note: this method should only be used for API response data and not user input +func ParseFeatureIDInsensitively(input string) (*FeatureId, error) { + parser := resourceids.NewParserFromResourceIdType(FeatureId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := FeatureId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ProviderName, ok = parsed.Parsed["providerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "providerName", *parsed) + } + + if id.FeatureName, ok = parsed.Parsed["featureName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "featureName", *parsed) + } + + return &id, nil +} + +// ValidateFeatureID checks that 'input' can be parsed as a Feature ID +func ValidateFeatureID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseFeatureID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Feature ID +func (id FeatureId) ID() string { + fmtString := "/subscriptions/%s/providers/Microsoft.Features/providers/%s/features/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ProviderName, id.FeatureName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Feature ID +func (id FeatureId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftFeatures", "Microsoft.Features", "Microsoft.Features"), + resourceids.StaticSegment("staticProviders2", "providers", "providers"), + resourceids.UserSpecifiedSegment("providerName", "providerValue"), + resourceids.StaticSegment("staticFeatures", "features", "features"), + resourceids.UserSpecifiedSegment("featureName", "featureValue"), + } +} + +// String returns a human-readable description of this Feature ID +func (id FeatureId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Provider Name: %q", id.ProviderName), + fmt.Sprintf("Feature Name: %q", id.FeatureName), + } + return fmt.Sprintf("Feature (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/id_providers2.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/id_providers2.go new file mode 100644 index 000000000000..7345618cb9be --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/id_providers2.go @@ -0,0 +1,114 @@ +package features + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = Providers2Id{} + +// Providers2Id is a struct representing the Resource ID for a Providers 2 +type Providers2Id struct { + SubscriptionId string + ProviderName string +} + +// NewProviders2ID returns a new Providers2Id struct +func NewProviders2ID(subscriptionId string, providerName string) Providers2Id { + return Providers2Id{ + SubscriptionId: subscriptionId, + ProviderName: providerName, + } +} + +// ParseProviders2ID parses 'input' into a Providers2Id +func ParseProviders2ID(input string) (*Providers2Id, error) { + parser := resourceids.NewParserFromResourceIdType(Providers2Id{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := Providers2Id{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ProviderName, ok = parsed.Parsed["providerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "providerName", *parsed) + } + + return &id, nil +} + +// ParseProviders2IDInsensitively parses 'input' case-insensitively into a Providers2Id +// note: this method should only be used for API response data and not user input +func ParseProviders2IDInsensitively(input string) (*Providers2Id, error) { + parser := resourceids.NewParserFromResourceIdType(Providers2Id{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := Providers2Id{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ProviderName, ok = parsed.Parsed["providerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "providerName", *parsed) + } + + return &id, nil +} + +// ValidateProviders2ID checks that 'input' can be parsed as a Providers 2 ID +func ValidateProviders2ID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseProviders2ID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Providers 2 ID +func (id Providers2Id) ID() string { + fmtString := "/subscriptions/%s/providers/Microsoft.Features/providers/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ProviderName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Providers 2 ID +func (id Providers2Id) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftFeatures", "Microsoft.Features", "Microsoft.Features"), + resourceids.StaticSegment("staticProviders2", "providers", "providers"), + resourceids.UserSpecifiedSegment("providerName", "providerValue"), + } +} + +// String returns a human-readable description of this Providers 2 ID +func (id Providers2Id) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Provider Name: %q", id.ProviderName), + } + return fmt.Sprintf("Providers 2 (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_get.go new file mode 100644 index 000000000000..3a95f5ff9382 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_get.go @@ -0,0 +1,51 @@ +package features + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *FeatureResult +} + +// Get ... +func (c FeaturesClient) Get(ctx context.Context, id FeatureId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_list.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_list.go new file mode 100644 index 000000000000..c719ccc38a7f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_list.go @@ -0,0 +1,89 @@ +package features + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]FeatureResult +} + +type ListCompleteResult struct { + Items []FeatureResult +} + +// List ... +func (c FeaturesClient) List(ctx context.Context, id Providers2Id) (result ListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/features", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]FeatureResult `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListComplete retrieves all the results into a single object +func (c FeaturesClient) ListComplete(ctx context.Context, id Providers2Id) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, FeatureResultOperationPredicate{}) +} + +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c FeaturesClient) ListCompleteMatchingPredicate(ctx context.Context, id Providers2Id, predicate FeatureResultOperationPredicate) (result ListCompleteResult, err error) { + items := make([]FeatureResult, 0) + + resp, err := c.List(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_listall.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_listall.go new file mode 100644 index 000000000000..776f59daae66 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_listall.go @@ -0,0 +1,90 @@ +package features + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListAllOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]FeatureResult +} + +type ListAllCompleteResult struct { + Items []FeatureResult +} + +// ListAll ... +func (c FeaturesClient) ListAll(ctx context.Context, id commonids.SubscriptionId) (result ListAllOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.Features/features", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]FeatureResult `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListAllComplete retrieves all the results into a single object +func (c FeaturesClient) ListAllComplete(ctx context.Context, id commonids.SubscriptionId) (ListAllCompleteResult, error) { + return c.ListAllCompleteMatchingPredicate(ctx, id, FeatureResultOperationPredicate{}) +} + +// ListAllCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c FeaturesClient) ListAllCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate FeatureResultOperationPredicate) (result ListAllCompleteResult, err error) { + items := make([]FeatureResult, 0) + + resp, err := c.ListAll(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListAllCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_register.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_register.go new file mode 100644 index 000000000000..2ca170646db8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_register.go @@ -0,0 +1,52 @@ +package features + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type RegisterOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *FeatureResult +} + +// Register ... +func (c FeaturesClient) Register(ctx context.Context, id FeatureId) (result RegisterOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/register", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_unregister.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_unregister.go new file mode 100644 index 000000000000..5c3c169a65d2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/method_unregister.go @@ -0,0 +1,52 @@ +package features + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UnregisterOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *FeatureResult +} + +// Unregister ... +func (c FeaturesClient) Unregister(ctx context.Context, id FeatureId) (result UnregisterOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/unregister", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/model_featureproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/model_featureproperties.go new file mode 100644 index 000000000000..d17c8e9bdfe7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/model_featureproperties.go @@ -0,0 +1,8 @@ +package features + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type FeatureProperties struct { + State *string `json:"state,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/model_featureresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/model_featureresult.go new file mode 100644 index 000000000000..d827245ed7ec --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/model_featureresult.go @@ -0,0 +1,11 @@ +package features + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type FeatureResult struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *FeatureProperties `json:"properties,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/predicates.go new file mode 100644 index 000000000000..8147c77b38ca --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/predicates.go @@ -0,0 +1,27 @@ +package features + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type FeatureResultOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p FeatureResultOperationPredicate) Matches(input FeatureResult) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/version.go new file mode 100644 index 000000000000..02fe19a714cf --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features/version.go @@ -0,0 +1,12 @@ +package features + +import "fmt" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +const defaultApiVersion = "2021-07-01" + +func userAgent() string { + return fmt.Sprintf("hashicorp/go-azure-sdk/features/%s", defaultApiVersion) +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 293904c20610..36cb8d7fe320 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -21,7 +21,6 @@ github.com/Azure/azure-sdk-for-go/services/preview/sql/mgmt/v5.0/sql github.com/Azure/azure-sdk-for-go/services/preview/synapse/mgmt/v2.0/synapse github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2021-12-01/backup -github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2015-12-01/features github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2020-05-01/managementgroups github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2020-06-01/resources github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2021-01-01/subscriptions @@ -802,6 +801,7 @@ github.com/hashicorp/go-azure-sdk/resource-manager/relay/2021-11-01/hybridconnec github.com/hashicorp/go-azure-sdk/resource-manager/relay/2021-11-01/namespaces github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/managementlocks github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-10-01/deploymentscripts +github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features github.com/hashicorp/go-azure-sdk/resource-manager/resources/2022-06-01/policyassignments github.com/hashicorp/go-azure-sdk/resource-manager/resources/2022-09-01/providers github.com/hashicorp/go-azure-sdk/resource-manager/search/2022-09-01/adminkeys From dffbd89915773942ce943e6a2e131ae38511ca5a Mon Sep 17 00:00:00 2001 From: stephybun Date: Thu, 24 Aug 2023 16:52:33 +0200 Subject: [PATCH 025/336] Update for #22952 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a434a9c585bc..708fea6f921a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ ENHANCEMENTS: * `azurerm_storage_management_policy` - move to `hashicorp/go-azure-sdk` [GH-23035] * Data Source: `azurerm_disk_encryption_set` - add support for the `identity` block [GH-23005] * `azurerm_container_group` - Support `sku` and `(init_)container.*.security` [GH-23034] +* `azurerm_kubernetes_cluster` - clusters can be updated to use the `cilium` dataplane by setting the value in `ebpf_data_plane` [GH-22952] * `azurerm_linux_virtual_machine_scale_set` - cancel rolling upgrades that are in progress before destroying the resource [GH-22991] * `azurerm_windows_virtual_machine_scale_set` - cancel rolling upgrades that are in progress before destroying the resource [GH-22991] * `azurerm_synapse_spark_pool` - support addtional values for the `node_size_family` property [GH-23040] From 6c7b0cc426d67081d049a15bc64d33c12c60ed52 Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Thu, 24 Aug 2023 18:26:43 +0100 Subject: [PATCH 026/336] Service: `appservice` - rename `win32_status` to `win32_status_code` (#23075) --- internal/services/appservice/helpers/auto_heal.go | 6 +++--- .../services/appservice/helpers/linux_web_app_schema.go | 4 ++-- .../services/appservice/windows_web_app_resource_test.go | 2 +- website/docs/d/linux_web_app.html.markdown | 2 +- website/docs/d/windows_web_app.html.markdown | 2 +- website/docs/r/linux_web_app.html.markdown | 2 +- website/docs/r/linux_web_app_slot.html.markdown | 2 +- website/docs/r/windows_web_app.html.markdown | 2 +- website/docs/r/windows_web_app_slot.html.markdown | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/internal/services/appservice/helpers/auto_heal.go b/internal/services/appservice/helpers/auto_heal.go index be513676fefa..06a00c5fa62e 100644 --- a/internal/services/appservice/helpers/auto_heal.go +++ b/internal/services/appservice/helpers/auto_heal.go @@ -34,7 +34,7 @@ type AutoHealRequestTrigger struct { type AutoHealStatusCodeTrigger struct { StatusCodeRange string `tfschema:"status_code_range"` // Conflicts with `StatusCode`, `Win32Code`, and `SubStatus` when not a single value... SubStatus int `tfschema:"sub_status"` - Win32Status int `tfschema:"win32_status"` + Win32Status int `tfschema:"win32_status_code"` Path string `tfschema:"path"` Count int `tfschema:"count"` Interval string `tfschema:"interval"` // Format - hh:mm:ss @@ -240,7 +240,7 @@ func autoHealTriggerSchemaWindows() *pluginsdk.Schema { Optional: true, }, - "win32_status": { + "win32_status_code": { Type: pluginsdk.TypeInt, Optional: true, }, @@ -345,7 +345,7 @@ func autoHealTriggerSchemaWindowsComputed() *pluginsdk.Schema { Computed: true, }, - "win32_status": { + "win32_status_code": { Type: pluginsdk.TypeInt, Computed: true, }, diff --git a/internal/services/appservice/helpers/linux_web_app_schema.go b/internal/services/appservice/helpers/linux_web_app_schema.go index f752b99ac248..646a4f7c6724 100644 --- a/internal/services/appservice/helpers/linux_web_app_schema.go +++ b/internal/services/appservice/helpers/linux_web_app_schema.go @@ -581,7 +581,7 @@ func autoHealTriggerSchemaLinux() *pluginsdk.Schema { ValidateFunc: nil, // TODO - no docs on this, needs investigation }, - "win32_status": { + "win32_status_code": { Type: pluginsdk.TypeInt, Optional: true, ValidateFunc: nil, // TODO - no docs on this, needs investigation @@ -682,7 +682,7 @@ func autoHealTriggerSchemaLinuxComputed() *pluginsdk.Schema { Computed: true, }, - "win32_status": { + "win32_status_code": { Type: pluginsdk.TypeInt, Computed: true, }, diff --git a/internal/services/appservice/windows_web_app_resource_test.go b/internal/services/appservice/windows_web_app_resource_test.go index 27eeebcb009f..f1bfea96c5b0 100644 --- a/internal/services/appservice/windows_web_app_resource_test.go +++ b/internal/services/appservice/windows_web_app_resource_test.go @@ -2703,7 +2703,7 @@ resource "azurerm_windows_web_app" "test" { count = 1 status_code_range = 500 sub_status = 30 - win32_status = 0 + win32_status_code = 0 interval = "00:10:00" } } diff --git a/website/docs/d/linux_web_app.html.markdown b/website/docs/d/linux_web_app.html.markdown index 51e97dd5e602..11101b402b8d 100644 --- a/website/docs/d/linux_web_app.html.markdown +++ b/website/docs/d/linux_web_app.html.markdown @@ -653,7 +653,7 @@ A `status_code` block exports the following: * `sub_status` - The Request Sub Status of the Status Code. -* `win32_status` - The Win32 Status Code of the Request. +* `win32_status_code` - The Win32 Status Code of the Request. --- diff --git a/website/docs/d/windows_web_app.html.markdown b/website/docs/d/windows_web_app.html.markdown index 926ed130c83b..804743da7afd 100644 --- a/website/docs/d/windows_web_app.html.markdown +++ b/website/docs/d/windows_web_app.html.markdown @@ -659,7 +659,7 @@ A `status_code` block exports the following: * `sub_status` - The Request Sub Status of the Status Code. -* `win32_status` - The Win32 Status Code of the Request. +* `win32_status_code` - The Win32 Status Code of the Request. --- diff --git a/website/docs/r/linux_web_app.html.markdown b/website/docs/r/linux_web_app.html.markdown index 1d06658be5e2..4b31cba7063d 100644 --- a/website/docs/r/linux_web_app.html.markdown +++ b/website/docs/r/linux_web_app.html.markdown @@ -752,7 +752,7 @@ A `status_code` block supports the following: * `sub_status` - (Optional) The Request Sub Status of the Status Code. -* `win32_status` - (Optional) The Win32 Status Code of the Request. +* `win32_status_code` - (Optional) The Win32 Status Code of the Request. --- diff --git a/website/docs/r/linux_web_app_slot.html.markdown b/website/docs/r/linux_web_app_slot.html.markdown index 577bb2cbbd31..0d89db0760f2 100644 --- a/website/docs/r/linux_web_app_slot.html.markdown +++ b/website/docs/r/linux_web_app_slot.html.markdown @@ -756,7 +756,7 @@ A `status_code` block supports the following: * `sub_status` - (Optional) The Request Sub Status of the Status Code. -* `win32_status` - (Optional) The Win32 Status Code of the Request. +* `win32_status_code` - (Optional) The Win32 Status Code of the Request. --- diff --git a/website/docs/r/windows_web_app.html.markdown b/website/docs/r/windows_web_app.html.markdown index 0cbf4444b15b..ccbea7e0c024 100644 --- a/website/docs/r/windows_web_app.html.markdown +++ b/website/docs/r/windows_web_app.html.markdown @@ -772,7 +772,7 @@ A `status_code` block supports the following: * `sub_status` - (Optional) The Request Sub Status of the Status Code. -* `win32_status` - (Optional) The Win32 Status Code of the Request. +* `win32_status_code` - (Optional) The Win32 Status Code of the Request. --- diff --git a/website/docs/r/windows_web_app_slot.html.markdown b/website/docs/r/windows_web_app_slot.html.markdown index fab683ba3521..bb3ca2b16395 100644 --- a/website/docs/r/windows_web_app_slot.html.markdown +++ b/website/docs/r/windows_web_app_slot.html.markdown @@ -770,7 +770,7 @@ A `status_code` block supports the following: * `sub_status` - (Optional) The Request Sub Status of the Status Code. -* `win32_status` - (Optional) The Win32 Status Code of the Request. +* `win32_status_code` - (Optional) The Win32 Status Code of the Request. --- From 3ada2638fa77d28204dd4c4d83ab0a4561602dee Mon Sep 17 00:00:00 2001 From: kt Date: Thu, 24 Aug 2023 10:31:23 -0700 Subject: [PATCH 027/336] Update CHANGELOG.md #23075 --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 708fea6f921a..0d6a0803dde5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## 3.71.0 (Unreleased) +BREAKING CHANGES: + +* **App Service `win32_status` property** - Due to a change made in the service to the underlying type of the Auto Heal property `win32_status` combined with a prior bug (in `v3.62.1` and earlier) causing the value of this property to be stored incorrectly in state as an empty string, the value of this property could not be updated or state migrated to accommodate the necessary type change in the state. This results in the resources named above returning an error of a number is needed when decoding the state for this value. Unfortunately a limitation within the terraform-plugin-sdk means that it is not possible to introduce an automated migration for this field, and as such we are reluctantly requiring a breaking change for users of this field. The field win32_status has been replaced by win32_status_code (this remains an int, as in 3.63.0 onwards) and will require a breaking change to your Terraform Configuration, if this field is used. The affects the `azurerm_linux_web_app`, `azurerm_linux_web_app_slot`, `azurerm_windows_web_app`, `azurerm_windows_web_app_slot` resources. [GH-23075] + FEATURES: * **New Resource**: `azurerm_databricks_workspace_root_dbfs_customer_managed_key` [GH-22579] @@ -19,7 +23,7 @@ ENHANCEMENTS: BUG FIXES: -`azurerm_api_management_policy` - fixes an error caused by a migration [GH-23018] +* `azurerm_api_management_policy` - fixes an error caused by a migration [GH-23018] * `azurerm_kubernetes_cluster` - deprecate `public_network_access_enabled` and prevent sending it to the API since it isn't functional [GH-22478] ## 3.70.0 (August 17, 2023) From 87cb099024084a81ae7749a67738b203f7e18b9e Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Thu, 24 Aug 2023 11:08:04 -0700 Subject: [PATCH 028/336] Update CHANGELOG.md for #23075 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d6a0803dde5..1c6580738399 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ BREAKING CHANGES: -* **App Service `win32_status` property** - Due to a change made in the service to the underlying type of the Auto Heal property `win32_status` combined with a prior bug (in `v3.62.1` and earlier) causing the value of this property to be stored incorrectly in state as an empty string, the value of this property could not be updated or state migrated to accommodate the necessary type change in the state. This results in the resources named above returning an error of a number is needed when decoding the state for this value. Unfortunately a limitation within the terraform-plugin-sdk means that it is not possible to introduce an automated migration for this field, and as such we are reluctantly requiring a breaking change for users of this field. The field win32_status has been replaced by win32_status_code (this remains an int, as in 3.63.0 onwards) and will require a breaking change to your Terraform Configuration, if this field is used. The affects the `azurerm_linux_web_app`, `azurerm_linux_web_app_slot`, `azurerm_windows_web_app`, `azurerm_windows_web_app_slot` resources. [GH-23075] +* **App Service `win32_status` property** - Due to a change made in the service to the underlying type of the Auto Heal property `win32_status` combined with a prior bug (in `v3.62.1` and earlier) causing the value of this property to be stored incorrectly in state as an empty string, the value of this property could not be updated or state migrated to accommodate the necessary type change in the state. This results in the resources named above returning an error of a number is needed when decoding the state for this value. Unfortunately, this is a breaking change and will require users of this field to change their Terraform Configuration. The field `win32_status` has been replaced by `win32_status_code` (this remains an int, as in 3.63.0 onwards) for `azurerm_linux_web_app`, `azurerm_linux_web_app_slot`, `azurerm_windows_web_app`, `azurerm_windows_web_app_slot resources`. [GH-23075] FEATURES: From d4300ad96a34f744aa25eda6ff1d624f8d528286 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Thu, 24 Aug 2023 12:58:50 -0700 Subject: [PATCH 029/336] `azurerm_servicebus_namespace` - add support for `network_rule_set` (#23057) --- ...bus_namespace_network_rule_set_resource.go | 2 + .../servicebus_namespace_resource.go | 188 ++++++++++++++++++ .../servicebus_namespace_resource_test.go | 169 ++++++++++++++++ .../docs/r/servicebus_namespace.html.markdown | 24 +++ 4 files changed, 383 insertions(+) diff --git a/internal/services/servicebus/servicebus_namespace_network_rule_set_resource.go b/internal/services/servicebus/servicebus_namespace_network_rule_set_resource.go index 0d4fe75bc497..db121bcecda0 100644 --- a/internal/services/servicebus/servicebus_namespace_network_rule_set_resource.go +++ b/internal/services/servicebus/servicebus_namespace_network_rule_set_resource.go @@ -30,6 +30,8 @@ func resourceServiceBusNamespaceNetworkRuleSet() *pluginsdk.Resource { Update: resourceServiceBusNamespaceNetworkRuleSetCreateUpdate, Delete: resourceServiceBusNamespaceNetworkRuleSetDelete, + DeprecationMessage: "The `azurerm_servicebus_namespace_network_rule_set` resource is deprecated and will be removed in version 4.0 of the AzureRM provider. Please use `network_rule_set` inside the `azurerm_servicebus_namespace` resource instead.", + Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { _, err := namespaces.ParseNamespaceID(id) return err diff --git a/internal/services/servicebus/servicebus_namespace_resource.go b/internal/services/servicebus/servicebus_namespace_resource.go index 66c898d09d7b..746fa14f7191 100644 --- a/internal/services/servicebus/servicebus_namespace_resource.go +++ b/internal/services/servicebus/servicebus_namespace_resource.go @@ -22,12 +22,14 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/features" keyVaultParse "github.com/hashicorp/terraform-provider-azurerm/internal/services/keyvault/parse" keyVaultValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/keyvault/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/services/servicebus/migration" "github.com/hashicorp/terraform-provider-azurerm/internal/services/servicebus/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tags" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/suppress" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" "github.com/hashicorp/terraform-provider-azurerm/utils" @@ -175,6 +177,68 @@ func resourceServiceBusNamespace() *pluginsdk.Resource { ForceNew: true, }, + "network_rule_set": { + Type: pluginsdk.TypeList, + Optional: true, + Computed: !features.FourPointOhBeta(), + MaxItems: 1, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "default_action": { + Type: pluginsdk.TypeString, + Optional: true, + Default: string(namespaces.DefaultActionAllow), + ValidateFunc: validation.StringInSlice([]string{ + string(namespaces.DefaultActionAllow), + string(namespaces.DefaultActionDeny), + }, false), + }, + + "public_network_access_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: true, + }, + + "ip_rules": { + Type: pluginsdk.TypeSet, + Optional: true, + Elem: &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + }, + }, + + "trusted_services_allowed": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + + "network_rules": { + Type: pluginsdk.TypeSet, + Optional: true, + Set: networkRuleHash, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "subnet_id": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: commonids.ValidateSubnetID, + // The subnet ID returned from the service will have `resourceGroup/{resourceGroupName}` all in lower cases... + DiffSuppressFunc: suppress.CaseDifference, + }, + "ignore_missing_vnet_service_endpoint": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + }, + }, + }, + }, + }, + }, + "endpoint": { Type: pluginsdk.TypeString, Computed: true, @@ -277,6 +341,25 @@ func resourceServiceBusNamespaceCreateUpdate(d *pluginsdk.ResourceData, meta int } d.SetId(id.ID()) + + if d.HasChange("network_rule_set") { + oldNetworkRuleSet, newNetworkRuleSet := d.GetChange("network_rule_set") + // if the network rule set has been removed from config, reset it instead as there is no way to remove a rule set + if len(oldNetworkRuleSet.([]interface{})) == 1 && len(newNetworkRuleSet.([]interface{})) == 0 { + log.Printf("[DEBUG] Resetting Network Rule Set associated with %s..", id) + if err = resetNetworkRuleSetForNamespace(ctx, client, id); err != nil { + return err + } + log.Printf("[DEBUG] Reset the Existing Network Rule Set associated with %s", id) + } else { + log.Printf("[DEBUG] Creating the Network Rule Set associated with %s..", id) + if err = createNetworkRuleSetForNamespace(ctx, client, id, newNetworkRuleSet.([]interface{})); err != nil { + return err + } + log.Printf("[DEBUG] Created the Network Rule Set associated with %s", id) + } + } + return resourceServiceBusNamespaceRead(d, meta) } @@ -366,6 +449,18 @@ func resourceServiceBusNamespaceRead(d *pluginsdk.ResourceData, meta interface{} d.Set("default_secondary_key", keysModel.SecondaryKey) } } + + networkRuleSet, err := client.GetNetworkRuleSet(ctx, *id) + if err != nil { + return fmt.Errorf("retrieving network rule set %s: %+v", *id, err) + } + + if model := networkRuleSet.Model; model != nil { + if props := model.Properties; props != nil { + d.Set("network_rule_set", flattenServiceBusNamespaceNetworkRuleSet(*props)) + } + } + return nil } @@ -490,3 +585,96 @@ func servicebusTLSVersionDiff(ctx context.Context, d *pluginsdk.ResourceDiff, _ } return } + +func createNetworkRuleSetForNamespace(ctx context.Context, client *namespaces.NamespacesClient, id namespaces.NamespaceId, input []interface{}) error { + if len(input) < 1 || input[0] == nil { + return nil + } + item := input[0].(map[string]interface{}) + + defaultAction := namespaces.DefaultAction(item["default_action"].(string)) + vnetRule := expandServiceBusNamespaceVirtualNetworkRules(item["network_rules"].(*pluginsdk.Set).List()) + ipRule := expandServiceBusNamespaceIPRules(item["ip_rules"].(*pluginsdk.Set).List()) + publicNetworkAcc := "Disabled" + if item["public_network_access_enabled"].(bool) { + publicNetworkAcc = "Enabled" + } + + // API doesn't accept "Deny" to be set for "default_action" if no "ip_rules" or "network_rules" is defined and returns no error message to the user + if defaultAction == namespaces.DefaultActionDeny && vnetRule == nil && ipRule == nil { + return fmt.Errorf(" The `default_action` of `network_rule_set` can only be set to `Allow` if no `ip_rules` or `network_rules` is set") + } + + publicNetworkAccess := namespaces.PublicNetworkAccessFlag(publicNetworkAcc) + + parameters := namespaces.NetworkRuleSet{ + Properties: &namespaces.NetworkRuleSetProperties{ + DefaultAction: &defaultAction, + VirtualNetworkRules: vnetRule, + IPRules: ipRule, + PublicNetworkAccess: &publicNetworkAccess, + TrustedServiceAccessEnabled: utils.Bool(item["trusted_services_allowed"].(bool)), + }, + } + + if _, err := client.CreateOrUpdateNetworkRuleSet(ctx, id, parameters); err != nil { + return fmt.Errorf("creating/updating %s: %+v", id, err) + } + + return nil +} + +func resetNetworkRuleSetForNamespace(ctx context.Context, client *namespaces.NamespacesClient, id namespaces.NamespaceId) error { + defaultAction := namespaces.DefaultActionAllow + parameters := namespaces.NetworkRuleSet{ + Properties: &namespaces.NetworkRuleSetProperties{ + DefaultAction: &defaultAction, + }, + } + + if _, err := client.CreateOrUpdateNetworkRuleSet(ctx, id, parameters); err != nil { + return fmt.Errorf("resetting %s: %+v", id, err) + } + + return nil +} + +func flattenServiceBusNamespaceNetworkRuleSet(networkRuleSet namespaces.NetworkRuleSetProperties) []interface{} { + defaultAction := "" + if v := networkRuleSet.DefaultAction; v != nil { + defaultAction = string(*v) + } + publicNetworkAccess := namespaces.PublicNetworkAccessFlagEnabled + if v := networkRuleSet.PublicNetworkAccess; v != nil { + publicNetworkAccess = *v + } + + trustedServiceEnabled := false + if networkRuleSet.TrustedServiceAccessEnabled != nil { + trustedServiceEnabled = *networkRuleSet.TrustedServiceAccessEnabled + } + + networkRules := flattenServiceBusNamespaceVirtualNetworkRules(networkRuleSet.VirtualNetworkRules) + ipRules := flattenServiceBusNamespaceIPRules(networkRuleSet.IPRules) + + // only set network rule set if the values are different than what they are defaulted to during namespace creation + // this has to wait until 4.0 due to `azurerm_servicebus_namespace_network_rule_set` which forces `network_rule_set` to be Optional/Computed + if features.FourPointOhBeta() { + if defaultAction == string(namespaces.DefaultActionAllow) && + publicNetworkAccess == namespaces.PublicNetworkAccessFlagEnabled && + !trustedServiceEnabled && + len(networkRules) == 0 && + len(ipRules) == 0 { + + return []interface{}{} + } + } + + return []interface{}{map[string]interface{}{ + "default_action": defaultAction, + "trusted_services_allowed": trustedServiceEnabled, + "public_network_access_enabled": publicNetworkAccess == namespaces.PublicNetworkAccessFlagEnabled, + "network_rules": pluginsdk.NewSet(networkRuleHash, networkRules), + "ip_rules": ipRules, + }} +} diff --git a/internal/services/servicebus/servicebus_namespace_resource_test.go b/internal/services/servicebus/servicebus_namespace_resource_test.go index 7d4422c81f61..ccd2142b03eb 100644 --- a/internal/services/servicebus/servicebus_namespace_resource_test.go +++ b/internal/services/servicebus/servicebus_namespace_resource_test.go @@ -269,6 +269,37 @@ func TestAccAzureRMServiceBusNamespace_endpoint(t *testing.T) { }) } +func TestAccAzureRMServiceBusNamespace_networkRuleSet(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_servicebus_namespace", "test") + r := ServiceBusNamespaceResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.networkRuleSet(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("network_rule_set.0.default_action").HasValue("Deny"), + ), + }, + data.ImportStep(), + { + Config: r.networkRuleSetComplete(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("network_rule_set.0.trusted_services_allowed").HasValue("true"), + ), + }, + data.ImportStep(), + { + Config: r.networkRuleSetEmpty(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("network_rule_set.0.default_action").HasValue("Allow"), + ), + }, + data.ImportStep(), + }) +} + func (t ServiceBusNamespaceResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := namespaces.ParseNamespaceID(state.ID) if err != nil { @@ -663,3 +694,141 @@ resource "azurerm_servicebus_namespace" "test" { } `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } + +func (ServiceBusNamespaceResource) networkRuleSet(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[1]d" + location = "%[2]s" +} + +resource "azurerm_virtual_network" "test" { + name = "acctest-vnet-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + address_space = ["172.17.0.0/16"] + dns_servers = ["10.0.0.4", "10.0.0.5"] +} + +resource "azurerm_subnet" "test" { + name = "${azurerm_virtual_network.test.name}-default" + resource_group_name = azurerm_resource_group.test.name + virtual_network_name = azurerm_virtual_network.test.name + address_prefixes = ["172.17.0.0/24"] + + service_endpoints = ["Microsoft.ServiceBus"] +} + +resource "azurerm_servicebus_namespace" "test" { + name = "acctestservicebusnamespace-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + sku = "Premium" + capacity = 1 + + network_rule_set { + default_action = "Deny" + + network_rules { + subnet_id = azurerm_subnet.test.id + ignore_missing_vnet_service_endpoint = false + } + } +} +`, data.RandomInteger, data.Locations.Primary) +} + +func (ServiceBusNamespaceResource) networkRuleSetComplete(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[1]d" + location = "%[2]s" +} + +resource "azurerm_virtual_network" "test" { + name = "acctest-vnet-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + address_space = ["172.17.0.0/16"] + dns_servers = ["10.0.0.4", "10.0.0.5"] +} + +resource "azurerm_subnet" "test" { + name = "${azurerm_virtual_network.test.name}-default" + resource_group_name = azurerm_resource_group.test.name + virtual_network_name = azurerm_virtual_network.test.name + address_prefixes = ["172.17.0.0/24"] + + service_endpoints = ["Microsoft.ServiceBus"] +} + +resource "azurerm_servicebus_namespace" "test" { + name = "acctestservicebusnamespace-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + sku = "Premium" + capacity = 1 + + network_rule_set { + default_action = "Deny" + trusted_services_allowed = true + public_network_access_enabled = true + + ip_rules = ["1.1.1.1"] + + network_rules { + subnet_id = azurerm_subnet.test.id + ignore_missing_vnet_service_endpoint = false + } + } +} +`, data.RandomInteger, data.Locations.Primary) +} + +func (ServiceBusNamespaceResource) networkRuleSetEmpty(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[1]d" + location = "%[2]s" +} + +resource "azurerm_virtual_network" "test" { + name = "acctest-vnet-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + address_space = ["172.17.0.0/16"] + dns_servers = ["10.0.0.4", "10.0.0.5"] +} + +resource "azurerm_subnet" "test" { + name = "${azurerm_virtual_network.test.name}-default" + resource_group_name = azurerm_resource_group.test.name + virtual_network_name = azurerm_virtual_network.test.name + address_prefixes = ["172.17.0.0/24"] + + service_endpoints = ["Microsoft.ServiceBus"] +} + +resource "azurerm_servicebus_namespace" "test" { + name = "acctestservicebusnamespace-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + sku = "Premium" + capacity = 1 + + network_rule_set {} +} +`, data.RandomInteger, data.Locations.Primary) +} diff --git a/website/docs/r/servicebus_namespace.html.markdown b/website/docs/r/servicebus_namespace.html.markdown index 1441ebaf0864..038095813da1 100644 --- a/website/docs/r/servicebus_namespace.html.markdown +++ b/website/docs/r/servicebus_namespace.html.markdown @@ -61,6 +61,8 @@ The following arguments are supported: * `zone_redundant` - (Optional) Whether or not this resource is zone redundant. `sku` needs to be `Premium`. Changing this forces a new resource to be created. +* `network_rule_set` - (Optional) An `network_rule_set` block as defined below. + * `tags` - (Optional) A mapping of tags to assign to the resource. --- @@ -87,6 +89,28 @@ A `customer_managed_key` block supports the following: * `infrastructure_encryption_enabled` - (Optional) Used to specify whether enable Infrastructure Encryption (Double Encryption). Changing this forces a new resource to be created. +--- + +A `network_rule-set` block supports the following: + +* `default_action` - (Optional) Specifies the default action for the Network Rule Set. Possible values are `Allow` and `Deny`. Defaults to `Deny`. + +* `public_network_access_enabled` - (Optional) Whether to allow traffic over public network. Possible values are `true` and `false`. Defaults to `true`. + +* `trusted_services_allowed` - (Optional) Are Azure Services that are known and trusted for this resource type are allowed to bypass firewall configuration? See [Trusted Microsoft Services](https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/service-bus-messaging/includes/service-bus-trusted-services.md) + +* `ip_rules` - (Optional) One or more IP Addresses, or CIDR Blocks which should be able to access the ServiceBus Namespace. + +* `network_rules` - (Optional) One or more `network_rules` blocks as defined below. + +--- + +A `network_rules` block supports the following: + +* `subnet_id` - (Required) The Subnet ID which should be able to access this ServiceBus Namespace. + +* `ignore_missing_vnet_service_endpoint` - (Optional) Should the ServiceBus Namespace Network Rule Set ignore missing Virtual Network Service Endpoint option in the Subnet? Defaults to `false`. + ## Attributes Reference In addition to the Arguments listed above - the following Attributes are exported: From 05a43a66852d8e50524110ff2e32235038b2c557 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Thu, 24 Aug 2023 12:59:37 -0700 Subject: [PATCH 030/336] Update CHANGELOG.md for #23057 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c6580738399..daf62acc4dec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ ENHANCEMENTS: * `azurerm_container_group` - Support `sku` and `(init_)container.*.security` [GH-23034] * `azurerm_kubernetes_cluster` - clusters can be updated to use the `cilium` dataplane by setting the value in `ebpf_data_plane` [GH-22952] * `azurerm_linux_virtual_machine_scale_set` - cancel rolling upgrades that are in progress before destroying the resource [GH-22991] +* `azurerm_servicebus_namespace` - add support for `network_rule_set` [GH-23057] * `azurerm_windows_virtual_machine_scale_set` - cancel rolling upgrades that are in progress before destroying the resource [GH-22991] * `azurerm_synapse_spark_pool` - support addtional values for the `node_size_family` property [GH-23040] From 6f236bc7cd385d42bfd9314886c04d980491f2c1 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Thu, 24 Aug 2023 22:37:39 +0200 Subject: [PATCH 031/336] r/api_management_policy: updating the Resource ID casing to ensure the ID is recased correctly (#23073) --- .../services/apimanagement/migration/policy_v2_to_v3.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/internal/services/apimanagement/migration/policy_v2_to_v3.go b/internal/services/apimanagement/migration/policy_v2_to_v3.go index 8bd1abd119f8..8a108d287a0a 100644 --- a/internal/services/apimanagement/migration/policy_v2_to_v3.go +++ b/internal/services/apimanagement/migration/policy_v2_to_v3.go @@ -2,9 +2,11 @@ package migration import ( "context" + "fmt" "log" "strings" + "github.com/hashicorp/go-azure-sdk/resource-manager/apimanagement/2021-08-01/apimanagementservice" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" ) @@ -40,6 +42,13 @@ func (ApiManagementPolicyV2ToV3) UpgradeFunc() pluginsdk.StateUpgraderFunc { oldId := rawState["id"].(string) newId := strings.TrimSuffix(oldId, "/policies/policy") + // ensure the casing on the non-user-specifiable segments is correct + apiManagementId, err := apimanagementservice.ParseServiceID(newId) + if err != nil { + return rawState, fmt.Errorf("parsing updated ID %q as an API Management ID: %+v", newId, err) + } + newId = apiManagementId.ID() + log.Printf("[DEBUG] Updating ID from %q to %q", oldId, newId) rawState["id"] = newId From 891dae15c19cae7c621d9909905ab008dc19eb30 Mon Sep 17 00:00:00 2001 From: Yichun Ma Date: Fri, 25 Aug 2023 04:39:47 +0800 Subject: [PATCH 032/336] Doc Fix: Fix incorrect IoTHub categories (#23066) --- website/docs/r/iothub_endpoint_eventhub.html.markdown | 2 +- website/docs/r/iothub_endpoint_servicebus_queue.html.markdown | 2 +- website/docs/r/iothub_endpoint_servicebus_topic.html.markdown | 2 +- website/docs/r/iothub_endpoint_storage_container.html.markdown | 2 +- website/docs/r/iothub_enrichment.html.markdown | 2 +- website/docs/r/iothub_fallback_route.html.markdown | 2 +- website/docs/r/iothub_route.html.markdown | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/website/docs/r/iothub_endpoint_eventhub.html.markdown b/website/docs/r/iothub_endpoint_eventhub.html.markdown index b2c65c44ae82..591ce669f76f 100644 --- a/website/docs/r/iothub_endpoint_eventhub.html.markdown +++ b/website/docs/r/iothub_endpoint_eventhub.html.markdown @@ -1,5 +1,5 @@ --- -subcategory: "Messaging" +subcategory: "IoT Hub" layout: "azurerm" page_title: "Azure Resource Manager: azurerm_iothub_endpoint_eventhub" description: |- diff --git a/website/docs/r/iothub_endpoint_servicebus_queue.html.markdown b/website/docs/r/iothub_endpoint_servicebus_queue.html.markdown index d2fcfae90289..97738b430acd 100644 --- a/website/docs/r/iothub_endpoint_servicebus_queue.html.markdown +++ b/website/docs/r/iothub_endpoint_servicebus_queue.html.markdown @@ -1,5 +1,5 @@ --- -subcategory: "Messaging" +subcategory: "IoT Hub" layout: "azurerm" page_title: "Azure Resource Manager: azurerm_iothub_endpoint_servicebus_queue" description: |- diff --git a/website/docs/r/iothub_endpoint_servicebus_topic.html.markdown b/website/docs/r/iothub_endpoint_servicebus_topic.html.markdown index 6c472f8cdf4c..bb9d043c79d1 100644 --- a/website/docs/r/iothub_endpoint_servicebus_topic.html.markdown +++ b/website/docs/r/iothub_endpoint_servicebus_topic.html.markdown @@ -1,5 +1,5 @@ --- -subcategory: "Messaging" +subcategory: "IoT Hub" layout: "azurerm" page_title: "Azure Resource Manager: azurerm_iothub_endpoint_servicebus_topic" description: |- diff --git a/website/docs/r/iothub_endpoint_storage_container.html.markdown b/website/docs/r/iothub_endpoint_storage_container.html.markdown index 574c56bdef30..17247d2f0dc3 100644 --- a/website/docs/r/iothub_endpoint_storage_container.html.markdown +++ b/website/docs/r/iothub_endpoint_storage_container.html.markdown @@ -1,5 +1,5 @@ --- -subcategory: "Messaging" +subcategory: "IoT Hub" layout: "azurerm" page_title: "Azure Resource Manager: azurerm_iothub_endpoint_storage_container" description: |- diff --git a/website/docs/r/iothub_enrichment.html.markdown b/website/docs/r/iothub_enrichment.html.markdown index d2cf49876ce7..c4e9af454df6 100644 --- a/website/docs/r/iothub_enrichment.html.markdown +++ b/website/docs/r/iothub_enrichment.html.markdown @@ -1,5 +1,5 @@ --- -subcategory: "Messaging" +subcategory: "IoT Hub" layout: "azurerm" page_title: "Azure Resource Manager: azurerm_iothub_enrichment" description: |- diff --git a/website/docs/r/iothub_fallback_route.html.markdown b/website/docs/r/iothub_fallback_route.html.markdown index 02d612d7a09d..9590c444b094 100644 --- a/website/docs/r/iothub_fallback_route.html.markdown +++ b/website/docs/r/iothub_fallback_route.html.markdown @@ -1,5 +1,5 @@ --- -subcategory: "Messaging" +subcategory: "IoT Hub" layout: "azurerm" page_title: "Azure Resource Manager: azurerm_iothub_fallback_route" description: |- diff --git a/website/docs/r/iothub_route.html.markdown b/website/docs/r/iothub_route.html.markdown index f4be87b7492d..7ae02a9c4371 100644 --- a/website/docs/r/iothub_route.html.markdown +++ b/website/docs/r/iothub_route.html.markdown @@ -1,5 +1,5 @@ --- -subcategory: "Messaging" +subcategory: "IoT Hub" layout: "azurerm" page_title: "Azure Resource Manager: azurerm_iothub_route" description: |- From c86b2ffd924da28500ccaab06498d4acbc331143 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Thu, 24 Aug 2023 22:40:17 +0200 Subject: [PATCH 033/336] dependencies: updating to `v0.20230824.1130652` of `github.com/hashicorp/go-azure-sdk` (#23076) --- go.mod | 2 +- go.sum | 4 ++-- .../2022-08-08/python3package/README.md | 6 +---- .../python3package/method_createorupdate.go | 22 +++++++++++++++++-- .../go-azure-sdk/sdk/client/client.go | 5 ++++- .../go-azure-sdk/sdk/client/msgraph/client.go | 3 +++ .../sdk/client/request_options.go | 3 --- .../sdk/client/resourcemanager/client.go | 3 +++ vendor/modules.txt | 2 +- 9 files changed, 35 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 3ce1bfec78c6..0c9bfffb47d0 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/google/go-cmp v0.5.9 github.com/google/uuid v1.3.0 github.com/hashicorp/go-azure-helpers v0.59.0 - github.com/hashicorp/go-azure-sdk v0.20230823.1052657 + github.com/hashicorp/go-azure-sdk v0.20230824.1130652 github.com/hashicorp/go-hclog v1.4.0 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-uuid v1.0.3 diff --git a/go.sum b/go.sum index 6699d876c25d..f2294bf227e2 100644 --- a/go.sum +++ b/go.sum @@ -121,8 +121,8 @@ github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv github.com/hashicorp/go-azure-helpers v0.12.0/go.mod h1:Zc3v4DNeX6PDdy7NljlYpnrdac1++qNW0I4U+ofGwpg= github.com/hashicorp/go-azure-helpers v0.59.0 h1:E73yoPN2r1y0vvZ4dgAh8NRGuVTNXH3lZKRjT+4oNmA= github.com/hashicorp/go-azure-helpers v0.59.0/go.mod h1:BQUQp5udwbJ8pnzl0wByCLVEEyPMAFpJ9vOREiCzObo= -github.com/hashicorp/go-azure-sdk v0.20230823.1052657 h1:Dk78GhVOIT78Wn7oS/TB9tmgC/HPa7yoYsBx8WowRDA= -github.com/hashicorp/go-azure-sdk v0.20230823.1052657/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= +github.com/hashicorp/go-azure-sdk v0.20230824.1130652 h1:IOQTvyj3JvUfc8oTmLrh3pXVCjZlozp3aqhM243Pzzo= +github.com/hashicorp/go-azure-sdk v0.20230824.1130652/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU= github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/python3package/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/python3package/README.md index 34e5385a25e3..e32596335414 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/python3package/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/python3package/README.md @@ -31,13 +31,9 @@ payload := python3package.PythonPackageCreateParameters{ } -read, err := client.CreateOrUpdate(ctx, id, payload) -if err != nil { +if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil { // handle the error } -if model := read.Model; model != nil { - // do something with the model/response object -} ``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/python3package/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/python3package/method_createorupdate.go index 49082f0bfebc..3cb1a1e40ce5 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/python3package/method_createorupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/python3package/method_createorupdate.go @@ -2,9 +2,12 @@ package python3package import ( "context" + "fmt" "net/http" "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" "github.com/hashicorp/go-azure-sdk/sdk/odata" ) @@ -12,9 +15,9 @@ import ( // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller HttpResponse *http.Response OData *odata.OData - Model *Module } // CreateOrUpdate ... @@ -48,9 +51,24 @@ func (c Python3PackageClient) CreateOrUpdate(ctx context.Context, id Python3Pack return } - if err = resp.Unmarshal(&result.Model); err != nil { + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { return } return } + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c Python3PackageClient) CreateOrUpdateThenPoll(ctx context.Context, id Python3PackageId, input PythonPackageCreateParameters) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/client.go b/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/client.go index 3abae532a0d8..05682f8bcaab 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/client.go @@ -290,7 +290,10 @@ func (c *Client) NewRequest(ctx context.Context, input RequestOptions) (*Request req.Method = input.HttpMethod req.Header = make(http.Header) - req.Header.Add("Content-Type", input.ContentType) + + if input.ContentType != "" { + req.Header.Add("Content-Type", input.ContentType) + } if c.UserAgent != "" { req.Header.Add("User-Agent", c.UserAgent) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/msgraph/client.go b/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/msgraph/client.go index 49141d3161e5..32ffa14d51a1 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/msgraph/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/msgraph/client.go @@ -56,6 +56,9 @@ func (c *Client) NewRequest(ctx context.Context, input client.RequestOptions) (* if err := input.Validate(); err != nil { return nil, fmt.Errorf("pre-validating request payload: %+v", err) } + if input.ContentType == "" { + return nil, fmt.Errorf("pre-validating request payload: missing `ContentType`") + } req, err := c.Client.NewRequest(ctx, input) if err != nil { diff --git a/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/request_options.go b/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/request_options.go index b0e0b653bcf1..402b497c0b0c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/request_options.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/request_options.go @@ -31,9 +31,6 @@ type RequestOptions struct { } func (ro RequestOptions) Validate() error { - if ro.ContentType == "" { - return fmt.Errorf("missing `ContentType`") - } if len(ro.ExpectedStatusCodes) == 0 { return fmt.Errorf("missing `ExpectedStatusCodes`") } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/client.go b/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/client.go index 16c4b7d8be97..d712ca12c831 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/client.go @@ -42,6 +42,9 @@ func (c *Client) NewRequest(ctx context.Context, input client.RequestOptions) (* if err := input.Validate(); err != nil { return nil, fmt.Errorf("pre-validating request payload: %+v", err) } + if input.ContentType == "" { + return nil, fmt.Errorf("pre-validating request payload: missing `ContentType`") + } req, err := c.Client.NewRequest(ctx, input) if err != nil { diff --git a/vendor/modules.txt b/vendor/modules.txt index 293904c20610..046b4f0e0d7c 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -127,7 +127,7 @@ github.com/hashicorp/go-azure-helpers/resourcemanager/tags github.com/hashicorp/go-azure-helpers/resourcemanager/zones github.com/hashicorp/go-azure-helpers/sender github.com/hashicorp/go-azure-helpers/storage -# github.com/hashicorp/go-azure-sdk v0.20230823.1052657 +# github.com/hashicorp/go-azure-sdk v0.20230824.1130652 ## explicit; go 1.19 github.com/hashicorp/go-azure-sdk/resource-manager/aad/2021-05-01/domainservices github.com/hashicorp/go-azure-sdk/resource-manager/aadb2c/2021-04-01-preview From 219ccebafd46573b4b695654ddcad6c36e6e6ac8 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Thu, 24 Aug 2023 13:40:41 -0700 Subject: [PATCH 034/336] Update CHANGELOG.md for #23076 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index daf62acc4dec..0fc06415cd90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ FEATURES: ENHANCEMENTS: +* dependencies: updating to `v0.20230824.1130652` of `github.com/hashicorp/go-azure-sdk` [GH-23076] * `trafficmanager`: updating to use the transport layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` [GH-22579] * `webpubsub`: updating to use the transport layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` [GH-22579] * `automation`: upgrade remaining resources to `2022-08-08` [GH-22989] From 9fb4b450b15545b178ce9264e86402a4393e5adf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Uma=C5=84ski?= Date: Thu, 24 Aug 2023 23:04:14 +0200 Subject: [PATCH 035/336] `azurerm_kubernetes_cluster`/`azurerm_kubernetes_cluster_node_pool` - extend allowed ranges for various `sysctl_config` attribute ranges (#23077) --- internal/services/containers/kubernetes_nodepool.go | 8 ++++---- website/docs/r/kubernetes_cluster.html.markdown | 8 ++++---- website/docs/r/kubernetes_cluster_node_pool.html.markdown | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/internal/services/containers/kubernetes_nodepool.go b/internal/services/containers/kubernetes_nodepool.go index d8d78ea9dad5..c25f20d29062 100644 --- a/internal/services/containers/kubernetes_nodepool.go +++ b/internal/services/containers/kubernetes_nodepool.go @@ -669,7 +669,7 @@ func schemaNodePoolSysctlConfig() *pluginsdk.Schema { Type: pluginsdk.TypeInt, Optional: true, ForceNew: true, - ValidateFunc: validation.IntBetween(32768, 65000), + ValidateFunc: validation.IntBetween(32768, 65535), }, "net_ipv4_neigh_default_gc_thresh1": { @@ -704,7 +704,7 @@ func schemaNodePoolSysctlConfig() *pluginsdk.Schema { Type: pluginsdk.TypeInt, Optional: true, ForceNew: true, - ValidateFunc: validation.IntBetween(10, 75), + ValidateFunc: validation.IntBetween(10, 90), }, "net_ipv4_tcp_keepalive_probes": { @@ -745,14 +745,14 @@ func schemaNodePoolSysctlConfig() *pluginsdk.Schema { Type: pluginsdk.TypeInt, Optional: true, ForceNew: true, - ValidateFunc: validation.IntBetween(65536, 147456), + ValidateFunc: validation.IntBetween(65536, 524288), }, "net_netfilter_nf_conntrack_max": { Type: pluginsdk.TypeInt, Optional: true, ForceNew: true, - ValidateFunc: validation.IntBetween(131072, 1048576), + ValidateFunc: validation.IntBetween(131072, 2097152), }, "vm_max_map_count": { diff --git a/website/docs/r/kubernetes_cluster.html.markdown b/website/docs/r/kubernetes_cluster.html.markdown index e82cf0ace854..dd15afff6cce 100644 --- a/website/docs/r/kubernetes_cluster.html.markdown +++ b/website/docs/r/kubernetes_cluster.html.markdown @@ -841,7 +841,7 @@ A `sysctl_config` block supports the following: * `net_core_wmem_max` - (Optional) The sysctl setting net.core.wmem_max. Must be between `212992` and `134217728`. Changing this forces a new resource to be created. -* `net_ipv4_ip_local_port_range_max` - (Optional) The sysctl setting net.ipv4.ip_local_port_range max value. Must be between `1024` and `60999`. Changing this forces a new resource to be created. +* `net_ipv4_ip_local_port_range_max` - (Optional) The sysctl setting net.ipv4.ip_local_port_range max value. Must be between `32768` and `65535`. Changing this forces a new resource to be created. * `net_ipv4_ip_local_port_range_min` - (Optional) The sysctl setting net.ipv4.ip_local_port_range min value. Must be between `1024` and `60999`. Changing this forces a new resource to be created. @@ -853,7 +853,7 @@ A `sysctl_config` block supports the following: * `net_ipv4_tcp_fin_timeout` - (Optional) The sysctl setting net.ipv4.tcp_fin_timeout. Must be between `5` and `120`. Changing this forces a new resource to be created. -* `net_ipv4_tcp_keepalive_intvl` - (Optional) The sysctl setting net.ipv4.tcp_keepalive_intvl. Must be between `10` and `75`. Changing this forces a new resource to be created. +* `net_ipv4_tcp_keepalive_intvl` - (Optional) The sysctl setting net.ipv4.tcp_keepalive_intvl. Must be between `10` and `90`. Changing this forces a new resource to be created. * `net_ipv4_tcp_keepalive_probes` - (Optional) The sysctl setting net.ipv4.tcp_keepalive_probes. Must be between `1` and `15`. Changing this forces a new resource to be created. @@ -865,9 +865,9 @@ A `sysctl_config` block supports the following: * `net_ipv4_tcp_tw_reuse` - (Optional) The sysctl setting net.ipv4.tcp_tw_reuse. Changing this forces a new resource to be created. -* `net_netfilter_nf_conntrack_buckets` - (Optional) The sysctl setting net.netfilter.nf_conntrack_buckets. Must be between `65536` and `147456`. Changing this forces a new resource to be created. +* `net_netfilter_nf_conntrack_buckets` - (Optional) The sysctl setting net.netfilter.nf_conntrack_buckets. Must be between `65536` and `524288`. Changing this forces a new resource to be created. -* `net_netfilter_nf_conntrack_max` - (Optional) The sysctl setting net.netfilter.nf_conntrack_max. Must be between `131072` and `1048576`. Changing this forces a new resource to be created. +* `net_netfilter_nf_conntrack_max` - (Optional) The sysctl setting net.netfilter.nf_conntrack_max. Must be between `131072` and `2097152`. Changing this forces a new resource to be created. * `vm_max_map_count` - (Optional) The sysctl setting vm.max_map_count. Must be between `65530` and `262144`. Changing this forces a new resource to be created. diff --git a/website/docs/r/kubernetes_cluster_node_pool.html.markdown b/website/docs/r/kubernetes_cluster_node_pool.html.markdown index 021b9dc1d3ea..5cb8c426a983 100644 --- a/website/docs/r/kubernetes_cluster_node_pool.html.markdown +++ b/website/docs/r/kubernetes_cluster_node_pool.html.markdown @@ -254,7 +254,7 @@ A `sysctl_config` block supports the following: * `net_core_wmem_max` - (Optional) The sysctl setting net.core.wmem_max. Must be between `212992` and `134217728`. Changing this forces a new resource to be created. -* `net_ipv4_ip_local_port_range_max` - (Optional) The sysctl setting net.ipv4.ip_local_port_range max value. Must be between `1024` and `60999`. Changing this forces a new resource to be created. +* `net_ipv4_ip_local_port_range_max` - (Optional) The sysctl setting net.ipv4.ip_local_port_range max value. Must be between `32768` and `65535`. Changing this forces a new resource to be created. * `net_ipv4_ip_local_port_range_min` - (Optional) The sysctl setting net.ipv4.ip_local_port_range min value. Must be between `1024` and `60999`. Changing this forces a new resource to be created. @@ -266,7 +266,7 @@ A `sysctl_config` block supports the following: * `net_ipv4_tcp_fin_timeout` - (Optional) The sysctl setting net.ipv4.tcp_fin_timeout. Must be between `5` and `120`. Changing this forces a new resource to be created. -* `net_ipv4_tcp_keepalive_intvl` - (Optional) The sysctl setting net.ipv4.tcp_keepalive_intvl. Must be between `10` and `75`. Changing this forces a new resource to be created. +* `net_ipv4_tcp_keepalive_intvl` - (Optional) The sysctl setting net.ipv4.tcp_keepalive_intvl. Must be between `10` and `90`. Changing this forces a new resource to be created. * `net_ipv4_tcp_keepalive_probes` - (Optional) The sysctl setting net.ipv4.tcp_keepalive_probes. Must be between `1` and `15`. Changing this forces a new resource to be created. @@ -278,9 +278,9 @@ A `sysctl_config` block supports the following: * `net_ipv4_tcp_tw_reuse` - (Optional) Is sysctl setting net.ipv4.tcp_tw_reuse enabled? Changing this forces a new resource to be created. -* `net_netfilter_nf_conntrack_buckets` - (Optional) The sysctl setting net.netfilter.nf_conntrack_buckets. Must be between `65536` and `147456`. Changing this forces a new resource to be created. +* `net_netfilter_nf_conntrack_buckets` - (Optional) The sysctl setting net.netfilter.nf_conntrack_buckets. Must be between `65536` and `524288`. Changing this forces a new resource to be created. -* `net_netfilter_nf_conntrack_max` - (Optional) The sysctl setting net.netfilter.nf_conntrack_max. Must be between `131072` and `1048576`. Changing this forces a new resource to be created. +* `net_netfilter_nf_conntrack_max` - (Optional) The sysctl setting net.netfilter.nf_conntrack_max. Must be between `131072` and `2097152`. Changing this forces a new resource to be created. * `vm_max_map_count` - (Optional) The sysctl setting vm.max_map_count. Must be between `65530` and `262144`. Changing this forces a new resource to be created. From 44d8d43f1209f1946e1d48bb799d6a82db2fc193 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Thu, 24 Aug 2023 14:04:42 -0700 Subject: [PATCH 036/336] Update CHANGELOG.md for #23077 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fc06415cd90..e0a79c471d72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ ENHANCEMENTS: * `azurerm_storage_management_policy` - move to `hashicorp/go-azure-sdk` [GH-23035] * Data Source: `azurerm_disk_encryption_set` - add support for the `identity` block [GH-23005] * `azurerm_container_group` - Support `sku` and `(init_)container.*.security` [GH-23034] +* `azurerm_kubernetes_cluster`/`azurerm_kubernetes_cluster_node_pool` - extend allowed ranges for various `sysctl_config` attribute ranges [GH-23077] * `azurerm_kubernetes_cluster` - clusters can be updated to use the `cilium` dataplane by setting the value in `ebpf_data_plane` [GH-22952] * `azurerm_linux_virtual_machine_scale_set` - cancel rolling upgrades that are in progress before destroying the resource [GH-22991] * `azurerm_servicebus_namespace` - add support for `network_rule_set` [GH-23057] From 52829a9fe110a7de4add7c92c6bebbdfbc58b023 Mon Sep 17 00:00:00 2001 From: kt Date: Thu, 24 Aug 2023 18:59:19 -0700 Subject: [PATCH 037/336] Update CHANGELOG.md --- CHANGELOG.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0a79c471d72..200b3f22a3a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,12 +15,13 @@ ENHANCEMENTS: * `webpubsub`: updating to use the transport layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` [GH-22579] * `automation`: upgrade remaining resources to `2022-08-08` [GH-22989] * `azurerm_storage_management_policy` - move to `hashicorp/go-azure-sdk` [GH-23035] -* Data Source: `azurerm_disk_encryption_set` - add support for the `identity` block [GH-23005] -* `azurerm_container_group` - Support `sku` and `(init_)container.*.security` [GH-23034] -* `azurerm_kubernetes_cluster`/`azurerm_kubernetes_cluster_node_pool` - extend allowed ranges for various `sysctl_config` attribute ranges [GH-23077] +* Data Source: `azurerm_disk_encryption_set` - support for the `identity` block [GH-23005] +* `azurerm_container_group` - support for the `sku` and `(init_)container.*.security` properties [GH-23034] +* `azurerm_kubernetes_cluster` - extend allowed ranges for various `sysctl_config` attribute ranges [GH-23077] +* `azurerm_kubernetes_cluster_node_pool` - extend allowed ranges for various `sysctl_config` attribute ranges [GH-23077] * `azurerm_kubernetes_cluster` - clusters can be updated to use the `cilium` dataplane by setting the value in `ebpf_data_plane` [GH-22952] * `azurerm_linux_virtual_machine_scale_set` - cancel rolling upgrades that are in progress before destroying the resource [GH-22991] -* `azurerm_servicebus_namespace` - add support for `network_rule_set` [GH-23057] +* `azurerm_servicebus_namespace` - support for `network_rule_set` block [GH-23057] * `azurerm_windows_virtual_machine_scale_set` - cancel rolling upgrades that are in progress before destroying the resource [GH-22991] * `azurerm_synapse_spark_pool` - support addtional values for the `node_size_family` property [GH-23040] From 90b8716b03765018e79308cf801366b0c17909c3 Mon Sep 17 00:00:00 2001 From: kt Date: Thu, 24 Aug 2023 19:01:04 -0700 Subject: [PATCH 038/336] v3.71.0 --- .release/provider-schema.json | 2 +- CHANGELOG.md | 38 +++++++++++++++++------------------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.release/provider-schema.json b/.release/provider-schema.json index a6c410c0d129..47ea778f1f21 100644 --- a/.release/provider-schema.json +++ b/.release/provider-schema.json @@ -1 +1 @@ -{"providerName":"azurerm","schemaVersion":"1","providerSchema":{"schema":{"auxiliary_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":3},"client_certificate":{"type":"TypeString","optional":true,"description":"Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_password":{"type":"TypeString","optional":true,"description":"The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_path":{"type":"TypeString","optional":true,"description":"The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service Principal using a Client Certificate."},"client_id":{"type":"TypeString","optional":true,"description":"The Client ID which should be used."},"client_id_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client ID which should be used."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"client_secret_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"disable_correlation_request_id":{"type":"TypeBool","optional":true,"description":"This will disable the x-ms-correlation-request-id header."},"disable_terraform_partner_id":{"type":"TypeBool","optional":true,"description":"This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified."},"environment":{"type":"TypeString","required":true,"description":"The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public."},"features":{"type":"TypeList","required":true,"elem":{"schema":{"api_management":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"app_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"application_insights":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_generated_rule":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cognitive_account":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_certificates_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_hardware_security_modules_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_managed_hardware_security_module` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_keys_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_secrets_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be permanently deleted (e.g purged), when destroyed"},"recover_soft_deleted_certificates":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be restored, instead of creating new ones"},"recover_soft_deleted_key_vaults":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be restored, instead of creating new ones"},"recover_soft_deleted_keys":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be restored, instead of creating new ones"},"recover_soft_deleted_secrets":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be restored, instead of creating new ones"}}},"maxItems":1},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"permanently_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"managed_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"expand_without_downtime":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_deletion_if_contains_resources":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"template_deployment":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_nested_items_during_deletion":{"type":"TypeBool","required":true}}},"maxItems":1},"virtual_machine":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_os_disk_on_deletion":{"type":"TypeBool","optional":true,"default":false},"graceful_shutdown":{"type":"TypeBool","optional":true,"default":false},"skip_shutdown_and_force_delete":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"virtual_machine_scale_set":{"type":"TypeList","optional":true,"elem":{"schema":{"force_delete":{"type":"TypeBool","optional":true,"default":false},"roll_instances_when_required":{"type":"TypeBool","required":true},"scale_to_zero_before_deletion":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1,"minItems":1},"metadata_host":{"type":"TypeString","required":true,"description":"The Hostname which should be used for the Azure Metadata Service."},"msi_endpoint":{"type":"TypeString","optional":true,"description":"The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected automatically. "},"oidc_request_token":{"type":"TypeString","optional":true,"description":"The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_request_url":{"type":"TypeString","optional":true,"description":"The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_token":{"type":"TypeString","optional":true,"description":"The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"oidc_token_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"partner_id":{"type":"TypeString","optional":true,"description":"A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution."},"skip_provider_registration":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already registered?"},"storage_use_azuread":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?"},"subscription_id":{"type":"TypeString","optional":true,"description":"The Subscription ID which should be used."},"tenant_id":{"type":"TypeString","optional":true,"description":"The Tenant ID which should be used."},"use_cli":{"type":"TypeBool","optional":true,"default":true,"description":"Allow Azure CLI to be used for Authentication."},"use_msi":{"type":"TypeBool","optional":true,"description":"Allow Managed Service Identity to be used for Authentication."},"use_oidc":{"type":"TypeBool","optional":true,"description":"Allow OpenID Connect to be used for authentication"}},"resources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"country_code":{"type":"TypeString","optional":true,"description":"Country code of the B2C tenant. See https://aka.ms/B2CDataResidency for valid country codes.","computed":true,"forceNew":true},"data_residency_location":{"type":"TypeString","required":true,"description":"Location in which the B2C tenant is hosted and data resides. See https://aka.ms/B2CDataResidency for more information.","forceNew":true},"display_name":{"type":"TypeString","optional":true,"description":"The initial display name of the B2C tenant.","computed":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix.","forceNew":true},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"description":"Billing SKU for the B2C tenant. See https://aka.ms/b2cBilling for more information."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","optional":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"filtered_sync_enabled":{"type":"TypeBool","optional":true,"default":false},"initial_replica_set":{"type":"TypeList","required":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notifications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","optional":true,"default":false},"notify_global_admins":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","required":true},"external_access_enabled":{"type":"TypeBool","optional":true,"default":false},"pfx_certificate":{"type":"TypeString","required":true},"pfx_certificate_password":{"type":"TypeString","required":true},"public_certificate":{"type":"TypeString","computed":true}}},"maxItems":1},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","optional":true,"default":false},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"ntlm_v1_enabled":{"type":"TypeBool","optional":true,"default":false},"sync_kerberos_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_ntlm_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_on_prem_passwords":{"type":"TypeBool","optional":true,"default":false},"tls_v1_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_replica_set":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"external_access_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_trust":{"schema":{"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"trusted_domain_dns_ips":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":2},"trusted_domain_fqdn":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_advanced_threat_protection":{"schema":{"enabled":{"type":"TypeBool","required":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_analysis_services_server":{"schema":{"admin_users":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"backup_blob_container_uri":{"type":"TypeString","optional":true},"enable_power_bi_service":{"type":"TypeBool","optional":true},"ipv4_firewall_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"range_end":{"type":"TypeString","required":true},"range_start":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"querypool_connection_mode":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_full_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_connection":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}}},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_password":{"type":"TypeString","optional":true},"encoded_certificate":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","required":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}},"maxItems":10},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"delegation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"subscriptions_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","optional":true},"user_registration_enabled":{"type":"TypeBool","optional":true,"default":false},"validation_key":{"type":"TypeString","optional":true}}},"maxItems":1},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"management_api_url":{"type":"TypeString","computed":true},"min_api_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_sender_email":{"type":"TypeString","optional":true,"computed":true},"policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}}},"maxItems":1},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocols":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_http2":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"publisher_email":{"type":"TypeString","required":true},"publisher_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scm_url":{"type":"TypeString","computed":true},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_backend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls11":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls11":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_gcm_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_gcm_sha384_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"triple_des_ciphers_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"sign_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"sign_up":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"terms_of_service":{"type":"TypeList","required":true,"elem":{"schema":{"consent_required":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","required":true},"text":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"virtual_network_type":{"type":"TypeString","optional":true,"default":"None"},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_type":{"type":"TypeString","optional":true,"computed":true},"contact":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"content_format":{"type":"TypeString","required":true},"content_value":{"type":"TypeString","required":true},"wsdl_selector":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"license":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"oauth2_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization_server_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true}}},"maxItems":1},"openid_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"openid_provider_name":{"type":"TypeString","required":true}}},"maxItems":1},"path":{"type":"TypeString","optional":true,"computed":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision":{"type":"TypeString","required":true,"forceNew":true},"revision_description":{"type":"TypeString","optional":true},"service_url":{"type":"TypeString","optional":true,"computed":true},"soap_pass_through":{"type":"TypeBool","optional":true,"computed":true},"source_api_id":{"type":"TypeString","optional":true},"subscription_key_parameter_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"header":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true}}},"maxItems":1},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"terms_of_service_url":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"computed":true},"version_description":{"type":"TypeString","optional":true},"version_set_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"method":{"type":"TypeString","required":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"query_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"response":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}},"status_code":{"type":"TypeInt","required":true}}}},"template_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"url_template":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_tag":{"schema":{"api_operation_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_release":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"components":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","required":true},"definitions":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_tag":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_api_tag_description":{"schema":{"api_tag_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"external_documentation_description":{"type":"TypeString","optional":true},"external_documentation_url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"version_header_name":{"type":"TypeString","optional":true},"version_query_name":{"type":"TypeString","optional":true},"versioning_scheme":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_authorization_server":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authorization_endpoint":{"type":"TypeString","required":true},"authorization_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_authentication_method":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_registration_endpoint":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"default_scope":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"grant_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_owner_password":{"type":"TypeString","optional":true},"resource_owner_username":{"type":"TypeString","optional":true},"support_state":{"type":"TypeBool","optional":true},"token_body_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"token_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_backend":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"credentials":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","optional":true},"scheme":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"header":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"query":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true},"service_fabric_cluster":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_id":{"type":"TypeString","optional":true,"computed":true},"client_certificate_thumbprint":{"type":"TypeString","optional":true,"computed":true},"management_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"max_partition_resolution_retries":{"type":"TypeInt","required":true},"server_certificate_thumbprints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"server_x509_name":{"type":"TypeSet","optional":true,"elem":{"schema":{"issuer_certificate_thumbprint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"title":{"type":"TypeString","optional":true},"tls":{"type":"TypeList","optional":true,"elem":{"schema":{"validate_certificate_chain":{"type":"TypeBool","optional":true},"validate_certificate_name":{"type":"TypeBool","optional":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_certificate":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"data":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","computed":true},"key_vault_identity_client_id":{"type":"TypeString","optional":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_custom_domain":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_api_management_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_email_template":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true},"template_name":{"type":"TypeString","required":true,"forceNew":true},"title":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location_data":{"type":"TypeList","required":true,"elem":{"schema":{"city":{"type":"TypeString","optional":true},"district":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_api":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_certificate_authority":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"is_trusted":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_id":{"type":"TypeString","required":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"host_name":{"type":"TypeString","required":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request_client_certificate_enabled":{"type":"TypeBool","optional":true},"tls10_enabled":{"type":"TypeBool","optional":true},"tls11_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_global_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"external_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"custom","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aad":{"schema":{"allowed_tenants":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_tenant":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aadb2c":{"schema":{"allowed_tenant":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authority":{"type":"TypeString","required":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"password_reset_policy":{"type":"TypeString","optional":true},"profile_editing_policy":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_policy":{"type":"TypeString","required":true},"signin_tenant":{"type":"TypeString","required":true},"signup_policy":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_facebook":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_google":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_microsoft":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_twitter":{"schema":{"api_key":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_secret_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_logger":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"application_insights":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"instrumentation_key":{"type":"TypeString","required":true}}},"maxItems":1},"buffered":{"type":"TypeBool","optional":true,"default":true},"description":{"type":"TypeString","optional":true},"eventhub":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_named_value":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","optional":true},"value_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"secret_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_notification_recipient_email":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"email":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_notification_recipient_user":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_openid_connect_provider":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"metadata_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_policy":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"approval_required":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"published":{"type":"TypeBool","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"subscriptions_limit":{"type":"TypeInt","optional":true},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_tag":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_management_product_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_redis_cache":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"cache_location":{"type":"TypeString","optional":true,"default":"default"},"connection_string":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_subscription":{"schema":{"allow_tracing":{"type":"TypeBool","optional":true,"default":true},"api_id":{"type":"TypeString","optional":true,"forceNew":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","optional":true,"computed":true},"product_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true,"computed":true},"state":{"type":"TypeString","optional":true,"default":"submitted"},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_tag":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"confirmation":{"type":"TypeString","optional":true,"forceNew":true},"email":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","required":true},"last_name":{"type":"TypeString","required":true},"note":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","optional":true,"computed":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_identifier":{"type":"TypeString","optional":true}}},"maxItems":1},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","optional":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","optional":true,"default":"free"},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":7,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_feature":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"percentage_filter_value":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"targeting_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_rollout_percentage":{"type":"TypeInt","required":true},"groups":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"rollout_percentage":{"type":"TypeInt","required":true}}}},"users":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"timewindow_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","optional":true},"start":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"computed":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","required":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"kv"},"value":{"type":"TypeString","optional":true,"computed":true},"vault_key_reference":{"type":"TypeString","optional":true}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true},"frequency_unit":{"type":"TypeString","required":true},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false},"retention_period_in_days":{"type":"TypeInt","optional":true,"default":30},"start_time":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_mode":{"type":"TypeString","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_active_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_slot_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate":{"schema":{"app_service_plan_id":{"type":"TypeString","optional":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hosting_environment_profile_id":{"type":"TypeString","computed":true},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"pfx_blob":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate_binding":{"schema":{"app_service_name":{"type":"TypeString","computed":true},"certificate_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","computed":true},"hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","optional":true,"default":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","optional":true,"computed":true},"distinguished_name":{"type":"TypeString","optional":true,"computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","optional":true,"default":2048},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_type":{"type":"TypeString","optional":true,"default":"Standard"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","optional":true,"default":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_custom_hostname_binding":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_environment":{"schema":{"allowed_user_ip_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"front_end_scale_factor":{"type":"TypeInt","optional":true,"default":15},"internal_ip_address":{"type":"TypeString","computed":true},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","optional":true,"default":"I1"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_ip_address":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","optional":true,"default":true},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dedicated_host_count":{"type":"TypeInt","optional":true,"forceNew":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_hybrid_connection":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","required":true},"relay_id":{"type":"TypeString","required":true,"forceNew":true},"relay_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey"},"send_key_value":{"type":"TypeString","computed":true},"service_bus_namespace":{"type":"TypeString","computed":true},"service_bus_suffix":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_managed_certificate":{"schema":{"canonical_name":{"type":"TypeString","computed":true},"custom_hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"is_xenon":{"type":"TypeBool","optional":true},"kind":{"type":"TypeString","optional":true,"default":"Windows","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling":{"type":"TypeBool","optional":true},"reserved":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"size":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_app_service_public_certificate":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"blob":{"type":"TypeString","required":true,"forceNew":true},"certificate_location":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot_custom_hostname_binding":{"schema":{"app_service_slot_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_slot_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"slot_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_source_control":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows or Linux Web App.","forceNew":true},"branch":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The URL for the repository.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`.","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the App use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `false` to enable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`.","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_slot":{"schema":{"branch":{"type":"TypeString","optional":true,"description":"The URL for the repository","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Linux or Windows Web App Slot.","forceNew":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Slot use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `true` to disable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_gateway":{"schema":{"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"autoscale_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"max_capacity":{"type":"TypeInt","optional":true},"min_capacity":{"type":"TypeInt","required":true}}},"maxItems":1},"backend_address_pool":{"type":"TypeSet","required":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"backend_http_settings":{"type":"TypeSet","required":true,"elem":{"schema":{"affinity_cookie_name":{"type":"TypeString","optional":true},"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"connection_draining":{"type":"TypeList","optional":true,"elem":{"schema":{"drain_timeout_sec":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"cookie_based_affinity":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"pick_host_name_from_backend_address":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","required":true},"probe_id":{"type":"TypeString","computed":true},"probe_name":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"request_timeout":{"type":"TypeInt","optional":true,"default":30},"trusted_root_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"enable_http2":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"force_firewall_policy_association":{"type":"TypeBool","optional":true},"frontend_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"private_link_configuration_id":{"type":"TypeString","computed":true},"private_link_configuration_name":{"type":"TypeString","optional":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"minItems":1},"frontend_port":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true}}}},"gateway_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":2},"global":{"type":"TypeList","optional":true,"elem":{"schema":{"request_buffering_enabled":{"type":"TypeBool","required":true},"response_buffering_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"http_listener":{"type":"TypeSet","required":true,"elem":{"schema":{"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"firewall_policy_id":{"type":"TypeString","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_id":{"type":"TypeString","computed":true},"frontend_port_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"require_sni":{"type":"TypeBool","optional":true},"ssl_certificate_id":{"type":"TypeString","computed":true},"ssl_certificate_name":{"type":"TypeString","optional":true},"ssl_profile_id":{"type":"TypeString","computed":true},"ssl_profile_name":{"type":"TypeString","optional":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_link_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true}}}},"probe":{"type":"TypeSet","optional":true,"elem":{"schema":{"host":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"interval":{"type":"TypeInt","required":true},"match":{"type":"TypeList","optional":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"status_code":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"minimum_servers":{"type":"TypeInt","optional":true,"default":0},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"pick_host_name_from_backend_http_settings":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","optional":true},"protocol":{"type":"TypeString","required":true},"timeout":{"type":"TypeInt","required":true},"unhealthy_threshold":{"type":"TypeInt","required":true}}}},"redirect_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"include_path":{"type":"TypeBool","optional":true,"default":false},"include_query_string":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true},"target_listener_id":{"type":"TypeString","computed":true},"target_listener_name":{"type":"TypeString","optional":true},"target_url":{"type":"TypeString","optional":true}}}},"request_routing_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"http_listener_id":{"type":"TypeString","computed":true},"http_listener_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true},"rule_type":{"type":"TypeString","required":true},"url_path_map_id":{"type":"TypeString","computed":true},"url_path_map_name":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rewrite_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"rewrite_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"ignore_case":{"type":"TypeBool","optional":true,"default":false},"negate":{"type":"TypeBool","optional":true,"default":false},"pattern":{"type":"TypeString","required":true},"variable":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"request_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"response_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"rule_sequence":{"type":"TypeInt","required":true},"url":{"type":"TypeList","optional":true,"elem":{"schema":{"components":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","optional":true},"query_string":{"type":"TypeString","optional":true},"reroute":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"ssl_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"ssl_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"ssl_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"ssl_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"trusted_client_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verify_client_cert_issuer_dn":{"type":"TypeBool","optional":true,"default":false}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_client_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"trusted_root_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"url_path_map":{"type":"TypeList","optional":true,"elem":{"schema":{"default_backend_address_pool_id":{"type":"TypeString","computed":true},"default_backend_address_pool_name":{"type":"TypeString","optional":true},"default_backend_http_settings_id":{"type":"TypeString","computed":true},"default_backend_http_settings_name":{"type":"TypeString","optional":true},"default_redirect_configuration_id":{"type":"TypeString","computed":true},"default_redirect_configuration_name":{"type":"TypeString","optional":true},"default_rewrite_rule_set_id":{"type":"TypeString","computed":true},"default_rewrite_rule_set_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"paths":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true}}}}}}},"waf_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group_name":{"type":"TypeString","required":true},"rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}}}}},"enabled":{"type":"TypeBool","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"selector_match_operator":{"type":"TypeString","optional":true}}}},"file_upload_limit_mb":{"type":"TypeInt","optional":true,"default":100},"firewall_mode":{"type":"TypeString","required":true},"max_request_body_size_kb":{"type":"TypeInt","optional":true,"default":128},"request_body_check":{"type":"TypeBool","optional":true,"default":true},"rule_set_type":{"type":"TypeString","optional":true,"default":"OWASP"},"rule_set_version":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","required":true,"forceNew":true},"connection_string":{"type":"TypeString","computed":true},"daily_data_cap_in_gb":{"type":"TypeFloat","optional":true,"computed":true},"daily_data_cap_notifications_disabled":{"type":"TypeBool","optional":true,"computed":true},"disable_ip_masking":{"type":"TypeBool","optional":true,"default":false},"force_customer_storage_for_profiler":{"type":"TypeBool","optional":true,"default":false},"instrumentation_key":{"type":"TypeString","computed":true},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":90},"sampling_percentage":{"type":"TypeFloat","optional":true,"default":100},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_application_insights_analytics_item":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","required":true},"function_alias":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"time_created":{"type":"TypeString","computed":true},"time_modified":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_api_key":{"schema":{"api_key":{"type":"TypeString","computed":true},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"write_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_smart_detection_rule":{"schema":{"additional_email_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"send_emails_to_subscription_owners":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_standard_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","required":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"follow_redirects_enabled":{"type":"TypeBool","optional":true,"default":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"http_verb":{"type":"TypeString","optional":true,"default":"GET"},"parse_dependent_requests_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30},"validation_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"content":{"type":"TypeList","optional":true,"elem":{"schema":{"content_match":{"type":"TypeString","required":true},"ignore_case":{"type":"TypeBool","optional":true,"default":false},"pass_if_text_found":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"expected_status_code":{"type":"TypeInt","optional":true,"default":200},"ssl_cert_remaining_lifetime":{"type":"TypeInt","optional":true},"ssl_check_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"configuration":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook":{"schema":{"category":{"type":"TypeString","optional":true,"default":"workbook"},"data_json":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_id":{"type":"TypeString","optional":true,"default":"azure monitor"},"storage_container_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook_template":{"schema":{"author":{"type":"TypeString","optional":true},"galleries":{"type":"TypeList","required":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","optional":true,"default":0},"resource_type":{"type":"TypeString","optional":true,"default":"Azure Monitor"},"type":{"type":"TypeString","optional":true,"default":"workbook"}}},"minItems":1},"localized":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_data":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster":{"schema":{"agent_public_key_certificate":{"type":"TypeString","required":true,"forceNew":true},"agent_version":{"type":"TypeString","computed":true},"distribution":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"infrastructure":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"offering":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"total_core_count":{"type":"TypeInt","computed":true},"total_node_count":{"type":"TypeInt","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster_extension":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_machine_extension":{"schema":{"arc_machine_id":{"type":"TypeString","required":true,"forceNew":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true,"default":true},"force_update_tag":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_private_link_scope":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"open_enclave_policy_base64":{"type":"TypeString","optional":true},"policy":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"environment_type":{"type":"TypeString","optional":true}}}},"policy_signing_certificate_data":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sev_snp_policy_base64":{"type":"TypeString","optional":true},"sgx_enclave_policy_base64":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tpm_policy_base64":{"type":"TypeString","optional":true},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automanage_configuration":{"schema":{"antimalware":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusions":{"type":"TypeList","optional":true,"elem":{"schema":{"extensions":{"type":"TypeString","optional":true},"paths":{"type":"TypeString","optional":true},"processes":{"type":"TypeString","optional":true}}},"maxItems":1},"real_time_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_day":{"type":"TypeInt","optional":true,"default":8},"scheduled_scan_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_time_in_minutes":{"type":"TypeInt","optional":true,"default":0},"scheduled_scan_type":{"type":"TypeString","optional":true,"default":"Quick"}}},"maxItems":1},"automation_account_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_security_baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true,"default":"ApplyAndAutoCorrect"}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"instant_rp_retention_range_in_days":{"type":"TypeInt","optional":true,"default":5},"policy_name":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"daily_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Days"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_policy_type":{"type":"TypeString","optional":true,"default":"LongTermRetentionPolicy"},"weekly_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Weeks"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"schedule_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule_policy_type":{"type":"TypeString","optional":true,"default":"SimpleSchedulePolicy"},"schedule_run_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"schedule_run_frequency":{"type":"TypeString","optional":true,"default":"Daily"},"schedule_run_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"boot_diagnostics_enabled":{"type":"TypeBool","optional":true,"default":false},"defender_for_cloud_enabled":{"type":"TypeBool","optional":true,"default":false},"guest_configuration_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status_change_alert_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_account":{"schema":{"dsc_primary_access_key":{"type":"TypeString","computed":true},"dsc_secondary_access_key":{"type":"TypeString","computed":true},"dsc_server_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"key_source":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"base64":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"exportable":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"values":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"automation_certificate_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_classic_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_asset_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"subscription_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_service_principal":{"schema":{"application_id":{"type":"TypeString","required":true},"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_thumbprint":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_type":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"field":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"is_encrypted":{"type":"TypeBool","optional":true},"is_optional":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"is_global":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_credential":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_configuration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_embedded":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_verbose":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_nodeconfiguration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"configuration_name":{"type":"TypeString","computed":true},"content_embedded":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_hybrid_runbook_worker":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"ip":{"type":"TypeString","computed":true},"last_seen_date_time":{"type":"TypeString","computed":true},"registration_date_time":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"worker_group_name":{"type":"TypeString","required":true,"forceNew":true},"worker_id":{"type":"TypeString","required":true,"forceNew":true},"worker_name":{"type":"TypeString","computed":true},"worker_type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_hybrid_runbook_worker_group":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"credential_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_job_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"job_schedule_id":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on":{"type":"TypeString","optional":true,"forceNew":true},"runbook_name":{"type":"TypeString","required":true,"forceNew":true},"schedule_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_module":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"module_link":{"type":"TypeList","required":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_runbook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","optional":true,"computed":true},"description":{"type":"TypeString","optional":true},"draft":{"type":"TypeList","optional":true,"elem":{"schema":{"content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"creation_time":{"type":"TypeString","computed":true},"edit_mode_enabled":{"type":"TypeBool","optional":true},"last_modified_time":{"type":"TypeString","computed":true},"output_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true},"mandatory":{"type":"TypeBool","optional":true,"default":false},"position":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"job_schedule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"job_schedule_id":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_on":{"type":"TypeString","optional":true},"schedule_name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_activity_trace_level":{"type":"TypeInt","optional":true},"log_progress":{"type":"TypeBool","required":true},"log_verbose":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"runbook_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true,"computed":true},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"timezone":{"type":"TypeString","optional":true,"default":"Etc/UTC"},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_software_update_configuration":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"duration":{"type":"TypeString","optional":true,"default":"PT2H"},"error_code":{"type":"TypeString","computed":true},"error_meesage":{"type":"TypeString","computed":true},"error_message":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"non_azure_computer_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operating_system":{"type":"TypeString","optional":true,"computed":true},"post_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"pre_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"advanced_month_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"advanced_week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"creation_time":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"expiry_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"is_enabled":{"type":"TypeBool","optional":true,"default":true},"last_modified_time":{"type":"TypeString","computed":true},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}},"maxItems":1},"next_run":{"type":"TypeString","optional":true,"computed":true},"next_run_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"start_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true,"default":"Etc/UTC"}}},"maxItems":1},"target":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"locations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tag_filter":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeList","optional":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}}},"non_azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"function_alias":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_machine_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_automation_source_control":{"schema":{"automatic_sync":{"type":"TypeBool","optional":true,"default":false},"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"branch":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"folder_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_runbook_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_url":{"type":"TypeString","required":true},"security":{"type":"TypeList","required":true,"elem":{"schema":{"refresh_token":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"source_control_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_watcher":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"etag":{"type":"TypeString","optional":true},"execution_frequency_in_seconds":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script_name":{"type":"TypeString","required":true,"forceNew":true},"script_parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"script_run_on":{"type":"TypeString","required":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_webhook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiry_time":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on_worker_group":{"type":"TypeString","optional":true},"runbook_name":{"type":"TypeString","required":true},"uri":{"type":"TypeString","configMode":"Auto","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"default":3,"forceNew":true},"platform_update_domain_count":{"type":"TypeInt","optional":true,"default":5,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_container_storage_account":{"schema":{"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_file_share":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hourly":{"type":"TypeList","optional":true,"elem":{"schema":{"interval":{"type":"TypeInt","required":true},"start_time":{"type":"TypeString","required":true},"window_duration":{"type":"TypeInt","required":true}}},"maxItems":1},"time":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","required":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hour_duration":{"type":"TypeInt","optional":true},"hour_interval":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","required":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instant_restore_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prefix":{"type":"TypeString","required":true},"suffix":{"type":"TypeString","optional":true}}},"maxItems":1},"instant_restore_retention_days":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_type":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm_workload":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"protection_policy":{"type":"TypeSet","required":true,"elem":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","optional":true},"frequency_in_minutes":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","optional":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"policy_type":{"type":"TypeString","required":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"simple_retention":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1}}}},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeList","required":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1},"workload_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_protected_file_share":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_file_share_name":{"type":"TypeString","required":true,"forceNew":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":80,"read":5,"delete":80,"update":80}},"azurerm_backup_protected_vm":{"schema":{"backup_policy_id":{"type":"TypeString","optional":true},"exclude_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"protection_state":{"type":"TypeString","optional":true,"computed":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":80,"update":120}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","optional":true,"default":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ip_connect_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","optional":true,"default":2},"shareable_link_enabled":{"type":"TypeBool","optional":true,"default":false},"sku":{"type":"TypeString","optional":true,"default":"Basic"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"allowed_authentication_modes":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"account_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1},"node_management_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1}}},"maxItems":1},"pool_allocation_mode":{"type":"TypeString","optional":true,"default":"BatchService"},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_authentication_mode":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_account_node_identity":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"allow_updates":{"type":"TypeBool","optional":true,"default":true},"default_version":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate":{"type":"TypeString","required":true},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","optional":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","required":true,"forceNew":true},"thumbprint_algorithm":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_job":{"schema":{"batch_pool_id":{"type":"TypeString","required":true,"forceNew":true},"common_environment_properties":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"task_retry_maximum":{"type":"TypeInt","optional":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","optional":true,"default":"PT15M"},"formula":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"store_location":{"type":"TypeString","required":true},"store_name":{"type":"TypeString","optional":true},"visibility":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"type":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"data_disks":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"default":"ReadOnly"},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","required":true}}}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"extensions":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","optional":true}}}},"fixed_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"node_deallocation_method":{"type":"TypeString","optional":true},"resize_timeout":{"type":"TypeString","optional":true,"default":"PT15M"},"target_dedicated_nodes":{"type":"TypeInt","optional":true,"default":1},"target_low_priority_nodes":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inter_node_communication":{"type":"TypeString","optional":true,"default":"Enabled"},"license_type":{"type":"TypeString","optional":true},"max_tasks_per_node":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"account_name":{"type":"TypeString","required":true},"blobfuse_options":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"identity_id":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"sas_key":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"azure_file_url":{"type":"TypeString","required":true},"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true}}}},"cifs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"nfs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dynamic_vnet_assignment_scope":{"type":"TypeString","optional":true,"default":"none","forceNew":true},"endpoint_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port_range":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"access":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","required":true,"forceNew":true},"source_port_ranges":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString","default":"*"}}}}},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"public_address_provisioning_type":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"node_agent_sku_id":{"type":"TypeString","required":true,"forceNew":true},"node_placement":{"type":"TypeList","optional":true,"elem":{"schema":{"policy":{"type":"TypeString","optional":true,"default":"Regional"}}}},"os_disk_placement":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_task":{"type":"TypeList","optional":true,"elem":{"schema":{"command_line":{"type":"TypeString","required":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"run_options":{"type":"TypeString","optional":true},"working_directory":{"type":"TypeString","optional":true}}}},"resource_file":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","optional":true},"blob_prefix":{"type":"TypeString","optional":true},"file_mode":{"type":"TypeString","optional":true},"file_path":{"type":"TypeString","optional":true},"http_url":{"type":"TypeString","optional":true},"storage_container_url":{"type":"TypeString","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"task_retry_maximum":{"type":"TypeInt","optional":true},"user_identity":{"type":"TypeList","required":true,"elem":{"schema":{"auto_user":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","optional":true,"default":"NonAdmin"},"scope":{"type":"TypeString","optional":true,"default":"Task"}}},"maxItems":1},"user_name":{"type":"TypeString","optional":true}}},"maxItems":1},"wait_for_success":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"stop_pending_resize_operation":{"type":"TypeBool","optional":true,"default":false},"storage_image_reference":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"target_node_communication_mode":{"type":"TypeString","optional":true},"task_scheduling_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","optional":true,"computed":true}}}},"user_accounts":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","required":true},"linux_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gid":{"type":"TypeInt","optional":true},"ssh_private_key":{"type":"TypeString","optional":true},"uid":{"type":"TypeInt","optional":true}}}},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"windows_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}}}}}},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_billing_account_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"billing_account_id":{"type":"TypeString","required":true,"forceNew":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_blueprint_assignment":{"schema":{"blueprint_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_exclude_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":200},"lock_exclude_principals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"lock_mode":{"type":"TypeString","optional":true,"default":"None"},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeString","optional":true},"target_subscription_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","computed":true},"version_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_bot_channel_alexa":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skill_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_direct_line_speech":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"cognitive_service_access_key":{"type":"TypeString","required":true},"cognitive_service_location":{"type":"TypeString","required":true},"custom_speech_model_id":{"type":"TypeString","optional":true},"custom_voice_deployment_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_directline":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site":{"type":"TypeSet","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"enhanced_authentication_enabled":{"type":"TypeBool","optional":true,"default":false},"id":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key2":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"trusted_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"v1_allowed":{"type":"TypeBool","optional":true,"default":true},"v3_allowed":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_email":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"email_address":{"type":"TypeString","required":true},"email_password":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_facebook":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"facebook_application_id":{"type":"TypeString","required":true},"facebook_application_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"page":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_line":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"line_channel":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"secret":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_ms_teams":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"calling_web_hook":{"type":"TypeString","optional":true,"computed":true},"enable_calling":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_slack":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"landing_page_url":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signing_secret":{"type":"TypeString","optional":true},"verification_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_sms":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sms_channel_account_security_id":{"type":"TypeString","required":true},"sms_channel_auth_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_web_chat":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channels_registration":{"schema":{"cmk_key_vault_url":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"icon_url":{"type":"TypeString","optional":true,"computed":true},"isolated_network_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_connection":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeString","optional":true},"service_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_service_azure_bot":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true},"developer_app_insights_key":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_msi_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_type":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_web_app":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint":{"schema":{"content_types_to_compress":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"post_arg_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}}},"fqdn":{"type":"TypeString","computed":true},"geo_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"country_codes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"relative_path":{"type":"TypeString","required":true}}}},"global_delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_compression_enabled":{"type":"TypeBool","optional":true},"is_http_allowed":{"type":"TypeBool","optional":true,"default":true},"is_https_allowed":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimization_type":{"type":"TypeString","optional":true},"origin":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true,"forceNew":true},"http_port":{"type":"TypeInt","optional":true,"default":80,"forceNew":true},"https_port":{"type":"TypeInt","optional":true,"default":443,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"origin_host_header":{"type":"TypeString","optional":true},"origin_path":{"type":"TypeString","optional":true,"computed":true},"probe_path":{"type":"TypeString","optional":true,"computed":true},"profile_name":{"type":"TypeString","required":true,"forceNew":true},"querystring_caching_behaviour":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint_custom_domain":{"schema":{"cdn_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_type":{"type":"TypeString","required":true},"protocol_type":{"type":"TypeString","required":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"user_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","optional":true,"computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"computed":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"dns_zone_id":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tls":{"type":"TypeList","required":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","optional":true,"computed":true},"certificate_type":{"type":"TypeString","optional":true,"default":"ManagedCertificate"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain_association":{"schema":{"cdn_frontdoor_custom_domain_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_route_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin":{"schema":{"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name_check_enabled":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","optional":true,"computed":true},"health_probes_enabled":{"type":"TypeBool","optional":true,"computed":true},"host_name":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","optional":true,"default":80},"https_port":{"type":"TypeInt","optional":true,"default":443},"name":{"type":"TypeString","required":true,"forceNew":true},"origin_host_header":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","optional":true,"default":1},"private_link":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"private_link_target_id":{"type":"TypeString","required":true},"request_message":{"type":"TypeString","optional":true,"default":"Access request for CDN FrontDoor Private Link Origin"},"target_type":{"type":"TypeString","optional":true}}},"maxItems":1},"weight":{"type":"TypeInt","optional":true,"default":500}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"health_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"protocol":{"type":"TypeString","required":true},"request_type":{"type":"TypeString","optional":true,"default":"HEAD"}}},"maxItems":1},"load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","optional":true,"default":50},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","optional":true,"default":10},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","optional":true,"default":120},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route":{"schema":{"cache":{"type":"TypeList","optional":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"content_types_to_compress":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"query_string_caching_behavior":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"query_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"cdn_frontdoor_custom_domain_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true},"cdn_frontdoor_origin_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_origin_path":{"type":"TypeString","optional":true},"cdn_frontdoor_rule_set_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"https_redirect_enabled":{"type":"TypeBool","optional":true,"default":true},"link_to_default_domain":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"supported_protocols":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route_disable_link_to_default_domain":{"schema":{"cdn_frontdoor_custom_domain_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_route_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"route_configuration_override_action":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_behavior":{"type":"TypeString","optional":true},"cache_duration":{"type":"TypeString","optional":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","optional":true},"compression_enabled":{"type":"TypeBool","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true},"query_string_caching_behavior":{"type":"TypeString","optional":true},"query_string_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":100}}},"maxItems":1},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_fragment":{"type":"TypeString","optional":true,"default":""},"destination_hostname":{"type":"TypeString","required":true},"destination_path":{"type":"TypeString","optional":true,"default":""},"query_string":{"type":"TypeString","optional":true,"default":""},"redirect_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":false},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"behavior_on_match":{"type":"TypeString","optional":true,"default":"Continue"},"cdn_frontdoor_rule_set_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_rule_set_name":{"type":"TypeString","computed":true},"conditions":{"type":"TypeList","optional":true,"elem":{"schema":{"client_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"cookie_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"host_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":4},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"is_device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"post_args_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"post_args_name":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString","default":"HTTP"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"server_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"socket_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"ssl_protocol_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":3},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_filename_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_profile_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_frontdoor_security_policy":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"security_policies":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"firewall":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"association":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"domain":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"active":{"type":"TypeBool","computed":true},"cdn_frontdoor_domain_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":500},"patterns_to_match":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}}},"maxItems":1},"cdn_frontdoor_firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account":{"schema":{"custom_question_answering_search_service_id":{"type":"TypeString","optional":true},"custom_question_answering_search_service_key":{"type":"TypeString","optional":true},"custom_subdomain_name":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"dynamic_throttling_enabled":{"type":"TypeBool","optional":true},"endpoint":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metrics_advisor_aad_client_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_aad_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_super_user_name":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_website_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"qna_runtime_endpoint":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"storage":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account_customer_managed_key":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_deployment":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"model":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"format":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"rai_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"scale":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"family":{"type":"TypeString","optional":true,"forceNew":true},"size":{"type":"TypeString","optional":true,"forceNew":true},"tier":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","optional":true,"default":"United States","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","required":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"minItems":1},"certificate_based_security_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"pem_public_key":{"type":"TypeString","required":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_management_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to host this Container App.","forceNew":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The Dapr Application Identifier."},"app_port":{"type":"TypeInt","optional":true,"description":"The port which the application is listening on. This is the same as the `ingress` port."},"app_protocol":{"type":"TypeString","optional":true,"default":"http","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`."}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","optional":true,"default":false,"description":"Should this ingress allow insecure connections?"},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","optional":true,"default":"Disabled","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`"},"certificate_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate."}}},"maxItems":1},"external_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Is this an external Ingress."},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","required":true,"description":"The target port on the container for the Ingress traffic."},"traffic_weight":{"type":"TypeList","required":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"description":"The label to apply to the revision as a name prefix for routing traffic."},"latest_revision":{"type":"TypeBool","optional":true,"default":false,"description":"This traffic Weight relates to the latest stable Container Revision."},"percentage":{"type":"TypeInt","required":true,"description":"The percentage of traffic to send to this revision."},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted."}}}},"transport":{"type":"TypeString","optional":true,"default":"auto","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`"}}},"maxItems":1},"latest_revision_fqdn":{"type":"TypeString","description":"The FQDN of the Latest Revision of the Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"The name for this Container App.","forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true,"description":"ID of the System or User Managed Identity used to pull images from the Container Registry"},"password_secret_name":{"type":"TypeString","optional":true,"description":"The name of the Secret Reference containing the password value for this user on the Container Registry."},"server":{"type":"TypeString","required":true,"description":"The hostname for the Container Registry."},"username":{"type":"TypeString","optional":true,"description":"The username to use for this Container Registry."}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision_mode":{"type":"TypeString","required":true},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeList","required":true,"elem":{"schema":{"args":{"type":"TypeList","optional":true,"description":"A list of args to pass to the container.","elem":{"type":"TypeString"}},"command":{"type":"TypeList","optional":true,"description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`"},"env":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the environment variable for the container."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of the secret that contains the value for this environment variable."},"value":{"type":"TypeString","optional":true,"description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used"}}},"minItems":1},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","required":true,"description":"The image to use to create the container."},"liveness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"initial_delay":{"type":"TypeInt","optional":true,"default":1,"description":"The time in seconds to wait after the container has started before the probe is started."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"memory":{"type":"TypeString","required":true,"description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`"},"name":{"type":"TypeString","required":true,"description":"The name of the container."},"readiness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"success_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`."},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"startup_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"volume_mounts":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Volume to be mounted in the container."},"path":{"type":"TypeString","required":true,"description":"The path in the container at which to mount this volume."}}}}}},"minItems":1},"max_replicas":{"type":"TypeInt","optional":true,"default":10,"description":"The maximum number of replicas for this container."},"min_replicas":{"type":"TypeInt","optional":true,"description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment":{"schema":{"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","optional":true,"description":"The existing Subnet to use for the Container Apps Control Plane. **NOTE:** The Subnet must have a `/21` or larger address space.","forceNew":true},"internal_load_balancer_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Container Environment operate in Internal Load Balancing Mode? Defaults to `false`. **Note:** can only be set to `true` if `infrastructure_subnet_id` is specified.","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true,"description":"The ID for the Log Analytics Workspace to link this Container Apps Managed Environment to.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment.","forceNew":true},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_certificate":{"schema":{"certificate_blob_base64":{"type":"TypeString","required":true,"description":"The Certificate Private Key as a base64 encoded PFX or PEM.","forceNew":true},"certificate_password":{"type":"TypeString","required":true,"description":"The password for the Certificate.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Environment Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_dapr_component":{"schema":{"component_type":{"type":"TypeString","required":true,"description":"The Dapr Component Type. For example `state.azure.blobstorage`.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Dapr component on.","forceNew":true},"ignore_errors":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Dapr sidecar to continue initialisation if the component fails to load. Defaults to `false`"},"init_timeout":{"type":"TypeString","optional":true,"default":"5s","description":"The component initialisation timeout in ISO8601 format. e.g. `5s`, `2h`, `1m`. Defaults to `5s`."},"metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Metadata configuration item."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of a secret specified in the `secrets` block that contains the value for this metadata configuration item."},"value":{"type":"TypeString","optional":true,"description":"The value for this metadata configuration item."}}},"minItems":1},"name":{"type":"TypeString","required":true,"description":"The name for this Dapr Component.","forceNew":true},"scopes":{"type":"TypeList","optional":true,"description":"A list of scopes to which this component applies. e.g. a Container App's `dapr.app_id` value.","elem":{"type":"TypeString"},"minItems":1},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"version":{"type":"TypeString","required":true,"description":"The version of the component."}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_storage":{"schema":{"access_key":{"type":"TypeString","required":true,"description":"The Storage Account Access Key."},"access_mode":{"type":"TypeString","required":true,"description":"The access mode to connect this storage to the Container App. Possible values include `ReadOnly` and `ReadWrite`.","forceNew":true},"account_name":{"type":"TypeString","required":true,"description":"The Azure Storage Account in which the Share to be used is located.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to which this storage belongs.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name for this Storage.","forceNew":true},"share_name":{"type":"TypeString","required":true,"description":"The name of the Azure Storage Share to use.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_connected_registry":{"schema":{"audit_log_enabled":{"type":"TypeBool","optional":true,"default":false},"client_token_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"log_level":{"type":"TypeString","optional":true,"default":"None"},"mode":{"type":"TypeString","optional":true,"default":"ReadWrite","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"digest":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tag":{"type":"TypeString","optional":true}}}},"parent_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"sync_message_ttl":{"type":"TypeString","optional":true,"default":"P1D"},"sync_schedule":{"type":"TypeString","optional":true,"default":"* * * * *"},"sync_token_id":{"type":"TypeString","required":true,"forceNew":true},"sync_window":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_group":{"schema":{"container":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"forceNew":true},"cpu_limit":{"type":"TypeFloat","optional":true},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"gpu":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"gpu_limit":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"sku":{"type":"TypeString","optional":true}}},"maxItems":1},"image":{"type":"TypeString","required":true,"forceNew":true},"liveness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"memory":{"type":"TypeFloat","required":true,"forceNew":true},"memory_limit":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ports":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"readiness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"diagnostics":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"log_analytics":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"log_type":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_key":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"dns_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"nameservers":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"options":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"search_domains":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"dns_name_label":{"type":"TypeString","optional":true,"forceNew":true},"dns_name_label_reuse_policy":{"type":"TypeString","optional":true,"default":"Unsecure"},"exposed_port":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_registry_credential":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"username":{"type":"TypeString","optional":true,"forceNew":true}}}},"init_container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"ip_address":{"type":"TypeString","computed":true},"ip_address_type":{"type":"TypeString","optional":true,"default":"Public","forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile_id":{"type":"TypeString","optional":true,"computed":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restart_policy":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"subnet_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"anonymous_pull_enabled":{"type":"TypeBool","optional":true},"data_endpoint_enabled":{"type":"TypeBool","optional":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"identity_client_id":{"type":"TypeString","required":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"georeplications":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true},"regional_endpoint_enabled":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_bypass_option":{"type":"TypeString","optional":true,"default":"AzureServices"},"network_rule_set":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_range":{"type":"TypeString","required":true}}}},"virtual_network":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"quarantine_policy_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trust_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_agent_pool":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"default":"S1","forceNew":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task":{"schema":{"agent_pool_name":{"type":"TypeString","optional":true},"agent_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"cpu":{"type":"TypeInt","required":true}}},"maxItems":1},"base_image_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"update_trigger_endpoint":{"type":"TypeString","optional":true},"update_trigger_payload_type":{"type":"TypeString","optional":true}}},"maxItems":1},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"docker_step":{"type":"TypeList","optional":true,"elem":{"schema":{"arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"cache_enabled":{"type":"TypeBool","optional":true,"default":true},"context_access_token":{"type":"TypeString","required":true},"context_path":{"type":"TypeString","required":true},"dockerfile_path":{"type":"TypeString","required":true},"image_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"push_enabled":{"type":"TypeBool","optional":true,"default":true},"secret_arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target":{"type":"TypeString","optional":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"encoded_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_content":{"type":"TypeString","required":true},"value_content":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"file_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_file_path":{"type":"TypeString","required":true},"value_file_path":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"is_system_task":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"log_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"architecture":{"type":"TypeString","optional":true},"os":{"type":"TypeString","required":true},"variant":{"type":"TypeString","optional":true}}},"maxItems":1},"registry_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"custom":{"type":"TypeSet","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"username":{"type":"TypeString","optional":true}}}},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"source_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"expire_in_seconds":{"type":"TypeInt","optional":true},"refresh_token":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"repository_url":{"type":"TypeString","required":true},"source_type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":3600},"timer_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task_schedule_run_now":{"schema":{"container_registry_task_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_map_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_token_password":{"schema":{"container_registry_token_id":{"type":"TypeString","required":true,"forceNew":true},"password1":{"type":"TypeList","required":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1},"password2":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_webhook":{"schema":{"actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"custom_headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"registry_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":""},"service_uri":{"type":"TypeString","required":true},"status":{"type":"TypeString","optional":true,"default":"enabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_account":{"schema":{"access_key_metadata_writes_enabled":{"type":"TypeBool","optional":true,"default":true},"analytical_storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"schema_type":{"type":"TypeString","required":true}}},"maxItems":1},"analytical_storage_enabled":{"type":"TypeBool","optional":true,"default":false},"backup":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"interval_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"retention_in_hours":{"type":"TypeInt","optional":true,"computed":true},"storage_redundancy":{"type":"TypeString","optional":true,"computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"capabilities":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}},"capacity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"total_throughput_limit":{"type":"TypeInt","required":true}}},"maxItems":1},"connection_strings":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"consistency_policy":{"type":"TypeList","required":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","required":true},"max_interval_in_seconds":{"type":"TypeInt","optional":true,"computed":true},"max_staleness_prefix":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"create_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"default_identity_type":{"type":"TypeString","optional":true,"default":"FirstPartyIdentity"},"enable_automatic_failover":{"type":"TypeBool","optional":true,"default":false},"enable_free_tier":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"enable_multiple_write_locations":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeSet","required":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","required":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_range_filter":{"type":"TypeString","optional":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"kind":{"type":"TypeString","optional":true,"default":"GlobalDocumentDB","forceNew":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"mongo_server_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acl_bypass_for_azure_services":{"type":"TypeBool","optional":true,"default":false},"network_acl_bypass_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"offer_type":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"primary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"primary_sql_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"elem":{"schema":{"database":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"collection_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"restore_timestamp_in_utc":{"type":"TypeString","required":true,"forceNew":true},"source_cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"secondary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"secondary_sql_connection_string":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_cassandra_cluster":{"schema":{"authentication_method":{"type":"TypeString","optional":true,"default":"Cassandra"},"client_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_admin_password":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"external_gossip_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"external_seed_node_ip_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"hours_between_backups":{"type":"TypeInt","optional":true,"default":24},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repair_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"3.11","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_datacenter":{"schema":{"availability_zones_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_storage_customer_key_uri":{"type":"TypeString","optional":true},"base64_encoded_yaml_fragment":{"type":"TypeString","optional":true},"cassandra_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"disk_count":{"type":"TypeInt","optional":true},"disk_sku":{"type":"TypeString","optional":true,"default":"P30"},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_customer_key_uri":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"default":3},"sku_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_cosmosdb_cassandra_keyspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_table":{"schema":{"analytical_storage_ttl":{"type":"TypeInt","optional":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cassandra_keyspace_id":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schema":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_key":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"order_by":{"type":"TypeString","required":true}}}},"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"partition_key":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_graph":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"index_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"automatic":{"type":"TypeBool","optional":true,"default":true},"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"included_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"indexing_mode":{"type":"TypeString","required":true},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_collection":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl_seconds":{"type":"TypeInt","optional":true},"index":{"type":"TypeSet","optional":true,"elem":{"schema":{"keys":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","optional":true,"default":false}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shard_key":{"type":"TypeString","optional":true,"forceNew":true},"system_indexes":{"type":"TypeList","computed":true,"elem":{"schema":{"keys":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","computed":true}}}},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_role_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"privilege":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource":{"type":"TypeList","required":true,"elem":{"schema":{"collection_name":{"type":"TypeString","optional":true},"db_name":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"role_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_user_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_notebook_workspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_endpoint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_postgresql_cluster":{"schema":{"administrator_login_password":{"type":"TypeString","required":true},"citus_version":{"type":"TypeString","optional":true,"computed":true},"coordinator_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":true},"coordinator_server_edition":{"type":"TypeString","optional":true,"default":"GeneralPurpose"},"coordinator_storage_quota_in_mb":{"type":"TypeInt","required":true},"coordinator_vcore_count":{"type":"TypeInt","required":true},"earliest_restore_time":{"type":"TypeString","computed":true},"ha_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","required":true},"node_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":false},"node_server_edition":{"type":"TypeString","optional":true,"default":"MemoryOptimized"},"node_storage_quota_in_mb":{"type":"TypeInt","optional":true,"computed":true},"node_vcores":{"type":"TypeInt","optional":true,"computed":true},"point_in_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"preferred_primary_zone":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shards_on_coordinator_enabled":{"type":"TypeBool","optional":true,"computed":true},"source_location":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"sql_version":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_postgresql_coordinator_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_firewall_rule":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_node_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_role":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_sql_container":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"indexing_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"included_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"indexing_mode":{"type":"TypeString","optional":true,"default":"consistent"},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_dedicated_gateway":{"schema":{"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","required":true},"instance_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_function":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_assignment":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"assignable_scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeSet","required":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"CustomRole","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_stored_procedure":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_trigger":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operation":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_table":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_anomaly_alert":{"schema":{"display_name":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"email_subject":{"type":"TypeString","required":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_management_scheduled_action":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name":{"type":"TypeString","required":true},"email_address_sender":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":20,"minItems":1},"email_subject":{"type":"TypeString","required":true},"end_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","optional":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_date":{"type":"TypeString","required":true},"view_id":{"type":"TypeString","required":true,"forceNew":true},"weeks_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_custom_ip_prefix":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"commissioning_enabled":{"type":"TypeBool","optional":true,"default":false},"internet_advertising_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_custom_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roa_validity_end_date":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wan_validation_signed_message":{"type":"TypeString","optional":true,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":540,"read":5,"delete":1020,"update":1020}},"azurerm_custom_provider":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_type":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"routing_type":{"type":"TypeString","optional":true,"default":"Proxy"}}}},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validation":{"type":"TypeSet","optional":true,"elem":{"schema":{"specification":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard_grafana":{"schema":{"api_key_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse"},"azure_monitor_workspace_integrations":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"deterministic_outbound_ip_enabled":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"grafana_version":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory":{"schema":{"customer_managed_key_id":{"type":"TypeString","optional":true},"customer_managed_key_identity_id":{"type":"TypeString","optional":true},"github_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"global_parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_custom_dataset":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_azure_blob":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_binary":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sftp_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_cosmosdb_sqlapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"collection_name":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_delimited_text":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_fs_location":{"type":"TypeList","optional":true,"elem":{"schema":{"file_system":{"type":"TypeString","required":true},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"column_delimiter":{"type":"TypeString","optional":true,"default":","},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"escape_character":{"type":"TypeString","optional":true,"default":"\\"},"first_row_as_header":{"type":"TypeBool","optional":true,"default":false},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"null_value":{"type":"TypeString","optional":true,"default":""},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"quote_character":{"type":"TypeString","optional":true,"default":"\""},"row_delimiter":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_http":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"relative_url":{"type":"TypeString","optional":true},"request_body":{"type":"TypeString","optional":true},"request_method":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_json":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_parquet":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precision":{"type":"TypeInt","optional":true},"scale":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","optional":true}}}},"schema_name":{"type":"TypeString","optional":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_sql_server_table":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_flowlet_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure":{"schema":{"cleanup_enabled":{"type":"TypeBool","optional":true,"computed":true},"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0},"virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure_ssis":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"dual_standby_pair_name":{"type":"TypeString","optional":true},"elastic_pool_name":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"express_custom_setup":{"type":"TypeList","optional":true,"elem":{"schema":{"command_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"password":{"type":"TypeString","optional":true},"target_name":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"component":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_license":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"environment":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"powershell_version":{"type":"TypeString","optional":true}}},"maxItems":1},"express_vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"package_store":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","optional":true},"self_hosted_integration_runtime_name":{"type":"TypeString","required":true},"staging_storage_linked_service_name":{"type":"TypeString","required":true}}},"maxItems":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"public_ips":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2},"subnet_id":{"type":"TypeString","optional":true},"subnet_name":{"type":"TypeString","optional":true},"vnet_id":{"type":"TypeString","optional":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_managed":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true,"default":"Basic"},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","required":true},"vnet_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_self_hosted":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_authorization_key":{"type":"TypeString","computed":true},"rbac_authorization":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"secondary_authorization_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_custom_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_blob_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"connection_string_insecure":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_sas_token":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sas_uri":{"type":"TypeString","optional":true},"service_endpoint":{"type":"TypeString","optional":true},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"service_principal_linked_key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_kind":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_databricks":{"schema":{"access_token":{"type":"TypeString","optional":true},"adb_domain":{"type":"TypeString","required":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"existing_cluster_id":{"type":"TypeString","optional":true},"instance_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"instance_pool_id":{"type":"TypeString","required":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":1}}},"maxItems":1},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"msi_work_space_resource_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"new_cluster_config":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"custom_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"driver_node_type":{"type":"TypeString","optional":true},"init_scripts":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"log_destination":{"type":"TypeString","optional":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":"1"},"node_type":{"type":"TypeString","required":true},"spark_config":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"spark_environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_file_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"file_share":{"type":"TypeString","optional":true},"host":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"user_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_function":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key":{"type":"TypeString","optional":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_search":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted_credential":{"type":"TypeString","computed":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"search_service_key":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_sql_database":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_table_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb":{"schema":{"account_endpoint":{"type":"TypeString","optional":true},"account_key":{"type":"TypeString","optional":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb_mongoapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"server_version_is_32_or_higher":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_data_lake_storage_gen2":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"storage_account_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_key_vault":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_kusto":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"kusto_database_name":{"type":"TypeString","required":true},"kusto_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odata":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odbc":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sftp":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"host":{"type":"TypeString","required":true},"host_key_fingerprint":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true},"skip_host_key_validation":{"type":"TypeBool","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sql_server":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_synapse":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_web":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_managed_private_endpoint":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"fqdns":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_factory_pipeline":{"schema":{"activities_json":{"type":"TypeString","optional":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"concurrency":{"type":"TypeInt","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"moniter_metrics_after_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_blob_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"blob_path_begins_with":{"type":"TypeString","optional":true},"blob_path_ends_with":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"ignore_empty_blobs":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_custom_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"eventgrid_topic_id":{"type":"TypeString","required":true,"forceNew":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_schedule":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","optional":true,"default":"Minute"},"interval":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"pipeline_name":{"type":"TypeString","optional":true,"computed":true},"pipeline_parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":7},"hours":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","optional":true},"weekday":{"type":"TypeString","required":true}}},"minItems":1}}},"maxItems":1,"minItems":1},"start_time":{"type":"TypeString","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_tumbling_window":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"delay":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true,"forceNew":true},"interval":{"type":"TypeInt","required":true,"forceNew":true},"max_concurrency":{"type":"TypeInt","optional":true,"default":50},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retry":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeInt","optional":true,"default":30}}},"maxItems":1},"start_time":{"type":"TypeString","required":true,"forceNew":true},"trigger_dependency":{"type":"TypeSet","optional":true,"elem":{"schema":{"offset":{"type":"TypeString","optional":true},"size":{"type":"TypeString","optional":true},"trigger_name":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_blob_storage":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_disk":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"disk_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_postgresql":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"database_credential_key_vault_secret_id":{"type":"TypeString","optional":true},"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_blob_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"retention_duration":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_disk":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_postgresql":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true},"days_of_week":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"months_of_year":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"scheduled_backup_times":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"weeks_of_month":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redundancy":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_resource_guard":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vault_critical_operation_exclusion_list":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}},"maxItems":1},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","required":true,"forceNew":true},"data_share_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"file_system_name":{"type":"TypeString","required":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"source_platform":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_order":{"schema":{"contact":{"type":"TypeList","required":true,"elem":{"schema":{"company_name":{"type":"TypeString","required":true,"forceNew":true},"emails":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"device_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"return_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"serial_number":{"type":"TypeString","computed":true},"shipment_address":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3},"city":{"type":"TypeString","required":true,"forceNew":true},"country":{"type":"TypeString","required":true,"forceNew":true},"postal_code":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"shipment_history":{"type":"TypeSet","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}},"shipment_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"status":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"info":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_access_connector":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_virtual_network_peering":{"schema":{"address_space_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_address_space_prefixes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_id":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace":{"schema":{"custom_parameters":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"machine_learning_workspace_id":{"type":"TypeString","optional":true,"forceNew":true},"nat_gateway_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"no_public_ip":{"type":"TypeBool","optional":true,"computed":true},"private_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"private_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"public_ip_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"public_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_sku_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vnet_address_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_encryption_set_id":{"type":"TypeString","computed":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"load_balancer_backend_address_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"managed_disk_cmk_rotation_to_latest_version_enabled":{"type":"TypeBool","optional":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"managed_resource_group_id":{"type":"TypeString","computed":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_services_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules_required":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor":{"schema":{"datadog_organization":{"type":"TypeList","required":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true,"forceNew":true},"application_key":{"type":"TypeString","required":true,"forceNew":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","computed":true},"linking_auth_code":{"type":"TypeString","optional":true,"forceNew":true},"linking_client_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"redirect_uri":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"marketplace_subscription_status":{"type":"TypeString","computed":true},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_sso_configuration":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"enterprise_application_id":{"type":"TypeString","required":true},"login_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"default"},"single_sign_on_enabled":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_tag_rule":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"log":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_log_enabled":{"type":"TypeBool","optional":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_log_enabled":{"type":"TypeBool","optional":true},"subscription_log_enabled":{"type":"TypeBool","optional":true}}}},"metric":{"type":"TypeList","optional":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","optional":true,"default":"default"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_hardware_security_module":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"management_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"stamp_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host":{"schema":{"auto_replace_on_failure":{"type":"TypeBool","optional":true,"default":true},"dedicated_host_group_id":{"type":"TypeString","required":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain":{"type":"TypeInt","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_global_vm_shutdown_schedule":{"schema":{"daily_recurrence_time":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"time_in_minutes":{"type":"TypeInt","optional":true,"default":30},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","optional":true,"default":"Premium"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_linux_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_policy":{"schema":{"description":{"type":"TypeString","optional":true},"evaluator_type":{"type":"TypeString","required":true,"forceNew":true},"fact_data":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_set_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threshold":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_schedule":{"schema":{"daily_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true}}},"maxItems":1},"hourly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true}}},"maxItems":1},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"status":{"type":"TypeString","optional":true,"default":"Disabled"},"time_in_minutes":{"type":"TypeInt","optional":true},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Disabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_type":{"type":"TypeString","required":true},"time_zone_id":{"type":"TypeString","required":true},"weekly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_virtual_network":{"schema":{"description":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"use_in_virtual_machine_creation":{"type":"TypeString","optional":true,"default":"Allow"},"use_public_ip_address":{"type":"TypeString","optional":true,"default":"Allow"}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_windows_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventgrid":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventgrid_topic_endpoint":{"type":"TypeString","required":true},"eventgrid_topic_primary_access_key":{"type":"TypeString","required":true},"eventgrid_topic_secondary_access_key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventhub":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_primary_connection_string":{"type":"TypeString","required":true},"eventhub_secondary_connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_servicebus":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_primary_connection_string":{"type":"TypeString","required":true},"servicebus_secondary_connection_string":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_time_series_database_connection":{"schema":{"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_consumer_group_name":{"type":"TypeString","optional":true,"default":"$Default","forceNew":true},"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_uri":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_name":{"type":"TypeString","required":true,"forceNew":true},"kusto_table_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_disk_access":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_type":{"type":"TypeString","optional":true,"default":"EncryptionAtRestWithCustomerKey","forceNew":true},"federated_client_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_disk_pool":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_pool_iscsi_target":{"schema":{"acl_mode":{"type":"TypeString","required":true,"forceNew":true},"disks_pool_id":{"type":"TypeString","required":true,"forceNew":true},"endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","computed":true},"target_iqn":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_iscsi_target_lun":{"schema":{"disk_pool_managed_disk_attachment_id":{"type":"TypeString","required":true,"forceNew":true},"iscsi_target_id":{"type":"TypeString","required":true,"forceNew":true},"lun":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_managed_disk_attachment":{"schema":{"disk_pool_id":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"flags":{"type":"TypeInt","required":true},"tag":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","optional":true,"computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":300},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","required":true,"forceNew":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_azuread_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_email_communication_service":{"schema":{"data_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain":{"schema":{"auto_create_topic_with_first_subscription":{"type":"TypeBool","optional":true,"default":true},"auto_delete_topic_with_last_subscription":{"type":"TypeBool","optional":true,"default":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_eventgrid_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_arm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"system_topic":{"type":"TypeString","required":true,"forceNew":true},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub":{"schema":{"capture_description":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeList","required":true,"elem":{"schema":{"archive_name_format":{"type":"TypeString","required":true},"blob_container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"encoding":{"type":"TypeString","required":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":300},"size_limit_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"skip_empty_archives":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"message_retention":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","required":true,"forceNew":true},"partition_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":300,"update":30}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity":{"type":"TypeInt","optional":true,"default":1},"dedicated_cluster_id":{"type":"TypeString","optional":true,"forceNew":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_throughput_units":{"type":"TypeInt","optional":true,"computed":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rulesets":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_service_access_enabled":{"type":"TypeBool","optional":true},"virtual_network_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"ignore_missing_virtual_network_service_endpoint":{"type":"TypeBool","optional":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":128}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_customer_managed_key":{"schema":{"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"key_vault_key_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_disaster_recovery_config":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_schema_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"schema_compatibility":{"type":"TypeString","required":true,"forceNew":true},"schema_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_express_route_circuit":{"schema":{"allow_classic_operations":{"type":"TypeBool","optional":true,"default":false},"authorization_key":{"type":"TypeString","optional":true},"bandwidth_in_gbps":{"type":"TypeFloat","optional":true},"bandwidth_in_mbps":{"type":"TypeInt","optional":true},"express_route_port_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","optional":true,"forceNew":true},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"family":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_connection":{"schema":{"address_prefix_ipv4":{"type":"TypeString","required":true,"forceNew":true},"address_prefix_ipv6":{"type":"TypeString","optional":true},"authorization_key":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_peering_id":{"type":"TypeString","required":true,"forceNew":true},"peering_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_peering":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_manager_etag":{"type":"TypeString","computed":true},"ipv4_enabled":{"type":"TypeBool","optional":true,"default":true},"ipv6":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"microsoft_peering":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"primary_peer_address_prefix":{"type":"TypeString","required":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_peer_address_prefix":{"type":"TypeString","required":true}}},"maxItems":1},"microsoft_peering_config":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"peer_asn":{"type":"TypeInt","optional":true,"computed":true},"peering_type":{"type":"TypeString","required":true},"primary_azure_port":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_azure_port":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","optional":true},"shared_key":{"type":"TypeString","optional":true},"vlan_id":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"enable_internet_security":{"type":"TypeBool","optional":true},"express_route_circuit_peering_id":{"type":"TypeString","required":true,"forceNew":true},"express_route_gateway_bypass_enabled":{"type":"TypeBool","optional":true,"default":false},"express_route_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"routing_weight":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_gateway":{"schema":{"allow_non_virtual_wan_traffic":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_express_route_port":{"schema":{"bandwidth_in_gbps":{"type":"TypeInt","required":true,"forceNew":true},"billing_type":{"type":"TypeString","optional":true,"computed":true},"encapsulation":{"type":"TypeString","required":true,"forceNew":true},"ethertype":{"type":"TypeString","computed":true},"guid":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"link1":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"link2":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mtu":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_port_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_port_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_federated_identity_credential":{"schema":{"audience":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"issuer":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"firewall_policy_id":{"type":"TypeString","optional":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_ip_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"sku_tier":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","optional":true,"computed":true},"virtual_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","optional":true,"default":1},"virtual_hub_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_firewall_application_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"target_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_nat_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","required":true},"translated_port":{"type":"TypeString","required":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_network_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy":{"schema":{"auto_learn_private_ranges_enabled":{"type":"TypeBool","optional":true},"base_policy_id":{"type":"TypeString","optional":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"proxy_enabled":{"type":"TypeBool","optional":true,"default":false},"servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"explicit_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_pac_file":{"type":"TypeBool","optional":true},"enabled":{"type":"TypeBool","optional":true},"http_port":{"type":"TypeInt","optional":true},"https_port":{"type":"TypeInt","optional":true},"pac_file":{"type":"TypeString","optional":true},"pac_file_port":{"type":"TypeInt","optional":true}}},"maxItems":1},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"insights":{"type":"TypeList","optional":true,"elem":{"schema":{"default_log_analytics_workspace_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"firewall_location":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"retention_in_days":{"type":"TypeInt","optional":true}}},"maxItems":1},"intrusion_detection":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true},"private_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"signature_overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"state":{"type":"TypeString","optional":true}}}},"traffic_bypass":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"source_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"sql_redirect_allowed":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","optional":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"threat_intelligence_mode":{"type":"TypeString","optional":true,"default":"Alert"},"tls_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_secret_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy_rule_collection_group":{"schema":{"application_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"terminate_tls":{"type":"TypeBool","optional":true},"web_categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_address":{"type":"TypeString","optional":true},"destination_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","optional":true},"translated_fqdn":{"type":"TypeString","optional":true},"translated_port":{"type":"TypeInt","required":true}}},"minItems":1}}},"minItems":1},"network_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"priority":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_fluid_relay_server":{"schema":{"frs_tenant_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"orderer_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_frontdoor":{"schema":{"backend_pool":{"type":"TypeList","required":true,"elem":{"schema":{"backend":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_header":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","required":true},"https_port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"weight":{"type":"TypeInt","optional":true,"default":50}}},"maxItems":500},"health_probe_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"load_balancing_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"backend_pool_health_probe":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"id":{"type":"TypeString","computed":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":120},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"probe_method":{"type":"TypeString","optional":true,"default":"GET"},"protocol":{"type":"TypeString","optional":true,"default":"Http"}}},"maxItems":5000},"backend_pool_health_probes":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_milliseconds":{"type":"TypeInt","optional":true,"default":0},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":2}}},"maxItems":5000},"backend_pool_load_balancing_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pools_send_receive_timeout_seconds":{"type":"TypeInt","optional":true,"default":60},"enforce_backend_pools_certificate_name_check":{"type":"TypeBool","required":true}}}},"backend_pools":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"cname":{"type":"TypeString","computed":true},"explicit_resource_order":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_pool_health_probe_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"routing_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"friendly_name":{"type":"TypeString","optional":true},"frontend_endpoint":{"type":"TypeList","required":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"session_affinity_ttl_seconds":{"type":"TypeInt","optional":true,"default":0},"web_application_firewall_policy_link_id":{"type":"TypeString","optional":true}}},"maxItems":500},"frontend_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"header_frontdoor_id":{"type":"TypeString","computed":true},"load_balancer_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_rule":{"type":"TypeList","required":true,"elem":{"schema":{"accepted_protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":2},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pool_name":{"type":"TypeString","required":true},"cache_duration":{"type":"TypeString","optional":true},"cache_enabled":{"type":"TypeBool","optional":true,"default":false},"cache_query_parameter_strip_directive":{"type":"TypeString","optional":true,"default":"StripAll"},"cache_query_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"cache_use_dynamic_compression":{"type":"TypeBool","optional":true,"default":false},"custom_forwarding_path":{"type":"TypeString","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"HttpsOnly"}}},"maxItems":1},"frontend_endpoints":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":500},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"redirect_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_fragment":{"type":"TypeString","optional":true},"custom_host":{"type":"TypeString","optional":true},"custom_path":{"type":"TypeString","optional":true},"custom_query_string":{"type":"TypeString","optional":true},"redirect_protocol":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":500},"routing_rules":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_custom_https_configuration":{"schema":{"custom_https_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_key_vault_certificate_secret_name":{"type":"TypeString","optional":true},"azure_key_vault_certificate_secret_version":{"type":"TypeString","optional":true},"azure_key_vault_certificate_vault_id":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","optional":true,"default":"FrontDoor"},"minimum_tls_version":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true},"provisioning_substate":{"type":"TypeString","computed":true}}},"maxItems":1},"custom_https_provisioning_enabled":{"type":"TypeBool","required":true},"frontend_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_frontdoor_rules_engine":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"frontdoor_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"request_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100},"response_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100}}},"maxItems":1},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transform":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":6},"value":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"variable":{"type":"TypeString","optional":true}}},"maxItems":100},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true}}},"maxItems":100}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_cert_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"","forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_function_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_function":{"schema":{"config_json":{"type":"TypeString","required":true,"description":"The config for this Function in JSON format."},"config_url":{"type":"TypeString","description":"The URL of the configuration JSON.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this function be enabled. Defaults to `true`."},"file":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"description":"The content of the file.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The filename of the file to be uploaded.","forceNew":true}}},"minItems":1},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App in which this function should reside.","forceNew":true},"invocation_url":{"type":"TypeString","description":"The invocation URL.","computed":true},"language":{"type":"TypeString","optional":true,"description":"The language the Function is written in."},"name":{"type":"TypeString","required":true,"description":"The name of the function.","forceNew":true},"script_root_path_url":{"type":"TypeString","description":"The Script root path URL.","computed":true},"script_url":{"type":"TypeString","description":"The script URL.","computed":true},"secrets_file_url":{"type":"TypeString","description":"The URL for the Secrets File.","computed":true},"test_data":{"type":"TypeString","optional":true,"description":"The test data for the function."},"test_data_url":{"type":"TypeString","description":"The Test data URL.","computed":true},"url":{"type":"TypeString","description":"The function URL.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_hybrid_connection":{"schema":{"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App for this Hybrid Connection.","forceNew":true},"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_slot":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"function_app_name":{"type":"TypeString","required":true,"forceNew":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application":{"schema":{"description":{"type":"TypeString","optional":true},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true},"gallery_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true},"release_note_uri":{"type":"TypeString","optional":true},"supported_os_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application_version":{"schema":{"enable_health_check":{"type":"TypeBool","optional":true,"default":false},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_application_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"manage_action":{"type":"TypeList","required":true,"elem":{"schema":{"install":{"type":"TypeString","required":true,"forceNew":true},"remove":{"type":"TypeString","required":true,"forceNew":true},"update":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"default_configuration_link":{"type":"TypeString","optional":true,"forceNew":true},"media_link":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_services_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hdinsight_hadoop_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hadoop":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"edge_node":{"type":"TypeList","optional":true,"elem":{"schema":{"https_endpoints":{"type":"TypeList","optional":true,"elem":{"schema":{"access_modes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_port":{"type":"TypeInt","optional":true},"disable_gateway_auth":{"type":"TypeBool","optional":true},"private_ip_address":{"type":"TypeString","optional":true},"sub_domain_suffix":{"type":"TypeString","optional":true}}}},"install_script_action":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"target_instance_count":{"type":"TypeInt","required":true},"uninstall_script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"vm_size":{"type":"TypeString","required":true}}},"maxItems":1},"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_hbase_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hbase":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_interactive_query_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"interactive_hive":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_kafka_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"kafka":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rest_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"security_group_id":{"type":"TypeString","required":true,"forceNew":true},"security_group_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kafka_management_node":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"number_of_disks_per_node":{"type":"TypeInt","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_spark_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"spark":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_healthbot":{"schema":{"bot_management_portal_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"authority":{"type":"TypeString","required":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"configuration_export_storage_account_name":{"type":"TypeString","optional":true},"container_registry_login_server_url":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"credentials_allowed":{"type":"TypeBool","optional":true,"default":false},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","optional":true,"default":"fhir-R4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"oci_artifact":{"type":"TypeList","optional":true,"elem":{"schema":{"digest":{"type":"TypeString","optional":true},"image_name":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_medtech_service_fhir_destination":{"schema":{"destination_fhir_mapping_json":{"type":"TypeString","required":true},"destination_fhir_service_id":{"type":"TypeString","required":true},"destination_identity_resolution_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"medtech_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"audience":{"type":"TypeString","optional":true},"authority":{"type":"TypeString","optional":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","optional":true},"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","optional":true,"forceNew":true},"cosmosdb_throughput":{"type":"TypeInt","optional":true,"default":1000},"kind":{"type":"TypeString","optional":true,"default":"fhir"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache":{"schema":{"automatically_rotate_key_to_latest_enabled":{"type":"TypeBool","optional":true},"cache_size_in_gb":{"type":"TypeInt","required":true,"forceNew":true},"default_access_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1}}},"maxItems":1,"minItems":1},"directory_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_netbios_name":{"type":"TypeString","required":true},"dns_primary_ip":{"type":"TypeString","required":true},"dns_secondary_ip":{"type":"TypeString","optional":true},"domain_name":{"type":"TypeString","required":true},"domain_netbios_name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"directory_flat_file":{"type":"TypeList","optional":true,"elem":{"schema":{"group_file_uri":{"type":"TypeString","required":true},"password_file_uri":{"type":"TypeString","required":true}}},"maxItems":1},"directory_ldap":{"type":"TypeList","optional":true,"elem":{"schema":{"base_dn":{"type":"TypeString","required":true},"bind":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dn":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_validation_uri":{"type":"TypeString","optional":true},"download_certificate_automatically":{"type":"TypeBool","optional":true},"encrypted":{"type":"TypeBool","optional":true},"server":{"type":"TypeString","required":true}}},"maxItems":1},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"search_domain":{"type":"TypeString","optional":true},"servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mtu":{"type":"TypeInt","optional":true,"default":1500},"name":{"type":"TypeString","required":true,"forceNew":true},"ntp_server":{"type":"TypeString","optional":true,"default":"time.windows.com"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hpc_cache_access_policy":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1},"hpc_cache_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_nfs_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_nfs_target":{"schema":{"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_junction":{"type":"TypeSet","required":true,"elem":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"namespace_path":{"type":"TypeString","required":true},"nfs_export":{"type":"TypeString","required":true},"target_path":{"type":"TypeString","optional":true,"default":""}}},"maxItems":10,"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"target_host_name":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"lun":{"type":"TypeInt","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}}},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"os_state":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_virtual_machine_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_integration_service_environment":{"schema":{"access_endpoint_type":{"type":"TypeString","required":true,"forceNew":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Developer_0"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":4,"minItems":4},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_iot_security_device_group":{"schema":{"allow_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_from_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"connection_to_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"local_users_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"processes_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"range_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"max":{"type":"TypeInt","required":true},"min":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_security_solution":{"schema":{"additional_workspace":{"type":"TypeSet","optional":true,"elem":{"schema":{"data_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}}}},"disabled_data_sources":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events_to_export":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"iothub_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"log_unmasked_ips_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"query_for_resources":{"type":"TypeString","optional":true,"computed":true},"query_subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"recommendations_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_authentication":{"type":"TypeBool","optional":true,"default":true},"agent_send_unutilized_msg":{"type":"TypeBool","optional":true,"default":true},"baseline":{"type":"TypeBool","optional":true,"default":true},"edge_hub_mem_optimize":{"type":"TypeBool","optional":true,"default":true},"edge_logging_option":{"type":"TypeBool","optional":true,"default":true},"inconsistent_module_settings":{"type":"TypeBool","optional":true,"default":true},"install_agent":{"type":"TypeBool","optional":true,"default":true},"ip_filter_deny_all":{"type":"TypeBool","optional":true,"default":true},"ip_filter_permissive_rule":{"type":"TypeBool","optional":true,"default":true},"open_ports":{"type":"TypeBool","optional":true,"default":true},"permissive_firewall_policy":{"type":"TypeBool","optional":true,"default":true},"permissive_input_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"permissive_output_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"privileged_docker_options":{"type":"TypeBool","optional":true,"default":true},"shared_credentials":{"type":"TypeBool","optional":true,"default":true},"vulnerable_tls_cipher_suite":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_access_policy":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_object_id":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_eventhub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_iothub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_gen2_environment":{"schema":{"data_access_fqdn":{"type":"TypeString","computed":true},"id_properties":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage":{"type":"TypeList","required":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"warm_store_data_retention_time":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_reference_data_set":{"schema":{"data_string_comparison_behavior":{"type":"TypeString","optional":true,"default":"Ordinal","forceNew":true},"key_property":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_standard_environment":{"schema":{"data_retention_time":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_limit_exceeded_behavior":{"type":"TypeString","optional":true,"default":"PurgeOldData"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"ST1"},"sub_domain":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application_network_rule_set":{"schema":{"apply_to_device":{"type":"TypeBool","optional":true,"default":true},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"iotcentral_application_id":{"type":"TypeString","required":true,"forceNew":true},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub":{"schema":{"cloud_to_device":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"feedback":{"type":"TypeList","optional":true,"elem":{"schema":{"lock_duration":{"type":"TypeString","optional":true,"default":"PT60S"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"time_to_live":{"type":"TypeString","optional":true,"default":"PT1H"}}}},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10}}},"maxItems":1},"endpoint":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"enrichment":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":10},"event_hub_events_endpoint":{"type":"TypeString","computed":true},"event_hub_events_namespace":{"type":"TypeString","computed":true},"event_hub_events_path":{"type":"TypeString","computed":true},"event_hub_operations_endpoint":{"type":"TypeString","computed":true},"event_hub_operations_path":{"type":"TypeString","computed":true},"event_hub_partition_count":{"type":"TypeInt","optional":true,"computed":true},"event_hub_retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"fallback_route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","optional":true,"computed":true},"endpoint_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}}},"maxItems":1},"file_upload":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"computed":true},"identity_id":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"apply_to_builtin_eventhub_endpoint":{"type":"TypeBool","optional":true,"default":false},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}},"shared_access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"key_name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_consumer_group":{"schema":{"eventhub_endpoint_name":{"type":"TypeString","required":true,"forceNew":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_account":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_instance":{"schema":{"device_update_account_id":{"type":"TypeString","required":true,"forceNew":true},"diagnostic_enabled":{"type":"TypeBool","optional":true,"default":false},"diagnostic_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","optional":true,"default":"Hashed"},"data_residency_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"ip_filter_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"target":{"type":"TypeString","optional":true}}}},"linked_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_weight":{"type":"TypeInt","optional":true,"default":1},"apply_allocation_policy":{"type":"TypeBool","optional":true,"default":true},"connection_string":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_operations_host_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iot_dps_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"enrollment_read":{"type":"TypeBool","optional":true,"default":false},"enrollment_write":{"type":"TypeBool","optional":true,"default":false},"iothub_dps_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registration_read":{"type":"TypeBool","optional":true,"default":false},"registration_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_config":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_eventhub":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_queue":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_topic":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_storage_container":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_enrichment":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":100},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"key":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_fallback_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_file_upload":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"lock_duration":{"type":"TypeString","optional":true,"default":"PT1M"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications_enabled":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"default":"PT1H"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_shared_access_policy":{"schema":{"device_connect":{"type":"TypeBool","optional":true,"default":false},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registry_read":{"type":"TypeBool","optional":true,"default":false},"registry_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_connect":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"firewall_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group_cidr":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"ip_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","optional":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1024},"contact":{"type":"TypeSet","optional":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"enable_rbac_authorization":{"type":"TypeBool","optional":true},"enabled_for_deployment":{"type":"TypeBool","optional":true},"enabled_for_disk_encryption":{"type":"TypeBool","optional":true},"enabled_for_template_deployment":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_protection_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_access_policy":{"schema":{"application_id":{"type":"TypeString","optional":true,"forceNew":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true,"forceNew":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate":{"schema":{"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"contents":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate_attribute":{"type":"TypeList","computed":true,"elem":{"schema":{"created":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"expires":{"type":"TypeString","computed":true},"not_before":{"type":"TypeString","computed":true},"recovery_level":{"type":"TypeString","computed":true},"updated":{"type":"TypeString","computed":true}}}},"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"key_properties":{"type":"TypeList","required":true,"elem":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true},"exportable":{"type":"TypeBool","required":true},"key_size":{"type":"TypeInt","optional":true,"computed":true},"key_type":{"type":"TypeString","required":true},"reuse_key":{"type":"TypeBool","required":true}}},"maxItems":1},"lifetime_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","optional":true},"lifetime_percentage":{"type":"TypeInt","optional":true}}},"maxItems":1}}}},"secret_properties":{"type":"TypeList","required":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true}}},"maxItems":1},"x509_certificate_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","required":true},"subject_alternative_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dns_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"validity_in_months":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":30,"delete":30,"update":30}},"azurerm_key_vault_certificate_contacts":{"schema":{"contact":{"type":"TypeSet","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","optional":true},"admin":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","optional":true},"last_name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_id":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"provider_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"e":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","optional":true},"key_opts":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","optional":true,"forceNew":true},"key_type":{"type":"TypeString","required":true,"forceNew":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"rotation_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"automatic":{"type":"TypeList","optional":true,"elem":{"schema":{"time_after_creation":{"type":"TypeString","optional":true},"time_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"expire_after":{"type":"TypeString","optional":true},"notify_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_domain_encrypted_data":{"type":"TypeString","computed":true},"security_domain_key_vault_certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10,"minItems":3},"security_domain_quorum":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":30}},"azurerm_key_vault_managed_storage_account":{"schema":{"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"regenerate_key_automatically":{"type":"TypeBool","optional":true,"default":false},"regeneration_period":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_managed_storage_account_sas_token_definition":{"schema":{"managed_storage_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sas_template_uri":{"type":"TypeString","required":true},"sas_type":{"type":"TypeString","required":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validity_period":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","optional":true,"elem":{"schema":{"connector_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_name":{"type":"TypeString","required":true}}},"maxItems":1},"api_server_access_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true},"vnet_integration_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"api_server_authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auto_scaler_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"balance_similar_node_groups":{"type":"TypeBool","optional":true,"default":false},"empty_bulk_delete_max":{"type":"TypeString","optional":true,"computed":true},"expander":{"type":"TypeString","optional":true,"default":"random"},"max_graceful_termination_sec":{"type":"TypeString","optional":true,"computed":true},"max_node_provisioning_time":{"type":"TypeString","optional":true,"default":"15m"},"max_unready_nodes":{"type":"TypeInt","optional":true,"default":3},"max_unready_percentage":{"type":"TypeFloat","optional":true,"default":45},"new_pod_scale_up_delay":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_add":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_delete":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_failure":{"type":"TypeString","optional":true,"computed":true},"scale_down_unneeded":{"type":"TypeString","optional":true,"computed":true},"scale_down_unready":{"type":"TypeString","optional":true,"computed":true},"scale_down_utilization_threshold":{"type":"TypeString","optional":true,"computed":true},"scan_interval":{"type":"TypeString","optional":true,"computed":true},"skip_nodes_with_local_storage":{"type":"TypeBool","optional":true,"default":true},"skip_nodes_with_system_pods":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"automatic_channel_upgrade":{"type":"TypeString","optional":true},"azure_active_directory_role_based_access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","optional":true},"client_app_id":{"type":"TypeString","optional":true},"managed":{"type":"TypeBool","optional":true},"server_app_id":{"type":"TypeString","optional":true},"server_app_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"azure_policy_enabled":{"type":"TypeBool","optional":true},"confidential_computing":{"type":"TypeList","optional":true,"elem":{"schema":{"sgx_quote_helper_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"custom_ca_trust_certificates_base64":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"default_node_pool":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true},"enable_node_public_ip":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false},"cpu_cfs_quota_period":{"type":"TypeString","optional":true},"cpu_manager_policy":{"type":"TypeString","optional":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true},"pod_max_pid":{"type":"TypeInt","optional":true},"topology_manager_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"linux_os_config":{"type":"TypeList","optional":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"only_critical_addons_enabled":{"type":"TypeBool","optional":true},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed"},"os_sku":{"type":"TypeString","optional":true,"computed":true},"pod_subnet_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"temporary_name_for_rotation":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"VirtualMachineScaleSets","forceNew":true},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true},"vnet_subnet_id":{"type":"TypeString","optional":true},"workload_runtime":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix_private_cluster":{"type":"TypeString","optional":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_pod_security_policy":{"type":"TypeBool","optional":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","optional":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"http_proxy_config":{"type":"TypeList","optional":true,"elem":{"schema":{"http_proxy":{"type":"TypeString","optional":true,"forceNew":true},"https_proxy":{"type":"TypeString","optional":true,"forceNew":true},"no_proxy":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trusted_ca":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_cleaner_enabled":{"type":"TypeBool","optional":true,"default":false},"image_cleaner_interval_hours":{"type":"TypeInt","optional":true,"default":48},"ingress_application_gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","optional":true},"gateway_name":{"type":"TypeString","optional":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"key_management_service":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_network_access":{"type":"TypeString","optional":true,"default":"Public"}}},"maxItems":1},"key_vault_secrets_provider":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"secret_rotation_interval":{"type":"TypeString","optional":true,"default":"2m"}}},"maxItems":1},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"object_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"kubernetes_version":{"type":"TypeString","optional":true,"computed":true},"linux_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_username":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeList","required":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"local_account_disabled":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"hours":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"minItems":1}}}},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}}}},"maxItems":1},"maintenance_window_auto_upgrade":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"maintenance_window_node_os":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"microsoft_defender":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true}}},"maxItems":1},"monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"annotations_allowed":{"type":"TypeString","optional":true},"labels_allowed":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"docker_bridge_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ebpf_data_plane":{"type":"TypeString","optional":true,"forceNew":true},"ip_versions":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"load_balancer_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":30},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true},"managed_outbound_ipv6_count":{"type":"TypeInt","optional":true,"computed":true},"outbound_ip_address_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ip_prefix_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ports_allocated":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"load_balancer_sku":{"type":"TypeString","optional":true,"default":"standard","forceNew":true},"nat_gateway_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"network_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"network_plugin":{"type":"TypeString","required":true,"forceNew":true},"network_plugin_mode":{"type":"TypeString","optional":true,"forceNew":true},"network_policy":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"pod_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pod_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"service_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_os_channel_upgrade":{"type":"TypeString","optional":true},"node_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","optional":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","optional":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"open_service_mesh_enabled":{"type":"TypeBool","optional":true},"portal_fqdn":{"type":"TypeString","computed":true},"private_cluster_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"private_cluster_public_fqdn_enabled":{"type":"TypeBool","optional":true,"default":false},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"private_fqdn":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_based_access_control_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"run_command_enabled":{"type":"TypeBool","optional":true,"default":true},"service_mesh_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true}}},"maxItems":1},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"storage_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"disk_driver_version":{"type":"TypeString","optional":true,"default":"v1"},"file_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"snapshot_controller_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"web_app_routing":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_zone_id":{"type":"TypeString","required":true},"web_app_routing_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"windows_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"gmsa":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_server":{"type":"TypeString","required":true},"root_domain":{"type":"TypeString","required":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true}}},"maxItems":1},"workload_autoscaler_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"keda_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_controlled_values":{"type":"TypeString","computed":true},"vertical_pod_autoscaler_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_update_mode":{"type":"TypeString","computed":true}}},"maxItems":1},"workload_identity_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_kubernetes_cluster_extension":{"schema":{"aks_assigned_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true,"forceNew":true},"enable_node_public_ip":{"type":"TypeBool","optional":true,"forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true,"forceNew":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"cpu_cfs_quota_period":{"type":"TypeString","optional":true,"forceNew":true},"cpu_manager_policy":{"type":"TypeString","optional":true,"forceNew":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"pod_max_pid":{"type":"TypeInt","optional":true,"forceNew":true},"topology_manager_policy":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"linux_os_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true,"forceNew":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","optional":true,"default":"User"},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed","forceNew":true},"os_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"Linux","forceNew":true},"pod_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"spot_max_price":{"type":"TypeFloat","optional":true,"default":-1,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"vnet_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"windows_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"outbound_nat_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"workload_runtime":{"type":"TypeString","optional":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kubernetes_cluster_trusted_access_role_binding":{"schema":{"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_fleet_manager":{"schema":{"hub_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dns_prefix":{"type":"TypeString","required":true},"fqdn":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true}}},"maxItems":1},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_attached_database_configuration":{"schema":{"attached_database_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"cluster_resource_id":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_principal_modification_kind":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"elem":{"schema":{"external_tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"external_tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster":{"schema":{"allowed_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allowed_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"auto_stop_enabled":{"type":"TypeBool","optional":true,"default":true},"data_ingestion_uri":{"type":"TypeString","computed":true},"disk_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"double_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"engine":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"language_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimized_auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum_instances":{"type":"TypeInt","required":true},"minimum_instances":{"type":"TypeInt","required":true}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"public_ip_type":{"type":"TypeString","optional":true,"default":"IPv4"},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"streaming_ingestion_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_external_tenants":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true},"virtual_network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_management_public_ip_id":{"type":"TypeString","required":true},"engine_public_ip_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_customer_managed_key":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"user_identity":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_cluster_managed_private_endpoint":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_id":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_region":{"type":"TypeString","optional":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cosmosdb_data_connection":{"schema":{"cosmosdb_container_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_id":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retrieval_start_date":{"type":"TypeString","optional":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"hot_cache_period":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_database_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_eventgrid_data_connection":{"schema":{"blob_storage_event_type":{"type":"TypeString","optional":true,"default":"Microsoft.Storage.BlobCreated"},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"eventgrid_resource_id":{"type":"TypeString","optional":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","optional":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skip_first_record":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_eventhub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"compression":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_iothub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_script":{"schema":{"continue_on_errors_enabled":{"type":"TypeBool","optional":true,"default":false},"database_id":{"type":"TypeString","required":true,"forceNew":true},"force_an_update_when_value_changed":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sas_token":{"type":"TypeString","optional":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_lab":{"schema":{"auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"lab_plan_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","computed":true},"public_ip_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roster":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_group_id":{"type":"TypeString","optional":true},"lms_instance":{"type":"TypeString","optional":true},"lti_client_id":{"type":"TypeString","optional":true},"lti_context_id":{"type":"TypeString","optional":true},"lti_roster_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"security":{"type":"TypeList","required":true,"elem":{"schema":{"open_access_enabled":{"type":"TypeBool","required":true},"registration_code":{"type":"TypeString","computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title":{"type":"TypeString","required":true},"virtual_machine":{"type":"TypeList","required":true,"elem":{"schema":{"additional_capability_gpu_drivers_installed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"admin_user":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"create_option":{"type":"TypeString","optional":true,"default":"Image","forceNew":true},"image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"non_admin_user":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"shared_password_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_lab_service_plan":{"schema":{"allowed_regions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":28,"minItems":1},"default_auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"default_connection":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true},"web_rdp_access":{"type":"TypeString","optional":true},"web_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"default_network_subnet_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_gallery_id":{"type":"TypeString","optional":true},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"instructions":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_schedule":{"schema":{"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"stop_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_user":{"schema":{"additional_usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"},"email":{"type":"TypeString","required":true,"forceNew":true},"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb":{"schema":{"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"id":{"type":"TypeString","computed":true},"inbound_nat_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_version":{"type":"TypeString","optional":true,"computed":true},"public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"computed":true},"subnet_id":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool":{"schema":{"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tunnel_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier":{"type":"TypeInt","required":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"virtual_network_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool_address":{"schema":{"backend_address_ip_configuration_id":{"type":"TypeString","optional":true,"description":"For global load balancer, user needs to specify the `backend_address_ip_configuration_id` of the added regional load balancers"},"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"description":"For regional load balancer, user needs to specify `virtual_network_id` and `ip_address`"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_pool":{"schema":{"backend_port":{"type":"TypeInt","required":true},"floating_ip_enabled":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_end":{"type":"TypeInt","required":true},"frontend_port_start":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tcp_reset_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","optional":true},"backend_ip_configuration_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","required":true},"enable_floating_ip":{"type":"TypeBool","optional":true,"computed":true},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","optional":true},"frontend_port_end":{"type":"TypeInt","optional":true},"frontend_port_start":{"type":"TypeInt","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","optional":true,"default":1024},"backend_address_pool_id":{"type":"TypeString","required":true},"enable_tcp_reset":{"type":"TypeBool","optional":true,"default":false},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_probe":{"schema":{"interval_in_seconds":{"type":"TypeInt","optional":true,"default":15},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_probes":{"type":"TypeInt","optional":true,"default":2},"port":{"type":"TypeInt","required":true},"probe_threshold":{"type":"TypeInt","optional":true,"default":1},"protocol":{"type":"TypeString","optional":true,"computed":true},"request_path":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_rule":{"schema":{"backend_address_pool_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":1},"backend_port":{"type":"TypeInt","required":true},"disable_outbound_snat":{"type":"TypeBool","optional":true,"default":false},"enable_floating_ip":{"type":"TypeBool","optional":true,"default":false},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"load_distribution":{"type":"TypeString","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"probe_id":{"type":"TypeString","optional":true,"computed":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lighthouse_assignment":{"schema":{"lighthouse_definition_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_lighthouse_definition":{"schema":{"authorization":{"type":"TypeSet","required":true,"elem":{"schema":{"delegated_role_definition_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"eligible_authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"just_in_time_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"approver":{"type":"TypeSet","optional":true,"elem":{"schema":{"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true}}}},"maximum_activation_duration":{"type":"TypeString","optional":true,"default":"PT8H"},"multi_factor_auth_provider":{"type":"TypeString","optional":true}}},"maxItems":1},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}}},"lighthouse_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managing_tenant_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022``","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Function App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Linux Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_linux_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"default":0},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_linux_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_web_app_slot":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_service_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_load_test":{"schema":{"data_plane_uri":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"gateway_address":{"type":"TypeString","optional":true},"gateway_fqdn":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_cluster":{"schema":{"cluster_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"default":1000},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_cluster_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"log_analytics_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_data_export_rule":{"schema":{"destination_resource_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"export_rule_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_event":{"schema":{"event_log_name":{"type":"TypeString","required":true},"event_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_performance_counter":{"schema":{"counter_name":{"type":"TypeString","required":true},"instance_name":{"type":"TypeString","required":true},"interval_seconds":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"object_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_service":{"schema":{"name":{"type":"TypeString","computed":true},"read_access_id":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true},"write_access_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_storage_account":{"schema":{"data_source_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack_query":{"schema":{"additional_settings_json":{"type":"TypeString","optional":true},"body":{"type":"TypeString","required":true},"categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"query_pack_id":{"type":"TypeString","required":true,"forceNew":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"solutions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_saved_search":{"schema":{"category":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"function_alias":{"type":"TypeString","optional":true,"forceNew":true},"function_parameters":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_solution":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"solution_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_storage_insights":{"schema":{"blob_container_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"table_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_workspace":{"schema":{"allow_resource_only_permissions":{"type":"TypeBool","optional":true,"default":true},"cmk_for_query_forced":{"type":"TypeBool","optional":true},"daily_quota_gb":{"type":"TypeFloat","optional":true,"default":-1},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_shared_key":{"type":"TypeString","computed":true},"reservation_capacity_in_gb_per_day":{"type":"TypeInt","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_http":{"schema":{"body":{"type":"TypeString","optional":true},"headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"queries":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_after":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_name":{"type":"TypeString","required":true},"action_result":{"type":"TypeString","required":true}}},"minItems":1},"uri":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account":{"schema":{"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_agreement":{"schema":{"agreement_type":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"guest_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"guest_partner_name":{"type":"TypeString","required":true},"host_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"host_partner_name":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_assembly":{"schema":{"assembly_name":{"type":"TypeString","required":true},"assembly_version":{"type":"TypeString","optional":true,"default":"0.0.0.0"},"content":{"type":"TypeString","optional":true},"content_link_uri":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_batch_configuration":{"schema":{"batch_group_name":{"type":"TypeString","required":true,"forceNew":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"release_criteria":{"type":"TypeList","required":true,"elem":{"schema":{"batch_size":{"type":"TypeInt","optional":true},"message_count":{"type":"TypeInt","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeSet","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","required":true},"weekday":{"type":"TypeString","required":true}}}},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_certificate":{"schema":{"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true}}},"maxItems":1},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_certificate":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_map":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"map_type":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_partner":{"schema":{"business_identity":{"type":"TypeSet","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_schema":{"schema":{"content":{"type":"TypeString","required":true},"file_name":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_session":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","optional":true,"default":"[1.*, 2.0.0)"},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"client_certificate_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_share_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","optional":true,"default":true},"version":{"type":"TypeString","optional":true,"default":"~3"},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_http_request":{"schema":{"callback_url":{"type":"TypeString","computed":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"relative_path":{"type":"TypeString","optional":true},"schema":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_recurrence":{"schema":{"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"at_these_hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"at_these_minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"on_these_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_workflow":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"open_authentication_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"claim":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"workflow_management":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logic_app_integration_account_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","optional":true,"default":"https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#","forceNew":true},"workflow_version":{"type":"TypeString","optional":true,"default":"1.0.0.0","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_monitor":{"schema":{"company_name":{"type":"TypeString","optional":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logz_organization_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","required":true,"forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"100gb14days","forceNew":true},"usage_type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_sign_on_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account_tag_rule":{"schema":{"logz_sub_account_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_tag_rule":{"schema":{"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_compute_cluster":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"scale_settings":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true,"forceNew":true},"min_node_count":{"type":"TypeInt","required":true,"forceNew":true},"scale_down_nodes_after_idle_duration":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"key_value":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"ssh_public_access_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"vm_priority":{"type":"TypeString","required":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_compute_instance":{"schema":{"assign_to_user":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"object_id":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"authorization_type":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","computed":true}}},"maxItems":1},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"virtual_machine_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_datastore_blobstorage":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_auth_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_datalake_gen2":{"schema":{"authority_url":{"type":"TypeString","optional":true,"computed":true},"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_fileshare":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_fileshare_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_inference_cluster":{"schema":{"cluster_purpose":{"type":"TypeString","optional":true,"default":"FastProd","forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ssl":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cert":{"type":"TypeString","optional":true,"default":"","forceNew":true},"cname":{"type":"TypeString","optional":true,"default":"","forceNew":true},"key":{"type":"TypeString","optional":true,"default":"","forceNew":true},"leaf_domain_label":{"type":"TypeString","optional":true,"default":"","forceNew":true},"overwrite_existing_domain":{"type":"TypeBool","optional":true,"default":"","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_synapse_spark":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_workspace":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"container_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"discovery_url":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key_id":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"friendly_name":{"type":"TypeString","optional":true},"high_business_impact":{"type":"TypeBool","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_build_compute_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_user_assigned_identity":{"type":"TypeString","optional":true},"public_access_behind_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Basic"},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"v1_legacy_mode_enabled":{"type":"TypeBool","optional":true,"default":false},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maintenance_assignment_dedicated_host":{"schema":{"dedicated_host_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine_scale_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","optional":true},"install_patches":{"type":"TypeList","optional":true,"elem":{"schema":{"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"reboot":{"type":"TypeString","optional":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","optional":true,"default":"Custom"},"window":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","optional":true},"expiration_date_time":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"start_date_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application":{"schema":{"application_definition_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameter_values":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application_definition":{"schema":{"authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"role_definition_id":{"type":"TypeString","required":true},"service_principal_id":{"type":"TypeString","required":true}}},"minItems":1},"create_ui_definition":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_level":{"type":"TypeString","required":true,"forceNew":true},"main_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"package_enabled":{"type":"TypeBool","optional":true,"default":true},"package_file_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","required":true,"forceNew":true},"disk_access_id":{"type":"TypeString","optional":true},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_iops_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"gallery_image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"forceNew":true},"image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logical_sector_size":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"max_shares":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_access_policy":{"type":"TypeString","optional":true},"on_demand_bursting_enabled":{"type":"TypeBool","optional":true},"os_type":{"type":"TypeString","optional":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_type":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"computed":true},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"upload_size_bytes":{"type":"TypeInt","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk_sas_token":{"schema":{"access_level":{"type":"TypeString","required":true,"forceNew":true},"duration_in_seconds":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"sas_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_managed_lustre_file_system":{"schema":{"encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"hsm_setting":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"import_prefix":{"type":"TypeString","optional":true,"forceNew":true},"logging_container_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","required":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"time_of_day_in_utc":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_capacity_in_tb":{"type":"TypeInt","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"parent_management_group_id":{"type":"TypeString","optional":true,"computed":true},"subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_subscription_association":{"schema":{"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5}},"azurerm_management_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_management_lock":{"schema":{"lock_level":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_creator":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maps_account_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mariadb_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_mariadb_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeString","required":true,"forceNew":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_asset":{"schema":{"alternate_id":{"type":"TypeString","optional":true},"container":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_asset_filter":{"schema":{"asset_id":{"type":"TypeString","required":true,"forceNew":true},"first_quality_bitrate":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_miliseconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","optional":true},"property":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_content_key_policy":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_option":{"type":"TypeSet","required":true,"elem":{"schema":{"clear_key_configuration_enabled":{"type":"TypeBool","optional":true},"fairplay_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"ask":{"type":"TypeString","optional":true},"offline_rental_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"playback_duration_seconds":{"type":"TypeInt","optional":true},"storage_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"pfx":{"type":"TypeString","optional":true},"pfx_password":{"type":"TypeString","optional":true},"rental_and_lease_key_type":{"type":"TypeString","optional":true},"rental_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"open_restriction_enabled":{"type":"TypeBool","optional":true},"playready_configuration_license":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_test_devices":{"type":"TypeBool","optional":true},"begin_date":{"type":"TypeString","optional":true},"content_key_location_from_header_enabled":{"type":"TypeBool","optional":true},"content_key_location_from_key_id":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"grace_period":{"type":"TypeString","optional":true},"license_type":{"type":"TypeString","optional":true},"play_right":{"type":"TypeList","optional":true,"elem":{"schema":{"agc_and_color_stripe_restriction":{"type":"TypeInt","optional":true},"allow_passing_video_content_to_unknown_output":{"type":"TypeString","optional":true},"analog_video_opl":{"type":"TypeInt","optional":true},"compressed_digital_audio_opl":{"type":"TypeInt","optional":true},"compressed_digital_video_opl":{"type":"TypeInt","optional":true},"digital_video_only_content_restriction":{"type":"TypeBool","optional":true},"explicit_analog_television_output_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"best_effort_enforced":{"type":"TypeBool","optional":true,"default":false},"control_bits":{"type":"TypeInt","required":true}}},"maxItems":1},"first_play_expiration":{"type":"TypeString","optional":true},"image_constraint_for_analog_component_video_restriction":{"type":"TypeBool","optional":true},"image_constraint_for_analog_computer_monitor_restriction":{"type":"TypeBool","optional":true},"scms_restriction":{"type":"TypeInt","optional":true},"uncompressed_digital_audio_opl":{"type":"TypeInt","optional":true},"uncompressed_digital_video_opl":{"type":"TypeInt","optional":true}}},"maxItems":1},"relative_begin_date":{"type":"TypeString","optional":true},"relative_expiration_date":{"type":"TypeString","optional":true},"security_level":{"type":"TypeString","optional":true}}}},"playready_response_custom_data":{"type":"TypeString","optional":true},"token_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"alternate_key":{"type":"TypeList","optional":true,"elem":{"schema":{"rsa_token_key_exponent":{"type":"TypeString","optional":true},"rsa_token_key_modulus":{"type":"TypeString","optional":true},"symmetric_token_key":{"type":"TypeString","optional":true},"x509_token_key_raw":{"type":"TypeString","optional":true}}}},"audience":{"type":"TypeString","optional":true},"issuer":{"type":"TypeString","optional":true},"open_id_connect_discovery_document":{"type":"TypeString","optional":true},"primary_rsa_token_key_exponent":{"type":"TypeString","optional":true},"primary_rsa_token_key_modulus":{"type":"TypeString","optional":true},"primary_symmetric_token_key":{"type":"TypeString","optional":true},"primary_x509_token_key_raw":{"type":"TypeString","optional":true},"required_claim":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"token_type":{"type":"TypeString","optional":true}}},"maxItems":1},"widevine_configuration_template":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_job":{"schema":{"description":{"type":"TypeString","optional":true},"input_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1},"priority":{"type":"TypeString","optional":true,"default":"Normal","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"transform_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event":{"schema":{"auto_start_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true},"cross_domain_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"preset_name":{"type":"TypeString","optional":true,"forceNew":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"None"},"type":{"type":"TypeString","optional":true,"default":"None","forceNew":true}}},"maxItems":1},"hostname_prefix":{"type":"TypeString","optional":true},"input":{"type":"TypeList","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"key_frame_interval_duration":{"type":"TypeString","optional":true},"streaming_protocol":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"preview":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"preview_locator":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_options":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transcription_languages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"use_static_hostname":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event_output":{"schema":{"archive_window_duration":{"type":"TypeString","required":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"hls_fragments_per_ts_segment":{"type":"TypeInt","optional":true,"forceNew":true},"live_event_id":{"type":"TypeString","required":true,"forceNew":true},"manifest_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_snap_time_in_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"rewind_window_duration":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account":{"schema":{"encryption":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_key_identifier":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"type":{"type":"TypeString","optional":true,"default":"SystemKey"}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_delivery_access_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true},"ip_allow_list":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"storage_authentication_type":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account_filter":{"schema":{"first_quality_bitrate":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_milliseconds":{"type":"TypeInt","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_endpoint":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"akamai_signature_header_authentication_key":{"type":"TypeList","optional":true,"elem":{"schema":{"base64_key":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","optional":true},"identifier":{"type":"TypeString","optional":true}}}},"ip_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}}}},"maxItems":1},"auto_start_enabled":{"type":"TypeBool","optional":true,"computed":true},"cdn_enabled":{"type":"TypeBool","optional":true},"cdn_profile":{"type":"TypeString","optional":true,"computed":true},"cdn_provider":{"type":"TypeString","optional":true,"computed":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true,"computed":true},"cross_domain_policy":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"custom_host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_cache_age_seconds":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_locator":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content_key_id":{"type":"TypeString","optional":true,"forceNew":true},"label_reference_in_streaming_policy":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","optional":true,"forceNew":true}}}},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"end_time":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"filter_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"forceNew":true},"streaming_locator_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_streaming_policy":{"schema":{"common_encryption_cbcs":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_fairplay":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_persistent_license":{"type":"TypeBool","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"common_encryption_cenc":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"clear_track":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}},"content_key_to_track_mapping":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"track":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}}}}},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_playready":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_attributes":{"type":"TypeString","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_widevine_custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"envelope_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"no_encryption_enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_transform":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"builtin_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"preset_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true},"interleave_output":{"type":"TypeString","optional":true},"key_frame_interval_in_seconds":{"type":"TypeFloat","optional":true},"max_bitrate_bps":{"type":"TypeInt","optional":true},"max_height":{"type":"TypeInt","optional":true},"max_layers":{"type":"TypeInt","optional":true},"min_bitrate_bps":{"type":"TypeInt","optional":true},"min_height":{"type":"TypeInt","optional":true}}},"maxItems":1},"preset_name":{"type":"TypeString","required":true}}},"maxItems":1},"custom_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"codec":{"type":"TypeList","required":true,"elem":{"schema":{"aac_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":128000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"profile":{"type":"TypeString","optional":true,"default":"AacLc"},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"copy_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"copy_video":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"dd_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":192000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"h264_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":23},"entropy_mode":{"type":"TypeString","optional":true,"computed":true},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"rate_control_mode":{"type":"TypeString","optional":true,"default":"ABR"},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"h265_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":28},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"jpg_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"quality":{"type":"TypeInt","optional":true,"default":70},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"sprite_column":{"type":"TypeInt","optional":true,"default":0},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"png_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1}}},"minItems":1},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"deinterlace":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true,"default":"AutoPixelAdaptive"},"parity":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"fade_in":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"fade_out":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"overlay":{"type":"TypeList","optional":true,"elem":{"schema":{"audio":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}},"maxItems":1},"video":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"opacity":{"type":"TypeFloat","optional":true,"default":1},"position":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"start":{"type":"TypeString","optional":true}}},"maxItems":1}}},"minItems":1},"rotation":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"format":{"type":"TypeList","required":true,"elem":{"schema":{"jpg":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"mp4":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1},"png":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"transport_stream":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1}}},"minItems":1}}},"maxItems":1},"face_detector_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"analysis_resolution":{"type":"TypeString","optional":true,"default":"SourceResolution"},"blur_type":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"face_redactor_mode":{"type":"TypeString","optional":true,"default":"Analyze"}}},"maxItems":1},"on_error_action":{"type":"TypeString","optional":true,"default":"StopProcessingJob"},"relative_priority":{"type":"TypeString","optional":true,"default":"Normal"},"video_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"insights_type":{"type":"TypeString","optional":true,"default":"AllInsights"}}},"maxItems":1}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_country_code":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_code":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_data_network_name":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true,"forceNew":true},"network_address_port_translation":{"type":"TypeList","optional":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"pinhole_maximum_number":{"type":"TypeInt","optional":true,"default":65536},"port_range":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum":{"type":"TypeInt","optional":true,"default":49999},"minimum":{"type":"TypeInt","optional":true,"default":1024}}},"maxItems":1},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":120},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":60}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","optional":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"control_plane_access_name":{"type":"TypeString","optional":true},"core_network_technology":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"interoperability_settings_json":{"type":"TypeString","optional":true},"local_diagnostics_access":{"type":"TypeList","required":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","required":true},"https_server_certificate_url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","optional":true},"custom_location_id":{"type":"TypeString","optional":true},"edge_device_id":{"type":"TypeString","optional":true},"stack_hci_cluster_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"sku":{"type":"TypeString","required":true},"software_version":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","optional":true,"default":1440}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pcc_rule":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precedence":{"type":"TypeInt","required":true},"qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true},"guaranteed_bit_rate":{"type":"TypeList","optional":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"Preemptable"},"qos_indicator":{"type":"TypeInt","required":true}}},"maxItems":1},"service_data_flow_template":{"type":"TypeList","required":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","optional":true,"default":true}}}},"service_precedence":{"type":"TypeInt","required":true},"service_qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":9},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true},"preemption_vulnerability":{"type":"TypeString","optional":true},"qos_indicator":{"type":"TypeInt","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim":{"schema":{"authentication_key":{"type":"TypeString","required":true},"device_type":{"type":"TypeString","optional":true},"integrated_circuit_card_identifier":{"type":"TypeString","required":true,"forceNew":true},"international_mobile_subscriber_identity":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operator_key_code":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","optional":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true},"static_ipv4_address":{"type":"TypeString","optional":true}}},"minItems":1},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","optional":true},"registration_timer_in_seconds":{"type":"TypeInt","optional":true,"default":3240},"slice":{"type":"TypeList","required":true,"elem":{"schema":{"data_network":{"type":"TypeList","required":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":0},"allowed_services_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","required":true},"default_session_type":{"type":"TypeString","optional":true,"default":"IPv4"},"max_buffered_packets":{"type":"TypeInt","optional":true,"default":10},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"NotPreemptable"},"qos_indicator":{"type":"TypeInt","required":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}}}},"default_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":180,"read":5,"delete":180,"update":60}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","required":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","optional":true},"slice_service_type":{"type":"TypeInt","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_monitor_aad_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true,"forceNew":true},"eventhub_name":{"type":"TypeString","optional":true,"forceNew":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"role_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"automation_runbook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"is_global_runbook":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true},"runbook_name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true,"default":false},"webhook_resource_id":{"type":"TypeString","required":true}}}},"azure_app_push_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"azure_function_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"http_trigger_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"email_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"event_hub_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","required":true},"ticket_configuration":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","optional":true,"default":"global","forceNew":true},"logic_app_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"callback_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"short_name":{"type":"TypeString","required":true},"sms_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"webhook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","optional":true,"computed":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_action_group":{"schema":{"action_group_id":{"type":"TypeString","required":true},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"suppression":{"type":"TypeList","required":true,"elem":{"schema":{"recurrence_type":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"end_date_utc":{"type":"TypeString","required":true},"recurrence_monthly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"},"minItems":1},"recurrence_weekly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"start_date_utc":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_activity_log_alert":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"caller":{"type":"TypeString","optional":true},"category":{"type":"TypeString","required":true},"level":{"type":"TypeString","optional":true},"levels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operation_name":{"type":"TypeString","optional":true},"recommendation_category":{"type":"TypeString","optional":true},"recommendation_impact":{"type":"TypeString","optional":true},"recommendation_type":{"type":"TypeString","optional":true},"resource_group":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"previous":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reason":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_id":{"type":"TypeString","optional":true},"resource_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_provider":{"type":"TypeString","optional":true},"resource_providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_type":{"type":"TypeString","optional":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"service_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"services":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"status":{"type":"TypeString","optional":true},"statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sub_status":{"type":"TypeString","optional":true},"sub_statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_action_group":{"schema":{"add_action_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_prometheus_rule_group":{"schema":{"cluster_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"interval":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"action_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":5},"alert":{"type":"TypeString","optional":true},"alert_resolution":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_resolved":{"type":"TypeBool","optional":true},"time_to_resolve":{"type":"TypeString","optional":true}}},"maxItems":1},"annotations":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"expression":{"type":"TypeString","required":true},"for":{"type":"TypeString","optional":true},"labels":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"record":{"type":"TypeString","optional":true},"severity":{"type":"TypeInt","optional":true}}}},"rule_group_enabled":{"type":"TypeBool","optional":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_autoscale_setting":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"send_to_subscription_administrator":{"type":"TypeBool","optional":true,"default":false},"send_to_subscription_co_administrator":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"webhook":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_uri":{"type":"TypeString","required":true}}}}}},"maxItems":1},"predictive":{"type":"TypeList","optional":true,"elem":{"schema":{"look_ahead_time":{"type":"TypeString","optional":true},"scale_mode":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"profile":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeList","required":true,"elem":{"schema":{"default":{"type":"TypeInt","required":true},"maximum":{"type":"TypeInt","required":true},"minimum":{"type":"TypeInt","required":true}}},"maxItems":1},"fixed_date":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hours":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"minutes":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","required":true,"elem":{"schema":{"dimensions":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"divide_by_instance_count":{"type":"TypeBool","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","optional":true},"metric_resource_id":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"statistic":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","required":true},"time_window":{"type":"TypeString","required":true}}},"maxItems":1},"scale_action":{"type":"TypeList","required":true,"elem":{"schema":{"cooldown":{"type":"TypeString","required":true},"direction":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":10}}},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_flow":{"type":"TypeList","required":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"output_stream":{"type":"TypeString","optional":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"transform_kql":{"type":"TypeString","optional":true}}},"minItems":1},"data_sources":{"type":"TypeList","optional":true,"elem":{"schema":{"data_import":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","required":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"stream":{"type":"TypeString","required":true}}}}}},"maxItems":1},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"extension_json":{"type":"TypeString","optional":true},"extension_name":{"type":"TypeString","required":true},"input_data_sources":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"iis_log":{"type":"TypeList","optional":true,"elem":{"schema":{"log_directories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"settings":{"type":"TypeList","optional":true,"elem":{"schema":{"text":{"type":"TypeList","required":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"performance_counter":{"type":"TypeList","optional":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"sampling_frequency_in_seconds":{"type":"TypeInt","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"prometheus_forwarder":{"type":"TypeList","optional":true,"elem":{"schema":{"label_include_filter":{"type":"TypeSet","optional":true,"elem":{"schema":{"label":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"syslog":{"type":"TypeList","optional":true,"elem":{"schema":{"facility_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"log_levels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_event_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"x_path_queries":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_firewall_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}}},"monitor_account":{"type":"TypeList","optional":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"storage_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_blob_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_table_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_declaration":{"type":"TypeSet","optional":true,"elem":{"schema":{"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"stream_name":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule_association":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_collection_rule_id":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"default":"configurationAccessEndpoint","forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","optional":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"log_analytics_destination_type":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"metric":{"type":"TypeSet","optional":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_solution_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"locations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"servicebus_rule_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_metric_alert":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"application_insights_web_test_location_availability_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"component_id":{"type":"TypeString","required":true},"failed_location_count":{"type":"TypeInt","required":true},"web_test_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"auto_mitigate":{"type":"TypeBool","optional":true,"default":true},"criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true,"default":false},"threshold":{"type":"TypeFloat","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"dynamic_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"alert_sensitivity":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"evaluation_failure_count":{"type":"TypeInt","optional":true,"default":4},"evaluation_total_count":{"type":"TypeInt","optional":true,"default":4},"ignore_data_before":{"type":"TypeString","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","optional":true,"default":"PT1M"},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"severity":{"type":"TypeInt","optional":true,"default":3},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_location":{"type":"TypeString","optional":true,"description":"The location of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"target_resource_type":{"type":"TypeString","optional":true,"description":"The resource type (e.g. Microsoft.Compute/virtualMachines) of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"window_size":{"type":"TypeString","optional":true,"default":"PT5M"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scope":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scoped_service":{"schema":{"linked_resource_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_group":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","optional":true},"email_subject":{"type":"TypeString","optional":true}}},"maxItems":1},"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":100},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_type":{"type":"TypeString","optional":true,"default":"ResultCount"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"severity":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","optional":true},"time_window":{"type":"TypeInt","required":true},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_column":{"type":"TypeString","optional":true},"metric_trigger_type":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert_v2":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"custom_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"created_with_api_version":{"type":"TypeString","computed":true},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"failing_periods":{"type":"TypeList","optional":true,"elem":{"schema":{"minimum_failing_periods_to_trigger_alert":{"type":"TypeInt","required":true},"number_of_evaluation_periods":{"type":"TypeInt","required":true}}},"maxItems":1},"metric_measure_column":{"type":"TypeString","optional":true},"operator":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true},"resource_id_column":{"type":"TypeString","optional":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation_method":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"evaluation_frequency":{"type":"TypeString","optional":true},"is_a_legacy_log_analytics_rule":{"type":"TypeBool","computed":true},"is_workspace_alerts_storage_configured":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mute_actions_after_alert_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_time_range_override":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"severity":{"type":"TypeInt","required":true},"skip_query_validation":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"window_duration":{"type":"TypeString","required":true},"workspace_alerts_storage_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"Include"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","required":true}}},"maxItems":1},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_smart_detector_alert_rule":{"schema":{"action_group":{"type":"TypeList","required":true,"elem":{"schema":{"email_subject":{"type":"TypeString","optional":true},"ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"webhook_payload":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"detector_type":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"severity":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling_duration":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database":{"schema":{"auto_pause_delay_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"creation_source_database_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"elastic_pool_id":{"type":"TypeString","optional":true},"geo_backup_enabled":{"type":"TypeBool","optional":true,"default":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"ledger_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"computed":true},"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"maintenance_configuration_name":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeInt","optional":true,"computed":true},"min_capacity":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_replica_count":{"type":"TypeInt","optional":true,"computed":true},"read_scale":{"type":"TypeBool","optional":true,"computed":true},"recover_database_id":{"type":"TypeString","optional":true},"restore_dropped_database_id":{"type":"TypeString","optional":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"sample_name":{"type":"TypeString","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backup_interval_in_hours":{"type":"TypeInt","optional":true,"default":12},"retention_days":{"type":"TypeInt","required":true}}},"maxItems":1},"sku_name":{"type":"TypeString","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Geo"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"transparent_data_encryption_enabled":{"type":"TypeBool","optional":true,"default":true},"zone_redundant":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_database_extended_auditing_policy":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database_vulnerability_assessment_rule_baseline":{"schema":{"baseline_name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"baseline_result":{"type":"TypeSet","required":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"database_name":{"type":"TypeString","required":true,"forceNew":true},"rule_id":{"type":"TypeString","required":true,"forceNew":true},"server_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"max_size_bytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_gb":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_database_settings":{"type":"TypeList","required":true,"elem":{"schema":{"max_capacity":{"type":"TypeFloat","required":true},"min_capacity":{"type":"TypeFloat","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"family":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_server":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}},"minItems":1},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_job_agent":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_job_credential":{"schema":{"job_agent_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_managed_database":{"schema":{"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_days":{"type":"TypeInt","optional":true,"default":7}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_mssql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true},"login_username":{"type":"TypeString","required":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_vulnerability_assessment":{"schema":{"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":true},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_outbound_firewall_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"azuread_administrator":{"type":"TypeList","optional":true,"elem":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login_username":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1,"minItems":1},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_network_restriction_enabled":{"type":"TypeBool","optional":true,"default":false},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transparent_data_encryption_key_vault_key_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_server_dns_alias":{"schema":{"dns_record":{"type":"TypeString","computed":true},"mssql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_mssql_server_extended_auditing_policy":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_account_subscription_id":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_microsoft_support_auditing_policy":{"schema":{"blob_storage_endpoint":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_subscription_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"server_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"server_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_machine":{"schema":{"assessment":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"run_immediately":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"monthly_occurrence":{"type":"TypeInt","optional":true},"start_time":{"type":"TypeString","required":true},"weekly_interval":{"type":"TypeInt","optional":true}}},"maxItems":1}}},"maxItems":1},"auto_backup":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_password":{"type":"TypeString","optional":true},"manual_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"full_backup_frequency":{"type":"TypeString","required":true},"full_backup_start_hour":{"type":"TypeInt","required":true},"full_backup_window_in_hours":{"type":"TypeInt","required":true},"log_backup_frequency_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_period_in_days":{"type":"TypeInt","required":true},"storage_account_access_key":{"type":"TypeString","required":true},"storage_blob_endpoint":{"type":"TypeString","required":true},"system_databases_backup_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"auto_patching":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window_duration_in_minutes":{"type":"TypeInt","required":true},"maintenance_window_starting_hour":{"type":"TypeInt","required":true}}},"maxItems":1},"key_vault_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_url":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"service_principal_name":{"type":"TypeString","required":true,"forceNew":true},"service_principal_secret":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"r_services_enabled":{"type":"TypeBool","optional":true},"sql_connectivity_port":{"type":"TypeInt","optional":true,"default":1433},"sql_connectivity_type":{"type":"TypeString","optional":true,"default":"PRIVATE"},"sql_connectivity_update_password":{"type":"TypeString","optional":true},"sql_connectivity_update_username":{"type":"TypeString","optional":true},"sql_instance":{"type":"TypeList","optional":true,"elem":{"schema":{"adhoc_workloads_optimization_enabled":{"type":"TypeBool","optional":true,"default":false},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"instant_file_initialization_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"lock_pages_in_memory_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"max_dop":{"type":"TypeInt","optional":true,"default":0},"max_server_memory_mb":{"type":"TypeInt","optional":true,"default":2147483647},"min_server_memory_mb":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"sql_license_type":{"type":"TypeString","optional":true,"forceNew":true},"sql_virtual_machine_group_id":{"type":"TypeString","optional":true},"storage_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"data_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"disk_type":{"type":"TypeString","required":true},"log_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"storage_workload_type":{"type":"TypeString","required":true},"system_db_on_data_disk_enabled":{"type":"TypeBool","optional":true,"default":false},"temp_db_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"data_file_count":{"type":"TypeInt","optional":true,"default":8},"data_file_growth_in_mb":{"type":"TypeInt","optional":true,"default":512},"data_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"default_file_path":{"type":"TypeString","required":true},"log_file_growth_mb":{"type":"TypeInt","optional":true,"default":512},"log_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"wsfc_domain_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_bootstrap_account_password":{"type":"TypeString","required":true},"cluster_operator_account_password":{"type":"TypeString","required":true},"sql_service_account_password":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_virtual_machine_availability_group_listener":{"schema":{"availability_group_name":{"type":"TypeString","optional":true,"forceNew":true},"load_balancer_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"probe_port":{"type":"TypeInt","required":true,"forceNew":true},"sql_virtual_machine_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"multi_subnet_ip_configuration":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"replica":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"commit":{"type":"TypeString","required":true,"forceNew":true},"failover_mode":{"type":"TypeString","required":true,"forceNew":true},"readable_secondary":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}}}},"sql_virtual_machine_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_mssql_virtual_machine_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_image_offer":{"type":"TypeString","required":true,"forceNew":true},"sql_image_sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wsfc_domain_profile":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_bootstrap_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_operator_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_subnet_type":{"type":"TypeString","required":true,"forceNew":true},"fqdn":{"type":"TypeString","required":true,"forceNew":true},"organizational_unit_path":{"type":"TypeString","optional":true,"forceNew":true},"sql_service_account_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_primary_key":{"type":"TypeString","optional":true},"storage_account_url":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_password":{"type":"TypeString","optional":true},"backup_retention_days":{"type":"TypeInt","optional":true,"default":7},"create_mode":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"iops":{"type":"TypeInt","optional":true,"computed":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server_active_directory_administrator":{"schema":{"identity_id":{"type":"TypeString","required":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_nat_gateway_public_ip_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nat_gateway_public_ip_prefix_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_netapp_account":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"domain":{"type":"TypeString","required":true},"organizational_unit":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"smb_server_name":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"qos_type":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"size_in_tb":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"daily_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"hourly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"monthly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"maxItems":30},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"azure_vmware_data_store_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"create_from_snapshot_resource_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true,"forceNew":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_clients":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"protocols_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"root_access_enabled":{"type":"TypeBool","optional":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true},"unix_read_write":{"type":"TypeBool","optional":true}}},"maxItems":5},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_features":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_style":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","optional":true,"computed":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","optional":true,"computed":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"application_identifier":{"type":"TypeString","required":true,"forceNew":true},"group_description":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","required":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","required":true},"nfsv41_enabled":{"type":"TypeBool","required":true},"root_access_enabled":{"type":"TypeBool","optional":true,"default":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true,"default":false},"unix_read_write":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":5,"minItems":1},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"security_style":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","required":true,"forceNew":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"volume_spec_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":5,"minItems":2}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_network_connection_monitor":{"schema":{"endpoint":{"type":"TypeSet","required":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"coverage_level":{"type":"TypeString","optional":true},"excluded_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"item":{"type":"TypeSet","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"AgentAddress"}}}},"type":{"type":"TypeString","optional":true,"default":"Include"}}},"maxItems":1},"included_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_resource_id":{"type":"TypeString","optional":true,"computed":true},"target_resource_type":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"output_workspace_resource_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"test_configuration":{"type":"TypeSet","required":true,"elem":{"schema":{"http_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"method":{"type":"TypeString","optional":true,"default":"Get"},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","optional":true},"prefer_https":{"type":"TypeBool","optional":true,"default":false},"request_header":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"valid_status_code_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"icmp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"preferred_ip_version":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"success_threshold":{"type":"TypeList","optional":true,"elem":{"schema":{"checks_failed_percent":{"type":"TypeInt","optional":true},"round_trip_time_ms":{"type":"TypeFloat","optional":true}}},"maxItems":1},"tcp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_port_behavior":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"test_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":60}}}},"test_group":{"type":"TypeSet","required":true,"elem":{"schema":{"destination_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"source_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"test_configuration_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_function_azure_traffic_collector":{"schema":{"collector_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"internal_dns_name_label":{"type":"TypeString","optional":true,"computed":true},"internal_domain_name_suffix":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"computed":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_gateway_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_nat_rule_association":{"schema":{"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_security_group_association":{"schema":{"network_interface_id":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager":{"schema":{"cross_tenant_scopes":{"type":"TypeList","computed":true,"elem":{"schema":{"management_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subscriptions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","required":true,"elem":{"schema":{"management_group_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"scope_accesses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule":{"schema":{"action":{"type":"TypeString","required":true},"admin_rule_collection_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"destination_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"source_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule_collection":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"security_admin_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_connectivity_configuration":{"schema":{"applies_to_group":{"type":"TypeList","required":true,"elem":{"schema":{"global_mesh_enabled":{"type":"TypeBool","optional":true},"group_connectivity":{"type":"TypeString","required":true},"network_group_id":{"type":"TypeString","required":true},"use_hub_gateway":{"type":"TypeBool","optional":true}}}},"connectivity_topology":{"type":"TypeString","required":true},"delete_existing_peering_enabled":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"global_mesh_enabled":{"type":"TypeBool","optional":true},"hub":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true},"resource_type":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_deployment":{"schema":{"configuration_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"scope_access":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_network_manager_management_group_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_scope_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"target_scope_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_security_admin_configuration":{"schema":{"apply_on_network_intent_policy_based_services":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_static_member":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_id":{"type":"TypeString","required":true,"forceNew":true},"region":{"type":"TypeString","computed":true},"target_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_network_manager_subscription_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_profile":{"schema":{"container_network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}},"maxItems":1},"container_network_interface_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_rule":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher_flow_log":{"schema":{"enabled":{"type":"TypeBool","required":true},"location":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"storage_account_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"interval_in_minutes":{"type":"TypeInt","optional":true,"default":60},"workspace_id":{"type":"TypeString","required":true},"workspace_region":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}},"maxItems":1},"version":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_new_relic_monitor":{"schema":{"account_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"account_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ingestion_key":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"organization_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","optional":true,"default":"MONTHLY","forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"newrelic-pay-as-you-go-free-live","forceNew":true},"usage_type":{"type":"TypeString","optional":true,"default":"PAYG","forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nginx_certificate":{"schema":{"certificate_virtual_path":{"type":"TypeString","required":true},"key_vault_secret_id":{"type":"TypeString","required":true},"key_virtual_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_nginx_configuration":{"schema":{"config_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true},"package_data":{"type":"TypeString","optional":true},"protected_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"root_file":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_nginx_deployment":{"schema":{"diagnose_support_enabled":{"type":"TypeBool","optional":true},"frontend_private":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"frontend_public":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"ip_address":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logging_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}}},"managed_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}}},"nginx_version":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"application_mode":{"type":"TypeString","required":true},"bundle_id":{"type":"TypeString","required":true},"key_id":{"type":"TypeString","required":true},"team_id":{"type":"TypeString","required":true},"token":{"type":"TypeString","required":true}}},"maxItems":1},"gcm_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"notification_hub_name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_contact":{"schema":{"contact_profile_id":{"type":"TypeString","required":true,"forceNew":true},"ground_station_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"reservation_end_time":{"type":"TypeString","required":true,"forceNew":true},"reservation_start_time":{"type":"TypeString","required":true,"forceNew":true},"spacecraft_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_orbital_contact_profile":{"schema":{"auto_tracking":{"type":"TypeString","required":true},"event_hub_uri":{"type":"TypeString","optional":true},"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"channels":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"demodulation_configuration":{"type":"TypeString","optional":true},"end_point":{"type":"TypeSet","required":true,"elem":{"schema":{"end_point_name":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","optional":true},"port":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"modulation_configuration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_elevation_degrees":{"type":"TypeFloat","optional":true},"minimum_variable_contact_duration":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_spacecraft":{"schema":{"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"norad_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title_line":{"type":"TypeString","required":true},"two_line_elements":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version_enabled":{"type":"TypeBool","optional":true,"default":true},"extensions_to_provision_after_vm_creation":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"failure_suppression_enabled":{"type":"TypeBool","optional":true},"force_extension_execution_on_change":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"computed":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"os_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_data":{"type":"TypeString","optional":true},"linux_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"windows_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"timezone":{"type":"TypeString","optional":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}}}},"maxItems":1}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"priority_mix":{"type":"TypeList","optional":true,"elem":{"schema":{"base_regular_count":{"type":"TypeInt","optional":true,"default":0},"regular_percentage_above_base":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"computed":true},"sku_name":{"type":"TypeString","optional":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"user_data_base64":{"type":"TypeString","optional":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","optional":true},"anti_virus_profile":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"dns_subscription":{"type":"TypeString","optional":true},"file_blocking_profile":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"url_filtering_profile":{"type":"TypeString","optional":true},"vulnerability_profile":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_certificate":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"self_signed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_fqdn_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"fully_qualified_domain_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_outbound_trust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_outbound_untrust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_prefix_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prefix_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_rule":{"schema":{"action":{"type":"TypeString","required":true},"applications":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"audit_comment":{"type":"TypeString","optional":true},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1,"minItems":1},"decryption_rule_type":{"type":"TypeString","optional":true,"default":"None"},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_fqdn_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"inspection_certificate_id":{"type":"TypeString","optional":true},"logging_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"negate_destination":{"type":"TypeBool","optional":true,"default":false},"negate_source":{"type":"TypeBool","optional":true,"default":false},"priority":{"type":"TypeInt","required":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"application-default"},"protocol_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_palo_alto_virtual_network_appliance":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_active_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"The ticket details.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_eligible_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the eligible role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this eligible role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"Ticket details relating to the assignment.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_point_to_site_vpn_gateway":{"schema":{"connection_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true},"route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"elem":{"schema":{"ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"vpn_client_address_pool":{"type":"TypeList","required":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference_internet_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"scale_unit":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_rule":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","required":true,"forceNew":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_definition_group":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","optional":true},"category":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"policy_definition_reference":{"type":"TypeList","required":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true},"policy_group_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","optional":true,"computed":true}}}},"policy_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"configuration":{"type":"TypeList","required":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true},"content_hash":{"type":"TypeString","optional":true,"computed":true},"content_uri":{"type":"TypeString","optional":true,"computed":true},"parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_tenant_configuration":{"schema":{"private_markdown_storage_enforced":{"type":"TypeBool","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true},"administrator_password":{"type":"TypeString","optional":true},"authentication":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory_auth_enabled":{"type":"TypeBool","optional":true,"default":false},"password_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true},"customer_managed_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replication_role":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_flexible_server_active_directory_administrator":{"schema":{"object_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_database":{"schema":{"charset":{"type":"TypeString","optional":true,"default":"UTF8","forceNew":true},"collation":{"type":"TypeString","optional":true,"default":"en_US.utf8","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_postgresql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_powerbi_embedded":{"schema":{"administrators":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","optional":true,"default":"Gen1","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"target_dns_servers":{"type":"TypeList","required":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"port":{"type":"TypeInt","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","required":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"subnet_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":10},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_zone_name":{"type":"TypeString","required":true,"forceNew":true},"registration_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_endpoint":{"schema":{"custom_dns_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"custom_network_interface_name":{"type":"TypeString","optional":true,"forceNew":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"member_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_dns_zone_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"record_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"type":{"type":"TypeString","computed":true}}}}}}},"private_dns_zone_group":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_zone_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"private_service_connection":{"type":"TypeList","required":true,"elem":{"schema":{"is_manual_connection":{"type":"TypeBool","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_connection_resource_alias":{"type":"TypeString","optional":true,"forceNew":true},"private_connection_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"request_message":{"type":"TypeString","optional":true},"subresource_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_private_endpoint_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","optional":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary":{"type":"TypeBool","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":8},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_proximity_placement_group":{"schema":{"allowed_vm_sizes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ddos_protection_mode":{"type":"TypeString","optional":true,"default":"VirtualNetworkInherited"},"ddos_protection_plan_id":{"type":"TypeString","optional":true},"domain_name_label":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_fqdn":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"prefix_length":{"type":"TypeInt","optional":true,"default":28,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_purview_account":{"schema":{"atlas_kafka_endpoint_primary_connection_string":{"type":"TypeString","computed":true},"atlas_kafka_endpoint_secondary_connection_string":{"type":"TypeString","computed":true},"catalog_endpoint":{"type":"TypeString","computed":true},"guardian_endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_resources":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_namespace_id":{"type":"TypeString","computed":true},"resource_group_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scan_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_recovery_services_vault":{"schema":{"classic_vmware_replication_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"cross_region_restore_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"infrastructure_encryption_enabled":{"type":"TypeBool","required":true},"key_id":{"type":"TypeString","required":true},"use_system_assigned_identity":{"type":"TypeBool","optional":true,"default":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"monitoring":{"type":"TypeList","optional":true,"elem":{"schema":{"alerts_for_all_job_failures_enabled":{"type":"TypeBool","optional":true,"default":true},"alerts_for_critical_operation_failures_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"soft_delete_enabled":{"type":"TypeBool","optional":true,"default":true},"storage_mode_type":{"type":"TypeString","optional":true,"default":"GeoRedundant"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":30,"update":60}},"azurerm_recovery_services_vault_resource_guard_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_guard_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","required":true},"enable_non_ssl_port":{"type":"TypeBool","optional":true,"default":false},"family":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"patch_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window":{"type":"TypeString","optional":true,"default":"PT5H"},"start_hour_utc":{"type":"TypeInt","optional":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"redis_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","optional":true},"aof_storage_connection_string_0":{"type":"TypeString","optional":true},"aof_storage_connection_string_1":{"type":"TypeString","optional":true},"enable_authentication":{"type":"TypeBool","optional":true,"default":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_delta":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_policy":{"type":"TypeString","optional":true,"default":"volatile-lru"},"maxmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"notify_keyspace_events":{"type":"TypeString","optional":true},"rdb_backup_enabled":{"type":"TypeBool","optional":true},"rdb_backup_frequency":{"type":"TypeInt","optional":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","optional":true},"rdb_storage_connection_string":{"type":"TypeString","optional":true}}},"maxItems":1},"redis_version":{"type":"TypeString","optional":true,"computed":true},"replicas_per_master":{"type":"TypeInt","optional":true,"computed":true},"replicas_per_primary":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_redis_enterprise_cluster":{"schema":{"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_enterprise_database":{"schema":{"client_protocol":{"type":"TypeString","optional":true,"default":"Encrypted","forceNew":true},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"clustering_policy":{"type":"TypeString","optional":true,"default":"OSSCluster","forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"default":"VolatileLRU","forceNew":true},"linked_database_group_nickname":{"type":"TypeString","optional":true,"forceNew":true},"linked_database_id":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"module":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"args":{"type":"TypeString","optional":true,"default":"","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}}},"maxItems":4},"name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"port":{"type":"TypeInt","optional":true,"default":10000,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_firewall_rule":{"schema":{"end_ip":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_linked_server":{"schema":{"linked_redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"linked_redis_cache_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_role":{"type":"TypeString","required":true,"forceNew":true},"target_redis_cache_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_relay_hybrid_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"relay_namespace_name":{"type":"TypeString","required":true,"forceNew":true},"requires_client_authorization":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_hybrid_connection_authorization_rule":{"schema":{"hybrid_connection_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_namespace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"metric_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_relay_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_cli":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_power_shell":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_by":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_resource_group_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_resource_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_provider_registration":{"schema":{"feature":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"registered":{"type":"TypeBool","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":30,"update":120}},"azurerm_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_resource_id":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":60}},"azurerm_route":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"communities":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rule_type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_map":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeList","required":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true}}}},"match_criterion":{"type":"TypeList","optional":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_condition":{"type":"TypeString","required":true},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"next_step_if_matched":{"type":"TypeString","optional":true,"default":"Unknown"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_server":{"schema":{"branch_to_branch_traffic_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_route_server_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"route_server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_route_table":{"schema":{"disable_bgp_route_propagation":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_search_service":{"schema":{"allowed_ips":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_failure_mode":{"type":"TypeString","optional":true},"customer_managed_key_enforcement_enabled":{"type":"TypeBool","optional":true,"default":false},"hosting_mode":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","optional":true,"default":1},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","optional":true,"default":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_search_shared_private_link_service":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"search_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_assessment":{"schema":{"additional_data":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"assessment_policy_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeList","required":true,"elem":{"schema":{"cause":{"type":"TypeString","optional":true},"code":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_assessment_policy":{"schema":{"categories":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"implementation_effort":{"type":"TypeString","optional":true},"name":{"type":"TypeString","computed":true},"remediation_description":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true,"default":"Medium"},"threats":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"user_impact":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_auto_provisioning":{"schema":{"auto_provision":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_automation":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","required":true},"trigger_url":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"source":{"type":"TypeList","required":true,"elem":{"schema":{"event_source":{"type":"TypeString","required":true},"rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule":{"type":"TypeList","required":true,"elem":{"schema":{"expected_value":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"property_path":{"type":"TypeString","required":true},"property_type":{"type":"TypeString","required":true}}}}}}}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_contact":{"schema":{"alert_notifications":{"type":"TypeBool","required":true},"alerts_to_admins":{"type":"TypeBool","required":true},"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"default":"default1"},"phone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_server_vulnerability_assessment":{"schema":{"hybrid_machine_id":{"type":"TypeString","optional":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_server_vulnerability_assessment_virtual_machine":{"schema":{"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_setting":{"schema":{"enabled":{"type":"TypeBool","required":true},"setting_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":10,"read":5,"delete":10,"update":10}},"azurerm_security_center_subscription_pricing":{"schema":{"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_extension_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"resource_type":{"type":"TypeString","optional":true,"default":"VirtualMachines"},"subplan":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_workspace":{"schema":{"scope":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sentinel_alert_rule_anomaly_built_in":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_anomaly_duplicate":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"built_in_rule_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"is_default_settings":{"type":"TypeBool","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true},"prioritized_exclude_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prioritize":{"type":"TypeString","optional":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_fusion":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"sub_type":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"severities_allowed":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_machine_learning_behavior_analytics":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_ms_security_incident":{"schema":{"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"display_name_exclude_filter":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name_filter":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_filter":{"type":"TypeString","required":true},"severity_filter":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_nrt":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident_enabled":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_scheduled":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"group_by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_frequency":{"type":"TypeString","optional":true,"default":"PT5H"},"query_period":{"type":"TypeString","optional":true,"default":"PT5H"},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","optional":true,"default":"GreaterThan"},"trigger_threshold":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_threat_intelligence":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_automation_rule":{"schema":{"action_incident":{"type":"TypeList","optional":true,"elem":{"schema":{"classification":{"type":"TypeString","optional":true},"classification_comment":{"type":"TypeString","optional":true},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"owner_id":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true},"status":{"type":"TypeString","optional":true}}}},"action_playbook":{"type":"TypeList","optional":true,"elem":{"schema":{"logic_app_id":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"condition":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"condition_json":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiration":{"type":"TypeString","optional":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true},"triggers_on":{"type":"TypeString","optional":true,"default":"Incidents"},"triggers_when":{"type":"TypeString","optional":true,"default":"Created"}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_sentinel_data_connector_aws_cloud_trail":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_aws_s3":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"destination_table":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sqs_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_azure_active_directory":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_security_center":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_dynamics_365":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_iot":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_cloud_app_security":{"schema":{"alerts_enabled":{"type":"TypeBool","optional":true,"default":true},"discovery_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_microsoft_defender_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_intelligence":{"schema":{"bing_safety_phishing_url_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_emerging_threat_feed_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_365":{"schema":{"exchange_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sharepoint_enabled":{"type":"TypeBool","optional":true,"default":true},"teams_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_office_365_project":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_atp":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_irm":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_power_bi":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence_taxii":{"schema":{"api_root_url":{"type":"TypeString","required":true},"collection_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z"},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"polling_frequency":{"type":"TypeString","optional":true,"default":"OnceAnHour"},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_log_analytics_workspace_onboarding":{"schema":{"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_metadata":{"schema":{"author":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"domains":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verticals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content_id":{"type":"TypeString","required":true},"content_schema_version":{"type":"TypeString","optional":true,"default":"2.0"},"custom_version":{"type":"TypeString","optional":true},"dependency":{"type":"TypeString","optional":true},"first_publish_date":{"type":"TypeString","optional":true},"icon_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"last_publish_date":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true},"preview_images":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"preview_images_dark":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"threat_analysis_tactics":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_analysis_techniques":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_threat_intelligence_indicator":{"schema":{"confidence":{"type":"TypeInt","optional":true,"default":-1},"created_by":{"type":"TypeString","optional":true},"created_on":{"type":"TypeString","computed":true},"defanged":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"extension":{"type":"TypeString","optional":true,"computed":true},"external_id":{"type":"TypeString","computed":true},"external_last_updated_time_utc":{"type":"TypeString","computed":true},"external_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"hashes":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"source_name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}}},"granular_marking":{"type":"TypeList","optional":true,"elem":{"schema":{"language":{"type":"TypeString","optional":true},"marking_ref":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"guid":{"type":"TypeString","computed":true},"indicator_type":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kill_chain_phase":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true}}}},"language":{"type":"TypeString","optional":true},"last_updated_time_utc":{"type":"TypeString","computed":true},"object_marking_refs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parsed_pattern":{"type":"TypeList","computed":true,"elem":{"schema":{"pattern_type_key":{"type":"TypeString","computed":true},"pattern_type_values":{"type":"TypeList","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true},"value_type":{"type":"TypeString","computed":true}}}}}}},"pattern":{"type":"TypeString","required":true},"pattern_type":{"type":"TypeString","required":true},"pattern_version":{"type":"TypeString","optional":true},"revoked":{"type":"TypeBool","optional":true,"default":false},"source":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"validate_from_utc":{"type":"TypeString","required":true},"validate_until_utc":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_watchlist":{"schema":{"default_duration":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"item_search_key":{"type":"TypeString","required":true,"forceNew":true},"labels":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_watchlist_item":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"properties":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"watchlist_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_cluster":{"schema":{"add_on_features":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"azure_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"client_certificate_common_name":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","required":true},"is_admin":{"type":"TypeBool","required":true},"issuer_thumbprint":{"type":"TypeString","optional":true}}}},"client_certificate_thumbprint":{"type":"TypeList","optional":true,"elem":{"schema":{"is_admin":{"type":"TypeBool","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"cluster_code_version":{"type":"TypeString","optional":true,"computed":true},"cluster_endpoint":{"type":"TypeString","computed":true},"diagnostics_config":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_endpoint":{"type":"TypeString","required":true},"protected_account_key_name":{"type":"TypeString","required":true},"queue_endpoint":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"fabric_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_endpoint":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","required":true,"elem":{"schema":{"application_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"client_endpoint_port":{"type":"TypeInt","required":true},"durability_level":{"type":"TypeString","optional":true,"default":"Bronze"},"ephemeral_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"http_endpoint_port":{"type":"TypeInt","required":true},"instance_count":{"type":"TypeInt","required":true},"is_primary":{"type":"TypeBool","required":true},"is_stateless":{"type":"TypeBool","optional":true},"multiple_availability_zones":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reverse_proxy_endpoint_port":{"type":"TypeInt","optional":true}}}},"reliability_level":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_proxy_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"reverse_proxy_certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"service_fabric_zonal_upgrade_mode":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_mode":{"type":"TypeString","required":true},"upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"delta_health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_delta_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0},"max_upgrade_domain_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"force_restart_enabled":{"type":"TypeBool","optional":true},"health_check_retry_timeout":{"type":"TypeString","optional":true,"default":"00:45:00"},"health_check_stable_duration":{"type":"TypeString","optional":true,"default":"00:01:00"},"health_check_wait_duration":{"type":"TypeString","optional":true,"default":"00:00:30"},"health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"upgrade_domain_timeout":{"type":"TypeString","optional":true,"default":"02:00:00"},"upgrade_replica_set_check_timeout":{"type":"TypeString","optional":true,"default":"10675199.02:48:05.4775807"},"upgrade_timeout":{"type":"TypeString","optional":true,"default":"12:00:00"}}},"maxItems":1},"vm_image":{"type":"TypeString","required":true,"forceNew":true},"vmss_zonal_upgrade_mode":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_managed_cluster":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","optional":true},"thumbprint":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"backup_service_enabled":{"type":"TypeBool","optional":true},"client_connection_port":{"type":"TypeInt","required":true},"custom_fabric_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","required":true},"section":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dns_name":{"type":"TypeString","optional":true,"computed":true},"dns_service_enabled":{"type":"TypeBool","optional":true},"http_gateway_port":{"type":"TypeInt","required":true},"lb_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true},"frontend_port":{"type":"TypeInt","required":true},"probe_protocol":{"type":"TypeString","required":true},"probe_request_path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","optional":true,"elem":{"schema":{"application_port_range":{"type":"TypeString","required":true},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"data_disk_size_gb":{"type":"TypeInt","required":true},"data_disk_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"},"ephemeral_port_range":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"multiple_placement_groups_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"primary":{"type":"TypeBool","optional":true},"stateless":{"type":"TypeBool","optional":true},"vm_image_offer":{"type":"TypeString","required":true},"vm_image_publisher":{"type":"TypeString","required":true},"vm_image_sku":{"type":"TypeString","required":true},"vm_image_version":{"type":"TypeString","required":true},"vm_instance_count":{"type":"TypeInt","required":true},"vm_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"certificates":{"type":"TypeList","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}}},"vault_id":{"type":"TypeString","required":true}}}},"vm_size":{"type":"TypeString","required":true}}}},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_wave":{"type":"TypeString","optional":true,"default":"Wave0"},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling_enabled":{"type":"TypeBool","optional":true,"default":false},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","optional":true,"computed":true},"zone_balancing_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":0},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_id":{"type":"TypeString","required":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_network_rule_set":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true,"default":false},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true,"default":true},"enable_express":{"type":"TypeBool","optional":true,"default":false},"enable_partitioning":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"client_scoped_subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"forceNew":true},"is_client_scoped_subscription_durable":{"type":"TypeBool","computed":true},"is_client_scoped_subscription_shareable":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"client_scoped_subscription_enabled":{"type":"TypeBool","optional":true,"default":false},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","optional":true,"default":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription_rule":{"schema":{"action":{"type":"TypeString","optional":true},"correlation_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","optional":true},"correlation_id":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"message_id":{"type":"TypeString","optional":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reply_to":{"type":"TypeString","optional":true},"reply_to_session_id":{"type":"TypeString","optional":true},"session_id":{"type":"TypeString","optional":true},"to":{"type":"TypeString","optional":true}}},"maxItems":1},"filter_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_filter":{"type":"TypeString","optional":true},"sql_filter_compatibility_level":{"type":"TypeInt","computed":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"enable_express":{"type":"TypeBool","optional":true},"enable_partitioning":{"type":"TypeBool","optional":true,"forceNew":true},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"support_ordering":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image":{"schema":{"accelerated_network_support_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"architecture":{"type":"TypeString","optional":true,"default":"x64","forceNew":true},"confidential_vm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"confidential_vm_supported":{"type":"TypeBool","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"disk_types_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true,"forceNew":true},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"identifier":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"max_recommended_vcpu_count":{"type":"TypeInt","optional":true},"min_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"min_recommended_vcpu_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true,"forceNew":true},"purchase_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_note_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"specialized":{"type":"TypeBool","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"community_gallery":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"eula":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"prefix":{"type":"TypeString","required":true,"forceNew":true},"publisher_email":{"type":"TypeString","required":true,"forceNew":true},"publisher_uri":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"permission":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_version":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"image_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_image_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk_snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"replication_mode":{"type":"TypeString","optional":true,"default":"Full","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"hostname":{"type":"TypeString","computed":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"live_trace_enabled":{"type":"TypeBool","optional":true,"default":false},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":30},"service_mode":{"type":"TypeString","optional":true,"default":"Default"},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"upstream_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"category_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"event_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hub_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_network_acl":{"schema":{"default_action":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"sub_resource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"source_network_name":{"type":"TypeString","required":true,"forceNew":true},"source_system_center_virtual_machine_manager_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_site_recovery_hyperv_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_hours":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_hours":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"replication_interval_in_seconds":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_replication_policy_association":{"schema":{"hyperv_site_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_site_recovery_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_network_id":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container_mapping":{"schema":{"automatic_update":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true},"automation_account_id":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_source_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_target_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replicated_vm":{"schema":{"managed_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_id":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_disk_encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","configMode":"Auto","required":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_encryption_key":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"target_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"target_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_replica_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true}}}},"multi_vm_group_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"failover_test_public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"failover_test_static_ip":{"type":"TypeString","optional":true,"computed":true},"failover_test_subnet_name":{"type":"TypeString","optional":true,"computed":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"recovery_public_ip_address_id":{"type":"TypeString","optional":true},"source_network_interface_id":{"type":"TypeString","optional":true,"computed":true},"target_static_ip":{"type":"TypeString","optional":true},"target_subnet_name":{"type":"TypeString","optional":true}}}},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","required":true,"forceNew":true},"target_availability_set_id":{"type":"TypeString","optional":true},"target_boot_diagnostic_storage_account_id":{"type":"TypeString","optional":true},"target_capacity_reservation_group_id":{"type":"TypeString","optional":true},"target_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"target_network_id":{"type":"TypeString","optional":true,"computed":true},"target_proximity_placement_group_id":{"type":"TypeString","optional":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"target_virtual_machine_scale_set_id":{"type":"TypeString","optional":true},"target_zone":{"type":"TypeString","optional":true,"forceNew":true},"test_network_id":{"type":"TypeString","optional":true,"computed":true},"unmanaged_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_uri":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}}}}},"timeouts":{"create":180,"read":5,"delete":80,"update":80}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"primary_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_zone":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"boot_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"failover_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_group":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"minItems":3},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"shutdown_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"source_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_services_vault_hyperv_site":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":180}},"azurerm_site_recovery_vmware_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_vmware_replication_policy_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_snapshot":{"schema":{"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"incremental_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_accelerator":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_active_deployment":{"schema":{"deployment_name":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_api_portal":{"schema":{"gateway_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"https_only_enabled":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_spring_cloud_api_portal_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_api_portal_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"custom_persistent_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"mount_path":{"type":"TypeString","required":true},"read_only_enabled":{"type":"TypeBool","optional":true,"default":false},"share_name":{"type":"TypeString","required":true},"storage_name":{"type":"TypeString","required":true}}},"minItems":1},"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backend_protocol":{"type":"TypeString","optional":true,"default":"Default"},"read_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":300},"send_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":60},"session_affinity":{"type":"TypeString","optional":true,"default":"None"},"session_cookie_max_age":{"type":"TypeInt","optional":true}}},"maxItems":1},"is_public":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"persistent_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","optional":true,"default":"/persistent"},"size_in_gb":{"type":"TypeInt","required":true}}},"maxItems":1},"public_endpoint_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"tls_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_cosmosdb_association":{"schema":{"api_type":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_access_key":{"type":"TypeString","required":true},"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_cassandra_keyspace_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_database_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_graph_name":{"type":"TypeString","optional":true},"cosmosdb_mongo_database_name":{"type":"TypeString","optional":true},"cosmosdb_sql_database_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_mysql_association":{"schema":{"database_name":{"type":"TypeString","required":true},"mysql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_redis_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"redis_access_key":{"type":"TypeString","required":true},"redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_application_live_view":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_build_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"build_result_id":{"type":"TypeString","required":true},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_build_pack_binding":{"schema":{"binding_type":{"type":"TypeString","optional":true},"launch":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_builder_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_builder":{"schema":{"build_pack_group":{"type":"TypeSet","required":true,"elem":{"schema":{"build_pack_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"stack":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_certificate":{"schema":{"certificate_content":{"type":"TypeString","optional":true,"forceNew":true},"exclude_private_key":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_configuration_service":{"schema":{"generation":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"ca_certificate_id":{"type":"TypeString","optional":true},"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"label":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"patterns":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"private_key":{"type":"TypeString","optional":true},"search_paths":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"strict_host_key_checking":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}}}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_connection":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"spring_cloud_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_container_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"arguments":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"commands":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"language_framework":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"server":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_custom_domain":{"schema":{"certificate_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_customized_accelerator":{"schema":{"accelerator_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"git_repository":{"type":"TypeList","required":true,"elem":{"schema":{"basic_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"ca_certificate_id":{"type":"TypeString","optional":true},"commit":{"type":"TypeString","optional":true},"git_tag":{"type":"TypeString","optional":true},"interval_in_seconds":{"type":"TypeInt","optional":true},"ssh_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}}},"maxItems":1},"icon_url":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_accelerator_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_dev_tool_portal":{"schema":{"application_accelerator_enabled":{"type":"TypeBool","optional":true,"computed":true},"application_live_view_enabled":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"metadata_url":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway":{"schema":{"api_metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"documentation_url":{"type":"TypeString","optional":true},"server_url":{"type":"TypeString","optional":true},"title":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"application_performance_monitoring_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verification_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origin_patterns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","optional":true},"exposed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"max_age_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"https_only":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"default":"1"},"memory":{"type":"TypeString","optional":true,"default":"2Gi"}}},"maxItems":1},"sensitive_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_route_config":{"schema":{"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"open_api":{"type":"TypeList","optional":true,"elem":{"schema":{"uri":{"type":"TypeString","optional":true}}},"maxItems":1},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeString","optional":true,"default":"HTTP"},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"classification_tags":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"sso_validation_enabled":{"type":"TypeBool","optional":true},"title":{"type":"TypeString","optional":true},"token_relay":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","optional":true}}}},"spring_cloud_app_id":{"type":"TypeString","optional":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"sso_validation_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_java_deployment":{"schema":{"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"jvm_options":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"default":"Java_8"},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_service":{"schema":{"build_agent_pool_size":{"type":"TypeString","optional":true},"config_server_git_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"pattern":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"container_registry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"server":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"default_build_service":{"type":"TypeList","optional":true,"elem":{"schema":{"container_registry_name":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"log_stream_public_endpoint_enabled":{"type":"TypeBool","optional":true},"marketplace":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"plan":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"app_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"app_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"cidr_ranges":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":3},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"read_timeout_seconds":{"type":"TypeInt","optional":true},"service_runtime_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_runtime_subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_registry_enabled":{"type":"TypeBool","optional":true},"service_registry_id":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"S0","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"sample_rate":{"type":"TypeFloat","optional":true,"default":10}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_date":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","optional":true,"computed":true},"elastic_pool_name":{"type":"TypeString","optional":true,"computed":true},"encryption":{"type":"TypeString","computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"operation_mode":{"type":"TypeString","optional":true,"default":"Import"},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_size_bytes":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_scale":{"type":"TypeBool","optional":true,"default":false},"requested_service_objective_id":{"type":"TypeString","optional":true,"computed":true},"requested_service_objective_name":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"source_database_deletion_date":{"type":"TypeString","optional":true,"computed":true},"source_database_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_elasticpool":{"schema":{"creation_date":{"type":"TypeString","computed":true},"db_dtu_max":{"type":"TypeInt","optional":true,"computed":true},"db_dtu_min":{"type":"TypeInt","optional":true,"computed":true},"dtu":{"type":"TypeInt","required":true},"edition":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_size":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_servers":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_database":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"default":false},"login":{"type":"TypeString","required":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"computed":true},"email_addresses":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ssh_public_key":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_stack_hci_cluster":{"schema":{"automanage_configuration_id":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site":{"schema":{"api_key":{"type":"TypeString","computed":true},"default_host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_size":{"type":"TypeString","optional":true,"default":"Free"},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"static_site_id":{"type":"TypeString","required":true,"forceNew":true},"validation_token":{"type":"TypeString","computed":true},"validation_type":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"account_kind":{"type":"TypeString","optional":true,"default":"StorageV2"},"account_replication_type":{"type":"TypeString","required":true},"account_tier":{"type":"TypeString","required":true,"forceNew":true},"allow_nested_items_to_be_public":{"type":"TypeBool","optional":true,"default":true},"allowed_copy_scope":{"type":"TypeString","optional":true},"azure_files_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","required":true},"domain_sid":{"type":"TypeString","required":true},"forest_name":{"type":"TypeString","required":true},"netbios_domain_name":{"type":"TypeString","required":true},"storage_sid":{"type":"TypeString","required":true}}},"maxItems":1},"directory_type":{"type":"TypeString","required":true}}},"maxItems":1},"blob_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"change_feed_enabled":{"type":"TypeBool","optional":true,"default":false},"change_feed_retention_in_days":{"type":"TypeInt","optional":true},"container_delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"default_service_version":{"type":"TypeString","optional":true,"computed":true},"delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"last_access_time_enabled":{"type":"TypeBool","optional":true,"default":false},"restore_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true}}},"maxItems":1},"versioning_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cross_tenant_replication_enabled":{"type":"TypeBool","optional":true,"default":true},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"use_subdomain":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_to_oauth_authentication":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_https_traffic_only":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_protected_append_writes":{"type":"TypeBool","required":true},"period_since_creation_in_days":{"type":"TypeInt","required":true},"state":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"is_hns_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"large_file_share_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"default":"TLS1_2"},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"nfsv3_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"queue_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"queue_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"hour_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"logging":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"delete":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"minute_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"choice":{"type":"TypeString","optional":true,"default":"MicrosoftRouting"},"publish_internet_endpoints":{"type":"TypeBool","optional":true,"default":false},"publish_microsoft_endpoints":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sas_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_action":{"type":"TypeString","optional":true,"default":"Log"},"expiration_period":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"sftp_enabled":{"type":"TypeBool","optional":true,"default":false},"share_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"smb":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"channel_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"kerberos_ticket_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"multichannel_enabled":{"type":"TypeBool","optional":true,"default":false},"versions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"shared_access_key_enabled":{"type":"TypeBool","optional":true,"default":true},"static_website":{"type":"TypeList","optional":true,"elem":{"schema":{"error_404_document":{"type":"TypeString","optional":true},"index_document":{"type":"TypeString","optional":true}}},"maxItems":1},"table_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_account_customer_managed_key":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_local_user":{"schema":{"home_directory":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","computed":true},"permission_scope":{"type":"TypeList","optional":true,"elem":{"schema":{"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"create":{"type":"TypeBool","optional":true,"default":false},"delete":{"type":"TypeBool","optional":true,"default":false},"list":{"type":"TypeBool","optional":true,"default":false},"read":{"type":"TypeBool","optional":true,"default":false},"write":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_name":{"type":"TypeString","required":true},"service":{"type":"TypeString","required":true}}}},"sid":{"type":"TypeString","computed":true},"ssh_authorized_key":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true}}}},"ssh_key_enabled":{"type":"TypeBool","optional":true,"default":false},"ssh_password_enabled":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_network_rules":{"schema":{"bypass":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_subnet_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"cache_control":{"type":"TypeString","optional":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallelism":{"type":"TypeInt","optional":true,"default":8,"forceNew":true},"size":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"source_content":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_blob_inventory_policy":{"schema":{"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"exclude_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"include_blob_versions":{"type":"TypeBool","optional":true,"default":false},"include_deleted":{"type":"TypeBool","optional":true,"default":false},"include_snapshots":{"type":"TypeBool","optional":true,"default":false},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10}}},"maxItems":1},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true},"schema_fields":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","optional":true,"default":"private"},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_filesystem":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"group":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"owner":{"type":"TypeString","optional":true,"computed":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_path":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"filesystem_name":{"type":"TypeString","required":true,"forceNew":true},"group":{"type":"TypeString","optional":true,"computed":true},"owner":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","required":true,"forceNew":true},"resource":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_encryption_scope":{"schema":{"infrastructure_encryption_required":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"base_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","optional":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"snapshot":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"version":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"filters":{"type":"TypeList","required":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operation":{"type":"TypeString","optional":true,"default":"=="},"value":{"type":"TypeString","required":true}}}},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_agent":{"schema":{"arc_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"arc_virtual_machine_uuid":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_job_definition":{"schema":{"agent_name":{"type":"TypeString","optional":true},"copy_mode":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source_name":{"type":"TypeString","required":true,"forceNew":true},"source_sub_path":{"type":"TypeString","optional":true,"forceNew":true},"storage_mover_project_id":{"type":"TypeString","required":true,"forceNew":true},"target_name":{"type":"TypeString","required":true,"forceNew":true},"target_sub_path":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_project":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_source_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"export":{"type":"TypeString","optional":true,"forceNew":true},"host":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nfs_version":{"type":"TypeString","optional":true,"default":"NFSauto","forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_target_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_object_replication":{"schema":{"destination_object_replication_id":{"type":"TypeString","computed":true},"destination_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"copy_blobs_created_after":{"type":"TypeString","optional":true,"default":"OnlyNewObjects"},"destination_container_name":{"type":"TypeString","required":true,"forceNew":true},"filter_out_blobs_with_prefix":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"source_container_name":{"type":"TypeString","required":true,"forceNew":true}}}},"source_object_replication_id":{"type":"TypeString","computed":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_queue":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}}},"id":{"type":"TypeString","required":true}}}},"enabled_protocol":{"type":"TypeString","optional":true,"default":"SMB","forceNew":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeInt","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_directory":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"share_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_file":{"schema":{"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_length":{"type":"TypeInt","computed":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","optional":true,"default":"","forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"storage_share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","optional":true,"default":"AllowAllTraffic"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync_cloud_endpoint":{"schema":{"file_share_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_sync_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"storage_sync_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_storage_table":{"schema":{"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","required":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"streaming_capacity":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_stream_analytics_function_javascript_uda":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"script":{"type":"TypeString","required":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_function_javascript_udf":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","optional":true,"computed":true},"content_storage_policy":{"type":"TypeString","optional":true,"default":"SystemAccount"},"data_locale":{"type":"TypeString","optional":true,"computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":5},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":0},"events_out_of_order_policy":{"type":"TypeString","optional":true,"default":"Adjust"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"job_id":{"type":"TypeString","computed":true},"job_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_error_policy":{"type":"TypeString","optional":true,"default":"Drop"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_id":{"type":"TypeString","optional":true},"streaming_units":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transformation_query":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true,"default":"Cloud","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job_schedule":{"schema":{"last_output_time":{"type":"TypeString","computed":true},"start_mode":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5}},"azurerm_stream_analytics_output_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"batch_max_wait_time":{"type":"TypeString","optional":true},"batch_min_rows":{"type":"TypeInt","optional":true},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_cosmosdb":{"schema":{"container_name":{"type":"TypeString","required":true},"cosmosdb_account_key":{"type":"TypeString","required":true},"cosmosdb_sql_database_id":{"type":"TypeString","required":true},"document_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_function":{"schema":{"api_key":{"type":"TypeString","required":true},"batch_max_count":{"type":"TypeInt","optional":true,"default":100},"batch_max_in_bytes":{"type":"TypeInt","optional":true,"default":262144},"function_app":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_mssql":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"database":{"type":"TypeString","required":true,"forceNew":true},"max_batch_count":{"type":"TypeFloat","optional":true,"default":10000},"max_writer_count":{"type":"TypeFloat","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_powerbi":{"schema":{"dataset":{"type":"TypeString","required":true},"group_id":{"type":"TypeString","required":true},"group_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true},"token_user_display_name":{"type":"TypeString","optional":true},"token_user_principal_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_queue":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"queue_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_topic":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_synapse":{"schema":{"database":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_table":{"schema":{"batch_size":{"type":"TypeInt","required":true},"columns_to_remove":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_mssql":{"schema":{"database":{"type":"TypeString","required":true},"delta_snapshot_query":{"type":"TypeString","optional":true},"full_snapshot_query":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"refresh_interval_duration":{"type":"TypeString","optional":true},"refresh_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_blob":{"schema":{"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub_v2":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_iothub":{"schema":{"endpoint":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"iothub_namespace":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"shared_access_policy_key":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"delegation":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"service_delegation":{"type":"TypeList","required":true,"elem":{"schema":{"actions":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}},"maxItems":1}}}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","optional":true,"computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_endpoint_policy_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"service_endpoints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_nat_gateway_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_network_security_group_association":{"schema":{"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_route_table_association":{"schema":{"route_table_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_service_endpoint_storage_policy":{"schema":{"definition":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"service":{"type":"TypeString","optional":true,"default":"Microsoft.Storage"},"service_resources":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription":{"schema":{"alias":{"type":"TypeString","optional":true,"description":"The Alias Name of the subscription. If omitted a new UUID will be generated for this property.","computed":true,"forceNew":true},"billing_scope_id":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true,"description":"The GUID of the Subscription.","computed":true,"forceNew":true},"subscription_name":{"type":"TypeString","required":true,"description":"The Display Name for the Subscription."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID to which the subscription belongs","computed":true},"workload":{"type":"TypeString","optional":true,"description":"The workload type for the Subscription. Possible values are `Production` (default) and `DevTest`.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_synapse_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_azure":{"schema":{"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_self_hosted":{"schema":{"authorization_key_primary":{"type":"TypeString","computed":true},"authorization_key_secondary":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_linked_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_private_link_hub":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_role_assignment":{"schema":{"principal_id":{"type":"TypeString","required":true,"forceNew":true},"role_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_spark_pool":{"schema":{"auto_pause":{"type":"TypeList","optional":true,"elem":{"schema":{"delay_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true},"min_node_count":{"type":"TypeInt","required":true}}},"maxItems":1},"cache_size":{"type":"TypeInt","optional":true},"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_executor_allocation_enabled":{"type":"TypeBool","optional":true,"default":false},"library_requirement":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"max_executors":{"type":"TypeInt","optional":true},"min_executors":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true},"node_size":{"type":"TypeString","required":true},"node_size_family":{"type":"TypeString","required":true},"session_level_packages_enabled":{"type":"TypeBool","optional":true,"default":false},"spark_config":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"spark_events_folder":{"type":"TypeString","optional":true,"default":"/events"},"spark_log_folder":{"type":"TypeString","optional":true,"default":"/logs"},"spark_version":{"type":"TypeString","optional":true,"default":"2.4"},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"data_encrypted":{"type":"TypeBool","optional":true},"geo_backup_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_database_id":{"type":"TypeString","optional":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"point_in_time":{"type":"TypeString","required":true,"forceNew":true},"source_database_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sql_pool_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment_baseline":{"schema":{"baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"rule_name":{"type":"TypeString","required":true},"sql_pool_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_classifier":{"schema":{"context":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"importance":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"member_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true},"workload_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_group":{"schema":{"importance":{"type":"TypeString","optional":true,"default":"normal"},"max_resource_percent":{"type":"TypeInt","required":true},"max_resource_percent_per_request":{"type":"TypeFloat","optional":true,"default":3},"min_resource_percent":{"type":"TypeInt","required":true},"min_resource_percent_per_request":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_execution_timeout_in_seconds":{"type":"TypeInt","optional":true},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace":{"schema":{"aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"azure_devops_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"last_commit_id":{"type":"TypeString","optional":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"compute_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","optional":true,"default":"cmk"},"key_versionless_id":{"type":"TypeString","required":true}}},"maxItems":1},"data_exfiltration_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"github_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","optional":true},"last_commit_id":{"type":"TypeString","optional":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"linking_allowed_for_aad_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sql_administrator_login":{"type":"TypeString","optional":true,"forceNew":true},"sql_administrator_login_password":{"type":"TypeString","optional":true},"sql_identity_control_enabled":{"type":"TypeBool","optional":true},"storage_data_lake_gen2_filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_key":{"schema":{"active":{"type":"TypeBool","required":true},"customer_managed_key_name":{"type":"TypeString","required":true},"customer_managed_key_versionless_id":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_sql_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true},"workspace_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_template_deployment":{"schema":{"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"parameters_body":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"template_body":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_tenant_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_traffic_manager_azure_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_external_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_nested_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"minimum_child_endpoints":{"type":"TypeInt","required":true},"minimum_required_child_endpoints_ipv4":{"type":"TypeInt","optional":true},"minimum_required_child_endpoints_ipv6":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","required":true,"elem":{"schema":{"relative_name":{"type":"TypeString","required":true,"forceNew":true},"ttl":{"type":"TypeInt","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","computed":true},"max_return":{"type":"TypeInt","optional":true},"monitor_config":{"type":"TypeList","required":true,"elem":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"expected_status_code_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":30},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":10},"tolerated_number_of_failures":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"profile_status":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","required":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer":{"schema":{"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer_edge_module":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"video_analyzer_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_desktop_application":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"command_line_argument_policy":{"type":"TypeString","required":true},"command_line_arguments":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true,"computed":true},"icon_index":{"type":"TypeInt","optional":true},"icon_path":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","required":true},"show_in_portal":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_application_group":{"schema":{"default_desktop_display_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"load_balancer_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_sessions_allowed":{"type":"TypeInt","optional":true,"default":999999},"name":{"type":"TypeString","required":true,"forceNew":true},"personal_desktop_assignment_type":{"type":"TypeString","optional":true,"forceNew":true},"preferred_app_group_type":{"type":"TypeString","optional":true,"default":"Desktop","description":"Preferred App Group type to display","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scheduled_agent_updates":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","required":true}}},"maxItems":2},"timezone":{"type":"TypeString","optional":true,"default":"UTC"},"use_session_host_timezone":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"start_vm_on_connect":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"validate_environment":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool_registration_info":{"schema":{"expiration_date":{"type":"TypeString","required":true},"hostpool_id":{"type":"TypeString","required":true,"forceNew":true},"token":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_desktop_scaling_plan":{"schema":{"description":{"type":"TypeString","optional":true},"exclusion_tag":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"hostpool_id":{"type":"TypeString","required":true},"scaling_plan_enabled":{"type":"TypeBool","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"off_peak_load_balancing_algorithm":{"type":"TypeString","required":true},"off_peak_start_time":{"type":"TypeString","required":true},"peak_load_balancing_algorithm":{"type":"TypeString","required":true},"peak_start_time":{"type":"TypeString","required":true},"ramp_down_capacity_threshold_percent":{"type":"TypeInt","required":true},"ramp_down_force_logoff_users":{"type":"TypeBool","required":true},"ramp_down_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_down_minimum_hosts_percent":{"type":"TypeInt","required":true},"ramp_down_notification_message":{"type":"TypeString","required":true},"ramp_down_start_time":{"type":"TypeString","required":true},"ramp_down_stop_hosts_when":{"type":"TypeString","required":true},"ramp_down_wait_time_minutes":{"type":"TypeInt","required":true},"ramp_up_capacity_threshold_percent":{"type":"TypeInt","optional":true},"ramp_up_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_up_minimum_hosts_percent":{"type":"TypeInt","optional":true},"ramp_up_start_time":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace":{"schema":{"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace_application_group_association":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","optional":true,"forceNew":true},"default_route_table_id":{"type":"TypeString","computed":true},"hub_routing_preference":{"type":"TypeString","optional":true,"default":"ExpressRoute"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"next_hop_ip_address":{"type":"TypeString","required":true}}}},"sku":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_auto_scale_min_capacity":{"type":"TypeInt","optional":true,"default":2},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_connection_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"static_vnet_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true},"next_hop_ip_address":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_ip":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_route_table_route":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"},"route_table_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_security_partner_provider":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","required":true,"forceNew":true}}},"maxItems":1},"availability_set_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"delete_data_disks_on_termination":{"type":"TypeBool","optional":true,"default":false},"delete_os_disk_on_termination":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"os_profile":{"type":"TypeSet","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","required":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true,"default":false},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":false},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"primary_network_interface_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_data_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"vhd_uri":{"type":"TypeString","optional":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"storage_image_reference":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"storage_os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"image_uri":{"type":"TypeString","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","optional":true,"computed":true},"vhd_uri":{"type":"TypeString","optional":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vm_size":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_data_disk_attachment":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Attach","forceNew":true},"lun":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_machine_scale_set":{"schema":{"automatic_os_upgrade":{"type":"TypeBool","optional":true,"default":false},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"health_probe_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeSet","required":true,"elem":{"schema":{"accelerated_networking":{"type":"TypeBool","optional":true},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"public_ip_address_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","required":true},"idle_timeout":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"subnet_id":{"type":"TypeString","required":true}}}},"ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","required":true}}}},"os_profile":{"type":"TypeList","required":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name_prefix":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","optional":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeSet","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true},"provision_vm_agent":{"type":"TypeBool","optional":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"priority":{"type":"TypeString","optional":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_batch_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","optional":true,"default":20},"pause_time_between_batches":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1},"single_placement_group":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"storage_profile_data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true}}}},"storage_profile_image_reference":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"offer":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_profile_os_disk":{"type":"TypeSet","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"image":{"type":"TypeString","optional":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"vhd_containers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_policy_mode":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_scale_set_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_scale_set_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"machine_scope":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exclude_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"include_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"bgp_community":{"type":"TypeString","optional":true},"ddos_protection_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"enable":{"type":"TypeBool","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"enforcement":{"type":"TypeString","required":true}}},"maxItems":1},"flow_timeout_in_minutes":{"type":"TypeInt","optional":true},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"security_group":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_dns_servers":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","optional":true,"computed":true},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","optional":true},"peer_weight":{"type":"TypeInt","optional":true},"peering_addresses":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"apipa_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"default_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_name":{"type":"TypeString","optional":true,"computed":true},"tunnel_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1}}},"maxItems":1},"custom_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"default_local_network_gateway_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"generation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true,"default":"vnetGatewayConfig"},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":3},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"vpn_client_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","optional":true},"aad_issuer":{"type":"TypeString","optional":true},"aad_tenant":{"type":"TypeString","optional":true},"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","optional":true},"radius_server_secret":{"type":"TypeString","optional":true},"revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"vpn_auth_types":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":3},"vpn_client_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"vpn_type":{"type":"TypeString","optional":true,"default":"RouteBased","forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"connection_protocol":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_bgp_addresses":{"type":"TypeList","optional":true,"elem":{"schema":{"primary":{"type":"TypeString","required":true},"secondary":{"type":"TypeString","optional":true}}},"maxItems":1},"dpd_timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"express_route_circuit_id":{"type":"TypeString","optional":true,"forceNew":true},"express_route_gateway_bypass":{"type":"TypeBool","optional":true,"computed":true},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_datasize":{"type":"TypeInt","optional":true,"computed":true},"sa_lifetime":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"local_network_gateway_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_virtual_network_gateway_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_weight":{"type":"TypeInt","optional":true,"computed":true},"shared_key":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true,"forceNew":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","optional":true,"computed":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway_nat_rule":{"schema":{"external_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_peering":{"schema":{"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","optional":true,"default":true},"disable_vpn_encryption":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"office365_local_breakout_category":{"type":"TypeString","optional":true,"default":"None"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"Standard"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vmware_cluster":{"schema":{"cluster_node_count":{"type":"TypeInt","required":true},"cluster_number":{"type":"TypeInt","computed":true},"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"vmware_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_vmware_express_route_authorization":{"schema":{"express_route_authorization_id":{"type":"TypeString","computed":true},"express_route_authorization_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_netapp_volume_attachment":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"netapp_volume_id":{"type":"TypeString","required":true,"forceNew":true},"vmware_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"management_cluster":{"type":"TypeList","required":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","required":true}}},"maxItems":1},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_subnet_cidr":{"type":"TypeString","required":true,"forceNew":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"nsxt_password":{"type":"TypeString","optional":true,"forceNew":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcenter_password":{"type":"TypeString","optional":true,"forceNew":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"create":600,"read":5,"delete":600,"update":600}},"azurerm_voice_services_communications_gateway":{"schema":{"api_bridge":{"type":"TypeString","optional":true},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse","forceNew":true},"codecs":{"type":"TypeString","required":true},"connectivity":{"type":"TypeString","required":true,"forceNew":true},"e911_type":{"type":"TypeString","required":true},"emergency_dial_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_teams_voicemail_pilot_number":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"on_prem_mcp_enabled":{"type":"TypeBool","optional":true},"platforms":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_location":{"type":"TypeSet","required":true,"elem":{"schema":{"allowed_media_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_signaling_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"esrp_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true},"operator_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_voice_services_communications_gateway_test_line":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"purpose":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_services_communications_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway":{"schema":{"bgp_route_translation_for_nat_enabled":{"type":"TypeBool","optional":true,"default":false},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true,"forceNew":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instance_1_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"peer_weight":{"type":"TypeInt","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scale_unit":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_gateway_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_vpn_site_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"traffic_selector_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"local_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"remote_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_link":{"type":"TypeList","required":true,"elem":{"schema":{"bandwidth_mbps":{"type":"TypeInt","optional":true,"default":10},"bgp_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default"},"custom_bgp_address":{"type":"TypeSet","optional":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"ip_configuration_id":{"type":"TypeString","required":true}}}},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"encryption_algorithm":{"type":"TypeString","required":true},"ike_encryption_algorithm":{"type":"TypeString","required":true},"ike_integrity_algorithm":{"type":"TypeString","required":true},"integrity_algorithm":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kb":{"type":"TypeInt","required":true},"sa_lifetime_sec":{"type":"TypeInt","required":true}}},"minItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"policy_based_traffic_selector_enabled":{"type":"TypeBool","optional":true,"default":false},"protocol":{"type":"TypeString","optional":true,"default":"IKEv2"},"ratelimit_enabled":{"type":"TypeBool","optional":true,"default":false},"route_weight":{"type":"TypeInt","optional":true,"default":0},"shared_key":{"type":"TypeString","optional":true},"vpn_site_link_id":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway_nat_rule":{"schema":{"external_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"external_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"internal_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_server_configuration":{"schema":{"azure_active_directory_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"issuer":{"type":"TypeString","required":true},"tenant":{"type":"TypeString","required":true}}},"minItems":1},"client_revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kilobytes":{"type":"TypeInt","required":true},"sa_lifetime_seconds":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"radius":{"type":"TypeList","optional":true,"elem":{"schema":{"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"server":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"score":{"type":"TypeInt","required":true},"secret":{"type":"TypeString","required":true}}}},"server_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vpn_authentication_types":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"vpn_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_server_configuration_policy_group":{"schema":{"is_default":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"priority":{"type":"TypeInt","optional":true,"default":0},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_site":{"schema":{"address_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"device_model":{"type":"TypeString","optional":true},"device_vendor":{"type":"TypeString","optional":true},"link":{"type":"TypeList","optional":true,"elem":{"schema":{"bgp":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"peering_address":{"type":"TypeString","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"provider_name":{"type":"TypeString","optional":true},"speed_in_mbps":{"type":"TypeInt","optional":true,"default":0}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"o365_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"traffic_category":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"default_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"optimize_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_app_hybrid_connection":{"schema":{"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true},"web_app_id":{"type":"TypeString","required":true,"description":"The ID of the Web App for this Hybrid Connection.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_application_firewall_policy":{"schema":{"custom_rules":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"match_conditions":{"type":"TypeList","required":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_variables":{"type":"TypeList","required":true,"elem":{"schema":{"selector":{"type":"TypeString","optional":true},"variable_name":{"type":"TypeString","required":true}}}},"negation_condition":{"type":"TypeBool","optional":true},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","required":true},"rule_type":{"type":"TypeString","required":true}}}},"http_listener_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_rules":{"type":"TypeList","required":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","optional":true,"default":"3.2"}}},"maxItems":1},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"selector_match_operator":{"type":"TypeString","required":true}}}},"managed_rule_set":{"type":"TypeList","required":true,"elem":{"schema":{"rule_group_override":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"rule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"id":{"type":"TypeString","required":true}}}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","required":true}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"path_based_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"policy_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"file_upload_limit_in_mb":{"type":"TypeInt","optional":true,"default":100},"log_scrubbing":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true,"description":"When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to."},"selector_match_operator":{"type":"TypeString","optional":true,"default":"Equals"}}}}}},"maxItems":1},"max_request_body_size_in_kb":{"type":"TypeInt","optional":true,"default":128},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"request_body_check":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"capacity":{"type":"TypeInt","optional":true,"default":1},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_hub":{"schema":{"anonymous_connections_enabled":{"type":"TypeBool","optional":true,"default":false},"event_handler":{"type":"TypeList","optional":true,"elem":{"schema":{"auth":{"type":"TypeList","optional":true,"elem":{"schema":{"managed_identity_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"system_events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_event_pattern":{"type":"TypeString","optional":true}}}},"event_listener":{"type":"TypeList","optional":true,"elem":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"system_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_network_acl":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"description":"Can the Function App only be accessed via HTTPS?","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Function App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","description":"The identifier used by App Service to perform domain ownership verification via DNS TXT record.","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","description":"The default hostname of the Windows Function App Slot.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","description":"The Kind value for this Windows Function App Slot.","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Windows Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","description":"A list of outbound IP addresses. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12`.","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","description":"A list of possible outbound IP addresses, not all of which are necessarily in use. This is a superset of `outbound_ip_address_list`. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of possible outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12,52.143.43.17`. This is a superset of `outbound_ip_addresses`. For example `[\"52.23.25.3\", \"52.143.43.12\",\"52.143.43.17\"]`.","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_windows_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","required":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_web_app_slot":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"computed":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}}},"dataSources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"data_residency_location":{"type":"TypeString","description":"Location in which the B2C tenant is hosted and data resides.","computed":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix."},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","description":"Billing SKU for the B2C tenant.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"read":5}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"filtered_sync_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notifications":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","computed":true},"notify_global_admins":{"type":"TypeBool","computed":true}}}},"replica_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"external_access_enabled":{"type":"TypeBool","computed":true},"public_certificate":{"type":"TypeString","computed":true}}}},"security":{"type":"TypeList","computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","computed":true},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","computed":true},"ntlm_v1_enabled":{"type":"TypeBool","computed":true},"sync_kerberos_passwords":{"type":"TypeBool","computed":true},"sync_ntlm_passwords":{"type":"TypeBool","computed":true},"sync_on_prem_passwords":{"type":"TypeBool","computed":true},"tls_v1_enabled":{"type":"TypeBool","computed":true}}}},"sku":{"type":"TypeString","computed":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_advisor_recommendations":{"schema":{"filter_by_category":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter_by_resource_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"recommendations":{"type":"TypeList","computed":true,"elem":{"schema":{"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"impact":{"type":"TypeString","computed":true},"recommendation_name":{"type":"TypeString","computed":true},"recommendation_type_id":{"type":"TypeString","computed":true},"resource_name":{"type":"TypeString","computed":true},"resource_type":{"type":"TypeString","computed":true},"suppression_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"updated_time":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":10}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"management":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"proxy":{"type":"TypeList","computed":true,"elem":{"schema":{"default_ssl_binding":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"scm":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_api_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notification_sender_email":{"type":"TypeString","computed":true},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"publisher_email":{"type":"TypeString","computed":true},"publisher_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scm_url":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"revision":{"type":"TypeString","required":true},"service_url":{"type":"TypeString","computed":true},"soap_pass_through":{"type":"TypeBool","computed":true},"subscription_key_parameter_names":{"type":"TypeList","computed":true,"elem":{"schema":{"header":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true}}}},"subscription_required":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"version_set_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"version_header_name":{"type":"TypeString","computed":true},"version_query_name":{"type":"TypeString","computed":true},"versioning_scheme":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true},"certificate_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"request_client_certificate_enabled":{"type":"TypeBool","computed":true},"tls10_enabled":{"type":"TypeBool","computed":true},"tls11_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"external_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true},"approval_required":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"product_id":{"type":"TypeString","required":true},"published":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","computed":true},"subscriptions_limit":{"type":"TypeInt","computed":true},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true},"email":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"note":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"state":{"type":"TypeString","computed":true},"user_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","computed":true}}}},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","required":true},"label":{"type":"TypeString","optional":true,"default":""},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_configuration_keys":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"items":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"label":{"type":"TypeString","computed":true},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}}}},"key":{"type":"TypeString","optional":true,"default":""},"label":{"type":"TypeString","optional":true,"default":""}},"timeouts":{"read":5}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_cert_enabled":{"type":"TypeBool","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","computed":true},"acr_user_managed_identity_client_id":{"type":"TypeString","computed":true},"always_on":{"type":"TypeBool","computed":true},"app_command_line":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"number_of_workers":{"type":"TypeInt","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_certificate":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","computed":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","computed":true},"distinguished_name":{"type":"TypeString","computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"product_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_environment":{"schema":{"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"front_end_scale_factor":{"type":"TypeInt","computed":true},"internal_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_ip_address":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","computed":true},"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"dedicated_host_count":{"type":"TypeInt","computed":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","computed":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"is_xenon":{"type":"TypeBool","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"per_site_scaling":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"size":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_application_gateway":{"schema":{"backend_address_pool":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeString","computed":true},"instrumentation_key":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_arc_machine":{"schema":{"active_directory_fqdn":{"type":"TypeString","computed":true},"agent":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variables":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"bool":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeBool","computed":true}}}},"datetime":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"encrypted":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"int":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeInt","computed":true}}}},"null":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"object":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"string":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"platform_update_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_backup_policy_file_share":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_backup_policy_vm":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","computed":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"ip_connect_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_units":{"type":"TypeInt","computed":true},"shareable_link_enabled":{"type":"TypeBool","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_allocation_mode":{"type":"TypeString","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true},"allow_updates":{"type":"TypeBool","computed":true},"default_version":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","computed":true},"thumbprint_algorithm":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"auto_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","computed":true},"formula":{"type":"TypeString","computed":true}}}},"certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"store_location":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","computed":true},"visibility":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","computed":true}}}},"data_disks":{"type":"TypeList","computed":true,"elem":{"schema":{"caching":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"lun":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}},"disk_encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","computed":true}}}},"display_name":{"type":"TypeString","computed":true},"extensions":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"protected_settings":{"type":"TypeString","computed":true},"provision_after_extensions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","computed":true},"settings_json":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"type_handler_version":{"type":"TypeString","computed":true}}}},"fixed_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"resize_timeout":{"type":"TypeString","computed":true},"target_dedicated_nodes":{"type":"TypeInt","computed":true},"target_low_priority_nodes":{"type":"TypeInt","computed":true}}}},"inter_node_communication":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_tasks_per_node":{"type":"TypeInt","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"blobfuse_options":{"type":"TypeString","computed":true},"container_name":{"type":"TypeString","computed":true},"identity_id":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"sas_key":{"type":"TypeString","computed":true}}}},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"azure_file_url":{"type":"TypeString","computed":true},"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true}}}},"cifs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"nfs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"network_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"dynamic_vnet_assignment_scope":{"type":"TypeString","computed":true},"endpoint_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port_range":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"protocol":{"type":"TypeString","computed":true}}}},"public_address_provisioning_type":{"type":"TypeString","computed":true},"public_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","computed":true}}}},"node_agent_sku_id":{"type":"TypeString","computed":true},"node_placement":{"type":"TypeList","computed":true,"elem":{"schema":{"policy":{"type":"TypeString","computed":true}}}},"os_disk_placement":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_task":{"type":"TypeList","computed":true,"elem":{"schema":{"command_line":{"type":"TypeString","computed":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"run_options":{"type":"TypeString","computed":true},"working_directory":{"type":"TypeString","computed":true}}}},"resource_file":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","computed":true},"blob_prefix":{"type":"TypeString","computed":true},"file_mode":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"http_url":{"type":"TypeString","computed":true},"storage_container_url":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"task_retry_maximum":{"type":"TypeInt","computed":true},"user_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_user":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","computed":true}}}},"user_name":{"type":"TypeString","computed":true}}}},"wait_for_success":{"type":"TypeBool","computed":true}}}},"storage_image_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"task_scheduling_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","computed":true}}}},"user_accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"linux_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"gid":{"type":"TypeInt","computed":true},"ssh_private_key":{"type":"TypeString","computed":true},"uid":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"windows_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"login_mode":{"type":"TypeString","computed":true}}}}}}},"vm_size":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_billing_enrollment_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"enrollment_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mca_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"billing_profile_name":{"type":"TypeString","required":true},"invoice_section_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mpa_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"customer_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_blueprint_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_blueprint_published_version":{"schema":{"blueprint_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"dns_zone_id":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tls":{"type":"TypeList","computed":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","computed":true},"certificate_type":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true}}}},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"enabled":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"enabled":{"type":"TypeBool","computed":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redirect_url":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"health_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true},"request_type":{"type":"TypeString","computed":true}}}},"load_balancing":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","computed":true},"sample_size":{"type":"TypeInt","computed":true},"successful_samples_required":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","computed":true},"session_affinity_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"key_vault_certificate_id":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"read":5}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_client_config":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cognitive_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"qna_runtime_endpoint":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"certificate_based_security_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"pem_public_key":{"type":"TypeString","computed":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"resource_group_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"subscription_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","computed":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The Dapr Application Identifier.","computed":true},"app_port":{"type":"TypeInt","description":"The port which the application is listening on. This is the same as the `ingress` port.","computed":true},"app_protocol":{"type":"TypeString","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`.","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","description":"Should this ingress allow insecure connections?","computed":true},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`","computed":true},"certificate_id":{"type":"TypeString","description":"The ID of the Certificate.","computed":true},"name":{"type":"TypeString","description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate.","computed":true}}}},"external_enabled":{"type":"TypeBool","description":"Is this an external Ingress.","computed":true},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","description":"The target port on the container for the Ingress traffic.","computed":true},"traffic_weight":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","description":"The label to apply to the revision as a name prefix for routing traffic.","computed":true},"latest_revision":{"type":"TypeBool","description":"This traffic Weight relates to the latest stable Container Revision.","computed":true},"percentage":{"type":"TypeInt","description":"The percentage of traffic to send to this revision.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted.","computed":true}}}},"transport":{"type":"TypeString","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`","computed":true}}}},"latest_revision_fqdn":{"type":"TypeString","description":"The fully qualified domain name of the latest Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"identity":{"type":"TypeString","description":"ID of the System or User Managed Identity used to pull images from the Container Registry","computed":true},"password_secret_name":{"type":"TypeString","description":"The name of the Secret Reference containing the password value for this user on the Container Registry.","computed":true},"server":{"type":"TypeString","description":"The hostname for the Container Registry.","computed":true},"username":{"type":"TypeString","description":"The username to use for this Container Registry.","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"revision_mode":{"type":"TypeString","computed":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Secret name.","computed":true},"value":{"type":"TypeString","description":"The value for this secret.","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","computed":true,"elem":{"schema":{"container":{"type":"TypeList","computed":true,"elem":{"schema":{"args":{"type":"TypeList","description":"A list of args to pass to the container.","computed":true,"elem":{"type":"TypeString"}},"command":{"type":"TypeList","description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","computed":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`","computed":true},"env":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the environment variable for the container.","computed":true},"secret_name":{"type":"TypeString","description":"The name of the secret that contains the value for this environment variable.","computed":true},"value":{"type":"TypeString","description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used","computed":true}}}},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","description":"The image to use to create the container.","computed":true},"liveness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"initial_delay":{"type":"TypeInt","description":"The time in seconds to wait after the container has started before the probe is started.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"memory":{"type":"TypeString","description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`","computed":true},"name":{"type":"TypeString","description":"The name of the container.","computed":true},"readiness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"success_count_threshold":{"type":"TypeInt","description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"startup_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","computed":true}}}},"volume_mounts":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the Volume to be mounted in the container.","computed":true},"path":{"type":"TypeString","description":"The path in the container at which to mount this volume.","computed":true}}}}}}},"max_replicas":{"type":"TypeInt","description":"The maximum number of replicas for this container.","computed":true},"min_replicas":{"type":"TypeInt","description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}}}},"timeouts":{"read":5}},"azurerm_container_app_environment":{"schema":{"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","description":"The existing Subnet in use by the Container Apps Control Plane.","computed":true},"internal_load_balancer_enabled":{"type":"TypeBool","description":"Does the Container Environment operate in Internal Load Balancing Mode?","computed":true},"location":{"type":"TypeString","computed":true},"log_analytics_workspace_name":{"type":"TypeString","description":"The name of the Log Analytics Workspace this Container Apps Managed Environment is linked to.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment."},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_app_environment_certificate":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"read":5}},"azurerm_container_group":{"schema":{"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","computed":true},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"data_endpoint_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"container_registry_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scope_map_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_account":{"schema":{"capabilities":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"consistency_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","computed":true},"max_interval_in_seconds":{"type":"TypeInt","computed":true},"max_staleness_prefix":{"type":"TypeInt","computed":true}}}},"enable_automatic_failover":{"type":"TypeBool","computed":true},"enable_free_tier":{"type":"TypeBool","computed":true},"enable_multiple_write_locations":{"type":"TypeBool","computed":true},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeList","computed":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true}}}},"ip_range_filter":{"type":"TypeString","computed":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","computed":true},"key_vault_key_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"offer_type":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_restorable_database_accounts":{"schema":{"accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"api_type":{"type":"TypeString","computed":true},"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"restorable_locations":{"type":"TypeList","computed":true,"elem":{"schema":{"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"regional_database_account_instance_id":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true},"autoscale_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true},"assignable_scopes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeSet","computed":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_factory":{"schema":{"github_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"git_url":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"project_name":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redundancy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"snapshot_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"recurrence":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true}}}},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","computed":true},"data_share_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"file_system_name":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"source_platform":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databricks_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_databricks_workspace_private_endpoint_connection":{"schema":{"connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"workspace_private_endpoint_id":{"type":"TypeString","computed":true}}}},"private_endpoint_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dedicated_host":{"schema":{"dedicated_host_group_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"storage_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_dev_test_virtual_network":{"schema":{"allowed_subnets":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_public_ip":{"type":"TypeString","computed":true},"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true}}}},"lab_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_overrides":{"type":"TypeList","computed":true,"elem":{"schema":{"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_in_vm_creation_permission":{"type":"TypeString","computed":true},"use_public_ip_address_permission":{"type":"TypeString","computed":true},"virtual_network_pool_name":{"type":"TypeString","computed":true}}}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_access":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","computed":true},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"flags":{"type":"TypeInt","computed":true},"tag":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","computed":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"send_activity_logs":{"type":"TypeBool","computed":true},"send_azuread_logs":{"type":"TypeBool","computed":true},"send_subscription_logs":{"type":"TypeBool","computed":true}}}},"monitoring_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain":{"schema":{"endpoint":{"type":"TypeString","computed":true},"inbound_ip_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"ip_mask":{"type":"TypeString","computed":true}}}},"input_mapping_default_values":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true}}}},"input_mapping_fields":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_time":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true},"topic":{"type":"TypeString","computed":true}}}},"input_schema":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_arm_resource_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventhub":{"schema":{"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"partition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"read":5}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"user_metadata":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"dedicated_cluster_id":{"type":"TypeString","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"kafka_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"maximum_throughput_units":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"sas":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_express_route_circuit":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peerings":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"peer_asn":{"type":"TypeInt","computed":true},"peering_type":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","computed":true},"shared_key":{"type":"TypeString","computed":true},"vlan_id":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_key":{"type":"TypeString","computed":true},"service_provider_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"bandwidth_in_mbps":{"type":"TypeInt","computed":true},"peering_location":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","computed":true}}}},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"family":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_extended_locations":{"schema":{"extended_locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"sku_tier":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","computed":true},"virtual_hub":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","computed":true},"virtual_hub_id":{"type":"TypeString","computed":true}}}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_firewall_policy":{"schema":{"base_policy_id":{"type":"TypeString","computed":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","computed":true,"elem":{"schema":{"network_rule_fqdn_enabled":{"type":"TypeBool","computed":true},"proxy_enabled":{"type":"TypeBool","computed":true},"servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"threat_intelligence_mode":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_cert_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_function_app_host_keys":{"schema":{"blobs_extension_key":{"type":"TypeString","computed":true},"default_function_key":{"type":"TypeString","computed":true},"durabletask_extension_key":{"type":"TypeString","computed":true},"event_grid_extension_config_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"signalr_extension_key":{"type":"TypeString","computed":true},"webpubsub_extension_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_hdinsight_cluster":{"schema":{"cluster_version":{"type":"TypeString","computed":true},"component_versions":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"edge_ssh_endpoint":{"type":"TypeString","computed":true},"gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"ssh_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","computed":true},"tls_min_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"configuration_export_storage_account_name":{"type":"TypeString","computed":true},"container_registry_login_server_url":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","computed":true},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","computed":true},"eventhub_consumer_group_name":{"type":"TypeString","computed":true},"eventhub_name":{"type":"TypeString","computed":true},"eventhub_namespace_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"cors_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","computed":true},"allowed_headers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","computed":true},"cosmosdb_throughput":{"type":"TypeInt","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_hybrid_compute_machine":{"schema":{"ad_fqdn":{"type":"TypeString","computed":true},"agent_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"error_details":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_info":{"type":"TypeList","computed":true,"elem":{"schema":{"info":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"code":{"type":"TypeString","computed":true},"message":{"type":"TypeString","computed":true},"target":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"name_regex":{"type":"TypeString","optional":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"sort_descending":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_images":{"schema":{"images":{"type":"TypeList","computed":true,"elem":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub":{"schema":{"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","computed":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_operations_host_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"iothub_dps_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_iothub_shared_access_policy":{"schema":{"iothub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","computed":true},"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","computed":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"enable_rbac_authorization":{"type":"TypeBool","computed":true},"enabled_for_deployment":{"type":"TypeBool","computed":true},"enabled_for_disk_encryption":{"type":"TypeBool","computed":true},"enabled_for_template_deployment":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_acls":{"type":"TypeList","computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","computed":true},"default_action":{"type":"TypeString","computed":true},"ip_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_access_policy":{"schema":{"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_certificate":{"schema":{"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"key_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"curve":{"type":"TypeString","computed":true},"exportable":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"reuse_key":{"type":"TypeBool","computed":true}}}},"lifetime_action":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","computed":true},"lifetime_percentage":{"type":"TypeInt","computed":true}}}}}}},"secret_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true}}}},"x509_certificate_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"validity_in_months":{"type":"TypeInt","computed":true}}}}}}},"expires":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true,"computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_certificate_data":{"schema":{"certificates_count":{"type":"TypeInt","computed":true},"expires":{"type":"TypeString","computed":true},"hex":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"pem":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","computed":true},"admin":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"phone":{"type":"TypeString","computed":true}}}},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"org_id":{"type":"TypeString","computed":true},"provider_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificates":{"schema":{"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"include_pending":{"type":"TypeBool","optional":true,"default":true},"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_encrypted_value":{"schema":{"algorithm":{"type":"TypeString","required":true},"decoded_plain_text_value":{"type":"TypeString","computed":true},"encrypted_data":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"plain_text_value":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","computed":true},"e":{"type":"TypeString","computed":true},"key_opts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before_date":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_secrets":{"schema":{"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","computed":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","computed":true}}}},"agent_pool_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"api_server_authorized_ip_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"azure_active_directory_role_based_access_control":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","computed":true},"client_app_id":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"server_app_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"azure_policy_enabled":{"type":"TypeBool","computed":true},"current_kubernetes_version":{"type":"TypeString","computed":true},"custom_ca_trust_certificates_base64":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"disk_encryption_set_id":{"type":"TypeString","computed":true},"dns_prefix":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","computed":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress_application_gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","computed":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"key_management_service":{"type":"TypeList","computed":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"key_vault_network_access":{"type":"TypeString","computed":true}}}},"key_vault_secrets_provider":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","computed":true},"secret_rotation_interval":{"type":"TypeString","computed":true}}}},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"kubernetes_version":{"type":"TypeString","computed":true},"linux_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true},"ssh_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_data":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","computed":true},"microsoft_defender":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"network_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","computed":true},"docker_bridge_cidr":{"type":"TypeString","computed":true},"load_balancer_sku":{"type":"TypeString","computed":true},"network_plugin":{"type":"TypeString","computed":true},"network_policy":{"type":"TypeString","computed":true},"pod_cidr":{"type":"TypeString","computed":true},"service_cidr":{"type":"TypeString","computed":true}}}},"node_resource_group":{"type":"TypeString","computed":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","computed":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","computed":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}}},"open_service_mesh_enabled":{"type":"TypeBool","computed":true},"private_cluster_enabled":{"type":"TypeBool","computed":true},"private_fqdn":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"role_based_access_control_enabled":{"type":"TypeBool","computed":true},"service_mesh_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"mode":{"type":"TypeString","computed":true}}}},"service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true}}}},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_version":{"type":"TypeString","computed":true},"file_driver_enabled":{"type":"TypeBool","computed":true},"snapshot_controller_enabled":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"eviction_policy":{"type":"TypeString","computed":true},"kubernetes_cluster_name":{"type":"TypeString","required":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_disk_type":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"priority":{"type":"TypeString","computed":true},"proximity_placement_group_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"spot_max_price":{"type":"TypeFloat","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_node_pool_snapshot":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_node_pool_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_service_versions":{"schema":{"include_preview":{"type":"TypeBool","optional":true,"default":true},"latest_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"version_prefix":{"type":"TypeString","optional":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kusto_cluster":{"schema":{"data_ingestion_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true},"hot_cache_period":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_lb":{"schema":{"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_backend_address_pool":{"schema":{"backend_address":{"type":"TypeList","computed":true,"elem":{"schema":{"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"virtual_network_id":{"type":"TypeString","computed":true}}}},"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","computed":true},"backend_address_pool_id":{"type":"TypeString","computed":true},"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","computed":true},"tcp_reset_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_lb_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","computed":true},"disable_outbound_snat":{"type":"TypeBool","computed":true},"enable_floating_ip":{"type":"TypeBool","computed":true},"enable_tcp_reset":{"type":"TypeBool","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"load_distribution":{"type":"TypeString","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"probe_id":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"image_tag":{"type":"TypeString","computed":true},"registry_password":{"type":"TypeString","computed":true},"registry_url":{"type":"TypeString","computed":true},"registry_username":{"type":"TypeString","computed":true}}}},"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":25}},"azurerm_linux_web_app":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_reference_identity_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_image_tag":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"go_version":{"type":"TypeString","computed":true},"java_server":{"type":"TypeString","computed":true},"java_server_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"ruby_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","computed":true}}}},"gateway_address":{"type":"TypeString","computed":true},"gateway_fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_log_analytics_workspace":{"schema":{"daily_quota_gb":{"type":"TypeFloat","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_shared_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_integration_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","computed":true},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_account_share_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_workflow":{"schema":{"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"logic_app_integration_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","computed":true},"workflow_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_machine_learning_workspace":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","computed":true},"install_patches":{"type":"TypeList","computed":true,"elem":{"schema":{"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"reboot":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","computed":true},"window":{"type":"TypeList","computed":true,"elem":{"schema":{"duration":{"type":"TypeString","computed":true},"expiration_date_time":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"start_date_time":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_managed_api":{"schema":{"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_managed_application_definition":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","computed":true},"disk_access_id":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"disk_iops_read_write":{"type":"TypeInt","computed":true},"disk_mbps_read_write":{"type":"TypeInt","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"image_reference_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_access_policy":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group":{"schema":{"all_management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"all_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true,"computed":true},"parent_management_group_id":{"type":"TypeString","computed":true},"subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group_template_deployment":{"schema":{"management_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement":{"type":"TypeString","computed":true},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"geo_redundant_backup":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true},"plan":{"type":"TypeString","required":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_country_code":{"type":"TypeString","computed":true},"mobile_network_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"mobile_network_data_network_name":{"type":"TypeString","required":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true},"network_address_port_translation":{"type":"TypeList","computed":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"pinhole_maximum_number":{"type":"TypeInt","optional":true},"port_range":{"type":"TypeList","computed":true,"elem":{"schema":{"maximum":{"type":"TypeInt","computed":true},"minimum":{"type":"TypeInt","computed":true}}}},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","computed":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"control_plane_access_name":{"type":"TypeString","computed":true},"core_network_technology":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"interoperability_settings_json":{"type":"TypeString","computed":true},"local_diagnostics_access":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","computed":true},"https_server_certificate_url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform":{"type":"TypeList","computed":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","computed":true},"custom_location_id":{"type":"TypeString","computed":true},"edge_device_id":{"type":"TypeString","computed":true},"stack_hci_cluster_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"pcc_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"precedence":{"type":"TypeInt","computed":true},"qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"guaranteed_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"service_data_flow_template":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","computed":true}}}},"service_precedence":{"type":"TypeInt","computed":true},"service_qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim":{"schema":{"device_type":{"type":"TypeString","computed":true},"integrated_circuit_card_identifier":{"type":"TypeString","computed":true},"international_mobile_subscriber_identity":{"type":"TypeString","computed":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","computed":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true},"static_ipv4_address":{"type":"TypeString","computed":true}}}},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","computed":true},"registration_timer_in_seconds":{"type":"TypeInt","computed":true},"slice":{"type":"TypeList","computed":true,"elem":{"schema":{"data_network":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"allowed_services_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","computed":true},"default_session_type":{"type":"TypeString","computed":true},"max_buffered_packets":{"type":"TypeInt","computed":true},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}}}},"default_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","computed":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","computed":true},"slice_service_type":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"role_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"automation_runbook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","computed":true},"is_global_runbook":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"runbook_name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true},"webhook_resource_id":{"type":"TypeString","computed":true}}}},"azure_app_push_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"azure_function_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","computed":true},"function_name":{"type":"TypeString","computed":true},"http_trigger_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"email_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"event_hub_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true},"ticket_configuration":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","computed":true}}}},"logic_app_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"callback_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"short_name":{"type":"TypeString","computed":true},"sms_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"voice_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"webhook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","computed":true},"data_flow":{"type":"TypeList","computed":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"output_stream":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"transform_kql":{"type":"TypeString","computed":true}}}},"data_sources":{"type":"TypeList","computed":true,"elem":{"schema":{"data_import":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"stream":{"type":"TypeString","computed":true}}}}}}},"extension":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_json":{"type":"TypeString","computed":true},"extension_name":{"type":"TypeString","computed":true},"input_data_sources":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"iis_log":{"type":"TypeList","computed":true,"elem":{"schema":{"log_directories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"settings":{"type":"TypeList","computed":true,"elem":{"schema":{"text":{"type":"TypeList","computed":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","computed":true}}}}}}},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"performance_counter":{"type":"TypeList","computed":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"sampling_frequency_in_seconds":{"type":"TypeInt","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"prometheus_forwarder":{"type":"TypeList","computed":true,"elem":{"schema":{"label_include_filter":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"syslog":{"type":"TypeList","computed":true,"elem":{"schema":{"facility_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"log_levels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_event_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"x_path_queries":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_firewall_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"description":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"workspace_resource_id":{"type":"TypeString","computed":true}}}},"monitor_account":{"type":"TypeList","computed":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"storage_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_blob_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_table_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"table_name":{"type":"TypeString","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"stream_declaration":{"type":"TypeList","computed":true,"elem":{"schema":{"column":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"stream_name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_diagnostic_categories":{"schema":{"log_category_groups":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"log_category_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"logs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"metrics":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"days":{"type":"TypeInt","computed":true},"enabled":{"type":"TypeBool","computed":true}}}},"servicebus_rule_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeSet","computed":true,"elem":{"schema":{"action_group":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","computed":true},"email_subject":{"type":"TypeString","computed":true}}}},"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"query":{"type":"TypeString","computed":true},"query_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"severity":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","computed":true},"time_window":{"type":"TypeInt","computed":true},"trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_column":{"type":"TypeString","computed":true},"metric_trigger_type":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeSet","computed":true,"elem":{"schema":{"dimension":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","computed":true}}}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mssql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"elastic_pool_id":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_size_gb":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"read_replica_count":{"type":"TypeInt","computed":true},"read_scale":{"type":"TypeBool","computed":true},"server_id":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"max_size_bytes":{"type":"TypeInt","computed":true},"max_size_gb":{"type":"TypeFloat","computed":true},"name":{"type":"TypeString","required":true},"per_db_max_capacity":{"type":"TypeInt","computed":true},"per_db_min_capacity":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"family":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"customer_managed_key_id":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"high_availability":{"type":"TypeList","computed":true,"elem":{"schema":{"mode":{"type":"TypeString","computed":true},"standby_availability_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","computed":true},"start_hour":{"type":"TypeInt","computed":true},"start_minute":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"storage":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","computed":true},"iops":{"type":"TypeInt","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement_enabled":{"type":"TypeBool","computed":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","computed":true},"email_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"retention_days":{"type":"TypeInt","computed":true},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_endpoint":{"type":"TypeString","computed":true}}}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_ip_address_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"public_ip_prefix_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_netapp_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_level":{"type":"TypeString","computed":true},"size_in_tb":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"volume_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true},"daily_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"hourly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"monthly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","computed":true,"elem":{"type":"TypeInt"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"network_features":{"type":"TypeString","computed":true},"pool_name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"security_style":{"type":"TypeString","optional":true},"service_level":{"type":"TypeString","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"volume_path":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true},"application_identifier":{"type":"TypeString","computed":true},"group_description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","computed":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"data_protection_snapshot_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","computed":true}}}},"export_policy_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","computed":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"nfsv41_enabled":{"type":"TypeBool","computed":true},"root_access_enabled":{"type":"TypeBool","computed":true},"rule_index":{"type":"TypeInt","computed":true},"unix_read_only":{"type":"TypeBool","computed":true},"unix_read_write":{"type":"TypeBool","computed":true}}}},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proximity_placement_group_id":{"type":"TypeString","computed":true},"security_style":{"type":"TypeString","computed":true},"service_level":{"type":"TypeString","computed":true},"snapshot_directory_visible":{"type":"TypeBool","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","computed":true},"volume_spec_name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"internal_dns_name_label":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","computed":true},"load_balancer_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_manager_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"security_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"destination_address_prefix":{"type":"TypeString","computed":true},"destination_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","computed":true},"destination_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_service_tags":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv4_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv6_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"location_filter":{"type":"TypeString","optional":true,"forceNew":true},"service":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"application_mode":{"type":"TypeString","computed":true},"bundle_id":{"type":"TypeString","computed":true},"key_id":{"type":"TypeString","computed":true},"team_id":{"type":"TypeString","computed":true},"token":{"type":"TypeString","computed":true}}}},"gcm_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"api_key":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"ip_forwarding_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","computed":true},"anti_virus_profile":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"dns_subscription":{"type":"TypeString","computed":true},"file_blocking_profile":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_trust_certificate":{"type":"TypeString","computed":true},"outbound_untrust_certificate":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"url_filtering_profile":{"type":"TypeString","computed":true},"vulnerability_profile":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_platform_image":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"offer":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_policy_assignment":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"enforce":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","computed":true,"elem":{"schema":{"content":{"type":"TypeString","computed":true},"policy_definition_reference_id":{"type":"TypeString","computed":true}}}},"not_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeString","computed":true},"policy_definition_id":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_definition_built_in":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_definition_group":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","computed":true},"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"policy_definition_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"policy_definition_id":{"type":"TypeString","computed":true},"policy_group_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","computed":true}}}},"policy_definitions":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"assignment_hash":{"type":"TypeString","computed":true},"compliance_status":{"type":"TypeString","computed":true},"content_hash":{"type":"TypeString","computed":true},"content_uri":{"type":"TypeString","computed":true},"last_compliance_status_checked":{"type":"TypeString","computed":true},"latest_report_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"virtual_machine_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_dns_servers":{"type":"TypeList","computed":true,"elem":{"schema":{"ip_address":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true},"private_dns_zone_name":{"type":"TypeString","required":true},"registration_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_endpoint_connection":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_service_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"request_response":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","computed":true},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"nat_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_link_service_endpoint_connections":{"schema":{"location":{"type":"TypeString","computed":true},"private_endpoint_connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"connection_id":{"type":"TypeString","computed":true},"connection_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"private_endpoint_id":{"type":"TypeString","computed":true},"private_endpoint_name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_id":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_proximity_placement_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","computed":true},"ddos_protection_mode":{"type":"TypeString","computed":true},"ddos_protection_plan_id":{"type":"TypeString","computed":true},"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"reverse_fqdn":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"prefix_length":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ips":{"schema":{"allocation_type":{"type":"TypeString","optional":true},"attachment_status":{"type":"TypeString","optional":true},"name_prefix":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_public_maintenance_configurations":{"schema":{"configs":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"duration":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maintenance_scope":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_recovery_services_vault":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","computed":true},"enable_non_ssl_port":{"type":"TypeBool","computed":true},"family":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patch_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeString","computed":true},"start_hour_utc":{"type":"TypeInt","computed":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","computed":true},"redis_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","computed":true},"aof_storage_connection_string_0":{"type":"TypeString","computed":true},"aof_storage_connection_string_1":{"type":"TypeString","computed":true},"enable_authentication":{"type":"TypeBool","computed":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","computed":true},"maxmemory_delta":{"type":"TypeInt","computed":true},"maxmemory_policy":{"type":"TypeString","computed":true},"maxmemory_reserved":{"type":"TypeInt","computed":true},"notify_keyspace_events":{"type":"TypeString","computed":true},"rdb_backup_enabled":{"type":"TypeBool","computed":true},"rdb_backup_frequency":{"type":"TypeInt","computed":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","computed":true},"rdb_storage_connection_string":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_enterprise_database":{"schema":{"cluster_id":{"type":"TypeString","required":true},"linked_database_group_nickname":{"type":"TypeString","computed":true},"linked_database_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","computed":true},"managed_by":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_resource_group_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_resources":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true},"required_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"resources":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"permissions":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true},"scope":{"type":"TypeString","optional":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"communities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"rule_type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_route_table":{"schema":{"bgp_route_propagation_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop_in_ip_address":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_search_service":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_anomaly":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"mode":{"type":"TypeString","computed":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_template":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true},"nrt_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"scheduled_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"query_frequency":{"type":"TypeString","computed":true},"query_period":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","computed":true},"trigger_threshold":{"type":"TypeInt","computed":true}}}},"security_incident_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"product_filter":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"per_site_scaling_enabled":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","computed":true},"zone_balancing_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"partner_namespace_id":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","optional":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"support_ordering":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_shared_image":{"schema":{"architecture":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"eula":{"type":"TypeString","computed":true},"gallery_name":{"type":"TypeString","required":true},"hyper_v_generation":{"type":"TypeString","computed":true},"identifier":{"type":"TypeList","computed":true,"elem":{"schema":{"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"privacy_statement_uri":{"type":"TypeString","computed":true},"purchase_plan":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true}}}},"release_note_uri":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"specialized":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_shared_image_version":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_disk_image_size_gb":{"type":"TypeInt","computed":true},"os_disk_snapshot_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sort_versions_by_semver":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_shared_image_versions":{"schema":{"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"images":{"type":"TypeList","computed":true,"elem":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"hostname":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true},"recovery_fabric_name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","computed":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","computed":true},"primary_zone":{"type":"TypeString","computed":true},"recovery_edge_zone":{"type":"TypeString","computed":true},"recovery_zone":{"type":"TypeString","computed":true}}}},"failover_deployment_model":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_group":{"type":"TypeSet","computed":true,"elem":{"schema":{"post_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"pre_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"replicated_protected_items":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"recovery_vault_id":{"type":"TypeString","required":true},"source_recovery_fabric_id":{"type":"TypeString","computed":true},"target_recovery_fabric_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_snapshot":{"schema":{"creation_option":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","computed":true},"token_secret":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_spring_cloud_app":{"schema":{"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"is_public":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"persistent_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","computed":true},"size_in_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"tls_enabled":{"type":"TypeBool","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_spring_cloud_service":{"schema":{"config_server_git_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"repository":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"pattern":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","computed":true},"elastic_pool_name":{"type":"TypeString","computed":true},"failover_group_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"read_scale":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ssh_public_key":{"schema":{"name":{"type":"TypeString","required":true},"public_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","computed":true},"account_kind":{"type":"TypeString","computed":true},"account_replication_type":{"type":"TypeString","computed":true},"account_tier":{"type":"TypeString","computed":true},"allow_nested_items_to_be_public":{"type":"TypeBool","computed":true},"azure_files_authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"domain_sid":{"type":"TypeString","computed":true},"forest_name":{"type":"TypeString","computed":true},"netbios_domain_name":{"type":"TypeString","computed":true},"storage_sid":{"type":"TypeString","computed":true}}}},"directory_type":{"type":"TypeString","computed":true}}}},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"enable_https_traffic_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"is_hns_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"queue_encryption_key_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"table_encryption_key_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account_blob_container_sas":{"schema":{"cache_control":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_language":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_address":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_account_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_addresses":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"filter":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"process":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"tag":{"type":"TypeBool","required":true},"update":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"resource_types":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeBool","required":true},"object":{"type":"TypeBool","required":true},"service":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"services":{"type":"TypeList","required":true,"elem":{"schema":{"blob":{"type":"TypeBool","required":true},"file":{"type":"TypeBool","required":true},"queue":{"type":"TypeBool","required":true},"table":{"type":"TypeBool","required":true}}},"maxItems":1},"signed_version":{"type":"TypeString","optional":true,"default":"2017-07-29"},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","computed":true},"content_md5":{"type":"TypeString","computed":true},"content_type":{"type":"TypeString","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","computed":true},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_encryption_scope":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"schema":{"base_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true}}}},"snapshot":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}},"version":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}}}}},"enabled":{"type":"TypeBool","computed":true},"filters":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operation":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"prefix_match":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true}}}},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_share":{"schema":{"acl":{"type":"TypeList","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"expiry":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"start":{"type":"TypeString","computed":true}}}},"id":{"type":"TypeString","computed":true}}}},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"quota":{"type":"TypeInt","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true},"storage_sync_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true},"row_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","computed":true},"data_locale":{"type":"TypeString","computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_policy":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"job_id":{"type":"TypeString","computed":true},"last_output_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"output_error_policy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_mode":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true},"streaming_units":{"type":"TypeInt","computed":true},"transformation_query":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subnet":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"route_table_id":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_subscription":{"schema":{"display_name":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscription_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscriptions":{"schema":{"display_name_contains":{"type":"TypeString","optional":true},"display_name_prefix":{"type":"TypeString","optional":true},"subscriptions":{"type":"TypeList","computed":true,"elem":{"schema":{"display_name":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_synapse_workspace":{"schema":{"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_template_spec_version":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template_body":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_tenant_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_geographical_location":{"schema":{"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","computed":true,"elem":{"schema":{"relative_name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true}}}},"fqdn":{"type":"TypeString","computed":true},"monitor_config":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"expected_status_code_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"timeout_in_seconds":{"type":"TypeInt","computed":true},"tolerated_number_of_failures":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_status":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","computed":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"read":5}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"load_balancer_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_sessions_allowed":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"personal_desktop_assignment_type":{"type":"TypeString","computed":true},"preferred_app_group_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scheduled_agent_updates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"hour_of_day":{"type":"TypeInt","computed":true}}}},"timezone":{"type":"TypeString","computed":true},"use_session_host_timezone":{"type":"TypeBool","computed":true}}}},"start_vm_on_connect":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"validate_environment":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"default_route_table_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"remote_virtual_network_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"routing":{"type":"TypeList","computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","computed":true},"propagated_route_table":{"type":"TypeList","computed":true,"elem":{"schema":{"labels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"static_vnet_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"next_hop_ip_address":{"type":"TypeString","computed":true}}}}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"instances":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"instance_id":{"type":"TypeString","computed":true},"latest_model_applied":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnets":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","computed":true},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"peer_weight":{"type":"TypeInt","computed":true},"peering_address":{"type":"TypeString","computed":true}}}},"custom_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"default_local_network_gateway_id":{"type":"TypeString","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"generation":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"vpn_client_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","computed":true},"aad_issuer":{"type":"TypeString","computed":true},"aad_tenant":{"type":"TypeString","computed":true},"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","computed":true},"radius_server_secret":{"type":"TypeString","computed":true},"revoked_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"root_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"vpn_client_protocols":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"vpn_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"connection_protocol":{"type":"TypeString","computed":true},"dpd_timeout_seconds":{"type":"TypeInt","computed":true},"egress_bytes_transferred":{"type":"TypeInt","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"express_route_circuit_id":{"type":"TypeString","computed":true},"express_route_gateway_bypass":{"type":"TypeBool","computed":true},"ingress_bytes_transferred":{"type":"TypeInt","computed":true},"ipsec_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"dh_group":{"type":"TypeString","computed":true},"ike_encryption":{"type":"TypeString","computed":true},"ike_integrity":{"type":"TypeString","computed":true},"ipsec_encryption":{"type":"TypeString","computed":true},"ipsec_integrity":{"type":"TypeString","computed":true},"pfs_group":{"type":"TypeString","computed":true},"sa_datasize":{"type":"TypeInt","computed":true},"sa_lifetime":{"type":"TypeInt","computed":true}}}},"local_azure_ip_address_enabled":{"type":"TypeBool","computed":true},"local_network_gateway_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peer_virtual_network_gateway_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"routing_weight":{"type":"TypeInt","computed":true},"shared_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","computed":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","computed":true},"virtual_network_gateway_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","computed":true},"disable_vpn_encryption":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"office365_local_breakout_category":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vpn_site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"management_cluster":{"type":"TypeList","computed":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","computed":true}}}},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_subnet_cidr":{"type":"TypeString","computed":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_vpn_gateway":{"schema":{"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"instance_1_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"peer_weight":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_unit":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_application_firewall_policy":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_pubsub_private_link_resource":{"schema":{"shared_private_link_resource_types":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","computed":true}}}},"web_pubsub_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","computed":true},"docker_container_name":{"type":"TypeString","computed":true},"docker_container_registry":{"type":"TypeString","computed":true},"docker_container_tag":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_core_version":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_embedded_server_enabled":{"type":"TypeBool","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python":{"type":"TypeBool","computed":true},"python_version":{"type":"TypeString","computed":true},"tomcat_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"custom_action":{"type":"TypeList","computed":true,"elem":{"schema":{"executable":{"type":"TypeString","computed":true},"parameters":{"type":"TypeString","computed":true}}}},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","computed":true},"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"virtual_application":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"preload":{"type":"TypeBool","computed":true},"virtual_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"virtual_path":{"type":"TypeString","computed":true}}}},"virtual_path":{"type":"TypeString","computed":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}}}}} +{"providerName":"azurerm","schemaVersion":"1","providerSchema":{"schema":{"auxiliary_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":3},"client_certificate":{"type":"TypeString","optional":true,"description":"Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_password":{"type":"TypeString","optional":true,"description":"The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_path":{"type":"TypeString","optional":true,"description":"The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service Principal using a Client Certificate."},"client_id":{"type":"TypeString","optional":true,"description":"The Client ID which should be used."},"client_id_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client ID which should be used."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"client_secret_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"disable_correlation_request_id":{"type":"TypeBool","optional":true,"description":"This will disable the x-ms-correlation-request-id header."},"disable_terraform_partner_id":{"type":"TypeBool","optional":true,"description":"This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified."},"environment":{"type":"TypeString","required":true,"description":"The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public."},"features":{"type":"TypeList","required":true,"elem":{"schema":{"api_management":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"app_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"application_insights":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_generated_rule":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cognitive_account":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_certificates_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_hardware_security_modules_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_managed_hardware_security_module` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_keys_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_secrets_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be permanently deleted (e.g purged), when destroyed"},"recover_soft_deleted_certificates":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be restored, instead of creating new ones"},"recover_soft_deleted_key_vaults":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be restored, instead of creating new ones"},"recover_soft_deleted_keys":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be restored, instead of creating new ones"},"recover_soft_deleted_secrets":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be restored, instead of creating new ones"}}},"maxItems":1},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"permanently_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"managed_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"expand_without_downtime":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_deletion_if_contains_resources":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"template_deployment":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_nested_items_during_deletion":{"type":"TypeBool","required":true}}},"maxItems":1},"virtual_machine":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_os_disk_on_deletion":{"type":"TypeBool","optional":true,"default":false},"graceful_shutdown":{"type":"TypeBool","optional":true,"default":false},"skip_shutdown_and_force_delete":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"virtual_machine_scale_set":{"type":"TypeList","optional":true,"elem":{"schema":{"force_delete":{"type":"TypeBool","optional":true,"default":false},"roll_instances_when_required":{"type":"TypeBool","required":true},"scale_to_zero_before_deletion":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1,"minItems":1},"metadata_host":{"type":"TypeString","required":true,"description":"The Hostname which should be used for the Azure Metadata Service."},"msi_endpoint":{"type":"TypeString","optional":true,"description":"The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected automatically. "},"oidc_request_token":{"type":"TypeString","optional":true,"description":"The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_request_url":{"type":"TypeString","optional":true,"description":"The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_token":{"type":"TypeString","optional":true,"description":"The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"oidc_token_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"partner_id":{"type":"TypeString","optional":true,"description":"A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution."},"skip_provider_registration":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already registered?"},"storage_use_azuread":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?"},"subscription_id":{"type":"TypeString","optional":true,"description":"The Subscription ID which should be used."},"tenant_id":{"type":"TypeString","optional":true,"description":"The Tenant ID which should be used."},"use_cli":{"type":"TypeBool","optional":true,"default":true,"description":"Allow Azure CLI to be used for Authentication."},"use_msi":{"type":"TypeBool","optional":true,"description":"Allow Managed Service Identity to be used for Authentication."},"use_oidc":{"type":"TypeBool","optional":true,"description":"Allow OpenID Connect to be used for authentication"}},"resources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"country_code":{"type":"TypeString","optional":true,"description":"Country code of the B2C tenant. See https://aka.ms/B2CDataResidency for valid country codes.","computed":true,"forceNew":true},"data_residency_location":{"type":"TypeString","required":true,"description":"Location in which the B2C tenant is hosted and data resides. See https://aka.ms/B2CDataResidency for more information.","forceNew":true},"display_name":{"type":"TypeString","optional":true,"description":"The initial display name of the B2C tenant.","computed":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix.","forceNew":true},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"description":"Billing SKU for the B2C tenant. See https://aka.ms/b2cBilling for more information."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","optional":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"filtered_sync_enabled":{"type":"TypeBool","optional":true,"default":false},"initial_replica_set":{"type":"TypeList","required":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notifications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","optional":true,"default":false},"notify_global_admins":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","required":true},"external_access_enabled":{"type":"TypeBool","optional":true,"default":false},"pfx_certificate":{"type":"TypeString","required":true},"pfx_certificate_password":{"type":"TypeString","required":true},"public_certificate":{"type":"TypeString","computed":true}}},"maxItems":1},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","optional":true,"default":false},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"ntlm_v1_enabled":{"type":"TypeBool","optional":true,"default":false},"sync_kerberos_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_ntlm_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_on_prem_passwords":{"type":"TypeBool","optional":true,"default":false},"tls_v1_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_replica_set":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"external_access_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_trust":{"schema":{"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"trusted_domain_dns_ips":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":2},"trusted_domain_fqdn":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_advanced_threat_protection":{"schema":{"enabled":{"type":"TypeBool","required":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_analysis_services_server":{"schema":{"admin_users":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"backup_blob_container_uri":{"type":"TypeString","optional":true},"enable_power_bi_service":{"type":"TypeBool","optional":true},"ipv4_firewall_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"range_end":{"type":"TypeString","required":true},"range_start":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"querypool_connection_mode":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_full_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_connection":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}}},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_password":{"type":"TypeString","optional":true},"encoded_certificate":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","required":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}},"maxItems":10},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"delegation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"subscriptions_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","optional":true},"user_registration_enabled":{"type":"TypeBool","optional":true,"default":false},"validation_key":{"type":"TypeString","optional":true}}},"maxItems":1},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"management_api_url":{"type":"TypeString","computed":true},"min_api_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_sender_email":{"type":"TypeString","optional":true,"computed":true},"policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}}},"maxItems":1},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocols":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_http2":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"publisher_email":{"type":"TypeString","required":true},"publisher_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scm_url":{"type":"TypeString","computed":true},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_backend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls11":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls11":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_gcm_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_gcm_sha384_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"triple_des_ciphers_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"sign_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"sign_up":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"terms_of_service":{"type":"TypeList","required":true,"elem":{"schema":{"consent_required":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","required":true},"text":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"virtual_network_type":{"type":"TypeString","optional":true,"default":"None"},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_type":{"type":"TypeString","optional":true,"computed":true},"contact":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"content_format":{"type":"TypeString","required":true},"content_value":{"type":"TypeString","required":true},"wsdl_selector":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"license":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"oauth2_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization_server_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true}}},"maxItems":1},"openid_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"openid_provider_name":{"type":"TypeString","required":true}}},"maxItems":1},"path":{"type":"TypeString","optional":true,"computed":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision":{"type":"TypeString","required":true,"forceNew":true},"revision_description":{"type":"TypeString","optional":true},"service_url":{"type":"TypeString","optional":true,"computed":true},"soap_pass_through":{"type":"TypeBool","optional":true,"computed":true},"source_api_id":{"type":"TypeString","optional":true},"subscription_key_parameter_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"header":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true}}},"maxItems":1},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"terms_of_service_url":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"computed":true},"version_description":{"type":"TypeString","optional":true},"version_set_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"method":{"type":"TypeString","required":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"query_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"response":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}},"status_code":{"type":"TypeInt","required":true}}}},"template_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"url_template":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_tag":{"schema":{"api_operation_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_release":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"components":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","required":true},"definitions":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_tag":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_api_tag_description":{"schema":{"api_tag_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"external_documentation_description":{"type":"TypeString","optional":true},"external_documentation_url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"version_header_name":{"type":"TypeString","optional":true},"version_query_name":{"type":"TypeString","optional":true},"versioning_scheme":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_authorization_server":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authorization_endpoint":{"type":"TypeString","required":true},"authorization_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_authentication_method":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_registration_endpoint":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"default_scope":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"grant_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_owner_password":{"type":"TypeString","optional":true},"resource_owner_username":{"type":"TypeString","optional":true},"support_state":{"type":"TypeBool","optional":true},"token_body_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"token_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_backend":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"credentials":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","optional":true},"scheme":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"header":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"query":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true},"service_fabric_cluster":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_id":{"type":"TypeString","optional":true,"computed":true},"client_certificate_thumbprint":{"type":"TypeString","optional":true,"computed":true},"management_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"max_partition_resolution_retries":{"type":"TypeInt","required":true},"server_certificate_thumbprints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"server_x509_name":{"type":"TypeSet","optional":true,"elem":{"schema":{"issuer_certificate_thumbprint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"title":{"type":"TypeString","optional":true},"tls":{"type":"TypeList","optional":true,"elem":{"schema":{"validate_certificate_chain":{"type":"TypeBool","optional":true},"validate_certificate_name":{"type":"TypeBool","optional":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_certificate":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"data":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","computed":true},"key_vault_identity_client_id":{"type":"TypeString","optional":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_custom_domain":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_api_management_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_email_template":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true},"template_name":{"type":"TypeString","required":true,"forceNew":true},"title":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location_data":{"type":"TypeList","required":true,"elem":{"schema":{"city":{"type":"TypeString","optional":true},"district":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_api":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_certificate_authority":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"is_trusted":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_id":{"type":"TypeString","required":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"host_name":{"type":"TypeString","required":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request_client_certificate_enabled":{"type":"TypeBool","optional":true},"tls10_enabled":{"type":"TypeBool","optional":true},"tls11_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_global_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"external_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"custom","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aad":{"schema":{"allowed_tenants":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_tenant":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aadb2c":{"schema":{"allowed_tenant":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authority":{"type":"TypeString","required":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"password_reset_policy":{"type":"TypeString","optional":true},"profile_editing_policy":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_policy":{"type":"TypeString","required":true},"signin_tenant":{"type":"TypeString","required":true},"signup_policy":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_facebook":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_google":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_microsoft":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_twitter":{"schema":{"api_key":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_secret_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_logger":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"application_insights":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"instrumentation_key":{"type":"TypeString","required":true}}},"maxItems":1},"buffered":{"type":"TypeBool","optional":true,"default":true},"description":{"type":"TypeString","optional":true},"eventhub":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_named_value":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","optional":true},"value_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"secret_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_notification_recipient_email":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"email":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_notification_recipient_user":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_openid_connect_provider":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"metadata_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_policy":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"approval_required":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"published":{"type":"TypeBool","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"subscriptions_limit":{"type":"TypeInt","optional":true},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_tag":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_management_product_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_redis_cache":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"cache_location":{"type":"TypeString","optional":true,"default":"default"},"connection_string":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_subscription":{"schema":{"allow_tracing":{"type":"TypeBool","optional":true,"default":true},"api_id":{"type":"TypeString","optional":true,"forceNew":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","optional":true,"computed":true},"product_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true,"computed":true},"state":{"type":"TypeString","optional":true,"default":"submitted"},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_tag":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"confirmation":{"type":"TypeString","optional":true,"forceNew":true},"email":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","required":true},"last_name":{"type":"TypeString","required":true},"note":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","optional":true,"computed":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_identifier":{"type":"TypeString","optional":true}}},"maxItems":1},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","optional":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","optional":true,"default":"free"},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":7,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_feature":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"percentage_filter_value":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"targeting_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_rollout_percentage":{"type":"TypeInt","required":true},"groups":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"rollout_percentage":{"type":"TypeInt","required":true}}}},"users":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"timewindow_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","optional":true},"start":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"computed":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","required":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"kv"},"value":{"type":"TypeString","optional":true,"computed":true},"vault_key_reference":{"type":"TypeString","optional":true}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true},"frequency_unit":{"type":"TypeString","required":true},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false},"retention_period_in_days":{"type":"TypeInt","optional":true,"default":30},"start_time":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_mode":{"type":"TypeString","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_active_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_slot_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate":{"schema":{"app_service_plan_id":{"type":"TypeString","optional":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hosting_environment_profile_id":{"type":"TypeString","computed":true},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"pfx_blob":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate_binding":{"schema":{"app_service_name":{"type":"TypeString","computed":true},"certificate_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","computed":true},"hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","optional":true,"default":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","optional":true,"computed":true},"distinguished_name":{"type":"TypeString","optional":true,"computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","optional":true,"default":2048},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_type":{"type":"TypeString","optional":true,"default":"Standard"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","optional":true,"default":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_custom_hostname_binding":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_environment":{"schema":{"allowed_user_ip_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"front_end_scale_factor":{"type":"TypeInt","optional":true,"default":15},"internal_ip_address":{"type":"TypeString","computed":true},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","optional":true,"default":"I1"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_ip_address":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","optional":true,"default":true},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dedicated_host_count":{"type":"TypeInt","optional":true,"forceNew":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_hybrid_connection":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","required":true},"relay_id":{"type":"TypeString","required":true,"forceNew":true},"relay_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey"},"send_key_value":{"type":"TypeString","computed":true},"service_bus_namespace":{"type":"TypeString","computed":true},"service_bus_suffix":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_managed_certificate":{"schema":{"canonical_name":{"type":"TypeString","computed":true},"custom_hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"is_xenon":{"type":"TypeBool","optional":true},"kind":{"type":"TypeString","optional":true,"default":"Windows","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling":{"type":"TypeBool","optional":true},"reserved":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"size":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_app_service_public_certificate":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"blob":{"type":"TypeString","required":true,"forceNew":true},"certificate_location":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot_custom_hostname_binding":{"schema":{"app_service_slot_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_slot_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"slot_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_source_control":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows or Linux Web App.","forceNew":true},"branch":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The URL for the repository.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`.","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the App use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `false` to enable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`.","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_slot":{"schema":{"branch":{"type":"TypeString","optional":true,"description":"The URL for the repository","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Linux or Windows Web App Slot.","forceNew":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Slot use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `true` to disable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_gateway":{"schema":{"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"autoscale_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"max_capacity":{"type":"TypeInt","optional":true},"min_capacity":{"type":"TypeInt","required":true}}},"maxItems":1},"backend_address_pool":{"type":"TypeSet","required":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"backend_http_settings":{"type":"TypeSet","required":true,"elem":{"schema":{"affinity_cookie_name":{"type":"TypeString","optional":true},"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"connection_draining":{"type":"TypeList","optional":true,"elem":{"schema":{"drain_timeout_sec":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"cookie_based_affinity":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"pick_host_name_from_backend_address":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","required":true},"probe_id":{"type":"TypeString","computed":true},"probe_name":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"request_timeout":{"type":"TypeInt","optional":true,"default":30},"trusted_root_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"enable_http2":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"force_firewall_policy_association":{"type":"TypeBool","optional":true},"frontend_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"private_link_configuration_id":{"type":"TypeString","computed":true},"private_link_configuration_name":{"type":"TypeString","optional":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"minItems":1},"frontend_port":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true}}}},"gateway_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":2},"global":{"type":"TypeList","optional":true,"elem":{"schema":{"request_buffering_enabled":{"type":"TypeBool","required":true},"response_buffering_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"http_listener":{"type":"TypeSet","required":true,"elem":{"schema":{"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"firewall_policy_id":{"type":"TypeString","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_id":{"type":"TypeString","computed":true},"frontend_port_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"require_sni":{"type":"TypeBool","optional":true},"ssl_certificate_id":{"type":"TypeString","computed":true},"ssl_certificate_name":{"type":"TypeString","optional":true},"ssl_profile_id":{"type":"TypeString","computed":true},"ssl_profile_name":{"type":"TypeString","optional":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_link_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true}}}},"probe":{"type":"TypeSet","optional":true,"elem":{"schema":{"host":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"interval":{"type":"TypeInt","required":true},"match":{"type":"TypeList","optional":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"status_code":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"minimum_servers":{"type":"TypeInt","optional":true,"default":0},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"pick_host_name_from_backend_http_settings":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","optional":true},"protocol":{"type":"TypeString","required":true},"timeout":{"type":"TypeInt","required":true},"unhealthy_threshold":{"type":"TypeInt","required":true}}}},"redirect_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"include_path":{"type":"TypeBool","optional":true,"default":false},"include_query_string":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true},"target_listener_id":{"type":"TypeString","computed":true},"target_listener_name":{"type":"TypeString","optional":true},"target_url":{"type":"TypeString","optional":true}}}},"request_routing_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"http_listener_id":{"type":"TypeString","computed":true},"http_listener_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true},"rule_type":{"type":"TypeString","required":true},"url_path_map_id":{"type":"TypeString","computed":true},"url_path_map_name":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rewrite_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"rewrite_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"ignore_case":{"type":"TypeBool","optional":true,"default":false},"negate":{"type":"TypeBool","optional":true,"default":false},"pattern":{"type":"TypeString","required":true},"variable":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"request_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"response_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"rule_sequence":{"type":"TypeInt","required":true},"url":{"type":"TypeList","optional":true,"elem":{"schema":{"components":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","optional":true},"query_string":{"type":"TypeString","optional":true},"reroute":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"ssl_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"ssl_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"ssl_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"ssl_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"trusted_client_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verify_client_cert_issuer_dn":{"type":"TypeBool","optional":true,"default":false}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_client_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"trusted_root_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"url_path_map":{"type":"TypeList","optional":true,"elem":{"schema":{"default_backend_address_pool_id":{"type":"TypeString","computed":true},"default_backend_address_pool_name":{"type":"TypeString","optional":true},"default_backend_http_settings_id":{"type":"TypeString","computed":true},"default_backend_http_settings_name":{"type":"TypeString","optional":true},"default_redirect_configuration_id":{"type":"TypeString","computed":true},"default_redirect_configuration_name":{"type":"TypeString","optional":true},"default_rewrite_rule_set_id":{"type":"TypeString","computed":true},"default_rewrite_rule_set_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"paths":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true}}}}}}},"waf_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group_name":{"type":"TypeString","required":true},"rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}}}}},"enabled":{"type":"TypeBool","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"selector_match_operator":{"type":"TypeString","optional":true}}}},"file_upload_limit_mb":{"type":"TypeInt","optional":true,"default":100},"firewall_mode":{"type":"TypeString","required":true},"max_request_body_size_kb":{"type":"TypeInt","optional":true,"default":128},"request_body_check":{"type":"TypeBool","optional":true,"default":true},"rule_set_type":{"type":"TypeString","optional":true,"default":"OWASP"},"rule_set_version":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","required":true,"forceNew":true},"connection_string":{"type":"TypeString","computed":true},"daily_data_cap_in_gb":{"type":"TypeFloat","optional":true,"computed":true},"daily_data_cap_notifications_disabled":{"type":"TypeBool","optional":true,"computed":true},"disable_ip_masking":{"type":"TypeBool","optional":true,"default":false},"force_customer_storage_for_profiler":{"type":"TypeBool","optional":true,"default":false},"instrumentation_key":{"type":"TypeString","computed":true},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":90},"sampling_percentage":{"type":"TypeFloat","optional":true,"default":100},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_application_insights_analytics_item":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","required":true},"function_alias":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"time_created":{"type":"TypeString","computed":true},"time_modified":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_api_key":{"schema":{"api_key":{"type":"TypeString","computed":true},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"write_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_smart_detection_rule":{"schema":{"additional_email_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"send_emails_to_subscription_owners":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_standard_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","required":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"follow_redirects_enabled":{"type":"TypeBool","optional":true,"default":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"http_verb":{"type":"TypeString","optional":true,"default":"GET"},"parse_dependent_requests_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30},"validation_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"content":{"type":"TypeList","optional":true,"elem":{"schema":{"content_match":{"type":"TypeString","required":true},"ignore_case":{"type":"TypeBool","optional":true,"default":false},"pass_if_text_found":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"expected_status_code":{"type":"TypeInt","optional":true,"default":200},"ssl_cert_remaining_lifetime":{"type":"TypeInt","optional":true},"ssl_check_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"configuration":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook":{"schema":{"category":{"type":"TypeString","optional":true,"default":"workbook"},"data_json":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_id":{"type":"TypeString","optional":true,"default":"azure monitor"},"storage_container_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook_template":{"schema":{"author":{"type":"TypeString","optional":true},"galleries":{"type":"TypeList","required":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","optional":true,"default":0},"resource_type":{"type":"TypeString","optional":true,"default":"Azure Monitor"},"type":{"type":"TypeString","optional":true,"default":"workbook"}}},"minItems":1},"localized":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_data":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster":{"schema":{"agent_public_key_certificate":{"type":"TypeString","required":true,"forceNew":true},"agent_version":{"type":"TypeString","computed":true},"distribution":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"infrastructure":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"offering":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"total_core_count":{"type":"TypeInt","computed":true},"total_node_count":{"type":"TypeInt","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster_extension":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_machine_extension":{"schema":{"arc_machine_id":{"type":"TypeString","required":true,"forceNew":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true,"default":true},"force_update_tag":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_private_link_scope":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"open_enclave_policy_base64":{"type":"TypeString","optional":true},"policy":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"environment_type":{"type":"TypeString","optional":true}}}},"policy_signing_certificate_data":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sev_snp_policy_base64":{"type":"TypeString","optional":true},"sgx_enclave_policy_base64":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tpm_policy_base64":{"type":"TypeString","optional":true},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automanage_configuration":{"schema":{"antimalware":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusions":{"type":"TypeList","optional":true,"elem":{"schema":{"extensions":{"type":"TypeString","optional":true},"paths":{"type":"TypeString","optional":true},"processes":{"type":"TypeString","optional":true}}},"maxItems":1},"real_time_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_day":{"type":"TypeInt","optional":true,"default":8},"scheduled_scan_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_time_in_minutes":{"type":"TypeInt","optional":true,"default":0},"scheduled_scan_type":{"type":"TypeString","optional":true,"default":"Quick"}}},"maxItems":1},"automation_account_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_security_baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true,"default":"ApplyAndAutoCorrect"}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"instant_rp_retention_range_in_days":{"type":"TypeInt","optional":true,"default":5},"policy_name":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"daily_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Days"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_policy_type":{"type":"TypeString","optional":true,"default":"LongTermRetentionPolicy"},"weekly_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Weeks"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"schedule_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule_policy_type":{"type":"TypeString","optional":true,"default":"SimpleSchedulePolicy"},"schedule_run_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"schedule_run_frequency":{"type":"TypeString","optional":true,"default":"Daily"},"schedule_run_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"boot_diagnostics_enabled":{"type":"TypeBool","optional":true,"default":false},"defender_for_cloud_enabled":{"type":"TypeBool","optional":true,"default":false},"guest_configuration_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status_change_alert_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_account":{"schema":{"dsc_primary_access_key":{"type":"TypeString","computed":true},"dsc_secondary_access_key":{"type":"TypeString","computed":true},"dsc_server_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"key_source":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"base64":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"exportable":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"values":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"automation_certificate_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_classic_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_asset_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"subscription_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_service_principal":{"schema":{"application_id":{"type":"TypeString","required":true},"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_thumbprint":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_type":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"field":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"is_encrypted":{"type":"TypeBool","optional":true},"is_optional":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"is_global":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_credential":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_configuration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_embedded":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_verbose":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_nodeconfiguration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"configuration_name":{"type":"TypeString","computed":true},"content_embedded":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_hybrid_runbook_worker":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"ip":{"type":"TypeString","computed":true},"last_seen_date_time":{"type":"TypeString","computed":true},"registration_date_time":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"worker_group_name":{"type":"TypeString","required":true,"forceNew":true},"worker_id":{"type":"TypeString","required":true,"forceNew":true},"worker_name":{"type":"TypeString","computed":true},"worker_type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_hybrid_runbook_worker_group":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"credential_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_job_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"job_schedule_id":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on":{"type":"TypeString","optional":true,"forceNew":true},"runbook_name":{"type":"TypeString","required":true,"forceNew":true},"schedule_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_module":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"module_link":{"type":"TypeList","required":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_runbook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","optional":true,"computed":true},"description":{"type":"TypeString","optional":true},"draft":{"type":"TypeList","optional":true,"elem":{"schema":{"content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"creation_time":{"type":"TypeString","computed":true},"edit_mode_enabled":{"type":"TypeBool","optional":true},"last_modified_time":{"type":"TypeString","computed":true},"output_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true},"mandatory":{"type":"TypeBool","optional":true,"default":false},"position":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"job_schedule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"job_schedule_id":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_on":{"type":"TypeString","optional":true},"schedule_name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_activity_trace_level":{"type":"TypeInt","optional":true},"log_progress":{"type":"TypeBool","required":true},"log_verbose":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"runbook_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true,"computed":true},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"timezone":{"type":"TypeString","optional":true,"default":"Etc/UTC"},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_software_update_configuration":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"duration":{"type":"TypeString","optional":true,"default":"PT2H"},"error_code":{"type":"TypeString","computed":true},"error_meesage":{"type":"TypeString","computed":true},"error_message":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"non_azure_computer_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operating_system":{"type":"TypeString","optional":true,"computed":true},"post_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"pre_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"advanced_month_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"advanced_week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"creation_time":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"expiry_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"is_enabled":{"type":"TypeBool","optional":true,"default":true},"last_modified_time":{"type":"TypeString","computed":true},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}},"maxItems":1},"next_run":{"type":"TypeString","optional":true,"computed":true},"next_run_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"start_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true,"default":"Etc/UTC"}}},"maxItems":1},"target":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"locations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tag_filter":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeList","optional":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}}},"non_azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"function_alias":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_machine_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_automation_source_control":{"schema":{"automatic_sync":{"type":"TypeBool","optional":true,"default":false},"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"branch":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"folder_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_runbook_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_url":{"type":"TypeString","required":true},"security":{"type":"TypeList","required":true,"elem":{"schema":{"refresh_token":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"source_control_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_watcher":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"etag":{"type":"TypeString","optional":true},"execution_frequency_in_seconds":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script_name":{"type":"TypeString","required":true,"forceNew":true},"script_parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"script_run_on":{"type":"TypeString","required":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_webhook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiry_time":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on_worker_group":{"type":"TypeString","optional":true},"runbook_name":{"type":"TypeString","required":true},"uri":{"type":"TypeString","configMode":"Auto","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"default":3,"forceNew":true},"platform_update_domain_count":{"type":"TypeInt","optional":true,"default":5,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_container_storage_account":{"schema":{"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_file_share":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hourly":{"type":"TypeList","optional":true,"elem":{"schema":{"interval":{"type":"TypeInt","required":true},"start_time":{"type":"TypeString","required":true},"window_duration":{"type":"TypeInt","required":true}}},"maxItems":1},"time":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","required":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hour_duration":{"type":"TypeInt","optional":true},"hour_interval":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","required":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instant_restore_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prefix":{"type":"TypeString","required":true},"suffix":{"type":"TypeString","optional":true}}},"maxItems":1},"instant_restore_retention_days":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_type":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm_workload":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"protection_policy":{"type":"TypeSet","required":true,"elem":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","optional":true},"frequency_in_minutes":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","optional":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"policy_type":{"type":"TypeString","required":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"simple_retention":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1}}}},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeList","required":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1},"workload_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_protected_file_share":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_file_share_name":{"type":"TypeString","required":true,"forceNew":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":80,"read":5,"delete":80,"update":80}},"azurerm_backup_protected_vm":{"schema":{"backup_policy_id":{"type":"TypeString","optional":true},"exclude_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"protection_state":{"type":"TypeString","optional":true,"computed":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":80,"update":120}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","optional":true,"default":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ip_connect_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","optional":true,"default":2},"shareable_link_enabled":{"type":"TypeBool","optional":true,"default":false},"sku":{"type":"TypeString","optional":true,"default":"Basic"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"allowed_authentication_modes":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"account_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1},"node_management_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1}}},"maxItems":1},"pool_allocation_mode":{"type":"TypeString","optional":true,"default":"BatchService"},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_authentication_mode":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_account_node_identity":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"allow_updates":{"type":"TypeBool","optional":true,"default":true},"default_version":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate":{"type":"TypeString","required":true},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","optional":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","required":true,"forceNew":true},"thumbprint_algorithm":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_job":{"schema":{"batch_pool_id":{"type":"TypeString","required":true,"forceNew":true},"common_environment_properties":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"task_retry_maximum":{"type":"TypeInt","optional":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","optional":true,"default":"PT15M"},"formula":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"store_location":{"type":"TypeString","required":true},"store_name":{"type":"TypeString","optional":true},"visibility":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"type":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"data_disks":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"default":"ReadOnly"},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","required":true}}}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"extensions":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","optional":true}}}},"fixed_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"node_deallocation_method":{"type":"TypeString","optional":true},"resize_timeout":{"type":"TypeString","optional":true,"default":"PT15M"},"target_dedicated_nodes":{"type":"TypeInt","optional":true,"default":1},"target_low_priority_nodes":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inter_node_communication":{"type":"TypeString","optional":true,"default":"Enabled"},"license_type":{"type":"TypeString","optional":true},"max_tasks_per_node":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"account_name":{"type":"TypeString","required":true},"blobfuse_options":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"identity_id":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"sas_key":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"azure_file_url":{"type":"TypeString","required":true},"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true}}}},"cifs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"nfs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dynamic_vnet_assignment_scope":{"type":"TypeString","optional":true,"default":"none","forceNew":true},"endpoint_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port_range":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"access":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","required":true,"forceNew":true},"source_port_ranges":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString","default":"*"}}}}},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"public_address_provisioning_type":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"node_agent_sku_id":{"type":"TypeString","required":true,"forceNew":true},"node_placement":{"type":"TypeList","optional":true,"elem":{"schema":{"policy":{"type":"TypeString","optional":true,"default":"Regional"}}}},"os_disk_placement":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_task":{"type":"TypeList","optional":true,"elem":{"schema":{"command_line":{"type":"TypeString","required":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"run_options":{"type":"TypeString","optional":true},"working_directory":{"type":"TypeString","optional":true}}}},"resource_file":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","optional":true},"blob_prefix":{"type":"TypeString","optional":true},"file_mode":{"type":"TypeString","optional":true},"file_path":{"type":"TypeString","optional":true},"http_url":{"type":"TypeString","optional":true},"storage_container_url":{"type":"TypeString","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"task_retry_maximum":{"type":"TypeInt","optional":true},"user_identity":{"type":"TypeList","required":true,"elem":{"schema":{"auto_user":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","optional":true,"default":"NonAdmin"},"scope":{"type":"TypeString","optional":true,"default":"Task"}}},"maxItems":1},"user_name":{"type":"TypeString","optional":true}}},"maxItems":1},"wait_for_success":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"stop_pending_resize_operation":{"type":"TypeBool","optional":true,"default":false},"storage_image_reference":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"target_node_communication_mode":{"type":"TypeString","optional":true},"task_scheduling_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","optional":true,"computed":true}}}},"user_accounts":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","required":true},"linux_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gid":{"type":"TypeInt","optional":true},"ssh_private_key":{"type":"TypeString","optional":true},"uid":{"type":"TypeInt","optional":true}}}},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"windows_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}}}}}},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_billing_account_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"billing_account_id":{"type":"TypeString","required":true,"forceNew":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_blueprint_assignment":{"schema":{"blueprint_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_exclude_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":200},"lock_exclude_principals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"lock_mode":{"type":"TypeString","optional":true,"default":"None"},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeString","optional":true},"target_subscription_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","computed":true},"version_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_bot_channel_alexa":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skill_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_direct_line_speech":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"cognitive_service_access_key":{"type":"TypeString","required":true},"cognitive_service_location":{"type":"TypeString","required":true},"custom_speech_model_id":{"type":"TypeString","optional":true},"custom_voice_deployment_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_directline":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site":{"type":"TypeSet","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"enhanced_authentication_enabled":{"type":"TypeBool","optional":true,"default":false},"id":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key2":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"trusted_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"v1_allowed":{"type":"TypeBool","optional":true,"default":true},"v3_allowed":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_email":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"email_address":{"type":"TypeString","required":true},"email_password":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_facebook":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"facebook_application_id":{"type":"TypeString","required":true},"facebook_application_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"page":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_line":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"line_channel":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"secret":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_ms_teams":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"calling_web_hook":{"type":"TypeString","optional":true,"computed":true},"enable_calling":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_slack":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"landing_page_url":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signing_secret":{"type":"TypeString","optional":true},"verification_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_sms":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sms_channel_account_security_id":{"type":"TypeString","required":true},"sms_channel_auth_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_web_chat":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channels_registration":{"schema":{"cmk_key_vault_url":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"icon_url":{"type":"TypeString","optional":true,"computed":true},"isolated_network_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_connection":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeString","optional":true},"service_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_service_azure_bot":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true},"developer_app_insights_key":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_msi_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_type":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_web_app":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint":{"schema":{"content_types_to_compress":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"post_arg_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}}},"fqdn":{"type":"TypeString","computed":true},"geo_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"country_codes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"relative_path":{"type":"TypeString","required":true}}}},"global_delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_compression_enabled":{"type":"TypeBool","optional":true},"is_http_allowed":{"type":"TypeBool","optional":true,"default":true},"is_https_allowed":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimization_type":{"type":"TypeString","optional":true},"origin":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true,"forceNew":true},"http_port":{"type":"TypeInt","optional":true,"default":80,"forceNew":true},"https_port":{"type":"TypeInt","optional":true,"default":443,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"origin_host_header":{"type":"TypeString","optional":true},"origin_path":{"type":"TypeString","optional":true,"computed":true},"probe_path":{"type":"TypeString","optional":true,"computed":true},"profile_name":{"type":"TypeString","required":true,"forceNew":true},"querystring_caching_behaviour":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint_custom_domain":{"schema":{"cdn_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_type":{"type":"TypeString","required":true},"protocol_type":{"type":"TypeString","required":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"user_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","optional":true,"computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"computed":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"dns_zone_id":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tls":{"type":"TypeList","required":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","optional":true,"computed":true},"certificate_type":{"type":"TypeString","optional":true,"default":"ManagedCertificate"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain_association":{"schema":{"cdn_frontdoor_custom_domain_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_route_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin":{"schema":{"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name_check_enabled":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","optional":true,"computed":true},"health_probes_enabled":{"type":"TypeBool","optional":true,"computed":true},"host_name":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","optional":true,"default":80},"https_port":{"type":"TypeInt","optional":true,"default":443},"name":{"type":"TypeString","required":true,"forceNew":true},"origin_host_header":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","optional":true,"default":1},"private_link":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"private_link_target_id":{"type":"TypeString","required":true},"request_message":{"type":"TypeString","optional":true,"default":"Access request for CDN FrontDoor Private Link Origin"},"target_type":{"type":"TypeString","optional":true}}},"maxItems":1},"weight":{"type":"TypeInt","optional":true,"default":500}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"health_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"protocol":{"type":"TypeString","required":true},"request_type":{"type":"TypeString","optional":true,"default":"HEAD"}}},"maxItems":1},"load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","optional":true,"default":50},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","optional":true,"default":10},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","optional":true,"default":120},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route":{"schema":{"cache":{"type":"TypeList","optional":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"content_types_to_compress":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"query_string_caching_behavior":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"query_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"cdn_frontdoor_custom_domain_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true},"cdn_frontdoor_origin_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_origin_path":{"type":"TypeString","optional":true},"cdn_frontdoor_rule_set_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"https_redirect_enabled":{"type":"TypeBool","optional":true,"default":true},"link_to_default_domain":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"supported_protocols":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route_disable_link_to_default_domain":{"schema":{"cdn_frontdoor_custom_domain_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_route_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"route_configuration_override_action":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_behavior":{"type":"TypeString","optional":true},"cache_duration":{"type":"TypeString","optional":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","optional":true},"compression_enabled":{"type":"TypeBool","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true},"query_string_caching_behavior":{"type":"TypeString","optional":true},"query_string_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":100}}},"maxItems":1},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_fragment":{"type":"TypeString","optional":true,"default":""},"destination_hostname":{"type":"TypeString","required":true},"destination_path":{"type":"TypeString","optional":true,"default":""},"query_string":{"type":"TypeString","optional":true,"default":""},"redirect_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":false},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"behavior_on_match":{"type":"TypeString","optional":true,"default":"Continue"},"cdn_frontdoor_rule_set_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_rule_set_name":{"type":"TypeString","computed":true},"conditions":{"type":"TypeList","optional":true,"elem":{"schema":{"client_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"cookie_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"host_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":4},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"is_device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"post_args_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"post_args_name":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString","default":"HTTP"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"server_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"socket_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"ssl_protocol_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":3},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_filename_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_profile_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_frontdoor_security_policy":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"security_policies":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"firewall":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"association":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"domain":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"active":{"type":"TypeBool","computed":true},"cdn_frontdoor_domain_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":500},"patterns_to_match":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}}},"maxItems":1},"cdn_frontdoor_firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account":{"schema":{"custom_question_answering_search_service_id":{"type":"TypeString","optional":true},"custom_question_answering_search_service_key":{"type":"TypeString","optional":true},"custom_subdomain_name":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"dynamic_throttling_enabled":{"type":"TypeBool","optional":true},"endpoint":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metrics_advisor_aad_client_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_aad_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_super_user_name":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_website_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"qna_runtime_endpoint":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"storage":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account_customer_managed_key":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_deployment":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"model":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"format":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"rai_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"scale":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"family":{"type":"TypeString","optional":true,"forceNew":true},"size":{"type":"TypeString","optional":true,"forceNew":true},"tier":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","optional":true,"default":"United States","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","required":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"minItems":1},"certificate_based_security_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"pem_public_key":{"type":"TypeString","required":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_management_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to host this Container App.","forceNew":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The Dapr Application Identifier."},"app_port":{"type":"TypeInt","optional":true,"description":"The port which the application is listening on. This is the same as the `ingress` port."},"app_protocol":{"type":"TypeString","optional":true,"default":"http","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`."}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","optional":true,"default":false,"description":"Should this ingress allow insecure connections?"},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","optional":true,"default":"Disabled","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`"},"certificate_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate."}}},"maxItems":1},"external_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Is this an external Ingress."},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","required":true,"description":"The target port on the container for the Ingress traffic."},"traffic_weight":{"type":"TypeList","required":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"description":"The label to apply to the revision as a name prefix for routing traffic."},"latest_revision":{"type":"TypeBool","optional":true,"default":false,"description":"This traffic Weight relates to the latest stable Container Revision."},"percentage":{"type":"TypeInt","required":true,"description":"The percentage of traffic to send to this revision."},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted."}}}},"transport":{"type":"TypeString","optional":true,"default":"auto","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`"}}},"maxItems":1},"latest_revision_fqdn":{"type":"TypeString","description":"The FQDN of the Latest Revision of the Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"The name for this Container App.","forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true,"description":"ID of the System or User Managed Identity used to pull images from the Container Registry"},"password_secret_name":{"type":"TypeString","optional":true,"description":"The name of the Secret Reference containing the password value for this user on the Container Registry."},"server":{"type":"TypeString","required":true,"description":"The hostname for the Container Registry."},"username":{"type":"TypeString","optional":true,"description":"The username to use for this Container Registry."}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision_mode":{"type":"TypeString","required":true},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeList","required":true,"elem":{"schema":{"args":{"type":"TypeList","optional":true,"description":"A list of args to pass to the container.","elem":{"type":"TypeString"}},"command":{"type":"TypeList","optional":true,"description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`"},"env":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the environment variable for the container."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of the secret that contains the value for this environment variable."},"value":{"type":"TypeString","optional":true,"description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used"}}},"minItems":1},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","required":true,"description":"The image to use to create the container."},"liveness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"initial_delay":{"type":"TypeInt","optional":true,"default":1,"description":"The time in seconds to wait after the container has started before the probe is started."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"memory":{"type":"TypeString","required":true,"description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`"},"name":{"type":"TypeString","required":true,"description":"The name of the container."},"readiness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"success_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`."},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"startup_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"volume_mounts":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Volume to be mounted in the container."},"path":{"type":"TypeString","required":true,"description":"The path in the container at which to mount this volume."}}}}}},"minItems":1},"max_replicas":{"type":"TypeInt","optional":true,"default":10,"description":"The maximum number of replicas for this container."},"min_replicas":{"type":"TypeInt","optional":true,"description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment":{"schema":{"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","optional":true,"description":"The existing Subnet to use for the Container Apps Control Plane. **NOTE:** The Subnet must have a `/21` or larger address space.","forceNew":true},"internal_load_balancer_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Container Environment operate in Internal Load Balancing Mode? Defaults to `false`. **Note:** can only be set to `true` if `infrastructure_subnet_id` is specified.","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true,"description":"The ID for the Log Analytics Workspace to link this Container Apps Managed Environment to.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment.","forceNew":true},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_certificate":{"schema":{"certificate_blob_base64":{"type":"TypeString","required":true,"description":"The Certificate Private Key as a base64 encoded PFX or PEM.","forceNew":true},"certificate_password":{"type":"TypeString","required":true,"description":"The password for the Certificate.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Environment Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_dapr_component":{"schema":{"component_type":{"type":"TypeString","required":true,"description":"The Dapr Component Type. For example `state.azure.blobstorage`.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Dapr component on.","forceNew":true},"ignore_errors":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Dapr sidecar to continue initialisation if the component fails to load. Defaults to `false`"},"init_timeout":{"type":"TypeString","optional":true,"default":"5s","description":"The component initialisation timeout in ISO8601 format. e.g. `5s`, `2h`, `1m`. Defaults to `5s`."},"metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Metadata configuration item."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of a secret specified in the `secrets` block that contains the value for this metadata configuration item."},"value":{"type":"TypeString","optional":true,"description":"The value for this metadata configuration item."}}},"minItems":1},"name":{"type":"TypeString","required":true,"description":"The name for this Dapr Component.","forceNew":true},"scopes":{"type":"TypeList","optional":true,"description":"A list of scopes to which this component applies. e.g. a Container App's `dapr.app_id` value.","elem":{"type":"TypeString"},"minItems":1},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"version":{"type":"TypeString","required":true,"description":"The version of the component."}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_storage":{"schema":{"access_key":{"type":"TypeString","required":true,"description":"The Storage Account Access Key."},"access_mode":{"type":"TypeString","required":true,"description":"The access mode to connect this storage to the Container App. Possible values include `ReadOnly` and `ReadWrite`.","forceNew":true},"account_name":{"type":"TypeString","required":true,"description":"The Azure Storage Account in which the Share to be used is located.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to which this storage belongs.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name for this Storage.","forceNew":true},"share_name":{"type":"TypeString","required":true,"description":"The name of the Azure Storage Share to use.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_connected_registry":{"schema":{"audit_log_enabled":{"type":"TypeBool","optional":true,"default":false},"client_token_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"log_level":{"type":"TypeString","optional":true,"default":"None"},"mode":{"type":"TypeString","optional":true,"default":"ReadWrite","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"digest":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tag":{"type":"TypeString","optional":true}}}},"parent_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"sync_message_ttl":{"type":"TypeString","optional":true,"default":"P1D"},"sync_schedule":{"type":"TypeString","optional":true,"default":"* * * * *"},"sync_token_id":{"type":"TypeString","required":true,"forceNew":true},"sync_window":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_group":{"schema":{"container":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"forceNew":true},"cpu_limit":{"type":"TypeFloat","optional":true},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"gpu":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"gpu_limit":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"sku":{"type":"TypeString","optional":true}}},"maxItems":1},"image":{"type":"TypeString","required":true,"forceNew":true},"liveness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"memory":{"type":"TypeFloat","required":true,"forceNew":true},"memory_limit":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ports":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"readiness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"diagnostics":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"log_analytics":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"log_type":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_key":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"dns_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"nameservers":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"options":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"search_domains":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"dns_name_label":{"type":"TypeString","optional":true,"forceNew":true},"dns_name_label_reuse_policy":{"type":"TypeString","optional":true,"default":"Unsecure"},"exposed_port":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_registry_credential":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"username":{"type":"TypeString","optional":true,"forceNew":true}}}},"init_container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"ip_address":{"type":"TypeString","computed":true},"ip_address_type":{"type":"TypeString","optional":true,"default":"Public","forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile_id":{"type":"TypeString","optional":true,"computed":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restart_policy":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"subnet_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"anonymous_pull_enabled":{"type":"TypeBool","optional":true},"data_endpoint_enabled":{"type":"TypeBool","optional":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"identity_client_id":{"type":"TypeString","required":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"georeplications":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true},"regional_endpoint_enabled":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_bypass_option":{"type":"TypeString","optional":true,"default":"AzureServices"},"network_rule_set":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_range":{"type":"TypeString","required":true}}}},"virtual_network":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"quarantine_policy_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trust_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_agent_pool":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"default":"S1","forceNew":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task":{"schema":{"agent_pool_name":{"type":"TypeString","optional":true},"agent_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"cpu":{"type":"TypeInt","required":true}}},"maxItems":1},"base_image_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"update_trigger_endpoint":{"type":"TypeString","optional":true},"update_trigger_payload_type":{"type":"TypeString","optional":true}}},"maxItems":1},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"docker_step":{"type":"TypeList","optional":true,"elem":{"schema":{"arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"cache_enabled":{"type":"TypeBool","optional":true,"default":true},"context_access_token":{"type":"TypeString","required":true},"context_path":{"type":"TypeString","required":true},"dockerfile_path":{"type":"TypeString","required":true},"image_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"push_enabled":{"type":"TypeBool","optional":true,"default":true},"secret_arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target":{"type":"TypeString","optional":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"encoded_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_content":{"type":"TypeString","required":true},"value_content":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"file_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_file_path":{"type":"TypeString","required":true},"value_file_path":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"is_system_task":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"log_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"architecture":{"type":"TypeString","optional":true},"os":{"type":"TypeString","required":true},"variant":{"type":"TypeString","optional":true}}},"maxItems":1},"registry_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"custom":{"type":"TypeSet","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"username":{"type":"TypeString","optional":true}}}},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"source_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"expire_in_seconds":{"type":"TypeInt","optional":true},"refresh_token":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"repository_url":{"type":"TypeString","required":true},"source_type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":3600},"timer_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task_schedule_run_now":{"schema":{"container_registry_task_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_map_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_token_password":{"schema":{"container_registry_token_id":{"type":"TypeString","required":true,"forceNew":true},"password1":{"type":"TypeList","required":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1},"password2":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_webhook":{"schema":{"actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"custom_headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"registry_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":""},"service_uri":{"type":"TypeString","required":true},"status":{"type":"TypeString","optional":true,"default":"enabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_account":{"schema":{"access_key_metadata_writes_enabled":{"type":"TypeBool","optional":true,"default":true},"analytical_storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"schema_type":{"type":"TypeString","required":true}}},"maxItems":1},"analytical_storage_enabled":{"type":"TypeBool","optional":true,"default":false},"backup":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"interval_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"retention_in_hours":{"type":"TypeInt","optional":true,"computed":true},"storage_redundancy":{"type":"TypeString","optional":true,"computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"capabilities":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}},"capacity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"total_throughput_limit":{"type":"TypeInt","required":true}}},"maxItems":1},"connection_strings":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"consistency_policy":{"type":"TypeList","required":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","required":true},"max_interval_in_seconds":{"type":"TypeInt","optional":true,"computed":true},"max_staleness_prefix":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"create_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"default_identity_type":{"type":"TypeString","optional":true,"default":"FirstPartyIdentity"},"enable_automatic_failover":{"type":"TypeBool","optional":true,"default":false},"enable_free_tier":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"enable_multiple_write_locations":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeSet","required":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","required":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_range_filter":{"type":"TypeString","optional":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"kind":{"type":"TypeString","optional":true,"default":"GlobalDocumentDB","forceNew":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"mongo_server_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acl_bypass_for_azure_services":{"type":"TypeBool","optional":true,"default":false},"network_acl_bypass_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"offer_type":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"primary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"primary_sql_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"elem":{"schema":{"database":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"collection_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"restore_timestamp_in_utc":{"type":"TypeString","required":true,"forceNew":true},"source_cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"secondary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"secondary_sql_connection_string":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_cassandra_cluster":{"schema":{"authentication_method":{"type":"TypeString","optional":true,"default":"Cassandra"},"client_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_admin_password":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"external_gossip_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"external_seed_node_ip_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"hours_between_backups":{"type":"TypeInt","optional":true,"default":24},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repair_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"3.11","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_datacenter":{"schema":{"availability_zones_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_storage_customer_key_uri":{"type":"TypeString","optional":true},"base64_encoded_yaml_fragment":{"type":"TypeString","optional":true},"cassandra_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"disk_count":{"type":"TypeInt","optional":true},"disk_sku":{"type":"TypeString","optional":true,"default":"P30"},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_customer_key_uri":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"default":3},"sku_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_cosmosdb_cassandra_keyspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_table":{"schema":{"analytical_storage_ttl":{"type":"TypeInt","optional":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cassandra_keyspace_id":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schema":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_key":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"order_by":{"type":"TypeString","required":true}}}},"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"partition_key":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_graph":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"index_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"automatic":{"type":"TypeBool","optional":true,"default":true},"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"included_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"indexing_mode":{"type":"TypeString","required":true},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_collection":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl_seconds":{"type":"TypeInt","optional":true},"index":{"type":"TypeSet","optional":true,"elem":{"schema":{"keys":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","optional":true,"default":false}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shard_key":{"type":"TypeString","optional":true,"forceNew":true},"system_indexes":{"type":"TypeList","computed":true,"elem":{"schema":{"keys":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","computed":true}}}},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_role_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"privilege":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource":{"type":"TypeList","required":true,"elem":{"schema":{"collection_name":{"type":"TypeString","optional":true},"db_name":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"role_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_user_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_notebook_workspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_endpoint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_postgresql_cluster":{"schema":{"administrator_login_password":{"type":"TypeString","required":true},"citus_version":{"type":"TypeString","optional":true,"computed":true},"coordinator_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":true},"coordinator_server_edition":{"type":"TypeString","optional":true,"default":"GeneralPurpose"},"coordinator_storage_quota_in_mb":{"type":"TypeInt","required":true},"coordinator_vcore_count":{"type":"TypeInt","required":true},"earliest_restore_time":{"type":"TypeString","computed":true},"ha_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","required":true},"node_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":false},"node_server_edition":{"type":"TypeString","optional":true,"default":"MemoryOptimized"},"node_storage_quota_in_mb":{"type":"TypeInt","optional":true,"computed":true},"node_vcores":{"type":"TypeInt","optional":true,"computed":true},"point_in_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"preferred_primary_zone":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shards_on_coordinator_enabled":{"type":"TypeBool","optional":true,"computed":true},"source_location":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"sql_version":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_postgresql_coordinator_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_firewall_rule":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_node_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_role":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_sql_container":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"indexing_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"included_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"indexing_mode":{"type":"TypeString","optional":true,"default":"consistent"},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_dedicated_gateway":{"schema":{"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","required":true},"instance_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_function":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_assignment":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"assignable_scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeSet","required":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"CustomRole","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_stored_procedure":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_trigger":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operation":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_table":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_anomaly_alert":{"schema":{"display_name":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"email_subject":{"type":"TypeString","required":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_management_scheduled_action":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name":{"type":"TypeString","required":true},"email_address_sender":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":20,"minItems":1},"email_subject":{"type":"TypeString","required":true},"end_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","optional":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_date":{"type":"TypeString","required":true},"view_id":{"type":"TypeString","required":true,"forceNew":true},"weeks_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_custom_ip_prefix":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"commissioning_enabled":{"type":"TypeBool","optional":true,"default":false},"internet_advertising_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_custom_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roa_validity_end_date":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wan_validation_signed_message":{"type":"TypeString","optional":true,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":540,"read":5,"delete":1020,"update":1020}},"azurerm_custom_provider":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_type":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"routing_type":{"type":"TypeString","optional":true,"default":"Proxy"}}}},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validation":{"type":"TypeSet","optional":true,"elem":{"schema":{"specification":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard_grafana":{"schema":{"api_key_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse"},"azure_monitor_workspace_integrations":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"deterministic_outbound_ip_enabled":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"grafana_version":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory":{"schema":{"customer_managed_key_id":{"type":"TypeString","optional":true},"customer_managed_key_identity_id":{"type":"TypeString","optional":true},"github_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"global_parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_custom_dataset":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_azure_blob":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_binary":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sftp_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_cosmosdb_sqlapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"collection_name":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_delimited_text":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_fs_location":{"type":"TypeList","optional":true,"elem":{"schema":{"file_system":{"type":"TypeString","required":true},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"column_delimiter":{"type":"TypeString","optional":true,"default":","},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"escape_character":{"type":"TypeString","optional":true,"default":"\\"},"first_row_as_header":{"type":"TypeBool","optional":true,"default":false},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"null_value":{"type":"TypeString","optional":true,"default":""},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"quote_character":{"type":"TypeString","optional":true,"default":"\""},"row_delimiter":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_http":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"relative_url":{"type":"TypeString","optional":true},"request_body":{"type":"TypeString","optional":true},"request_method":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_json":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_parquet":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precision":{"type":"TypeInt","optional":true},"scale":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","optional":true}}}},"schema_name":{"type":"TypeString","optional":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_sql_server_table":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_flowlet_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure":{"schema":{"cleanup_enabled":{"type":"TypeBool","optional":true,"computed":true},"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0},"virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure_ssis":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"dual_standby_pair_name":{"type":"TypeString","optional":true},"elastic_pool_name":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"express_custom_setup":{"type":"TypeList","optional":true,"elem":{"schema":{"command_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"password":{"type":"TypeString","optional":true},"target_name":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"component":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_license":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"environment":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"powershell_version":{"type":"TypeString","optional":true}}},"maxItems":1},"express_vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"package_store":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","optional":true},"self_hosted_integration_runtime_name":{"type":"TypeString","required":true},"staging_storage_linked_service_name":{"type":"TypeString","required":true}}},"maxItems":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"public_ips":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2},"subnet_id":{"type":"TypeString","optional":true},"subnet_name":{"type":"TypeString","optional":true},"vnet_id":{"type":"TypeString","optional":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_managed":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true,"default":"Basic"},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","required":true},"vnet_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_self_hosted":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_authorization_key":{"type":"TypeString","computed":true},"rbac_authorization":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"secondary_authorization_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_custom_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_blob_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"connection_string_insecure":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_sas_token":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sas_uri":{"type":"TypeString","optional":true},"service_endpoint":{"type":"TypeString","optional":true},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"service_principal_linked_key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_kind":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_databricks":{"schema":{"access_token":{"type":"TypeString","optional":true},"adb_domain":{"type":"TypeString","required":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"existing_cluster_id":{"type":"TypeString","optional":true},"instance_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"instance_pool_id":{"type":"TypeString","required":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":1}}},"maxItems":1},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"msi_work_space_resource_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"new_cluster_config":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"custom_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"driver_node_type":{"type":"TypeString","optional":true},"init_scripts":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"log_destination":{"type":"TypeString","optional":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":"1"},"node_type":{"type":"TypeString","required":true},"spark_config":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"spark_environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_file_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"file_share":{"type":"TypeString","optional":true},"host":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"user_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_function":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key":{"type":"TypeString","optional":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_search":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted_credential":{"type":"TypeString","computed":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"search_service_key":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_sql_database":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_table_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb":{"schema":{"account_endpoint":{"type":"TypeString","optional":true},"account_key":{"type":"TypeString","optional":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb_mongoapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"server_version_is_32_or_higher":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_data_lake_storage_gen2":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"storage_account_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_key_vault":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_kusto":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"kusto_database_name":{"type":"TypeString","required":true},"kusto_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odata":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odbc":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sftp":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"host":{"type":"TypeString","required":true},"host_key_fingerprint":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true},"skip_host_key_validation":{"type":"TypeBool","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sql_server":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_synapse":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_web":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_managed_private_endpoint":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"fqdns":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_factory_pipeline":{"schema":{"activities_json":{"type":"TypeString","optional":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"concurrency":{"type":"TypeInt","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"moniter_metrics_after_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_blob_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"blob_path_begins_with":{"type":"TypeString","optional":true},"blob_path_ends_with":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"ignore_empty_blobs":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_custom_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"eventgrid_topic_id":{"type":"TypeString","required":true,"forceNew":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_schedule":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","optional":true,"default":"Minute"},"interval":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"pipeline_name":{"type":"TypeString","optional":true,"computed":true},"pipeline_parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":7},"hours":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","optional":true},"weekday":{"type":"TypeString","required":true}}},"minItems":1}}},"maxItems":1,"minItems":1},"start_time":{"type":"TypeString","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_tumbling_window":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"delay":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true,"forceNew":true},"interval":{"type":"TypeInt","required":true,"forceNew":true},"max_concurrency":{"type":"TypeInt","optional":true,"default":50},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retry":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeInt","optional":true,"default":30}}},"maxItems":1},"start_time":{"type":"TypeString","required":true,"forceNew":true},"trigger_dependency":{"type":"TypeSet","optional":true,"elem":{"schema":{"offset":{"type":"TypeString","optional":true},"size":{"type":"TypeString","optional":true},"trigger_name":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_blob_storage":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_disk":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"disk_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_postgresql":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"database_credential_key_vault_secret_id":{"type":"TypeString","optional":true},"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_blob_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"retention_duration":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_disk":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_postgresql":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true},"days_of_week":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"months_of_year":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"scheduled_backup_times":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"weeks_of_month":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redundancy":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_resource_guard":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vault_critical_operation_exclusion_list":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}},"maxItems":1},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","required":true,"forceNew":true},"data_share_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"file_system_name":{"type":"TypeString","required":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"source_platform":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_order":{"schema":{"contact":{"type":"TypeList","required":true,"elem":{"schema":{"company_name":{"type":"TypeString","required":true,"forceNew":true},"emails":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"device_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"return_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"serial_number":{"type":"TypeString","computed":true},"shipment_address":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3},"city":{"type":"TypeString","required":true,"forceNew":true},"country":{"type":"TypeString","required":true,"forceNew":true},"postal_code":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"shipment_history":{"type":"TypeSet","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}},"shipment_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"status":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"info":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_access_connector":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_virtual_network_peering":{"schema":{"address_space_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_address_space_prefixes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_id":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace":{"schema":{"custom_parameters":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"machine_learning_workspace_id":{"type":"TypeString","optional":true,"forceNew":true},"nat_gateway_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"no_public_ip":{"type":"TypeBool","optional":true,"computed":true},"private_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"private_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"public_ip_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"public_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_sku_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vnet_address_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_encryption_set_id":{"type":"TypeString","computed":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"load_balancer_backend_address_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"managed_disk_cmk_rotation_to_latest_version_enabled":{"type":"TypeBool","optional":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"managed_resource_group_id":{"type":"TypeString","computed":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_services_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules_required":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_root_dbfs_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor":{"schema":{"datadog_organization":{"type":"TypeList","required":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true,"forceNew":true},"application_key":{"type":"TypeString","required":true,"forceNew":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","computed":true},"linking_auth_code":{"type":"TypeString","optional":true,"forceNew":true},"linking_client_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"redirect_uri":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"marketplace_subscription_status":{"type":"TypeString","computed":true},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_sso_configuration":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"enterprise_application_id":{"type":"TypeString","required":true},"login_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"default"},"single_sign_on_enabled":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_tag_rule":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"log":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_log_enabled":{"type":"TypeBool","optional":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_log_enabled":{"type":"TypeBool","optional":true},"subscription_log_enabled":{"type":"TypeBool","optional":true}}}},"metric":{"type":"TypeList","optional":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","optional":true,"default":"default"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_hardware_security_module":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"management_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"stamp_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host":{"schema":{"auto_replace_on_failure":{"type":"TypeBool","optional":true,"default":true},"dedicated_host_group_id":{"type":"TypeString","required":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain":{"type":"TypeInt","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_global_vm_shutdown_schedule":{"schema":{"daily_recurrence_time":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"time_in_minutes":{"type":"TypeInt","optional":true,"default":30},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","optional":true,"default":"Premium"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_linux_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_policy":{"schema":{"description":{"type":"TypeString","optional":true},"evaluator_type":{"type":"TypeString","required":true,"forceNew":true},"fact_data":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_set_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threshold":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_schedule":{"schema":{"daily_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true}}},"maxItems":1},"hourly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true}}},"maxItems":1},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"status":{"type":"TypeString","optional":true,"default":"Disabled"},"time_in_minutes":{"type":"TypeInt","optional":true},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Disabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_type":{"type":"TypeString","required":true},"time_zone_id":{"type":"TypeString","required":true},"weekly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_virtual_network":{"schema":{"description":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"use_in_virtual_machine_creation":{"type":"TypeString","optional":true,"default":"Allow"},"use_public_ip_address":{"type":"TypeString","optional":true,"default":"Allow"}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_windows_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventgrid":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventgrid_topic_endpoint":{"type":"TypeString","required":true},"eventgrid_topic_primary_access_key":{"type":"TypeString","required":true},"eventgrid_topic_secondary_access_key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventhub":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_primary_connection_string":{"type":"TypeString","required":true},"eventhub_secondary_connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_servicebus":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_primary_connection_string":{"type":"TypeString","required":true},"servicebus_secondary_connection_string":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_time_series_database_connection":{"schema":{"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_consumer_group_name":{"type":"TypeString","optional":true,"default":"$Default","forceNew":true},"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_uri":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_name":{"type":"TypeString","required":true,"forceNew":true},"kusto_table_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_disk_access":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_type":{"type":"TypeString","optional":true,"default":"EncryptionAtRestWithCustomerKey","forceNew":true},"federated_client_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_disk_pool":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_pool_iscsi_target":{"schema":{"acl_mode":{"type":"TypeString","required":true,"forceNew":true},"disks_pool_id":{"type":"TypeString","required":true,"forceNew":true},"endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","computed":true},"target_iqn":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_iscsi_target_lun":{"schema":{"disk_pool_managed_disk_attachment_id":{"type":"TypeString","required":true,"forceNew":true},"iscsi_target_id":{"type":"TypeString","required":true,"forceNew":true},"lun":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_managed_disk_attachment":{"schema":{"disk_pool_id":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"flags":{"type":"TypeInt","required":true},"tag":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","optional":true,"computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":300},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","required":true,"forceNew":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_azuread_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_email_communication_service":{"schema":{"data_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain":{"schema":{"auto_create_topic_with_first_subscription":{"type":"TypeBool","optional":true,"default":true},"auto_delete_topic_with_last_subscription":{"type":"TypeBool","optional":true,"default":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_eventgrid_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_arm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"system_topic":{"type":"TypeString","required":true,"forceNew":true},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub":{"schema":{"capture_description":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeList","required":true,"elem":{"schema":{"archive_name_format":{"type":"TypeString","required":true},"blob_container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"encoding":{"type":"TypeString","required":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":300},"size_limit_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"skip_empty_archives":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"message_retention":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","required":true,"forceNew":true},"partition_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":300,"update":30}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity":{"type":"TypeInt","optional":true,"default":1},"dedicated_cluster_id":{"type":"TypeString","optional":true,"forceNew":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_throughput_units":{"type":"TypeInt","optional":true,"computed":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rulesets":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_service_access_enabled":{"type":"TypeBool","optional":true},"virtual_network_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"ignore_missing_virtual_network_service_endpoint":{"type":"TypeBool","optional":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":128}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_customer_managed_key":{"schema":{"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"key_vault_key_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_disaster_recovery_config":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_schema_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"schema_compatibility":{"type":"TypeString","required":true,"forceNew":true},"schema_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_express_route_circuit":{"schema":{"allow_classic_operations":{"type":"TypeBool","optional":true,"default":false},"authorization_key":{"type":"TypeString","optional":true},"bandwidth_in_gbps":{"type":"TypeFloat","optional":true},"bandwidth_in_mbps":{"type":"TypeInt","optional":true},"express_route_port_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","optional":true,"forceNew":true},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"family":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_connection":{"schema":{"address_prefix_ipv4":{"type":"TypeString","required":true,"forceNew":true},"address_prefix_ipv6":{"type":"TypeString","optional":true},"authorization_key":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_peering_id":{"type":"TypeString","required":true,"forceNew":true},"peering_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_peering":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_manager_etag":{"type":"TypeString","computed":true},"ipv4_enabled":{"type":"TypeBool","optional":true,"default":true},"ipv6":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"microsoft_peering":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"primary_peer_address_prefix":{"type":"TypeString","required":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_peer_address_prefix":{"type":"TypeString","required":true}}},"maxItems":1},"microsoft_peering_config":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"peer_asn":{"type":"TypeInt","optional":true,"computed":true},"peering_type":{"type":"TypeString","required":true},"primary_azure_port":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_azure_port":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","optional":true},"shared_key":{"type":"TypeString","optional":true},"vlan_id":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"enable_internet_security":{"type":"TypeBool","optional":true},"express_route_circuit_peering_id":{"type":"TypeString","required":true,"forceNew":true},"express_route_gateway_bypass_enabled":{"type":"TypeBool","optional":true,"default":false},"express_route_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"routing_weight":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_gateway":{"schema":{"allow_non_virtual_wan_traffic":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_express_route_port":{"schema":{"bandwidth_in_gbps":{"type":"TypeInt","required":true,"forceNew":true},"billing_type":{"type":"TypeString","optional":true,"computed":true},"encapsulation":{"type":"TypeString","required":true,"forceNew":true},"ethertype":{"type":"TypeString","computed":true},"guid":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"link1":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"link2":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mtu":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_port_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_port_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_federated_identity_credential":{"schema":{"audience":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"issuer":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"firewall_policy_id":{"type":"TypeString","optional":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_ip_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"sku_tier":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","optional":true,"computed":true},"virtual_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","optional":true,"default":1},"virtual_hub_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_firewall_application_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"target_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_nat_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","required":true},"translated_port":{"type":"TypeString","required":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_network_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy":{"schema":{"auto_learn_private_ranges_enabled":{"type":"TypeBool","optional":true},"base_policy_id":{"type":"TypeString","optional":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"proxy_enabled":{"type":"TypeBool","optional":true,"default":false},"servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"explicit_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_pac_file":{"type":"TypeBool","optional":true},"enabled":{"type":"TypeBool","optional":true},"http_port":{"type":"TypeInt","optional":true},"https_port":{"type":"TypeInt","optional":true},"pac_file":{"type":"TypeString","optional":true},"pac_file_port":{"type":"TypeInt","optional":true}}},"maxItems":1},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"insights":{"type":"TypeList","optional":true,"elem":{"schema":{"default_log_analytics_workspace_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"firewall_location":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"retention_in_days":{"type":"TypeInt","optional":true}}},"maxItems":1},"intrusion_detection":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true},"private_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"signature_overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"state":{"type":"TypeString","optional":true}}}},"traffic_bypass":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"source_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"sql_redirect_allowed":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","optional":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"threat_intelligence_mode":{"type":"TypeString","optional":true,"default":"Alert"},"tls_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_secret_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy_rule_collection_group":{"schema":{"application_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"terminate_tls":{"type":"TypeBool","optional":true},"web_categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_address":{"type":"TypeString","optional":true},"destination_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","optional":true},"translated_fqdn":{"type":"TypeString","optional":true},"translated_port":{"type":"TypeInt","required":true}}},"minItems":1}}},"minItems":1},"network_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"priority":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_fluid_relay_server":{"schema":{"frs_tenant_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"orderer_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_frontdoor":{"schema":{"backend_pool":{"type":"TypeList","required":true,"elem":{"schema":{"backend":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_header":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","required":true},"https_port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"weight":{"type":"TypeInt","optional":true,"default":50}}},"maxItems":500},"health_probe_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"load_balancing_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"backend_pool_health_probe":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"id":{"type":"TypeString","computed":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":120},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"probe_method":{"type":"TypeString","optional":true,"default":"GET"},"protocol":{"type":"TypeString","optional":true,"default":"Http"}}},"maxItems":5000},"backend_pool_health_probes":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_milliseconds":{"type":"TypeInt","optional":true,"default":0},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":2}}},"maxItems":5000},"backend_pool_load_balancing_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pools_send_receive_timeout_seconds":{"type":"TypeInt","optional":true,"default":60},"enforce_backend_pools_certificate_name_check":{"type":"TypeBool","required":true}}}},"backend_pools":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"cname":{"type":"TypeString","computed":true},"explicit_resource_order":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_pool_health_probe_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"routing_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"friendly_name":{"type":"TypeString","optional":true},"frontend_endpoint":{"type":"TypeList","required":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"session_affinity_ttl_seconds":{"type":"TypeInt","optional":true,"default":0},"web_application_firewall_policy_link_id":{"type":"TypeString","optional":true}}},"maxItems":500},"frontend_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"header_frontdoor_id":{"type":"TypeString","computed":true},"load_balancer_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_rule":{"type":"TypeList","required":true,"elem":{"schema":{"accepted_protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":2},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pool_name":{"type":"TypeString","required":true},"cache_duration":{"type":"TypeString","optional":true},"cache_enabled":{"type":"TypeBool","optional":true,"default":false},"cache_query_parameter_strip_directive":{"type":"TypeString","optional":true,"default":"StripAll"},"cache_query_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"cache_use_dynamic_compression":{"type":"TypeBool","optional":true,"default":false},"custom_forwarding_path":{"type":"TypeString","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"HttpsOnly"}}},"maxItems":1},"frontend_endpoints":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":500},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"redirect_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_fragment":{"type":"TypeString","optional":true},"custom_host":{"type":"TypeString","optional":true},"custom_path":{"type":"TypeString","optional":true},"custom_query_string":{"type":"TypeString","optional":true},"redirect_protocol":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":500},"routing_rules":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_custom_https_configuration":{"schema":{"custom_https_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_key_vault_certificate_secret_name":{"type":"TypeString","optional":true},"azure_key_vault_certificate_secret_version":{"type":"TypeString","optional":true},"azure_key_vault_certificate_vault_id":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","optional":true,"default":"FrontDoor"},"minimum_tls_version":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true},"provisioning_substate":{"type":"TypeString","computed":true}}},"maxItems":1},"custom_https_provisioning_enabled":{"type":"TypeBool","required":true},"frontend_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_frontdoor_rules_engine":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"frontdoor_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"request_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100},"response_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100}}},"maxItems":1},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transform":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":6},"value":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"variable":{"type":"TypeString","optional":true}}},"maxItems":100},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true}}},"maxItems":100}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_cert_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"","forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_function_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_function":{"schema":{"config_json":{"type":"TypeString","required":true,"description":"The config for this Function in JSON format."},"config_url":{"type":"TypeString","description":"The URL of the configuration JSON.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this function be enabled. Defaults to `true`."},"file":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"description":"The content of the file.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The filename of the file to be uploaded.","forceNew":true}}},"minItems":1},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App in which this function should reside.","forceNew":true},"invocation_url":{"type":"TypeString","description":"The invocation URL.","computed":true},"language":{"type":"TypeString","optional":true,"description":"The language the Function is written in."},"name":{"type":"TypeString","required":true,"description":"The name of the function.","forceNew":true},"script_root_path_url":{"type":"TypeString","description":"The Script root path URL.","computed":true},"script_url":{"type":"TypeString","description":"The script URL.","computed":true},"secrets_file_url":{"type":"TypeString","description":"The URL for the Secrets File.","computed":true},"test_data":{"type":"TypeString","optional":true,"description":"The test data for the function."},"test_data_url":{"type":"TypeString","description":"The Test data URL.","computed":true},"url":{"type":"TypeString","description":"The function URL.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_hybrid_connection":{"schema":{"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App for this Hybrid Connection.","forceNew":true},"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_slot":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"function_app_name":{"type":"TypeString","required":true,"forceNew":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application":{"schema":{"description":{"type":"TypeString","optional":true},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true},"gallery_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true},"release_note_uri":{"type":"TypeString","optional":true},"supported_os_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application_version":{"schema":{"enable_health_check":{"type":"TypeBool","optional":true,"default":false},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_application_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"manage_action":{"type":"TypeList","required":true,"elem":{"schema":{"install":{"type":"TypeString","required":true,"forceNew":true},"remove":{"type":"TypeString","required":true,"forceNew":true},"update":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"default_configuration_link":{"type":"TypeString","optional":true,"forceNew":true},"media_link":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_services_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hdinsight_hadoop_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hadoop":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"edge_node":{"type":"TypeList","optional":true,"elem":{"schema":{"https_endpoints":{"type":"TypeList","optional":true,"elem":{"schema":{"access_modes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_port":{"type":"TypeInt","optional":true},"disable_gateway_auth":{"type":"TypeBool","optional":true},"private_ip_address":{"type":"TypeString","optional":true},"sub_domain_suffix":{"type":"TypeString","optional":true}}}},"install_script_action":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"target_instance_count":{"type":"TypeInt","required":true},"uninstall_script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"vm_size":{"type":"TypeString","required":true}}},"maxItems":1},"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_hbase_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hbase":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_interactive_query_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"interactive_hive":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_kafka_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"kafka":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rest_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"security_group_id":{"type":"TypeString","required":true,"forceNew":true},"security_group_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kafka_management_node":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"number_of_disks_per_node":{"type":"TypeInt","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_spark_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"spark":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_healthbot":{"schema":{"bot_management_portal_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"authority":{"type":"TypeString","required":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"configuration_export_storage_account_name":{"type":"TypeString","optional":true},"container_registry_login_server_url":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"credentials_allowed":{"type":"TypeBool","optional":true,"default":false},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","optional":true,"default":"fhir-R4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"oci_artifact":{"type":"TypeList","optional":true,"elem":{"schema":{"digest":{"type":"TypeString","optional":true},"image_name":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_medtech_service_fhir_destination":{"schema":{"destination_fhir_mapping_json":{"type":"TypeString","required":true},"destination_fhir_service_id":{"type":"TypeString","required":true},"destination_identity_resolution_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"medtech_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"audience":{"type":"TypeString","optional":true},"authority":{"type":"TypeString","optional":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","optional":true},"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","optional":true,"forceNew":true},"cosmosdb_throughput":{"type":"TypeInt","optional":true,"default":1000},"kind":{"type":"TypeString","optional":true,"default":"fhir"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache":{"schema":{"automatically_rotate_key_to_latest_enabled":{"type":"TypeBool","optional":true},"cache_size_in_gb":{"type":"TypeInt","required":true,"forceNew":true},"default_access_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1}}},"maxItems":1,"minItems":1},"directory_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_netbios_name":{"type":"TypeString","required":true},"dns_primary_ip":{"type":"TypeString","required":true},"dns_secondary_ip":{"type":"TypeString","optional":true},"domain_name":{"type":"TypeString","required":true},"domain_netbios_name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"directory_flat_file":{"type":"TypeList","optional":true,"elem":{"schema":{"group_file_uri":{"type":"TypeString","required":true},"password_file_uri":{"type":"TypeString","required":true}}},"maxItems":1},"directory_ldap":{"type":"TypeList","optional":true,"elem":{"schema":{"base_dn":{"type":"TypeString","required":true},"bind":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dn":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_validation_uri":{"type":"TypeString","optional":true},"download_certificate_automatically":{"type":"TypeBool","optional":true},"encrypted":{"type":"TypeBool","optional":true},"server":{"type":"TypeString","required":true}}},"maxItems":1},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"search_domain":{"type":"TypeString","optional":true},"servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mtu":{"type":"TypeInt","optional":true,"default":1500},"name":{"type":"TypeString","required":true,"forceNew":true},"ntp_server":{"type":"TypeString","optional":true,"default":"time.windows.com"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hpc_cache_access_policy":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1},"hpc_cache_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_nfs_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_nfs_target":{"schema":{"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_junction":{"type":"TypeSet","required":true,"elem":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"namespace_path":{"type":"TypeString","required":true},"nfs_export":{"type":"TypeString","required":true},"target_path":{"type":"TypeString","optional":true,"default":""}}},"maxItems":10,"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"target_host_name":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"lun":{"type":"TypeInt","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}}},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"os_state":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_virtual_machine_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_integration_service_environment":{"schema":{"access_endpoint_type":{"type":"TypeString","required":true,"forceNew":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Developer_0"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":4,"minItems":4},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_iot_security_device_group":{"schema":{"allow_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_from_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"connection_to_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"local_users_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"processes_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"range_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"max":{"type":"TypeInt","required":true},"min":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_security_solution":{"schema":{"additional_workspace":{"type":"TypeSet","optional":true,"elem":{"schema":{"data_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}}}},"disabled_data_sources":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events_to_export":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"iothub_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"log_unmasked_ips_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"query_for_resources":{"type":"TypeString","optional":true,"computed":true},"query_subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"recommendations_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_authentication":{"type":"TypeBool","optional":true,"default":true},"agent_send_unutilized_msg":{"type":"TypeBool","optional":true,"default":true},"baseline":{"type":"TypeBool","optional":true,"default":true},"edge_hub_mem_optimize":{"type":"TypeBool","optional":true,"default":true},"edge_logging_option":{"type":"TypeBool","optional":true,"default":true},"inconsistent_module_settings":{"type":"TypeBool","optional":true,"default":true},"install_agent":{"type":"TypeBool","optional":true,"default":true},"ip_filter_deny_all":{"type":"TypeBool","optional":true,"default":true},"ip_filter_permissive_rule":{"type":"TypeBool","optional":true,"default":true},"open_ports":{"type":"TypeBool","optional":true,"default":true},"permissive_firewall_policy":{"type":"TypeBool","optional":true,"default":true},"permissive_input_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"permissive_output_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"privileged_docker_options":{"type":"TypeBool","optional":true,"default":true},"shared_credentials":{"type":"TypeBool","optional":true,"default":true},"vulnerable_tls_cipher_suite":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_access_policy":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_object_id":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_eventhub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_iothub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_gen2_environment":{"schema":{"data_access_fqdn":{"type":"TypeString","computed":true},"id_properties":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage":{"type":"TypeList","required":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"warm_store_data_retention_time":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_reference_data_set":{"schema":{"data_string_comparison_behavior":{"type":"TypeString","optional":true,"default":"Ordinal","forceNew":true},"key_property":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_standard_environment":{"schema":{"data_retention_time":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_limit_exceeded_behavior":{"type":"TypeString","optional":true,"default":"PurgeOldData"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"ST1"},"sub_domain":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application_network_rule_set":{"schema":{"apply_to_device":{"type":"TypeBool","optional":true,"default":true},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"iotcentral_application_id":{"type":"TypeString","required":true,"forceNew":true},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub":{"schema":{"cloud_to_device":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"feedback":{"type":"TypeList","optional":true,"elem":{"schema":{"lock_duration":{"type":"TypeString","optional":true,"default":"PT60S"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"time_to_live":{"type":"TypeString","optional":true,"default":"PT1H"}}}},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10}}},"maxItems":1},"endpoint":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"enrichment":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":10},"event_hub_events_endpoint":{"type":"TypeString","computed":true},"event_hub_events_namespace":{"type":"TypeString","computed":true},"event_hub_events_path":{"type":"TypeString","computed":true},"event_hub_operations_endpoint":{"type":"TypeString","computed":true},"event_hub_operations_path":{"type":"TypeString","computed":true},"event_hub_partition_count":{"type":"TypeInt","optional":true,"computed":true},"event_hub_retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"fallback_route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","optional":true,"computed":true},"endpoint_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}}},"maxItems":1},"file_upload":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"computed":true},"identity_id":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"apply_to_builtin_eventhub_endpoint":{"type":"TypeBool","optional":true,"default":false},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}},"shared_access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"key_name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_consumer_group":{"schema":{"eventhub_endpoint_name":{"type":"TypeString","required":true,"forceNew":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_account":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_instance":{"schema":{"device_update_account_id":{"type":"TypeString","required":true,"forceNew":true},"diagnostic_enabled":{"type":"TypeBool","optional":true,"default":false},"diagnostic_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","optional":true,"default":"Hashed"},"data_residency_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"ip_filter_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"target":{"type":"TypeString","optional":true}}}},"linked_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_weight":{"type":"TypeInt","optional":true,"default":1},"apply_allocation_policy":{"type":"TypeBool","optional":true,"default":true},"connection_string":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_operations_host_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iot_dps_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"enrollment_read":{"type":"TypeBool","optional":true,"default":false},"enrollment_write":{"type":"TypeBool","optional":true,"default":false},"iothub_dps_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registration_read":{"type":"TypeBool","optional":true,"default":false},"registration_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_config":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_eventhub":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_queue":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_topic":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_storage_container":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_enrichment":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":100},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"key":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_fallback_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_file_upload":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"lock_duration":{"type":"TypeString","optional":true,"default":"PT1M"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications_enabled":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"default":"PT1H"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_shared_access_policy":{"schema":{"device_connect":{"type":"TypeBool","optional":true,"default":false},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registry_read":{"type":"TypeBool","optional":true,"default":false},"registry_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_connect":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"firewall_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group_cidr":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"ip_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","optional":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1024},"contact":{"type":"TypeSet","optional":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"enable_rbac_authorization":{"type":"TypeBool","optional":true},"enabled_for_deployment":{"type":"TypeBool","optional":true},"enabled_for_disk_encryption":{"type":"TypeBool","optional":true},"enabled_for_template_deployment":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_protection_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_access_policy":{"schema":{"application_id":{"type":"TypeString","optional":true,"forceNew":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true,"forceNew":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate":{"schema":{"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"contents":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate_attribute":{"type":"TypeList","computed":true,"elem":{"schema":{"created":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"expires":{"type":"TypeString","computed":true},"not_before":{"type":"TypeString","computed":true},"recovery_level":{"type":"TypeString","computed":true},"updated":{"type":"TypeString","computed":true}}}},"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"key_properties":{"type":"TypeList","required":true,"elem":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true},"exportable":{"type":"TypeBool","required":true},"key_size":{"type":"TypeInt","optional":true,"computed":true},"key_type":{"type":"TypeString","required":true},"reuse_key":{"type":"TypeBool","required":true}}},"maxItems":1},"lifetime_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","optional":true},"lifetime_percentage":{"type":"TypeInt","optional":true}}},"maxItems":1}}}},"secret_properties":{"type":"TypeList","required":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true}}},"maxItems":1},"x509_certificate_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","required":true},"subject_alternative_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dns_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"validity_in_months":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":30,"delete":30,"update":30}},"azurerm_key_vault_certificate_contacts":{"schema":{"contact":{"type":"TypeSet","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","optional":true},"admin":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","optional":true},"last_name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_id":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"provider_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"e":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","optional":true},"key_opts":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","optional":true,"forceNew":true},"key_type":{"type":"TypeString","required":true,"forceNew":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"rotation_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"automatic":{"type":"TypeList","optional":true,"elem":{"schema":{"time_after_creation":{"type":"TypeString","optional":true},"time_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"expire_after":{"type":"TypeString","optional":true},"notify_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_domain_encrypted_data":{"type":"TypeString","computed":true},"security_domain_key_vault_certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10,"minItems":3},"security_domain_quorum":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":30}},"azurerm_key_vault_managed_storage_account":{"schema":{"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"regenerate_key_automatically":{"type":"TypeBool","optional":true,"default":false},"regeneration_period":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_managed_storage_account_sas_token_definition":{"schema":{"managed_storage_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sas_template_uri":{"type":"TypeString","required":true},"sas_type":{"type":"TypeString","required":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validity_period":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","optional":true,"elem":{"schema":{"connector_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_name":{"type":"TypeString","required":true}}},"maxItems":1},"api_server_access_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true},"vnet_integration_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"api_server_authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auto_scaler_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"balance_similar_node_groups":{"type":"TypeBool","optional":true,"default":false},"empty_bulk_delete_max":{"type":"TypeString","optional":true,"computed":true},"expander":{"type":"TypeString","optional":true,"default":"random"},"max_graceful_termination_sec":{"type":"TypeString","optional":true,"computed":true},"max_node_provisioning_time":{"type":"TypeString","optional":true,"default":"15m"},"max_unready_nodes":{"type":"TypeInt","optional":true,"default":3},"max_unready_percentage":{"type":"TypeFloat","optional":true,"default":45},"new_pod_scale_up_delay":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_add":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_delete":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_failure":{"type":"TypeString","optional":true,"computed":true},"scale_down_unneeded":{"type":"TypeString","optional":true,"computed":true},"scale_down_unready":{"type":"TypeString","optional":true,"computed":true},"scale_down_utilization_threshold":{"type":"TypeString","optional":true,"computed":true},"scan_interval":{"type":"TypeString","optional":true,"computed":true},"skip_nodes_with_local_storage":{"type":"TypeBool","optional":true,"default":true},"skip_nodes_with_system_pods":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"automatic_channel_upgrade":{"type":"TypeString","optional":true},"azure_active_directory_role_based_access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","optional":true},"client_app_id":{"type":"TypeString","optional":true},"managed":{"type":"TypeBool","optional":true},"server_app_id":{"type":"TypeString","optional":true},"server_app_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"azure_policy_enabled":{"type":"TypeBool","optional":true},"confidential_computing":{"type":"TypeList","optional":true,"elem":{"schema":{"sgx_quote_helper_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"custom_ca_trust_certificates_base64":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"default_node_pool":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true},"enable_node_public_ip":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false},"cpu_cfs_quota_period":{"type":"TypeString","optional":true},"cpu_manager_policy":{"type":"TypeString","optional":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true},"pod_max_pid":{"type":"TypeInt","optional":true},"topology_manager_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"linux_os_config":{"type":"TypeList","optional":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"only_critical_addons_enabled":{"type":"TypeBool","optional":true},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed"},"os_sku":{"type":"TypeString","optional":true,"computed":true},"pod_subnet_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"temporary_name_for_rotation":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"VirtualMachineScaleSets","forceNew":true},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true},"vnet_subnet_id":{"type":"TypeString","optional":true},"workload_runtime":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix_private_cluster":{"type":"TypeString","optional":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_pod_security_policy":{"type":"TypeBool","optional":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","optional":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"http_proxy_config":{"type":"TypeList","optional":true,"elem":{"schema":{"http_proxy":{"type":"TypeString","optional":true,"forceNew":true},"https_proxy":{"type":"TypeString","optional":true,"forceNew":true},"no_proxy":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trusted_ca":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_cleaner_enabled":{"type":"TypeBool","optional":true,"default":false},"image_cleaner_interval_hours":{"type":"TypeInt","optional":true,"default":48},"ingress_application_gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","optional":true},"gateway_name":{"type":"TypeString","optional":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"key_management_service":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_network_access":{"type":"TypeString","optional":true,"default":"Public"}}},"maxItems":1},"key_vault_secrets_provider":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"secret_rotation_interval":{"type":"TypeString","optional":true,"default":"2m"}}},"maxItems":1},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"object_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"kubernetes_version":{"type":"TypeString","optional":true,"computed":true},"linux_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_username":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeList","required":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"local_account_disabled":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"hours":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"minItems":1}}}},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}}}},"maxItems":1},"maintenance_window_auto_upgrade":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"maintenance_window_node_os":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"microsoft_defender":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true}}},"maxItems":1},"monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"annotations_allowed":{"type":"TypeString","optional":true},"labels_allowed":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"docker_bridge_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ebpf_data_plane":{"type":"TypeString","optional":true},"ip_versions":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"load_balancer_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":30},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true},"managed_outbound_ipv6_count":{"type":"TypeInt","optional":true,"computed":true},"outbound_ip_address_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ip_prefix_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ports_allocated":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"load_balancer_sku":{"type":"TypeString","optional":true,"default":"standard","forceNew":true},"nat_gateway_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"network_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"network_plugin":{"type":"TypeString","required":true,"forceNew":true},"network_plugin_mode":{"type":"TypeString","optional":true,"forceNew":true},"network_policy":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"pod_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pod_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"service_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_os_channel_upgrade":{"type":"TypeString","optional":true},"node_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","optional":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","optional":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"open_service_mesh_enabled":{"type":"TypeBool","optional":true},"portal_fqdn":{"type":"TypeString","computed":true},"private_cluster_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"private_cluster_public_fqdn_enabled":{"type":"TypeBool","optional":true,"default":false},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"private_fqdn":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_based_access_control_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"run_command_enabled":{"type":"TypeBool","optional":true,"default":true},"service_mesh_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true}}},"maxItems":1},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"storage_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"disk_driver_version":{"type":"TypeString","optional":true,"default":"v1"},"file_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"snapshot_controller_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"web_app_routing":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_zone_id":{"type":"TypeString","required":true},"web_app_routing_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"windows_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"gmsa":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_server":{"type":"TypeString","required":true},"root_domain":{"type":"TypeString","required":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true}}},"maxItems":1},"workload_autoscaler_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"keda_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_controlled_values":{"type":"TypeString","computed":true},"vertical_pod_autoscaler_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_update_mode":{"type":"TypeString","computed":true}}},"maxItems":1},"workload_identity_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_kubernetes_cluster_extension":{"schema":{"aks_assigned_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true,"forceNew":true},"enable_node_public_ip":{"type":"TypeBool","optional":true,"forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true,"forceNew":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"cpu_cfs_quota_period":{"type":"TypeString","optional":true,"forceNew":true},"cpu_manager_policy":{"type":"TypeString","optional":true,"forceNew":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"pod_max_pid":{"type":"TypeInt","optional":true,"forceNew":true},"topology_manager_policy":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"linux_os_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true,"forceNew":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","optional":true,"default":"User"},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed","forceNew":true},"os_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"Linux","forceNew":true},"pod_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"spot_max_price":{"type":"TypeFloat","optional":true,"default":-1,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"vnet_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"windows_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"outbound_nat_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"workload_runtime":{"type":"TypeString","optional":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kubernetes_cluster_trusted_access_role_binding":{"schema":{"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_fleet_manager":{"schema":{"hub_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dns_prefix":{"type":"TypeString","required":true},"fqdn":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true}}},"maxItems":1},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_attached_database_configuration":{"schema":{"attached_database_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"cluster_resource_id":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_principal_modification_kind":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"elem":{"schema":{"external_tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"external_tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster":{"schema":{"allowed_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allowed_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"auto_stop_enabled":{"type":"TypeBool","optional":true,"default":true},"data_ingestion_uri":{"type":"TypeString","computed":true},"disk_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"double_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"engine":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"language_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimized_auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum_instances":{"type":"TypeInt","required":true},"minimum_instances":{"type":"TypeInt","required":true}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"public_ip_type":{"type":"TypeString","optional":true,"default":"IPv4"},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"streaming_ingestion_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_external_tenants":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true},"virtual_network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_management_public_ip_id":{"type":"TypeString","required":true},"engine_public_ip_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_customer_managed_key":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"user_identity":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_cluster_managed_private_endpoint":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_id":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_region":{"type":"TypeString","optional":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cosmosdb_data_connection":{"schema":{"cosmosdb_container_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_id":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retrieval_start_date":{"type":"TypeString","optional":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"hot_cache_period":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_database_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_eventgrid_data_connection":{"schema":{"blob_storage_event_type":{"type":"TypeString","optional":true,"default":"Microsoft.Storage.BlobCreated"},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"eventgrid_resource_id":{"type":"TypeString","optional":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","optional":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skip_first_record":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_eventhub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"compression":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_iothub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_script":{"schema":{"continue_on_errors_enabled":{"type":"TypeBool","optional":true,"default":false},"database_id":{"type":"TypeString","required":true,"forceNew":true},"force_an_update_when_value_changed":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sas_token":{"type":"TypeString","optional":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_lab":{"schema":{"auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"lab_plan_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","computed":true},"public_ip_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roster":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_group_id":{"type":"TypeString","optional":true},"lms_instance":{"type":"TypeString","optional":true},"lti_client_id":{"type":"TypeString","optional":true},"lti_context_id":{"type":"TypeString","optional":true},"lti_roster_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"security":{"type":"TypeList","required":true,"elem":{"schema":{"open_access_enabled":{"type":"TypeBool","required":true},"registration_code":{"type":"TypeString","computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title":{"type":"TypeString","required":true},"virtual_machine":{"type":"TypeList","required":true,"elem":{"schema":{"additional_capability_gpu_drivers_installed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"admin_user":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"create_option":{"type":"TypeString","optional":true,"default":"Image","forceNew":true},"image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"non_admin_user":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"shared_password_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_lab_service_plan":{"schema":{"allowed_regions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":28,"minItems":1},"default_auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"default_connection":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true},"web_rdp_access":{"type":"TypeString","optional":true},"web_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"default_network_subnet_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_gallery_id":{"type":"TypeString","optional":true},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"instructions":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_schedule":{"schema":{"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"stop_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_user":{"schema":{"additional_usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"},"email":{"type":"TypeString","required":true,"forceNew":true},"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb":{"schema":{"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"id":{"type":"TypeString","computed":true},"inbound_nat_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_version":{"type":"TypeString","optional":true,"computed":true},"public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"computed":true},"subnet_id":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool":{"schema":{"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tunnel_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier":{"type":"TypeInt","required":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"virtual_network_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool_address":{"schema":{"backend_address_ip_configuration_id":{"type":"TypeString","optional":true,"description":"For global load balancer, user needs to specify the `backend_address_ip_configuration_id` of the added regional load balancers"},"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"description":"For regional load balancer, user needs to specify `virtual_network_id` and `ip_address`"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_pool":{"schema":{"backend_port":{"type":"TypeInt","required":true},"floating_ip_enabled":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_end":{"type":"TypeInt","required":true},"frontend_port_start":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tcp_reset_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","optional":true},"backend_ip_configuration_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","required":true},"enable_floating_ip":{"type":"TypeBool","optional":true,"computed":true},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","optional":true},"frontend_port_end":{"type":"TypeInt","optional":true},"frontend_port_start":{"type":"TypeInt","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","optional":true,"default":1024},"backend_address_pool_id":{"type":"TypeString","required":true},"enable_tcp_reset":{"type":"TypeBool","optional":true,"default":false},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_probe":{"schema":{"interval_in_seconds":{"type":"TypeInt","optional":true,"default":15},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_probes":{"type":"TypeInt","optional":true,"default":2},"port":{"type":"TypeInt","required":true},"probe_threshold":{"type":"TypeInt","optional":true,"default":1},"protocol":{"type":"TypeString","optional":true,"computed":true},"request_path":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_rule":{"schema":{"backend_address_pool_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":1},"backend_port":{"type":"TypeInt","required":true},"disable_outbound_snat":{"type":"TypeBool","optional":true,"default":false},"enable_floating_ip":{"type":"TypeBool","optional":true,"default":false},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"load_distribution":{"type":"TypeString","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"probe_id":{"type":"TypeString","optional":true,"computed":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lighthouse_assignment":{"schema":{"lighthouse_definition_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_lighthouse_definition":{"schema":{"authorization":{"type":"TypeSet","required":true,"elem":{"schema":{"delegated_role_definition_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"eligible_authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"just_in_time_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"approver":{"type":"TypeSet","optional":true,"elem":{"schema":{"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true}}}},"maximum_activation_duration":{"type":"TypeString","optional":true,"default":"PT8H"},"multi_factor_auth_provider":{"type":"TypeString","optional":true}}},"maxItems":1},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}}},"lighthouse_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managing_tenant_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022``","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Function App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Linux Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_linux_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"default":0},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_linux_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_web_app_slot":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_service_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_load_test":{"schema":{"data_plane_uri":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"gateway_address":{"type":"TypeString","optional":true},"gateway_fqdn":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_cluster":{"schema":{"cluster_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"default":1000},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_cluster_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"log_analytics_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_data_export_rule":{"schema":{"destination_resource_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"export_rule_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_event":{"schema":{"event_log_name":{"type":"TypeString","required":true},"event_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_performance_counter":{"schema":{"counter_name":{"type":"TypeString","required":true},"instance_name":{"type":"TypeString","required":true},"interval_seconds":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"object_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_service":{"schema":{"name":{"type":"TypeString","computed":true},"read_access_id":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true},"write_access_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_storage_account":{"schema":{"data_source_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack_query":{"schema":{"additional_settings_json":{"type":"TypeString","optional":true},"body":{"type":"TypeString","required":true},"categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"query_pack_id":{"type":"TypeString","required":true,"forceNew":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"solutions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_saved_search":{"schema":{"category":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"function_alias":{"type":"TypeString","optional":true,"forceNew":true},"function_parameters":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_solution":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"solution_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_storage_insights":{"schema":{"blob_container_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"table_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_workspace":{"schema":{"allow_resource_only_permissions":{"type":"TypeBool","optional":true,"default":true},"cmk_for_query_forced":{"type":"TypeBool","optional":true},"daily_quota_gb":{"type":"TypeFloat","optional":true,"default":-1},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_shared_key":{"type":"TypeString","computed":true},"reservation_capacity_in_gb_per_day":{"type":"TypeInt","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_http":{"schema":{"body":{"type":"TypeString","optional":true},"headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"queries":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_after":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_name":{"type":"TypeString","required":true},"action_result":{"type":"TypeString","required":true}}},"minItems":1},"uri":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account":{"schema":{"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_agreement":{"schema":{"agreement_type":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"guest_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"guest_partner_name":{"type":"TypeString","required":true},"host_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"host_partner_name":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_assembly":{"schema":{"assembly_name":{"type":"TypeString","required":true},"assembly_version":{"type":"TypeString","optional":true,"default":"0.0.0.0"},"content":{"type":"TypeString","optional":true},"content_link_uri":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_batch_configuration":{"schema":{"batch_group_name":{"type":"TypeString","required":true,"forceNew":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"release_criteria":{"type":"TypeList","required":true,"elem":{"schema":{"batch_size":{"type":"TypeInt","optional":true},"message_count":{"type":"TypeInt","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeSet","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","required":true},"weekday":{"type":"TypeString","required":true}}}},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_certificate":{"schema":{"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true}}},"maxItems":1},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_certificate":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_map":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"map_type":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_partner":{"schema":{"business_identity":{"type":"TypeSet","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_schema":{"schema":{"content":{"type":"TypeString","required":true},"file_name":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_session":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","optional":true,"default":"[1.*, 2.0.0)"},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"client_certificate_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_share_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","optional":true,"default":true},"version":{"type":"TypeString","optional":true,"default":"~3"},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_http_request":{"schema":{"callback_url":{"type":"TypeString","computed":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"relative_path":{"type":"TypeString","optional":true},"schema":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_recurrence":{"schema":{"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"at_these_hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"at_these_minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"on_these_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_workflow":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"open_authentication_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"claim":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"workflow_management":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logic_app_integration_account_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","optional":true,"default":"https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#","forceNew":true},"workflow_version":{"type":"TypeString","optional":true,"default":"1.0.0.0","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_monitor":{"schema":{"company_name":{"type":"TypeString","optional":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logz_organization_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","required":true,"forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"100gb14days","forceNew":true},"usage_type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_sign_on_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account_tag_rule":{"schema":{"logz_sub_account_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_tag_rule":{"schema":{"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_compute_cluster":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"scale_settings":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true,"forceNew":true},"min_node_count":{"type":"TypeInt","required":true,"forceNew":true},"scale_down_nodes_after_idle_duration":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"key_value":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"ssh_public_access_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"vm_priority":{"type":"TypeString","required":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_compute_instance":{"schema":{"assign_to_user":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"object_id":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"authorization_type":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","computed":true}}},"maxItems":1},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"virtual_machine_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_datastore_blobstorage":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_auth_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_datalake_gen2":{"schema":{"authority_url":{"type":"TypeString","optional":true,"computed":true},"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_fileshare":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_fileshare_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_inference_cluster":{"schema":{"cluster_purpose":{"type":"TypeString","optional":true,"default":"FastProd","forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ssl":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cert":{"type":"TypeString","optional":true,"default":"","forceNew":true},"cname":{"type":"TypeString","optional":true,"default":"","forceNew":true},"key":{"type":"TypeString","optional":true,"default":"","forceNew":true},"leaf_domain_label":{"type":"TypeString","optional":true,"default":"","forceNew":true},"overwrite_existing_domain":{"type":"TypeBool","optional":true,"default":"","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_synapse_spark":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_workspace":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"container_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"discovery_url":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key_id":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"friendly_name":{"type":"TypeString","optional":true},"high_business_impact":{"type":"TypeBool","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_build_compute_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_user_assigned_identity":{"type":"TypeString","optional":true},"public_access_behind_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Basic"},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"v1_legacy_mode_enabled":{"type":"TypeBool","optional":true,"default":false},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maintenance_assignment_dedicated_host":{"schema":{"dedicated_host_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine_scale_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","optional":true},"install_patches":{"type":"TypeList","optional":true,"elem":{"schema":{"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"reboot":{"type":"TypeString","optional":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","optional":true,"default":"Custom"},"window":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","optional":true},"expiration_date_time":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"start_date_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application":{"schema":{"application_definition_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameter_values":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application_definition":{"schema":{"authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"role_definition_id":{"type":"TypeString","required":true},"service_principal_id":{"type":"TypeString","required":true}}},"minItems":1},"create_ui_definition":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_level":{"type":"TypeString","required":true,"forceNew":true},"main_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"package_enabled":{"type":"TypeBool","optional":true,"default":true},"package_file_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","required":true,"forceNew":true},"disk_access_id":{"type":"TypeString","optional":true},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_iops_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"gallery_image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"forceNew":true},"image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logical_sector_size":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"max_shares":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_access_policy":{"type":"TypeString","optional":true},"on_demand_bursting_enabled":{"type":"TypeBool","optional":true},"os_type":{"type":"TypeString","optional":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_type":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"computed":true},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"upload_size_bytes":{"type":"TypeInt","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk_sas_token":{"schema":{"access_level":{"type":"TypeString","required":true,"forceNew":true},"duration_in_seconds":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"sas_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_managed_lustre_file_system":{"schema":{"encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"hsm_setting":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"import_prefix":{"type":"TypeString","optional":true,"forceNew":true},"logging_container_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","required":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"time_of_day_in_utc":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_capacity_in_tb":{"type":"TypeInt","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"parent_management_group_id":{"type":"TypeString","optional":true,"computed":true},"subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_subscription_association":{"schema":{"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5}},"azurerm_management_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_management_lock":{"schema":{"lock_level":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_creator":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maps_account_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mariadb_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_mariadb_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeString","required":true,"forceNew":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_asset":{"schema":{"alternate_id":{"type":"TypeString","optional":true},"container":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_asset_filter":{"schema":{"asset_id":{"type":"TypeString","required":true,"forceNew":true},"first_quality_bitrate":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_miliseconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","optional":true},"property":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_content_key_policy":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_option":{"type":"TypeSet","required":true,"elem":{"schema":{"clear_key_configuration_enabled":{"type":"TypeBool","optional":true},"fairplay_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"ask":{"type":"TypeString","optional":true},"offline_rental_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"playback_duration_seconds":{"type":"TypeInt","optional":true},"storage_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"pfx":{"type":"TypeString","optional":true},"pfx_password":{"type":"TypeString","optional":true},"rental_and_lease_key_type":{"type":"TypeString","optional":true},"rental_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"open_restriction_enabled":{"type":"TypeBool","optional":true},"playready_configuration_license":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_test_devices":{"type":"TypeBool","optional":true},"begin_date":{"type":"TypeString","optional":true},"content_key_location_from_header_enabled":{"type":"TypeBool","optional":true},"content_key_location_from_key_id":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"grace_period":{"type":"TypeString","optional":true},"license_type":{"type":"TypeString","optional":true},"play_right":{"type":"TypeList","optional":true,"elem":{"schema":{"agc_and_color_stripe_restriction":{"type":"TypeInt","optional":true},"allow_passing_video_content_to_unknown_output":{"type":"TypeString","optional":true},"analog_video_opl":{"type":"TypeInt","optional":true},"compressed_digital_audio_opl":{"type":"TypeInt","optional":true},"compressed_digital_video_opl":{"type":"TypeInt","optional":true},"digital_video_only_content_restriction":{"type":"TypeBool","optional":true},"explicit_analog_television_output_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"best_effort_enforced":{"type":"TypeBool","optional":true,"default":false},"control_bits":{"type":"TypeInt","required":true}}},"maxItems":1},"first_play_expiration":{"type":"TypeString","optional":true},"image_constraint_for_analog_component_video_restriction":{"type":"TypeBool","optional":true},"image_constraint_for_analog_computer_monitor_restriction":{"type":"TypeBool","optional":true},"scms_restriction":{"type":"TypeInt","optional":true},"uncompressed_digital_audio_opl":{"type":"TypeInt","optional":true},"uncompressed_digital_video_opl":{"type":"TypeInt","optional":true}}},"maxItems":1},"relative_begin_date":{"type":"TypeString","optional":true},"relative_expiration_date":{"type":"TypeString","optional":true},"security_level":{"type":"TypeString","optional":true}}}},"playready_response_custom_data":{"type":"TypeString","optional":true},"token_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"alternate_key":{"type":"TypeList","optional":true,"elem":{"schema":{"rsa_token_key_exponent":{"type":"TypeString","optional":true},"rsa_token_key_modulus":{"type":"TypeString","optional":true},"symmetric_token_key":{"type":"TypeString","optional":true},"x509_token_key_raw":{"type":"TypeString","optional":true}}}},"audience":{"type":"TypeString","optional":true},"issuer":{"type":"TypeString","optional":true},"open_id_connect_discovery_document":{"type":"TypeString","optional":true},"primary_rsa_token_key_exponent":{"type":"TypeString","optional":true},"primary_rsa_token_key_modulus":{"type":"TypeString","optional":true},"primary_symmetric_token_key":{"type":"TypeString","optional":true},"primary_x509_token_key_raw":{"type":"TypeString","optional":true},"required_claim":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"token_type":{"type":"TypeString","optional":true}}},"maxItems":1},"widevine_configuration_template":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_job":{"schema":{"description":{"type":"TypeString","optional":true},"input_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1},"priority":{"type":"TypeString","optional":true,"default":"Normal","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"transform_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event":{"schema":{"auto_start_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true},"cross_domain_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"preset_name":{"type":"TypeString","optional":true,"forceNew":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"None"},"type":{"type":"TypeString","optional":true,"default":"None","forceNew":true}}},"maxItems":1},"hostname_prefix":{"type":"TypeString","optional":true},"input":{"type":"TypeList","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"key_frame_interval_duration":{"type":"TypeString","optional":true},"streaming_protocol":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"preview":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"preview_locator":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_options":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transcription_languages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"use_static_hostname":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event_output":{"schema":{"archive_window_duration":{"type":"TypeString","required":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"hls_fragments_per_ts_segment":{"type":"TypeInt","optional":true,"forceNew":true},"live_event_id":{"type":"TypeString","required":true,"forceNew":true},"manifest_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_snap_time_in_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"rewind_window_duration":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account":{"schema":{"encryption":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_key_identifier":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"type":{"type":"TypeString","optional":true,"default":"SystemKey"}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_delivery_access_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true},"ip_allow_list":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"storage_authentication_type":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account_filter":{"schema":{"first_quality_bitrate":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_milliseconds":{"type":"TypeInt","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_endpoint":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"akamai_signature_header_authentication_key":{"type":"TypeList","optional":true,"elem":{"schema":{"base64_key":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","optional":true},"identifier":{"type":"TypeString","optional":true}}}},"ip_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}}}},"maxItems":1},"auto_start_enabled":{"type":"TypeBool","optional":true,"computed":true},"cdn_enabled":{"type":"TypeBool","optional":true},"cdn_profile":{"type":"TypeString","optional":true,"computed":true},"cdn_provider":{"type":"TypeString","optional":true,"computed":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true,"computed":true},"cross_domain_policy":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"custom_host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_cache_age_seconds":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_locator":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content_key_id":{"type":"TypeString","optional":true,"forceNew":true},"label_reference_in_streaming_policy":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","optional":true,"forceNew":true}}}},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"end_time":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"filter_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"forceNew":true},"streaming_locator_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_streaming_policy":{"schema":{"common_encryption_cbcs":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_fairplay":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_persistent_license":{"type":"TypeBool","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"common_encryption_cenc":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"clear_track":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}},"content_key_to_track_mapping":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"track":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}}}}},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_playready":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_attributes":{"type":"TypeString","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_widevine_custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"envelope_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"no_encryption_enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_transform":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"builtin_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"preset_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true},"interleave_output":{"type":"TypeString","optional":true},"key_frame_interval_in_seconds":{"type":"TypeFloat","optional":true},"max_bitrate_bps":{"type":"TypeInt","optional":true},"max_height":{"type":"TypeInt","optional":true},"max_layers":{"type":"TypeInt","optional":true},"min_bitrate_bps":{"type":"TypeInt","optional":true},"min_height":{"type":"TypeInt","optional":true}}},"maxItems":1},"preset_name":{"type":"TypeString","required":true}}},"maxItems":1},"custom_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"codec":{"type":"TypeList","required":true,"elem":{"schema":{"aac_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":128000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"profile":{"type":"TypeString","optional":true,"default":"AacLc"},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"copy_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"copy_video":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"dd_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":192000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"h264_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":23},"entropy_mode":{"type":"TypeString","optional":true,"computed":true},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"rate_control_mode":{"type":"TypeString","optional":true,"default":"ABR"},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"h265_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":28},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"jpg_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"quality":{"type":"TypeInt","optional":true,"default":70},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"sprite_column":{"type":"TypeInt","optional":true,"default":0},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"png_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1}}},"minItems":1},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"deinterlace":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true,"default":"AutoPixelAdaptive"},"parity":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"fade_in":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"fade_out":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"overlay":{"type":"TypeList","optional":true,"elem":{"schema":{"audio":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}},"maxItems":1},"video":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"opacity":{"type":"TypeFloat","optional":true,"default":1},"position":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"start":{"type":"TypeString","optional":true}}},"maxItems":1}}},"minItems":1},"rotation":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"format":{"type":"TypeList","required":true,"elem":{"schema":{"jpg":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"mp4":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1},"png":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"transport_stream":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1}}},"minItems":1}}},"maxItems":1},"face_detector_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"analysis_resolution":{"type":"TypeString","optional":true,"default":"SourceResolution"},"blur_type":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"face_redactor_mode":{"type":"TypeString","optional":true,"default":"Analyze"}}},"maxItems":1},"on_error_action":{"type":"TypeString","optional":true,"default":"StopProcessingJob"},"relative_priority":{"type":"TypeString","optional":true,"default":"Normal"},"video_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"insights_type":{"type":"TypeString","optional":true,"default":"AllInsights"}}},"maxItems":1}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_country_code":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_code":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_data_network_name":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true,"forceNew":true},"network_address_port_translation":{"type":"TypeList","optional":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"pinhole_maximum_number":{"type":"TypeInt","optional":true,"default":65536},"port_range":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum":{"type":"TypeInt","optional":true,"default":49999},"minimum":{"type":"TypeInt","optional":true,"default":1024}}},"maxItems":1},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":120},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":60}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","optional":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"control_plane_access_name":{"type":"TypeString","optional":true},"core_network_technology":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"interoperability_settings_json":{"type":"TypeString","optional":true},"local_diagnostics_access":{"type":"TypeList","required":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","required":true},"https_server_certificate_url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","optional":true},"custom_location_id":{"type":"TypeString","optional":true},"edge_device_id":{"type":"TypeString","optional":true},"stack_hci_cluster_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"sku":{"type":"TypeString","required":true},"software_version":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","optional":true,"default":1440}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pcc_rule":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precedence":{"type":"TypeInt","required":true},"qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true},"guaranteed_bit_rate":{"type":"TypeList","optional":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"Preemptable"},"qos_indicator":{"type":"TypeInt","required":true}}},"maxItems":1},"service_data_flow_template":{"type":"TypeList","required":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","optional":true,"default":true}}}},"service_precedence":{"type":"TypeInt","required":true},"service_qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":9},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true},"preemption_vulnerability":{"type":"TypeString","optional":true},"qos_indicator":{"type":"TypeInt","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim":{"schema":{"authentication_key":{"type":"TypeString","required":true},"device_type":{"type":"TypeString","optional":true},"integrated_circuit_card_identifier":{"type":"TypeString","required":true,"forceNew":true},"international_mobile_subscriber_identity":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operator_key_code":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","optional":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true},"static_ipv4_address":{"type":"TypeString","optional":true}}},"minItems":1},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","optional":true},"registration_timer_in_seconds":{"type":"TypeInt","optional":true,"default":3240},"slice":{"type":"TypeList","required":true,"elem":{"schema":{"data_network":{"type":"TypeList","required":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":0},"allowed_services_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","required":true},"default_session_type":{"type":"TypeString","optional":true,"default":"IPv4"},"max_buffered_packets":{"type":"TypeInt","optional":true,"default":10},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"NotPreemptable"},"qos_indicator":{"type":"TypeInt","required":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}}}},"default_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":180,"read":5,"delete":180,"update":60}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","required":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","optional":true},"slice_service_type":{"type":"TypeInt","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_monitor_aad_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true,"forceNew":true},"eventhub_name":{"type":"TypeString","optional":true,"forceNew":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"role_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"automation_runbook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"is_global_runbook":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true},"runbook_name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true,"default":false},"webhook_resource_id":{"type":"TypeString","required":true}}}},"azure_app_push_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"azure_function_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"http_trigger_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"email_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"event_hub_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","required":true},"ticket_configuration":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","optional":true,"default":"global","forceNew":true},"logic_app_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"callback_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"short_name":{"type":"TypeString","required":true},"sms_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"webhook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","optional":true,"computed":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_action_group":{"schema":{"action_group_id":{"type":"TypeString","required":true},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"suppression":{"type":"TypeList","required":true,"elem":{"schema":{"recurrence_type":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"end_date_utc":{"type":"TypeString","required":true},"recurrence_monthly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"},"minItems":1},"recurrence_weekly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"start_date_utc":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_activity_log_alert":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"caller":{"type":"TypeString","optional":true},"category":{"type":"TypeString","required":true},"level":{"type":"TypeString","optional":true},"levels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operation_name":{"type":"TypeString","optional":true},"recommendation_category":{"type":"TypeString","optional":true},"recommendation_impact":{"type":"TypeString","optional":true},"recommendation_type":{"type":"TypeString","optional":true},"resource_group":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"previous":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reason":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_id":{"type":"TypeString","optional":true},"resource_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_provider":{"type":"TypeString","optional":true},"resource_providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_type":{"type":"TypeString","optional":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"service_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"services":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"status":{"type":"TypeString","optional":true},"statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sub_status":{"type":"TypeString","optional":true},"sub_statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_action_group":{"schema":{"add_action_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_prometheus_rule_group":{"schema":{"cluster_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"interval":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"action_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":5},"alert":{"type":"TypeString","optional":true},"alert_resolution":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_resolved":{"type":"TypeBool","optional":true},"time_to_resolve":{"type":"TypeString","optional":true}}},"maxItems":1},"annotations":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"expression":{"type":"TypeString","required":true},"for":{"type":"TypeString","optional":true},"labels":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"record":{"type":"TypeString","optional":true},"severity":{"type":"TypeInt","optional":true}}}},"rule_group_enabled":{"type":"TypeBool","optional":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_autoscale_setting":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"send_to_subscription_administrator":{"type":"TypeBool","optional":true,"default":false},"send_to_subscription_co_administrator":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"webhook":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_uri":{"type":"TypeString","required":true}}}}}},"maxItems":1},"predictive":{"type":"TypeList","optional":true,"elem":{"schema":{"look_ahead_time":{"type":"TypeString","optional":true},"scale_mode":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"profile":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeList","required":true,"elem":{"schema":{"default":{"type":"TypeInt","required":true},"maximum":{"type":"TypeInt","required":true},"minimum":{"type":"TypeInt","required":true}}},"maxItems":1},"fixed_date":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hours":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"minutes":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","required":true,"elem":{"schema":{"dimensions":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"divide_by_instance_count":{"type":"TypeBool","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","optional":true},"metric_resource_id":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"statistic":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","required":true},"time_window":{"type":"TypeString","required":true}}},"maxItems":1},"scale_action":{"type":"TypeList","required":true,"elem":{"schema":{"cooldown":{"type":"TypeString","required":true},"direction":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":10}}},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_flow":{"type":"TypeList","required":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"output_stream":{"type":"TypeString","optional":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"transform_kql":{"type":"TypeString","optional":true}}},"minItems":1},"data_sources":{"type":"TypeList","optional":true,"elem":{"schema":{"data_import":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","required":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"stream":{"type":"TypeString","required":true}}}}}},"maxItems":1},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"extension_json":{"type":"TypeString","optional":true},"extension_name":{"type":"TypeString","required":true},"input_data_sources":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"iis_log":{"type":"TypeList","optional":true,"elem":{"schema":{"log_directories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"settings":{"type":"TypeList","optional":true,"elem":{"schema":{"text":{"type":"TypeList","required":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"performance_counter":{"type":"TypeList","optional":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"sampling_frequency_in_seconds":{"type":"TypeInt","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"prometheus_forwarder":{"type":"TypeList","optional":true,"elem":{"schema":{"label_include_filter":{"type":"TypeSet","optional":true,"elem":{"schema":{"label":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"syslog":{"type":"TypeList","optional":true,"elem":{"schema":{"facility_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"log_levels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_event_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"x_path_queries":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_firewall_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}}},"monitor_account":{"type":"TypeList","optional":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"storage_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_blob_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_table_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_declaration":{"type":"TypeSet","optional":true,"elem":{"schema":{"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"stream_name":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule_association":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_collection_rule_id":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"default":"configurationAccessEndpoint","forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","optional":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"log_analytics_destination_type":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"metric":{"type":"TypeSet","optional":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_solution_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"locations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"servicebus_rule_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_metric_alert":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"application_insights_web_test_location_availability_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"component_id":{"type":"TypeString","required":true},"failed_location_count":{"type":"TypeInt","required":true},"web_test_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"auto_mitigate":{"type":"TypeBool","optional":true,"default":true},"criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true,"default":false},"threshold":{"type":"TypeFloat","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"dynamic_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"alert_sensitivity":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"evaluation_failure_count":{"type":"TypeInt","optional":true,"default":4},"evaluation_total_count":{"type":"TypeInt","optional":true,"default":4},"ignore_data_before":{"type":"TypeString","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","optional":true,"default":"PT1M"},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"severity":{"type":"TypeInt","optional":true,"default":3},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_location":{"type":"TypeString","optional":true,"description":"The location of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"target_resource_type":{"type":"TypeString","optional":true,"description":"The resource type (e.g. Microsoft.Compute/virtualMachines) of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"window_size":{"type":"TypeString","optional":true,"default":"PT5M"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scope":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scoped_service":{"schema":{"linked_resource_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_group":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","optional":true},"email_subject":{"type":"TypeString","optional":true}}},"maxItems":1},"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":100},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_type":{"type":"TypeString","optional":true,"default":"ResultCount"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"severity":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","optional":true},"time_window":{"type":"TypeInt","required":true},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_column":{"type":"TypeString","optional":true},"metric_trigger_type":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert_v2":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"custom_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"created_with_api_version":{"type":"TypeString","computed":true},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"failing_periods":{"type":"TypeList","optional":true,"elem":{"schema":{"minimum_failing_periods_to_trigger_alert":{"type":"TypeInt","required":true},"number_of_evaluation_periods":{"type":"TypeInt","required":true}}},"maxItems":1},"metric_measure_column":{"type":"TypeString","optional":true},"operator":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true},"resource_id_column":{"type":"TypeString","optional":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation_method":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"evaluation_frequency":{"type":"TypeString","optional":true},"is_a_legacy_log_analytics_rule":{"type":"TypeBool","computed":true},"is_workspace_alerts_storage_configured":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mute_actions_after_alert_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_time_range_override":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"severity":{"type":"TypeInt","required":true},"skip_query_validation":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"window_duration":{"type":"TypeString","required":true},"workspace_alerts_storage_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"Include"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","required":true}}},"maxItems":1},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_smart_detector_alert_rule":{"schema":{"action_group":{"type":"TypeList","required":true,"elem":{"schema":{"email_subject":{"type":"TypeString","optional":true},"ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"webhook_payload":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"detector_type":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"severity":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling_duration":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database":{"schema":{"auto_pause_delay_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"creation_source_database_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"elastic_pool_id":{"type":"TypeString","optional":true},"geo_backup_enabled":{"type":"TypeBool","optional":true,"default":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"ledger_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"computed":true},"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"maintenance_configuration_name":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeInt","optional":true,"computed":true},"min_capacity":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_replica_count":{"type":"TypeInt","optional":true,"computed":true},"read_scale":{"type":"TypeBool","optional":true,"computed":true},"recover_database_id":{"type":"TypeString","optional":true},"restore_dropped_database_id":{"type":"TypeString","optional":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"sample_name":{"type":"TypeString","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backup_interval_in_hours":{"type":"TypeInt","optional":true,"default":12},"retention_days":{"type":"TypeInt","required":true}}},"maxItems":1},"sku_name":{"type":"TypeString","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Geo"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"transparent_data_encryption_enabled":{"type":"TypeBool","optional":true,"default":true},"zone_redundant":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_database_extended_auditing_policy":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database_vulnerability_assessment_rule_baseline":{"schema":{"baseline_name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"baseline_result":{"type":"TypeSet","required":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"database_name":{"type":"TypeString","required":true,"forceNew":true},"rule_id":{"type":"TypeString","required":true,"forceNew":true},"server_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"max_size_bytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_gb":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_database_settings":{"type":"TypeList","required":true,"elem":{"schema":{"max_capacity":{"type":"TypeFloat","required":true},"min_capacity":{"type":"TypeFloat","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"family":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_server":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}},"minItems":1},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_job_agent":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_job_credential":{"schema":{"job_agent_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_managed_database":{"schema":{"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_days":{"type":"TypeInt","optional":true,"default":7}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_mssql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true},"login_username":{"type":"TypeString","required":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_vulnerability_assessment":{"schema":{"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":true},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_outbound_firewall_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"azuread_administrator":{"type":"TypeList","optional":true,"elem":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login_username":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1,"minItems":1},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_network_restriction_enabled":{"type":"TypeBool","optional":true,"default":false},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transparent_data_encryption_key_vault_key_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_server_dns_alias":{"schema":{"dns_record":{"type":"TypeString","computed":true},"mssql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_mssql_server_extended_auditing_policy":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_account_subscription_id":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_microsoft_support_auditing_policy":{"schema":{"blob_storage_endpoint":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_subscription_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"server_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"server_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_machine":{"schema":{"assessment":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"run_immediately":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"monthly_occurrence":{"type":"TypeInt","optional":true},"start_time":{"type":"TypeString","required":true},"weekly_interval":{"type":"TypeInt","optional":true}}},"maxItems":1}}},"maxItems":1},"auto_backup":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_password":{"type":"TypeString","optional":true},"manual_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"full_backup_frequency":{"type":"TypeString","required":true},"full_backup_start_hour":{"type":"TypeInt","required":true},"full_backup_window_in_hours":{"type":"TypeInt","required":true},"log_backup_frequency_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_period_in_days":{"type":"TypeInt","required":true},"storage_account_access_key":{"type":"TypeString","required":true},"storage_blob_endpoint":{"type":"TypeString","required":true},"system_databases_backup_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"auto_patching":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window_duration_in_minutes":{"type":"TypeInt","required":true},"maintenance_window_starting_hour":{"type":"TypeInt","required":true}}},"maxItems":1},"key_vault_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_url":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"service_principal_name":{"type":"TypeString","required":true,"forceNew":true},"service_principal_secret":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"r_services_enabled":{"type":"TypeBool","optional":true},"sql_connectivity_port":{"type":"TypeInt","optional":true,"default":1433},"sql_connectivity_type":{"type":"TypeString","optional":true,"default":"PRIVATE"},"sql_connectivity_update_password":{"type":"TypeString","optional":true},"sql_connectivity_update_username":{"type":"TypeString","optional":true},"sql_instance":{"type":"TypeList","optional":true,"elem":{"schema":{"adhoc_workloads_optimization_enabled":{"type":"TypeBool","optional":true,"default":false},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"instant_file_initialization_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"lock_pages_in_memory_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"max_dop":{"type":"TypeInt","optional":true,"default":0},"max_server_memory_mb":{"type":"TypeInt","optional":true,"default":2147483647},"min_server_memory_mb":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"sql_license_type":{"type":"TypeString","optional":true,"forceNew":true},"sql_virtual_machine_group_id":{"type":"TypeString","optional":true},"storage_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"data_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"disk_type":{"type":"TypeString","required":true},"log_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"storage_workload_type":{"type":"TypeString","required":true},"system_db_on_data_disk_enabled":{"type":"TypeBool","optional":true,"default":false},"temp_db_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"data_file_count":{"type":"TypeInt","optional":true,"default":8},"data_file_growth_in_mb":{"type":"TypeInt","optional":true,"default":512},"data_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"default_file_path":{"type":"TypeString","required":true},"log_file_growth_mb":{"type":"TypeInt","optional":true,"default":512},"log_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"wsfc_domain_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_bootstrap_account_password":{"type":"TypeString","required":true},"cluster_operator_account_password":{"type":"TypeString","required":true},"sql_service_account_password":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_virtual_machine_availability_group_listener":{"schema":{"availability_group_name":{"type":"TypeString","optional":true,"forceNew":true},"load_balancer_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"probe_port":{"type":"TypeInt","required":true,"forceNew":true},"sql_virtual_machine_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"multi_subnet_ip_configuration":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"replica":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"commit":{"type":"TypeString","required":true,"forceNew":true},"failover_mode":{"type":"TypeString","required":true,"forceNew":true},"readable_secondary":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}}}},"sql_virtual_machine_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_mssql_virtual_machine_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_image_offer":{"type":"TypeString","required":true,"forceNew":true},"sql_image_sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wsfc_domain_profile":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_bootstrap_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_operator_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_subnet_type":{"type":"TypeString","required":true,"forceNew":true},"fqdn":{"type":"TypeString","required":true,"forceNew":true},"organizational_unit_path":{"type":"TypeString","optional":true,"forceNew":true},"sql_service_account_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_primary_key":{"type":"TypeString","optional":true},"storage_account_url":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_password":{"type":"TypeString","optional":true},"backup_retention_days":{"type":"TypeInt","optional":true,"default":7},"create_mode":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"iops":{"type":"TypeInt","optional":true,"computed":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server_active_directory_administrator":{"schema":{"identity_id":{"type":"TypeString","required":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_nat_gateway_public_ip_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nat_gateway_public_ip_prefix_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_netapp_account":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"domain":{"type":"TypeString","required":true},"organizational_unit":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"smb_server_name":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"qos_type":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"size_in_tb":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"daily_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"hourly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"monthly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"maxItems":30},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"azure_vmware_data_store_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"create_from_snapshot_resource_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true,"forceNew":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_clients":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"protocols_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"root_access_enabled":{"type":"TypeBool","optional":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true},"unix_read_write":{"type":"TypeBool","optional":true}}},"maxItems":5},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_features":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_style":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","optional":true,"computed":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","optional":true,"computed":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"application_identifier":{"type":"TypeString","required":true,"forceNew":true},"group_description":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","required":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","required":true},"nfsv41_enabled":{"type":"TypeBool","required":true},"root_access_enabled":{"type":"TypeBool","optional":true,"default":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true,"default":false},"unix_read_write":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":5,"minItems":1},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"security_style":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","required":true,"forceNew":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"volume_spec_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":5,"minItems":2}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_network_connection_monitor":{"schema":{"endpoint":{"type":"TypeSet","required":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"coverage_level":{"type":"TypeString","optional":true},"excluded_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"item":{"type":"TypeSet","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"AgentAddress"}}}},"type":{"type":"TypeString","optional":true,"default":"Include"}}},"maxItems":1},"included_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_resource_id":{"type":"TypeString","optional":true,"computed":true},"target_resource_type":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"output_workspace_resource_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"test_configuration":{"type":"TypeSet","required":true,"elem":{"schema":{"http_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"method":{"type":"TypeString","optional":true,"default":"Get"},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","optional":true},"prefer_https":{"type":"TypeBool","optional":true,"default":false},"request_header":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"valid_status_code_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"icmp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"preferred_ip_version":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"success_threshold":{"type":"TypeList","optional":true,"elem":{"schema":{"checks_failed_percent":{"type":"TypeInt","optional":true},"round_trip_time_ms":{"type":"TypeFloat","optional":true}}},"maxItems":1},"tcp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_port_behavior":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"test_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":60}}}},"test_group":{"type":"TypeSet","required":true,"elem":{"schema":{"destination_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"source_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"test_configuration_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_function_azure_traffic_collector":{"schema":{"collector_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"internal_dns_name_label":{"type":"TypeString","optional":true,"computed":true},"internal_domain_name_suffix":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"computed":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_gateway_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_nat_rule_association":{"schema":{"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_security_group_association":{"schema":{"network_interface_id":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager":{"schema":{"cross_tenant_scopes":{"type":"TypeList","computed":true,"elem":{"schema":{"management_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subscriptions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","required":true,"elem":{"schema":{"management_group_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"scope_accesses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule":{"schema":{"action":{"type":"TypeString","required":true},"admin_rule_collection_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"destination_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"source_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule_collection":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"security_admin_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_connectivity_configuration":{"schema":{"applies_to_group":{"type":"TypeList","required":true,"elem":{"schema":{"global_mesh_enabled":{"type":"TypeBool","optional":true},"group_connectivity":{"type":"TypeString","required":true},"network_group_id":{"type":"TypeString","required":true},"use_hub_gateway":{"type":"TypeBool","optional":true}}}},"connectivity_topology":{"type":"TypeString","required":true},"delete_existing_peering_enabled":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"global_mesh_enabled":{"type":"TypeBool","optional":true},"hub":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true},"resource_type":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_deployment":{"schema":{"configuration_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"scope_access":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_network_manager_management_group_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_scope_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"target_scope_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_security_admin_configuration":{"schema":{"apply_on_network_intent_policy_based_services":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_static_member":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_id":{"type":"TypeString","required":true,"forceNew":true},"region":{"type":"TypeString","computed":true},"target_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_network_manager_subscription_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_profile":{"schema":{"container_network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}},"maxItems":1},"container_network_interface_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_rule":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher_flow_log":{"schema":{"enabled":{"type":"TypeBool","required":true},"location":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"storage_account_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"interval_in_minutes":{"type":"TypeInt","optional":true,"default":60},"workspace_id":{"type":"TypeString","required":true},"workspace_region":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}},"maxItems":1},"version":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_new_relic_monitor":{"schema":{"account_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"account_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ingestion_key":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"organization_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","optional":true,"default":"MONTHLY","forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"newrelic-pay-as-you-go-free-live","forceNew":true},"usage_type":{"type":"TypeString","optional":true,"default":"PAYG","forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nginx_certificate":{"schema":{"certificate_virtual_path":{"type":"TypeString","required":true},"key_vault_secret_id":{"type":"TypeString","required":true},"key_virtual_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_nginx_configuration":{"schema":{"config_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true},"package_data":{"type":"TypeString","optional":true},"protected_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"root_file":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_nginx_deployment":{"schema":{"diagnose_support_enabled":{"type":"TypeBool","optional":true},"frontend_private":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"frontend_public":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"ip_address":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logging_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}}},"managed_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}}},"nginx_version":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"application_mode":{"type":"TypeString","required":true},"bundle_id":{"type":"TypeString","required":true},"key_id":{"type":"TypeString","required":true},"team_id":{"type":"TypeString","required":true},"token":{"type":"TypeString","required":true}}},"maxItems":1},"gcm_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"notification_hub_name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_contact":{"schema":{"contact_profile_id":{"type":"TypeString","required":true,"forceNew":true},"ground_station_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"reservation_end_time":{"type":"TypeString","required":true,"forceNew":true},"reservation_start_time":{"type":"TypeString","required":true,"forceNew":true},"spacecraft_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_orbital_contact_profile":{"schema":{"auto_tracking":{"type":"TypeString","required":true},"event_hub_uri":{"type":"TypeString","optional":true},"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"channels":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"demodulation_configuration":{"type":"TypeString","optional":true},"end_point":{"type":"TypeSet","required":true,"elem":{"schema":{"end_point_name":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","optional":true},"port":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"modulation_configuration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_elevation_degrees":{"type":"TypeFloat","optional":true},"minimum_variable_contact_duration":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_spacecraft":{"schema":{"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"norad_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title_line":{"type":"TypeString","required":true},"two_line_elements":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version_enabled":{"type":"TypeBool","optional":true,"default":true},"extensions_to_provision_after_vm_creation":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"failure_suppression_enabled":{"type":"TypeBool","optional":true},"force_extension_execution_on_change":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"computed":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"os_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_data":{"type":"TypeString","optional":true},"linux_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"windows_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"timezone":{"type":"TypeString","optional":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}}}},"maxItems":1}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"priority_mix":{"type":"TypeList","optional":true,"elem":{"schema":{"base_regular_count":{"type":"TypeInt","optional":true,"default":0},"regular_percentage_above_base":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"computed":true},"sku_name":{"type":"TypeString","optional":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"user_data_base64":{"type":"TypeString","optional":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","optional":true},"anti_virus_profile":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"dns_subscription":{"type":"TypeString","optional":true},"file_blocking_profile":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"url_filtering_profile":{"type":"TypeString","optional":true},"vulnerability_profile":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_certificate":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"self_signed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_fqdn_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"fully_qualified_domain_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_outbound_trust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_outbound_untrust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_prefix_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prefix_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_rule":{"schema":{"action":{"type":"TypeString","required":true},"applications":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"audit_comment":{"type":"TypeString","optional":true},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1,"minItems":1},"decryption_rule_type":{"type":"TypeString","optional":true,"default":"None"},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_fqdn_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"inspection_certificate_id":{"type":"TypeString","optional":true},"logging_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"negate_destination":{"type":"TypeBool","optional":true,"default":false},"negate_source":{"type":"TypeBool","optional":true,"default":false},"priority":{"type":"TypeInt","required":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"application-default"},"protocol_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_palo_alto_virtual_network_appliance":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_active_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"The ticket details.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_eligible_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the eligible role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this eligible role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"Ticket details relating to the assignment.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_point_to_site_vpn_gateway":{"schema":{"connection_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true},"route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"elem":{"schema":{"ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"vpn_client_address_pool":{"type":"TypeList","required":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference_internet_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"scale_unit":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_rule":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","required":true,"forceNew":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_definition_group":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","optional":true},"category":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"policy_definition_reference":{"type":"TypeList","required":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true},"policy_group_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","optional":true,"computed":true}}}},"policy_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"configuration":{"type":"TypeList","required":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true},"content_hash":{"type":"TypeString","optional":true,"computed":true},"content_uri":{"type":"TypeString","optional":true,"computed":true},"parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_tenant_configuration":{"schema":{"private_markdown_storage_enforced":{"type":"TypeBool","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true},"administrator_password":{"type":"TypeString","optional":true},"authentication":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory_auth_enabled":{"type":"TypeBool","optional":true,"default":false},"password_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true},"customer_managed_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replication_role":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_flexible_server_active_directory_administrator":{"schema":{"object_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_database":{"schema":{"charset":{"type":"TypeString","optional":true,"default":"UTF8","forceNew":true},"collation":{"type":"TypeString","optional":true,"default":"en_US.utf8","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_postgresql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_powerbi_embedded":{"schema":{"administrators":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","optional":true,"default":"Gen1","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"target_dns_servers":{"type":"TypeList","required":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"port":{"type":"TypeInt","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","required":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"subnet_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":10},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_zone_name":{"type":"TypeString","required":true,"forceNew":true},"registration_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_endpoint":{"schema":{"custom_dns_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"custom_network_interface_name":{"type":"TypeString","optional":true,"forceNew":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"member_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_dns_zone_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"record_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"type":{"type":"TypeString","computed":true}}}}}}},"private_dns_zone_group":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_zone_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"private_service_connection":{"type":"TypeList","required":true,"elem":{"schema":{"is_manual_connection":{"type":"TypeBool","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_connection_resource_alias":{"type":"TypeString","optional":true,"forceNew":true},"private_connection_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"request_message":{"type":"TypeString","optional":true},"subresource_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_private_endpoint_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","optional":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary":{"type":"TypeBool","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":8},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_proximity_placement_group":{"schema":{"allowed_vm_sizes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ddos_protection_mode":{"type":"TypeString","optional":true,"default":"VirtualNetworkInherited"},"ddos_protection_plan_id":{"type":"TypeString","optional":true},"domain_name_label":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_fqdn":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"prefix_length":{"type":"TypeInt","optional":true,"default":28,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_purview_account":{"schema":{"atlas_kafka_endpoint_primary_connection_string":{"type":"TypeString","computed":true},"atlas_kafka_endpoint_secondary_connection_string":{"type":"TypeString","computed":true},"catalog_endpoint":{"type":"TypeString","computed":true},"guardian_endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_resources":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_namespace_id":{"type":"TypeString","computed":true},"resource_group_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scan_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_recovery_services_vault":{"schema":{"classic_vmware_replication_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"cross_region_restore_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"infrastructure_encryption_enabled":{"type":"TypeBool","required":true},"key_id":{"type":"TypeString","required":true},"use_system_assigned_identity":{"type":"TypeBool","optional":true,"default":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"monitoring":{"type":"TypeList","optional":true,"elem":{"schema":{"alerts_for_all_job_failures_enabled":{"type":"TypeBool","optional":true,"default":true},"alerts_for_critical_operation_failures_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"soft_delete_enabled":{"type":"TypeBool","optional":true,"default":true},"storage_mode_type":{"type":"TypeString","optional":true,"default":"GeoRedundant"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":30,"update":60}},"azurerm_recovery_services_vault_resource_guard_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_guard_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","required":true},"enable_non_ssl_port":{"type":"TypeBool","optional":true,"default":false},"family":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"patch_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window":{"type":"TypeString","optional":true,"default":"PT5H"},"start_hour_utc":{"type":"TypeInt","optional":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"redis_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","optional":true},"aof_storage_connection_string_0":{"type":"TypeString","optional":true},"aof_storage_connection_string_1":{"type":"TypeString","optional":true},"enable_authentication":{"type":"TypeBool","optional":true,"default":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_delta":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_policy":{"type":"TypeString","optional":true,"default":"volatile-lru"},"maxmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"notify_keyspace_events":{"type":"TypeString","optional":true},"rdb_backup_enabled":{"type":"TypeBool","optional":true},"rdb_backup_frequency":{"type":"TypeInt","optional":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","optional":true},"rdb_storage_connection_string":{"type":"TypeString","optional":true}}},"maxItems":1},"redis_version":{"type":"TypeString","optional":true,"computed":true},"replicas_per_master":{"type":"TypeInt","optional":true,"computed":true},"replicas_per_primary":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_redis_enterprise_cluster":{"schema":{"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_enterprise_database":{"schema":{"client_protocol":{"type":"TypeString","optional":true,"default":"Encrypted","forceNew":true},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"clustering_policy":{"type":"TypeString","optional":true,"default":"OSSCluster","forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"default":"VolatileLRU","forceNew":true},"linked_database_group_nickname":{"type":"TypeString","optional":true,"forceNew":true},"linked_database_id":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"module":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"args":{"type":"TypeString","optional":true,"default":"","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}}},"maxItems":4},"name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"port":{"type":"TypeInt","optional":true,"default":10000,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_firewall_rule":{"schema":{"end_ip":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_linked_server":{"schema":{"linked_redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"linked_redis_cache_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_role":{"type":"TypeString","required":true,"forceNew":true},"target_redis_cache_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_relay_hybrid_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"relay_namespace_name":{"type":"TypeString","required":true,"forceNew":true},"requires_client_authorization":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_hybrid_connection_authorization_rule":{"schema":{"hybrid_connection_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_namespace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"metric_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_relay_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_cli":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_power_shell":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_by":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_resource_group_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_resource_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_provider_registration":{"schema":{"feature":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"registered":{"type":"TypeBool","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":30,"update":120}},"azurerm_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_resource_id":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":60}},"azurerm_route":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"communities":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rule_type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_map":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeList","required":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true}}}},"match_criterion":{"type":"TypeList","optional":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_condition":{"type":"TypeString","required":true},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"next_step_if_matched":{"type":"TypeString","optional":true,"default":"Unknown"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_server":{"schema":{"branch_to_branch_traffic_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_route_server_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"route_server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_route_table":{"schema":{"disable_bgp_route_propagation":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_search_service":{"schema":{"allowed_ips":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_failure_mode":{"type":"TypeString","optional":true},"customer_managed_key_enforcement_enabled":{"type":"TypeBool","optional":true,"default":false},"hosting_mode":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","optional":true,"default":1},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","optional":true,"default":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_search_shared_private_link_service":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"search_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_assessment":{"schema":{"additional_data":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"assessment_policy_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeList","required":true,"elem":{"schema":{"cause":{"type":"TypeString","optional":true},"code":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_assessment_policy":{"schema":{"categories":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"implementation_effort":{"type":"TypeString","optional":true},"name":{"type":"TypeString","computed":true},"remediation_description":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true,"default":"Medium"},"threats":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"user_impact":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_auto_provisioning":{"schema":{"auto_provision":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_automation":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","required":true},"trigger_url":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"source":{"type":"TypeList","required":true,"elem":{"schema":{"event_source":{"type":"TypeString","required":true},"rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule":{"type":"TypeList","required":true,"elem":{"schema":{"expected_value":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"property_path":{"type":"TypeString","required":true},"property_type":{"type":"TypeString","required":true}}}}}}}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_contact":{"schema":{"alert_notifications":{"type":"TypeBool","required":true},"alerts_to_admins":{"type":"TypeBool","required":true},"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"default":"default1"},"phone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_server_vulnerability_assessment":{"schema":{"hybrid_machine_id":{"type":"TypeString","optional":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_server_vulnerability_assessment_virtual_machine":{"schema":{"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_setting":{"schema":{"enabled":{"type":"TypeBool","required":true},"setting_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":10,"read":5,"delete":10,"update":10}},"azurerm_security_center_subscription_pricing":{"schema":{"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_extension_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"resource_type":{"type":"TypeString","optional":true,"default":"VirtualMachines"},"subplan":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_workspace":{"schema":{"scope":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sentinel_alert_rule_anomaly_built_in":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_anomaly_duplicate":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"built_in_rule_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"is_default_settings":{"type":"TypeBool","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true},"prioritized_exclude_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prioritize":{"type":"TypeString","optional":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_fusion":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"sub_type":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"severities_allowed":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_machine_learning_behavior_analytics":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_ms_security_incident":{"schema":{"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"display_name_exclude_filter":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name_filter":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_filter":{"type":"TypeString","required":true},"severity_filter":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_nrt":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident_enabled":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_scheduled":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"group_by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_frequency":{"type":"TypeString","optional":true,"default":"PT5H"},"query_period":{"type":"TypeString","optional":true,"default":"PT5H"},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","optional":true,"default":"GreaterThan"},"trigger_threshold":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_threat_intelligence":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_automation_rule":{"schema":{"action_incident":{"type":"TypeList","optional":true,"elem":{"schema":{"classification":{"type":"TypeString","optional":true},"classification_comment":{"type":"TypeString","optional":true},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"owner_id":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true},"status":{"type":"TypeString","optional":true}}}},"action_playbook":{"type":"TypeList","optional":true,"elem":{"schema":{"logic_app_id":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"condition":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"condition_json":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiration":{"type":"TypeString","optional":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true},"triggers_on":{"type":"TypeString","optional":true,"default":"Incidents"},"triggers_when":{"type":"TypeString","optional":true,"default":"Created"}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_sentinel_data_connector_aws_cloud_trail":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_aws_s3":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"destination_table":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sqs_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_azure_active_directory":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_security_center":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_dynamics_365":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_iot":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_cloud_app_security":{"schema":{"alerts_enabled":{"type":"TypeBool","optional":true,"default":true},"discovery_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_microsoft_defender_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_intelligence":{"schema":{"bing_safety_phishing_url_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_emerging_threat_feed_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_365":{"schema":{"exchange_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sharepoint_enabled":{"type":"TypeBool","optional":true,"default":true},"teams_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_office_365_project":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_atp":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_irm":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_power_bi":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence_taxii":{"schema":{"api_root_url":{"type":"TypeString","required":true},"collection_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z"},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"polling_frequency":{"type":"TypeString","optional":true,"default":"OnceAnHour"},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_log_analytics_workspace_onboarding":{"schema":{"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_metadata":{"schema":{"author":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"domains":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verticals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content_id":{"type":"TypeString","required":true},"content_schema_version":{"type":"TypeString","optional":true,"default":"2.0"},"custom_version":{"type":"TypeString","optional":true},"dependency":{"type":"TypeString","optional":true},"first_publish_date":{"type":"TypeString","optional":true},"icon_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"last_publish_date":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true},"preview_images":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"preview_images_dark":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"threat_analysis_tactics":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_analysis_techniques":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_threat_intelligence_indicator":{"schema":{"confidence":{"type":"TypeInt","optional":true,"default":-1},"created_by":{"type":"TypeString","optional":true},"created_on":{"type":"TypeString","computed":true},"defanged":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"extension":{"type":"TypeString","optional":true,"computed":true},"external_id":{"type":"TypeString","computed":true},"external_last_updated_time_utc":{"type":"TypeString","computed":true},"external_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"hashes":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"source_name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}}},"granular_marking":{"type":"TypeList","optional":true,"elem":{"schema":{"language":{"type":"TypeString","optional":true},"marking_ref":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"guid":{"type":"TypeString","computed":true},"indicator_type":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kill_chain_phase":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true}}}},"language":{"type":"TypeString","optional":true},"last_updated_time_utc":{"type":"TypeString","computed":true},"object_marking_refs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parsed_pattern":{"type":"TypeList","computed":true,"elem":{"schema":{"pattern_type_key":{"type":"TypeString","computed":true},"pattern_type_values":{"type":"TypeList","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true},"value_type":{"type":"TypeString","computed":true}}}}}}},"pattern":{"type":"TypeString","required":true},"pattern_type":{"type":"TypeString","required":true},"pattern_version":{"type":"TypeString","optional":true},"revoked":{"type":"TypeBool","optional":true,"default":false},"source":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"validate_from_utc":{"type":"TypeString","required":true},"validate_until_utc":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_watchlist":{"schema":{"default_duration":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"item_search_key":{"type":"TypeString","required":true,"forceNew":true},"labels":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_watchlist_item":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"properties":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"watchlist_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_cluster":{"schema":{"add_on_features":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"azure_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"client_certificate_common_name":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","required":true},"is_admin":{"type":"TypeBool","required":true},"issuer_thumbprint":{"type":"TypeString","optional":true}}}},"client_certificate_thumbprint":{"type":"TypeList","optional":true,"elem":{"schema":{"is_admin":{"type":"TypeBool","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"cluster_code_version":{"type":"TypeString","optional":true,"computed":true},"cluster_endpoint":{"type":"TypeString","computed":true},"diagnostics_config":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_endpoint":{"type":"TypeString","required":true},"protected_account_key_name":{"type":"TypeString","required":true},"queue_endpoint":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"fabric_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_endpoint":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","required":true,"elem":{"schema":{"application_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"client_endpoint_port":{"type":"TypeInt","required":true},"durability_level":{"type":"TypeString","optional":true,"default":"Bronze"},"ephemeral_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"http_endpoint_port":{"type":"TypeInt","required":true},"instance_count":{"type":"TypeInt","required":true},"is_primary":{"type":"TypeBool","required":true},"is_stateless":{"type":"TypeBool","optional":true},"multiple_availability_zones":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reverse_proxy_endpoint_port":{"type":"TypeInt","optional":true}}}},"reliability_level":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_proxy_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"reverse_proxy_certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"service_fabric_zonal_upgrade_mode":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_mode":{"type":"TypeString","required":true},"upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"delta_health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_delta_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0},"max_upgrade_domain_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"force_restart_enabled":{"type":"TypeBool","optional":true},"health_check_retry_timeout":{"type":"TypeString","optional":true,"default":"00:45:00"},"health_check_stable_duration":{"type":"TypeString","optional":true,"default":"00:01:00"},"health_check_wait_duration":{"type":"TypeString","optional":true,"default":"00:00:30"},"health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"upgrade_domain_timeout":{"type":"TypeString","optional":true,"default":"02:00:00"},"upgrade_replica_set_check_timeout":{"type":"TypeString","optional":true,"default":"10675199.02:48:05.4775807"},"upgrade_timeout":{"type":"TypeString","optional":true,"default":"12:00:00"}}},"maxItems":1},"vm_image":{"type":"TypeString","required":true,"forceNew":true},"vmss_zonal_upgrade_mode":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_managed_cluster":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","optional":true},"thumbprint":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"backup_service_enabled":{"type":"TypeBool","optional":true},"client_connection_port":{"type":"TypeInt","required":true},"custom_fabric_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","required":true},"section":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dns_name":{"type":"TypeString","optional":true,"computed":true},"dns_service_enabled":{"type":"TypeBool","optional":true},"http_gateway_port":{"type":"TypeInt","required":true},"lb_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true},"frontend_port":{"type":"TypeInt","required":true},"probe_protocol":{"type":"TypeString","required":true},"probe_request_path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","optional":true,"elem":{"schema":{"application_port_range":{"type":"TypeString","required":true},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"data_disk_size_gb":{"type":"TypeInt","required":true},"data_disk_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"},"ephemeral_port_range":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"multiple_placement_groups_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"primary":{"type":"TypeBool","optional":true},"stateless":{"type":"TypeBool","optional":true},"vm_image_offer":{"type":"TypeString","required":true},"vm_image_publisher":{"type":"TypeString","required":true},"vm_image_sku":{"type":"TypeString","required":true},"vm_image_version":{"type":"TypeString","required":true},"vm_instance_count":{"type":"TypeInt","required":true},"vm_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"certificates":{"type":"TypeList","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}}},"vault_id":{"type":"TypeString","required":true}}}},"vm_size":{"type":"TypeString","required":true}}}},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_wave":{"type":"TypeString","optional":true,"default":"Wave0"},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling_enabled":{"type":"TypeBool","optional":true,"default":false},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","optional":true,"computed":true},"zone_balancing_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":0},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_id":{"type":"TypeString","required":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_network_rule_set":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true,"default":false},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true,"default":true},"enable_express":{"type":"TypeBool","optional":true,"default":false},"enable_partitioning":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"client_scoped_subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"forceNew":true},"is_client_scoped_subscription_durable":{"type":"TypeBool","computed":true},"is_client_scoped_subscription_shareable":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"client_scoped_subscription_enabled":{"type":"TypeBool","optional":true,"default":false},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","optional":true,"default":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription_rule":{"schema":{"action":{"type":"TypeString","optional":true},"correlation_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","optional":true},"correlation_id":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"message_id":{"type":"TypeString","optional":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reply_to":{"type":"TypeString","optional":true},"reply_to_session_id":{"type":"TypeString","optional":true},"session_id":{"type":"TypeString","optional":true},"to":{"type":"TypeString","optional":true}}},"maxItems":1},"filter_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_filter":{"type":"TypeString","optional":true},"sql_filter_compatibility_level":{"type":"TypeInt","computed":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"enable_express":{"type":"TypeBool","optional":true},"enable_partitioning":{"type":"TypeBool","optional":true,"forceNew":true},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"support_ordering":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image":{"schema":{"accelerated_network_support_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"architecture":{"type":"TypeString","optional":true,"default":"x64","forceNew":true},"confidential_vm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"confidential_vm_supported":{"type":"TypeBool","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"disk_types_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true,"forceNew":true},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"identifier":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"max_recommended_vcpu_count":{"type":"TypeInt","optional":true},"min_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"min_recommended_vcpu_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true,"forceNew":true},"purchase_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_note_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"specialized":{"type":"TypeBool","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"community_gallery":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"eula":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"prefix":{"type":"TypeString","required":true,"forceNew":true},"publisher_email":{"type":"TypeString","required":true,"forceNew":true},"publisher_uri":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"permission":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_version":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"image_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_image_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk_snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"replication_mode":{"type":"TypeString","optional":true,"default":"Full","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"hostname":{"type":"TypeString","computed":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"live_trace_enabled":{"type":"TypeBool","optional":true,"default":false},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":30},"service_mode":{"type":"TypeString","optional":true,"default":"Default"},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"upstream_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"category_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"event_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hub_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_network_acl":{"schema":{"default_action":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"sub_resource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"source_network_name":{"type":"TypeString","required":true,"forceNew":true},"source_system_center_virtual_machine_manager_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_site_recovery_hyperv_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_hours":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_hours":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"replication_interval_in_seconds":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_replication_policy_association":{"schema":{"hyperv_site_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_site_recovery_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_network_id":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container_mapping":{"schema":{"automatic_update":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true},"automation_account_id":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_source_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_target_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replicated_vm":{"schema":{"managed_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_id":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_disk_encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","configMode":"Auto","required":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_encryption_key":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"target_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"target_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_replica_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true}}}},"multi_vm_group_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"failover_test_public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"failover_test_static_ip":{"type":"TypeString","optional":true,"computed":true},"failover_test_subnet_name":{"type":"TypeString","optional":true,"computed":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"recovery_public_ip_address_id":{"type":"TypeString","optional":true},"source_network_interface_id":{"type":"TypeString","optional":true,"computed":true},"target_static_ip":{"type":"TypeString","optional":true},"target_subnet_name":{"type":"TypeString","optional":true}}}},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","required":true,"forceNew":true},"target_availability_set_id":{"type":"TypeString","optional":true},"target_boot_diagnostic_storage_account_id":{"type":"TypeString","optional":true},"target_capacity_reservation_group_id":{"type":"TypeString","optional":true},"target_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"target_network_id":{"type":"TypeString","optional":true,"computed":true},"target_proximity_placement_group_id":{"type":"TypeString","optional":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"target_virtual_machine_scale_set_id":{"type":"TypeString","optional":true},"target_zone":{"type":"TypeString","optional":true,"forceNew":true},"test_network_id":{"type":"TypeString","optional":true,"computed":true},"unmanaged_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_uri":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}}}}},"timeouts":{"create":180,"read":5,"delete":80,"update":80}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"primary_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_zone":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"boot_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"failover_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_group":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"minItems":3},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"shutdown_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"source_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_services_vault_hyperv_site":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":180}},"azurerm_site_recovery_vmware_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_vmware_replication_policy_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_snapshot":{"schema":{"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"incremental_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_accelerator":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_active_deployment":{"schema":{"deployment_name":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_api_portal":{"schema":{"gateway_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"https_only_enabled":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_spring_cloud_api_portal_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_api_portal_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"custom_persistent_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"mount_path":{"type":"TypeString","required":true},"read_only_enabled":{"type":"TypeBool","optional":true,"default":false},"share_name":{"type":"TypeString","required":true},"storage_name":{"type":"TypeString","required":true}}},"minItems":1},"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backend_protocol":{"type":"TypeString","optional":true,"default":"Default"},"read_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":300},"send_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":60},"session_affinity":{"type":"TypeString","optional":true,"default":"None"},"session_cookie_max_age":{"type":"TypeInt","optional":true}}},"maxItems":1},"is_public":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"persistent_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","optional":true,"default":"/persistent"},"size_in_gb":{"type":"TypeInt","required":true}}},"maxItems":1},"public_endpoint_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"tls_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_cosmosdb_association":{"schema":{"api_type":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_access_key":{"type":"TypeString","required":true},"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_cassandra_keyspace_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_database_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_graph_name":{"type":"TypeString","optional":true},"cosmosdb_mongo_database_name":{"type":"TypeString","optional":true},"cosmosdb_sql_database_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_mysql_association":{"schema":{"database_name":{"type":"TypeString","required":true},"mysql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_redis_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"redis_access_key":{"type":"TypeString","required":true},"redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_application_live_view":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_build_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"build_result_id":{"type":"TypeString","required":true},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_build_pack_binding":{"schema":{"binding_type":{"type":"TypeString","optional":true},"launch":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_builder_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_builder":{"schema":{"build_pack_group":{"type":"TypeSet","required":true,"elem":{"schema":{"build_pack_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"stack":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_certificate":{"schema":{"certificate_content":{"type":"TypeString","optional":true,"forceNew":true},"exclude_private_key":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_configuration_service":{"schema":{"generation":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"ca_certificate_id":{"type":"TypeString","optional":true},"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"label":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"patterns":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"private_key":{"type":"TypeString","optional":true},"search_paths":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"strict_host_key_checking":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}}}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_connection":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"spring_cloud_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_container_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"arguments":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"commands":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"language_framework":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"server":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_custom_domain":{"schema":{"certificate_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_customized_accelerator":{"schema":{"accelerator_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"git_repository":{"type":"TypeList","required":true,"elem":{"schema":{"basic_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"ca_certificate_id":{"type":"TypeString","optional":true},"commit":{"type":"TypeString","optional":true},"git_tag":{"type":"TypeString","optional":true},"interval_in_seconds":{"type":"TypeInt","optional":true},"ssh_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}}},"maxItems":1},"icon_url":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_accelerator_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_dev_tool_portal":{"schema":{"application_accelerator_enabled":{"type":"TypeBool","optional":true,"computed":true},"application_live_view_enabled":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"metadata_url":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway":{"schema":{"api_metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"documentation_url":{"type":"TypeString","optional":true},"server_url":{"type":"TypeString","optional":true},"title":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"application_performance_monitoring_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verification_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origin_patterns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","optional":true},"exposed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"max_age_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"https_only":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"default":"1"},"memory":{"type":"TypeString","optional":true,"default":"2Gi"}}},"maxItems":1},"sensitive_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_route_config":{"schema":{"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"open_api":{"type":"TypeList","optional":true,"elem":{"schema":{"uri":{"type":"TypeString","optional":true}}},"maxItems":1},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeString","optional":true,"default":"HTTP"},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"classification_tags":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"sso_validation_enabled":{"type":"TypeBool","optional":true},"title":{"type":"TypeString","optional":true},"token_relay":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","optional":true}}}},"spring_cloud_app_id":{"type":"TypeString","optional":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"sso_validation_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_java_deployment":{"schema":{"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"jvm_options":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"default":"Java_8"},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_service":{"schema":{"build_agent_pool_size":{"type":"TypeString","optional":true},"config_server_git_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"pattern":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"container_registry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"server":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"default_build_service":{"type":"TypeList","optional":true,"elem":{"schema":{"container_registry_name":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"log_stream_public_endpoint_enabled":{"type":"TypeBool","optional":true},"marketplace":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"plan":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"app_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"app_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"cidr_ranges":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":3},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"read_timeout_seconds":{"type":"TypeInt","optional":true},"service_runtime_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_runtime_subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_registry_enabled":{"type":"TypeBool","optional":true},"service_registry_id":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"S0","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"sample_rate":{"type":"TypeFloat","optional":true,"default":10}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_date":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","optional":true,"computed":true},"elastic_pool_name":{"type":"TypeString","optional":true,"computed":true},"encryption":{"type":"TypeString","computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"operation_mode":{"type":"TypeString","optional":true,"default":"Import"},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_size_bytes":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_scale":{"type":"TypeBool","optional":true,"default":false},"requested_service_objective_id":{"type":"TypeString","optional":true,"computed":true},"requested_service_objective_name":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"source_database_deletion_date":{"type":"TypeString","optional":true,"computed":true},"source_database_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_elasticpool":{"schema":{"creation_date":{"type":"TypeString","computed":true},"db_dtu_max":{"type":"TypeInt","optional":true,"computed":true},"db_dtu_min":{"type":"TypeInt","optional":true,"computed":true},"dtu":{"type":"TypeInt","required":true},"edition":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_size":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_servers":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_database":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"default":false},"login":{"type":"TypeString","required":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"computed":true},"email_addresses":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ssh_public_key":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_stack_hci_cluster":{"schema":{"automanage_configuration_id":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site":{"schema":{"api_key":{"type":"TypeString","computed":true},"default_host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_size":{"type":"TypeString","optional":true,"default":"Free"},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"static_site_id":{"type":"TypeString","required":true,"forceNew":true},"validation_token":{"type":"TypeString","computed":true},"validation_type":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"account_kind":{"type":"TypeString","optional":true,"default":"StorageV2"},"account_replication_type":{"type":"TypeString","required":true},"account_tier":{"type":"TypeString","required":true,"forceNew":true},"allow_nested_items_to_be_public":{"type":"TypeBool","optional":true,"default":true},"allowed_copy_scope":{"type":"TypeString","optional":true},"azure_files_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","required":true},"domain_sid":{"type":"TypeString","required":true},"forest_name":{"type":"TypeString","required":true},"netbios_domain_name":{"type":"TypeString","required":true},"storage_sid":{"type":"TypeString","required":true}}},"maxItems":1},"directory_type":{"type":"TypeString","required":true}}},"maxItems":1},"blob_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"change_feed_enabled":{"type":"TypeBool","optional":true,"default":false},"change_feed_retention_in_days":{"type":"TypeInt","optional":true},"container_delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"default_service_version":{"type":"TypeString","optional":true,"computed":true},"delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"last_access_time_enabled":{"type":"TypeBool","optional":true,"default":false},"restore_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true}}},"maxItems":1},"versioning_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cross_tenant_replication_enabled":{"type":"TypeBool","optional":true,"default":true},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"use_subdomain":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_to_oauth_authentication":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_https_traffic_only":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_protected_append_writes":{"type":"TypeBool","required":true},"period_since_creation_in_days":{"type":"TypeInt","required":true},"state":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"is_hns_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"large_file_share_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"default":"TLS1_2"},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"nfsv3_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"queue_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"queue_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"hour_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"logging":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"delete":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"minute_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"choice":{"type":"TypeString","optional":true,"default":"MicrosoftRouting"},"publish_internet_endpoints":{"type":"TypeBool","optional":true,"default":false},"publish_microsoft_endpoints":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sas_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_action":{"type":"TypeString","optional":true,"default":"Log"},"expiration_period":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"sftp_enabled":{"type":"TypeBool","optional":true,"default":false},"share_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"smb":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"channel_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"kerberos_ticket_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"multichannel_enabled":{"type":"TypeBool","optional":true,"default":false},"versions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"shared_access_key_enabled":{"type":"TypeBool","optional":true,"default":true},"static_website":{"type":"TypeList","optional":true,"elem":{"schema":{"error_404_document":{"type":"TypeString","optional":true},"index_document":{"type":"TypeString","optional":true}}},"maxItems":1},"table_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_account_customer_managed_key":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_local_user":{"schema":{"home_directory":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","computed":true},"permission_scope":{"type":"TypeList","optional":true,"elem":{"schema":{"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"create":{"type":"TypeBool","optional":true,"default":false},"delete":{"type":"TypeBool","optional":true,"default":false},"list":{"type":"TypeBool","optional":true,"default":false},"read":{"type":"TypeBool","optional":true,"default":false},"write":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_name":{"type":"TypeString","required":true},"service":{"type":"TypeString","required":true}}}},"sid":{"type":"TypeString","computed":true},"ssh_authorized_key":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true}}}},"ssh_key_enabled":{"type":"TypeBool","optional":true,"default":false},"ssh_password_enabled":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_network_rules":{"schema":{"bypass":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_subnet_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"cache_control":{"type":"TypeString","optional":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallelism":{"type":"TypeInt","optional":true,"default":8,"forceNew":true},"size":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"source_content":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_blob_inventory_policy":{"schema":{"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"exclude_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"include_blob_versions":{"type":"TypeBool","optional":true,"default":false},"include_deleted":{"type":"TypeBool","optional":true,"default":false},"include_snapshots":{"type":"TypeBool","optional":true,"default":false},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10}}},"maxItems":1},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true},"schema_fields":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","optional":true,"default":"private"},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_filesystem":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"group":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"owner":{"type":"TypeString","optional":true,"computed":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_path":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"filesystem_name":{"type":"TypeString","required":true,"forceNew":true},"group":{"type":"TypeString","optional":true,"computed":true},"owner":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","required":true,"forceNew":true},"resource":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_encryption_scope":{"schema":{"infrastructure_encryption_required":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"base_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","optional":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"snapshot":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"version":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"filters":{"type":"TypeList","required":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operation":{"type":"TypeString","optional":true,"default":"=="},"value":{"type":"TypeString","required":true}}}},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_agent":{"schema":{"arc_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"arc_virtual_machine_uuid":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_job_definition":{"schema":{"agent_name":{"type":"TypeString","optional":true},"copy_mode":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source_name":{"type":"TypeString","required":true,"forceNew":true},"source_sub_path":{"type":"TypeString","optional":true,"forceNew":true},"storage_mover_project_id":{"type":"TypeString","required":true,"forceNew":true},"target_name":{"type":"TypeString","required":true,"forceNew":true},"target_sub_path":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_project":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_source_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"export":{"type":"TypeString","optional":true,"forceNew":true},"host":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nfs_version":{"type":"TypeString","optional":true,"default":"NFSauto","forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_target_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_object_replication":{"schema":{"destination_object_replication_id":{"type":"TypeString","computed":true},"destination_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"copy_blobs_created_after":{"type":"TypeString","optional":true,"default":"OnlyNewObjects"},"destination_container_name":{"type":"TypeString","required":true,"forceNew":true},"filter_out_blobs_with_prefix":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"source_container_name":{"type":"TypeString","required":true,"forceNew":true}}}},"source_object_replication_id":{"type":"TypeString","computed":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_queue":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}}},"id":{"type":"TypeString","required":true}}}},"enabled_protocol":{"type":"TypeString","optional":true,"default":"SMB","forceNew":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeInt","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_directory":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"share_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_file":{"schema":{"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_length":{"type":"TypeInt","computed":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","optional":true,"default":"","forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"storage_share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","optional":true,"default":"AllowAllTraffic"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync_cloud_endpoint":{"schema":{"file_share_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_sync_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"storage_sync_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_storage_table":{"schema":{"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","required":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"streaming_capacity":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_stream_analytics_function_javascript_uda":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"script":{"type":"TypeString","required":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_function_javascript_udf":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","optional":true,"computed":true},"content_storage_policy":{"type":"TypeString","optional":true,"default":"SystemAccount"},"data_locale":{"type":"TypeString","optional":true,"computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":5},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":0},"events_out_of_order_policy":{"type":"TypeString","optional":true,"default":"Adjust"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"job_id":{"type":"TypeString","computed":true},"job_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_error_policy":{"type":"TypeString","optional":true,"default":"Drop"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_id":{"type":"TypeString","optional":true},"streaming_units":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transformation_query":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true,"default":"Cloud","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job_schedule":{"schema":{"last_output_time":{"type":"TypeString","computed":true},"start_mode":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5}},"azurerm_stream_analytics_output_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"batch_max_wait_time":{"type":"TypeString","optional":true},"batch_min_rows":{"type":"TypeInt","optional":true},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_cosmosdb":{"schema":{"container_name":{"type":"TypeString","required":true},"cosmosdb_account_key":{"type":"TypeString","required":true},"cosmosdb_sql_database_id":{"type":"TypeString","required":true},"document_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_function":{"schema":{"api_key":{"type":"TypeString","required":true},"batch_max_count":{"type":"TypeInt","optional":true,"default":100},"batch_max_in_bytes":{"type":"TypeInt","optional":true,"default":262144},"function_app":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_mssql":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"database":{"type":"TypeString","required":true,"forceNew":true},"max_batch_count":{"type":"TypeFloat","optional":true,"default":10000},"max_writer_count":{"type":"TypeFloat","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_powerbi":{"schema":{"dataset":{"type":"TypeString","required":true},"group_id":{"type":"TypeString","required":true},"group_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true},"token_user_display_name":{"type":"TypeString","optional":true},"token_user_principal_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_queue":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"queue_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_topic":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_synapse":{"schema":{"database":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_table":{"schema":{"batch_size":{"type":"TypeInt","required":true},"columns_to_remove":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_mssql":{"schema":{"database":{"type":"TypeString","required":true},"delta_snapshot_query":{"type":"TypeString","optional":true},"full_snapshot_query":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"refresh_interval_duration":{"type":"TypeString","optional":true},"refresh_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_blob":{"schema":{"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub_v2":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_iothub":{"schema":{"endpoint":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"iothub_namespace":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"shared_access_policy_key":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"delegation":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"service_delegation":{"type":"TypeList","required":true,"elem":{"schema":{"actions":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}},"maxItems":1}}}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","optional":true,"computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_endpoint_policy_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"service_endpoints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_nat_gateway_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_network_security_group_association":{"schema":{"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_route_table_association":{"schema":{"route_table_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_service_endpoint_storage_policy":{"schema":{"definition":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"service":{"type":"TypeString","optional":true,"default":"Microsoft.Storage"},"service_resources":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription":{"schema":{"alias":{"type":"TypeString","optional":true,"description":"The Alias Name of the subscription. If omitted a new UUID will be generated for this property.","computed":true,"forceNew":true},"billing_scope_id":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true,"description":"The GUID of the Subscription.","computed":true,"forceNew":true},"subscription_name":{"type":"TypeString","required":true,"description":"The Display Name for the Subscription."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID to which the subscription belongs","computed":true},"workload":{"type":"TypeString","optional":true,"description":"The workload type for the Subscription. Possible values are `Production` (default) and `DevTest`.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_synapse_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_azure":{"schema":{"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_self_hosted":{"schema":{"authorization_key_primary":{"type":"TypeString","computed":true},"authorization_key_secondary":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_linked_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_private_link_hub":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_role_assignment":{"schema":{"principal_id":{"type":"TypeString","required":true,"forceNew":true},"role_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_spark_pool":{"schema":{"auto_pause":{"type":"TypeList","optional":true,"elem":{"schema":{"delay_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true},"min_node_count":{"type":"TypeInt","required":true}}},"maxItems":1},"cache_size":{"type":"TypeInt","optional":true},"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_executor_allocation_enabled":{"type":"TypeBool","optional":true,"default":false},"library_requirement":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"max_executors":{"type":"TypeInt","optional":true},"min_executors":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true},"node_size":{"type":"TypeString","required":true},"node_size_family":{"type":"TypeString","required":true},"session_level_packages_enabled":{"type":"TypeBool","optional":true,"default":false},"spark_config":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"spark_events_folder":{"type":"TypeString","optional":true,"default":"/events"},"spark_log_folder":{"type":"TypeString","optional":true,"default":"/logs"},"spark_version":{"type":"TypeString","optional":true,"default":"2.4"},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"data_encrypted":{"type":"TypeBool","optional":true},"geo_backup_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_database_id":{"type":"TypeString","optional":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"point_in_time":{"type":"TypeString","required":true,"forceNew":true},"source_database_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sql_pool_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment_baseline":{"schema":{"baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"rule_name":{"type":"TypeString","required":true},"sql_pool_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_classifier":{"schema":{"context":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"importance":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"member_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true},"workload_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_group":{"schema":{"importance":{"type":"TypeString","optional":true,"default":"normal"},"max_resource_percent":{"type":"TypeInt","required":true},"max_resource_percent_per_request":{"type":"TypeFloat","optional":true,"default":3},"min_resource_percent":{"type":"TypeInt","required":true},"min_resource_percent_per_request":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_execution_timeout_in_seconds":{"type":"TypeInt","optional":true},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace":{"schema":{"aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"azure_devops_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"last_commit_id":{"type":"TypeString","optional":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"compute_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","optional":true,"default":"cmk"},"key_versionless_id":{"type":"TypeString","required":true}}},"maxItems":1},"data_exfiltration_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"github_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","optional":true},"last_commit_id":{"type":"TypeString","optional":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"linking_allowed_for_aad_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sql_administrator_login":{"type":"TypeString","optional":true,"forceNew":true},"sql_administrator_login_password":{"type":"TypeString","optional":true},"sql_identity_control_enabled":{"type":"TypeBool","optional":true},"storage_data_lake_gen2_filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_key":{"schema":{"active":{"type":"TypeBool","required":true},"customer_managed_key_name":{"type":"TypeString","required":true},"customer_managed_key_versionless_id":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_sql_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true},"workspace_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_template_deployment":{"schema":{"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"parameters_body":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"template_body":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_tenant_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_traffic_manager_azure_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_external_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_nested_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"minimum_child_endpoints":{"type":"TypeInt","required":true},"minimum_required_child_endpoints_ipv4":{"type":"TypeInt","optional":true},"minimum_required_child_endpoints_ipv6":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","required":true,"elem":{"schema":{"relative_name":{"type":"TypeString","required":true,"forceNew":true},"ttl":{"type":"TypeInt","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","computed":true},"max_return":{"type":"TypeInt","optional":true},"monitor_config":{"type":"TypeList","required":true,"elem":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"expected_status_code_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":30},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":10},"tolerated_number_of_failures":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"profile_status":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","required":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer":{"schema":{"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer_edge_module":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"video_analyzer_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_desktop_application":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"command_line_argument_policy":{"type":"TypeString","required":true},"command_line_arguments":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true,"computed":true},"icon_index":{"type":"TypeInt","optional":true},"icon_path":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","required":true},"show_in_portal":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_application_group":{"schema":{"default_desktop_display_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"load_balancer_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_sessions_allowed":{"type":"TypeInt","optional":true,"default":999999},"name":{"type":"TypeString","required":true,"forceNew":true},"personal_desktop_assignment_type":{"type":"TypeString","optional":true,"forceNew":true},"preferred_app_group_type":{"type":"TypeString","optional":true,"default":"Desktop","description":"Preferred App Group type to display","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scheduled_agent_updates":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","required":true}}},"maxItems":2},"timezone":{"type":"TypeString","optional":true,"default":"UTC"},"use_session_host_timezone":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"start_vm_on_connect":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"validate_environment":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool_registration_info":{"schema":{"expiration_date":{"type":"TypeString","required":true},"hostpool_id":{"type":"TypeString","required":true,"forceNew":true},"token":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_desktop_scaling_plan":{"schema":{"description":{"type":"TypeString","optional":true},"exclusion_tag":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"hostpool_id":{"type":"TypeString","required":true},"scaling_plan_enabled":{"type":"TypeBool","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"off_peak_load_balancing_algorithm":{"type":"TypeString","required":true},"off_peak_start_time":{"type":"TypeString","required":true},"peak_load_balancing_algorithm":{"type":"TypeString","required":true},"peak_start_time":{"type":"TypeString","required":true},"ramp_down_capacity_threshold_percent":{"type":"TypeInt","required":true},"ramp_down_force_logoff_users":{"type":"TypeBool","required":true},"ramp_down_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_down_minimum_hosts_percent":{"type":"TypeInt","required":true},"ramp_down_notification_message":{"type":"TypeString","required":true},"ramp_down_start_time":{"type":"TypeString","required":true},"ramp_down_stop_hosts_when":{"type":"TypeString","required":true},"ramp_down_wait_time_minutes":{"type":"TypeInt","required":true},"ramp_up_capacity_threshold_percent":{"type":"TypeInt","optional":true},"ramp_up_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_up_minimum_hosts_percent":{"type":"TypeInt","optional":true},"ramp_up_start_time":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace":{"schema":{"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace_application_group_association":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","optional":true,"forceNew":true},"default_route_table_id":{"type":"TypeString","computed":true},"hub_routing_preference":{"type":"TypeString","optional":true,"default":"ExpressRoute"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"next_hop_ip_address":{"type":"TypeString","required":true}}}},"sku":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_auto_scale_min_capacity":{"type":"TypeInt","optional":true,"default":2},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_connection_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"static_vnet_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true},"next_hop_ip_address":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_ip":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_route_table_route":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"},"route_table_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_security_partner_provider":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","required":true,"forceNew":true}}},"maxItems":1},"availability_set_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"delete_data_disks_on_termination":{"type":"TypeBool","optional":true,"default":false},"delete_os_disk_on_termination":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"os_profile":{"type":"TypeSet","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","required":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true,"default":false},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":false},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"primary_network_interface_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_data_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"vhd_uri":{"type":"TypeString","optional":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"storage_image_reference":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"storage_os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"image_uri":{"type":"TypeString","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","optional":true,"computed":true},"vhd_uri":{"type":"TypeString","optional":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vm_size":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_data_disk_attachment":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Attach","forceNew":true},"lun":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_machine_scale_set":{"schema":{"automatic_os_upgrade":{"type":"TypeBool","optional":true,"default":false},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"health_probe_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeSet","required":true,"elem":{"schema":{"accelerated_networking":{"type":"TypeBool","optional":true},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"public_ip_address_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","required":true},"idle_timeout":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"subnet_id":{"type":"TypeString","required":true}}}},"ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","required":true}}}},"os_profile":{"type":"TypeList","required":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name_prefix":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","optional":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeSet","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true},"provision_vm_agent":{"type":"TypeBool","optional":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"priority":{"type":"TypeString","optional":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_batch_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","optional":true,"default":20},"pause_time_between_batches":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1},"single_placement_group":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"storage_profile_data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true}}}},"storage_profile_image_reference":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"offer":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_profile_os_disk":{"type":"TypeSet","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"image":{"type":"TypeString","optional":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"vhd_containers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_policy_mode":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_scale_set_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_scale_set_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"machine_scope":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exclude_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"include_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"bgp_community":{"type":"TypeString","optional":true},"ddos_protection_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"enable":{"type":"TypeBool","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"enforcement":{"type":"TypeString","required":true}}},"maxItems":1},"flow_timeout_in_minutes":{"type":"TypeInt","optional":true},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"security_group":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_dns_servers":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","optional":true,"computed":true},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","optional":true},"peer_weight":{"type":"TypeInt","optional":true},"peering_addresses":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"apipa_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"default_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_name":{"type":"TypeString","optional":true,"computed":true},"tunnel_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1}}},"maxItems":1},"custom_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"default_local_network_gateway_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"generation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true,"default":"vnetGatewayConfig"},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":3},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"vpn_client_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","optional":true},"aad_issuer":{"type":"TypeString","optional":true},"aad_tenant":{"type":"TypeString","optional":true},"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","optional":true},"radius_server_secret":{"type":"TypeString","optional":true},"revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"vpn_auth_types":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":3},"vpn_client_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"vpn_type":{"type":"TypeString","optional":true,"default":"RouteBased","forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"connection_protocol":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_bgp_addresses":{"type":"TypeList","optional":true,"elem":{"schema":{"primary":{"type":"TypeString","required":true},"secondary":{"type":"TypeString","optional":true}}},"maxItems":1},"dpd_timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"express_route_circuit_id":{"type":"TypeString","optional":true,"forceNew":true},"express_route_gateway_bypass":{"type":"TypeBool","optional":true,"computed":true},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_datasize":{"type":"TypeInt","optional":true,"computed":true},"sa_lifetime":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"local_network_gateway_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_virtual_network_gateway_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_weight":{"type":"TypeInt","optional":true,"computed":true},"shared_key":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true,"forceNew":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","optional":true,"computed":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway_nat_rule":{"schema":{"external_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_peering":{"schema":{"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","optional":true,"default":true},"disable_vpn_encryption":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"office365_local_breakout_category":{"type":"TypeString","optional":true,"default":"None"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"Standard"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vmware_cluster":{"schema":{"cluster_node_count":{"type":"TypeInt","required":true},"cluster_number":{"type":"TypeInt","computed":true},"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"vmware_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_vmware_express_route_authorization":{"schema":{"express_route_authorization_id":{"type":"TypeString","computed":true},"express_route_authorization_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_netapp_volume_attachment":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"netapp_volume_id":{"type":"TypeString","required":true,"forceNew":true},"vmware_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"management_cluster":{"type":"TypeList","required":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","required":true}}},"maxItems":1},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_subnet_cidr":{"type":"TypeString","required":true,"forceNew":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"nsxt_password":{"type":"TypeString","optional":true,"forceNew":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcenter_password":{"type":"TypeString","optional":true,"forceNew":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"create":600,"read":5,"delete":600,"update":600}},"azurerm_voice_services_communications_gateway":{"schema":{"api_bridge":{"type":"TypeString","optional":true},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse","forceNew":true},"codecs":{"type":"TypeString","required":true},"connectivity":{"type":"TypeString","required":true,"forceNew":true},"e911_type":{"type":"TypeString","required":true},"emergency_dial_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_teams_voicemail_pilot_number":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"on_prem_mcp_enabled":{"type":"TypeBool","optional":true},"platforms":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_location":{"type":"TypeSet","required":true,"elem":{"schema":{"allowed_media_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_signaling_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"esrp_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true},"operator_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_voice_services_communications_gateway_test_line":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"purpose":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_services_communications_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway":{"schema":{"bgp_route_translation_for_nat_enabled":{"type":"TypeBool","optional":true,"default":false},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true,"forceNew":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instance_1_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"peer_weight":{"type":"TypeInt","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scale_unit":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_gateway_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_vpn_site_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"traffic_selector_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"local_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"remote_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_link":{"type":"TypeList","required":true,"elem":{"schema":{"bandwidth_mbps":{"type":"TypeInt","optional":true,"default":10},"bgp_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default"},"custom_bgp_address":{"type":"TypeSet","optional":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"ip_configuration_id":{"type":"TypeString","required":true}}}},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"encryption_algorithm":{"type":"TypeString","required":true},"ike_encryption_algorithm":{"type":"TypeString","required":true},"ike_integrity_algorithm":{"type":"TypeString","required":true},"integrity_algorithm":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kb":{"type":"TypeInt","required":true},"sa_lifetime_sec":{"type":"TypeInt","required":true}}},"minItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"policy_based_traffic_selector_enabled":{"type":"TypeBool","optional":true,"default":false},"protocol":{"type":"TypeString","optional":true,"default":"IKEv2"},"ratelimit_enabled":{"type":"TypeBool","optional":true,"default":false},"route_weight":{"type":"TypeInt","optional":true,"default":0},"shared_key":{"type":"TypeString","optional":true},"vpn_site_link_id":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway_nat_rule":{"schema":{"external_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"external_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"internal_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_server_configuration":{"schema":{"azure_active_directory_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"issuer":{"type":"TypeString","required":true},"tenant":{"type":"TypeString","required":true}}},"minItems":1},"client_revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kilobytes":{"type":"TypeInt","required":true},"sa_lifetime_seconds":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"radius":{"type":"TypeList","optional":true,"elem":{"schema":{"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"server":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"score":{"type":"TypeInt","required":true},"secret":{"type":"TypeString","required":true}}}},"server_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vpn_authentication_types":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"vpn_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_server_configuration_policy_group":{"schema":{"is_default":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"priority":{"type":"TypeInt","optional":true,"default":0},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_site":{"schema":{"address_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"device_model":{"type":"TypeString","optional":true},"device_vendor":{"type":"TypeString","optional":true},"link":{"type":"TypeList","optional":true,"elem":{"schema":{"bgp":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"peering_address":{"type":"TypeString","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"provider_name":{"type":"TypeString","optional":true},"speed_in_mbps":{"type":"TypeInt","optional":true,"default":0}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"o365_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"traffic_category":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"default_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"optimize_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_app_hybrid_connection":{"schema":{"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true},"web_app_id":{"type":"TypeString","required":true,"description":"The ID of the Web App for this Hybrid Connection.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_application_firewall_policy":{"schema":{"custom_rules":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"match_conditions":{"type":"TypeList","required":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_variables":{"type":"TypeList","required":true,"elem":{"schema":{"selector":{"type":"TypeString","optional":true},"variable_name":{"type":"TypeString","required":true}}}},"negation_condition":{"type":"TypeBool","optional":true},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","required":true},"rule_type":{"type":"TypeString","required":true}}}},"http_listener_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_rules":{"type":"TypeList","required":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","optional":true,"default":"3.2"}}},"maxItems":1},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"selector_match_operator":{"type":"TypeString","required":true}}}},"managed_rule_set":{"type":"TypeList","required":true,"elem":{"schema":{"rule_group_override":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"rule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"id":{"type":"TypeString","required":true}}}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","required":true}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"path_based_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"policy_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"file_upload_limit_in_mb":{"type":"TypeInt","optional":true,"default":100},"log_scrubbing":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true,"description":"When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to."},"selector_match_operator":{"type":"TypeString","optional":true,"default":"Equals"}}}}}},"maxItems":1},"max_request_body_size_in_kb":{"type":"TypeInt","optional":true,"default":128},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"request_body_check":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"capacity":{"type":"TypeInt","optional":true,"default":1},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_hub":{"schema":{"anonymous_connections_enabled":{"type":"TypeBool","optional":true,"default":false},"event_handler":{"type":"TypeList","optional":true,"elem":{"schema":{"auth":{"type":"TypeList","optional":true,"elem":{"schema":{"managed_identity_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"system_events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_event_pattern":{"type":"TypeString","optional":true}}}},"event_listener":{"type":"TypeList","optional":true,"elem":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"system_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_network_acl":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"description":"Can the Function App only be accessed via HTTPS?","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Function App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","description":"The identifier used by App Service to perform domain ownership verification via DNS TXT record.","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","description":"The default hostname of the Windows Function App Slot.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","description":"The Kind value for this Windows Function App Slot.","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Windows Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","description":"A list of outbound IP addresses. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12`.","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","description":"A list of possible outbound IP addresses, not all of which are necessarily in use. This is a superset of `outbound_ip_address_list`. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of possible outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12,52.143.43.17`. This is a superset of `outbound_ip_addresses`. For example `[\"52.23.25.3\", \"52.143.43.12\",\"52.143.43.17\"]`.","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_windows_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","required":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_web_app_slot":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"computed":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}}},"dataSources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"data_residency_location":{"type":"TypeString","description":"Location in which the B2C tenant is hosted and data resides.","computed":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix."},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","description":"Billing SKU for the B2C tenant.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"read":5}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"filtered_sync_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notifications":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","computed":true},"notify_global_admins":{"type":"TypeBool","computed":true}}}},"replica_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"external_access_enabled":{"type":"TypeBool","computed":true},"public_certificate":{"type":"TypeString","computed":true}}}},"security":{"type":"TypeList","computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","computed":true},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","computed":true},"ntlm_v1_enabled":{"type":"TypeBool","computed":true},"sync_kerberos_passwords":{"type":"TypeBool","computed":true},"sync_ntlm_passwords":{"type":"TypeBool","computed":true},"sync_on_prem_passwords":{"type":"TypeBool","computed":true},"tls_v1_enabled":{"type":"TypeBool","computed":true}}}},"sku":{"type":"TypeString","computed":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_advisor_recommendations":{"schema":{"filter_by_category":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter_by_resource_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"recommendations":{"type":"TypeList","computed":true,"elem":{"schema":{"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"impact":{"type":"TypeString","computed":true},"recommendation_name":{"type":"TypeString","computed":true},"recommendation_type_id":{"type":"TypeString","computed":true},"resource_name":{"type":"TypeString","computed":true},"resource_type":{"type":"TypeString","computed":true},"suppression_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"updated_time":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":10}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"management":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"proxy":{"type":"TypeList","computed":true,"elem":{"schema":{"default_ssl_binding":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"scm":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_api_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notification_sender_email":{"type":"TypeString","computed":true},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"publisher_email":{"type":"TypeString","computed":true},"publisher_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scm_url":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"revision":{"type":"TypeString","required":true},"service_url":{"type":"TypeString","computed":true},"soap_pass_through":{"type":"TypeBool","computed":true},"subscription_key_parameter_names":{"type":"TypeList","computed":true,"elem":{"schema":{"header":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true}}}},"subscription_required":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"version_set_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"version_header_name":{"type":"TypeString","computed":true},"version_query_name":{"type":"TypeString","computed":true},"versioning_scheme":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true},"certificate_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"request_client_certificate_enabled":{"type":"TypeBool","computed":true},"tls10_enabled":{"type":"TypeBool","computed":true},"tls11_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"external_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true},"approval_required":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"product_id":{"type":"TypeString","required":true},"published":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","computed":true},"subscriptions_limit":{"type":"TypeInt","computed":true},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true},"email":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"note":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"state":{"type":"TypeString","computed":true},"user_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","computed":true}}}},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","required":true},"label":{"type":"TypeString","optional":true,"default":""},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_configuration_keys":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"items":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"label":{"type":"TypeString","computed":true},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}}}},"key":{"type":"TypeString","optional":true,"default":""},"label":{"type":"TypeString","optional":true,"default":""}},"timeouts":{"read":5}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_cert_enabled":{"type":"TypeBool","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","computed":true},"acr_user_managed_identity_client_id":{"type":"TypeString","computed":true},"always_on":{"type":"TypeBool","computed":true},"app_command_line":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"number_of_workers":{"type":"TypeInt","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_certificate":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","computed":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","computed":true},"distinguished_name":{"type":"TypeString","computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"product_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_environment":{"schema":{"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"front_end_scale_factor":{"type":"TypeInt","computed":true},"internal_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_ip_address":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","computed":true},"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"dedicated_host_count":{"type":"TypeInt","computed":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","computed":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"is_xenon":{"type":"TypeBool","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"per_site_scaling":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"size":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_application_gateway":{"schema":{"backend_address_pool":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeString","computed":true},"instrumentation_key":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_arc_machine":{"schema":{"active_directory_fqdn":{"type":"TypeString","computed":true},"agent":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variables":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"bool":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeBool","computed":true}}}},"datetime":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"encrypted":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"int":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeInt","computed":true}}}},"null":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"object":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"string":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"platform_update_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_backup_policy_file_share":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_backup_policy_vm":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","computed":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"ip_connect_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_units":{"type":"TypeInt","computed":true},"shareable_link_enabled":{"type":"TypeBool","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_allocation_mode":{"type":"TypeString","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true},"allow_updates":{"type":"TypeBool","computed":true},"default_version":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","computed":true},"thumbprint_algorithm":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"auto_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","computed":true},"formula":{"type":"TypeString","computed":true}}}},"certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"store_location":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","computed":true},"visibility":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","computed":true}}}},"data_disks":{"type":"TypeList","computed":true,"elem":{"schema":{"caching":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"lun":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}},"disk_encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","computed":true}}}},"display_name":{"type":"TypeString","computed":true},"extensions":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"protected_settings":{"type":"TypeString","computed":true},"provision_after_extensions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","computed":true},"settings_json":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"type_handler_version":{"type":"TypeString","computed":true}}}},"fixed_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"resize_timeout":{"type":"TypeString","computed":true},"target_dedicated_nodes":{"type":"TypeInt","computed":true},"target_low_priority_nodes":{"type":"TypeInt","computed":true}}}},"inter_node_communication":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_tasks_per_node":{"type":"TypeInt","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"blobfuse_options":{"type":"TypeString","computed":true},"container_name":{"type":"TypeString","computed":true},"identity_id":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"sas_key":{"type":"TypeString","computed":true}}}},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"azure_file_url":{"type":"TypeString","computed":true},"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true}}}},"cifs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"nfs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"network_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"dynamic_vnet_assignment_scope":{"type":"TypeString","computed":true},"endpoint_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port_range":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"protocol":{"type":"TypeString","computed":true}}}},"public_address_provisioning_type":{"type":"TypeString","computed":true},"public_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","computed":true}}}},"node_agent_sku_id":{"type":"TypeString","computed":true},"node_placement":{"type":"TypeList","computed":true,"elem":{"schema":{"policy":{"type":"TypeString","computed":true}}}},"os_disk_placement":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_task":{"type":"TypeList","computed":true,"elem":{"schema":{"command_line":{"type":"TypeString","computed":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"run_options":{"type":"TypeString","computed":true},"working_directory":{"type":"TypeString","computed":true}}}},"resource_file":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","computed":true},"blob_prefix":{"type":"TypeString","computed":true},"file_mode":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"http_url":{"type":"TypeString","computed":true},"storage_container_url":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"task_retry_maximum":{"type":"TypeInt","computed":true},"user_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_user":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","computed":true}}}},"user_name":{"type":"TypeString","computed":true}}}},"wait_for_success":{"type":"TypeBool","computed":true}}}},"storage_image_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"task_scheduling_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","computed":true}}}},"user_accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"linux_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"gid":{"type":"TypeInt","computed":true},"ssh_private_key":{"type":"TypeString","computed":true},"uid":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"windows_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"login_mode":{"type":"TypeString","computed":true}}}}}}},"vm_size":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_billing_enrollment_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"enrollment_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mca_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"billing_profile_name":{"type":"TypeString","required":true},"invoice_section_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mpa_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"customer_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_blueprint_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_blueprint_published_version":{"schema":{"blueprint_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"dns_zone_id":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tls":{"type":"TypeList","computed":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","computed":true},"certificate_type":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true}}}},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"enabled":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"enabled":{"type":"TypeBool","computed":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redirect_url":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"health_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true},"request_type":{"type":"TypeString","computed":true}}}},"load_balancing":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","computed":true},"sample_size":{"type":"TypeInt","computed":true},"successful_samples_required":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","computed":true},"session_affinity_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"key_vault_certificate_id":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"read":5}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_client_config":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cognitive_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"qna_runtime_endpoint":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"certificate_based_security_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"pem_public_key":{"type":"TypeString","computed":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"resource_group_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"subscription_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","computed":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The Dapr Application Identifier.","computed":true},"app_port":{"type":"TypeInt","description":"The port which the application is listening on. This is the same as the `ingress` port.","computed":true},"app_protocol":{"type":"TypeString","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`.","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","description":"Should this ingress allow insecure connections?","computed":true},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`","computed":true},"certificate_id":{"type":"TypeString","description":"The ID of the Certificate.","computed":true},"name":{"type":"TypeString","description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate.","computed":true}}}},"external_enabled":{"type":"TypeBool","description":"Is this an external Ingress.","computed":true},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","description":"The target port on the container for the Ingress traffic.","computed":true},"traffic_weight":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","description":"The label to apply to the revision as a name prefix for routing traffic.","computed":true},"latest_revision":{"type":"TypeBool","description":"This traffic Weight relates to the latest stable Container Revision.","computed":true},"percentage":{"type":"TypeInt","description":"The percentage of traffic to send to this revision.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted.","computed":true}}}},"transport":{"type":"TypeString","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`","computed":true}}}},"latest_revision_fqdn":{"type":"TypeString","description":"The fully qualified domain name of the latest Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"identity":{"type":"TypeString","description":"ID of the System or User Managed Identity used to pull images from the Container Registry","computed":true},"password_secret_name":{"type":"TypeString","description":"The name of the Secret Reference containing the password value for this user on the Container Registry.","computed":true},"server":{"type":"TypeString","description":"The hostname for the Container Registry.","computed":true},"username":{"type":"TypeString","description":"The username to use for this Container Registry.","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"revision_mode":{"type":"TypeString","computed":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Secret name.","computed":true},"value":{"type":"TypeString","description":"The value for this secret.","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","computed":true,"elem":{"schema":{"container":{"type":"TypeList","computed":true,"elem":{"schema":{"args":{"type":"TypeList","description":"A list of args to pass to the container.","computed":true,"elem":{"type":"TypeString"}},"command":{"type":"TypeList","description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","computed":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`","computed":true},"env":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the environment variable for the container.","computed":true},"secret_name":{"type":"TypeString","description":"The name of the secret that contains the value for this environment variable.","computed":true},"value":{"type":"TypeString","description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used","computed":true}}}},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","description":"The image to use to create the container.","computed":true},"liveness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"initial_delay":{"type":"TypeInt","description":"The time in seconds to wait after the container has started before the probe is started.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"memory":{"type":"TypeString","description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`","computed":true},"name":{"type":"TypeString","description":"The name of the container.","computed":true},"readiness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"success_count_threshold":{"type":"TypeInt","description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"startup_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","computed":true}}}},"volume_mounts":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the Volume to be mounted in the container.","computed":true},"path":{"type":"TypeString","description":"The path in the container at which to mount this volume.","computed":true}}}}}}},"max_replicas":{"type":"TypeInt","description":"The maximum number of replicas for this container.","computed":true},"min_replicas":{"type":"TypeInt","description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}}}},"timeouts":{"read":5}},"azurerm_container_app_environment":{"schema":{"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","description":"The existing Subnet in use by the Container Apps Control Plane.","computed":true},"internal_load_balancer_enabled":{"type":"TypeBool","description":"Does the Container Environment operate in Internal Load Balancing Mode?","computed":true},"location":{"type":"TypeString","computed":true},"log_analytics_workspace_name":{"type":"TypeString","description":"The name of the Log Analytics Workspace this Container Apps Managed Environment is linked to.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment."},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_app_environment_certificate":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"read":5}},"azurerm_container_group":{"schema":{"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","computed":true},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"data_endpoint_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"container_registry_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scope_map_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_account":{"schema":{"capabilities":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"consistency_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","computed":true},"max_interval_in_seconds":{"type":"TypeInt","computed":true},"max_staleness_prefix":{"type":"TypeInt","computed":true}}}},"enable_automatic_failover":{"type":"TypeBool","computed":true},"enable_free_tier":{"type":"TypeBool","computed":true},"enable_multiple_write_locations":{"type":"TypeBool","computed":true},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeList","computed":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true}}}},"ip_range_filter":{"type":"TypeString","computed":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","computed":true},"key_vault_key_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"offer_type":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_restorable_database_accounts":{"schema":{"accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"api_type":{"type":"TypeString","computed":true},"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"restorable_locations":{"type":"TypeList","computed":true,"elem":{"schema":{"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"regional_database_account_instance_id":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true},"autoscale_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true},"assignable_scopes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeSet","computed":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_factory":{"schema":{"github_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"git_url":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"project_name":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redundancy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"snapshot_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"recurrence":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true}}}},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","computed":true},"data_share_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"file_system_name":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"source_platform":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databricks_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_databricks_workspace_private_endpoint_connection":{"schema":{"connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"workspace_private_endpoint_id":{"type":"TypeString","computed":true}}}},"private_endpoint_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dedicated_host":{"schema":{"dedicated_host_group_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"storage_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_dev_test_virtual_network":{"schema":{"allowed_subnets":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_public_ip":{"type":"TypeString","computed":true},"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true}}}},"lab_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_overrides":{"type":"TypeList","computed":true,"elem":{"schema":{"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_in_vm_creation_permission":{"type":"TypeString","computed":true},"use_public_ip_address_permission":{"type":"TypeString","computed":true},"virtual_network_pool_name":{"type":"TypeString","computed":true}}}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_access":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"flags":{"type":"TypeInt","computed":true},"tag":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","computed":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"send_activity_logs":{"type":"TypeBool","computed":true},"send_azuread_logs":{"type":"TypeBool","computed":true},"send_subscription_logs":{"type":"TypeBool","computed":true}}}},"monitoring_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain":{"schema":{"endpoint":{"type":"TypeString","computed":true},"inbound_ip_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"ip_mask":{"type":"TypeString","computed":true}}}},"input_mapping_default_values":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true}}}},"input_mapping_fields":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_time":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true},"topic":{"type":"TypeString","computed":true}}}},"input_schema":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_arm_resource_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventhub":{"schema":{"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"partition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"read":5}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"user_metadata":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"dedicated_cluster_id":{"type":"TypeString","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"kafka_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"maximum_throughput_units":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"sas":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_express_route_circuit":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peerings":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"peer_asn":{"type":"TypeInt","computed":true},"peering_type":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","computed":true},"shared_key":{"type":"TypeString","computed":true},"vlan_id":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_key":{"type":"TypeString","computed":true},"service_provider_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"bandwidth_in_mbps":{"type":"TypeInt","computed":true},"peering_location":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","computed":true}}}},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"family":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_extended_locations":{"schema":{"extended_locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"sku_tier":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","computed":true},"virtual_hub":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","computed":true},"virtual_hub_id":{"type":"TypeString","computed":true}}}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_firewall_policy":{"schema":{"base_policy_id":{"type":"TypeString","computed":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","computed":true,"elem":{"schema":{"network_rule_fqdn_enabled":{"type":"TypeBool","computed":true},"proxy_enabled":{"type":"TypeBool","computed":true},"servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"threat_intelligence_mode":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_cert_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_function_app_host_keys":{"schema":{"blobs_extension_key":{"type":"TypeString","computed":true},"default_function_key":{"type":"TypeString","computed":true},"durabletask_extension_key":{"type":"TypeString","computed":true},"event_grid_extension_config_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"signalr_extension_key":{"type":"TypeString","computed":true},"webpubsub_extension_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_hdinsight_cluster":{"schema":{"cluster_version":{"type":"TypeString","computed":true},"component_versions":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"edge_ssh_endpoint":{"type":"TypeString","computed":true},"gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"ssh_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","computed":true},"tls_min_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"configuration_export_storage_account_name":{"type":"TypeString","computed":true},"container_registry_login_server_url":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","computed":true},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","computed":true},"eventhub_consumer_group_name":{"type":"TypeString","computed":true},"eventhub_name":{"type":"TypeString","computed":true},"eventhub_namespace_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"cors_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","computed":true},"allowed_headers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","computed":true},"cosmosdb_throughput":{"type":"TypeInt","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_hybrid_compute_machine":{"schema":{"ad_fqdn":{"type":"TypeString","computed":true},"agent_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"error_details":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_info":{"type":"TypeList","computed":true,"elem":{"schema":{"info":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"code":{"type":"TypeString","computed":true},"message":{"type":"TypeString","computed":true},"target":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"name_regex":{"type":"TypeString","optional":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"sort_descending":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_images":{"schema":{"images":{"type":"TypeList","computed":true,"elem":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub":{"schema":{"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","computed":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_operations_host_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"iothub_dps_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_iothub_shared_access_policy":{"schema":{"iothub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","computed":true},"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","computed":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"enable_rbac_authorization":{"type":"TypeBool","computed":true},"enabled_for_deployment":{"type":"TypeBool","computed":true},"enabled_for_disk_encryption":{"type":"TypeBool","computed":true},"enabled_for_template_deployment":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_acls":{"type":"TypeList","computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","computed":true},"default_action":{"type":"TypeString","computed":true},"ip_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_access_policy":{"schema":{"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_certificate":{"schema":{"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"key_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"curve":{"type":"TypeString","computed":true},"exportable":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"reuse_key":{"type":"TypeBool","computed":true}}}},"lifetime_action":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","computed":true},"lifetime_percentage":{"type":"TypeInt","computed":true}}}}}}},"secret_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true}}}},"x509_certificate_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"validity_in_months":{"type":"TypeInt","computed":true}}}}}}},"expires":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true,"computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_certificate_data":{"schema":{"certificates_count":{"type":"TypeInt","computed":true},"expires":{"type":"TypeString","computed":true},"hex":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"pem":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","computed":true},"admin":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"phone":{"type":"TypeString","computed":true}}}},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"org_id":{"type":"TypeString","computed":true},"provider_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificates":{"schema":{"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"include_pending":{"type":"TypeBool","optional":true,"default":true},"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_encrypted_value":{"schema":{"algorithm":{"type":"TypeString","required":true},"decoded_plain_text_value":{"type":"TypeString","computed":true},"encrypted_data":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"plain_text_value":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","computed":true},"e":{"type":"TypeString","computed":true},"key_opts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before_date":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_secrets":{"schema":{"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","computed":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","computed":true}}}},"agent_pool_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"api_server_authorized_ip_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"azure_active_directory_role_based_access_control":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","computed":true},"client_app_id":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"server_app_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"azure_policy_enabled":{"type":"TypeBool","computed":true},"current_kubernetes_version":{"type":"TypeString","computed":true},"custom_ca_trust_certificates_base64":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"disk_encryption_set_id":{"type":"TypeString","computed":true},"dns_prefix":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","computed":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress_application_gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","computed":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"key_management_service":{"type":"TypeList","computed":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"key_vault_network_access":{"type":"TypeString","computed":true}}}},"key_vault_secrets_provider":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","computed":true},"secret_rotation_interval":{"type":"TypeString","computed":true}}}},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"kubernetes_version":{"type":"TypeString","computed":true},"linux_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true},"ssh_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_data":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","computed":true},"microsoft_defender":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"network_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","computed":true},"docker_bridge_cidr":{"type":"TypeString","computed":true},"load_balancer_sku":{"type":"TypeString","computed":true},"network_plugin":{"type":"TypeString","computed":true},"network_policy":{"type":"TypeString","computed":true},"pod_cidr":{"type":"TypeString","computed":true},"service_cidr":{"type":"TypeString","computed":true}}}},"node_resource_group":{"type":"TypeString","computed":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","computed":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","computed":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}}},"open_service_mesh_enabled":{"type":"TypeBool","computed":true},"private_cluster_enabled":{"type":"TypeBool","computed":true},"private_fqdn":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"role_based_access_control_enabled":{"type":"TypeBool","computed":true},"service_mesh_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"mode":{"type":"TypeString","computed":true}}}},"service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true}}}},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_version":{"type":"TypeString","computed":true},"file_driver_enabled":{"type":"TypeBool","computed":true},"snapshot_controller_enabled":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"eviction_policy":{"type":"TypeString","computed":true},"kubernetes_cluster_name":{"type":"TypeString","required":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_disk_type":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"priority":{"type":"TypeString","computed":true},"proximity_placement_group_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"spot_max_price":{"type":"TypeFloat","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_node_pool_snapshot":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_node_pool_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_service_versions":{"schema":{"include_preview":{"type":"TypeBool","optional":true,"default":true},"latest_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"version_prefix":{"type":"TypeString","optional":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kusto_cluster":{"schema":{"data_ingestion_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true},"hot_cache_period":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_lb":{"schema":{"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_backend_address_pool":{"schema":{"backend_address":{"type":"TypeList","computed":true,"elem":{"schema":{"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"virtual_network_id":{"type":"TypeString","computed":true}}}},"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","computed":true},"backend_address_pool_id":{"type":"TypeString","computed":true},"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","computed":true},"tcp_reset_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_lb_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","computed":true},"disable_outbound_snat":{"type":"TypeBool","computed":true},"enable_floating_ip":{"type":"TypeBool","computed":true},"enable_tcp_reset":{"type":"TypeBool","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"load_distribution":{"type":"TypeString","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"probe_id":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"image_tag":{"type":"TypeString","computed":true},"registry_password":{"type":"TypeString","computed":true},"registry_url":{"type":"TypeString","computed":true},"registry_username":{"type":"TypeString","computed":true}}}},"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":25}},"azurerm_linux_web_app":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_reference_identity_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_image_tag":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"go_version":{"type":"TypeString","computed":true},"java_server":{"type":"TypeString","computed":true},"java_server_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"ruby_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","computed":true}}}},"gateway_address":{"type":"TypeString","computed":true},"gateway_fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_log_analytics_workspace":{"schema":{"daily_quota_gb":{"type":"TypeFloat","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_shared_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_integration_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","computed":true},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_account_share_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_workflow":{"schema":{"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"logic_app_integration_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","computed":true},"workflow_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_machine_learning_workspace":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","computed":true},"install_patches":{"type":"TypeList","computed":true,"elem":{"schema":{"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"reboot":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","computed":true},"window":{"type":"TypeList","computed":true,"elem":{"schema":{"duration":{"type":"TypeString","computed":true},"expiration_date_time":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"start_date_time":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_managed_api":{"schema":{"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_managed_application_definition":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","computed":true},"disk_access_id":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"disk_iops_read_write":{"type":"TypeInt","computed":true},"disk_mbps_read_write":{"type":"TypeInt","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"image_reference_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_access_policy":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group":{"schema":{"all_management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"all_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true,"computed":true},"parent_management_group_id":{"type":"TypeString","computed":true},"subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group_template_deployment":{"schema":{"management_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement":{"type":"TypeString","computed":true},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"geo_redundant_backup":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true},"plan":{"type":"TypeString","required":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_country_code":{"type":"TypeString","computed":true},"mobile_network_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"mobile_network_data_network_name":{"type":"TypeString","required":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true},"network_address_port_translation":{"type":"TypeList","computed":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"pinhole_maximum_number":{"type":"TypeInt","optional":true},"port_range":{"type":"TypeList","computed":true,"elem":{"schema":{"maximum":{"type":"TypeInt","computed":true},"minimum":{"type":"TypeInt","computed":true}}}},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","computed":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"control_plane_access_name":{"type":"TypeString","computed":true},"core_network_technology":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"interoperability_settings_json":{"type":"TypeString","computed":true},"local_diagnostics_access":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","computed":true},"https_server_certificate_url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform":{"type":"TypeList","computed":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","computed":true},"custom_location_id":{"type":"TypeString","computed":true},"edge_device_id":{"type":"TypeString","computed":true},"stack_hci_cluster_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"pcc_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"precedence":{"type":"TypeInt","computed":true},"qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"guaranteed_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"service_data_flow_template":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","computed":true}}}},"service_precedence":{"type":"TypeInt","computed":true},"service_qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim":{"schema":{"device_type":{"type":"TypeString","computed":true},"integrated_circuit_card_identifier":{"type":"TypeString","computed":true},"international_mobile_subscriber_identity":{"type":"TypeString","computed":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","computed":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true},"static_ipv4_address":{"type":"TypeString","computed":true}}}},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","computed":true},"registration_timer_in_seconds":{"type":"TypeInt","computed":true},"slice":{"type":"TypeList","computed":true,"elem":{"schema":{"data_network":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"allowed_services_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","computed":true},"default_session_type":{"type":"TypeString","computed":true},"max_buffered_packets":{"type":"TypeInt","computed":true},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}}}},"default_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","computed":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","computed":true},"slice_service_type":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"role_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"automation_runbook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","computed":true},"is_global_runbook":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"runbook_name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true},"webhook_resource_id":{"type":"TypeString","computed":true}}}},"azure_app_push_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"azure_function_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","computed":true},"function_name":{"type":"TypeString","computed":true},"http_trigger_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"email_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"event_hub_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true},"ticket_configuration":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","computed":true}}}},"logic_app_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"callback_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"short_name":{"type":"TypeString","computed":true},"sms_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"voice_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"webhook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","computed":true},"data_flow":{"type":"TypeList","computed":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"output_stream":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"transform_kql":{"type":"TypeString","computed":true}}}},"data_sources":{"type":"TypeList","computed":true,"elem":{"schema":{"data_import":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"stream":{"type":"TypeString","computed":true}}}}}}},"extension":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_json":{"type":"TypeString","computed":true},"extension_name":{"type":"TypeString","computed":true},"input_data_sources":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"iis_log":{"type":"TypeList","computed":true,"elem":{"schema":{"log_directories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"settings":{"type":"TypeList","computed":true,"elem":{"schema":{"text":{"type":"TypeList","computed":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","computed":true}}}}}}},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"performance_counter":{"type":"TypeList","computed":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"sampling_frequency_in_seconds":{"type":"TypeInt","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"prometheus_forwarder":{"type":"TypeList","computed":true,"elem":{"schema":{"label_include_filter":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"syslog":{"type":"TypeList","computed":true,"elem":{"schema":{"facility_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"log_levels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_event_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"x_path_queries":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_firewall_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"description":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"workspace_resource_id":{"type":"TypeString","computed":true}}}},"monitor_account":{"type":"TypeList","computed":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"storage_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_blob_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_table_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"table_name":{"type":"TypeString","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"stream_declaration":{"type":"TypeList","computed":true,"elem":{"schema":{"column":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"stream_name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_diagnostic_categories":{"schema":{"log_category_groups":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"log_category_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"logs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"metrics":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"days":{"type":"TypeInt","computed":true},"enabled":{"type":"TypeBool","computed":true}}}},"servicebus_rule_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeSet","computed":true,"elem":{"schema":{"action_group":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","computed":true},"email_subject":{"type":"TypeString","computed":true}}}},"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"query":{"type":"TypeString","computed":true},"query_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"severity":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","computed":true},"time_window":{"type":"TypeInt","computed":true},"trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_column":{"type":"TypeString","computed":true},"metric_trigger_type":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeSet","computed":true,"elem":{"schema":{"dimension":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","computed":true}}}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mssql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"elastic_pool_id":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_size_gb":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"read_replica_count":{"type":"TypeInt","computed":true},"read_scale":{"type":"TypeBool","computed":true},"server_id":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"max_size_bytes":{"type":"TypeInt","computed":true},"max_size_gb":{"type":"TypeFloat","computed":true},"name":{"type":"TypeString","required":true},"per_db_max_capacity":{"type":"TypeInt","computed":true},"per_db_min_capacity":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"family":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"customer_managed_key_id":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"high_availability":{"type":"TypeList","computed":true,"elem":{"schema":{"mode":{"type":"TypeString","computed":true},"standby_availability_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","computed":true},"start_hour":{"type":"TypeInt","computed":true},"start_minute":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"storage":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","computed":true},"iops":{"type":"TypeInt","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement_enabled":{"type":"TypeBool","computed":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","computed":true},"email_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"retention_days":{"type":"TypeInt","computed":true},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_endpoint":{"type":"TypeString","computed":true}}}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_ip_address_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"public_ip_prefix_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_netapp_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_level":{"type":"TypeString","computed":true},"size_in_tb":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"volume_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true},"daily_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"hourly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"monthly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","computed":true,"elem":{"type":"TypeInt"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"network_features":{"type":"TypeString","computed":true},"pool_name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"security_style":{"type":"TypeString","optional":true},"service_level":{"type":"TypeString","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"volume_path":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true},"application_identifier":{"type":"TypeString","computed":true},"group_description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","computed":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"data_protection_snapshot_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","computed":true}}}},"export_policy_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","computed":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"nfsv41_enabled":{"type":"TypeBool","computed":true},"root_access_enabled":{"type":"TypeBool","computed":true},"rule_index":{"type":"TypeInt","computed":true},"unix_read_only":{"type":"TypeBool","computed":true},"unix_read_write":{"type":"TypeBool","computed":true}}}},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proximity_placement_group_id":{"type":"TypeString","computed":true},"security_style":{"type":"TypeString","computed":true},"service_level":{"type":"TypeString","computed":true},"snapshot_directory_visible":{"type":"TypeBool","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","computed":true},"volume_spec_name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"internal_dns_name_label":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","computed":true},"load_balancer_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_manager_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"security_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"destination_address_prefix":{"type":"TypeString","computed":true},"destination_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","computed":true},"destination_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_service_tags":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv4_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv6_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"location_filter":{"type":"TypeString","optional":true,"forceNew":true},"service":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"application_mode":{"type":"TypeString","computed":true},"bundle_id":{"type":"TypeString","computed":true},"key_id":{"type":"TypeString","computed":true},"team_id":{"type":"TypeString","computed":true},"token":{"type":"TypeString","computed":true}}}},"gcm_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"api_key":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"ip_forwarding_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","computed":true},"anti_virus_profile":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"dns_subscription":{"type":"TypeString","computed":true},"file_blocking_profile":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_trust_certificate":{"type":"TypeString","computed":true},"outbound_untrust_certificate":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"url_filtering_profile":{"type":"TypeString","computed":true},"vulnerability_profile":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_platform_image":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"offer":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_policy_assignment":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"enforce":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","computed":true,"elem":{"schema":{"content":{"type":"TypeString","computed":true},"policy_definition_reference_id":{"type":"TypeString","computed":true}}}},"not_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeString","computed":true},"policy_definition_id":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_definition_built_in":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_definition_group":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","computed":true},"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"policy_definition_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"policy_definition_id":{"type":"TypeString","computed":true},"policy_group_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","computed":true}}}},"policy_definitions":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"assignment_hash":{"type":"TypeString","computed":true},"compliance_status":{"type":"TypeString","computed":true},"content_hash":{"type":"TypeString","computed":true},"content_uri":{"type":"TypeString","computed":true},"last_compliance_status_checked":{"type":"TypeString","computed":true},"latest_report_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"virtual_machine_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_dns_servers":{"type":"TypeList","computed":true,"elem":{"schema":{"ip_address":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true},"private_dns_zone_name":{"type":"TypeString","required":true},"registration_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_endpoint_connection":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_service_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"request_response":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","computed":true},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"nat_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_link_service_endpoint_connections":{"schema":{"location":{"type":"TypeString","computed":true},"private_endpoint_connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"connection_id":{"type":"TypeString","computed":true},"connection_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"private_endpoint_id":{"type":"TypeString","computed":true},"private_endpoint_name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_id":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_proximity_placement_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","computed":true},"ddos_protection_mode":{"type":"TypeString","computed":true},"ddos_protection_plan_id":{"type":"TypeString","computed":true},"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"reverse_fqdn":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"prefix_length":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ips":{"schema":{"allocation_type":{"type":"TypeString","optional":true},"attachment_status":{"type":"TypeString","optional":true},"name_prefix":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_public_maintenance_configurations":{"schema":{"configs":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"duration":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maintenance_scope":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_recovery_services_vault":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","computed":true},"enable_non_ssl_port":{"type":"TypeBool","computed":true},"family":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patch_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeString","computed":true},"start_hour_utc":{"type":"TypeInt","computed":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","computed":true},"redis_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","computed":true},"aof_storage_connection_string_0":{"type":"TypeString","computed":true},"aof_storage_connection_string_1":{"type":"TypeString","computed":true},"enable_authentication":{"type":"TypeBool","computed":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","computed":true},"maxmemory_delta":{"type":"TypeInt","computed":true},"maxmemory_policy":{"type":"TypeString","computed":true},"maxmemory_reserved":{"type":"TypeInt","computed":true},"notify_keyspace_events":{"type":"TypeString","computed":true},"rdb_backup_enabled":{"type":"TypeBool","computed":true},"rdb_backup_frequency":{"type":"TypeInt","computed":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","computed":true},"rdb_storage_connection_string":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_enterprise_database":{"schema":{"cluster_id":{"type":"TypeString","required":true},"linked_database_group_nickname":{"type":"TypeString","computed":true},"linked_database_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","computed":true},"managed_by":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_resource_group_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_resources":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true},"required_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"resources":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"permissions":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true},"scope":{"type":"TypeString","optional":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"communities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"rule_type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_route_table":{"schema":{"bgp_route_propagation_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop_in_ip_address":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_search_service":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_anomaly":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"mode":{"type":"TypeString","computed":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_template":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true},"nrt_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"scheduled_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"query_frequency":{"type":"TypeString","computed":true},"query_period":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","computed":true},"trigger_threshold":{"type":"TypeInt","computed":true}}}},"security_incident_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"product_filter":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"per_site_scaling_enabled":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","computed":true},"zone_balancing_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"partner_namespace_id":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","optional":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"support_ordering":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_shared_image":{"schema":{"architecture":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"eula":{"type":"TypeString","computed":true},"gallery_name":{"type":"TypeString","required":true},"hyper_v_generation":{"type":"TypeString","computed":true},"identifier":{"type":"TypeList","computed":true,"elem":{"schema":{"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"privacy_statement_uri":{"type":"TypeString","computed":true},"purchase_plan":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true}}}},"release_note_uri":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"specialized":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_shared_image_version":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_disk_image_size_gb":{"type":"TypeInt","computed":true},"os_disk_snapshot_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sort_versions_by_semver":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_shared_image_versions":{"schema":{"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"images":{"type":"TypeList","computed":true,"elem":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"hostname":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true},"recovery_fabric_name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","computed":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","computed":true},"primary_zone":{"type":"TypeString","computed":true},"recovery_edge_zone":{"type":"TypeString","computed":true},"recovery_zone":{"type":"TypeString","computed":true}}}},"failover_deployment_model":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_group":{"type":"TypeSet","computed":true,"elem":{"schema":{"post_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"pre_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"replicated_protected_items":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"recovery_vault_id":{"type":"TypeString","required":true},"source_recovery_fabric_id":{"type":"TypeString","computed":true},"target_recovery_fabric_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_snapshot":{"schema":{"creation_option":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","computed":true},"token_secret":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_spring_cloud_app":{"schema":{"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"is_public":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"persistent_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","computed":true},"size_in_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"tls_enabled":{"type":"TypeBool","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_spring_cloud_service":{"schema":{"config_server_git_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"repository":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"pattern":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","computed":true},"elastic_pool_name":{"type":"TypeString","computed":true},"failover_group_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"read_scale":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ssh_public_key":{"schema":{"name":{"type":"TypeString","required":true},"public_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","computed":true},"account_kind":{"type":"TypeString","computed":true},"account_replication_type":{"type":"TypeString","computed":true},"account_tier":{"type":"TypeString","computed":true},"allow_nested_items_to_be_public":{"type":"TypeBool","computed":true},"azure_files_authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"domain_sid":{"type":"TypeString","computed":true},"forest_name":{"type":"TypeString","computed":true},"netbios_domain_name":{"type":"TypeString","computed":true},"storage_sid":{"type":"TypeString","computed":true}}}},"directory_type":{"type":"TypeString","computed":true}}}},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"enable_https_traffic_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"is_hns_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"queue_encryption_key_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"table_encryption_key_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account_blob_container_sas":{"schema":{"cache_control":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_language":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_address":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_account_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_addresses":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"filter":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"process":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"tag":{"type":"TypeBool","required":true},"update":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"resource_types":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeBool","required":true},"object":{"type":"TypeBool","required":true},"service":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"services":{"type":"TypeList","required":true,"elem":{"schema":{"blob":{"type":"TypeBool","required":true},"file":{"type":"TypeBool","required":true},"queue":{"type":"TypeBool","required":true},"table":{"type":"TypeBool","required":true}}},"maxItems":1},"signed_version":{"type":"TypeString","optional":true,"default":"2017-07-29"},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","computed":true},"content_md5":{"type":"TypeString","computed":true},"content_type":{"type":"TypeString","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","computed":true},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_encryption_scope":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"schema":{"base_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true}}}},"snapshot":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}},"version":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}}}}},"enabled":{"type":"TypeBool","computed":true},"filters":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operation":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"prefix_match":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true}}}},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_share":{"schema":{"acl":{"type":"TypeList","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"expiry":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"start":{"type":"TypeString","computed":true}}}},"id":{"type":"TypeString","computed":true}}}},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"quota":{"type":"TypeInt","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true},"storage_sync_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true},"row_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","computed":true},"data_locale":{"type":"TypeString","computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_policy":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"job_id":{"type":"TypeString","computed":true},"last_output_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"output_error_policy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_mode":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true},"streaming_units":{"type":"TypeInt","computed":true},"transformation_query":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subnet":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"route_table_id":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_subscription":{"schema":{"display_name":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscription_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscriptions":{"schema":{"display_name_contains":{"type":"TypeString","optional":true},"display_name_prefix":{"type":"TypeString","optional":true},"subscriptions":{"type":"TypeList","computed":true,"elem":{"schema":{"display_name":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_synapse_workspace":{"schema":{"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_template_spec_version":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template_body":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_tenant_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_geographical_location":{"schema":{"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","computed":true,"elem":{"schema":{"relative_name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true}}}},"fqdn":{"type":"TypeString","computed":true},"monitor_config":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"expected_status_code_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"timeout_in_seconds":{"type":"TypeInt","computed":true},"tolerated_number_of_failures":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_status":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","computed":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"read":5}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"load_balancer_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_sessions_allowed":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"personal_desktop_assignment_type":{"type":"TypeString","computed":true},"preferred_app_group_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scheduled_agent_updates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"hour_of_day":{"type":"TypeInt","computed":true}}}},"timezone":{"type":"TypeString","computed":true},"use_session_host_timezone":{"type":"TypeBool","computed":true}}}},"start_vm_on_connect":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"validate_environment":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"default_route_table_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"remote_virtual_network_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"routing":{"type":"TypeList","computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","computed":true},"propagated_route_table":{"type":"TypeList","computed":true,"elem":{"schema":{"labels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"static_vnet_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"next_hop_ip_address":{"type":"TypeString","computed":true}}}}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"instances":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"instance_id":{"type":"TypeString","computed":true},"latest_model_applied":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnets":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","computed":true},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"peer_weight":{"type":"TypeInt","computed":true},"peering_address":{"type":"TypeString","computed":true}}}},"custom_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"default_local_network_gateway_id":{"type":"TypeString","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"generation":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"vpn_client_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","computed":true},"aad_issuer":{"type":"TypeString","computed":true},"aad_tenant":{"type":"TypeString","computed":true},"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","computed":true},"radius_server_secret":{"type":"TypeString","computed":true},"revoked_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"root_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"vpn_client_protocols":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"vpn_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"connection_protocol":{"type":"TypeString","computed":true},"dpd_timeout_seconds":{"type":"TypeInt","computed":true},"egress_bytes_transferred":{"type":"TypeInt","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"express_route_circuit_id":{"type":"TypeString","computed":true},"express_route_gateway_bypass":{"type":"TypeBool","computed":true},"ingress_bytes_transferred":{"type":"TypeInt","computed":true},"ipsec_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"dh_group":{"type":"TypeString","computed":true},"ike_encryption":{"type":"TypeString","computed":true},"ike_integrity":{"type":"TypeString","computed":true},"ipsec_encryption":{"type":"TypeString","computed":true},"ipsec_integrity":{"type":"TypeString","computed":true},"pfs_group":{"type":"TypeString","computed":true},"sa_datasize":{"type":"TypeInt","computed":true},"sa_lifetime":{"type":"TypeInt","computed":true}}}},"local_azure_ip_address_enabled":{"type":"TypeBool","computed":true},"local_network_gateway_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peer_virtual_network_gateway_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"routing_weight":{"type":"TypeInt","computed":true},"shared_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","computed":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","computed":true},"virtual_network_gateway_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","computed":true},"disable_vpn_encryption":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"office365_local_breakout_category":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vpn_site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"management_cluster":{"type":"TypeList","computed":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","computed":true}}}},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_subnet_cidr":{"type":"TypeString","computed":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_vpn_gateway":{"schema":{"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"instance_1_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"peer_weight":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_unit":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_application_firewall_policy":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_pubsub_private_link_resource":{"schema":{"shared_private_link_resource_types":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","computed":true}}}},"web_pubsub_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","computed":true},"docker_container_name":{"type":"TypeString","computed":true},"docker_container_registry":{"type":"TypeString","computed":true},"docker_container_tag":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_core_version":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_embedded_server_enabled":{"type":"TypeBool","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python":{"type":"TypeBool","computed":true},"python_version":{"type":"TypeString","computed":true},"tomcat_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"custom_action":{"type":"TypeList","computed":true,"elem":{"schema":{"executable":{"type":"TypeString","computed":true},"parameters":{"type":"TypeString","computed":true}}}},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","computed":true},"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"virtual_application":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"preload":{"type":"TypeBool","computed":true},"virtual_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"virtual_path":{"type":"TypeString","computed":true}}}},"virtual_path":{"type":"TypeString","computed":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}}}}} diff --git a/CHANGELOG.md b/CHANGELOG.md index 200b3f22a3a1..62926b8f15f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,34 +1,34 @@ -## 3.71.0 (Unreleased) +## 3.71.0 (August 24, 2023) BREAKING CHANGES: -* **App Service `win32_status` property** - Due to a change made in the service to the underlying type of the Auto Heal property `win32_status` combined with a prior bug (in `v3.62.1` and earlier) causing the value of this property to be stored incorrectly in state as an empty string, the value of this property could not be updated or state migrated to accommodate the necessary type change in the state. This results in the resources named above returning an error of a number is needed when decoding the state for this value. Unfortunately, this is a breaking change and will require users of this field to change their Terraform Configuration. The field `win32_status` has been replaced by `win32_status_code` (this remains an int, as in 3.63.0 onwards) for `azurerm_linux_web_app`, `azurerm_linux_web_app_slot`, `azurerm_windows_web_app`, `azurerm_windows_web_app_slot resources`. [GH-23075] +* **App Service `win32_status` property** - Due to a change made in the service to the underlying type of the Auto Heal property `win32_status` combined with a prior bug (in `v3.62.1` and earlier) causing the value of this property to be stored incorrectly in state as an empty string, the value of this property could not be updated or state migrated to accommodate the necessary type change in the state. This results in the resources named above returning an error of a number is needed when decoding the state for this value. Unfortunately, this is a breaking change and will require users of this field to change their Terraform Configuration. The field `win32_status` has been replaced by `win32_status_code` (this remains an int, as in 3.63.0 onwards) for `azurerm_linux_web_app`, `azurerm_linux_web_app_slot`, `azurerm_windows_web_app`, `azurerm_windows_web_app_slot resources`. ([#23075](https://github.com/hashicorp/terraform-provider-azurerm/issues/23075)) FEATURES: -* **New Resource**: `azurerm_databricks_workspace_root_dbfs_customer_managed_key` [GH-22579] +* **New Resource**: `azurerm_databricks_workspace_root_dbfs_customer_managed_key` ([#22579](https://github.com/hashicorp/terraform-provider-azurerm/issues/22579)) ENHANCEMENTS: -* dependencies: updating to `v0.20230824.1130652` of `github.com/hashicorp/go-azure-sdk` [GH-23076] -* `trafficmanager`: updating to use the transport layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` [GH-22579] -* `webpubsub`: updating to use the transport layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` [GH-22579] -* `automation`: upgrade remaining resources to `2022-08-08` [GH-22989] -* `azurerm_storage_management_policy` - move to `hashicorp/go-azure-sdk` [GH-23035] -* Data Source: `azurerm_disk_encryption_set` - support for the `identity` block [GH-23005] -* `azurerm_container_group` - support for the `sku` and `(init_)container.*.security` properties [GH-23034] -* `azurerm_kubernetes_cluster` - extend allowed ranges for various `sysctl_config` attribute ranges [GH-23077] -* `azurerm_kubernetes_cluster_node_pool` - extend allowed ranges for various `sysctl_config` attribute ranges [GH-23077] -* `azurerm_kubernetes_cluster` - clusters can be updated to use the `cilium` dataplane by setting the value in `ebpf_data_plane` [GH-22952] -* `azurerm_linux_virtual_machine_scale_set` - cancel rolling upgrades that are in progress before destroying the resource [GH-22991] -* `azurerm_servicebus_namespace` - support for `network_rule_set` block [GH-23057] -* `azurerm_windows_virtual_machine_scale_set` - cancel rolling upgrades that are in progress before destroying the resource [GH-22991] -* `azurerm_synapse_spark_pool` - support addtional values for the `node_size_family` property [GH-23040] +* dependencies: updating to `v0.20230824.1130652` of `github.com/hashicorp/go-azure-sdk` ([#23076](https://github.com/hashicorp/terraform-provider-azurerm/issues/23076)) +* `trafficmanager`: updating to use the transport layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22579](https://github.com/hashicorp/terraform-provider-azurerm/issues/22579)) +* `webpubsub`: updating to use the transport layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22579](https://github.com/hashicorp/terraform-provider-azurerm/issues/22579)) +* `automation`: upgrade remaining resources to `2022-08-08` ([#22989](https://github.com/hashicorp/terraform-provider-azurerm/issues/22989)) +* `azurerm_storage_management_policy` - move to `hashicorp/go-azure-sdk` ([#23035](https://github.com/hashicorp/terraform-provider-azurerm/issues/23035)) +* Data Source: `azurerm_disk_encryption_set` - support for the `identity` block ([#23005](https://github.com/hashicorp/terraform-provider-azurerm/issues/23005)) +* `azurerm_container_group` - support for the `sku` and `(init_)container.*.security` properties ([#23034](https://github.com/hashicorp/terraform-provider-azurerm/issues/23034)) +* `azurerm_kubernetes_cluster` - extend allowed ranges for various `sysctl_config` attribute ranges ([#23077](https://github.com/hashicorp/terraform-provider-azurerm/issues/23077)) +* `azurerm_kubernetes_cluster_node_pool` - extend allowed ranges for various `sysctl_config` attribute ranges ([#23077](https://github.com/hashicorp/terraform-provider-azurerm/issues/23077)) +* `azurerm_kubernetes_cluster` - clusters can be updated to use the `cilium` dataplane by setting the value in `ebpf_data_plane` ([#22952](https://github.com/hashicorp/terraform-provider-azurerm/issues/22952)) +* `azurerm_linux_virtual_machine_scale_set` - cancel rolling upgrades that are in progress before destroying the resource ([#22991](https://github.com/hashicorp/terraform-provider-azurerm/issues/22991)) +* `azurerm_servicebus_namespace` - support for `network_rule_set` block ([#23057](https://github.com/hashicorp/terraform-provider-azurerm/issues/23057)) +* `azurerm_windows_virtual_machine_scale_set` - cancel rolling upgrades that are in progress before destroying the resource ([#22991](https://github.com/hashicorp/terraform-provider-azurerm/issues/22991)) +* `azurerm_synapse_spark_pool` - support addtional values for the `node_size_family` property ([#23040](https://github.com/hashicorp/terraform-provider-azurerm/issues/23040)) BUG FIXES: -* `azurerm_api_management_policy` - fixes an error caused by a migration [GH-23018] -* `azurerm_kubernetes_cluster` - deprecate `public_network_access_enabled` and prevent sending it to the API since it isn't functional [GH-22478] +* `azurerm_api_management_policy` - fixes an error caused by a migration ([#23018](https://github.com/hashicorp/terraform-provider-azurerm/issues/23018)) +* `azurerm_kubernetes_cluster` - deprecate `public_network_access_enabled` and prevent sending it to the API since it isn't functional ([#22478](https://github.com/hashicorp/terraform-provider-azurerm/issues/22478)) ## 3.70.0 (August 17, 2023) From 5df2bb0b0cec7a1d9468330d1d0c01029b25bb55 Mon Sep 17 00:00:00 2001 From: Zhenhua Hu Date: Fri, 25 Aug 2023 11:24:27 +0800 Subject: [PATCH 039/336] add code --- internal/services/compute/dedicated_host_resource_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/services/compute/dedicated_host_resource_test.go b/internal/services/compute/dedicated_host_resource_test.go index 64c709da4714..77c264315471 100644 --- a/internal/services/compute/dedicated_host_resource_test.go +++ b/internal/services/compute/dedicated_host_resource_test.go @@ -190,7 +190,7 @@ resource "azurerm_dedicated_host" "test" { name = "acctest-DH-%d" location = azurerm_resource_group.test.location dedicated_host_group_id = azurerm_dedicated_host_group.test.id - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } `, r.template(data), data.RandomInteger) @@ -218,7 +218,7 @@ resource "azurerm_dedicated_host" "test" { name = "acctest-DH-%d" location = azurerm_resource_group.test.location dedicated_host_group_id = azurerm_dedicated_host_group.test.id - sku_name = "DSv3-Type1" + sku_name = "FSv2-Type2" platform_fault_domain = 1 auto_replace_on_failure = %t } @@ -233,7 +233,7 @@ resource "azurerm_dedicated_host" "test" { name = "acctest-DH-%d" location = azurerm_resource_group.test.location dedicated_host_group_id = azurerm_dedicated_host_group.test.id - sku_name = "DSv3-Type1" + sku_name = "FSv2-Type2" platform_fault_domain = 1 license_type = %q } @@ -248,7 +248,7 @@ resource "azurerm_dedicated_host" "test" { name = "acctest-DH-%d" location = azurerm_resource_group.test.location dedicated_host_group_id = azurerm_dedicated_host_group.test.id - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 license_type = "Windows_Server_Hybrid" auto_replace_on_failure = false From bf132a538fe48e5ab2c1243682a445f335cb0fdb Mon Sep 17 00:00:00 2001 From: Yichun Ma Date: Fri, 25 Aug 2023 12:33:17 +0800 Subject: [PATCH 040/336] `azurerm_container_app_environment` - support `dapr_application_insights_connection_string` --- .../container_app_environment_resource.go | 34 ++++++++++++---- ...container_app_environment_resource_test.go | 40 +++++++++++++++++++ .../r/container_app_environment.html.markdown | 2 + 3 files changed, 69 insertions(+), 7 deletions(-) diff --git a/internal/services/containerapps/container_app_environment_resource.go b/internal/services/containerapps/container_app_environment_resource.go index a7254cfe1438..235e8abcffac 100644 --- a/internal/services/containerapps/container_app_environment_resource.go +++ b/internal/services/containerapps/container_app_environment_resource.go @@ -19,18 +19,20 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" "github.com/hashicorp/terraform-provider-azurerm/internal/services/containerapps/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" ) type ContainerAppEnvironmentResource struct{} type ContainerAppEnvironmentModel struct { - Name string `tfschema:"name"` - ResourceGroup string `tfschema:"resource_group_name"` - Location string `tfschema:"location"` - LogAnalyticsWorkspaceId string `tfschema:"log_analytics_workspace_id"` - InfrastructureSubnetId string `tfschema:"infrastructure_subnet_id"` - InternalLoadBalancerEnabled bool `tfschema:"internal_load_balancer_enabled"` - Tags map[string]interface{} `tfschema:"tags"` + Name string `tfschema:"name"` + ResourceGroup string `tfschema:"resource_group_name"` + Location string `tfschema:"location"` + DaprApplicationInsightsConnectionString string `tfschema:"dapr_application_insights_connection_string"` + LogAnalyticsWorkspaceId string `tfschema:"log_analytics_workspace_id"` + InfrastructureSubnetId string `tfschema:"infrastructure_subnet_id"` + InternalLoadBalancerEnabled bool `tfschema:"internal_load_balancer_enabled"` + Tags map[string]interface{} `tfschema:"tags"` DefaultDomain string `tfschema:"default_domain"` DockerBridgeCidr string `tfschema:"docker_bridge_cidr"` @@ -67,6 +69,15 @@ func (r ContainerAppEnvironmentResource) Arguments() map[string]*pluginsdk.Schem "resource_group_name": commonschema.ResourceGroupName(), + "dapr_application_insights_connection_string": { + Type: pluginsdk.TypeString, + Optional: true, + ForceNew: true, + Sensitive: true, + ValidateFunc: validation.StringIsNotEmpty, + Description: "Application Insights connection string used by Dapr to export Service to Service communication telemetry.", + }, + "log_analytics_workspace_id": { Type: pluginsdk.TypeString, Optional: true, @@ -165,6 +176,10 @@ func (r ContainerAppEnvironmentResource) Create() sdk.ResourceFunc { Tags: tags.Expand(containerAppEnvironment.Tags), } + if containerAppEnvironment.DaprApplicationInsightsConnectionString != "" { + managedEnvironment.Properties.DaprAIConnectionString = pointer.To(containerAppEnvironment.DaprApplicationInsightsConnectionString) + } + if containerAppEnvironment.LogAnalyticsWorkspaceId != "" { logAnalyticsId, err := workspaces.ParseWorkspaceID(containerAppEnvironment.LogAnalyticsWorkspaceId) if err != nil { @@ -255,6 +270,11 @@ func (r ContainerAppEnvironmentResource) Read() sdk.ResourceFunc { } } + // `dapr_application_insights_connection_string` is sensitive and not returned by API + if v := metadata.ResourceData.Get("dapr_application_insights_connection_string").(string); v != "" { + state.DaprApplicationInsightsConnectionString = v + } + // Reading in log_analytics_workspace_id is not possible, so reading from config. Import will need to ignore_changes unfortunately if v := metadata.ResourceData.Get("log_analytics_workspace_id").(string); v != "" { state.LogAnalyticsWorkspaceId = v diff --git a/internal/services/containerapps/container_app_environment_resource_test.go b/internal/services/containerapps/container_app_environment_resource_test.go index c9729b562908..f2d39895c769 100644 --- a/internal/services/containerapps/container_app_environment_resource_test.go +++ b/internal/services/containerapps/container_app_environment_resource_test.go @@ -86,6 +86,21 @@ func TestAccContainerAppEnvironment_completeUpdate(t *testing.T) { }) } +func TestAccContainerAppEnvironment_daprApplicationInsightsConnectionString(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_container_app_environment", "test") + r := ContainerAppEnvironmentResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.daprApplicationInsightsConnectionString(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("dapr_application_insights_connection_string"), + }) +} + func (r ContainerAppEnvironmentResource) Exists(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := managedenvironments.ParseManagedEnvironmentID(state.ID) if err != nil { @@ -184,6 +199,31 @@ resource "azurerm_container_app_environment" "test" { `, r.templateVNet(data), data.RandomInteger) } +func (r ContainerAppEnvironmentResource) daprApplicationInsightsConnectionString(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +%[1]s + +resource "azurerm_application_insights" "test" { + name = "acctestappinsights-%[2]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + application_type = "web" +} + +resource "azurerm_container_app_environment" "test" { + name = "acctest-CAEnv%[2]d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + + dapr_application_insights_connection_string = azurerm_application_insights.test.connection_string +} +`, r.template(data), data.RandomInteger) +} + func (r ContainerAppEnvironmentResource) template(data acceptance.TestData) string { return fmt.Sprintf(` resource "azurerm_resource_group" "test" { diff --git a/website/docs/r/container_app_environment.html.markdown b/website/docs/r/container_app_environment.html.markdown index 265dffac789f..4968213de28f 100644 --- a/website/docs/r/container_app_environment.html.markdown +++ b/website/docs/r/container_app_environment.html.markdown @@ -46,6 +46,8 @@ The following arguments are supported: --- +* `dapr_application_insights_connection_string` - (Optional) Application Insights connection string used by Dapr to export Service to Service communication telemetry. + * `infrastructure_subnet_id` - (Optional) The existing Subnet to use for the Container Apps Control Plane. Changing this forces a new resource to be created. ~> **NOTE:** The Subnet must have a `/21` or larger address space. From 5a4a5f3a520702398a3be04070ca3ce5451f11d4 Mon Sep 17 00:00:00 2001 From: Zhenhua Hu Date: Fri, 25 Aug 2023 13:48:40 +0800 Subject: [PATCH 041/336] add code --- ...inux_virtual_machine_resource_scaling_test.go | 16 ++++++++-------- ...al_machine_scale_set_resource_scaling_test.go | 2 +- ...dows_virtual_machine_resource_scaling_test.go | 16 ++++++++-------- ...al_machine_scale_set_resource_scaling_test.go | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/internal/services/compute/linux_virtual_machine_resource_scaling_test.go b/internal/services/compute/linux_virtual_machine_resource_scaling_test.go index b59445bb55f0..63f7152acac8 100644 --- a/internal/services/compute/linux_virtual_machine_resource_scaling_test.go +++ b/internal/services/compute/linux_virtual_machine_resource_scaling_test.go @@ -661,7 +661,7 @@ resource "azurerm_dedicated_host" "test" { name = "acctestDH-%d" dedicated_host_group_id = azurerm_dedicated_host_group.test.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } @@ -711,7 +711,7 @@ resource "azurerm_dedicated_host" "test" { name = "acctestDH-%d" dedicated_host_group_id = azurerm_dedicated_host_group.test.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } @@ -719,7 +719,7 @@ resource "azurerm_dedicated_host" "second" { name = "acctestDH2-%d" dedicated_host_group_id = azurerm_dedicated_host_group.test.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } @@ -769,7 +769,7 @@ resource "azurerm_dedicated_host" "second" { name = "acctestDH2-%d" dedicated_host_group_id = azurerm_dedicated_host_group.test.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } @@ -853,7 +853,7 @@ resource "azurerm_dedicated_host" "test" { name = "acctestDH-%d" dedicated_host_group_id = azurerm_dedicated_host_group.test.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } @@ -908,7 +908,7 @@ resource "azurerm_dedicated_host" "test" { name = "acctestDH-%d" dedicated_host_group_id = azurerm_dedicated_host_group.test.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } @@ -924,7 +924,7 @@ resource "azurerm_dedicated_host" "second" { name = "acctestDH2-%d" dedicated_host_group_id = azurerm_dedicated_host_group.second.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } @@ -979,7 +979,7 @@ resource "azurerm_dedicated_host" "second" { name = "acctestDH2-%d" dedicated_host_group_id = azurerm_dedicated_host_group.second.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } diff --git a/internal/services/compute/linux_virtual_machine_scale_set_resource_scaling_test.go b/internal/services/compute/linux_virtual_machine_scale_set_resource_scaling_test.go index 68190e6b907c..432e1cccbdd8 100644 --- a/internal/services/compute/linux_virtual_machine_scale_set_resource_scaling_test.go +++ b/internal/services/compute/linux_virtual_machine_scale_set_resource_scaling_test.go @@ -444,7 +444,7 @@ resource "azurerm_dedicated_host" "test" { name = "acctestDH-%[2]d" dedicated_host_group_id = azurerm_dedicated_host_group.test.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } diff --git a/internal/services/compute/windows_virtual_machine_resource_scaling_test.go b/internal/services/compute/windows_virtual_machine_resource_scaling_test.go index a260db3df1ff..bc8243903083 100644 --- a/internal/services/compute/windows_virtual_machine_resource_scaling_test.go +++ b/internal/services/compute/windows_virtual_machine_resource_scaling_test.go @@ -633,7 +633,7 @@ resource "azurerm_dedicated_host" "test" { name = "acctestDH-%d" dedicated_host_group_id = azurerm_dedicated_host_group.test.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } @@ -679,7 +679,7 @@ resource "azurerm_dedicated_host" "test" { name = "acctestDH-%d" dedicated_host_group_id = azurerm_dedicated_host_group.test.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } @@ -687,7 +687,7 @@ resource "azurerm_dedicated_host" "second" { name = "acctestDH2-%d" dedicated_host_group_id = azurerm_dedicated_host_group.test.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } @@ -733,7 +733,7 @@ resource "azurerm_dedicated_host" "second" { name = "acctestDH2-%d" dedicated_host_group_id = azurerm_dedicated_host_group.test.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } @@ -809,7 +809,7 @@ resource "azurerm_dedicated_host" "test" { name = "acctestDH-%d" dedicated_host_group_id = azurerm_dedicated_host_group.test.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } @@ -860,7 +860,7 @@ resource "azurerm_dedicated_host" "test" { name = "acctestDH-%d" dedicated_host_group_id = azurerm_dedicated_host_group.test.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } @@ -876,7 +876,7 @@ resource "azurerm_dedicated_host" "second" { name = "acctestDH2-%d" dedicated_host_group_id = azurerm_dedicated_host_group.second.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } @@ -927,7 +927,7 @@ resource "azurerm_dedicated_host" "second" { name = "acctestDH2-%d" dedicated_host_group_id = azurerm_dedicated_host_group.second.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } diff --git a/internal/services/compute/windows_virtual_machine_scale_set_resource_scaling_test.go b/internal/services/compute/windows_virtual_machine_scale_set_resource_scaling_test.go index 9a6daa775a6b..cb0d5e5dc5ea 100644 --- a/internal/services/compute/windows_virtual_machine_scale_set_resource_scaling_test.go +++ b/internal/services/compute/windows_virtual_machine_scale_set_resource_scaling_test.go @@ -425,7 +425,7 @@ resource "azurerm_dedicated_host" "test" { name = "acctestDH-%[2]d" dedicated_host_group_id = azurerm_dedicated_host_group.test.id location = azurerm_resource_group.test.location - sku_name = "DSv3-Type1" + sku_name = "DSv3-Type3" platform_fault_domain = 1 } From 1a820f14c1f885e8dfd8588b88c0ab6a12637202 Mon Sep 17 00:00:00 2001 From: xuwu1 Date: Fri, 25 Aug 2023 13:49:57 +0800 Subject: [PATCH 042/336] add a timeout for ctx of custom importer --- internal/sdk/wrapper_resource.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/sdk/wrapper_resource.go b/internal/sdk/wrapper_resource.go index 29b966678bcf..4a28d0502100 100644 --- a/internal/sdk/wrapper_resource.go +++ b/internal/sdk/wrapper_resource.go @@ -98,6 +98,8 @@ func (rw *ResourceWrapper) Resource() (*schema.Resource, error) { if v, ok := rw.resource.(ResourceWithCustomImporter); ok { metaData := runArgs(d, meta, rw.logger) + ctx, cancel := context.WithTimeout(ctx, rw.resource.Read().Timeout) + defer cancel() err := v.CustomImporter()(ctx, metaData) if err != nil { return nil, err From 527c7009278691a4bbbae1a200f1b0cc2b11d0d3 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Fri, 25 Aug 2023 10:39:27 +0200 Subject: [PATCH 043/336] updating to include #23080 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62926b8f15f5..cffbda3664c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 3.72.0 (Unreleased) + +ENHANCEMENTS: + +* `azurerm_container_app_environment` - support for `dapr_application_insights_connection_string` [GH-23080] + ## 3.71.0 (August 24, 2023) BREAKING CHANGES: From 76d56524b0806f7589f1c0059ecbf570880d34d7 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Fri, 25 Aug 2023 10:39:57 +0200 Subject: [PATCH 044/336] splitting 3.69 --- CHANGELOG.md | 437 +-------------------------------------------------- 1 file changed, 1 insertion(+), 436 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cffbda3664c7..5fff2bc1e838 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -73,444 +73,9 @@ BUG FIXES: * `azurerm_virtual_network_gateway_connection` - `custom_bgp_addresses.secondary` is now `Optional` rather than `Required` ([#22912](https://github.com/hashicorp/terraform-provider-azurerm/issues/22912)) * `azurerm_web_application_firewall_policy` - fix handling not found in read ([#22982](https://github.com/hashicorp/terraform-provider-azurerm/issues/22982)) -## 3.69.0 (August 10, 2023) - -FEATURES: - -* **New Data Source**: `azurerm_palo_alto_local_rulestack` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) -* **New Resource**: `azurerm_graph_services_account` ([#22665](https://github.com/hashicorp/terraform-provider-azurerm/issues/22665)) -* **New Resource**: `azurerm_managed_lustre_file_system` ([#22680](https://github.com/hashicorp/terraform-provider-azurerm/issues/22680)) -* **New Resource**: `azurerm_palo_alto_local_rulestack` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) -* **New Resource**: `azurerm_palo_alto_local_rulestack_certificate` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) -* **New Resource**: `azurerm_palo_alto_local_rulestack_fqdn_list` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) -* **New Resource**: `azurerm_palo_alto_local_rulestack_outbound_trust_certificate_association` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) -* **New Resource**: `azurerm_palo_alto_local_rulestack_outbound_untrust_certificate_association` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) -* **New Resource**: `azurerm_palo_alto_local_rulestack_prefix_list` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) -* **New Resource**: `azurerm_palo_alto_local_rulestack_rule` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) -* **New Resource**: `azurerm_palo_alto_virtual_network_appliance` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) -* **New Resource**: `azurerm_palo_alto_next_generation_firewall_virtual_hub_local_rulestack` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) -* **New Resource**: `azurerm_palo_alto_next_generation_firewall_virtual_hub_panorama` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) -* **New Resource**: `azurerm_palo_alto_next_generation_firewall_virtual_network_local_rulestack` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) -* **New Resource**: `azurerm_palo_alto_next_generation_firewall_virtual_network_panorama` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) - -ENHANCEMENTS: - -* dependencies: updating to `v0.58.0` of `github.com/hashicorp/go-azure-helpers` ([#22813](https://github.com/hashicorp/terraform-provider-azurerm/issues/22813)) -* dependencies: updating to `v0.20230808.1103829` of `github.com/hashicorp/go-azure-sdk` ([#22860](https://github.com/hashicorp/terraform-provider-azurerm/issues/22860)) -* `arckubernetes` - updating to use the `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` as a base layer ([#22815](https://github.com/hashicorp/terraform-provider-azurerm/issues/22815)) -* `bot` - updating to use the `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` as a base layer ([#22815](https://github.com/hashicorp/terraform-provider-azurerm/issues/22815)) -* `blueprints`: updating to use `hashicorp/go-azure-sdk` ([#21569](https://github.com/hashicorp/terraform-provider-azurerm/issues/21569)) -* `compute` - updating to use the `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` as a base layer ([#22860](https://github.com/hashicorp/terraform-provider-azurerm/issues/22860)) -* `digitaltwins` - updating to API Version `2023-01-31` ([#22782](https://github.com/hashicorp/terraform-provider-azurerm/issues/22782)) -* `hsm` - updating to use the `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` as a base layer ([#22815](https://github.com/hashicorp/terraform-provider-azurerm/issues/22815)) -* `hybridcompute` - updating to use the `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` as a base layer ([#22815](https://github.com/hashicorp/terraform-provider-azurerm/issues/22815)) -* Data Source: `azurerm_network_service_tags` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) -* Data Source: `azurerm_network_watcher` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) -* `azurerm_container_app_environment` - `log_analytics_workspace_id` is now an Optional property ([#22733](https://github.com/hashicorp/terraform-provider-azurerm/issues/22733)) -* `azurerm_digital_twins_instance` - support for User Assigned Identities ([#22782](https://github.com/hashicorp/terraform-provider-azurerm/issues/22782)) -* `azurerm_function_app_function` - hyphen and underscore are now allows characters for function names ([#22519](https://github.com/hashicorp/terraform-provider-azurerm/issues/22519)) -* `azurerm_key_vault_certificate` - Support update of certificates based on `certificate_policy` ([#20627](https://github.com/hashicorp/terraform-provider-azurerm/issues/20627)) -* `azurerm_kubernetes_cluster` - export the identity for Web App Routing under `web_app_routing_identity` ([#22809](https://github.com/hashicorp/terraform-provider-azurerm/issues/22809)) -* `azurerm_kubernetes_cluster` - add support for the `snapshot_id` property in the `default_node_pool` block ([#22708](https://github.com/hashicorp/terraform-provider-azurerm/issues/22708)) -* `azurerm_log_analytics_workspace` - support changing value of `sku` from `CapacityReservation` and `PerGB2018` ([#22597](https://github.com/hashicorp/terraform-provider-azurerm/issues/22597)) -* `azurerm_managed_application` - deprecate the `parameters` property in favour of `parameter_values` ([#21541](https://github.com/hashicorp/terraform-provider-azurerm/issues/21541)) -* `azurerm_monitor_action_group` - the value `https` is now supported for `aad_auth` ([#22888](https://github.com/hashicorp/terraform-provider-azurerm/issues/22888)) -* `azurerm_mssql_server` - `SystemAssigned, UserAssigned` identity is now supported ([#22828](https://github.com/hashicorp/terraform-provider-azurerm/issues/22828)) -* `azurerm_network_packet_capture` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) -* `azurerm_network_profile` - refactoring to use `hashicorp/go-azure-sdk` ([#22850](https://github.com/hashicorp/terraform-provider-azurerm/issues/22850)) -* `azurerm_network_watcher_flow_log` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) -* `azurerm_network_watcher` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) -* `azurerm_postgresql_database` - updating the validation for `collation` ([#22689](https://github.com/hashicorp/terraform-provider-azurerm/issues/22689)) -* `azurerm_postgresql_flexible_server_database` - updating the validation for `collation` ([#22689](https://github.com/hashicorp/terraform-provider-azurerm/issues/22689)) -* `azurerm_security_center_subscription_pricing` - support for `extensions` block ([#22643](https://github.com/hashicorp/terraform-provider-azurerm/issues/22643)) -* `azurerm_security_center_subscription_pricing` - support for the `resource_type` `Api` ([#22844](https://github.com/hashicorp/terraform-provider-azurerm/issues/22844)) -* `azurerm_spring_cloud_configuration_service` - support for the `ca_certificate_id` property ([#22814](https://github.com/hashicorp/terraform-provider-azurerm/issues/22814)) -* `azurerm_virtual_desktop_workspace` - added support for the `public_network_access_enabled` property ([#22542](https://github.com/hashicorp/terraform-provider-azurerm/issues/22542)) -* `azurerm_virtual_machine_packet_capture` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) -* `azurerm_virtual_machine_scale_set_packet_capture` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) -* `azurerm_vpn_gateway_connection` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) -* `azurerm_vpn_server_configuration` - refactoring to use `hashicorp/go-azure-sdk` ([#22850](https://github.com/hashicorp/terraform-provider-azurerm/issues/22850)) -* `azurerm_vpn_server_configuration_policy_group` - refactoring to use `hashicorp/go-azure-sdk` ([#22850](https://github.com/hashicorp/terraform-provider-azurerm/issues/22850)) -* `azurerm_vpn_site` - refactoring to use `hashicorp/go-azure-sdk` ([#22850](https://github.com/hashicorp/terraform-provider-azurerm/issues/22850)) - -BUG FIXES: - -* Data Source: `azurerm_virutal_machine` - correctly retrieve and set value for `power_state` ([#22851](https://github.com/hashicorp/terraform-provider-azurerm/issues/22851)) -* `azurerm_cdn_endpoint` - conditionally using `PUT` in place of `PATCH` when a field other than `tags` has changed ([#22662](https://github.com/hashicorp/terraform-provider-azurerm/issues/22662)) -* `azurerm_cdn_frontdoor_security_policy` - normalizing the value returned from the API for `cdn_frontdoor_domain_id` ([#22841](https://github.com/hashicorp/terraform-provider-azurerm/issues/22841)) -* `azurerm_container_group` - set `init_container.secure_environment_variables` into state correctly ([#22832](https://github.com/hashicorp/terraform-provider-azurerm/issues/22832)) -* `azurerm_custom_ip_prefix` - support for environments other than Azure Public ([#22812](https://github.com/hashicorp/terraform-provider-azurerm/issues/22812)) -* `azurerm_databricks_workspace` - update parse function for `machine_learning_workspace_id` field validation ([#22865](https://github.com/hashicorp/terraform-provider-azurerm/issues/22865)) -* `azurerm_key_vault` - fixing support for the `storage` Nested Item type ([#22707](https://github.com/hashicorp/terraform-provider-azurerm/issues/22707)) -* `azurerm_kusto_cosmosdb_data_connection_resource` - ensure the `subscriptionId` and `ResourceGroupName` align with the CosmosDB container ([#22663](https://github.com/hashicorp/terraform-provider-azurerm/issues/22663)) -* `azurerm_managed_application` - fix an issue where `secureString` parameters were not persisted to state ([#21541](https://github.com/hashicorp/terraform-provider-azurerm/issues/21541)) -* `azurerm_managed_application` - the `plan` block is now marked ForceNew to comply with service limitations ([#21541](https://github.com/hashicorp/terraform-provider-azurerm/issues/21541)) -* `azurerm_monitor_data_collection_rule` - recreate resource when attempting to remove `kind` ([#22811](https://github.com/hashicorp/terraform-provider-azurerm/issues/22811)) -* `azurerm_static_site_custom_domain` - prevent overwriting `validation_token` with an empty value by setting it into state when creating the resource ([#22848](https://github.com/hashicorp/terraform-provider-azurerm/issues/22848)) - -## 3.68.0 (August 03, 2023) - -FEATURES: - -* **New Resource:** `azurerm_custom_ip_prefix` ([#21322](https://github.com/hashicorp/terraform-provider-azurerm/issues/21322)) -* **New Resource:**: `azurerm_mobile_network_sim` ([#22628](https://github.com/hashicorp/terraform-provider-azurerm/issues/22628)) -* **New Data Source:** `azurerm_mobile_network_sim` ([#22628](https://github.com/hashicorp/terraform-provider-azurerm/issues/22628)) -* **New Resource:** `azurerm_automation_variable_object` ([#22644](https://github.com/hashicorp/terraform-provider-azurerm/issues/22644)) -* **New Data Source:** `azurerm_automation_variable_object` ([#22644](https://github.com/hashicorp/terraform-provider-azurerm/issues/22644)) - -ENHANCEMENTS - -* dependencies: updating to `v0.20230803.1095722` of `github.com/hashicorp/go-azure-sdk` ([#22803](https://github.com/hashicorp/terraform-provider-azurerm/issues/22803)) -* dependencies: migrate mysql resources to `hashicorp/go-azure-sdk` ([#22795](https://github.com/hashicorp/terraform-provider-azurerm/issues/22795)) -* `advisor`: updating the base layer to use `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22750](https://github.com/hashicorp/terraform-provider-azurerm/issues/22750)) -* `apimanagement`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22759](https://github.com/hashicorp/terraform-provider-azurerm/issues/22759)) -* `analysisservices`: updating the base layer to use `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22750](https://github.com/hashicorp/terraform-provider-azurerm/issues/22750)) -* `automation`: updating `dscnodeconfiguration` and `sourcecontrol` to use API Version `2022-08-08` ([#22781](https://github.com/hashicorp/terraform-provider-azurerm/issues/22781)) -* `azurestackhci`: updating the base layer to use `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22750](https://github.com/hashicorp/terraform-provider-azurerm/issues/22750)) -* `domainservices`: updating the base layer to use `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22750](https://github.com/hashicorp/terraform-provider-azurerm/issues/22750)) -* `eventgrid`: refactoring to use `hashicorp/go-azure-sdk` ([#22673](https://github.com/hashicorp/terraform-provider-azurerm/issues/22673)) -* `machinelearningservice`: updating to use API Version `2023-04-01` ([#22729](https://github.com/hashicorp/terraform-provider-azurerm/issues/22729)) -* `monitor`: updating the base layer to use `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22750](https://github.com/hashicorp/terraform-provider-azurerm/issues/22750)) -* `network`: updating to use API Version `2023-04-01` ([#22727](https://github.com/hashicorp/terraform-provider-azurerm/issues/22727)) -* `relay`: updating to use API Version `2021-11-01` ([#22725](https://github.com/hashicorp/terraform-provider-azurerm/issues/22725)) -* Data Source: `azurerm_images` - support for `disk_encryption_set_id` ([#22690](https://github.com/hashicorp/terraform-provider-azurerm/issues/22690)) -* `azurerm_eventhub_namespace_customer_managed_key` - support for the `infrastructure_encryption_enabled` property ([#22718](https://github.com/hashicorp/terraform-provider-azurerm/issues/22718)) -* `azurerm_hpc_cache_blob_nfs_target` - support for setting the `usage_model` property to `READ_ONLY` and `READ_WRITE` ([#22798](https://github.com/hashicorp/terraform-provider-azurerm/issues/22798)) -* `azurerm_hpc_cache_nfs_target` - support for setting the `usage_model` property to `READ_ONLY` and `READ_WRITE` ([#22798](https://github.com/hashicorp/terraform-provider-azurerm/issues/22798)) -* `azurerm_monitor_aad_diagnostic_setting` - updating to use `hashicorp/go-azure-sdk` ([#22778](https://github.com/hashicorp/terraform-provider-azurerm/issues/22778)) -* `azurerm_web_application_firewall_policy` - updating to use API Version `2023-02-01` ([#22455](https://github.com/hashicorp/terraform-provider-azurerm/issues/22455)) -* `azurerm_web_application_firewall_policy` - support for `log_scrubbing` property ([#22522](https://github.com/hashicorp/terraform-provider-azurerm/issues/22522)) -* `azurerm_shared_image_gallery` - support for the `sharing` block ([#22221](https://github.com/hashicorp/terraform-provider-azurerm/issues/22221)) -* `azurerm_virtual_network` - support for the `encryption` block ([#22745](https://github.com/hashicorp/terraform-provider-azurerm/issues/22745)) - -BUG FIXES - -* provider: only obtaining an authentication token for Managed HSM in environments where Managed HSM is available ([#22400](https://github.com/hashicorp/terraform-provider-azurerm/issues/22400)) -* `azurerm_api_management` - retrieving the `location` from the API rather than the config prior to deletion ([#22752](https://github.com/hashicorp/terraform-provider-azurerm/issues/22752)) -* `azurerm_cognitive_deployment` - add locks to parent resource to prevent 409 error ([#22711](https://github.com/hashicorp/terraform-provider-azurerm/issues/22711)) -* `azurerm_pim_eligible_role_assignment` - fixing a bug where the context deadline was checked incorrectly during deletion ([#22756](https://github.com/hashicorp/terraform-provider-azurerm/issues/22756)) -* `azurerm_private_endpoint` - loading the subnet to lock from the API rather than the config during deletion ([#22676](https://github.com/hashicorp/terraform-provider-azurerm/issues/22676)) -* `azurerm_netapp_volume` - updating the validation of `security_style` to match the casing defined in the Azure API Definitions ([#22721](https://github.com/hashicorp/terraform-provider-azurerm/issues/22721)) -* `azurerm_netapp_volume_group_sap_hana` - update the validation of `security_style` to match the casing defined in the Azure API Definitions ([#22615](https://github.com/hashicorp/terraform-provider-azurerm/issues/22615)) -* `azurerm_site_recovery_replication_recovery_plan` - fix update for `boot_recovery_group`,`failover_recovery_group` and `shutdown_recovery_group` ([#22687](https://github.com/hashicorp/terraform-provider-azurerm/issues/22687)) - -## 3.67.0 (July 27, 2023) - -FEATURES: - -* **New Data Source:** `azurerm_eventhub_sas` ([#22215](https://github.com/hashicorp/terraform-provider-azurerm/issues/22215)) -* **New Resource**: `azurerm_kubernetes_cluster_trusted_access_role_binding` ([#22647](https://github.com/hashicorp/terraform-provider-azurerm/issues/22647)) -* **New Resource:** `azurerm_marketplace_role_assignment` ([#22398](https://github.com/hashicorp/terraform-provider-azurerm/issues/22398)) -* **New Resource:** `azurerm_network_function_azure_traffic_collector` ([#22274](https://github.com/hashicorp/terraform-provider-azurerm/issues/22274)) - -ENHANCEMENTS: - -* dependencies: updating to `v0.20230726.1135558` of `github.com/hashicorp/go-azure-sdk` ([#22698](https://github.com/hashicorp/terraform-provider-azurerm/issues/22698)) -* `connections`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) -* `iothub`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) -* `mysql`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) -* `orbital`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) -* `powerbi`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) -* `privatedns`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) -* `purview`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) -* `relay`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) -* `azurerm_cdn_endpoint_custom_domain` - pass nil as version when Certificate/Secret version is set to Latest ([#22683](https://github.com/hashicorp/terraform-provider-azurerm/issues/22683)) -* `azurerm_image` - support for the field `disk_encryption_set_id` within the `os_disk` block ([#22642](https://github.com/hashicorp/terraform-provider-azurerm/issues/22642)) -* `azurerm_linux_virtual_machine` - add support for the `bypass_platform_safety_checks_on_user_schedule_enabled` and `reboot_setting` properties ([#22349](https://github.com/hashicorp/terraform-provider-azurerm/issues/22349)) -* `azurerm_network_interface` - updating to use `hashicorp/go-azure-sdk` and API Version `2023-02-01` ([#22479](https://github.com/hashicorp/terraform-provider-azurerm/issues/22479)) -* `azurerm_redis_enterprise_database` - support `redisSON` module for geo-replication ([#22627](https://github.com/hashicorp/terraform-provider-azurerm/issues/22627)) -* `azurerm_windows_virtual_machine` - add support for the `bypass_platform_safety_checks_on_user_schedule_enabled` and `reboot_setting` properties ([#22349](https://github.com/hashicorp/terraform-provider-azurerm/issues/22349)) - -BUG FIXES: - -* `azurerm_cosmosdb_account` - `type` within the `backup` block is updated separately when set to `Continuous` ([#22638](https://github.com/hashicorp/terraform-provider-azurerm/issues/22638)) -* `azurerm_cosmosdb_account` - `max_age_in_seconds` within the `cors_rule` block is now Optional and can now be configured up to `2147483647` ([#22552](https://github.com/hashicorp/terraform-provider-azurerm/issues/22552)) -* `azurerm_maintenance_configuration` - fixing a bug where include and exclude were set incorrectly ([#22671](https://github.com/hashicorp/terraform-provider-azurerm/issues/22671)) -* `azurerm_pim_eligible_role_assignment` - polling for the duration of the timeout, rather than using a hard-coded value ([#22682](https://github.com/hashicorp/terraform-provider-azurerm/issues/22682)) -* `azurerm_redis_cache` - only updating `patch_schedule` when it has changed in the config file ([#22661](https://github.com/hashicorp/terraform-provider-azurerm/issues/22661)) -* `azurerm_logic_app_standard` - attribute `auto_swap_slot_name` is now under correct block `site_config` ([#22712](https://github.com/hashicorp/terraform-provider-azurerm/issues/22712)) -* `azurerm_postgresql_flexible_server` - update the validation of `storage_mb` replacing `33554432` with `33553408` ([#22706](https://github.com/hashicorp/terraform-provider-azurerm/issues/22706)) - -## 3.66.0 (July 20, 2023) - -FEATURES: - -* **New Data Source:** `azurerm_mobile_network_attached_data_network` ([#22168](https://github.com/hashicorp/terraform-provider-azurerm/issues/22168)) -* **New Resource:** `azurerm_graph_account` ([#22334](https://github.com/hashicorp/terraform-provider-azurerm/issues/22334)) -* **New Resource:** `azurerm_mobile_network_attached_data_network` ([#22168](https://github.com/hashicorp/terraform-provider-azurerm/issues/22168)) - -ENHANCEMENTS: - -* dependencies: bump `go-azure-sdk` to `v0.20230720.1190320` and switch `machinelearning`, `mixedreality`, `mariadb`, `storagecache`, `storagepool`, `vmware`, `videoanalyzer`, `voiceServices` and `mobilenetwork` to new base layer ([#22538](https://github.com/hashicorp/terraform-provider-azurerm/issues/22538)) -* dependencies: move `azurerm_bastion_host` and `azurerm_network_connection_monitor` over to `hashicorp/go-azure-sdk` ([#22425](https://github.com/hashicorp/terraform-provider-azurerm/issues/22425)) -* dependencies: move `azurerm_network_watcher_flow_log` to `hashicorp/go-azure-sdk` ([#22575](https://github.com/hashicorp/terraform-provider-azurerm/issues/22575)) -* dependencies: move `mysql` resources over to `hashicorp/go-azure-sdk` ([#22528](https://github.com/hashicorp/terraform-provider-azurerm/issues/22528)) -* dependencies: move `storage_sync` resources over to `hashicorp/go-azure-sdk` ([#21928](https://github.com/hashicorp/terraform-provider-azurerm/issues/21928)) -* dependencies: updating to API Version `2022-08-08` ([#22440](https://github.com/hashicorp/terraform-provider-azurerm/issues/22440)) -* `postgres` - updating to API Version `2023-03-01-preview` ([#22577](https://github.com/hashicorp/terraform-provider-azurerm/issues/22577)) -* `data.azurerm_route_table` - support for the `bgp_route_propagation_enabled` property ([#21940](https://github.com/hashicorp/terraform-provider-azurerm/issues/21940)) -* `data.azurerm_servicebus_*` - add deprecation messages for the `resource_group_name` and `namespace_name` properties ([#22521](https://github.com/hashicorp/terraform-provider-azurerm/issues/22521)) -* `azurerm_cdn_frontdoor_rule` - allow the `conditions.x.url_path_condition.x.match_values` property to be set to `/` ([#22610](https://github.com/hashicorp/terraform-provider-azurerm/issues/22610)) -* `azurerm_eventhub_namespace` - updates properly when encryption is enabled ([#22625](https://github.com/hashicorp/terraform-provider-azurerm/issues/22625)) -* `azurerm_logic_app_standard` - now exports the `auto_swap_slot_name` attribute ([#22525](https://github.com/hashicorp/terraform-provider-azurerm/issues/22525)) -* `azurerm_mysql_flexible_server_configuration` - the `value` property can now be changed without creating a new resource ([#22557](https://github.com/hashicorp/terraform-provider-azurerm/issues/22557)) -* `azurerm_postgresql_flexible_server` - support for `33554432` storage ([#22574](https://github.com/hashicorp/terraform-provider-azurerm/issues/22574)) -* `azurerm_postgresql_flexible_server` - support for the `geo_backup_key_vault_key_id` and `geo_backup_user_assigned_identity_id` properties ([#22612](https://github.com/hashicorp/terraform-provider-azurerm/issues/22612)) -* `azurerm_spring_cloud_service` - support for the `marketplace` block ([#22553](https://github.com/hashicorp/terraform-provider-azurerm/issues/22553)) -* `azurerm_spring_cloud_service` - support for the `outbound_type` property ([#22596](https://github.com/hashicorp/terraform-provider-azurerm/issues/22596)) - -BUG FIXES: - -* provider: the Resource Providers `Microsoft.Kubernetes` and `Microsoft.KubernetesConfiguration` are no longer automatically registered ([#22580](https://github.com/hashicorp/terraform-provider-azurerm/issues/22580)) -* `data.automation_account_variables` - correctly populate missing variable attributes ([#22611](https://github.com/hashicorp/terraform-provider-azurerm/issues/22611)) -* `data.azurerm_virtual_machine_scale_set` - fix an issue where `computer_name`, `latest_model_applied`, `power_state` and `virtual_machine_id` attributes were not correctly set ([#22566](https://github.com/hashicorp/terraform-provider-azurerm/issues/22566)) -* `azurerm_app_service_public_certificate` - poll for certificate during read to get around an eventual consistency bug ([#22587](https://github.com/hashicorp/terraform-provider-azurerm/issues/22587)) -* `azurerm_application_gateway` - send `min_protocol_version` and correct `policy_type` when using `CustomV2` ([#22535](https://github.com/hashicorp/terraform-provider-azurerm/issues/22535)) -* `azurerm_cognitive_deployment` - remove upper limit on validation for the `capacity` property in the `scale` block ([#22502](https://github.com/hashicorp/terraform-provider-azurerm/issues/22502)) -* `azurerm_cosmosdb_account` - fixed regression to `default_identity_type` being switched to `FirstPartyIdentity` on update ([#22609](https://github.com/hashicorp/terraform-provider-azurerm/issues/22609)) -* `azurerm_kubernetes_cluster` - the `windows_profile.admin_password` property will become Required in `v4.0` ([#22554](https://github.com/hashicorp/terraform-provider-azurerm/issues/22554)) -* `azurerm_kusto_cluster` - the `engine` property has been deprecataed and is now non functional as the service team intends to remove it from the API ([#22497](https://github.com/hashicorp/terraform-provider-azurerm/issues/22497)) -* `azurerm_maintenance_configuration` - tge `package_names_mask_to_exclude` and `package_names_mask_to_exclude` properties are not set properly ([#22555](https://github.com/hashicorp/terraform-provider-azurerm/issues/22555)) -* `azurerm_redis_cache` - only set the `rdb_backup_enabled` property when using a premium SKU ([#22309](https://github.com/hashicorp/terraform-provider-azurerm/issues/22309)) -* `azurerm_site_recovery_replication_recovery_plan` - fix an issue where the order of boot recovery groups was not correctly maintained ([#22348](https://github.com/hashicorp/terraform-provider-azurerm/issues/22348)) -* `azurerm_synapse_firewall_rule` - correct an overly strict validation for the `name` property ([#22571](https://github.com/hashicorp/terraform-provider-azurerm/issues/22571)) - -## 3.65.0 (July 13, 2023) - -FEATURES: - -* **New Data Source**: `azurerm_communication_service` ([#22426](https://github.com/hashicorp/terraform-provider-azurerm/issues/22426)) - -ENHANCEMENTS: - -* dependencies: updating to `v0.20230712.1084117` of `github.com/hashicorp/go-azure-sdk` ([#22491](https://github.com/hashicorp/terraform-provider-azurerm/issues/22491)) -* dependencies: updating to `v0.20230703.1101016` of `github.com/tombuildsstuff/kermit` ([#22390](https://github.com/hashicorp/terraform-provider-azurerm/issues/22390)) -* provider: the Resource Providers `Microsoft.Kubernetes` and `Microsoft.KubernetesConfiguration` are now automatically registered ([#22463](https://github.com/hashicorp/terraform-provider-azurerm/issues/22463)) -* `automation/dscconfiguration` - updating to API Version `2022-08-08` ([#22403](https://github.com/hashicorp/terraform-provider-azurerm/issues/22403)) -* `azurestackhcl` - updating to API Version `2023-03-01` ([#22411](https://github.com/hashicorp/terraform-provider-azurerm/issues/22411)) -* `batch` - updating to use API Version `2023-05-01` ([#22412](https://github.com/hashicorp/terraform-provider-azurerm/issues/22412)) -* `datafactory` - moving `azurerm_data_factory` and `azurerm_data_factory_managed_private_endpoint` over to `hashicorp/go-azure-sdk` ([#22409](https://github.com/hashicorp/terraform-provider-azurerm/issues/22409)) -* `elastic` - updating to API Version `2023-06-01` ([#22451](https://github.com/hashicorp/terraform-provider-azurerm/issues/22451)) -* `kusto` - updating to API Version `2023-05-02` [GH-22410 -* `managedapplications` - migrate to `hashicorp/go-azure-sdk` ([#21571](https://github.com/hashicorp/terraform-provider-azurerm/issues/21571)) -* `privatedns`: updating to API Version `2020-06-01` ([#22470](https://github.com/hashicorp/terraform-provider-azurerm/issues/22470)) -* `storage` - updating to Data Plane API Version `2020-08-04` ([#22405](https://github.com/hashicorp/terraform-provider-azurerm/issues/22405)) -* `network` - `application_security_group` and `private_endpoint` now use `hashicorp/go-azure-sdk` ([#22396](https://github.com/hashicorp/terraform-provider-azurerm/issues/22396)) -* `voiceservices`: updating to use API Version `2023-04-03` ([#22469](https://github.com/hashicorp/terraform-provider-azurerm/issues/22469)) -* Data Source: `azurerm_kubernetes_cluster` - add support for the `internal_ingress_gateway_enabled` and `external_ingress_gateway_enabled` properties ([#22393](https://github.com/hashicorp/terraform-provider-azurerm/issues/22393)) -* `azurerm_batch_account` - support for the `network_profile` block ([#22356](https://github.com/hashicorp/terraform-provider-azurerm/issues/22356)) -* `azurerm_container_app` - the `min_replicas` and `max_replicas` propertiesnow support a maximum value of `300` ([#22511](https://github.com/hashicorp/terraform-provider-azurerm/issues/22511)) -* `azurerm_dns_zone` - can now use the `host_name` property with `dns_zone` for `soa_record` creation ([#22312](https://github.com/hashicorp/terraform-provider-azurerm/issues/22312)) -* `azurerm_kubernetes_cluster` - add support for the `internal_ingress_gateway_enabled` and `external_ingress_gateway_enabled` properties ([#22393](https://github.com/hashicorp/terraform-provider-azurerm/issues/22393)) -* `azurerm_site_recovery_vmware_replication_policy_association` - update validation to correctly handle case ([#22443](https://github.com/hashicorp/terraform-provider-azurerm/issues/22443)) - -BUG FIXES: - -* `azurerm_automation_dsc_configuration` - fixing an issue where `content_embedded` couldn't be deserialized ([#22403](https://github.com/hashicorp/terraform-provider-azurerm/issues/22403)) -* `azurerm_data_factory_dataset_cosmosdb_sqlapi` - fix incorrect type/error message during read ([#22438](https://github.com/hashicorp/terraform-provider-azurerm/issues/22438)) -* `azurerm_data_factory_dataset_mysql` - fix incorrect type/error message during read ([#22438](https://github.com/hashicorp/terraform-provider-azurerm/issues/22438)) -* `azurerm_data_factory_dataset_postgresql` - fix incorrect type/error message during read ([#22438](https://github.com/hashicorp/terraform-provider-azurerm/issues/22438)) -* `azurerm_logic_app_workflow` - prevent crash when `access_control` is empty block ([#22486](https://github.com/hashicorp/terraform-provider-azurerm/issues/22486)) -* `azurerm_vpn_server_configuration` - prevent a potential panic when setting deprecated variables ([#22437](https://github.com/hashicorp/terraform-provider-azurerm/issues/22437)) - -## 3.64.0 (July 06, 2023) - -FEATURES: - -* **New Data Source:** `azurerm_automation_variables` ([#22216](https://github.com/hashicorp/terraform-provider-azurerm/issues/22216)) -* **New Resource:** `azurerm_arc_private_link_scope` ([#22314](https://github.com/hashicorp/terraform-provider-azurerm/issues/22314)) -* **New Resource:** `azurerm_kusto_cosmosdb_data_connection` ([#22295](https://github.com/hashicorp/terraform-provider-azurerm/issues/22295)) -* **New Resource:** `azurerm_pim_active_role_assignment` ([#20731](https://github.com/hashicorp/terraform-provider-azurerm/issues/20731)) -* **New Resource:** `azurerm_pim_eligible_role_assignment` ([#20731](https://github.com/hashicorp/terraform-provider-azurerm/issues/20731)) - -ENHANCEMENTS: - -* dependencies: `web`: updating to API Version `2022-09-01` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* dependencies: `cognitive`: updating to API Version `2023-05-01` ([#22223](https://github.com/hashicorp/terraform-provider-azurerm/issues/22223)) -* dependencies: updating to `v1.53.0` of `google.golang.org/grpc` ([#22383](https://github.com/hashicorp/terraform-provider-azurerm/issues/22383)) -* `azurerm_cognitive_deployment` - suppot for the `scale` block propeties `tier`, `size`, `family`, and `capacity` ([#22223](https://github.com/hashicorp/terraform-provider-azurerm/issues/22223)) -* `azurerm_linux_function_app` - added support for the `public_network_access_enabled` property ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_linux_function_app_slot` - added support for the `public_network_access_enabled` property ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_linux_web_app` - added support for the `public_network_access_enabled` property ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_linux_web_app_slot` - added support for the `public_network_access_enabled` property ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_windows_function_app` - added support for the `public_network_access_enabled` property ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_windows_function_app_slot` - added support for the `public_network_access_enabled` property -* `azurerm_windows_web_app` - added support for the `public_network_access_enabled` property ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_windows_web_app_slot` - added support for the `public_network_access_enabled` property ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_stream_analytics_output_blob` - increase the `batch_min_rows` property allowed values to `1000000` ([#22331](https://github.com/hashicorp/terraform-provider-azurerm/issues/22331)) -* `azurerm_spring_cloud_gateway` - support for the the `allowed_origin_patterns` property ([#22317](https://github.com/hashicorp/terraform-provider-azurerm/issues/22317)) - -BUG FIXES: - -* Data Source `azurerm_virtual_machine_scale_set` - prevent a nil pointer panic during reads ([#22335](https://github.com/hashicorp/terraform-provider-azurerm/issues/22335)) -* `azurerm_application_insights_api_key` - prevent a nil pointer panic ([#22388](https://github.com/hashicorp/terraform-provider-azurerm/issues/22388)) -* `azurerm_linux_function_app` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_linux_function_app_slot` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_linux_web_app` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_linux_web_app` - prevent a nil pointer panic in docker settings processing ([#22347](https://github.com/hashicorp/terraform-provider-azurerm/issues/22347)) -* `azurerm_linux_web_app_slot` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_private_dns_resolver_forwarding_rule_resource` - changing the `domain_name` property now creates a new resource ([#22375](https://github.com/hashicorp/terraform-provider-azurerm/issues/22375)) -* `azurerm_windows_function_app` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_windows_function_app_slot` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_windows_web_app` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_windows_web_app_slot` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) -* `azurerm_network_security_rule` - improve validation of the `name` property and prevent creation of resources that are broken ([#22336](https://github.com/hashicorp/terraform-provider-azurerm/issues/22336)) - -DEPRECATION: - -* `media` - all resources and data sources are deprecated ahead of service being retired ([#22350](https://github.com/hashicorp/terraform-provider-azurerm/issues/22350)) - -## 3.63.0 (June 29, 2023) - -FEATURES: - -* **New Data Source:** `azurerm_network_manager_network_group` ([#22277](https://github.com/hashicorp/terraform-provider-azurerm/issues/22277)) - -BREAKING CHANGES: - -* `azurerm_linux_web_app` - the `win32_status` property of the `status_code` block in `auto_heal` has changed from `string` to `int`. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) -* `azurerm_linux_web_app_slot` -the `win32_status` property of the `status_code` block in `auto_heal` has changed from `string` to `int`. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) -* `azurerm_windows_web_app` - the `win32_status` property of the `status_code` block in `auto_heal` has changed from `string` to `int`. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) -* `azurerm_windows_web_app_slot` - the `win32_status` property of the `status_code` block in `auto_heal` has changed from `string` to `int`. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) - -ENHANCEMENTS: - -* dependencies: updating to `v0.20230623.1103505` of `github.com/hashicorp/go-azure-sdk` ([#22263](https://github.com/hashicorp/terraform-provider-azurerm/issues/22263)) -* dependencies: updating to `v0.57.0` of `github.com/hashicorp/go-azure-helpers` ([#22247](https://github.com/hashicorp/terraform-provider-azurerm/issues/22247)) -* dependencies: `containers/containerinstance`: updating to API Version `2023-05-01` ([#22276](https://github.com/hashicorp/terraform-provider-azurerm/issues/22276)) -* dependencies: `network/securityrules`: migrate to `go-azure-sdk` ([#22242](https://github.com/hashicorp/terraform-provider-azurerm/issues/22242)) -* dependencies: `redis`: updating to API Version `2023-04-01` ([#22285](https://github.com/hashicorp/terraform-provider-azurerm/issues/22285)) -* Data Source: `azurerm_kubernetes_cluster` - add support for the `custom_ca_trust_certificates_base64` property ([#22032](https://github.com/hashicorp/terraform-provider-azurerm/issues/22032)) -* `azurerm_automation_software_update_configuration` - the `duration` property now defaults to `PT2H` as per the service. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) -* `azurerm_automation_software_update_configuration` - the `schedule` block is now limited to `1`, to match the API limit. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) -* `azurerm_automation_software_update_configuration` - the `schedule` block is now `Required` to match the API specification. The API rejects requests that do not specify this block, with at least a `frequency` value. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) -* `azurerm_automation_software_update_configuration` - the `frequency` property is now a `Required` property of the `schedule` block. This is to match the minimum requirements of the API. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) -* `azurerm_automation_software_update_configuration` - the `pre_task` blocks are now limited to `1` to match the API. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) -* `azurerm_automation_software_update_configuration` - the `post_task` blocks are now limited to `1` to match the API. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) -* `azurerm_automation_software_update_configuration` - the `operating_system` property has been deprecated and is now controlled by the presence of either a `linux` or `windows` block. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) -* `azurerm_automation_software_update_configuration` - one of the `linux` or `windows` blocks must now be present. This is a requirement of the API, so is a non-breaking `Optional` to `Required` change. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) -* `azurerm_automation_software_update_configuration` - the `monthly_occurrence` blocks are now limited to `1` to match the API. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) -* `azurerm_container_app` - support for both system and user assigned identities at the same time ([#21149](https://github.com/hashicorp/terraform-provider-azurerm/issues/21149)) -* `azurerm_key_vault_managed_hardware_security_module` - support for activating an HSM through `security_domain_key_vault_certificate_ids` ([#22162](https://github.com/hashicorp/terraform-provider-azurerm/issues/22162)) -* `azurerm_kubernetes_cluster` - support for the `custom_ca_trust_certificates_base64` property ([#22032](https://github.com/hashicorp/terraform-provider-azurerm/issues/22032)) -* `azurerm_kubernetes_cluster` - support for the `maintenance_window_auto_upgrade` block ([#21760](https://github.com/hashicorp/terraform-provider-azurerm/issues/21760)) -* `azurerm_kubernetes_cluster` - support for the `maintenance_window_node_os` block ([#21760](https://github.com/hashicorp/terraform-provider-azurerm/issues/21760)) -* `azurerm_monitor_aad_diagnostic_setting` - deprecate `log` in favour of `enabled_log` ([#21390](https://github.com/hashicorp/terraform-provider-azurerm/issues/21390)) -* `azurerm_resource_group` - support for the `managed_by` property ([#22012](https://github.com/hashicorp/terraform-provider-azurerm/issues/22012)) - -BUG FIXES: - -* `azurerm_automation_schedule` - prevent diffs for the `expiry_time` property when it hasn't been set in the user's configuration ([#21886](https://github.com/hashicorp/terraform-provider-azurerm/issues/21886)) -* `azurerm_frontdoor` - throw an error if the resource cannot be found during an update ([#21975](https://github.com/hashicorp/terraform-provider-azurerm/issues/21975)) -* `azurerm_image` - changing the `os_disk.size_gb` propety now creates a new resource ([#22272](https://github.com/hashicorp/terraform-provider-azurerm/issues/22272)) -* `azurerm_kubernetes_cluster` - fix the validation for `node_os_channel_upgrade` block ([#22284](https://github.com/hashicorp/terraform-provider-azurerm/issues/22284)) -* `azurerm_linux_virtual_machine` - raise an error if the resource cannot be found during an update ([#21975](https://github.com/hashicorp/terraform-provider-azurerm/issues/21975)) -* `azurerm_linux_web_app` - deprecated the `docker_image` and `docker_image_tag` properties in favour of `docker_image_name`, `docker_registry_url`, `docker_registry_username`, and `docker_registry_password`. These settings now manage the respective `app_settings` values of the same name. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) -* `azurerm_linux_web_app_slot` - deprecated the `docker_image` and `docker_image_tag` properties in favour of `docker_image_name`, `docker_registry_url`, `docker_registry_username`, and `docker_registry_password`. These settings now manage the respective `app_settings` values of the same name. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) -* `azurerm_site_recovery_replicated_vm` - set the `network_interface.failover_test_subnet_name`, `network_interface.failover_test_public_ip_address_id` and `network_interface.failover_test_static_ip` properties correctly ([#22217](https://github.com/hashicorp/terraform-provider-azurerm/issues/22217)) -* `azurerm_ssh_public_key` - throw an error if the resource cannot be found during an update ([#21975](https://github.com/hashicorp/terraform-provider-azurerm/issues/21975)) -* `azurerm_storage_share` - revert the resource ID format back to what it was previously due to a discrepancy in the API and Portal ([#22271](https://github.com/hashicorp/terraform-provider-azurerm/issues/22271)) -* `azurerm_storage_account` - the `last_access_time_enabled` and `container_delete_retention_policy` properties are now supported in usgovernment ([#22273](https://github.com/hashicorp/terraform-provider-azurerm/issues/22273)) -* `azurerm_windows_virtual_machine` - reaise an error if the resource cannot be found during an update ([#21975](https://github.com/hashicorp/terraform-provider-azurerm/issues/21975)) -* `azurerm_windows_web_app` - deprecated the `docker_container_registry`, `docker_container_name`, and `docker_container_tag` properties in favour of `docker_image_name`, `docker_registry_url`, `docker_registry_username`, and `docker_registry_password`. These settings now manage the respective `app_settings` values of the same name. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) -* `azurerm_windows_web_app_slot` - deprecated the `docker_container_registry`, `docker_container_name`, and `docker_container_tag` properties in favour of `docker_image_name`, `docker_registry_url`, `docker_registry_username`, and `docker_registry_password`. These settings now manage the respective `app_settings` values of the same name. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) - -## 3.62.1 (June 22, 2023) - -BUG FIXES: - -dependencies: `compute/marketplace_agreement` - Downgrade API version to 2015-06-01 ([#22264](https://github.com/hashicorp/terraform-provider-azurerm/issues/22264)) - -## 3.62.0 (June 22, 2023) - -FEATURES: - -* **New Resource:** `azurerm_new_relic_monitor` ([#21958](https://github.com/hashicorp/terraform-provider-azurerm/issues/21958)) - -ENHANCEMENTS: - -* dependencies: updating to `v0.20230614.1151152` of `github.com/hashicorp/go-azure-sdk` ([#22176](https://github.com/hashicorp/terraform-provider-azurerm/issues/22176)) -* dependencies: `compute/marketplace_agreement` - swap to use `hashicorp/go-azure-sdk` ([#21938](https://github.com/hashicorp/terraform-provider-azurerm/issues/21938)) -* dependencies: `network/manager` - swap to use `hashicorp/go-azure-sdk` ([#22119](https://github.com/hashicorp/terraform-provider-azurerm/issues/22119)) -* dependencies: `network/route` - swap to use `hashicorp/go-azure-sdk` ([#22227](https://github.com/hashicorp/terraform-provider-azurerm/issues/22227)) -* `azurerm_cosmosdb_gremlin_graph` - support for the `analytical_storage_ttl` property ([#22179](https://github.com/hashicorp/terraform-provider-azurerm/issues/22179)) -* `azurerm_kubernetes_cluster` - support for the value `AzureLinux` for the field `os_sku` within the `default_node_pool` block ([#22139](https://github.com/hashicorp/terraform-provider-azurerm/issues/22139)) -* `azurerm_kubernetes_cluster` - support for the property `node_os_channel_upgrade` ([#22187](https://github.com/hashicorp/terraform-provider-azurerm/issues/22187)) -* `azurerm_kubernetes_cluster_node_pool` - support for the value `AzureLinux` for the field `os_sku` ([#22139](https://github.com/hashicorp/terraform-provider-azurerm/issues/22139)) -* `azurerm_monitor_workspace` - support for `public_network_access_enabled` ([#22197](https://github.com/hashicorp/terraform-provider-azurerm/issues/22197)) -* `azurerm_virtual_hub` - support for `virtual_router_auto_scale_min_capacity` ([#21614](https://github.com/hashicorp/terraform-provider-azurerm/issues/21614)) - -BUG FIXES: - -* `azurerm_application_insights_workbook` - the `display_name` property can now be updated ([#22148](https://github.com/hashicorp/terraform-provider-azurerm/issues/22148)) -* `azurerm_bastion_host` - will now create a new resource when the `sku` property is downgraded ([#22147](https://github.com/hashicorp/terraform-provider-azurerm/issues/22147)) -* `azurerm_container_app` - the `EmptyDir` property now functions ([#22196](https://github.com/hashicorp/terraform-provider-azurerm/issues/22196)) -* `azurerm_kubernetes_cluster` - fix the validation preventing cluster's with `network_plugin_mode` set to `Overlay` due to a case change in the upstream API ([#22153](https://github.com/hashicorp/terraform-provider-azurerm/issues/22153)) -* `azurerm_resource_deployment_script_*` - fix issue where `identity` wasn't specified but was being sent as `TypeNone` to the api ([#22165](https://github.com/hashicorp/terraform-provider-azurerm/issues/22165)) -* `azurerm_bastion_host` - the `ip_configuration` propery is now required ([#22154](https://github.com/hashicorp/terraform-provider-azurerm/issues/22154)) - -## 3.61.0 (June 12, 2023) - -FEATURES: - -* **New Data Source:** `azurerm_mobile_network_packet_core_data_plane` ([#21053](https://github.com/hashicorp/terraform-provider-azurerm/issues/21053)) -* **New Resource:** `azurerm_arc_machine_extension` ([#22051](https://github.com/hashicorp/terraform-provider-azurerm/issues/22051)) -* **New Resource:** `azurerm_arc_kubernetes_flux_configuration` ([#21579](https://github.com/hashicorp/terraform-provider-azurerm/issues/21579)) -* **New Resource:** `azurerm_kubernetes_flux_configuration` ([#21579](https://github.com/hashicorp/terraform-provider-azurerm/issues/21579)) -* **New Resource:** `azurerm_mobile_network_packet_core_data_plane` ([#21053](https://github.com/hashicorp/terraform-provider-azurerm/issues/21053)) - -ENHANCEMENTS: - -* dependencies: updating to `v0.20230530.1150329` of `github.com/tombuildsstuff/kermit` ([#21980](https://github.com/hashicorp/terraform-provider-azurerm/issues/21980)) -* dependencies: `compute/gallery`: updating to API Version `2022-03-03` ([#21999](https://github.com/hashicorp/terraform-provider-azurerm/issues/21999)) -* dependencies: `kusto`: updating to API Version `2022-12-29` ([#21961](https://github.com/hashicorp/terraform-provider-azurerm/issues/21961)) -* Data Source `azurerm_site_recovery_replication_recovery_plan` - add support for `azure_to_azure_settings` block ([#22098](https://github.com/hashicorp/terraform-provider-azurerm/issues/22098)) -* `compute`: updating to use API Version `2023-03-01` ([#21980](https://github.com/hashicorp/terraform-provider-azurerm/issues/21980)) -* `containers`: updating to use API version `2023-04-02-preview` [22048] -* `managedidentity`: updating to use API Version `2023-01-31` ([#22102](https://github.com/hashicorp/terraform-provider-azurerm/issues/22102)) -* `azurerm_backup_protected_vm` - support for the `protection_state` property ([#20608](https://github.com/hashicorp/terraform-provider-azurerm/issues/20608)) -* `azurerm_batch_account` - the `public_network_access_enabled` property can now be updated ([#22095](https://github.com/hashicorp/terraform-provider-azurerm/issues/22095)) -* `azurerm_batch_pool` - support for the `target_node_communication_mode` property ([#22094](https://github.com/hashicorp/terraform-provider-azurerm/issues/22094)) -* `azurerm_automanage_configuration` - support for the `log_analytics_enabled` property ([#22121](https://github.com/hashicorp/terraform-provider-azurerm/issues/22121)) -* `azurerm_nginx_certificate` - the `key_virtual_path`, `certificate_virtual_path`, and `key_vault_secret_id` proeprties can now be updated ([#22100](https://github.com/hashicorp/terraform-provider-azurerm/issues/22100)) -* `azurerm_spring_cloud_gateway` - support for the `client_authentication` property ([#22016](https://github.com/hashicorp/terraform-provider-azurerm/issues/22016)) - -BUG FIXES: - -* `azurerm_databricks_workspace_data_source` - correctly set the `managed_idnetity_id` attribute ([#22021](https://github.com/hashicorp/terraform-provider-azurerm/issues/22021)) - -## 3.60.0 (June 08, 2023) - -NOTES: - -* `azurerm_security_center_subscription_pricing` - upon deletion the pricing tier will now reset to `Free` tier ([#21437](https://github.com/hashicorp/terraform-provider-azurerm/issues/21437)) - -ENHANCEMENTS: - -* dependencies: `batch`: updating to API Version `2022-10-01` ([#21962](https://github.com/hashicorp/terraform-provider-azurerm/issues/21962)) -* dependencies: `loadtest`: updating to API Version `2022-12-01` ([#22091](https://github.com/hashicorp/terraform-provider-azurerm/issues/22091)) -* provider: adding the `client_id_file_path` and `client_secret_file_path` provider properties ([#21764](https://github.com/hashicorp/terraform-provider-azurerm/issues/21764)) -* `data.azurerm_key_vault_encrypted_value` - now exports the `decoded_plain_text_value` [attribute GH-21682] -* `azurerm_automanage_configuration` - support for the `backup` and `azure_security_baseline` blocks ([#22081](https://github.com/hashicorp/terraform-provider-azurerm/issues/22081)) -* `azurerm_app_configuration` - support toggling of user permission error on soft deleted stores through `app_configuration.recover_soft_deleted` feature flag ([#19661](https://github.com/hashicorp/terraform-provider-azurerm/issues/19661)) -* `azurerm_backup_policy_file_share` - support for day-based retention policies and hourly backups ([#21529](https://github.com/hashicorp/terraform-provider-azurerm/issues/21529)) -* `azurerm_linux_function_app` - support for Python `3.11` for Linux function app ([#21956](https://github.com/hashicorp/terraform-provider-azurerm/issues/21956)) -* `azurerm_linux_function_app_slot` - support for Python `3.11` for Linux function app ([#21956](https://github.com/hashicorp/terraform-provider-azurerm/issues/21956)) -* `azurerm_monitor_autoscale_setting` - support for the `predictive` block ([#22038](https://github.com/hashicorp/terraform-provider-azurerm/issues/22038)) -* `azurerm_machine_learning_compute_instance` - support for the `node_public_ip_enabled` property ([#22063](https://github.com/hashicorp/terraform-provider-azurerm/issues/22063)) -* `azurerm_spring_cloud_service` - support for the `container_registry` block ([#22017](https://github.com/hashicorp/terraform-provider-azurerm/issues/22017)) -* `azurerm_site_recovery_replication_recovery_plan` - the order of the `pre_action` and `post_action` properties is now respected ([#22019](https://github.com/hashicorp/terraform-provider-azurerm/issues/22019)) - -BUG FIXES: - -* `azurerm_hdinsight_interactive_query_cluster` - deprecating the `*_node.0.autoscale.0.capacity` property ([#21981](https://github.com/hashicorp/terraform-provider-azurerm/issues/21981)) -* `azurerm_key_vault_key` - allow the `rotation_policy` property to be removed ([#21935](https://github.com/hashicorp/terraform-provider-azurerm/issues/21935)) -* `azurerm_mssql_server` - fix issue where the `minimum_tls_version` property is being returned as `None` instead of `Disabled` ([#22067](https://github.com/hashicorp/terraform-provider-azurerm/issues/22067)) -* `azurerm_sentinel_data_connector_microsoft_threat_intelligence` - the `bing_safety_phishing_url_lookback_date` property has been deprecated ([#21954](https://github.com/hashicorp/terraform-provider-azurerm/issues/21954)) - --- -For information on changes between the v3.59.0 and v3.0.0 releases, please see [the previous v3.x changelog entries](https://github.com/hashicorp/terraform-provider-azurerm/blob/main/CHANGELOG-v3.md). +For information on changes between the v3.69.0 and v3.0.0 releases, please see [the previous v3.x changelog entries](https://github.com/hashicorp/terraform-provider-azurerm/blob/main/CHANGELOG-v3.md). For information on changes between the v2.99.0 and v2.0.0 releases, please see [the previous v2.x changelog entries](https://github.com/hashicorp/terraform-provider-azurerm/blob/main/CHANGELOG-v2.md). From dc98e1de3a10aef476ced6a1d26ecc63e88d420d Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Fri, 25 Aug 2023 10:40:21 +0200 Subject: [PATCH 045/336] splitting 3.69 --- CHANGELOG-v3.md | 435 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 435 insertions(+) diff --git a/CHANGELOG-v3.md b/CHANGELOG-v3.md index e1960a8510a0..795f8756818f 100644 --- a/CHANGELOG-v3.md +++ b/CHANGELOG-v3.md @@ -1,3 +1,438 @@ +## 3.69.0 (August 10, 2023) + +FEATURES: + +* **New Data Source**: `azurerm_palo_alto_local_rulestack` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) +* **New Resource**: `azurerm_graph_services_account` ([#22665](https://github.com/hashicorp/terraform-provider-azurerm/issues/22665)) +* **New Resource**: `azurerm_managed_lustre_file_system` ([#22680](https://github.com/hashicorp/terraform-provider-azurerm/issues/22680)) +* **New Resource**: `azurerm_palo_alto_local_rulestack` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) +* **New Resource**: `azurerm_palo_alto_local_rulestack_certificate` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) +* **New Resource**: `azurerm_palo_alto_local_rulestack_fqdn_list` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) +* **New Resource**: `azurerm_palo_alto_local_rulestack_outbound_trust_certificate_association` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) +* **New Resource**: `azurerm_palo_alto_local_rulestack_outbound_untrust_certificate_association` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) +* **New Resource**: `azurerm_palo_alto_local_rulestack_prefix_list` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) +* **New Resource**: `azurerm_palo_alto_local_rulestack_rule` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) +* **New Resource**: `azurerm_palo_alto_virtual_network_appliance` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) +* **New Resource**: `azurerm_palo_alto_next_generation_firewall_virtual_hub_local_rulestack` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) +* **New Resource**: `azurerm_palo_alto_next_generation_firewall_virtual_hub_panorama` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) +* **New Resource**: `azurerm_palo_alto_next_generation_firewall_virtual_network_local_rulestack` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) +* **New Resource**: `azurerm_palo_alto_next_generation_firewall_virtual_network_panorama` ([#22700](https://github.com/hashicorp/terraform-provider-azurerm/issues/22700)) + +ENHANCEMENTS: + +* dependencies: updating to `v0.58.0` of `github.com/hashicorp/go-azure-helpers` ([#22813](https://github.com/hashicorp/terraform-provider-azurerm/issues/22813)) +* dependencies: updating to `v0.20230808.1103829` of `github.com/hashicorp/go-azure-sdk` ([#22860](https://github.com/hashicorp/terraform-provider-azurerm/issues/22860)) +* `arckubernetes` - updating to use the `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` as a base layer ([#22815](https://github.com/hashicorp/terraform-provider-azurerm/issues/22815)) +* `bot` - updating to use the `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` as a base layer ([#22815](https://github.com/hashicorp/terraform-provider-azurerm/issues/22815)) +* `blueprints`: updating to use `hashicorp/go-azure-sdk` ([#21569](https://github.com/hashicorp/terraform-provider-azurerm/issues/21569)) +* `compute` - updating to use the `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` as a base layer ([#22860](https://github.com/hashicorp/terraform-provider-azurerm/issues/22860)) +* `digitaltwins` - updating to API Version `2023-01-31` ([#22782](https://github.com/hashicorp/terraform-provider-azurerm/issues/22782)) +* `hsm` - updating to use the `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` as a base layer ([#22815](https://github.com/hashicorp/terraform-provider-azurerm/issues/22815)) +* `hybridcompute` - updating to use the `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` as a base layer ([#22815](https://github.com/hashicorp/terraform-provider-azurerm/issues/22815)) +* Data Source: `azurerm_network_service_tags` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) +* Data Source: `azurerm_network_watcher` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) +* `azurerm_container_app_environment` - `log_analytics_workspace_id` is now an Optional property ([#22733](https://github.com/hashicorp/terraform-provider-azurerm/issues/22733)) +* `azurerm_digital_twins_instance` - support for User Assigned Identities ([#22782](https://github.com/hashicorp/terraform-provider-azurerm/issues/22782)) +* `azurerm_function_app_function` - hyphen and underscore are now allows characters for function names ([#22519](https://github.com/hashicorp/terraform-provider-azurerm/issues/22519)) +* `azurerm_key_vault_certificate` - Support update of certificates based on `certificate_policy` ([#20627](https://github.com/hashicorp/terraform-provider-azurerm/issues/20627)) +* `azurerm_kubernetes_cluster` - export the identity for Web App Routing under `web_app_routing_identity` ([#22809](https://github.com/hashicorp/terraform-provider-azurerm/issues/22809)) +* `azurerm_kubernetes_cluster` - add support for the `snapshot_id` property in the `default_node_pool` block ([#22708](https://github.com/hashicorp/terraform-provider-azurerm/issues/22708)) +* `azurerm_log_analytics_workspace` - support changing value of `sku` from `CapacityReservation` and `PerGB2018` ([#22597](https://github.com/hashicorp/terraform-provider-azurerm/issues/22597)) +* `azurerm_managed_application` - deprecate the `parameters` property in favour of `parameter_values` ([#21541](https://github.com/hashicorp/terraform-provider-azurerm/issues/21541)) +* `azurerm_monitor_action_group` - the value `https` is now supported for `aad_auth` ([#22888](https://github.com/hashicorp/terraform-provider-azurerm/issues/22888)) +* `azurerm_mssql_server` - `SystemAssigned, UserAssigned` identity is now supported ([#22828](https://github.com/hashicorp/terraform-provider-azurerm/issues/22828)) +* `azurerm_network_packet_capture` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) +* `azurerm_network_profile` - refactoring to use `hashicorp/go-azure-sdk` ([#22850](https://github.com/hashicorp/terraform-provider-azurerm/issues/22850)) +* `azurerm_network_watcher_flow_log` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) +* `azurerm_network_watcher` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) +* `azurerm_postgresql_database` - updating the validation for `collation` ([#22689](https://github.com/hashicorp/terraform-provider-azurerm/issues/22689)) +* `azurerm_postgresql_flexible_server_database` - updating the validation for `collation` ([#22689](https://github.com/hashicorp/terraform-provider-azurerm/issues/22689)) +* `azurerm_security_center_subscription_pricing` - support for `extensions` block ([#22643](https://github.com/hashicorp/terraform-provider-azurerm/issues/22643)) +* `azurerm_security_center_subscription_pricing` - support for the `resource_type` `Api` ([#22844](https://github.com/hashicorp/terraform-provider-azurerm/issues/22844)) +* `azurerm_spring_cloud_configuration_service` - support for the `ca_certificate_id` property ([#22814](https://github.com/hashicorp/terraform-provider-azurerm/issues/22814)) +* `azurerm_virtual_desktop_workspace` - added support for the `public_network_access_enabled` property ([#22542](https://github.com/hashicorp/terraform-provider-azurerm/issues/22542)) +* `azurerm_virtual_machine_packet_capture` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) +* `azurerm_virtual_machine_scale_set_packet_capture` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) +* `azurerm_vpn_gateway_connection` - updating to use `hashicorp/go-azure-sdk` ([#22873](https://github.com/hashicorp/terraform-provider-azurerm/issues/22873)) +* `azurerm_vpn_server_configuration` - refactoring to use `hashicorp/go-azure-sdk` ([#22850](https://github.com/hashicorp/terraform-provider-azurerm/issues/22850)) +* `azurerm_vpn_server_configuration_policy_group` - refactoring to use `hashicorp/go-azure-sdk` ([#22850](https://github.com/hashicorp/terraform-provider-azurerm/issues/22850)) +* `azurerm_vpn_site` - refactoring to use `hashicorp/go-azure-sdk` ([#22850](https://github.com/hashicorp/terraform-provider-azurerm/issues/22850)) + +BUG FIXES: + +* Data Source: `azurerm_virutal_machine` - correctly retrieve and set value for `power_state` ([#22851](https://github.com/hashicorp/terraform-provider-azurerm/issues/22851)) +* `azurerm_cdn_endpoint` - conditionally using `PUT` in place of `PATCH` when a field other than `tags` has changed ([#22662](https://github.com/hashicorp/terraform-provider-azurerm/issues/22662)) +* `azurerm_cdn_frontdoor_security_policy` - normalizing the value returned from the API for `cdn_frontdoor_domain_id` ([#22841](https://github.com/hashicorp/terraform-provider-azurerm/issues/22841)) +* `azurerm_container_group` - set `init_container.secure_environment_variables` into state correctly ([#22832](https://github.com/hashicorp/terraform-provider-azurerm/issues/22832)) +* `azurerm_custom_ip_prefix` - support for environments other than Azure Public ([#22812](https://github.com/hashicorp/terraform-provider-azurerm/issues/22812)) +* `azurerm_databricks_workspace` - update parse function for `machine_learning_workspace_id` field validation ([#22865](https://github.com/hashicorp/terraform-provider-azurerm/issues/22865)) +* `azurerm_key_vault` - fixing support for the `storage` Nested Item type ([#22707](https://github.com/hashicorp/terraform-provider-azurerm/issues/22707)) +* `azurerm_kusto_cosmosdb_data_connection_resource` - ensure the `subscriptionId` and `ResourceGroupName` align with the CosmosDB container ([#22663](https://github.com/hashicorp/terraform-provider-azurerm/issues/22663)) +* `azurerm_managed_application` - fix an issue where `secureString` parameters were not persisted to state ([#21541](https://github.com/hashicorp/terraform-provider-azurerm/issues/21541)) +* `azurerm_managed_application` - the `plan` block is now marked ForceNew to comply with service limitations ([#21541](https://github.com/hashicorp/terraform-provider-azurerm/issues/21541)) +* `azurerm_monitor_data_collection_rule` - recreate resource when attempting to remove `kind` ([#22811](https://github.com/hashicorp/terraform-provider-azurerm/issues/22811)) +* `azurerm_static_site_custom_domain` - prevent overwriting `validation_token` with an empty value by setting it into state when creating the resource ([#22848](https://github.com/hashicorp/terraform-provider-azurerm/issues/22848)) + +## 3.68.0 (August 03, 2023) + +FEATURES: + +* **New Resource:** `azurerm_custom_ip_prefix` ([#21322](https://github.com/hashicorp/terraform-provider-azurerm/issues/21322)) +* **New Resource:**: `azurerm_mobile_network_sim` ([#22628](https://github.com/hashicorp/terraform-provider-azurerm/issues/22628)) +* **New Data Source:** `azurerm_mobile_network_sim` ([#22628](https://github.com/hashicorp/terraform-provider-azurerm/issues/22628)) +* **New Resource:** `azurerm_automation_variable_object` ([#22644](https://github.com/hashicorp/terraform-provider-azurerm/issues/22644)) +* **New Data Source:** `azurerm_automation_variable_object` ([#22644](https://github.com/hashicorp/terraform-provider-azurerm/issues/22644)) + +ENHANCEMENTS + +* dependencies: updating to `v0.20230803.1095722` of `github.com/hashicorp/go-azure-sdk` ([#22803](https://github.com/hashicorp/terraform-provider-azurerm/issues/22803)) +* dependencies: migrate mysql resources to `hashicorp/go-azure-sdk` ([#22795](https://github.com/hashicorp/terraform-provider-azurerm/issues/22795)) +* `advisor`: updating the base layer to use `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22750](https://github.com/hashicorp/terraform-provider-azurerm/issues/22750)) +* `apimanagement`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22759](https://github.com/hashicorp/terraform-provider-azurerm/issues/22759)) +* `analysisservices`: updating the base layer to use `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22750](https://github.com/hashicorp/terraform-provider-azurerm/issues/22750)) +* `automation`: updating `dscnodeconfiguration` and `sourcecontrol` to use API Version `2022-08-08` ([#22781](https://github.com/hashicorp/terraform-provider-azurerm/issues/22781)) +* `azurestackhci`: updating the base layer to use `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22750](https://github.com/hashicorp/terraform-provider-azurerm/issues/22750)) +* `domainservices`: updating the base layer to use `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22750](https://github.com/hashicorp/terraform-provider-azurerm/issues/22750)) +* `eventgrid`: refactoring to use `hashicorp/go-azure-sdk` ([#22673](https://github.com/hashicorp/terraform-provider-azurerm/issues/22673)) +* `machinelearningservice`: updating to use API Version `2023-04-01` ([#22729](https://github.com/hashicorp/terraform-provider-azurerm/issues/22729)) +* `monitor`: updating the base layer to use `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22750](https://github.com/hashicorp/terraform-provider-azurerm/issues/22750)) +* `network`: updating to use API Version `2023-04-01` ([#22727](https://github.com/hashicorp/terraform-provider-azurerm/issues/22727)) +* `relay`: updating to use API Version `2021-11-01` ([#22725](https://github.com/hashicorp/terraform-provider-azurerm/issues/22725)) +* Data Source: `azurerm_images` - support for `disk_encryption_set_id` ([#22690](https://github.com/hashicorp/terraform-provider-azurerm/issues/22690)) +* `azurerm_eventhub_namespace_customer_managed_key` - support for the `infrastructure_encryption_enabled` property ([#22718](https://github.com/hashicorp/terraform-provider-azurerm/issues/22718)) +* `azurerm_hpc_cache_blob_nfs_target` - support for setting the `usage_model` property to `READ_ONLY` and `READ_WRITE` ([#22798](https://github.com/hashicorp/terraform-provider-azurerm/issues/22798)) +* `azurerm_hpc_cache_nfs_target` - support for setting the `usage_model` property to `READ_ONLY` and `READ_WRITE` ([#22798](https://github.com/hashicorp/terraform-provider-azurerm/issues/22798)) +* `azurerm_monitor_aad_diagnostic_setting` - updating to use `hashicorp/go-azure-sdk` ([#22778](https://github.com/hashicorp/terraform-provider-azurerm/issues/22778)) +* `azurerm_web_application_firewall_policy` - updating to use API Version `2023-02-01` ([#22455](https://github.com/hashicorp/terraform-provider-azurerm/issues/22455)) +* `azurerm_web_application_firewall_policy` - support for `log_scrubbing` property ([#22522](https://github.com/hashicorp/terraform-provider-azurerm/issues/22522)) +* `azurerm_shared_image_gallery` - support for the `sharing` block ([#22221](https://github.com/hashicorp/terraform-provider-azurerm/issues/22221)) +* `azurerm_virtual_network` - support for the `encryption` block ([#22745](https://github.com/hashicorp/terraform-provider-azurerm/issues/22745)) + +BUG FIXES + +* provider: only obtaining an authentication token for Managed HSM in environments where Managed HSM is available ([#22400](https://github.com/hashicorp/terraform-provider-azurerm/issues/22400)) +* `azurerm_api_management` - retrieving the `location` from the API rather than the config prior to deletion ([#22752](https://github.com/hashicorp/terraform-provider-azurerm/issues/22752)) +* `azurerm_cognitive_deployment` - add locks to parent resource to prevent 409 error ([#22711](https://github.com/hashicorp/terraform-provider-azurerm/issues/22711)) +* `azurerm_pim_eligible_role_assignment` - fixing a bug where the context deadline was checked incorrectly during deletion ([#22756](https://github.com/hashicorp/terraform-provider-azurerm/issues/22756)) +* `azurerm_private_endpoint` - loading the subnet to lock from the API rather than the config during deletion ([#22676](https://github.com/hashicorp/terraform-provider-azurerm/issues/22676)) +* `azurerm_netapp_volume` - updating the validation of `security_style` to match the casing defined in the Azure API Definitions ([#22721](https://github.com/hashicorp/terraform-provider-azurerm/issues/22721)) +* `azurerm_netapp_volume_group_sap_hana` - update the validation of `security_style` to match the casing defined in the Azure API Definitions ([#22615](https://github.com/hashicorp/terraform-provider-azurerm/issues/22615)) +* `azurerm_site_recovery_replication_recovery_plan` - fix update for `boot_recovery_group`,`failover_recovery_group` and `shutdown_recovery_group` ([#22687](https://github.com/hashicorp/terraform-provider-azurerm/issues/22687)) + +## 3.67.0 (July 27, 2023) + +FEATURES: + +* **New Data Source:** `azurerm_eventhub_sas` ([#22215](https://github.com/hashicorp/terraform-provider-azurerm/issues/22215)) +* **New Resource**: `azurerm_kubernetes_cluster_trusted_access_role_binding` ([#22647](https://github.com/hashicorp/terraform-provider-azurerm/issues/22647)) +* **New Resource:** `azurerm_marketplace_role_assignment` ([#22398](https://github.com/hashicorp/terraform-provider-azurerm/issues/22398)) +* **New Resource:** `azurerm_network_function_azure_traffic_collector` ([#22274](https://github.com/hashicorp/terraform-provider-azurerm/issues/22274)) + +ENHANCEMENTS: + +* dependencies: updating to `v0.20230726.1135558` of `github.com/hashicorp/go-azure-sdk` ([#22698](https://github.com/hashicorp/terraform-provider-azurerm/issues/22698)) +* `connections`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) +* `iothub`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) +* `mysql`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) +* `orbital`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) +* `powerbi`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) +* `privatedns`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) +* `purview`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) +* `relay`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` ([#22681](https://github.com/hashicorp/terraform-provider-azurerm/issues/22681)) +* `azurerm_cdn_endpoint_custom_domain` - pass nil as version when Certificate/Secret version is set to Latest ([#22683](https://github.com/hashicorp/terraform-provider-azurerm/issues/22683)) +* `azurerm_image` - support for the field `disk_encryption_set_id` within the `os_disk` block ([#22642](https://github.com/hashicorp/terraform-provider-azurerm/issues/22642)) +* `azurerm_linux_virtual_machine` - add support for the `bypass_platform_safety_checks_on_user_schedule_enabled` and `reboot_setting` properties ([#22349](https://github.com/hashicorp/terraform-provider-azurerm/issues/22349)) +* `azurerm_network_interface` - updating to use `hashicorp/go-azure-sdk` and API Version `2023-02-01` ([#22479](https://github.com/hashicorp/terraform-provider-azurerm/issues/22479)) +* `azurerm_redis_enterprise_database` - support `redisSON` module for geo-replication ([#22627](https://github.com/hashicorp/terraform-provider-azurerm/issues/22627)) +* `azurerm_windows_virtual_machine` - add support for the `bypass_platform_safety_checks_on_user_schedule_enabled` and `reboot_setting` properties ([#22349](https://github.com/hashicorp/terraform-provider-azurerm/issues/22349)) + +BUG FIXES: + +* `azurerm_cosmosdb_account` - `type` within the `backup` block is updated separately when set to `Continuous` ([#22638](https://github.com/hashicorp/terraform-provider-azurerm/issues/22638)) +* `azurerm_cosmosdb_account` - `max_age_in_seconds` within the `cors_rule` block is now Optional and can now be configured up to `2147483647` ([#22552](https://github.com/hashicorp/terraform-provider-azurerm/issues/22552)) +* `azurerm_maintenance_configuration` - fixing a bug where include and exclude were set incorrectly ([#22671](https://github.com/hashicorp/terraform-provider-azurerm/issues/22671)) +* `azurerm_pim_eligible_role_assignment` - polling for the duration of the timeout, rather than using a hard-coded value ([#22682](https://github.com/hashicorp/terraform-provider-azurerm/issues/22682)) +* `azurerm_redis_cache` - only updating `patch_schedule` when it has changed in the config file ([#22661](https://github.com/hashicorp/terraform-provider-azurerm/issues/22661)) +* `azurerm_logic_app_standard` - attribute `auto_swap_slot_name` is now under correct block `site_config` ([#22712](https://github.com/hashicorp/terraform-provider-azurerm/issues/22712)) +* `azurerm_postgresql_flexible_server` - update the validation of `storage_mb` replacing `33554432` with `33553408` ([#22706](https://github.com/hashicorp/terraform-provider-azurerm/issues/22706)) + +## 3.66.0 (July 20, 2023) + +FEATURES: + +* **New Data Source:** `azurerm_mobile_network_attached_data_network` ([#22168](https://github.com/hashicorp/terraform-provider-azurerm/issues/22168)) +* **New Resource:** `azurerm_graph_account` ([#22334](https://github.com/hashicorp/terraform-provider-azurerm/issues/22334)) +* **New Resource:** `azurerm_mobile_network_attached_data_network` ([#22168](https://github.com/hashicorp/terraform-provider-azurerm/issues/22168)) + +ENHANCEMENTS: + +* dependencies: bump `go-azure-sdk` to `v0.20230720.1190320` and switch `machinelearning`, `mixedreality`, `mariadb`, `storagecache`, `storagepool`, `vmware`, `videoanalyzer`, `voiceServices` and `mobilenetwork` to new base layer ([#22538](https://github.com/hashicorp/terraform-provider-azurerm/issues/22538)) +* dependencies: move `azurerm_bastion_host` and `azurerm_network_connection_monitor` over to `hashicorp/go-azure-sdk` ([#22425](https://github.com/hashicorp/terraform-provider-azurerm/issues/22425)) +* dependencies: move `azurerm_network_watcher_flow_log` to `hashicorp/go-azure-sdk` ([#22575](https://github.com/hashicorp/terraform-provider-azurerm/issues/22575)) +* dependencies: move `mysql` resources over to `hashicorp/go-azure-sdk` ([#22528](https://github.com/hashicorp/terraform-provider-azurerm/issues/22528)) +* dependencies: move `storage_sync` resources over to `hashicorp/go-azure-sdk` ([#21928](https://github.com/hashicorp/terraform-provider-azurerm/issues/21928)) +* dependencies: updating to API Version `2022-08-08` ([#22440](https://github.com/hashicorp/terraform-provider-azurerm/issues/22440)) +* `postgres` - updating to API Version `2023-03-01-preview` ([#22577](https://github.com/hashicorp/terraform-provider-azurerm/issues/22577)) +* `data.azurerm_route_table` - support for the `bgp_route_propagation_enabled` property ([#21940](https://github.com/hashicorp/terraform-provider-azurerm/issues/21940)) +* `data.azurerm_servicebus_*` - add deprecation messages for the `resource_group_name` and `namespace_name` properties ([#22521](https://github.com/hashicorp/terraform-provider-azurerm/issues/22521)) +* `azurerm_cdn_frontdoor_rule` - allow the `conditions.x.url_path_condition.x.match_values` property to be set to `/` ([#22610](https://github.com/hashicorp/terraform-provider-azurerm/issues/22610)) +* `azurerm_eventhub_namespace` - updates properly when encryption is enabled ([#22625](https://github.com/hashicorp/terraform-provider-azurerm/issues/22625)) +* `azurerm_logic_app_standard` - now exports the `auto_swap_slot_name` attribute ([#22525](https://github.com/hashicorp/terraform-provider-azurerm/issues/22525)) +* `azurerm_mysql_flexible_server_configuration` - the `value` property can now be changed without creating a new resource ([#22557](https://github.com/hashicorp/terraform-provider-azurerm/issues/22557)) +* `azurerm_postgresql_flexible_server` - support for `33554432` storage ([#22574](https://github.com/hashicorp/terraform-provider-azurerm/issues/22574)) +* `azurerm_postgresql_flexible_server` - support for the `geo_backup_key_vault_key_id` and `geo_backup_user_assigned_identity_id` properties ([#22612](https://github.com/hashicorp/terraform-provider-azurerm/issues/22612)) +* `azurerm_spring_cloud_service` - support for the `marketplace` block ([#22553](https://github.com/hashicorp/terraform-provider-azurerm/issues/22553)) +* `azurerm_spring_cloud_service` - support for the `outbound_type` property ([#22596](https://github.com/hashicorp/terraform-provider-azurerm/issues/22596)) + +BUG FIXES: + +* provider: the Resource Providers `Microsoft.Kubernetes` and `Microsoft.KubernetesConfiguration` are no longer automatically registered ([#22580](https://github.com/hashicorp/terraform-provider-azurerm/issues/22580)) +* `data.automation_account_variables` - correctly populate missing variable attributes ([#22611](https://github.com/hashicorp/terraform-provider-azurerm/issues/22611)) +* `data.azurerm_virtual_machine_scale_set` - fix an issue where `computer_name`, `latest_model_applied`, `power_state` and `virtual_machine_id` attributes were not correctly set ([#22566](https://github.com/hashicorp/terraform-provider-azurerm/issues/22566)) +* `azurerm_app_service_public_certificate` - poll for certificate during read to get around an eventual consistency bug ([#22587](https://github.com/hashicorp/terraform-provider-azurerm/issues/22587)) +* `azurerm_application_gateway` - send `min_protocol_version` and correct `policy_type` when using `CustomV2` ([#22535](https://github.com/hashicorp/terraform-provider-azurerm/issues/22535)) +* `azurerm_cognitive_deployment` - remove upper limit on validation for the `capacity` property in the `scale` block ([#22502](https://github.com/hashicorp/terraform-provider-azurerm/issues/22502)) +* `azurerm_cosmosdb_account` - fixed regression to `default_identity_type` being switched to `FirstPartyIdentity` on update ([#22609](https://github.com/hashicorp/terraform-provider-azurerm/issues/22609)) +* `azurerm_kubernetes_cluster` - the `windows_profile.admin_password` property will become Required in `v4.0` ([#22554](https://github.com/hashicorp/terraform-provider-azurerm/issues/22554)) +* `azurerm_kusto_cluster` - the `engine` property has been deprecataed and is now non functional as the service team intends to remove it from the API ([#22497](https://github.com/hashicorp/terraform-provider-azurerm/issues/22497)) +* `azurerm_maintenance_configuration` - tge `package_names_mask_to_exclude` and `package_names_mask_to_exclude` properties are not set properly ([#22555](https://github.com/hashicorp/terraform-provider-azurerm/issues/22555)) +* `azurerm_redis_cache` - only set the `rdb_backup_enabled` property when using a premium SKU ([#22309](https://github.com/hashicorp/terraform-provider-azurerm/issues/22309)) +* `azurerm_site_recovery_replication_recovery_plan` - fix an issue where the order of boot recovery groups was not correctly maintained ([#22348](https://github.com/hashicorp/terraform-provider-azurerm/issues/22348)) +* `azurerm_synapse_firewall_rule` - correct an overly strict validation for the `name` property ([#22571](https://github.com/hashicorp/terraform-provider-azurerm/issues/22571)) + +## 3.65.0 (July 13, 2023) + +FEATURES: + +* **New Data Source**: `azurerm_communication_service` ([#22426](https://github.com/hashicorp/terraform-provider-azurerm/issues/22426)) + +ENHANCEMENTS: + +* dependencies: updating to `v0.20230712.1084117` of `github.com/hashicorp/go-azure-sdk` ([#22491](https://github.com/hashicorp/terraform-provider-azurerm/issues/22491)) +* dependencies: updating to `v0.20230703.1101016` of `github.com/tombuildsstuff/kermit` ([#22390](https://github.com/hashicorp/terraform-provider-azurerm/issues/22390)) +* provider: the Resource Providers `Microsoft.Kubernetes` and `Microsoft.KubernetesConfiguration` are now automatically registered ([#22463](https://github.com/hashicorp/terraform-provider-azurerm/issues/22463)) +* `automation/dscconfiguration` - updating to API Version `2022-08-08` ([#22403](https://github.com/hashicorp/terraform-provider-azurerm/issues/22403)) +* `azurestackhcl` - updating to API Version `2023-03-01` ([#22411](https://github.com/hashicorp/terraform-provider-azurerm/issues/22411)) +* `batch` - updating to use API Version `2023-05-01` ([#22412](https://github.com/hashicorp/terraform-provider-azurerm/issues/22412)) +* `datafactory` - moving `azurerm_data_factory` and `azurerm_data_factory_managed_private_endpoint` over to `hashicorp/go-azure-sdk` ([#22409](https://github.com/hashicorp/terraform-provider-azurerm/issues/22409)) +* `elastic` - updating to API Version `2023-06-01` ([#22451](https://github.com/hashicorp/terraform-provider-azurerm/issues/22451)) +* `kusto` - updating to API Version `2023-05-02` [GH-22410 +* `managedapplications` - migrate to `hashicorp/go-azure-sdk` ([#21571](https://github.com/hashicorp/terraform-provider-azurerm/issues/21571)) +* `privatedns`: updating to API Version `2020-06-01` ([#22470](https://github.com/hashicorp/terraform-provider-azurerm/issues/22470)) +* `storage` - updating to Data Plane API Version `2020-08-04` ([#22405](https://github.com/hashicorp/terraform-provider-azurerm/issues/22405)) +* `network` - `application_security_group` and `private_endpoint` now use `hashicorp/go-azure-sdk` ([#22396](https://github.com/hashicorp/terraform-provider-azurerm/issues/22396)) +* `voiceservices`: updating to use API Version `2023-04-03` ([#22469](https://github.com/hashicorp/terraform-provider-azurerm/issues/22469)) +* Data Source: `azurerm_kubernetes_cluster` - add support for the `internal_ingress_gateway_enabled` and `external_ingress_gateway_enabled` properties ([#22393](https://github.com/hashicorp/terraform-provider-azurerm/issues/22393)) +* `azurerm_batch_account` - support for the `network_profile` block ([#22356](https://github.com/hashicorp/terraform-provider-azurerm/issues/22356)) +* `azurerm_container_app` - the `min_replicas` and `max_replicas` propertiesnow support a maximum value of `300` ([#22511](https://github.com/hashicorp/terraform-provider-azurerm/issues/22511)) +* `azurerm_dns_zone` - can now use the `host_name` property with `dns_zone` for `soa_record` creation ([#22312](https://github.com/hashicorp/terraform-provider-azurerm/issues/22312)) +* `azurerm_kubernetes_cluster` - add support for the `internal_ingress_gateway_enabled` and `external_ingress_gateway_enabled` properties ([#22393](https://github.com/hashicorp/terraform-provider-azurerm/issues/22393)) +* `azurerm_site_recovery_vmware_replication_policy_association` - update validation to correctly handle case ([#22443](https://github.com/hashicorp/terraform-provider-azurerm/issues/22443)) + +BUG FIXES: + +* `azurerm_automation_dsc_configuration` - fixing an issue where `content_embedded` couldn't be deserialized ([#22403](https://github.com/hashicorp/terraform-provider-azurerm/issues/22403)) +* `azurerm_data_factory_dataset_cosmosdb_sqlapi` - fix incorrect type/error message during read ([#22438](https://github.com/hashicorp/terraform-provider-azurerm/issues/22438)) +* `azurerm_data_factory_dataset_mysql` - fix incorrect type/error message during read ([#22438](https://github.com/hashicorp/terraform-provider-azurerm/issues/22438)) +* `azurerm_data_factory_dataset_postgresql` - fix incorrect type/error message during read ([#22438](https://github.com/hashicorp/terraform-provider-azurerm/issues/22438)) +* `azurerm_logic_app_workflow` - prevent crash when `access_control` is empty block ([#22486](https://github.com/hashicorp/terraform-provider-azurerm/issues/22486)) +* `azurerm_vpn_server_configuration` - prevent a potential panic when setting deprecated variables ([#22437](https://github.com/hashicorp/terraform-provider-azurerm/issues/22437)) + +## 3.64.0 (July 06, 2023) + +FEATURES: + +* **New Data Source:** `azurerm_automation_variables` ([#22216](https://github.com/hashicorp/terraform-provider-azurerm/issues/22216)) +* **New Resource:** `azurerm_arc_private_link_scope` ([#22314](https://github.com/hashicorp/terraform-provider-azurerm/issues/22314)) +* **New Resource:** `azurerm_kusto_cosmosdb_data_connection` ([#22295](https://github.com/hashicorp/terraform-provider-azurerm/issues/22295)) +* **New Resource:** `azurerm_pim_active_role_assignment` ([#20731](https://github.com/hashicorp/terraform-provider-azurerm/issues/20731)) +* **New Resource:** `azurerm_pim_eligible_role_assignment` ([#20731](https://github.com/hashicorp/terraform-provider-azurerm/issues/20731)) + +ENHANCEMENTS: + +* dependencies: `web`: updating to API Version `2022-09-01` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* dependencies: `cognitive`: updating to API Version `2023-05-01` ([#22223](https://github.com/hashicorp/terraform-provider-azurerm/issues/22223)) +* dependencies: updating to `v1.53.0` of `google.golang.org/grpc` ([#22383](https://github.com/hashicorp/terraform-provider-azurerm/issues/22383)) +* `azurerm_cognitive_deployment` - suppot for the `scale` block propeties `tier`, `size`, `family`, and `capacity` ([#22223](https://github.com/hashicorp/terraform-provider-azurerm/issues/22223)) +* `azurerm_linux_function_app` - added support for the `public_network_access_enabled` property ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_linux_function_app_slot` - added support for the `public_network_access_enabled` property ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_linux_web_app` - added support for the `public_network_access_enabled` property ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_linux_web_app_slot` - added support for the `public_network_access_enabled` property ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_windows_function_app` - added support for the `public_network_access_enabled` property ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_windows_function_app_slot` - added support for the `public_network_access_enabled` property +* `azurerm_windows_web_app` - added support for the `public_network_access_enabled` property ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_windows_web_app_slot` - added support for the `public_network_access_enabled` property ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_stream_analytics_output_blob` - increase the `batch_min_rows` property allowed values to `1000000` ([#22331](https://github.com/hashicorp/terraform-provider-azurerm/issues/22331)) +* `azurerm_spring_cloud_gateway` - support for the the `allowed_origin_patterns` property ([#22317](https://github.com/hashicorp/terraform-provider-azurerm/issues/22317)) + +BUG FIXES: + +* Data Source `azurerm_virtual_machine_scale_set` - prevent a nil pointer panic during reads ([#22335](https://github.com/hashicorp/terraform-provider-azurerm/issues/22335)) +* `azurerm_application_insights_api_key` - prevent a nil pointer panic ([#22388](https://github.com/hashicorp/terraform-provider-azurerm/issues/22388)) +* `azurerm_linux_function_app` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_linux_function_app_slot` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_linux_web_app` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_linux_web_app` - prevent a nil pointer panic in docker settings processing ([#22347](https://github.com/hashicorp/terraform-provider-azurerm/issues/22347)) +* `azurerm_linux_web_app_slot` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_private_dns_resolver_forwarding_rule_resource` - changing the `domain_name` property now creates a new resource ([#22375](https://github.com/hashicorp/terraform-provider-azurerm/issues/22375)) +* `azurerm_windows_function_app` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_windows_function_app_slot` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_windows_web_app` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_windows_web_app_slot` - the `allowed_origins` property in the `cors` block now has a minimum entry count of `1` ([#22352](https://github.com/hashicorp/terraform-provider-azurerm/issues/22352)) +* `azurerm_network_security_rule` - improve validation of the `name` property and prevent creation of resources that are broken ([#22336](https://github.com/hashicorp/terraform-provider-azurerm/issues/22336)) + +DEPRECATION: + +* `media` - all resources and data sources are deprecated ahead of service being retired ([#22350](https://github.com/hashicorp/terraform-provider-azurerm/issues/22350)) + +## 3.63.0 (June 29, 2023) + +FEATURES: + +* **New Data Source:** `azurerm_network_manager_network_group` ([#22277](https://github.com/hashicorp/terraform-provider-azurerm/issues/22277)) + +BREAKING CHANGES: + +* `azurerm_linux_web_app` - the `win32_status` property of the `status_code` block in `auto_heal` has changed from `string` to `int`. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) +* `azurerm_linux_web_app_slot` -the `win32_status` property of the `status_code` block in `auto_heal` has changed from `string` to `int`. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) +* `azurerm_windows_web_app` - the `win32_status` property of the `status_code` block in `auto_heal` has changed from `string` to `int`. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) +* `azurerm_windows_web_app_slot` - the `win32_status` property of the `status_code` block in `auto_heal` has changed from `string` to `int`. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) + +ENHANCEMENTS: + +* dependencies: updating to `v0.20230623.1103505` of `github.com/hashicorp/go-azure-sdk` ([#22263](https://github.com/hashicorp/terraform-provider-azurerm/issues/22263)) +* dependencies: updating to `v0.57.0` of `github.com/hashicorp/go-azure-helpers` ([#22247](https://github.com/hashicorp/terraform-provider-azurerm/issues/22247)) +* dependencies: `containers/containerinstance`: updating to API Version `2023-05-01` ([#22276](https://github.com/hashicorp/terraform-provider-azurerm/issues/22276)) +* dependencies: `network/securityrules`: migrate to `go-azure-sdk` ([#22242](https://github.com/hashicorp/terraform-provider-azurerm/issues/22242)) +* dependencies: `redis`: updating to API Version `2023-04-01` ([#22285](https://github.com/hashicorp/terraform-provider-azurerm/issues/22285)) +* Data Source: `azurerm_kubernetes_cluster` - add support for the `custom_ca_trust_certificates_base64` property ([#22032](https://github.com/hashicorp/terraform-provider-azurerm/issues/22032)) +* `azurerm_automation_software_update_configuration` - the `duration` property now defaults to `PT2H` as per the service. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) +* `azurerm_automation_software_update_configuration` - the `schedule` block is now limited to `1`, to match the API limit. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) +* `azurerm_automation_software_update_configuration` - the `schedule` block is now `Required` to match the API specification. The API rejects requests that do not specify this block, with at least a `frequency` value. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) +* `azurerm_automation_software_update_configuration` - the `frequency` property is now a `Required` property of the `schedule` block. This is to match the minimum requirements of the API. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) +* `azurerm_automation_software_update_configuration` - the `pre_task` blocks are now limited to `1` to match the API. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) +* `azurerm_automation_software_update_configuration` - the `post_task` blocks are now limited to `1` to match the API. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) +* `azurerm_automation_software_update_configuration` - the `operating_system` property has been deprecated and is now controlled by the presence of either a `linux` or `windows` block. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) +* `azurerm_automation_software_update_configuration` - one of the `linux` or `windows` blocks must now be present. This is a requirement of the API, so is a non-breaking `Optional` to `Required` change. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) +* `azurerm_automation_software_update_configuration` - the `monthly_occurrence` blocks are now limited to `1` to match the API. ([#22204](https://github.com/hashicorp/terraform-provider-azurerm/issues/22204)) +* `azurerm_container_app` - support for both system and user assigned identities at the same time ([#21149](https://github.com/hashicorp/terraform-provider-azurerm/issues/21149)) +* `azurerm_key_vault_managed_hardware_security_module` - support for activating an HSM through `security_domain_key_vault_certificate_ids` ([#22162](https://github.com/hashicorp/terraform-provider-azurerm/issues/22162)) +* `azurerm_kubernetes_cluster` - support for the `custom_ca_trust_certificates_base64` property ([#22032](https://github.com/hashicorp/terraform-provider-azurerm/issues/22032)) +* `azurerm_kubernetes_cluster` - support for the `maintenance_window_auto_upgrade` block ([#21760](https://github.com/hashicorp/terraform-provider-azurerm/issues/21760)) +* `azurerm_kubernetes_cluster` - support for the `maintenance_window_node_os` block ([#21760](https://github.com/hashicorp/terraform-provider-azurerm/issues/21760)) +* `azurerm_monitor_aad_diagnostic_setting` - deprecate `log` in favour of `enabled_log` ([#21390](https://github.com/hashicorp/terraform-provider-azurerm/issues/21390)) +* `azurerm_resource_group` - support for the `managed_by` property ([#22012](https://github.com/hashicorp/terraform-provider-azurerm/issues/22012)) + +BUG FIXES: + +* `azurerm_automation_schedule` - prevent diffs for the `expiry_time` property when it hasn't been set in the user's configuration ([#21886](https://github.com/hashicorp/terraform-provider-azurerm/issues/21886)) +* `azurerm_frontdoor` - throw an error if the resource cannot be found during an update ([#21975](https://github.com/hashicorp/terraform-provider-azurerm/issues/21975)) +* `azurerm_image` - changing the `os_disk.size_gb` propety now creates a new resource ([#22272](https://github.com/hashicorp/terraform-provider-azurerm/issues/22272)) +* `azurerm_kubernetes_cluster` - fix the validation for `node_os_channel_upgrade` block ([#22284](https://github.com/hashicorp/terraform-provider-azurerm/issues/22284)) +* `azurerm_linux_virtual_machine` - raise an error if the resource cannot be found during an update ([#21975](https://github.com/hashicorp/terraform-provider-azurerm/issues/21975)) +* `azurerm_linux_web_app` - deprecated the `docker_image` and `docker_image_tag` properties in favour of `docker_image_name`, `docker_registry_url`, `docker_registry_username`, and `docker_registry_password`. These settings now manage the respective `app_settings` values of the same name. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) +* `azurerm_linux_web_app_slot` - deprecated the `docker_image` and `docker_image_tag` properties in favour of `docker_image_name`, `docker_registry_url`, `docker_registry_username`, and `docker_registry_password`. These settings now manage the respective `app_settings` values of the same name. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) +* `azurerm_site_recovery_replicated_vm` - set the `network_interface.failover_test_subnet_name`, `network_interface.failover_test_public_ip_address_id` and `network_interface.failover_test_static_ip` properties correctly ([#22217](https://github.com/hashicorp/terraform-provider-azurerm/issues/22217)) +* `azurerm_ssh_public_key` - throw an error if the resource cannot be found during an update ([#21975](https://github.com/hashicorp/terraform-provider-azurerm/issues/21975)) +* `azurerm_storage_share` - revert the resource ID format back to what it was previously due to a discrepancy in the API and Portal ([#22271](https://github.com/hashicorp/terraform-provider-azurerm/issues/22271)) +* `azurerm_storage_account` - the `last_access_time_enabled` and `container_delete_retention_policy` properties are now supported in usgovernment ([#22273](https://github.com/hashicorp/terraform-provider-azurerm/issues/22273)) +* `azurerm_windows_virtual_machine` - reaise an error if the resource cannot be found during an update ([#21975](https://github.com/hashicorp/terraform-provider-azurerm/issues/21975)) +* `azurerm_windows_web_app` - deprecated the `docker_container_registry`, `docker_container_name`, and `docker_container_tag` properties in favour of `docker_image_name`, `docker_registry_url`, `docker_registry_username`, and `docker_registry_password`. These settings now manage the respective `app_settings` values of the same name. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) +* `azurerm_windows_web_app_slot` - deprecated the `docker_container_registry`, `docker_container_name`, and `docker_container_tag` properties in favour of `docker_image_name`, `docker_registry_url`, `docker_registry_username`, and `docker_registry_password`. These settings now manage the respective `app_settings` values of the same name. ([#22003](https://github.com/hashicorp/terraform-provider-azurerm/issues/22003)) + +## 3.62.1 (June 22, 2023) + +BUG FIXES: + +dependencies: `compute/marketplace_agreement` - Downgrade API version to 2015-06-01 ([#22264](https://github.com/hashicorp/terraform-provider-azurerm/issues/22264)) + +## 3.62.0 (June 22, 2023) + +FEATURES: + +* **New Resource:** `azurerm_new_relic_monitor` ([#21958](https://github.com/hashicorp/terraform-provider-azurerm/issues/21958)) + +ENHANCEMENTS: + +* dependencies: updating to `v0.20230614.1151152` of `github.com/hashicorp/go-azure-sdk` ([#22176](https://github.com/hashicorp/terraform-provider-azurerm/issues/22176)) +* dependencies: `compute/marketplace_agreement` - swap to use `hashicorp/go-azure-sdk` ([#21938](https://github.com/hashicorp/terraform-provider-azurerm/issues/21938)) +* dependencies: `network/manager` - swap to use `hashicorp/go-azure-sdk` ([#22119](https://github.com/hashicorp/terraform-provider-azurerm/issues/22119)) +* dependencies: `network/route` - swap to use `hashicorp/go-azure-sdk` ([#22227](https://github.com/hashicorp/terraform-provider-azurerm/issues/22227)) +* `azurerm_cosmosdb_gremlin_graph` - support for the `analytical_storage_ttl` property ([#22179](https://github.com/hashicorp/terraform-provider-azurerm/issues/22179)) +* `azurerm_kubernetes_cluster` - support for the value `AzureLinux` for the field `os_sku` within the `default_node_pool` block ([#22139](https://github.com/hashicorp/terraform-provider-azurerm/issues/22139)) +* `azurerm_kubernetes_cluster` - support for the property `node_os_channel_upgrade` ([#22187](https://github.com/hashicorp/terraform-provider-azurerm/issues/22187)) +* `azurerm_kubernetes_cluster_node_pool` - support for the value `AzureLinux` for the field `os_sku` ([#22139](https://github.com/hashicorp/terraform-provider-azurerm/issues/22139)) +* `azurerm_monitor_workspace` - support for `public_network_access_enabled` ([#22197](https://github.com/hashicorp/terraform-provider-azurerm/issues/22197)) +* `azurerm_virtual_hub` - support for `virtual_router_auto_scale_min_capacity` ([#21614](https://github.com/hashicorp/terraform-provider-azurerm/issues/21614)) + +BUG FIXES: + +* `azurerm_application_insights_workbook` - the `display_name` property can now be updated ([#22148](https://github.com/hashicorp/terraform-provider-azurerm/issues/22148)) +* `azurerm_bastion_host` - will now create a new resource when the `sku` property is downgraded ([#22147](https://github.com/hashicorp/terraform-provider-azurerm/issues/22147)) +* `azurerm_container_app` - the `EmptyDir` property now functions ([#22196](https://github.com/hashicorp/terraform-provider-azurerm/issues/22196)) +* `azurerm_kubernetes_cluster` - fix the validation preventing cluster's with `network_plugin_mode` set to `Overlay` due to a case change in the upstream API ([#22153](https://github.com/hashicorp/terraform-provider-azurerm/issues/22153)) +* `azurerm_resource_deployment_script_*` - fix issue where `identity` wasn't specified but was being sent as `TypeNone` to the api ([#22165](https://github.com/hashicorp/terraform-provider-azurerm/issues/22165)) +* `azurerm_bastion_host` - the `ip_configuration` propery is now required ([#22154](https://github.com/hashicorp/terraform-provider-azurerm/issues/22154)) + +## 3.61.0 (June 12, 2023) + +FEATURES: + +* **New Data Source:** `azurerm_mobile_network_packet_core_data_plane` ([#21053](https://github.com/hashicorp/terraform-provider-azurerm/issues/21053)) +* **New Resource:** `azurerm_arc_machine_extension` ([#22051](https://github.com/hashicorp/terraform-provider-azurerm/issues/22051)) +* **New Resource:** `azurerm_arc_kubernetes_flux_configuration` ([#21579](https://github.com/hashicorp/terraform-provider-azurerm/issues/21579)) +* **New Resource:** `azurerm_kubernetes_flux_configuration` ([#21579](https://github.com/hashicorp/terraform-provider-azurerm/issues/21579)) +* **New Resource:** `azurerm_mobile_network_packet_core_data_plane` ([#21053](https://github.com/hashicorp/terraform-provider-azurerm/issues/21053)) + +ENHANCEMENTS: + +* dependencies: updating to `v0.20230530.1150329` of `github.com/tombuildsstuff/kermit` ([#21980](https://github.com/hashicorp/terraform-provider-azurerm/issues/21980)) +* dependencies: `compute/gallery`: updating to API Version `2022-03-03` ([#21999](https://github.com/hashicorp/terraform-provider-azurerm/issues/21999)) +* dependencies: `kusto`: updating to API Version `2022-12-29` ([#21961](https://github.com/hashicorp/terraform-provider-azurerm/issues/21961)) +* Data Source `azurerm_site_recovery_replication_recovery_plan` - add support for `azure_to_azure_settings` block ([#22098](https://github.com/hashicorp/terraform-provider-azurerm/issues/22098)) +* `compute`: updating to use API Version `2023-03-01` ([#21980](https://github.com/hashicorp/terraform-provider-azurerm/issues/21980)) +* `containers`: updating to use API version `2023-04-02-preview` [22048] +* `managedidentity`: updating to use API Version `2023-01-31` ([#22102](https://github.com/hashicorp/terraform-provider-azurerm/issues/22102)) +* `azurerm_backup_protected_vm` - support for the `protection_state` property ([#20608](https://github.com/hashicorp/terraform-provider-azurerm/issues/20608)) +* `azurerm_batch_account` - the `public_network_access_enabled` property can now be updated ([#22095](https://github.com/hashicorp/terraform-provider-azurerm/issues/22095)) +* `azurerm_batch_pool` - support for the `target_node_communication_mode` property ([#22094](https://github.com/hashicorp/terraform-provider-azurerm/issues/22094)) +* `azurerm_automanage_configuration` - support for the `log_analytics_enabled` property ([#22121](https://github.com/hashicorp/terraform-provider-azurerm/issues/22121)) +* `azurerm_nginx_certificate` - the `key_virtual_path`, `certificate_virtual_path`, and `key_vault_secret_id` proeprties can now be updated ([#22100](https://github.com/hashicorp/terraform-provider-azurerm/issues/22100)) +* `azurerm_spring_cloud_gateway` - support for the `client_authentication` property ([#22016](https://github.com/hashicorp/terraform-provider-azurerm/issues/22016)) + +BUG FIXES: + +* `azurerm_databricks_workspace_data_source` - correctly set the `managed_idnetity_id` attribute ([#22021](https://github.com/hashicorp/terraform-provider-azurerm/issues/22021)) + +## 3.60.0 (June 08, 2023) + +NOTES: + +* `azurerm_security_center_subscription_pricing` - upon deletion the pricing tier will now reset to `Free` tier ([#21437](https://github.com/hashicorp/terraform-provider-azurerm/issues/21437)) + +ENHANCEMENTS: + +* dependencies: `batch`: updating to API Version `2022-10-01` ([#21962](https://github.com/hashicorp/terraform-provider-azurerm/issues/21962)) +* dependencies: `loadtest`: updating to API Version `2022-12-01` ([#22091](https://github.com/hashicorp/terraform-provider-azurerm/issues/22091)) +* provider: adding the `client_id_file_path` and `client_secret_file_path` provider properties ([#21764](https://github.com/hashicorp/terraform-provider-azurerm/issues/21764)) +* `data.azurerm_key_vault_encrypted_value` - now exports the `decoded_plain_text_value` [attribute GH-21682] +* `azurerm_automanage_configuration` - support for the `backup` and `azure_security_baseline` blocks ([#22081](https://github.com/hashicorp/terraform-provider-azurerm/issues/22081)) +* `azurerm_app_configuration` - support toggling of user permission error on soft deleted stores through `app_configuration.recover_soft_deleted` feature flag ([#19661](https://github.com/hashicorp/terraform-provider-azurerm/issues/19661)) +* `azurerm_backup_policy_file_share` - support for day-based retention policies and hourly backups ([#21529](https://github.com/hashicorp/terraform-provider-azurerm/issues/21529)) +* `azurerm_linux_function_app` - support for Python `3.11` for Linux function app ([#21956](https://github.com/hashicorp/terraform-provider-azurerm/issues/21956)) +* `azurerm_linux_function_app_slot` - support for Python `3.11` for Linux function app ([#21956](https://github.com/hashicorp/terraform-provider-azurerm/issues/21956)) +* `azurerm_monitor_autoscale_setting` - support for the `predictive` block ([#22038](https://github.com/hashicorp/terraform-provider-azurerm/issues/22038)) +* `azurerm_machine_learning_compute_instance` - support for the `node_public_ip_enabled` property ([#22063](https://github.com/hashicorp/terraform-provider-azurerm/issues/22063)) +* `azurerm_spring_cloud_service` - support for the `container_registry` block ([#22017](https://github.com/hashicorp/terraform-provider-azurerm/issues/22017)) +* `azurerm_site_recovery_replication_recovery_plan` - the order of the `pre_action` and `post_action` properties is now respected ([#22019](https://github.com/hashicorp/terraform-provider-azurerm/issues/22019)) + +BUG FIXES: + +* `azurerm_hdinsight_interactive_query_cluster` - deprecating the `*_node.0.autoscale.0.capacity` property ([#21981](https://github.com/hashicorp/terraform-provider-azurerm/issues/21981)) +* `azurerm_key_vault_key` - allow the `rotation_policy` property to be removed ([#21935](https://github.com/hashicorp/terraform-provider-azurerm/issues/21935)) +* `azurerm_mssql_server` - fix issue where the `minimum_tls_version` property is being returned as `None` instead of `Disabled` ([#22067](https://github.com/hashicorp/terraform-provider-azurerm/issues/22067)) +* `azurerm_sentinel_data_connector_microsoft_threat_intelligence` - the `bing_safety_phishing_url_lookback_date` property has been deprecated ([#21954](https://github.com/hashicorp/terraform-provider-azurerm/issues/21954)) + ## 3.59.0 (June 01, 2023) FEATURES: From 691483796e15d2aaf8c43bae94e2166c75723332 Mon Sep 17 00:00:00 2001 From: xuwu1 Date: Fri, 25 Aug 2023 18:06:00 +0800 Subject: [PATCH 046/336] udpate doc --- website/docs/r/virtual_network_gateway.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/r/virtual_network_gateway.html.markdown b/website/docs/r/virtual_network_gateway.html.markdown index 38c44cef2085..807e45e52ce2 100644 --- a/website/docs/r/virtual_network_gateway.html.markdown +++ b/website/docs/r/virtual_network_gateway.html.markdown @@ -260,7 +260,7 @@ The `peering_addresses` block supports: The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: -* `create` - (Defaults to 60 minutes) Used when creating the Virtual Network Gateway. +* `create` - (Defaults to 90 minutes) Used when creating the Virtual Network Gateway. * `update` - (Defaults to 60 minutes) Used when updating the Virtual Network Gateway. * `read` - (Defaults to 5 minutes) Used when retrieving the Virtual Network Gateway. * `delete` - (Defaults to 60 minutes) Used when deleting the Virtual Network Gateway. From 540807c4b3f8f743cb627bddfef8315f6679620f Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Fri, 25 Aug 2023 12:32:57 +0200 Subject: [PATCH 047/336] updating to include #23003 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fff2bc1e838..61f2056fc0ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ENHANCEMENTS: * `azurerm_container_app_environment` - support for `dapr_application_insights_connection_string` [GH-23080] +* `azurerm_virtual_network_gateway`: increasing the default timeout for create to `90m` [GH-23003] ## 3.71.0 (August 24, 2023) From d72e9d7dcdc1cb45da791a8d79a5fbb722ac4a94 Mon Sep 17 00:00:00 2001 From: Xu Wu Date: Sat, 26 Aug 2023 06:26:23 +0800 Subject: [PATCH 048/336] including #23019 fixes #23004 * fix panic of path slice index * add a validation for storage_data_lake_gen2_filesystem_id --- .../synapse/synapse_workspace_resource.go | 9 +++--- internal/tf/validation/pluginsdk.go | 29 +++++++++++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/internal/services/synapse/synapse_workspace_resource.go b/internal/services/synapse/synapse_workspace_resource.go index acab38c5e8f0..0437fba742a1 100644 --- a/internal/services/synapse/synapse_workspace_resource.go +++ b/internal/services/synapse/synapse_workspace_resource.go @@ -68,9 +68,10 @@ func resourceSynapseWorkspace() *pluginsdk.Resource { "location": commonschema.Location(), "storage_data_lake_gen2_filesystem_id": { - Type: pluginsdk.TypeString, - Required: true, - ForceNew: true, + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.IsURLWithPath, }, "sql_administrator_login": { @@ -795,7 +796,7 @@ func expandArmWorkspaceDataLakeStorageAccountDetails(storageDataLakeGen2Filesyst uri, _ := url.Parse(storageDataLakeGen2FilesystemId) return &synapse.DataLakeStorageAccountDetails{ AccountURL: utils.String(fmt.Sprintf("%s://%s", uri.Scheme, uri.Host)), // https://storageaccountname.dfs.core.windows.net/filesystemname -> https://storageaccountname.dfs.core.windows.net - Filesystem: utils.String(uri.Path[1:]), // https://storageaccountname.dfs.core.windows.net/filesystemname -> filesystemname + Filesystem: utils.String(strings.TrimPrefix(uri.Path, "/")), // https://storageaccountname.dfs.core.windows.net/filesystemname -> filesystemname } } diff --git a/internal/tf/validation/pluginsdk.go b/internal/tf/validation/pluginsdk.go index 8549491b5097..7c5ba72e7727 100644 --- a/internal/tf/validation/pluginsdk.go +++ b/internal/tf/validation/pluginsdk.go @@ -5,7 +5,9 @@ package validation import ( "fmt" + "net/url" "regexp" + "strings" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" @@ -171,6 +173,33 @@ func IsURLWithScheme(validSchemes []string) func(interface{}, string) ([]string, return validation.IsURLWithScheme(validSchemes) } +// IsURLWithPath is a SchemaValidateFunc that tests if the provided value is of type string and a valid URL with a path +func IsURLWithPath(i interface{}, k string) (_ []string, errors []error) { + v, ok := i.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected type of %q to be string", k)) + return + } + + if v == "" { + errors = append(errors, fmt.Errorf("expected %q url to not be empty, got %v", k, i)) + return + } + + u, err := url.Parse(v) + if err != nil { + errors = append(errors, fmt.Errorf("expected %q to be a valid url, got %v: %+v", k, v, err)) + return + } + + if strings.TrimPrefix(u.Path, "/") == "" { + errors = append(errors, fmt.Errorf("expected %q to have a non empty path got %v", k, v)) + return + } + + return +} + // IsUUID is a ValidateFunc that ensures a string can be parsed as UUID func IsUUID(i interface{}, k string) ([]string, []error) { return validation.IsUUID(i, k) From b1753f9f5a9f0d26f18ec5011235269f0ea260db Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Fri, 25 Aug 2023 16:28:21 -0600 Subject: [PATCH 049/336] Updating to include #23019 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61f2056fc0ed..c45e1ca04a23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ ENHANCEMENTS: * `azurerm_container_app_environment` - support for `dapr_application_insights_connection_string` [GH-23080] * `azurerm_virtual_network_gateway`: increasing the default timeout for create to `90m` [GH-23003] +BUG FIXES: + +* `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` without a path (GH-23019) + ## 3.71.0 (August 24, 2023) BREAKING CHANGES: From c12b26c37aad40e0fce9ec26e11f782d336385d5 Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Fri, 25 Aug 2023 16:29:29 -0600 Subject: [PATCH 050/336] Shorten description of fix for #23019 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c45e1ca04a23..f8756e7f2dbd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ ENHANCEMENTS: BUG FIXES: -* `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` without a path (GH-23019) +* `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` (GH-23019) ## 3.71.0 (August 24, 2023) From fe2f5ee3dc95643f8cdf301672bce4fa951c4261 Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Fri, 25 Aug 2023 16:30:25 -0600 Subject: [PATCH 051/336] Fix brackets for fix #23019 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f8756e7f2dbd..3d9fd01501af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ ENHANCEMENTS: BUG FIXES: -* `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` (GH-23019) +* `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` [GH-23019] ## 3.71.0 (August 24, 2023) From 04624022ab3ab818dcbc38138c052a97fae77788 Mon Sep 17 00:00:00 2001 From: Xu Wu Date: Sat, 26 Aug 2023 07:38:50 +0800 Subject: [PATCH 052/336] including #23082 fixes #23053 --- .../automation/automation_account_resource.go | 8 ++-- .../automation_account_resource_test.go | 38 +++++++++++++++++-- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/internal/services/automation/automation_account_resource.go b/internal/services/automation/automation_account_resource.go index 1bdcc8785772..92cd9b86b669 100644 --- a/internal/services/automation/automation_account_resource.go +++ b/internal/services/automation/automation_account_resource.go @@ -195,9 +195,7 @@ func resourceAutomationAccountCreate(d *pluginsdk.ResourceData, meta interface{} }, } - if localAuth := d.Get("local_authentication_enabled").(bool); !localAuth { - parameters.Properties.DisableLocalAuth = utils.Bool(true) - } + parameters.Properties.DisableLocalAuth = utils.Bool(!d.Get("local_authentication_enabled").(bool)) // for create account do not set identity property (even TypeNone is not allowed), or api will response error if identityVal.Type != identity.TypeNone { @@ -247,8 +245,8 @@ func resourceAutomationAccountUpdate(d *pluginsdk.ResourceData, meta interface{} }, } - if localAuth := d.Get("local_authentication_enabled").(bool); !localAuth { - parameters.Properties.DisableLocalAuth = utils.Bool(true) + if d.HasChange("local_authentication_enabled") { + parameters.Properties.DisableLocalAuth = utils.Bool(!d.Get("local_authentication_enabled").(bool)) } if tagsVal := tags.Expand(d.Get("tags").(map[string]interface{})); tagsVal != nil { diff --git a/internal/services/automation/automation_account_resource_test.go b/internal/services/automation/automation_account_resource_test.go index 8d3beb220ca5..990fd89fa223 100644 --- a/internal/services/automation/automation_account_resource_test.go +++ b/internal/services/automation/automation_account_resource_test.go @@ -67,6 +67,34 @@ func TestAccAutomationAccount_complete(t *testing.T) { check.That(data.ResourceName).ExistsInAzure(r), check.That(data.ResourceName).Key("sku_name").HasValue("Basic"), check.That(data.ResourceName).Key("tags.hello").HasValue("world"), + check.That(data.ResourceName).Key("local_authentication_enabled").HasValue("true"), + ), + }, + data.ImportStep(), + }) +} + +func TestAccAutomationAccount_update(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_automation_account", "test") + r := AutomationAccountResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("sku_name").HasValue("Basic"), + check.That(data.ResourceName).Key("local_authentication_enabled").HasValue("false"), + ), + }, + data.ImportStep(), + { + Config: r.complete(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("sku_name").HasValue("Basic"), + check.That(data.ResourceName).Key("tags.hello").HasValue("world"), + check.That(data.ResourceName).Key("local_authentication_enabled").HasValue("true"), ), }, data.ImportStep(), @@ -206,10 +234,11 @@ resource "azurerm_resource_group" "test" { } resource "azurerm_automation_account" "test" { - name = "acctest-%[1]d" - location = azurerm_resource_group.test.location - resource_group_name = azurerm_resource_group.test.name - sku_name = "Basic" + name = "acctest-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + sku_name = "Basic" + local_authentication_enabled = false } `, data.RandomInteger, data.Locations.Primary) } @@ -246,6 +275,7 @@ resource "azurerm_automation_account" "test" { resource_group_name = azurerm_resource_group.test.name sku_name = "Basic" public_network_access_enabled = false + local_authentication_enabled = true tags = { "hello" = "world" } From 4c5ae549d807043154fbecdb9ed229820339d3f1 Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Fri, 25 Aug 2023 17:39:49 -0600 Subject: [PATCH 053/336] Updating to include #23082 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d9fd01501af..1cec1825cfaf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ENHANCEMENTS: BUG FIXES: +* `azurerm_automation_account` - fixes logic for `local_authentication_enabled` [GH-23082] * `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` [GH-23019] ## 3.71.0 (August 24, 2023) From 7e6d6626297a49690c33131fedc3f519f7f8272b Mon Sep 17 00:00:00 2001 From: Yun Liu Date: Sat, 26 Aug 2023 02:35:24 +0000 Subject: [PATCH 054/336] including #23021 --- internal/services/batch/batch_pool.go | 4 ++++ internal/services/batch/batch_pool_resource.go | 15 +++++++++++---- .../services/batch/batch_pool_resource_test.go | 2 ++ website/docs/r/batch_pool.html.markdown | 4 ++++ 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/internal/services/batch/batch_pool.go b/internal/services/batch/batch_pool.go index 0f7a89c81cd5..8dd2c0ab9f72 100644 --- a/internal/services/batch/batch_pool.go +++ b/internal/services/batch/batch_pool.go @@ -859,6 +859,10 @@ func expandBatchPoolExtension(ref map[string]interface{}) (*pool.VmExtension, er result.AutoUpgradeMinorVersion = utils.Bool(autoUpgradeMinorVersion.(bool)) } + if autoUpgradeEnabled, ok := ref["automatic_upgrade_enabled"]; ok { + result.EnableAutomaticUpgrade = utils.Bool(autoUpgradeEnabled.(bool)) + } + if typeHandlerVersion, ok := ref["type_handler_version"]; ok { result.TypeHandlerVersion = utils.String(typeHandlerVersion.(string)) } diff --git a/internal/services/batch/batch_pool_resource.go b/internal/services/batch/batch_pool_resource.go index 0cc1ee15335e..e19c7caf6e14 100644 --- a/internal/services/batch/batch_pool_resource.go +++ b/internal/services/batch/batch_pool_resource.go @@ -652,6 +652,10 @@ func resourceBatchPool() *pluginsdk.Resource { Type: pluginsdk.TypeBool, Optional: true, }, + "automatic_upgrade_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + }, "settings_json": { Type: pluginsdk.TypeString, Optional: true, @@ -860,11 +864,11 @@ func resourceBatchPoolCreate(d *pluginsdk.ResourceData, meta interface{}) error } parameters.Properties.TaskSchedulingPolicy = taskSchedulingPolicy - identity, err := identity.ExpandUserAssignedMap(d.Get("identity").([]interface{})) + identityResult, err := identity.ExpandUserAssignedMap(d.Get("identity").([]interface{})) if err != nil { return fmt.Errorf(`expanding "identity": %v`, err) } - parameters.Identity = identity + parameters.Identity = identityResult scaleSettings, err := expandBatchPoolScaleSettings(d) if err != nil { @@ -1100,11 +1104,11 @@ func resourceBatchPoolRead(d *pluginsdk.ResourceData, meta interface{}) error { d.Set("resource_group_name", id.ResourceGroupName) if model := resp.Model; model != nil { - identity, err := identity.FlattenUserAssignedMap(model.Identity) + identityResult, err := identity.FlattenUserAssignedMap(model.Identity) if err != nil { return fmt.Errorf("flattening `identity`: %+v", err) } - if err := d.Set("identity", identity); err != nil { + if err := d.Set("identity", identityResult); err != nil { return fmt.Errorf("setting `identity`: %+v", err) } @@ -1194,6 +1198,9 @@ func resourceBatchPoolRead(d *pluginsdk.ResourceData, meta interface{}) error { if item.AutoUpgradeMinorVersion != nil { extension["auto_upgrade_minor_version"] = *item.AutoUpgradeMinorVersion } + if item.EnableAutomaticUpgrade != nil { + extension["automatic_upgrade_enabled"] = *item.EnableAutomaticUpgrade + } if item.Settings != nil { extension["settings_json"] = item.Settings } diff --git a/internal/services/batch/batch_pool_resource_test.go b/internal/services/batch/batch_pool_resource_test.go index e61eea345c86..face843cc49e 100644 --- a/internal/services/batch/batch_pool_resource_test.go +++ b/internal/services/batch/batch_pool_resource_test.go @@ -681,6 +681,7 @@ func TestAccBatchPool_extensions(t *testing.T) { check.That(data.ResourceName).Key("extensions.0.type").HasValue("KeyVaultForLinux"), check.That(data.ResourceName).Key("extensions.0.type_handler_version").HasValue("2.0"), check.That(data.ResourceName).Key("extensions.0.auto_upgrade_minor_version").HasValue("true"), + check.That(data.ResourceName).Key("extensions.0.automatic_upgrade_enabled").HasValue("true"), check.That(data.ResourceName).Key("extensions.0.settings_json").HasValue("{}"), check.That(data.ResourceName).Key("extensions.0.protected_settings").HasValue("sensitive"), check.That(data.ResourceName).Key("extensions.0.provision_after_extensions.0").HasValue("newProv1"), @@ -2313,6 +2314,7 @@ resource "azurerm_batch_pool" "test" { type = "KeyVaultForLinux" type_handler_version = "2.0" auto_upgrade_minor_version = true + automatic_upgrade_enabled = true settings_json = "{}" protected_settings = "sensitive" provision_after_extensions = ["newProv1"] diff --git a/website/docs/r/batch_pool.html.markdown b/website/docs/r/batch_pool.html.markdown index e1e5afedc406..1bdaaabdf46d 100644 --- a/website/docs/r/batch_pool.html.markdown +++ b/website/docs/r/batch_pool.html.markdown @@ -222,6 +222,10 @@ If specified, the extensions mentioned in this configuration will be installed o * `auto_upgrade_minor_version` - (Optional) Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true. +* `automatic_upgrade_enabled` - (Optional) Indicates whether the extension should be automatically upgraded by the platform if there is a newer version available. Supported values are `true` and `false`. + +**NOTE:** When `automatic_upgrade_enabled` is set to `true`, the `type_handler_version` is automatically updated by the Azure platform when a new version is available and any change in `type_handler_version` should be manually ignored by user. + * `settings_json` - (Optional) JSON formatted public settings for the extension. * `protected_settings` - (Optional) The extension can contain either `protected_settings` or `provision_after_extensions` or no protected settings at all. From 15efd8a068e2c58714d55cbd49cb77aa448da9f7 Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Fri, 25 Aug 2023 20:36:26 -0600 Subject: [PATCH 055/336] Updating to include #23021 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cec1825cfaf..84de4db17c56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ENHANCEMENTS: +* `azurerm_batch_pool` - support for `automatic_upgrade_enabled` [GH-23021] * `azurerm_container_app_environment` - support for `dapr_application_insights_connection_string` [GH-23080] * `azurerm_virtual_network_gateway`: increasing the default timeout for create to `90m` [GH-23003] From 7cbe87349aa3917616707c5552c910e6b5bbe387 Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Fri, 25 Aug 2023 20:37:26 -0600 Subject: [PATCH 056/336] Fix formatting --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 84de4db17c56..02fabd088718 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ENHANCEMENTS: * `azurerm_batch_pool` - support for `automatic_upgrade_enabled` [GH-23021] * `azurerm_container_app_environment` - support for `dapr_application_insights_connection_string` [GH-23080] -* `azurerm_virtual_network_gateway`: increasing the default timeout for create to `90m` [GH-23003] +* `azurerm_virtual_network_gateway` - increasing the default timeout for create to `90m` [GH-23003] BUG FIXES: From a57999f39ef172a2dca16fe3bebcb43826c1ed2f Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Sat, 26 Aug 2023 07:53:03 +0200 Subject: [PATCH 057/336] `keyvault`: updating to use API Version `2023-02-01` (#23089) --- .../services/keyvault/access_policy_schema.go | 2 +- internal/services/keyvault/client/client.go | 4 +- .../key_vault_access_policy_resource.go | 2 +- .../keyvault/key_vault_data_source.go | 2 +- ...ed_hardware_security_module_data_source.go | 2 +- ...naged_hardware_security_module_resource.go | 2 +- ..._hardware_security_module_resource_test.go | 2 +- .../services/keyvault/key_vault_resource.go | 2 +- ...e_account_customer_managed_key_resource.go | 2 +- .../managedhsms/README.md | 27 ++++- .../managedhsms/client.go | 0 .../managedhsms/constants.go | 102 ++++++++++++++++++ .../managedhsms/id_deletedmanagedhsm.go | 0 .../managedhsms/id_managedhsm.go | 0 ...thod_checkmhsmnameavailability_autorest.go | 71 ++++++++++++ .../method_createorupdate_autorest.go | 0 .../managedhsms/method_delete_autorest.go | 0 .../managedhsms/method_get_autorest.go | 2 +- .../managedhsms/method_getdeleted_autorest.go | 0 .../method_listbyresourcegroup_autorest.go | 0 .../method_listbysubscription_autorest.go | 0 .../method_listdeleted_autorest.go | 0 .../method_purgedeleted_autorest.go | 0 .../managedhsms/method_update_autorest.go | 0 ...del_checkmhsmnameavailabilityparameters.go | 8 ++ .../model_checkmhsmnameavailabilityresult.go | 10 ++ .../managedhsms/model_deletedmanagedhsm.go | 0 .../model_deletedmanagedhsmproperties.go | 0 .../managedhsms/model_managedhsm.go | 0 .../managedhsms/model_managedhsmproperties.go | 2 + ...odel_managedhsmsecuritydomainproperties.go | 9 ++ .../managedhsms/model_managedhsmsku.go | 0 .../model_mhsmgeoreplicatedregion.go | 10 ++ .../managedhsms/model_mhsmiprule.go | 0 .../managedhsms/model_mhsmnetworkruleset.go | 0 .../managedhsms/model_mhsmprivateendpoint.go | 0 ...model_mhsmprivateendpointconnectionitem.go | 0 ...mhsmprivateendpointconnectionproperties.go | 0 ...l_mhsmprivatelinkserviceconnectionstate.go | 0 .../model_mhsmvirtualnetworkrule.go | 0 .../managedhsms/predicates.go | 0 .../managedhsms/version.go | 2 +- .../vaults/README.md | 6 +- .../vaults/client.go | 0 .../vaults/constants.go | 80 ++++++++------ .../vaults/id_deletedvault.go | 0 .../vaults/id_operationkind.go | 0 .../method_checknameavailability_autorest.go | 0 .../vaults/method_createorupdate_autorest.go | 0 .../vaults/method_delete_autorest.go | 0 .../vaults/method_get_autorest.go | 0 .../vaults/method_getdeleted_autorest.go | 0 .../vaults/method_list_autorest.go | 0 .../method_listbyresourcegroup_autorest.go | 0 .../method_listbysubscription_autorest.go | 0 .../vaults/method_listdeleted_autorest.go | 0 .../vaults/method_purgedeleted_autorest.go | 0 .../vaults/method_update_autorest.go | 0 .../method_updateaccesspolicy_autorest.go | 0 .../vaults/model_accesspolicyentry.go | 0 .../model_checknameavailabilityresult.go | 0 .../vaults/model_deletedvault.go | 0 .../vaults/model_deletedvaultproperties.go | 0 .../vaults/model_iprule.go | 0 .../vaults/model_networkruleset.go | 0 .../vaults/model_permissions.go | 0 .../vaults/model_privateendpoint.go | 0 .../model_privateendpointconnectionitem.go | 0 ...del_privateendpointconnectionproperties.go | 0 ...model_privatelinkserviceconnectionstate.go | 0 .../vaults/model_resource.go | 0 .../vaults/model_sku.go | 0 .../vaults/model_vault.go | 0 .../model_vaultaccesspolicyparameters.go | 0 .../model_vaultaccesspolicyproperties.go | 0 ...el_vaultchecknameavailabilityparameters.go | 0 .../model_vaultcreateorupdateparameters.go | 0 .../vaults/model_vaultpatchparameters.go | 0 .../vaults/model_vaultpatchproperties.go | 0 .../vaults/model_vaultproperties.go | 0 .../vaults/model_virtualnetworkrule.go | 0 .../vaults/predicates.go | 0 .../vaults/version.go | 2 +- vendor/modules.txt | 4 +- 84 files changed, 300 insertions(+), 55 deletions(-) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/README.md (87%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/constants.go (74%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/id_deletedmanagedhsm.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/id_managedhsm.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_checkmhsmnameavailability_autorest.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/method_createorupdate_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/method_delete_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/method_get_autorest.go (95%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/method_getdeleted_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/method_listbyresourcegroup_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/method_listbysubscription_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/method_listdeleted_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/method_purgedeleted_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/method_update_autorest.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_checkmhsmnameavailabilityparameters.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_checkmhsmnameavailabilityresult.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/model_deletedmanagedhsm.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/model_deletedmanagedhsmproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/model_managedhsm.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/model_managedhsmproperties.go (90%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_managedhsmsecuritydomainproperties.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/model_managedhsmsku.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmgeoreplicatedregion.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/model_mhsmiprule.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/model_mhsmnetworkruleset.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/model_mhsmprivateendpoint.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/model_mhsmprivateendpointconnectionitem.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/model_mhsmprivateendpointconnectionproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/model_mhsmprivatelinkserviceconnectionstate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/model_mhsmvirtualnetworkrule.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/predicates.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/managedhsms/version.go (88%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/README.md (97%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/constants.go (89%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/id_deletedvault.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/id_operationkind.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/method_checknameavailability_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/method_createorupdate_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/method_delete_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/method_get_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/method_getdeleted_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/method_list_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/method_listbyresourcegroup_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/method_listbysubscription_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/method_listdeleted_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/method_purgedeleted_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/method_update_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/method_updateaccesspolicy_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_accesspolicyentry.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_checknameavailabilityresult.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_deletedvault.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_deletedvaultproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_iprule.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_networkruleset.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_permissions.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_privateendpoint.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_privateendpointconnectionitem.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_privateendpointconnectionproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_privatelinkserviceconnectionstate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_resource.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_sku.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_vault.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_vaultaccesspolicyparameters.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_vaultaccesspolicyproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_vaultchecknameavailabilityparameters.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_vaultcreateorupdateparameters.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_vaultpatchparameters.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_vaultpatchproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_vaultproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/model_virtualnetworkrule.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/predicates.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/{2021-10-01 => 2023-02-01}/vaults/version.go (88%) diff --git a/internal/services/keyvault/access_policy_schema.go b/internal/services/keyvault/access_policy_schema.go index 5414b1749ee8..270ae8b55160 100644 --- a/internal/services/keyvault/access_policy_schema.go +++ b/internal/services/keyvault/access_policy_schema.go @@ -7,7 +7,7 @@ import ( "strings" "github.com/hashicorp/go-azure-helpers/lang/pointer" - "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults" + "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" ) diff --git a/internal/services/keyvault/client/client.go b/internal/services/keyvault/client/client.go index 3110e8adc24f..e709d12f1008 100644 --- a/internal/services/keyvault/client/client.go +++ b/internal/services/keyvault/client/client.go @@ -4,8 +4,8 @@ package client import ( - "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms" - "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults" + "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms" + "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults" "github.com/hashicorp/terraform-provider-azurerm/internal/common" dataplane "github.com/tombuildsstuff/kermit/sdk/keyvault/7.4/keyvault" ) diff --git a/internal/services/keyvault/key_vault_access_policy_resource.go b/internal/services/keyvault/key_vault_access_policy_resource.go index db9008bde8a5..55ea33f333e6 100644 --- a/internal/services/keyvault/key_vault_access_policy_resource.go +++ b/internal/services/keyvault/key_vault_access_policy_resource.go @@ -14,7 +14,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" - "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults" + "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" diff --git a/internal/services/keyvault/key_vault_data_source.go b/internal/services/keyvault/key_vault_data_source.go index de380a6d3f49..0de0712be923 100644 --- a/internal/services/keyvault/key_vault_data_source.go +++ b/internal/services/keyvault/key_vault_data_source.go @@ -13,7 +13,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" - "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults" + "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/keyvault/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" diff --git a/internal/services/keyvault/key_vault_managed_hardware_security_module_data_source.go b/internal/services/keyvault/key_vault_managed_hardware_security_module_data_source.go index ec44c3752341..073f5c09c5f3 100644 --- a/internal/services/keyvault/key_vault_managed_hardware_security_module_data_source.go +++ b/internal/services/keyvault/key_vault_managed_hardware_security_module_data_source.go @@ -11,7 +11,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" - "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms" + "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/keyvault/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" diff --git a/internal/services/keyvault/key_vault_managed_hardware_security_module_resource.go b/internal/services/keyvault/key_vault_managed_hardware_security_module_resource.go index 7c090bc5abd9..d6364f9eeac3 100644 --- a/internal/services/keyvault/key_vault_managed_hardware_security_module_resource.go +++ b/internal/services/keyvault/key_vault_managed_hardware_security_module_resource.go @@ -18,7 +18,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" - "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms" + "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms" "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" diff --git a/internal/services/keyvault/key_vault_managed_hardware_security_module_resource_test.go b/internal/services/keyvault/key_vault_managed_hardware_security_module_resource_test.go index aa6ee6d13f73..3f963ad449ea 100644 --- a/internal/services/keyvault/key_vault_managed_hardware_security_module_resource_test.go +++ b/internal/services/keyvault/key_vault_managed_hardware_security_module_resource_test.go @@ -8,7 +8,7 @@ import ( "fmt" "testing" - "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms" + "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/keyvault/key_vault_resource.go b/internal/services/keyvault/key_vault_resource.go index 3447ff0cb672..45e171853492 100644 --- a/internal/services/keyvault/key_vault_resource.go +++ b/internal/services/keyvault/key_vault_resource.go @@ -17,7 +17,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" - "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults" + "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" commonValidate "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/storage/storage_account_customer_managed_key_resource.go b/internal/services/storage/storage_account_customer_managed_key_resource.go index 552d66d43c05..8567501c251a 100644 --- a/internal/services/storage/storage_account_customer_managed_key_resource.go +++ b/internal/services/storage/storage_account_customer_managed_key_resource.go @@ -10,7 +10,7 @@ import ( "github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2021-09-01/storage" // nolint: staticcheck "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" - "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms" + "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/README.md similarity index 87% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/README.md index a2a335b8aeb2..ec7983862e46 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms` Documentation -The `managedhsms` SDK allows for interaction with the Azure Resource Manager Service `keyvault` (API Version `2021-10-01`). +The `managedhsms` SDK allows for interaction with the Azure Resource Manager Service `keyvault` (API Version `2023-02-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms" +import "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms" ``` @@ -20,6 +20,27 @@ client.Client.Authorizer = authorizer ``` +### Example Usage: `ManagedHsmsClient.CheckMhsmNameAvailability` + +```go +ctx := context.TODO() +id := managedhsms.NewSubscriptionID("12345678-1234-9876-4563-123456789012") + +payload := managedhsms.CheckMhsmNameAvailabilityParameters{ + // ... +} + + +read, err := client.CheckMhsmNameAvailability(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + ### Example Usage: `ManagedHsmsClient.CreateOrUpdate` ```go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/constants.go similarity index 74% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/constants.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/constants.go index 6801912fe08c..d6d903bd50da 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/constants.go @@ -30,6 +30,40 @@ func parseActionsRequired(input string) (*ActionsRequired, error) { return &out, nil } +type ActivationStatus string + +const ( + ActivationStatusActive ActivationStatus = "Active" + ActivationStatusFailed ActivationStatus = "Failed" + ActivationStatusNotActivated ActivationStatus = "NotActivated" + ActivationStatusUnknown ActivationStatus = "Unknown" +) + +func PossibleValuesForActivationStatus() []string { + return []string{ + string(ActivationStatusActive), + string(ActivationStatusFailed), + string(ActivationStatusNotActivated), + string(ActivationStatusUnknown), + } +} + +func parseActivationStatus(input string) (*ActivationStatus, error) { + vals := map[string]ActivationStatus{ + "active": ActivationStatusActive, + "failed": ActivationStatusFailed, + "notactivated": ActivationStatusNotActivated, + "unknown": ActivationStatusUnknown, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ActivationStatus(input) + return &out, nil +} + type CreateMode string const ( @@ -58,6 +92,46 @@ func parseCreateMode(input string) (*CreateMode, error) { return &out, nil } +type GeoReplicationRegionProvisioningState string + +const ( + GeoReplicationRegionProvisioningStateCleanup GeoReplicationRegionProvisioningState = "Cleanup" + GeoReplicationRegionProvisioningStateDeleting GeoReplicationRegionProvisioningState = "Deleting" + GeoReplicationRegionProvisioningStateFailed GeoReplicationRegionProvisioningState = "Failed" + GeoReplicationRegionProvisioningStatePreprovisioning GeoReplicationRegionProvisioningState = "Preprovisioning" + GeoReplicationRegionProvisioningStateProvisioning GeoReplicationRegionProvisioningState = "Provisioning" + GeoReplicationRegionProvisioningStateSucceeded GeoReplicationRegionProvisioningState = "Succeeded" +) + +func PossibleValuesForGeoReplicationRegionProvisioningState() []string { + return []string{ + string(GeoReplicationRegionProvisioningStateCleanup), + string(GeoReplicationRegionProvisioningStateDeleting), + string(GeoReplicationRegionProvisioningStateFailed), + string(GeoReplicationRegionProvisioningStatePreprovisioning), + string(GeoReplicationRegionProvisioningStateProvisioning), + string(GeoReplicationRegionProvisioningStateSucceeded), + } +} + +func parseGeoReplicationRegionProvisioningState(input string) (*GeoReplicationRegionProvisioningState, error) { + vals := map[string]GeoReplicationRegionProvisioningState{ + "cleanup": GeoReplicationRegionProvisioningStateCleanup, + "deleting": GeoReplicationRegionProvisioningStateDeleting, + "failed": GeoReplicationRegionProvisioningStateFailed, + "preprovisioning": GeoReplicationRegionProvisioningStatePreprovisioning, + "provisioning": GeoReplicationRegionProvisioningStateProvisioning, + "succeeded": GeoReplicationRegionProvisioningStateSucceeded, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := GeoReplicationRegionProvisioningState(input) + return &out, nil +} + type ManagedHsmSkuFamily string const ( @@ -317,3 +391,31 @@ func parsePublicNetworkAccess(input string) (*PublicNetworkAccess, error) { out := PublicNetworkAccess(input) return &out, nil } + +type Reason string + +const ( + ReasonAccountNameInvalid Reason = "AccountNameInvalid" + ReasonAlreadyExists Reason = "AlreadyExists" +) + +func PossibleValuesForReason() []string { + return []string{ + string(ReasonAccountNameInvalid), + string(ReasonAlreadyExists), + } +} + +func parseReason(input string) (*Reason, error) { + vals := map[string]Reason{ + "accountnameinvalid": ReasonAccountNameInvalid, + "alreadyexists": ReasonAlreadyExists, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Reason(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/id_deletedmanagedhsm.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/id_deletedmanagedhsm.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/id_deletedmanagedhsm.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/id_deletedmanagedhsm.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/id_managedhsm.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/id_managedhsm.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/id_managedhsm.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/id_managedhsm.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_checkmhsmnameavailability_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_checkmhsmnameavailability_autorest.go new file mode 100644 index 000000000000..1d6648210ebb --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_checkmhsmnameavailability_autorest.go @@ -0,0 +1,71 @@ +package managedhsms + +import ( + "context" + "fmt" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CheckMhsmNameAvailabilityOperationResponse struct { + HttpResponse *http.Response + Model *CheckMhsmNameAvailabilityResult +} + +// CheckMhsmNameAvailability ... +func (c ManagedHsmsClient) CheckMhsmNameAvailability(ctx context.Context, id commonids.SubscriptionId, input CheckMhsmNameAvailabilityParameters) (result CheckMhsmNameAvailabilityOperationResponse, err error) { + req, err := c.preparerForCheckMhsmNameAvailability(ctx, id, input) + if err != nil { + err = autorest.NewErrorWithError(err, "managedhsms.ManagedHsmsClient", "CheckMhsmNameAvailability", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "managedhsms.ManagedHsmsClient", "CheckMhsmNameAvailability", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForCheckMhsmNameAvailability(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "managedhsms.ManagedHsmsClient", "CheckMhsmNameAvailability", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForCheckMhsmNameAvailability prepares the CheckMhsmNameAvailability request. +func (c ManagedHsmsClient) preparerForCheckMhsmNameAvailability(ctx context.Context, id commonids.SubscriptionId, input CheckMhsmNameAvailabilityParameters) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.KeyVault/checkMhsmNameAvailability", id.ID())), + autorest.WithJSON(input), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForCheckMhsmNameAvailability handles the response to the CheckMhsmNameAvailability request. The method always +// closes the http.Response Body. +func (c ManagedHsmsClient) responderForCheckMhsmNameAvailability(resp *http.Response) (result CheckMhsmNameAvailabilityOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_createorupdate_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_createorupdate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_createorupdate_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_delete_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_delete_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_delete_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_get_autorest.go similarity index 95% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_get_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_get_autorest.go index 2be3a31b09af..827011f2ea07 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_get_autorest.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_get_autorest.go @@ -59,7 +59,7 @@ func (c ManagedHsmsClient) preparerForGet(ctx context.Context, id ManagedHSMId) func (c ManagedHsmsClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { err = autorest.Respond( resp, - azure.WithErrorUnlessStatusCode(http.StatusAccepted, http.StatusNoContent, http.StatusOK), + azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), autorest.ByUnmarshallingJSON(&result.Model), autorest.ByClosing()) result.HttpResponse = resp diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_getdeleted_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_getdeleted_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_getdeleted_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_getdeleted_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_listbyresourcegroup_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_listbyresourcegroup_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_listbyresourcegroup_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_listbyresourcegroup_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_listbysubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_listbysubscription_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_listbysubscription_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_listbysubscription_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_listdeleted_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_listdeleted_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_listdeleted_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_listdeleted_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_purgedeleted_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_purgedeleted_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_purgedeleted_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_purgedeleted_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_update_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_update_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/method_update_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/method_update_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_checkmhsmnameavailabilityparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_checkmhsmnameavailabilityparameters.go new file mode 100644 index 000000000000..a3d8ea5b0e2b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_checkmhsmnameavailabilityparameters.go @@ -0,0 +1,8 @@ +package managedhsms + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CheckMhsmNameAvailabilityParameters struct { + Name string `json:"name"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_checkmhsmnameavailabilityresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_checkmhsmnameavailabilityresult.go new file mode 100644 index 000000000000..f8c2c2d29950 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_checkmhsmnameavailabilityresult.go @@ -0,0 +1,10 @@ +package managedhsms + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CheckMhsmNameAvailabilityResult struct { + Message *string `json:"message,omitempty"` + NameAvailable *bool `json:"nameAvailable,omitempty"` + Reason *Reason `json:"reason,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_deletedmanagedhsm.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_deletedmanagedhsm.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_deletedmanagedhsm.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_deletedmanagedhsm.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_deletedmanagedhsmproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_deletedmanagedhsmproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_deletedmanagedhsmproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_deletedmanagedhsmproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_managedhsm.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_managedhsm.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_managedhsm.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_managedhsm.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_managedhsmproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_managedhsmproperties.go similarity index 90% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_managedhsmproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_managedhsmproperties.go index 566945340660..27d30dbab01d 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_managedhsmproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_managedhsmproperties.go @@ -19,7 +19,9 @@ type ManagedHsmProperties struct { PrivateEndpointConnections *[]MHSMPrivateEndpointConnectionItem `json:"privateEndpointConnections,omitempty"` ProvisioningState *ProvisioningState `json:"provisioningState,omitempty"` PublicNetworkAccess *PublicNetworkAccess `json:"publicNetworkAccess,omitempty"` + Regions *[]MHSMGeoReplicatedRegion `json:"regions,omitempty"` ScheduledPurgeDate *string `json:"scheduledPurgeDate,omitempty"` + SecurityDomainProperties *ManagedHSMSecurityDomainProperties `json:"securityDomainProperties,omitempty"` SoftDeleteRetentionInDays *int64 `json:"softDeleteRetentionInDays,omitempty"` StatusMessage *string `json:"statusMessage,omitempty"` TenantId *string `json:"tenantId,omitempty"` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_managedhsmsecuritydomainproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_managedhsmsecuritydomainproperties.go new file mode 100644 index 000000000000..63842e568137 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_managedhsmsecuritydomainproperties.go @@ -0,0 +1,9 @@ +package managedhsms + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ManagedHSMSecurityDomainProperties struct { + ActivationStatus *ActivationStatus `json:"activationStatus,omitempty"` + ActivationStatusMessage *string `json:"activationStatusMessage,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_managedhsmsku.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_managedhsmsku.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_managedhsmsku.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_managedhsmsku.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmgeoreplicatedregion.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmgeoreplicatedregion.go new file mode 100644 index 000000000000..02ff4ffdc7df --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmgeoreplicatedregion.go @@ -0,0 +1,10 @@ +package managedhsms + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type MHSMGeoReplicatedRegion struct { + IsPrimary *bool `json:"isPrimary,omitempty"` + Name *string `json:"name,omitempty"` + ProvisioningState *GeoReplicationRegionProvisioningState `json:"provisioningState,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_mhsmiprule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmiprule.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_mhsmiprule.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmiprule.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_mhsmnetworkruleset.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmnetworkruleset.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_mhsmnetworkruleset.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmnetworkruleset.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_mhsmprivateendpoint.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmprivateendpoint.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_mhsmprivateendpoint.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmprivateendpoint.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_mhsmprivateendpointconnectionitem.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmprivateendpointconnectionitem.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_mhsmprivateendpointconnectionitem.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmprivateendpointconnectionitem.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_mhsmprivateendpointconnectionproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmprivateendpointconnectionproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_mhsmprivateendpointconnectionproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmprivateendpointconnectionproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_mhsmprivatelinkserviceconnectionstate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmprivatelinkserviceconnectionstate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_mhsmprivatelinkserviceconnectionstate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmprivatelinkserviceconnectionstate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_mhsmvirtualnetworkrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmvirtualnetworkrule.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/model_mhsmvirtualnetworkrule.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/model_mhsmvirtualnetworkrule.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/predicates.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/predicates.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/predicates.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/version.go index bcd6ed1296d4..09de4ecdb8d7 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2021-10-01" +const defaultApiVersion = "2023-02-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/managedhsms/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/README.md similarity index 97% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/README.md index 6976066d75fb..c4d2912f1427 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults` Documentation -The `vaults` SDK allows for interaction with the Azure Resource Manager Service `keyvault` (API Version `2021-10-01`). +The `vaults` SDK allows for interaction with the Azure Resource Manager Service `keyvault` (API Version `2023-02-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults" +import "github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults" ``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/constants.go similarity index 89% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/constants.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/constants.go index 0e9e41221653..a9f3fd33ac5c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/constants.go @@ -165,23 +165,27 @@ func parseCreateMode(input string) (*CreateMode, error) { type KeyPermissions string const ( - KeyPermissionsAll KeyPermissions = "all" - KeyPermissionsBackup KeyPermissions = "backup" - KeyPermissionsCreate KeyPermissions = "create" - KeyPermissionsDecrypt KeyPermissions = "decrypt" - KeyPermissionsDelete KeyPermissions = "delete" - KeyPermissionsEncrypt KeyPermissions = "encrypt" - KeyPermissionsGet KeyPermissions = "get" - KeyPermissionsImport KeyPermissions = "import" - KeyPermissionsList KeyPermissions = "list" - KeyPermissionsPurge KeyPermissions = "purge" - KeyPermissionsRecover KeyPermissions = "recover" - KeyPermissionsRestore KeyPermissions = "restore" - KeyPermissionsSign KeyPermissions = "sign" - KeyPermissionsUnwrapKey KeyPermissions = "unwrapKey" - KeyPermissionsUpdate KeyPermissions = "update" - KeyPermissionsVerify KeyPermissions = "verify" - KeyPermissionsWrapKey KeyPermissions = "wrapKey" + KeyPermissionsAll KeyPermissions = "all" + KeyPermissionsBackup KeyPermissions = "backup" + KeyPermissionsCreate KeyPermissions = "create" + KeyPermissionsDecrypt KeyPermissions = "decrypt" + KeyPermissionsDelete KeyPermissions = "delete" + KeyPermissionsEncrypt KeyPermissions = "encrypt" + KeyPermissionsGet KeyPermissions = "get" + KeyPermissionsGetrotationpolicy KeyPermissions = "getrotationpolicy" + KeyPermissionsImport KeyPermissions = "import" + KeyPermissionsList KeyPermissions = "list" + KeyPermissionsPurge KeyPermissions = "purge" + KeyPermissionsRecover KeyPermissions = "recover" + KeyPermissionsRelease KeyPermissions = "release" + KeyPermissionsRestore KeyPermissions = "restore" + KeyPermissionsRotate KeyPermissions = "rotate" + KeyPermissionsSetrotationpolicy KeyPermissions = "setrotationpolicy" + KeyPermissionsSign KeyPermissions = "sign" + KeyPermissionsUnwrapKey KeyPermissions = "unwrapKey" + KeyPermissionsUpdate KeyPermissions = "update" + KeyPermissionsVerify KeyPermissions = "verify" + KeyPermissionsWrapKey KeyPermissions = "wrapKey" ) func PossibleValuesForKeyPermissions() []string { @@ -193,11 +197,15 @@ func PossibleValuesForKeyPermissions() []string { string(KeyPermissionsDelete), string(KeyPermissionsEncrypt), string(KeyPermissionsGet), + string(KeyPermissionsGetrotationpolicy), string(KeyPermissionsImport), string(KeyPermissionsList), string(KeyPermissionsPurge), string(KeyPermissionsRecover), + string(KeyPermissionsRelease), string(KeyPermissionsRestore), + string(KeyPermissionsRotate), + string(KeyPermissionsSetrotationpolicy), string(KeyPermissionsSign), string(KeyPermissionsUnwrapKey), string(KeyPermissionsUpdate), @@ -208,23 +216,27 @@ func PossibleValuesForKeyPermissions() []string { func parseKeyPermissions(input string) (*KeyPermissions, error) { vals := map[string]KeyPermissions{ - "all": KeyPermissionsAll, - "backup": KeyPermissionsBackup, - "create": KeyPermissionsCreate, - "decrypt": KeyPermissionsDecrypt, - "delete": KeyPermissionsDelete, - "encrypt": KeyPermissionsEncrypt, - "get": KeyPermissionsGet, - "import": KeyPermissionsImport, - "list": KeyPermissionsList, - "purge": KeyPermissionsPurge, - "recover": KeyPermissionsRecover, - "restore": KeyPermissionsRestore, - "sign": KeyPermissionsSign, - "unwrapkey": KeyPermissionsUnwrapKey, - "update": KeyPermissionsUpdate, - "verify": KeyPermissionsVerify, - "wrapkey": KeyPermissionsWrapKey, + "all": KeyPermissionsAll, + "backup": KeyPermissionsBackup, + "create": KeyPermissionsCreate, + "decrypt": KeyPermissionsDecrypt, + "delete": KeyPermissionsDelete, + "encrypt": KeyPermissionsEncrypt, + "get": KeyPermissionsGet, + "getrotationpolicy": KeyPermissionsGetrotationpolicy, + "import": KeyPermissionsImport, + "list": KeyPermissionsList, + "purge": KeyPermissionsPurge, + "recover": KeyPermissionsRecover, + "release": KeyPermissionsRelease, + "restore": KeyPermissionsRestore, + "rotate": KeyPermissionsRotate, + "setrotationpolicy": KeyPermissionsSetrotationpolicy, + "sign": KeyPermissionsSign, + "unwrapkey": KeyPermissionsUnwrapKey, + "update": KeyPermissionsUpdate, + "verify": KeyPermissionsVerify, + "wrapkey": KeyPermissionsWrapKey, } if v, ok := vals[strings.ToLower(input)]; ok { return &v, nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/id_deletedvault.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/id_deletedvault.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/id_deletedvault.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/id_deletedvault.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/id_operationkind.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/id_operationkind.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/id_operationkind.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/id_operationkind.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_checknameavailability_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_checknameavailability_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_checknameavailability_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_checknameavailability_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_createorupdate_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_createorupdate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_createorupdate_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_delete_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_delete_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_delete_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_get_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_get_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_get_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_getdeleted_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_getdeleted_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_getdeleted_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_getdeleted_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_list_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_list_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_list_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_list_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_listbyresourcegroup_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_listbyresourcegroup_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_listbyresourcegroup_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_listbyresourcegroup_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_listbysubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_listbysubscription_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_listbysubscription_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_listbysubscription_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_listdeleted_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_listdeleted_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_listdeleted_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_listdeleted_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_purgedeleted_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_purgedeleted_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_purgedeleted_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_purgedeleted_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_update_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_update_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_update_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_update_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_updateaccesspolicy_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_updateaccesspolicy_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/method_updateaccesspolicy_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/method_updateaccesspolicy_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_accesspolicyentry.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_accesspolicyentry.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_accesspolicyentry.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_accesspolicyentry.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_checknameavailabilityresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_checknameavailabilityresult.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_checknameavailabilityresult.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_checknameavailabilityresult.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_deletedvault.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_deletedvault.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_deletedvault.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_deletedvault.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_deletedvaultproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_deletedvaultproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_deletedvaultproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_deletedvaultproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_iprule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_iprule.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_iprule.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_iprule.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_networkruleset.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_networkruleset.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_networkruleset.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_networkruleset.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_permissions.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_permissions.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_permissions.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_permissions.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_privateendpoint.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_privateendpoint.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_privateendpoint.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_privateendpoint.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_privateendpointconnectionitem.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_privateendpointconnectionitem.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_privateendpointconnectionitem.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_privateendpointconnectionitem.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_privateendpointconnectionproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_privateendpointconnectionproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_privateendpointconnectionproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_privateendpointconnectionproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_privatelinkserviceconnectionstate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_privatelinkserviceconnectionstate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_privatelinkserviceconnectionstate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_privatelinkserviceconnectionstate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_resource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_resource.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_resource.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_resource.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_sku.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_sku.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_sku.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_sku.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vault.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vault.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vault.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vault.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vaultaccesspolicyparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vaultaccesspolicyparameters.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vaultaccesspolicyparameters.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vaultaccesspolicyparameters.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vaultaccesspolicyproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vaultaccesspolicyproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vaultaccesspolicyproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vaultaccesspolicyproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vaultchecknameavailabilityparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vaultchecknameavailabilityparameters.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vaultchecknameavailabilityparameters.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vaultchecknameavailabilityparameters.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vaultcreateorupdateparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vaultcreateorupdateparameters.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vaultcreateorupdateparameters.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vaultcreateorupdateparameters.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vaultpatchparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vaultpatchparameters.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vaultpatchparameters.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vaultpatchparameters.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vaultpatchproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vaultpatchproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vaultpatchproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vaultpatchproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vaultproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vaultproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_vaultproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_vaultproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_virtualnetworkrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_virtualnetworkrule.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/model_virtualnetworkrule.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/model_virtualnetworkrule.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/predicates.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/predicates.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/predicates.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/version.go index bc58b328de93..02e0543ff4f8 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2021-10-01" +const defaultApiVersion = "2023-02-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/vaults/%s", defaultApiVersion) diff --git a/vendor/modules.txt b/vendor/modules.txt index 046b4f0e0d7c..d4a959cd387d 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -467,8 +467,8 @@ github.com/hashicorp/go-azure-sdk/resource-manager/insights/2022-10-01/autoscale github.com/hashicorp/go-azure-sdk/resource-manager/insights/2023-01-01/actiongroupsapis github.com/hashicorp/go-azure-sdk/resource-manager/insights/2023-04-03/azuremonitorworkspaces github.com/hashicorp/go-azure-sdk/resource-manager/iotcentral/2021-11-01-preview/apps -github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/managedhsms -github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2021-10-01/vaults +github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/managedhsms +github.com/hashicorp/go-azure-sdk/resource-manager/keyvault/2023-02-01/vaults github.com/hashicorp/go-azure-sdk/resource-manager/kubernetesconfiguration/2022-11-01/extensions github.com/hashicorp/go-azure-sdk/resource-manager/kubernetesconfiguration/2022-11-01/fluxconfiguration github.com/hashicorp/go-azure-sdk/resource-manager/kusto/2023-05-02/attacheddatabaseconfigurations From d529efd25b7432690a8791cc2bbabd1341b6f7b4 Mon Sep 17 00:00:00 2001 From: kt Date: Fri, 25 Aug 2023 22:53:52 -0700 Subject: [PATCH 058/336] Update CHANGELOG.md #23089 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02fabd088718..2bb70632d2a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ENHANCEMENTS: +* `keyvault`: upgrade remaining resources to `2023-02-01` [GH-23089] * `azurerm_batch_pool` - support for `automatic_upgrade_enabled` [GH-23021] * `azurerm_container_app_environment` - support for `dapr_application_insights_connection_string` [GH-23080] * `azurerm_virtual_network_gateway` - increasing the default timeout for create to `90m` [GH-23003] From 683d4ad744f9557ee12280afcab7f1acab66f718 Mon Sep 17 00:00:00 2001 From: Xu Wu Date: Sat, 26 Aug 2023 13:54:52 +0800 Subject: [PATCH 059/336] New resource: `azurerm_automation_python3_package` (#23087) --- .../automation_python3_package_resource.go | 251 ++++++++++++++++++ ...utomation_python3_package_resource_test.go | 122 +++++++++ internal/services/automation/registration.go | 1 + .../automation_python3_package.html.markdown | 86 ++++++ 4 files changed, 460 insertions(+) create mode 100644 internal/services/automation/automation_python3_package_resource.go create mode 100644 internal/services/automation/automation_python3_package_resource_test.go create mode 100644 website/docs/r/automation_python3_package.html.markdown diff --git a/internal/services/automation/automation_python3_package_resource.go b/internal/services/automation/automation_python3_package_resource.go new file mode 100644 index 000000000000..112dcfca11bd --- /dev/null +++ b/internal/services/automation/automation_python3_package_resource.go @@ -0,0 +1,251 @@ +package automation + +import ( + "context" + "fmt" + "time" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/python3package" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" +) + +type Python3PackageModel struct { + Name string `tfschema:"name"` + ResourceGroupName string `tfschema:"resource_group_name"` + AutomationAccountName string `tfschema:"automation_account_name"` + ContentUri string `tfschema:"content_uri"` + ContentVersion string `tfschema:"content_version"` + HashAlgorithm string `tfschema:"hash_algorithm"` + HashValue string `tfschema:"hash_value"` + Tags map[string]string `tfschema:"tags"` +} + +type Python3PackageResource struct{} + +var _ sdk.Resource = (*Python3PackageResource)(nil) + +func (m Python3PackageResource) Arguments() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "resource_group_name": commonschema.ResourceGroupName(), + + "automation_account_name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "content_uri": { + Type: pluginsdk.TypeString, + ForceNew: true, + Required: true, + ValidateFunc: validation.IsURLWithHTTPorHTTPS, + }, + + "content_version": { + Type: pluginsdk.TypeString, + ForceNew: true, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "hash_algorithm": { + Type: pluginsdk.TypeString, + ForceNew: true, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + RequiredWith: []string{"hash_value"}, + }, + + "hash_value": { + Type: pluginsdk.TypeString, + ForceNew: true, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + RequiredWith: []string{"hash_algorithm"}, + }, + + "tags": commonschema.Tags(), + } +} + +func (m Python3PackageResource) Attributes() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{} +} + +func (m Python3PackageResource) ModelObject() interface{} { + return &Python3PackageModel{} +} + +func (m Python3PackageResource) ResourceType() string { + return "azurerm_automation_python3_package" +} + +func (m Python3PackageResource) Create() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, meta sdk.ResourceMetaData) error { + client := meta.Client.Automation.Python3Package + + var model Python3PackageModel + if err := meta.Decode(&model); err != nil { + return err + } + + subscriptionID := meta.Client.Account.SubscriptionId + id := python3package.NewPython3PackageID(subscriptionID, model.ResourceGroupName, model.AutomationAccountName, model.Name) + existing, err := client.Get(ctx, id) + if !response.WasNotFound(existing.HttpResponse) { + if err != nil { + return fmt.Errorf("retrieving %s: %v", id, err) + } + return meta.ResourceRequiresImport(m.ResourceType(), id) + } + + req := python3package.PythonPackageCreateParameters{} + req.Properties = python3package.PythonPackageCreateProperties{ + ContentLink: python3package.ContentLink{ + Uri: &model.ContentUri, + }, + } + + if model.ContentVersion != "" { + req.Properties.ContentLink.Version = &model.ContentVersion + } + + if model.HashAlgorithm != "" { + req.Properties.ContentLink.ContentHash = &python3package.ContentHash{ + Algorithm: model.HashAlgorithm, + Value: model.HashValue, + } + } + req.Tags = &model.Tags + + if err = client.CreateOrUpdateThenPoll(ctx, id, req); err != nil { + return fmt.Errorf("creating %s: %v", id, err) + } + + meta.SetID(id) + return nil + }, + } +} + +func (m Python3PackageResource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 5 * time.Minute, + Func: func(ctx context.Context, meta sdk.ResourceMetaData) error { + id, err := python3package.ParsePython3PackageID(meta.ResourceData.Id()) + if err != nil { + return err + } + + client := meta.Client.Automation.Python3Package + result, err := client.Get(ctx, *id) + if err != nil { + return err + } + + if result.Model == nil { + return fmt.Errorf("retrieving %s got nil model", id) + } + + var stateModel Python3PackageModel + if err = meta.Decode(&stateModel); err != nil { + return err + } + + output := Python3PackageModel{ + ResourceGroupName: id.ResourceGroupName, + AutomationAccountName: id.AutomationAccountName, + Name: id.Python3PackageName, + + // the fields below don't return by the API, remove it when issue fixed + // https://github.com/Azure/azure-rest-api-specs/issues/25538 + ContentVersion: stateModel.ContentVersion, + ContentUri: stateModel.ContentUri, + HashValue: stateModel.HashValue, + HashAlgorithm: stateModel.HashAlgorithm, + } + + model := result.Model + if model.Properties != nil { + if content := model.Properties.ContentLink; content != nil { + output.ContentUri = pointer.From(content.Uri) + output.ContentVersion = pointer.From(content.Version) + if hash := content.ContentHash; hash != nil { + output.HashAlgorithm = hash.Algorithm + output.HashValue = hash.Value + } + } + output.Tags = pointer.From(model.Tags) + } + + return meta.Encode(&output) + }, + } +} + +func (m Python3PackageResource) Update() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 10 * time.Minute, + Func: func(ctx context.Context, meta sdk.ResourceMetaData) (err error) { + client := meta.Client.Automation.Python3Package + id, err := python3package.ParsePython3PackageID(meta.ResourceData.Id()) + if err != nil { + return err + } + + var model Python3PackageModel + if err = meta.Decode(&model); err != nil { + return fmt.Errorf("decoding %s: %+v", id, err) + } + + var upd python3package.PythonPackageUpdateParameters + if meta.ResourceData.HasChange("tags") { + upd.Tags = &model.Tags + } + + if _, err = client.Update(ctx, *id, upd); err != nil { + return fmt.Errorf("updating %s: %v", id, err) + } + + return nil + }, + } +} + +func (m Python3PackageResource) Delete() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 10 * time.Minute, + Func: func(ctx context.Context, meta sdk.ResourceMetaData) error { + id, err := python3package.ParsePython3PackageID(meta.ResourceData.Id()) + if err != nil { + return err + } + + meta.Logger.Infof("deleting %s", id) + client := meta.Client.Automation.Python3Package + if _, err = client.Delete(ctx, *id); err != nil { + return fmt.Errorf("deleting %s: %v", id, err) + } + return nil + }, + } +} + +func (m Python3PackageResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return python3package.ValidatePython3PackageID +} diff --git a/internal/services/automation/automation_python3_package_resource_test.go b/internal/services/automation/automation_python3_package_resource_test.go new file mode 100644 index 000000000000..24ef8b932dea --- /dev/null +++ b/internal/services/automation/automation_python3_package_resource_test.go @@ -0,0 +1,122 @@ +package automation_test + +import ( + "context" + "fmt" + "testing" + + "github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/python3package" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/services/automation" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/utils" +) + +type Python3PackageResource struct{} + +func (a Python3PackageResource) Exists(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { + id, err := python3package.ParsePython3PackageID(state.ID) + if err != nil { + return nil, err + } + resp, err := client.Automation.Python3Package.Get(ctx, *id) + if err != nil { + return nil, fmt.Errorf("retrieving Python3Package %s: %+v", id, err) + } + return utils.Bool(resp.Model != nil), nil +} + +func TestAccPython3Package_basic(t *testing.T) { + data := acceptance.BuildTestData(t, automation.Python3PackageResource{}.ResourceType(), "test") + r := Python3PackageResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("content_uri", "content_version"), + }) +} + +func TestAccPython3Package_update(t *testing.T) { + data := acceptance.BuildTestData(t, automation.Python3PackageResource{}.ResourceType(), "test") + r := Python3PackageResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("content_uri", "content_version"), + { + Config: r.update(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("content_uri", "content_version", "hash_algorithm", "hash_value"), + }) +} + +func (a Python3PackageResource) basic(data acceptance.TestData) string { + return fmt.Sprintf(` + +%s + +resource "azurerm_automation_python3_package" "test" { + name = "acctest-%[2]d" + resource_group_name = azurerm_resource_group.test.name + automation_account_name = azurerm_automation_account.test.name + content_uri = "https://pypi.org/packages/source/r/requests/requests-2.31.0.tar.gz" + content_version = "2.31.0" + tags = { + key = "foo" + } +} +`, a.template(data), data.RandomInteger) +} + +func (a Python3PackageResource) update(data acceptance.TestData) string { + return fmt.Sprintf(` + +%s + +resource "azurerm_automation_python3_package" "test" { + name = "acctest-%[2]d" + resource_group_name = azurerm_resource_group.test.name + automation_account_name = azurerm_automation_account.test.name + content_uri = "https://pypi.org/packages/source/r/requests/requests-2.31.0.tar.gz" + content_version = "2.31.0" + hash_algorithm = "sha256" + hash_value = "942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" + tags = { + key = "bar" + } +} +`, a.template(data), data.RandomInteger) +} + +func (a Python3PackageResource) template(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-auto-%[1]d" + location = "%[2]s" +} + +resource "azurerm_automation_account" "test" { + name = "acctest-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + sku_name = "Basic" +} +`, data.RandomInteger, data.Locations.Primary) +} diff --git a/internal/services/automation/registration.go b/internal/services/automation/registration.go index 7b8137fa5ff9..aae7a0af2595 100644 --- a/internal/services/automation/registration.go +++ b/internal/services/automation/registration.go @@ -27,6 +27,7 @@ func (r Registration) Resources() []sdk.Resource { SoftwareUpdateConfigurationResource{}, SourceControlResource{}, WatcherResource{}, + Python3PackageResource{}, } } diff --git a/website/docs/r/automation_python3_package.html.markdown b/website/docs/r/automation_python3_package.html.markdown new file mode 100644 index 000000000000..a34dc76d8b40 --- /dev/null +++ b/website/docs/r/automation_python3_package.html.markdown @@ -0,0 +1,86 @@ +--- +subcategory: "Automation" +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_automation_python3_package" +description: |- + Manages a Automation Python3 Package. +--- + +# azurerm_automation_python3_package + +Manages a Automation Python3 Package. + +## Example Usage + +```hcl +resource "azurerm_resource_group" "example" { + name = "rg-example" + location = "%[2]s" +} + +resource "azurerm_automation_account" "example" { + name = "accexample" + location = azurerm_resource_group.example.location + resource_group_name = azurerm_resource_group.example.name + sku_name = "Basic" +} + +resource "azurerm_automation_python3_package" "example" { + name = "example" + resource_group_name = azurerm_resource_group.example.name + automation_account_name = azurerm_automation_account.example.name + content_uri = "https://pypi.org/packages/source/r/requests/requests-2.31.0.tar.gz" + content_version = "2.31.0" + hash_algorithm = "sha256" + hash_value = "942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" + tags = { + key = "foo" + } +} +``` + +## Arguments Reference + +The following arguments are supported: + +* `resource_group_name` - (Required) The name of the resource group in which the Python3 Package is created. Changing this forces a new resource to be created. + +* `automation_account_name` - (Required) The name of the automation account in which the Python3 Package is created. Changing this forces a new resource to be created. + +* `name` - (Required) The name which should be used for this Automation Python3 Package. Changing this forces a new Automation Python3 Package to be created. + +* `content_uri` - (Required) The URL of the python package. Changing this forces a new Automation Python3 Package to be created. + + +--- + +* `content_version` - (Optional) Specify the version of the python3 package. The value should meet the system.version class format like `1.1.1`. Changing this forces a new Automation Python3 Package to be created. + +* `hash_algorithm` - (Optional) Specify the hash algorithm used to hash the content of the python3 package. Changing this forces a new Automation Python3 Package to be created. + +* `hash_value` - (Optional) Specity the hash value of the content. Changing this forces a new Automation Python3 Package to be created. + +* `tags` - (Optional) A mapping of tags which should be assigned to the Automation Python3 Package. + +## Attributes Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the Automation Python3 Package. + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: + +* `create` - (Defaults to 30 minutes) Used when creating the Automation Python3 Package. +* `read` - (Defaults to 5 minutes) Used when retrieving the Automation Python3 Package. +* `update` - (Defaults to 10 minutes) Used when updating the Automation Python3 Package. +* `delete` - (Defaults to 10 minutes) Used when deleting the Automation Python3 Package. + +## Import + +Automation Python3 Packages can be imported using the `resource id`, e.g. + +```shell +terraform import azurerm_automation_python3_package.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Automation/automationAccounts/account1/python3Packages/pkg +``` From d2224fef4ce52a4de461e9a1a3c0e35f94d57a73 Mon Sep 17 00:00:00 2001 From: kt Date: Fri, 25 Aug 2023 22:55:29 -0700 Subject: [PATCH 060/336] Update CHANGELOG.md #23087 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2bb70632d2a9..b147b94ef512 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## 3.72.0 (Unreleased) +FEATURES: + +* **New Resource**: `azurerm_automation_python3_package` [GH-23087] + ENHANCEMENTS: * `keyvault`: upgrade remaining resources to `2023-02-01` [GH-23089] From 8ec67842b3c197b6a07cecbb39d9f0d90c405282 Mon Sep 17 00:00:00 2001 From: Neil Ye Date: Sat, 26 Aug 2023 13:59:12 +0800 Subject: [PATCH 061/336] `azurerm_postgresql_flexible_server` - support for `auto_grow_enabled` (#23069) --- .../postgresql_flexible_server_data_source.go | 15 +++++- ...gresql_flexible_server_data_source_test.go | 1 + .../postgresql_flexible_server_resource.go | 26 ++++++++-- ...ostgresql_flexible_server_resource_test.go | 49 +++++++++++++++++++ .../postgresql_flexible_server.html.markdown | 2 + .../postgresql_flexible_server.html.markdown | 2 + 6 files changed, 89 insertions(+), 6 deletions(-) diff --git a/internal/services/postgres/postgresql_flexible_server_data_source.go b/internal/services/postgres/postgresql_flexible_server_data_source.go index b62b72012c13..45945c14cfe6 100644 --- a/internal/services/postgres/postgresql_flexible_server_data_source.go +++ b/internal/services/postgres/postgresql_flexible_server_data_source.go @@ -41,6 +41,11 @@ func dataSourcePostgresqlFlexibleServer() *pluginsdk.Resource { Computed: true, }, + "auto_grow_enabled": { + Type: pluginsdk.TypeBool, + Computed: true, + }, + "sku_name": { Type: pluginsdk.TypeString, Computed: true, @@ -112,8 +117,14 @@ func dataSourceArmPostgresqlFlexibleServerRead(d *pluginsdk.ResourceData, meta i d.Set("version", string(pointer.From(props.Version))) d.Set("fqdn", props.FullyQualifiedDomainName) - if storage := props.Storage; storage != nil && storage.StorageSizeGB != nil { - d.Set("storage_mb", (*props.Storage.StorageSizeGB * 1024)) + if storage := props.Storage; storage != nil { + if storage.AutoGrow != nil { + d.Set("auto_grow_enabled", *storage.AutoGrow == servers.StorageAutoGrowEnabled) + } + + if storage.StorageSizeGB != nil { + d.Set("storage_mb", (*props.Storage.StorageSizeGB * 1024)) + } } if backup := props.Backup; backup != nil { diff --git a/internal/services/postgres/postgresql_flexible_server_data_source_test.go b/internal/services/postgres/postgresql_flexible_server_data_source_test.go index 94fc21d7f11d..a7ab71942898 100644 --- a/internal/services/postgres/postgresql_flexible_server_data_source_test.go +++ b/internal/services/postgres/postgresql_flexible_server_data_source_test.go @@ -22,6 +22,7 @@ func TestAccDataSourcePostgresqlflexibleServer_basic(t *testing.T) { Config: r.basic(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).Key("administrator_login").Exists(), + check.That(data.ResourceName).Key("auto_grow_enabled").Exists(), check.That(data.ResourceName).Key("sku_name").Exists(), check.That(data.ResourceName).Key("storage_mb").Exists(), check.That(data.ResourceName).Key("version").Exists(), diff --git a/internal/services/postgres/postgresql_flexible_server_resource.go b/internal/services/postgres/postgresql_flexible_server_resource.go index 68de7a21135d..fc345581f7ec 100644 --- a/internal/services/postgres/postgresql_flexible_server_resource.go +++ b/internal/services/postgres/postgresql_flexible_server_resource.go @@ -119,6 +119,12 @@ func resourcePostgresqlFlexibleServer() *pluginsdk.Resource { ValidateFunc: validate.FlexibleServerSkuName, }, + "auto_grow_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + "storage_mb": { Type: pluginsdk.TypeInt, Optional: true, @@ -557,8 +563,14 @@ func resourcePostgresqlFlexibleServerRead(d *pluginsdk.ResourceData, meta interf return fmt.Errorf("setting `maintenance_window`: %+v", err) } - if storage := props.Storage; storage != nil && storage.StorageSizeGB != nil { - d.Set("storage_mb", (*storage.StorageSizeGB * 1024)) + if storage := props.Storage; storage != nil { + if storage.AutoGrow != nil { + d.Set("auto_grow_enabled", *storage.AutoGrow == servers.StorageAutoGrowEnabled) + } + + if storage.StorageSizeGB != nil { + d.Set("storage_mb", (*storage.StorageSizeGB * 1024)) + } } if backup := props.Backup; backup != nil { @@ -723,7 +735,7 @@ func resourcePostgresqlFlexibleServerUpdate(d *pluginsdk.ResourceData, meta inte parameters.Properties.AuthConfig = expandFlexibleServerAuthConfig(d.Get("authentication").([]interface{})) } - if d.HasChange("storage_mb") { + if d.HasChange("auto_grow_enabled") || d.HasChange("storage_mb") { // TODO remove the additional update after https://github.com/Azure/azure-rest-api-specs/issues/22867 is fixed storageUpdateParameters := servers.ServerForUpdate{ Properties: &servers.ServerPropertiesForUpdate{ @@ -732,7 +744,7 @@ func resourcePostgresqlFlexibleServerUpdate(d *pluginsdk.ResourceData, meta inte } if err := client.UpdateThenPoll(ctx, *id, storageUpdateParameters); err != nil { - return fmt.Errorf("updating `storage_mb` for %s: %+v", *id, err) + return fmt.Errorf("updating `auto_grow_enabled` / `storage_mb` for %s: %+v", *id, err) } } @@ -873,6 +885,12 @@ func expandArmServerMaintenanceWindow(input []interface{}) *servers.MaintenanceW func expandArmServerStorage(d *pluginsdk.ResourceData) *servers.Storage { storage := servers.Storage{} + autoGrow := servers.StorageAutoGrowDisabled + if v, ok := d.GetOk("auto_grow_enabled"); ok && v.(bool) { + autoGrow = servers.StorageAutoGrowEnabled + } + storage.AutoGrow = &autoGrow + if v, ok := d.GetOk("storage_mb"); ok { storage.StorageSizeGB = utils.Int64(int64(v.(int) / 1024)) } diff --git a/internal/services/postgres/postgresql_flexible_server_resource_test.go b/internal/services/postgres/postgresql_flexible_server_resource_test.go index cdce66ac6b9f..1275ae7ba1b9 100644 --- a/internal/services/postgres/postgresql_flexible_server_resource_test.go +++ b/internal/services/postgres/postgresql_flexible_server_resource_test.go @@ -384,6 +384,32 @@ func TestAccPostgresqlFlexibleServer_enableGeoRedundantBackup(t *testing.T) { }) } +func TestAccPostgresqlFlexibleServer_autoGrowEnabled(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_postgresql_flexible_server", "test") + r := PostgresqlFlexibleServerResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.autoGrowEnabled(data, true), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("fqdn").Exists(), + check.That(data.ResourceName).Key("public_network_access_enabled").Exists(), + ), + }, + data.ImportStep("administrator_password", "create_mode"), + { + Config: r.autoGrowEnabled(data, false), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("fqdn").Exists(), + check.That(data.ResourceName).Key("public_network_access_enabled").Exists(), + ), + }, + data.ImportStep("administrator_password", "create_mode"), + }) +} + func (PostgresqlFlexibleServerResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := servers.ParseFlexibleServerID(state.ID) if err != nil { @@ -485,6 +511,8 @@ resource "azurerm_private_dns_zone_virtual_network_link" "test" { private_dns_zone_name = azurerm_private_dns_zone.test.name virtual_network_id = azurerm_virtual_network.test.id resource_group_name = azurerm_resource_group.test.name + + depends_on = [azurerm_subnet.test] } resource "azurerm_postgresql_flexible_server" "test" { @@ -559,6 +587,8 @@ resource "azurerm_private_dns_zone_virtual_network_link" "test" { private_dns_zone_name = azurerm_private_dns_zone.test.name virtual_network_id = azurerm_virtual_network.test.id resource_group_name = azurerm_resource_group.test.name + + depends_on = [azurerm_subnet.test] } resource "azurerm_postgresql_flexible_server" "test" { @@ -1006,3 +1036,22 @@ resource "azurerm_postgresql_flexible_server" "test" { } `, r.cmkTemplate(data), data.RandomInteger, data.Locations.Ternary, data.RandomString, data.RandomString, data.RandomInteger) } + +func (r PostgresqlFlexibleServerResource) autoGrowEnabled(data acceptance.TestData, autoGrowEnabled bool) string { + return fmt.Sprintf(` +%s + +resource "azurerm_postgresql_flexible_server" "test" { + name = "acctest-fs-%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + administrator_login = "adminTerraform" + administrator_password = "QAZwsx123" + storage_mb = 32768 + auto_grow_enabled = %t + version = "12" + sku_name = "GP_Standard_D2s_v3" + zone = "2" +} +`, r.template(data), data.RandomInteger, autoGrowEnabled) +} diff --git a/website/docs/d/postgresql_flexible_server.html.markdown b/website/docs/d/postgresql_flexible_server.html.markdown index 52ee5e20f413..129670a6df2e 100644 --- a/website/docs/d/postgresql_flexible_server.html.markdown +++ b/website/docs/d/postgresql_flexible_server.html.markdown @@ -41,6 +41,8 @@ In addition to the Arguments listed above - the following Attributes are exporte * `administrator_login` - The Administrator login for the PostgreSQL Flexible Server. +* `auto_grow_enabled` - Is the storage auto grow for PostgreSQL Flexible Server enabled? + * `backup_retention_days` - The backup retention days for the PostgreSQL Flexible Server. * `delegated_subnet_id` - The ID of the virtual network subnet to create the PostgreSQL Flexible Server. diff --git a/website/docs/r/postgresql_flexible_server.html.markdown b/website/docs/r/postgresql_flexible_server.html.markdown index 731d341d447a..9995637376b7 100644 --- a/website/docs/r/postgresql_flexible_server.html.markdown +++ b/website/docs/r/postgresql_flexible_server.html.markdown @@ -130,6 +130,8 @@ The following arguments are supported: * `source_server_id` - (Optional) The resource ID of the source PostgreSQL Flexible Server to be restored. Required when `create_mode` is `PointInTimeRestore` or `Replica`. Changing this forces a new PostgreSQL Flexible Server to be created. +* `auto_grow_enabled` - (Optional) Is the storage auto grow for PostgreSQL Flexible Server enabled? Defaults to `false`. + * `storage_mb` - (Optional) The max storage allowed for the PostgreSQL Flexible Server. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4194304`, `8388608`, `16777216` and `33553408`. * `tags` - (Optional) A mapping of tags which should be assigned to the PostgreSQL Flexible Server. From 47dfa8e7bef47544d446da7f2e81d40f7237159d Mon Sep 17 00:00:00 2001 From: kt Date: Fri, 25 Aug 2023 22:59:51 -0700 Subject: [PATCH 062/336] Update CHANGELOG.md #23069 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b147b94ef512..118a5768eedb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,8 @@ ENHANCEMENTS: * `keyvault`: upgrade remaining resources to `2023-02-01` [GH-23089] * `azurerm_batch_pool` - support for `automatic_upgrade_enabled` [GH-23021] -* `azurerm_container_app_environment` - support for `dapr_application_insights_connection_string` [GH-23080] +* `azurerm_container_app_environment` - support for the `dapr_application_insights_connection_string` [GH-23080] +* `azurerm_postgresql_flexible_server` - support for the `auto_grow_enabled` property [GH-23069] * `azurerm_virtual_network_gateway` - increasing the default timeout for create to `90m` [GH-23003] BUG FIXES: From 308d555f99947a0576774e81f2b5813c3ab6ff31 Mon Sep 17 00:00:00 2001 From: Neil Ye Date: Sat, 26 Aug 2023 14:03:07 +0800 Subject: [PATCH 063/336] `azurerm_virtual_hub_connection` - support for `inbound_route_map_id`, `outbound_route_map_id` and `static_vnet_local_route_override_criteria` (#23049) --- .../virtual_hub_connection_resource.go | 79 +++++++++++++--- .../virtual_hub_connection_resource_test.go | 90 +++++++++++++++++++ .../r/virtual_hub_connection.html.markdown | 6 ++ 3 files changed, 163 insertions(+), 12 deletions(-) diff --git a/internal/services/network/virtual_hub_connection_resource.go b/internal/services/network/virtual_hub_connection_resource.go index 8d01e41bb2fc..00a9a2501290 100644 --- a/internal/services/network/virtual_hub_connection_resource.go +++ b/internal/services/network/virtual_hub_connection_resource.go @@ -89,6 +89,18 @@ func resourceVirtualHubConnectionSchema() map[string]*pluginsdk.Schema { AtLeastOneOf: []string{"routing.0.associated_route_table_id", "routing.0.propagated_route_table", "routing.0.static_vnet_route"}, }, + "inbound_route_map_id": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validate.RouteMapID, + }, + + "outbound_route_map_id": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validate.RouteMapID, + }, + "propagated_route_table": { Type: pluginsdk.TypeList, Optional: true, @@ -122,6 +134,17 @@ func resourceVirtualHubConnectionSchema() map[string]*pluginsdk.Schema { AtLeastOneOf: []string{"routing.0.associated_route_table_id", "routing.0.propagated_route_table", "routing.0.static_vnet_route"}, }, + "static_vnet_local_route_override_criteria": { + Type: pluginsdk.TypeString, + Optional: true, + ForceNew: true, + Default: string(network.VnetLocalRouteOverrideCriteriaContains), + ValidateFunc: validation.StringInSlice([]string{ + string(network.VnetLocalRouteOverrideCriteriaContains), + string(network.VnetLocalRouteOverrideCriteriaEqual), + }, false), + }, + //lintignore:XS003 "static_vnet_route": { Type: pluginsdk.TypeList, @@ -304,7 +327,15 @@ func expandVirtualHubConnectionRouting(input []interface{}) *network.RoutingConf } v := input[0].(map[string]interface{}) - result := network.RoutingConfiguration{} + + result := &network.RoutingConfiguration{ + VnetRoutes: &network.VnetRoute{ + StaticRoutes: expandVirtualHubConnectionVnetStaticRoute(v["static_vnet_route"].([]interface{})), + StaticRoutesConfig: &network.StaticRoutesConfig{ + VnetLocalRouteOverrideCriteria: network.VnetLocalRouteOverrideCriteria(v["static_vnet_local_route_override_criteria"].(string)), + }, + }, + } if associatedRouteTableId := v["associated_route_table_id"].(string); associatedRouteTableId != "" { result.AssociatedRouteTable = &network.SubResource{ @@ -312,15 +343,23 @@ func expandVirtualHubConnectionRouting(input []interface{}) *network.RoutingConf } } - if vnetStaticRoute := v["static_vnet_route"].([]interface{}); len(vnetStaticRoute) != 0 { - result.VnetRoutes = expandVirtualHubConnectionVnetStaticRoute(vnetStaticRoute) + if inboundRouteMapId := v["inbound_route_map_id"].(string); inboundRouteMapId != "" { + result.InboundRouteMap = &network.SubResource{ + ID: utils.String(inboundRouteMapId), + } + } + + if outboundRouteMapId := v["outbound_route_map_id"].(string); outboundRouteMapId != "" { + result.OutboundRouteMap = &network.SubResource{ + ID: utils.String(outboundRouteMapId), + } } if propagatedRouteTable := v["propagated_route_table"].([]interface{}); len(propagatedRouteTable) != 0 { result.PropagatedRouteTables = expandVirtualHubConnectionPropagatedRouteTable(propagatedRouteTable) } - return &result + return result } func expandVirtualHubConnectionPropagatedRouteTable(input []interface{}) *network.PropagatedRouteTable { @@ -343,9 +382,9 @@ func expandVirtualHubConnectionPropagatedRouteTable(input []interface{}) *networ return &result } -func expandVirtualHubConnectionVnetStaticRoute(input []interface{}) *network.VnetRoute { +func expandVirtualHubConnectionVnetStaticRoute(input []interface{}) *[]network.StaticRoute { if len(input) == 0 { - return &network.VnetRoute{} + return nil } results := make([]network.StaticRoute, 0) @@ -374,9 +413,7 @@ func expandVirtualHubConnectionVnetStaticRoute(input []interface{}) *network.Vne results = append(results, result) } - return &network.VnetRoute{ - StaticRoutes: &results, - } + return &results } func expandIDsToSubResources(input []interface{}) *[]network.SubResource { @@ -401,11 +438,29 @@ func flattenVirtualHubConnectionRouting(input *network.RoutingConfiguration) []i associatedRouteTableId = *input.AssociatedRouteTable.ID } + inboundRouteMapId := "" + if input.InboundRouteMap != nil && input.InboundRouteMap.ID != nil { + inboundRouteMapId = *input.InboundRouteMap.ID + } + + outboundRouteMapId := "" + if input.OutboundRouteMap != nil && input.OutboundRouteMap.ID != nil { + outboundRouteMapId = *input.OutboundRouteMap.ID + } + + staticVnetLocalRouteOverrideCriteria := "" + if input.VnetRoutes != nil && input.VnetRoutes.StaticRoutesConfig != nil && input.VnetRoutes.StaticRoutesConfig.VnetLocalRouteOverrideCriteria != "" { + staticVnetLocalRouteOverrideCriteria = string(input.VnetRoutes.StaticRoutesConfig.VnetLocalRouteOverrideCriteria) + } + return []interface{}{ map[string]interface{}{ - "associated_route_table_id": associatedRouteTableId, - "propagated_route_table": flattenVirtualHubConnectionPropagatedRouteTable(input.PropagatedRouteTables), - "static_vnet_route": flattenVirtualHubConnectionVnetStaticRoute(input.VnetRoutes), + "associated_route_table_id": associatedRouteTableId, + "inbound_route_map_id": inboundRouteMapId, + "outbound_route_map_id": outboundRouteMapId, + "propagated_route_table": flattenVirtualHubConnectionPropagatedRouteTable(input.PropagatedRouteTables), + "static_vnet_route": flattenVirtualHubConnectionVnetStaticRoute(input.VnetRoutes), + "static_vnet_local_route_override_criteria": staticVnetLocalRouteOverrideCriteria, }, } } diff --git a/internal/services/network/virtual_hub_connection_resource_test.go b/internal/services/network/virtual_hub_connection_resource_test.go index b749e68d7b68..988f11283c36 100644 --- a/internal/services/network/virtual_hub_connection_resource_test.go +++ b/internal/services/network/virtual_hub_connection_resource_test.go @@ -257,6 +257,22 @@ func TestAccVirtualHubConnection_updateRoutingConfiguration(t *testing.T) { }) } +func TestAccVirtualHubConnection_routeMapAndStaticVnetLocalRouteOverrideCriteria(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_virtual_hub_connection", "test") + r := VirtualHubConnectionResource{} + nameSuffix := randString() + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.routeMapAndStaticVnetLocalRouteOverrideCriteria(data, nameSuffix), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func (t VirtualHubConnectionResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := parse.HubVirtualNetworkConnectionID(state.ID) if err != nil { @@ -576,3 +592,77 @@ resource "azurerm_virtual_hub_connection" "test" { } `, r.template(data), data.RandomInteger) } + +func (r VirtualHubConnectionResource) routeMapAndStaticVnetLocalRouteOverrideCriteria(data acceptance.TestData, nameSuffix string) string { + return fmt.Sprintf(` +%[1]s + +resource "azurerm_route_map" "test" { + name = "acctestrm-%[2]s" + virtual_hub_id = azurerm_virtual_hub.test.id + + rule { + name = "rule1" + next_step_if_matched = "Continue" + + action { + type = "Add" + + parameter { + as_path = ["22334"] + } + } + + match_criterion { + match_condition = "Contains" + route_prefix = ["10.0.0.0/8"] + } + } +} + +resource "azurerm_route_map" "test2" { + name = "acctestrmn-%[2]s" + virtual_hub_id = azurerm_virtual_hub.test.id + + rule { + name = "rule1" + next_step_if_matched = "Continue" + + action { + type = "Add" + + parameter { + as_path = ["22334"] + } + } + + match_criterion { + match_condition = "Contains" + route_prefix = ["10.0.0.0/8"] + } + } +} + +resource "azurerm_virtual_hub_connection" "test" { + name = "acctest-vhubconn-%[3]d" + virtual_hub_id = azurerm_virtual_hub.test.id + remote_virtual_network_id = azurerm_virtual_network.test.id + + routing { + inbound_route_map_id = azurerm_route_map.test.id + outbound_route_map_id = azurerm_route_map.test2.id + static_vnet_local_route_override_criteria = "Equal" + + propagated_route_table { + labels = ["label3"] + } + + static_vnet_route { + name = "testvnetroute6" + address_prefixes = ["10.0.6.0/24", "10.0.7.0/24"] + next_hop_ip_address = "10.0.6.5" + } + } +} +`, r.template(data), nameSuffix, data.RandomInteger) +} diff --git a/website/docs/r/virtual_hub_connection.html.markdown b/website/docs/r/virtual_hub_connection.html.markdown index b5c059221168..8b76dae2c933 100644 --- a/website/docs/r/virtual_hub_connection.html.markdown +++ b/website/docs/r/virtual_hub_connection.html.markdown @@ -68,8 +68,14 @@ A `routing` block supports the following: * `associated_route_table_id` - (Optional) The ID of the route table associated with this Virtual Hub connection. +* `inbound_route_map_id` - (Optional) The resource ID of the Route Map associated with this Routing Configuration for inbound learned routes. + +* `outbound_route_map_id` - (Optional) The resource ID of the Route Map associated with this Routing Configuration for outbound advertised routes. + * `propagated_route_table` - (Optional) A `propagated_route_table` block as defined below. +* `static_vnet_local_route_override_criteria` - (Optional) The static VNet local route override criteria that is used to determine whether NVA in spoke VNet is bypassed for traffic with destination in spoke VNet. Possible values are `Contains` and `Equal`. Defaults to `Contains`. Changing this forces a new resource to be created. + * `static_vnet_route` - (Optional) A `static_vnet_route` block as defined below. --- From 56d73473cb3f63f445c2abc759be725b46f82514 Mon Sep 17 00:00:00 2001 From: kt Date: Fri, 25 Aug 2023 23:03:45 -0700 Subject: [PATCH 064/336] Update CHANGELOG.md #23049 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 118a5768eedb..959844f3f1f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ ENHANCEMENTS: * `azurerm_container_app_environment` - support for the `dapr_application_insights_connection_string` [GH-23080] * `azurerm_postgresql_flexible_server` - support for the `auto_grow_enabled` property [GH-23069] * `azurerm_virtual_network_gateway` - increasing the default timeout for create to `90m` [GH-23003] +* `azurerm_virtual_hub_connection` - support for `inbound_route_map_id`, `outbound_route_map_id`, and `static_vnet_local_route_override_criteria` properties [GH-23049] BUG FIXES: From a3fbd6fdad32c30d25d195040c41c2c66de8b3e5 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Mon, 28 Aug 2023 12:46:52 -0700 Subject: [PATCH 065/336] Doc Fix: `azurerm_service_bus_namespace` - network_rule-set -> network_rule_set (#23102) --- website/docs/r/servicebus_namespace.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/r/servicebus_namespace.html.markdown b/website/docs/r/servicebus_namespace.html.markdown index 038095813da1..69765738c648 100644 --- a/website/docs/r/servicebus_namespace.html.markdown +++ b/website/docs/r/servicebus_namespace.html.markdown @@ -91,7 +91,7 @@ A `customer_managed_key` block supports the following: --- -A `network_rule-set` block supports the following: +A `network_rule_set` block supports the following: * `default_action` - (Optional) Specifies the default action for the Network Rule Set. Possible values are `Allow` and `Deny`. Defaults to `Deny`. From 0259a237655ecd73cdc89a007c8d6762af49788a Mon Sep 17 00:00:00 2001 From: Jon Jenkins Date: Mon, 28 Aug 2023 22:11:57 +0100 Subject: [PATCH 066/336] fixed security_group_association for bastion example --- .../virtual_machine/bastion-box/1-dependencies.tf | 12 ++++++++++-- .../virtual_machine/bastion-box/main.tf | 6 +++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/examples/virtual-machines/virtual_machine/bastion-box/1-dependencies.tf b/examples/virtual-machines/virtual_machine/bastion-box/1-dependencies.tf index 721e26ee4030..27225c67d218 100644 --- a/examples/virtual-machines/virtual_machine/bastion-box/1-dependencies.tf +++ b/examples/virtual-machines/virtual_machine/bastion-box/1-dependencies.tf @@ -37,7 +37,11 @@ resource "azurerm_subnet" "bastion" { virtual_network_name = "${azurerm_virtual_network.example.name}" resource_group_name = "${azurerm_resource_group.example.name}" address_prefixes = ["10.0.0.128/25"] - network_security_group_id = "${azurerm_network_security_group.bastion.id}" +} + +resource "azurerm_subnet_network_security_group_association" "bastion" { + subnet_id = azurerm_subnet.bastion.id + network_security_group_id = azurerm_network_security_group.bastion.id } resource "azurerm_network_security_group" "web" { @@ -77,5 +81,9 @@ resource "azurerm_subnet" "web" { virtual_network_name = "${azurerm_virtual_network.example.name}" resource_group_name = "${azurerm_resource_group.example.name}" address_prefixes = ["10.0.1.0/24"] - network_security_group_id = "${azurerm_network_security_group.web.id}" +} + +resource "azurerm_subnet_network_security_group_association" "web" { + subnet_id = azurerm_subnet.web.id + network_security_group_id = azurerm_network_security_group.web.id } diff --git a/examples/virtual-machines/virtual_machine/bastion-box/main.tf b/examples/virtual-machines/virtual_machine/bastion-box/main.tf index 63b250532650..af3737094b59 100644 --- a/examples/virtual-machines/virtual_machine/bastion-box/main.tf +++ b/examples/virtual-machines/virtual_machine/bastion-box/main.tf @@ -14,7 +14,6 @@ resource "azurerm_network_interface" "example" { name = "${azurerm_resource_group.example.name}-nic" location = "${azurerm_resource_group.example.location}" resource_group_name = "${azurerm_resource_group.example.name}" - network_security_group_id = "${azurerm_network_security_group.bastion.id}" ip_configuration { name = "internal" @@ -24,6 +23,11 @@ resource "azurerm_network_interface" "example" { } } +resource "azurerm_network_interface_security_group_association" "example" { + network_interface_id = azurerm_network_interface.example.id + network_security_group_id = azurerm_network_security_group.bastion.id +} + resource "azurerm_public_ip" "example" { name = "${var.prefix}-bastionpip" location = "${azurerm_resource_group.example.location}" From 5037aae89c49f386a4be57fc8c89e2496b17009b Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 28 Aug 2023 14:52:39 -0700 Subject: [PATCH 067/336] rename resource groups prefixed with testacc to acctest for easier cleanup --- .../batch/batch_account_data_source_test.go | 10 ++--- .../batch/batch_account_resource_test.go | 34 ++++++++-------- .../batch_certificate_data_source_test.go | 2 +- .../batch/batch_certificate_resource_test.go | 8 ++-- .../services/batch/batch_job_resource_test.go | 2 +- .../batch/batch_pool_data_source_test.go | 2 +- .../batch/batch_pool_resource_test.go | 40 +++++++++---------- ...frontdoor_firewall_policy_resource_test.go | 6 +-- ...signment_management_group_resource_test.go | 2 +- .../assignment_subscription_resource_test.go | 2 +- 10 files changed, 54 insertions(+), 54 deletions(-) diff --git a/internal/services/batch/batch_account_data_source_test.go b/internal/services/batch/batch_account_data_source_test.go index 66988c73ca7e..0f075549db4c 100644 --- a/internal/services/batch/batch_account_data_source_test.go +++ b/internal/services/batch/batch_account_data_source_test.go @@ -107,7 +107,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -132,7 +132,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -177,7 +177,7 @@ data "azuread_service_principal" "test" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -248,7 +248,7 @@ data "azurerm_client_config" "current" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%[1]d" + name = "acctestRG-batch-%[1]d" location = "%[2]s" } @@ -361,7 +361,7 @@ data "azurerm_client_config" "current" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%[1]d" + name = "acctestRG-batch-%[1]d" location = "%[2]s" } diff --git a/internal/services/batch/batch_account_resource_test.go b/internal/services/batch/batch_account_resource_test.go index af2977d5a722..e7c48b035088 100644 --- a/internal/services/batch/batch_account_resource_test.go +++ b/internal/services/batch/batch_account_resource_test.go @@ -381,7 +381,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -401,7 +401,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -438,7 +438,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -474,7 +474,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -517,7 +517,7 @@ data "azuread_service_principal" "test" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -569,7 +569,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -592,7 +592,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -640,7 +640,7 @@ data "azurerm_client_config" "current" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%[1]d" + name = "acctestRG-batch-%[1]d" location = "%[2]s" } @@ -748,7 +748,7 @@ data "azurerm_client_config" "current" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%[1]d" + name = "acctestRG-batch-%[1]d" location = "%[2]s" } @@ -848,7 +848,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -885,7 +885,7 @@ data "azurerm_client_config" "current" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -913,7 +913,7 @@ data "azurerm_client_config" "current" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -937,7 +937,7 @@ data "azurerm_client_config" "current" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -982,7 +982,7 @@ data "azurerm_client_config" "current" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -1027,7 +1027,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -1055,7 +1055,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -1100,7 +1100,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } diff --git a/internal/services/batch/batch_certificate_data_source_test.go b/internal/services/batch/batch_certificate_data_source_test.go index 71eb5da10dec..7e59149ca8b2 100644 --- a/internal/services/batch/batch_certificate_data_source_test.go +++ b/internal/services/batch/batch_certificate_data_source_test.go @@ -38,7 +38,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } diff --git a/internal/services/batch/batch_certificate_resource_test.go b/internal/services/batch/batch_certificate_resource_test.go index eac3ed6faba9..2538dbc4d7b5 100644 --- a/internal/services/batch/batch_certificate_resource_test.go +++ b/internal/services/batch/batch_certificate_resource_test.go @@ -106,7 +106,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -136,7 +136,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -165,7 +165,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -194,7 +194,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } diff --git a/internal/services/batch/batch_job_resource_test.go b/internal/services/batch/batch_job_resource_test.go index 6e0e88e7411e..11efbe2e7de2 100644 --- a/internal/services/batch/batch_job_resource_test.go +++ b/internal/services/batch/batch_job_resource_test.go @@ -178,7 +178,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batchjob-%[1]d" + name = "acctestRG-batchjob-%[1]d" location = "west europe" } diff --git a/internal/services/batch/batch_pool_data_source_test.go b/internal/services/batch/batch_pool_data_source_test.go index 3dff04d1fb1b..d34ce3486059 100644 --- a/internal/services/batch/batch_pool_data_source_test.go +++ b/internal/services/batch/batch_pool_data_source_test.go @@ -62,7 +62,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } resource "azurerm_virtual_network" "test" { diff --git a/internal/services/batch/batch_pool_resource_test.go b/internal/services/batch/batch_pool_resource_test.go index face843cc49e..7f15ee02f76a 100644 --- a/internal/services/batch/batch_pool_resource_test.go +++ b/internal/services/batch/batch_pool_resource_test.go @@ -779,7 +779,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -841,7 +841,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -900,7 +900,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -964,7 +964,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -1002,7 +1002,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -1075,7 +1075,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -1210,7 +1210,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%[1]d" + name = "acctestRG-batch-%[1]d" location = "%[2]s" } @@ -1268,7 +1268,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccbatch%d" + name = "acctestbatch%d" location = "%s" } @@ -1330,7 +1330,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccbatch%d" + name = "acctestbatch%d" location = "%s" } @@ -1392,7 +1392,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccbatch%d" + name = "acctestbatch%d" location = "%s" } @@ -1454,7 +1454,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccbatch%d" + name = "acctestbatch%d" location = "%s" } @@ -1515,7 +1515,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccbatch%d" + name = "acctestbatch%d" location = "%s" } @@ -1581,7 +1581,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccbatch%d" + name = "acctestbatch%d" location = "%s" } @@ -1650,7 +1650,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccbatch%d" + name = "acctestbatch%d" location = "%s" } @@ -1705,7 +1705,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccbatch%d" + name = "acctestbatch%d" location = "%s" } @@ -1772,7 +1772,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -1942,7 +1942,7 @@ resource "azurerm_batch_pool" "test" { func (BatchPoolResource) networkConfiguration(data acceptance.TestData) string { return fmt.Sprintf(` resource "azurerm_resource_group" "test" { - name = "testaccRG-%[1]d-batchpool" + name = "acctestRG-%[1]d-batchpool" location = "%[2]s" } @@ -2260,7 +2260,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } @@ -2373,7 +2373,7 @@ provider "azurerm" { features {} } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } resource "azurerm_batch_account" "test" { @@ -2495,7 +2495,7 @@ provider "azurerm" { features {} } resource "azurerm_resource_group" "test" { - name = "testaccRG-batch-%d" + name = "acctestRG-batch-%d" location = "%s" } resource "azurerm_network_security_group" "test" { diff --git a/internal/services/frontdoor/frontdoor_firewall_policy_resource_test.go b/internal/services/frontdoor/frontdoor_firewall_policy_resource_test.go index 065ba3eda2b9..ebb1d42424b7 100644 --- a/internal/services/frontdoor/frontdoor_firewall_policy_resource_test.go +++ b/internal/services/frontdoor/frontdoor_firewall_policy_resource_test.go @@ -130,7 +130,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-%d" + name = "acctestRG-%d" location = "%s" } @@ -162,7 +162,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-%d" + name = "acctestRG-%d" location = "%s" } @@ -226,7 +226,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-%d" + name = "acctestRG-%d" location = "%[2]s" } diff --git a/internal/services/policy/assignment_management_group_resource_test.go b/internal/services/policy/assignment_management_group_resource_test.go index 8962a7d3b734..e1af4a59101a 100644 --- a/internal/services/policy/assignment_management_group_resource_test.go +++ b/internal/services/policy/assignment_management_group_resource_test.go @@ -894,7 +894,7 @@ data "azurerm_policy_set_definition" "test" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-pa-%[2]s" + name = "acctestRG-pa-%[2]s" location = %[3]q } diff --git a/internal/services/policy/assignment_subscription_resource_test.go b/internal/services/policy/assignment_subscription_resource_test.go index 734cd3899e08..b240a2af003e 100644 --- a/internal/services/policy/assignment_subscription_resource_test.go +++ b/internal/services/policy/assignment_subscription_resource_test.go @@ -760,7 +760,7 @@ data "azurerm_policy_set_definition" "test" { } resource "azurerm_resource_group" "test" { - name = "testaccRG-pa-%[2]d" + name = "acctestRG-pa-%[2]d" location = %[3]q } From 1bbb2960d5c4721d754df5b5ca03737fb6041179 Mon Sep 17 00:00:00 2001 From: neil-yechenwei Date: Tue, 29 Aug 2023 15:50:45 +0800 Subject: [PATCH 068/336] Upgrade managed cassandra API version from 2022-05-15 to 2023-04-15 --- internal/services/cosmos/client/client.go | 15 +-- .../cosmosdb_cassandra_cluster_resource.go | 10 +- ...osmosdb_cassandra_cluster_resource_test.go | 4 +- .../cosmosdb_cassandra_datacenter_resource.go | 115 +++++++++--------- ...osdb_cassandra_datacenter_resource_test.go | 8 +- .../managedcassandras/README.md | 6 +- .../managedcassandras/client.go | 0 .../managedcassandras/constants.go | 3 + .../managedcassandras/id_cassandracluster.go | 0 .../managedcassandras/id_datacenter.go | 0 ..._cassandraclusterscreateupdate_autorest.go | 0 ...od_cassandraclustersdeallocate_autorest.go | 0 ...method_cassandraclustersdelete_autorest.go | 0 .../method_cassandraclustersget_autorest.go | 0 ...cassandraclustersinvokecommand_autorest.go | 0 ...draclusterslistbyresourcegroup_autorest.go | 0 ...ndraclusterslistbysubscription_autorest.go | 0 .../method_cassandraclustersstart_autorest.go | 0 ...method_cassandraclustersstatus_autorest.go | 0 ...method_cassandraclustersupdate_autorest.go | 0 ...ssandradatacenterscreateupdate_autorest.go | 0 ...hod_cassandradatacentersdelete_autorest.go | 0 ...method_cassandradatacentersget_autorest.go | 0 ...ethod_cassandradatacenterslist_autorest.go | 0 ...hod_cassandradatacentersupdate_autorest.go | 0 ...odel_authenticationmethodldapproperties.go | 15 +++ .../model_cassandraclusterpublicstatus.go | 1 + ...raclusterpublicstatusdatacentersinlined.go | 0 ...licstatusdatacentersinlinednodesinlined.go | 1 + .../managedcassandras/model_cassandraerror.go | 11 ++ .../managedcassandras/model_certificate.go | 0 .../model_clusterresource.go | 0 .../model_clusterresourceproperties.go | 1 + .../managedcassandras/model_commandoutput.go | 0 .../model_commandpostbody.go | 0 .../model_connectionerror.go | 0 .../model_datacenterresource.go | 0 .../model_datacenterresourceproperties.go | 27 ++-- .../managedcassandras/model_listclusters.go | 0 .../model_listdatacenters.go | 0 .../model_managedcassandrareaperstatus.go | 0 .../managedcassandras/model_seednode.go | 0 .../managedcassandras/version.go | 2 +- vendor/modules.txt | 2 +- 44 files changed, 125 insertions(+), 96 deletions(-) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/README.md (97%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/constants.go (97%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/id_cassandracluster.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/id_datacenter.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandraclusterscreateupdate_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandraclustersdeallocate_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandraclustersdelete_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandraclustersget_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandraclustersinvokecommand_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandraclusterslistbyresourcegroup_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandraclusterslistbysubscription_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandraclustersstart_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandraclustersstatus_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandraclustersupdate_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandradatacenterscreateupdate_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandradatacentersdelete_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandradatacentersget_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandradatacenterslist_autorest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/method_cassandradatacentersupdate_autorest.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_authenticationmethodldapproperties.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_cassandraclusterpublicstatus.go (86%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_cassandraclusterpublicstatusdatacentersinlined.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_cassandraclusterpublicstatusdatacentersinlinednodesinlined.go (94%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_cassandraerror.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_certificate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_clusterresource.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_clusterresourceproperties.go (95%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_commandoutput.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_commandpostbody.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_connectionerror.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_datacenterresource.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_datacenterresourceproperties.go (53%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_listclusters.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_listdatacenters.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_managedcassandrareaperstatus.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/model_seednode.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/{2022-05-15 => 2023-04-15}/managedcassandras/version.go (88%) diff --git a/internal/services/cosmos/client/client.go b/internal/services/cosmos/client/client.go index 476227d8c0ff..d900f944c9c8 100644 --- a/internal/services/cosmos/client/client.go +++ b/internal/services/cosmos/client/client.go @@ -7,10 +7,10 @@ import ( "fmt" "github.com/Azure/azure-sdk-for-go/services/cosmos-db/mgmt/2021-10-15/documentdb" // nolint: staticcheck - "github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras" "github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/sqldedicatedgateway" "github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-11-15/mongorbacs" "github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/cosmosdb" + "github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras" "github.com/hashicorp/go-azure-sdk/resource-manager/postgresqlhsc/2022-11-08/clusters" "github.com/hashicorp/go-azure-sdk/resource-manager/postgresqlhsc/2022-11-08/configurations" "github.com/hashicorp/go-azure-sdk/resource-manager/postgresqlhsc/2022-11-08/firewallrules" @@ -20,14 +20,13 @@ import ( type Client struct { CassandraClient *documentdb.CassandraResourcesClient - CassandraClustersClient *managedcassandras.ManagedCassandrasClient - CassandraDatacentersClient *documentdb.CassandraDataCentersClient ClustersClient *clusters.ClustersClient ConfigurationsClient *configurations.ConfigurationsClient CosmosDBClient *cosmosdb.CosmosDBClient DatabaseClient *documentdb.DatabaseAccountsClient FirewallRulesClient *firewallrules.FirewallRulesClient GremlinClient *documentdb.GremlinResourcesClient + ManagedCassandraClient *managedcassandras.ManagedCassandrasClient MongoDbClient *documentdb.MongoDBResourcesClient MongoRBACClient *mongorbacs.MongorbacsClient NotebookWorkspaceClient *documentdb.NotebookWorkspacesClient @@ -43,11 +42,8 @@ func NewClient(o *common.ClientOptions) (*Client, error) { cassandraClient := documentdb.NewCassandraResourcesClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId) o.ConfigureClient(&cassandraClient.Client, o.ResourceManagerAuthorizer) - cassandraClustersClient := managedcassandras.NewManagedCassandrasClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&cassandraClustersClient.Client, o.ResourceManagerAuthorizer) - - cassandraDatacentersClient := documentdb.NewCassandraDataCentersClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId) - o.ConfigureClient(&cassandraDatacentersClient.Client, o.ResourceManagerAuthorizer) + managedCassandraClient := managedcassandras.NewManagedCassandrasClientWithBaseURI(o.ResourceManagerEndpoint) + o.ConfigureClient(&managedCassandraClient.Client, o.ResourceManagerAuthorizer) clustersClient, err := clusters.NewClustersClientWithBaseURI(o.Environment.ResourceManager) if err != nil { @@ -108,8 +104,7 @@ func NewClient(o *common.ClientOptions) (*Client, error) { return &Client{ CassandraClient: &cassandraClient, - CassandraClustersClient: &cassandraClustersClient, - CassandraDatacentersClient: &cassandraDatacentersClient, + ManagedCassandraClient: &managedCassandraClient, ClustersClient: clustersClient, ConfigurationsClient: configurationsClient, CosmosDBClient: &cosmosdbClient, diff --git a/internal/services/cosmos/cosmosdb_cassandra_cluster_resource.go b/internal/services/cosmos/cosmosdb_cassandra_cluster_resource.go index 54a8a89f8c47..e6c56f9011b0 100644 --- a/internal/services/cosmos/cosmosdb_cassandra_cluster_resource.go +++ b/internal/services/cosmos/cosmosdb_cassandra_cluster_resource.go @@ -16,7 +16,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" - "github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras" + "github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" @@ -142,7 +142,7 @@ func resourceCassandraCluster() *pluginsdk.Resource { } func resourceCassandraClusterCreate(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Cosmos.CassandraClustersClient + client := meta.(*clients.Client).Cosmos.ManagedCassandraClient subscriptionId := meta.(*clients.Client).Account.SubscriptionId ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -205,7 +205,7 @@ func resourceCassandraClusterCreate(d *pluginsdk.ResourceData, meta interface{}) } func resourceCassandraClusterRead(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Cosmos.CassandraClustersClient + client := meta.(*clients.Client).Cosmos.ManagedCassandraClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -269,7 +269,7 @@ func resourceCassandraClusterRead(d *pluginsdk.ResourceData, meta interface{}) e } func resourceCassandraClusterUpdate(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Cosmos.CassandraClustersClient + client := meta.(*clients.Client).Cosmos.ManagedCassandraClient subscriptionId := meta.(*clients.Client).Account.SubscriptionId ctx, cancel := timeouts.ForUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -338,7 +338,7 @@ func resourceCassandraClusterUpdate(d *pluginsdk.ResourceData, meta interface{}) } func resourceCassandraClusterDelete(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Cosmos.CassandraClustersClient + client := meta.(*clients.Client).Cosmos.ManagedCassandraClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/internal/services/cosmos/cosmosdb_cassandra_cluster_resource_test.go b/internal/services/cosmos/cosmosdb_cassandra_cluster_resource_test.go index 1b81a69cd569..e6a2b93e0161 100644 --- a/internal/services/cosmos/cosmosdb_cassandra_cluster_resource_test.go +++ b/internal/services/cosmos/cosmosdb_cassandra_cluster_resource_test.go @@ -8,7 +8,7 @@ import ( "fmt" "testing" - "github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras" + "github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" @@ -95,7 +95,7 @@ func (t CassandraClusterResource) Exists(ctx context.Context, clients *clients.C return nil, err } - resp, err := clients.Cosmos.CassandraClustersClient.CassandraClustersGet(ctx, *id) + resp, err := clients.Cosmos.ManagedCassandraClient.CassandraClustersGet(ctx, *id) if err != nil { return nil, fmt.Errorf("reading %q: %+v", id, err) } diff --git a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go index 94f46250fab1..7ab7f053e36a 100644 --- a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go +++ b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go @@ -9,11 +9,11 @@ import ( "log" "time" - "github.com/Azure/azure-sdk-for-go/services/cosmos-db/mgmt/2021-10-15/documentdb" // nolint: staticcheck "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" @@ -120,37 +120,37 @@ func resourceCassandraDatacenter() *pluginsdk.Resource { } func resourceCassandraDatacenterCreate(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Cosmos.CassandraDatacentersClient + client := meta.(*clients.Client).Cosmos.ManagedCassandraClient ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() - clusterId, _ := parse.CassandraClusterID(d.Get("cassandra_cluster_id").(string)) - id := parse.NewCassandraDatacenterID(clusterId.SubscriptionId, clusterId.ResourceGroup, clusterId.Name, d.Get("name").(string)) + clusterId, _ := managedcassandras.ParseCassandraClusterID(d.Get("cassandra_cluster_id").(string)) + id := managedcassandras.NewDataCenterID(clusterId.SubscriptionId, clusterId.ResourceGroupName, clusterId.CassandraClusterName, d.Get("name").(string)) - existing, err := client.Get(ctx, id.ResourceGroup, id.CassandraClusterName, id.DataCenterName) + existing, err := client.CassandraDataCentersGet(ctx, id) if err != nil { - if !utils.ResponseWasNotFound(existing.Response) { + if !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for presence of existing %s: %+v", id, err) } } - if !utils.ResponseWasNotFound(existing.Response) { + if !response.WasNotFound(existing.HttpResponse) { return tf.ImportAsExistsError("azurerm_cosmosdb_cassandra_datacenter", id.ID()) } - body := documentdb.DataCenterResource{ - Properties: &documentdb.DataCenterResourceProperties{ - DelegatedSubnetID: utils.String(d.Get("delegated_management_subnet_id").(string)), - NodeCount: utils.Int32(int32(d.Get("node_count").(int))), + body := managedcassandras.DataCenterResource{ + Properties: &managedcassandras.DataCenterResourceProperties{ + DelegatedSubnetId: utils.String(d.Get("delegated_management_subnet_id").(string)), + NodeCount: utils.Int64(int64(d.Get("node_count").(int))), Sku: utils.String(d.Get("sku_name").(string)), AvailabilityZone: utils.Bool(d.Get("availability_zones_enabled").(bool)), - DiskCapacity: utils.Int32(int32(d.Get("disk_count").(int))), + DiskCapacity: utils.Int64(int64(d.Get("disk_count").(int))), DiskSku: utils.String(d.Get("disk_sku").(string)), DataCenterLocation: utils.String(azure.NormalizeLocation(d.Get("location").(string))), }, } if v, ok := d.GetOk("backup_storage_customer_key_uri"); ok { - body.Properties.BackupStorageCustomerKeyURI = utils.String(v.(string)) + body.Properties.BackupStorageCustomerKeyUri = utils.String(v.(string)) } if v, ok := d.GetOk("base64_encoded_yaml_fragment"); ok { @@ -158,35 +158,31 @@ func resourceCassandraDatacenterCreate(d *pluginsdk.ResourceData, meta interface } if v, ok := d.GetOk("managed_disk_customer_key_uri"); ok { - body.Properties.ManagedDiskCustomerKeyURI = utils.String(v.(string)) + body.Properties.ManagedDiskCustomerKeyUri = utils.String(v.(string)) } - future, err := client.CreateUpdate(ctx, id.ResourceGroup, id.CassandraClusterName, id.DataCenterName, body) + err = client.CassandraDataCentersCreateUpdateThenPoll(ctx, id, body) if err != nil { return fmt.Errorf("creating %q: %+v", id, err) } - if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting on creation for %q: %+v", id, err) - } - d.SetId(id.ID()) return resourceCassandraDatacenterRead(d, meta) } func resourceCassandraDatacenterRead(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Cosmos.CassandraDatacentersClient + client := meta.(*clients.Client).Cosmos.ManagedCassandraClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.CassandraDatacenterID(d.Id()) + id, err := managedcassandras.ParseDataCenterID(d.Id()) if err != nil { return err } - resp, err := client.Get(ctx, id.ResourceGroup, id.CassandraClusterName, id.DataCenterName) + resp, err := client.CassandraDataCentersGet(ctx, *id) if err != nil { - if utils.ResponseWasNotFound(resp.Response) { + if response.WasNotFound(resp.HttpResponse) { log.Printf("[INFO] Error reading %q - removing from state", id) d.SetId("") return nil @@ -195,47 +191,49 @@ func resourceCassandraDatacenterRead(d *pluginsdk.ResourceData, meta interface{} return fmt.Errorf("reading %q: %+v", id, err) } - clusterId := parse.NewCassandraClusterID(id.SubscriptionId, id.ResourceGroup, id.CassandraClusterName) + clusterId := managedcassandras.NewCassandraClusterID(id.SubscriptionId, id.ResourceGroupName, id.CassandraClusterName) d.Set("name", id.DataCenterName) d.Set("cassandra_cluster_id", clusterId.ID()) - if props := resp.Properties; props != nil { - if res := props; res != nil { - d.Set("delegated_management_subnet_id", props.DelegatedSubnetID) - d.Set("location", location.NormalizeNilable(props.DataCenterLocation)) - d.Set("backup_storage_customer_key_uri", props.BackupStorageCustomerKeyURI) - d.Set("base64_encoded_yaml_fragment", props.Base64EncodedCassandraYamlFragment) - d.Set("managed_disk_customer_key_uri", props.ManagedDiskCustomerKeyURI) - d.Set("node_count", props.NodeCount) - d.Set("disk_count", int(*props.DiskCapacity)) - d.Set("disk_sku", props.DiskSku) - d.Set("sku_name", props.Sku) - d.Set("availability_zones_enabled", props.AvailabilityZone) + if model := resp.Model; model != nil { + if props := model.Properties; props != nil { + if res := props; res != nil { + d.Set("delegated_management_subnet_id", props.DelegatedSubnetId) + d.Set("location", location.NormalizeNilable(props.DataCenterLocation)) + d.Set("backup_storage_customer_key_uri", props.BackupStorageCustomerKeyUri) + d.Set("base64_encoded_yaml_fragment", props.Base64EncodedCassandraYamlFragment) + d.Set("managed_disk_customer_key_uri", props.ManagedDiskCustomerKeyUri) + d.Set("node_count", props.NodeCount) + d.Set("disk_count", int(*props.DiskCapacity)) + d.Set("disk_sku", props.DiskSku) + d.Set("sku_name", props.Sku) + d.Set("availability_zones_enabled", props.AvailabilityZone) + } } } return nil } func resourceCassandraDatacenterUpdate(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Cosmos.CassandraDatacentersClient + client := meta.(*clients.Client).Cosmos.ManagedCassandraClient ctx, cancel := timeouts.ForUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.CassandraDatacenterID(d.Id()) + id, err := managedcassandras.ParseDataCenterID(d.Id()) if err != nil { return err } - body := documentdb.DataCenterResource{ - Properties: &documentdb.DataCenterResourceProperties{ - DelegatedSubnetID: utils.String(d.Get("delegated_management_subnet_id").(string)), - NodeCount: utils.Int32(int32(d.Get("node_count").(int))), + body := managedcassandras.DataCenterResource{ + Properties: &managedcassandras.DataCenterResourceProperties{ + DelegatedSubnetId: utils.String(d.Get("delegated_management_subnet_id").(string)), + NodeCount: utils.Int64(int64(d.Get("node_count").(int))), DataCenterLocation: utils.String(azure.NormalizeLocation(d.Get("location").(string))), DiskSku: utils.String(d.Get("disk_sku").(string)), }, } if v, ok := d.GetOk("backup_storage_customer_key_uri"); ok { - body.Properties.BackupStorageCustomerKeyURI = utils.String(v.(string)) + body.Properties.BackupStorageCustomerKeyUri = utils.String(v.(string)) } if v, ok := d.GetOk("base64_encoded_yaml_fragment"); ok { @@ -243,15 +241,15 @@ func resourceCassandraDatacenterUpdate(d *pluginsdk.ResourceData, meta interface } if v, ok := d.GetOk("managed_disk_customer_key_uri"); ok { - body.Properties.ManagedDiskCustomerKeyURI = utils.String(v.(string)) + body.Properties.ManagedDiskCustomerKeyUri = utils.String(v.(string)) } - future, err := client.CreateUpdate(ctx, id.ResourceGroup, id.CassandraClusterName, id.DataCenterName, body) + future, err := client.CassandraDataCentersCreateUpdate(ctx, *id, body) if err != nil { return fmt.Errorf("updating %q: %+v", id, err) } - if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { + if err = future.Poller.PollUntilDone(); err != nil { return fmt.Errorf("waiting on update for %q: %+v", id, err) } @@ -261,8 +259,8 @@ func resourceCassandraDatacenterUpdate(d *pluginsdk.ResourceData, meta interface // It has to wait a while after that. Then the property can be updated successfully. stateConf := &pluginsdk.StateChangeConf{ Delay: 1 * time.Minute, - Pending: []string{string(documentdb.ManagedCassandraProvisioningStateUpdating)}, - Target: []string{string(documentdb.ManagedCassandraProvisioningStateSucceeded)}, + Pending: []string{string(managedcassandras.ManagedCassandraProvisioningStateUpdating)}, + Target: []string{string(managedcassandras.ManagedCassandraProvisioningStateSucceeded)}, Refresh: cassandraDatacenterStateRefreshFunc(ctx, client, *id), MinTimeout: 15 * time.Second, Timeout: d.Timeout(pluginsdk.TimeoutUpdate), @@ -276,39 +274,40 @@ func resourceCassandraDatacenterUpdate(d *pluginsdk.ResourceData, meta interface } func resourceCassandraDatacenterDelete(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Cosmos.CassandraDatacentersClient + client := meta.(*clients.Client).Cosmos.ManagedCassandraClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.CassandraDatacenterID(d.Id()) + id, err := managedcassandras.ParseDataCenterID(d.Id()) if err != nil { return err } - future, err := client.Delete(ctx, id.ResourceGroup, id.CassandraClusterName, id.DataCenterName) + future, err := client.CassandraDataCentersDelete(ctx, *id) if err != nil { - if !response.WasNotFound(future.Response()) { + if !response.WasNotFound(future.HttpResponse) { return fmt.Errorf("deleting %q: %+v", id, err) } } - err = future.WaitForCompletionRef(ctx, client.Client) - if err != nil { + if err = future.Poller.PollUntilDone(); err != nil { return fmt.Errorf("waiting on deleting for %q: %+v", id, err) } return nil } -func cassandraDatacenterStateRefreshFunc(ctx context.Context, client *documentdb.CassandraDataCentersClient, id parse.CassandraDatacenterId) pluginsdk.StateRefreshFunc { +func cassandraDatacenterStateRefreshFunc(ctx context.Context, client *managedcassandras.ManagedCassandrasClient, id managedcassandras.DataCenterId) pluginsdk.StateRefreshFunc { return func() (interface{}, string, error) { - res, err := client.Get(ctx, id.ResourceGroup, id.CassandraClusterName, id.DataCenterName) + res, err := client.CassandraDataCentersGet(ctx, id) if err != nil { return nil, "", fmt.Errorf("polling for %s: %+v", id, err) } - if res.Properties != nil && res.Properties.ProvisioningState != "" { - return res, string(res.Properties.ProvisioningState), nil + if model := res.Model; model != nil { + if model.Properties != nil && model.Properties.ProvisioningState != nil { + return res, string(*model.Properties.ProvisioningState), nil + } } return nil, "", fmt.Errorf("unable to read provisioning state") } diff --git a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource_test.go b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource_test.go index c2df549bdd10..4e1f10b31cb3 100644 --- a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource_test.go +++ b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource_test.go @@ -8,10 +8,10 @@ import ( "fmt" "testing" + "github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/cosmos/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" ) @@ -56,17 +56,17 @@ func testAccCassandraDatacenter_update(t *testing.T) { } func (t CassandraDatacenterResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { - id, err := parse.CassandraDatacenterID(state.ID) + id, err := managedcassandras.ParseDataCenterID(state.ID) if err != nil { return nil, err } - resp, err := clients.Cosmos.CassandraDatacentersClient.Get(ctx, id.ResourceGroup, id.CassandraClusterName, id.DataCenterName) + resp, err := clients.Cosmos.ManagedCassandraClient.CassandraDataCentersGet(ctx, *id) if err != nil { return nil, fmt.Errorf("reading %q: %+v", id, err) } - return utils.Bool(resp.ID != nil), nil + return utils.Bool(resp.Model != nil), nil } func (r CassandraDatacenterResource) basic(data acceptance.TestData, nodeCount int) string { diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/README.md similarity index 97% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/README.md index c2d361c87c6c..472946e887bf 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras` Documentation -The `managedcassandras` SDK allows for interaction with the Azure Resource Manager Service `cosmosdb` (API Version `2022-05-15`). +The `managedcassandras` SDK allows for interaction with the Azure Resource Manager Service `cosmosdb` (API Version `2023-04-15`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras" +import "github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras" ``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/constants.go similarity index 97% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/constants.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/constants.go index 40bd1061a2f1..6af8d3602dc9 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/constants.go @@ -9,12 +9,14 @@ type AuthenticationMethod string const ( AuthenticationMethodCassandra AuthenticationMethod = "Cassandra" + AuthenticationMethodLdap AuthenticationMethod = "Ldap" AuthenticationMethodNone AuthenticationMethod = "None" ) func PossibleValuesForAuthenticationMethod() []string { return []string{ string(AuthenticationMethodCassandra), + string(AuthenticationMethodLdap), string(AuthenticationMethodNone), } } @@ -22,6 +24,7 @@ func PossibleValuesForAuthenticationMethod() []string { func parseAuthenticationMethod(input string) (*AuthenticationMethod, error) { vals := map[string]AuthenticationMethod{ "cassandra": AuthenticationMethodCassandra, + "ldap": AuthenticationMethodLdap, "none": AuthenticationMethodNone, } if v, ok := vals[strings.ToLower(input)]; ok { diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/id_cassandracluster.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/id_cassandracluster.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/id_cassandracluster.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/id_cassandracluster.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/id_datacenter.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/id_datacenter.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/id_datacenter.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/id_datacenter.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclusterscreateupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclusterscreateupdate_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclusterscreateupdate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclusterscreateupdate_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclustersdeallocate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclustersdeallocate_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclustersdeallocate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclustersdeallocate_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclustersdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclustersdelete_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclustersdelete_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclustersdelete_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclustersget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclustersget_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclustersget_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclustersget_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclustersinvokecommand_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclustersinvokecommand_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclustersinvokecommand_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclustersinvokecommand_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclusterslistbyresourcegroup_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclusterslistbyresourcegroup_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclusterslistbyresourcegroup_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclusterslistbyresourcegroup_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclusterslistbysubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclusterslistbysubscription_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclusterslistbysubscription_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclusterslistbysubscription_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclustersstart_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclustersstart_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclustersstart_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclustersstart_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclustersstatus_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclustersstatus_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclustersstatus_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclustersstatus_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclustersupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclustersupdate_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandraclustersupdate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandraclustersupdate_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandradatacenterscreateupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandradatacenterscreateupdate_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandradatacenterscreateupdate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandradatacenterscreateupdate_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandradatacentersdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandradatacentersdelete_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandradatacentersdelete_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandradatacentersdelete_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandradatacentersget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandradatacentersget_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandradatacentersget_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandradatacentersget_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandradatacenterslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandradatacenterslist_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandradatacenterslist_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandradatacenterslist_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandradatacentersupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandradatacentersupdate_autorest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/method_cassandradatacentersupdate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/method_cassandradatacentersupdate_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_authenticationmethodldapproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_authenticationmethodldapproperties.go new file mode 100644 index 000000000000..c7a9f432d0f1 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_authenticationmethodldapproperties.go @@ -0,0 +1,15 @@ +package managedcassandras + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AuthenticationMethodLdapProperties struct { + ConnectionTimeoutInMs *int64 `json:"connectionTimeoutInMs,omitempty"` + SearchBaseDistinguishedName *string `json:"searchBaseDistinguishedName,omitempty"` + SearchFilterTemplate *string `json:"searchFilterTemplate,omitempty"` + ServerCertificates *[]Certificate `json:"serverCertificates,omitempty"` + ServerHostname *string `json:"serverHostname,omitempty"` + ServerPort *int64 `json:"serverPort,omitempty"` + ServiceUserDistinguishedName *string `json:"serviceUserDistinguishedName,omitempty"` + ServiceUserPassword *string `json:"serviceUserPassword,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_cassandraclusterpublicstatus.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_cassandraclusterpublicstatus.go similarity index 86% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_cassandraclusterpublicstatus.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_cassandraclusterpublicstatus.go index c3e660cb5002..84f74679736d 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_cassandraclusterpublicstatus.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_cassandraclusterpublicstatus.go @@ -7,5 +7,6 @@ type CassandraClusterPublicStatus struct { ConnectionErrors *[]ConnectionError `json:"connectionErrors,omitempty"` DataCenters *[]CassandraClusterPublicStatusDataCentersInlined `json:"dataCenters,omitempty"` ETag *string `json:"eTag,omitempty"` + Errors *[]CassandraError `json:"errors,omitempty"` ReaperStatus *ManagedCassandraReaperStatus `json:"reaperStatus,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_cassandraclusterpublicstatusdatacentersinlined.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_cassandraclusterpublicstatusdatacentersinlined.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_cassandraclusterpublicstatusdatacentersinlined.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_cassandraclusterpublicstatusdatacentersinlined.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_cassandraclusterpublicstatusdatacentersinlinednodesinlined.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_cassandraclusterpublicstatusdatacentersinlinednodesinlined.go similarity index 94% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_cassandraclusterpublicstatusdatacentersinlinednodesinlined.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_cassandraclusterpublicstatusdatacentersinlinednodesinlined.go index a82d6d75934f..56fe106a00cf 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_cassandraclusterpublicstatusdatacentersinlinednodesinlined.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_cassandraclusterpublicstatusdatacentersinlinednodesinlined.go @@ -5,6 +5,7 @@ package managedcassandras type CassandraClusterPublicStatusDataCentersInlinedNodesInlined struct { Address *string `json:"address,omitempty"` + CassandraProcessStatus *string `json:"cassandraProcessStatus,omitempty"` CpuUsage *float64 `json:"cpuUsage,omitempty"` DiskFreeKB *int64 `json:"diskFreeKB,omitempty"` DiskUsedKB *int64 `json:"diskUsedKB,omitempty"` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_cassandraerror.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_cassandraerror.go new file mode 100644 index 000000000000..5fb8d8d739dc --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_cassandraerror.go @@ -0,0 +1,11 @@ +package managedcassandras + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CassandraError struct { + AdditionalErrorInfo *string `json:"additionalErrorInfo,omitempty"` + Code *string `json:"code,omitempty"` + Message *string `json:"message,omitempty"` + Target *string `json:"target,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_certificate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_certificate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_certificate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_certificate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_clusterresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_clusterresource.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_clusterresource.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_clusterresource.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_clusterresourceproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_clusterresourceproperties.go similarity index 95% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_clusterresourceproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_clusterresourceproperties.go index c6e3f3775ef1..f21acba43e74 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_clusterresourceproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_clusterresourceproperties.go @@ -17,6 +17,7 @@ type ClusterResourceProperties struct { HoursBetweenBackups *int64 `json:"hoursBetweenBackups,omitempty"` InitialCassandraAdminPassword *string `json:"initialCassandraAdminPassword,omitempty"` PrometheusEndpoint *SeedNode `json:"prometheusEndpoint,omitempty"` + ProvisionError *CassandraError `json:"provisionError,omitempty"` ProvisioningState *ManagedCassandraProvisioningState `json:"provisioningState,omitempty"` RepairEnabled *bool `json:"repairEnabled,omitempty"` RestoreFromBackupId *string `json:"restoreFromBackupId,omitempty"` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_commandoutput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_commandoutput.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_commandoutput.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_commandoutput.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_commandpostbody.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_commandpostbody.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_commandpostbody.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_commandpostbody.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_connectionerror.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_connectionerror.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_connectionerror.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_connectionerror.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_datacenterresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_datacenterresource.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_datacenterresource.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_datacenterresource.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_datacenterresourceproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_datacenterresourceproperties.go similarity index 53% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_datacenterresourceproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_datacenterresourceproperties.go index df4a1fe277c1..3c2a79024d92 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_datacenterresourceproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_datacenterresourceproperties.go @@ -4,16 +4,19 @@ package managedcassandras // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type DataCenterResourceProperties struct { - AvailabilityZone *bool `json:"availabilityZone,omitempty"` - BackupStorageCustomerKeyUri *string `json:"backupStorageCustomerKeyUri,omitempty"` - Base64EncodedCassandraYamlFragment *string `json:"base64EncodedCassandraYamlFragment,omitempty"` - DataCenterLocation *string `json:"dataCenterLocation,omitempty"` - DelegatedSubnetId *string `json:"delegatedSubnetId,omitempty"` - DiskCapacity *int64 `json:"diskCapacity,omitempty"` - DiskSku *string `json:"diskSku,omitempty"` - ManagedDiskCustomerKeyUri *string `json:"managedDiskCustomerKeyUri,omitempty"` - NodeCount *int64 `json:"nodeCount,omitempty"` - ProvisioningState *ManagedCassandraProvisioningState `json:"provisioningState,omitempty"` - SeedNodes *[]SeedNode `json:"seedNodes,omitempty"` - Sku *string `json:"sku,omitempty"` + AuthenticationMethodLdapProperties *AuthenticationMethodLdapProperties `json:"authenticationMethodLdapProperties,omitempty"` + AvailabilityZone *bool `json:"availabilityZone,omitempty"` + BackupStorageCustomerKeyUri *string `json:"backupStorageCustomerKeyUri,omitempty"` + Base64EncodedCassandraYamlFragment *string `json:"base64EncodedCassandraYamlFragment,omitempty"` + DataCenterLocation *string `json:"dataCenterLocation,omitempty"` + Deallocated *bool `json:"deallocated,omitempty"` + DelegatedSubnetId *string `json:"delegatedSubnetId,omitempty"` + DiskCapacity *int64 `json:"diskCapacity,omitempty"` + DiskSku *string `json:"diskSku,omitempty"` + ManagedDiskCustomerKeyUri *string `json:"managedDiskCustomerKeyUri,omitempty"` + NodeCount *int64 `json:"nodeCount,omitempty"` + ProvisionError *CassandraError `json:"provisionError,omitempty"` + ProvisioningState *ManagedCassandraProvisioningState `json:"provisioningState,omitempty"` + SeedNodes *[]SeedNode `json:"seedNodes,omitempty"` + Sku *string `json:"sku,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_listclusters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_listclusters.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_listclusters.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_listclusters.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_listdatacenters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_listdatacenters.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_listdatacenters.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_listdatacenters.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_managedcassandrareaperstatus.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_managedcassandrareaperstatus.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_managedcassandrareaperstatus.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_managedcassandrareaperstatus.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_seednode.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_seednode.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/model_seednode.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/model_seednode.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/version.go index a3dfed28657a..04f8a2e8f9c1 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2022-05-15" +const defaultApiVersion = "2023-04-15" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/managedcassandras/%s", defaultApiVersion) diff --git a/vendor/modules.txt b/vendor/modules.txt index d4a959cd387d..f7651b842a9c 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -331,10 +331,10 @@ github.com/hashicorp/go-azure-sdk/resource-manager/containerservice/2023-04-02-p github.com/hashicorp/go-azure-sdk/resource-manager/containerservice/2023-04-02-preview/managedclusters github.com/hashicorp/go-azure-sdk/resource-manager/containerservice/2023-04-02-preview/snapshots github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/cosmosdb -github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/managedcassandras github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/sqldedicatedgateway github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-11-15/mongorbacs github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/cosmosdb +github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/managedcassandras github.com/hashicorp/go-azure-sdk/resource-manager/costmanagement/2021-10-01/exports github.com/hashicorp/go-azure-sdk/resource-manager/costmanagement/2022-06-01-preview/scheduledactions github.com/hashicorp/go-azure-sdk/resource-manager/costmanagement/2022-10-01/scheduledactions From ed39184a04c6566d63d8dec236cb6ad66b1399c0 Mon Sep 17 00:00:00 2001 From: Tao <104055472+teowa@users.noreply.github.com> Date: Wed, 30 Aug 2023 01:06:20 +0800 Subject: [PATCH 069/336] fix feature flagged schema (#23093) --- internal/services/monitor/monitor_diagnostic_setting_resource.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/services/monitor/monitor_diagnostic_setting_resource.go b/internal/services/monitor/monitor_diagnostic_setting_resource.go index 65e7e15e0d42..02890f9a4bf3 100644 --- a/internal/services/monitor/monitor_diagnostic_setting_resource.go +++ b/internal/services/monitor/monitor_diagnostic_setting_resource.go @@ -241,6 +241,7 @@ func resourceMonitorDiagnosticSetting() *pluginsdk.Resource { } resource.Schema["metric"].AtLeastOneOf = []string{"enabled_log", "log", "metric"} + resource.Schema["enabled_log"].AtLeastOneOf = []string{"enabled_log", "log", "metric"} resource.Schema["enabled_log"].ConflictsWith = []string{"log"} } From 4916dc0c953363e80ec111dd77ab80ec217ce7ac Mon Sep 17 00:00:00 2001 From: catriona-m <86247157+catriona-m@users.noreply.github.com> Date: Tue, 29 Aug 2023 18:07:32 +0100 Subject: [PATCH 070/336] Update CHANGELOG.md #23093 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 959844f3f1f7..348ce9547559 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ BUG FIXES: * `azurerm_automation_account` - fixes logic for `local_authentication_enabled` [GH-23082] * `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` [GH-23019] +* `azurerm_monitor_diagnostic_setting` - fix `enabled_log` feature flagged schema [GH-23093] ## 3.71.0 (August 24, 2023) From fc3dff8c5b7f02af92cc5d6c52b02dd10f473c3e Mon Sep 17 00:00:00 2001 From: neil-yechenwei Date: Wed, 30 Aug 2023 12:43:38 +0800 Subject: [PATCH 071/336] azurerm_bot_channel_ms_teams - support for accepted_terms_enabled and deployment_environment --- .../bot/bot_channel_ms_teams_resource.go | 45 ++++++++++++++++--- .../bot/bot_channel_ms_teams_resource_test.go | 19 ++++---- .../docs/r/bot_channel_ms_teams.html.markdown | 4 ++ 3 files changed, 55 insertions(+), 13 deletions(-) diff --git a/internal/services/bot/bot_channel_ms_teams_resource.go b/internal/services/bot/bot_channel_ms_teams_resource.go index 0acaf1a78de2..e86d3d5e2a5b 100644 --- a/internal/services/bot/bot_channel_ms_teams_resource.go +++ b/internal/services/bot/bot_channel_ms_teams_resource.go @@ -4,6 +4,7 @@ package bot import ( + "context" "fmt" "log" "time" @@ -11,6 +12,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" @@ -54,6 +56,12 @@ func resourceBotChannelMsTeams() *pluginsdk.Resource { ValidateFunc: validation.StringIsNotEmpty, }, + "accepted_terms_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + // issue: https://github.com/Azure/azure-rest-api-specs/issues/9809 // this field could not update to empty, so add `Computed: true` to avoid diff "calling_web_hook": { @@ -63,6 +71,16 @@ func resourceBotChannelMsTeams() *pluginsdk.Resource { ValidateFunc: validate.BotMSTeamsCallingWebHook(), }, + "deployment_environment": { + Type: pluginsdk.TypeString, + Optional: true, + Default: "CommercialDeployment", + ValidateFunc: validation.StringInSlice([]string{ + "CommercialDeployment", + "GCCModerateDeployment", + }, false), + }, + // TODO 4.0: change this from enable_* to *_enabled "enable_calling": { Type: pluginsdk.TypeBool, @@ -70,6 +88,17 @@ func resourceBotChannelMsTeams() *pluginsdk.Resource { Default: false, }, }, + + CustomizeDiff: pluginsdk.CustomDiffWithAll( + func(ctx context.Context, d *schema.ResourceDiff, meta interface{}) error { + oldVal, newVal := d.GetChange("accepted_terms_enabled") + if oldVal.(bool) && !newVal.(bool) { + return fmt.Errorf("`accepted_terms_enabled` cannot be disabled once it's been enabled") + } + + return nil + }, + ), } } @@ -95,8 +124,10 @@ func resourceBotChannelMsTeamsCreate(d *pluginsdk.ResourceData, meta interface{} channel := botservice.BotChannel{ Properties: botservice.MsTeamsChannel{ Properties: &botservice.MsTeamsChannelProperties{ - EnableCalling: utils.Bool(d.Get("enable_calling").(bool)), - IsEnabled: utils.Bool(true), + AcceptedTerms: utils.Bool(d.Get("accepted_terms_enabled").(bool)), + DeploymentEnvironment: utils.String(d.Get("deployment_environment").(string)), + EnableCalling: utils.Bool(d.Get("enable_calling").(bool)), + IsEnabled: utils.Bool(true), }, ChannelName: botservice.ChannelNameBasicChannelChannelNameMsTeamsChannel, }, @@ -145,7 +176,9 @@ func resourceBotChannelMsTeamsRead(d *pluginsdk.ResourceData, meta interface{}) if props := resp.Properties; props != nil { if channel, ok := props.AsMsTeamsChannel(); ok { if channelProps := channel.Properties; channelProps != nil { + d.Set("accepted_terms_enabled", channelProps.AcceptedTerms) d.Set("calling_web_hook", channelProps.CallingWebhook) + d.Set("deployment_environment", channelProps.DeploymentEnvironment) d.Set("enable_calling", channelProps.EnableCalling) } } @@ -167,9 +200,11 @@ func resourceBotChannelMsTeamsUpdate(d *pluginsdk.ResourceData, meta interface{} channel := botservice.BotChannel{ Properties: botservice.MsTeamsChannel{ Properties: &botservice.MsTeamsChannelProperties{ - EnableCalling: utils.Bool(d.Get("enable_calling").(bool)), - CallingWebhook: utils.String(d.Get("calling_web_hook").(string)), - IsEnabled: utils.Bool(true), + AcceptedTerms: utils.Bool(d.Get("accepted_terms_enabled").(bool)), + DeploymentEnvironment: utils.String(d.Get("deployment_environment").(string)), + EnableCalling: utils.Bool(d.Get("enable_calling").(bool)), + CallingWebhook: utils.String(d.Get("calling_web_hook").(string)), + IsEnabled: utils.Bool(true), }, ChannelName: botservice.ChannelNameBasicChannelChannelNameMsTeamsChannel, }, diff --git a/internal/services/bot/bot_channel_ms_teams_resource_test.go b/internal/services/bot/bot_channel_ms_teams_resource_test.go index 97bd44e4355c..5a05c1383b07 100644 --- a/internal/services/bot/bot_channel_ms_teams_resource_test.go +++ b/internal/services/bot/bot_channel_ms_teams_resource_test.go @@ -82,9 +82,10 @@ func (BotChannelMsTeamsResource) basicConfig(data acceptance.TestData) string { %s resource "azurerm_bot_channel_ms_teams" "test" { - bot_name = azurerm_bot_channels_registration.test.name - location = azurerm_bot_channels_registration.test.location - resource_group_name = azurerm_resource_group.test.name + bot_name = azurerm_bot_channels_registration.test.name + location = azurerm_bot_channels_registration.test.location + resource_group_name = azurerm_resource_group.test.name + accepted_terms_enabled = true } `, BotChannelsRegistrationResource{}.basicConfig(data)) } @@ -94,11 +95,13 @@ func (BotChannelMsTeamsResource) basicUpdate(data acceptance.TestData) string { %s resource "azurerm_bot_channel_ms_teams" "test" { - bot_name = azurerm_bot_channels_registration.test.name - location = azurerm_bot_channels_registration.test.location - resource_group_name = azurerm_resource_group.test.name - calling_web_hook = "https://example.com/" - enable_calling = true + bot_name = azurerm_bot_channels_registration.test.name + location = azurerm_bot_channels_registration.test.location + resource_group_name = azurerm_resource_group.test.name + calling_web_hook = "https://example.com/" + enable_calling = true + accepted_terms_enabled = true + deployment_environment = "GCCModerateDeployment" } `, BotChannelsRegistrationResource{}.basicConfig(data)) } diff --git a/website/docs/r/bot_channel_ms_teams.html.markdown b/website/docs/r/bot_channel_ms_teams.html.markdown index da4a0ed1f094..82036c0b9803 100644 --- a/website/docs/r/bot_channel_ms_teams.html.markdown +++ b/website/docs/r/bot_channel_ms_teams.html.markdown @@ -47,8 +47,12 @@ The following arguments are supported: * `bot_name` - (Required) The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created. +* `accepted_terms_enabled` - (Optional) Is accepted terms for Microsoft Teams channel calls enabled? Defaults to `false`. + * `calling_web_hook` - (Optional) Specifies the webhook for Microsoft Teams channel calls. +* `deployment_environment` - (Optional) The deployment environment for Microsoft Teams channel calls. Possible values are `CommercialDeployment` and `GCCModerateDeployment`. Defaults to `CommercialDeployment`. + * `enable_calling` - (Optional) Specifies whether to enable Microsoft Teams channel calls. This defaults to `false`. ## Attributes Reference From dfdbb4b49085507812f2c4bb09120379c45b1c04 Mon Sep 17 00:00:00 2001 From: neil-yechenwei Date: Wed, 30 Aug 2023 12:46:05 +0800 Subject: [PATCH 072/336] update code --- internal/services/bot/bot_channel_ms_teams_resource_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/services/bot/bot_channel_ms_teams_resource_test.go b/internal/services/bot/bot_channel_ms_teams_resource_test.go index 5a05c1383b07..f32e128beebe 100644 --- a/internal/services/bot/bot_channel_ms_teams_resource_test.go +++ b/internal/services/bot/bot_channel_ms_teams_resource_test.go @@ -101,7 +101,7 @@ resource "azurerm_bot_channel_ms_teams" "test" { calling_web_hook = "https://example.com/" enable_calling = true accepted_terms_enabled = true - deployment_environment = "GCCModerateDeployment" + deployment_environment = "CommercialDeployment" } `, BotChannelsRegistrationResource{}.basicConfig(data)) } From ed3dd3cb8566b9cee5703d5e2c2e81b724d2390d Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 30 Aug 2023 10:42:40 +0200 Subject: [PATCH 073/336] testing: updating the resource names to be `acctest` to ensure these are cleaned up --- .../api_management_data_source_test.go | 14 +++++++------- .../pim_active_role_assignment_test.go | 2 +- .../pim_eligible_role_assignment_test.go | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/internal/services/apimanagement/api_management_data_source_test.go b/internal/services/apimanagement/api_management_data_source_test.go index 0fdf78a258ab..0522a4398ffe 100644 --- a/internal/services/apimanagement/api_management_data_source_test.go +++ b/internal/services/apimanagement/api_management_data_source_test.go @@ -247,45 +247,45 @@ provider "azurerm" { } resource "azurerm_resource_group" "test1" { - name = "amestRG1-%d" + name = "acctestRG1-%d" location = "%s" } resource "azurerm_resource_group" "test2" { - name = "amestRG2-%d" + name = "acctestRG2-%d" location = "%s" } resource "azurerm_virtual_network" "test1" { - name = "amtestVNET1-%d" + name = "acctestVNET1-%d" location = azurerm_resource_group.test1.location resource_group_name = azurerm_resource_group.test1.name address_space = ["10.0.0.0/16"] } resource "azurerm_subnet" "test1" { - name = "amtestSNET1-%d" + name = "acctestSNET1-%d" resource_group_name = azurerm_resource_group.test1.name virtual_network_name = azurerm_virtual_network.test1.name address_prefixes = ["10.0.1.0/24"] } resource "azurerm_virtual_network" "test2" { - name = "amtestVNET2-%d" + name = "acctestVNET2-%d" location = azurerm_resource_group.test2.location resource_group_name = azurerm_resource_group.test2.name address_space = ["10.1.0.0/16"] } resource "azurerm_subnet" "test2" { - name = "amtestSNET2-%d" + name = "acctestSNET2-%d" resource_group_name = azurerm_resource_group.test2.name virtual_network_name = azurerm_virtual_network.test2.name address_prefixes = ["10.1.1.0/24"] } resource "azurerm_api_management" "test" { - name = "amtestAM-%d" + name = "acctestAM-%d" location = azurerm_resource_group.test1.location resource_group_name = azurerm_resource_group.test1.name publisher_name = "pub1" diff --git a/internal/services/authorization/pim_active_role_assignment_test.go b/internal/services/authorization/pim_active_role_assignment_test.go index 2ada4b816302..bccc425cca08 100644 --- a/internal/services/authorization/pim_active_role_assignment_test.go +++ b/internal/services/authorization/pim_active_role_assignment_test.go @@ -233,7 +233,7 @@ resource "azurerm_resource_group" "test" { location = "%[2]s" } resource "azurerm_virtual_network" "test" { - name = "amtestVNET1-%[1]d" + name = "acctestVNET1-%[1]d" location = azurerm_resource_group.test.location resource_group_name = azurerm_resource_group.test.name address_space = ["10.0.0.0/16"] diff --git a/internal/services/authorization/pim_eligible_role_assignment_test.go b/internal/services/authorization/pim_eligible_role_assignment_test.go index 1edd385631ac..2f6fde637886 100644 --- a/internal/services/authorization/pim_eligible_role_assignment_test.go +++ b/internal/services/authorization/pim_eligible_role_assignment_test.go @@ -277,7 +277,7 @@ resource "azurerm_resource_group" "test" { location = "%[3]s" } resource "azurerm_virtual_network" "test" { - name = "amtestVNET1-%[2]d" + name = "acctestVNET1-%[2]d" location = azurerm_resource_group.test.location resource_group_name = azurerm_resource_group.test.name address_space = ["10.0.0.0/16"] From 55249ad001facae1770252f4e25d8249e8ee59e8 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Thu, 31 Aug 2023 12:02:47 +0200 Subject: [PATCH 074/336] updating to include #23072 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 348ce9547559..6908c3fb302f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ENHANCEMENTS: * `azurerm_batch_pool` - support for `automatic_upgrade_enabled` [GH-23021] * `azurerm_container_app_environment` - support for the `dapr_application_insights_connection_string` [GH-23080] * `azurerm_postgresql_flexible_server` - support for the `auto_grow_enabled` property [GH-23069] +* `azurerm_resource_provider_registration` - refactoring to use `hashicorp/go-azure-sdk` [GH-23072] * `azurerm_virtual_network_gateway` - increasing the default timeout for create to `90m` [GH-23003] * `azurerm_virtual_hub_connection` - support for `inbound_route_map_id`, `outbound_route_map_id`, and `static_vnet_local_route_override_criteria` properties [GH-23049] From b3107597c50e9879721237420deb99153acc99fd Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Thu, 31 Aug 2023 13:02:33 +0200 Subject: [PATCH 075/336] updating to include #22804 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6908c3fb302f..e8b9f503bf6b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ FEATURES: ENHANCEMENTS: +* `containerapps`: updating to API Version `2023-05-01` [GH-22804] * `keyvault`: upgrade remaining resources to `2023-02-01` [GH-23089] * `azurerm_batch_pool` - support for `automatic_upgrade_enabled` [GH-23021] * `azurerm_container_app_environment` - support for the `dapr_application_insights_connection_string` [GH-23080] From 40d0fe038df9381ba44e59d8a978a6b71211f8ba Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Thu, 31 Aug 2023 13:10:25 +0200 Subject: [PATCH 076/336] updating to include #23081 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e8b9f503bf6b..d9ddf8c89f1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ ENHANCEMENTS: * `containerapps`: updating to API Version `2023-05-01` [GH-22804] * `keyvault`: upgrade remaining resources to `2023-02-01` [GH-23089] +* `internal/sdk`: typed resources using a custom importer now get a timed context [GH-23081] * `azurerm_batch_pool` - support for `automatic_upgrade_enabled` [GH-23021] * `azurerm_container_app_environment` - support for the `dapr_application_insights_connection_string` [GH-23080] * `azurerm_postgresql_flexible_server` - support for the `auto_grow_enabled` property [GH-23069] From 00e8fd3f2b05134c460ce3f73d02846903956758 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Fri, 25 Aug 2023 13:21:09 +0200 Subject: [PATCH 077/336] dependencies: updating to `v0.20230825.1030756` of `github.com/hashicorp/go-azure-sdk` --- go.mod | 2 +- go.sum | 4 + .../2019-09-01/querypackqueries/client.go | 22 +- .../querypackqueries/method_queriesdelete.go | 47 ++++ .../method_queriesdelete_autorest.go | 66 ------ .../querypackqueries/method_queriesget.go | 51 ++++ .../method_queriesget_autorest.go | 68 ------ .../querypackqueries/method_querieslist.go | 121 ++++++++++ .../method_querieslist_autorest.go | 220 ----------------- .../querypackqueries/method_queriesput.go | 55 +++++ .../method_queriesput_autorest.go | 69 ------ .../querypackqueries/method_queriessearch.go | 121 ++++++++++ .../method_queriessearch_autorest.go | 221 ------------------ .../querypackqueries/method_queriesupdate.go | 55 +++++ .../method_queriesupdate_autorest.go | 69 ------ .../2019-09-01/querypacks/client.go | 22 +- .../method_querypackscreateorupdate.go | 55 +++++ ...ethod_querypackscreateorupdate_autorest.go | 69 ------ ...hod_querypackscreateorupdatewithoutname.go | 57 +++++ ...packscreateorupdatewithoutname_autorest.go | 71 ------ .../querypacks/method_querypacksdelete.go | 47 ++++ .../method_querypacksdelete_autorest.go | 66 ------ .../querypacks/method_querypacksget.go | 51 ++++ .../method_querypacksget_autorest.go | 68 ------ .../querypacks/method_querypackslist.go | 90 +++++++ .../method_querypackslist_autorest.go | 187 --------------- .../method_querypackslistbyresourcegroup.go | 90 +++++++ ..._querypackslistbyresourcegroup_autorest.go | 187 --------------- .../querypacks/method_querypacksupdatetags.go | 55 +++++ .../method_querypacksupdatetags_autorest.go | 69 ------ .../2020-08-01/clusters/client.go | 22 +- .../2020-08-01/clusters/constants.go | 32 ++- .../clusters/method_createorupdate.go | 75 ++++++ .../method_createorupdate_autorest.go | 79 ------- .../2020-08-01/clusters/method_delete.go | 70 ++++++ .../clusters/method_delete_autorest.go | 78 ------- .../2020-08-01/clusters/method_get.go | 51 ++++ .../clusters/method_get_autorest.go | 68 ------ .../2020-08-01/clusters/method_list.go | 90 +++++++ .../clusters/method_list_autorest.go | 187 --------------- .../clusters/method_listbyresourcegroup.go | 90 +++++++ .../method_listbyresourcegroup_autorest.go | 187 --------------- .../2020-08-01/clusters/method_update.go | 55 +++++ .../clusters/method_update_autorest.go | 69 ------ .../2020-08-01/dataexport/client.go | 22 +- .../2020-08-01/dataexport/constants.go | 19 +- .../dataexport/method_createorupdate.go | 56 +++++ .../method_createorupdate_autorest.go | 69 ------ .../2020-08-01/dataexport/method_delete.go | 46 ++++ .../dataexport/method_delete_autorest.go | 66 ------ .../2020-08-01/dataexport/method_get.go | 51 ++++ .../dataexport/method_get_autorest.go | 68 ------ .../dataexport/method_listbyworkspace.go | 52 +++++ .../method_listbyworkspace_autorest.go | 69 ------ .../2020-08-01/datasources/client.go | 22 +- .../2020-08-01/datasources/constants.go | 19 +- .../datasources/method_createorupdate.go | 56 +++++ .../method_createorupdate_autorest.go | 69 ------ .../2020-08-01/datasources/method_delete.go | 47 ++++ .../datasources/method_delete_autorest.go | 66 ------ .../2020-08-01/datasources/method_get.go | 51 ++++ .../datasources/method_get_autorest.go | 68 ------ .../datasources/method_listbyworkspace.go | 117 ++++++++++ .../method_listbyworkspace_autorest.go | 215 ----------------- .../2020-08-01/linkedservices/client.go | 22 +- .../2020-08-01/linkedservices/constants.go | 19 +- .../linkedservices/method_createorupdate.go | 75 ++++++ .../method_createorupdate_autorest.go | 79 ------- .../linkedservices/method_delete.go | 71 ++++++ .../linkedservices/method_delete_autorest.go | 78 ------- .../2020-08-01/linkedservices/method_get.go | 51 ++++ .../linkedservices/method_get_autorest.go | 68 ------ .../linkedservices/method_listbyworkspace.go | 52 +++++ .../method_listbyworkspace_autorest.go | 69 ------ .../linkedstorageaccounts/client.go | 22 +- .../linkedstorageaccounts/constants.go | 19 +- .../method_createorupdate.go | 55 +++++ .../method_createorupdate_autorest.go | 69 ------ .../linkedstorageaccounts/method_delete.go | 46 ++++ .../method_delete_autorest.go | 66 ------ .../linkedstorageaccounts/method_get.go | 51 ++++ .../method_get_autorest.go | 68 ------ .../method_listbyworkspace.go | 52 +++++ .../method_listbyworkspace_autorest.go | 69 ------ .../2020-08-01/savedsearches/client.go | 22 +- .../savedsearches/method_createorupdate.go | 55 +++++ .../method_createorupdate_autorest.go | 69 ------ .../2020-08-01/savedsearches/method_delete.go | 46 ++++ .../savedsearches/method_delete_autorest.go | 66 ------ .../2020-08-01/savedsearches/method_get.go | 51 ++++ .../savedsearches/method_get_autorest.go | 68 ------ .../savedsearches/method_listbyworkspace.go | 52 +++++ .../method_listbyworkspace_autorest.go | 69 ------ .../2020-08-01/storageinsights/client.go | 22 +- .../2020-08-01/storageinsights/constants.go | 19 +- ...hod_storageinsightconfigscreateorupdate.go | 56 +++++ ...geinsightconfigscreateorupdate_autorest.go | 69 ------ .../method_storageinsightconfigsdelete.go | 47 ++++ ...od_storageinsightconfigsdelete_autorest.go | 66 ------ .../method_storageinsightconfigsget.go | 51 ++++ ...ethod_storageinsightconfigsget_autorest.go | 68 ------ ...od_storageinsightconfigslistbyworkspace.go | 89 +++++++ ...einsightconfigslistbyworkspace_autorest.go | 186 --------------- .../2020-08-01/workspaces/client.go | 22 +- .../2020-08-01/workspaces/constants.go | 84 ++++++- .../workspaces/method_createorupdate.go | 75 ++++++ .../method_createorupdate_autorest.go | 79 ------- .../2020-08-01/workspaces/method_delete.go | 99 ++++++++ .../workspaces/method_delete_autorest.go | 107 --------- .../workspaces/method_gatewaysdelete.go | 46 ++++ .../method_gatewaysdelete_autorest.go | 66 ------ .../2020-08-01/workspaces/method_get.go | 51 ++++ .../workspaces/method_get_autorest.go | 68 ------ .../method_intelligencepacksdisable.go | 47 ++++ ...ethod_intelligencepacksdisable_autorest.go | 67 ------ .../method_intelligencepacksenable.go | 47 ++++ ...method_intelligencepacksenable_autorest.go | 67 ------ .../method_intelligencepackslist.go | 52 +++++ .../method_intelligencepackslist_autorest.go | 69 ------ .../2020-08-01/workspaces/method_list.go | 53 +++++ .../workspaces/method_list_autorest.go | 70 ------ .../workspaces/method_listbyresourcegroup.go | 53 +++++ .../method_listbyresourcegroup_autorest.go | 70 ------ .../workspaces/method_managementgroupslist.go | 52 +++++ .../method_managementgroupslist_autorest.go | 69 ------ .../2020-08-01/workspaces/method_schemaget.go | 52 +++++ .../workspaces/method_schemaget_autorest.go | 69 ------ .../method_sharedkeysgetsharedkeys.go | 52 +++++ ...method_sharedkeysgetsharedkeys_autorest.go | 69 ------ .../workspaces/method_sharedkeysregenerate.go | 52 +++++ .../method_sharedkeysregenerate_autorest.go | 69 ------ .../2020-08-01/workspaces/method_update.go | 55 +++++ .../workspaces/method_update_autorest.go | 69 ------ .../workspaces/method_usageslist.go | 52 +++++ .../workspaces/method_usageslist_autorest.go | 69 ------ .../method_workspacepurgegetpurgestatus.go | 51 ++++ ...d_workspacepurgegetpurgestatus_autorest.go | 68 ------ .../workspaces/method_workspacepurgepurge.go | 56 +++++ .../method_workspacepurgepurge_autorest.go | 70 ------ .../2022-10-01/workspaces/client.go | 22 +- .../2022-10-01/workspaces/constants.go | 58 ++++- .../workspaces/method_createorupdate.go | 75 ++++++ .../method_createorupdate_autorest.go | 79 ------- .../2022-10-01/workspaces/method_delete.go | 99 ++++++++ .../workspaces/method_delete_autorest.go | 107 --------- .../2022-10-01/workspaces/method_get.go | 51 ++++ .../workspaces/method_get_autorest.go | 68 ------ .../2022-10-01/workspaces/method_list.go | 53 +++++ .../workspaces/method_list_autorest.go | 70 ------ .../workspaces/method_listbyresourcegroup.go | 53 +++++ .../method_listbyresourcegroup_autorest.go | 70 ------ .../2022-10-01/workspaces/method_update.go | 55 +++++ .../workspaces/method_update_autorest.go | 69 ------ .../2015-11-01-preview/solution/client.go | 22 +- .../solution/method_createorupdate.go | 73 ++++++ .../method_createorupdate_autorest.go | 79 ------- .../solution/method_delete.go | 69 ++++++ .../solution/method_delete_autorest.go | 78 ------- .../2015-11-01-preview/solution/method_get.go | 51 ++++ .../solution/method_get_autorest.go | 68 ------ .../solution/method_listbyresourcegroup.go | 53 +++++ .../method_listbyresourcegroup_autorest.go | 70 ------ .../solution/method_listbysubscription.go | 53 +++++ .../method_listbysubscription_autorest.go | 70 ------ .../solution/method_update.go | 73 ++++++ .../solution/method_update_autorest.go | 79 ------- vendor/modules.txt | 2 +- 167 files changed, 4852 insertions(+), 6231 deletions(-) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesdelete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesdelete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesget.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesget_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_querieslist.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_querieslist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesput.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesput_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriessearch.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriessearch_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdatewithoutname.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdatewithoutname_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksdelete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksdelete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksget.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksget_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslist.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslistbyresourcegroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslistbyresourcegroup_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksupdatetags.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksupdatetags_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_createorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_delete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_get_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_list.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_list_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_listbyresourcegroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_listbyresourcegroup_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_update.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_update_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_createorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_delete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_get_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_listbyworkspace.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_listbyworkspace_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_createorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_delete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_get_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_listbyworkspace.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_listbyworkspace_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_createorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_delete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_get_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_listbyworkspace.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_listbyworkspace_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_createorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_delete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_get_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_listbyworkspace.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_listbyworkspace_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_createorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_delete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_get_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_listbyworkspace.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_listbyworkspace_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigscreateorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigscreateorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsdelete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsdelete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsget.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsget_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigslistbyworkspace.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigslistbyworkspace_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_createorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_delete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_gatewaysdelete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_gatewaysdelete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_get_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksdisable.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksdisable_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksenable.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksenable_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepackslist.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepackslist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_list.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_list_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_listbyresourcegroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_listbyresourcegroup_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_managementgroupslist.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_managementgroupslist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_schemaget.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_schemaget_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysgetsharedkeys.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysgetsharedkeys_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysregenerate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysregenerate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_update.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_update_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_usageslist.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_usageslist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgegetpurgestatus.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgegetpurgestatus_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgepurge.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgepurge_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_createorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_delete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_get_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_list.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_list_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_listbyresourcegroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_listbyresourcegroup_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_update.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_update_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_createorupdate_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_delete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_get_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbyresourcegroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbyresourcegroup_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbysubscription.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbysubscription_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_update.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_update_autorest.go diff --git a/go.mod b/go.mod index 0c9bfffb47d0..d56808e46214 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/google/go-cmp v0.5.9 github.com/google/uuid v1.3.0 github.com/hashicorp/go-azure-helpers v0.59.0 - github.com/hashicorp/go-azure-sdk v0.20230824.1130652 + github.com/hashicorp/go-azure-sdk v0.20230825.1030756 github.com/hashicorp/go-hclog v1.4.0 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-uuid v1.0.3 diff --git a/go.sum b/go.sum index f2294bf227e2..1cae84eec3dc 100644 --- a/go.sum +++ b/go.sum @@ -123,6 +123,8 @@ github.com/hashicorp/go-azure-helpers v0.59.0 h1:E73yoPN2r1y0vvZ4dgAh8NRGuVTNXH3 github.com/hashicorp/go-azure-helpers v0.59.0/go.mod h1:BQUQp5udwbJ8pnzl0wByCLVEEyPMAFpJ9vOREiCzObo= github.com/hashicorp/go-azure-sdk v0.20230824.1130652 h1:IOQTvyj3JvUfc8oTmLrh3pXVCjZlozp3aqhM243Pzzo= github.com/hashicorp/go-azure-sdk v0.20230824.1130652/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= +github.com/hashicorp/go-azure-sdk v0.20230825.1030756 h1:zXrOc4ZqWOYxxoQTnWZzpkgNVKj1L89l41vrPKx+y5o= +github.com/hashicorp/go-azure-sdk v0.20230825.1030756/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU= github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= @@ -241,6 +243,7 @@ github.com/rickb777/date v1.12.5-0.20200422084442-6300e543c4d9 h1:czJCcoUR3FMpHn github.com/rickb777/date v1.12.5-0.20200422084442-6300e543c4d9/go.mod h1:L8WrssTzvgYw34/Ppa0JpJfI7KKXZ2cVGI6Djt0brUU= github.com/rickb777/plural v1.2.0 h1:5tvEc7UBCZ7l8h/2UeybSkt/uu1DQsZFOFdNevmUhlE= github.com/rickb777/plural v1.2.0/go.mod h1:UdpyWFCGbo3mvK3f/PfZOAOrkjzJlYN/sD46XNWJ+Es= +github.com/sebdah/goldie v1.0.0/go.mod h1:jXP4hmWywNEwZzhMuv2ccnqTSFpuq8iyQhtQdkkZBH4= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= @@ -285,6 +288,7 @@ github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLE github.com/zclconf/go-cty v1.1.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= github.com/zclconf/go-cty v1.13.1 h1:0a6bRwuiSHtAmqCqNOE+c2oHgepv0ctoxU4FUe43kwc= github.com/zclconf/go-cty v1.13.1/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= +github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/client.go index dd87eff8015a..ab93dbedc621 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/client.go @@ -1,18 +1,26 @@ package querypackqueries -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type QueryPackQueriesClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewQueryPackQueriesClientWithBaseURI(endpoint string) QueryPackQueriesClient { - return QueryPackQueriesClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewQueryPackQueriesClientWithBaseURI(sdkApi sdkEnv.Api) (*QueryPackQueriesClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "querypackqueries", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating QueryPackQueriesClient: %+v", err) } + + return &QueryPackQueriesClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesdelete.go new file mode 100644 index 000000000000..39ddfb9e4d71 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesdelete.go @@ -0,0 +1,47 @@ +package querypackqueries + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type QueriesDeleteOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData +} + +// QueriesDelete ... +func (c QueryPackQueriesClient) QueriesDelete(ctx context.Context, id QueryId) (result QueriesDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesdelete_autorest.go deleted file mode 100644 index 6c6f8cc8b5c3..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesdelete_autorest.go +++ /dev/null @@ -1,66 +0,0 @@ -package querypackqueries - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type QueriesDeleteOperationResponse struct { - HttpResponse *http.Response -} - -// QueriesDelete ... -func (c QueryPackQueriesClient) QueriesDelete(ctx context.Context, id QueryId) (result QueriesDeleteOperationResponse, err error) { - req, err := c.preparerForQueriesDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesDelete", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesDelete", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForQueriesDelete(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesDelete", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForQueriesDelete prepares the QueriesDelete request. -func (c QueryPackQueriesClient) preparerForQueriesDelete(ctx context.Context, id QueryId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForQueriesDelete handles the response to the QueriesDelete request. The method always -// closes the http.Response Body. -func (c QueryPackQueriesClient) responderForQueriesDelete(resp *http.Response) (result QueriesDeleteOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesget.go new file mode 100644 index 000000000000..beea6734afe7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesget.go @@ -0,0 +1,51 @@ +package querypackqueries + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type QueriesGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *LogAnalyticsQueryPackQuery +} + +// QueriesGet ... +func (c QueryPackQueriesClient) QueriesGet(ctx context.Context, id QueryId) (result QueriesGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesget_autorest.go deleted file mode 100644 index c0b0ae8325d6..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesget_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package querypackqueries - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type QueriesGetOperationResponse struct { - HttpResponse *http.Response - Model *LogAnalyticsQueryPackQuery -} - -// QueriesGet ... -func (c QueryPackQueriesClient) QueriesGet(ctx context.Context, id QueryId) (result QueriesGetOperationResponse, err error) { - req, err := c.preparerForQueriesGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesGet", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesGet", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForQueriesGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesGet", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForQueriesGet prepares the QueriesGet request. -func (c QueryPackQueriesClient) preparerForQueriesGet(ctx context.Context, id QueryId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForQueriesGet handles the response to the QueriesGet request. The method always -// closes the http.Response Body. -func (c QueryPackQueriesClient) responderForQueriesGet(resp *http.Response) (result QueriesGetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_querieslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_querieslist.go new file mode 100644 index 000000000000..72c409b8282b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_querieslist.go @@ -0,0 +1,121 @@ +package querypackqueries + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type QueriesListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]LogAnalyticsQueryPackQuery +} + +type QueriesListCompleteResult struct { + Items []LogAnalyticsQueryPackQuery +} + +type QueriesListOperationOptions struct { + IncludeBody *bool + Top *int64 +} + +func DefaultQueriesListOperationOptions() QueriesListOperationOptions { + return QueriesListOperationOptions{} +} + +func (o QueriesListOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o QueriesListOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o QueriesListOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.IncludeBody != nil { + out.Append("includeBody", fmt.Sprintf("%v", *o.IncludeBody)) + } + if o.Top != nil { + out.Append("$top", fmt.Sprintf("%v", *o.Top)) + } + return &out +} + +// QueriesList ... +func (c QueryPackQueriesClient) QueriesList(ctx context.Context, id QueryPackId, options QueriesListOperationOptions) (result QueriesListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/queries", id.ID()), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]LogAnalyticsQueryPackQuery `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// QueriesListComplete retrieves all the results into a single object +func (c QueryPackQueriesClient) QueriesListComplete(ctx context.Context, id QueryPackId, options QueriesListOperationOptions) (QueriesListCompleteResult, error) { + return c.QueriesListCompleteMatchingPredicate(ctx, id, options, LogAnalyticsQueryPackQueryOperationPredicate{}) +} + +// QueriesListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c QueryPackQueriesClient) QueriesListCompleteMatchingPredicate(ctx context.Context, id QueryPackId, options QueriesListOperationOptions, predicate LogAnalyticsQueryPackQueryOperationPredicate) (result QueriesListCompleteResult, err error) { + items := make([]LogAnalyticsQueryPackQuery, 0) + + resp, err := c.QueriesList(ctx, id, options) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = QueriesListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_querieslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_querieslist_autorest.go deleted file mode 100644 index 285bef7f5a4d..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_querieslist_autorest.go +++ /dev/null @@ -1,220 +0,0 @@ -package querypackqueries - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type QueriesListOperationResponse struct { - HttpResponse *http.Response - Model *[]LogAnalyticsQueryPackQuery - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (QueriesListOperationResponse, error) -} - -type QueriesListCompleteResult struct { - Items []LogAnalyticsQueryPackQuery -} - -func (r QueriesListOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r QueriesListOperationResponse) LoadMore(ctx context.Context) (resp QueriesListOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -type QueriesListOperationOptions struct { - IncludeBody *bool - Top *int64 -} - -func DefaultQueriesListOperationOptions() QueriesListOperationOptions { - return QueriesListOperationOptions{} -} - -func (o QueriesListOperationOptions) toHeaders() map[string]interface{} { - out := make(map[string]interface{}) - - return out -} - -func (o QueriesListOperationOptions) toQueryString() map[string]interface{} { - out := make(map[string]interface{}) - - if o.IncludeBody != nil { - out["includeBody"] = *o.IncludeBody - } - - if o.Top != nil { - out["$top"] = *o.Top - } - - return out -} - -// QueriesList ... -func (c QueryPackQueriesClient) QueriesList(ctx context.Context, id QueryPackId, options QueriesListOperationOptions) (resp QueriesListOperationResponse, err error) { - req, err := c.preparerForQueriesList(ctx, id, options) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesList", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesList", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForQueriesList(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesList", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForQueriesList prepares the QueriesList request. -func (c QueryPackQueriesClient) preparerForQueriesList(ctx context.Context, id QueryPackId, options QueriesListOperationOptions) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - for k, v := range options.toQueryString() { - queryParameters[k] = autorest.Encode("query", v) - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithHeaders(options.toHeaders()), - autorest.WithPath(fmt.Sprintf("%s/queries", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForQueriesListWithNextLink prepares the QueriesList request with the given nextLink token. -func (c QueryPackQueriesClient) preparerForQueriesListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForQueriesList handles the response to the QueriesList request. The method always -// closes the http.Response Body. -func (c QueryPackQueriesClient) responderForQueriesList(resp *http.Response) (result QueriesListOperationResponse, err error) { - type page struct { - Values []LogAnalyticsQueryPackQuery `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result QueriesListOperationResponse, err error) { - req, err := c.preparerForQueriesListWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesList", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesList", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForQueriesList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesList", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// QueriesListComplete retrieves all of the results into a single object -func (c QueryPackQueriesClient) QueriesListComplete(ctx context.Context, id QueryPackId, options QueriesListOperationOptions) (QueriesListCompleteResult, error) { - return c.QueriesListCompleteMatchingPredicate(ctx, id, options, LogAnalyticsQueryPackQueryOperationPredicate{}) -} - -// QueriesListCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c QueryPackQueriesClient) QueriesListCompleteMatchingPredicate(ctx context.Context, id QueryPackId, options QueriesListOperationOptions, predicate LogAnalyticsQueryPackQueryOperationPredicate) (resp QueriesListCompleteResult, err error) { - items := make([]LogAnalyticsQueryPackQuery, 0) - - page, err := c.QueriesList(ctx, id, options) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := QueriesListCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesput.go new file mode 100644 index 000000000000..4a8ba07a5066 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesput.go @@ -0,0 +1,55 @@ +package querypackqueries + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type QueriesPutOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *LogAnalyticsQueryPackQuery +} + +// QueriesPut ... +func (c QueryPackQueriesClient) QueriesPut(ctx context.Context, id QueryId, input LogAnalyticsQueryPackQuery) (result QueriesPutOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesput_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesput_autorest.go deleted file mode 100644 index 9a583ec32af0..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesput_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package querypackqueries - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type QueriesPutOperationResponse struct { - HttpResponse *http.Response - Model *LogAnalyticsQueryPackQuery -} - -// QueriesPut ... -func (c QueryPackQueriesClient) QueriesPut(ctx context.Context, id QueryId, input LogAnalyticsQueryPackQuery) (result QueriesPutOperationResponse, err error) { - req, err := c.preparerForQueriesPut(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesPut", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesPut", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForQueriesPut(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesPut", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForQueriesPut prepares the QueriesPut request. -func (c QueryPackQueriesClient) preparerForQueriesPut(ctx context.Context, id QueryId, input LogAnalyticsQueryPackQuery) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForQueriesPut handles the response to the QueriesPut request. The method always -// closes the http.Response Body. -func (c QueryPackQueriesClient) responderForQueriesPut(resp *http.Response) (result QueriesPutOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriessearch.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriessearch.go new file mode 100644 index 000000000000..2a9e52eb2211 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriessearch.go @@ -0,0 +1,121 @@ +package querypackqueries + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type QueriesSearchOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]LogAnalyticsQueryPackQuery +} + +type QueriesSearchCompleteResult struct { + Items []LogAnalyticsQueryPackQuery +} + +type QueriesSearchOperationOptions struct { + IncludeBody *bool + Top *int64 +} + +func DefaultQueriesSearchOperationOptions() QueriesSearchOperationOptions { + return QueriesSearchOperationOptions{} +} + +func (o QueriesSearchOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o QueriesSearchOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o QueriesSearchOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.IncludeBody != nil { + out.Append("includeBody", fmt.Sprintf("%v", *o.IncludeBody)) + } + if o.Top != nil { + out.Append("$top", fmt.Sprintf("%v", *o.Top)) + } + return &out +} + +// QueriesSearch ... +func (c QueryPackQueriesClient) QueriesSearch(ctx context.Context, id QueryPackId, input LogAnalyticsQueryPackQuerySearchProperties, options QueriesSearchOperationOptions) (result QueriesSearchOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/queries/search", id.ID()), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]LogAnalyticsQueryPackQuery `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// QueriesSearchComplete retrieves all the results into a single object +func (c QueryPackQueriesClient) QueriesSearchComplete(ctx context.Context, id QueryPackId, input LogAnalyticsQueryPackQuerySearchProperties, options QueriesSearchOperationOptions) (QueriesSearchCompleteResult, error) { + return c.QueriesSearchCompleteMatchingPredicate(ctx, id, input, options, LogAnalyticsQueryPackQueryOperationPredicate{}) +} + +// QueriesSearchCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c QueryPackQueriesClient) QueriesSearchCompleteMatchingPredicate(ctx context.Context, id QueryPackId, input LogAnalyticsQueryPackQuerySearchProperties, options QueriesSearchOperationOptions, predicate LogAnalyticsQueryPackQueryOperationPredicate) (result QueriesSearchCompleteResult, err error) { + items := make([]LogAnalyticsQueryPackQuery, 0) + + resp, err := c.QueriesSearch(ctx, id, input, options) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = QueriesSearchCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriessearch_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriessearch_autorest.go deleted file mode 100644 index d4abe5bc8f52..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriessearch_autorest.go +++ /dev/null @@ -1,221 +0,0 @@ -package querypackqueries - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type QueriesSearchOperationResponse struct { - HttpResponse *http.Response - Model *[]LogAnalyticsQueryPackQuery - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (QueriesSearchOperationResponse, error) -} - -type QueriesSearchCompleteResult struct { - Items []LogAnalyticsQueryPackQuery -} - -func (r QueriesSearchOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r QueriesSearchOperationResponse) LoadMore(ctx context.Context) (resp QueriesSearchOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -type QueriesSearchOperationOptions struct { - IncludeBody *bool - Top *int64 -} - -func DefaultQueriesSearchOperationOptions() QueriesSearchOperationOptions { - return QueriesSearchOperationOptions{} -} - -func (o QueriesSearchOperationOptions) toHeaders() map[string]interface{} { - out := make(map[string]interface{}) - - return out -} - -func (o QueriesSearchOperationOptions) toQueryString() map[string]interface{} { - out := make(map[string]interface{}) - - if o.IncludeBody != nil { - out["includeBody"] = *o.IncludeBody - } - - if o.Top != nil { - out["$top"] = *o.Top - } - - return out -} - -// QueriesSearch ... -func (c QueryPackQueriesClient) QueriesSearch(ctx context.Context, id QueryPackId, input LogAnalyticsQueryPackQuerySearchProperties, options QueriesSearchOperationOptions) (resp QueriesSearchOperationResponse, err error) { - req, err := c.preparerForQueriesSearch(ctx, id, input, options) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesSearch", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesSearch", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForQueriesSearch(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesSearch", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForQueriesSearch prepares the QueriesSearch request. -func (c QueryPackQueriesClient) preparerForQueriesSearch(ctx context.Context, id QueryPackId, input LogAnalyticsQueryPackQuerySearchProperties, options QueriesSearchOperationOptions) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - for k, v := range options.toQueryString() { - queryParameters[k] = autorest.Encode("query", v) - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPost(), - autorest.WithBaseURL(c.baseUri), - autorest.WithHeaders(options.toHeaders()), - autorest.WithPath(fmt.Sprintf("%s/queries/search", id.ID())), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForQueriesSearchWithNextLink prepares the QueriesSearch request with the given nextLink token. -func (c QueryPackQueriesClient) preparerForQueriesSearchWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPost(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForQueriesSearch handles the response to the QueriesSearch request. The method always -// closes the http.Response Body. -func (c QueryPackQueriesClient) responderForQueriesSearch(resp *http.Response) (result QueriesSearchOperationResponse, err error) { - type page struct { - Values []LogAnalyticsQueryPackQuery `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result QueriesSearchOperationResponse, err error) { - req, err := c.preparerForQueriesSearchWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesSearch", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesSearch", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForQueriesSearch(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesSearch", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// QueriesSearchComplete retrieves all of the results into a single object -func (c QueryPackQueriesClient) QueriesSearchComplete(ctx context.Context, id QueryPackId, input LogAnalyticsQueryPackQuerySearchProperties, options QueriesSearchOperationOptions) (QueriesSearchCompleteResult, error) { - return c.QueriesSearchCompleteMatchingPredicate(ctx, id, input, options, LogAnalyticsQueryPackQueryOperationPredicate{}) -} - -// QueriesSearchCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c QueryPackQueriesClient) QueriesSearchCompleteMatchingPredicate(ctx context.Context, id QueryPackId, input LogAnalyticsQueryPackQuerySearchProperties, options QueriesSearchOperationOptions, predicate LogAnalyticsQueryPackQueryOperationPredicate) (resp QueriesSearchCompleteResult, err error) { - items := make([]LogAnalyticsQueryPackQuery, 0) - - page, err := c.QueriesSearch(ctx, id, input, options) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := QueriesSearchCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesupdate.go new file mode 100644 index 000000000000..802623e277f7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesupdate.go @@ -0,0 +1,55 @@ +package querypackqueries + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type QueriesUpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *LogAnalyticsQueryPackQuery +} + +// QueriesUpdate ... +func (c QueryPackQueriesClient) QueriesUpdate(ctx context.Context, id QueryId, input LogAnalyticsQueryPackQuery) (result QueriesUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesupdate_autorest.go deleted file mode 100644 index f997b9547adb..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries/method_queriesupdate_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package querypackqueries - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type QueriesUpdateOperationResponse struct { - HttpResponse *http.Response - Model *LogAnalyticsQueryPackQuery -} - -// QueriesUpdate ... -func (c QueryPackQueriesClient) QueriesUpdate(ctx context.Context, id QueryId, input LogAnalyticsQueryPackQuery) (result QueriesUpdateOperationResponse, err error) { - req, err := c.preparerForQueriesUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesUpdate", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesUpdate", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForQueriesUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypackqueries.QueryPackQueriesClient", "QueriesUpdate", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForQueriesUpdate prepares the QueriesUpdate request. -func (c QueryPackQueriesClient) preparerForQueriesUpdate(ctx context.Context, id QueryId, input LogAnalyticsQueryPackQuery) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPatch(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForQueriesUpdate handles the response to the QueriesUpdate request. The method always -// closes the http.Response Body. -func (c QueryPackQueriesClient) responderForQueriesUpdate(resp *http.Response) (result QueriesUpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/client.go index 9dca658ee8e3..0fc8fcf5c5c9 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/client.go @@ -1,18 +1,26 @@ package querypacks -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type QueryPacksClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewQueryPacksClientWithBaseURI(endpoint string) QueryPacksClient { - return QueryPacksClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewQueryPacksClientWithBaseURI(sdkApi sdkEnv.Api) (*QueryPacksClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "querypacks", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating QueryPacksClient: %+v", err) } + + return &QueryPacksClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdate.go new file mode 100644 index 000000000000..71b3da2be417 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdate.go @@ -0,0 +1,55 @@ +package querypacks + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type QueryPacksCreateOrUpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *LogAnalyticsQueryPack +} + +// QueryPacksCreateOrUpdate ... +func (c QueryPacksClient) QueryPacksCreateOrUpdate(ctx context.Context, id QueryPackId, input LogAnalyticsQueryPack) (result QueryPacksCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdate_autorest.go deleted file mode 100644 index bf9b8ec8aaa9..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdate_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package querypacks - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type QueryPacksCreateOrUpdateOperationResponse struct { - HttpResponse *http.Response - Model *LogAnalyticsQueryPack -} - -// QueryPacksCreateOrUpdate ... -func (c QueryPacksClient) QueryPacksCreateOrUpdate(ctx context.Context, id QueryPackId, input LogAnalyticsQueryPack) (result QueryPacksCreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForQueryPacksCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksCreateOrUpdate", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksCreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForQueryPacksCreateOrUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksCreateOrUpdate", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForQueryPacksCreateOrUpdate prepares the QueryPacksCreateOrUpdate request. -func (c QueryPacksClient) preparerForQueryPacksCreateOrUpdate(ctx context.Context, id QueryPackId, input LogAnalyticsQueryPack) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForQueryPacksCreateOrUpdate handles the response to the QueryPacksCreateOrUpdate request. The method always -// closes the http.Response Body. -func (c QueryPacksClient) responderForQueryPacksCreateOrUpdate(resp *http.Response) (result QueryPacksCreateOrUpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdatewithoutname.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdatewithoutname.go new file mode 100644 index 000000000000..54aa3868fe85 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdatewithoutname.go @@ -0,0 +1,57 @@ +package querypacks + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type QueryPacksCreateOrUpdateWithoutNameOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *LogAnalyticsQueryPack +} + +// QueryPacksCreateOrUpdateWithoutName ... +func (c QueryPacksClient) QueryPacksCreateOrUpdateWithoutName(ctx context.Context, id commonids.ResourceGroupId, input LogAnalyticsQueryPack) (result QueryPacksCreateOrUpdateWithoutNameOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + }, + HttpMethod: http.MethodPut, + Path: fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/queryPacks", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdatewithoutname_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdatewithoutname_autorest.go deleted file mode 100644 index c3b46b529d65..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdatewithoutname_autorest.go +++ /dev/null @@ -1,71 +0,0 @@ -package querypacks - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type QueryPacksCreateOrUpdateWithoutNameOperationResponse struct { - HttpResponse *http.Response - Model *LogAnalyticsQueryPack -} - -// QueryPacksCreateOrUpdateWithoutName ... -func (c QueryPacksClient) QueryPacksCreateOrUpdateWithoutName(ctx context.Context, id commonids.ResourceGroupId, input LogAnalyticsQueryPack) (result QueryPacksCreateOrUpdateWithoutNameOperationResponse, err error) { - req, err := c.preparerForQueryPacksCreateOrUpdateWithoutName(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksCreateOrUpdateWithoutName", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksCreateOrUpdateWithoutName", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForQueryPacksCreateOrUpdateWithoutName(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksCreateOrUpdateWithoutName", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForQueryPacksCreateOrUpdateWithoutName prepares the QueryPacksCreateOrUpdateWithoutName request. -func (c QueryPacksClient) preparerForQueryPacksCreateOrUpdateWithoutName(ctx context.Context, id commonids.ResourceGroupId, input LogAnalyticsQueryPack) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/queryPacks", id.ID())), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForQueryPacksCreateOrUpdateWithoutName handles the response to the QueryPacksCreateOrUpdateWithoutName request. The method always -// closes the http.Response Body. -func (c QueryPacksClient) responderForQueryPacksCreateOrUpdateWithoutName(resp *http.Response) (result QueryPacksCreateOrUpdateWithoutNameOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusCreated), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksdelete.go new file mode 100644 index 000000000000..5eae5b2fb4cb --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksdelete.go @@ -0,0 +1,47 @@ +package querypacks + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type QueryPacksDeleteOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData +} + +// QueryPacksDelete ... +func (c QueryPacksClient) QueryPacksDelete(ctx context.Context, id QueryPackId) (result QueryPacksDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksdelete_autorest.go deleted file mode 100644 index d3ac8488cbe6..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksdelete_autorest.go +++ /dev/null @@ -1,66 +0,0 @@ -package querypacks - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type QueryPacksDeleteOperationResponse struct { - HttpResponse *http.Response -} - -// QueryPacksDelete ... -func (c QueryPacksClient) QueryPacksDelete(ctx context.Context, id QueryPackId) (result QueryPacksDeleteOperationResponse, err error) { - req, err := c.preparerForQueryPacksDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksDelete", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksDelete", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForQueryPacksDelete(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksDelete", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForQueryPacksDelete prepares the QueryPacksDelete request. -func (c QueryPacksClient) preparerForQueryPacksDelete(ctx context.Context, id QueryPackId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForQueryPacksDelete handles the response to the QueryPacksDelete request. The method always -// closes the http.Response Body. -func (c QueryPacksClient) responderForQueryPacksDelete(resp *http.Response) (result QueryPacksDeleteOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksget.go new file mode 100644 index 000000000000..5844470a58df --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksget.go @@ -0,0 +1,51 @@ +package querypacks + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type QueryPacksGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *LogAnalyticsQueryPack +} + +// QueryPacksGet ... +func (c QueryPacksClient) QueryPacksGet(ctx context.Context, id QueryPackId) (result QueryPacksGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksget_autorest.go deleted file mode 100644 index 813cfcc911fc..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksget_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package querypacks - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type QueryPacksGetOperationResponse struct { - HttpResponse *http.Response - Model *LogAnalyticsQueryPack -} - -// QueryPacksGet ... -func (c QueryPacksClient) QueryPacksGet(ctx context.Context, id QueryPackId) (result QueryPacksGetOperationResponse, err error) { - req, err := c.preparerForQueryPacksGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksGet", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksGet", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForQueryPacksGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksGet", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForQueryPacksGet prepares the QueryPacksGet request. -func (c QueryPacksClient) preparerForQueryPacksGet(ctx context.Context, id QueryPackId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForQueryPacksGet handles the response to the QueryPacksGet request. The method always -// closes the http.Response Body. -func (c QueryPacksClient) responderForQueryPacksGet(resp *http.Response) (result QueryPacksGetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslist.go new file mode 100644 index 000000000000..008fc4bb5a48 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslist.go @@ -0,0 +1,90 @@ +package querypacks + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type QueryPacksListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]LogAnalyticsQueryPack +} + +type QueryPacksListCompleteResult struct { + Items []LogAnalyticsQueryPack +} + +// QueryPacksList ... +func (c QueryPacksClient) QueryPacksList(ctx context.Context, id commonids.SubscriptionId) (result QueryPacksListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/queryPacks", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]LogAnalyticsQueryPack `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// QueryPacksListComplete retrieves all the results into a single object +func (c QueryPacksClient) QueryPacksListComplete(ctx context.Context, id commonids.SubscriptionId) (QueryPacksListCompleteResult, error) { + return c.QueryPacksListCompleteMatchingPredicate(ctx, id, LogAnalyticsQueryPackOperationPredicate{}) +} + +// QueryPacksListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c QueryPacksClient) QueryPacksListCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate LogAnalyticsQueryPackOperationPredicate) (result QueryPacksListCompleteResult, err error) { + items := make([]LogAnalyticsQueryPack, 0) + + resp, err := c.QueryPacksList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = QueryPacksListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslist_autorest.go deleted file mode 100644 index b7f9faa72b9c..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslist_autorest.go +++ /dev/null @@ -1,187 +0,0 @@ -package querypacks - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type QueryPacksListOperationResponse struct { - HttpResponse *http.Response - Model *[]LogAnalyticsQueryPack - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (QueryPacksListOperationResponse, error) -} - -type QueryPacksListCompleteResult struct { - Items []LogAnalyticsQueryPack -} - -func (r QueryPacksListOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r QueryPacksListOperationResponse) LoadMore(ctx context.Context) (resp QueryPacksListOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// QueryPacksList ... -func (c QueryPacksClient) QueryPacksList(ctx context.Context, id commonids.SubscriptionId) (resp QueryPacksListOperationResponse, err error) { - req, err := c.preparerForQueryPacksList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksList", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksList", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForQueryPacksList(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksList", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForQueryPacksList prepares the QueryPacksList request. -func (c QueryPacksClient) preparerForQueryPacksList(ctx context.Context, id commonids.SubscriptionId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/queryPacks", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForQueryPacksListWithNextLink prepares the QueryPacksList request with the given nextLink token. -func (c QueryPacksClient) preparerForQueryPacksListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForQueryPacksList handles the response to the QueryPacksList request. The method always -// closes the http.Response Body. -func (c QueryPacksClient) responderForQueryPacksList(resp *http.Response) (result QueryPacksListOperationResponse, err error) { - type page struct { - Values []LogAnalyticsQueryPack `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result QueryPacksListOperationResponse, err error) { - req, err := c.preparerForQueryPacksListWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksList", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksList", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForQueryPacksList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksList", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// QueryPacksListComplete retrieves all of the results into a single object -func (c QueryPacksClient) QueryPacksListComplete(ctx context.Context, id commonids.SubscriptionId) (QueryPacksListCompleteResult, error) { - return c.QueryPacksListCompleteMatchingPredicate(ctx, id, LogAnalyticsQueryPackOperationPredicate{}) -} - -// QueryPacksListCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c QueryPacksClient) QueryPacksListCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate LogAnalyticsQueryPackOperationPredicate) (resp QueryPacksListCompleteResult, err error) { - items := make([]LogAnalyticsQueryPack, 0) - - page, err := c.QueryPacksList(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := QueryPacksListCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslistbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslistbyresourcegroup.go new file mode 100644 index 000000000000..148edebb6b2c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslistbyresourcegroup.go @@ -0,0 +1,90 @@ +package querypacks + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type QueryPacksListByResourceGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]LogAnalyticsQueryPack +} + +type QueryPacksListByResourceGroupCompleteResult struct { + Items []LogAnalyticsQueryPack +} + +// QueryPacksListByResourceGroup ... +func (c QueryPacksClient) QueryPacksListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result QueryPacksListByResourceGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/queryPacks", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]LogAnalyticsQueryPack `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// QueryPacksListByResourceGroupComplete retrieves all the results into a single object +func (c QueryPacksClient) QueryPacksListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (QueryPacksListByResourceGroupCompleteResult, error) { + return c.QueryPacksListByResourceGroupCompleteMatchingPredicate(ctx, id, LogAnalyticsQueryPackOperationPredicate{}) +} + +// QueryPacksListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c QueryPacksClient) QueryPacksListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate LogAnalyticsQueryPackOperationPredicate) (result QueryPacksListByResourceGroupCompleteResult, err error) { + items := make([]LogAnalyticsQueryPack, 0) + + resp, err := c.QueryPacksListByResourceGroup(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = QueryPacksListByResourceGroupCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslistbyresourcegroup_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslistbyresourcegroup_autorest.go deleted file mode 100644 index 00ee03ac370d..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslistbyresourcegroup_autorest.go +++ /dev/null @@ -1,187 +0,0 @@ -package querypacks - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type QueryPacksListByResourceGroupOperationResponse struct { - HttpResponse *http.Response - Model *[]LogAnalyticsQueryPack - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (QueryPacksListByResourceGroupOperationResponse, error) -} - -type QueryPacksListByResourceGroupCompleteResult struct { - Items []LogAnalyticsQueryPack -} - -func (r QueryPacksListByResourceGroupOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r QueryPacksListByResourceGroupOperationResponse) LoadMore(ctx context.Context) (resp QueryPacksListByResourceGroupOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// QueryPacksListByResourceGroup ... -func (c QueryPacksClient) QueryPacksListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (resp QueryPacksListByResourceGroupOperationResponse, err error) { - req, err := c.preparerForQueryPacksListByResourceGroup(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksListByResourceGroup", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksListByResourceGroup", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForQueryPacksListByResourceGroup(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksListByResourceGroup", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForQueryPacksListByResourceGroup prepares the QueryPacksListByResourceGroup request. -func (c QueryPacksClient) preparerForQueryPacksListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/queryPacks", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForQueryPacksListByResourceGroupWithNextLink prepares the QueryPacksListByResourceGroup request with the given nextLink token. -func (c QueryPacksClient) preparerForQueryPacksListByResourceGroupWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForQueryPacksListByResourceGroup handles the response to the QueryPacksListByResourceGroup request. The method always -// closes the http.Response Body. -func (c QueryPacksClient) responderForQueryPacksListByResourceGroup(resp *http.Response) (result QueryPacksListByResourceGroupOperationResponse, err error) { - type page struct { - Values []LogAnalyticsQueryPack `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result QueryPacksListByResourceGroupOperationResponse, err error) { - req, err := c.preparerForQueryPacksListByResourceGroupWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksListByResourceGroup", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksListByResourceGroup", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForQueryPacksListByResourceGroup(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksListByResourceGroup", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// QueryPacksListByResourceGroupComplete retrieves all of the results into a single object -func (c QueryPacksClient) QueryPacksListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (QueryPacksListByResourceGroupCompleteResult, error) { - return c.QueryPacksListByResourceGroupCompleteMatchingPredicate(ctx, id, LogAnalyticsQueryPackOperationPredicate{}) -} - -// QueryPacksListByResourceGroupCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c QueryPacksClient) QueryPacksListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate LogAnalyticsQueryPackOperationPredicate) (resp QueryPacksListByResourceGroupCompleteResult, err error) { - items := make([]LogAnalyticsQueryPack, 0) - - page, err := c.QueryPacksListByResourceGroup(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := QueryPacksListByResourceGroupCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksupdatetags.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksupdatetags.go new file mode 100644 index 000000000000..6efa3a9b9dda --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksupdatetags.go @@ -0,0 +1,55 @@ +package querypacks + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type QueryPacksUpdateTagsOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *LogAnalyticsQueryPack +} + +// QueryPacksUpdateTags ... +func (c QueryPacksClient) QueryPacksUpdateTags(ctx context.Context, id QueryPackId, input TagsResource) (result QueryPacksUpdateTagsOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksupdatetags_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksupdatetags_autorest.go deleted file mode 100644 index f35013ff45ca..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksupdatetags_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package querypacks - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type QueryPacksUpdateTagsOperationResponse struct { - HttpResponse *http.Response - Model *LogAnalyticsQueryPack -} - -// QueryPacksUpdateTags ... -func (c QueryPacksClient) QueryPacksUpdateTags(ctx context.Context, id QueryPackId, input TagsResource) (result QueryPacksUpdateTagsOperationResponse, err error) { - req, err := c.preparerForQueryPacksUpdateTags(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksUpdateTags", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksUpdateTags", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForQueryPacksUpdateTags(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "querypacks.QueryPacksClient", "QueryPacksUpdateTags", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForQueryPacksUpdateTags prepares the QueryPacksUpdateTags request. -func (c QueryPacksClient) preparerForQueryPacksUpdateTags(ctx context.Context, id QueryPackId, input TagsResource) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPatch(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForQueryPacksUpdateTags handles the response to the QueryPacksUpdateTags request. The method always -// closes the http.Response Body. -func (c QueryPacksClient) responderForQueryPacksUpdateTags(resp *http.Response) (result QueryPacksUpdateTagsOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/client.go index 1e6fabf8cbaa..e4ab7fd89ad8 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/client.go @@ -1,18 +1,26 @@ package clusters -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type ClustersClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewClustersClientWithBaseURI(endpoint string) ClustersClient { - return ClustersClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewClustersClientWithBaseURI(sdkApi sdkEnv.Api) (*ClustersClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "clusters", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating ClustersClient: %+v", err) } + + return &ClustersClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/constants.go index 5e119835b369..9475a28ffb43 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/constants.go @@ -1,6 +1,10 @@ package clusters -import "strings" +import ( + "encoding/json" + "fmt" + "strings" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. @@ -29,6 +33,19 @@ func PossibleValuesForClusterEntityStatus() []string { } } +func (s *ClusterEntityStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseClusterEntityStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseClusterEntityStatus(input string) (*ClusterEntityStatus, error) { vals := map[string]ClusterEntityStatus{ "canceled": ClusterEntityStatusCanceled, @@ -60,6 +77,19 @@ func PossibleValuesForClusterSkuNameEnum() []string { } } +func (s *ClusterSkuNameEnum) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseClusterSkuNameEnum(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseClusterSkuNameEnum(input string) (*ClusterSkuNameEnum, error) { vals := map[string]ClusterSkuNameEnum{ "capacityreservation": ClusterSkuNameEnumCapacityReservation, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_createorupdate.go new file mode 100644 index 000000000000..c98ff96d4094 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_createorupdate.go @@ -0,0 +1,75 @@ +package clusters + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CreateOrUpdate ... +func (c ClustersClient) CreateOrUpdate(ctx context.Context, id ClusterId, input Cluster) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c ClustersClient) CreateOrUpdateThenPoll(ctx context.Context, id ClusterId, input Cluster) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_createorupdate_autorest.go deleted file mode 100644 index 1e25becc0a42..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_createorupdate_autorest.go +++ /dev/null @@ -1,79 +0,0 @@ -package clusters - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// CreateOrUpdate ... -func (c ClustersClient) CreateOrUpdate(ctx context.Context, id ClusterId, input Cluster) (result CreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "CreateOrUpdate", nil, "Failure preparing request") - return - } - - result, err = c.senderForCreateOrUpdate(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "CreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed -func (c ClustersClient) CreateOrUpdateThenPoll(ctx context.Context, id ClusterId, input Cluster) error { - result, err := c.CreateOrUpdate(ctx, id, input) - if err != nil { - return fmt.Errorf("performing CreateOrUpdate: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after CreateOrUpdate: %+v", err) - } - - return nil -} - -// preparerForCreateOrUpdate prepares the CreateOrUpdate request. -func (c ClustersClient) preparerForCreateOrUpdate(ctx context.Context, id ClusterId, input Cluster) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForCreateOrUpdate sends the CreateOrUpdate request. The method will close the -// http.Response Body if it receives an error. -func (c ClustersClient) senderForCreateOrUpdate(ctx context.Context, req *http.Request) (future CreateOrUpdateOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_delete.go new file mode 100644 index 000000000000..913496fbe2af --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_delete.go @@ -0,0 +1,70 @@ +package clusters + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c ClustersClient) Delete(ctx context.Context, id ClusterId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c ClustersClient) DeleteThenPoll(ctx context.Context, id ClusterId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_delete_autorest.go deleted file mode 100644 index 285ecf817e5b..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_delete_autorest.go +++ /dev/null @@ -1,78 +0,0 @@ -package clusters - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// Delete ... -func (c ClustersClient) Delete(ctx context.Context, id ClusterId) (result DeleteOperationResponse, err error) { - req, err := c.preparerForDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "Delete", nil, "Failure preparing request") - return - } - - result, err = c.senderForDelete(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "Delete", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// DeleteThenPoll performs Delete then polls until it's completed -func (c ClustersClient) DeleteThenPoll(ctx context.Context, id ClusterId) error { - result, err := c.Delete(ctx, id) - if err != nil { - return fmt.Errorf("performing Delete: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after Delete: %+v", err) - } - - return nil -} - -// preparerForDelete prepares the Delete request. -func (c ClustersClient) preparerForDelete(ctx context.Context, id ClusterId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForDelete sends the Delete request. The method will close the -// http.Response Body if it receives an error. -func (c ClustersClient) senderForDelete(ctx context.Context, req *http.Request) (future DeleteOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_get.go new file mode 100644 index 000000000000..34ea1e2c3d02 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_get.go @@ -0,0 +1,51 @@ +package clusters + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Cluster +} + +// Get ... +func (c ClustersClient) Get(ctx context.Context, id ClusterId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_get_autorest.go deleted file mode 100644 index 2957d3dd8de8..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_get_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package clusters - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - Model *Cluster -} - -// Get ... -func (c ClustersClient) Get(ctx context.Context, id ClusterId) (result GetOperationResponse, err error) { - req, err := c.preparerForGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "Get", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "Get", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "Get", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGet prepares the Get request. -func (c ClustersClient) preparerForGet(ctx context.Context, id ClusterId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGet handles the response to the Get request. The method always -// closes the http.Response Body. -func (c ClustersClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_list.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_list.go new file mode 100644 index 000000000000..8f3ecedcc3f8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_list.go @@ -0,0 +1,90 @@ +package clusters + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]Cluster +} + +type ListCompleteResult struct { + Items []Cluster +} + +// List ... +func (c ClustersClient) List(ctx context.Context, id commonids.SubscriptionId) (result ListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/clusters", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]Cluster `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListComplete retrieves all the results into a single object +func (c ClustersClient) ListComplete(ctx context.Context, id commonids.SubscriptionId) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, ClusterOperationPredicate{}) +} + +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c ClustersClient) ListCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate ClusterOperationPredicate) (result ListCompleteResult, err error) { + items := make([]Cluster, 0) + + resp, err := c.List(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_list_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_list_autorest.go deleted file mode 100644 index bebd9c95fd59..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_list_autorest.go +++ /dev/null @@ -1,187 +0,0 @@ -package clusters - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListOperationResponse struct { - HttpResponse *http.Response - Model *[]Cluster - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (ListOperationResponse, error) -} - -type ListCompleteResult struct { - Items []Cluster -} - -func (r ListOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r ListOperationResponse) LoadMore(ctx context.Context) (resp ListOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// List ... -func (c ClustersClient) List(ctx context.Context, id commonids.SubscriptionId) (resp ListOperationResponse, err error) { - req, err := c.preparerForList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "List", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "List", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForList(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "List", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForList prepares the List request. -func (c ClustersClient) preparerForList(ctx context.Context, id commonids.SubscriptionId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/clusters", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForListWithNextLink prepares the List request with the given nextLink token. -func (c ClustersClient) preparerForListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForList handles the response to the List request. The method always -// closes the http.Response Body. -func (c ClustersClient) responderForList(resp *http.Response) (result ListOperationResponse, err error) { - type page struct { - Values []Cluster `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result ListOperationResponse, err error) { - req, err := c.preparerForListWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "List", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "List", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "List", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// ListComplete retrieves all of the results into a single object -func (c ClustersClient) ListComplete(ctx context.Context, id commonids.SubscriptionId) (ListCompleteResult, error) { - return c.ListCompleteMatchingPredicate(ctx, id, ClusterOperationPredicate{}) -} - -// ListCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c ClustersClient) ListCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate ClusterOperationPredicate) (resp ListCompleteResult, err error) { - items := make([]Cluster, 0) - - page, err := c.List(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := ListCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_listbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_listbyresourcegroup.go new file mode 100644 index 000000000000..6210f3fed88c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_listbyresourcegroup.go @@ -0,0 +1,90 @@ +package clusters + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByResourceGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]Cluster +} + +type ListByResourceGroupCompleteResult struct { + Items []Cluster +} + +// ListByResourceGroup ... +func (c ClustersClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/clusters", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]Cluster `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListByResourceGroupComplete retrieves all the results into a single object +func (c ClustersClient) ListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (ListByResourceGroupCompleteResult, error) { + return c.ListByResourceGroupCompleteMatchingPredicate(ctx, id, ClusterOperationPredicate{}) +} + +// ListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c ClustersClient) ListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate ClusterOperationPredicate) (result ListByResourceGroupCompleteResult, err error) { + items := make([]Cluster, 0) + + resp, err := c.ListByResourceGroup(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListByResourceGroupCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_listbyresourcegroup_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_listbyresourcegroup_autorest.go deleted file mode 100644 index b42c4d47becd..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_listbyresourcegroup_autorest.go +++ /dev/null @@ -1,187 +0,0 @@ -package clusters - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByResourceGroupOperationResponse struct { - HttpResponse *http.Response - Model *[]Cluster - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (ListByResourceGroupOperationResponse, error) -} - -type ListByResourceGroupCompleteResult struct { - Items []Cluster -} - -func (r ListByResourceGroupOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r ListByResourceGroupOperationResponse) LoadMore(ctx context.Context) (resp ListByResourceGroupOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// ListByResourceGroup ... -func (c ClustersClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (resp ListByResourceGroupOperationResponse, err error) { - req, err := c.preparerForListByResourceGroup(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "ListByResourceGroup", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "ListByResourceGroup", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForListByResourceGroup(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "ListByResourceGroup", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForListByResourceGroup prepares the ListByResourceGroup request. -func (c ClustersClient) preparerForListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/clusters", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForListByResourceGroupWithNextLink prepares the ListByResourceGroup request with the given nextLink token. -func (c ClustersClient) preparerForListByResourceGroupWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListByResourceGroup handles the response to the ListByResourceGroup request. The method always -// closes the http.Response Body. -func (c ClustersClient) responderForListByResourceGroup(resp *http.Response) (result ListByResourceGroupOperationResponse, err error) { - type page struct { - Values []Cluster `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result ListByResourceGroupOperationResponse, err error) { - req, err := c.preparerForListByResourceGroupWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "ListByResourceGroup", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "ListByResourceGroup", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListByResourceGroup(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "ListByResourceGroup", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// ListByResourceGroupComplete retrieves all of the results into a single object -func (c ClustersClient) ListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (ListByResourceGroupCompleteResult, error) { - return c.ListByResourceGroupCompleteMatchingPredicate(ctx, id, ClusterOperationPredicate{}) -} - -// ListByResourceGroupCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c ClustersClient) ListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate ClusterOperationPredicate) (resp ListByResourceGroupCompleteResult, err error) { - items := make([]Cluster, 0) - - page, err := c.ListByResourceGroup(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := ListByResourceGroupCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_update.go new file mode 100644 index 000000000000..16158c050402 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_update.go @@ -0,0 +1,55 @@ +package clusters + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Cluster +} + +// Update ... +func (c ClustersClient) Update(ctx context.Context, id ClusterId, input ClusterPatch) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_update_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_update_autorest.go deleted file mode 100644 index 1c8c83dd9674..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters/method_update_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package clusters - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type UpdateOperationResponse struct { - HttpResponse *http.Response - Model *Cluster -} - -// Update ... -func (c ClustersClient) Update(ctx context.Context, id ClusterId, input ClusterPatch) (result UpdateOperationResponse, err error) { - req, err := c.preparerForUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "Update", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "Update", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "clusters.ClustersClient", "Update", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForUpdate prepares the Update request. -func (c ClustersClient) preparerForUpdate(ctx context.Context, id ClusterId, input ClusterPatch) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPatch(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForUpdate handles the response to the Update request. The method always -// closes the http.Response Body. -func (c ClustersClient) responderForUpdate(resp *http.Response) (result UpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/client.go index 4aca9bfc0ef1..19ed82dc0f08 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/client.go @@ -1,18 +1,26 @@ package dataexport -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type DataExportClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewDataExportClientWithBaseURI(endpoint string) DataExportClient { - return DataExportClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewDataExportClientWithBaseURI(sdkApi sdkEnv.Api) (*DataExportClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "dataexport", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating DataExportClient: %+v", err) } + + return &DataExportClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/constants.go index 5c62870cfe70..c103dc9f1efe 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/constants.go @@ -1,6 +1,10 @@ package dataexport -import "strings" +import ( + "encoding/json" + "fmt" + "strings" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. @@ -19,6 +23,19 @@ func PossibleValuesForType() []string { } } +func (s *Type) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseType(input string) (*Type, error) { vals := map[string]Type{ "eventhub": TypeEventHub, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_createorupdate.go new file mode 100644 index 000000000000..fd04ee5dd4c8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_createorupdate.go @@ -0,0 +1,56 @@ +package dataexport + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *DataExport +} + +// CreateOrUpdate ... +func (c DataExportClient) CreateOrUpdate(ctx context.Context, id DataExportId, input DataExport) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_createorupdate_autorest.go deleted file mode 100644 index 4c42770fd7ca..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_createorupdate_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package dataexport - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - HttpResponse *http.Response - Model *DataExport -} - -// CreateOrUpdate ... -func (c DataExportClient) CreateOrUpdate(ctx context.Context, id DataExportId, input DataExport) (result CreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "dataexport.DataExportClient", "CreateOrUpdate", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "dataexport.DataExportClient", "CreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForCreateOrUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "dataexport.DataExportClient", "CreateOrUpdate", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForCreateOrUpdate prepares the CreateOrUpdate request. -func (c DataExportClient) preparerForCreateOrUpdate(ctx context.Context, id DataExportId, input DataExport) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForCreateOrUpdate handles the response to the CreateOrUpdate request. The method always -// closes the http.Response Body. -func (c DataExportClient) responderForCreateOrUpdate(resp *http.Response) (result CreateOrUpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusCreated, http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_delete.go new file mode 100644 index 000000000000..0955b9b73ef6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_delete.go @@ -0,0 +1,46 @@ +package dataexport + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c DataExportClient) Delete(ctx context.Context, id DataExportId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_delete_autorest.go deleted file mode 100644 index 1fa1131f73d1..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_delete_autorest.go +++ /dev/null @@ -1,66 +0,0 @@ -package dataexport - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - HttpResponse *http.Response -} - -// Delete ... -func (c DataExportClient) Delete(ctx context.Context, id DataExportId) (result DeleteOperationResponse, err error) { - req, err := c.preparerForDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "dataexport.DataExportClient", "Delete", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "dataexport.DataExportClient", "Delete", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForDelete(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "dataexport.DataExportClient", "Delete", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForDelete prepares the Delete request. -func (c DataExportClient) preparerForDelete(ctx context.Context, id DataExportId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForDelete handles the response to the Delete request. The method always -// closes the http.Response Body. -func (c DataExportClient) responderForDelete(resp *http.Response) (result DeleteOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_get.go new file mode 100644 index 000000000000..4bc93e4ad5eb --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_get.go @@ -0,0 +1,51 @@ +package dataexport + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *DataExport +} + +// Get ... +func (c DataExportClient) Get(ctx context.Context, id DataExportId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_get_autorest.go deleted file mode 100644 index 1675bd48c11d..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_get_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package dataexport - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - Model *DataExport -} - -// Get ... -func (c DataExportClient) Get(ctx context.Context, id DataExportId) (result GetOperationResponse, err error) { - req, err := c.preparerForGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "dataexport.DataExportClient", "Get", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "dataexport.DataExportClient", "Get", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "dataexport.DataExportClient", "Get", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGet prepares the Get request. -func (c DataExportClient) preparerForGet(ctx context.Context, id DataExportId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGet handles the response to the Get request. The method always -// closes the http.Response Body. -func (c DataExportClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_listbyworkspace.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_listbyworkspace.go new file mode 100644 index 000000000000..c001f3f168d2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_listbyworkspace.go @@ -0,0 +1,52 @@ +package dataexport + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByWorkspaceOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *DataExportListResult +} + +// ListByWorkspace ... +func (c DataExportClient) ListByWorkspace(ctx context.Context, id WorkspaceId) (result ListByWorkspaceOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/dataExports", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_listbyworkspace_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_listbyworkspace_autorest.go deleted file mode 100644 index 14169213ada5..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/dataexport/method_listbyworkspace_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package dataexport - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByWorkspaceOperationResponse struct { - HttpResponse *http.Response - Model *DataExportListResult -} - -// ListByWorkspace ... -func (c DataExportClient) ListByWorkspace(ctx context.Context, id WorkspaceId) (result ListByWorkspaceOperationResponse, err error) { - req, err := c.preparerForListByWorkspace(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "dataexport.DataExportClient", "ListByWorkspace", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "dataexport.DataExportClient", "ListByWorkspace", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListByWorkspace(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "dataexport.DataExportClient", "ListByWorkspace", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForListByWorkspace prepares the ListByWorkspace request. -func (c DataExportClient) preparerForListByWorkspace(ctx context.Context, id WorkspaceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/dataExports", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListByWorkspace handles the response to the ListByWorkspace request. The method always -// closes the http.Response Body. -func (c DataExportClient) responderForListByWorkspace(resp *http.Response) (result ListByWorkspaceOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/client.go index 1ec09b33527f..5c880321274b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/client.go @@ -1,18 +1,26 @@ package datasources -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type DataSourcesClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewDataSourcesClientWithBaseURI(endpoint string) DataSourcesClient { - return DataSourcesClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewDataSourcesClientWithBaseURI(sdkApi sdkEnv.Api) (*DataSourcesClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "datasources", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating DataSourcesClient: %+v", err) } + + return &DataSourcesClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/constants.go index b61d4a235fb7..91241eeca9fc 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/constants.go @@ -1,6 +1,10 @@ package datasources -import "strings" +import ( + "encoding/json" + "fmt" + "strings" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. @@ -81,6 +85,19 @@ func PossibleValuesForDataSourceKind() []string { } } +func (s *DataSourceKind) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseDataSourceKind(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseDataSourceKind(input string) (*DataSourceKind, error) { vals := map[string]DataSourceKind{ "applicationinsights": DataSourceKindApplicationInsights, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_createorupdate.go new file mode 100644 index 000000000000..1b25c39f829a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_createorupdate.go @@ -0,0 +1,56 @@ +package datasources + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *DataSource +} + +// CreateOrUpdate ... +func (c DataSourcesClient) CreateOrUpdate(ctx context.Context, id DataSourceId, input DataSource) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_createorupdate_autorest.go deleted file mode 100644 index 007b1f129669..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_createorupdate_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package datasources - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - HttpResponse *http.Response - Model *DataSource -} - -// CreateOrUpdate ... -func (c DataSourcesClient) CreateOrUpdate(ctx context.Context, id DataSourceId, input DataSource) (result CreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "CreateOrUpdate", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "CreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForCreateOrUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "CreateOrUpdate", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForCreateOrUpdate prepares the CreateOrUpdate request. -func (c DataSourcesClient) preparerForCreateOrUpdate(ctx context.Context, id DataSourceId, input DataSource) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForCreateOrUpdate handles the response to the CreateOrUpdate request. The method always -// closes the http.Response Body. -func (c DataSourcesClient) responderForCreateOrUpdate(resp *http.Response) (result CreateOrUpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusCreated, http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_delete.go new file mode 100644 index 000000000000..e997877cfd37 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_delete.go @@ -0,0 +1,47 @@ +package datasources + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c DataSourcesClient) Delete(ctx context.Context, id DataSourceId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_delete_autorest.go deleted file mode 100644 index 1168b534bb78..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_delete_autorest.go +++ /dev/null @@ -1,66 +0,0 @@ -package datasources - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - HttpResponse *http.Response -} - -// Delete ... -func (c DataSourcesClient) Delete(ctx context.Context, id DataSourceId) (result DeleteOperationResponse, err error) { - req, err := c.preparerForDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "Delete", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "Delete", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForDelete(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "Delete", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForDelete prepares the Delete request. -func (c DataSourcesClient) preparerForDelete(ctx context.Context, id DataSourceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForDelete handles the response to the Delete request. The method always -// closes the http.Response Body. -func (c DataSourcesClient) responderForDelete(resp *http.Response) (result DeleteOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_get.go new file mode 100644 index 000000000000..d199edae9680 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_get.go @@ -0,0 +1,51 @@ +package datasources + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *DataSource +} + +// Get ... +func (c DataSourcesClient) Get(ctx context.Context, id DataSourceId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_get_autorest.go deleted file mode 100644 index 9fad88b8bc42..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_get_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package datasources - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - Model *DataSource -} - -// Get ... -func (c DataSourcesClient) Get(ctx context.Context, id DataSourceId) (result GetOperationResponse, err error) { - req, err := c.preparerForGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "Get", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "Get", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "Get", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGet prepares the Get request. -func (c DataSourcesClient) preparerForGet(ctx context.Context, id DataSourceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGet handles the response to the Get request. The method always -// closes the http.Response Body. -func (c DataSourcesClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_listbyworkspace.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_listbyworkspace.go new file mode 100644 index 000000000000..d908faed8ede --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_listbyworkspace.go @@ -0,0 +1,117 @@ +package datasources + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByWorkspaceOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]DataSource +} + +type ListByWorkspaceCompleteResult struct { + Items []DataSource +} + +type ListByWorkspaceOperationOptions struct { + Filter *string +} + +func DefaultListByWorkspaceOperationOptions() ListByWorkspaceOperationOptions { + return ListByWorkspaceOperationOptions{} +} + +func (o ListByWorkspaceOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o ListByWorkspaceOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o ListByWorkspaceOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.Filter != nil { + out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) + } + return &out +} + +// ListByWorkspace ... +func (c DataSourcesClient) ListByWorkspace(ctx context.Context, id WorkspaceId, options ListByWorkspaceOperationOptions) (result ListByWorkspaceOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/dataSources", id.ID()), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]DataSource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListByWorkspaceComplete retrieves all the results into a single object +func (c DataSourcesClient) ListByWorkspaceComplete(ctx context.Context, id WorkspaceId, options ListByWorkspaceOperationOptions) (ListByWorkspaceCompleteResult, error) { + return c.ListByWorkspaceCompleteMatchingPredicate(ctx, id, options, DataSourceOperationPredicate{}) +} + +// ListByWorkspaceCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c DataSourcesClient) ListByWorkspaceCompleteMatchingPredicate(ctx context.Context, id WorkspaceId, options ListByWorkspaceOperationOptions, predicate DataSourceOperationPredicate) (result ListByWorkspaceCompleteResult, err error) { + items := make([]DataSource, 0) + + resp, err := c.ListByWorkspace(ctx, id, options) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListByWorkspaceCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_listbyworkspace_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_listbyworkspace_autorest.go deleted file mode 100644 index 8a8c0f3dd10a..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/datasources/method_listbyworkspace_autorest.go +++ /dev/null @@ -1,215 +0,0 @@ -package datasources - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByWorkspaceOperationResponse struct { - HttpResponse *http.Response - Model *[]DataSource - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (ListByWorkspaceOperationResponse, error) -} - -type ListByWorkspaceCompleteResult struct { - Items []DataSource -} - -func (r ListByWorkspaceOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r ListByWorkspaceOperationResponse) LoadMore(ctx context.Context) (resp ListByWorkspaceOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -type ListByWorkspaceOperationOptions struct { - Filter *string -} - -func DefaultListByWorkspaceOperationOptions() ListByWorkspaceOperationOptions { - return ListByWorkspaceOperationOptions{} -} - -func (o ListByWorkspaceOperationOptions) toHeaders() map[string]interface{} { - out := make(map[string]interface{}) - - return out -} - -func (o ListByWorkspaceOperationOptions) toQueryString() map[string]interface{} { - out := make(map[string]interface{}) - - if o.Filter != nil { - out["$filter"] = *o.Filter - } - - return out -} - -// ListByWorkspace ... -func (c DataSourcesClient) ListByWorkspace(ctx context.Context, id WorkspaceId, options ListByWorkspaceOperationOptions) (resp ListByWorkspaceOperationResponse, err error) { - req, err := c.preparerForListByWorkspace(ctx, id, options) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "ListByWorkspace", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "ListByWorkspace", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForListByWorkspace(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "ListByWorkspace", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForListByWorkspace prepares the ListByWorkspace request. -func (c DataSourcesClient) preparerForListByWorkspace(ctx context.Context, id WorkspaceId, options ListByWorkspaceOperationOptions) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - for k, v := range options.toQueryString() { - queryParameters[k] = autorest.Encode("query", v) - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithHeaders(options.toHeaders()), - autorest.WithPath(fmt.Sprintf("%s/dataSources", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForListByWorkspaceWithNextLink prepares the ListByWorkspace request with the given nextLink token. -func (c DataSourcesClient) preparerForListByWorkspaceWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListByWorkspace handles the response to the ListByWorkspace request. The method always -// closes the http.Response Body. -func (c DataSourcesClient) responderForListByWorkspace(resp *http.Response) (result ListByWorkspaceOperationResponse, err error) { - type page struct { - Values []DataSource `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result ListByWorkspaceOperationResponse, err error) { - req, err := c.preparerForListByWorkspaceWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "ListByWorkspace", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "ListByWorkspace", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListByWorkspace(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "datasources.DataSourcesClient", "ListByWorkspace", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// ListByWorkspaceComplete retrieves all of the results into a single object -func (c DataSourcesClient) ListByWorkspaceComplete(ctx context.Context, id WorkspaceId, options ListByWorkspaceOperationOptions) (ListByWorkspaceCompleteResult, error) { - return c.ListByWorkspaceCompleteMatchingPredicate(ctx, id, options, DataSourceOperationPredicate{}) -} - -// ListByWorkspaceCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c DataSourcesClient) ListByWorkspaceCompleteMatchingPredicate(ctx context.Context, id WorkspaceId, options ListByWorkspaceOperationOptions, predicate DataSourceOperationPredicate) (resp ListByWorkspaceCompleteResult, err error) { - items := make([]DataSource, 0) - - page, err := c.ListByWorkspace(ctx, id, options) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := ListByWorkspaceCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/client.go index d84cae22bb61..c016c4a2bb87 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/client.go @@ -1,18 +1,26 @@ package linkedservices -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type LinkedServicesClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewLinkedServicesClientWithBaseURI(endpoint string) LinkedServicesClient { - return LinkedServicesClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewLinkedServicesClientWithBaseURI(sdkApi sdkEnv.Api) (*LinkedServicesClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "linkedservices", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating LinkedServicesClient: %+v", err) } + + return &LinkedServicesClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/constants.go index 1649b980100e..8522d1f6cedb 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/constants.go @@ -1,6 +1,10 @@ package linkedservices -import "strings" +import ( + "encoding/json" + "fmt" + "strings" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. @@ -23,6 +27,19 @@ func PossibleValuesForLinkedServiceEntityStatus() []string { } } +func (s *LinkedServiceEntityStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseLinkedServiceEntityStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseLinkedServiceEntityStatus(input string) (*LinkedServiceEntityStatus, error) { vals := map[string]LinkedServiceEntityStatus{ "deleting": LinkedServiceEntityStatusDeleting, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_createorupdate.go new file mode 100644 index 000000000000..394c3111c5c4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_createorupdate.go @@ -0,0 +1,75 @@ +package linkedservices + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CreateOrUpdate ... +func (c LinkedServicesClient) CreateOrUpdate(ctx context.Context, id LinkedServiceId, input LinkedService) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c LinkedServicesClient) CreateOrUpdateThenPoll(ctx context.Context, id LinkedServiceId, input LinkedService) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_createorupdate_autorest.go deleted file mode 100644 index 957f364d926f..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_createorupdate_autorest.go +++ /dev/null @@ -1,79 +0,0 @@ -package linkedservices - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// CreateOrUpdate ... -func (c LinkedServicesClient) CreateOrUpdate(ctx context.Context, id LinkedServiceId, input LinkedService) (result CreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedservices.LinkedServicesClient", "CreateOrUpdate", nil, "Failure preparing request") - return - } - - result, err = c.senderForCreateOrUpdate(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedservices.LinkedServicesClient", "CreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed -func (c LinkedServicesClient) CreateOrUpdateThenPoll(ctx context.Context, id LinkedServiceId, input LinkedService) error { - result, err := c.CreateOrUpdate(ctx, id, input) - if err != nil { - return fmt.Errorf("performing CreateOrUpdate: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after CreateOrUpdate: %+v", err) - } - - return nil -} - -// preparerForCreateOrUpdate prepares the CreateOrUpdate request. -func (c LinkedServicesClient) preparerForCreateOrUpdate(ctx context.Context, id LinkedServiceId, input LinkedService) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForCreateOrUpdate sends the CreateOrUpdate request. The method will close the -// http.Response Body if it receives an error. -func (c LinkedServicesClient) senderForCreateOrUpdate(ctx context.Context, req *http.Request) (future CreateOrUpdateOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_delete.go new file mode 100644 index 000000000000..4775582caee7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_delete.go @@ -0,0 +1,71 @@ +package linkedservices + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c LinkedServicesClient) Delete(ctx context.Context, id LinkedServiceId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c LinkedServicesClient) DeleteThenPoll(ctx context.Context, id LinkedServiceId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_delete_autorest.go deleted file mode 100644 index f80796f75c2c..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_delete_autorest.go +++ /dev/null @@ -1,78 +0,0 @@ -package linkedservices - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// Delete ... -func (c LinkedServicesClient) Delete(ctx context.Context, id LinkedServiceId) (result DeleteOperationResponse, err error) { - req, err := c.preparerForDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedservices.LinkedServicesClient", "Delete", nil, "Failure preparing request") - return - } - - result, err = c.senderForDelete(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedservices.LinkedServicesClient", "Delete", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// DeleteThenPoll performs Delete then polls until it's completed -func (c LinkedServicesClient) DeleteThenPoll(ctx context.Context, id LinkedServiceId) error { - result, err := c.Delete(ctx, id) - if err != nil { - return fmt.Errorf("performing Delete: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after Delete: %+v", err) - } - - return nil -} - -// preparerForDelete prepares the Delete request. -func (c LinkedServicesClient) preparerForDelete(ctx context.Context, id LinkedServiceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForDelete sends the Delete request. The method will close the -// http.Response Body if it receives an error. -func (c LinkedServicesClient) senderForDelete(ctx context.Context, req *http.Request) (future DeleteOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_get.go new file mode 100644 index 000000000000..640f44d6fbff --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_get.go @@ -0,0 +1,51 @@ +package linkedservices + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *LinkedService +} + +// Get ... +func (c LinkedServicesClient) Get(ctx context.Context, id LinkedServiceId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_get_autorest.go deleted file mode 100644 index ae23716d7780..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_get_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package linkedservices - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - Model *LinkedService -} - -// Get ... -func (c LinkedServicesClient) Get(ctx context.Context, id LinkedServiceId) (result GetOperationResponse, err error) { - req, err := c.preparerForGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedservices.LinkedServicesClient", "Get", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedservices.LinkedServicesClient", "Get", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedservices.LinkedServicesClient", "Get", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGet prepares the Get request. -func (c LinkedServicesClient) preparerForGet(ctx context.Context, id LinkedServiceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGet handles the response to the Get request. The method always -// closes the http.Response Body. -func (c LinkedServicesClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_listbyworkspace.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_listbyworkspace.go new file mode 100644 index 000000000000..1f3042b737af --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_listbyworkspace.go @@ -0,0 +1,52 @@ +package linkedservices + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByWorkspaceOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *LinkedServiceListResult +} + +// ListByWorkspace ... +func (c LinkedServicesClient) ListByWorkspace(ctx context.Context, id WorkspaceId) (result ListByWorkspaceOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/linkedServices", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_listbyworkspace_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_listbyworkspace_autorest.go deleted file mode 100644 index 7d6d65030f74..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedservices/method_listbyworkspace_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package linkedservices - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByWorkspaceOperationResponse struct { - HttpResponse *http.Response - Model *LinkedServiceListResult -} - -// ListByWorkspace ... -func (c LinkedServicesClient) ListByWorkspace(ctx context.Context, id WorkspaceId) (result ListByWorkspaceOperationResponse, err error) { - req, err := c.preparerForListByWorkspace(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedservices.LinkedServicesClient", "ListByWorkspace", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedservices.LinkedServicesClient", "ListByWorkspace", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListByWorkspace(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedservices.LinkedServicesClient", "ListByWorkspace", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForListByWorkspace prepares the ListByWorkspace request. -func (c LinkedServicesClient) preparerForListByWorkspace(ctx context.Context, id WorkspaceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/linkedServices", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListByWorkspace handles the response to the ListByWorkspace request. The method always -// closes the http.Response Body. -func (c LinkedServicesClient) responderForListByWorkspace(resp *http.Response) (result ListByWorkspaceOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/client.go index 2dbc8119213e..79be37a0eaa2 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/client.go @@ -1,18 +1,26 @@ package linkedstorageaccounts -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type LinkedStorageAccountsClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewLinkedStorageAccountsClientWithBaseURI(endpoint string) LinkedStorageAccountsClient { - return LinkedStorageAccountsClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewLinkedStorageAccountsClientWithBaseURI(sdkApi sdkEnv.Api) (*LinkedStorageAccountsClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "linkedstorageaccounts", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating LinkedStorageAccountsClient: %+v", err) } + + return &LinkedStorageAccountsClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/constants.go index b797f867afd7..abf0284b4b7d 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/constants.go @@ -1,6 +1,10 @@ package linkedstorageaccounts -import "strings" +import ( + "encoding/json" + "fmt" + "strings" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. @@ -25,6 +29,19 @@ func PossibleValuesForDataSourceType() []string { } } +func (s *DataSourceType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseDataSourceType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseDataSourceType(input string) (*DataSourceType, error) { vals := map[string]DataSourceType{ "alerts": DataSourceTypeAlerts, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_createorupdate.go new file mode 100644 index 000000000000..24e8a7926fe3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_createorupdate.go @@ -0,0 +1,55 @@ +package linkedstorageaccounts + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *LinkedStorageAccountsResource +} + +// CreateOrUpdate ... +func (c LinkedStorageAccountsClient) CreateOrUpdate(ctx context.Context, id DataSourceTypeId, input LinkedStorageAccountsResource) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_createorupdate_autorest.go deleted file mode 100644 index 6673b7272cd8..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_createorupdate_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package linkedstorageaccounts - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - HttpResponse *http.Response - Model *LinkedStorageAccountsResource -} - -// CreateOrUpdate ... -func (c LinkedStorageAccountsClient) CreateOrUpdate(ctx context.Context, id DataSourceTypeId, input LinkedStorageAccountsResource) (result CreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedstorageaccounts.LinkedStorageAccountsClient", "CreateOrUpdate", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedstorageaccounts.LinkedStorageAccountsClient", "CreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForCreateOrUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedstorageaccounts.LinkedStorageAccountsClient", "CreateOrUpdate", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForCreateOrUpdate prepares the CreateOrUpdate request. -func (c LinkedStorageAccountsClient) preparerForCreateOrUpdate(ctx context.Context, id DataSourceTypeId, input LinkedStorageAccountsResource) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForCreateOrUpdate handles the response to the CreateOrUpdate request. The method always -// closes the http.Response Body. -func (c LinkedStorageAccountsClient) responderForCreateOrUpdate(resp *http.Response) (result CreateOrUpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_delete.go new file mode 100644 index 000000000000..65907ea35426 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_delete.go @@ -0,0 +1,46 @@ +package linkedstorageaccounts + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c LinkedStorageAccountsClient) Delete(ctx context.Context, id DataSourceTypeId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_delete_autorest.go deleted file mode 100644 index d61353ef3dc8..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_delete_autorest.go +++ /dev/null @@ -1,66 +0,0 @@ -package linkedstorageaccounts - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - HttpResponse *http.Response -} - -// Delete ... -func (c LinkedStorageAccountsClient) Delete(ctx context.Context, id DataSourceTypeId) (result DeleteOperationResponse, err error) { - req, err := c.preparerForDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedstorageaccounts.LinkedStorageAccountsClient", "Delete", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedstorageaccounts.LinkedStorageAccountsClient", "Delete", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForDelete(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedstorageaccounts.LinkedStorageAccountsClient", "Delete", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForDelete prepares the Delete request. -func (c LinkedStorageAccountsClient) preparerForDelete(ctx context.Context, id DataSourceTypeId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForDelete handles the response to the Delete request. The method always -// closes the http.Response Body. -func (c LinkedStorageAccountsClient) responderForDelete(resp *http.Response) (result DeleteOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_get.go new file mode 100644 index 000000000000..fad703e1af0d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_get.go @@ -0,0 +1,51 @@ +package linkedstorageaccounts + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *LinkedStorageAccountsResource +} + +// Get ... +func (c LinkedStorageAccountsClient) Get(ctx context.Context, id DataSourceTypeId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_get_autorest.go deleted file mode 100644 index 158e9d381121..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_get_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package linkedstorageaccounts - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - Model *LinkedStorageAccountsResource -} - -// Get ... -func (c LinkedStorageAccountsClient) Get(ctx context.Context, id DataSourceTypeId) (result GetOperationResponse, err error) { - req, err := c.preparerForGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedstorageaccounts.LinkedStorageAccountsClient", "Get", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedstorageaccounts.LinkedStorageAccountsClient", "Get", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedstorageaccounts.LinkedStorageAccountsClient", "Get", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGet prepares the Get request. -func (c LinkedStorageAccountsClient) preparerForGet(ctx context.Context, id DataSourceTypeId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGet handles the response to the Get request. The method always -// closes the http.Response Body. -func (c LinkedStorageAccountsClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_listbyworkspace.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_listbyworkspace.go new file mode 100644 index 000000000000..53929b916de3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_listbyworkspace.go @@ -0,0 +1,52 @@ +package linkedstorageaccounts + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByWorkspaceOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *LinkedStorageAccountsListResult +} + +// ListByWorkspace ... +func (c LinkedStorageAccountsClient) ListByWorkspace(ctx context.Context, id WorkspaceId) (result ListByWorkspaceOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/linkedStorageAccounts", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_listbyworkspace_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_listbyworkspace_autorest.go deleted file mode 100644 index 2f32a3a6fa17..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/linkedstorageaccounts/method_listbyworkspace_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package linkedstorageaccounts - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByWorkspaceOperationResponse struct { - HttpResponse *http.Response - Model *LinkedStorageAccountsListResult -} - -// ListByWorkspace ... -func (c LinkedStorageAccountsClient) ListByWorkspace(ctx context.Context, id WorkspaceId) (result ListByWorkspaceOperationResponse, err error) { - req, err := c.preparerForListByWorkspace(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedstorageaccounts.LinkedStorageAccountsClient", "ListByWorkspace", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedstorageaccounts.LinkedStorageAccountsClient", "ListByWorkspace", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListByWorkspace(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "linkedstorageaccounts.LinkedStorageAccountsClient", "ListByWorkspace", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForListByWorkspace prepares the ListByWorkspace request. -func (c LinkedStorageAccountsClient) preparerForListByWorkspace(ctx context.Context, id WorkspaceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/linkedStorageAccounts", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListByWorkspace handles the response to the ListByWorkspace request. The method always -// closes the http.Response Body. -func (c LinkedStorageAccountsClient) responderForListByWorkspace(resp *http.Response) (result ListByWorkspaceOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/client.go index 0136fb086fc5..f96f8e1f7935 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/client.go @@ -1,18 +1,26 @@ package savedsearches -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type SavedSearchesClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewSavedSearchesClientWithBaseURI(endpoint string) SavedSearchesClient { - return SavedSearchesClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewSavedSearchesClientWithBaseURI(sdkApi sdkEnv.Api) (*SavedSearchesClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "savedsearches", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating SavedSearchesClient: %+v", err) } + + return &SavedSearchesClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_createorupdate.go new file mode 100644 index 000000000000..e88c52790729 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_createorupdate.go @@ -0,0 +1,55 @@ +package savedsearches + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *SavedSearch +} + +// CreateOrUpdate ... +func (c SavedSearchesClient) CreateOrUpdate(ctx context.Context, id SavedSearchId, input SavedSearch) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_createorupdate_autorest.go deleted file mode 100644 index 6683b41856f1..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_createorupdate_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package savedsearches - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - HttpResponse *http.Response - Model *SavedSearch -} - -// CreateOrUpdate ... -func (c SavedSearchesClient) CreateOrUpdate(ctx context.Context, id SavedSearchId, input SavedSearch) (result CreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "savedsearches.SavedSearchesClient", "CreateOrUpdate", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "savedsearches.SavedSearchesClient", "CreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForCreateOrUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "savedsearches.SavedSearchesClient", "CreateOrUpdate", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForCreateOrUpdate prepares the CreateOrUpdate request. -func (c SavedSearchesClient) preparerForCreateOrUpdate(ctx context.Context, id SavedSearchId, input SavedSearch) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForCreateOrUpdate handles the response to the CreateOrUpdate request. The method always -// closes the http.Response Body. -func (c SavedSearchesClient) responderForCreateOrUpdate(resp *http.Response) (result CreateOrUpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_delete.go new file mode 100644 index 000000000000..26ca123124e6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_delete.go @@ -0,0 +1,46 @@ +package savedsearches + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c SavedSearchesClient) Delete(ctx context.Context, id SavedSearchId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_delete_autorest.go deleted file mode 100644 index 2a1ed74c2dfa..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_delete_autorest.go +++ /dev/null @@ -1,66 +0,0 @@ -package savedsearches - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - HttpResponse *http.Response -} - -// Delete ... -func (c SavedSearchesClient) Delete(ctx context.Context, id SavedSearchId) (result DeleteOperationResponse, err error) { - req, err := c.preparerForDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "savedsearches.SavedSearchesClient", "Delete", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "savedsearches.SavedSearchesClient", "Delete", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForDelete(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "savedsearches.SavedSearchesClient", "Delete", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForDelete prepares the Delete request. -func (c SavedSearchesClient) preparerForDelete(ctx context.Context, id SavedSearchId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForDelete handles the response to the Delete request. The method always -// closes the http.Response Body. -func (c SavedSearchesClient) responderForDelete(resp *http.Response) (result DeleteOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_get.go new file mode 100644 index 000000000000..2b1e79bc2c8c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_get.go @@ -0,0 +1,51 @@ +package savedsearches + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *SavedSearch +} + +// Get ... +func (c SavedSearchesClient) Get(ctx context.Context, id SavedSearchId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_get_autorest.go deleted file mode 100644 index 2a3a9d21777c..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_get_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package savedsearches - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - Model *SavedSearch -} - -// Get ... -func (c SavedSearchesClient) Get(ctx context.Context, id SavedSearchId) (result GetOperationResponse, err error) { - req, err := c.preparerForGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "savedsearches.SavedSearchesClient", "Get", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "savedsearches.SavedSearchesClient", "Get", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "savedsearches.SavedSearchesClient", "Get", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGet prepares the Get request. -func (c SavedSearchesClient) preparerForGet(ctx context.Context, id SavedSearchId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGet handles the response to the Get request. The method always -// closes the http.Response Body. -func (c SavedSearchesClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_listbyworkspace.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_listbyworkspace.go new file mode 100644 index 000000000000..72b6f0ffd8ae --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_listbyworkspace.go @@ -0,0 +1,52 @@ +package savedsearches + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByWorkspaceOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *SavedSearchesListResult +} + +// ListByWorkspace ... +func (c SavedSearchesClient) ListByWorkspace(ctx context.Context, id WorkspaceId) (result ListByWorkspaceOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/savedSearches", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_listbyworkspace_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_listbyworkspace_autorest.go deleted file mode 100644 index d08a998862ad..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/savedsearches/method_listbyworkspace_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package savedsearches - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByWorkspaceOperationResponse struct { - HttpResponse *http.Response - Model *SavedSearchesListResult -} - -// ListByWorkspace ... -func (c SavedSearchesClient) ListByWorkspace(ctx context.Context, id WorkspaceId) (result ListByWorkspaceOperationResponse, err error) { - req, err := c.preparerForListByWorkspace(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "savedsearches.SavedSearchesClient", "ListByWorkspace", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "savedsearches.SavedSearchesClient", "ListByWorkspace", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListByWorkspace(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "savedsearches.SavedSearchesClient", "ListByWorkspace", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForListByWorkspace prepares the ListByWorkspace request. -func (c SavedSearchesClient) preparerForListByWorkspace(ctx context.Context, id WorkspaceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/savedSearches", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListByWorkspace handles the response to the ListByWorkspace request. The method always -// closes the http.Response Body. -func (c SavedSearchesClient) responderForListByWorkspace(resp *http.Response) (result ListByWorkspaceOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/client.go index a9fe2a9505be..45c605974755 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/client.go @@ -1,18 +1,26 @@ package storageinsights -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type StorageInsightsClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewStorageInsightsClientWithBaseURI(endpoint string) StorageInsightsClient { - return StorageInsightsClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewStorageInsightsClientWithBaseURI(sdkApi sdkEnv.Api) (*StorageInsightsClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "storageinsights", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating StorageInsightsClient: %+v", err) } + + return &StorageInsightsClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/constants.go index 74bc09ee3eab..64295d09d1f4 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/constants.go @@ -1,6 +1,10 @@ package storageinsights -import "strings" +import ( + "encoding/json" + "fmt" + "strings" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. @@ -19,6 +23,19 @@ func PossibleValuesForStorageInsightState() []string { } } +func (s *StorageInsightState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseStorageInsightState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseStorageInsightState(input string) (*StorageInsightState, error) { vals := map[string]StorageInsightState{ "error": StorageInsightStateERROR, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigscreateorupdate.go new file mode 100644 index 000000000000..2785fc33a866 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigscreateorupdate.go @@ -0,0 +1,56 @@ +package storageinsights + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type StorageInsightConfigsCreateOrUpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *StorageInsight +} + +// StorageInsightConfigsCreateOrUpdate ... +func (c StorageInsightsClient) StorageInsightConfigsCreateOrUpdate(ctx context.Context, id StorageInsightConfigId, input StorageInsight) (result StorageInsightConfigsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigscreateorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigscreateorupdate_autorest.go deleted file mode 100644 index ab12f41da147..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigscreateorupdate_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package storageinsights - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type StorageInsightConfigsCreateOrUpdateOperationResponse struct { - HttpResponse *http.Response - Model *StorageInsight -} - -// StorageInsightConfigsCreateOrUpdate ... -func (c StorageInsightsClient) StorageInsightConfigsCreateOrUpdate(ctx context.Context, id StorageInsightConfigId, input StorageInsight) (result StorageInsightConfigsCreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForStorageInsightConfigsCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsCreateOrUpdate", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsCreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForStorageInsightConfigsCreateOrUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsCreateOrUpdate", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForStorageInsightConfigsCreateOrUpdate prepares the StorageInsightConfigsCreateOrUpdate request. -func (c StorageInsightsClient) preparerForStorageInsightConfigsCreateOrUpdate(ctx context.Context, id StorageInsightConfigId, input StorageInsight) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForStorageInsightConfigsCreateOrUpdate handles the response to the StorageInsightConfigsCreateOrUpdate request. The method always -// closes the http.Response Body. -func (c StorageInsightsClient) responderForStorageInsightConfigsCreateOrUpdate(resp *http.Response) (result StorageInsightConfigsCreateOrUpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusCreated, http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsdelete.go new file mode 100644 index 000000000000..c77f95ac83c3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsdelete.go @@ -0,0 +1,47 @@ +package storageinsights + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type StorageInsightConfigsDeleteOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData +} + +// StorageInsightConfigsDelete ... +func (c StorageInsightsClient) StorageInsightConfigsDelete(ctx context.Context, id StorageInsightConfigId) (result StorageInsightConfigsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsdelete_autorest.go deleted file mode 100644 index e1bd56da55d6..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsdelete_autorest.go +++ /dev/null @@ -1,66 +0,0 @@ -package storageinsights - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type StorageInsightConfigsDeleteOperationResponse struct { - HttpResponse *http.Response -} - -// StorageInsightConfigsDelete ... -func (c StorageInsightsClient) StorageInsightConfigsDelete(ctx context.Context, id StorageInsightConfigId) (result StorageInsightConfigsDeleteOperationResponse, err error) { - req, err := c.preparerForStorageInsightConfigsDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsDelete", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsDelete", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForStorageInsightConfigsDelete(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsDelete", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForStorageInsightConfigsDelete prepares the StorageInsightConfigsDelete request. -func (c StorageInsightsClient) preparerForStorageInsightConfigsDelete(ctx context.Context, id StorageInsightConfigId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForStorageInsightConfigsDelete handles the response to the StorageInsightConfigsDelete request. The method always -// closes the http.Response Body. -func (c StorageInsightsClient) responderForStorageInsightConfigsDelete(resp *http.Response) (result StorageInsightConfigsDeleteOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsget.go new file mode 100644 index 000000000000..b8daae0118fe --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsget.go @@ -0,0 +1,51 @@ +package storageinsights + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type StorageInsightConfigsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *StorageInsight +} + +// StorageInsightConfigsGet ... +func (c StorageInsightsClient) StorageInsightConfigsGet(ctx context.Context, id StorageInsightConfigId) (result StorageInsightConfigsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsget_autorest.go deleted file mode 100644 index 872f810c8bd8..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigsget_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package storageinsights - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type StorageInsightConfigsGetOperationResponse struct { - HttpResponse *http.Response - Model *StorageInsight -} - -// StorageInsightConfigsGet ... -func (c StorageInsightsClient) StorageInsightConfigsGet(ctx context.Context, id StorageInsightConfigId) (result StorageInsightConfigsGetOperationResponse, err error) { - req, err := c.preparerForStorageInsightConfigsGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsGet", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsGet", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForStorageInsightConfigsGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsGet", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForStorageInsightConfigsGet prepares the StorageInsightConfigsGet request. -func (c StorageInsightsClient) preparerForStorageInsightConfigsGet(ctx context.Context, id StorageInsightConfigId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForStorageInsightConfigsGet handles the response to the StorageInsightConfigsGet request. The method always -// closes the http.Response Body. -func (c StorageInsightsClient) responderForStorageInsightConfigsGet(resp *http.Response) (result StorageInsightConfigsGetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigslistbyworkspace.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigslistbyworkspace.go new file mode 100644 index 000000000000..f73c1e962a2f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigslistbyworkspace.go @@ -0,0 +1,89 @@ +package storageinsights + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type StorageInsightConfigsListByWorkspaceOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]StorageInsight +} + +type StorageInsightConfigsListByWorkspaceCompleteResult struct { + Items []StorageInsight +} + +// StorageInsightConfigsListByWorkspace ... +func (c StorageInsightsClient) StorageInsightConfigsListByWorkspace(ctx context.Context, id WorkspaceId) (result StorageInsightConfigsListByWorkspaceOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/storageInsightConfigs", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]StorageInsight `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// StorageInsightConfigsListByWorkspaceComplete retrieves all the results into a single object +func (c StorageInsightsClient) StorageInsightConfigsListByWorkspaceComplete(ctx context.Context, id WorkspaceId) (StorageInsightConfigsListByWorkspaceCompleteResult, error) { + return c.StorageInsightConfigsListByWorkspaceCompleteMatchingPredicate(ctx, id, StorageInsightOperationPredicate{}) +} + +// StorageInsightConfigsListByWorkspaceCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c StorageInsightsClient) StorageInsightConfigsListByWorkspaceCompleteMatchingPredicate(ctx context.Context, id WorkspaceId, predicate StorageInsightOperationPredicate) (result StorageInsightConfigsListByWorkspaceCompleteResult, err error) { + items := make([]StorageInsight, 0) + + resp, err := c.StorageInsightConfigsListByWorkspace(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = StorageInsightConfigsListByWorkspaceCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigslistbyworkspace_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigslistbyworkspace_autorest.go deleted file mode 100644 index 0f826863fe76..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/storageinsights/method_storageinsightconfigslistbyworkspace_autorest.go +++ /dev/null @@ -1,186 +0,0 @@ -package storageinsights - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type StorageInsightConfigsListByWorkspaceOperationResponse struct { - HttpResponse *http.Response - Model *[]StorageInsight - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (StorageInsightConfigsListByWorkspaceOperationResponse, error) -} - -type StorageInsightConfigsListByWorkspaceCompleteResult struct { - Items []StorageInsight -} - -func (r StorageInsightConfigsListByWorkspaceOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r StorageInsightConfigsListByWorkspaceOperationResponse) LoadMore(ctx context.Context) (resp StorageInsightConfigsListByWorkspaceOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// StorageInsightConfigsListByWorkspace ... -func (c StorageInsightsClient) StorageInsightConfigsListByWorkspace(ctx context.Context, id WorkspaceId) (resp StorageInsightConfigsListByWorkspaceOperationResponse, err error) { - req, err := c.preparerForStorageInsightConfigsListByWorkspace(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsListByWorkspace", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsListByWorkspace", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForStorageInsightConfigsListByWorkspace(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsListByWorkspace", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForStorageInsightConfigsListByWorkspace prepares the StorageInsightConfigsListByWorkspace request. -func (c StorageInsightsClient) preparerForStorageInsightConfigsListByWorkspace(ctx context.Context, id WorkspaceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/storageInsightConfigs", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForStorageInsightConfigsListByWorkspaceWithNextLink prepares the StorageInsightConfigsListByWorkspace request with the given nextLink token. -func (c StorageInsightsClient) preparerForStorageInsightConfigsListByWorkspaceWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForStorageInsightConfigsListByWorkspace handles the response to the StorageInsightConfigsListByWorkspace request. The method always -// closes the http.Response Body. -func (c StorageInsightsClient) responderForStorageInsightConfigsListByWorkspace(resp *http.Response) (result StorageInsightConfigsListByWorkspaceOperationResponse, err error) { - type page struct { - Values []StorageInsight `json:"value"` - NextLink *string `json:"@odata.nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result StorageInsightConfigsListByWorkspaceOperationResponse, err error) { - req, err := c.preparerForStorageInsightConfigsListByWorkspaceWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsListByWorkspace", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsListByWorkspace", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForStorageInsightConfigsListByWorkspace(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "storageinsights.StorageInsightsClient", "StorageInsightConfigsListByWorkspace", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// StorageInsightConfigsListByWorkspaceComplete retrieves all of the results into a single object -func (c StorageInsightsClient) StorageInsightConfigsListByWorkspaceComplete(ctx context.Context, id WorkspaceId) (StorageInsightConfigsListByWorkspaceCompleteResult, error) { - return c.StorageInsightConfigsListByWorkspaceCompleteMatchingPredicate(ctx, id, StorageInsightOperationPredicate{}) -} - -// StorageInsightConfigsListByWorkspaceCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c StorageInsightsClient) StorageInsightConfigsListByWorkspaceCompleteMatchingPredicate(ctx context.Context, id WorkspaceId, predicate StorageInsightOperationPredicate) (resp StorageInsightConfigsListByWorkspaceCompleteResult, err error) { - items := make([]StorageInsight, 0) - - page, err := c.StorageInsightConfigsListByWorkspace(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := StorageInsightConfigsListByWorkspaceCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/client.go index 02d022fa85e3..d599252c05cd 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/client.go @@ -1,18 +1,26 @@ package workspaces -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type WorkspacesClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewWorkspacesClientWithBaseURI(endpoint string) WorkspacesClient { - return WorkspacesClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewWorkspacesClientWithBaseURI(sdkApi sdkEnv.Api) (*WorkspacesClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "workspaces", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating WorkspacesClient: %+v", err) } + + return &WorkspacesClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/constants.go index 4d8f794e9688..282583ebb3c4 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/constants.go @@ -1,6 +1,10 @@ package workspaces -import "strings" +import ( + "encoding/json" + "fmt" + "strings" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. @@ -27,6 +31,19 @@ func PossibleValuesForDataIngestionStatus() []string { } } +func (s *DataIngestionStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseDataIngestionStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseDataIngestionStatus(input string) (*DataIngestionStatus, error) { vals := map[string]DataIngestionStatus{ "approachingquota": DataIngestionStatusApproachingQuota, @@ -59,6 +76,19 @@ func PossibleValuesForPublicNetworkAccessType() []string { } } +func (s *PublicNetworkAccessType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parsePublicNetworkAccessType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parsePublicNetworkAccessType(input string) (*PublicNetworkAccessType, error) { vals := map[string]PublicNetworkAccessType{ "disabled": PublicNetworkAccessTypeDisabled, @@ -87,6 +117,19 @@ func PossibleValuesForPurgeState() []string { } } +func (s *PurgeState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parsePurgeState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parsePurgeState(input string) (*PurgeState, error) { vals := map[string]PurgeState{ "completed": PurgeStateCompleted, @@ -115,6 +158,19 @@ func PossibleValuesForSearchSortEnum() []string { } } +func (s *SearchSortEnum) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseSearchSortEnum(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseSearchSortEnum(input string) (*SearchSortEnum, error) { vals := map[string]SearchSortEnum{ "asc": SearchSortEnumAsc, @@ -153,6 +209,19 @@ func PossibleValuesForWorkspaceEntityStatus() []string { } } +func (s *WorkspaceEntityStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseWorkspaceEntityStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseWorkspaceEntityStatus(input string) (*WorkspaceEntityStatus, error) { vals := map[string]WorkspaceEntityStatus{ "canceled": WorkspaceEntityStatusCanceled, @@ -198,6 +267,19 @@ func PossibleValuesForWorkspaceSkuNameEnum() []string { } } +func (s *WorkspaceSkuNameEnum) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseWorkspaceSkuNameEnum(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseWorkspaceSkuNameEnum(input string) (*WorkspaceSkuNameEnum, error) { vals := map[string]WorkspaceSkuNameEnum{ "capacityreservation": WorkspaceSkuNameEnumCapacityReservation, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_createorupdate.go new file mode 100644 index 000000000000..22b589f54ec4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_createorupdate.go @@ -0,0 +1,75 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CreateOrUpdate ... +func (c WorkspacesClient) CreateOrUpdate(ctx context.Context, id WorkspaceId, input Workspace) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c WorkspacesClient) CreateOrUpdateThenPoll(ctx context.Context, id WorkspaceId, input Workspace) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_createorupdate_autorest.go deleted file mode 100644 index 7e742b0f05f9..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_createorupdate_autorest.go +++ /dev/null @@ -1,79 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// CreateOrUpdate ... -func (c WorkspacesClient) CreateOrUpdate(ctx context.Context, id WorkspaceId, input Workspace) (result CreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "CreateOrUpdate", nil, "Failure preparing request") - return - } - - result, err = c.senderForCreateOrUpdate(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "CreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed -func (c WorkspacesClient) CreateOrUpdateThenPoll(ctx context.Context, id WorkspaceId, input Workspace) error { - result, err := c.CreateOrUpdate(ctx, id, input) - if err != nil { - return fmt.Errorf("performing CreateOrUpdate: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after CreateOrUpdate: %+v", err) - } - - return nil -} - -// preparerForCreateOrUpdate prepares the CreateOrUpdate request. -func (c WorkspacesClient) preparerForCreateOrUpdate(ctx context.Context, id WorkspaceId, input Workspace) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForCreateOrUpdate sends the CreateOrUpdate request. The method will close the -// http.Response Body if it receives an error. -func (c WorkspacesClient) senderForCreateOrUpdate(ctx context.Context, req *http.Request) (future CreateOrUpdateOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_delete.go new file mode 100644 index 000000000000..1afdfd7c1379 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_delete.go @@ -0,0 +1,99 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +type DeleteOperationOptions struct { + Force *bool +} + +func DefaultDeleteOperationOptions() DeleteOperationOptions { + return DeleteOperationOptions{} +} + +func (o DeleteOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o DeleteOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o DeleteOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.Force != nil { + out.Append("force", fmt.Sprintf("%v", *o.Force)) + } + return &out +} + +// Delete ... +func (c WorkspacesClient) Delete(ctx context.Context, id WorkspaceId, options DeleteOperationOptions) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c WorkspacesClient) DeleteThenPoll(ctx context.Context, id WorkspaceId, options DeleteOperationOptions) error { + result, err := c.Delete(ctx, id, options) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_delete_autorest.go deleted file mode 100644 index 083805904ec8..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_delete_autorest.go +++ /dev/null @@ -1,107 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -type DeleteOperationOptions struct { - Force *bool -} - -func DefaultDeleteOperationOptions() DeleteOperationOptions { - return DeleteOperationOptions{} -} - -func (o DeleteOperationOptions) toHeaders() map[string]interface{} { - out := make(map[string]interface{}) - - return out -} - -func (o DeleteOperationOptions) toQueryString() map[string]interface{} { - out := make(map[string]interface{}) - - if o.Force != nil { - out["force"] = *o.Force - } - - return out -} - -// Delete ... -func (c WorkspacesClient) Delete(ctx context.Context, id WorkspaceId, options DeleteOperationOptions) (result DeleteOperationResponse, err error) { - req, err := c.preparerForDelete(ctx, id, options) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Delete", nil, "Failure preparing request") - return - } - - result, err = c.senderForDelete(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Delete", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// DeleteThenPoll performs Delete then polls until it's completed -func (c WorkspacesClient) DeleteThenPoll(ctx context.Context, id WorkspaceId, options DeleteOperationOptions) error { - result, err := c.Delete(ctx, id, options) - if err != nil { - return fmt.Errorf("performing Delete: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after Delete: %+v", err) - } - - return nil -} - -// preparerForDelete prepares the Delete request. -func (c WorkspacesClient) preparerForDelete(ctx context.Context, id WorkspaceId, options DeleteOperationOptions) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - for k, v := range options.toQueryString() { - queryParameters[k] = autorest.Encode("query", v) - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithHeaders(options.toHeaders()), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForDelete sends the Delete request. The method will close the -// http.Response Body if it receives an error. -func (c WorkspacesClient) senderForDelete(ctx context.Context, req *http.Request) (future DeleteOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_gatewaysdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_gatewaysdelete.go new file mode 100644 index 000000000000..2566a120d434 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_gatewaysdelete.go @@ -0,0 +1,46 @@ +package workspaces + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewaysDeleteOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData +} + +// GatewaysDelete ... +func (c WorkspacesClient) GatewaysDelete(ctx context.Context, id GatewayId) (result GatewaysDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_gatewaysdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_gatewaysdelete_autorest.go deleted file mode 100644 index e6aacf7d573a..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_gatewaysdelete_autorest.go +++ /dev/null @@ -1,66 +0,0 @@ -package workspaces - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GatewaysDeleteOperationResponse struct { - HttpResponse *http.Response -} - -// GatewaysDelete ... -func (c WorkspacesClient) GatewaysDelete(ctx context.Context, id GatewayId) (result GatewaysDeleteOperationResponse, err error) { - req, err := c.preparerForGatewaysDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "GatewaysDelete", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "GatewaysDelete", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGatewaysDelete(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "GatewaysDelete", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGatewaysDelete prepares the GatewaysDelete request. -func (c WorkspacesClient) preparerForGatewaysDelete(ctx context.Context, id GatewayId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGatewaysDelete handles the response to the GatewaysDelete request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForGatewaysDelete(resp *http.Response) (result GatewaysDeleteOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_get.go new file mode 100644 index 000000000000..9c154cb96215 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_get.go @@ -0,0 +1,51 @@ +package workspaces + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Workspace +} + +// Get ... +func (c WorkspacesClient) Get(ctx context.Context, id WorkspaceId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_get_autorest.go deleted file mode 100644 index c16924832e34..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_get_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package workspaces - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - Model *Workspace -} - -// Get ... -func (c WorkspacesClient) Get(ctx context.Context, id WorkspaceId) (result GetOperationResponse, err error) { - req, err := c.preparerForGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Get", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Get", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Get", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGet prepares the Get request. -func (c WorkspacesClient) preparerForGet(ctx context.Context, id WorkspaceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGet handles the response to the Get request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksdisable.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksdisable.go new file mode 100644 index 000000000000..ebf2ccdc3776 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksdisable.go @@ -0,0 +1,47 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type IntelligencePacksDisableOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData +} + +// IntelligencePacksDisable ... +func (c WorkspacesClient) IntelligencePacksDisable(ctx context.Context, id IntelligencePackId) (result IntelligencePacksDisableOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/disable", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksdisable_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksdisable_autorest.go deleted file mode 100644 index d20929aca98e..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksdisable_autorest.go +++ /dev/null @@ -1,67 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type IntelligencePacksDisableOperationResponse struct { - HttpResponse *http.Response -} - -// IntelligencePacksDisable ... -func (c WorkspacesClient) IntelligencePacksDisable(ctx context.Context, id IntelligencePackId) (result IntelligencePacksDisableOperationResponse, err error) { - req, err := c.preparerForIntelligencePacksDisable(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "IntelligencePacksDisable", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "IntelligencePacksDisable", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForIntelligencePacksDisable(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "IntelligencePacksDisable", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForIntelligencePacksDisable prepares the IntelligencePacksDisable request. -func (c WorkspacesClient) preparerForIntelligencePacksDisable(ctx context.Context, id IntelligencePackId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPost(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/disable", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForIntelligencePacksDisable handles the response to the IntelligencePacksDisable request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForIntelligencePacksDisable(resp *http.Response) (result IntelligencePacksDisableOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksenable.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksenable.go new file mode 100644 index 000000000000..b28e13094558 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksenable.go @@ -0,0 +1,47 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type IntelligencePacksEnableOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData +} + +// IntelligencePacksEnable ... +func (c WorkspacesClient) IntelligencePacksEnable(ctx context.Context, id IntelligencePackId) (result IntelligencePacksEnableOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/enable", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksenable_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksenable_autorest.go deleted file mode 100644 index 7427a62e3cf7..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepacksenable_autorest.go +++ /dev/null @@ -1,67 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type IntelligencePacksEnableOperationResponse struct { - HttpResponse *http.Response -} - -// IntelligencePacksEnable ... -func (c WorkspacesClient) IntelligencePacksEnable(ctx context.Context, id IntelligencePackId) (result IntelligencePacksEnableOperationResponse, err error) { - req, err := c.preparerForIntelligencePacksEnable(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "IntelligencePacksEnable", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "IntelligencePacksEnable", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForIntelligencePacksEnable(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "IntelligencePacksEnable", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForIntelligencePacksEnable prepares the IntelligencePacksEnable request. -func (c WorkspacesClient) preparerForIntelligencePacksEnable(ctx context.Context, id IntelligencePackId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPost(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/enable", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForIntelligencePacksEnable handles the response to the IntelligencePacksEnable request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForIntelligencePacksEnable(resp *http.Response) (result IntelligencePacksEnableOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepackslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepackslist.go new file mode 100644 index 000000000000..a729642ffc9b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepackslist.go @@ -0,0 +1,52 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type IntelligencePacksListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]IntelligencePack +} + +// IntelligencePacksList ... +func (c WorkspacesClient) IntelligencePacksList(ctx context.Context, id WorkspaceId) (result IntelligencePacksListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/intelligencePacks", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepackslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepackslist_autorest.go deleted file mode 100644 index 9bb8d7ac3d81..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_intelligencepackslist_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type IntelligencePacksListOperationResponse struct { - HttpResponse *http.Response - Model *[]IntelligencePack -} - -// IntelligencePacksList ... -func (c WorkspacesClient) IntelligencePacksList(ctx context.Context, id WorkspaceId) (result IntelligencePacksListOperationResponse, err error) { - req, err := c.preparerForIntelligencePacksList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "IntelligencePacksList", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "IntelligencePacksList", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForIntelligencePacksList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "IntelligencePacksList", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForIntelligencePacksList prepares the IntelligencePacksList request. -func (c WorkspacesClient) preparerForIntelligencePacksList(ctx context.Context, id WorkspaceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/intelligencePacks", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForIntelligencePacksList handles the response to the IntelligencePacksList request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForIntelligencePacksList(resp *http.Response) (result IntelligencePacksListOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_list.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_list.go new file mode 100644 index 000000000000..0e4b27ef4e36 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_list.go @@ -0,0 +1,53 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *WorkspaceListResult +} + +// List ... +func (c WorkspacesClient) List(ctx context.Context, id commonids.SubscriptionId) (result ListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/workspaces", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_list_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_list_autorest.go deleted file mode 100644 index 4ce637522a8e..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_list_autorest.go +++ /dev/null @@ -1,70 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListOperationResponse struct { - HttpResponse *http.Response - Model *WorkspaceListResult -} - -// List ... -func (c WorkspacesClient) List(ctx context.Context, id commonids.SubscriptionId) (result ListOperationResponse, err error) { - req, err := c.preparerForList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "List", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "List", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "List", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForList prepares the List request. -func (c WorkspacesClient) preparerForList(ctx context.Context, id commonids.SubscriptionId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/workspaces", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForList handles the response to the List request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForList(resp *http.Response) (result ListOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_listbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_listbyresourcegroup.go new file mode 100644 index 000000000000..2f5e22b1fc62 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_listbyresourcegroup.go @@ -0,0 +1,53 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByResourceGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *WorkspaceListResult +} + +// ListByResourceGroup ... +func (c WorkspacesClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/workspaces", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_listbyresourcegroup_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_listbyresourcegroup_autorest.go deleted file mode 100644 index 558cc363bf85..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_listbyresourcegroup_autorest.go +++ /dev/null @@ -1,70 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByResourceGroupOperationResponse struct { - HttpResponse *http.Response - Model *WorkspaceListResult -} - -// ListByResourceGroup ... -func (c WorkspacesClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { - req, err := c.preparerForListByResourceGroup(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "ListByResourceGroup", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "ListByResourceGroup", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListByResourceGroup(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "ListByResourceGroup", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForListByResourceGroup prepares the ListByResourceGroup request. -func (c WorkspacesClient) preparerForListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/workspaces", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListByResourceGroup handles the response to the ListByResourceGroup request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForListByResourceGroup(resp *http.Response) (result ListByResourceGroupOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_managementgroupslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_managementgroupslist.go new file mode 100644 index 000000000000..939c33baacca --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_managementgroupslist.go @@ -0,0 +1,52 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ManagementGroupsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *WorkspaceListManagementGroupsResult +} + +// ManagementGroupsList ... +func (c WorkspacesClient) ManagementGroupsList(ctx context.Context, id WorkspaceId) (result ManagementGroupsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/managementGroups", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_managementgroupslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_managementgroupslist_autorest.go deleted file mode 100644 index 4da6f94504b2..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_managementgroupslist_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ManagementGroupsListOperationResponse struct { - HttpResponse *http.Response - Model *WorkspaceListManagementGroupsResult -} - -// ManagementGroupsList ... -func (c WorkspacesClient) ManagementGroupsList(ctx context.Context, id WorkspaceId) (result ManagementGroupsListOperationResponse, err error) { - req, err := c.preparerForManagementGroupsList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "ManagementGroupsList", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "ManagementGroupsList", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForManagementGroupsList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "ManagementGroupsList", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForManagementGroupsList prepares the ManagementGroupsList request. -func (c WorkspacesClient) preparerForManagementGroupsList(ctx context.Context, id WorkspaceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/managementGroups", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForManagementGroupsList handles the response to the ManagementGroupsList request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForManagementGroupsList(resp *http.Response) (result ManagementGroupsListOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_schemaget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_schemaget.go new file mode 100644 index 000000000000..4d7a987ad538 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_schemaget.go @@ -0,0 +1,52 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SchemaGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *SearchGetSchemaResponse +} + +// SchemaGet ... +func (c WorkspacesClient) SchemaGet(ctx context.Context, id WorkspaceId) (result SchemaGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/schema", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_schemaget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_schemaget_autorest.go deleted file mode 100644 index b2810ea40caf..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_schemaget_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type SchemaGetOperationResponse struct { - HttpResponse *http.Response - Model *SearchGetSchemaResponse -} - -// SchemaGet ... -func (c WorkspacesClient) SchemaGet(ctx context.Context, id WorkspaceId) (result SchemaGetOperationResponse, err error) { - req, err := c.preparerForSchemaGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "SchemaGet", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "SchemaGet", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForSchemaGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "SchemaGet", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForSchemaGet prepares the SchemaGet request. -func (c WorkspacesClient) preparerForSchemaGet(ctx context.Context, id WorkspaceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPost(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/schema", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForSchemaGet handles the response to the SchemaGet request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForSchemaGet(resp *http.Response) (result SchemaGetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysgetsharedkeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysgetsharedkeys.go new file mode 100644 index 000000000000..454651c6daf5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysgetsharedkeys.go @@ -0,0 +1,52 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SharedKeysGetSharedKeysOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *SharedKeys +} + +// SharedKeysGetSharedKeys ... +func (c WorkspacesClient) SharedKeysGetSharedKeys(ctx context.Context, id WorkspaceId) (result SharedKeysGetSharedKeysOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/sharedKeys", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysgetsharedkeys_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysgetsharedkeys_autorest.go deleted file mode 100644 index 80de1dd4d245..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysgetsharedkeys_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type SharedKeysGetSharedKeysOperationResponse struct { - HttpResponse *http.Response - Model *SharedKeys -} - -// SharedKeysGetSharedKeys ... -func (c WorkspacesClient) SharedKeysGetSharedKeys(ctx context.Context, id WorkspaceId) (result SharedKeysGetSharedKeysOperationResponse, err error) { - req, err := c.preparerForSharedKeysGetSharedKeys(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "SharedKeysGetSharedKeys", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "SharedKeysGetSharedKeys", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForSharedKeysGetSharedKeys(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "SharedKeysGetSharedKeys", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForSharedKeysGetSharedKeys prepares the SharedKeysGetSharedKeys request. -func (c WorkspacesClient) preparerForSharedKeysGetSharedKeys(ctx context.Context, id WorkspaceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPost(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/sharedKeys", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForSharedKeysGetSharedKeys handles the response to the SharedKeysGetSharedKeys request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForSharedKeysGetSharedKeys(resp *http.Response) (result SharedKeysGetSharedKeysOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysregenerate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysregenerate.go new file mode 100644 index 000000000000..859d40d37d1c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysregenerate.go @@ -0,0 +1,52 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SharedKeysRegenerateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *SharedKeys +} + +// SharedKeysRegenerate ... +func (c WorkspacesClient) SharedKeysRegenerate(ctx context.Context, id WorkspaceId) (result SharedKeysRegenerateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/regenerateSharedKey", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysregenerate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysregenerate_autorest.go deleted file mode 100644 index 05d144e6efbf..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_sharedkeysregenerate_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type SharedKeysRegenerateOperationResponse struct { - HttpResponse *http.Response - Model *SharedKeys -} - -// SharedKeysRegenerate ... -func (c WorkspacesClient) SharedKeysRegenerate(ctx context.Context, id WorkspaceId) (result SharedKeysRegenerateOperationResponse, err error) { - req, err := c.preparerForSharedKeysRegenerate(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "SharedKeysRegenerate", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "SharedKeysRegenerate", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForSharedKeysRegenerate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "SharedKeysRegenerate", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForSharedKeysRegenerate prepares the SharedKeysRegenerate request. -func (c WorkspacesClient) preparerForSharedKeysRegenerate(ctx context.Context, id WorkspaceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPost(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/regenerateSharedKey", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForSharedKeysRegenerate handles the response to the SharedKeysRegenerate request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForSharedKeysRegenerate(resp *http.Response) (result SharedKeysRegenerateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_update.go new file mode 100644 index 000000000000..6e58dc44c04d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_update.go @@ -0,0 +1,55 @@ +package workspaces + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Workspace +} + +// Update ... +func (c WorkspacesClient) Update(ctx context.Context, id WorkspaceId, input WorkspacePatch) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_update_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_update_autorest.go deleted file mode 100644 index dbc9dc291929..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_update_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package workspaces - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type UpdateOperationResponse struct { - HttpResponse *http.Response - Model *Workspace -} - -// Update ... -func (c WorkspacesClient) Update(ctx context.Context, id WorkspaceId, input WorkspacePatch) (result UpdateOperationResponse, err error) { - req, err := c.preparerForUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Update", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Update", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Update", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForUpdate prepares the Update request. -func (c WorkspacesClient) preparerForUpdate(ctx context.Context, id WorkspaceId, input WorkspacePatch) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPatch(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForUpdate handles the response to the Update request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForUpdate(resp *http.Response) (result UpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_usageslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_usageslist.go new file mode 100644 index 000000000000..5818789ced09 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_usageslist.go @@ -0,0 +1,52 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UsagesListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *WorkspaceListUsagesResult +} + +// UsagesList ... +func (c WorkspacesClient) UsagesList(ctx context.Context, id WorkspaceId) (result UsagesListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/usages", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_usageslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_usageslist_autorest.go deleted file mode 100644 index 62ae0cca6087..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_usageslist_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type UsagesListOperationResponse struct { - HttpResponse *http.Response - Model *WorkspaceListUsagesResult -} - -// UsagesList ... -func (c WorkspacesClient) UsagesList(ctx context.Context, id WorkspaceId) (result UsagesListOperationResponse, err error) { - req, err := c.preparerForUsagesList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "UsagesList", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "UsagesList", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForUsagesList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "UsagesList", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForUsagesList prepares the UsagesList request. -func (c WorkspacesClient) preparerForUsagesList(ctx context.Context, id WorkspaceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/usages", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForUsagesList handles the response to the UsagesList request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForUsagesList(resp *http.Response) (result UsagesListOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgegetpurgestatus.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgegetpurgestatus.go new file mode 100644 index 000000000000..1dd6544cf407 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgegetpurgestatus.go @@ -0,0 +1,51 @@ +package workspaces + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type WorkspacePurgeGetPurgeStatusOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *WorkspacePurgeStatusResponse +} + +// WorkspacePurgeGetPurgeStatus ... +func (c WorkspacesClient) WorkspacePurgeGetPurgeStatus(ctx context.Context, id OperationId) (result WorkspacePurgeGetPurgeStatusOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgegetpurgestatus_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgegetpurgestatus_autorest.go deleted file mode 100644 index 670d92ebd64f..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgegetpurgestatus_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package workspaces - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type WorkspacePurgeGetPurgeStatusOperationResponse struct { - HttpResponse *http.Response - Model *WorkspacePurgeStatusResponse -} - -// WorkspacePurgeGetPurgeStatus ... -func (c WorkspacesClient) WorkspacePurgeGetPurgeStatus(ctx context.Context, id OperationId) (result WorkspacePurgeGetPurgeStatusOperationResponse, err error) { - req, err := c.preparerForWorkspacePurgeGetPurgeStatus(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "WorkspacePurgeGetPurgeStatus", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "WorkspacePurgeGetPurgeStatus", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForWorkspacePurgeGetPurgeStatus(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "WorkspacePurgeGetPurgeStatus", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForWorkspacePurgeGetPurgeStatus prepares the WorkspacePurgeGetPurgeStatus request. -func (c WorkspacesClient) preparerForWorkspacePurgeGetPurgeStatus(ctx context.Context, id OperationId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForWorkspacePurgeGetPurgeStatus handles the response to the WorkspacePurgeGetPurgeStatus request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForWorkspacePurgeGetPurgeStatus(resp *http.Response) (result WorkspacePurgeGetPurgeStatusOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgepurge.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgepurge.go new file mode 100644 index 000000000000..a6e74887f080 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgepurge.go @@ -0,0 +1,56 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type WorkspacePurgePurgeOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *WorkspacePurgeResponse +} + +// WorkspacePurgePurge ... +func (c WorkspacesClient) WorkspacePurgePurge(ctx context.Context, id WorkspaceId, input WorkspacePurgeBody) (result WorkspacePurgePurgeOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/purge", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgepurge_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgepurge_autorest.go deleted file mode 100644 index 44cc6cadfa37..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces/method_workspacepurgepurge_autorest.go +++ /dev/null @@ -1,70 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type WorkspacePurgePurgeOperationResponse struct { - HttpResponse *http.Response - Model *WorkspacePurgeResponse -} - -// WorkspacePurgePurge ... -func (c WorkspacesClient) WorkspacePurgePurge(ctx context.Context, id WorkspaceId, input WorkspacePurgeBody) (result WorkspacePurgePurgeOperationResponse, err error) { - req, err := c.preparerForWorkspacePurgePurge(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "WorkspacePurgePurge", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "WorkspacePurgePurge", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForWorkspacePurgePurge(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "WorkspacePurgePurge", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForWorkspacePurgePurge prepares the WorkspacePurgePurge request. -func (c WorkspacesClient) preparerForWorkspacePurgePurge(ctx context.Context, id WorkspaceId, input WorkspacePurgeBody) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPost(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/purge", id.ID())), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForWorkspacePurgePurge handles the response to the WorkspacePurgePurge request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForWorkspacePurgePurge(resp *http.Response) (result WorkspacePurgePurgeOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusAccepted), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/client.go index 02d022fa85e3..d599252c05cd 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/client.go @@ -1,18 +1,26 @@ package workspaces -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type WorkspacesClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewWorkspacesClientWithBaseURI(endpoint string) WorkspacesClient { - return WorkspacesClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewWorkspacesClientWithBaseURI(sdkApi sdkEnv.Api) (*WorkspacesClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "workspaces", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating WorkspacesClient: %+v", err) } + + return &WorkspacesClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/constants.go index af59be86cd69..9bb430c1b542 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/constants.go @@ -1,6 +1,10 @@ package workspaces -import "strings" +import ( + "encoding/json" + "fmt" + "strings" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. @@ -53,6 +57,19 @@ func PossibleValuesForDataIngestionStatus() []string { } } +func (s *DataIngestionStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseDataIngestionStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseDataIngestionStatus(input string) (*DataIngestionStatus, error) { vals := map[string]DataIngestionStatus{ "approachingquota": DataIngestionStatusApproachingQuota, @@ -85,6 +102,19 @@ func PossibleValuesForPublicNetworkAccessType() []string { } } +func (s *PublicNetworkAccessType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parsePublicNetworkAccessType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parsePublicNetworkAccessType(input string) (*PublicNetworkAccessType, error) { vals := map[string]PublicNetworkAccessType{ "disabled": PublicNetworkAccessTypeDisabled, @@ -123,6 +153,19 @@ func PossibleValuesForWorkspaceEntityStatus() []string { } } +func (s *WorkspaceEntityStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseWorkspaceEntityStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseWorkspaceEntityStatus(input string) (*WorkspaceEntityStatus, error) { vals := map[string]WorkspaceEntityStatus{ "canceled": WorkspaceEntityStatusCanceled, @@ -168,6 +211,19 @@ func PossibleValuesForWorkspaceSkuNameEnum() []string { } } +func (s *WorkspaceSkuNameEnum) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseWorkspaceSkuNameEnum(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + func parseWorkspaceSkuNameEnum(input string) (*WorkspaceSkuNameEnum, error) { vals := map[string]WorkspaceSkuNameEnum{ "capacityreservation": WorkspaceSkuNameEnumCapacityReservation, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_createorupdate.go new file mode 100644 index 000000000000..22b589f54ec4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_createorupdate.go @@ -0,0 +1,75 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CreateOrUpdate ... +func (c WorkspacesClient) CreateOrUpdate(ctx context.Context, id WorkspaceId, input Workspace) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c WorkspacesClient) CreateOrUpdateThenPoll(ctx context.Context, id WorkspaceId, input Workspace) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_createorupdate_autorest.go deleted file mode 100644 index 7e742b0f05f9..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_createorupdate_autorest.go +++ /dev/null @@ -1,79 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// CreateOrUpdate ... -func (c WorkspacesClient) CreateOrUpdate(ctx context.Context, id WorkspaceId, input Workspace) (result CreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "CreateOrUpdate", nil, "Failure preparing request") - return - } - - result, err = c.senderForCreateOrUpdate(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "CreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed -func (c WorkspacesClient) CreateOrUpdateThenPoll(ctx context.Context, id WorkspaceId, input Workspace) error { - result, err := c.CreateOrUpdate(ctx, id, input) - if err != nil { - return fmt.Errorf("performing CreateOrUpdate: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after CreateOrUpdate: %+v", err) - } - - return nil -} - -// preparerForCreateOrUpdate prepares the CreateOrUpdate request. -func (c WorkspacesClient) preparerForCreateOrUpdate(ctx context.Context, id WorkspaceId, input Workspace) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForCreateOrUpdate sends the CreateOrUpdate request. The method will close the -// http.Response Body if it receives an error. -func (c WorkspacesClient) senderForCreateOrUpdate(ctx context.Context, req *http.Request) (future CreateOrUpdateOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_delete.go new file mode 100644 index 000000000000..1afdfd7c1379 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_delete.go @@ -0,0 +1,99 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +type DeleteOperationOptions struct { + Force *bool +} + +func DefaultDeleteOperationOptions() DeleteOperationOptions { + return DeleteOperationOptions{} +} + +func (o DeleteOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o DeleteOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o DeleteOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.Force != nil { + out.Append("force", fmt.Sprintf("%v", *o.Force)) + } + return &out +} + +// Delete ... +func (c WorkspacesClient) Delete(ctx context.Context, id WorkspaceId, options DeleteOperationOptions) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c WorkspacesClient) DeleteThenPoll(ctx context.Context, id WorkspaceId, options DeleteOperationOptions) error { + result, err := c.Delete(ctx, id, options) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_delete_autorest.go deleted file mode 100644 index 083805904ec8..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_delete_autorest.go +++ /dev/null @@ -1,107 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -type DeleteOperationOptions struct { - Force *bool -} - -func DefaultDeleteOperationOptions() DeleteOperationOptions { - return DeleteOperationOptions{} -} - -func (o DeleteOperationOptions) toHeaders() map[string]interface{} { - out := make(map[string]interface{}) - - return out -} - -func (o DeleteOperationOptions) toQueryString() map[string]interface{} { - out := make(map[string]interface{}) - - if o.Force != nil { - out["force"] = *o.Force - } - - return out -} - -// Delete ... -func (c WorkspacesClient) Delete(ctx context.Context, id WorkspaceId, options DeleteOperationOptions) (result DeleteOperationResponse, err error) { - req, err := c.preparerForDelete(ctx, id, options) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Delete", nil, "Failure preparing request") - return - } - - result, err = c.senderForDelete(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Delete", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// DeleteThenPoll performs Delete then polls until it's completed -func (c WorkspacesClient) DeleteThenPoll(ctx context.Context, id WorkspaceId, options DeleteOperationOptions) error { - result, err := c.Delete(ctx, id, options) - if err != nil { - return fmt.Errorf("performing Delete: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after Delete: %+v", err) - } - - return nil -} - -// preparerForDelete prepares the Delete request. -func (c WorkspacesClient) preparerForDelete(ctx context.Context, id WorkspaceId, options DeleteOperationOptions) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - for k, v := range options.toQueryString() { - queryParameters[k] = autorest.Encode("query", v) - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithHeaders(options.toHeaders()), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForDelete sends the Delete request. The method will close the -// http.Response Body if it receives an error. -func (c WorkspacesClient) senderForDelete(ctx context.Context, req *http.Request) (future DeleteOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_get.go new file mode 100644 index 000000000000..9c154cb96215 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_get.go @@ -0,0 +1,51 @@ +package workspaces + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Workspace +} + +// Get ... +func (c WorkspacesClient) Get(ctx context.Context, id WorkspaceId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_get_autorest.go deleted file mode 100644 index c16924832e34..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_get_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package workspaces - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - Model *Workspace -} - -// Get ... -func (c WorkspacesClient) Get(ctx context.Context, id WorkspaceId) (result GetOperationResponse, err error) { - req, err := c.preparerForGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Get", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Get", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Get", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGet prepares the Get request. -func (c WorkspacesClient) preparerForGet(ctx context.Context, id WorkspaceId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGet handles the response to the Get request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_list.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_list.go new file mode 100644 index 000000000000..0e4b27ef4e36 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_list.go @@ -0,0 +1,53 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *WorkspaceListResult +} + +// List ... +func (c WorkspacesClient) List(ctx context.Context, id commonids.SubscriptionId) (result ListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/workspaces", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_list_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_list_autorest.go deleted file mode 100644 index 4ce637522a8e..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_list_autorest.go +++ /dev/null @@ -1,70 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListOperationResponse struct { - HttpResponse *http.Response - Model *WorkspaceListResult -} - -// List ... -func (c WorkspacesClient) List(ctx context.Context, id commonids.SubscriptionId) (result ListOperationResponse, err error) { - req, err := c.preparerForList(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "List", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "List", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "List", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForList prepares the List request. -func (c WorkspacesClient) preparerForList(ctx context.Context, id commonids.SubscriptionId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/workspaces", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForList handles the response to the List request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForList(resp *http.Response) (result ListOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_listbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_listbyresourcegroup.go new file mode 100644 index 000000000000..2f5e22b1fc62 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_listbyresourcegroup.go @@ -0,0 +1,53 @@ +package workspaces + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByResourceGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *WorkspaceListResult +} + +// ListByResourceGroup ... +func (c WorkspacesClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/workspaces", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_listbyresourcegroup_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_listbyresourcegroup_autorest.go deleted file mode 100644 index 558cc363bf85..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_listbyresourcegroup_autorest.go +++ /dev/null @@ -1,70 +0,0 @@ -package workspaces - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByResourceGroupOperationResponse struct { - HttpResponse *http.Response - Model *WorkspaceListResult -} - -// ListByResourceGroup ... -func (c WorkspacesClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { - req, err := c.preparerForListByResourceGroup(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "ListByResourceGroup", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "ListByResourceGroup", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListByResourceGroup(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "ListByResourceGroup", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForListByResourceGroup prepares the ListByResourceGroup request. -func (c WorkspacesClient) preparerForListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.OperationalInsights/workspaces", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListByResourceGroup handles the response to the ListByResourceGroup request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForListByResourceGroup(resp *http.Response) (result ListByResourceGroupOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_update.go new file mode 100644 index 000000000000..6e58dc44c04d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_update.go @@ -0,0 +1,55 @@ +package workspaces + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Workspace +} + +// Update ... +func (c WorkspacesClient) Update(ctx context.Context, id WorkspaceId, input WorkspacePatch) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_update_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_update_autorest.go deleted file mode 100644 index dbc9dc291929..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces/method_update_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package workspaces - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type UpdateOperationResponse struct { - HttpResponse *http.Response - Model *Workspace -} - -// Update ... -func (c WorkspacesClient) Update(ctx context.Context, id WorkspaceId, input WorkspacePatch) (result UpdateOperationResponse, err error) { - req, err := c.preparerForUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Update", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Update", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForUpdate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "workspaces.WorkspacesClient", "Update", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForUpdate prepares the Update request. -func (c WorkspacesClient) preparerForUpdate(ctx context.Context, id WorkspaceId, input WorkspacePatch) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPatch(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForUpdate handles the response to the Update request. The method always -// closes the http.Response Body. -func (c WorkspacesClient) responderForUpdate(resp *http.Response) (result UpdateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/client.go index 2c46418582ae..be3ababf3d89 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/client.go @@ -1,18 +1,26 @@ package solution -import "github.com/Azure/go-autorest/autorest" +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type SolutionClient struct { - Client autorest.Client - baseUri string + Client *resourcemanager.Client } -func NewSolutionClientWithBaseURI(endpoint string) SolutionClient { - return SolutionClient{ - Client: autorest.NewClientWithUserAgent(userAgent()), - baseUri: endpoint, +func NewSolutionClientWithBaseURI(sdkApi sdkEnv.Api) (*SolutionClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "solution", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating SolutionClient: %+v", err) } + + return &SolutionClient{ + Client: client, + }, nil } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_createorupdate.go new file mode 100644 index 000000000000..256980d61ec4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_createorupdate.go @@ -0,0 +1,73 @@ +package solution + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CreateOrUpdate ... +func (c SolutionClient) CreateOrUpdate(ctx context.Context, id SolutionId, input Solution) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c SolutionClient) CreateOrUpdateThenPoll(ctx context.Context, id SolutionId, input Solution) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_createorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_createorupdate_autorest.go deleted file mode 100644 index b9600deb5c55..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_createorupdate_autorest.go +++ /dev/null @@ -1,79 +0,0 @@ -package solution - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// CreateOrUpdate ... -func (c SolutionClient) CreateOrUpdate(ctx context.Context, id SolutionId, input Solution) (result CreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForCreateOrUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "CreateOrUpdate", nil, "Failure preparing request") - return - } - - result, err = c.senderForCreateOrUpdate(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "CreateOrUpdate", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed -func (c SolutionClient) CreateOrUpdateThenPoll(ctx context.Context, id SolutionId, input Solution) error { - result, err := c.CreateOrUpdate(ctx, id, input) - if err != nil { - return fmt.Errorf("performing CreateOrUpdate: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after CreateOrUpdate: %+v", err) - } - - return nil -} - -// preparerForCreateOrUpdate prepares the CreateOrUpdate request. -func (c SolutionClient) preparerForCreateOrUpdate(ctx context.Context, id SolutionId, input Solution) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForCreateOrUpdate sends the CreateOrUpdate request. The method will close the -// http.Response Body if it receives an error. -func (c SolutionClient) senderForCreateOrUpdate(ctx context.Context, req *http.Request) (future CreateOrUpdateOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_delete.go new file mode 100644 index 000000000000..152fc30be4b8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_delete.go @@ -0,0 +1,69 @@ +package solution + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c SolutionClient) Delete(ctx context.Context, id SolutionId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c SolutionClient) DeleteThenPoll(ctx context.Context, id SolutionId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_delete_autorest.go deleted file mode 100644 index 0f2e91ab2dfd..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_delete_autorest.go +++ /dev/null @@ -1,78 +0,0 @@ -package solution - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// Delete ... -func (c SolutionClient) Delete(ctx context.Context, id SolutionId) (result DeleteOperationResponse, err error) { - req, err := c.preparerForDelete(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "Delete", nil, "Failure preparing request") - return - } - - result, err = c.senderForDelete(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "Delete", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// DeleteThenPoll performs Delete then polls until it's completed -func (c SolutionClient) DeleteThenPoll(ctx context.Context, id SolutionId) error { - result, err := c.Delete(ctx, id) - if err != nil { - return fmt.Errorf("performing Delete: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after Delete: %+v", err) - } - - return nil -} - -// preparerForDelete prepares the Delete request. -func (c SolutionClient) preparerForDelete(ctx context.Context, id SolutionId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForDelete sends the Delete request. The method will close the -// http.Response Body if it receives an error. -func (c SolutionClient) senderForDelete(ctx context.Context, req *http.Request) (future DeleteOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_get.go new file mode 100644 index 000000000000..0915b9fcf8a8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_get.go @@ -0,0 +1,51 @@ +package solution + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Solution +} + +// Get ... +func (c SolutionClient) Get(ctx context.Context, id SolutionId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_get_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_get_autorest.go deleted file mode 100644 index 6936ce12e6a7..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_get_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package solution - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - Model *Solution -} - -// Get ... -func (c SolutionClient) Get(ctx context.Context, id SolutionId) (result GetOperationResponse, err error) { - req, err := c.preparerForGet(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "Get", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "Get", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForGet(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "Get", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForGet prepares the Get request. -func (c SolutionClient) preparerForGet(ctx context.Context, id SolutionId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForGet handles the response to the Get request. The method always -// closes the http.Response Body. -func (c SolutionClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbyresourcegroup.go new file mode 100644 index 000000000000..d882801798b6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbyresourcegroup.go @@ -0,0 +1,53 @@ +package solution + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByResourceGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *SolutionPropertiesList +} + +// ListByResourceGroup ... +func (c SolutionClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.OperationsManagement/solutions", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbyresourcegroup_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbyresourcegroup_autorest.go deleted file mode 100644 index 6be7bcbe0d1e..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbyresourcegroup_autorest.go +++ /dev/null @@ -1,70 +0,0 @@ -package solution - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByResourceGroupOperationResponse struct { - HttpResponse *http.Response - Model *SolutionPropertiesList -} - -// ListByResourceGroup ... -func (c SolutionClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { - req, err := c.preparerForListByResourceGroup(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "ListByResourceGroup", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "ListByResourceGroup", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListByResourceGroup(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "ListByResourceGroup", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForListByResourceGroup prepares the ListByResourceGroup request. -func (c SolutionClient) preparerForListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.OperationsManagement/solutions", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListByResourceGroup handles the response to the ListByResourceGroup request. The method always -// closes the http.Response Body. -func (c SolutionClient) responderForListByResourceGroup(resp *http.Response) (result ListByResourceGroupOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbysubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbysubscription.go new file mode 100644 index 000000000000..9e8dcf6d1e46 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbysubscription.go @@ -0,0 +1,53 @@ +package solution + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListBySubscriptionOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *SolutionPropertiesList +} + +// ListBySubscription ... +func (c SolutionClient) ListBySubscription(ctx context.Context, id commonids.SubscriptionId) (result ListBySubscriptionOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.OperationsManagement/solutions", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbysubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbysubscription_autorest.go deleted file mode 100644 index d565204d4d42..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_listbysubscription_autorest.go +++ /dev/null @@ -1,70 +0,0 @@ -package solution - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListBySubscriptionOperationResponse struct { - HttpResponse *http.Response - Model *SolutionPropertiesList -} - -// ListBySubscription ... -func (c SolutionClient) ListBySubscription(ctx context.Context, id commonids.SubscriptionId) (result ListBySubscriptionOperationResponse, err error) { - req, err := c.preparerForListBySubscription(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "ListBySubscription", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "ListBySubscription", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForListBySubscription(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "ListBySubscription", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForListBySubscription prepares the ListBySubscription request. -func (c SolutionClient) preparerForListBySubscription(ctx context.Context, id commonids.SubscriptionId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.OperationsManagement/solutions", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForListBySubscription handles the response to the ListBySubscription request. The method always -// closes the http.Response Body. -func (c SolutionClient) responderForListBySubscription(resp *http.Response) (result ListBySubscriptionOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_update.go new file mode 100644 index 000000000000..630fbb0d5057 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_update.go @@ -0,0 +1,73 @@ +package solution + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Update ... +func (c SolutionClient) Update(ctx context.Context, id SolutionId, input SolutionPatch) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// UpdateThenPoll performs Update then polls until it's completed +func (c SolutionClient) UpdateThenPoll(ctx context.Context, id SolutionId, input SolutionPatch) error { + result, err := c.Update(ctx, id, input) + if err != nil { + return fmt.Errorf("performing Update: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Update: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_update_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_update_autorest.go deleted file mode 100644 index fcb2627ac4cc..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution/method_update_autorest.go +++ /dev/null @@ -1,79 +0,0 @@ -package solution - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/polling" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type UpdateOperationResponse struct { - Poller polling.LongRunningPoller - HttpResponse *http.Response -} - -// Update ... -func (c SolutionClient) Update(ctx context.Context, id SolutionId, input SolutionPatch) (result UpdateOperationResponse, err error) { - req, err := c.preparerForUpdate(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "Update", nil, "Failure preparing request") - return - } - - result, err = c.senderForUpdate(ctx, req) - if err != nil { - err = autorest.NewErrorWithError(err, "solution.SolutionClient", "Update", result.HttpResponse, "Failure sending request") - return - } - - return -} - -// UpdateThenPoll performs Update then polls until it's completed -func (c SolutionClient) UpdateThenPoll(ctx context.Context, id SolutionId, input SolutionPatch) error { - result, err := c.Update(ctx, id, input) - if err != nil { - return fmt.Errorf("performing Update: %+v", err) - } - - if err := result.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("polling after Update: %+v", err) - } - - return nil -} - -// preparerForUpdate prepares the Update request. -func (c SolutionClient) preparerForUpdate(ctx context.Context, id SolutionId, input SolutionPatch) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPatch(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// senderForUpdate sends the Update request. The method will close the -// http.Response Body if it receives an error. -func (c SolutionClient) senderForUpdate(ctx context.Context, req *http.Request) (future UpdateOperationResponse, err error) { - var resp *http.Response - resp, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - return - } - - future.Poller, err = polling.NewPollerFromResponse(ctx, resp, c.Client, req.Method) - return -} diff --git a/vendor/modules.txt b/vendor/modules.txt index b0befedcbec3..89437845d6d1 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -126,7 +126,7 @@ github.com/hashicorp/go-azure-helpers/resourcemanager/tags github.com/hashicorp/go-azure-helpers/resourcemanager/zones github.com/hashicorp/go-azure-helpers/sender github.com/hashicorp/go-azure-helpers/storage -# github.com/hashicorp/go-azure-sdk v0.20230824.1130652 +# github.com/hashicorp/go-azure-sdk v0.20230825.1030756 ## explicit; go 1.19 github.com/hashicorp/go-azure-sdk/resource-manager/aad/2021-05-01/domainservices github.com/hashicorp/go-azure-sdk/resource-manager/aadb2c/2021-04-01-preview From 3e76e78e15b4532ea423c44deadaaaeab761cf0d Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Fri, 25 Aug 2023 13:30:29 +0200 Subject: [PATCH 078/336] loganalytics: updating to account for `operationalinsights` and `operationsmanagement` moving to `hashicorp/go-azure-sdk`'s base layer --- internal/clients/client.go | 4 +- .../services/loganalytics/client/client.go | 114 ++++++++++++------ 2 files changed, 79 insertions(+), 39 deletions(-) diff --git a/internal/clients/client.go b/internal/clients/client.go index dd2ce84cff05..a62564cc3b3f 100644 --- a/internal/clients/client.go +++ b/internal/clients/client.go @@ -455,7 +455,9 @@ func (client *Client) Build(ctx context.Context, o *common.ClientOptions) error } client.Legacy = legacy.NewClient(o) client.Lighthouse = lighthouse.NewClient(o) - client.LogAnalytics = loganalytics.NewClient(o) + if client.LogAnalytics, err = loganalytics.NewClient(o); err != nil { + return fmt.Errorf("building clients for LogAnalytics: %+v", err) + } client.LoadBalancers = loadbalancers.NewClient(o) if client.Logic, err = logic.NewClient(o); err != nil { return fmt.Errorf("building clients for Logic: %+v", err) diff --git a/internal/services/loganalytics/client/client.go b/internal/services/loganalytics/client/client.go index 80504ffe1dd7..6c23cd15c7b8 100644 --- a/internal/services/loganalytics/client/client.go +++ b/internal/services/loganalytics/client/client.go @@ -4,6 +4,8 @@ package client import ( + "fmt" + "github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypackqueries" "github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks" "github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/clusters" @@ -34,55 +36,91 @@ type Client struct { WorkspaceClient *featureWorkspaces.WorkspacesClient // 2022-10-01 API version does not contain sharedkeys related API, so we keep two versions SDK of this API } -func NewClient(o *common.ClientOptions) *Client { - ClusterClient := clusters.NewClustersClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&ClusterClient.Client, o.ResourceManagerAuthorizer) +func NewClient(o *common.ClientOptions) (*Client, error) { + clusterClient, err := clusters.NewClustersClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building Clusters client: %+v", err) + } + o.Configure(clusterClient.Client, o.Authorizers.ResourceManager) - DataExportClient := dataexport.NewDataExportClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&DataExportClient.Client, o.ResourceManagerAuthorizer) + dataExportClient, err := dataexport.NewDataExportClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building DataExport client: %+v", err) + } + o.Configure(dataExportClient.Client, o.Authorizers.ResourceManager) - DataSourcesClient := datasources.NewDataSourcesClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&DataSourcesClient.Client, o.ResourceManagerAuthorizer) + dataSourcesClient, err := datasources.NewDataSourcesClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building DataSources client: %+v", err) + } + o.Configure(dataSourcesClient.Client, o.Authorizers.ResourceManager) - WorkspacesClient := workspaces.NewWorkspacesClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&WorkspacesClient.Client, o.ResourceManagerAuthorizer) + workspacesClient, err := workspaces.NewWorkspacesClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building Workspaces client: %+v", err) + } + o.Configure(workspacesClient.Client, o.Authorizers.ResourceManager) - featureWorkspaceClient := featureWorkspaces.NewWorkspacesClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&featureWorkspaceClient.Client, o.ResourceManagerAuthorizer) + featureWorkspaceClient, err := featureWorkspaces.NewWorkspacesClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building FeatureWorkspaces client: %+v", err) + } + o.Configure(featureWorkspaceClient.Client, o.Authorizers.ResourceManager) - SavedSearchesClient := savedsearches.NewSavedSearchesClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&SavedSearchesClient.Client, o.ResourceManagerAuthorizer) + savedSearchesClient, err := savedsearches.NewSavedSearchesClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building SavedSearches client: %+v", err) + } + o.Configure(savedSearchesClient.Client, o.Authorizers.ResourceManager) - SolutionsClient := solution.NewSolutionClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&SolutionsClient.Client, o.ResourceManagerAuthorizer) + solutionsClient, err := solution.NewSolutionClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building Solutions client: %+v", err) + } + o.Configure(solutionsClient.Client, o.Authorizers.ResourceManager) - StorageInsightsClient := storageinsights.NewStorageInsightsClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&StorageInsightsClient.Client, o.ResourceManagerAuthorizer) + storageInsightsClient, err := storageinsights.NewStorageInsightsClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building StorageInsights client: %+v", err) + } + o.Configure(storageInsightsClient.Client, o.Authorizers.ResourceManager) - LinkedServicesClient := linkedservices.NewLinkedServicesClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&LinkedServicesClient.Client, o.ResourceManagerAuthorizer) + linkedServicesClient, err := linkedservices.NewLinkedServicesClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building LinkedServices client: %+v", err) + } + o.Configure(linkedServicesClient.Client, o.Authorizers.ResourceManager) - LinkedStorageAccountClient := linkedstorageaccounts.NewLinkedStorageAccountsClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&LinkedStorageAccountClient.Client, o.ResourceManagerAuthorizer) + linkedStorageAccountClient, err := linkedstorageaccounts.NewLinkedStorageAccountsClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building LinkedStorageAccounts client: %+v", err) + } + o.Configure(linkedStorageAccountClient.Client, o.Authorizers.ResourceManager) - QueryPacksClient := querypacks.NewQueryPacksClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&QueryPacksClient.Client, o.ResourceManagerAuthorizer) + queryPacksClient, err := querypacks.NewQueryPacksClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building QueryPacks client: %+v", err) + } + o.Configure(queryPacksClient.Client, o.Authorizers.ResourceManager) - QueryPackQueriesClient := querypackqueries.NewQueryPackQueriesClientWithBaseURI(o.ResourceManagerEndpoint) - o.ConfigureClient(&QueryPackQueriesClient.Client, o.ResourceManagerAuthorizer) + queryPackQueriesClient, err := querypackqueries.NewQueryPackQueriesClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building QueryPackQueries client: %+v", err) + } + o.Configure(queryPackQueriesClient.Client, o.Authorizers.ResourceManager) return &Client{ - ClusterClient: &ClusterClient, - DataExportClient: &DataExportClient, - DataSourcesClient: &DataSourcesClient, - LinkedServicesClient: &LinkedServicesClient, - LinkedStorageAccountClient: &LinkedStorageAccountClient, - QueryPacksClient: &QueryPacksClient, - QueryPackQueriesClient: &QueryPackQueriesClient, - SavedSearchesClient: &SavedSearchesClient, - SolutionsClient: &SolutionsClient, - StorageInsightsClient: &StorageInsightsClient, - SharedKeyWorkspacesClient: &WorkspacesClient, - WorkspaceClient: &featureWorkspaceClient, - } + ClusterClient: clusterClient, + DataExportClient: dataExportClient, + DataSourcesClient: dataSourcesClient, + LinkedServicesClient: linkedServicesClient, + LinkedStorageAccountClient: linkedStorageAccountClient, + QueryPacksClient: queryPacksClient, + QueryPackQueriesClient: queryPackQueriesClient, + SavedSearchesClient: savedSearchesClient, + SolutionsClient: solutionsClient, + StorageInsightsClient: storageInsightsClient, + SharedKeyWorkspacesClient: workspacesClient, + WorkspaceClient: featureWorkspaceClient, + }, nil } From ccc3106a49de696461771aeeae416ba7de89c167 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Thu, 31 Aug 2023 11:34:07 +0200 Subject: [PATCH 079/336] go mod vendor --- go.sum | 4 ---- 1 file changed, 4 deletions(-) diff --git a/go.sum b/go.sum index 1cae84eec3dc..8504b41ae269 100644 --- a/go.sum +++ b/go.sum @@ -121,8 +121,6 @@ github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv github.com/hashicorp/go-azure-helpers v0.12.0/go.mod h1:Zc3v4DNeX6PDdy7NljlYpnrdac1++qNW0I4U+ofGwpg= github.com/hashicorp/go-azure-helpers v0.59.0 h1:E73yoPN2r1y0vvZ4dgAh8NRGuVTNXH3lZKRjT+4oNmA= github.com/hashicorp/go-azure-helpers v0.59.0/go.mod h1:BQUQp5udwbJ8pnzl0wByCLVEEyPMAFpJ9vOREiCzObo= -github.com/hashicorp/go-azure-sdk v0.20230824.1130652 h1:IOQTvyj3JvUfc8oTmLrh3pXVCjZlozp3aqhM243Pzzo= -github.com/hashicorp/go-azure-sdk v0.20230824.1130652/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= github.com/hashicorp/go-azure-sdk v0.20230825.1030756 h1:zXrOc4ZqWOYxxoQTnWZzpkgNVKj1L89l41vrPKx+y5o= github.com/hashicorp/go-azure-sdk v0.20230825.1030756/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU= @@ -243,7 +241,6 @@ github.com/rickb777/date v1.12.5-0.20200422084442-6300e543c4d9 h1:czJCcoUR3FMpHn github.com/rickb777/date v1.12.5-0.20200422084442-6300e543c4d9/go.mod h1:L8WrssTzvgYw34/Ppa0JpJfI7KKXZ2cVGI6Djt0brUU= github.com/rickb777/plural v1.2.0 h1:5tvEc7UBCZ7l8h/2UeybSkt/uu1DQsZFOFdNevmUhlE= github.com/rickb777/plural v1.2.0/go.mod h1:UdpyWFCGbo3mvK3f/PfZOAOrkjzJlYN/sD46XNWJ+Es= -github.com/sebdah/goldie v1.0.0/go.mod h1:jXP4hmWywNEwZzhMuv2ccnqTSFpuq8iyQhtQdkkZBH4= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= @@ -288,7 +285,6 @@ github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLE github.com/zclconf/go-cty v1.1.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= github.com/zclconf/go-cty v1.13.1 h1:0a6bRwuiSHtAmqCqNOE+c2oHgepv0ctoxU4FUe43kwc= github.com/zclconf/go-cty v1.13.1/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= -github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= From 0b77781200cc3aa42adc329680be11411eba9822 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Thu, 31 Aug 2023 13:45:08 +0200 Subject: [PATCH 080/336] bug: untyped resources now get a timed context during custom imports --- internal/tf/pluginsdk/imports.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/tf/pluginsdk/imports.go b/internal/tf/pluginsdk/imports.go index 5e66bb469833..551bdf1dabb3 100644 --- a/internal/tf/pluginsdk/imports.go +++ b/internal/tf/pluginsdk/imports.go @@ -30,6 +30,12 @@ func ImporterValidatingResourceIdThen(validateFunc IDValidationFunc, thenFunc Im StateContext: func(ctx context.Context, d *ResourceData, meta interface{}) ([]*ResourceData, error) { log.Printf("[DEBUG] Importing Resource - parsing %q", d.Id()) + if _, ok := ctx.Deadline(); !ok { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, d.Timeout(schema.TimeoutRead)) + defer cancel() + } + if err := validateFunc(d.Id()); err != nil { // NOTE: we're intentionally not wrapping this error, since it's prefixed with `parsing %q:` return []*ResourceData{d}, err From 349741358ce46d2a0bc45770962d9c94de062eaa Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Thu, 31 Aug 2023 13:58:00 +0200 Subject: [PATCH 081/336] updating to include #23088 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9ddf8c89f1b..8e39beac6231 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ FEATURES: ENHANCEMENTS: +* dependencies: updating to `v0.20230825.1030756` of `github.com/hashicorp/go-azure-sdk` [GH-23088] * `containerapps`: updating to API Version `2023-05-01` [GH-22804] * `keyvault`: upgrade remaining resources to `2023-02-01` [GH-23089] * `internal/sdk`: typed resources using a custom importer now get a timed context [GH-23081] From 778cddcb425d014926f2e7fbddefab7620c4d8b8 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Thu, 31 Aug 2023 14:10:34 +0200 Subject: [PATCH 082/336] updating to include #23029 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e39beac6231..4a9aa9db081b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ ENHANCEMENTS: * `internal/sdk`: typed resources using a custom importer now get a timed context [GH-23081] * `azurerm_batch_pool` - support for `automatic_upgrade_enabled` [GH-23021] * `azurerm_container_app_environment` - support for the `dapr_application_insights_connection_string` [GH-23080] +* `azurerm_monitor_diagnostic_setting` - deprecating `retention_policy` within `enabled_log` [GH-23029] * `azurerm_postgresql_flexible_server` - support for the `auto_grow_enabled` property [GH-23069] * `azurerm_resource_provider_registration` - refactoring to use `hashicorp/go-azure-sdk` [GH-23072] * `azurerm_virtual_network_gateway` - increasing the default timeout for create to `90m` [GH-23003] From 19aa0ccd15d5017cd3d85c7c7462217f4fd4f1da Mon Sep 17 00:00:00 2001 From: neil-yechenwei Date: Fri, 1 Sep 2023 09:33:12 +0800 Subject: [PATCH 083/336] update code --- .../cosmosdb_cassandra_datacenter_resource.go | 43 ++++++------------- 1 file changed, 14 insertions(+), 29 deletions(-) diff --git a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go index 7ab7f053e36a..50c204afdd43 100644 --- a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go +++ b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go @@ -161,8 +161,7 @@ func resourceCassandraDatacenterCreate(d *pluginsdk.ResourceData, meta interface body.Properties.ManagedDiskCustomerKeyUri = utils.String(v.(string)) } - err = client.CassandraDataCentersCreateUpdateThenPoll(ctx, id, body) - if err != nil { + if err = client.CassandraDataCentersCreateUpdateThenPoll(ctx, id, body); err != nil { return fmt.Errorf("creating %q: %+v", id, err) } @@ -196,18 +195,16 @@ func resourceCassandraDatacenterRead(d *pluginsdk.ResourceData, meta interface{} d.Set("cassandra_cluster_id", clusterId.ID()) if model := resp.Model; model != nil { if props := model.Properties; props != nil { - if res := props; res != nil { - d.Set("delegated_management_subnet_id", props.DelegatedSubnetId) - d.Set("location", location.NormalizeNilable(props.DataCenterLocation)) - d.Set("backup_storage_customer_key_uri", props.BackupStorageCustomerKeyUri) - d.Set("base64_encoded_yaml_fragment", props.Base64EncodedCassandraYamlFragment) - d.Set("managed_disk_customer_key_uri", props.ManagedDiskCustomerKeyUri) - d.Set("node_count", props.NodeCount) - d.Set("disk_count", int(*props.DiskCapacity)) - d.Set("disk_sku", props.DiskSku) - d.Set("sku_name", props.Sku) - d.Set("availability_zones_enabled", props.AvailabilityZone) - } + d.Set("delegated_management_subnet_id", props.DelegatedSubnetId) + d.Set("location", location.NormalizeNilable(props.DataCenterLocation)) + d.Set("backup_storage_customer_key_uri", props.BackupStorageCustomerKeyUri) + d.Set("base64_encoded_yaml_fragment", props.Base64EncodedCassandraYamlFragment) + d.Set("managed_disk_customer_key_uri", props.ManagedDiskCustomerKeyUri) + d.Set("node_count", props.NodeCount) + d.Set("disk_count", int(*props.DiskCapacity)) + d.Set("disk_sku", props.DiskSku) + d.Set("sku_name", props.Sku) + d.Set("availability_zones_enabled", props.AvailabilityZone) } } return nil @@ -244,15 +241,10 @@ func resourceCassandraDatacenterUpdate(d *pluginsdk.ResourceData, meta interface body.Properties.ManagedDiskCustomerKeyUri = utils.String(v.(string)) } - future, err := client.CassandraDataCentersCreateUpdate(ctx, *id, body) - if err != nil { + if err := client.CassandraDataCentersCreateUpdateThenPoll(ctx, *id, body); err != nil { return fmt.Errorf("updating %q: %+v", id, err) } - if err = future.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("waiting on update for %q: %+v", id, err) - } - // Issue: https://github.com/Azure/azure-rest-api-specs/issues/19078 // There is a long running issue on updating this resource. // The API cannot update the property after WaitForCompletionRef is returned. @@ -283,15 +275,8 @@ func resourceCassandraDatacenterDelete(d *pluginsdk.ResourceData, meta interface return err } - future, err := client.CassandraDataCentersDelete(ctx, *id) - if err != nil { - if !response.WasNotFound(future.HttpResponse) { - return fmt.Errorf("deleting %q: %+v", id, err) - } - } - - if err = future.Poller.PollUntilDone(); err != nil { - return fmt.Errorf("waiting on deleting for %q: %+v", id, err) + if err := client.CassandraDataCentersDeleteThenPoll(ctx, *id); err != nil { + return fmt.Errorf("deleting %q: %+v", id, err) } return nil From 509d0a7407cf4c2f653e42961eb7a1f52777e862 Mon Sep 17 00:00:00 2001 From: neil-yechenwei Date: Fri, 1 Sep 2023 20:37:52 +0800 Subject: [PATCH 084/336] update code --- .../cosmosdb_cassandra_datacenter_resource.go | 3 +- .../cosmos/parse/cassandra_datacenter.go | 78 ----------- .../cosmos/parse/cassandra_datacenter_test.go | 131 ------------------ internal/services/cosmos/resourceids.go | 1 - .../validate/cassandra_datacenter_id.go | 26 ---- .../validate/cassandra_datacenter_id_test.go | 91 ------------ 6 files changed, 1 insertion(+), 329 deletions(-) delete mode 100644 internal/services/cosmos/parse/cassandra_datacenter.go delete mode 100644 internal/services/cosmos/parse/cassandra_datacenter_test.go delete mode 100644 internal/services/cosmos/validate/cassandra_datacenter_id.go delete mode 100644 internal/services/cosmos/validate/cassandra_datacenter_id_test.go diff --git a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go index 50c204afdd43..49c5e2d90eec 100644 --- a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go +++ b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go @@ -17,7 +17,6 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/cosmos/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/cosmos/validate" keyVaultValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/keyvault/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" @@ -34,7 +33,7 @@ func resourceCassandraDatacenter() *pluginsdk.Resource { Delete: resourceCassandraDatacenterDelete, Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { - _, err := parse.CassandraDatacenterID(id) + _, err := managedcassandras.ParseDataCenterID(id) return err }), diff --git a/internal/services/cosmos/parse/cassandra_datacenter.go b/internal/services/cosmos/parse/cassandra_datacenter.go deleted file mode 100644 index 424bfd3c09cb..000000000000 --- a/internal/services/cosmos/parse/cassandra_datacenter.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "fmt" - "strings" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -type CassandraDatacenterId struct { - SubscriptionId string - ResourceGroup string - CassandraClusterName string - DataCenterName string -} - -func NewCassandraDatacenterID(subscriptionId, resourceGroup, cassandraClusterName, dataCenterName string) CassandraDatacenterId { - return CassandraDatacenterId{ - SubscriptionId: subscriptionId, - ResourceGroup: resourceGroup, - CassandraClusterName: cassandraClusterName, - DataCenterName: dataCenterName, - } -} - -func (id CassandraDatacenterId) String() string { - segments := []string{ - fmt.Sprintf("Data Center Name %q", id.DataCenterName), - fmt.Sprintf("Cassandra Cluster Name %q", id.CassandraClusterName), - fmt.Sprintf("Resource Group %q", id.ResourceGroup), - } - segmentsStr := strings.Join(segments, " / ") - return fmt.Sprintf("%s: (%s)", "Cassandra Datacenter", segmentsStr) -} - -func (id CassandraDatacenterId) ID() string { - fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.DocumentDB/cassandraClusters/%s/dataCenters/%s" - return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroup, id.CassandraClusterName, id.DataCenterName) -} - -// CassandraDatacenterID parses a CassandraDatacenter ID into an CassandraDatacenterId struct -func CassandraDatacenterID(input string) (*CassandraDatacenterId, error) { - id, err := resourceids.ParseAzureResourceID(input) - if err != nil { - return nil, fmt.Errorf("parsing %q as an CassandraDatacenter ID: %+v", input, err) - } - - resourceId := CassandraDatacenterId{ - SubscriptionId: id.SubscriptionID, - ResourceGroup: id.ResourceGroup, - } - - if resourceId.SubscriptionId == "" { - return nil, fmt.Errorf("ID was missing the 'subscriptions' element") - } - - if resourceId.ResourceGroup == "" { - return nil, fmt.Errorf("ID was missing the 'resourceGroups' element") - } - - if resourceId.CassandraClusterName, err = id.PopSegment("cassandraClusters"); err != nil { - return nil, err - } - if resourceId.DataCenterName, err = id.PopSegment("dataCenters"); err != nil { - return nil, err - } - - if err := id.ValidateNoEmptySegments(input); err != nil { - return nil, err - } - - return &resourceId, nil -} diff --git a/internal/services/cosmos/parse/cassandra_datacenter_test.go b/internal/services/cosmos/parse/cassandra_datacenter_test.go deleted file mode 100644 index 22fe38b0bfc5..000000000000 --- a/internal/services/cosmos/parse/cassandra_datacenter_test.go +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "testing" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -var _ resourceids.Id = CassandraDatacenterId{} - -func TestCassandraDatacenterIDFormatter(t *testing.T) { - actual := NewCassandraDatacenterID("12345678-1234-9876-4563-123456789012", "resGroup1", "cluster1", "dc1").ID() - expected := "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/cassandraClusters/cluster1/dataCenters/dc1" - if actual != expected { - t.Fatalf("Expected %q but got %q", expected, actual) - } -} - -func TestCassandraDatacenterID(t *testing.T) { - testData := []struct { - Input string - Error bool - Expected *CassandraDatacenterId - }{ - - { - // empty - Input: "", - Error: true, - }, - - { - // missing SubscriptionId - Input: "/", - Error: true, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Error: true, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Error: true, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Error: true, - }, - - { - // missing CassandraClusterName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/", - Error: true, - }, - - { - // missing value for CassandraClusterName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/cassandraClusters/", - Error: true, - }, - - { - // missing DataCenterName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/cassandraClusters/cluster1/", - Error: true, - }, - - { - // missing value for DataCenterName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/cassandraClusters/cluster1/dataCenters/", - Error: true, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/cassandraClusters/cluster1/dataCenters/dc1", - Expected: &CassandraDatacenterId{ - SubscriptionId: "12345678-1234-9876-4563-123456789012", - ResourceGroup: "resGroup1", - CassandraClusterName: "cluster1", - DataCenterName: "dc1", - }, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.DOCUMENTDB/CASSANDRACLUSTERS/CLUSTER1/DATACENTERS/DC1", - Error: true, - }, - } - - for _, v := range testData { - t.Logf("[DEBUG] Testing %q", v.Input) - - actual, err := CassandraDatacenterID(v.Input) - if err != nil { - if v.Error { - continue - } - - t.Fatalf("Expect a value but got an error: %s", err) - } - if v.Error { - t.Fatal("Expect an error but didn't get one") - } - - if actual.SubscriptionId != v.Expected.SubscriptionId { - t.Fatalf("Expected %q but got %q for SubscriptionId", v.Expected.SubscriptionId, actual.SubscriptionId) - } - if actual.ResourceGroup != v.Expected.ResourceGroup { - t.Fatalf("Expected %q but got %q for ResourceGroup", v.Expected.ResourceGroup, actual.ResourceGroup) - } - if actual.CassandraClusterName != v.Expected.CassandraClusterName { - t.Fatalf("Expected %q but got %q for CassandraClusterName", v.Expected.CassandraClusterName, actual.CassandraClusterName) - } - if actual.DataCenterName != v.Expected.DataCenterName { - t.Fatalf("Expected %q but got %q for DataCenterName", v.Expected.DataCenterName, actual.DataCenterName) - } - } -} diff --git a/internal/services/cosmos/resourceids.go b/internal/services/cosmos/resourceids.go index 560e68ca9dba..a6df8e80ca55 100644 --- a/internal/services/cosmos/resourceids.go +++ b/internal/services/cosmos/resourceids.go @@ -21,4 +21,3 @@ package cosmos //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=SqlTrigger -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resourceGroup1/providers/Microsoft.DocumentDB/databaseAccounts/account1/sqlDatabases/database1/containers/container1/triggers/trigger1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=Table -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/databaseAccounts/acc1/tables/table1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=CassandraCluster -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/cassandraClusters/cluster1 -//go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=CassandraDatacenter -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/cassandraClusters/cluster1/dataCenters/dc1 diff --git a/internal/services/cosmos/validate/cassandra_datacenter_id.go b/internal/services/cosmos/validate/cassandra_datacenter_id.go deleted file mode 100644 index 06e08724e8b6..000000000000 --- a/internal/services/cosmos/validate/cassandra_datacenter_id.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "fmt" - - "github.com/hashicorp/terraform-provider-azurerm/internal/services/cosmos/parse" -) - -func CassandraDatacenterID(input interface{}, key string) (warnings []string, errors []error) { - v, ok := input.(string) - if !ok { - errors = append(errors, fmt.Errorf("expected %q to be a string", key)) - return - } - - if _, err := parse.CassandraDatacenterID(v); err != nil { - errors = append(errors, err) - } - - return -} diff --git a/internal/services/cosmos/validate/cassandra_datacenter_id_test.go b/internal/services/cosmos/validate/cassandra_datacenter_id_test.go deleted file mode 100644 index ceda442dd502..000000000000 --- a/internal/services/cosmos/validate/cassandra_datacenter_id_test.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import "testing" - -func TestCassandraDatacenterID(t *testing.T) { - cases := []struct { - Input string - Valid bool - }{ - - { - // empty - Input: "", - Valid: false, - }, - - { - // missing SubscriptionId - Input: "/", - Valid: false, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Valid: false, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Valid: false, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Valid: false, - }, - - { - // missing CassandraClusterName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/", - Valid: false, - }, - - { - // missing value for CassandraClusterName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/cassandraClusters/", - Valid: false, - }, - - { - // missing DataCenterName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/cassandraClusters/cluster1/", - Valid: false, - }, - - { - // missing value for DataCenterName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/cassandraClusters/cluster1/dataCenters/", - Valid: false, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/cassandraClusters/cluster1/dataCenters/dc1", - Valid: true, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.DOCUMENTDB/CASSANDRACLUSTERS/CLUSTER1/DATACENTERS/DC1", - Valid: false, - }, - } - for _, tc := range cases { - t.Logf("[DEBUG] Testing Value %s", tc.Input) - _, errors := CassandraDatacenterID(tc.Input, "test") - valid := len(errors) == 0 - - if tc.Valid != valid { - t.Fatalf("Expected %t but got %t", tc.Valid, valid) - } - } -} From 099f4b853cc54c38b0f304daea4d1501e06f39a4 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Fri, 1 Sep 2023 15:15:59 +0200 Subject: [PATCH 085/336] dependencies: updating to `v0.20230901.1104643` of `github.com/hashicorp/go-azure-sdk` --- go.mod | 2 +- go.sum | 4 ++-- .../go-azure-sdk/sdk/client/resourcemanager/poller_lro.go | 2 ++ vendor/modules.txt | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index d56808e46214..dfd4bd281716 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/google/go-cmp v0.5.9 github.com/google/uuid v1.3.0 github.com/hashicorp/go-azure-helpers v0.59.0 - github.com/hashicorp/go-azure-sdk v0.20230825.1030756 + github.com/hashicorp/go-azure-sdk v0.20230901.1104643 github.com/hashicorp/go-hclog v1.4.0 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-uuid v1.0.3 diff --git a/go.sum b/go.sum index 8504b41ae269..b4b839b7ac22 100644 --- a/go.sum +++ b/go.sum @@ -121,8 +121,8 @@ github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv github.com/hashicorp/go-azure-helpers v0.12.0/go.mod h1:Zc3v4DNeX6PDdy7NljlYpnrdac1++qNW0I4U+ofGwpg= github.com/hashicorp/go-azure-helpers v0.59.0 h1:E73yoPN2r1y0vvZ4dgAh8NRGuVTNXH3lZKRjT+4oNmA= github.com/hashicorp/go-azure-helpers v0.59.0/go.mod h1:BQUQp5udwbJ8pnzl0wByCLVEEyPMAFpJ9vOREiCzObo= -github.com/hashicorp/go-azure-sdk v0.20230825.1030756 h1:zXrOc4ZqWOYxxoQTnWZzpkgNVKj1L89l41vrPKx+y5o= -github.com/hashicorp/go-azure-sdk v0.20230825.1030756/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= +github.com/hashicorp/go-azure-sdk v0.20230901.1104643 h1:P8pCOvgx7+iJLXyoiVlPeckIL5ZHrD/FEhyBCZE2UoI= +github.com/hashicorp/go-azure-sdk v0.20230901.1104643/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU= github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= diff --git a/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/poller_lro.go b/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/poller_lro.go index 8e6898d3edb1..8e2ce038bd89 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/poller_lro.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/poller_lro.go @@ -183,6 +183,8 @@ func (p *longRunningOperationPoller) Poll(ctx context.Context) (result *pollers. "newReplicaGroup": pollers.PollingStatusInProgress, // AnalysisServices @ 2017-08-01 (Servers) returns `Provisioning` during Creation "Provisioning": pollers.PollingStatusInProgress, + // Resources @ 2020-10-01 (DeploymentScripts) returns `ProvisioningResources` during Creation + "ProvisioningResources": pollers.PollingStatusInProgress, // AnalysisServices @ 2017-08-01 (Servers Resume) returns `Resuming` during Update "Resuming": pollers.PollingStatusInProgress, // AnalysisServices @ 2017-08-01 (Servers Suspend) returns `Scaling` during Update diff --git a/vendor/modules.txt b/vendor/modules.txt index 89437845d6d1..e19a35e2c8a9 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -126,7 +126,7 @@ github.com/hashicorp/go-azure-helpers/resourcemanager/tags github.com/hashicorp/go-azure-helpers/resourcemanager/zones github.com/hashicorp/go-azure-helpers/sender github.com/hashicorp/go-azure-helpers/storage -# github.com/hashicorp/go-azure-sdk v0.20230825.1030756 +# github.com/hashicorp/go-azure-sdk v0.20230901.1104643 ## explicit; go 1.19 github.com/hashicorp/go-azure-sdk/resource-manager/aad/2021-05-01/domainservices github.com/hashicorp/go-azure-sdk/resource-manager/aadb2c/2021-04-01-preview From 178511526500d5e41daeccb679014f6fcbc8f79c Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Fri, 1 Sep 2023 15:51:06 +0200 Subject: [PATCH 086/336] updating to include #22932 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a9aa9db081b..4ed8e5f608a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,8 +21,9 @@ ENHANCEMENTS: BUG FIXES: * `azurerm_automation_account` - fixes logic for `local_authentication_enabled` [GH-23082] -* `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` [GH-23019] * `azurerm_monitor_diagnostic_setting` - fix `enabled_log` feature flagged schema [GH-23093] +* `azurerm_pim_active_role_assignment`: polling for the duration of the timeout, rather than a fixed 5 minute value [GH-22932] +* `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` [GH-23019] ## 3.71.0 (August 24, 2023) From 0fd5e479713700a58a44a953e888cca3eb28cc1e Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Fri, 1 Sep 2023 17:09:47 +0200 Subject: [PATCH 087/336] updating to include #23153 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ed8e5f608a9..6418ab95b22d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ FEATURES: ENHANCEMENTS: -* dependencies: updating to `v0.20230825.1030756` of `github.com/hashicorp/go-azure-sdk` [GH-23088] +* dependencies: updating to `v0.20230901.1104643` of `github.com/hashicorp/go-azure-sdk` [GH-23153] * `containerapps`: updating to API Version `2023-05-01` [GH-22804] * `keyvault`: upgrade remaining resources to `2023-02-01` [GH-23089] * `internal/sdk`: typed resources using a custom importer now get a timed context [GH-23081] From 4f50fcd640e3a10af7529a62b76d8124f20c534b Mon Sep 17 00:00:00 2001 From: naimadswdn <39454533+naimadswdn@users.noreply.github.com> Date: Fri, 1 Sep 2023 21:56:51 +0200 Subject: [PATCH 088/336] Update API Management website documentation (#23151) --- website/docs/r/api_management.html.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/docs/r/api_management.html.markdown b/website/docs/r/api_management.html.markdown index 7237a8c21b8f..f26904cf1b50 100644 --- a/website/docs/r/api_management.html.markdown +++ b/website/docs/r/api_management.html.markdown @@ -97,7 +97,9 @@ The following arguments are supported: ~> **NOTE:** Custom public IPs are only supported on the `Premium` and `Developer` tiers when deployed in a virtual network. -* `public_network_access_enabled` - (Optional) Is public access to the service allowed?. Defaults to `true` +* `public_network_access_enabled` - (Optional) Is public access to the service allowed? Defaults to `true`. + +~> **NOTE:** This option is applicable only to the Management plane, not the API gateway or Developer portal. It is required to be `true` on the creation. * `virtual_network_type` - (Optional) The type of virtual network you want to use, valid values include: `None`, `External`, `Internal`. From 1431dc3c2d9cd39a523b3979911bd9e179456115 Mon Sep 17 00:00:00 2001 From: neil-yechenwei Date: Mon, 4 Sep 2023 11:06:05 +0800 Subject: [PATCH 089/336] update code --- website/docs/r/bot_channel_ms_teams.html.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/website/docs/r/bot_channel_ms_teams.html.markdown b/website/docs/r/bot_channel_ms_teams.html.markdown index 82036c0b9803..b9d8f559ff51 100644 --- a/website/docs/r/bot_channel_ms_teams.html.markdown +++ b/website/docs/r/bot_channel_ms_teams.html.markdown @@ -49,6 +49,8 @@ The following arguments are supported: * `accepted_terms_enabled` - (Optional) Is accepted terms for Microsoft Teams channel calls enabled? Defaults to `false`. +-> **NOTE:** Once `accepted_terms_enabled` is enabled, it cannot be disabled anymore. Even if this resource is destroyed, it still cannot be updated back to `false` once it's enabled. Unless the parent resource `azurerm_bot_channels_registration` is destroyed, then it would be set back to `false`. + * `calling_web_hook` - (Optional) Specifies the webhook for Microsoft Teams channel calls. * `deployment_environment` - (Optional) The deployment environment for Microsoft Teams channel calls. Possible values are `CommercialDeployment` and `GCCModerateDeployment`. Defaults to `CommercialDeployment`. From 882bf6e54d3212f5e1aa79b278d2d3feeb5dee07 Mon Sep 17 00:00:00 2001 From: neil-yechenwei Date: Mon, 4 Sep 2023 11:36:58 +0800 Subject: [PATCH 090/336] update code --- .../cosmosdb_cassandra_datacenter_resource.go | 39 ++----------------- 1 file changed, 4 insertions(+), 35 deletions(-) diff --git a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go index 49c5e2d90eec..0fd742fc7f20 100644 --- a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go +++ b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go @@ -4,7 +4,6 @@ package cosmos import ( - "context" "fmt" "log" "time" @@ -123,7 +122,10 @@ func resourceCassandraDatacenterCreate(d *pluginsdk.ResourceData, meta interface ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() - clusterId, _ := managedcassandras.ParseCassandraClusterID(d.Get("cassandra_cluster_id").(string)) + clusterId, err := managedcassandras.ParseCassandraClusterID(d.Get("cassandra_cluster_id").(string)) + if err != nil { + return err + } id := managedcassandras.NewDataCenterID(clusterId.SubscriptionId, clusterId.ResourceGroupName, clusterId.CassandraClusterName, d.Get("name").(string)) existing, err := client.CassandraDataCentersGet(ctx, id) @@ -244,23 +246,6 @@ func resourceCassandraDatacenterUpdate(d *pluginsdk.ResourceData, meta interface return fmt.Errorf("updating %q: %+v", id, err) } - // Issue: https://github.com/Azure/azure-rest-api-specs/issues/19078 - // There is a long running issue on updating this resource. - // The API cannot update the property after WaitForCompletionRef is returned. - // It has to wait a while after that. Then the property can be updated successfully. - stateConf := &pluginsdk.StateChangeConf{ - Delay: 1 * time.Minute, - Pending: []string{string(managedcassandras.ManagedCassandraProvisioningStateUpdating)}, - Target: []string{string(managedcassandras.ManagedCassandraProvisioningStateSucceeded)}, - Refresh: cassandraDatacenterStateRefreshFunc(ctx, client, *id), - MinTimeout: 15 * time.Second, - Timeout: d.Timeout(pluginsdk.TimeoutUpdate), - } - - if _, err := stateConf.WaitForStateContext(ctx); err != nil { - return fmt.Errorf("waiting for update of %s: %+v", id, err) - } - return resourceCassandraDatacenterRead(d, meta) } @@ -280,19 +265,3 @@ func resourceCassandraDatacenterDelete(d *pluginsdk.ResourceData, meta interface return nil } - -func cassandraDatacenterStateRefreshFunc(ctx context.Context, client *managedcassandras.ManagedCassandrasClient, id managedcassandras.DataCenterId) pluginsdk.StateRefreshFunc { - return func() (interface{}, string, error) { - res, err := client.CassandraDataCentersGet(ctx, id) - if err != nil { - return nil, "", fmt.Errorf("polling for %s: %+v", id, err) - } - - if model := res.Model; model != nil { - if model.Properties != nil && model.Properties.ProvisioningState != nil { - return res, string(*model.Properties.ProvisioningState), nil - } - } - return nil, "", fmt.Errorf("unable to read provisioning state") - } -} From 1653f054359cadcf02f55ecaec4b2e980125bfeb Mon Sep 17 00:00:00 2001 From: Xu Wu Date: Mon, 4 Sep 2023 13:04:32 +0800 Subject: [PATCH 091/336] fix policyset with no param --- .../policy/policy_set_definition_resource.go | 4 ++- .../policy_set_definition_resource_test.go | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/internal/services/policy/policy_set_definition_resource.go b/internal/services/policy/policy_set_definition_resource.go index a632b9635cd4..748ceba5f702 100644 --- a/internal/services/policy/policy_set_definition_resource.go +++ b/internal/services/policy/policy_set_definition_resource.go @@ -587,8 +587,9 @@ func expandAzureRMPolicySetDefinitionPolicyDefinitions(input []interface{}) (*[] for _, item := range input { v := item.(map[string]interface{}) - parameters := make(map[string]*policy.ParameterValuesValue) + var parameters map[string]*policy.ParameterValuesValue if p, ok := v["parameter_values"].(string); ok && p != "" { + parameters = make(map[string]*policy.ParameterValuesValue) if err := json.Unmarshal([]byte(p), ¶meters); err != nil { return nil, fmt.Errorf("unmarshalling `parameter_values`: %+v", err) } @@ -597,6 +598,7 @@ func expandAzureRMPolicySetDefinitionPolicyDefinitions(input []interface{}) (*[] if len(parameters) > 0 && len(p) > 0 { return nil, fmt.Errorf("cannot set both `parameters` and `parameter_values`") } + parameters = make(map[string]*policy.ParameterValuesValue) for k, value := range p { parameters[k] = &policy.ParameterValuesValue{ Value: value, diff --git a/internal/services/policy/policy_set_definition_resource_test.go b/internal/services/policy/policy_set_definition_resource_test.go index a42dddb995cf..74634ccf5d34 100644 --- a/internal/services/policy/policy_set_definition_resource_test.go +++ b/internal/services/policy/policy_set_definition_resource_test.go @@ -76,6 +76,13 @@ func TestAccAzureRMPolicySetDefinition_customNoParameter(t *testing.T) { ), }, data.ImportStep(), + { + Config: r.customNoParameterUpdate(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } @@ -482,6 +489,24 @@ resource "azurerm_policy_set_definition" "test" { `, template, data.RandomInteger, data.RandomInteger) } +func (r PolicySetDefinitionResource) customNoParameterUpdate(data acceptance.TestData) string { + template := r.templateNoParameter(data) + return fmt.Sprintf(` +%s + +resource "azurerm_policy_set_definition" "test" { + name = "acctestPolSet-%d" + policy_type = "Custom" + display_name = "acctestPolSet-display-%d" + + policy_definition_reference { + policy_definition_id = azurerm_policy_definition.test.id + parameter_values = "{}" + } +} +`, template, data.RandomInteger, data.RandomInteger) +} + func (r PolicySetDefinitionResource) managementGroup(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { From b438b167fea06e08fa7275a9233d6bb5da632ede Mon Sep 17 00:00:00 2001 From: "hashicorp-tsccr[bot]" Date: Mon, 4 Sep 2023 06:05:23 +0000 Subject: [PATCH 092/336] Result of tsccr-helper -log-level=info -pin-all-workflows . --- .github/workflows/golint.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/golint.yaml b/.github/workflows/golint.yaml index 7680755626a5..29cca99d8189 100644 --- a/.github/workflows/golint.yaml +++ b/.github/workflows/golint.yaml @@ -24,7 +24,7 @@ jobs: - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version - - uses: golangci/golangci-lint-action@639cd343e1d3b897ff35927a75193d57cfcba299 # v3.6.0 + - uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0 with: version: 'v1.51.1' args: -v ./internal/... From f3455fa54b97ca1c7b60bc66a4bdb4bf1b73c61b Mon Sep 17 00:00:00 2001 From: Elena Xin Date: Mon, 4 Sep 2023 16:41:49 +0800 Subject: [PATCH 093/336] migrate Pandora sdk for resource azurerm_security_center_assessment_policy --- .../services/securitycenter/client/client.go | 5 +- ...urity_center_assessment_policy_resource.go | 140 ++-- ..._center_assessment_policy_resource_test.go | 14 +- .../2021-06-01/assessmentsmetadata/README.md | 123 ++++ .../2021-06-01/assessmentsmetadata/client.go | 18 + .../assessmentsmetadata/constants.go | 614 ++++++++++++++++++ .../id_assessmentmetadata.go | 101 +++ .../id_providerassessmentmetadata.go | 114 ++++ ...tsmetadatacreateinsubscription_autorest.go | 69 ++ ...tsmetadatadeleteinsubscription_autorest.go | 66 ++ .../method_assessmentsmetadataget_autorest.go | 68 ++ ...mentsmetadatagetinsubscription_autorest.go | 68 ++ ...method_assessmentsmetadatalist_autorest.go | 186 ++++++ ...entsmetadatalistbysubscription_autorest.go | 187 ++++++ ...l_securityassessmentmetadatapartnerdata.go | 10 + ...ityassessmentmetadatapropertiesresponse.go | 23 + ...tmetadatapropertiesresponsepublishdates.go | 9 + ...odel_securityassessmentmetadataresponse.go | 11 + .../assessmentsmetadata/predicates.go | 27 + .../2021-06-01/assessmentsmetadata/version.go | 12 + vendor/modules.txt | 1 + 21 files changed, 1790 insertions(+), 76 deletions(-) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/README.md create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/constants.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/id_assessmentmetadata.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/id_providerassessmentmetadata.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatacreateinsubscription_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatadeleteinsubscription_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadataget_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatagetinsubscription_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalist_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalistbysubscription_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadatapartnerdata.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadatapropertiesresponse.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadatapropertiesresponsepublishdates.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadataresponse.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/predicates.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/version.go diff --git a/internal/services/securitycenter/client/client.go b/internal/services/securitycenter/client/client.go index 4f02c279e4a4..50168d975ccc 100644 --- a/internal/services/securitycenter/client/client.go +++ b/internal/services/securitycenter/client/client.go @@ -5,13 +5,14 @@ package client import ( "github.com/Azure/azure-sdk-for-go/services/preview/security/mgmt/v3.0/security" // nolint: staticcheck + assessmentsmetadata_v2021_06_01 "github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata" pricings_v2023_01_01 "github.com/hashicorp/go-azure-sdk/resource-manager/security/2023-01-01/pricings" "github.com/hashicorp/terraform-provider-azurerm/internal/common" ) type Client struct { AssessmentsClient *security.AssessmentsClient - AssessmentsMetadataClient *security.AssessmentsMetadataClient + AssessmentsMetadataClient *assessmentsmetadata_v2021_06_01.AssessmentsMetadataClient ContactsClient *security.ContactsClient DeviceSecurityGroupsClient *security.DeviceSecurityGroupsClient IotSecuritySolutionClient *security.IotSecuritySolutionClient @@ -30,7 +31,7 @@ func NewClient(o *common.ClientOptions) *Client { AssessmentsClient := security.NewAssessmentsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId, ascLocation) o.ConfigureClient(&AssessmentsClient.Client, o.ResourceManagerAuthorizer) - AssessmentsMetadataClient := security.NewAssessmentsMetadataClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId, ascLocation) + AssessmentsMetadataClient := assessmentsmetadata_v2021_06_01.NewAssessmentsMetadataClientWithBaseURI(o.ResourceManagerEndpoint) o.ConfigureClient(&AssessmentsMetadataClient.Client, o.ResourceManagerAuthorizer) ContactsClient := security.NewContactsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId, ascLocation) diff --git a/internal/services/securitycenter/security_center_assessment_policy_resource.go b/internal/services/securitycenter/security_center_assessment_policy_resource.go index 8a655a2f0772..16f6e6544042 100644 --- a/internal/services/securitycenter/security_center_assessment_policy_resource.go +++ b/internal/services/securitycenter/security_center_assessment_policy_resource.go @@ -10,9 +10,11 @@ import ( "github.com/Azure/azure-sdk-for-go/services/preview/security/mgmt/v3.0/security" // nolint: staticcheck "github.com/google/uuid" + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/securitycenter/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" @@ -34,7 +36,7 @@ func resourceArmSecurityCenterAssessmentPolicy() *pluginsdk.Resource { }, Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { - _, err := parse.AssessmentMetadataID(id) + _, err := assessmentsmetadata.ParseProviderAssessmentMetadataID(id) return err }), @@ -142,57 +144,57 @@ func resourceArmSecurityCenterAssessmentPolicyCreate(d *pluginsdk.ResourceData, name := uuid.New().String() - id := parse.NewAssessmentMetadataID(subscriptionId, name) + id := assessmentsmetadata.NewProviderAssessmentMetadataID(subscriptionId, name) - existing, err := client.GetInSubscription(ctx, name) + existing, err := client.AssessmentsMetadataGetInSubscription(ctx, id) if err != nil { - if !utils.ResponseWasNotFound(existing.Response) { + if !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for presence of existing %s: %+v", id, err) } } - if !utils.ResponseWasNotFound(existing.Response) { + if !response.WasNotFound(existing.HttpResponse) { return tf.ImportAsExistsError("azurerm_security_center_assessment_policy", id.ID()) } - params := security.AssessmentMetadata{ - AssessmentMetadataProperties: &security.AssessmentMetadataProperties{ - AssessmentType: security.CustomerManaged, - Description: utils.String(d.Get("description").(string)), - DisplayName: utils.String(d.Get("display_name").(string)), - Severity: security.Severity(d.Get("severity").(string)), + params := assessmentsmetadata.SecurityAssessmentMetadataResponse{ + Properties: &assessmentsmetadata.SecurityAssessmentMetadataPropertiesResponse{ + AssessmentType: assessmentsmetadata.AssessmentTypeCustomerManaged, + Description: pointer.To(d.Get("description").(string)), + DisplayName: d.Get("display_name").(string), + Severity: assessmentsmetadata.Severity(d.Get("severity").(string)), }, } if v, ok := d.GetOk("categories"); ok { - categories := make([]security.Categories, 0) + categories := make([]assessmentsmetadata.Categories, 0) for _, item := range v.(*pluginsdk.Set).List() { - categories = append(categories, (security.Categories)(item.(string))) + categories = append(categories, (assessmentsmetadata.Categories)(item.(string))) } - params.AssessmentMetadataProperties.Categories = &categories + params.Properties.Categories = &categories } if v, ok := d.GetOk("threats"); ok { - threats := make([]security.Threats, 0) + threats := make([]assessmentsmetadata.Threats, 0) for _, item := range v.(*pluginsdk.Set).List() { - threats = append(threats, (security.Threats)(item.(string))) + threats = append(threats, (assessmentsmetadata.Threats)(item.(string))) } - params.AssessmentMetadataProperties.Threats = &threats + params.Properties.Threats = &threats } if v, ok := d.GetOk("implementation_effort"); ok { - params.AssessmentMetadataProperties.ImplementationEffort = security.ImplementationEffort(v.(string)) + params.Properties.ImplementationEffort = pointer.To(assessmentsmetadata.ImplementationEffort(v.(string))) } if v, ok := d.GetOk("remediation_description"); ok { - params.AssessmentMetadataProperties.RemediationDescription = utils.String(v.(string)) + params.Properties.RemediationDescription = pointer.To(v.(string)) } if v, ok := d.GetOk("user_impact"); ok { - params.AssessmentMetadataProperties.UserImpact = security.UserImpact(v.(string)) + params.Properties.UserImpact = pointer.To(assessmentsmetadata.UserImpact(v.(string))) } - if _, err := client.CreateInSubscription(ctx, name, params); err != nil { + if _, err := client.AssessmentsMetadataCreateInSubscription(ctx, id, params); err != nil { return fmt.Errorf("creating %s: %+v", id, err) } @@ -206,46 +208,48 @@ func resourceArmSecurityCenterAssessmentPolicyRead(d *pluginsdk.ResourceData, me ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.AssessmentMetadataID(d.Id()) + id, err := assessmentsmetadata.ParseProviderAssessmentMetadataID(d.Id()) if err != nil { return err } - resp, err := client.GetInSubscription(ctx, id.AssessmentMetadataName) + resp, err := client.AssessmentsMetadataGetInSubscription(ctx, *id) if err != nil { - if utils.ResponseWasNotFound(resp.Response) { - log.Printf("[INFO] %s does not exist - removing from state", id) + if response.WasNotFound(resp.HttpResponse) { + log.Printf("[INFO] %s does not exist - removing from state", *id) d.SetId("") return nil } - return fmt.Errorf("retrieving %s: %+v", id, err) + return fmt.Errorf("retrieving %s: %+v", *id, err) } d.Set("name", id.AssessmentMetadataName) - if props := resp.AssessmentMetadataProperties; props != nil { - d.Set("description", props.Description) - d.Set("display_name", props.DisplayName) - d.Set("severity", string(props.Severity)) - d.Set("implementation_effort", string(props.ImplementationEffort)) - d.Set("remediation_description", props.RemediationDescription) - d.Set("user_impact", string(props.UserImpact)) - - categories := make([]string, 0) - if props.Categories != nil { - for _, item := range *props.Categories { - categories = append(categories, string(item)) + if model := resp.Model; model != nil { + if props := model.Properties; props != nil { + d.Set("description", pointer.From(props.Description)) + d.Set("display_name", props.DisplayName) + d.Set("severity", string(props.Severity)) + d.Set("implementation_effort", string(pointer.From(props.ImplementationEffort))) + d.Set("remediation_description", pointer.From(props.RemediationDescription)) + d.Set("user_impact", string(pointer.From(props.UserImpact))) + + categories := make([]string, 0) + if props.Categories != nil { + for _, item := range *props.Categories { + categories = append(categories, string(item)) + } } - } - d.Set("categories", utils.FlattenStringSlice(&categories)) + d.Set("categories", utils.FlattenStringSlice(&categories)) - threats := make([]string, 0) - if props.Threats != nil { - for _, item := range *props.Threats { - threats = append(threats, string(item)) + threats := make([]string, 0) + if props.Threats != nil { + for _, item := range *props.Threats { + threats = append(threats, string(item)) + } } + d.Set("threats", utils.FlattenStringSlice(&threats)) } - d.Set("threats", utils.FlattenStringSlice(&threats)) } return nil @@ -256,61 +260,61 @@ func resourceArmSecurityCenterAssessmentPolicyUpdate(d *pluginsdk.ResourceData, ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.AssessmentMetadataID(d.Id()) + id, err := assessmentsmetadata.ParseProviderAssessmentMetadataID(d.Id()) if err != nil { return err } - existing, err := client.GetInSubscription(ctx, id.AssessmentMetadataName) + existing, err := client.AssessmentsMetadataGetInSubscription(ctx, *id) if err != nil { - return fmt.Errorf("retrieving %s: %+v", id, err) + return fmt.Errorf("retrieving %s: %+v", *id, err) } - if existing.AssessmentMetadataProperties == nil { - return fmt.Errorf("retrieving %s: `assessmentMetadataProperties` was nil", id) + if existing.Model == nil || &existing.Model.Properties == nil { + return fmt.Errorf("retrieving %s: `properties` was nil", *id) } if d.HasChange("description") { - existing.AssessmentMetadataProperties.Description = utils.String(d.Get("description").(string)) + existing.Model.Properties.Description = pointer.To(d.Get("description").(string)) } if d.HasChange("display_name") { - existing.AssessmentMetadataProperties.DisplayName = utils.String(d.Get("display_name").(string)) + existing.Model.Properties.DisplayName = d.Get("display_name").(string) } if d.HasChange("severity") { - existing.AssessmentMetadataProperties.Severity = security.Severity(d.Get("severity").(string)) + existing.Model.Properties.Severity = assessmentsmetadata.Severity(d.Get("severity").(string)) } if d.HasChange("categories") { - categories := make([]security.Categories, 0) + categories := make([]assessmentsmetadata.Categories, 0) for _, item := range d.Get("categories").(*pluginsdk.Set).List() { - categories = append(categories, (security.Categories)(item.(string))) + categories = append(categories, (assessmentsmetadata.Categories)(item.(string))) } - existing.AssessmentMetadataProperties.Categories = &categories + existing.Model.Properties.Categories = &categories } if d.HasChange("threats") { - threats := make([]security.Threats, 0) + threats := make([]assessmentsmetadata.Threats, 0) for _, item := range d.Get("threats").(*pluginsdk.Set).List() { - threats = append(threats, (security.Threats)(item.(string))) + threats = append(threats, (assessmentsmetadata.Threats)(item.(string))) } - existing.AssessmentMetadataProperties.Threats = &threats + existing.Model.Properties.Threats = &threats } if d.HasChange("implementation_effort") { - existing.AssessmentMetadataProperties.ImplementationEffort = security.ImplementationEffort(d.Get("implementation_effort").(string)) + existing.Model.Properties.ImplementationEffort = pointer.To(assessmentsmetadata.ImplementationEffort(d.Get("implementation_effort").(string))) } if d.HasChange("remediation_description") { - existing.AssessmentMetadataProperties.RemediationDescription = utils.String(d.Get("remediation_description").(string)) + existing.Model.Properties.RemediationDescription = utils.String(d.Get("remediation_description").(string)) } if d.HasChange("user_impact") { - existing.AssessmentMetadataProperties.UserImpact = security.UserImpact(d.Get("user_impact").(string)) + existing.Model.Properties.UserImpact = pointer.To(assessmentsmetadata.UserImpact(d.Get("user_impact").(string))) } - if _, err := client.CreateInSubscription(ctx, id.AssessmentMetadataName, existing); err != nil { - return fmt.Errorf("updating %s: %+v", id, err) + if _, err := client.AssessmentsMetadataCreateInSubscription(ctx, *id, *existing.Model); err != nil { + return fmt.Errorf("updating %s: %+v", *id, err) } return resourceArmSecurityCenterAssessmentPolicyRead(d, meta) @@ -321,13 +325,13 @@ func resourceArmSecurityCenterAssessmentPolicyDelete(d *pluginsdk.ResourceData, ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.AssessmentMetadataID(d.Id()) + id, err := assessmentsmetadata.ParseProviderAssessmentMetadataID(d.Id()) if err != nil { return err } - if _, err := client.DeleteInSubscription(ctx, id.AssessmentMetadataName); err != nil { - return fmt.Errorf("deleting %s: %+v", id, err) + if _, err := client.AssessmentsMetadataDeleteInSubscription(ctx, *id); err != nil { + return fmt.Errorf("deleting %s: %+v", *id, err) } return nil diff --git a/internal/services/securitycenter/security_center_assessment_policy_resource_test.go b/internal/services/securitycenter/security_center_assessment_policy_resource_test.go index b82dcf21073b..00f5e4bb0e88 100644 --- a/internal/services/securitycenter/security_center_assessment_policy_resource_test.go +++ b/internal/services/securitycenter/security_center_assessment_policy_resource_test.go @@ -8,10 +8,12 @@ import ( "fmt" "testing" + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/securitycenter/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" ) @@ -72,21 +74,21 @@ func testAccSecurityCenterAssessmentPolicy_update(t *testing.T) { func (r SecurityCenterAssessmentPolicyResource) Exists(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { assessmentMetadataClient := client.SecurityCenter.AssessmentsMetadataClient - id, err := parse.AssessmentMetadataID(state.ID) + id, err := assessmentsmetadata.ParseProviderAssessmentMetadataID(state.ID) if err != nil { return nil, err } - resp, err := assessmentMetadataClient.GetInSubscription(ctx, id.AssessmentMetadataName) + resp, err := assessmentMetadataClient.AssessmentsMetadataGetInSubscription(ctx, *id) if err != nil { - if utils.ResponseWasNotFound(resp.Response) { + if response.WasNotFound(resp.HttpResponse) { return utils.Bool(false), nil } - return nil, fmt.Errorf("retrieving Azure Security Center Assessment Metadata %q: %+v", state.ID, err) + return nil, fmt.Errorf("retrieving %q: %+v", *id, err) } - return utils.Bool(resp.AssessmentMetadataProperties != nil), nil + return pointer.To(resp.Model != nil && resp.Model.Properties != nil), nil } func (r SecurityCenterAssessmentPolicyResource) basic() string { diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/README.md new file mode 100644 index 000000000000..2d2eeaf04d41 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/README.md @@ -0,0 +1,123 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata` Documentation + +The `assessmentsmetadata` SDK allows for interaction with the Azure Resource Manager Service `security` (API Version `2021-06-01`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata" +``` + + +### Client Initialization + +```go +client := assessmentsmetadata.NewAssessmentsMetadataClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `AssessmentsMetadataClient.AssessmentsMetadataCreateInSubscription` + +```go +ctx := context.TODO() +id := assessmentsmetadata.NewProviderAssessmentMetadataID("12345678-1234-9876-4563-123456789012", "assessmentMetadataValue") + +payload := assessmentsmetadata.SecurityAssessmentMetadataResponse{ + // ... +} + + +read, err := client.AssessmentsMetadataCreateInSubscription(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AssessmentsMetadataClient.AssessmentsMetadataDeleteInSubscription` + +```go +ctx := context.TODO() +id := assessmentsmetadata.NewProviderAssessmentMetadataID("12345678-1234-9876-4563-123456789012", "assessmentMetadataValue") + +read, err := client.AssessmentsMetadataDeleteInSubscription(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AssessmentsMetadataClient.AssessmentsMetadataGet` + +```go +ctx := context.TODO() +id := assessmentsmetadata.NewAssessmentMetadataID("assessmentMetadataValue") + +read, err := client.AssessmentsMetadataGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AssessmentsMetadataClient.AssessmentsMetadataGetInSubscription` + +```go +ctx := context.TODO() +id := assessmentsmetadata.NewProviderAssessmentMetadataID("12345678-1234-9876-4563-123456789012", "assessmentMetadataValue") + +read, err := client.AssessmentsMetadataGetInSubscription(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AssessmentsMetadataClient.AssessmentsMetadataList` + +```go +ctx := context.TODO() + + +// alternatively `client.AssessmentsMetadataList(ctx)` can be used to do batched pagination +items, err := client.AssessmentsMetadataListComplete(ctx) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AssessmentsMetadataClient.AssessmentsMetadataListBySubscription` + +```go +ctx := context.TODO() +id := assessmentsmetadata.NewSubscriptionID("12345678-1234-9876-4563-123456789012") + +// alternatively `client.AssessmentsMetadataListBySubscription(ctx, id)` can be used to do batched pagination +items, err := client.AssessmentsMetadataListBySubscriptionComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/client.go new file mode 100644 index 000000000000..c0aadd1558d7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/client.go @@ -0,0 +1,18 @@ +package assessmentsmetadata + +import "github.com/Azure/go-autorest/autorest" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssessmentsMetadataClient struct { + Client autorest.Client + baseUri string +} + +func NewAssessmentsMetadataClientWithBaseURI(endpoint string) AssessmentsMetadataClient { + return AssessmentsMetadataClient{ + Client: autorest.NewClientWithUserAgent(userAgent()), + baseUri: endpoint, + } +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/constants.go new file mode 100644 index 000000000000..0d20712b3a6b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/constants.go @@ -0,0 +1,614 @@ +package assessmentsmetadata + +import "strings" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssessmentType string + +const ( + AssessmentTypeBuiltIn AssessmentType = "BuiltIn" + AssessmentTypeCustomPolicy AssessmentType = "CustomPolicy" + AssessmentTypeCustomerManaged AssessmentType = "CustomerManaged" + AssessmentTypeVerifiedPartner AssessmentType = "VerifiedPartner" +) + +func PossibleValuesForAssessmentType() []string { + return []string{ + string(AssessmentTypeBuiltIn), + string(AssessmentTypeCustomPolicy), + string(AssessmentTypeCustomerManaged), + string(AssessmentTypeVerifiedPartner), + } +} + +func parseAssessmentType(input string) (*AssessmentType, error) { + vals := map[string]AssessmentType{ + "builtin": AssessmentTypeBuiltIn, + "custompolicy": AssessmentTypeCustomPolicy, + "customermanaged": AssessmentTypeCustomerManaged, + "verifiedpartner": AssessmentTypeVerifiedPartner, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := AssessmentType(input) + return &out, nil +} + +type Categories string + +const ( + CategoriesCompute Categories = "Compute" + CategoriesData Categories = "Data" + CategoriesIdentityAndAccess Categories = "IdentityAndAccess" + CategoriesIoT Categories = "IoT" + CategoriesNetworking Categories = "Networking" +) + +func PossibleValuesForCategories() []string { + return []string{ + string(CategoriesCompute), + string(CategoriesData), + string(CategoriesIdentityAndAccess), + string(CategoriesIoT), + string(CategoriesNetworking), + } +} + +func parseCategories(input string) (*Categories, error) { + vals := map[string]Categories{ + "compute": CategoriesCompute, + "data": CategoriesData, + "identityandaccess": CategoriesIdentityAndAccess, + "iot": CategoriesIoT, + "networking": CategoriesNetworking, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Categories(input) + return &out, nil +} + +type ImplementationEffort string + +const ( + ImplementationEffortHigh ImplementationEffort = "High" + ImplementationEffortLow ImplementationEffort = "Low" + ImplementationEffortModerate ImplementationEffort = "Moderate" +) + +func PossibleValuesForImplementationEffort() []string { + return []string{ + string(ImplementationEffortHigh), + string(ImplementationEffortLow), + string(ImplementationEffortModerate), + } +} + +func parseImplementationEffort(input string) (*ImplementationEffort, error) { + vals := map[string]ImplementationEffort{ + "high": ImplementationEffortHigh, + "low": ImplementationEffortLow, + "moderate": ImplementationEffortModerate, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ImplementationEffort(input) + return &out, nil +} + +type Severity string + +const ( + SeverityHigh Severity = "High" + SeverityLow Severity = "Low" + SeverityMedium Severity = "Medium" +) + +func PossibleValuesForSeverity() []string { + return []string{ + string(SeverityHigh), + string(SeverityLow), + string(SeverityMedium), + } +} + +func parseSeverity(input string) (*Severity, error) { + vals := map[string]Severity{ + "high": SeverityHigh, + "low": SeverityLow, + "medium": SeverityMedium, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Severity(input) + return &out, nil +} + +type Tactics string + +const ( + TacticsCollection Tactics = "Collection" + TacticsCommandAndControl Tactics = "Command and Control" + TacticsCredentialAccess Tactics = "Credential Access" + TacticsDefenseEvasion Tactics = "Defense Evasion" + TacticsDiscovery Tactics = "Discovery" + TacticsExecution Tactics = "Execution" + TacticsExfiltration Tactics = "Exfiltration" + TacticsImpact Tactics = "Impact" + TacticsInitialAccess Tactics = "Initial Access" + TacticsLateralMovement Tactics = "Lateral Movement" + TacticsPersistence Tactics = "Persistence" + TacticsPrivilegeEscalation Tactics = "Privilege Escalation" + TacticsReconnaissance Tactics = "Reconnaissance" + TacticsResourceDevelopment Tactics = "Resource Development" +) + +func PossibleValuesForTactics() []string { + return []string{ + string(TacticsCollection), + string(TacticsCommandAndControl), + string(TacticsCredentialAccess), + string(TacticsDefenseEvasion), + string(TacticsDiscovery), + string(TacticsExecution), + string(TacticsExfiltration), + string(TacticsImpact), + string(TacticsInitialAccess), + string(TacticsLateralMovement), + string(TacticsPersistence), + string(TacticsPrivilegeEscalation), + string(TacticsReconnaissance), + string(TacticsResourceDevelopment), + } +} + +func parseTactics(input string) (*Tactics, error) { + vals := map[string]Tactics{ + "collection": TacticsCollection, + "command and control": TacticsCommandAndControl, + "credential access": TacticsCredentialAccess, + "defense evasion": TacticsDefenseEvasion, + "discovery": TacticsDiscovery, + "execution": TacticsExecution, + "exfiltration": TacticsExfiltration, + "impact": TacticsImpact, + "initial access": TacticsInitialAccess, + "lateral movement": TacticsLateralMovement, + "persistence": TacticsPersistence, + "privilege escalation": TacticsPrivilegeEscalation, + "reconnaissance": TacticsReconnaissance, + "resource development": TacticsResourceDevelopment, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Tactics(input) + return &out, nil +} + +type Techniques string + +const ( + TechniquesAbuseElevationControlMechanism Techniques = "Abuse Elevation Control Mechanism" + TechniquesAccessTokenManipulation Techniques = "Access Token Manipulation" + TechniquesAccountDiscovery Techniques = "Account Discovery" + TechniquesAccountManipulation Techniques = "Account Manipulation" + TechniquesActiveScanning Techniques = "Active Scanning" + TechniquesApplicationLayerProtocol Techniques = "Application Layer Protocol" + TechniquesAudioCapture Techniques = "Audio Capture" + TechniquesBootOrLogonAutostartExecution Techniques = "Boot or Logon Autostart Execution" + TechniquesBootOrLogonInitializationScripts Techniques = "Boot or Logon Initialization Scripts" + TechniquesBruteForce Techniques = "Brute Force" + TechniquesCloudInfrastructureDiscovery Techniques = "Cloud Infrastructure Discovery" + TechniquesCloudServiceDashboard Techniques = "Cloud Service Dashboard" + TechniquesCloudServiceDiscovery Techniques = "Cloud Service Discovery" + TechniquesCommandAndScriptingInterpreter Techniques = "Command and Scripting Interpreter" + TechniquesCompromiseClientSoftwareBinary Techniques = "Compromise Client Software Binary" + TechniquesCompromiseInfrastructure Techniques = "Compromise Infrastructure" + TechniquesContainerAndResourceDiscovery Techniques = "Container and Resource Discovery" + TechniquesCreateAccount Techniques = "Create Account" + TechniquesCreateOrModifySystemProcess Techniques = "Create or Modify System Process" + TechniquesCredentialsFromPasswordStores Techniques = "Credentials from Password Stores" + TechniquesDataDestruction Techniques = "Data Destruction" + TechniquesDataEncryptedForImpact Techniques = "Data Encrypted for Impact" + TechniquesDataFromCloudStorageObject Techniques = "Data from Cloud Storage Object" + TechniquesDataFromConfigurationRepository Techniques = "Data from Configuration Repository" + TechniquesDataFromInformationRepositories Techniques = "Data from Information Repositories" + TechniquesDataFromLocalSystem Techniques = "Data from Local System" + TechniquesDataManipulation Techniques = "Data Manipulation" + TechniquesDataStaged Techniques = "Data Staged" + TechniquesDefacement Techniques = "Defacement" + TechniquesDeobfuscateDecodeFilesOrInformation Techniques = "Deobfuscate/Decode Files or Information" + TechniquesDiskWipe Techniques = "Disk Wipe" + TechniquesDomainTrustDiscovery Techniques = "Domain Trust Discovery" + TechniquesDriveNegativebyCompromise Techniques = "Drive-by Compromise" + TechniquesDynamicResolution Techniques = "Dynamic Resolution" + TechniquesEndpointDenialOfService Techniques = "Endpoint Denial of Service" + TechniquesEventTriggeredExecution Techniques = "Event Triggered Execution" + TechniquesExfiltrationOverAlternativeProtocol Techniques = "Exfiltration Over Alternative Protocol" + TechniquesExploitPublicNegativeFacingApplication Techniques = "Exploit Public-Facing Application" + TechniquesExploitationForClientExecution Techniques = "Exploitation for Client Execution" + TechniquesExploitationForCredentialAccess Techniques = "Exploitation for Credential Access" + TechniquesExploitationForDefenseEvasion Techniques = "Exploitation for Defense Evasion" + TechniquesExploitationForPrivilegeEscalation Techniques = "Exploitation for Privilege Escalation" + TechniquesExploitationOfRemoteServices Techniques = "Exploitation of Remote Services" + TechniquesExternalRemoteServices Techniques = "External Remote Services" + TechniquesFallbackChannels Techniques = "Fallback Channels" + TechniquesFileAndDirectoryDiscovery Techniques = "File and Directory Discovery" + TechniquesFileAndDirectoryPermissionsModification Techniques = "File and Directory Permissions Modification" + TechniquesGatherVictimNetworkInformation Techniques = "Gather Victim Network Information" + TechniquesHideArtifacts Techniques = "Hide Artifacts" + TechniquesHijackExecutionFlow Techniques = "Hijack Execution Flow" + TechniquesImpairDefenses Techniques = "Impair Defenses" + TechniquesImplantContainerImage Techniques = "Implant Container Image" + TechniquesIndicatorRemovalOnHost Techniques = "Indicator Removal on Host" + TechniquesIndirectCommandExecution Techniques = "Indirect Command Execution" + TechniquesIngressToolTransfer Techniques = "Ingress Tool Transfer" + TechniquesInputCapture Techniques = "Input Capture" + TechniquesInterNegativeProcessCommunication Techniques = "Inter-Process Communication" + TechniquesLateralToolTransfer Techniques = "Lateral Tool Transfer" + TechniquesManNegativeinNegativetheNegativeMiddle Techniques = "Man-in-the-Middle" + TechniquesMasquerading Techniques = "Masquerading" + TechniquesModifyAuthenticationProcess Techniques = "Modify Authentication Process" + TechniquesModifyRegistry Techniques = "Modify Registry" + TechniquesNetworkDenialOfService Techniques = "Network Denial of Service" + TechniquesNetworkServiceScanning Techniques = "Network Service Scanning" + TechniquesNetworkSniffing Techniques = "Network Sniffing" + TechniquesNonNegativeApplicationLayerProtocol Techniques = "Non-Application Layer Protocol" + TechniquesNonNegativeStandardPort Techniques = "Non-Standard Port" + TechniquesOSCredentialDumping Techniques = "OS Credential Dumping" + TechniquesObfuscatedFilesOrInformation Techniques = "Obfuscated Files or Information" + TechniquesObtainCapabilities Techniques = "Obtain Capabilities" + TechniquesOfficeApplicationStartup Techniques = "Office Application Startup" + TechniquesPermissionGroupsDiscovery Techniques = "Permission Groups Discovery" + TechniquesPhishing Techniques = "Phishing" + TechniquesPreNegativeOSBoot Techniques = "Pre-OS Boot" + TechniquesProcessDiscovery Techniques = "Process Discovery" + TechniquesProcessInjection Techniques = "Process Injection" + TechniquesProtocolTunneling Techniques = "Protocol Tunneling" + TechniquesProxy Techniques = "Proxy" + TechniquesQueryRegistry Techniques = "Query Registry" + TechniquesRemoteAccessSoftware Techniques = "Remote Access Software" + TechniquesRemoteServiceSessionHijacking Techniques = "Remote Service Session Hijacking" + TechniquesRemoteServices Techniques = "Remote Services" + TechniquesRemoteSystemDiscovery Techniques = "Remote System Discovery" + TechniquesResourceHijacking Techniques = "Resource Hijacking" + TechniquesSQLStoredProcedures Techniques = "SQL Stored Procedures" + TechniquesScheduledTaskJob Techniques = "Scheduled Task/Job" + TechniquesScreenCapture Techniques = "Screen Capture" + TechniquesSearchVictimNegativeOwnedWebsites Techniques = "Search Victim-Owned Websites" + TechniquesServerSoftwareComponent Techniques = "Server Software Component" + TechniquesServiceStop Techniques = "Service Stop" + TechniquesSignedBinaryProxyExecution Techniques = "Signed Binary Proxy Execution" + TechniquesSoftwareDeploymentTools Techniques = "Software Deployment Tools" + TechniquesStealOrForgeKerberosTickets Techniques = "Steal or Forge Kerberos Tickets" + TechniquesSubvertTrustControls Techniques = "Subvert Trust Controls" + TechniquesSupplyChainCompromise Techniques = "Supply Chain Compromise" + TechniquesSystemInformationDiscovery Techniques = "System Information Discovery" + TechniquesTaintSharedContent Techniques = "Taint Shared Content" + TechniquesTrafficSignaling Techniques = "Traffic Signaling" + TechniquesTransferDataToCloudAccount Techniques = "Transfer Data to Cloud Account" + TechniquesTrustedRelationship Techniques = "Trusted Relationship" + TechniquesUnsecuredCredentials Techniques = "Unsecured Credentials" + TechniquesUserExecution Techniques = "User Execution" + TechniquesValidAccounts Techniques = "Valid Accounts" + TechniquesWindowsManagementInstrumentation Techniques = "Windows Management Instrumentation" +) + +func PossibleValuesForTechniques() []string { + return []string{ + string(TechniquesAbuseElevationControlMechanism), + string(TechniquesAccessTokenManipulation), + string(TechniquesAccountDiscovery), + string(TechniquesAccountManipulation), + string(TechniquesActiveScanning), + string(TechniquesApplicationLayerProtocol), + string(TechniquesAudioCapture), + string(TechniquesBootOrLogonAutostartExecution), + string(TechniquesBootOrLogonInitializationScripts), + string(TechniquesBruteForce), + string(TechniquesCloudInfrastructureDiscovery), + string(TechniquesCloudServiceDashboard), + string(TechniquesCloudServiceDiscovery), + string(TechniquesCommandAndScriptingInterpreter), + string(TechniquesCompromiseClientSoftwareBinary), + string(TechniquesCompromiseInfrastructure), + string(TechniquesContainerAndResourceDiscovery), + string(TechniquesCreateAccount), + string(TechniquesCreateOrModifySystemProcess), + string(TechniquesCredentialsFromPasswordStores), + string(TechniquesDataDestruction), + string(TechniquesDataEncryptedForImpact), + string(TechniquesDataFromCloudStorageObject), + string(TechniquesDataFromConfigurationRepository), + string(TechniquesDataFromInformationRepositories), + string(TechniquesDataFromLocalSystem), + string(TechniquesDataManipulation), + string(TechniquesDataStaged), + string(TechniquesDefacement), + string(TechniquesDeobfuscateDecodeFilesOrInformation), + string(TechniquesDiskWipe), + string(TechniquesDomainTrustDiscovery), + string(TechniquesDriveNegativebyCompromise), + string(TechniquesDynamicResolution), + string(TechniquesEndpointDenialOfService), + string(TechniquesEventTriggeredExecution), + string(TechniquesExfiltrationOverAlternativeProtocol), + string(TechniquesExploitPublicNegativeFacingApplication), + string(TechniquesExploitationForClientExecution), + string(TechniquesExploitationForCredentialAccess), + string(TechniquesExploitationForDefenseEvasion), + string(TechniquesExploitationForPrivilegeEscalation), + string(TechniquesExploitationOfRemoteServices), + string(TechniquesExternalRemoteServices), + string(TechniquesFallbackChannels), + string(TechniquesFileAndDirectoryDiscovery), + string(TechniquesFileAndDirectoryPermissionsModification), + string(TechniquesGatherVictimNetworkInformation), + string(TechniquesHideArtifacts), + string(TechniquesHijackExecutionFlow), + string(TechniquesImpairDefenses), + string(TechniquesImplantContainerImage), + string(TechniquesIndicatorRemovalOnHost), + string(TechniquesIndirectCommandExecution), + string(TechniquesIngressToolTransfer), + string(TechniquesInputCapture), + string(TechniquesInterNegativeProcessCommunication), + string(TechniquesLateralToolTransfer), + string(TechniquesManNegativeinNegativetheNegativeMiddle), + string(TechniquesMasquerading), + string(TechniquesModifyAuthenticationProcess), + string(TechniquesModifyRegistry), + string(TechniquesNetworkDenialOfService), + string(TechniquesNetworkServiceScanning), + string(TechniquesNetworkSniffing), + string(TechniquesNonNegativeApplicationLayerProtocol), + string(TechniquesNonNegativeStandardPort), + string(TechniquesOSCredentialDumping), + string(TechniquesObfuscatedFilesOrInformation), + string(TechniquesObtainCapabilities), + string(TechniquesOfficeApplicationStartup), + string(TechniquesPermissionGroupsDiscovery), + string(TechniquesPhishing), + string(TechniquesPreNegativeOSBoot), + string(TechniquesProcessDiscovery), + string(TechniquesProcessInjection), + string(TechniquesProtocolTunneling), + string(TechniquesProxy), + string(TechniquesQueryRegistry), + string(TechniquesRemoteAccessSoftware), + string(TechniquesRemoteServiceSessionHijacking), + string(TechniquesRemoteServices), + string(TechniquesRemoteSystemDiscovery), + string(TechniquesResourceHijacking), + string(TechniquesSQLStoredProcedures), + string(TechniquesScheduledTaskJob), + string(TechniquesScreenCapture), + string(TechniquesSearchVictimNegativeOwnedWebsites), + string(TechniquesServerSoftwareComponent), + string(TechniquesServiceStop), + string(TechniquesSignedBinaryProxyExecution), + string(TechniquesSoftwareDeploymentTools), + string(TechniquesStealOrForgeKerberosTickets), + string(TechniquesSubvertTrustControls), + string(TechniquesSupplyChainCompromise), + string(TechniquesSystemInformationDiscovery), + string(TechniquesTaintSharedContent), + string(TechniquesTrafficSignaling), + string(TechniquesTransferDataToCloudAccount), + string(TechniquesTrustedRelationship), + string(TechniquesUnsecuredCredentials), + string(TechniquesUserExecution), + string(TechniquesValidAccounts), + string(TechniquesWindowsManagementInstrumentation), + } +} + +func parseTechniques(input string) (*Techniques, error) { + vals := map[string]Techniques{ + "abuse elevation control mechanism": TechniquesAbuseElevationControlMechanism, + "access token manipulation": TechniquesAccessTokenManipulation, + "account discovery": TechniquesAccountDiscovery, + "account manipulation": TechniquesAccountManipulation, + "active scanning": TechniquesActiveScanning, + "application layer protocol": TechniquesApplicationLayerProtocol, + "audio capture": TechniquesAudioCapture, + "boot or logon autostart execution": TechniquesBootOrLogonAutostartExecution, + "boot or logon initialization scripts": TechniquesBootOrLogonInitializationScripts, + "brute force": TechniquesBruteForce, + "cloud infrastructure discovery": TechniquesCloudInfrastructureDiscovery, + "cloud service dashboard": TechniquesCloudServiceDashboard, + "cloud service discovery": TechniquesCloudServiceDiscovery, + "command and scripting interpreter": TechniquesCommandAndScriptingInterpreter, + "compromise client software binary": TechniquesCompromiseClientSoftwareBinary, + "compromise infrastructure": TechniquesCompromiseInfrastructure, + "container and resource discovery": TechniquesContainerAndResourceDiscovery, + "create account": TechniquesCreateAccount, + "create or modify system process": TechniquesCreateOrModifySystemProcess, + "credentials from password stores": TechniquesCredentialsFromPasswordStores, + "data destruction": TechniquesDataDestruction, + "data encrypted for impact": TechniquesDataEncryptedForImpact, + "data from cloud storage object": TechniquesDataFromCloudStorageObject, + "data from configuration repository": TechniquesDataFromConfigurationRepository, + "data from information repositories": TechniquesDataFromInformationRepositories, + "data from local system": TechniquesDataFromLocalSystem, + "data manipulation": TechniquesDataManipulation, + "data staged": TechniquesDataStaged, + "defacement": TechniquesDefacement, + "deobfuscate/decode files or information": TechniquesDeobfuscateDecodeFilesOrInformation, + "disk wipe": TechniquesDiskWipe, + "domain trust discovery": TechniquesDomainTrustDiscovery, + "drive-by compromise": TechniquesDriveNegativebyCompromise, + "dynamic resolution": TechniquesDynamicResolution, + "endpoint denial of service": TechniquesEndpointDenialOfService, + "event triggered execution": TechniquesEventTriggeredExecution, + "exfiltration over alternative protocol": TechniquesExfiltrationOverAlternativeProtocol, + "exploit public-facing application": TechniquesExploitPublicNegativeFacingApplication, + "exploitation for client execution": TechniquesExploitationForClientExecution, + "exploitation for credential access": TechniquesExploitationForCredentialAccess, + "exploitation for defense evasion": TechniquesExploitationForDefenseEvasion, + "exploitation for privilege escalation": TechniquesExploitationForPrivilegeEscalation, + "exploitation of remote services": TechniquesExploitationOfRemoteServices, + "external remote services": TechniquesExternalRemoteServices, + "fallback channels": TechniquesFallbackChannels, + "file and directory discovery": TechniquesFileAndDirectoryDiscovery, + "file and directory permissions modification": TechniquesFileAndDirectoryPermissionsModification, + "gather victim network information": TechniquesGatherVictimNetworkInformation, + "hide artifacts": TechniquesHideArtifacts, + "hijack execution flow": TechniquesHijackExecutionFlow, + "impair defenses": TechniquesImpairDefenses, + "implant container image": TechniquesImplantContainerImage, + "indicator removal on host": TechniquesIndicatorRemovalOnHost, + "indirect command execution": TechniquesIndirectCommandExecution, + "ingress tool transfer": TechniquesIngressToolTransfer, + "input capture": TechniquesInputCapture, + "inter-process communication": TechniquesInterNegativeProcessCommunication, + "lateral tool transfer": TechniquesLateralToolTransfer, + "man-in-the-middle": TechniquesManNegativeinNegativetheNegativeMiddle, + "masquerading": TechniquesMasquerading, + "modify authentication process": TechniquesModifyAuthenticationProcess, + "modify registry": TechniquesModifyRegistry, + "network denial of service": TechniquesNetworkDenialOfService, + "network service scanning": TechniquesNetworkServiceScanning, + "network sniffing": TechniquesNetworkSniffing, + "non-application layer protocol": TechniquesNonNegativeApplicationLayerProtocol, + "non-standard port": TechniquesNonNegativeStandardPort, + "os credential dumping": TechniquesOSCredentialDumping, + "obfuscated files or information": TechniquesObfuscatedFilesOrInformation, + "obtain capabilities": TechniquesObtainCapabilities, + "office application startup": TechniquesOfficeApplicationStartup, + "permission groups discovery": TechniquesPermissionGroupsDiscovery, + "phishing": TechniquesPhishing, + "pre-os boot": TechniquesPreNegativeOSBoot, + "process discovery": TechniquesProcessDiscovery, + "process injection": TechniquesProcessInjection, + "protocol tunneling": TechniquesProtocolTunneling, + "proxy": TechniquesProxy, + "query registry": TechniquesQueryRegistry, + "remote access software": TechniquesRemoteAccessSoftware, + "remote service session hijacking": TechniquesRemoteServiceSessionHijacking, + "remote services": TechniquesRemoteServices, + "remote system discovery": TechniquesRemoteSystemDiscovery, + "resource hijacking": TechniquesResourceHijacking, + "sql stored procedures": TechniquesSQLStoredProcedures, + "scheduled task/job": TechniquesScheduledTaskJob, + "screen capture": TechniquesScreenCapture, + "search victim-owned websites": TechniquesSearchVictimNegativeOwnedWebsites, + "server software component": TechniquesServerSoftwareComponent, + "service stop": TechniquesServiceStop, + "signed binary proxy execution": TechniquesSignedBinaryProxyExecution, + "software deployment tools": TechniquesSoftwareDeploymentTools, + "steal or forge kerberos tickets": TechniquesStealOrForgeKerberosTickets, + "subvert trust controls": TechniquesSubvertTrustControls, + "supply chain compromise": TechniquesSupplyChainCompromise, + "system information discovery": TechniquesSystemInformationDiscovery, + "taint shared content": TechniquesTaintSharedContent, + "traffic signaling": TechniquesTrafficSignaling, + "transfer data to cloud account": TechniquesTransferDataToCloudAccount, + "trusted relationship": TechniquesTrustedRelationship, + "unsecured credentials": TechniquesUnsecuredCredentials, + "user execution": TechniquesUserExecution, + "valid accounts": TechniquesValidAccounts, + "windows management instrumentation": TechniquesWindowsManagementInstrumentation, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Techniques(input) + return &out, nil +} + +type Threats string + +const ( + ThreatsAccountBreach Threats = "accountBreach" + ThreatsDataExfiltration Threats = "dataExfiltration" + ThreatsDataSpillage Threats = "dataSpillage" + ThreatsDenialOfService Threats = "denialOfService" + ThreatsElevationOfPrivilege Threats = "elevationOfPrivilege" + ThreatsMaliciousInsider Threats = "maliciousInsider" + ThreatsMissingCoverage Threats = "missingCoverage" + ThreatsThreatResistance Threats = "threatResistance" +) + +func PossibleValuesForThreats() []string { + return []string{ + string(ThreatsAccountBreach), + string(ThreatsDataExfiltration), + string(ThreatsDataSpillage), + string(ThreatsDenialOfService), + string(ThreatsElevationOfPrivilege), + string(ThreatsMaliciousInsider), + string(ThreatsMissingCoverage), + string(ThreatsThreatResistance), + } +} + +func parseThreats(input string) (*Threats, error) { + vals := map[string]Threats{ + "accountbreach": ThreatsAccountBreach, + "dataexfiltration": ThreatsDataExfiltration, + "dataspillage": ThreatsDataSpillage, + "denialofservice": ThreatsDenialOfService, + "elevationofprivilege": ThreatsElevationOfPrivilege, + "maliciousinsider": ThreatsMaliciousInsider, + "missingcoverage": ThreatsMissingCoverage, + "threatresistance": ThreatsThreatResistance, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Threats(input) + return &out, nil +} + +type UserImpact string + +const ( + UserImpactHigh UserImpact = "High" + UserImpactLow UserImpact = "Low" + UserImpactModerate UserImpact = "Moderate" +) + +func PossibleValuesForUserImpact() []string { + return []string{ + string(UserImpactHigh), + string(UserImpactLow), + string(UserImpactModerate), + } +} + +func parseUserImpact(input string) (*UserImpact, error) { + vals := map[string]UserImpact{ + "high": UserImpactHigh, + "low": UserImpactLow, + "moderate": UserImpactModerate, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := UserImpact(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/id_assessmentmetadata.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/id_assessmentmetadata.go new file mode 100644 index 000000000000..b5fa77a50d3b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/id_assessmentmetadata.go @@ -0,0 +1,101 @@ +package assessmentsmetadata + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = AssessmentMetadataId{} + +// AssessmentMetadataId is a struct representing the Resource ID for a Assessment Metadata +type AssessmentMetadataId struct { + AssessmentMetadataName string +} + +// NewAssessmentMetadataID returns a new AssessmentMetadataId struct +func NewAssessmentMetadataID(assessmentMetadataName string) AssessmentMetadataId { + return AssessmentMetadataId{ + AssessmentMetadataName: assessmentMetadataName, + } +} + +// ParseAssessmentMetadataID parses 'input' into a AssessmentMetadataId +func ParseAssessmentMetadataID(input string) (*AssessmentMetadataId, error) { + parser := resourceids.NewParserFromResourceIdType(AssessmentMetadataId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := AssessmentMetadataId{} + + if id.AssessmentMetadataName, ok = parsed.Parsed["assessmentMetadataName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "assessmentMetadataName", *parsed) + } + + return &id, nil +} + +// ParseAssessmentMetadataIDInsensitively parses 'input' case-insensitively into a AssessmentMetadataId +// note: this method should only be used for API response data and not user input +func ParseAssessmentMetadataIDInsensitively(input string) (*AssessmentMetadataId, error) { + parser := resourceids.NewParserFromResourceIdType(AssessmentMetadataId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := AssessmentMetadataId{} + + if id.AssessmentMetadataName, ok = parsed.Parsed["assessmentMetadataName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "assessmentMetadataName", *parsed) + } + + return &id, nil +} + +// ValidateAssessmentMetadataID checks that 'input' can be parsed as a Assessment Metadata ID +func ValidateAssessmentMetadataID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseAssessmentMetadataID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Assessment Metadata ID +func (id AssessmentMetadataId) ID() string { + fmtString := "/providers/Microsoft.Security/assessmentMetadata/%s" + return fmt.Sprintf(fmtString, id.AssessmentMetadataName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Assessment Metadata ID +func (id AssessmentMetadataId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftSecurity", "Microsoft.Security", "Microsoft.Security"), + resourceids.StaticSegment("staticAssessmentMetadata", "assessmentMetadata", "assessmentMetadata"), + resourceids.UserSpecifiedSegment("assessmentMetadataName", "assessmentMetadataValue"), + } +} + +// String returns a human-readable description of this Assessment Metadata ID +func (id AssessmentMetadataId) String() string { + components := []string{ + fmt.Sprintf("Assessment Metadata Name: %q", id.AssessmentMetadataName), + } + return fmt.Sprintf("Assessment Metadata (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/id_providerassessmentmetadata.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/id_providerassessmentmetadata.go new file mode 100644 index 000000000000..e0957f9874e5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/id_providerassessmentmetadata.go @@ -0,0 +1,114 @@ +package assessmentsmetadata + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ProviderAssessmentMetadataId{} + +// ProviderAssessmentMetadataId is a struct representing the Resource ID for a Provider Assessment Metadata +type ProviderAssessmentMetadataId struct { + SubscriptionId string + AssessmentMetadataName string +} + +// NewProviderAssessmentMetadataID returns a new ProviderAssessmentMetadataId struct +func NewProviderAssessmentMetadataID(subscriptionId string, assessmentMetadataName string) ProviderAssessmentMetadataId { + return ProviderAssessmentMetadataId{ + SubscriptionId: subscriptionId, + AssessmentMetadataName: assessmentMetadataName, + } +} + +// ParseProviderAssessmentMetadataID parses 'input' into a ProviderAssessmentMetadataId +func ParseProviderAssessmentMetadataID(input string) (*ProviderAssessmentMetadataId, error) { + parser := resourceids.NewParserFromResourceIdType(ProviderAssessmentMetadataId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ProviderAssessmentMetadataId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.AssessmentMetadataName, ok = parsed.Parsed["assessmentMetadataName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "assessmentMetadataName", *parsed) + } + + return &id, nil +} + +// ParseProviderAssessmentMetadataIDInsensitively parses 'input' case-insensitively into a ProviderAssessmentMetadataId +// note: this method should only be used for API response data and not user input +func ParseProviderAssessmentMetadataIDInsensitively(input string) (*ProviderAssessmentMetadataId, error) { + parser := resourceids.NewParserFromResourceIdType(ProviderAssessmentMetadataId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ProviderAssessmentMetadataId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.AssessmentMetadataName, ok = parsed.Parsed["assessmentMetadataName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "assessmentMetadataName", *parsed) + } + + return &id, nil +} + +// ValidateProviderAssessmentMetadataID checks that 'input' can be parsed as a Provider Assessment Metadata ID +func ValidateProviderAssessmentMetadataID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseProviderAssessmentMetadataID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Provider Assessment Metadata ID +func (id ProviderAssessmentMetadataId) ID() string { + fmtString := "/subscriptions/%s/providers/Microsoft.Security/assessmentMetadata/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.AssessmentMetadataName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Provider Assessment Metadata ID +func (id ProviderAssessmentMetadataId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftSecurity", "Microsoft.Security", "Microsoft.Security"), + resourceids.StaticSegment("staticAssessmentMetadata", "assessmentMetadata", "assessmentMetadata"), + resourceids.UserSpecifiedSegment("assessmentMetadataName", "assessmentMetadataValue"), + } +} + +// String returns a human-readable description of this Provider Assessment Metadata ID +func (id ProviderAssessmentMetadataId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Assessment Metadata Name: %q", id.AssessmentMetadataName), + } + return fmt.Sprintf("Provider Assessment Metadata (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatacreateinsubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatacreateinsubscription_autorest.go new file mode 100644 index 000000000000..686c59deec72 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatacreateinsubscription_autorest.go @@ -0,0 +1,69 @@ +package assessmentsmetadata + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssessmentsMetadataCreateInSubscriptionOperationResponse struct { + HttpResponse *http.Response + Model *SecurityAssessmentMetadataResponse +} + +// AssessmentsMetadataCreateInSubscription ... +func (c AssessmentsMetadataClient) AssessmentsMetadataCreateInSubscription(ctx context.Context, id ProviderAssessmentMetadataId, input SecurityAssessmentMetadataResponse) (result AssessmentsMetadataCreateInSubscriptionOperationResponse, err error) { + req, err := c.preparerForAssessmentsMetadataCreateInSubscription(ctx, id, input) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataCreateInSubscription", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataCreateInSubscription", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForAssessmentsMetadataCreateInSubscription(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataCreateInSubscription", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForAssessmentsMetadataCreateInSubscription prepares the AssessmentsMetadataCreateInSubscription request. +func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataCreateInSubscription(ctx context.Context, id ProviderAssessmentMetadataId, input SecurityAssessmentMetadataResponse) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithJSON(input), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForAssessmentsMetadataCreateInSubscription handles the response to the AssessmentsMetadataCreateInSubscription request. The method always +// closes the http.Response Body. +func (c AssessmentsMetadataClient) responderForAssessmentsMetadataCreateInSubscription(resp *http.Response) (result AssessmentsMetadataCreateInSubscriptionOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatadeleteinsubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatadeleteinsubscription_autorest.go new file mode 100644 index 000000000000..a3ea6f7edf84 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatadeleteinsubscription_autorest.go @@ -0,0 +1,66 @@ +package assessmentsmetadata + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssessmentsMetadataDeleteInSubscriptionOperationResponse struct { + HttpResponse *http.Response +} + +// AssessmentsMetadataDeleteInSubscription ... +func (c AssessmentsMetadataClient) AssessmentsMetadataDeleteInSubscription(ctx context.Context, id ProviderAssessmentMetadataId) (result AssessmentsMetadataDeleteInSubscriptionOperationResponse, err error) { + req, err := c.preparerForAssessmentsMetadataDeleteInSubscription(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataDeleteInSubscription", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataDeleteInSubscription", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForAssessmentsMetadataDeleteInSubscription(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataDeleteInSubscription", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForAssessmentsMetadataDeleteInSubscription prepares the AssessmentsMetadataDeleteInSubscription request. +func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataDeleteInSubscription(ctx context.Context, id ProviderAssessmentMetadataId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsDelete(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForAssessmentsMetadataDeleteInSubscription handles the response to the AssessmentsMetadataDeleteInSubscription request. The method always +// closes the http.Response Body. +func (c AssessmentsMetadataClient) responderForAssessmentsMetadataDeleteInSubscription(resp *http.Response) (result AssessmentsMetadataDeleteInSubscriptionOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadataget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadataget_autorest.go new file mode 100644 index 000000000000..2919c2673af2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadataget_autorest.go @@ -0,0 +1,68 @@ +package assessmentsmetadata + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssessmentsMetadataGetOperationResponse struct { + HttpResponse *http.Response + Model *SecurityAssessmentMetadataResponse +} + +// AssessmentsMetadataGet ... +func (c AssessmentsMetadataClient) AssessmentsMetadataGet(ctx context.Context, id AssessmentMetadataId) (result AssessmentsMetadataGetOperationResponse, err error) { + req, err := c.preparerForAssessmentsMetadataGet(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataGet", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataGet", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForAssessmentsMetadataGet(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataGet", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForAssessmentsMetadataGet prepares the AssessmentsMetadataGet request. +func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataGet(ctx context.Context, id AssessmentMetadataId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForAssessmentsMetadataGet handles the response to the AssessmentsMetadataGet request. The method always +// closes the http.Response Body. +func (c AssessmentsMetadataClient) responderForAssessmentsMetadataGet(resp *http.Response) (result AssessmentsMetadataGetOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatagetinsubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatagetinsubscription_autorest.go new file mode 100644 index 000000000000..fda8a435ed6a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatagetinsubscription_autorest.go @@ -0,0 +1,68 @@ +package assessmentsmetadata + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssessmentsMetadataGetInSubscriptionOperationResponse struct { + HttpResponse *http.Response + Model *SecurityAssessmentMetadataResponse +} + +// AssessmentsMetadataGetInSubscription ... +func (c AssessmentsMetadataClient) AssessmentsMetadataGetInSubscription(ctx context.Context, id ProviderAssessmentMetadataId) (result AssessmentsMetadataGetInSubscriptionOperationResponse, err error) { + req, err := c.preparerForAssessmentsMetadataGetInSubscription(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataGetInSubscription", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataGetInSubscription", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForAssessmentsMetadataGetInSubscription(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataGetInSubscription", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForAssessmentsMetadataGetInSubscription prepares the AssessmentsMetadataGetInSubscription request. +func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataGetInSubscription(ctx context.Context, id ProviderAssessmentMetadataId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForAssessmentsMetadataGetInSubscription handles the response to the AssessmentsMetadataGetInSubscription request. The method always +// closes the http.Response Body. +func (c AssessmentsMetadataClient) responderForAssessmentsMetadataGetInSubscription(resp *http.Response) (result AssessmentsMetadataGetInSubscriptionOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalist_autorest.go new file mode 100644 index 000000000000..2e99e7e5b340 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalist_autorest.go @@ -0,0 +1,186 @@ +package assessmentsmetadata + +import ( + "context" + "fmt" + "net/http" + "net/url" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssessmentsMetadataListOperationResponse struct { + HttpResponse *http.Response + Model *[]SecurityAssessmentMetadataResponse + + nextLink *string + nextPageFunc func(ctx context.Context, nextLink string) (AssessmentsMetadataListOperationResponse, error) +} + +type AssessmentsMetadataListCompleteResult struct { + Items []SecurityAssessmentMetadataResponse +} + +func (r AssessmentsMetadataListOperationResponse) HasMore() bool { + return r.nextLink != nil +} + +func (r AssessmentsMetadataListOperationResponse) LoadMore(ctx context.Context) (resp AssessmentsMetadataListOperationResponse, err error) { + if !r.HasMore() { + err = fmt.Errorf("no more pages returned") + return + } + return r.nextPageFunc(ctx, *r.nextLink) +} + +// AssessmentsMetadataList ... +func (c AssessmentsMetadataClient) AssessmentsMetadataList(ctx context.Context) (resp AssessmentsMetadataListOperationResponse, err error) { + req, err := c.preparerForAssessmentsMetadataList(ctx) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataList", nil, "Failure preparing request") + return + } + + resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataList", resp.HttpResponse, "Failure sending request") + return + } + + resp, err = c.responderForAssessmentsMetadataList(resp.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataList", resp.HttpResponse, "Failure responding to request") + return + } + return +} + +// preparerForAssessmentsMetadataList prepares the AssessmentsMetadataList request. +func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataList(ctx context.Context) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath("/providers/Microsoft.Security/assessmentMetadata"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// preparerForAssessmentsMetadataListWithNextLink prepares the AssessmentsMetadataList request with the given nextLink token. +func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { + uri, err := url.Parse(nextLink) + if err != nil { + return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) + } + queryParameters := map[string]interface{}{} + for k, v := range uri.Query() { + if len(v) == 0 { + continue + } + val := v[0] + val = autorest.Encode("query", val) + queryParameters[k] = val + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(uri.Path), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForAssessmentsMetadataList handles the response to the AssessmentsMetadataList request. The method always +// closes the http.Response Body. +func (c AssessmentsMetadataClient) responderForAssessmentsMetadataList(resp *http.Response) (result AssessmentsMetadataListOperationResponse, err error) { + type page struct { + Values []SecurityAssessmentMetadataResponse `json:"value"` + NextLink *string `json:"nextLink"` + } + var respObj page + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&respObj), + autorest.ByClosing()) + result.HttpResponse = resp + result.Model = &respObj.Values + result.nextLink = respObj.NextLink + if respObj.NextLink != nil { + result.nextPageFunc = func(ctx context.Context, nextLink string) (result AssessmentsMetadataListOperationResponse, err error) { + req, err := c.preparerForAssessmentsMetadataListWithNextLink(ctx, nextLink) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataList", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataList", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForAssessmentsMetadataList(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataList", result.HttpResponse, "Failure responding to request") + return + } + + return + } + } + return +} + +// AssessmentsMetadataListComplete retrieves all of the results into a single object +func (c AssessmentsMetadataClient) AssessmentsMetadataListComplete(ctx context.Context) (AssessmentsMetadataListCompleteResult, error) { + return c.AssessmentsMetadataListCompleteMatchingPredicate(ctx, SecurityAssessmentMetadataResponseOperationPredicate{}) +} + +// AssessmentsMetadataListCompleteMatchingPredicate retrieves all of the results and then applied the predicate +func (c AssessmentsMetadataClient) AssessmentsMetadataListCompleteMatchingPredicate(ctx context.Context, predicate SecurityAssessmentMetadataResponseOperationPredicate) (resp AssessmentsMetadataListCompleteResult, err error) { + items := make([]SecurityAssessmentMetadataResponse, 0) + + page, err := c.AssessmentsMetadataList(ctx) + if err != nil { + err = fmt.Errorf("loading the initial page: %+v", err) + return + } + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + for page.HasMore() { + page, err = page.LoadMore(ctx) + if err != nil { + err = fmt.Errorf("loading the next page: %+v", err) + return + } + + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + } + + out := AssessmentsMetadataListCompleteResult{ + Items: items, + } + return out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalistbysubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalistbysubscription_autorest.go new file mode 100644 index 000000000000..7e5604a8eab8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalistbysubscription_autorest.go @@ -0,0 +1,187 @@ +package assessmentsmetadata + +import ( + "context" + "fmt" + "net/http" + "net/url" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssessmentsMetadataListBySubscriptionOperationResponse struct { + HttpResponse *http.Response + Model *[]SecurityAssessmentMetadataResponse + + nextLink *string + nextPageFunc func(ctx context.Context, nextLink string) (AssessmentsMetadataListBySubscriptionOperationResponse, error) +} + +type AssessmentsMetadataListBySubscriptionCompleteResult struct { + Items []SecurityAssessmentMetadataResponse +} + +func (r AssessmentsMetadataListBySubscriptionOperationResponse) HasMore() bool { + return r.nextLink != nil +} + +func (r AssessmentsMetadataListBySubscriptionOperationResponse) LoadMore(ctx context.Context) (resp AssessmentsMetadataListBySubscriptionOperationResponse, err error) { + if !r.HasMore() { + err = fmt.Errorf("no more pages returned") + return + } + return r.nextPageFunc(ctx, *r.nextLink) +} + +// AssessmentsMetadataListBySubscription ... +func (c AssessmentsMetadataClient) AssessmentsMetadataListBySubscription(ctx context.Context, id commonids.SubscriptionId) (resp AssessmentsMetadataListBySubscriptionOperationResponse, err error) { + req, err := c.preparerForAssessmentsMetadataListBySubscription(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataListBySubscription", nil, "Failure preparing request") + return + } + + resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataListBySubscription", resp.HttpResponse, "Failure sending request") + return + } + + resp, err = c.responderForAssessmentsMetadataListBySubscription(resp.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataListBySubscription", resp.HttpResponse, "Failure responding to request") + return + } + return +} + +// preparerForAssessmentsMetadataListBySubscription prepares the AssessmentsMetadataListBySubscription request. +func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataListBySubscription(ctx context.Context, id commonids.SubscriptionId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.Security/assessmentMetadata", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// preparerForAssessmentsMetadataListBySubscriptionWithNextLink prepares the AssessmentsMetadataListBySubscription request with the given nextLink token. +func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataListBySubscriptionWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { + uri, err := url.Parse(nextLink) + if err != nil { + return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) + } + queryParameters := map[string]interface{}{} + for k, v := range uri.Query() { + if len(v) == 0 { + continue + } + val := v[0] + val = autorest.Encode("query", val) + queryParameters[k] = val + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(uri.Path), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForAssessmentsMetadataListBySubscription handles the response to the AssessmentsMetadataListBySubscription request. The method always +// closes the http.Response Body. +func (c AssessmentsMetadataClient) responderForAssessmentsMetadataListBySubscription(resp *http.Response) (result AssessmentsMetadataListBySubscriptionOperationResponse, err error) { + type page struct { + Values []SecurityAssessmentMetadataResponse `json:"value"` + NextLink *string `json:"nextLink"` + } + var respObj page + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&respObj), + autorest.ByClosing()) + result.HttpResponse = resp + result.Model = &respObj.Values + result.nextLink = respObj.NextLink + if respObj.NextLink != nil { + result.nextPageFunc = func(ctx context.Context, nextLink string) (result AssessmentsMetadataListBySubscriptionOperationResponse, err error) { + req, err := c.preparerForAssessmentsMetadataListBySubscriptionWithNextLink(ctx, nextLink) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataListBySubscription", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataListBySubscription", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForAssessmentsMetadataListBySubscription(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataListBySubscription", result.HttpResponse, "Failure responding to request") + return + } + + return + } + } + return +} + +// AssessmentsMetadataListBySubscriptionComplete retrieves all of the results into a single object +func (c AssessmentsMetadataClient) AssessmentsMetadataListBySubscriptionComplete(ctx context.Context, id commonids.SubscriptionId) (AssessmentsMetadataListBySubscriptionCompleteResult, error) { + return c.AssessmentsMetadataListBySubscriptionCompleteMatchingPredicate(ctx, id, SecurityAssessmentMetadataResponseOperationPredicate{}) +} + +// AssessmentsMetadataListBySubscriptionCompleteMatchingPredicate retrieves all of the results and then applied the predicate +func (c AssessmentsMetadataClient) AssessmentsMetadataListBySubscriptionCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate SecurityAssessmentMetadataResponseOperationPredicate) (resp AssessmentsMetadataListBySubscriptionCompleteResult, err error) { + items := make([]SecurityAssessmentMetadataResponse, 0) + + page, err := c.AssessmentsMetadataListBySubscription(ctx, id) + if err != nil { + err = fmt.Errorf("loading the initial page: %+v", err) + return + } + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + for page.HasMore() { + page, err = page.LoadMore(ctx) + if err != nil { + err = fmt.Errorf("loading the next page: %+v", err) + return + } + + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + } + + out := AssessmentsMetadataListBySubscriptionCompleteResult{ + Items: items, + } + return out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadatapartnerdata.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadatapartnerdata.go new file mode 100644 index 000000000000..d949f659575c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadatapartnerdata.go @@ -0,0 +1,10 @@ +package assessmentsmetadata + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SecurityAssessmentMetadataPartnerData struct { + PartnerName string `json:"partnerName"` + ProductName *string `json:"productName,omitempty"` + Secret string `json:"secret"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadatapropertiesresponse.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadatapropertiesresponse.go new file mode 100644 index 000000000000..d813b1002b9e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadatapropertiesresponse.go @@ -0,0 +1,23 @@ +package assessmentsmetadata + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SecurityAssessmentMetadataPropertiesResponse struct { + AssessmentType AssessmentType `json:"assessmentType"` + Categories *[]Categories `json:"categories,omitempty"` + Description *string `json:"description,omitempty"` + DisplayName string `json:"displayName"` + ImplementationEffort *ImplementationEffort `json:"implementationEffort,omitempty"` + PartnerData *SecurityAssessmentMetadataPartnerData `json:"partnerData,omitempty"` + PlannedDeprecationDate *string `json:"plannedDeprecationDate,omitempty"` + PolicyDefinitionId *string `json:"policyDefinitionId,omitempty"` + Preview *bool `json:"preview,omitempty"` + PublishDates *SecurityAssessmentMetadataPropertiesResponsePublishDates `json:"publishDates,omitempty"` + RemediationDescription *string `json:"remediationDescription,omitempty"` + Severity Severity `json:"severity"` + Tactics *[]Tactics `json:"tactics,omitempty"` + Techniques *[]Techniques `json:"techniques,omitempty"` + Threats *[]Threats `json:"threats,omitempty"` + UserImpact *UserImpact `json:"userImpact,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadatapropertiesresponsepublishdates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadatapropertiesresponsepublishdates.go new file mode 100644 index 000000000000..e9dc01d7c86d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadatapropertiesresponsepublishdates.go @@ -0,0 +1,9 @@ +package assessmentsmetadata + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SecurityAssessmentMetadataPropertiesResponsePublishDates struct { + GA *string `json:"GA,omitempty"` + Public string `json:"public"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadataresponse.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadataresponse.go new file mode 100644 index 000000000000..7acc7c794683 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/model_securityassessmentmetadataresponse.go @@ -0,0 +1,11 @@ +package assessmentsmetadata + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SecurityAssessmentMetadataResponse struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *SecurityAssessmentMetadataPropertiesResponse `json:"properties,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/predicates.go new file mode 100644 index 000000000000..0ab05ff02ccf --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/predicates.go @@ -0,0 +1,27 @@ +package assessmentsmetadata + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SecurityAssessmentMetadataResponseOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p SecurityAssessmentMetadataResponseOperationPredicate) Matches(input SecurityAssessmentMetadataResponse) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/version.go new file mode 100644 index 000000000000..5c96708bc7cf --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/version.go @@ -0,0 +1,12 @@ +package assessmentsmetadata + +import "fmt" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +const defaultApiVersion = "2021-06-01" + +func userAgent() string { + return fmt.Sprintf("hashicorp/go-azure-sdk/assessmentsmetadata/%s", defaultApiVersion) +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 89437845d6d1..e5f0388aa471 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -808,6 +808,7 @@ github.com/hashicorp/go-azure-sdk/resource-manager/search/2022-09-01/adminkeys github.com/hashicorp/go-azure-sdk/resource-manager/search/2022-09-01/querykeys github.com/hashicorp/go-azure-sdk/resource-manager/search/2022-09-01/services github.com/hashicorp/go-azure-sdk/resource-manager/search/2022-09-01/sharedprivatelinkresources +github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata github.com/hashicorp/go-azure-sdk/resource-manager/security/2023-01-01/pricings github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/automationrules From 59f41f8eb4a6163fdf7778af9705bb3f8a2c6df9 Mon Sep 17 00:00:00 2001 From: Elena Xin Date: Mon, 4 Sep 2023 17:42:44 +0800 Subject: [PATCH 094/336] update code --- .../security_center_assessment_policy_resource.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/services/securitycenter/security_center_assessment_policy_resource.go b/internal/services/securitycenter/security_center_assessment_policy_resource.go index 16f6e6544042..dc0dd21e8433 100644 --- a/internal/services/securitycenter/security_center_assessment_policy_resource.go +++ b/internal/services/securitycenter/security_center_assessment_policy_resource.go @@ -269,7 +269,7 @@ func resourceArmSecurityCenterAssessmentPolicyUpdate(d *pluginsdk.ResourceData, if err != nil { return fmt.Errorf("retrieving %s: %+v", *id, err) } - if existing.Model == nil || &existing.Model.Properties == nil { + if existing.Model == nil || existing.Model.Properties == nil { return fmt.Errorf("retrieving %s: `properties` was nil", *id) } From d8b593fcb531f64f8c99fb156d9475d93dc6dc07 Mon Sep 17 00:00:00 2001 From: neil-yechenwei Date: Mon, 4 Sep 2023 19:41:55 +0800 Subject: [PATCH 095/336] update code --- .../cosmosdb_cassandra_datacenter_resource.go | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go index 0fd742fc7f20..9d84be0f23e3 100644 --- a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go +++ b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go @@ -4,6 +4,7 @@ package cosmos import ( + "context" "fmt" "log" "time" @@ -246,6 +247,23 @@ func resourceCassandraDatacenterUpdate(d *pluginsdk.ResourceData, meta interface return fmt.Errorf("updating %q: %+v", id, err) } + // Issue: https://github.com/Azure/azure-rest-api-specs/issues/19078 + // There is a long running issue on updating this resource. + // The API cannot update the property after WaitForCompletionRef is returned. + // It has to wait a while after that. Then the property can be updated successfully. + stateConf := &pluginsdk.StateChangeConf{ + Delay: 1 * time.Minute, + Pending: []string{string(managedcassandras.ManagedCassandraProvisioningStateUpdating)}, + Target: []string{string(managedcassandras.ManagedCassandraProvisioningStateSucceeded)}, + Refresh: cassandraDatacenterStateRefreshFunc(ctx, client, *id), + MinTimeout: 15 * time.Second, + Timeout: d.Timeout(pluginsdk.TimeoutUpdate), + } + + if _, err := stateConf.WaitForStateContext(ctx); err != nil { + return fmt.Errorf("waiting for update of %s: %+v", id, err) + } + return resourceCassandraDatacenterRead(d, meta) } @@ -265,3 +283,19 @@ func resourceCassandraDatacenterDelete(d *pluginsdk.ResourceData, meta interface return nil } + +func cassandraDatacenterStateRefreshFunc(ctx context.Context, client *managedcassandras.ManagedCassandrasClient, id managedcassandras.DataCenterId) pluginsdk.StateRefreshFunc { + return func() (interface{}, string, error) { + res, err := client.CassandraDataCentersGet(ctx, id) + if err != nil { + return nil, "", fmt.Errorf("polling for %s: %+v", id, err) + } + + if model := res.Model; model != nil { + if model.Properties != nil && model.Properties.ProvisioningState != nil { + return res, string(*model.Properties.ProvisioningState), nil + } + } + return nil, "", fmt.Errorf("unable to read provisioning state") + } +} From b7eb5a3e8cecd273cd788f606aa46bd323cc68c0 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Mon, 4 Sep 2023 16:31:22 +0200 Subject: [PATCH 096/336] updating to include #23155 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6418ab95b22d..00b937b429ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ BUG FIXES: * `azurerm_automation_account` - fixes logic for `local_authentication_enabled` [GH-23082] * `azurerm_monitor_diagnostic_setting` - fix `enabled_log` feature flagged schema [GH-23093] * `azurerm_pim_active_role_assignment`: polling for the duration of the timeout, rather than a fixed 5 minute value [GH-22932] +* `azurerm_policy_set_definition` - only sending `parameters` when a value is configured [GH-23155] * `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` [GH-23019] ## 3.71.0 (August 24, 2023) From 2674f433dcf4bab895b445a4b36c756f9a96eef8 Mon Sep 17 00:00:00 2001 From: Yichun Ma Date: Tue, 5 Sep 2023 13:56:10 +0800 Subject: [PATCH 097/336] `example` - add example for virtual machine user data (#22951) * `example` - add example for virtual machine user data * use command instead of random string --------- Co-authored-by: Yichun Ma --- .../linux/custom-data/main.tf | 17 ++++- .../linux/user-data/README.md | 3 + .../virtual-machines/linux/user-data/main.tf | 63 +++++++++++++++++++ .../linux/user-data/variables.tf | 10 +++ .../windows/custom-data/main.tf | 10 ++- .../windows/user-data/README.md | 3 + .../windows/user-data/main.tf | 62 ++++++++++++++++++ .../windows/user-data/variables.tf | 10 +++ 8 files changed, 174 insertions(+), 4 deletions(-) create mode 100644 examples/virtual-machines/linux/user-data/README.md create mode 100644 examples/virtual-machines/linux/user-data/main.tf create mode 100644 examples/virtual-machines/linux/user-data/variables.tf create mode 100644 examples/virtual-machines/windows/user-data/README.md create mode 100644 examples/virtual-machines/windows/user-data/main.tf create mode 100644 examples/virtual-machines/windows/user-data/variables.tf diff --git a/examples/virtual-machines/linux/custom-data/main.tf b/examples/virtual-machines/linux/custom-data/main.tf index b4d6ee762ea4..3eb8e03d444c 100644 --- a/examples/virtual-machines/linux/custom-data/main.tf +++ b/examples/virtual-machines/linux/custom-data/main.tf @@ -5,6 +5,16 @@ provider "azurerm" { features {} } +locals { + custom_data = < /etc/customdata +example data +EOF +CUSTOM_DATA +} + resource "azurerm_resource_group" "main" { name = "${var.prefix}-resources" location = var.location @@ -43,16 +53,17 @@ resource "azurerm_linux_virtual_machine" "main" { size = "Standard_F2" admin_username = "adminuser" admin_password = "P@ssw0rd1234!" - custom_data = base64encode("Hello World!") + custom_data = base64encode(local.custom_data) disable_password_authentication = false network_interface_ids = [ azurerm_network_interface.main.id, ] + source_image_reference { publisher = "Canonical" - offer = "UbuntuServer" - sku = "16.04-LTS" + offer = "0001-com-ubuntu-server-focal" + sku = "20_04-lts" version = "latest" } diff --git a/examples/virtual-machines/linux/user-data/README.md b/examples/virtual-machines/linux/user-data/README.md new file mode 100644 index 000000000000..246e6028b999 --- /dev/null +++ b/examples/virtual-machines/linux/user-data/README.md @@ -0,0 +1,3 @@ +## Example: Linux Virtual Machine with User Data + +This example provisions a Linux Virtual Machine with some User Data. diff --git a/examples/virtual-machines/linux/user-data/main.tf b/examples/virtual-machines/linux/user-data/main.tf new file mode 100644 index 000000000000..b7ef60b3da4b --- /dev/null +++ b/examples/virtual-machines/linux/user-data/main.tf @@ -0,0 +1,63 @@ +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: MPL-2.0 + +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "main" { + name = "${var.prefix}-resources" + location = var.location +} + +resource "azurerm_virtual_network" "main" { + name = "${var.prefix}-network" + address_space = ["10.0.0.0/16"] + location = azurerm_resource_group.main.location + resource_group_name = azurerm_resource_group.main.name +} + +resource "azurerm_subnet" "internal" { + name = "internal" + resource_group_name = azurerm_resource_group.main.name + virtual_network_name = azurerm_virtual_network.main.name + address_prefixes = ["10.0.2.0/24"] +} + +resource "azurerm_network_interface" "main" { + name = "${var.prefix}-nic" + resource_group_name = azurerm_resource_group.main.name + location = azurerm_resource_group.main.location + + ip_configuration { + name = "internal" + subnet_id = azurerm_subnet.internal.id + private_ip_address_allocation = "Dynamic" + } +} + +resource "azurerm_linux_virtual_machine" "main" { + name = "${var.prefix}-vm" + resource_group_name = azurerm_resource_group.main.name + location = azurerm_resource_group.main.location + size = "Standard_F2" + admin_username = "adminuser" + admin_password = "P@ssw0rd1234!" + user_data = base64encode("Hello World!") + disable_password_authentication = false + network_interface_ids = [ + azurerm_network_interface.main.id, + ] + + source_image_reference { + publisher = "Canonical" + offer = "0001-com-ubuntu-server-focal" + sku = "20_04-lts" + version = "latest" + } + + os_disk { + storage_account_type = "Standard_LRS" + caching = "ReadWrite" + } +} diff --git a/examples/virtual-machines/linux/user-data/variables.tf b/examples/virtual-machines/linux/user-data/variables.tf new file mode 100644 index 000000000000..371d4695d13d --- /dev/null +++ b/examples/virtual-machines/linux/user-data/variables.tf @@ -0,0 +1,10 @@ +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: MPL-2.0 + +variable "prefix" { + description = "The prefix which should be used for all resources in this example" +} + +variable "location" { + description = "The Azure Region in which all resources in this example should be created." +} diff --git a/examples/virtual-machines/windows/custom-data/main.tf b/examples/virtual-machines/windows/custom-data/main.tf index de7ec1cd8e61..25b4c3dff602 100644 --- a/examples/virtual-machines/windows/custom-data/main.tf +++ b/examples/virtual-machines/windows/custom-data/main.tf @@ -5,6 +5,14 @@ provider "azurerm" { features {} } +locals { + custom_data = < C:/custom_data_exampe + +CUSTOMDATA +} + resource "azurerm_resource_group" "main" { name = "${var.prefix}-resources" location = var.location @@ -43,7 +51,7 @@ resource "azurerm_windows_virtual_machine" "main" { size = "Standard_F2" admin_username = "adminuser" admin_password = "P@ssw0rd1234!" - custom_data = base64encode("Hello World!") + custom_data = base64encode(local.custom_data) network_interface_ids = [ azurerm_network_interface.main.id, ] diff --git a/examples/virtual-machines/windows/user-data/README.md b/examples/virtual-machines/windows/user-data/README.md new file mode 100644 index 000000000000..21d311c4d32b --- /dev/null +++ b/examples/virtual-machines/windows/user-data/README.md @@ -0,0 +1,3 @@ +## Example: Windows Virtual Machine with User Data + +This example provisions a Windows Virtual Machine with some User Data. diff --git a/examples/virtual-machines/windows/user-data/main.tf b/examples/virtual-machines/windows/user-data/main.tf new file mode 100644 index 000000000000..14d8c0aa7b29 --- /dev/null +++ b/examples/virtual-machines/windows/user-data/main.tf @@ -0,0 +1,62 @@ +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: MPL-2.0 + +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "main" { + name = "${var.prefix}-resources" + location = var.location +} + +resource "azurerm_virtual_network" "main" { + name = "${var.prefix}-network" + address_space = ["10.0.0.0/16"] + location = azurerm_resource_group.main.location + resource_group_name = azurerm_resource_group.main.name +} + +resource "azurerm_subnet" "internal" { + name = "internal" + resource_group_name = azurerm_resource_group.main.name + virtual_network_name = azurerm_virtual_network.main.name + address_prefixes = ["10.0.2.0/24"] +} + +resource "azurerm_network_interface" "main" { + name = "${var.prefix}-nic" + resource_group_name = azurerm_resource_group.main.name + location = azurerm_resource_group.main.location + + ip_configuration { + name = "internal" + subnet_id = azurerm_subnet.internal.id + private_ip_address_allocation = "Dynamic" + } +} + +resource "azurerm_windows_virtual_machine" "main" { + name = "${var.prefix}-vm" + resource_group_name = azurerm_resource_group.main.name + location = azurerm_resource_group.main.location + size = "Standard_F2" + admin_username = "adminuser" + admin_password = "P@ssw0rd1234!" + user_data = base64encode("Hello World!") + network_interface_ids = [ + azurerm_network_interface.main.id, + ] + + source_image_reference { + publisher = "MicrosoftWindowsServer" + offer = "WindowsServer" + sku = "2016-Datacenter" + version = "latest" + } + + os_disk { + storage_account_type = "Standard_LRS" + caching = "ReadWrite" + } +} diff --git a/examples/virtual-machines/windows/user-data/variables.tf b/examples/virtual-machines/windows/user-data/variables.tf new file mode 100644 index 000000000000..371d4695d13d --- /dev/null +++ b/examples/virtual-machines/windows/user-data/variables.tf @@ -0,0 +1,10 @@ +# Copyright (c) HashiCorp, Inc. +# SPDX-License-Identifier: MPL-2.0 + +variable "prefix" { + description = "The prefix which should be used for all resources in this example" +} + +variable "location" { + description = "The Azure Region in which all resources in this example should be created." +} From 7277bc7739e18f095f83fee08d61eb8bf2f1507f Mon Sep 17 00:00:00 2001 From: neil-yechenwei Date: Tue, 5 Sep 2023 13:56:28 +0800 Subject: [PATCH 098/336] azurerm_postgresql_database - update the validation of collation --- .../validate/postgresql_database_collation.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/internal/services/postgres/validate/postgresql_database_collation.go b/internal/services/postgres/validate/postgresql_database_collation.go index 280612a7d05c..28583744e3ed 100644 --- a/internal/services/postgres/validate/postgresql_database_collation.go +++ b/internal/services/postgres/validate/postgresql_database_collation.go @@ -271,12 +271,13 @@ var languageCodes = map[string]struct{}{ } var specialCases = map[string]struct{}{ - ".utf8": {}, - "C": {}, - "POSIX": {}, - "English_United States.1252": {}, - "ucs_basic": {}, - "default": {}, + ".utf8": {}, + "C": {}, + "POSIX": {}, + "English_United Kingdom.1252": {}, + "English_United States.1252": {}, + "ucs_basic": {}, + "default": {}, } var databaseCollationDidNotMatchError = func(fieldName, value string) error { From 7b05de4f7f90ea8bc6b0b571524faac7863cb535 Mon Sep 17 00:00:00 2001 From: Sundar Pattamadai <115648377+sundarpn@users.noreply.github.com> Date: Tue, 5 Sep 2023 02:10:47 -0400 Subject: [PATCH 099/336] Update firewall_policy_rule_collection_group.html.markdown (#22942) A protocol is required for all application rules. Azure firewall returns a 500 error when attempting to create an application rule with fqdn tags but without protocol. --- .../docs/r/firewall_policy_rule_collection_group.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/r/firewall_policy_rule_collection_group.html.markdown b/website/docs/r/firewall_policy_rule_collection_group.html.markdown index 061fd5f233ee..77e2bbcb50d3 100644 --- a/website/docs/r/firewall_policy_rule_collection_group.html.markdown +++ b/website/docs/r/firewall_policy_rule_collection_group.html.markdown @@ -139,7 +139,7 @@ A `application_rule` (application rule) block supports the following: * `description` - (Optional) The description which should be used for this rule. -* `protocols` - (Optional) One or more `protocols` blocks as defined below. Not required when specifying `destination_fqdn_tags`, but required when specifying `destination_fqdns`. +* `protocols` - (Required) One or more `protocols` blocks as defined below. * `source_addresses` - (Optional) Specifies a list of source IP addresses (including CIDR, IP range and `*`). From 363d1fa04625097fc3a36def277407dc455340fa Mon Sep 17 00:00:00 2001 From: neil-yechenwei Date: Tue, 5 Sep 2023 14:37:07 +0800 Subject: [PATCH 100/336] update code --- .../postgresql_database_collation_test.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/internal/services/postgres/validate/postgresql_database_collation_test.go b/internal/services/postgres/validate/postgresql_database_collation_test.go index e40362dfeca7..2c776a0287a1 100644 --- a/internal/services/postgres/validate/postgresql_database_collation_test.go +++ b/internal/services/postgres/validate/postgresql_database_collation_test.go @@ -136,13 +136,14 @@ func TestPostgresqlDatabaseCollation_LocalesThirdComponent(t *testing.T) { func TestPostgresqlDatabaseCollation_SpecialCases(t *testing.T) { cases := map[string]struct{}{ // these are special-cases - ".utf8": {}, - "C": {}, - "POSIX": {}, - "English_United States.1252": {}, - "En-US": {}, - "ucs_basic": {}, - "default": {}, + ".utf8": {}, + "C": {}, + "POSIX": {}, + "English_United Kingdom.1252": {}, + "English_United States.1252": {}, + "En-US": {}, + "ucs_basic": {}, + "default": {}, } for value := range cases { t.Run(fmt.Sprintf("Value %q", value), func(t *testing.T) { From 8db895bb441387555208c90050154ea764a0ddf9 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Tue, 5 Sep 2023 09:38:12 +0200 Subject: [PATCH 101/336] updating to include # --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00b937b429ae..d7dcc8dac565 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ ENHANCEMENTS: * `azurerm_batch_pool` - support for `automatic_upgrade_enabled` [GH-23021] * `azurerm_container_app_environment` - support for the `dapr_application_insights_connection_string` [GH-23080] * `azurerm_monitor_diagnostic_setting` - deprecating `retention_policy` within `enabled_log` [GH-23029] +* `azurerm_postgresql_database` - `collation` can now be set to `English_United Kingdom.1252` [GH-23171] +* `azurerm_postgresql_flexible_database` - `collation` can now be set to `English_United Kingdom.1252` [GH-23171] * `azurerm_postgresql_flexible_server` - support for the `auto_grow_enabled` property [GH-23069] * `azurerm_resource_provider_registration` - refactoring to use `hashicorp/go-azure-sdk` [GH-23072] * `azurerm_virtual_network_gateway` - increasing the default timeout for create to `90m` [GH-23003] From 481240ef6a729f08c03b6beb9773a1663bd3911f Mon Sep 17 00:00:00 2001 From: Neil Ye Date: Tue, 5 Sep 2023 15:41:24 +0800 Subject: [PATCH 102/336] `azurerm_bot_service_azure_bot` - support for `local_authentication_enabled` (#23096) * azurerm_bot_service_azure_bot - support for * update code * update code --- .../bot/bot_service_azure_bot_resource_test.go | 11 ++++++----- .../services/bot/bot_service_resource_base.go | 17 +++++++++++++++++ .../docs/r/bot_service_azure_bot.html.markdown | 2 ++ 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/internal/services/bot/bot_service_azure_bot_resource_test.go b/internal/services/bot/bot_service_azure_bot_resource_test.go index 23d66b22dd00..3a03ed63003b 100644 --- a/internal/services/bot/bot_service_azure_bot_resource_test.go +++ b/internal/services/bot/bot_service_azure_bot_resource_test.go @@ -183,11 +183,12 @@ resource "azurerm_application_insights_api_key" "test" { } resource "azurerm_bot_service_azure_bot" "test" { - name = "acctestdf%[1]d" - resource_group_name = azurerm_resource_group.test.name - location = "global" - microsoft_app_id = data.azurerm_client_config.current.client_id - sku = "F0" + name = "acctestdf%[1]d" + resource_group_name = azurerm_resource_group.test.name + location = "global" + microsoft_app_id = data.azurerm_client_config.current.client_id + sku = "F0" + local_authentication_enabled = false endpoint = "https://example.com" developer_app_insights_api_key = azurerm_application_insights_api_key.test.api_key diff --git a/internal/services/bot/bot_service_resource_base.go b/internal/services/bot/bot_service_resource_base.go index 9f24a669716e..b1bc2fdc890f 100644 --- a/internal/services/bot/bot_service_resource_base.go +++ b/internal/services/bot/bot_service_resource_base.go @@ -107,6 +107,12 @@ func (br botBaseResource) arguments(fields map[string]*pluginsdk.Schema) map[str }, false), }, + "local_authentication_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: true, + }, + "luis_app_ids": { Type: pluginsdk.TypeList, Optional: true, @@ -180,6 +186,7 @@ func (br botBaseResource) createFunc(resourceName, botKind string) sdk.ResourceF DeveloperAppInsightKey: utils.String(metadata.ResourceData.Get("developer_app_insights_key").(string)), DeveloperAppInsightsAPIKey: utils.String(metadata.ResourceData.Get("developer_app_insights_api_key").(string)), DeveloperAppInsightsApplicationID: utils.String(metadata.ResourceData.Get("developer_app_insights_application_id").(string)), + DisableLocalAuth: utils.Bool(!metadata.ResourceData.Get("local_authentication_enabled").(bool)), LuisAppIds: utils.ExpandStringSlice(metadata.ResourceData.Get("luis_app_ids").([]interface{})), LuisKey: utils.String(metadata.ResourceData.Get("luis_key").(string)), IsStreamingSupported: utils.Bool(metadata.ResourceData.Get("streaming_endpoint_enabled").(bool)), @@ -295,6 +302,12 @@ func (br botBaseResource) readFunc() sdk.ResourceFunc { } metadata.ResourceData.Set("microsoft_app_msi_id", msaAppMSIId) + localAuthEnabled := true + if v := props.DisableLocalAuth; v != nil { + localAuthEnabled = !*v + } + metadata.ResourceData.Set("local_authentication_enabled", localAuthEnabled) + var luisAppIds []string if v := props.LuisAppIds; v != nil { luisAppIds = *v @@ -367,6 +380,10 @@ func (br botBaseResource) updateFunc() sdk.ResourceFunc { existing.Properties.DeveloperAppInsightsApplicationID = utils.String(metadata.ResourceData.Get("developer_app_insights_application_id").(string)) } + if metadata.ResourceData.HasChange("local_authentication_enabled") { + existing.Properties.DisableLocalAuth = utils.Bool(!metadata.ResourceData.Get("local_authentication_enabled").(bool)) + } + if metadata.ResourceData.HasChange("luis_app_ids") { existing.Properties.LuisAppIds = utils.ExpandStringSlice(metadata.ResourceData.Get("luis_app_ids").([]interface{})) } diff --git a/website/docs/r/bot_service_azure_bot.html.markdown b/website/docs/r/bot_service_azure_bot.html.markdown index c0306afdb11b..a68870375dd1 100644 --- a/website/docs/r/bot_service_azure_bot.html.markdown +++ b/website/docs/r/bot_service_azure_bot.html.markdown @@ -80,6 +80,8 @@ The following arguments are supported: * `microsoft_app_type` - (Optional) The Microsoft App Type for this Azure Bot Service. Possible values are `MultiTenant`, `SingleTenant` and `UserAssignedMSI`. Changing this forces a new resource to be created. +* `local_authentication_enabled` - (Optional) Is local authentication enabled? Defaults to `true`. + * `luis_app_ids` - (Optional) A list of LUIS App IDs to associate with this Azure Bot Service. * `luis_key` - (Optional) The LUIS key to associate with this Azure Bot Service. From c94bc43f8813e045e31980bca3cc319fac7c0447 Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Tue, 5 Sep 2023 15:47:57 +0800 Subject: [PATCH 103/336] security center: fix acctest (#22871) * fix advanced threat protection flakey acctest * update per comment Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> * update per comment Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> * ensure the ctx has deadline Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --------- Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --- .../advanced_threat_protection_resource.go | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/internal/services/securitycenter/advanced_threat_protection_resource.go b/internal/services/securitycenter/advanced_threat_protection_resource.go index 011f643787a9..e244afc39dc3 100644 --- a/internal/services/securitycenter/advanced_threat_protection_resource.go +++ b/internal/services/securitycenter/advanced_threat_protection_resource.go @@ -88,6 +88,39 @@ func resourceAdvancedThreatProtectionCreateUpdate(d *pluginsdk.ResourceData, met return fmt.Errorf("updating Advanced Threat protection for %q: %+v", id.TargetResourceID, err) } + deadline, ok := ctx.Deadline() + if !ok { + return fmt.Errorf("internal-error: context had no deadline") + } + + // the API appears to be eventually consistent, tracked on https://github.com/Azure/azure-rest-api-specs/issues/25232 + stateConf := &pluginsdk.StateChangeConf{ + Pending: []string{"diff"}, + Target: []string{"consistent"}, + Refresh: func() (result interface{}, state string, err error) { + resp, err := client.Get(ctx, id.TargetResourceID) + if err != nil { + return resp, "error", err + } + if atpp := resp.AdvancedThreatProtectionProperties; atpp != nil { + respEnabled := atpp.IsEnabled != nil && *atpp.IsEnabled + if respEnabled == d.Get("enabled").(bool) { + return resp, "consistent", nil + } else { + return resp, "diff", nil + } + } + return resp, "error", fmt.Errorf("Properties was nil") + }, + MinTimeout: 1 * time.Minute, + ContinuousTargetOccurence: 3, + Timeout: time.Until(deadline), + } + + if _, err := stateConf.WaitForStateContext(ctx); err != nil { + return fmt.Errorf("waiting for provisioning state of advanced threat protection: %+v", err) + } + d.SetId(id.ID()) return resourceAdvancedThreatProtectionRead(d, meta) } From 4da169cdd1f4675cc2d7631c153a8f20f647e46f Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Tue, 5 Sep 2023 10:48:47 +0200 Subject: [PATCH 104/336] refactor: updating `vpn_gateway` to use `hashicorp/go-azure-sdk` (#22906) * network: `vpn_gateway` now uses `hashicorp/go-azure-sdk` * cleanup: removing the ID for VpnGateway * apply review comments --------- Co-authored-by: Steph --- internal/services/network/client/client.go | 5 - .../services/network/parse/vpn_gateway.go | 72 ---- .../network/parse/vpn_gateway_test.go | 115 ------- internal/services/network/resourceids.go | 1 - .../network/validate/vpn_gateway_id.go | 26 -- .../network/validate/vpn_gateway_id_test.go | 79 ----- .../vpn_gateway_connection_resource.go | 13 +- .../network/vpn_gateway_data_source.go | 74 +++-- .../network/vpn_gateway_nat_rule_resource.go | 16 +- .../services/network/vpn_gateway_resource.go | 311 +++++++----------- .../network/vpn_gateway_resource_test.go | 10 +- 11 files changed, 174 insertions(+), 548 deletions(-) delete mode 100644 internal/services/network/parse/vpn_gateway.go delete mode 100644 internal/services/network/parse/vpn_gateway_test.go delete mode 100644 internal/services/network/validate/vpn_gateway_id.go delete mode 100644 internal/services/network/validate/vpn_gateway_id_test.go diff --git a/internal/services/network/client/client.go b/internal/services/network/client/client.go index f9f6c300ef44..16cc3141cdeb 100644 --- a/internal/services/network/client/client.go +++ b/internal/services/network/client/client.go @@ -55,7 +55,6 @@ type Client struct { VnetPeeringsClient *network.VirtualNetworkPeeringsClient VirtualWanClient *network.VirtualWansClient VirtualHubClient *network.VirtualHubsClient - VpnGatewaysClient *network.VpnGatewaysClient } func NewClient(o *common.ClientOptions) (*Client, error) { @@ -173,9 +172,6 @@ func NewClient(o *common.ClientOptions) (*Client, error) { VirtualHubClient := network.NewVirtualHubsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId) o.ConfigureClient(&VirtualHubClient.Client, o.ResourceManagerAuthorizer) - vpnGatewaysClient := network.NewVpnGatewaysClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId) - o.ConfigureClient(&vpnGatewaysClient.Client, o.ResourceManagerAuthorizer) - ServiceAssociationLinkClient := network.NewServiceAssociationLinksClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId) o.ConfigureClient(&ServiceAssociationLinkClient.Client, o.ResourceManagerAuthorizer) @@ -228,7 +224,6 @@ func NewClient(o *common.ClientOptions) (*Client, error) { VnetPeeringsClient: &VnetPeeringsClient, VirtualWanClient: &VirtualWanClient, VirtualHubClient: &VirtualHubClient, - VpnGatewaysClient: &vpnGatewaysClient, PrivateDnsZoneGroupClient: &PrivateDnsZoneGroupClient, PrivateLinkServiceClient: &PrivateLinkServiceClient, ServiceAssociationLinkClient: &ServiceAssociationLinkClient, diff --git a/internal/services/network/parse/vpn_gateway.go b/internal/services/network/parse/vpn_gateway.go deleted file mode 100644 index 612ef45675e7..000000000000 --- a/internal/services/network/parse/vpn_gateway.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "fmt" - "strings" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -type VpnGatewayId struct { - SubscriptionId string - ResourceGroup string - Name string -} - -func NewVpnGatewayID(subscriptionId, resourceGroup, name string) VpnGatewayId { - return VpnGatewayId{ - SubscriptionId: subscriptionId, - ResourceGroup: resourceGroup, - Name: name, - } -} - -func (id VpnGatewayId) String() string { - segments := []string{ - fmt.Sprintf("Name %q", id.Name), - fmt.Sprintf("Resource Group %q", id.ResourceGroup), - } - segmentsStr := strings.Join(segments, " / ") - return fmt.Sprintf("%s: (%s)", "Vpn Gateway", segmentsStr) -} - -func (id VpnGatewayId) ID() string { - fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/vpnGateways/%s" - return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroup, id.Name) -} - -// VpnGatewayID parses a VpnGateway ID into an VpnGatewayId struct -func VpnGatewayID(input string) (*VpnGatewayId, error) { - id, err := resourceids.ParseAzureResourceID(input) - if err != nil { - return nil, fmt.Errorf("parsing %q as an VpnGateway ID: %+v", input, err) - } - - resourceId := VpnGatewayId{ - SubscriptionId: id.SubscriptionID, - ResourceGroup: id.ResourceGroup, - } - - if resourceId.SubscriptionId == "" { - return nil, fmt.Errorf("ID was missing the 'subscriptions' element") - } - - if resourceId.ResourceGroup == "" { - return nil, fmt.Errorf("ID was missing the 'resourceGroups' element") - } - - if resourceId.Name, err = id.PopSegment("vpnGateways"); err != nil { - return nil, err - } - - if err := id.ValidateNoEmptySegments(input); err != nil { - return nil, err - } - - return &resourceId, nil -} diff --git a/internal/services/network/parse/vpn_gateway_test.go b/internal/services/network/parse/vpn_gateway_test.go deleted file mode 100644 index 11c088b979d6..000000000000 --- a/internal/services/network/parse/vpn_gateway_test.go +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "testing" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -var _ resourceids.Id = VpnGatewayId{} - -func TestVpnGatewayIDFormatter(t *testing.T) { - actual := NewVpnGatewayID("12345678-1234-9876-4563-123456789012", "resGroup1", "vpnGateway1").ID() - expected := "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/vpnGateways/vpnGateway1" - if actual != expected { - t.Fatalf("Expected %q but got %q", expected, actual) - } -} - -func TestVpnGatewayID(t *testing.T) { - testData := []struct { - Input string - Error bool - Expected *VpnGatewayId - }{ - - { - // empty - Input: "", - Error: true, - }, - - { - // missing SubscriptionId - Input: "/", - Error: true, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Error: true, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Error: true, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Error: true, - }, - - { - // missing Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/", - Error: true, - }, - - { - // missing value for Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/vpnGateways/", - Error: true, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/vpnGateways/vpnGateway1", - Expected: &VpnGatewayId{ - SubscriptionId: "12345678-1234-9876-4563-123456789012", - ResourceGroup: "resGroup1", - Name: "vpnGateway1", - }, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.NETWORK/VPNGATEWAYS/VPNGATEWAY1", - Error: true, - }, - } - - for _, v := range testData { - t.Logf("[DEBUG] Testing %q", v.Input) - - actual, err := VpnGatewayID(v.Input) - if err != nil { - if v.Error { - continue - } - - t.Fatalf("Expect a value but got an error: %s", err) - } - if v.Error { - t.Fatal("Expect an error but didn't get one") - } - - if actual.SubscriptionId != v.Expected.SubscriptionId { - t.Fatalf("Expected %q but got %q for SubscriptionId", v.Expected.SubscriptionId, actual.SubscriptionId) - } - if actual.ResourceGroup != v.Expected.ResourceGroup { - t.Fatalf("Expected %q but got %q for ResourceGroup", v.Expected.ResourceGroup, actual.ResourceGroup) - } - if actual.Name != v.Expected.Name { - t.Fatalf("Expected %q but got %q for Name", v.Expected.Name, actual.Name) - } - } -} diff --git a/internal/services/network/resourceids.go b/internal/services/network/resourceids.go index 655ca5b838c2..fb3b510e8887 100644 --- a/internal/services/network/resourceids.go +++ b/internal/services/network/resourceids.go @@ -54,7 +54,6 @@ package network //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=VirtualHub -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/virtualHubs/virtualHub1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=VirtualHubIpConfiguration -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/virtualHubs/virtualHub1/ipConfigurations/ipConfiguration1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=VirtualWan -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/virtualWans/virtualWan1 -//go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=VpnGateway -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/vpnGateways/vpnGateway1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=PointToSiteVpnGateway -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/p2sVpnGateways/pointToSite1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=VpnConnection -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/vpnGateways/vpnGateway1/vpnConnections/vpnConnection1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=VpnGatewayNatRule -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/vpnGateways/vpnGateway1/natRules/natRule1 diff --git a/internal/services/network/validate/vpn_gateway_id.go b/internal/services/network/validate/vpn_gateway_id.go deleted file mode 100644 index 1f61200e9cb7..000000000000 --- a/internal/services/network/validate/vpn_gateway_id.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "fmt" - - "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/parse" -) - -func VpnGatewayID(input interface{}, key string) (warnings []string, errors []error) { - v, ok := input.(string) - if !ok { - errors = append(errors, fmt.Errorf("expected %q to be a string", key)) - return - } - - if _, err := parse.VpnGatewayID(v); err != nil { - errors = append(errors, err) - } - - return -} diff --git a/internal/services/network/validate/vpn_gateway_id_test.go b/internal/services/network/validate/vpn_gateway_id_test.go deleted file mode 100644 index 1aad6a16af13..000000000000 --- a/internal/services/network/validate/vpn_gateway_id_test.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import "testing" - -func TestVpnGatewayID(t *testing.T) { - cases := []struct { - Input string - Valid bool - }{ - - { - // empty - Input: "", - Valid: false, - }, - - { - // missing SubscriptionId - Input: "/", - Valid: false, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Valid: false, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Valid: false, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Valid: false, - }, - - { - // missing Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/", - Valid: false, - }, - - { - // missing value for Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/vpnGateways/", - Valid: false, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/vpnGateways/vpnGateway1", - Valid: true, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.NETWORK/VPNGATEWAYS/VPNGATEWAY1", - Valid: false, - }, - } - for _, tc := range cases { - t.Logf("[DEBUG] Testing Value %s", tc.Input) - _, errors := VpnGatewayID(tc.Input, "test") - valid := len(errors) == 0 - - if tc.Valid != valid { - t.Fatalf("Expected %t but got %t", tc.Valid, valid) - } - } -} diff --git a/internal/services/network/vpn_gateway_connection_resource.go b/internal/services/network/vpn_gateway_connection_resource.go index 413c44a9386e..d107375b097d 100644 --- a/internal/services/network/vpn_gateway_connection_resource.go +++ b/internal/services/network/vpn_gateway_connection_resource.go @@ -15,7 +15,6 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" @@ -54,7 +53,7 @@ func resourceVPNGatewayConnection() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ForceNew: true, - ValidateFunc: validate.VpnGatewayID, + ValidateFunc: virtualwans.ValidateVpnGatewayID, }, "remote_vpn_site_id": { @@ -336,12 +335,12 @@ func resourceVpnGatewayConnectionResourceCreateUpdate(d *pluginsdk.ResourceData, defer cancel() name := d.Get("name").(string) - gatewayId, err := parse.VpnGatewayID(d.Get("vpn_gateway_id").(string)) + gatewayId, err := virtualwans.ParseVpnGatewayID(d.Get("vpn_gateway_id").(string)) if err != nil { return err } - id := commonids.NewVPNConnectionID(gatewayId.SubscriptionId, gatewayId.ResourceGroup, gatewayId.Name, name) + id := commonids.NewVPNConnectionID(gatewayId.SubscriptionId, gatewayId.ResourceGroupName, gatewayId.VpnGatewayName, name) if d.IsNewResource() { resp, err := client.VpnConnectionsGet(ctx, id) if err != nil { @@ -355,8 +354,8 @@ func resourceVpnGatewayConnectionResourceCreateUpdate(d *pluginsdk.ResourceData, } } - locks.ByName(gatewayId.Name, VPNGatewayResourceName) - defer locks.UnlockByName(gatewayId.Name, VPNGatewayResourceName) + locks.ByName(gatewayId.VpnGatewayName, VPNGatewayResourceName) + defer locks.UnlockByName(gatewayId.VpnGatewayName, VPNGatewayResourceName) payload := virtualwans.VpnConnection{ Properties: &virtualwans.VpnConnectionProperties{ @@ -403,7 +402,7 @@ func resourceVpnGatewayConnectionResourceRead(d *pluginsdk.ResourceData, meta in } d.Set("name", id.ConnectionName) - d.Set("vpn_gateway_id", parse.NewVpnGatewayID(id.SubscriptionId, id.ResourceGroupName, id.GatewayName).ID()) + d.Set("vpn_gateway_id", virtualwans.NewVpnGatewayID(id.SubscriptionId, id.ResourceGroupName, id.GatewayName).ID()) if model := resp.Model; model != nil { if props := model.Properties; props != nil { diff --git a/internal/services/network/vpn_gateway_data_source.go b/internal/services/network/vpn_gateway_data_source.go index 67846b048b8f..a68e684e5f38 100644 --- a/internal/services/network/vpn_gateway_data_source.go +++ b/internal/services/network/vpn_gateway_data_source.go @@ -7,15 +7,15 @@ import ( "fmt" "time" + "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" - "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" + "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/virtualwans" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/parse" - "github.com/hashicorp/terraform-provider-azurerm/internal/tags" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" "github.com/hashicorp/terraform-provider-azurerm/utils" - "github.com/tombuildsstuff/kermit/sdk/network/2022-07-01/network" ) func dataSourceVPNGateway() *pluginsdk.Resource { @@ -143,58 +143,62 @@ func dataSourceVPNGateway() *pluginsdk.Resource { Computed: true, }, - "tags": tags.SchemaDataSource(), + "tags": commonschema.TagsDataSource(), }, } } func dataSourceVPNGatewayRead(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Network.VpnGatewaysClient + client := meta.(*clients.Client).Network.VirtualWANs ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) subscriptionId := meta.(*clients.Client).Account.SubscriptionId defer cancel() - name := d.Get("name").(string) - resourceGroup := d.Get("resource_group_name").(string) - id := parse.NewVpnGatewayID(subscriptionId, resourceGroup, name) - resp, err := client.Get(ctx, id.ResourceGroup, id.Name) + id := virtualwans.NewVpnGatewayID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + resp, err := client.VpnGatewaysGet(ctx, id) if err != nil { - if utils.ResponseWasNotFound(resp.Response) { + if response.WasNotFound(resp.HttpResponse) { return fmt.Errorf("%s was not found", id) } - return fmt.Errorf("Error retrieving VPN Gateway %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving %s: %+v", id, err) } d.SetId(id.ID()) - d.Set("name", id.Name) - d.Set("resource_group_name", id.ResourceGroup) - if location := resp.Location; location != nil { - d.Set("location", azure.NormalizeLocation(*location)) - } - if props := resp.VpnGatewayProperties; props != nil { - if err := d.Set("bgp_settings", dataSourceFlattenVPNGatewayBGPSettings(props.BgpSettings)); err != nil { - return fmt.Errorf("Error setting `bgp_settings`: %+v", err) - } + d.Set("name", id.VpnGatewayName) + d.Set("resource_group_name", id.ResourceGroupName) - scaleUnit := 0 - if props.VpnGatewayScaleUnit != nil { - scaleUnit = int(*props.VpnGatewayScaleUnit) - } - d.Set("scale_unit", scaleUnit) + if model := resp.Model; model != nil { + d.Set("location", location.Normalize(model.Location)) + + if props := model.Properties; props != nil { + if err := d.Set("bgp_settings", dataSourceFlattenVPNGatewayBGPSettings(props.BgpSettings)); err != nil { + return fmt.Errorf("Error setting `bgp_settings`: %+v", err) + } + + scaleUnit := 0 + if props.VpnGatewayScaleUnit != nil { + scaleUnit = int(*props.VpnGatewayScaleUnit) + } + d.Set("scale_unit", scaleUnit) + + virtualHubId := "" + if props.VirtualHub != nil && props.VirtualHub.Id != nil { + virtualHubId = *props.VirtualHub.Id + } + d.Set("virtual_hub_id", virtualHubId) - virtualHubId := "" - if props.VirtualHub != nil && props.VirtualHub.ID != nil { - virtualHubId = *props.VirtualHub.ID + if err := tags.FlattenAndSet(d, model.Tags); err != nil { + return err + } } - d.Set("virtual_hub_id", virtualHubId) } - return tags.FlattenAndSet(d, resp.Tags) + return nil } -func dataSourceFlattenVPNGatewayBGPSettings(input *network.BgpSettings) []interface{} { +func dataSourceFlattenVPNGatewayBGPSettings(input *virtualwans.BgpSettings) []interface{} { if input == nil { return []interface{}{} } @@ -233,10 +237,10 @@ func dataSourceFlattenVPNGatewayBGPSettings(input *network.BgpSettings) []interf } } -func dataSourceFlattenVPNGatewayIPConfigurationBgpPeeringAddress(input network.IPConfigurationBgpPeeringAddress) []interface{} { +func dataSourceFlattenVPNGatewayIPConfigurationBgpPeeringAddress(input virtualwans.IPConfigurationBgpPeeringAddress) []interface{} { ipConfigurationID := "" - if input.IpconfigurationID != nil { - ipConfigurationID = *input.IpconfigurationID + if input.IPconfigurationId != nil { + ipConfigurationID = *input.IPconfigurationId } return []interface{}{ diff --git a/internal/services/network/vpn_gateway_nat_rule_resource.go b/internal/services/network/vpn_gateway_nat_rule_resource.go index b110d0ef4ee4..6098061f8c0e 100644 --- a/internal/services/network/vpn_gateway_nat_rule_resource.go +++ b/internal/services/network/vpn_gateway_nat_rule_resource.go @@ -8,12 +8,13 @@ import ( "log" "time" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/virtualwans" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/features" "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/parse" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" @@ -48,13 +49,14 @@ func resourceVPNGatewayNatRule() *pluginsdk.Resource { ValidateFunc: validation.StringIsNotEmpty, }, + // TODO: we should be able to remove this in 4.0 since it can be inferred from `vpn_gateway_id`? "resource_group_name": commonschema.ResourceGroupName(), "vpn_gateway_id": { Type: pluginsdk.TypeString, Required: true, ForceNew: true, - ValidateFunc: validate.VpnGatewayID, + ValidateFunc: virtualwans.ValidateVpnGatewayID, }, "external_mapping": { @@ -201,12 +203,12 @@ func resourceVPNGatewayNatRuleCreate(d *pluginsdk.ResourceData, meta interface{} ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() - vpnGatewayId, err := parse.VpnGatewayID(d.Get("vpn_gateway_id").(string)) + vpnGatewayId, err := virtualwans.ParseVpnGatewayID(d.Get("vpn_gateway_id").(string)) if err != nil { return err } - id := parse.NewVpnGatewayNatRuleID(subscriptionId, d.Get("resource_group_name").(string), vpnGatewayId.Name, d.Get("name").(string)) + id := parse.NewVpnGatewayNatRuleID(subscriptionId, d.Get("resource_group_name").(string), vpnGatewayId.VpnGatewayName, d.Get("name").(string)) existing, err := client.Get(ctx, id.ResourceGroup, id.VpnGatewayName, id.NatRuleName) if err != nil { @@ -284,7 +286,7 @@ func resourceVPNGatewayNatRuleRead(d *pluginsdk.ResourceData, meta interface{}) d.Set("name", id.NatRuleName) d.Set("resource_group_name", id.ResourceGroup) - gatewayId := parse.NewVpnGatewayID(id.SubscriptionId, id.ResourceGroup, id.VpnGatewayName) + gatewayId := virtualwans.NewVpnGatewayID(id.SubscriptionId, id.ResourceGroup, id.VpnGatewayName) d.Set("vpn_gateway_id", gatewayId.ID()) if props := resp.VpnGatewayNatRuleProperties; props != nil { @@ -320,12 +322,12 @@ func resourceVPNGatewayNatRuleUpdate(d *pluginsdk.ResourceData, meta interface{} ctx, cancel := timeouts.ForUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - vpnGatewayId, err := parse.VpnGatewayID(d.Get("vpn_gateway_id").(string)) + vpnGatewayId, err := virtualwans.ParseVpnGatewayID(d.Get("vpn_gateway_id").(string)) if err != nil { return err } - id := parse.NewVpnGatewayNatRuleID(subscriptionId, d.Get("resource_group_name").(string), vpnGatewayId.Name, d.Get("name").(string)) + id := parse.NewVpnGatewayNatRuleID(subscriptionId, d.Get("resource_group_name").(string), vpnGatewayId.VpnGatewayName, d.Get("name").(string)) existing, err := client.Get(ctx, id.ResourceGroup, id.VpnGatewayName, id.NatRuleName) if err != nil { diff --git a/internal/services/network/vpn_gateway_resource.go b/internal/services/network/vpn_gateway_resource.go index bcd68d1d7b0d..f14c7495b6c6 100644 --- a/internal/services/network/vpn_gateway_resource.go +++ b/internal/services/network/vpn_gateway_resource.go @@ -4,26 +4,25 @@ package network import ( - "context" "fmt" "log" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" - "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" + "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/virtualwans" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" commonValidate "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/validate" - "github.com/hashicorp/terraform-provider-azurerm/internal/tags" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" "github.com/hashicorp/terraform-provider-azurerm/utils" - "github.com/tombuildsstuff/kermit/sdk/network/2022-07-01/network" ) var VPNGatewayResourceName = "azurerm_vpn_gateway" @@ -35,7 +34,7 @@ func resourceVPNGateway() *pluginsdk.Resource { Update: resourceVPNGatewayUpdate, Delete: resourceVPNGatewayDelete, Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { - _, err := parse.VpnGatewayID(id) + _, err := virtualwans.ParseVpnGatewayID(id) return err }), @@ -196,130 +195,120 @@ func resourceVPNGateway() *pluginsdk.Resource { ValidateFunc: validation.IntAtLeast(0), }, - "tags": tags.Schema(), + "tags": commonschema.Tags(), }, } } func resourceVPNGatewayCreate(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Network.VpnGatewaysClient + client := meta.(*clients.Client).Network.VirtualWANs subscriptionId := meta.(*clients.Client).Account.SubscriptionId ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() - id := parse.NewVpnGatewayID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) - - existing, err := client.Get(ctx, id.ResourceGroup, id.Name) + id := virtualwans.NewVpnGatewayID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + existing, err := client.VpnGatewaysGet(ctx, id) if err != nil { - if !utils.ResponseWasNotFound(existing.Response) { + if !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for presence of existing %s: %+v", id, err) } } - if !utils.ResponseWasNotFound(existing.Response) { + if !response.WasNotFound(existing.HttpResponse) { return tf.ImportAsExistsError("azurerm_vpn_gateway", id.ID()) } bgpSettingsRaw := d.Get("bgp_settings").([]interface{}) bgpSettings := expandVPNGatewayBGPSettings(bgpSettingsRaw) - - location := azure.NormalizeLocation(d.Get("location").(string)) - scaleUnit := d.Get("scale_unit").(int) - virtualHubId := d.Get("virtual_hub_id").(string) - t := d.Get("tags").(map[string]interface{}) - - parameters := network.VpnGateway{ - Location: utils.String(location), - VpnGatewayProperties: &network.VpnGatewayProperties{ - EnableBgpRouteTranslationForNat: utils.Bool(d.Get("bgp_route_translation_for_nat_enabled").(bool)), + payload := virtualwans.VpnGateway{ + Location: location.Normalize(d.Get("location").(string)), + Properties: &virtualwans.VpnGatewayProperties{ + EnableBgpRouteTranslationForNat: pointer.To(d.Get("bgp_route_translation_for_nat_enabled").(bool)), BgpSettings: bgpSettings, - VirtualHub: &network.SubResource{ - ID: utils.String(virtualHubId), + VirtualHub: &virtualwans.SubResource{ + Id: utils.String(d.Get("virtual_hub_id").(string)), }, - VpnGatewayScaleUnit: utils.Int32(int32(scaleUnit)), - IsRoutingPreferenceInternet: utils.Bool(d.Get("routing_preference").(string) == "Internet"), + VpnGatewayScaleUnit: pointer.To(int64(d.Get("scale_unit").(int))), + IsRoutingPreferenceInternet: pointer.To(d.Get("routing_preference").(string) == "Internet"), }, - Tags: tags.Expand(t), + Tags: tags.Expand(d.Get("tags").(map[string]interface{})), } - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.Name, parameters) - if err != nil { + if err := client.VpnGatewaysCreateOrUpdateThenPoll(ctx, id, payload); err != nil { return fmt.Errorf("creating %s: %+v", id, err) } - - if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for creation/update of %q: %+v", id, err) - } - if err := waitForCompletion(d, ctx, client, id.ResourceGroup, id.Name); err != nil { - return err - } - resp, err := client.Get(ctx, id.ResourceGroup, id.Name) - if err != nil { - return fmt.Errorf("retrieving %s: %+v", id, err) - } + d.SetId(id.ID()) // `vpnGatewayParameters.Properties.bgpSettings.bgpPeeringAddress` customer cannot provide this field during create. This will be set with default value once gateway is created. // it could only be updated - if len(bgpSettingsRaw) > 0 && resp.VpnGatewayProperties != nil && resp.VpnGatewayProperties.BgpSettings != nil && resp.VpnGatewayProperties.BgpSettings.BgpPeeringAddresses != nil { - val := bgpSettingsRaw[0].(map[string]interface{}) - input0 := val["instance_0_bgp_peering_address"].([]interface{}) - input1 := val["instance_1_bgp_peering_address"].([]interface{}) + if len(bgpSettingsRaw) > 0 { + resp, err := client.VpnGatewaysGet(ctx, id) + if err != nil { + return fmt.Errorf("retrieving %s: %+v", id, err) + } + if resp.Model == nil || resp.Model.Properties == nil { + return fmt.Errorf("retrieving %s: `model.Properties` was nil", id) + } + props := resp.Model.Properties - if len(input0) > 0 || len(input1) > 0 { - if len(input0) > 0 { - val := input0[0].(map[string]interface{}) - (*resp.VpnGatewayProperties.BgpSettings.BgpPeeringAddresses)[0].CustomBgpIPAddresses = utils.ExpandStringSlice(val["custom_ips"].(*pluginsdk.Set).List()) - } - if len(input1) > 0 { - val := input1[0].(map[string]interface{}) - (*resp.VpnGatewayProperties.BgpSettings.BgpPeeringAddresses)[1].CustomBgpIPAddresses = utils.ExpandStringSlice(val["custom_ips"].(*pluginsdk.Set).List()) - } + if props.BgpSettings != nil && props.BgpSettings.BgpPeeringAddresses != nil { - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.Name, resp) - if err != nil { - return fmt.Errorf("creating %s: %+v", id, err) - } + val := bgpSettingsRaw[0].(map[string]interface{}) + input0 := val["instance_0_bgp_peering_address"].([]interface{}) + input1 := val["instance_1_bgp_peering_address"].([]interface{}) - if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for creation/update of %q: %+v", id, err) - } - if err := waitForCompletion(d, ctx, client, id.ResourceGroup, id.Name); err != nil { - return err + if len(input0) > 0 || len(input1) > 0 { + if len(input0) > 0 && input0[0] != nil { + val := input0[0].(map[string]interface{}) + (*props.BgpSettings.BgpPeeringAddresses)[0].CustomBgpIPAddresses = utils.ExpandStringSlice(val["custom_ips"].(*pluginsdk.Set).List()) + } + if len(input1) > 0 && input1[0] != nil { + val := input1[0].(map[string]interface{}) + (*props.BgpSettings.BgpPeeringAddresses)[1].CustomBgpIPAddresses = utils.ExpandStringSlice(val["custom_ips"].(*pluginsdk.Set).List()) + } + + resp.Model.Properties = props + + if err := client.VpnGatewaysCreateOrUpdateThenPoll(ctx, id, *resp.Model); err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } } } } - d.SetId(id.ID()) - return resourceVPNGatewayRead(d, meta) } func resourceVPNGatewayUpdate(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Network.VpnGatewaysClient + client := meta.(*clients.Client).Network.VirtualWANs ctx, cancel := timeouts.ForUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VpnGatewayID(d.Id()) + id, err := virtualwans.ParseVpnGatewayID(d.Id()) if err != nil { return err } - locks.ByName(id.Name, VPNGatewayResourceName) - defer locks.UnlockByName(id.Name, VPNGatewayResourceName) + locks.ByName(id.VpnGatewayName, VPNGatewayResourceName) + defer locks.UnlockByName(id.VpnGatewayName, VPNGatewayResourceName) - existing, err := client.Get(ctx, id.ResourceGroup, id.Name) + existing, err := client.VpnGatewaysGet(ctx, *id) if err != nil { - return fmt.Errorf("retrieving for presence of existing %s: %+v", id, err) + return fmt.Errorf("retrieving %s: %+v", *id, err) + } + if existing.Model == nil || existing.Model.Properties == nil { + return fmt.Errorf("retrieving %s: `model.Properties` was nil", *id) } + model := *existing.Model if d.HasChange("scale_unit") { - existing.VpnGatewayScaleUnit = utils.Int32(int32(d.Get("scale_unit").(int))) + model.Properties.VpnGatewayScaleUnit = pointer.To(int64(d.Get("scale_unit").(int))) } if d.HasChange("tags") { - existing.Tags = tags.Expand(d.Get("tags").(map[string]interface{})) + model.Tags = tags.Expand(d.Get("tags").(map[string]interface{})) } if d.HasChange("bgp_route_translation_for_nat_enabled") { - existing.EnableBgpRouteTranslationForNat = utils.Bool(d.Get("bgp_route_translation_for_nat_enabled").(bool)) + model.Properties.EnableBgpRouteTranslationForNat = utils.Bool(d.Get("bgp_route_translation_for_nat_enabled").(bool)) } bgpSettingsRaw := d.Get("bgp_settings").([]interface{}) @@ -329,45 +318,37 @@ func resourceVPNGatewayUpdate(d *pluginsdk.ResourceData, meta interface{}) error if d.HasChange("bgp_settings.0.instance_0_bgp_peering_address") { if input := val["instance_0_bgp_peering_address"].([]interface{}); len(input) > 0 { val := input[0].(map[string]interface{}) - (*existing.VpnGatewayProperties.BgpSettings.BgpPeeringAddresses)[0].CustomBgpIPAddresses = utils.ExpandStringSlice(val["custom_ips"].(*pluginsdk.Set).List()) + (*model.Properties.BgpSettings.BgpPeeringAddresses)[0].CustomBgpIPAddresses = utils.ExpandStringSlice(val["custom_ips"].(*pluginsdk.Set).List()) } } if d.HasChange("bgp_settings.0.instance_1_bgp_peering_address") { if input := val["instance_1_bgp_peering_address"].([]interface{}); len(input) > 0 { val := input[0].(map[string]interface{}) - (*existing.VpnGatewayProperties.BgpSettings.BgpPeeringAddresses)[1].CustomBgpIPAddresses = utils.ExpandStringSlice(val["custom_ips"].(*pluginsdk.Set).List()) + (*model.Properties.BgpSettings.BgpPeeringAddresses)[1].CustomBgpIPAddresses = utils.ExpandStringSlice(val["custom_ips"].(*pluginsdk.Set).List()) } } } - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.Name, existing) - if err != nil { - return fmt.Errorf("creating %s: %+v", id, err) - } - - if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for creation/update of %q: %+v", id, err) - } - if err := waitForCompletion(d, ctx, client, id.ResourceGroup, id.Name); err != nil { - return err + if err := client.VpnGatewaysCreateOrUpdateThenPoll(ctx, *id, model); err != nil { + return fmt.Errorf("updating %s: %+v", id, err) } return resourceVPNGatewayRead(d, meta) } func resourceVPNGatewayRead(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Network.VpnGatewaysClient + client := meta.(*clients.Client).Network.VirtualWANs ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VpnGatewayID(d.Id()) + id, err := virtualwans.ParseVpnGatewayID(d.Id()) if err != nil { return err } - resp, err := client.Get(ctx, id.ResourceGroup, id.Name) + resp, err := client.VpnGatewaysGet(ctx, *id) if err != nil { - if utils.ResponseWasNotFound(resp.Response) { + if response.WasNotFound(resp.HttpResponse) { log.Printf("[DEBUG] %s was not found - removing from state", *id) d.SetId("") return nil @@ -376,113 +357,80 @@ func resourceVPNGatewayRead(d *pluginsdk.ResourceData, meta interface{}) error { return fmt.Errorf("retrieving %s: %+v", *id, err) } - d.Set("name", id.Name) - d.Set("resource_group_name", id.ResourceGroup) - if location := resp.Location; location != nil { - d.Set("location", azure.NormalizeLocation(*location)) - } + d.Set("name", id.VpnGatewayName) + d.Set("resource_group_name", id.ResourceGroupName) - if props := resp.VpnGatewayProperties; props != nil { - if err := d.Set("bgp_settings", flattenVPNGatewayBGPSettings(props.BgpSettings)); err != nil { - return fmt.Errorf("setting `bgp_settings`: %+v", err) - } + if model := resp.Model; model != nil { + d.Set("location", location.Normalize(model.Location)) - bgpRouteTranslationForNatEnabled := false - if props.EnableBgpRouteTranslationForNat != nil { - bgpRouteTranslationForNatEnabled = *props.EnableBgpRouteTranslationForNat - } - d.Set("bgp_route_translation_for_nat_enabled", bgpRouteTranslationForNatEnabled) + if props := model.Properties; props != nil { + if err := d.Set("bgp_settings", flattenVPNGatewayBGPSettings(props.BgpSettings)); err != nil { + return fmt.Errorf("setting `bgp_settings`: %+v", err) + } - scaleUnit := 0 - if props.VpnGatewayScaleUnit != nil { - scaleUnit = int(*props.VpnGatewayScaleUnit) - } - d.Set("scale_unit", scaleUnit) + bgpRouteTranslationForNatEnabled := false + if props.EnableBgpRouteTranslationForNat != nil { + bgpRouteTranslationForNatEnabled = *props.EnableBgpRouteTranslationForNat + } + d.Set("bgp_route_translation_for_nat_enabled", bgpRouteTranslationForNatEnabled) - virtualHubId := "" - if props.VirtualHub != nil && props.VirtualHub.ID != nil { - virtualHubId = *props.VirtualHub.ID + scaleUnit := 0 + if props.VpnGatewayScaleUnit != nil { + scaleUnit = int(*props.VpnGatewayScaleUnit) + } + d.Set("scale_unit", scaleUnit) + + virtualHubId := "" + if props.VirtualHub != nil && props.VirtualHub.Id != nil { + virtualHubId = *props.VirtualHub.Id + } + d.Set("virtual_hub_id", virtualHubId) + + isRoutingPreferenceInternet := "Microsoft Network" + if props.IsRoutingPreferenceInternet != nil && *props.IsRoutingPreferenceInternet { + isRoutingPreferenceInternet = "Internet" + } + d.Set("routing_preference", isRoutingPreferenceInternet) } - d.Set("virtual_hub_id", virtualHubId) - isRoutingPreferenceInternet := "Microsoft Network" - if props.IsRoutingPreferenceInternet != nil && *props.IsRoutingPreferenceInternet { - isRoutingPreferenceInternet = "Internet" + if err := tags.FlattenAndSet(d, model.Tags); err != nil { + return err } - d.Set("routing_preference", isRoutingPreferenceInternet) } - return tags.FlattenAndSet(d, resp.Tags) + return nil } func resourceVPNGatewayDelete(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Network.VpnGatewaysClient + client := meta.(*clients.Client).Network.VirtualWANs ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VpnGatewayID(d.Id()) + id, err := virtualwans.ParseVpnGatewayID(d.Id()) if err != nil { return err } - deleteFuture, err := client.Delete(ctx, id.ResourceGroup, id.Name) - if err != nil { - if response.WasNotFound(deleteFuture.Response()) { - return nil - } - + if err := client.VpnGatewaysDeleteThenPoll(ctx, *id); err != nil { return fmt.Errorf("deleting %s: %+v", *id, err) } - err = deleteFuture.WaitForCompletionRef(ctx, client.Client) - if err != nil { - if response.WasNotFound(deleteFuture.Response()) { - return nil - } - - return fmt.Errorf("waiting for deletion of %s: %+v", *id, err) - } - - return nil -} - -func waitForCompletion(d *pluginsdk.ResourceData, ctx context.Context, client *network.VpnGatewaysClient, resourceGroup, name string) error { - log.Printf("[DEBUG] Waiting for Virtual Hub %q (Resource Group %q) to become available", name, resourceGroup) - stateConf := &pluginsdk.StateChangeConf{ - Pending: []string{"pending"}, - Target: []string{"available"}, - Refresh: vpnGatewayWaitForCreatedRefreshFunc(ctx, client, resourceGroup, name), - Delay: 30 * time.Second, - PollInterval: 10 * time.Second, - ContinuousTargetOccurence: 3, - } - - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(pluginsdk.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(pluginsdk.TimeoutUpdate) - } - - if _, err := stateConf.WaitForStateContext(ctx); err != nil { - return fmt.Errorf("waiting for creation of Virtual Hub %q (Resource Group %q): %+v", name, resourceGroup, err) - } - return nil } -func expandVPNGatewayBGPSettings(input []interface{}) *network.BgpSettings { +func expandVPNGatewayBGPSettings(input []interface{}) *virtualwans.BgpSettings { if len(input) == 0 { return nil } val := input[0].(map[string]interface{}) - return &network.BgpSettings{ - Asn: utils.Int64(int64(val["asn"].(int))), - PeerWeight: utils.Int32(int32(val["peer_weight"].(int))), + return &virtualwans.BgpSettings{ + Asn: pointer.To(int64(val["asn"].(int))), + PeerWeight: pointer.To(int64(val["peer_weight"].(int))), } } -func flattenVPNGatewayBGPSettings(input *network.BgpSettings) []interface{} { +func flattenVPNGatewayBGPSettings(input *virtualwans.BgpSettings) []interface{} { if input == nil { return []interface{}{} } @@ -521,10 +469,10 @@ func flattenVPNGatewayBGPSettings(input *network.BgpSettings) []interface{} { } } -func flattenVPNGatewayIPConfigurationBgpPeeringAddress(input network.IPConfigurationBgpPeeringAddress) []interface{} { +func flattenVPNGatewayIPConfigurationBgpPeeringAddress(input virtualwans.IPConfigurationBgpPeeringAddress) []interface{} { ipConfigurationID := "" - if input.IpconfigurationID != nil { - ipConfigurationID = *input.IpconfigurationID + if input.IPconfigurationId != nil { + ipConfigurationID = *input.IPconfigurationId } return []interface{}{ @@ -536,32 +484,3 @@ func flattenVPNGatewayIPConfigurationBgpPeeringAddress(input network.IPConfigura }, } } - -func vpnGatewayWaitForCreatedRefreshFunc(ctx context.Context, client *network.VpnGatewaysClient, resourceGroup, name string) pluginsdk.StateRefreshFunc { - return func() (interface{}, string, error) { - log.Printf("[DEBUG] Checking to see if VPN Gateway %q (Resource Group %q) has finished provisioning..", name, resourceGroup) - - resp, err := client.Get(ctx, resourceGroup, name) - if err != nil { - log.Printf("[DEBUG] Error retrieving VPN Gateway %q (Resource Group %q): %+v", name, resourceGroup, err) - return nil, "error", fmt.Errorf("retrieving VPN Gateway %q (Resource Group %q): %+v", name, resourceGroup, err) - } - - if resp.VpnGatewayProperties == nil { - log.Printf("[DEBUG] Error retrieving VPN Gateway %q (Resource Group %q): `properties` was nil", name, resourceGroup) - return nil, "error", fmt.Errorf("retrieving VPN Gateway %q (Resource Group %q): `properties` was nil", name, resourceGroup) - } - - log.Printf("[DEBUG] VPN Gateway %q (Resource Group %q) is %q..", name, resourceGroup, string(resp.VpnGatewayProperties.ProvisioningState)) - switch resp.VpnGatewayProperties.ProvisioningState { - case network.ProvisioningStateSucceeded: - return "available", "available", nil - - case network.ProvisioningStateFailed: - return "error", "error", fmt.Errorf("VPN Gateway %q (Resource Group %q) is in provisioningState `Failed`", name, resourceGroup) - - default: - return "pending", "pending", nil - } - } -} diff --git a/internal/services/network/vpn_gateway_resource_test.go b/internal/services/network/vpn_gateway_resource_test.go index 52d6a6ae9ad8..a688d61355eb 100644 --- a/internal/services/network/vpn_gateway_resource_test.go +++ b/internal/services/network/vpn_gateway_resource_test.go @@ -8,10 +8,10 @@ import ( "fmt" "testing" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/virtualwans" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" ) @@ -170,17 +170,17 @@ func TestAccVPNGateway_bgpRouteTranslationForNatEnabled(t *testing.T) { } func (t VPNGatewayResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { - id, err := parse.VpnGatewayID(state.ID) + id, err := virtualwans.ParseVpnGatewayID(state.ID) if err != nil { return nil, err } - resp, err := clients.Network.VpnGatewaysClient.Get(ctx, id.ResourceGroup, id.Name) + resp, err := clients.Network.VirtualWANs.VpnGatewaysGet(ctx, *id) if err != nil { - return nil, fmt.Errorf("reading VPN Gateway (%s): %+v", id, err) + return nil, fmt.Errorf("retrieving %s: %+v", id, err) } - return utils.Bool(resp.ID != nil), nil + return utils.Bool(resp.Model != nil), nil } func (r VPNGatewayResource) basic(data acceptance.TestData) string { From bb89eea137fb582c9dcd9a9b61c227a07536914c Mon Sep 17 00:00:00 2001 From: Elena Xin Date: Tue, 5 Sep 2023 17:14:49 +0800 Subject: [PATCH 105/336] update code --- internal/services/securitycenter/client/client.go | 6 +++--- .../security_center_assessment_policy_resource.go | 4 ++-- .../security_center_assessment_policy_resource_test.go | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/services/securitycenter/client/client.go b/internal/services/securitycenter/client/client.go index 50168d975ccc..938e0365b379 100644 --- a/internal/services/securitycenter/client/client.go +++ b/internal/services/securitycenter/client/client.go @@ -5,14 +5,14 @@ package client import ( "github.com/Azure/azure-sdk-for-go/services/preview/security/mgmt/v3.0/security" // nolint: staticcheck - assessmentsmetadata_v2021_06_01 "github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata" + "github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata" pricings_v2023_01_01 "github.com/hashicorp/go-azure-sdk/resource-manager/security/2023-01-01/pricings" "github.com/hashicorp/terraform-provider-azurerm/internal/common" ) type Client struct { AssessmentsClient *security.AssessmentsClient - AssessmentsMetadataClient *assessmentsmetadata_v2021_06_01.AssessmentsMetadataClient + AssessmentsMetadataClient *assessmentsmetadata.AssessmentsMetadataClient ContactsClient *security.ContactsClient DeviceSecurityGroupsClient *security.DeviceSecurityGroupsClient IotSecuritySolutionClient *security.IotSecuritySolutionClient @@ -31,7 +31,7 @@ func NewClient(o *common.ClientOptions) *Client { AssessmentsClient := security.NewAssessmentsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId, ascLocation) o.ConfigureClient(&AssessmentsClient.Client, o.ResourceManagerAuthorizer) - AssessmentsMetadataClient := assessmentsmetadata_v2021_06_01.NewAssessmentsMetadataClientWithBaseURI(o.ResourceManagerEndpoint) + AssessmentsMetadataClient := assessmentsmetadata.NewAssessmentsMetadataClientWithBaseURI(o.ResourceManagerEndpoint) o.ConfigureClient(&AssessmentsMetadataClient.Client, o.ResourceManagerAuthorizer) ContactsClient := security.NewContactsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId, ascLocation) diff --git a/internal/services/securitycenter/security_center_assessment_policy_resource.go b/internal/services/securitycenter/security_center_assessment_policy_resource.go index dc0dd21e8433..0d7098f58c4b 100644 --- a/internal/services/securitycenter/security_center_assessment_policy_resource.go +++ b/internal/services/securitycenter/security_center_assessment_policy_resource.go @@ -177,7 +177,7 @@ func resourceArmSecurityCenterAssessmentPolicyCreate(d *pluginsdk.ResourceData, if v, ok := d.GetOk("threats"); ok { threats := make([]assessmentsmetadata.Threats, 0) for _, item := range v.(*pluginsdk.Set).List() { - threats = append(threats, (assessmentsmetadata.Threats)(item.(string))) + threats = append(threats, assessmentsmetadata.Threats(item.(string))) } params.Properties.Threats = &threats } @@ -288,7 +288,7 @@ func resourceArmSecurityCenterAssessmentPolicyUpdate(d *pluginsdk.ResourceData, if d.HasChange("categories") { categories := make([]assessmentsmetadata.Categories, 0) for _, item := range d.Get("categories").(*pluginsdk.Set).List() { - categories = append(categories, (assessmentsmetadata.Categories)(item.(string))) + categories = append(categories, assessmentsmetadata.Categories(item.(string))) } existing.Model.Properties.Categories = &categories } diff --git a/internal/services/securitycenter/security_center_assessment_policy_resource_test.go b/internal/services/securitycenter/security_center_assessment_policy_resource_test.go index 00f5e4bb0e88..ef7f887ea58c 100644 --- a/internal/services/securitycenter/security_center_assessment_policy_resource_test.go +++ b/internal/services/securitycenter/security_center_assessment_policy_resource_test.go @@ -88,7 +88,7 @@ func (r SecurityCenterAssessmentPolicyResource) Exists(ctx context.Context, clie return nil, fmt.Errorf("retrieving %q: %+v", *id, err) } - return pointer.To(resp.Model != nil && resp.Model.Properties != nil), nil + return pointer.To(resp.Model != nil), nil } func (r SecurityCenterAssessmentPolicyResource) basic() string { From 176e4988d55395950d19f9d7d8f21caa3406a089 Mon Sep 17 00:00:00 2001 From: Josh Barker Date: Tue, 5 Sep 2023 19:20:03 +1000 Subject: [PATCH 106/336] feat: allow subscription cancellation to be disabled via a feature flag (#19936) --- internal/features/defaults.go | 3 + internal/features/user_flags.go | 5 ++ internal/provider/features.go | 25 +++++++ internal/provider/features_test.go | 67 +++++++++++++++++++ .../subscription/subscription_resource.go | 20 ++++-- .../docs/guides/features-block.html.markdown | 10 +++ website/docs/r/subscription.html.markdown | 2 + 7 files changed, 125 insertions(+), 7 deletions(-) diff --git a/internal/features/defaults.go b/internal/features/defaults.go index d1d094c78ba0..133d6a01a887 100644 --- a/internal/features/defaults.go +++ b/internal/features/defaults.go @@ -53,5 +53,8 @@ func Default() UserFeatures { RollInstancesWhenRequired: true, ScaleToZeroOnDelete: true, }, + Subscription: SubscriptionFeatures{ + PreventCancellationOnDestroy: false, + }, } } diff --git a/internal/features/user_flags.go b/internal/features/user_flags.go index e91379846937..a0b1cfe9f448 100644 --- a/internal/features/user_flags.go +++ b/internal/features/user_flags.go @@ -15,6 +15,7 @@ type UserFeatures struct { LogAnalyticsWorkspace LogAnalyticsWorkspaceFeatures ResourceGroup ResourceGroupFeatures ManagedDisk ManagedDiskFeatures + Subscription SubscriptionFeatures } type CognitiveAccountFeatures struct { @@ -74,3 +75,7 @@ type AppConfigurationFeatures struct { PurgeSoftDeleteOnDestroy bool RecoverSoftDeleted bool } + +type SubscriptionFeatures struct { + PreventCancellationOnDestroy bool +} diff --git a/internal/provider/features.go b/internal/provider/features.go index bdb0cbfe3a9f..872386ce9a03 100644 --- a/internal/provider/features.go +++ b/internal/provider/features.go @@ -268,6 +268,21 @@ func schemaFeatures(supportLegacyTestSuite bool) *pluginsdk.Schema { }, }, }, + + "subscription": { + Type: pluginsdk.TypeList, + Optional: true, + MaxItems: 1, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "prevent_cancellation_on_destroy": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + }, + }, + }, } // this is a temporary hack to enable us to gradually add provider blocks to test configurations @@ -455,5 +470,15 @@ func expandFeatures(input []interface{}) features.UserFeatures { } } + if raw, ok := val["subscription"]; ok { + items := raw.([]interface{}) + if len(items) > 0 { + subscriptionRaw := items[0].(map[string]interface{}) + if v, ok := subscriptionRaw["prevent_cancellation_on_destroy"]; ok { + featuresMap.Subscription.PreventCancellationOnDestroy = v.(bool) + } + } + } + return featuresMap } diff --git a/internal/provider/features_test.go b/internal/provider/features_test.go index 1b5c2a949e68..2e35abf8a385 100644 --- a/internal/provider/features_test.go +++ b/internal/provider/features_test.go @@ -68,6 +68,9 @@ func TestExpandFeatures(t *testing.T) { ResourceGroup: features.ResourceGroupFeatures{ PreventDeletionIfContainsResources: true, }, + Subscription: features.SubscriptionFeatures{ + PreventCancellationOnDestroy: false, + }, }, }, { @@ -124,6 +127,11 @@ func TestExpandFeatures(t *testing.T) { "prevent_deletion_if_contains_resources": true, }, }, + "subscription": []interface{}{ + map[string]interface{}{ + "prevent_cancellation_on_destroy": true, + }, + }, "template_deployment": []interface{}{ map[string]interface{}{ "delete_nested_items_during_deletion": true, @@ -180,6 +188,9 @@ func TestExpandFeatures(t *testing.T) { ResourceGroup: features.ResourceGroupFeatures{ PreventDeletionIfContainsResources: true, }, + Subscription: features.SubscriptionFeatures{ + PreventCancellationOnDestroy: true, + }, TemplateDeployment: features.TemplateDeploymentFeatures{ DeleteNestedItemsDuringDeletion: true, }, @@ -249,6 +260,11 @@ func TestExpandFeatures(t *testing.T) { "prevent_deletion_if_contains_resources": false, }, }, + "subscription": []interface{}{ + map[string]interface{}{ + "prevent_cancellation_on_destroy": false, + }, + }, "template_deployment": []interface{}{ map[string]interface{}{ "delete_nested_items_during_deletion": false, @@ -305,6 +321,9 @@ func TestExpandFeatures(t *testing.T) { ResourceGroup: features.ResourceGroupFeatures{ PreventDeletionIfContainsResources: false, }, + Subscription: features.SubscriptionFeatures{ + PreventCancellationOnDestroy: false, + }, TemplateDeployment: features.TemplateDeploymentFeatures{ DeleteNestedItemsDuringDeletion: false, }, @@ -1196,3 +1215,51 @@ func TestExpandFeaturesManagedDisk(t *testing.T) { } } } + +func TestExpandFeaturesSubscription(t *testing.T) { + testData := []struct { + Name string + Input []interface{} + EnvVars map[string]interface{} + Expected features.UserFeatures + }{ + { + Name: "Empty Block", + Input: []interface{}{ + map[string]interface{}{ + "subscription": []interface{}{}, + }, + }, + Expected: features.UserFeatures{ + Subscription: features.SubscriptionFeatures{ + PreventCancellationOnDestroy: false, + }, + }, + }, + { + Name: "No Downtime Resize Enabled", + Input: []interface{}{ + map[string]interface{}{ + "subscription": []interface{}{ + map[string]interface{}{ + "prevent_cancellation_on_destroy": true, + }, + }, + }, + }, + Expected: features.UserFeatures{ + Subscription: features.SubscriptionFeatures{ + PreventCancellationOnDestroy: true, + }, + }, + }, + } + + for _, testCase := range testData { + t.Logf("[DEBUG] Test Case: %q", testCase.Name) + result := expandFeatures(testCase.Input) + if !reflect.DeepEqual(result.Subscription, testCase.Expected.Subscription) { + t.Fatalf("Expected %+v but got %+v", result.Subscription, testCase.Expected.Subscription) + } + } +} diff --git a/internal/services/subscription/subscription_resource.go b/internal/services/subscription/subscription_resource.go index a7238e610807..96ae76b8b98b 100644 --- a/internal/services/subscription/subscription_resource.go +++ b/internal/services/subscription/subscription_resource.go @@ -411,15 +411,21 @@ func resourceSubscriptionDelete(d *pluginsdk.ResourceData, meta interface{}) err } // Cancel the Subscription - if _, err := subscriptionClient.Cancel(ctx, subscriptionId); err != nil { - return fmt.Errorf("failed to cancel Subscription: %+v", err) - } + if !meta.(*clients.Client).Features.Subscription.PreventCancellationOnDestroy { + log.Printf("[DEBUG] Cancelling subscription %s", subscriptionId) - deadline, _ := ctx.Deadline() - deleteDeadline := time.Until(deadline) + if _, err := subscriptionClient.Cancel(ctx, subscriptionId); err != nil { + return fmt.Errorf("failed to cancel Subscription: %+v", err) + } - if err := waitForSubscriptionStateToSettle(ctx, meta.(*clients.Client), subscriptionId, "Cancelled", deleteDeadline); err != nil { - return fmt.Errorf("failed to cancel Subscription %q (Alias %q): %+v", subscriptionId, id.AliasName, err) + deadline, _ := ctx.Deadline() + deleteDeadline := time.Until(deadline) + + if err := waitForSubscriptionStateToSettle(ctx, meta.(*clients.Client), subscriptionId, "Cancelled", deleteDeadline); err != nil { + return fmt.Errorf("failed to cancel Subscription %q (Alias %q): %+v", subscriptionId, id.AliasName, err) + } + } else { + log.Printf("[DEBUG] Skipping subscription %s cancellation due to feature flag.", *id) } return nil diff --git a/website/docs/guides/features-block.html.markdown b/website/docs/guides/features-block.html.markdown index 2e2c41ffaf36..36ace635190a 100644 --- a/website/docs/guides/features-block.html.markdown +++ b/website/docs/guides/features-block.html.markdown @@ -62,6 +62,10 @@ provider "azurerm" { prevent_deletion_if_contains_resources = true } + subscription { + prevent_cancellation_on_destroy = false + } + template_deployment { delete_nested_items_during_deletion = true } @@ -185,6 +189,12 @@ The `resource_group` block supports the following: --- +The `subscription` block supports the following: + +* `prevent_cancellation_on_destroy` - (Optional) Should the `azurerm_subscription` resource prevent a subscription to be cancelled on destroy? Defaults to `false`. + +--- + The `template_deployment` block supports the following: * `delete_nested_items_during_deletion` - (Optional) Should the `azurerm_resource_group_template_deployment` resource attempt to delete resources that have been provisioned by the ARM Template, when the Resource Group Template Deployment is deleted? Defaults to `true`. diff --git a/website/docs/r/subscription.html.markdown b/website/docs/r/subscription.html.markdown index 4bbafff3c706..90c527a40a15 100644 --- a/website/docs/r/subscription.html.markdown +++ b/website/docs/r/subscription.html.markdown @@ -14,6 +14,8 @@ Manages an Alias for a Subscription - which adds an Alias to an existing Subscri ~> **NOTE:** It is not possible to destroy (cancel) a subscription if it contains resources. If resources are present that are not managed by Terraform then these will need to be removed before the Subscription can be destroyed. +~> **Note:** This resource will automatically attempt to cancel a subscription when it is deleted. This behavior can be disabled in the provider `features` block by setting the `prevent_cancellation_on_destroy` field to `true` within the `subscription` block. + ~> **NOTE:** Azure supports Multiple Aliases per Subscription, however, to reliably manage this resource in Terraform only a single Alias is supported. ~> **NOTE:** When using this resource across tenants the `client_id` and `tenant_id` of the `provider` config block should be for the home tenant details for the SPN / User or a permissions error will likely be encountered. See [the official documentation](https://learn.microsoft.com/en-us/azure/cost-management-billing/manage/programmatically-create-subscription) for more details. From 5be5b0a212e2875403643e7cfc6c32b3813db28c Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Tue, 5 Sep 2023 10:23:33 +0100 Subject: [PATCH 107/336] Update CHANGELOG.md for #19936 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7dcc8dac565..c2250f89710e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,8 @@ FEATURES: -* **New Resource**: `azurerm_automation_python3_package` [GH-23087] +* Provider Feature: subscription cancellation on `destroy` can now be disabled via the provider `features` block [GH-19936] +* **New Resource**: `azurerm_automation_python3_package` [GH-23087] ENHANCEMENTS: From a4518d1cf7dbecf311be1648e35f2c5079c637c2 Mon Sep 17 00:00:00 2001 From: Zhenhua Hu Date: Tue, 5 Sep 2023 20:18:23 +0800 Subject: [PATCH 108/336] add code (#23124) --- .../virtual_machine_extension_resource.go | 15 ++ ...virtual_machine_extension_resource_test.go | 138 ++++++++++++++++++ .../r/virtual_machine_extension.html.markdown | 2 + 3 files changed, 155 insertions(+) diff --git a/internal/services/compute/virtual_machine_extension_resource.go b/internal/services/compute/virtual_machine_extension_resource.go index 4d554827a8a9..95eeffe1c4ab 100644 --- a/internal/services/compute/virtual_machine_extension_resource.go +++ b/internal/services/compute/virtual_machine_extension_resource.go @@ -7,6 +7,7 @@ import ( "fmt" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" @@ -107,6 +108,15 @@ func resourceVirtualMachineExtension() *pluginsdk.Resource { "protected_settings_from_key_vault": protectedSettingsFromKeyVaultSchema(true), + "provision_after_extensions": { + Type: pluginsdk.TypeList, + Optional: true, + Elem: &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + ValidateFunc: validation.StringIsNotEmpty, + }, + }, + "tags": tags.Schema(), }, } @@ -185,6 +195,10 @@ func resourceVirtualMachineExtensionsCreateUpdate(d *pluginsdk.ResourceData, met extension.VirtualMachineExtensionProperties.ProtectedSettings = &protectedSettings } + if provisionAfterExtensionsValue, exists := d.GetOk("provision_after_extensions"); exists { + extension.ProvisionAfterExtensions = utils.ExpandStringSlice(provisionAfterExtensionsValue.([]interface{})) + } + future, err := vmExtensionClient.CreateOrUpdate(ctx, id.ResourceGroup, id.VirtualMachineName, id.ExtensionName, extension) if err != nil { return err @@ -239,6 +253,7 @@ func resourceVirtualMachineExtensionsRead(d *pluginsdk.ResourceData, meta interf d.Set("auto_upgrade_minor_version", props.AutoUpgradeMinorVersion) d.Set("automatic_upgrade_enabled", props.EnableAutomaticUpgrade) d.Set("protected_settings_from_key_vault", flattenProtectedSettingsFromKeyVault(props.ProtectedSettingsFromKeyVault)) + d.Set("provision_after_extensions", pointer.From(props.ProvisionAfterExtensions)) suppressFailure := false if props.SuppressFailures != nil { diff --git a/internal/services/compute/virtual_machine_extension_resource_test.go b/internal/services/compute/virtual_machine_extension_resource_test.go index ac57477a77b9..9d06ad34d871 100644 --- a/internal/services/compute/virtual_machine_extension_resource_test.go +++ b/internal/services/compute/virtual_machine_extension_resource_test.go @@ -101,6 +101,23 @@ func TestAccVirtualMachineExtension_concurrent(t *testing.T) { }) } +func TestAccVirtualMachineExtension_provisionAfterExtensions(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_virtual_machine_extension", "test") + r := VirtualMachineExtensionResource{} + secondResourceName := "azurerm_virtual_machine_extension.test2" + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.provisionAfterExtensions(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + acceptance.TestMatchResourceAttr(data.ResourceName, "settings", regexp.MustCompile("hostname")), + acceptance.TestMatchResourceAttr(secondResourceName, "settings", regexp.MustCompile("whoami")), + ), + }, + }) +} + func TestAccVirtualMachineExtension_linuxDiagnostics(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_machine_extension", "test") r := VirtualMachineExtensionResource{} @@ -503,6 +520,127 @@ SETTINGS `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger) } +func (VirtualMachineExtensionResource) provisionAfterExtensions(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_virtual_network" "test" { + name = "acctvn-%d" + address_space = ["10.0.0.0/16"] + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name +} + +resource "azurerm_subnet" "test" { + name = "acctsub-%d" + resource_group_name = azurerm_resource_group.test.name + virtual_network_name = azurerm_virtual_network.test.name + address_prefixes = ["10.0.2.0/24"] +} + +resource "azurerm_network_interface" "test" { + name = "acctni-%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + + ip_configuration { + name = "testconfiguration1" + subnet_id = azurerm_subnet.test.id + private_ip_address_allocation = "Dynamic" + } +} + +resource "azurerm_storage_account" "test" { + name = "accsa%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + account_tier = "Standard" + account_replication_type = "LRS" + + tags = { + environment = "staging" + } +} + +resource "azurerm_storage_container" "test" { + name = "vhds" + storage_account_name = azurerm_storage_account.test.name + container_access_type = "private" +} + +resource "azurerm_virtual_machine" "test" { + name = "acctvm-%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + network_interface_ids = [azurerm_network_interface.test.id] + vm_size = "Standard_F2" + + storage_image_reference { + publisher = "Canonical" + offer = "UbuntuServer" + sku = "16.04-LTS" + version = "latest" + } + + storage_os_disk { + name = "myosdisk1" + vhd_uri = "${azurerm_storage_account.test.primary_blob_endpoint}${azurerm_storage_container.test.name}/myosdisk1.vhd" + caching = "ReadWrite" + create_option = "FromImage" + } + + os_profile { + computer_name = "hostname%d" + admin_username = "testadmin" + admin_password = "Password1234!" + } + + os_profile_linux_config { + disable_password_authentication = false + } +} + +resource "azurerm_virtual_machine_extension" "test" { + name = "acctvme-%d" + virtual_machine_id = azurerm_virtual_machine.test.id + publisher = "Microsoft.Azure.Extensions" + type = "CustomScript" + type_handler_version = "2.0" + + settings = < **Note:** `protected_settings_from_key_vault` cannot be used with `protected_settings` +* `provision_after_extensions` - (Optional) Specifies the collection of extension names after which this extension needs to be provisioned. + * `tags` - (Optional) A mapping of tags to assign to the resource. --- From 2c645bbeb0e8f27f13b34c4bf1699da420fe37fc Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Tue, 5 Sep 2023 14:19:51 +0200 Subject: [PATCH 109/336] updating to include #23110 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c2250f89710e..4e9cfba49a2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ ENHANCEMENTS: * `internal/sdk`: typed resources using a custom importer now get a timed context [GH-23081] * `azurerm_batch_pool` - support for `automatic_upgrade_enabled` [GH-23021] * `azurerm_container_app_environment` - support for the `dapr_application_insights_connection_string` [GH-23080] +* `azurerm_cosmosdb_cassandra_datacenter` - refactoring to use `hashicorp/go-azure-sdk` [GH-23110] +* `azurerm_cosmosdb_cassandra_datacenter` - updating to API Version `2023-04-15` [GH-23110] * `azurerm_monitor_diagnostic_setting` - deprecating `retention_policy` within `enabled_log` [GH-23029] * `azurerm_postgresql_database` - `collation` can now be set to `English_United Kingdom.1252` [GH-23171] * `azurerm_postgresql_flexible_database` - `collation` can now be set to `English_United Kingdom.1252` [GH-23171] From 5fda810d32fcc5462810e506cd4e8ce55c21dd9e Mon Sep 17 00:00:00 2001 From: Elena Xin Date: Wed, 6 Sep 2023 09:12:24 +0800 Subject: [PATCH 110/336] upgrade api version --- .../services/redisenterprise/client/client.go | 4 +- .../redis_enterprise_cluster_resource.go | 2 +- .../redis_enterprise_cluster_resource_test.go | 2 +- .../redis_enterprise_database_data_source.go | 4 +- .../redis_enterprise_database_resource.go | 4 +- ...redis_enterprise_database_resource_test.go | 2 +- .../redis_enterprise_cluster_sku_name.go | 2 +- .../databases/README.md | 23 +++++- .../databases/client.go | 0 .../databases/constants.go | 0 .../databases/id_database.go | 0 .../databases/id_redisenterprise.go | 0 .../databases/method_create.go | 0 .../databases/method_delete.go | 0 .../databases/method_export.go | 0 .../2023-07-01/databases/method_flush.go | 74 +++++++++++++++++++ .../databases/method_forceunlink.go | 0 .../databases/method_get.go | 0 .../databases/method_import.go | 0 .../databases/method_listbycluster.go | 0 .../databases/method_listkeys.go | 0 .../databases/method_regeneratekey.go | 0 .../databases/method_update.go | 0 .../databases/model_accesskeys.go | 0 .../databases/model_database.go | 0 .../databases/model_databaseproperties.go | 0 .../model_databasepropertiesgeoreplication.go | 0 .../databases/model_databaseupdate.go | 0 .../model_exportclusterparameters.go | 0 .../databases/model_flushparameters.go | 8 ++ .../databases/model_forceunlinkparameters.go | 0 .../model_importclusterparameters.go | 0 .../databases/model_linkeddatabase.go | 0 .../databases/model_module.go | 0 .../databases/model_persistence.go | 0 .../model_regeneratekeyparameters.go | 0 .../databases/predicates.go | 0 .../databases/version.go | 2 +- .../redisenterprise/README.md | 23 +++++- .../redisenterprise/client.go | 0 .../redisenterprise/constants.go | 0 .../redisenterprise/id_database.go | 0 .../redisenterprise/id_redisenterprise.go | 0 .../redisenterprise/method_create.go | 0 .../redisenterprise/method_databasescreate.go | 0 .../redisenterprise/method_databasesdelete.go | 0 .../redisenterprise/method_databasesexport.go | 0 .../redisenterprise/method_databasesflush.go | 74 +++++++++++++++++++ .../method_databasesforceunlink.go | 0 .../redisenterprise/method_databasesget.go | 0 .../redisenterprise/method_databasesimport.go | 0 .../method_databaseslistbycluster.go | 0 .../method_databaseslistkeys.go | 0 .../method_databasesregeneratekey.go | 0 .../redisenterprise/method_databasesupdate.go | 0 .../redisenterprise/method_delete.go | 0 .../redisenterprise/method_get.go | 0 .../redisenterprise/method_list.go | 0 .../method_listbyresourcegroup.go | 0 .../redisenterprise/method_update.go | 0 .../redisenterprise/model_accesskeys.go | 0 .../redisenterprise/model_cluster.go | 0 .../model_clusterproperties.go | 0 .../redisenterprise/model_clusterupdate.go | 0 .../redisenterprise/model_database.go | 0 .../model_databaseproperties.go | 0 .../model_databasepropertiesgeoreplication.go | 0 .../redisenterprise/model_databaseupdate.go | 0 .../model_exportclusterparameters.go | 0 .../redisenterprise/model_flushparameters.go | 8 ++ .../model_forceunlinkparameters.go | 0 .../model_importclusterparameters.go | 0 .../redisenterprise/model_linkeddatabase.go | 0 .../redisenterprise/model_module.go | 0 .../redisenterprise/model_persistence.go | 0 .../redisenterprise/model_privateendpoint.go | 0 .../model_privateendpointconnection.go | 0 ...del_privateendpointconnectionproperties.go | 0 ...model_privatelinkserviceconnectionstate.go | 0 .../model_regeneratekeyparameters.go | 0 .../redisenterprise/model_sku.go | 0 .../redisenterprise/predicates.go | 0 .../redisenterprise/version.go | 2 +- vendor/modules.txt | 4 +- 84 files changed, 218 insertions(+), 20 deletions(-) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/README.md (89%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/constants.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/id_database.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/id_redisenterprise.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/method_create.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/method_delete.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/method_export.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_flush.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/method_forceunlink.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/method_get.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/method_import.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/method_listbycluster.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/method_listkeys.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/method_regeneratekey.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/method_update.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/model_accesskeys.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/model_database.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/model_databaseproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/model_databasepropertiesgeoreplication.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/model_databaseupdate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/model_exportclusterparameters.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_flushparameters.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/model_forceunlinkparameters.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/model_importclusterparameters.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/model_linkeddatabase.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/model_module.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/model_persistence.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/model_regeneratekeyparameters.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/predicates.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/databases/version.go (88%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/README.md (92%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/constants.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/id_database.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/id_redisenterprise.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_create.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_databasescreate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_databasesdelete.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_databasesexport.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesflush.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_databasesforceunlink.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_databasesget.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_databasesimport.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_databaseslistbycluster.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_databaseslistkeys.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_databasesregeneratekey.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_databasesupdate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_delete.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_get.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_list.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_listbyresourcegroup.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/method_update.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_accesskeys.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_cluster.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_clusterproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_clusterupdate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_database.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_databaseproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_databasepropertiesgeoreplication.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_databaseupdate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_exportclusterparameters.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_flushparameters.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_forceunlinkparameters.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_importclusterparameters.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_linkeddatabase.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_module.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_persistence.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_privateendpoint.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_privateendpointconnection.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_privateendpointconnectionproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_privatelinkserviceconnectionstate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_regeneratekeyparameters.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/model_sku.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/predicates.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/{2022-01-01 => 2023-07-01}/redisenterprise/version.go (88%) diff --git a/internal/services/redisenterprise/client/client.go b/internal/services/redisenterprise/client/client.go index 86b6a5beca96..a0c6baca068e 100644 --- a/internal/services/redisenterprise/client/client.go +++ b/internal/services/redisenterprise/client/client.go @@ -6,8 +6,8 @@ package client import ( "fmt" - "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases" - "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise" + "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases" + "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise" "github.com/hashicorp/terraform-provider-azurerm/internal/common" ) diff --git a/internal/services/redisenterprise/redis_enterprise_cluster_resource.go b/internal/services/redisenterprise/redis_enterprise_cluster_resource.go index fdec6a7da7ad..60e51327d5cb 100644 --- a/internal/services/redisenterprise/redis_enterprise_cluster_resource.go +++ b/internal/services/redisenterprise/redis_enterprise_cluster_resource.go @@ -16,7 +16,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" "github.com/hashicorp/go-azure-helpers/resourcemanager/zones" - "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise" + "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/redisenterprise/redis_enterprise_cluster_resource_test.go b/internal/services/redisenterprise/redis_enterprise_cluster_resource_test.go index af000b59b835..ed86acc33de7 100644 --- a/internal/services/redisenterprise/redis_enterprise_cluster_resource_test.go +++ b/internal/services/redisenterprise/redis_enterprise_cluster_resource_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise" + "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/redisenterprise/redis_enterprise_database_data_source.go b/internal/services/redisenterprise/redis_enterprise_database_data_source.go index 16fe64f1522f..e1c6bda04989 100644 --- a/internal/services/redisenterprise/redis_enterprise_database_data_source.go +++ b/internal/services/redisenterprise/redis_enterprise_database_data_source.go @@ -9,8 +9,8 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" - "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases" - "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise" + "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases" + "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/features" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" diff --git a/internal/services/redisenterprise/redis_enterprise_database_resource.go b/internal/services/redisenterprise/redis_enterprise_database_resource.go index 9e79d531b37e..123a4dc3533e 100644 --- a/internal/services/redisenterprise/redis_enterprise_database_resource.go +++ b/internal/services/redisenterprise/redis_enterprise_database_resource.go @@ -12,8 +12,8 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" - "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases" - "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise" + "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases" + "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/features" diff --git a/internal/services/redisenterprise/redis_enterprise_database_resource_test.go b/internal/services/redisenterprise/redis_enterprise_database_resource_test.go index b1eade598c46..f7415e450385 100644 --- a/internal/services/redisenterprise/redis_enterprise_database_resource_test.go +++ b/internal/services/redisenterprise/redis_enterprise_database_resource_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases" + "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/redisenterprise/validate/redis_enterprise_cluster_sku_name.go b/internal/services/redisenterprise/validate/redis_enterprise_cluster_sku_name.go index dd052671f12f..cd694156d26a 100644 --- a/internal/services/redisenterprise/validate/redis_enterprise_cluster_sku_name.go +++ b/internal/services/redisenterprise/validate/redis_enterprise_cluster_sku_name.go @@ -8,7 +8,7 @@ import ( "strconv" "strings" - "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise" + "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" ) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/README.md similarity index 89% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/README.md index dbd5fdbd30ad..5ca218b350ef 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases` Documentation -The `databases` SDK allows for interaction with the Azure Resource Manager Service `redisenterprise` (API Version `2022-01-01`). +The `databases` SDK allows for interaction with the Azure Resource Manager Service `redisenterprise` (API Version `2023-07-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases" +import "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases" ``` @@ -66,6 +66,23 @@ if err := client.ExportThenPoll(ctx, id, payload); err != nil { ``` +### Example Usage: `DatabasesClient.Flush` + +```go +ctx := context.TODO() +id := databases.NewDatabaseID("12345678-1234-9876-4563-123456789012", "example-resource-group", "redisEnterpriseValue", "databaseValue") + +payload := databases.FlushParameters{ + // ... +} + + +if err := client.FlushThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + ### Example Usage: `DatabasesClient.ForceUnlink` ```go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/constants.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/constants.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/constants.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/id_database.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/id_database.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/id_database.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/id_database.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/id_redisenterprise.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/id_redisenterprise.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/id_redisenterprise.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/id_redisenterprise.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_create.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_create.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_create.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_create.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_delete.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_delete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_delete.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_export.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_export.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_export.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_export.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_flush.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_flush.go new file mode 100644 index 000000000000..aaf7666fdf07 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_flush.go @@ -0,0 +1,74 @@ +package databases + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type FlushOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Flush ... +func (c DatabasesClient) Flush(ctx context.Context, id DatabaseId, input FlushParameters) (result FlushOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/flush", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// FlushThenPoll performs Flush then polls until it's completed +func (c DatabasesClient) FlushThenPoll(ctx context.Context, id DatabaseId, input FlushParameters) error { + result, err := c.Flush(ctx, id, input) + if err != nil { + return fmt.Errorf("performing Flush: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Flush: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_forceunlink.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_forceunlink.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_forceunlink.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_forceunlink.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_get.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_get.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_get.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_import.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_import.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_import.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_import.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_listbycluster.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_listbycluster.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_listbycluster.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_listbycluster.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_listkeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_listkeys.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_listkeys.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_listkeys.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_regeneratekey.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_regeneratekey.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_regeneratekey.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_regeneratekey.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_update.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/method_update.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/method_update.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_accesskeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_accesskeys.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_accesskeys.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_accesskeys.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_database.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_database.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_database.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_database.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_databaseproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_databaseproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_databaseproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_databaseproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_databasepropertiesgeoreplication.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_databasepropertiesgeoreplication.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_databasepropertiesgeoreplication.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_databasepropertiesgeoreplication.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_databaseupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_databaseupdate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_databaseupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_databaseupdate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_exportclusterparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_exportclusterparameters.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_exportclusterparameters.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_exportclusterparameters.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_flushparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_flushparameters.go new file mode 100644 index 000000000000..7ac8c6633b30 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_flushparameters.go @@ -0,0 +1,8 @@ +package databases + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type FlushParameters struct { + Ids *[]string `json:"ids,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_forceunlinkparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_forceunlinkparameters.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_forceunlinkparameters.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_forceunlinkparameters.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_importclusterparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_importclusterparameters.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_importclusterparameters.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_importclusterparameters.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_linkeddatabase.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_linkeddatabase.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_linkeddatabase.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_linkeddatabase.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_module.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_module.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_module.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_module.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_persistence.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_persistence.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_persistence.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_persistence.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_regeneratekeyparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_regeneratekeyparameters.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/model_regeneratekeyparameters.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/model_regeneratekeyparameters.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/predicates.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/predicates.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/predicates.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/version.go index 925ad65c153e..5f96648f5097 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2022-01-01" +const defaultApiVersion = "2023-07-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/databases/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/README.md similarity index 92% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/README.md index d4e9d4eafb45..b5ce463ffbc9 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise` Documentation -The `redisenterprise` SDK allows for interaction with the Azure Resource Manager Service `redisenterprise` (API Version `2022-01-01`). +The `redisenterprise` SDK allows for interaction with the Azure Resource Manager Service `redisenterprise` (API Version `2023-07-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise" +import "github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise" ``` @@ -83,6 +83,23 @@ if err := client.DatabasesExportThenPoll(ctx, id, payload); err != nil { ``` +### Example Usage: `RedisEnterpriseClient.DatabasesFlush` + +```go +ctx := context.TODO() +id := redisenterprise.NewDatabaseID("12345678-1234-9876-4563-123456789012", "example-resource-group", "redisEnterpriseValue", "databaseValue") + +payload := redisenterprise.FlushParameters{ + // ... +} + + +if err := client.DatabasesFlushThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + ### Example Usage: `RedisEnterpriseClient.DatabasesForceUnlink` ```go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/constants.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/constants.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/constants.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/id_database.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/id_database.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/id_database.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/id_database.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/id_redisenterprise.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/id_redisenterprise.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/id_redisenterprise.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/id_redisenterprise.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_create.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_create.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_create.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_create.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasescreate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasescreate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasescreate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasescreate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesdelete.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasesdelete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesdelete.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasesexport.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesexport.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasesexport.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesexport.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesflush.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesflush.go new file mode 100644 index 000000000000..1a2453ebee2a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesflush.go @@ -0,0 +1,74 @@ +package redisenterprise + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DatabasesFlushOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// DatabasesFlush ... +func (c RedisEnterpriseClient) DatabasesFlush(ctx context.Context, id DatabaseId, input FlushParameters) (result DatabasesFlushOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/flush", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DatabasesFlushThenPoll performs DatabasesFlush then polls until it's completed +func (c RedisEnterpriseClient) DatabasesFlushThenPoll(ctx context.Context, id DatabaseId, input FlushParameters) error { + result, err := c.DatabasesFlush(ctx, id, input) + if err != nil { + return fmt.Errorf("performing DatabasesFlush: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after DatabasesFlush: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasesforceunlink.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesforceunlink.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasesforceunlink.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesforceunlink.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesget.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasesget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesget.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasesimport.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesimport.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasesimport.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesimport.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databaseslistbycluster.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databaseslistbycluster.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databaseslistbycluster.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databaseslistbycluster.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databaseslistkeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databaseslistkeys.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databaseslistkeys.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databaseslistkeys.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasesregeneratekey.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesregeneratekey.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasesregeneratekey.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesregeneratekey.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasesupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesupdate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_databasesupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_databasesupdate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_delete.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_delete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_delete.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_get.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_get.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_get.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_list.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_list.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_list.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_list.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_listbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_listbyresourcegroup.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_listbyresourcegroup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_listbyresourcegroup.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_update.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/method_update.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/method_update.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_accesskeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_accesskeys.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_accesskeys.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_accesskeys.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_cluster.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_cluster.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_cluster.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_cluster.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_clusterproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_clusterproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_clusterproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_clusterproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_clusterupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_clusterupdate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_clusterupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_clusterupdate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_database.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_database.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_database.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_database.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_databaseproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_databaseproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_databaseproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_databaseproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_databasepropertiesgeoreplication.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_databasepropertiesgeoreplication.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_databasepropertiesgeoreplication.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_databasepropertiesgeoreplication.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_databaseupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_databaseupdate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_databaseupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_databaseupdate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_exportclusterparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_exportclusterparameters.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_exportclusterparameters.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_exportclusterparameters.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_flushparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_flushparameters.go new file mode 100644 index 000000000000..9d3358ea7419 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_flushparameters.go @@ -0,0 +1,8 @@ +package redisenterprise + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type FlushParameters struct { + Ids *[]string `json:"ids,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_forceunlinkparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_forceunlinkparameters.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_forceunlinkparameters.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_forceunlinkparameters.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_importclusterparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_importclusterparameters.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_importclusterparameters.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_importclusterparameters.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_linkeddatabase.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_linkeddatabase.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_linkeddatabase.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_linkeddatabase.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_module.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_module.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_module.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_module.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_persistence.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_persistence.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_persistence.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_persistence.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_privateendpoint.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_privateendpoint.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_privateendpoint.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_privateendpoint.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_privateendpointconnection.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_privateendpointconnection.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_privateendpointconnection.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_privateendpointconnection.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_privateendpointconnectionproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_privateendpointconnectionproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_privateendpointconnectionproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_privateendpointconnectionproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_privatelinkserviceconnectionstate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_privatelinkserviceconnectionstate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_privatelinkserviceconnectionstate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_privatelinkserviceconnectionstate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_regeneratekeyparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_regeneratekeyparameters.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_regeneratekeyparameters.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_regeneratekeyparameters.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_sku.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_sku.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/model_sku.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/model_sku.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/predicates.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/predicates.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/predicates.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/version.go index 60498332607a..c10a96d76cfb 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2022-01-01" +const defaultApiVersion = "2023-07-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/redisenterprise/%s", defaultApiVersion) diff --git a/vendor/modules.txt b/vendor/modules.txt index e19a35e2c8a9..efb6fce2ac30 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -795,8 +795,8 @@ github.com/hashicorp/go-azure-sdk/resource-manager/redis/2023-04-01/patchschedul github.com/hashicorp/go-azure-sdk/resource-manager/redis/2023-04-01/privateendpointconnections github.com/hashicorp/go-azure-sdk/resource-manager/redis/2023-04-01/privatelinkresources github.com/hashicorp/go-azure-sdk/resource-manager/redis/2023-04-01/redis -github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/databases -github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2022-01-01/redisenterprise +github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/databases +github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise github.com/hashicorp/go-azure-sdk/resource-manager/relay/2021-11-01/hybridconnections github.com/hashicorp/go-azure-sdk/resource-manager/relay/2021-11-01/namespaces github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/managementlocks From 87ee7c46bd2272014c51b518abc84301b0b11744 Mon Sep 17 00:00:00 2001 From: Yun Liu Date: Wed, 6 Sep 2023 05:01:19 +0000 Subject: [PATCH 111/336] `azurerm_batch_pool` - add new property `accelerated_networking_enabled` (#23160) * add new property `accelerated_networking_enabled` * change doc for `subnet_id` * update for datasource * Update internal/services/batch/batch_pool.go Co-authored-by: stephybun * update property using pointer.From --------- Co-authored-by: stephybun --- internal/services/batch/batch_pool.go | 5 ++ .../services/batch/batch_pool_data_source.go | 4 ++ .../services/batch/batch_pool_resource.go | 8 ++- .../batch/batch_pool_resource_test.go | 58 +++++++++++++++++++ website/docs/r/batch_pool.html.markdown | 4 +- 5 files changed, 77 insertions(+), 2 deletions(-) diff --git a/internal/services/batch/batch_pool.go b/internal/services/batch/batch_pool.go index 8dd2c0ab9f72..08f50ba894c9 100644 --- a/internal/services/batch/batch_pool.go +++ b/internal/services/batch/batch_pool.go @@ -1114,6 +1114,10 @@ func ExpandBatchPoolNetworkConfiguration(list []interface{}) (*pool.NetworkConfi networkConfiguration.DynamicVnetAssignmentScope = pointer.To(pool.DynamicVNetAssignmentScope(v.(string))) } + if v, ok := networkConfigValue["accelerated_networking_enabled"]; ok { + networkConfiguration.EnableAcceleratedNetworking = pointer.FromBool(v.(bool)) + } + if v, ok := networkConfigValue["subnet_id"]; ok { if value := v.(string); value != "" { networkConfiguration.SubnetId = &value @@ -1311,6 +1315,7 @@ func flattenBatchPoolNetworkConfiguration(input *pool.NetworkConfiguration) []in return []interface{}{ map[string]interface{}{ "dynamic_vnet_assignment_scope": dynamicVNetAssignmentScope, + "accelerated_networking_enabled": pointer.From(input.EnableAcceleratedNetworking), "endpoint_configuration": endpointConfigs, "public_address_provisioning_type": publicAddressProvisioningType, "public_ips": pluginsdk.NewSet(pluginsdk.HashString, publicIPAddressIds), diff --git a/internal/services/batch/batch_pool_data_source.go b/internal/services/batch/batch_pool_data_source.go index ab33868e1683..09bb6e3ff5d1 100644 --- a/internal/services/batch/batch_pool_data_source.go +++ b/internal/services/batch/batch_pool_data_source.go @@ -478,6 +478,10 @@ func dataSourceBatchPool() *pluginsdk.Resource { Type: pluginsdk.TypeString, Computed: true, }, + "accelerated_networking_enabled": { + Type: pluginsdk.TypeBool, + Computed: true, + }, "subnet_id": { Type: pluginsdk.TypeString, Computed: true, diff --git a/internal/services/batch/batch_pool_resource.go b/internal/services/batch/batch_pool_resource.go index e19c7caf6e14..b330786f36a8 100644 --- a/internal/services/batch/batch_pool_resource.go +++ b/internal/services/batch/batch_pool_resource.go @@ -463,9 +463,15 @@ func resourceBatchPool() *pluginsdk.Resource { string(pool.DynamicVNetAssignmentScopeJob), }, false), }, + "accelerated_networking_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + ForceNew: true, + }, "subnet_id": { Type: pluginsdk.TypeString, - Required: true, + Optional: true, ForceNew: true, ValidateFunc: validation.StringIsNotEmpty, }, diff --git a/internal/services/batch/batch_pool_resource_test.go b/internal/services/batch/batch_pool_resource_test.go index 7f15ee02f76a..c3ca98be85ef 100644 --- a/internal/services/batch/batch_pool_resource_test.go +++ b/internal/services/batch/batch_pool_resource_test.go @@ -44,6 +44,22 @@ func TestAccBatchPool_basic(t *testing.T) { }) } +func TestAccBatchPool_acceleratedNetworkingEnabled(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_batch_pool", "test") + r := BatchPoolResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.acceleratedNetworkingEnabled(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("network_configuration.0.accelerated_networking_enabled").HasValue("true"), + ), + }, + data.ImportStep("stop_pending_resize_operation"), + }) +} + func TestAccBatchPool_identity(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_batch_pool", "test") r := BatchPoolResource{} @@ -995,6 +1011,48 @@ resource "azurerm_batch_pool" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomString) } +func (BatchPoolResource) acceleratedNetworkingEnabled(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-batch-%d" + location = "%s" +} + +resource "azurerm_batch_account" "test" { + name = "testaccbatch%s" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location +} + +resource "azurerm_batch_pool" "test" { + name = "testaccpool%s" + resource_group_name = azurerm_resource_group.test.name + account_name = azurerm_batch_account.test.name + node_agent_sku_id = "batch.node.windows amd64" + vm_size = "Standard_D1_v2" + + fixed_scale { + target_dedicated_nodes = 2 + } + + storage_image_reference { + publisher = "MicrosoftWindowsServer" + offer = "WindowsServer" + sku = "2016-datacenter-smalldisk" + version = "latest" + } + + network_configuration { + accelerated_networking_enabled = true + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomString) +} + func (BatchPoolResource) identity(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { diff --git a/website/docs/r/batch_pool.html.markdown b/website/docs/r/batch_pool.html.markdown index 1bdaaabdf46d..4825dde53aee 100644 --- a/website/docs/r/batch_pool.html.markdown +++ b/website/docs/r/batch_pool.html.markdown @@ -458,10 +458,12 @@ A `nfs_mount` block supports the following: A `network_configuration` block supports the following: -* `subnet_id` - (Required) The ARM resource identifier of the virtual network subnet which the compute nodes of the pool will join. Changing this forces a new resource to be created. +* `subnet_id` - (Optional) The ARM resource identifier of the virtual network subnet which the compute nodes of the pool will join. Changing this forces a new resource to be created. * `dynamic_vnet_assignment_scope` - (Optional) The scope of dynamic vnet assignment. Allowed values: `none`, `job`. Changing this forces a new resource to be created. +* `accelerated_networking_enabled` - (Optional) Whether to enable accelerated networking. Possible values are `true` and `false`. Defaults to `false`. Changing this forces a new resource to be created. + * `public_ips` - (Optional) A list of public IP ids that will be allocated to nodes. Changing this forces a new resource to be created. * `endpoint_configuration` - (Optional) A list of inbound NAT pools that can be used to address specific ports on an individual compute node externally. Set as documented in the inbound_nat_pools block below. Changing this forces a new resource to be created. From 7e928d0190b98e75d53a3aa266d7e42dd2f3af60 Mon Sep 17 00:00:00 2001 From: Tao <104055472+teowa@users.noreply.github.com> Date: Wed, 6 Sep 2023 13:14:16 +0800 Subject: [PATCH 112/336] `azurerm_monitor_log_profile` - mark as deprecated (#23146) * azure log profile deprecated * update message * fix review comment --- internal/services/monitor/monitor_log_profile_data_source.go | 2 ++ internal/services/monitor/monitor_log_profile_resource.go | 2 ++ website/docs/d/monitor_log_profile.html.markdown | 2 ++ website/docs/r/monitor_log_profile.html.markdown | 2 ++ 4 files changed, 8 insertions(+) diff --git a/internal/services/monitor/monitor_log_profile_data_source.go b/internal/services/monitor/monitor_log_profile_data_source.go index d4d20778e77e..fcc0a6f90fcd 100644 --- a/internal/services/monitor/monitor_log_profile_data_source.go +++ b/internal/services/monitor/monitor_log_profile_data_source.go @@ -18,6 +18,8 @@ func dataSourceMonitorLogProfile() *pluginsdk.Resource { return &pluginsdk.Resource{ Read: dataSourceLogProfileRead, + DeprecationMessage: "Azure Log Profiles will be retired on 30th September 2026 and will be removed in v4.0 of the AzureRM Provider. More information on the deprecation can be found at https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/activity-log?tabs=powershell#legacy-collection-methods", + Timeouts: &pluginsdk.ResourceTimeout{ Read: pluginsdk.DefaultTimeout(5 * time.Minute), }, diff --git a/internal/services/monitor/monitor_log_profile_resource.go b/internal/services/monitor/monitor_log_profile_resource.go index d50155275f94..cc02836d953c 100644 --- a/internal/services/monitor/monitor_log_profile_resource.go +++ b/internal/services/monitor/monitor_log_profile_resource.go @@ -32,6 +32,8 @@ func resourceMonitorLogProfile() *pluginsdk.Resource { Update: resourceLogProfileCreateUpdate, Delete: resourceLogProfileDelete, + DeprecationMessage: "Azure Log Profiles will be retired on 30th September 2026 and will be removed in v4.0 of the AzureRM Provider. More information on the deprecation can be found at https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/activity-log?tabs=powershell#legacy-collection-methods", + Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { _, err := logprofiles.ParseLogProfileID(id) return err diff --git a/website/docs/d/monitor_log_profile.html.markdown b/website/docs/d/monitor_log_profile.html.markdown index d1a5ae39bc4c..5738f80faa68 100644 --- a/website/docs/d/monitor_log_profile.html.markdown +++ b/website/docs/d/monitor_log_profile.html.markdown @@ -10,6 +10,8 @@ description: |- Use this data source to access the properties of a Log Profile. +!> **NOTE:** Azure Log Profiles will be retired on 30th September 2026 and will be removed in v4.0 of the AzureRM Provider. More information on the deprecation can be found [in the Azure documentation](https://learn.microsoft.com/azure/azure-monitor/essentials/activity-log?tabs=powershell#legacy-collection-methods). + ## Example Usage ```hcl diff --git a/website/docs/r/monitor_log_profile.html.markdown b/website/docs/r/monitor_log_profile.html.markdown index 80137406f850..346c36206c31 100644 --- a/website/docs/r/monitor_log_profile.html.markdown +++ b/website/docs/r/monitor_log_profile.html.markdown @@ -12,6 +12,8 @@ Manages a [Log Profile](https://docs.microsoft.com/azure/monitoring-and-diagnost -> **NOTE:** It's only possible to configure one Log Profile per Subscription. If you are trying to create more than one Log Profile, an error with `StatusCode=409` will occur. +!> **NOTE:** Azure Log Profiles will be retired on 30th September 2026 and will be removed in v4.0 of the AzureRM Provider. More information on the deprecation can be found [in the Azure documentation](https://learn.microsoft.com/azure/azure-monitor/essentials/activity-log?tabs=powershell#legacy-collection-methods). + ## Example Usage ```hcl From f8b2767b5f4e78ee0f6dbc122bb8acbcf5fceed7 Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Wed, 6 Sep 2023 06:49:58 +0100 Subject: [PATCH 113/336] `tools` - remove possible values code from `website-scaffold` tooling due to permissions crash (#23179) --- go.mod | 1 - go.sum | 8 - internal/tools/website-scaffold/main.go | 41 -- internal/tools/website-scaffold/main_test.go | 22 +- .../agiledragon/gomonkey/v2/LICENSE | 21 - .../agiledragon/gomonkey/v2/README.md | 53 --- .../gomonkey/v2/creflect/ae1.17.go | 39 -- .../gomonkey/v2/creflect/be1.16.go | 25 -- .../agiledragon/gomonkey/v2/creflect/type.go | 179 --------- .../agiledragon/gomonkey/v2/jmp_386.go | 13 - .../agiledragon/gomonkey/v2/jmp_amd64.go | 18 - .../agiledragon/gomonkey/v2/jmp_arm64.go | 34 -- .../gomonkey/v2/modify_binary_darwin.go | 27 -- .../gomonkey/v2/modify_binary_linux.go | 27 -- .../gomonkey/v2/modify_binary_windows.go | 25 -- .../agiledragon/gomonkey/v2/patch.go | 365 ------------------ vendor/modules.txt | 4 - 17 files changed, 9 insertions(+), 893 deletions(-) delete mode 100644 vendor/github.com/agiledragon/gomonkey/v2/LICENSE delete mode 100644 vendor/github.com/agiledragon/gomonkey/v2/README.md delete mode 100644 vendor/github.com/agiledragon/gomonkey/v2/creflect/ae1.17.go delete mode 100644 vendor/github.com/agiledragon/gomonkey/v2/creflect/be1.16.go delete mode 100644 vendor/github.com/agiledragon/gomonkey/v2/creflect/type.go delete mode 100644 vendor/github.com/agiledragon/gomonkey/v2/jmp_386.go delete mode 100644 vendor/github.com/agiledragon/gomonkey/v2/jmp_amd64.go delete mode 100644 vendor/github.com/agiledragon/gomonkey/v2/jmp_arm64.go delete mode 100644 vendor/github.com/agiledragon/gomonkey/v2/modify_binary_darwin.go delete mode 100644 vendor/github.com/agiledragon/gomonkey/v2/modify_binary_linux.go delete mode 100644 vendor/github.com/agiledragon/gomonkey/v2/modify_binary_windows.go delete mode 100644 vendor/github.com/agiledragon/gomonkey/v2/patch.go diff --git a/go.mod b/go.mod index dfd4bd281716..6111db518019 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,6 @@ require ( github.com/Azure/go-autorest/autorest/to v0.4.0 github.com/Azure/go-autorest/autorest/validation v0.3.1 github.com/Azure/go-autorest/tracing v0.6.0 - github.com/agiledragon/gomonkey/v2 v2.9.0 github.com/btubbs/datetime v0.1.0 github.com/dave/jennifer v1.6.0 github.com/davecgh/go-spew v1.1.1 diff --git a/go.sum b/go.sum index b4b839b7ac22..9d966bf1dbd2 100644 --- a/go.sum +++ b/go.sum @@ -47,8 +47,6 @@ github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= -github.com/agiledragon/gomonkey/v2 v2.9.0 h1:PDiKKybR596O6FHW+RVSG0Z7uGCBNbmbUXh3uCNQ7Hc= -github.com/agiledragon/gomonkey/v2 v2.9.0/go.mod h1:ap1AmDzcVOAz1YpeJ3TCzIgstoaWLA6jbbgxfB4w2iY= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= github.com/apparentlymart/go-textseg v1.0.0 h1:rRmlIsPEEhUTIKQb7T++Nz/A5Q6C9IuX2wFoYVvnCs0= @@ -113,7 +111,6 @@ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/hashicorp/errwrap v0.0.0-20180715044906-d6c0cd880357/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= @@ -185,7 +182,6 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/jhump/protoreflect v1.6.0 h1:h5jfMVslIg6l29nsMs0D8Wj17RDVdNYti0vDN/PZZoE= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 h1:DowS9hvgyYSX4TO5NpyC606/Z4SxnNYbT+WX27or6Ck= github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -247,8 +243,6 @@ github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -312,7 +306,6 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190502183928-7f726cade0ab/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= @@ -379,7 +372,6 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= diff --git a/internal/tools/website-scaffold/main.go b/internal/tools/website-scaffold/main.go index 681083da9ad5..def890a18ae9 100644 --- a/internal/tools/website-scaffold/main.go +++ b/internal/tools/website-scaffold/main.go @@ -10,18 +10,14 @@ import ( "math" "os" "path/filepath" - "reflect" - "runtime" "sort" "strconv" "strings" "time" - gomonkey "github.com/agiledragon/gomonkey/v2" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/internal/provider" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" - "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/magodo/terraform-provider-azurerm-example-gen/examplegen" ) @@ -296,12 +292,6 @@ func (gen documentationGenerator) argumentsBlock() string { value += fmt.Sprintf("Conflicts with %s.", strings.Join(conflictingValues, ",")) } - if possibleValues := getSchemaPossibleValues(field); len(possibleValues) == 1 { - value += fmt.Sprintf(" The only possible value is `%s`.", possibleValues[0]) - } else if size := len(possibleValues); size > 1 { - value += fmt.Sprintf(" Possible values are `%s` and `%s`.", strings.Join(possibleValues[:size-1], "`, `"), possibleValues[size-1]) - } - if field.Default != nil { value += fmt.Sprintf(" Defaults to `%v`.", field.Default) } @@ -965,34 +955,3 @@ func (gen documentationGenerator) uniqueBlockNamesForAttribute(fields map[string return blockNames, blocks } - -func patchPossibleValuesFn() { - gomonkey.ApplyFunc(validation.StringInSlice, - func(valid []string, ignoreCase bool) schema.SchemaValidateFunc { //nolint:staticcheck - return func(i interface{}, k string) (warnings []string, errors []error) { - var res []string // must have a copy - res = append(res, valid...) - return res, nil - } - }, - ) -} - -func init() { - patchPossibleValuesFn() -} - -func getSchemaPossibleValues(item *schema.Schema) []string { - if item.ValidateFunc != nil { - // check if it is StringsInSlice - pc := reflect.ValueOf(item.ValidateFunc).Pointer() - fn := runtime.FuncForPC(pc) - fnName := fn.Name() - // seems different go version behaviors different - if strings.Contains(fnName, "StringInSlice") || strings.Contains(fnName, "patchPossibleValuesFn") { - values, _ := item.ValidateFunc(nil, "") - return values - } - } - return nil -} diff --git a/internal/tools/website-scaffold/main_test.go b/internal/tools/website-scaffold/main_test.go index 016651a05d0d..eb261b4a63bb 100644 --- a/internal/tools/website-scaffold/main_test.go +++ b/internal/tools/website-scaffold/main_test.go @@ -8,7 +8,6 @@ import ( "testing" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/sergi/go-diff/diffmatchpatch" ) @@ -28,7 +27,7 @@ The following arguments are supported: * 'foo_enabled' - (Required) Should the TODO be enabled? -* 'foo_id' - (Required) The ID of the TODO. The only possible value is 'Foo'. +* 'foo_id' - (Required) The ID of the TODO. * 'list' - (Required) Specifies a list of TODO. @@ -50,7 +49,7 @@ The following arguments are supported: A 'block1' block supports the following: -* 'nest_attr1' - (Optional) TODO. Possible values are 'Foo', 'Bar' and 'Bar2'. +* 'nest_attr1' - (Optional) TODO. --- @@ -60,7 +59,7 @@ A 'block2' block supports the following: * 'block3' - (Required) One or more 'block3' blocks as defined below. -* 'nest_attr2' - (Optional) TODO. Possible values are 'Foo' and 'Bar'. +* 'nest_attr2' - (Optional) TODO. --- @@ -90,9 +89,8 @@ A 'block3' block supports the following: Required: true, }, "foo_id": { - Type: schema.TypeString, - Required: true, - ValidateFunc: validation.StringInSlice([]string{"Foo"}, false), + Type: schema.TypeString, + Required: true, }, "block2": { Type: schema.TypeList, @@ -100,9 +98,8 @@ A 'block3' block supports the following: Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "nest_attr2": { - Type: schema.TypeString, - Optional: true, - ValidateFunc: validation.StringInSlice([]string{"Foo", "Bar"}, false), + Type: schema.TypeString, + Optional: true, }, //lintignore:XS003 "block1": { @@ -112,9 +109,8 @@ A 'block3' block supports the following: Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "nest_attr1": { - Type: schema.TypeString, - Optional: true, - ValidateFunc: validation.StringInSlice([]string{"Foo", "Bar", "Bar2"}, false), + Type: schema.TypeString, + Optional: true, }, }, }, diff --git a/vendor/github.com/agiledragon/gomonkey/v2/LICENSE b/vendor/github.com/agiledragon/gomonkey/v2/LICENSE deleted file mode 100644 index d75dc90e6557..000000000000 --- a/vendor/github.com/agiledragon/gomonkey/v2/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Zhang Xiaolong - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/agiledragon/gomonkey/v2/README.md b/vendor/github.com/agiledragon/gomonkey/v2/README.md deleted file mode 100644 index b3321ba07ee7..000000000000 --- a/vendor/github.com/agiledragon/gomonkey/v2/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# gomonkey - -gomonkey is a library to make monkey patching in unit tests easy, and the core idea of monkey patching comes from [Bouke](https://github.com/bouk), you can read [this blogpost](https://bou.ke/blog/monkey-patching-in-go/) for an explanation on how it works. - -## Features - -+ support a patch for a function -+ support a patch for a public member method -+ support a patch for a private member method -+ support a patch for a interface -+ support a patch for a function variable -+ support a patch for a global variable -+ support patches of a specified sequence for a function -+ support patches of a specified sequence for a member method -+ support patches of a specified sequence for a interface -+ support patches of a specified sequence for a function variable - -## Notes -+ gomonkey fails to patch a function or a member method if inlining is enabled, please running your tests with inlining disabled by adding the command line argument that is `-gcflags=-l`(below go1.10) or `-gcflags=all=-l`(go1.10 and above). -+ A panic may happen when a goroutine is patching a function or a member method that is visited by another goroutine at the same time. That is to say, gomonkey is not threadsafe. - -## Supported Platform: - -- ARCH - - amd64 - - arm64 - - 386 - -- OS - - Linux - - MAC OS X - - Windows - -## Installation -- below v2.1.0, for example v2.0.2 -```go -$ go get github.com/agiledragon/gomonkey@v2.0.2 -``` -- v2.1.0 and above, for example v2.2.0 -```go -$ go get github.com/agiledragon/gomonkey/v2@v2.2.0 -``` - -## Test Method -```go -$ cd test -$ go test -gcflags=all=-l -``` - -## Using gomonkey - -Please refer to the test cases as idioms, very complete and detailed. - diff --git a/vendor/github.com/agiledragon/gomonkey/v2/creflect/ae1.17.go b/vendor/github.com/agiledragon/gomonkey/v2/creflect/ae1.17.go deleted file mode 100644 index 68a7e750e9d6..000000000000 --- a/vendor/github.com/agiledragon/gomonkey/v2/creflect/ae1.17.go +++ /dev/null @@ -1,39 +0,0 @@ -//go:build go1.17 -// +build go1.17 - -package creflect - -import ( - "unsafe" -) - -// name is an encoded type name with optional extra data. -type name struct { - bytes *byte -} - -func (n name) data(off int, whySafe string) *byte { - return (*byte)(add(unsafe.Pointer(n.bytes), uintptr(off), whySafe)) -} - -func (n name) readVarint(off int) (int, int) { - v := 0 - for i := 0; ; i++ { - x := *n.data(off+i, "read varint") - v += int(x&0x7f) << (7 * i) - if x&0x80 == 0 { - return i + 1, v - } - } -} - -func (n name) name() (s string) { - if n.bytes == nil { - return - } - i, l := n.readVarint(1) - hdr := (*String)(unsafe.Pointer(&s)) - hdr.Data = unsafe.Pointer(n.data(1+i, "non-empty string")) - hdr.Len = l - return -} diff --git a/vendor/github.com/agiledragon/gomonkey/v2/creflect/be1.16.go b/vendor/github.com/agiledragon/gomonkey/v2/creflect/be1.16.go deleted file mode 100644 index 1fb6988afc52..000000000000 --- a/vendor/github.com/agiledragon/gomonkey/v2/creflect/be1.16.go +++ /dev/null @@ -1,25 +0,0 @@ -//go:build !go1.17 -// +build !go1.17 - -package creflect - -import ( - "unsafe" -) - -// name is an encoded type name with optional extra data. -type name struct { - bytes *byte -} - -func (n name) name() (s string) { - if n.bytes == nil { - return - } - b := (*[4]byte)(unsafe.Pointer(n.bytes)) - - hdr := (*String)(unsafe.Pointer(&s)) - hdr.Data = unsafe.Pointer(&b[3]) - hdr.Len = int(b[1])<<8 | int(b[2]) - return s -} diff --git a/vendor/github.com/agiledragon/gomonkey/v2/creflect/type.go b/vendor/github.com/agiledragon/gomonkey/v2/creflect/type.go deleted file mode 100644 index 7df1f0920750..000000000000 --- a/vendor/github.com/agiledragon/gomonkey/v2/creflect/type.go +++ /dev/null @@ -1,179 +0,0 @@ -// Customized reflect package for gomonkey,copy most code from go/src/reflect/type.go - -package creflect - -import ( - "reflect" - "unsafe" -) - -// rtype is the common implementation of most values. -// rtype must be kept in sync with ../runtime/type.go:/^type._type. -type rtype struct { - size uintptr - ptrdata uintptr // number of bytes in the type that can contain pointers - hash uint32 // hash of type; avoids computation in hash tables - tflag tflag // extra type information flags - align uint8 // alignment of variable with this type - fieldAlign uint8 // alignment of struct field with this type - kind uint8 // enumeration for C - // function for comparing objects of this type - // (ptr to object A, ptr to object B) -> ==? - equal func(unsafe.Pointer, unsafe.Pointer) bool - gcdata *byte // garbage collection data - str nameOff // string form - ptrToThis typeOff // type for pointer to this type, may be zero -} - -func Create(t reflect.Type) *rtype { - i := *(*funcValue)(unsafe.Pointer(&t)) - r := (*rtype)(i.p) - return r -} - -type funcValue struct { - _ uintptr - p unsafe.Pointer -} - -func funcPointer(v reflect.Method, ok bool) (unsafe.Pointer, bool) { - return (*funcValue)(unsafe.Pointer(&v.Func)).p, ok -} -func MethodByName(r reflect.Type, name string) (fn unsafe.Pointer, ok bool) { - t := Create(r) - if r.Kind() == reflect.Interface { - return funcPointer(r.MethodByName(name)) - } - ut := t.uncommon(r) - if ut == nil { - return nil, false - } - - for _, p := range ut.methods() { - if t.nameOff(p.name).name() == name { - return t.Method(p), true - } - } - return nil, false -} - -func (t *rtype) Method(p method) (fn unsafe.Pointer) { - tfn := t.textOff(p.tfn) - fn = unsafe.Pointer(&tfn) - return -} - -type tflag uint8 -type nameOff int32 // offset to a name -type typeOff int32 // offset to an *rtype -type textOff int32 // offset from top of text section - -//go:linkname resolveTextOff reflect.resolveTextOff -func resolveTextOff(rtype unsafe.Pointer, off int32) unsafe.Pointer - -func (t *rtype) textOff(off textOff) unsafe.Pointer { - return resolveTextOff(unsafe.Pointer(t), int32(off)) -} - -//go:linkname resolveNameOff reflect.resolveNameOff -func resolveNameOff(ptrInModule unsafe.Pointer, off int32) unsafe.Pointer - -func (t *rtype) nameOff(off nameOff) name { - return name{(*byte)(resolveNameOff(unsafe.Pointer(t), int32(off)))} -} - -const ( - tflagUncommon tflag = 1 << 0 -) - -// uncommonType is present only for defined types or types with methods -type uncommonType struct { - pkgPath nameOff // import path; empty for built-in types like int, string - mcount uint16 // number of methods - xcount uint16 // number of exported methods - moff uint32 // offset from this uncommontype to [mcount]method - _ uint32 // unused -} - -// ptrType represents a pointer type. -type ptrType struct { - rtype - elem *rtype // pointer element (pointed at) type -} - -// funcType represents a function type. -type funcType struct { - rtype - inCount uint16 - outCount uint16 // top bit is set if last input parameter is ... -} - -func add(p unsafe.Pointer, x uintptr, whySafe string) unsafe.Pointer { - return unsafe.Pointer(uintptr(p) + x) -} - -// interfaceType represents an interface type. -type interfaceType struct { - rtype - pkgPath name // import path - methods []imethod // sorted by hash -} - -type imethod struct { - name nameOff // name of method - typ typeOff // .(*FuncType) underneath -} - -type String struct { - Data unsafe.Pointer - Len int -} - -func (t *rtype) uncommon(r reflect.Type) *uncommonType { - if t.tflag&tflagUncommon == 0 { - return nil - } - switch r.Kind() { - case reflect.Ptr: - type u struct { - ptrType - u uncommonType - } - return &(*u)(unsafe.Pointer(t)).u - case reflect.Func: - type u struct { - funcType - u uncommonType - } - return &(*u)(unsafe.Pointer(t)).u - case reflect.Interface: - type u struct { - interfaceType - u uncommonType - } - return &(*u)(unsafe.Pointer(t)).u - case reflect.Struct: - type u struct { - interfaceType - u uncommonType - } - return &(*u)(unsafe.Pointer(t)).u - default: - return nil - } -} - -// Method on non-interface type -type method struct { - name nameOff // name of method - mtyp typeOff // method type (without receiver) - ifn textOff // fn used in interface call (one-word receiver) - tfn textOff // fn used for normal method call -} - -func (t *uncommonType) methods() []method { - if t.mcount == 0 { - return nil - } - return (*[1 << 16]method)(add(unsafe.Pointer(t), uintptr(t.moff), "t.mcount > 0"))[:t.mcount:t.mcount] -} diff --git a/vendor/github.com/agiledragon/gomonkey/v2/jmp_386.go b/vendor/github.com/agiledragon/gomonkey/v2/jmp_386.go deleted file mode 100644 index 27c8d4f21084..000000000000 --- a/vendor/github.com/agiledragon/gomonkey/v2/jmp_386.go +++ /dev/null @@ -1,13 +0,0 @@ -package gomonkey - -func buildJmpDirective(double uintptr) []byte { - d0 := byte(double) - d1 := byte(double >> 8) - d2 := byte(double >> 16) - d3 := byte(double >> 24) - - return []byte{ - 0xBA, d0, d1, d2, d3, // MOV edx, double - 0xFF, 0x22, // JMP [edx] - } -} diff --git a/vendor/github.com/agiledragon/gomonkey/v2/jmp_amd64.go b/vendor/github.com/agiledragon/gomonkey/v2/jmp_amd64.go deleted file mode 100644 index 02c1c42c7018..000000000000 --- a/vendor/github.com/agiledragon/gomonkey/v2/jmp_amd64.go +++ /dev/null @@ -1,18 +0,0 @@ -package gomonkey - -func buildJmpDirective(double uintptr) []byte { - d0 := byte(double) - d1 := byte(double >> 8) - d2 := byte(double >> 16) - d3 := byte(double >> 24) - d4 := byte(double >> 32) - d5 := byte(double >> 40) - d6 := byte(double >> 48) - d7 := byte(double >> 56) - - return []byte{ - 0x48, 0xBA, d0, d1, d2, d3, d4, d5, d6, d7, // MOV rdx, double - 0xFF, 0x22, // JMP [rdx] - } -} - diff --git a/vendor/github.com/agiledragon/gomonkey/v2/jmp_arm64.go b/vendor/github.com/agiledragon/gomonkey/v2/jmp_arm64.go deleted file mode 100644 index add3fd999f6c..000000000000 --- a/vendor/github.com/agiledragon/gomonkey/v2/jmp_arm64.go +++ /dev/null @@ -1,34 +0,0 @@ -package gomonkey - -import "unsafe" - -func buildJmpDirective(double uintptr) []byte { - res := make([]byte, 0, 24) - d0d1 := double & 0xFFFF - d2d3 := double >> 16 & 0xFFFF - d4d5 := double >> 32 & 0xFFFF - d6d7 := double >> 48 & 0xFFFF - - res = append(res, movImm(0B10, 0, d0d1)...) // MOVZ x26, double[16:0] - res = append(res, movImm(0B11, 1, d2d3)...) // MOVK x26, double[32:16] - res = append(res, movImm(0B11, 2, d4d5)...) // MOVK x26, double[48:32] - res = append(res, movImm(0B11, 3, d6d7)...) // MOVK x26, double[64:48] - res = append(res, []byte{0x4A, 0x03, 0x40, 0xF9}...) // LDR x10, [x26] - res = append(res, []byte{0x40, 0x01, 0x1F, 0xD6}...) // BR x10 - - return res -} - -func movImm(opc, shift int, val uintptr) []byte { - var m uint32 = 26 // rd - m |= uint32(val) << 5 // imm16 - m |= uint32(shift&3) << 21 // hw - m |= 0b100101 << 23 // const - m |= uint32(opc&0x3) << 29 // opc - m |= 0b1 << 31 // sf - - res := make([]byte, 4) - *(*uint32)(unsafe.Pointer(&res[0])) = m - - return res -} diff --git a/vendor/github.com/agiledragon/gomonkey/v2/modify_binary_darwin.go b/vendor/github.com/agiledragon/gomonkey/v2/modify_binary_darwin.go deleted file mode 100644 index 6c169888eac4..000000000000 --- a/vendor/github.com/agiledragon/gomonkey/v2/modify_binary_darwin.go +++ /dev/null @@ -1,27 +0,0 @@ -package gomonkey - -import "syscall" - -func modifyBinary(target uintptr, bytes []byte) { - function := entryAddress(target, len(bytes)) - err := mprotectCrossPage(target, len(bytes), syscall.PROT_READ|syscall.PROT_WRITE|syscall.PROT_EXEC) - if err != nil { - panic(err) - } - copy(function, bytes) - err = mprotectCrossPage(target, len(bytes), syscall.PROT_READ|syscall.PROT_EXEC) - if err != nil { - panic(err) - } -} - -func mprotectCrossPage(addr uintptr, length int, prot int) error { - pageSize := syscall.Getpagesize() - for p := pageStart(addr); p < addr+uintptr(length); p += uintptr(pageSize) { - page := entryAddress(p, pageSize) - if err := syscall.Mprotect(page, prot); err != nil { - return err - } - } - return nil -} diff --git a/vendor/github.com/agiledragon/gomonkey/v2/modify_binary_linux.go b/vendor/github.com/agiledragon/gomonkey/v2/modify_binary_linux.go deleted file mode 100644 index 6c169888eac4..000000000000 --- a/vendor/github.com/agiledragon/gomonkey/v2/modify_binary_linux.go +++ /dev/null @@ -1,27 +0,0 @@ -package gomonkey - -import "syscall" - -func modifyBinary(target uintptr, bytes []byte) { - function := entryAddress(target, len(bytes)) - err := mprotectCrossPage(target, len(bytes), syscall.PROT_READ|syscall.PROT_WRITE|syscall.PROT_EXEC) - if err != nil { - panic(err) - } - copy(function, bytes) - err = mprotectCrossPage(target, len(bytes), syscall.PROT_READ|syscall.PROT_EXEC) - if err != nil { - panic(err) - } -} - -func mprotectCrossPage(addr uintptr, length int, prot int) error { - pageSize := syscall.Getpagesize() - for p := pageStart(addr); p < addr+uintptr(length); p += uintptr(pageSize) { - page := entryAddress(p, pageSize) - if err := syscall.Mprotect(page, prot); err != nil { - return err - } - } - return nil -} diff --git a/vendor/github.com/agiledragon/gomonkey/v2/modify_binary_windows.go b/vendor/github.com/agiledragon/gomonkey/v2/modify_binary_windows.go deleted file mode 100644 index ef0dbc756a4e..000000000000 --- a/vendor/github.com/agiledragon/gomonkey/v2/modify_binary_windows.go +++ /dev/null @@ -1,25 +0,0 @@ -package gomonkey - -import ( - "syscall" - "unsafe" -) - -func modifyBinary(target uintptr, bytes []byte) { - function := entryAddress(target, len(bytes)) - - proc := syscall.NewLazyDLL("kernel32.dll").NewProc("VirtualProtect") - const PROT_READ_WRITE = 0x40 - var old uint32 - result, _, _ := proc.Call(target, uintptr(len(bytes)), uintptr(PROT_READ_WRITE), uintptr(unsafe.Pointer(&old))) - if result == 0 { - panic(result) - } - copy(function, bytes) - - var ignore uint32 - result, _, _ = proc.Call(target, uintptr(len(bytes)), uintptr(old), uintptr(unsafe.Pointer(&ignore))) - if result == 0 { - panic(result) - } -} \ No newline at end of file diff --git a/vendor/github.com/agiledragon/gomonkey/v2/patch.go b/vendor/github.com/agiledragon/gomonkey/v2/patch.go deleted file mode 100644 index 468ae6708feb..000000000000 --- a/vendor/github.com/agiledragon/gomonkey/v2/patch.go +++ /dev/null @@ -1,365 +0,0 @@ -package gomonkey - -import ( - "fmt" - "reflect" - "syscall" - "unsafe" - - "github.com/agiledragon/gomonkey/v2/creflect" -) - -type Patches struct { - originals map[uintptr][]byte - values map[reflect.Value]reflect.Value - valueHolders map[reflect.Value]reflect.Value -} - -type Params []interface{} -type OutputCell struct { - Values Params - Times int -} - -func ApplyFunc(target, double interface{}) *Patches { - return create().ApplyFunc(target, double) -} - -func ApplyMethod(target interface{}, methodName string, double interface{}) *Patches { - return create().ApplyMethod(target, methodName, double) -} - -func ApplyMethodFunc(target interface{}, methodName string, doubleFunc interface{}) *Patches { - return create().ApplyMethodFunc(target, methodName, doubleFunc) -} - -func ApplyPrivateMethod(target interface{}, methodName string, double interface{}) *Patches { - return create().ApplyPrivateMethod(target, methodName, double) -} - -func ApplyGlobalVar(target, double interface{}) *Patches { - return create().ApplyGlobalVar(target, double) -} - -func ApplyFuncVar(target, double interface{}) *Patches { - return create().ApplyFuncVar(target, double) -} - -func ApplyFuncSeq(target interface{}, outputs []OutputCell) *Patches { - return create().ApplyFuncSeq(target, outputs) -} - -func ApplyMethodSeq(target interface{}, methodName string, outputs []OutputCell) *Patches { - return create().ApplyMethodSeq(target, methodName, outputs) -} - -func ApplyFuncVarSeq(target interface{}, outputs []OutputCell) *Patches { - return create().ApplyFuncVarSeq(target, outputs) -} - -func ApplyFuncReturn(target interface{}, output ...interface{}) *Patches { - return create().ApplyFuncReturn(target, output...) -} - -func ApplyMethodReturn(target interface{}, methodName string, output ...interface{}) *Patches { - return create().ApplyMethodReturn(target, methodName, output...) -} - -func ApplyFuncVarReturn(target interface{}, output ...interface{}) *Patches { - return create().ApplyFuncVarReturn(target, output...) -} - -func create() *Patches { - return &Patches{originals: make(map[uintptr][]byte), values: make(map[reflect.Value]reflect.Value), valueHolders: make(map[reflect.Value]reflect.Value)} -} - -func NewPatches() *Patches { - return create() -} - -func (this *Patches) ApplyFunc(target, double interface{}) *Patches { - t := reflect.ValueOf(target) - d := reflect.ValueOf(double) - return this.ApplyCore(t, d) -} - -func (this *Patches) ApplyMethod(target interface{}, methodName string, double interface{}) *Patches { - m, ok := castRType(target).MethodByName(methodName) - if !ok { - panic("retrieve method by name failed") - } - d := reflect.ValueOf(double) - return this.ApplyCore(m.Func, d) -} - -func (this *Patches) ApplyMethodFunc(target interface{}, methodName string, doubleFunc interface{}) *Patches { - m, ok := castRType(target).MethodByName(methodName) - if !ok { - panic("retrieve method by name failed") - } - d := funcToMethod(m.Type, doubleFunc) - return this.ApplyCore(m.Func, d) -} - -func (this *Patches) ApplyPrivateMethod(target interface{}, methodName string, double interface{}) *Patches { - m, ok := creflect.MethodByName(castRType(target), methodName) - if !ok { - panic("retrieve method by name failed") - } - d := reflect.ValueOf(double) - return this.ApplyCoreOnlyForPrivateMethod(m, d) -} - -func (this *Patches) ApplyGlobalVar(target, double interface{}) *Patches { - t := reflect.ValueOf(target) - if t.Type().Kind() != reflect.Ptr { - panic("target is not a pointer") - } - - this.values[t] = reflect.ValueOf(t.Elem().Interface()) - d := reflect.ValueOf(double) - t.Elem().Set(d) - return this -} - -func (this *Patches) ApplyFuncVar(target, double interface{}) *Patches { - t := reflect.ValueOf(target) - d := reflect.ValueOf(double) - if t.Type().Kind() != reflect.Ptr { - panic("target is not a pointer") - } - this.check(t.Elem(), d) - return this.ApplyGlobalVar(target, double) -} - -func (this *Patches) ApplyFuncSeq(target interface{}, outputs []OutputCell) *Patches { - funcType := reflect.TypeOf(target) - t := reflect.ValueOf(target) - d := getDoubleFunc(funcType, outputs) - return this.ApplyCore(t, d) -} - -func (this *Patches) ApplyMethodSeq(target interface{}, methodName string, outputs []OutputCell) *Patches { - m, ok := castRType(target).MethodByName(methodName) - if !ok { - panic("retrieve method by name failed") - } - d := getDoubleFunc(m.Type, outputs) - return this.ApplyCore(m.Func, d) -} - -func (this *Patches) ApplyFuncVarSeq(target interface{}, outputs []OutputCell) *Patches { - t := reflect.ValueOf(target) - if t.Type().Kind() != reflect.Ptr { - panic("target is not a pointer") - } - if t.Elem().Kind() != reflect.Func { - panic("target is not a func") - } - - funcType := reflect.TypeOf(target).Elem() - double := getDoubleFunc(funcType, outputs).Interface() - return this.ApplyGlobalVar(target, double) -} - -func (this *Patches) ApplyFuncReturn(target interface{}, returns ...interface{}) *Patches { - funcType := reflect.TypeOf(target) - t := reflect.ValueOf(target) - outputs := []OutputCell{{Values: returns, Times: -1}} - d := getDoubleFunc(funcType, outputs) - return this.ApplyCore(t, d) -} - -func (this *Patches) ApplyMethodReturn(target interface{}, methodName string, returns ...interface{}) *Patches { - m, ok := reflect.TypeOf(target).MethodByName(methodName) - if !ok { - panic("retrieve method by name failed") - } - - outputs := []OutputCell{{Values: returns, Times: -1}} - d := getDoubleFunc(m.Type, outputs) - return this.ApplyCore(m.Func, d) -} - -func (this *Patches) ApplyFuncVarReturn(target interface{}, returns ...interface{}) *Patches { - t := reflect.ValueOf(target) - if t.Type().Kind() != reflect.Ptr { - panic("target is not a pointer") - } - if t.Elem().Kind() != reflect.Func { - panic("target is not a func") - } - - funcType := reflect.TypeOf(target).Elem() - outputs := []OutputCell{{Values: returns, Times: -1}} - double := getDoubleFunc(funcType, outputs).Interface() - return this.ApplyGlobalVar(target, double) -} - -func (this *Patches) Reset() { - for target, bytes := range this.originals { - modifyBinary(target, bytes) - delete(this.originals, target) - } - - for target, variable := range this.values { - target.Elem().Set(variable) - } -} - -func (this *Patches) ApplyCore(target, double reflect.Value) *Patches { - this.check(target, double) - assTarget := *(*uintptr)(getPointer(target)) - original := replace(assTarget, uintptr(getPointer(double))) - if _, ok := this.originals[assTarget]; !ok { - this.originals[assTarget] = original - } - this.valueHolders[double] = double - return this -} - -func (this *Patches) ApplyCoreOnlyForPrivateMethod(target unsafe.Pointer, double reflect.Value) *Patches { - if double.Kind() != reflect.Func { - panic("double is not a func") - } - assTarget := *(*uintptr)(target) - original := replace(assTarget, uintptr(getPointer(double))) - if _, ok := this.originals[assTarget]; !ok { - this.originals[assTarget] = original - } - this.valueHolders[double] = double - return this -} - -func (this *Patches) check(target, double reflect.Value) { - if target.Kind() != reflect.Func { - panic("target is not a func") - } - - if double.Kind() != reflect.Func { - panic("double is not a func") - } - - targetType := target.Type() - doubleType := double.Type() - - if targetType.NumIn() < doubleType.NumIn() || - targetType.NumOut() != doubleType.NumOut() || - (targetType.NumIn() == doubleType.NumIn() && targetType.IsVariadic() != doubleType.IsVariadic()) { - panic(fmt.Sprintf("target type(%s) and double type(%s) are different", target.Type(), double.Type())) - } - - for i, size := 0, doubleType.NumIn(); i < size; i++ { - targetIn := targetType.In(i) - doubleIn := doubleType.In(i) - - if targetIn.AssignableTo(doubleIn) { - continue - } - - panic(fmt.Sprintf("target type(%s) and double type(%s) are different", target.Type(), double.Type())) - } -} - -func replace(target, double uintptr) []byte { - code := buildJmpDirective(double) - bytes := entryAddress(target, len(code)) - original := make([]byte, len(bytes)) - copy(original, bytes) - modifyBinary(target, code) - return original -} - -func getDoubleFunc(funcType reflect.Type, outputs []OutputCell) reflect.Value { - if funcType.NumOut() != len(outputs[0].Values) { - panic(fmt.Sprintf("func type has %v return values, but only %v values provided as double", - funcType.NumOut(), len(outputs[0].Values))) - } - - needReturn := false - slice := make([]Params, 0) - for _, output := range outputs { - if output.Times == -1 { - needReturn = true - slice = []Params{output.Values} - break - } - t := 0 - if output.Times <= 1 { - t = 1 - } else { - t = output.Times - } - for j := 0; j < t; j++ { - slice = append(slice, output.Values) - } - } - - i := 0 - lenOutputs := len(slice) - return reflect.MakeFunc(funcType, func(_ []reflect.Value) []reflect.Value { - if needReturn { - return GetResultValues(funcType, slice[0]...) - } - if i < lenOutputs { - i++ - return GetResultValues(funcType, slice[i-1]...) - } - panic("double seq is less than call seq") - }) -} - -func GetResultValues(funcType reflect.Type, results ...interface{}) []reflect.Value { - var resultValues []reflect.Value - for i, r := range results { - var resultValue reflect.Value - if r == nil { - resultValue = reflect.Zero(funcType.Out(i)) - } else { - v := reflect.New(funcType.Out(i)) - v.Elem().Set(reflect.ValueOf(r)) - resultValue = v.Elem() - } - resultValues = append(resultValues, resultValue) - } - return resultValues -} - -type funcValue struct { - _ uintptr - p unsafe.Pointer -} - -func getPointer(v reflect.Value) unsafe.Pointer { - return (*funcValue)(unsafe.Pointer(&v)).p -} - -func entryAddress(p uintptr, l int) []byte { - return *(*[]byte)(unsafe.Pointer(&reflect.SliceHeader{Data: p, Len: l, Cap: l})) -} - -func pageStart(ptr uintptr) uintptr { - return ptr & ^(uintptr(syscall.Getpagesize() - 1)) -} - -func funcToMethod(funcType reflect.Type, doubleFunc interface{}) reflect.Value { - rf := reflect.TypeOf(doubleFunc) - if rf.Kind() != reflect.Func { - panic("doubleFunc is not a func") - } - vf := reflect.ValueOf(doubleFunc) - return reflect.MakeFunc(funcType, func(in []reflect.Value) []reflect.Value { - if funcType.IsVariadic() { - return vf.CallSlice(in[1:]) - } else { - return vf.Call(in[1:]) - } - }) -} - -func castRType(val interface{}) reflect.Type { - if rTypeVal, ok := val.(reflect.Type); ok { - return rTypeVal - } - return reflect.TypeOf(val) -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 7aaade764a05..56315f4aa360 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -56,10 +56,6 @@ github.com/Azure/go-autorest/tracing # github.com/agext/levenshtein v1.2.3 ## explicit github.com/agext/levenshtein -# github.com/agiledragon/gomonkey/v2 v2.9.0 -## explicit; go 1.14 -github.com/agiledragon/gomonkey/v2 -github.com/agiledragon/gomonkey/v2/creflect # github.com/apparentlymart/go-textseg v1.0.0 ## explicit github.com/apparentlymart/go-textseg/textseg From 8f6da9f0fea12c502ed3198552760af6d2220349 Mon Sep 17 00:00:00 2001 From: Heng Lu <79895375+ms-henglu@users.noreply.github.com> Date: Wed, 6 Sep 2023 15:29:18 +0800 Subject: [PATCH 114/336] `azurerm_kubernetes_cluster` - fix tests (#23154) * `azurerm_kubernetes_cluster` - fix tests * Revert "`azurerm_kubernetes_cluster` - fix tests" This reverts commit b274973fe1c08a6406aab3ccc6d32be9c0941722. * `azurerm_kubernetes_cluster` - set default value for `public_network_access_enabled` when import * add comment to review at planning phase for next major release --------- Co-authored-by: stephybun --- .../containers/kubernetes_cluster_resource.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/internal/services/containers/kubernetes_cluster_resource.go b/internal/services/containers/kubernetes_cluster_resource.go index 7e904aea5048..37ef324cecdc 100644 --- a/internal/services/containers/kubernetes_cluster_resource.go +++ b/internal/services/containers/kubernetes_cluster_resource.go @@ -53,10 +53,19 @@ func resourceKubernetesCluster() *pluginsdk.Resource { Update: resourceKubernetesClusterUpdate, Delete: resourceKubernetesClusterDelete, - Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { - _, err := commonids.ParseKubernetesClusterID(id) - return err - }), + Importer: pluginsdk.ImporterValidatingResourceIdThen( + func(id string) error { + _, err := commonids.ParseKubernetesClusterID(id) + return err + }, + // TODO 4.0: we're defaulting this at import time because the property is non-functional. + // In the lead up to 4.0 planning if the feature still isn't functional we should look at + // removing this entirely. + func(ctx context.Context, d *pluginsdk.ResourceData, meta interface{}) ([]*pluginsdk.ResourceData, error) { + d.Set("public_network_access_enabled", true) + return []*pluginsdk.ResourceData{d}, nil + }, + ), CustomizeDiff: pluginsdk.CustomDiffInSequence( // Migration of `identity` to `service_principal` is not allowed, the other way around is From b34ccad527600b3f62d07fc565f741f0dce65816 Mon Sep 17 00:00:00 2001 From: Neil Ye Date: Wed, 6 Sep 2023 15:30:48 +0800 Subject: [PATCH 115/336] `azurerm_bot_channel_direct_line_speech` - support for `cognitive_service_id` (#23106) * azurerm_bot_channel_direct_line_speech - support for cognitive_service_id * update code * update code * update code * update code --- .../bot_channel_direct_line_speech_resource.go | 18 ++++++++++++++++++ ...channel_direct_line_speech_resource_test.go | 2 ++ ...ot_channel_direct_line_speech.html.markdown | 2 ++ 3 files changed, 22 insertions(+) diff --git a/internal/services/bot/bot_channel_direct_line_speech_resource.go b/internal/services/bot/bot_channel_direct_line_speech_resource.go index d0fb0b0f0d75..d07ffc5fe8ca 100644 --- a/internal/services/bot/bot_channel_direct_line_speech_resource.go +++ b/internal/services/bot/bot_channel_direct_line_speech_resource.go @@ -11,6 +11,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/go-azure-sdk/resource-manager/cognitive/2023-05-01/cognitiveservicesaccounts" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" @@ -64,6 +65,12 @@ func resourceBotChannelDirectLineSpeech() *pluginsdk.Resource { "cognitive_service_location": commonschema.LocationWithoutForceNew(), + "cognitive_account_id": { + Type: schema.TypeString, + Optional: true, + ValidateFunc: cognitiveservicesaccounts.ValidateAccountID, + }, + "custom_speech_model_id": { Type: schema.TypeString, Optional: true, @@ -112,6 +119,11 @@ func resourceBotChannelDirectLineSpeechCreate(d *pluginsdk.ResourceData, meta in Kind: botservice.KindBot, } + if v, ok := d.GetOk("cognitive_account_id"); ok { + channel, _ := channel.Properties.AsDirectLineSpeechChannel() + channel.Properties.CognitiveServiceResourceID = utils.String(v.(string)) + } + if v, ok := d.GetOk("custom_speech_model_id"); ok { channel, _ := channel.Properties.AsDirectLineSpeechChannel() channel.Properties.CustomSpeechModelID = utils.String(v.(string)) @@ -158,6 +170,7 @@ func resourceBotChannelDirectLineSpeechRead(d *pluginsdk.ResourceData, meta inte if props := resp.Properties; props != nil { if channel, ok := props.AsDirectLineSpeechChannel(); ok { if channelProps := channel.Properties; channelProps != nil { + d.Set("cognitive_account_id", channelProps.CognitiveServiceResourceID) d.Set("custom_speech_model_id", channelProps.CustomSpeechModelID) d.Set("custom_voice_deployment_id", channelProps.CustomVoiceDeploymentID) } @@ -191,6 +204,11 @@ func resourceBotChannelDirectLineSpeechUpdate(d *pluginsdk.ResourceData, meta in Kind: botservice.KindBot, } + if d.HasChange("cognitive_account_id") { + channel, _ := channel.Properties.AsDirectLineSpeechChannel() + channel.Properties.CognitiveServiceResourceID = utils.String(d.Get("cognitive_account_id").(string)) + } + if v, ok := d.GetOk("custom_speech_model_id"); ok { channel, _ := channel.Properties.AsDirectLineSpeechChannel() channel.Properties.CustomSpeechModelID = utils.String(v.(string)) diff --git a/internal/services/bot/bot_channel_direct_line_speech_resource_test.go b/internal/services/bot/bot_channel_direct_line_speech_resource_test.go index 27e58f32d686..e6a59e91f2b8 100644 --- a/internal/services/bot/bot_channel_direct_line_speech_resource_test.go +++ b/internal/services/bot/bot_channel_direct_line_speech_resource_test.go @@ -171,6 +171,7 @@ resource "azurerm_bot_channel_direct_line_speech" "test" { bot_name = azurerm_bot_channels_registration.test.name location = azurerm_bot_channels_registration.test.location resource_group_name = azurerm_resource_group.test.name + cognitive_account_id = azurerm_cognitive_account.test.id cognitive_service_location = azurerm_cognitive_account.test.location cognitive_service_access_key = azurerm_cognitive_account.test.primary_access_key custom_speech_model_id = "a9316355-7b04-4468-9f6e-114419e6c9cc" @@ -206,6 +207,7 @@ resource "azurerm_bot_channel_direct_line_speech" "test" { bot_name = azurerm_bot_channels_registration.test.name location = azurerm_bot_channels_registration.test.location resource_group_name = azurerm_resource_group.test.name + cognitive_account_id = azurerm_cognitive_account.test2.id cognitive_service_location = azurerm_cognitive_account.test2.location cognitive_service_access_key = azurerm_cognitive_account.test2.primary_access_key custom_speech_model_id = "cf7a4202-9be3-4195-9619-5a747260626d" diff --git a/website/docs/r/bot_channel_direct_line_speech.html.markdown b/website/docs/r/bot_channel_direct_line_speech.html.markdown index bf18c4dcc96c..58d88286e99e 100644 --- a/website/docs/r/bot_channel_direct_line_speech.html.markdown +++ b/website/docs/r/bot_channel_direct_line_speech.html.markdown @@ -55,6 +55,8 @@ The following arguments are supported: * `bot_name` - (Required) The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created. +* `cognitive_account_id` - (Optional) The ID of the Cognitive Account this Bot Channel should be associated with. + * `cognitive_service_access_key` - (Required) The access key to access the Cognitive Service. * `cognitive_service_location` - (Required) Specifies the supported Azure location where the Cognitive Service resource exists. From c91f9512605934c7f035ce92e82e69c162ff9b81 Mon Sep 17 00:00:00 2001 From: bloewes <117997874+bloewes@users.noreply.github.com> Date: Wed, 6 Sep 2023 11:25:07 +0200 Subject: [PATCH 116/336] Fix wrong container ID and file share IDs for all Azure ML Data stores (#23140) * Update machine_learning_datastore_datalake_gen2_resource.go * Update machine_learning_datastore_blobstorage_resource.go * Update machine_learning_datastore_fileshare_resource.go * fix --- ...machine_learning_datastore_blobstorage_resource.go | 11 ++++++++++- ...chine_learning_datastore_datalake_gen2_resource.go | 10 +++++++++- .../machine_learning_datastore_fileshare_resource.go | 11 ++++++++++- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/internal/services/machinelearning/machine_learning_datastore_blobstorage_resource.go b/internal/services/machinelearning/machine_learning_datastore_blobstorage_resource.go index 9dd8f17c3f44..e64c2729071f 100644 --- a/internal/services/machinelearning/machine_learning_datastore_blobstorage_resource.go +++ b/internal/services/machinelearning/machine_learning_datastore_blobstorage_resource.go @@ -282,6 +282,7 @@ func (r MachineLearningDataStoreBlobStorage) Read() sdk.ResourceFunc { Timeout: 5 * time.Minute, Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { client := metadata.Client.MachineLearning.Datastore + storageClient := metadata.Client.Storage subscriptionId := metadata.Client.Account.SubscriptionId id, err := datastore.ParseDataStoreID(metadata.ResourceData.Id()) @@ -310,8 +311,16 @@ func (r MachineLearningDataStoreBlobStorage) Read() sdk.ResourceFunc { } model.ServiceDataAuthIdentity = serviceDataAuth - containerId := commonids.NewStorageContainerID(subscriptionId, workspaceId.ResourceGroupName, *data.AccountName, *data.ContainerName) + storageAccount, err := storageClient.FindAccount(ctx, *data.AccountName) + if err != nil { + return fmt.Errorf("retrieving Account %q for Container %q: %s", *data.AccountName, *data.ContainerName, err) + } + if storageAccount == nil { + return fmt.Errorf("Unable to locate Storage Account %q!", *data.AccountName) + } + containerId := commonids.NewStorageContainerID(subscriptionId, storageAccount.ResourceGroup, *data.AccountName, *data.ContainerName) model.StorageContainerID = containerId.ID() + model.IsDefault = *data.IsDefault if v, ok := metadata.ResourceData.GetOk("account_key"); ok { diff --git a/internal/services/machinelearning/machine_learning_datastore_datalake_gen2_resource.go b/internal/services/machinelearning/machine_learning_datastore_datalake_gen2_resource.go index 365a7db046e3..eceb7ed3a240 100644 --- a/internal/services/machinelearning/machine_learning_datastore_datalake_gen2_resource.go +++ b/internal/services/machinelearning/machine_learning_datastore_datalake_gen2_resource.go @@ -282,6 +282,7 @@ func (r MachineLearningDataStoreDataLakeGen2) Read() sdk.ResourceFunc { Timeout: 5 * time.Minute, Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { client := metadata.Client.MachineLearning.Datastore + storageClient := metadata.Client.Storage subscriptionId := metadata.Client.Account.SubscriptionId id, err := datastore.ParseDataStoreID(metadata.ResourceData.Id()) @@ -310,7 +311,14 @@ func (r MachineLearningDataStoreDataLakeGen2) Read() sdk.ResourceFunc { } model.ServiceDataIdentity = serviceDataIdentity - containerId := commonids.NewStorageContainerID(subscriptionId, workspaceId.ResourceGroupName, data.AccountName, data.Filesystem) + storageAccount, err := storageClient.FindAccount(ctx, data.AccountName) + if err != nil { + return fmt.Errorf("retrieving Account %q for Data Lake Gen2 File System %q: %s", data.AccountName, data.Filesystem, err) + } + if storageAccount == nil { + return fmt.Errorf("Unable to locate Storage Account %q!", data.AccountName) + } + containerId := commonids.NewStorageContainerID(subscriptionId, storageAccount.ResourceGroup, data.AccountName, data.Filesystem) model.StorageContainerID = containerId.ID() model.IsDefault = *data.IsDefault diff --git a/internal/services/machinelearning/machine_learning_datastore_fileshare_resource.go b/internal/services/machinelearning/machine_learning_datastore_fileshare_resource.go index 0dd3edd78058..f646f0b65b12 100644 --- a/internal/services/machinelearning/machine_learning_datastore_fileshare_resource.go +++ b/internal/services/machinelearning/machine_learning_datastore_fileshare_resource.go @@ -273,6 +273,7 @@ func (r MachineLearningDataStoreFileShare) Read() sdk.ResourceFunc { Timeout: 5 * time.Minute, Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { client := metadata.Client.MachineLearning.Datastore + storageClient := metadata.Client.Storage subscriptionId := metadata.Client.Account.SubscriptionId id, err := datastore.ParseDataStoreID(metadata.ResourceData.Id()) @@ -301,8 +302,16 @@ func (r MachineLearningDataStoreFileShare) Read() sdk.ResourceFunc { } model.ServiceDataIdentity = serviceDataIdentity - fileShareId := storageparse.NewStorageShareResourceManagerID(subscriptionId, workspaceId.ResourceGroupName, data.AccountName, "default", data.FileShareName) + storageAccount, err := storageClient.FindAccount(ctx, data.AccountName) + if err != nil { + return fmt.Errorf("retrieving Account %q for Share %q: %s", data.AccountName, data.FileShareName, err) + } + if storageAccount == nil { + return fmt.Errorf("Unable to locate Storage Account %q!", data.AccountName) + } + fileShareId := storageparse.NewStorageShareResourceManagerID(subscriptionId, storageAccount.ResourceGroup, data.AccountName, "default", data.FileShareName) model.StorageFileShareID = fileShareId.ID() + model.IsDefault = *data.IsDefault if v, ok := metadata.ResourceData.GetOk("account_key"); ok { From e432849b2fb3e2bdf1727e12611768cf9be513b9 Mon Sep 17 00:00:00 2001 From: catriona-m <86247157+catriona-m@users.noreply.github.com> Date: Wed, 6 Sep 2023 10:27:22 +0100 Subject: [PATCH 117/336] Update CHANGELOG.md #23140 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e9cfba49a2d..a08bd49e6e7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ BUG FIXES: * `azurerm_pim_active_role_assignment`: polling for the duration of the timeout, rather than a fixed 5 minute value [GH-22932] * `azurerm_policy_set_definition` - only sending `parameters` when a value is configured [GH-23155] * `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` [GH-23019] +* `machine_learning_datastore_*` - fixes container ids [GH-23140] ## 3.71.0 (August 24, 2023) From 41077abb62c9a9b7cf7d342ca5dad2133e1ad7a0 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 6 Sep 2023 13:08:23 +0200 Subject: [PATCH 118/336] redisenterprise: updating the test names to include `TestAcc` since that's used to run the tests Also removing a couple of region specific tests, since this is tested in the basic test --- .../redis_enterprise_cluster_resource_test.go | 49 ----------------- ...is_enterprise_database_data_source_test.go | 4 +- ...redis_enterprise_database_resource_test.go | 54 +++++++++---------- 3 files changed, 29 insertions(+), 78 deletions(-) diff --git a/internal/services/redisenterprise/redis_enterprise_cluster_resource_test.go b/internal/services/redisenterprise/redis_enterprise_cluster_resource_test.go index af000b59b835..c1092f3f5ad0 100644 --- a/internal/services/redisenterprise/redis_enterprise_cluster_resource_test.go +++ b/internal/services/redisenterprise/redis_enterprise_cluster_resource_test.go @@ -91,34 +91,6 @@ func TestAccRedisEnterpriseCluster_update(t *testing.T) { }) } -func TestAccRedisEnterpriseCluster_support_westus3(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_redis_enterprise_cluster", "test") - r := RedisEnterpriseClusterResource{} - data.ResourceTest(t, r, []acceptance.TestStep{ - { - Config: r.supportNewRegions(data, "westus3"), - Check: acceptance.ComposeTestCheckFunc( - check.That(data.ResourceName).ExistsInAzure(r), - ), - }, - data.ImportStep(), - }) -} - -func TestAccRedisEnterpriseCluster_support_northcentralus(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_redis_enterprise_cluster", "test") - r := RedisEnterpriseClusterResource{} - data.ResourceTest(t, r, []acceptance.TestStep{ - { - Config: r.supportNewRegions(data, "northcentralus"), - Check: acceptance.ComposeTestCheckFunc( - check.That(data.ResourceName).ExistsInAzure(r), - ), - }, - data.ImportStep(), - }) -} - func (r RedisEnterpriseClusterResource) Exists(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := redisenterprise.ParseRedisEnterpriseID(state.ID) if err != nil { @@ -218,24 +190,3 @@ resource "azurerm_redis_enterprise_cluster" "test" { } `, template, data.RandomInteger) } - -func (r RedisEnterpriseClusterResource) supportNewRegions(data acceptance.TestData, region string) string { - return fmt.Sprintf(` -provider "azurerm" { - features {} -} - -resource "azurerm_resource_group" "test" { - name = "acctestRG-redisEnterprise-%[1]d" - location = "%[2]s" -} - -resource "azurerm_redis_enterprise_cluster" "test" { - name = "acctest-rec-%[1]d" - resource_group_name = azurerm_resource_group.test.name - location = azurerm_resource_group.test.location - - sku_name = "Enterprise_E100-2" -} -`, data.RandomInteger, region) -} diff --git a/internal/services/redisenterprise/redis_enterprise_database_data_source_test.go b/internal/services/redisenterprise/redis_enterprise_database_data_source_test.go index 4399db34513f..3873408ee600 100644 --- a/internal/services/redisenterprise/redis_enterprise_database_data_source_test.go +++ b/internal/services/redisenterprise/redis_enterprise_database_data_source_test.go @@ -66,7 +66,7 @@ data "azurerm_redis_enterprise_database" "test" { resource_group_name = azurerm_resource_group.test.name cluster_id = azurerm_redis_enterprise_cluster.test.id } -`, RedisenterpriseDatabaseResource{}.basic(data)) +`, RedisEnterpriseDatabaseResource{}.basic(data)) } func (r RedisEnterpriseDatabaseDataSource) dataSourceGeoDatabase(data acceptance.TestData) string { @@ -80,5 +80,5 @@ data "azurerm_redis_enterprise_database" "test" { resource_group_name = azurerm_resource_group.test.name cluster_id = azurerm_redis_enterprise_cluster.test.id } -`, RedisenterpriseDatabaseResource{}.geoDatabase(data)) +`, RedisEnterpriseDatabaseResource{}.geoDatabase(data)) } diff --git a/internal/services/redisenterprise/redis_enterprise_database_resource_test.go b/internal/services/redisenterprise/redis_enterprise_database_resource_test.go index b1eade598c46..9dbe93c656c1 100644 --- a/internal/services/redisenterprise/redis_enterprise_database_resource_test.go +++ b/internal/services/redisenterprise/redis_enterprise_database_resource_test.go @@ -17,11 +17,11 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/utils" ) -type RedisenterpriseDatabaseResource struct{} +type RedisEnterpriseDatabaseResource struct{} -func TestRedisEnterpriseDatabase_basic(t *testing.T) { +func TestAccRedisEnterpriseDatabase_basic(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_redis_enterprise_database", "test") - r := RedisenterpriseDatabaseResource{} + r := RedisEnterpriseDatabaseResource{} data.ResourceTest(t, r, []acceptance.TestStep{ { Config: r.basic(data), @@ -33,9 +33,9 @@ func TestRedisEnterpriseDatabase_basic(t *testing.T) { }) } -func TestRedisEnterpriseDatabase_requiresImport(t *testing.T) { +func TestAccRedisEnterpriseDatabase_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_redis_enterprise_database", "test") - r := RedisenterpriseDatabaseResource{} + r := RedisEnterpriseDatabaseResource{} data.ResourceTest(t, r, []acceptance.TestStep{ { Config: r.basic(data), @@ -47,9 +47,9 @@ func TestRedisEnterpriseDatabase_requiresImport(t *testing.T) { }) } -func TestRedisEnterpriseDatabase_complete(t *testing.T) { +func TestAccRedisEnterpriseDatabase_complete(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_redis_enterprise_database", "test") - r := RedisenterpriseDatabaseResource{} + r := RedisEnterpriseDatabaseResource{} data.ResourceTest(t, r, []acceptance.TestStep{ { Config: r.complete(data), @@ -61,9 +61,9 @@ func TestRedisEnterpriseDatabase_complete(t *testing.T) { }) } -func TestRedisEnterpriseDatabase_geoDatabase(t *testing.T) { +func TestAccRedisEnterpriseDatabase_geoDatabase(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_redis_enterprise_database", "test") - r := RedisenterpriseDatabaseResource{} + r := RedisEnterpriseDatabaseResource{} data.ResourceTest(t, r, []acceptance.TestStep{ { Config: r.geoDatabase(data), @@ -75,9 +75,9 @@ func TestRedisEnterpriseDatabase_geoDatabase(t *testing.T) { }) } -func TestRedisEnterpriseDatabase_geoDatabaseOtherEvictionPolicy(t *testing.T) { +func TestAccRedisEnterpriseDatabase_geoDatabaseOtherEvictionPolicy(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_redis_enterprise_database", "test") - r := RedisenterpriseDatabaseResource{} + r := RedisEnterpriseDatabaseResource{} data.ResourceTest(t, r, []acceptance.TestStep{ { Config: r.geoDatabaseOtherEvictionPolicy(data), @@ -89,9 +89,9 @@ func TestRedisEnterpriseDatabase_geoDatabaseOtherEvictionPolicy(t *testing.T) { }) } -func TestRedisEnterpriseDatabase_geoDatabaseModule(t *testing.T) { +func TestAccRedisEnterpriseDatabase_geoDatabaseModule(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_redis_enterprise_database", "test") - r := RedisenterpriseDatabaseResource{} + r := RedisEnterpriseDatabaseResource{} data.ResourceTest(t, r, []acceptance.TestStep{ { Config: r.geoDatabasewithModuleEnabled(data), @@ -103,9 +103,9 @@ func TestRedisEnterpriseDatabase_geoDatabaseModule(t *testing.T) { }) } -func TestRedisEnterpriseDatabase_geoDatabaseWithRedisJsonModule(t *testing.T) { +func TestAccRedisEnterpriseDatabase_geoDatabaseWithRedisJsonModule(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_redis_enterprise_database", "test") - r := RedisenterpriseDatabaseResource{} + r := RedisEnterpriseDatabaseResource{} data.ResourceTest(t, r, []acceptance.TestStep{ { Config: r.geoDatabasewithRedisJsonModuleEnabled(data), @@ -117,9 +117,9 @@ func TestRedisEnterpriseDatabase_geoDatabaseWithRedisJsonModule(t *testing.T) { }) } -func TestRedisEnterpriseDatabase_unlinkDatabase(t *testing.T) { +func TestAccRedisEnterpriseDatabase_unlinkDatabase(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_redis_enterprise_database", "test") - r := RedisenterpriseDatabaseResource{} + r := RedisEnterpriseDatabaseResource{} data.ResourceTest(t, r, []acceptance.TestStep{ { Config: r.geoDatabase(data), @@ -138,7 +138,7 @@ func TestRedisEnterpriseDatabase_unlinkDatabase(t *testing.T) { }) } -func (r RedisenterpriseDatabaseResource) Exists(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { +func (r RedisEnterpriseDatabaseResource) Exists(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := databases.ParseDatabaseID(state.ID) if err != nil { return nil, err @@ -156,7 +156,7 @@ func (r RedisenterpriseDatabaseResource) Exists(ctx context.Context, client *cli return utils.Bool(true), nil } -func (r RedisenterpriseDatabaseResource) template(data acceptance.TestData) string { +func (r RedisEnterpriseDatabaseResource) template(data acceptance.TestData) string { // I have to hardcode the location because some features are not currently available in all regions return fmt.Sprintf(` provider "azurerm" { @@ -192,7 +192,7 @@ resource "azurerm_redis_enterprise_cluster" "test2" { `, data.RandomInteger, "eastus", data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func (r RedisenterpriseDatabaseResource) basic(data acceptance.TestData) string { +func (r RedisEnterpriseDatabaseResource) basic(data acceptance.TestData) string { template := r.template(data) return fmt.Sprintf(` %s @@ -205,7 +205,7 @@ resource "azurerm_redis_enterprise_database" "test" { `, template) } -func (r RedisenterpriseDatabaseResource) requiresImport(data acceptance.TestData) string { +func (r RedisEnterpriseDatabaseResource) requiresImport(data acceptance.TestData) string { config := r.basic(data) return fmt.Sprintf(` %s @@ -218,7 +218,7 @@ resource "azurerm_redis_enterprise_database" "import" { `, config) } -func (r RedisenterpriseDatabaseResource) complete(data acceptance.TestData) string { +func (r RedisEnterpriseDatabaseResource) complete(data acceptance.TestData) string { template := r.template(data) return fmt.Sprintf(` %s @@ -256,7 +256,7 @@ resource "azurerm_redis_enterprise_database" "test" { `, template) } -func (r RedisenterpriseDatabaseResource) geoDatabase(data acceptance.TestData) string { +func (r RedisEnterpriseDatabaseResource) geoDatabase(data acceptance.TestData) string { return fmt.Sprintf(` %s resource "azurerm_redis_enterprise_database" "test" { @@ -278,7 +278,7 @@ resource "azurerm_redis_enterprise_database" "test" { `, r.template(data)) } -func (r RedisenterpriseDatabaseResource) geoDatabaseOtherEvictionPolicy(data acceptance.TestData) string { +func (r RedisEnterpriseDatabaseResource) geoDatabaseOtherEvictionPolicy(data acceptance.TestData) string { return fmt.Sprintf(` %s resource "azurerm_redis_enterprise_database" "test" { @@ -300,7 +300,7 @@ resource "azurerm_redis_enterprise_database" "test" { `, r.template(data)) } -func (r RedisenterpriseDatabaseResource) unlinkDatabase(data acceptance.TestData) string { +func (r RedisEnterpriseDatabaseResource) unlinkDatabase(data acceptance.TestData) string { return fmt.Sprintf(` %s resource "azurerm_redis_enterprise_database" "test" { @@ -321,7 +321,7 @@ resource "azurerm_redis_enterprise_database" "test" { `, r.template(data)) } -func (r RedisenterpriseDatabaseResource) geoDatabasewithModuleEnabled(data acceptance.TestData) string { +func (r RedisEnterpriseDatabaseResource) geoDatabasewithModuleEnabled(data acceptance.TestData) string { return fmt.Sprintf(` %s resource "azurerm_redis_enterprise_database" "test" { @@ -346,7 +346,7 @@ resource "azurerm_redis_enterprise_database" "test" { `, r.template(data)) } -func (r RedisenterpriseDatabaseResource) geoDatabasewithRedisJsonModuleEnabled(data acceptance.TestData) string { +func (r RedisEnterpriseDatabaseResource) geoDatabasewithRedisJsonModuleEnabled(data acceptance.TestData) string { return fmt.Sprintf(` %s resource "azurerm_redis_enterprise_database" "test" { From 6a2cc08974bb2a4587b7b578bf061eda35683307 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Wed, 6 Sep 2023 13:12:31 +0200 Subject: [PATCH 119/336] updating to include #23178 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a08bd49e6e7f..cb449bd684fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ ENHANCEMENTS: * dependencies: updating to `v0.20230901.1104643` of `github.com/hashicorp/go-azure-sdk` [GH-23153] * `containerapps`: updating to API Version `2023-05-01` [GH-22804] * `keyvault`: upgrade remaining resources to `2023-02-01` [GH-23089] +* `redisenterprise`: updating to API Version `2023-07-01` [GH-23178] * `internal/sdk`: typed resources using a custom importer now get a timed context [GH-23081] * `azurerm_batch_pool` - support for `automatic_upgrade_enabled` [GH-23021] * `azurerm_container_app_environment` - support for the `dapr_application_insights_connection_string` [GH-23080] From 42c000ff1ed9581abcf7eaf6f392bd3088fbb57b Mon Sep 17 00:00:00 2001 From: hc-github-team-tf-azure <> Date: Wed, 6 Sep 2023 16:06:23 +0000 Subject: [PATCH 120/336] Updating based on f72f7d923 --- internal/services/network/vpn_gateway_nat_rule_resource.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/services/network/vpn_gateway_nat_rule_resource.go b/internal/services/network/vpn_gateway_nat_rule_resource.go index 6098061f8c0e..822a7c2a7f18 100644 --- a/internal/services/network/vpn_gateway_nat_rule_resource.go +++ b/internal/services/network/vpn_gateway_nat_rule_resource.go @@ -8,9 +8,8 @@ import ( "log" "time" - "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/virtualwans" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/virtualwans" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/features" From 9a5ab7edb6149fa847b9bbe9c494efd54f601ba4 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 6 Sep 2023 18:14:49 +0200 Subject: [PATCH 121/336] dependencies: updating to `v0.20230906.1160501` of `github.com/hashicorp/go-azure-sdk` --- go.mod | 2 +- go.sum | 4 +- .../2021-08-08/alertprocessingrules/README.md | 28 ++-- ...teorupdate.go => method_createorupdate.go} | 6 +- ...cessingrulesdelete.go => method_delete.go} | 6 +- ...grulesgetbyname.go => method_getbyname.go} | 6 +- ...ption.go => method_listbyresourcegroup.go} | 22 ++-- ...egroup.go => method_listbysubscription.go} | 22 ++-- ...cessingrulesupdate.go => method_update.go} | 6 +- .../softwareupdateconfiguration/README.md | 16 +-- .../method_create_autorest.go | 98 ++++++++++++++ .../method_delete_autorest.go | 95 ++++++++++++++ .../method_getbyname_autorest.go | 97 ++++++++++++++ .../method_list_autorest.go | 103 +++++++++++++++ ...wareupdateconfigurationscreate_autorest.go | 98 -------------- ...wareupdateconfigurationsdelete_autorest.go | 95 -------------- ...eupdateconfigurationsgetbyname_autorest.go | 97 -------------- ...ftwareupdateconfigurationslist_autorest.go | 103 --------------- .../README.md | 8 +- ...achinerunsgetbyid.go => method_getbyid.go} | 18 +-- ...ationmachinerunslist.go => method_list.go} | 18 +-- .../softwareupdateconfigurationrun/README.md | 8 +- ...rationrunsgetbyid.go => method_getbyid.go} | 18 +-- ...onfigurationrunslist.go => method_list.go} | 18 +-- .../2023-03-01/extensions/README.md | 26 ++-- ...d_extensionscreate.go => method_create.go} | 16 +-- ...d_extensionsdelete.go => method_delete.go} | 16 +-- ...{method_extensionsget.go => method_get.go} | 6 +- ...csetting.go => method_listbyarcsetting.go} | 22 ++-- ...d_extensionsupdate.go => method_update.go} | 16 +-- ...extensionsupgrade.go => method_upgrade.go} | 16 +-- .../azurestackhci/2023-03-01/offers/README.md | 16 +-- .../{method_offersget.go => method_get.go} | 18 +-- ...stbycluster.go => method_listbycluster.go} | 34 ++--- ...publisher.go => method_listbypublisher.go} | 34 ++--- .../2023-03-01/publishers/README.md | 10 +- ...{method_publishersget.go => method_get.go} | 6 +- ...stbycluster.go => method_listbycluster.go} | 22 ++-- .../2023-03-01/updateruns/README.md | 18 +-- ...d_updaterunsdelete.go => method_delete.go} | 16 +-- ...{method_updaterunsget.go => method_get.go} | 6 +- ...ethod_updaterunslist.go => method_list.go} | 22 ++-- ...{method_updaterunsput.go => method_put.go} | 6 +- .../2023-03-01/updates/README.md | 22 ++-- ...thod_updatesdelete.go => method_delete.go} | 16 +-- .../{method_updatesget.go => method_get.go} | 6 +- .../{method_updateslist.go => method_list.go} | 22 ++-- .../{method_updatespost.go => method_post.go} | 16 +-- .../{method_updatesput.go => method_put.go} | 6 +- .../2023-03-01/updatesummaries/README.md | 18 +-- ...atesummariesdelete.go => method_delete.go} | 16 +-- ...od_updatesummariesget.go => method_get.go} | 6 +- ..._updatesummarieslist.go => method_list.go} | 22 ++-- ...od_updatesummariesput.go => method_put.go} | 6 +- .../dns/2018-05-01/dns/README.md | 4 +- ..._resourcereferencegetbytargetresources.go} | 6 +- .../2022-11-10/privatelinkscopes/README.md | 36 +++--- ...teorupdate.go => method_createorupdate.go} | 6 +- .../privatelinkscopes/method_delete.go | 71 ++++++++++ ..._privatelinkscopesget.go => method_get.go} | 6 +- ...ails.go => method_getvalidationdetails.go} | 6 +- ... method_getvalidationdetailsformachine.go} | 6 +- ...rivatelinkscopeslist.go => method_list.go} | 22 ++-- ...group.go => method_listbyresourcegroup.go} | 22 ++-- .../method_privatelinkscopesdelete.go | 71 ---------- ...opesupdatetags.go => method_updatetags.go} | 6 +- .../media/2021-11-01/accountfilters/README.md | 22 ++-- ...teorupdate.go => method_createorupdate.go} | 6 +- .../accountfilters/method_delete.go} | 6 +- ...hod_accountfiltersget.go => method_get.go} | 6 +- .../accountfilters/method_list.go} | 22 ++-- .../accountfilters/method_update.go} | 6 +- .../2021-11-01/contentkeypolicies/README.md | 26 ++-- ...teorupdate.go => method_createorupdate.go} | 6 +- .../contentkeypolicies/method_delete.go} | 6 +- ...contentkeypoliciesget.go => method_get.go} | 6 +- .../method_getpolicypropertieswithsecrets.go} | 6 +- ...ntentkeypolicieslist.go => method_list.go} | 34 ++--- ...tkeypoliciesupdate.go => method_update.go} | 6 +- .../media/2022-08-01/accountfilters/README.md | 22 ++-- ...teorupdate.go => method_createorupdate.go} | 6 +- .../accountfilters/method_delete.go} | 6 +- ...hod_accountfiltersget.go => method_get.go} | 6 +- .../accountfilters/method_list.go} | 22 ++-- .../accountfilters/method_update.go} | 6 +- .../2022-08-01/contentkeypolicies/README.md | 26 ++-- ...teorupdate.go => method_createorupdate.go} | 6 +- .../contentkeypolicies/method_delete.go} | 6 +- ...contentkeypoliciesget.go => method_get.go} | 6 +- .../method_getpolicypropertieswithsecrets.go} | 6 +- ...ntentkeypolicieslist.go => method_list.go} | 34 ++--- ...tkeypoliciesupdate.go => method_update.go} | 6 +- .../netapp/2022-05-01/volumegroups/README.md | 16 +-- ...volumegroupscreate.go => method_create.go} | 16 +-- ...volumegroupsdelete.go => method_delete.go} | 16 +-- ...ethod_volumegroupsget.go => method_get.go} | 6 +- ...count.go => method_listbynetappaccount.go} | 6 +- .../README.md | 10 +- ...estsdefaultget.go => method_defaultget.go} | 6 +- ...afdynamicmanifestsget.go => method_get.go} | 22 ++-- .../availableservicealiases/README.md | 12 +- ...leservicealiaseslist.go => method_list.go} | 22 ++-- ...group.go => method_listbyresourcegroup.go} | 22 ++-- .../2019-09-01/querypacks/README.md | 32 ++--- ...teorupdate.go => method_createorupdate.go} | 6 +- ...go => method_createorupdatewithoutname.go} | 6 +- ...d_querypacksdelete.go => method_delete.go} | 6 +- ...{method_querypacksget.go => method_get.go} | 6 +- ...ethod_querypackslist.go => method_list.go} | 22 ++-- ...group.go => method_listbyresourcegroup.go} | 22 ++-- ...acksupdatetags.go => method_updatetags.go} | 6 +- .../2022-11-01/contactprofile/README.md | 28 ++-- .../method_contactprofilesdelete.go | 71 ---------- ...teorupdate.go => method_createorupdate.go} | 16 +-- .../contactprofile/method_delete.go | 71 ++++++++++ ...od_contactprofilesget.go => method_get.go} | 6 +- ..._contactprofileslist.go => method_list.go} | 22 ++-- ...iption.go => method_listbysubscription.go} | 22 ++-- ...ilesupdatetags.go => method_updatetags.go} | 16 +-- .../2021-10-01/remediations/README.md | 112 ++++++++-------- ...e.go => method_cancelatmanagementgroup.go} | 6 +- ...cription.go => method_cancelatresource.go} | 6 +- ...oup.go => method_cancelatresourcegroup.go} | 6 +- ...roup.go => method_cancelatsubscription.go} | 6 +- ...method_createorupdateatmanagementgroup.go} | 6 +- ....go => method_createorupdateatresource.go} | 6 +- ...> method_createorupdateatresourcegroup.go} | 6 +- .../method_createorupdateatsubscription.go | 56 ++++++++ ...e.go => method_deleteatmanagementgroup.go} | 6 +- ...cription.go => method_deleteatresource.go} | 6 +- ...oup.go => method_deleteatresourcegroup.go} | 6 +- ...roup.go => method_deleteatsubscription.go} | 6 +- ...urce.go => method_getatmanagementgroup.go} | 6 +- ...ubscription.go => method_getatresource.go} | 6 +- ...egroup.go => method_getatresourcegroup.go} | 6 +- .../remediations/method_getatsubscription.go | 51 ++++++++ ...method_listdeploymentsatmanagementgroup.go | 117 +++++++++++++++++ .../method_listdeploymentsatresource.go | 117 +++++++++++++++++ .../method_listdeploymentsatresourcegroup.go | 117 +++++++++++++++++ .../method_listdeploymentsatsubscription.go | 117 +++++++++++++++++ .../method_listformanagementgroup.go | 121 +++++++++++++++++ ...rresource.go => method_listforresource.go} | 34 ++--- .../method_listforresourcegroup.go | 122 ++++++++++++++++++ .../method_listforsubscription.go | 122 ++++++++++++++++++ ...diationscreateorupdateatmanagementgroup.go | 56 -------- ...method_remediationsgetatmanagementgroup.go | 51 -------- ...iationslistdeploymentsatmanagementgroup.go | 117 ----------------- ...d_remediationslistdeploymentsatresource.go | 117 ----------------- ...ediationslistdeploymentsatresourcegroup.go | 117 ----------------- ...mediationslistdeploymentsatsubscription.go | 117 ----------------- ...thod_remediationslistformanagementgroup.go | 121 ----------------- ...method_remediationslistforresourcegroup.go | 122 ------------------ .../method_remediationslistforsubscription.go | 122 ------------------ .../2022-10-01-preview/alertrules/README.md | 18 +-- ...t.go => method_createorupdate_autorest.go} | 24 ++-- ..._autorest.go => method_delete_autorest.go} | 24 ++-- ...get_autorest.go => method_get_autorest.go} | 24 ++-- ...st_autorest.go => method_list_autorest.go} | 62 ++++----- .../2021-05-01-preview/edgemodules/README.md | 22 ++-- ...teorupdate.go => method_createorupdate.go} | 6 +- ..._edgemodulesdelete.go => method_delete.go} | 6 +- ...method_edgemodulesget.go => method_get.go} | 6 +- ...thod_edgemoduleslist.go => method_list.go} | 34 ++--- ...ken.go => method_listprovisioningtoken.go} | 6 +- .../web/2016-06-01/managedapis/README.md | 8 +- ...method_managedapisget.go => method_get.go} | 6 +- ...thod_managedapislist.go => method_list.go} | 6 +- .../sdk/client/resourcemanager/poller_lro.go | 8 +- vendor/modules.txt | 2 +- 169 files changed, 2470 insertions(+), 2466 deletions(-) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/{method_alertprocessingrulescreateorupdate.go => method_createorupdate.go} (76%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/{method_alertprocessingrulesdelete.go => method_delete.go} (76%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/{method_alertprocessingrulesgetbyname.go => method_getbyname.go} (77%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/{method_alertprocessingruleslistbysubscription.go => method_listbyresourcegroup.go} (52%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/{method_alertprocessingruleslistbyresourcegroup.go => method_listbysubscription.go} (52%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/{method_alertprocessingrulesupdate.go => method_update.go} (78%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_create_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_delete_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_getbyname_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_list_autorest.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationscreate_autorest.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationsdelete_autorest.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationsgetbyname_autorest.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationslist_autorest.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/{method_softwareupdateconfigurationmachinerunsgetbyid.go => method_getbyid.go} (54%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/{method_softwareupdateconfigurationmachinerunslist.go => method_list.go} (62%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/{method_softwareupdateconfigurationrunsgetbyid.go => method_getbyid.go} (57%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/{method_softwareupdateconfigurationrunslist.go => method_list.go} (64%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/{method_extensionscreate.go => method_create.go} (67%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/{method_extensionsdelete.go => method_delete.go} (68%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/{method_extensionsget.go => method_get.go} (82%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/{method_extensionslistbyarcsetting.go => method_listbyarcsetting.go} (55%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/{method_extensionsupdate.go => method_update.go} (67%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/{method_extensionsupgrade.go => method_upgrade.go} (66%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/{method_offersget.go => method_get.go} (68%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/{method_offerslistbycluster.go => method_listbycluster.go} (50%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/{method_offerslistbypublisher.go => method_listbypublisher.go} (50%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/{method_publishersget.go => method_get.go} (82%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/{method_publisherslistbycluster.go => method_listbycluster.go} (56%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/{method_updaterunsdelete.go => method_delete.go} (68%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/{method_updaterunsget.go => method_get.go} (82%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/{method_updaterunslist.go => method_list.go} (59%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/{method_updaterunsput.go => method_put.go} (81%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/{method_updatesdelete.go => method_delete.go} (70%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/{method_updatesget.go => method_get.go} (83%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/{method_updateslist.go => method_list.go} (60%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/{method_updatespost.go => method_post.go} (71%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/{method_updatesput.go => method_put.go} (83%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/{method_updatesummariesdelete.go => method_delete.go} (67%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/{method_updatesummariesget.go => method_get.go} (81%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/{method_updatesummarieslist.go => method_list.go} (57%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/{method_updatesummariesput.go => method_put.go} (80%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dns/2018-05-01/dns/{method_dnsresourcereferencegetbytargetresources.go => method_resourcereferencegetbytargetresources.go} (76%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/{method_privatelinkscopescreateorupdate.go => method_createorupdate.go} (75%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_delete.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/{method_privatelinkscopesget.go => method_get.go} (79%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/{method_privatelinkscopesgetvalidationdetails.go => method_getvalidationdetails.go} (75%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/{method_privatelinkscopesgetvalidationdetailsformachine.go => method_getvalidationdetailsformachine.go} (74%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/{method_privatelinkscopeslist.go => method_list.go} (58%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/{method_privatelinkscopeslistbyresourcegroup.go => method_listbyresourcegroup.go} (53%) delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesdelete.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/{method_privatelinkscopesupdatetags.go => method_updatetags.go} (77%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/{method_accountfilterscreateorupdate.go => method_createorupdate.go} (77%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/{2022-08-01/accountfilters/method_accountfiltersdelete.go => 2021-11-01/accountfilters/method_delete.go} (78%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/{method_accountfiltersget.go => method_get.go} (80%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/{2022-08-01/accountfilters/method_accountfilterslist.go => 2021-11-01/accountfilters/method_list.go} (57%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/{2022-08-01/accountfilters/method_accountfiltersupdate.go => 2021-11-01/accountfilters/method_update.go} (79%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/{method_contentkeypoliciescreateorupdate.go => method_createorupdate.go} (76%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/{2022-08-01/contentkeypolicies/method_contentkeypoliciesdelete.go => 2021-11-01/contentkeypolicies/method_delete.go} (76%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/{method_contentkeypoliciesget.go => method_get.go} (79%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/{2022-08-01/contentkeypolicies/method_contentkeypoliciesgetpolicypropertieswithsecrets.go => 2021-11-01/contentkeypolicies/method_getpolicypropertieswithsecrets.go} (73%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/{method_contentkeypolicieslist.go => method_list.go} (53%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/{method_contentkeypoliciesupdate.go => method_update.go} (77%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/{method_accountfilterscreateorupdate.go => method_createorupdate.go} (77%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/{2021-11-01/accountfilters/method_accountfiltersdelete.go => 2022-08-01/accountfilters/method_delete.go} (78%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/{method_accountfiltersget.go => method_get.go} (80%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/{2021-11-01/accountfilters/method_accountfilterslist.go => 2022-08-01/accountfilters/method_list.go} (57%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/{2021-11-01/accountfilters/method_accountfiltersupdate.go => 2022-08-01/accountfilters/method_update.go} (79%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/{method_contentkeypoliciescreateorupdate.go => method_createorupdate.go} (76%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/{2021-11-01/contentkeypolicies/method_contentkeypoliciesdelete.go => 2022-08-01/contentkeypolicies/method_delete.go} (76%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/{method_contentkeypoliciesget.go => method_get.go} (79%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/{2021-11-01/contentkeypolicies/method_contentkeypoliciesgetpolicypropertieswithsecrets.go => 2022-08-01/contentkeypolicies/method_getpolicypropertieswithsecrets.go} (73%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/{method_contentkeypolicieslist.go => method_list.go} (53%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/{method_contentkeypoliciesupdate.go => method_update.go} (77%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/{method_volumegroupscreate.go => method_create.go} (65%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/{method_volumegroupsdelete.go => method_delete.go} (67%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/{method_volumegroupsget.go => method_get.go} (81%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/{method_volumegroupslistbynetappaccount.go => method_listbynetappaccount.go} (77%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/{method_applicationgatewaywafdynamicmanifestsdefaultget.go => method_defaultget.go} (74%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/{method_applicationgatewaywafdynamicmanifestsget.go => method_get.go} (51%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/{method_availableservicealiaseslist.go => method_list.go} (56%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/{method_availableservicealiaseslistbyresourcegroup.go => method_listbyresourcegroup.go} (50%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/{method_querypackscreateorupdate.go => method_createorupdate.go} (78%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/{method_querypackscreateorupdatewithoutname.go => method_createorupdatewithoutname.go} (77%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/{method_querypacksdelete.go => method_delete.go} (80%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/{method_querypacksget.go => method_get.go} (82%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/{method_querypackslist.go => method_list.go} (60%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/{method_querypackslistbyresourcegroup.go => method_listbyresourcegroup.go} (55%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/{method_querypacksupdatetags.go => method_updatetags.go} (80%) delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofilesdelete.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/{method_contactprofilescreateorupdate.go => method_createorupdate.go} (62%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_delete.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/{method_contactprofilesget.go => method_get.go} (80%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/{method_contactprofileslist.go => method_list.go} (58%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/{method_contactprofileslistbysubscription.go => method_listbysubscription.go} (54%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/{method_contactprofilesupdatetags.go => method_updatetags.go} (63%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationscancelatresource.go => method_cancelatmanagementgroup.go} (78%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationscancelatsubscription.go => method_cancelatresource.go} (77%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationscancelatresourcegroup.go => method_cancelatresourcegroup.go} (76%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationscancelatmanagementgroup.go => method_cancelatsubscription.go} (76%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationscreateorupdateatresource.go => method_createorupdateatmanagementgroup.go} (75%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationscreateorupdateatsubscription.go => method_createorupdateatresource.go} (75%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationscreateorupdateatresourcegroup.go => method_createorupdateatresourcegroup.go} (74%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_createorupdateatsubscription.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationsdeleteatresource.go => method_deleteatmanagementgroup.go} (77%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationsdeleteatsubscription.go => method_deleteatresource.go} (77%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationsdeleteatresourcegroup.go => method_deleteatresourcegroup.go} (76%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationsdeleteatmanagementgroup.go => method_deleteatsubscription.go} (75%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationsgetatresource.go => method_getatmanagementgroup.go} (78%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationsgetatsubscription.go => method_getatresource.go} (77%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationsgetatresourcegroup.go => method_getatresourcegroup.go} (76%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_getatsubscription.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatmanagementgroup.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatresourcegroup.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatsubscription.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listformanagementgroup.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/{method_remediationslistforresource.go => method_listforresource.go} (50%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listforresourcegroup.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listforsubscription.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscreateorupdateatmanagementgroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsgetatmanagementgroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatmanagementgroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatresource.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatresourcegroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatsubscription.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistformanagementgroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistforresourcegroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistforsubscription.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/{method_alertrulescreateorupdate_autorest.go => method_createorupdate_autorest.go} (58%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/{method_alertrulesdelete_autorest.go => method_delete_autorest.go} (57%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/{method_alertrulesget_autorest.go => method_get_autorest.go} (62%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/{method_alertruleslist_autorest.go => method_list_autorest.go} (59%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/{method_edgemodulescreateorupdate.go => method_createorupdate.go} (78%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/{method_edgemodulesdelete.go => method_delete.go} (79%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/{method_edgemodulesget.go => method_get.go} (81%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/{method_edgemoduleslist.go => method_list.go} (55%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/{method_edgemoduleslistprovisioningtoken.go => method_listprovisioningtoken.go} (77%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/{method_managedapisget.go => method_get.go} (82%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/{method_managedapislist.go => method_list.go} (82%) diff --git a/go.mod b/go.mod index 6111db518019..f6f8161e2a2a 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/google/go-cmp v0.5.9 github.com/google/uuid v1.3.0 github.com/hashicorp/go-azure-helpers v0.59.0 - github.com/hashicorp/go-azure-sdk v0.20230901.1104643 + github.com/hashicorp/go-azure-sdk v0.20230906.1160501 github.com/hashicorp/go-hclog v1.4.0 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-uuid v1.0.3 diff --git a/go.sum b/go.sum index 9d966bf1dbd2..0091db90ba2d 100644 --- a/go.sum +++ b/go.sum @@ -118,8 +118,8 @@ github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv github.com/hashicorp/go-azure-helpers v0.12.0/go.mod h1:Zc3v4DNeX6PDdy7NljlYpnrdac1++qNW0I4U+ofGwpg= github.com/hashicorp/go-azure-helpers v0.59.0 h1:E73yoPN2r1y0vvZ4dgAh8NRGuVTNXH3lZKRjT+4oNmA= github.com/hashicorp/go-azure-helpers v0.59.0/go.mod h1:BQUQp5udwbJ8pnzl0wByCLVEEyPMAFpJ9vOREiCzObo= -github.com/hashicorp/go-azure-sdk v0.20230901.1104643 h1:P8pCOvgx7+iJLXyoiVlPeckIL5ZHrD/FEhyBCZE2UoI= -github.com/hashicorp/go-azure-sdk v0.20230901.1104643/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= +github.com/hashicorp/go-azure-sdk v0.20230906.1160501 h1:j/tQVIxg8orE1fWwl765ptEG7ebcacyDGdYPfIcW9Gw= +github.com/hashicorp/go-azure-sdk v0.20230906.1160501/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU= github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/README.md index 8173b464d904..110f4c5eb0ce 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `AlertProcessingRulesClient.AlertProcessingRulesCreateOrUpdate` +### Example Usage: `AlertProcessingRulesClient.CreateOrUpdate` ```go ctx := context.TODO() @@ -31,7 +31,7 @@ payload := alertprocessingrules.AlertProcessingRule{ } -read, err := client.AlertProcessingRulesCreateOrUpdate(ctx, id, payload) +read, err := client.CreateOrUpdate(ctx, id, payload) if err != nil { // handle the error } @@ -41,13 +41,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AlertProcessingRulesClient.AlertProcessingRulesDelete` +### Example Usage: `AlertProcessingRulesClient.Delete` ```go ctx := context.TODO() id := alertprocessingrules.NewActionRuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "actionRuleValue") -read, err := client.AlertProcessingRulesDelete(ctx, id) +read, err := client.Delete(ctx, id) if err != nil { // handle the error } @@ -57,13 +57,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AlertProcessingRulesClient.AlertProcessingRulesGetByName` +### Example Usage: `AlertProcessingRulesClient.GetByName` ```go ctx := context.TODO() id := alertprocessingrules.NewActionRuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "actionRuleValue") -read, err := client.AlertProcessingRulesGetByName(ctx, id) +read, err := client.GetByName(ctx, id) if err != nil { // handle the error } @@ -73,14 +73,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AlertProcessingRulesClient.AlertProcessingRulesListByResourceGroup` +### Example Usage: `AlertProcessingRulesClient.ListByResourceGroup` ```go ctx := context.TODO() id := alertprocessingrules.NewResourceGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group") -// alternatively `client.AlertProcessingRulesListByResourceGroup(ctx, id)` can be used to do batched pagination -items, err := client.AlertProcessingRulesListByResourceGroupComplete(ctx, id) +// alternatively `client.ListByResourceGroup(ctx, id)` can be used to do batched pagination +items, err := client.ListByResourceGroupComplete(ctx, id) if err != nil { // handle the error } @@ -90,14 +90,14 @@ for _, item := range items { ``` -### Example Usage: `AlertProcessingRulesClient.AlertProcessingRulesListBySubscription` +### Example Usage: `AlertProcessingRulesClient.ListBySubscription` ```go ctx := context.TODO() id := alertprocessingrules.NewSubscriptionID("12345678-1234-9876-4563-123456789012") -// alternatively `client.AlertProcessingRulesListBySubscription(ctx, id)` can be used to do batched pagination -items, err := client.AlertProcessingRulesListBySubscriptionComplete(ctx, id) +// alternatively `client.ListBySubscription(ctx, id)` can be used to do batched pagination +items, err := client.ListBySubscriptionComplete(ctx, id) if err != nil { // handle the error } @@ -107,7 +107,7 @@ for _, item := range items { ``` -### Example Usage: `AlertProcessingRulesClient.AlertProcessingRulesUpdate` +### Example Usage: `AlertProcessingRulesClient.Update` ```go ctx := context.TODO() @@ -118,7 +118,7 @@ payload := alertprocessingrules.PatchObject{ } -read, err := client.AlertProcessingRulesUpdate(ctx, id, payload) +read, err := client.Update(ctx, id, payload) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingrulescreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_createorupdate.go similarity index 76% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingrulescreateorupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_createorupdate.go index 3ea2ab429498..8d167889d07f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingrulescreateorupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_createorupdate.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AlertProcessingRulesCreateOrUpdateOperationResponse struct { +type CreateOrUpdateOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *AlertProcessingRule } -// AlertProcessingRulesCreateOrUpdate ... -func (c AlertProcessingRulesClient) AlertProcessingRulesCreateOrUpdate(ctx context.Context, id ActionRuleId, input AlertProcessingRule) (result AlertProcessingRulesCreateOrUpdateOperationResponse, err error) { +// CreateOrUpdate ... +func (c AlertProcessingRulesClient) CreateOrUpdate(ctx context.Context, id ActionRuleId, input AlertProcessingRule) (result CreateOrUpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingrulesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_delete.go similarity index 76% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingrulesdelete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_delete.go index 6721913070cc..fe7cad1aff0b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingrulesdelete.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_delete.go @@ -11,13 +11,13 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AlertProcessingRulesDeleteOperationResponse struct { +type DeleteOperationResponse struct { HttpResponse *http.Response OData *odata.OData } -// AlertProcessingRulesDelete ... -func (c AlertProcessingRulesClient) AlertProcessingRulesDelete(ctx context.Context, id ActionRuleId) (result AlertProcessingRulesDeleteOperationResponse, err error) { +// Delete ... +func (c AlertProcessingRulesClient) Delete(ctx context.Context, id ActionRuleId) (result DeleteOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingrulesgetbyname.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_getbyname.go similarity index 77% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingrulesgetbyname.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_getbyname.go index 67c11910f556..a5f010dc56c5 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingrulesgetbyname.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_getbyname.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AlertProcessingRulesGetByNameOperationResponse struct { +type GetByNameOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *AlertProcessingRule } -// AlertProcessingRulesGetByName ... -func (c AlertProcessingRulesClient) AlertProcessingRulesGetByName(ctx context.Context, id ActionRuleId) (result AlertProcessingRulesGetByNameOperationResponse, err error) { +// GetByName ... +func (c AlertProcessingRulesClient) GetByName(ctx context.Context, id ActionRuleId) (result GetByNameOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingruleslistbysubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_listbyresourcegroup.go similarity index 52% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingruleslistbysubscription.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_listbyresourcegroup.go index be97487feb2c..43c3c14df430 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingruleslistbysubscription.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_listbyresourcegroup.go @@ -13,18 +13,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AlertProcessingRulesListBySubscriptionOperationResponse struct { +type ListByResourceGroupOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]AlertProcessingRule } -type AlertProcessingRulesListBySubscriptionCompleteResult struct { +type ListByResourceGroupCompleteResult struct { Items []AlertProcessingRule } -// AlertProcessingRulesListBySubscription ... -func (c AlertProcessingRulesClient) AlertProcessingRulesListBySubscription(ctx context.Context, id commonids.SubscriptionId) (result AlertProcessingRulesListBySubscriptionOperationResponse, err error) { +// ListByResourceGroup ... +func (c AlertProcessingRulesClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -61,16 +61,16 @@ func (c AlertProcessingRulesClient) AlertProcessingRulesListBySubscription(ctx c return } -// AlertProcessingRulesListBySubscriptionComplete retrieves all the results into a single object -func (c AlertProcessingRulesClient) AlertProcessingRulesListBySubscriptionComplete(ctx context.Context, id commonids.SubscriptionId) (AlertProcessingRulesListBySubscriptionCompleteResult, error) { - return c.AlertProcessingRulesListBySubscriptionCompleteMatchingPredicate(ctx, id, AlertProcessingRuleOperationPredicate{}) +// ListByResourceGroupComplete retrieves all the results into a single object +func (c AlertProcessingRulesClient) ListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (ListByResourceGroupCompleteResult, error) { + return c.ListByResourceGroupCompleteMatchingPredicate(ctx, id, AlertProcessingRuleOperationPredicate{}) } -// AlertProcessingRulesListBySubscriptionCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c AlertProcessingRulesClient) AlertProcessingRulesListBySubscriptionCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate AlertProcessingRuleOperationPredicate) (result AlertProcessingRulesListBySubscriptionCompleteResult, err error) { +// ListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AlertProcessingRulesClient) ListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate AlertProcessingRuleOperationPredicate) (result ListByResourceGroupCompleteResult, err error) { items := make([]AlertProcessingRule, 0) - resp, err := c.AlertProcessingRulesListBySubscription(ctx, id) + resp, err := c.ListByResourceGroup(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -83,7 +83,7 @@ func (c AlertProcessingRulesClient) AlertProcessingRulesListBySubscriptionComple } } - result = AlertProcessingRulesListBySubscriptionCompleteResult{ + result = ListByResourceGroupCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingruleslistbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_listbysubscription.go similarity index 52% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingruleslistbyresourcegroup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_listbysubscription.go index 188d1ad9d7af..50e4e2ca0367 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingruleslistbyresourcegroup.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_listbysubscription.go @@ -13,18 +13,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AlertProcessingRulesListByResourceGroupOperationResponse struct { +type ListBySubscriptionOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]AlertProcessingRule } -type AlertProcessingRulesListByResourceGroupCompleteResult struct { +type ListBySubscriptionCompleteResult struct { Items []AlertProcessingRule } -// AlertProcessingRulesListByResourceGroup ... -func (c AlertProcessingRulesClient) AlertProcessingRulesListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result AlertProcessingRulesListByResourceGroupOperationResponse, err error) { +// ListBySubscription ... +func (c AlertProcessingRulesClient) ListBySubscription(ctx context.Context, id commonids.SubscriptionId) (result ListBySubscriptionOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -61,16 +61,16 @@ func (c AlertProcessingRulesClient) AlertProcessingRulesListByResourceGroup(ctx return } -// AlertProcessingRulesListByResourceGroupComplete retrieves all the results into a single object -func (c AlertProcessingRulesClient) AlertProcessingRulesListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (AlertProcessingRulesListByResourceGroupCompleteResult, error) { - return c.AlertProcessingRulesListByResourceGroupCompleteMatchingPredicate(ctx, id, AlertProcessingRuleOperationPredicate{}) +// ListBySubscriptionComplete retrieves all the results into a single object +func (c AlertProcessingRulesClient) ListBySubscriptionComplete(ctx context.Context, id commonids.SubscriptionId) (ListBySubscriptionCompleteResult, error) { + return c.ListBySubscriptionCompleteMatchingPredicate(ctx, id, AlertProcessingRuleOperationPredicate{}) } -// AlertProcessingRulesListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c AlertProcessingRulesClient) AlertProcessingRulesListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate AlertProcessingRuleOperationPredicate) (result AlertProcessingRulesListByResourceGroupCompleteResult, err error) { +// ListBySubscriptionCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AlertProcessingRulesClient) ListBySubscriptionCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate AlertProcessingRuleOperationPredicate) (result ListBySubscriptionCompleteResult, err error) { items := make([]AlertProcessingRule, 0) - resp, err := c.AlertProcessingRulesListByResourceGroup(ctx, id) + resp, err := c.ListBySubscription(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -83,7 +83,7 @@ func (c AlertProcessingRulesClient) AlertProcessingRulesListByResourceGroupCompl } } - result = AlertProcessingRulesListByResourceGroupCompleteResult{ + result = ListBySubscriptionCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingrulesupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_update.go similarity index 78% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingrulesupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_update.go index 4498f137bde3..78030bbdf19e 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_alertprocessingrulesupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/method_update.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AlertProcessingRulesUpdateOperationResponse struct { +type UpdateOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *AlertProcessingRule } -// AlertProcessingRulesUpdate ... -func (c AlertProcessingRulesClient) AlertProcessingRulesUpdate(ctx context.Context, id ActionRuleId, input PatchObject) (result AlertProcessingRulesUpdateOperationResponse, err error) { +// Update ... +func (c AlertProcessingRulesClient) Update(ctx context.Context, id ActionRuleId, input PatchObject) (result UpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/README.md index 4f3199899510..094acce76519 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `SoftwareUpdateConfigurationClient.SoftwareUpdateConfigurationsCreate` +### Example Usage: `SoftwareUpdateConfigurationClient.Create` ```go ctx := context.TODO() @@ -31,7 +31,7 @@ payload := softwareupdateconfiguration.SoftwareUpdateConfiguration{ } -read, err := client.SoftwareUpdateConfigurationsCreate(ctx, id, payload, softwareupdateconfiguration.DefaultSoftwareUpdateConfigurationsCreateOperationOptions()) +read, err := client.Create(ctx, id, payload, softwareupdateconfiguration.DefaultCreateOperationOptions()) if err != nil { // handle the error } @@ -41,13 +41,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `SoftwareUpdateConfigurationClient.SoftwareUpdateConfigurationsDelete` +### Example Usage: `SoftwareUpdateConfigurationClient.Delete` ```go ctx := context.TODO() id := softwareupdateconfiguration.NewSoftwareUpdateConfigurationID("12345678-1234-9876-4563-123456789012", "example-resource-group", "automationAccountValue", "softwareUpdateConfigurationValue") -read, err := client.SoftwareUpdateConfigurationsDelete(ctx, id, softwareupdateconfiguration.DefaultSoftwareUpdateConfigurationsDeleteOperationOptions()) +read, err := client.Delete(ctx, id, softwareupdateconfiguration.DefaultDeleteOperationOptions()) if err != nil { // handle the error } @@ -57,13 +57,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `SoftwareUpdateConfigurationClient.SoftwareUpdateConfigurationsGetByName` +### Example Usage: `SoftwareUpdateConfigurationClient.GetByName` ```go ctx := context.TODO() id := softwareupdateconfiguration.NewSoftwareUpdateConfigurationID("12345678-1234-9876-4563-123456789012", "example-resource-group", "automationAccountValue", "softwareUpdateConfigurationValue") -read, err := client.SoftwareUpdateConfigurationsGetByName(ctx, id, softwareupdateconfiguration.DefaultSoftwareUpdateConfigurationsGetByNameOperationOptions()) +read, err := client.GetByName(ctx, id, softwareupdateconfiguration.DefaultGetByNameOperationOptions()) if err != nil { // handle the error } @@ -73,13 +73,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `SoftwareUpdateConfigurationClient.SoftwareUpdateConfigurationsList` +### Example Usage: `SoftwareUpdateConfigurationClient.List` ```go ctx := context.TODO() id := softwareupdateconfiguration.NewAutomationAccountID("12345678-1234-9876-4563-123456789012", "example-resource-group", "automationAccountValue") -read, err := client.SoftwareUpdateConfigurationsList(ctx, id, softwareupdateconfiguration.DefaultSoftwareUpdateConfigurationsListOperationOptions()) +read, err := client.List(ctx, id, softwareupdateconfiguration.DefaultListOperationOptions()) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_create_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_create_autorest.go new file mode 100644 index 000000000000..246401b9d736 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_create_autorest.go @@ -0,0 +1,98 @@ +package softwareupdateconfiguration + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOperationResponse struct { + HttpResponse *http.Response + Model *SoftwareUpdateConfiguration +} + +type CreateOperationOptions struct { + ClientRequestId *string +} + +func DefaultCreateOperationOptions() CreateOperationOptions { + return CreateOperationOptions{} +} + +func (o CreateOperationOptions) toHeaders() map[string]interface{} { + out := make(map[string]interface{}) + + if o.ClientRequestId != nil { + out["clientRequestId"] = *o.ClientRequestId + } + + return out +} + +func (o CreateOperationOptions) toQueryString() map[string]interface{} { + out := make(map[string]interface{}) + + return out +} + +// Create ... +func (c SoftwareUpdateConfigurationClient) Create(ctx context.Context, id SoftwareUpdateConfigurationId, input SoftwareUpdateConfiguration, options CreateOperationOptions) (result CreateOperationResponse, err error) { + req, err := c.preparerForCreate(ctx, id, input, options) + if err != nil { + err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "Create", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "Create", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForCreate(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "Create", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForCreate prepares the Create request. +func (c SoftwareUpdateConfigurationClient) preparerForCreate(ctx context.Context, id SoftwareUpdateConfigurationId, input SoftwareUpdateConfiguration, options CreateOperationOptions) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + for k, v := range options.toQueryString() { + queryParameters[k] = autorest.Encode("query", v) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(c.baseUri), + autorest.WithHeaders(options.toHeaders()), + autorest.WithPath(id.ID()), + autorest.WithJSON(input), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForCreate handles the response to the Create request. The method always +// closes the http.Response Body. +func (c SoftwareUpdateConfigurationClient) responderForCreate(resp *http.Response) (result CreateOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusCreated, http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_delete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_delete_autorest.go new file mode 100644 index 000000000000..28d07262284d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_delete_autorest.go @@ -0,0 +1,95 @@ +package softwareupdateconfiguration + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + HttpResponse *http.Response +} + +type DeleteOperationOptions struct { + ClientRequestId *string +} + +func DefaultDeleteOperationOptions() DeleteOperationOptions { + return DeleteOperationOptions{} +} + +func (o DeleteOperationOptions) toHeaders() map[string]interface{} { + out := make(map[string]interface{}) + + if o.ClientRequestId != nil { + out["clientRequestId"] = *o.ClientRequestId + } + + return out +} + +func (o DeleteOperationOptions) toQueryString() map[string]interface{} { + out := make(map[string]interface{}) + + return out +} + +// Delete ... +func (c SoftwareUpdateConfigurationClient) Delete(ctx context.Context, id SoftwareUpdateConfigurationId, options DeleteOperationOptions) (result DeleteOperationResponse, err error) { + req, err := c.preparerForDelete(ctx, id, options) + if err != nil { + err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "Delete", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "Delete", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForDelete(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "Delete", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForDelete prepares the Delete request. +func (c SoftwareUpdateConfigurationClient) preparerForDelete(ctx context.Context, id SoftwareUpdateConfigurationId, options DeleteOperationOptions) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + for k, v := range options.toQueryString() { + queryParameters[k] = autorest.Encode("query", v) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsDelete(), + autorest.WithBaseURL(c.baseUri), + autorest.WithHeaders(options.toHeaders()), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForDelete handles the response to the Delete request. The method always +// closes the http.Response Body. +func (c SoftwareUpdateConfigurationClient) responderForDelete(resp *http.Response) (result DeleteOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_getbyname_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_getbyname_autorest.go new file mode 100644 index 000000000000..f032b3bcfc81 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_getbyname_autorest.go @@ -0,0 +1,97 @@ +package softwareupdateconfiguration + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetByNameOperationResponse struct { + HttpResponse *http.Response + Model *SoftwareUpdateConfiguration +} + +type GetByNameOperationOptions struct { + ClientRequestId *string +} + +func DefaultGetByNameOperationOptions() GetByNameOperationOptions { + return GetByNameOperationOptions{} +} + +func (o GetByNameOperationOptions) toHeaders() map[string]interface{} { + out := make(map[string]interface{}) + + if o.ClientRequestId != nil { + out["clientRequestId"] = *o.ClientRequestId + } + + return out +} + +func (o GetByNameOperationOptions) toQueryString() map[string]interface{} { + out := make(map[string]interface{}) + + return out +} + +// GetByName ... +func (c SoftwareUpdateConfigurationClient) GetByName(ctx context.Context, id SoftwareUpdateConfigurationId, options GetByNameOperationOptions) (result GetByNameOperationResponse, err error) { + req, err := c.preparerForGetByName(ctx, id, options) + if err != nil { + err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "GetByName", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "GetByName", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForGetByName(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "GetByName", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForGetByName prepares the GetByName request. +func (c SoftwareUpdateConfigurationClient) preparerForGetByName(ctx context.Context, id SoftwareUpdateConfigurationId, options GetByNameOperationOptions) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + for k, v := range options.toQueryString() { + queryParameters[k] = autorest.Encode("query", v) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithHeaders(options.toHeaders()), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForGetByName handles the response to the GetByName request. The method always +// closes the http.Response Body. +func (c SoftwareUpdateConfigurationClient) responderForGetByName(resp *http.Response) (result GetByNameOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_list_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_list_autorest.go new file mode 100644 index 000000000000..cb02e0a0514d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_list_autorest.go @@ -0,0 +1,103 @@ +package softwareupdateconfiguration + +import ( + "context" + "fmt" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListOperationResponse struct { + HttpResponse *http.Response + Model *SoftwareUpdateConfigurationListResult +} + +type ListOperationOptions struct { + ClientRequestId *string + Filter *string +} + +func DefaultListOperationOptions() ListOperationOptions { + return ListOperationOptions{} +} + +func (o ListOperationOptions) toHeaders() map[string]interface{} { + out := make(map[string]interface{}) + + if o.ClientRequestId != nil { + out["clientRequestId"] = *o.ClientRequestId + } + + return out +} + +func (o ListOperationOptions) toQueryString() map[string]interface{} { + out := make(map[string]interface{}) + + if o.Filter != nil { + out["$filter"] = *o.Filter + } + + return out +} + +// List ... +func (c SoftwareUpdateConfigurationClient) List(ctx context.Context, id AutomationAccountId, options ListOperationOptions) (result ListOperationResponse, err error) { + req, err := c.preparerForList(ctx, id, options) + if err != nil { + err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "List", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "List", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForList(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "List", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForList prepares the List request. +func (c SoftwareUpdateConfigurationClient) preparerForList(ctx context.Context, id AutomationAccountId, options ListOperationOptions) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + for k, v := range options.toQueryString() { + queryParameters[k] = autorest.Encode("query", v) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithHeaders(options.toHeaders()), + autorest.WithPath(fmt.Sprintf("%s/softwareUpdateConfigurations", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForList handles the response to the List request. The method always +// closes the http.Response Body. +func (c SoftwareUpdateConfigurationClient) responderForList(resp *http.Response) (result ListOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationscreate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationscreate_autorest.go deleted file mode 100644 index 7f530ab7f92b..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationscreate_autorest.go +++ /dev/null @@ -1,98 +0,0 @@ -package softwareupdateconfiguration - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type SoftwareUpdateConfigurationsCreateOperationResponse struct { - HttpResponse *http.Response - Model *SoftwareUpdateConfiguration -} - -type SoftwareUpdateConfigurationsCreateOperationOptions struct { - ClientRequestId *string -} - -func DefaultSoftwareUpdateConfigurationsCreateOperationOptions() SoftwareUpdateConfigurationsCreateOperationOptions { - return SoftwareUpdateConfigurationsCreateOperationOptions{} -} - -func (o SoftwareUpdateConfigurationsCreateOperationOptions) toHeaders() map[string]interface{} { - out := make(map[string]interface{}) - - if o.ClientRequestId != nil { - out["clientRequestId"] = *o.ClientRequestId - } - - return out -} - -func (o SoftwareUpdateConfigurationsCreateOperationOptions) toQueryString() map[string]interface{} { - out := make(map[string]interface{}) - - return out -} - -// SoftwareUpdateConfigurationsCreate ... -func (c SoftwareUpdateConfigurationClient) SoftwareUpdateConfigurationsCreate(ctx context.Context, id SoftwareUpdateConfigurationId, input SoftwareUpdateConfiguration, options SoftwareUpdateConfigurationsCreateOperationOptions) (result SoftwareUpdateConfigurationsCreateOperationResponse, err error) { - req, err := c.preparerForSoftwareUpdateConfigurationsCreate(ctx, id, input, options) - if err != nil { - err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "SoftwareUpdateConfigurationsCreate", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "SoftwareUpdateConfigurationsCreate", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForSoftwareUpdateConfigurationsCreate(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "SoftwareUpdateConfigurationsCreate", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForSoftwareUpdateConfigurationsCreate prepares the SoftwareUpdateConfigurationsCreate request. -func (c SoftwareUpdateConfigurationClient) preparerForSoftwareUpdateConfigurationsCreate(ctx context.Context, id SoftwareUpdateConfigurationId, input SoftwareUpdateConfiguration, options SoftwareUpdateConfigurationsCreateOperationOptions) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - for k, v := range options.toQueryString() { - queryParameters[k] = autorest.Encode("query", v) - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithHeaders(options.toHeaders()), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForSoftwareUpdateConfigurationsCreate handles the response to the SoftwareUpdateConfigurationsCreate request. The method always -// closes the http.Response Body. -func (c SoftwareUpdateConfigurationClient) responderForSoftwareUpdateConfigurationsCreate(resp *http.Response) (result SoftwareUpdateConfigurationsCreateOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusCreated, http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationsdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationsdelete_autorest.go deleted file mode 100644 index 9e29d5b7dc55..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationsdelete_autorest.go +++ /dev/null @@ -1,95 +0,0 @@ -package softwareupdateconfiguration - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type SoftwareUpdateConfigurationsDeleteOperationResponse struct { - HttpResponse *http.Response -} - -type SoftwareUpdateConfigurationsDeleteOperationOptions struct { - ClientRequestId *string -} - -func DefaultSoftwareUpdateConfigurationsDeleteOperationOptions() SoftwareUpdateConfigurationsDeleteOperationOptions { - return SoftwareUpdateConfigurationsDeleteOperationOptions{} -} - -func (o SoftwareUpdateConfigurationsDeleteOperationOptions) toHeaders() map[string]interface{} { - out := make(map[string]interface{}) - - if o.ClientRequestId != nil { - out["clientRequestId"] = *o.ClientRequestId - } - - return out -} - -func (o SoftwareUpdateConfigurationsDeleteOperationOptions) toQueryString() map[string]interface{} { - out := make(map[string]interface{}) - - return out -} - -// SoftwareUpdateConfigurationsDelete ... -func (c SoftwareUpdateConfigurationClient) SoftwareUpdateConfigurationsDelete(ctx context.Context, id SoftwareUpdateConfigurationId, options SoftwareUpdateConfigurationsDeleteOperationOptions) (result SoftwareUpdateConfigurationsDeleteOperationResponse, err error) { - req, err := c.preparerForSoftwareUpdateConfigurationsDelete(ctx, id, options) - if err != nil { - err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "SoftwareUpdateConfigurationsDelete", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "SoftwareUpdateConfigurationsDelete", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForSoftwareUpdateConfigurationsDelete(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "SoftwareUpdateConfigurationsDelete", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForSoftwareUpdateConfigurationsDelete prepares the SoftwareUpdateConfigurationsDelete request. -func (c SoftwareUpdateConfigurationClient) preparerForSoftwareUpdateConfigurationsDelete(ctx context.Context, id SoftwareUpdateConfigurationId, options SoftwareUpdateConfigurationsDeleteOperationOptions) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - for k, v := range options.toQueryString() { - queryParameters[k] = autorest.Encode("query", v) - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithHeaders(options.toHeaders()), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForSoftwareUpdateConfigurationsDelete handles the response to the SoftwareUpdateConfigurationsDelete request. The method always -// closes the http.Response Body. -func (c SoftwareUpdateConfigurationClient) responderForSoftwareUpdateConfigurationsDelete(resp *http.Response) (result SoftwareUpdateConfigurationsDeleteOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationsgetbyname_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationsgetbyname_autorest.go deleted file mode 100644 index bde68b133b18..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationsgetbyname_autorest.go +++ /dev/null @@ -1,97 +0,0 @@ -package softwareupdateconfiguration - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type SoftwareUpdateConfigurationsGetByNameOperationResponse struct { - HttpResponse *http.Response - Model *SoftwareUpdateConfiguration -} - -type SoftwareUpdateConfigurationsGetByNameOperationOptions struct { - ClientRequestId *string -} - -func DefaultSoftwareUpdateConfigurationsGetByNameOperationOptions() SoftwareUpdateConfigurationsGetByNameOperationOptions { - return SoftwareUpdateConfigurationsGetByNameOperationOptions{} -} - -func (o SoftwareUpdateConfigurationsGetByNameOperationOptions) toHeaders() map[string]interface{} { - out := make(map[string]interface{}) - - if o.ClientRequestId != nil { - out["clientRequestId"] = *o.ClientRequestId - } - - return out -} - -func (o SoftwareUpdateConfigurationsGetByNameOperationOptions) toQueryString() map[string]interface{} { - out := make(map[string]interface{}) - - return out -} - -// SoftwareUpdateConfigurationsGetByName ... -func (c SoftwareUpdateConfigurationClient) SoftwareUpdateConfigurationsGetByName(ctx context.Context, id SoftwareUpdateConfigurationId, options SoftwareUpdateConfigurationsGetByNameOperationOptions) (result SoftwareUpdateConfigurationsGetByNameOperationResponse, err error) { - req, err := c.preparerForSoftwareUpdateConfigurationsGetByName(ctx, id, options) - if err != nil { - err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "SoftwareUpdateConfigurationsGetByName", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "SoftwareUpdateConfigurationsGetByName", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForSoftwareUpdateConfigurationsGetByName(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "SoftwareUpdateConfigurationsGetByName", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForSoftwareUpdateConfigurationsGetByName prepares the SoftwareUpdateConfigurationsGetByName request. -func (c SoftwareUpdateConfigurationClient) preparerForSoftwareUpdateConfigurationsGetByName(ctx context.Context, id SoftwareUpdateConfigurationId, options SoftwareUpdateConfigurationsGetByNameOperationOptions) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - for k, v := range options.toQueryString() { - queryParameters[k] = autorest.Encode("query", v) - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithHeaders(options.toHeaders()), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForSoftwareUpdateConfigurationsGetByName handles the response to the SoftwareUpdateConfigurationsGetByName request. The method always -// closes the http.Response Body. -func (c SoftwareUpdateConfigurationClient) responderForSoftwareUpdateConfigurationsGetByName(resp *http.Response) (result SoftwareUpdateConfigurationsGetByNameOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationslist_autorest.go deleted file mode 100644 index b8c1403c03be..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2019-06-01/softwareupdateconfiguration/method_softwareupdateconfigurationslist_autorest.go +++ /dev/null @@ -1,103 +0,0 @@ -package softwareupdateconfiguration - -import ( - "context" - "fmt" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type SoftwareUpdateConfigurationsListOperationResponse struct { - HttpResponse *http.Response - Model *SoftwareUpdateConfigurationListResult -} - -type SoftwareUpdateConfigurationsListOperationOptions struct { - ClientRequestId *string - Filter *string -} - -func DefaultSoftwareUpdateConfigurationsListOperationOptions() SoftwareUpdateConfigurationsListOperationOptions { - return SoftwareUpdateConfigurationsListOperationOptions{} -} - -func (o SoftwareUpdateConfigurationsListOperationOptions) toHeaders() map[string]interface{} { - out := make(map[string]interface{}) - - if o.ClientRequestId != nil { - out["clientRequestId"] = *o.ClientRequestId - } - - return out -} - -func (o SoftwareUpdateConfigurationsListOperationOptions) toQueryString() map[string]interface{} { - out := make(map[string]interface{}) - - if o.Filter != nil { - out["$filter"] = *o.Filter - } - - return out -} - -// SoftwareUpdateConfigurationsList ... -func (c SoftwareUpdateConfigurationClient) SoftwareUpdateConfigurationsList(ctx context.Context, id AutomationAccountId, options SoftwareUpdateConfigurationsListOperationOptions) (result SoftwareUpdateConfigurationsListOperationResponse, err error) { - req, err := c.preparerForSoftwareUpdateConfigurationsList(ctx, id, options) - if err != nil { - err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "SoftwareUpdateConfigurationsList", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "SoftwareUpdateConfigurationsList", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForSoftwareUpdateConfigurationsList(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "softwareupdateconfiguration.SoftwareUpdateConfigurationClient", "SoftwareUpdateConfigurationsList", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForSoftwareUpdateConfigurationsList prepares the SoftwareUpdateConfigurationsList request. -func (c SoftwareUpdateConfigurationClient) preparerForSoftwareUpdateConfigurationsList(ctx context.Context, id AutomationAccountId, options SoftwareUpdateConfigurationsListOperationOptions) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - for k, v := range options.toQueryString() { - queryParameters[k] = autorest.Encode("query", v) - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithHeaders(options.toHeaders()), - autorest.WithPath(fmt.Sprintf("%s/softwareUpdateConfigurations", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForSoftwareUpdateConfigurationsList handles the response to the SoftwareUpdateConfigurationsList request. The method always -// closes the http.Response Body. -func (c SoftwareUpdateConfigurationClient) responderForSoftwareUpdateConfigurationsList(resp *http.Response) (result SoftwareUpdateConfigurationsListOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/README.md index 1808ced1d6db..c9ed1d5314bb 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/README.md @@ -20,13 +20,13 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `SoftwareUpdateConfigurationMachineRunClient.SoftwareUpdateConfigurationMachineRunsGetById` +### Example Usage: `SoftwareUpdateConfigurationMachineRunClient.GetById` ```go ctx := context.TODO() id := softwareupdateconfigurationmachinerun.NewSoftwareUpdateConfigurationMachineRunID("12345678-1234-9876-4563-123456789012", "example-resource-group", "automationAccountValue", "softwareUpdateConfigurationMachineRunIdValue") -read, err := client.SoftwareUpdateConfigurationMachineRunsGetById(ctx, id, softwareupdateconfigurationmachinerun.DefaultSoftwareUpdateConfigurationMachineRunsGetByIdOperationOptions()) +read, err := client.GetById(ctx, id, softwareupdateconfigurationmachinerun.DefaultGetByIdOperationOptions()) if err != nil { // handle the error } @@ -36,13 +36,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `SoftwareUpdateConfigurationMachineRunClient.SoftwareUpdateConfigurationMachineRunsList` +### Example Usage: `SoftwareUpdateConfigurationMachineRunClient.List` ```go ctx := context.TODO() id := softwareupdateconfigurationmachinerun.NewAutomationAccountID("12345678-1234-9876-4563-123456789012", "example-resource-group", "automationAccountValue") -read, err := client.SoftwareUpdateConfigurationMachineRunsList(ctx, id, softwareupdateconfigurationmachinerun.DefaultSoftwareUpdateConfigurationMachineRunsListOperationOptions()) +read, err := client.List(ctx, id, softwareupdateconfigurationmachinerun.DefaultListOperationOptions()) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/method_softwareupdateconfigurationmachinerunsgetbyid.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/method_getbyid.go similarity index 54% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/method_softwareupdateconfigurationmachinerunsgetbyid.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/method_getbyid.go index d60def7349cb..491097fdd085 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/method_softwareupdateconfigurationmachinerunsgetbyid.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/method_getbyid.go @@ -12,21 +12,21 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type SoftwareUpdateConfigurationMachineRunsGetByIdOperationResponse struct { +type GetByIdOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *SoftwareUpdateConfigurationMachineRun } -type SoftwareUpdateConfigurationMachineRunsGetByIdOperationOptions struct { +type GetByIdOperationOptions struct { ClientRequestId *string } -func DefaultSoftwareUpdateConfigurationMachineRunsGetByIdOperationOptions() SoftwareUpdateConfigurationMachineRunsGetByIdOperationOptions { - return SoftwareUpdateConfigurationMachineRunsGetByIdOperationOptions{} +func DefaultGetByIdOperationOptions() GetByIdOperationOptions { + return GetByIdOperationOptions{} } -func (o SoftwareUpdateConfigurationMachineRunsGetByIdOperationOptions) ToHeaders() *client.Headers { +func (o GetByIdOperationOptions) ToHeaders() *client.Headers { out := client.Headers{} if o.ClientRequestId != nil { out.Append("clientRequestId", fmt.Sprintf("%v", *o.ClientRequestId)) @@ -34,19 +34,19 @@ func (o SoftwareUpdateConfigurationMachineRunsGetByIdOperationOptions) ToHeaders return &out } -func (o SoftwareUpdateConfigurationMachineRunsGetByIdOperationOptions) ToOData() *odata.Query { +func (o GetByIdOperationOptions) ToOData() *odata.Query { out := odata.Query{} return &out } -func (o SoftwareUpdateConfigurationMachineRunsGetByIdOperationOptions) ToQuery() *client.QueryParams { +func (o GetByIdOperationOptions) ToQuery() *client.QueryParams { out := client.QueryParams{} return &out } -// SoftwareUpdateConfigurationMachineRunsGetById ... -func (c SoftwareUpdateConfigurationMachineRunClient) SoftwareUpdateConfigurationMachineRunsGetById(ctx context.Context, id SoftwareUpdateConfigurationMachineRunId, options SoftwareUpdateConfigurationMachineRunsGetByIdOperationOptions) (result SoftwareUpdateConfigurationMachineRunsGetByIdOperationResponse, err error) { +// GetById ... +func (c SoftwareUpdateConfigurationMachineRunClient) GetById(ctx context.Context, id SoftwareUpdateConfigurationMachineRunId, options GetByIdOperationOptions) (result GetByIdOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/method_softwareupdateconfigurationmachinerunslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/method_list.go similarity index 62% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/method_softwareupdateconfigurationmachinerunslist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/method_list.go index 83cdac6b458d..9d8aede660fe 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/method_softwareupdateconfigurationmachinerunslist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationmachinerun/method_list.go @@ -12,24 +12,24 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type SoftwareUpdateConfigurationMachineRunsListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *SoftwareUpdateConfigurationMachineRunListResult } -type SoftwareUpdateConfigurationMachineRunsListOperationOptions struct { +type ListOperationOptions struct { ClientRequestId *string Filter *string Skip *string Top *string } -func DefaultSoftwareUpdateConfigurationMachineRunsListOperationOptions() SoftwareUpdateConfigurationMachineRunsListOperationOptions { - return SoftwareUpdateConfigurationMachineRunsListOperationOptions{} +func DefaultListOperationOptions() ListOperationOptions { + return ListOperationOptions{} } -func (o SoftwareUpdateConfigurationMachineRunsListOperationOptions) ToHeaders() *client.Headers { +func (o ListOperationOptions) ToHeaders() *client.Headers { out := client.Headers{} if o.ClientRequestId != nil { out.Append("clientRequestId", fmt.Sprintf("%v", *o.ClientRequestId)) @@ -37,12 +37,12 @@ func (o SoftwareUpdateConfigurationMachineRunsListOperationOptions) ToHeaders() return &out } -func (o SoftwareUpdateConfigurationMachineRunsListOperationOptions) ToOData() *odata.Query { +func (o ListOperationOptions) ToOData() *odata.Query { out := odata.Query{} return &out } -func (o SoftwareUpdateConfigurationMachineRunsListOperationOptions) ToQuery() *client.QueryParams { +func (o ListOperationOptions) ToQuery() *client.QueryParams { out := client.QueryParams{} if o.Filter != nil { out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) @@ -56,8 +56,8 @@ func (o SoftwareUpdateConfigurationMachineRunsListOperationOptions) ToQuery() *c return &out } -// SoftwareUpdateConfigurationMachineRunsList ... -func (c SoftwareUpdateConfigurationMachineRunClient) SoftwareUpdateConfigurationMachineRunsList(ctx context.Context, id AutomationAccountId, options SoftwareUpdateConfigurationMachineRunsListOperationOptions) (result SoftwareUpdateConfigurationMachineRunsListOperationResponse, err error) { +// List ... +func (c SoftwareUpdateConfigurationMachineRunClient) List(ctx context.Context, id AutomationAccountId, options ListOperationOptions) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/README.md index ebca664570a6..39d25d4b6075 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/README.md @@ -20,13 +20,13 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `SoftwareUpdateConfigurationRunClient.SoftwareUpdateConfigurationRunsGetById` +### Example Usage: `SoftwareUpdateConfigurationRunClient.GetById` ```go ctx := context.TODO() id := softwareupdateconfigurationrun.NewSoftwareUpdateConfigurationRunID("12345678-1234-9876-4563-123456789012", "example-resource-group", "automationAccountValue", "softwareUpdateConfigurationRunIdValue") -read, err := client.SoftwareUpdateConfigurationRunsGetById(ctx, id, softwareupdateconfigurationrun.DefaultSoftwareUpdateConfigurationRunsGetByIdOperationOptions()) +read, err := client.GetById(ctx, id, softwareupdateconfigurationrun.DefaultGetByIdOperationOptions()) if err != nil { // handle the error } @@ -36,13 +36,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `SoftwareUpdateConfigurationRunClient.SoftwareUpdateConfigurationRunsList` +### Example Usage: `SoftwareUpdateConfigurationRunClient.List` ```go ctx := context.TODO() id := softwareupdateconfigurationrun.NewAutomationAccountID("12345678-1234-9876-4563-123456789012", "example-resource-group", "automationAccountValue") -read, err := client.SoftwareUpdateConfigurationRunsList(ctx, id, softwareupdateconfigurationrun.DefaultSoftwareUpdateConfigurationRunsListOperationOptions()) +read, err := client.List(ctx, id, softwareupdateconfigurationrun.DefaultListOperationOptions()) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/method_softwareupdateconfigurationrunsgetbyid.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/method_getbyid.go similarity index 57% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/method_softwareupdateconfigurationrunsgetbyid.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/method_getbyid.go index 6a354dbe2797..b71161c81484 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/method_softwareupdateconfigurationrunsgetbyid.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/method_getbyid.go @@ -12,21 +12,21 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type SoftwareUpdateConfigurationRunsGetByIdOperationResponse struct { +type GetByIdOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *SoftwareUpdateConfigurationRun } -type SoftwareUpdateConfigurationRunsGetByIdOperationOptions struct { +type GetByIdOperationOptions struct { ClientRequestId *string } -func DefaultSoftwareUpdateConfigurationRunsGetByIdOperationOptions() SoftwareUpdateConfigurationRunsGetByIdOperationOptions { - return SoftwareUpdateConfigurationRunsGetByIdOperationOptions{} +func DefaultGetByIdOperationOptions() GetByIdOperationOptions { + return GetByIdOperationOptions{} } -func (o SoftwareUpdateConfigurationRunsGetByIdOperationOptions) ToHeaders() *client.Headers { +func (o GetByIdOperationOptions) ToHeaders() *client.Headers { out := client.Headers{} if o.ClientRequestId != nil { out.Append("clientRequestId", fmt.Sprintf("%v", *o.ClientRequestId)) @@ -34,19 +34,19 @@ func (o SoftwareUpdateConfigurationRunsGetByIdOperationOptions) ToHeaders() *cli return &out } -func (o SoftwareUpdateConfigurationRunsGetByIdOperationOptions) ToOData() *odata.Query { +func (o GetByIdOperationOptions) ToOData() *odata.Query { out := odata.Query{} return &out } -func (o SoftwareUpdateConfigurationRunsGetByIdOperationOptions) ToQuery() *client.QueryParams { +func (o GetByIdOperationOptions) ToQuery() *client.QueryParams { out := client.QueryParams{} return &out } -// SoftwareUpdateConfigurationRunsGetById ... -func (c SoftwareUpdateConfigurationRunClient) SoftwareUpdateConfigurationRunsGetById(ctx context.Context, id SoftwareUpdateConfigurationRunId, options SoftwareUpdateConfigurationRunsGetByIdOperationOptions) (result SoftwareUpdateConfigurationRunsGetByIdOperationResponse, err error) { +// GetById ... +func (c SoftwareUpdateConfigurationRunClient) GetById(ctx context.Context, id SoftwareUpdateConfigurationRunId, options GetByIdOperationOptions) (result GetByIdOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/method_softwareupdateconfigurationrunslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/method_list.go similarity index 64% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/method_softwareupdateconfigurationrunslist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/method_list.go index 07e03e04bb21..ec87c1b659fe 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/method_softwareupdateconfigurationrunslist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/automation/2022-08-08/softwareupdateconfigurationrun/method_list.go @@ -12,24 +12,24 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type SoftwareUpdateConfigurationRunsListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *SoftwareUpdateConfigurationRunListResult } -type SoftwareUpdateConfigurationRunsListOperationOptions struct { +type ListOperationOptions struct { ClientRequestId *string Filter *string Skip *string Top *string } -func DefaultSoftwareUpdateConfigurationRunsListOperationOptions() SoftwareUpdateConfigurationRunsListOperationOptions { - return SoftwareUpdateConfigurationRunsListOperationOptions{} +func DefaultListOperationOptions() ListOperationOptions { + return ListOperationOptions{} } -func (o SoftwareUpdateConfigurationRunsListOperationOptions) ToHeaders() *client.Headers { +func (o ListOperationOptions) ToHeaders() *client.Headers { out := client.Headers{} if o.ClientRequestId != nil { out.Append("clientRequestId", fmt.Sprintf("%v", *o.ClientRequestId)) @@ -37,12 +37,12 @@ func (o SoftwareUpdateConfigurationRunsListOperationOptions) ToHeaders() *client return &out } -func (o SoftwareUpdateConfigurationRunsListOperationOptions) ToOData() *odata.Query { +func (o ListOperationOptions) ToOData() *odata.Query { out := odata.Query{} return &out } -func (o SoftwareUpdateConfigurationRunsListOperationOptions) ToQuery() *client.QueryParams { +func (o ListOperationOptions) ToQuery() *client.QueryParams { out := client.QueryParams{} if o.Filter != nil { out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) @@ -56,8 +56,8 @@ func (o SoftwareUpdateConfigurationRunsListOperationOptions) ToQuery() *client.Q return &out } -// SoftwareUpdateConfigurationRunsList ... -func (c SoftwareUpdateConfigurationRunClient) SoftwareUpdateConfigurationRunsList(ctx context.Context, id AutomationAccountId, options SoftwareUpdateConfigurationRunsListOperationOptions) (result SoftwareUpdateConfigurationRunsListOperationResponse, err error) { +// List ... +func (c SoftwareUpdateConfigurationRunClient) List(ctx context.Context, id AutomationAccountId, options ListOperationOptions) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/README.md index 87859931e078..983c2b2cb53e 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `ExtensionsClient.ExtensionsCreate` +### Example Usage: `ExtensionsClient.Create` ```go ctx := context.TODO() @@ -31,31 +31,31 @@ payload := extensions.Extension{ } -if err := client.ExtensionsCreateThenPoll(ctx, id, payload); err != nil { +if err := client.CreateThenPoll(ctx, id, payload); err != nil { // handle the error } ``` -### Example Usage: `ExtensionsClient.ExtensionsDelete` +### Example Usage: `ExtensionsClient.Delete` ```go ctx := context.TODO() id := extensions.NewExtensionID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue", "arcSettingValue", "extensionValue") -if err := client.ExtensionsDeleteThenPoll(ctx, id); err != nil { +if err := client.DeleteThenPoll(ctx, id); err != nil { // handle the error } ``` -### Example Usage: `ExtensionsClient.ExtensionsGet` +### Example Usage: `ExtensionsClient.Get` ```go ctx := context.TODO() id := extensions.NewExtensionID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue", "arcSettingValue", "extensionValue") -read, err := client.ExtensionsGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -65,14 +65,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `ExtensionsClient.ExtensionsListByArcSetting` +### Example Usage: `ExtensionsClient.ListByArcSetting` ```go ctx := context.TODO() id := extensions.NewArcSettingID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue", "arcSettingValue") -// alternatively `client.ExtensionsListByArcSetting(ctx, id)` can be used to do batched pagination -items, err := client.ExtensionsListByArcSettingComplete(ctx, id) +// alternatively `client.ListByArcSetting(ctx, id)` can be used to do batched pagination +items, err := client.ListByArcSettingComplete(ctx, id) if err != nil { // handle the error } @@ -82,7 +82,7 @@ for _, item := range items { ``` -### Example Usage: `ExtensionsClient.ExtensionsUpdate` +### Example Usage: `ExtensionsClient.Update` ```go ctx := context.TODO() @@ -93,13 +93,13 @@ payload := extensions.Extension{ } -if err := client.ExtensionsUpdateThenPoll(ctx, id, payload); err != nil { +if err := client.UpdateThenPoll(ctx, id, payload); err != nil { // handle the error } ``` -### Example Usage: `ExtensionsClient.ExtensionsUpgrade` +### Example Usage: `ExtensionsClient.Upgrade` ```go ctx := context.TODO() @@ -110,7 +110,7 @@ payload := extensions.ExtensionUpgradeParameters{ } -if err := client.ExtensionsUpgradeThenPoll(ctx, id, payload); err != nil { +if err := client.UpgradeThenPoll(ctx, id, payload); err != nil { // handle the error } ``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionscreate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_create.go similarity index 67% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionscreate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_create.go index 3a5d07f853b5..1a3e8d46429d 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionscreate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_create.go @@ -14,14 +14,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ExtensionsCreateOperationResponse struct { +type CreateOperationResponse struct { Poller pollers.Poller HttpResponse *http.Response OData *odata.OData } -// ExtensionsCreate ... -func (c ExtensionsClient) ExtensionsCreate(ctx context.Context, id ExtensionId, input Extension) (result ExtensionsCreateOperationResponse, err error) { +// Create ... +func (c ExtensionsClient) Create(ctx context.Context, id ExtensionId, input Extension) (result CreateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -59,15 +59,15 @@ func (c ExtensionsClient) ExtensionsCreate(ctx context.Context, id ExtensionId, return } -// ExtensionsCreateThenPoll performs ExtensionsCreate then polls until it's completed -func (c ExtensionsClient) ExtensionsCreateThenPoll(ctx context.Context, id ExtensionId, input Extension) error { - result, err := c.ExtensionsCreate(ctx, id, input) +// CreateThenPoll performs Create then polls until it's completed +func (c ExtensionsClient) CreateThenPoll(ctx context.Context, id ExtensionId, input Extension) error { + result, err := c.Create(ctx, id, input) if err != nil { - return fmt.Errorf("performing ExtensionsCreate: %+v", err) + return fmt.Errorf("performing Create: %+v", err) } if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after ExtensionsCreate: %+v", err) + return fmt.Errorf("polling after Create: %+v", err) } return nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_delete.go similarity index 68% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionsdelete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_delete.go index c540d5d7cb77..00a5692b6d4a 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionsdelete.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_delete.go @@ -14,14 +14,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ExtensionsDeleteOperationResponse struct { +type DeleteOperationResponse struct { Poller pollers.Poller HttpResponse *http.Response OData *odata.OData } -// ExtensionsDelete ... -func (c ExtensionsClient) ExtensionsDelete(ctx context.Context, id ExtensionId) (result ExtensionsDeleteOperationResponse, err error) { +// Delete ... +func (c ExtensionsClient) Delete(ctx context.Context, id ExtensionId) (result DeleteOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -56,15 +56,15 @@ func (c ExtensionsClient) ExtensionsDelete(ctx context.Context, id ExtensionId) return } -// ExtensionsDeleteThenPoll performs ExtensionsDelete then polls until it's completed -func (c ExtensionsClient) ExtensionsDeleteThenPoll(ctx context.Context, id ExtensionId) error { - result, err := c.ExtensionsDelete(ctx, id) +// DeleteThenPoll performs Delete then polls until it's completed +func (c ExtensionsClient) DeleteThenPoll(ctx context.Context, id ExtensionId) error { + result, err := c.Delete(ctx, id) if err != nil { - return fmt.Errorf("performing ExtensionsDelete: %+v", err) + return fmt.Errorf("performing Delete: %+v", err) } if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after ExtensionsDelete: %+v", err) + return fmt.Errorf("polling after Delete: %+v", err) } return nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_get.go similarity index 82% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionsget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_get.go index 4b3f2de8f2e3..8588896a3913 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionsget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_get.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ExtensionsGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Extension } -// ExtensionsGet ... -func (c ExtensionsClient) ExtensionsGet(ctx context.Context, id ExtensionId) (result ExtensionsGetOperationResponse, err error) { +// Get ... +func (c ExtensionsClient) Get(ctx context.Context, id ExtensionId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionslistbyarcsetting.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_listbyarcsetting.go similarity index 55% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionslistbyarcsetting.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_listbyarcsetting.go index 16c99ba35b01..87515f772bfc 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionslistbyarcsetting.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_listbyarcsetting.go @@ -12,18 +12,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ExtensionsListByArcSettingOperationResponse struct { +type ListByArcSettingOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]Extension } -type ExtensionsListByArcSettingCompleteResult struct { +type ListByArcSettingCompleteResult struct { Items []Extension } -// ExtensionsListByArcSetting ... -func (c ExtensionsClient) ExtensionsListByArcSetting(ctx context.Context, id ArcSettingId) (result ExtensionsListByArcSettingOperationResponse, err error) { +// ListByArcSetting ... +func (c ExtensionsClient) ListByArcSetting(ctx context.Context, id ArcSettingId) (result ListByArcSettingOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -60,16 +60,16 @@ func (c ExtensionsClient) ExtensionsListByArcSetting(ctx context.Context, id Arc return } -// ExtensionsListByArcSettingComplete retrieves all the results into a single object -func (c ExtensionsClient) ExtensionsListByArcSettingComplete(ctx context.Context, id ArcSettingId) (ExtensionsListByArcSettingCompleteResult, error) { - return c.ExtensionsListByArcSettingCompleteMatchingPredicate(ctx, id, ExtensionOperationPredicate{}) +// ListByArcSettingComplete retrieves all the results into a single object +func (c ExtensionsClient) ListByArcSettingComplete(ctx context.Context, id ArcSettingId) (ListByArcSettingCompleteResult, error) { + return c.ListByArcSettingCompleteMatchingPredicate(ctx, id, ExtensionOperationPredicate{}) } -// ExtensionsListByArcSettingCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c ExtensionsClient) ExtensionsListByArcSettingCompleteMatchingPredicate(ctx context.Context, id ArcSettingId, predicate ExtensionOperationPredicate) (result ExtensionsListByArcSettingCompleteResult, err error) { +// ListByArcSettingCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c ExtensionsClient) ListByArcSettingCompleteMatchingPredicate(ctx context.Context, id ArcSettingId, predicate ExtensionOperationPredicate) (result ListByArcSettingCompleteResult, err error) { items := make([]Extension, 0) - resp, err := c.ExtensionsListByArcSetting(ctx, id) + resp, err := c.ListByArcSetting(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -82,7 +82,7 @@ func (c ExtensionsClient) ExtensionsListByArcSettingCompleteMatchingPredicate(ct } } - result = ExtensionsListByArcSettingCompleteResult{ + result = ListByArcSettingCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionsupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_update.go similarity index 67% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionsupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_update.go index c4cb835da700..e3004bd22e2e 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionsupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_update.go @@ -14,14 +14,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ExtensionsUpdateOperationResponse struct { +type UpdateOperationResponse struct { Poller pollers.Poller HttpResponse *http.Response OData *odata.OData } -// ExtensionsUpdate ... -func (c ExtensionsClient) ExtensionsUpdate(ctx context.Context, id ExtensionId, input Extension) (result ExtensionsUpdateOperationResponse, err error) { +// Update ... +func (c ExtensionsClient) Update(ctx context.Context, id ExtensionId, input Extension) (result UpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -59,15 +59,15 @@ func (c ExtensionsClient) ExtensionsUpdate(ctx context.Context, id ExtensionId, return } -// ExtensionsUpdateThenPoll performs ExtensionsUpdate then polls until it's completed -func (c ExtensionsClient) ExtensionsUpdateThenPoll(ctx context.Context, id ExtensionId, input Extension) error { - result, err := c.ExtensionsUpdate(ctx, id, input) +// UpdateThenPoll performs Update then polls until it's completed +func (c ExtensionsClient) UpdateThenPoll(ctx context.Context, id ExtensionId, input Extension) error { + result, err := c.Update(ctx, id, input) if err != nil { - return fmt.Errorf("performing ExtensionsUpdate: %+v", err) + return fmt.Errorf("performing Update: %+v", err) } if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after ExtensionsUpdate: %+v", err) + return fmt.Errorf("polling after Update: %+v", err) } return nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionsupgrade.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_upgrade.go similarity index 66% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionsupgrade.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_upgrade.go index 6d2886172e3d..22d59b202cb3 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_extensionsupgrade.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/extensions/method_upgrade.go @@ -14,14 +14,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ExtensionsUpgradeOperationResponse struct { +type UpgradeOperationResponse struct { Poller pollers.Poller HttpResponse *http.Response OData *odata.OData } -// ExtensionsUpgrade ... -func (c ExtensionsClient) ExtensionsUpgrade(ctx context.Context, id ExtensionId, input ExtensionUpgradeParameters) (result ExtensionsUpgradeOperationResponse, err error) { +// Upgrade ... +func (c ExtensionsClient) Upgrade(ctx context.Context, id ExtensionId, input ExtensionUpgradeParameters) (result UpgradeOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -58,15 +58,15 @@ func (c ExtensionsClient) ExtensionsUpgrade(ctx context.Context, id ExtensionId, return } -// ExtensionsUpgradeThenPoll performs ExtensionsUpgrade then polls until it's completed -func (c ExtensionsClient) ExtensionsUpgradeThenPoll(ctx context.Context, id ExtensionId, input ExtensionUpgradeParameters) error { - result, err := c.ExtensionsUpgrade(ctx, id, input) +// UpgradeThenPoll performs Upgrade then polls until it's completed +func (c ExtensionsClient) UpgradeThenPoll(ctx context.Context, id ExtensionId, input ExtensionUpgradeParameters) error { + result, err := c.Upgrade(ctx, id, input) if err != nil { - return fmt.Errorf("performing ExtensionsUpgrade: %+v", err) + return fmt.Errorf("performing Upgrade: %+v", err) } if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after ExtensionsUpgrade: %+v", err) + return fmt.Errorf("polling after Upgrade: %+v", err) } return nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/README.md index ecbe3fa4d7c0..578179777835 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/README.md @@ -20,13 +20,13 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `OffersClient.OffersGet` +### Example Usage: `OffersClient.Get` ```go ctx := context.TODO() id := offers.NewOfferID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue", "publisherValue", "offerValue") -read, err := client.OffersGet(ctx, id, offers.DefaultOffersGetOperationOptions()) +read, err := client.Get(ctx, id, offers.DefaultGetOperationOptions()) if err != nil { // handle the error } @@ -36,14 +36,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `OffersClient.OffersListByCluster` +### Example Usage: `OffersClient.ListByCluster` ```go ctx := context.TODO() id := offers.NewClusterID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue") -// alternatively `client.OffersListByCluster(ctx, id, offers.DefaultOffersListByClusterOperationOptions())` can be used to do batched pagination -items, err := client.OffersListByClusterComplete(ctx, id, offers.DefaultOffersListByClusterOperationOptions()) +// alternatively `client.ListByCluster(ctx, id, offers.DefaultListByClusterOperationOptions())` can be used to do batched pagination +items, err := client.ListByClusterComplete(ctx, id, offers.DefaultListByClusterOperationOptions()) if err != nil { // handle the error } @@ -53,14 +53,14 @@ for _, item := range items { ``` -### Example Usage: `OffersClient.OffersListByPublisher` +### Example Usage: `OffersClient.ListByPublisher` ```go ctx := context.TODO() id := offers.NewPublisherID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue", "publisherValue") -// alternatively `client.OffersListByPublisher(ctx, id, offers.DefaultOffersListByPublisherOperationOptions())` can be used to do batched pagination -items, err := client.OffersListByPublisherComplete(ctx, id, offers.DefaultOffersListByPublisherOperationOptions()) +// alternatively `client.ListByPublisher(ctx, id, offers.DefaultListByPublisherOperationOptions())` can be used to do batched pagination +items, err := client.ListByPublisherComplete(ctx, id, offers.DefaultListByPublisherOperationOptions()) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_offersget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_get.go similarity index 68% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_offersget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_get.go index 4ee29ea29948..d88c72ee5ce3 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_offersget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_get.go @@ -12,32 +12,32 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type OffersGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Offer } -type OffersGetOperationOptions struct { +type GetOperationOptions struct { Expand *string } -func DefaultOffersGetOperationOptions() OffersGetOperationOptions { - return OffersGetOperationOptions{} +func DefaultGetOperationOptions() GetOperationOptions { + return GetOperationOptions{} } -func (o OffersGetOperationOptions) ToHeaders() *client.Headers { +func (o GetOperationOptions) ToHeaders() *client.Headers { out := client.Headers{} return &out } -func (o OffersGetOperationOptions) ToOData() *odata.Query { +func (o GetOperationOptions) ToOData() *odata.Query { out := odata.Query{} return &out } -func (o OffersGetOperationOptions) ToQuery() *client.QueryParams { +func (o GetOperationOptions) ToQuery() *client.QueryParams { out := client.QueryParams{} if o.Expand != nil { out.Append("$expand", fmt.Sprintf("%v", *o.Expand)) @@ -45,8 +45,8 @@ func (o OffersGetOperationOptions) ToQuery() *client.QueryParams { return &out } -// OffersGet ... -func (c OffersClient) OffersGet(ctx context.Context, id OfferId, options OffersGetOperationOptions) (result OffersGetOperationResponse, err error) { +// Get ... +func (c OffersClient) Get(ctx context.Context, id OfferId, options GetOperationOptions) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_offerslistbycluster.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_listbycluster.go similarity index 50% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_offerslistbycluster.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_listbycluster.go index df80c8f8b0e7..f57d01728f83 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_offerslistbycluster.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_listbycluster.go @@ -12,36 +12,36 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type OffersListByClusterOperationResponse struct { +type ListByClusterOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]Offer } -type OffersListByClusterCompleteResult struct { +type ListByClusterCompleteResult struct { Items []Offer } -type OffersListByClusterOperationOptions struct { +type ListByClusterOperationOptions struct { Expand *string } -func DefaultOffersListByClusterOperationOptions() OffersListByClusterOperationOptions { - return OffersListByClusterOperationOptions{} +func DefaultListByClusterOperationOptions() ListByClusterOperationOptions { + return ListByClusterOperationOptions{} } -func (o OffersListByClusterOperationOptions) ToHeaders() *client.Headers { +func (o ListByClusterOperationOptions) ToHeaders() *client.Headers { out := client.Headers{} return &out } -func (o OffersListByClusterOperationOptions) ToOData() *odata.Query { +func (o ListByClusterOperationOptions) ToOData() *odata.Query { out := odata.Query{} return &out } -func (o OffersListByClusterOperationOptions) ToQuery() *client.QueryParams { +func (o ListByClusterOperationOptions) ToQuery() *client.QueryParams { out := client.QueryParams{} if o.Expand != nil { out.Append("$expand", fmt.Sprintf("%v", *o.Expand)) @@ -49,8 +49,8 @@ func (o OffersListByClusterOperationOptions) ToQuery() *client.QueryParams { return &out } -// OffersListByCluster ... -func (c OffersClient) OffersListByCluster(ctx context.Context, id ClusterId, options OffersListByClusterOperationOptions) (result OffersListByClusterOperationResponse, err error) { +// ListByCluster ... +func (c OffersClient) ListByCluster(ctx context.Context, id ClusterId, options ListByClusterOperationOptions) (result ListByClusterOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -88,16 +88,16 @@ func (c OffersClient) OffersListByCluster(ctx context.Context, id ClusterId, opt return } -// OffersListByClusterComplete retrieves all the results into a single object -func (c OffersClient) OffersListByClusterComplete(ctx context.Context, id ClusterId, options OffersListByClusterOperationOptions) (OffersListByClusterCompleteResult, error) { - return c.OffersListByClusterCompleteMatchingPredicate(ctx, id, options, OfferOperationPredicate{}) +// ListByClusterComplete retrieves all the results into a single object +func (c OffersClient) ListByClusterComplete(ctx context.Context, id ClusterId, options ListByClusterOperationOptions) (ListByClusterCompleteResult, error) { + return c.ListByClusterCompleteMatchingPredicate(ctx, id, options, OfferOperationPredicate{}) } -// OffersListByClusterCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c OffersClient) OffersListByClusterCompleteMatchingPredicate(ctx context.Context, id ClusterId, options OffersListByClusterOperationOptions, predicate OfferOperationPredicate) (result OffersListByClusterCompleteResult, err error) { +// ListByClusterCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c OffersClient) ListByClusterCompleteMatchingPredicate(ctx context.Context, id ClusterId, options ListByClusterOperationOptions, predicate OfferOperationPredicate) (result ListByClusterCompleteResult, err error) { items := make([]Offer, 0) - resp, err := c.OffersListByCluster(ctx, id, options) + resp, err := c.ListByCluster(ctx, id, options) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -110,7 +110,7 @@ func (c OffersClient) OffersListByClusterCompleteMatchingPredicate(ctx context.C } } - result = OffersListByClusterCompleteResult{ + result = ListByClusterCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_offerslistbypublisher.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_listbypublisher.go similarity index 50% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_offerslistbypublisher.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_listbypublisher.go index d8348049eecb..8110b3258eaa 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_offerslistbypublisher.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/offers/method_listbypublisher.go @@ -12,36 +12,36 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type OffersListByPublisherOperationResponse struct { +type ListByPublisherOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]Offer } -type OffersListByPublisherCompleteResult struct { +type ListByPublisherCompleteResult struct { Items []Offer } -type OffersListByPublisherOperationOptions struct { +type ListByPublisherOperationOptions struct { Expand *string } -func DefaultOffersListByPublisherOperationOptions() OffersListByPublisherOperationOptions { - return OffersListByPublisherOperationOptions{} +func DefaultListByPublisherOperationOptions() ListByPublisherOperationOptions { + return ListByPublisherOperationOptions{} } -func (o OffersListByPublisherOperationOptions) ToHeaders() *client.Headers { +func (o ListByPublisherOperationOptions) ToHeaders() *client.Headers { out := client.Headers{} return &out } -func (o OffersListByPublisherOperationOptions) ToOData() *odata.Query { +func (o ListByPublisherOperationOptions) ToOData() *odata.Query { out := odata.Query{} return &out } -func (o OffersListByPublisherOperationOptions) ToQuery() *client.QueryParams { +func (o ListByPublisherOperationOptions) ToQuery() *client.QueryParams { out := client.QueryParams{} if o.Expand != nil { out.Append("$expand", fmt.Sprintf("%v", *o.Expand)) @@ -49,8 +49,8 @@ func (o OffersListByPublisherOperationOptions) ToQuery() *client.QueryParams { return &out } -// OffersListByPublisher ... -func (c OffersClient) OffersListByPublisher(ctx context.Context, id PublisherId, options OffersListByPublisherOperationOptions) (result OffersListByPublisherOperationResponse, err error) { +// ListByPublisher ... +func (c OffersClient) ListByPublisher(ctx context.Context, id PublisherId, options ListByPublisherOperationOptions) (result ListByPublisherOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -88,16 +88,16 @@ func (c OffersClient) OffersListByPublisher(ctx context.Context, id PublisherId, return } -// OffersListByPublisherComplete retrieves all the results into a single object -func (c OffersClient) OffersListByPublisherComplete(ctx context.Context, id PublisherId, options OffersListByPublisherOperationOptions) (OffersListByPublisherCompleteResult, error) { - return c.OffersListByPublisherCompleteMatchingPredicate(ctx, id, options, OfferOperationPredicate{}) +// ListByPublisherComplete retrieves all the results into a single object +func (c OffersClient) ListByPublisherComplete(ctx context.Context, id PublisherId, options ListByPublisherOperationOptions) (ListByPublisherCompleteResult, error) { + return c.ListByPublisherCompleteMatchingPredicate(ctx, id, options, OfferOperationPredicate{}) } -// OffersListByPublisherCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c OffersClient) OffersListByPublisherCompleteMatchingPredicate(ctx context.Context, id PublisherId, options OffersListByPublisherOperationOptions, predicate OfferOperationPredicate) (result OffersListByPublisherCompleteResult, err error) { +// ListByPublisherCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c OffersClient) ListByPublisherCompleteMatchingPredicate(ctx context.Context, id PublisherId, options ListByPublisherOperationOptions, predicate OfferOperationPredicate) (result ListByPublisherCompleteResult, err error) { items := make([]Offer, 0) - resp, err := c.OffersListByPublisher(ctx, id, options) + resp, err := c.ListByPublisher(ctx, id, options) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -110,7 +110,7 @@ func (c OffersClient) OffersListByPublisherCompleteMatchingPredicate(ctx context } } - result = OffersListByPublisherCompleteResult{ + result = ListByPublisherCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/README.md index 5d2653d5cb8b..4f11e94c6110 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/README.md @@ -20,13 +20,13 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `PublishersClient.PublishersGet` +### Example Usage: `PublishersClient.Get` ```go ctx := context.TODO() id := publishers.NewPublisherID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue", "publisherValue") -read, err := client.PublishersGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -36,14 +36,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `PublishersClient.PublishersListByCluster` +### Example Usage: `PublishersClient.ListByCluster` ```go ctx := context.TODO() id := publishers.NewClusterID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue") -// alternatively `client.PublishersListByCluster(ctx, id)` can be used to do batched pagination -items, err := client.PublishersListByClusterComplete(ctx, id) +// alternatively `client.ListByCluster(ctx, id)` can be used to do batched pagination +items, err := client.ListByClusterComplete(ctx, id) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/method_publishersget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/method_get.go similarity index 82% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/method_publishersget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/method_get.go index f69bd15f8c3d..9051da16a542 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/method_publishersget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/method_get.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type PublishersGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Publisher } -// PublishersGet ... -func (c PublishersClient) PublishersGet(ctx context.Context, id PublisherId) (result PublishersGetOperationResponse, err error) { +// Get ... +func (c PublishersClient) Get(ctx context.Context, id PublisherId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/method_publisherslistbycluster.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/method_listbycluster.go similarity index 56% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/method_publisherslistbycluster.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/method_listbycluster.go index f60c90893d13..4d4cafb8ae9a 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/method_publisherslistbycluster.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/publishers/method_listbycluster.go @@ -12,18 +12,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type PublishersListByClusterOperationResponse struct { +type ListByClusterOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]Publisher } -type PublishersListByClusterCompleteResult struct { +type ListByClusterCompleteResult struct { Items []Publisher } -// PublishersListByCluster ... -func (c PublishersClient) PublishersListByCluster(ctx context.Context, id ClusterId) (result PublishersListByClusterOperationResponse, err error) { +// ListByCluster ... +func (c PublishersClient) ListByCluster(ctx context.Context, id ClusterId) (result ListByClusterOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -60,16 +60,16 @@ func (c PublishersClient) PublishersListByCluster(ctx context.Context, id Cluste return } -// PublishersListByClusterComplete retrieves all the results into a single object -func (c PublishersClient) PublishersListByClusterComplete(ctx context.Context, id ClusterId) (PublishersListByClusterCompleteResult, error) { - return c.PublishersListByClusterCompleteMatchingPredicate(ctx, id, PublisherOperationPredicate{}) +// ListByClusterComplete retrieves all the results into a single object +func (c PublishersClient) ListByClusterComplete(ctx context.Context, id ClusterId) (ListByClusterCompleteResult, error) { + return c.ListByClusterCompleteMatchingPredicate(ctx, id, PublisherOperationPredicate{}) } -// PublishersListByClusterCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c PublishersClient) PublishersListByClusterCompleteMatchingPredicate(ctx context.Context, id ClusterId, predicate PublisherOperationPredicate) (result PublishersListByClusterCompleteResult, err error) { +// ListByClusterCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c PublishersClient) ListByClusterCompleteMatchingPredicate(ctx context.Context, id ClusterId, predicate PublisherOperationPredicate) (result ListByClusterCompleteResult, err error) { items := make([]Publisher, 0) - resp, err := c.PublishersListByCluster(ctx, id) + resp, err := c.ListByCluster(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -82,7 +82,7 @@ func (c PublishersClient) PublishersListByClusterCompleteMatchingPredicate(ctx c } } - result = PublishersListByClusterCompleteResult{ + result = ListByClusterCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/README.md index b96187a70ab6..bed63366de67 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/README.md @@ -20,25 +20,25 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `UpdateRunsClient.UpdateRunsDelete` +### Example Usage: `UpdateRunsClient.Delete` ```go ctx := context.TODO() id := updateruns.NewUpdateRunID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue", "updateValue", "updateRunValue") -if err := client.UpdateRunsDeleteThenPoll(ctx, id); err != nil { +if err := client.DeleteThenPoll(ctx, id); err != nil { // handle the error } ``` -### Example Usage: `UpdateRunsClient.UpdateRunsGet` +### Example Usage: `UpdateRunsClient.Get` ```go ctx := context.TODO() id := updateruns.NewUpdateRunID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue", "updateValue", "updateRunValue") -read, err := client.UpdateRunsGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -48,14 +48,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `UpdateRunsClient.UpdateRunsList` +### Example Usage: `UpdateRunsClient.List` ```go ctx := context.TODO() id := updateruns.NewUpdateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue", "updateValue") -// alternatively `client.UpdateRunsList(ctx, id)` can be used to do batched pagination -items, err := client.UpdateRunsListComplete(ctx, id) +// alternatively `client.List(ctx, id)` can be used to do batched pagination +items, err := client.ListComplete(ctx, id) if err != nil { // handle the error } @@ -65,7 +65,7 @@ for _, item := range items { ``` -### Example Usage: `UpdateRunsClient.UpdateRunsPut` +### Example Usage: `UpdateRunsClient.Put` ```go ctx := context.TODO() @@ -76,7 +76,7 @@ payload := updateruns.UpdateRun{ } -read, err := client.UpdateRunsPut(ctx, id, payload) +read, err := client.Put(ctx, id, payload) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_updaterunsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_delete.go similarity index 68% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_updaterunsdelete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_delete.go index 9c05a8bc3345..93881d05ad31 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_updaterunsdelete.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_delete.go @@ -14,14 +14,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type UpdateRunsDeleteOperationResponse struct { +type DeleteOperationResponse struct { Poller pollers.Poller HttpResponse *http.Response OData *odata.OData } -// UpdateRunsDelete ... -func (c UpdateRunsClient) UpdateRunsDelete(ctx context.Context, id UpdateRunId) (result UpdateRunsDeleteOperationResponse, err error) { +// Delete ... +func (c UpdateRunsClient) Delete(ctx context.Context, id UpdateRunId) (result DeleteOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -56,15 +56,15 @@ func (c UpdateRunsClient) UpdateRunsDelete(ctx context.Context, id UpdateRunId) return } -// UpdateRunsDeleteThenPoll performs UpdateRunsDelete then polls until it's completed -func (c UpdateRunsClient) UpdateRunsDeleteThenPoll(ctx context.Context, id UpdateRunId) error { - result, err := c.UpdateRunsDelete(ctx, id) +// DeleteThenPoll performs Delete then polls until it's completed +func (c UpdateRunsClient) DeleteThenPoll(ctx context.Context, id UpdateRunId) error { + result, err := c.Delete(ctx, id) if err != nil { - return fmt.Errorf("performing UpdateRunsDelete: %+v", err) + return fmt.Errorf("performing Delete: %+v", err) } if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after UpdateRunsDelete: %+v", err) + return fmt.Errorf("polling after Delete: %+v", err) } return nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_updaterunsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_get.go similarity index 82% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_updaterunsget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_get.go index 2e43d0966239..64d0f910e25d 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_updaterunsget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_get.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type UpdateRunsGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *UpdateRun } -// UpdateRunsGet ... -func (c UpdateRunsClient) UpdateRunsGet(ctx context.Context, id UpdateRunId) (result UpdateRunsGetOperationResponse, err error) { +// Get ... +func (c UpdateRunsClient) Get(ctx context.Context, id UpdateRunId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_updaterunslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_list.go similarity index 59% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_updaterunslist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_list.go index dfe0fea089ba..3439701938b2 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_updaterunslist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_list.go @@ -12,18 +12,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type UpdateRunsListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]UpdateRun } -type UpdateRunsListCompleteResult struct { +type ListCompleteResult struct { Items []UpdateRun } -// UpdateRunsList ... -func (c UpdateRunsClient) UpdateRunsList(ctx context.Context, id UpdateId) (result UpdateRunsListOperationResponse, err error) { +// List ... +func (c UpdateRunsClient) List(ctx context.Context, id UpdateId) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -60,16 +60,16 @@ func (c UpdateRunsClient) UpdateRunsList(ctx context.Context, id UpdateId) (resu return } -// UpdateRunsListComplete retrieves all the results into a single object -func (c UpdateRunsClient) UpdateRunsListComplete(ctx context.Context, id UpdateId) (UpdateRunsListCompleteResult, error) { - return c.UpdateRunsListCompleteMatchingPredicate(ctx, id, UpdateRunOperationPredicate{}) +// ListComplete retrieves all the results into a single object +func (c UpdateRunsClient) ListComplete(ctx context.Context, id UpdateId) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, UpdateRunOperationPredicate{}) } -// UpdateRunsListCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c UpdateRunsClient) UpdateRunsListCompleteMatchingPredicate(ctx context.Context, id UpdateId, predicate UpdateRunOperationPredicate) (result UpdateRunsListCompleteResult, err error) { +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c UpdateRunsClient) ListCompleteMatchingPredicate(ctx context.Context, id UpdateId, predicate UpdateRunOperationPredicate) (result ListCompleteResult, err error) { items := make([]UpdateRun, 0) - resp, err := c.UpdateRunsList(ctx, id) + resp, err := c.List(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -82,7 +82,7 @@ func (c UpdateRunsClient) UpdateRunsListCompleteMatchingPredicate(ctx context.Co } } - result = UpdateRunsListCompleteResult{ + result = ListCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_updaterunsput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_put.go similarity index 81% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_updaterunsput.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_put.go index 7a8bf3dd170f..10a3a926a4c8 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_updaterunsput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updateruns/method_put.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type UpdateRunsPutOperationResponse struct { +type PutOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *UpdateRun } -// UpdateRunsPut ... -func (c UpdateRunsClient) UpdateRunsPut(ctx context.Context, id UpdateRunId, input UpdateRun) (result UpdateRunsPutOperationResponse, err error) { +// Put ... +func (c UpdateRunsClient) Put(ctx context.Context, id UpdateRunId, input UpdateRun) (result PutOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/README.md index aa706c71553f..0a9065e6b136 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/README.md @@ -20,25 +20,25 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `UpdatesClient.UpdatesDelete` +### Example Usage: `UpdatesClient.Delete` ```go ctx := context.TODO() id := updates.NewUpdateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue", "updateValue") -if err := client.UpdatesDeleteThenPoll(ctx, id); err != nil { +if err := client.DeleteThenPoll(ctx, id); err != nil { // handle the error } ``` -### Example Usage: `UpdatesClient.UpdatesGet` +### Example Usage: `UpdatesClient.Get` ```go ctx := context.TODO() id := updates.NewUpdateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue", "updateValue") -read, err := client.UpdatesGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -48,14 +48,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `UpdatesClient.UpdatesList` +### Example Usage: `UpdatesClient.List` ```go ctx := context.TODO() id := updates.NewClusterID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue") -// alternatively `client.UpdatesList(ctx, id)` can be used to do batched pagination -items, err := client.UpdatesListComplete(ctx, id) +// alternatively `client.List(ctx, id)` can be used to do batched pagination +items, err := client.ListComplete(ctx, id) if err != nil { // handle the error } @@ -65,19 +65,19 @@ for _, item := range items { ``` -### Example Usage: `UpdatesClient.UpdatesPost` +### Example Usage: `UpdatesClient.Post` ```go ctx := context.TODO() id := updates.NewUpdateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue", "updateValue") -if err := client.UpdatesPostThenPoll(ctx, id); err != nil { +if err := client.PostThenPoll(ctx, id); err != nil { // handle the error } ``` -### Example Usage: `UpdatesClient.UpdatesPut` +### Example Usage: `UpdatesClient.Put` ```go ctx := context.TODO() @@ -88,7 +88,7 @@ payload := updates.Update{ } -read, err := client.UpdatesPut(ctx, id, payload) +read, err := client.Put(ctx, id, payload) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updatesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_delete.go similarity index 70% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updatesdelete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_delete.go index 604cb98106f7..e2977fac7f92 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updatesdelete.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_delete.go @@ -14,14 +14,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type UpdatesDeleteOperationResponse struct { +type DeleteOperationResponse struct { Poller pollers.Poller HttpResponse *http.Response OData *odata.OData } -// UpdatesDelete ... -func (c UpdatesClient) UpdatesDelete(ctx context.Context, id UpdateId) (result UpdatesDeleteOperationResponse, err error) { +// Delete ... +func (c UpdatesClient) Delete(ctx context.Context, id UpdateId) (result DeleteOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -56,15 +56,15 @@ func (c UpdatesClient) UpdatesDelete(ctx context.Context, id UpdateId) (result U return } -// UpdatesDeleteThenPoll performs UpdatesDelete then polls until it's completed -func (c UpdatesClient) UpdatesDeleteThenPoll(ctx context.Context, id UpdateId) error { - result, err := c.UpdatesDelete(ctx, id) +// DeleteThenPoll performs Delete then polls until it's completed +func (c UpdatesClient) DeleteThenPoll(ctx context.Context, id UpdateId) error { + result, err := c.Delete(ctx, id) if err != nil { - return fmt.Errorf("performing UpdatesDelete: %+v", err) + return fmt.Errorf("performing Delete: %+v", err) } if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after UpdatesDelete: %+v", err) + return fmt.Errorf("polling after Delete: %+v", err) } return nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updatesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_get.go similarity index 83% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updatesget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_get.go index da40936ed40f..522a789507d0 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updatesget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_get.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type UpdatesGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Update } -// UpdatesGet ... -func (c UpdatesClient) UpdatesGet(ctx context.Context, id UpdateId) (result UpdatesGetOperationResponse, err error) { +// Get ... +func (c UpdatesClient) Get(ctx context.Context, id UpdateId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updateslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_list.go similarity index 60% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updateslist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_list.go index 75c14a0b1e81..a60cd434758b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updateslist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_list.go @@ -12,18 +12,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type UpdatesListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]Update } -type UpdatesListCompleteResult struct { +type ListCompleteResult struct { Items []Update } -// UpdatesList ... -func (c UpdatesClient) UpdatesList(ctx context.Context, id ClusterId) (result UpdatesListOperationResponse, err error) { +// List ... +func (c UpdatesClient) List(ctx context.Context, id ClusterId) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -60,16 +60,16 @@ func (c UpdatesClient) UpdatesList(ctx context.Context, id ClusterId) (result Up return } -// UpdatesListComplete retrieves all the results into a single object -func (c UpdatesClient) UpdatesListComplete(ctx context.Context, id ClusterId) (UpdatesListCompleteResult, error) { - return c.UpdatesListCompleteMatchingPredicate(ctx, id, UpdateOperationPredicate{}) +// ListComplete retrieves all the results into a single object +func (c UpdatesClient) ListComplete(ctx context.Context, id ClusterId) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, UpdateOperationPredicate{}) } -// UpdatesListCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c UpdatesClient) UpdatesListCompleteMatchingPredicate(ctx context.Context, id ClusterId, predicate UpdateOperationPredicate) (result UpdatesListCompleteResult, err error) { +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c UpdatesClient) ListCompleteMatchingPredicate(ctx context.Context, id ClusterId, predicate UpdateOperationPredicate) (result ListCompleteResult, err error) { items := make([]Update, 0) - resp, err := c.UpdatesList(ctx, id) + resp, err := c.List(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -82,7 +82,7 @@ func (c UpdatesClient) UpdatesListCompleteMatchingPredicate(ctx context.Context, } } - result = UpdatesListCompleteResult{ + result = ListCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updatespost.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_post.go similarity index 71% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updatespost.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_post.go index 809eb8b50946..b41ccb849bb2 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updatespost.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_post.go @@ -14,14 +14,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type UpdatesPostOperationResponse struct { +type PostOperationResponse struct { Poller pollers.Poller HttpResponse *http.Response OData *odata.OData } -// UpdatesPost ... -func (c UpdatesClient) UpdatesPost(ctx context.Context, id UpdateId) (result UpdatesPostOperationResponse, err error) { +// Post ... +func (c UpdatesClient) Post(ctx context.Context, id UpdateId) (result PostOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -55,15 +55,15 @@ func (c UpdatesClient) UpdatesPost(ctx context.Context, id UpdateId) (result Upd return } -// UpdatesPostThenPoll performs UpdatesPost then polls until it's completed -func (c UpdatesClient) UpdatesPostThenPoll(ctx context.Context, id UpdateId) error { - result, err := c.UpdatesPost(ctx, id) +// PostThenPoll performs Post then polls until it's completed +func (c UpdatesClient) PostThenPoll(ctx context.Context, id UpdateId) error { + result, err := c.Post(ctx, id) if err != nil { - return fmt.Errorf("performing UpdatesPost: %+v", err) + return fmt.Errorf("performing Post: %+v", err) } if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after UpdatesPost: %+v", err) + return fmt.Errorf("polling after Post: %+v", err) } return nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updatesput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_put.go similarity index 83% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updatesput.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_put.go index b89ea1ccaa8f..d1330de10b98 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_updatesput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updates/method_put.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type UpdatesPutOperationResponse struct { +type PutOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Update } -// UpdatesPut ... -func (c UpdatesClient) UpdatesPut(ctx context.Context, id UpdateId, input Update) (result UpdatesPutOperationResponse, err error) { +// Put ... +func (c UpdatesClient) Put(ctx context.Context, id UpdateId, input Update) (result PutOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/README.md index 103f77409ec1..b8920573fb2b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/README.md @@ -20,25 +20,25 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `UpdateSummariesClient.UpdateSummariesDelete` +### Example Usage: `UpdateSummariesClient.Delete` ```go ctx := context.TODO() id := updatesummaries.NewClusterID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue") -if err := client.UpdateSummariesDeleteThenPoll(ctx, id); err != nil { +if err := client.DeleteThenPoll(ctx, id); err != nil { // handle the error } ``` -### Example Usage: `UpdateSummariesClient.UpdateSummariesGet` +### Example Usage: `UpdateSummariesClient.Get` ```go ctx := context.TODO() id := updatesummaries.NewClusterID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue") -read, err := client.UpdateSummariesGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -48,14 +48,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `UpdateSummariesClient.UpdateSummariesList` +### Example Usage: `UpdateSummariesClient.List` ```go ctx := context.TODO() id := updatesummaries.NewClusterID("12345678-1234-9876-4563-123456789012", "example-resource-group", "clusterValue") -// alternatively `client.UpdateSummariesList(ctx, id)` can be used to do batched pagination -items, err := client.UpdateSummariesListComplete(ctx, id) +// alternatively `client.List(ctx, id)` can be used to do batched pagination +items, err := client.ListComplete(ctx, id) if err != nil { // handle the error } @@ -65,7 +65,7 @@ for _, item := range items { ``` -### Example Usage: `UpdateSummariesClient.UpdateSummariesPut` +### Example Usage: `UpdateSummariesClient.Put` ```go ctx := context.TODO() @@ -76,7 +76,7 @@ payload := updatesummaries.UpdateSummaries{ } -read, err := client.UpdateSummariesPut(ctx, id, payload) +read, err := client.Put(ctx, id, payload) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_updatesummariesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_delete.go similarity index 67% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_updatesummariesdelete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_delete.go index e209c529842b..b3ba841c6be5 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_updatesummariesdelete.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_delete.go @@ -14,14 +14,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type UpdateSummariesDeleteOperationResponse struct { +type DeleteOperationResponse struct { Poller pollers.Poller HttpResponse *http.Response OData *odata.OData } -// UpdateSummariesDelete ... -func (c UpdateSummariesClient) UpdateSummariesDelete(ctx context.Context, id ClusterId) (result UpdateSummariesDeleteOperationResponse, err error) { +// Delete ... +func (c UpdateSummariesClient) Delete(ctx context.Context, id ClusterId) (result DeleteOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -56,15 +56,15 @@ func (c UpdateSummariesClient) UpdateSummariesDelete(ctx context.Context, id Clu return } -// UpdateSummariesDeleteThenPoll performs UpdateSummariesDelete then polls until it's completed -func (c UpdateSummariesClient) UpdateSummariesDeleteThenPoll(ctx context.Context, id ClusterId) error { - result, err := c.UpdateSummariesDelete(ctx, id) +// DeleteThenPoll performs Delete then polls until it's completed +func (c UpdateSummariesClient) DeleteThenPoll(ctx context.Context, id ClusterId) error { + result, err := c.Delete(ctx, id) if err != nil { - return fmt.Errorf("performing UpdateSummariesDelete: %+v", err) + return fmt.Errorf("performing Delete: %+v", err) } if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after UpdateSummariesDelete: %+v", err) + return fmt.Errorf("polling after Delete: %+v", err) } return nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_updatesummariesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_get.go similarity index 81% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_updatesummariesget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_get.go index 12cf2516cd96..4d276115b34a 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_updatesummariesget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_get.go @@ -12,14 +12,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type UpdateSummariesGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *UpdateSummaries } -// UpdateSummariesGet ... -func (c UpdateSummariesClient) UpdateSummariesGet(ctx context.Context, id ClusterId) (result UpdateSummariesGetOperationResponse, err error) { +// Get ... +func (c UpdateSummariesClient) Get(ctx context.Context, id ClusterId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_updatesummarieslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_list.go similarity index 57% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_updatesummarieslist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_list.go index 51a1bce43ca0..f12814e9ae4c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_updatesummarieslist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_list.go @@ -12,18 +12,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type UpdateSummariesListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]UpdateSummaries } -type UpdateSummariesListCompleteResult struct { +type ListCompleteResult struct { Items []UpdateSummaries } -// UpdateSummariesList ... -func (c UpdateSummariesClient) UpdateSummariesList(ctx context.Context, id ClusterId) (result UpdateSummariesListOperationResponse, err error) { +// List ... +func (c UpdateSummariesClient) List(ctx context.Context, id ClusterId) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -60,16 +60,16 @@ func (c UpdateSummariesClient) UpdateSummariesList(ctx context.Context, id Clust return } -// UpdateSummariesListComplete retrieves all the results into a single object -func (c UpdateSummariesClient) UpdateSummariesListComplete(ctx context.Context, id ClusterId) (UpdateSummariesListCompleteResult, error) { - return c.UpdateSummariesListCompleteMatchingPredicate(ctx, id, UpdateSummariesOperationPredicate{}) +// ListComplete retrieves all the results into a single object +func (c UpdateSummariesClient) ListComplete(ctx context.Context, id ClusterId) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, UpdateSummariesOperationPredicate{}) } -// UpdateSummariesListCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c UpdateSummariesClient) UpdateSummariesListCompleteMatchingPredicate(ctx context.Context, id ClusterId, predicate UpdateSummariesOperationPredicate) (result UpdateSummariesListCompleteResult, err error) { +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c UpdateSummariesClient) ListCompleteMatchingPredicate(ctx context.Context, id ClusterId, predicate UpdateSummariesOperationPredicate) (result ListCompleteResult, err error) { items := make([]UpdateSummaries, 0) - resp, err := c.UpdateSummariesList(ctx, id) + resp, err := c.List(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -82,7 +82,7 @@ func (c UpdateSummariesClient) UpdateSummariesListCompleteMatchingPredicate(ctx } } - result = UpdateSummariesListCompleteResult{ + result = ListCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_updatesummariesput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_put.go similarity index 80% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_updatesummariesput.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_put.go index c9b6d770e47f..23d550f67429 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_updatesummariesput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/azurestackhci/2023-03-01/updatesummaries/method_put.go @@ -12,14 +12,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type UpdateSummariesPutOperationResponse struct { +type PutOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *UpdateSummaries } -// UpdateSummariesPut ... -func (c UpdateSummariesClient) UpdateSummariesPut(ctx context.Context, id ClusterId, input UpdateSummaries) (result UpdateSummariesPutOperationResponse, err error) { +// Put ... +func (c UpdateSummariesClient) Put(ctx context.Context, id ClusterId, input UpdateSummaries) (result PutOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dns/2018-05-01/dns/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dns/2018-05-01/dns/README.md index 131c3b69a376..637023a3c1c9 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dns/2018-05-01/dns/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dns/2018-05-01/dns/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `DnsClient.DnsResourceReferenceGetByTargetResources` +### Example Usage: `DnsClient.ResourceReferenceGetByTargetResources` ```go ctx := context.TODO() @@ -31,7 +31,7 @@ payload := dns.DnsResourceReferenceRequest{ } -read, err := client.DnsResourceReferenceGetByTargetResources(ctx, id, payload) +read, err := client.ResourceReferenceGetByTargetResources(ctx, id, payload) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dns/2018-05-01/dns/method_dnsresourcereferencegetbytargetresources.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dns/2018-05-01/dns/method_resourcereferencegetbytargetresources.go similarity index 76% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dns/2018-05-01/dns/method_dnsresourcereferencegetbytargetresources.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dns/2018-05-01/dns/method_resourcereferencegetbytargetresources.go index 41f25efdd592..ac04e0794ed7 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dns/2018-05-01/dns/method_dnsresourcereferencegetbytargetresources.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dns/2018-05-01/dns/method_resourcereferencegetbytargetresources.go @@ -13,14 +13,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type DnsResourceReferenceGetByTargetResourcesOperationResponse struct { +type ResourceReferenceGetByTargetResourcesOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *DnsResourceReferenceResult } -// DnsResourceReferenceGetByTargetResources ... -func (c DnsClient) DnsResourceReferenceGetByTargetResources(ctx context.Context, id commonids.SubscriptionId, input DnsResourceReferenceRequest) (result DnsResourceReferenceGetByTargetResourcesOperationResponse, err error) { +// ResourceReferenceGetByTargetResources ... +func (c DnsClient) ResourceReferenceGetByTargetResources(ctx context.Context, id commonids.SubscriptionId, input DnsResourceReferenceRequest) (result ResourceReferenceGetByTargetResourcesOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/README.md index a541627083fa..87710cf5f4d6 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `PrivateLinkScopesClient.PrivateLinkScopesCreateOrUpdate` +### Example Usage: `PrivateLinkScopesClient.CreateOrUpdate` ```go ctx := context.TODO() @@ -31,7 +31,7 @@ payload := privatelinkscopes.HybridComputePrivateLinkScope{ } -read, err := client.PrivateLinkScopesCreateOrUpdate(ctx, id, payload) +read, err := client.CreateOrUpdate(ctx, id, payload) if err != nil { // handle the error } @@ -41,25 +41,25 @@ if model := read.Model; model != nil { ``` -### Example Usage: `PrivateLinkScopesClient.PrivateLinkScopesDelete` +### Example Usage: `PrivateLinkScopesClient.Delete` ```go ctx := context.TODO() id := privatelinkscopes.NewProviderPrivateLinkScopeID("12345678-1234-9876-4563-123456789012", "example-resource-group", "privateLinkScopeValue") -if err := client.PrivateLinkScopesDeleteThenPoll(ctx, id); err != nil { +if err := client.DeleteThenPoll(ctx, id); err != nil { // handle the error } ``` -### Example Usage: `PrivateLinkScopesClient.PrivateLinkScopesGet` +### Example Usage: `PrivateLinkScopesClient.Get` ```go ctx := context.TODO() id := privatelinkscopes.NewProviderPrivateLinkScopeID("12345678-1234-9876-4563-123456789012", "example-resource-group", "privateLinkScopeValue") -read, err := client.PrivateLinkScopesGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -69,13 +69,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `PrivateLinkScopesClient.PrivateLinkScopesGetValidationDetails` +### Example Usage: `PrivateLinkScopesClient.GetValidationDetails` ```go ctx := context.TODO() id := privatelinkscopes.NewPrivateLinkScopeID("12345678-1234-9876-4563-123456789012", "locationValue", "privateLinkScopeIdValue") -read, err := client.PrivateLinkScopesGetValidationDetails(ctx, id) +read, err := client.GetValidationDetails(ctx, id) if err != nil { // handle the error } @@ -85,13 +85,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `PrivateLinkScopesClient.PrivateLinkScopesGetValidationDetailsForMachine` +### Example Usage: `PrivateLinkScopesClient.GetValidationDetailsForMachine` ```go ctx := context.TODO() id := privatelinkscopes.NewMachineID("12345678-1234-9876-4563-123456789012", "example-resource-group", "machineValue") -read, err := client.PrivateLinkScopesGetValidationDetailsForMachine(ctx, id) +read, err := client.GetValidationDetailsForMachine(ctx, id) if err != nil { // handle the error } @@ -101,14 +101,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `PrivateLinkScopesClient.PrivateLinkScopesList` +### Example Usage: `PrivateLinkScopesClient.List` ```go ctx := context.TODO() id := privatelinkscopes.NewSubscriptionID("12345678-1234-9876-4563-123456789012") -// alternatively `client.PrivateLinkScopesList(ctx, id)` can be used to do batched pagination -items, err := client.PrivateLinkScopesListComplete(ctx, id) +// alternatively `client.List(ctx, id)` can be used to do batched pagination +items, err := client.ListComplete(ctx, id) if err != nil { // handle the error } @@ -118,14 +118,14 @@ for _, item := range items { ``` -### Example Usage: `PrivateLinkScopesClient.PrivateLinkScopesListByResourceGroup` +### Example Usage: `PrivateLinkScopesClient.ListByResourceGroup` ```go ctx := context.TODO() id := privatelinkscopes.NewResourceGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group") -// alternatively `client.PrivateLinkScopesListByResourceGroup(ctx, id)` can be used to do batched pagination -items, err := client.PrivateLinkScopesListByResourceGroupComplete(ctx, id) +// alternatively `client.ListByResourceGroup(ctx, id)` can be used to do batched pagination +items, err := client.ListByResourceGroupComplete(ctx, id) if err != nil { // handle the error } @@ -135,7 +135,7 @@ for _, item := range items { ``` -### Example Usage: `PrivateLinkScopesClient.PrivateLinkScopesUpdateTags` +### Example Usage: `PrivateLinkScopesClient.UpdateTags` ```go ctx := context.TODO() @@ -146,7 +146,7 @@ payload := privatelinkscopes.TagsResource{ } -read, err := client.PrivateLinkScopesUpdateTags(ctx, id, payload) +read, err := client.UpdateTags(ctx, id, payload) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopescreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_createorupdate.go similarity index 75% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopescreateorupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_createorupdate.go index 0ac5e8dd2363..0636b64bcf2f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopescreateorupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_createorupdate.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type PrivateLinkScopesCreateOrUpdateOperationResponse struct { +type CreateOrUpdateOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *HybridComputePrivateLinkScope } -// PrivateLinkScopesCreateOrUpdate ... -func (c PrivateLinkScopesClient) PrivateLinkScopesCreateOrUpdate(ctx context.Context, id ProviderPrivateLinkScopeId, input HybridComputePrivateLinkScope) (result PrivateLinkScopesCreateOrUpdateOperationResponse, err error) { +// CreateOrUpdate ... +func (c PrivateLinkScopesClient) CreateOrUpdate(ctx context.Context, id ProviderPrivateLinkScopeId, input HybridComputePrivateLinkScope) (result CreateOrUpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_delete.go new file mode 100644 index 000000000000..59dfe5ecb40a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_delete.go @@ -0,0 +1,71 @@ +package privatelinkscopes + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c PrivateLinkScopesClient) Delete(ctx context.Context, id ProviderPrivateLinkScopeId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c PrivateLinkScopesClient) DeleteThenPoll(ctx context.Context, id ProviderPrivateLinkScopeId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_get.go similarity index 79% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_get.go index ef8815df2730..0f20624eb1f4 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_get.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type PrivateLinkScopesGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *HybridComputePrivateLinkScope } -// PrivateLinkScopesGet ... -func (c PrivateLinkScopesClient) PrivateLinkScopesGet(ctx context.Context, id ProviderPrivateLinkScopeId) (result PrivateLinkScopesGetOperationResponse, err error) { +// Get ... +func (c PrivateLinkScopesClient) Get(ctx context.Context, id ProviderPrivateLinkScopeId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesgetvalidationdetails.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_getvalidationdetails.go similarity index 75% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesgetvalidationdetails.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_getvalidationdetails.go index 33e15c3275ac..a6bcf9196104 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesgetvalidationdetails.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_getvalidationdetails.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type PrivateLinkScopesGetValidationDetailsOperationResponse struct { +type GetValidationDetailsOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *PrivateLinkScopeValidationDetails } -// PrivateLinkScopesGetValidationDetails ... -func (c PrivateLinkScopesClient) PrivateLinkScopesGetValidationDetails(ctx context.Context, id PrivateLinkScopeId) (result PrivateLinkScopesGetValidationDetailsOperationResponse, err error) { +// GetValidationDetails ... +func (c PrivateLinkScopesClient) GetValidationDetails(ctx context.Context, id PrivateLinkScopeId) (result GetValidationDetailsOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesgetvalidationdetailsformachine.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_getvalidationdetailsformachine.go similarity index 74% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesgetvalidationdetailsformachine.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_getvalidationdetailsformachine.go index 1d30371bbf25..a82f22a97f51 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesgetvalidationdetailsformachine.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_getvalidationdetailsformachine.go @@ -12,14 +12,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type PrivateLinkScopesGetValidationDetailsForMachineOperationResponse struct { +type GetValidationDetailsForMachineOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *PrivateLinkScopeValidationDetails } -// PrivateLinkScopesGetValidationDetailsForMachine ... -func (c PrivateLinkScopesClient) PrivateLinkScopesGetValidationDetailsForMachine(ctx context.Context, id MachineId) (result PrivateLinkScopesGetValidationDetailsForMachineOperationResponse, err error) { +// GetValidationDetailsForMachine ... +func (c PrivateLinkScopesClient) GetValidationDetailsForMachine(ctx context.Context, id MachineId) (result GetValidationDetailsForMachineOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopeslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_list.go similarity index 58% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopeslist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_list.go index 299088d7b868..d12469ca5785 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopeslist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_list.go @@ -13,18 +13,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type PrivateLinkScopesListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]HybridComputePrivateLinkScope } -type PrivateLinkScopesListCompleteResult struct { +type ListCompleteResult struct { Items []HybridComputePrivateLinkScope } -// PrivateLinkScopesList ... -func (c PrivateLinkScopesClient) PrivateLinkScopesList(ctx context.Context, id commonids.SubscriptionId) (result PrivateLinkScopesListOperationResponse, err error) { +// List ... +func (c PrivateLinkScopesClient) List(ctx context.Context, id commonids.SubscriptionId) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -61,16 +61,16 @@ func (c PrivateLinkScopesClient) PrivateLinkScopesList(ctx context.Context, id c return } -// PrivateLinkScopesListComplete retrieves all the results into a single object -func (c PrivateLinkScopesClient) PrivateLinkScopesListComplete(ctx context.Context, id commonids.SubscriptionId) (PrivateLinkScopesListCompleteResult, error) { - return c.PrivateLinkScopesListCompleteMatchingPredicate(ctx, id, HybridComputePrivateLinkScopeOperationPredicate{}) +// ListComplete retrieves all the results into a single object +func (c PrivateLinkScopesClient) ListComplete(ctx context.Context, id commonids.SubscriptionId) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, HybridComputePrivateLinkScopeOperationPredicate{}) } -// PrivateLinkScopesListCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c PrivateLinkScopesClient) PrivateLinkScopesListCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate HybridComputePrivateLinkScopeOperationPredicate) (result PrivateLinkScopesListCompleteResult, err error) { +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c PrivateLinkScopesClient) ListCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate HybridComputePrivateLinkScopeOperationPredicate) (result ListCompleteResult, err error) { items := make([]HybridComputePrivateLinkScope, 0) - resp, err := c.PrivateLinkScopesList(ctx, id) + resp, err := c.List(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -83,7 +83,7 @@ func (c PrivateLinkScopesClient) PrivateLinkScopesListCompleteMatchingPredicate( } } - result = PrivateLinkScopesListCompleteResult{ + result = ListCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopeslistbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_listbyresourcegroup.go similarity index 53% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopeslistbyresourcegroup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_listbyresourcegroup.go index 26fa7a8d9f22..a8d282f78a41 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopeslistbyresourcegroup.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_listbyresourcegroup.go @@ -13,18 +13,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type PrivateLinkScopesListByResourceGroupOperationResponse struct { +type ListByResourceGroupOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]HybridComputePrivateLinkScope } -type PrivateLinkScopesListByResourceGroupCompleteResult struct { +type ListByResourceGroupCompleteResult struct { Items []HybridComputePrivateLinkScope } -// PrivateLinkScopesListByResourceGroup ... -func (c PrivateLinkScopesClient) PrivateLinkScopesListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result PrivateLinkScopesListByResourceGroupOperationResponse, err error) { +// ListByResourceGroup ... +func (c PrivateLinkScopesClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -61,16 +61,16 @@ func (c PrivateLinkScopesClient) PrivateLinkScopesListByResourceGroup(ctx contex return } -// PrivateLinkScopesListByResourceGroupComplete retrieves all the results into a single object -func (c PrivateLinkScopesClient) PrivateLinkScopesListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (PrivateLinkScopesListByResourceGroupCompleteResult, error) { - return c.PrivateLinkScopesListByResourceGroupCompleteMatchingPredicate(ctx, id, HybridComputePrivateLinkScopeOperationPredicate{}) +// ListByResourceGroupComplete retrieves all the results into a single object +func (c PrivateLinkScopesClient) ListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (ListByResourceGroupCompleteResult, error) { + return c.ListByResourceGroupCompleteMatchingPredicate(ctx, id, HybridComputePrivateLinkScopeOperationPredicate{}) } -// PrivateLinkScopesListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c PrivateLinkScopesClient) PrivateLinkScopesListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate HybridComputePrivateLinkScopeOperationPredicate) (result PrivateLinkScopesListByResourceGroupCompleteResult, err error) { +// ListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c PrivateLinkScopesClient) ListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate HybridComputePrivateLinkScopeOperationPredicate) (result ListByResourceGroupCompleteResult, err error) { items := make([]HybridComputePrivateLinkScope, 0) - resp, err := c.PrivateLinkScopesListByResourceGroup(ctx, id) + resp, err := c.ListByResourceGroup(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -83,7 +83,7 @@ func (c PrivateLinkScopesClient) PrivateLinkScopesListByResourceGroupCompleteMat } } - result = PrivateLinkScopesListByResourceGroupCompleteResult{ + result = ListByResourceGroupCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesdelete.go deleted file mode 100644 index 1373f46c4484..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesdelete.go +++ /dev/null @@ -1,71 +0,0 @@ -package privatelinkscopes - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type PrivateLinkScopesDeleteOperationResponse struct { - Poller pollers.Poller - HttpResponse *http.Response - OData *odata.OData -} - -// PrivateLinkScopesDelete ... -func (c PrivateLinkScopesClient) PrivateLinkScopesDelete(ctx context.Context, id ProviderPrivateLinkScopeId) (result PrivateLinkScopesDeleteOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusAccepted, - http.StatusNoContent, - http.StatusOK, - }, - HttpMethod: http.MethodDelete, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) - if err != nil { - return - } - - return -} - -// PrivateLinkScopesDeleteThenPoll performs PrivateLinkScopesDelete then polls until it's completed -func (c PrivateLinkScopesClient) PrivateLinkScopesDeleteThenPoll(ctx context.Context, id ProviderPrivateLinkScopeId) error { - result, err := c.PrivateLinkScopesDelete(ctx, id) - if err != nil { - return fmt.Errorf("performing PrivateLinkScopesDelete: %+v", err) - } - - if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after PrivateLinkScopesDelete: %+v", err) - } - - return nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesupdatetags.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_updatetags.go similarity index 77% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesupdatetags.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_updatetags.go index 67442337c2b3..0157ed00349e 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_privatelinkscopesupdatetags.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/hybridcompute/2022-11-10/privatelinkscopes/method_updatetags.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type PrivateLinkScopesUpdateTagsOperationResponse struct { +type UpdateTagsOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *HybridComputePrivateLinkScope } -// PrivateLinkScopesUpdateTags ... -func (c PrivateLinkScopesClient) PrivateLinkScopesUpdateTags(ctx context.Context, id ProviderPrivateLinkScopeId, input TagsResource) (result PrivateLinkScopesUpdateTagsOperationResponse, err error) { +// UpdateTags ... +func (c PrivateLinkScopesClient) UpdateTags(ctx context.Context, id ProviderPrivateLinkScopeId, input TagsResource) (result UpdateTagsOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/README.md index 11a9b053d519..8f4e013480d4 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `AccountFiltersClient.AccountFiltersCreateOrUpdate` +### Example Usage: `AccountFiltersClient.CreateOrUpdate` ```go ctx := context.TODO() @@ -31,7 +31,7 @@ payload := accountfilters.AccountFilter{ } -read, err := client.AccountFiltersCreateOrUpdate(ctx, id, payload) +read, err := client.CreateOrUpdate(ctx, id, payload) if err != nil { // handle the error } @@ -41,13 +41,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AccountFiltersClient.AccountFiltersDelete` +### Example Usage: `AccountFiltersClient.Delete` ```go ctx := context.TODO() id := accountfilters.NewAccountFilterID("12345678-1234-9876-4563-123456789012", "example-resource-group", "mediaServiceValue", "accountFilterValue") -read, err := client.AccountFiltersDelete(ctx, id) +read, err := client.Delete(ctx, id) if err != nil { // handle the error } @@ -57,13 +57,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AccountFiltersClient.AccountFiltersGet` +### Example Usage: `AccountFiltersClient.Get` ```go ctx := context.TODO() id := accountfilters.NewAccountFilterID("12345678-1234-9876-4563-123456789012", "example-resource-group", "mediaServiceValue", "accountFilterValue") -read, err := client.AccountFiltersGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -73,14 +73,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AccountFiltersClient.AccountFiltersList` +### Example Usage: `AccountFiltersClient.List` ```go ctx := context.TODO() id := accountfilters.NewMediaServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "mediaServiceValue") -// alternatively `client.AccountFiltersList(ctx, id)` can be used to do batched pagination -items, err := client.AccountFiltersListComplete(ctx, id) +// alternatively `client.List(ctx, id)` can be used to do batched pagination +items, err := client.ListComplete(ctx, id) if err != nil { // handle the error } @@ -90,7 +90,7 @@ for _, item := range items { ``` -### Example Usage: `AccountFiltersClient.AccountFiltersUpdate` +### Example Usage: `AccountFiltersClient.Update` ```go ctx := context.TODO() @@ -101,7 +101,7 @@ payload := accountfilters.AccountFilter{ } -read, err := client.AccountFiltersUpdate(ctx, id, payload) +read, err := client.Update(ctx, id, payload) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfilterscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_createorupdate.go similarity index 77% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfilterscreateorupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_createorupdate.go index c5d8c2c6672c..11ca7904b4fd 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfilterscreateorupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_createorupdate.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AccountFiltersCreateOrUpdateOperationResponse struct { +type CreateOrUpdateOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *AccountFilter } -// AccountFiltersCreateOrUpdate ... -func (c AccountFiltersClient) AccountFiltersCreateOrUpdate(ctx context.Context, id AccountFilterId, input AccountFilter) (result AccountFiltersCreateOrUpdateOperationResponse, err error) { +// CreateOrUpdate ... +func (c AccountFiltersClient) CreateOrUpdate(ctx context.Context, id AccountFilterId, input AccountFilter) (result CreateOrUpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfiltersdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_delete.go similarity index 78% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfiltersdelete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_delete.go index adbb2a159092..135b80326daf 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfiltersdelete.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_delete.go @@ -11,13 +11,13 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AccountFiltersDeleteOperationResponse struct { +type DeleteOperationResponse struct { HttpResponse *http.Response OData *odata.OData } -// AccountFiltersDelete ... -func (c AccountFiltersClient) AccountFiltersDelete(ctx context.Context, id AccountFilterId) (result AccountFiltersDeleteOperationResponse, err error) { +// Delete ... +func (c AccountFiltersClient) Delete(ctx context.Context, id AccountFilterId) (result DeleteOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfiltersget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_get.go similarity index 80% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfiltersget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_get.go index 4ee7d84d5999..7dbc6aa51159 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfiltersget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_get.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AccountFiltersGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *AccountFilter } -// AccountFiltersGet ... -func (c AccountFiltersClient) AccountFiltersGet(ctx context.Context, id AccountFilterId) (result AccountFiltersGetOperationResponse, err error) { +// Get ... +func (c AccountFiltersClient) Get(ctx context.Context, id AccountFilterId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfilterslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_list.go similarity index 57% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfilterslist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_list.go index a820f098ce77..23d8b21febb4 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfilterslist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_list.go @@ -12,18 +12,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AccountFiltersListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]AccountFilter } -type AccountFiltersListCompleteResult struct { +type ListCompleteResult struct { Items []AccountFilter } -// AccountFiltersList ... -func (c AccountFiltersClient) AccountFiltersList(ctx context.Context, id MediaServiceId) (result AccountFiltersListOperationResponse, err error) { +// List ... +func (c AccountFiltersClient) List(ctx context.Context, id MediaServiceId) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -60,16 +60,16 @@ func (c AccountFiltersClient) AccountFiltersList(ctx context.Context, id MediaSe return } -// AccountFiltersListComplete retrieves all the results into a single object -func (c AccountFiltersClient) AccountFiltersListComplete(ctx context.Context, id MediaServiceId) (AccountFiltersListCompleteResult, error) { - return c.AccountFiltersListCompleteMatchingPredicate(ctx, id, AccountFilterOperationPredicate{}) +// ListComplete retrieves all the results into a single object +func (c AccountFiltersClient) ListComplete(ctx context.Context, id MediaServiceId) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, AccountFilterOperationPredicate{}) } -// AccountFiltersListCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c AccountFiltersClient) AccountFiltersListCompleteMatchingPredicate(ctx context.Context, id MediaServiceId, predicate AccountFilterOperationPredicate) (result AccountFiltersListCompleteResult, err error) { +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AccountFiltersClient) ListCompleteMatchingPredicate(ctx context.Context, id MediaServiceId, predicate AccountFilterOperationPredicate) (result ListCompleteResult, err error) { items := make([]AccountFilter, 0) - resp, err := c.AccountFiltersList(ctx, id) + resp, err := c.List(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -82,7 +82,7 @@ func (c AccountFiltersClient) AccountFiltersListCompleteMatchingPredicate(ctx co } } - result = AccountFiltersListCompleteResult{ + result = ListCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfiltersupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_update.go similarity index 79% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfiltersupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_update.go index e96384546a3e..7ccf1739e939 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfiltersupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_update.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AccountFiltersUpdateOperationResponse struct { +type UpdateOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *AccountFilter } -// AccountFiltersUpdate ... -func (c AccountFiltersClient) AccountFiltersUpdate(ctx context.Context, id AccountFilterId, input AccountFilter) (result AccountFiltersUpdateOperationResponse, err error) { +// Update ... +func (c AccountFiltersClient) Update(ctx context.Context, id AccountFilterId, input AccountFilter) (result UpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/README.md index b3ba48574cbb..6ac6842aecbc 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `ContentKeyPoliciesClient.ContentKeyPoliciesCreateOrUpdate` +### Example Usage: `ContentKeyPoliciesClient.CreateOrUpdate` ```go ctx := context.TODO() @@ -31,7 +31,7 @@ payload := contentkeypolicies.ContentKeyPolicy{ } -read, err := client.ContentKeyPoliciesCreateOrUpdate(ctx, id, payload) +read, err := client.CreateOrUpdate(ctx, id, payload) if err != nil { // handle the error } @@ -41,13 +41,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `ContentKeyPoliciesClient.ContentKeyPoliciesDelete` +### Example Usage: `ContentKeyPoliciesClient.Delete` ```go ctx := context.TODO() id := contentkeypolicies.NewContentKeyPolicyID("12345678-1234-9876-4563-123456789012", "example-resource-group", "mediaServiceValue", "contentKeyPolicyValue") -read, err := client.ContentKeyPoliciesDelete(ctx, id) +read, err := client.Delete(ctx, id) if err != nil { // handle the error } @@ -57,13 +57,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `ContentKeyPoliciesClient.ContentKeyPoliciesGet` +### Example Usage: `ContentKeyPoliciesClient.Get` ```go ctx := context.TODO() id := contentkeypolicies.NewContentKeyPolicyID("12345678-1234-9876-4563-123456789012", "example-resource-group", "mediaServiceValue", "contentKeyPolicyValue") -read, err := client.ContentKeyPoliciesGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -73,13 +73,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `ContentKeyPoliciesClient.ContentKeyPoliciesGetPolicyPropertiesWithSecrets` +### Example Usage: `ContentKeyPoliciesClient.GetPolicyPropertiesWithSecrets` ```go ctx := context.TODO() id := contentkeypolicies.NewContentKeyPolicyID("12345678-1234-9876-4563-123456789012", "example-resource-group", "mediaServiceValue", "contentKeyPolicyValue") -read, err := client.ContentKeyPoliciesGetPolicyPropertiesWithSecrets(ctx, id) +read, err := client.GetPolicyPropertiesWithSecrets(ctx, id) if err != nil { // handle the error } @@ -89,14 +89,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `ContentKeyPoliciesClient.ContentKeyPoliciesList` +### Example Usage: `ContentKeyPoliciesClient.List` ```go ctx := context.TODO() id := contentkeypolicies.NewMediaServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "mediaServiceValue") -// alternatively `client.ContentKeyPoliciesList(ctx, id, contentkeypolicies.DefaultContentKeyPoliciesListOperationOptions())` can be used to do batched pagination -items, err := client.ContentKeyPoliciesListComplete(ctx, id, contentkeypolicies.DefaultContentKeyPoliciesListOperationOptions()) +// alternatively `client.List(ctx, id, contentkeypolicies.DefaultListOperationOptions())` can be used to do batched pagination +items, err := client.ListComplete(ctx, id, contentkeypolicies.DefaultListOperationOptions()) if err != nil { // handle the error } @@ -106,7 +106,7 @@ for _, item := range items { ``` -### Example Usage: `ContentKeyPoliciesClient.ContentKeyPoliciesUpdate` +### Example Usage: `ContentKeyPoliciesClient.Update` ```go ctx := context.TODO() @@ -117,7 +117,7 @@ payload := contentkeypolicies.ContentKeyPolicy{ } -read, err := client.ContentKeyPoliciesUpdate(ctx, id, payload) +read, err := client.Update(ctx, id, payload) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciescreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_createorupdate.go similarity index 76% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciescreateorupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_createorupdate.go index 63772e3c41ad..3348aeb304c0 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciescreateorupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_createorupdate.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContentKeyPoliciesCreateOrUpdateOperationResponse struct { +type CreateOrUpdateOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *ContentKeyPolicy } -// ContentKeyPoliciesCreateOrUpdate ... -func (c ContentKeyPoliciesClient) ContentKeyPoliciesCreateOrUpdate(ctx context.Context, id ContentKeyPolicyId, input ContentKeyPolicy) (result ContentKeyPoliciesCreateOrUpdateOperationResponse, err error) { +// CreateOrUpdate ... +func (c ContentKeyPoliciesClient) CreateOrUpdate(ctx context.Context, id ContentKeyPolicyId, input ContentKeyPolicy) (result CreateOrUpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_delete.go similarity index 76% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciesdelete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_delete.go index a6e51adce6bc..db4ae9dd0035 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciesdelete.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_delete.go @@ -11,13 +11,13 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContentKeyPoliciesDeleteOperationResponse struct { +type DeleteOperationResponse struct { HttpResponse *http.Response OData *odata.OData } -// ContentKeyPoliciesDelete ... -func (c ContentKeyPoliciesClient) ContentKeyPoliciesDelete(ctx context.Context, id ContentKeyPolicyId) (result ContentKeyPoliciesDeleteOperationResponse, err error) { +// Delete ... +func (c ContentKeyPoliciesClient) Delete(ctx context.Context, id ContentKeyPolicyId) (result DeleteOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_get.go similarity index 79% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciesget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_get.go index d6a9cd8bda8d..915ccc87f6c9 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciesget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_get.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContentKeyPoliciesGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *ContentKeyPolicy } -// ContentKeyPoliciesGet ... -func (c ContentKeyPoliciesClient) ContentKeyPoliciesGet(ctx context.Context, id ContentKeyPolicyId) (result ContentKeyPoliciesGetOperationResponse, err error) { +// Get ... +func (c ContentKeyPoliciesClient) Get(ctx context.Context, id ContentKeyPolicyId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciesgetpolicypropertieswithsecrets.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_getpolicypropertieswithsecrets.go similarity index 73% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciesgetpolicypropertieswithsecrets.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_getpolicypropertieswithsecrets.go index 8fb24b280d0e..457da340ae24 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciesgetpolicypropertieswithsecrets.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_getpolicypropertieswithsecrets.go @@ -12,14 +12,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContentKeyPoliciesGetPolicyPropertiesWithSecretsOperationResponse struct { +type GetPolicyPropertiesWithSecretsOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *ContentKeyPolicyProperties } -// ContentKeyPoliciesGetPolicyPropertiesWithSecrets ... -func (c ContentKeyPoliciesClient) ContentKeyPoliciesGetPolicyPropertiesWithSecrets(ctx context.Context, id ContentKeyPolicyId) (result ContentKeyPoliciesGetPolicyPropertiesWithSecretsOperationResponse, err error) { +// GetPolicyPropertiesWithSecrets ... +func (c ContentKeyPoliciesClient) GetPolicyPropertiesWithSecrets(ctx context.Context, id ContentKeyPolicyId) (result GetPolicyPropertiesWithSecretsOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypolicieslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_list.go similarity index 53% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypolicieslist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_list.go index d9c3ff45a454..2a8e714de507 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypolicieslist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_list.go @@ -12,38 +12,38 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContentKeyPoliciesListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]ContentKeyPolicy } -type ContentKeyPoliciesListCompleteResult struct { +type ListCompleteResult struct { Items []ContentKeyPolicy } -type ContentKeyPoliciesListOperationOptions struct { +type ListOperationOptions struct { Filter *string Orderby *string Top *int64 } -func DefaultContentKeyPoliciesListOperationOptions() ContentKeyPoliciesListOperationOptions { - return ContentKeyPoliciesListOperationOptions{} +func DefaultListOperationOptions() ListOperationOptions { + return ListOperationOptions{} } -func (o ContentKeyPoliciesListOperationOptions) ToHeaders() *client.Headers { +func (o ListOperationOptions) ToHeaders() *client.Headers { out := client.Headers{} return &out } -func (o ContentKeyPoliciesListOperationOptions) ToOData() *odata.Query { +func (o ListOperationOptions) ToOData() *odata.Query { out := odata.Query{} return &out } -func (o ContentKeyPoliciesListOperationOptions) ToQuery() *client.QueryParams { +func (o ListOperationOptions) ToQuery() *client.QueryParams { out := client.QueryParams{} if o.Filter != nil { out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) @@ -57,8 +57,8 @@ func (o ContentKeyPoliciesListOperationOptions) ToQuery() *client.QueryParams { return &out } -// ContentKeyPoliciesList ... -func (c ContentKeyPoliciesClient) ContentKeyPoliciesList(ctx context.Context, id MediaServiceId, options ContentKeyPoliciesListOperationOptions) (result ContentKeyPoliciesListOperationResponse, err error) { +// List ... +func (c ContentKeyPoliciesClient) List(ctx context.Context, id MediaServiceId, options ListOperationOptions) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -96,16 +96,16 @@ func (c ContentKeyPoliciesClient) ContentKeyPoliciesList(ctx context.Context, id return } -// ContentKeyPoliciesListComplete retrieves all the results into a single object -func (c ContentKeyPoliciesClient) ContentKeyPoliciesListComplete(ctx context.Context, id MediaServiceId, options ContentKeyPoliciesListOperationOptions) (ContentKeyPoliciesListCompleteResult, error) { - return c.ContentKeyPoliciesListCompleteMatchingPredicate(ctx, id, options, ContentKeyPolicyOperationPredicate{}) +// ListComplete retrieves all the results into a single object +func (c ContentKeyPoliciesClient) ListComplete(ctx context.Context, id MediaServiceId, options ListOperationOptions) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, options, ContentKeyPolicyOperationPredicate{}) } -// ContentKeyPoliciesListCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c ContentKeyPoliciesClient) ContentKeyPoliciesListCompleteMatchingPredicate(ctx context.Context, id MediaServiceId, options ContentKeyPoliciesListOperationOptions, predicate ContentKeyPolicyOperationPredicate) (result ContentKeyPoliciesListCompleteResult, err error) { +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c ContentKeyPoliciesClient) ListCompleteMatchingPredicate(ctx context.Context, id MediaServiceId, options ListOperationOptions, predicate ContentKeyPolicyOperationPredicate) (result ListCompleteResult, err error) { items := make([]ContentKeyPolicy, 0) - resp, err := c.ContentKeyPoliciesList(ctx, id, options) + resp, err := c.List(ctx, id, options) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -118,7 +118,7 @@ func (c ContentKeyPoliciesClient) ContentKeyPoliciesListCompleteMatchingPredicat } } - result = ContentKeyPoliciesListCompleteResult{ + result = ListCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciesupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_update.go similarity index 77% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciesupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_update.go index 47c0bc84760e..f0a52c19410f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciesupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_update.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContentKeyPoliciesUpdateOperationResponse struct { +type UpdateOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *ContentKeyPolicy } -// ContentKeyPoliciesUpdate ... -func (c ContentKeyPoliciesClient) ContentKeyPoliciesUpdate(ctx context.Context, id ContentKeyPolicyId, input ContentKeyPolicy) (result ContentKeyPoliciesUpdateOperationResponse, err error) { +// Update ... +func (c ContentKeyPoliciesClient) Update(ctx context.Context, id ContentKeyPolicyId, input ContentKeyPolicy) (result UpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/README.md index 5e2f3a8d8f2e..22cec88cb024 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `AccountFiltersClient.AccountFiltersCreateOrUpdate` +### Example Usage: `AccountFiltersClient.CreateOrUpdate` ```go ctx := context.TODO() @@ -31,7 +31,7 @@ payload := accountfilters.AccountFilter{ } -read, err := client.AccountFiltersCreateOrUpdate(ctx, id, payload) +read, err := client.CreateOrUpdate(ctx, id, payload) if err != nil { // handle the error } @@ -41,13 +41,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AccountFiltersClient.AccountFiltersDelete` +### Example Usage: `AccountFiltersClient.Delete` ```go ctx := context.TODO() id := accountfilters.NewAccountFilterID("12345678-1234-9876-4563-123456789012", "example-resource-group", "mediaServiceValue", "accountFilterValue") -read, err := client.AccountFiltersDelete(ctx, id) +read, err := client.Delete(ctx, id) if err != nil { // handle the error } @@ -57,13 +57,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AccountFiltersClient.AccountFiltersGet` +### Example Usage: `AccountFiltersClient.Get` ```go ctx := context.TODO() id := accountfilters.NewAccountFilterID("12345678-1234-9876-4563-123456789012", "example-resource-group", "mediaServiceValue", "accountFilterValue") -read, err := client.AccountFiltersGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -73,14 +73,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AccountFiltersClient.AccountFiltersList` +### Example Usage: `AccountFiltersClient.List` ```go ctx := context.TODO() id := accountfilters.NewMediaServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "mediaServiceValue") -// alternatively `client.AccountFiltersList(ctx, id)` can be used to do batched pagination -items, err := client.AccountFiltersListComplete(ctx, id) +// alternatively `client.List(ctx, id)` can be used to do batched pagination +items, err := client.ListComplete(ctx, id) if err != nil { // handle the error } @@ -90,7 +90,7 @@ for _, item := range items { ``` -### Example Usage: `AccountFiltersClient.AccountFiltersUpdate` +### Example Usage: `AccountFiltersClient.Update` ```go ctx := context.TODO() @@ -101,7 +101,7 @@ payload := accountfilters.AccountFilter{ } -read, err := client.AccountFiltersUpdate(ctx, id, payload) +read, err := client.Update(ctx, id, payload) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfilterscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_createorupdate.go similarity index 77% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfilterscreateorupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_createorupdate.go index c5d8c2c6672c..11ca7904b4fd 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfilterscreateorupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_createorupdate.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AccountFiltersCreateOrUpdateOperationResponse struct { +type CreateOrUpdateOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *AccountFilter } -// AccountFiltersCreateOrUpdate ... -func (c AccountFiltersClient) AccountFiltersCreateOrUpdate(ctx context.Context, id AccountFilterId, input AccountFilter) (result AccountFiltersCreateOrUpdateOperationResponse, err error) { +// CreateOrUpdate ... +func (c AccountFiltersClient) CreateOrUpdate(ctx context.Context, id AccountFilterId, input AccountFilter) (result CreateOrUpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfiltersdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_delete.go similarity index 78% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfiltersdelete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_delete.go index adbb2a159092..135b80326daf 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfiltersdelete.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_delete.go @@ -11,13 +11,13 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AccountFiltersDeleteOperationResponse struct { +type DeleteOperationResponse struct { HttpResponse *http.Response OData *odata.OData } -// AccountFiltersDelete ... -func (c AccountFiltersClient) AccountFiltersDelete(ctx context.Context, id AccountFilterId) (result AccountFiltersDeleteOperationResponse, err error) { +// Delete ... +func (c AccountFiltersClient) Delete(ctx context.Context, id AccountFilterId) (result DeleteOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfiltersget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_get.go similarity index 80% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfiltersget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_get.go index 4ee7d84d5999..7dbc6aa51159 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_accountfiltersget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_get.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AccountFiltersGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *AccountFilter } -// AccountFiltersGet ... -func (c AccountFiltersClient) AccountFiltersGet(ctx context.Context, id AccountFilterId) (result AccountFiltersGetOperationResponse, err error) { +// Get ... +func (c AccountFiltersClient) Get(ctx context.Context, id AccountFilterId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfilterslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_list.go similarity index 57% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfilterslist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_list.go index a820f098ce77..23d8b21febb4 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfilterslist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_list.go @@ -12,18 +12,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AccountFiltersListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]AccountFilter } -type AccountFiltersListCompleteResult struct { +type ListCompleteResult struct { Items []AccountFilter } -// AccountFiltersList ... -func (c AccountFiltersClient) AccountFiltersList(ctx context.Context, id MediaServiceId) (result AccountFiltersListOperationResponse, err error) { +// List ... +func (c AccountFiltersClient) List(ctx context.Context, id MediaServiceId) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -60,16 +60,16 @@ func (c AccountFiltersClient) AccountFiltersList(ctx context.Context, id MediaSe return } -// AccountFiltersListComplete retrieves all the results into a single object -func (c AccountFiltersClient) AccountFiltersListComplete(ctx context.Context, id MediaServiceId) (AccountFiltersListCompleteResult, error) { - return c.AccountFiltersListCompleteMatchingPredicate(ctx, id, AccountFilterOperationPredicate{}) +// ListComplete retrieves all the results into a single object +func (c AccountFiltersClient) ListComplete(ctx context.Context, id MediaServiceId) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, AccountFilterOperationPredicate{}) } -// AccountFiltersListCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c AccountFiltersClient) AccountFiltersListCompleteMatchingPredicate(ctx context.Context, id MediaServiceId, predicate AccountFilterOperationPredicate) (result AccountFiltersListCompleteResult, err error) { +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AccountFiltersClient) ListCompleteMatchingPredicate(ctx context.Context, id MediaServiceId, predicate AccountFilterOperationPredicate) (result ListCompleteResult, err error) { items := make([]AccountFilter, 0) - resp, err := c.AccountFiltersList(ctx, id) + resp, err := c.List(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -82,7 +82,7 @@ func (c AccountFiltersClient) AccountFiltersListCompleteMatchingPredicate(ctx co } } - result = AccountFiltersListCompleteResult{ + result = ListCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfiltersupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_update.go similarity index 79% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfiltersupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_update.go index e96384546a3e..7ccf1739e939 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/accountfilters/method_accountfiltersupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/accountfilters/method_update.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AccountFiltersUpdateOperationResponse struct { +type UpdateOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *AccountFilter } -// AccountFiltersUpdate ... -func (c AccountFiltersClient) AccountFiltersUpdate(ctx context.Context, id AccountFilterId, input AccountFilter) (result AccountFiltersUpdateOperationResponse, err error) { +// Update ... +func (c AccountFiltersClient) Update(ctx context.Context, id AccountFilterId, input AccountFilter) (result UpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/README.md index 0b153a8164e4..d83c94df0911 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `ContentKeyPoliciesClient.ContentKeyPoliciesCreateOrUpdate` +### Example Usage: `ContentKeyPoliciesClient.CreateOrUpdate` ```go ctx := context.TODO() @@ -31,7 +31,7 @@ payload := contentkeypolicies.ContentKeyPolicy{ } -read, err := client.ContentKeyPoliciesCreateOrUpdate(ctx, id, payload) +read, err := client.CreateOrUpdate(ctx, id, payload) if err != nil { // handle the error } @@ -41,13 +41,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `ContentKeyPoliciesClient.ContentKeyPoliciesDelete` +### Example Usage: `ContentKeyPoliciesClient.Delete` ```go ctx := context.TODO() id := contentkeypolicies.NewContentKeyPolicyID("12345678-1234-9876-4563-123456789012", "example-resource-group", "mediaServiceValue", "contentKeyPolicyValue") -read, err := client.ContentKeyPoliciesDelete(ctx, id) +read, err := client.Delete(ctx, id) if err != nil { // handle the error } @@ -57,13 +57,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `ContentKeyPoliciesClient.ContentKeyPoliciesGet` +### Example Usage: `ContentKeyPoliciesClient.Get` ```go ctx := context.TODO() id := contentkeypolicies.NewContentKeyPolicyID("12345678-1234-9876-4563-123456789012", "example-resource-group", "mediaServiceValue", "contentKeyPolicyValue") -read, err := client.ContentKeyPoliciesGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -73,13 +73,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `ContentKeyPoliciesClient.ContentKeyPoliciesGetPolicyPropertiesWithSecrets` +### Example Usage: `ContentKeyPoliciesClient.GetPolicyPropertiesWithSecrets` ```go ctx := context.TODO() id := contentkeypolicies.NewContentKeyPolicyID("12345678-1234-9876-4563-123456789012", "example-resource-group", "mediaServiceValue", "contentKeyPolicyValue") -read, err := client.ContentKeyPoliciesGetPolicyPropertiesWithSecrets(ctx, id) +read, err := client.GetPolicyPropertiesWithSecrets(ctx, id) if err != nil { // handle the error } @@ -89,14 +89,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `ContentKeyPoliciesClient.ContentKeyPoliciesList` +### Example Usage: `ContentKeyPoliciesClient.List` ```go ctx := context.TODO() id := contentkeypolicies.NewMediaServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "mediaServiceValue") -// alternatively `client.ContentKeyPoliciesList(ctx, id, contentkeypolicies.DefaultContentKeyPoliciesListOperationOptions())` can be used to do batched pagination -items, err := client.ContentKeyPoliciesListComplete(ctx, id, contentkeypolicies.DefaultContentKeyPoliciesListOperationOptions()) +// alternatively `client.List(ctx, id, contentkeypolicies.DefaultListOperationOptions())` can be used to do batched pagination +items, err := client.ListComplete(ctx, id, contentkeypolicies.DefaultListOperationOptions()) if err != nil { // handle the error } @@ -106,7 +106,7 @@ for _, item := range items { ``` -### Example Usage: `ContentKeyPoliciesClient.ContentKeyPoliciesUpdate` +### Example Usage: `ContentKeyPoliciesClient.Update` ```go ctx := context.TODO() @@ -117,7 +117,7 @@ payload := contentkeypolicies.ContentKeyPolicy{ } -read, err := client.ContentKeyPoliciesUpdate(ctx, id, payload) +read, err := client.Update(ctx, id, payload) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciescreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_createorupdate.go similarity index 76% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciescreateorupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_createorupdate.go index 63772e3c41ad..3348aeb304c0 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciescreateorupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_createorupdate.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContentKeyPoliciesCreateOrUpdateOperationResponse struct { +type CreateOrUpdateOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *ContentKeyPolicy } -// ContentKeyPoliciesCreateOrUpdate ... -func (c ContentKeyPoliciesClient) ContentKeyPoliciesCreateOrUpdate(ctx context.Context, id ContentKeyPolicyId, input ContentKeyPolicy) (result ContentKeyPoliciesCreateOrUpdateOperationResponse, err error) { +// CreateOrUpdate ... +func (c ContentKeyPoliciesClient) CreateOrUpdate(ctx context.Context, id ContentKeyPolicyId, input ContentKeyPolicy) (result CreateOrUpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_delete.go similarity index 76% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciesdelete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_delete.go index a6e51adce6bc..db4ae9dd0035 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciesdelete.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_delete.go @@ -11,13 +11,13 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContentKeyPoliciesDeleteOperationResponse struct { +type DeleteOperationResponse struct { HttpResponse *http.Response OData *odata.OData } -// ContentKeyPoliciesDelete ... -func (c ContentKeyPoliciesClient) ContentKeyPoliciesDelete(ctx context.Context, id ContentKeyPolicyId) (result ContentKeyPoliciesDeleteOperationResponse, err error) { +// Delete ... +func (c ContentKeyPoliciesClient) Delete(ctx context.Context, id ContentKeyPolicyId) (result DeleteOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_get.go similarity index 79% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciesget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_get.go index d6a9cd8bda8d..915ccc87f6c9 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciesget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_get.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContentKeyPoliciesGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *ContentKeyPolicy } -// ContentKeyPoliciesGet ... -func (c ContentKeyPoliciesClient) ContentKeyPoliciesGet(ctx context.Context, id ContentKeyPolicyId) (result ContentKeyPoliciesGetOperationResponse, err error) { +// Get ... +func (c ContentKeyPoliciesClient) Get(ctx context.Context, id ContentKeyPolicyId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciesgetpolicypropertieswithsecrets.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_getpolicypropertieswithsecrets.go similarity index 73% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciesgetpolicypropertieswithsecrets.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_getpolicypropertieswithsecrets.go index 8fb24b280d0e..457da340ae24 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/method_contentkeypoliciesgetpolicypropertieswithsecrets.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_getpolicypropertieswithsecrets.go @@ -12,14 +12,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContentKeyPoliciesGetPolicyPropertiesWithSecretsOperationResponse struct { +type GetPolicyPropertiesWithSecretsOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *ContentKeyPolicyProperties } -// ContentKeyPoliciesGetPolicyPropertiesWithSecrets ... -func (c ContentKeyPoliciesClient) ContentKeyPoliciesGetPolicyPropertiesWithSecrets(ctx context.Context, id ContentKeyPolicyId) (result ContentKeyPoliciesGetPolicyPropertiesWithSecretsOperationResponse, err error) { +// GetPolicyPropertiesWithSecrets ... +func (c ContentKeyPoliciesClient) GetPolicyPropertiesWithSecrets(ctx context.Context, id ContentKeyPolicyId) (result GetPolicyPropertiesWithSecretsOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypolicieslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_list.go similarity index 53% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypolicieslist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_list.go index d9c3ff45a454..2a8e714de507 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypolicieslist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_list.go @@ -12,38 +12,38 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContentKeyPoliciesListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]ContentKeyPolicy } -type ContentKeyPoliciesListCompleteResult struct { +type ListCompleteResult struct { Items []ContentKeyPolicy } -type ContentKeyPoliciesListOperationOptions struct { +type ListOperationOptions struct { Filter *string Orderby *string Top *int64 } -func DefaultContentKeyPoliciesListOperationOptions() ContentKeyPoliciesListOperationOptions { - return ContentKeyPoliciesListOperationOptions{} +func DefaultListOperationOptions() ListOperationOptions { + return ListOperationOptions{} } -func (o ContentKeyPoliciesListOperationOptions) ToHeaders() *client.Headers { +func (o ListOperationOptions) ToHeaders() *client.Headers { out := client.Headers{} return &out } -func (o ContentKeyPoliciesListOperationOptions) ToOData() *odata.Query { +func (o ListOperationOptions) ToOData() *odata.Query { out := odata.Query{} return &out } -func (o ContentKeyPoliciesListOperationOptions) ToQuery() *client.QueryParams { +func (o ListOperationOptions) ToQuery() *client.QueryParams { out := client.QueryParams{} if o.Filter != nil { out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) @@ -57,8 +57,8 @@ func (o ContentKeyPoliciesListOperationOptions) ToQuery() *client.QueryParams { return &out } -// ContentKeyPoliciesList ... -func (c ContentKeyPoliciesClient) ContentKeyPoliciesList(ctx context.Context, id MediaServiceId, options ContentKeyPoliciesListOperationOptions) (result ContentKeyPoliciesListOperationResponse, err error) { +// List ... +func (c ContentKeyPoliciesClient) List(ctx context.Context, id MediaServiceId, options ListOperationOptions) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -96,16 +96,16 @@ func (c ContentKeyPoliciesClient) ContentKeyPoliciesList(ctx context.Context, id return } -// ContentKeyPoliciesListComplete retrieves all the results into a single object -func (c ContentKeyPoliciesClient) ContentKeyPoliciesListComplete(ctx context.Context, id MediaServiceId, options ContentKeyPoliciesListOperationOptions) (ContentKeyPoliciesListCompleteResult, error) { - return c.ContentKeyPoliciesListCompleteMatchingPredicate(ctx, id, options, ContentKeyPolicyOperationPredicate{}) +// ListComplete retrieves all the results into a single object +func (c ContentKeyPoliciesClient) ListComplete(ctx context.Context, id MediaServiceId, options ListOperationOptions) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, options, ContentKeyPolicyOperationPredicate{}) } -// ContentKeyPoliciesListCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c ContentKeyPoliciesClient) ContentKeyPoliciesListCompleteMatchingPredicate(ctx context.Context, id MediaServiceId, options ContentKeyPoliciesListOperationOptions, predicate ContentKeyPolicyOperationPredicate) (result ContentKeyPoliciesListCompleteResult, err error) { +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c ContentKeyPoliciesClient) ListCompleteMatchingPredicate(ctx context.Context, id MediaServiceId, options ListOperationOptions, predicate ContentKeyPolicyOperationPredicate) (result ListCompleteResult, err error) { items := make([]ContentKeyPolicy, 0) - resp, err := c.ContentKeyPoliciesList(ctx, id, options) + resp, err := c.List(ctx, id, options) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -118,7 +118,7 @@ func (c ContentKeyPoliciesClient) ContentKeyPoliciesListCompleteMatchingPredicat } } - result = ContentKeyPoliciesListCompleteResult{ + result = ListCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciesupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_update.go similarity index 77% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciesupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_update.go index 47c0bc84760e..f0a52c19410f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_contentkeypoliciesupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/method_update.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContentKeyPoliciesUpdateOperationResponse struct { +type UpdateOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *ContentKeyPolicy } -// ContentKeyPoliciesUpdate ... -func (c ContentKeyPoliciesClient) ContentKeyPoliciesUpdate(ctx context.Context, id ContentKeyPolicyId, input ContentKeyPolicy) (result ContentKeyPoliciesUpdateOperationResponse, err error) { +// Update ... +func (c ContentKeyPoliciesClient) Update(ctx context.Context, id ContentKeyPolicyId, input ContentKeyPolicy) (result UpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/README.md index bd321b7befaf..29f999291cde 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `VolumeGroupsClient.VolumeGroupsCreate` +### Example Usage: `VolumeGroupsClient.Create` ```go ctx := context.TODO() @@ -31,31 +31,31 @@ payload := volumegroups.VolumeGroupDetails{ } -if err := client.VolumeGroupsCreateThenPoll(ctx, id, payload); err != nil { +if err := client.CreateThenPoll(ctx, id, payload); err != nil { // handle the error } ``` -### Example Usage: `VolumeGroupsClient.VolumeGroupsDelete` +### Example Usage: `VolumeGroupsClient.Delete` ```go ctx := context.TODO() id := volumegroups.NewVolumeGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group", "netAppAccountValue", "volumeGroupValue") -if err := client.VolumeGroupsDeleteThenPoll(ctx, id); err != nil { +if err := client.DeleteThenPoll(ctx, id); err != nil { // handle the error } ``` -### Example Usage: `VolumeGroupsClient.VolumeGroupsGet` +### Example Usage: `VolumeGroupsClient.Get` ```go ctx := context.TODO() id := volumegroups.NewVolumeGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group", "netAppAccountValue", "volumeGroupValue") -read, err := client.VolumeGroupsGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -65,13 +65,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `VolumeGroupsClient.VolumeGroupsListByNetAppAccount` +### Example Usage: `VolumeGroupsClient.ListByNetAppAccount` ```go ctx := context.TODO() id := volumegroups.NewNetAppAccountID("12345678-1234-9876-4563-123456789012", "example-resource-group", "netAppAccountValue") -read, err := client.VolumeGroupsListByNetAppAccount(ctx, id) +read, err := client.ListByNetAppAccount(ctx, id) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_volumegroupscreate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_create.go similarity index 65% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_volumegroupscreate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_create.go index 3a763156a550..13500e108f39 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_volumegroupscreate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_create.go @@ -14,14 +14,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type VolumeGroupsCreateOperationResponse struct { +type CreateOperationResponse struct { Poller pollers.Poller HttpResponse *http.Response OData *odata.OData } -// VolumeGroupsCreate ... -func (c VolumeGroupsClient) VolumeGroupsCreate(ctx context.Context, id VolumeGroupId, input VolumeGroupDetails) (result VolumeGroupsCreateOperationResponse, err error) { +// Create ... +func (c VolumeGroupsClient) Create(ctx context.Context, id VolumeGroupId, input VolumeGroupDetails) (result CreateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -58,15 +58,15 @@ func (c VolumeGroupsClient) VolumeGroupsCreate(ctx context.Context, id VolumeGro return } -// VolumeGroupsCreateThenPoll performs VolumeGroupsCreate then polls until it's completed -func (c VolumeGroupsClient) VolumeGroupsCreateThenPoll(ctx context.Context, id VolumeGroupId, input VolumeGroupDetails) error { - result, err := c.VolumeGroupsCreate(ctx, id, input) +// CreateThenPoll performs Create then polls until it's completed +func (c VolumeGroupsClient) CreateThenPoll(ctx context.Context, id VolumeGroupId, input VolumeGroupDetails) error { + result, err := c.Create(ctx, id, input) if err != nil { - return fmt.Errorf("performing VolumeGroupsCreate: %+v", err) + return fmt.Errorf("performing Create: %+v", err) } if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after VolumeGroupsCreate: %+v", err) + return fmt.Errorf("polling after Create: %+v", err) } return nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_volumegroupsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_delete.go similarity index 67% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_volumegroupsdelete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_delete.go index ce64231243a3..32e6c75b1500 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_volumegroupsdelete.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_delete.go @@ -14,14 +14,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type VolumeGroupsDeleteOperationResponse struct { +type DeleteOperationResponse struct { Poller pollers.Poller HttpResponse *http.Response OData *odata.OData } -// VolumeGroupsDelete ... -func (c VolumeGroupsClient) VolumeGroupsDelete(ctx context.Context, id VolumeGroupId) (result VolumeGroupsDeleteOperationResponse, err error) { +// Delete ... +func (c VolumeGroupsClient) Delete(ctx context.Context, id VolumeGroupId) (result DeleteOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -56,15 +56,15 @@ func (c VolumeGroupsClient) VolumeGroupsDelete(ctx context.Context, id VolumeGro return } -// VolumeGroupsDeleteThenPoll performs VolumeGroupsDelete then polls until it's completed -func (c VolumeGroupsClient) VolumeGroupsDeleteThenPoll(ctx context.Context, id VolumeGroupId) error { - result, err := c.VolumeGroupsDelete(ctx, id) +// DeleteThenPoll performs Delete then polls until it's completed +func (c VolumeGroupsClient) DeleteThenPoll(ctx context.Context, id VolumeGroupId) error { + result, err := c.Delete(ctx, id) if err != nil { - return fmt.Errorf("performing VolumeGroupsDelete: %+v", err) + return fmt.Errorf("performing Delete: %+v", err) } if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after VolumeGroupsDelete: %+v", err) + return fmt.Errorf("polling after Delete: %+v", err) } return nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_volumegroupsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_get.go similarity index 81% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_volumegroupsget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_get.go index 7bf91f15b516..6a14cec40c47 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_volumegroupsget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_get.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type VolumeGroupsGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *VolumeGroupDetails } -// VolumeGroupsGet ... -func (c VolumeGroupsClient) VolumeGroupsGet(ctx context.Context, id VolumeGroupId) (result VolumeGroupsGetOperationResponse, err error) { +// Get ... +func (c VolumeGroupsClient) Get(ctx context.Context, id VolumeGroupId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_volumegroupslistbynetappaccount.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_listbynetappaccount.go similarity index 77% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_volumegroupslistbynetappaccount.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_listbynetappaccount.go index 59c9b9fa370c..0a84dcdd8e0f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_volumegroupslistbynetappaccount.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups/method_listbynetappaccount.go @@ -12,14 +12,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type VolumeGroupsListByNetAppAccountOperationResponse struct { +type ListByNetAppAccountOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *VolumeGroupList } -// VolumeGroupsListByNetAppAccount ... -func (c VolumeGroupsClient) VolumeGroupsListByNetAppAccount(ctx context.Context, id NetAppAccountId) (result VolumeGroupsListByNetAppAccountOperationResponse, err error) { +// ListByNetAppAccount ... +func (c VolumeGroupsClient) ListByNetAppAccount(ctx context.Context, id NetAppAccountId) (result ListByNetAppAccountOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/README.md index f725a2f4663f..c00203cbfe8f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/README.md @@ -20,13 +20,13 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `ApplicationGatewayWafDynamicManifestsClient.ApplicationGatewayWafDynamicManifestsDefaultGet` +### Example Usage: `ApplicationGatewayWafDynamicManifestsClient.DefaultGet` ```go ctx := context.TODO() id := applicationgatewaywafdynamicmanifests.NewLocationID("12345678-1234-9876-4563-123456789012", "locationValue") -read, err := client.ApplicationGatewayWafDynamicManifestsDefaultGet(ctx, id) +read, err := client.DefaultGet(ctx, id) if err != nil { // handle the error } @@ -36,14 +36,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `ApplicationGatewayWafDynamicManifestsClient.ApplicationGatewayWafDynamicManifestsGet` +### Example Usage: `ApplicationGatewayWafDynamicManifestsClient.Get` ```go ctx := context.TODO() id := applicationgatewaywafdynamicmanifests.NewLocationID("12345678-1234-9876-4563-123456789012", "locationValue") -// alternatively `client.ApplicationGatewayWafDynamicManifestsGet(ctx, id)` can be used to do batched pagination -items, err := client.ApplicationGatewayWafDynamicManifestsGetComplete(ctx, id) +// alternatively `client.Get(ctx, id)` can be used to do batched pagination +items, err := client.GetComplete(ctx, id) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/method_applicationgatewaywafdynamicmanifestsdefaultget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/method_defaultget.go similarity index 74% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/method_applicationgatewaywafdynamicmanifestsdefaultget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/method_defaultget.go index e9251c3e2257..f5479ef99a08 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/method_applicationgatewaywafdynamicmanifestsdefaultget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/method_defaultget.go @@ -12,14 +12,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ApplicationGatewayWafDynamicManifestsDefaultGetOperationResponse struct { +type DefaultGetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *ApplicationGatewayWafDynamicManifestResult } -// ApplicationGatewayWafDynamicManifestsDefaultGet ... -func (c ApplicationGatewayWafDynamicManifestsClient) ApplicationGatewayWafDynamicManifestsDefaultGet(ctx context.Context, id LocationId) (result ApplicationGatewayWafDynamicManifestsDefaultGetOperationResponse, err error) { +// DefaultGet ... +func (c ApplicationGatewayWafDynamicManifestsClient) DefaultGet(ctx context.Context, id LocationId) (result DefaultGetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/method_applicationgatewaywafdynamicmanifestsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/method_get.go similarity index 51% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/method_applicationgatewaywafdynamicmanifestsget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/method_get.go index b66cd668d1f8..005eeecec663 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/method_applicationgatewaywafdynamicmanifestsget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/applicationgatewaywafdynamicmanifests/method_get.go @@ -12,18 +12,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ApplicationGatewayWafDynamicManifestsGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]ApplicationGatewayWafDynamicManifestResult } -type ApplicationGatewayWafDynamicManifestsGetCompleteResult struct { +type GetCompleteResult struct { Items []ApplicationGatewayWafDynamicManifestResult } -// ApplicationGatewayWafDynamicManifestsGet ... -func (c ApplicationGatewayWafDynamicManifestsClient) ApplicationGatewayWafDynamicManifestsGet(ctx context.Context, id LocationId) (result ApplicationGatewayWafDynamicManifestsGetOperationResponse, err error) { +// Get ... +func (c ApplicationGatewayWafDynamicManifestsClient) Get(ctx context.Context, id LocationId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -60,16 +60,16 @@ func (c ApplicationGatewayWafDynamicManifestsClient) ApplicationGatewayWafDynami return } -// ApplicationGatewayWafDynamicManifestsGetComplete retrieves all the results into a single object -func (c ApplicationGatewayWafDynamicManifestsClient) ApplicationGatewayWafDynamicManifestsGetComplete(ctx context.Context, id LocationId) (ApplicationGatewayWafDynamicManifestsGetCompleteResult, error) { - return c.ApplicationGatewayWafDynamicManifestsGetCompleteMatchingPredicate(ctx, id, ApplicationGatewayWafDynamicManifestResultOperationPredicate{}) +// GetComplete retrieves all the results into a single object +func (c ApplicationGatewayWafDynamicManifestsClient) GetComplete(ctx context.Context, id LocationId) (GetCompleteResult, error) { + return c.GetCompleteMatchingPredicate(ctx, id, ApplicationGatewayWafDynamicManifestResultOperationPredicate{}) } -// ApplicationGatewayWafDynamicManifestsGetCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c ApplicationGatewayWafDynamicManifestsClient) ApplicationGatewayWafDynamicManifestsGetCompleteMatchingPredicate(ctx context.Context, id LocationId, predicate ApplicationGatewayWafDynamicManifestResultOperationPredicate) (result ApplicationGatewayWafDynamicManifestsGetCompleteResult, err error) { +// GetCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c ApplicationGatewayWafDynamicManifestsClient) GetCompleteMatchingPredicate(ctx context.Context, id LocationId, predicate ApplicationGatewayWafDynamicManifestResultOperationPredicate) (result GetCompleteResult, err error) { items := make([]ApplicationGatewayWafDynamicManifestResult, 0) - resp, err := c.ApplicationGatewayWafDynamicManifestsGet(ctx, id) + resp, err := c.Get(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -82,7 +82,7 @@ func (c ApplicationGatewayWafDynamicManifestsClient) ApplicationGatewayWafDynami } } - result = ApplicationGatewayWafDynamicManifestsGetCompleteResult{ + result = GetCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/README.md index cbbcd2bd5005..5a155608f9c2 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/README.md @@ -20,14 +20,14 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `AvailableServiceAliasesClient.AvailableServiceAliasesList` +### Example Usage: `AvailableServiceAliasesClient.List` ```go ctx := context.TODO() id := availableservicealiases.NewLocationID("12345678-1234-9876-4563-123456789012", "locationValue") -// alternatively `client.AvailableServiceAliasesList(ctx, id)` can be used to do batched pagination -items, err := client.AvailableServiceAliasesListComplete(ctx, id) +// alternatively `client.List(ctx, id)` can be used to do batched pagination +items, err := client.ListComplete(ctx, id) if err != nil { // handle the error } @@ -37,14 +37,14 @@ for _, item := range items { ``` -### Example Usage: `AvailableServiceAliasesClient.AvailableServiceAliasesListByResourceGroup` +### Example Usage: `AvailableServiceAliasesClient.ListByResourceGroup` ```go ctx := context.TODO() id := availableservicealiases.NewProviderLocationID("12345678-1234-9876-4563-123456789012", "example-resource-group", "locationValue") -// alternatively `client.AvailableServiceAliasesListByResourceGroup(ctx, id)` can be used to do batched pagination -items, err := client.AvailableServiceAliasesListByResourceGroupComplete(ctx, id) +// alternatively `client.ListByResourceGroup(ctx, id)` can be used to do batched pagination +items, err := client.ListByResourceGroupComplete(ctx, id) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/method_availableservicealiaseslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/method_list.go similarity index 56% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/method_availableservicealiaseslist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/method_list.go index 3643de630008..be3024e34023 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/method_availableservicealiaseslist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/method_list.go @@ -12,18 +12,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AvailableServiceAliasesListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]AvailableServiceAlias } -type AvailableServiceAliasesListCompleteResult struct { +type ListCompleteResult struct { Items []AvailableServiceAlias } -// AvailableServiceAliasesList ... -func (c AvailableServiceAliasesClient) AvailableServiceAliasesList(ctx context.Context, id LocationId) (result AvailableServiceAliasesListOperationResponse, err error) { +// List ... +func (c AvailableServiceAliasesClient) List(ctx context.Context, id LocationId) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -60,16 +60,16 @@ func (c AvailableServiceAliasesClient) AvailableServiceAliasesList(ctx context.C return } -// AvailableServiceAliasesListComplete retrieves all the results into a single object -func (c AvailableServiceAliasesClient) AvailableServiceAliasesListComplete(ctx context.Context, id LocationId) (AvailableServiceAliasesListCompleteResult, error) { - return c.AvailableServiceAliasesListCompleteMatchingPredicate(ctx, id, AvailableServiceAliasOperationPredicate{}) +// ListComplete retrieves all the results into a single object +func (c AvailableServiceAliasesClient) ListComplete(ctx context.Context, id LocationId) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, AvailableServiceAliasOperationPredicate{}) } -// AvailableServiceAliasesListCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c AvailableServiceAliasesClient) AvailableServiceAliasesListCompleteMatchingPredicate(ctx context.Context, id LocationId, predicate AvailableServiceAliasOperationPredicate) (result AvailableServiceAliasesListCompleteResult, err error) { +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AvailableServiceAliasesClient) ListCompleteMatchingPredicate(ctx context.Context, id LocationId, predicate AvailableServiceAliasOperationPredicate) (result ListCompleteResult, err error) { items := make([]AvailableServiceAlias, 0) - resp, err := c.AvailableServiceAliasesList(ctx, id) + resp, err := c.List(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -82,7 +82,7 @@ func (c AvailableServiceAliasesClient) AvailableServiceAliasesListCompleteMatchi } } - result = AvailableServiceAliasesListCompleteResult{ + result = ListCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/method_availableservicealiaseslistbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/method_listbyresourcegroup.go similarity index 50% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/method_availableservicealiaseslistbyresourcegroup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/method_listbyresourcegroup.go index a6ef5ba7a977..7114e56916a7 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/method_availableservicealiaseslistbyresourcegroup.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/availableservicealiases/method_listbyresourcegroup.go @@ -12,18 +12,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AvailableServiceAliasesListByResourceGroupOperationResponse struct { +type ListByResourceGroupOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]AvailableServiceAlias } -type AvailableServiceAliasesListByResourceGroupCompleteResult struct { +type ListByResourceGroupCompleteResult struct { Items []AvailableServiceAlias } -// AvailableServiceAliasesListByResourceGroup ... -func (c AvailableServiceAliasesClient) AvailableServiceAliasesListByResourceGroup(ctx context.Context, id ProviderLocationId) (result AvailableServiceAliasesListByResourceGroupOperationResponse, err error) { +// ListByResourceGroup ... +func (c AvailableServiceAliasesClient) ListByResourceGroup(ctx context.Context, id ProviderLocationId) (result ListByResourceGroupOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -60,16 +60,16 @@ func (c AvailableServiceAliasesClient) AvailableServiceAliasesListByResourceGrou return } -// AvailableServiceAliasesListByResourceGroupComplete retrieves all the results into a single object -func (c AvailableServiceAliasesClient) AvailableServiceAliasesListByResourceGroupComplete(ctx context.Context, id ProviderLocationId) (AvailableServiceAliasesListByResourceGroupCompleteResult, error) { - return c.AvailableServiceAliasesListByResourceGroupCompleteMatchingPredicate(ctx, id, AvailableServiceAliasOperationPredicate{}) +// ListByResourceGroupComplete retrieves all the results into a single object +func (c AvailableServiceAliasesClient) ListByResourceGroupComplete(ctx context.Context, id ProviderLocationId) (ListByResourceGroupCompleteResult, error) { + return c.ListByResourceGroupCompleteMatchingPredicate(ctx, id, AvailableServiceAliasOperationPredicate{}) } -// AvailableServiceAliasesListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c AvailableServiceAliasesClient) AvailableServiceAliasesListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id ProviderLocationId, predicate AvailableServiceAliasOperationPredicate) (result AvailableServiceAliasesListByResourceGroupCompleteResult, err error) { +// ListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AvailableServiceAliasesClient) ListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id ProviderLocationId, predicate AvailableServiceAliasOperationPredicate) (result ListByResourceGroupCompleteResult, err error) { items := make([]AvailableServiceAlias, 0) - resp, err := c.AvailableServiceAliasesListByResourceGroup(ctx, id) + resp, err := c.ListByResourceGroup(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -82,7 +82,7 @@ func (c AvailableServiceAliasesClient) AvailableServiceAliasesListByResourceGrou } } - result = AvailableServiceAliasesListByResourceGroupCompleteResult{ + result = ListByResourceGroupCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/README.md index 4c0f2cc2c76e..5545c936616c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `QueryPacksClient.QueryPacksCreateOrUpdate` +### Example Usage: `QueryPacksClient.CreateOrUpdate` ```go ctx := context.TODO() @@ -31,7 +31,7 @@ payload := querypacks.LogAnalyticsQueryPack{ } -read, err := client.QueryPacksCreateOrUpdate(ctx, id, payload) +read, err := client.CreateOrUpdate(ctx, id, payload) if err != nil { // handle the error } @@ -41,7 +41,7 @@ if model := read.Model; model != nil { ``` -### Example Usage: `QueryPacksClient.QueryPacksCreateOrUpdateWithoutName` +### Example Usage: `QueryPacksClient.CreateOrUpdateWithoutName` ```go ctx := context.TODO() @@ -52,7 +52,7 @@ payload := querypacks.LogAnalyticsQueryPack{ } -read, err := client.QueryPacksCreateOrUpdateWithoutName(ctx, id, payload) +read, err := client.CreateOrUpdateWithoutName(ctx, id, payload) if err != nil { // handle the error } @@ -62,13 +62,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `QueryPacksClient.QueryPacksDelete` +### Example Usage: `QueryPacksClient.Delete` ```go ctx := context.TODO() id := querypacks.NewQueryPackID("12345678-1234-9876-4563-123456789012", "example-resource-group", "queryPackValue") -read, err := client.QueryPacksDelete(ctx, id) +read, err := client.Delete(ctx, id) if err != nil { // handle the error } @@ -78,13 +78,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `QueryPacksClient.QueryPacksGet` +### Example Usage: `QueryPacksClient.Get` ```go ctx := context.TODO() id := querypacks.NewQueryPackID("12345678-1234-9876-4563-123456789012", "example-resource-group", "queryPackValue") -read, err := client.QueryPacksGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -94,14 +94,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `QueryPacksClient.QueryPacksList` +### Example Usage: `QueryPacksClient.List` ```go ctx := context.TODO() id := querypacks.NewSubscriptionID("12345678-1234-9876-4563-123456789012") -// alternatively `client.QueryPacksList(ctx, id)` can be used to do batched pagination -items, err := client.QueryPacksListComplete(ctx, id) +// alternatively `client.List(ctx, id)` can be used to do batched pagination +items, err := client.ListComplete(ctx, id) if err != nil { // handle the error } @@ -111,14 +111,14 @@ for _, item := range items { ``` -### Example Usage: `QueryPacksClient.QueryPacksListByResourceGroup` +### Example Usage: `QueryPacksClient.ListByResourceGroup` ```go ctx := context.TODO() id := querypacks.NewResourceGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group") -// alternatively `client.QueryPacksListByResourceGroup(ctx, id)` can be used to do batched pagination -items, err := client.QueryPacksListByResourceGroupComplete(ctx, id) +// alternatively `client.ListByResourceGroup(ctx, id)` can be used to do batched pagination +items, err := client.ListByResourceGroupComplete(ctx, id) if err != nil { // handle the error } @@ -128,7 +128,7 @@ for _, item := range items { ``` -### Example Usage: `QueryPacksClient.QueryPacksUpdateTags` +### Example Usage: `QueryPacksClient.UpdateTags` ```go ctx := context.TODO() @@ -139,7 +139,7 @@ payload := querypacks.TagsResource{ } -read, err := client.QueryPacksUpdateTags(ctx, id, payload) +read, err := client.UpdateTags(ctx, id, payload) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_createorupdate.go similarity index 78% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_createorupdate.go index 71b3da2be417..cb03c319811f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_createorupdate.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type QueryPacksCreateOrUpdateOperationResponse struct { +type CreateOrUpdateOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *LogAnalyticsQueryPack } -// QueryPacksCreateOrUpdate ... -func (c QueryPacksClient) QueryPacksCreateOrUpdate(ctx context.Context, id QueryPackId, input LogAnalyticsQueryPack) (result QueryPacksCreateOrUpdateOperationResponse, err error) { +// CreateOrUpdate ... +func (c QueryPacksClient) CreateOrUpdate(ctx context.Context, id QueryPackId, input LogAnalyticsQueryPack) (result CreateOrUpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdatewithoutname.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_createorupdatewithoutname.go similarity index 77% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdatewithoutname.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_createorupdatewithoutname.go index 54aa3868fe85..e67c68054e72 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackscreateorupdatewithoutname.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_createorupdatewithoutname.go @@ -13,14 +13,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type QueryPacksCreateOrUpdateWithoutNameOperationResponse struct { +type CreateOrUpdateWithoutNameOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *LogAnalyticsQueryPack } -// QueryPacksCreateOrUpdateWithoutName ... -func (c QueryPacksClient) QueryPacksCreateOrUpdateWithoutName(ctx context.Context, id commonids.ResourceGroupId, input LogAnalyticsQueryPack) (result QueryPacksCreateOrUpdateWithoutNameOperationResponse, err error) { +// CreateOrUpdateWithoutName ... +func (c QueryPacksClient) CreateOrUpdateWithoutName(ctx context.Context, id commonids.ResourceGroupId, input LogAnalyticsQueryPack) (result CreateOrUpdateWithoutNameOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_delete.go similarity index 80% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksdelete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_delete.go index 5eae5b2fb4cb..c9137572bc33 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksdelete.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_delete.go @@ -11,13 +11,13 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type QueryPacksDeleteOperationResponse struct { +type DeleteOperationResponse struct { HttpResponse *http.Response OData *odata.OData } -// QueryPacksDelete ... -func (c QueryPacksClient) QueryPacksDelete(ctx context.Context, id QueryPackId) (result QueryPacksDeleteOperationResponse, err error) { +// Delete ... +func (c QueryPacksClient) Delete(ctx context.Context, id QueryPackId) (result DeleteOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_get.go similarity index 82% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_get.go index 5844470a58df..9ae8ae69114b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_get.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type QueryPacksGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *LogAnalyticsQueryPack } -// QueryPacksGet ... -func (c QueryPacksClient) QueryPacksGet(ctx context.Context, id QueryPackId) (result QueryPacksGetOperationResponse, err error) { +// Get ... +func (c QueryPacksClient) Get(ctx context.Context, id QueryPackId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_list.go similarity index 60% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_list.go index 008fc4bb5a48..5c30a554675a 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_list.go @@ -13,18 +13,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type QueryPacksListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]LogAnalyticsQueryPack } -type QueryPacksListCompleteResult struct { +type ListCompleteResult struct { Items []LogAnalyticsQueryPack } -// QueryPacksList ... -func (c QueryPacksClient) QueryPacksList(ctx context.Context, id commonids.SubscriptionId) (result QueryPacksListOperationResponse, err error) { +// List ... +func (c QueryPacksClient) List(ctx context.Context, id commonids.SubscriptionId) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -61,16 +61,16 @@ func (c QueryPacksClient) QueryPacksList(ctx context.Context, id commonids.Subsc return } -// QueryPacksListComplete retrieves all the results into a single object -func (c QueryPacksClient) QueryPacksListComplete(ctx context.Context, id commonids.SubscriptionId) (QueryPacksListCompleteResult, error) { - return c.QueryPacksListCompleteMatchingPredicate(ctx, id, LogAnalyticsQueryPackOperationPredicate{}) +// ListComplete retrieves all the results into a single object +func (c QueryPacksClient) ListComplete(ctx context.Context, id commonids.SubscriptionId) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, LogAnalyticsQueryPackOperationPredicate{}) } -// QueryPacksListCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c QueryPacksClient) QueryPacksListCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate LogAnalyticsQueryPackOperationPredicate) (result QueryPacksListCompleteResult, err error) { +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c QueryPacksClient) ListCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate LogAnalyticsQueryPackOperationPredicate) (result ListCompleteResult, err error) { items := make([]LogAnalyticsQueryPack, 0) - resp, err := c.QueryPacksList(ctx, id) + resp, err := c.List(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -83,7 +83,7 @@ func (c QueryPacksClient) QueryPacksListCompleteMatchingPredicate(ctx context.Co } } - result = QueryPacksListCompleteResult{ + result = ListCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslistbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_listbyresourcegroup.go similarity index 55% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslistbyresourcegroup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_listbyresourcegroup.go index 148edebb6b2c..a31cb8ff84c3 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypackslistbyresourcegroup.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_listbyresourcegroup.go @@ -13,18 +13,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type QueryPacksListByResourceGroupOperationResponse struct { +type ListByResourceGroupOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]LogAnalyticsQueryPack } -type QueryPacksListByResourceGroupCompleteResult struct { +type ListByResourceGroupCompleteResult struct { Items []LogAnalyticsQueryPack } -// QueryPacksListByResourceGroup ... -func (c QueryPacksClient) QueryPacksListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result QueryPacksListByResourceGroupOperationResponse, err error) { +// ListByResourceGroup ... +func (c QueryPacksClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -61,16 +61,16 @@ func (c QueryPacksClient) QueryPacksListByResourceGroup(ctx context.Context, id return } -// QueryPacksListByResourceGroupComplete retrieves all the results into a single object -func (c QueryPacksClient) QueryPacksListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (QueryPacksListByResourceGroupCompleteResult, error) { - return c.QueryPacksListByResourceGroupCompleteMatchingPredicate(ctx, id, LogAnalyticsQueryPackOperationPredicate{}) +// ListByResourceGroupComplete retrieves all the results into a single object +func (c QueryPacksClient) ListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (ListByResourceGroupCompleteResult, error) { + return c.ListByResourceGroupCompleteMatchingPredicate(ctx, id, LogAnalyticsQueryPackOperationPredicate{}) } -// QueryPacksListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c QueryPacksClient) QueryPacksListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate LogAnalyticsQueryPackOperationPredicate) (result QueryPacksListByResourceGroupCompleteResult, err error) { +// ListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c QueryPacksClient) ListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate LogAnalyticsQueryPackOperationPredicate) (result ListByResourceGroupCompleteResult, err error) { items := make([]LogAnalyticsQueryPack, 0) - resp, err := c.QueryPacksListByResourceGroup(ctx, id) + resp, err := c.ListByResourceGroup(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -83,7 +83,7 @@ func (c QueryPacksClient) QueryPacksListByResourceGroupCompleteMatchingPredicate } } - result = QueryPacksListByResourceGroupCompleteResult{ + result = ListByResourceGroupCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksupdatetags.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_updatetags.go similarity index 80% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksupdatetags.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_updatetags.go index 6efa3a9b9dda..3ab71888aa21 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_querypacksupdatetags.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2019-09-01/querypacks/method_updatetags.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type QueryPacksUpdateTagsOperationResponse struct { +type UpdateTagsOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *LogAnalyticsQueryPack } -// QueryPacksUpdateTags ... -func (c QueryPacksClient) QueryPacksUpdateTags(ctx context.Context, id QueryPackId, input TagsResource) (result QueryPacksUpdateTagsOperationResponse, err error) { +// UpdateTags ... +func (c QueryPacksClient) UpdateTags(ctx context.Context, id QueryPackId, input TagsResource) (result UpdateTagsOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/README.md index 7daae24ef0de..f2c3faa709dc 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `ContactProfileClient.ContactProfilesCreateOrUpdate` +### Example Usage: `ContactProfileClient.CreateOrUpdate` ```go ctx := context.TODO() @@ -31,31 +31,31 @@ payload := contactprofile.ContactProfile{ } -if err := client.ContactProfilesCreateOrUpdateThenPoll(ctx, id, payload); err != nil { +if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil { // handle the error } ``` -### Example Usage: `ContactProfileClient.ContactProfilesDelete` +### Example Usage: `ContactProfileClient.Delete` ```go ctx := context.TODO() id := contactprofile.NewContactProfileID("12345678-1234-9876-4563-123456789012", "example-resource-group", "contactProfileValue") -if err := client.ContactProfilesDeleteThenPoll(ctx, id); err != nil { +if err := client.DeleteThenPoll(ctx, id); err != nil { // handle the error } ``` -### Example Usage: `ContactProfileClient.ContactProfilesGet` +### Example Usage: `ContactProfileClient.Get` ```go ctx := context.TODO() id := contactprofile.NewContactProfileID("12345678-1234-9876-4563-123456789012", "example-resource-group", "contactProfileValue") -read, err := client.ContactProfilesGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -65,14 +65,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `ContactProfileClient.ContactProfilesList` +### Example Usage: `ContactProfileClient.List` ```go ctx := context.TODO() id := contactprofile.NewResourceGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group") -// alternatively `client.ContactProfilesList(ctx, id)` can be used to do batched pagination -items, err := client.ContactProfilesListComplete(ctx, id) +// alternatively `client.List(ctx, id)` can be used to do batched pagination +items, err := client.ListComplete(ctx, id) if err != nil { // handle the error } @@ -82,14 +82,14 @@ for _, item := range items { ``` -### Example Usage: `ContactProfileClient.ContactProfilesListBySubscription` +### Example Usage: `ContactProfileClient.ListBySubscription` ```go ctx := context.TODO() id := contactprofile.NewSubscriptionID("12345678-1234-9876-4563-123456789012") -// alternatively `client.ContactProfilesListBySubscription(ctx, id)` can be used to do batched pagination -items, err := client.ContactProfilesListBySubscriptionComplete(ctx, id) +// alternatively `client.ListBySubscription(ctx, id)` can be used to do batched pagination +items, err := client.ListBySubscriptionComplete(ctx, id) if err != nil { // handle the error } @@ -99,7 +99,7 @@ for _, item := range items { ``` -### Example Usage: `ContactProfileClient.ContactProfilesUpdateTags` +### Example Usage: `ContactProfileClient.UpdateTags` ```go ctx := context.TODO() @@ -110,7 +110,7 @@ payload := contactprofile.TagsObject{ } -if err := client.ContactProfilesUpdateTagsThenPoll(ctx, id, payload); err != nil { +if err := client.UpdateTagsThenPoll(ctx, id, payload); err != nil { // handle the error } ``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofilesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofilesdelete.go deleted file mode 100644 index b6f859bafe2a..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofilesdelete.go +++ /dev/null @@ -1,71 +0,0 @@ -package contactprofile - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ContactProfilesDeleteOperationResponse struct { - Poller pollers.Poller - HttpResponse *http.Response - OData *odata.OData -} - -// ContactProfilesDelete ... -func (c ContactProfileClient) ContactProfilesDelete(ctx context.Context, id ContactProfileId) (result ContactProfilesDeleteOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusAccepted, - http.StatusNoContent, - http.StatusOK, - }, - HttpMethod: http.MethodDelete, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) - if err != nil { - return - } - - return -} - -// ContactProfilesDeleteThenPoll performs ContactProfilesDelete then polls until it's completed -func (c ContactProfileClient) ContactProfilesDeleteThenPoll(ctx context.Context, id ContactProfileId) error { - result, err := c.ContactProfilesDelete(ctx, id) - if err != nil { - return fmt.Errorf("performing ContactProfilesDelete: %+v", err) - } - - if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after ContactProfilesDelete: %+v", err) - } - - return nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofilescreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_createorupdate.go similarity index 62% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofilescreateorupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_createorupdate.go index 677a88777cc4..1e1224e43342 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofilescreateorupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_createorupdate.go @@ -14,14 +14,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContactProfilesCreateOrUpdateOperationResponse struct { +type CreateOrUpdateOperationResponse struct { Poller pollers.Poller HttpResponse *http.Response OData *odata.OData } -// ContactProfilesCreateOrUpdate ... -func (c ContactProfileClient) ContactProfilesCreateOrUpdate(ctx context.Context, id ContactProfileId, input ContactProfile) (result ContactProfilesCreateOrUpdateOperationResponse, err error) { +// CreateOrUpdate ... +func (c ContactProfileClient) CreateOrUpdate(ctx context.Context, id ContactProfileId, input ContactProfile) (result CreateOrUpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -59,15 +59,15 @@ func (c ContactProfileClient) ContactProfilesCreateOrUpdate(ctx context.Context, return } -// ContactProfilesCreateOrUpdateThenPoll performs ContactProfilesCreateOrUpdate then polls until it's completed -func (c ContactProfileClient) ContactProfilesCreateOrUpdateThenPoll(ctx context.Context, id ContactProfileId, input ContactProfile) error { - result, err := c.ContactProfilesCreateOrUpdate(ctx, id, input) +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c ContactProfileClient) CreateOrUpdateThenPoll(ctx context.Context, id ContactProfileId, input ContactProfile) error { + result, err := c.CreateOrUpdate(ctx, id, input) if err != nil { - return fmt.Errorf("performing ContactProfilesCreateOrUpdate: %+v", err) + return fmt.Errorf("performing CreateOrUpdate: %+v", err) } if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after ContactProfilesCreateOrUpdate: %+v", err) + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) } return nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_delete.go new file mode 100644 index 000000000000..2ac7f8dc2351 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_delete.go @@ -0,0 +1,71 @@ +package contactprofile + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c ContactProfileClient) Delete(ctx context.Context, id ContactProfileId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c ContactProfileClient) DeleteThenPoll(ctx context.Context, id ContactProfileId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofilesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_get.go similarity index 80% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofilesget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_get.go index 4d167b1f876b..8976b1ce612c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofilesget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_get.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContactProfilesGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *ContactProfile } -// ContactProfilesGet ... -func (c ContactProfileClient) ContactProfilesGet(ctx context.Context, id ContactProfileId) (result ContactProfilesGetOperationResponse, err error) { +// Get ... +func (c ContactProfileClient) Get(ctx context.Context, id ContactProfileId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofileslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_list.go similarity index 58% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofileslist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_list.go index 99fbc73ec8fc..e04b1c71b5c3 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofileslist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_list.go @@ -13,18 +13,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContactProfilesListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]ContactProfile } -type ContactProfilesListCompleteResult struct { +type ListCompleteResult struct { Items []ContactProfile } -// ContactProfilesList ... -func (c ContactProfileClient) ContactProfilesList(ctx context.Context, id commonids.ResourceGroupId) (result ContactProfilesListOperationResponse, err error) { +// List ... +func (c ContactProfileClient) List(ctx context.Context, id commonids.ResourceGroupId) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -61,16 +61,16 @@ func (c ContactProfileClient) ContactProfilesList(ctx context.Context, id common return } -// ContactProfilesListComplete retrieves all the results into a single object -func (c ContactProfileClient) ContactProfilesListComplete(ctx context.Context, id commonids.ResourceGroupId) (ContactProfilesListCompleteResult, error) { - return c.ContactProfilesListCompleteMatchingPredicate(ctx, id, ContactProfileOperationPredicate{}) +// ListComplete retrieves all the results into a single object +func (c ContactProfileClient) ListComplete(ctx context.Context, id commonids.ResourceGroupId) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, ContactProfileOperationPredicate{}) } -// ContactProfilesListCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c ContactProfileClient) ContactProfilesListCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate ContactProfileOperationPredicate) (result ContactProfilesListCompleteResult, err error) { +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c ContactProfileClient) ListCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate ContactProfileOperationPredicate) (result ListCompleteResult, err error) { items := make([]ContactProfile, 0) - resp, err := c.ContactProfilesList(ctx, id) + resp, err := c.List(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -83,7 +83,7 @@ func (c ContactProfileClient) ContactProfilesListCompleteMatchingPredicate(ctx c } } - result = ContactProfilesListCompleteResult{ + result = ListCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofileslistbysubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_listbysubscription.go similarity index 54% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofileslistbysubscription.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_listbysubscription.go index cdea2cff0460..c93a631d4425 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofileslistbysubscription.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_listbysubscription.go @@ -13,18 +13,18 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContactProfilesListBySubscriptionOperationResponse struct { +type ListBySubscriptionOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]ContactProfile } -type ContactProfilesListBySubscriptionCompleteResult struct { +type ListBySubscriptionCompleteResult struct { Items []ContactProfile } -// ContactProfilesListBySubscription ... -func (c ContactProfileClient) ContactProfilesListBySubscription(ctx context.Context, id commonids.SubscriptionId) (result ContactProfilesListBySubscriptionOperationResponse, err error) { +// ListBySubscription ... +func (c ContactProfileClient) ListBySubscription(ctx context.Context, id commonids.SubscriptionId) (result ListBySubscriptionOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -61,16 +61,16 @@ func (c ContactProfileClient) ContactProfilesListBySubscription(ctx context.Cont return } -// ContactProfilesListBySubscriptionComplete retrieves all the results into a single object -func (c ContactProfileClient) ContactProfilesListBySubscriptionComplete(ctx context.Context, id commonids.SubscriptionId) (ContactProfilesListBySubscriptionCompleteResult, error) { - return c.ContactProfilesListBySubscriptionCompleteMatchingPredicate(ctx, id, ContactProfileOperationPredicate{}) +// ListBySubscriptionComplete retrieves all the results into a single object +func (c ContactProfileClient) ListBySubscriptionComplete(ctx context.Context, id commonids.SubscriptionId) (ListBySubscriptionCompleteResult, error) { + return c.ListBySubscriptionCompleteMatchingPredicate(ctx, id, ContactProfileOperationPredicate{}) } -// ContactProfilesListBySubscriptionCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c ContactProfileClient) ContactProfilesListBySubscriptionCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate ContactProfileOperationPredicate) (result ContactProfilesListBySubscriptionCompleteResult, err error) { +// ListBySubscriptionCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c ContactProfileClient) ListBySubscriptionCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate ContactProfileOperationPredicate) (result ListBySubscriptionCompleteResult, err error) { items := make([]ContactProfile, 0) - resp, err := c.ContactProfilesListBySubscription(ctx, id) + resp, err := c.ListBySubscription(ctx, id) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -83,7 +83,7 @@ func (c ContactProfileClient) ContactProfilesListBySubscriptionCompleteMatchingP } } - result = ContactProfilesListBySubscriptionCompleteResult{ + result = ListBySubscriptionCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofilesupdatetags.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_updatetags.go similarity index 63% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofilesupdatetags.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_updatetags.go index bae72802f418..e8e193cb2da5 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_contactprofilesupdatetags.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/orbital/2022-11-01/contactprofile/method_updatetags.go @@ -14,14 +14,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ContactProfilesUpdateTagsOperationResponse struct { +type UpdateTagsOperationResponse struct { Poller pollers.Poller HttpResponse *http.Response OData *odata.OData } -// ContactProfilesUpdateTags ... -func (c ContactProfileClient) ContactProfilesUpdateTags(ctx context.Context, id ContactProfileId, input TagsObject) (result ContactProfilesUpdateTagsOperationResponse, err error) { +// UpdateTags ... +func (c ContactProfileClient) UpdateTags(ctx context.Context, id ContactProfileId, input TagsObject) (result UpdateTagsOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -59,15 +59,15 @@ func (c ContactProfileClient) ContactProfilesUpdateTags(ctx context.Context, id return } -// ContactProfilesUpdateTagsThenPoll performs ContactProfilesUpdateTags then polls until it's completed -func (c ContactProfileClient) ContactProfilesUpdateTagsThenPoll(ctx context.Context, id ContactProfileId, input TagsObject) error { - result, err := c.ContactProfilesUpdateTags(ctx, id, input) +// UpdateTagsThenPoll performs UpdateTags then polls until it's completed +func (c ContactProfileClient) UpdateTagsThenPoll(ctx context.Context, id ContactProfileId, input TagsObject) error { + result, err := c.UpdateTags(ctx, id, input) if err != nil { - return fmt.Errorf("performing ContactProfilesUpdateTags: %+v", err) + return fmt.Errorf("performing UpdateTags: %+v", err) } if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after ContactProfilesUpdateTags: %+v", err) + return fmt.Errorf("polling after UpdateTags: %+v", err) } return nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/README.md index 5e27d94b3b60..481148f35a1d 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/README.md @@ -20,13 +20,13 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `RemediationsClient.RemediationsCancelAtManagementGroup` +### Example Usage: `RemediationsClient.CancelAtManagementGroup` ```go ctx := context.TODO() id := remediations.NewProviders2RemediationID("managementGroupIdValue", "remediationValue") -read, err := client.RemediationsCancelAtManagementGroup(ctx, id) +read, err := client.CancelAtManagementGroup(ctx, id) if err != nil { // handle the error } @@ -36,13 +36,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsCancelAtResource` +### Example Usage: `RemediationsClient.CancelAtResource` ```go ctx := context.TODO() id := remediations.NewScopedRemediationID("/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/some-resource-group", "remediationValue") -read, err := client.RemediationsCancelAtResource(ctx, id) +read, err := client.CancelAtResource(ctx, id) if err != nil { // handle the error } @@ -52,13 +52,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsCancelAtResourceGroup` +### Example Usage: `RemediationsClient.CancelAtResourceGroup` ```go ctx := context.TODO() id := remediations.NewProviderRemediationID("12345678-1234-9876-4563-123456789012", "example-resource-group", "remediationValue") -read, err := client.RemediationsCancelAtResourceGroup(ctx, id) +read, err := client.CancelAtResourceGroup(ctx, id) if err != nil { // handle the error } @@ -68,13 +68,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsCancelAtSubscription` +### Example Usage: `RemediationsClient.CancelAtSubscription` ```go ctx := context.TODO() id := remediations.NewRemediationID("12345678-1234-9876-4563-123456789012", "remediationValue") -read, err := client.RemediationsCancelAtSubscription(ctx, id) +read, err := client.CancelAtSubscription(ctx, id) if err != nil { // handle the error } @@ -84,7 +84,7 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsCreateOrUpdateAtManagementGroup` +### Example Usage: `RemediationsClient.CreateOrUpdateAtManagementGroup` ```go ctx := context.TODO() @@ -95,7 +95,7 @@ payload := remediations.Remediation{ } -read, err := client.RemediationsCreateOrUpdateAtManagementGroup(ctx, id, payload) +read, err := client.CreateOrUpdateAtManagementGroup(ctx, id, payload) if err != nil { // handle the error } @@ -105,7 +105,7 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsCreateOrUpdateAtResource` +### Example Usage: `RemediationsClient.CreateOrUpdateAtResource` ```go ctx := context.TODO() @@ -116,7 +116,7 @@ payload := remediations.Remediation{ } -read, err := client.RemediationsCreateOrUpdateAtResource(ctx, id, payload) +read, err := client.CreateOrUpdateAtResource(ctx, id, payload) if err != nil { // handle the error } @@ -126,7 +126,7 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsCreateOrUpdateAtResourceGroup` +### Example Usage: `RemediationsClient.CreateOrUpdateAtResourceGroup` ```go ctx := context.TODO() @@ -137,7 +137,7 @@ payload := remediations.Remediation{ } -read, err := client.RemediationsCreateOrUpdateAtResourceGroup(ctx, id, payload) +read, err := client.CreateOrUpdateAtResourceGroup(ctx, id, payload) if err != nil { // handle the error } @@ -147,7 +147,7 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsCreateOrUpdateAtSubscription` +### Example Usage: `RemediationsClient.CreateOrUpdateAtSubscription` ```go ctx := context.TODO() @@ -158,7 +158,7 @@ payload := remediations.Remediation{ } -read, err := client.RemediationsCreateOrUpdateAtSubscription(ctx, id, payload) +read, err := client.CreateOrUpdateAtSubscription(ctx, id, payload) if err != nil { // handle the error } @@ -168,13 +168,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsDeleteAtManagementGroup` +### Example Usage: `RemediationsClient.DeleteAtManagementGroup` ```go ctx := context.TODO() id := remediations.NewProviders2RemediationID("managementGroupIdValue", "remediationValue") -read, err := client.RemediationsDeleteAtManagementGroup(ctx, id) +read, err := client.DeleteAtManagementGroup(ctx, id) if err != nil { // handle the error } @@ -184,13 +184,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsDeleteAtResource` +### Example Usage: `RemediationsClient.DeleteAtResource` ```go ctx := context.TODO() id := remediations.NewScopedRemediationID("/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/some-resource-group", "remediationValue") -read, err := client.RemediationsDeleteAtResource(ctx, id) +read, err := client.DeleteAtResource(ctx, id) if err != nil { // handle the error } @@ -200,13 +200,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsDeleteAtResourceGroup` +### Example Usage: `RemediationsClient.DeleteAtResourceGroup` ```go ctx := context.TODO() id := remediations.NewProviderRemediationID("12345678-1234-9876-4563-123456789012", "example-resource-group", "remediationValue") -read, err := client.RemediationsDeleteAtResourceGroup(ctx, id) +read, err := client.DeleteAtResourceGroup(ctx, id) if err != nil { // handle the error } @@ -216,13 +216,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsDeleteAtSubscription` +### Example Usage: `RemediationsClient.DeleteAtSubscription` ```go ctx := context.TODO() id := remediations.NewRemediationID("12345678-1234-9876-4563-123456789012", "remediationValue") -read, err := client.RemediationsDeleteAtSubscription(ctx, id) +read, err := client.DeleteAtSubscription(ctx, id) if err != nil { // handle the error } @@ -232,13 +232,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsGetAtManagementGroup` +### Example Usage: `RemediationsClient.GetAtManagementGroup` ```go ctx := context.TODO() id := remediations.NewProviders2RemediationID("managementGroupIdValue", "remediationValue") -read, err := client.RemediationsGetAtManagementGroup(ctx, id) +read, err := client.GetAtManagementGroup(ctx, id) if err != nil { // handle the error } @@ -248,13 +248,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsGetAtResource` +### Example Usage: `RemediationsClient.GetAtResource` ```go ctx := context.TODO() id := remediations.NewScopedRemediationID("/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/some-resource-group", "remediationValue") -read, err := client.RemediationsGetAtResource(ctx, id) +read, err := client.GetAtResource(ctx, id) if err != nil { // handle the error } @@ -264,13 +264,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsGetAtResourceGroup` +### Example Usage: `RemediationsClient.GetAtResourceGroup` ```go ctx := context.TODO() id := remediations.NewProviderRemediationID("12345678-1234-9876-4563-123456789012", "example-resource-group", "remediationValue") -read, err := client.RemediationsGetAtResourceGroup(ctx, id) +read, err := client.GetAtResourceGroup(ctx, id) if err != nil { // handle the error } @@ -280,13 +280,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsGetAtSubscription` +### Example Usage: `RemediationsClient.GetAtSubscription` ```go ctx := context.TODO() id := remediations.NewRemediationID("12345678-1234-9876-4563-123456789012", "remediationValue") -read, err := client.RemediationsGetAtSubscription(ctx, id) +read, err := client.GetAtSubscription(ctx, id) if err != nil { // handle the error } @@ -296,14 +296,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `RemediationsClient.RemediationsListDeploymentsAtManagementGroup` +### Example Usage: `RemediationsClient.ListDeploymentsAtManagementGroup` ```go ctx := context.TODO() id := remediations.NewProviders2RemediationID("managementGroupIdValue", "remediationValue") -// alternatively `client.RemediationsListDeploymentsAtManagementGroup(ctx, id, remediations.DefaultRemediationsListDeploymentsAtManagementGroupOperationOptions())` can be used to do batched pagination -items, err := client.RemediationsListDeploymentsAtManagementGroupComplete(ctx, id, remediations.DefaultRemediationsListDeploymentsAtManagementGroupOperationOptions()) +// alternatively `client.ListDeploymentsAtManagementGroup(ctx, id, remediations.DefaultListDeploymentsAtManagementGroupOperationOptions())` can be used to do batched pagination +items, err := client.ListDeploymentsAtManagementGroupComplete(ctx, id, remediations.DefaultListDeploymentsAtManagementGroupOperationOptions()) if err != nil { // handle the error } @@ -313,14 +313,14 @@ for _, item := range items { ``` -### Example Usage: `RemediationsClient.RemediationsListDeploymentsAtResource` +### Example Usage: `RemediationsClient.ListDeploymentsAtResource` ```go ctx := context.TODO() id := remediations.NewScopedRemediationID("/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/some-resource-group", "remediationValue") -// alternatively `client.RemediationsListDeploymentsAtResource(ctx, id, remediations.DefaultRemediationsListDeploymentsAtResourceOperationOptions())` can be used to do batched pagination -items, err := client.RemediationsListDeploymentsAtResourceComplete(ctx, id, remediations.DefaultRemediationsListDeploymentsAtResourceOperationOptions()) +// alternatively `client.ListDeploymentsAtResource(ctx, id, remediations.DefaultListDeploymentsAtResourceOperationOptions())` can be used to do batched pagination +items, err := client.ListDeploymentsAtResourceComplete(ctx, id, remediations.DefaultListDeploymentsAtResourceOperationOptions()) if err != nil { // handle the error } @@ -330,14 +330,14 @@ for _, item := range items { ``` -### Example Usage: `RemediationsClient.RemediationsListDeploymentsAtResourceGroup` +### Example Usage: `RemediationsClient.ListDeploymentsAtResourceGroup` ```go ctx := context.TODO() id := remediations.NewProviderRemediationID("12345678-1234-9876-4563-123456789012", "example-resource-group", "remediationValue") -// alternatively `client.RemediationsListDeploymentsAtResourceGroup(ctx, id, remediations.DefaultRemediationsListDeploymentsAtResourceGroupOperationOptions())` can be used to do batched pagination -items, err := client.RemediationsListDeploymentsAtResourceGroupComplete(ctx, id, remediations.DefaultRemediationsListDeploymentsAtResourceGroupOperationOptions()) +// alternatively `client.ListDeploymentsAtResourceGroup(ctx, id, remediations.DefaultListDeploymentsAtResourceGroupOperationOptions())` can be used to do batched pagination +items, err := client.ListDeploymentsAtResourceGroupComplete(ctx, id, remediations.DefaultListDeploymentsAtResourceGroupOperationOptions()) if err != nil { // handle the error } @@ -347,14 +347,14 @@ for _, item := range items { ``` -### Example Usage: `RemediationsClient.RemediationsListDeploymentsAtSubscription` +### Example Usage: `RemediationsClient.ListDeploymentsAtSubscription` ```go ctx := context.TODO() id := remediations.NewRemediationID("12345678-1234-9876-4563-123456789012", "remediationValue") -// alternatively `client.RemediationsListDeploymentsAtSubscription(ctx, id, remediations.DefaultRemediationsListDeploymentsAtSubscriptionOperationOptions())` can be used to do batched pagination -items, err := client.RemediationsListDeploymentsAtSubscriptionComplete(ctx, id, remediations.DefaultRemediationsListDeploymentsAtSubscriptionOperationOptions()) +// alternatively `client.ListDeploymentsAtSubscription(ctx, id, remediations.DefaultListDeploymentsAtSubscriptionOperationOptions())` can be used to do batched pagination +items, err := client.ListDeploymentsAtSubscriptionComplete(ctx, id, remediations.DefaultListDeploymentsAtSubscriptionOperationOptions()) if err != nil { // handle the error } @@ -364,14 +364,14 @@ for _, item := range items { ``` -### Example Usage: `RemediationsClient.RemediationsListForManagementGroup` +### Example Usage: `RemediationsClient.ListForManagementGroup` ```go ctx := context.TODO() id := remediations.NewManagementGroupID("managementGroupIdValue") -// alternatively `client.RemediationsListForManagementGroup(ctx, id, remediations.DefaultRemediationsListForManagementGroupOperationOptions())` can be used to do batched pagination -items, err := client.RemediationsListForManagementGroupComplete(ctx, id, remediations.DefaultRemediationsListForManagementGroupOperationOptions()) +// alternatively `client.ListForManagementGroup(ctx, id, remediations.DefaultListForManagementGroupOperationOptions())` can be used to do batched pagination +items, err := client.ListForManagementGroupComplete(ctx, id, remediations.DefaultListForManagementGroupOperationOptions()) if err != nil { // handle the error } @@ -381,14 +381,14 @@ for _, item := range items { ``` -### Example Usage: `RemediationsClient.RemediationsListForResource` +### Example Usage: `RemediationsClient.ListForResource` ```go ctx := context.TODO() id := remediations.NewScopeID("/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/some-resource-group") -// alternatively `client.RemediationsListForResource(ctx, id, remediations.DefaultRemediationsListForResourceOperationOptions())` can be used to do batched pagination -items, err := client.RemediationsListForResourceComplete(ctx, id, remediations.DefaultRemediationsListForResourceOperationOptions()) +// alternatively `client.ListForResource(ctx, id, remediations.DefaultListForResourceOperationOptions())` can be used to do batched pagination +items, err := client.ListForResourceComplete(ctx, id, remediations.DefaultListForResourceOperationOptions()) if err != nil { // handle the error } @@ -398,14 +398,14 @@ for _, item := range items { ``` -### Example Usage: `RemediationsClient.RemediationsListForResourceGroup` +### Example Usage: `RemediationsClient.ListForResourceGroup` ```go ctx := context.TODO() id := remediations.NewResourceGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group") -// alternatively `client.RemediationsListForResourceGroup(ctx, id, remediations.DefaultRemediationsListForResourceGroupOperationOptions())` can be used to do batched pagination -items, err := client.RemediationsListForResourceGroupComplete(ctx, id, remediations.DefaultRemediationsListForResourceGroupOperationOptions()) +// alternatively `client.ListForResourceGroup(ctx, id, remediations.DefaultListForResourceGroupOperationOptions())` can be used to do batched pagination +items, err := client.ListForResourceGroupComplete(ctx, id, remediations.DefaultListForResourceGroupOperationOptions()) if err != nil { // handle the error } @@ -415,14 +415,14 @@ for _, item := range items { ``` -### Example Usage: `RemediationsClient.RemediationsListForSubscription` +### Example Usage: `RemediationsClient.ListForSubscription` ```go ctx := context.TODO() id := remediations.NewSubscriptionID("12345678-1234-9876-4563-123456789012") -// alternatively `client.RemediationsListForSubscription(ctx, id, remediations.DefaultRemediationsListForSubscriptionOperationOptions())` can be used to do batched pagination -items, err := client.RemediationsListForSubscriptionComplete(ctx, id, remediations.DefaultRemediationsListForSubscriptionOperationOptions()) +// alternatively `client.ListForSubscription(ctx, id, remediations.DefaultListForSubscriptionOperationOptions())` can be used to do batched pagination +items, err := client.ListForSubscriptionComplete(ctx, id, remediations.DefaultListForSubscriptionOperationOptions()) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscancelatresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_cancelatmanagementgroup.go similarity index 78% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscancelatresource.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_cancelatmanagementgroup.go index 4defe87de5ee..135aa5e01332 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscancelatresource.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_cancelatmanagementgroup.go @@ -12,14 +12,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsCancelAtResourceOperationResponse struct { +type CancelAtManagementGroupOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Remediation } -// RemediationsCancelAtResource ... -func (c RemediationsClient) RemediationsCancelAtResource(ctx context.Context, id ScopedRemediationId) (result RemediationsCancelAtResourceOperationResponse, err error) { +// CancelAtManagementGroup ... +func (c RemediationsClient) CancelAtManagementGroup(ctx context.Context, id Providers2RemediationId) (result CancelAtManagementGroupOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscancelatsubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_cancelatresource.go similarity index 77% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscancelatsubscription.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_cancelatresource.go index 0ce774fd0a8c..328dee540603 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscancelatsubscription.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_cancelatresource.go @@ -12,14 +12,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsCancelAtSubscriptionOperationResponse struct { +type CancelAtResourceOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Remediation } -// RemediationsCancelAtSubscription ... -func (c RemediationsClient) RemediationsCancelAtSubscription(ctx context.Context, id RemediationId) (result RemediationsCancelAtSubscriptionOperationResponse, err error) { +// CancelAtResource ... +func (c RemediationsClient) CancelAtResource(ctx context.Context, id ScopedRemediationId) (result CancelAtResourceOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscancelatresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_cancelatresourcegroup.go similarity index 76% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscancelatresourcegroup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_cancelatresourcegroup.go index dbf123dcdf1a..c5a49acf3f2e 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscancelatresourcegroup.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_cancelatresourcegroup.go @@ -12,14 +12,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsCancelAtResourceGroupOperationResponse struct { +type CancelAtResourceGroupOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Remediation } -// RemediationsCancelAtResourceGroup ... -func (c RemediationsClient) RemediationsCancelAtResourceGroup(ctx context.Context, id ProviderRemediationId) (result RemediationsCancelAtResourceGroupOperationResponse, err error) { +// CancelAtResourceGroup ... +func (c RemediationsClient) CancelAtResourceGroup(ctx context.Context, id ProviderRemediationId) (result CancelAtResourceGroupOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscancelatmanagementgroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_cancelatsubscription.go similarity index 76% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscancelatmanagementgroup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_cancelatsubscription.go index 0f7ed29ec7a1..3d80ffc91939 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscancelatmanagementgroup.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_cancelatsubscription.go @@ -12,14 +12,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsCancelAtManagementGroupOperationResponse struct { +type CancelAtSubscriptionOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Remediation } -// RemediationsCancelAtManagementGroup ... -func (c RemediationsClient) RemediationsCancelAtManagementGroup(ctx context.Context, id Providers2RemediationId) (result RemediationsCancelAtManagementGroupOperationResponse, err error) { +// CancelAtSubscription ... +func (c RemediationsClient) CancelAtSubscription(ctx context.Context, id RemediationId) (result CancelAtSubscriptionOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscreateorupdateatresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_createorupdateatmanagementgroup.go similarity index 75% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscreateorupdateatresource.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_createorupdateatmanagementgroup.go index e3c6a4337ec1..30dc891b0ad1 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscreateorupdateatresource.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_createorupdateatmanagementgroup.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsCreateOrUpdateAtResourceOperationResponse struct { +type CreateOrUpdateAtManagementGroupOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Remediation } -// RemediationsCreateOrUpdateAtResource ... -func (c RemediationsClient) RemediationsCreateOrUpdateAtResource(ctx context.Context, id ScopedRemediationId, input Remediation) (result RemediationsCreateOrUpdateAtResourceOperationResponse, err error) { +// CreateOrUpdateAtManagementGroup ... +func (c RemediationsClient) CreateOrUpdateAtManagementGroup(ctx context.Context, id Providers2RemediationId, input Remediation) (result CreateOrUpdateAtManagementGroupOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscreateorupdateatsubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_createorupdateatresource.go similarity index 75% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscreateorupdateatsubscription.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_createorupdateatresource.go index 399e40a866f2..688e66b10843 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscreateorupdateatsubscription.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_createorupdateatresource.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsCreateOrUpdateAtSubscriptionOperationResponse struct { +type CreateOrUpdateAtResourceOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Remediation } -// RemediationsCreateOrUpdateAtSubscription ... -func (c RemediationsClient) RemediationsCreateOrUpdateAtSubscription(ctx context.Context, id RemediationId, input Remediation) (result RemediationsCreateOrUpdateAtSubscriptionOperationResponse, err error) { +// CreateOrUpdateAtResource ... +func (c RemediationsClient) CreateOrUpdateAtResource(ctx context.Context, id ScopedRemediationId, input Remediation) (result CreateOrUpdateAtResourceOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscreateorupdateatresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_createorupdateatresourcegroup.go similarity index 74% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscreateorupdateatresourcegroup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_createorupdateatresourcegroup.go index fc1f6a9254ed..5f6979cee6ed 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscreateorupdateatresourcegroup.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_createorupdateatresourcegroup.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsCreateOrUpdateAtResourceGroupOperationResponse struct { +type CreateOrUpdateAtResourceGroupOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Remediation } -// RemediationsCreateOrUpdateAtResourceGroup ... -func (c RemediationsClient) RemediationsCreateOrUpdateAtResourceGroup(ctx context.Context, id ProviderRemediationId, input Remediation) (result RemediationsCreateOrUpdateAtResourceGroupOperationResponse, err error) { +// CreateOrUpdateAtResourceGroup ... +func (c RemediationsClient) CreateOrUpdateAtResourceGroup(ctx context.Context, id ProviderRemediationId, input Remediation) (result CreateOrUpdateAtResourceGroupOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_createorupdateatsubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_createorupdateatsubscription.go new file mode 100644 index 000000000000..23a52495677b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_createorupdateatsubscription.go @@ -0,0 +1,56 @@ +package remediations + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateAtSubscriptionOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Remediation +} + +// CreateOrUpdateAtSubscription ... +func (c RemediationsClient) CreateOrUpdateAtSubscription(ctx context.Context, id RemediationId, input Remediation) (result CreateOrUpdateAtSubscriptionOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsdeleteatresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_deleteatmanagementgroup.go similarity index 77% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsdeleteatresource.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_deleteatmanagementgroup.go index d6d9de1af2bd..a8094bbe226f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsdeleteatresource.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_deleteatmanagementgroup.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsDeleteAtResourceOperationResponse struct { +type DeleteAtManagementGroupOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Remediation } -// RemediationsDeleteAtResource ... -func (c RemediationsClient) RemediationsDeleteAtResource(ctx context.Context, id ScopedRemediationId) (result RemediationsDeleteAtResourceOperationResponse, err error) { +// DeleteAtManagementGroup ... +func (c RemediationsClient) DeleteAtManagementGroup(ctx context.Context, id Providers2RemediationId) (result DeleteAtManagementGroupOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsdeleteatsubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_deleteatresource.go similarity index 77% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsdeleteatsubscription.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_deleteatresource.go index 17fcfe4cd89f..c878dc6ccf62 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsdeleteatsubscription.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_deleteatresource.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsDeleteAtSubscriptionOperationResponse struct { +type DeleteAtResourceOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Remediation } -// RemediationsDeleteAtSubscription ... -func (c RemediationsClient) RemediationsDeleteAtSubscription(ctx context.Context, id RemediationId) (result RemediationsDeleteAtSubscriptionOperationResponse, err error) { +// DeleteAtResource ... +func (c RemediationsClient) DeleteAtResource(ctx context.Context, id ScopedRemediationId) (result DeleteAtResourceOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsdeleteatresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_deleteatresourcegroup.go similarity index 76% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsdeleteatresourcegroup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_deleteatresourcegroup.go index 9b6a3f46c001..58ae370e9626 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsdeleteatresourcegroup.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_deleteatresourcegroup.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsDeleteAtResourceGroupOperationResponse struct { +type DeleteAtResourceGroupOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Remediation } -// RemediationsDeleteAtResourceGroup ... -func (c RemediationsClient) RemediationsDeleteAtResourceGroup(ctx context.Context, id ProviderRemediationId) (result RemediationsDeleteAtResourceGroupOperationResponse, err error) { +// DeleteAtResourceGroup ... +func (c RemediationsClient) DeleteAtResourceGroup(ctx context.Context, id ProviderRemediationId) (result DeleteAtResourceGroupOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsdeleteatmanagementgroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_deleteatsubscription.go similarity index 75% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsdeleteatmanagementgroup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_deleteatsubscription.go index d6e4e4e743a9..2aa83df7637f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsdeleteatmanagementgroup.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_deleteatsubscription.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsDeleteAtManagementGroupOperationResponse struct { +type DeleteAtSubscriptionOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Remediation } -// RemediationsDeleteAtManagementGroup ... -func (c RemediationsClient) RemediationsDeleteAtManagementGroup(ctx context.Context, id Providers2RemediationId) (result RemediationsDeleteAtManagementGroupOperationResponse, err error) { +// DeleteAtSubscription ... +func (c RemediationsClient) DeleteAtSubscription(ctx context.Context, id RemediationId) (result DeleteAtSubscriptionOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsgetatresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_getatmanagementgroup.go similarity index 78% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsgetatresource.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_getatmanagementgroup.go index 32ca6b86c653..265bb83d1082 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsgetatresource.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_getatmanagementgroup.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsGetAtResourceOperationResponse struct { +type GetAtManagementGroupOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Remediation } -// RemediationsGetAtResource ... -func (c RemediationsClient) RemediationsGetAtResource(ctx context.Context, id ScopedRemediationId) (result RemediationsGetAtResourceOperationResponse, err error) { +// GetAtManagementGroup ... +func (c RemediationsClient) GetAtManagementGroup(ctx context.Context, id Providers2RemediationId) (result GetAtManagementGroupOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsgetatsubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_getatresource.go similarity index 77% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsgetatsubscription.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_getatresource.go index 09a9b7ba0405..a3516fb09142 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsgetatsubscription.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_getatresource.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsGetAtSubscriptionOperationResponse struct { +type GetAtResourceOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Remediation } -// RemediationsGetAtSubscription ... -func (c RemediationsClient) RemediationsGetAtSubscription(ctx context.Context, id RemediationId) (result RemediationsGetAtSubscriptionOperationResponse, err error) { +// GetAtResource ... +func (c RemediationsClient) GetAtResource(ctx context.Context, id ScopedRemediationId) (result GetAtResourceOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsgetatresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_getatresourcegroup.go similarity index 76% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsgetatresourcegroup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_getatresourcegroup.go index ec5db9efb7e5..504bae2db8c4 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsgetatresourcegroup.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_getatresourcegroup.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsGetAtResourceGroupOperationResponse struct { +type GetAtResourceGroupOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *Remediation } -// RemediationsGetAtResourceGroup ... -func (c RemediationsClient) RemediationsGetAtResourceGroup(ctx context.Context, id ProviderRemediationId) (result RemediationsGetAtResourceGroupOperationResponse, err error) { +// GetAtResourceGroup ... +func (c RemediationsClient) GetAtResourceGroup(ctx context.Context, id ProviderRemediationId) (result GetAtResourceGroupOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_getatsubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_getatsubscription.go new file mode 100644 index 000000000000..aa899a87fb9d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_getatsubscription.go @@ -0,0 +1,51 @@ +package remediations + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetAtSubscriptionOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Remediation +} + +// GetAtSubscription ... +func (c RemediationsClient) GetAtSubscription(ctx context.Context, id RemediationId) (result GetAtSubscriptionOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatmanagementgroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatmanagementgroup.go new file mode 100644 index 000000000000..23132d7fa9a3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatmanagementgroup.go @@ -0,0 +1,117 @@ +package remediations + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListDeploymentsAtManagementGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]RemediationDeployment +} + +type ListDeploymentsAtManagementGroupCompleteResult struct { + Items []RemediationDeployment +} + +type ListDeploymentsAtManagementGroupOperationOptions struct { + Top *int64 +} + +func DefaultListDeploymentsAtManagementGroupOperationOptions() ListDeploymentsAtManagementGroupOperationOptions { + return ListDeploymentsAtManagementGroupOperationOptions{} +} + +func (o ListDeploymentsAtManagementGroupOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o ListDeploymentsAtManagementGroupOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o ListDeploymentsAtManagementGroupOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.Top != nil { + out.Append("$top", fmt.Sprintf("%v", *o.Top)) + } + return &out +} + +// ListDeploymentsAtManagementGroup ... +func (c RemediationsClient) ListDeploymentsAtManagementGroup(ctx context.Context, id Providers2RemediationId, options ListDeploymentsAtManagementGroupOperationOptions) (result ListDeploymentsAtManagementGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/listDeployments", id.ID()), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]RemediationDeployment `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListDeploymentsAtManagementGroupComplete retrieves all the results into a single object +func (c RemediationsClient) ListDeploymentsAtManagementGroupComplete(ctx context.Context, id Providers2RemediationId, options ListDeploymentsAtManagementGroupOperationOptions) (ListDeploymentsAtManagementGroupCompleteResult, error) { + return c.ListDeploymentsAtManagementGroupCompleteMatchingPredicate(ctx, id, options, RemediationDeploymentOperationPredicate{}) +} + +// ListDeploymentsAtManagementGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c RemediationsClient) ListDeploymentsAtManagementGroupCompleteMatchingPredicate(ctx context.Context, id Providers2RemediationId, options ListDeploymentsAtManagementGroupOperationOptions, predicate RemediationDeploymentOperationPredicate) (result ListDeploymentsAtManagementGroupCompleteResult, err error) { + items := make([]RemediationDeployment, 0) + + resp, err := c.ListDeploymentsAtManagementGroup(ctx, id, options) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListDeploymentsAtManagementGroupCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatresource.go new file mode 100644 index 000000000000..2f1bc1c7f1a3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatresource.go @@ -0,0 +1,117 @@ +package remediations + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListDeploymentsAtResourceOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]RemediationDeployment +} + +type ListDeploymentsAtResourceCompleteResult struct { + Items []RemediationDeployment +} + +type ListDeploymentsAtResourceOperationOptions struct { + Top *int64 +} + +func DefaultListDeploymentsAtResourceOperationOptions() ListDeploymentsAtResourceOperationOptions { + return ListDeploymentsAtResourceOperationOptions{} +} + +func (o ListDeploymentsAtResourceOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o ListDeploymentsAtResourceOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o ListDeploymentsAtResourceOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.Top != nil { + out.Append("$top", fmt.Sprintf("%v", *o.Top)) + } + return &out +} + +// ListDeploymentsAtResource ... +func (c RemediationsClient) ListDeploymentsAtResource(ctx context.Context, id ScopedRemediationId, options ListDeploymentsAtResourceOperationOptions) (result ListDeploymentsAtResourceOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/listDeployments", id.ID()), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]RemediationDeployment `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListDeploymentsAtResourceComplete retrieves all the results into a single object +func (c RemediationsClient) ListDeploymentsAtResourceComplete(ctx context.Context, id ScopedRemediationId, options ListDeploymentsAtResourceOperationOptions) (ListDeploymentsAtResourceCompleteResult, error) { + return c.ListDeploymentsAtResourceCompleteMatchingPredicate(ctx, id, options, RemediationDeploymentOperationPredicate{}) +} + +// ListDeploymentsAtResourceCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c RemediationsClient) ListDeploymentsAtResourceCompleteMatchingPredicate(ctx context.Context, id ScopedRemediationId, options ListDeploymentsAtResourceOperationOptions, predicate RemediationDeploymentOperationPredicate) (result ListDeploymentsAtResourceCompleteResult, err error) { + items := make([]RemediationDeployment, 0) + + resp, err := c.ListDeploymentsAtResource(ctx, id, options) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListDeploymentsAtResourceCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatresourcegroup.go new file mode 100644 index 000000000000..6a0c5d01a041 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatresourcegroup.go @@ -0,0 +1,117 @@ +package remediations + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListDeploymentsAtResourceGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]RemediationDeployment +} + +type ListDeploymentsAtResourceGroupCompleteResult struct { + Items []RemediationDeployment +} + +type ListDeploymentsAtResourceGroupOperationOptions struct { + Top *int64 +} + +func DefaultListDeploymentsAtResourceGroupOperationOptions() ListDeploymentsAtResourceGroupOperationOptions { + return ListDeploymentsAtResourceGroupOperationOptions{} +} + +func (o ListDeploymentsAtResourceGroupOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o ListDeploymentsAtResourceGroupOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o ListDeploymentsAtResourceGroupOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.Top != nil { + out.Append("$top", fmt.Sprintf("%v", *o.Top)) + } + return &out +} + +// ListDeploymentsAtResourceGroup ... +func (c RemediationsClient) ListDeploymentsAtResourceGroup(ctx context.Context, id ProviderRemediationId, options ListDeploymentsAtResourceGroupOperationOptions) (result ListDeploymentsAtResourceGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/listDeployments", id.ID()), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]RemediationDeployment `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListDeploymentsAtResourceGroupComplete retrieves all the results into a single object +func (c RemediationsClient) ListDeploymentsAtResourceGroupComplete(ctx context.Context, id ProviderRemediationId, options ListDeploymentsAtResourceGroupOperationOptions) (ListDeploymentsAtResourceGroupCompleteResult, error) { + return c.ListDeploymentsAtResourceGroupCompleteMatchingPredicate(ctx, id, options, RemediationDeploymentOperationPredicate{}) +} + +// ListDeploymentsAtResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c RemediationsClient) ListDeploymentsAtResourceGroupCompleteMatchingPredicate(ctx context.Context, id ProviderRemediationId, options ListDeploymentsAtResourceGroupOperationOptions, predicate RemediationDeploymentOperationPredicate) (result ListDeploymentsAtResourceGroupCompleteResult, err error) { + items := make([]RemediationDeployment, 0) + + resp, err := c.ListDeploymentsAtResourceGroup(ctx, id, options) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListDeploymentsAtResourceGroupCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatsubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatsubscription.go new file mode 100644 index 000000000000..6fd2a8f1eb4a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listdeploymentsatsubscription.go @@ -0,0 +1,117 @@ +package remediations + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListDeploymentsAtSubscriptionOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]RemediationDeployment +} + +type ListDeploymentsAtSubscriptionCompleteResult struct { + Items []RemediationDeployment +} + +type ListDeploymentsAtSubscriptionOperationOptions struct { + Top *int64 +} + +func DefaultListDeploymentsAtSubscriptionOperationOptions() ListDeploymentsAtSubscriptionOperationOptions { + return ListDeploymentsAtSubscriptionOperationOptions{} +} + +func (o ListDeploymentsAtSubscriptionOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o ListDeploymentsAtSubscriptionOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o ListDeploymentsAtSubscriptionOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.Top != nil { + out.Append("$top", fmt.Sprintf("%v", *o.Top)) + } + return &out +} + +// ListDeploymentsAtSubscription ... +func (c RemediationsClient) ListDeploymentsAtSubscription(ctx context.Context, id RemediationId, options ListDeploymentsAtSubscriptionOperationOptions) (result ListDeploymentsAtSubscriptionOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/listDeployments", id.ID()), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]RemediationDeployment `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListDeploymentsAtSubscriptionComplete retrieves all the results into a single object +func (c RemediationsClient) ListDeploymentsAtSubscriptionComplete(ctx context.Context, id RemediationId, options ListDeploymentsAtSubscriptionOperationOptions) (ListDeploymentsAtSubscriptionCompleteResult, error) { + return c.ListDeploymentsAtSubscriptionCompleteMatchingPredicate(ctx, id, options, RemediationDeploymentOperationPredicate{}) +} + +// ListDeploymentsAtSubscriptionCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c RemediationsClient) ListDeploymentsAtSubscriptionCompleteMatchingPredicate(ctx context.Context, id RemediationId, options ListDeploymentsAtSubscriptionOperationOptions, predicate RemediationDeploymentOperationPredicate) (result ListDeploymentsAtSubscriptionCompleteResult, err error) { + items := make([]RemediationDeployment, 0) + + resp, err := c.ListDeploymentsAtSubscription(ctx, id, options) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListDeploymentsAtSubscriptionCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listformanagementgroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listformanagementgroup.go new file mode 100644 index 000000000000..dac0700aeb0c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listformanagementgroup.go @@ -0,0 +1,121 @@ +package remediations + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListForManagementGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]Remediation +} + +type ListForManagementGroupCompleteResult struct { + Items []Remediation +} + +type ListForManagementGroupOperationOptions struct { + Filter *string + Top *int64 +} + +func DefaultListForManagementGroupOperationOptions() ListForManagementGroupOperationOptions { + return ListForManagementGroupOperationOptions{} +} + +func (o ListForManagementGroupOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o ListForManagementGroupOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o ListForManagementGroupOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.Filter != nil { + out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) + } + if o.Top != nil { + out.Append("$top", fmt.Sprintf("%v", *o.Top)) + } + return &out +} + +// ListForManagementGroup ... +func (c RemediationsClient) ListForManagementGroup(ctx context.Context, id ManagementGroupId, options ListForManagementGroupOperationOptions) (result ListForManagementGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.PolicyInsights/remediations", id.ID()), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]Remediation `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListForManagementGroupComplete retrieves all the results into a single object +func (c RemediationsClient) ListForManagementGroupComplete(ctx context.Context, id ManagementGroupId, options ListForManagementGroupOperationOptions) (ListForManagementGroupCompleteResult, error) { + return c.ListForManagementGroupCompleteMatchingPredicate(ctx, id, options, RemediationOperationPredicate{}) +} + +// ListForManagementGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c RemediationsClient) ListForManagementGroupCompleteMatchingPredicate(ctx context.Context, id ManagementGroupId, options ListForManagementGroupOperationOptions, predicate RemediationOperationPredicate) (result ListForManagementGroupCompleteResult, err error) { + items := make([]Remediation, 0) + + resp, err := c.ListForManagementGroup(ctx, id, options) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListForManagementGroupCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistforresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listforresource.go similarity index 50% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistforresource.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listforresource.go index b0b4bf29b9a7..74d6eeaae7bc 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistforresource.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listforresource.go @@ -13,37 +13,37 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type RemediationsListForResourceOperationResponse struct { +type ListForResourceOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]Remediation } -type RemediationsListForResourceCompleteResult struct { +type ListForResourceCompleteResult struct { Items []Remediation } -type RemediationsListForResourceOperationOptions struct { +type ListForResourceOperationOptions struct { Filter *string Top *int64 } -func DefaultRemediationsListForResourceOperationOptions() RemediationsListForResourceOperationOptions { - return RemediationsListForResourceOperationOptions{} +func DefaultListForResourceOperationOptions() ListForResourceOperationOptions { + return ListForResourceOperationOptions{} } -func (o RemediationsListForResourceOperationOptions) ToHeaders() *client.Headers { +func (o ListForResourceOperationOptions) ToHeaders() *client.Headers { out := client.Headers{} return &out } -func (o RemediationsListForResourceOperationOptions) ToOData() *odata.Query { +func (o ListForResourceOperationOptions) ToOData() *odata.Query { out := odata.Query{} return &out } -func (o RemediationsListForResourceOperationOptions) ToQuery() *client.QueryParams { +func (o ListForResourceOperationOptions) ToQuery() *client.QueryParams { out := client.QueryParams{} if o.Filter != nil { out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) @@ -54,8 +54,8 @@ func (o RemediationsListForResourceOperationOptions) ToQuery() *client.QueryPara return &out } -// RemediationsListForResource ... -func (c RemediationsClient) RemediationsListForResource(ctx context.Context, id commonids.ScopeId, options RemediationsListForResourceOperationOptions) (result RemediationsListForResourceOperationResponse, err error) { +// ListForResource ... +func (c RemediationsClient) ListForResource(ctx context.Context, id commonids.ScopeId, options ListForResourceOperationOptions) (result ListForResourceOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -93,16 +93,16 @@ func (c RemediationsClient) RemediationsListForResource(ctx context.Context, id return } -// RemediationsListForResourceComplete retrieves all the results into a single object -func (c RemediationsClient) RemediationsListForResourceComplete(ctx context.Context, id commonids.ScopeId, options RemediationsListForResourceOperationOptions) (RemediationsListForResourceCompleteResult, error) { - return c.RemediationsListForResourceCompleteMatchingPredicate(ctx, id, options, RemediationOperationPredicate{}) +// ListForResourceComplete retrieves all the results into a single object +func (c RemediationsClient) ListForResourceComplete(ctx context.Context, id commonids.ScopeId, options ListForResourceOperationOptions) (ListForResourceCompleteResult, error) { + return c.ListForResourceCompleteMatchingPredicate(ctx, id, options, RemediationOperationPredicate{}) } -// RemediationsListForResourceCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c RemediationsClient) RemediationsListForResourceCompleteMatchingPredicate(ctx context.Context, id commonids.ScopeId, options RemediationsListForResourceOperationOptions, predicate RemediationOperationPredicate) (result RemediationsListForResourceCompleteResult, err error) { +// ListForResourceCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c RemediationsClient) ListForResourceCompleteMatchingPredicate(ctx context.Context, id commonids.ScopeId, options ListForResourceOperationOptions, predicate RemediationOperationPredicate) (result ListForResourceCompleteResult, err error) { items := make([]Remediation, 0) - resp, err := c.RemediationsListForResource(ctx, id, options) + resp, err := c.ListForResource(ctx, id, options) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -115,7 +115,7 @@ func (c RemediationsClient) RemediationsListForResourceCompleteMatchingPredicate } } - result = RemediationsListForResourceCompleteResult{ + result = ListForResourceCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listforresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listforresourcegroup.go new file mode 100644 index 000000000000..6192757037e7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listforresourcegroup.go @@ -0,0 +1,122 @@ +package remediations + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListForResourceGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]Remediation +} + +type ListForResourceGroupCompleteResult struct { + Items []Remediation +} + +type ListForResourceGroupOperationOptions struct { + Filter *string + Top *int64 +} + +func DefaultListForResourceGroupOperationOptions() ListForResourceGroupOperationOptions { + return ListForResourceGroupOperationOptions{} +} + +func (o ListForResourceGroupOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o ListForResourceGroupOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o ListForResourceGroupOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.Filter != nil { + out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) + } + if o.Top != nil { + out.Append("$top", fmt.Sprintf("%v", *o.Top)) + } + return &out +} + +// ListForResourceGroup ... +func (c RemediationsClient) ListForResourceGroup(ctx context.Context, id commonids.ResourceGroupId, options ListForResourceGroupOperationOptions) (result ListForResourceGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.PolicyInsights/remediations", id.ID()), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]Remediation `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListForResourceGroupComplete retrieves all the results into a single object +func (c RemediationsClient) ListForResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId, options ListForResourceGroupOperationOptions) (ListForResourceGroupCompleteResult, error) { + return c.ListForResourceGroupCompleteMatchingPredicate(ctx, id, options, RemediationOperationPredicate{}) +} + +// ListForResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c RemediationsClient) ListForResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, options ListForResourceGroupOperationOptions, predicate RemediationOperationPredicate) (result ListForResourceGroupCompleteResult, err error) { + items := make([]Remediation, 0) + + resp, err := c.ListForResourceGroup(ctx, id, options) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListForResourceGroupCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listforsubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listforsubscription.go new file mode 100644 index 000000000000..d9e71bb97a88 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_listforsubscription.go @@ -0,0 +1,122 @@ +package remediations + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListForSubscriptionOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]Remediation +} + +type ListForSubscriptionCompleteResult struct { + Items []Remediation +} + +type ListForSubscriptionOperationOptions struct { + Filter *string + Top *int64 +} + +func DefaultListForSubscriptionOperationOptions() ListForSubscriptionOperationOptions { + return ListForSubscriptionOperationOptions{} +} + +func (o ListForSubscriptionOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o ListForSubscriptionOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o ListForSubscriptionOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.Filter != nil { + out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) + } + if o.Top != nil { + out.Append("$top", fmt.Sprintf("%v", *o.Top)) + } + return &out +} + +// ListForSubscription ... +func (c RemediationsClient) ListForSubscription(ctx context.Context, id commonids.SubscriptionId, options ListForSubscriptionOperationOptions) (result ListForSubscriptionOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.PolicyInsights/remediations", id.ID()), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]Remediation `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListForSubscriptionComplete retrieves all the results into a single object +func (c RemediationsClient) ListForSubscriptionComplete(ctx context.Context, id commonids.SubscriptionId, options ListForSubscriptionOperationOptions) (ListForSubscriptionCompleteResult, error) { + return c.ListForSubscriptionCompleteMatchingPredicate(ctx, id, options, RemediationOperationPredicate{}) +} + +// ListForSubscriptionCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c RemediationsClient) ListForSubscriptionCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, options ListForSubscriptionOperationOptions, predicate RemediationOperationPredicate) (result ListForSubscriptionCompleteResult, err error) { + items := make([]Remediation, 0) + + resp, err := c.ListForSubscription(ctx, id, options) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListForSubscriptionCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscreateorupdateatmanagementgroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscreateorupdateatmanagementgroup.go deleted file mode 100644 index 7d1fedb7645c..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationscreateorupdateatmanagementgroup.go +++ /dev/null @@ -1,56 +0,0 @@ -package remediations - -import ( - "context" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type RemediationsCreateOrUpdateAtManagementGroupOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *Remediation -} - -// RemediationsCreateOrUpdateAtManagementGroup ... -func (c RemediationsClient) RemediationsCreateOrUpdateAtManagementGroup(ctx context.Context, id Providers2RemediationId, input Remediation) (result RemediationsCreateOrUpdateAtManagementGroupOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusCreated, - http.StatusOK, - }, - HttpMethod: http.MethodPut, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - if err = req.Marshal(input); err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - if err = resp.Unmarshal(&result.Model); err != nil { - return - } - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsgetatmanagementgroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsgetatmanagementgroup.go deleted file mode 100644 index 77017b8788b9..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationsgetatmanagementgroup.go +++ /dev/null @@ -1,51 +0,0 @@ -package remediations - -import ( - "context" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type RemediationsGetAtManagementGroupOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *Remediation -} - -// RemediationsGetAtManagementGroup ... -func (c RemediationsClient) RemediationsGetAtManagementGroup(ctx context.Context, id Providers2RemediationId) (result RemediationsGetAtManagementGroupOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodGet, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - if err = resp.Unmarshal(&result.Model); err != nil { - return - } - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatmanagementgroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatmanagementgroup.go deleted file mode 100644 index 9589d6976355..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatmanagementgroup.go +++ /dev/null @@ -1,117 +0,0 @@ -package remediations - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type RemediationsListDeploymentsAtManagementGroupOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *[]RemediationDeployment -} - -type RemediationsListDeploymentsAtManagementGroupCompleteResult struct { - Items []RemediationDeployment -} - -type RemediationsListDeploymentsAtManagementGroupOperationOptions struct { - Top *int64 -} - -func DefaultRemediationsListDeploymentsAtManagementGroupOperationOptions() RemediationsListDeploymentsAtManagementGroupOperationOptions { - return RemediationsListDeploymentsAtManagementGroupOperationOptions{} -} - -func (o RemediationsListDeploymentsAtManagementGroupOperationOptions) ToHeaders() *client.Headers { - out := client.Headers{} - - return &out -} - -func (o RemediationsListDeploymentsAtManagementGroupOperationOptions) ToOData() *odata.Query { - out := odata.Query{} - return &out -} - -func (o RemediationsListDeploymentsAtManagementGroupOperationOptions) ToQuery() *client.QueryParams { - out := client.QueryParams{} - if o.Top != nil { - out.Append("$top", fmt.Sprintf("%v", *o.Top)) - } - return &out -} - -// RemediationsListDeploymentsAtManagementGroup ... -func (c RemediationsClient) RemediationsListDeploymentsAtManagementGroup(ctx context.Context, id Providers2RemediationId, options RemediationsListDeploymentsAtManagementGroupOperationOptions) (result RemediationsListDeploymentsAtManagementGroupOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodPost, - Path: fmt.Sprintf("%s/listDeployments", id.ID()), - OptionsObject: options, - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.ExecutePaged(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - var values struct { - Values *[]RemediationDeployment `json:"value"` - } - if err = resp.Unmarshal(&values); err != nil { - return - } - - result.Model = values.Values - - return -} - -// RemediationsListDeploymentsAtManagementGroupComplete retrieves all the results into a single object -func (c RemediationsClient) RemediationsListDeploymentsAtManagementGroupComplete(ctx context.Context, id Providers2RemediationId, options RemediationsListDeploymentsAtManagementGroupOperationOptions) (RemediationsListDeploymentsAtManagementGroupCompleteResult, error) { - return c.RemediationsListDeploymentsAtManagementGroupCompleteMatchingPredicate(ctx, id, options, RemediationDeploymentOperationPredicate{}) -} - -// RemediationsListDeploymentsAtManagementGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c RemediationsClient) RemediationsListDeploymentsAtManagementGroupCompleteMatchingPredicate(ctx context.Context, id Providers2RemediationId, options RemediationsListDeploymentsAtManagementGroupOperationOptions, predicate RemediationDeploymentOperationPredicate) (result RemediationsListDeploymentsAtManagementGroupCompleteResult, err error) { - items := make([]RemediationDeployment, 0) - - resp, err := c.RemediationsListDeploymentsAtManagementGroup(ctx, id, options) - if err != nil { - err = fmt.Errorf("loading results: %+v", err) - return - } - if resp.Model != nil { - for _, v := range *resp.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - result = RemediationsListDeploymentsAtManagementGroupCompleteResult{ - Items: items, - } - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatresource.go deleted file mode 100644 index 1b65da6fce03..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatresource.go +++ /dev/null @@ -1,117 +0,0 @@ -package remediations - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type RemediationsListDeploymentsAtResourceOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *[]RemediationDeployment -} - -type RemediationsListDeploymentsAtResourceCompleteResult struct { - Items []RemediationDeployment -} - -type RemediationsListDeploymentsAtResourceOperationOptions struct { - Top *int64 -} - -func DefaultRemediationsListDeploymentsAtResourceOperationOptions() RemediationsListDeploymentsAtResourceOperationOptions { - return RemediationsListDeploymentsAtResourceOperationOptions{} -} - -func (o RemediationsListDeploymentsAtResourceOperationOptions) ToHeaders() *client.Headers { - out := client.Headers{} - - return &out -} - -func (o RemediationsListDeploymentsAtResourceOperationOptions) ToOData() *odata.Query { - out := odata.Query{} - return &out -} - -func (o RemediationsListDeploymentsAtResourceOperationOptions) ToQuery() *client.QueryParams { - out := client.QueryParams{} - if o.Top != nil { - out.Append("$top", fmt.Sprintf("%v", *o.Top)) - } - return &out -} - -// RemediationsListDeploymentsAtResource ... -func (c RemediationsClient) RemediationsListDeploymentsAtResource(ctx context.Context, id ScopedRemediationId, options RemediationsListDeploymentsAtResourceOperationOptions) (result RemediationsListDeploymentsAtResourceOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodPost, - Path: fmt.Sprintf("%s/listDeployments", id.ID()), - OptionsObject: options, - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.ExecutePaged(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - var values struct { - Values *[]RemediationDeployment `json:"value"` - } - if err = resp.Unmarshal(&values); err != nil { - return - } - - result.Model = values.Values - - return -} - -// RemediationsListDeploymentsAtResourceComplete retrieves all the results into a single object -func (c RemediationsClient) RemediationsListDeploymentsAtResourceComplete(ctx context.Context, id ScopedRemediationId, options RemediationsListDeploymentsAtResourceOperationOptions) (RemediationsListDeploymentsAtResourceCompleteResult, error) { - return c.RemediationsListDeploymentsAtResourceCompleteMatchingPredicate(ctx, id, options, RemediationDeploymentOperationPredicate{}) -} - -// RemediationsListDeploymentsAtResourceCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c RemediationsClient) RemediationsListDeploymentsAtResourceCompleteMatchingPredicate(ctx context.Context, id ScopedRemediationId, options RemediationsListDeploymentsAtResourceOperationOptions, predicate RemediationDeploymentOperationPredicate) (result RemediationsListDeploymentsAtResourceCompleteResult, err error) { - items := make([]RemediationDeployment, 0) - - resp, err := c.RemediationsListDeploymentsAtResource(ctx, id, options) - if err != nil { - err = fmt.Errorf("loading results: %+v", err) - return - } - if resp.Model != nil { - for _, v := range *resp.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - result = RemediationsListDeploymentsAtResourceCompleteResult{ - Items: items, - } - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatresourcegroup.go deleted file mode 100644 index 0363599de49d..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatresourcegroup.go +++ /dev/null @@ -1,117 +0,0 @@ -package remediations - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type RemediationsListDeploymentsAtResourceGroupOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *[]RemediationDeployment -} - -type RemediationsListDeploymentsAtResourceGroupCompleteResult struct { - Items []RemediationDeployment -} - -type RemediationsListDeploymentsAtResourceGroupOperationOptions struct { - Top *int64 -} - -func DefaultRemediationsListDeploymentsAtResourceGroupOperationOptions() RemediationsListDeploymentsAtResourceGroupOperationOptions { - return RemediationsListDeploymentsAtResourceGroupOperationOptions{} -} - -func (o RemediationsListDeploymentsAtResourceGroupOperationOptions) ToHeaders() *client.Headers { - out := client.Headers{} - - return &out -} - -func (o RemediationsListDeploymentsAtResourceGroupOperationOptions) ToOData() *odata.Query { - out := odata.Query{} - return &out -} - -func (o RemediationsListDeploymentsAtResourceGroupOperationOptions) ToQuery() *client.QueryParams { - out := client.QueryParams{} - if o.Top != nil { - out.Append("$top", fmt.Sprintf("%v", *o.Top)) - } - return &out -} - -// RemediationsListDeploymentsAtResourceGroup ... -func (c RemediationsClient) RemediationsListDeploymentsAtResourceGroup(ctx context.Context, id ProviderRemediationId, options RemediationsListDeploymentsAtResourceGroupOperationOptions) (result RemediationsListDeploymentsAtResourceGroupOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodPost, - Path: fmt.Sprintf("%s/listDeployments", id.ID()), - OptionsObject: options, - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.ExecutePaged(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - var values struct { - Values *[]RemediationDeployment `json:"value"` - } - if err = resp.Unmarshal(&values); err != nil { - return - } - - result.Model = values.Values - - return -} - -// RemediationsListDeploymentsAtResourceGroupComplete retrieves all the results into a single object -func (c RemediationsClient) RemediationsListDeploymentsAtResourceGroupComplete(ctx context.Context, id ProviderRemediationId, options RemediationsListDeploymentsAtResourceGroupOperationOptions) (RemediationsListDeploymentsAtResourceGroupCompleteResult, error) { - return c.RemediationsListDeploymentsAtResourceGroupCompleteMatchingPredicate(ctx, id, options, RemediationDeploymentOperationPredicate{}) -} - -// RemediationsListDeploymentsAtResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c RemediationsClient) RemediationsListDeploymentsAtResourceGroupCompleteMatchingPredicate(ctx context.Context, id ProviderRemediationId, options RemediationsListDeploymentsAtResourceGroupOperationOptions, predicate RemediationDeploymentOperationPredicate) (result RemediationsListDeploymentsAtResourceGroupCompleteResult, err error) { - items := make([]RemediationDeployment, 0) - - resp, err := c.RemediationsListDeploymentsAtResourceGroup(ctx, id, options) - if err != nil { - err = fmt.Errorf("loading results: %+v", err) - return - } - if resp.Model != nil { - for _, v := range *resp.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - result = RemediationsListDeploymentsAtResourceGroupCompleteResult{ - Items: items, - } - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatsubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatsubscription.go deleted file mode 100644 index 09aa9970799c..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistdeploymentsatsubscription.go +++ /dev/null @@ -1,117 +0,0 @@ -package remediations - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type RemediationsListDeploymentsAtSubscriptionOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *[]RemediationDeployment -} - -type RemediationsListDeploymentsAtSubscriptionCompleteResult struct { - Items []RemediationDeployment -} - -type RemediationsListDeploymentsAtSubscriptionOperationOptions struct { - Top *int64 -} - -func DefaultRemediationsListDeploymentsAtSubscriptionOperationOptions() RemediationsListDeploymentsAtSubscriptionOperationOptions { - return RemediationsListDeploymentsAtSubscriptionOperationOptions{} -} - -func (o RemediationsListDeploymentsAtSubscriptionOperationOptions) ToHeaders() *client.Headers { - out := client.Headers{} - - return &out -} - -func (o RemediationsListDeploymentsAtSubscriptionOperationOptions) ToOData() *odata.Query { - out := odata.Query{} - return &out -} - -func (o RemediationsListDeploymentsAtSubscriptionOperationOptions) ToQuery() *client.QueryParams { - out := client.QueryParams{} - if o.Top != nil { - out.Append("$top", fmt.Sprintf("%v", *o.Top)) - } - return &out -} - -// RemediationsListDeploymentsAtSubscription ... -func (c RemediationsClient) RemediationsListDeploymentsAtSubscription(ctx context.Context, id RemediationId, options RemediationsListDeploymentsAtSubscriptionOperationOptions) (result RemediationsListDeploymentsAtSubscriptionOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodPost, - Path: fmt.Sprintf("%s/listDeployments", id.ID()), - OptionsObject: options, - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.ExecutePaged(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - var values struct { - Values *[]RemediationDeployment `json:"value"` - } - if err = resp.Unmarshal(&values); err != nil { - return - } - - result.Model = values.Values - - return -} - -// RemediationsListDeploymentsAtSubscriptionComplete retrieves all the results into a single object -func (c RemediationsClient) RemediationsListDeploymentsAtSubscriptionComplete(ctx context.Context, id RemediationId, options RemediationsListDeploymentsAtSubscriptionOperationOptions) (RemediationsListDeploymentsAtSubscriptionCompleteResult, error) { - return c.RemediationsListDeploymentsAtSubscriptionCompleteMatchingPredicate(ctx, id, options, RemediationDeploymentOperationPredicate{}) -} - -// RemediationsListDeploymentsAtSubscriptionCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c RemediationsClient) RemediationsListDeploymentsAtSubscriptionCompleteMatchingPredicate(ctx context.Context, id RemediationId, options RemediationsListDeploymentsAtSubscriptionOperationOptions, predicate RemediationDeploymentOperationPredicate) (result RemediationsListDeploymentsAtSubscriptionCompleteResult, err error) { - items := make([]RemediationDeployment, 0) - - resp, err := c.RemediationsListDeploymentsAtSubscription(ctx, id, options) - if err != nil { - err = fmt.Errorf("loading results: %+v", err) - return - } - if resp.Model != nil { - for _, v := range *resp.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - result = RemediationsListDeploymentsAtSubscriptionCompleteResult{ - Items: items, - } - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistformanagementgroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistformanagementgroup.go deleted file mode 100644 index 54f5aaabdfbf..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistformanagementgroup.go +++ /dev/null @@ -1,121 +0,0 @@ -package remediations - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type RemediationsListForManagementGroupOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *[]Remediation -} - -type RemediationsListForManagementGroupCompleteResult struct { - Items []Remediation -} - -type RemediationsListForManagementGroupOperationOptions struct { - Filter *string - Top *int64 -} - -func DefaultRemediationsListForManagementGroupOperationOptions() RemediationsListForManagementGroupOperationOptions { - return RemediationsListForManagementGroupOperationOptions{} -} - -func (o RemediationsListForManagementGroupOperationOptions) ToHeaders() *client.Headers { - out := client.Headers{} - - return &out -} - -func (o RemediationsListForManagementGroupOperationOptions) ToOData() *odata.Query { - out := odata.Query{} - return &out -} - -func (o RemediationsListForManagementGroupOperationOptions) ToQuery() *client.QueryParams { - out := client.QueryParams{} - if o.Filter != nil { - out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) - } - if o.Top != nil { - out.Append("$top", fmt.Sprintf("%v", *o.Top)) - } - return &out -} - -// RemediationsListForManagementGroup ... -func (c RemediationsClient) RemediationsListForManagementGroup(ctx context.Context, id ManagementGroupId, options RemediationsListForManagementGroupOperationOptions) (result RemediationsListForManagementGroupOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodGet, - Path: fmt.Sprintf("%s/providers/Microsoft.PolicyInsights/remediations", id.ID()), - OptionsObject: options, - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.ExecutePaged(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - var values struct { - Values *[]Remediation `json:"value"` - } - if err = resp.Unmarshal(&values); err != nil { - return - } - - result.Model = values.Values - - return -} - -// RemediationsListForManagementGroupComplete retrieves all the results into a single object -func (c RemediationsClient) RemediationsListForManagementGroupComplete(ctx context.Context, id ManagementGroupId, options RemediationsListForManagementGroupOperationOptions) (RemediationsListForManagementGroupCompleteResult, error) { - return c.RemediationsListForManagementGroupCompleteMatchingPredicate(ctx, id, options, RemediationOperationPredicate{}) -} - -// RemediationsListForManagementGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c RemediationsClient) RemediationsListForManagementGroupCompleteMatchingPredicate(ctx context.Context, id ManagementGroupId, options RemediationsListForManagementGroupOperationOptions, predicate RemediationOperationPredicate) (result RemediationsListForManagementGroupCompleteResult, err error) { - items := make([]Remediation, 0) - - resp, err := c.RemediationsListForManagementGroup(ctx, id, options) - if err != nil { - err = fmt.Errorf("loading results: %+v", err) - return - } - if resp.Model != nil { - for _, v := range *resp.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - result = RemediationsListForManagementGroupCompleteResult{ - Items: items, - } - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistforresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistforresourcegroup.go deleted file mode 100644 index abd059ba620d..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistforresourcegroup.go +++ /dev/null @@ -1,122 +0,0 @@ -package remediations - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type RemediationsListForResourceGroupOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *[]Remediation -} - -type RemediationsListForResourceGroupCompleteResult struct { - Items []Remediation -} - -type RemediationsListForResourceGroupOperationOptions struct { - Filter *string - Top *int64 -} - -func DefaultRemediationsListForResourceGroupOperationOptions() RemediationsListForResourceGroupOperationOptions { - return RemediationsListForResourceGroupOperationOptions{} -} - -func (o RemediationsListForResourceGroupOperationOptions) ToHeaders() *client.Headers { - out := client.Headers{} - - return &out -} - -func (o RemediationsListForResourceGroupOperationOptions) ToOData() *odata.Query { - out := odata.Query{} - return &out -} - -func (o RemediationsListForResourceGroupOperationOptions) ToQuery() *client.QueryParams { - out := client.QueryParams{} - if o.Filter != nil { - out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) - } - if o.Top != nil { - out.Append("$top", fmt.Sprintf("%v", *o.Top)) - } - return &out -} - -// RemediationsListForResourceGroup ... -func (c RemediationsClient) RemediationsListForResourceGroup(ctx context.Context, id commonids.ResourceGroupId, options RemediationsListForResourceGroupOperationOptions) (result RemediationsListForResourceGroupOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodGet, - Path: fmt.Sprintf("%s/providers/Microsoft.PolicyInsights/remediations", id.ID()), - OptionsObject: options, - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.ExecutePaged(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - var values struct { - Values *[]Remediation `json:"value"` - } - if err = resp.Unmarshal(&values); err != nil { - return - } - - result.Model = values.Values - - return -} - -// RemediationsListForResourceGroupComplete retrieves all the results into a single object -func (c RemediationsClient) RemediationsListForResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId, options RemediationsListForResourceGroupOperationOptions) (RemediationsListForResourceGroupCompleteResult, error) { - return c.RemediationsListForResourceGroupCompleteMatchingPredicate(ctx, id, options, RemediationOperationPredicate{}) -} - -// RemediationsListForResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c RemediationsClient) RemediationsListForResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, options RemediationsListForResourceGroupOperationOptions, predicate RemediationOperationPredicate) (result RemediationsListForResourceGroupCompleteResult, err error) { - items := make([]Remediation, 0) - - resp, err := c.RemediationsListForResourceGroup(ctx, id, options) - if err != nil { - err = fmt.Errorf("loading results: %+v", err) - return - } - if resp.Model != nil { - for _, v := range *resp.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - result = RemediationsListForResourceGroupCompleteResult{ - Items: items, - } - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistforsubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistforsubscription.go deleted file mode 100644 index aeec6808616a..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/policyinsights/2021-10-01/remediations/method_remediationslistforsubscription.go +++ /dev/null @@ -1,122 +0,0 @@ -package remediations - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type RemediationsListForSubscriptionOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *[]Remediation -} - -type RemediationsListForSubscriptionCompleteResult struct { - Items []Remediation -} - -type RemediationsListForSubscriptionOperationOptions struct { - Filter *string - Top *int64 -} - -func DefaultRemediationsListForSubscriptionOperationOptions() RemediationsListForSubscriptionOperationOptions { - return RemediationsListForSubscriptionOperationOptions{} -} - -func (o RemediationsListForSubscriptionOperationOptions) ToHeaders() *client.Headers { - out := client.Headers{} - - return &out -} - -func (o RemediationsListForSubscriptionOperationOptions) ToOData() *odata.Query { - out := odata.Query{} - return &out -} - -func (o RemediationsListForSubscriptionOperationOptions) ToQuery() *client.QueryParams { - out := client.QueryParams{} - if o.Filter != nil { - out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) - } - if o.Top != nil { - out.Append("$top", fmt.Sprintf("%v", *o.Top)) - } - return &out -} - -// RemediationsListForSubscription ... -func (c RemediationsClient) RemediationsListForSubscription(ctx context.Context, id commonids.SubscriptionId, options RemediationsListForSubscriptionOperationOptions) (result RemediationsListForSubscriptionOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodGet, - Path: fmt.Sprintf("%s/providers/Microsoft.PolicyInsights/remediations", id.ID()), - OptionsObject: options, - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.ExecutePaged(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - var values struct { - Values *[]Remediation `json:"value"` - } - if err = resp.Unmarshal(&values); err != nil { - return - } - - result.Model = values.Values - - return -} - -// RemediationsListForSubscriptionComplete retrieves all the results into a single object -func (c RemediationsClient) RemediationsListForSubscriptionComplete(ctx context.Context, id commonids.SubscriptionId, options RemediationsListForSubscriptionOperationOptions) (RemediationsListForSubscriptionCompleteResult, error) { - return c.RemediationsListForSubscriptionCompleteMatchingPredicate(ctx, id, options, RemediationOperationPredicate{}) -} - -// RemediationsListForSubscriptionCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c RemediationsClient) RemediationsListForSubscriptionCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, options RemediationsListForSubscriptionOperationOptions, predicate RemediationOperationPredicate) (result RemediationsListForSubscriptionCompleteResult, err error) { - items := make([]Remediation, 0) - - resp, err := c.RemediationsListForSubscription(ctx, id, options) - if err != nil { - err = fmt.Errorf("loading results: %+v", err) - return - } - if resp.Model != nil { - for _, v := range *resp.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - result = RemediationsListForSubscriptionCompleteResult{ - Items: items, - } - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/README.md index b4700b41a87f..81a1e2123cce 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `AlertRulesClient.AlertRulesCreateOrUpdate` +### Example Usage: `AlertRulesClient.CreateOrUpdate` ```go ctx := context.TODO() @@ -31,7 +31,7 @@ payload := alertrules.AlertRule{ } -read, err := client.AlertRulesCreateOrUpdate(ctx, id, payload) +read, err := client.CreateOrUpdate(ctx, id, payload) if err != nil { // handle the error } @@ -41,13 +41,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AlertRulesClient.AlertRulesDelete` +### Example Usage: `AlertRulesClient.Delete` ```go ctx := context.TODO() id := alertrules.NewAlertRuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "workspaceValue", "ruleIdValue") -read, err := client.AlertRulesDelete(ctx, id) +read, err := client.Delete(ctx, id) if err != nil { // handle the error } @@ -57,13 +57,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AlertRulesClient.AlertRulesGet` +### Example Usage: `AlertRulesClient.Get` ```go ctx := context.TODO() id := alertrules.NewAlertRuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "workspaceValue", "ruleIdValue") -read, err := client.AlertRulesGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -73,14 +73,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AlertRulesClient.AlertRulesList` +### Example Usage: `AlertRulesClient.List` ```go ctx := context.TODO() id := alertrules.NewWorkspaceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "workspaceValue") -// alternatively `client.AlertRulesList(ctx, id)` can be used to do batched pagination -items, err := client.AlertRulesListComplete(ctx, id) +// alternatively `client.List(ctx, id)` can be used to do batched pagination +items, err := client.ListComplete(ctx, id) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_alertrulescreateorupdate_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_createorupdate_autorest.go similarity index 58% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_alertrulescreateorupdate_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_createorupdate_autorest.go index ce26fec11566..548f6c4ef37d 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_alertrulescreateorupdate_autorest.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_createorupdate_autorest.go @@ -12,36 +12,36 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AlertRulesCreateOrUpdateOperationResponse struct { +type CreateOrUpdateOperationResponse struct { HttpResponse *http.Response Model *AlertRule } -// AlertRulesCreateOrUpdate ... -func (c AlertRulesClient) AlertRulesCreateOrUpdate(ctx context.Context, id AlertRuleId, input AlertRule) (result AlertRulesCreateOrUpdateOperationResponse, err error) { - req, err := c.preparerForAlertRulesCreateOrUpdate(ctx, id, input) +// CreateOrUpdate ... +func (c AlertRulesClient) CreateOrUpdate(ctx context.Context, id AlertRuleId, input AlertRule) (result CreateOrUpdateOperationResponse, err error) { + req, err := c.preparerForCreateOrUpdate(ctx, id, input) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesCreateOrUpdate", nil, "Failure preparing request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "CreateOrUpdate", nil, "Failure preparing request") return } result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesCreateOrUpdate", result.HttpResponse, "Failure sending request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "CreateOrUpdate", result.HttpResponse, "Failure sending request") return } - result, err = c.responderForAlertRulesCreateOrUpdate(result.HttpResponse) + result, err = c.responderForCreateOrUpdate(result.HttpResponse) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesCreateOrUpdate", result.HttpResponse, "Failure responding to request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "CreateOrUpdate", result.HttpResponse, "Failure responding to request") return } return } -// preparerForAlertRulesCreateOrUpdate prepares the AlertRulesCreateOrUpdate request. -func (c AlertRulesClient) preparerForAlertRulesCreateOrUpdate(ctx context.Context, id AlertRuleId, input AlertRule) (*http.Request, error) { +// preparerForCreateOrUpdate prepares the CreateOrUpdate request. +func (c AlertRulesClient) preparerForCreateOrUpdate(ctx context.Context, id AlertRuleId, input AlertRule) (*http.Request, error) { queryParameters := map[string]interface{}{ "api-version": defaultApiVersion, } @@ -56,9 +56,9 @@ func (c AlertRulesClient) preparerForAlertRulesCreateOrUpdate(ctx context.Contex return preparer.Prepare((&http.Request{}).WithContext(ctx)) } -// responderForAlertRulesCreateOrUpdate handles the response to the AlertRulesCreateOrUpdate request. The method always +// responderForCreateOrUpdate handles the response to the CreateOrUpdate request. The method always // closes the http.Response Body. -func (c AlertRulesClient) responderForAlertRulesCreateOrUpdate(resp *http.Response) (result AlertRulesCreateOrUpdateOperationResponse, err error) { +func (c AlertRulesClient) responderForCreateOrUpdate(resp *http.Response) (result CreateOrUpdateOperationResponse, err error) { var respObj json.RawMessage err = autorest.Respond( resp, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_alertrulesdelete_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_delete_autorest.go similarity index 57% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_alertrulesdelete_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_delete_autorest.go index 635d0607bc38..417e1a0017ec 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_alertrulesdelete_autorest.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_delete_autorest.go @@ -11,35 +11,35 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AlertRulesDeleteOperationResponse struct { +type DeleteOperationResponse struct { HttpResponse *http.Response } -// AlertRulesDelete ... -func (c AlertRulesClient) AlertRulesDelete(ctx context.Context, id AlertRuleId) (result AlertRulesDeleteOperationResponse, err error) { - req, err := c.preparerForAlertRulesDelete(ctx, id) +// Delete ... +func (c AlertRulesClient) Delete(ctx context.Context, id AlertRuleId) (result DeleteOperationResponse, err error) { + req, err := c.preparerForDelete(ctx, id) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesDelete", nil, "Failure preparing request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "Delete", nil, "Failure preparing request") return } result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesDelete", result.HttpResponse, "Failure sending request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "Delete", result.HttpResponse, "Failure sending request") return } - result, err = c.responderForAlertRulesDelete(result.HttpResponse) + result, err = c.responderForDelete(result.HttpResponse) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesDelete", result.HttpResponse, "Failure responding to request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "Delete", result.HttpResponse, "Failure responding to request") return } return } -// preparerForAlertRulesDelete prepares the AlertRulesDelete request. -func (c AlertRulesClient) preparerForAlertRulesDelete(ctx context.Context, id AlertRuleId) (*http.Request, error) { +// preparerForDelete prepares the Delete request. +func (c AlertRulesClient) preparerForDelete(ctx context.Context, id AlertRuleId) (*http.Request, error) { queryParameters := map[string]interface{}{ "api-version": defaultApiVersion, } @@ -53,9 +53,9 @@ func (c AlertRulesClient) preparerForAlertRulesDelete(ctx context.Context, id Al return preparer.Prepare((&http.Request{}).WithContext(ctx)) } -// responderForAlertRulesDelete handles the response to the AlertRulesDelete request. The method always +// responderForDelete handles the response to the Delete request. The method always // closes the http.Response Body. -func (c AlertRulesClient) responderForAlertRulesDelete(resp *http.Response) (result AlertRulesDeleteOperationResponse, err error) { +func (c AlertRulesClient) responderForDelete(resp *http.Response) (result DeleteOperationResponse, err error) { err = autorest.Respond( resp, azure.WithErrorUnlessStatusCode(http.StatusNoContent, http.StatusOK), diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_alertrulesget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_get_autorest.go similarity index 62% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_alertrulesget_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_get_autorest.go index 8b5f415b01e6..ddd1836d4de7 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_alertrulesget_autorest.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_get_autorest.go @@ -12,36 +12,36 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AlertRulesGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response Model *AlertRule } -// AlertRulesGet ... -func (c AlertRulesClient) AlertRulesGet(ctx context.Context, id AlertRuleId) (result AlertRulesGetOperationResponse, err error) { - req, err := c.preparerForAlertRulesGet(ctx, id) +// Get ... +func (c AlertRulesClient) Get(ctx context.Context, id AlertRuleId) (result GetOperationResponse, err error) { + req, err := c.preparerForGet(ctx, id) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesGet", nil, "Failure preparing request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "Get", nil, "Failure preparing request") return } result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesGet", result.HttpResponse, "Failure sending request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "Get", result.HttpResponse, "Failure sending request") return } - result, err = c.responderForAlertRulesGet(result.HttpResponse) + result, err = c.responderForGet(result.HttpResponse) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesGet", result.HttpResponse, "Failure responding to request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "Get", result.HttpResponse, "Failure responding to request") return } return } -// preparerForAlertRulesGet prepares the AlertRulesGet request. -func (c AlertRulesClient) preparerForAlertRulesGet(ctx context.Context, id AlertRuleId) (*http.Request, error) { +// preparerForGet prepares the Get request. +func (c AlertRulesClient) preparerForGet(ctx context.Context, id AlertRuleId) (*http.Request, error) { queryParameters := map[string]interface{}{ "api-version": defaultApiVersion, } @@ -55,9 +55,9 @@ func (c AlertRulesClient) preparerForAlertRulesGet(ctx context.Context, id Alert return preparer.Prepare((&http.Request{}).WithContext(ctx)) } -// responderForAlertRulesGet handles the response to the AlertRulesGet request. The method always +// responderForGet handles the response to the Get request. The method always // closes the http.Response Body. -func (c AlertRulesClient) responderForAlertRulesGet(resp *http.Response) (result AlertRulesGetOperationResponse, err error) { +func (c AlertRulesClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { var respObj json.RawMessage err = autorest.Respond( resp, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_alertruleslist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_list_autorest.go similarity index 59% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_alertruleslist_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_list_autorest.go index f65b7ed44eb4..f06cf0f62414 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_alertruleslist_autorest.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/method_list_autorest.go @@ -14,23 +14,23 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AlertRulesListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response Model *[]AlertRule nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (AlertRulesListOperationResponse, error) + nextPageFunc func(ctx context.Context, nextLink string) (ListOperationResponse, error) } -type AlertRulesListCompleteResult struct { +type ListCompleteResult struct { Items []AlertRule } -func (r AlertRulesListOperationResponse) HasMore() bool { +func (r ListOperationResponse) HasMore() bool { return r.nextLink != nil } -func (r AlertRulesListOperationResponse) LoadMore(ctx context.Context) (resp AlertRulesListOperationResponse, err error) { +func (r ListOperationResponse) LoadMore(ctx context.Context) (resp ListOperationResponse, err error) { if !r.HasMore() { err = fmt.Errorf("no more pages returned") return @@ -38,30 +38,30 @@ func (r AlertRulesListOperationResponse) LoadMore(ctx context.Context) (resp Ale return r.nextPageFunc(ctx, *r.nextLink) } -// AlertRulesList ... -func (c AlertRulesClient) AlertRulesList(ctx context.Context, id WorkspaceId) (resp AlertRulesListOperationResponse, err error) { - req, err := c.preparerForAlertRulesList(ctx, id) +// List ... +func (c AlertRulesClient) List(ctx context.Context, id WorkspaceId) (resp ListOperationResponse, err error) { + req, err := c.preparerForList(ctx, id) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesList", nil, "Failure preparing request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "List", nil, "Failure preparing request") return } resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesList", resp.HttpResponse, "Failure sending request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "List", resp.HttpResponse, "Failure sending request") return } - resp, err = c.responderForAlertRulesList(resp.HttpResponse) + resp, err = c.responderForList(resp.HttpResponse) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesList", resp.HttpResponse, "Failure responding to request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "List", resp.HttpResponse, "Failure responding to request") return } return } -// preparerForAlertRulesList prepares the AlertRulesList request. -func (c AlertRulesClient) preparerForAlertRulesList(ctx context.Context, id WorkspaceId) (*http.Request, error) { +// preparerForList prepares the List request. +func (c AlertRulesClient) preparerForList(ctx context.Context, id WorkspaceId) (*http.Request, error) { queryParameters := map[string]interface{}{ "api-version": defaultApiVersion, } @@ -75,8 +75,8 @@ func (c AlertRulesClient) preparerForAlertRulesList(ctx context.Context, id Work return preparer.Prepare((&http.Request{}).WithContext(ctx)) } -// preparerForAlertRulesListWithNextLink prepares the AlertRulesList request with the given nextLink token. -func (c AlertRulesClient) preparerForAlertRulesListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { +// preparerForListWithNextLink prepares the List request with the given nextLink token. +func (c AlertRulesClient) preparerForListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { uri, err := url.Parse(nextLink) if err != nil { return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) @@ -100,9 +100,9 @@ func (c AlertRulesClient) preparerForAlertRulesListWithNextLink(ctx context.Cont return preparer.Prepare((&http.Request{}).WithContext(ctx)) } -// responderForAlertRulesList handles the response to the AlertRulesList request. The method always +// responderForList handles the response to the List request. The method always // closes the http.Response Body. -func (c AlertRulesClient) responderForAlertRulesList(resp *http.Response) (result AlertRulesListOperationResponse, err error) { +func (c AlertRulesClient) responderForList(resp *http.Response) (result ListOperationResponse, err error) { type page struct { Values []json.RawMessage `json:"value"` NextLink *string `json:"nextLink"` @@ -126,22 +126,22 @@ func (c AlertRulesClient) responderForAlertRulesList(resp *http.Response) (resul result.Model = &temp result.nextLink = respObj.NextLink if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result AlertRulesListOperationResponse, err error) { - req, err := c.preparerForAlertRulesListWithNextLink(ctx, nextLink) + result.nextPageFunc = func(ctx context.Context, nextLink string) (result ListOperationResponse, err error) { + req, err := c.preparerForListWithNextLink(ctx, nextLink) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesList", nil, "Failure preparing request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "List", nil, "Failure preparing request") return } result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesList", result.HttpResponse, "Failure sending request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "List", result.HttpResponse, "Failure sending request") return } - result, err = c.responderForAlertRulesList(result.HttpResponse) + result, err = c.responderForList(result.HttpResponse) if err != nil { - err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "AlertRulesList", result.HttpResponse, "Failure responding to request") + err = autorest.NewErrorWithError(err, "alertrules.AlertRulesClient", "List", result.HttpResponse, "Failure responding to request") return } @@ -151,16 +151,16 @@ func (c AlertRulesClient) responderForAlertRulesList(resp *http.Response) (resul return } -// AlertRulesListComplete retrieves all of the results into a single object -func (c AlertRulesClient) AlertRulesListComplete(ctx context.Context, id WorkspaceId) (AlertRulesListCompleteResult, error) { - return c.AlertRulesListCompleteMatchingPredicate(ctx, id, AlertRuleOperationPredicate{}) +// ListComplete retrieves all of the results into a single object +func (c AlertRulesClient) ListComplete(ctx context.Context, id WorkspaceId) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, AlertRuleOperationPredicate{}) } -// AlertRulesListCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c AlertRulesClient) AlertRulesListCompleteMatchingPredicate(ctx context.Context, id WorkspaceId, predicate AlertRuleOperationPredicate) (resp AlertRulesListCompleteResult, err error) { +// ListCompleteMatchingPredicate retrieves all of the results and then applied the predicate +func (c AlertRulesClient) ListCompleteMatchingPredicate(ctx context.Context, id WorkspaceId, predicate AlertRuleOperationPredicate) (resp ListCompleteResult, err error) { items := make([]AlertRule, 0) - page, err := c.AlertRulesList(ctx, id) + page, err := c.List(ctx, id) if err != nil { err = fmt.Errorf("loading the initial page: %+v", err) return @@ -189,7 +189,7 @@ func (c AlertRulesClient) AlertRulesListCompleteMatchingPredicate(ctx context.Co } } - out := AlertRulesListCompleteResult{ + out := ListCompleteResult{ Items: items, } return out, nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/README.md index 3be3cba6d333..f2675f925074 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `EdgeModulesClient.EdgeModulesCreateOrUpdate` +### Example Usage: `EdgeModulesClient.CreateOrUpdate` ```go ctx := context.TODO() @@ -31,7 +31,7 @@ payload := edgemodules.EdgeModuleEntity{ } -read, err := client.EdgeModulesCreateOrUpdate(ctx, id, payload) +read, err := client.CreateOrUpdate(ctx, id, payload) if err != nil { // handle the error } @@ -41,13 +41,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `EdgeModulesClient.EdgeModulesDelete` +### Example Usage: `EdgeModulesClient.Delete` ```go ctx := context.TODO() id := edgemodules.NewEdgeModuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "videoAnalyzerValue", "edgeModuleValue") -read, err := client.EdgeModulesDelete(ctx, id) +read, err := client.Delete(ctx, id) if err != nil { // handle the error } @@ -57,13 +57,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `EdgeModulesClient.EdgeModulesGet` +### Example Usage: `EdgeModulesClient.Get` ```go ctx := context.TODO() id := edgemodules.NewEdgeModuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "videoAnalyzerValue", "edgeModuleValue") -read, err := client.EdgeModulesGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -73,14 +73,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `EdgeModulesClient.EdgeModulesList` +### Example Usage: `EdgeModulesClient.List` ```go ctx := context.TODO() id := edgemodules.NewVideoAnalyzerID("12345678-1234-9876-4563-123456789012", "example-resource-group", "videoAnalyzerValue") -// alternatively `client.EdgeModulesList(ctx, id, edgemodules.DefaultEdgeModulesListOperationOptions())` can be used to do batched pagination -items, err := client.EdgeModulesListComplete(ctx, id, edgemodules.DefaultEdgeModulesListOperationOptions()) +// alternatively `client.List(ctx, id, edgemodules.DefaultListOperationOptions())` can be used to do batched pagination +items, err := client.ListComplete(ctx, id, edgemodules.DefaultListOperationOptions()) if err != nil { // handle the error } @@ -90,7 +90,7 @@ for _, item := range items { ``` -### Example Usage: `EdgeModulesClient.EdgeModulesListProvisioningToken` +### Example Usage: `EdgeModulesClient.ListProvisioningToken` ```go ctx := context.TODO() @@ -101,7 +101,7 @@ payload := edgemodules.ListProvisioningTokenInput{ } -read, err := client.EdgeModulesListProvisioningToken(ctx, id, payload) +read, err := client.ListProvisioningToken(ctx, id, payload) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemodulescreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_createorupdate.go similarity index 78% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemodulescreateorupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_createorupdate.go index 22ec0f6cc980..0df359c1d948 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemodulescreateorupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_createorupdate.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type EdgeModulesCreateOrUpdateOperationResponse struct { +type CreateOrUpdateOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *EdgeModuleEntity } -// EdgeModulesCreateOrUpdate ... -func (c EdgeModulesClient) EdgeModulesCreateOrUpdate(ctx context.Context, id EdgeModuleId, input EdgeModuleEntity) (result EdgeModulesCreateOrUpdateOperationResponse, err error) { +// CreateOrUpdate ... +func (c EdgeModulesClient) CreateOrUpdate(ctx context.Context, id EdgeModuleId, input EdgeModuleEntity) (result CreateOrUpdateOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemodulesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_delete.go similarity index 79% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemodulesdelete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_delete.go index 301ca74b896e..9444373021d5 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemodulesdelete.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_delete.go @@ -11,13 +11,13 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type EdgeModulesDeleteOperationResponse struct { +type DeleteOperationResponse struct { HttpResponse *http.Response OData *odata.OData } -// EdgeModulesDelete ... -func (c EdgeModulesClient) EdgeModulesDelete(ctx context.Context, id EdgeModuleId) (result EdgeModulesDeleteOperationResponse, err error) { +// Delete ... +func (c EdgeModulesClient) Delete(ctx context.Context, id EdgeModuleId) (result DeleteOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemodulesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_get.go similarity index 81% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemodulesget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_get.go index 302f6ea6bc20..78b6084bf0c6 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemodulesget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_get.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type EdgeModulesGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *EdgeModuleEntity } -// EdgeModulesGet ... -func (c EdgeModulesClient) EdgeModulesGet(ctx context.Context, id EdgeModuleId) (result EdgeModulesGetOperationResponse, err error) { +// Get ... +func (c EdgeModulesClient) Get(ctx context.Context, id EdgeModuleId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemoduleslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_list.go similarity index 55% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemoduleslist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_list.go index 3ac228b62ef2..b48c4b722b5a 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemoduleslist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_list.go @@ -12,38 +12,38 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type EdgeModulesListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *[]EdgeModuleEntity } -type EdgeModulesListCompleteResult struct { +type ListCompleteResult struct { Items []EdgeModuleEntity } -type EdgeModulesListOperationOptions struct { +type ListOperationOptions struct { Filter *string Orderby *string Top *int64 } -func DefaultEdgeModulesListOperationOptions() EdgeModulesListOperationOptions { - return EdgeModulesListOperationOptions{} +func DefaultListOperationOptions() ListOperationOptions { + return ListOperationOptions{} } -func (o EdgeModulesListOperationOptions) ToHeaders() *client.Headers { +func (o ListOperationOptions) ToHeaders() *client.Headers { out := client.Headers{} return &out } -func (o EdgeModulesListOperationOptions) ToOData() *odata.Query { +func (o ListOperationOptions) ToOData() *odata.Query { out := odata.Query{} return &out } -func (o EdgeModulesListOperationOptions) ToQuery() *client.QueryParams { +func (o ListOperationOptions) ToQuery() *client.QueryParams { out := client.QueryParams{} if o.Filter != nil { out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) @@ -57,8 +57,8 @@ func (o EdgeModulesListOperationOptions) ToQuery() *client.QueryParams { return &out } -// EdgeModulesList ... -func (c EdgeModulesClient) EdgeModulesList(ctx context.Context, id VideoAnalyzerId, options EdgeModulesListOperationOptions) (result EdgeModulesListOperationResponse, err error) { +// List ... +func (c EdgeModulesClient) List(ctx context.Context, id VideoAnalyzerId, options ListOperationOptions) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ @@ -96,16 +96,16 @@ func (c EdgeModulesClient) EdgeModulesList(ctx context.Context, id VideoAnalyzer return } -// EdgeModulesListComplete retrieves all the results into a single object -func (c EdgeModulesClient) EdgeModulesListComplete(ctx context.Context, id VideoAnalyzerId, options EdgeModulesListOperationOptions) (EdgeModulesListCompleteResult, error) { - return c.EdgeModulesListCompleteMatchingPredicate(ctx, id, options, EdgeModuleEntityOperationPredicate{}) +// ListComplete retrieves all the results into a single object +func (c EdgeModulesClient) ListComplete(ctx context.Context, id VideoAnalyzerId, options ListOperationOptions) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, options, EdgeModuleEntityOperationPredicate{}) } -// EdgeModulesListCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c EdgeModulesClient) EdgeModulesListCompleteMatchingPredicate(ctx context.Context, id VideoAnalyzerId, options EdgeModulesListOperationOptions, predicate EdgeModuleEntityOperationPredicate) (result EdgeModulesListCompleteResult, err error) { +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c EdgeModulesClient) ListCompleteMatchingPredicate(ctx context.Context, id VideoAnalyzerId, options ListOperationOptions, predicate EdgeModuleEntityOperationPredicate) (result ListCompleteResult, err error) { items := make([]EdgeModuleEntity, 0) - resp, err := c.EdgeModulesList(ctx, id, options) + resp, err := c.List(ctx, id, options) if err != nil { err = fmt.Errorf("loading results: %+v", err) return @@ -118,7 +118,7 @@ func (c EdgeModulesClient) EdgeModulesListCompleteMatchingPredicate(ctx context. } } - result = EdgeModulesListCompleteResult{ + result = ListCompleteResult{ Items: items, } return diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemoduleslistprovisioningtoken.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_listprovisioningtoken.go similarity index 77% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemoduleslistprovisioningtoken.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_listprovisioningtoken.go index 45f9a4a88608..263164adb837 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_edgemoduleslistprovisioningtoken.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/videoanalyzer/2021-05-01-preview/edgemodules/method_listprovisioningtoken.go @@ -12,14 +12,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type EdgeModulesListProvisioningTokenOperationResponse struct { +type ListProvisioningTokenOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *EdgeModuleProvisioningToken } -// EdgeModulesListProvisioningToken ... -func (c EdgeModulesClient) EdgeModulesListProvisioningToken(ctx context.Context, id EdgeModuleId, input ListProvisioningTokenInput) (result EdgeModulesListProvisioningTokenOperationResponse, err error) { +// ListProvisioningToken ... +func (c EdgeModulesClient) ListProvisioningToken(ctx context.Context, id EdgeModuleId, input ListProvisioningTokenInput) (result ListProvisioningTokenOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/README.md index 7422c534b6b9..d28522cdc96e 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/README.md @@ -20,13 +20,13 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `ManagedAPIsClient.ManagedApisGet` +### Example Usage: `ManagedAPIsClient.Get` ```go ctx := context.TODO() id := managedapis.NewManagedApiID("12345678-1234-9876-4563-123456789012", "locationValue", "managedApiValue") -read, err := client.ManagedApisGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -36,13 +36,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `ManagedAPIsClient.ManagedApisList` +### Example Usage: `ManagedAPIsClient.List` ```go ctx := context.TODO() id := managedapis.NewLocationID("12345678-1234-9876-4563-123456789012", "locationValue") -read, err := client.ManagedApisList(ctx, id) +read, err := client.List(ctx, id) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/method_managedapisget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/method_get.go similarity index 82% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/method_managedapisget.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/method_get.go index 92f3aa46b856..6d2b691d2b81 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/method_managedapisget.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/method_get.go @@ -11,14 +11,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ManagedApisGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *ManagedApiDefinition } -// ManagedApisGet ... -func (c ManagedAPIsClient) ManagedApisGet(ctx context.Context, id ManagedApiId) (result ManagedApisGetOperationResponse, err error) { +// Get ... +func (c ManagedAPIsClient) Get(ctx context.Context, id ManagedApiId) (result GetOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/method_managedapislist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/method_list.go similarity index 82% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/method_managedapislist.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/method_list.go index 75d0c1496bd0..5c0bae468895 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/method_managedapislist.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/web/2016-06-01/managedapis/method_list.go @@ -12,14 +12,14 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type ManagedApisListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response OData *odata.OData Model *ManagedApiDefinitionCollection } -// ManagedApisList ... -func (c ManagedAPIsClient) ManagedApisList(ctx context.Context, id LocationId) (result ManagedApisListOperationResponse, err error) { +// List ... +func (c ManagedAPIsClient) List(ctx context.Context, id LocationId) (result ListOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ diff --git a/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/poller_lro.go b/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/poller_lro.go index 8e2ce038bd89..680e6e616f51 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/poller_lro.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager/poller_lro.go @@ -236,8 +236,12 @@ func (p *longRunningOperationPoller) Poll(ctx context.Context) (result *pollers. } type operationResult struct { - Name *string `json:"name"` - StartTime *time.Time `json:"startTime"` + Name *string `json:"name"` + // Some APIs (such as CosmosDbPostgreSQLCluster) return a DateTime value that doesn't match RFC3339 + // as such we're intentionally parsing this as a string (for info) rather than as a time.Time due to: + // > parsing time "2023-08-11 01:58:30 +0000" as "2006-01-02T15:04:05Z07:00": + // > cannot parse " 01:58:30 +0000" as "T" + StartTime *string `json:"startTime"` Properties struct { // Some APIs (such as Storage) return the Resource Representation from the LRO API, as such we need to check provisioningState diff --git a/vendor/modules.txt b/vendor/modules.txt index 7392249df8c3..e9ff99e18a83 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -122,7 +122,7 @@ github.com/hashicorp/go-azure-helpers/resourcemanager/tags github.com/hashicorp/go-azure-helpers/resourcemanager/zones github.com/hashicorp/go-azure-helpers/sender github.com/hashicorp/go-azure-helpers/storage -# github.com/hashicorp/go-azure-sdk v0.20230901.1104643 +# github.com/hashicorp/go-azure-sdk v0.20230906.1160501 ## explicit; go 1.19 github.com/hashicorp/go-azure-sdk/resource-manager/aad/2021-05-01/domainservices github.com/hashicorp/go-azure-sdk/resource-manager/aadb2c/2021-04-01-preview From cfaf15711c9001af018eb4c65d982fac02e912cb Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 6 Sep 2023 18:51:52 +0200 Subject: [PATCH 122/336] refactor: updating to account for the renamed signatures --- ..._software_update_configuration_resource.go | 290 +++++++++--------- ...ware_update_configuration_resource_test.go | 2 +- .../connections/managed_api_data_source.go | 2 +- .../arc_private_link_scope_resource.go | 12 +- .../arc_private_link_scope_resource_test.go | 2 +- .../log_analytics_query_pack_resource.go | 12 +- .../log_analytics_query_pack_resource_test.go | 2 +- .../media_content_key_policy_resource.go | 8 +- .../media_content_key_policy_resource_test.go | 2 +- .../media_service_account_filter_resource.go | 12 +- ...ia_service_account_filter_resource_test.go | 2 +- ...t_processing_rule_action_group_resource.go | 14 +- ...cessing_rule_action_group_resource_test.go | 4 +- ...rt_processing_rule_suppression_resource.go | 21 +- ...ocessing_rule_suppression_resource_test.go | 2 +- ...etapp_volume_group_sap_hana_data_source.go | 37 ++- .../netapp_volume_group_sap_hana_resource.go | 19 +- ...app_volume_group_sap_hana_resource_test.go | 6 +- .../services/netapp/netapp_volume_helper.go | 2 +- .../orbital/contact_profile_resource.go | 10 +- .../orbital/contact_profile_resource_test.go | 2 +- .../policy/remediation_management_group.go | 18 +- .../remediation_management_group_test.go | 2 +- .../services/policy/remediation_resource.go | 18 +- .../policy/remediation_resource_group.go | 18 +- .../policy/remediation_resource_group_test.go | 2 +- .../policy/remediation_resource_test.go | 6 +- .../policy/remediation_subscription.go | 18 +- .../policy/remediation_subscription_test.go | 2 +- .../services/sentinel/sentinel_alert_rule.go | 4 +- .../sentinel_alert_rule_data_source.go | 2 +- .../sentinel_alert_rule_fusion_resource.go | 10 +- ...entinel_alert_rule_fusion_resource_test.go | 2 +- ...ule_machine_learning_behavior_analytics.go | 10 +- ...achine_learning_behavior_analytics_test.go | 2 +- ...lert_rule_ms_security_incident_resource.go | 10 +- ...rule_ms_security_incident_resource_test.go | 2 +- .../sentinel_alert_rule_nrt_resource.go | 10 +- .../sentinel_alert_rule_nrt_resource_test.go | 2 +- .../sentinel_alert_rule_scheduled_resource.go | 10 +- ...inel_alert_rule_scheduled_resource_test.go | 2 +- ...t_rule_threat_intelligence_resouce_test.go | 2 +- ...alert_rule_threat_intelligence_resource.go | 12 +- .../video_analyzer_edge_module_resource.go | 8 +- ...ideo_analyzer_edge_module_resource_test.go | 2 +- 45 files changed, 317 insertions(+), 320 deletions(-) diff --git a/internal/services/automation/automation_software_update_configuration_resource.go b/internal/services/automation/automation_software_update_configuration_resource.go index 2806e2f8130e..e7b6fbd40aa3 100644 --- a/internal/services/automation/automation_software_update_configuration_resource.go +++ b/internal/services/automation/automation_software_update_configuration_resource.go @@ -763,7 +763,7 @@ func (m SoftwareUpdateConfigurationResource) Create() sdk.ResourceFunc { subscriptionID := meta.Client.Account.SubscriptionId id := softwareupdateconfiguration.NewSoftwareUpdateConfigurationID(subscriptionID, automationID.ResourceGroupName, automationID.AutomationAccountName, model.Name) - existing, err := client.SoftwareUpdateConfigurationsGetByName(ctx, id, softwareupdateconfiguration.SoftwareUpdateConfigurationsGetByNameOperationOptions{}) + existing, err := client.GetByName(ctx, id, softwareupdateconfiguration.DefaultGetByNameOperationOptions()) if err != nil { if !response.WasNotFound(existing.HttpResponse) { return meta.ResourceRequiresImport(m.ResourceType(), id) @@ -771,7 +771,7 @@ func (m SoftwareUpdateConfigurationResource) Create() sdk.ResourceFunc { } updateConfig := expandUpdateConfig(model) - if _, err = client.SoftwareUpdateConfigurationsCreate(ctx, id, *updateConfig, softwareupdateconfiguration.SoftwareUpdateConfigurationsCreateOperationOptions{}); err != nil { + if _, err = client.Create(ctx, id, *updateConfig, softwareupdateconfiguration.DefaultCreateOperationOptions()); err != nil { return fmt.Errorf("creating %s: %v", id, err) } @@ -790,7 +790,7 @@ func (m SoftwareUpdateConfigurationResource) Read() sdk.ResourceFunc { return err } client := meta.Client.Automation.SoftwareUpdateConfigClient - resp, err := client.SoftwareUpdateConfigurationsGetByName(ctx, *id, softwareupdateconfiguration.SoftwareUpdateConfigurationsGetByNameOperationOptions{}) + resp, err := client.GetByName(ctx, *id, softwareupdateconfiguration.DefaultGetByNameOperationOptions()) if err != nil { if response.WasNotFound(resp.HttpResponse) { return meta.MarkAsGone(id) @@ -798,167 +798,169 @@ func (m SoftwareUpdateConfigurationResource) Read() sdk.ResourceFunc { return err } - var state SoftwareUpdateConfigurationModel - - state.AutomationAccountID = softwareupdateconfiguration.NewAutomationAccountID(id.SubscriptionId, id.ResourceGroupName, id.AutomationAccountName).ID() + state := SoftwareUpdateConfigurationModel{ + AutomationAccountID: softwareupdateconfiguration.NewAutomationAccountID(id.SubscriptionId, id.ResourceGroupName, id.AutomationAccountName).ID(), + Name: id.SoftwareUpdateConfigurationName, + } - props := resp.Model.Properties - updateConfiguration := props.UpdateConfiguration - scheduleConfiguration := props.ScheduleInfo + if model := resp.Model; model != nil { + props := resp.Model.Properties + updateConfiguration := props.UpdateConfiguration + scheduleConfiguration := props.ScheduleInfo + + state.Duration = pointer.From(updateConfiguration.Duration) + if linux := updateConfiguration.Linux; linux != nil { + l := Linux{ + Reboot: pointer.From(linux.RebootSetting), + Classifications: strings.Split(string(pointer.From(linux.IncludedPackageClassifications)), ", "), + ExcludedPackages: pointer.From(linux.ExcludedPackageNameMasks), + IncludedPackages: pointer.From(linux.IncludedPackageNameMasks), + } - state.Name = id.SoftwareUpdateConfigurationName - state.Duration = pointer.From(updateConfiguration.Duration) - if linux := updateConfiguration.Linux; linux != nil { - l := Linux{ - Reboot: pointer.From(linux.RebootSetting), - Classifications: strings.Split(string(pointer.From(linux.IncludedPackageClassifications)), ", "), - ExcludedPackages: pointer.From(linux.ExcludedPackageNameMasks), - IncludedPackages: pointer.From(linux.IncludedPackageNameMasks), - } + if !features.FourPointOhBeta() && len(strings.Split(string(pointer.From(linux.IncludedPackageClassifications)), ", ")) == 1 { + l.Classification = string(pointer.From(linux.IncludedPackageClassifications)) + } - if !features.FourPointOhBeta() && len(strings.Split(string(pointer.From(linux.IncludedPackageClassifications)), ", ")) == 1 { - l.Classification = string(pointer.From(linux.IncludedPackageClassifications)) + state.Linux = []Linux{l} + state.OperatingSystem = string(softwareupdateconfiguration.OperatingSystemTypeLinux) } + if windows := updateConfiguration.Windows; windows != nil { + w := Windows{ + Classifications: strings.Split(strings.ReplaceAll(string(pointer.From(windows.IncludedUpdateClassifications)), " ", ""), ","), + ExcludedKbs: pointer.From(windows.ExcludedKbNumbers), + IncludedKbs: pointer.From(windows.IncludedKbNumbers), + RebootSetting: pointer.From(windows.RebootSetting), + } - state.Linux = []Linux{l} - state.OperatingSystem = string(softwareupdateconfiguration.OperatingSystemTypeLinux) - } - if windows := updateConfiguration.Windows; windows != nil { - w := Windows{ - Classifications: strings.Split(strings.ReplaceAll(string(pointer.From(windows.IncludedUpdateClassifications)), " ", ""), ","), - ExcludedKbs: pointer.From(windows.ExcludedKbNumbers), - IncludedKbs: pointer.From(windows.IncludedKbNumbers), - RebootSetting: pointer.From(windows.RebootSetting), - } + if !features.FourPointOhBeta() && len(strings.Split(string(pointer.From(windows.IncludedUpdateClassifications)), ", ")) == 1 { + w.Classification = string(pointer.From(windows.IncludedUpdateClassifications)) + } - if !features.FourPointOhBeta() && len(strings.Split(string(pointer.From(windows.IncludedUpdateClassifications)), ", ")) == 1 { - w.Classification = string(pointer.From(windows.IncludedUpdateClassifications)) + state.Windows = []Windows{w} + state.OperatingSystem = string(softwareupdateconfiguration.OperatingSystemTypeWindows) } - - state.Windows = []Windows{w} - state.OperatingSystem = string(softwareupdateconfiguration.OperatingSystemTypeWindows) - } - if targets := updateConfiguration.Targets; targets != nil { - t := Target{} - aq := make([]AzureQuery, 0) - for _, v := range pointer.From(targets.AzureQueries) { - tagsList := make([]Tag, 0) - tagFilter := "" - if tags := v.TagSettings; tags != nil { - for k, vals := range pointer.From(tags.Tags) { - tagsList = append(tagsList, Tag{ - Tag: k, - Values: vals, - }) + if targets := updateConfiguration.Targets; targets != nil { + t := Target{} + aq := make([]AzureQuery, 0) + for _, v := range pointer.From(targets.AzureQueries) { + tagsList := make([]Tag, 0) + tagFilter := "" + if tags := v.TagSettings; tags != nil { + for k, vals := range pointer.From(tags.Tags) { + tagsList = append(tagsList, Tag{ + Tag: k, + Values: vals, + }) + } + tagFilter = string(pointer.From(tags.FilterOperator)) } - tagFilter = string(pointer.From(tags.FilterOperator)) + aq = append(aq, AzureQuery{ + Scope: pointer.From(v.Scope), + Locations: pointer.From(v.Locations), + Tags: tagsList, + TagFilter: tagFilter, + }) } - aq = append(aq, AzureQuery{ - Scope: pointer.From(v.Scope), - Locations: pointer.From(v.Locations), - Tags: tagsList, - TagFilter: tagFilter, - }) - } - t.AzureQueries = aq + t.AzureQueries = aq - naq := make([]NonAzureQuery, 0) - for _, v := range pointer.From(targets.NonAzureQueries) { - naq = append(naq, NonAzureQuery{ - FunctionAlias: pointer.From(v.FunctionAlias), - WorkspaceId: pointer.From(v.WorkspaceId), - }) - } + naq := make([]NonAzureQuery, 0) + for _, v := range pointer.From(targets.NonAzureQueries) { + naq = append(naq, NonAzureQuery{ + FunctionAlias: pointer.From(v.FunctionAlias), + WorkspaceId: pointer.From(v.WorkspaceId), + }) + } - t.NonAzureQueries = naq - state.Targets = []Target{t} - } + t.NonAzureQueries = naq + state.Targets = []Target{t} + } - state.VirtualMachines = pointer.From(updateConfiguration.AzureVirtualMachines) - state.NonAzureComputerNames = pointer.From(updateConfiguration.NonAzureComputerNames) - - schedule := Schedule{ - Description: pointer.From(scheduleConfiguration.Description), - StartTime: pointer.From(scheduleConfiguration.StartTime), - StartTimeOffsetMinutes: pointer.From(scheduleConfiguration.StartTimeOffsetMinutes), - ExpiryTime: pointer.From(scheduleConfiguration.ExpiryTime), - ExpiryTimeOffsetMinutes: pointer.From(scheduleConfiguration.ExpiryTimeOffsetMinutes), - IsEnabled: pointer.From(scheduleConfiguration.IsEnabled), - NextRun: pointer.From(scheduleConfiguration.NextRun), - NextRunOffsetMinutes: pointer.From(scheduleConfiguration.NextRunOffsetMinutes), - Interval: int(pointer.From(scheduleConfiguration.Interval)), - Frequency: string(pointer.From(scheduleConfiguration.Frequency)), - CreationTime: pointer.From(scheduleConfiguration.CreationTime), - LastModifiedTime: pointer.From(scheduleConfiguration.LastModifiedTime), - TimeZone: pointer.From(scheduleConfiguration.TimeZone), - } + state.VirtualMachines = pointer.From(updateConfiguration.AzureVirtualMachines) + state.NonAzureComputerNames = pointer.From(updateConfiguration.NonAzureComputerNames) + + schedule := Schedule{ + Description: pointer.From(scheduleConfiguration.Description), + StartTime: pointer.From(scheduleConfiguration.StartTime), + StartTimeOffsetMinutes: pointer.From(scheduleConfiguration.StartTimeOffsetMinutes), + ExpiryTime: pointer.From(scheduleConfiguration.ExpiryTime), + ExpiryTimeOffsetMinutes: pointer.From(scheduleConfiguration.ExpiryTimeOffsetMinutes), + IsEnabled: pointer.From(scheduleConfiguration.IsEnabled), + NextRun: pointer.From(scheduleConfiguration.NextRun), + NextRunOffsetMinutes: pointer.From(scheduleConfiguration.NextRunOffsetMinutes), + Interval: int(pointer.From(scheduleConfiguration.Interval)), + Frequency: string(pointer.From(scheduleConfiguration.Frequency)), + CreationTime: pointer.From(scheduleConfiguration.CreationTime), + LastModifiedTime: pointer.From(scheduleConfiguration.LastModifiedTime), + TimeZone: pointer.From(scheduleConfiguration.TimeZone), + } - // (@jackofallops) - Advanced Schedule info is never returned so we'll pull it in from Config until the tracked issue is resolved - // Tracking Issue: https://github.com/Azure/azure-rest-api-specs/issues/24436 - if advSchedule := scheduleConfiguration.AdvancedSchedule; advSchedule != nil { - schedule.AdvancedWeekDays = pointer.From(advSchedule.WeekDays) - if monthDays := pointer.From(advSchedule.MonthDays); len(monthDays) > 0 { - advMonthDays := make([]int, 0) - for _, v := range monthDays { - advMonthDays = append(advMonthDays, int(v)) + // (@jackofallops) - Advanced Schedule info is never returned so we'll pull it in from Config until the tracked issue is resolved + // Tracking Issue: https://github.com/Azure/azure-rest-api-specs/issues/24436 + if advSchedule := scheduleConfiguration.AdvancedSchedule; advSchedule != nil { + schedule.AdvancedWeekDays = pointer.From(advSchedule.WeekDays) + if monthDays := pointer.From(advSchedule.MonthDays); len(monthDays) > 0 { + advMonthDays := make([]int, 0) + for _, v := range monthDays { + advMonthDays = append(advMonthDays, int(v)) + } + schedule.AdvancedMonthDays = advMonthDays } - schedule.AdvancedMonthDays = advMonthDays - } - if monthlyOccurrence := pointer.From(advSchedule.MonthlyOccurrences); len(monthlyOccurrence) > 0 { - mo := make([]MonthlyOccurrence, 0) - for _, v := range monthlyOccurrence { - mo = append(mo, MonthlyOccurrence{ - Occurrence: int(pointer.From(v.Occurrence)), - Day: string(pointer.From(v.Day)), - }) + if monthlyOccurrence := pointer.From(advSchedule.MonthlyOccurrences); len(monthlyOccurrence) > 0 { + mo := make([]MonthlyOccurrence, 0) + for _, v := range monthlyOccurrence { + mo = append(mo, MonthlyOccurrence{ + Occurrence: int(pointer.From(v.Occurrence)), + Day: string(pointer.From(v.Day)), + }) + } + schedule.MonthlyOccurrence = mo } - schedule.MonthlyOccurrence = mo - } - } else { - if weekDays, ok := meta.ResourceData.GetOk("schedule.0.advanced_week_days"); ok { - wd := make([]string, 0) - for _, v := range weekDays.([]interface{}) { - wd = append(wd, v.(string)) + } else { + if weekDays, ok := meta.ResourceData.GetOk("schedule.0.advanced_week_days"); ok { + wd := make([]string, 0) + for _, v := range weekDays.([]interface{}) { + wd = append(wd, v.(string)) + } + schedule.AdvancedWeekDays = wd } - schedule.AdvancedWeekDays = wd - } - if monthDays, ok := meta.ResourceData.GetOk("schedule.0.advanced_month_days"); ok { - md := make([]int, 0) - for _, v := range monthDays.([]interface{}) { - md = append(md, v.(int)) + if monthDays, ok := meta.ResourceData.GetOk("schedule.0.advanced_month_days"); ok { + md := make([]int, 0) + for _, v := range monthDays.([]interface{}) { + md = append(md, v.(int)) + } + schedule.AdvancedMonthDays = md } - schedule.AdvancedMonthDays = md - } - if monthlyOccurrence, ok := meta.ResourceData.GetOk("schedule.0.monthly_occurrence"); ok { - mos := make([]MonthlyOccurrence, 0) - if moRaw, ok := monthlyOccurrence.([]interface{}); ok { - for _, v := range moRaw { - mo := v.(map[string]interface{}) - mos = append(mos, MonthlyOccurrence{ - Occurrence: mo["occurrence"].(int), - Day: mo["day"].(string), - }) + if monthlyOccurrence, ok := meta.ResourceData.GetOk("schedule.0.monthly_occurrence"); ok { + mos := make([]MonthlyOccurrence, 0) + if moRaw, ok := monthlyOccurrence.([]interface{}); ok { + for _, v := range moRaw { + mo := v.(map[string]interface{}) + mos = append(mos, MonthlyOccurrence{ + Occurrence: mo["occurrence"].(int), + Day: mo["day"].(string), + }) + } } + schedule.MonthlyOccurrence = mos } - schedule.MonthlyOccurrence = mos } - } - state.Schedule = []Schedule{schedule} + state.Schedule = []Schedule{schedule} - if tasks := props.Tasks; tasks != nil { - if pre := tasks.PreTask; pre != nil { - state.PreTask = []UpdateTask{{ - Source: pointer.From(pre.Source), - Parameters: pointer.From(pre.Parameters), - }} - } - if post := tasks.PostTask; post != nil { - state.PostTask = []UpdateTask{{ - Source: pointer.From(post.Source), - Parameters: pointer.From(post.Parameters), - }} + if tasks := props.Tasks; tasks != nil { + if pre := tasks.PreTask; pre != nil { + state.PreTask = []UpdateTask{{ + Source: pointer.From(pre.Source), + Parameters: pointer.From(pre.Parameters), + }} + } + if post := tasks.PostTask; post != nil { + state.PostTask = []UpdateTask{{ + Source: pointer.From(post.Source), + Parameters: pointer.From(post.Parameters), + }} + } } } @@ -983,7 +985,7 @@ func (m SoftwareUpdateConfigurationResource) Update() sdk.ResourceFunc { return fmt.Errorf("decoding: %+v", err) } - resp, err := client.SoftwareUpdateConfigurationsGetByName(ctx, *id, softwareupdateconfiguration.SoftwareUpdateConfigurationsGetByNameOperationOptions{}) + resp, err := client.GetByName(ctx, *id, softwareupdateconfiguration.DefaultGetByNameOperationOptions()) if err != nil { return fmt.Errorf("reading %s: %+v", *id, err) } @@ -1171,7 +1173,7 @@ func (m SoftwareUpdateConfigurationResource) Update() sdk.ResourceFunc { } } - if _, err = client.SoftwareUpdateConfigurationsCreate(ctx, *id, *existing, softwareupdateconfiguration.SoftwareUpdateConfigurationsCreateOperationOptions{}); err != nil { + if _, err = client.Create(ctx, *id, *existing, softwareupdateconfiguration.DefaultCreateOperationOptions()); err != nil { return fmt.Errorf("creating %s: %v", id, err) } @@ -1190,7 +1192,7 @@ func (m SoftwareUpdateConfigurationResource) Delete() sdk.ResourceFunc { } meta.Logger.Infof("deleting %s", *id) client := meta.Client.Automation.SoftwareUpdateConfigClient - if _, err = client.SoftwareUpdateConfigurationsDelete(ctx, *id, softwareupdateconfiguration.SoftwareUpdateConfigurationsDeleteOperationOptions{}); err != nil { + if _, err = client.Delete(ctx, *id, softwareupdateconfiguration.DefaultDeleteOperationOptions()); err != nil { return fmt.Errorf("deleting %s: %v", *id, err) } return nil diff --git a/internal/services/automation/automation_software_update_configuration_resource_test.go b/internal/services/automation/automation_software_update_configuration_resource_test.go index ae863aa90de7..0cdaa020c000 100644 --- a/internal/services/automation/automation_software_update_configuration_resource_test.go +++ b/internal/services/automation/automation_software_update_configuration_resource_test.go @@ -41,7 +41,7 @@ func (a SoftwareUpdateConfigurationResource) Exists(ctx context.Context, client if err != nil { return nil, err } - resp, err := client.Automation.SoftwareUpdateConfigClient.SoftwareUpdateConfigurationsGetByName(ctx, *id, softwareupdateconfiguration.SoftwareUpdateConfigurationsGetByNameOperationOptions{}) + resp, err := client.Automation.SoftwareUpdateConfigClient.GetByName(ctx, *id, softwareupdateconfiguration.DefaultGetByNameOperationOptions()) if err != nil { return nil, fmt.Errorf("retrieving %s: %+v", *id, err) } diff --git a/internal/services/connections/managed_api_data_source.go b/internal/services/connections/managed_api_data_source.go index 930bb5c2e561..b2f9806b4dc9 100644 --- a/internal/services/connections/managed_api_data_source.go +++ b/internal/services/connections/managed_api_data_source.go @@ -49,7 +49,7 @@ func dataSourceManagedApiRead(d *schema.ResourceData, meta interface{}) error { location := location.Normalize(d.Get("location").(string)) id := managedapis.NewManagedApiID(subscriptionId, location, d.Get("name").(string)) - resp, err := client.ManagedApisGet(ctx, id) + resp, err := client.Get(ctx, id) if err != nil { if response.WasNotFound(resp.HttpResponse) { return fmt.Errorf("%s was not found", err) diff --git a/internal/services/hybridcompute/arc_private_link_scope_resource.go b/internal/services/hybridcompute/arc_private_link_scope_resource.go index a035750a4522..100eb75091d4 100644 --- a/internal/services/hybridcompute/arc_private_link_scope_resource.go +++ b/internal/services/hybridcompute/arc_private_link_scope_resource.go @@ -75,7 +75,7 @@ func (a ArcPrivateLinkScopeResource) Create() sdk.ResourceFunc { client := metadata.Client.HybridCompute.PrivateLinkScopesClient subscriptionId := metadata.Client.Account.SubscriptionId id := privatelinkscopes.NewProviderPrivateLinkScopeID(subscriptionId, model.ResourceGroupName, model.Name) - existing, err := client.PrivateLinkScopesGet(ctx, id) + existing, err := client.Get(ctx, id) if err != nil && !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for existing %s: %+v", id, err) } @@ -99,7 +99,7 @@ func (a ArcPrivateLinkScopeResource) Create() sdk.ResourceFunc { properties.Properties.PublicNetworkAccess = &publicNetwork - if _, err := client.PrivateLinkScopesCreateOrUpdate(ctx, id, properties); err != nil { + if _, err := client.CreateOrUpdate(ctx, id, properties); err != nil { return fmt.Errorf("creating %s: %+v", id, err) } @@ -125,7 +125,7 @@ func (a ArcPrivateLinkScopeResource) Update() sdk.ResourceFunc { return fmt.Errorf("decoding: %+v", err) } - existing, err := client.PrivateLinkScopesGet(ctx, *id) + existing, err := client.Get(ctx, *id) if err != nil { return fmt.Errorf("retrieving %s: %+v", *id, err) } @@ -147,7 +147,7 @@ func (a ArcPrivateLinkScopeResource) Update() sdk.ResourceFunc { properties.Tags = &model.Tags } - if _, err := client.PrivateLinkScopesCreateOrUpdate(ctx, *id, *properties); err != nil { + if _, err := client.CreateOrUpdate(ctx, *id, *properties); err != nil { return fmt.Errorf("updating %s: %+v", id, err) } @@ -168,7 +168,7 @@ func (a ArcPrivateLinkScopeResource) Read() sdk.ResourceFunc { return err } - existing, err := client.PrivateLinkScopesGet(ctx, *id) + existing, err := client.Get(ctx, *id) if err != nil { if response.WasNotFound(existing.HttpResponse) { return metadata.MarkAsGone(id) @@ -208,7 +208,7 @@ func (a ArcPrivateLinkScopeResource) Delete() sdk.ResourceFunc { return err } - if err := client.PrivateLinkScopesDeleteThenPoll(ctx, *id); err != nil { + if err := client.DeleteThenPoll(ctx, *id); err != nil { return fmt.Errorf("deleting %s: %+v", *id, err) } diff --git a/internal/services/hybridcompute/arc_private_link_scope_resource_test.go b/internal/services/hybridcompute/arc_private_link_scope_resource_test.go index ff1f6bebda98..a3e2451a9b9a 100644 --- a/internal/services/hybridcompute/arc_private_link_scope_resource_test.go +++ b/internal/services/hybridcompute/arc_private_link_scope_resource_test.go @@ -99,7 +99,7 @@ func (r ArcPrivateLinkScopeResource) Exists(ctx context.Context, clients *client client := clients.HybridCompute.PrivateLinkScopesClient - resp, err := client.PrivateLinkScopesGet(ctx, *id) + resp, err := client.Get(ctx, *id) exists := false if err != nil { if response.WasNotFound(resp.HttpResponse) { diff --git a/internal/services/loganalytics/log_analytics_query_pack_resource.go b/internal/services/loganalytics/log_analytics_query_pack_resource.go index cfaed2f7233c..770d90df703d 100644 --- a/internal/services/loganalytics/log_analytics_query_pack_resource.go +++ b/internal/services/loganalytics/log_analytics_query_pack_resource.go @@ -77,7 +77,7 @@ func (r LogAnalyticsQueryPackResource) Create() sdk.ResourceFunc { id := querypacks.NewQueryPackID(subscriptionId, model.ResourceGroupName, model.Name) - existing, err := client.QueryPacksGet(ctx, id) + existing, err := client.Get(ctx, id) if err != nil && !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for existing %s: %+v", id, err) } @@ -92,7 +92,7 @@ func (r LogAnalyticsQueryPackResource) Create() sdk.ResourceFunc { Tags: &model.Tags, } - if resp, err := client.QueryPacksCreateOrUpdate(ctx, id, *properties); err != nil { + if resp, err := client.CreateOrUpdate(ctx, id, *properties); err != nil { // update check logic once the issue https://github.com/Azure/azure-rest-api-specs/issues/19603 is fixed if !response.WasStatusCode(resp.HttpResponse, http.StatusCreated) { return fmt.Errorf("creating %s: %+v", id, err) @@ -121,7 +121,7 @@ func (r LogAnalyticsQueryPackResource) Update() sdk.ResourceFunc { return fmt.Errorf("decoding: %+v", err) } - resp, err := client.QueryPacksGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { return fmt.Errorf("retrieving %s: %+v", *id, err) } @@ -135,7 +135,7 @@ func (r LogAnalyticsQueryPackResource) Update() sdk.ResourceFunc { properties.Tags = &model.Tags } - if resp, err := client.QueryPacksCreateOrUpdate(ctx, *id, *properties); err != nil { + if resp, err := client.CreateOrUpdate(ctx, *id, *properties); err != nil { // update check logic once the issue https://github.com/Azure/azure-rest-api-specs/issues/19603 is fixed if !response.WasStatusCode(resp.HttpResponse, http.StatusCreated) { return fmt.Errorf("updating %s: %+v", *id, err) @@ -158,7 +158,7 @@ func (r LogAnalyticsQueryPackResource) Read() sdk.ResourceFunc { return err } - resp, err := client.QueryPacksGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { return metadata.MarkAsGone(id) @@ -198,7 +198,7 @@ func (r LogAnalyticsQueryPackResource) Delete() sdk.ResourceFunc { return err } - if _, err := client.QueryPacksDelete(ctx, *id); err != nil { + if _, err := client.Delete(ctx, *id); err != nil { return fmt.Errorf("deleting %s: %+v", id, err) } diff --git a/internal/services/loganalytics/log_analytics_query_pack_resource_test.go b/internal/services/loganalytics/log_analytics_query_pack_resource_test.go index c44cf3134203..4ca9e1ef941a 100644 --- a/internal/services/loganalytics/log_analytics_query_pack_resource_test.go +++ b/internal/services/loganalytics/log_analytics_query_pack_resource_test.go @@ -25,7 +25,7 @@ func (r LogAnalyticsQueryPackResource) Exists(ctx context.Context, client *clien return nil, err } - resp, err := client.LogAnalytics.QueryPacksClient.QueryPacksGet(ctx, *id) + resp, err := client.LogAnalytics.QueryPacksClient.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { return utils.Bool(false), nil diff --git a/internal/services/media/media_content_key_policy_resource.go b/internal/services/media/media_content_key_policy_resource.go index fb8f7b5e092d..46a45d48641e 100644 --- a/internal/services/media/media_content_key_policy_resource.go +++ b/internal/services/media/media_content_key_policy_resource.go @@ -485,7 +485,7 @@ func resourceMediaContentKeyPolicyCreateUpdate(d *pluginsdk.ResourceData, meta i id := contentkeypolicies.NewContentKeyPolicyID(subscriptionID, d.Get("resource_group_name").(string), d.Get("media_services_account_name").(string), d.Get("name").(string)) if d.IsNewResource() { - existing, err := client.ContentKeyPoliciesGet(ctx, id) + existing, err := client.Get(ctx, id) if err != nil { if !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for presence of %s: %+v", id, err) @@ -512,7 +512,7 @@ func resourceMediaContentKeyPolicyCreateUpdate(d *pluginsdk.ResourceData, meta i payload.Properties.Options = *options } - if _, err := client.ContentKeyPoliciesCreateOrUpdate(ctx, id, payload); err != nil { + if _, err := client.CreateOrUpdate(ctx, id, payload); err != nil { return fmt.Errorf("creating/updating %s: %+v", id, err) } @@ -531,7 +531,7 @@ func resourceMediaContentKeyPolicyRead(d *pluginsdk.ResourceData, meta interface return err } - resp, err := client.ContentKeyPoliciesGetPolicyPropertiesWithSecrets(ctx, *id) + resp, err := client.GetPolicyPropertiesWithSecrets(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { log.Printf("[INFO] %s was not found - removing from state", id) @@ -570,7 +570,7 @@ func resourceMediaContentKeyPolicyDelete(d *pluginsdk.ResourceData, meta interfa return err } - if _, err = client.ContentKeyPoliciesDelete(ctx, *id); err != nil { + if _, err = client.Delete(ctx, *id); err != nil { return fmt.Errorf("deleting %s: %+v", id, err) } diff --git a/internal/services/media/media_content_key_policy_resource_test.go b/internal/services/media/media_content_key_policy_resource_test.go index 1075b5c3d6fa..65ec89f88c3e 100644 --- a/internal/services/media/media_content_key_policy_resource_test.go +++ b/internal/services/media/media_content_key_policy_resource_test.go @@ -101,7 +101,7 @@ func (r MediaContentKeyPolicyResource) Exists(ctx context.Context, clients *clie return nil, err } - resp, err := clients.Media.V20220801Client.ContentKeyPolicies.ContentKeyPoliciesGet(ctx, *id) + resp, err := clients.Media.V20220801Client.ContentKeyPolicies.Get(ctx, *id) if err != nil { return nil, fmt.Errorf("retrieving %s: %+v", *id, err) } diff --git a/internal/services/media/media_service_account_filter_resource.go b/internal/services/media/media_service_account_filter_resource.go index 7319b6636287..b871fef1b386 100644 --- a/internal/services/media/media_service_account_filter_resource.go +++ b/internal/services/media/media_service_account_filter_resource.go @@ -218,7 +218,7 @@ func (r AccountFilterResource) Create() sdk.ResourceFunc { id := accountfilters.NewAccountFilterID(subscriptionId, state.ResourceGroupName, state.MediaServicesAccountName, state.Name) metadata.Logger.Infof("creating %s", id) - existing, err := client.AccountFiltersGet(ctx, id) + existing, err := client.Get(ctx, id) if err != nil && !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for the presence of an existing %s: %+v", id, err) } @@ -239,7 +239,7 @@ func (r AccountFilterResource) Create() sdk.ResourceFunc { } } - if _, err = client.AccountFiltersCreateOrUpdate(ctx, id, input); err != nil { + if _, err = client.CreateOrUpdate(ctx, id, input); err != nil { return fmt.Errorf("creating %s: %+v", id, err) } @@ -260,7 +260,7 @@ func (r AccountFilterResource) Read() sdk.ResourceFunc { } metadata.Logger.Infof("retrieving %s", *id) - resp, err := client.AccountFiltersGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { metadata.Logger.Infof("%s was not found - removing from state!", *id) @@ -307,7 +307,7 @@ func (r AccountFilterResource) Update() sdk.ResourceFunc { return err } - resp, err := client.AccountFiltersGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { return fmt.Errorf("retrieving %s: %+v", *id, err) } @@ -330,7 +330,7 @@ func (r AccountFilterResource) Update() sdk.ResourceFunc { existing.Properties.Tracks = expandAccountFilterTrackSelections(state.TrackSelection) } - if _, err := client.AccountFiltersCreateOrUpdate(ctx, *id, *existing); err != nil { + if _, err := client.CreateOrUpdate(ctx, *id, *existing); err != nil { return fmt.Errorf("updating %s: %+v", *id, err) } return nil @@ -349,7 +349,7 @@ func (r AccountFilterResource) Delete() sdk.ResourceFunc { } metadata.Logger.Infof("deleting %s..", *id) - resp, err := client.AccountFiltersDelete(ctx, *id) + resp, err := client.Delete(ctx, *id) if err != nil && !response.WasNotFound(resp.HttpResponse) { return fmt.Errorf("deleting %s: %+v", *id, err) } diff --git a/internal/services/media/media_service_account_filter_resource_test.go b/internal/services/media/media_service_account_filter_resource_test.go index c192ecfea860..fe8b2b969a4f 100644 --- a/internal/services/media/media_service_account_filter_resource_test.go +++ b/internal/services/media/media_service_account_filter_resource_test.go @@ -98,7 +98,7 @@ func (AccountFilterResource) Exists(ctx context.Context, clients *clients.Client return nil, err } - resp, err := clients.Media.V20220801Client.AccountFilters.AccountFiltersGet(ctx, *id) + resp, err := clients.Media.V20220801Client.AccountFilters.Get(ctx, *id) if err != nil { return nil, fmt.Errorf("retrieving %s: %+v", *id, err) } diff --git a/internal/services/monitor/monitor_alert_processing_rule_action_group_resource.go b/internal/services/monitor/monitor_alert_processing_rule_action_group_resource.go index 3a73f374a324..4ca23637ba7a 100644 --- a/internal/services/monitor/monitor_alert_processing_rule_action_group_resource.go +++ b/internal/services/monitor/monitor_alert_processing_rule_action_group_resource.go @@ -73,7 +73,7 @@ func (r AlertProcessingRuleActionGroupResource) Create() sdk.ResourceFunc { subscriptionId := metadata.Client.Account.SubscriptionId id := alertprocessingrules.NewActionRuleID(subscriptionId, model.ResourceGroupName, model.Name) - existing, err := client.AlertProcessingRulesGetByName(ctx, id) + existing, err := client.GetByName(ctx, id) if err != nil && !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for presence of existing %s: %+v", id, err) } @@ -98,7 +98,7 @@ func (r AlertProcessingRuleActionGroupResource) Create() sdk.ResourceFunc { Tags: &model.Tags, } - if _, err := client.AlertProcessingRulesCreateOrUpdate(ctx, id, alertProcessingRule); err != nil { + if _, err := client.CreateOrUpdate(ctx, id, alertProcessingRule); err != nil { return fmt.Errorf("creating %s: %+v", id, err) } @@ -124,7 +124,7 @@ func (r AlertProcessingRuleActionGroupResource) Update() sdk.ResourceFunc { return fmt.Errorf("decoding: %+v", err) } - resp, err := client.AlertProcessingRulesGetByName(ctx, *id) + resp, err := client.GetByName(ctx, *id) if err != nil { return fmt.Errorf("retrieving %s: %+v", *id, err) } @@ -168,7 +168,7 @@ func (r AlertProcessingRuleActionGroupResource) Update() sdk.ResourceFunc { model.Tags = &resourceModel.Tags } - if _, err := client.AlertProcessingRulesCreateOrUpdate(ctx, *id, *model); err != nil { + if _, err := client.CreateOrUpdate(ctx, *id, *model); err != nil { return fmt.Errorf("updating %s: %+v", *id, err) } return nil @@ -187,7 +187,7 @@ func (r AlertProcessingRuleActionGroupResource) Read() sdk.ResourceFunc { return err } - resp, err := client.AlertProcessingRulesGetByName(ctx, *id) + resp, err := client.GetByName(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { return metadata.MarkAsGone(id) @@ -247,12 +247,12 @@ func (r AlertProcessingRuleActionGroupResource) Delete() sdk.ResourceFunc { Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { client := metadata.Client.Monitor.AlertProcessingRulesClient - id, err := alertprocessingrules.ParseActionRuleIDInsensitively(metadata.ResourceData.Id()) + id, err := alertprocessingrules.ParseActionRuleID(metadata.ResourceData.Id()) if err != nil { return err } - if _, err := client.AlertProcessingRulesDelete(ctx, *id); err != nil { + if _, err := client.Delete(ctx, *id); err != nil { return fmt.Errorf("deleting %s: %+v", *id, err) } diff --git a/internal/services/monitor/monitor_alert_processing_rule_action_group_resource_test.go b/internal/services/monitor/monitor_alert_processing_rule_action_group_resource_test.go index 88a7c3d74ae3..d90500c864f7 100644 --- a/internal/services/monitor/monitor_alert_processing_rule_action_group_resource_test.go +++ b/internal/services/monitor/monitor_alert_processing_rule_action_group_resource_test.go @@ -99,12 +99,12 @@ func TestAccMonitorAlertProcessingRuleActionGroup_update(t *testing.T) { } func (r MonitorAlertProcessingRuleActionGroupResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { - id, err := alertprocessingrules.ParseActionRuleIDInsensitively(state.ID) + id, err := alertprocessingrules.ParseActionRuleID(state.ID) if err != nil { return nil, err } - resp, err := clients.Monitor.AlertProcessingRulesClient.AlertProcessingRulesGetByName(ctx, *id) + resp, err := clients.Monitor.AlertProcessingRulesClient.GetByName(ctx, *id) if err != nil { return nil, fmt.Errorf("retrieving (%s): %+v", *id, err) } diff --git a/internal/services/monitor/monitor_alert_processing_rule_suppression_resource.go b/internal/services/monitor/monitor_alert_processing_rule_suppression_resource.go index 62eced3fe7ad..b856babed519 100644 --- a/internal/services/monitor/monitor_alert_processing_rule_suppression_resource.go +++ b/internal/services/monitor/monitor_alert_processing_rule_suppression_resource.go @@ -63,7 +63,7 @@ func (r AlertProcessingRuleSuppressionResource) Create() sdk.ResourceFunc { subscriptionId := metadata.Client.Account.SubscriptionId id := alertprocessingrules.NewActionRuleID(subscriptionId, model.ResourceGroupName, model.Name) - existing, err := client.AlertProcessingRulesGetByName(ctx, id) + existing, err := client.GetByName(ctx, id) if err != nil && !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for presence of existing %s: %+v", id, err) } @@ -87,7 +87,7 @@ func (r AlertProcessingRuleSuppressionResource) Create() sdk.ResourceFunc { Tags: &model.Tags, } - if _, err := client.AlertProcessingRulesCreateOrUpdate(ctx, id, alertProcessingRule); err != nil { + if _, err := client.CreateOrUpdate(ctx, id, alertProcessingRule); err != nil { return fmt.Errorf("creating %s: %+v", id, err) } @@ -113,7 +113,7 @@ func (r AlertProcessingRuleSuppressionResource) Update() sdk.ResourceFunc { return fmt.Errorf("decoding: %+v", err) } - resp, err := client.AlertProcessingRulesGetByName(ctx, *id) + resp, err := client.GetByName(ctx, *id) if err != nil { return fmt.Errorf("retrieving %s: %+v", *id, err) } @@ -155,7 +155,7 @@ func (r AlertProcessingRuleSuppressionResource) Update() sdk.ResourceFunc { model.Tags = &resourceModel.Tags } - if _, err := client.AlertProcessingRulesCreateOrUpdate(ctx, *id, *model); err != nil { + if _, err := client.CreateOrUpdate(ctx, *id, *model); err != nil { return fmt.Errorf("updating %s: %+v", *id, err) } return nil @@ -174,7 +174,7 @@ func (r AlertProcessingRuleSuppressionResource) Read() sdk.ResourceFunc { return err } - resp, err := client.AlertProcessingRulesGetByName(ctx, *id) + resp, err := client.GetByName(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { return metadata.MarkAsGone(id) @@ -210,13 +210,8 @@ func (r AlertProcessingRuleSuppressionResource) Read() sdk.ResourceFunc { state.Scopes = properties.Scopes - if properties.Conditions != nil { - state.Condition = flattenAlertProcessingRuleConditions(properties.Conditions) - } - - if properties.Schedule != nil { - state.Schedule = flattenAlertProcessingRuleSchedule(properties.Schedule) - } + state.Condition = flattenAlertProcessingRuleConditions(properties.Conditions) + state.Schedule = flattenAlertProcessingRuleSchedule(properties.Schedule) return metadata.Encode(&state) }, @@ -233,7 +228,7 @@ func (r AlertProcessingRuleSuppressionResource) Delete() sdk.ResourceFunc { return err } - if _, err := client.AlertProcessingRulesDelete(ctx, *id); err != nil { + if _, err := client.Delete(ctx, *id); err != nil { return fmt.Errorf("deleting %s: %+v", *id, err) } diff --git a/internal/services/monitor/monitor_alert_processing_rule_suppression_resource_test.go b/internal/services/monitor/monitor_alert_processing_rule_suppression_resource_test.go index ab3600653700..bbaa87086ecf 100644 --- a/internal/services/monitor/monitor_alert_processing_rule_suppression_resource_test.go +++ b/internal/services/monitor/monitor_alert_processing_rule_suppression_resource_test.go @@ -104,7 +104,7 @@ func (r MonitorAlertProcessingRuleSuppressionResource) Exists(ctx context.Contex return nil, err } - resp, err := clients.Monitor.AlertProcessingRulesClient.AlertProcessingRulesGetByName(ctx, *id) + resp, err := clients.Monitor.AlertProcessingRulesClient.GetByName(ctx, *id) if err != nil { return nil, fmt.Errorf("retrieving (%s): %+v", *id, err) } diff --git a/internal/services/netapp/netapp_volume_group_sap_hana_data_source.go b/internal/services/netapp/netapp_volume_group_sap_hana_data_source.go index 199e1a999de6..fe17700996ff 100644 --- a/internal/services/netapp/netapp_volume_group_sap_hana_data_source.go +++ b/internal/services/netapp/netapp_volume_group_sap_hana_data_source.go @@ -6,10 +6,10 @@ package netapp import ( "context" "fmt" - "net/http" "time" "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups" @@ -256,31 +256,30 @@ func (r NetAppVolumeGroupSapHanaDataSource) Read() sdk.ResourceFunc { id := volumegroups.NewVolumeGroupID(metadata.Client.Account.SubscriptionId, state.ResourceGroupName, state.AccountName, state.Name) - resp, err := client.VolumeGroupsGet(ctx, id) + resp, err := client.Get(ctx, id) if err != nil { - if resp.HttpResponse.StatusCode == http.StatusNotFound { + if response.WasNotFound(resp.HttpResponse) { return fmt.Errorf("%s was not found", id) } return fmt.Errorf("retrieving %s: %v", id, err) } - model := resp.Model - if model == nil { - return fmt.Errorf("retrieving %s: model was nil", id) - } - - state.Location = location.Normalize(pointer.From(model.Location)) - state.ApplicationIdentifier = pointer.From(model.Properties.GroupMetaData.ApplicationIdentifier) - state.GroupDescription = pointer.From(model.Properties.GroupMetaData.GroupDescription) - - volumes, err := flattenNetAppVolumeGroupVolumes(ctx, model.Properties.Volumes, metadata) - if err != nil { - return fmt.Errorf("setting `volume`: %+v", err) - } - - state.Volumes = volumes - metadata.SetID(id) + if model := resp.Model; model != nil { + state.Location = location.Normalize(pointer.From(model.Location)) + if props := model.Properties; props != nil { + if groupMetaData := props.GroupMetaData; groupMetaData != nil { + state.ApplicationIdentifier = pointer.From(groupMetaData.ApplicationIdentifier) + state.GroupDescription = pointer.From(groupMetaData.GroupDescription) + } + + volumes, err := flattenNetAppVolumeGroupVolumes(ctx, props.Volumes, metadata) + if err != nil { + return fmt.Errorf("setting `volume`: %+v", err) + } + state.Volumes = volumes + } + } return metadata.Encode(&state) }, diff --git a/internal/services/netapp/netapp_volume_group_sap_hana_resource.go b/internal/services/netapp/netapp_volume_group_sap_hana_resource.go index 4c245834cabb..15824f02970f 100644 --- a/internal/services/netapp/netapp_volume_group_sap_hana_resource.go +++ b/internal/services/netapp/netapp_volume_group_sap_hana_resource.go @@ -7,10 +7,11 @@ import ( "context" "fmt" "log" - "net/http" "strings" "time" + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" @@ -321,8 +322,8 @@ func (r NetAppVolumeGroupSapHanaResource) Create() sdk.ResourceFunc { id := volumegroups.NewVolumeGroupID(subscriptionId, model.ResourceGroupName, model.AccountName, model.Name) metadata.Logger.Infof("Import check for %s", id) - existing, err := client.VolumeGroupsGet(ctx, id) - if err != nil && existing.HttpResponse.StatusCode != http.StatusNotFound { + existing, err := client.Get(ctx, id) + if err != nil && !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for presence of existing %s: %+v", id, err) } @@ -369,7 +370,7 @@ func (r NetAppVolumeGroupSapHanaResource) Create() sdk.ResourceFunc { }, } - err = client.VolumeGroupsCreateThenPoll(ctx, id, parameters) + err = client.CreateThenPoll(ctx, id, parameters) if err != nil { return fmt.Errorf("creating %s: %+v", id, err) } @@ -567,9 +568,9 @@ func (r NetAppVolumeGroupSapHanaResource) Read() sdk.ResourceFunc { return err } - existing, err := client.VolumeGroupsGet(ctx, pointer.From(id)) + existing, err := client.Get(ctx, pointer.From(id)) if err != nil { - if existing.HttpResponse.StatusCode == http.StatusNotFound { + if response.WasNotFound(existing.HttpResponse) { return metadata.MarkAsGone(id) } return fmt.Errorf("retrieving %s: %v", id, err) @@ -613,9 +614,9 @@ func (r NetAppVolumeGroupSapHanaResource) Delete() sdk.ResourceFunc { return err } - existing, err := client.VolumeGroupsGet(ctx, pointer.From(id)) + existing, err := client.Get(ctx, pointer.From(id)) if err != nil { - if existing.HttpResponse.StatusCode == http.StatusNotFound { + if response.WasNotFound(existing.HttpResponse) { return metadata.MarkAsGone(id) } return fmt.Errorf("retrieving %s: %v", id, err) @@ -633,7 +634,7 @@ func (r NetAppVolumeGroupSapHanaResource) Delete() sdk.ResourceFunc { } // Removing Volume Group - if err = client.VolumeGroupsDeleteThenPoll(ctx, pointer.From(id)); err != nil { + if err = client.DeleteThenPoll(ctx, pointer.From(id)); err != nil { return fmt.Errorf("deleting %s: %+v", pointer.From(id), err) } diff --git a/internal/services/netapp/netapp_volume_group_sap_hana_resource_test.go b/internal/services/netapp/netapp_volume_group_sap_hana_resource_test.go index 43f9f7eaf767..d8417d970fac 100644 --- a/internal/services/netapp/netapp_volume_group_sap_hana_resource_test.go +++ b/internal/services/netapp/netapp_volume_group_sap_hana_resource_test.go @@ -6,9 +6,9 @@ package netapp_test import ( "context" "fmt" - "net/http" "testing" + "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups" "github.com/hashicorp/terraform-plugin-testing/terraform" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" @@ -135,10 +135,10 @@ func (t NetAppVolumeGroupSapHanaResource) Exists(ctx context.Context, clients *c return nil, err } - resp, err := clients.NetApp.VolumeGroupClient.VolumeGroupsGet(ctx, *id) + resp, err := clients.NetApp.VolumeGroupClient.Get(ctx, *id) if err != nil { - if resp.HttpResponse.StatusCode == http.StatusNotFound { + if response.WasNotFound(resp.HttpResponse) { return utils.Bool(false), nil } return nil, fmt.Errorf("retrieving %s: %+v", id, err) diff --git a/internal/services/netapp/netapp_volume_helper.go b/internal/services/netapp/netapp_volume_helper.go index 095e54c43bed..847afa879b55 100644 --- a/internal/services/netapp/netapp_volume_helper.go +++ b/internal/services/netapp/netapp_volume_helper.go @@ -716,7 +716,7 @@ func netappVolumeStateRefreshFunc(ctx context.Context, client *volumes.VolumesCl func netappVolumeGroupStateRefreshFunc(ctx context.Context, client *volumegroups.VolumeGroupsClient, id volumegroups.VolumeGroupId) pluginsdk.StateRefreshFunc { return func() (interface{}, string, error) { - res, err := client.VolumeGroupsGet(ctx, id) + res, err := client.Get(ctx, id) if err != nil { if !response.WasNotFound(res.HttpResponse) { return nil, "", fmt.Errorf("retrieving %s: %s", id, err) diff --git a/internal/services/orbital/contact_profile_resource.go b/internal/services/orbital/contact_profile_resource.go index 6c079a15059d..710919f3f14f 100644 --- a/internal/services/orbital/contact_profile_resource.go +++ b/internal/services/orbital/contact_profile_resource.go @@ -115,7 +115,7 @@ func (r ContactProfileResource) Create() sdk.ResourceFunc { subscriptionId := metadata.Client.Account.SubscriptionId id := contactprofile.NewContactProfileID(subscriptionId, model.ResourceGroup, model.Name) - existing, err := client.ContactProfilesGet(ctx, id) + existing, err := client.Get(ctx, id) if err != nil && !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for presence of existing %s: %+v", id, err) } @@ -152,7 +152,7 @@ func (r ContactProfileResource) Create() sdk.ResourceFunc { Tags: &model.Tags, } - if err := client.ContactProfilesCreateOrUpdateThenPoll(ctx, id, contactProfile); err != nil { + if err := client.CreateOrUpdateThenPoll(ctx, id, contactProfile); err != nil { return fmt.Errorf("creating %s: %+v", id, err) } @@ -172,7 +172,7 @@ func (r ContactProfileResource) Read() sdk.ResourceFunc { return err } - resp, err := client.ContactProfilesGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { return metadata.MarkAsGone(id) @@ -220,7 +220,7 @@ func (r ContactProfileResource) Delete() sdk.ResourceFunc { metadata.Logger.Infof("deleting %s", *id) - if err := client.ContactProfilesDeleteThenPoll(ctx, *id); err != nil { + if err := client.DeleteThenPoll(ctx, *id); err != nil { return fmt.Errorf("deleting %s: %+v", *id, err) } @@ -273,7 +273,7 @@ func (r ContactProfileResource) Update() sdk.ResourceFunc { Tags: &state.Tags, } - if err := client.ContactProfilesCreateOrUpdateThenPoll(ctx, *id, contactProfile); err != nil { + if err := client.CreateOrUpdateThenPoll(ctx, *id, contactProfile); err != nil { return fmt.Errorf("updating %s: %+v", *id, err) } } diff --git a/internal/services/orbital/contact_profile_resource_test.go b/internal/services/orbital/contact_profile_resource_test.go index 0fc679b13772..e717adf3f711 100644 --- a/internal/services/orbital/contact_profile_resource_test.go +++ b/internal/services/orbital/contact_profile_resource_test.go @@ -76,7 +76,7 @@ func (r ContactProfileResource) Exists(ctx context.Context, client *clients.Clie return nil, err } - resp, err := client.Orbital.ContactProfileClient.ContactProfilesGet(ctx, *id) + resp, err := client.Orbital.ContactProfileClient.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { return utils.Bool(false), nil diff --git a/internal/services/policy/remediation_management_group.go b/internal/services/policy/remediation_management_group.go index dd28c7ed51ef..836ed9281fe0 100644 --- a/internal/services/policy/remediation_management_group.go +++ b/internal/services/policy/remediation_management_group.go @@ -139,14 +139,14 @@ func resourceArmManagementGroupPolicyRemediationCreateUpdate(d *pluginsdk.Resour id := remediations.NewProviders2RemediationID(managementID.Name, d.Get("name").(string)) if d.IsNewResource() { - existing, err := client.RemediationsGetAtManagementGroup(ctx, id) + existing, err := client.GetAtManagementGroup(ctx, id) if err != nil { if !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for presence of existing %s: %+v", id.ID(), err) } } - if existing.Model != nil && existing.Model.Id != nil && *existing.Model.Id != "" { - return tf.ImportAsExistsError("azurerm_management_group_policy_remediation", *existing.Model.Id) + if existing.Model != nil { + return tf.ImportAsExistsError("azurerm_management_group_policy_remediation", id.ID()) } } @@ -154,7 +154,7 @@ func resourceArmManagementGroupPolicyRemediationCreateUpdate(d *pluginsdk.Resour Properties: readRemediationProperties(d), } - if _, err := client.RemediationsCreateOrUpdateAtManagementGroup(ctx, id, parameters); err != nil { + if _, err := client.CreateOrUpdateAtManagementGroup(ctx, id, parameters); err != nil { return fmt.Errorf("creating/updating %s: %+v", id.ID(), err) } @@ -173,7 +173,7 @@ func resourceArmManagementGroupPolicyRemediationRead(d *pluginsdk.ResourceData, return fmt.Errorf("reading Policy Remediation: %+v", err) } - resp, err := client.RemediationsGetAtManagementGroup(ctx, *id) + resp, err := client.GetAtManagementGroup(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { log.Printf("[INFO] %s does not exist - removing from state", id.ID()) @@ -202,7 +202,7 @@ func resourceArmManagementGroupPolicyRemediationDelete(d *pluginsdk.ResourceData // we have to cancel the remediation first before deleting it when the resource_discovery_mode is set to ReEvaluateCompliance // therefore we first retrieve the remediation to see if the resource_discovery_mode is switched to ReEvaluateCompliance - existing, err := client.RemediationsGetAtManagementGroup(ctx, *id) + existing, err := client.GetAtManagementGroup(ctx, *id) if err != nil { if response.WasNotFound(existing.HttpResponse) { return nil @@ -212,7 +212,7 @@ func resourceArmManagementGroupPolicyRemediationDelete(d *pluginsdk.ResourceData if err := waitForRemediationToDelete(ctx, existing.Model.Properties, id.ID(), d.Timeout(pluginsdk.TimeoutDelete), func() error { - _, err := client.RemediationsCancelAtManagementGroup(ctx, *id) + _, err := client.CancelAtManagementGroup(ctx, *id) return err }, managementGroupPolicyRemediationCancellationRefreshFunc(ctx, client, *id), @@ -220,7 +220,7 @@ func resourceArmManagementGroupPolicyRemediationDelete(d *pluginsdk.ResourceData return err } - _, err = client.RemediationsDeleteAtManagementGroup(ctx, *id) + _, err = client.DeleteAtManagementGroup(ctx, *id) return err } @@ -228,7 +228,7 @@ func resourceArmManagementGroupPolicyRemediationDelete(d *pluginsdk.ResourceData func managementGroupPolicyRemediationCancellationRefreshFunc(ctx context.Context, client *remediations.RemediationsClient, id remediations.Providers2RemediationId) pluginsdk.StateRefreshFunc { return func() (interface{}, string, error) { - resp, err := client.RemediationsGetAtManagementGroup(ctx, id) + resp, err := client.GetAtManagementGroup(ctx, id) if err != nil { return nil, "", fmt.Errorf("issuing read request for %s: %+v", id.ID(), err) } diff --git a/internal/services/policy/remediation_management_group_test.go b/internal/services/policy/remediation_management_group_test.go index 671d658149ff..96175e80f5d0 100644 --- a/internal/services/policy/remediation_management_group_test.go +++ b/internal/services/policy/remediation_management_group_test.go @@ -55,7 +55,7 @@ func (r ManagementGroupPolicyRemediationResource) Exists(ctx context.Context, cl return nil, err } - resp, err := client.Policy.RemediationsClient.RemediationsGetAtManagementGroup(ctx, *id) + resp, err := client.Policy.RemediationsClient.GetAtManagementGroup(ctx, *id) if err != nil || resp.Model == nil { if response.WasNotFound(resp.HttpResponse) { return utils.Bool(false), nil diff --git a/internal/services/policy/remediation_resource.go b/internal/services/policy/remediation_resource.go index 15ebe62b8d18..10cd04558af6 100644 --- a/internal/services/policy/remediation_resource.go +++ b/internal/services/policy/remediation_resource.go @@ -134,14 +134,14 @@ func resourceArmResourcePolicyRemediationCreateUpdate(d *pluginsdk.ResourceData, id := remediations.NewScopedRemediationID(resourceId, d.Get("name").(string)) if d.IsNewResource() { - existing, err := client.RemediationsGetAtResource(ctx, id) + existing, err := client.GetAtResource(ctx, id) if err != nil { if !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for presence of existing %s: %+v", id.ID(), err) } } - if existing.Model != nil && existing.Model.Id != nil && *existing.Model.Id != "" { - return tf.ImportAsExistsError("azurerm_resource_policy_remediation", *existing.Model.Id) + if existing.Model != nil { + return tf.ImportAsExistsError("azurerm_resource_policy_remediation", id.ID()) } } @@ -149,7 +149,7 @@ func resourceArmResourcePolicyRemediationCreateUpdate(d *pluginsdk.ResourceData, Properties: readRemediationProperties(d), } - if _, err := client.RemediationsCreateOrUpdateAtResource(ctx, id, parameters); err != nil { + if _, err := client.CreateOrUpdateAtResource(ctx, id, parameters); err != nil { return fmt.Errorf("creating/updating %s: %+v", id.ID(), err) } @@ -167,7 +167,7 @@ func resourceArmResourcePolicyRemediationRead(d *pluginsdk.ResourceData, meta in if err != nil { return fmt.Errorf("parsing Policy Scoped Remediation ID: %+v", err) } - resp, err := client.RemediationsGetAtResource(ctx, *id) + resp, err := client.GetAtResource(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { log.Printf("[INFO] %s does not exist - removing from state", id.ID()) @@ -195,7 +195,7 @@ func resourceArmResourcePolicyRemediationDelete(d *pluginsdk.ResourceData, meta // we have to cancel the remediation first before deleting it when the resource_discovery_mode is set to ReEvaluateCompliance // therefore we first retrieve the remediation to see if the resource_discovery_mode is switched to ReEvaluateCompliance - existing, err := client.RemediationsGetAtResource(ctx, *id) + existing, err := client.GetAtResource(ctx, *id) if err != nil { if response.WasNotFound(existing.HttpResponse) { return nil @@ -208,7 +208,7 @@ func resourceArmResourcePolicyRemediationDelete(d *pluginsdk.ResourceData, meta id.ID(), d.Timeout(pluginsdk.TimeoutDelete), func() error { - _, err := client.RemediationsCancelAtResource(ctx, *id) + _, err := client.CancelAtResource(ctx, *id) return err }, resourcePolicyRemediationCancellationRefreshFunc(ctx, client, *id), @@ -216,14 +216,14 @@ func resourceArmResourcePolicyRemediationDelete(d *pluginsdk.ResourceData, meta return err } - _, err = client.RemediationsDeleteAtResource(ctx, *id) + _, err = client.DeleteAtResource(ctx, *id) return err } func resourcePolicyRemediationCancellationRefreshFunc(ctx context.Context, client *remediations.RemediationsClient, id remediations.ScopedRemediationId) pluginsdk.StateRefreshFunc { return func() (interface{}, string, error) { - resp, err := client.RemediationsGetAtResource(ctx, id) + resp, err := client.GetAtResource(ctx, id) if err != nil { return nil, "", fmt.Errorf("issuing read request for %s: %+v", id.ID(), err) } diff --git a/internal/services/policy/remediation_resource_group.go b/internal/services/policy/remediation_resource_group.go index 34f3a6acd796..68c6e9bc685a 100644 --- a/internal/services/policy/remediation_resource_group.go +++ b/internal/services/policy/remediation_resource_group.go @@ -137,14 +137,14 @@ func resourceArmResourceGroupPolicyRemediationCreateUpdate(d *pluginsdk.Resource id := remediations.NewProviderRemediationID(resourceGroupId.SubscriptionId, resourceGroupId.ResourceGroup, d.Get("name").(string)) if d.IsNewResource() { - existing, err := client.RemediationsGetAtResourceGroup(ctx, id) + existing, err := client.GetAtResourceGroup(ctx, id) if err != nil { if !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for presence of existing %s: %+v", id.ID(), err) } } - if existing.Model != nil && existing.Model.Id != nil && *existing.Model.Id != "" { - return tf.ImportAsExistsError("azurerm_resource_group_policy_remediation", *existing.Model.Id) + if existing.Model != nil { + return tf.ImportAsExistsError("azurerm_resource_group_policy_remediation", id.ID()) } } @@ -152,7 +152,7 @@ func resourceArmResourceGroupPolicyRemediationCreateUpdate(d *pluginsdk.Resource Properties: readRemediationProperties(d), } - if _, err = client.RemediationsCreateOrUpdateAtResourceGroup(ctx, id, parameters); err != nil { + if _, err = client.CreateOrUpdateAtResourceGroup(ctx, id, parameters); err != nil { return fmt.Errorf("creating/updating %s: %+v", id.ID(), err) } @@ -173,7 +173,7 @@ func resourceArmResourceGroupPolicyRemediationRead(d *pluginsdk.ResourceData, me resourceGroupId := resourceParse.NewResourceGroupID(id.SubscriptionId, id.ResourceGroupName) - resp, err := client.RemediationsGetAtResourceGroup(ctx, *id) + resp, err := client.GetAtResourceGroup(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { log.Printf("[INFO] %s does not exist - removing from state", id.ID()) @@ -201,7 +201,7 @@ func resourceArmResourceGroupPolicyRemediationDelete(d *pluginsdk.ResourceData, // we have to cancel the remediation first before deleting it when the resource_discovery_mode is set to ReEvaluateCompliance // therefore we first retrieve the remediation to see if the resource_discovery_mode is switched to ReEvaluateCompliance - existing, err := client.RemediationsGetAtResourceGroup(ctx, *id) + existing, err := client.GetAtResourceGroup(ctx, *id) if err != nil { if response.WasNotFound(existing.HttpResponse) { return nil @@ -211,7 +211,7 @@ func resourceArmResourceGroupPolicyRemediationDelete(d *pluginsdk.ResourceData, if err := waitForRemediationToDelete(ctx, existing.Model.Properties, id.ID(), d.Timeout(pluginsdk.TimeoutDelete), func() error { - _, err := client.RemediationsCancelAtResourceGroup(ctx, *id) + _, err := client.CancelAtResourceGroup(ctx, *id) return err }, resourceGroupPolicyRemediationCancellationRefreshFunc(ctx, client, *id), @@ -219,14 +219,14 @@ func resourceArmResourceGroupPolicyRemediationDelete(d *pluginsdk.ResourceData, return fmt.Errorf("waiting for remediation to delete %s: %+v", id, err) } - _, err = client.RemediationsDeleteAtResourceGroup(ctx, *id) + _, err = client.DeleteAtResourceGroup(ctx, *id) return err } func resourceGroupPolicyRemediationCancellationRefreshFunc(ctx context.Context, client *remediations.RemediationsClient, id remediations.ProviderRemediationId) pluginsdk.StateRefreshFunc { return func() (interface{}, string, error) { - resp, err := client.RemediationsGetAtResourceGroup(ctx, id) + resp, err := client.GetAtResourceGroup(ctx, id) if err != nil { return nil, "", fmt.Errorf("issuing read request for %s: %+v", id.ID(), err) } diff --git a/internal/services/policy/remediation_resource_group_test.go b/internal/services/policy/remediation_resource_group_test.go index da396062a246..e2b3fe859e95 100644 --- a/internal/services/policy/remediation_resource_group_test.go +++ b/internal/services/policy/remediation_resource_group_test.go @@ -55,7 +55,7 @@ func (r ResourceGroupPolicyRemediationResource) Exists(ctx context.Context, clie return nil, err } - resp, err := client.Policy.RemediationsClient.RemediationsGetAtResourceGroup(ctx, *id) + resp, err := client.Policy.RemediationsClient.GetAtResourceGroup(ctx, *id) if err != nil || resp.Model == nil { if response.WasNotFound(resp.HttpResponse) { return utils.Bool(false), nil diff --git a/internal/services/policy/remediation_resource_test.go b/internal/services/policy/remediation_resource_test.go index c46f506ef437..81c79e914677 100644 --- a/internal/services/policy/remediation_resource_test.go +++ b/internal/services/policy/remediation_resource_test.go @@ -55,15 +55,15 @@ func (r ResourcePolicyRemediationResource) Exists(ctx context.Context, client *c return nil, err } - resp, err := client.Policy.RemediationsClient.RemediationsGetAtResource(ctx, *id) - if err != nil || resp.Model == nil { + resp, err := client.Policy.RemediationsClient.GetAtResource(ctx, *id) + if err != nil { if response.WasNotFound(resp.HttpResponse) { return utils.Bool(false), nil } return nil, fmt.Errorf("retrieving Policy Remediation %q: %+v", state.ID, err) } - return utils.Bool(resp.Model.Properties != nil), nil + return utils.Bool(resp.Model != nil), nil } func (r ResourcePolicyRemediationResource) template(data acceptance.TestData) string { diff --git a/internal/services/policy/remediation_subscription.go b/internal/services/policy/remediation_subscription.go index ba81212fc074..86132bda7a94 100644 --- a/internal/services/policy/remediation_subscription.go +++ b/internal/services/policy/remediation_subscription.go @@ -136,14 +136,14 @@ func resourceArmSubscriptionPolicyRemediationCreateUpdate(d *pluginsdk.ResourceD id := remediations.NewRemediationID(subscriptionId.SubscriptionId, d.Get("name").(string)) if d.IsNewResource() { - existing, err := client.RemediationsGetAtSubscription(ctx, id) + existing, err := client.GetAtSubscription(ctx, id) if err != nil { if !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for presence of existing %s: %+v", id.ID(), err) } } - if existing.Model != nil && existing.Model.Id != nil && *existing.Model.Id != "" { - return tf.ImportAsExistsError("azurerm_subscription_policy_remediation", *existing.Model.Id) + if existing.Model != nil { + return tf.ImportAsExistsError("azurerm_subscription_policy_remediation", id.ID()) } } @@ -151,7 +151,7 @@ func resourceArmSubscriptionPolicyRemediationCreateUpdate(d *pluginsdk.ResourceD Properties: readRemediationProperties(d), } - if _, err = client.RemediationsCreateOrUpdateAtSubscription(ctx, id, parameters); err != nil { + if _, err = client.CreateOrUpdateAtSubscription(ctx, id, parameters); err != nil { return fmt.Errorf("creating/updating %s: %+v", id.ID(), err) } @@ -172,7 +172,7 @@ func resourceArmSubscriptionPolicyRemediationRead(d *pluginsdk.ResourceData, met subscriptionId := commonids.NewSubscriptionID(id.SubscriptionId) - resp, err := client.RemediationsGetAtSubscription(ctx, *id) + resp, err := client.GetAtSubscription(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { log.Printf("[INFO] %s does not exist - removing from state", id.ID()) @@ -200,7 +200,7 @@ func resourceArmSubscriptionPolicyRemediationDelete(d *pluginsdk.ResourceData, m // we have to cancel the remediation first before deleting it when the resource_discovery_mode is set to ReEvaluateCompliance // therefore we first retrieve the remediation to see if the resource_discovery_mode is switched to ReEvaluateCompliance - existing, err := client.RemediationsGetAtSubscription(ctx, *id) + existing, err := client.GetAtSubscription(ctx, *id) if err != nil { if response.WasNotFound(existing.HttpResponse) { return nil @@ -210,7 +210,7 @@ func resourceArmSubscriptionPolicyRemediationDelete(d *pluginsdk.ResourceData, m if err := waitForRemediationToDelete(ctx, existing.Model.Properties, id.ID(), d.Timeout(pluginsdk.TimeoutDelete), func() error { - _, err := client.RemediationsCancelAtSubscription(ctx, *id) + _, err := client.CancelAtSubscription(ctx, *id) return err }, subscriptionPolicyRemediationCancellationRefreshFunc(ctx, client, *id), @@ -218,14 +218,14 @@ func resourceArmSubscriptionPolicyRemediationDelete(d *pluginsdk.ResourceData, m return err } - _, err = client.RemediationsDeleteAtSubscription(ctx, *id) + _, err = client.DeleteAtSubscription(ctx, *id) return err } func subscriptionPolicyRemediationCancellationRefreshFunc(ctx context.Context, client *remediations.RemediationsClient, id remediations.RemediationId) pluginsdk.StateRefreshFunc { return func() (interface{}, string, error) { - resp, err := client.RemediationsGetAtSubscription(ctx, id) + resp, err := client.GetAtSubscription(ctx, id) if err != nil { return nil, "", fmt.Errorf("issuing read request for %s: %+v", id.ID(), err) } diff --git a/internal/services/policy/remediation_subscription_test.go b/internal/services/policy/remediation_subscription_test.go index 00a7aff49362..1d8d7f572eaf 100644 --- a/internal/services/policy/remediation_subscription_test.go +++ b/internal/services/policy/remediation_subscription_test.go @@ -55,7 +55,7 @@ func (r SubscriptionPolicyRemediationResource) Exists(ctx context.Context, clien return nil, err } - resp, err := client.Policy.RemediationsClient.RemediationsGetAtSubscription(ctx, *id) + resp, err := client.Policy.RemediationsClient.GetAtSubscription(ctx, *id) if err != nil || resp.Model == nil { if response.WasNotFound(resp.HttpResponse) { return utils.Bool(false), nil diff --git a/internal/services/sentinel/sentinel_alert_rule.go b/internal/services/sentinel/sentinel_alert_rule.go index eadcb62c86a8..34ec45435628 100644 --- a/internal/services/sentinel/sentinel_alert_rule.go +++ b/internal/services/sentinel/sentinel_alert_rule.go @@ -22,7 +22,7 @@ func importSentinelAlertRule(expectKind alertrules.AlertRuleKind) pluginsdk.Impo } client := meta.(*clients.Client).Sentinel.AlertRulesClient - resp, err := client.AlertRulesGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { return nil, fmt.Errorf("retrieving Sentinel Alert Rule %q: %+v", id, err) } @@ -42,7 +42,7 @@ func importSentinelAlertRuleForTypedSdk(expectKind alertrules.AlertRuleKind) sdk } client := metadata.Client.Sentinel.AlertRulesClient - resp, err := client.AlertRulesGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { return fmt.Errorf("retrieving Sentinel Alert Rule %q: %+v", id, err) } diff --git a/internal/services/sentinel/sentinel_alert_rule_data_source.go b/internal/services/sentinel/sentinel_alert_rule_data_source.go index a2f1502661cc..448beaa79789 100644 --- a/internal/services/sentinel/sentinel_alert_rule_data_source.go +++ b/internal/services/sentinel/sentinel_alert_rule_data_source.go @@ -51,7 +51,7 @@ func dataSourceSentinelAlertRuleRead(d *pluginsdk.ResourceData, meta interface{} } id := alertrules.NewAlertRuleID(workspaceID.SubscriptionId, workspaceID.ResourceGroupName, workspaceID.WorkspaceName, name) - resp, err := client.AlertRulesGet(ctx, id) + resp, err := client.Get(ctx, id) if err != nil { if response.WasNotFound(resp.HttpResponse) { return fmt.Errorf("%q was not found", id) diff --git a/internal/services/sentinel/sentinel_alert_rule_fusion_resource.go b/internal/services/sentinel/sentinel_alert_rule_fusion_resource.go index bc80a581d979..82848170793d 100644 --- a/internal/services/sentinel/sentinel_alert_rule_fusion_resource.go +++ b/internal/services/sentinel/sentinel_alert_rule_fusion_resource.go @@ -137,7 +137,7 @@ func resourceSentinelAlertRuleFusionCreateUpdate(d *pluginsdk.ResourceData, meta id := alertrules.NewAlertRuleID(workspaceID.SubscriptionId, workspaceID.ResourceGroupName, workspaceID.WorkspaceName, name) if d.IsNewResource() { - resp, err := client.AlertRulesGet(ctx, id) + resp, err := client.Get(ctx, id) if err != nil { if !response.WasNotFound(resp.HttpResponse) { return fmt.Errorf("checking for existing %q: %+v", id, err) @@ -158,7 +158,7 @@ func resourceSentinelAlertRuleFusionCreateUpdate(d *pluginsdk.ResourceData, meta } if !d.IsNewResource() { - resp, err := client.AlertRulesGet(ctx, id) + resp, err := client.Get(ctx, id) if err != nil { return fmt.Errorf("retrieving %q: %+v", id, err) } @@ -171,7 +171,7 @@ func resourceSentinelAlertRuleFusionCreateUpdate(d *pluginsdk.ResourceData, meta } } - if _, err := client.AlertRulesCreateOrUpdate(ctx, id, params); err != nil { + if _, err := client.CreateOrUpdate(ctx, id, params); err != nil { return fmt.Errorf("creating Sentinel Alert Rule Fusion %q: %+v", id, err) } @@ -190,7 +190,7 @@ func resourceSentinelAlertRuleFusionRead(d *pluginsdk.ResourceData, meta interfa return err } - resp, err := client.AlertRulesGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { log.Printf("[DEBUG] %q was not found - removing from state!", id) @@ -235,7 +235,7 @@ func resourceSentinelAlertRuleFusionDelete(d *pluginsdk.ResourceData, meta inter return err } - if _, err := client.AlertRulesDelete(ctx, *id); err != nil { + if _, err := client.Delete(ctx, *id); err != nil { return fmt.Errorf("deleting Sentinel Alert Rule Fusion %q: %+v", id, err) } diff --git a/internal/services/sentinel/sentinel_alert_rule_fusion_resource_test.go b/internal/services/sentinel/sentinel_alert_rule_fusion_resource_test.go index 8bbe8532888a..e1e7bdfa0d10 100644 --- a/internal/services/sentinel/sentinel_alert_rule_fusion_resource_test.go +++ b/internal/services/sentinel/sentinel_alert_rule_fusion_resource_test.go @@ -106,7 +106,7 @@ func (r SentinelAlertRuleFusionResource) Exists(ctx context.Context, client *cli return nil, err } - resp, err := alertRuleClient.AlertRulesGet(ctx, *id) + resp, err := alertRuleClient.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { return utils.Bool(false), nil diff --git a/internal/services/sentinel/sentinel_alert_rule_machine_learning_behavior_analytics.go b/internal/services/sentinel/sentinel_alert_rule_machine_learning_behavior_analytics.go index 2b929ec5cc0e..c1054ce4817d 100644 --- a/internal/services/sentinel/sentinel_alert_rule_machine_learning_behavior_analytics.go +++ b/internal/services/sentinel/sentinel_alert_rule_machine_learning_behavior_analytics.go @@ -81,7 +81,7 @@ func resourceSentinelAlertRuleMLBehaviorAnalyticsCreateUpdate(d *pluginsdk.Resou id := alertrules.NewAlertRuleID(workspaceID.SubscriptionId, workspaceID.ResourceGroupName, workspaceID.WorkspaceName, name) if d.IsNewResource() { - resp, err := client.AlertRulesGet(ctx, id) + resp, err := client.Get(ctx, id) if err != nil { if !response.WasNotFound(resp.HttpResponse) { return fmt.Errorf("checking for existing Sentinel Alert Rule MLBehaviorAnalytics %q: %+v", id, err) @@ -101,7 +101,7 @@ func resourceSentinelAlertRuleMLBehaviorAnalyticsCreateUpdate(d *pluginsdk.Resou } if !d.IsNewResource() { - resp, err := client.AlertRulesGet(ctx, id) + resp, err := client.Get(ctx, id) if err != nil { return fmt.Errorf("retrieving Sentinel Alert Rule MLBehaviorAnalytics %q: %+v", id, err) } @@ -111,7 +111,7 @@ func resourceSentinelAlertRuleMLBehaviorAnalyticsCreateUpdate(d *pluginsdk.Resou } } - if _, err := client.AlertRulesCreateOrUpdate(ctx, id, params); err != nil { + if _, err := client.CreateOrUpdate(ctx, id, params); err != nil { return fmt.Errorf("creating Sentinel Alert Rule MLBehaviorAnalytics %q: %+v", id, err) } @@ -130,7 +130,7 @@ func resourceSentinelAlertRuleMLBehaviorAnalyticsRead(d *pluginsdk.ResourceData, return err } - resp, err := client.AlertRulesGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { log.Printf("[DEBUG] Sentinel Alert Rule MLBehaviorAnalytics %q was not found - removing from state!", id) @@ -172,7 +172,7 @@ func resourceSentinelAlertRuleMLBehaviorAnalyticsDelete(d *pluginsdk.ResourceDat return err } - if _, err := client.AlertRulesDelete(ctx, *id); err != nil { + if _, err := client.Delete(ctx, *id); err != nil { return fmt.Errorf("deleting Sentinel Alert Rule MLBehaviorAnalytics %q: %+v", id, err) } diff --git a/internal/services/sentinel/sentinel_alert_rule_machine_learning_behavior_analytics_test.go b/internal/services/sentinel/sentinel_alert_rule_machine_learning_behavior_analytics_test.go index 89db04bf8bd9..ffdf93b656e8 100644 --- a/internal/services/sentinel/sentinel_alert_rule_machine_learning_behavior_analytics_test.go +++ b/internal/services/sentinel/sentinel_alert_rule_machine_learning_behavior_analytics_test.go @@ -100,7 +100,7 @@ func (r SentinelAlertRuleMLBehaviorAnalyticsResource) Exists(ctx context.Context return nil, err } - resp, err := alertRuleClient.AlertRulesGet(ctx, *id) + resp, err := alertRuleClient.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { return utils.Bool(false), nil diff --git a/internal/services/sentinel/sentinel_alert_rule_ms_security_incident_resource.go b/internal/services/sentinel/sentinel_alert_rule_ms_security_incident_resource.go index 3ae4b612e4b7..8e80e17f30a7 100644 --- a/internal/services/sentinel/sentinel_alert_rule_ms_security_incident_resource.go +++ b/internal/services/sentinel/sentinel_alert_rule_ms_security_incident_resource.go @@ -143,7 +143,7 @@ func resourceSentinelAlertRuleMsSecurityIncidentCreateUpdate(d *pluginsdk.Resour id := alertrules.NewAlertRuleID(workspaceID.SubscriptionId, workspaceID.ResourceGroupName, workspaceID.WorkspaceName, name) if d.IsNewResource() { - resp, err := client.AlertRulesGet(ctx, id) + resp, err := client.Get(ctx, id) if err != nil { if !response.WasNotFound(resp.HttpResponse) { return fmt.Errorf("checking for existing Sentinel Alert Rule Ms Security Incident %q: %+v", id, err) @@ -178,7 +178,7 @@ func resourceSentinelAlertRuleMsSecurityIncidentCreateUpdate(d *pluginsdk.Resour } if !d.IsNewResource() { - resp, err := client.AlertRulesGet(ctx, id) + resp, err := client.Get(ctx, id) if err != nil { return fmt.Errorf("retrieving Sentinel Alert Rule Ms Security Incident %q: %+v", id, err) } @@ -188,7 +188,7 @@ func resourceSentinelAlertRuleMsSecurityIncidentCreateUpdate(d *pluginsdk.Resour } } - if _, err := client.AlertRulesCreateOrUpdate(ctx, id, param); err != nil { + if _, err := client.CreateOrUpdate(ctx, id, param); err != nil { return fmt.Errorf("creating Sentinel Alert Rule Ms Security Incident %q: %+v", id, err) } @@ -207,7 +207,7 @@ func resourceSentinelAlertRuleMsSecurityIncidentRead(d *pluginsdk.ResourceData, return err } - resp, err := client.AlertRulesGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { log.Printf("[DEBUG] Sentinel Alert Rule Ms Security Incident %q was not found - removing from state!", id) @@ -262,7 +262,7 @@ func resourceSentinelAlertRuleMsSecurityIncidentDelete(d *pluginsdk.ResourceData return err } - if _, err := client.AlertRulesDelete(ctx, *id); err != nil { + if _, err := client.Delete(ctx, *id); err != nil { return fmt.Errorf("deleting Sentinel Alert Rule Ms Security Incident %q: %+v", id, err) } diff --git a/internal/services/sentinel/sentinel_alert_rule_ms_security_incident_resource_test.go b/internal/services/sentinel/sentinel_alert_rule_ms_security_incident_resource_test.go index cca53b0106cc..bae1977ec560 100644 --- a/internal/services/sentinel/sentinel_alert_rule_ms_security_incident_resource_test.go +++ b/internal/services/sentinel/sentinel_alert_rule_ms_security_incident_resource_test.go @@ -142,7 +142,7 @@ func (t SentinelAlertRuleMsSecurityIncidentResource) Exists(ctx context.Context, return nil, err } - resp, err := clients.Sentinel.AlertRulesClient.AlertRulesGet(ctx, *id) + resp, err := clients.Sentinel.AlertRulesClient.Get(ctx, *id) if err != nil { return nil, fmt.Errorf("reading Sentinel Alert Rule Ms Security Incident %q: %v", id, err) } diff --git a/internal/services/sentinel/sentinel_alert_rule_nrt_resource.go b/internal/services/sentinel/sentinel_alert_rule_nrt_resource.go index e1afb63ab0d1..fc4beb9508f9 100644 --- a/internal/services/sentinel/sentinel_alert_rule_nrt_resource.go +++ b/internal/services/sentinel/sentinel_alert_rule_nrt_resource.go @@ -335,7 +335,7 @@ func resourceSentinelAlertRuleNrtCreateUpdate(d *pluginsdk.ResourceData, meta in id := alertrules.NewAlertRuleID(workspaceID.SubscriptionId, workspaceID.ResourceGroupName, workspaceID.WorkspaceName, name) if d.IsNewResource() { - resp, err := client.AlertRulesGet(ctx, id) + resp, err := client.Get(ctx, id) if err != nil { if !response.WasNotFound(resp.HttpResponse) { return fmt.Errorf("checking for existing %q: %+v", id, err) @@ -396,7 +396,7 @@ func resourceSentinelAlertRuleNrtCreateUpdate(d *pluginsdk.ResourceData, meta in // Service avoid concurrent update of this resource via checking the "etag" to guarantee it is the same value as last Read. if !d.IsNewResource() { - resp, err := client.AlertRulesGet(ctx, id) + resp, err := client.Get(ctx, id) if err != nil { return fmt.Errorf("retrieving %q: %+v", id, err) } @@ -410,7 +410,7 @@ func resourceSentinelAlertRuleNrtCreateUpdate(d *pluginsdk.ResourceData, meta in } } - if _, err := client.AlertRulesCreateOrUpdate(ctx, id, param); err != nil { + if _, err := client.CreateOrUpdate(ctx, id, param); err != nil { return fmt.Errorf("creating %q: %+v", id, err) } @@ -429,7 +429,7 @@ func resourceSentinelAlertRuleNrtRead(d *pluginsdk.ResourceData, meta interface{ return err } - resp, err := client.AlertRulesGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { log.Printf("[DEBUG] %q was not found - removing from state!", id) @@ -505,7 +505,7 @@ func resourceSentinelAlertRuleNrtDelete(d *pluginsdk.ResourceData, meta interfac return err } - if _, err := client.AlertRulesDelete(ctx, *id); err != nil { + if _, err := client.Delete(ctx, *id); err != nil { return fmt.Errorf("deleting Sentinel Alert Rule Nrt %q: %+v", id, err) } diff --git a/internal/services/sentinel/sentinel_alert_rule_nrt_resource_test.go b/internal/services/sentinel/sentinel_alert_rule_nrt_resource_test.go index 113a5944ff67..71bfaed166a6 100644 --- a/internal/services/sentinel/sentinel_alert_rule_nrt_resource_test.go +++ b/internal/services/sentinel/sentinel_alert_rule_nrt_resource_test.go @@ -135,7 +135,7 @@ func (t SentinelAlertRuleNrtResource) Exists(ctx context.Context, clients *clien return nil, err } - resp, err := clients.Sentinel.AlertRulesClient.AlertRulesGet(ctx, *id) + resp, err := clients.Sentinel.AlertRulesClient.Get(ctx, *id) if err != nil { return nil, fmt.Errorf("reading %q: %v", id, err) } diff --git a/internal/services/sentinel/sentinel_alert_rule_scheduled_resource.go b/internal/services/sentinel/sentinel_alert_rule_scheduled_resource.go index bb64bca2e76f..f0dea0bc6b75 100644 --- a/internal/services/sentinel/sentinel_alert_rule_scheduled_resource.go +++ b/internal/services/sentinel/sentinel_alert_rule_scheduled_resource.go @@ -366,7 +366,7 @@ func resourceSentinelAlertRuleScheduledCreateUpdate(d *pluginsdk.ResourceData, m id := alertrules.NewAlertRuleID(workspaceID.SubscriptionId, workspaceID.ResourceGroupName, workspaceID.WorkspaceName, name) if d.IsNewResource() { - resp, err := client.AlertRulesGet(ctx, id) + resp, err := client.Get(ctx, id) if err != nil { if !response.WasNotFound(resp.HttpResponse) { return fmt.Errorf("checking for existing Sentinel Alert Rule Scheduled %q: %+v", id, err) @@ -452,7 +452,7 @@ func resourceSentinelAlertRuleScheduledCreateUpdate(d *pluginsdk.ResourceData, m } if !d.IsNewResource() { - resp, err := client.AlertRulesGet(ctx, id) + resp, err := client.Get(ctx, id) if err != nil { return fmt.Errorf("retrieving Sentinel Alert Rule Scheduled %q: %+v", id, err) } @@ -462,7 +462,7 @@ func resourceSentinelAlertRuleScheduledCreateUpdate(d *pluginsdk.ResourceData, m } } - if _, err := client.AlertRulesCreateOrUpdate(ctx, id, param); err != nil { + if _, err := client.CreateOrUpdate(ctx, id, param); err != nil { return fmt.Errorf("creating Sentinel Alert Rule Scheduled %q: %+v", id, err) } @@ -481,7 +481,7 @@ func resourceSentinelAlertRuleScheduledRead(d *pluginsdk.ResourceData, meta inte return err } - resp, err := client.AlertRulesGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { log.Printf("[DEBUG] Sentinel Alert Rule Scheduled %q was not found - removing from state!", id) @@ -560,7 +560,7 @@ func resourceSentinelAlertRuleScheduledDelete(d *pluginsdk.ResourceData, meta in return err } - if _, err := client.AlertRulesDelete(ctx, *id); err != nil { + if _, err := client.Delete(ctx, *id); err != nil { return fmt.Errorf("deleting Sentinel Alert Rule Scheduled %q: %+v", id, err) } diff --git a/internal/services/sentinel/sentinel_alert_rule_scheduled_resource_test.go b/internal/services/sentinel/sentinel_alert_rule_scheduled_resource_test.go index d905a5058a1f..5dd9eb58c3b2 100644 --- a/internal/services/sentinel/sentinel_alert_rule_scheduled_resource_test.go +++ b/internal/services/sentinel/sentinel_alert_rule_scheduled_resource_test.go @@ -135,7 +135,7 @@ func (t SentinelAlertRuleScheduledResource) Exists(ctx context.Context, clients return nil, err } - resp, err := clients.Sentinel.AlertRulesClient.AlertRulesGet(ctx, *id) + resp, err := clients.Sentinel.AlertRulesClient.Get(ctx, *id) if err != nil { return nil, fmt.Errorf("reading Sentinel Alert Rule Scheduled %q: %v", id, err) } diff --git a/internal/services/sentinel/sentinel_alert_rule_threat_intelligence_resouce_test.go b/internal/services/sentinel/sentinel_alert_rule_threat_intelligence_resouce_test.go index 1d148fb24d67..67cffef7f988 100644 --- a/internal/services/sentinel/sentinel_alert_rule_threat_intelligence_resouce_test.go +++ b/internal/services/sentinel/sentinel_alert_rule_threat_intelligence_resouce_test.go @@ -100,7 +100,7 @@ func (r SentinelAlertRuleThreatIntelligenceResource) Exists(ctx context.Context, return nil, err } - resp, err := alertRuleClient.AlertRulesGet(ctx, *id) + resp, err := alertRuleClient.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { return utils.Bool(false), nil diff --git a/internal/services/sentinel/sentinel_alert_rule_threat_intelligence_resource.go b/internal/services/sentinel/sentinel_alert_rule_threat_intelligence_resource.go index f6c518c41115..b9c60da2c3c9 100644 --- a/internal/services/sentinel/sentinel_alert_rule_threat_intelligence_resource.go +++ b/internal/services/sentinel/sentinel_alert_rule_threat_intelligence_resource.go @@ -101,7 +101,7 @@ func (a AlertRuleThreatIntelligenceResource) Create() sdk.ResourceFunc { id := alertrules.NewAlertRuleID(workspaceID.SubscriptionId, workspaceID.ResourceGroupName, workspaceID.WorkspaceName, metaModel.Name) - resp, err := client.AlertRulesGet(ctx, id) + resp, err := client.Get(ctx, id) if err != nil { if !response.WasNotFound(resp.HttpResponse) { return fmt.Errorf("checking for existing %q: %+v", id, err) @@ -136,7 +136,7 @@ func (a AlertRuleThreatIntelligenceResource) Create() sdk.ResourceFunc { }, } - if _, err := client.AlertRulesCreateOrUpdate(ctx, id, param); err != nil { + if _, err := client.CreateOrUpdate(ctx, id, param); err != nil { return fmt.Errorf("creating %q: %+v", id, err) } @@ -157,7 +157,7 @@ func (a AlertRuleThreatIntelligenceResource) Read() sdk.ResourceFunc { return fmt.Errorf("parsing %+v", err) } - resp, err := client.AlertRulesGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { return metadata.MarkAsGone(id) @@ -198,7 +198,7 @@ func (a AlertRuleThreatIntelligenceResource) Delete() sdk.ResourceFunc { return fmt.Errorf("parsing %+v", err) } - if _, err := client.AlertRulesDelete(ctx, *id); err != nil { + if _, err := client.Delete(ctx, *id); err != nil { return fmt.Errorf("deleting %+v", err) } @@ -222,7 +222,7 @@ func (a AlertRuleThreatIntelligenceResource) Update() sdk.ResourceFunc { if err != nil { return fmt.Errorf("parsing %+v", err) } - resp, err := client.AlertRulesGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { return fmt.Errorf("reading %+v", err) } @@ -249,7 +249,7 @@ func (a AlertRuleThreatIntelligenceResource) Update() sdk.ResourceFunc { }, } - if _, err := client.AlertRulesCreateOrUpdate(ctx, *id, param); err != nil { + if _, err := client.CreateOrUpdate(ctx, *id, param); err != nil { return fmt.Errorf("updating %q: %+v", id, err) } diff --git a/internal/services/videoanalyzer/video_analyzer_edge_module_resource.go b/internal/services/videoanalyzer/video_analyzer_edge_module_resource.go index fc3706359c45..19e520fa12d2 100644 --- a/internal/services/videoanalyzer/video_analyzer_edge_module_resource.go +++ b/internal/services/videoanalyzer/video_analyzer_edge_module_resource.go @@ -69,7 +69,7 @@ func resourceVideoAnalyzerEdgeModuleCreateUpdate(d *pluginsdk.ResourceData, meta defer cancel() id := edgemodules.NewEdgeModuleID(subscriptionId, d.Get("resource_group_name").(string), d.Get("video_analyzer_name").(string), d.Get("name").(string)) if d.IsNewResource() { - existing, err := client.EdgeModulesGet(ctx, id) + existing, err := client.Get(ctx, id) if err != nil { if !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for existing %s: %+v", id, err) @@ -81,7 +81,7 @@ func resourceVideoAnalyzerEdgeModuleCreateUpdate(d *pluginsdk.ResourceData, meta } } - if _, err := client.EdgeModulesCreateOrUpdate(ctx, id, edgemodules.EdgeModuleEntity{}); err != nil { + if _, err := client.CreateOrUpdate(ctx, id, edgemodules.EdgeModuleEntity{}); err != nil { return fmt.Errorf("creating %s: %+v", id, err) } @@ -99,7 +99,7 @@ func resourceVideoAnalyzerEdgeModuleRead(d *pluginsdk.ResourceData, meta interfa return err } - resp, err := client.EdgeModulesGet(ctx, *id) + resp, err := client.Get(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { log.Printf("[INFO] %s was not found - removing from state", *id) @@ -127,7 +127,7 @@ func resourceVideoAnalyzerEdgeModuleDelete(d *pluginsdk.ResourceData, meta inter return err } - if _, err = client.EdgeModulesDelete(ctx, *id); err != nil { + if _, err = client.Delete(ctx, *id); err != nil { return fmt.Errorf("deleting %s: %+v", *id, err) } diff --git a/internal/services/videoanalyzer/video_analyzer_edge_module_resource_test.go b/internal/services/videoanalyzer/video_analyzer_edge_module_resource_test.go index f6faadcacd2d..209981713166 100644 --- a/internal/services/videoanalyzer/video_analyzer_edge_module_resource_test.go +++ b/internal/services/videoanalyzer/video_analyzer_edge_module_resource_test.go @@ -56,7 +56,7 @@ func (VideoAnalyzerEdgeModuleResource) Exists(ctx context.Context, clients *clie return nil, err } - resp, err := clients.VideoAnalyzer.EdgeModuleClient.EdgeModulesGet(ctx, *id) + resp, err := clients.VideoAnalyzer.EdgeModuleClient.Get(ctx, *id) if err != nil { return nil, fmt.Errorf("retrieving %s: %v", *id, err) } From 230122b9b1fdd30f17cacb2adeeb486d7de1ad0c Mon Sep 17 00:00:00 2001 From: Paulo Marques Date: Wed, 6 Sep 2023 14:43:55 -0700 Subject: [PATCH 123/336] New Resource/Data Source: `netapp_volume_quota_rule` (#23042) --- internal/services/netapp/client/client.go | 9 + internal/services/netapp/models/models.go | 104 +++++++ ...etapp_volume_group_sap_hana_data_source.go | 15 +- .../netapp_volume_group_sap_hana_resource.go | 23 +- .../services/netapp/netapp_volume_helper.go | 101 ++----- .../netapp_volume_quota_rule_data_source.go | 117 ++++++++ ...tapp_volume_quota_rule_data_source_test.go | 40 +++ .../netapp_volume_quota_rule_resource.go | 250 ++++++++++++++++ .../netapp_volume_quota_rule_resource_test.go | 271 ++++++++++++++++++ internal/services/netapp/registration.go | 2 + .../netapp/validate/volume_quota_rule_name.go | 19 ++ .../validate/volume_quota_rule_name_test.go | 74 +++++ ...le_quota_target_id_unix_validation_test.go | 65 +++++ ..._quota_rule_quota_target_id_validations.go | 61 ++++ ...quota_target_id_windows_validation_test.go | 86 ++++++ ...quota_rule_quota_target_validation_test.go | 91 ++++++ .../volume_quota_rule_quota_validations.go | 102 +++++++ .../2022-05-01/volumequotarules/README.md | 98 +++++++ .../2022-05-01/volumequotarules/client.go | 26 ++ .../2022-05-01/volumequotarules/constants.go | 113 ++++++++ .../2022-05-01/volumequotarules/id_volume.go | 153 ++++++++++ .../volumequotarules/id_volumequotarule.go | 166 +++++++++++ .../volumequotarules/method_create.go | 74 +++++ .../volumequotarules/method_delete.go | 70 +++++ .../2022-05-01/volumequotarules/method_get.go | 51 ++++ .../volumequotarules/method_listbyvolume.go | 52 ++++ .../volumequotarules/method_update.go | 74 +++++ .../volumequotarules/model_volumequotarule.go | 18 ++ .../model_volumequotarulepatch.go | 8 + .../model_volumequotaruleslist.go | 8 + .../model_volumequotarulesproperties.go | 11 + .../2022-05-01/volumequotarules/version.go | 12 + vendor/modules.txt | 1 + .../d/netapp_volume_quota_rule.html.markdown | 52 ++++ .../r/netapp_volume_quota_rule.html.markdown | 158 ++++++++++ 35 files changed, 2468 insertions(+), 107 deletions(-) create mode 100644 internal/services/netapp/models/models.go create mode 100644 internal/services/netapp/netapp_volume_quota_rule_data_source.go create mode 100644 internal/services/netapp/netapp_volume_quota_rule_data_source_test.go create mode 100644 internal/services/netapp/netapp_volume_quota_rule_resource.go create mode 100644 internal/services/netapp/netapp_volume_quota_rule_resource_test.go create mode 100644 internal/services/netapp/validate/volume_quota_rule_name.go create mode 100644 internal/services/netapp/validate/volume_quota_rule_name_test.go create mode 100644 internal/services/netapp/validate/volume_quota_rule_quota_target_id_unix_validation_test.go create mode 100644 internal/services/netapp/validate/volume_quota_rule_quota_target_id_validations.go create mode 100644 internal/services/netapp/validate/volume_quota_rule_quota_target_id_windows_validation_test.go create mode 100644 internal/services/netapp/validate/volume_quota_rule_quota_target_validation_test.go create mode 100644 internal/services/netapp/validate/volume_quota_rule_quota_validations.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/README.md create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/constants.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/id_volume.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/id_volumequotarule.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_create.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_delete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_get.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_listbyvolume.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_update.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotarule.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotarulepatch.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotaruleslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotarulesproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/version.go create mode 100644 website/docs/d/netapp_volume_quota_rule.html.markdown create mode 100644 website/docs/r/netapp_volume_quota_rule.html.markdown diff --git a/internal/services/netapp/client/client.go b/internal/services/netapp/client/client.go index 44bf51af4b6a..7aa9afe5740c 100644 --- a/internal/services/netapp/client/client.go +++ b/internal/services/netapp/client/client.go @@ -11,6 +11,7 @@ import ( "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/snapshotpolicy" "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/snapshots" "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups" + "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules" "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumes" "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumesreplication" "github.com/hashicorp/terraform-provider-azurerm/internal/common" @@ -22,6 +23,7 @@ type Client struct { VolumeClient *volumes.VolumesClient VolumeGroupClient *volumegroups.VolumeGroupsClient VolumeReplicationClient *volumesreplication.VolumesReplicationClient + VolumeQuotaRules *volumequotarules.VolumeQuotaRulesClient SnapshotClient *snapshots.SnapshotsClient SnapshotPoliciesClient *snapshotpolicy.SnapshotPolicyClient } @@ -57,6 +59,12 @@ func NewClient(o *common.ClientOptions) (*Client, error) { return nil, fmt.Errorf("building VolumeReplicationClient client: %+v", err) } + volumeQuotaRuleClient, err := volumequotarules.NewVolumeQuotaRulesClientWithBaseURI(o.Environment.ResourceManager) + o.Configure(volumeQuotaRuleClient.Client, o.Authorizers.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building VolumeQuotaRuleClient client: %+v", err) + } + snapshotClient, err := snapshots.NewSnapshotsClientWithBaseURI(o.Environment.ResourceManager) o.Configure(snapshotClient.Client, o.Authorizers.ResourceManager) if err != nil { @@ -75,6 +83,7 @@ func NewClient(o *common.ClientOptions) (*Client, error) { VolumeClient: volumeClient, VolumeGroupClient: volumeGroupClient, VolumeReplicationClient: volumeReplicationClient, + VolumeQuotaRules: volumeQuotaRuleClient, SnapshotClient: snapshotClient, SnapshotPoliciesClient: snapshotPoliciesClient, }, nil diff --git a/internal/services/netapp/models/models.go b/internal/services/netapp/models/models.go new file mode 100644 index 000000000000..d233f9e84d61 --- /dev/null +++ b/internal/services/netapp/models/models.go @@ -0,0 +1,104 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package models + +const ( + MaxQuotaTargetIDSizeInKiB int64 = 4294967295 +) + +type NetAppVolumeGroupVolume struct { + Id string `tfschema:"id"` + Name string `tfschema:"name"` + VolumePath string `tfschema:"volume_path"` + ServiceLevel string `tfschema:"service_level"` + SubnetId string `tfschema:"subnet_id"` + Protocols []string `tfschema:"protocols"` + SecurityStyle string `tfschema:"security_style"` + StorageQuotaInGB int64 `tfschema:"storage_quota_in_gb"` + ThroughputInMibps float64 `tfschema:"throughput_in_mibps"` + Tags map[string]string `tfschema:"tags"` + SnapshotDirectoryVisible bool `tfschema:"snapshot_directory_visible"` + CapacityPoolId string `tfschema:"capacity_pool_id"` + ProximityPlacementGroupId string `tfschema:"proximity_placement_group_id"` + VolumeSpecName string `tfschema:"volume_spec_name"` + ExportPolicy []ExportPolicyRule `tfschema:"export_policy_rule"` + MountIpAddresses []string `tfschema:"mount_ip_addresses"` + DataProtectionReplication []DataProtectionReplication `tfschema:"data_protection_replication"` + DataProtectionSnapshotPolicy []DataProtectionSnapshotPolicy `tfschema:"data_protection_snapshot_policy"` +} + +type NetAppVolumeGroupSapHanaModel struct { + Name string `tfschema:"name"` + ResourceGroupName string `tfschema:"resource_group_name"` + Location string `tfschema:"location"` + AccountName string `tfschema:"account_name"` + GroupDescription string `tfschema:"group_description"` + ApplicationIdentifier string `tfschema:"application_identifier"` + Volumes []NetAppVolumeGroupVolume `tfschema:"volume"` +} + +type NetAppVolumeGroupSapHanaDataSourceModel struct { + Name string `tfschema:"name"` + ResourceGroupName string `tfschema:"resource_group_name"` + Location string `tfschema:"location"` + AccountName string `tfschema:"account_name"` + GroupDescription string `tfschema:"group_description"` + ApplicationIdentifier string `tfschema:"application_identifier"` + Volumes []NetAppVolumeGroupVolume `tfschema:"volume"` +} + +type ExportPolicyRule struct { + RuleIndex int `tfschema:"rule_index"` + AllowedClients string `tfschema:"allowed_clients"` + Nfsv3Enabled bool `tfschema:"nfsv3_enabled"` + Nfsv41Enabled bool `tfschema:"nfsv41_enabled"` + UnixReadOnly bool `tfschema:"unix_read_only"` + UnixReadWrite bool `tfschema:"unix_read_write"` + RootAccessEnabled bool `tfschema:"root_access_enabled"` +} + +type DataProtectionReplication struct { + EndpointType string `tfschema:"endpoint_type"` + RemoteVolumeLocation string `tfschema:"remote_volume_location"` + RemoteVolumeResourceId string `tfschema:"remote_volume_resource_id"` + ReplicationFrequency string `tfschema:"replication_frequency"` +} + +type DataProtectionSnapshotPolicy struct { + DataProtectionSnapshotPolicy string `tfschema:"snapshot_policy_id"` +} + +type ReplicationSchedule string + +const ( + ReplicationSchedule10Minutes ReplicationSchedule = "10minutes" + ReplicationScheduleDaily ReplicationSchedule = "daily" + ReplicationScheduleHourly ReplicationSchedule = "hourly" +) + +func PossibleValuesForReplicationSchedule() []string { + return []string{ + string(ReplicationSchedule10Minutes), + string(ReplicationScheduleDaily), + string(ReplicationScheduleHourly), + } +} + +type NetAppVolumeQuotaRuleModel struct { + Name string `tfschema:"name"` + Location string `tfschema:"location"` + VolumeID string `tfschema:"volume_id"` + QuotaTarget string `tfschema:"quota_target"` + QuotaSizeInKiB int64 `tfschema:"quota_size_in_kib"` + QuotaType string `tfschema:"quota_type"` +} + +type NetAppVolumeQuotaRuleDataSourceModel struct { + Name string `tfschema:"name"` + Location string `tfschema:"location"` + VolumeID string `tfschema:"volume_id"` + QuotaTarget string `tfschema:"quota_target"` + QuotaSizeInKiB int64 `tfschema:"quota_size_in_kib"` + QuotaType string `tfschema:"quota_type"` +} diff --git a/internal/services/netapp/netapp_volume_group_sap_hana_data_source.go b/internal/services/netapp/netapp_volume_group_sap_hana_data_source.go index 199e1a999de6..62e6521d4aea 100644 --- a/internal/services/netapp/netapp_volume_group_sap_hana_data_source.go +++ b/internal/services/netapp/netapp_volume_group_sap_hana_data_source.go @@ -14,19 +14,10 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + netAppModels "github.com/hashicorp/terraform-provider-azurerm/internal/services/netapp/models" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" ) -type NetAppVolumeGroupSapHanaDataSourceModel struct { - Name string `tfschema:"name"` - ResourceGroupName string `tfschema:"resource_group_name"` - Location string `tfschema:"location"` - AccountName string `tfschema:"account_name"` - GroupDescription string `tfschema:"group_description"` - ApplicationIdentifier string `tfschema:"application_identifier"` - Volumes []NetAppVolumeGroupVolume `tfschema:"volume"` -} - var _ sdk.DataSource = NetAppVolumeGroupSapHanaDataSource{} type NetAppVolumeGroupSapHanaDataSource struct{} @@ -36,7 +27,7 @@ func (r NetAppVolumeGroupSapHanaDataSource) ResourceType() string { } func (r NetAppVolumeGroupSapHanaDataSource) ModelObject() interface{} { - return &NetAppVolumeGroupSapHanaDataSourceModel{} + return &netAppModels.NetAppVolumeGroupSapHanaDataSourceModel{} } func (r NetAppVolumeGroupSapHanaDataSource) IDValidationFunc() pluginsdk.SchemaValidateFunc { @@ -249,7 +240,7 @@ func (r NetAppVolumeGroupSapHanaDataSource) Read() sdk.ResourceFunc { client := metadata.Client.NetApp.VolumeGroupClient - var state NetAppVolumeGroupSapHanaDataSourceModel + var state netAppModels.NetAppVolumeGroupSapHanaDataSourceModel if err := metadata.Decode(&state); err != nil { return fmt.Errorf("decoding: %+v", err) } diff --git a/internal/services/netapp/netapp_volume_group_sap_hana_resource.go b/internal/services/netapp/netapp_volume_group_sap_hana_resource.go index 4c245834cabb..0cb2804b8aa5 100644 --- a/internal/services/netapp/netapp_volume_group_sap_hana_resource.go +++ b/internal/services/netapp/netapp_volume_group_sap_hana_resource.go @@ -21,6 +21,7 @@ import ( "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumesreplication" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + netAppModels "github.com/hashicorp/terraform-provider-azurerm/internal/services/netapp/models" netAppValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/netapp/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" @@ -29,20 +30,10 @@ import ( type NetAppVolumeGroupSapHanaResource struct{} -type NetAppVolumeGroupSapHanaModel struct { - Name string `tfschema:"name"` - ResourceGroupName string `tfschema:"resource_group_name"` - Location string `tfschema:"location"` - AccountName string `tfschema:"account_name"` - GroupDescription string `tfschema:"group_description"` - ApplicationIdentifier string `tfschema:"application_identifier"` - Volumes []NetAppVolumeGroupVolume `tfschema:"volume"` -} - var _ sdk.Resource = NetAppVolumeGroupSapHanaResource{} func (r NetAppVolumeGroupSapHanaResource) ModelObject() interface{} { - return &NetAppVolumeGroupSapHanaModel{} + return &netAppModels.NetAppVolumeGroupSapHanaModel{} } func (r NetAppVolumeGroupSapHanaResource) ResourceType() string { @@ -274,7 +265,7 @@ func (r NetAppVolumeGroupSapHanaResource) Arguments() map[string]*pluginsdk.Sche "replication_frequency": { Type: pluginsdk.TypeString, Required: true, - ValidateFunc: validation.StringInSlice(PossibleValuesForReplicationSchedule(), false), + ValidateFunc: validation.StringInSlice(netAppModels.PossibleValuesForReplicationSchedule(), false), }, }, }, @@ -313,7 +304,7 @@ func (r NetAppVolumeGroupSapHanaResource) Create() sdk.ResourceFunc { subscriptionId := metadata.Client.Account.SubscriptionId - var model NetAppVolumeGroupSapHanaModel + var model netAppModels.NetAppVolumeGroupSapHanaModel if err := metadata.Decode(&model); err != nil { return fmt.Errorf("decoding: %+v", err) } @@ -439,7 +430,7 @@ func (r NetAppVolumeGroupSapHanaResource) Update() sdk.ResourceFunc { } metadata.Logger.Infof("Decoding state for %s", id) - var state NetAppVolumeGroupSapHanaModel + var state netAppModels.NetAppVolumeGroupSapHanaModel if err := metadata.Decode(&state); err != nil { return err } @@ -562,7 +553,7 @@ func (r NetAppVolumeGroupSapHanaResource) Read() sdk.ResourceFunc { } metadata.Logger.Infof("Decoding state for %s", id) - var state NetAppVolumeGroupSapHanaModel + var state netAppModels.NetAppVolumeGroupSapHanaModel if err := metadata.Decode(&state); err != nil { return err } @@ -577,7 +568,7 @@ func (r NetAppVolumeGroupSapHanaResource) Read() sdk.ResourceFunc { metadata.SetID(id) - model := NetAppVolumeGroupSapHanaModel{ + model := netAppModels.NetAppVolumeGroupSapHanaModel{ Name: id.VolumeGroupName, AccountName: id.NetAppAccountName, Location: location.NormalizeNilable(existing.Model.Location), diff --git a/internal/services/netapp/netapp_volume_helper.go b/internal/services/netapp/netapp_volume_helper.go index 095e54c43bed..7aa12171a70b 100644 --- a/internal/services/netapp/netapp_volume_helper.go +++ b/internal/services/netapp/netapp_volume_helper.go @@ -17,69 +17,12 @@ import ( "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumes" "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumesreplication" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + netAppModels "github.com/hashicorp/terraform-provider-azurerm/internal/services/netapp/models" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" ) -type NetAppVolumeGroupVolume struct { - Id string `tfschema:"id"` - Name string `tfschema:"name"` - VolumePath string `tfschema:"volume_path"` - ServiceLevel string `tfschema:"service_level"` - SubnetId string `tfschema:"subnet_id"` - Protocols []string `tfschema:"protocols"` - SecurityStyle string `tfschema:"security_style"` - StorageQuotaInGB int64 `tfschema:"storage_quota_in_gb"` - ThroughputInMibps float64 `tfschema:"throughput_in_mibps"` - Tags map[string]string `tfschema:"tags"` - SnapshotDirectoryVisible bool `tfschema:"snapshot_directory_visible"` - CapacityPoolId string `tfschema:"capacity_pool_id"` - ProximityPlacementGroupId string `tfschema:"proximity_placement_group_id"` - VolumeSpecName string `tfschema:"volume_spec_name"` - ExportPolicy []ExportPolicyRule `tfschema:"export_policy_rule"` - MountIpAddresses []string `tfschema:"mount_ip_addresses"` - DataProtectionReplication []DataProtectionReplication `tfschema:"data_protection_replication"` - DataProtectionSnapshotPolicy []DataProtectionSnapshotPolicy `tfschema:"data_protection_snapshot_policy"` -} - -type ExportPolicyRule struct { - RuleIndex int `tfschema:"rule_index"` - AllowedClients string `tfschema:"allowed_clients"` - Nfsv3Enabled bool `tfschema:"nfsv3_enabled"` - Nfsv41Enabled bool `tfschema:"nfsv41_enabled"` - UnixReadOnly bool `tfschema:"unix_read_only"` - UnixReadWrite bool `tfschema:"unix_read_write"` - RootAccessEnabled bool `tfschema:"root_access_enabled"` -} - -type DataProtectionReplication struct { - EndpointType string `tfschema:"endpoint_type"` - RemoteVolumeLocation string `tfschema:"remote_volume_location"` - RemoteVolumeResourceId string `tfschema:"remote_volume_resource_id"` - ReplicationFrequency string `tfschema:"replication_frequency"` -} - -type DataProtectionSnapshotPolicy struct { - DataProtectionSnapshotPolicy string `tfschema:"snapshot_policy_id"` -} - -type ReplicationSchedule string - -const ( - ReplicationSchedule10Minutes ReplicationSchedule = "10minutes" - ReplicationScheduleDaily ReplicationSchedule = "daily" - ReplicationScheduleHourly ReplicationSchedule = "hourly" -) - -func PossibleValuesForReplicationSchedule() []string { - return []string{ - string(ReplicationSchedule10Minutes), - string(ReplicationScheduleDaily), - string(ReplicationScheduleHourly), - } -} - -func expandNetAppVolumeGroupVolumeExportPolicyRule(input []ExportPolicyRule) *volumegroups.VolumePropertiesExportPolicy { +func expandNetAppVolumeGroupVolumeExportPolicyRule(input []netAppModels.ExportPolicyRule) *volumegroups.VolumePropertiesExportPolicy { if len(input) == 0 { return &volumegroups.VolumePropertiesExportPolicy{} @@ -125,7 +68,7 @@ func expandNetAppVolumeGroupVolumeExportPolicyRule(input []ExportPolicyRule) *vo } } -func expandNetAppVolumeGroupDataProtectionReplication(input []DataProtectionReplication) *volumegroups.VolumePropertiesDataProtection { +func expandNetAppVolumeGroupDataProtectionReplication(input []netAppModels.DataProtectionReplication) *volumegroups.VolumePropertiesDataProtection { if len(input) == 0 { return &volumegroups.VolumePropertiesDataProtection{} } @@ -146,7 +89,7 @@ func expandNetAppVolumeGroupDataProtectionReplication(input []DataProtectionRepl } } -func expandNetAppVolumeGroupDataProtectionSnapshotPolicy(input []DataProtectionSnapshotPolicy) *volumegroups.VolumePropertiesDataProtection { +func expandNetAppVolumeGroupDataProtectionSnapshotPolicy(input []netAppModels.DataProtectionSnapshotPolicy) *volumegroups.VolumePropertiesDataProtection { if len(input) == 0 { return &volumegroups.VolumePropertiesDataProtection{} } @@ -159,7 +102,7 @@ func expandNetAppVolumeGroupDataProtectionSnapshotPolicy(input []DataProtectionS } } -func expandNetAppVolumeGroupVolumes(input []NetAppVolumeGroupVolume) (*[]volumegroups.VolumeGroupVolumeProperties, error) { +func expandNetAppVolumeGroupVolumes(input []netAppModels.NetAppVolumeGroupVolume) (*[]volumegroups.VolumeGroupVolumeProperties, error) { if len(input) == 0 { return &[]volumegroups.VolumeGroupVolumeProperties{}, fmt.Errorf("received empty NetAppVolumeGroupVolume slice") } @@ -330,15 +273,15 @@ func expandNetAppVolumeDataProtectionSnapshotPolicyPatch(input []interface{}) *v } } -func flattenNetAppVolumeGroupVolumes(ctx context.Context, input *[]volumegroups.VolumeGroupVolumeProperties, metadata sdk.ResourceMetaData) ([]NetAppVolumeGroupVolume, error) { - results := make([]NetAppVolumeGroupVolume, 0) +func flattenNetAppVolumeGroupVolumes(ctx context.Context, input *[]volumegroups.VolumeGroupVolumeProperties, metadata sdk.ResourceMetaData) ([]netAppModels.NetAppVolumeGroupVolume, error) { + results := make([]netAppModels.NetAppVolumeGroupVolume, 0) if input == nil || len(pointer.From(input)) == 0 { return results, fmt.Errorf("received empty volumegroups.VolumeGroupVolumeProperties slice") } for _, item := range *input { - volumeGroupVolume := NetAppVolumeGroupVolume{} + volumeGroupVolume := netAppModels.NetAppVolumeGroupVolume{} props := item.Properties volumeGroupVolume.Name = getUserDefinedVolumeName(item.Name) @@ -372,12 +315,12 @@ func flattenNetAppVolumeGroupVolumes(ctx context.Context, input *[]volumegroups. volumeClient := metadata.Client.NetApp.VolumeClient id, err := volumes.ParseVolumeID(pointer.From(item.Id)) if err != nil { - return []NetAppVolumeGroupVolume{}, err + return []netAppModels.NetAppVolumeGroupVolume{}, err } standaloneVol, err := volumeClient.Get(ctx, pointer.From(id)) if err != nil { - return []NetAppVolumeGroupVolume{}, fmt.Errorf("retrieving %s: %v", id, err) + return []netAppModels.NetAppVolumeGroupVolume{}, fmt.Errorf("retrieving %s: %v", id, err) } if standaloneVol.Model.Properties.DataProtection != nil && standaloneVol.Model.Properties.DataProtection.Replication != nil { @@ -396,15 +339,15 @@ func flattenNetAppVolumeGroupVolumes(ctx context.Context, input *[]volumegroups. return results, nil } -func flattenNetAppVolumeGroupVolumesExportPolicies(input *[]volumegroups.ExportPolicyRule) []ExportPolicyRule { - results := make([]ExportPolicyRule, 0) +func flattenNetAppVolumeGroupVolumesExportPolicies(input *[]volumegroups.ExportPolicyRule) []netAppModels.ExportPolicyRule { + results := make([]netAppModels.ExportPolicyRule, 0) if input == nil || len(pointer.From(input)) == 0 { return results } for _, item := range pointer.From(input) { - rule := ExportPolicyRule{} + rule := netAppModels.ExportPolicyRule{} rule.RuleIndex = int(pointer.From(item.RuleIndex)) rule.AllowedClients = pointer.From(item.AllowedClients) @@ -436,12 +379,12 @@ func flattenNetAppVolumeGroupVolumesMountIpAddresses(input *[]volumegroups.Mount return results } -func flattenNetAppVolumeGroupVolumesDPReplication(input *volumes.ReplicationObject) []DataProtectionReplication { +func flattenNetAppVolumeGroupVolumesDPReplication(input *volumes.ReplicationObject) []netAppModels.DataProtectionReplication { if input == nil { - return []DataProtectionReplication{} + return []netAppModels.DataProtectionReplication{} } if string(pointer.From(input.EndpointType)) == "" || !strings.EqualFold(string(pointer.From(input.EndpointType)), string(volumes.EndpointTypeDst)) { - return []DataProtectionReplication{} + return []netAppModels.DataProtectionReplication{} } replicationFrequency := "" @@ -449,7 +392,7 @@ func flattenNetAppVolumeGroupVolumesDPReplication(input *volumes.ReplicationObje replicationFrequency = translateSDKSchedule(strings.ToLower(string(pointer.From(input.ReplicationSchedule)))) } - return []DataProtectionReplication{ + return []netAppModels.DataProtectionReplication{ { EndpointType: strings.ToLower(string(pointer.From(input.EndpointType))), RemoteVolumeLocation: pointer.From(input.RemoteVolumeRegion), @@ -459,12 +402,12 @@ func flattenNetAppVolumeGroupVolumesDPReplication(input *volumes.ReplicationObje } } -func flattenNetAppVolumeGroupVolumesDPSnapshotPolicy(input *volumes.VolumeSnapshotProperties) []DataProtectionSnapshotPolicy { +func flattenNetAppVolumeGroupVolumesDPSnapshotPolicy(input *volumes.VolumeSnapshotProperties) []netAppModels.DataProtectionSnapshotPolicy { if input == nil { - return []DataProtectionSnapshotPolicy{} + return []netAppModels.DataProtectionSnapshotPolicy{} } - return []DataProtectionSnapshotPolicy{ + return []netAppModels.DataProtectionSnapshotPolicy{ { DataProtectionSnapshotPolicy: pointer.From(input.SnapshotPolicyId), }, @@ -780,7 +723,7 @@ func netappVolumeReplicationStateRefreshFunc(ctx context.Context, client *volume } func translateTFSchedule(scheduleName string) string { - if strings.EqualFold(scheduleName, string(ReplicationSchedule10Minutes)) { + if strings.EqualFold(scheduleName, string(netAppModels.ReplicationSchedule10Minutes)) { return string(volumegroups.ReplicationScheduleOneZerominutely) } @@ -789,7 +732,7 @@ func translateTFSchedule(scheduleName string) string { func translateSDKSchedule(scheduleName string) string { if strings.EqualFold(scheduleName, string(volumegroups.ReplicationScheduleOneZerominutely)) { - return string(ReplicationSchedule10Minutes) + return string(netAppModels.ReplicationSchedule10Minutes) } return scheduleName diff --git a/internal/services/netapp/netapp_volume_quota_rule_data_source.go b/internal/services/netapp/netapp_volume_quota_rule_data_source.go new file mode 100644 index 000000000000..a9f0149767a0 --- /dev/null +++ b/internal/services/netapp/netapp_volume_quota_rule_data_source.go @@ -0,0 +1,117 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package netapp + +import ( + "context" + "fmt" + "net/http" + "time" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules" + "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumes" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + netAppModels "github.com/hashicorp/terraform-provider-azurerm/internal/services/netapp/models" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" +) + +type NetAppVolumeQuotaRuleDataSource struct{} + +var _ sdk.DataSource = NetAppVolumeQuotaRuleDataSource{} + +func (r NetAppVolumeQuotaRuleDataSource) ResourceType() string { + return "azurerm_netapp_volume_quota_rule" +} + +func (r NetAppVolumeQuotaRuleDataSource) ModelObject() interface{} { + return &netAppModels.NetAppVolumeQuotaRuleDataSourceModel{} +} + +func (r NetAppVolumeQuotaRuleDataSource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return volumequotarules.ValidateVolumeQuotaRuleID +} + +func (r NetAppVolumeQuotaRuleDataSource) Arguments() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + }, + + "volume_id": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: volumequotarules.ValidateVolumeID, + }, + } +} + +func (r NetAppVolumeQuotaRuleDataSource) Attributes() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{ + "location": commonschema.LocationComputed(), + + "quota_target": { + Type: pluginsdk.TypeString, + Computed: true, + }, + + "quota_size_in_kib": { + Type: pluginsdk.TypeInt, + Computed: true, + }, + + "quota_type": { + Type: pluginsdk.TypeString, + Computed: true, + }, + } +} + +func (r NetAppVolumeQuotaRuleDataSource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 5 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + + client := metadata.Client.NetApp.VolumeQuotaRules + + var state netAppModels.NetAppVolumeQuotaRuleDataSourceModel + if err := metadata.Decode(&state); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + volumeID, err := volumes.ParseVolumeID(state.VolumeID) + if err != nil { + return fmt.Errorf("error parsing volume id %s: %+v", state.VolumeID, err) + } + + id := volumequotarules.NewVolumeQuotaRuleID(metadata.Client.Account.SubscriptionId, volumeID.ResourceGroupName, volumeID.NetAppAccountName, volumeID.CapacityPoolName, volumeID.VolumeName, state.Name) + + resp, err := client.Get(ctx, id) + if err != nil { + if resp.HttpResponse.StatusCode == http.StatusNotFound { + return fmt.Errorf("%s was not found", id) + } + return fmt.Errorf("retrieving %s: %v", id, err) + } + + model := resp.Model + if model == nil || model.Properties == nil { + return fmt.Errorf("retrieving %s: model was nil", id) + } + + state.Location = location.Normalize(model.Location) + state.QuotaSizeInKiB = pointer.From(model.Properties.QuotaSizeInKiBs) + state.QuotaTarget = pointer.From(model.Properties.QuotaTarget) + state.QuotaType = string(pointer.From(model.Properties.QuotaType)) + + metadata.SetID(id) + + return metadata.Encode(&state) + }, + } +} diff --git a/internal/services/netapp/netapp_volume_quota_rule_data_source_test.go b/internal/services/netapp/netapp_volume_quota_rule_data_source_test.go new file mode 100644 index 000000000000..abbde785a572 --- /dev/null +++ b/internal/services/netapp/netapp_volume_quota_rule_data_source_test.go @@ -0,0 +1,40 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package netapp_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" +) + +type NetAppVolumeQuotaRuleDataSource struct{} + +func TestAccNetAppVolumeQuotaRuleDataSource_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "data.azurerm_netapp_volume_quota_rule", "test") + d := NetAppVolumeQuotaRuleDataSource{} + + data.DataSourceTest(t, []acceptance.TestStep{ + { + Config: d.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("name").Exists(), + check.That(data.ResourceName).Key("quota_size_in_kib").Exists(), + ), + }, + }) +} + +func (d NetAppVolumeQuotaRuleDataSource) basic(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +data "azurerm_netapp_volume_quota_rule" "test" { + name = azurerm_netapp_volume_quota_rule.test.name + volume_id = azurerm_netapp_volume_quota_rule.test.volume_id +} +`, NetAppVolumeQuotaRuleResource{}.individualUserQuotaType(data)) +} diff --git a/internal/services/netapp/netapp_volume_quota_rule_resource.go b/internal/services/netapp/netapp_volume_quota_rule_resource.go new file mode 100644 index 000000000000..a4b5ddad1f3e --- /dev/null +++ b/internal/services/netapp/netapp_volume_quota_rule_resource.go @@ -0,0 +1,250 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package netapp + +import ( + "context" + "fmt" + "net/http" + "time" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules" + "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumes" + "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + netAppModels "github.com/hashicorp/terraform-provider-azurerm/internal/services/netapp/models" + netAppValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/netapp/validate" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" + "github.com/hashicorp/terraform-provider-azurerm/utils" +) + +type NetAppVolumeQuotaRuleResource struct{} + +var _ sdk.Resource = NetAppVolumeQuotaRuleResource{} + +func (r NetAppVolumeQuotaRuleResource) ModelObject() interface{} { + return &netAppModels.NetAppVolumeQuotaRuleModel{} +} + +func (r NetAppVolumeQuotaRuleResource) ResourceType() string { + return "azurerm_netapp_volume_quota_rule" +} + +func (r NetAppVolumeQuotaRuleResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return volumequotarules.ValidateVolumeQuotaRuleID +} + +func (r NetAppVolumeQuotaRuleResource) Arguments() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: netAppValidate.VolumeQuotaRuleName, + }, + + "location": commonschema.Location(), + + "volume_id": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: volumequotarules.ValidateVolumeID, + }, + + "quota_type": { + Type: pluginsdk.TypeString, + ForceNew: true, + Required: true, + ValidateFunc: validation.StringInSlice(volumequotarules.PossibleValuesForType(), false), + }, + + "quota_size_in_kib": { + Type: pluginsdk.TypeInt, + Required: true, + ValidateFunc: validation.IntAtLeast(4), + }, + + "quota_target": { + Type: pluginsdk.TypeString, + ForceNew: true, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + } +} + +func (r NetAppVolumeQuotaRuleResource) Attributes() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{} +} + +func (r NetAppVolumeQuotaRuleResource) Create() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 90 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.NetApp.VolumeQuotaRules + subscriptionId := metadata.Client.Account.SubscriptionId + + var model netAppModels.NetAppVolumeQuotaRuleModel + if err := metadata.Decode(&model); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + volumeID, err := volumes.ParseVolumeID(model.VolumeID) + if err != nil { + return fmt.Errorf("error parsing volume id %s: %+v", model.VolumeID, err) + } + + id := volumequotarules.NewVolumeQuotaRuleID(subscriptionId, volumeID.ResourceGroupName, volumeID.NetAppAccountName, volumeID.CapacityPoolName, volumeID.VolumeName, model.Name) + + metadata.Logger.Infof("Import check for %s", id) + existing, err := client.Get(ctx, id) + if err != nil { + if !response.WasNotFound(existing.HttpResponse) { + return fmt.Errorf("checking for presence of existing %s: %s", id, err) + } + } + + if !response.WasNotFound(existing.HttpResponse) { + return tf.ImportAsExistsError(r.ResourceType(), id.ID()) + } + + // Performing some validations that are not possible in the schema + if errorList := netAppValidate.ValidateNetAppVolumeQuotaRule(ctx, pointer.From(volumeID), metadata.Client, pointer.To(model)); len(errorList) > 0 { + return fmt.Errorf("one or more issues found while performing deeper validations for %s:\n%+v", id, errorList) + } + + parameters := volumequotarules.VolumeQuotaRule{ + Location: location.Normalize(model.Location), + Properties: &volumequotarules.VolumeQuotaRulesProperties{ + QuotaSizeInKiBs: pointer.To(model.QuotaSizeInKiB), + QuotaType: pointer.To(volumequotarules.Type(model.QuotaType)), + QuotaTarget: utils.String(model.QuotaTarget), + }, + } + + err = client.CreateThenPoll(ctx, id, parameters) + if err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + + metadata.SetID(id) + + return nil + }, + } +} + +func (r NetAppVolumeQuotaRuleResource) Update() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 120 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.NetApp.VolumeQuotaRules + + id, err := volumequotarules.ParseVolumeQuotaRuleID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + metadata.Logger.Infof("Decoding state for %s", id) + var state netAppModels.NetAppVolumeQuotaRuleModel + if err := metadata.Decode(&state); err != nil { + return err + } + + metadata.Logger.Infof("Updating %s", id) + + update := volumequotarules.VolumeQuotaRulePatch{ + Properties: &volumequotarules.VolumeQuotaRulesProperties{}, + } + + update.Properties.QuotaSizeInKiBs = utils.Int64(state.QuotaSizeInKiB) + if err := client.UpdateThenPoll(ctx, pointer.From(id), update); err != nil { + return fmt.Errorf("updating %s: %+v", id, err) + } + + metadata.SetID(id) + + return nil + }, + } +} + +func (r NetAppVolumeQuotaRuleResource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 5 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + + client := metadata.Client.NetApp.VolumeQuotaRules + + id, err := volumequotarules.ParseVolumeQuotaRuleID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + metadata.Logger.Infof("Decoding state for %s", id) + var state netAppModels.NetAppVolumeQuotaRuleModel + if err := metadata.Decode(&state); err != nil { + return err + } + + existing, err := client.Get(ctx, pointer.From(id)) + if err != nil { + if existing.HttpResponse.StatusCode == http.StatusNotFound { + return metadata.MarkAsGone(id) + } + return fmt.Errorf("retrieving %s: %v", id, err) + } + + volumeID := volumequotarules.NewVolumeID(id.SubscriptionId, id.ResourceGroupName, id.NetAppAccountName, id.CapacityPoolName, id.VolumeName) + + model := netAppModels.NetAppVolumeQuotaRuleModel{ + Name: id.VolumeQuotaRuleName, + VolumeID: volumeID.ID(), + Location: location.NormalizeNilable(pointer.To(existing.Model.Location)), + QuotaTarget: pointer.From(existing.Model.Properties.QuotaTarget), + QuotaSizeInKiB: pointer.From(existing.Model.Properties.QuotaSizeInKiBs), + QuotaType: string(pointer.From(existing.Model.Properties.QuotaType)), + } + + metadata.SetID(id) + + return metadata.Encode(&model) + }, + } +} + +func (r NetAppVolumeQuotaRuleResource) Delete() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 120 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + + client := metadata.Client.NetApp.VolumeQuotaRules + + id, err := volumequotarules.ParseVolumeQuotaRuleID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + existing, err := client.Get(ctx, pointer.From(id)) + if err != nil { + if existing.HttpResponse.StatusCode == http.StatusNotFound { + return metadata.MarkAsGone(id) + } + return fmt.Errorf("retrieving %s: %v", id, err) + } + + if err = client.DeleteThenPoll(ctx, pointer.From(id)); err != nil { + return fmt.Errorf("deleting %s: %+v", pointer.From(id), err) + } + + return nil + }, + } +} diff --git a/internal/services/netapp/netapp_volume_quota_rule_resource_test.go b/internal/services/netapp/netapp_volume_quota_rule_resource_test.go new file mode 100644 index 000000000000..ced81d9ff7d0 --- /dev/null +++ b/internal/services/netapp/netapp_volume_quota_rule_resource_test.go @@ -0,0 +1,271 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package netapp_test + +import ( + "context" + "fmt" + "net/http" + "testing" + + "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules" + "github.com/hashicorp/terraform-plugin-testing/terraform" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/utils" +) + +type NetAppVolumeQuotaRuleResource struct{} + +func TestAccNetAppVolumeQuotaRule_individualGroupQuotaType(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_netapp_volume_quota_rule", "test") + r := NetAppVolumeQuotaRuleResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.individualGroupQuotaType(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccNetAppVolumeQuotaRule_individualUserQuotaType(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_netapp_volume_quota_rule", "test") + r := NetAppVolumeQuotaRuleResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.individualUserQuotaType(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccNetAppVolumeQuotaRule_defaultGroupQuotaType(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_netapp_volume_quota_rule", "test") + r := NetAppVolumeQuotaRuleResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.defaultGroupQuotaType(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccNetAppVolumeQuotaRule_defaultUserQuotaType(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_netapp_volume_quota_rule", "test") + r := NetAppVolumeQuotaRuleResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.defaultUserQuotaType(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func (t NetAppVolumeQuotaRuleResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := volumequotarules.ParseVolumeQuotaRuleID(state.ID) + if err != nil { + return nil, err + } + + resp, err := clients.NetApp.VolumeQuotaRules.Get(ctx, *id) + + if err != nil { + if resp.HttpResponse.StatusCode == http.StatusNotFound { + return utils.Bool(false), nil + } + return nil, fmt.Errorf("retrieving %s: %+v", id, err) + } + + return utils.Bool(true), nil +} + +func (NetAppVolumeQuotaRuleResource) individualGroupQuotaType(data acceptance.TestData) string { + template := NetAppVolumeQuotaRuleResource{}.template(data) + return fmt.Sprintf(` +%[1]s + +resource "azurerm_netapp_volume_quota_rule" "test" { + name = "acctest-NetAppVolumeQuotaRule-%[2]d" + location = azurerm_resource_group.test.location + volume_id = azurerm_netapp_volume.test.id + quota_target = "3001" + quota_size_in_kib = 1024 + quota_type = "IndividualGroupQuota" +} +`, template, data.RandomInteger) +} + +func (NetAppVolumeQuotaRuleResource) individualUserQuotaType(data acceptance.TestData) string { + template := NetAppVolumeQuotaRuleResource{}.template(data) + return fmt.Sprintf(` +%[1]s + +resource "azurerm_netapp_volume_quota_rule" "test" { + name = "acctest-NetAppVolumeQuotaRule-%[2]d" + location = azurerm_resource_group.test.location + volume_id = azurerm_netapp_volume.test.id + quota_target = "3001" + quota_size_in_kib = 1024 + quota_type = "IndividualUserQuota" +} +`, template, data.RandomInteger) +} + +func (NetAppVolumeQuotaRuleResource) defaultUserQuotaType(data acceptance.TestData) string { + template := NetAppVolumeQuotaRuleResource{}.template(data) + return fmt.Sprintf(` +%[1]s + +resource "azurerm_netapp_volume_quota_rule" "test" { + name = "acctest-NetAppVolumeQuotaRule-Default-Usr-%[2]d" + location = azurerm_resource_group.test.location + volume_id = azurerm_netapp_volume.test.id + quota_size_in_kib = 2048 + quota_type = "DefaultUserQuota" +} +`, template, data.RandomInteger) +} + +func (NetAppVolumeQuotaRuleResource) defaultGroupQuotaType(data acceptance.TestData) string { + template := NetAppVolumeQuotaRuleResource{}.template(data) + return fmt.Sprintf(` +%[1]s + +resource "azurerm_netapp_volume_quota_rule" "test" { + name = "acctest-NetAppVolumeQuotaRule-Default-Grp-%[2]d" + location = azurerm_resource_group.test.location + volume_id = azurerm_netapp_volume.test.id + quota_size_in_kib = 2048 + quota_type = "DefaultGroupQuota" +} +`, template, data.RandomInteger) +} + +func (NetAppVolumeQuotaRuleResource) template(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features { + resource_group { + prevent_deletion_if_contains_resources = false + } + } +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-netapp-%[1]d" + location = "%[2]s" + + tags = { + "CreatedOnDate" = "2023-08-17T08:01:00Z", + "SkipASMAzSecPack" = "true", + "SkipNRMSNSG" = "true" + } +} + +resource "azurerm_network_security_group" "test" { + name = "acctest-NSG-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + + tags = { + "CreatedOnDate" = "2023-08-17T08:01:00Z", + "SkipASMAzSecPack" = "true" + } +} + +resource "azurerm_virtual_network" "test" { + name = "acctest-VirtualNetwork-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + address_space = ["10.6.0.0/16"] + + tags = { + "CreatedOnDate" = "2023-08-17T08:01:00Z", + "SkipASMAzSecPack" = "true" + } +} + +resource "azurerm_subnet" "test" { + name = "acctest-DelegatedSubnet-%[1]d" + resource_group_name = azurerm_resource_group.test.name + virtual_network_name = azurerm_virtual_network.test.name + address_prefixes = ["10.6.2.0/24"] + + delegation { + name = "testdelegation" + + service_delegation { + name = "Microsoft.Netapp/volumes" + actions = ["Microsoft.Network/networkinterfaces/*", "Microsoft.Network/virtualNetworks/subnets/join/action"] + } + } +} + +resource "azurerm_subnet_network_security_group_association" "public" { + subnet_id = azurerm_subnet.test.id + network_security_group_id = azurerm_network_security_group.test.id +} + +resource "azurerm_netapp_account" "test" { + name = "acctest-NetAppAccount-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + + tags = { + "CreatedOnDate" = "2023-08-17T08:01:00Z", + "SkipASMAzSecPack" = "true" + } +} + +resource "azurerm_netapp_pool" "test" { + name = "acctest-NetAppPool-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + account_name = azurerm_netapp_account.test.name + service_level = "Standard" + size_in_tb = 4 + qos_type = "Auto" + + tags = { + "CreatedOnDate" = "2023-08-17T08:01:00Z", + "SkipASMAzSecPack" = "true" + } +} + +resource "azurerm_netapp_volume" "test" { + name = "acctest-NetAppVolume-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + account_name = azurerm_netapp_account.test.name + pool_name = azurerm_netapp_pool.test.name + volume_path = "my-unique-file-path-%[1]d" + service_level = "Standard" + subnet_id = azurerm_subnet.test.id + storage_quota_in_gb = 100 + protocols = ["NFSv3"] + + tags = { + "CreatedOnDate" = "2022-07-08T23:50:21Z", + "SkipASMAzSecPack" = "true" + } +} +`, data.RandomInteger, data.Locations.Primary) +} diff --git a/internal/services/netapp/registration.go b/internal/services/netapp/registration.go index a6b3942c0ddd..426a611198aa 100644 --- a/internal/services/netapp/registration.go +++ b/internal/services/netapp/registration.go @@ -53,6 +53,7 @@ func (r Registration) SupportedResources() map[string]*pluginsdk.Resource { func (r Registration) DataSources() []sdk.DataSource { return []sdk.DataSource{ NetAppVolumeGroupSapHanaDataSource{}, + NetAppVolumeQuotaRuleDataSource{}, } } @@ -60,5 +61,6 @@ func (r Registration) DataSources() []sdk.DataSource { func (r Registration) Resources() []sdk.Resource { return []sdk.Resource{ NetAppVolumeGroupSapHanaResource{}, + NetAppVolumeQuotaRuleResource{}, } } diff --git a/internal/services/netapp/validate/volume_quota_rule_name.go b/internal/services/netapp/validate/volume_quota_rule_name.go new file mode 100644 index 000000000000..3a2454c3a6bb --- /dev/null +++ b/internal/services/netapp/validate/volume_quota_rule_name.go @@ -0,0 +1,19 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package validate + +import ( + "fmt" + "regexp" +) + +func VolumeQuotaRuleName(v interface{}, k string) (warnings []string, errors []error) { + value := v.(string) + + if !regexp.MustCompile(`^[a-zA-Z][-_\da-zA-Z]{0,63}$`).MatchString(value) { + errors = append(errors, fmt.Errorf("%q must be between 1 and 64 characters in length and start with letters and contains only letters, numbers, underscore or hyphens.", k)) + } + + return warnings, errors +} diff --git a/internal/services/netapp/validate/volume_quota_rule_name_test.go b/internal/services/netapp/validate/volume_quota_rule_name_test.go new file mode 100644 index 000000000000..6484ca4d0a0e --- /dev/null +++ b/internal/services/netapp/validate/volume_quota_rule_name_test.go @@ -0,0 +1,74 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package validate + +import "testing" + +func TestNetAppVolumeQuotaRuleName(t *testing.T) { + testData := []struct { + input string + expected bool + }{ + { + // empty + input: "", + expected: false, + }, + { + // basic example + input: "hello", + expected: true, + }, + { + // can't start with an underscore + input: "_hello", + expected: false, + }, + { + // can't end with a dash + input: "hello-", + expected: true, + }, + { + // can't contain an exclamation mark + input: "hello!", + expected: false, + }, + { + // dash in the middle + input: "malcolm-in-the-middle", + expected: true, + }, + { + // can't end with a period + input: "hello.", + expected: false, + }, + { + // 63 chars + input: "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk", + expected: true, + }, + { + // 64 chars + input: "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkj", + expected: true, + }, + { + // 65 chars + input: "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkja", + expected: false, + }, + } + + for _, v := range testData { + t.Logf("[DEBUG] Testing %q..", v.input) + + _, errors := VolumeQuotaRuleName(v.input, "name") + actual := len(errors) == 0 + if v.expected != actual { + t.Fatalf("Expected %t but got %t", v.expected, actual) + } + } +} diff --git a/internal/services/netapp/validate/volume_quota_rule_quota_target_id_unix_validation_test.go b/internal/services/netapp/validate/volume_quota_rule_quota_target_id_unix_validation_test.go new file mode 100644 index 000000000000..36009ce03e3f --- /dev/null +++ b/internal/services/netapp/validate/volume_quota_rule_quota_target_id_unix_validation_test.go @@ -0,0 +1,65 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package validate + +import ( + "testing" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules" +) + +func TestValidateNetAppVolumeQuotaRulesUnix(t *testing.T) { + cases := []struct { + Name string + VolumeQuotaRulesData volumequotarules.VolumeQuotaRulesProperties + Errors int + }{ + { + Name: "ValidateCorrectUnixUserGroupID", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("1001"), + }, + Errors: 0, + }, + { + Name: "ValidateUnixUserGroupIDWithLettersFail", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("a1001"), + }, + Errors: 1, + }, + { + Name: "ValidateUnixUserGroupIDWithMoreThanMaxCharsFail", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("4294967296"), + }, + Errors: 1, + }, + { + Name: "ValidateUnixUserGroupIDWithEmptyStringFail", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To(""), + }, + Errors: 1, + }, + { + Name: "ValidateUnixUserGroupIDWithNegativeNumberFail", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("-1"), + }, + Errors: 1, + }, + } + + for _, tc := range cases { + t.Run(tc.Name, func(t *testing.T) { + _, errors := ValidateUnixUserIDOrGroupID(*tc.VolumeQuotaRulesData.QuotaTarget, pointer.From(tc.VolumeQuotaRulesData.QuotaTarget)) + + if len(errors) != tc.Errors { + t.Fatalf("expected ValidateUnixUserIDOrGroupID to return %d error(s) not %d\nError List: \n%v", tc.Errors, len(errors), errors) + } + }) + } +} diff --git a/internal/services/netapp/validate/volume_quota_rule_quota_target_id_validations.go b/internal/services/netapp/validate/volume_quota_rule_quota_target_id_validations.go new file mode 100644 index 000000000000..f7b61a259df6 --- /dev/null +++ b/internal/services/netapp/validate/volume_quota_rule_quota_target_id_validations.go @@ -0,0 +1,61 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package validate + +import ( + "fmt" + "regexp" + "strconv" + + "github.com/hashicorp/terraform-provider-azurerm/internal/services/netapp/models" +) + +func ValidateUnixUserIDOrGroupID(v interface{}, k string) (warnings []string, errors []error) { + var value int64 + var err error + + switch v := v.(type) { + case int: + value = int64(v) + case string: + if _, err := strconv.ParseInt(v, 10, 64); err != nil { + errors = append(errors, fmt.Errorf("%q must be an integer or a string that can be converted to an integer", k)) + return warnings, errors + } + if _, err := strconv.ParseInt(v, 10, 64); err == nil && !regexp.MustCompile(`^\d+$`).MatchString(v) { + errors = append(errors, fmt.Errorf("%q must be an integer or a string that contains only digits", k)) + return warnings, errors + } + value, err = strconv.ParseInt(v, 10, 64) + if err != nil { + errors = append(errors, fmt.Errorf("%q must be an integer or a string that can be converted to an integer", k)) + return warnings, errors + } + default: + errors = append(errors, fmt.Errorf("%q must be an integer or a string that can be converted to an integer", k)) + return warnings, errors + } + + if value < 1 || value > models.MaxQuotaTargetIDSizeInKiB { + errors = append(errors, fmt.Errorf("%q must be between 1 and 4294967295", k)) + return warnings, errors + } + + return warnings, errors +} + +func ValidateWindowsSID(v interface{}, k string) (warnings []string, errors []error) { + value, ok := v.(string) + if !ok { + errors = append(errors, fmt.Errorf("%q must be a string", k)) + return warnings, errors + } + + if !regexp.MustCompile(`^S-1-5-(0|18|\d{1,9})(-\d{1,10}){0,14}$`).MatchString(value) { + errors = append(errors, fmt.Errorf("%q must be a valid Windows security identifier (SID)", k)) + return warnings, errors + } + + return warnings, errors +} diff --git a/internal/services/netapp/validate/volume_quota_rule_quota_target_id_windows_validation_test.go b/internal/services/netapp/validate/volume_quota_rule_quota_target_id_windows_validation_test.go new file mode 100644 index 000000000000..bf7a3fbb5dff --- /dev/null +++ b/internal/services/netapp/validate/volume_quota_rule_quota_target_id_windows_validation_test.go @@ -0,0 +1,86 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package validate + +import ( + "testing" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules" +) + +func TestValidateNetAppVolumeQuotaRules(t *testing.T) { + cases := []struct { + Name string + VolumeQuotaRulesData volumequotarules.VolumeQuotaRulesProperties + Errors int + }{ + { + Name: "ValidateCorrectWindowsUserIDLong", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("S-1-5-21-4128827716-1023963696-1645503205-500"), + }, + Errors: 0, + }, + { + Name: "ValidateCorrectWindowsGroupIDLong", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("S-1-5-21-4128827716-1023963696-1645503205-1024"), + }, + Errors: 0, + }, + { + Name: "ValidateCorrectWindowsGroupIDShort", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("S-1-5-32-583"), + }, + Errors: 0, + }, + { + Name: "ValidateCorrectWindowsGroupIDExtraShort", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("S-1-5-18"), + }, + Errors: 0, + }, + { + Name: "ValidateIncorrectWindowsUserIDLongFails", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("S-1-5-21-4128827716-1023963696-1645503205-5007777777777777777"), + }, + Errors: 1, + }, + { + Name: "ValidateIncorrectWindowsGroupIDLongFails", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("AA1-5-21-4128827716-1023963696-1645503205-1024"), + }, + Errors: 1, + }, + { + Name: "ValidateIncorrectWindowsGroupIDShortFails", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("S-B-5-32-583"), + }, + Errors: 1, + }, + { + Name: "ValidateIncorrectWindowsGroupIDExtraShortFails", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("A-1-5-18"), + }, + Errors: 1, + }, + } + + for _, tc := range cases { + t.Run(tc.Name, func(t *testing.T) { + _, errors := ValidateWindowsSID(*tc.VolumeQuotaRulesData.QuotaTarget, pointer.From(tc.VolumeQuotaRulesData.QuotaTarget)) + + if len(errors) != tc.Errors { + t.Fatalf("expected ValidateWindowsSID to return %d error(s) not %d\nError List: \n%v", tc.Errors, len(errors), errors) + } + }) + } +} diff --git a/internal/services/netapp/validate/volume_quota_rule_quota_target_validation_test.go b/internal/services/netapp/validate/volume_quota_rule_quota_target_validation_test.go new file mode 100644 index 000000000000..5ffb51e5ea66 --- /dev/null +++ b/internal/services/netapp/validate/volume_quota_rule_quota_target_validation_test.go @@ -0,0 +1,91 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package validate + +import ( + "testing" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules" +) + +func TestValidateNetAppVolumeQuotaRulesQuotaType(t *testing.T) { + cases := []struct { + Name string + VolumeQuotaRulesData volumequotarules.VolumeQuotaRulesProperties + Errors int + }{ + { + Name: "ValidateIndividualUserQuotaTargetIsDefined", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("1001"), + QuotaType: pointer.To(volumequotarules.TypeIndividualUserQuota), + }, + Errors: 0, + }, + { + Name: "ValidateIndividualGroupQuotaTargetIsDefined", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("1001"), + QuotaType: pointer.To(volumequotarules.TypeIndividualGroupQuota), + }, + Errors: 0, + }, + { + Name: "ValidateDefaultUserQuotaTargetIsNotDefined", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaType: pointer.To(volumequotarules.TypeDefaultUserQuota), + }, + Errors: 0, + }, + { + Name: "ValidateIndividualGroupQuotaTargetIsNotDefined", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaType: pointer.To(volumequotarules.TypeDefaultGroupQuota), + }, + Errors: 0, + }, + + { + Name: "ValidateIndividualUserQuotaTargetIsDefinedFailsWhenMissingTarget", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaType: pointer.To(volumequotarules.TypeIndividualUserQuota), + }, + Errors: 1, + }, + { + Name: "ValidateIndividualGroupQuotaTargetIsDefinedFailsWhenMissingTarget", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaType: pointer.To(volumequotarules.TypeIndividualGroupQuota), + }, + Errors: 1, + }, + { + Name: "ValidateDefaultUserQuotaTargetFailsWhenDefiningTarget", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("1001"), + QuotaType: pointer.To(volumequotarules.TypeDefaultUserQuota), + }, + Errors: 1, + }, + { + Name: "ValidateIndividualGroupQuotaTargetFailsWhenDefiningTarget", + VolumeQuotaRulesData: volumequotarules.VolumeQuotaRulesProperties{ + QuotaTarget: pointer.To("1001"), + QuotaType: pointer.To(volumequotarules.TypeDefaultGroupQuota), + }, + Errors: 1, + }, + } + + for _, tc := range cases { + t.Run(tc.Name, func(t *testing.T) { + errors := ValidateNetAppVolumeQuotaRuleQuotaType(tc.VolumeQuotaRulesData.QuotaType, tc.VolumeQuotaRulesData.QuotaTarget) + + if len(errors) != tc.Errors { + t.Fatalf("expected ValidateNetAppVolumeQuotaRuleQuotaType to return %d error(s) not %d\nError List: \n%v", tc.Errors, len(errors), errors) + } + }) + } +} diff --git a/internal/services/netapp/validate/volume_quota_rule_quota_validations.go b/internal/services/netapp/validate/volume_quota_rule_quota_validations.go new file mode 100644 index 000000000000..56780866194f --- /dev/null +++ b/internal/services/netapp/validate/volume_quota_rule_quota_validations.go @@ -0,0 +1,102 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package validate + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules" + "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumes" + "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + netAppModels "github.com/hashicorp/terraform-provider-azurerm/internal/services/netapp/models" +) + +func ValidateNetAppVolumeQuotaRule(ctx context.Context, volumeID volumes.VolumeId, client *clients.Client, rule *netAppModels.NetAppVolumeQuotaRuleModel) []error { + errors := make([]error, 0) + + // Validating quota type matches volume type + volumeClient := client.NetApp.VolumeClient + + volume, err := volumeClient.Get(ctx, volumeID) + if err != nil { + errors = append(errors, fmt.Errorf("retrieving %s: %v", volumeID, err)) + return errors + } + + if volume.Model == nil || volume.HttpResponse.StatusCode == http.StatusNotFound { + errors = append(errors, fmt.Errorf("volume %s not found", volumeID)) + return errors + } + + // NFS Volume must not have Windows SIDs + if len(pointer.From(volume.Model.Properties.ProtocolTypes)) == 1 && + (findStringInSlice(pointer.From(volume.Model.Properties.ProtocolTypes), "nfsv3") || findStringInSlice(pointer.From(volume.Model.Properties.ProtocolTypes), "nfsv4.1")) { + + if pointer.To(rule.QuotaTarget) != nil && rule.QuotaTarget != "" { + _, errList := ValidateWindowsSID(&rule.QuotaTarget, rule.QuotaTarget) + if len(errList) == 0 { + errors = append(errors, fmt.Errorf("'nfs volume %v cannot have windows sid as quota targets, defined quota target is %v'", volumeID.VolumeName, rule.QuotaTarget)) + } + } + } + + // CIFS Volume must not have Windows SIDs + if len(pointer.From(volume.Model.Properties.ProtocolTypes)) == 1 && findStringInSlice(pointer.From(volume.Model.Properties.ProtocolTypes), "cifs") { + + if pointer.To(rule.QuotaTarget) != nil && rule.QuotaTarget != "" { + _, errList := ValidateUnixUserIDOrGroupID(&rule.QuotaTarget, rule.QuotaTarget) + if len(errList) == 0 { + errors = append(errors, fmt.Errorf("'cifs volume %v cannot have unix id as quota target, defined quota target is %v'", volumeID.VolumeName, rule.QuotaTarget)) + } + } + } + + // Dual protocol volumes does not support group quotas + if len(pointer.From(volume.Model.Properties.ProtocolTypes)) == 2 { + if pointer.To(rule.QuotaType) != nil && (volumequotarules.Type(rule.QuotaType) == volumequotarules.TypeIndividualGroupQuota || volumequotarules.Type(rule.QuotaType) == volumequotarules.TypeDefaultGroupQuota) { + errors = append(errors, fmt.Errorf("'dual protocol volume %v cannot have group quotas'", volumeID.VolumeName)) + } + } + + // CIFS protocol volumes does not support group quotas + if findStringInSlice(pointer.From(volume.Model.Properties.ProtocolTypes), "cifs") { + if pointer.To(rule.QuotaType) != nil && (volumequotarules.Type(rule.QuotaType) == volumequotarules.TypeIndividualGroupQuota || volumequotarules.Type(rule.QuotaType) == volumequotarules.TypeDefaultGroupQuota) { + errors = append(errors, fmt.Errorf("'cifs volume %v cannot have group quotas'", volumeID.VolumeName)) + } + } + + // Quota types and targets validations + errors = append(errors, ValidateNetAppVolumeQuotaRuleQuotaType(pointer.To(volumequotarules.Type(rule.QuotaType)), pointer.To(rule.QuotaTarget))...) + + return errors +} + +func ValidateNetAppVolumeQuotaRuleQuotaType(quotaType *volumequotarules.Type, quotaTarget *string) []error { + errors := make([]error, 0) + + // Quota Target must be defined for IndividualUserQuota + if quotaType != nil && pointer.From(quotaType) == volumequotarules.TypeIndividualUserQuota && (quotaTarget == nil || pointer.From(quotaTarget) == "") { + errors = append(errors, fmt.Errorf("'individualUserQuota must have quota target defined'")) + } + + // Quota Target must be defined for IndividualGroupQuota + if quotaType != nil && pointer.From(quotaType) == volumequotarules.TypeIndividualGroupQuota && (quotaTarget == nil || pointer.From(quotaTarget) == "") { + errors = append(errors, fmt.Errorf("'individualGroupQuota must have quota target defined'")) + } + + // DefaultUserQuota quota type cannot have quota target defined + if quotaType != nil && pointer.From(quotaType) == volumequotarules.TypeDefaultUserQuota && (quotaTarget != nil && pointer.From(quotaTarget) != "") { + errors = append(errors, fmt.Errorf("'defaultUserQuota cannot have quota target defined, defined quota target is %v'", pointer.From(quotaTarget))) + } + + // DefaultGroupQuota quota type cannot have quota target defined + if quotaType != nil && pointer.From(quotaType) == volumequotarules.TypeDefaultGroupQuota && (quotaTarget != nil && pointer.From(quotaTarget) != "") { + errors = append(errors, fmt.Errorf("'defaultGroupQuota cannot have quota target defined, defined quota target is %v'", pointer.From(quotaTarget))) + } + + return errors +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/README.md new file mode 100644 index 000000000000..475baa381e1c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/README.md @@ -0,0 +1,98 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules` Documentation + +The `volumequotarules` SDK allows for interaction with the Azure Resource Manager Service `netapp` (API Version `2022-05-01`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules" +``` + + +### Client Initialization + +```go +client := volumequotarules.NewVolumeQuotaRulesClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `VolumeQuotaRulesClient.Create` + +```go +ctx := context.TODO() +id := volumequotarules.NewVolumeQuotaRuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "netAppAccountValue", "capacityPoolValue", "volumeValue", "volumeQuotaRuleValue") + +payload := volumequotarules.VolumeQuotaRule{ + // ... +} + + +if err := client.CreateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `VolumeQuotaRulesClient.Delete` + +```go +ctx := context.TODO() +id := volumequotarules.NewVolumeQuotaRuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "netAppAccountValue", "capacityPoolValue", "volumeValue", "volumeQuotaRuleValue") + +if err := client.DeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `VolumeQuotaRulesClient.Get` + +```go +ctx := context.TODO() +id := volumequotarules.NewVolumeQuotaRuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "netAppAccountValue", "capacityPoolValue", "volumeValue", "volumeQuotaRuleValue") + +read, err := client.Get(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `VolumeQuotaRulesClient.ListByVolume` + +```go +ctx := context.TODO() +id := volumequotarules.NewVolumeID("12345678-1234-9876-4563-123456789012", "example-resource-group", "netAppAccountValue", "capacityPoolValue", "volumeValue") + +read, err := client.ListByVolume(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `VolumeQuotaRulesClient.Update` + +```go +ctx := context.TODO() +id := volumequotarules.NewVolumeQuotaRuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "netAppAccountValue", "capacityPoolValue", "volumeValue", "volumeQuotaRuleValue") + +payload := volumequotarules.VolumeQuotaRulePatch{ + // ... +} + + +if err := client.UpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/client.go new file mode 100644 index 000000000000..c6c70e112e06 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/client.go @@ -0,0 +1,26 @@ +package volumequotarules + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type VolumeQuotaRulesClient struct { + Client *resourcemanager.Client +} + +func NewVolumeQuotaRulesClientWithBaseURI(sdkApi sdkEnv.Api) (*VolumeQuotaRulesClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "volumequotarules", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating VolumeQuotaRulesClient: %+v", err) + } + + return &VolumeQuotaRulesClient{ + Client: client, + }, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/constants.go new file mode 100644 index 000000000000..fb0e41e1afb6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/constants.go @@ -0,0 +1,113 @@ +package volumequotarules + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ProvisioningState string + +const ( + ProvisioningStateAccepted ProvisioningState = "Accepted" + ProvisioningStateCreating ProvisioningState = "Creating" + ProvisioningStateDeleting ProvisioningState = "Deleting" + ProvisioningStateFailed ProvisioningState = "Failed" + ProvisioningStateMoving ProvisioningState = "Moving" + ProvisioningStatePatching ProvisioningState = "Patching" + ProvisioningStateSucceeded ProvisioningState = "Succeeded" +) + +func PossibleValuesForProvisioningState() []string { + return []string{ + string(ProvisioningStateAccepted), + string(ProvisioningStateCreating), + string(ProvisioningStateDeleting), + string(ProvisioningStateFailed), + string(ProvisioningStateMoving), + string(ProvisioningStatePatching), + string(ProvisioningStateSucceeded), + } +} + +func (s *ProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseProvisioningState(input string) (*ProvisioningState, error) { + vals := map[string]ProvisioningState{ + "accepted": ProvisioningStateAccepted, + "creating": ProvisioningStateCreating, + "deleting": ProvisioningStateDeleting, + "failed": ProvisioningStateFailed, + "moving": ProvisioningStateMoving, + "patching": ProvisioningStatePatching, + "succeeded": ProvisioningStateSucceeded, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ProvisioningState(input) + return &out, nil +} + +type Type string + +const ( + TypeDefaultGroupQuota Type = "DefaultGroupQuota" + TypeDefaultUserQuota Type = "DefaultUserQuota" + TypeIndividualGroupQuota Type = "IndividualGroupQuota" + TypeIndividualUserQuota Type = "IndividualUserQuota" +) + +func PossibleValuesForType() []string { + return []string{ + string(TypeDefaultGroupQuota), + string(TypeDefaultUserQuota), + string(TypeIndividualGroupQuota), + string(TypeIndividualUserQuota), + } +} + +func (s *Type) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseType(input string) (*Type, error) { + vals := map[string]Type{ + "defaultgroupquota": TypeDefaultGroupQuota, + "defaultuserquota": TypeDefaultUserQuota, + "individualgroupquota": TypeIndividualGroupQuota, + "individualuserquota": TypeIndividualUserQuota, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Type(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/id_volume.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/id_volume.go new file mode 100644 index 000000000000..306e2dc62196 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/id_volume.go @@ -0,0 +1,153 @@ +package volumequotarules + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = VolumeId{} + +// VolumeId is a struct representing the Resource ID for a Volume +type VolumeId struct { + SubscriptionId string + ResourceGroupName string + NetAppAccountName string + CapacityPoolName string + VolumeName string +} + +// NewVolumeID returns a new VolumeId struct +func NewVolumeID(subscriptionId string, resourceGroupName string, netAppAccountName string, capacityPoolName string, volumeName string) VolumeId { + return VolumeId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + NetAppAccountName: netAppAccountName, + CapacityPoolName: capacityPoolName, + VolumeName: volumeName, + } +} + +// ParseVolumeID parses 'input' into a VolumeId +func ParseVolumeID(input string) (*VolumeId, error) { + parser := resourceids.NewParserFromResourceIdType(VolumeId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := VolumeId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.NetAppAccountName, ok = parsed.Parsed["netAppAccountName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "netAppAccountName", *parsed) + } + + if id.CapacityPoolName, ok = parsed.Parsed["capacityPoolName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "capacityPoolName", *parsed) + } + + if id.VolumeName, ok = parsed.Parsed["volumeName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "volumeName", *parsed) + } + + return &id, nil +} + +// ParseVolumeIDInsensitively parses 'input' case-insensitively into a VolumeId +// note: this method should only be used for API response data and not user input +func ParseVolumeIDInsensitively(input string) (*VolumeId, error) { + parser := resourceids.NewParserFromResourceIdType(VolumeId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := VolumeId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.NetAppAccountName, ok = parsed.Parsed["netAppAccountName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "netAppAccountName", *parsed) + } + + if id.CapacityPoolName, ok = parsed.Parsed["capacityPoolName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "capacityPoolName", *parsed) + } + + if id.VolumeName, ok = parsed.Parsed["volumeName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "volumeName", *parsed) + } + + return &id, nil +} + +// ValidateVolumeID checks that 'input' can be parsed as a Volume ID +func ValidateVolumeID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseVolumeID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Volume ID +func (id VolumeId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.NetApp/netAppAccounts/%s/capacityPools/%s/volumes/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.NetAppAccountName, id.CapacityPoolName, id.VolumeName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Volume ID +func (id VolumeId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftNetApp", "Microsoft.NetApp", "Microsoft.NetApp"), + resourceids.StaticSegment("staticNetAppAccounts", "netAppAccounts", "netAppAccounts"), + resourceids.UserSpecifiedSegment("netAppAccountName", "netAppAccountValue"), + resourceids.StaticSegment("staticCapacityPools", "capacityPools", "capacityPools"), + resourceids.UserSpecifiedSegment("capacityPoolName", "capacityPoolValue"), + resourceids.StaticSegment("staticVolumes", "volumes", "volumes"), + resourceids.UserSpecifiedSegment("volumeName", "volumeValue"), + } +} + +// String returns a human-readable description of this Volume ID +func (id VolumeId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Net App Account Name: %q", id.NetAppAccountName), + fmt.Sprintf("Capacity Pool Name: %q", id.CapacityPoolName), + fmt.Sprintf("Volume Name: %q", id.VolumeName), + } + return fmt.Sprintf("Volume (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/id_volumequotarule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/id_volumequotarule.go new file mode 100644 index 000000000000..f86acf65be70 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/id_volumequotarule.go @@ -0,0 +1,166 @@ +package volumequotarules + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = VolumeQuotaRuleId{} + +// VolumeQuotaRuleId is a struct representing the Resource ID for a Volume Quota Rule +type VolumeQuotaRuleId struct { + SubscriptionId string + ResourceGroupName string + NetAppAccountName string + CapacityPoolName string + VolumeName string + VolumeQuotaRuleName string +} + +// NewVolumeQuotaRuleID returns a new VolumeQuotaRuleId struct +func NewVolumeQuotaRuleID(subscriptionId string, resourceGroupName string, netAppAccountName string, capacityPoolName string, volumeName string, volumeQuotaRuleName string) VolumeQuotaRuleId { + return VolumeQuotaRuleId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + NetAppAccountName: netAppAccountName, + CapacityPoolName: capacityPoolName, + VolumeName: volumeName, + VolumeQuotaRuleName: volumeQuotaRuleName, + } +} + +// ParseVolumeQuotaRuleID parses 'input' into a VolumeQuotaRuleId +func ParseVolumeQuotaRuleID(input string) (*VolumeQuotaRuleId, error) { + parser := resourceids.NewParserFromResourceIdType(VolumeQuotaRuleId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := VolumeQuotaRuleId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.NetAppAccountName, ok = parsed.Parsed["netAppAccountName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "netAppAccountName", *parsed) + } + + if id.CapacityPoolName, ok = parsed.Parsed["capacityPoolName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "capacityPoolName", *parsed) + } + + if id.VolumeName, ok = parsed.Parsed["volumeName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "volumeName", *parsed) + } + + if id.VolumeQuotaRuleName, ok = parsed.Parsed["volumeQuotaRuleName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "volumeQuotaRuleName", *parsed) + } + + return &id, nil +} + +// ParseVolumeQuotaRuleIDInsensitively parses 'input' case-insensitively into a VolumeQuotaRuleId +// note: this method should only be used for API response data and not user input +func ParseVolumeQuotaRuleIDInsensitively(input string) (*VolumeQuotaRuleId, error) { + parser := resourceids.NewParserFromResourceIdType(VolumeQuotaRuleId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := VolumeQuotaRuleId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.NetAppAccountName, ok = parsed.Parsed["netAppAccountName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "netAppAccountName", *parsed) + } + + if id.CapacityPoolName, ok = parsed.Parsed["capacityPoolName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "capacityPoolName", *parsed) + } + + if id.VolumeName, ok = parsed.Parsed["volumeName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "volumeName", *parsed) + } + + if id.VolumeQuotaRuleName, ok = parsed.Parsed["volumeQuotaRuleName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "volumeQuotaRuleName", *parsed) + } + + return &id, nil +} + +// ValidateVolumeQuotaRuleID checks that 'input' can be parsed as a Volume Quota Rule ID +func ValidateVolumeQuotaRuleID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseVolumeQuotaRuleID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Volume Quota Rule ID +func (id VolumeQuotaRuleId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.NetApp/netAppAccounts/%s/capacityPools/%s/volumes/%s/volumeQuotaRules/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.NetAppAccountName, id.CapacityPoolName, id.VolumeName, id.VolumeQuotaRuleName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Volume Quota Rule ID +func (id VolumeQuotaRuleId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftNetApp", "Microsoft.NetApp", "Microsoft.NetApp"), + resourceids.StaticSegment("staticNetAppAccounts", "netAppAccounts", "netAppAccounts"), + resourceids.UserSpecifiedSegment("netAppAccountName", "netAppAccountValue"), + resourceids.StaticSegment("staticCapacityPools", "capacityPools", "capacityPools"), + resourceids.UserSpecifiedSegment("capacityPoolName", "capacityPoolValue"), + resourceids.StaticSegment("staticVolumes", "volumes", "volumes"), + resourceids.UserSpecifiedSegment("volumeName", "volumeValue"), + resourceids.StaticSegment("staticVolumeQuotaRules", "volumeQuotaRules", "volumeQuotaRules"), + resourceids.UserSpecifiedSegment("volumeQuotaRuleName", "volumeQuotaRuleValue"), + } +} + +// String returns a human-readable description of this Volume Quota Rule ID +func (id VolumeQuotaRuleId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Net App Account Name: %q", id.NetAppAccountName), + fmt.Sprintf("Capacity Pool Name: %q", id.CapacityPoolName), + fmt.Sprintf("Volume Name: %q", id.VolumeName), + fmt.Sprintf("Volume Quota Rule Name: %q", id.VolumeQuotaRuleName), + } + return fmt.Sprintf("Volume Quota Rule (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_create.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_create.go new file mode 100644 index 000000000000..f052dfadc2f6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_create.go @@ -0,0 +1,74 @@ +package volumequotarules + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Create ... +func (c VolumeQuotaRulesClient) Create(ctx context.Context, id VolumeQuotaRuleId, input VolumeQuotaRule) (result CreateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateThenPoll performs Create then polls until it's completed +func (c VolumeQuotaRulesClient) CreateThenPoll(ctx context.Context, id VolumeQuotaRuleId, input VolumeQuotaRule) error { + result, err := c.Create(ctx, id, input) + if err != nil { + return fmt.Errorf("performing Create: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Create: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_delete.go new file mode 100644 index 000000000000..f490494d0541 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_delete.go @@ -0,0 +1,70 @@ +package volumequotarules + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c VolumeQuotaRulesClient) Delete(ctx context.Context, id VolumeQuotaRuleId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c VolumeQuotaRulesClient) DeleteThenPoll(ctx context.Context, id VolumeQuotaRuleId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_get.go new file mode 100644 index 000000000000..bed8822bc797 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_get.go @@ -0,0 +1,51 @@ +package volumequotarules + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *VolumeQuotaRule +} + +// Get ... +func (c VolumeQuotaRulesClient) Get(ctx context.Context, id VolumeQuotaRuleId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_listbyvolume.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_listbyvolume.go new file mode 100644 index 000000000000..1bdc8b8007cf --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_listbyvolume.go @@ -0,0 +1,52 @@ +package volumequotarules + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByVolumeOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *VolumeQuotaRulesList +} + +// ListByVolume ... +func (c VolumeQuotaRulesClient) ListByVolume(ctx context.Context, id VolumeId) (result ListByVolumeOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/volumeQuotaRules", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_update.go new file mode 100644 index 000000000000..2201827bac1d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/method_update.go @@ -0,0 +1,74 @@ +package volumequotarules + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Update ... +func (c VolumeQuotaRulesClient) Update(ctx context.Context, id VolumeQuotaRuleId, input VolumeQuotaRulePatch) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// UpdateThenPoll performs Update then polls until it's completed +func (c VolumeQuotaRulesClient) UpdateThenPoll(ctx context.Context, id VolumeQuotaRuleId, input VolumeQuotaRulePatch) error { + result, err := c.Update(ctx, id, input) + if err != nil { + return fmt.Errorf("performing Update: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Update: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotarule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotarule.go new file mode 100644 index 000000000000..9436f5c00086 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotarule.go @@ -0,0 +1,18 @@ +package volumequotarules + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type VolumeQuotaRule struct { + Id *string `json:"id,omitempty"` + Location string `json:"location"` + Name *string `json:"name,omitempty"` + Properties *VolumeQuotaRulesProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Tags *map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotarulepatch.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotarulepatch.go new file mode 100644 index 000000000000..04e5803959e8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotarulepatch.go @@ -0,0 +1,8 @@ +package volumequotarules + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type VolumeQuotaRulePatch struct { + Properties *VolumeQuotaRulesProperties `json:"properties,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotaruleslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotaruleslist.go new file mode 100644 index 000000000000..d9e15cf80355 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotaruleslist.go @@ -0,0 +1,8 @@ +package volumequotarules + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type VolumeQuotaRulesList struct { + Value *[]VolumeQuotaRule `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotarulesproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotarulesproperties.go new file mode 100644 index 000000000000..5ae037e0a23c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/model_volumequotarulesproperties.go @@ -0,0 +1,11 @@ +package volumequotarules + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type VolumeQuotaRulesProperties struct { + ProvisioningState *ProvisioningState `json:"provisioningState,omitempty"` + QuotaSizeInKiBs *int64 `json:"quotaSizeInKiBs,omitempty"` + QuotaTarget *string `json:"quotaTarget,omitempty"` + QuotaType *Type `json:"quotaType,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/version.go new file mode 100644 index 000000000000..aa45e3bee318 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules/version.go @@ -0,0 +1,12 @@ +package volumequotarules + +import "fmt" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +const defaultApiVersion = "2022-05-01" + +func userAgent() string { + return fmt.Sprintf("hashicorp/go-azure-sdk/volumequotarules/%s", defaultApiVersion) +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 7392249df8c3..943133a1327c 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -590,6 +590,7 @@ github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/netappaccou github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/snapshotpolicy github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/snapshots github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumegroups +github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumequotarules github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumes github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/volumesreplication github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01 diff --git a/website/docs/d/netapp_volume_quota_rule.html.markdown b/website/docs/d/netapp_volume_quota_rule.html.markdown new file mode 100644 index 000000000000..24124145f370 --- /dev/null +++ b/website/docs/d/netapp_volume_quota_rule.html.markdown @@ -0,0 +1,52 @@ +--- +subcategory: "NetApp" +layout: "azurerm" +page_title: "Azure Resource Manager: Data Source: azurerm_netapp_volume_quota_rule" +description: |- + Gets information about an existing Volume Quota Rule. +--- + +# Data Source: azurerm_netapp_volume_quota_rule + +Use this data source to access information about an existing Volume Quota Rule. + +## Example Usage + +```hcl +data "azurerm_netapp_volume_quota_rule" "example" { + name = "exampleQuotaRule" + volume_id = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/vol1" +} + +output "id" { + value = data.azurerm_netapp_volume_quota_rule.example.id +} +``` + +## Arguments Reference + +The following arguments are supported: + +* `name` - (Required) The name of this Volume Quota Rule. + +* `volume_id` - (Required) The NetApp volume ID where the Volume Quota Rule is assigned to. + +## Attributes Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the Volume Quota Rule. + +* `location` - The Azure Region where the Volume Quota Rule exists. + +* `quota_size_in_kib` - The quota size in kibibytes. + +* `quota_target` - The quota Target. + +* `quota_type` - The quota type. + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: + +* `read` - (Defaults to 5 minutes) Used when retrieving the Volume Quota Rule. diff --git a/website/docs/r/netapp_volume_quota_rule.html.markdown b/website/docs/r/netapp_volume_quota_rule.html.markdown new file mode 100644 index 000000000000..b0b11bf94324 --- /dev/null +++ b/website/docs/r/netapp_volume_quota_rule.html.markdown @@ -0,0 +1,158 @@ +--- +subcategory: "NetApp" +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_netapp_volume_quota_rule" +description: |- + Manages a Volume Quota Rule. +--- + +# azurerm_netapp_volume_quota_rule + +Manages a Volume Quota Rule. + +## Example Usage + +```hcl +resource "azurerm_resource_group" "example" { + name = "example-resources" + location = "West Europe" +} + +resource "azurerm_virtual_network" "example" { + name = "example-virtualnetwork" + location = azurerm_resource_group.example.location + resource_group_name = azurerm_resource_group.example.name + address_space = ["10.0.0.0/16"] +} + +resource "azurerm_subnet" "example" { + name = "example-subnet" + resource_group_name = azurerm_resource_group.example.name + virtual_network_name = azurerm_virtual_network.example.name + address_prefixes = ["10.0.2.0/24"] + + delegation { + name = "netapp" + + service_delegation { + name = "Microsoft.Netapp/volumes" + actions = ["Microsoft.Network/networkinterfaces/*", "Microsoft.Network/virtualNetworks/subnets/join/action"] + } + } +} + +resource "azurerm_netapp_account" "example" { + name = "example-netappaccount" + location = azurerm_resource_group.example.location + resource_group_name = azurerm_resource_group.example.name +} + +resource "azurerm_netapp_pool" "example" { + name = "example-netapppool" + location = azurerm_resource_group.example.location + resource_group_name = azurerm_resource_group.example.name + account_name = azurerm_netapp_account.example.name + service_level = "Premium" + size_in_tb = 4 +} + +resource "azurerm_netapp_volume" "example" { + lifecycle { + prevent_destroy = true + } + + name = "example-netappvolume" + location = azurerm_resource_group.example.location + zone = "1" + resource_group_name = azurerm_resource_group.example.name + account_name = azurerm_netapp_account.example.name + pool_name = azurerm_netapp_pool.example.name + volume_path = "my-unique-file-path" + service_level = "Premium" + subnet_id = azurerm_subnet.example.id + network_features = "Basic" + protocols = ["NFSv4.1"] + security_style = "unix" + storage_quota_in_gb = 100 + snapshot_directory_visible = false +} + +resource "azurerm_netapp_volume_quota_rule" "quota1" { + name = "example-quota-rule-1" + location = azurerm_resource_group.example.location + volume_id = azurerm_netapp_volume.example.id + quota_target = "3001" + quota_size_in_kib = 1024 + quota_type = "IndividualGroupQuota" +} + +resource "azurerm_netapp_volume_quota_rule" "quota2" { + name = "example-quota-rule-2" + location = azurerm_resource_group.example.location + volume_id = azurerm_netapp_volume.example.id + quota_target = "2001" + quota_size_in_kib = 1024 + quota_type = "IndividualUserQuota" +} + +resource "azurerm_netapp_volume_quota_rule" "quota3" { + name = "example-quota-rule-3" + location = azurerm_resource_group.example.location + volume_id = azurerm_netapp_volume.example.id + quota_size_in_kib = 1024 + quota_type = "DefaultUserQuota" +} + +resource "azurerm_netapp_volume_quota_rule" "quota4" { + name = "example-quota-rule-4" + location = azurerm_resource_group.example.location + volume_id = azurerm_netapp_volume.example.id + quota_size_in_kib = 1024 + quota_type = "DefaultGroupQuota" +} +``` + +## Arguments Reference + +The following arguments are supported: + +* `account_name` - (Required) The name of the NetApp Account where the volume is located. Changing this forces a new Volume Quota Rule to be created. + +* `location` - (Required) The Azure Region where the Volume Quota Rule should exist. Changing this forces a new Volume Quota Rule to be created. + +* `name` - (Required) The name which should be used for this Volume Quota Rule. Changing this forces a new Volume Quota Rule to be created. + +* `volume_id` - (Required) The NetApp volume ID where the Volume Quota Rule is assigned to. + +* `quota_size_in_kib` - (Required) Quota size in kibibytes. + +* `quota_type` - (Required) Quota type. Possible values are `DefaultGroupQuota`, `DefaultUserQuota`, `IndividualGroupQuota` and `IndividualUserQuota`. Please note that `IndividualGroupQuota` and `DefaultGroupQuota` are not applicable to SMB and dual-protocol volumes. + +* `quota_target` - (Optional) Quota Target. This can be Unix UID/GID for NFSv3/NFSv4.1 volumes and Windows User SID for CIFS based volumes. + +-> **NOTE:** `quota_target ` must be used when `quota_type` is `IndividualGroupQuota` or `IndividualUserQuota` + +~> **NOTE:** more information about this resource can be found at [Understand default and individual user and group quotas](https://learn.microsoft.com/en-us/azure/azure-netapp-files/default-individual-user-group-quotas-introduction) + +## Attributes Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the Volume Quota Rule. + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: + +* `create` - (Defaults to 1 hour and 30 minutes) Used when creating the Volume Quota Rule. +* `read` - (Defaults to 5 minutes) Used when retrieving the Volume Quota Rule. +* `update` - (Defaults to 2 hours) Used when updating the Volume Quota Rule. +* `delete` - (Defaults to 2 hours) Used when deleting the Volume Quota Rule. + +## Import + +Volume Quota Rules can be imported using the `resource id`, e.g. + +```shell +terraform import azurerm_netapp_volume_quota_rule.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.NetApp/netAppAccounts/account1/capacityPools/pool1/volumes/vol1/volumeQuotaRules/quota1 +``` From fafe7fe9aac755b3950bcb4c9f53f0b792544471 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Wed, 6 Sep 2023 14:44:50 -0700 Subject: [PATCH 124/336] Update CHANGELOG.md for #23042 --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb449bd684fb..4e5019f3ab0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,9 @@ FEATURES: * Provider Feature: subscription cancellation on `destroy` can now be disabled via the provider `features` block [GH-19936] -* **New Resource**: `azurerm_automation_python3_package` [GH-23087] +* **New Data Source**: `netapp_volume_quota_rule` [GH-23042] +* **New Resource**: `azurerm_automation_python3_package` [GH-23087] +* **New Resource**: `netapp_volume_quota_rule` [GH-23042] ENHANCEMENTS: From bfa6925d5ff21eca32d56b8783de0c6476ba4d11 Mon Sep 17 00:00:00 2001 From: Elena Xin Date: Thu, 7 Sep 2023 13:25:10 +0800 Subject: [PATCH 125/336] support new region --- .../redis_enterprise_cluster_location_flash_sku_support.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/services/redisenterprise/validate/redis_enterprise_cluster_location_flash_sku_support.go b/internal/services/redisenterprise/validate/redis_enterprise_cluster_location_flash_sku_support.go index 79f449c2e2e4..4eac0f8ba33a 100644 --- a/internal/services/redisenterprise/validate/redis_enterprise_cluster_location_flash_sku_support.go +++ b/internal/services/redisenterprise/validate/redis_enterprise_cluster_location_flash_sku_support.go @@ -37,7 +37,6 @@ func invalidRedisEnterpriseClusterFlashLocations() []string { func friendlyInvalidRedisEnterpriseClusterFlashLocations() []string { return []string{ "Australia Southeast", - "Brazil South", "Central US", "Central US EUAP", "East Asia", From 3a37d96eff576821d02a57d145209d3cf143ac8d Mon Sep 17 00:00:00 2001 From: aristosvo <8375124+aristosvo@users.noreply.github.com> Date: Thu, 7 Sep 2023 08:59:18 +0200 Subject: [PATCH 126/336] `azurerm_kubernetes_cluster` - Update Azure CNI to Azure CNI Overlay enabled (#22709) * `azurerm_kubernetes_cluster` - Update Azure CNI to Azure CNI Overlay enabled * fmt * Test data naming improved * Validate reverse overlay * Make the upgrade one-way * Update kubernetes_cluster_resource.go Co-authored-by: stephybun --------- Co-authored-by: stephybun --- ...ubernetes_cluster_network_resource_test.go | 68 +++++++++++++++++++ .../containers/kubernetes_cluster_resource.go | 5 +- .../docs/r/kubernetes_cluster.html.markdown | 4 +- 3 files changed, 73 insertions(+), 4 deletions(-) diff --git a/internal/services/containers/kubernetes_cluster_network_resource_test.go b/internal/services/containers/kubernetes_cluster_network_resource_test.go index fa322b52e7d1..0de518892049 100644 --- a/internal/services/containers/kubernetes_cluster_network_resource_test.go +++ b/internal/services/containers/kubernetes_cluster_network_resource_test.go @@ -826,6 +826,28 @@ func TestAccKubernetesCluster_networkPluginMode(t *testing.T) { }) } +func TestAccKubernetesCluster_networkPluginModeUpdate(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_kubernetes_cluster", "test") + r := KubernetesClusterResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.networkPluginBase(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.networkPluginMode(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func TestAccKubernetesCluster_ebpfDataPlane(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_kubernetes_cluster", "test") r := KubernetesClusterResource{} @@ -3521,6 +3543,52 @@ resource "azurerm_kubernetes_cluster" "test" { `, data.Locations.Primary, data.RandomInteger, ebpfDataPlaneValue) } +func (KubernetesClusterResource) networkPluginBase(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} +resource "azurerm_resource_group" "test" { + name = "acctestRG-aks-%[2]d" + location = "%[1]s" +} + +resource "azurerm_virtual_network" "test" { + name = "acctestRG-vnet-%[2]d" + address_space = ["10.0.0.0/8"] + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name +} + +resource "azurerm_subnet" "test" { + name = "acctestRG-subnet-%[2]d" + resource_group_name = azurerm_resource_group.test.name + virtual_network_name = azurerm_virtual_network.test.name + address_prefixes = ["10.10.0.0/16"] + +} + +resource "azurerm_kubernetes_cluster" "test" { + name = "acctestaks%[2]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + dns_prefix = "acctestaks%[2]d" + default_node_pool { + name = "default" + node_count = 1 + vm_size = "Standard_DS2_v2" + vnet_subnet_id = azurerm_subnet.test.id + } + identity { + type = "SystemAssigned" + } + network_profile { + network_plugin = "azure" + } +} +`, "westcentralus", data.RandomInteger) +} + func (KubernetesClusterResource) networkPluginMode(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { diff --git a/internal/services/containers/kubernetes_cluster_resource.go b/internal/services/containers/kubernetes_cluster_resource.go index 37ef324cecdc..067f87c652ae 100644 --- a/internal/services/containers/kubernetes_cluster_resource.go +++ b/internal/services/containers/kubernetes_cluster_resource.go @@ -105,6 +105,9 @@ func resourceKubernetesCluster() *pluginsdk.Resource { } return nil }, + pluginsdk.ForceNewIfChange("network_profile.0.network_plugin_mode", func(ctx context.Context, _, new, meta interface{}) bool { + return !strings.EqualFold(new.(string), string(managedclusters.NetworkPluginModeOverlay)) + }), ), Timeouts: &pluginsdk.ResourceTimeout{ @@ -1072,7 +1075,6 @@ func resourceKubernetesCluster() *pluginsdk.Resource { "network_plugin_mode": { Type: pluginsdk.TypeString, Optional: true, - ForceNew: true, ValidateFunc: validation.StringInSlice([]string{ string(managedclusters.NetworkPluginModeOverlay), }, false), @@ -1546,7 +1548,6 @@ func resourceKubernetesCluster() *pluginsdk.Resource { resource.Schema["network_profile"].Elem.(*pluginsdk.Resource).Schema["network_plugin_mode"] = &pluginsdk.Schema{ Type: pluginsdk.TypeString, Optional: true, - ForceNew: true, ValidateFunc: validation.StringInSlice([]string{ string(managedclusters.NetworkPluginModeOverlay), "Overlay", diff --git a/website/docs/r/kubernetes_cluster.html.markdown b/website/docs/r/kubernetes_cluster.html.markdown index dd15afff6cce..7fa6d0abc6d0 100644 --- a/website/docs/r/kubernetes_cluster.html.markdown +++ b/website/docs/r/kubernetes_cluster.html.markdown @@ -681,9 +681,9 @@ A `network_profile` block supports the following: -> **Note:** This requires that the Preview Feature `Microsoft.ContainerService/CiliumDataplanePreview` is enabled and the Resource Provider is re-registered, see [the documentation](https://learn.microsoft.com/en-us/azure/aks/azure-cni-powered-by-cilium) for more information. -* `network_plugin_mode` - (Optional) Specifies the network plugin mode used for building the Kubernetes network. Possible value is `overlay`. Changing this forces a new resource to be created. +* `network_plugin_mode` - (Optional) Specifies the network plugin mode used for building the Kubernetes network. Possible value is `overlay`. -~> **Note:** When `network_plugin_mode` is set to `overlay`, the `network_plugin` field can only be set to `azure`. +~> **Note:** When `network_plugin_mode` is set to `overlay`, the `network_plugin` field can only be set to `azure`. When upgrading from Azure CNI without overlay, `pod_subnet_id` must be specified. * `outbound_type` - (Optional) The outbound (egress) routing method which should be used for this Kubernetes Cluster. Possible values are `loadBalancer`, `userDefinedRouting`, `managedNATGateway` and `userAssignedNATGateway`. Defaults to `loadBalancer`. Changing this forces a new resource to be created. From 3abf2e4e1e535c78e4c9620c63322cccb78804a6 Mon Sep 17 00:00:00 2001 From: stephybun Date: Thu, 7 Sep 2023 09:10:53 +0200 Subject: [PATCH 127/336] Update for #23146 #23124 #23096 #22906 #23160 #23106 #22709 --- CHANGELOG.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e5019f3ab0c..bb5b413f4c79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,16 +13,22 @@ ENHANCEMENTS: * `containerapps`: updating to API Version `2023-05-01` [GH-22804] * `keyvault`: upgrade remaining resources to `2023-02-01` [GH-23089] * `redisenterprise`: updating to API Version `2023-07-01` [GH-23178] -* `internal/sdk`: typed resources using a custom importer now get a timed context [GH-23081] +* `vpngateway`: updating to use `hashicorp/go-azure-sdk` [GH-22906] +* `internal/sdk`: typed resources using a custom importer now get a timed context [GH-23160] +* `azurerm_batch_pool` - support for `accelerated_networking_enabled` [GH-23021] * `azurerm_batch_pool` - support for `automatic_upgrade_enabled` [GH-23021] +* `azurerm_bot_channel_direct_line_speech` - support for the `cognitive_account_id` property [GH-23106] +* `azurerm_bot_service_azure_bot` - support for the `local_authentication_enabled` property [GH-23096] * `azurerm_container_app_environment` - support for the `dapr_application_insights_connection_string` [GH-23080] * `azurerm_cosmosdb_cassandra_datacenter` - refactoring to use `hashicorp/go-azure-sdk` [GH-23110] * `azurerm_cosmosdb_cassandra_datacenter` - updating to API Version `2023-04-15` [GH-23110] +* `azurerm_kubernetes_cluster` - Azure CNI can be updated to use `overlay` [GH-22709] * `azurerm_monitor_diagnostic_setting` - deprecating `retention_policy` within `enabled_log` [GH-23029] * `azurerm_postgresql_database` - `collation` can now be set to `English_United Kingdom.1252` [GH-23171] * `azurerm_postgresql_flexible_database` - `collation` can now be set to `English_United Kingdom.1252` [GH-23171] * `azurerm_postgresql_flexible_server` - support for the `auto_grow_enabled` property [GH-23069] * `azurerm_resource_provider_registration` - refactoring to use `hashicorp/go-azure-sdk` [GH-23072] +* `azurerm_virtual_machine_extension` - support for `provision_after_extensions` [GH-23124] * `azurerm_virtual_network_gateway` - increasing the default timeout for create to `90m` [GH-23003] * `azurerm_virtual_hub_connection` - support for `inbound_route_map_id`, `outbound_route_map_id`, and `static_vnet_local_route_override_criteria` properties [GH-23049] @@ -35,6 +41,11 @@ BUG FIXES: * `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` [GH-23019] * `machine_learning_datastore_*` - fixes container ids [GH-23140] +DEPRECATION: + +* Data Source: `azure_monitor_log_profile` - Azure is retiring Azure Log Profiles on the 30th of September 2026 [GH-23146] +* `azure_monitor_log_profile` - Azure is retiring Azure Log Profiles on the 30th of September 2026 [GH-23146] + ## 3.71.0 (August 24, 2023) BREAKING CHANGES: From d975d9864ac0f95621eba4a4fd9450a49c6939f5 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Thu, 7 Sep 2023 10:30:44 +0200 Subject: [PATCH 128/336] updating to include #23191 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb5b413f4c79..e052ad7e189e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ FEATURES: ENHANCEMENTS: -* dependencies: updating to `v0.20230901.1104643` of `github.com/hashicorp/go-azure-sdk` [GH-23153] +* dependencies: updating to `v0.20230906.1160501` of `github.com/hashicorp/go-azure-sdk` [GH-23191] * `containerapps`: updating to API Version `2023-05-01` [GH-22804] * `keyvault`: upgrade remaining resources to `2023-02-01` [GH-23089] * `redisenterprise`: updating to API Version `2023-07-01` [GH-23178] From d0ae3bfc59c0587ac19ab41977c16458b9c11298 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Thu, 7 Sep 2023 10:45:04 +0200 Subject: [PATCH 129/336] updating to include #23200 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e052ad7e189e..746e993e8a59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ ENHANCEMENTS: * `azurerm_postgresql_database` - `collation` can now be set to `English_United Kingdom.1252` [GH-23171] * `azurerm_postgresql_flexible_database` - `collation` can now be set to `English_United Kingdom.1252` [GH-23171] * `azurerm_postgresql_flexible_server` - support for the `auto_grow_enabled` property [GH-23069] +* `azurerm_redis_enterprise_cluster` - support for Flash clusters in Brazil South [GH-23200] * `azurerm_resource_provider_registration` - refactoring to use `hashicorp/go-azure-sdk` [GH-23072] * `azurerm_virtual_machine_extension` - support for `provision_after_extensions` [GH-23124] * `azurerm_virtual_network_gateway` - increasing the default timeout for create to `90m` [GH-23003] From c697b9f9ea42284117bddc57d84398b7a1b93d93 Mon Sep 17 00:00:00 2001 From: hc-github-team-tf-azure <> Date: Thu, 7 Sep 2023 10:21:20 +0000 Subject: [PATCH 130/336] Updating based on 4d4c013f7 --- .../services/netapp/netapp_volume_group_sap_hana_resource.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/services/netapp/netapp_volume_group_sap_hana_resource.go b/internal/services/netapp/netapp_volume_group_sap_hana_resource.go index f119c0cfeaf7..65a13ce040b3 100644 --- a/internal/services/netapp/netapp_volume_group_sap_hana_resource.go +++ b/internal/services/netapp/netapp_volume_group_sap_hana_resource.go @@ -10,9 +10,8 @@ import ( "strings" "time" - "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" From d0dd33d6bc80a8a5f92d89f2aa165af2858efb89 Mon Sep 17 00:00:00 2001 From: jackofallops Date: Thu, 7 Sep 2023 12:41:17 +0200 Subject: [PATCH 131/336] add note for app_setting replacement value --- website/docs/r/linux_function_app.html.markdown | 2 ++ website/docs/r/linux_function_app_slot.html.markdown | 2 ++ website/docs/r/linux_web_app.html.markdown | 2 ++ website/docs/r/linux_web_app_slot.html.markdown | 2 ++ website/docs/r/windows_function_app.html.markdown | 2 ++ website/docs/r/windows_function_app_slot.html.markdown | 2 ++ website/docs/r/windows_web_app.html.markdown | 2 ++ website/docs/r/windows_web_app_slot.html.markdown | 2 ++ 8 files changed, 16 insertions(+) diff --git a/website/docs/r/linux_function_app.html.markdown b/website/docs/r/linux_function_app.html.markdown index 64182a9080b7..f458076d49ca 100644 --- a/website/docs/r/linux_function_app.html.markdown +++ b/website/docs/r/linux_function_app.html.markdown @@ -241,6 +241,8 @@ An `auth_settings_v2` block supports the following: * `excluded_paths` - (Optional) The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`. +~> **NOTE:** This list should be used instead of setting `WEBSITE_WARMUP_PATH` in `app_settings` as it takes priority. + * `require_https` - (Optional) Should HTTPS be required on connections? Defaults to `true`. * `http_route_api_prefix` - (Optional) The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`. diff --git a/website/docs/r/linux_function_app_slot.html.markdown b/website/docs/r/linux_function_app_slot.html.markdown index 958ba2a9a2c8..46fa54271efa 100644 --- a/website/docs/r/linux_function_app_slot.html.markdown +++ b/website/docs/r/linux_function_app_slot.html.markdown @@ -191,6 +191,8 @@ An `auth_settings_v2` block supports the following: * `excluded_paths` - (Optional) The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`. +~> **NOTE:** This list should be used instead of setting `WEBSITE_WARMUP_PATH` in `app_settings` as it takes priority. + * `require_https` - (Optional) Should HTTPS be required on connections? Defaults to `true`. * `http_route_api_prefix` - (Optional) The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`. diff --git a/website/docs/r/linux_web_app.html.markdown b/website/docs/r/linux_web_app.html.markdown index 4b31cba7063d..e56cd49ce66a 100644 --- a/website/docs/r/linux_web_app.html.markdown +++ b/website/docs/r/linux_web_app.html.markdown @@ -236,6 +236,8 @@ An `auth_settings_v2` block supports the following: * `excluded_paths` - (Optional) The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`. +~> **NOTE:** This list should be used instead of setting `WEBSITE_WARMUP_PATH` in `app_settings` as it takes priority. + * `require_https` - (Optional) Should HTTPS be required on connections? Defaults to `true`. * `http_route_api_prefix` - (Optional) The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`. diff --git a/website/docs/r/linux_web_app_slot.html.markdown b/website/docs/r/linux_web_app_slot.html.markdown index 0d89db0760f2..76b859ea0972 100644 --- a/website/docs/r/linux_web_app_slot.html.markdown +++ b/website/docs/r/linux_web_app_slot.html.markdown @@ -238,6 +238,8 @@ An `auth_settings_v2` block supports the following: * `excluded_paths` - (Optional) The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`. +~> **NOTE:** This list should be used instead of setting `WEBSITE_WARMUP_PATH` in `app_settings` as it takes priority. + * `require_https` - (Optional) Should HTTPS be required on connections? Defaults to `true`. * `http_route_api_prefix` - (Optional) The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`. diff --git a/website/docs/r/windows_function_app.html.markdown b/website/docs/r/windows_function_app.html.markdown index f2649def0a1a..87c2af296787 100644 --- a/website/docs/r/windows_function_app.html.markdown +++ b/website/docs/r/windows_function_app.html.markdown @@ -239,6 +239,8 @@ An `auth_settings_v2` block supports the following: * `excluded_paths` - (Optional) The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`. +~> **NOTE:** This list should be used instead of setting `WEBSITE_WARMUP_PATH` in `app_settings` as it takes priority. + * `require_https` - (Optional) Should HTTPS be required on connections? Defaults to `true`. * `http_route_api_prefix` - (Optional) The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`. diff --git a/website/docs/r/windows_function_app_slot.html.markdown b/website/docs/r/windows_function_app_slot.html.markdown index 65e52a9a6140..db4601bcc645 100644 --- a/website/docs/r/windows_function_app_slot.html.markdown +++ b/website/docs/r/windows_function_app_slot.html.markdown @@ -189,6 +189,8 @@ An `auth_settings_v2` block supports the following: * `excluded_paths` - (Optional) The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`. +~> **NOTE:** This list should be used instead of setting `WEBSITE_WARMUP_PATH` in `app_settings` as it takes priority. + * `require_https` - (Optional) Should HTTPS be required on connections? Defaults to `true`. * `http_route_api_prefix` - (Optional) The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`. diff --git a/website/docs/r/windows_web_app.html.markdown b/website/docs/r/windows_web_app.html.markdown index ccbea7e0c024..5d1d3d1fce7b 100644 --- a/website/docs/r/windows_web_app.html.markdown +++ b/website/docs/r/windows_web_app.html.markdown @@ -246,6 +246,8 @@ An `auth_settings_v2` block supports the following: * `excluded_paths` - (Optional) The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`. +~> **NOTE:** This list should be used instead of setting `WEBSITE_WARMUP_PATH` in `app_settings` as it takes priority. + * `require_https` - (Optional) Should HTTPS be required on connections? Defaults to `true`. * `http_route_api_prefix` - (Optional) The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`. diff --git a/website/docs/r/windows_web_app_slot.html.markdown b/website/docs/r/windows_web_app_slot.html.markdown index bb3ca2b16395..e0f1af0a5563 100644 --- a/website/docs/r/windows_web_app_slot.html.markdown +++ b/website/docs/r/windows_web_app_slot.html.markdown @@ -242,6 +242,8 @@ An `auth_settings_v2` block supports the following: * `excluded_paths` - (Optional) The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`. +~> **NOTE:** This list should be used instead of setting `WEBSITE_WARMUP_PATH` in `app_settings` as it takes priority. + * `require_https` - (Optional) Should HTTPS be required on connections? Defaults to `true`. * `http_route_api_prefix` - (Optional) The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`. From e9ab87a52d48deef20cf0054d2e8f01c47f569a9 Mon Sep 17 00:00:00 2001 From: Tao <104055472+teowa@users.noreply.github.com> Date: Thu, 7 Sep 2023 03:51:05 -0700 Subject: [PATCH 132/336] fix webhook.service_uri (#23203) --- .../services/monitor/monitor_action_group_data_source_test.go | 4 ++-- .../services/monitor/monitor_action_group_resource_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/services/monitor/monitor_action_group_data_source_test.go b/internal/services/monitor/monitor_action_group_data_source_test.go index a6281bdaa273..6dfa80634c57 100644 --- a/internal/services/monitor/monitor_action_group_data_source_test.go +++ b/internal/services/monitor/monitor_action_group_data_source_test.go @@ -106,7 +106,7 @@ func TestAccDataSourceMonitorActionGroup_complete(t *testing.T) { check.That(data.ResourceName).Key("sms_receiver.1.phone_number").HasValue("3123456789"), check.That(data.ResourceName).Key("webhook_receiver.#").HasValue("2"), check.That(data.ResourceName).Key("webhook_receiver.0.service_uri").HasValue("http://example.com/alert"), - check.That(data.ResourceName).Key("webhook_receiver.1.service_uri").HasValue("https://backup.example.com/warning"), + check.That(data.ResourceName).Key("webhook_receiver.1.service_uri").HasValue("https://example.com/warning/backup"), check.That(data.ResourceName).Key("webhook_receiver.1.use_common_alert_schema").HasValue("false"), check.That(data.ResourceName).Key("webhook_receiver.1.aad_auth.#").HasValue("0"), check.That(data.ResourceName).Key("automation_runbook_receiver.#").HasValue("1"), @@ -250,7 +250,7 @@ resource "azurerm_monitor_action_group" "test" { webhook_receiver { name = "callmybackupapi" - service_uri = "https://backup.example.com/warning" + service_uri = "https://example.com/warning/backup" } automation_runbook_receiver { diff --git a/internal/services/monitor/monitor_action_group_resource_test.go b/internal/services/monitor/monitor_action_group_resource_test.go index 6dcda5be2ced..a4b36ed3304d 100644 --- a/internal/services/monitor/monitor_action_group_resource_test.go +++ b/internal/services/monitor/monitor_action_group_resource_test.go @@ -1006,7 +1006,7 @@ resource "azurerm_monitor_action_group" "test" { webhook_receiver { name = "callmybackupapi" - service_uri = "https://backup.example.com/warning" + service_uri = "https://example.com/warning/backup" use_common_alert_schema = true } From 8c6804f095217fe92a344ae53f20d870bbe9700a Mon Sep 17 00:00:00 2001 From: Elena Xin <39109137+sinbai@users.noreply.github.com> Date: Thu, 7 Sep 2023 22:38:07 +0800 Subject: [PATCH 133/336] `azurerm_api_management_api_policy`, `azurerm_api_management_api_operation_policy`, `azurerm_api_management_product_policy` : fix parsing resource id error (#23128) * fix parsing id error * update code --- ...anagement_api_operation_policy_resource.go | 3 +- .../api_management_api_policy_resource.go | 3 +- .../api_management_product_policy_resource.go | 3 +- .../api_operation_policy_v1_to_v2.go | 76 +++++++++++++++++++ .../migration/api_policy_v1_to_v2.go | 70 +++++++++++++++++ .../migration/api_product_policy_v1_to_v2.go | 69 +++++++++++++++++ 6 files changed, 221 insertions(+), 3 deletions(-) create mode 100644 internal/services/apimanagement/migration/api_operation_policy_v1_to_v2.go create mode 100644 internal/services/apimanagement/migration/api_policy_v1_to_v2.go create mode 100644 internal/services/apimanagement/migration/api_product_policy_v1_to_v2.go diff --git a/internal/services/apimanagement/api_management_api_operation_policy_resource.go b/internal/services/apimanagement/api_management_api_operation_policy_resource.go index b8ee32d49614..52a3326ac016 100644 --- a/internal/services/apimanagement/api_management_api_operation_policy_resource.go +++ b/internal/services/apimanagement/api_management_api_operation_policy_resource.go @@ -39,9 +39,10 @@ func resourceApiManagementApiOperationPolicy() *pluginsdk.Resource { Delete: pluginsdk.DefaultTimeout(30 * time.Minute), }, - SchemaVersion: 1, + SchemaVersion: 2, StateUpgraders: pluginsdk.StateUpgrades(map[int]pluginsdk.StateUpgrade{ 0: migration.ApiManagementApiOperationPolicyV0ToV1{}, + 1: migration.ApiManagementApiOperationPolicyV1ToV2{}, }), Schema: map[string]*pluginsdk.Schema{ diff --git a/internal/services/apimanagement/api_management_api_policy_resource.go b/internal/services/apimanagement/api_management_api_policy_resource.go index a47542f96b0c..967847189398 100644 --- a/internal/services/apimanagement/api_management_api_policy_resource.go +++ b/internal/services/apimanagement/api_management_api_policy_resource.go @@ -39,9 +39,10 @@ func resourceApiManagementApiPolicy() *pluginsdk.Resource { Delete: pluginsdk.DefaultTimeout(30 * time.Minute), }, - SchemaVersion: 1, + SchemaVersion: 2, StateUpgraders: pluginsdk.StateUpgrades(map[int]pluginsdk.StateUpgrade{ 0: migration.ApiManagementApiPolicyV0ToV1{}, + 1: migration.ApiManagementApiPolicyV1ToV2{}, }), Schema: map[string]*pluginsdk.Schema{ diff --git a/internal/services/apimanagement/api_management_product_policy_resource.go b/internal/services/apimanagement/api_management_product_policy_resource.go index c3188a2ab9e0..fd56130c7c35 100644 --- a/internal/services/apimanagement/api_management_product_policy_resource.go +++ b/internal/services/apimanagement/api_management_product_policy_resource.go @@ -39,9 +39,10 @@ func resourceApiManagementProductPolicy() *pluginsdk.Resource { Delete: pluginsdk.DefaultTimeout(30 * time.Minute), }, - SchemaVersion: 1, + SchemaVersion: 2, StateUpgraders: pluginsdk.StateUpgrades(map[int]pluginsdk.StateUpgrade{ 0: migration.ApiManagementProductPolicyV0ToV1{}, + 1: migration.ApiManagementProductPolicyV1ToV2{}, }), Schema: map[string]*pluginsdk.Schema{ diff --git a/internal/services/apimanagement/migration/api_operation_policy_v1_to_v2.go b/internal/services/apimanagement/migration/api_operation_policy_v1_to_v2.go new file mode 100644 index 000000000000..20dbe8473a8f --- /dev/null +++ b/internal/services/apimanagement/migration/api_operation_policy_v1_to_v2.go @@ -0,0 +1,76 @@ +package migration + +import ( + "context" + "log" + "strings" + + "github.com/hashicorp/go-azure-sdk/resource-manager/apimanagement/2021-08-01/apioperationpolicy" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" +) + +var _ pluginsdk.StateUpgrade = ApiManagementApiOperationPolicyV1ToV2{} + +type ApiManagementApiOperationPolicyV1ToV2 struct{} + +func (ApiManagementApiOperationPolicyV1ToV2) Schema() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{ + + "resource_group_name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + }, + + "api_management_name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + }, + + "api_name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + }, + + "operation_id": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + }, + + "xml_content": { + Type: pluginsdk.TypeString, + Optional: true, + Computed: true, + }, + + "xml_link": { + Type: pluginsdk.TypeString, + Optional: true, + }, + } +} + +func (ApiManagementApiOperationPolicyV1ToV2) UpgradeFunc() pluginsdk.StateUpgraderFunc { + return func(ctx context.Context, rawState map[string]interface{}, meta interface{}) (map[string]interface{}, error) { + // old id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/instance1/apis/api1/operations/operation1/policies/policy + // new id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/instance1/apis/api1/operations/operation1 + oldId := rawState["id"].(string) + + // Prior to v3.70.0 of Terraform Provider, after importing resource, the id in state file ends with "/policies/policy", the id in state file ends with "/policies/xml" for creating resource by Terraform. + // So after migrating pandora SDK (starting from v3.70.0), these two cases need to be migrated. + // In ApiManagementApiPolicyV0ToV1, only the case where the ID ends with "/policies/xml" is processed, so the case where the ID ends with "/policies/policy" is processed here to solve the parse id error. + newId := strings.TrimSuffix(oldId, "/policies/policy") + parsed, err := apioperationpolicy.ParseOperationID(newId) + if err != nil { + return rawState, err + } + newId = parsed.ID() + log.Printf("[DEBUG] Updating ID from %q to %q", oldId, newId) + rawState["id"] = newId + + return rawState, nil + } +} diff --git a/internal/services/apimanagement/migration/api_policy_v1_to_v2.go b/internal/services/apimanagement/migration/api_policy_v1_to_v2.go new file mode 100644 index 000000000000..18e73afb07ad --- /dev/null +++ b/internal/services/apimanagement/migration/api_policy_v1_to_v2.go @@ -0,0 +1,70 @@ +package migration + +import ( + "context" + "log" + "strings" + + "github.com/hashicorp/go-azure-sdk/resource-manager/apimanagement/2021-08-01/apipolicy" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" +) + +var _ pluginsdk.StateUpgrade = ApiManagementApiPolicyV1ToV2{} + +type ApiManagementApiPolicyV1ToV2 struct{} + +func (ApiManagementApiPolicyV1ToV2) Schema() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{ + + "resource_group_name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + }, + + "api_management_name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + }, + + "api_name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + }, + + "xml_content": { + Type: pluginsdk.TypeString, + Optional: true, + Computed: true, + }, + + "xml_link": { + Type: pluginsdk.TypeString, + Optional: true, + }, + } +} + +func (ApiManagementApiPolicyV1ToV2) UpgradeFunc() pluginsdk.StateUpgraderFunc { + return func(ctx context.Context, rawState map[string]interface{}, meta interface{}) (map[string]interface{}, error) { + // old id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/apis/exampleId/policies/policy + // new id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/apis/exampleId + oldId := rawState["id"].(string) + + // Prior to v3.70.0 of Terraform Provider, after importing resource, the id in state file ends with "/policies/policy", the id in state file ends with "/policies/xml" for creating resource by Terraform. + // So after migrating pandora SDK (starting from v3.70.0), these two cases need to be migrated. + // In ApiManagementApiPolicyV0ToV1, only the case where the ID ends with "/policies/xml" is processed, so the case where the ID ends with "/policies/policy" is processed here to solve the parse id error. + newId := strings.TrimSuffix(oldId, "/policies/policy") + parsed, err := apipolicy.ParseApiID(newId) + if err != nil { + return rawState, err + } + newId = parsed.ID() + log.Printf("[DEBUG] Updating ID from %q to %q", oldId, newId) + rawState["id"] = newId + + return rawState, nil + } +} diff --git a/internal/services/apimanagement/migration/api_product_policy_v1_to_v2.go b/internal/services/apimanagement/migration/api_product_policy_v1_to_v2.go new file mode 100644 index 000000000000..a74c1f10cc1d --- /dev/null +++ b/internal/services/apimanagement/migration/api_product_policy_v1_to_v2.go @@ -0,0 +1,69 @@ +package migration + +import ( + "context" + "log" + "strings" + + "github.com/hashicorp/go-azure-sdk/resource-manager/apimanagement/2021-08-01/productpolicy" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" +) + +var _ pluginsdk.StateUpgrade = ApiManagementProductPolicyV1ToV2{} + +type ApiManagementProductPolicyV1ToV2 struct{} + +func (ApiManagementProductPolicyV1ToV2) Schema() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{ + "resource_group_name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + }, + + "api_management_name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + }, + + "product_id": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + }, + + "xml_content": { + Type: pluginsdk.TypeString, + Optional: true, + Computed: true, + }, + + "xml_link": { + Type: pluginsdk.TypeString, + Optional: true, + }, + } +} + +func (ApiManagementProductPolicyV1ToV2) UpgradeFunc() pluginsdk.StateUpgraderFunc { + return func(ctx context.Context, rawState map[string]interface{}, meta interface{}) (map[string]interface{}, error) { + // old id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/products/exampleId/policies/policy + // new id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ApiManagement/service/service1/products/exampleId + oldId := rawState["id"].(string) + + // Prior to v3.70.0 of Terraform Provider, after importing resource, the id in state file ends with "/policies/policy", the id in state file ends with "/policies/xml" for creating resource by Terraform. + // So after migrating pandora SDK (starting from v3.70.0), these two cases need to be migrated. + // In ApiManagementApiPolicyV0ToV1, only the case where the ID ends with "/policies/xml" is processed, so the case where the ID ends with "/policies/policy" is processed here to solve the parse id error. + newId := strings.TrimSuffix(oldId, "/policies/policy") + parsed, err := productpolicy.ParseProductID(newId) + if err != nil { + return rawState, err + } + newId = parsed.ID() + log.Printf("[DEBUG] Updating ID from %q to %q", oldId, newId) + rawState["id"] = newId + + return rawState, nil + } +} From 52e0a5ed0838b35dcc5cd03488aed8b8ffe97830 Mon Sep 17 00:00:00 2001 From: stephybun Date: Thu, 7 Sep 2023 16:50:05 +0200 Subject: [PATCH 134/336] Update for #23128 --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 746e993e8a59..5df9bf381514 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,9 @@ ENHANCEMENTS: BUG FIXES: +* `azurerm_api_management_api_policy` - added state migration to mutate id's ending in `policies/policy` [GH-23128] +* `azurerm_api_management_api_operation_policy` - added state migration to mutate id's ending in `policies/policy` [GH-23128] +* `azurerm_api_management_product_policy` - added state migration to mutate id's ending in `policies/policy` [GH-23128] * `azurerm_automation_account` - fixes logic for `local_authentication_enabled` [GH-23082] * `azurerm_monitor_diagnostic_setting` - fix `enabled_log` feature flagged schema [GH-23093] * `azurerm_pim_active_role_assignment`: polling for the duration of the timeout, rather than a fixed 5 minute value [GH-22932] From 0e8ff3f77a5fafa81af9a2cacb121232740b6be7 Mon Sep 17 00:00:00 2001 From: Tao <104055472+teowa@users.noreply.github.com> Date: Thu, 7 Sep 2023 07:54:46 -0700 Subject: [PATCH 135/336] `azurerm_key_vault_certificate` - point to new version when `certificate` is updated (#23135) * point to new version when import updated * update secret doc * fix doc char case --- .../keyvault/key_vault_certificate_resource.go | 11 +++++++++-- website/docs/r/key_vault_certificate.html.markdown | 6 +++--- website/docs/r/key_vault_key.html.markdown | 2 +- ...ult_managed_hardware_security_module.html.markdown | 2 +- website/docs/r/key_vault_secret.html.markdown | 4 ++-- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/internal/services/keyvault/key_vault_certificate_resource.go b/internal/services/keyvault/key_vault_certificate_resource.go index 93e5e5939637..f872971b34e7 100644 --- a/internal/services/keyvault/key_vault_certificate_resource.go +++ b/internal/services/keyvault/key_vault_certificate_resource.go @@ -605,9 +605,16 @@ func resourceKeyVaultCertificateUpdate(d *schema.ResourceData, meta interface{}) if err != nil { return err } - if resp.ID != nil { - d.SetId(id.ID()) + + if resp.ID == nil { + return fmt.Errorf("error: Certificate %q in Vault %q get nil ID from server", id.Name, id.KeyVaultBaseUrl) + } + + certificateId, err := parse.ParseNestedItemID(*resp.ID) + if err != nil { + return err } + d.SetId(certificateId.ID()) } } if d.HasChange("certificate_policy") { diff --git a/website/docs/r/key_vault_certificate.html.markdown b/website/docs/r/key_vault_certificate.html.markdown index 513d19f56c6d..ffb3cbf0bc53 100644 --- a/website/docs/r/key_vault_certificate.html.markdown +++ b/website/docs/r/key_vault_certificate.html.markdown @@ -11,7 +11,7 @@ description: |- Manages a Key Vault Certificate. -~> **Note:** the Azure Provider includes a Feature Toggle which will purge a Key Vault Certificate resource on destroy, rather than the default soft-delete. See [`purge_soft_deleted_certificates_on_destroy`](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/features-block#purge_soft_deleted_certificates_on_destroy) for more information. +~> **Note:** The Azure Provider includes a Feature Toggle which will purge a Key Vault Certificate resource on destroy, rather than the default soft-delete. See [`purge_soft_deleted_certificates_on_destroy`](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/features-block#purge_soft_deleted_certificates_on_destroy) for more information. ## Example Usage (Importing a PFX) @@ -236,9 +236,9 @@ The following arguments are supported: * `key_vault_id` - (Required) The ID of the Key Vault where the Certificate should be created. Changing this forces a new resource to be created. -* `certificate` - (Optional) A `certificate` block as defined below, used to Import an existing certificate. +* `certificate` - (Optional) A `certificate` block as defined below, used to Import an existing certificate. Changing this will create a new version of the Key Vault Certificate. -* `certificate_policy` - (Optional) A `certificate_policy` block as defined below. Changing this forces a new resource to be created. +* `certificate_policy` - (Optional) A `certificate_policy` block as defined below. Changing this will create a new version of the Key Vault Certificate. ~> **NOTE:** When creating a Key Vault Certificate, at least one of `certificate` or `certificate_policy` is required. Provide `certificate` to import an existing certificate, `certificate_policy` to generate a new certificate. diff --git a/website/docs/r/key_vault_key.html.markdown b/website/docs/r/key_vault_key.html.markdown index 34c061f85469..4633b590a03b 100644 --- a/website/docs/r/key_vault_key.html.markdown +++ b/website/docs/r/key_vault_key.html.markdown @@ -15,7 +15,7 @@ Manages a Key Vault Key. ~> **Note:** To use this resource, your client should have RBAC roles with permissions like `Key Vault Crypto Officer` or `Key Vault Administrator` or an assigned Key Vault Access Policy with permissions `Create`,`Delete`,`Get`,`Purge`,`Recover`,`Update` and `GetRotationPolicy` for keys without Rotation Policy. Include `SetRotationPolicy` for keys with Rotation Policy. -~> **Note:** the Azure Provider includes a Feature Toggle which will purge a Key Vault Key resource on destroy, rather than the default soft-delete. See [`purge_soft_deleted_keys_on_destroy`](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/features-block#purge_soft_deleted_keys_on_destroy) for more information. +~> **Note:** The Azure Provider includes a Feature Toggle which will purge a Key Vault Key resource on destroy, rather than the default soft-delete. See [`purge_soft_deleted_keys_on_destroy`](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/features-block#purge_soft_deleted_keys_on_destroy) for more information. ## Example Usage diff --git a/website/docs/r/key_vault_managed_hardware_security_module.html.markdown b/website/docs/r/key_vault_managed_hardware_security_module.html.markdown index 2ddcdbb8e84d..06e26b7672e6 100644 --- a/website/docs/r/key_vault_managed_hardware_security_module.html.markdown +++ b/website/docs/r/key_vault_managed_hardware_security_module.html.markdown @@ -10,7 +10,7 @@ description: |- Manages a Key Vault Managed Hardware Security Module. -~> **Note:** the Azure Provider includes a Feature Toggle which will purge a Key Vault Managed Hardware Security Module resource on destroy, rather than the default soft-delete. See [`purge_soft_deleted_hardware_security_modules_on_destroy`](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/features-block#purge_soft_deleted_hardware_security_modules_on_destroy) for more information. +~> **Note:** The Azure Provider includes a Feature Toggle which will purge a Key Vault Managed Hardware Security Module resource on destroy, rather than the default soft-delete. See [`purge_soft_deleted_hardware_security_modules_on_destroy`](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/features-block#purge_soft_deleted_hardware_security_modules_on_destroy) for more information. ## Example Usage diff --git a/website/docs/r/key_vault_secret.html.markdown b/website/docs/r/key_vault_secret.html.markdown index d97d53b42dee..c6387f8e3731 100644 --- a/website/docs/r/key_vault_secret.html.markdown +++ b/website/docs/r/key_vault_secret.html.markdown @@ -14,7 +14,7 @@ Manages a Key Vault Secret. ~> **Note:** All arguments including the secret value will be stored in the raw state as plain-text. [Read more about sensitive data in state](/docs/state/sensitive-data.html). -~> **Note:** the Azure Provider includes a Feature Toggle which will purge a Key Vault Secret resource on destroy, rather than the default soft-delete. See [`purge_soft_deleted_secrets_on_destroy`](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/features-block#purge_soft_deleted_secrets_on_destroy) for more information. +~> **Note:** The Azure Provider includes a Feature Toggle which will purge a Key Vault Secret resource on destroy, rather than the default soft-delete. See [`purge_soft_deleted_secrets_on_destroy`](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/guides/features-block#purge_soft_deleted_secrets_on_destroy) for more information. ## Example Usage @@ -75,7 +75,7 @@ The following arguments are supported: * `name` - (Required) Specifies the name of the Key Vault Secret. Changing this forces a new resource to be created. -* `value` - (Required) Specifies the value of the Key Vault Secret. +* `value` - (Required) Specifies the value of the Key Vault Secret. Changing this will create a new version of the Key Vault Secret. ~> **Note:** Key Vault strips newlines. To preserve newlines in multi-line secrets try replacing them with `\n` or by base 64 encoding them with `replace(file("my_secret_file"), "/\n/", "\n")` or `base64encode(file("my_secret_file"))`, respectively. From dd5c161ff3c5117e86d60ae1879fc6ef8bb957c6 Mon Sep 17 00:00:00 2001 From: catriona-m <86247157+catriona-m@users.noreply.github.com> Date: Thu, 7 Sep 2023 15:55:48 +0100 Subject: [PATCH 136/336] Update CHANGELOG.md #23135 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5df9bf381514..2f07fb877b29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,7 @@ BUG FIXES: * `azurerm_policy_set_definition` - only sending `parameters` when a value is configured [GH-23155] * `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` [GH-23019] * `machine_learning_datastore_*` - fixes container ids [GH-23140] +* `azurerm_key_vault_certificate` - id now points to new version when certificate is updated [GH-23135] DEPRECATION: From 228fe6a09f86df9bde79f19519441c984b6ff923 Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Thu, 7 Sep 2023 23:01:02 +0800 Subject: [PATCH 137/336] `azurerm_site_recovery_replicated_vm`: fix `network_interface`, use the default hash func (#23199) Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --- .../site_recovery_replicated_vm_resource.go | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go b/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go index acbe3078571e..7bad070cafec 100644 --- a/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go +++ b/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go @@ -292,7 +292,6 @@ func resourceSiteRecoveryReplicatedVM() *pluginsdk.Resource { "network_interface": { Type: pluginsdk.TypeSet, // use set to avoid diff caused by different orders. - Set: resourceSiteRecoveryReplicatedVMNicHash, ConfigMode: pluginsdk.SchemaConfigModeAttr, Computed: true, Optional: true, @@ -984,19 +983,6 @@ func resourceSiteRecoveryReplicatedVMDiskHash(v interface{}) int { return pluginsdk.HashString(buf.String()) } -// the default hash function will not ignore Option + Computed properties, which will cause diff. -func resourceSiteRecoveryReplicatedVMNicHash(v interface{}) int { - var buf bytes.Buffer - - if m, ok := v.(map[string]interface{}); ok { - if v, ok := m["source_network_interface_id"]; ok { - buf.WriteString(strings.ToLower(v.(string))) - } - } - - return pluginsdk.HashString(buf.String()) -} - func waitForReplicationToBeHealthy(ctx context.Context, d *pluginsdk.ResourceData, meta interface{}) (*replicationprotecteditems.ReplicationProtectedItem, error) { log.Printf("Waiting for Site Recover to replicate VM.") stateConf := &pluginsdk.StateChangeConf{ From 4e52daaeb1935a293db5e1cdc4b29663d08c7b83 Mon Sep 17 00:00:00 2001 From: catriona-m <86247157+catriona-m@users.noreply.github.com> Date: Thu, 7 Sep 2023 16:02:05 +0100 Subject: [PATCH 138/336] Update CHANGELOG.md #23199 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f07fb877b29..caf2ce0795c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,7 @@ BUG FIXES: * `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` [GH-23019] * `machine_learning_datastore_*` - fixes container ids [GH-23140] * `azurerm_key_vault_certificate` - id now points to new version when certificate is updated [GH-23135] +* `azurerm_site_recovery_replicated_vm` - update `network_interface` diff so replicated items now can be updated [GH-23199] DEPRECATION: From 2bab03c8426c29ddd4eaf3174f8a532c75668073 Mon Sep 17 00:00:00 2001 From: xuwu1 Date: Thu, 7 Sep 2023 23:19:10 +0800 Subject: [PATCH 139/336] skip wait status when creating certification with Unknown Issuer --- .../services/keyvault/key_vault_certificate_resource.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/services/keyvault/key_vault_certificate_resource.go b/internal/services/keyvault/key_vault_certificate_resource.go index f872971b34e7..9d7130a52212 100644 --- a/internal/services/keyvault/key_vault_certificate_resource.go +++ b/internal/services/keyvault/key_vault_certificate_resource.go @@ -15,6 +15,7 @@ import ( "time" "github.com/Azure/go-autorest/autorest" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" @@ -186,7 +187,7 @@ func resourceKeyVaultCertificate() *pluginsdk.Resource { }, }, }, - //lintignore:XS003 + // lintignore:XS003 "trigger": { Type: pluginsdk.TypeList, Required: true, @@ -653,6 +654,12 @@ func keyVaultCertificateCreationRefreshFunc(ctx context.Context, client *keyvaul } if strings.EqualFold(*operation.Status, "inProgress") { + if issuer := operation.IssuerParameters; issuer != nil { + if strings.EqualFold(pointer.From(issuer.Name), "unknown") { + return operation, "Ready", nil + } + } + return operation, "Provisioning", nil } From 561d85859de73a964ea8d0cd50b8e097ec029b2e Mon Sep 17 00:00:00 2001 From: stephybun Date: Thu, 7 Sep 2023 19:50:08 +0200 Subject: [PATCH 140/336] `azurerm_mssql_database` - split create and update methods (#23209) --- .../services/mssql/mssql_database_resource.go | 491 +++++++++++++++--- 1 file changed, 428 insertions(+), 63 deletions(-) diff --git a/internal/services/mssql/mssql_database_resource.go b/internal/services/mssql/mssql_database_resource.go index 85feed693dd5..5f00d7466f6d 100644 --- a/internal/services/mssql/mssql_database_resource.go +++ b/internal/services/mssql/mssql_database_resource.go @@ -12,6 +12,7 @@ import ( "github.com/Azure/azure-sdk-for-go/services/preview/sql/mgmt/v5.0/sql" // nolint: staticcheck "github.com/Azure/go-autorest/autorest/date" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-sdk/resource-manager/maintenance/2022-07-01-preview/publicmaintenanceconfigurations" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -32,9 +33,9 @@ import ( func resourceMsSqlDatabase() *pluginsdk.Resource { return &pluginsdk.Resource{ - Create: resourceMsSqlDatabaseCreateUpdate, + Create: resourceMsSqlDatabaseCreate, Read: resourceMsSqlDatabaseRead, - Update: resourceMsSqlDatabaseCreateUpdate, + Update: resourceMsSqlDatabaseUpdate, Delete: resourceMsSqlDatabaseDelete, Importer: pluginsdk.ImporterValidatingResourceIdThen(func(id string) error { @@ -107,7 +108,7 @@ func resourceMsSqlDatabaseImporter(ctx context.Context, d *pluginsdk.ResourceDat return []*pluginsdk.ResourceData{d}, nil } -func resourceMsSqlDatabaseCreateUpdate(d *pluginsdk.ResourceData, meta interface{}) error { +func resourceMsSqlDatabaseCreate(d *pluginsdk.ResourceData, meta interface{}) error { client := meta.(*clients.Client).MSSQL.DatabasesClient serversClient := meta.(*clients.Client).MSSQL.ServersClient securityAlertPoliciesClient := meta.(*clients.Client).MSSQL.DatabaseSecurityAlertPoliciesClient @@ -136,35 +137,24 @@ func resourceMsSqlDatabaseCreateUpdate(d *pluginsdk.ResourceData, meta interface id := parse.NewDatabaseID(serverId.SubscriptionId, serverId.ResourceGroup, serverId.Name, name) - if d.IsNewResource() { - if existing, err := client.Get(ctx, serverId.ResourceGroup, serverId.Name, name); err != nil { - if !utils.ResponseWasNotFound(existing.Response) { - return fmt.Errorf("checking for presence of existing %s: %+v", id, err) - } - } else { - return tf.ImportAsExistsError("azurerm_mssql_database", id.ID()) + if existing, err := client.Get(ctx, serverId.ResourceGroup, serverId.Name, name); err != nil { + if !utils.ResponseWasNotFound(existing.Response) { + return fmt.Errorf("checking for presence of existing %s: %+v", id, err) } + } else { + return tf.ImportAsExistsError("azurerm_mssql_database", id.ID()) } server, err := serversClient.Get(ctx, serverId.ResourceGroup, serverId.Name, "") if err != nil { - return fmt.Errorf("making Read request on MsSql Server %q (Resource Group %q): %s", serverId.Name, serverId.ResourceGroup, err) + return fmt.Errorf("retrieving %s: %q", serverId, err) } if server.Location == nil || *server.Location == "" { - return fmt.Errorf("reading %s: Location was nil/empoty", serverId) + return fmt.Errorf("reading %s: Location was nil/empty", serverId) } location := *server.Location - // when disassociating mssql db from elastic pool, the sku_name must be specific - if d.HasChange("elastic_pool_id") { - if old, new := d.GetChange("elastic_pool_id"); old.(string) != "" && new.(string) == "" { - if v, ok := d.GetOk("sku_name"); !ok || (ok && v.(string) == "ElasticPool") { - return fmt.Errorf("`sku_name` must be assigned and not be %q when disassociating from Elastic Pool", "ElasticPool") - } - } - } - ledgerEnabled := d.Get("ledger_enabled").(bool) // When databases are replicating, the primary cannot have a SKU belonging to a higher service tier than any of its @@ -182,7 +172,7 @@ func resourceMsSqlDatabaseCreateUpdate(d *pluginsdk.ResourceData, meta interface locks.ByID(id.ID()) defer locks.UnlockByID(id.ID()) - if skuName := d.Get("sku_name"); !d.IsNewResource() && d.HasChange("sku_name") && skuName != "" { + if skuName := d.Get("sku_name"); skuName != "" { partnerDatabases, err := helper.FindDatabaseReplicationPartners(ctx, client, replicationLinksClient, resourcesClient, id, []sql.ReplicationRole{sql.ReplicationRoleSecondary, sql.ReplicationRoleNonReadableSecondary}) if err != nil { return err @@ -350,11 +340,8 @@ func resourceMsSqlDatabaseCreateUpdate(d *pluginsdk.ResourceData, meta interface MinTimeout: 1 * time.Minute, ContinuousTargetOccurence: 2, } - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(pluginsdk.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(pluginsdk.TimeoutUpdate) - } + + stateConf.Timeout = d.Timeout(pluginsdk.TimeoutCreate) if _, err = stateConf.WaitForStateContext(ctx); err != nil { return fmt.Errorf("waiting for %s to become ready: %+v", id, err) @@ -406,12 +393,12 @@ func resourceMsSqlDatabaseCreateUpdate(d *pluginsdk.ResourceData, meta interface d.SetId(id.ID()) // For datawarehouse SKUs only - if strings.HasPrefix(skuName.(string), "DW") && (d.HasChange("geo_backup_enabled") || d.IsNewResource()) { + if strings.HasPrefix(skuName.(string), "DW") { isEnabled := d.Get("geo_backup_enabled").(bool) var geoBackupPolicyState sql.GeoBackupPolicyState // The default geo backup policy configuration for a new resource is 'enabled', so we don't need to set it in that scenario - if !(d.IsNewResource() && isEnabled) { + if !isEnabled { if isEnabled { geoBackupPolicyState = sql.GeoBackupPolicyStateEnabled } else { @@ -446,49 +433,43 @@ func resourceMsSqlDatabaseCreateUpdate(d *pluginsdk.ResourceData, meta interface return nil } - if d.HasChange("long_term_retention_policy") { - v := d.Get("long_term_retention_policy") - longTermRetentionProps := helper.ExpandLongTermRetentionPolicy(v.([]interface{})) - if longTermRetentionProps != nil { - longTermRetentionPolicy := sql.LongTermRetentionPolicy{} + longTermRetentionProps := helper.ExpandLongTermRetentionPolicy(d.Get("long_term_retention_policy").([]interface{})) + if longTermRetentionProps != nil { + longTermRetentionPolicy := sql.LongTermRetentionPolicy{} - // DataWarehouse SKU's do not support LRP currently - if !strings.HasPrefix(skuName.(string), "DW") { - longTermRetentionPolicy.BaseLongTermRetentionPolicyProperties = longTermRetentionProps - } + // DataWarehouse SKU's do not support LRP currently + if !strings.HasPrefix(skuName.(string), "DW") { + longTermRetentionPolicy.BaseLongTermRetentionPolicyProperties = longTermRetentionProps + } - longTermRetentionfuture, err := longTermRetentionClient.CreateOrUpdate(ctx, id.ResourceGroup, id.ServerName, id.Name, longTermRetentionPolicy) - if err != nil { - return fmt.Errorf("setting Long Term Retention Policies for %s: %+v", id, err) - } + longTermRetentionfuture, err := longTermRetentionClient.CreateOrUpdate(ctx, id.ResourceGroup, id.ServerName, id.Name, longTermRetentionPolicy) + if err != nil { + return fmt.Errorf("setting Long Term Retention Policies for %s: %+v", id, err) + } - if err = longTermRetentionfuture.WaitForCompletionRef(ctx, longTermRetentionClient.Client); err != nil { - return fmt.Errorf("waiting for update of Long Term Retention Policies for %s: %+v", id, err) - } + if err = longTermRetentionfuture.WaitForCompletionRef(ctx, longTermRetentionClient.Client); err != nil { + return fmt.Errorf("waiting for update of Long Term Retention Policies for %s: %+v", id, err) } } - if d.HasChange("short_term_retention_policy") { - v := d.Get("short_term_retention_policy") - backupShortTermPolicyProps := helper.ExpandShortTermRetentionPolicy(v.([]interface{})) - if backupShortTermPolicyProps != nil { - backupShortTermPolicy := sql.BackupShortTermRetentionPolicy{} + backupShortTermPolicyProps := helper.ExpandShortTermRetentionPolicy(d.Get("short_term_retention_policy").([]interface{})) + if backupShortTermPolicyProps != nil { + backupShortTermPolicy := sql.BackupShortTermRetentionPolicy{} - if !strings.HasPrefix(skuName.(string), "DW") { - backupShortTermPolicy.BackupShortTermRetentionPolicyProperties = backupShortTermPolicyProps - } - if strings.HasPrefix(skuName.(string), "HS") { - backupShortTermPolicy.BackupShortTermRetentionPolicyProperties.DiffBackupIntervalInHours = nil - } + if !strings.HasPrefix(skuName.(string), "DW") { + backupShortTermPolicy.BackupShortTermRetentionPolicyProperties = backupShortTermPolicyProps + } + if strings.HasPrefix(skuName.(string), "HS") { + backupShortTermPolicy.BackupShortTermRetentionPolicyProperties.DiffBackupIntervalInHours = nil + } - shortTermRetentionFuture, err := shortTermRetentionClient.CreateOrUpdate(ctx, id.ResourceGroup, id.ServerName, id.Name, backupShortTermPolicy) - if err != nil { - return fmt.Errorf("setting Short Term Retention Policies for %s: %+v", id, err) - } + shortTermRetentionFuture, err := shortTermRetentionClient.CreateOrUpdate(ctx, id.ResourceGroup, id.ServerName, id.Name, backupShortTermPolicy) + if err != nil { + return fmt.Errorf("setting Short Term Retention Policies for %s: %+v", id, err) + } - if err = shortTermRetentionFuture.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for update of Short Term Retention Policies for %s: %+v", id, err) - } + if err = shortTermRetentionFuture.WaitForCompletionRef(ctx, client.Client); err != nil { + return fmt.Errorf("waiting for update of Short Term Retention Policies for %s: %+v", id, err) } } @@ -636,6 +617,390 @@ func resourceMsSqlDatabaseRead(d *pluginsdk.ResourceData, meta interface{}) erro return tags.FlattenAndSet(d, resp.Tags) } +func resourceMsSqlDatabaseUpdate(d *pluginsdk.ResourceData, meta interface{}) error { + client := meta.(*clients.Client).MSSQL.DatabasesClient + serversClient := meta.(*clients.Client).MSSQL.ServersClient + securityAlertPoliciesClient := meta.(*clients.Client).MSSQL.DatabaseSecurityAlertPoliciesClient + longTermRetentionClient := meta.(*clients.Client).MSSQL.LongTermRetentionPoliciesClient + shortTermRetentionClient := meta.(*clients.Client).MSSQL.BackupShortTermRetentionPoliciesClient + geoBackupPoliciesClient := meta.(*clients.Client).MSSQL.GeoBackupPoliciesClient + replicationLinksClient := meta.(*clients.Client).MSSQL.ReplicationLinksClient + resourcesClient := meta.(*clients.Client).Resource.ResourcesClient + transparentEncryptionClient := meta.(*clients.Client).MSSQL.TransparentDataEncryptionsClient + + ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) + defer cancel() + + log.Printf("[INFO] preparing arguments for MsSql Database creation.") + + skuName := d.Get("sku_name").(string) + if strings.HasPrefix(skuName, "GP_S_") && d.Get("license_type").(string) != "" { + return fmt.Errorf("serverless databases do not support license type") + } + + name := d.Get("name").(string) + + serverId, err := parse.ServerID(d.Get("server_id").(string)) + if err != nil { + return fmt.Errorf("parsing server ID: %+v", err) + } + + id := parse.NewDatabaseID(serverId.SubscriptionId, serverId.ResourceGroup, serverId.Name, name) + + _, err = client.Get(ctx, id.ResourceGroup, id.ServerName, id.Name) + if err != nil { + return fmt.Errorf("retrieving %s: %+q", id, err) + } + + _, err = serversClient.Get(ctx, serverId.ResourceGroup, serverId.Name, "") + if err != nil { + return fmt.Errorf("retrieving %s: %q", serverId, err) + } + + // when disassociating mssql db from elastic pool, the sku_name must be specific + if d.HasChange("elastic_pool_id") { + if old, new := d.GetChange("elastic_pool_id"); old.(string) != "" && new.(string) == "" { + if v, ok := d.GetOk("sku_name"); !ok || (ok && v.(string) == "ElasticPool") { + return fmt.Errorf("`sku_name` must be assigned and not be %q when disassociating from Elastic Pool", "ElasticPool") + } + } + } + + // When databases are replicating, the primary cannot have a SKU belonging to a higher service tier than any of its + // partner databases. To work around this, we'll try to identify any partner databases that are secondary to this + // database, and where the new SKU tier for this database is going to be higher, first upgrade those databases to + // the same sku_name as we'll be changing this database to. If that sku is different to the one configured for any + // of the partner databases, that discrepancy will have to be corrected by the resource for that database. That + // might happen as part of the same apply, if a change was already planned for it, else it will only be picked up + // in a second plan/apply. + // + // TLDR: for the best experience, configs should use the same SKU for primary and partner databases and when + // upgrading those SKUs, we'll try to upgrade the partner databases first. + + // Place a lock for the current database so any partner resources can't bump its SKU out of band + locks.ByID(id.ID()) + defer locks.UnlockByID(id.ID()) + + if d.HasChange("sku_name") && skuName != "" { + partnerDatabases, err := helper.FindDatabaseReplicationPartners(ctx, client, replicationLinksClient, resourcesClient, id, []sql.ReplicationRole{sql.ReplicationRoleSecondary, sql.ReplicationRoleNonReadableSecondary}) + if err != nil { + return err + } + + // Place a lock for the partner databases, so they can't update themselves whilst we're poking their SKUs + for _, partnerDatabase := range partnerDatabases { + partnerDatabaseId, err := parse.DatabaseID(*partnerDatabase.ID) + if err != nil { + return fmt.Errorf("parsing ID for Replication Partner Database %q: %+v", *partnerDatabase.ID, err) + } + + locks.ByID(partnerDatabaseId.ID()) + defer locks.UnlockByID(partnerDatabaseId.ID()) + } + + // Update the SKUs of any partner databases where deemed necessary + for _, partnerDatabase := range partnerDatabases { + partnerDatabaseId, err := parse.DatabaseID(*partnerDatabase.ID) + if err != nil { + return fmt.Errorf("parsing ID for Replication Partner Database %q: %+v", *partnerDatabase.ID, err) + } + + // See: https://docs.microsoft.com/en-us/azure/azure-sql/database/active-geo-replication-overview#configuring-secondary-database + if partnerDatabase.Sku != nil && partnerDatabase.Sku.Name != nil && helper.CompareDatabaseSkuServiceTiers(skuName, *partnerDatabase.Sku.Name) { + future, err := client.Update(ctx, partnerDatabaseId.ResourceGroup, partnerDatabaseId.ServerName, partnerDatabaseId.Name, sql.DatabaseUpdate{ + Sku: &sql.Sku{ + Name: pointer.To(skuName), + }, + }) + if err != nil { + return fmt.Errorf("updating SKU of Replication Partner %s: %+v", partnerDatabaseId, err) + } + + if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { + return fmt.Errorf("waiting for SKU update for Replication Partner %s: %+v", partnerDatabaseId, err) + } + } + } + } + + payload := sql.DatabaseUpdate{} + props := sql.DatabaseProperties{} + + if d.HasChange("auto_pause_delay_in_minutes") { + props.AutoPauseDelay = pointer.To(int32(d.Get("auto_pause_delay_in_minutes").(int))) + } + + if d.HasChange("elastic_pool_id") { + props.ElasticPoolID = pointer.To(d.Get("elastic_pool_id").(string)) + } + + if d.HasChange("license_type") { + props.LicenseType = sql.DatabaseLicenseType(d.Get("license_type").(string)) + } + + if d.HasChange("min_capacity") { + props.MinCapacity = pointer.To(d.Get("min_capacity").(float64)) + } + + if d.HasChange("read_replica_count") { + props.HighAvailabilityReplicaCount = pointer.To(int32(d.Get("read_replica_count").(int))) + } + + if d.HasChange("sample_name") { + props.SampleName = sql.SampleName(d.Get("sample_name").(string)) + } + + if d.HasChange("storage_account_type") { + props.RequestedBackupStorageRedundancy = sql.RequestedBackupStorageRedundancy(d.Get("storage_account_type").(string)) + } + + if d.HasChange("zone_redundant") { + props.ZoneRedundant = pointer.To(d.Get("zone_redundant").(bool)) + } + + if d.HasChange("tags") { + payload.Tags = tags.Expand(d.Get("tags").(map[string]interface{})) + } + + // we should not specify the value of `maintenance_configuration_name` when `elastic_pool_id` is set since its value depends on the elastic pool's `maintenance_configuration_name` value. + if _, ok := d.GetOk("elastic_pool_id"); !ok && d.HasChange("maintenance_configuration_name") { + // set default value here because `elastic_pool_id` is not specified, API returns default value `SQL_Default` for `maintenance_configuration_name` + maintenanceConfigId := publicmaintenanceconfigurations.NewPublicMaintenanceConfigurationID(serverId.SubscriptionId, "SQL_Default") + if v, ok := d.GetOk("maintenance_configuration_name"); ok { + maintenanceConfigId = publicmaintenanceconfigurations.NewPublicMaintenanceConfigurationID(serverId.SubscriptionId, v.(string)) + } + props.MaintenanceConfigurationID = pointer.To(maintenanceConfigId.ID()) + } + + createMode := d.Get("create_mode").(string) + if v, ok := d.GetOk("max_size_gb"); ok { + // `max_size_gb` is Computed, so has a value after the first run + if createMode != string(sql.CreateModeOnlineSecondary) && createMode != string(sql.CreateModeSecondary) { + props.MaxSizeBytes = utils.Int64(int64(v.(int)) * 1073741824) + } + // `max_size_gb` only has change if it is configured + if d.HasChange("max_size_gb") && (createMode == string(sql.CreateModeOnlineSecondary) || createMode == string(sql.CreateModeSecondary)) { + return fmt.Errorf("it is not possible to change maximum size nor advised to configure maximum size in secondary create mode for %s", id) + } + } + + if d.HasChanges("read_scale") { + readScale := sql.DatabaseReadScaleDisabled + if v := d.Get("read_scale").(bool); v { + readScale = sql.DatabaseReadScaleEnabled + } + props.ReadScale = readScale + } + + if d.HasChange("restore_point_in_time") { + if v, ok := d.GetOk("restore_point_in_time"); ok { + if createMode != string(sql.CreateModePointInTimeRestore) { + return fmt.Errorf("'restore_point_in_time' is supported only for create_mode %s", string(sql.CreateModePointInTimeRestore)) + } + restorePointInTime, err := time.Parse(time.RFC3339, v.(string)) + if err != nil { + return fmt.Errorf("parsing `restore_point_in_time` value %q for %s: %+v", v, id, err) + } + props.RestorePointInTime = &date.Time{Time: restorePointInTime} + } + } + + if d.HasChange("sku_name") { + payload.Sku = &sql.Sku{ + Name: pointer.To(skuName), + } + } + + if d.HasChange("recover_database_id") { + props.RecoverableDatabaseID = pointer.To(d.Get("recover_database_id").(string)) + } + + if d.HasChange("restore_dropped_database_id") { + props.RestorableDroppedDatabaseID = pointer.To(d.Get("restore_dropped_database_id").(string)) + } + + payload.DatabaseProperties = pointer.To(props) + + future, err := client.Update(ctx, id.ResourceGroup, id.ServerName, id.Name, payload) + if err != nil { + return fmt.Errorf("updating %s: %+v", id, err) + } + + if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { + return fmt.Errorf("waiting for update of %s: %+v", id, err) + } + + // Wait for the ProvisioningState to become "Succeeded" + log.Printf("[DEBUG] Waiting for %s to become ready", id) + pendingStatuses := make([]string, 0) + for _, s := range sql.PossibleDatabaseStatusValues() { + if s != sql.DatabaseStatusOnline { + pendingStatuses = append(pendingStatuses, string(s)) + } + } + stateConf := &pluginsdk.StateChangeConf{ + Pending: pendingStatuses, + Target: []string{string(sql.DatabaseStatusOnline)}, + Refresh: func() (interface{}, string, error) { + log.Printf("[DEBUG] Checking to see if %s is online...", id) + + resp, err := client.Get(ctx, id.ResourceGroup, id.ServerName, id.Name) + if err != nil { + return nil, "", fmt.Errorf("polling for the status of %s: %+v", id, err) + } + + if props := resp.DatabaseProperties; props != nil { + return resp, string(props.Status), nil + } + + return resp, "", nil + }, + MinTimeout: 1 * time.Minute, + ContinuousTargetOccurence: 2, + } + stateConf.Timeout = d.Timeout(pluginsdk.TimeoutUpdate) + + if _, err = stateConf.WaitForStateContext(ctx); err != nil { + return fmt.Errorf("waiting for %s to become ready: %+v", id, err) + } + + // Cannot set transparent data encryption for secondary databases + if createMode != string(sql.CreateModeOnlineSecondary) && createMode != string(sql.CreateModeSecondary) { + statusProperty := sql.TransparentDataEncryptionStatusDisabled + if d.HasChange("transparent_data_encryption_enabled") { + encryptionStatus := d.Get("transparent_data_encryption_enabled").(bool) + if encryptionStatus { + statusProperty = sql.TransparentDataEncryptionStatusEnabled + } + _, err := transparentEncryptionClient.CreateOrUpdate(ctx, id.ResourceGroup, id.ServerName, id.Name, sql.TransparentDataEncryption{ + TransparentDataEncryptionProperties: &sql.TransparentDataEncryptionProperties{ + Status: statusProperty, + }, + }) + if err != nil { + return fmt.Errorf("while enabling Transparent Data Encryption for %q: %+v", id.String(), err) + } + + if err = pluginsdk.Retry(d.Timeout(pluginsdk.TimeoutCreate), func() *pluginsdk.RetryError { + c, err := client.Get(ctx, id.ResourceGroup, id.ServerName, id.Name) + if err != nil { + return pluginsdk.NonRetryableError(fmt.Errorf("while polling cluster %s for status: %+v", id.String(), err)) + } + if c.DatabaseProperties.Status == sql.DatabaseStatusScaling { + return pluginsdk.RetryableError(fmt.Errorf("database %s is still scaling", id.String())) + } + + return nil + }); err != nil { + return nil + } + } + + } + + if d.HasChange("import") { + if _, ok := d.GetOk("import"); ok { + importParameters := expandMsSqlServerImport(d) + importFuture, err := client.Import(ctx, id.ResourceGroup, id.ServerName, id.Name, importParameters) + if err != nil { + return fmt.Errorf("while import bacpac into the new database %s (Resource Group %s): %+v", id.Name, id.ResourceGroup, err) + } + + if err = importFuture.WaitForCompletionRef(ctx, client.Client); err != nil { + return fmt.Errorf("while import bacpac into the new database %s (Resource Group %s): %+v", id.Name, id.ResourceGroup, err) + } + } + } + + d.SetId(id.ID()) + + // For datawarehouse SKUs only + if strings.HasPrefix(skuName, "DW") && d.HasChange("geo_backup_enabled") { + isEnabled := d.Get("geo_backup_enabled").(bool) + var geoBackupPolicyState sql.GeoBackupPolicyState + + if isEnabled { + geoBackupPolicyState = sql.GeoBackupPolicyStateEnabled + } else { + geoBackupPolicyState = sql.GeoBackupPolicyStateDisabled + } + + geoBackupPolicy := sql.GeoBackupPolicy{ + GeoBackupPolicyProperties: &sql.GeoBackupPolicyProperties{ + State: geoBackupPolicyState, + }, + } + + if _, err := geoBackupPoliciesClient.CreateOrUpdate(ctx, id.ResourceGroup, id.ServerName, id.Name, geoBackupPolicy); err != nil { + return fmt.Errorf("setting Geo Backup Policies for %s: %+v", id, err) + } + } + + if err = pluginsdk.Retry(d.Timeout(pluginsdk.TimeoutCreate), func() *pluginsdk.RetryError { + result, err := securityAlertPoliciesClient.CreateOrUpdate(ctx, id.ResourceGroup, id.ServerName, id.Name, expandMsSqlServerSecurityAlertPolicy(d)) + + if utils.ResponseWasNotFound(result.Response) { + return pluginsdk.RetryableError(fmt.Errorf("database %s is still creating", id.String())) + } + + if err != nil { + return pluginsdk.NonRetryableError(fmt.Errorf("setting database threat detection policy for %s: %+v", id, err)) + } + + return nil + }); err != nil { + return nil + } + + if d.HasChange("long_term_retention_policy") { + v := d.Get("long_term_retention_policy") + longTermRetentionProps := helper.ExpandLongTermRetentionPolicy(v.([]interface{})) + if longTermRetentionProps != nil { + longTermRetentionPolicy := sql.LongTermRetentionPolicy{} + + // DataWarehouse SKU's do not support LRP currently + if !strings.HasPrefix(skuName, "DW") { + longTermRetentionPolicy.BaseLongTermRetentionPolicyProperties = longTermRetentionProps + } + + longTermRetentionfuture, err := longTermRetentionClient.CreateOrUpdate(ctx, id.ResourceGroup, id.ServerName, id.Name, longTermRetentionPolicy) + if err != nil { + return fmt.Errorf("setting Long Term Retention Policies for %s: %+v", id, err) + } + + if err = longTermRetentionfuture.WaitForCompletionRef(ctx, longTermRetentionClient.Client); err != nil { + return fmt.Errorf("waiting for update of Long Term Retention Policies for %s: %+v", id, err) + } + } + } + + if d.HasChange("short_term_retention_policy") { + v := d.Get("short_term_retention_policy") + backupShortTermPolicyProps := helper.ExpandShortTermRetentionPolicy(v.([]interface{})) + if backupShortTermPolicyProps != nil { + backupShortTermPolicy := sql.BackupShortTermRetentionPolicy{} + + if !strings.HasPrefix(skuName, "DW") { + backupShortTermPolicy.BackupShortTermRetentionPolicyProperties = backupShortTermPolicyProps + } + if strings.HasPrefix(skuName, "HS") { + backupShortTermPolicy.BackupShortTermRetentionPolicyProperties.DiffBackupIntervalInHours = nil + } + + shortTermRetentionFuture, err := shortTermRetentionClient.CreateOrUpdate(ctx, id.ResourceGroup, id.ServerName, id.Name, backupShortTermPolicy) + if err != nil { + return fmt.Errorf("setting Short Term Retention Policies for %s: %+v", id, err) + } + + if err = shortTermRetentionFuture.WaitForCompletionRef(ctx, client.Client); err != nil { + return fmt.Errorf("waiting for update of Short Term Retention Policies for %s: %+v", id, err) + } + } + } + + return resourceMsSqlDatabaseRead(d, meta) +} + func resourceMsSqlDatabaseDelete(d *pluginsdk.ResourceData, meta interface{}) error { client := meta.(*clients.Client).MSSQL.DatabasesClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) From c6d5e5ba85a554097a76dbe793d6836440147b26 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Thu, 7 Sep 2023 10:50:33 -0700 Subject: [PATCH 141/336] Update CHANGELOG.md for #23209 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index caf2ce0795c2..3085c56089ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ ENHANCEMENTS: * `azurerm_cosmosdb_cassandra_datacenter` - updating to API Version `2023-04-15` [GH-23110] * `azurerm_kubernetes_cluster` - Azure CNI can be updated to use `overlay` [GH-22709] * `azurerm_monitor_diagnostic_setting` - deprecating `retention_policy` within `enabled_log` [GH-23029] +* `azurerm_mssql_database` - split create and update methods [GH-23209] * `azurerm_postgresql_database` - `collation` can now be set to `English_United Kingdom.1252` [GH-23171] * `azurerm_postgresql_flexible_database` - `collation` can now be set to `English_United Kingdom.1252` [GH-23171] * `azurerm_postgresql_flexible_server` - support for the `auto_grow_enabled` property [GH-23069] From 0b5ab33dc45c71bbe78c00977c590409e7895141 Mon Sep 17 00:00:00 2001 From: Yun Liu Date: Thu, 7 Sep 2023 18:48:58 +0000 Subject: [PATCH 142/336] `azurerm_key_vault_managed_storage_account` - fix TestAccKeyVaultManagedStorageAccount_* (#23022) --- .../services/keyvault/key_vault_managed_storage_account.go | 2 +- ...anaged_storage_account_sas_token_definition_resource.go | 7 ++++++- internal/services/keyvault/parse/nested_item.go | 2 +- internal/services/keyvault/parse/sas_definition.go | 7 ++++++- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/internal/services/keyvault/key_vault_managed_storage_account.go b/internal/services/keyvault/key_vault_managed_storage_account.go index 730e01e574ca..cb63025dbdea 100644 --- a/internal/services/keyvault/key_vault_managed_storage_account.go +++ b/internal/services/keyvault/key_vault_managed_storage_account.go @@ -169,7 +169,7 @@ func resourceKeyVaultManagedStorageAccountCreateUpdate(d *pluginsdk.ResourceData return fmt.Errorf("cannot read Managed Storage Account ID %q (Key Vault %q)", name, *keyVaultId) } - storageId, err := commonids.ParseStorageAccountID(*read.ID) + storageId, err := keyVaultParse.ParseOptionallyVersionedNestedItemID(*read.ID) if err != nil { return err } diff --git a/internal/services/keyvault/key_vault_managed_storage_account_sas_token_definition_resource.go b/internal/services/keyvault/key_vault_managed_storage_account_sas_token_definition_resource.go index ce7320c52c08..d4e7f5357468 100644 --- a/internal/services/keyvault/key_vault_managed_storage_account_sas_token_definition_resource.go +++ b/internal/services/keyvault/key_vault_managed_storage_account_sas_token_definition_resource.go @@ -180,7 +180,12 @@ func resourceKeyVaultManagedStorageAccountSasTokenDefinitionCreateUpdate(d *plug return fmt.Errorf("cannot read Managed Storage Account Sas Definition %q (Storage Account %q, Key Vault %q)", name, storageAccount.Name, *keyVaultId) } - d.SetId(*read.ID) + sasId, err := parse.SasDefinitionID(*read.ID) + if err != nil { + return err + } + + d.SetId(sasId.ID()) return resourceKeyVaultManagedStorageAccountSasTokenDefinitionRead(d, meta) } diff --git a/internal/services/keyvault/parse/nested_item.go b/internal/services/keyvault/parse/nested_item.go index 0beed86564cb..baa588a2d63b 100644 --- a/internal/services/keyvault/parse/nested_item.go +++ b/internal/services/keyvault/parse/nested_item.go @@ -152,7 +152,7 @@ func parseNestedItemId(id string) (*NestedItemId, error) { nestedItemObjectType := NestedItemObjectType(components[0]) childId := NestedItemId{ - KeyVaultBaseUrl: fmt.Sprintf("%s://%s/", idURL.Scheme, idURL.Host), + KeyVaultBaseUrl: fmt.Sprintf("https://%s/", idURL.Host), NestedItemType: nestedItemObjectType, Name: components[1], Version: version, diff --git a/internal/services/keyvault/parse/sas_definition.go b/internal/services/keyvault/parse/sas_definition.go index f6bb96fa519c..4ce8d10a6ffb 100644 --- a/internal/services/keyvault/parse/sas_definition.go +++ b/internal/services/keyvault/parse/sas_definition.go @@ -15,6 +15,11 @@ type SasDefinitionId struct { Name string } +func (i SasDefinitionId) ID() string { + fmtString := "%s/storage/%s/sas/%s" + return fmt.Sprintf(fmtString, i.KeyVaultBaseUrl, i.StorageAccountName, i.Name) +} + func SasDefinitionID(id string) (*SasDefinitionId, error) { // example: https://example-keyvault.vault.azure.net/storage/exampleStorageAcc01/sas/exampleSasDefinition01 idURL, err := url.ParseRequestURI(id) @@ -38,7 +43,7 @@ func SasDefinitionID(id string) (*SasDefinitionId, error) { } sasDefinitionId := SasDefinitionId{ - KeyVaultBaseUrl: fmt.Sprintf("%s://%s/", idURL.Scheme, idURL.Host), + KeyVaultBaseUrl: fmt.Sprintf("https://%s", idURL.Host), StorageAccountName: components[1], Name: components[3], } From 9d2748c56f4332ddae5c301e396fc9f3aa874086 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Thu, 7 Sep 2023 11:50:11 -0700 Subject: [PATCH 143/336] Update CHANGELOG.md for #23022 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3085c56089ad..123639d8a897 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,7 @@ BUG FIXES: * `azurerm_api_management_api_operation_policy` - added state migration to mutate id's ending in `policies/policy` [GH-23128] * `azurerm_api_management_product_policy` - added state migration to mutate id's ending in `policies/policy` [GH-23128] * `azurerm_automation_account` - fixes logic for `local_authentication_enabled` [GH-23082] +* `azurerm_key_vault_managed_storage_account` - check id can be parsed correctly before setting it in state [GH-23022] * `azurerm_monitor_diagnostic_setting` - fix `enabled_log` feature flagged schema [GH-23093] * `azurerm_pim_active_role_assignment`: polling for the duration of the timeout, rather than a fixed 5 minute value [GH-22932] * `azurerm_policy_set_definition` - only sending `parameters` when a value is configured [GH-23155] From 0617fd674dd00f4b1e4397f09437f4210f60b000 Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 7 Sep 2023 11:51:59 -0700 Subject: [PATCH 144/336] v3.72.0 --- .release/provider-schema.json | 2 +- CHANGELOG.md | 86 +++++++++++++++++------------------ 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/.release/provider-schema.json b/.release/provider-schema.json index 47ea778f1f21..e7c97e5d3b45 100644 --- a/.release/provider-schema.json +++ b/.release/provider-schema.json @@ -1 +1 @@ -{"providerName":"azurerm","schemaVersion":"1","providerSchema":{"schema":{"auxiliary_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":3},"client_certificate":{"type":"TypeString","optional":true,"description":"Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_password":{"type":"TypeString","optional":true,"description":"The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_path":{"type":"TypeString","optional":true,"description":"The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service Principal using a Client Certificate."},"client_id":{"type":"TypeString","optional":true,"description":"The Client ID which should be used."},"client_id_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client ID which should be used."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"client_secret_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"disable_correlation_request_id":{"type":"TypeBool","optional":true,"description":"This will disable the x-ms-correlation-request-id header."},"disable_terraform_partner_id":{"type":"TypeBool","optional":true,"description":"This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified."},"environment":{"type":"TypeString","required":true,"description":"The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public."},"features":{"type":"TypeList","required":true,"elem":{"schema":{"api_management":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"app_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"application_insights":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_generated_rule":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cognitive_account":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_certificates_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_hardware_security_modules_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_managed_hardware_security_module` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_keys_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_secrets_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be permanently deleted (e.g purged), when destroyed"},"recover_soft_deleted_certificates":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be restored, instead of creating new ones"},"recover_soft_deleted_key_vaults":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be restored, instead of creating new ones"},"recover_soft_deleted_keys":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be restored, instead of creating new ones"},"recover_soft_deleted_secrets":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be restored, instead of creating new ones"}}},"maxItems":1},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"permanently_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"managed_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"expand_without_downtime":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_deletion_if_contains_resources":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"template_deployment":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_nested_items_during_deletion":{"type":"TypeBool","required":true}}},"maxItems":1},"virtual_machine":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_os_disk_on_deletion":{"type":"TypeBool","optional":true,"default":false},"graceful_shutdown":{"type":"TypeBool","optional":true,"default":false},"skip_shutdown_and_force_delete":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"virtual_machine_scale_set":{"type":"TypeList","optional":true,"elem":{"schema":{"force_delete":{"type":"TypeBool","optional":true,"default":false},"roll_instances_when_required":{"type":"TypeBool","required":true},"scale_to_zero_before_deletion":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1,"minItems":1},"metadata_host":{"type":"TypeString","required":true,"description":"The Hostname which should be used for the Azure Metadata Service."},"msi_endpoint":{"type":"TypeString","optional":true,"description":"The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected automatically. "},"oidc_request_token":{"type":"TypeString","optional":true,"description":"The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_request_url":{"type":"TypeString","optional":true,"description":"The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_token":{"type":"TypeString","optional":true,"description":"The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"oidc_token_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"partner_id":{"type":"TypeString","optional":true,"description":"A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution."},"skip_provider_registration":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already registered?"},"storage_use_azuread":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?"},"subscription_id":{"type":"TypeString","optional":true,"description":"The Subscription ID which should be used."},"tenant_id":{"type":"TypeString","optional":true,"description":"The Tenant ID which should be used."},"use_cli":{"type":"TypeBool","optional":true,"default":true,"description":"Allow Azure CLI to be used for Authentication."},"use_msi":{"type":"TypeBool","optional":true,"description":"Allow Managed Service Identity to be used for Authentication."},"use_oidc":{"type":"TypeBool","optional":true,"description":"Allow OpenID Connect to be used for authentication"}},"resources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"country_code":{"type":"TypeString","optional":true,"description":"Country code of the B2C tenant. See https://aka.ms/B2CDataResidency for valid country codes.","computed":true,"forceNew":true},"data_residency_location":{"type":"TypeString","required":true,"description":"Location in which the B2C tenant is hosted and data resides. See https://aka.ms/B2CDataResidency for more information.","forceNew":true},"display_name":{"type":"TypeString","optional":true,"description":"The initial display name of the B2C tenant.","computed":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix.","forceNew":true},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"description":"Billing SKU for the B2C tenant. See https://aka.ms/b2cBilling for more information."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","optional":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"filtered_sync_enabled":{"type":"TypeBool","optional":true,"default":false},"initial_replica_set":{"type":"TypeList","required":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notifications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","optional":true,"default":false},"notify_global_admins":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","required":true},"external_access_enabled":{"type":"TypeBool","optional":true,"default":false},"pfx_certificate":{"type":"TypeString","required":true},"pfx_certificate_password":{"type":"TypeString","required":true},"public_certificate":{"type":"TypeString","computed":true}}},"maxItems":1},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","optional":true,"default":false},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"ntlm_v1_enabled":{"type":"TypeBool","optional":true,"default":false},"sync_kerberos_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_ntlm_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_on_prem_passwords":{"type":"TypeBool","optional":true,"default":false},"tls_v1_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_replica_set":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"external_access_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_trust":{"schema":{"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"trusted_domain_dns_ips":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":2},"trusted_domain_fqdn":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_advanced_threat_protection":{"schema":{"enabled":{"type":"TypeBool","required":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_analysis_services_server":{"schema":{"admin_users":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"backup_blob_container_uri":{"type":"TypeString","optional":true},"enable_power_bi_service":{"type":"TypeBool","optional":true},"ipv4_firewall_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"range_end":{"type":"TypeString","required":true},"range_start":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"querypool_connection_mode":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_full_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_connection":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}}},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_password":{"type":"TypeString","optional":true},"encoded_certificate":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","required":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}},"maxItems":10},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"delegation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"subscriptions_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","optional":true},"user_registration_enabled":{"type":"TypeBool","optional":true,"default":false},"validation_key":{"type":"TypeString","optional":true}}},"maxItems":1},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"management_api_url":{"type":"TypeString","computed":true},"min_api_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_sender_email":{"type":"TypeString","optional":true,"computed":true},"policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}}},"maxItems":1},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocols":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_http2":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"publisher_email":{"type":"TypeString","required":true},"publisher_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scm_url":{"type":"TypeString","computed":true},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_backend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls11":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls11":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_gcm_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_gcm_sha384_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"triple_des_ciphers_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"sign_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"sign_up":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"terms_of_service":{"type":"TypeList","required":true,"elem":{"schema":{"consent_required":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","required":true},"text":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"virtual_network_type":{"type":"TypeString","optional":true,"default":"None"},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_type":{"type":"TypeString","optional":true,"computed":true},"contact":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"content_format":{"type":"TypeString","required":true},"content_value":{"type":"TypeString","required":true},"wsdl_selector":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"license":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"oauth2_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization_server_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true}}},"maxItems":1},"openid_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"openid_provider_name":{"type":"TypeString","required":true}}},"maxItems":1},"path":{"type":"TypeString","optional":true,"computed":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision":{"type":"TypeString","required":true,"forceNew":true},"revision_description":{"type":"TypeString","optional":true},"service_url":{"type":"TypeString","optional":true,"computed":true},"soap_pass_through":{"type":"TypeBool","optional":true,"computed":true},"source_api_id":{"type":"TypeString","optional":true},"subscription_key_parameter_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"header":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true}}},"maxItems":1},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"terms_of_service_url":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"computed":true},"version_description":{"type":"TypeString","optional":true},"version_set_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"method":{"type":"TypeString","required":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"query_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"response":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}},"status_code":{"type":"TypeInt","required":true}}}},"template_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"url_template":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_tag":{"schema":{"api_operation_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_release":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"components":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","required":true},"definitions":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_tag":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_api_tag_description":{"schema":{"api_tag_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"external_documentation_description":{"type":"TypeString","optional":true},"external_documentation_url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"version_header_name":{"type":"TypeString","optional":true},"version_query_name":{"type":"TypeString","optional":true},"versioning_scheme":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_authorization_server":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authorization_endpoint":{"type":"TypeString","required":true},"authorization_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_authentication_method":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_registration_endpoint":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"default_scope":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"grant_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_owner_password":{"type":"TypeString","optional":true},"resource_owner_username":{"type":"TypeString","optional":true},"support_state":{"type":"TypeBool","optional":true},"token_body_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"token_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_backend":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"credentials":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","optional":true},"scheme":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"header":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"query":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true},"service_fabric_cluster":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_id":{"type":"TypeString","optional":true,"computed":true},"client_certificate_thumbprint":{"type":"TypeString","optional":true,"computed":true},"management_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"max_partition_resolution_retries":{"type":"TypeInt","required":true},"server_certificate_thumbprints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"server_x509_name":{"type":"TypeSet","optional":true,"elem":{"schema":{"issuer_certificate_thumbprint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"title":{"type":"TypeString","optional":true},"tls":{"type":"TypeList","optional":true,"elem":{"schema":{"validate_certificate_chain":{"type":"TypeBool","optional":true},"validate_certificate_name":{"type":"TypeBool","optional":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_certificate":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"data":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","computed":true},"key_vault_identity_client_id":{"type":"TypeString","optional":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_custom_domain":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_api_management_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_email_template":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true},"template_name":{"type":"TypeString","required":true,"forceNew":true},"title":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location_data":{"type":"TypeList","required":true,"elem":{"schema":{"city":{"type":"TypeString","optional":true},"district":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_api":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_certificate_authority":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"is_trusted":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_id":{"type":"TypeString","required":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"host_name":{"type":"TypeString","required":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request_client_certificate_enabled":{"type":"TypeBool","optional":true},"tls10_enabled":{"type":"TypeBool","optional":true},"tls11_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_global_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"external_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"custom","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aad":{"schema":{"allowed_tenants":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_tenant":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aadb2c":{"schema":{"allowed_tenant":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authority":{"type":"TypeString","required":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"password_reset_policy":{"type":"TypeString","optional":true},"profile_editing_policy":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_policy":{"type":"TypeString","required":true},"signin_tenant":{"type":"TypeString","required":true},"signup_policy":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_facebook":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_google":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_microsoft":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_twitter":{"schema":{"api_key":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_secret_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_logger":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"application_insights":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"instrumentation_key":{"type":"TypeString","required":true}}},"maxItems":1},"buffered":{"type":"TypeBool","optional":true,"default":true},"description":{"type":"TypeString","optional":true},"eventhub":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_named_value":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","optional":true},"value_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"secret_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_notification_recipient_email":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"email":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_notification_recipient_user":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_openid_connect_provider":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"metadata_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_policy":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"approval_required":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"published":{"type":"TypeBool","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"subscriptions_limit":{"type":"TypeInt","optional":true},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_tag":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_management_product_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_redis_cache":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"cache_location":{"type":"TypeString","optional":true,"default":"default"},"connection_string":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_subscription":{"schema":{"allow_tracing":{"type":"TypeBool","optional":true,"default":true},"api_id":{"type":"TypeString","optional":true,"forceNew":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","optional":true,"computed":true},"product_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true,"computed":true},"state":{"type":"TypeString","optional":true,"default":"submitted"},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_tag":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"confirmation":{"type":"TypeString","optional":true,"forceNew":true},"email":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","required":true},"last_name":{"type":"TypeString","required":true},"note":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","optional":true,"computed":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_identifier":{"type":"TypeString","optional":true}}},"maxItems":1},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","optional":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","optional":true,"default":"free"},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":7,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_feature":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"percentage_filter_value":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"targeting_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_rollout_percentage":{"type":"TypeInt","required":true},"groups":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"rollout_percentage":{"type":"TypeInt","required":true}}}},"users":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"timewindow_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","optional":true},"start":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"computed":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","required":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"kv"},"value":{"type":"TypeString","optional":true,"computed":true},"vault_key_reference":{"type":"TypeString","optional":true}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true},"frequency_unit":{"type":"TypeString","required":true},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false},"retention_period_in_days":{"type":"TypeInt","optional":true,"default":30},"start_time":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_mode":{"type":"TypeString","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_active_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_slot_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate":{"schema":{"app_service_plan_id":{"type":"TypeString","optional":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hosting_environment_profile_id":{"type":"TypeString","computed":true},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"pfx_blob":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate_binding":{"schema":{"app_service_name":{"type":"TypeString","computed":true},"certificate_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","computed":true},"hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","optional":true,"default":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","optional":true,"computed":true},"distinguished_name":{"type":"TypeString","optional":true,"computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","optional":true,"default":2048},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_type":{"type":"TypeString","optional":true,"default":"Standard"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","optional":true,"default":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_custom_hostname_binding":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_environment":{"schema":{"allowed_user_ip_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"front_end_scale_factor":{"type":"TypeInt","optional":true,"default":15},"internal_ip_address":{"type":"TypeString","computed":true},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","optional":true,"default":"I1"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_ip_address":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","optional":true,"default":true},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dedicated_host_count":{"type":"TypeInt","optional":true,"forceNew":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_hybrid_connection":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","required":true},"relay_id":{"type":"TypeString","required":true,"forceNew":true},"relay_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey"},"send_key_value":{"type":"TypeString","computed":true},"service_bus_namespace":{"type":"TypeString","computed":true},"service_bus_suffix":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_managed_certificate":{"schema":{"canonical_name":{"type":"TypeString","computed":true},"custom_hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"is_xenon":{"type":"TypeBool","optional":true},"kind":{"type":"TypeString","optional":true,"default":"Windows","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling":{"type":"TypeBool","optional":true},"reserved":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"size":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_app_service_public_certificate":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"blob":{"type":"TypeString","required":true,"forceNew":true},"certificate_location":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot_custom_hostname_binding":{"schema":{"app_service_slot_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_slot_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"slot_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_source_control":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows or Linux Web App.","forceNew":true},"branch":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The URL for the repository.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`.","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the App use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `false` to enable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`.","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_slot":{"schema":{"branch":{"type":"TypeString","optional":true,"description":"The URL for the repository","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Linux or Windows Web App Slot.","forceNew":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Slot use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `true` to disable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_gateway":{"schema":{"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"autoscale_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"max_capacity":{"type":"TypeInt","optional":true},"min_capacity":{"type":"TypeInt","required":true}}},"maxItems":1},"backend_address_pool":{"type":"TypeSet","required":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"backend_http_settings":{"type":"TypeSet","required":true,"elem":{"schema":{"affinity_cookie_name":{"type":"TypeString","optional":true},"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"connection_draining":{"type":"TypeList","optional":true,"elem":{"schema":{"drain_timeout_sec":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"cookie_based_affinity":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"pick_host_name_from_backend_address":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","required":true},"probe_id":{"type":"TypeString","computed":true},"probe_name":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"request_timeout":{"type":"TypeInt","optional":true,"default":30},"trusted_root_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"enable_http2":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"force_firewall_policy_association":{"type":"TypeBool","optional":true},"frontend_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"private_link_configuration_id":{"type":"TypeString","computed":true},"private_link_configuration_name":{"type":"TypeString","optional":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"minItems":1},"frontend_port":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true}}}},"gateway_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":2},"global":{"type":"TypeList","optional":true,"elem":{"schema":{"request_buffering_enabled":{"type":"TypeBool","required":true},"response_buffering_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"http_listener":{"type":"TypeSet","required":true,"elem":{"schema":{"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"firewall_policy_id":{"type":"TypeString","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_id":{"type":"TypeString","computed":true},"frontend_port_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"require_sni":{"type":"TypeBool","optional":true},"ssl_certificate_id":{"type":"TypeString","computed":true},"ssl_certificate_name":{"type":"TypeString","optional":true},"ssl_profile_id":{"type":"TypeString","computed":true},"ssl_profile_name":{"type":"TypeString","optional":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_link_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true}}}},"probe":{"type":"TypeSet","optional":true,"elem":{"schema":{"host":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"interval":{"type":"TypeInt","required":true},"match":{"type":"TypeList","optional":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"status_code":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"minimum_servers":{"type":"TypeInt","optional":true,"default":0},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"pick_host_name_from_backend_http_settings":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","optional":true},"protocol":{"type":"TypeString","required":true},"timeout":{"type":"TypeInt","required":true},"unhealthy_threshold":{"type":"TypeInt","required":true}}}},"redirect_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"include_path":{"type":"TypeBool","optional":true,"default":false},"include_query_string":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true},"target_listener_id":{"type":"TypeString","computed":true},"target_listener_name":{"type":"TypeString","optional":true},"target_url":{"type":"TypeString","optional":true}}}},"request_routing_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"http_listener_id":{"type":"TypeString","computed":true},"http_listener_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true},"rule_type":{"type":"TypeString","required":true},"url_path_map_id":{"type":"TypeString","computed":true},"url_path_map_name":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rewrite_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"rewrite_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"ignore_case":{"type":"TypeBool","optional":true,"default":false},"negate":{"type":"TypeBool","optional":true,"default":false},"pattern":{"type":"TypeString","required":true},"variable":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"request_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"response_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"rule_sequence":{"type":"TypeInt","required":true},"url":{"type":"TypeList","optional":true,"elem":{"schema":{"components":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","optional":true},"query_string":{"type":"TypeString","optional":true},"reroute":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"ssl_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"ssl_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"ssl_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"ssl_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"trusted_client_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verify_client_cert_issuer_dn":{"type":"TypeBool","optional":true,"default":false}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_client_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"trusted_root_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"url_path_map":{"type":"TypeList","optional":true,"elem":{"schema":{"default_backend_address_pool_id":{"type":"TypeString","computed":true},"default_backend_address_pool_name":{"type":"TypeString","optional":true},"default_backend_http_settings_id":{"type":"TypeString","computed":true},"default_backend_http_settings_name":{"type":"TypeString","optional":true},"default_redirect_configuration_id":{"type":"TypeString","computed":true},"default_redirect_configuration_name":{"type":"TypeString","optional":true},"default_rewrite_rule_set_id":{"type":"TypeString","computed":true},"default_rewrite_rule_set_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"paths":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true}}}}}}},"waf_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group_name":{"type":"TypeString","required":true},"rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}}}}},"enabled":{"type":"TypeBool","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"selector_match_operator":{"type":"TypeString","optional":true}}}},"file_upload_limit_mb":{"type":"TypeInt","optional":true,"default":100},"firewall_mode":{"type":"TypeString","required":true},"max_request_body_size_kb":{"type":"TypeInt","optional":true,"default":128},"request_body_check":{"type":"TypeBool","optional":true,"default":true},"rule_set_type":{"type":"TypeString","optional":true,"default":"OWASP"},"rule_set_version":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","required":true,"forceNew":true},"connection_string":{"type":"TypeString","computed":true},"daily_data_cap_in_gb":{"type":"TypeFloat","optional":true,"computed":true},"daily_data_cap_notifications_disabled":{"type":"TypeBool","optional":true,"computed":true},"disable_ip_masking":{"type":"TypeBool","optional":true,"default":false},"force_customer_storage_for_profiler":{"type":"TypeBool","optional":true,"default":false},"instrumentation_key":{"type":"TypeString","computed":true},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":90},"sampling_percentage":{"type":"TypeFloat","optional":true,"default":100},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_application_insights_analytics_item":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","required":true},"function_alias":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"time_created":{"type":"TypeString","computed":true},"time_modified":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_api_key":{"schema":{"api_key":{"type":"TypeString","computed":true},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"write_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_smart_detection_rule":{"schema":{"additional_email_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"send_emails_to_subscription_owners":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_standard_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","required":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"follow_redirects_enabled":{"type":"TypeBool","optional":true,"default":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"http_verb":{"type":"TypeString","optional":true,"default":"GET"},"parse_dependent_requests_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30},"validation_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"content":{"type":"TypeList","optional":true,"elem":{"schema":{"content_match":{"type":"TypeString","required":true},"ignore_case":{"type":"TypeBool","optional":true,"default":false},"pass_if_text_found":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"expected_status_code":{"type":"TypeInt","optional":true,"default":200},"ssl_cert_remaining_lifetime":{"type":"TypeInt","optional":true},"ssl_check_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"configuration":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook":{"schema":{"category":{"type":"TypeString","optional":true,"default":"workbook"},"data_json":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_id":{"type":"TypeString","optional":true,"default":"azure monitor"},"storage_container_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook_template":{"schema":{"author":{"type":"TypeString","optional":true},"galleries":{"type":"TypeList","required":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","optional":true,"default":0},"resource_type":{"type":"TypeString","optional":true,"default":"Azure Monitor"},"type":{"type":"TypeString","optional":true,"default":"workbook"}}},"minItems":1},"localized":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_data":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster":{"schema":{"agent_public_key_certificate":{"type":"TypeString","required":true,"forceNew":true},"agent_version":{"type":"TypeString","computed":true},"distribution":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"infrastructure":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"offering":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"total_core_count":{"type":"TypeInt","computed":true},"total_node_count":{"type":"TypeInt","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster_extension":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_machine_extension":{"schema":{"arc_machine_id":{"type":"TypeString","required":true,"forceNew":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true,"default":true},"force_update_tag":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_private_link_scope":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"open_enclave_policy_base64":{"type":"TypeString","optional":true},"policy":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"environment_type":{"type":"TypeString","optional":true}}}},"policy_signing_certificate_data":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sev_snp_policy_base64":{"type":"TypeString","optional":true},"sgx_enclave_policy_base64":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tpm_policy_base64":{"type":"TypeString","optional":true},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automanage_configuration":{"schema":{"antimalware":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusions":{"type":"TypeList","optional":true,"elem":{"schema":{"extensions":{"type":"TypeString","optional":true},"paths":{"type":"TypeString","optional":true},"processes":{"type":"TypeString","optional":true}}},"maxItems":1},"real_time_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_day":{"type":"TypeInt","optional":true,"default":8},"scheduled_scan_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_time_in_minutes":{"type":"TypeInt","optional":true,"default":0},"scheduled_scan_type":{"type":"TypeString","optional":true,"default":"Quick"}}},"maxItems":1},"automation_account_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_security_baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true,"default":"ApplyAndAutoCorrect"}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"instant_rp_retention_range_in_days":{"type":"TypeInt","optional":true,"default":5},"policy_name":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"daily_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Days"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_policy_type":{"type":"TypeString","optional":true,"default":"LongTermRetentionPolicy"},"weekly_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Weeks"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"schedule_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule_policy_type":{"type":"TypeString","optional":true,"default":"SimpleSchedulePolicy"},"schedule_run_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"schedule_run_frequency":{"type":"TypeString","optional":true,"default":"Daily"},"schedule_run_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"boot_diagnostics_enabled":{"type":"TypeBool","optional":true,"default":false},"defender_for_cloud_enabled":{"type":"TypeBool","optional":true,"default":false},"guest_configuration_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status_change_alert_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_account":{"schema":{"dsc_primary_access_key":{"type":"TypeString","computed":true},"dsc_secondary_access_key":{"type":"TypeString","computed":true},"dsc_server_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"key_source":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"base64":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"exportable":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"values":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"automation_certificate_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_classic_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_asset_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"subscription_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_service_principal":{"schema":{"application_id":{"type":"TypeString","required":true},"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_thumbprint":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_type":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"field":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"is_encrypted":{"type":"TypeBool","optional":true},"is_optional":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"is_global":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_credential":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_configuration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_embedded":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_verbose":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_nodeconfiguration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"configuration_name":{"type":"TypeString","computed":true},"content_embedded":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_hybrid_runbook_worker":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"ip":{"type":"TypeString","computed":true},"last_seen_date_time":{"type":"TypeString","computed":true},"registration_date_time":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"worker_group_name":{"type":"TypeString","required":true,"forceNew":true},"worker_id":{"type":"TypeString","required":true,"forceNew":true},"worker_name":{"type":"TypeString","computed":true},"worker_type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_hybrid_runbook_worker_group":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"credential_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_job_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"job_schedule_id":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on":{"type":"TypeString","optional":true,"forceNew":true},"runbook_name":{"type":"TypeString","required":true,"forceNew":true},"schedule_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_module":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"module_link":{"type":"TypeList","required":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_runbook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","optional":true,"computed":true},"description":{"type":"TypeString","optional":true},"draft":{"type":"TypeList","optional":true,"elem":{"schema":{"content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"creation_time":{"type":"TypeString","computed":true},"edit_mode_enabled":{"type":"TypeBool","optional":true},"last_modified_time":{"type":"TypeString","computed":true},"output_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true},"mandatory":{"type":"TypeBool","optional":true,"default":false},"position":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"job_schedule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"job_schedule_id":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_on":{"type":"TypeString","optional":true},"schedule_name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_activity_trace_level":{"type":"TypeInt","optional":true},"log_progress":{"type":"TypeBool","required":true},"log_verbose":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"runbook_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true,"computed":true},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"timezone":{"type":"TypeString","optional":true,"default":"Etc/UTC"},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_software_update_configuration":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"duration":{"type":"TypeString","optional":true,"default":"PT2H"},"error_code":{"type":"TypeString","computed":true},"error_meesage":{"type":"TypeString","computed":true},"error_message":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"non_azure_computer_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operating_system":{"type":"TypeString","optional":true,"computed":true},"post_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"pre_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"advanced_month_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"advanced_week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"creation_time":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"expiry_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"is_enabled":{"type":"TypeBool","optional":true,"default":true},"last_modified_time":{"type":"TypeString","computed":true},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}},"maxItems":1},"next_run":{"type":"TypeString","optional":true,"computed":true},"next_run_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"start_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true,"default":"Etc/UTC"}}},"maxItems":1},"target":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"locations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tag_filter":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeList","optional":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}}},"non_azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"function_alias":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_machine_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_automation_source_control":{"schema":{"automatic_sync":{"type":"TypeBool","optional":true,"default":false},"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"branch":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"folder_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_runbook_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_url":{"type":"TypeString","required":true},"security":{"type":"TypeList","required":true,"elem":{"schema":{"refresh_token":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"source_control_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_watcher":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"etag":{"type":"TypeString","optional":true},"execution_frequency_in_seconds":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script_name":{"type":"TypeString","required":true,"forceNew":true},"script_parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"script_run_on":{"type":"TypeString","required":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_webhook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiry_time":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on_worker_group":{"type":"TypeString","optional":true},"runbook_name":{"type":"TypeString","required":true},"uri":{"type":"TypeString","configMode":"Auto","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"default":3,"forceNew":true},"platform_update_domain_count":{"type":"TypeInt","optional":true,"default":5,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_container_storage_account":{"schema":{"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_file_share":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hourly":{"type":"TypeList","optional":true,"elem":{"schema":{"interval":{"type":"TypeInt","required":true},"start_time":{"type":"TypeString","required":true},"window_duration":{"type":"TypeInt","required":true}}},"maxItems":1},"time":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","required":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hour_duration":{"type":"TypeInt","optional":true},"hour_interval":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","required":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instant_restore_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prefix":{"type":"TypeString","required":true},"suffix":{"type":"TypeString","optional":true}}},"maxItems":1},"instant_restore_retention_days":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_type":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm_workload":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"protection_policy":{"type":"TypeSet","required":true,"elem":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","optional":true},"frequency_in_minutes":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","optional":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"policy_type":{"type":"TypeString","required":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"simple_retention":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1}}}},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeList","required":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1},"workload_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_protected_file_share":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_file_share_name":{"type":"TypeString","required":true,"forceNew":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":80,"read":5,"delete":80,"update":80}},"azurerm_backup_protected_vm":{"schema":{"backup_policy_id":{"type":"TypeString","optional":true},"exclude_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"protection_state":{"type":"TypeString","optional":true,"computed":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":80,"update":120}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","optional":true,"default":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ip_connect_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","optional":true,"default":2},"shareable_link_enabled":{"type":"TypeBool","optional":true,"default":false},"sku":{"type":"TypeString","optional":true,"default":"Basic"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"allowed_authentication_modes":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"account_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1},"node_management_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1}}},"maxItems":1},"pool_allocation_mode":{"type":"TypeString","optional":true,"default":"BatchService"},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_authentication_mode":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_account_node_identity":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"allow_updates":{"type":"TypeBool","optional":true,"default":true},"default_version":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate":{"type":"TypeString","required":true},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","optional":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","required":true,"forceNew":true},"thumbprint_algorithm":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_job":{"schema":{"batch_pool_id":{"type":"TypeString","required":true,"forceNew":true},"common_environment_properties":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"task_retry_maximum":{"type":"TypeInt","optional":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","optional":true,"default":"PT15M"},"formula":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"store_location":{"type":"TypeString","required":true},"store_name":{"type":"TypeString","optional":true},"visibility":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"type":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"data_disks":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"default":"ReadOnly"},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","required":true}}}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"extensions":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","optional":true}}}},"fixed_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"node_deallocation_method":{"type":"TypeString","optional":true},"resize_timeout":{"type":"TypeString","optional":true,"default":"PT15M"},"target_dedicated_nodes":{"type":"TypeInt","optional":true,"default":1},"target_low_priority_nodes":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inter_node_communication":{"type":"TypeString","optional":true,"default":"Enabled"},"license_type":{"type":"TypeString","optional":true},"max_tasks_per_node":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"account_name":{"type":"TypeString","required":true},"blobfuse_options":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"identity_id":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"sas_key":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"azure_file_url":{"type":"TypeString","required":true},"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true}}}},"cifs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"nfs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dynamic_vnet_assignment_scope":{"type":"TypeString","optional":true,"default":"none","forceNew":true},"endpoint_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port_range":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"access":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","required":true,"forceNew":true},"source_port_ranges":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString","default":"*"}}}}},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"public_address_provisioning_type":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"node_agent_sku_id":{"type":"TypeString","required":true,"forceNew":true},"node_placement":{"type":"TypeList","optional":true,"elem":{"schema":{"policy":{"type":"TypeString","optional":true,"default":"Regional"}}}},"os_disk_placement":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_task":{"type":"TypeList","optional":true,"elem":{"schema":{"command_line":{"type":"TypeString","required":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"run_options":{"type":"TypeString","optional":true},"working_directory":{"type":"TypeString","optional":true}}}},"resource_file":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","optional":true},"blob_prefix":{"type":"TypeString","optional":true},"file_mode":{"type":"TypeString","optional":true},"file_path":{"type":"TypeString","optional":true},"http_url":{"type":"TypeString","optional":true},"storage_container_url":{"type":"TypeString","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"task_retry_maximum":{"type":"TypeInt","optional":true},"user_identity":{"type":"TypeList","required":true,"elem":{"schema":{"auto_user":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","optional":true,"default":"NonAdmin"},"scope":{"type":"TypeString","optional":true,"default":"Task"}}},"maxItems":1},"user_name":{"type":"TypeString","optional":true}}},"maxItems":1},"wait_for_success":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"stop_pending_resize_operation":{"type":"TypeBool","optional":true,"default":false},"storage_image_reference":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"target_node_communication_mode":{"type":"TypeString","optional":true},"task_scheduling_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","optional":true,"computed":true}}}},"user_accounts":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","required":true},"linux_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gid":{"type":"TypeInt","optional":true},"ssh_private_key":{"type":"TypeString","optional":true},"uid":{"type":"TypeInt","optional":true}}}},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"windows_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}}}}}},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_billing_account_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"billing_account_id":{"type":"TypeString","required":true,"forceNew":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_blueprint_assignment":{"schema":{"blueprint_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_exclude_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":200},"lock_exclude_principals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"lock_mode":{"type":"TypeString","optional":true,"default":"None"},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeString","optional":true},"target_subscription_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","computed":true},"version_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_bot_channel_alexa":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skill_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_direct_line_speech":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"cognitive_service_access_key":{"type":"TypeString","required":true},"cognitive_service_location":{"type":"TypeString","required":true},"custom_speech_model_id":{"type":"TypeString","optional":true},"custom_voice_deployment_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_directline":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site":{"type":"TypeSet","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"enhanced_authentication_enabled":{"type":"TypeBool","optional":true,"default":false},"id":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key2":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"trusted_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"v1_allowed":{"type":"TypeBool","optional":true,"default":true},"v3_allowed":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_email":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"email_address":{"type":"TypeString","required":true},"email_password":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_facebook":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"facebook_application_id":{"type":"TypeString","required":true},"facebook_application_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"page":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_line":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"line_channel":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"secret":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_ms_teams":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"calling_web_hook":{"type":"TypeString","optional":true,"computed":true},"enable_calling":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_slack":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"landing_page_url":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signing_secret":{"type":"TypeString","optional":true},"verification_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_sms":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sms_channel_account_security_id":{"type":"TypeString","required":true},"sms_channel_auth_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_web_chat":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channels_registration":{"schema":{"cmk_key_vault_url":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"icon_url":{"type":"TypeString","optional":true,"computed":true},"isolated_network_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_connection":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeString","optional":true},"service_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_service_azure_bot":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true},"developer_app_insights_key":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_msi_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_type":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_web_app":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint":{"schema":{"content_types_to_compress":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"post_arg_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}}},"fqdn":{"type":"TypeString","computed":true},"geo_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"country_codes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"relative_path":{"type":"TypeString","required":true}}}},"global_delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_compression_enabled":{"type":"TypeBool","optional":true},"is_http_allowed":{"type":"TypeBool","optional":true,"default":true},"is_https_allowed":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimization_type":{"type":"TypeString","optional":true},"origin":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true,"forceNew":true},"http_port":{"type":"TypeInt","optional":true,"default":80,"forceNew":true},"https_port":{"type":"TypeInt","optional":true,"default":443,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"origin_host_header":{"type":"TypeString","optional":true},"origin_path":{"type":"TypeString","optional":true,"computed":true},"probe_path":{"type":"TypeString","optional":true,"computed":true},"profile_name":{"type":"TypeString","required":true,"forceNew":true},"querystring_caching_behaviour":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint_custom_domain":{"schema":{"cdn_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_type":{"type":"TypeString","required":true},"protocol_type":{"type":"TypeString","required":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"user_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","optional":true,"computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"computed":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"dns_zone_id":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tls":{"type":"TypeList","required":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","optional":true,"computed":true},"certificate_type":{"type":"TypeString","optional":true,"default":"ManagedCertificate"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain_association":{"schema":{"cdn_frontdoor_custom_domain_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_route_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin":{"schema":{"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name_check_enabled":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","optional":true,"computed":true},"health_probes_enabled":{"type":"TypeBool","optional":true,"computed":true},"host_name":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","optional":true,"default":80},"https_port":{"type":"TypeInt","optional":true,"default":443},"name":{"type":"TypeString","required":true,"forceNew":true},"origin_host_header":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","optional":true,"default":1},"private_link":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"private_link_target_id":{"type":"TypeString","required":true},"request_message":{"type":"TypeString","optional":true,"default":"Access request for CDN FrontDoor Private Link Origin"},"target_type":{"type":"TypeString","optional":true}}},"maxItems":1},"weight":{"type":"TypeInt","optional":true,"default":500}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"health_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"protocol":{"type":"TypeString","required":true},"request_type":{"type":"TypeString","optional":true,"default":"HEAD"}}},"maxItems":1},"load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","optional":true,"default":50},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","optional":true,"default":10},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","optional":true,"default":120},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route":{"schema":{"cache":{"type":"TypeList","optional":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"content_types_to_compress":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"query_string_caching_behavior":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"query_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"cdn_frontdoor_custom_domain_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true},"cdn_frontdoor_origin_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_origin_path":{"type":"TypeString","optional":true},"cdn_frontdoor_rule_set_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"https_redirect_enabled":{"type":"TypeBool","optional":true,"default":true},"link_to_default_domain":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"supported_protocols":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route_disable_link_to_default_domain":{"schema":{"cdn_frontdoor_custom_domain_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_route_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"route_configuration_override_action":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_behavior":{"type":"TypeString","optional":true},"cache_duration":{"type":"TypeString","optional":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","optional":true},"compression_enabled":{"type":"TypeBool","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true},"query_string_caching_behavior":{"type":"TypeString","optional":true},"query_string_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":100}}},"maxItems":1},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_fragment":{"type":"TypeString","optional":true,"default":""},"destination_hostname":{"type":"TypeString","required":true},"destination_path":{"type":"TypeString","optional":true,"default":""},"query_string":{"type":"TypeString","optional":true,"default":""},"redirect_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":false},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"behavior_on_match":{"type":"TypeString","optional":true,"default":"Continue"},"cdn_frontdoor_rule_set_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_rule_set_name":{"type":"TypeString","computed":true},"conditions":{"type":"TypeList","optional":true,"elem":{"schema":{"client_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"cookie_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"host_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":4},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"is_device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"post_args_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"post_args_name":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString","default":"HTTP"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"server_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"socket_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"ssl_protocol_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":3},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_filename_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_profile_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_frontdoor_security_policy":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"security_policies":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"firewall":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"association":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"domain":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"active":{"type":"TypeBool","computed":true},"cdn_frontdoor_domain_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":500},"patterns_to_match":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}}},"maxItems":1},"cdn_frontdoor_firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account":{"schema":{"custom_question_answering_search_service_id":{"type":"TypeString","optional":true},"custom_question_answering_search_service_key":{"type":"TypeString","optional":true},"custom_subdomain_name":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"dynamic_throttling_enabled":{"type":"TypeBool","optional":true},"endpoint":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metrics_advisor_aad_client_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_aad_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_super_user_name":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_website_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"qna_runtime_endpoint":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"storage":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account_customer_managed_key":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_deployment":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"model":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"format":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"rai_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"scale":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"family":{"type":"TypeString","optional":true,"forceNew":true},"size":{"type":"TypeString","optional":true,"forceNew":true},"tier":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","optional":true,"default":"United States","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","required":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"minItems":1},"certificate_based_security_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"pem_public_key":{"type":"TypeString","required":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_management_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to host this Container App.","forceNew":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The Dapr Application Identifier."},"app_port":{"type":"TypeInt","optional":true,"description":"The port which the application is listening on. This is the same as the `ingress` port."},"app_protocol":{"type":"TypeString","optional":true,"default":"http","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`."}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","optional":true,"default":false,"description":"Should this ingress allow insecure connections?"},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","optional":true,"default":"Disabled","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`"},"certificate_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate."}}},"maxItems":1},"external_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Is this an external Ingress."},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","required":true,"description":"The target port on the container for the Ingress traffic."},"traffic_weight":{"type":"TypeList","required":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"description":"The label to apply to the revision as a name prefix for routing traffic."},"latest_revision":{"type":"TypeBool","optional":true,"default":false,"description":"This traffic Weight relates to the latest stable Container Revision."},"percentage":{"type":"TypeInt","required":true,"description":"The percentage of traffic to send to this revision."},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted."}}}},"transport":{"type":"TypeString","optional":true,"default":"auto","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`"}}},"maxItems":1},"latest_revision_fqdn":{"type":"TypeString","description":"The FQDN of the Latest Revision of the Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"The name for this Container App.","forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true,"description":"ID of the System or User Managed Identity used to pull images from the Container Registry"},"password_secret_name":{"type":"TypeString","optional":true,"description":"The name of the Secret Reference containing the password value for this user on the Container Registry."},"server":{"type":"TypeString","required":true,"description":"The hostname for the Container Registry."},"username":{"type":"TypeString","optional":true,"description":"The username to use for this Container Registry."}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision_mode":{"type":"TypeString","required":true},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeList","required":true,"elem":{"schema":{"args":{"type":"TypeList","optional":true,"description":"A list of args to pass to the container.","elem":{"type":"TypeString"}},"command":{"type":"TypeList","optional":true,"description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`"},"env":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the environment variable for the container."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of the secret that contains the value for this environment variable."},"value":{"type":"TypeString","optional":true,"description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used"}}},"minItems":1},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","required":true,"description":"The image to use to create the container."},"liveness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"initial_delay":{"type":"TypeInt","optional":true,"default":1,"description":"The time in seconds to wait after the container has started before the probe is started."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"memory":{"type":"TypeString","required":true,"description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`"},"name":{"type":"TypeString","required":true,"description":"The name of the container."},"readiness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"success_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`."},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"startup_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"volume_mounts":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Volume to be mounted in the container."},"path":{"type":"TypeString","required":true,"description":"The path in the container at which to mount this volume."}}}}}},"minItems":1},"max_replicas":{"type":"TypeInt","optional":true,"default":10,"description":"The maximum number of replicas for this container."},"min_replicas":{"type":"TypeInt","optional":true,"description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment":{"schema":{"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","optional":true,"description":"The existing Subnet to use for the Container Apps Control Plane. **NOTE:** The Subnet must have a `/21` or larger address space.","forceNew":true},"internal_load_balancer_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Container Environment operate in Internal Load Balancing Mode? Defaults to `false`. **Note:** can only be set to `true` if `infrastructure_subnet_id` is specified.","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true,"description":"The ID for the Log Analytics Workspace to link this Container Apps Managed Environment to.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment.","forceNew":true},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_certificate":{"schema":{"certificate_blob_base64":{"type":"TypeString","required":true,"description":"The Certificate Private Key as a base64 encoded PFX or PEM.","forceNew":true},"certificate_password":{"type":"TypeString","required":true,"description":"The password for the Certificate.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Environment Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_dapr_component":{"schema":{"component_type":{"type":"TypeString","required":true,"description":"The Dapr Component Type. For example `state.azure.blobstorage`.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Dapr component on.","forceNew":true},"ignore_errors":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Dapr sidecar to continue initialisation if the component fails to load. Defaults to `false`"},"init_timeout":{"type":"TypeString","optional":true,"default":"5s","description":"The component initialisation timeout in ISO8601 format. e.g. `5s`, `2h`, `1m`. Defaults to `5s`."},"metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Metadata configuration item."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of a secret specified in the `secrets` block that contains the value for this metadata configuration item."},"value":{"type":"TypeString","optional":true,"description":"The value for this metadata configuration item."}}},"minItems":1},"name":{"type":"TypeString","required":true,"description":"The name for this Dapr Component.","forceNew":true},"scopes":{"type":"TypeList","optional":true,"description":"A list of scopes to which this component applies. e.g. a Container App's `dapr.app_id` value.","elem":{"type":"TypeString"},"minItems":1},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"version":{"type":"TypeString","required":true,"description":"The version of the component."}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_storage":{"schema":{"access_key":{"type":"TypeString","required":true,"description":"The Storage Account Access Key."},"access_mode":{"type":"TypeString","required":true,"description":"The access mode to connect this storage to the Container App. Possible values include `ReadOnly` and `ReadWrite`.","forceNew":true},"account_name":{"type":"TypeString","required":true,"description":"The Azure Storage Account in which the Share to be used is located.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to which this storage belongs.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name for this Storage.","forceNew":true},"share_name":{"type":"TypeString","required":true,"description":"The name of the Azure Storage Share to use.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_connected_registry":{"schema":{"audit_log_enabled":{"type":"TypeBool","optional":true,"default":false},"client_token_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"log_level":{"type":"TypeString","optional":true,"default":"None"},"mode":{"type":"TypeString","optional":true,"default":"ReadWrite","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"digest":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tag":{"type":"TypeString","optional":true}}}},"parent_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"sync_message_ttl":{"type":"TypeString","optional":true,"default":"P1D"},"sync_schedule":{"type":"TypeString","optional":true,"default":"* * * * *"},"sync_token_id":{"type":"TypeString","required":true,"forceNew":true},"sync_window":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_group":{"schema":{"container":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"forceNew":true},"cpu_limit":{"type":"TypeFloat","optional":true},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"gpu":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"gpu_limit":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"sku":{"type":"TypeString","optional":true}}},"maxItems":1},"image":{"type":"TypeString","required":true,"forceNew":true},"liveness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"memory":{"type":"TypeFloat","required":true,"forceNew":true},"memory_limit":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ports":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"readiness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"diagnostics":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"log_analytics":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"log_type":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_key":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"dns_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"nameservers":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"options":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"search_domains":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"dns_name_label":{"type":"TypeString","optional":true,"forceNew":true},"dns_name_label_reuse_policy":{"type":"TypeString","optional":true,"default":"Unsecure"},"exposed_port":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_registry_credential":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"username":{"type":"TypeString","optional":true,"forceNew":true}}}},"init_container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"ip_address":{"type":"TypeString","computed":true},"ip_address_type":{"type":"TypeString","optional":true,"default":"Public","forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile_id":{"type":"TypeString","optional":true,"computed":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restart_policy":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"subnet_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"anonymous_pull_enabled":{"type":"TypeBool","optional":true},"data_endpoint_enabled":{"type":"TypeBool","optional":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"identity_client_id":{"type":"TypeString","required":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"georeplications":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true},"regional_endpoint_enabled":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_bypass_option":{"type":"TypeString","optional":true,"default":"AzureServices"},"network_rule_set":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_range":{"type":"TypeString","required":true}}}},"virtual_network":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"quarantine_policy_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trust_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_agent_pool":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"default":"S1","forceNew":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task":{"schema":{"agent_pool_name":{"type":"TypeString","optional":true},"agent_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"cpu":{"type":"TypeInt","required":true}}},"maxItems":1},"base_image_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"update_trigger_endpoint":{"type":"TypeString","optional":true},"update_trigger_payload_type":{"type":"TypeString","optional":true}}},"maxItems":1},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"docker_step":{"type":"TypeList","optional":true,"elem":{"schema":{"arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"cache_enabled":{"type":"TypeBool","optional":true,"default":true},"context_access_token":{"type":"TypeString","required":true},"context_path":{"type":"TypeString","required":true},"dockerfile_path":{"type":"TypeString","required":true},"image_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"push_enabled":{"type":"TypeBool","optional":true,"default":true},"secret_arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target":{"type":"TypeString","optional":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"encoded_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_content":{"type":"TypeString","required":true},"value_content":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"file_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_file_path":{"type":"TypeString","required":true},"value_file_path":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"is_system_task":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"log_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"architecture":{"type":"TypeString","optional":true},"os":{"type":"TypeString","required":true},"variant":{"type":"TypeString","optional":true}}},"maxItems":1},"registry_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"custom":{"type":"TypeSet","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"username":{"type":"TypeString","optional":true}}}},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"source_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"expire_in_seconds":{"type":"TypeInt","optional":true},"refresh_token":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"repository_url":{"type":"TypeString","required":true},"source_type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":3600},"timer_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task_schedule_run_now":{"schema":{"container_registry_task_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_map_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_token_password":{"schema":{"container_registry_token_id":{"type":"TypeString","required":true,"forceNew":true},"password1":{"type":"TypeList","required":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1},"password2":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_webhook":{"schema":{"actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"custom_headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"registry_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":""},"service_uri":{"type":"TypeString","required":true},"status":{"type":"TypeString","optional":true,"default":"enabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_account":{"schema":{"access_key_metadata_writes_enabled":{"type":"TypeBool","optional":true,"default":true},"analytical_storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"schema_type":{"type":"TypeString","required":true}}},"maxItems":1},"analytical_storage_enabled":{"type":"TypeBool","optional":true,"default":false},"backup":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"interval_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"retention_in_hours":{"type":"TypeInt","optional":true,"computed":true},"storage_redundancy":{"type":"TypeString","optional":true,"computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"capabilities":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}},"capacity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"total_throughput_limit":{"type":"TypeInt","required":true}}},"maxItems":1},"connection_strings":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"consistency_policy":{"type":"TypeList","required":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","required":true},"max_interval_in_seconds":{"type":"TypeInt","optional":true,"computed":true},"max_staleness_prefix":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"create_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"default_identity_type":{"type":"TypeString","optional":true,"default":"FirstPartyIdentity"},"enable_automatic_failover":{"type":"TypeBool","optional":true,"default":false},"enable_free_tier":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"enable_multiple_write_locations":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeSet","required":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","required":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_range_filter":{"type":"TypeString","optional":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"kind":{"type":"TypeString","optional":true,"default":"GlobalDocumentDB","forceNew":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"mongo_server_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acl_bypass_for_azure_services":{"type":"TypeBool","optional":true,"default":false},"network_acl_bypass_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"offer_type":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"primary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"primary_sql_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"elem":{"schema":{"database":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"collection_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"restore_timestamp_in_utc":{"type":"TypeString","required":true,"forceNew":true},"source_cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"secondary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"secondary_sql_connection_string":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_cassandra_cluster":{"schema":{"authentication_method":{"type":"TypeString","optional":true,"default":"Cassandra"},"client_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_admin_password":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"external_gossip_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"external_seed_node_ip_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"hours_between_backups":{"type":"TypeInt","optional":true,"default":24},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repair_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"3.11","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_datacenter":{"schema":{"availability_zones_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_storage_customer_key_uri":{"type":"TypeString","optional":true},"base64_encoded_yaml_fragment":{"type":"TypeString","optional":true},"cassandra_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"disk_count":{"type":"TypeInt","optional":true},"disk_sku":{"type":"TypeString","optional":true,"default":"P30"},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_customer_key_uri":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"default":3},"sku_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_cosmosdb_cassandra_keyspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_table":{"schema":{"analytical_storage_ttl":{"type":"TypeInt","optional":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cassandra_keyspace_id":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schema":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_key":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"order_by":{"type":"TypeString","required":true}}}},"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"partition_key":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_graph":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"index_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"automatic":{"type":"TypeBool","optional":true,"default":true},"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"included_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"indexing_mode":{"type":"TypeString","required":true},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_collection":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl_seconds":{"type":"TypeInt","optional":true},"index":{"type":"TypeSet","optional":true,"elem":{"schema":{"keys":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","optional":true,"default":false}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shard_key":{"type":"TypeString","optional":true,"forceNew":true},"system_indexes":{"type":"TypeList","computed":true,"elem":{"schema":{"keys":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","computed":true}}}},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_role_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"privilege":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource":{"type":"TypeList","required":true,"elem":{"schema":{"collection_name":{"type":"TypeString","optional":true},"db_name":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"role_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_user_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_notebook_workspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_endpoint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_postgresql_cluster":{"schema":{"administrator_login_password":{"type":"TypeString","required":true},"citus_version":{"type":"TypeString","optional":true,"computed":true},"coordinator_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":true},"coordinator_server_edition":{"type":"TypeString","optional":true,"default":"GeneralPurpose"},"coordinator_storage_quota_in_mb":{"type":"TypeInt","required":true},"coordinator_vcore_count":{"type":"TypeInt","required":true},"earliest_restore_time":{"type":"TypeString","computed":true},"ha_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","required":true},"node_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":false},"node_server_edition":{"type":"TypeString","optional":true,"default":"MemoryOptimized"},"node_storage_quota_in_mb":{"type":"TypeInt","optional":true,"computed":true},"node_vcores":{"type":"TypeInt","optional":true,"computed":true},"point_in_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"preferred_primary_zone":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shards_on_coordinator_enabled":{"type":"TypeBool","optional":true,"computed":true},"source_location":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"sql_version":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_postgresql_coordinator_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_firewall_rule":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_node_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_role":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_sql_container":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"indexing_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"included_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"indexing_mode":{"type":"TypeString","optional":true,"default":"consistent"},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_dedicated_gateway":{"schema":{"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","required":true},"instance_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_function":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_assignment":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"assignable_scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeSet","required":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"CustomRole","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_stored_procedure":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_trigger":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operation":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_table":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_anomaly_alert":{"schema":{"display_name":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"email_subject":{"type":"TypeString","required":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_management_scheduled_action":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name":{"type":"TypeString","required":true},"email_address_sender":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":20,"minItems":1},"email_subject":{"type":"TypeString","required":true},"end_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","optional":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_date":{"type":"TypeString","required":true},"view_id":{"type":"TypeString","required":true,"forceNew":true},"weeks_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_custom_ip_prefix":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"commissioning_enabled":{"type":"TypeBool","optional":true,"default":false},"internet_advertising_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_custom_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roa_validity_end_date":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wan_validation_signed_message":{"type":"TypeString","optional":true,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":540,"read":5,"delete":1020,"update":1020}},"azurerm_custom_provider":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_type":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"routing_type":{"type":"TypeString","optional":true,"default":"Proxy"}}}},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validation":{"type":"TypeSet","optional":true,"elem":{"schema":{"specification":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard_grafana":{"schema":{"api_key_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse"},"azure_monitor_workspace_integrations":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"deterministic_outbound_ip_enabled":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"grafana_version":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory":{"schema":{"customer_managed_key_id":{"type":"TypeString","optional":true},"customer_managed_key_identity_id":{"type":"TypeString","optional":true},"github_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"global_parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_custom_dataset":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_azure_blob":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_binary":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sftp_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_cosmosdb_sqlapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"collection_name":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_delimited_text":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_fs_location":{"type":"TypeList","optional":true,"elem":{"schema":{"file_system":{"type":"TypeString","required":true},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"column_delimiter":{"type":"TypeString","optional":true,"default":","},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"escape_character":{"type":"TypeString","optional":true,"default":"\\"},"first_row_as_header":{"type":"TypeBool","optional":true,"default":false},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"null_value":{"type":"TypeString","optional":true,"default":""},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"quote_character":{"type":"TypeString","optional":true,"default":"\""},"row_delimiter":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_http":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"relative_url":{"type":"TypeString","optional":true},"request_body":{"type":"TypeString","optional":true},"request_method":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_json":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_parquet":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precision":{"type":"TypeInt","optional":true},"scale":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","optional":true}}}},"schema_name":{"type":"TypeString","optional":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_sql_server_table":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_flowlet_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure":{"schema":{"cleanup_enabled":{"type":"TypeBool","optional":true,"computed":true},"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0},"virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure_ssis":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"dual_standby_pair_name":{"type":"TypeString","optional":true},"elastic_pool_name":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"express_custom_setup":{"type":"TypeList","optional":true,"elem":{"schema":{"command_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"password":{"type":"TypeString","optional":true},"target_name":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"component":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_license":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"environment":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"powershell_version":{"type":"TypeString","optional":true}}},"maxItems":1},"express_vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"package_store":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","optional":true},"self_hosted_integration_runtime_name":{"type":"TypeString","required":true},"staging_storage_linked_service_name":{"type":"TypeString","required":true}}},"maxItems":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"public_ips":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2},"subnet_id":{"type":"TypeString","optional":true},"subnet_name":{"type":"TypeString","optional":true},"vnet_id":{"type":"TypeString","optional":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_managed":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true,"default":"Basic"},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","required":true},"vnet_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_self_hosted":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_authorization_key":{"type":"TypeString","computed":true},"rbac_authorization":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"secondary_authorization_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_custom_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_blob_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"connection_string_insecure":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_sas_token":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sas_uri":{"type":"TypeString","optional":true},"service_endpoint":{"type":"TypeString","optional":true},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"service_principal_linked_key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_kind":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_databricks":{"schema":{"access_token":{"type":"TypeString","optional":true},"adb_domain":{"type":"TypeString","required":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"existing_cluster_id":{"type":"TypeString","optional":true},"instance_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"instance_pool_id":{"type":"TypeString","required":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":1}}},"maxItems":1},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"msi_work_space_resource_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"new_cluster_config":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"custom_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"driver_node_type":{"type":"TypeString","optional":true},"init_scripts":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"log_destination":{"type":"TypeString","optional":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":"1"},"node_type":{"type":"TypeString","required":true},"spark_config":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"spark_environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_file_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"file_share":{"type":"TypeString","optional":true},"host":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"user_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_function":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key":{"type":"TypeString","optional":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_search":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted_credential":{"type":"TypeString","computed":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"search_service_key":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_sql_database":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_table_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb":{"schema":{"account_endpoint":{"type":"TypeString","optional":true},"account_key":{"type":"TypeString","optional":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb_mongoapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"server_version_is_32_or_higher":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_data_lake_storage_gen2":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"storage_account_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_key_vault":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_kusto":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"kusto_database_name":{"type":"TypeString","required":true},"kusto_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odata":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odbc":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sftp":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"host":{"type":"TypeString","required":true},"host_key_fingerprint":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true},"skip_host_key_validation":{"type":"TypeBool","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sql_server":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_synapse":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_web":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_managed_private_endpoint":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"fqdns":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_factory_pipeline":{"schema":{"activities_json":{"type":"TypeString","optional":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"concurrency":{"type":"TypeInt","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"moniter_metrics_after_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_blob_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"blob_path_begins_with":{"type":"TypeString","optional":true},"blob_path_ends_with":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"ignore_empty_blobs":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_custom_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"eventgrid_topic_id":{"type":"TypeString","required":true,"forceNew":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_schedule":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","optional":true,"default":"Minute"},"interval":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"pipeline_name":{"type":"TypeString","optional":true,"computed":true},"pipeline_parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":7},"hours":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","optional":true},"weekday":{"type":"TypeString","required":true}}},"minItems":1}}},"maxItems":1,"minItems":1},"start_time":{"type":"TypeString","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_tumbling_window":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"delay":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true,"forceNew":true},"interval":{"type":"TypeInt","required":true,"forceNew":true},"max_concurrency":{"type":"TypeInt","optional":true,"default":50},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retry":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeInt","optional":true,"default":30}}},"maxItems":1},"start_time":{"type":"TypeString","required":true,"forceNew":true},"trigger_dependency":{"type":"TypeSet","optional":true,"elem":{"schema":{"offset":{"type":"TypeString","optional":true},"size":{"type":"TypeString","optional":true},"trigger_name":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_blob_storage":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_disk":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"disk_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_postgresql":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"database_credential_key_vault_secret_id":{"type":"TypeString","optional":true},"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_blob_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"retention_duration":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_disk":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_postgresql":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true},"days_of_week":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"months_of_year":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"scheduled_backup_times":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"weeks_of_month":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redundancy":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_resource_guard":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vault_critical_operation_exclusion_list":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}},"maxItems":1},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","required":true,"forceNew":true},"data_share_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"file_system_name":{"type":"TypeString","required":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"source_platform":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_order":{"schema":{"contact":{"type":"TypeList","required":true,"elem":{"schema":{"company_name":{"type":"TypeString","required":true,"forceNew":true},"emails":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"device_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"return_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"serial_number":{"type":"TypeString","computed":true},"shipment_address":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3},"city":{"type":"TypeString","required":true,"forceNew":true},"country":{"type":"TypeString","required":true,"forceNew":true},"postal_code":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"shipment_history":{"type":"TypeSet","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}},"shipment_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"status":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"info":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_access_connector":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_virtual_network_peering":{"schema":{"address_space_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_address_space_prefixes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_id":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace":{"schema":{"custom_parameters":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"machine_learning_workspace_id":{"type":"TypeString","optional":true,"forceNew":true},"nat_gateway_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"no_public_ip":{"type":"TypeBool","optional":true,"computed":true},"private_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"private_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"public_ip_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"public_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_sku_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vnet_address_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_encryption_set_id":{"type":"TypeString","computed":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"load_balancer_backend_address_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"managed_disk_cmk_rotation_to_latest_version_enabled":{"type":"TypeBool","optional":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"managed_resource_group_id":{"type":"TypeString","computed":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_services_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules_required":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_root_dbfs_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor":{"schema":{"datadog_organization":{"type":"TypeList","required":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true,"forceNew":true},"application_key":{"type":"TypeString","required":true,"forceNew":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","computed":true},"linking_auth_code":{"type":"TypeString","optional":true,"forceNew":true},"linking_client_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"redirect_uri":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"marketplace_subscription_status":{"type":"TypeString","computed":true},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_sso_configuration":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"enterprise_application_id":{"type":"TypeString","required":true},"login_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"default"},"single_sign_on_enabled":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_tag_rule":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"log":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_log_enabled":{"type":"TypeBool","optional":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_log_enabled":{"type":"TypeBool","optional":true},"subscription_log_enabled":{"type":"TypeBool","optional":true}}}},"metric":{"type":"TypeList","optional":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","optional":true,"default":"default"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_hardware_security_module":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"management_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"stamp_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host":{"schema":{"auto_replace_on_failure":{"type":"TypeBool","optional":true,"default":true},"dedicated_host_group_id":{"type":"TypeString","required":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain":{"type":"TypeInt","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_global_vm_shutdown_schedule":{"schema":{"daily_recurrence_time":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"time_in_minutes":{"type":"TypeInt","optional":true,"default":30},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","optional":true,"default":"Premium"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_linux_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_policy":{"schema":{"description":{"type":"TypeString","optional":true},"evaluator_type":{"type":"TypeString","required":true,"forceNew":true},"fact_data":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_set_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threshold":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_schedule":{"schema":{"daily_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true}}},"maxItems":1},"hourly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true}}},"maxItems":1},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"status":{"type":"TypeString","optional":true,"default":"Disabled"},"time_in_minutes":{"type":"TypeInt","optional":true},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Disabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_type":{"type":"TypeString","required":true},"time_zone_id":{"type":"TypeString","required":true},"weekly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_virtual_network":{"schema":{"description":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"use_in_virtual_machine_creation":{"type":"TypeString","optional":true,"default":"Allow"},"use_public_ip_address":{"type":"TypeString","optional":true,"default":"Allow"}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_windows_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventgrid":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventgrid_topic_endpoint":{"type":"TypeString","required":true},"eventgrid_topic_primary_access_key":{"type":"TypeString","required":true},"eventgrid_topic_secondary_access_key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventhub":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_primary_connection_string":{"type":"TypeString","required":true},"eventhub_secondary_connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_servicebus":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_primary_connection_string":{"type":"TypeString","required":true},"servicebus_secondary_connection_string":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_time_series_database_connection":{"schema":{"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_consumer_group_name":{"type":"TypeString","optional":true,"default":"$Default","forceNew":true},"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_uri":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_name":{"type":"TypeString","required":true,"forceNew":true},"kusto_table_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_disk_access":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_type":{"type":"TypeString","optional":true,"default":"EncryptionAtRestWithCustomerKey","forceNew":true},"federated_client_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_disk_pool":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_pool_iscsi_target":{"schema":{"acl_mode":{"type":"TypeString","required":true,"forceNew":true},"disks_pool_id":{"type":"TypeString","required":true,"forceNew":true},"endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","computed":true},"target_iqn":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_iscsi_target_lun":{"schema":{"disk_pool_managed_disk_attachment_id":{"type":"TypeString","required":true,"forceNew":true},"iscsi_target_id":{"type":"TypeString","required":true,"forceNew":true},"lun":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_managed_disk_attachment":{"schema":{"disk_pool_id":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"flags":{"type":"TypeInt","required":true},"tag":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","optional":true,"computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":300},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","required":true,"forceNew":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_azuread_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_email_communication_service":{"schema":{"data_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain":{"schema":{"auto_create_topic_with_first_subscription":{"type":"TypeBool","optional":true,"default":true},"auto_delete_topic_with_last_subscription":{"type":"TypeBool","optional":true,"default":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_eventgrid_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_arm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"system_topic":{"type":"TypeString","required":true,"forceNew":true},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub":{"schema":{"capture_description":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeList","required":true,"elem":{"schema":{"archive_name_format":{"type":"TypeString","required":true},"blob_container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"encoding":{"type":"TypeString","required":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":300},"size_limit_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"skip_empty_archives":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"message_retention":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","required":true,"forceNew":true},"partition_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":300,"update":30}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity":{"type":"TypeInt","optional":true,"default":1},"dedicated_cluster_id":{"type":"TypeString","optional":true,"forceNew":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_throughput_units":{"type":"TypeInt","optional":true,"computed":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rulesets":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_service_access_enabled":{"type":"TypeBool","optional":true},"virtual_network_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"ignore_missing_virtual_network_service_endpoint":{"type":"TypeBool","optional":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":128}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_customer_managed_key":{"schema":{"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"key_vault_key_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_disaster_recovery_config":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_schema_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"schema_compatibility":{"type":"TypeString","required":true,"forceNew":true},"schema_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_express_route_circuit":{"schema":{"allow_classic_operations":{"type":"TypeBool","optional":true,"default":false},"authorization_key":{"type":"TypeString","optional":true},"bandwidth_in_gbps":{"type":"TypeFloat","optional":true},"bandwidth_in_mbps":{"type":"TypeInt","optional":true},"express_route_port_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","optional":true,"forceNew":true},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"family":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_connection":{"schema":{"address_prefix_ipv4":{"type":"TypeString","required":true,"forceNew":true},"address_prefix_ipv6":{"type":"TypeString","optional":true},"authorization_key":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_peering_id":{"type":"TypeString","required":true,"forceNew":true},"peering_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_peering":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_manager_etag":{"type":"TypeString","computed":true},"ipv4_enabled":{"type":"TypeBool","optional":true,"default":true},"ipv6":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"microsoft_peering":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"primary_peer_address_prefix":{"type":"TypeString","required":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_peer_address_prefix":{"type":"TypeString","required":true}}},"maxItems":1},"microsoft_peering_config":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"peer_asn":{"type":"TypeInt","optional":true,"computed":true},"peering_type":{"type":"TypeString","required":true},"primary_azure_port":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_azure_port":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","optional":true},"shared_key":{"type":"TypeString","optional":true},"vlan_id":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"enable_internet_security":{"type":"TypeBool","optional":true},"express_route_circuit_peering_id":{"type":"TypeString","required":true,"forceNew":true},"express_route_gateway_bypass_enabled":{"type":"TypeBool","optional":true,"default":false},"express_route_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"routing_weight":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_gateway":{"schema":{"allow_non_virtual_wan_traffic":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_express_route_port":{"schema":{"bandwidth_in_gbps":{"type":"TypeInt","required":true,"forceNew":true},"billing_type":{"type":"TypeString","optional":true,"computed":true},"encapsulation":{"type":"TypeString","required":true,"forceNew":true},"ethertype":{"type":"TypeString","computed":true},"guid":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"link1":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"link2":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mtu":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_port_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_port_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_federated_identity_credential":{"schema":{"audience":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"issuer":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"firewall_policy_id":{"type":"TypeString","optional":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_ip_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"sku_tier":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","optional":true,"computed":true},"virtual_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","optional":true,"default":1},"virtual_hub_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_firewall_application_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"target_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_nat_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","required":true},"translated_port":{"type":"TypeString","required":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_network_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy":{"schema":{"auto_learn_private_ranges_enabled":{"type":"TypeBool","optional":true},"base_policy_id":{"type":"TypeString","optional":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"proxy_enabled":{"type":"TypeBool","optional":true,"default":false},"servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"explicit_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_pac_file":{"type":"TypeBool","optional":true},"enabled":{"type":"TypeBool","optional":true},"http_port":{"type":"TypeInt","optional":true},"https_port":{"type":"TypeInt","optional":true},"pac_file":{"type":"TypeString","optional":true},"pac_file_port":{"type":"TypeInt","optional":true}}},"maxItems":1},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"insights":{"type":"TypeList","optional":true,"elem":{"schema":{"default_log_analytics_workspace_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"firewall_location":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"retention_in_days":{"type":"TypeInt","optional":true}}},"maxItems":1},"intrusion_detection":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true},"private_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"signature_overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"state":{"type":"TypeString","optional":true}}}},"traffic_bypass":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"source_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"sql_redirect_allowed":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","optional":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"threat_intelligence_mode":{"type":"TypeString","optional":true,"default":"Alert"},"tls_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_secret_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy_rule_collection_group":{"schema":{"application_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"terminate_tls":{"type":"TypeBool","optional":true},"web_categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_address":{"type":"TypeString","optional":true},"destination_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","optional":true},"translated_fqdn":{"type":"TypeString","optional":true},"translated_port":{"type":"TypeInt","required":true}}},"minItems":1}}},"minItems":1},"network_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"priority":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_fluid_relay_server":{"schema":{"frs_tenant_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"orderer_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_frontdoor":{"schema":{"backend_pool":{"type":"TypeList","required":true,"elem":{"schema":{"backend":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_header":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","required":true},"https_port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"weight":{"type":"TypeInt","optional":true,"default":50}}},"maxItems":500},"health_probe_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"load_balancing_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"backend_pool_health_probe":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"id":{"type":"TypeString","computed":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":120},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"probe_method":{"type":"TypeString","optional":true,"default":"GET"},"protocol":{"type":"TypeString","optional":true,"default":"Http"}}},"maxItems":5000},"backend_pool_health_probes":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_milliseconds":{"type":"TypeInt","optional":true,"default":0},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":2}}},"maxItems":5000},"backend_pool_load_balancing_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pools_send_receive_timeout_seconds":{"type":"TypeInt","optional":true,"default":60},"enforce_backend_pools_certificate_name_check":{"type":"TypeBool","required":true}}}},"backend_pools":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"cname":{"type":"TypeString","computed":true},"explicit_resource_order":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_pool_health_probe_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"routing_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"friendly_name":{"type":"TypeString","optional":true},"frontend_endpoint":{"type":"TypeList","required":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"session_affinity_ttl_seconds":{"type":"TypeInt","optional":true,"default":0},"web_application_firewall_policy_link_id":{"type":"TypeString","optional":true}}},"maxItems":500},"frontend_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"header_frontdoor_id":{"type":"TypeString","computed":true},"load_balancer_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_rule":{"type":"TypeList","required":true,"elem":{"schema":{"accepted_protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":2},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pool_name":{"type":"TypeString","required":true},"cache_duration":{"type":"TypeString","optional":true},"cache_enabled":{"type":"TypeBool","optional":true,"default":false},"cache_query_parameter_strip_directive":{"type":"TypeString","optional":true,"default":"StripAll"},"cache_query_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"cache_use_dynamic_compression":{"type":"TypeBool","optional":true,"default":false},"custom_forwarding_path":{"type":"TypeString","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"HttpsOnly"}}},"maxItems":1},"frontend_endpoints":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":500},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"redirect_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_fragment":{"type":"TypeString","optional":true},"custom_host":{"type":"TypeString","optional":true},"custom_path":{"type":"TypeString","optional":true},"custom_query_string":{"type":"TypeString","optional":true},"redirect_protocol":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":500},"routing_rules":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_custom_https_configuration":{"schema":{"custom_https_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_key_vault_certificate_secret_name":{"type":"TypeString","optional":true},"azure_key_vault_certificate_secret_version":{"type":"TypeString","optional":true},"azure_key_vault_certificate_vault_id":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","optional":true,"default":"FrontDoor"},"minimum_tls_version":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true},"provisioning_substate":{"type":"TypeString","computed":true}}},"maxItems":1},"custom_https_provisioning_enabled":{"type":"TypeBool","required":true},"frontend_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_frontdoor_rules_engine":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"frontdoor_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"request_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100},"response_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100}}},"maxItems":1},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transform":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":6},"value":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"variable":{"type":"TypeString","optional":true}}},"maxItems":100},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true}}},"maxItems":100}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_cert_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"","forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_function_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_function":{"schema":{"config_json":{"type":"TypeString","required":true,"description":"The config for this Function in JSON format."},"config_url":{"type":"TypeString","description":"The URL of the configuration JSON.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this function be enabled. Defaults to `true`."},"file":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"description":"The content of the file.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The filename of the file to be uploaded.","forceNew":true}}},"minItems":1},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App in which this function should reside.","forceNew":true},"invocation_url":{"type":"TypeString","description":"The invocation URL.","computed":true},"language":{"type":"TypeString","optional":true,"description":"The language the Function is written in."},"name":{"type":"TypeString","required":true,"description":"The name of the function.","forceNew":true},"script_root_path_url":{"type":"TypeString","description":"The Script root path URL.","computed":true},"script_url":{"type":"TypeString","description":"The script URL.","computed":true},"secrets_file_url":{"type":"TypeString","description":"The URL for the Secrets File.","computed":true},"test_data":{"type":"TypeString","optional":true,"description":"The test data for the function."},"test_data_url":{"type":"TypeString","description":"The Test data URL.","computed":true},"url":{"type":"TypeString","description":"The function URL.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_hybrid_connection":{"schema":{"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App for this Hybrid Connection.","forceNew":true},"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_slot":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"function_app_name":{"type":"TypeString","required":true,"forceNew":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application":{"schema":{"description":{"type":"TypeString","optional":true},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true},"gallery_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true},"release_note_uri":{"type":"TypeString","optional":true},"supported_os_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application_version":{"schema":{"enable_health_check":{"type":"TypeBool","optional":true,"default":false},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_application_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"manage_action":{"type":"TypeList","required":true,"elem":{"schema":{"install":{"type":"TypeString","required":true,"forceNew":true},"remove":{"type":"TypeString","required":true,"forceNew":true},"update":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"default_configuration_link":{"type":"TypeString","optional":true,"forceNew":true},"media_link":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_services_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hdinsight_hadoop_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hadoop":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"edge_node":{"type":"TypeList","optional":true,"elem":{"schema":{"https_endpoints":{"type":"TypeList","optional":true,"elem":{"schema":{"access_modes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_port":{"type":"TypeInt","optional":true},"disable_gateway_auth":{"type":"TypeBool","optional":true},"private_ip_address":{"type":"TypeString","optional":true},"sub_domain_suffix":{"type":"TypeString","optional":true}}}},"install_script_action":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"target_instance_count":{"type":"TypeInt","required":true},"uninstall_script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"vm_size":{"type":"TypeString","required":true}}},"maxItems":1},"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_hbase_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hbase":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_interactive_query_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"interactive_hive":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_kafka_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"kafka":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rest_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"security_group_id":{"type":"TypeString","required":true,"forceNew":true},"security_group_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kafka_management_node":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"number_of_disks_per_node":{"type":"TypeInt","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_spark_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"spark":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_healthbot":{"schema":{"bot_management_portal_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"authority":{"type":"TypeString","required":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"configuration_export_storage_account_name":{"type":"TypeString","optional":true},"container_registry_login_server_url":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"credentials_allowed":{"type":"TypeBool","optional":true,"default":false},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","optional":true,"default":"fhir-R4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"oci_artifact":{"type":"TypeList","optional":true,"elem":{"schema":{"digest":{"type":"TypeString","optional":true},"image_name":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_medtech_service_fhir_destination":{"schema":{"destination_fhir_mapping_json":{"type":"TypeString","required":true},"destination_fhir_service_id":{"type":"TypeString","required":true},"destination_identity_resolution_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"medtech_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"audience":{"type":"TypeString","optional":true},"authority":{"type":"TypeString","optional":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","optional":true},"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","optional":true,"forceNew":true},"cosmosdb_throughput":{"type":"TypeInt","optional":true,"default":1000},"kind":{"type":"TypeString","optional":true,"default":"fhir"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache":{"schema":{"automatically_rotate_key_to_latest_enabled":{"type":"TypeBool","optional":true},"cache_size_in_gb":{"type":"TypeInt","required":true,"forceNew":true},"default_access_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1}}},"maxItems":1,"minItems":1},"directory_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_netbios_name":{"type":"TypeString","required":true},"dns_primary_ip":{"type":"TypeString","required":true},"dns_secondary_ip":{"type":"TypeString","optional":true},"domain_name":{"type":"TypeString","required":true},"domain_netbios_name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"directory_flat_file":{"type":"TypeList","optional":true,"elem":{"schema":{"group_file_uri":{"type":"TypeString","required":true},"password_file_uri":{"type":"TypeString","required":true}}},"maxItems":1},"directory_ldap":{"type":"TypeList","optional":true,"elem":{"schema":{"base_dn":{"type":"TypeString","required":true},"bind":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dn":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_validation_uri":{"type":"TypeString","optional":true},"download_certificate_automatically":{"type":"TypeBool","optional":true},"encrypted":{"type":"TypeBool","optional":true},"server":{"type":"TypeString","required":true}}},"maxItems":1},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"search_domain":{"type":"TypeString","optional":true},"servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mtu":{"type":"TypeInt","optional":true,"default":1500},"name":{"type":"TypeString","required":true,"forceNew":true},"ntp_server":{"type":"TypeString","optional":true,"default":"time.windows.com"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hpc_cache_access_policy":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1},"hpc_cache_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_nfs_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_nfs_target":{"schema":{"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_junction":{"type":"TypeSet","required":true,"elem":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"namespace_path":{"type":"TypeString","required":true},"nfs_export":{"type":"TypeString","required":true},"target_path":{"type":"TypeString","optional":true,"default":""}}},"maxItems":10,"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"target_host_name":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"lun":{"type":"TypeInt","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}}},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"os_state":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_virtual_machine_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_integration_service_environment":{"schema":{"access_endpoint_type":{"type":"TypeString","required":true,"forceNew":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Developer_0"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":4,"minItems":4},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_iot_security_device_group":{"schema":{"allow_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_from_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"connection_to_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"local_users_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"processes_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"range_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"max":{"type":"TypeInt","required":true},"min":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_security_solution":{"schema":{"additional_workspace":{"type":"TypeSet","optional":true,"elem":{"schema":{"data_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}}}},"disabled_data_sources":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events_to_export":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"iothub_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"log_unmasked_ips_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"query_for_resources":{"type":"TypeString","optional":true,"computed":true},"query_subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"recommendations_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_authentication":{"type":"TypeBool","optional":true,"default":true},"agent_send_unutilized_msg":{"type":"TypeBool","optional":true,"default":true},"baseline":{"type":"TypeBool","optional":true,"default":true},"edge_hub_mem_optimize":{"type":"TypeBool","optional":true,"default":true},"edge_logging_option":{"type":"TypeBool","optional":true,"default":true},"inconsistent_module_settings":{"type":"TypeBool","optional":true,"default":true},"install_agent":{"type":"TypeBool","optional":true,"default":true},"ip_filter_deny_all":{"type":"TypeBool","optional":true,"default":true},"ip_filter_permissive_rule":{"type":"TypeBool","optional":true,"default":true},"open_ports":{"type":"TypeBool","optional":true,"default":true},"permissive_firewall_policy":{"type":"TypeBool","optional":true,"default":true},"permissive_input_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"permissive_output_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"privileged_docker_options":{"type":"TypeBool","optional":true,"default":true},"shared_credentials":{"type":"TypeBool","optional":true,"default":true},"vulnerable_tls_cipher_suite":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_access_policy":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_object_id":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_eventhub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_iothub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_gen2_environment":{"schema":{"data_access_fqdn":{"type":"TypeString","computed":true},"id_properties":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage":{"type":"TypeList","required":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"warm_store_data_retention_time":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_reference_data_set":{"schema":{"data_string_comparison_behavior":{"type":"TypeString","optional":true,"default":"Ordinal","forceNew":true},"key_property":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_standard_environment":{"schema":{"data_retention_time":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_limit_exceeded_behavior":{"type":"TypeString","optional":true,"default":"PurgeOldData"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"ST1"},"sub_domain":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application_network_rule_set":{"schema":{"apply_to_device":{"type":"TypeBool","optional":true,"default":true},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"iotcentral_application_id":{"type":"TypeString","required":true,"forceNew":true},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub":{"schema":{"cloud_to_device":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"feedback":{"type":"TypeList","optional":true,"elem":{"schema":{"lock_duration":{"type":"TypeString","optional":true,"default":"PT60S"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"time_to_live":{"type":"TypeString","optional":true,"default":"PT1H"}}}},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10}}},"maxItems":1},"endpoint":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"enrichment":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":10},"event_hub_events_endpoint":{"type":"TypeString","computed":true},"event_hub_events_namespace":{"type":"TypeString","computed":true},"event_hub_events_path":{"type":"TypeString","computed":true},"event_hub_operations_endpoint":{"type":"TypeString","computed":true},"event_hub_operations_path":{"type":"TypeString","computed":true},"event_hub_partition_count":{"type":"TypeInt","optional":true,"computed":true},"event_hub_retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"fallback_route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","optional":true,"computed":true},"endpoint_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}}},"maxItems":1},"file_upload":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"computed":true},"identity_id":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"apply_to_builtin_eventhub_endpoint":{"type":"TypeBool","optional":true,"default":false},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}},"shared_access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"key_name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_consumer_group":{"schema":{"eventhub_endpoint_name":{"type":"TypeString","required":true,"forceNew":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_account":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_instance":{"schema":{"device_update_account_id":{"type":"TypeString","required":true,"forceNew":true},"diagnostic_enabled":{"type":"TypeBool","optional":true,"default":false},"diagnostic_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","optional":true,"default":"Hashed"},"data_residency_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"ip_filter_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"target":{"type":"TypeString","optional":true}}}},"linked_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_weight":{"type":"TypeInt","optional":true,"default":1},"apply_allocation_policy":{"type":"TypeBool","optional":true,"default":true},"connection_string":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_operations_host_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iot_dps_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"enrollment_read":{"type":"TypeBool","optional":true,"default":false},"enrollment_write":{"type":"TypeBool","optional":true,"default":false},"iothub_dps_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registration_read":{"type":"TypeBool","optional":true,"default":false},"registration_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_config":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_eventhub":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_queue":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_topic":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_storage_container":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_enrichment":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":100},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"key":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_fallback_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_file_upload":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"lock_duration":{"type":"TypeString","optional":true,"default":"PT1M"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications_enabled":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"default":"PT1H"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_shared_access_policy":{"schema":{"device_connect":{"type":"TypeBool","optional":true,"default":false},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registry_read":{"type":"TypeBool","optional":true,"default":false},"registry_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_connect":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"firewall_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group_cidr":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"ip_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","optional":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1024},"contact":{"type":"TypeSet","optional":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"enable_rbac_authorization":{"type":"TypeBool","optional":true},"enabled_for_deployment":{"type":"TypeBool","optional":true},"enabled_for_disk_encryption":{"type":"TypeBool","optional":true},"enabled_for_template_deployment":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_protection_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_access_policy":{"schema":{"application_id":{"type":"TypeString","optional":true,"forceNew":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true,"forceNew":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate":{"schema":{"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"contents":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate_attribute":{"type":"TypeList","computed":true,"elem":{"schema":{"created":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"expires":{"type":"TypeString","computed":true},"not_before":{"type":"TypeString","computed":true},"recovery_level":{"type":"TypeString","computed":true},"updated":{"type":"TypeString","computed":true}}}},"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"key_properties":{"type":"TypeList","required":true,"elem":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true},"exportable":{"type":"TypeBool","required":true},"key_size":{"type":"TypeInt","optional":true,"computed":true},"key_type":{"type":"TypeString","required":true},"reuse_key":{"type":"TypeBool","required":true}}},"maxItems":1},"lifetime_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","optional":true},"lifetime_percentage":{"type":"TypeInt","optional":true}}},"maxItems":1}}}},"secret_properties":{"type":"TypeList","required":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true}}},"maxItems":1},"x509_certificate_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","required":true},"subject_alternative_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dns_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"validity_in_months":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":30,"delete":30,"update":30}},"azurerm_key_vault_certificate_contacts":{"schema":{"contact":{"type":"TypeSet","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","optional":true},"admin":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","optional":true},"last_name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_id":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"provider_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"e":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","optional":true},"key_opts":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","optional":true,"forceNew":true},"key_type":{"type":"TypeString","required":true,"forceNew":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"rotation_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"automatic":{"type":"TypeList","optional":true,"elem":{"schema":{"time_after_creation":{"type":"TypeString","optional":true},"time_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"expire_after":{"type":"TypeString","optional":true},"notify_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_domain_encrypted_data":{"type":"TypeString","computed":true},"security_domain_key_vault_certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10,"minItems":3},"security_domain_quorum":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":30}},"azurerm_key_vault_managed_storage_account":{"schema":{"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"regenerate_key_automatically":{"type":"TypeBool","optional":true,"default":false},"regeneration_period":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_managed_storage_account_sas_token_definition":{"schema":{"managed_storage_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sas_template_uri":{"type":"TypeString","required":true},"sas_type":{"type":"TypeString","required":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validity_period":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","optional":true,"elem":{"schema":{"connector_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_name":{"type":"TypeString","required":true}}},"maxItems":1},"api_server_access_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true},"vnet_integration_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"api_server_authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auto_scaler_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"balance_similar_node_groups":{"type":"TypeBool","optional":true,"default":false},"empty_bulk_delete_max":{"type":"TypeString","optional":true,"computed":true},"expander":{"type":"TypeString","optional":true,"default":"random"},"max_graceful_termination_sec":{"type":"TypeString","optional":true,"computed":true},"max_node_provisioning_time":{"type":"TypeString","optional":true,"default":"15m"},"max_unready_nodes":{"type":"TypeInt","optional":true,"default":3},"max_unready_percentage":{"type":"TypeFloat","optional":true,"default":45},"new_pod_scale_up_delay":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_add":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_delete":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_failure":{"type":"TypeString","optional":true,"computed":true},"scale_down_unneeded":{"type":"TypeString","optional":true,"computed":true},"scale_down_unready":{"type":"TypeString","optional":true,"computed":true},"scale_down_utilization_threshold":{"type":"TypeString","optional":true,"computed":true},"scan_interval":{"type":"TypeString","optional":true,"computed":true},"skip_nodes_with_local_storage":{"type":"TypeBool","optional":true,"default":true},"skip_nodes_with_system_pods":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"automatic_channel_upgrade":{"type":"TypeString","optional":true},"azure_active_directory_role_based_access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","optional":true},"client_app_id":{"type":"TypeString","optional":true},"managed":{"type":"TypeBool","optional":true},"server_app_id":{"type":"TypeString","optional":true},"server_app_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"azure_policy_enabled":{"type":"TypeBool","optional":true},"confidential_computing":{"type":"TypeList","optional":true,"elem":{"schema":{"sgx_quote_helper_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"custom_ca_trust_certificates_base64":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"default_node_pool":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true},"enable_node_public_ip":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false},"cpu_cfs_quota_period":{"type":"TypeString","optional":true},"cpu_manager_policy":{"type":"TypeString","optional":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true},"pod_max_pid":{"type":"TypeInt","optional":true},"topology_manager_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"linux_os_config":{"type":"TypeList","optional":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"only_critical_addons_enabled":{"type":"TypeBool","optional":true},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed"},"os_sku":{"type":"TypeString","optional":true,"computed":true},"pod_subnet_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"temporary_name_for_rotation":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"VirtualMachineScaleSets","forceNew":true},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true},"vnet_subnet_id":{"type":"TypeString","optional":true},"workload_runtime":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix_private_cluster":{"type":"TypeString","optional":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_pod_security_policy":{"type":"TypeBool","optional":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","optional":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"http_proxy_config":{"type":"TypeList","optional":true,"elem":{"schema":{"http_proxy":{"type":"TypeString","optional":true,"forceNew":true},"https_proxy":{"type":"TypeString","optional":true,"forceNew":true},"no_proxy":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trusted_ca":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_cleaner_enabled":{"type":"TypeBool","optional":true,"default":false},"image_cleaner_interval_hours":{"type":"TypeInt","optional":true,"default":48},"ingress_application_gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","optional":true},"gateway_name":{"type":"TypeString","optional":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"key_management_service":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_network_access":{"type":"TypeString","optional":true,"default":"Public"}}},"maxItems":1},"key_vault_secrets_provider":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"secret_rotation_interval":{"type":"TypeString","optional":true,"default":"2m"}}},"maxItems":1},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"object_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"kubernetes_version":{"type":"TypeString","optional":true,"computed":true},"linux_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_username":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeList","required":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"local_account_disabled":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"hours":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"minItems":1}}}},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}}}},"maxItems":1},"maintenance_window_auto_upgrade":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"maintenance_window_node_os":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"microsoft_defender":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true}}},"maxItems":1},"monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"annotations_allowed":{"type":"TypeString","optional":true},"labels_allowed":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"docker_bridge_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ebpf_data_plane":{"type":"TypeString","optional":true},"ip_versions":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"load_balancer_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":30},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true},"managed_outbound_ipv6_count":{"type":"TypeInt","optional":true,"computed":true},"outbound_ip_address_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ip_prefix_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ports_allocated":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"load_balancer_sku":{"type":"TypeString","optional":true,"default":"standard","forceNew":true},"nat_gateway_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"network_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"network_plugin":{"type":"TypeString","required":true,"forceNew":true},"network_plugin_mode":{"type":"TypeString","optional":true,"forceNew":true},"network_policy":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"pod_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pod_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"service_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_os_channel_upgrade":{"type":"TypeString","optional":true},"node_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","optional":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","optional":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"open_service_mesh_enabled":{"type":"TypeBool","optional":true},"portal_fqdn":{"type":"TypeString","computed":true},"private_cluster_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"private_cluster_public_fqdn_enabled":{"type":"TypeBool","optional":true,"default":false},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"private_fqdn":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_based_access_control_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"run_command_enabled":{"type":"TypeBool","optional":true,"default":true},"service_mesh_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true}}},"maxItems":1},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"storage_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"disk_driver_version":{"type":"TypeString","optional":true,"default":"v1"},"file_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"snapshot_controller_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"web_app_routing":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_zone_id":{"type":"TypeString","required":true},"web_app_routing_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"windows_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"gmsa":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_server":{"type":"TypeString","required":true},"root_domain":{"type":"TypeString","required":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true}}},"maxItems":1},"workload_autoscaler_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"keda_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_controlled_values":{"type":"TypeString","computed":true},"vertical_pod_autoscaler_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_update_mode":{"type":"TypeString","computed":true}}},"maxItems":1},"workload_identity_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_kubernetes_cluster_extension":{"schema":{"aks_assigned_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true,"forceNew":true},"enable_node_public_ip":{"type":"TypeBool","optional":true,"forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true,"forceNew":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"cpu_cfs_quota_period":{"type":"TypeString","optional":true,"forceNew":true},"cpu_manager_policy":{"type":"TypeString","optional":true,"forceNew":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"pod_max_pid":{"type":"TypeInt","optional":true,"forceNew":true},"topology_manager_policy":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"linux_os_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true,"forceNew":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","optional":true,"default":"User"},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed","forceNew":true},"os_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"Linux","forceNew":true},"pod_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"spot_max_price":{"type":"TypeFloat","optional":true,"default":-1,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"vnet_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"windows_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"outbound_nat_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"workload_runtime":{"type":"TypeString","optional":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kubernetes_cluster_trusted_access_role_binding":{"schema":{"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_fleet_manager":{"schema":{"hub_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dns_prefix":{"type":"TypeString","required":true},"fqdn":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true}}},"maxItems":1},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_attached_database_configuration":{"schema":{"attached_database_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"cluster_resource_id":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_principal_modification_kind":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"elem":{"schema":{"external_tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"external_tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster":{"schema":{"allowed_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allowed_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"auto_stop_enabled":{"type":"TypeBool","optional":true,"default":true},"data_ingestion_uri":{"type":"TypeString","computed":true},"disk_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"double_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"engine":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"language_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimized_auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum_instances":{"type":"TypeInt","required":true},"minimum_instances":{"type":"TypeInt","required":true}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"public_ip_type":{"type":"TypeString","optional":true,"default":"IPv4"},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"streaming_ingestion_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_external_tenants":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true},"virtual_network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_management_public_ip_id":{"type":"TypeString","required":true},"engine_public_ip_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_customer_managed_key":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"user_identity":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_cluster_managed_private_endpoint":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_id":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_region":{"type":"TypeString","optional":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cosmosdb_data_connection":{"schema":{"cosmosdb_container_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_id":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retrieval_start_date":{"type":"TypeString","optional":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"hot_cache_period":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_database_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_eventgrid_data_connection":{"schema":{"blob_storage_event_type":{"type":"TypeString","optional":true,"default":"Microsoft.Storage.BlobCreated"},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"eventgrid_resource_id":{"type":"TypeString","optional":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","optional":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skip_first_record":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_eventhub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"compression":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_iothub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_script":{"schema":{"continue_on_errors_enabled":{"type":"TypeBool","optional":true,"default":false},"database_id":{"type":"TypeString","required":true,"forceNew":true},"force_an_update_when_value_changed":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sas_token":{"type":"TypeString","optional":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_lab":{"schema":{"auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"lab_plan_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","computed":true},"public_ip_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roster":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_group_id":{"type":"TypeString","optional":true},"lms_instance":{"type":"TypeString","optional":true},"lti_client_id":{"type":"TypeString","optional":true},"lti_context_id":{"type":"TypeString","optional":true},"lti_roster_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"security":{"type":"TypeList","required":true,"elem":{"schema":{"open_access_enabled":{"type":"TypeBool","required":true},"registration_code":{"type":"TypeString","computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title":{"type":"TypeString","required":true},"virtual_machine":{"type":"TypeList","required":true,"elem":{"schema":{"additional_capability_gpu_drivers_installed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"admin_user":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"create_option":{"type":"TypeString","optional":true,"default":"Image","forceNew":true},"image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"non_admin_user":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"shared_password_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_lab_service_plan":{"schema":{"allowed_regions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":28,"minItems":1},"default_auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"default_connection":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true},"web_rdp_access":{"type":"TypeString","optional":true},"web_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"default_network_subnet_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_gallery_id":{"type":"TypeString","optional":true},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"instructions":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_schedule":{"schema":{"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"stop_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_user":{"schema":{"additional_usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"},"email":{"type":"TypeString","required":true,"forceNew":true},"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb":{"schema":{"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"id":{"type":"TypeString","computed":true},"inbound_nat_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_version":{"type":"TypeString","optional":true,"computed":true},"public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"computed":true},"subnet_id":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool":{"schema":{"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tunnel_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier":{"type":"TypeInt","required":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"virtual_network_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool_address":{"schema":{"backend_address_ip_configuration_id":{"type":"TypeString","optional":true,"description":"For global load balancer, user needs to specify the `backend_address_ip_configuration_id` of the added regional load balancers"},"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"description":"For regional load balancer, user needs to specify `virtual_network_id` and `ip_address`"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_pool":{"schema":{"backend_port":{"type":"TypeInt","required":true},"floating_ip_enabled":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_end":{"type":"TypeInt","required":true},"frontend_port_start":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tcp_reset_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","optional":true},"backend_ip_configuration_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","required":true},"enable_floating_ip":{"type":"TypeBool","optional":true,"computed":true},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","optional":true},"frontend_port_end":{"type":"TypeInt","optional":true},"frontend_port_start":{"type":"TypeInt","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","optional":true,"default":1024},"backend_address_pool_id":{"type":"TypeString","required":true},"enable_tcp_reset":{"type":"TypeBool","optional":true,"default":false},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_probe":{"schema":{"interval_in_seconds":{"type":"TypeInt","optional":true,"default":15},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_probes":{"type":"TypeInt","optional":true,"default":2},"port":{"type":"TypeInt","required":true},"probe_threshold":{"type":"TypeInt","optional":true,"default":1},"protocol":{"type":"TypeString","optional":true,"computed":true},"request_path":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_rule":{"schema":{"backend_address_pool_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":1},"backend_port":{"type":"TypeInt","required":true},"disable_outbound_snat":{"type":"TypeBool","optional":true,"default":false},"enable_floating_ip":{"type":"TypeBool","optional":true,"default":false},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"load_distribution":{"type":"TypeString","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"probe_id":{"type":"TypeString","optional":true,"computed":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lighthouse_assignment":{"schema":{"lighthouse_definition_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_lighthouse_definition":{"schema":{"authorization":{"type":"TypeSet","required":true,"elem":{"schema":{"delegated_role_definition_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"eligible_authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"just_in_time_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"approver":{"type":"TypeSet","optional":true,"elem":{"schema":{"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true}}}},"maximum_activation_duration":{"type":"TypeString","optional":true,"default":"PT8H"},"multi_factor_auth_provider":{"type":"TypeString","optional":true}}},"maxItems":1},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}}},"lighthouse_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managing_tenant_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022``","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Function App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Linux Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_linux_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"default":0},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_linux_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_web_app_slot":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_service_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_load_test":{"schema":{"data_plane_uri":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"gateway_address":{"type":"TypeString","optional":true},"gateway_fqdn":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_cluster":{"schema":{"cluster_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"default":1000},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_cluster_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"log_analytics_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_data_export_rule":{"schema":{"destination_resource_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"export_rule_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_event":{"schema":{"event_log_name":{"type":"TypeString","required":true},"event_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_performance_counter":{"schema":{"counter_name":{"type":"TypeString","required":true},"instance_name":{"type":"TypeString","required":true},"interval_seconds":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"object_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_service":{"schema":{"name":{"type":"TypeString","computed":true},"read_access_id":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true},"write_access_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_storage_account":{"schema":{"data_source_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack_query":{"schema":{"additional_settings_json":{"type":"TypeString","optional":true},"body":{"type":"TypeString","required":true},"categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"query_pack_id":{"type":"TypeString","required":true,"forceNew":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"solutions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_saved_search":{"schema":{"category":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"function_alias":{"type":"TypeString","optional":true,"forceNew":true},"function_parameters":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_solution":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"solution_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_storage_insights":{"schema":{"blob_container_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"table_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_workspace":{"schema":{"allow_resource_only_permissions":{"type":"TypeBool","optional":true,"default":true},"cmk_for_query_forced":{"type":"TypeBool","optional":true},"daily_quota_gb":{"type":"TypeFloat","optional":true,"default":-1},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_shared_key":{"type":"TypeString","computed":true},"reservation_capacity_in_gb_per_day":{"type":"TypeInt","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_http":{"schema":{"body":{"type":"TypeString","optional":true},"headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"queries":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_after":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_name":{"type":"TypeString","required":true},"action_result":{"type":"TypeString","required":true}}},"minItems":1},"uri":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account":{"schema":{"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_agreement":{"schema":{"agreement_type":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"guest_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"guest_partner_name":{"type":"TypeString","required":true},"host_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"host_partner_name":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_assembly":{"schema":{"assembly_name":{"type":"TypeString","required":true},"assembly_version":{"type":"TypeString","optional":true,"default":"0.0.0.0"},"content":{"type":"TypeString","optional":true},"content_link_uri":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_batch_configuration":{"schema":{"batch_group_name":{"type":"TypeString","required":true,"forceNew":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"release_criteria":{"type":"TypeList","required":true,"elem":{"schema":{"batch_size":{"type":"TypeInt","optional":true},"message_count":{"type":"TypeInt","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeSet","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","required":true},"weekday":{"type":"TypeString","required":true}}}},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_certificate":{"schema":{"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true}}},"maxItems":1},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_certificate":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_map":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"map_type":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_partner":{"schema":{"business_identity":{"type":"TypeSet","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_schema":{"schema":{"content":{"type":"TypeString","required":true},"file_name":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_session":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","optional":true,"default":"[1.*, 2.0.0)"},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"client_certificate_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_share_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","optional":true,"default":true},"version":{"type":"TypeString","optional":true,"default":"~3"},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_http_request":{"schema":{"callback_url":{"type":"TypeString","computed":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"relative_path":{"type":"TypeString","optional":true},"schema":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_recurrence":{"schema":{"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"at_these_hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"at_these_minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"on_these_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_workflow":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"open_authentication_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"claim":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"workflow_management":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logic_app_integration_account_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","optional":true,"default":"https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#","forceNew":true},"workflow_version":{"type":"TypeString","optional":true,"default":"1.0.0.0","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_monitor":{"schema":{"company_name":{"type":"TypeString","optional":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logz_organization_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","required":true,"forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"100gb14days","forceNew":true},"usage_type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_sign_on_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account_tag_rule":{"schema":{"logz_sub_account_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_tag_rule":{"schema":{"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_compute_cluster":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"scale_settings":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true,"forceNew":true},"min_node_count":{"type":"TypeInt","required":true,"forceNew":true},"scale_down_nodes_after_idle_duration":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"key_value":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"ssh_public_access_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"vm_priority":{"type":"TypeString","required":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_compute_instance":{"schema":{"assign_to_user":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"object_id":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"authorization_type":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","computed":true}}},"maxItems":1},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"virtual_machine_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_datastore_blobstorage":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_auth_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_datalake_gen2":{"schema":{"authority_url":{"type":"TypeString","optional":true,"computed":true},"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_fileshare":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_fileshare_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_inference_cluster":{"schema":{"cluster_purpose":{"type":"TypeString","optional":true,"default":"FastProd","forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ssl":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cert":{"type":"TypeString","optional":true,"default":"","forceNew":true},"cname":{"type":"TypeString","optional":true,"default":"","forceNew":true},"key":{"type":"TypeString","optional":true,"default":"","forceNew":true},"leaf_domain_label":{"type":"TypeString","optional":true,"default":"","forceNew":true},"overwrite_existing_domain":{"type":"TypeBool","optional":true,"default":"","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_synapse_spark":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_workspace":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"container_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"discovery_url":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key_id":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"friendly_name":{"type":"TypeString","optional":true},"high_business_impact":{"type":"TypeBool","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_build_compute_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_user_assigned_identity":{"type":"TypeString","optional":true},"public_access_behind_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Basic"},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"v1_legacy_mode_enabled":{"type":"TypeBool","optional":true,"default":false},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maintenance_assignment_dedicated_host":{"schema":{"dedicated_host_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine_scale_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","optional":true},"install_patches":{"type":"TypeList","optional":true,"elem":{"schema":{"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"reboot":{"type":"TypeString","optional":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","optional":true,"default":"Custom"},"window":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","optional":true},"expiration_date_time":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"start_date_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application":{"schema":{"application_definition_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameter_values":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application_definition":{"schema":{"authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"role_definition_id":{"type":"TypeString","required":true},"service_principal_id":{"type":"TypeString","required":true}}},"minItems":1},"create_ui_definition":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_level":{"type":"TypeString","required":true,"forceNew":true},"main_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"package_enabled":{"type":"TypeBool","optional":true,"default":true},"package_file_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","required":true,"forceNew":true},"disk_access_id":{"type":"TypeString","optional":true},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_iops_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"gallery_image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"forceNew":true},"image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logical_sector_size":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"max_shares":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_access_policy":{"type":"TypeString","optional":true},"on_demand_bursting_enabled":{"type":"TypeBool","optional":true},"os_type":{"type":"TypeString","optional":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_type":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"computed":true},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"upload_size_bytes":{"type":"TypeInt","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk_sas_token":{"schema":{"access_level":{"type":"TypeString","required":true,"forceNew":true},"duration_in_seconds":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"sas_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_managed_lustre_file_system":{"schema":{"encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"hsm_setting":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"import_prefix":{"type":"TypeString","optional":true,"forceNew":true},"logging_container_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","required":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"time_of_day_in_utc":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_capacity_in_tb":{"type":"TypeInt","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"parent_management_group_id":{"type":"TypeString","optional":true,"computed":true},"subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_subscription_association":{"schema":{"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5}},"azurerm_management_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_management_lock":{"schema":{"lock_level":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_creator":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maps_account_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mariadb_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_mariadb_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeString","required":true,"forceNew":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_asset":{"schema":{"alternate_id":{"type":"TypeString","optional":true},"container":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_asset_filter":{"schema":{"asset_id":{"type":"TypeString","required":true,"forceNew":true},"first_quality_bitrate":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_miliseconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","optional":true},"property":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_content_key_policy":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_option":{"type":"TypeSet","required":true,"elem":{"schema":{"clear_key_configuration_enabled":{"type":"TypeBool","optional":true},"fairplay_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"ask":{"type":"TypeString","optional":true},"offline_rental_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"playback_duration_seconds":{"type":"TypeInt","optional":true},"storage_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"pfx":{"type":"TypeString","optional":true},"pfx_password":{"type":"TypeString","optional":true},"rental_and_lease_key_type":{"type":"TypeString","optional":true},"rental_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"open_restriction_enabled":{"type":"TypeBool","optional":true},"playready_configuration_license":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_test_devices":{"type":"TypeBool","optional":true},"begin_date":{"type":"TypeString","optional":true},"content_key_location_from_header_enabled":{"type":"TypeBool","optional":true},"content_key_location_from_key_id":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"grace_period":{"type":"TypeString","optional":true},"license_type":{"type":"TypeString","optional":true},"play_right":{"type":"TypeList","optional":true,"elem":{"schema":{"agc_and_color_stripe_restriction":{"type":"TypeInt","optional":true},"allow_passing_video_content_to_unknown_output":{"type":"TypeString","optional":true},"analog_video_opl":{"type":"TypeInt","optional":true},"compressed_digital_audio_opl":{"type":"TypeInt","optional":true},"compressed_digital_video_opl":{"type":"TypeInt","optional":true},"digital_video_only_content_restriction":{"type":"TypeBool","optional":true},"explicit_analog_television_output_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"best_effort_enforced":{"type":"TypeBool","optional":true,"default":false},"control_bits":{"type":"TypeInt","required":true}}},"maxItems":1},"first_play_expiration":{"type":"TypeString","optional":true},"image_constraint_for_analog_component_video_restriction":{"type":"TypeBool","optional":true},"image_constraint_for_analog_computer_monitor_restriction":{"type":"TypeBool","optional":true},"scms_restriction":{"type":"TypeInt","optional":true},"uncompressed_digital_audio_opl":{"type":"TypeInt","optional":true},"uncompressed_digital_video_opl":{"type":"TypeInt","optional":true}}},"maxItems":1},"relative_begin_date":{"type":"TypeString","optional":true},"relative_expiration_date":{"type":"TypeString","optional":true},"security_level":{"type":"TypeString","optional":true}}}},"playready_response_custom_data":{"type":"TypeString","optional":true},"token_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"alternate_key":{"type":"TypeList","optional":true,"elem":{"schema":{"rsa_token_key_exponent":{"type":"TypeString","optional":true},"rsa_token_key_modulus":{"type":"TypeString","optional":true},"symmetric_token_key":{"type":"TypeString","optional":true},"x509_token_key_raw":{"type":"TypeString","optional":true}}}},"audience":{"type":"TypeString","optional":true},"issuer":{"type":"TypeString","optional":true},"open_id_connect_discovery_document":{"type":"TypeString","optional":true},"primary_rsa_token_key_exponent":{"type":"TypeString","optional":true},"primary_rsa_token_key_modulus":{"type":"TypeString","optional":true},"primary_symmetric_token_key":{"type":"TypeString","optional":true},"primary_x509_token_key_raw":{"type":"TypeString","optional":true},"required_claim":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"token_type":{"type":"TypeString","optional":true}}},"maxItems":1},"widevine_configuration_template":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_job":{"schema":{"description":{"type":"TypeString","optional":true},"input_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1},"priority":{"type":"TypeString","optional":true,"default":"Normal","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"transform_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event":{"schema":{"auto_start_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true},"cross_domain_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"preset_name":{"type":"TypeString","optional":true,"forceNew":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"None"},"type":{"type":"TypeString","optional":true,"default":"None","forceNew":true}}},"maxItems":1},"hostname_prefix":{"type":"TypeString","optional":true},"input":{"type":"TypeList","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"key_frame_interval_duration":{"type":"TypeString","optional":true},"streaming_protocol":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"preview":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"preview_locator":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_options":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transcription_languages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"use_static_hostname":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event_output":{"schema":{"archive_window_duration":{"type":"TypeString","required":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"hls_fragments_per_ts_segment":{"type":"TypeInt","optional":true,"forceNew":true},"live_event_id":{"type":"TypeString","required":true,"forceNew":true},"manifest_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_snap_time_in_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"rewind_window_duration":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account":{"schema":{"encryption":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_key_identifier":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"type":{"type":"TypeString","optional":true,"default":"SystemKey"}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_delivery_access_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true},"ip_allow_list":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"storage_authentication_type":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account_filter":{"schema":{"first_quality_bitrate":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_milliseconds":{"type":"TypeInt","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_endpoint":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"akamai_signature_header_authentication_key":{"type":"TypeList","optional":true,"elem":{"schema":{"base64_key":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","optional":true},"identifier":{"type":"TypeString","optional":true}}}},"ip_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}}}},"maxItems":1},"auto_start_enabled":{"type":"TypeBool","optional":true,"computed":true},"cdn_enabled":{"type":"TypeBool","optional":true},"cdn_profile":{"type":"TypeString","optional":true,"computed":true},"cdn_provider":{"type":"TypeString","optional":true,"computed":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true,"computed":true},"cross_domain_policy":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"custom_host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_cache_age_seconds":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_locator":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content_key_id":{"type":"TypeString","optional":true,"forceNew":true},"label_reference_in_streaming_policy":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","optional":true,"forceNew":true}}}},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"end_time":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"filter_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"forceNew":true},"streaming_locator_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_streaming_policy":{"schema":{"common_encryption_cbcs":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_fairplay":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_persistent_license":{"type":"TypeBool","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"common_encryption_cenc":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"clear_track":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}},"content_key_to_track_mapping":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"track":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}}}}},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_playready":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_attributes":{"type":"TypeString","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_widevine_custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"envelope_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"no_encryption_enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_transform":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"builtin_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"preset_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true},"interleave_output":{"type":"TypeString","optional":true},"key_frame_interval_in_seconds":{"type":"TypeFloat","optional":true},"max_bitrate_bps":{"type":"TypeInt","optional":true},"max_height":{"type":"TypeInt","optional":true},"max_layers":{"type":"TypeInt","optional":true},"min_bitrate_bps":{"type":"TypeInt","optional":true},"min_height":{"type":"TypeInt","optional":true}}},"maxItems":1},"preset_name":{"type":"TypeString","required":true}}},"maxItems":1},"custom_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"codec":{"type":"TypeList","required":true,"elem":{"schema":{"aac_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":128000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"profile":{"type":"TypeString","optional":true,"default":"AacLc"},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"copy_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"copy_video":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"dd_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":192000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"h264_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":23},"entropy_mode":{"type":"TypeString","optional":true,"computed":true},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"rate_control_mode":{"type":"TypeString","optional":true,"default":"ABR"},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"h265_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":28},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"jpg_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"quality":{"type":"TypeInt","optional":true,"default":70},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"sprite_column":{"type":"TypeInt","optional":true,"default":0},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"png_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1}}},"minItems":1},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"deinterlace":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true,"default":"AutoPixelAdaptive"},"parity":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"fade_in":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"fade_out":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"overlay":{"type":"TypeList","optional":true,"elem":{"schema":{"audio":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}},"maxItems":1},"video":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"opacity":{"type":"TypeFloat","optional":true,"default":1},"position":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"start":{"type":"TypeString","optional":true}}},"maxItems":1}}},"minItems":1},"rotation":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"format":{"type":"TypeList","required":true,"elem":{"schema":{"jpg":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"mp4":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1},"png":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"transport_stream":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1}}},"minItems":1}}},"maxItems":1},"face_detector_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"analysis_resolution":{"type":"TypeString","optional":true,"default":"SourceResolution"},"blur_type":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"face_redactor_mode":{"type":"TypeString","optional":true,"default":"Analyze"}}},"maxItems":1},"on_error_action":{"type":"TypeString","optional":true,"default":"StopProcessingJob"},"relative_priority":{"type":"TypeString","optional":true,"default":"Normal"},"video_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"insights_type":{"type":"TypeString","optional":true,"default":"AllInsights"}}},"maxItems":1}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_country_code":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_code":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_data_network_name":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true,"forceNew":true},"network_address_port_translation":{"type":"TypeList","optional":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"pinhole_maximum_number":{"type":"TypeInt","optional":true,"default":65536},"port_range":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum":{"type":"TypeInt","optional":true,"default":49999},"minimum":{"type":"TypeInt","optional":true,"default":1024}}},"maxItems":1},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":120},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":60}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","optional":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"control_plane_access_name":{"type":"TypeString","optional":true},"core_network_technology":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"interoperability_settings_json":{"type":"TypeString","optional":true},"local_diagnostics_access":{"type":"TypeList","required":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","required":true},"https_server_certificate_url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","optional":true},"custom_location_id":{"type":"TypeString","optional":true},"edge_device_id":{"type":"TypeString","optional":true},"stack_hci_cluster_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"sku":{"type":"TypeString","required":true},"software_version":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","optional":true,"default":1440}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pcc_rule":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precedence":{"type":"TypeInt","required":true},"qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true},"guaranteed_bit_rate":{"type":"TypeList","optional":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"Preemptable"},"qos_indicator":{"type":"TypeInt","required":true}}},"maxItems":1},"service_data_flow_template":{"type":"TypeList","required":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","optional":true,"default":true}}}},"service_precedence":{"type":"TypeInt","required":true},"service_qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":9},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true},"preemption_vulnerability":{"type":"TypeString","optional":true},"qos_indicator":{"type":"TypeInt","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim":{"schema":{"authentication_key":{"type":"TypeString","required":true},"device_type":{"type":"TypeString","optional":true},"integrated_circuit_card_identifier":{"type":"TypeString","required":true,"forceNew":true},"international_mobile_subscriber_identity":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operator_key_code":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","optional":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true},"static_ipv4_address":{"type":"TypeString","optional":true}}},"minItems":1},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","optional":true},"registration_timer_in_seconds":{"type":"TypeInt","optional":true,"default":3240},"slice":{"type":"TypeList","required":true,"elem":{"schema":{"data_network":{"type":"TypeList","required":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":0},"allowed_services_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","required":true},"default_session_type":{"type":"TypeString","optional":true,"default":"IPv4"},"max_buffered_packets":{"type":"TypeInt","optional":true,"default":10},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"NotPreemptable"},"qos_indicator":{"type":"TypeInt","required":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}}}},"default_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":180,"read":5,"delete":180,"update":60}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","required":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","optional":true},"slice_service_type":{"type":"TypeInt","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_monitor_aad_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true,"forceNew":true},"eventhub_name":{"type":"TypeString","optional":true,"forceNew":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"role_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"automation_runbook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"is_global_runbook":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true},"runbook_name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true,"default":false},"webhook_resource_id":{"type":"TypeString","required":true}}}},"azure_app_push_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"azure_function_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"http_trigger_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"email_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"event_hub_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","required":true},"ticket_configuration":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","optional":true,"default":"global","forceNew":true},"logic_app_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"callback_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"short_name":{"type":"TypeString","required":true},"sms_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"webhook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","optional":true,"computed":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_action_group":{"schema":{"action_group_id":{"type":"TypeString","required":true},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"suppression":{"type":"TypeList","required":true,"elem":{"schema":{"recurrence_type":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"end_date_utc":{"type":"TypeString","required":true},"recurrence_monthly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"},"minItems":1},"recurrence_weekly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"start_date_utc":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_activity_log_alert":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"caller":{"type":"TypeString","optional":true},"category":{"type":"TypeString","required":true},"level":{"type":"TypeString","optional":true},"levels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operation_name":{"type":"TypeString","optional":true},"recommendation_category":{"type":"TypeString","optional":true},"recommendation_impact":{"type":"TypeString","optional":true},"recommendation_type":{"type":"TypeString","optional":true},"resource_group":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"previous":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reason":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_id":{"type":"TypeString","optional":true},"resource_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_provider":{"type":"TypeString","optional":true},"resource_providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_type":{"type":"TypeString","optional":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"service_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"services":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"status":{"type":"TypeString","optional":true},"statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sub_status":{"type":"TypeString","optional":true},"sub_statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_action_group":{"schema":{"add_action_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_prometheus_rule_group":{"schema":{"cluster_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"interval":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"action_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":5},"alert":{"type":"TypeString","optional":true},"alert_resolution":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_resolved":{"type":"TypeBool","optional":true},"time_to_resolve":{"type":"TypeString","optional":true}}},"maxItems":1},"annotations":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"expression":{"type":"TypeString","required":true},"for":{"type":"TypeString","optional":true},"labels":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"record":{"type":"TypeString","optional":true},"severity":{"type":"TypeInt","optional":true}}}},"rule_group_enabled":{"type":"TypeBool","optional":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_autoscale_setting":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"send_to_subscription_administrator":{"type":"TypeBool","optional":true,"default":false},"send_to_subscription_co_administrator":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"webhook":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_uri":{"type":"TypeString","required":true}}}}}},"maxItems":1},"predictive":{"type":"TypeList","optional":true,"elem":{"schema":{"look_ahead_time":{"type":"TypeString","optional":true},"scale_mode":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"profile":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeList","required":true,"elem":{"schema":{"default":{"type":"TypeInt","required":true},"maximum":{"type":"TypeInt","required":true},"minimum":{"type":"TypeInt","required":true}}},"maxItems":1},"fixed_date":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hours":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"minutes":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","required":true,"elem":{"schema":{"dimensions":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"divide_by_instance_count":{"type":"TypeBool","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","optional":true},"metric_resource_id":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"statistic":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","required":true},"time_window":{"type":"TypeString","required":true}}},"maxItems":1},"scale_action":{"type":"TypeList","required":true,"elem":{"schema":{"cooldown":{"type":"TypeString","required":true},"direction":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":10}}},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_flow":{"type":"TypeList","required":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"output_stream":{"type":"TypeString","optional":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"transform_kql":{"type":"TypeString","optional":true}}},"minItems":1},"data_sources":{"type":"TypeList","optional":true,"elem":{"schema":{"data_import":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","required":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"stream":{"type":"TypeString","required":true}}}}}},"maxItems":1},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"extension_json":{"type":"TypeString","optional":true},"extension_name":{"type":"TypeString","required":true},"input_data_sources":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"iis_log":{"type":"TypeList","optional":true,"elem":{"schema":{"log_directories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"settings":{"type":"TypeList","optional":true,"elem":{"schema":{"text":{"type":"TypeList","required":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"performance_counter":{"type":"TypeList","optional":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"sampling_frequency_in_seconds":{"type":"TypeInt","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"prometheus_forwarder":{"type":"TypeList","optional":true,"elem":{"schema":{"label_include_filter":{"type":"TypeSet","optional":true,"elem":{"schema":{"label":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"syslog":{"type":"TypeList","optional":true,"elem":{"schema":{"facility_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"log_levels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_event_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"x_path_queries":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_firewall_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}}},"monitor_account":{"type":"TypeList","optional":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"storage_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_blob_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_table_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_declaration":{"type":"TypeSet","optional":true,"elem":{"schema":{"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"stream_name":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule_association":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_collection_rule_id":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"default":"configurationAccessEndpoint","forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","optional":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"log_analytics_destination_type":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"metric":{"type":"TypeSet","optional":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_solution_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"locations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"servicebus_rule_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_metric_alert":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"application_insights_web_test_location_availability_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"component_id":{"type":"TypeString","required":true},"failed_location_count":{"type":"TypeInt","required":true},"web_test_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"auto_mitigate":{"type":"TypeBool","optional":true,"default":true},"criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true,"default":false},"threshold":{"type":"TypeFloat","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"dynamic_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"alert_sensitivity":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"evaluation_failure_count":{"type":"TypeInt","optional":true,"default":4},"evaluation_total_count":{"type":"TypeInt","optional":true,"default":4},"ignore_data_before":{"type":"TypeString","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","optional":true,"default":"PT1M"},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"severity":{"type":"TypeInt","optional":true,"default":3},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_location":{"type":"TypeString","optional":true,"description":"The location of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"target_resource_type":{"type":"TypeString","optional":true,"description":"The resource type (e.g. Microsoft.Compute/virtualMachines) of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"window_size":{"type":"TypeString","optional":true,"default":"PT5M"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scope":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scoped_service":{"schema":{"linked_resource_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_group":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","optional":true},"email_subject":{"type":"TypeString","optional":true}}},"maxItems":1},"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":100},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_type":{"type":"TypeString","optional":true,"default":"ResultCount"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"severity":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","optional":true},"time_window":{"type":"TypeInt","required":true},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_column":{"type":"TypeString","optional":true},"metric_trigger_type":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert_v2":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"custom_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"created_with_api_version":{"type":"TypeString","computed":true},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"failing_periods":{"type":"TypeList","optional":true,"elem":{"schema":{"minimum_failing_periods_to_trigger_alert":{"type":"TypeInt","required":true},"number_of_evaluation_periods":{"type":"TypeInt","required":true}}},"maxItems":1},"metric_measure_column":{"type":"TypeString","optional":true},"operator":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true},"resource_id_column":{"type":"TypeString","optional":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation_method":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"evaluation_frequency":{"type":"TypeString","optional":true},"is_a_legacy_log_analytics_rule":{"type":"TypeBool","computed":true},"is_workspace_alerts_storage_configured":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mute_actions_after_alert_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_time_range_override":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"severity":{"type":"TypeInt","required":true},"skip_query_validation":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"window_duration":{"type":"TypeString","required":true},"workspace_alerts_storage_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"Include"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","required":true}}},"maxItems":1},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_smart_detector_alert_rule":{"schema":{"action_group":{"type":"TypeList","required":true,"elem":{"schema":{"email_subject":{"type":"TypeString","optional":true},"ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"webhook_payload":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"detector_type":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"severity":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling_duration":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database":{"schema":{"auto_pause_delay_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"creation_source_database_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"elastic_pool_id":{"type":"TypeString","optional":true},"geo_backup_enabled":{"type":"TypeBool","optional":true,"default":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"ledger_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"computed":true},"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"maintenance_configuration_name":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeInt","optional":true,"computed":true},"min_capacity":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_replica_count":{"type":"TypeInt","optional":true,"computed":true},"read_scale":{"type":"TypeBool","optional":true,"computed":true},"recover_database_id":{"type":"TypeString","optional":true},"restore_dropped_database_id":{"type":"TypeString","optional":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"sample_name":{"type":"TypeString","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backup_interval_in_hours":{"type":"TypeInt","optional":true,"default":12},"retention_days":{"type":"TypeInt","required":true}}},"maxItems":1},"sku_name":{"type":"TypeString","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Geo"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"transparent_data_encryption_enabled":{"type":"TypeBool","optional":true,"default":true},"zone_redundant":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_database_extended_auditing_policy":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database_vulnerability_assessment_rule_baseline":{"schema":{"baseline_name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"baseline_result":{"type":"TypeSet","required":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"database_name":{"type":"TypeString","required":true,"forceNew":true},"rule_id":{"type":"TypeString","required":true,"forceNew":true},"server_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"max_size_bytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_gb":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_database_settings":{"type":"TypeList","required":true,"elem":{"schema":{"max_capacity":{"type":"TypeFloat","required":true},"min_capacity":{"type":"TypeFloat","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"family":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_server":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}},"minItems":1},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_job_agent":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_job_credential":{"schema":{"job_agent_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_managed_database":{"schema":{"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_days":{"type":"TypeInt","optional":true,"default":7}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_mssql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true},"login_username":{"type":"TypeString","required":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_vulnerability_assessment":{"schema":{"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":true},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_outbound_firewall_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"azuread_administrator":{"type":"TypeList","optional":true,"elem":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login_username":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1,"minItems":1},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_network_restriction_enabled":{"type":"TypeBool","optional":true,"default":false},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transparent_data_encryption_key_vault_key_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_server_dns_alias":{"schema":{"dns_record":{"type":"TypeString","computed":true},"mssql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_mssql_server_extended_auditing_policy":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_account_subscription_id":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_microsoft_support_auditing_policy":{"schema":{"blob_storage_endpoint":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_subscription_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"server_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"server_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_machine":{"schema":{"assessment":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"run_immediately":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"monthly_occurrence":{"type":"TypeInt","optional":true},"start_time":{"type":"TypeString","required":true},"weekly_interval":{"type":"TypeInt","optional":true}}},"maxItems":1}}},"maxItems":1},"auto_backup":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_password":{"type":"TypeString","optional":true},"manual_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"full_backup_frequency":{"type":"TypeString","required":true},"full_backup_start_hour":{"type":"TypeInt","required":true},"full_backup_window_in_hours":{"type":"TypeInt","required":true},"log_backup_frequency_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_period_in_days":{"type":"TypeInt","required":true},"storage_account_access_key":{"type":"TypeString","required":true},"storage_blob_endpoint":{"type":"TypeString","required":true},"system_databases_backup_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"auto_patching":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window_duration_in_minutes":{"type":"TypeInt","required":true},"maintenance_window_starting_hour":{"type":"TypeInt","required":true}}},"maxItems":1},"key_vault_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_url":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"service_principal_name":{"type":"TypeString","required":true,"forceNew":true},"service_principal_secret":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"r_services_enabled":{"type":"TypeBool","optional":true},"sql_connectivity_port":{"type":"TypeInt","optional":true,"default":1433},"sql_connectivity_type":{"type":"TypeString","optional":true,"default":"PRIVATE"},"sql_connectivity_update_password":{"type":"TypeString","optional":true},"sql_connectivity_update_username":{"type":"TypeString","optional":true},"sql_instance":{"type":"TypeList","optional":true,"elem":{"schema":{"adhoc_workloads_optimization_enabled":{"type":"TypeBool","optional":true,"default":false},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"instant_file_initialization_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"lock_pages_in_memory_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"max_dop":{"type":"TypeInt","optional":true,"default":0},"max_server_memory_mb":{"type":"TypeInt","optional":true,"default":2147483647},"min_server_memory_mb":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"sql_license_type":{"type":"TypeString","optional":true,"forceNew":true},"sql_virtual_machine_group_id":{"type":"TypeString","optional":true},"storage_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"data_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"disk_type":{"type":"TypeString","required":true},"log_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"storage_workload_type":{"type":"TypeString","required":true},"system_db_on_data_disk_enabled":{"type":"TypeBool","optional":true,"default":false},"temp_db_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"data_file_count":{"type":"TypeInt","optional":true,"default":8},"data_file_growth_in_mb":{"type":"TypeInt","optional":true,"default":512},"data_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"default_file_path":{"type":"TypeString","required":true},"log_file_growth_mb":{"type":"TypeInt","optional":true,"default":512},"log_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"wsfc_domain_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_bootstrap_account_password":{"type":"TypeString","required":true},"cluster_operator_account_password":{"type":"TypeString","required":true},"sql_service_account_password":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_virtual_machine_availability_group_listener":{"schema":{"availability_group_name":{"type":"TypeString","optional":true,"forceNew":true},"load_balancer_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"probe_port":{"type":"TypeInt","required":true,"forceNew":true},"sql_virtual_machine_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"multi_subnet_ip_configuration":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"replica":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"commit":{"type":"TypeString","required":true,"forceNew":true},"failover_mode":{"type":"TypeString","required":true,"forceNew":true},"readable_secondary":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}}}},"sql_virtual_machine_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_mssql_virtual_machine_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_image_offer":{"type":"TypeString","required":true,"forceNew":true},"sql_image_sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wsfc_domain_profile":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_bootstrap_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_operator_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_subnet_type":{"type":"TypeString","required":true,"forceNew":true},"fqdn":{"type":"TypeString","required":true,"forceNew":true},"organizational_unit_path":{"type":"TypeString","optional":true,"forceNew":true},"sql_service_account_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_primary_key":{"type":"TypeString","optional":true},"storage_account_url":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_password":{"type":"TypeString","optional":true},"backup_retention_days":{"type":"TypeInt","optional":true,"default":7},"create_mode":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"iops":{"type":"TypeInt","optional":true,"computed":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server_active_directory_administrator":{"schema":{"identity_id":{"type":"TypeString","required":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_nat_gateway_public_ip_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nat_gateway_public_ip_prefix_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_netapp_account":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"domain":{"type":"TypeString","required":true},"organizational_unit":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"smb_server_name":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"qos_type":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"size_in_tb":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"daily_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"hourly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"monthly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"maxItems":30},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"azure_vmware_data_store_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"create_from_snapshot_resource_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true,"forceNew":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_clients":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"protocols_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"root_access_enabled":{"type":"TypeBool","optional":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true},"unix_read_write":{"type":"TypeBool","optional":true}}},"maxItems":5},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_features":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_style":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","optional":true,"computed":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","optional":true,"computed":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"application_identifier":{"type":"TypeString","required":true,"forceNew":true},"group_description":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","required":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","required":true},"nfsv41_enabled":{"type":"TypeBool","required":true},"root_access_enabled":{"type":"TypeBool","optional":true,"default":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true,"default":false},"unix_read_write":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":5,"minItems":1},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"security_style":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","required":true,"forceNew":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"volume_spec_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":5,"minItems":2}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_network_connection_monitor":{"schema":{"endpoint":{"type":"TypeSet","required":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"coverage_level":{"type":"TypeString","optional":true},"excluded_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"item":{"type":"TypeSet","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"AgentAddress"}}}},"type":{"type":"TypeString","optional":true,"default":"Include"}}},"maxItems":1},"included_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_resource_id":{"type":"TypeString","optional":true,"computed":true},"target_resource_type":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"output_workspace_resource_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"test_configuration":{"type":"TypeSet","required":true,"elem":{"schema":{"http_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"method":{"type":"TypeString","optional":true,"default":"Get"},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","optional":true},"prefer_https":{"type":"TypeBool","optional":true,"default":false},"request_header":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"valid_status_code_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"icmp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"preferred_ip_version":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"success_threshold":{"type":"TypeList","optional":true,"elem":{"schema":{"checks_failed_percent":{"type":"TypeInt","optional":true},"round_trip_time_ms":{"type":"TypeFloat","optional":true}}},"maxItems":1},"tcp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_port_behavior":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"test_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":60}}}},"test_group":{"type":"TypeSet","required":true,"elem":{"schema":{"destination_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"source_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"test_configuration_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_function_azure_traffic_collector":{"schema":{"collector_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"internal_dns_name_label":{"type":"TypeString","optional":true,"computed":true},"internal_domain_name_suffix":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"computed":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_gateway_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_nat_rule_association":{"schema":{"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_security_group_association":{"schema":{"network_interface_id":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager":{"schema":{"cross_tenant_scopes":{"type":"TypeList","computed":true,"elem":{"schema":{"management_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subscriptions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","required":true,"elem":{"schema":{"management_group_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"scope_accesses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule":{"schema":{"action":{"type":"TypeString","required":true},"admin_rule_collection_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"destination_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"source_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule_collection":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"security_admin_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_connectivity_configuration":{"schema":{"applies_to_group":{"type":"TypeList","required":true,"elem":{"schema":{"global_mesh_enabled":{"type":"TypeBool","optional":true},"group_connectivity":{"type":"TypeString","required":true},"network_group_id":{"type":"TypeString","required":true},"use_hub_gateway":{"type":"TypeBool","optional":true}}}},"connectivity_topology":{"type":"TypeString","required":true},"delete_existing_peering_enabled":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"global_mesh_enabled":{"type":"TypeBool","optional":true},"hub":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true},"resource_type":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_deployment":{"schema":{"configuration_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"scope_access":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_network_manager_management_group_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_scope_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"target_scope_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_security_admin_configuration":{"schema":{"apply_on_network_intent_policy_based_services":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_static_member":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_id":{"type":"TypeString","required":true,"forceNew":true},"region":{"type":"TypeString","computed":true},"target_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_network_manager_subscription_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_profile":{"schema":{"container_network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}},"maxItems":1},"container_network_interface_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_rule":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher_flow_log":{"schema":{"enabled":{"type":"TypeBool","required":true},"location":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"storage_account_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"interval_in_minutes":{"type":"TypeInt","optional":true,"default":60},"workspace_id":{"type":"TypeString","required":true},"workspace_region":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}},"maxItems":1},"version":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_new_relic_monitor":{"schema":{"account_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"account_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ingestion_key":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"organization_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","optional":true,"default":"MONTHLY","forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"newrelic-pay-as-you-go-free-live","forceNew":true},"usage_type":{"type":"TypeString","optional":true,"default":"PAYG","forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nginx_certificate":{"schema":{"certificate_virtual_path":{"type":"TypeString","required":true},"key_vault_secret_id":{"type":"TypeString","required":true},"key_virtual_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_nginx_configuration":{"schema":{"config_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true},"package_data":{"type":"TypeString","optional":true},"protected_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"root_file":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_nginx_deployment":{"schema":{"diagnose_support_enabled":{"type":"TypeBool","optional":true},"frontend_private":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"frontend_public":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"ip_address":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logging_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}}},"managed_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}}},"nginx_version":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"application_mode":{"type":"TypeString","required":true},"bundle_id":{"type":"TypeString","required":true},"key_id":{"type":"TypeString","required":true},"team_id":{"type":"TypeString","required":true},"token":{"type":"TypeString","required":true}}},"maxItems":1},"gcm_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"notification_hub_name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_contact":{"schema":{"contact_profile_id":{"type":"TypeString","required":true,"forceNew":true},"ground_station_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"reservation_end_time":{"type":"TypeString","required":true,"forceNew":true},"reservation_start_time":{"type":"TypeString","required":true,"forceNew":true},"spacecraft_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_orbital_contact_profile":{"schema":{"auto_tracking":{"type":"TypeString","required":true},"event_hub_uri":{"type":"TypeString","optional":true},"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"channels":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"demodulation_configuration":{"type":"TypeString","optional":true},"end_point":{"type":"TypeSet","required":true,"elem":{"schema":{"end_point_name":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","optional":true},"port":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"modulation_configuration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_elevation_degrees":{"type":"TypeFloat","optional":true},"minimum_variable_contact_duration":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_spacecraft":{"schema":{"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"norad_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title_line":{"type":"TypeString","required":true},"two_line_elements":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version_enabled":{"type":"TypeBool","optional":true,"default":true},"extensions_to_provision_after_vm_creation":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"failure_suppression_enabled":{"type":"TypeBool","optional":true},"force_extension_execution_on_change":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"computed":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"os_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_data":{"type":"TypeString","optional":true},"linux_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"windows_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"timezone":{"type":"TypeString","optional":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}}}},"maxItems":1}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"priority_mix":{"type":"TypeList","optional":true,"elem":{"schema":{"base_regular_count":{"type":"TypeInt","optional":true,"default":0},"regular_percentage_above_base":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"computed":true},"sku_name":{"type":"TypeString","optional":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"user_data_base64":{"type":"TypeString","optional":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","optional":true},"anti_virus_profile":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"dns_subscription":{"type":"TypeString","optional":true},"file_blocking_profile":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"url_filtering_profile":{"type":"TypeString","optional":true},"vulnerability_profile":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_certificate":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"self_signed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_fqdn_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"fully_qualified_domain_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_outbound_trust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_outbound_untrust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_prefix_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prefix_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_rule":{"schema":{"action":{"type":"TypeString","required":true},"applications":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"audit_comment":{"type":"TypeString","optional":true},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1,"minItems":1},"decryption_rule_type":{"type":"TypeString","optional":true,"default":"None"},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_fqdn_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"inspection_certificate_id":{"type":"TypeString","optional":true},"logging_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"negate_destination":{"type":"TypeBool","optional":true,"default":false},"negate_source":{"type":"TypeBool","optional":true,"default":false},"priority":{"type":"TypeInt","required":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"application-default"},"protocol_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_palo_alto_virtual_network_appliance":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_active_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"The ticket details.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_eligible_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the eligible role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this eligible role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"Ticket details relating to the assignment.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_point_to_site_vpn_gateway":{"schema":{"connection_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true},"route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"elem":{"schema":{"ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"vpn_client_address_pool":{"type":"TypeList","required":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference_internet_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"scale_unit":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_rule":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","required":true,"forceNew":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_definition_group":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","optional":true},"category":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"policy_definition_reference":{"type":"TypeList","required":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true},"policy_group_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","optional":true,"computed":true}}}},"policy_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"configuration":{"type":"TypeList","required":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true},"content_hash":{"type":"TypeString","optional":true,"computed":true},"content_uri":{"type":"TypeString","optional":true,"computed":true},"parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_tenant_configuration":{"schema":{"private_markdown_storage_enforced":{"type":"TypeBool","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true},"administrator_password":{"type":"TypeString","optional":true},"authentication":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory_auth_enabled":{"type":"TypeBool","optional":true,"default":false},"password_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true},"customer_managed_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replication_role":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_flexible_server_active_directory_administrator":{"schema":{"object_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_database":{"schema":{"charset":{"type":"TypeString","optional":true,"default":"UTF8","forceNew":true},"collation":{"type":"TypeString","optional":true,"default":"en_US.utf8","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_postgresql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_powerbi_embedded":{"schema":{"administrators":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","optional":true,"default":"Gen1","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"target_dns_servers":{"type":"TypeList","required":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"port":{"type":"TypeInt","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","required":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"subnet_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":10},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_zone_name":{"type":"TypeString","required":true,"forceNew":true},"registration_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_endpoint":{"schema":{"custom_dns_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"custom_network_interface_name":{"type":"TypeString","optional":true,"forceNew":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"member_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_dns_zone_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"record_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"type":{"type":"TypeString","computed":true}}}}}}},"private_dns_zone_group":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_zone_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"private_service_connection":{"type":"TypeList","required":true,"elem":{"schema":{"is_manual_connection":{"type":"TypeBool","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_connection_resource_alias":{"type":"TypeString","optional":true,"forceNew":true},"private_connection_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"request_message":{"type":"TypeString","optional":true},"subresource_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_private_endpoint_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","optional":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary":{"type":"TypeBool","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":8},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_proximity_placement_group":{"schema":{"allowed_vm_sizes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ddos_protection_mode":{"type":"TypeString","optional":true,"default":"VirtualNetworkInherited"},"ddos_protection_plan_id":{"type":"TypeString","optional":true},"domain_name_label":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_fqdn":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"prefix_length":{"type":"TypeInt","optional":true,"default":28,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_purview_account":{"schema":{"atlas_kafka_endpoint_primary_connection_string":{"type":"TypeString","computed":true},"atlas_kafka_endpoint_secondary_connection_string":{"type":"TypeString","computed":true},"catalog_endpoint":{"type":"TypeString","computed":true},"guardian_endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_resources":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_namespace_id":{"type":"TypeString","computed":true},"resource_group_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scan_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_recovery_services_vault":{"schema":{"classic_vmware_replication_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"cross_region_restore_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"infrastructure_encryption_enabled":{"type":"TypeBool","required":true},"key_id":{"type":"TypeString","required":true},"use_system_assigned_identity":{"type":"TypeBool","optional":true,"default":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"monitoring":{"type":"TypeList","optional":true,"elem":{"schema":{"alerts_for_all_job_failures_enabled":{"type":"TypeBool","optional":true,"default":true},"alerts_for_critical_operation_failures_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"soft_delete_enabled":{"type":"TypeBool","optional":true,"default":true},"storage_mode_type":{"type":"TypeString","optional":true,"default":"GeoRedundant"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":30,"update":60}},"azurerm_recovery_services_vault_resource_guard_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_guard_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","required":true},"enable_non_ssl_port":{"type":"TypeBool","optional":true,"default":false},"family":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"patch_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window":{"type":"TypeString","optional":true,"default":"PT5H"},"start_hour_utc":{"type":"TypeInt","optional":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"redis_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","optional":true},"aof_storage_connection_string_0":{"type":"TypeString","optional":true},"aof_storage_connection_string_1":{"type":"TypeString","optional":true},"enable_authentication":{"type":"TypeBool","optional":true,"default":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_delta":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_policy":{"type":"TypeString","optional":true,"default":"volatile-lru"},"maxmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"notify_keyspace_events":{"type":"TypeString","optional":true},"rdb_backup_enabled":{"type":"TypeBool","optional":true},"rdb_backup_frequency":{"type":"TypeInt","optional":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","optional":true},"rdb_storage_connection_string":{"type":"TypeString","optional":true}}},"maxItems":1},"redis_version":{"type":"TypeString","optional":true,"computed":true},"replicas_per_master":{"type":"TypeInt","optional":true,"computed":true},"replicas_per_primary":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_redis_enterprise_cluster":{"schema":{"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_enterprise_database":{"schema":{"client_protocol":{"type":"TypeString","optional":true,"default":"Encrypted","forceNew":true},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"clustering_policy":{"type":"TypeString","optional":true,"default":"OSSCluster","forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"default":"VolatileLRU","forceNew":true},"linked_database_group_nickname":{"type":"TypeString","optional":true,"forceNew":true},"linked_database_id":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"module":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"args":{"type":"TypeString","optional":true,"default":"","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}}},"maxItems":4},"name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"port":{"type":"TypeInt","optional":true,"default":10000,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_firewall_rule":{"schema":{"end_ip":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_linked_server":{"schema":{"linked_redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"linked_redis_cache_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_role":{"type":"TypeString","required":true,"forceNew":true},"target_redis_cache_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_relay_hybrid_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"relay_namespace_name":{"type":"TypeString","required":true,"forceNew":true},"requires_client_authorization":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_hybrid_connection_authorization_rule":{"schema":{"hybrid_connection_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_namespace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"metric_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_relay_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_cli":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_power_shell":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_by":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_resource_group_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_resource_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_provider_registration":{"schema":{"feature":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"registered":{"type":"TypeBool","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":30,"update":120}},"azurerm_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_resource_id":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":60}},"azurerm_route":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"communities":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rule_type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_map":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeList","required":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true}}}},"match_criterion":{"type":"TypeList","optional":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_condition":{"type":"TypeString","required":true},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"next_step_if_matched":{"type":"TypeString","optional":true,"default":"Unknown"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_server":{"schema":{"branch_to_branch_traffic_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_route_server_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"route_server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_route_table":{"schema":{"disable_bgp_route_propagation":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_search_service":{"schema":{"allowed_ips":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_failure_mode":{"type":"TypeString","optional":true},"customer_managed_key_enforcement_enabled":{"type":"TypeBool","optional":true,"default":false},"hosting_mode":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","optional":true,"default":1},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","optional":true,"default":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_search_shared_private_link_service":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"search_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_assessment":{"schema":{"additional_data":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"assessment_policy_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeList","required":true,"elem":{"schema":{"cause":{"type":"TypeString","optional":true},"code":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_assessment_policy":{"schema":{"categories":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"implementation_effort":{"type":"TypeString","optional":true},"name":{"type":"TypeString","computed":true},"remediation_description":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true,"default":"Medium"},"threats":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"user_impact":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_auto_provisioning":{"schema":{"auto_provision":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_automation":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","required":true},"trigger_url":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"source":{"type":"TypeList","required":true,"elem":{"schema":{"event_source":{"type":"TypeString","required":true},"rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule":{"type":"TypeList","required":true,"elem":{"schema":{"expected_value":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"property_path":{"type":"TypeString","required":true},"property_type":{"type":"TypeString","required":true}}}}}}}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_contact":{"schema":{"alert_notifications":{"type":"TypeBool","required":true},"alerts_to_admins":{"type":"TypeBool","required":true},"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"default":"default1"},"phone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_server_vulnerability_assessment":{"schema":{"hybrid_machine_id":{"type":"TypeString","optional":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_server_vulnerability_assessment_virtual_machine":{"schema":{"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_setting":{"schema":{"enabled":{"type":"TypeBool","required":true},"setting_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":10,"read":5,"delete":10,"update":10}},"azurerm_security_center_subscription_pricing":{"schema":{"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_extension_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"resource_type":{"type":"TypeString","optional":true,"default":"VirtualMachines"},"subplan":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_workspace":{"schema":{"scope":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sentinel_alert_rule_anomaly_built_in":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_anomaly_duplicate":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"built_in_rule_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"is_default_settings":{"type":"TypeBool","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true},"prioritized_exclude_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prioritize":{"type":"TypeString","optional":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_fusion":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"sub_type":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"severities_allowed":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_machine_learning_behavior_analytics":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_ms_security_incident":{"schema":{"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"display_name_exclude_filter":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name_filter":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_filter":{"type":"TypeString","required":true},"severity_filter":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_nrt":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident_enabled":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_scheduled":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"group_by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_frequency":{"type":"TypeString","optional":true,"default":"PT5H"},"query_period":{"type":"TypeString","optional":true,"default":"PT5H"},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","optional":true,"default":"GreaterThan"},"trigger_threshold":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_threat_intelligence":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_automation_rule":{"schema":{"action_incident":{"type":"TypeList","optional":true,"elem":{"schema":{"classification":{"type":"TypeString","optional":true},"classification_comment":{"type":"TypeString","optional":true},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"owner_id":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true},"status":{"type":"TypeString","optional":true}}}},"action_playbook":{"type":"TypeList","optional":true,"elem":{"schema":{"logic_app_id":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"condition":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"condition_json":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiration":{"type":"TypeString","optional":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true},"triggers_on":{"type":"TypeString","optional":true,"default":"Incidents"},"triggers_when":{"type":"TypeString","optional":true,"default":"Created"}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_sentinel_data_connector_aws_cloud_trail":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_aws_s3":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"destination_table":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sqs_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_azure_active_directory":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_security_center":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_dynamics_365":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_iot":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_cloud_app_security":{"schema":{"alerts_enabled":{"type":"TypeBool","optional":true,"default":true},"discovery_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_microsoft_defender_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_intelligence":{"schema":{"bing_safety_phishing_url_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_emerging_threat_feed_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_365":{"schema":{"exchange_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sharepoint_enabled":{"type":"TypeBool","optional":true,"default":true},"teams_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_office_365_project":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_atp":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_irm":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_power_bi":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence_taxii":{"schema":{"api_root_url":{"type":"TypeString","required":true},"collection_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z"},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"polling_frequency":{"type":"TypeString","optional":true,"default":"OnceAnHour"},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_log_analytics_workspace_onboarding":{"schema":{"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_metadata":{"schema":{"author":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"domains":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verticals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content_id":{"type":"TypeString","required":true},"content_schema_version":{"type":"TypeString","optional":true,"default":"2.0"},"custom_version":{"type":"TypeString","optional":true},"dependency":{"type":"TypeString","optional":true},"first_publish_date":{"type":"TypeString","optional":true},"icon_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"last_publish_date":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true},"preview_images":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"preview_images_dark":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"threat_analysis_tactics":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_analysis_techniques":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_threat_intelligence_indicator":{"schema":{"confidence":{"type":"TypeInt","optional":true,"default":-1},"created_by":{"type":"TypeString","optional":true},"created_on":{"type":"TypeString","computed":true},"defanged":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"extension":{"type":"TypeString","optional":true,"computed":true},"external_id":{"type":"TypeString","computed":true},"external_last_updated_time_utc":{"type":"TypeString","computed":true},"external_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"hashes":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"source_name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}}},"granular_marking":{"type":"TypeList","optional":true,"elem":{"schema":{"language":{"type":"TypeString","optional":true},"marking_ref":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"guid":{"type":"TypeString","computed":true},"indicator_type":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kill_chain_phase":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true}}}},"language":{"type":"TypeString","optional":true},"last_updated_time_utc":{"type":"TypeString","computed":true},"object_marking_refs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parsed_pattern":{"type":"TypeList","computed":true,"elem":{"schema":{"pattern_type_key":{"type":"TypeString","computed":true},"pattern_type_values":{"type":"TypeList","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true},"value_type":{"type":"TypeString","computed":true}}}}}}},"pattern":{"type":"TypeString","required":true},"pattern_type":{"type":"TypeString","required":true},"pattern_version":{"type":"TypeString","optional":true},"revoked":{"type":"TypeBool","optional":true,"default":false},"source":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"validate_from_utc":{"type":"TypeString","required":true},"validate_until_utc":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_watchlist":{"schema":{"default_duration":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"item_search_key":{"type":"TypeString","required":true,"forceNew":true},"labels":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_watchlist_item":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"properties":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"watchlist_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_cluster":{"schema":{"add_on_features":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"azure_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"client_certificate_common_name":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","required":true},"is_admin":{"type":"TypeBool","required":true},"issuer_thumbprint":{"type":"TypeString","optional":true}}}},"client_certificate_thumbprint":{"type":"TypeList","optional":true,"elem":{"schema":{"is_admin":{"type":"TypeBool","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"cluster_code_version":{"type":"TypeString","optional":true,"computed":true},"cluster_endpoint":{"type":"TypeString","computed":true},"diagnostics_config":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_endpoint":{"type":"TypeString","required":true},"protected_account_key_name":{"type":"TypeString","required":true},"queue_endpoint":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"fabric_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_endpoint":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","required":true,"elem":{"schema":{"application_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"client_endpoint_port":{"type":"TypeInt","required":true},"durability_level":{"type":"TypeString","optional":true,"default":"Bronze"},"ephemeral_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"http_endpoint_port":{"type":"TypeInt","required":true},"instance_count":{"type":"TypeInt","required":true},"is_primary":{"type":"TypeBool","required":true},"is_stateless":{"type":"TypeBool","optional":true},"multiple_availability_zones":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reverse_proxy_endpoint_port":{"type":"TypeInt","optional":true}}}},"reliability_level":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_proxy_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"reverse_proxy_certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"service_fabric_zonal_upgrade_mode":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_mode":{"type":"TypeString","required":true},"upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"delta_health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_delta_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0},"max_upgrade_domain_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"force_restart_enabled":{"type":"TypeBool","optional":true},"health_check_retry_timeout":{"type":"TypeString","optional":true,"default":"00:45:00"},"health_check_stable_duration":{"type":"TypeString","optional":true,"default":"00:01:00"},"health_check_wait_duration":{"type":"TypeString","optional":true,"default":"00:00:30"},"health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"upgrade_domain_timeout":{"type":"TypeString","optional":true,"default":"02:00:00"},"upgrade_replica_set_check_timeout":{"type":"TypeString","optional":true,"default":"10675199.02:48:05.4775807"},"upgrade_timeout":{"type":"TypeString","optional":true,"default":"12:00:00"}}},"maxItems":1},"vm_image":{"type":"TypeString","required":true,"forceNew":true},"vmss_zonal_upgrade_mode":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_managed_cluster":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","optional":true},"thumbprint":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"backup_service_enabled":{"type":"TypeBool","optional":true},"client_connection_port":{"type":"TypeInt","required":true},"custom_fabric_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","required":true},"section":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dns_name":{"type":"TypeString","optional":true,"computed":true},"dns_service_enabled":{"type":"TypeBool","optional":true},"http_gateway_port":{"type":"TypeInt","required":true},"lb_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true},"frontend_port":{"type":"TypeInt","required":true},"probe_protocol":{"type":"TypeString","required":true},"probe_request_path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","optional":true,"elem":{"schema":{"application_port_range":{"type":"TypeString","required":true},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"data_disk_size_gb":{"type":"TypeInt","required":true},"data_disk_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"},"ephemeral_port_range":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"multiple_placement_groups_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"primary":{"type":"TypeBool","optional":true},"stateless":{"type":"TypeBool","optional":true},"vm_image_offer":{"type":"TypeString","required":true},"vm_image_publisher":{"type":"TypeString","required":true},"vm_image_sku":{"type":"TypeString","required":true},"vm_image_version":{"type":"TypeString","required":true},"vm_instance_count":{"type":"TypeInt","required":true},"vm_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"certificates":{"type":"TypeList","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}}},"vault_id":{"type":"TypeString","required":true}}}},"vm_size":{"type":"TypeString","required":true}}}},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_wave":{"type":"TypeString","optional":true,"default":"Wave0"},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling_enabled":{"type":"TypeBool","optional":true,"default":false},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","optional":true,"computed":true},"zone_balancing_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":0},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_id":{"type":"TypeString","required":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_network_rule_set":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true,"default":false},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true,"default":true},"enable_express":{"type":"TypeBool","optional":true,"default":false},"enable_partitioning":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"client_scoped_subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"forceNew":true},"is_client_scoped_subscription_durable":{"type":"TypeBool","computed":true},"is_client_scoped_subscription_shareable":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"client_scoped_subscription_enabled":{"type":"TypeBool","optional":true,"default":false},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","optional":true,"default":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription_rule":{"schema":{"action":{"type":"TypeString","optional":true},"correlation_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","optional":true},"correlation_id":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"message_id":{"type":"TypeString","optional":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reply_to":{"type":"TypeString","optional":true},"reply_to_session_id":{"type":"TypeString","optional":true},"session_id":{"type":"TypeString","optional":true},"to":{"type":"TypeString","optional":true}}},"maxItems":1},"filter_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_filter":{"type":"TypeString","optional":true},"sql_filter_compatibility_level":{"type":"TypeInt","computed":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"enable_express":{"type":"TypeBool","optional":true},"enable_partitioning":{"type":"TypeBool","optional":true,"forceNew":true},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"support_ordering":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image":{"schema":{"accelerated_network_support_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"architecture":{"type":"TypeString","optional":true,"default":"x64","forceNew":true},"confidential_vm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"confidential_vm_supported":{"type":"TypeBool","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"disk_types_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true,"forceNew":true},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"identifier":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"max_recommended_vcpu_count":{"type":"TypeInt","optional":true},"min_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"min_recommended_vcpu_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true,"forceNew":true},"purchase_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_note_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"specialized":{"type":"TypeBool","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"community_gallery":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"eula":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"prefix":{"type":"TypeString","required":true,"forceNew":true},"publisher_email":{"type":"TypeString","required":true,"forceNew":true},"publisher_uri":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"permission":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_version":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"image_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_image_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk_snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"replication_mode":{"type":"TypeString","optional":true,"default":"Full","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"hostname":{"type":"TypeString","computed":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"live_trace_enabled":{"type":"TypeBool","optional":true,"default":false},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":30},"service_mode":{"type":"TypeString","optional":true,"default":"Default"},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"upstream_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"category_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"event_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hub_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_network_acl":{"schema":{"default_action":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"sub_resource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"source_network_name":{"type":"TypeString","required":true,"forceNew":true},"source_system_center_virtual_machine_manager_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_site_recovery_hyperv_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_hours":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_hours":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"replication_interval_in_seconds":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_replication_policy_association":{"schema":{"hyperv_site_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_site_recovery_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_network_id":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container_mapping":{"schema":{"automatic_update":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true},"automation_account_id":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_source_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_target_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replicated_vm":{"schema":{"managed_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_id":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_disk_encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","configMode":"Auto","required":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_encryption_key":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"target_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"target_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_replica_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true}}}},"multi_vm_group_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"failover_test_public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"failover_test_static_ip":{"type":"TypeString","optional":true,"computed":true},"failover_test_subnet_name":{"type":"TypeString","optional":true,"computed":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"recovery_public_ip_address_id":{"type":"TypeString","optional":true},"source_network_interface_id":{"type":"TypeString","optional":true,"computed":true},"target_static_ip":{"type":"TypeString","optional":true},"target_subnet_name":{"type":"TypeString","optional":true}}}},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","required":true,"forceNew":true},"target_availability_set_id":{"type":"TypeString","optional":true},"target_boot_diagnostic_storage_account_id":{"type":"TypeString","optional":true},"target_capacity_reservation_group_id":{"type":"TypeString","optional":true},"target_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"target_network_id":{"type":"TypeString","optional":true,"computed":true},"target_proximity_placement_group_id":{"type":"TypeString","optional":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"target_virtual_machine_scale_set_id":{"type":"TypeString","optional":true},"target_zone":{"type":"TypeString","optional":true,"forceNew":true},"test_network_id":{"type":"TypeString","optional":true,"computed":true},"unmanaged_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_uri":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}}}}},"timeouts":{"create":180,"read":5,"delete":80,"update":80}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"primary_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_zone":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"boot_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"failover_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_group":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"minItems":3},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"shutdown_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"source_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_services_vault_hyperv_site":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":180}},"azurerm_site_recovery_vmware_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_vmware_replication_policy_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_snapshot":{"schema":{"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"incremental_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_accelerator":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_active_deployment":{"schema":{"deployment_name":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_api_portal":{"schema":{"gateway_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"https_only_enabled":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_spring_cloud_api_portal_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_api_portal_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"custom_persistent_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"mount_path":{"type":"TypeString","required":true},"read_only_enabled":{"type":"TypeBool","optional":true,"default":false},"share_name":{"type":"TypeString","required":true},"storage_name":{"type":"TypeString","required":true}}},"minItems":1},"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backend_protocol":{"type":"TypeString","optional":true,"default":"Default"},"read_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":300},"send_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":60},"session_affinity":{"type":"TypeString","optional":true,"default":"None"},"session_cookie_max_age":{"type":"TypeInt","optional":true}}},"maxItems":1},"is_public":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"persistent_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","optional":true,"default":"/persistent"},"size_in_gb":{"type":"TypeInt","required":true}}},"maxItems":1},"public_endpoint_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"tls_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_cosmosdb_association":{"schema":{"api_type":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_access_key":{"type":"TypeString","required":true},"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_cassandra_keyspace_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_database_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_graph_name":{"type":"TypeString","optional":true},"cosmosdb_mongo_database_name":{"type":"TypeString","optional":true},"cosmosdb_sql_database_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_mysql_association":{"schema":{"database_name":{"type":"TypeString","required":true},"mysql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_redis_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"redis_access_key":{"type":"TypeString","required":true},"redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_application_live_view":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_build_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"build_result_id":{"type":"TypeString","required":true},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_build_pack_binding":{"schema":{"binding_type":{"type":"TypeString","optional":true},"launch":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_builder_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_builder":{"schema":{"build_pack_group":{"type":"TypeSet","required":true,"elem":{"schema":{"build_pack_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"stack":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_certificate":{"schema":{"certificate_content":{"type":"TypeString","optional":true,"forceNew":true},"exclude_private_key":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_configuration_service":{"schema":{"generation":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"ca_certificate_id":{"type":"TypeString","optional":true},"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"label":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"patterns":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"private_key":{"type":"TypeString","optional":true},"search_paths":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"strict_host_key_checking":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}}}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_connection":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"spring_cloud_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_container_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"arguments":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"commands":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"language_framework":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"server":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_custom_domain":{"schema":{"certificate_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_customized_accelerator":{"schema":{"accelerator_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"git_repository":{"type":"TypeList","required":true,"elem":{"schema":{"basic_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"ca_certificate_id":{"type":"TypeString","optional":true},"commit":{"type":"TypeString","optional":true},"git_tag":{"type":"TypeString","optional":true},"interval_in_seconds":{"type":"TypeInt","optional":true},"ssh_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}}},"maxItems":1},"icon_url":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_accelerator_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_dev_tool_portal":{"schema":{"application_accelerator_enabled":{"type":"TypeBool","optional":true,"computed":true},"application_live_view_enabled":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"metadata_url":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway":{"schema":{"api_metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"documentation_url":{"type":"TypeString","optional":true},"server_url":{"type":"TypeString","optional":true},"title":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"application_performance_monitoring_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verification_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origin_patterns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","optional":true},"exposed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"max_age_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"https_only":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"default":"1"},"memory":{"type":"TypeString","optional":true,"default":"2Gi"}}},"maxItems":1},"sensitive_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_route_config":{"schema":{"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"open_api":{"type":"TypeList","optional":true,"elem":{"schema":{"uri":{"type":"TypeString","optional":true}}},"maxItems":1},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeString","optional":true,"default":"HTTP"},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"classification_tags":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"sso_validation_enabled":{"type":"TypeBool","optional":true},"title":{"type":"TypeString","optional":true},"token_relay":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","optional":true}}}},"spring_cloud_app_id":{"type":"TypeString","optional":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"sso_validation_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_java_deployment":{"schema":{"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"jvm_options":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"default":"Java_8"},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_service":{"schema":{"build_agent_pool_size":{"type":"TypeString","optional":true},"config_server_git_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"pattern":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"container_registry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"server":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"default_build_service":{"type":"TypeList","optional":true,"elem":{"schema":{"container_registry_name":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"log_stream_public_endpoint_enabled":{"type":"TypeBool","optional":true},"marketplace":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"plan":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"app_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"app_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"cidr_ranges":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":3},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"read_timeout_seconds":{"type":"TypeInt","optional":true},"service_runtime_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_runtime_subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_registry_enabled":{"type":"TypeBool","optional":true},"service_registry_id":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"S0","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"sample_rate":{"type":"TypeFloat","optional":true,"default":10}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_date":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","optional":true,"computed":true},"elastic_pool_name":{"type":"TypeString","optional":true,"computed":true},"encryption":{"type":"TypeString","computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"operation_mode":{"type":"TypeString","optional":true,"default":"Import"},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_size_bytes":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_scale":{"type":"TypeBool","optional":true,"default":false},"requested_service_objective_id":{"type":"TypeString","optional":true,"computed":true},"requested_service_objective_name":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"source_database_deletion_date":{"type":"TypeString","optional":true,"computed":true},"source_database_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_elasticpool":{"schema":{"creation_date":{"type":"TypeString","computed":true},"db_dtu_max":{"type":"TypeInt","optional":true,"computed":true},"db_dtu_min":{"type":"TypeInt","optional":true,"computed":true},"dtu":{"type":"TypeInt","required":true},"edition":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_size":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_servers":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_database":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"default":false},"login":{"type":"TypeString","required":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"computed":true},"email_addresses":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ssh_public_key":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_stack_hci_cluster":{"schema":{"automanage_configuration_id":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site":{"schema":{"api_key":{"type":"TypeString","computed":true},"default_host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_size":{"type":"TypeString","optional":true,"default":"Free"},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"static_site_id":{"type":"TypeString","required":true,"forceNew":true},"validation_token":{"type":"TypeString","computed":true},"validation_type":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"account_kind":{"type":"TypeString","optional":true,"default":"StorageV2"},"account_replication_type":{"type":"TypeString","required":true},"account_tier":{"type":"TypeString","required":true,"forceNew":true},"allow_nested_items_to_be_public":{"type":"TypeBool","optional":true,"default":true},"allowed_copy_scope":{"type":"TypeString","optional":true},"azure_files_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","required":true},"domain_sid":{"type":"TypeString","required":true},"forest_name":{"type":"TypeString","required":true},"netbios_domain_name":{"type":"TypeString","required":true},"storage_sid":{"type":"TypeString","required":true}}},"maxItems":1},"directory_type":{"type":"TypeString","required":true}}},"maxItems":1},"blob_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"change_feed_enabled":{"type":"TypeBool","optional":true,"default":false},"change_feed_retention_in_days":{"type":"TypeInt","optional":true},"container_delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"default_service_version":{"type":"TypeString","optional":true,"computed":true},"delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"last_access_time_enabled":{"type":"TypeBool","optional":true,"default":false},"restore_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true}}},"maxItems":1},"versioning_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cross_tenant_replication_enabled":{"type":"TypeBool","optional":true,"default":true},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"use_subdomain":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_to_oauth_authentication":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_https_traffic_only":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_protected_append_writes":{"type":"TypeBool","required":true},"period_since_creation_in_days":{"type":"TypeInt","required":true},"state":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"is_hns_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"large_file_share_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"default":"TLS1_2"},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"nfsv3_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"queue_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"queue_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"hour_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"logging":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"delete":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"minute_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"choice":{"type":"TypeString","optional":true,"default":"MicrosoftRouting"},"publish_internet_endpoints":{"type":"TypeBool","optional":true,"default":false},"publish_microsoft_endpoints":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sas_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_action":{"type":"TypeString","optional":true,"default":"Log"},"expiration_period":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"sftp_enabled":{"type":"TypeBool","optional":true,"default":false},"share_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"smb":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"channel_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"kerberos_ticket_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"multichannel_enabled":{"type":"TypeBool","optional":true,"default":false},"versions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"shared_access_key_enabled":{"type":"TypeBool","optional":true,"default":true},"static_website":{"type":"TypeList","optional":true,"elem":{"schema":{"error_404_document":{"type":"TypeString","optional":true},"index_document":{"type":"TypeString","optional":true}}},"maxItems":1},"table_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_account_customer_managed_key":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_local_user":{"schema":{"home_directory":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","computed":true},"permission_scope":{"type":"TypeList","optional":true,"elem":{"schema":{"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"create":{"type":"TypeBool","optional":true,"default":false},"delete":{"type":"TypeBool","optional":true,"default":false},"list":{"type":"TypeBool","optional":true,"default":false},"read":{"type":"TypeBool","optional":true,"default":false},"write":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_name":{"type":"TypeString","required":true},"service":{"type":"TypeString","required":true}}}},"sid":{"type":"TypeString","computed":true},"ssh_authorized_key":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true}}}},"ssh_key_enabled":{"type":"TypeBool","optional":true,"default":false},"ssh_password_enabled":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_network_rules":{"schema":{"bypass":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_subnet_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"cache_control":{"type":"TypeString","optional":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallelism":{"type":"TypeInt","optional":true,"default":8,"forceNew":true},"size":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"source_content":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_blob_inventory_policy":{"schema":{"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"exclude_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"include_blob_versions":{"type":"TypeBool","optional":true,"default":false},"include_deleted":{"type":"TypeBool","optional":true,"default":false},"include_snapshots":{"type":"TypeBool","optional":true,"default":false},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10}}},"maxItems":1},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true},"schema_fields":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","optional":true,"default":"private"},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_filesystem":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"group":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"owner":{"type":"TypeString","optional":true,"computed":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_path":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"filesystem_name":{"type":"TypeString","required":true,"forceNew":true},"group":{"type":"TypeString","optional":true,"computed":true},"owner":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","required":true,"forceNew":true},"resource":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_encryption_scope":{"schema":{"infrastructure_encryption_required":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"base_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","optional":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"snapshot":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"version":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"filters":{"type":"TypeList","required":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operation":{"type":"TypeString","optional":true,"default":"=="},"value":{"type":"TypeString","required":true}}}},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_agent":{"schema":{"arc_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"arc_virtual_machine_uuid":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_job_definition":{"schema":{"agent_name":{"type":"TypeString","optional":true},"copy_mode":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source_name":{"type":"TypeString","required":true,"forceNew":true},"source_sub_path":{"type":"TypeString","optional":true,"forceNew":true},"storage_mover_project_id":{"type":"TypeString","required":true,"forceNew":true},"target_name":{"type":"TypeString","required":true,"forceNew":true},"target_sub_path":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_project":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_source_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"export":{"type":"TypeString","optional":true,"forceNew":true},"host":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nfs_version":{"type":"TypeString","optional":true,"default":"NFSauto","forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_target_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_object_replication":{"schema":{"destination_object_replication_id":{"type":"TypeString","computed":true},"destination_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"copy_blobs_created_after":{"type":"TypeString","optional":true,"default":"OnlyNewObjects"},"destination_container_name":{"type":"TypeString","required":true,"forceNew":true},"filter_out_blobs_with_prefix":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"source_container_name":{"type":"TypeString","required":true,"forceNew":true}}}},"source_object_replication_id":{"type":"TypeString","computed":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_queue":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}}},"id":{"type":"TypeString","required":true}}}},"enabled_protocol":{"type":"TypeString","optional":true,"default":"SMB","forceNew":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeInt","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_directory":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"share_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_file":{"schema":{"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_length":{"type":"TypeInt","computed":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","optional":true,"default":"","forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"storage_share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","optional":true,"default":"AllowAllTraffic"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync_cloud_endpoint":{"schema":{"file_share_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_sync_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"storage_sync_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_storage_table":{"schema":{"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","required":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"streaming_capacity":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_stream_analytics_function_javascript_uda":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"script":{"type":"TypeString","required":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_function_javascript_udf":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","optional":true,"computed":true},"content_storage_policy":{"type":"TypeString","optional":true,"default":"SystemAccount"},"data_locale":{"type":"TypeString","optional":true,"computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":5},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":0},"events_out_of_order_policy":{"type":"TypeString","optional":true,"default":"Adjust"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"job_id":{"type":"TypeString","computed":true},"job_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_error_policy":{"type":"TypeString","optional":true,"default":"Drop"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_id":{"type":"TypeString","optional":true},"streaming_units":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transformation_query":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true,"default":"Cloud","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job_schedule":{"schema":{"last_output_time":{"type":"TypeString","computed":true},"start_mode":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5}},"azurerm_stream_analytics_output_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"batch_max_wait_time":{"type":"TypeString","optional":true},"batch_min_rows":{"type":"TypeInt","optional":true},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_cosmosdb":{"schema":{"container_name":{"type":"TypeString","required":true},"cosmosdb_account_key":{"type":"TypeString","required":true},"cosmosdb_sql_database_id":{"type":"TypeString","required":true},"document_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_function":{"schema":{"api_key":{"type":"TypeString","required":true},"batch_max_count":{"type":"TypeInt","optional":true,"default":100},"batch_max_in_bytes":{"type":"TypeInt","optional":true,"default":262144},"function_app":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_mssql":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"database":{"type":"TypeString","required":true,"forceNew":true},"max_batch_count":{"type":"TypeFloat","optional":true,"default":10000},"max_writer_count":{"type":"TypeFloat","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_powerbi":{"schema":{"dataset":{"type":"TypeString","required":true},"group_id":{"type":"TypeString","required":true},"group_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true},"token_user_display_name":{"type":"TypeString","optional":true},"token_user_principal_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_queue":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"queue_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_topic":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_synapse":{"schema":{"database":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_table":{"schema":{"batch_size":{"type":"TypeInt","required":true},"columns_to_remove":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_mssql":{"schema":{"database":{"type":"TypeString","required":true},"delta_snapshot_query":{"type":"TypeString","optional":true},"full_snapshot_query":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"refresh_interval_duration":{"type":"TypeString","optional":true},"refresh_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_blob":{"schema":{"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub_v2":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_iothub":{"schema":{"endpoint":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"iothub_namespace":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"shared_access_policy_key":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"delegation":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"service_delegation":{"type":"TypeList","required":true,"elem":{"schema":{"actions":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}},"maxItems":1}}}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","optional":true,"computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_endpoint_policy_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"service_endpoints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_nat_gateway_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_network_security_group_association":{"schema":{"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_route_table_association":{"schema":{"route_table_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_service_endpoint_storage_policy":{"schema":{"definition":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"service":{"type":"TypeString","optional":true,"default":"Microsoft.Storage"},"service_resources":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription":{"schema":{"alias":{"type":"TypeString","optional":true,"description":"The Alias Name of the subscription. If omitted a new UUID will be generated for this property.","computed":true,"forceNew":true},"billing_scope_id":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true,"description":"The GUID of the Subscription.","computed":true,"forceNew":true},"subscription_name":{"type":"TypeString","required":true,"description":"The Display Name for the Subscription."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID to which the subscription belongs","computed":true},"workload":{"type":"TypeString","optional":true,"description":"The workload type for the Subscription. Possible values are `Production` (default) and `DevTest`.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_synapse_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_azure":{"schema":{"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_self_hosted":{"schema":{"authorization_key_primary":{"type":"TypeString","computed":true},"authorization_key_secondary":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_linked_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_private_link_hub":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_role_assignment":{"schema":{"principal_id":{"type":"TypeString","required":true,"forceNew":true},"role_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_spark_pool":{"schema":{"auto_pause":{"type":"TypeList","optional":true,"elem":{"schema":{"delay_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true},"min_node_count":{"type":"TypeInt","required":true}}},"maxItems":1},"cache_size":{"type":"TypeInt","optional":true},"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_executor_allocation_enabled":{"type":"TypeBool","optional":true,"default":false},"library_requirement":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"max_executors":{"type":"TypeInt","optional":true},"min_executors":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true},"node_size":{"type":"TypeString","required":true},"node_size_family":{"type":"TypeString","required":true},"session_level_packages_enabled":{"type":"TypeBool","optional":true,"default":false},"spark_config":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"spark_events_folder":{"type":"TypeString","optional":true,"default":"/events"},"spark_log_folder":{"type":"TypeString","optional":true,"default":"/logs"},"spark_version":{"type":"TypeString","optional":true,"default":"2.4"},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"data_encrypted":{"type":"TypeBool","optional":true},"geo_backup_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_database_id":{"type":"TypeString","optional":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"point_in_time":{"type":"TypeString","required":true,"forceNew":true},"source_database_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sql_pool_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment_baseline":{"schema":{"baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"rule_name":{"type":"TypeString","required":true},"sql_pool_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_classifier":{"schema":{"context":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"importance":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"member_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true},"workload_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_group":{"schema":{"importance":{"type":"TypeString","optional":true,"default":"normal"},"max_resource_percent":{"type":"TypeInt","required":true},"max_resource_percent_per_request":{"type":"TypeFloat","optional":true,"default":3},"min_resource_percent":{"type":"TypeInt","required":true},"min_resource_percent_per_request":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_execution_timeout_in_seconds":{"type":"TypeInt","optional":true},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace":{"schema":{"aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"azure_devops_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"last_commit_id":{"type":"TypeString","optional":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"compute_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","optional":true,"default":"cmk"},"key_versionless_id":{"type":"TypeString","required":true}}},"maxItems":1},"data_exfiltration_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"github_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","optional":true},"last_commit_id":{"type":"TypeString","optional":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"linking_allowed_for_aad_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sql_administrator_login":{"type":"TypeString","optional":true,"forceNew":true},"sql_administrator_login_password":{"type":"TypeString","optional":true},"sql_identity_control_enabled":{"type":"TypeBool","optional":true},"storage_data_lake_gen2_filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_key":{"schema":{"active":{"type":"TypeBool","required":true},"customer_managed_key_name":{"type":"TypeString","required":true},"customer_managed_key_versionless_id":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_sql_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true},"workspace_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_template_deployment":{"schema":{"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"parameters_body":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"template_body":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_tenant_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_traffic_manager_azure_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_external_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_nested_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"minimum_child_endpoints":{"type":"TypeInt","required":true},"minimum_required_child_endpoints_ipv4":{"type":"TypeInt","optional":true},"minimum_required_child_endpoints_ipv6":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","required":true,"elem":{"schema":{"relative_name":{"type":"TypeString","required":true,"forceNew":true},"ttl":{"type":"TypeInt","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","computed":true},"max_return":{"type":"TypeInt","optional":true},"monitor_config":{"type":"TypeList","required":true,"elem":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"expected_status_code_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":30},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":10},"tolerated_number_of_failures":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"profile_status":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","required":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer":{"schema":{"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer_edge_module":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"video_analyzer_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_desktop_application":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"command_line_argument_policy":{"type":"TypeString","required":true},"command_line_arguments":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true,"computed":true},"icon_index":{"type":"TypeInt","optional":true},"icon_path":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","required":true},"show_in_portal":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_application_group":{"schema":{"default_desktop_display_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"load_balancer_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_sessions_allowed":{"type":"TypeInt","optional":true,"default":999999},"name":{"type":"TypeString","required":true,"forceNew":true},"personal_desktop_assignment_type":{"type":"TypeString","optional":true,"forceNew":true},"preferred_app_group_type":{"type":"TypeString","optional":true,"default":"Desktop","description":"Preferred App Group type to display","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scheduled_agent_updates":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","required":true}}},"maxItems":2},"timezone":{"type":"TypeString","optional":true,"default":"UTC"},"use_session_host_timezone":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"start_vm_on_connect":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"validate_environment":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool_registration_info":{"schema":{"expiration_date":{"type":"TypeString","required":true},"hostpool_id":{"type":"TypeString","required":true,"forceNew":true},"token":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_desktop_scaling_plan":{"schema":{"description":{"type":"TypeString","optional":true},"exclusion_tag":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"hostpool_id":{"type":"TypeString","required":true},"scaling_plan_enabled":{"type":"TypeBool","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"off_peak_load_balancing_algorithm":{"type":"TypeString","required":true},"off_peak_start_time":{"type":"TypeString","required":true},"peak_load_balancing_algorithm":{"type":"TypeString","required":true},"peak_start_time":{"type":"TypeString","required":true},"ramp_down_capacity_threshold_percent":{"type":"TypeInt","required":true},"ramp_down_force_logoff_users":{"type":"TypeBool","required":true},"ramp_down_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_down_minimum_hosts_percent":{"type":"TypeInt","required":true},"ramp_down_notification_message":{"type":"TypeString","required":true},"ramp_down_start_time":{"type":"TypeString","required":true},"ramp_down_stop_hosts_when":{"type":"TypeString","required":true},"ramp_down_wait_time_minutes":{"type":"TypeInt","required":true},"ramp_up_capacity_threshold_percent":{"type":"TypeInt","optional":true},"ramp_up_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_up_minimum_hosts_percent":{"type":"TypeInt","optional":true},"ramp_up_start_time":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace":{"schema":{"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace_application_group_association":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","optional":true,"forceNew":true},"default_route_table_id":{"type":"TypeString","computed":true},"hub_routing_preference":{"type":"TypeString","optional":true,"default":"ExpressRoute"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"next_hop_ip_address":{"type":"TypeString","required":true}}}},"sku":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_auto_scale_min_capacity":{"type":"TypeInt","optional":true,"default":2},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_connection_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"static_vnet_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true},"next_hop_ip_address":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_ip":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_route_table_route":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"},"route_table_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_security_partner_provider":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","required":true,"forceNew":true}}},"maxItems":1},"availability_set_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"delete_data_disks_on_termination":{"type":"TypeBool","optional":true,"default":false},"delete_os_disk_on_termination":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"os_profile":{"type":"TypeSet","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","required":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true,"default":false},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":false},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"primary_network_interface_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_data_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"vhd_uri":{"type":"TypeString","optional":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"storage_image_reference":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"storage_os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"image_uri":{"type":"TypeString","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","optional":true,"computed":true},"vhd_uri":{"type":"TypeString","optional":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vm_size":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_data_disk_attachment":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Attach","forceNew":true},"lun":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_machine_scale_set":{"schema":{"automatic_os_upgrade":{"type":"TypeBool","optional":true,"default":false},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"health_probe_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeSet","required":true,"elem":{"schema":{"accelerated_networking":{"type":"TypeBool","optional":true},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"public_ip_address_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","required":true},"idle_timeout":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"subnet_id":{"type":"TypeString","required":true}}}},"ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","required":true}}}},"os_profile":{"type":"TypeList","required":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name_prefix":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","optional":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeSet","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true},"provision_vm_agent":{"type":"TypeBool","optional":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"priority":{"type":"TypeString","optional":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_batch_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","optional":true,"default":20},"pause_time_between_batches":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1},"single_placement_group":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"storage_profile_data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true}}}},"storage_profile_image_reference":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"offer":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_profile_os_disk":{"type":"TypeSet","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"image":{"type":"TypeString","optional":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"vhd_containers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_policy_mode":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_scale_set_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_scale_set_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"machine_scope":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exclude_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"include_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"bgp_community":{"type":"TypeString","optional":true},"ddos_protection_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"enable":{"type":"TypeBool","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"enforcement":{"type":"TypeString","required":true}}},"maxItems":1},"flow_timeout_in_minutes":{"type":"TypeInt","optional":true},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"security_group":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_dns_servers":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","optional":true,"computed":true},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","optional":true},"peer_weight":{"type":"TypeInt","optional":true},"peering_addresses":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"apipa_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"default_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_name":{"type":"TypeString","optional":true,"computed":true},"tunnel_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1}}},"maxItems":1},"custom_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"default_local_network_gateway_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"generation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true,"default":"vnetGatewayConfig"},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":3},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"vpn_client_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","optional":true},"aad_issuer":{"type":"TypeString","optional":true},"aad_tenant":{"type":"TypeString","optional":true},"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","optional":true},"radius_server_secret":{"type":"TypeString","optional":true},"revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"vpn_auth_types":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":3},"vpn_client_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"vpn_type":{"type":"TypeString","optional":true,"default":"RouteBased","forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"connection_protocol":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_bgp_addresses":{"type":"TypeList","optional":true,"elem":{"schema":{"primary":{"type":"TypeString","required":true},"secondary":{"type":"TypeString","optional":true}}},"maxItems":1},"dpd_timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"express_route_circuit_id":{"type":"TypeString","optional":true,"forceNew":true},"express_route_gateway_bypass":{"type":"TypeBool","optional":true,"computed":true},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_datasize":{"type":"TypeInt","optional":true,"computed":true},"sa_lifetime":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"local_network_gateway_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_virtual_network_gateway_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_weight":{"type":"TypeInt","optional":true,"computed":true},"shared_key":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true,"forceNew":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","optional":true,"computed":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway_nat_rule":{"schema":{"external_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_peering":{"schema":{"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","optional":true,"default":true},"disable_vpn_encryption":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"office365_local_breakout_category":{"type":"TypeString","optional":true,"default":"None"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"Standard"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vmware_cluster":{"schema":{"cluster_node_count":{"type":"TypeInt","required":true},"cluster_number":{"type":"TypeInt","computed":true},"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"vmware_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_vmware_express_route_authorization":{"schema":{"express_route_authorization_id":{"type":"TypeString","computed":true},"express_route_authorization_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_netapp_volume_attachment":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"netapp_volume_id":{"type":"TypeString","required":true,"forceNew":true},"vmware_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"management_cluster":{"type":"TypeList","required":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","required":true}}},"maxItems":1},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_subnet_cidr":{"type":"TypeString","required":true,"forceNew":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"nsxt_password":{"type":"TypeString","optional":true,"forceNew":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcenter_password":{"type":"TypeString","optional":true,"forceNew":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"create":600,"read":5,"delete":600,"update":600}},"azurerm_voice_services_communications_gateway":{"schema":{"api_bridge":{"type":"TypeString","optional":true},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse","forceNew":true},"codecs":{"type":"TypeString","required":true},"connectivity":{"type":"TypeString","required":true,"forceNew":true},"e911_type":{"type":"TypeString","required":true},"emergency_dial_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_teams_voicemail_pilot_number":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"on_prem_mcp_enabled":{"type":"TypeBool","optional":true},"platforms":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_location":{"type":"TypeSet","required":true,"elem":{"schema":{"allowed_media_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_signaling_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"esrp_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true},"operator_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_voice_services_communications_gateway_test_line":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"purpose":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_services_communications_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway":{"schema":{"bgp_route_translation_for_nat_enabled":{"type":"TypeBool","optional":true,"default":false},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true,"forceNew":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instance_1_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"peer_weight":{"type":"TypeInt","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scale_unit":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_gateway_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_vpn_site_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"traffic_selector_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"local_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"remote_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_link":{"type":"TypeList","required":true,"elem":{"schema":{"bandwidth_mbps":{"type":"TypeInt","optional":true,"default":10},"bgp_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default"},"custom_bgp_address":{"type":"TypeSet","optional":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"ip_configuration_id":{"type":"TypeString","required":true}}}},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"encryption_algorithm":{"type":"TypeString","required":true},"ike_encryption_algorithm":{"type":"TypeString","required":true},"ike_integrity_algorithm":{"type":"TypeString","required":true},"integrity_algorithm":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kb":{"type":"TypeInt","required":true},"sa_lifetime_sec":{"type":"TypeInt","required":true}}},"minItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"policy_based_traffic_selector_enabled":{"type":"TypeBool","optional":true,"default":false},"protocol":{"type":"TypeString","optional":true,"default":"IKEv2"},"ratelimit_enabled":{"type":"TypeBool","optional":true,"default":false},"route_weight":{"type":"TypeInt","optional":true,"default":0},"shared_key":{"type":"TypeString","optional":true},"vpn_site_link_id":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway_nat_rule":{"schema":{"external_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"external_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"internal_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_server_configuration":{"schema":{"azure_active_directory_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"issuer":{"type":"TypeString","required":true},"tenant":{"type":"TypeString","required":true}}},"minItems":1},"client_revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kilobytes":{"type":"TypeInt","required":true},"sa_lifetime_seconds":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"radius":{"type":"TypeList","optional":true,"elem":{"schema":{"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"server":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"score":{"type":"TypeInt","required":true},"secret":{"type":"TypeString","required":true}}}},"server_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vpn_authentication_types":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"vpn_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_server_configuration_policy_group":{"schema":{"is_default":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"priority":{"type":"TypeInt","optional":true,"default":0},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_site":{"schema":{"address_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"device_model":{"type":"TypeString","optional":true},"device_vendor":{"type":"TypeString","optional":true},"link":{"type":"TypeList","optional":true,"elem":{"schema":{"bgp":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"peering_address":{"type":"TypeString","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"provider_name":{"type":"TypeString","optional":true},"speed_in_mbps":{"type":"TypeInt","optional":true,"default":0}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"o365_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"traffic_category":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"default_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"optimize_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_app_hybrid_connection":{"schema":{"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true},"web_app_id":{"type":"TypeString","required":true,"description":"The ID of the Web App for this Hybrid Connection.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_application_firewall_policy":{"schema":{"custom_rules":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"match_conditions":{"type":"TypeList","required":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_variables":{"type":"TypeList","required":true,"elem":{"schema":{"selector":{"type":"TypeString","optional":true},"variable_name":{"type":"TypeString","required":true}}}},"negation_condition":{"type":"TypeBool","optional":true},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","required":true},"rule_type":{"type":"TypeString","required":true}}}},"http_listener_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_rules":{"type":"TypeList","required":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","optional":true,"default":"3.2"}}},"maxItems":1},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"selector_match_operator":{"type":"TypeString","required":true}}}},"managed_rule_set":{"type":"TypeList","required":true,"elem":{"schema":{"rule_group_override":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"rule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"id":{"type":"TypeString","required":true}}}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","required":true}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"path_based_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"policy_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"file_upload_limit_in_mb":{"type":"TypeInt","optional":true,"default":100},"log_scrubbing":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true,"description":"When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to."},"selector_match_operator":{"type":"TypeString","optional":true,"default":"Equals"}}}}}},"maxItems":1},"max_request_body_size_in_kb":{"type":"TypeInt","optional":true,"default":128},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"request_body_check":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"capacity":{"type":"TypeInt","optional":true,"default":1},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_hub":{"schema":{"anonymous_connections_enabled":{"type":"TypeBool","optional":true,"default":false},"event_handler":{"type":"TypeList","optional":true,"elem":{"schema":{"auth":{"type":"TypeList","optional":true,"elem":{"schema":{"managed_identity_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"system_events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_event_pattern":{"type":"TypeString","optional":true}}}},"event_listener":{"type":"TypeList","optional":true,"elem":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"system_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_network_acl":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"description":"Can the Function App only be accessed via HTTPS?","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Function App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","description":"The identifier used by App Service to perform domain ownership verification via DNS TXT record.","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","description":"The default hostname of the Windows Function App Slot.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","description":"The Kind value for this Windows Function App Slot.","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Windows Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","description":"A list of outbound IP addresses. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12`.","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","description":"A list of possible outbound IP addresses, not all of which are necessarily in use. This is a superset of `outbound_ip_address_list`. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of possible outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12,52.143.43.17`. This is a superset of `outbound_ip_addresses`. For example `[\"52.23.25.3\", \"52.143.43.12\",\"52.143.43.17\"]`.","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_windows_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","required":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_web_app_slot":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"computed":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}}},"dataSources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"data_residency_location":{"type":"TypeString","description":"Location in which the B2C tenant is hosted and data resides.","computed":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix."},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","description":"Billing SKU for the B2C tenant.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"read":5}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"filtered_sync_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notifications":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","computed":true},"notify_global_admins":{"type":"TypeBool","computed":true}}}},"replica_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"external_access_enabled":{"type":"TypeBool","computed":true},"public_certificate":{"type":"TypeString","computed":true}}}},"security":{"type":"TypeList","computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","computed":true},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","computed":true},"ntlm_v1_enabled":{"type":"TypeBool","computed":true},"sync_kerberos_passwords":{"type":"TypeBool","computed":true},"sync_ntlm_passwords":{"type":"TypeBool","computed":true},"sync_on_prem_passwords":{"type":"TypeBool","computed":true},"tls_v1_enabled":{"type":"TypeBool","computed":true}}}},"sku":{"type":"TypeString","computed":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_advisor_recommendations":{"schema":{"filter_by_category":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter_by_resource_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"recommendations":{"type":"TypeList","computed":true,"elem":{"schema":{"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"impact":{"type":"TypeString","computed":true},"recommendation_name":{"type":"TypeString","computed":true},"recommendation_type_id":{"type":"TypeString","computed":true},"resource_name":{"type":"TypeString","computed":true},"resource_type":{"type":"TypeString","computed":true},"suppression_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"updated_time":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":10}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"management":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"proxy":{"type":"TypeList","computed":true,"elem":{"schema":{"default_ssl_binding":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"scm":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_api_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notification_sender_email":{"type":"TypeString","computed":true},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"publisher_email":{"type":"TypeString","computed":true},"publisher_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scm_url":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"revision":{"type":"TypeString","required":true},"service_url":{"type":"TypeString","computed":true},"soap_pass_through":{"type":"TypeBool","computed":true},"subscription_key_parameter_names":{"type":"TypeList","computed":true,"elem":{"schema":{"header":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true}}}},"subscription_required":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"version_set_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"version_header_name":{"type":"TypeString","computed":true},"version_query_name":{"type":"TypeString","computed":true},"versioning_scheme":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true},"certificate_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"request_client_certificate_enabled":{"type":"TypeBool","computed":true},"tls10_enabled":{"type":"TypeBool","computed":true},"tls11_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"external_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true},"approval_required":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"product_id":{"type":"TypeString","required":true},"published":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","computed":true},"subscriptions_limit":{"type":"TypeInt","computed":true},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true},"email":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"note":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"state":{"type":"TypeString","computed":true},"user_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","computed":true}}}},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","required":true},"label":{"type":"TypeString","optional":true,"default":""},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_configuration_keys":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"items":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"label":{"type":"TypeString","computed":true},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}}}},"key":{"type":"TypeString","optional":true,"default":""},"label":{"type":"TypeString","optional":true,"default":""}},"timeouts":{"read":5}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_cert_enabled":{"type":"TypeBool","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","computed":true},"acr_user_managed_identity_client_id":{"type":"TypeString","computed":true},"always_on":{"type":"TypeBool","computed":true},"app_command_line":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"number_of_workers":{"type":"TypeInt","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_certificate":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","computed":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","computed":true},"distinguished_name":{"type":"TypeString","computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"product_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_environment":{"schema":{"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"front_end_scale_factor":{"type":"TypeInt","computed":true},"internal_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_ip_address":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","computed":true},"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"dedicated_host_count":{"type":"TypeInt","computed":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","computed":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"is_xenon":{"type":"TypeBool","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"per_site_scaling":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"size":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_application_gateway":{"schema":{"backend_address_pool":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeString","computed":true},"instrumentation_key":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_arc_machine":{"schema":{"active_directory_fqdn":{"type":"TypeString","computed":true},"agent":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variables":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"bool":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeBool","computed":true}}}},"datetime":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"encrypted":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"int":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeInt","computed":true}}}},"null":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"object":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"string":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"platform_update_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_backup_policy_file_share":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_backup_policy_vm":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","computed":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"ip_connect_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_units":{"type":"TypeInt","computed":true},"shareable_link_enabled":{"type":"TypeBool","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_allocation_mode":{"type":"TypeString","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true},"allow_updates":{"type":"TypeBool","computed":true},"default_version":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","computed":true},"thumbprint_algorithm":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"auto_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","computed":true},"formula":{"type":"TypeString","computed":true}}}},"certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"store_location":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","computed":true},"visibility":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","computed":true}}}},"data_disks":{"type":"TypeList","computed":true,"elem":{"schema":{"caching":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"lun":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}},"disk_encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","computed":true}}}},"display_name":{"type":"TypeString","computed":true},"extensions":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"protected_settings":{"type":"TypeString","computed":true},"provision_after_extensions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","computed":true},"settings_json":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"type_handler_version":{"type":"TypeString","computed":true}}}},"fixed_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"resize_timeout":{"type":"TypeString","computed":true},"target_dedicated_nodes":{"type":"TypeInt","computed":true},"target_low_priority_nodes":{"type":"TypeInt","computed":true}}}},"inter_node_communication":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_tasks_per_node":{"type":"TypeInt","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"blobfuse_options":{"type":"TypeString","computed":true},"container_name":{"type":"TypeString","computed":true},"identity_id":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"sas_key":{"type":"TypeString","computed":true}}}},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"azure_file_url":{"type":"TypeString","computed":true},"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true}}}},"cifs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"nfs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"network_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"dynamic_vnet_assignment_scope":{"type":"TypeString","computed":true},"endpoint_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port_range":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"protocol":{"type":"TypeString","computed":true}}}},"public_address_provisioning_type":{"type":"TypeString","computed":true},"public_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","computed":true}}}},"node_agent_sku_id":{"type":"TypeString","computed":true},"node_placement":{"type":"TypeList","computed":true,"elem":{"schema":{"policy":{"type":"TypeString","computed":true}}}},"os_disk_placement":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_task":{"type":"TypeList","computed":true,"elem":{"schema":{"command_line":{"type":"TypeString","computed":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"run_options":{"type":"TypeString","computed":true},"working_directory":{"type":"TypeString","computed":true}}}},"resource_file":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","computed":true},"blob_prefix":{"type":"TypeString","computed":true},"file_mode":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"http_url":{"type":"TypeString","computed":true},"storage_container_url":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"task_retry_maximum":{"type":"TypeInt","computed":true},"user_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_user":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","computed":true}}}},"user_name":{"type":"TypeString","computed":true}}}},"wait_for_success":{"type":"TypeBool","computed":true}}}},"storage_image_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"task_scheduling_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","computed":true}}}},"user_accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"linux_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"gid":{"type":"TypeInt","computed":true},"ssh_private_key":{"type":"TypeString","computed":true},"uid":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"windows_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"login_mode":{"type":"TypeString","computed":true}}}}}}},"vm_size":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_billing_enrollment_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"enrollment_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mca_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"billing_profile_name":{"type":"TypeString","required":true},"invoice_section_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mpa_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"customer_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_blueprint_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_blueprint_published_version":{"schema":{"blueprint_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"dns_zone_id":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tls":{"type":"TypeList","computed":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","computed":true},"certificate_type":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true}}}},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"enabled":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"enabled":{"type":"TypeBool","computed":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redirect_url":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"health_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true},"request_type":{"type":"TypeString","computed":true}}}},"load_balancing":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","computed":true},"sample_size":{"type":"TypeInt","computed":true},"successful_samples_required":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","computed":true},"session_affinity_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"key_vault_certificate_id":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"read":5}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_client_config":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cognitive_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"qna_runtime_endpoint":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"certificate_based_security_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"pem_public_key":{"type":"TypeString","computed":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"resource_group_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"subscription_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","computed":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The Dapr Application Identifier.","computed":true},"app_port":{"type":"TypeInt","description":"The port which the application is listening on. This is the same as the `ingress` port.","computed":true},"app_protocol":{"type":"TypeString","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`.","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","description":"Should this ingress allow insecure connections?","computed":true},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`","computed":true},"certificate_id":{"type":"TypeString","description":"The ID of the Certificate.","computed":true},"name":{"type":"TypeString","description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate.","computed":true}}}},"external_enabled":{"type":"TypeBool","description":"Is this an external Ingress.","computed":true},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","description":"The target port on the container for the Ingress traffic.","computed":true},"traffic_weight":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","description":"The label to apply to the revision as a name prefix for routing traffic.","computed":true},"latest_revision":{"type":"TypeBool","description":"This traffic Weight relates to the latest stable Container Revision.","computed":true},"percentage":{"type":"TypeInt","description":"The percentage of traffic to send to this revision.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted.","computed":true}}}},"transport":{"type":"TypeString","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`","computed":true}}}},"latest_revision_fqdn":{"type":"TypeString","description":"The fully qualified domain name of the latest Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"identity":{"type":"TypeString","description":"ID of the System or User Managed Identity used to pull images from the Container Registry","computed":true},"password_secret_name":{"type":"TypeString","description":"The name of the Secret Reference containing the password value for this user on the Container Registry.","computed":true},"server":{"type":"TypeString","description":"The hostname for the Container Registry.","computed":true},"username":{"type":"TypeString","description":"The username to use for this Container Registry.","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"revision_mode":{"type":"TypeString","computed":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Secret name.","computed":true},"value":{"type":"TypeString","description":"The value for this secret.","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","computed":true,"elem":{"schema":{"container":{"type":"TypeList","computed":true,"elem":{"schema":{"args":{"type":"TypeList","description":"A list of args to pass to the container.","computed":true,"elem":{"type":"TypeString"}},"command":{"type":"TypeList","description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","computed":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`","computed":true},"env":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the environment variable for the container.","computed":true},"secret_name":{"type":"TypeString","description":"The name of the secret that contains the value for this environment variable.","computed":true},"value":{"type":"TypeString","description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used","computed":true}}}},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","description":"The image to use to create the container.","computed":true},"liveness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"initial_delay":{"type":"TypeInt","description":"The time in seconds to wait after the container has started before the probe is started.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"memory":{"type":"TypeString","description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`","computed":true},"name":{"type":"TypeString","description":"The name of the container.","computed":true},"readiness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"success_count_threshold":{"type":"TypeInt","description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"startup_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","computed":true}}}},"volume_mounts":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the Volume to be mounted in the container.","computed":true},"path":{"type":"TypeString","description":"The path in the container at which to mount this volume.","computed":true}}}}}}},"max_replicas":{"type":"TypeInt","description":"The maximum number of replicas for this container.","computed":true},"min_replicas":{"type":"TypeInt","description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}}}},"timeouts":{"read":5}},"azurerm_container_app_environment":{"schema":{"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","description":"The existing Subnet in use by the Container Apps Control Plane.","computed":true},"internal_load_balancer_enabled":{"type":"TypeBool","description":"Does the Container Environment operate in Internal Load Balancing Mode?","computed":true},"location":{"type":"TypeString","computed":true},"log_analytics_workspace_name":{"type":"TypeString","description":"The name of the Log Analytics Workspace this Container Apps Managed Environment is linked to.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment."},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_app_environment_certificate":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"read":5}},"azurerm_container_group":{"schema":{"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","computed":true},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"data_endpoint_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"container_registry_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scope_map_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_account":{"schema":{"capabilities":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"consistency_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","computed":true},"max_interval_in_seconds":{"type":"TypeInt","computed":true},"max_staleness_prefix":{"type":"TypeInt","computed":true}}}},"enable_automatic_failover":{"type":"TypeBool","computed":true},"enable_free_tier":{"type":"TypeBool","computed":true},"enable_multiple_write_locations":{"type":"TypeBool","computed":true},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeList","computed":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true}}}},"ip_range_filter":{"type":"TypeString","computed":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","computed":true},"key_vault_key_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"offer_type":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_restorable_database_accounts":{"schema":{"accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"api_type":{"type":"TypeString","computed":true},"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"restorable_locations":{"type":"TypeList","computed":true,"elem":{"schema":{"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"regional_database_account_instance_id":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true},"autoscale_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true},"assignable_scopes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeSet","computed":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_factory":{"schema":{"github_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"git_url":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"project_name":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redundancy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"snapshot_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"recurrence":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true}}}},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","computed":true},"data_share_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"file_system_name":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"source_platform":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databricks_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_databricks_workspace_private_endpoint_connection":{"schema":{"connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"workspace_private_endpoint_id":{"type":"TypeString","computed":true}}}},"private_endpoint_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dedicated_host":{"schema":{"dedicated_host_group_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"storage_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_dev_test_virtual_network":{"schema":{"allowed_subnets":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_public_ip":{"type":"TypeString","computed":true},"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true}}}},"lab_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_overrides":{"type":"TypeList","computed":true,"elem":{"schema":{"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_in_vm_creation_permission":{"type":"TypeString","computed":true},"use_public_ip_address_permission":{"type":"TypeString","computed":true},"virtual_network_pool_name":{"type":"TypeString","computed":true}}}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_access":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"flags":{"type":"TypeInt","computed":true},"tag":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","computed":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"send_activity_logs":{"type":"TypeBool","computed":true},"send_azuread_logs":{"type":"TypeBool","computed":true},"send_subscription_logs":{"type":"TypeBool","computed":true}}}},"monitoring_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain":{"schema":{"endpoint":{"type":"TypeString","computed":true},"inbound_ip_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"ip_mask":{"type":"TypeString","computed":true}}}},"input_mapping_default_values":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true}}}},"input_mapping_fields":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_time":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true},"topic":{"type":"TypeString","computed":true}}}},"input_schema":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_arm_resource_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventhub":{"schema":{"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"partition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"read":5}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"user_metadata":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"dedicated_cluster_id":{"type":"TypeString","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"kafka_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"maximum_throughput_units":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"sas":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_express_route_circuit":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peerings":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"peer_asn":{"type":"TypeInt","computed":true},"peering_type":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","computed":true},"shared_key":{"type":"TypeString","computed":true},"vlan_id":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_key":{"type":"TypeString","computed":true},"service_provider_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"bandwidth_in_mbps":{"type":"TypeInt","computed":true},"peering_location":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","computed":true}}}},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"family":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_extended_locations":{"schema":{"extended_locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"sku_tier":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","computed":true},"virtual_hub":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","computed":true},"virtual_hub_id":{"type":"TypeString","computed":true}}}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_firewall_policy":{"schema":{"base_policy_id":{"type":"TypeString","computed":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","computed":true,"elem":{"schema":{"network_rule_fqdn_enabled":{"type":"TypeBool","computed":true},"proxy_enabled":{"type":"TypeBool","computed":true},"servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"threat_intelligence_mode":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_cert_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_function_app_host_keys":{"schema":{"blobs_extension_key":{"type":"TypeString","computed":true},"default_function_key":{"type":"TypeString","computed":true},"durabletask_extension_key":{"type":"TypeString","computed":true},"event_grid_extension_config_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"signalr_extension_key":{"type":"TypeString","computed":true},"webpubsub_extension_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_hdinsight_cluster":{"schema":{"cluster_version":{"type":"TypeString","computed":true},"component_versions":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"edge_ssh_endpoint":{"type":"TypeString","computed":true},"gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"ssh_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","computed":true},"tls_min_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"configuration_export_storage_account_name":{"type":"TypeString","computed":true},"container_registry_login_server_url":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","computed":true},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","computed":true},"eventhub_consumer_group_name":{"type":"TypeString","computed":true},"eventhub_name":{"type":"TypeString","computed":true},"eventhub_namespace_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"cors_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","computed":true},"allowed_headers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","computed":true},"cosmosdb_throughput":{"type":"TypeInt","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_hybrid_compute_machine":{"schema":{"ad_fqdn":{"type":"TypeString","computed":true},"agent_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"error_details":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_info":{"type":"TypeList","computed":true,"elem":{"schema":{"info":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"code":{"type":"TypeString","computed":true},"message":{"type":"TypeString","computed":true},"target":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"name_regex":{"type":"TypeString","optional":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"sort_descending":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_images":{"schema":{"images":{"type":"TypeList","computed":true,"elem":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub":{"schema":{"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","computed":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_operations_host_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"iothub_dps_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_iothub_shared_access_policy":{"schema":{"iothub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","computed":true},"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","computed":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"enable_rbac_authorization":{"type":"TypeBool","computed":true},"enabled_for_deployment":{"type":"TypeBool","computed":true},"enabled_for_disk_encryption":{"type":"TypeBool","computed":true},"enabled_for_template_deployment":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_acls":{"type":"TypeList","computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","computed":true},"default_action":{"type":"TypeString","computed":true},"ip_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_access_policy":{"schema":{"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_certificate":{"schema":{"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"key_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"curve":{"type":"TypeString","computed":true},"exportable":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"reuse_key":{"type":"TypeBool","computed":true}}}},"lifetime_action":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","computed":true},"lifetime_percentage":{"type":"TypeInt","computed":true}}}}}}},"secret_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true}}}},"x509_certificate_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"validity_in_months":{"type":"TypeInt","computed":true}}}}}}},"expires":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true,"computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_certificate_data":{"schema":{"certificates_count":{"type":"TypeInt","computed":true},"expires":{"type":"TypeString","computed":true},"hex":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"pem":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","computed":true},"admin":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"phone":{"type":"TypeString","computed":true}}}},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"org_id":{"type":"TypeString","computed":true},"provider_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificates":{"schema":{"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"include_pending":{"type":"TypeBool","optional":true,"default":true},"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_encrypted_value":{"schema":{"algorithm":{"type":"TypeString","required":true},"decoded_plain_text_value":{"type":"TypeString","computed":true},"encrypted_data":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"plain_text_value":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","computed":true},"e":{"type":"TypeString","computed":true},"key_opts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before_date":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_secrets":{"schema":{"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","computed":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","computed":true}}}},"agent_pool_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"api_server_authorized_ip_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"azure_active_directory_role_based_access_control":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","computed":true},"client_app_id":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"server_app_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"azure_policy_enabled":{"type":"TypeBool","computed":true},"current_kubernetes_version":{"type":"TypeString","computed":true},"custom_ca_trust_certificates_base64":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"disk_encryption_set_id":{"type":"TypeString","computed":true},"dns_prefix":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","computed":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress_application_gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","computed":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"key_management_service":{"type":"TypeList","computed":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"key_vault_network_access":{"type":"TypeString","computed":true}}}},"key_vault_secrets_provider":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","computed":true},"secret_rotation_interval":{"type":"TypeString","computed":true}}}},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"kubernetes_version":{"type":"TypeString","computed":true},"linux_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true},"ssh_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_data":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","computed":true},"microsoft_defender":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"network_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","computed":true},"docker_bridge_cidr":{"type":"TypeString","computed":true},"load_balancer_sku":{"type":"TypeString","computed":true},"network_plugin":{"type":"TypeString","computed":true},"network_policy":{"type":"TypeString","computed":true},"pod_cidr":{"type":"TypeString","computed":true},"service_cidr":{"type":"TypeString","computed":true}}}},"node_resource_group":{"type":"TypeString","computed":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","computed":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","computed":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}}},"open_service_mesh_enabled":{"type":"TypeBool","computed":true},"private_cluster_enabled":{"type":"TypeBool","computed":true},"private_fqdn":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"role_based_access_control_enabled":{"type":"TypeBool","computed":true},"service_mesh_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"mode":{"type":"TypeString","computed":true}}}},"service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true}}}},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_version":{"type":"TypeString","computed":true},"file_driver_enabled":{"type":"TypeBool","computed":true},"snapshot_controller_enabled":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"eviction_policy":{"type":"TypeString","computed":true},"kubernetes_cluster_name":{"type":"TypeString","required":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_disk_type":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"priority":{"type":"TypeString","computed":true},"proximity_placement_group_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"spot_max_price":{"type":"TypeFloat","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_node_pool_snapshot":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_node_pool_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_service_versions":{"schema":{"include_preview":{"type":"TypeBool","optional":true,"default":true},"latest_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"version_prefix":{"type":"TypeString","optional":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kusto_cluster":{"schema":{"data_ingestion_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true},"hot_cache_period":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_lb":{"schema":{"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_backend_address_pool":{"schema":{"backend_address":{"type":"TypeList","computed":true,"elem":{"schema":{"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"virtual_network_id":{"type":"TypeString","computed":true}}}},"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","computed":true},"backend_address_pool_id":{"type":"TypeString","computed":true},"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","computed":true},"tcp_reset_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_lb_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","computed":true},"disable_outbound_snat":{"type":"TypeBool","computed":true},"enable_floating_ip":{"type":"TypeBool","computed":true},"enable_tcp_reset":{"type":"TypeBool","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"load_distribution":{"type":"TypeString","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"probe_id":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"image_tag":{"type":"TypeString","computed":true},"registry_password":{"type":"TypeString","computed":true},"registry_url":{"type":"TypeString","computed":true},"registry_username":{"type":"TypeString","computed":true}}}},"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":25}},"azurerm_linux_web_app":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_reference_identity_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_image_tag":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"go_version":{"type":"TypeString","computed":true},"java_server":{"type":"TypeString","computed":true},"java_server_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"ruby_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","computed":true}}}},"gateway_address":{"type":"TypeString","computed":true},"gateway_fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_log_analytics_workspace":{"schema":{"daily_quota_gb":{"type":"TypeFloat","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_shared_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_integration_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","computed":true},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_account_share_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_workflow":{"schema":{"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"logic_app_integration_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","computed":true},"workflow_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_machine_learning_workspace":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","computed":true},"install_patches":{"type":"TypeList","computed":true,"elem":{"schema":{"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"reboot":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","computed":true},"window":{"type":"TypeList","computed":true,"elem":{"schema":{"duration":{"type":"TypeString","computed":true},"expiration_date_time":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"start_date_time":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_managed_api":{"schema":{"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_managed_application_definition":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","computed":true},"disk_access_id":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"disk_iops_read_write":{"type":"TypeInt","computed":true},"disk_mbps_read_write":{"type":"TypeInt","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"image_reference_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_access_policy":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group":{"schema":{"all_management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"all_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true,"computed":true},"parent_management_group_id":{"type":"TypeString","computed":true},"subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group_template_deployment":{"schema":{"management_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement":{"type":"TypeString","computed":true},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"geo_redundant_backup":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true},"plan":{"type":"TypeString","required":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_country_code":{"type":"TypeString","computed":true},"mobile_network_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"mobile_network_data_network_name":{"type":"TypeString","required":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true},"network_address_port_translation":{"type":"TypeList","computed":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"pinhole_maximum_number":{"type":"TypeInt","optional":true},"port_range":{"type":"TypeList","computed":true,"elem":{"schema":{"maximum":{"type":"TypeInt","computed":true},"minimum":{"type":"TypeInt","computed":true}}}},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","computed":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"control_plane_access_name":{"type":"TypeString","computed":true},"core_network_technology":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"interoperability_settings_json":{"type":"TypeString","computed":true},"local_diagnostics_access":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","computed":true},"https_server_certificate_url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform":{"type":"TypeList","computed":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","computed":true},"custom_location_id":{"type":"TypeString","computed":true},"edge_device_id":{"type":"TypeString","computed":true},"stack_hci_cluster_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"pcc_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"precedence":{"type":"TypeInt","computed":true},"qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"guaranteed_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"service_data_flow_template":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","computed":true}}}},"service_precedence":{"type":"TypeInt","computed":true},"service_qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim":{"schema":{"device_type":{"type":"TypeString","computed":true},"integrated_circuit_card_identifier":{"type":"TypeString","computed":true},"international_mobile_subscriber_identity":{"type":"TypeString","computed":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","computed":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true},"static_ipv4_address":{"type":"TypeString","computed":true}}}},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","computed":true},"registration_timer_in_seconds":{"type":"TypeInt","computed":true},"slice":{"type":"TypeList","computed":true,"elem":{"schema":{"data_network":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"allowed_services_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","computed":true},"default_session_type":{"type":"TypeString","computed":true},"max_buffered_packets":{"type":"TypeInt","computed":true},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}}}},"default_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","computed":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","computed":true},"slice_service_type":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"role_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"automation_runbook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","computed":true},"is_global_runbook":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"runbook_name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true},"webhook_resource_id":{"type":"TypeString","computed":true}}}},"azure_app_push_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"azure_function_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","computed":true},"function_name":{"type":"TypeString","computed":true},"http_trigger_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"email_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"event_hub_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true},"ticket_configuration":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","computed":true}}}},"logic_app_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"callback_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"short_name":{"type":"TypeString","computed":true},"sms_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"voice_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"webhook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","computed":true},"data_flow":{"type":"TypeList","computed":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"output_stream":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"transform_kql":{"type":"TypeString","computed":true}}}},"data_sources":{"type":"TypeList","computed":true,"elem":{"schema":{"data_import":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"stream":{"type":"TypeString","computed":true}}}}}}},"extension":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_json":{"type":"TypeString","computed":true},"extension_name":{"type":"TypeString","computed":true},"input_data_sources":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"iis_log":{"type":"TypeList","computed":true,"elem":{"schema":{"log_directories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"settings":{"type":"TypeList","computed":true,"elem":{"schema":{"text":{"type":"TypeList","computed":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","computed":true}}}}}}},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"performance_counter":{"type":"TypeList","computed":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"sampling_frequency_in_seconds":{"type":"TypeInt","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"prometheus_forwarder":{"type":"TypeList","computed":true,"elem":{"schema":{"label_include_filter":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"syslog":{"type":"TypeList","computed":true,"elem":{"schema":{"facility_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"log_levels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_event_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"x_path_queries":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_firewall_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"description":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"workspace_resource_id":{"type":"TypeString","computed":true}}}},"monitor_account":{"type":"TypeList","computed":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"storage_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_blob_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_table_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"table_name":{"type":"TypeString","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"stream_declaration":{"type":"TypeList","computed":true,"elem":{"schema":{"column":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"stream_name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_diagnostic_categories":{"schema":{"log_category_groups":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"log_category_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"logs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"metrics":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"days":{"type":"TypeInt","computed":true},"enabled":{"type":"TypeBool","computed":true}}}},"servicebus_rule_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeSet","computed":true,"elem":{"schema":{"action_group":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","computed":true},"email_subject":{"type":"TypeString","computed":true}}}},"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"query":{"type":"TypeString","computed":true},"query_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"severity":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","computed":true},"time_window":{"type":"TypeInt","computed":true},"trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_column":{"type":"TypeString","computed":true},"metric_trigger_type":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeSet","computed":true,"elem":{"schema":{"dimension":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","computed":true}}}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mssql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"elastic_pool_id":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_size_gb":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"read_replica_count":{"type":"TypeInt","computed":true},"read_scale":{"type":"TypeBool","computed":true},"server_id":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"max_size_bytes":{"type":"TypeInt","computed":true},"max_size_gb":{"type":"TypeFloat","computed":true},"name":{"type":"TypeString","required":true},"per_db_max_capacity":{"type":"TypeInt","computed":true},"per_db_min_capacity":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"family":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"customer_managed_key_id":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"high_availability":{"type":"TypeList","computed":true,"elem":{"schema":{"mode":{"type":"TypeString","computed":true},"standby_availability_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","computed":true},"start_hour":{"type":"TypeInt","computed":true},"start_minute":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"storage":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","computed":true},"iops":{"type":"TypeInt","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement_enabled":{"type":"TypeBool","computed":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","computed":true},"email_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"retention_days":{"type":"TypeInt","computed":true},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_endpoint":{"type":"TypeString","computed":true}}}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_ip_address_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"public_ip_prefix_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_netapp_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_level":{"type":"TypeString","computed":true},"size_in_tb":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"volume_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true},"daily_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"hourly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"monthly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","computed":true,"elem":{"type":"TypeInt"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"network_features":{"type":"TypeString","computed":true},"pool_name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"security_style":{"type":"TypeString","optional":true},"service_level":{"type":"TypeString","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"volume_path":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true},"application_identifier":{"type":"TypeString","computed":true},"group_description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","computed":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"data_protection_snapshot_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","computed":true}}}},"export_policy_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","computed":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"nfsv41_enabled":{"type":"TypeBool","computed":true},"root_access_enabled":{"type":"TypeBool","computed":true},"rule_index":{"type":"TypeInt","computed":true},"unix_read_only":{"type":"TypeBool","computed":true},"unix_read_write":{"type":"TypeBool","computed":true}}}},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proximity_placement_group_id":{"type":"TypeString","computed":true},"security_style":{"type":"TypeString","computed":true},"service_level":{"type":"TypeString","computed":true},"snapshot_directory_visible":{"type":"TypeBool","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","computed":true},"volume_spec_name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"internal_dns_name_label":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","computed":true},"load_balancer_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_manager_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"security_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"destination_address_prefix":{"type":"TypeString","computed":true},"destination_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","computed":true},"destination_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_service_tags":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv4_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv6_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"location_filter":{"type":"TypeString","optional":true,"forceNew":true},"service":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"application_mode":{"type":"TypeString","computed":true},"bundle_id":{"type":"TypeString","computed":true},"key_id":{"type":"TypeString","computed":true},"team_id":{"type":"TypeString","computed":true},"token":{"type":"TypeString","computed":true}}}},"gcm_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"api_key":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"ip_forwarding_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","computed":true},"anti_virus_profile":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"dns_subscription":{"type":"TypeString","computed":true},"file_blocking_profile":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_trust_certificate":{"type":"TypeString","computed":true},"outbound_untrust_certificate":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"url_filtering_profile":{"type":"TypeString","computed":true},"vulnerability_profile":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_platform_image":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"offer":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_policy_assignment":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"enforce":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","computed":true,"elem":{"schema":{"content":{"type":"TypeString","computed":true},"policy_definition_reference_id":{"type":"TypeString","computed":true}}}},"not_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeString","computed":true},"policy_definition_id":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_definition_built_in":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_definition_group":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","computed":true},"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"policy_definition_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"policy_definition_id":{"type":"TypeString","computed":true},"policy_group_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","computed":true}}}},"policy_definitions":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"assignment_hash":{"type":"TypeString","computed":true},"compliance_status":{"type":"TypeString","computed":true},"content_hash":{"type":"TypeString","computed":true},"content_uri":{"type":"TypeString","computed":true},"last_compliance_status_checked":{"type":"TypeString","computed":true},"latest_report_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"virtual_machine_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_dns_servers":{"type":"TypeList","computed":true,"elem":{"schema":{"ip_address":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true},"private_dns_zone_name":{"type":"TypeString","required":true},"registration_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_endpoint_connection":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_service_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"request_response":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","computed":true},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"nat_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_link_service_endpoint_connections":{"schema":{"location":{"type":"TypeString","computed":true},"private_endpoint_connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"connection_id":{"type":"TypeString","computed":true},"connection_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"private_endpoint_id":{"type":"TypeString","computed":true},"private_endpoint_name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_id":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_proximity_placement_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","computed":true},"ddos_protection_mode":{"type":"TypeString","computed":true},"ddos_protection_plan_id":{"type":"TypeString","computed":true},"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"reverse_fqdn":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"prefix_length":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ips":{"schema":{"allocation_type":{"type":"TypeString","optional":true},"attachment_status":{"type":"TypeString","optional":true},"name_prefix":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_public_maintenance_configurations":{"schema":{"configs":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"duration":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maintenance_scope":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_recovery_services_vault":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","computed":true},"enable_non_ssl_port":{"type":"TypeBool","computed":true},"family":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patch_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeString","computed":true},"start_hour_utc":{"type":"TypeInt","computed":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","computed":true},"redis_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","computed":true},"aof_storage_connection_string_0":{"type":"TypeString","computed":true},"aof_storage_connection_string_1":{"type":"TypeString","computed":true},"enable_authentication":{"type":"TypeBool","computed":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","computed":true},"maxmemory_delta":{"type":"TypeInt","computed":true},"maxmemory_policy":{"type":"TypeString","computed":true},"maxmemory_reserved":{"type":"TypeInt","computed":true},"notify_keyspace_events":{"type":"TypeString","computed":true},"rdb_backup_enabled":{"type":"TypeBool","computed":true},"rdb_backup_frequency":{"type":"TypeInt","computed":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","computed":true},"rdb_storage_connection_string":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_enterprise_database":{"schema":{"cluster_id":{"type":"TypeString","required":true},"linked_database_group_nickname":{"type":"TypeString","computed":true},"linked_database_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","computed":true},"managed_by":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_resource_group_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_resources":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true},"required_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"resources":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"permissions":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true},"scope":{"type":"TypeString","optional":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"communities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"rule_type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_route_table":{"schema":{"bgp_route_propagation_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop_in_ip_address":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_search_service":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_anomaly":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"mode":{"type":"TypeString","computed":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_template":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true},"nrt_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"scheduled_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"query_frequency":{"type":"TypeString","computed":true},"query_period":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","computed":true},"trigger_threshold":{"type":"TypeInt","computed":true}}}},"security_incident_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"product_filter":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"per_site_scaling_enabled":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","computed":true},"zone_balancing_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"partner_namespace_id":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","optional":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"support_ordering":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_shared_image":{"schema":{"architecture":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"eula":{"type":"TypeString","computed":true},"gallery_name":{"type":"TypeString","required":true},"hyper_v_generation":{"type":"TypeString","computed":true},"identifier":{"type":"TypeList","computed":true,"elem":{"schema":{"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"privacy_statement_uri":{"type":"TypeString","computed":true},"purchase_plan":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true}}}},"release_note_uri":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"specialized":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_shared_image_version":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_disk_image_size_gb":{"type":"TypeInt","computed":true},"os_disk_snapshot_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sort_versions_by_semver":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_shared_image_versions":{"schema":{"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"images":{"type":"TypeList","computed":true,"elem":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"hostname":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true},"recovery_fabric_name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","computed":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","computed":true},"primary_zone":{"type":"TypeString","computed":true},"recovery_edge_zone":{"type":"TypeString","computed":true},"recovery_zone":{"type":"TypeString","computed":true}}}},"failover_deployment_model":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_group":{"type":"TypeSet","computed":true,"elem":{"schema":{"post_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"pre_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"replicated_protected_items":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"recovery_vault_id":{"type":"TypeString","required":true},"source_recovery_fabric_id":{"type":"TypeString","computed":true},"target_recovery_fabric_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_snapshot":{"schema":{"creation_option":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","computed":true},"token_secret":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_spring_cloud_app":{"schema":{"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"is_public":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"persistent_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","computed":true},"size_in_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"tls_enabled":{"type":"TypeBool","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_spring_cloud_service":{"schema":{"config_server_git_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"repository":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"pattern":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","computed":true},"elastic_pool_name":{"type":"TypeString","computed":true},"failover_group_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"read_scale":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ssh_public_key":{"schema":{"name":{"type":"TypeString","required":true},"public_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","computed":true},"account_kind":{"type":"TypeString","computed":true},"account_replication_type":{"type":"TypeString","computed":true},"account_tier":{"type":"TypeString","computed":true},"allow_nested_items_to_be_public":{"type":"TypeBool","computed":true},"azure_files_authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"domain_sid":{"type":"TypeString","computed":true},"forest_name":{"type":"TypeString","computed":true},"netbios_domain_name":{"type":"TypeString","computed":true},"storage_sid":{"type":"TypeString","computed":true}}}},"directory_type":{"type":"TypeString","computed":true}}}},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"enable_https_traffic_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"is_hns_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"queue_encryption_key_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"table_encryption_key_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account_blob_container_sas":{"schema":{"cache_control":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_language":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_address":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_account_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_addresses":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"filter":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"process":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"tag":{"type":"TypeBool","required":true},"update":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"resource_types":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeBool","required":true},"object":{"type":"TypeBool","required":true},"service":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"services":{"type":"TypeList","required":true,"elem":{"schema":{"blob":{"type":"TypeBool","required":true},"file":{"type":"TypeBool","required":true},"queue":{"type":"TypeBool","required":true},"table":{"type":"TypeBool","required":true}}},"maxItems":1},"signed_version":{"type":"TypeString","optional":true,"default":"2017-07-29"},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","computed":true},"content_md5":{"type":"TypeString","computed":true},"content_type":{"type":"TypeString","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","computed":true},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_encryption_scope":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"schema":{"base_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true}}}},"snapshot":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}},"version":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}}}}},"enabled":{"type":"TypeBool","computed":true},"filters":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operation":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"prefix_match":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true}}}},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_share":{"schema":{"acl":{"type":"TypeList","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"expiry":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"start":{"type":"TypeString","computed":true}}}},"id":{"type":"TypeString","computed":true}}}},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"quota":{"type":"TypeInt","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true},"storage_sync_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true},"row_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","computed":true},"data_locale":{"type":"TypeString","computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_policy":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"job_id":{"type":"TypeString","computed":true},"last_output_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"output_error_policy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_mode":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true},"streaming_units":{"type":"TypeInt","computed":true},"transformation_query":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subnet":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"route_table_id":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_subscription":{"schema":{"display_name":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscription_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscriptions":{"schema":{"display_name_contains":{"type":"TypeString","optional":true},"display_name_prefix":{"type":"TypeString","optional":true},"subscriptions":{"type":"TypeList","computed":true,"elem":{"schema":{"display_name":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_synapse_workspace":{"schema":{"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_template_spec_version":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template_body":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_tenant_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_geographical_location":{"schema":{"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","computed":true,"elem":{"schema":{"relative_name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true}}}},"fqdn":{"type":"TypeString","computed":true},"monitor_config":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"expected_status_code_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"timeout_in_seconds":{"type":"TypeInt","computed":true},"tolerated_number_of_failures":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_status":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","computed":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"read":5}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"load_balancer_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_sessions_allowed":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"personal_desktop_assignment_type":{"type":"TypeString","computed":true},"preferred_app_group_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scheduled_agent_updates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"hour_of_day":{"type":"TypeInt","computed":true}}}},"timezone":{"type":"TypeString","computed":true},"use_session_host_timezone":{"type":"TypeBool","computed":true}}}},"start_vm_on_connect":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"validate_environment":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"default_route_table_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"remote_virtual_network_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"routing":{"type":"TypeList","computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","computed":true},"propagated_route_table":{"type":"TypeList","computed":true,"elem":{"schema":{"labels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"static_vnet_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"next_hop_ip_address":{"type":"TypeString","computed":true}}}}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"instances":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"instance_id":{"type":"TypeString","computed":true},"latest_model_applied":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnets":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","computed":true},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"peer_weight":{"type":"TypeInt","computed":true},"peering_address":{"type":"TypeString","computed":true}}}},"custom_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"default_local_network_gateway_id":{"type":"TypeString","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"generation":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"vpn_client_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","computed":true},"aad_issuer":{"type":"TypeString","computed":true},"aad_tenant":{"type":"TypeString","computed":true},"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","computed":true},"radius_server_secret":{"type":"TypeString","computed":true},"revoked_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"root_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"vpn_client_protocols":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"vpn_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"connection_protocol":{"type":"TypeString","computed":true},"dpd_timeout_seconds":{"type":"TypeInt","computed":true},"egress_bytes_transferred":{"type":"TypeInt","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"express_route_circuit_id":{"type":"TypeString","computed":true},"express_route_gateway_bypass":{"type":"TypeBool","computed":true},"ingress_bytes_transferred":{"type":"TypeInt","computed":true},"ipsec_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"dh_group":{"type":"TypeString","computed":true},"ike_encryption":{"type":"TypeString","computed":true},"ike_integrity":{"type":"TypeString","computed":true},"ipsec_encryption":{"type":"TypeString","computed":true},"ipsec_integrity":{"type":"TypeString","computed":true},"pfs_group":{"type":"TypeString","computed":true},"sa_datasize":{"type":"TypeInt","computed":true},"sa_lifetime":{"type":"TypeInt","computed":true}}}},"local_azure_ip_address_enabled":{"type":"TypeBool","computed":true},"local_network_gateway_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peer_virtual_network_gateway_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"routing_weight":{"type":"TypeInt","computed":true},"shared_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","computed":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","computed":true},"virtual_network_gateway_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","computed":true},"disable_vpn_encryption":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"office365_local_breakout_category":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vpn_site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"management_cluster":{"type":"TypeList","computed":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","computed":true}}}},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_subnet_cidr":{"type":"TypeString","computed":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_vpn_gateway":{"schema":{"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"instance_1_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"peer_weight":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_unit":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_application_firewall_policy":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_pubsub_private_link_resource":{"schema":{"shared_private_link_resource_types":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","computed":true}}}},"web_pubsub_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","computed":true},"docker_container_name":{"type":"TypeString","computed":true},"docker_container_registry":{"type":"TypeString","computed":true},"docker_container_tag":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_core_version":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_embedded_server_enabled":{"type":"TypeBool","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python":{"type":"TypeBool","computed":true},"python_version":{"type":"TypeString","computed":true},"tomcat_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"custom_action":{"type":"TypeList","computed":true,"elem":{"schema":{"executable":{"type":"TypeString","computed":true},"parameters":{"type":"TypeString","computed":true}}}},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","computed":true},"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"virtual_application":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"preload":{"type":"TypeBool","computed":true},"virtual_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"virtual_path":{"type":"TypeString","computed":true}}}},"virtual_path":{"type":"TypeString","computed":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}}}}} +{"providerName":"azurerm","schemaVersion":"1","providerSchema":{"schema":{"auxiliary_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":3},"client_certificate":{"type":"TypeString","optional":true,"description":"Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_password":{"type":"TypeString","optional":true,"description":"The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_path":{"type":"TypeString","optional":true,"description":"The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service Principal using a Client Certificate."},"client_id":{"type":"TypeString","optional":true,"description":"The Client ID which should be used."},"client_id_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client ID which should be used."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"client_secret_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"disable_correlation_request_id":{"type":"TypeBool","optional":true,"description":"This will disable the x-ms-correlation-request-id header."},"disable_terraform_partner_id":{"type":"TypeBool","optional":true,"description":"This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified."},"environment":{"type":"TypeString","required":true,"description":"The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public."},"features":{"type":"TypeList","required":true,"elem":{"schema":{"api_management":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"app_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"application_insights":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_generated_rule":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cognitive_account":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_certificates_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_hardware_security_modules_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_managed_hardware_security_module` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_keys_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_secrets_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be permanently deleted (e.g purged), when destroyed"},"recover_soft_deleted_certificates":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be restored, instead of creating new ones"},"recover_soft_deleted_key_vaults":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be restored, instead of creating new ones"},"recover_soft_deleted_keys":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be restored, instead of creating new ones"},"recover_soft_deleted_secrets":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be restored, instead of creating new ones"}}},"maxItems":1},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"permanently_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"managed_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"expand_without_downtime":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_deletion_if_contains_resources":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_cancellation_on_destroy":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"template_deployment":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_nested_items_during_deletion":{"type":"TypeBool","required":true}}},"maxItems":1},"virtual_machine":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_os_disk_on_deletion":{"type":"TypeBool","optional":true,"default":false},"graceful_shutdown":{"type":"TypeBool","optional":true,"default":false},"skip_shutdown_and_force_delete":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"virtual_machine_scale_set":{"type":"TypeList","optional":true,"elem":{"schema":{"force_delete":{"type":"TypeBool","optional":true,"default":false},"roll_instances_when_required":{"type":"TypeBool","required":true},"scale_to_zero_before_deletion":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1,"minItems":1},"metadata_host":{"type":"TypeString","required":true,"description":"The Hostname which should be used for the Azure Metadata Service."},"msi_endpoint":{"type":"TypeString","optional":true,"description":"The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected automatically. "},"oidc_request_token":{"type":"TypeString","optional":true,"description":"The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_request_url":{"type":"TypeString","optional":true,"description":"The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_token":{"type":"TypeString","optional":true,"description":"The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"oidc_token_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"partner_id":{"type":"TypeString","optional":true,"description":"A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution."},"skip_provider_registration":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already registered?"},"storage_use_azuread":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?"},"subscription_id":{"type":"TypeString","optional":true,"description":"The Subscription ID which should be used."},"tenant_id":{"type":"TypeString","optional":true,"description":"The Tenant ID which should be used."},"use_cli":{"type":"TypeBool","optional":true,"default":true,"description":"Allow Azure CLI to be used for Authentication."},"use_msi":{"type":"TypeBool","optional":true,"description":"Allow Managed Service Identity to be used for Authentication."},"use_oidc":{"type":"TypeBool","optional":true,"description":"Allow OpenID Connect to be used for authentication"}},"resources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"country_code":{"type":"TypeString","optional":true,"description":"Country code of the B2C tenant. See https://aka.ms/B2CDataResidency for valid country codes.","computed":true,"forceNew":true},"data_residency_location":{"type":"TypeString","required":true,"description":"Location in which the B2C tenant is hosted and data resides. See https://aka.ms/B2CDataResidency for more information.","forceNew":true},"display_name":{"type":"TypeString","optional":true,"description":"The initial display name of the B2C tenant.","computed":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix.","forceNew":true},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"description":"Billing SKU for the B2C tenant. See https://aka.ms/b2cBilling for more information."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","optional":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"filtered_sync_enabled":{"type":"TypeBool","optional":true,"default":false},"initial_replica_set":{"type":"TypeList","required":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notifications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","optional":true,"default":false},"notify_global_admins":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","required":true},"external_access_enabled":{"type":"TypeBool","optional":true,"default":false},"pfx_certificate":{"type":"TypeString","required":true},"pfx_certificate_password":{"type":"TypeString","required":true},"public_certificate":{"type":"TypeString","computed":true}}},"maxItems":1},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","optional":true,"default":false},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"ntlm_v1_enabled":{"type":"TypeBool","optional":true,"default":false},"sync_kerberos_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_ntlm_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_on_prem_passwords":{"type":"TypeBool","optional":true,"default":false},"tls_v1_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_replica_set":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"external_access_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_trust":{"schema":{"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"trusted_domain_dns_ips":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":2},"trusted_domain_fqdn":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_advanced_threat_protection":{"schema":{"enabled":{"type":"TypeBool","required":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_analysis_services_server":{"schema":{"admin_users":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"backup_blob_container_uri":{"type":"TypeString","optional":true},"enable_power_bi_service":{"type":"TypeBool","optional":true},"ipv4_firewall_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"range_end":{"type":"TypeString","required":true},"range_start":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"querypool_connection_mode":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_full_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_connection":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}}},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_password":{"type":"TypeString","optional":true},"encoded_certificate":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","required":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}},"maxItems":10},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"delegation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"subscriptions_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","optional":true},"user_registration_enabled":{"type":"TypeBool","optional":true,"default":false},"validation_key":{"type":"TypeString","optional":true}}},"maxItems":1},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"management_api_url":{"type":"TypeString","computed":true},"min_api_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_sender_email":{"type":"TypeString","optional":true,"computed":true},"policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}}},"maxItems":1},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocols":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_http2":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"publisher_email":{"type":"TypeString","required":true},"publisher_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scm_url":{"type":"TypeString","computed":true},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_backend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls11":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls11":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_gcm_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_gcm_sha384_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"triple_des_ciphers_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"sign_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"sign_up":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"terms_of_service":{"type":"TypeList","required":true,"elem":{"schema":{"consent_required":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","required":true},"text":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"virtual_network_type":{"type":"TypeString","optional":true,"default":"None"},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_type":{"type":"TypeString","optional":true,"computed":true},"contact":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"content_format":{"type":"TypeString","required":true},"content_value":{"type":"TypeString","required":true},"wsdl_selector":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"license":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"oauth2_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization_server_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true}}},"maxItems":1},"openid_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"openid_provider_name":{"type":"TypeString","required":true}}},"maxItems":1},"path":{"type":"TypeString","optional":true,"computed":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision":{"type":"TypeString","required":true,"forceNew":true},"revision_description":{"type":"TypeString","optional":true},"service_url":{"type":"TypeString","optional":true,"computed":true},"soap_pass_through":{"type":"TypeBool","optional":true,"computed":true},"source_api_id":{"type":"TypeString","optional":true},"subscription_key_parameter_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"header":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true}}},"maxItems":1},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"terms_of_service_url":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"computed":true},"version_description":{"type":"TypeString","optional":true},"version_set_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"method":{"type":"TypeString","required":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"query_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"response":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}},"status_code":{"type":"TypeInt","required":true}}}},"template_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"url_template":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_tag":{"schema":{"api_operation_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_release":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"components":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","required":true},"definitions":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_tag":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_api_tag_description":{"schema":{"api_tag_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"external_documentation_description":{"type":"TypeString","optional":true},"external_documentation_url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"version_header_name":{"type":"TypeString","optional":true},"version_query_name":{"type":"TypeString","optional":true},"versioning_scheme":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_authorization_server":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authorization_endpoint":{"type":"TypeString","required":true},"authorization_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_authentication_method":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_registration_endpoint":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"default_scope":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"grant_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_owner_password":{"type":"TypeString","optional":true},"resource_owner_username":{"type":"TypeString","optional":true},"support_state":{"type":"TypeBool","optional":true},"token_body_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"token_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_backend":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"credentials":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","optional":true},"scheme":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"header":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"query":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true},"service_fabric_cluster":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_id":{"type":"TypeString","optional":true,"computed":true},"client_certificate_thumbprint":{"type":"TypeString","optional":true,"computed":true},"management_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"max_partition_resolution_retries":{"type":"TypeInt","required":true},"server_certificate_thumbprints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"server_x509_name":{"type":"TypeSet","optional":true,"elem":{"schema":{"issuer_certificate_thumbprint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"title":{"type":"TypeString","optional":true},"tls":{"type":"TypeList","optional":true,"elem":{"schema":{"validate_certificate_chain":{"type":"TypeBool","optional":true},"validate_certificate_name":{"type":"TypeBool","optional":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_certificate":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"data":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","computed":true},"key_vault_identity_client_id":{"type":"TypeString","optional":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_custom_domain":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_api_management_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_email_template":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true},"template_name":{"type":"TypeString","required":true,"forceNew":true},"title":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location_data":{"type":"TypeList","required":true,"elem":{"schema":{"city":{"type":"TypeString","optional":true},"district":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_api":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_certificate_authority":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"is_trusted":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_id":{"type":"TypeString","required":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"host_name":{"type":"TypeString","required":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request_client_certificate_enabled":{"type":"TypeBool","optional":true},"tls10_enabled":{"type":"TypeBool","optional":true},"tls11_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_global_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"external_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"custom","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aad":{"schema":{"allowed_tenants":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_tenant":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aadb2c":{"schema":{"allowed_tenant":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authority":{"type":"TypeString","required":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"password_reset_policy":{"type":"TypeString","optional":true},"profile_editing_policy":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_policy":{"type":"TypeString","required":true},"signin_tenant":{"type":"TypeString","required":true},"signup_policy":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_facebook":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_google":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_microsoft":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_twitter":{"schema":{"api_key":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_secret_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_logger":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"application_insights":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"instrumentation_key":{"type":"TypeString","required":true}}},"maxItems":1},"buffered":{"type":"TypeBool","optional":true,"default":true},"description":{"type":"TypeString","optional":true},"eventhub":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_named_value":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","optional":true},"value_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"secret_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_notification_recipient_email":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"email":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_notification_recipient_user":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_openid_connect_provider":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"metadata_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_policy":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"approval_required":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"published":{"type":"TypeBool","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"subscriptions_limit":{"type":"TypeInt","optional":true},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_tag":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_management_product_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_redis_cache":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"cache_location":{"type":"TypeString","optional":true,"default":"default"},"connection_string":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_subscription":{"schema":{"allow_tracing":{"type":"TypeBool","optional":true,"default":true},"api_id":{"type":"TypeString","optional":true,"forceNew":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","optional":true,"computed":true},"product_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true,"computed":true},"state":{"type":"TypeString","optional":true,"default":"submitted"},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_tag":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"confirmation":{"type":"TypeString","optional":true,"forceNew":true},"email":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","required":true},"last_name":{"type":"TypeString","required":true},"note":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","optional":true,"computed":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_identifier":{"type":"TypeString","optional":true}}},"maxItems":1},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","optional":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","optional":true,"default":"free"},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":7,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_feature":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"percentage_filter_value":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"targeting_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_rollout_percentage":{"type":"TypeInt","required":true},"groups":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"rollout_percentage":{"type":"TypeInt","required":true}}}},"users":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"timewindow_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","optional":true},"start":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"computed":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","required":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"kv"},"value":{"type":"TypeString","optional":true,"computed":true},"vault_key_reference":{"type":"TypeString","optional":true}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true},"frequency_unit":{"type":"TypeString","required":true},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false},"retention_period_in_days":{"type":"TypeInt","optional":true,"default":30},"start_time":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_mode":{"type":"TypeString","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_active_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_slot_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate":{"schema":{"app_service_plan_id":{"type":"TypeString","optional":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hosting_environment_profile_id":{"type":"TypeString","computed":true},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"pfx_blob":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate_binding":{"schema":{"app_service_name":{"type":"TypeString","computed":true},"certificate_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","computed":true},"hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","optional":true,"default":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","optional":true,"computed":true},"distinguished_name":{"type":"TypeString","optional":true,"computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","optional":true,"default":2048},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_type":{"type":"TypeString","optional":true,"default":"Standard"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","optional":true,"default":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_custom_hostname_binding":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_environment":{"schema":{"allowed_user_ip_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"front_end_scale_factor":{"type":"TypeInt","optional":true,"default":15},"internal_ip_address":{"type":"TypeString","computed":true},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","optional":true,"default":"I1"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_ip_address":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","optional":true,"default":true},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dedicated_host_count":{"type":"TypeInt","optional":true,"forceNew":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_hybrid_connection":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","required":true},"relay_id":{"type":"TypeString","required":true,"forceNew":true},"relay_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey"},"send_key_value":{"type":"TypeString","computed":true},"service_bus_namespace":{"type":"TypeString","computed":true},"service_bus_suffix":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_managed_certificate":{"schema":{"canonical_name":{"type":"TypeString","computed":true},"custom_hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"is_xenon":{"type":"TypeBool","optional":true},"kind":{"type":"TypeString","optional":true,"default":"Windows","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling":{"type":"TypeBool","optional":true},"reserved":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"size":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_app_service_public_certificate":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"blob":{"type":"TypeString","required":true,"forceNew":true},"certificate_location":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot_custom_hostname_binding":{"schema":{"app_service_slot_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_slot_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"slot_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_source_control":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows or Linux Web App.","forceNew":true},"branch":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The URL for the repository.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`.","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the App use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `false` to enable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`.","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_slot":{"schema":{"branch":{"type":"TypeString","optional":true,"description":"The URL for the repository","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Linux or Windows Web App Slot.","forceNew":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Slot use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `true` to disable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_gateway":{"schema":{"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"autoscale_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"max_capacity":{"type":"TypeInt","optional":true},"min_capacity":{"type":"TypeInt","required":true}}},"maxItems":1},"backend_address_pool":{"type":"TypeSet","required":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"backend_http_settings":{"type":"TypeSet","required":true,"elem":{"schema":{"affinity_cookie_name":{"type":"TypeString","optional":true},"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"connection_draining":{"type":"TypeList","optional":true,"elem":{"schema":{"drain_timeout_sec":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"cookie_based_affinity":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"pick_host_name_from_backend_address":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","required":true},"probe_id":{"type":"TypeString","computed":true},"probe_name":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"request_timeout":{"type":"TypeInt","optional":true,"default":30},"trusted_root_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"enable_http2":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"force_firewall_policy_association":{"type":"TypeBool","optional":true},"frontend_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"private_link_configuration_id":{"type":"TypeString","computed":true},"private_link_configuration_name":{"type":"TypeString","optional":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"minItems":1},"frontend_port":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true}}}},"gateway_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":2},"global":{"type":"TypeList","optional":true,"elem":{"schema":{"request_buffering_enabled":{"type":"TypeBool","required":true},"response_buffering_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"http_listener":{"type":"TypeSet","required":true,"elem":{"schema":{"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"firewall_policy_id":{"type":"TypeString","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_id":{"type":"TypeString","computed":true},"frontend_port_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"require_sni":{"type":"TypeBool","optional":true},"ssl_certificate_id":{"type":"TypeString","computed":true},"ssl_certificate_name":{"type":"TypeString","optional":true},"ssl_profile_id":{"type":"TypeString","computed":true},"ssl_profile_name":{"type":"TypeString","optional":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_link_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true}}}},"probe":{"type":"TypeSet","optional":true,"elem":{"schema":{"host":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"interval":{"type":"TypeInt","required":true},"match":{"type":"TypeList","optional":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"status_code":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"minimum_servers":{"type":"TypeInt","optional":true,"default":0},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"pick_host_name_from_backend_http_settings":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","optional":true},"protocol":{"type":"TypeString","required":true},"timeout":{"type":"TypeInt","required":true},"unhealthy_threshold":{"type":"TypeInt","required":true}}}},"redirect_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"include_path":{"type":"TypeBool","optional":true,"default":false},"include_query_string":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true},"target_listener_id":{"type":"TypeString","computed":true},"target_listener_name":{"type":"TypeString","optional":true},"target_url":{"type":"TypeString","optional":true}}}},"request_routing_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"http_listener_id":{"type":"TypeString","computed":true},"http_listener_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true},"rule_type":{"type":"TypeString","required":true},"url_path_map_id":{"type":"TypeString","computed":true},"url_path_map_name":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rewrite_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"rewrite_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"ignore_case":{"type":"TypeBool","optional":true,"default":false},"negate":{"type":"TypeBool","optional":true,"default":false},"pattern":{"type":"TypeString","required":true},"variable":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"request_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"response_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"rule_sequence":{"type":"TypeInt","required":true},"url":{"type":"TypeList","optional":true,"elem":{"schema":{"components":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","optional":true},"query_string":{"type":"TypeString","optional":true},"reroute":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"ssl_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"ssl_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"ssl_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"ssl_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"trusted_client_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verify_client_cert_issuer_dn":{"type":"TypeBool","optional":true,"default":false}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_client_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"trusted_root_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"url_path_map":{"type":"TypeList","optional":true,"elem":{"schema":{"default_backend_address_pool_id":{"type":"TypeString","computed":true},"default_backend_address_pool_name":{"type":"TypeString","optional":true},"default_backend_http_settings_id":{"type":"TypeString","computed":true},"default_backend_http_settings_name":{"type":"TypeString","optional":true},"default_redirect_configuration_id":{"type":"TypeString","computed":true},"default_redirect_configuration_name":{"type":"TypeString","optional":true},"default_rewrite_rule_set_id":{"type":"TypeString","computed":true},"default_rewrite_rule_set_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"paths":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true}}}}}}},"waf_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group_name":{"type":"TypeString","required":true},"rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}}}}},"enabled":{"type":"TypeBool","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"selector_match_operator":{"type":"TypeString","optional":true}}}},"file_upload_limit_mb":{"type":"TypeInt","optional":true,"default":100},"firewall_mode":{"type":"TypeString","required":true},"max_request_body_size_kb":{"type":"TypeInt","optional":true,"default":128},"request_body_check":{"type":"TypeBool","optional":true,"default":true},"rule_set_type":{"type":"TypeString","optional":true,"default":"OWASP"},"rule_set_version":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","required":true,"forceNew":true},"connection_string":{"type":"TypeString","computed":true},"daily_data_cap_in_gb":{"type":"TypeFloat","optional":true,"computed":true},"daily_data_cap_notifications_disabled":{"type":"TypeBool","optional":true,"computed":true},"disable_ip_masking":{"type":"TypeBool","optional":true,"default":false},"force_customer_storage_for_profiler":{"type":"TypeBool","optional":true,"default":false},"instrumentation_key":{"type":"TypeString","computed":true},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":90},"sampling_percentage":{"type":"TypeFloat","optional":true,"default":100},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_application_insights_analytics_item":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","required":true},"function_alias":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"time_created":{"type":"TypeString","computed":true},"time_modified":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_api_key":{"schema":{"api_key":{"type":"TypeString","computed":true},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"write_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_smart_detection_rule":{"schema":{"additional_email_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"send_emails_to_subscription_owners":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_standard_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","required":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"follow_redirects_enabled":{"type":"TypeBool","optional":true,"default":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"http_verb":{"type":"TypeString","optional":true,"default":"GET"},"parse_dependent_requests_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30},"validation_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"content":{"type":"TypeList","optional":true,"elem":{"schema":{"content_match":{"type":"TypeString","required":true},"ignore_case":{"type":"TypeBool","optional":true,"default":false},"pass_if_text_found":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"expected_status_code":{"type":"TypeInt","optional":true,"default":200},"ssl_cert_remaining_lifetime":{"type":"TypeInt","optional":true},"ssl_check_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"configuration":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook":{"schema":{"category":{"type":"TypeString","optional":true,"default":"workbook"},"data_json":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_id":{"type":"TypeString","optional":true,"default":"azure monitor"},"storage_container_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook_template":{"schema":{"author":{"type":"TypeString","optional":true},"galleries":{"type":"TypeList","required":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","optional":true,"default":0},"resource_type":{"type":"TypeString","optional":true,"default":"Azure Monitor"},"type":{"type":"TypeString","optional":true,"default":"workbook"}}},"minItems":1},"localized":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_data":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster":{"schema":{"agent_public_key_certificate":{"type":"TypeString","required":true,"forceNew":true},"agent_version":{"type":"TypeString","computed":true},"distribution":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"infrastructure":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"offering":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"total_core_count":{"type":"TypeInt","computed":true},"total_node_count":{"type":"TypeInt","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster_extension":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_machine_extension":{"schema":{"arc_machine_id":{"type":"TypeString","required":true,"forceNew":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true,"default":true},"force_update_tag":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_private_link_scope":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"open_enclave_policy_base64":{"type":"TypeString","optional":true},"policy":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"environment_type":{"type":"TypeString","optional":true}}}},"policy_signing_certificate_data":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sev_snp_policy_base64":{"type":"TypeString","optional":true},"sgx_enclave_policy_base64":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tpm_policy_base64":{"type":"TypeString","optional":true},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automanage_configuration":{"schema":{"antimalware":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusions":{"type":"TypeList","optional":true,"elem":{"schema":{"extensions":{"type":"TypeString","optional":true},"paths":{"type":"TypeString","optional":true},"processes":{"type":"TypeString","optional":true}}},"maxItems":1},"real_time_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_day":{"type":"TypeInt","optional":true,"default":8},"scheduled_scan_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_time_in_minutes":{"type":"TypeInt","optional":true,"default":0},"scheduled_scan_type":{"type":"TypeString","optional":true,"default":"Quick"}}},"maxItems":1},"automation_account_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_security_baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true,"default":"ApplyAndAutoCorrect"}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"instant_rp_retention_range_in_days":{"type":"TypeInt","optional":true,"default":5},"policy_name":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"daily_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Days"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_policy_type":{"type":"TypeString","optional":true,"default":"LongTermRetentionPolicy"},"weekly_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Weeks"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"schedule_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule_policy_type":{"type":"TypeString","optional":true,"default":"SimpleSchedulePolicy"},"schedule_run_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"schedule_run_frequency":{"type":"TypeString","optional":true,"default":"Daily"},"schedule_run_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"boot_diagnostics_enabled":{"type":"TypeBool","optional":true,"default":false},"defender_for_cloud_enabled":{"type":"TypeBool","optional":true,"default":false},"guest_configuration_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status_change_alert_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_account":{"schema":{"dsc_primary_access_key":{"type":"TypeString","computed":true},"dsc_secondary_access_key":{"type":"TypeString","computed":true},"dsc_server_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"key_source":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"base64":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"exportable":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"values":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"automation_certificate_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_classic_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_asset_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"subscription_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_service_principal":{"schema":{"application_id":{"type":"TypeString","required":true},"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_thumbprint":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_type":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"field":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"is_encrypted":{"type":"TypeBool","optional":true},"is_optional":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"is_global":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_credential":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_configuration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_embedded":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_verbose":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_nodeconfiguration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"configuration_name":{"type":"TypeString","computed":true},"content_embedded":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_hybrid_runbook_worker":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"ip":{"type":"TypeString","computed":true},"last_seen_date_time":{"type":"TypeString","computed":true},"registration_date_time":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"worker_group_name":{"type":"TypeString","required":true,"forceNew":true},"worker_id":{"type":"TypeString","required":true,"forceNew":true},"worker_name":{"type":"TypeString","computed":true},"worker_type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_hybrid_runbook_worker_group":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"credential_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_job_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"job_schedule_id":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on":{"type":"TypeString","optional":true,"forceNew":true},"runbook_name":{"type":"TypeString","required":true,"forceNew":true},"schedule_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_module":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"module_link":{"type":"TypeList","required":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_python3_package":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_uri":{"type":"TypeString","required":true,"forceNew":true},"content_version":{"type":"TypeString","optional":true,"forceNew":true},"hash_algorithm":{"type":"TypeString","optional":true,"forceNew":true},"hash_value":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_runbook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","optional":true,"computed":true},"description":{"type":"TypeString","optional":true},"draft":{"type":"TypeList","optional":true,"elem":{"schema":{"content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"creation_time":{"type":"TypeString","computed":true},"edit_mode_enabled":{"type":"TypeBool","optional":true},"last_modified_time":{"type":"TypeString","computed":true},"output_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true},"mandatory":{"type":"TypeBool","optional":true,"default":false},"position":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"job_schedule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"job_schedule_id":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_on":{"type":"TypeString","optional":true},"schedule_name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_activity_trace_level":{"type":"TypeInt","optional":true},"log_progress":{"type":"TypeBool","required":true},"log_verbose":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"runbook_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true,"computed":true},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"timezone":{"type":"TypeString","optional":true,"default":"Etc/UTC"},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_software_update_configuration":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"duration":{"type":"TypeString","optional":true,"default":"PT2H"},"error_code":{"type":"TypeString","computed":true},"error_meesage":{"type":"TypeString","computed":true},"error_message":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"non_azure_computer_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operating_system":{"type":"TypeString","optional":true,"computed":true},"post_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"pre_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"advanced_month_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"advanced_week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"creation_time":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"expiry_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"is_enabled":{"type":"TypeBool","optional":true,"default":true},"last_modified_time":{"type":"TypeString","computed":true},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}},"maxItems":1},"next_run":{"type":"TypeString","optional":true,"computed":true},"next_run_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"start_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true,"default":"Etc/UTC"}}},"maxItems":1},"target":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"locations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tag_filter":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeList","optional":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}}},"non_azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"function_alias":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_machine_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_automation_source_control":{"schema":{"automatic_sync":{"type":"TypeBool","optional":true,"default":false},"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"branch":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"folder_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_runbook_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_url":{"type":"TypeString","required":true},"security":{"type":"TypeList","required":true,"elem":{"schema":{"refresh_token":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"source_control_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_watcher":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"etag":{"type":"TypeString","optional":true},"execution_frequency_in_seconds":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script_name":{"type":"TypeString","required":true,"forceNew":true},"script_parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"script_run_on":{"type":"TypeString","required":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_webhook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiry_time":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on_worker_group":{"type":"TypeString","optional":true},"runbook_name":{"type":"TypeString","required":true},"uri":{"type":"TypeString","configMode":"Auto","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"default":3,"forceNew":true},"platform_update_domain_count":{"type":"TypeInt","optional":true,"default":5,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_container_storage_account":{"schema":{"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_file_share":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hourly":{"type":"TypeList","optional":true,"elem":{"schema":{"interval":{"type":"TypeInt","required":true},"start_time":{"type":"TypeString","required":true},"window_duration":{"type":"TypeInt","required":true}}},"maxItems":1},"time":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","required":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hour_duration":{"type":"TypeInt","optional":true},"hour_interval":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","required":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instant_restore_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prefix":{"type":"TypeString","required":true},"suffix":{"type":"TypeString","optional":true}}},"maxItems":1},"instant_restore_retention_days":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_type":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm_workload":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"protection_policy":{"type":"TypeSet","required":true,"elem":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","optional":true},"frequency_in_minutes":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","optional":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"policy_type":{"type":"TypeString","required":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"simple_retention":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1}}}},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeList","required":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1},"workload_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_protected_file_share":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_file_share_name":{"type":"TypeString","required":true,"forceNew":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":80,"read":5,"delete":80,"update":80}},"azurerm_backup_protected_vm":{"schema":{"backup_policy_id":{"type":"TypeString","optional":true},"exclude_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"protection_state":{"type":"TypeString","optional":true,"computed":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":80,"update":120}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","optional":true,"default":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ip_connect_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","optional":true,"default":2},"shareable_link_enabled":{"type":"TypeBool","optional":true,"default":false},"sku":{"type":"TypeString","optional":true,"default":"Basic"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"allowed_authentication_modes":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"account_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1},"node_management_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1}}},"maxItems":1},"pool_allocation_mode":{"type":"TypeString","optional":true,"default":"BatchService"},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_authentication_mode":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_account_node_identity":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"allow_updates":{"type":"TypeBool","optional":true,"default":true},"default_version":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate":{"type":"TypeString","required":true},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","optional":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","required":true,"forceNew":true},"thumbprint_algorithm":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_job":{"schema":{"batch_pool_id":{"type":"TypeString","required":true,"forceNew":true},"common_environment_properties":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"task_retry_maximum":{"type":"TypeInt","optional":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","optional":true,"default":"PT15M"},"formula":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"store_location":{"type":"TypeString","required":true},"store_name":{"type":"TypeString","optional":true},"visibility":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"type":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"data_disks":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"default":"ReadOnly"},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","required":true}}}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"extensions":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","optional":true}}}},"fixed_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"node_deallocation_method":{"type":"TypeString","optional":true},"resize_timeout":{"type":"TypeString","optional":true,"default":"PT15M"},"target_dedicated_nodes":{"type":"TypeInt","optional":true,"default":1},"target_low_priority_nodes":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inter_node_communication":{"type":"TypeString","optional":true,"default":"Enabled"},"license_type":{"type":"TypeString","optional":true},"max_tasks_per_node":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"account_name":{"type":"TypeString","required":true},"blobfuse_options":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"identity_id":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"sas_key":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"azure_file_url":{"type":"TypeString","required":true},"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true}}}},"cifs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"nfs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"dynamic_vnet_assignment_scope":{"type":"TypeString","optional":true,"default":"none","forceNew":true},"endpoint_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port_range":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"access":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","required":true,"forceNew":true},"source_port_ranges":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString","default":"*"}}}}},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"public_address_provisioning_type":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"node_agent_sku_id":{"type":"TypeString","required":true,"forceNew":true},"node_placement":{"type":"TypeList","optional":true,"elem":{"schema":{"policy":{"type":"TypeString","optional":true,"default":"Regional"}}}},"os_disk_placement":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_task":{"type":"TypeList","optional":true,"elem":{"schema":{"command_line":{"type":"TypeString","required":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"run_options":{"type":"TypeString","optional":true},"working_directory":{"type":"TypeString","optional":true}}}},"resource_file":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","optional":true},"blob_prefix":{"type":"TypeString","optional":true},"file_mode":{"type":"TypeString","optional":true},"file_path":{"type":"TypeString","optional":true},"http_url":{"type":"TypeString","optional":true},"storage_container_url":{"type":"TypeString","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"task_retry_maximum":{"type":"TypeInt","optional":true},"user_identity":{"type":"TypeList","required":true,"elem":{"schema":{"auto_user":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","optional":true,"default":"NonAdmin"},"scope":{"type":"TypeString","optional":true,"default":"Task"}}},"maxItems":1},"user_name":{"type":"TypeString","optional":true}}},"maxItems":1},"wait_for_success":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"stop_pending_resize_operation":{"type":"TypeBool","optional":true,"default":false},"storage_image_reference":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"target_node_communication_mode":{"type":"TypeString","optional":true},"task_scheduling_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","optional":true,"computed":true}}}},"user_accounts":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","required":true},"linux_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gid":{"type":"TypeInt","optional":true},"ssh_private_key":{"type":"TypeString","optional":true},"uid":{"type":"TypeInt","optional":true}}}},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"windows_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}}}}}},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_billing_account_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"billing_account_id":{"type":"TypeString","required":true,"forceNew":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_blueprint_assignment":{"schema":{"blueprint_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_exclude_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":200},"lock_exclude_principals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"lock_mode":{"type":"TypeString","optional":true,"default":"None"},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeString","optional":true},"target_subscription_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","computed":true},"version_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_bot_channel_alexa":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skill_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_direct_line_speech":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"cognitive_account_id":{"type":"TypeString","optional":true},"cognitive_service_access_key":{"type":"TypeString","required":true},"cognitive_service_location":{"type":"TypeString","required":true},"custom_speech_model_id":{"type":"TypeString","optional":true},"custom_voice_deployment_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_directline":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site":{"type":"TypeSet","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"enhanced_authentication_enabled":{"type":"TypeBool","optional":true,"default":false},"id":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key2":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"trusted_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"v1_allowed":{"type":"TypeBool","optional":true,"default":true},"v3_allowed":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_email":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"email_address":{"type":"TypeString","required":true},"email_password":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_facebook":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"facebook_application_id":{"type":"TypeString","required":true},"facebook_application_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"page":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_line":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"line_channel":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"secret":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_ms_teams":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"calling_web_hook":{"type":"TypeString","optional":true,"computed":true},"enable_calling":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_slack":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"landing_page_url":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signing_secret":{"type":"TypeString","optional":true},"verification_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_sms":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sms_channel_account_security_id":{"type":"TypeString","required":true},"sms_channel_auth_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_web_chat":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channels_registration":{"schema":{"cmk_key_vault_url":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"icon_url":{"type":"TypeString","optional":true,"computed":true},"isolated_network_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_connection":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeString","optional":true},"service_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_service_azure_bot":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true},"developer_app_insights_key":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_msi_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_type":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_web_app":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint":{"schema":{"content_types_to_compress":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"post_arg_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}}},"fqdn":{"type":"TypeString","computed":true},"geo_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"country_codes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"relative_path":{"type":"TypeString","required":true}}}},"global_delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_compression_enabled":{"type":"TypeBool","optional":true},"is_http_allowed":{"type":"TypeBool","optional":true,"default":true},"is_https_allowed":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimization_type":{"type":"TypeString","optional":true},"origin":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true,"forceNew":true},"http_port":{"type":"TypeInt","optional":true,"default":80,"forceNew":true},"https_port":{"type":"TypeInt","optional":true,"default":443,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"origin_host_header":{"type":"TypeString","optional":true},"origin_path":{"type":"TypeString","optional":true,"computed":true},"probe_path":{"type":"TypeString","optional":true,"computed":true},"profile_name":{"type":"TypeString","required":true,"forceNew":true},"querystring_caching_behaviour":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint_custom_domain":{"schema":{"cdn_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_type":{"type":"TypeString","required":true},"protocol_type":{"type":"TypeString","required":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"user_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","optional":true,"computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"computed":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"dns_zone_id":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tls":{"type":"TypeList","required":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","optional":true,"computed":true},"certificate_type":{"type":"TypeString","optional":true,"default":"ManagedCertificate"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain_association":{"schema":{"cdn_frontdoor_custom_domain_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_route_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin":{"schema":{"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name_check_enabled":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","optional":true,"computed":true},"health_probes_enabled":{"type":"TypeBool","optional":true,"computed":true},"host_name":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","optional":true,"default":80},"https_port":{"type":"TypeInt","optional":true,"default":443},"name":{"type":"TypeString","required":true,"forceNew":true},"origin_host_header":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","optional":true,"default":1},"private_link":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"private_link_target_id":{"type":"TypeString","required":true},"request_message":{"type":"TypeString","optional":true,"default":"Access request for CDN FrontDoor Private Link Origin"},"target_type":{"type":"TypeString","optional":true}}},"maxItems":1},"weight":{"type":"TypeInt","optional":true,"default":500}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"health_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"protocol":{"type":"TypeString","required":true},"request_type":{"type":"TypeString","optional":true,"default":"HEAD"}}},"maxItems":1},"load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","optional":true,"default":50},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","optional":true,"default":10},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","optional":true,"default":120},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route":{"schema":{"cache":{"type":"TypeList","optional":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"content_types_to_compress":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"query_string_caching_behavior":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"query_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"cdn_frontdoor_custom_domain_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true},"cdn_frontdoor_origin_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_origin_path":{"type":"TypeString","optional":true},"cdn_frontdoor_rule_set_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"https_redirect_enabled":{"type":"TypeBool","optional":true,"default":true},"link_to_default_domain":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"supported_protocols":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route_disable_link_to_default_domain":{"schema":{"cdn_frontdoor_custom_domain_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_route_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"route_configuration_override_action":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_behavior":{"type":"TypeString","optional":true},"cache_duration":{"type":"TypeString","optional":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","optional":true},"compression_enabled":{"type":"TypeBool","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true},"query_string_caching_behavior":{"type":"TypeString","optional":true},"query_string_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":100}}},"maxItems":1},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_fragment":{"type":"TypeString","optional":true,"default":""},"destination_hostname":{"type":"TypeString","required":true},"destination_path":{"type":"TypeString","optional":true,"default":""},"query_string":{"type":"TypeString","optional":true,"default":""},"redirect_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":false},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"behavior_on_match":{"type":"TypeString","optional":true,"default":"Continue"},"cdn_frontdoor_rule_set_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_rule_set_name":{"type":"TypeString","computed":true},"conditions":{"type":"TypeList","optional":true,"elem":{"schema":{"client_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"cookie_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"host_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":4},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"is_device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"post_args_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"post_args_name":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString","default":"HTTP"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"server_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"socket_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"ssl_protocol_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":3},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_filename_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_profile_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_frontdoor_security_policy":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"security_policies":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"firewall":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"association":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"domain":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"active":{"type":"TypeBool","computed":true},"cdn_frontdoor_domain_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":500},"patterns_to_match":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}}},"maxItems":1},"cdn_frontdoor_firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account":{"schema":{"custom_question_answering_search_service_id":{"type":"TypeString","optional":true},"custom_question_answering_search_service_key":{"type":"TypeString","optional":true},"custom_subdomain_name":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"dynamic_throttling_enabled":{"type":"TypeBool","optional":true},"endpoint":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metrics_advisor_aad_client_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_aad_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_super_user_name":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_website_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"qna_runtime_endpoint":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"storage":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account_customer_managed_key":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_deployment":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"model":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"format":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"rai_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"scale":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"family":{"type":"TypeString","optional":true,"forceNew":true},"size":{"type":"TypeString","optional":true,"forceNew":true},"tier":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","optional":true,"default":"United States","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","required":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"minItems":1},"certificate_based_security_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"pem_public_key":{"type":"TypeString","required":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_management_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to host this Container App.","forceNew":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The Dapr Application Identifier."},"app_port":{"type":"TypeInt","optional":true,"description":"The port which the application is listening on. This is the same as the `ingress` port."},"app_protocol":{"type":"TypeString","optional":true,"default":"http","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`."}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","optional":true,"default":false,"description":"Should this ingress allow insecure connections?"},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","optional":true,"default":"Disabled","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`"},"certificate_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate."}}},"maxItems":1},"external_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Is this an external Ingress."},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","required":true,"description":"The target port on the container for the Ingress traffic."},"traffic_weight":{"type":"TypeList","required":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"description":"The label to apply to the revision as a name prefix for routing traffic."},"latest_revision":{"type":"TypeBool","optional":true,"default":false,"description":"This traffic Weight relates to the latest stable Container Revision."},"percentage":{"type":"TypeInt","required":true,"description":"The percentage of traffic to send to this revision."},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted."}}}},"transport":{"type":"TypeString","optional":true,"default":"auto","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`"}}},"maxItems":1},"latest_revision_fqdn":{"type":"TypeString","description":"The FQDN of the Latest Revision of the Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"The name for this Container App.","forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true,"description":"ID of the System or User Managed Identity used to pull images from the Container Registry"},"password_secret_name":{"type":"TypeString","optional":true,"description":"The name of the Secret Reference containing the password value for this user on the Container Registry."},"server":{"type":"TypeString","required":true,"description":"The hostname for the Container Registry."},"username":{"type":"TypeString","optional":true,"description":"The username to use for this Container Registry."}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision_mode":{"type":"TypeString","required":true},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeList","required":true,"elem":{"schema":{"args":{"type":"TypeList","optional":true,"description":"A list of args to pass to the container.","elem":{"type":"TypeString"}},"command":{"type":"TypeList","optional":true,"description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`"},"env":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the environment variable for the container."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of the secret that contains the value for this environment variable."},"value":{"type":"TypeString","optional":true,"description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used"}}},"minItems":1},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","required":true,"description":"The image to use to create the container."},"liveness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"initial_delay":{"type":"TypeInt","optional":true,"default":1,"description":"The time in seconds to wait after the container has started before the probe is started."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"memory":{"type":"TypeString","required":true,"description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`"},"name":{"type":"TypeString","required":true,"description":"The name of the container."},"readiness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"success_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`."},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"startup_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"volume_mounts":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Volume to be mounted in the container."},"path":{"type":"TypeString","required":true,"description":"The path in the container at which to mount this volume."}}}}}},"minItems":1},"max_replicas":{"type":"TypeInt","optional":true,"default":10,"description":"The maximum number of replicas for this container."},"min_replicas":{"type":"TypeInt","optional":true,"description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment":{"schema":{"dapr_application_insights_connection_string":{"type":"TypeString","optional":true,"description":"Application Insights connection string used by Dapr to export Service to Service communication telemetry.","forceNew":true},"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","optional":true,"description":"The existing Subnet to use for the Container Apps Control Plane. **NOTE:** The Subnet must have a `/21` or larger address space.","forceNew":true},"internal_load_balancer_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Container Environment operate in Internal Load Balancing Mode? Defaults to `false`. **Note:** can only be set to `true` if `infrastructure_subnet_id` is specified.","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true,"description":"The ID for the Log Analytics Workspace to link this Container Apps Managed Environment to.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment.","forceNew":true},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_certificate":{"schema":{"certificate_blob_base64":{"type":"TypeString","required":true,"description":"The Certificate Private Key as a base64 encoded PFX or PEM.","forceNew":true},"certificate_password":{"type":"TypeString","required":true,"description":"The password for the Certificate.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Environment Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_dapr_component":{"schema":{"component_type":{"type":"TypeString","required":true,"description":"The Dapr Component Type. For example `state.azure.blobstorage`.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Dapr component on.","forceNew":true},"ignore_errors":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Dapr sidecar to continue initialisation if the component fails to load. Defaults to `false`"},"init_timeout":{"type":"TypeString","optional":true,"default":"5s","description":"The component initialisation timeout in ISO8601 format. e.g. `5s`, `2h`, `1m`. Defaults to `5s`."},"metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Metadata configuration item."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of a secret specified in the `secrets` block that contains the value for this metadata configuration item."},"value":{"type":"TypeString","optional":true,"description":"The value for this metadata configuration item."}}},"minItems":1},"name":{"type":"TypeString","required":true,"description":"The name for this Dapr Component.","forceNew":true},"scopes":{"type":"TypeList","optional":true,"description":"A list of scopes to which this component applies. e.g. a Container App's `dapr.app_id` value.","elem":{"type":"TypeString"},"minItems":1},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"version":{"type":"TypeString","required":true,"description":"The version of the component."}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_storage":{"schema":{"access_key":{"type":"TypeString","required":true,"description":"The Storage Account Access Key."},"access_mode":{"type":"TypeString","required":true,"description":"The access mode to connect this storage to the Container App. Possible values include `ReadOnly` and `ReadWrite`.","forceNew":true},"account_name":{"type":"TypeString","required":true,"description":"The Azure Storage Account in which the Share to be used is located.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to which this storage belongs.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name for this Storage.","forceNew":true},"share_name":{"type":"TypeString","required":true,"description":"The name of the Azure Storage Share to use.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_connected_registry":{"schema":{"audit_log_enabled":{"type":"TypeBool","optional":true,"default":false},"client_token_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"log_level":{"type":"TypeString","optional":true,"default":"None"},"mode":{"type":"TypeString","optional":true,"default":"ReadWrite","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"digest":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tag":{"type":"TypeString","optional":true}}}},"parent_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"sync_message_ttl":{"type":"TypeString","optional":true,"default":"P1D"},"sync_schedule":{"type":"TypeString","optional":true,"default":"* * * * *"},"sync_token_id":{"type":"TypeString","required":true,"forceNew":true},"sync_window":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_group":{"schema":{"container":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"forceNew":true},"cpu_limit":{"type":"TypeFloat","optional":true},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"gpu":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"gpu_limit":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"sku":{"type":"TypeString","optional":true}}},"maxItems":1},"image":{"type":"TypeString","required":true,"forceNew":true},"liveness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"memory":{"type":"TypeFloat","required":true,"forceNew":true},"memory_limit":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ports":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"readiness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"diagnostics":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"log_analytics":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"log_type":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_key":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"dns_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"nameservers":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"options":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"search_domains":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"dns_name_label":{"type":"TypeString","optional":true,"forceNew":true},"dns_name_label_reuse_policy":{"type":"TypeString","optional":true,"default":"Unsecure"},"exposed_port":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_registry_credential":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"username":{"type":"TypeString","optional":true,"forceNew":true}}}},"init_container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"ip_address":{"type":"TypeString","computed":true},"ip_address_type":{"type":"TypeString","optional":true,"default":"Public","forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile_id":{"type":"TypeString","optional":true,"computed":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restart_policy":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"subnet_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"anonymous_pull_enabled":{"type":"TypeBool","optional":true},"data_endpoint_enabled":{"type":"TypeBool","optional":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"identity_client_id":{"type":"TypeString","required":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"georeplications":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true},"regional_endpoint_enabled":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_bypass_option":{"type":"TypeString","optional":true,"default":"AzureServices"},"network_rule_set":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_range":{"type":"TypeString","required":true}}}},"virtual_network":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"quarantine_policy_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trust_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_agent_pool":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"default":"S1","forceNew":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task":{"schema":{"agent_pool_name":{"type":"TypeString","optional":true},"agent_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"cpu":{"type":"TypeInt","required":true}}},"maxItems":1},"base_image_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"update_trigger_endpoint":{"type":"TypeString","optional":true},"update_trigger_payload_type":{"type":"TypeString","optional":true}}},"maxItems":1},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"docker_step":{"type":"TypeList","optional":true,"elem":{"schema":{"arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"cache_enabled":{"type":"TypeBool","optional":true,"default":true},"context_access_token":{"type":"TypeString","required":true},"context_path":{"type":"TypeString","required":true},"dockerfile_path":{"type":"TypeString","required":true},"image_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"push_enabled":{"type":"TypeBool","optional":true,"default":true},"secret_arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target":{"type":"TypeString","optional":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"encoded_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_content":{"type":"TypeString","required":true},"value_content":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"file_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_file_path":{"type":"TypeString","required":true},"value_file_path":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"is_system_task":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"log_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"architecture":{"type":"TypeString","optional":true},"os":{"type":"TypeString","required":true},"variant":{"type":"TypeString","optional":true}}},"maxItems":1},"registry_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"custom":{"type":"TypeSet","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"username":{"type":"TypeString","optional":true}}}},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"source_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"expire_in_seconds":{"type":"TypeInt","optional":true},"refresh_token":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"repository_url":{"type":"TypeString","required":true},"source_type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":3600},"timer_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task_schedule_run_now":{"schema":{"container_registry_task_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_map_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_token_password":{"schema":{"container_registry_token_id":{"type":"TypeString","required":true,"forceNew":true},"password1":{"type":"TypeList","required":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1},"password2":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_webhook":{"schema":{"actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"custom_headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"registry_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":""},"service_uri":{"type":"TypeString","required":true},"status":{"type":"TypeString","optional":true,"default":"enabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_account":{"schema":{"access_key_metadata_writes_enabled":{"type":"TypeBool","optional":true,"default":true},"analytical_storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"schema_type":{"type":"TypeString","required":true}}},"maxItems":1},"analytical_storage_enabled":{"type":"TypeBool","optional":true,"default":false},"backup":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"interval_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"retention_in_hours":{"type":"TypeInt","optional":true,"computed":true},"storage_redundancy":{"type":"TypeString","optional":true,"computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"capabilities":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}},"capacity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"total_throughput_limit":{"type":"TypeInt","required":true}}},"maxItems":1},"connection_strings":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"consistency_policy":{"type":"TypeList","required":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","required":true},"max_interval_in_seconds":{"type":"TypeInt","optional":true,"computed":true},"max_staleness_prefix":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"create_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"default_identity_type":{"type":"TypeString","optional":true,"default":"FirstPartyIdentity"},"enable_automatic_failover":{"type":"TypeBool","optional":true,"default":false},"enable_free_tier":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"enable_multiple_write_locations":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeSet","required":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","required":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_range_filter":{"type":"TypeString","optional":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"kind":{"type":"TypeString","optional":true,"default":"GlobalDocumentDB","forceNew":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"mongo_server_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acl_bypass_for_azure_services":{"type":"TypeBool","optional":true,"default":false},"network_acl_bypass_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"offer_type":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"primary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"primary_sql_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"elem":{"schema":{"database":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"collection_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"restore_timestamp_in_utc":{"type":"TypeString","required":true,"forceNew":true},"source_cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"secondary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"secondary_sql_connection_string":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_cassandra_cluster":{"schema":{"authentication_method":{"type":"TypeString","optional":true,"default":"Cassandra"},"client_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_admin_password":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"external_gossip_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"external_seed_node_ip_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"hours_between_backups":{"type":"TypeInt","optional":true,"default":24},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repair_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"3.11","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_datacenter":{"schema":{"availability_zones_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_storage_customer_key_uri":{"type":"TypeString","optional":true},"base64_encoded_yaml_fragment":{"type":"TypeString","optional":true},"cassandra_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"disk_count":{"type":"TypeInt","optional":true},"disk_sku":{"type":"TypeString","optional":true,"default":"P30"},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_customer_key_uri":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"default":3},"sku_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_cosmosdb_cassandra_keyspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_table":{"schema":{"analytical_storage_ttl":{"type":"TypeInt","optional":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cassandra_keyspace_id":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schema":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_key":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"order_by":{"type":"TypeString","required":true}}}},"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"partition_key":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_graph":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"index_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"automatic":{"type":"TypeBool","optional":true,"default":true},"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"included_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"indexing_mode":{"type":"TypeString","required":true},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_collection":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl_seconds":{"type":"TypeInt","optional":true},"index":{"type":"TypeSet","optional":true,"elem":{"schema":{"keys":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","optional":true,"default":false}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shard_key":{"type":"TypeString","optional":true,"forceNew":true},"system_indexes":{"type":"TypeList","computed":true,"elem":{"schema":{"keys":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","computed":true}}}},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_role_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"privilege":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource":{"type":"TypeList","required":true,"elem":{"schema":{"collection_name":{"type":"TypeString","optional":true},"db_name":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"role_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_user_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_notebook_workspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_endpoint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_postgresql_cluster":{"schema":{"administrator_login_password":{"type":"TypeString","required":true},"citus_version":{"type":"TypeString","optional":true,"computed":true},"coordinator_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":true},"coordinator_server_edition":{"type":"TypeString","optional":true,"default":"GeneralPurpose"},"coordinator_storage_quota_in_mb":{"type":"TypeInt","required":true},"coordinator_vcore_count":{"type":"TypeInt","required":true},"earliest_restore_time":{"type":"TypeString","computed":true},"ha_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","required":true},"node_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":false},"node_server_edition":{"type":"TypeString","optional":true,"default":"MemoryOptimized"},"node_storage_quota_in_mb":{"type":"TypeInt","optional":true,"computed":true},"node_vcores":{"type":"TypeInt","optional":true,"computed":true},"point_in_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"preferred_primary_zone":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shards_on_coordinator_enabled":{"type":"TypeBool","optional":true,"computed":true},"source_location":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"sql_version":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_postgresql_coordinator_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_firewall_rule":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_node_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_role":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_sql_container":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"indexing_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"included_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"indexing_mode":{"type":"TypeString","optional":true,"default":"consistent"},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_dedicated_gateway":{"schema":{"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","required":true},"instance_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_function":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_assignment":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"assignable_scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeSet","required":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"CustomRole","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_stored_procedure":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_trigger":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operation":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_table":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_anomaly_alert":{"schema":{"display_name":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"email_subject":{"type":"TypeString","required":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_management_scheduled_action":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name":{"type":"TypeString","required":true},"email_address_sender":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":20,"minItems":1},"email_subject":{"type":"TypeString","required":true},"end_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","optional":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_date":{"type":"TypeString","required":true},"view_id":{"type":"TypeString","required":true,"forceNew":true},"weeks_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_custom_ip_prefix":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"commissioning_enabled":{"type":"TypeBool","optional":true,"default":false},"internet_advertising_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_custom_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roa_validity_end_date":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wan_validation_signed_message":{"type":"TypeString","optional":true,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":540,"read":5,"delete":1020,"update":1020}},"azurerm_custom_provider":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_type":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"routing_type":{"type":"TypeString","optional":true,"default":"Proxy"}}}},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validation":{"type":"TypeSet","optional":true,"elem":{"schema":{"specification":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard_grafana":{"schema":{"api_key_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse"},"azure_monitor_workspace_integrations":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"deterministic_outbound_ip_enabled":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"grafana_version":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory":{"schema":{"customer_managed_key_id":{"type":"TypeString","optional":true},"customer_managed_key_identity_id":{"type":"TypeString","optional":true},"github_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"global_parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_custom_dataset":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_azure_blob":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_binary":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sftp_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_cosmosdb_sqlapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"collection_name":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_delimited_text":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_fs_location":{"type":"TypeList","optional":true,"elem":{"schema":{"file_system":{"type":"TypeString","required":true},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"column_delimiter":{"type":"TypeString","optional":true,"default":","},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"escape_character":{"type":"TypeString","optional":true,"default":"\\"},"first_row_as_header":{"type":"TypeBool","optional":true,"default":false},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"null_value":{"type":"TypeString","optional":true,"default":""},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"quote_character":{"type":"TypeString","optional":true,"default":"\""},"row_delimiter":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_http":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"relative_url":{"type":"TypeString","optional":true},"request_body":{"type":"TypeString","optional":true},"request_method":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_json":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_parquet":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precision":{"type":"TypeInt","optional":true},"scale":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","optional":true}}}},"schema_name":{"type":"TypeString","optional":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_sql_server_table":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_flowlet_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure":{"schema":{"cleanup_enabled":{"type":"TypeBool","optional":true,"computed":true},"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0},"virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure_ssis":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"dual_standby_pair_name":{"type":"TypeString","optional":true},"elastic_pool_name":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"express_custom_setup":{"type":"TypeList","optional":true,"elem":{"schema":{"command_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"password":{"type":"TypeString","optional":true},"target_name":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"component":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_license":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"environment":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"powershell_version":{"type":"TypeString","optional":true}}},"maxItems":1},"express_vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"package_store":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","optional":true},"self_hosted_integration_runtime_name":{"type":"TypeString","required":true},"staging_storage_linked_service_name":{"type":"TypeString","required":true}}},"maxItems":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"public_ips":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2},"subnet_id":{"type":"TypeString","optional":true},"subnet_name":{"type":"TypeString","optional":true},"vnet_id":{"type":"TypeString","optional":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_managed":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true,"default":"Basic"},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","required":true},"vnet_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_self_hosted":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_authorization_key":{"type":"TypeString","computed":true},"rbac_authorization":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"secondary_authorization_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_custom_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_blob_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"connection_string_insecure":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_sas_token":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sas_uri":{"type":"TypeString","optional":true},"service_endpoint":{"type":"TypeString","optional":true},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"service_principal_linked_key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_kind":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_databricks":{"schema":{"access_token":{"type":"TypeString","optional":true},"adb_domain":{"type":"TypeString","required":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"existing_cluster_id":{"type":"TypeString","optional":true},"instance_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"instance_pool_id":{"type":"TypeString","required":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":1}}},"maxItems":1},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"msi_work_space_resource_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"new_cluster_config":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"custom_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"driver_node_type":{"type":"TypeString","optional":true},"init_scripts":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"log_destination":{"type":"TypeString","optional":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":"1"},"node_type":{"type":"TypeString","required":true},"spark_config":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"spark_environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_file_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"file_share":{"type":"TypeString","optional":true},"host":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"user_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_function":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key":{"type":"TypeString","optional":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_search":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted_credential":{"type":"TypeString","computed":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"search_service_key":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_sql_database":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_table_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb":{"schema":{"account_endpoint":{"type":"TypeString","optional":true},"account_key":{"type":"TypeString","optional":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb_mongoapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"server_version_is_32_or_higher":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_data_lake_storage_gen2":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"storage_account_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_key_vault":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_kusto":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"kusto_database_name":{"type":"TypeString","required":true},"kusto_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odata":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odbc":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sftp":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"host":{"type":"TypeString","required":true},"host_key_fingerprint":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true},"skip_host_key_validation":{"type":"TypeBool","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sql_server":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_synapse":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_web":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_managed_private_endpoint":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"fqdns":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_factory_pipeline":{"schema":{"activities_json":{"type":"TypeString","optional":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"concurrency":{"type":"TypeInt","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"moniter_metrics_after_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_blob_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"blob_path_begins_with":{"type":"TypeString","optional":true},"blob_path_ends_with":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"ignore_empty_blobs":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_custom_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"eventgrid_topic_id":{"type":"TypeString","required":true,"forceNew":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_schedule":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","optional":true,"default":"Minute"},"interval":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"pipeline_name":{"type":"TypeString","optional":true,"computed":true},"pipeline_parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":7},"hours":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","optional":true},"weekday":{"type":"TypeString","required":true}}},"minItems":1}}},"maxItems":1,"minItems":1},"start_time":{"type":"TypeString","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_tumbling_window":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"delay":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true,"forceNew":true},"interval":{"type":"TypeInt","required":true,"forceNew":true},"max_concurrency":{"type":"TypeInt","optional":true,"default":50},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retry":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeInt","optional":true,"default":30}}},"maxItems":1},"start_time":{"type":"TypeString","required":true,"forceNew":true},"trigger_dependency":{"type":"TypeSet","optional":true,"elem":{"schema":{"offset":{"type":"TypeString","optional":true},"size":{"type":"TypeString","optional":true},"trigger_name":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_blob_storage":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_disk":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"disk_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_postgresql":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"database_credential_key_vault_secret_id":{"type":"TypeString","optional":true},"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_blob_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"retention_duration":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_disk":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_postgresql":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true},"days_of_week":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"months_of_year":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"scheduled_backup_times":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"weeks_of_month":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redundancy":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_resource_guard":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vault_critical_operation_exclusion_list":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}},"maxItems":1},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","required":true,"forceNew":true},"data_share_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"file_system_name":{"type":"TypeString","required":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"source_platform":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_order":{"schema":{"contact":{"type":"TypeList","required":true,"elem":{"schema":{"company_name":{"type":"TypeString","required":true,"forceNew":true},"emails":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"device_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"return_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"serial_number":{"type":"TypeString","computed":true},"shipment_address":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3},"city":{"type":"TypeString","required":true,"forceNew":true},"country":{"type":"TypeString","required":true,"forceNew":true},"postal_code":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"shipment_history":{"type":"TypeSet","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}},"shipment_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"status":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"info":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_access_connector":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_virtual_network_peering":{"schema":{"address_space_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_address_space_prefixes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_id":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace":{"schema":{"custom_parameters":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"machine_learning_workspace_id":{"type":"TypeString","optional":true,"forceNew":true},"nat_gateway_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"no_public_ip":{"type":"TypeBool","optional":true,"computed":true},"private_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"private_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"public_ip_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"public_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_sku_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vnet_address_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_encryption_set_id":{"type":"TypeString","computed":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"load_balancer_backend_address_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"managed_disk_cmk_rotation_to_latest_version_enabled":{"type":"TypeBool","optional":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"managed_resource_group_id":{"type":"TypeString","computed":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_services_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules_required":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_root_dbfs_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor":{"schema":{"datadog_organization":{"type":"TypeList","required":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true,"forceNew":true},"application_key":{"type":"TypeString","required":true,"forceNew":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","computed":true},"linking_auth_code":{"type":"TypeString","optional":true,"forceNew":true},"linking_client_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"redirect_uri":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"marketplace_subscription_status":{"type":"TypeString","computed":true},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_sso_configuration":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"enterprise_application_id":{"type":"TypeString","required":true},"login_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"default"},"single_sign_on_enabled":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_tag_rule":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"log":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_log_enabled":{"type":"TypeBool","optional":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_log_enabled":{"type":"TypeBool","optional":true},"subscription_log_enabled":{"type":"TypeBool","optional":true}}}},"metric":{"type":"TypeList","optional":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","optional":true,"default":"default"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_hardware_security_module":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"management_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"stamp_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host":{"schema":{"auto_replace_on_failure":{"type":"TypeBool","optional":true,"default":true},"dedicated_host_group_id":{"type":"TypeString","required":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain":{"type":"TypeInt","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_global_vm_shutdown_schedule":{"schema":{"daily_recurrence_time":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"time_in_minutes":{"type":"TypeInt","optional":true,"default":30},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","optional":true,"default":"Premium"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_linux_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_policy":{"schema":{"description":{"type":"TypeString","optional":true},"evaluator_type":{"type":"TypeString","required":true,"forceNew":true},"fact_data":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_set_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threshold":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_schedule":{"schema":{"daily_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true}}},"maxItems":1},"hourly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true}}},"maxItems":1},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"status":{"type":"TypeString","optional":true,"default":"Disabled"},"time_in_minutes":{"type":"TypeInt","optional":true},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Disabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_type":{"type":"TypeString","required":true},"time_zone_id":{"type":"TypeString","required":true},"weekly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_virtual_network":{"schema":{"description":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"use_in_virtual_machine_creation":{"type":"TypeString","optional":true,"default":"Allow"},"use_public_ip_address":{"type":"TypeString","optional":true,"default":"Allow"}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_windows_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventgrid":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventgrid_topic_endpoint":{"type":"TypeString","required":true},"eventgrid_topic_primary_access_key":{"type":"TypeString","required":true},"eventgrid_topic_secondary_access_key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventhub":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_primary_connection_string":{"type":"TypeString","required":true},"eventhub_secondary_connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_servicebus":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_primary_connection_string":{"type":"TypeString","required":true},"servicebus_secondary_connection_string":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_time_series_database_connection":{"schema":{"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_consumer_group_name":{"type":"TypeString","optional":true,"default":"$Default","forceNew":true},"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_uri":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_name":{"type":"TypeString","required":true,"forceNew":true},"kusto_table_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_disk_access":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_type":{"type":"TypeString","optional":true,"default":"EncryptionAtRestWithCustomerKey","forceNew":true},"federated_client_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_disk_pool":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_pool_iscsi_target":{"schema":{"acl_mode":{"type":"TypeString","required":true,"forceNew":true},"disks_pool_id":{"type":"TypeString","required":true,"forceNew":true},"endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","computed":true},"target_iqn":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_iscsi_target_lun":{"schema":{"disk_pool_managed_disk_attachment_id":{"type":"TypeString","required":true,"forceNew":true},"iscsi_target_id":{"type":"TypeString","required":true,"forceNew":true},"lun":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_managed_disk_attachment":{"schema":{"disk_pool_id":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"flags":{"type":"TypeInt","required":true},"tag":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","optional":true,"computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":300},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","required":true,"forceNew":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_azuread_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_email_communication_service":{"schema":{"data_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain":{"schema":{"auto_create_topic_with_first_subscription":{"type":"TypeBool","optional":true,"default":true},"auto_delete_topic_with_last_subscription":{"type":"TypeBool","optional":true,"default":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_eventgrid_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_arm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"system_topic":{"type":"TypeString","required":true,"forceNew":true},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub":{"schema":{"capture_description":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeList","required":true,"elem":{"schema":{"archive_name_format":{"type":"TypeString","required":true},"blob_container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"encoding":{"type":"TypeString","required":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":300},"size_limit_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"skip_empty_archives":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"message_retention":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","required":true,"forceNew":true},"partition_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":300,"update":30}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity":{"type":"TypeInt","optional":true,"default":1},"dedicated_cluster_id":{"type":"TypeString","optional":true,"forceNew":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_throughput_units":{"type":"TypeInt","optional":true,"computed":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rulesets":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_service_access_enabled":{"type":"TypeBool","optional":true},"virtual_network_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"ignore_missing_virtual_network_service_endpoint":{"type":"TypeBool","optional":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":128}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_customer_managed_key":{"schema":{"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"key_vault_key_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_disaster_recovery_config":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_schema_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"schema_compatibility":{"type":"TypeString","required":true,"forceNew":true},"schema_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_express_route_circuit":{"schema":{"allow_classic_operations":{"type":"TypeBool","optional":true,"default":false},"authorization_key":{"type":"TypeString","optional":true},"bandwidth_in_gbps":{"type":"TypeFloat","optional":true},"bandwidth_in_mbps":{"type":"TypeInt","optional":true},"express_route_port_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","optional":true,"forceNew":true},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"family":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_connection":{"schema":{"address_prefix_ipv4":{"type":"TypeString","required":true,"forceNew":true},"address_prefix_ipv6":{"type":"TypeString","optional":true},"authorization_key":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_peering_id":{"type":"TypeString","required":true,"forceNew":true},"peering_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_peering":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_manager_etag":{"type":"TypeString","computed":true},"ipv4_enabled":{"type":"TypeBool","optional":true,"default":true},"ipv6":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"microsoft_peering":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"primary_peer_address_prefix":{"type":"TypeString","required":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_peer_address_prefix":{"type":"TypeString","required":true}}},"maxItems":1},"microsoft_peering_config":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"peer_asn":{"type":"TypeInt","optional":true,"computed":true},"peering_type":{"type":"TypeString","required":true},"primary_azure_port":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_azure_port":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","optional":true},"shared_key":{"type":"TypeString","optional":true},"vlan_id":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"enable_internet_security":{"type":"TypeBool","optional":true},"express_route_circuit_peering_id":{"type":"TypeString","required":true,"forceNew":true},"express_route_gateway_bypass_enabled":{"type":"TypeBool","optional":true,"default":false},"express_route_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"routing_weight":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_gateway":{"schema":{"allow_non_virtual_wan_traffic":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_express_route_port":{"schema":{"bandwidth_in_gbps":{"type":"TypeInt","required":true,"forceNew":true},"billing_type":{"type":"TypeString","optional":true,"computed":true},"encapsulation":{"type":"TypeString","required":true,"forceNew":true},"ethertype":{"type":"TypeString","computed":true},"guid":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"link1":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"link2":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mtu":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_port_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_port_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_federated_identity_credential":{"schema":{"audience":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"issuer":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"firewall_policy_id":{"type":"TypeString","optional":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_ip_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"sku_tier":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","optional":true,"computed":true},"virtual_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","optional":true,"default":1},"virtual_hub_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_firewall_application_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"target_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_nat_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","required":true},"translated_port":{"type":"TypeString","required":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_network_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy":{"schema":{"auto_learn_private_ranges_enabled":{"type":"TypeBool","optional":true},"base_policy_id":{"type":"TypeString","optional":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"proxy_enabled":{"type":"TypeBool","optional":true,"default":false},"servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"explicit_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_pac_file":{"type":"TypeBool","optional":true},"enabled":{"type":"TypeBool","optional":true},"http_port":{"type":"TypeInt","optional":true},"https_port":{"type":"TypeInt","optional":true},"pac_file":{"type":"TypeString","optional":true},"pac_file_port":{"type":"TypeInt","optional":true}}},"maxItems":1},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"insights":{"type":"TypeList","optional":true,"elem":{"schema":{"default_log_analytics_workspace_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"firewall_location":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"retention_in_days":{"type":"TypeInt","optional":true}}},"maxItems":1},"intrusion_detection":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true},"private_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"signature_overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"state":{"type":"TypeString","optional":true}}}},"traffic_bypass":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"source_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"sql_redirect_allowed":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","optional":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"threat_intelligence_mode":{"type":"TypeString","optional":true,"default":"Alert"},"tls_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_secret_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy_rule_collection_group":{"schema":{"application_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"terminate_tls":{"type":"TypeBool","optional":true},"web_categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_address":{"type":"TypeString","optional":true},"destination_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","optional":true},"translated_fqdn":{"type":"TypeString","optional":true},"translated_port":{"type":"TypeInt","required":true}}},"minItems":1}}},"minItems":1},"network_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"priority":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_fluid_relay_server":{"schema":{"frs_tenant_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"orderer_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_frontdoor":{"schema":{"backend_pool":{"type":"TypeList","required":true,"elem":{"schema":{"backend":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_header":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","required":true},"https_port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"weight":{"type":"TypeInt","optional":true,"default":50}}},"maxItems":500},"health_probe_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"load_balancing_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"backend_pool_health_probe":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"id":{"type":"TypeString","computed":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":120},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"probe_method":{"type":"TypeString","optional":true,"default":"GET"},"protocol":{"type":"TypeString","optional":true,"default":"Http"}}},"maxItems":5000},"backend_pool_health_probes":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_milliseconds":{"type":"TypeInt","optional":true,"default":0},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":2}}},"maxItems":5000},"backend_pool_load_balancing_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pools_send_receive_timeout_seconds":{"type":"TypeInt","optional":true,"default":60},"enforce_backend_pools_certificate_name_check":{"type":"TypeBool","required":true}}}},"backend_pools":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"cname":{"type":"TypeString","computed":true},"explicit_resource_order":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_pool_health_probe_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"routing_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"friendly_name":{"type":"TypeString","optional":true},"frontend_endpoint":{"type":"TypeList","required":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"session_affinity_ttl_seconds":{"type":"TypeInt","optional":true,"default":0},"web_application_firewall_policy_link_id":{"type":"TypeString","optional":true}}},"maxItems":500},"frontend_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"header_frontdoor_id":{"type":"TypeString","computed":true},"load_balancer_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_rule":{"type":"TypeList","required":true,"elem":{"schema":{"accepted_protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":2},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pool_name":{"type":"TypeString","required":true},"cache_duration":{"type":"TypeString","optional":true},"cache_enabled":{"type":"TypeBool","optional":true,"default":false},"cache_query_parameter_strip_directive":{"type":"TypeString","optional":true,"default":"StripAll"},"cache_query_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"cache_use_dynamic_compression":{"type":"TypeBool","optional":true,"default":false},"custom_forwarding_path":{"type":"TypeString","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"HttpsOnly"}}},"maxItems":1},"frontend_endpoints":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":500},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"redirect_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_fragment":{"type":"TypeString","optional":true},"custom_host":{"type":"TypeString","optional":true},"custom_path":{"type":"TypeString","optional":true},"custom_query_string":{"type":"TypeString","optional":true},"redirect_protocol":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":500},"routing_rules":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_custom_https_configuration":{"schema":{"custom_https_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_key_vault_certificate_secret_name":{"type":"TypeString","optional":true},"azure_key_vault_certificate_secret_version":{"type":"TypeString","optional":true},"azure_key_vault_certificate_vault_id":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","optional":true,"default":"FrontDoor"},"minimum_tls_version":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true},"provisioning_substate":{"type":"TypeString","computed":true}}},"maxItems":1},"custom_https_provisioning_enabled":{"type":"TypeBool","required":true},"frontend_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_frontdoor_rules_engine":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"frontdoor_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"request_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100},"response_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100}}},"maxItems":1},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transform":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":6},"value":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"variable":{"type":"TypeString","optional":true}}},"maxItems":100},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true}}},"maxItems":100}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_cert_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"","forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_function_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_function":{"schema":{"config_json":{"type":"TypeString","required":true,"description":"The config for this Function in JSON format."},"config_url":{"type":"TypeString","description":"The URL of the configuration JSON.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this function be enabled. Defaults to `true`."},"file":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"description":"The content of the file.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The filename of the file to be uploaded.","forceNew":true}}},"minItems":1},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App in which this function should reside.","forceNew":true},"invocation_url":{"type":"TypeString","description":"The invocation URL.","computed":true},"language":{"type":"TypeString","optional":true,"description":"The language the Function is written in."},"name":{"type":"TypeString","required":true,"description":"The name of the function.","forceNew":true},"script_root_path_url":{"type":"TypeString","description":"The Script root path URL.","computed":true},"script_url":{"type":"TypeString","description":"The script URL.","computed":true},"secrets_file_url":{"type":"TypeString","description":"The URL for the Secrets File.","computed":true},"test_data":{"type":"TypeString","optional":true,"description":"The test data for the function."},"test_data_url":{"type":"TypeString","description":"The Test data URL.","computed":true},"url":{"type":"TypeString","description":"The function URL.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_hybrid_connection":{"schema":{"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App for this Hybrid Connection.","forceNew":true},"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_slot":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"function_app_name":{"type":"TypeString","required":true,"forceNew":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application":{"schema":{"description":{"type":"TypeString","optional":true},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true},"gallery_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true},"release_note_uri":{"type":"TypeString","optional":true},"supported_os_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application_version":{"schema":{"enable_health_check":{"type":"TypeBool","optional":true,"default":false},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_application_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"manage_action":{"type":"TypeList","required":true,"elem":{"schema":{"install":{"type":"TypeString","required":true,"forceNew":true},"remove":{"type":"TypeString","required":true,"forceNew":true},"update":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"default_configuration_link":{"type":"TypeString","optional":true,"forceNew":true},"media_link":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_services_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hdinsight_hadoop_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hadoop":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"edge_node":{"type":"TypeList","optional":true,"elem":{"schema":{"https_endpoints":{"type":"TypeList","optional":true,"elem":{"schema":{"access_modes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_port":{"type":"TypeInt","optional":true},"disable_gateway_auth":{"type":"TypeBool","optional":true},"private_ip_address":{"type":"TypeString","optional":true},"sub_domain_suffix":{"type":"TypeString","optional":true}}}},"install_script_action":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"target_instance_count":{"type":"TypeInt","required":true},"uninstall_script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"vm_size":{"type":"TypeString","required":true}}},"maxItems":1},"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_hbase_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hbase":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_interactive_query_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"interactive_hive":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_kafka_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"kafka":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rest_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"security_group_id":{"type":"TypeString","required":true,"forceNew":true},"security_group_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kafka_management_node":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"number_of_disks_per_node":{"type":"TypeInt","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_spark_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"spark":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_healthbot":{"schema":{"bot_management_portal_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"authority":{"type":"TypeString","required":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"configuration_export_storage_account_name":{"type":"TypeString","optional":true},"container_registry_login_server_url":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"credentials_allowed":{"type":"TypeBool","optional":true,"default":false},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","optional":true,"default":"fhir-R4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"oci_artifact":{"type":"TypeList","optional":true,"elem":{"schema":{"digest":{"type":"TypeString","optional":true},"image_name":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_medtech_service_fhir_destination":{"schema":{"destination_fhir_mapping_json":{"type":"TypeString","required":true},"destination_fhir_service_id":{"type":"TypeString","required":true},"destination_identity_resolution_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"medtech_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"audience":{"type":"TypeString","optional":true},"authority":{"type":"TypeString","optional":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","optional":true},"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","optional":true,"forceNew":true},"cosmosdb_throughput":{"type":"TypeInt","optional":true,"default":1000},"kind":{"type":"TypeString","optional":true,"default":"fhir"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache":{"schema":{"automatically_rotate_key_to_latest_enabled":{"type":"TypeBool","optional":true},"cache_size_in_gb":{"type":"TypeInt","required":true,"forceNew":true},"default_access_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1}}},"maxItems":1,"minItems":1},"directory_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_netbios_name":{"type":"TypeString","required":true},"dns_primary_ip":{"type":"TypeString","required":true},"dns_secondary_ip":{"type":"TypeString","optional":true},"domain_name":{"type":"TypeString","required":true},"domain_netbios_name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"directory_flat_file":{"type":"TypeList","optional":true,"elem":{"schema":{"group_file_uri":{"type":"TypeString","required":true},"password_file_uri":{"type":"TypeString","required":true}}},"maxItems":1},"directory_ldap":{"type":"TypeList","optional":true,"elem":{"schema":{"base_dn":{"type":"TypeString","required":true},"bind":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dn":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_validation_uri":{"type":"TypeString","optional":true},"download_certificate_automatically":{"type":"TypeBool","optional":true},"encrypted":{"type":"TypeBool","optional":true},"server":{"type":"TypeString","required":true}}},"maxItems":1},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"search_domain":{"type":"TypeString","optional":true},"servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mtu":{"type":"TypeInt","optional":true,"default":1500},"name":{"type":"TypeString","required":true,"forceNew":true},"ntp_server":{"type":"TypeString","optional":true,"default":"time.windows.com"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hpc_cache_access_policy":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1},"hpc_cache_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_nfs_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_nfs_target":{"schema":{"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_junction":{"type":"TypeSet","required":true,"elem":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"namespace_path":{"type":"TypeString","required":true},"nfs_export":{"type":"TypeString","required":true},"target_path":{"type":"TypeString","optional":true,"default":""}}},"maxItems":10,"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"target_host_name":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"lun":{"type":"TypeInt","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}}},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"os_state":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_virtual_machine_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_integration_service_environment":{"schema":{"access_endpoint_type":{"type":"TypeString","required":true,"forceNew":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Developer_0"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":4,"minItems":4},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_iot_security_device_group":{"schema":{"allow_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_from_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"connection_to_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"local_users_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"processes_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"range_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"max":{"type":"TypeInt","required":true},"min":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_security_solution":{"schema":{"additional_workspace":{"type":"TypeSet","optional":true,"elem":{"schema":{"data_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}}}},"disabled_data_sources":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events_to_export":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"iothub_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"log_unmasked_ips_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"query_for_resources":{"type":"TypeString","optional":true,"computed":true},"query_subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"recommendations_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_authentication":{"type":"TypeBool","optional":true,"default":true},"agent_send_unutilized_msg":{"type":"TypeBool","optional":true,"default":true},"baseline":{"type":"TypeBool","optional":true,"default":true},"edge_hub_mem_optimize":{"type":"TypeBool","optional":true,"default":true},"edge_logging_option":{"type":"TypeBool","optional":true,"default":true},"inconsistent_module_settings":{"type":"TypeBool","optional":true,"default":true},"install_agent":{"type":"TypeBool","optional":true,"default":true},"ip_filter_deny_all":{"type":"TypeBool","optional":true,"default":true},"ip_filter_permissive_rule":{"type":"TypeBool","optional":true,"default":true},"open_ports":{"type":"TypeBool","optional":true,"default":true},"permissive_firewall_policy":{"type":"TypeBool","optional":true,"default":true},"permissive_input_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"permissive_output_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"privileged_docker_options":{"type":"TypeBool","optional":true,"default":true},"shared_credentials":{"type":"TypeBool","optional":true,"default":true},"vulnerable_tls_cipher_suite":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_access_policy":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_object_id":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_eventhub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_iothub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_gen2_environment":{"schema":{"data_access_fqdn":{"type":"TypeString","computed":true},"id_properties":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage":{"type":"TypeList","required":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"warm_store_data_retention_time":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_reference_data_set":{"schema":{"data_string_comparison_behavior":{"type":"TypeString","optional":true,"default":"Ordinal","forceNew":true},"key_property":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_standard_environment":{"schema":{"data_retention_time":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_limit_exceeded_behavior":{"type":"TypeString","optional":true,"default":"PurgeOldData"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"ST1"},"sub_domain":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application_network_rule_set":{"schema":{"apply_to_device":{"type":"TypeBool","optional":true,"default":true},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"iotcentral_application_id":{"type":"TypeString","required":true,"forceNew":true},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub":{"schema":{"cloud_to_device":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"feedback":{"type":"TypeList","optional":true,"elem":{"schema":{"lock_duration":{"type":"TypeString","optional":true,"default":"PT60S"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"time_to_live":{"type":"TypeString","optional":true,"default":"PT1H"}}}},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10}}},"maxItems":1},"endpoint":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"enrichment":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":10},"event_hub_events_endpoint":{"type":"TypeString","computed":true},"event_hub_events_namespace":{"type":"TypeString","computed":true},"event_hub_events_path":{"type":"TypeString","computed":true},"event_hub_operations_endpoint":{"type":"TypeString","computed":true},"event_hub_operations_path":{"type":"TypeString","computed":true},"event_hub_partition_count":{"type":"TypeInt","optional":true,"computed":true},"event_hub_retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"fallback_route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","optional":true,"computed":true},"endpoint_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}}},"maxItems":1},"file_upload":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"computed":true},"identity_id":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"apply_to_builtin_eventhub_endpoint":{"type":"TypeBool","optional":true,"default":false},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}},"shared_access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"key_name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_consumer_group":{"schema":{"eventhub_endpoint_name":{"type":"TypeString","required":true,"forceNew":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_account":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_instance":{"schema":{"device_update_account_id":{"type":"TypeString","required":true,"forceNew":true},"diagnostic_enabled":{"type":"TypeBool","optional":true,"default":false},"diagnostic_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","optional":true,"default":"Hashed"},"data_residency_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"ip_filter_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"target":{"type":"TypeString","optional":true}}}},"linked_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_weight":{"type":"TypeInt","optional":true,"default":1},"apply_allocation_policy":{"type":"TypeBool","optional":true,"default":true},"connection_string":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_operations_host_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iot_dps_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"enrollment_read":{"type":"TypeBool","optional":true,"default":false},"enrollment_write":{"type":"TypeBool","optional":true,"default":false},"iothub_dps_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registration_read":{"type":"TypeBool","optional":true,"default":false},"registration_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_config":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_eventhub":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_queue":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_topic":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_storage_container":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_enrichment":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":100},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"key":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_fallback_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_file_upload":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"lock_duration":{"type":"TypeString","optional":true,"default":"PT1M"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications_enabled":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"default":"PT1H"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_shared_access_policy":{"schema":{"device_connect":{"type":"TypeBool","optional":true,"default":false},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registry_read":{"type":"TypeBool","optional":true,"default":false},"registry_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_connect":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"firewall_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group_cidr":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"ip_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","optional":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1024},"contact":{"type":"TypeSet","optional":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"enable_rbac_authorization":{"type":"TypeBool","optional":true},"enabled_for_deployment":{"type":"TypeBool","optional":true},"enabled_for_disk_encryption":{"type":"TypeBool","optional":true},"enabled_for_template_deployment":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_protection_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_access_policy":{"schema":{"application_id":{"type":"TypeString","optional":true,"forceNew":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true,"forceNew":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate":{"schema":{"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"contents":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate_attribute":{"type":"TypeList","computed":true,"elem":{"schema":{"created":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"expires":{"type":"TypeString","computed":true},"not_before":{"type":"TypeString","computed":true},"recovery_level":{"type":"TypeString","computed":true},"updated":{"type":"TypeString","computed":true}}}},"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"key_properties":{"type":"TypeList","required":true,"elem":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true},"exportable":{"type":"TypeBool","required":true},"key_size":{"type":"TypeInt","optional":true,"computed":true},"key_type":{"type":"TypeString","required":true},"reuse_key":{"type":"TypeBool","required":true}}},"maxItems":1},"lifetime_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","optional":true},"lifetime_percentage":{"type":"TypeInt","optional":true}}},"maxItems":1}}}},"secret_properties":{"type":"TypeList","required":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true}}},"maxItems":1},"x509_certificate_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","required":true},"subject_alternative_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dns_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"validity_in_months":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":30,"delete":30,"update":30}},"azurerm_key_vault_certificate_contacts":{"schema":{"contact":{"type":"TypeSet","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","optional":true},"admin":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","optional":true},"last_name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_id":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"provider_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"e":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","optional":true},"key_opts":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","optional":true,"forceNew":true},"key_type":{"type":"TypeString","required":true,"forceNew":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"rotation_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"automatic":{"type":"TypeList","optional":true,"elem":{"schema":{"time_after_creation":{"type":"TypeString","optional":true},"time_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"expire_after":{"type":"TypeString","optional":true},"notify_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_domain_encrypted_data":{"type":"TypeString","computed":true},"security_domain_key_vault_certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10,"minItems":3},"security_domain_quorum":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":30}},"azurerm_key_vault_managed_storage_account":{"schema":{"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"regenerate_key_automatically":{"type":"TypeBool","optional":true,"default":false},"regeneration_period":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_managed_storage_account_sas_token_definition":{"schema":{"managed_storage_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sas_template_uri":{"type":"TypeString","required":true},"sas_type":{"type":"TypeString","required":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validity_period":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","optional":true,"elem":{"schema":{"connector_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_name":{"type":"TypeString","required":true}}},"maxItems":1},"api_server_access_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true},"vnet_integration_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"api_server_authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auto_scaler_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"balance_similar_node_groups":{"type":"TypeBool","optional":true,"default":false},"empty_bulk_delete_max":{"type":"TypeString","optional":true,"computed":true},"expander":{"type":"TypeString","optional":true,"default":"random"},"max_graceful_termination_sec":{"type":"TypeString","optional":true,"computed":true},"max_node_provisioning_time":{"type":"TypeString","optional":true,"default":"15m"},"max_unready_nodes":{"type":"TypeInt","optional":true,"default":3},"max_unready_percentage":{"type":"TypeFloat","optional":true,"default":45},"new_pod_scale_up_delay":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_add":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_delete":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_failure":{"type":"TypeString","optional":true,"computed":true},"scale_down_unneeded":{"type":"TypeString","optional":true,"computed":true},"scale_down_unready":{"type":"TypeString","optional":true,"computed":true},"scale_down_utilization_threshold":{"type":"TypeString","optional":true,"computed":true},"scan_interval":{"type":"TypeString","optional":true,"computed":true},"skip_nodes_with_local_storage":{"type":"TypeBool","optional":true,"default":true},"skip_nodes_with_system_pods":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"automatic_channel_upgrade":{"type":"TypeString","optional":true},"azure_active_directory_role_based_access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","optional":true},"client_app_id":{"type":"TypeString","optional":true},"managed":{"type":"TypeBool","optional":true},"server_app_id":{"type":"TypeString","optional":true},"server_app_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"azure_policy_enabled":{"type":"TypeBool","optional":true},"confidential_computing":{"type":"TypeList","optional":true,"elem":{"schema":{"sgx_quote_helper_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"custom_ca_trust_certificates_base64":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"default_node_pool":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true},"enable_node_public_ip":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false},"cpu_cfs_quota_period":{"type":"TypeString","optional":true},"cpu_manager_policy":{"type":"TypeString","optional":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true},"pod_max_pid":{"type":"TypeInt","optional":true},"topology_manager_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"linux_os_config":{"type":"TypeList","optional":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"only_critical_addons_enabled":{"type":"TypeBool","optional":true},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed"},"os_sku":{"type":"TypeString","optional":true,"computed":true},"pod_subnet_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"temporary_name_for_rotation":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"VirtualMachineScaleSets","forceNew":true},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true},"vnet_subnet_id":{"type":"TypeString","optional":true},"workload_runtime":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix_private_cluster":{"type":"TypeString","optional":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_pod_security_policy":{"type":"TypeBool","optional":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","optional":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"http_proxy_config":{"type":"TypeList","optional":true,"elem":{"schema":{"http_proxy":{"type":"TypeString","optional":true,"forceNew":true},"https_proxy":{"type":"TypeString","optional":true,"forceNew":true},"no_proxy":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trusted_ca":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_cleaner_enabled":{"type":"TypeBool","optional":true,"default":false},"image_cleaner_interval_hours":{"type":"TypeInt","optional":true,"default":48},"ingress_application_gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","optional":true},"gateway_name":{"type":"TypeString","optional":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"key_management_service":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_network_access":{"type":"TypeString","optional":true,"default":"Public"}}},"maxItems":1},"key_vault_secrets_provider":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"secret_rotation_interval":{"type":"TypeString","optional":true,"default":"2m"}}},"maxItems":1},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"object_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"kubernetes_version":{"type":"TypeString","optional":true,"computed":true},"linux_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_username":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeList","required":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"local_account_disabled":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"hours":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"minItems":1}}}},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}}}},"maxItems":1},"maintenance_window_auto_upgrade":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"maintenance_window_node_os":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"microsoft_defender":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true}}},"maxItems":1},"monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"annotations_allowed":{"type":"TypeString","optional":true},"labels_allowed":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"docker_bridge_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ebpf_data_plane":{"type":"TypeString","optional":true},"ip_versions":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"load_balancer_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":30},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true},"managed_outbound_ipv6_count":{"type":"TypeInt","optional":true,"computed":true},"outbound_ip_address_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ip_prefix_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ports_allocated":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"load_balancer_sku":{"type":"TypeString","optional":true,"default":"standard","forceNew":true},"nat_gateway_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"network_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"network_plugin":{"type":"TypeString","required":true,"forceNew":true},"network_plugin_mode":{"type":"TypeString","optional":true},"network_policy":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"pod_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pod_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"service_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_os_channel_upgrade":{"type":"TypeString","optional":true},"node_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","optional":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","optional":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"open_service_mesh_enabled":{"type":"TypeBool","optional":true},"portal_fqdn":{"type":"TypeString","computed":true},"private_cluster_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"private_cluster_public_fqdn_enabled":{"type":"TypeBool","optional":true,"default":false},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"private_fqdn":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_based_access_control_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"run_command_enabled":{"type":"TypeBool","optional":true,"default":true},"service_mesh_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true}}},"maxItems":1},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"storage_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"disk_driver_version":{"type":"TypeString","optional":true,"default":"v1"},"file_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"snapshot_controller_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"web_app_routing":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_zone_id":{"type":"TypeString","required":true},"web_app_routing_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"windows_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"gmsa":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_server":{"type":"TypeString","required":true},"root_domain":{"type":"TypeString","required":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true}}},"maxItems":1},"workload_autoscaler_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"keda_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_controlled_values":{"type":"TypeString","computed":true},"vertical_pod_autoscaler_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_update_mode":{"type":"TypeString","computed":true}}},"maxItems":1},"workload_identity_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_kubernetes_cluster_extension":{"schema":{"aks_assigned_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true,"forceNew":true},"enable_node_public_ip":{"type":"TypeBool","optional":true,"forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true,"forceNew":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"cpu_cfs_quota_period":{"type":"TypeString","optional":true,"forceNew":true},"cpu_manager_policy":{"type":"TypeString","optional":true,"forceNew":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"pod_max_pid":{"type":"TypeInt","optional":true,"forceNew":true},"topology_manager_policy":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"linux_os_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true,"forceNew":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","optional":true,"default":"User"},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed","forceNew":true},"os_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"Linux","forceNew":true},"pod_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"spot_max_price":{"type":"TypeFloat","optional":true,"default":-1,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"vnet_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"windows_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"outbound_nat_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"workload_runtime":{"type":"TypeString","optional":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kubernetes_cluster_trusted_access_role_binding":{"schema":{"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_fleet_manager":{"schema":{"hub_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dns_prefix":{"type":"TypeString","required":true},"fqdn":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true}}},"maxItems":1},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_attached_database_configuration":{"schema":{"attached_database_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"cluster_resource_id":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_principal_modification_kind":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"elem":{"schema":{"external_tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"external_tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster":{"schema":{"allowed_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allowed_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"auto_stop_enabled":{"type":"TypeBool","optional":true,"default":true},"data_ingestion_uri":{"type":"TypeString","computed":true},"disk_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"double_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"engine":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"language_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimized_auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum_instances":{"type":"TypeInt","required":true},"minimum_instances":{"type":"TypeInt","required":true}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"public_ip_type":{"type":"TypeString","optional":true,"default":"IPv4"},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"streaming_ingestion_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_external_tenants":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true},"virtual_network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_management_public_ip_id":{"type":"TypeString","required":true},"engine_public_ip_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_customer_managed_key":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"user_identity":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_cluster_managed_private_endpoint":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_id":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_region":{"type":"TypeString","optional":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cosmosdb_data_connection":{"schema":{"cosmosdb_container_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_id":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retrieval_start_date":{"type":"TypeString","optional":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"hot_cache_period":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_database_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_eventgrid_data_connection":{"schema":{"blob_storage_event_type":{"type":"TypeString","optional":true,"default":"Microsoft.Storage.BlobCreated"},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"eventgrid_resource_id":{"type":"TypeString","optional":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","optional":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skip_first_record":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_eventhub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"compression":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_iothub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_script":{"schema":{"continue_on_errors_enabled":{"type":"TypeBool","optional":true,"default":false},"database_id":{"type":"TypeString","required":true,"forceNew":true},"force_an_update_when_value_changed":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sas_token":{"type":"TypeString","optional":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_lab":{"schema":{"auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"lab_plan_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","computed":true},"public_ip_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roster":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_group_id":{"type":"TypeString","optional":true},"lms_instance":{"type":"TypeString","optional":true},"lti_client_id":{"type":"TypeString","optional":true},"lti_context_id":{"type":"TypeString","optional":true},"lti_roster_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"security":{"type":"TypeList","required":true,"elem":{"schema":{"open_access_enabled":{"type":"TypeBool","required":true},"registration_code":{"type":"TypeString","computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title":{"type":"TypeString","required":true},"virtual_machine":{"type":"TypeList","required":true,"elem":{"schema":{"additional_capability_gpu_drivers_installed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"admin_user":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"create_option":{"type":"TypeString","optional":true,"default":"Image","forceNew":true},"image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"non_admin_user":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"shared_password_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_lab_service_plan":{"schema":{"allowed_regions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":28,"minItems":1},"default_auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"default_connection":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true},"web_rdp_access":{"type":"TypeString","optional":true},"web_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"default_network_subnet_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_gallery_id":{"type":"TypeString","optional":true},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"instructions":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_schedule":{"schema":{"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"stop_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_user":{"schema":{"additional_usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"},"email":{"type":"TypeString","required":true,"forceNew":true},"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb":{"schema":{"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"id":{"type":"TypeString","computed":true},"inbound_nat_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_version":{"type":"TypeString","optional":true,"computed":true},"public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"computed":true},"subnet_id":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool":{"schema":{"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tunnel_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier":{"type":"TypeInt","required":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"virtual_network_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool_address":{"schema":{"backend_address_ip_configuration_id":{"type":"TypeString","optional":true,"description":"For global load balancer, user needs to specify the `backend_address_ip_configuration_id` of the added regional load balancers"},"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"description":"For regional load balancer, user needs to specify `virtual_network_id` and `ip_address`"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_pool":{"schema":{"backend_port":{"type":"TypeInt","required":true},"floating_ip_enabled":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_end":{"type":"TypeInt","required":true},"frontend_port_start":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tcp_reset_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","optional":true},"backend_ip_configuration_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","required":true},"enable_floating_ip":{"type":"TypeBool","optional":true,"computed":true},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","optional":true},"frontend_port_end":{"type":"TypeInt","optional":true},"frontend_port_start":{"type":"TypeInt","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","optional":true,"default":1024},"backend_address_pool_id":{"type":"TypeString","required":true},"enable_tcp_reset":{"type":"TypeBool","optional":true,"default":false},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_probe":{"schema":{"interval_in_seconds":{"type":"TypeInt","optional":true,"default":15},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_probes":{"type":"TypeInt","optional":true,"default":2},"port":{"type":"TypeInt","required":true},"probe_threshold":{"type":"TypeInt","optional":true,"default":1},"protocol":{"type":"TypeString","optional":true,"computed":true},"request_path":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_rule":{"schema":{"backend_address_pool_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":1},"backend_port":{"type":"TypeInt","required":true},"disable_outbound_snat":{"type":"TypeBool","optional":true,"default":false},"enable_floating_ip":{"type":"TypeBool","optional":true,"default":false},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"load_distribution":{"type":"TypeString","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"probe_id":{"type":"TypeString","optional":true,"computed":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lighthouse_assignment":{"schema":{"lighthouse_definition_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_lighthouse_definition":{"schema":{"authorization":{"type":"TypeSet","required":true,"elem":{"schema":{"delegated_role_definition_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"eligible_authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"just_in_time_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"approver":{"type":"TypeSet","optional":true,"elem":{"schema":{"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true}}}},"maximum_activation_duration":{"type":"TypeString","optional":true,"default":"PT8H"},"multi_factor_auth_provider":{"type":"TypeString","optional":true}}},"maxItems":1},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}}},"lighthouse_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managing_tenant_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022``","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Function App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Linux Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_linux_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"default":0},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_linux_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_web_app_slot":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_service_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_load_test":{"schema":{"data_plane_uri":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"gateway_address":{"type":"TypeString","optional":true},"gateway_fqdn":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_cluster":{"schema":{"cluster_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"default":1000},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_cluster_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"log_analytics_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_data_export_rule":{"schema":{"destination_resource_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"export_rule_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_event":{"schema":{"event_log_name":{"type":"TypeString","required":true},"event_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_performance_counter":{"schema":{"counter_name":{"type":"TypeString","required":true},"instance_name":{"type":"TypeString","required":true},"interval_seconds":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"object_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_service":{"schema":{"name":{"type":"TypeString","computed":true},"read_access_id":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true},"write_access_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_storage_account":{"schema":{"data_source_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack_query":{"schema":{"additional_settings_json":{"type":"TypeString","optional":true},"body":{"type":"TypeString","required":true},"categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"query_pack_id":{"type":"TypeString","required":true,"forceNew":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"solutions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_saved_search":{"schema":{"category":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"function_alias":{"type":"TypeString","optional":true,"forceNew":true},"function_parameters":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_solution":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"solution_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_storage_insights":{"schema":{"blob_container_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"table_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_workspace":{"schema":{"allow_resource_only_permissions":{"type":"TypeBool","optional":true,"default":true},"cmk_for_query_forced":{"type":"TypeBool","optional":true},"daily_quota_gb":{"type":"TypeFloat","optional":true,"default":-1},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_shared_key":{"type":"TypeString","computed":true},"reservation_capacity_in_gb_per_day":{"type":"TypeInt","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_http":{"schema":{"body":{"type":"TypeString","optional":true},"headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"queries":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_after":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_name":{"type":"TypeString","required":true},"action_result":{"type":"TypeString","required":true}}},"minItems":1},"uri":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account":{"schema":{"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_agreement":{"schema":{"agreement_type":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"guest_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"guest_partner_name":{"type":"TypeString","required":true},"host_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"host_partner_name":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_assembly":{"schema":{"assembly_name":{"type":"TypeString","required":true},"assembly_version":{"type":"TypeString","optional":true,"default":"0.0.0.0"},"content":{"type":"TypeString","optional":true},"content_link_uri":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_batch_configuration":{"schema":{"batch_group_name":{"type":"TypeString","required":true,"forceNew":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"release_criteria":{"type":"TypeList","required":true,"elem":{"schema":{"batch_size":{"type":"TypeInt","optional":true},"message_count":{"type":"TypeInt","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeSet","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","required":true},"weekday":{"type":"TypeString","required":true}}}},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_certificate":{"schema":{"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true}}},"maxItems":1},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_certificate":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_map":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"map_type":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_partner":{"schema":{"business_identity":{"type":"TypeSet","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_schema":{"schema":{"content":{"type":"TypeString","required":true},"file_name":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_session":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","optional":true,"default":"[1.*, 2.0.0)"},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"client_certificate_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_share_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","optional":true,"default":true},"version":{"type":"TypeString","optional":true,"default":"~3"},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_http_request":{"schema":{"callback_url":{"type":"TypeString","computed":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"relative_path":{"type":"TypeString","optional":true},"schema":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_recurrence":{"schema":{"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"at_these_hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"at_these_minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"on_these_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_workflow":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"open_authentication_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"claim":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"workflow_management":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logic_app_integration_account_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","optional":true,"default":"https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#","forceNew":true},"workflow_version":{"type":"TypeString","optional":true,"default":"1.0.0.0","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_monitor":{"schema":{"company_name":{"type":"TypeString","optional":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logz_organization_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","required":true,"forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"100gb14days","forceNew":true},"usage_type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_sign_on_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account_tag_rule":{"schema":{"logz_sub_account_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_tag_rule":{"schema":{"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_compute_cluster":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"scale_settings":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true,"forceNew":true},"min_node_count":{"type":"TypeInt","required":true,"forceNew":true},"scale_down_nodes_after_idle_duration":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"key_value":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"ssh_public_access_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"vm_priority":{"type":"TypeString","required":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_compute_instance":{"schema":{"assign_to_user":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"object_id":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"authorization_type":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","computed":true}}},"maxItems":1},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"virtual_machine_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_datastore_blobstorage":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_auth_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_datalake_gen2":{"schema":{"authority_url":{"type":"TypeString","optional":true,"computed":true},"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_fileshare":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_fileshare_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_inference_cluster":{"schema":{"cluster_purpose":{"type":"TypeString","optional":true,"default":"FastProd","forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ssl":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cert":{"type":"TypeString","optional":true,"default":"","forceNew":true},"cname":{"type":"TypeString","optional":true,"default":"","forceNew":true},"key":{"type":"TypeString","optional":true,"default":"","forceNew":true},"leaf_domain_label":{"type":"TypeString","optional":true,"default":"","forceNew":true},"overwrite_existing_domain":{"type":"TypeBool","optional":true,"default":"","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_synapse_spark":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_workspace":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"container_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"discovery_url":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key_id":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"friendly_name":{"type":"TypeString","optional":true},"high_business_impact":{"type":"TypeBool","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_build_compute_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_user_assigned_identity":{"type":"TypeString","optional":true},"public_access_behind_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Basic"},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"v1_legacy_mode_enabled":{"type":"TypeBool","optional":true,"default":false},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maintenance_assignment_dedicated_host":{"schema":{"dedicated_host_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine_scale_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","optional":true},"install_patches":{"type":"TypeList","optional":true,"elem":{"schema":{"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"reboot":{"type":"TypeString","optional":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","optional":true,"default":"Custom"},"window":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","optional":true},"expiration_date_time":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"start_date_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application":{"schema":{"application_definition_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameter_values":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application_definition":{"schema":{"authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"role_definition_id":{"type":"TypeString","required":true},"service_principal_id":{"type":"TypeString","required":true}}},"minItems":1},"create_ui_definition":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_level":{"type":"TypeString","required":true,"forceNew":true},"main_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"package_enabled":{"type":"TypeBool","optional":true,"default":true},"package_file_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","required":true,"forceNew":true},"disk_access_id":{"type":"TypeString","optional":true},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_iops_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"gallery_image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"forceNew":true},"image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logical_sector_size":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"max_shares":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_access_policy":{"type":"TypeString","optional":true},"on_demand_bursting_enabled":{"type":"TypeBool","optional":true},"os_type":{"type":"TypeString","optional":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_type":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"computed":true},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"upload_size_bytes":{"type":"TypeInt","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk_sas_token":{"schema":{"access_level":{"type":"TypeString","required":true,"forceNew":true},"duration_in_seconds":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"sas_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_managed_lustre_file_system":{"schema":{"encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"hsm_setting":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"import_prefix":{"type":"TypeString","optional":true,"forceNew":true},"logging_container_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","required":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"time_of_day_in_utc":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_capacity_in_tb":{"type":"TypeInt","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"parent_management_group_id":{"type":"TypeString","optional":true,"computed":true},"subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_subscription_association":{"schema":{"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5}},"azurerm_management_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_management_lock":{"schema":{"lock_level":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_creator":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maps_account_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mariadb_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_mariadb_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeString","required":true,"forceNew":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_asset":{"schema":{"alternate_id":{"type":"TypeString","optional":true},"container":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_asset_filter":{"schema":{"asset_id":{"type":"TypeString","required":true,"forceNew":true},"first_quality_bitrate":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_miliseconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","optional":true},"property":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_content_key_policy":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_option":{"type":"TypeSet","required":true,"elem":{"schema":{"clear_key_configuration_enabled":{"type":"TypeBool","optional":true},"fairplay_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"ask":{"type":"TypeString","optional":true},"offline_rental_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"playback_duration_seconds":{"type":"TypeInt","optional":true},"storage_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"pfx":{"type":"TypeString","optional":true},"pfx_password":{"type":"TypeString","optional":true},"rental_and_lease_key_type":{"type":"TypeString","optional":true},"rental_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"open_restriction_enabled":{"type":"TypeBool","optional":true},"playready_configuration_license":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_test_devices":{"type":"TypeBool","optional":true},"begin_date":{"type":"TypeString","optional":true},"content_key_location_from_header_enabled":{"type":"TypeBool","optional":true},"content_key_location_from_key_id":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"grace_period":{"type":"TypeString","optional":true},"license_type":{"type":"TypeString","optional":true},"play_right":{"type":"TypeList","optional":true,"elem":{"schema":{"agc_and_color_stripe_restriction":{"type":"TypeInt","optional":true},"allow_passing_video_content_to_unknown_output":{"type":"TypeString","optional":true},"analog_video_opl":{"type":"TypeInt","optional":true},"compressed_digital_audio_opl":{"type":"TypeInt","optional":true},"compressed_digital_video_opl":{"type":"TypeInt","optional":true},"digital_video_only_content_restriction":{"type":"TypeBool","optional":true},"explicit_analog_television_output_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"best_effort_enforced":{"type":"TypeBool","optional":true,"default":false},"control_bits":{"type":"TypeInt","required":true}}},"maxItems":1},"first_play_expiration":{"type":"TypeString","optional":true},"image_constraint_for_analog_component_video_restriction":{"type":"TypeBool","optional":true},"image_constraint_for_analog_computer_monitor_restriction":{"type":"TypeBool","optional":true},"scms_restriction":{"type":"TypeInt","optional":true},"uncompressed_digital_audio_opl":{"type":"TypeInt","optional":true},"uncompressed_digital_video_opl":{"type":"TypeInt","optional":true}}},"maxItems":1},"relative_begin_date":{"type":"TypeString","optional":true},"relative_expiration_date":{"type":"TypeString","optional":true},"security_level":{"type":"TypeString","optional":true}}}},"playready_response_custom_data":{"type":"TypeString","optional":true},"token_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"alternate_key":{"type":"TypeList","optional":true,"elem":{"schema":{"rsa_token_key_exponent":{"type":"TypeString","optional":true},"rsa_token_key_modulus":{"type":"TypeString","optional":true},"symmetric_token_key":{"type":"TypeString","optional":true},"x509_token_key_raw":{"type":"TypeString","optional":true}}}},"audience":{"type":"TypeString","optional":true},"issuer":{"type":"TypeString","optional":true},"open_id_connect_discovery_document":{"type":"TypeString","optional":true},"primary_rsa_token_key_exponent":{"type":"TypeString","optional":true},"primary_rsa_token_key_modulus":{"type":"TypeString","optional":true},"primary_symmetric_token_key":{"type":"TypeString","optional":true},"primary_x509_token_key_raw":{"type":"TypeString","optional":true},"required_claim":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"token_type":{"type":"TypeString","optional":true}}},"maxItems":1},"widevine_configuration_template":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_job":{"schema":{"description":{"type":"TypeString","optional":true},"input_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1},"priority":{"type":"TypeString","optional":true,"default":"Normal","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"transform_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event":{"schema":{"auto_start_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true},"cross_domain_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"preset_name":{"type":"TypeString","optional":true,"forceNew":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"None"},"type":{"type":"TypeString","optional":true,"default":"None","forceNew":true}}},"maxItems":1},"hostname_prefix":{"type":"TypeString","optional":true},"input":{"type":"TypeList","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"key_frame_interval_duration":{"type":"TypeString","optional":true},"streaming_protocol":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"preview":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"preview_locator":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_options":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transcription_languages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"use_static_hostname":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event_output":{"schema":{"archive_window_duration":{"type":"TypeString","required":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"hls_fragments_per_ts_segment":{"type":"TypeInt","optional":true,"forceNew":true},"live_event_id":{"type":"TypeString","required":true,"forceNew":true},"manifest_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_snap_time_in_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"rewind_window_duration":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account":{"schema":{"encryption":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_key_identifier":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"type":{"type":"TypeString","optional":true,"default":"SystemKey"}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_delivery_access_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true},"ip_allow_list":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"storage_authentication_type":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account_filter":{"schema":{"first_quality_bitrate":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_milliseconds":{"type":"TypeInt","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_endpoint":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"akamai_signature_header_authentication_key":{"type":"TypeList","optional":true,"elem":{"schema":{"base64_key":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","optional":true},"identifier":{"type":"TypeString","optional":true}}}},"ip_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}}}},"maxItems":1},"auto_start_enabled":{"type":"TypeBool","optional":true,"computed":true},"cdn_enabled":{"type":"TypeBool","optional":true},"cdn_profile":{"type":"TypeString","optional":true,"computed":true},"cdn_provider":{"type":"TypeString","optional":true,"computed":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true,"computed":true},"cross_domain_policy":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"custom_host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_cache_age_seconds":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_locator":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content_key_id":{"type":"TypeString","optional":true,"forceNew":true},"label_reference_in_streaming_policy":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","optional":true,"forceNew":true}}}},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"end_time":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"filter_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"forceNew":true},"streaming_locator_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_streaming_policy":{"schema":{"common_encryption_cbcs":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_fairplay":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_persistent_license":{"type":"TypeBool","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"common_encryption_cenc":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"clear_track":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}},"content_key_to_track_mapping":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"track":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}}}}},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_playready":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_attributes":{"type":"TypeString","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_widevine_custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"envelope_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"no_encryption_enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_transform":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"builtin_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"preset_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true},"interleave_output":{"type":"TypeString","optional":true},"key_frame_interval_in_seconds":{"type":"TypeFloat","optional":true},"max_bitrate_bps":{"type":"TypeInt","optional":true},"max_height":{"type":"TypeInt","optional":true},"max_layers":{"type":"TypeInt","optional":true},"min_bitrate_bps":{"type":"TypeInt","optional":true},"min_height":{"type":"TypeInt","optional":true}}},"maxItems":1},"preset_name":{"type":"TypeString","required":true}}},"maxItems":1},"custom_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"codec":{"type":"TypeList","required":true,"elem":{"schema":{"aac_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":128000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"profile":{"type":"TypeString","optional":true,"default":"AacLc"},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"copy_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"copy_video":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"dd_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":192000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"h264_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":23},"entropy_mode":{"type":"TypeString","optional":true,"computed":true},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"rate_control_mode":{"type":"TypeString","optional":true,"default":"ABR"},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"h265_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":28},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"jpg_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"quality":{"type":"TypeInt","optional":true,"default":70},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"sprite_column":{"type":"TypeInt","optional":true,"default":0},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"png_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1}}},"minItems":1},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"deinterlace":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true,"default":"AutoPixelAdaptive"},"parity":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"fade_in":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"fade_out":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"overlay":{"type":"TypeList","optional":true,"elem":{"schema":{"audio":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}},"maxItems":1},"video":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"opacity":{"type":"TypeFloat","optional":true,"default":1},"position":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"start":{"type":"TypeString","optional":true}}},"maxItems":1}}},"minItems":1},"rotation":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"format":{"type":"TypeList","required":true,"elem":{"schema":{"jpg":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"mp4":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1},"png":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"transport_stream":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1}}},"minItems":1}}},"maxItems":1},"face_detector_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"analysis_resolution":{"type":"TypeString","optional":true,"default":"SourceResolution"},"blur_type":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"face_redactor_mode":{"type":"TypeString","optional":true,"default":"Analyze"}}},"maxItems":1},"on_error_action":{"type":"TypeString","optional":true,"default":"StopProcessingJob"},"relative_priority":{"type":"TypeString","optional":true,"default":"Normal"},"video_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"insights_type":{"type":"TypeString","optional":true,"default":"AllInsights"}}},"maxItems":1}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_country_code":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_code":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_data_network_name":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true,"forceNew":true},"network_address_port_translation":{"type":"TypeList","optional":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"pinhole_maximum_number":{"type":"TypeInt","optional":true,"default":65536},"port_range":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum":{"type":"TypeInt","optional":true,"default":49999},"minimum":{"type":"TypeInt","optional":true,"default":1024}}},"maxItems":1},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":120},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":60}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","optional":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"control_plane_access_name":{"type":"TypeString","optional":true},"core_network_technology":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"interoperability_settings_json":{"type":"TypeString","optional":true},"local_diagnostics_access":{"type":"TypeList","required":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","required":true},"https_server_certificate_url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","optional":true},"custom_location_id":{"type":"TypeString","optional":true},"edge_device_id":{"type":"TypeString","optional":true},"stack_hci_cluster_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"sku":{"type":"TypeString","required":true},"software_version":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","optional":true,"default":1440}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pcc_rule":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precedence":{"type":"TypeInt","required":true},"qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true},"guaranteed_bit_rate":{"type":"TypeList","optional":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"Preemptable"},"qos_indicator":{"type":"TypeInt","required":true}}},"maxItems":1},"service_data_flow_template":{"type":"TypeList","required":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","optional":true,"default":true}}}},"service_precedence":{"type":"TypeInt","required":true},"service_qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":9},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true},"preemption_vulnerability":{"type":"TypeString","optional":true},"qos_indicator":{"type":"TypeInt","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim":{"schema":{"authentication_key":{"type":"TypeString","required":true},"device_type":{"type":"TypeString","optional":true},"integrated_circuit_card_identifier":{"type":"TypeString","required":true,"forceNew":true},"international_mobile_subscriber_identity":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operator_key_code":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","optional":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true},"static_ipv4_address":{"type":"TypeString","optional":true}}},"minItems":1},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","optional":true},"registration_timer_in_seconds":{"type":"TypeInt","optional":true,"default":3240},"slice":{"type":"TypeList","required":true,"elem":{"schema":{"data_network":{"type":"TypeList","required":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":0},"allowed_services_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","required":true},"default_session_type":{"type":"TypeString","optional":true,"default":"IPv4"},"max_buffered_packets":{"type":"TypeInt","optional":true,"default":10},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"NotPreemptable"},"qos_indicator":{"type":"TypeInt","required":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}}}},"default_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":180,"read":5,"delete":180,"update":60}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","required":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","optional":true},"slice_service_type":{"type":"TypeInt","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_monitor_aad_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true,"forceNew":true},"eventhub_name":{"type":"TypeString","optional":true,"forceNew":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"role_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"automation_runbook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"is_global_runbook":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true},"runbook_name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true,"default":false},"webhook_resource_id":{"type":"TypeString","required":true}}}},"azure_app_push_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"azure_function_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"http_trigger_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"email_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"event_hub_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","required":true},"ticket_configuration":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","optional":true,"default":"global","forceNew":true},"logic_app_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"callback_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"short_name":{"type":"TypeString","required":true},"sms_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"webhook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","optional":true,"computed":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_action_group":{"schema":{"action_group_id":{"type":"TypeString","required":true},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"suppression":{"type":"TypeList","required":true,"elem":{"schema":{"recurrence_type":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"end_date_utc":{"type":"TypeString","required":true},"recurrence_monthly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"},"minItems":1},"recurrence_weekly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"start_date_utc":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_activity_log_alert":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"caller":{"type":"TypeString","optional":true},"category":{"type":"TypeString","required":true},"level":{"type":"TypeString","optional":true},"levels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operation_name":{"type":"TypeString","optional":true},"recommendation_category":{"type":"TypeString","optional":true},"recommendation_impact":{"type":"TypeString","optional":true},"recommendation_type":{"type":"TypeString","optional":true},"resource_group":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"previous":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reason":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_id":{"type":"TypeString","optional":true},"resource_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_provider":{"type":"TypeString","optional":true},"resource_providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_type":{"type":"TypeString","optional":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"service_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"services":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"status":{"type":"TypeString","optional":true},"statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sub_status":{"type":"TypeString","optional":true},"sub_statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_action_group":{"schema":{"add_action_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_prometheus_rule_group":{"schema":{"cluster_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"interval":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"action_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":5},"alert":{"type":"TypeString","optional":true},"alert_resolution":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_resolved":{"type":"TypeBool","optional":true},"time_to_resolve":{"type":"TypeString","optional":true}}},"maxItems":1},"annotations":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"expression":{"type":"TypeString","required":true},"for":{"type":"TypeString","optional":true},"labels":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"record":{"type":"TypeString","optional":true},"severity":{"type":"TypeInt","optional":true}}}},"rule_group_enabled":{"type":"TypeBool","optional":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_autoscale_setting":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"send_to_subscription_administrator":{"type":"TypeBool","optional":true,"default":false},"send_to_subscription_co_administrator":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"webhook":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_uri":{"type":"TypeString","required":true}}}}}},"maxItems":1},"predictive":{"type":"TypeList","optional":true,"elem":{"schema":{"look_ahead_time":{"type":"TypeString","optional":true},"scale_mode":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"profile":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeList","required":true,"elem":{"schema":{"default":{"type":"TypeInt","required":true},"maximum":{"type":"TypeInt","required":true},"minimum":{"type":"TypeInt","required":true}}},"maxItems":1},"fixed_date":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hours":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"minutes":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","required":true,"elem":{"schema":{"dimensions":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"divide_by_instance_count":{"type":"TypeBool","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","optional":true},"metric_resource_id":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"statistic":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","required":true},"time_window":{"type":"TypeString","required":true}}},"maxItems":1},"scale_action":{"type":"TypeList","required":true,"elem":{"schema":{"cooldown":{"type":"TypeString","required":true},"direction":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":10}}},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_flow":{"type":"TypeList","required":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"output_stream":{"type":"TypeString","optional":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"transform_kql":{"type":"TypeString","optional":true}}},"minItems":1},"data_sources":{"type":"TypeList","optional":true,"elem":{"schema":{"data_import":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","required":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"stream":{"type":"TypeString","required":true}}}}}},"maxItems":1},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"extension_json":{"type":"TypeString","optional":true},"extension_name":{"type":"TypeString","required":true},"input_data_sources":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"iis_log":{"type":"TypeList","optional":true,"elem":{"schema":{"log_directories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"settings":{"type":"TypeList","optional":true,"elem":{"schema":{"text":{"type":"TypeList","required":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"performance_counter":{"type":"TypeList","optional":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"sampling_frequency_in_seconds":{"type":"TypeInt","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"prometheus_forwarder":{"type":"TypeList","optional":true,"elem":{"schema":{"label_include_filter":{"type":"TypeSet","optional":true,"elem":{"schema":{"label":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"syslog":{"type":"TypeList","optional":true,"elem":{"schema":{"facility_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"log_levels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_event_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"x_path_queries":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_firewall_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}}},"monitor_account":{"type":"TypeList","optional":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"storage_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_blob_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_table_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_declaration":{"type":"TypeSet","optional":true,"elem":{"schema":{"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"stream_name":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule_association":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_collection_rule_id":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"default":"configurationAccessEndpoint","forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","optional":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"log_analytics_destination_type":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"metric":{"type":"TypeSet","optional":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_solution_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"locations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"servicebus_rule_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_metric_alert":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"application_insights_web_test_location_availability_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"component_id":{"type":"TypeString","required":true},"failed_location_count":{"type":"TypeInt","required":true},"web_test_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"auto_mitigate":{"type":"TypeBool","optional":true,"default":true},"criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true,"default":false},"threshold":{"type":"TypeFloat","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"dynamic_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"alert_sensitivity":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"evaluation_failure_count":{"type":"TypeInt","optional":true,"default":4},"evaluation_total_count":{"type":"TypeInt","optional":true,"default":4},"ignore_data_before":{"type":"TypeString","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","optional":true,"default":"PT1M"},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"severity":{"type":"TypeInt","optional":true,"default":3},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_location":{"type":"TypeString","optional":true,"description":"The location of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"target_resource_type":{"type":"TypeString","optional":true,"description":"The resource type (e.g. Microsoft.Compute/virtualMachines) of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"window_size":{"type":"TypeString","optional":true,"default":"PT5M"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scope":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scoped_service":{"schema":{"linked_resource_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_group":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","optional":true},"email_subject":{"type":"TypeString","optional":true}}},"maxItems":1},"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":100},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_type":{"type":"TypeString","optional":true,"default":"ResultCount"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"severity":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","optional":true},"time_window":{"type":"TypeInt","required":true},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_column":{"type":"TypeString","optional":true},"metric_trigger_type":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert_v2":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"custom_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"created_with_api_version":{"type":"TypeString","computed":true},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"failing_periods":{"type":"TypeList","optional":true,"elem":{"schema":{"minimum_failing_periods_to_trigger_alert":{"type":"TypeInt","required":true},"number_of_evaluation_periods":{"type":"TypeInt","required":true}}},"maxItems":1},"metric_measure_column":{"type":"TypeString","optional":true},"operator":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true},"resource_id_column":{"type":"TypeString","optional":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation_method":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"evaluation_frequency":{"type":"TypeString","optional":true},"is_a_legacy_log_analytics_rule":{"type":"TypeBool","computed":true},"is_workspace_alerts_storage_configured":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mute_actions_after_alert_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_time_range_override":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"severity":{"type":"TypeInt","required":true},"skip_query_validation":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"window_duration":{"type":"TypeString","required":true},"workspace_alerts_storage_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"Include"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","required":true}}},"maxItems":1},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_smart_detector_alert_rule":{"schema":{"action_group":{"type":"TypeList","required":true,"elem":{"schema":{"email_subject":{"type":"TypeString","optional":true},"ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"webhook_payload":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"detector_type":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"severity":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling_duration":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database":{"schema":{"auto_pause_delay_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"creation_source_database_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"elastic_pool_id":{"type":"TypeString","optional":true},"geo_backup_enabled":{"type":"TypeBool","optional":true,"default":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"ledger_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"computed":true},"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"maintenance_configuration_name":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeInt","optional":true,"computed":true},"min_capacity":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_replica_count":{"type":"TypeInt","optional":true,"computed":true},"read_scale":{"type":"TypeBool","optional":true,"computed":true},"recover_database_id":{"type":"TypeString","optional":true},"restore_dropped_database_id":{"type":"TypeString","optional":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"sample_name":{"type":"TypeString","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backup_interval_in_hours":{"type":"TypeInt","optional":true,"default":12},"retention_days":{"type":"TypeInt","required":true}}},"maxItems":1},"sku_name":{"type":"TypeString","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Geo"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"transparent_data_encryption_enabled":{"type":"TypeBool","optional":true,"default":true},"zone_redundant":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_database_extended_auditing_policy":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database_vulnerability_assessment_rule_baseline":{"schema":{"baseline_name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"baseline_result":{"type":"TypeSet","required":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"database_name":{"type":"TypeString","required":true,"forceNew":true},"rule_id":{"type":"TypeString","required":true,"forceNew":true},"server_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"max_size_bytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_gb":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_database_settings":{"type":"TypeList","required":true,"elem":{"schema":{"max_capacity":{"type":"TypeFloat","required":true},"min_capacity":{"type":"TypeFloat","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"family":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_server":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}},"minItems":1},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_job_agent":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_job_credential":{"schema":{"job_agent_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_managed_database":{"schema":{"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_days":{"type":"TypeInt","optional":true,"default":7}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_mssql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true},"login_username":{"type":"TypeString","required":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_vulnerability_assessment":{"schema":{"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":true},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_outbound_firewall_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"azuread_administrator":{"type":"TypeList","optional":true,"elem":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login_username":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1,"minItems":1},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_network_restriction_enabled":{"type":"TypeBool","optional":true,"default":false},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transparent_data_encryption_key_vault_key_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_server_dns_alias":{"schema":{"dns_record":{"type":"TypeString","computed":true},"mssql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_mssql_server_extended_auditing_policy":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_account_subscription_id":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_microsoft_support_auditing_policy":{"schema":{"blob_storage_endpoint":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_subscription_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"server_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"server_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_machine":{"schema":{"assessment":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"run_immediately":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"monthly_occurrence":{"type":"TypeInt","optional":true},"start_time":{"type":"TypeString","required":true},"weekly_interval":{"type":"TypeInt","optional":true}}},"maxItems":1}}},"maxItems":1},"auto_backup":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_password":{"type":"TypeString","optional":true},"manual_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"full_backup_frequency":{"type":"TypeString","required":true},"full_backup_start_hour":{"type":"TypeInt","required":true},"full_backup_window_in_hours":{"type":"TypeInt","required":true},"log_backup_frequency_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_period_in_days":{"type":"TypeInt","required":true},"storage_account_access_key":{"type":"TypeString","required":true},"storage_blob_endpoint":{"type":"TypeString","required":true},"system_databases_backup_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"auto_patching":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window_duration_in_minutes":{"type":"TypeInt","required":true},"maintenance_window_starting_hour":{"type":"TypeInt","required":true}}},"maxItems":1},"key_vault_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_url":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"service_principal_name":{"type":"TypeString","required":true,"forceNew":true},"service_principal_secret":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"r_services_enabled":{"type":"TypeBool","optional":true},"sql_connectivity_port":{"type":"TypeInt","optional":true,"default":1433},"sql_connectivity_type":{"type":"TypeString","optional":true,"default":"PRIVATE"},"sql_connectivity_update_password":{"type":"TypeString","optional":true},"sql_connectivity_update_username":{"type":"TypeString","optional":true},"sql_instance":{"type":"TypeList","optional":true,"elem":{"schema":{"adhoc_workloads_optimization_enabled":{"type":"TypeBool","optional":true,"default":false},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"instant_file_initialization_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"lock_pages_in_memory_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"max_dop":{"type":"TypeInt","optional":true,"default":0},"max_server_memory_mb":{"type":"TypeInt","optional":true,"default":2147483647},"min_server_memory_mb":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"sql_license_type":{"type":"TypeString","optional":true,"forceNew":true},"sql_virtual_machine_group_id":{"type":"TypeString","optional":true},"storage_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"data_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"disk_type":{"type":"TypeString","required":true},"log_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"storage_workload_type":{"type":"TypeString","required":true},"system_db_on_data_disk_enabled":{"type":"TypeBool","optional":true,"default":false},"temp_db_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"data_file_count":{"type":"TypeInt","optional":true,"default":8},"data_file_growth_in_mb":{"type":"TypeInt","optional":true,"default":512},"data_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"default_file_path":{"type":"TypeString","required":true},"log_file_growth_mb":{"type":"TypeInt","optional":true,"default":512},"log_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"wsfc_domain_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_bootstrap_account_password":{"type":"TypeString","required":true},"cluster_operator_account_password":{"type":"TypeString","required":true},"sql_service_account_password":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_virtual_machine_availability_group_listener":{"schema":{"availability_group_name":{"type":"TypeString","optional":true,"forceNew":true},"load_balancer_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"probe_port":{"type":"TypeInt","required":true,"forceNew":true},"sql_virtual_machine_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"multi_subnet_ip_configuration":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"replica":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"commit":{"type":"TypeString","required":true,"forceNew":true},"failover_mode":{"type":"TypeString","required":true,"forceNew":true},"readable_secondary":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}}}},"sql_virtual_machine_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_mssql_virtual_machine_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_image_offer":{"type":"TypeString","required":true,"forceNew":true},"sql_image_sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wsfc_domain_profile":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_bootstrap_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_operator_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_subnet_type":{"type":"TypeString","required":true,"forceNew":true},"fqdn":{"type":"TypeString","required":true,"forceNew":true},"organizational_unit_path":{"type":"TypeString","optional":true,"forceNew":true},"sql_service_account_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_primary_key":{"type":"TypeString","optional":true},"storage_account_url":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_password":{"type":"TypeString","optional":true},"backup_retention_days":{"type":"TypeInt","optional":true,"default":7},"create_mode":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"iops":{"type":"TypeInt","optional":true,"computed":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server_active_directory_administrator":{"schema":{"identity_id":{"type":"TypeString","required":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_nat_gateway_public_ip_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nat_gateway_public_ip_prefix_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_netapp_account":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"domain":{"type":"TypeString","required":true},"organizational_unit":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"smb_server_name":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"qos_type":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"size_in_tb":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"daily_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"hourly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"monthly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"maxItems":30},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"azure_vmware_data_store_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"create_from_snapshot_resource_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true,"forceNew":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_clients":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"protocols_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"root_access_enabled":{"type":"TypeBool","optional":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true},"unix_read_write":{"type":"TypeBool","optional":true}}},"maxItems":5},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_features":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_style":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","optional":true,"computed":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","optional":true,"computed":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"application_identifier":{"type":"TypeString","required":true,"forceNew":true},"group_description":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","required":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","required":true},"nfsv41_enabled":{"type":"TypeBool","required":true},"root_access_enabled":{"type":"TypeBool","optional":true,"default":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true,"default":false},"unix_read_write":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":5,"minItems":1},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"security_style":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","required":true,"forceNew":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"volume_spec_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":5,"minItems":2}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_netapp_volume_quota_rule":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota_size_in_kib":{"type":"TypeInt","required":true},"quota_target":{"type":"TypeString","optional":true,"forceNew":true},"quota_type":{"type":"TypeString","required":true,"forceNew":true},"volume_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_network_connection_monitor":{"schema":{"endpoint":{"type":"TypeSet","required":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"coverage_level":{"type":"TypeString","optional":true},"excluded_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"item":{"type":"TypeSet","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"AgentAddress"}}}},"type":{"type":"TypeString","optional":true,"default":"Include"}}},"maxItems":1},"included_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_resource_id":{"type":"TypeString","optional":true,"computed":true},"target_resource_type":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"output_workspace_resource_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"test_configuration":{"type":"TypeSet","required":true,"elem":{"schema":{"http_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"method":{"type":"TypeString","optional":true,"default":"Get"},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","optional":true},"prefer_https":{"type":"TypeBool","optional":true,"default":false},"request_header":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"valid_status_code_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"icmp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"preferred_ip_version":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"success_threshold":{"type":"TypeList","optional":true,"elem":{"schema":{"checks_failed_percent":{"type":"TypeInt","optional":true},"round_trip_time_ms":{"type":"TypeFloat","optional":true}}},"maxItems":1},"tcp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_port_behavior":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"test_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":60}}}},"test_group":{"type":"TypeSet","required":true,"elem":{"schema":{"destination_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"source_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"test_configuration_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_function_azure_traffic_collector":{"schema":{"collector_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"internal_dns_name_label":{"type":"TypeString","optional":true,"computed":true},"internal_domain_name_suffix":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"computed":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_gateway_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_nat_rule_association":{"schema":{"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_security_group_association":{"schema":{"network_interface_id":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager":{"schema":{"cross_tenant_scopes":{"type":"TypeList","computed":true,"elem":{"schema":{"management_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subscriptions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","required":true,"elem":{"schema":{"management_group_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"scope_accesses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule":{"schema":{"action":{"type":"TypeString","required":true},"admin_rule_collection_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"destination_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"source_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule_collection":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"security_admin_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_connectivity_configuration":{"schema":{"applies_to_group":{"type":"TypeList","required":true,"elem":{"schema":{"global_mesh_enabled":{"type":"TypeBool","optional":true},"group_connectivity":{"type":"TypeString","required":true},"network_group_id":{"type":"TypeString","required":true},"use_hub_gateway":{"type":"TypeBool","optional":true}}}},"connectivity_topology":{"type":"TypeString","required":true},"delete_existing_peering_enabled":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"global_mesh_enabled":{"type":"TypeBool","optional":true},"hub":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true},"resource_type":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_deployment":{"schema":{"configuration_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"scope_access":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_network_manager_management_group_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_scope_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"target_scope_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_security_admin_configuration":{"schema":{"apply_on_network_intent_policy_based_services":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_static_member":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_id":{"type":"TypeString","required":true,"forceNew":true},"region":{"type":"TypeString","computed":true},"target_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_network_manager_subscription_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_profile":{"schema":{"container_network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}},"maxItems":1},"container_network_interface_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_rule":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher_flow_log":{"schema":{"enabled":{"type":"TypeBool","required":true},"location":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"storage_account_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"interval_in_minutes":{"type":"TypeInt","optional":true,"default":60},"workspace_id":{"type":"TypeString","required":true},"workspace_region":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}},"maxItems":1},"version":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_new_relic_monitor":{"schema":{"account_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"account_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ingestion_key":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"organization_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","optional":true,"default":"MONTHLY","forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"newrelic-pay-as-you-go-free-live","forceNew":true},"usage_type":{"type":"TypeString","optional":true,"default":"PAYG","forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nginx_certificate":{"schema":{"certificate_virtual_path":{"type":"TypeString","required":true},"key_vault_secret_id":{"type":"TypeString","required":true},"key_virtual_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_nginx_configuration":{"schema":{"config_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true},"package_data":{"type":"TypeString","optional":true},"protected_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"root_file":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_nginx_deployment":{"schema":{"diagnose_support_enabled":{"type":"TypeBool","optional":true},"frontend_private":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"frontend_public":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"ip_address":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logging_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}}},"managed_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}}},"nginx_version":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"application_mode":{"type":"TypeString","required":true},"bundle_id":{"type":"TypeString","required":true},"key_id":{"type":"TypeString","required":true},"team_id":{"type":"TypeString","required":true},"token":{"type":"TypeString","required":true}}},"maxItems":1},"gcm_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"notification_hub_name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_contact":{"schema":{"contact_profile_id":{"type":"TypeString","required":true,"forceNew":true},"ground_station_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"reservation_end_time":{"type":"TypeString","required":true,"forceNew":true},"reservation_start_time":{"type":"TypeString","required":true,"forceNew":true},"spacecraft_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_orbital_contact_profile":{"schema":{"auto_tracking":{"type":"TypeString","required":true},"event_hub_uri":{"type":"TypeString","optional":true},"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"channels":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"demodulation_configuration":{"type":"TypeString","optional":true},"end_point":{"type":"TypeSet","required":true,"elem":{"schema":{"end_point_name":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","optional":true},"port":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"modulation_configuration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_elevation_degrees":{"type":"TypeFloat","optional":true},"minimum_variable_contact_duration":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_spacecraft":{"schema":{"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"norad_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title_line":{"type":"TypeString","required":true},"two_line_elements":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version_enabled":{"type":"TypeBool","optional":true,"default":true},"extensions_to_provision_after_vm_creation":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"failure_suppression_enabled":{"type":"TypeBool","optional":true},"force_extension_execution_on_change":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"computed":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"os_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_data":{"type":"TypeString","optional":true},"linux_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"windows_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"timezone":{"type":"TypeString","optional":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}}}},"maxItems":1}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"priority_mix":{"type":"TypeList","optional":true,"elem":{"schema":{"base_regular_count":{"type":"TypeInt","optional":true,"default":0},"regular_percentage_above_base":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"computed":true},"sku_name":{"type":"TypeString","optional":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"user_data_base64":{"type":"TypeString","optional":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","optional":true},"anti_virus_profile":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"dns_subscription":{"type":"TypeString","optional":true},"file_blocking_profile":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"url_filtering_profile":{"type":"TypeString","optional":true},"vulnerability_profile":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_certificate":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"self_signed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_fqdn_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"fully_qualified_domain_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_outbound_trust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_outbound_untrust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_prefix_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prefix_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_rule":{"schema":{"action":{"type":"TypeString","required":true},"applications":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"audit_comment":{"type":"TypeString","optional":true},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1,"minItems":1},"decryption_rule_type":{"type":"TypeString","optional":true,"default":"None"},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_fqdn_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"inspection_certificate_id":{"type":"TypeString","optional":true},"logging_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"negate_destination":{"type":"TypeBool","optional":true,"default":false},"negate_source":{"type":"TypeBool","optional":true,"default":false},"priority":{"type":"TypeInt","required":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"application-default"},"protocol_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_palo_alto_virtual_network_appliance":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_active_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"The ticket details.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_eligible_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the eligible role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this eligible role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"Ticket details relating to the assignment.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_point_to_site_vpn_gateway":{"schema":{"connection_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true},"route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"elem":{"schema":{"ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"vpn_client_address_pool":{"type":"TypeList","required":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference_internet_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"scale_unit":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_rule":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","required":true,"forceNew":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_definition_group":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","optional":true},"category":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"policy_definition_reference":{"type":"TypeList","required":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true},"policy_group_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","optional":true,"computed":true}}}},"policy_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"configuration":{"type":"TypeList","required":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true},"content_hash":{"type":"TypeString","optional":true,"computed":true},"content_uri":{"type":"TypeString","optional":true,"computed":true},"parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_tenant_configuration":{"schema":{"private_markdown_storage_enforced":{"type":"TypeBool","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true},"administrator_password":{"type":"TypeString","optional":true},"authentication":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory_auth_enabled":{"type":"TypeBool","optional":true,"default":false},"password_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":false},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true},"customer_managed_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replication_role":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_flexible_server_active_directory_administrator":{"schema":{"object_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_database":{"schema":{"charset":{"type":"TypeString","optional":true,"default":"UTF8","forceNew":true},"collation":{"type":"TypeString","optional":true,"default":"en_US.utf8","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_postgresql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_powerbi_embedded":{"schema":{"administrators":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","optional":true,"default":"Gen1","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"target_dns_servers":{"type":"TypeList","required":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"port":{"type":"TypeInt","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","required":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"subnet_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":10},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_zone_name":{"type":"TypeString","required":true,"forceNew":true},"registration_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_endpoint":{"schema":{"custom_dns_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"custom_network_interface_name":{"type":"TypeString","optional":true,"forceNew":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"member_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_dns_zone_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"record_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"type":{"type":"TypeString","computed":true}}}}}}},"private_dns_zone_group":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_zone_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"private_service_connection":{"type":"TypeList","required":true,"elem":{"schema":{"is_manual_connection":{"type":"TypeBool","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_connection_resource_alias":{"type":"TypeString","optional":true,"forceNew":true},"private_connection_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"request_message":{"type":"TypeString","optional":true},"subresource_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_private_endpoint_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","optional":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary":{"type":"TypeBool","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":8},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_proximity_placement_group":{"schema":{"allowed_vm_sizes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ddos_protection_mode":{"type":"TypeString","optional":true,"default":"VirtualNetworkInherited"},"ddos_protection_plan_id":{"type":"TypeString","optional":true},"domain_name_label":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_fqdn":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"prefix_length":{"type":"TypeInt","optional":true,"default":28,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_purview_account":{"schema":{"atlas_kafka_endpoint_primary_connection_string":{"type":"TypeString","computed":true},"atlas_kafka_endpoint_secondary_connection_string":{"type":"TypeString","computed":true},"catalog_endpoint":{"type":"TypeString","computed":true},"guardian_endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_resources":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_namespace_id":{"type":"TypeString","computed":true},"resource_group_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scan_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_recovery_services_vault":{"schema":{"classic_vmware_replication_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"cross_region_restore_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"infrastructure_encryption_enabled":{"type":"TypeBool","required":true},"key_id":{"type":"TypeString","required":true},"use_system_assigned_identity":{"type":"TypeBool","optional":true,"default":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"monitoring":{"type":"TypeList","optional":true,"elem":{"schema":{"alerts_for_all_job_failures_enabled":{"type":"TypeBool","optional":true,"default":true},"alerts_for_critical_operation_failures_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"soft_delete_enabled":{"type":"TypeBool","optional":true,"default":true},"storage_mode_type":{"type":"TypeString","optional":true,"default":"GeoRedundant"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":30,"update":60}},"azurerm_recovery_services_vault_resource_guard_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_guard_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","required":true},"enable_non_ssl_port":{"type":"TypeBool","optional":true,"default":false},"family":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"patch_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window":{"type":"TypeString","optional":true,"default":"PT5H"},"start_hour_utc":{"type":"TypeInt","optional":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"redis_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","optional":true},"aof_storage_connection_string_0":{"type":"TypeString","optional":true},"aof_storage_connection_string_1":{"type":"TypeString","optional":true},"enable_authentication":{"type":"TypeBool","optional":true,"default":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_delta":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_policy":{"type":"TypeString","optional":true,"default":"volatile-lru"},"maxmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"notify_keyspace_events":{"type":"TypeString","optional":true},"rdb_backup_enabled":{"type":"TypeBool","optional":true},"rdb_backup_frequency":{"type":"TypeInt","optional":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","optional":true},"rdb_storage_connection_string":{"type":"TypeString","optional":true}}},"maxItems":1},"redis_version":{"type":"TypeString","optional":true,"computed":true},"replicas_per_master":{"type":"TypeInt","optional":true,"computed":true},"replicas_per_primary":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_redis_enterprise_cluster":{"schema":{"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_enterprise_database":{"schema":{"client_protocol":{"type":"TypeString","optional":true,"default":"Encrypted","forceNew":true},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"clustering_policy":{"type":"TypeString","optional":true,"default":"OSSCluster","forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"default":"VolatileLRU","forceNew":true},"linked_database_group_nickname":{"type":"TypeString","optional":true,"forceNew":true},"linked_database_id":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"module":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"args":{"type":"TypeString","optional":true,"default":"","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}}},"maxItems":4},"name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"port":{"type":"TypeInt","optional":true,"default":10000,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_firewall_rule":{"schema":{"end_ip":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_linked_server":{"schema":{"linked_redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"linked_redis_cache_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_role":{"type":"TypeString","required":true,"forceNew":true},"target_redis_cache_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_relay_hybrid_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"relay_namespace_name":{"type":"TypeString","required":true,"forceNew":true},"requires_client_authorization":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_hybrid_connection_authorization_rule":{"schema":{"hybrid_connection_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_namespace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"metric_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_relay_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_cli":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_power_shell":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_by":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_resource_group_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_resource_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_provider_registration":{"schema":{"feature":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"registered":{"type":"TypeBool","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":30,"update":120}},"azurerm_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_resource_id":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":60}},"azurerm_route":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"communities":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rule_type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_map":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeList","required":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true}}}},"match_criterion":{"type":"TypeList","optional":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_condition":{"type":"TypeString","required":true},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"next_step_if_matched":{"type":"TypeString","optional":true,"default":"Unknown"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_server":{"schema":{"branch_to_branch_traffic_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_route_server_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"route_server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_route_table":{"schema":{"disable_bgp_route_propagation":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_search_service":{"schema":{"allowed_ips":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_failure_mode":{"type":"TypeString","optional":true},"customer_managed_key_enforcement_enabled":{"type":"TypeBool","optional":true,"default":false},"hosting_mode":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","optional":true,"default":1},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","optional":true,"default":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_search_shared_private_link_service":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"search_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_assessment":{"schema":{"additional_data":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"assessment_policy_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeList","required":true,"elem":{"schema":{"cause":{"type":"TypeString","optional":true},"code":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_assessment_policy":{"schema":{"categories":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"implementation_effort":{"type":"TypeString","optional":true},"name":{"type":"TypeString","computed":true},"remediation_description":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true,"default":"Medium"},"threats":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"user_impact":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_auto_provisioning":{"schema":{"auto_provision":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_automation":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","required":true},"trigger_url":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"source":{"type":"TypeList","required":true,"elem":{"schema":{"event_source":{"type":"TypeString","required":true},"rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule":{"type":"TypeList","required":true,"elem":{"schema":{"expected_value":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"property_path":{"type":"TypeString","required":true},"property_type":{"type":"TypeString","required":true}}}}}}}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_contact":{"schema":{"alert_notifications":{"type":"TypeBool","required":true},"alerts_to_admins":{"type":"TypeBool","required":true},"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"default":"default1"},"phone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_server_vulnerability_assessment":{"schema":{"hybrid_machine_id":{"type":"TypeString","optional":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_server_vulnerability_assessment_virtual_machine":{"schema":{"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_setting":{"schema":{"enabled":{"type":"TypeBool","required":true},"setting_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":10,"read":5,"delete":10,"update":10}},"azurerm_security_center_subscription_pricing":{"schema":{"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_extension_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"resource_type":{"type":"TypeString","optional":true,"default":"VirtualMachines"},"subplan":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_workspace":{"schema":{"scope":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sentinel_alert_rule_anomaly_built_in":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_anomaly_duplicate":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"built_in_rule_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"is_default_settings":{"type":"TypeBool","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true},"prioritized_exclude_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prioritize":{"type":"TypeString","optional":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_fusion":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"sub_type":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"severities_allowed":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_machine_learning_behavior_analytics":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_ms_security_incident":{"schema":{"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"display_name_exclude_filter":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name_filter":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_filter":{"type":"TypeString","required":true},"severity_filter":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_nrt":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident_enabled":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_scheduled":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"group_by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_frequency":{"type":"TypeString","optional":true,"default":"PT5H"},"query_period":{"type":"TypeString","optional":true,"default":"PT5H"},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","optional":true,"default":"GreaterThan"},"trigger_threshold":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_threat_intelligence":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_automation_rule":{"schema":{"action_incident":{"type":"TypeList","optional":true,"elem":{"schema":{"classification":{"type":"TypeString","optional":true},"classification_comment":{"type":"TypeString","optional":true},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"owner_id":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true},"status":{"type":"TypeString","optional":true}}}},"action_playbook":{"type":"TypeList","optional":true,"elem":{"schema":{"logic_app_id":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"condition":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"condition_json":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiration":{"type":"TypeString","optional":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true},"triggers_on":{"type":"TypeString","optional":true,"default":"Incidents"},"triggers_when":{"type":"TypeString","optional":true,"default":"Created"}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_sentinel_data_connector_aws_cloud_trail":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_aws_s3":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"destination_table":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sqs_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_azure_active_directory":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_security_center":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_dynamics_365":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_iot":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_cloud_app_security":{"schema":{"alerts_enabled":{"type":"TypeBool","optional":true,"default":true},"discovery_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_microsoft_defender_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_intelligence":{"schema":{"bing_safety_phishing_url_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_emerging_threat_feed_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_365":{"schema":{"exchange_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sharepoint_enabled":{"type":"TypeBool","optional":true,"default":true},"teams_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_office_365_project":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_atp":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_irm":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_power_bi":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence_taxii":{"schema":{"api_root_url":{"type":"TypeString","required":true},"collection_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z"},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"polling_frequency":{"type":"TypeString","optional":true,"default":"OnceAnHour"},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_log_analytics_workspace_onboarding":{"schema":{"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_metadata":{"schema":{"author":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"domains":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verticals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content_id":{"type":"TypeString","required":true},"content_schema_version":{"type":"TypeString","optional":true,"default":"2.0"},"custom_version":{"type":"TypeString","optional":true},"dependency":{"type":"TypeString","optional":true},"first_publish_date":{"type":"TypeString","optional":true},"icon_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"last_publish_date":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true},"preview_images":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"preview_images_dark":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"threat_analysis_tactics":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_analysis_techniques":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_threat_intelligence_indicator":{"schema":{"confidence":{"type":"TypeInt","optional":true,"default":-1},"created_by":{"type":"TypeString","optional":true},"created_on":{"type":"TypeString","computed":true},"defanged":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"extension":{"type":"TypeString","optional":true,"computed":true},"external_id":{"type":"TypeString","computed":true},"external_last_updated_time_utc":{"type":"TypeString","computed":true},"external_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"hashes":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"source_name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}}},"granular_marking":{"type":"TypeList","optional":true,"elem":{"schema":{"language":{"type":"TypeString","optional":true},"marking_ref":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"guid":{"type":"TypeString","computed":true},"indicator_type":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kill_chain_phase":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true}}}},"language":{"type":"TypeString","optional":true},"last_updated_time_utc":{"type":"TypeString","computed":true},"object_marking_refs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parsed_pattern":{"type":"TypeList","computed":true,"elem":{"schema":{"pattern_type_key":{"type":"TypeString","computed":true},"pattern_type_values":{"type":"TypeList","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true},"value_type":{"type":"TypeString","computed":true}}}}}}},"pattern":{"type":"TypeString","required":true},"pattern_type":{"type":"TypeString","required":true},"pattern_version":{"type":"TypeString","optional":true},"revoked":{"type":"TypeBool","optional":true,"default":false},"source":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"validate_from_utc":{"type":"TypeString","required":true},"validate_until_utc":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_watchlist":{"schema":{"default_duration":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"item_search_key":{"type":"TypeString","required":true,"forceNew":true},"labels":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_watchlist_item":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"properties":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"watchlist_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_cluster":{"schema":{"add_on_features":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"azure_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"client_certificate_common_name":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","required":true},"is_admin":{"type":"TypeBool","required":true},"issuer_thumbprint":{"type":"TypeString","optional":true}}}},"client_certificate_thumbprint":{"type":"TypeList","optional":true,"elem":{"schema":{"is_admin":{"type":"TypeBool","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"cluster_code_version":{"type":"TypeString","optional":true,"computed":true},"cluster_endpoint":{"type":"TypeString","computed":true},"diagnostics_config":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_endpoint":{"type":"TypeString","required":true},"protected_account_key_name":{"type":"TypeString","required":true},"queue_endpoint":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"fabric_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_endpoint":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","required":true,"elem":{"schema":{"application_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"client_endpoint_port":{"type":"TypeInt","required":true},"durability_level":{"type":"TypeString","optional":true,"default":"Bronze"},"ephemeral_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"http_endpoint_port":{"type":"TypeInt","required":true},"instance_count":{"type":"TypeInt","required":true},"is_primary":{"type":"TypeBool","required":true},"is_stateless":{"type":"TypeBool","optional":true},"multiple_availability_zones":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reverse_proxy_endpoint_port":{"type":"TypeInt","optional":true}}}},"reliability_level":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_proxy_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"reverse_proxy_certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"service_fabric_zonal_upgrade_mode":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_mode":{"type":"TypeString","required":true},"upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"delta_health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_delta_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0},"max_upgrade_domain_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"force_restart_enabled":{"type":"TypeBool","optional":true},"health_check_retry_timeout":{"type":"TypeString","optional":true,"default":"00:45:00"},"health_check_stable_duration":{"type":"TypeString","optional":true,"default":"00:01:00"},"health_check_wait_duration":{"type":"TypeString","optional":true,"default":"00:00:30"},"health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"upgrade_domain_timeout":{"type":"TypeString","optional":true,"default":"02:00:00"},"upgrade_replica_set_check_timeout":{"type":"TypeString","optional":true,"default":"10675199.02:48:05.4775807"},"upgrade_timeout":{"type":"TypeString","optional":true,"default":"12:00:00"}}},"maxItems":1},"vm_image":{"type":"TypeString","required":true,"forceNew":true},"vmss_zonal_upgrade_mode":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_managed_cluster":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","optional":true},"thumbprint":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"backup_service_enabled":{"type":"TypeBool","optional":true},"client_connection_port":{"type":"TypeInt","required":true},"custom_fabric_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","required":true},"section":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dns_name":{"type":"TypeString","optional":true,"computed":true},"dns_service_enabled":{"type":"TypeBool","optional":true},"http_gateway_port":{"type":"TypeInt","required":true},"lb_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true},"frontend_port":{"type":"TypeInt","required":true},"probe_protocol":{"type":"TypeString","required":true},"probe_request_path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","optional":true,"elem":{"schema":{"application_port_range":{"type":"TypeString","required":true},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"data_disk_size_gb":{"type":"TypeInt","required":true},"data_disk_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"},"ephemeral_port_range":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"multiple_placement_groups_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"primary":{"type":"TypeBool","optional":true},"stateless":{"type":"TypeBool","optional":true},"vm_image_offer":{"type":"TypeString","required":true},"vm_image_publisher":{"type":"TypeString","required":true},"vm_image_sku":{"type":"TypeString","required":true},"vm_image_version":{"type":"TypeString","required":true},"vm_instance_count":{"type":"TypeInt","required":true},"vm_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"certificates":{"type":"TypeList","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}}},"vault_id":{"type":"TypeString","required":true}}}},"vm_size":{"type":"TypeString","required":true}}}},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_wave":{"type":"TypeString","optional":true,"default":"Wave0"},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling_enabled":{"type":"TypeBool","optional":true,"default":false},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","optional":true,"computed":true},"zone_balancing_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":0},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_id":{"type":"TypeString","required":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_network_rule_set":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true,"default":false},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true,"default":true},"enable_express":{"type":"TypeBool","optional":true,"default":false},"enable_partitioning":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"client_scoped_subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"forceNew":true},"is_client_scoped_subscription_durable":{"type":"TypeBool","computed":true},"is_client_scoped_subscription_shareable":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"client_scoped_subscription_enabled":{"type":"TypeBool","optional":true,"default":false},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","optional":true,"default":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription_rule":{"schema":{"action":{"type":"TypeString","optional":true},"correlation_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","optional":true},"correlation_id":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"message_id":{"type":"TypeString","optional":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reply_to":{"type":"TypeString","optional":true},"reply_to_session_id":{"type":"TypeString","optional":true},"session_id":{"type":"TypeString","optional":true},"to":{"type":"TypeString","optional":true}}},"maxItems":1},"filter_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_filter":{"type":"TypeString","optional":true},"sql_filter_compatibility_level":{"type":"TypeInt","computed":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"enable_express":{"type":"TypeBool","optional":true},"enable_partitioning":{"type":"TypeBool","optional":true,"forceNew":true},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"support_ordering":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image":{"schema":{"accelerated_network_support_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"architecture":{"type":"TypeString","optional":true,"default":"x64","forceNew":true},"confidential_vm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"confidential_vm_supported":{"type":"TypeBool","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"disk_types_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true,"forceNew":true},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"identifier":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"max_recommended_vcpu_count":{"type":"TypeInt","optional":true},"min_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"min_recommended_vcpu_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true,"forceNew":true},"purchase_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_note_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"specialized":{"type":"TypeBool","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"community_gallery":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"eula":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"prefix":{"type":"TypeString","required":true,"forceNew":true},"publisher_email":{"type":"TypeString","required":true,"forceNew":true},"publisher_uri":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"permission":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_version":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"image_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_image_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk_snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"replication_mode":{"type":"TypeString","optional":true,"default":"Full","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"hostname":{"type":"TypeString","computed":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"live_trace_enabled":{"type":"TypeBool","optional":true,"default":false},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":30},"service_mode":{"type":"TypeString","optional":true,"default":"Default"},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"upstream_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"category_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"event_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hub_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_network_acl":{"schema":{"default_action":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"sub_resource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"source_network_name":{"type":"TypeString","required":true,"forceNew":true},"source_system_center_virtual_machine_manager_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_site_recovery_hyperv_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_hours":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_hours":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"replication_interval_in_seconds":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_replication_policy_association":{"schema":{"hyperv_site_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_site_recovery_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_network_id":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container_mapping":{"schema":{"automatic_update":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true},"automation_account_id":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_source_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_target_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replicated_vm":{"schema":{"managed_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_id":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_disk_encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","configMode":"Auto","required":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_encryption_key":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"target_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"target_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_replica_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true}}}},"multi_vm_group_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"failover_test_public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"failover_test_static_ip":{"type":"TypeString","optional":true,"computed":true},"failover_test_subnet_name":{"type":"TypeString","optional":true,"computed":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"recovery_public_ip_address_id":{"type":"TypeString","optional":true},"source_network_interface_id":{"type":"TypeString","optional":true,"computed":true},"target_static_ip":{"type":"TypeString","optional":true},"target_subnet_name":{"type":"TypeString","optional":true}}}},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","required":true,"forceNew":true},"target_availability_set_id":{"type":"TypeString","optional":true},"target_boot_diagnostic_storage_account_id":{"type":"TypeString","optional":true},"target_capacity_reservation_group_id":{"type":"TypeString","optional":true},"target_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"target_network_id":{"type":"TypeString","optional":true,"computed":true},"target_proximity_placement_group_id":{"type":"TypeString","optional":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"target_virtual_machine_scale_set_id":{"type":"TypeString","optional":true},"target_zone":{"type":"TypeString","optional":true,"forceNew":true},"test_network_id":{"type":"TypeString","optional":true,"computed":true},"unmanaged_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_uri":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}}}}},"timeouts":{"create":180,"read":5,"delete":80,"update":80}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"primary_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_zone":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"boot_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"failover_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_group":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"minItems":3},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"shutdown_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"source_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_services_vault_hyperv_site":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":180}},"azurerm_site_recovery_vmware_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_vmware_replication_policy_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_snapshot":{"schema":{"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"incremental_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_accelerator":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_active_deployment":{"schema":{"deployment_name":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_api_portal":{"schema":{"gateway_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"https_only_enabled":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_spring_cloud_api_portal_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_api_portal_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"custom_persistent_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"mount_path":{"type":"TypeString","required":true},"read_only_enabled":{"type":"TypeBool","optional":true,"default":false},"share_name":{"type":"TypeString","required":true},"storage_name":{"type":"TypeString","required":true}}},"minItems":1},"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backend_protocol":{"type":"TypeString","optional":true,"default":"Default"},"read_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":300},"send_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":60},"session_affinity":{"type":"TypeString","optional":true,"default":"None"},"session_cookie_max_age":{"type":"TypeInt","optional":true}}},"maxItems":1},"is_public":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"persistent_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","optional":true,"default":"/persistent"},"size_in_gb":{"type":"TypeInt","required":true}}},"maxItems":1},"public_endpoint_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"tls_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_cosmosdb_association":{"schema":{"api_type":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_access_key":{"type":"TypeString","required":true},"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_cassandra_keyspace_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_database_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_graph_name":{"type":"TypeString","optional":true},"cosmosdb_mongo_database_name":{"type":"TypeString","optional":true},"cosmosdb_sql_database_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_mysql_association":{"schema":{"database_name":{"type":"TypeString","required":true},"mysql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_redis_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"redis_access_key":{"type":"TypeString","required":true},"redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_application_live_view":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_build_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"build_result_id":{"type":"TypeString","required":true},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_build_pack_binding":{"schema":{"binding_type":{"type":"TypeString","optional":true},"launch":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_builder_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_builder":{"schema":{"build_pack_group":{"type":"TypeSet","required":true,"elem":{"schema":{"build_pack_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"stack":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_certificate":{"schema":{"certificate_content":{"type":"TypeString","optional":true,"forceNew":true},"exclude_private_key":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_configuration_service":{"schema":{"generation":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"ca_certificate_id":{"type":"TypeString","optional":true},"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"label":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"patterns":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"private_key":{"type":"TypeString","optional":true},"search_paths":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"strict_host_key_checking":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}}}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_connection":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"spring_cloud_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_container_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"arguments":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"commands":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"language_framework":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"server":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_custom_domain":{"schema":{"certificate_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_customized_accelerator":{"schema":{"accelerator_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"git_repository":{"type":"TypeList","required":true,"elem":{"schema":{"basic_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"ca_certificate_id":{"type":"TypeString","optional":true},"commit":{"type":"TypeString","optional":true},"git_tag":{"type":"TypeString","optional":true},"interval_in_seconds":{"type":"TypeInt","optional":true},"ssh_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}}},"maxItems":1},"icon_url":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_accelerator_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_dev_tool_portal":{"schema":{"application_accelerator_enabled":{"type":"TypeBool","optional":true,"computed":true},"application_live_view_enabled":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"metadata_url":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway":{"schema":{"api_metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"documentation_url":{"type":"TypeString","optional":true},"server_url":{"type":"TypeString","optional":true},"title":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"application_performance_monitoring_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verification_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origin_patterns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","optional":true},"exposed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"max_age_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"https_only":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"default":"1"},"memory":{"type":"TypeString","optional":true,"default":"2Gi"}}},"maxItems":1},"sensitive_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_route_config":{"schema":{"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"open_api":{"type":"TypeList","optional":true,"elem":{"schema":{"uri":{"type":"TypeString","optional":true}}},"maxItems":1},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeString","optional":true,"default":"HTTP"},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"classification_tags":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"sso_validation_enabled":{"type":"TypeBool","optional":true},"title":{"type":"TypeString","optional":true},"token_relay":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","optional":true}}}},"spring_cloud_app_id":{"type":"TypeString","optional":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"sso_validation_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_java_deployment":{"schema":{"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"jvm_options":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"default":"Java_8"},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_service":{"schema":{"build_agent_pool_size":{"type":"TypeString","optional":true},"config_server_git_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"pattern":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"container_registry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"server":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"default_build_service":{"type":"TypeList","optional":true,"elem":{"schema":{"container_registry_name":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"log_stream_public_endpoint_enabled":{"type":"TypeBool","optional":true},"marketplace":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"plan":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"app_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"app_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"cidr_ranges":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":3},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"read_timeout_seconds":{"type":"TypeInt","optional":true},"service_runtime_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_runtime_subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_registry_enabled":{"type":"TypeBool","optional":true},"service_registry_id":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"S0","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"sample_rate":{"type":"TypeFloat","optional":true,"default":10}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_date":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","optional":true,"computed":true},"elastic_pool_name":{"type":"TypeString","optional":true,"computed":true},"encryption":{"type":"TypeString","computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"operation_mode":{"type":"TypeString","optional":true,"default":"Import"},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_size_bytes":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_scale":{"type":"TypeBool","optional":true,"default":false},"requested_service_objective_id":{"type":"TypeString","optional":true,"computed":true},"requested_service_objective_name":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"source_database_deletion_date":{"type":"TypeString","optional":true,"computed":true},"source_database_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_elasticpool":{"schema":{"creation_date":{"type":"TypeString","computed":true},"db_dtu_max":{"type":"TypeInt","optional":true,"computed":true},"db_dtu_min":{"type":"TypeInt","optional":true,"computed":true},"dtu":{"type":"TypeInt","required":true},"edition":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_size":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_servers":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_database":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"default":false},"login":{"type":"TypeString","required":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"computed":true},"email_addresses":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ssh_public_key":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_stack_hci_cluster":{"schema":{"automanage_configuration_id":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site":{"schema":{"api_key":{"type":"TypeString","computed":true},"default_host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_size":{"type":"TypeString","optional":true,"default":"Free"},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"static_site_id":{"type":"TypeString","required":true,"forceNew":true},"validation_token":{"type":"TypeString","computed":true},"validation_type":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"account_kind":{"type":"TypeString","optional":true,"default":"StorageV2"},"account_replication_type":{"type":"TypeString","required":true},"account_tier":{"type":"TypeString","required":true,"forceNew":true},"allow_nested_items_to_be_public":{"type":"TypeBool","optional":true,"default":true},"allowed_copy_scope":{"type":"TypeString","optional":true},"azure_files_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","required":true},"domain_sid":{"type":"TypeString","required":true},"forest_name":{"type":"TypeString","required":true},"netbios_domain_name":{"type":"TypeString","required":true},"storage_sid":{"type":"TypeString","required":true}}},"maxItems":1},"directory_type":{"type":"TypeString","required":true}}},"maxItems":1},"blob_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"change_feed_enabled":{"type":"TypeBool","optional":true,"default":false},"change_feed_retention_in_days":{"type":"TypeInt","optional":true},"container_delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"default_service_version":{"type":"TypeString","optional":true,"computed":true},"delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"last_access_time_enabled":{"type":"TypeBool","optional":true,"default":false},"restore_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true}}},"maxItems":1},"versioning_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cross_tenant_replication_enabled":{"type":"TypeBool","optional":true,"default":true},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"use_subdomain":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_to_oauth_authentication":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_https_traffic_only":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_protected_append_writes":{"type":"TypeBool","required":true},"period_since_creation_in_days":{"type":"TypeInt","required":true},"state":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"is_hns_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"large_file_share_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"default":"TLS1_2"},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"nfsv3_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"queue_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"queue_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"hour_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"logging":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"delete":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"minute_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"choice":{"type":"TypeString","optional":true,"default":"MicrosoftRouting"},"publish_internet_endpoints":{"type":"TypeBool","optional":true,"default":false},"publish_microsoft_endpoints":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sas_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_action":{"type":"TypeString","optional":true,"default":"Log"},"expiration_period":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"sftp_enabled":{"type":"TypeBool","optional":true,"default":false},"share_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"smb":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"channel_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"kerberos_ticket_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"multichannel_enabled":{"type":"TypeBool","optional":true,"default":false},"versions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"shared_access_key_enabled":{"type":"TypeBool","optional":true,"default":true},"static_website":{"type":"TypeList","optional":true,"elem":{"schema":{"error_404_document":{"type":"TypeString","optional":true},"index_document":{"type":"TypeString","optional":true}}},"maxItems":1},"table_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_account_customer_managed_key":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_local_user":{"schema":{"home_directory":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","computed":true},"permission_scope":{"type":"TypeList","optional":true,"elem":{"schema":{"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"create":{"type":"TypeBool","optional":true,"default":false},"delete":{"type":"TypeBool","optional":true,"default":false},"list":{"type":"TypeBool","optional":true,"default":false},"read":{"type":"TypeBool","optional":true,"default":false},"write":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_name":{"type":"TypeString","required":true},"service":{"type":"TypeString","required":true}}}},"sid":{"type":"TypeString","computed":true},"ssh_authorized_key":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true}}}},"ssh_key_enabled":{"type":"TypeBool","optional":true,"default":false},"ssh_password_enabled":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_network_rules":{"schema":{"bypass":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_subnet_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"cache_control":{"type":"TypeString","optional":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallelism":{"type":"TypeInt","optional":true,"default":8,"forceNew":true},"size":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"source_content":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_blob_inventory_policy":{"schema":{"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"exclude_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"include_blob_versions":{"type":"TypeBool","optional":true,"default":false},"include_deleted":{"type":"TypeBool","optional":true,"default":false},"include_snapshots":{"type":"TypeBool","optional":true,"default":false},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10}}},"maxItems":1},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true},"schema_fields":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","optional":true,"default":"private"},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_filesystem":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"group":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"owner":{"type":"TypeString","optional":true,"computed":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_path":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"filesystem_name":{"type":"TypeString","required":true,"forceNew":true},"group":{"type":"TypeString","optional":true,"computed":true},"owner":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","required":true,"forceNew":true},"resource":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_encryption_scope":{"schema":{"infrastructure_encryption_required":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"base_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","optional":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"snapshot":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"version":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"filters":{"type":"TypeList","required":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operation":{"type":"TypeString","optional":true,"default":"=="},"value":{"type":"TypeString","required":true}}}},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_agent":{"schema":{"arc_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"arc_virtual_machine_uuid":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_job_definition":{"schema":{"agent_name":{"type":"TypeString","optional":true},"copy_mode":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source_name":{"type":"TypeString","required":true,"forceNew":true},"source_sub_path":{"type":"TypeString","optional":true,"forceNew":true},"storage_mover_project_id":{"type":"TypeString","required":true,"forceNew":true},"target_name":{"type":"TypeString","required":true,"forceNew":true},"target_sub_path":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_project":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_source_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"export":{"type":"TypeString","optional":true,"forceNew":true},"host":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nfs_version":{"type":"TypeString","optional":true,"default":"NFSauto","forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_target_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_object_replication":{"schema":{"destination_object_replication_id":{"type":"TypeString","computed":true},"destination_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"copy_blobs_created_after":{"type":"TypeString","optional":true,"default":"OnlyNewObjects"},"destination_container_name":{"type":"TypeString","required":true,"forceNew":true},"filter_out_blobs_with_prefix":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"source_container_name":{"type":"TypeString","required":true,"forceNew":true}}}},"source_object_replication_id":{"type":"TypeString","computed":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_queue":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}}},"id":{"type":"TypeString","required":true}}}},"enabled_protocol":{"type":"TypeString","optional":true,"default":"SMB","forceNew":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeInt","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_directory":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"share_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_file":{"schema":{"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_length":{"type":"TypeInt","computed":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","optional":true,"default":"","forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"storage_share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","optional":true,"default":"AllowAllTraffic"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync_cloud_endpoint":{"schema":{"file_share_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_sync_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"storage_sync_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_storage_table":{"schema":{"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","required":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"streaming_capacity":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_stream_analytics_function_javascript_uda":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"script":{"type":"TypeString","required":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_function_javascript_udf":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","optional":true,"computed":true},"content_storage_policy":{"type":"TypeString","optional":true,"default":"SystemAccount"},"data_locale":{"type":"TypeString","optional":true,"computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":5},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":0},"events_out_of_order_policy":{"type":"TypeString","optional":true,"default":"Adjust"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"job_id":{"type":"TypeString","computed":true},"job_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_error_policy":{"type":"TypeString","optional":true,"default":"Drop"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_id":{"type":"TypeString","optional":true},"streaming_units":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transformation_query":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true,"default":"Cloud","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job_schedule":{"schema":{"last_output_time":{"type":"TypeString","computed":true},"start_mode":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5}},"azurerm_stream_analytics_output_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"batch_max_wait_time":{"type":"TypeString","optional":true},"batch_min_rows":{"type":"TypeInt","optional":true},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_cosmosdb":{"schema":{"container_name":{"type":"TypeString","required":true},"cosmosdb_account_key":{"type":"TypeString","required":true},"cosmosdb_sql_database_id":{"type":"TypeString","required":true},"document_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_function":{"schema":{"api_key":{"type":"TypeString","required":true},"batch_max_count":{"type":"TypeInt","optional":true,"default":100},"batch_max_in_bytes":{"type":"TypeInt","optional":true,"default":262144},"function_app":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_mssql":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"database":{"type":"TypeString","required":true,"forceNew":true},"max_batch_count":{"type":"TypeFloat","optional":true,"default":10000},"max_writer_count":{"type":"TypeFloat","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_powerbi":{"schema":{"dataset":{"type":"TypeString","required":true},"group_id":{"type":"TypeString","required":true},"group_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true},"token_user_display_name":{"type":"TypeString","optional":true},"token_user_principal_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_queue":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"queue_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_topic":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_synapse":{"schema":{"database":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_table":{"schema":{"batch_size":{"type":"TypeInt","required":true},"columns_to_remove":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_mssql":{"schema":{"database":{"type":"TypeString","required":true},"delta_snapshot_query":{"type":"TypeString","optional":true},"full_snapshot_query":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"refresh_interval_duration":{"type":"TypeString","optional":true},"refresh_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_blob":{"schema":{"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub_v2":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_iothub":{"schema":{"endpoint":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"iothub_namespace":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"shared_access_policy_key":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"delegation":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"service_delegation":{"type":"TypeList","required":true,"elem":{"schema":{"actions":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}},"maxItems":1}}}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","optional":true,"computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_endpoint_policy_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"service_endpoints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_nat_gateway_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_network_security_group_association":{"schema":{"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_route_table_association":{"schema":{"route_table_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_service_endpoint_storage_policy":{"schema":{"definition":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"service":{"type":"TypeString","optional":true,"default":"Microsoft.Storage"},"service_resources":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription":{"schema":{"alias":{"type":"TypeString","optional":true,"description":"The Alias Name of the subscription. If omitted a new UUID will be generated for this property.","computed":true,"forceNew":true},"billing_scope_id":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true,"description":"The GUID of the Subscription.","computed":true,"forceNew":true},"subscription_name":{"type":"TypeString","required":true,"description":"The Display Name for the Subscription."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID to which the subscription belongs","computed":true},"workload":{"type":"TypeString","optional":true,"description":"The workload type for the Subscription. Possible values are `Production` (default) and `DevTest`.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_synapse_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_azure":{"schema":{"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_self_hosted":{"schema":{"authorization_key_primary":{"type":"TypeString","computed":true},"authorization_key_secondary":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_linked_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_private_link_hub":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_role_assignment":{"schema":{"principal_id":{"type":"TypeString","required":true,"forceNew":true},"role_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_spark_pool":{"schema":{"auto_pause":{"type":"TypeList","optional":true,"elem":{"schema":{"delay_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true},"min_node_count":{"type":"TypeInt","required":true}}},"maxItems":1},"cache_size":{"type":"TypeInt","optional":true},"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_executor_allocation_enabled":{"type":"TypeBool","optional":true,"default":false},"library_requirement":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"max_executors":{"type":"TypeInt","optional":true},"min_executors":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true},"node_size":{"type":"TypeString","required":true},"node_size_family":{"type":"TypeString","required":true},"session_level_packages_enabled":{"type":"TypeBool","optional":true,"default":false},"spark_config":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"spark_events_folder":{"type":"TypeString","optional":true,"default":"/events"},"spark_log_folder":{"type":"TypeString","optional":true,"default":"/logs"},"spark_version":{"type":"TypeString","optional":true,"default":"2.4"},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"data_encrypted":{"type":"TypeBool","optional":true},"geo_backup_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_database_id":{"type":"TypeString","optional":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"point_in_time":{"type":"TypeString","required":true,"forceNew":true},"source_database_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sql_pool_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment_baseline":{"schema":{"baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"rule_name":{"type":"TypeString","required":true},"sql_pool_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_classifier":{"schema":{"context":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"importance":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"member_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true},"workload_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_group":{"schema":{"importance":{"type":"TypeString","optional":true,"default":"normal"},"max_resource_percent":{"type":"TypeInt","required":true},"max_resource_percent_per_request":{"type":"TypeFloat","optional":true,"default":3},"min_resource_percent":{"type":"TypeInt","required":true},"min_resource_percent_per_request":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_execution_timeout_in_seconds":{"type":"TypeInt","optional":true},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace":{"schema":{"aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"azure_devops_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"last_commit_id":{"type":"TypeString","optional":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"compute_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","optional":true,"default":"cmk"},"key_versionless_id":{"type":"TypeString","required":true}}},"maxItems":1},"data_exfiltration_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"github_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","optional":true},"last_commit_id":{"type":"TypeString","optional":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"linking_allowed_for_aad_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sql_administrator_login":{"type":"TypeString","optional":true,"forceNew":true},"sql_administrator_login_password":{"type":"TypeString","optional":true},"sql_identity_control_enabled":{"type":"TypeBool","optional":true},"storage_data_lake_gen2_filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_key":{"schema":{"active":{"type":"TypeBool","required":true},"customer_managed_key_name":{"type":"TypeString","required":true},"customer_managed_key_versionless_id":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_sql_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true},"workspace_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_template_deployment":{"schema":{"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"parameters_body":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"template_body":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_tenant_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_traffic_manager_azure_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_external_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_nested_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"minimum_child_endpoints":{"type":"TypeInt","required":true},"minimum_required_child_endpoints_ipv4":{"type":"TypeInt","optional":true},"minimum_required_child_endpoints_ipv6":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","required":true,"elem":{"schema":{"relative_name":{"type":"TypeString","required":true,"forceNew":true},"ttl":{"type":"TypeInt","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","computed":true},"max_return":{"type":"TypeInt","optional":true},"monitor_config":{"type":"TypeList","required":true,"elem":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"expected_status_code_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":30},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":10},"tolerated_number_of_failures":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"profile_status":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","required":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer":{"schema":{"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer_edge_module":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"video_analyzer_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_desktop_application":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"command_line_argument_policy":{"type":"TypeString","required":true},"command_line_arguments":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true,"computed":true},"icon_index":{"type":"TypeInt","optional":true},"icon_path":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","required":true},"show_in_portal":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_application_group":{"schema":{"default_desktop_display_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"load_balancer_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_sessions_allowed":{"type":"TypeInt","optional":true,"default":999999},"name":{"type":"TypeString","required":true,"forceNew":true},"personal_desktop_assignment_type":{"type":"TypeString","optional":true,"forceNew":true},"preferred_app_group_type":{"type":"TypeString","optional":true,"default":"Desktop","description":"Preferred App Group type to display","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scheduled_agent_updates":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","required":true}}},"maxItems":2},"timezone":{"type":"TypeString","optional":true,"default":"UTC"},"use_session_host_timezone":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"start_vm_on_connect":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"validate_environment":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool_registration_info":{"schema":{"expiration_date":{"type":"TypeString","required":true},"hostpool_id":{"type":"TypeString","required":true,"forceNew":true},"token":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_desktop_scaling_plan":{"schema":{"description":{"type":"TypeString","optional":true},"exclusion_tag":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"hostpool_id":{"type":"TypeString","required":true},"scaling_plan_enabled":{"type":"TypeBool","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"off_peak_load_balancing_algorithm":{"type":"TypeString","required":true},"off_peak_start_time":{"type":"TypeString","required":true},"peak_load_balancing_algorithm":{"type":"TypeString","required":true},"peak_start_time":{"type":"TypeString","required":true},"ramp_down_capacity_threshold_percent":{"type":"TypeInt","required":true},"ramp_down_force_logoff_users":{"type":"TypeBool","required":true},"ramp_down_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_down_minimum_hosts_percent":{"type":"TypeInt","required":true},"ramp_down_notification_message":{"type":"TypeString","required":true},"ramp_down_start_time":{"type":"TypeString","required":true},"ramp_down_stop_hosts_when":{"type":"TypeString","required":true},"ramp_down_wait_time_minutes":{"type":"TypeInt","required":true},"ramp_up_capacity_threshold_percent":{"type":"TypeInt","optional":true},"ramp_up_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_up_minimum_hosts_percent":{"type":"TypeInt","optional":true},"ramp_up_start_time":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace":{"schema":{"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace_application_group_association":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","optional":true,"forceNew":true},"default_route_table_id":{"type":"TypeString","computed":true},"hub_routing_preference":{"type":"TypeString","optional":true,"default":"ExpressRoute"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"next_hop_ip_address":{"type":"TypeString","required":true}}}},"sku":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_auto_scale_min_capacity":{"type":"TypeInt","optional":true,"default":2},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_connection_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"static_vnet_local_route_override_criteria":{"type":"TypeString","optional":true,"default":"Contains","forceNew":true},"static_vnet_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true},"next_hop_ip_address":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_ip":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_route_table_route":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"},"route_table_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_security_partner_provider":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","required":true,"forceNew":true}}},"maxItems":1},"availability_set_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"delete_data_disks_on_termination":{"type":"TypeBool","optional":true,"default":false},"delete_os_disk_on_termination":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"os_profile":{"type":"TypeSet","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","required":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true,"default":false},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":false},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"primary_network_interface_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_data_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"vhd_uri":{"type":"TypeString","optional":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"storage_image_reference":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"storage_os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"image_uri":{"type":"TypeString","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","optional":true,"computed":true},"vhd_uri":{"type":"TypeString","optional":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vm_size":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_data_disk_attachment":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Attach","forceNew":true},"lun":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_machine_scale_set":{"schema":{"automatic_os_upgrade":{"type":"TypeBool","optional":true,"default":false},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"health_probe_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeSet","required":true,"elem":{"schema":{"accelerated_networking":{"type":"TypeBool","optional":true},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"public_ip_address_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","required":true},"idle_timeout":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"subnet_id":{"type":"TypeString","required":true}}}},"ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","required":true}}}},"os_profile":{"type":"TypeList","required":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name_prefix":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","optional":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeSet","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true},"provision_vm_agent":{"type":"TypeBool","optional":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"priority":{"type":"TypeString","optional":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_batch_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","optional":true,"default":20},"pause_time_between_batches":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1},"single_placement_group":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"storage_profile_data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true}}}},"storage_profile_image_reference":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"offer":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_profile_os_disk":{"type":"TypeSet","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"image":{"type":"TypeString","optional":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"vhd_containers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_policy_mode":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_scale_set_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_scale_set_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"machine_scope":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exclude_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"include_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"bgp_community":{"type":"TypeString","optional":true},"ddos_protection_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"enable":{"type":"TypeBool","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"enforcement":{"type":"TypeString","required":true}}},"maxItems":1},"flow_timeout_in_minutes":{"type":"TypeInt","optional":true},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"security_group":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_dns_servers":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","optional":true,"computed":true},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","optional":true},"peer_weight":{"type":"TypeInt","optional":true},"peering_addresses":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"apipa_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"default_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_name":{"type":"TypeString","optional":true,"computed":true},"tunnel_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1}}},"maxItems":1},"custom_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"default_local_network_gateway_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"generation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true,"default":"vnetGatewayConfig"},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":3},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"vpn_client_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","optional":true},"aad_issuer":{"type":"TypeString","optional":true},"aad_tenant":{"type":"TypeString","optional":true},"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","optional":true},"radius_server_secret":{"type":"TypeString","optional":true},"revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"vpn_auth_types":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":3},"vpn_client_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"vpn_type":{"type":"TypeString","optional":true,"default":"RouteBased","forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"connection_protocol":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_bgp_addresses":{"type":"TypeList","optional":true,"elem":{"schema":{"primary":{"type":"TypeString","required":true},"secondary":{"type":"TypeString","optional":true}}},"maxItems":1},"dpd_timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"express_route_circuit_id":{"type":"TypeString","optional":true,"forceNew":true},"express_route_gateway_bypass":{"type":"TypeBool","optional":true,"computed":true},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_datasize":{"type":"TypeInt","optional":true,"computed":true},"sa_lifetime":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"local_network_gateway_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_virtual_network_gateway_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_weight":{"type":"TypeInt","optional":true,"computed":true},"shared_key":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true,"forceNew":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","optional":true,"computed":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway_nat_rule":{"schema":{"external_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_peering":{"schema":{"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","optional":true,"default":true},"disable_vpn_encryption":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"office365_local_breakout_category":{"type":"TypeString","optional":true,"default":"None"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"Standard"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vmware_cluster":{"schema":{"cluster_node_count":{"type":"TypeInt","required":true},"cluster_number":{"type":"TypeInt","computed":true},"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"vmware_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_vmware_express_route_authorization":{"schema":{"express_route_authorization_id":{"type":"TypeString","computed":true},"express_route_authorization_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_netapp_volume_attachment":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"netapp_volume_id":{"type":"TypeString","required":true,"forceNew":true},"vmware_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"management_cluster":{"type":"TypeList","required":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","required":true}}},"maxItems":1},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_subnet_cidr":{"type":"TypeString","required":true,"forceNew":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"nsxt_password":{"type":"TypeString","optional":true,"forceNew":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcenter_password":{"type":"TypeString","optional":true,"forceNew":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"create":600,"read":5,"delete":600,"update":600}},"azurerm_voice_services_communications_gateway":{"schema":{"api_bridge":{"type":"TypeString","optional":true},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse","forceNew":true},"codecs":{"type":"TypeString","required":true},"connectivity":{"type":"TypeString","required":true,"forceNew":true},"e911_type":{"type":"TypeString","required":true},"emergency_dial_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_teams_voicemail_pilot_number":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"on_prem_mcp_enabled":{"type":"TypeBool","optional":true},"platforms":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_location":{"type":"TypeSet","required":true,"elem":{"schema":{"allowed_media_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_signaling_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"esrp_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true},"operator_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_voice_services_communications_gateway_test_line":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"purpose":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_services_communications_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway":{"schema":{"bgp_route_translation_for_nat_enabled":{"type":"TypeBool","optional":true,"default":false},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true,"forceNew":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instance_1_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"peer_weight":{"type":"TypeInt","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scale_unit":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_gateway_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_vpn_site_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"traffic_selector_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"local_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"remote_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_link":{"type":"TypeList","required":true,"elem":{"schema":{"bandwidth_mbps":{"type":"TypeInt","optional":true,"default":10},"bgp_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default"},"custom_bgp_address":{"type":"TypeSet","optional":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"ip_configuration_id":{"type":"TypeString","required":true}}}},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"encryption_algorithm":{"type":"TypeString","required":true},"ike_encryption_algorithm":{"type":"TypeString","required":true},"ike_integrity_algorithm":{"type":"TypeString","required":true},"integrity_algorithm":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kb":{"type":"TypeInt","required":true},"sa_lifetime_sec":{"type":"TypeInt","required":true}}},"minItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"policy_based_traffic_selector_enabled":{"type":"TypeBool","optional":true,"default":false},"protocol":{"type":"TypeString","optional":true,"default":"IKEv2"},"ratelimit_enabled":{"type":"TypeBool","optional":true,"default":false},"route_weight":{"type":"TypeInt","optional":true,"default":0},"shared_key":{"type":"TypeString","optional":true},"vpn_site_link_id":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway_nat_rule":{"schema":{"external_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"external_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"internal_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_server_configuration":{"schema":{"azure_active_directory_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"issuer":{"type":"TypeString","required":true},"tenant":{"type":"TypeString","required":true}}},"minItems":1},"client_revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kilobytes":{"type":"TypeInt","required":true},"sa_lifetime_seconds":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"radius":{"type":"TypeList","optional":true,"elem":{"schema":{"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"server":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"score":{"type":"TypeInt","required":true},"secret":{"type":"TypeString","required":true}}}},"server_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vpn_authentication_types":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"vpn_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_server_configuration_policy_group":{"schema":{"is_default":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"priority":{"type":"TypeInt","optional":true,"default":0},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_site":{"schema":{"address_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"device_model":{"type":"TypeString","optional":true},"device_vendor":{"type":"TypeString","optional":true},"link":{"type":"TypeList","optional":true,"elem":{"schema":{"bgp":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"peering_address":{"type":"TypeString","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"provider_name":{"type":"TypeString","optional":true},"speed_in_mbps":{"type":"TypeInt","optional":true,"default":0}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"o365_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"traffic_category":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"default_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"optimize_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_app_hybrid_connection":{"schema":{"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true},"web_app_id":{"type":"TypeString","required":true,"description":"The ID of the Web App for this Hybrid Connection.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_application_firewall_policy":{"schema":{"custom_rules":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"match_conditions":{"type":"TypeList","required":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_variables":{"type":"TypeList","required":true,"elem":{"schema":{"selector":{"type":"TypeString","optional":true},"variable_name":{"type":"TypeString","required":true}}}},"negation_condition":{"type":"TypeBool","optional":true},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","required":true},"rule_type":{"type":"TypeString","required":true}}}},"http_listener_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_rules":{"type":"TypeList","required":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","optional":true,"default":"3.2"}}},"maxItems":1},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"selector_match_operator":{"type":"TypeString","required":true}}}},"managed_rule_set":{"type":"TypeList","required":true,"elem":{"schema":{"rule_group_override":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"rule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"id":{"type":"TypeString","required":true}}}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","required":true}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"path_based_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"policy_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"file_upload_limit_in_mb":{"type":"TypeInt","optional":true,"default":100},"log_scrubbing":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true,"description":"When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to."},"selector_match_operator":{"type":"TypeString","optional":true,"default":"Equals"}}}}}},"maxItems":1},"max_request_body_size_in_kb":{"type":"TypeInt","optional":true,"default":128},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"request_body_check":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"capacity":{"type":"TypeInt","optional":true,"default":1},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_hub":{"schema":{"anonymous_connections_enabled":{"type":"TypeBool","optional":true,"default":false},"event_handler":{"type":"TypeList","optional":true,"elem":{"schema":{"auth":{"type":"TypeList","optional":true,"elem":{"schema":{"managed_identity_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"system_events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_event_pattern":{"type":"TypeString","optional":true}}}},"event_listener":{"type":"TypeList","optional":true,"elem":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"system_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_network_acl":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"description":"Can the Function App only be accessed via HTTPS?","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Function App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","description":"The identifier used by App Service to perform domain ownership verification via DNS TXT record.","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","description":"The default hostname of the Windows Function App Slot.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","description":"The Kind value for this Windows Function App Slot.","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Windows Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","description":"A list of outbound IP addresses. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12`.","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","description":"A list of possible outbound IP addresses, not all of which are necessarily in use. This is a superset of `outbound_ip_address_list`. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of possible outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12,52.143.43.17`. This is a superset of `outbound_ip_addresses`. For example `[\"52.23.25.3\", \"52.143.43.12\",\"52.143.43.17\"]`.","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_windows_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","required":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_web_app_slot":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"computed":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}}},"dataSources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"data_residency_location":{"type":"TypeString","description":"Location in which the B2C tenant is hosted and data resides.","computed":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix."},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","description":"Billing SKU for the B2C tenant.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"read":5}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"filtered_sync_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notifications":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","computed":true},"notify_global_admins":{"type":"TypeBool","computed":true}}}},"replica_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"external_access_enabled":{"type":"TypeBool","computed":true},"public_certificate":{"type":"TypeString","computed":true}}}},"security":{"type":"TypeList","computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","computed":true},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","computed":true},"ntlm_v1_enabled":{"type":"TypeBool","computed":true},"sync_kerberos_passwords":{"type":"TypeBool","computed":true},"sync_ntlm_passwords":{"type":"TypeBool","computed":true},"sync_on_prem_passwords":{"type":"TypeBool","computed":true},"tls_v1_enabled":{"type":"TypeBool","computed":true}}}},"sku":{"type":"TypeString","computed":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_advisor_recommendations":{"schema":{"filter_by_category":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter_by_resource_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"recommendations":{"type":"TypeList","computed":true,"elem":{"schema":{"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"impact":{"type":"TypeString","computed":true},"recommendation_name":{"type":"TypeString","computed":true},"recommendation_type_id":{"type":"TypeString","computed":true},"resource_name":{"type":"TypeString","computed":true},"resource_type":{"type":"TypeString","computed":true},"suppression_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"updated_time":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":10}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"management":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"proxy":{"type":"TypeList","computed":true,"elem":{"schema":{"default_ssl_binding":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"scm":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_api_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notification_sender_email":{"type":"TypeString","computed":true},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"publisher_email":{"type":"TypeString","computed":true},"publisher_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scm_url":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"revision":{"type":"TypeString","required":true},"service_url":{"type":"TypeString","computed":true},"soap_pass_through":{"type":"TypeBool","computed":true},"subscription_key_parameter_names":{"type":"TypeList","computed":true,"elem":{"schema":{"header":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true}}}},"subscription_required":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"version_set_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"version_header_name":{"type":"TypeString","computed":true},"version_query_name":{"type":"TypeString","computed":true},"versioning_scheme":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true},"certificate_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"request_client_certificate_enabled":{"type":"TypeBool","computed":true},"tls10_enabled":{"type":"TypeBool","computed":true},"tls11_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"external_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true},"approval_required":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"product_id":{"type":"TypeString","required":true},"published":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","computed":true},"subscriptions_limit":{"type":"TypeInt","computed":true},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true},"email":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"note":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"state":{"type":"TypeString","computed":true},"user_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","computed":true}}}},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","required":true},"label":{"type":"TypeString","optional":true,"default":""},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_configuration_keys":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"items":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"label":{"type":"TypeString","computed":true},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}}}},"key":{"type":"TypeString","optional":true,"default":""},"label":{"type":"TypeString","optional":true,"default":""}},"timeouts":{"read":5}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_cert_enabled":{"type":"TypeBool","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","computed":true},"acr_user_managed_identity_client_id":{"type":"TypeString","computed":true},"always_on":{"type":"TypeBool","computed":true},"app_command_line":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"number_of_workers":{"type":"TypeInt","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_certificate":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","computed":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","computed":true},"distinguished_name":{"type":"TypeString","computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"product_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_environment":{"schema":{"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"front_end_scale_factor":{"type":"TypeInt","computed":true},"internal_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_ip_address":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","computed":true},"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"dedicated_host_count":{"type":"TypeInt","computed":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","computed":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"is_xenon":{"type":"TypeBool","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"per_site_scaling":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"size":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_application_gateway":{"schema":{"backend_address_pool":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeString","computed":true},"instrumentation_key":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_arc_machine":{"schema":{"active_directory_fqdn":{"type":"TypeString","computed":true},"agent":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variables":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"bool":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeBool","computed":true}}}},"datetime":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"encrypted":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"int":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeInt","computed":true}}}},"null":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"object":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"string":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"platform_update_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_backup_policy_file_share":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_backup_policy_vm":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","computed":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"ip_connect_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_units":{"type":"TypeInt","computed":true},"shareable_link_enabled":{"type":"TypeBool","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_allocation_mode":{"type":"TypeString","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true},"allow_updates":{"type":"TypeBool","computed":true},"default_version":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","computed":true},"thumbprint_algorithm":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"auto_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","computed":true},"formula":{"type":"TypeString","computed":true}}}},"certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"store_location":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","computed":true},"visibility":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","computed":true}}}},"data_disks":{"type":"TypeList","computed":true,"elem":{"schema":{"caching":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"lun":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}},"disk_encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","computed":true}}}},"display_name":{"type":"TypeString","computed":true},"extensions":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"protected_settings":{"type":"TypeString","computed":true},"provision_after_extensions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","computed":true},"settings_json":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"type_handler_version":{"type":"TypeString","computed":true}}}},"fixed_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"resize_timeout":{"type":"TypeString","computed":true},"target_dedicated_nodes":{"type":"TypeInt","computed":true},"target_low_priority_nodes":{"type":"TypeInt","computed":true}}}},"inter_node_communication":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_tasks_per_node":{"type":"TypeInt","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"blobfuse_options":{"type":"TypeString","computed":true},"container_name":{"type":"TypeString","computed":true},"identity_id":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"sas_key":{"type":"TypeString","computed":true}}}},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"azure_file_url":{"type":"TypeString","computed":true},"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true}}}},"cifs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"nfs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"network_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dynamic_vnet_assignment_scope":{"type":"TypeString","computed":true},"endpoint_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port_range":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"protocol":{"type":"TypeString","computed":true}}}},"public_address_provisioning_type":{"type":"TypeString","computed":true},"public_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","computed":true}}}},"node_agent_sku_id":{"type":"TypeString","computed":true},"node_placement":{"type":"TypeList","computed":true,"elem":{"schema":{"policy":{"type":"TypeString","computed":true}}}},"os_disk_placement":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_task":{"type":"TypeList","computed":true,"elem":{"schema":{"command_line":{"type":"TypeString","computed":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"run_options":{"type":"TypeString","computed":true},"working_directory":{"type":"TypeString","computed":true}}}},"resource_file":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","computed":true},"blob_prefix":{"type":"TypeString","computed":true},"file_mode":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"http_url":{"type":"TypeString","computed":true},"storage_container_url":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"task_retry_maximum":{"type":"TypeInt","computed":true},"user_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_user":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","computed":true}}}},"user_name":{"type":"TypeString","computed":true}}}},"wait_for_success":{"type":"TypeBool","computed":true}}}},"storage_image_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"task_scheduling_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","computed":true}}}},"user_accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"linux_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"gid":{"type":"TypeInt","computed":true},"ssh_private_key":{"type":"TypeString","computed":true},"uid":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"windows_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"login_mode":{"type":"TypeString","computed":true}}}}}}},"vm_size":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_billing_enrollment_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"enrollment_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mca_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"billing_profile_name":{"type":"TypeString","required":true},"invoice_section_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mpa_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"customer_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_blueprint_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_blueprint_published_version":{"schema":{"blueprint_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"dns_zone_id":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tls":{"type":"TypeList","computed":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","computed":true},"certificate_type":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true}}}},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"enabled":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"enabled":{"type":"TypeBool","computed":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redirect_url":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"health_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true},"request_type":{"type":"TypeString","computed":true}}}},"load_balancing":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","computed":true},"sample_size":{"type":"TypeInt","computed":true},"successful_samples_required":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","computed":true},"session_affinity_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"key_vault_certificate_id":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"read":5}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_client_config":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cognitive_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"qna_runtime_endpoint":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"certificate_based_security_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"pem_public_key":{"type":"TypeString","computed":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"resource_group_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"subscription_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","computed":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The Dapr Application Identifier.","computed":true},"app_port":{"type":"TypeInt","description":"The port which the application is listening on. This is the same as the `ingress` port.","computed":true},"app_protocol":{"type":"TypeString","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`.","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","description":"Should this ingress allow insecure connections?","computed":true},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`","computed":true},"certificate_id":{"type":"TypeString","description":"The ID of the Certificate.","computed":true},"name":{"type":"TypeString","description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate.","computed":true}}}},"external_enabled":{"type":"TypeBool","description":"Is this an external Ingress.","computed":true},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","description":"The target port on the container for the Ingress traffic.","computed":true},"traffic_weight":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","description":"The label to apply to the revision as a name prefix for routing traffic.","computed":true},"latest_revision":{"type":"TypeBool","description":"This traffic Weight relates to the latest stable Container Revision.","computed":true},"percentage":{"type":"TypeInt","description":"The percentage of traffic to send to this revision.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted.","computed":true}}}},"transport":{"type":"TypeString","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`","computed":true}}}},"latest_revision_fqdn":{"type":"TypeString","description":"The fully qualified domain name of the latest Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"identity":{"type":"TypeString","description":"ID of the System or User Managed Identity used to pull images from the Container Registry","computed":true},"password_secret_name":{"type":"TypeString","description":"The name of the Secret Reference containing the password value for this user on the Container Registry.","computed":true},"server":{"type":"TypeString","description":"The hostname for the Container Registry.","computed":true},"username":{"type":"TypeString","description":"The username to use for this Container Registry.","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"revision_mode":{"type":"TypeString","computed":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Secret name.","computed":true},"value":{"type":"TypeString","description":"The value for this secret.","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","computed":true,"elem":{"schema":{"container":{"type":"TypeList","computed":true,"elem":{"schema":{"args":{"type":"TypeList","description":"A list of args to pass to the container.","computed":true,"elem":{"type":"TypeString"}},"command":{"type":"TypeList","description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","computed":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`","computed":true},"env":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the environment variable for the container.","computed":true},"secret_name":{"type":"TypeString","description":"The name of the secret that contains the value for this environment variable.","computed":true},"value":{"type":"TypeString","description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used","computed":true}}}},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","description":"The image to use to create the container.","computed":true},"liveness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"initial_delay":{"type":"TypeInt","description":"The time in seconds to wait after the container has started before the probe is started.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"memory":{"type":"TypeString","description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`","computed":true},"name":{"type":"TypeString","description":"The name of the container.","computed":true},"readiness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"success_count_threshold":{"type":"TypeInt","description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"startup_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","computed":true}}}},"volume_mounts":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the Volume to be mounted in the container.","computed":true},"path":{"type":"TypeString","description":"The path in the container at which to mount this volume.","computed":true}}}}}}},"max_replicas":{"type":"TypeInt","description":"The maximum number of replicas for this container.","computed":true},"min_replicas":{"type":"TypeInt","description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}}}},"timeouts":{"read":5}},"azurerm_container_app_environment":{"schema":{"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","description":"The existing Subnet in use by the Container Apps Control Plane.","computed":true},"internal_load_balancer_enabled":{"type":"TypeBool","description":"Does the Container Environment operate in Internal Load Balancing Mode?","computed":true},"location":{"type":"TypeString","computed":true},"log_analytics_workspace_name":{"type":"TypeString","description":"The name of the Log Analytics Workspace this Container Apps Managed Environment is linked to.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment."},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_app_environment_certificate":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"read":5}},"azurerm_container_group":{"schema":{"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","computed":true},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"data_endpoint_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"container_registry_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scope_map_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_account":{"schema":{"capabilities":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"consistency_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","computed":true},"max_interval_in_seconds":{"type":"TypeInt","computed":true},"max_staleness_prefix":{"type":"TypeInt","computed":true}}}},"enable_automatic_failover":{"type":"TypeBool","computed":true},"enable_free_tier":{"type":"TypeBool","computed":true},"enable_multiple_write_locations":{"type":"TypeBool","computed":true},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeList","computed":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true}}}},"ip_range_filter":{"type":"TypeString","computed":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","computed":true},"key_vault_key_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"offer_type":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_restorable_database_accounts":{"schema":{"accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"api_type":{"type":"TypeString","computed":true},"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"restorable_locations":{"type":"TypeList","computed":true,"elem":{"schema":{"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"regional_database_account_instance_id":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true},"autoscale_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true},"assignable_scopes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeSet","computed":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_factory":{"schema":{"github_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"git_url":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"project_name":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redundancy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"snapshot_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"recurrence":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true}}}},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","computed":true},"data_share_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"file_system_name":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"source_platform":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databricks_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_databricks_workspace_private_endpoint_connection":{"schema":{"connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"workspace_private_endpoint_id":{"type":"TypeString","computed":true}}}},"private_endpoint_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dedicated_host":{"schema":{"dedicated_host_group_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"storage_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_dev_test_virtual_network":{"schema":{"allowed_subnets":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_public_ip":{"type":"TypeString","computed":true},"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true}}}},"lab_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_overrides":{"type":"TypeList","computed":true,"elem":{"schema":{"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_in_vm_creation_permission":{"type":"TypeString","computed":true},"use_public_ip_address_permission":{"type":"TypeString","computed":true},"virtual_network_pool_name":{"type":"TypeString","computed":true}}}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_access":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"flags":{"type":"TypeInt","computed":true},"tag":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","computed":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"send_activity_logs":{"type":"TypeBool","computed":true},"send_azuread_logs":{"type":"TypeBool","computed":true},"send_subscription_logs":{"type":"TypeBool","computed":true}}}},"monitoring_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain":{"schema":{"endpoint":{"type":"TypeString","computed":true},"inbound_ip_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"ip_mask":{"type":"TypeString","computed":true}}}},"input_mapping_default_values":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true}}}},"input_mapping_fields":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_time":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true},"topic":{"type":"TypeString","computed":true}}}},"input_schema":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_arm_resource_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventhub":{"schema":{"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"partition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"read":5}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"user_metadata":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"dedicated_cluster_id":{"type":"TypeString","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"kafka_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"maximum_throughput_units":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"sas":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_express_route_circuit":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peerings":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"peer_asn":{"type":"TypeInt","computed":true},"peering_type":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","computed":true},"shared_key":{"type":"TypeString","computed":true},"vlan_id":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_key":{"type":"TypeString","computed":true},"service_provider_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"bandwidth_in_mbps":{"type":"TypeInt","computed":true},"peering_location":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","computed":true}}}},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"family":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_extended_locations":{"schema":{"extended_locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"sku_tier":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","computed":true},"virtual_hub":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","computed":true},"virtual_hub_id":{"type":"TypeString","computed":true}}}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_firewall_policy":{"schema":{"base_policy_id":{"type":"TypeString","computed":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","computed":true,"elem":{"schema":{"network_rule_fqdn_enabled":{"type":"TypeBool","computed":true},"proxy_enabled":{"type":"TypeBool","computed":true},"servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"threat_intelligence_mode":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_cert_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_function_app_host_keys":{"schema":{"blobs_extension_key":{"type":"TypeString","computed":true},"default_function_key":{"type":"TypeString","computed":true},"durabletask_extension_key":{"type":"TypeString","computed":true},"event_grid_extension_config_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"signalr_extension_key":{"type":"TypeString","computed":true},"webpubsub_extension_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_hdinsight_cluster":{"schema":{"cluster_version":{"type":"TypeString","computed":true},"component_versions":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"edge_ssh_endpoint":{"type":"TypeString","computed":true},"gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"ssh_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","computed":true},"tls_min_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"configuration_export_storage_account_name":{"type":"TypeString","computed":true},"container_registry_login_server_url":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","computed":true},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","computed":true},"eventhub_consumer_group_name":{"type":"TypeString","computed":true},"eventhub_name":{"type":"TypeString","computed":true},"eventhub_namespace_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"cors_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","computed":true},"allowed_headers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","computed":true},"cosmosdb_throughput":{"type":"TypeInt","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_hybrid_compute_machine":{"schema":{"ad_fqdn":{"type":"TypeString","computed":true},"agent_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"error_details":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_info":{"type":"TypeList","computed":true,"elem":{"schema":{"info":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"code":{"type":"TypeString","computed":true},"message":{"type":"TypeString","computed":true},"target":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"name_regex":{"type":"TypeString","optional":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"sort_descending":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_images":{"schema":{"images":{"type":"TypeList","computed":true,"elem":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub":{"schema":{"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","computed":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_operations_host_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"iothub_dps_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_iothub_shared_access_policy":{"schema":{"iothub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","computed":true},"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","computed":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"enable_rbac_authorization":{"type":"TypeBool","computed":true},"enabled_for_deployment":{"type":"TypeBool","computed":true},"enabled_for_disk_encryption":{"type":"TypeBool","computed":true},"enabled_for_template_deployment":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_acls":{"type":"TypeList","computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","computed":true},"default_action":{"type":"TypeString","computed":true},"ip_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_access_policy":{"schema":{"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_certificate":{"schema":{"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"key_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"curve":{"type":"TypeString","computed":true},"exportable":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"reuse_key":{"type":"TypeBool","computed":true}}}},"lifetime_action":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","computed":true},"lifetime_percentage":{"type":"TypeInt","computed":true}}}}}}},"secret_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true}}}},"x509_certificate_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"validity_in_months":{"type":"TypeInt","computed":true}}}}}}},"expires":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true,"computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_certificate_data":{"schema":{"certificates_count":{"type":"TypeInt","computed":true},"expires":{"type":"TypeString","computed":true},"hex":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"pem":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","computed":true},"admin":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"phone":{"type":"TypeString","computed":true}}}},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"org_id":{"type":"TypeString","computed":true},"provider_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificates":{"schema":{"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"include_pending":{"type":"TypeBool","optional":true,"default":true},"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_encrypted_value":{"schema":{"algorithm":{"type":"TypeString","required":true},"decoded_plain_text_value":{"type":"TypeString","computed":true},"encrypted_data":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"plain_text_value":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","computed":true},"e":{"type":"TypeString","computed":true},"key_opts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before_date":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_secrets":{"schema":{"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","computed":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","computed":true}}}},"agent_pool_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"api_server_authorized_ip_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"azure_active_directory_role_based_access_control":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","computed":true},"client_app_id":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"server_app_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"azure_policy_enabled":{"type":"TypeBool","computed":true},"current_kubernetes_version":{"type":"TypeString","computed":true},"custom_ca_trust_certificates_base64":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"disk_encryption_set_id":{"type":"TypeString","computed":true},"dns_prefix":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","computed":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress_application_gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","computed":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"key_management_service":{"type":"TypeList","computed":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"key_vault_network_access":{"type":"TypeString","computed":true}}}},"key_vault_secrets_provider":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","computed":true},"secret_rotation_interval":{"type":"TypeString","computed":true}}}},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"kubernetes_version":{"type":"TypeString","computed":true},"linux_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true},"ssh_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_data":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","computed":true},"microsoft_defender":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"network_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","computed":true},"docker_bridge_cidr":{"type":"TypeString","computed":true},"load_balancer_sku":{"type":"TypeString","computed":true},"network_plugin":{"type":"TypeString","computed":true},"network_policy":{"type":"TypeString","computed":true},"pod_cidr":{"type":"TypeString","computed":true},"service_cidr":{"type":"TypeString","computed":true}}}},"node_resource_group":{"type":"TypeString","computed":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","computed":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","computed":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}}},"open_service_mesh_enabled":{"type":"TypeBool","computed":true},"private_cluster_enabled":{"type":"TypeBool","computed":true},"private_fqdn":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"role_based_access_control_enabled":{"type":"TypeBool","computed":true},"service_mesh_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"mode":{"type":"TypeString","computed":true}}}},"service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true}}}},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_version":{"type":"TypeString","computed":true},"file_driver_enabled":{"type":"TypeBool","computed":true},"snapshot_controller_enabled":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"eviction_policy":{"type":"TypeString","computed":true},"kubernetes_cluster_name":{"type":"TypeString","required":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_disk_type":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"priority":{"type":"TypeString","computed":true},"proximity_placement_group_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"spot_max_price":{"type":"TypeFloat","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_node_pool_snapshot":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_node_pool_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_service_versions":{"schema":{"include_preview":{"type":"TypeBool","optional":true,"default":true},"latest_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"version_prefix":{"type":"TypeString","optional":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kusto_cluster":{"schema":{"data_ingestion_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true},"hot_cache_period":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_lb":{"schema":{"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_backend_address_pool":{"schema":{"backend_address":{"type":"TypeList","computed":true,"elem":{"schema":{"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"virtual_network_id":{"type":"TypeString","computed":true}}}},"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","computed":true},"backend_address_pool_id":{"type":"TypeString","computed":true},"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","computed":true},"tcp_reset_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_lb_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","computed":true},"disable_outbound_snat":{"type":"TypeBool","computed":true},"enable_floating_ip":{"type":"TypeBool","computed":true},"enable_tcp_reset":{"type":"TypeBool","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"load_distribution":{"type":"TypeString","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"probe_id":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"image_tag":{"type":"TypeString","computed":true},"registry_password":{"type":"TypeString","computed":true},"registry_url":{"type":"TypeString","computed":true},"registry_username":{"type":"TypeString","computed":true}}}},"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":25}},"azurerm_linux_web_app":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_reference_identity_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_image_tag":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"go_version":{"type":"TypeString","computed":true},"java_server":{"type":"TypeString","computed":true},"java_server_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"ruby_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","computed":true}}}},"gateway_address":{"type":"TypeString","computed":true},"gateway_fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_log_analytics_workspace":{"schema":{"daily_quota_gb":{"type":"TypeFloat","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_shared_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_integration_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","computed":true},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_account_share_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_workflow":{"schema":{"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"logic_app_integration_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","computed":true},"workflow_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_machine_learning_workspace":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","computed":true},"install_patches":{"type":"TypeList","computed":true,"elem":{"schema":{"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"reboot":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","computed":true},"window":{"type":"TypeList","computed":true,"elem":{"schema":{"duration":{"type":"TypeString","computed":true},"expiration_date_time":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"start_date_time":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_managed_api":{"schema":{"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_managed_application_definition":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","computed":true},"disk_access_id":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"disk_iops_read_write":{"type":"TypeInt","computed":true},"disk_mbps_read_write":{"type":"TypeInt","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"image_reference_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_access_policy":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group":{"schema":{"all_management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"all_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true,"computed":true},"parent_management_group_id":{"type":"TypeString","computed":true},"subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group_template_deployment":{"schema":{"management_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement":{"type":"TypeString","computed":true},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"geo_redundant_backup":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true},"plan":{"type":"TypeString","required":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_country_code":{"type":"TypeString","computed":true},"mobile_network_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"mobile_network_data_network_name":{"type":"TypeString","required":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true},"network_address_port_translation":{"type":"TypeList","computed":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"pinhole_maximum_number":{"type":"TypeInt","optional":true},"port_range":{"type":"TypeList","computed":true,"elem":{"schema":{"maximum":{"type":"TypeInt","computed":true},"minimum":{"type":"TypeInt","computed":true}}}},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","computed":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"control_plane_access_name":{"type":"TypeString","computed":true},"core_network_technology":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"interoperability_settings_json":{"type":"TypeString","computed":true},"local_diagnostics_access":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","computed":true},"https_server_certificate_url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform":{"type":"TypeList","computed":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","computed":true},"custom_location_id":{"type":"TypeString","computed":true},"edge_device_id":{"type":"TypeString","computed":true},"stack_hci_cluster_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"pcc_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"precedence":{"type":"TypeInt","computed":true},"qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"guaranteed_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"service_data_flow_template":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","computed":true}}}},"service_precedence":{"type":"TypeInt","computed":true},"service_qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim":{"schema":{"device_type":{"type":"TypeString","computed":true},"integrated_circuit_card_identifier":{"type":"TypeString","computed":true},"international_mobile_subscriber_identity":{"type":"TypeString","computed":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","computed":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true},"static_ipv4_address":{"type":"TypeString","computed":true}}}},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","computed":true},"registration_timer_in_seconds":{"type":"TypeInt","computed":true},"slice":{"type":"TypeList","computed":true,"elem":{"schema":{"data_network":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"allowed_services_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","computed":true},"default_session_type":{"type":"TypeString","computed":true},"max_buffered_packets":{"type":"TypeInt","computed":true},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}}}},"default_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","computed":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","computed":true},"slice_service_type":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"role_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"automation_runbook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","computed":true},"is_global_runbook":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"runbook_name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true},"webhook_resource_id":{"type":"TypeString","computed":true}}}},"azure_app_push_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"azure_function_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","computed":true},"function_name":{"type":"TypeString","computed":true},"http_trigger_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"email_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"event_hub_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true},"ticket_configuration":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","computed":true}}}},"logic_app_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"callback_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"short_name":{"type":"TypeString","computed":true},"sms_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"voice_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"webhook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","computed":true},"data_flow":{"type":"TypeList","computed":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"output_stream":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"transform_kql":{"type":"TypeString","computed":true}}}},"data_sources":{"type":"TypeList","computed":true,"elem":{"schema":{"data_import":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"stream":{"type":"TypeString","computed":true}}}}}}},"extension":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_json":{"type":"TypeString","computed":true},"extension_name":{"type":"TypeString","computed":true},"input_data_sources":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"iis_log":{"type":"TypeList","computed":true,"elem":{"schema":{"log_directories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"settings":{"type":"TypeList","computed":true,"elem":{"schema":{"text":{"type":"TypeList","computed":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","computed":true}}}}}}},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"performance_counter":{"type":"TypeList","computed":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"sampling_frequency_in_seconds":{"type":"TypeInt","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"prometheus_forwarder":{"type":"TypeList","computed":true,"elem":{"schema":{"label_include_filter":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"syslog":{"type":"TypeList","computed":true,"elem":{"schema":{"facility_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"log_levels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_event_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"x_path_queries":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_firewall_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"description":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"workspace_resource_id":{"type":"TypeString","computed":true}}}},"monitor_account":{"type":"TypeList","computed":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"storage_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_blob_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_table_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"table_name":{"type":"TypeString","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"stream_declaration":{"type":"TypeList","computed":true,"elem":{"schema":{"column":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"stream_name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_diagnostic_categories":{"schema":{"log_category_groups":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"log_category_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"logs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"metrics":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"days":{"type":"TypeInt","computed":true},"enabled":{"type":"TypeBool","computed":true}}}},"servicebus_rule_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeSet","computed":true,"elem":{"schema":{"action_group":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","computed":true},"email_subject":{"type":"TypeString","computed":true}}}},"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"query":{"type":"TypeString","computed":true},"query_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"severity":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","computed":true},"time_window":{"type":"TypeInt","computed":true},"trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_column":{"type":"TypeString","computed":true},"metric_trigger_type":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeSet","computed":true,"elem":{"schema":{"dimension":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","computed":true}}}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mssql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"elastic_pool_id":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_size_gb":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"read_replica_count":{"type":"TypeInt","computed":true},"read_scale":{"type":"TypeBool","computed":true},"server_id":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"max_size_bytes":{"type":"TypeInt","computed":true},"max_size_gb":{"type":"TypeFloat","computed":true},"name":{"type":"TypeString","required":true},"per_db_max_capacity":{"type":"TypeInt","computed":true},"per_db_min_capacity":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"family":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"customer_managed_key_id":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"high_availability":{"type":"TypeList","computed":true,"elem":{"schema":{"mode":{"type":"TypeString","computed":true},"standby_availability_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","computed":true},"start_hour":{"type":"TypeInt","computed":true},"start_minute":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"storage":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","computed":true},"iops":{"type":"TypeInt","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement_enabled":{"type":"TypeBool","computed":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","computed":true},"email_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"retention_days":{"type":"TypeInt","computed":true},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_endpoint":{"type":"TypeString","computed":true}}}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_ip_address_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"public_ip_prefix_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_netapp_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_level":{"type":"TypeString","computed":true},"size_in_tb":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"volume_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true},"daily_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"hourly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"monthly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","computed":true,"elem":{"type":"TypeInt"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"network_features":{"type":"TypeString","computed":true},"pool_name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"security_style":{"type":"TypeString","optional":true},"service_level":{"type":"TypeString","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"volume_path":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true},"application_identifier":{"type":"TypeString","computed":true},"group_description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","computed":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"data_protection_snapshot_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","computed":true}}}},"export_policy_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","computed":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"nfsv41_enabled":{"type":"TypeBool","computed":true},"root_access_enabled":{"type":"TypeBool","computed":true},"rule_index":{"type":"TypeInt","computed":true},"unix_read_only":{"type":"TypeBool","computed":true},"unix_read_write":{"type":"TypeBool","computed":true}}}},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proximity_placement_group_id":{"type":"TypeString","computed":true},"security_style":{"type":"TypeString","computed":true},"service_level":{"type":"TypeString","computed":true},"snapshot_directory_visible":{"type":"TypeBool","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","computed":true},"volume_spec_name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume_quota_rule":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"quota_size_in_kib":{"type":"TypeInt","computed":true},"quota_target":{"type":"TypeString","computed":true},"quota_type":{"type":"TypeString","computed":true},"volume_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"internal_dns_name_label":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","computed":true},"load_balancer_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_manager_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"security_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"destination_address_prefix":{"type":"TypeString","computed":true},"destination_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","computed":true},"destination_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_service_tags":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv4_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv6_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"location_filter":{"type":"TypeString","optional":true,"forceNew":true},"service":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"application_mode":{"type":"TypeString","computed":true},"bundle_id":{"type":"TypeString","computed":true},"key_id":{"type":"TypeString","computed":true},"team_id":{"type":"TypeString","computed":true},"token":{"type":"TypeString","computed":true}}}},"gcm_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"api_key":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"ip_forwarding_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","computed":true},"anti_virus_profile":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"dns_subscription":{"type":"TypeString","computed":true},"file_blocking_profile":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_trust_certificate":{"type":"TypeString","computed":true},"outbound_untrust_certificate":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"url_filtering_profile":{"type":"TypeString","computed":true},"vulnerability_profile":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_platform_image":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"offer":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_policy_assignment":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"enforce":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","computed":true,"elem":{"schema":{"content":{"type":"TypeString","computed":true},"policy_definition_reference_id":{"type":"TypeString","computed":true}}}},"not_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeString","computed":true},"policy_definition_id":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_definition_built_in":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_definition_group":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","computed":true},"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"policy_definition_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"policy_definition_id":{"type":"TypeString","computed":true},"policy_group_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","computed":true}}}},"policy_definitions":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"assignment_hash":{"type":"TypeString","computed":true},"compliance_status":{"type":"TypeString","computed":true},"content_hash":{"type":"TypeString","computed":true},"content_uri":{"type":"TypeString","computed":true},"last_compliance_status_checked":{"type":"TypeString","computed":true},"latest_report_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"virtual_machine_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_dns_servers":{"type":"TypeList","computed":true,"elem":{"schema":{"ip_address":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true},"private_dns_zone_name":{"type":"TypeString","required":true},"registration_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_endpoint_connection":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_service_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"request_response":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","computed":true},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"nat_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_link_service_endpoint_connections":{"schema":{"location":{"type":"TypeString","computed":true},"private_endpoint_connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"connection_id":{"type":"TypeString","computed":true},"connection_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"private_endpoint_id":{"type":"TypeString","computed":true},"private_endpoint_name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_id":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_proximity_placement_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","computed":true},"ddos_protection_mode":{"type":"TypeString","computed":true},"ddos_protection_plan_id":{"type":"TypeString","computed":true},"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"reverse_fqdn":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"prefix_length":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ips":{"schema":{"allocation_type":{"type":"TypeString","optional":true},"attachment_status":{"type":"TypeString","optional":true},"name_prefix":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_public_maintenance_configurations":{"schema":{"configs":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"duration":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maintenance_scope":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_recovery_services_vault":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","computed":true},"enable_non_ssl_port":{"type":"TypeBool","computed":true},"family":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patch_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeString","computed":true},"start_hour_utc":{"type":"TypeInt","computed":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","computed":true},"redis_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","computed":true},"aof_storage_connection_string_0":{"type":"TypeString","computed":true},"aof_storage_connection_string_1":{"type":"TypeString","computed":true},"enable_authentication":{"type":"TypeBool","computed":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","computed":true},"maxmemory_delta":{"type":"TypeInt","computed":true},"maxmemory_policy":{"type":"TypeString","computed":true},"maxmemory_reserved":{"type":"TypeInt","computed":true},"notify_keyspace_events":{"type":"TypeString","computed":true},"rdb_backup_enabled":{"type":"TypeBool","computed":true},"rdb_backup_frequency":{"type":"TypeInt","computed":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","computed":true},"rdb_storage_connection_string":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_enterprise_database":{"schema":{"cluster_id":{"type":"TypeString","required":true},"linked_database_group_nickname":{"type":"TypeString","computed":true},"linked_database_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","computed":true},"managed_by":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_resource_group_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_resources":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true},"required_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"resources":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"permissions":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true},"scope":{"type":"TypeString","optional":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"communities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"rule_type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_route_table":{"schema":{"bgp_route_propagation_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop_in_ip_address":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_search_service":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_anomaly":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"mode":{"type":"TypeString","computed":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_template":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true},"nrt_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"scheduled_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"query_frequency":{"type":"TypeString","computed":true},"query_period":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","computed":true},"trigger_threshold":{"type":"TypeInt","computed":true}}}},"security_incident_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"product_filter":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"per_site_scaling_enabled":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","computed":true},"zone_balancing_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"partner_namespace_id":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","optional":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"support_ordering":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_shared_image":{"schema":{"architecture":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"eula":{"type":"TypeString","computed":true},"gallery_name":{"type":"TypeString","required":true},"hyper_v_generation":{"type":"TypeString","computed":true},"identifier":{"type":"TypeList","computed":true,"elem":{"schema":{"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"privacy_statement_uri":{"type":"TypeString","computed":true},"purchase_plan":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true}}}},"release_note_uri":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"specialized":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_shared_image_version":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_disk_image_size_gb":{"type":"TypeInt","computed":true},"os_disk_snapshot_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sort_versions_by_semver":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_shared_image_versions":{"schema":{"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"images":{"type":"TypeList","computed":true,"elem":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"hostname":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true},"recovery_fabric_name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","computed":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","computed":true},"primary_zone":{"type":"TypeString","computed":true},"recovery_edge_zone":{"type":"TypeString","computed":true},"recovery_zone":{"type":"TypeString","computed":true}}}},"failover_deployment_model":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_group":{"type":"TypeSet","computed":true,"elem":{"schema":{"post_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"pre_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"replicated_protected_items":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"recovery_vault_id":{"type":"TypeString","required":true},"source_recovery_fabric_id":{"type":"TypeString","computed":true},"target_recovery_fabric_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_snapshot":{"schema":{"creation_option":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","computed":true},"token_secret":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_spring_cloud_app":{"schema":{"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"is_public":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"persistent_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","computed":true},"size_in_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"tls_enabled":{"type":"TypeBool","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_spring_cloud_service":{"schema":{"config_server_git_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"repository":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"pattern":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","computed":true},"elastic_pool_name":{"type":"TypeString","computed":true},"failover_group_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"read_scale":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ssh_public_key":{"schema":{"name":{"type":"TypeString","required":true},"public_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","computed":true},"account_kind":{"type":"TypeString","computed":true},"account_replication_type":{"type":"TypeString","computed":true},"account_tier":{"type":"TypeString","computed":true},"allow_nested_items_to_be_public":{"type":"TypeBool","computed":true},"azure_files_authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"domain_sid":{"type":"TypeString","computed":true},"forest_name":{"type":"TypeString","computed":true},"netbios_domain_name":{"type":"TypeString","computed":true},"storage_sid":{"type":"TypeString","computed":true}}}},"directory_type":{"type":"TypeString","computed":true}}}},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"enable_https_traffic_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"is_hns_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"queue_encryption_key_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"table_encryption_key_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account_blob_container_sas":{"schema":{"cache_control":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_language":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_address":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_account_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_addresses":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"filter":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"process":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"tag":{"type":"TypeBool","required":true},"update":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"resource_types":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeBool","required":true},"object":{"type":"TypeBool","required":true},"service":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"services":{"type":"TypeList","required":true,"elem":{"schema":{"blob":{"type":"TypeBool","required":true},"file":{"type":"TypeBool","required":true},"queue":{"type":"TypeBool","required":true},"table":{"type":"TypeBool","required":true}}},"maxItems":1},"signed_version":{"type":"TypeString","optional":true,"default":"2017-07-29"},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","computed":true},"content_md5":{"type":"TypeString","computed":true},"content_type":{"type":"TypeString","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","computed":true},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_encryption_scope":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"schema":{"base_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true}}}},"snapshot":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}},"version":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}}}}},"enabled":{"type":"TypeBool","computed":true},"filters":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operation":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"prefix_match":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true}}}},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_share":{"schema":{"acl":{"type":"TypeList","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"expiry":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"start":{"type":"TypeString","computed":true}}}},"id":{"type":"TypeString","computed":true}}}},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"quota":{"type":"TypeInt","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true},"storage_sync_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true},"row_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","computed":true},"data_locale":{"type":"TypeString","computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_policy":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"job_id":{"type":"TypeString","computed":true},"last_output_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"output_error_policy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_mode":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true},"streaming_units":{"type":"TypeInt","computed":true},"transformation_query":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subnet":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"route_table_id":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_subscription":{"schema":{"display_name":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscription_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscriptions":{"schema":{"display_name_contains":{"type":"TypeString","optional":true},"display_name_prefix":{"type":"TypeString","optional":true},"subscriptions":{"type":"TypeList","computed":true,"elem":{"schema":{"display_name":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_synapse_workspace":{"schema":{"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_template_spec_version":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template_body":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_tenant_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_geographical_location":{"schema":{"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","computed":true,"elem":{"schema":{"relative_name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true}}}},"fqdn":{"type":"TypeString","computed":true},"monitor_config":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"expected_status_code_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"timeout_in_seconds":{"type":"TypeInt","computed":true},"tolerated_number_of_failures":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_status":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","computed":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"read":5}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"load_balancer_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_sessions_allowed":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"personal_desktop_assignment_type":{"type":"TypeString","computed":true},"preferred_app_group_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scheduled_agent_updates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"hour_of_day":{"type":"TypeInt","computed":true}}}},"timezone":{"type":"TypeString","computed":true},"use_session_host_timezone":{"type":"TypeBool","computed":true}}}},"start_vm_on_connect":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"validate_environment":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"default_route_table_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"remote_virtual_network_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"routing":{"type":"TypeList","computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","computed":true},"propagated_route_table":{"type":"TypeList","computed":true,"elem":{"schema":{"labels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"static_vnet_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"next_hop_ip_address":{"type":"TypeString","computed":true}}}}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"instances":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"instance_id":{"type":"TypeString","computed":true},"latest_model_applied":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnets":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","computed":true},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"peer_weight":{"type":"TypeInt","computed":true},"peering_address":{"type":"TypeString","computed":true}}}},"custom_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"default_local_network_gateway_id":{"type":"TypeString","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"generation":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"vpn_client_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","computed":true},"aad_issuer":{"type":"TypeString","computed":true},"aad_tenant":{"type":"TypeString","computed":true},"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","computed":true},"radius_server_secret":{"type":"TypeString","computed":true},"revoked_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"root_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"vpn_client_protocols":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"vpn_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"connection_protocol":{"type":"TypeString","computed":true},"dpd_timeout_seconds":{"type":"TypeInt","computed":true},"egress_bytes_transferred":{"type":"TypeInt","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"express_route_circuit_id":{"type":"TypeString","computed":true},"express_route_gateway_bypass":{"type":"TypeBool","computed":true},"ingress_bytes_transferred":{"type":"TypeInt","computed":true},"ipsec_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"dh_group":{"type":"TypeString","computed":true},"ike_encryption":{"type":"TypeString","computed":true},"ike_integrity":{"type":"TypeString","computed":true},"ipsec_encryption":{"type":"TypeString","computed":true},"ipsec_integrity":{"type":"TypeString","computed":true},"pfs_group":{"type":"TypeString","computed":true},"sa_datasize":{"type":"TypeInt","computed":true},"sa_lifetime":{"type":"TypeInt","computed":true}}}},"local_azure_ip_address_enabled":{"type":"TypeBool","computed":true},"local_network_gateway_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peer_virtual_network_gateway_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"routing_weight":{"type":"TypeInt","computed":true},"shared_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","computed":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","computed":true},"virtual_network_gateway_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","computed":true},"disable_vpn_encryption":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"office365_local_breakout_category":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vpn_site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"management_cluster":{"type":"TypeList","computed":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","computed":true}}}},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_subnet_cidr":{"type":"TypeString","computed":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_vpn_gateway":{"schema":{"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"instance_1_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"peer_weight":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_unit":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_application_firewall_policy":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_pubsub_private_link_resource":{"schema":{"shared_private_link_resource_types":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","computed":true}}}},"web_pubsub_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","computed":true},"docker_container_name":{"type":"TypeString","computed":true},"docker_container_registry":{"type":"TypeString","computed":true},"docker_container_tag":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_core_version":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_embedded_server_enabled":{"type":"TypeBool","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python":{"type":"TypeBool","computed":true},"python_version":{"type":"TypeString","computed":true},"tomcat_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"custom_action":{"type":"TypeList","computed":true,"elem":{"schema":{"executable":{"type":"TypeString","computed":true},"parameters":{"type":"TypeString","computed":true}}}},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","computed":true},"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"virtual_application":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"preload":{"type":"TypeBool","computed":true},"virtual_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"virtual_path":{"type":"TypeString","computed":true}}}},"virtual_path":{"type":"TypeString","computed":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}}}}} diff --git a/CHANGELOG.md b/CHANGELOG.md index 123639d8a897..a1a85fd6fe1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,58 +1,58 @@ -## 3.72.0 (Unreleased) +## 3.72.0 (September 07, 2023) FEATURES: -* Provider Feature: subscription cancellation on `destroy` can now be disabled via the provider `features` block [GH-19936] -* **New Data Source**: `netapp_volume_quota_rule` [GH-23042] -* **New Resource**: `azurerm_automation_python3_package` [GH-23087] -* **New Resource**: `netapp_volume_quota_rule` [GH-23042] +* Provider Feature: subscription cancellation on `destroy` can now be disabled via the provider `features` block ([#19936](https://github.com/hashicorp/terraform-provider-azurerm/issues/19936)) +* **New Data Source**: `netapp_volume_quota_rule` ([#23042](https://github.com/hashicorp/terraform-provider-azurerm/issues/23042)) +* **New Resource**: `azurerm_automation_python3_package` ([#23087](https://github.com/hashicorp/terraform-provider-azurerm/issues/23087)) +* **New Resource**: `netapp_volume_quota_rule` ([#23042](https://github.com/hashicorp/terraform-provider-azurerm/issues/23042)) ENHANCEMENTS: -* dependencies: updating to `v0.20230906.1160501` of `github.com/hashicorp/go-azure-sdk` [GH-23191] -* `containerapps`: updating to API Version `2023-05-01` [GH-22804] -* `keyvault`: upgrade remaining resources to `2023-02-01` [GH-23089] -* `redisenterprise`: updating to API Version `2023-07-01` [GH-23178] -* `vpngateway`: updating to use `hashicorp/go-azure-sdk` [GH-22906] -* `internal/sdk`: typed resources using a custom importer now get a timed context [GH-23160] -* `azurerm_batch_pool` - support for `accelerated_networking_enabled` [GH-23021] -* `azurerm_batch_pool` - support for `automatic_upgrade_enabled` [GH-23021] -* `azurerm_bot_channel_direct_line_speech` - support for the `cognitive_account_id` property [GH-23106] -* `azurerm_bot_service_azure_bot` - support for the `local_authentication_enabled` property [GH-23096] -* `azurerm_container_app_environment` - support for the `dapr_application_insights_connection_string` [GH-23080] -* `azurerm_cosmosdb_cassandra_datacenter` - refactoring to use `hashicorp/go-azure-sdk` [GH-23110] -* `azurerm_cosmosdb_cassandra_datacenter` - updating to API Version `2023-04-15` [GH-23110] -* `azurerm_kubernetes_cluster` - Azure CNI can be updated to use `overlay` [GH-22709] -* `azurerm_monitor_diagnostic_setting` - deprecating `retention_policy` within `enabled_log` [GH-23029] -* `azurerm_mssql_database` - split create and update methods [GH-23209] -* `azurerm_postgresql_database` - `collation` can now be set to `English_United Kingdom.1252` [GH-23171] -* `azurerm_postgresql_flexible_database` - `collation` can now be set to `English_United Kingdom.1252` [GH-23171] -* `azurerm_postgresql_flexible_server` - support for the `auto_grow_enabled` property [GH-23069] -* `azurerm_redis_enterprise_cluster` - support for Flash clusters in Brazil South [GH-23200] -* `azurerm_resource_provider_registration` - refactoring to use `hashicorp/go-azure-sdk` [GH-23072] -* `azurerm_virtual_machine_extension` - support for `provision_after_extensions` [GH-23124] -* `azurerm_virtual_network_gateway` - increasing the default timeout for create to `90m` [GH-23003] -* `azurerm_virtual_hub_connection` - support for `inbound_route_map_id`, `outbound_route_map_id`, and `static_vnet_local_route_override_criteria` properties [GH-23049] +* dependencies: updating to `v0.20230906.1160501` of `github.com/hashicorp/go-azure-sdk` ([#23191](https://github.com/hashicorp/terraform-provider-azurerm/issues/23191)) +* `containerapps`: updating to API Version `2023-05-01` ([#22804](https://github.com/hashicorp/terraform-provider-azurerm/issues/22804)) +* `keyvault`: upgrade remaining resources to `2023-02-01` ([#23089](https://github.com/hashicorp/terraform-provider-azurerm/issues/23089)) +* `redisenterprise`: updating to API Version `2023-07-01` ([#23178](https://github.com/hashicorp/terraform-provider-azurerm/issues/23178)) +* `vpngateway`: updating to use `hashicorp/go-azure-sdk` ([#22906](https://github.com/hashicorp/terraform-provider-azurerm/issues/22906)) +* `internal/sdk`: typed resources using a custom importer now get a timed context ([#23160](https://github.com/hashicorp/terraform-provider-azurerm/issues/23160)) +* `azurerm_batch_pool` - support for `accelerated_networking_enabled` ([#23021](https://github.com/hashicorp/terraform-provider-azurerm/issues/23021)) +* `azurerm_batch_pool` - support for `automatic_upgrade_enabled` ([#23021](https://github.com/hashicorp/terraform-provider-azurerm/issues/23021)) +* `azurerm_bot_channel_direct_line_speech` - support for the `cognitive_account_id` property ([#23106](https://github.com/hashicorp/terraform-provider-azurerm/issues/23106)) +* `azurerm_bot_service_azure_bot` - support for the `local_authentication_enabled` property ([#23096](https://github.com/hashicorp/terraform-provider-azurerm/issues/23096)) +* `azurerm_container_app_environment` - support for the `dapr_application_insights_connection_string` ([#23080](https://github.com/hashicorp/terraform-provider-azurerm/issues/23080)) +* `azurerm_cosmosdb_cassandra_datacenter` - refactoring to use `hashicorp/go-azure-sdk` ([#23110](https://github.com/hashicorp/terraform-provider-azurerm/issues/23110)) +* `azurerm_cosmosdb_cassandra_datacenter` - updating to API Version `2023-04-15` ([#23110](https://github.com/hashicorp/terraform-provider-azurerm/issues/23110)) +* `azurerm_kubernetes_cluster` - Azure CNI can be updated to use `overlay` ([#22709](https://github.com/hashicorp/terraform-provider-azurerm/issues/22709)) +* `azurerm_monitor_diagnostic_setting` - deprecating `retention_policy` within `enabled_log` ([#23029](https://github.com/hashicorp/terraform-provider-azurerm/issues/23029)) +* `azurerm_mssql_database` - split create and update methods ([#23209](https://github.com/hashicorp/terraform-provider-azurerm/issues/23209)) +* `azurerm_postgresql_database` - `collation` can now be set to `English_United Kingdom.1252` ([#23171](https://github.com/hashicorp/terraform-provider-azurerm/issues/23171)) +* `azurerm_postgresql_flexible_database` - `collation` can now be set to `English_United Kingdom.1252` ([#23171](https://github.com/hashicorp/terraform-provider-azurerm/issues/23171)) +* `azurerm_postgresql_flexible_server` - support for the `auto_grow_enabled` property ([#23069](https://github.com/hashicorp/terraform-provider-azurerm/issues/23069)) +* `azurerm_redis_enterprise_cluster` - support for Flash clusters in Brazil South ([#23200](https://github.com/hashicorp/terraform-provider-azurerm/issues/23200)) +* `azurerm_resource_provider_registration` - refactoring to use `hashicorp/go-azure-sdk` ([#23072](https://github.com/hashicorp/terraform-provider-azurerm/issues/23072)) +* `azurerm_virtual_machine_extension` - support for `provision_after_extensions` ([#23124](https://github.com/hashicorp/terraform-provider-azurerm/issues/23124)) +* `azurerm_virtual_network_gateway` - increasing the default timeout for create to `90m` ([#23003](https://github.com/hashicorp/terraform-provider-azurerm/issues/23003)) +* `azurerm_virtual_hub_connection` - support for `inbound_route_map_id`, `outbound_route_map_id`, and `static_vnet_local_route_override_criteria` properties ([#23049](https://github.com/hashicorp/terraform-provider-azurerm/issues/23049)) BUG FIXES: -* `azurerm_api_management_api_policy` - added state migration to mutate id's ending in `policies/policy` [GH-23128] -* `azurerm_api_management_api_operation_policy` - added state migration to mutate id's ending in `policies/policy` [GH-23128] -* `azurerm_api_management_product_policy` - added state migration to mutate id's ending in `policies/policy` [GH-23128] -* `azurerm_automation_account` - fixes logic for `local_authentication_enabled` [GH-23082] -* `azurerm_key_vault_managed_storage_account` - check id can be parsed correctly before setting it in state [GH-23022] -* `azurerm_monitor_diagnostic_setting` - fix `enabled_log` feature flagged schema [GH-23093] -* `azurerm_pim_active_role_assignment`: polling for the duration of the timeout, rather than a fixed 5 minute value [GH-22932] -* `azurerm_policy_set_definition` - only sending `parameters` when a value is configured [GH-23155] -* `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` [GH-23019] -* `machine_learning_datastore_*` - fixes container ids [GH-23140] -* `azurerm_key_vault_certificate` - id now points to new version when certificate is updated [GH-23135] -* `azurerm_site_recovery_replicated_vm` - update `network_interface` diff so replicated items now can be updated [GH-23199] +* `azurerm_api_management_api_policy` - added state migration to mutate id's ending in `policies/policy` ([#23128](https://github.com/hashicorp/terraform-provider-azurerm/issues/23128)) +* `azurerm_api_management_api_operation_policy` - added state migration to mutate id's ending in `policies/policy` ([#23128](https://github.com/hashicorp/terraform-provider-azurerm/issues/23128)) +* `azurerm_api_management_product_policy` - added state migration to mutate id's ending in `policies/policy` ([#23128](https://github.com/hashicorp/terraform-provider-azurerm/issues/23128)) +* `azurerm_automation_account` - fixes logic for `local_authentication_enabled` ([#23082](https://github.com/hashicorp/terraform-provider-azurerm/issues/23082)) +* `azurerm_key_vault_managed_storage_account` - check id can be parsed correctly before setting it in state ([#23022](https://github.com/hashicorp/terraform-provider-azurerm/issues/23022)) +* `azurerm_monitor_diagnostic_setting` - fix `enabled_log` feature flagged schema ([#23093](https://github.com/hashicorp/terraform-provider-azurerm/issues/23093)) +* `azurerm_pim_active_role_assignment`: polling for the duration of the timeout, rather than a fixed 5 minute value ([#22932](https://github.com/hashicorp/terraform-provider-azurerm/issues/22932)) +* `azurerm_policy_set_definition` - only sending `parameters` when a value is configured ([#23155](https://github.com/hashicorp/terraform-provider-azurerm/issues/23155)) +* `azurerm_synapse_workspace` - fixes index out-of-range panic when parsing `storage_data_lake_gen2_filesystem_id` ([#23019](https://github.com/hashicorp/terraform-provider-azurerm/issues/23019)) +* `machine_learning_datastore_*` - fixes container ids ([#23140](https://github.com/hashicorp/terraform-provider-azurerm/issues/23140)) +* `azurerm_key_vault_certificate` - id now points to new version when certificate is updated ([#23135](https://github.com/hashicorp/terraform-provider-azurerm/issues/23135)) +* `azurerm_site_recovery_replicated_vm` - update `network_interface` diff so replicated items now can be updated ([#23199](https://github.com/hashicorp/terraform-provider-azurerm/issues/23199)) DEPRECATION: -* Data Source: `azure_monitor_log_profile` - Azure is retiring Azure Log Profiles on the 30th of September 2026 [GH-23146] -* `azure_monitor_log_profile` - Azure is retiring Azure Log Profiles on the 30th of September 2026 [GH-23146] +* Data Source: `azure_monitor_log_profile` - Azure is retiring Azure Log Profiles on the 30th of September 2026 ([#23146](https://github.com/hashicorp/terraform-provider-azurerm/issues/23146)) +* `azure_monitor_log_profile` - Azure is retiring Azure Log Profiles on the 30th of September 2026 ([#23146](https://github.com/hashicorp/terraform-provider-azurerm/issues/23146)) ## 3.71.0 (August 24, 2023) From bc0196bc5bf693e8ff5a763eb9020f213122977b Mon Sep 17 00:00:00 2001 From: SebSa Date: Fri, 8 Sep 2023 02:51:48 +0100 Subject: [PATCH 145/336] `azurerm_maps_account` - Support for `local_authentication_enabled` (#23216) --- .../services/maps/maps_account_resource.go | 18 ++++++ .../maps/maps_account_resource_test.go | 64 +++++++++++++++++++ website/docs/r/maps_account.html.markdown | 9 ++- 3 files changed, 88 insertions(+), 3 deletions(-) diff --git a/internal/services/maps/maps_account_resource.go b/internal/services/maps/maps_account_resource.go index 9afdfa527e25..71e32f648e52 100644 --- a/internal/services/maps/maps_account_resource.go +++ b/internal/services/maps/maps_account_resource.go @@ -18,6 +18,7 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" + "github.com/hashicorp/terraform-provider-azurerm/utils" ) func resourceMapsAccount() *pluginsdk.Resource { @@ -78,6 +79,12 @@ func resourceMapsAccount() *pluginsdk.Resource { Computed: true, Sensitive: true, }, + + "local_authentication_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: true, + }, }, } } @@ -110,6 +117,9 @@ func resourceMapsAccountCreateUpdate(d *pluginsdk.ResourceData, meta interface{} Name: accounts.Name(d.Get("sku_name").(string)), }, Tags: tags.Expand(d.Get("tags").(map[string]interface{})), + Properties: &accounts.MapsAccountProperties{ + DisableLocalAuth: utils.Bool(!d.Get("local_authentication_enabled").(bool)), + }, } if _, err := client.CreateOrUpdate(ctx, id, parameters); err != nil { @@ -166,6 +176,14 @@ func resourceMapsAccountRead(d *pluginsdk.ResourceData, meta interface{}) error d.Set("secondary_access_key", model.SecondaryKey) } + localAuthenticationEnabled := true + if props := resp.Model.Properties; props != nil { + if props.DisableLocalAuth != nil { + localAuthenticationEnabled = !*props.DisableLocalAuth + } + } + d.Set("local_authentication_enabled", localAuthenticationEnabled) + return nil } diff --git a/internal/services/maps/maps_account_resource_test.go b/internal/services/maps/maps_account_resource_test.go index 1ad50aed3efb..525efd3f5d13 100644 --- a/internal/services/maps/maps_account_resource_test.go +++ b/internal/services/maps/maps_account_resource_test.go @@ -100,6 +100,30 @@ func TestAccMapsAccount_tags(t *testing.T) { }) } +func TestAccMapsAccount_disableLocalAuth(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_maps_account", "test") + r := MapsAccountResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.disableLocalAuth(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("local_authentication_enabled").HasValue("false"), + ), + }, + data.ImportStep(), + { + Config: r.enableLocalAuth(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("local_authentication_enabled").HasValue("true"), + ), + }, + data.ImportStep(), + }) +} + func (MapsAccountResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := accounts.ParseAccountID(state.ID) if err != nil { @@ -174,3 +198,43 @@ resource "azurerm_maps_account" "test" { } `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } + +func (MapsAccountResource) disableLocalAuth(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_maps_account" "test" { + name = "accMapsAccount-%d" + resource_group_name = azurerm_resource_group.test.name + sku_name = "S0" + local_authentication_enabled = false +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +} + +func (MapsAccountResource) enableLocalAuth(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_maps_account" "test" { + name = "accMapsAccount-%d" + resource_group_name = azurerm_resource_group.test.name + sku_name = "S0" + local_authentication_enabled = true +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +} diff --git a/website/docs/r/maps_account.html.markdown b/website/docs/r/maps_account.html.markdown index 43f32c0d8c22..1b41c3939e0f 100644 --- a/website/docs/r/maps_account.html.markdown +++ b/website/docs/r/maps_account.html.markdown @@ -19,9 +19,10 @@ resource "azurerm_resource_group" "example" { } resource "azurerm_maps_account" "example" { - name = "example-maps-account" - resource_group_name = azurerm_resource_group.example.name - sku_name = "S1" + name = "example-maps-account" + resource_group_name = azurerm_resource_group.example.name + sku_name = "S1" + local_authentication_enabled = true tags = { environment = "Test" @@ -39,6 +40,8 @@ The following arguments are supported: * `sku_name` - (Required) The SKU of the Azure Maps Account. Possible values are `S0`, `S1` and `G2`. Changing this forces a new resource to be created. +* `local_authentication_enabled` - (Optional) Is local authentication enabled for this Azure Maps Account? When `false`, all authentication to the Azure Maps data-plane REST API is disabled, except Azure AD authentication. Defaults to `true`. + * `tags` - (Optional) A mapping of tags to assign to the Azure Maps Account. ## Attributes Reference From d477a3e7e0ec51ce2adbf66700b641a83f0a3b4b Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Thu, 7 Sep 2023 18:52:52 -0700 Subject: [PATCH 146/336] Update CHANGELOG.md for #23216 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a1a85fd6fe1d..490553d7a894 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 3.73.0 (Unreleased) + +ENHANCEMENTS: + +* `azurerm_maps_account` - Support for `local_authentication_enabled` [GH-23216] + ## 3.72.0 (September 07, 2023) FEATURES: From d9f299c00e678fc943277c8f70d540f05b849bdb Mon Sep 17 00:00:00 2001 From: xuwu1 Date: Fri, 8 Sep 2023 14:18:55 +0800 Subject: [PATCH 147/336] fix dereference may cause panic in apim --- .../apimanagement/api_management_backend_resource.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/services/apimanagement/api_management_backend_resource.go b/internal/services/apimanagement/api_management_backend_resource.go index a990324ed88b..68da32ffc9aa 100644 --- a/internal/services/apimanagement/api_management_backend_resource.go +++ b/internal/services/apimanagement/api_management_backend_resource.go @@ -540,17 +540,17 @@ func flattenApiManagementBackendCredentials(input *backend.BackendCredentialsCon if input.Certificate != nil { result["certificate"] = *input.Certificate } - result["header"] = flattenApiManagementBackendCredentialsObject(*input.Header) - result["query"] = flattenApiManagementBackendCredentialsObject(*input.Query) + result["header"] = flattenApiManagementBackendCredentialsObject(input.Header) + result["query"] = flattenApiManagementBackendCredentialsObject(input.Query) return append(results, result) } -func flattenApiManagementBackendCredentialsObject(input map[string][]string) map[string]interface{} { +func flattenApiManagementBackendCredentialsObject(input *map[string][]string) map[string]interface{} { results := make(map[string]interface{}) - if input == nil { + if input == nil || *input == nil { return results } - for k, v := range input { + for k, v := range *input { results[k] = strings.Join(v, ",") } return results From 14701e51c2d622463e72efc6a0e2fd1553f2cc72 Mon Sep 17 00:00:00 2001 From: SebSa Date: Fri, 8 Sep 2023 07:42:31 +0100 Subject: [PATCH 148/336] `azurerm_iothub`: Support for `disableLocalAuth` / `local_authentication_enabled` (#23119) * add local_authentication_enabled to iothub resource * apply suggested fixes * terrafmt --- internal/services/iothub/iothub_resource.go | 14 +++ .../services/iothub/iothub_resource_test.go | 96 +++++++++++++++++++ website/docs/r/iothub.html.markdown | 9 +- 3 files changed, 116 insertions(+), 3 deletions(-) diff --git a/internal/services/iothub/iothub_resource.go b/internal/services/iothub/iothub_resource.go index 7b6a85589063..fb8b7d1541e2 100644 --- a/internal/services/iothub/iothub_resource.go +++ b/internal/services/iothub/iothub_resource.go @@ -602,6 +602,12 @@ func resourceIotHub() *pluginsdk.Resource { }, }, + "local_authentication_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: true, + }, + "min_tls_version": { Type: pluginsdk.TypeString, Optional: true, @@ -779,6 +785,8 @@ func resourceIotHubCreateUpdate(d *pluginsdk.ResourceData, meta interface{}) err } } + props.Properties.DisableLocalAuth = utils.Bool(!d.Get("local_authentication_enabled").(bool)) + if v, ok := d.GetOk("min_tls_version"); ok { props.Properties.MinTLSVersion = utils.String(v.(string)) } @@ -894,6 +902,12 @@ func resourceIotHubRead(d *pluginsdk.ResourceData, meta interface{}) error { } d.Set("min_tls_version", properties.MinTLSVersion) + + localAuthenticationEnabled := true + if properties.DisableLocalAuth != nil { + localAuthenticationEnabled = !*properties.DisableLocalAuth + } + d.Set("local_authentication_enabled", localAuthenticationEnabled) } identity, err := flattenIotHubIdentity(hub.Identity) diff --git a/internal/services/iothub/iothub_resource_test.go b/internal/services/iothub/iothub_resource_test.go index d1c8a5885c72..a93cdaf8cb7c 100644 --- a/internal/services/iothub/iothub_resource_test.go +++ b/internal/services/iothub/iothub_resource_test.go @@ -314,6 +314,36 @@ func TestAccIotHub_minTLSVersion(t *testing.T) { }) } +func TestAccIotHub_LocalAuth(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_iothub", "test") + r := IotHubResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.disableLocalAuth(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("local_authentication_enabled").HasValue("false"), + ), + }, + data.ImportStep(), + { + Config: r.enableLocalAuth(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("local_authentication_enabled").HasValue("true"), + ), + }, + data.ImportStep(), + }) +} + func TestAccIotHub_cloudToDevice(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_iothub", "test") r := IotHubResource{} @@ -1404,6 +1434,72 @@ resource "azurerm_iothub" "test" { `, data.RandomInteger, "eastus", data.RandomInteger) } +func (IotHubResource) disableLocalAuth(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-iothub-%d" + location = "%s" + tags = { + purpose = "testing" + } +} + +resource "azurerm_iothub" "test" { + name = "acctestIoTHub-%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + + local_authentication_enabled = false + + sku { + name = "B1" + capacity = "1" + } + + tags = { + purpose = "testing" + } +} + `, data.RandomInteger, "eastus", data.RandomInteger) +} + +func (IotHubResource) enableLocalAuth(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-iothub-%d" + location = "%s" + tags = { + purpose = "testing" + } +} + +resource "azurerm_iothub" "test" { + name = "acctestIoTHub-%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + + local_authentication_enabled = true + + sku { + name = "B1" + capacity = "1" + } + + tags = { + purpose = "testing" + } +} + `, data.RandomInteger, "eastus", data.RandomInteger) +} + func (IotHubResource) cloudToDevice(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { diff --git a/website/docs/r/iothub.html.markdown b/website/docs/r/iothub.html.markdown index f8b4ac51ac65..db4288ac0cee 100644 --- a/website/docs/r/iothub.html.markdown +++ b/website/docs/r/iothub.html.markdown @@ -66,9 +66,10 @@ resource "azurerm_eventhub_authorization_rule" "example" { } resource "azurerm_iothub" "example" { - name = "Example-IoTHub" - resource_group_name = azurerm_resource_group.example.name - location = azurerm_resource_group.example.location + name = "Example-IoTHub" + resource_group_name = azurerm_resource_group.example.name + location = azurerm_resource_group.example.location + local_authentication_enabled = false sku { name = "S1" @@ -142,6 +143,8 @@ The following arguments are supported: * `sku` - (Required) A `sku` block as defined below. +* `local_authentication_enabled` - (Optional) If false, SAS tokens with Iot hub scoped SAS keys cannot be used for authentication. Defaults to `true`. + * `event_hub_partition_count` - (Optional) The number of device-to-cloud partitions used by backing event hubs. Must be between `2` and `128`. * `event_hub_retention_in_days` - (Optional) The event hub retention to use in days. Must be between `1` and `7`. From 9d42dc2ad8ac3d0df14864959db2b78a252113b4 Mon Sep 17 00:00:00 2001 From: Tao <104055472+teowa@users.noreply.github.com> Date: Fri, 8 Sep 2023 02:04:21 -0700 Subject: [PATCH 149/336] `azurerm_application_gateway` - support for `verify_client_certificate_revocation` in `ssl_profile` block (#23181) * ssl_profile.0.verify_client_cert_revocation * add doc * remove cert abbr * fix test * send None by default --- .../network/application_gateway_resource.go | 33 +++++++++++++++++-- .../application_gateway_resource_test.go | 5 +-- .../docs/r/application_gateway.html.markdown | 2 ++ 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/internal/services/network/application_gateway_resource.go b/internal/services/network/application_gateway_resource.go index 97a1cdb27473..c48ec75b65db 100644 --- a/internal/services/network/application_gateway_resource.go +++ b/internal/services/network/application_gateway_resource.go @@ -11,6 +11,7 @@ import ( "strings" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" @@ -1239,12 +1240,21 @@ func resourceApplicationGateway() *pluginsdk.Resource { }, }, + // TODO: replace cert by certificate in 4.0 "verify_client_cert_issuer_dn": { Type: pluginsdk.TypeBool, Optional: true, Default: false, }, + "verify_client_certificate_revocation": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringInSlice([]string{ + string(network.ApplicationGatewayClientRevocationOptionsOCSP), + }, false), + }, + // lintignore:XS003 "ssl_policy": sslProfileSchema(false), @@ -4218,11 +4228,18 @@ func expandApplicationGatewaySslProfiles(d *pluginsdk.ResourceData, gatewayID st name := v["name"].(string) verifyClientCertIssuerDn := v["verify_client_cert_issuer_dn"].(bool) + verifyClientCertificateRevocation := network.ApplicationGatewayClientRevocationOptionsNone + if v["verify_client_certificate_revocation"].(string) != "" { + verifyClientCertificateRevocation = network.ApplicationGatewayClientRevocationOptions(v["verify_client_certificate_revocation"].(string)) + } output := network.ApplicationGatewaySslProfile{ - Name: utils.String(name), + Name: pointer.To(name), ApplicationGatewaySslProfilePropertiesFormat: &network.ApplicationGatewaySslProfilePropertiesFormat{ - ClientAuthConfiguration: &network.ApplicationGatewayClientAuthConfiguration{VerifyClientCertIssuerDN: utils.Bool(verifyClientCertIssuerDn)}, + ClientAuthConfiguration: &network.ApplicationGatewayClientAuthConfiguration{ + VerifyClientCertIssuerDN: pointer.To(verifyClientCertIssuerDn), + VerifyClientRevocation: verifyClientCertificateRevocation, + }, }, } @@ -4272,7 +4289,17 @@ func flattenApplicationGatewaySslProfiles(input *[]network.ApplicationGatewaySsl } output["name"] = name - output["verify_client_cert_issuer_dn"] = *v.ClientAuthConfiguration.VerifyClientCertIssuerDN + + verifyClientCertIssuerDn := false + verifyClientCertificateRevocation := "" + if v.ClientAuthConfiguration != nil { + verifyClientCertIssuerDn = pointer.From(v.ClientAuthConfiguration.VerifyClientCertIssuerDN) + if v.ClientAuthConfiguration.VerifyClientRevocation != network.ApplicationGatewayClientRevocationOptionsNone { + verifyClientCertificateRevocation = string(v.ClientAuthConfiguration.VerifyClientRevocation) + } + } + output["verify_client_cert_issuer_dn"] = verifyClientCertIssuerDn + output["verify_client_certificate_revocation"] = verifyClientCertificateRevocation output["ssl_policy"] = flattenApplicationGatewaySslPolicy(v.SslPolicy) diff --git a/internal/services/network/application_gateway_resource_test.go b/internal/services/network/application_gateway_resource_test.go index 99adad3454d1..b609df2ab02d 100644 --- a/internal/services/network/application_gateway_resource_test.go +++ b/internal/services/network/application_gateway_resource_test.go @@ -7257,8 +7257,9 @@ resource "azurerm_application_gateway" "test" { } ssl_profile { - name = local.ssl_profile_name - verify_client_cert_issuer_dn = true + name = local.ssl_profile_name + verify_client_cert_issuer_dn = true + verify_client_certificate_revocation = "OCSP" ssl_policy { policy_type = "Predefined" policy_name = "AppGwSslPolicy20170401" diff --git a/website/docs/r/application_gateway.html.markdown b/website/docs/r/application_gateway.html.markdown index 8e72e12aea0d..5dccae87ee88 100644 --- a/website/docs/r/application_gateway.html.markdown +++ b/website/docs/r/application_gateway.html.markdown @@ -507,6 +507,8 @@ A `ssl_profile` block supports the following: * `trusted_client_certificate_names` - (Optional) The name of the Trusted Client Certificate that will be used to authenticate requests from clients. * `verify_client_cert_issuer_dn` - (Optional) Should client certificate issuer DN be verified? Defaults to `false`. + +* `verify_client_certificate_revocation` - (Optional) Specify the method to check client certificate revocation status. Possible value is `OCSP`. * `ssl_policy` - (Optional) a `ssl_policy` block as defined below. From b12ab79320f8343e7d8e158cfa77f9114a69aeae Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Fri, 8 Sep 2023 11:31:51 +0200 Subject: [PATCH 150/336] dependencies: updating ``` $ go get -u go: downloading github.com/hashicorp/terraform-plugin-sdk/v2 v2.29.0 go: downloading github.com/hashicorp/go-azure-sdk v0.20230907.1113401 go: downloading github.com/google/uuid v1.3.1 go: downloading golang.org/x/net v0.15.0 go: downloading golang.org/x/crypto v0.13.0 go: downloading github.com/rickb777/date v1.20.2 go: downloading github.com/hashicorp/terraform-plugin-testing v1.5.1 go: downloading github.com/hashicorp/terraform-plugin-go v0.19.0 go: downloading github.com/hashicorp/go-plugin v1.5.1 go: downloading golang.org/x/oauth2 v0.12.0 go: downloading software.sslmate.com/src/go-pkcs12 v0.2.1 go: downloading github.com/hashicorp/terraform-json v0.17.1 go: downloading github.com/hashicorp/terraform-exec v0.19.0 go: downloading golang.org/x/text v0.13.0 go: downloading github.com/fatih/color v1.15.0 go: downloading github.com/mattn/go-isatty v0.0.19 go: downloading google.golang.org/grpc v1.58.0 go: downloading golang.org/x/sys v0.12.0 go: downloading github.com/zclconf/go-cty v1.14.0 go: downloading google.golang.org/appengine v1.6.8 go: downloading github.com/hashicorp/hcl/v2 v2.18.0 go: downloading github.com/hashicorp/hc-install v0.6.0 go: downloading google.golang.org/protobuf v1.31.0 go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d go: downloading google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d go: downloading github.com/hashicorp/terraform-registry-address v0.2.2 go: downloading github.com/hashicorp/terraform-svchost v0.1.1 go: downloading google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 go: downloading github.com/apparentlymart/go-textseg/v15 v15.0.0 go: downloading github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 go: downloading github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 go: downloading golang.org/x/exp v0.0.0-20230809150735-7b3493d9a819 go: downloading golang.org/x/exp v0.0.0-20230905200255-921286631fa9 go: downloading github.com/Microsoft/go-winio v0.6.1 go: downloading github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 go: downloading github.com/go-git/go-git/v5 v5.8.1 go: downloading github.com/imdario/mergo v0.3.15 go: downloading github.com/jhump/protoreflect v1.15.1 go: downloading golang.org/x/sync v0.3.0 go: downloading golang.org/x/term v0.12.0 go: downloading golang.org/x/tools v0.13.0 go: upgraded github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7 => v0.0.0-20230828082145-3c4c8a2d2371 go: added github.com/apparentlymart/go-textseg/v15 v15.0.0 go: upgraded github.com/btubbs/datetime v0.1.0 => v0.1.1 go: added github.com/cloudflare/circl v1.3.3 go: upgraded github.com/fatih/color v1.13.0 => v1.15.0 go: upgraded github.com/golang/protobuf v1.5.2 => v1.5.3 go: upgraded github.com/google/uuid v1.3.0 => v1.3.1 go: upgraded github.com/hashicorp/go-azure-sdk v0.20230906.1160501 => v0.20230907.1113401 go: upgraded github.com/hashicorp/go-hclog v1.4.0 => v1.5.0 go: upgraded github.com/hashicorp/go-plugin v1.4.8 => v1.5.1 go: upgraded github.com/hashicorp/hc-install v0.5.0 => v0.6.0 go: upgraded github.com/hashicorp/hcl/v2 v2.16.2 => v2.18.0 go: upgraded github.com/hashicorp/terraform-exec v0.18.1 => v0.19.0 go: upgraded github.com/hashicorp/terraform-json v0.16.0 => v0.17.1 go: upgraded github.com/hashicorp/terraform-plugin-go v0.14.3 => v0.19.0 go: upgraded github.com/hashicorp/terraform-plugin-log v0.8.0 => v0.9.0 go: upgraded github.com/hashicorp/terraform-plugin-sdk/v2 v2.26.1 => v2.29.0 go: upgraded github.com/hashicorp/terraform-plugin-testing v1.0.0 => v1.5.1 go: upgraded github.com/hashicorp/terraform-registry-address v0.1.0 => v0.2.2 go: upgraded github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734 => v0.1.1 go: upgraded github.com/hashicorp/yamux v0.0.0-20210316155119-a95892c5f864 => v0.1.1 go: upgraded github.com/mattn/go-colorable v0.1.12 => v0.1.13 go: upgraded github.com/mattn/go-isatty v0.0.14 => v0.0.19 go: upgraded github.com/rickb777/date v1.12.5-0.20200422084442-6300e543c4d9 => v1.20.2 go: upgraded github.com/rickb777/plural v1.2.0 => v1.4.1 go: upgraded github.com/vmihailenco/tagparser v0.1.1 => v0.1.2 go: upgraded github.com/zclconf/go-cty v1.13.1 => v1.14.0 go: upgraded golang.org/x/crypto v0.9.0 => v0.13.0 go: added golang.org/x/exp v0.0.0-20230905200255-921286631fa9 go: upgraded golang.org/x/mod v0.8.0 => v0.12.0 go: upgraded golang.org/x/net v0.10.0 => v0.15.0 go: upgraded golang.org/x/oauth2 v0.4.0 => v0.12.0 go: upgraded golang.org/x/sys v0.8.0 => v0.12.0 go: upgraded golang.org/x/text v0.9.0 => v0.13.0 go: upgraded golang.org/x/tools v0.6.0 => v0.13.0 go: upgraded google.golang.org/appengine v1.6.7 => v1.6.8 go: upgraded google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f => v0.0.0-20230803162519-f966b187b2e5 go: added google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d go: upgraded google.golang.org/grpc v1.53.0 => v1.58.0 go: upgraded google.golang.org/protobuf v1.28.1 => v1.31.0 go: upgraded software.sslmate.com/src/go-pkcs12 v0.2.0 => v0.2.1 ``` --- go.mod | 79 +- go.sum | 298 +- .../github.com/ProtonMail/go-crypto/AUTHORS | 3 + .../ProtonMail/go-crypto/CONTRIBUTORS | 3 + .../github.com/ProtonMail/go-crypto/LICENSE | 27 + .../github.com/ProtonMail/go-crypto/PATENTS | 22 + .../go-crypto/bitcurves/bitcurve.go | 381 + .../go-crypto/brainpool/brainpool.go | 134 + .../ProtonMail/go-crypto/brainpool/rcurve.go | 83 + .../ProtonMail/go-crypto/eax/eax.go | 162 + .../go-crypto/eax/eax_test_vectors.go | 58 + .../go-crypto/eax/random_vectors.go | 131 + .../go-crypto/internal/byteutil/byteutil.go | 90 + .../ProtonMail/go-crypto/ocb/ocb.go | 317 + .../go-crypto/ocb/random_vectors.go | 136 + .../ocb/rfc7253_test_vectors_suite_a.go | 78 + .../ocb/rfc7253_test_vectors_suite_b.go | 25 + .../go-crypto/openpgp/aes/keywrap/keywrap.go | 153 + .../go-crypto}/openpgp/armor/armor.go | 21 +- .../go-crypto}/openpgp/armor/encode.go | 0 .../go-crypto}/openpgp/canonical_text.go | 24 +- .../ProtonMail/go-crypto/openpgp/ecdh/ecdh.go | 210 + .../go-crypto/openpgp/ecdsa/ecdsa.go | 80 + .../go-crypto/openpgp/eddsa/eddsa.go | 91 + .../go-crypto}/openpgp/elgamal/elgamal.go | 8 +- .../go-crypto}/openpgp/errors/errors.go | 52 +- .../ProtonMail/go-crypto/openpgp/hash.go | 24 + .../openpgp/internal/algorithm/aead.go | 65 + .../openpgp/internal/algorithm/cipher.go | 107 + .../openpgp/internal/algorithm/hash.go | 143 + .../openpgp/internal/ecc/curve25519.go | 171 + .../openpgp/internal/ecc/curve_info.go | 140 + .../go-crypto/openpgp/internal/ecc/curves.go | 48 + .../go-crypto/openpgp/internal/ecc/ed25519.go | 112 + .../go-crypto/openpgp/internal/ecc/ed448.go | 111 + .../go-crypto/openpgp/internal/ecc/generic.go | 149 + .../go-crypto/openpgp/internal/ecc/x448.go | 105 + .../openpgp/internal/encoding/encoding.go | 27 + .../openpgp/internal/encoding/mpi.go | 91 + .../openpgp/internal/encoding/oid.go | 88 + .../go-crypto/openpgp/key_generation.go | 389 + .../ProtonMail/go-crypto/openpgp/keys.go | 842 ++ .../go-crypto/openpgp/keys_test_data.go | 538 + .../go-crypto/openpgp/packet/aead_config.go | 67 + .../go-crypto/openpgp/packet/aead_crypter.go | 264 + .../openpgp/packet/aead_encrypted.go | 96 + .../go-crypto}/openpgp/packet/compressed.go | 6 +- .../go-crypto/openpgp/packet/config.go | 248 + .../openpgp/packet/encrypted_key.go | 128 +- .../go-crypto}/openpgp/packet/literal.go | 4 +- .../go-crypto/openpgp/packet/notation.go | 29 + .../go-crypto}/openpgp/packet/ocfb.go | 8 +- .../openpgp/packet/one_pass_signature.go | 8 +- .../go-crypto}/openpgp/packet/opaque.go | 20 +- .../go-crypto}/openpgp/packet/packet.go | 379 +- .../go-crypto/openpgp/packet/private_key.go | 837 ++ .../openpgp/packet/private_key_test_data.go | 12 + .../go-crypto/openpgp/packet/public_key.go | 806 ++ .../openpgp/packet/public_key_test_data.go | 24 + .../go-crypto}/openpgp/packet/reader.go | 16 +- .../go-crypto}/openpgp/packet/signature.go | 641 +- .../openpgp/packet/symmetric_key_encrypted.go | 276 + .../openpgp/packet/symmetrically_encrypted.go | 90 + .../packet/symmetrically_encrypted_aead.go | 156 + .../packet/symmetrically_encrypted_mdc.go} | 114 +- .../openpgp/packet/userattribute.go | 19 +- .../go-crypto}/openpgp/packet/userid.go | 10 +- .../ProtonMail/go-crypto}/openpgp/read.go | 348 +- .../go-crypto/openpgp/read_write_test_data.go | 274 + .../ProtonMail/go-crypto/openpgp/s2k/s2k.go | 407 + .../go-crypto/openpgp/s2k/s2k_cache.go | 26 + .../go-crypto/openpgp/s2k/s2k_config.go | 129 + .../ProtonMail/go-crypto}/openpgp/write.go | 305 +- .../v13/textseg/grapheme_clusters.go | 4138 ------- .../go-textseg/{v13 => v15}/LICENSE | 0 .../{v13 => v15}/textseg/all_tokens.go | 0 .../{v13 => v15}/textseg/emoji_table.rl | 54 +- .../{v13 => v15}/textseg/generate.go | 4 +- .../v15/textseg/grapheme_clusters.go | 4349 ++++++++ .../{v13 => v15}/textseg/grapheme_clusters.rl | 0 .../textseg/grapheme_clusters_table.rl | 48 +- .../go-textseg/{v13 => v15}/textseg/tables.go | 425 +- .../{v13 => v15}/textseg/unicode2ragel.rb | 0 .../{v13 => v15}/textseg/utf8_seqs.go | 0 vendor/github.com/btubbs/datetime/parser.go | 7 +- vendor/github.com/cloudflare/circl/LICENSE | 57 + .../cloudflare/circl/dh/x25519/curve.go | 96 + .../cloudflare/circl/dh/x25519/curve_amd64.go | 30 + .../cloudflare/circl/dh/x25519/curve_amd64.h | 111 + .../cloudflare/circl/dh/x25519/curve_amd64.s | 156 + .../circl/dh/x25519/curve_generic.go | 85 + .../cloudflare/circl/dh/x25519/curve_noasm.go | 11 + .../cloudflare/circl/dh/x25519/doc.go | 19 + .../cloudflare/circl/dh/x25519/key.go | 47 + .../cloudflare/circl/dh/x25519/table.go | 268 + .../cloudflare/circl/dh/x448/curve.go | 104 + .../cloudflare/circl/dh/x448/curve_amd64.go | 30 + .../cloudflare/circl/dh/x448/curve_amd64.h | 111 + .../cloudflare/circl/dh/x448/curve_amd64.s | 193 + .../cloudflare/circl/dh/x448/curve_generic.go | 100 + .../cloudflare/circl/dh/x448/curve_noasm.go | 11 + .../cloudflare/circl/dh/x448/doc.go | 19 + .../cloudflare/circl/dh/x448/key.go | 46 + .../cloudflare/circl/dh/x448/table.go | 460 + .../circl/ecc/goldilocks/constants.go | 71 + .../cloudflare/circl/ecc/goldilocks/curve.go | 80 + .../circl/ecc/goldilocks/isogeny.go | 52 + .../cloudflare/circl/ecc/goldilocks/point.go | 171 + .../cloudflare/circl/ecc/goldilocks/scalar.go | 203 + .../cloudflare/circl/ecc/goldilocks/twist.go | 138 + .../circl/ecc/goldilocks/twistPoint.go | 135 + .../circl/ecc/goldilocks/twistTables.go | 216 + .../circl/ecc/goldilocks/twist_basemult.go | 62 + .../cloudflare/circl/internal/conv/conv.go | 140 + .../cloudflare/circl/internal/sha3/doc.go | 62 + .../cloudflare/circl/internal/sha3/hashes.go | 69 + .../cloudflare/circl/internal/sha3/keccakf.go | 383 + .../cloudflare/circl/internal/sha3/rc.go | 29 + .../cloudflare/circl/internal/sha3/sha3.go | 195 + .../circl/internal/sha3/sha3_s390x.s | 33 + .../cloudflare/circl/internal/sha3/shake.go | 79 + .../cloudflare/circl/internal/sha3/xor.go | 15 + .../circl/internal/sha3/xor_generic.go | 33 + .../circl/internal/sha3/xor_unaligned.go | 61 + .../cloudflare/circl/math/fp25519/fp.go | 205 + .../cloudflare/circl/math/fp25519/fp_amd64.go | 45 + .../cloudflare/circl/math/fp25519/fp_amd64.h | 351 + .../cloudflare/circl/math/fp25519/fp_amd64.s | 111 + .../circl/math/fp25519/fp_generic.go | 317 + .../cloudflare/circl/math/fp25519/fp_noasm.go | 13 + .../cloudflare/circl/math/fp448/fp.go | 164 + .../cloudflare/circl/math/fp448/fp_amd64.go | 43 + .../cloudflare/circl/math/fp448/fp_amd64.h | 591 + .../cloudflare/circl/math/fp448/fp_amd64.s | 74 + .../cloudflare/circl/math/fp448/fp_generic.go | 339 + .../cloudflare/circl/math/fp448/fp_noasm.go | 12 + .../cloudflare/circl/math/fp448/fuzzer.go | 75 + .../cloudflare/circl/math/mlsbset/mlsbset.go | 122 + .../cloudflare/circl/math/mlsbset/power.go | 64 + .../github.com/cloudflare/circl/math/wnaf.go | 84 + .../cloudflare/circl/sign/ed25519/ed25519.go | 453 + .../cloudflare/circl/sign/ed25519/modular.go | 175 + .../cloudflare/circl/sign/ed25519/mult.go | 180 + .../cloudflare/circl/sign/ed25519/point.go | 195 + .../cloudflare/circl/sign/ed25519/pubkey.go | 9 + .../circl/sign/ed25519/pubkey112.go | 7 + .../cloudflare/circl/sign/ed25519/signapi.go | 87 + .../cloudflare/circl/sign/ed25519/tables.go | 213 + .../cloudflare/circl/sign/ed448/ed448.go | 411 + .../cloudflare/circl/sign/ed448/signapi.go | 87 + .../github.com/cloudflare/circl/sign/sign.go | 110 + vendor/github.com/fatih/color/README.md | 14 +- vendor/github.com/fatih/color/color.go | 46 +- .../github.com/fatih/color/color_windows.go | 19 + vendor/github.com/fatih/color/doc.go | 137 +- .../golang/protobuf/jsonpb/decode.go | 8 +- vendor/github.com/google/uuid/.travis.yml | 9 - vendor/github.com/google/uuid/CHANGELOG.md | 10 + vendor/github.com/google/uuid/CONTRIBUTING.md | 16 + vendor/github.com/google/uuid/README.md | 10 +- vendor/github.com/google/uuid/node_js.go | 2 +- vendor/github.com/google/uuid/uuid.go | 10 +- vendor/github.com/hashicorp/go-hclog/LICENSE | 4 +- .../hashicorp/go-hclog/colorize_unix.go | 35 +- .../hashicorp/go-hclog/colorize_windows.go | 43 +- .../github.com/hashicorp/go-hclog/context.go | 3 + .../github.com/hashicorp/go-hclog/exclude.go | 3 + .../github.com/hashicorp/go-hclog/global.go | 3 + .../hashicorp/go-hclog/interceptlogger.go | 3 + .../hashicorp/go-hclog/intlogger.go | 31 +- .../github.com/hashicorp/go-hclog/logger.go | 17 + .../hashicorp/go-hclog/nulllogger.go | 3 + .../github.com/hashicorp/go-hclog/stdlog.go | 3 + .../github.com/hashicorp/go-hclog/writer.go | 3 + .../hashicorp/go-plugin/CHANGELOG.md | 46 +- .../github.com/hashicorp/go-plugin/README.md | 5 +- .../github.com/hashicorp/go-plugin/client.go | 298 +- .../hashicorp/go-plugin/constants.go | 9 + .../hashicorp/go-plugin/discover.go | 3 + .../github.com/hashicorp/go-plugin/error.go | 3 + .../hashicorp/go-plugin/grpc_broker.go | 40 +- .../hashicorp/go-plugin/grpc_client.go | 7 +- .../hashicorp/go-plugin/grpc_controller.go | 3 + .../hashicorp/go-plugin/grpc_server.go | 5 +- .../hashicorp/go-plugin/grpc_stdio.go | 3 + .../internal/cmdrunner/addr_translator.go | 16 + .../internal/cmdrunner/cmd_reattach.go | 63 + .../internal/cmdrunner/cmd_runner.go | 129 + .../{ => internal/cmdrunner}/notes_unix.go | 8 +- .../{ => internal/cmdrunner}/notes_windows.go | 8 +- .../go-plugin/internal/cmdrunner/process.go | 25 + .../{ => internal/cmdrunner}/process_posix.go | 5 +- .../cmdrunner}/process_windows.go | 5 +- .../go-plugin/internal/plugin/gen.go | 3 + .../internal/plugin/grpc_broker.pb.go | 2 +- .../internal/plugin/grpc_broker.proto | 3 + .../internal/plugin/grpc_controller.pb.go | 2 +- .../internal/plugin/grpc_controller.proto | 3 + .../internal/plugin/grpc_stdio.pb.go | 2 +- .../internal/plugin/grpc_stdio.proto | 3 + .../hashicorp/go-plugin/log_entry.go | 3 + vendor/github.com/hashicorp/go-plugin/mtls.go | 3 + .../hashicorp/go-plugin/mux_broker.go | 3 + .../github.com/hashicorp/go-plugin/plugin.go | 3 + .../github.com/hashicorp/go-plugin/process.go | 26 +- .../hashicorp/go-plugin/protocol.go | 3 + .../hashicorp/go-plugin/rpc_client.go | 3 + .../hashicorp/go-plugin/rpc_server.go | 3 + .../hashicorp/go-plugin/runner/runner.go | 72 + .../github.com/hashicorp/go-plugin/server.go | 50 +- .../hashicorp/go-plugin/server_mux.go | 3 + .../github.com/hashicorp/go-plugin/stream.go | 3 + .../github.com/hashicorp/go-plugin/testing.go | 5 +- .../hashicorp/hc-install/.copywrite.hcl | 7 + .../hashicorp/hc-install/.go-version | 2 +- .../github.com/hashicorp/hc-install/README.md | 111 +- .../hc-install/checkpoint/latest_version.go | 5 +- .../hashicorp/hc-install/errors/errors.go | 3 + .../hashicorp/hc-install/fs/any_version.go | 3 + .../hashicorp/hc-install/fs/exact_version.go | 3 + .../github.com/hashicorp/hc-install/fs/fs.go | 3 + .../hashicorp/hc-install/fs/fs_unix.go | 3 + .../hashicorp/hc-install/fs/fs_windows.go | 3 + .../hashicorp/hc-install/fs/version.go | 3 + .../hashicorp/hc-install/installer.go | 3 + .../internal/build/get_go_version.go | 3 + .../hc-install/internal/build/go_build.go | 3 + .../internal/build/go_is_installed.go | 3 + .../internal/build/install_go_version.go | 20 +- .../internal/httpclient/httpclient.go | 3 + .../hc-install/internal/pubkey/pubkey.go | 3 + .../releasesjson/checksum_downloader.go | 38 +- .../internal/releasesjson/downloader.go | 82 +- .../internal/releasesjson/product_version.go | 3 + .../internal/releasesjson/releases.go | 23 +- .../hashicorp/hc-install/internal/src/src.go | 3 + .../internal/validators/validators.go | 3 + .../hashicorp/hc-install/product/consul.go | 3 + .../hashicorp/hc-install/product/nomad.go | 54 + .../hashicorp/hc-install/product/product.go | 3 + .../hashicorp/hc-install/product/terraform.go | 3 + .../hashicorp/hc-install/product/vault.go | 3 + .../hc-install/releases/enterprise.go | 38 + .../hc-install/releases/exact_version.go | 40 +- .../hc-install/releases/latest_version.go | 21 +- .../hashicorp/hc-install/releases/releases.go | 3 + .../hashicorp/hc-install/releases/versions.go | 22 + .../hashicorp/hc-install/src/src.go | 3 + .../hashicorp/hc-install/version/VERSION | 2 +- .../hashicorp/hc-install/version/version.go | 9 +- .../github.com/hashicorp/hcl/v2/CHANGELOG.md | 30 + .../hashicorp/hcl/v2/hclsyntax/expression.go | 77 +- .../hcl/v2/hclsyntax/expression_template.go | 32 +- .../hashicorp/hcl/v2/hclsyntax/parser.go | 2 +- .../hcl/v2/hclsyntax/parser_template.go | 2 +- .../hashicorp/hcl/v2/hclsyntax/token.go | 2 +- .../hashicorp/hcl/v2/pos_scanner.go | 2 +- .../internal/version/version.go | 5 +- .../hashicorp/terraform-exec/tfexec/apply.go | 33 + .../hashicorp/terraform-exec/tfexec/cmd.go | 5 +- .../terraform-exec/tfexec/cmd_default.go | 3 + .../terraform-exec/tfexec/cmd_linux.go | 3 + .../terraform-exec/tfexec/destroy.go | 3 + .../hashicorp/terraform-exec/tfexec/doc.go | 3 + .../hashicorp/terraform-exec/tfexec/errors.go | 3 + .../hashicorp/terraform-exec/tfexec/fmt.go | 3 + .../terraform-exec/tfexec/force_unlock.go | 3 + .../hashicorp/terraform-exec/tfexec/get.go | 3 + .../hashicorp/terraform-exec/tfexec/graph.go | 3 + .../hashicorp/terraform-exec/tfexec/import.go | 3 + .../hashicorp/terraform-exec/tfexec/init.go | 3 + .../tfexec/metadata_functions.go | 3 + .../terraform-exec/tfexec/options.go | 20 + .../hashicorp/terraform-exec/tfexec/output.go | 3 + .../hashicorp/terraform-exec/tfexec/plan.go | 19 + .../terraform-exec/tfexec/providers_lock.go | 3 + .../terraform-exec/tfexec/providers_schema.go | 3 + .../terraform-exec/tfexec/refresh.go | 3 + .../hashicorp/terraform-exec/tfexec/show.go | 3 + .../terraform-exec/tfexec/state_mv.go | 3 + .../terraform-exec/tfexec/state_pull.go | 3 + .../terraform-exec/tfexec/state_push.go | 3 + .../terraform-exec/tfexec/state_rm.go | 3 + .../hashicorp/terraform-exec/tfexec/taint.go | 3 + .../terraform-exec/tfexec/terraform.go | 3 + .../hashicorp/terraform-exec/tfexec/test.go | 66 + .../terraform-exec/tfexec/untaint.go | 3 + .../terraform-exec/tfexec/upgrade012.go | 3 + .../terraform-exec/tfexec/upgrade013.go | 3 + .../terraform-exec/tfexec/validate.go | 3 + .../terraform-exec/tfexec/version.go | 5 + .../terraform-exec/tfexec/workspace_delete.go | 3 + .../terraform-exec/tfexec/workspace_list.go | 3 + .../terraform-exec/tfexec/workspace_new.go | 3 + .../terraform-exec/tfexec/workspace_select.go | 3 + .../terraform-exec/tfexec/workspace_show.go | 3 + .../hashicorp/terraform-json/.copywrite.hcl | 13 + .../hashicorp/terraform-json/action.go | 3 + .../hashicorp/terraform-json/checks.go | 145 + .../hashicorp/terraform-json/config.go | 3 + .../hashicorp/terraform-json/expression.go | 3 + .../hashicorp/terraform-json/metadata.go | 3 + .../hashicorp/terraform-json/plan.go | 33 + .../hashicorp/terraform-json/schemas.go | 3 + .../hashicorp/terraform-json/state.go | 7 + .../hashicorp/terraform-json/tfjson.go | 3 + .../hashicorp/terraform-json/validate.go | 3 + .../hashicorp/terraform-json/version.go | 3 + .../internal/logging/context.go | 3 + .../internal/logging/doc.go | 3 + .../internal/logging/environment_variables.go | 3 + .../internal/logging/keys.go | 9 + .../internal/logging/protocol.go | 3 + .../internal/logging/protocol_data.go | 3 + .../internal/logging/provider.go | 3 + .../tfprotov5/data_source.go | 10 + .../tfprotov5/diagnostic.go | 3 + .../terraform-plugin-go/tfprotov5/doc.go | 3 + .../tfprotov5/dynamic_value.go | 47 +- .../tfprotov5/internal/diag/diagnostics.go | 3 + .../tfprotov5/internal/diag/doc.go | 3 + .../internal/fromproto/attribute_path.go | 3 + .../internal/fromproto/data_source.go | 13 + .../internal/fromproto/diagnostic.go | 3 + .../tfprotov5/internal/fromproto/provider.go | 37 + .../tfprotov5/internal/fromproto/resource.go | 13 + .../tfprotov5/internal/fromproto/schema.go | 3 + .../internal/fromproto/server_capabilities.go | 20 + .../tfprotov5/internal/fromproto/state.go | 3 + .../internal/fromproto/string_kind.go | 3 + .../tfprotov5/internal/fromproto/types.go | 3 + .../internal/tf5serverlogging/context_keys.go | 3 + .../internal/tf5serverlogging/doc.go | 3 + .../tf5serverlogging/downstream_request.go | 3 + .../tf5serverlogging/server_capabilities.go | 26 + .../internal/tfplugin5/tfplugin5.pb.go | 1947 ++-- .../internal/tfplugin5/tfplugin5.proto | 66 +- .../internal/tfplugin5/tfplugin5_grpc.pb.go | 175 +- .../tfprotov5/internal/toproto/data_source.go | 10 + .../tfprotov5/internal/toproto/provider.go | 36 +- .../tfprotov5/internal/toproto/resource.go | 10 + .../internal/toproto/server_capabilities.go | 10 +- .../terraform-plugin-go/tfprotov5/provider.go | 31 + .../terraform-plugin-go/tfprotov5/resource.go | 10 + .../terraform-plugin-go/tfprotov5/schema.go | 3 + .../tfprotov5/server_capabilities.go | 8 + .../terraform-plugin-go/tfprotov5/state.go | 3 + .../tfprotov5/string_kind.go | 3 + .../tfprotov5/tf5server/doc.go | 3 + .../tfprotov5/tf5server/plugin.go | 3 + .../tfprotov5/tf5server/server.go | 43 +- .../tfprotov6/data_source.go | 10 + .../tfprotov6/diagnostic.go | 3 + .../terraform-plugin-go/tfprotov6/doc.go | 3 + .../tfprotov6/dynamic_value.go | 47 +- .../tfprotov6/internal/diag/diagnostics.go | 3 + .../tfprotov6/internal/diag/doc.go | 3 + .../internal/fromproto/attribute_path.go | 3 + .../internal/fromproto/data_source.go | 13 + .../internal/fromproto/diagnostic.go | 3 + .../tfprotov6/internal/fromproto/provider.go | 37 + .../tfprotov6/internal/fromproto/resource.go | 13 + .../tfprotov6/internal/fromproto/schema.go | 3 + .../internal/fromproto/server_capabilities.go | 20 + .../tfprotov6/internal/fromproto/state.go | 3 + .../internal/fromproto/string_kind.go | 3 + .../tfprotov6/internal/fromproto/types.go | 3 + .../internal/tf6serverlogging/context_keys.go | 3 + .../internal/tf6serverlogging/doc.go | 3 + .../tf6serverlogging/downstream_request.go | 3 + .../tf6serverlogging/server_capabilities.go | 26 + .../internal/tfplugin6/tfplugin6.pb.go | 1707 +-- .../internal/tfplugin6/tfplugin6.proto | 64 +- .../internal/tfplugin6/tfplugin6_grpc.pb.go | 154 +- .../tfprotov6/internal/toproto/data_source.go | 10 + .../tfprotov6/internal/toproto/provider.go | 36 +- .../tfprotov6/internal/toproto/resource.go | 10 + .../internal/toproto/server_capabilities.go | 10 +- .../terraform-plugin-go/tfprotov6/provider.go | 31 + .../terraform-plugin-go/tfprotov6/resource.go | 10 + .../terraform-plugin-go/tfprotov6/schema.go | 3 + .../tfprotov6/server_capabilities.go | 8 + .../terraform-plugin-go/tfprotov6/state.go | 3 + .../tfprotov6/string_kind.go | 3 + .../tfprotov6/tf6server/doc.go | 3 + .../tfprotov6/tf6server/plugin.go | 3 + .../tfprotov6/tf6server/server.go | 45 +- .../tftypes/attribute_path.go | 114 +- .../tftypes/attribute_path_error.go | 3 + .../terraform-plugin-go/tftypes/diff.go | 9 +- .../terraform-plugin-go/tftypes/doc.go | 3 + .../terraform-plugin-go/tftypes/list.go | 3 + .../terraform-plugin-go/tftypes/map.go | 3 + .../terraform-plugin-go/tftypes/object.go | 3 + .../terraform-plugin-go/tftypes/primitive.go | 3 + .../terraform-plugin-go/tftypes/set.go | 3 + .../terraform-plugin-go/tftypes/tuple.go | 3 + .../terraform-plugin-go/tftypes/type.go | 3 + .../tftypes/unknown_value.go | 3 + .../terraform-plugin-go/tftypes/value.go | 130 +- .../tftypes/value_equal.go | 213 + .../terraform-plugin-go/tftypes/value_json.go | 8 + .../tftypes/value_msgpack.go | 47 +- .../terraform-plugin-go/tftypes/value_walk.go | 33 + .../terraform-plugin-go/tftypes/walk.go | 352 +- .../terraform-plugin-log/tfsdklog/levels.go | 81 + .../terraform-plugin-log/tfsdklog/sdk.go | 8 + .../tfsdklog/subsystem.go | 27 + .../v2/diag/diagnostic.go | 3 + .../terraform-plugin-sdk/v2/diag/helpers.go | 3 + .../v2/helper/customdiff/compose.go | 3 + .../v2/helper/customdiff/computed.go | 3 + .../v2/helper/customdiff/condition.go | 3 + .../v2/helper/customdiff/doc.go | 3 + .../v2/helper/customdiff/force_new.go | 3 + .../v2/helper/customdiff/validate.go | 3 + .../v2/helper/logging/logging.go | 3 + .../helper/logging/logging_http_transport.go | 3 + .../v2/helper/logging/transport.go | 3 + .../v2/helper/schema/context.go | 3 + .../v2/helper/schema/core_schema.go | 5 +- .../schema/data_source_resource_shim.go | 3 + .../v2/helper/schema/equal.go | 3 + .../v2/helper/schema/field_reader.go | 5 +- .../v2/helper/schema/field_reader_config.go | 5 +- .../v2/helper/schema/field_reader_diff.go | 3 + .../v2/helper/schema/field_reader_map.go | 3 + .../v2/helper/schema/field_reader_multi.go | 3 + .../v2/helper/schema/field_writer.go | 3 + .../v2/helper/schema/field_writer_map.go | 3 + .../v2/helper/schema/grpc_provider.go | 64 +- .../v2/helper/schema/json.go | 3 + .../v2/helper/schema/provider.go | 3 + .../v2/helper/schema/resource.go | 117 +- .../v2/helper/schema/resource_data.go | 3 + .../helper/schema/resource_data_get_source.go | 3 + .../v2/helper/schema/resource_diff.go | 3 + .../v2/helper/schema/resource_importer.go | 3 + .../v2/helper/schema/resource_timeout.go | 3 + .../v2/helper/schema/schema.go | 17 +- .../v2/helper/schema/serialize.go | 5 +- .../v2/helper/schema/set.go | 3 + .../v2/helper/schema/shims.go | 5 +- .../v2/helper/schema/testing.go | 3 + .../v2/helper/schema/unknown.go | 3 + .../v2/helper/schema/valuetype.go | 3 + .../v2/helper/structure/expand_json.go | 3 + .../v2/helper/structure/flatten_json.go | 3 + .../v2/helper/structure/normalize_json.go | 3 + .../v2/helper/structure/suppress_json_diff.go | 3 + .../v2/helper/validation/float.go | 3 + .../v2/helper/validation/int.go | 3 + .../v2/helper/validation/list.go | 3 + .../v2/helper/validation/map.go | 3 + .../v2/helper/validation/meta.go | 31 + .../v2/helper/validation/network.go | 5 +- .../v2/helper/validation/strings.go | 5 +- .../v2/helper/validation/testing.go | 59 +- .../v2/helper/validation/time.go | 3 + .../v2/helper/validation/uuid.go | 3 + .../v2/helper/validation/web.go | 3 + .../v2/internal/addrs/doc.go | 3 + .../v2/internal/addrs/instance_key.go | 3 + .../v2/internal/addrs/module.go | 3 + .../v2/internal/addrs/module_instance.go | 3 + .../configs/configschema/coerce_value.go | 3 + .../v2/internal/configs/configschema/doc.go | 3 + .../configs/configschema/empty_value.go | 3 + .../configs/configschema/implied_type.go | 3 + .../internal/configs/configschema/schema.go | 3 + .../v2/internal/configs/hcl2shim/flatmap.go | 3 + .../v2/internal/configs/hcl2shim/paths.go | 3 + .../v2/internal/configs/hcl2shim/values.go | 3 + .../internal/configs/hcl2shim/values_equiv.go | 3 + .../v2/internal/helper/hashcode/hashcode.go | 3 + .../v2/internal/logging/context.go | 3 + .../internal/logging/environment_variables.go | 3 + .../v2/internal/logging/helper_resource.go | 3 + .../v2/internal/logging/helper_schema.go | 3 + .../v2/internal/logging/keys.go | 3 + .../internal/plans/objchange/normalize_obj.go | 3 + .../v2/internal/plugin/convert/diagnostics.go | 3 + .../v2/internal/plugin/convert/schema.go | 3 + .../v2/internal/tfdiags/config_traversals.go | 3 + .../v2/internal/tfdiags/contextual.go | 3 + .../v2/internal/tfdiags/diagnostic.go | 3 + .../v2/internal/tfdiags/diagnostic_base.go | 3 + .../v2/internal/tfdiags/diagnostics.go | 3 + .../v2/internal/tfdiags/doc.go | 3 + .../v2/internal/tfdiags/error.go | 3 + .../v2/internal/tfdiags/simple_warning.go | 3 + .../terraform-plugin-sdk/v2/meta/meta.go | 3 + .../terraform-plugin-sdk/v2/plugin/debug.go | 3 + .../terraform-plugin-sdk/v2/plugin/serve.go | 3 + .../terraform-plugin-sdk/v2/terraform/diff.go | 3 + .../v2/terraform/instancetype.go | 3 + .../v2/terraform/resource.go | 3 + .../v2/terraform/resource_address.go | 3 + .../v2/terraform/resource_mode.go | 3 + .../v2/terraform/resource_provider.go | 3 + .../v2/terraform/schemas.go | 3 + .../v2/terraform/state.go | 3 + .../v2/terraform/state_filter.go | 3 + .../terraform-plugin-sdk/v2/terraform/util.go | 3 + .../terraform-plugin-testing/config/config.go | 38 + .../config/directory.go | 63 + .../terraform-plugin-testing/config/doc.go | 6 + .../terraform-plugin-testing/config/file.go | 63 + .../config/variable.go | 326 + .../helper/acctest/random.go | 10 + .../helper/resource/error.go | 38 + .../helper/resource/id.go | 14 + .../helper/resource/plan_checks.go | 32 + .../helper/resource/state.go | 11 +- .../helper/resource/state_shim.go | 34 +- .../helper/resource/testcase_validate.go | 32 +- .../helper/resource/testing.go | 208 +- .../helper/resource/testing_new.go | 222 +- .../helper/resource/testing_new_config.go | 97 +- .../resource/testing_new_import_state.go | 54 +- .../resource/testing_new_refresh_state.go | 12 +- .../helper/resource/teststep_providers.go | 28 +- .../helper/resource/teststep_validate.go | 139 +- .../helper/resource/tfversion_checks.go | 31 + .../helper/resource/wait.go | 19 + .../internal/addrs/instance_key.go | 2 +- .../configs/configschema/empty_value.go | 4 +- .../internal/configs/configschema/schema.go | 2 +- .../internal/errorshim/error_join_shim.go | 47 + .../plugintest/environment_variables.go | 8 + .../internal/plugintest/helper.go | 39 +- .../internal/plugintest/util.go | 116 + .../internal/plugintest/working_dir.go | 77 +- .../internal/teststep/config.go | 241 + .../internal/teststep/directory.go | 94 + .../internal/teststep/file.go | 94 + .../internal/teststep/string.go | 61 + .../terraform-plugin-testing/plancheck/doc.go | 5 + .../plancheck/expect_empty_plan.go | 36 + .../plancheck/expect_non_empty_plan.go | 29 + .../plancheck/expect_resource_action.go | 90 + .../plancheck/expect_sensitive_value.go | 61 + .../plancheck/expect_unknown_value.go | 61 + .../plancheck/plan_check.go | 30 + .../plancheck/resource_action.go | 50 + .../terraform/diff.go | 62 +- .../terraform/resource.go | 38 +- .../terraform/resource_provider.go | 8 + .../terraform/schemas.go | 8 + .../terraform/state.go | 187 +- .../tfjsonpath/doc.go | 6 + .../tfjsonpath/path.go | 107 + .../tfjsonpath/step.go | 14 + .../terraform-plugin-testing/tfversion/all.go | 45 + .../terraform-plugin-testing/tfversion/any.go | 59 + .../terraform-plugin-testing/tfversion/doc.go | 5 + .../tfversion/require_above.go | 35 + .../tfversion/require_below.go | 35 + .../tfversion/require_between.go | 38 + .../tfversion/require_not.go | 32 + .../tfversion/skip_above.go | 35 + .../tfversion/skip_below.go | 35 + .../tfversion/skip_between.go | 38 + .../tfversion/skip_if.go | 32 + .../tfversion/version_check.go | 39 + .../tfversion/versions.go | 32 + .../terraform-registry-address/.copywrite.hcl | 7 + .../terraform-registry-address/.go-version | 2 +- .../terraform-registry-address/errors.go | 3 + .../terraform-registry-address/module.go | 3 + .../module_package.go | 3 + .../terraform-registry-address/provider.go | 3 + .../hashicorp/terraform-svchost/CHANGELOG.md | 13 + .../terraform-svchost/CONTRIBUTING.md | 3 + .../hashicorp/terraform-svchost/LICENSE | 2 + .../hashicorp/terraform-svchost/README.md | 9 + .../hashicorp/terraform-svchost/label_iter.go | 2 + .../hashicorp/terraform-svchost/svchost.go | 14 + vendor/github.com/hashicorp/yamux/const.go | 27 +- vendor/github.com/hashicorp/yamux/mux.go | 8 + vendor/github.com/hashicorp/yamux/session.go | 139 +- vendor/github.com/hashicorp/yamux/stream.go | 37 +- .../github.com/mattn/go-isatty/isatty_bsd.go | 4 +- .../rickb777/date/period/arithmetic.go | 106 + .../rickb777/date/period/designator.go | 55 + vendor/github.com/rickb777/date/period/doc.go | 4 +- .../github.com/rickb777/date/period/flag.go | 16 + .../github.com/rickb777/date/period/format.go | 83 +- .../rickb777/date/period/marshal.go | 6 +- .../github.com/rickb777/date/period/parse.go | 255 +- .../github.com/rickb777/date/period/period.go | 433 +- .../rickb777/date/period/period64.go | 142 + vendor/github.com/rickb777/date/period/sql.go | 36 + vendor/github.com/rickb777/plural/README.md | 2 +- .../github.com/rickb777/plural/build+test.sh | 10 +- .../vmihailenco/msgpack/v4/.golangci.yml | 12 - .../vmihailenco/msgpack/v4/README.md | 72 - .../vmihailenco/msgpack/v4/appengine.go | 64 - .../vmihailenco/msgpack/v4/codes/codes.go | 90 - .../github.com/vmihailenco/msgpack/v4/ext.go | 244 - .../vmihailenco/msgpack/v4/intern.go | 236 - .../vmihailenco/msgpack/v4/msgpack.go | 17 - .../vmihailenco/msgpack/v5/.prettierrc | 4 + .../msgpack/{v4 => v5}/.travis.yml | 9 +- .../msgpack/{v4 => v5}/CHANGELOG.md | 37 +- .../vmihailenco/msgpack/{v4 => v5}/LICENSE | 0 .../vmihailenco/msgpack/{v4 => v5}/Makefile | 4 +- .../vmihailenco/msgpack/v5/README.md | 86 + .../msgpack/v5/commitlint.config.js | 1 + .../vmihailenco/msgpack/{v4 => v5}/decode.go | 288 +- .../msgpack/{v4 => v5}/decode_map.go | 239 +- .../msgpack/{v4 => v5}/decode_number.go | 66 +- .../msgpack/{v4 => v5}/decode_query.go | 10 +- .../msgpack/{v4 => v5}/decode_slice.go | 18 +- .../msgpack/{v4 => v5}/decode_string.go | 60 +- .../msgpack/{v4 => v5}/decode_value.go | 164 +- .../vmihailenco/msgpack/{v4 => v5}/encode.go | 148 +- .../msgpack/{v4 => v5}/encode_map.go | 67 +- .../msgpack/{v4 => v5}/encode_number.go | 48 +- .../msgpack/{v4 => v5}/encode_slice.go | 44 +- .../msgpack/{v4 => v5}/encode_value.go | 47 +- .../github.com/vmihailenco/msgpack/v5/ext.go | 303 + .../vmihailenco/msgpack/v5/intern.go | 238 + .../vmihailenco/msgpack/v5/msgpack.go | 52 + .../msgpack/v5/msgpcode/msgpcode.go | 88 + .../vmihailenco/msgpack/v5/package.json | 4 + .../vmihailenco/msgpack/{v4 => v5}/safe.go | 0 .../vmihailenco/msgpack/{v4 => v5}/time.go | 122 +- .../vmihailenco/msgpack/{v4 => v5}/types.go | 125 +- .../vmihailenco/msgpack/{v4 => v5}/unsafe.go | 2 +- .../vmihailenco/msgpack/v5/version.go | 6 + .../tagparser/{ => v2}/.travis.yml | 9 +- .../vmihailenco/tagparser/{ => v2}/LICENSE | 0 .../vmihailenco/tagparser/{ => v2}/Makefile | 1 + .../vmihailenco/tagparser/{ => v2}/README.md | 2 +- .../{ => v2}/internal/parser/parser.go | 2 +- .../tagparser/{ => v2}/internal/safe.go | 0 .../tagparser/{ => v2}/internal/unsafe.go | 0 .../tagparser/{ => v2}/tagparser.go | 26 +- .../zclconf/go-cty/cty/ctystrings/prefix.go | 6 +- .../go-cty/cty/function/stdlib/format.go | 2 +- .../go-cty/cty/function/stdlib/string.go | 2 +- vendor/github.com/zclconf/go-cty/cty/path.go | 4 +- vendor/golang.org/x/crypto/argon2/argon2.go | 283 + vendor/golang.org/x/crypto/argon2/blake2b.go | 53 + .../x/crypto/argon2/blamka_amd64.go | 61 + .../golang.org/x/crypto/argon2/blamka_amd64.s | 244 + .../x/crypto/argon2/blamka_generic.go | 163 + .../golang.org/x/crypto/argon2/blamka_ref.go | 16 + vendor/golang.org/x/crypto/blake2b/blake2b.go | 291 + .../x/crypto/blake2b/blake2bAVX2_amd64.go | 38 + .../x/crypto/blake2b/blake2bAVX2_amd64.s | 745 ++ .../x/crypto/blake2b/blake2b_amd64.go | 25 + .../x/crypto/blake2b/blake2b_amd64.s | 279 + .../x/crypto/blake2b/blake2b_generic.go | 182 + .../x/crypto/blake2b/blake2b_ref.go | 12 + vendor/golang.org/x/crypto/blake2b/blake2x.go | 177 + .../golang.org/x/crypto/blake2b/register.go | 33 + vendor/golang.org/x/crypto/hkdf/hkdf.go | 93 + vendor/golang.org/x/crypto/openpgp/keys.go | 693 -- .../x/crypto/openpgp/packet/config.go | 91 - .../x/crypto/openpgp/packet/private_key.go | 384 - .../x/crypto/openpgp/packet/public_key.go | 753 -- .../x/crypto/openpgp/packet/public_key_v3.go | 279 - .../x/crypto/openpgp/packet/signature_v3.go | 146 - .../openpgp/packet/symmetric_key_encrypted.go | 155 - vendor/golang.org/x/crypto/openpgp/s2k/s2k.go | 279 - vendor/golang.org/x/crypto/sha3/doc.go | 62 + vendor/golang.org/x/crypto/sha3/hashes.go | 97 + .../x/crypto/sha3/hashes_generic.go | 28 + vendor/golang.org/x/crypto/sha3/keccakf.go | 415 + .../golang.org/x/crypto/sha3/keccakf_amd64.go | 14 + .../golang.org/x/crypto/sha3/keccakf_amd64.s | 391 + vendor/golang.org/x/crypto/sha3/register.go | 19 + vendor/golang.org/x/crypto/sha3/sha3.go | 193 + vendor/golang.org/x/crypto/sha3/sha3_s390x.go | 287 + vendor/golang.org/x/crypto/sha3/sha3_s390x.s | 34 + vendor/golang.org/x/crypto/sha3/shake.go | 173 + .../golang.org/x/crypto/sha3/shake_generic.go | 20 + vendor/golang.org/x/crypto/sha3/xor.go | 24 + .../golang.org/x/crypto/sha3/xor_generic.go | 28 + .../golang.org/x/crypto/sha3/xor_unaligned.go | 68 + vendor/golang.org/x/crypto/ssh/common.go | 51 +- vendor/golang.org/x/crypto/ssh/kex.go | 12 + vendor/golang.org/x/crypto/ssh/mac.go | 7 + vendor/golang.org/x/crypto/ssh/server.go | 21 +- vendor/golang.org/x/exp/LICENSE | 27 + vendor/golang.org/x/exp/PATENTS | 22 + .../x/exp/constraints/constraints.go | 50 + .../x/mod/internal/lazyregexp/lazyre.go | 2 +- vendor/golang.org/x/mod/modfile/print.go | 14 +- vendor/golang.org/x/mod/modfile/read.go | 2 +- vendor/golang.org/x/mod/modfile/rule.go | 142 +- vendor/golang.org/x/mod/modfile/work.go | 65 +- vendor/golang.org/x/mod/module/module.go | 30 +- vendor/golang.org/x/mod/module/pseudo.go | 2 +- vendor/golang.org/x/mod/semver/semver.go | 6 +- .../x/net/context/ctxhttp/ctxhttp.go | 71 - vendor/golang.org/x/net/http2/Dockerfile | 51 - vendor/golang.org/x/net/http2/Makefile | 3 - vendor/golang.org/x/net/http2/server.go | 17 +- vendor/golang.org/x/net/http2/transport.go | 82 +- vendor/golang.org/x/net/http2/writesched.go | 3 +- .../x/net/http2/writesched_roundrobin.go | 119 + vendor/golang.org/x/net/idna/idna9.0.0.go | 2 +- vendor/golang.org/x/net/idna/tables13.0.0.go | 2988 +++--- vendor/golang.org/x/net/idna/tables15.0.0.go | 5145 +++++++++ vendor/golang.org/x/net/idna/trie.go | 21 - vendor/golang.org/x/net/idna/trie12.0.0.go | 31 + vendor/golang.org/x/net/idna/trie13.0.0.go | 31 + vendor/golang.org/x/oauth2/README.md | 12 +- .../x/oauth2/internal/client_appengine.go | 1 - vendor/golang.org/x/oauth2/internal/oauth2.go | 2 +- vendor/golang.org/x/oauth2/internal/token.go | 134 +- vendor/golang.org/x/oauth2/oauth2.go | 37 +- vendor/golang.org/x/oauth2/token.go | 35 +- vendor/golang.org/x/sys/cpu/cpu.go | 5 +- vendor/golang.org/x/sys/cpu/cpu_x86.go | 7 + vendor/golang.org/x/sys/cpu/endian_little.go | 4 +- .../sys/internal/unsafeheader/unsafeheader.go | 30 + vendor/golang.org/x/sys/unix/mkall.sh | 2 +- vendor/golang.org/x/sys/unix/mkerrors.sh | 11 +- vendor/golang.org/x/sys/unix/mmap_nomremap.go | 14 + vendor/golang.org/x/sys/unix/mremap.go | 53 + vendor/golang.org/x/sys/unix/syscall_aix.go | 15 - vendor/golang.org/x/sys/unix/syscall_bsd.go | 14 - .../golang.org/x/sys/unix/syscall_darwin.go | 50 +- vendor/golang.org/x/sys/unix/syscall_linux.go | 111 +- .../x/sys/unix/syscall_linux_amd64.go | 2 +- .../x/sys/unix/syscall_linux_arm64.go | 2 +- .../x/sys/unix/syscall_linux_loong64.go | 2 +- .../x/sys/unix/syscall_linux_mips64x.go | 2 +- .../x/sys/unix/syscall_linux_riscv64.go | 13 +- .../golang.org/x/sys/unix/syscall_netbsd.go | 13 +- .../golang.org/x/sys/unix/syscall_openbsd.go | 17 +- .../golang.org/x/sys/unix/syscall_solaris.go | 14 - vendor/golang.org/x/sys/unix/syscall_unix.go | 11 + .../x/sys/unix/syscall_zos_s390x.go | 14 - vendor/golang.org/x/sys/unix/zerrors_linux.go | 43 +- .../x/sys/unix/zerrors_linux_386.go | 9 + .../x/sys/unix/zerrors_linux_amd64.go | 9 + .../x/sys/unix/zerrors_linux_arm.go | 9 + .../x/sys/unix/zerrors_linux_arm64.go | 11 + .../x/sys/unix/zerrors_linux_loong64.go | 9 + .../x/sys/unix/zerrors_linux_mips.go | 9 + .../x/sys/unix/zerrors_linux_mips64.go | 9 + .../x/sys/unix/zerrors_linux_mips64le.go | 9 + .../x/sys/unix/zerrors_linux_mipsle.go | 9 + .../x/sys/unix/zerrors_linux_ppc.go | 9 + .../x/sys/unix/zerrors_linux_ppc64.go | 9 + .../x/sys/unix/zerrors_linux_ppc64le.go | 9 + .../x/sys/unix/zerrors_linux_riscv64.go | 9 + .../x/sys/unix/zerrors_linux_s390x.go | 9 + .../x/sys/unix/zerrors_linux_sparc64.go | 57 + .../golang.org/x/sys/unix/zsyscall_linux.go | 47 +- .../x/sys/unix/zsyscall_linux_riscv64.go | 16 + .../x/sys/unix/zsyscall_netbsd_386.go | 11 + .../x/sys/unix/zsyscall_netbsd_amd64.go | 11 + .../x/sys/unix/zsyscall_netbsd_arm.go | 11 + .../x/sys/unix/zsyscall_netbsd_arm64.go | 11 + .../x/sys/unix/zsyscall_openbsd_386.go | 22 + .../x/sys/unix/zsyscall_openbsd_386.s | 10 + .../x/sys/unix/zsyscall_openbsd_amd64.go | 32 +- .../x/sys/unix/zsyscall_openbsd_amd64.s | 10 + .../x/sys/unix/zsyscall_openbsd_arm.go | 22 + .../x/sys/unix/zsyscall_openbsd_arm.s | 10 + .../x/sys/unix/zsyscall_openbsd_arm64.go | 22 + .../x/sys/unix/zsyscall_openbsd_arm64.s | 10 + .../x/sys/unix/zsyscall_openbsd_mips64.go | 22 + .../x/sys/unix/zsyscall_openbsd_mips64.s | 10 + .../x/sys/unix/zsyscall_openbsd_ppc64.go | 22 + .../x/sys/unix/zsyscall_openbsd_ppc64.s | 12 + .../x/sys/unix/zsyscall_openbsd_riscv64.go | 22 + .../x/sys/unix/zsyscall_openbsd_riscv64.s | 10 + .../x/sys/unix/zsysnum_linux_riscv64.go | 2 + .../x/sys/unix/zsysnum_linux_s390x.go | 1 + vendor/golang.org/x/sys/unix/ztypes_linux.go | 101 +- .../golang.org/x/sys/unix/ztypes_linux_386.go | 2 + .../x/sys/unix/ztypes_linux_amd64.go | 2 + .../golang.org/x/sys/unix/ztypes_linux_arm.go | 2 + .../x/sys/unix/ztypes_linux_arm64.go | 2 + .../x/sys/unix/ztypes_linux_loong64.go | 2 + .../x/sys/unix/ztypes_linux_mips.go | 2 + .../x/sys/unix/ztypes_linux_mips64.go | 2 + .../x/sys/unix/ztypes_linux_mips64le.go | 2 + .../x/sys/unix/ztypes_linux_mipsle.go | 2 + .../golang.org/x/sys/unix/ztypes_linux_ppc.go | 2 + .../x/sys/unix/ztypes_linux_ppc64.go | 2 + .../x/sys/unix/ztypes_linux_ppc64le.go | 2 + .../x/sys/unix/ztypes_linux_riscv64.go | 25 + .../x/sys/unix/ztypes_linux_s390x.go | 2 + .../x/sys/unix/ztypes_linux_sparc64.go | 2 + vendor/golang.org/x/sys/windows/aliases.go | 13 + .../golang.org/x/sys/windows/dll_windows.go | 416 + vendor/golang.org/x/sys/windows/empty.s | 9 + .../golang.org/x/sys/windows/env_windows.go | 54 + vendor/golang.org/x/sys/windows/eventlog.go | 21 + .../golang.org/x/sys/windows/exec_windows.go | 183 + .../x/sys/windows/memory_windows.go | 48 + vendor/golang.org/x/sys/windows/mkerrors.bash | 70 + .../x/sys/windows/mkknownfolderids.bash | 27 + vendor/golang.org/x/sys/windows/mksyscall.go | 10 + vendor/golang.org/x/sys/windows/race.go | 31 + vendor/golang.org/x/sys/windows/race0.go | 26 + .../x/sys/windows/security_windows.go | 1444 +++ vendor/golang.org/x/sys/windows/service.go | 258 + .../x/sys/windows/setupapi_windows.go | 1425 +++ vendor/golang.org/x/sys/windows/str.go | 23 + vendor/golang.org/x/sys/windows/syscall.go | 105 + .../x/sys/windows/syscall_windows.go | 1828 ++++ .../golang.org/x/sys/windows/types_windows.go | 3349 ++++++ .../x/sys/windows/types_windows_386.go | 35 + .../x/sys/windows/types_windows_amd64.go | 34 + .../x/sys/windows/types_windows_arm.go | 35 + .../x/sys/windows/types_windows_arm64.go | 34 + .../x/sys/windows/zerrors_windows.go | 9468 +++++++++++++++++ .../x/sys/windows/zknownfolderids_windows.go | 149 + .../x/sys/windows/zsyscall_windows.go | 4357 ++++++++ .../x/text/unicode/bidi/tables13.0.0.go | 4 +- .../x/text/unicode/bidi/tables15.0.0.go | 2043 ++++ .../x/text/unicode/norm/tables13.0.0.go | 4 +- .../x/text/unicode/norm/tables15.0.0.go | 7908 ++++++++++++++ vendor/golang.org/x/text/unicode/norm/trie.go | 2 +- .../x/tools/go/gcexportdata/gcexportdata.go | 11 +- .../tools/go/internal/packagesdriver/sizes.go | 11 +- .../golang.org/x/tools/go/packages/golist.go | 35 +- .../x/tools/go/packages/packages.go | 16 +- .../x/tools/go/types/objectpath/objectpath.go | 827 ++ .../x/tools/internal/event/tag/tag.go | 59 + .../x/tools/internal/fastwalk/fastwalk.go | 16 +- .../x/tools/internal/gcimporter/bexport.go | 852 -- .../x/tools/internal/gcimporter/bimport.go | 907 +- .../x/tools/internal/gcimporter/gcimporter.go | 27 +- .../x/tools/internal/gcimporter/iexport.go | 198 +- .../x/tools/internal/gcimporter/iimport.go | 189 +- .../tools/internal/gcimporter/ureader_yes.go | 50 +- .../x/tools/internal/gocommand/invoke.go | 146 +- .../x/tools/internal/gocommand/version.go | 18 +- .../x/tools/internal/gopathwalk/walk.go | 20 +- .../x/tools/internal/imports/fix.go | 40 +- .../x/tools/internal/imports/imports.go | 9 +- .../x/tools/internal/imports/mod.go | 12 +- .../x/tools/internal/imports/mod_cache.go | 2 +- .../x/tools/internal/imports/zstdlib.go | 230 + .../internal/tokeninternal/tokeninternal.go | 92 + .../x/tools/internal/typeparams/common.go | 27 +- .../x/tools/internal/typeparams/coretype.go | 8 +- .../x/tools/internal/typeparams/termlist.go | 2 +- .../internal/typeparams/typeparams_go117.go | 2 +- .../internal/typeparams/typeparams_go118.go | 2 +- .../x/tools/internal/typeparams/typeterm.go | 9 +- .../internal/typesinternal/objectpath.go | 24 + .../google.golang.org/appengine/.travis.yml | 18 - .../appengine/CONTRIBUTING.md | 6 +- vendor/google.golang.org/appengine/README.md | 6 +- .../google.golang.org/appengine/appengine.go | 23 +- .../appengine/appengine_vm.go | 12 +- .../appengine/datastore/datastore.go | 2 +- .../appengine/datastore/doc.go | 21 +- .../appengine/datastore/key.go | 2 +- .../appengine/datastore/keycompat.go | 3 +- .../appengine/datastore/metadata.go | 17 +- .../appengine/datastore/query.go | 6 +- .../appengine/datastore/transaction.go | 3 +- .../google.golang.org/appengine/identity.go | 3 +- .../appengine/internal/api.go | 347 +- .../appengine/internal/api_classic.go | 29 +- .../appengine/internal/api_common.go | 50 +- .../appengine/internal/identity.go | 7 +- .../appengine/internal/identity_classic.go | 23 +- .../appengine/internal/identity_flex.go | 1 + .../appengine/internal/identity_vm.go | 20 +- .../appengine/internal/main.go | 1 + .../appengine/internal/main_vm.go | 3 +- .../appengine/internal/transaction.go | 10 +- .../google.golang.org/appengine/namespace.go | 3 +- vendor/google.golang.org/appengine/timeout.go | 2 +- .../appengine/travis_install.sh | 18 - .../appengine/travis_test.sh | 12 - .../appengine/urlfetch/urlfetch.go | 9 +- .../genproto/{ => googleapis/rpc}/LICENSE | 0 vendor/google.golang.org/grpc/CONTRIBUTING.md | 25 +- vendor/google.golang.org/grpc/README.md | 58 +- .../grpc/attributes/attributes.go | 72 +- .../grpc/balancer/balancer.go | 49 +- .../grpc/balancer/base/balancer.go | 22 +- .../grpc/balancer_conn_wrappers.go | 491 +- .../grpc_binarylog_v1/binarylog.pb.go | 4 +- vendor/google.golang.org/grpc/call.go | 11 +- vendor/google.golang.org/grpc/clientconn.go | 815 +- vendor/google.golang.org/grpc/codec.go | 8 +- .../grpc/codes/code_string.go | 51 +- vendor/google.golang.org/grpc/dialoptions.go | 84 +- .../grpc/encoding/encoding.go | 4 +- .../grpc/encoding/proto/proto.go | 4 +- .../grpc/grpclog/component.go | 40 +- .../google.golang.org/grpc/grpclog/grpclog.go | 30 +- .../google.golang.org/grpc/grpclog/logger.go | 30 +- .../grpc/grpclog/loggerv2.go | 56 +- .../google.golang.org/grpc/health/client.go | 2 +- .../grpc/health/grpc_health_v1/health.pb.go | 4 +- .../health/grpc_health_v1/health_grpc.pb.go | 15 +- vendor/google.golang.org/grpc/interceptor.go | 12 +- .../balancer/gracefulswitch/gracefulswitch.go | 59 +- .../grpc/internal/balancerload/load.go | 4 +- .../grpc/internal/binarylog/binarylog.go | 11 +- .../grpc/internal/binarylog/method_logger.go | 18 +- .../grpc/internal/buffer/unbounded.go | 44 +- .../grpc/internal/channelz/funcs.go | 69 +- .../grpc/internal/channelz/logging.go | 12 +- .../grpc/internal/channelz/types.go | 5 + .../grpc/internal/channelz/util_linux.go | 2 +- .../grpc/internal/channelz/util_nonlinux.go | 2 +- .../grpc/internal/credentials/credentials.go | 8 +- .../grpc/internal/envconfig/envconfig.go | 10 + .../grpc/internal/envconfig/observability.go | 6 + .../grpc/internal/envconfig/xds.go | 21 +- .../grpc/internal/grpclog/grpclog.go | 40 +- .../grpc/internal/grpclog/prefixLogger.go | 20 +- .../grpc/internal/grpcrand/grpcrand.go | 21 + .../internal/grpcsync/callback_serializer.go | 125 + .../grpc/internal/grpcsync/pubsub.go | 121 + .../grpc/internal/idle/idle.go | 301 + .../grpc/internal/internal.go | 73 +- .../grpc/internal/metadata/metadata.go | 64 +- .../grpc/internal/pretty/pretty.go | 2 +- .../grpc/internal/resolver/config_selector.go | 4 +- .../internal/resolver/dns/dns_resolver.go | 74 +- .../grpc/internal/serviceconfig/duration.go | 130 + .../grpc/internal/status/status.go | 8 +- .../grpc/internal/transport/controlbuf.go | 109 +- .../grpc/internal/transport/handler_server.go | 11 +- .../grpc/internal/transport/http2_client.go | 91 +- .../grpc/internal/transport/http2_server.go | 96 +- .../grpc/internal/transport/http_util.go | 85 +- .../grpc/internal/transport/logging.go | 40 + .../grpc/internal/transport/transport.go | 42 +- .../grpc/metadata/metadata.go | 13 +- .../google.golang.org/grpc/picker_wrapper.go | 70 +- vendor/google.golang.org/grpc/pickfirst.go | 116 +- vendor/google.golang.org/grpc/preloader.go | 2 +- .../grpc/reflection/adapt.go | 187 + .../grpc_reflection_v1/reflection.pb.go | 953 ++ .../grpc_reflection_v1/reflection_grpc.pb.go | 164 + .../grpc_reflection_v1alpha/reflection.pb.go | 87 +- .../reflection_grpc.pb.go | 10 +- .../grpc/reflection/serverreflection.go | 93 +- vendor/google.golang.org/grpc/resolver/map.go | 10 +- .../grpc/resolver/resolver.go | 120 +- .../grpc/resolver_conn_wrapper.go | 237 +- vendor/google.golang.org/grpc/rpc_util.go | 95 +- vendor/google.golang.org/grpc/server.go | 302 +- .../google.golang.org/grpc/service_config.go | 75 +- .../grpc/shared_buffer_pool.go | 154 + vendor/google.golang.org/grpc/stats/stats.go | 36 +- .../google.golang.org/grpc/status/status.go | 59 +- vendor/google.golang.org/grpc/stream.go | 201 +- vendor/google.golang.org/grpc/trace.go | 6 +- vendor/google.golang.org/grpc/version.go | 2 +- vendor/google.golang.org/grpc/vet.sh | 22 +- .../protobuf/encoding/protojson/doc.go | 2 +- .../protobuf/encoding/protojson/encode.go | 14 +- .../encoding/protojson/well_known_types.go | 12 +- .../protobuf/encoding/prototext/encode.go | 14 +- .../protobuf/encoding/protowire/wire.go | 8 +- .../protobuf/internal/encoding/json/decode.go | 2 +- .../protobuf/internal/encoding/json/encode.go | 10 +- .../protobuf/internal/encoding/text/decode.go | 5 +- .../internal/encoding/text/decode_number.go | 43 +- .../protobuf/internal/encoding/text/encode.go | 10 +- .../protobuf/internal/genid/descriptor_gen.go | 138 +- .../protobuf/internal/genid/type_gen.go | 6 + .../protobuf/internal/impl/convert.go | 1 - .../protobuf/internal/order/order.go | 2 +- .../protobuf/internal/strs/strings_unsafe.go | 2 +- .../protobuf/internal/version/version.go | 4 +- .../google.golang.org/protobuf/proto/doc.go | 9 +- .../google.golang.org/protobuf/proto/equal.go | 172 +- .../google.golang.org/protobuf/proto/size.go | 10 +- .../reflect/protoreflect/source_gen.go | 41 + .../protobuf/reflect/protoreflect/value.go | 2 +- .../reflect/protoreflect/value_equal.go | 168 + .../reflect/protoreflect/value_union.go | 4 +- .../reflect/protoregistry/registry.go | 2 +- .../types/descriptorpb/descriptor.pb.go | 1880 ++-- .../protobuf/types/known/anypb/any.pb.go | 133 +- .../types/known/durationpb/duration.pb.go | 63 +- .../protobuf/types/known/emptypb/empty.pb.go | 8 +- .../types/known/timestamppb/timestamp.pb.go | 63 +- vendor/modules.txt | 182 +- .../src/go-pkcs12/pkcs12.go | 25 +- 991 files changed, 92440 insertions(+), 19145 deletions(-) create mode 100644 vendor/github.com/ProtonMail/go-crypto/AUTHORS create mode 100644 vendor/github.com/ProtonMail/go-crypto/CONTRIBUTORS create mode 100644 vendor/github.com/ProtonMail/go-crypto/LICENSE create mode 100644 vendor/github.com/ProtonMail/go-crypto/PATENTS create mode 100644 vendor/github.com/ProtonMail/go-crypto/bitcurves/bitcurve.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/brainpool/brainpool.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/brainpool/rcurve.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/eax/eax.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/eax/eax_test_vectors.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/eax/random_vectors.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/internal/byteutil/byteutil.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/ocb/ocb.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/ocb/random_vectors.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_a.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_b.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap/keywrap.go rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/armor/armor.go (89%) rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/armor/encode.go (100%) rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/canonical_text.go (80%) create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/ecdh/ecdh.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/ecdsa/ecdsa.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/eddsa/eddsa.go rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/elgamal/elgamal.go (88%) rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/errors/errors.go (56%) create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/hash.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/aead.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/cipher.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/hash.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve_info.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curves.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed25519.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed448.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/generic.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/x448.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/encoding.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/mpi.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/oid.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/key_generation.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/keys.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/keys_test_data.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_config.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_crypter.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_encrypted.go rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/packet/compressed.go (95%) create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config.go rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/packet/encrypted_key.go (57%) rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/packet/literal.go (96%) create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/notation.go rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/packet/ocfb.go (92%) rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/packet/one_pass_signature.go (87%) rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/packet/opaque.go (89%) rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/packet/packet.go (61%) create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key_test_data.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key_test_data.go rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/packet/reader.go (83%) rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/packet/signature.go (50%) create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetric_key_encrypted.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_aead.go rename vendor/{golang.org/x/crypto/openpgp/packet/symmetrically_encrypted.go => github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_mdc.go} (61%) rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/packet/userattribute.go (87%) rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/packet/userid.go (95%) rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/read.go (51%) create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/read_write_test_data.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k_cache.go create mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k_config.go rename vendor/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/write.go (51%) delete mode 100644 vendor/github.com/apparentlymart/go-textseg/v13/textseg/grapheme_clusters.go rename vendor/github.com/apparentlymart/go-textseg/{v13 => v15}/LICENSE (100%) rename vendor/github.com/apparentlymart/go-textseg/{v13 => v15}/textseg/all_tokens.go (100%) rename vendor/github.com/apparentlymart/go-textseg/{v13 => v15}/textseg/emoji_table.rl (93%) rename vendor/github.com/apparentlymart/go-textseg/{v13 => v15}/textseg/generate.go (79%) create mode 100644 vendor/github.com/apparentlymart/go-textseg/v15/textseg/grapheme_clusters.go rename vendor/github.com/apparentlymart/go-textseg/{v13 => v15}/textseg/grapheme_clusters.rl (100%) rename vendor/github.com/apparentlymart/go-textseg/{v13 => v15}/textseg/grapheme_clusters_table.rl (97%) rename vendor/github.com/apparentlymart/go-textseg/{v13 => v15}/textseg/tables.go (93%) rename vendor/github.com/apparentlymart/go-textseg/{v13 => v15}/textseg/unicode2ragel.rb (100%) rename vendor/github.com/apparentlymart/go-textseg/{v13 => v15}/textseg/utf8_seqs.go (100%) create mode 100644 vendor/github.com/cloudflare/circl/LICENSE create mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/curve.go create mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.go create mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.h create mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.s create mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/curve_generic.go create mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/curve_noasm.go create mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/doc.go create mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/key.go create mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/table.go create mode 100644 vendor/github.com/cloudflare/circl/dh/x448/curve.go create mode 100644 vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.go create mode 100644 vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.h create mode 100644 vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.s create mode 100644 vendor/github.com/cloudflare/circl/dh/x448/curve_generic.go create mode 100644 vendor/github.com/cloudflare/circl/dh/x448/curve_noasm.go create mode 100644 vendor/github.com/cloudflare/circl/dh/x448/doc.go create mode 100644 vendor/github.com/cloudflare/circl/dh/x448/key.go create mode 100644 vendor/github.com/cloudflare/circl/dh/x448/table.go create mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/constants.go create mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/curve.go create mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/isogeny.go create mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/point.go create mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/scalar.go create mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/twist.go create mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/twistPoint.go create mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/twistTables.go create mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/twist_basemult.go create mode 100644 vendor/github.com/cloudflare/circl/internal/conv/conv.go create mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/doc.go create mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/hashes.go create mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/keccakf.go create mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/rc.go create mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/sha3.go create mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/sha3_s390x.s create mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/shake.go create mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/xor.go create mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/xor_generic.go create mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/xor_unaligned.go create mode 100644 vendor/github.com/cloudflare/circl/math/fp25519/fp.go create mode 100644 vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.go create mode 100644 vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.h create mode 100644 vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.s create mode 100644 vendor/github.com/cloudflare/circl/math/fp25519/fp_generic.go create mode 100644 vendor/github.com/cloudflare/circl/math/fp25519/fp_noasm.go create mode 100644 vendor/github.com/cloudflare/circl/math/fp448/fp.go create mode 100644 vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.go create mode 100644 vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.h create mode 100644 vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.s create mode 100644 vendor/github.com/cloudflare/circl/math/fp448/fp_generic.go create mode 100644 vendor/github.com/cloudflare/circl/math/fp448/fp_noasm.go create mode 100644 vendor/github.com/cloudflare/circl/math/fp448/fuzzer.go create mode 100644 vendor/github.com/cloudflare/circl/math/mlsbset/mlsbset.go create mode 100644 vendor/github.com/cloudflare/circl/math/mlsbset/power.go create mode 100644 vendor/github.com/cloudflare/circl/math/wnaf.go create mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go create mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/modular.go create mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/mult.go create mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/point.go create mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/pubkey.go create mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/pubkey112.go create mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/signapi.go create mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/tables.go create mode 100644 vendor/github.com/cloudflare/circl/sign/ed448/ed448.go create mode 100644 vendor/github.com/cloudflare/circl/sign/ed448/signapi.go create mode 100644 vendor/github.com/cloudflare/circl/sign/sign.go create mode 100644 vendor/github.com/fatih/color/color_windows.go delete mode 100644 vendor/github.com/google/uuid/.travis.yml create mode 100644 vendor/github.com/google/uuid/CHANGELOG.md create mode 100644 vendor/github.com/hashicorp/go-plugin/constants.go create mode 100644 vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/addr_translator.go create mode 100644 vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/cmd_reattach.go create mode 100644 vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/cmd_runner.go rename vendor/github.com/hashicorp/go-plugin/{ => internal/cmdrunner}/notes_unix.go (92%) rename vendor/github.com/hashicorp/go-plugin/{ => internal/cmdrunner}/notes_windows.go (87%) create mode 100644 vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/process.go rename vendor/github.com/hashicorp/go-plugin/{ => internal/cmdrunner}/process_posix.go (79%) rename vendor/github.com/hashicorp/go-plugin/{ => internal/cmdrunner}/process_windows.go (86%) create mode 100644 vendor/github.com/hashicorp/go-plugin/runner/runner.go create mode 100644 vendor/github.com/hashicorp/hc-install/.copywrite.hcl create mode 100644 vendor/github.com/hashicorp/hc-install/product/nomad.go create mode 100644 vendor/github.com/hashicorp/hc-install/releases/enterprise.go create mode 100644 vendor/github.com/hashicorp/terraform-exec/tfexec/test.go create mode 100644 vendor/github.com/hashicorp/terraform-json/.copywrite.hcl create mode 100644 vendor/github.com/hashicorp/terraform-json/checks.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/server_capabilities.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/server_capabilities.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/server_capabilities.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/server_capabilities.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_equal.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_walk.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-log/tfsdklog/levels.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/config/config.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/config/directory.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/config/doc.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/config/file.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/config/variable.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/plan_checks.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/tfversion_checks.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/internal/errorshim/error_join_shim.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/config.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/directory.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/file.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/string.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/doc.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_empty_plan.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_non_empty_plan.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_resource_action.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_sensitive_value.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_unknown_value.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/plan_check.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/resource_action.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfjsonpath/doc.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfjsonpath/path.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfjsonpath/step.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/all.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/any.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/doc.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_above.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_below.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_between.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_not.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_above.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_below.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_between.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_if.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/version_check.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/versions.go create mode 100644 vendor/github.com/hashicorp/terraform-registry-address/.copywrite.hcl create mode 100644 vendor/github.com/hashicorp/terraform-svchost/CHANGELOG.md create mode 100644 vendor/github.com/hashicorp/terraform-svchost/CONTRIBUTING.md create mode 100644 vendor/github.com/hashicorp/terraform-svchost/README.md create mode 100644 vendor/github.com/rickb777/date/period/arithmetic.go create mode 100644 vendor/github.com/rickb777/date/period/designator.go create mode 100644 vendor/github.com/rickb777/date/period/flag.go create mode 100644 vendor/github.com/rickb777/date/period/period64.go create mode 100644 vendor/github.com/rickb777/date/period/sql.go delete mode 100644 vendor/github.com/vmihailenco/msgpack/v4/.golangci.yml delete mode 100644 vendor/github.com/vmihailenco/msgpack/v4/README.md delete mode 100644 vendor/github.com/vmihailenco/msgpack/v4/appengine.go delete mode 100644 vendor/github.com/vmihailenco/msgpack/v4/codes/codes.go delete mode 100644 vendor/github.com/vmihailenco/msgpack/v4/ext.go delete mode 100644 vendor/github.com/vmihailenco/msgpack/v4/intern.go delete mode 100644 vendor/github.com/vmihailenco/msgpack/v4/msgpack.go create mode 100644 vendor/github.com/vmihailenco/msgpack/v5/.prettierrc rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/.travis.yml (68%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/CHANGELOG.md (50%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/LICENSE (100%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/Makefile (84%) create mode 100644 vendor/github.com/vmihailenco/msgpack/v5/README.md create mode 100644 vendor/github.com/vmihailenco/msgpack/v5/commitlint.config.js rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/decode.go (63%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/decode_map.go (61%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/decode_number.go (83%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/decode_query.go (89%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/decode_slice.go (88%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/decode_string.go (68%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/decode_value.go (68%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/encode.go (55%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/encode_map.go (70%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/encode_number.go (84%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/encode_slice.go (64%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/encode_value.go (82%) create mode 100644 vendor/github.com/vmihailenco/msgpack/v5/ext.go create mode 100644 vendor/github.com/vmihailenco/msgpack/v5/intern.go create mode 100644 vendor/github.com/vmihailenco/msgpack/v5/msgpack.go create mode 100644 vendor/github.com/vmihailenco/msgpack/v5/msgpcode/msgpcode.go create mode 100644 vendor/github.com/vmihailenco/msgpack/v5/package.json rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/safe.go (100%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/time.go (60%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/types.go (73%) rename vendor/github.com/vmihailenco/msgpack/{v4 => v5}/unsafe.go (83%) create mode 100644 vendor/github.com/vmihailenco/msgpack/v5/version.go rename vendor/github.com/vmihailenco/tagparser/{ => v2}/.travis.yml (80%) rename vendor/github.com/vmihailenco/tagparser/{ => v2}/LICENSE (100%) rename vendor/github.com/vmihailenco/tagparser/{ => v2}/Makefile (91%) rename vendor/github.com/vmihailenco/tagparser/{ => v2}/README.md (92%) rename vendor/github.com/vmihailenco/tagparser/{ => v2}/internal/parser/parser.go (95%) rename vendor/github.com/vmihailenco/tagparser/{ => v2}/internal/safe.go (100%) rename vendor/github.com/vmihailenco/tagparser/{ => v2}/internal/unsafe.go (100%) rename vendor/github.com/vmihailenco/tagparser/{ => v2}/tagparser.go (88%) create mode 100644 vendor/golang.org/x/crypto/argon2/argon2.go create mode 100644 vendor/golang.org/x/crypto/argon2/blake2b.go create mode 100644 vendor/golang.org/x/crypto/argon2/blamka_amd64.go create mode 100644 vendor/golang.org/x/crypto/argon2/blamka_amd64.s create mode 100644 vendor/golang.org/x/crypto/argon2/blamka_generic.go create mode 100644 vendor/golang.org/x/crypto/argon2/blamka_ref.go create mode 100644 vendor/golang.org/x/crypto/blake2b/blake2b.go create mode 100644 vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go create mode 100644 vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s create mode 100644 vendor/golang.org/x/crypto/blake2b/blake2b_amd64.go create mode 100644 vendor/golang.org/x/crypto/blake2b/blake2b_amd64.s create mode 100644 vendor/golang.org/x/crypto/blake2b/blake2b_generic.go create mode 100644 vendor/golang.org/x/crypto/blake2b/blake2b_ref.go create mode 100644 vendor/golang.org/x/crypto/blake2b/blake2x.go create mode 100644 vendor/golang.org/x/crypto/blake2b/register.go create mode 100644 vendor/golang.org/x/crypto/hkdf/hkdf.go delete mode 100644 vendor/golang.org/x/crypto/openpgp/keys.go delete mode 100644 vendor/golang.org/x/crypto/openpgp/packet/config.go delete mode 100644 vendor/golang.org/x/crypto/openpgp/packet/private_key.go delete mode 100644 vendor/golang.org/x/crypto/openpgp/packet/public_key.go delete mode 100644 vendor/golang.org/x/crypto/openpgp/packet/public_key_v3.go delete mode 100644 vendor/golang.org/x/crypto/openpgp/packet/signature_v3.go delete mode 100644 vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted.go delete mode 100644 vendor/golang.org/x/crypto/openpgp/s2k/s2k.go create mode 100644 vendor/golang.org/x/crypto/sha3/doc.go create mode 100644 vendor/golang.org/x/crypto/sha3/hashes.go create mode 100644 vendor/golang.org/x/crypto/sha3/hashes_generic.go create mode 100644 vendor/golang.org/x/crypto/sha3/keccakf.go create mode 100644 vendor/golang.org/x/crypto/sha3/keccakf_amd64.go create mode 100644 vendor/golang.org/x/crypto/sha3/keccakf_amd64.s create mode 100644 vendor/golang.org/x/crypto/sha3/register.go create mode 100644 vendor/golang.org/x/crypto/sha3/sha3.go create mode 100644 vendor/golang.org/x/crypto/sha3/sha3_s390x.go create mode 100644 vendor/golang.org/x/crypto/sha3/sha3_s390x.s create mode 100644 vendor/golang.org/x/crypto/sha3/shake.go create mode 100644 vendor/golang.org/x/crypto/sha3/shake_generic.go create mode 100644 vendor/golang.org/x/crypto/sha3/xor.go create mode 100644 vendor/golang.org/x/crypto/sha3/xor_generic.go create mode 100644 vendor/golang.org/x/crypto/sha3/xor_unaligned.go create mode 100644 vendor/golang.org/x/exp/LICENSE create mode 100644 vendor/golang.org/x/exp/PATENTS create mode 100644 vendor/golang.org/x/exp/constraints/constraints.go delete mode 100644 vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go delete mode 100644 vendor/golang.org/x/net/http2/Dockerfile delete mode 100644 vendor/golang.org/x/net/http2/Makefile create mode 100644 vendor/golang.org/x/net/http2/writesched_roundrobin.go create mode 100644 vendor/golang.org/x/net/idna/tables15.0.0.go create mode 100644 vendor/golang.org/x/net/idna/trie12.0.0.go create mode 100644 vendor/golang.org/x/net/idna/trie13.0.0.go create mode 100644 vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go create mode 100644 vendor/golang.org/x/sys/unix/mmap_nomremap.go create mode 100644 vendor/golang.org/x/sys/unix/mremap.go create mode 100644 vendor/golang.org/x/sys/windows/aliases.go create mode 100644 vendor/golang.org/x/sys/windows/dll_windows.go create mode 100644 vendor/golang.org/x/sys/windows/empty.s create mode 100644 vendor/golang.org/x/sys/windows/env_windows.go create mode 100644 vendor/golang.org/x/sys/windows/eventlog.go create mode 100644 vendor/golang.org/x/sys/windows/exec_windows.go create mode 100644 vendor/golang.org/x/sys/windows/memory_windows.go create mode 100644 vendor/golang.org/x/sys/windows/mkerrors.bash create mode 100644 vendor/golang.org/x/sys/windows/mkknownfolderids.bash create mode 100644 vendor/golang.org/x/sys/windows/mksyscall.go create mode 100644 vendor/golang.org/x/sys/windows/race.go create mode 100644 vendor/golang.org/x/sys/windows/race0.go create mode 100644 vendor/golang.org/x/sys/windows/security_windows.go create mode 100644 vendor/golang.org/x/sys/windows/service.go create mode 100644 vendor/golang.org/x/sys/windows/setupapi_windows.go create mode 100644 vendor/golang.org/x/sys/windows/str.go create mode 100644 vendor/golang.org/x/sys/windows/syscall.go create mode 100644 vendor/golang.org/x/sys/windows/syscall_windows.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_386.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_amd64.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_arm.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_arm64.go create mode 100644 vendor/golang.org/x/sys/windows/zerrors_windows.go create mode 100644 vendor/golang.org/x/sys/windows/zknownfolderids_windows.go create mode 100644 vendor/golang.org/x/sys/windows/zsyscall_windows.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/norm/tables15.0.0.go create mode 100644 vendor/golang.org/x/tools/go/types/objectpath/objectpath.go create mode 100644 vendor/golang.org/x/tools/internal/event/tag/tag.go delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/bexport.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/objectpath.go delete mode 100644 vendor/google.golang.org/appengine/.travis.yml delete mode 100644 vendor/google.golang.org/appengine/travis_install.sh delete mode 100644 vendor/google.golang.org/appengine/travis_test.sh rename vendor/google.golang.org/genproto/{ => googleapis/rpc}/LICENSE (100%) create mode 100644 vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go create mode 100644 vendor/google.golang.org/grpc/internal/grpcsync/pubsub.go create mode 100644 vendor/google.golang.org/grpc/internal/idle/idle.go create mode 100644 vendor/google.golang.org/grpc/internal/serviceconfig/duration.go create mode 100644 vendor/google.golang.org/grpc/internal/transport/logging.go create mode 100644 vendor/google.golang.org/grpc/reflection/adapt.go create mode 100644 vendor/google.golang.org/grpc/reflection/grpc_reflection_v1/reflection.pb.go create mode 100644 vendor/google.golang.org/grpc/reflection/grpc_reflection_v1/reflection_grpc.pb.go create mode 100644 vendor/google.golang.org/grpc/shared_buffer_pool.go create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go diff --git a/go.mod b/go.mod index f6f8161e2a2a..ebed4ea09a04 100644 --- a/go.mod +++ b/go.mod @@ -7,30 +7,30 @@ require ( github.com/Azure/go-autorest/autorest/to v0.4.0 github.com/Azure/go-autorest/autorest/validation v0.3.1 github.com/Azure/go-autorest/tracing v0.6.0 - github.com/btubbs/datetime v0.1.0 + github.com/btubbs/datetime v0.1.1 github.com/dave/jennifer v1.6.0 github.com/davecgh/go-spew v1.1.1 github.com/gofrs/uuid v4.4.0+incompatible github.com/golang-jwt/jwt/v4 v4.5.0 github.com/google/go-cmp v0.5.9 - github.com/google/uuid v1.3.0 + github.com/google/uuid v1.3.1 github.com/hashicorp/go-azure-helpers v0.59.0 - github.com/hashicorp/go-azure-sdk v0.20230906.1160501 - github.com/hashicorp/go-hclog v1.4.0 + github.com/hashicorp/go-azure-sdk v0.20230907.1113401 + github.com/hashicorp/go-hclog v1.5.0 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-uuid v1.0.3 github.com/hashicorp/go-version v1.6.0 - github.com/hashicorp/terraform-plugin-sdk/v2 v2.26.1 - github.com/hashicorp/terraform-plugin-testing v1.0.0 + github.com/hashicorp/terraform-plugin-sdk/v2 v2.29.0 + github.com/hashicorp/terraform-plugin-testing v1.5.1 github.com/magodo/terraform-provider-azurerm-example-gen v0.0.0-20220407025246-3a3ee0ab24a8 github.com/mitchellh/mapstructure v1.5.0 - github.com/rickb777/date v1.12.5-0.20200422084442-6300e543c4d9 + github.com/rickb777/date v1.20.2 github.com/sergi/go-diff v1.2.0 github.com/tombuildsstuff/giovanni v0.20.0 github.com/tombuildsstuff/kermit v0.20230703.1101016 - golang.org/x/crypto v0.9.0 - golang.org/x/net v0.10.0 - golang.org/x/tools v0.6.0 + golang.org/x/crypto v0.13.0 + golang.org/x/net v0.15.0 + golang.org/x/tools v0.13.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -38,49 +38,52 @@ require ( github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect github.com/Azure/go-autorest/logger v0.2.1 // indirect + github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/apparentlymart/go-textseg v1.0.0 // indirect - github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect - github.com/fatih/color v1.13.0 // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect + github.com/cloudflare/circl v1.3.3 // indirect + github.com/fatih/color v1.15.0 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-checkpoint v0.5.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 // indirect - github.com/hashicorp/go-plugin v1.4.8 // indirect + github.com/hashicorp/go-plugin v1.5.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.4 // indirect - github.com/hashicorp/hc-install v0.5.0 // indirect - github.com/hashicorp/hcl/v2 v2.16.2 // indirect + github.com/hashicorp/hc-install v0.6.0 // indirect + github.com/hashicorp/hcl/v2 v2.18.0 // indirect github.com/hashicorp/hcl2 v0.0.0-20191002203319-fb75b3253c80 // indirect github.com/hashicorp/logutils v1.0.0 // indirect - github.com/hashicorp/terraform-exec v0.18.1 // indirect - github.com/hashicorp/terraform-json v0.16.0 // indirect - github.com/hashicorp/terraform-plugin-go v0.14.3 // indirect - github.com/hashicorp/terraform-plugin-log v0.8.0 // indirect - github.com/hashicorp/terraform-registry-address v0.1.0 // indirect - github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734 // indirect - github.com/hashicorp/yamux v0.0.0-20210316155119-a95892c5f864 // indirect - github.com/mattn/go-colorable v0.1.12 // indirect - github.com/mattn/go-isatty v0.0.14 // indirect + github.com/hashicorp/terraform-exec v0.19.0 // indirect + github.com/hashicorp/terraform-json v0.17.1 // indirect + github.com/hashicorp/terraform-plugin-go v0.19.0 // indirect + github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect + github.com/hashicorp/terraform-registry-address v0.2.2 // indirect + github.com/hashicorp/terraform-svchost v0.1.1 // indirect + github.com/hashicorp/yamux v0.1.1 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/oklog/run v1.1.0 // indirect - github.com/rickb777/plural v1.2.0 // indirect + github.com/rickb777/plural v1.4.1 // indirect github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect - github.com/vmihailenco/msgpack/v4 v4.3.12 // indirect - github.com/vmihailenco/tagparser v0.1.1 // indirect - github.com/zclconf/go-cty v1.13.1 // indirect - golang.org/x/mod v0.8.0 // indirect - golang.org/x/oauth2 v0.4.0 // indirect - golang.org/x/sys v0.8.0 // indirect - golang.org/x/text v0.9.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect - google.golang.org/grpc v1.53.0 // indirect - google.golang.org/protobuf v1.28.1 // indirect - software.sslmate.com/src/go-pkcs12 v0.2.0 // indirect + github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect + github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect + github.com/zclconf/go-cty v1.14.0 // indirect + golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect + golang.org/x/mod v0.12.0 // indirect + golang.org/x/oauth2 v0.12.0 // indirect + golang.org/x/sys v0.12.0 // indirect + golang.org/x/text v0.13.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect + google.golang.org/grpc v1.58.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect + software.sslmate.com/src/go-pkcs12 v0.2.1 // indirect ) go 1.20 diff --git a/go.sum b/go.sum index 0091db90ba2d..1a8a138abba9 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,4 @@ -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= github.com/Azure/azure-sdk-for-go v45.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v56.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v66.0.0+incompatible h1:bmmC38SlE8/E81nNADlgmVGurPWMHDX2YNXVQMrBpEE= @@ -34,33 +34,26 @@ github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+Z github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= -github.com/Masterminds/sprig/v3 v3.2.1/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk= -github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= -github.com/Microsoft/go-winio v0.4.16 h1:FtSW/jqD+l4ba5iPBj9CODVtgfYAD8w2wS923g/cFDk= -github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= -github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7 h1:YoJbenK9C67SkzkDfmQuVln04ygHj3vjZfd9FL+GmQQ= -github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= -github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk= -github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg= +github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= github.com/apparentlymart/go-textseg v1.0.0 h1:rRmlIsPEEhUTIKQb7T++Nz/A5Q6C9IuX2wFoYVvnCs0= github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec= -github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= -github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= +github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/bsm/go-vlq v0.0.0-20150828105119-ec6e8d4f5f4e/go.mod h1:N+BjUcTjSxc2mtRGSCPsat1kze3CUtvJN3/jTXlp29k= -github.com/btubbs/datetime v0.1.0 h1:183iHRjmNAokYM5D8V3wbEOOEe/HYEYpm7E2oom3vhM= -github.com/btubbs/datetime v0.1.0/go.mod h1:n2BZ/2ltnRzNiz27aE3wUb2onNttQdC+WFxAoks5jJM= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/btubbs/datetime v0.1.1 h1:KuV+F9tyq/hEnezmKZNGk8dzqMVsId6EpFVrQCfA3To= +github.com/btubbs/datetime v0.1.1/go.mod h1:n2BZ/2ltnRzNiz27aE3wUb2onNttQdC+WFxAoks5jJM= +github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= +github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= +github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= +github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/dave/jennifer v1.6.0 h1:MQ/6emI2xM7wt0tJzJzyUik2Q3Tcn2eE0vtYgh4GPVI= github.com/dave/jennifer v1.6.0/go.mod h1:AxTG893FiZKqxy3FP1kL80VMshSMuz2G+EgvszgGRnk= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -69,24 +62,16 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= -github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= -github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= +github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= +github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= +github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/go-git/gcfg v1.5.0 h1:Q5ViNfGF8zFgyJWPqYwA7qGFoMTEiBmdlkcfRmpIMa4= -github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= -github.com/go-git/go-billy/v5 v5.2.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= -github.com/go-git/go-billy/v5 v5.3.1 h1:CPiOUAzKtMRvolEKw+bG1PLRpT7D3LIs3/3ey4Aiu34= -github.com/go-git/go-billy/v5 v5.3.1/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= -github.com/go-git/go-git-fixtures/v4 v4.2.1/go.mod h1:K8zd3kDUAykwTdDCr+I0per6Y6vMiRR/nnVTBtavnB0= -github.com/go-git/go-git/v5 v5.4.2 h1:BXyZu9t0VkbiHtqrsvdq39UDhGJTl1h55VW6CSC4aY4= -github.com/go-git/go-git/v5 v5.4.2/go.mod h1:gQ1kArt6d+n+BGd+/B/I74HwRTLhth2+zti4ihgckDc= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= +github.com/go-git/go-billy/v5 v5.4.1 h1:Uwp5tDRkPr+l/TnbHOQzp+tmJfLceOlbVucgpTz8ix4= +github.com/go-git/go-git/v5 v5.8.1 h1:Zo79E4p7TRk0xoRgMq0RShiTHGKcKI4+DI6BfJc/Q+A= github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68= github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= @@ -94,23 +79,21 @@ github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRx github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= +github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hashicorp/errwrap v0.0.0-20180715044906-d6c0cd880357/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= @@ -118,99 +101,82 @@ github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv github.com/hashicorp/go-azure-helpers v0.12.0/go.mod h1:Zc3v4DNeX6PDdy7NljlYpnrdac1++qNW0I4U+ofGwpg= github.com/hashicorp/go-azure-helpers v0.59.0 h1:E73yoPN2r1y0vvZ4dgAh8NRGuVTNXH3lZKRjT+4oNmA= github.com/hashicorp/go-azure-helpers v0.59.0/go.mod h1:BQUQp5udwbJ8pnzl0wByCLVEEyPMAFpJ9vOREiCzObo= -github.com/hashicorp/go-azure-sdk v0.20230906.1160501 h1:j/tQVIxg8orE1fWwl765ptEG7ebcacyDGdYPfIcW9Gw= -github.com/hashicorp/go-azure-sdk v0.20230906.1160501/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= +github.com/hashicorp/go-azure-sdk v0.20230907.1113401 h1:rtikuZ4FzVZrJ4lbldIJk1oIa1+Ofnq76+Mv3muDbLs= +github.com/hashicorp/go-azure-sdk v0.20230907.1113401/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU= github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 h1:1/D3zfFHttUKaCaGKZ/dR2roBXv0vKbSCnssIldfQdI= github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320/go.mod h1:EiZBMaudVLy8fmjf9Npq1dq9RalhveqZG5w/yz3mHWs= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-hclog v1.4.0 h1:ctuWFGrhFha8BnnzxqeRGidlEcQkDyL5u8J8t5eA11I= -github.com/hashicorp/go-hclog v1.4.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= +github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-multierror v0.0.0-20180717150148-3d5d8f294aa0/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-plugin v1.4.8 h1:CHGwpxYDOttQOY7HOWgETU9dyVjOXzniXDqJcYJE1zM= -github.com/hashicorp/go-plugin v1.4.8/go.mod h1:viDMjcLJuDui6pXb8U4HVfb8AamCWhHGUjr2IrTF67s= +github.com/hashicorp/go-plugin v1.5.1 h1:oGm7cWBaYIp3lJpx1RUEfLWophprE2EV/KUeqBYo+6k= +github.com/hashicorp/go-plugin v1.5.1/go.mod h1:w1sAEES3g3PuV/RzUrgow20W2uErMly84hhD3um1WL4= github.com/hashicorp/go-retryablehttp v0.7.4 h1:ZQgVdpTdAL7WpMIwLzCfbalOcSUdkDZnpUv3/+BxzFA= github.com/hashicorp/go-retryablehttp v0.7.4/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/hc-install v0.5.0 h1:D9bl4KayIYKEeJ4vUDe9L5huqxZXczKaykSRcmQ0xY0= -github.com/hashicorp/hc-install v0.5.0/go.mod h1:JyzMfbzfSBSjoDCRPna1vi/24BEDxFaCPfdHtM5SCdo= -github.com/hashicorp/hcl/v2 v2.16.2 h1:mpkHZh/Tv+xet3sy3F9Ld4FyI2tUpWe9x3XtPx9f1a0= -github.com/hashicorp/hcl/v2 v2.16.2/go.mod h1:JRmR89jycNkrrqnMmvPDMd56n1rQJ2Q6KocSLCMCXng= +github.com/hashicorp/hc-install v0.6.0 h1:fDHnU7JNFNSQebVKYhHZ0va1bC6SrPQ8fpebsvNr2w4= +github.com/hashicorp/hc-install v0.6.0/go.mod h1:10I912u3nntx9Umo1VAeYPUUuehk0aRQJYpMwbX5wQA= +github.com/hashicorp/hcl/v2 v2.18.0 h1:wYnG7Lt31t2zYkcquwgKo6MWXzRUDIeIVU5naZwHLl8= +github.com/hashicorp/hcl/v2 v2.18.0/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE= github.com/hashicorp/hcl2 v0.0.0-20191002203319-fb75b3253c80 h1:PFfGModn55JA0oBsvFghhj0v93me+Ctr3uHC/UmFAls= github.com/hashicorp/hcl2 v0.0.0-20191002203319-fb75b3253c80/go.mod h1:Cxv+IJLuBiEhQ7pBYGEuORa0nr4U994pE8mYLuFd7v0= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/terraform-exec v0.18.1 h1:LAbfDvNQU1l0NOQlTuudjczVhHj061fNX5H8XZxHlH4= -github.com/hashicorp/terraform-exec v0.18.1/go.mod h1:58wg4IeuAJ6LVsLUeD2DWZZoc/bYi6dzhLHzxM41980= -github.com/hashicorp/terraform-json v0.16.0 h1:UKkeWRWb23do5LNAFlh/K3N0ymn1qTOO8c+85Albo3s= -github.com/hashicorp/terraform-json v0.16.0/go.mod h1:v0Ufk9jJnk6tcIZvScHvetlKfiNTC+WS21mnXIlc0B0= -github.com/hashicorp/terraform-plugin-go v0.14.3 h1:nlnJ1GXKdMwsC8g1Nh05tK2wsC3+3BL/DBBxFEki+j0= -github.com/hashicorp/terraform-plugin-go v0.14.3/go.mod h1:7ees7DMZ263q8wQ6E4RdIdR6nHHJtrdt4ogX5lPkX1A= -github.com/hashicorp/terraform-plugin-log v0.8.0 h1:pX2VQ/TGKu+UU1rCay0OlzosNKe4Nz1pepLXj95oyy0= -github.com/hashicorp/terraform-plugin-log v0.8.0/go.mod h1:1myFrhVsBLeylQzYYEV17VVjtG8oYPRFdaZs7xdW2xs= -github.com/hashicorp/terraform-plugin-sdk/v2 v2.26.1 h1:G9WAfb8LHeCxu7Ae8nc1agZlQOSCUWsb610iAogBhCs= -github.com/hashicorp/terraform-plugin-sdk/v2 v2.26.1/go.mod h1:xcOSYlRVdPLmDUoqPhO9fiO/YCN/l6MGYeTzGt5jgkQ= -github.com/hashicorp/terraform-plugin-testing v1.0.0 h1:3dJV+etJxfiRQ4ENe5fZ38ZQPN5aJ8PwqUAOE2NzDnw= -github.com/hashicorp/terraform-plugin-testing v1.0.0/go.mod h1:sv9NoAabKrcjYzvYYwnJCJU+EfF0QnZbaodl+SgWUM8= -github.com/hashicorp/terraform-registry-address v0.1.0 h1:W6JkV9wbum+m516rCl5/NjKxCyTVaaUBbzYcMzBDO3U= -github.com/hashicorp/terraform-registry-address v0.1.0/go.mod h1:EnyO2jYO6j29DTHbJcm00E5nQTFeTtyZH3H5ycydQ5A= -github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734 h1:HKLsbzeOsfXmKNpr3GiT18XAblV0BjCbzL8KQAMZGa0= -github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg= -github.com/hashicorp/yamux v0.0.0-20210316155119-a95892c5f864 h1:Y4V+SFe7d3iH+9pJCoeWIOS5/xBJIFsltS7E+KJSsJY= -github.com/hashicorp/yamux v0.0.0-20210316155119-a95892c5f864/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +github.com/hashicorp/terraform-exec v0.19.0 h1:FpqZ6n50Tk95mItTSS9BjeOVUb4eg81SpgVtZNNtFSM= +github.com/hashicorp/terraform-exec v0.19.0/go.mod h1:tbxUpe3JKruE9Cuf65mycSIT8KiNPZ0FkuTE3H4urQg= +github.com/hashicorp/terraform-json v0.17.1 h1:eMfvh/uWggKmY7Pmb3T85u86E2EQg6EQHgyRwf3RkyA= +github.com/hashicorp/terraform-json v0.17.1/go.mod h1:Huy6zt6euxaY9knPAFKjUITn8QxUFIe9VuSzb4zn/0o= +github.com/hashicorp/terraform-plugin-go v0.19.0 h1:BuZx/6Cp+lkmiG0cOBk6Zps0Cb2tmqQpDM3iAtnhDQU= +github.com/hashicorp/terraform-plugin-go v0.19.0/go.mod h1:EhRSkEPNoylLQntYsk5KrDHTZJh9HQoumZXbOGOXmec= +github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0= +github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow= +github.com/hashicorp/terraform-plugin-sdk/v2 v2.29.0 h1:wcOKYwPI9IorAJEBLzgclh3xVolO7ZorYd6U1vnok14= +github.com/hashicorp/terraform-plugin-sdk/v2 v2.29.0/go.mod h1:qH/34G25Ugdj5FcM95cSoXzUgIbgfhVLXCcEcYaMwq8= +github.com/hashicorp/terraform-plugin-testing v1.5.1 h1:T4aQh9JAhmWo4+t1A7x+rnxAJHCDIYW9kXyo4sVO92c= +github.com/hashicorp/terraform-plugin-testing v1.5.1/go.mod h1:dg8clO6K59rZ8w9EshBmDp1CxTIPu3yA4iaDpX1h5u0= +github.com/hashicorp/terraform-registry-address v0.2.2 h1:lPQBg403El8PPicg/qONZJDC6YlgCVbWDtNmmZKtBno= +github.com/hashicorp/terraform-registry-address v0.2.2/go.mod h1:LtwNbCihUoUZ3RYriyS2wF/lGPB6gF9ICLRtuDk7hSo= +github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ= +github.com/hashicorp/terraform-svchost v0.1.1/go.mod h1:mNsjQfZyf/Jhz35v6/0LWcv26+X7JPS+buii2c9/ctc= +github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= +github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= -github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= -github.com/jhump/protoreflect v1.6.0 h1:h5jfMVslIg6l29nsMs0D8Wj17RDVdNYti0vDN/PZZoE= -github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 h1:DowS9hvgyYSX4TO5NpyC606/Z4SxnNYbT+WX27or6Ck= -github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= +github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/magodo/terraform-provider-azurerm-example-gen v0.0.0-20220407025246-3a3ee0ab24a8 h1:HHSqLmPZaa8U66U7N2Gtx3gYptSHrUB/rB5t+6fZTkQ= github.com/magodo/terraform-provider-azurerm-example-gen v0.0.0-20220407025246-3a3ee0ab24a8/go.mod h1:iMzpAzVr2v/NUVie/apAYtZlFZYFndPcp6/E0VLxgAM= -github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= -github.com/mitchellh/cli v1.1.5/go.mod h1:v8+iFts2sPIKUV1ltktPXMCC8fumSKFItNcD2cLtRR4= -github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= @@ -219,42 +185,33 @@ github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQ github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/onsi/gomega v1.27.8 h1:gegWiwZjBsf2DgiSbf5hpokZ98JVDMcWkUiigk6/KXc= +github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/rickb777/date v1.12.5-0.20200422084442-6300e543c4d9 h1:czJCcoUR3FMpHnRQow2E84H/0CPrX1fMAGn9HugzyI4= -github.com/rickb777/date v1.12.5-0.20200422084442-6300e543c4d9/go.mod h1:L8WrssTzvgYw34/Ppa0JpJfI7KKXZ2cVGI6Djt0brUU= -github.com/rickb777/plural v1.2.0 h1:5tvEc7UBCZ7l8h/2UeybSkt/uu1DQsZFOFdNevmUhlE= -github.com/rickb777/plural v1.2.0/go.mod h1:UdpyWFCGbo3mvK3f/PfZOAOrkjzJlYN/sD46XNWJ+Es= +github.com/rickb777/date v1.20.2 h1:CUpAaa4ksqvcRaidSgwzK7zeO2wUG5/VGy6Zlfcu/d4= +github.com/rickb777/date v1.20.2/go.mod h1:PVaM/Zn0IOzjm1uj84Eh9NJ/imtQSm1SVKtOvIunaYw= +github.com/rickb777/plural v1.4.1 h1:5MMLcbIaapLFmvDGRT5iPk8877hpTPt8Y9cdSKRw9sU= +github.com/rickb777/plural v1.4.1/go.mod h1:kdmXUpmKBJTS0FtG/TFumd//VBWsNTD7zOw7x4umxNw= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/skeema/knownhosts v1.2.0 h1:h9r9cf0+u7wSE+M183ZtMGgOJKiL96brpaz5ekfJCpM= github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= @@ -267,85 +224,66 @@ github.com/tombuildsstuff/kermit v0.20230703.1101016/go.mod h1:YleYDYRKTGy5ihWHG github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= -github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= -github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= -github.com/vmihailenco/tagparser v0.1.1 h1:quXMXlA39OCbd2wAdTsGDlK9RkOk6Wuw+x37wVyIuWY= -github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= -github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= -github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= +github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU= +github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= +github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= +github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= -github.com/zclconf/go-cty v1.1.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= -github.com/zclconf/go-cty v1.13.1 h1:0a6bRwuiSHtAmqCqNOE+c2oHgepv0ctoxU4FUe43kwc= -github.com/zclconf/go-cty v1.13.1/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= -golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +github.com/zclconf/go-cty v1.14.0 h1:/Xrd39K7DXbHzlisFP9c4pHao4yyf+/Ug9LEz+Y/yhc= +github.com/zclconf/go-cty v1.14.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190502183928-7f726cade0ab/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191009170851-d66e71096ffb/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.4.0 h1:NF0gk8LVPg1Ml7SSbGyySuoxdsXitj7TvgvuRxIMc/M= -golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4= +golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -353,65 +291,65 @@ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f h1:BWUVssLB0HVOSY78gIdvk1dTVYtT1y8SBWtPYuTJ/6w= -google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= -google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= +google.golang.org/grpc v1.58.0 h1:32JY8YpPMSR45K+c3o6b8VL73V+rR8k+DeMIr4vRH8o= +google.golang.org/grpc v1.58.0/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= -software.sslmate.com/src/go-pkcs12 v0.2.0 h1:nlFkj7bTysH6VkC4fGphtjXRbezREPgrHuJG20hBGPE= -software.sslmate.com/src/go-pkcs12 v0.2.0/go.mod h1:23rNcYsMabIc1otwLpTkCCPwUq6kQsTyowttG/as0kQ= +software.sslmate.com/src/go-pkcs12 v0.2.1 h1:tbT1jjaeFOF230tzOIRJ6U5S1jNqpsSyNjzDd58H3J8= +software.sslmate.com/src/go-pkcs12 v0.2.1/go.mod h1:Qiz0EyvDRJjjxGyUQa2cCNZn/wMyzrRJ/qcDXOQazLI= diff --git a/vendor/github.com/ProtonMail/go-crypto/AUTHORS b/vendor/github.com/ProtonMail/go-crypto/AUTHORS new file mode 100644 index 000000000000..2b00ddba0dfe --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/AUTHORS @@ -0,0 +1,3 @@ +# This source code refers to The Go Authors for copyright purposes. +# The master list of authors is in the main Go distribution, +# visible at https://tip.golang.org/AUTHORS. diff --git a/vendor/github.com/ProtonMail/go-crypto/CONTRIBUTORS b/vendor/github.com/ProtonMail/go-crypto/CONTRIBUTORS new file mode 100644 index 000000000000..1fbd3e976faf --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/CONTRIBUTORS @@ -0,0 +1,3 @@ +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at https://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/github.com/ProtonMail/go-crypto/LICENSE b/vendor/github.com/ProtonMail/go-crypto/LICENSE new file mode 100644 index 000000000000..6a66aea5eafe --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/ProtonMail/go-crypto/PATENTS b/vendor/github.com/ProtonMail/go-crypto/PATENTS new file mode 100644 index 000000000000..733099041f84 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/github.com/ProtonMail/go-crypto/bitcurves/bitcurve.go b/vendor/github.com/ProtonMail/go-crypto/bitcurves/bitcurve.go new file mode 100644 index 000000000000..c85e6befecab --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/bitcurves/bitcurve.go @@ -0,0 +1,381 @@ +package bitcurves + +// Copyright 2010 The Go Authors. All rights reserved. +// Copyright 2011 ThePiachu. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package bitelliptic implements several Koblitz elliptic curves over prime +// fields. + +// This package operates, internally, on Jacobian coordinates. For a given +// (x, y) position on the curve, the Jacobian coordinates are (x1, y1, z1) +// where x = x1/z1² and y = y1/z1³. The greatest speedups come when the whole +// calculation can be performed within the transform (as in ScalarMult and +// ScalarBaseMult). But even for Add and Double, it's faster to apply and +// reverse the transform than to operate in affine coordinates. + +import ( + "crypto/elliptic" + "io" + "math/big" + "sync" +) + +// A BitCurve represents a Koblitz Curve with a=0. +// See http://www.hyperelliptic.org/EFD/g1p/auto-shortw.html +type BitCurve struct { + Name string + P *big.Int // the order of the underlying field + N *big.Int // the order of the base point + B *big.Int // the constant of the BitCurve equation + Gx, Gy *big.Int // (x,y) of the base point + BitSize int // the size of the underlying field +} + +// Params returns the parameters of the given BitCurve (see BitCurve struct) +func (bitCurve *BitCurve) Params() (cp *elliptic.CurveParams) { + cp = new(elliptic.CurveParams) + cp.Name = bitCurve.Name + cp.P = bitCurve.P + cp.N = bitCurve.N + cp.Gx = bitCurve.Gx + cp.Gy = bitCurve.Gy + cp.BitSize = bitCurve.BitSize + return cp +} + +// IsOnCurve returns true if the given (x,y) lies on the BitCurve. +func (bitCurve *BitCurve) IsOnCurve(x, y *big.Int) bool { + // y² = x³ + b + y2 := new(big.Int).Mul(y, y) //y² + y2.Mod(y2, bitCurve.P) //y²%P + + x3 := new(big.Int).Mul(x, x) //x² + x3.Mul(x3, x) //x³ + + x3.Add(x3, bitCurve.B) //x³+B + x3.Mod(x3, bitCurve.P) //(x³+B)%P + + return x3.Cmp(y2) == 0 +} + +// affineFromJacobian reverses the Jacobian transform. See the comment at the +// top of the file. +func (bitCurve *BitCurve) affineFromJacobian(x, y, z *big.Int) (xOut, yOut *big.Int) { + if z.Cmp(big.NewInt(0)) == 0 { + panic("bitcurve: Can't convert to affine with Jacobian Z = 0") + } + // x = YZ^2 mod P + zinv := new(big.Int).ModInverse(z, bitCurve.P) + zinvsq := new(big.Int).Mul(zinv, zinv) + + xOut = new(big.Int).Mul(x, zinvsq) + xOut.Mod(xOut, bitCurve.P) + // y = YZ^3 mod P + zinvsq.Mul(zinvsq, zinv) + yOut = new(big.Int).Mul(y, zinvsq) + yOut.Mod(yOut, bitCurve.P) + return xOut, yOut +} + +// Add returns the sum of (x1,y1) and (x2,y2) +func (bitCurve *BitCurve) Add(x1, y1, x2, y2 *big.Int) (*big.Int, *big.Int) { + z := new(big.Int).SetInt64(1) + x, y, z := bitCurve.addJacobian(x1, y1, z, x2, y2, z) + return bitCurve.affineFromJacobian(x, y, z) +} + +// addJacobian takes two points in Jacobian coordinates, (x1, y1, z1) and +// (x2, y2, z2) and returns their sum, also in Jacobian form. +func (bitCurve *BitCurve) addJacobian(x1, y1, z1, x2, y2, z2 *big.Int) (*big.Int, *big.Int, *big.Int) { + // See http://hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#addition-add-2007-bl + z1z1 := new(big.Int).Mul(z1, z1) + z1z1.Mod(z1z1, bitCurve.P) + z2z2 := new(big.Int).Mul(z2, z2) + z2z2.Mod(z2z2, bitCurve.P) + + u1 := new(big.Int).Mul(x1, z2z2) + u1.Mod(u1, bitCurve.P) + u2 := new(big.Int).Mul(x2, z1z1) + u2.Mod(u2, bitCurve.P) + h := new(big.Int).Sub(u2, u1) + if h.Sign() == -1 { + h.Add(h, bitCurve.P) + } + i := new(big.Int).Lsh(h, 1) + i.Mul(i, i) + j := new(big.Int).Mul(h, i) + + s1 := new(big.Int).Mul(y1, z2) + s1.Mul(s1, z2z2) + s1.Mod(s1, bitCurve.P) + s2 := new(big.Int).Mul(y2, z1) + s2.Mul(s2, z1z1) + s2.Mod(s2, bitCurve.P) + r := new(big.Int).Sub(s2, s1) + if r.Sign() == -1 { + r.Add(r, bitCurve.P) + } + r.Lsh(r, 1) + v := new(big.Int).Mul(u1, i) + + x3 := new(big.Int).Set(r) + x3.Mul(x3, x3) + x3.Sub(x3, j) + x3.Sub(x3, v) + x3.Sub(x3, v) + x3.Mod(x3, bitCurve.P) + + y3 := new(big.Int).Set(r) + v.Sub(v, x3) + y3.Mul(y3, v) + s1.Mul(s1, j) + s1.Lsh(s1, 1) + y3.Sub(y3, s1) + y3.Mod(y3, bitCurve.P) + + z3 := new(big.Int).Add(z1, z2) + z3.Mul(z3, z3) + z3.Sub(z3, z1z1) + if z3.Sign() == -1 { + z3.Add(z3, bitCurve.P) + } + z3.Sub(z3, z2z2) + if z3.Sign() == -1 { + z3.Add(z3, bitCurve.P) + } + z3.Mul(z3, h) + z3.Mod(z3, bitCurve.P) + + return x3, y3, z3 +} + +// Double returns 2*(x,y) +func (bitCurve *BitCurve) Double(x1, y1 *big.Int) (*big.Int, *big.Int) { + z1 := new(big.Int).SetInt64(1) + return bitCurve.affineFromJacobian(bitCurve.doubleJacobian(x1, y1, z1)) +} + +// doubleJacobian takes a point in Jacobian coordinates, (x, y, z), and +// returns its double, also in Jacobian form. +func (bitCurve *BitCurve) doubleJacobian(x, y, z *big.Int) (*big.Int, *big.Int, *big.Int) { + // See http://hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#doubling-dbl-2009-l + + a := new(big.Int).Mul(x, x) //X1² + b := new(big.Int).Mul(y, y) //Y1² + c := new(big.Int).Mul(b, b) //B² + + d := new(big.Int).Add(x, b) //X1+B + d.Mul(d, d) //(X1+B)² + d.Sub(d, a) //(X1+B)²-A + d.Sub(d, c) //(X1+B)²-A-C + d.Mul(d, big.NewInt(2)) //2*((X1+B)²-A-C) + + e := new(big.Int).Mul(big.NewInt(3), a) //3*A + f := new(big.Int).Mul(e, e) //E² + + x3 := new(big.Int).Mul(big.NewInt(2), d) //2*D + x3.Sub(f, x3) //F-2*D + x3.Mod(x3, bitCurve.P) + + y3 := new(big.Int).Sub(d, x3) //D-X3 + y3.Mul(e, y3) //E*(D-X3) + y3.Sub(y3, new(big.Int).Mul(big.NewInt(8), c)) //E*(D-X3)-8*C + y3.Mod(y3, bitCurve.P) + + z3 := new(big.Int).Mul(y, z) //Y1*Z1 + z3.Mul(big.NewInt(2), z3) //3*Y1*Z1 + z3.Mod(z3, bitCurve.P) + + return x3, y3, z3 +} + +// TODO: double check if it is okay +// ScalarMult returns k*(Bx,By) where k is a number in big-endian form. +func (bitCurve *BitCurve) ScalarMult(Bx, By *big.Int, k []byte) (*big.Int, *big.Int) { + // We have a slight problem in that the identity of the group (the + // point at infinity) cannot be represented in (x, y) form on a finite + // machine. Thus the standard add/double algorithm has to be tweaked + // slightly: our initial state is not the identity, but x, and we + // ignore the first true bit in |k|. If we don't find any true bits in + // |k|, then we return nil, nil, because we cannot return the identity + // element. + + Bz := new(big.Int).SetInt64(1) + x := Bx + y := By + z := Bz + + seenFirstTrue := false + for _, byte := range k { + for bitNum := 0; bitNum < 8; bitNum++ { + if seenFirstTrue { + x, y, z = bitCurve.doubleJacobian(x, y, z) + } + if byte&0x80 == 0x80 { + if !seenFirstTrue { + seenFirstTrue = true + } else { + x, y, z = bitCurve.addJacobian(Bx, By, Bz, x, y, z) + } + } + byte <<= 1 + } + } + + if !seenFirstTrue { + return nil, nil + } + + return bitCurve.affineFromJacobian(x, y, z) +} + +// ScalarBaseMult returns k*G, where G is the base point of the group and k is +// an integer in big-endian form. +func (bitCurve *BitCurve) ScalarBaseMult(k []byte) (*big.Int, *big.Int) { + return bitCurve.ScalarMult(bitCurve.Gx, bitCurve.Gy, k) +} + +var mask = []byte{0xff, 0x1, 0x3, 0x7, 0xf, 0x1f, 0x3f, 0x7f} + +// TODO: double check if it is okay +// GenerateKey returns a public/private key pair. The private key is generated +// using the given reader, which must return random data. +func (bitCurve *BitCurve) GenerateKey(rand io.Reader) (priv []byte, x, y *big.Int, err error) { + byteLen := (bitCurve.BitSize + 7) >> 3 + priv = make([]byte, byteLen) + + for x == nil { + _, err = io.ReadFull(rand, priv) + if err != nil { + return + } + // We have to mask off any excess bits in the case that the size of the + // underlying field is not a whole number of bytes. + priv[0] &= mask[bitCurve.BitSize%8] + // This is because, in tests, rand will return all zeros and we don't + // want to get the point at infinity and loop forever. + priv[1] ^= 0x42 + x, y = bitCurve.ScalarBaseMult(priv) + } + return +} + +// Marshal converts a point into the form specified in section 4.3.6 of ANSI +// X9.62. +func (bitCurve *BitCurve) Marshal(x, y *big.Int) []byte { + byteLen := (bitCurve.BitSize + 7) >> 3 + + ret := make([]byte, 1+2*byteLen) + ret[0] = 4 // uncompressed point + + xBytes := x.Bytes() + copy(ret[1+byteLen-len(xBytes):], xBytes) + yBytes := y.Bytes() + copy(ret[1+2*byteLen-len(yBytes):], yBytes) + return ret +} + +// Unmarshal converts a point, serialised by Marshal, into an x, y pair. On +// error, x = nil. +func (bitCurve *BitCurve) Unmarshal(data []byte) (x, y *big.Int) { + byteLen := (bitCurve.BitSize + 7) >> 3 + if len(data) != 1+2*byteLen { + return + } + if data[0] != 4 { // uncompressed form + return + } + x = new(big.Int).SetBytes(data[1 : 1+byteLen]) + y = new(big.Int).SetBytes(data[1+byteLen:]) + return +} + +//curve parameters taken from: +//http://www.secg.org/collateral/sec2_final.pdf + +var initonce sync.Once +var secp160k1 *BitCurve +var secp192k1 *BitCurve +var secp224k1 *BitCurve +var secp256k1 *BitCurve + +func initAll() { + initS160() + initS192() + initS224() + initS256() +} + +func initS160() { + // See SEC 2 section 2.4.1 + secp160k1 = new(BitCurve) + secp160k1.Name = "secp160k1" + secp160k1.P, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73", 16) + secp160k1.N, _ = new(big.Int).SetString("0100000000000000000001B8FA16DFAB9ACA16B6B3", 16) + secp160k1.B, _ = new(big.Int).SetString("0000000000000000000000000000000000000007", 16) + secp160k1.Gx, _ = new(big.Int).SetString("3B4C382CE37AA192A4019E763036F4F5DD4D7EBB", 16) + secp160k1.Gy, _ = new(big.Int).SetString("938CF935318FDCED6BC28286531733C3F03C4FEE", 16) + secp160k1.BitSize = 160 +} + +func initS192() { + // See SEC 2 section 2.5.1 + secp192k1 = new(BitCurve) + secp192k1.Name = "secp192k1" + secp192k1.P, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37", 16) + secp192k1.N, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D", 16) + secp192k1.B, _ = new(big.Int).SetString("000000000000000000000000000000000000000000000003", 16) + secp192k1.Gx, _ = new(big.Int).SetString("DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D", 16) + secp192k1.Gy, _ = new(big.Int).SetString("9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D", 16) + secp192k1.BitSize = 192 +} + +func initS224() { + // See SEC 2 section 2.6.1 + secp224k1 = new(BitCurve) + secp224k1.Name = "secp224k1" + secp224k1.P, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D", 16) + secp224k1.N, _ = new(big.Int).SetString("010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7", 16) + secp224k1.B, _ = new(big.Int).SetString("00000000000000000000000000000000000000000000000000000005", 16) + secp224k1.Gx, _ = new(big.Int).SetString("A1455B334DF099DF30FC28A169A467E9E47075A90F7E650EB6B7A45C", 16) + secp224k1.Gy, _ = new(big.Int).SetString("7E089FED7FBA344282CAFBD6F7E319F7C0B0BD59E2CA4BDB556D61A5", 16) + secp224k1.BitSize = 224 +} + +func initS256() { + // See SEC 2 section 2.7.1 + secp256k1 = new(BitCurve) + secp256k1.Name = "secp256k1" + secp256k1.P, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F", 16) + secp256k1.N, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141", 16) + secp256k1.B, _ = new(big.Int).SetString("0000000000000000000000000000000000000000000000000000000000000007", 16) + secp256k1.Gx, _ = new(big.Int).SetString("79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798", 16) + secp256k1.Gy, _ = new(big.Int).SetString("483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8", 16) + secp256k1.BitSize = 256 +} + +// S160 returns a BitCurve which implements secp160k1 (see SEC 2 section 2.4.1) +func S160() *BitCurve { + initonce.Do(initAll) + return secp160k1 +} + +// S192 returns a BitCurve which implements secp192k1 (see SEC 2 section 2.5.1) +func S192() *BitCurve { + initonce.Do(initAll) + return secp192k1 +} + +// S224 returns a BitCurve which implements secp224k1 (see SEC 2 section 2.6.1) +func S224() *BitCurve { + initonce.Do(initAll) + return secp224k1 +} + +// S256 returns a BitCurve which implements bitcurves (see SEC 2 section 2.7.1) +func S256() *BitCurve { + initonce.Do(initAll) + return secp256k1 +} diff --git a/vendor/github.com/ProtonMail/go-crypto/brainpool/brainpool.go b/vendor/github.com/ProtonMail/go-crypto/brainpool/brainpool.go new file mode 100644 index 000000000000..cb6676de24b1 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/brainpool/brainpool.go @@ -0,0 +1,134 @@ +// Package brainpool implements Brainpool elliptic curves. +// Implementation of rcurves is from github.com/ebfe/brainpool +// Note that these curves are implemented with naive, non-constant time operations +// and are likely not suitable for environments where timing attacks are a concern. +package brainpool + +import ( + "crypto/elliptic" + "math/big" + "sync" +) + +var ( + once sync.Once + p256t1, p384t1, p512t1 *elliptic.CurveParams + p256r1, p384r1, p512r1 *rcurve +) + +func initAll() { + initP256t1() + initP384t1() + initP512t1() + initP256r1() + initP384r1() + initP512r1() +} + +func initP256t1() { + p256t1 = &elliptic.CurveParams{Name: "brainpoolP256t1"} + p256t1.P, _ = new(big.Int).SetString("A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377", 16) + p256t1.N, _ = new(big.Int).SetString("A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7", 16) + p256t1.B, _ = new(big.Int).SetString("662C61C430D84EA4FE66A7733D0B76B7BF93EBC4AF2F49256AE58101FEE92B04", 16) + p256t1.Gx, _ = new(big.Int).SetString("A3E8EB3CC1CFE7B7732213B23A656149AFA142C47AAFBC2B79A191562E1305F4", 16) + p256t1.Gy, _ = new(big.Int).SetString("2D996C823439C56D7F7B22E14644417E69BCB6DE39D027001DABE8F35B25C9BE", 16) + p256t1.BitSize = 256 +} + +func initP256r1() { + twisted := p256t1 + params := &elliptic.CurveParams{ + Name: "brainpoolP256r1", + P: twisted.P, + N: twisted.N, + BitSize: twisted.BitSize, + } + params.Gx, _ = new(big.Int).SetString("8BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262", 16) + params.Gy, _ = new(big.Int).SetString("547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F046997", 16) + z, _ := new(big.Int).SetString("3E2D4BD9597B58639AE7AA669CAB9837CF5CF20A2C852D10F655668DFC150EF0", 16) + p256r1 = newrcurve(twisted, params, z) +} + +func initP384t1() { + p384t1 = &elliptic.CurveParams{Name: "brainpoolP384t1"} + p384t1.P, _ = new(big.Int).SetString("8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB71123ACD3A729901D1A71874700133107EC53", 16) + p384t1.N, _ = new(big.Int).SetString("8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7CF3AB6AF6B7FC3103B883202E9046565", 16) + p384t1.B, _ = new(big.Int).SetString("7F519EADA7BDA81BD826DBA647910F8C4B9346ED8CCDC64E4B1ABD11756DCE1D2074AA263B88805CED70355A33B471EE", 16) + p384t1.Gx, _ = new(big.Int).SetString("18DE98B02DB9A306F2AFCD7235F72A819B80AB12EBD653172476FECD462AABFFC4FF191B946A5F54D8D0AA2F418808CC", 16) + p384t1.Gy, _ = new(big.Int).SetString("25AB056962D30651A114AFD2755AD336747F93475B7A1FCA3B88F2B6A208CCFE469408584DC2B2912675BF5B9E582928", 16) + p384t1.BitSize = 384 +} + +func initP384r1() { + twisted := p384t1 + params := &elliptic.CurveParams{ + Name: "brainpoolP384r1", + P: twisted.P, + N: twisted.N, + BitSize: twisted.BitSize, + } + params.Gx, _ = new(big.Int).SetString("1D1C64F068CF45FFA2A63A81B7C13F6B8847A3E77EF14FE3DB7FCAFE0CBD10E8E826E03436D646AAEF87B2E247D4AF1E", 16) + params.Gy, _ = new(big.Int).SetString("8ABE1D7520F9C2A45CB1EB8E95CFD55262B70B29FEEC5864E19C054FF99129280E4646217791811142820341263C5315", 16) + z, _ := new(big.Int).SetString("41DFE8DD399331F7166A66076734A89CD0D2BCDB7D068E44E1F378F41ECBAE97D2D63DBC87BCCDDCCC5DA39E8589291C", 16) + p384r1 = newrcurve(twisted, params, z) +} + +func initP512t1() { + p512t1 = &elliptic.CurveParams{Name: "brainpoolP512t1"} + p512t1.P, _ = new(big.Int).SetString("AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA703308717D4D9B009BC66842AECDA12AE6A380E62881FF2F2D82C68528AA6056583A48F3", 16) + p512t1.N, _ = new(big.Int).SetString("AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA70330870553E5C414CA92619418661197FAC10471DB1D381085DDADDB58796829CA90069", 16) + p512t1.B, _ = new(big.Int).SetString("7CBBBCF9441CFAB76E1890E46884EAE321F70C0BCB4981527897504BEC3E36A62BCDFA2304976540F6450085F2DAE145C22553B465763689180EA2571867423E", 16) + p512t1.Gx, _ = new(big.Int).SetString("640ECE5C12788717B9C1BA06CBC2A6FEBA85842458C56DDE9DB1758D39C0313D82BA51735CDB3EA499AA77A7D6943A64F7A3F25FE26F06B51BAA2696FA9035DA", 16) + p512t1.Gy, _ = new(big.Int).SetString("5B534BD595F5AF0FA2C892376C84ACE1BB4E3019B71634C01131159CAE03CEE9D9932184BEEF216BD71DF2DADF86A627306ECFF96DBB8BACE198B61E00F8B332", 16) + p512t1.BitSize = 512 +} + +func initP512r1() { + twisted := p512t1 + params := &elliptic.CurveParams{ + Name: "brainpoolP512r1", + P: twisted.P, + N: twisted.N, + BitSize: twisted.BitSize, + } + params.Gx, _ = new(big.Int).SetString("81AEE4BDD82ED9645A21322E9C4C6A9385ED9F70B5D916C1B43B62EEF4D0098EFF3B1F78E2D0D48D50D1687B93B97D5F7C6D5047406A5E688B352209BCB9F822", 16) + params.Gy, _ = new(big.Int).SetString("7DDE385D566332ECC0EABFA9CF7822FDF209F70024A57B1AA000C55B881F8111B2DCDE494A5F485E5BCA4BD88A2763AED1CA2B2FA8F0540678CD1E0F3AD80892", 16) + z, _ := new(big.Int).SetString("12EE58E6764838B69782136F0F2D3BA06E27695716054092E60A80BEDB212B64E585D90BCE13761F85C3F1D2A64E3BE8FEA2220F01EBA5EEB0F35DBD29D922AB", 16) + p512r1 = newrcurve(twisted, params, z) +} + +// P256t1 returns a Curve which implements Brainpool P256t1 (see RFC 5639, section 3.4) +func P256t1() elliptic.Curve { + once.Do(initAll) + return p256t1 +} + +// P256r1 returns a Curve which implements Brainpool P256r1 (see RFC 5639, section 3.4) +func P256r1() elliptic.Curve { + once.Do(initAll) + return p256r1 +} + +// P384t1 returns a Curve which implements Brainpool P384t1 (see RFC 5639, section 3.6) +func P384t1() elliptic.Curve { + once.Do(initAll) + return p384t1 +} + +// P384r1 returns a Curve which implements Brainpool P384r1 (see RFC 5639, section 3.6) +func P384r1() elliptic.Curve { + once.Do(initAll) + return p384r1 +} + +// P512t1 returns a Curve which implements Brainpool P512t1 (see RFC 5639, section 3.7) +func P512t1() elliptic.Curve { + once.Do(initAll) + return p512t1 +} + +// P512r1 returns a Curve which implements Brainpool P512r1 (see RFC 5639, section 3.7) +func P512r1() elliptic.Curve { + once.Do(initAll) + return p512r1 +} diff --git a/vendor/github.com/ProtonMail/go-crypto/brainpool/rcurve.go b/vendor/github.com/ProtonMail/go-crypto/brainpool/rcurve.go new file mode 100644 index 000000000000..7e291d6aa4e3 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/brainpool/rcurve.go @@ -0,0 +1,83 @@ +package brainpool + +import ( + "crypto/elliptic" + "math/big" +) + +var _ elliptic.Curve = (*rcurve)(nil) + +type rcurve struct { + twisted elliptic.Curve + params *elliptic.CurveParams + z *big.Int + zinv *big.Int + z2 *big.Int + z3 *big.Int + zinv2 *big.Int + zinv3 *big.Int +} + +var ( + two = big.NewInt(2) + three = big.NewInt(3) +) + +func newrcurve(twisted elliptic.Curve, params *elliptic.CurveParams, z *big.Int) *rcurve { + zinv := new(big.Int).ModInverse(z, params.P) + return &rcurve{ + twisted: twisted, + params: params, + z: z, + zinv: zinv, + z2: new(big.Int).Exp(z, two, params.P), + z3: new(big.Int).Exp(z, three, params.P), + zinv2: new(big.Int).Exp(zinv, two, params.P), + zinv3: new(big.Int).Exp(zinv, three, params.P), + } +} + +func (curve *rcurve) toTwisted(x, y *big.Int) (*big.Int, *big.Int) { + var tx, ty big.Int + tx.Mul(x, curve.z2) + tx.Mod(&tx, curve.params.P) + ty.Mul(y, curve.z3) + ty.Mod(&ty, curve.params.P) + return &tx, &ty +} + +func (curve *rcurve) fromTwisted(tx, ty *big.Int) (*big.Int, *big.Int) { + var x, y big.Int + x.Mul(tx, curve.zinv2) + x.Mod(&x, curve.params.P) + y.Mul(ty, curve.zinv3) + y.Mod(&y, curve.params.P) + return &x, &y +} + +func (curve *rcurve) Params() *elliptic.CurveParams { + return curve.params +} + +func (curve *rcurve) IsOnCurve(x, y *big.Int) bool { + return curve.twisted.IsOnCurve(curve.toTwisted(x, y)) +} + +func (curve *rcurve) Add(x1, y1, x2, y2 *big.Int) (x, y *big.Int) { + tx1, ty1 := curve.toTwisted(x1, y1) + tx2, ty2 := curve.toTwisted(x2, y2) + return curve.fromTwisted(curve.twisted.Add(tx1, ty1, tx2, ty2)) +} + +func (curve *rcurve) Double(x1, y1 *big.Int) (x, y *big.Int) { + return curve.fromTwisted(curve.twisted.Double(curve.toTwisted(x1, y1))) +} + +func (curve *rcurve) ScalarMult(x1, y1 *big.Int, scalar []byte) (x, y *big.Int) { + tx1, ty1 := curve.toTwisted(x1, y1) + return curve.fromTwisted(curve.twisted.ScalarMult(tx1, ty1, scalar)) +} + +func (curve *rcurve) ScalarBaseMult(scalar []byte) (x, y *big.Int) { + return curve.fromTwisted(curve.twisted.ScalarBaseMult(scalar)) +} diff --git a/vendor/github.com/ProtonMail/go-crypto/eax/eax.go b/vendor/github.com/ProtonMail/go-crypto/eax/eax.go new file mode 100644 index 000000000000..3ae91d594cd7 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/eax/eax.go @@ -0,0 +1,162 @@ +// Copyright (C) 2019 ProtonTech AG + +// Package eax provides an implementation of the EAX +// (encrypt-authenticate-translate) mode of operation, as described in +// Bellare, Rogaway, and Wagner "THE EAX MODE OF OPERATION: A TWO-PASS +// AUTHENTICATED-ENCRYPTION SCHEME OPTIMIZED FOR SIMPLICITY AND EFFICIENCY." +// In FSE'04, volume 3017 of LNCS, 2004 +package eax + +import ( + "crypto/cipher" + "crypto/subtle" + "errors" + "github.com/ProtonMail/go-crypto/internal/byteutil" +) + +const ( + defaultTagSize = 16 + defaultNonceSize = 16 +) + +type eax struct { + block cipher.Block // Only AES-{128, 192, 256} supported + tagSize int // At least 12 bytes recommended + nonceSize int +} + +func (e *eax) NonceSize() int { + return e.nonceSize +} + +func (e *eax) Overhead() int { + return e.tagSize +} + +// NewEAX returns an EAX instance with AES-{KEYLENGTH} and default nonce and +// tag lengths. Supports {128, 192, 256}- bit key length. +func NewEAX(block cipher.Block) (cipher.AEAD, error) { + return NewEAXWithNonceAndTagSize(block, defaultNonceSize, defaultTagSize) +} + +// NewEAXWithNonceAndTagSize returns an EAX instance with AES-{keyLength} and +// given nonce and tag lengths in bytes. Panics on zero nonceSize and +// exceedingly long tags. +// +// It is recommended to use at least 12 bytes as tag length (see, for instance, +// NIST SP 800-38D). +// +// Only to be used for compatibility with existing cryptosystems with +// non-standard parameters. For all other cases, prefer NewEAX. +func NewEAXWithNonceAndTagSize( + block cipher.Block, nonceSize, tagSize int) (cipher.AEAD, error) { + if nonceSize < 1 { + return nil, eaxError("Cannot initialize EAX with nonceSize = 0") + } + if tagSize > block.BlockSize() { + return nil, eaxError("Custom tag length exceeds blocksize") + } + return &eax{ + block: block, + tagSize: tagSize, + nonceSize: nonceSize, + }, nil +} + +func (e *eax) Seal(dst, nonce, plaintext, adata []byte) []byte { + if len(nonce) > e.nonceSize { + panic("crypto/eax: Nonce too long for this instance") + } + ret, out := byteutil.SliceForAppend(dst, len(plaintext)+e.tagSize) + omacNonce := e.omacT(0, nonce) + omacAdata := e.omacT(1, adata) + + // Encrypt message using CTR mode and omacNonce as IV + ctr := cipher.NewCTR(e.block, omacNonce) + ciphertextData := out[:len(plaintext)] + ctr.XORKeyStream(ciphertextData, plaintext) + + omacCiphertext := e.omacT(2, ciphertextData) + + tag := out[len(plaintext):] + for i := 0; i < e.tagSize; i++ { + tag[i] = omacCiphertext[i] ^ omacNonce[i] ^ omacAdata[i] + } + return ret +} + +func (e *eax) Open(dst, nonce, ciphertext, adata []byte) ([]byte, error) { + if len(nonce) > e.nonceSize { + panic("crypto/eax: Nonce too long for this instance") + } + if len(ciphertext) < e.tagSize { + return nil, eaxError("Ciphertext shorter than tag length") + } + sep := len(ciphertext) - e.tagSize + + // Compute tag + omacNonce := e.omacT(0, nonce) + omacAdata := e.omacT(1, adata) + omacCiphertext := e.omacT(2, ciphertext[:sep]) + + tag := make([]byte, e.tagSize) + for i := 0; i < e.tagSize; i++ { + tag[i] = omacCiphertext[i] ^ omacNonce[i] ^ omacAdata[i] + } + + // Compare tags + if subtle.ConstantTimeCompare(ciphertext[sep:], tag) != 1 { + return nil, eaxError("Tag authentication failed") + } + + // Decrypt ciphertext + ret, out := byteutil.SliceForAppend(dst, len(ciphertext)) + ctr := cipher.NewCTR(e.block, omacNonce) + ctr.XORKeyStream(out, ciphertext[:sep]) + + return ret[:sep], nil +} + +// Tweakable OMAC - Calls OMAC_K([t]_n || plaintext) +func (e *eax) omacT(t byte, plaintext []byte) []byte { + blockSize := e.block.BlockSize() + byteT := make([]byte, blockSize) + byteT[blockSize-1] = t + concat := append(byteT, plaintext...) + return e.omac(concat) +} + +func (e *eax) omac(plaintext []byte) []byte { + blockSize := e.block.BlockSize() + // L ← E_K(0^n); B ← 2L; P ← 4L + L := make([]byte, blockSize) + e.block.Encrypt(L, L) + B := byteutil.GfnDouble(L) + P := byteutil.GfnDouble(B) + + // CBC with IV = 0 + cbc := cipher.NewCBCEncrypter(e.block, make([]byte, blockSize)) + padded := e.pad(plaintext, B, P) + cbcCiphertext := make([]byte, len(padded)) + cbc.CryptBlocks(cbcCiphertext, padded) + + return cbcCiphertext[len(cbcCiphertext)-blockSize:] +} + +func (e *eax) pad(plaintext, B, P []byte) []byte { + // if |M| in {n, 2n, 3n, ...} + blockSize := e.block.BlockSize() + if len(plaintext) != 0 && len(plaintext)%blockSize == 0 { + return byteutil.RightXor(plaintext, B) + } + + // else return (M || 1 || 0^(n−1−(|M| % n))) xor→ P + ending := make([]byte, blockSize-len(plaintext)%blockSize) + ending[0] = 0x80 + padded := append(plaintext, ending...) + return byteutil.RightXor(padded, P) +} + +func eaxError(err string) error { + return errors.New("crypto/eax: " + err) +} diff --git a/vendor/github.com/ProtonMail/go-crypto/eax/eax_test_vectors.go b/vendor/github.com/ProtonMail/go-crypto/eax/eax_test_vectors.go new file mode 100644 index 000000000000..ddb53d07905c --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/eax/eax_test_vectors.go @@ -0,0 +1,58 @@ +package eax + +// Test vectors from +// https://web.cs.ucdavis.edu/~rogaway/papers/eax.pdf +var testVectors = []struct { + msg, key, nonce, header, ciphertext string +}{ + {"", + "233952DEE4D5ED5F9B9C6D6FF80FF478", + "62EC67F9C3A4A407FCB2A8C49031A8B3", + "6BFB914FD07EAE6B", + "E037830E8389F27B025A2D6527E79D01"}, + {"F7FB", + "91945D3F4DCBEE0BF45EF52255F095A4", + "BECAF043B0A23D843194BA972C66DEBD", + "FA3BFD4806EB53FA", + "19DD5C4C9331049D0BDAB0277408F67967E5"}, + {"1A47CB4933", + "01F74AD64077F2E704C0F60ADA3DD523", + "70C3DB4F0D26368400A10ED05D2BFF5E", + "234A3463C1264AC6", + "D851D5BAE03A59F238A23E39199DC9266626C40F80"}, + {"481C9E39B1", + "D07CF6CBB7F313BDDE66B727AFD3C5E8", + "8408DFFF3C1A2B1292DC199E46B7D617", + "33CCE2EABFF5A79D", + "632A9D131AD4C168A4225D8E1FF755939974A7BEDE"}, + {"40D0C07DA5E4", + "35B6D0580005BBC12B0587124557D2C2", + "FDB6B06676EEDC5C61D74276E1F8E816", + "AEB96EAEBE2970E9", + "071DFE16C675CB0677E536F73AFE6A14B74EE49844DD"}, + {"4DE3B35C3FC039245BD1FB7D", + "BD8E6E11475E60B268784C38C62FEB22", + "6EAC5C93072D8E8513F750935E46DA1B", + "D4482D1CA78DCE0F", + "835BB4F15D743E350E728414ABB8644FD6CCB86947C5E10590210A4F"}, + {"8B0A79306C9CE7ED99DAE4F87F8DD61636", + "7C77D6E813BED5AC98BAA417477A2E7D", + "1A8C98DCD73D38393B2BF1569DEEFC19", + "65D2017990D62528", + "02083E3979DA014812F59F11D52630DA30137327D10649B0AA6E1C181DB617D7F2"}, + {"1BDA122BCE8A8DBAF1877D962B8592DD2D56", + "5FFF20CAFAB119CA2FC73549E20F5B0D", + "DDE59B97D722156D4D9AFF2BC7559826", + "54B9F04E6A09189A", + "2EC47B2C4954A489AFC7BA4897EDCDAE8CC33B60450599BD02C96382902AEF7F832A"}, + {"6CF36720872B8513F6EAB1A8A44438D5EF11", + "A4A4782BCFFD3EC5E7EF6D8C34A56123", + "B781FCF2F75FA5A8DE97A9CA48E522EC", + "899A175897561D7E", + "0DE18FD0FDD91E7AF19F1D8EE8733938B1E8E7F6D2231618102FDB7FE55FF1991700"}, + {"CA40D7446E545FFAED3BD12A740A659FFBBB3CEAB7", + "8395FCF1E95BEBD697BD010BC766AAC3", + "22E7ADD93CFC6393C57EC0B3C17D6B44", + "126735FCC320D25A", + "CB8920F87A6C75CFF39627B56E3ED197C552D295A7CFC46AFC253B4652B1AF3795B124AB6E"}, +} diff --git a/vendor/github.com/ProtonMail/go-crypto/eax/random_vectors.go b/vendor/github.com/ProtonMail/go-crypto/eax/random_vectors.go new file mode 100644 index 000000000000..4eb19f28d9c4 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/eax/random_vectors.go @@ -0,0 +1,131 @@ +// These vectors include key length in {128, 192, 256}, tag size 128, and +// random nonce, header, and plaintext lengths. + +// This file was automatically generated. + +package eax + +var randomVectors = []struct { + key, nonce, header, plaintext, ciphertext string +}{ + {"DFDE093F36B0356E5A81F609786982E3", + "1D8AC604419001816905BA72B14CED7E", + "152A1517A998D7A24163FCDD146DE81AC347C8B97088F502093C1ABB8F6E33D9A219C34D7603A18B1F5ABE02E56661B7D7F67E81EC08C1302EF38D80A859486D450E94A4F26AD9E68EEBBC0C857A0FC5CF9E641D63D565A7E361BC8908F5A8DC8FD6", + "1C8EAAB71077FE18B39730A3156ADE29C5EE824C7EE86ED2A253B775603FB237116E654F6FEC588DD27F523A0E01246FE73FE348491F2A8E9ABC6CA58D663F71CDBCF4AD798BE46C42AE6EE8B599DB44A1A48D7BBBBA0F7D2750181E1C5E66967F7D57CBD30AFBDA5727", + "79E7E150934BBEBF7013F61C60462A14D8B15AF7A248AFB8A344EF021C1500E16666891D6E973D8BB56B71A371F12CA34660C4410C016982B20F547E3762A58B7BF4F20236CADCF559E2BE7D783B13723B2741FC7CDC8997D839E39A3DDD2BADB96743DD7049F1BDB0516A262869915B3F70498AFB7B191BF960"}, + {"F10619EF02E5D94D7550EB84ED364A21", + "8DC0D4F2F745BBAE835CC5574B942D20", + "FE561358F2E8DF7E1024FF1AE9A8D36EBD01352214505CB99D644777A8A1F6027FA2BDBFC529A9B91136D5F2416CFC5F0F4EC3A1AFD32BDDA23CA504C5A5CB451785FABF4DFE4CD50D817491991A60615B30286361C100A95D1712F2A45F8E374461F4CA2B", + "D7B5A971FC219631D30EFC3664AE3127D9CF3097DAD9C24AC7905D15E8D9B25B026B31D68CAE00975CDB81EB1FD96FD5E1A12E2BB83FA25F1B1D91363457657FC03875C27F2946C5", + "2F336ED42D3CC38FC61660C4CD60BA4BD438B05F5965D8B7B399D2E7167F5D34F792D318F94DB15D67463AC449E13D568CC09BFCE32A35EE3EE96A041927680AE329811811E27F2D1E8E657707AF99BA96D13A478D695D59"}, + {"429F514EFC64D98A698A9247274CFF45", + "976AA5EB072F912D126ACEBC954FEC38", + "A71D89DC5B6CEDBB7451A27C3C2CAE09126DB4C421", + "5632FE62AB1DC549D54D3BC3FC868ACCEDEFD9ECF5E9F8", + "848AE4306CA8C7F416F8707625B7F55881C0AB430353A5C967CDA2DA787F581A70E34DBEBB2385"}, + {"398138F309085F47F8457CDF53895A63", + "F8A8A7F2D28E5FFF7BBC2F24353F7A36", + "5D633C21BA7764B8855CAB586F3746E236AD486039C83C6B56EFA9C651D38A41D6B20DAEE3418BFEA44B8BD6", + "A3BBAA91920AF5E10659818B1B3B300AC79BFC129C8329E75251F73A66D3AE0128EB91D5031E0A65C329DB7D1E9C0493E268", + "D078097267606E5FB07CFB7E2B4B718172A82C6A4CEE65D549A4DFB9838003BD2FBF64A7A66988AC1A632FD88F9E9FBB57C5A78AD2E086EACBA3DB68511D81C2970A"}, + {"7A4151EBD3901B42CBA45DAFB2E931BA", + "0FC88ACEE74DD538040321C330974EB8", + "250464FB04733BAB934C59E6AD2D6AE8D662CBCFEFBE61E5A308D4211E58C4C25935B72C69107722E946BFCBF416796600542D76AEB73F2B25BF53BAF97BDEB36ED3A7A51C31E7F170EB897457E7C17571D1BA0A908954E9", + "88C41F3EBEC23FAB8A362D969CAC810FAD4F7CA6A7F7D0D44F060F92E37E1183768DD4A8C733F71C96058D362A39876D183B86C103DE", + "74A25B2182C51096D48A870D80F18E1CE15867778E34FCBA6BD7BFB3739FDCD42AD0F2D9F4EBA29085285C6048C15BCE5E5166F1F962D3337AA88E6062F05523029D0A7F0BF9"}, + {"BFB147E1CD5459424F8C0271FC0E0DC5", + "EABCC126442BF373969EA3015988CC45", + "4C0880E1D71AA2C7", + "BE1B5EC78FBF73E7A6682B21BA7E0E5D2D1C7ABE", + "5660D7C1380E2F306895B1402CB2D6C37876504276B414D120F4CF92FDDDBB293A238EA0"}, + {"595DD6F52D18BC2CA8EB4EDAA18D9FA3", + "0F84B5D36CF4BC3B863313AF3B4D2E97", + "30AE6CC5F99580F12A779D98BD379A60948020C0B6FBD5746B30BA3A15C6CD33DAF376C70A9F15B6C0EB410A93161F7958AE23", + "8EF3687A1642B070970B0B91462229D1D76ABC154D18211F7152AA9FF368", + "317C1DDB11417E5A9CC4DDE7FDFF6659A5AC4B31DE025212580A05CDAC6024D3E4AE7C2966E52B9129E9ECDBED86"}, + {"44E6F2DC8FDC778AD007137D11410F50", + "270A237AD977F7187AA6C158A0BAB24F", + "509B0F0EB12E2AA5C5BA2DE553C07FAF4CE0C9E926531AA709A3D6224FCB783ACCF1559E10B1123EBB7D52E8AB54E6B5352A9ED0D04124BF0E9D9BACFD7E32B817B2E625F5EE94A64EDE9E470DE7FE6886C19B294F9F828209FE257A78", + "8B3D7815DF25618A5D0C55A601711881483878F113A12EC36CF64900549A3199555528559DC118F789788A55FAFD944E6E99A9CA3F72F238CD3F4D88223F7A745992B3FAED1848", + "1CC00D79F7AD82FDA71B58D286E5F34D0CC4CEF30704E771CC1E50746BDF83E182B078DB27149A42BAE619DF0F85B0B1090AD55D3B4471B0D6F6ECCD09C8F876B30081F0E7537A9624F8AAF29DA85E324122EFB4D68A56"}, + {"BB7BC352A03044B4428D8DBB4B0701FDEC4649FD17B81452", + "8B4BBE26CCD9859DCD84884159D6B0A4", + "2212BEB0E78E0F044A86944CF33C8D5C80D9DBE1034BF3BCF73611835C7D3A52F5BD2D81B68FD681B68540A496EE5DA16FD8AC8824E60E1EC2042BE28FB0BFAD4E4B03596446BDD8C37D936D9B3D5295BE19F19CF5ACE1D33A46C952CE4DE5C12F92C1DD051E04AEED", + "9037234CC44FFF828FABED3A7084AF40FA7ABFF8E0C0EFB57A1CC361E18FC4FAC1AB54F3ABFE9FF77263ACE16C3A", + "A9391B805CCD956081E0B63D282BEA46E7025126F1C1631239C33E92AA6F92CD56E5A4C56F00FF9658E93D48AF4EF0EF81628E34AD4DB0CDAEDCD2A17EE7"}, + {"99C0AD703196D2F60A74E6B378B838B31F82EA861F06FC4E", + "92745C018AA708ECFEB1667E9F3F1B01", + "828C69F376C0C0EC651C67749C69577D589EE39E51404D80EBF70C8660A8F5FD375473F4A7C611D59CB546A605D67446CE2AA844135FCD78BB5FBC90222A00D42920BB1D7EEDFB0C4672554F583EF23184F89063CDECBE482367B5F9AF3ACBC3AF61392BD94CBCD9B64677", + "A879214658FD0A5B0E09836639BF82E05EC7A5EF71D4701934BDA228435C68AC3D5CEB54997878B06A655EEACEFB1345C15867E7FE6C6423660C8B88DF128EBD6BCD85118DBAE16E9252FFB204324E5C8F38CA97759BDBF3CB0083", + "51FE87996F194A2585E438B023B345439EA60D1AEBED4650CDAF48A4D4EEC4FC77DC71CC4B09D3BEEF8B7B7AF716CE2B4EFFB3AC9E6323C18AC35E0AA6E2BBBC8889490EB6226C896B0D105EAB42BFE7053CCF00ED66BA94C1BA09A792AA873F0C3B26C5C5F9A936E57B25"}, + {"7086816D00D648FB8304AA8C9E552E1B69A9955FB59B25D1", + "0F45CF7F0BF31CCEB85D9DA10F4D749F", + "93F27C60A417D9F0669E86ACC784FC8917B502DAF30A6338F11B30B94D74FEFE2F8BE1BBE2EAD10FAB7EED3C6F72B7C3ECEE1937C32ED4970A6404E139209C05", + "877F046601F3CBE4FB1491943FA29487E738F94B99AF206262A1D6FF856C9AA0B8D4D08A54370C98F8E88FA3DCC2B14C1F76D71B2A4C7963AEE8AF960464C5BEC8357AD00DC8", + "FE96906B895CE6A8E72BC72344E2C8BB3C63113D70EAFA26C299BAFE77A8A6568172EB447FB3E86648A0AF3512DEB1AAC0819F3EC553903BF28A9FB0F43411237A774BF9EE03E445D280FBB9CD12B9BAAB6EF5E52691"}, + {"062F65A896D5BF1401BADFF70E91B458E1F9BD4888CB2E4D", + "5B11EA1D6008EBB41CF892FCA5B943D1", + "BAF4FF5C8242", + "A8870E091238355984EB2F7D61A865B9170F440BFF999A5993DD41A10F4440D21FF948DDA2BF663B2E03AC3324492DC5E40262ECC6A65C07672353BE23E7FB3A9D79FF6AA38D97960905A38DECC312CB6A59E5467ECF06C311CD43ADC0B543EDF34FE8BE611F176460D5627CA51F8F8D9FED71F55C", + "B10E127A632172CF8AA7539B140D2C9C2590E6F28C3CB892FC498FCE56A34F732FBFF32E79C7B9747D9094E8635A0C084D6F0247F9768FB5FF83493799A9BEC6C39572120C40E9292C8C947AE8573462A9108C36D9D7112E6995AE5867E6C8BB387D1C5D4BEF524F391B9FD9F0A3B4BFA079E915BCD920185CFD38D114C558928BD7D47877"}, + {"38A8E45D6D705A11AF58AED5A1344896998EACF359F2E26A", + "FD82B5B31804FF47D44199B533D0CF84", + "DE454D4E62FE879F2050EE3E25853623D3E9AC52EEC1A1779A48CFAF5ECA0BFDE44749391866D1", + "B804", + "164BB965C05EBE0931A1A63293EDF9C38C27"}, + {"34C33C97C6D7A0850DA94D78A58DC61EC717CD7574833068", + "343BE00DA9483F05C14F2E9EB8EA6AE8", + "78312A43EFDE3CAE34A65796FF059A3FE15304EEA5CF1D9306949FE5BF3349D4977D4EBE76C040FE894C5949E4E4D6681153DA87FB9AC5062063CA2EA183566343362370944CE0362D25FC195E124FD60E8682E665D13F2229DDA3E4B2CB1DCA", + "CC11BB284B1153578E4A5ED9D937B869DAF00F5B1960C23455CA9CC43F486A3BE0B66254F1041F04FDF459C8640465B6E1D2CF899A381451E8E7FCB50CF87823BE77E24B132BBEEDC72E53369B275E1D8F49ECE59F4F215230AC4FE133FC80E4F634EE80BA4682B62C86", + "E7F703DC31A95E3A4919FF957836CB76C063D81702AEA4703E1C2BF30831E58C4609D626EC6810E12EAA5B930F049FF9EFC22C3E3F1EBD4A1FB285CB02A1AC5AD46B425199FC0A85670A5C4E3DAA9636C8F64C199F42F18AAC8EA7457FD377F322DD7752D7D01B946C8F0A97E6113F0D50106F319AFD291AAACE"}, + {"C6ECF7F053573E403E61B83052A343D93CBCC179D1E835BE", + "E280E13D7367042E3AA09A80111B6184", + "21486C9D7A9647", + "5F2639AFA6F17931853791CD8C92382BBB677FD72D0AB1A080D0E49BFAA21810E963E4FACD422E92F65CBFAD5884A60CD94740DF31AF02F95AA57DA0C4401B0ED906", + "5C51DB20755302070C45F52E50128A67C8B2E4ED0EACB7E29998CCE2E8C289DD5655913EC1A51CC3AABE5CDC2402B2BE7D6D4BF6945F266FBD70BA9F37109067157AE7530678B45F64475D4EBFCB5FFF46A5"}, + {"5EC6CF7401BC57B18EF154E8C38ACCA8959E57D2F3975FF5", + "656B41CB3F9CF8C08BAD7EBFC80BD225", + "6B817C2906E2AF425861A7EF59BA5801F143EE2A139EE72697CDE168B4", + "2C0E1DDC9B1E5389BA63845B18B1F8A1DB062037151BCC56EF7C21C0BB4DAE366636BBA975685D7CC5A94AFBE89C769016388C56FB7B57CE750A12B718A8BDCF70E80E8659A8330EFC8F86640F21735E8C80E23FE43ABF23507CE3F964AE4EC99D", + "ED780CF911E6D1AA8C979B889B0B9DC1ABE261832980BDBFB576901D9EF5AB8048998E31A15BE54B3E5845A4D136AD24D0BDA1C3006168DF2F8AC06729CB0818867398150020131D8F04EDF1923758C9EABB5F735DE5EA1758D4BC0ACFCA98AFD202E9839B8720253693B874C65586C6F0"}, + {"C92F678EB2208662F5BCF3403EC05F5961E957908A3E79421E1D25FC19054153", + "DA0F3A40983D92F2D4C01FED33C7A192", + "2B6E9D26DB406A0FAB47608657AA10EFC2B4AA5F459B29FF85AC9A40BFFE7AEB04F77E9A11FAAA116D7F6D4DA417671A9AB02C588E0EF59CB1BFB4B1CC931B63A3B3A159FCEC97A04D1E6F0C7E6A9CEF6B0ABB04758A69F1FE754DF4C2610E8C46B6CF413BDB31351D55BEDCB7B4A13A1C98E10984475E0F2F957853", + "F37326A80E08", + "83519E53E321D334F7C10B568183775C0E9AAE55F806"}, + {"6847E0491BE57E72995D186D50094B0B3593957A5146798FCE68B287B2FB37B5", + "3EE1182AEBB19A02B128F28E1D5F7F99", + "D9F35ABB16D776CE", + "DB7566ED8EA95BDF837F23DB277BAFBC5E70D1105ADFD0D9EF15475051B1EF94709C67DCA9F8D5", + "2CDCED0C9EBD6E2A508822A685F7DCD1CDD99E7A5FCA786C234E7F7F1D27EC49751AD5DCFA30C5EDA87C43CAE3B919B6BBCFE34C8EDA59"}, + {"82B019673642C08388D3E42075A4D5D587558C229E4AB8F660E37650C4C41A0A", + "336F5D681E0410FAE7B607246092C6DC", + "D430CBD8FE435B64214E9E9CDC5DE99D31CFCFB8C10AA0587A49DF276611", + "998404153AD77003E1737EDE93ED79859EE6DCCA93CB40C4363AA817ABF2DBBD46E42A14A7183B6CC01E12A577888141363D0AE011EB6E8D28C0B235", + "9BEF69EEB60BD3D6065707B7557F25292A8872857CFBD24F2F3C088E4450995333088DA50FD9121221C504DF1D0CD5EFE6A12666C5D5BB12282CF4C19906E9CFAB97E9BDF7F49DC17CFC384B"}, + {"747B2E269B1859F0622C15C8BAD6A725028B1F94B8DB7326948D1E6ED663A8BC", + "AB91F7245DDCE3F1C747872D47BE0A8A", + "3B03F786EF1DDD76E1D42646DA4CD2A5165DC5383CE86D1A0B5F13F910DC278A4E451EE0192CBA178E13B3BA27FDC7840DF73D2E104B", + "6B803F4701114F3E5FE21718845F8416F70F626303F545BE197189E0A2BA396F37CE06D389EB2658BC7D56D67868708F6D0D32", + "1570DDB0BCE75AA25D1957A287A2C36B1A5F2270186DA81BA6112B7F43B0F3D1D0ED072591DCF1F1C99BBB25621FC39B896FF9BD9413A2845363A9DCD310C32CF98E57"}, + {"02E59853FB29AEDA0FE1C5F19180AD99A12FF2F144670BB2B8BADF09AD812E0A", + "C691294EF67CD04D1B9242AF83DD1421", + "879334DAE3", + "1E17F46A98FEF5CBB40759D95354", + "FED8C3FF27DDF6313AED444A2985B36CBA268AAD6AAC563C0BA28F6DB5DB"}, + {"F6C1FB9B4188F2288FF03BD716023198C3582CF2A037FC2F29760916C2B7FCDB", + "4228DA0678CA3534588859E77DFF014C", + "D8153CAF35539A61DD8D05B3C9B44F01E564FB9348BCD09A1C23B84195171308861058F0A3CD2A55B912A3AAEE06FF4D356C77275828F2157C2FC7C115DA39E443210CCC56BEDB0CC99BBFB227ABD5CC454F4E7F547C7378A659EEB6A7E809101A84F866503CB18D4484E1FA09B3EC7FC75EB2E35270800AA7", + "23B660A779AD285704B12EC1C580387A47BEC7B00D452C6570", + "5AA642BBABA8E49849002A2FAF31DB8FC7773EFDD656E469CEC19B3206D4174C9A263D0A05484261F6"}, + {"8FF6086F1FADB9A3FBE245EAC52640C43B39D43F89526BB5A6EBA47710931446", + "943188480C99437495958B0AE4831AA9", + "AD5CD0BDA426F6EBA23C8EB23DC73FF9FEC173355EDBD6C9344C4C4383F211888F7CE6B29899A6801DF6B38651A7C77150941A", + "80CD5EA8D7F81DDF5070B934937912E8F541A5301877528EB41AB60C020968D459960ED8FB73083329841A", + "ABAE8EB7F36FCA2362551E72DAC890BA1BB6794797E0FC3B67426EC9372726ED4725D379EA0AC9147E48DCD0005C502863C2C5358A38817C8264B5"}, + {"A083B54E6B1FE01B65D42FCD248F97BB477A41462BBFE6FD591006C022C8FD84", + "B0490F5BD68A52459556B3749ACDF40E", + "8892E047DA5CFBBDF7F3CFCBD1BD21C6D4C80774B1826999234394BD3E513CC7C222BB40E1E3140A152F19B3802F0D036C24A590512AD0E8", + "D7B15752789DC94ED0F36778A5C7BBB207BEC32BAC66E702B39966F06E381E090C6757653C3D26A81EC6AD6C364D66867A334C91BB0B8A8A4B6EACDF0783D09010AEBA2DD2062308FE99CC1F", + "C071280A732ADC93DF272BF1E613B2BB7D46FC6665EF2DC1671F3E211D6BDE1D6ADDD28DF3AA2E47053FC8BB8AE9271EC8BC8B2CFFA320D225B451685B6D23ACEFDD241FE284F8ADC8DB07F456985B14330BBB66E0FB212213E05B3E"}, +} diff --git a/vendor/github.com/ProtonMail/go-crypto/internal/byteutil/byteutil.go b/vendor/github.com/ProtonMail/go-crypto/internal/byteutil/byteutil.go new file mode 100644 index 000000000000..affb74a764d9 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/internal/byteutil/byteutil.go @@ -0,0 +1,90 @@ +// Copyright (C) 2019 ProtonTech AG +// This file contains necessary tools for the aex and ocb packages. +// +// These functions SHOULD NOT be used elsewhere, since they are optimized for +// specific input nature in the EAX and OCB modes of operation. + +package byteutil + +// GfnDouble computes 2 * input in the field of 2^n elements. +// The irreducible polynomial in the finite field for n=128 is +// x^128 + x^7 + x^2 + x + 1 (equals 0x87) +// Constant-time execution in order to avoid side-channel attacks +func GfnDouble(input []byte) []byte { + if len(input) != 16 { + panic("Doubling in GFn only implemented for n = 128") + } + // If the first bit is zero, return 2L = L << 1 + // Else return (L << 1) xor 0^120 10000111 + shifted := ShiftBytesLeft(input) + shifted[15] ^= ((input[0] >> 7) * 0x87) + return shifted +} + +// ShiftBytesLeft outputs the byte array corresponding to x << 1 in binary. +func ShiftBytesLeft(x []byte) []byte { + l := len(x) + dst := make([]byte, l) + for i := 0; i < l-1; i++ { + dst[i] = (x[i] << 1) | (x[i+1] >> 7) + } + dst[l-1] = x[l-1] << 1 + return dst +} + +// ShiftNBytesLeft puts in dst the byte array corresponding to x << n in binary. +func ShiftNBytesLeft(dst, x []byte, n int) { + // Erase first n / 8 bytes + copy(dst, x[n/8:]) + + // Shift the remaining n % 8 bits + bits := uint(n % 8) + l := len(dst) + for i := 0; i < l-1; i++ { + dst[i] = (dst[i] << bits) | (dst[i+1] >> uint(8-bits)) + } + dst[l-1] = dst[l-1] << bits + + // Append trailing zeroes + dst = append(dst, make([]byte, n/8)...) +} + +// XorBytesMut assumes equal input length, replaces X with X XOR Y +func XorBytesMut(X, Y []byte) { + for i := 0; i < len(X); i++ { + X[i] ^= Y[i] + } +} + +// XorBytes assumes equal input length, puts X XOR Y into Z +func XorBytes(Z, X, Y []byte) { + for i := 0; i < len(X); i++ { + Z[i] = X[i] ^ Y[i] + } +} + +// RightXor XORs smaller input (assumed Y) at the right of the larger input (assumed X) +func RightXor(X, Y []byte) []byte { + offset := len(X) - len(Y) + xored := make([]byte, len(X)) + copy(xored, X) + for i := 0; i < len(Y); i++ { + xored[offset+i] ^= Y[i] + } + return xored +} + +// SliceForAppend takes a slice and a requested number of bytes. It returns a +// slice with the contents of the given slice followed by that many bytes and a +// second slice that aliases into it and contains only the extra bytes. If the +// original slice has sufficient capacity then no allocation is performed. +func SliceForAppend(in []byte, n int) (head, tail []byte) { + if total := len(in) + n; cap(in) >= total { + head = in[:total] + } else { + head = make([]byte, total) + copy(head, in) + } + tail = head[len(in):] + return +} diff --git a/vendor/github.com/ProtonMail/go-crypto/ocb/ocb.go b/vendor/github.com/ProtonMail/go-crypto/ocb/ocb.go new file mode 100644 index 000000000000..1a6f73502e6a --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/ocb/ocb.go @@ -0,0 +1,317 @@ +// Copyright (C) 2019 ProtonTech AG + +// Package ocb provides an implementation of the OCB (offset codebook) mode of +// operation, as described in RFC-7253 of the IRTF and in Rogaway, Bellare, +// Black and Krovetz - OCB: A BLOCK-CIPHER MODE OF OPERATION FOR EFFICIENT +// AUTHENTICATED ENCRYPTION (2003). +// Security considerations (from RFC-7253): A private key MUST NOT be used to +// encrypt more than 2^48 blocks. Tag length should be at least 12 bytes (a +// brute-force forging adversary succeeds after 2^{tag length} attempts). A +// single key SHOULD NOT be used to decrypt ciphertext with different tag +// lengths. Nonces need not be secret, but MUST NOT be reused. +// This package only supports underlying block ciphers with 128-bit blocks, +// such as AES-{128, 192, 256}, but may be extended to other sizes. +package ocb + +import ( + "bytes" + "crypto/cipher" + "crypto/subtle" + "errors" + "github.com/ProtonMail/go-crypto/internal/byteutil" + "math/bits" +) + +type ocb struct { + block cipher.Block + tagSize int + nonceSize int + mask mask + // Optimized en/decrypt: For each nonce N used to en/decrypt, the 'Ktop' + // internal variable can be reused for en/decrypting with nonces sharing + // all but the last 6 bits with N. The prefix of the first nonce used to + // compute the new Ktop, and the Ktop value itself, are stored in + // reusableKtop. If using incremental nonces, this saves one block cipher + // call every 63 out of 64 OCB encryptions, and stores one nonce and one + // output of the block cipher in memory only. + reusableKtop reusableKtop +} + +type mask struct { + // L_*, L_$, (L_i)_{i ∈ N} + lAst []byte + lDol []byte + L [][]byte +} + +type reusableKtop struct { + noncePrefix []byte + Ktop []byte +} + +const ( + defaultTagSize = 16 + defaultNonceSize = 15 +) + +const ( + enc = iota + dec +) + +func (o *ocb) NonceSize() int { + return o.nonceSize +} + +func (o *ocb) Overhead() int { + return o.tagSize +} + +// NewOCB returns an OCB instance with the given block cipher and default +// tag and nonce sizes. +func NewOCB(block cipher.Block) (cipher.AEAD, error) { + return NewOCBWithNonceAndTagSize(block, defaultNonceSize, defaultTagSize) +} + +// NewOCBWithNonceAndTagSize returns an OCB instance with the given block +// cipher, nonce length, and tag length. Panics on zero nonceSize and +// exceedingly long tag size. +// +// It is recommended to use at least 12 bytes as tag length. +func NewOCBWithNonceAndTagSize( + block cipher.Block, nonceSize, tagSize int) (cipher.AEAD, error) { + if block.BlockSize() != 16 { + return nil, ocbError("Block cipher must have 128-bit blocks") + } + if nonceSize < 1 { + return nil, ocbError("Incorrect nonce length") + } + if nonceSize >= block.BlockSize() { + return nil, ocbError("Nonce length exceeds blocksize - 1") + } + if tagSize > block.BlockSize() { + return nil, ocbError("Custom tag length exceeds blocksize") + } + return &ocb{ + block: block, + tagSize: tagSize, + nonceSize: nonceSize, + mask: initializeMaskTable(block), + reusableKtop: reusableKtop{ + noncePrefix: nil, + Ktop: nil, + }, + }, nil +} + +func (o *ocb) Seal(dst, nonce, plaintext, adata []byte) []byte { + if len(nonce) > o.nonceSize { + panic("crypto/ocb: Incorrect nonce length given to OCB") + } + ret, out := byteutil.SliceForAppend(dst, len(plaintext)+o.tagSize) + o.crypt(enc, out, nonce, adata, plaintext) + return ret +} + +func (o *ocb) Open(dst, nonce, ciphertext, adata []byte) ([]byte, error) { + if len(nonce) > o.nonceSize { + panic("Nonce too long for this instance") + } + if len(ciphertext) < o.tagSize { + return nil, ocbError("Ciphertext shorter than tag length") + } + sep := len(ciphertext) - o.tagSize + ret, out := byteutil.SliceForAppend(dst, len(ciphertext)) + ciphertextData := ciphertext[:sep] + tag := ciphertext[sep:] + o.crypt(dec, out, nonce, adata, ciphertextData) + if subtle.ConstantTimeCompare(ret[sep:], tag) == 1 { + ret = ret[:sep] + return ret, nil + } + for i := range out { + out[i] = 0 + } + return nil, ocbError("Tag authentication failed") +} + +// On instruction enc (resp. dec), crypt is the encrypt (resp. decrypt) +// function. It returns the resulting plain/ciphertext with the tag appended. +func (o *ocb) crypt(instruction int, Y, nonce, adata, X []byte) []byte { + // + // Consider X as a sequence of 128-bit blocks + // + // Note: For encryption (resp. decryption), X is the plaintext (resp., the + // ciphertext without the tag). + blockSize := o.block.BlockSize() + + // + // Nonce-dependent and per-encryption variables + // + // Zero out the last 6 bits of the nonce into truncatedNonce to see if Ktop + // is already computed. + truncatedNonce := make([]byte, len(nonce)) + copy(truncatedNonce, nonce) + truncatedNonce[len(truncatedNonce)-1] &= 192 + Ktop := make([]byte, blockSize) + if bytes.Equal(truncatedNonce, o.reusableKtop.noncePrefix) { + Ktop = o.reusableKtop.Ktop + } else { + // Nonce = num2str(TAGLEN mod 128, 7) || zeros(120 - bitlen(N)) || 1 || N + paddedNonce := append(make([]byte, blockSize-1-len(nonce)), 1) + paddedNonce = append(paddedNonce, truncatedNonce...) + paddedNonce[0] |= byte(((8 * o.tagSize) % (8 * blockSize)) << 1) + // Last 6 bits of paddedNonce are already zero. Encrypt into Ktop + paddedNonce[blockSize-1] &= 192 + Ktop = paddedNonce + o.block.Encrypt(Ktop, Ktop) + o.reusableKtop.noncePrefix = truncatedNonce + o.reusableKtop.Ktop = Ktop + } + + // Stretch = Ktop || ((lower half of Ktop) XOR (lower half of Ktop << 8)) + xorHalves := make([]byte, blockSize/2) + byteutil.XorBytes(xorHalves, Ktop[:blockSize/2], Ktop[1:1+blockSize/2]) + stretch := append(Ktop, xorHalves...) + bottom := int(nonce[len(nonce)-1] & 63) + offset := make([]byte, len(stretch)) + byteutil.ShiftNBytesLeft(offset, stretch, bottom) + offset = offset[:blockSize] + + // + // Process any whole blocks + // + // Note: For encryption Y is ciphertext || tag, for decryption Y is + // plaintext || tag. + checksum := make([]byte, blockSize) + m := len(X) / blockSize + for i := 0; i < m; i++ { + index := bits.TrailingZeros(uint(i + 1)) + if len(o.mask.L)-1 < index { + o.mask.extendTable(index) + } + byteutil.XorBytesMut(offset, o.mask.L[bits.TrailingZeros(uint(i+1))]) + blockX := X[i*blockSize : (i+1)*blockSize] + blockY := Y[i*blockSize : (i+1)*blockSize] + byteutil.XorBytes(blockY, blockX, offset) + switch instruction { + case enc: + o.block.Encrypt(blockY, blockY) + byteutil.XorBytesMut(blockY, offset) + byteutil.XorBytesMut(checksum, blockX) + case dec: + o.block.Decrypt(blockY, blockY) + byteutil.XorBytesMut(blockY, offset) + byteutil.XorBytesMut(checksum, blockY) + } + } + // + // Process any final partial block and compute raw tag + // + tag := make([]byte, blockSize) + if len(X)%blockSize != 0 { + byteutil.XorBytesMut(offset, o.mask.lAst) + pad := make([]byte, blockSize) + o.block.Encrypt(pad, offset) + chunkX := X[blockSize*m:] + chunkY := Y[blockSize*m : len(X)] + byteutil.XorBytes(chunkY, chunkX, pad[:len(chunkX)]) + // P_* || bit(1) || zeroes(127) - len(P_*) + switch instruction { + case enc: + paddedY := append(chunkX, byte(128)) + paddedY = append(paddedY, make([]byte, blockSize-len(chunkX)-1)...) + byteutil.XorBytesMut(checksum, paddedY) + case dec: + paddedX := append(chunkY, byte(128)) + paddedX = append(paddedX, make([]byte, blockSize-len(chunkY)-1)...) + byteutil.XorBytesMut(checksum, paddedX) + } + byteutil.XorBytes(tag, checksum, offset) + byteutil.XorBytesMut(tag, o.mask.lDol) + o.block.Encrypt(tag, tag) + byteutil.XorBytesMut(tag, o.hash(adata)) + copy(Y[blockSize*m+len(chunkY):], tag[:o.tagSize]) + } else { + byteutil.XorBytes(tag, checksum, offset) + byteutil.XorBytesMut(tag, o.mask.lDol) + o.block.Encrypt(tag, tag) + byteutil.XorBytesMut(tag, o.hash(adata)) + copy(Y[blockSize*m:], tag[:o.tagSize]) + } + return Y +} + +// This hash function is used to compute the tag. Per design, on empty input it +// returns a slice of zeros, of the same length as the underlying block cipher +// block size. +func (o *ocb) hash(adata []byte) []byte { + // + // Consider A as a sequence of 128-bit blocks + // + A := make([]byte, len(adata)) + copy(A, adata) + blockSize := o.block.BlockSize() + + // + // Process any whole blocks + // + sum := make([]byte, blockSize) + offset := make([]byte, blockSize) + m := len(A) / blockSize + for i := 0; i < m; i++ { + chunk := A[blockSize*i : blockSize*(i+1)] + index := bits.TrailingZeros(uint(i + 1)) + // If the mask table is too short + if len(o.mask.L)-1 < index { + o.mask.extendTable(index) + } + byteutil.XorBytesMut(offset, o.mask.L[index]) + byteutil.XorBytesMut(chunk, offset) + o.block.Encrypt(chunk, chunk) + byteutil.XorBytesMut(sum, chunk) + } + + // + // Process any final partial block; compute final hash value + // + if len(A)%blockSize != 0 { + byteutil.XorBytesMut(offset, o.mask.lAst) + // Pad block with 1 || 0 ^ 127 - bitlength(a) + ending := make([]byte, blockSize-len(A)%blockSize) + ending[0] = 0x80 + encrypted := append(A[blockSize*m:], ending...) + byteutil.XorBytesMut(encrypted, offset) + o.block.Encrypt(encrypted, encrypted) + byteutil.XorBytesMut(sum, encrypted) + } + return sum +} + +func initializeMaskTable(block cipher.Block) mask { + // + // Key-dependent variables + // + lAst := make([]byte, block.BlockSize()) + block.Encrypt(lAst, lAst) + lDol := byteutil.GfnDouble(lAst) + L := make([][]byte, 1) + L[0] = byteutil.GfnDouble(lDol) + + return mask{ + lAst: lAst, + lDol: lDol, + L: L, + } +} + +// Extends the L array of mask m up to L[limit], with L[i] = GfnDouble(L[i-1]) +func (m *mask) extendTable(limit int) { + for i := len(m.L); i <= limit; i++ { + m.L = append(m.L, byteutil.GfnDouble(m.L[i-1])) + } +} + +func ocbError(err string) error { + return errors.New("crypto/ocb: " + err) +} diff --git a/vendor/github.com/ProtonMail/go-crypto/ocb/random_vectors.go b/vendor/github.com/ProtonMail/go-crypto/ocb/random_vectors.go new file mode 100644 index 000000000000..0efaf344fd59 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/ocb/random_vectors.go @@ -0,0 +1,136 @@ +// In the test vectors provided by RFC 7253, the "bottom" +// internal variable, which defines "offset" for the first time, does not +// exceed 15. However, it can attain values up to 63. + +// These vectors include key length in {128, 192, 256}, tag size 128, and +// random nonce, header, and plaintext lengths. + +// This file was automatically generated. + +package ocb + +var randomVectors = []struct { + key, nonce, header, plaintext, ciphertext string +}{ + + {"9438C5D599308EAF13F800D2D31EA7F0", + "C38EE4801BEBFFA1CD8635BE", + "0E507B7DADD8A98CDFE272D3CB6B3E8332B56AE583FB049C0874D4200BED16BD1A044182434E9DA0E841F182DFD5B3016B34641CED0784F1745F63AB3D0DA22D3351C9EF9A658B8081E24498EBF61FCE40DA6D8E184536", + "962D227786FB8913A8BAD5DC3250", + "EEDEF5FFA5986D1E3BF86DDD33EF9ADC79DCA06E215FA772CCBA814F63AD"}, + {"BA7DE631C7D6712167C6724F5B9A2B1D", + "35263EBDA05765DC0E71F1F5", + "0103257B4224507C0242FEFE821EA7FA42E0A82863E5F8B68F7D881B4B44FA428A2B6B21D2F591260802D8AB6D83", + "9D6D1FC93AE8A64E7889B7B2E3521EFA9B920A8DDB692E6F833DDC4A38AFA535E5E2A3ED82CB7E26404AB86C54D01C4668F28398C2DF33D5D561CBA1C8DCFA7A912F5048E545B59483C0E3221F54B14DAA2E4EB657B3BEF9554F34CAD69B2724AE962D3D8A", + "E93852D1985C5E775655E937FA79CE5BF28A585F2AF53A5018853B9634BE3C84499AC0081918FDCE0624494D60E25F76ACD6853AC7576E3C350F332249BFCABD4E73CEABC36BE4EDDA40914E598AE74174A0D7442149B26990899491BDDFE8FC54D6C18E83AE9E9A6FFBF5D376565633862EEAD88D"}, + {"2E74B25289F6FD3E578C24866E9C72A5", + "FD912F15025AF8414642BA1D1D", + "FB5FB8C26F365EEDAB5FE260C6E3CCD27806729C8335F146063A7F9EA93290E56CF84576EB446350D22AD730547C267B1F0BBB97EB34E1E2C41A", + "6C092EBF78F76EE8C1C6E592277D9545BA16EDB67BC7D8480B9827702DC2F8A129E2B08A2CE710CA7E1DA45CE162BB6CD4B512E632116E2211D3C90871EFB06B8D4B902681C7FB", + "6AC0A77F26531BF4F354A1737F99E49BE32ECD909A7A71AD69352906F54B08A9CE9B8CA5D724CBFFC5673437F23F630697F3B84117A1431D6FA8CC13A974FB4AD360300522E09511B99E71065D5AC4BBCB1D791E864EF4"}, + {"E7EC507C802528F790AFF5303A017B17", + "4B97A7A568940A9E3CE7A99E93031E", + "28349BDC5A09390C480F9B8AA3EDEA3DDB8B9D64BCA322C570B8225DF0E31190DAB25A4014BA39519E02ABFB12B89AA28BBFD29E486E7FB28734258C817B63CED9912DBAFEBB93E2798AB2890DE3B0ACFCFF906AB15563EF7823CE83D27CDB251195E22BD1337BCBDE65E7C2C427321C463C2777BFE5AEAA", + "9455B3EA706B74", + "7F33BA3EA848D48A96B9530E26888F43EBD4463C9399B6"}, + {"6C928AA3224736F28EE7378DE0090191", + "8936138E2E4C6A13280017A1622D", + "6202717F2631565BDCDC57C6584543E72A7C8BD444D0D108ED35069819633C", + "DA0691439E5F035F3E455269D14FE5C201C8C9B0A3FE2D3F86BCC59387C868FE65733D388360B31E3CE28B4BF6A8BE636706B536D5720DB66B47CF1C7A5AFD6F61E0EF90F1726D6B0E169F9A768B2B7AE4EE00A17F630AC905FCAAA1B707FFF25B3A1AAE83B504837C64A5639B2A34002B300EC035C9B43654DA55", + "B8804D182AB0F0EEB464FA7BD1329AD6154F982013F3765FEDFE09E26DAC078C9C1439BFC1159D6C02A25E3FF83EF852570117B315852AD5EE20E0FA3AA0A626B0E43BC0CEA38B44579DD36803455FB46989B90E6D229F513FD727AF8372517E9488384C515D6067704119C931299A0982EDDFB9C2E86A90C450C077EB222511EC9CCABC9FCFDB19F70088"}, + {"ECEA315CA4B3F425B0C9957A17805EA4", + "664CDAE18403F4F9BA13015A44FC", + "642AFB090D6C6DB46783F08B01A3EF2A8FEB5736B531EAC226E7888FCC8505F396818F83105065FACB3267485B9E5E4A0261F621041C08FCCB2A809A49AB5252A91D0971BCC620B9D614BD77E57A0EED2FA5", + "6852C31F8083E20E364CEA21BB7854D67CEE812FE1C9ED2425C0932A90D3780728D1BB", + "2ECEF962A9695A463ADABB275BDA9FF8B2BA57AEC2F52EFFB700CD9271A74D2A011C24AEA946051BD6291776429B7E681BA33E"}, + {"4EE616C4A58AAA380878F71A373461F6", + "91B8C9C176D9C385E9C47E52", + "CDA440B7F9762C572A718AC754EDEECC119E5EE0CCB9FEA4FFB22EEE75087C032EBF3DA9CDD8A28CC010B99ED45143B41A4BA50EA2A005473F89639237838867A57F23B0F0ED3BF22490E4501DAC9C658A9B9F", + "D6E645FA9AE410D15B8123FD757FA356A8DBE9258DDB5BE88832E615910993F497EC", + "B70ED7BF959FB2AAED4F36174A2A99BFB16992C8CDF369C782C4DB9C73DE78C5DB8E0615F647243B97ACDB24503BC9CADC48"}, + {"DCD475773136C830D5E3D0C5FE05B7FF", + "BB8E1FBB483BE7616A922C4A", + "36FEF2E1CB29E76A6EA663FC3AF66ECD7404F466382F7B040AABED62293302B56E8783EF7EBC21B4A16C3E78A7483A0A403F253A2CDC5BBF79DC3DAE6C73F39A961D8FBBE8D41B", + "441E886EA38322B2437ECA7DEB5282518865A66780A454E510878E61BFEC3106A3CD93D2A02052E6F9E1832F9791053E3B76BF4C07EFDD6D4106E3027FABB752E60C1AA425416A87D53938163817A1051EBA1D1DEEB4B9B25C7E97368B52E5911A31810B0EC5AF547559B6142D9F4C4A6EF24A4CF75271BF9D48F62B", + "1BE4DD2F4E25A6512C2CC71D24BBB07368589A94C2714962CD0ACE5605688F06342587521E75F0ACAFFD86212FB5C34327D238DB36CF2B787794B9A4412E7CD1410EA5DDD2450C265F29CF96013CD213FD2880657694D718558964BC189B4A84AFCF47EB012935483052399DBA5B088B0A0477F20DFE0E85DCB735E21F22A439FB837DD365A93116D063E607"}, + {"3FBA2B3D30177FFE15C1C59ED2148BB2C091F5615FBA7C07", + "FACF804A4BEBF998505FF9DE", + "8213B9263B2971A5BDA18DBD02208EE1", + "15B323926993B326EA19F892D704439FC478828322AF72118748284A1FD8A6D814E641F70512FD706980337379F31DC63355974738D7FEA87AD2858C0C2EBBFBE74371C21450072373C7B651B334D7C4D43260B9D7CCD3AF9EDB", + "6D35DC1469B26E6AAB26272A41B46916397C24C485B61162E640A062D9275BC33DDCFD3D9E1A53B6C8F51AC89B66A41D59B3574197A40D9B6DCF8A4E2A001409C8112F16B9C389E0096179DB914E05D6D11ED0005AD17E1CE105A2F0BAB8F6B1540DEB968B7A5428FF44"}, + {"53B52B8D4D748BCDF1DDE68857832FA46227FA6E2F32EFA1", + "0B0EF53D4606B28D1398355F", + "F23882436349094AF98BCACA8218E81581A043B19009E28EFBF2DE37883E04864148CC01D240552CA8844EC1456F42034653067DA67E80F87105FD06E14FF771246C9612867BE4D215F6D761", + "F15030679BD4088D42CAC9BF2E9606EAD4798782FA3ED8C57EBE7F84A53236F51B25967C6489D0CD20C9EEA752F9BC", + "67B96E2D67C3729C96DAEAEDF821D61C17E648643A2134C5621FEC621186915AD80864BFD1EB5B238BF526A679385E012A457F583AFA78134242E9D9C1B4E4"}, + {"0272DD80F23399F49BFC320381A5CD8225867245A49A7D41", + "5C83F4896D0738E1366B1836", + "69B0337289B19F73A12BAEEA857CCAF396C11113715D9500CCCF48BA08CFF12BC8B4BADB3084E63B85719DB5058FA7C2C11DEB096D7943CFA7CAF5", + "C01AD10FC8B562CD17C7BC2FAB3E26CBDFF8D7F4DEA816794BBCC12336991712972F52816AABAB244EB43B0137E2BAC1DD413CE79531E78BEF782E6B439612BB3AEF154DE3502784F287958EBC159419F9EBA27916A28D6307324129F506B1DE80C1755A929F87", + "FEFE52DD7159C8DD6E8EC2D3D3C0F37AB6CB471A75A071D17EC4ACDD8F3AA4D7D4F7BB559F3C09099E3D9003E5E8AA1F556B79CECDE66F85B08FA5955E6976BF2695EA076388A62D2AD5BAB7CBF1A7F3F4C8D5CDF37CDE99BD3E30B685D9E5EEE48C7C89118EF4878EB89747F28271FA2CC45F8E9E7601"}, + {"3EEAED04A455D6E5E5AB53CFD5AFD2F2BC625C7BF4BE49A5", + "36B88F63ADBB5668588181D774", + "D367E3CB3703E762D23C6533188EF7028EFF9D935A3977150361997EC9DEAF1E4794BDE26AA8B53C124980B1362EC86FCDDFC7A90073171C1BAEE351A53234B86C66E8AB92FAE99EC6967A6D3428892D80", + "573454C719A9A55E04437BF7CBAAF27563CCCD92ADD5E515CD63305DFF0687E5EEF790C5DCA5C0033E9AB129505E2775438D92B38F08F3B0356BA142C6F694", + "E9F79A5B432D9E682C9AAA5661CFC2E49A0FCB81A431E54B42EB73DD3BED3F377FEC556ABA81624BA64A5D739AD41467460088F8D4F442180A9382CA635745473794C382FCDDC49BA4EB6D8A44AE3C"}, + {"B695C691538F8CBD60F039D0E28894E3693CC7C36D92D79D", + "BC099AEB637361BAC536B57618", + "BFFF1A65AE38D1DC142C71637319F5F6508E2CB33C9DCB94202B359ED5A5ED8042E7F4F09231D32A7242976677E6F4C549BF65FADC99E5AF43F7A46FD95E16C2", + "081DF3FD85B415D803F0BE5AC58CFF0023FDDED99788296C3731D8", + "E50C64E3614D94FE69C47092E46ACC9957C6FEA2CCBF96BC62FBABE7424753C75F9C147C42AE26FE171531"}, + {"C9ACBD2718F0689A1BE9802A551B6B8D9CF5614DAF5E65ED", + "B1B0AAF373B8B026EB80422051D8", + "6648C0E61AC733C76119D23FB24548D637751387AA2EAE9D80E912B7BD486CAAD9EAF4D7A5FE2B54AAD481E8EC94BB4D558000896E2010462B70C9FED1E7273080D1", + "189F591F6CB6D59AFEDD14C341741A8F1037DC0DF00FC57CE65C30F49E860255CEA5DC6019380CC0FE8880BC1A9E685F41C239C38F36E3F2A1388865C5C311059C0A", + "922A5E949B61D03BE34AB5F4E58607D4504EA14017BB363DAE3C873059EA7A1C77A746FB78981671D26C2CF6D9F24952D510044CE02A10177E9DB42D0145211DFE6E84369C5E3BC2669EAB4147B2822895F9"}, + {"7A832BD2CF5BF4919F353CE2A8C86A5E406DA2D52BE16A72", + "2F2F17CECF7E5A756D10785A3CB9DB", + "61DA05E3788CC2D8405DBA70C7A28E5AF699863C9F72E6C6770126929F5D6FA267F005EBCF49495CB46400958A3AE80D1289D1C671", + "44E91121195A41AF14E8CFDBD39A4B517BE0DF1A72977ED8A3EEF8EEDA1166B2EB6DB2C4AE2E74FA0F0C74537F659BFBD141E5DDEC67E64EDA85AABD3F52C85A785B9FB3CECD70E7DF", + "BEDF596EA21288D2B84901E188F6EE1468B14D5161D3802DBFE00D60203A24E2AB62714BF272A45551489838C3A7FEAADC177B591836E73684867CCF4E12901DCF2064058726BBA554E84ADC5136F507E961188D4AF06943D3"}, + {"1508E8AE9079AA15F1CEC4F776B4D11BCCB061B58AA56C18", + "BCA625674F41D1E3AB47672DC0C3", + "8B12CF84F16360F0EAD2A41BC021530FFCEC7F3579CAE658E10E2D3D81870F65AFCED0C77C6C4C6E6BA424FF23088C796BA6195ABA35094BF1829E089662E7A95FC90750AE16D0C8AFA55DAC789D7735B970B58D4BE7CEC7341DA82A0179A01929C27A59C5063215B859EA43", + "E525422519ECE070E82C", + "B47BC07C3ED1C0A43BA52C43CBACBCDBB29CAF1001E09FDF7107"}, + {"7550C2761644E911FE9ADD119BAC07376BEA442845FEAD876D7E7AC1B713E464", + "36D2EC25ADD33CDEDF495205BBC923", + "7FCFE81A3790DE97FFC3DE160C470847EA7E841177C2F759571CBD837EA004A6CA8C6F4AEBFF2E9FD552D73EB8A30705D58D70C0B67AEEA280CBBF0A477358ACEF1E7508F2735CD9A0E4F9AC92B8C008F575D3B6278F1C18BD01227E3502E5255F3AB1893632AD00C717C588EF652A51A43209E7EE90", + "2B1A62F8FDFAA3C16470A21AD307C9A7D03ADE8EF72C69B06F8D738CDE578D7AEFD0D40BD9C022FB9F580DF5394C998ACCCEFC5471A3996FB8F1045A81FDC6F32D13502EA65A211390C8D882B8E0BEFD8DD8CBEF51D1597B124E9F7F", + "C873E02A22DB89EB0787DB6A60B99F7E4A0A085D5C4232A81ADCE2D60AA36F92DDC33F93DD8640AC0E08416B187FB382B3EC3EE85A64B0E6EE41C1366A5AD2A282F66605E87031CCBA2FA7B2DA201D975994AADE3DD1EE122AE09604AD489B84BF0C1AB7129EE16C6934850E"}, + {"A51300285E554FDBDE7F771A9A9A80955639DD87129FAEF74987C91FB9687C71", + "81691D5D20EC818FCFF24B33DECC", + "C948093218AA9EB2A8E44A87EEA73FC8B6B75A196819A14BD83709EA323E8DF8B491045220E1D88729A38DBCFFB60D3056DAD4564498FD6574F74512945DEB34B69329ACED9FFC05D5D59DFCD5B973E2ACAFE6AD1EF8BBBC49351A2DD12508ED89ED", + "EB861165DAF7625F827C6B574ED703F03215", + "C6CD1CE76D2B3679C1B5AA1CFD67CCB55444B6BFD3E22C81CBC9BB738796B83E54E3"}, + {"8CE0156D26FAEB7E0B9B800BBB2E9D4075B5EAC5C62358B0E7F6FCE610223282", + "D2A7B94DD12CDACA909D3AD7", + "E021A78F374FC271389AB9A3E97077D755", + "7C26000B58929F5095E1CEE154F76C2A299248E299F9B5ADE6C403AA1FD4A67FD4E0232F214CE7B919EE7A1027D2B76C57475715CD078461", + "C556FB38DF069B56F337B5FF5775CE6EAA16824DFA754F20B78819028EA635C3BB7AA731DE8776B2DCB67DCA2D33EEDF3C7E52EA450013722A41755A0752433ED17BDD5991AAE77A"}, + {"1E8000A2CE00A561C9920A30BF0D7B983FEF8A1014C8F04C35CA6970E6BA02BD", + "65ED3D63F79F90BBFD19775E", + "336A8C0B7243582A46B221AA677647FCAE91", + "134A8B34824A290E7B", + "914FBEF80D0E6E17F8BDBB6097EBF5FBB0554952DC2B9E5151"}, + {"53D5607BBE690B6E8D8F6D97F3DF2BA853B682597A214B8AA0EA6E598650AF15", + "C391A856B9FE234E14BA1AC7BB40FF", + "479682BC21349C4BE1641D5E78FE2C79EC1B9CF5470936DCAD9967A4DCD7C4EFADA593BC9EDE71E6A08829B8580901B61E274227E9D918502DE3", + "EAD154DC09C5E26C5D26FF33ED148B27120C7F2C23225CC0D0631B03E1F6C6D96FEB88C1A4052ACB4CE746B884B6502931F407021126C6AAB8C514C077A5A38438AE88EE", + "938821286EBB671D999B87C032E1D6055392EB564E57970D55E545FC5E8BAB90E6E3E3C0913F6320995FC636D72CD9919657CC38BD51552F4A502D8D1FE56DB33EBAC5092630E69EBB986F0E15CEE9FC8C052501"}, + {"294362FCC984F440CEA3E9F7D2C06AF20C53AAC1B3738CA2186C914A6E193ABB", + "B15B61C8BB39261A8F55AB178EC3", + "D0729B6B75BB", + "2BD089ADCE9F334BAE3B065996C7D616DD0C27DF4218DCEEA0FBCA0F968837CE26B0876083327E25681FDDD620A32EC0DA12F73FAE826CC94BFF2B90A54D2651", + "AC94B25E4E21DE2437B806966CCD5D9385EF0CD4A51AB9FA6DE675C7B8952D67802E9FEC1FDE9F5D1EAB06057498BC0EEA454804FC9D2068982A3E24182D9AC2E7AB9994DDC899A604264583F63D066B"}, + {"959DBFEB039B1A5B8CE6A44649B602AAA5F98A906DB96143D202CD2024F749D9", + "01D7BDB1133E9C347486C1EFA6", + "F3843955BD741F379DD750585EDC55E2CDA05CCBA8C1F4622AC2FE35214BC3A019B8BD12C4CC42D9213D1E1556941E8D8450830287FFB3B763A13722DD4140ED9846FB5FFF745D7B0B967D810A068222E10B259AF1D392035B0D83DC1498A6830B11B2418A840212599171E0258A1C203B05362978", + "A21811232C950FA8B12237C2EBD6A7CD2C3A155905E9E0C7C120", + "63C1CE397B22F1A03F1FA549B43178BC405B152D3C95E977426D519B3DFCA28498823240592B6EEE7A14"}, + {"096AE499F5294173F34FF2B375F0E5D5AB79D0D03B33B1A74D7D576826345DF4", + "0C52B3D11D636E5910A4DD76D32C", + "229E9ECA3053789E937447BC719467075B6138A142DA528DA8F0CF8DDF022FD9AF8E74779BA3AC306609", + "8B7A00038783E8BAF6EDEAE0C4EAB48FC8FD501A588C7E4A4DB71E3604F2155A97687D3D2FFF8569261375A513CF4398CE0F87CA1658A1050F6EF6C4EA3E25", + "C20B6CF8D3C8241825FD90B2EDAC7593600646E579A8D8DAAE9E2E40C3835FE801B2BE4379131452BC5182C90307B176DFBE2049544222FE7783147B690774F6D9D7CEF52A91E61E298E9AA15464AC"}, +} diff --git a/vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_a.go b/vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_a.go new file mode 100644 index 000000000000..330309ff5f8e --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_a.go @@ -0,0 +1,78 @@ +package ocb + +import ( + "encoding/hex" +) + +// Test vectors from https://tools.ietf.org/html/rfc7253. Note that key is +// shared across tests. +var testKey, _ = hex.DecodeString("000102030405060708090A0B0C0D0E0F") + +var rfc7253testVectors = []struct { + nonce, header, plaintext, ciphertext string +}{ + {"BBAA99887766554433221100", + "", + "", + "785407BFFFC8AD9EDCC5520AC9111EE6"}, + {"BBAA99887766554433221101", + "0001020304050607", + "0001020304050607", + "6820B3657B6F615A5725BDA0D3B4EB3A257C9AF1F8F03009"}, + {"BBAA99887766554433221102", + "0001020304050607", + "", + "81017F8203F081277152FADE694A0A00"}, + {"BBAA99887766554433221103", + "", + "0001020304050607", + "45DD69F8F5AAE72414054CD1F35D82760B2CD00D2F99BFA9"}, + {"BBAA99887766554433221104", + "000102030405060708090A0B0C0D0E0F", + "000102030405060708090A0B0C0D0E0F", + "571D535B60B277188BE5147170A9A22C3AD7A4FF3835B8C5701C1CCEC8FC3358"}, + {"BBAA99887766554433221105", + "000102030405060708090A0B0C0D0E0F", + "", + "8CF761B6902EF764462AD86498CA6B97"}, + {"BBAA99887766554433221106", + "", + "000102030405060708090A0B0C0D0E0F", + "5CE88EC2E0692706A915C00AEB8B2396F40E1C743F52436BDF06D8FA1ECA343D"}, + {"BBAA99887766554433221107", + "000102030405060708090A0B0C0D0E0F1011121314151617", + "000102030405060708090A0B0C0D0E0F1011121314151617", + "1CA2207308C87C010756104D8840CE1952F09673A448A122C92C62241051F57356D7F3C90BB0E07F"}, + {"BBAA99887766554433221108", + "000102030405060708090A0B0C0D0E0F1011121314151617", + "", + "6DC225A071FC1B9F7C69F93B0F1E10DE"}, + {"BBAA99887766554433221109", + "", + "000102030405060708090A0B0C0D0E0F1011121314151617", + "221BD0DE7FA6FE993ECCD769460A0AF2D6CDED0C395B1C3CE725F32494B9F914D85C0B1EB38357FF"}, + {"BBAA9988776655443322110A", + "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F", + "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F", + "BD6F6C496201C69296C11EFD138A467ABD3C707924B964DEAFFC40319AF5A48540FBBA186C5553C68AD9F592A79A4240"}, + {"BBAA9988776655443322110B", + "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F", + "", + "FE80690BEE8A485D11F32965BC9D2A32"}, + {"BBAA9988776655443322110C", + "", + "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F", + "2942BFC773BDA23CABC6ACFD9BFD5835BD300F0973792EF46040C53F1432BCDFB5E1DDE3BC18A5F840B52E653444D5DF"}, + {"BBAA9988776655443322110D", + "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627", + "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627", + "D5CA91748410C1751FF8A2F618255B68A0A12E093FF454606E59F9C1D0DDC54B65E8628E568BAD7AED07BA06A4A69483A7035490C5769E60"}, + {"BBAA9988776655443322110E", + "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627", + "", + "C5CD9D1850C141E358649994EE701B68"}, + {"BBAA9988776655443322110F", + "", + "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627", + "4412923493C57D5DE0D700F753CCE0D1D2D95060122E9F15A5DDBFC5787E50B5CC55EE507BCB084E479AD363AC366B95A98CA5F3000B1479"}, +} diff --git a/vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_b.go b/vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_b.go new file mode 100644 index 000000000000..14a3c336fbc2 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_b.go @@ -0,0 +1,25 @@ +package ocb + +// Second set of test vectors from https://tools.ietf.org/html/rfc7253 +var rfc7253TestVectorTaglen96 = struct { + key, nonce, header, plaintext, ciphertext string +}{"0F0E0D0C0B0A09080706050403020100", + "BBAA9988776655443322110D", + "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627", + "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627", + "1792A4E31E0755FB03E31B22116E6C2DDF9EFD6E33D536F1A0124B0A55BAE884ED93481529C76B6AD0C515F4D1CDD4FDAC4F02AA"} + +var rfc7253AlgorithmTest = []struct { + KEYLEN, TAGLEN int + OUTPUT string +}{ + {128, 128, "67E944D23256C5E0B6C61FA22FDF1EA2"}, + {192, 128, "F673F2C3E7174AAE7BAE986CA9F29E17"}, + {256, 128, "D90EB8E9C977C88B79DD793D7FFA161C"}, + {128, 96, "77A3D8E73589158D25D01209"}, + {192, 96, "05D56EAD2752C86BE6932C5E"}, + {256, 96, "5458359AC23B0CBA9E6330DD"}, + {128, 64, "192C9B7BD90BA06A"}, + {192, 64, "0066BC6E0EF34E24"}, + {256, 64, "7D4EA5D445501CBE"}, +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap/keywrap.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap/keywrap.go new file mode 100644 index 000000000000..3c6251d1ce67 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap/keywrap.go @@ -0,0 +1,153 @@ +// Copyright 2014 Matthew Endsley +// All rights reserved +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted providing that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +// IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +// Package keywrap is an implementation of the RFC 3394 AES key wrapping +// algorithm. This is used in OpenPGP with elliptic curve keys. +package keywrap + +import ( + "crypto/aes" + "encoding/binary" + "errors" +) + +var ( + // ErrWrapPlaintext is returned if the plaintext is not a multiple + // of 64 bits. + ErrWrapPlaintext = errors.New("keywrap: plainText must be a multiple of 64 bits") + + // ErrUnwrapCiphertext is returned if the ciphertext is not a + // multiple of 64 bits. + ErrUnwrapCiphertext = errors.New("keywrap: cipherText must by a multiple of 64 bits") + + // ErrUnwrapFailed is returned if unwrapping a key fails. + ErrUnwrapFailed = errors.New("keywrap: failed to unwrap key") + + // NB: the AES NewCipher call only fails if the key is an invalid length. + + // ErrInvalidKey is returned when the AES key is invalid. + ErrInvalidKey = errors.New("keywrap: invalid AES key") +) + +// Wrap a key using the RFC 3394 AES Key Wrap Algorithm. +func Wrap(key, plainText []byte) ([]byte, error) { + if len(plainText)%8 != 0 { + return nil, ErrWrapPlaintext + } + + c, err := aes.NewCipher(key) + if err != nil { + return nil, ErrInvalidKey + } + + nblocks := len(plainText) / 8 + + // 1) Initialize variables. + var block [aes.BlockSize]byte + // - Set A = IV, an initial value (see 2.2.3) + for ii := 0; ii < 8; ii++ { + block[ii] = 0xA6 + } + + // - For i = 1 to n + // - Set R[i] = P[i] + intermediate := make([]byte, len(plainText)) + copy(intermediate, plainText) + + // 2) Calculate intermediate values. + for ii := 0; ii < 6; ii++ { + for jj := 0; jj < nblocks; jj++ { + // - B = AES(K, A | R[i]) + copy(block[8:], intermediate[jj*8:jj*8+8]) + c.Encrypt(block[:], block[:]) + + // - A = MSB(64, B) ^ t where t = (n*j)+1 + t := uint64(ii*nblocks + jj + 1) + val := binary.BigEndian.Uint64(block[:8]) ^ t + binary.BigEndian.PutUint64(block[:8], val) + + // - R[i] = LSB(64, B) + copy(intermediate[jj*8:jj*8+8], block[8:]) + } + } + + // 3) Output results. + // - Set C[0] = A + // - For i = 1 to n + // - C[i] = R[i] + return append(block[:8], intermediate...), nil +} + +// Unwrap a key using the RFC 3394 AES Key Wrap Algorithm. +func Unwrap(key, cipherText []byte) ([]byte, error) { + if len(cipherText)%8 != 0 { + return nil, ErrUnwrapCiphertext + } + + c, err := aes.NewCipher(key) + if err != nil { + return nil, ErrInvalidKey + } + + nblocks := len(cipherText)/8 - 1 + + // 1) Initialize variables. + var block [aes.BlockSize]byte + // - Set A = C[0] + copy(block[:8], cipherText[:8]) + + // - For i = 1 to n + // - Set R[i] = C[i] + intermediate := make([]byte, len(cipherText)-8) + copy(intermediate, cipherText[8:]) + + // 2) Compute intermediate values. + for jj := 5; jj >= 0; jj-- { + for ii := nblocks - 1; ii >= 0; ii-- { + // - B = AES-1(K, (A ^ t) | R[i]) where t = n*j+1 + // - A = MSB(64, B) + t := uint64(jj*nblocks + ii + 1) + val := binary.BigEndian.Uint64(block[:8]) ^ t + binary.BigEndian.PutUint64(block[:8], val) + + copy(block[8:], intermediate[ii*8:ii*8+8]) + c.Decrypt(block[:], block[:]) + + // - R[i] = LSB(B, 64) + copy(intermediate[ii*8:ii*8+8], block[8:]) + } + } + + // 3) Output results. + // - If A is an appropriate initial value (see 2.2.3), + for ii := 0; ii < 8; ii++ { + if block[ii] != 0xA6 { + return nil, ErrUnwrapFailed + } + } + + // - For i = 1 to n + // - P[i] = R[i] + return intermediate, nil +} diff --git a/vendor/golang.org/x/crypto/openpgp/armor/armor.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/armor/armor.go similarity index 89% rename from vendor/golang.org/x/crypto/openpgp/armor/armor.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/armor/armor.go index 8907183ec0ab..d7af9141e36d 100644 --- a/vendor/golang.org/x/crypto/openpgp/armor/armor.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/armor/armor.go @@ -4,20 +4,15 @@ // Package armor implements OpenPGP ASCII Armor, see RFC 4880. OpenPGP Armor is // very similar to PEM except that it has an additional CRC checksum. -// -// Deprecated: this package is unmaintained except for security fixes. New -// applications should consider a more focused, modern alternative to OpenPGP -// for their specific task. If you are required to interoperate with OpenPGP -// systems and need a maintained package, consider a community fork. -// See https://golang.org/issue/44226. -package armor // import "golang.org/x/crypto/openpgp/armor" +package armor // import "github.com/ProtonMail/go-crypto/openpgp/armor" import ( "bufio" "bytes" "encoding/base64" - "golang.org/x/crypto/openpgp/errors" "io" + + "github.com/ProtonMail/go-crypto/openpgp/errors" ) // A Block represents an OpenPGP armored structure. @@ -156,7 +151,7 @@ func (r *openpgpReader) Read(p []byte) (n int, err error) { n, err = r.b64Reader.Read(p) r.currentCRC = crc24(r.currentCRC, p[:n]) - if err == io.EOF && r.lReader.crcSet && r.lReader.crc != r.currentCRC&crc24Mask { + if err == io.EOF && r.lReader.crcSet && r.lReader.crc != uint32(r.currentCRC&crc24Mask) { return 0, ArmorCorrupt } @@ -214,12 +209,16 @@ TryNextBlock: break } - i := bytes.Index(line, []byte(": ")) + i := bytes.Index(line, []byte(":")) if i == -1 { goto TryNextBlock } lastKey = string(line[:i]) - p.Header[lastKey] = string(line[i+2:]) + var value string + if len(line) > i+2 { + value = string(line[i+2:]) + } + p.Header[lastKey] = value } p.lReader.in = r diff --git a/vendor/golang.org/x/crypto/openpgp/armor/encode.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/armor/encode.go similarity index 100% rename from vendor/golang.org/x/crypto/openpgp/armor/encode.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/armor/encode.go diff --git a/vendor/golang.org/x/crypto/openpgp/canonical_text.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/canonical_text.go similarity index 80% rename from vendor/golang.org/x/crypto/openpgp/canonical_text.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/canonical_text.go index e601e389f129..a94f6150c4b2 100644 --- a/vendor/golang.org/x/crypto/openpgp/canonical_text.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/canonical_text.go @@ -4,7 +4,10 @@ package openpgp -import "hash" +import ( + "hash" + "io" +) // NewCanonicalTextHash reformats text written to it into the canonical // form and then applies the hash h. See RFC 4880, section 5.2.1. @@ -19,28 +22,31 @@ type canonicalTextHash struct { var newline = []byte{'\r', '\n'} -func (cth *canonicalTextHash) Write(buf []byte) (int, error) { +func writeCanonical(cw io.Writer, buf []byte, s *int) (int, error) { start := 0 - for i, c := range buf { - switch cth.s { + switch *s { case 0: if c == '\r' { - cth.s = 1 + *s = 1 } else if c == '\n' { - cth.h.Write(buf[start:i]) - cth.h.Write(newline) + cw.Write(buf[start:i]) + cw.Write(newline) start = i + 1 } case 1: - cth.s = 0 + *s = 0 } } - cth.h.Write(buf[start:]) + cw.Write(buf[start:]) return len(buf), nil } +func (cth *canonicalTextHash) Write(buf []byte) (int, error) { + return writeCanonical(cth.h, buf, &cth.s) +} + func (cth *canonicalTextHash) Sum(in []byte) []byte { return cth.h.Sum(in) } diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/ecdh/ecdh.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/ecdh/ecdh.go new file mode 100644 index 000000000000..c895bad6bbc4 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/ecdh/ecdh.go @@ -0,0 +1,210 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package ecdh implements ECDH encryption, suitable for OpenPGP, +// as specified in RFC 6637, section 8. +package ecdh + +import ( + "bytes" + "errors" + "io" + + "github.com/ProtonMail/go-crypto/openpgp/aes/keywrap" + "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" + "github.com/ProtonMail/go-crypto/openpgp/internal/ecc" +) + +type KDF struct { + Hash algorithm.Hash + Cipher algorithm.Cipher +} + +type PublicKey struct { + curve ecc.ECDHCurve + Point []byte + KDF +} + +type PrivateKey struct { + PublicKey + D []byte +} + +func NewPublicKey(curve ecc.ECDHCurve, kdfHash algorithm.Hash, kdfCipher algorithm.Cipher) *PublicKey { + return &PublicKey{ + curve: curve, + KDF: KDF{ + Hash: kdfHash, + Cipher: kdfCipher, + }, + } +} + +func NewPrivateKey(key PublicKey) *PrivateKey { + return &PrivateKey{ + PublicKey: key, + } +} + +func (pk *PublicKey) GetCurve() ecc.ECDHCurve { + return pk.curve +} + +func (pk *PublicKey) MarshalPoint() []byte { + return pk.curve.MarshalBytePoint(pk.Point) +} + +func (pk *PublicKey) UnmarshalPoint(p []byte) error { + pk.Point = pk.curve.UnmarshalBytePoint(p) + if pk.Point == nil { + return errors.New("ecdh: failed to parse EC point") + } + return nil +} + +func (sk *PrivateKey) MarshalByteSecret() []byte { + return sk.curve.MarshalByteSecret(sk.D) +} + +func (sk *PrivateKey) UnmarshalByteSecret(d []byte) error { + sk.D = sk.curve.UnmarshalByteSecret(d) + + if sk.D == nil { + return errors.New("ecdh: failed to parse scalar") + } + return nil +} + +func GenerateKey(rand io.Reader, c ecc.ECDHCurve, kdf KDF) (priv *PrivateKey, err error) { + priv = new(PrivateKey) + priv.PublicKey.curve = c + priv.PublicKey.KDF = kdf + priv.PublicKey.Point, priv.D, err = c.GenerateECDH(rand) + return +} + +func Encrypt(random io.Reader, pub *PublicKey, msg, curveOID, fingerprint []byte) (vsG, c []byte, err error) { + if len(msg) > 40 { + return nil, nil, errors.New("ecdh: message too long") + } + // the sender MAY use 21, 13, and 5 bytes of padding for AES-128, + // AES-192, and AES-256, respectively, to provide the same number of + // octets, 40 total, as an input to the key wrapping method. + padding := make([]byte, 40-len(msg)) + for i := range padding { + padding[i] = byte(40 - len(msg)) + } + m := append(msg, padding...) + + ephemeral, zb, err := pub.curve.Encaps(random, pub.Point) + if err != nil { + return nil, nil, err + } + + vsG = pub.curve.MarshalBytePoint(ephemeral) + + z, err := buildKey(pub, zb, curveOID, fingerprint, false, false) + if err != nil { + return nil, nil, err + } + + if c, err = keywrap.Wrap(z, m); err != nil { + return nil, nil, err + } + + return vsG, c, nil + +} + +func Decrypt(priv *PrivateKey, vsG, c, curveOID, fingerprint []byte) (msg []byte, err error) { + var m []byte + zb, err := priv.PublicKey.curve.Decaps(priv.curve.UnmarshalBytePoint(vsG), priv.D) + + // Try buildKey three times to workaround an old bug, see comments in buildKey. + for i := 0; i < 3; i++ { + var z []byte + // RFC6637 §8: "Compute Z = KDF( S, Z_len, Param );" + z, err = buildKey(&priv.PublicKey, zb, curveOID, fingerprint, i == 1, i == 2) + if err != nil { + return nil, err + } + + // RFC6637 §8: "Compute C = AESKeyWrap( Z, c ) as per [RFC3394]" + m, err = keywrap.Unwrap(z, c) + if err == nil { + break + } + } + + // Only return an error after we've tried all (required) variants of buildKey. + if err != nil { + return nil, err + } + + // RFC6637 §8: "m = symm_alg_ID || session key || checksum || pkcs5_padding" + // The last byte should be the length of the padding, as per PKCS5; strip it off. + return m[:len(m)-int(m[len(m)-1])], nil +} + +func buildKey(pub *PublicKey, zb []byte, curveOID, fingerprint []byte, stripLeading, stripTrailing bool) ([]byte, error) { + // Param = curve_OID_len || curve_OID || public_key_alg_ID || 03 + // || 01 || KDF_hash_ID || KEK_alg_ID for AESKeyWrap + // || "Anonymous Sender " || recipient_fingerprint; + param := new(bytes.Buffer) + if _, err := param.Write(curveOID); err != nil { + return nil, err + } + algKDF := []byte{18, 3, 1, pub.KDF.Hash.Id(), pub.KDF.Cipher.Id()} + if _, err := param.Write(algKDF); err != nil { + return nil, err + } + if _, err := param.Write([]byte("Anonymous Sender ")); err != nil { + return nil, err + } + // For v5 keys, the 20 leftmost octets of the fingerprint are used. + if _, err := param.Write(fingerprint[:20]); err != nil { + return nil, err + } + if param.Len()-len(curveOID) != 45 { + return nil, errors.New("ecdh: malformed KDF Param") + } + + // MB = Hash ( 00 || 00 || 00 || 01 || ZB || Param ); + h := pub.KDF.Hash.New() + if _, err := h.Write([]byte{0x0, 0x0, 0x0, 0x1}); err != nil { + return nil, err + } + zbLen := len(zb) + i := 0 + j := zbLen - 1 + if stripLeading { + // Work around old go crypto bug where the leading zeros are missing. + for i < zbLen && zb[i] == 0 { + i++ + } + } + if stripTrailing { + // Work around old OpenPGP.js bug where insignificant trailing zeros in + // this little-endian number are missing. + // (See https://github.com/openpgpjs/openpgpjs/pull/853.) + for j >= 0 && zb[j] == 0 { + j-- + } + } + if _, err := h.Write(zb[i : j+1]); err != nil { + return nil, err + } + if _, err := h.Write(param.Bytes()); err != nil { + return nil, err + } + mb := h.Sum(nil) + + return mb[:pub.KDF.Cipher.KeySize()], nil // return oBits leftmost bits of MB. + +} + +func Validate(priv *PrivateKey) error { + return priv.curve.ValidateECDH(priv.Point, priv.D) +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/ecdsa/ecdsa.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/ecdsa/ecdsa.go new file mode 100644 index 000000000000..f94ae1b2f505 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/ecdsa/ecdsa.go @@ -0,0 +1,80 @@ +// Package ecdsa implements ECDSA signature, suitable for OpenPGP, +// as specified in RFC 6637, section 5. +package ecdsa + +import ( + "errors" + "github.com/ProtonMail/go-crypto/openpgp/internal/ecc" + "io" + "math/big" +) + +type PublicKey struct { + X, Y *big.Int + curve ecc.ECDSACurve +} + +type PrivateKey struct { + PublicKey + D *big.Int +} + +func NewPublicKey(curve ecc.ECDSACurve) *PublicKey { + return &PublicKey{ + curve: curve, + } +} + +func NewPrivateKey(key PublicKey) *PrivateKey { + return &PrivateKey{ + PublicKey: key, + } +} + +func (pk *PublicKey) GetCurve() ecc.ECDSACurve { + return pk.curve +} + +func (pk *PublicKey) MarshalPoint() []byte { + return pk.curve.MarshalIntegerPoint(pk.X, pk.Y) +} + +func (pk *PublicKey) UnmarshalPoint(p []byte) error { + pk.X, pk.Y = pk.curve.UnmarshalIntegerPoint(p) + if pk.X == nil { + return errors.New("ecdsa: failed to parse EC point") + } + return nil +} + +func (sk *PrivateKey) MarshalIntegerSecret() []byte { + return sk.curve.MarshalIntegerSecret(sk.D) +} + +func (sk *PrivateKey) UnmarshalIntegerSecret(d []byte) error { + sk.D = sk.curve.UnmarshalIntegerSecret(d) + + if sk.D == nil { + return errors.New("ecdsa: failed to parse scalar") + } + return nil +} + +func GenerateKey(rand io.Reader, c ecc.ECDSACurve) (priv *PrivateKey, err error) { + priv = new(PrivateKey) + priv.PublicKey.curve = c + priv.PublicKey.X, priv.PublicKey.Y, priv.D, err = c.GenerateECDSA(rand) + return +} + +func Sign(rand io.Reader, priv *PrivateKey, hash []byte) (r, s *big.Int, err error) { + return priv.PublicKey.curve.Sign(rand, priv.X, priv.Y, priv.D, hash) +} + +func Verify(pub *PublicKey, hash []byte, r, s *big.Int) bool { + return pub.curve.Verify(pub.X, pub.Y, hash, r, s) +} + +func Validate(priv *PrivateKey) error { + return priv.curve.ValidateECDSA(priv.X, priv.Y, priv.D.Bytes()) +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/eddsa/eddsa.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/eddsa/eddsa.go new file mode 100644 index 000000000000..99ecfc7f12d0 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/eddsa/eddsa.go @@ -0,0 +1,91 @@ +// Package eddsa implements EdDSA signature, suitable for OpenPGP, as specified in +// https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-13.7 +package eddsa + +import ( + "errors" + "github.com/ProtonMail/go-crypto/openpgp/internal/ecc" + "io" +) + +type PublicKey struct { + X []byte + curve ecc.EdDSACurve +} + +type PrivateKey struct { + PublicKey + D []byte +} + +func NewPublicKey(curve ecc.EdDSACurve) *PublicKey { + return &PublicKey{ + curve: curve, + } +} + +func NewPrivateKey(key PublicKey) *PrivateKey { + return &PrivateKey{ + PublicKey: key, + } +} + +func (pk *PublicKey) GetCurve() ecc.EdDSACurve { + return pk.curve +} + +func (pk *PublicKey) MarshalPoint() []byte { + return pk.curve.MarshalBytePoint(pk.X) +} + +func (pk *PublicKey) UnmarshalPoint(x []byte) error { + pk.X = pk.curve.UnmarshalBytePoint(x) + + if pk.X == nil { + return errors.New("eddsa: failed to parse EC point") + } + return nil +} + +func (sk *PrivateKey) MarshalByteSecret() []byte { + return sk.curve.MarshalByteSecret(sk.D) +} + +func (sk *PrivateKey) UnmarshalByteSecret(d []byte) error { + sk.D = sk.curve.UnmarshalByteSecret(d) + + if sk.D == nil { + return errors.New("eddsa: failed to parse scalar") + } + return nil +} + +func GenerateKey(rand io.Reader, c ecc.EdDSACurve) (priv *PrivateKey, err error) { + priv = new(PrivateKey) + priv.PublicKey.curve = c + priv.PublicKey.X, priv.D, err = c.GenerateEdDSA(rand) + return +} + +func Sign(priv *PrivateKey, message []byte) (r, s []byte, err error) { + sig, err := priv.PublicKey.curve.Sign(priv.PublicKey.X, priv.D, message) + if err != nil { + return nil, nil, err + } + + r, s = priv.PublicKey.curve.MarshalSignature(sig) + return +} + +func Verify(pub *PublicKey, message, r, s []byte) bool { + sig := pub.curve.UnmarshalSignature(r, s) + if sig == nil { + return false + } + + return pub.curve.Verify(pub.X, message, sig) +} + +func Validate(priv *PrivateKey) error { + return priv.curve.ValidateEdDSA(priv.PublicKey.X, priv.D) +} diff --git a/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/elgamal/elgamal.go similarity index 88% rename from vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/elgamal/elgamal.go index 743b35a1204f..bad27743445f 100644 --- a/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/elgamal/elgamal.go @@ -10,13 +10,7 @@ // This form of ElGamal embeds PKCS#1 v1.5 padding, which may make it // unsuitable for other protocols. RSA should be used in preference in any // case. -// -// Deprecated: this package was only provided to support ElGamal encryption in -// OpenPGP. The golang.org/x/crypto/openpgp package is now deprecated (see -// https://golang.org/issue/44226), and ElGamal in the OpenPGP ecosystem has -// compatibility and security issues (see https://eprint.iacr.org/2021/923). -// Moreover, this package doesn't protect against side-channel attacks. -package elgamal // import "golang.org/x/crypto/openpgp/elgamal" +package elgamal // import "github.com/ProtonMail/go-crypto/openpgp/elgamal" import ( "crypto/rand" diff --git a/vendor/golang.org/x/crypto/openpgp/errors/errors.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/errors/errors.go similarity index 56% rename from vendor/golang.org/x/crypto/openpgp/errors/errors.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/errors/errors.go index 1d7a0ea05adf..17e2bcfed20a 100644 --- a/vendor/golang.org/x/crypto/openpgp/errors/errors.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/errors/errors.go @@ -3,13 +3,7 @@ // license that can be found in the LICENSE file. // Package errors contains common error types for the OpenPGP packages. -// -// Deprecated: this package is unmaintained except for security fixes. New -// applications should consider a more focused, modern alternative to OpenPGP -// for their specific task. If you are required to interoperate with OpenPGP -// systems and need a maintained package, consider a community fork. -// See https://golang.org/issue/44226. -package errors // import "golang.org/x/crypto/openpgp/errors" +package errors // import "github.com/ProtonMail/go-crypto/openpgp/errors" import ( "strconv" @@ -47,6 +41,25 @@ func (b SignatureError) Error() string { return "openpgp: invalid signature: " + string(b) } +var ErrMDCHashMismatch error = SignatureError("MDC hash mismatch") +var ErrMDCMissing error = SignatureError("MDC packet not found") + +type signatureExpiredError int + +func (se signatureExpiredError) Error() string { + return "openpgp: signature expired" +} + +var ErrSignatureExpired error = signatureExpiredError(0) + +type keyExpiredError int + +func (ke keyExpiredError) Error() string { + return "openpgp: key expired" +} + +var ErrKeyExpired error = keyExpiredError(0) + type keyIncorrectError int func (ki keyIncorrectError) Error() string { @@ -55,6 +68,14 @@ func (ki keyIncorrectError) Error() string { var ErrKeyIncorrect error = keyIncorrectError(0) +// KeyInvalidError indicates that the public key parameters are invalid +// as they do not match the private ones +type KeyInvalidError string + +func (e KeyInvalidError) Error() string { + return "openpgp: invalid key: " + string(e) +} + type unknownIssuerError int func (unknownIssuerError) Error() string { @@ -76,3 +97,20 @@ type UnknownPacketTypeError uint8 func (upte UnknownPacketTypeError) Error() string { return "openpgp: unknown packet type: " + strconv.Itoa(int(upte)) } + +// AEADError indicates that there is a problem when initializing or using a +// AEAD instance, configuration struct, nonces or index values. +type AEADError string + +func (ae AEADError) Error() string { + return "openpgp: aead error: " + string(ae) +} + +// ErrDummyPrivateKey results when operations are attempted on a private key +// that is just a dummy key. See +// https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=doc/DETAILS;h=fe55ae16ab4e26d8356dc574c9e8bc935e71aef1;hb=23191d7851eae2217ecdac6484349849a24fd94a#l1109 +type ErrDummyPrivateKey string + +func (dke ErrDummyPrivateKey) Error() string { + return "openpgp: s2k GNU dummy key: " + string(dke) +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/hash.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/hash.go new file mode 100644 index 000000000000..526bd7777f86 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/hash.go @@ -0,0 +1,24 @@ +package openpgp + +import ( + "crypto" + + "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" +) + +// HashIdToHash returns a crypto.Hash which corresponds to the given OpenPGP +// hash id. +func HashIdToHash(id byte) (h crypto.Hash, ok bool) { + return algorithm.HashIdToHash(id) +} + +// HashIdToString returns the name of the hash function corresponding to the +// given OpenPGP hash id. +func HashIdToString(id byte) (name string, ok bool) { + return algorithm.HashIdToString(id) +} + +// HashToHashId returns an OpenPGP hash id which corresponds the given Hash. +func HashToHashId(h crypto.Hash) (id byte, ok bool) { + return algorithm.HashToHashId(h) +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/aead.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/aead.go new file mode 100644 index 000000000000..d06706518664 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/aead.go @@ -0,0 +1,65 @@ +// Copyright (C) 2019 ProtonTech AG + +package algorithm + +import ( + "crypto/cipher" + "github.com/ProtonMail/go-crypto/eax" + "github.com/ProtonMail/go-crypto/ocb" +) + +// AEADMode defines the Authenticated Encryption with Associated Data mode of +// operation. +type AEADMode uint8 + +// Supported modes of operation (see RFC4880bis [EAX] and RFC7253) +const ( + AEADModeEAX = AEADMode(1) + AEADModeOCB = AEADMode(2) + AEADModeGCM = AEADMode(3) +) + +// TagLength returns the length in bytes of authentication tags. +func (mode AEADMode) TagLength() int { + switch mode { + case AEADModeEAX: + return 16 + case AEADModeOCB: + return 16 + case AEADModeGCM: + return 16 + default: + return 0 + } +} + +// NonceLength returns the length in bytes of nonces. +func (mode AEADMode) NonceLength() int { + switch mode { + case AEADModeEAX: + return 16 + case AEADModeOCB: + return 15 + case AEADModeGCM: + return 12 + default: + return 0 + } +} + +// New returns a fresh instance of the given mode +func (mode AEADMode) New(block cipher.Block) (alg cipher.AEAD) { + var err error + switch mode { + case AEADModeEAX: + alg, err = eax.NewEAX(block) + case AEADModeOCB: + alg, err = ocb.NewOCB(block) + case AEADModeGCM: + alg, err = cipher.NewGCM(block) + } + if err != nil { + panic(err.Error()) + } + return alg +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/cipher.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/cipher.go new file mode 100644 index 000000000000..5760cff80ea3 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/cipher.go @@ -0,0 +1,107 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package algorithm + +import ( + "crypto/aes" + "crypto/cipher" + "crypto/des" + + "golang.org/x/crypto/cast5" +) + +// Cipher is an official symmetric key cipher algorithm. See RFC 4880, +// section 9.2. +type Cipher interface { + // Id returns the algorithm ID, as a byte, of the cipher. + Id() uint8 + // KeySize returns the key size, in bytes, of the cipher. + KeySize() int + // BlockSize returns the block size, in bytes, of the cipher. + BlockSize() int + // New returns a fresh instance of the given cipher. + New(key []byte) cipher.Block +} + +// The following constants mirror the OpenPGP standard (RFC 4880). +const ( + TripleDES = CipherFunction(2) + CAST5 = CipherFunction(3) + AES128 = CipherFunction(7) + AES192 = CipherFunction(8) + AES256 = CipherFunction(9) +) + +// CipherById represents the different block ciphers specified for OpenPGP. See +// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-13 +var CipherById = map[uint8]Cipher{ + TripleDES.Id(): TripleDES, + CAST5.Id(): CAST5, + AES128.Id(): AES128, + AES192.Id(): AES192, + AES256.Id(): AES256, +} + +type CipherFunction uint8 + +// ID returns the algorithm Id, as a byte, of cipher. +func (sk CipherFunction) Id() uint8 { + return uint8(sk) +} + +var keySizeByID = map[uint8]int{ + TripleDES.Id(): 24, + CAST5.Id(): cast5.KeySize, + AES128.Id(): 16, + AES192.Id(): 24, + AES256.Id(): 32, +} + +// KeySize returns the key size, in bytes, of cipher. +func (cipher CipherFunction) KeySize() int { + switch cipher { + case TripleDES: + return 24 + case CAST5: + return cast5.KeySize + case AES128: + return 16 + case AES192: + return 24 + case AES256: + return 32 + } + return 0 +} + +// BlockSize returns the block size, in bytes, of cipher. +func (cipher CipherFunction) BlockSize() int { + switch cipher { + case TripleDES: + return des.BlockSize + case CAST5: + return 8 + case AES128, AES192, AES256: + return 16 + } + return 0 +} + +// New returns a fresh instance of the given cipher. +func (cipher CipherFunction) New(key []byte) (block cipher.Block) { + var err error + switch cipher { + case TripleDES: + block, err = des.NewTripleDESCipher(key) + case CAST5: + block, err = cast5.NewCipher(key) + case AES128, AES192, AES256: + block, err = aes.NewCipher(key) + } + if err != nil { + panic(err.Error()) + } + return +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/hash.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/hash.go new file mode 100644 index 000000000000..d1a00fc74950 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/hash.go @@ -0,0 +1,143 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package algorithm + +import ( + "crypto" + "fmt" + "hash" +) + +// Hash is an official hash function algorithm. See RFC 4880, section 9.4. +type Hash interface { + // Id returns the algorithm ID, as a byte, of Hash. + Id() uint8 + // Available reports whether the given hash function is linked into the binary. + Available() bool + // HashFunc simply returns the value of h so that Hash implements SignerOpts. + HashFunc() crypto.Hash + // New returns a new hash.Hash calculating the given hash function. New + // panics if the hash function is not linked into the binary. + New() hash.Hash + // Size returns the length, in bytes, of a digest resulting from the given + // hash function. It doesn't require that the hash function in question be + // linked into the program. + Size() int + // String is the name of the hash function corresponding to the given + // OpenPGP hash id. + String() string +} + +// The following vars mirror the crypto/Hash supported hash functions. +var ( + SHA1 Hash = cryptoHash{2, crypto.SHA1} + SHA256 Hash = cryptoHash{8, crypto.SHA256} + SHA384 Hash = cryptoHash{9, crypto.SHA384} + SHA512 Hash = cryptoHash{10, crypto.SHA512} + SHA224 Hash = cryptoHash{11, crypto.SHA224} + SHA3_256 Hash = cryptoHash{12, crypto.SHA3_256} + SHA3_512 Hash = cryptoHash{14, crypto.SHA3_512} +) + +// HashById represents the different hash functions specified for OpenPGP. See +// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-14 +var ( + HashById = map[uint8]Hash{ + SHA256.Id(): SHA256, + SHA384.Id(): SHA384, + SHA512.Id(): SHA512, + SHA224.Id(): SHA224, + SHA3_256.Id(): SHA3_256, + SHA3_512.Id(): SHA3_512, + } +) + +// cryptoHash contains pairs relating OpenPGP's hash identifier with +// Go's crypto.Hash type. See RFC 4880, section 9.4. +type cryptoHash struct { + id uint8 + crypto.Hash +} + +// Id returns the algorithm ID, as a byte, of cryptoHash. +func (h cryptoHash) Id() uint8 { + return h.id +} + +var hashNames = map[uint8]string{ + SHA256.Id(): "SHA256", + SHA384.Id(): "SHA384", + SHA512.Id(): "SHA512", + SHA224.Id(): "SHA224", + SHA3_256.Id(): "SHA3-256", + SHA3_512.Id(): "SHA3-512", +} + +func (h cryptoHash) String() string { + s, ok := hashNames[h.id] + if !ok { + panic(fmt.Sprintf("Unsupported hash function %d", h.id)) + } + return s +} + +// HashIdToHash returns a crypto.Hash which corresponds to the given OpenPGP +// hash id. +func HashIdToHash(id byte) (h crypto.Hash, ok bool) { + if hash, ok := HashById[id]; ok { + return hash.HashFunc(), true + } + return 0, false +} + +// HashIdToHashWithSha1 returns a crypto.Hash which corresponds to the given OpenPGP +// hash id, allowing sha1. +func HashIdToHashWithSha1(id byte) (h crypto.Hash, ok bool) { + if hash, ok := HashById[id]; ok { + return hash.HashFunc(), true + } + + if id == SHA1.Id() { + return SHA1.HashFunc(), true + } + + return 0, false +} + +// HashIdToString returns the name of the hash function corresponding to the +// given OpenPGP hash id. +func HashIdToString(id byte) (name string, ok bool) { + if hash, ok := HashById[id]; ok { + return hash.String(), true + } + return "", false +} + +// HashToHashId returns an OpenPGP hash id which corresponds the given Hash. +func HashToHashId(h crypto.Hash) (id byte, ok bool) { + for id, hash := range HashById { + if hash.HashFunc() == h { + return id, true + } + } + + return 0, false +} + +// HashToHashIdWithSha1 returns an OpenPGP hash id which corresponds the given Hash, +// allowing instances of SHA1 +func HashToHashIdWithSha1(h crypto.Hash) (id byte, ok bool) { + for id, hash := range HashById { + if hash.HashFunc() == h { + return id, true + } + } + + if h == SHA1.HashFunc() { + return SHA1.Id(), true + } + + return 0, false +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519.go new file mode 100644 index 000000000000..888767c4e438 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519.go @@ -0,0 +1,171 @@ +// Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. +package ecc + +import ( + "crypto/subtle" + "io" + + "github.com/ProtonMail/go-crypto/openpgp/errors" + x25519lib "github.com/cloudflare/circl/dh/x25519" +) + +type curve25519 struct{} + +func NewCurve25519() *curve25519 { + return &curve25519{} +} + +func (c *curve25519) GetCurveName() string { + return "curve25519" +} + +// MarshalBytePoint encodes the public point from native format, adding the prefix. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6 +func (c *curve25519) MarshalBytePoint(point []byte) []byte { + return append([]byte{0x40}, point...) +} + +// UnmarshalBytePoint decodes the public point to native format, removing the prefix. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6 +func (c *curve25519) UnmarshalBytePoint(point []byte) []byte { + if len(point) != x25519lib.Size+1 { + return nil + } + + // Remove prefix + return point[1:] +} + +// MarshalByteSecret encodes the secret scalar from native format. +// Note that the EC secret scalar differs from the definition of public keys in +// [Curve25519] in two ways: (1) the byte-ordering is big-endian, which is +// more uniform with how big integers are represented in OpenPGP, and (2) the +// leading zeros are truncated. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6.1.1 +// Note that leading zero bytes are stripped later when encoding as an MPI. +func (c *curve25519) MarshalByteSecret(secret []byte) []byte { + d := make([]byte, x25519lib.Size) + copyReversed(d, secret) + + // The following ensures that the private key is a number of the form + // 2^{254} + 8 * [0, 2^{251}), in order to avoid the small subgroup of + // the curve. + // + // This masking is done internally in the underlying lib and so is unnecessary + // for security, but OpenPGP implementations require that private keys be + // pre-masked. + d[0] &= 127 + d[0] |= 64 + d[31] &= 248 + + return d +} + +// UnmarshalByteSecret decodes the secret scalar from native format. +// Note that the EC secret scalar differs from the definition of public keys in +// [Curve25519] in two ways: (1) the byte-ordering is big-endian, which is +// more uniform with how big integers are represented in OpenPGP, and (2) the +// leading zeros are truncated. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6.1.1 +func (c *curve25519) UnmarshalByteSecret(d []byte) []byte { + if len(d) > x25519lib.Size { + return nil + } + + // Ensure truncated leading bytes are re-added + secret := make([]byte, x25519lib.Size) + copyReversed(secret, d) + + return secret +} + +// generateKeyPairBytes Generates a private-public key-pair. +// 'priv' is a private key; a little-endian scalar belonging to the set +// 2^{254} + 8 * [0, 2^{251}), in order to avoid the small subgroup of the +// curve. 'pub' is simply 'priv' * G where G is the base point. +// See https://cr.yp.to/ecdh.html and RFC7748, sec 5. +func (c *curve25519) generateKeyPairBytes(rand io.Reader) (priv, pub x25519lib.Key, err error) { + _, err = io.ReadFull(rand, priv[:]) + if err != nil { + return + } + + x25519lib.KeyGen(&pub, &priv) + return +} + +func (c *curve25519) GenerateECDH(rand io.Reader) (point []byte, secret []byte, err error) { + priv, pub, err := c.generateKeyPairBytes(rand) + if err != nil { + return + } + + return pub[:], priv[:], nil +} + +func (c *genericCurve) MaskSecret(secret []byte) []byte { + return secret +} + +func (c *curve25519) Encaps(rand io.Reader, point []byte) (ephemeral, sharedSecret []byte, err error) { + // RFC6637 §8: "Generate an ephemeral key pair {v, V=vG}" + // ephemeralPrivate corresponds to `v`. + // ephemeralPublic corresponds to `V`. + ephemeralPrivate, ephemeralPublic, err := c.generateKeyPairBytes(rand) + if err != nil { + return nil, nil, err + } + + // RFC6637 §8: "Obtain the authenticated recipient public key R" + // pubKey corresponds to `R`. + var pubKey x25519lib.Key + copy(pubKey[:], point) + + // RFC6637 §8: "Compute the shared point S = vR" + // "VB = convert point V to the octet string" + // sharedPoint corresponds to `VB`. + var sharedPoint x25519lib.Key + x25519lib.Shared(&sharedPoint, &ephemeralPrivate, &pubKey) + + return ephemeralPublic[:], sharedPoint[:], nil +} + +func (c *curve25519) Decaps(vsG, secret []byte) (sharedSecret []byte, err error) { + var ephemeralPublic, decodedPrivate, sharedPoint x25519lib.Key + // RFC6637 §8: "The decryption is the inverse of the method given." + // All quoted descriptions in comments below describe encryption, and + // the reverse is performed. + // vsG corresponds to `VB` in RFC6637 §8 . + + // RFC6637 §8: "VB = convert point V to the octet string" + copy(ephemeralPublic[:], vsG) + + // decodedPrivate corresponds to `r` in RFC6637 §8 . + copy(decodedPrivate[:], secret) + + // RFC6637 §8: "Note that the recipient obtains the shared secret by calculating + // S = rV = rvG, where (r,R) is the recipient's key pair." + // sharedPoint corresponds to `S`. + x25519lib.Shared(&sharedPoint, &decodedPrivate, &ephemeralPublic) + + return sharedPoint[:], nil +} + +func (c *curve25519) ValidateECDH(point []byte, secret []byte) (err error) { + var pk, sk x25519lib.Key + copy(sk[:], secret) + x25519lib.KeyGen(&pk, &sk) + + if subtle.ConstantTimeCompare(point, pk[:]) == 0 { + return errors.KeyInvalidError("ecc: invalid curve25519 public point") + } + + return nil +} + +func copyReversed(out []byte, in []byte) { + l := len(in) + for i := 0; i < l; i++ { + out[i] = in[l-i-1] + } +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve_info.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve_info.go new file mode 100644 index 000000000000..35751034ddab --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve_info.go @@ -0,0 +1,140 @@ +// Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. +package ecc + +import ( + "bytes" + "crypto/elliptic" + "github.com/ProtonMail/go-crypto/bitcurves" + "github.com/ProtonMail/go-crypto/brainpool" + "github.com/ProtonMail/go-crypto/openpgp/internal/encoding" +) + +type CurveInfo struct { + GenName string + Oid *encoding.OID + Curve Curve +} + +var Curves = []CurveInfo{ + { + // NIST P-256 + GenName: "P256", + Oid: encoding.NewOID([]byte{0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07}), + Curve: NewGenericCurve(elliptic.P256()), + }, + { + // NIST P-384 + GenName: "P384", + Oid: encoding.NewOID([]byte{0x2B, 0x81, 0x04, 0x00, 0x22}), + Curve: NewGenericCurve(elliptic.P384()), + }, + { + // NIST P-521 + GenName: "P521", + Oid: encoding.NewOID([]byte{0x2B, 0x81, 0x04, 0x00, 0x23}), + Curve: NewGenericCurve(elliptic.P521()), + }, + { + // SecP256k1 + GenName: "SecP256k1", + Oid: encoding.NewOID([]byte{0x2B, 0x81, 0x04, 0x00, 0x0A}), + Curve: NewGenericCurve(bitcurves.S256()), + }, + { + // Curve25519 + GenName: "Curve25519", + Oid: encoding.NewOID([]byte{0x2B, 0x06, 0x01, 0x04, 0x01, 0x97, 0x55, 0x01, 0x05, 0x01}), + Curve: NewCurve25519(), + }, + { + // X448 + GenName: "Curve448", + Oid: encoding.NewOID([]byte{0x2B, 0x65, 0x6F}), + Curve: NewX448(), + }, + { + // Ed25519 + GenName: "Curve25519", + Oid: encoding.NewOID([]byte{0x2B, 0x06, 0x01, 0x04, 0x01, 0xDA, 0x47, 0x0F, 0x01}), + Curve: NewEd25519(), + }, + { + // Ed448 + GenName: "Curve448", + Oid: encoding.NewOID([]byte{0x2B, 0x65, 0x71}), + Curve: NewEd448(), + }, + { + // BrainpoolP256r1 + GenName: "BrainpoolP256", + Oid: encoding.NewOID([]byte{0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x07}), + Curve: NewGenericCurve(brainpool.P256r1()), + }, + { + // BrainpoolP384r1 + GenName: "BrainpoolP384", + Oid: encoding.NewOID([]byte{0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0B}), + Curve: NewGenericCurve(brainpool.P384r1()), + }, + { + // BrainpoolP512r1 + GenName: "BrainpoolP512", + Oid: encoding.NewOID([]byte{0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0D}), + Curve: NewGenericCurve(brainpool.P512r1()), + }, +} + +func FindByCurve(curve Curve) *CurveInfo { + for _, curveInfo := range Curves { + if curveInfo.Curve.GetCurveName() == curve.GetCurveName() { + return &curveInfo + } + } + return nil +} + +func FindByOid(oid encoding.Field) *CurveInfo { + var rawBytes = oid.Bytes() + for _, curveInfo := range Curves { + if bytes.Equal(curveInfo.Oid.Bytes(), rawBytes) { + return &curveInfo + } + } + return nil +} + +func FindEdDSAByGenName(curveGenName string) EdDSACurve { + for _, curveInfo := range Curves { + if curveInfo.GenName == curveGenName { + curve, ok := curveInfo.Curve.(EdDSACurve) + if ok { + return curve + } + } + } + return nil +} + +func FindECDSAByGenName(curveGenName string) ECDSACurve { + for _, curveInfo := range Curves { + if curveInfo.GenName == curveGenName { + curve, ok := curveInfo.Curve.(ECDSACurve) + if ok { + return curve + } + } + } + return nil +} + +func FindECDHByGenName(curveGenName string) ECDHCurve { + for _, curveInfo := range Curves { + if curveInfo.GenName == curveGenName { + curve, ok := curveInfo.Curve.(ECDHCurve) + if ok { + return curve + } + } + } + return nil +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curves.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curves.go new file mode 100644 index 000000000000..5ed9c93b3d60 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curves.go @@ -0,0 +1,48 @@ +// Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. +package ecc + +import ( + "io" + "math/big" +) + +type Curve interface { + GetCurveName() string +} + +type ECDSACurve interface { + Curve + MarshalIntegerPoint(x, y *big.Int) []byte + UnmarshalIntegerPoint([]byte) (x, y *big.Int) + MarshalIntegerSecret(d *big.Int) []byte + UnmarshalIntegerSecret(d []byte) *big.Int + GenerateECDSA(rand io.Reader) (x, y, secret *big.Int, err error) + Sign(rand io.Reader, x, y, d *big.Int, hash []byte) (r, s *big.Int, err error) + Verify(x, y *big.Int, hash []byte, r, s *big.Int) bool + ValidateECDSA(x, y *big.Int, secret []byte) error +} + +type EdDSACurve interface { + Curve + MarshalBytePoint(x []byte) []byte + UnmarshalBytePoint([]byte) (x []byte) + MarshalByteSecret(d []byte) []byte + UnmarshalByteSecret(d []byte) []byte + MarshalSignature(sig []byte) (r, s []byte) + UnmarshalSignature(r, s []byte) (sig []byte) + GenerateEdDSA(rand io.Reader) (pub, priv []byte, err error) + Sign(publicKey, privateKey, message []byte) (sig []byte, err error) + Verify(publicKey, message, sig []byte) bool + ValidateEdDSA(publicKey, privateKey []byte) (err error) +} +type ECDHCurve interface { + Curve + MarshalBytePoint([]byte) (encoded []byte) + UnmarshalBytePoint(encoded []byte) []byte + MarshalByteSecret(d []byte) []byte + UnmarshalByteSecret(d []byte) []byte + GenerateECDH(rand io.Reader) (point []byte, secret []byte, err error) + Encaps(rand io.Reader, point []byte) (ephemeral, sharedSecret []byte, err error) + Decaps(ephemeral, secret []byte) (sharedSecret []byte, err error) + ValidateECDH(public []byte, secret []byte) error +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed25519.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed25519.go new file mode 100644 index 000000000000..54a08a8a38f2 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed25519.go @@ -0,0 +1,112 @@ +// Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. +package ecc + +import ( + "crypto/subtle" + "io" + + "github.com/ProtonMail/go-crypto/openpgp/errors" + ed25519lib "github.com/cloudflare/circl/sign/ed25519" +) + +const ed25519Size = 32 + +type ed25519 struct{} + +func NewEd25519() *ed25519 { + return &ed25519{} +} + +func (c *ed25519) GetCurveName() string { + return "ed25519" +} + +// MarshalBytePoint encodes the public point from native format, adding the prefix. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 +func (c *ed25519) MarshalBytePoint(x []byte) []byte { + return append([]byte{0x40}, x...) +} + +// UnmarshalBytePoint decodes a point from prefixed format to native. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 +func (c *ed25519) UnmarshalBytePoint(point []byte) (x []byte) { + if len(point) != ed25519lib.PublicKeySize+1 { + return nil + } + + // Return unprefixed + return point[1:] +} + +// MarshalByteSecret encodes a scalar in native format. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 +func (c *ed25519) MarshalByteSecret(d []byte) []byte { + return d +} + +// UnmarshalByteSecret decodes a scalar in native format and re-adds the stripped leading zeroes +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 +func (c *ed25519) UnmarshalByteSecret(s []byte) (d []byte) { + if len(s) > ed25519lib.SeedSize { + return nil + } + + // Handle stripped leading zeroes + d = make([]byte, ed25519lib.SeedSize) + copy(d[ed25519lib.SeedSize-len(s):], s) + return +} + +// MarshalSignature splits a signature in R and S. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.2.3.3.1 +func (c *ed25519) MarshalSignature(sig []byte) (r, s []byte) { + return sig[:ed25519Size], sig[ed25519Size:] +} + +// UnmarshalSignature decodes R and S in the native format, re-adding the stripped leading zeroes +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.2.3.3.1 +func (c *ed25519) UnmarshalSignature(r, s []byte) (sig []byte) { + // Check size + if len(r) > 32 || len(s) > 32 { + return nil + } + + sig = make([]byte, ed25519lib.SignatureSize) + + // Handle stripped leading zeroes + copy(sig[ed25519Size-len(r):ed25519Size], r) + copy(sig[ed25519lib.SignatureSize-len(s):], s) + return sig +} + +func (c *ed25519) GenerateEdDSA(rand io.Reader) (pub, priv []byte, err error) { + pk, sk, err := ed25519lib.GenerateKey(rand) + + if err != nil { + return nil, nil, err + } + + return pk, sk[:ed25519lib.SeedSize], nil +} + +func getEd25519Sk(publicKey, privateKey []byte) ed25519lib.PrivateKey { + return append(privateKey, publicKey...) +} + +func (c *ed25519) Sign(publicKey, privateKey, message []byte) (sig []byte, err error) { + sig = ed25519lib.Sign(getEd25519Sk(publicKey, privateKey), message) + return sig, nil +} + +func (c *ed25519) Verify(publicKey, message, sig []byte) bool { + return ed25519lib.Verify(publicKey, message, sig) +} + +func (c *ed25519) ValidateEdDSA(publicKey, privateKey []byte) (err error) { + priv := getEd25519Sk(publicKey, privateKey) + expectedPriv := ed25519lib.NewKeyFromSeed(priv.Seed()) + if subtle.ConstantTimeCompare(priv, expectedPriv) == 0 { + return errors.KeyInvalidError("ecc: invalid ed25519 secret") + } + return nil +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed448.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed448.go new file mode 100644 index 000000000000..18cd80434b67 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed448.go @@ -0,0 +1,111 @@ +// Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. +package ecc + +import ( + "crypto/subtle" + "io" + + "github.com/ProtonMail/go-crypto/openpgp/errors" + ed448lib "github.com/cloudflare/circl/sign/ed448" +) + +type ed448 struct{} + +func NewEd448() *ed448 { + return &ed448{} +} + +func (c *ed448) GetCurveName() string { + return "ed448" +} + +// MarshalBytePoint encodes the public point from native format, adding the prefix. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 +func (c *ed448) MarshalBytePoint(x []byte) []byte { + // Return prefixed + return append([]byte{0x40}, x...) +} + +// UnmarshalBytePoint decodes a point from prefixed format to native. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 +func (c *ed448) UnmarshalBytePoint(point []byte) (x []byte) { + if len(point) != ed448lib.PublicKeySize+1 { + return nil + } + + // Strip prefix + return point[1:] +} + +// MarshalByteSecret encoded a scalar from native format to prefixed. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 +func (c *ed448) MarshalByteSecret(d []byte) []byte { + // Return prefixed + return append([]byte{0x40}, d...) +} + +// UnmarshalByteSecret decodes a scalar from prefixed format to native. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 +func (c *ed448) UnmarshalByteSecret(s []byte) (d []byte) { + // Check prefixed size + if len(s) != ed448lib.SeedSize+1 { + return nil + } + + // Strip prefix + return s[1:] +} + +// MarshalSignature splits a signature in R and S, where R is in prefixed native format and +// S is an MPI with value zero. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.2.3.3.2 +func (c *ed448) MarshalSignature(sig []byte) (r, s []byte) { + return append([]byte{0x40}, sig...), []byte{} +} + +// UnmarshalSignature decodes R and S in the native format. Only R is used, in prefixed native format. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.2.3.3.2 +func (c *ed448) UnmarshalSignature(r, s []byte) (sig []byte) { + if len(r) != ed448lib.SignatureSize+1 { + return nil + } + + return r[1:] +} + +func (c *ed448) GenerateEdDSA(rand io.Reader) (pub, priv []byte, err error) { + pk, sk, err := ed448lib.GenerateKey(rand) + + if err != nil { + return nil, nil, err + } + + return pk, sk[:ed448lib.SeedSize], nil +} + +func getEd448Sk(publicKey, privateKey []byte) ed448lib.PrivateKey { + return append(privateKey, publicKey...) +} + +func (c *ed448) Sign(publicKey, privateKey, message []byte) (sig []byte, err error) { + // Ed448 is used with the empty string as a context string. + // See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-13.7 + sig = ed448lib.Sign(getEd448Sk(publicKey, privateKey), message, "") + + return sig, nil +} + +func (c *ed448) Verify(publicKey, message, sig []byte) bool { + // Ed448 is used with the empty string as a context string. + // See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-13.7 + return ed448lib.Verify(publicKey, message, sig, "") +} + +func (c *ed448) ValidateEdDSA(publicKey, privateKey []byte) (err error) { + priv := getEd448Sk(publicKey, privateKey) + expectedPriv := ed448lib.NewKeyFromSeed(priv.Seed()) + if subtle.ConstantTimeCompare(priv, expectedPriv) == 0 { + return errors.KeyInvalidError("ecc: invalid ed448 secret") + } + return nil +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/generic.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/generic.go new file mode 100644 index 000000000000..e28d7c7106a3 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/generic.go @@ -0,0 +1,149 @@ +// Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. +package ecc + +import ( + "crypto/ecdsa" + "crypto/elliptic" + "fmt" + "github.com/ProtonMail/go-crypto/openpgp/errors" + "io" + "math/big" +) + +type genericCurve struct { + Curve elliptic.Curve +} + +func NewGenericCurve(c elliptic.Curve) *genericCurve { + return &genericCurve{ + Curve: c, + } +} + +func (c *genericCurve) GetCurveName() string { + return c.Curve.Params().Name +} + +func (c *genericCurve) MarshalBytePoint(point []byte) []byte { + return point +} + +func (c *genericCurve) UnmarshalBytePoint(point []byte) []byte { + return point +} + +func (c *genericCurve) MarshalIntegerPoint(x, y *big.Int) []byte { + return elliptic.Marshal(c.Curve, x, y) +} + +func (c *genericCurve) UnmarshalIntegerPoint(point []byte) (x, y *big.Int) { + return elliptic.Unmarshal(c.Curve, point) +} + +func (c *genericCurve) MarshalByteSecret(d []byte) []byte { + return d +} + +func (c *genericCurve) UnmarshalByteSecret(d []byte) []byte { + return d +} + +func (c *genericCurve) MarshalIntegerSecret(d *big.Int) []byte { + return d.Bytes() +} + +func (c *genericCurve) UnmarshalIntegerSecret(d []byte) *big.Int { + return new(big.Int).SetBytes(d) +} + +func (c *genericCurve) GenerateECDH(rand io.Reader) (point, secret []byte, err error) { + secret, x, y, err := elliptic.GenerateKey(c.Curve, rand) + if err != nil { + return nil, nil, err + } + + point = elliptic.Marshal(c.Curve, x, y) + return point, secret, nil +} + +func (c *genericCurve) GenerateECDSA(rand io.Reader) (x, y, secret *big.Int, err error) { + priv, err := ecdsa.GenerateKey(c.Curve, rand) + if err != nil { + return + } + + return priv.X, priv.Y, priv.D, nil +} + +func (c *genericCurve) Encaps(rand io.Reader, point []byte) (ephemeral, sharedSecret []byte, err error) { + xP, yP := elliptic.Unmarshal(c.Curve, point) + if xP == nil { + panic("invalid point") + } + + d, x, y, err := elliptic.GenerateKey(c.Curve, rand) + if err != nil { + return nil, nil, err + } + + vsG := elliptic.Marshal(c.Curve, x, y) + zbBig, _ := c.Curve.ScalarMult(xP, yP, d) + + byteLen := (c.Curve.Params().BitSize + 7) >> 3 + zb := make([]byte, byteLen) + zbBytes := zbBig.Bytes() + copy(zb[byteLen-len(zbBytes):], zbBytes) + + return vsG, zb, nil +} + +func (c *genericCurve) Decaps(ephemeral, secret []byte) (sharedSecret []byte, err error) { + x, y := elliptic.Unmarshal(c.Curve, ephemeral) + zbBig, _ := c.Curve.ScalarMult(x, y, secret) + byteLen := (c.Curve.Params().BitSize + 7) >> 3 + zb := make([]byte, byteLen) + zbBytes := zbBig.Bytes() + copy(zb[byteLen-len(zbBytes):], zbBytes) + + return zb, nil +} + +func (c *genericCurve) Sign(rand io.Reader, x, y, d *big.Int, hash []byte) (r, s *big.Int, err error) { + priv := &ecdsa.PrivateKey{D: d, PublicKey: ecdsa.PublicKey{X: x, Y: y, Curve: c.Curve}} + return ecdsa.Sign(rand, priv, hash) +} + +func (c *genericCurve) Verify(x, y *big.Int, hash []byte, r, s *big.Int) bool { + pub := &ecdsa.PublicKey{X: x, Y: y, Curve: c.Curve} + return ecdsa.Verify(pub, hash, r, s) +} + +func (c *genericCurve) validate(xP, yP *big.Int, secret []byte) error { + // the public point should not be at infinity (0,0) + zero := new(big.Int) + if xP.Cmp(zero) == 0 && yP.Cmp(zero) == 0 { + return errors.KeyInvalidError(fmt.Sprintf("ecc (%s): infinity point", c.Curve.Params().Name)) + } + + // re-derive the public point Q' = (X,Y) = dG + // to compare to declared Q in public key + expectedX, expectedY := c.Curve.ScalarBaseMult(secret) + if xP.Cmp(expectedX) != 0 || yP.Cmp(expectedY) != 0 { + return errors.KeyInvalidError(fmt.Sprintf("ecc (%s): invalid point", c.Curve.Params().Name)) + } + + return nil +} + +func (c *genericCurve) ValidateECDSA(xP, yP *big.Int, secret []byte) error { + return c.validate(xP, yP, secret) +} + +func (c *genericCurve) ValidateECDH(point []byte, secret []byte) error { + xP, yP := elliptic.Unmarshal(c.Curve, point) + if xP == nil { + return errors.KeyInvalidError(fmt.Sprintf("ecc (%s): invalid point", c.Curve.Params().Name)) + } + + return c.validate(xP, yP, secret) +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/x448.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/x448.go new file mode 100644 index 000000000000..ffdd51513b48 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/x448.go @@ -0,0 +1,105 @@ +// Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. +package ecc + +import ( + "crypto/subtle" + "io" + + "github.com/ProtonMail/go-crypto/openpgp/errors" + x448lib "github.com/cloudflare/circl/dh/x448" +) + +type x448 struct{} + +func NewX448() *x448 { + return &x448{} +} + +func (c *x448) GetCurveName() string { + return "x448" +} + +// MarshalBytePoint encodes the public point from native format, adding the prefix. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6 +func (c *x448) MarshalBytePoint(point []byte) []byte { + return append([]byte{0x40}, point...) +} + +// UnmarshalBytePoint decodes a point from prefixed format to native. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6 +func (c *x448) UnmarshalBytePoint(point []byte) []byte { + if len(point) != x448lib.Size+1 { + return nil + } + + return point[1:] +} + +// MarshalByteSecret encoded a scalar from native format to prefixed. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6.1.2 +func (c *x448) MarshalByteSecret(d []byte) []byte { + return append([]byte{0x40}, d...) +} + +// UnmarshalByteSecret decodes a scalar from prefixed format to native. +// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6.1.2 +func (c *x448) UnmarshalByteSecret(d []byte) []byte { + if len(d) != x448lib.Size+1 { + return nil + } + + // Store without prefix + return d[1:] +} + +func (c *x448) generateKeyPairBytes(rand io.Reader) (sk, pk x448lib.Key, err error) { + if _, err = rand.Read(sk[:]); err != nil { + return + } + + x448lib.KeyGen(&pk, &sk) + return +} + +func (c *x448) GenerateECDH(rand io.Reader) (point []byte, secret []byte, err error) { + priv, pub, err := c.generateKeyPairBytes(rand) + if err != nil { + return + } + + return pub[:], priv[:], nil +} + +func (c *x448) Encaps(rand io.Reader, point []byte) (ephemeral, sharedSecret []byte, err error) { + var pk, ss x448lib.Key + seed, e, err := c.generateKeyPairBytes(rand) + + copy(pk[:], point) + x448lib.Shared(&ss, &seed, &pk) + + return e[:], ss[:], nil +} + +func (c *x448) Decaps(ephemeral, secret []byte) (sharedSecret []byte, err error) { + var ss, sk, e x448lib.Key + + copy(sk[:], secret) + copy(e[:], ephemeral) + x448lib.Shared(&ss, &sk, &e) + + return ss[:], nil +} + +func (c *x448) ValidateECDH(point []byte, secret []byte) error { + var sk, pk, expectedPk x448lib.Key + + copy(pk[:], point) + copy(sk[:], secret) + x448lib.KeyGen(&expectedPk, &sk) + + if subtle.ConstantTimeCompare(expectedPk[:], pk[:]) == 0 { + return errors.KeyInvalidError("ecc: invalid curve25519 public point") + } + + return nil +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/encoding.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/encoding.go new file mode 100644 index 000000000000..6c921481b7b2 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/encoding.go @@ -0,0 +1,27 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package encoding implements openpgp packet field encodings as specified in +// RFC 4880 and 6637. +package encoding + +import "io" + +// Field is an encoded field of an openpgp packet. +type Field interface { + // Bytes returns the decoded data. + Bytes() []byte + + // BitLength is the size in bits of the decoded data. + BitLength() uint16 + + // EncodedBytes returns the encoded data. + EncodedBytes() []byte + + // EncodedLength is the size in bytes of the encoded data. + EncodedLength() uint16 + + // ReadFrom reads the next Field from r. + ReadFrom(r io.Reader) (int64, error) +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/mpi.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/mpi.go new file mode 100644 index 000000000000..02e5e695c38c --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/mpi.go @@ -0,0 +1,91 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package encoding + +import ( + "io" + "math/big" + "math/bits" +) + +// An MPI is used to store the contents of a big integer, along with the bit +// length that was specified in the original input. This allows the MPI to be +// reserialized exactly. +type MPI struct { + bytes []byte + bitLength uint16 +} + +// NewMPI returns a MPI initialized with bytes. +func NewMPI(bytes []byte) *MPI { + for len(bytes) != 0 && bytes[0] == 0 { + bytes = bytes[1:] + } + if len(bytes) == 0 { + bitLength := uint16(0) + return &MPI{bytes, bitLength} + } + bitLength := 8*uint16(len(bytes)-1) + uint16(bits.Len8(bytes[0])) + return &MPI{bytes, bitLength} +} + +// Bytes returns the decoded data. +func (m *MPI) Bytes() []byte { + return m.bytes +} + +// BitLength is the size in bits of the decoded data. +func (m *MPI) BitLength() uint16 { + return m.bitLength +} + +// EncodedBytes returns the encoded data. +func (m *MPI) EncodedBytes() []byte { + return append([]byte{byte(m.bitLength >> 8), byte(m.bitLength)}, m.bytes...) +} + +// EncodedLength is the size in bytes of the encoded data. +func (m *MPI) EncodedLength() uint16 { + return uint16(2 + len(m.bytes)) +} + +// ReadFrom reads into m the next MPI from r. +func (m *MPI) ReadFrom(r io.Reader) (int64, error) { + var buf [2]byte + n, err := io.ReadFull(r, buf[0:]) + if err != nil { + if err == io.EOF { + err = io.ErrUnexpectedEOF + } + return int64(n), err + } + + m.bitLength = uint16(buf[0])<<8 | uint16(buf[1]) + m.bytes = make([]byte, (int(m.bitLength)+7)/8) + + nn, err := io.ReadFull(r, m.bytes) + if err == io.EOF { + err = io.ErrUnexpectedEOF + } + + // remove leading zero bytes from malformed GnuPG encoded MPIs: + // https://bugs.gnupg.org/gnupg/issue1853 + // for _, b := range m.bytes { + // if b != 0 { + // break + // } + // m.bytes = m.bytes[1:] + // m.bitLength -= 8 + // } + + return int64(n) + int64(nn), err +} + +// SetBig initializes m with the bits from n. +func (m *MPI) SetBig(n *big.Int) *MPI { + m.bytes = n.Bytes() + m.bitLength = uint16(n.BitLen()) + return m +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/oid.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/oid.go new file mode 100644 index 000000000000..c9df9fe23220 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/oid.go @@ -0,0 +1,88 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package encoding + +import ( + "io" + + "github.com/ProtonMail/go-crypto/openpgp/errors" +) + +// OID is used to store a variable-length field with a one-octet size +// prefix. See https://tools.ietf.org/html/rfc6637#section-9. +type OID struct { + bytes []byte +} + +const ( + // maxOID is the maximum number of bytes in a OID. + maxOID = 254 + // reservedOIDLength1 and reservedOIDLength2 are OID lengths that the RFC + // specifies are reserved. + reservedOIDLength1 = 0 + reservedOIDLength2 = 0xff +) + +// NewOID returns a OID initialized with bytes. +func NewOID(bytes []byte) *OID { + switch len(bytes) { + case reservedOIDLength1, reservedOIDLength2: + panic("encoding: NewOID argument length is reserved") + default: + if len(bytes) > maxOID { + panic("encoding: NewOID argument too large") + } + } + + return &OID{ + bytes: bytes, + } +} + +// Bytes returns the decoded data. +func (o *OID) Bytes() []byte { + return o.bytes +} + +// BitLength is the size in bits of the decoded data. +func (o *OID) BitLength() uint16 { + return uint16(len(o.bytes) * 8) +} + +// EncodedBytes returns the encoded data. +func (o *OID) EncodedBytes() []byte { + return append([]byte{byte(len(o.bytes))}, o.bytes...) +} + +// EncodedLength is the size in bytes of the encoded data. +func (o *OID) EncodedLength() uint16 { + return uint16(1 + len(o.bytes)) +} + +// ReadFrom reads into b the next OID from r. +func (o *OID) ReadFrom(r io.Reader) (int64, error) { + var buf [1]byte + n, err := io.ReadFull(r, buf[:]) + if err != nil { + if err == io.EOF { + err = io.ErrUnexpectedEOF + } + return int64(n), err + } + + switch buf[0] { + case reservedOIDLength1, reservedOIDLength2: + return int64(n), errors.UnsupportedError("reserved for future extensions") + } + + o.bytes = make([]byte, buf[0]) + + nn, err := io.ReadFull(r, o.bytes) + if err == io.EOF { + err = io.ErrUnexpectedEOF + } + + return int64(n) + int64(nn), err +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/key_generation.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/key_generation.go new file mode 100644 index 000000000000..0e71934cd90f --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/key_generation.go @@ -0,0 +1,389 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package openpgp + +import ( + "crypto" + "crypto/rand" + "crypto/rsa" + goerrors "errors" + "io" + "math/big" + "time" + + "github.com/ProtonMail/go-crypto/openpgp/ecdh" + "github.com/ProtonMail/go-crypto/openpgp/ecdsa" + "github.com/ProtonMail/go-crypto/openpgp/eddsa" + "github.com/ProtonMail/go-crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" + "github.com/ProtonMail/go-crypto/openpgp/internal/ecc" + "github.com/ProtonMail/go-crypto/openpgp/packet" +) + +// NewEntity returns an Entity that contains a fresh RSA/RSA keypair with a +// single identity composed of the given full name, comment and email, any of +// which may be empty but must not contain any of "()<>\x00". +// If config is nil, sensible defaults will be used. +func NewEntity(name, comment, email string, config *packet.Config) (*Entity, error) { + creationTime := config.Now() + keyLifetimeSecs := config.KeyLifetime() + + // Generate a primary signing key + primaryPrivRaw, err := newSigner(config) + if err != nil { + return nil, err + } + primary := packet.NewSignerPrivateKey(creationTime, primaryPrivRaw) + if config != nil && config.V5Keys { + primary.UpgradeToV5() + } + + e := &Entity{ + PrimaryKey: &primary.PublicKey, + PrivateKey: primary, + Identities: make(map[string]*Identity), + Subkeys: []Subkey{}, + } + + err = e.addUserId(name, comment, email, config, creationTime, keyLifetimeSecs) + if err != nil { + return nil, err + } + + // NOTE: No key expiry here, but we will not return this subkey in EncryptionKey() + // if the primary/master key has expired. + err = e.addEncryptionSubkey(config, creationTime, 0) + if err != nil { + return nil, err + } + + return e, nil +} + +func (t *Entity) AddUserId(name, comment, email string, config *packet.Config) error { + creationTime := config.Now() + keyLifetimeSecs := config.KeyLifetime() + return t.addUserId(name, comment, email, config, creationTime, keyLifetimeSecs) +} + +func (t *Entity) addUserId(name, comment, email string, config *packet.Config, creationTime time.Time, keyLifetimeSecs uint32) error { + uid := packet.NewUserId(name, comment, email) + if uid == nil { + return errors.InvalidArgumentError("user id field contained invalid characters") + } + + if _, ok := t.Identities[uid.Id]; ok { + return errors.InvalidArgumentError("user id exist") + } + + primary := t.PrivateKey + + isPrimaryId := len(t.Identities) == 0 + + selfSignature := createSignaturePacket(&primary.PublicKey, packet.SigTypePositiveCert, config) + selfSignature.CreationTime = creationTime + selfSignature.KeyLifetimeSecs = &keyLifetimeSecs + selfSignature.IsPrimaryId = &isPrimaryId + selfSignature.FlagsValid = true + selfSignature.FlagSign = true + selfSignature.FlagCertify = true + selfSignature.SEIPDv1 = true // true by default, see 5.8 vs. 5.14 + selfSignature.SEIPDv2 = config.AEAD() != nil + + // Set the PreferredHash for the SelfSignature from the packet.Config. + // If it is not the must-implement algorithm from rfc4880bis, append that. + hash, ok := algorithm.HashToHashId(config.Hash()) + if !ok { + return errors.UnsupportedError("unsupported preferred hash function") + } + + selfSignature.PreferredHash = []uint8{hash} + if config.Hash() != crypto.SHA256 { + selfSignature.PreferredHash = append(selfSignature.PreferredHash, hashToHashId(crypto.SHA256)) + } + + // Likewise for DefaultCipher. + selfSignature.PreferredSymmetric = []uint8{uint8(config.Cipher())} + if config.Cipher() != packet.CipherAES128 { + selfSignature.PreferredSymmetric = append(selfSignature.PreferredSymmetric, uint8(packet.CipherAES128)) + } + + // We set CompressionNone as the preferred compression algorithm because + // of compression side channel attacks, then append the configured + // DefaultCompressionAlgo if any is set (to signal support for cases + // where the application knows that using compression is safe). + selfSignature.PreferredCompression = []uint8{uint8(packet.CompressionNone)} + if config.Compression() != packet.CompressionNone { + selfSignature.PreferredCompression = append(selfSignature.PreferredCompression, uint8(config.Compression())) + } + + // And for DefaultMode. + modes := []uint8{uint8(config.AEAD().Mode())} + if config.AEAD().Mode() != packet.AEADModeOCB { + modes = append(modes, uint8(packet.AEADModeOCB)) + } + + // For preferred (AES256, GCM), we'll generate (AES256, GCM), (AES256, OCB), (AES128, GCM), (AES128, OCB) + for _, cipher := range selfSignature.PreferredSymmetric { + for _, mode := range modes { + selfSignature.PreferredCipherSuites = append(selfSignature.PreferredCipherSuites, [2]uint8{cipher, mode}) + } + } + + // User ID binding signature + err := selfSignature.SignUserId(uid.Id, &primary.PublicKey, primary, config) + if err != nil { + return err + } + t.Identities[uid.Id] = &Identity{ + Name: uid.Id, + UserId: uid, + SelfSignature: selfSignature, + Signatures: []*packet.Signature{selfSignature}, + } + return nil +} + +// AddSigningSubkey adds a signing keypair as a subkey to the Entity. +// If config is nil, sensible defaults will be used. +func (e *Entity) AddSigningSubkey(config *packet.Config) error { + creationTime := config.Now() + keyLifetimeSecs := config.KeyLifetime() + + subPrivRaw, err := newSigner(config) + if err != nil { + return err + } + sub := packet.NewSignerPrivateKey(creationTime, subPrivRaw) + sub.IsSubkey = true + if config != nil && config.V5Keys { + sub.UpgradeToV5() + } + + subkey := Subkey{ + PublicKey: &sub.PublicKey, + PrivateKey: sub, + } + subkey.Sig = createSignaturePacket(e.PrimaryKey, packet.SigTypeSubkeyBinding, config) + subkey.Sig.CreationTime = creationTime + subkey.Sig.KeyLifetimeSecs = &keyLifetimeSecs + subkey.Sig.FlagsValid = true + subkey.Sig.FlagSign = true + subkey.Sig.EmbeddedSignature = createSignaturePacket(subkey.PublicKey, packet.SigTypePrimaryKeyBinding, config) + subkey.Sig.EmbeddedSignature.CreationTime = creationTime + + err = subkey.Sig.EmbeddedSignature.CrossSignKey(subkey.PublicKey, e.PrimaryKey, subkey.PrivateKey, config) + if err != nil { + return err + } + + err = subkey.Sig.SignKey(subkey.PublicKey, e.PrivateKey, config) + if err != nil { + return err + } + + e.Subkeys = append(e.Subkeys, subkey) + return nil +} + +// AddEncryptionSubkey adds an encryption keypair as a subkey to the Entity. +// If config is nil, sensible defaults will be used. +func (e *Entity) AddEncryptionSubkey(config *packet.Config) error { + creationTime := config.Now() + keyLifetimeSecs := config.KeyLifetime() + return e.addEncryptionSubkey(config, creationTime, keyLifetimeSecs) +} + +func (e *Entity) addEncryptionSubkey(config *packet.Config, creationTime time.Time, keyLifetimeSecs uint32) error { + subPrivRaw, err := newDecrypter(config) + if err != nil { + return err + } + sub := packet.NewDecrypterPrivateKey(creationTime, subPrivRaw) + sub.IsSubkey = true + if config != nil && config.V5Keys { + sub.UpgradeToV5() + } + + subkey := Subkey{ + PublicKey: &sub.PublicKey, + PrivateKey: sub, + } + subkey.Sig = createSignaturePacket(e.PrimaryKey, packet.SigTypeSubkeyBinding, config) + subkey.Sig.CreationTime = creationTime + subkey.Sig.KeyLifetimeSecs = &keyLifetimeSecs + subkey.Sig.FlagsValid = true + subkey.Sig.FlagEncryptStorage = true + subkey.Sig.FlagEncryptCommunications = true + + err = subkey.Sig.SignKey(subkey.PublicKey, e.PrivateKey, config) + if err != nil { + return err + } + + e.Subkeys = append(e.Subkeys, subkey) + return nil +} + +// Generates a signing key +func newSigner(config *packet.Config) (signer interface{}, err error) { + switch config.PublicKeyAlgorithm() { + case packet.PubKeyAlgoRSA: + bits := config.RSAModulusBits() + if bits < 1024 { + return nil, errors.InvalidArgumentError("bits must be >= 1024") + } + if config != nil && len(config.RSAPrimes) >= 2 { + primes := config.RSAPrimes[0:2] + config.RSAPrimes = config.RSAPrimes[2:] + return generateRSAKeyWithPrimes(config.Random(), 2, bits, primes) + } + return rsa.GenerateKey(config.Random(), bits) + case packet.PubKeyAlgoEdDSA: + curve := ecc.FindEdDSAByGenName(string(config.CurveName())) + if curve == nil { + return nil, errors.InvalidArgumentError("unsupported curve") + } + + priv, err := eddsa.GenerateKey(config.Random(), curve) + if err != nil { + return nil, err + } + return priv, nil + case packet.PubKeyAlgoECDSA: + curve := ecc.FindECDSAByGenName(string(config.CurveName())) + if curve == nil { + return nil, errors.InvalidArgumentError("unsupported curve") + } + + priv, err := ecdsa.GenerateKey(config.Random(), curve) + if err != nil { + return nil, err + } + return priv, nil + default: + return nil, errors.InvalidArgumentError("unsupported public key algorithm") + } +} + +// Generates an encryption/decryption key +func newDecrypter(config *packet.Config) (decrypter interface{}, err error) { + switch config.PublicKeyAlgorithm() { + case packet.PubKeyAlgoRSA: + bits := config.RSAModulusBits() + if bits < 1024 { + return nil, errors.InvalidArgumentError("bits must be >= 1024") + } + if config != nil && len(config.RSAPrimes) >= 2 { + primes := config.RSAPrimes[0:2] + config.RSAPrimes = config.RSAPrimes[2:] + return generateRSAKeyWithPrimes(config.Random(), 2, bits, primes) + } + return rsa.GenerateKey(config.Random(), bits) + case packet.PubKeyAlgoEdDSA, packet.PubKeyAlgoECDSA: + fallthrough // When passing EdDSA or ECDSA, we generate an ECDH subkey + case packet.PubKeyAlgoECDH: + var kdf = ecdh.KDF{ + Hash: algorithm.SHA512, + Cipher: algorithm.AES256, + } + curve := ecc.FindECDHByGenName(string(config.CurveName())) + if curve == nil { + return nil, errors.InvalidArgumentError("unsupported curve") + } + return ecdh.GenerateKey(config.Random(), curve, kdf) + default: + return nil, errors.InvalidArgumentError("unsupported public key algorithm") + } +} + +var bigOne = big.NewInt(1) + +// generateRSAKeyWithPrimes generates a multi-prime RSA keypair of the +// given bit size, using the given random source and prepopulated primes. +func generateRSAKeyWithPrimes(random io.Reader, nprimes int, bits int, prepopulatedPrimes []*big.Int) (*rsa.PrivateKey, error) { + priv := new(rsa.PrivateKey) + priv.E = 65537 + + if nprimes < 2 { + return nil, goerrors.New("generateRSAKeyWithPrimes: nprimes must be >= 2") + } + + if bits < 1024 { + return nil, goerrors.New("generateRSAKeyWithPrimes: bits must be >= 1024") + } + + primes := make([]*big.Int, nprimes) + +NextSetOfPrimes: + for { + todo := bits + // crypto/rand should set the top two bits in each prime. + // Thus each prime has the form + // p_i = 2^bitlen(p_i) × 0.11... (in base 2). + // And the product is: + // P = 2^todo × α + // where α is the product of nprimes numbers of the form 0.11... + // + // If α < 1/2 (which can happen for nprimes > 2), we need to + // shift todo to compensate for lost bits: the mean value of 0.11... + // is 7/8, so todo + shift - nprimes * log2(7/8) ~= bits - 1/2 + // will give good results. + if nprimes >= 7 { + todo += (nprimes - 2) / 5 + } + for i := 0; i < nprimes; i++ { + var err error + if len(prepopulatedPrimes) == 0 { + primes[i], err = rand.Prime(random, todo/(nprimes-i)) + if err != nil { + return nil, err + } + } else { + primes[i] = prepopulatedPrimes[0] + prepopulatedPrimes = prepopulatedPrimes[1:] + } + + todo -= primes[i].BitLen() + } + + // Make sure that primes is pairwise unequal. + for i, prime := range primes { + for j := 0; j < i; j++ { + if prime.Cmp(primes[j]) == 0 { + continue NextSetOfPrimes + } + } + } + + n := new(big.Int).Set(bigOne) + totient := new(big.Int).Set(bigOne) + pminus1 := new(big.Int) + for _, prime := range primes { + n.Mul(n, prime) + pminus1.Sub(prime, bigOne) + totient.Mul(totient, pminus1) + } + if n.BitLen() != bits { + // This should never happen for nprimes == 2 because + // crypto/rand should set the top two bits in each prime. + // For nprimes > 2 we hope it does not happen often. + continue NextSetOfPrimes + } + + priv.D = new(big.Int) + e := big.NewInt(int64(priv.E)) + ok := priv.D.ModInverse(e, totient) + + if ok != nil { + priv.Primes = primes + priv.N = n + break + } + } + + priv.Precompute() + return priv, nil +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/keys.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/keys.go new file mode 100644 index 000000000000..2d7b0cf37372 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/keys.go @@ -0,0 +1,842 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package openpgp + +import ( + goerrors "errors" + "io" + "time" + + "github.com/ProtonMail/go-crypto/openpgp/armor" + "github.com/ProtonMail/go-crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/packet" +) + +// PublicKeyType is the armor type for a PGP public key. +var PublicKeyType = "PGP PUBLIC KEY BLOCK" + +// PrivateKeyType is the armor type for a PGP private key. +var PrivateKeyType = "PGP PRIVATE KEY BLOCK" + +// An Entity represents the components of an OpenPGP key: a primary public key +// (which must be a signing key), one or more identities claimed by that key, +// and zero or more subkeys, which may be encryption keys. +type Entity struct { + PrimaryKey *packet.PublicKey + PrivateKey *packet.PrivateKey + Identities map[string]*Identity // indexed by Identity.Name + Revocations []*packet.Signature + Subkeys []Subkey +} + +// An Identity represents an identity claimed by an Entity and zero or more +// assertions by other entities about that claim. +type Identity struct { + Name string // by convention, has the form "Full Name (comment) " + UserId *packet.UserId + SelfSignature *packet.Signature + Revocations []*packet.Signature + Signatures []*packet.Signature // all (potentially unverified) self-signatures, revocations, and third-party signatures +} + +// A Subkey is an additional public key in an Entity. Subkeys can be used for +// encryption. +type Subkey struct { + PublicKey *packet.PublicKey + PrivateKey *packet.PrivateKey + Sig *packet.Signature + Revocations []*packet.Signature +} + +// A Key identifies a specific public key in an Entity. This is either the +// Entity's primary key or a subkey. +type Key struct { + Entity *Entity + PublicKey *packet.PublicKey + PrivateKey *packet.PrivateKey + SelfSignature *packet.Signature + Revocations []*packet.Signature +} + +// A KeyRing provides access to public and private keys. +type KeyRing interface { + // KeysById returns the set of keys that have the given key id. + KeysById(id uint64) []Key + // KeysByIdAndUsage returns the set of keys with the given id + // that also meet the key usage given by requiredUsage. + // The requiredUsage is expressed as the bitwise-OR of + // packet.KeyFlag* values. + KeysByIdUsage(id uint64, requiredUsage byte) []Key + // DecryptionKeys returns all private keys that are valid for + // decryption. + DecryptionKeys() []Key +} + +// PrimaryIdentity returns an Identity, preferring non-revoked identities, +// identities marked as primary, or the latest-created identity, in that order. +func (e *Entity) PrimaryIdentity() *Identity { + var primaryIdentity *Identity + for _, ident := range e.Identities { + if shouldPreferIdentity(primaryIdentity, ident) { + primaryIdentity = ident + } + } + return primaryIdentity +} + +func shouldPreferIdentity(existingId, potentialNewId *Identity) bool { + if existingId == nil { + return true + } + + if len(existingId.Revocations) > len(potentialNewId.Revocations) { + return true + } + + if len(existingId.Revocations) < len(potentialNewId.Revocations) { + return false + } + + if existingId.SelfSignature == nil { + return true + } + + if existingId.SelfSignature.IsPrimaryId != nil && *existingId.SelfSignature.IsPrimaryId && + !(potentialNewId.SelfSignature.IsPrimaryId != nil && *potentialNewId.SelfSignature.IsPrimaryId) { + return false + } + + if !(existingId.SelfSignature.IsPrimaryId != nil && *existingId.SelfSignature.IsPrimaryId) && + potentialNewId.SelfSignature.IsPrimaryId != nil && *potentialNewId.SelfSignature.IsPrimaryId { + return true + } + + return potentialNewId.SelfSignature.CreationTime.After(existingId.SelfSignature.CreationTime) +} + +// EncryptionKey returns the best candidate Key for encrypting a message to the +// given Entity. +func (e *Entity) EncryptionKey(now time.Time) (Key, bool) { + // Fail to find any encryption key if the... + i := e.PrimaryIdentity() + if e.PrimaryKey.KeyExpired(i.SelfSignature, now) || // primary key has expired + i.SelfSignature == nil || // user ID has no self-signature + i.SelfSignature.SigExpired(now) || // user ID self-signature has expired + e.Revoked(now) || // primary key has been revoked + i.Revoked(now) { // user ID has been revoked + return Key{}, false + } + + // Iterate the keys to find the newest, unexpired one + candidateSubkey := -1 + var maxTime time.Time + for i, subkey := range e.Subkeys { + if subkey.Sig.FlagsValid && + subkey.Sig.FlagEncryptCommunications && + subkey.PublicKey.PubKeyAlgo.CanEncrypt() && + !subkey.PublicKey.KeyExpired(subkey.Sig, now) && + !subkey.Sig.SigExpired(now) && + !subkey.Revoked(now) && + (maxTime.IsZero() || subkey.Sig.CreationTime.After(maxTime)) { + candidateSubkey = i + maxTime = subkey.Sig.CreationTime + } + } + + if candidateSubkey != -1 { + subkey := e.Subkeys[candidateSubkey] + return Key{e, subkey.PublicKey, subkey.PrivateKey, subkey.Sig, subkey.Revocations}, true + } + + // If we don't have any subkeys for encryption and the primary key + // is marked as OK to encrypt with, then we can use it. + if i.SelfSignature.FlagsValid && i.SelfSignature.FlagEncryptCommunications && + e.PrimaryKey.PubKeyAlgo.CanEncrypt() { + return Key{e, e.PrimaryKey, e.PrivateKey, i.SelfSignature, e.Revocations}, true + } + + return Key{}, false +} + +// CertificationKey return the best candidate Key for certifying a key with this +// Entity. +func (e *Entity) CertificationKey(now time.Time) (Key, bool) { + return e.CertificationKeyById(now, 0) +} + +// CertificationKeyById return the Key for key certification with this +// Entity and keyID. +func (e *Entity) CertificationKeyById(now time.Time, id uint64) (Key, bool) { + return e.signingKeyByIdUsage(now, id, packet.KeyFlagCertify) +} + +// SigningKey return the best candidate Key for signing a message with this +// Entity. +func (e *Entity) SigningKey(now time.Time) (Key, bool) { + return e.SigningKeyById(now, 0) +} + +// SigningKeyById return the Key for signing a message with this +// Entity and keyID. +func (e *Entity) SigningKeyById(now time.Time, id uint64) (Key, bool) { + return e.signingKeyByIdUsage(now, id, packet.KeyFlagSign) +} + +func (e *Entity) signingKeyByIdUsage(now time.Time, id uint64, flags int) (Key, bool) { + // Fail to find any signing key if the... + i := e.PrimaryIdentity() + if e.PrimaryKey.KeyExpired(i.SelfSignature, now) || // primary key has expired + i.SelfSignature == nil || // user ID has no self-signature + i.SelfSignature.SigExpired(now) || // user ID self-signature has expired + e.Revoked(now) || // primary key has been revoked + i.Revoked(now) { // user ID has been revoked + return Key{}, false + } + + // Iterate the keys to find the newest, unexpired one + candidateSubkey := -1 + var maxTime time.Time + for idx, subkey := range e.Subkeys { + if subkey.Sig.FlagsValid && + (flags&packet.KeyFlagCertify == 0 || subkey.Sig.FlagCertify) && + (flags&packet.KeyFlagSign == 0 || subkey.Sig.FlagSign) && + subkey.PublicKey.PubKeyAlgo.CanSign() && + !subkey.PublicKey.KeyExpired(subkey.Sig, now) && + !subkey.Sig.SigExpired(now) && + !subkey.Revoked(now) && + (maxTime.IsZero() || subkey.Sig.CreationTime.After(maxTime)) && + (id == 0 || subkey.PublicKey.KeyId == id) { + candidateSubkey = idx + maxTime = subkey.Sig.CreationTime + } + } + + if candidateSubkey != -1 { + subkey := e.Subkeys[candidateSubkey] + return Key{e, subkey.PublicKey, subkey.PrivateKey, subkey.Sig, subkey.Revocations}, true + } + + // If we don't have any subkeys for signing and the primary key + // is marked as OK to sign with, then we can use it. + if i.SelfSignature.FlagsValid && + (flags&packet.KeyFlagCertify == 0 || i.SelfSignature.FlagCertify) && + (flags&packet.KeyFlagSign == 0 || i.SelfSignature.FlagSign) && + e.PrimaryKey.PubKeyAlgo.CanSign() && + (id == 0 || e.PrimaryKey.KeyId == id) { + return Key{e, e.PrimaryKey, e.PrivateKey, i.SelfSignature, e.Revocations}, true + } + + // No keys with a valid Signing Flag or no keys matched the id passed in + return Key{}, false +} + +func revoked(revocations []*packet.Signature, now time.Time) bool { + for _, revocation := range revocations { + if revocation.RevocationReason != nil && *revocation.RevocationReason == packet.KeyCompromised { + // If the key is compromised, the key is considered revoked even before the revocation date. + return true + } + if !revocation.SigExpired(now) { + return true + } + } + return false +} + +// Revoked returns whether the entity has any direct key revocation signatures. +// Note that third-party revocation signatures are not supported. +// Note also that Identity and Subkey revocation should be checked separately. +func (e *Entity) Revoked(now time.Time) bool { + return revoked(e.Revocations, now) +} + +// EncryptPrivateKeys encrypts all non-encrypted keys in the entity with the same key +// derived from the provided passphrase. Public keys and dummy keys are ignored, +// and don't cause an error to be returned. +func (e *Entity) EncryptPrivateKeys(passphrase []byte, config *packet.Config) error { + var keysToEncrypt []*packet.PrivateKey + // Add entity private key to encrypt. + if e.PrivateKey != nil && !e.PrivateKey.Dummy() && !e.PrivateKey.Encrypted { + keysToEncrypt = append(keysToEncrypt, e.PrivateKey) + } + + // Add subkeys to encrypt. + for _, sub := range e.Subkeys { + if sub.PrivateKey != nil && !sub.PrivateKey.Dummy() && !sub.PrivateKey.Encrypted { + keysToEncrypt = append(keysToEncrypt, sub.PrivateKey) + } + } + return packet.EncryptPrivateKeys(keysToEncrypt, passphrase, config) +} + +// DecryptPrivateKeys decrypts all encrypted keys in the entitiy with the given passphrase. +// Avoids recomputation of similar s2k key derivations. Public keys and dummy keys are ignored, +// and don't cause an error to be returned. +func (e *Entity) DecryptPrivateKeys(passphrase []byte) error { + var keysToDecrypt []*packet.PrivateKey + // Add entity private key to decrypt. + if e.PrivateKey != nil && !e.PrivateKey.Dummy() && e.PrivateKey.Encrypted { + keysToDecrypt = append(keysToDecrypt, e.PrivateKey) + } + + // Add subkeys to decrypt. + for _, sub := range e.Subkeys { + if sub.PrivateKey != nil && !sub.PrivateKey.Dummy() && sub.PrivateKey.Encrypted { + keysToDecrypt = append(keysToDecrypt, sub.PrivateKey) + } + } + return packet.DecryptPrivateKeys(keysToDecrypt, passphrase) +} + +// Revoked returns whether the identity has been revoked by a self-signature. +// Note that third-party revocation signatures are not supported. +func (i *Identity) Revoked(now time.Time) bool { + return revoked(i.Revocations, now) +} + +// Revoked returns whether the subkey has been revoked by a self-signature. +// Note that third-party revocation signatures are not supported. +func (s *Subkey) Revoked(now time.Time) bool { + return revoked(s.Revocations, now) +} + +// Revoked returns whether the key or subkey has been revoked by a self-signature. +// Note that third-party revocation signatures are not supported. +// Note also that Identity revocation should be checked separately. +// Normally, it's not necessary to call this function, except on keys returned by +// KeysById or KeysByIdUsage. +func (key *Key) Revoked(now time.Time) bool { + return revoked(key.Revocations, now) +} + +// An EntityList contains one or more Entities. +type EntityList []*Entity + +// KeysById returns the set of keys that have the given key id. +func (el EntityList) KeysById(id uint64) (keys []Key) { + for _, e := range el { + if e.PrimaryKey.KeyId == id { + ident := e.PrimaryIdentity() + selfSig := ident.SelfSignature + keys = append(keys, Key{e, e.PrimaryKey, e.PrivateKey, selfSig, e.Revocations}) + } + + for _, subKey := range e.Subkeys { + if subKey.PublicKey.KeyId == id { + keys = append(keys, Key{e, subKey.PublicKey, subKey.PrivateKey, subKey.Sig, subKey.Revocations}) + } + } + } + return +} + +// KeysByIdAndUsage returns the set of keys with the given id that also meet +// the key usage given by requiredUsage. The requiredUsage is expressed as +// the bitwise-OR of packet.KeyFlag* values. +func (el EntityList) KeysByIdUsage(id uint64, requiredUsage byte) (keys []Key) { + for _, key := range el.KeysById(id) { + if requiredUsage != 0 { + if key.SelfSignature == nil || !key.SelfSignature.FlagsValid { + continue + } + + var usage byte + if key.SelfSignature.FlagCertify { + usage |= packet.KeyFlagCertify + } + if key.SelfSignature.FlagSign { + usage |= packet.KeyFlagSign + } + if key.SelfSignature.FlagEncryptCommunications { + usage |= packet.KeyFlagEncryptCommunications + } + if key.SelfSignature.FlagEncryptStorage { + usage |= packet.KeyFlagEncryptStorage + } + if usage&requiredUsage != requiredUsage { + continue + } + } + + keys = append(keys, key) + } + return +} + +// DecryptionKeys returns all private keys that are valid for decryption. +func (el EntityList) DecryptionKeys() (keys []Key) { + for _, e := range el { + for _, subKey := range e.Subkeys { + if subKey.PrivateKey != nil && subKey.Sig.FlagsValid && (subKey.Sig.FlagEncryptStorage || subKey.Sig.FlagEncryptCommunications) { + keys = append(keys, Key{e, subKey.PublicKey, subKey.PrivateKey, subKey.Sig, subKey.Revocations}) + } + } + } + return +} + +// ReadArmoredKeyRing reads one or more public/private keys from an armor keyring file. +func ReadArmoredKeyRing(r io.Reader) (EntityList, error) { + block, err := armor.Decode(r) + if err == io.EOF { + return nil, errors.InvalidArgumentError("no armored data found") + } + if err != nil { + return nil, err + } + if block.Type != PublicKeyType && block.Type != PrivateKeyType { + return nil, errors.InvalidArgumentError("expected public or private key block, got: " + block.Type) + } + + return ReadKeyRing(block.Body) +} + +// ReadKeyRing reads one or more public/private keys. Unsupported keys are +// ignored as long as at least a single valid key is found. +func ReadKeyRing(r io.Reader) (el EntityList, err error) { + packets := packet.NewReader(r) + var lastUnsupportedError error + + for { + var e *Entity + e, err = ReadEntity(packets) + if err != nil { + // TODO: warn about skipped unsupported/unreadable keys + if _, ok := err.(errors.UnsupportedError); ok { + lastUnsupportedError = err + err = readToNextPublicKey(packets) + } else if _, ok := err.(errors.StructuralError); ok { + // Skip unreadable, badly-formatted keys + lastUnsupportedError = err + err = readToNextPublicKey(packets) + } + if err == io.EOF { + err = nil + break + } + if err != nil { + el = nil + break + } + } else { + el = append(el, e) + } + } + + if len(el) == 0 && err == nil { + err = lastUnsupportedError + } + return +} + +// readToNextPublicKey reads packets until the start of the entity and leaves +// the first packet of the new entity in the Reader. +func readToNextPublicKey(packets *packet.Reader) (err error) { + var p packet.Packet + for { + p, err = packets.Next() + if err == io.EOF { + return + } else if err != nil { + if _, ok := err.(errors.UnsupportedError); ok { + err = nil + continue + } + return + } + + if pk, ok := p.(*packet.PublicKey); ok && !pk.IsSubkey { + packets.Unread(p) + return + } + } +} + +// ReadEntity reads an entity (public key, identities, subkeys etc) from the +// given Reader. +func ReadEntity(packets *packet.Reader) (*Entity, error) { + e := new(Entity) + e.Identities = make(map[string]*Identity) + + p, err := packets.Next() + if err != nil { + return nil, err + } + + var ok bool + if e.PrimaryKey, ok = p.(*packet.PublicKey); !ok { + if e.PrivateKey, ok = p.(*packet.PrivateKey); !ok { + packets.Unread(p) + return nil, errors.StructuralError("first packet was not a public/private key") + } + e.PrimaryKey = &e.PrivateKey.PublicKey + } + + if !e.PrimaryKey.PubKeyAlgo.CanSign() { + return nil, errors.StructuralError("primary key cannot be used for signatures") + } + + var revocations []*packet.Signature +EachPacket: + for { + p, err := packets.Next() + if err == io.EOF { + break + } else if err != nil { + return nil, err + } + + switch pkt := p.(type) { + case *packet.UserId: + if err := addUserID(e, packets, pkt); err != nil { + return nil, err + } + case *packet.Signature: + if pkt.SigType == packet.SigTypeKeyRevocation { + revocations = append(revocations, pkt) + } else if pkt.SigType == packet.SigTypeDirectSignature { + // TODO: RFC4880 5.2.1 permits signatures + // directly on keys (eg. to bind additional + // revocation keys). + } + // Else, ignoring the signature as it does not follow anything + // we would know to attach it to. + case *packet.PrivateKey: + if !pkt.IsSubkey { + packets.Unread(p) + break EachPacket + } + err = addSubkey(e, packets, &pkt.PublicKey, pkt) + if err != nil { + return nil, err + } + case *packet.PublicKey: + if !pkt.IsSubkey { + packets.Unread(p) + break EachPacket + } + err = addSubkey(e, packets, pkt, nil) + if err != nil { + return nil, err + } + default: + // we ignore unknown packets + } + } + + if len(e.Identities) == 0 { + return nil, errors.StructuralError("entity without any identities") + } + + for _, revocation := range revocations { + err = e.PrimaryKey.VerifyRevocationSignature(revocation) + if err == nil { + e.Revocations = append(e.Revocations, revocation) + } else { + // TODO: RFC 4880 5.2.3.15 defines revocation keys. + return nil, errors.StructuralError("revocation signature signed by alternate key") + } + } + + return e, nil +} + +func addUserID(e *Entity, packets *packet.Reader, pkt *packet.UserId) error { + // Make a new Identity object, that we might wind up throwing away. + // We'll only add it if we get a valid self-signature over this + // userID. + identity := new(Identity) + identity.Name = pkt.Id + identity.UserId = pkt + + for { + p, err := packets.Next() + if err == io.EOF { + break + } else if err != nil { + return err + } + + sig, ok := p.(*packet.Signature) + if !ok { + packets.Unread(p) + break + } + + if sig.SigType != packet.SigTypeGenericCert && + sig.SigType != packet.SigTypePersonaCert && + sig.SigType != packet.SigTypeCasualCert && + sig.SigType != packet.SigTypePositiveCert && + sig.SigType != packet.SigTypeCertificationRevocation { + return errors.StructuralError("user ID signature with wrong type") + } + + if sig.CheckKeyIdOrFingerprint(e.PrimaryKey) { + if err = e.PrimaryKey.VerifyUserIdSignature(pkt.Id, e.PrimaryKey, sig); err != nil { + return errors.StructuralError("user ID self-signature invalid: " + err.Error()) + } + if sig.SigType == packet.SigTypeCertificationRevocation { + identity.Revocations = append(identity.Revocations, sig) + } else if identity.SelfSignature == nil || sig.CreationTime.After(identity.SelfSignature.CreationTime) { + identity.SelfSignature = sig + } + identity.Signatures = append(identity.Signatures, sig) + e.Identities[pkt.Id] = identity + } else { + identity.Signatures = append(identity.Signatures, sig) + } + } + + return nil +} + +func addSubkey(e *Entity, packets *packet.Reader, pub *packet.PublicKey, priv *packet.PrivateKey) error { + var subKey Subkey + subKey.PublicKey = pub + subKey.PrivateKey = priv + + for { + p, err := packets.Next() + if err == io.EOF { + break + } else if err != nil { + return errors.StructuralError("subkey signature invalid: " + err.Error()) + } + + sig, ok := p.(*packet.Signature) + if !ok { + packets.Unread(p) + break + } + + if sig.SigType != packet.SigTypeSubkeyBinding && sig.SigType != packet.SigTypeSubkeyRevocation { + return errors.StructuralError("subkey signature with wrong type") + } + + if err := e.PrimaryKey.VerifyKeySignature(subKey.PublicKey, sig); err != nil { + return errors.StructuralError("subkey signature invalid: " + err.Error()) + } + + switch sig.SigType { + case packet.SigTypeSubkeyRevocation: + subKey.Revocations = append(subKey.Revocations, sig) + case packet.SigTypeSubkeyBinding: + if subKey.Sig == nil || sig.CreationTime.After(subKey.Sig.CreationTime) { + subKey.Sig = sig + } + } + } + + if subKey.Sig == nil { + return errors.StructuralError("subkey packet not followed by signature") + } + + e.Subkeys = append(e.Subkeys, subKey) + + return nil +} + +// SerializePrivate serializes an Entity, including private key material, but +// excluding signatures from other entities, to the given Writer. +// Identities and subkeys are re-signed in case they changed since NewEntry. +// If config is nil, sensible defaults will be used. +func (e *Entity) SerializePrivate(w io.Writer, config *packet.Config) (err error) { + if e.PrivateKey.Dummy() { + return errors.ErrDummyPrivateKey("dummy private key cannot re-sign identities") + } + return e.serializePrivate(w, config, true) +} + +// SerializePrivateWithoutSigning serializes an Entity, including private key +// material, but excluding signatures from other entities, to the given Writer. +// Self-signatures of identities and subkeys are not re-signed. This is useful +// when serializing GNU dummy keys, among other things. +// If config is nil, sensible defaults will be used. +func (e *Entity) SerializePrivateWithoutSigning(w io.Writer, config *packet.Config) (err error) { + return e.serializePrivate(w, config, false) +} + +func (e *Entity) serializePrivate(w io.Writer, config *packet.Config, reSign bool) (err error) { + if e.PrivateKey == nil { + return goerrors.New("openpgp: private key is missing") + } + err = e.PrivateKey.Serialize(w) + if err != nil { + return + } + for _, revocation := range e.Revocations { + err := revocation.Serialize(w) + if err != nil { + return err + } + } + for _, ident := range e.Identities { + err = ident.UserId.Serialize(w) + if err != nil { + return + } + if reSign { + if ident.SelfSignature == nil { + return goerrors.New("openpgp: can't re-sign identity without valid self-signature") + } + err = ident.SelfSignature.SignUserId(ident.UserId.Id, e.PrimaryKey, e.PrivateKey, config) + if err != nil { + return + } + } + for _, sig := range ident.Signatures { + err = sig.Serialize(w) + if err != nil { + return err + } + } + } + for _, subkey := range e.Subkeys { + err = subkey.PrivateKey.Serialize(w) + if err != nil { + return + } + if reSign { + err = subkey.Sig.SignKey(subkey.PublicKey, e.PrivateKey, config) + if err != nil { + return + } + if subkey.Sig.EmbeddedSignature != nil { + err = subkey.Sig.EmbeddedSignature.CrossSignKey(subkey.PublicKey, e.PrimaryKey, + subkey.PrivateKey, config) + if err != nil { + return + } + } + } + for _, revocation := range subkey.Revocations { + err := revocation.Serialize(w) + if err != nil { + return err + } + } + err = subkey.Sig.Serialize(w) + if err != nil { + return + } + } + return nil +} + +// Serialize writes the public part of the given Entity to w, including +// signatures from other entities. No private key material will be output. +func (e *Entity) Serialize(w io.Writer) error { + err := e.PrimaryKey.Serialize(w) + if err != nil { + return err + } + for _, revocation := range e.Revocations { + err := revocation.Serialize(w) + if err != nil { + return err + } + } + for _, ident := range e.Identities { + err = ident.UserId.Serialize(w) + if err != nil { + return err + } + for _, sig := range ident.Signatures { + err = sig.Serialize(w) + if err != nil { + return err + } + } + } + for _, subkey := range e.Subkeys { + err = subkey.PublicKey.Serialize(w) + if err != nil { + return err + } + for _, revocation := range subkey.Revocations { + err := revocation.Serialize(w) + if err != nil { + return err + } + } + err = subkey.Sig.Serialize(w) + if err != nil { + return err + } + } + return nil +} + +// SignIdentity adds a signature to e, from signer, attesting that identity is +// associated with e. The provided identity must already be an element of +// e.Identities and the private key of signer must have been decrypted if +// necessary. +// If config is nil, sensible defaults will be used. +func (e *Entity) SignIdentity(identity string, signer *Entity, config *packet.Config) error { + certificationKey, ok := signer.CertificationKey(config.Now()) + if !ok { + return errors.InvalidArgumentError("no valid certification key found") + } + + if certificationKey.PrivateKey.Encrypted { + return errors.InvalidArgumentError("signing Entity's private key must be decrypted") + } + + ident, ok := e.Identities[identity] + if !ok { + return errors.InvalidArgumentError("given identity string not found in Entity") + } + + sig := createSignaturePacket(certificationKey.PublicKey, packet.SigTypeGenericCert, config) + + signingUserID := config.SigningUserId() + if signingUserID != "" { + if _, ok := signer.Identities[signingUserID]; !ok { + return errors.InvalidArgumentError("signer identity string not found in signer Entity") + } + sig.SignerUserId = &signingUserID + } + + if err := sig.SignUserId(identity, e.PrimaryKey, certificationKey.PrivateKey, config); err != nil { + return err + } + ident.Signatures = append(ident.Signatures, sig) + return nil +} + +// RevokeKey generates a key revocation signature (packet.SigTypeKeyRevocation) with the +// specified reason code and text (RFC4880 section-5.2.3.23). +// If config is nil, sensible defaults will be used. +func (e *Entity) RevokeKey(reason packet.ReasonForRevocation, reasonText string, config *packet.Config) error { + revSig := createSignaturePacket(e.PrimaryKey, packet.SigTypeKeyRevocation, config) + revSig.RevocationReason = &reason + revSig.RevocationReasonText = reasonText + + if err := revSig.RevokeKey(e.PrimaryKey, e.PrivateKey, config); err != nil { + return err + } + e.Revocations = append(e.Revocations, revSig) + return nil +} + +// RevokeSubkey generates a subkey revocation signature (packet.SigTypeSubkeyRevocation) for +// a subkey with the specified reason code and text (RFC4880 section-5.2.3.23). +// If config is nil, sensible defaults will be used. +func (e *Entity) RevokeSubkey(sk *Subkey, reason packet.ReasonForRevocation, reasonText string, config *packet.Config) error { + if err := e.PrimaryKey.VerifyKeySignature(sk.PublicKey, sk.Sig); err != nil { + return errors.InvalidArgumentError("given subkey is not associated with this key") + } + + revSig := createSignaturePacket(e.PrimaryKey, packet.SigTypeSubkeyRevocation, config) + revSig.RevocationReason = &reason + revSig.RevocationReasonText = reasonText + + if err := revSig.RevokeSubkey(sk.PublicKey, e.PrivateKey, config); err != nil { + return err + } + + sk.Revocations = append(sk.Revocations, revSig) + return nil +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/keys_test_data.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/keys_test_data.go new file mode 100644 index 000000000000..108fd096f3c7 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/keys_test_data.go @@ -0,0 +1,538 @@ +package openpgp + +const expiringKeyHex = "c6c04d0451d0c680010800abbb021fd03ffc4e96618901180c3fdcb060ee69eeead97b91256d11420d80b5f1b51930248044130bd300605cf8a05b7a40d3d8cfb0a910be2e3db50dcd50a9c54064c2a5550801daa834ff4480b33d3d3ca495ff8a4e84a886977d17d998f881241a874083d8b995beab555b6d22b8a4817ab17ac3e7304f7d4d2c05c495fb2218348d3bc13651db1d92732e368a9dd7dcefa6eddff30b94706a9aaee47e9d39321460b740c59c6fc3c2fd8ab6c0fb868cb87c0051f0321301fe0f0e1820b15e7fb7063395769b525005c7e30a7ce85984f5cac00504e7b4fdc45d74958de8388436fd5c7ba9ea121f1c851b5911dd1b47a14d81a09e92ef37721e2325b6790011010001cd00c2c07b041001080025050251d0c680050900278d00060b09070803020415080a0203160201021901021b03021e01000a0910e7b484133a890a35ae4b0800a1beb82e7f28eaf5273d6af9d3391314f6280b2b624eaca2851f89a9ebcaf80ac589ebd509f168bc4322106ca2e2ce77a76e071a3c7444787d65216b5f05e82c77928860b92aace3b7d0327db59492f422eb9dfab7249266d37429870b091a98aba8724c2259ebf8f85093f21255eafa75aa841e31d94f2ac891b9755fed455e539044ee69fc47950b80e003fc9f298d695660f28329eaa38037c367efde1727458e514faf990d439a21461b719edaddf9296d3d0647b43ca56cb8dbf63b4fcf8b9968e7928c463470fab3b98e44d0d95645062f94b2d04fe56bd52822b71934db8ce845622c40b92fcbe765a142e7f38b61a6aa9606c8e8858dcd3b6eb1894acec04d0451d1f06b01080088bea67444e1789390e7c0335c86775502d58ec783d99c8ef4e06de235ed3dd4b0467f6f358d818c7d8989d43ec6d69fcbc8c32632d5a1b605e3fa8e41d695fcdcaa535936cd0157f9040dce362519803b908eafe838bb13216c885c6f93e9e8d5745607f0d062322085d6bdc760969149a8ff8dd9f5c18d9bfe2e6f63a06e17694cf1f67587c6fb70e9aebf90ffc528ca3b615ac7c9d4a21ea4f7c06f2e98fbbd90a859b8608bf9ea638e3a54289ce44c283110d0c45fa458de6251cd6e7baf71f80f12c8978340490fd90c92b81736ae902ed958e478dceae2835953d189c45d182aff02ea2be61b81d8e94430f041d638647b43e2fcb45fd512fbf5068b810011010001c2c06504180108000f050251d1f06b050900081095021b0c000a0910e7b484133a890a35e63407fe2ec88d6d1e6c9ce7553ece0cb2524747217bad29f251d33df84599ffcc900141a355abd62126800744068a5e05dc167056aa9205273dc7765a2ed49db15c2a83b8d6e6429c902136f1e12229086c1c10c0053242c2a4ae1930db58163387a48cad64607ff2153c320e42843dec28e3fce90e7399d63ac0affa2fee1f0adc0953c89eb3f46ef1d6c04328ed13b491669d5120a3782e3ffb7c69575fb77eebd108794f4dda9d34be2bae57e8e59ec8ebfda2f6f06104b2321be408ea146e2db482b00c5055c8618de36ac9716f80da2617e225556d0fce61b01c8cea2d1e0ea982c31711060ca370f2739366e1e708f38405d784b49d16a26cf62d152eae734327cec04d0451d1f07b010800d5af91c5e7c2fd8951c8d254eab0c97cdcb66822f868b79b78c366255059a68fd74ebca9adb9b970cd9e586690e6e0756705432306878c897b10a4b4ca0005966f99ac8fa4e6f9caf54bf8e53844544beee9872a7ac64c119cf1393d96e674254b661f61ee975633d0e8a8672531edb6bb8e211204e7754a9efa802342118eee850beea742bac95a3f706cc2024cf6037a308bb68162b2f53b9a6346a96e6d31871a2456186e24a1c7a82b82ac04afdfd57cd7fb9ba77a9c760d40b76a170f7be525e5fb6a9848cc726e806187710d9b190387df28700f321f988a392899f93815cc937f309129eb94d5299c5547cb2c085898e6639496e70d746c9d3fb9881d0011010001c2c06504180108000f050251d1f07b050900266305021b0c000a0910e7b484133a890a35bff207fd10dfe8c4a6ea1dd30568012b6fd6891a763c87ad0f7a1d112aad9e8e3239378a3b85588c235865bac2e614348cb4f216d7217f53b3ef48c192e0a4d31d64d7bfa5faccf21155965fa156e887056db644a05ad08a85cc6152d1377d9e37b46f4ff462bbe68ace2dc586ef90070314576c985d8037c2ba63f0a7dc17a62e15bd77e88bc61d9d00858979709f12304264a4cf4225c5cf86f12c8e19486cb9cdcc69f18f027e5f16f4ca8b50e28b3115eaff3a345acd21f624aef81f6ede515c1b55b26b84c1e32264754eab672d5489b287e7277ea855e0a5ff2aa9e8b8c76d579a964ec225255f4d57bf66639ccb34b64798846943e162a41096a7002ca21c7f56" +const subkeyUsageHex = "988d04533a52bc010400d26af43085558f65b9e7dbc90cb9238015259aed5e954637adcfa2181548b2d0b60c65f1f42ec5081cbf1bc0a8aa4900acfb77070837c58f26012fbce297d70afe96e759ad63531f0037538e70dbf8e384569b9720d99d8eb39d8d0a2947233ed242436cb6ac7dfe74123354b3d0119b5c235d3dd9c9d6c004f8ffaf67ad8583001101000188b7041f010200210502533b8552170c8001ce094aa433f7040bb2ddf0be3893cb843d0fe70c020700000a0910a42704b92866382aa98404009d63d916a27543da4221c60087c33f1c44bec9998c5438018ed370cca4962876c748e94b73eb39c58eb698063f3fd6346d58dd2a11c0247934c4a9d71f24754f7468f96fb24c3e791dd2392b62f626148ad724189498cbf993db2df7c0cdc2d677c35da0f16cb16c9ce7c33b4de65a4a91b1d21a130ae9cc26067718910ef8e2b417556d627261203c756d627261407379642e65642e61753e88b80413010200220502533a52bc021b03060b090807030206150802090a0b0416020301021e01021780000a0910a42704b92866382a47840400c0c2bd04f5fca586de408b395b3c280a278259c93eaaa8b79a53b97003f8ed502a8a00446dd9947fb462677e4fcac0dac2f0701847d15130aadb6cd9e0705ea0cf5f92f129136c7be21a718d46c8e641eb7f044f2adae573e11ae423a0a9ca51324f03a8a2f34b91fa40c3cc764bee4dccadedb54c768ba0469b683ea53f1c29b88d04533a52bc01040099c92a5d6f8b744224da27bc2369127c35269b58bec179de6bbc038f749344222f85a31933224f26b70243c4e4b2d242f0c4777eaef7b5502f9dad6d8bf3aaeb471210674b74de2d7078af497d55f5cdad97c7bedfbc1b41e8065a97c9c3d344b21fc81d27723af8e374bc595da26ea242dccb6ae497be26eea57e563ed517e90011010001889f0418010200090502533a52bc021b0c000a0910a42704b92866382afa1403ff70284c2de8a043ff51d8d29772602fa98009b7861c540535f874f2c230af8caf5638151a636b21f8255003997ccd29747fdd06777bb24f9593bd7d98a3e887689bf902f999915fcc94625ae487e5d13e6616f89090ebc4fdc7eb5cad8943e4056995bb61c6af37f8043016876a958ec7ebf39c43d20d53b7f546cfa83e8d2604b88d04533b8283010400c0b529316dbdf58b4c54461e7e669dc11c09eb7f73819f178ccd4177b9182b91d138605fcf1e463262fabefa73f94a52b5e15d1904635541c7ea540f07050ce0fb51b73e6f88644cec86e91107c957a114f69554548a85295d2b70bd0b203992f76eb5d493d86d9eabcaa7ef3fc7db7e458438db3fcdb0ca1cc97c638439a9170011010001889f0418010200090502533b8283021b0c000a0910a42704b92866382adc6d0400cfff6258485a21675adb7a811c3e19ebca18851533f75a7ba317950b9997fda8d1a4c8c76505c08c04b6c2cc31dc704d33da36a21273f2b388a1a706f7c3378b66d887197a525936ed9a69acb57fe7f718133da85ec742001c5d1864e9c6c8ea1b94f1c3759cebfd93b18606066c063a63be86085b7e37bdbc65f9a915bf084bb901a204533b85cd110400aed3d2c52af2b38b5b67904b0ef73d6dd7aef86adb770e2b153cd22489654dcc91730892087bb9856ae2d9f7ed1eb48f214243fe86bfe87b349ebd7c30e630e49c07b21fdabf78b7a95c8b7f969e97e3d33f2e074c63552ba64a2ded7badc05ce0ea2be6d53485f6900c7860c7aa76560376ce963d7271b9b54638a4028b573f00a0d8854bfcdb04986141568046202192263b9b67350400aaa1049dbc7943141ef590a70dcb028d730371d92ea4863de715f7f0f16d168bd3dc266c2450457d46dcbbf0b071547e5fbee7700a820c3750b236335d8d5848adb3c0da010e998908dfd93d961480084f3aea20b247034f8988eccb5546efaa35a92d0451df3aaf1aee5aa36a4c4d462c760ecd9cebcabfbe1412b1f21450f203fd126687cd486496e971a87fd9e1a8a765fe654baa219a6871ab97768596ab05c26c1aeea8f1a2c72395a58dbc12ef9640d2b95784e974a4d2d5a9b17c25fedacfe551bda52602de8f6d2e48443f5dd1a2a2a8e6a5e70ecdb88cd6e766ad9745c7ee91d78cc55c3d06536b49c3fee6c3d0b6ff0fb2bf13a314f57c953b8f4d93bf88e70418010200090502533b85cd021b0200520910a42704b92866382a47200419110200060502533b85cd000a091042ce2c64bc0ba99214b2009e26b26852c8b13b10c35768e40e78fbbb48bd084100a0c79d9ea0844fa5853dd3c85ff3ecae6f2c9dd6c557aa04008bbbc964cd65b9b8299d4ebf31f41cc7264b8cf33a00e82c5af022331fac79efc9563a822497ba012953cefe2629f1242fcdcb911dbb2315985bab060bfd58261ace3c654bdbbe2e8ed27a46e836490145c86dc7bae15c011f7e1ffc33730109b9338cd9f483e7cef3d2f396aab5bd80efb6646d7e778270ee99d934d187dd98" +const revokedKeyHex = "988d045331ce82010400c4fdf7b40a5477f206e6ee278eaef888ca73bf9128a9eef9f2f1ddb8b7b71a4c07cfa241f028a04edb405e4d916c61d6beabc333813dc7b484d2b3c52ee233c6a79b1eea4e9cc51596ba9cd5ac5aeb9df62d86ea051055b79d03f8a4fa9f38386f5bd17529138f3325d46801514ea9047977e0829ed728e68636802796801be10011010001889f04200102000905025331d0e3021d03000a0910a401d9f09a34f7c042aa040086631196405b7e6af71026b88e98012eab44aa9849f6ef3fa930c7c9f23deaedba9db1538830f8652fb7648ec3fcade8dbcbf9eaf428e83c6cbcc272201bfe2fbb90d41963397a7c0637a1a9d9448ce695d9790db2dc95433ad7be19eb3de72dacf1d6db82c3644c13eae2a3d072b99bb341debba012c5ce4006a7d34a1f4b94b444526567205265766f6b657220283c52656727732022424d204261726973746122204b657920262530305c303e5c29203c72656740626d626172697374612e636f2e61753e88b704130102002205025331ce82021b03060b090807030206150802090a0b0416020301021e01021780000a0910a401d9f09a34f7c0019c03f75edfbeb6a73e7225ad3cc52724e2872e04260d7daf0d693c170d8c4b243b8767bc7785763533febc62ec2600c30603c433c095453ede59ff2fcabeb84ce32e0ed9d5cf15ffcbc816202b64370d4d77c1e9077d74e94a16fb4fa2e5bec23a56d7a73cf275f91691ae1801a976fcde09e981a2f6327ac27ea1fecf3185df0d56889c04100102000605025331cfb5000a0910fe9645554e8266b64b4303fc084075396674fb6f778d302ac07cef6bc0b5d07b66b2004c44aef711cbac79617ef06d836b4957522d8772dd94bf41a2f4ac8b1ee6d70c57503f837445a74765a076d07b829b8111fc2a918423ddb817ead7ca2a613ef0bfb9c6b3562aec6c3cf3c75ef3031d81d95f6563e4cdcc9960bcb386c5d757b104fcca5fe11fc709df884604101102000605025331cfe7000a09107b15a67f0b3ddc0317f6009e360beea58f29c1d963a22b962b80788c3fa6c84e009d148cfde6b351469b8eae91187eff07ad9d08fcaab88d045331ce820104009f25e20a42b904f3fa555530fe5c46737cf7bd076c35a2a0d22b11f7e0b61a69320b768f4a80fe13980ce380d1cfc4a0cd8fbe2d2e2ef85416668b77208baa65bf973fe8e500e78cc310d7c8705cdb34328bf80e24f0385fce5845c33bc7943cf6b11b02348a23da0bf6428e57c05135f2dc6bd7c1ce325d666d5a5fd2fd5e410011010001889f04180102000905025331ce82021b0c000a0910a401d9f09a34f7c0418003fe34feafcbeaef348a800a0d908a7a6809cc7304017d820f70f0474d5e23cb17e38b67dc6dca282c6ca00961f4ec9edf2738d0f087b1d81e4871ef08e1798010863afb4eac4c44a376cb343be929c5be66a78cfd4456ae9ec6a99d97f4e1c3ff3583351db2147a65c0acef5c003fb544ab3a2e2dc4d43646f58b811a6c3a369d1f" +const revokedSubkeyHex = "988d04533121f6010400aefc803a3e4bb1a61c86e8a86d2726c6a43e0079e9f2713f1fa017e9854c83877f4aced8e331d675c67ea83ddab80aacbfa0b9040bb12d96f5a3d6be09455e2a76546cbd21677537db941cab710216b6d24ec277ee0bd65b910f416737ed120f6b93a9d3b306245c8cfd8394606fdb462e5cf43c551438d2864506c63367fc890011010001b41d416c696365203c616c69636540626d626172697374612e636f2e61753e88bb041301020025021b03060b090807030206150802090a0b0416020301021e01021780050253312798021901000a09104ef7e4beccde97f015a803ff5448437780f63263b0df8442a995e7f76c221351a51edd06f2063d8166cf3157aada4923dfc44aa0f2a6a4da5cf83b7fe722ba8ab416c976e77c6b5682e7f1069026673bd0de56ba06fd5d7a9f177607f277d9b55ff940a638c3e68525c67517e2b3d976899b93ca267f705b3e5efad7d61220e96b618a4497eab8d04403d23f8846041011020006050253312910000a09107b15a67f0b3ddc03d96e009f50b6365d86c4be5d5e9d0ea42d5e56f5794c617700a0ab274e19c2827780016d23417ce89e0a2c0d987d889c04100102000605025331cf7a000a0910a401d9f09a34f7c0ee970400aca292f213041c9f3b3fc49148cbda9d84afee6183c8dd6c5ff2600b29482db5fecd4303797be1ee6d544a20a858080fec43412061c9a71fae4039fd58013b4ae341273e6c66ad4c7cdd9e68245bedb260562e7b166f2461a1032f2b38c0e0e5715fb3d1656979e052b55ca827a76f872b78a9fdae64bc298170bfcebedc1271b41a416c696365203c616c696365407379646973702e6f722e61753e88b804130102002205025331278b021b03060b090807030206150802090a0b0416020301021e01021780000a09104ef7e4beccde97f06a7003fa03c3af68d272ebc1fa08aa72a03b02189c26496a2833d90450801c4e42c5b5f51ad96ce2d2c9cef4b7c02a6a2fcf1412d6a2d486098eb762f5010a201819c17fd2888aec8eda20c65a3b75744de7ee5cc8ac7bfc470cbe3cb982720405a27a3c6a8c229cfe36905f881b02ed5680f6a8f05866efb9d6c5844897e631deb949ca8846041011020006050253312910000a09107b15a67f0b3ddc0347bc009f7fa35db59147469eb6f2c5aaf6428accb138b22800a0caa2f5f0874bacc5909c652a57a31beda65eddd5889c04100102000605025331cf7a000a0910a401d9f09a34f7c0316403ff46f2a5c101256627f16384d34a38fb47a6c88ba60506843e532d91614339fccae5f884a5741e7582ffaf292ba38ee10a270a05f139bde3814b6a077e8cd2db0f105ebea2a83af70d385f13b507fac2ad93ff79d84950328bb86f3074745a8b7f9b64990fb142e2a12976e27e8d09a28dc5621f957ac49091116da410ac3cbde1b88d04533121f6010400cbd785b56905e4192e2fb62a720727d43c4fa487821203cf72138b884b78b701093243e1d8c92a0248a6c0203a5a88693da34af357499abacaf4b3309c640797d03093870a323b4b6f37865f6eaa2838148a67df4735d43a90ca87942554cdf1c4a751b1e75f9fd4ce4e97e278d6c1c7ed59d33441df7d084f3f02beb68896c70011010001889f0418010200090502533121f6021b0c000a09104ef7e4beccde97f0b98b03fc0a5ccf6a372995835a2f5da33b282a7d612c0ab2a97f59cf9fff73e9110981aac2858c41399afa29624a7fd8a0add11654e3d882c0fd199e161bdad65e5e2548f7b68a437ea64293db1246e3011cbb94dc1bcdeaf0f2539bd88ff16d95547144d97cead6a8c5927660a91e6db0d16eb36b7b49a3525b54d1644e65599b032b7eb901a204533127a0110400bd3edaa09eff9809c4edc2c2a0ebe52e53c50a19c1e49ab78e6167bf61473bb08f2050d78a5cbbc6ed66aff7b42cd503f16b4a0b99fa1609681fca9b7ce2bbb1a5b3864d6cdda4d7ef7849d156d534dea30fb0efb9e4cf8959a2b2ce623905882d5430b995a15c3b9fe92906086788b891002924f94abe139b42cbbfaaabe42f00a0b65dc1a1ad27d798adbcb5b5ad02d2688c89477b03ff4eebb6f7b15a73b96a96bed201c0e5e4ea27e4c6e2dd1005b94d4b90137a5b1cf5e01c6226c070c4cc999938101578877ee76d296b9aab8246d57049caacf489e80a3f40589cade790a020b1ac146d6f7a6241184b8c7fcde680eae3188f5dcbe846d7f7bdad34f6fcfca08413e19c1d5df83fc7c7c627d493492e009c2f52a80400a2fe82de87136fd2e8845888c4431b032ba29d9a29a804277e31002a8201fb8591a3e55c7a0d0881496caf8b9fb07544a5a4879291d0dc026a0ea9e5bd88eb4aa4947bbd694b25012e208a250d65ddc6f1eea59d3aed3b4ec15fcab85e2afaa23a40ab1ef9ce3e11e1bc1c34a0e758e7aa64deb8739276df0af7d4121f834a9b88e70418010200090502533127a0021b02005209104ef7e4beccde97f047200419110200060502533127a0000a0910dbce4ee19529437fe045009c0b32f5ead48ee8a7e98fac0dea3d3e6c0e2c552500a0ad71fadc5007cfaf842d9b7db3335a8cdad15d3d1a6404009b08e2c68fe8f3b45c1bb72a4b3278cdf3012aa0f229883ad74aa1f6000bb90b18301b2f85372ca5d6b9bf478d235b733b1b197d19ccca48e9daf8e890cb64546b4ce1b178faccfff07003c172a2d4f5ebaba9f57153955f3f61a9b80a4f5cb959908f8b211b03b7026a8a82fc612bfedd3794969bcf458c4ce92be215a1176ab88d045331d144010400a5063000c5aaf34953c1aa3bfc95045b3aab9882b9a8027fecfe2142dc6b47ba8aca667399990244d513dd0504716908c17d92c65e74219e004f7b83fc125e575dd58efec3ab6dd22e3580106998523dea42ec75bf9aa111734c82df54630bebdff20fe981cfc36c76f865eb1c2fb62c9e85bc3a6e5015a361a2eb1c8431578d0011010001889f04280102000905025331d433021d03000a09104ef7e4beccde97f02e5503ff5e0630d1b65291f4882b6d40a29da4616bb5088717d469fbcc3648b8276de04a04988b1f1b9f3e18f52265c1f8b6c85861691c1a6b8a3a25a1809a0b32ad330aec5667cb4262f4450649184e8113849b05e5ad06a316ea80c001e8e71838190339a6e48bbde30647bcf245134b9a97fa875c1d83a9862cae87ffd7e2c4ce3a1b89013d04180102000905025331d144021b0200a809104ef7e4beccde97f09d2004190102000605025331d144000a0910677815e371c2fd23522203fe22ab62b8e7a151383cea3edd3a12995693911426f8ccf125e1f6426388c0010f88d9ca7da2224aee8d1c12135998640c5e1813d55a93df472faae75bef858457248db41b4505827590aeccf6f9eb646da7f980655dd3050c6897feddddaca90676dee856d66db8923477d251712bb9b3186b4d0114daf7d6b59272b53218dd1da94a03ff64006fcbe71211e5daecd9961fba66cdb6de3f914882c58ba5beddeba7dcb950c1156d7fba18c19ea880dccc800eae335deec34e3b84ac75ffa24864f782f87815cda1c0f634b3dd2fa67cea30811d21723d21d9551fa12ccbcfa62b6d3a15d01307b99925707992556d50065505b090aadb8579083a20fe65bd2a270da9b011" + +const missingCrossSignatureKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- +Charset: UTF-8 + +mQENBFMYynYBCACVOZ3/e8Bm2b9KH9QyIlHGo/i1bnkpqsgXj8tpJ2MIUOnXMMAY +ztW7kKFLCmgVdLIC0vSoLA4yhaLcMojznh/2CcUglZeb6Ao8Gtelr//Rd5DRfPpG +zqcfUo+m+eO1co2Orabw0tZDfGpg5p3AYl0hmxhUyYSc/xUq93xL1UJzBFgYXY54 +QsM8dgeQgFseSk/YvdP5SMx1ev+eraUyiiUtWzWrWC1TdyRa5p4UZg6Rkoppf+WJ +QrW6BWrhAtqATHc8ozV7uJjeONjUEq24roRc/OFZdmQQGK6yrzKnnbA6MdHhqpdo +9kWDcXYb7pSE63Lc+OBa5X2GUVvXJLS/3nrtABEBAAG0F2ludmFsaWQtc2lnbmlu +Zy1zdWJrZXlziQEoBBMBAgASBQJTnKB5AhsBAgsHAhUIAh4BAAoJEO3UDQUIHpI/ +dN4H/idX4FQ1LIZCnpHS/oxoWQWfpRgdKAEM0qCqjMgiipJeEwSQbqjTCynuh5/R +JlODDz85ABR06aoF4l5ebGLQWFCYifPnJZ/Yf5OYcMGtb7dIbqxWVFL9iLMO/oDL +ioI3dotjPui5e+2hI9pVH1UHB/bZ/GvMGo6Zg0XxLPolKQODMVjpjLAQ0YJ3spew +RAmOGre6tIvbDsMBnm8qREt7a07cBJ6XK7xjxYaZHQBiHVxyEWDa6gyANONx8duW +/fhQ/zDTnyVM/ik6VO0Ty9BhPpcEYLFwh5c1ilFari1ta3e6qKo6ZGa9YMk/REhu +yBHd9nTkI+0CiQUmbckUiVjDKKe5AQ0EUxjKdgEIAJcXQeP+NmuciE99YcJoffxv +2gVLU4ZXBNHEaP0mgaJ1+tmMD089vUQAcyGRvw8jfsNsVZQIOAuRxY94aHQhIRHR +bUzBN28ofo/AJJtfx62C15xt6fDKRV6HXYqAiygrHIpEoRLyiN69iScUsjIJeyFL +C8wa72e8pSL6dkHoaV1N9ZH/xmrJ+k0vsgkQaAh9CzYufncDxcwkoP+aOlGtX1gP +WwWoIbz0JwLEMPHBWvDDXQcQPQTYQyj+LGC9U6f9VZHN25E94subM1MjuT9OhN9Y +MLfWaaIc5WyhLFyQKW2Upofn9wSFi8ubyBnv640Dfd0rVmaWv7LNTZpoZ/GbJAMA +EQEAAYkBHwQYAQIACQUCU5ygeQIbAgAKCRDt1A0FCB6SP0zCB/sEzaVR38vpx+OQ +MMynCBJrakiqDmUZv9xtplY7zsHSQjpd6xGflbU2n+iX99Q+nav0ETQZifNUEd4N +1ljDGQejcTyKD6Pkg6wBL3x9/RJye7Zszazm4+toJXZ8xJ3800+BtaPoI39akYJm ++ijzbskvN0v/j5GOFJwQO0pPRAFtdHqRs9Kf4YanxhedB4dIUblzlIJuKsxFit6N +lgGRblagG3Vv2eBszbxzPbJjHCgVLR3RmrVezKOsZjr/2i7X+xLWIR0uD3IN1qOW +CXQxLBizEEmSNVNxsp7KPGTLnqO3bPtqFirxS9PJLIMPTPLNBY7ZYuPNTMqVIUWF +4artDmrG +=7FfJ +-----END PGP PUBLIC KEY BLOCK-----` + +const invalidCrossSignatureKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQENBFMYynYBCACVOZ3/e8Bm2b9KH9QyIlHGo/i1bnkpqsgXj8tpJ2MIUOnXMMAY +ztW7kKFLCmgVdLIC0vSoLA4yhaLcMojznh/2CcUglZeb6Ao8Gtelr//Rd5DRfPpG +zqcfUo+m+eO1co2Orabw0tZDfGpg5p3AYl0hmxhUyYSc/xUq93xL1UJzBFgYXY54 +QsM8dgeQgFseSk/YvdP5SMx1ev+eraUyiiUtWzWrWC1TdyRa5p4UZg6Rkoppf+WJ +QrW6BWrhAtqATHc8ozV7uJjeONjUEq24roRc/OFZdmQQGK6yrzKnnbA6MdHhqpdo +9kWDcXYb7pSE63Lc+OBa5X2GUVvXJLS/3nrtABEBAAG0F2ludmFsaWQtc2lnbmlu +Zy1zdWJrZXlziQEoBBMBAgASBQJTnKB5AhsBAgsHAhUIAh4BAAoJEO3UDQUIHpI/ +dN4H/idX4FQ1LIZCnpHS/oxoWQWfpRgdKAEM0qCqjMgiipJeEwSQbqjTCynuh5/R +JlODDz85ABR06aoF4l5ebGLQWFCYifPnJZ/Yf5OYcMGtb7dIbqxWVFL9iLMO/oDL +ioI3dotjPui5e+2hI9pVH1UHB/bZ/GvMGo6Zg0XxLPolKQODMVjpjLAQ0YJ3spew +RAmOGre6tIvbDsMBnm8qREt7a07cBJ6XK7xjxYaZHQBiHVxyEWDa6gyANONx8duW +/fhQ/zDTnyVM/ik6VO0Ty9BhPpcEYLFwh5c1ilFari1ta3e6qKo6ZGa9YMk/REhu +yBHd9nTkI+0CiQUmbckUiVjDKKe5AQ0EUxjKdgEIAIINDqlj7X6jYKc6DjwrOkjQ +UIRWbQQar0LwmNilehmt70g5DCL1SYm9q4LcgJJ2Nhxj0/5qqsYib50OSWMcKeEe +iRXpXzv1ObpcQtI5ithp0gR53YPXBib80t3bUzomQ5UyZqAAHzMp3BKC54/vUrSK +FeRaxDzNLrCeyI00+LHNUtwghAqHvdNcsIf8VRumK8oTm3RmDh0TyjASWYbrt9c8 +R1Um3zuoACOVy+mEIgIzsfHq0u7dwYwJB5+KeM7ZLx+HGIYdUYzHuUE1sLwVoELh ++SHIGHI1HDicOjzqgajShuIjj5hZTyQySVprrsLKiXS6NEwHAP20+XjayJ/R3tEA +EQEAAYkCPgQYAQIBKAUCU5ygeQIbAsBdIAQZAQIABgUCU5ygeQAKCRCpVlnFZmhO +52RJB/9uD1MSa0wjY6tHOIgquZcP3bHBvHmrHNMw9HR2wRCMO91ZkhrpdS3ZHtgb +u3/55etj0FdvDo1tb8P8FGSVtO5Vcwf5APM8sbbqoi8L951Q3i7qt847lfhu6sMl +w0LWFvPTOLHrliZHItPRjOltS1WAWfr2jUYhsU9ytaDAJmvf9DujxEOsN5G1YJep +54JCKVCkM/y585Zcnn+yxk/XwqoNQ0/iJUT9qRrZWvoeasxhl1PQcwihCwss44A+ +YXaAt3hbk+6LEQuZoYS73yR3WHj+42tfm7YxRGeubXfgCEz/brETEWXMh4pe0vCL +bfWrmfSPq2rDegYcAybxRQz0lF8PAAoJEO3UDQUIHpI/exkH/0vQfdHA8g/N4T6E +i6b1CUVBAkvtdJpCATZjWPhXmShOw62gkDw306vHPilL4SCvEEi4KzG72zkp6VsB +DSRcpxCwT4mHue+duiy53/aRMtSJ+vDfiV1Vhq+3sWAck/yUtfDU9/u4eFaiNok1 +8/Gd7reyuZt5CiJnpdPpjCwelK21l2w7sHAnJF55ITXdOxI8oG3BRKufz0z5lyDY +s2tXYmhhQIggdgelN8LbcMhWs/PBbtUr6uZlNJG2lW1yscD4aI529VjwJlCeo745 +U7pO4eF05VViUJ2mmfoivL3tkhoTUWhx8xs8xCUcCg8DoEoSIhxtOmoTPR22Z9BL +6LCg2mg= +=Dhm4 +-----END PGP PUBLIC KEY BLOCK-----` + +const goodCrossSignatureKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +mI0EVUqeVwEEAMufHRrMPWK3gyvi0O0tABCs/oON9zV9KDZlr1a1M91ShCSFwCPo +7r80PxdWVWcj0V5h50/CJYtpN3eE/mUIgW2z1uDYQF1OzrQ8ubrksfsJvpAhENom +lTQEppv9mV8qhcM278teb7TX0pgrUHLYF5CfPdp1L957JLLXoQR/lwLVABEBAAG0 +E2dvb2Qtc2lnbmluZy1zdWJrZXmIuAQTAQIAIgUCVUqeVwIbAwYLCQgHAwIGFQgC +CQoLBBYCAwECHgECF4AACgkQNRjL95IRWP69XQQAlH6+eyXJN4DZTLX78KGjHrsw +6FCvxxClEPtPUjcJy/1KCRQmtLAt9PbbA78dvgzjDeZMZqRAwdjyJhjyg/fkU2OH +7wq4ktjUu+dLcOBb+BFMEY+YjKZhf6EJuVfxoTVr5f82XNPbYHfTho9/OABKH6kv +X70PaKZhbwnwij8Nts65AaIEVUqftREEAJ3WxZfqAX0bTDbQPf2CMT2IVMGDfhK7 +GyubOZgDFFjwUJQvHNvsrbeGLZ0xOBumLINyPO1amIfTgJNm1iiWFWfmnHReGcDl +y5mpYG60Mb79Whdcer7CMm3AqYh/dW4g6IB02NwZMKoUHo3PXmFLxMKXnWyJ0clw +R0LI/Qn509yXAKDh1SO20rqrBM+EAP2c5bfI98kyNwQAi3buu94qo3RR1ZbvfxgW +CKXDVm6N99jdZGNK7FbRifXqzJJDLcXZKLnstnC4Sd3uyfyf1uFhmDLIQRryn5m+ +LBYHfDBPN3kdm7bsZDDq9GbTHiFZUfm/tChVKXWxkhpAmHhU/tH6GGzNSMXuIWSO +aOz3Rqq0ED4NXyNKjdF9MiwD/i83S0ZBc0LmJYt4Z10jtH2B6tYdqnAK29uQaadx +yZCX2scE09UIm32/w7pV77CKr1Cp/4OzAXS1tmFzQ+bX7DR+Gl8t4wxr57VeEMvl +BGw4Vjh3X8//m3xynxycQU18Q1zJ6PkiMyPw2owZ/nss3hpSRKFJsxMLhW3fKmKr +Ey2KiOcEGAECAAkFAlVKn7UCGwIAUgkQNRjL95IRWP5HIAQZEQIABgUCVUqftQAK +CRD98VjDN10SqkWrAKDTpEY8D8HC02E/KVC5YUI01B30wgCgurpILm20kXEDCeHp +C5pygfXw1DJrhAP+NyPJ4um/bU1I+rXaHHJYroYJs8YSweiNcwiHDQn0Engh/mVZ +SqLHvbKh2dL/RXymC3+rjPvQf5cup9bPxNMa6WagdYBNAfzWGtkVISeaQW+cTEp/ +MtgVijRGXR/lGLGETPg2X3Afwn9N9bLMBkBprKgbBqU7lpaoPupxT61bL70= +=vtbN +-----END PGP PUBLIC KEY BLOCK-----` + +const revokedUserIDKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQENBFsgO5EBCADhREPmcjsPkXe1z7ctvyWL0S7oa9JaoGZ9oPDHFDlQxd0qlX2e +DZJZDg0qYvVixmaULIulApq1puEsaJCn3lHUbHlb4PYKwLEywYXM28JN91KtLsz/ +uaEX2KC5WqeP40utmzkNLq+oRX/xnRMgwbO7yUNVG2UlEa6eI+xOXO3YtLdmJMBW +ClQ066ZnOIzEo1JxnIwha1CDBMWLLfOLrg6l8InUqaXbtEBbnaIYO6fXVXELUjkx +nmk7t/QOk0tXCy8muH9UDqJkwDUESY2l79XwBAcx9riX8vY7vwC34pm22fAUVLCJ +x1SJx0J8bkeNp38jKM2Zd9SUQqSbfBopQ4pPABEBAAG0I0dvbGFuZyBHb3BoZXIg +PG5vLXJlcGx5QGdvbGFuZy5jb20+iQFUBBMBCgA+FiEE5Ik5JLcNx6l6rZfw1oFy +9I6cUoMFAlsgO5ECGwMFCQPCZwAFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AACgkQ +1oFy9I6cUoMIkwf8DNPeD23i4jRwd/pylbvxwZintZl1fSwTJW1xcOa1emXaEtX2 +depuqhP04fjlRQGfsYAQh7X9jOJxAHjTmhqFBi5sD7QvKU00cPFYbJ/JTx0B41bl +aXnSbGhRPh63QtEZL7ACAs+shwvvojJqysx7kyVRu0EW2wqjXdHwR/SJO6nhNBa2 +DXzSiOU/SUA42mmG+5kjF8Aabq9wPwT9wjraHShEweNerNMmOqJExBOy3yFeyDpa +XwEZFzBfOKoxFNkIaVf5GSdIUGhFECkGvBMB935khftmgR8APxdU4BE7XrXexFJU +8RCuPXonm4WQOwTWR0vQg64pb2WKAzZ8HhwTGbQiR29sYW5nIEdvcGhlciA8cmV2 +b2tlZEBnb2xhbmcuY29tPokBNgQwAQoAIBYhBOSJOSS3Dcepeq2X8NaBcvSOnFKD +BQJbIDv3Ah0AAAoJENaBcvSOnFKDfWMIAKhI/Tvu3h8fSUxp/gSAcduT6bC1JttG +0lYQ5ilKB/58lBUA5CO3ZrKDKlzW3M8VEcvohVaqeTMKeoQd5rCZq8KxHn/KvN6N +s85REfXfniCKfAbnGgVXX3kDmZ1g63pkxrFu0fDZjVDXC6vy+I0sGyI/Inro0Pzb +tvn0QCsxjapKK15BtmSrpgHgzVqVg0cUp8vqZeKFxarYbYB2idtGRci4b9tObOK0 +BSTVFy26+I/mrFGaPrySYiy2Kz5NMEcRhjmTxJ8jSwEr2O2sUR0yjbgUAXbTxDVE +/jg5fQZ1ACvBRQnB7LvMHcInbzjyeTM3FazkkSYQD6b97+dkWwb1iWG5AQ0EWyA7 +kQEIALkg04REDZo1JgdYV4x8HJKFS4xAYWbIva1ZPqvDNmZRUbQZR2+gpJGEwn7z +VofGvnOYiGW56AS5j31SFf5kro1+1bZQ5iOONBng08OOo58/l1hRseIIVGB5TGSa +PCdChKKHreJI6hS3mShxH6hdfFtiZuB45rwoaArMMsYcjaezLwKeLc396cpUwwcZ +snLUNd1Xu5EWEF2OdFkZ2a1qYdxBvAYdQf4+1Nr+NRIx1u1NS9c8jp3PuMOkrQEi +bNtc1v6v0Jy52mKLG4y7mC/erIkvkQBYJdxPaP7LZVaPYc3/xskcyijrJ/5ufoD8 +K71/ShtsZUXSQn9jlRaYR0EbojMAEQEAAYkBPAQYAQoAJhYhBOSJOSS3Dcepeq2X +8NaBcvSOnFKDBQJbIDuRAhsMBQkDwmcAAAoJENaBcvSOnFKDkFMIAIt64bVZ8x7+ +TitH1bR4pgcNkaKmgKoZz6FXu80+SnbuEt2NnDyf1cLOSimSTILpwLIuv9Uft5Pb +OraQbYt3xi9yrqdKqGLv80bxqK0NuryNkvh9yyx5WoG1iKqMj9/FjGghuPrRaT4l +QinNAghGVkEy1+aXGFrG2DsOC1FFI51CC2WVTzZ5RwR2GpiNRfESsU1rZAUqf/2V +yJl9bD5R4SUNy8oQmhOxi+gbhD4Ao34e4W0ilibslI/uawvCiOwlu5NGd8zv5n+U +heiQvzkApQup5c+BhH5zFDFdKJ2CBByxw9+7QjMFI/wgLixKuE0Ob2kAokXf7RlB +7qTZOahrETw= +=IKnw +-----END PGP PUBLIC KEY BLOCK-----` + +const keyWithFirstUserIDRevoked = `-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: OpenPGP.js v4.10.10 +Comment: https://openpgpjs.org + +xsBNBFsgO5EBCADhREPmcjsPkXe1z7ctvyWL0S7oa9JaoGZ9oPDHFDlQxd0q +lX2eDZJZDg0qYvVixmaULIulApq1puEsaJCn3lHUbHlb4PYKwLEywYXM28JN +91KtLsz/uaEX2KC5WqeP40utmzkNLq+oRX/xnRMgwbO7yUNVG2UlEa6eI+xO +XO3YtLdmJMBWClQ066ZnOIzEo1JxnIwha1CDBMWLLfOLrg6l8InUqaXbtEBb +naIYO6fXVXELUjkxnmk7t/QOk0tXCy8muH9UDqJkwDUESY2l79XwBAcx9riX +8vY7vwC34pm22fAUVLCJx1SJx0J8bkeNp38jKM2Zd9SUQqSbfBopQ4pPABEB +AAHNIkdvbGFuZyBHb3BoZXIgPHJldm9rZWRAZ29sYW5nLmNvbT7CwI0EMAEK +ACAWIQTkiTkktw3HqXqtl/DWgXL0jpxSgwUCWyA79wIdAAAhCRDWgXL0jpxS +gxYhBOSJOSS3Dcepeq2X8NaBcvSOnFKDfWMIAKhI/Tvu3h8fSUxp/gSAcduT +6bC1JttG0lYQ5ilKB/58lBUA5CO3ZrKDKlzW3M8VEcvohVaqeTMKeoQd5rCZ +q8KxHn/KvN6Ns85REfXfniCKfAbnGgVXX3kDmZ1g63pkxrFu0fDZjVDXC6vy ++I0sGyI/Inro0Pzbtvn0QCsxjapKK15BtmSrpgHgzVqVg0cUp8vqZeKFxarY +bYB2idtGRci4b9tObOK0BSTVFy26+I/mrFGaPrySYiy2Kz5NMEcRhjmTxJ8j +SwEr2O2sUR0yjbgUAXbTxDVE/jg5fQZ1ACvBRQnB7LvMHcInbzjyeTM3Fazk +kSYQD6b97+dkWwb1iWHNI0dvbGFuZyBHb3BoZXIgPG5vLXJlcGx5QGdvbGFu +Zy5jb20+wsCrBBMBCgA+FiEE5Ik5JLcNx6l6rZfw1oFy9I6cUoMFAlsgO5EC +GwMFCQPCZwAFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AAIQkQ1oFy9I6cUoMW +IQTkiTkktw3HqXqtl/DWgXL0jpxSgwiTB/wM094PbeLiNHB3+nKVu/HBmKe1 +mXV9LBMlbXFw5rV6ZdoS1fZ16m6qE/Th+OVFAZ+xgBCHtf2M4nEAeNOaGoUG +LmwPtC8pTTRw8Vhsn8lPHQHjVuVpedJsaFE+HrdC0RkvsAICz6yHC++iMmrK +zHuTJVG7QRbbCqNd0fBH9Ik7qeE0FrYNfNKI5T9JQDjaaYb7mSMXwBpur3A/ +BP3COtodKETB416s0yY6okTEE7LfIV7IOlpfARkXMF84qjEU2QhpV/kZJ0hQ +aEUQKQa8EwH3fmSF+2aBHwA/F1TgETtetd7EUlTxEK49eiebhZA7BNZHS9CD +rilvZYoDNnweHBMZzsBNBFsgO5EBCAC5INOERA2aNSYHWFeMfByShUuMQGFm +yL2tWT6rwzZmUVG0GUdvoKSRhMJ+81aHxr5zmIhluegEuY99UhX+ZK6NftW2 +UOYjjjQZ4NPDjqOfP5dYUbHiCFRgeUxkmjwnQoSih63iSOoUt5kocR+oXXxb +YmbgeOa8KGgKzDLGHI2nsy8Cni3N/enKVMMHGbJy1DXdV7uRFhBdjnRZGdmt +amHcQbwGHUH+PtTa/jUSMdbtTUvXPI6dz7jDpK0BImzbXNb+r9CcudpiixuM +u5gv3qyJL5EAWCXcT2j+y2VWj2HN/8bJHMoo6yf+bn6A/Cu9f0obbGVF0kJ/ +Y5UWmEdBG6IzABEBAAHCwJMEGAEKACYWIQTkiTkktw3HqXqtl/DWgXL0jpxS +gwUCWyA7kQIbDAUJA8JnAAAhCRDWgXL0jpxSgxYhBOSJOSS3Dcepeq2X8NaB +cvSOnFKDkFMIAIt64bVZ8x7+TitH1bR4pgcNkaKmgKoZz6FXu80+SnbuEt2N +nDyf1cLOSimSTILpwLIuv9Uft5PbOraQbYt3xi9yrqdKqGLv80bxqK0NuryN +kvh9yyx5WoG1iKqMj9/FjGghuPrRaT4lQinNAghGVkEy1+aXGFrG2DsOC1FF +I51CC2WVTzZ5RwR2GpiNRfESsU1rZAUqf/2VyJl9bD5R4SUNy8oQmhOxi+gb +hD4Ao34e4W0ilibslI/uawvCiOwlu5NGd8zv5n+UheiQvzkApQup5c+BhH5z +FDFdKJ2CBByxw9+7QjMFI/wgLixKuE0Ob2kAokXf7RlB7qTZOahrETw= +=+2T8 +-----END PGP PUBLIC KEY BLOCK----- +` + +const keyWithOnlyUserIDRevoked = `-----BEGIN PGP PUBLIC KEY BLOCK----- + +mDMEYYwB7RYJKwYBBAHaRw8BAQdARimqhPPzyGAXmfQJjcqM1QVPzLtURJSzNVll +JV4tEaW0KVJldm9rZWQgUHJpbWFyeSBVc2VyIElEIDxyZXZva2VkQGtleS5jb20+ +iHgEMBYIACAWIQSpyJZAXYqVEFkjyKutFcS0yeB0LQUCYYwCtgIdAAAKCRCtFcS0 +yeB0LbSsAQD8OYMaaBjrdzzpwIkP1stgmPd4/kzN/ZG28Ywl6a5F5QEA5Xg7aq4e +/t6Fsb4F5iqB956kSPe6YJrikobD/tBbMwSIkAQTFggAOBYhBKnIlkBdipUQWSPI +q60VxLTJ4HQtBQJhjAHtAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEK0V +xLTJ4HQtBaoBAPZL7luTCji+Tqhn7XNfFE/0QIahCt8k9wfO1cGlB3inAQDf8Tzw +ZGR5fNluUcNoVxQT7bUSFStbaGo3k0BaOYPbCLg4BGGMAe0SCisGAQQBl1UBBQEB +B0DLwSpveSrbIO/IVZD13yrs1XuB3FURZUnafGrRq7+jUAMBCAeIeAQYFggAIBYh +BKnIlkBdipUQWSPIq60VxLTJ4HQtBQJhjAHtAhsMAAoJEK0VxLTJ4HQtZ1oA/j9u +8+p3xTNzsmabTL6BkNbMeB/RUKCrlm6woM6AV+vxAQCcXTn3JC2sNoNrLoXuVzaA +mcG3/TwG5GSQUUPkrDsGDA== +=mFWy +-----END PGP PUBLIC KEY BLOCK----- +` + +const keyWithSubKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- + +mI0EWyKwKQEEALwXhKBnyaaNFeK3ljfc/qn9X/QFw+28EUfgZPHjRmHubuXLE2uR +s3ZoSXY2z7Dkv+NyHYMt8p+X8q5fR7JvUjK2XbPyKoiJVnHINll83yl67DaWfKNL +EjNoO0kIfbXfCkZ7EG6DL+iKtuxniGTcnGT47e+HJSqb/STpLMnWwXjBABEBAAG0 +I0dvbGFuZyBHb3BoZXIgPG5vLXJlcGx5QGdvbGFuZy5jb20+iM4EEwEKADgWIQQ/ +lRafP/p9PytHbwxMvYJsOQdOOAUCWyKwKQIbAwULCQgHAwUVCgkICwUWAgMBAAIe +AQIXgAAKCRBMvYJsOQdOOOsFBAC62mXww8XuqvYLcVOvHkWLT6mhxrQOJXnlfpn7 +2uBV9CMhoG/Ycd43NONsJrB95Apr9TDIqWnVszNbqPCuBhZQSGLdbiDKjxnCWBk0 +69qv4RNtkpOhYB7jK4s8F5oQZqId6JasT/PmJTH92mhBYhhTQr0GYFuPX2UJdkw9 +Sn9C67iNBFsisDUBBAC3A+Yo9lgCnxi/pfskyLrweYif6kIXWLAtLTsM6g/6jt7b +wTrknuCPyTv0QKGXsAEe/cK/Xq3HvX9WfXPGIHc/X56ZIsHQ+RLowbZV/Lhok1IW +FAuQm8axr/by80cRwFnzhfPc/ukkAq2Qyj4hLsGblu6mxeAhzcp8aqmWOO2H9QAR +AQABiLYEKAEKACAWIQQ/lRafP/p9PytHbwxMvYJsOQdOOAUCWyK16gIdAAAKCRBM +vYJsOQdOOB1vA/4u4uLONsE+2GVOyBsHyy7uTdkuxaR9b54A/cz6jT/tzUbeIzgx +22neWhgvIEghnUZd0vEyK9k1wy5vbDlEo6nKzHso32N1QExGr5upRERAxweDxGOj +7luDwNypI7QcifE64lS/JmlnunwRCdRWMKc0Fp+7jtRc5mpwyHN/Suf5RokBagQY +AQoAIBYhBD+VFp8/+n0/K0dvDEy9gmw5B044BQJbIrA1AhsCAL8JEEy9gmw5B044 +tCAEGQEKAB0WIQSNdnkaWY6t62iX336UXbGvYdhXJwUCWyKwNQAKCRCUXbGvYdhX +JxJSA/9fCPHP6sUtGF1o3G1a3yvOUDGr1JWcct9U+QpbCt1mZoNopCNDDQAJvDWl +mvDgHfuogmgNJRjOMznvahbF+wpTXmB7LS0SK412gJzl1fFIpK4bgnhu0TwxNsO1 +8UkCZWqxRMgcNUn9z6XWONK8dgt5JNvHSHrwF4CxxwjL23AAtK+FA/UUoi3U4kbC +0XnSr1Sl+mrzQi1+H7xyMe7zjqe+gGANtskqexHzwWPUJCPZ5qpIa2l8ghiUim6b +4ymJ+N8/T8Yva1FaPEqfMzzqJr8McYFm0URioXJPvOAlRxdHPteZ0qUopt/Jawxl +Xt6B9h1YpeLoJwjwsvbi98UTRs0jXwoY +=3fWu +-----END PGP PUBLIC KEY BLOCK-----` + +const keyWithSubKeyAndBadSelfSigOrder = `-----BEGIN PGP PUBLIC KEY BLOCK----- + +mI0EWyLLDQEEAOqIOpJ/ha1OYAGduu9tS3rBz5vyjbNgJO4sFveEM0mgsHQ0X9/L +plonW+d0gRoO1dhJ8QICjDAc6+cna1DE3tEb5m6JtQ30teLZuqrR398Cf6w7NNVz +r3lrlmnH9JaKRuXl7tZciwyovneBfZVCdtsRZjaLI1uMQCz/BToiYe3DABEBAAG0 +I0dvbGFuZyBHb3BoZXIgPG5vLXJlcGx5QGdvbGFuZy5jb20+iM4EEwEKADgWIQRZ +sixZOfQcZdW0wUqmgmdsv1O9xgUCWyLLDQIbAwULCQgHAwUVCgkICwUWAgMBAAIe +AQIXgAAKCRCmgmdsv1O9xql2A/4pix98NxjhdsXtazA9agpAKeADf9tG4Za27Gj+ +3DCww/E4iP2X35jZimSm/30QRB6j08uGCqd9vXkkJxtOt63y/IpVOtWX6vMWSTUm +k8xKkaYMP0/IzKNJ1qC/qYEUYpwERBKg9Z+k99E2Ql4kRHdxXUHq6OzY79H18Y+s +GdeM/riNBFsiyxsBBAC54Pxg/8ZWaZX1phGdwfe5mek27SOYpC0AxIDCSOdMeQ6G +HPk38pywl1d+S+KmF/F4Tdi+kWro62O4eG2uc/T8JQuRDUhSjX0Qa51gPzJrUOVT +CFyUkiZ/3ZDhtXkgfuso8ua2ChBgR9Ngr4v43tSqa9y6AK7v0qjxD1x+xMrjXQAR +AQABiQFxBBgBCgAmAhsCFiEEWbIsWTn0HGXVtMFKpoJnbL9TvcYFAlsizTIFCQAN +MRcAv7QgBBkBCgAdFiEEJcoVUVJIk5RWj1c/o62jUpRPICQFAlsiyxsACgkQo62j +UpRPICQq5gQApoWIigZxXFoM0uw4uJBS5JFZtirTANvirZV5RhndwHeMN6JttaBS +YnjyA4+n1D+zB2VqliD2QrsX12KJN6rGOehCtEIClQ1Hodo9nC6kMzzAwW1O8bZs +nRJmXV+bsvD4sidLZLjdwOVa3Cxh6pvq4Uur6a7/UYx121hEY0Qx0s8JEKaCZ2y/ +U73GGi0D/i20VW8AWYAPACm2zMlzExKTOAV01YTQH/3vW0WLrOse53WcIVZga6es +HuO4So0SOEAvxKMe5HpRIu2dJxTvd99Bo9xk9xJU0AoFrO0vNCRnL+5y68xMlODK +lEw5/kl0jeaTBp6xX0HDQOEVOpPGUwWV4Ij2EnvfNDXaE1vK1kffiQFrBBgBCgAg +AhsCFiEEWbIsWTn0HGXVtMFKpoJnbL9TvcYFAlsi0AYAv7QgBBkBCgAdFiEEJcoV +UVJIk5RWj1c/o62jUpRPICQFAlsiyxsACgkQo62jUpRPICQq5gQApoWIigZxXFoM +0uw4uJBS5JFZtirTANvirZV5RhndwHeMN6JttaBSYnjyA4+n1D+zB2VqliD2QrsX +12KJN6rGOehCtEIClQ1Hodo9nC6kMzzAwW1O8bZsnRJmXV+bsvD4sidLZLjdwOVa +3Cxh6pvq4Uur6a7/UYx121hEY0Qx0s8JEKaCZ2y/U73GRl0EAJokkXmy4zKDHWWi +wvK9gi2gQgRkVnu2AiONxJb5vjeLhM/07BRmH6K1o+w3fOeEQp4FjXj1eQ5fPSM6 +Hhwx2CTl9SDnPSBMiKXsEFRkmwQ2AAsQZLmQZvKBkLZYeBiwf+IY621eYDhZfo+G +1dh1WoUCyREZsJQg2YoIpWIcvw+a +=bNRo +-----END PGP PUBLIC KEY BLOCK----- +` + +const onlySubkeyNoPrivateKey = `-----BEGIN PGP PRIVATE KEY BLOCK----- +Version: GnuPG v1 + +lQCVBFggvocBBAC7vBsHn7MKmS6IiiZNTXdciplVgS9cqVd+RTdIAoyNTcsiV1H0 +GQ3QtodOPeDlQDNoqinqaobd7R9g3m3hS53Nor7yBZkCWQ5x9v9JxRtoAq0sklh1 +I1X2zEqZk2l6YrfBF/64zWrhjnW3j23szkrAIVu0faQXbQ4z56tmZrw11wARAQAB +/gdlAkdOVQG0CUdOVSBEdW1teYi4BBMBAgAiBQJYIL6HAhsDBgsJCAcDAgYVCAIJ +CgsEFgIDAQIeAQIXgAAKCRCd1xxWp1CYAnjGA/9synn6ZXJUKAXQzySgmCZvCIbl +rqBfEpxwLG4Q/lONhm5vthAE0z49I8hj5Gc5e2tLYUtq0o0OCRdCrYHa/efOYWpJ +6RsK99bePOisVzmOABLIgZkcr022kHoMCmkPgv9CUGKP1yqbGl+zzAwQfUjRUmvD +ZIcWLHi2ge4GzPMPi50B2ARYIL6cAQQAxWHnicKejAFcFcF1/3gUSgSH7eiwuBPX +M7vDdgGzlve1o1jbV4tzrjN9jsCl6r0nJPDMfBSzgLr1auNTRG6HpJ4abcOx86ED +Ad+avDcQPZb7z3dPhH/gb2lQejZsHh7bbeOS8WMSzHV3RqCLd8J/xwWPNR5zKn1f +yp4IGfopidMAEQEAAQAD+wQOelnR82+dxyM2IFmZdOB9wSXQeCVOvxSaNMh6Y3lk +UOOkO8Nlic4x0ungQRvjoRs4wBmCuwFK/MII6jKui0B7dn/NDf51i7rGdNGuJXDH +e676By1sEY/NGkc74jr74T+5GWNU64W0vkpfgVmjSAzsUtpmhJMXsc7beBhJdnVl +AgDKCb8hZqj1alcdmLoNvb7ibA3K/V8J462CPD7bMySPBa/uayoFhNxibpoXml2r +oOtHa5izF3b0/9JY97F6rqkdAgD6GdTJ+xmlCoz1Sewoif1I6krq6xoa7gOYpIXo +UL1Afr+LiJeyAnF/M34j/kjIVmPanZJjry0kkjHE5ILjH3uvAf4/6n9np+Th8ujS +YDCIzKwR7639+H+qccOaddCep8Y6KGUMVdD/vTKEx1rMtK+hK/CDkkkxnFslifMJ +kqoqv3WUqCWJAT0EGAECAAkFAlggvpwCGwIAqAkQndccVqdQmAKdIAQZAQIABgUC +WCC+nAAKCRDmGUholQPwvQk+A/9latnSsR5s5/1A9TFki11GzSEnfLbx46FYOdkW +n3YBxZoPQGxNA1vIn8GmouxZInw9CF4jdOJxEdzLlYQJ9YLTLtN5tQEMl/19/bR8 +/qLacAZ9IOezYRWxxZsyn6//jfl7A0Y+FV59d4YajKkEfItcIIlgVBSW6T+TNQT3 +R+EH5HJ/A/4/AN0CmBhhE2vGzTnVU0VPrE4V64pjn1rufFdclgpixNZCuuqpKpoE +VVHn6mnBf4njKjZrAGPs5kfQ+H4NsM7v3Zz4yV6deu9FZc4O6E+V1WJ38rO8eBix +7G2jko106CC6vtxsCPVIzY7aaG3H5pjRtomw+pX7SzrQ7FUg2PGumg== +=F/T0 +-----END PGP PRIVATE KEY BLOCK-----` + +const ecdsaPrivateKey = `-----BEGIN PGP PRIVATE KEY BLOCK----- + +xaUEX1KsSRMIKoZIzj0DAQcCAwTpYqJsnJiFhKKh+8TulWD+lVmerBFNS+Ii +B+nlG3T0xQQ4Sy5eIjJ0CExIQQzi3EElF/Z2l4F3WC5taFA11NgA/gkDCHSS +PThf1M2K4LN8F1MRcvR+sb7i0nH55ojkwuVB1DE6jqIT9m9i+mX1tzjSAS+6 +lPQiweCJvG7xTC7Hs3AzRapf/r1At4TB+v+5G2/CKynNFEJpbGwgPGJpbGxA +aG9tZS5jb20+wncEEBMIAB8FAl9SrEkGCwkHCAMCBBUICgIDFgIBAhkBAhsD +Ah4BAAoJEMpwT3+q3+xqw5UBAMebZN9isEZ1ML+R/jWAAWMwa/knMugrEZ1v +Bl9+ZwM0AQCZdf80/wYY4Nve01qSRFv8OmKswLli3TvDv6FKc4cLz8epBF9S +rEkSCCqGSM49AwEHAgMEAjKnT9b5wY2bf9TpAV3d7OUfPOxKj9c4VzeVzSrH +AtQgo/MuI1cdYVURicV4i76DNjFhQHQFTk7BrC+C2u1yqQMBCAf+CQMIHImA +iYfzQtjgQWSFZYUkCFpbbwhNF0ch+3HNaZkaHCnZRIsWsRnc6FCb6lRQyK9+ +Dq59kHlduE5QgY40894jfmP2JdJHU6nBdYrivbEdbMJhBBgTCAAJBQJfUqxJ +AhsMAAoJEMpwT3+q3+xqUI0BAMykhV08kQ4Ip9Qlbss6Jdufv7YrU0Vd5hou +b5TmiPd0APoDBh3qIic+aLLUcAuG3+Gt1P1AbUlmqV61ozn1WfHxfw== +=KLN8 +-----END PGP PRIVATE KEY BLOCK-----` + +const dsaPrivateKeyWithElGamalSubkey = `-----BEGIN PGP PRIVATE KEY BLOCK----- + +lQOBBF9/MLsRCACeaF6BI0jTgDAs86t8/kXPfwlPvR2MCYzB0BCqAdcq1hV/GTYd +oNmJRna/ZJfsI/vf+d8Nv+EYOQkPheFS1MJVBitkAXjQPgm8i1tQWen1FCWZxqGk +/vwZYF4yo8GhZ+Wxi3w09W9Cp9QM/CTmyE1Xe7wpPBGe+oD+me8Zxjyt8JBS4Qx+ +gvWbfHxfHnggh4pz7U8QkItlLsBNQEdX4R5+zwRN66g2ZSX/shaa/EkVnihUhD7r +njP9I51ORWucTQD6OvgooaNQZCkQ/Se9TzdakwWKS2XSIFXiY/e2E5ZgKI/pfKDU +iA/KessxddPb7nP/05OIJqg9AoDrD4vmehLzAQD+zsUS3LDU1m9/cG4LMsQbT2VK +Te4HqbGIAle+eu/asQf8DDJMrbZpiJZvADum9j0TJ0oep6VdMbzo9RSDKvlLKT9m +kG63H8oDWnCZm1a+HmGq9YIX+JHWmsLXXsFLeEouLzHO+mZo0X28eji3V2T87hyR +MmUM0wFo4k7jK8uVmkDXv3XwNp2uByWxUKZd7EnWmcEZWqIiexJ7XpCS0Pg3tRaI +zxve0SRe/dxfUPnTk/9KQ9hS6DWroBKquL182zx1Fggh4LIWWE2zq+UYn8BI0E8A +rmIDFJdF8ymFQGRrEy6g79NnkPmkrZWsgMRYY65P6v4zLVmqohJKkpm3/Uxa6QAP +CCoPh/JTOvPeCP2bOJH8z4Z9Py3ouMIjofQW8sXqRgf/RIHbh0KsINHrwwZ4gVIr +MK3RofpaYxw1ztPIWb4cMWoWZHH1Pxh7ggTGSBpAhKXkiWw2Rxat8QF5aA7e962c +bLvVv8dqsPrD/RnVJHag89cbPTzjn7gY9elE8EM8ithV3oQkwHTr4avYlpDZsgNd +hUW3YgRwGo31tdzxoG04AcpV2t+07P8XMPr9hsfWs4rHohXPi38Hseu1Ji+dBoWQ +3+1w/HH3o55s+jy4Ruaz78AIrjbmAJq+6rA2mIcCgrhw3DnzuwQAKeBvSeqn9zfS +ZC812osMBVmkycwelpaIh64WZ0vWL3GvdXDctV2kXM+qVpDTLEny0LuiXxrwCKQL +Ev4HAwK9uQBcreDEEud7pfRb8EYP5lzO2ZA7RaIvje6EWAGBvJGMRT0QQE5SGqc7 +Fw5geigBdt+vVyRuNNhg3c2fdn/OBQaYu0J/8AiOogG8EaM8tCFlbGdhbWFsQGRz +YS5jb20gPGVsZ2FtYWxAZHNhLmNvbT6IkAQTEQgAOBYhBI+gnfiHQxB35/Dp0XAQ +aE/rsWC5BQJffzC7AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEHAQaE/r +sWC5A4EA/0GcJmyPtN+Klc7b9sVT3JgKTRnB/URxOJfYJofP0hZLAQCkqyMO+adV +JvbgDH0zaITQWZSSXPqpgMpCA6juTrDsd50CawRffzC7EAgAxFFFSAAEQzWTgKU5 +EBtpxxoPzHqcChawTHRxHxjcELXzmUBS5PzfA1HXSPnNqK/x3Ut5ycC3CsW41Fnt +Gm3706Wu9VFbFZVn55F9lPiplUo61n5pqMvOr1gmuQsdXiTa0t5FRa4TZ2VSiHFw +vdAVSPTUsT4ZxJ1rPyFYRtq1n3pQcvdZowd07r0JnzTMjLLMFYCKhwIowoOC4zqJ +iB8enjwOlpaqBATRm9xpVF7SJkroPF6/B1vdhj7E3c1aJyHlo0PYBAg756sSHWHg +UuLyUQ4TA0hcCVenn/L/aSY2LnbdZB1EBhlYjA7dTCgwIqsQhfQmPkjz6g64A7+Y +HbbrLwADBQgAk14QIEQ+J/VHetpQV/jt2pNsFK1kVK7mXK0spTExaC2yj2sXlHjL +Ie3bO5T/KqmIaBEB5db5fA5xK9cZt79qrQHDKsEqUetUeMUWLBx77zBsus3grIgy +bwDZKseRzQ715pwxquxQlScGoDIBKEh08HpwHkq140eIj3w+MAIfndaZaSCNaxaP +Snky7BQmJ7Wc7qrIwoQP6yrnUqyW2yNi81nJYUhxjChqaFSlwzLs/iNGryBKo0ic +BqVIRjikKHBlwBng6WyrltQo/Vt9GG8w+lqaAVXbJRlaBZJUR+2NKi/YhP3qQse3 +v8fi4kns0gh5LK+2C01RvdX4T49QSExuIf4HAwLJqYIGwadA2uem5v7/765ZtFWV +oL0iZ0ueTJDby4wTFDpLVzzDi/uVcB0ZRFrGOp7w6OYcNYTtV8n3xmli2Q5Trw0c +wZVzvg+ABKWiv7faBjMczIFF8y6WZKOIeAQYEQgAIBYhBI+gnfiHQxB35/Dp0XAQ +aE/rsWC5BQJffzC7AhsMAAoJEHAQaE/rsWC5ZmIA/jhS4r4lClbvjuPWt0Yqdn7R +fss2SPMYvMrrDh42aE0OAQD8xn4G6CN8UtW9xihXOY6FpxiJ/sMc2VaneeUd34oa +4g== +=XZm8 +-----END PGP PRIVATE KEY BLOCK-----` + +// https://tests.sequoia-pgp.org/#Certificate_expiration +// P _ U p +const expiringPrimaryUIDKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- + +xsDNBF2lnPIBDAC5cL9PQoQLTMuhjbYvb4Ncuuo0bfmgPRFywX53jPhoFf4Zg6mv +/seOXpgecTdOcVttfzC8ycIKrt3aQTiwOG/ctaR4Bk/t6ayNFfdUNxHWk4WCKzdz +/56fW2O0F23qIRd8UUJp5IIlN4RDdRCtdhVQIAuzvp2oVy/LaS2kxQoKvph/5pQ/ +5whqsyroEWDJoSV0yOb25B/iwk/pLUFoyhDG9bj0kIzDxrEqW+7Ba8nocQlecMF3 +X5KMN5kp2zraLv9dlBBpWW43XktjcCZgMy20SouraVma8Je/ECwUWYUiAZxLIlMv +9CurEOtxUw6N3RdOtLmYZS9uEnn5y1UkF88o8Nku890uk6BrewFzJyLAx5wRZ4F0 +qV/yq36UWQ0JB/AUGhHVPdFf6pl6eaxBwT5GXvbBUibtf8YI2og5RsgTWtXfU7eb +SGXrl5ZMpbA6mbfhd0R8aPxWfmDWiIOhBufhMCvUHh1sApMKVZnvIff9/0Dca3wb +vLIwa3T4CyshfT0AEQEAAc0hQm9iIEJhYmJhZ2UgPGJvYkBvcGVucGdwLmV4YW1w +bGU+wsFcBBMBCgCQBYJhesp/BYkEWQPJBQsJCAcCCRD7/MgqAV5zMEcUAAAAAAAe +ACBzYWx0QG5vdGF0aW9ucy5zZXF1b2lhLXBncC5vcmeEOQlNyTLFkc9I/elp+BpY +495V7KatqtDmsyDr+zDAdwYVCgkICwIEFgIDAQIXgAIbAwIeARYhBNGmbhojsYLJ +mA94jPv8yCoBXnMwAABSCQv/av8hKyynMtXVKFuWOGJw0mR8auDm84WdhMFRZg8t +yTJ1L88+Ny4WUAFeqo2j7DU2yPGrm5rmuvzlEedFYFeOWt+A4adz+oumgRd0nsgG +Lf3QYUWQhLWVlz+H7zubgKqSB2A2RqV65S7mTTVro42nb2Mng6rvGWiqeKG5nrXN +/01p1mIBQGR/KnZSqYLzA2Pw2PiJoSkXT26PDz/kiEMXpjKMR6sicV4bKVlEdUvm +pIImIPBHZq1EsKXEyWtWC41w/pc+FofGE+uSFs2aef1vvEHFkj3BHSK8gRcH3kfR +eFroTET8C2q9V1AOELWm+Ys6PzGzF72URK1MKXlThuL4t4LjvXWGNA78IKW+/RQH +DzK4U0jqSO0mL6qxqVS5Ij6jjL6OTrVEGdtDf5n0vI8tcUTBKtVqYAYk+t2YGT05 +ayxALtb7viVKo8f10WEcCuKshn0gdsEFMRZQzJ89uQIY3R3FbsdRCaE6OEaDgKMQ +UTFROyfhthgzRKbRxfcplMUCzsDNBF2lnPIBDADWML9cbGMrp12CtF9b2P6z9TTT +74S8iyBOzaSvdGDQY/sUtZXRg21HWamXnn9sSXvIDEINOQ6A9QxdxoqWdCHrOuW3 +ofneYXoG+zeKc4dC86wa1TR2q9vW+RMXSO4uImA+Uzula/6k1DogDf28qhCxMwG/ +i/m9g1c/0aApuDyKdQ1PXsHHNlgd/Dn6rrd5y2AObaifV7wIhEJnvqgFXDN2RXGj +LeCOHV4Q2WTYPg/S4k1nMXVDwZXrvIsA0YwIMgIT86Rafp1qKlgPNbiIlC1g9RY/ +iFaGN2b4Ir6GDohBQSfZW2+LXoPZuVE/wGlQ01rh827KVZW4lXvqsge+wtnWlszc +selGATyzqOK9LdHPdZGzROZYI2e8c+paLNDdVPL6vdRBUnkCaEkOtl1mr2JpQi5n +TU+gTX4IeInC7E+1a9UDF/Y85ybUz8XV8rUnR76UqVC7KidNepdHbZjjXCt8/Zo+ +Tec9JNbYNQB/e9ExmDntmlHEsSEQzFwzj8sxH48AEQEAAcLA9gQYAQoAIBYhBNGm +bhojsYLJmA94jPv8yCoBXnMwBQJdpZzyAhsMAAoJEPv8yCoBXnMw6f8L/26C34dk +jBffTzMj5Bdzm8MtF67OYneJ4TQMw7+41IL4rVcSKhIhk/3Ud5knaRtP2ef1+5F6 +6h9/RPQOJ5+tvBwhBAcUWSupKnUrdVaZQanYmtSxcVV2PL9+QEiNN3tzluhaWO// +rACxJ+K/ZXQlIzwQVTpNhfGzAaMVV9zpf3u0k14itcv6alKY8+rLZvO1wIIeRZLm +U0tZDD5HtWDvUV7rIFI1WuoLb+KZgbYn3OWjCPHVdTrdZ2CqnZbG3SXw6awH9bzR +LV9EXkbhIMez0deCVdeo+wFFklh8/5VK2b0vk/+wqMJxfpa1lHvJLobzOP9fvrsw +sr92MA2+k901WeISR7qEzcI0Fdg8AyFAExaEK6VyjP7SXGLwvfisw34OxuZr3qmx +1Sufu4toH3XrB7QJN8XyqqbsGxUCBqWif9RSK4xjzRTe56iPeiSJJOIciMP9i2ld +I+KgLycyeDvGoBj0HCLO3gVaBe4ubVrj5KjhX2PVNEJd3XZRzaXZE2aAMQ== +=AmgT +-----END PGP PUBLIC KEY BLOCK-----` + +const rsa2048PrivateKey = `-----BEGIN PGP PRIVATE KEY BLOCK----- +Comment: gpg (GnuPG) 2.2.27 with libgcrypt 1.9.4 + +lQPGBGL07P0BCADL0etN8efyAXA6sL2WfQvHe5wEKYXPWeN2+jiqSppfeRZAOlzP +kZ3U+cloeJriplYvVJwI3ID2aw52Z/TRn8iKRP5eOUFrEgcgl06lazLtOndK7o7p +oBV5mLtHEirFHm6W61fNt10jzM0jx0PV6nseLhFB2J42F1cmU/aBgFo41wjLSZYr +owR+v+O9S5sUXblQF6sEDcY01sBEu09zrIgT49VFwQ1Cvdh9XZEOTQBfdiugoj5a +DS3fAqAka3r1VoQK4eR7/upnYSgSACGeaQ4pUelKku5rpm50gdWTY8ppq0k9e1eT +y2x0OQcW3hWE+j4os1ca0ZEADMdqr/99MOxrABEBAAH+BwMCJWxU4VOZOJ7/I6vX +FxdfBhIBEXlJ52FM3S/oYtXqLhkGyrtmZOeEazVvUtuCe3M3ScHI8xCthcmE8E0j +bi+ZEHPS2NiBZtgHFF27BLn7zZuTc+oD5WKduZdK3463egnyThTqIIMl25WZBuab +k5ycwYrWwBH0jfA4gwJ13ai4pufKC2RM8qIu6YAVPglYBKFLKGvvJHa5vI+LuA0E +K+k35hIic7yVUcQneNnAF2598X5yWiieYnOZpmHlRw1zfbMwOJr3ZNj2v94u7b+L +sTa/1Uv9887Vb6sJp0c2Sh4cwEccoPYkvMqFn3ZrJUr3UdDu1K2vWohPtswzhrYV ++RdPZE5RLoCQufKvlPezk0Pzhzb3bBU7XjUbdGY1nH/EyQeBNp+Gw6qldKvzcBaB +cyOK1c6hPSszpJX93m5UxCN55IeifmcNjmbDh8vGCCdajy6d56qV2n4F3k7vt1J1 +0UlxIGhqijJoaTCX66xjLMC6VXkSz6aHQ35rnXosm/cqPcQshsZTdlfSyWkorfdr +4Hj8viBER26mjYurTMLBKDtUN724ZrR0Ev5jorX9uoKlgl87bDZHty2Ku2S+vR68 +VAvnj6Fi1BYNclnDoqxdRB2z5T9JbWE52HuG83/QsplhEqXxESDxriTyTHMbNxEe +88soVCDh4tgflZFa2ucUr6gEKJKij7jgahARnyaXfPZlQBUAS1YUeILYmN+VR+M/ +sHENpwDWc7TInn8VN638nJV+ScZGMih3AwWZTIoiLju3MMt1K0YZ3NuiqwGH4Jwg +/BbEdTWeCci9y3NEQHQ3uZZ5p6j2CwFVlK11idemCMvAiTVxF+gKdaLMkeCwKxru +J3YzhKEo+iDVYbPYBYizx/EHBn2U5kITQ5SBXzjTaaFMNZJEf9JYsL1ybPB6HOFY +VNVB2KT8CGVwtCJHb2xhbmcgR29waGVyIDxnb2xhbmdAZXhhbXBsZS5vcmc+iQFO +BBMBCgA4FiEEC6K7U7f4qesybTnqSkra7gHusm0FAmL07P0CGwMFCwkIBwIGFQoJ +CAsCBBYCAwECHgECF4AACgkQSkra7gHusm1MvwgAxpClWkeSqIhMQfbiuz0+lOkE +89y1DCFw8bHjZoUf4/4K8hFA3dGkk+q72XFgiyaCpfXxMt6Gi+dN47t+tTv9NIqC +sukbaoJBmJDhN6+djmJOgOYy+FWsW2LAk2LOwKYulpnBZdcA5rlMAhBg7gevQpF+ +ruSU69P7UUaFJl/DC7hDmaIcj+4cjBE/HO26SnVQjoTfjZT82rDh1Wsuf8LnkJUk +b3wezBLpXKjDvdHikdv4gdlR4AputVM38aZntYYglh/EASo5TneyZ7ZscdLNRdcF +r5O2fKqrOJLOdaoYRFZZWOvP5GtEVFDU7WGivOSVfiszBE0wZR3dgZRJipHCXJ0D +xgRi9Oz9AQgAtMJcJqLLVANJHl90tWuoizDkm+Imcwq2ubQAjpclnNrODnDK+7o4 +pBsWmXbZSdkC4gY+LhOQA6bPDD0JEHM58DOnrm49BddxXAyK0HPsk4sGGt2SS86B +OawWNdfJVyqw4bAiHWDmQg4PcjBbt3ocOIxAR6I5kBSiQVxuGQs9T+Zvg3G1r3Or +fS6DzlgY3HFUML5YsGH4lOxNSOoKAP68GIH/WNdUZ+feiRg9knIib6I3Hgtf5eO8 +JRH7aWE/TD7eNu36bLLjT5TZPq5r6xaD2plbtPOyXbNPWs9qI1yG+VnErfaLY0w8 +Qo0aqzbgID+CTZVomXSOpOcQseaFKw8ZfQARAQAB/gcDArha6+/+d4OY/w9N32K9 +hFNYt4LufTETMQ+k/sBeaMuAVzmT47DlAXzkrZhGW4dZOtXMu1rXaUwHlqkhEyzL +L4MYEWVXfD+LbZNEK3MEFss6RK+UAMeT/PTV9aA8cXQVPcSJYzfBXHQ1U1hnOgrO +apn92MN8RmkhX8wJLyeWTMMuP4lXByJMmmGo8WvifeRD2kFY4y0WVBDAXJAV4Ljf +Di/bBiwoc5a+gxHuZT2W9ZSxBQJNXdt4Un2IlyZuo58s5MLx2N0EaNJ8PwRUE6fM +RZYO8aZCEPUtINE4njbvsWOMCtrblsMPwZ1B0SiIaWmLaNyGdCNKea+fCIW7kasC +JYMhnLumpUTXg5HNexkCsl7ABWj0PYBflOE61h8EjWpnQ7JBBVKS2ua4lMjwHRX7 +5o5yxym9k5UZNFdGoXVL7xpizCcdGawxTJvwhs3vBqu1ZWYCegOAZWDrOkCyhUpq +8uKMROZFbn+FwE+7tjt+v2ed62FVEvD6g4V3ThCA6mQqeOARfJWN8GZY8BDm8lht +crOXriUkrx+FlrgGtm2CkwjW5/9Xd7AhFpHnQdFeozOHyq1asNSgJF9sNi9Lz94W +skQSVRi0IExxSXYGI3Y0nnAZUe2BAQflYPJdEveSr3sKlUqXiETTA1VXsTPK3kOC +92CbLzj/Hz199jZvywwyu53I+GKMpF42rMq7zxr2oa61YWY4YE/GDezwwys/wLx/ +QpCW4X3ppI7wJjCSSqEV0baYZSSli1ayheS6dxi8QnSpX1Bmpz6gU7m/M9Sns+hl +J7ZvgpjCAiV7KJTjtclr5/S02zP78LTVkoTWoz/6MOTROwaP63VBUXX8pbJhf/vu +DLmNnDk8joMJxoDXWeNU0EnNl4hP7Z/jExRBOEO4oAnUf/Sf6gCWQhL5qcajtg6w +tGv7vx3f2IkBNgQYAQoAIBYhBAuiu1O3+KnrMm056kpK2u4B7rJtBQJi9Oz9AhsM +AAoJEEpK2u4B7rJt6lgIAMBWqP4BCOGnQXBbgJ0+ACVghpkFUXZTb/tXJc8UUvTM +8uov6k/RsqDGZrvhhufD7Wwt7j9v7dD7VPp7bPyjVWyimglQzWguTUUqLDGlstYH +5uYv1pzma0ZsAGNqFeGlTLsKOSGKFMH4rB2KfN2n51L8POvtp1y7GKZQbWIWneaB +cZr3BINU5GMvYYU7pAYcoR+mJPdJx5Up3Ocn+bn8Tu1sy9C/ArtCQucazGnoE9u1 +HhNLrh0CdzzX7TNH6TQ8LwPOvq0K5l/WqbN9lE0WBBhMv2HydxhluO8AhU+A5GqC +C+wET7nVDnhoOm/fstIeb7/LN7OYejKPeHdFBJEL9GA= +=u442 +-----END PGP PRIVATE KEY BLOCK-----` + +const curve25519PrivateKey = `-----BEGIN PGP PRIVATE KEY BLOCK----- +Comment: gpg (GnuPG) 2.2.27 with libgcrypt 1.9.4 + +lFgEYvTtQBYJKwYBBAHaRw8BAQdAxsNXLbrk5xOjpO24VhOMvQ0/F+JcyIkckMDH +X3FIGxcAAQDFOlunZWYuPsCx5JLp78vKqUTfgef9TGG4oD6I/Sa0zBMstCJHb2xh +bmcgR29waGVyIDxnb2xhbmdAZXhhbXBsZS5vcmc+iJAEExYIADgWIQSFQHEOazmo +h1ldII4MvfnLQ4JBNwUCYvTtQAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK +CRAMvfnLQ4JBN5yeAQCKdry8B5ScCPrev2+UByMCss7Sdu5RhomCFsHdNPLcKAEA +8ugei+1owHsV+3cGwWWzKk6sLa8ZN87i3SKuOGp9DQycXQRi9O1AEgorBgEEAZdV +AQUBAQdA5CubPp8l7lrVQ25h7Hx5XN2C8xanRnnpcjzEooCaEA0DAQgHAAD/Rpc+ +sOZUXrFk9HOWB1XU41LoWbDBoG8sP8RWAVYwD5AQRYh4BBgWCAAgFiEEhUBxDms5 +qIdZXSCODL35y0OCQTcFAmL07UACGwwACgkQDL35y0OCQTcvdwEA7lb5g/YisrEf +iq660uwMGoepLUfvtqKzuQ6heYe83y0BAN65Ffg5HYOJzUEi0kZQRf7OhdtuL2kJ +SRXn8DmCTfEB +=cELM +-----END PGP PRIVATE KEY BLOCK-----` + +const curve448PrivateKey = `-----BEGIN PGP PRIVATE KEY BLOCK----- +Comment: C1DB 65D5 80D7 B922 7254 4B1E A699 9895 FABA CE52 + +xYUEYV2UmRYDK2VxAc9AFyxgh5xnSbyt50TWl558mw9xdMN+/UBLr5+UMP8IsrvV +MdXuTIE8CyaUQKSotHtH2RkYEXj5nsMAAAHPQIbTMSzjIWug8UFECzAex5FHgAgH +gYF3RK+TS8D24wX8kOu2C/NoVxwGY+p+i0JHaB+7yljriSKAGxs6wsBEBB8WCgCD +BYJhXZSZBYkFpI+9AwsJBwkQppmYlfq6zlJHFAAAAAAAHgAgc2FsdEBub3RhdGlv +bnMuc2VxdW9pYS1wZ3Aub3Jn5wSpIutJ5HncJWk4ruUV8GzQF390rR5+qWEAnAoY +akcDFQoIApsBAh4BFiEEwdtl1YDXuSJyVEseppmYlfq6zlIAALzdA5dA/fsgYg/J +qaQriYKaPUkyHL7EB3BXhV2d1h/gk+qJLvXQuU2WEJ/XSs3GrsBRiiZwvPH4o+7b +mleAxjy5wpS523vqrrBR2YZ5FwIku7WS4litSdn4AtVam/TlLdMNIf41CtFeZKBe +c5R5VNdQy8y7qy8AAADNEUN1cnZlNDQ4IE9wdGlvbiA4wsBHBBMWCgCGBYJhXZSZ +BYkFpI+9AwsJBwkQppmYlfq6zlJHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2Vx +dW9pYS1wZ3Aub3JnD55UsYMzE6OACP+mgw5zvT+BBgol8/uFQjHg4krjUCMDFQoI +ApkBApsBAh4BFiEEwdtl1YDXuSJyVEseppmYlfq6zlIAAPQJA5dA0Xqwzn/0uwCq +RlsOVCB3f5NOj1exKnlBvRw0xT1VBee1yxvlUt5eIAoCxWoRlWBJob3TTkhm9AEA +8dyhwPmyGfWHzPw5NFG3xsXrZdNXNvit9WMVAPcmsyR7teXuDlJItxRAdJJc/qfJ +YVbBFoaNrhYAAADHhQRhXZSZFgMrZXEBz0BL7THZ9MnCLfSPJ1FMLim9eGkQ3Bfn +M3he5rOwO3t14QI1LjI96OjkeJipMgcFAmEP1Bq/ZHGO7oAAAc9AFnE8iNBaT3OU +EFtxkmWHXtdaYMmGGRdopw9JPXr/UxuunDln5o9dxPxf7q7z26zXrZen+qed/Isa +HsDCwSwEGBYKAWsFgmFdlJkFiQWkj70JEKaZmJX6us5SRxQAAAAAAB4AIHNhbHRA +bm90YXRpb25zLnNlcXVvaWEtcGdwLm9yZxREUizdTcepBzgSMOv2VWQCWbl++3CZ +EbgAWDryvSsyApsCwDGgBBkWCgBvBYJhXZSZCRBKo3SL4S5djkcUAAAAAAAeACBz +YWx0QG5vdGF0aW9ucy5zZXF1b2lhLXBncC5vcmemoGTDjmNQiIzw6HOEddvS0OB7 +UZ/P07jM/EVmnYxTlBYhBAxsnkGpx1UCiH6gUUqjdIvhLl2OAAALYQOXQAMB1oKq +OWxSFmvmgCKNcbAAyA3piF5ERIqs4z07oJvqDYrOWt75UsEIH/04gU/vHc4EmfG2 +JDLJgOLlyTUPkL/08f0ydGZPofFQBhn8HkuFFjnNtJ5oz3GIP4cdWMQFaUw0uvjb +PM9Tm3ptENGd6Ts1AAAAFiEEwdtl1YDXuSJyVEseppmYlfq6zlIAAGpTA5dATR6i +U2GrpUcQgpG+JqfAsGmF4yAOhgFxc1UfidFk3nTup3fLgjipkYY170WLRNbyKkVO +Sodx93GAs58rizO1acDAWiLq3cyEPBFXbyFThbcNPcLl+/77Uk/mgkYrPQFAQWdK +1kSRm4SizDBK37K8ChAAAADHhwRhXZSZEgMrZW8Bx0DMhzvhQo+OsXeqQ6QVw4sF +CaexHh6rLohh7TzL3hQSjoJ27fV6JBkIWdn0LfrMlJIDbSv2SLdlgQMBCgkAAcdA +MO7Dc1myF6Co1fAH+EuP+OxhxP/7V6ljuSCZENDfA49tQkzTta+PniG+pOVB2LHb +huyaKBkqiaogo8LAOQQYFgoAeAWCYV2UmQWJBaSPvQkQppmYlfq6zlJHFAAAAAAA +HgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JnEjBMQAmc/2u45u5FQGmB +QAytjSG2LM3JQN+PPVl5vEkCmwwWIQTB22XVgNe5InJUSx6mmZiV+rrOUgAASdYD +l0DXEHQ9ykNP2rZP35ET1dmiFagFtTj/hLQcWlg16LqvJNGqOgYXuqTerbiOOt02 +XLCBln+wdewpU4ChEffMUDRBfqfQco/YsMqWV7bHJHAO0eC/DMKCjyU90xdH7R/d +QgqsfguR1PqPuJxpXV4bSr6CGAAAAA== +=MSvh +-----END PGP PRIVATE KEY BLOCK-----` + +const keyWithNotation = `-----BEGIN PGP PRIVATE KEY BLOCK----- + +xVgEY9gIshYJKwYBBAHaRw8BAQdAF25fSM8OpFlXZhop4Qpqo5ywGZ4jgWlR +ppjhIKDthREAAQC+LFpzFcMJYcjxGKzBGHN0Px2jU4d04YSRnFAik+lVVQ6u +zRdUZXN0IDx0ZXN0QGV4YW1wbGUuY29tPsLACgQQFgoAfAUCY9gIsgQLCQcI +CRD/utJOCym8pR0UgAAAAAAQAAR0ZXh0QGV4YW1wbGUuY29tdGVzdB8UAAAA +AAASAARiaW5hcnlAZXhhbXBsZS5jb20AAQIDAxUICgQWAAIBAhkBAhsDAh4B +FiEEEMCQTUVGKgCX5rDQ/7rSTgspvKUAAPl5AP9Npz90LxzrB97Qr2DrGwfG +wuYn4FSYwtuPfZHHeoIabwD/QEbvpQJ/NBb9EAZuow4Rirlt1yv19mmnF+j5 +8yUzhQjHXQRj2AiyEgorBgEEAZdVAQUBAQdARXAo30DmKcyUg6co7OUm0RNT +z9iqFbDBzA8A47JEt1MDAQgHAAD/XKK3lBm0SqMR558HLWdBrNG6NqKuqb5X +joCML987ZNgRD8J4BBgWCAAqBQJj2AiyCRD/utJOCym8pQIbDBYhBBDAkE1F +RioAl+aw0P+60k4LKbylAADRxgEAg7UfBDiDPp5LHcW9D+SgFHk6+GyEU4ev +VppQxdtxPvAA/34snHBX7Twnip1nMt7P4e2hDiw/hwQ7oqioOvc6jMkP +=Z8YJ +-----END PGP PRIVATE KEY BLOCK----- +` diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_config.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_config.go new file mode 100644 index 000000000000..fec41a0e73f7 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_config.go @@ -0,0 +1,67 @@ +// Copyright (C) 2019 ProtonTech AG + +package packet + +import "math/bits" + +// CipherSuite contains a combination of Cipher and Mode +type CipherSuite struct { + // The cipher function + Cipher CipherFunction + // The AEAD mode of operation. + Mode AEADMode +} + +// AEADConfig collects a number of AEAD parameters along with sensible defaults. +// A nil AEADConfig is valid and results in all default values. +type AEADConfig struct { + // The AEAD mode of operation. + DefaultMode AEADMode + // Amount of octets in each chunk of data + ChunkSize uint64 +} + +// Mode returns the AEAD mode of operation. +func (conf *AEADConfig) Mode() AEADMode { + // If no preference is specified, OCB is used (which is mandatory to implement). + if conf == nil || conf.DefaultMode == 0 { + return AEADModeOCB + } + + mode := conf.DefaultMode + if mode != AEADModeEAX && mode != AEADModeOCB && mode != AEADModeGCM { + panic("AEAD mode unsupported") + } + return mode +} + +// ChunkSizeByte returns the byte indicating the chunk size. The effective +// chunk size is computed with the formula uint64(1) << (chunkSizeByte + 6) +// limit to 16 = 4 MiB +// https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-5.13.2 +func (conf *AEADConfig) ChunkSizeByte() byte { + if conf == nil || conf.ChunkSize == 0 { + return 12 // 1 << (12 + 6) == 262144 bytes + } + + chunkSize := conf.ChunkSize + exponent := bits.Len64(chunkSize) - 1 + switch { + case exponent < 6: + exponent = 6 + case exponent > 16: + exponent = 16 + } + + return byte(exponent - 6) +} + +// decodeAEADChunkSize returns the effective chunk size. In 32-bit systems, the +// maximum returned value is 1 << 30. +func decodeAEADChunkSize(c byte) int { + size := uint64(1 << (c + 6)) + if size != uint64(int(size)) { + return 1 << 30 + } + return int(size) +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_crypter.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_crypter.go new file mode 100644 index 000000000000..cee83bdc7a17 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_crypter.go @@ -0,0 +1,264 @@ +// Copyright (C) 2019 ProtonTech AG + +package packet + +import ( + "bytes" + "crypto/cipher" + "encoding/binary" + "io" + + "github.com/ProtonMail/go-crypto/openpgp/errors" +) + +// aeadCrypter is an AEAD opener/sealer, its configuration, and data for en/decryption. +type aeadCrypter struct { + aead cipher.AEAD + chunkSize int + initialNonce []byte + associatedData []byte // Chunk-independent associated data + chunkIndex []byte // Chunk counter + packetTag packetType // SEIP packet (v2) or AEAD Encrypted Data packet + bytesProcessed int // Amount of plaintext bytes encrypted/decrypted + buffer bytes.Buffer // Buffered bytes across chunks +} + +// computeNonce takes the incremental index and computes an eXclusive OR with +// the least significant 8 bytes of the receivers' initial nonce (see sec. +// 5.16.1 and 5.16.2). It returns the resulting nonce. +func (wo *aeadCrypter) computeNextNonce() (nonce []byte) { + if wo.packetTag == packetTypeSymmetricallyEncryptedIntegrityProtected { + return append(wo.initialNonce, wo.chunkIndex...) + } + + nonce = make([]byte, len(wo.initialNonce)) + copy(nonce, wo.initialNonce) + offset := len(wo.initialNonce) - 8 + for i := 0; i < 8; i++ { + nonce[i+offset] ^= wo.chunkIndex[i] + } + return +} + +// incrementIndex performs an integer increment by 1 of the integer represented by the +// slice, modifying it accordingly. +func (wo *aeadCrypter) incrementIndex() error { + index := wo.chunkIndex + if len(index) == 0 { + return errors.AEADError("Index has length 0") + } + for i := len(index) - 1; i >= 0; i-- { + if index[i] < 255 { + index[i]++ + return nil + } + index[i] = 0 + } + return errors.AEADError("cannot further increment index") +} + +// aeadDecrypter reads and decrypts bytes. It buffers extra decrypted bytes when +// necessary, similar to aeadEncrypter. +type aeadDecrypter struct { + aeadCrypter // Embedded ciphertext opener + reader io.Reader // 'reader' is a partialLengthReader + peekedBytes []byte // Used to detect last chunk + eof bool +} + +// Read decrypts bytes and reads them into dst. It decrypts when necessary and +// buffers extra decrypted bytes. It returns the number of bytes copied into dst +// and an error. +func (ar *aeadDecrypter) Read(dst []byte) (n int, err error) { + // Return buffered plaintext bytes from previous calls + if ar.buffer.Len() > 0 { + return ar.buffer.Read(dst) + } + + // Return EOF if we've previously validated the final tag + if ar.eof { + return 0, io.EOF + } + + // Read a chunk + tagLen := ar.aead.Overhead() + cipherChunkBuf := new(bytes.Buffer) + _, errRead := io.CopyN(cipherChunkBuf, ar.reader, int64(ar.chunkSize+tagLen)) + cipherChunk := cipherChunkBuf.Bytes() + if errRead != nil && errRead != io.EOF { + return 0, errRead + } + decrypted, errChunk := ar.openChunk(cipherChunk) + if errChunk != nil { + return 0, errChunk + } + + // Return decrypted bytes, buffering if necessary + if len(dst) < len(decrypted) { + n = copy(dst, decrypted[:len(dst)]) + ar.buffer.Write(decrypted[len(dst):]) + } else { + n = copy(dst, decrypted) + } + + // Check final authentication tag + if errRead == io.EOF { + errChunk := ar.validateFinalTag(ar.peekedBytes) + if errChunk != nil { + return n, errChunk + } + ar.eof = true // Mark EOF for when we've returned all buffered data + } + return +} + +// Close is noOp. The final authentication tag of the stream was already +// checked in the last Read call. In the future, this function could be used to +// wipe the reader and peeked, decrypted bytes, if necessary. +func (ar *aeadDecrypter) Close() (err error) { + return nil +} + +// openChunk decrypts and checks integrity of an encrypted chunk, returning +// the underlying plaintext and an error. It accesses peeked bytes from next +// chunk, to identify the last chunk and decrypt/validate accordingly. +func (ar *aeadDecrypter) openChunk(data []byte) ([]byte, error) { + tagLen := ar.aead.Overhead() + // Restore carried bytes from last call + chunkExtra := append(ar.peekedBytes, data...) + // 'chunk' contains encrypted bytes, followed by an authentication tag. + chunk := chunkExtra[:len(chunkExtra)-tagLen] + ar.peekedBytes = chunkExtra[len(chunkExtra)-tagLen:] + + adata := ar.associatedData + if ar.aeadCrypter.packetTag == packetTypeAEADEncrypted { + adata = append(ar.associatedData, ar.chunkIndex...) + } + + nonce := ar.computeNextNonce() + plainChunk, err := ar.aead.Open(nil, nonce, chunk, adata) + if err != nil { + return nil, err + } + ar.bytesProcessed += len(plainChunk) + if err = ar.aeadCrypter.incrementIndex(); err != nil { + return nil, err + } + return plainChunk, nil +} + +// Checks the summary tag. It takes into account the total decrypted bytes into +// the associated data. It returns an error, or nil if the tag is valid. +func (ar *aeadDecrypter) validateFinalTag(tag []byte) error { + // Associated: tag, version, cipher, aead, chunk size, ... + amountBytes := make([]byte, 8) + binary.BigEndian.PutUint64(amountBytes, uint64(ar.bytesProcessed)) + + adata := ar.associatedData + if ar.aeadCrypter.packetTag == packetTypeAEADEncrypted { + // ... index ... + adata = append(ar.associatedData, ar.chunkIndex...) + } + + // ... and total number of encrypted octets + adata = append(adata, amountBytes...) + nonce := ar.computeNextNonce() + _, err := ar.aead.Open(nil, nonce, tag, adata) + if err != nil { + return err + } + return nil +} + +// aeadEncrypter encrypts and writes bytes. It encrypts when necessary according +// to the AEAD block size, and buffers the extra encrypted bytes for next write. +type aeadEncrypter struct { + aeadCrypter // Embedded plaintext sealer + writer io.WriteCloser // 'writer' is a partialLengthWriter +} + +// Write encrypts and writes bytes. It encrypts when necessary and buffers extra +// plaintext bytes for next call. When the stream is finished, Close() MUST be +// called to append the final tag. +func (aw *aeadEncrypter) Write(plaintextBytes []byte) (n int, err error) { + // Append plaintextBytes to existing buffered bytes + n, err = aw.buffer.Write(plaintextBytes) + if err != nil { + return n, err + } + // Encrypt and write chunks + for aw.buffer.Len() >= aw.chunkSize { + plainChunk := aw.buffer.Next(aw.chunkSize) + encryptedChunk, err := aw.sealChunk(plainChunk) + if err != nil { + return n, err + } + _, err = aw.writer.Write(encryptedChunk) + if err != nil { + return n, err + } + } + return +} + +// Close encrypts and writes the remaining buffered plaintext if any, appends +// the final authentication tag, and closes the embedded writer. This function +// MUST be called at the end of a stream. +func (aw *aeadEncrypter) Close() (err error) { + // Encrypt and write a chunk if there's buffered data left, or if we haven't + // written any chunks yet. + if aw.buffer.Len() > 0 || aw.bytesProcessed == 0 { + plainChunk := aw.buffer.Bytes() + lastEncryptedChunk, err := aw.sealChunk(plainChunk) + if err != nil { + return err + } + _, err = aw.writer.Write(lastEncryptedChunk) + if err != nil { + return err + } + } + // Compute final tag (associated data: packet tag, version, cipher, aead, + // chunk size... + adata := aw.associatedData + + if aw.aeadCrypter.packetTag == packetTypeAEADEncrypted { + // ... index ... + adata = append(aw.associatedData, aw.chunkIndex...) + } + + // ... and total number of encrypted octets + amountBytes := make([]byte, 8) + binary.BigEndian.PutUint64(amountBytes, uint64(aw.bytesProcessed)) + adata = append(adata, amountBytes...) + + nonce := aw.computeNextNonce() + finalTag := aw.aead.Seal(nil, nonce, nil, adata) + _, err = aw.writer.Write(finalTag) + if err != nil { + return err + } + return aw.writer.Close() +} + +// sealChunk Encrypts and authenticates the given chunk. +func (aw *aeadEncrypter) sealChunk(data []byte) ([]byte, error) { + if len(data) > aw.chunkSize { + return nil, errors.AEADError("chunk exceeds maximum length") + } + if aw.associatedData == nil { + return nil, errors.AEADError("can't seal without headers") + } + adata := aw.associatedData + if aw.aeadCrypter.packetTag == packetTypeAEADEncrypted { + adata = append(aw.associatedData, aw.chunkIndex...) + } + + nonce := aw.computeNextNonce() + encrypted := aw.aead.Seal(nil, nonce, data, adata) + aw.bytesProcessed += len(data) + if err := aw.aeadCrypter.incrementIndex(); err != nil { + return nil, err + } + return encrypted, nil +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_encrypted.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_encrypted.go new file mode 100644 index 000000000000..98bd876bf29b --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_encrypted.go @@ -0,0 +1,96 @@ +// Copyright (C) 2019 ProtonTech AG + +package packet + +import ( + "io" + + "github.com/ProtonMail/go-crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" +) + +// AEADEncrypted represents an AEAD Encrypted Packet. +// See https://www.ietf.org/archive/id/draft-koch-openpgp-2015-rfc4880bis-00.html#name-aead-encrypted-data-packet-t +type AEADEncrypted struct { + cipher CipherFunction + mode AEADMode + chunkSizeByte byte + Contents io.Reader // Encrypted chunks and tags + initialNonce []byte // Referred to as IV in RFC4880-bis +} + +// Only currently defined version +const aeadEncryptedVersion = 1 + +func (ae *AEADEncrypted) parse(buf io.Reader) error { + headerData := make([]byte, 4) + if n, err := io.ReadFull(buf, headerData); n < 4 { + return errors.AEADError("could not read aead header:" + err.Error()) + } + // Read initial nonce + mode := AEADMode(headerData[2]) + nonceLen := mode.IvLength() + + // This packet supports only EAX and OCB + // https://www.ietf.org/archive/id/draft-koch-openpgp-2015-rfc4880bis-00.html#name-aead-encrypted-data-packet-t + if nonceLen == 0 || mode > AEADModeOCB { + return errors.AEADError("unknown mode") + } + + initialNonce := make([]byte, nonceLen) + if n, err := io.ReadFull(buf, initialNonce); n < nonceLen { + return errors.AEADError("could not read aead nonce:" + err.Error()) + } + ae.Contents = buf + ae.initialNonce = initialNonce + c := headerData[1] + if _, ok := algorithm.CipherById[c]; !ok { + return errors.UnsupportedError("unknown cipher: " + string(c)) + } + ae.cipher = CipherFunction(c) + ae.mode = mode + ae.chunkSizeByte = headerData[3] + return nil +} + +// Decrypt returns a io.ReadCloser from which decrypted bytes can be read, or +// an error. +func (ae *AEADEncrypted) Decrypt(ciph CipherFunction, key []byte) (io.ReadCloser, error) { + return ae.decrypt(key) +} + +// decrypt prepares an aeadCrypter and returns a ReadCloser from which +// decrypted bytes can be read (see aeadDecrypter.Read()). +func (ae *AEADEncrypted) decrypt(key []byte) (io.ReadCloser, error) { + blockCipher := ae.cipher.new(key) + aead := ae.mode.new(blockCipher) + // Carry the first tagLen bytes + tagLen := ae.mode.TagLength() + peekedBytes := make([]byte, tagLen) + n, err := io.ReadFull(ae.Contents, peekedBytes) + if n < tagLen || (err != nil && err != io.EOF) { + return nil, errors.AEADError("Not enough data to decrypt:" + err.Error()) + } + chunkSize := decodeAEADChunkSize(ae.chunkSizeByte) + return &aeadDecrypter{ + aeadCrypter: aeadCrypter{ + aead: aead, + chunkSize: chunkSize, + initialNonce: ae.initialNonce, + associatedData: ae.associatedData(), + chunkIndex: make([]byte, 8), + packetTag: packetTypeAEADEncrypted, + }, + reader: ae.Contents, + peekedBytes: peekedBytes}, nil +} + +// associatedData for chunks: tag, version, cipher, mode, chunk size byte +func (ae *AEADEncrypted) associatedData() []byte { + return []byte{ + 0xD4, + aeadEncryptedVersion, + byte(ae.cipher), + byte(ae.mode), + ae.chunkSizeByte} +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/compressed.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/compressed.go similarity index 95% rename from vendor/golang.org/x/crypto/openpgp/packet/compressed.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/packet/compressed.go index 353f945247cf..2f5cad71dab7 100644 --- a/vendor/golang.org/x/crypto/openpgp/packet/compressed.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/compressed.go @@ -8,7 +8,7 @@ import ( "compress/bzip2" "compress/flate" "compress/zlib" - "golang.org/x/crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/errors" "io" "strconv" ) @@ -47,6 +47,8 @@ func (c *Compressed) parse(r io.Reader) error { } switch buf[0] { + case 0: + c.Body = r case 1: c.Body = flate.NewReader(r) case 2: @@ -60,7 +62,7 @@ func (c *Compressed) parse(r io.Reader) error { return err } -// compressedWriteCloser represents the serialized compression stream +// compressedWriterCloser represents the serialized compression stream // header and the compressor. Its Close() method ensures that both the // compressor and serialized stream header are closed. Its Write() // method writes to the compressor. diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config.go new file mode 100644 index 000000000000..04994bec97ba --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config.go @@ -0,0 +1,248 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "crypto" + "crypto/rand" + "io" + "math/big" + "time" + + "github.com/ProtonMail/go-crypto/openpgp/s2k" +) + +// Config collects a number of parameters along with sensible defaults. +// A nil *Config is valid and results in all default values. +type Config struct { + // Rand provides the source of entropy. + // If nil, the crypto/rand Reader is used. + Rand io.Reader + // DefaultHash is the default hash function to be used. + // If zero, SHA-256 is used. + DefaultHash crypto.Hash + // DefaultCipher is the cipher to be used. + // If zero, AES-128 is used. + DefaultCipher CipherFunction + // Time returns the current time as the number of seconds since the + // epoch. If Time is nil, time.Now is used. + Time func() time.Time + // DefaultCompressionAlgo is the compression algorithm to be + // applied to the plaintext before encryption. If zero, no + // compression is done. + DefaultCompressionAlgo CompressionAlgo + // CompressionConfig configures the compression settings. + CompressionConfig *CompressionConfig + // S2K (String to Key) config, used for key derivation in the context of secret key encryption + // and password-encrypted data. + // If nil, the default configuration is used + S2KConfig *s2k.Config + // Iteration count for Iterated S2K (String to Key). + // Only used if sk2.Mode is nil. + // This value is duplicated here from s2k.Config for backwards compatibility. + // It determines the strength of the passphrase stretching when + // the said passphrase is hashed to produce a key. S2KCount + // should be between 65536 and 65011712, inclusive. If Config + // is nil or S2KCount is 0, the value 16777216 used. Not all + // values in the above range can be represented. S2KCount will + // be rounded up to the next representable value if it cannot + // be encoded exactly. When set, it is strongly encrouraged to + // use a value that is at least 65536. See RFC 4880 Section + // 3.7.1.3. + // + // Deprecated: SK2Count should be configured in S2KConfig instead. + S2KCount int + // RSABits is the number of bits in new RSA keys made with NewEntity. + // If zero, then 2048 bit keys are created. + RSABits int + // The public key algorithm to use - will always create a signing primary + // key and encryption subkey. + Algorithm PublicKeyAlgorithm + // Some known primes that are optionally prepopulated by the caller + RSAPrimes []*big.Int + // Curve configures the desired packet.Curve if the Algorithm is PubKeyAlgoECDSA, + // PubKeyAlgoEdDSA, or PubKeyAlgoECDH. If empty Curve25519 is used. + Curve Curve + // AEADConfig configures the use of the new AEAD Encrypted Data Packet, + // defined in the draft of the next version of the OpenPGP specification. + // If a non-nil AEADConfig is passed, usage of this packet is enabled. By + // default, it is disabled. See the documentation of AEADConfig for more + // configuration options related to AEAD. + // **Note: using this option may break compatibility with other OpenPGP + // implementations, as well as future versions of this library.** + AEADConfig *AEADConfig + // V5Keys configures version 5 key generation. If false, this package still + // supports version 5 keys, but produces version 4 keys. + V5Keys bool + // "The validity period of the key. This is the number of seconds after + // the key creation time that the key expires. If this is not present + // or has a value of zero, the key never expires. This is found only on + // a self-signature."" + // https://tools.ietf.org/html/rfc4880#section-5.2.3.6 + KeyLifetimeSecs uint32 + // "The validity period of the signature. This is the number of seconds + // after the signature creation time that the signature expires. If + // this is not present or has a value of zero, it never expires." + // https://tools.ietf.org/html/rfc4880#section-5.2.3.10 + SigLifetimeSecs uint32 + // SigningKeyId is used to specify the signing key to use (by Key ID). + // By default, the signing key is selected automatically, preferring + // signing subkeys if available. + SigningKeyId uint64 + // SigningIdentity is used to specify a user ID (packet Signer's User ID, type 28) + // when producing a generic certification signature onto an existing user ID. + // The identity must be present in the signer Entity. + SigningIdentity string + // InsecureAllowUnauthenticatedMessages controls, whether it is tolerated to read + // encrypted messages without Modification Detection Code (MDC). + // MDC is mandated by the IETF OpenPGP Crypto Refresh draft and has long been implemented + // in most OpenPGP implementations. Messages without MDC are considered unnecessarily + // insecure and should be prevented whenever possible. + // In case one needs to deal with messages from very old OpenPGP implementations, there + // might be no other way than to tolerate the missing MDC. Setting this flag, allows this + // mode of operation. It should be considered a measure of last resort. + InsecureAllowUnauthenticatedMessages bool + // KnownNotations is a map of Notation Data names to bools, which controls + // the notation names that are allowed to be present in critical Notation Data + // signature subpackets. + KnownNotations map[string]bool + // SignatureNotations is a list of Notations to be added to any signatures. + SignatureNotations []*Notation +} + +func (c *Config) Random() io.Reader { + if c == nil || c.Rand == nil { + return rand.Reader + } + return c.Rand +} + +func (c *Config) Hash() crypto.Hash { + if c == nil || uint(c.DefaultHash) == 0 { + return crypto.SHA256 + } + return c.DefaultHash +} + +func (c *Config) Cipher() CipherFunction { + if c == nil || uint8(c.DefaultCipher) == 0 { + return CipherAES128 + } + return c.DefaultCipher +} + +func (c *Config) Now() time.Time { + if c == nil || c.Time == nil { + return time.Now().Truncate(time.Second) + } + return c.Time().Truncate(time.Second) +} + +// KeyLifetime returns the validity period of the key. +func (c *Config) KeyLifetime() uint32 { + if c == nil { + return 0 + } + return c.KeyLifetimeSecs +} + +// SigLifetime returns the validity period of the signature. +func (c *Config) SigLifetime() uint32 { + if c == nil { + return 0 + } + return c.SigLifetimeSecs +} + +func (c *Config) Compression() CompressionAlgo { + if c == nil { + return CompressionNone + } + return c.DefaultCompressionAlgo +} + +func (c *Config) RSAModulusBits() int { + if c == nil || c.RSABits == 0 { + return 2048 + } + return c.RSABits +} + +func (c *Config) PublicKeyAlgorithm() PublicKeyAlgorithm { + if c == nil || c.Algorithm == 0 { + return PubKeyAlgoRSA + } + return c.Algorithm +} + +func (c *Config) CurveName() Curve { + if c == nil || c.Curve == "" { + return Curve25519 + } + return c.Curve +} + +// Deprecated: The hash iterations should now be queried via the S2K() method. +func (c *Config) PasswordHashIterations() int { + if c == nil || c.S2KCount == 0 { + return 0 + } + return c.S2KCount +} + +func (c *Config) S2K() *s2k.Config { + if c == nil { + return nil + } + // for backwards compatibility + if c != nil && c.S2KCount > 0 && c.S2KConfig == nil { + return &s2k.Config{ + S2KCount: c.S2KCount, + } + } + return c.S2KConfig +} + +func (c *Config) AEAD() *AEADConfig { + if c == nil { + return nil + } + return c.AEADConfig +} + +func (c *Config) SigningKey() uint64 { + if c == nil { + return 0 + } + return c.SigningKeyId +} + +func (c *Config) SigningUserId() string { + if c == nil { + return "" + } + return c.SigningIdentity +} + +func (c *Config) AllowUnauthenticatedMessages() bool { + if c == nil { + return false + } + return c.InsecureAllowUnauthenticatedMessages +} + +func (c *Config) KnownNotation(notationName string) bool { + if c == nil { + return false + } + return c.KnownNotations[notationName] +} + +func (c *Config) Notations() []*Notation { + if c == nil { + return nil + } + return c.SignatureNotations +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/encrypted_key.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/encrypted_key.go similarity index 57% rename from vendor/golang.org/x/crypto/openpgp/packet/encrypted_key.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/packet/encrypted_key.go index 6d7639722c90..eeff2902c12c 100644 --- a/vendor/golang.org/x/crypto/openpgp/packet/encrypted_key.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/encrypted_key.go @@ -12,8 +12,10 @@ import ( "math/big" "strconv" - "golang.org/x/crypto/openpgp/elgamal" - "golang.org/x/crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/ecdh" + "github.com/ProtonMail/go-crypto/openpgp/elgamal" + "github.com/ProtonMail/go-crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/internal/encoding" ) const encryptedKeyVersion = 3 @@ -23,10 +25,10 @@ const encryptedKeyVersion = 3 type EncryptedKey struct { KeyId uint64 Algo PublicKeyAlgorithm - CipherFunc CipherFunction // only valid after a successful Decrypt + CipherFunc CipherFunction // only valid after a successful Decrypt for a v3 packet Key []byte // only valid after a successful Decrypt - encryptedMPI1, encryptedMPI2 parsedMPI + encryptedMPI1, encryptedMPI2 encoding.Field } func (e *EncryptedKey) parse(r io.Reader) (err error) { @@ -42,17 +44,28 @@ func (e *EncryptedKey) parse(r io.Reader) (err error) { e.Algo = PublicKeyAlgorithm(buf[9]) switch e.Algo { case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - e.encryptedMPI1.bytes, e.encryptedMPI1.bitLength, err = readMPI(r) - if err != nil { + e.encryptedMPI1 = new(encoding.MPI) + if _, err = e.encryptedMPI1.ReadFrom(r); err != nil { return } case PubKeyAlgoElGamal: - e.encryptedMPI1.bytes, e.encryptedMPI1.bitLength, err = readMPI(r) - if err != nil { + e.encryptedMPI1 = new(encoding.MPI) + if _, err = e.encryptedMPI1.ReadFrom(r); err != nil { return } - e.encryptedMPI2.bytes, e.encryptedMPI2.bitLength, err = readMPI(r) - if err != nil { + + e.encryptedMPI2 = new(encoding.MPI) + if _, err = e.encryptedMPI2.ReadFrom(r); err != nil { + return + } + case PubKeyAlgoECDH: + e.encryptedMPI1 = new(encoding.MPI) + if _, err = e.encryptedMPI1.ReadFrom(r); err != nil { + return + } + + e.encryptedMPI2 = new(encoding.OID) + if _, err = e.encryptedMPI2.ReadFrom(r); err != nil { return } } @@ -72,6 +85,16 @@ func checksumKeyMaterial(key []byte) uint16 { // private key must have been decrypted first. // If config is nil, sensible defaults will be used. func (e *EncryptedKey) Decrypt(priv *PrivateKey, config *Config) error { + if e.KeyId != 0 && e.KeyId != priv.KeyId { + return errors.InvalidArgumentError("cannot decrypt encrypted session key for key id " + strconv.FormatUint(e.KeyId, 16) + " with private key id " + strconv.FormatUint(priv.KeyId, 16)) + } + if e.Algo != priv.PubKeyAlgo { + return errors.InvalidArgumentError("cannot decrypt encrypted session key of type " + strconv.Itoa(int(e.Algo)) + " with private key of type " + strconv.Itoa(int(priv.PubKeyAlgo))) + } + if priv.Dummy() { + return errors.ErrDummyPrivateKey("dummy key found") + } + var err error var b []byte @@ -81,13 +104,18 @@ func (e *EncryptedKey) Decrypt(priv *PrivateKey, config *Config) error { case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: // Supports both *rsa.PrivateKey and crypto.Decrypter k := priv.PrivateKey.(crypto.Decrypter) - b, err = k.Decrypt(config.Random(), padToKeySize(k.Public().(*rsa.PublicKey), e.encryptedMPI1.bytes), nil) + b, err = k.Decrypt(config.Random(), padToKeySize(k.Public().(*rsa.PublicKey), e.encryptedMPI1.Bytes()), nil) case PubKeyAlgoElGamal: - c1 := new(big.Int).SetBytes(e.encryptedMPI1.bytes) - c2 := new(big.Int).SetBytes(e.encryptedMPI2.bytes) + c1 := new(big.Int).SetBytes(e.encryptedMPI1.Bytes()) + c2 := new(big.Int).SetBytes(e.encryptedMPI2.Bytes()) b, err = elgamal.Decrypt(priv.PrivateKey.(*elgamal.PrivateKey), c1, c2) + case PubKeyAlgoECDH: + vsG := e.encryptedMPI1.Bytes() + m := e.encryptedMPI2.Bytes() + oid := priv.PublicKey.oid.EncodedBytes() + b, err = ecdh.Decrypt(priv.PrivateKey.(*ecdh.PrivateKey), vsG, m, oid, priv.PublicKey.Fingerprint[:]) default: - err = errors.InvalidArgumentError("cannot decrypted encrypted session key with private key of type " + strconv.Itoa(int(priv.PubKeyAlgo))) + err = errors.InvalidArgumentError("cannot decrypt encrypted session key with private key of type " + strconv.Itoa(int(priv.PubKeyAlgo))) } if err != nil { @@ -95,6 +123,10 @@ func (e *EncryptedKey) Decrypt(priv *PrivateKey, config *Config) error { } e.CipherFunc = CipherFunction(b[0]) + if !e.CipherFunc.IsSupported() { + return errors.UnsupportedError("unsupported encryption function") + } + e.Key = b[1 : len(b)-2] expectedChecksum := uint16(b[len(b)-2])<<8 | uint16(b[len(b)-1]) checksum := checksumKeyMaterial(e.Key) @@ -110,14 +142,19 @@ func (e *EncryptedKey) Serialize(w io.Writer) error { var mpiLen int switch e.Algo { case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - mpiLen = 2 + len(e.encryptedMPI1.bytes) + mpiLen = int(e.encryptedMPI1.EncodedLength()) case PubKeyAlgoElGamal: - mpiLen = 2 + len(e.encryptedMPI1.bytes) + 2 + len(e.encryptedMPI2.bytes) + mpiLen = int(e.encryptedMPI1.EncodedLength()) + int(e.encryptedMPI2.EncodedLength()) + case PubKeyAlgoECDH: + mpiLen = int(e.encryptedMPI1.EncodedLength()) + int(e.encryptedMPI2.EncodedLength()) default: return errors.InvalidArgumentError("don't know how to serialize encrypted key type " + strconv.Itoa(int(e.Algo))) } - serializeHeader(w, packetTypeEncryptedKey, 1 /* version */ +8 /* key id */ +1 /* algo */ +mpiLen) + err := serializeHeader(w, packetTypeEncryptedKey, 1 /* version */ +8 /* key id */ +1 /* algo */ +mpiLen) + if err != nil { + return err + } w.Write([]byte{encryptedKeyVersion}) binary.Write(w, binary.BigEndian, e.KeyId) @@ -125,14 +162,23 @@ func (e *EncryptedKey) Serialize(w io.Writer) error { switch e.Algo { case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - writeMPIs(w, e.encryptedMPI1) + _, err := w.Write(e.encryptedMPI1.EncodedBytes()) + return err case PubKeyAlgoElGamal: - writeMPIs(w, e.encryptedMPI1, e.encryptedMPI2) + if _, err := w.Write(e.encryptedMPI1.EncodedBytes()); err != nil { + return err + } + _, err := w.Write(e.encryptedMPI2.EncodedBytes()) + return err + case PubKeyAlgoECDH: + if _, err := w.Write(e.encryptedMPI1.EncodedBytes()); err != nil { + return err + } + _, err := w.Write(e.encryptedMPI2.EncodedBytes()) + return err default: panic("internal error") } - - return nil } // SerializeEncryptedKey serializes an encrypted key packet to w that contains @@ -156,6 +202,8 @@ func SerializeEncryptedKey(w io.Writer, pub *PublicKey, cipherFunc CipherFunctio return serializeEncryptedKeyRSA(w, config.Random(), buf, pub.PublicKey.(*rsa.PublicKey), keyBlock) case PubKeyAlgoElGamal: return serializeEncryptedKeyElGamal(w, config.Random(), buf, pub.PublicKey.(*elgamal.PublicKey), keyBlock) + case PubKeyAlgoECDH: + return serializeEncryptedKeyECDH(w, config.Random(), buf, pub.PublicKey.(*ecdh.PublicKey), keyBlock, pub.oid, pub.Fingerprint) case PubKeyAlgoDSA, PubKeyAlgoRSASignOnly: return errors.InvalidArgumentError("cannot encrypt to public key of type " + strconv.Itoa(int(pub.PubKeyAlgo))) } @@ -169,7 +217,8 @@ func serializeEncryptedKeyRSA(w io.Writer, rand io.Reader, header [10]byte, pub return errors.InvalidArgumentError("RSA encryption failed: " + err.Error()) } - packetLen := 10 /* header length */ + 2 /* mpi size */ + len(cipherText) + cipherMPI := encoding.NewMPI(cipherText) + packetLen := 10 /* header length */ + int(cipherMPI.EncodedLength()) err = serializeHeader(w, packetTypeEncryptedKey, packetLen) if err != nil { @@ -179,7 +228,8 @@ func serializeEncryptedKeyRSA(w io.Writer, rand io.Reader, header [10]byte, pub if err != nil { return err } - return writeMPI(w, 8*uint16(len(cipherText)), cipherText) + _, err = w.Write(cipherMPI.EncodedBytes()) + return err } func serializeEncryptedKeyElGamal(w io.Writer, rand io.Reader, header [10]byte, pub *elgamal.PublicKey, keyBlock []byte) error { @@ -200,9 +250,37 @@ func serializeEncryptedKeyElGamal(w io.Writer, rand io.Reader, header [10]byte, if err != nil { return err } - err = writeBig(w, c1) + if _, err = w.Write(new(encoding.MPI).SetBig(c1).EncodedBytes()); err != nil { + return err + } + _, err = w.Write(new(encoding.MPI).SetBig(c2).EncodedBytes()) + return err +} + +func serializeEncryptedKeyECDH(w io.Writer, rand io.Reader, header [10]byte, pub *ecdh.PublicKey, keyBlock []byte, oid encoding.Field, fingerprint []byte) error { + vsG, c, err := ecdh.Encrypt(rand, pub, keyBlock, oid.EncodedBytes(), fingerprint) + if err != nil { + return errors.InvalidArgumentError("ECDH encryption failed: " + err.Error()) + } + + g := encoding.NewMPI(vsG) + m := encoding.NewOID(c) + + packetLen := 10 /* header length */ + packetLen += int(g.EncodedLength()) + int(m.EncodedLength()) + + err = serializeHeader(w, packetTypeEncryptedKey, packetLen) + if err != nil { + return err + } + + _, err = w.Write(header[:]) if err != nil { return err } - return writeBig(w, c2) + if _, err = w.Write(g.EncodedBytes()); err != nil { + return err + } + _, err = w.Write(m.EncodedBytes()) + return err } diff --git a/vendor/golang.org/x/crypto/openpgp/packet/literal.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/literal.go similarity index 96% rename from vendor/golang.org/x/crypto/openpgp/packet/literal.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/packet/literal.go index 1a9ec6e51e81..4be987609be5 100644 --- a/vendor/golang.org/x/crypto/openpgp/packet/literal.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/literal.go @@ -11,6 +11,7 @@ import ( // LiteralData represents an encrypted file. See RFC 4880, section 5.9. type LiteralData struct { + Format uint8 IsBinary bool FileName string Time uint32 // Unix epoch time. Either creation time or modification time. 0 means undefined. @@ -31,7 +32,8 @@ func (l *LiteralData) parse(r io.Reader) (err error) { return } - l.IsBinary = buf[0] == 'b' + l.Format = buf[0] + l.IsBinary = l.Format == 'b' fileNameLen := int(buf[1]) _, err = readFull(r, buf[:fileNameLen]) diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/notation.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/notation.go new file mode 100644 index 000000000000..2c3e3f50b253 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/notation.go @@ -0,0 +1,29 @@ +package packet + +// Notation type represents a Notation Data subpacket +// see https://tools.ietf.org/html/rfc4880#section-5.2.3.16 +type Notation struct { + Name string + Value []byte + IsCritical bool + IsHumanReadable bool +} + +func (notation *Notation) getData() []byte { + nameData := []byte(notation.Name) + nameLen := len(nameData) + valueLen := len(notation.Value) + + data := make([]byte, 8+nameLen+valueLen) + if notation.IsHumanReadable { + data[0] = 0x80 + } + + data[4] = byte(nameLen >> 8) + data[5] = byte(nameLen) + data[6] = byte(valueLen >> 8) + data[7] = byte(valueLen) + copy(data[8:8+nameLen], nameData) + copy(data[8+nameLen:], notation.Value) + return data +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/ocfb.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/ocfb.go similarity index 92% rename from vendor/golang.org/x/crypto/openpgp/packet/ocfb.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/packet/ocfb.go index ce2a33a547ce..4f26d0a00b7a 100644 --- a/vendor/golang.org/x/crypto/openpgp/packet/ocfb.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/ocfb.go @@ -85,8 +85,7 @@ type ocfbDecrypter struct { // NewOCFBDecrypter returns a cipher.Stream which decrypts data with OpenPGP's // cipher feedback mode using the given cipher.Block. Prefix must be the first // blockSize + 2 bytes of the ciphertext, where blockSize is the cipher.Block's -// block size. If an incorrect key is detected then nil is returned. On -// successful exit, blockSize+2 bytes of decrypted data are written into +// block size. On successful exit, blockSize+2 bytes of decrypted data are written into // prefix. Resync determines if the "resynchronization step" from RFC 4880, // 13.9 step 7 is performed. Different parts of OpenPGP vary on this point. func NewOCFBDecrypter(block cipher.Block, prefix []byte, resync OCFBResyncOption) cipher.Stream { @@ -112,11 +111,6 @@ func NewOCFBDecrypter(block cipher.Block, prefix []byte, resync OCFBResyncOption prefixCopy[blockSize] ^= x.fre[0] prefixCopy[blockSize+1] ^= x.fre[1] - if prefixCopy[blockSize-2] != prefixCopy[blockSize] || - prefixCopy[blockSize-1] != prefixCopy[blockSize+1] { - return nil - } - if resync { block.Encrypt(x.fre, prefix[2:]) } else { diff --git a/vendor/golang.org/x/crypto/openpgp/packet/one_pass_signature.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/one_pass_signature.go similarity index 87% rename from vendor/golang.org/x/crypto/openpgp/packet/one_pass_signature.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/packet/one_pass_signature.go index 1713503395e3..033fb2d7e8cb 100644 --- a/vendor/golang.org/x/crypto/openpgp/packet/one_pass_signature.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/one_pass_signature.go @@ -7,8 +7,8 @@ package packet import ( "crypto" "encoding/binary" - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/s2k" + "github.com/ProtonMail/go-crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" "io" "strconv" ) @@ -37,7 +37,7 @@ func (ops *OnePassSignature) parse(r io.Reader) (err error) { } var ok bool - ops.Hash, ok = s2k.HashIdToHash(buf[2]) + ops.Hash, ok = algorithm.HashIdToHashWithSha1(buf[2]) if !ok { return errors.UnsupportedError("hash function: " + strconv.Itoa(int(buf[2]))) } @@ -55,7 +55,7 @@ func (ops *OnePassSignature) Serialize(w io.Writer) error { buf[0] = onePassSignatureVersion buf[1] = uint8(ops.SigType) var ok bool - buf[2], ok = s2k.HashToHashId(ops.Hash) + buf[2], ok = algorithm.HashToHashIdWithSha1(ops.Hash) if !ok { return errors.UnsupportedError("hash type: " + strconv.Itoa(int(ops.Hash))) } diff --git a/vendor/golang.org/x/crypto/openpgp/packet/opaque.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/opaque.go similarity index 89% rename from vendor/golang.org/x/crypto/openpgp/packet/opaque.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/packet/opaque.go index 3984477310fe..4f8204079f29 100644 --- a/vendor/golang.org/x/crypto/openpgp/packet/opaque.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/opaque.go @@ -7,8 +7,9 @@ package packet import ( "bytes" "io" + "io/ioutil" - "golang.org/x/crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/errors" ) // OpaquePacket represents an OpenPGP packet as raw, unparsed data. This is @@ -25,7 +26,7 @@ type OpaquePacket struct { } func (op *OpaquePacket) parse(r io.Reader) (err error) { - op.Contents, err = io.ReadAll(r) + op.Contents, err = ioutil.ReadAll(r) return } @@ -83,8 +84,9 @@ func (or *OpaqueReader) Next() (op *OpaquePacket, err error) { // OpaqueSubpacket represents an unparsed OpenPGP subpacket, // as found in signature and user attribute packets. type OpaqueSubpacket struct { - SubType uint8 - Contents []byte + SubType uint8 + EncodedLength []byte // Store the original encoded length for signature verifications. + Contents []byte } // OpaqueSubpackets extracts opaque, unparsed OpenPGP subpackets from @@ -108,6 +110,7 @@ func OpaqueSubpackets(contents []byte) (result []*OpaqueSubpacket, err error) { func nextSubpacket(contents []byte) (subHeaderLen int, subPacket *OpaqueSubpacket, err error) { // RFC 4880, section 5.2.3.1 var subLen uint32 + var encodedLength []byte if len(contents) < 1 { goto Truncated } @@ -118,6 +121,7 @@ func nextSubpacket(contents []byte) (subHeaderLen int, subPacket *OpaqueSubpacke if len(contents) < subHeaderLen { goto Truncated } + encodedLength = contents[0:1] subLen = uint32(contents[0]) contents = contents[1:] case contents[0] < 255: @@ -125,6 +129,7 @@ func nextSubpacket(contents []byte) (subHeaderLen int, subPacket *OpaqueSubpacke if len(contents) < subHeaderLen { goto Truncated } + encodedLength = contents[0:2] subLen = uint32(contents[0]-192)<<8 + uint32(contents[1]) + 192 contents = contents[2:] default: @@ -132,16 +137,19 @@ func nextSubpacket(contents []byte) (subHeaderLen int, subPacket *OpaqueSubpacke if len(contents) < subHeaderLen { goto Truncated } + encodedLength = contents[0:5] subLen = uint32(contents[1])<<24 | uint32(contents[2])<<16 | uint32(contents[3])<<8 | uint32(contents[4]) contents = contents[5:] + } if subLen > uint32(len(contents)) || subLen == 0 { goto Truncated } subPacket.SubType = contents[0] + subPacket.EncodedLength = encodedLength subPacket.Contents = contents[1:subLen] return Truncated: @@ -151,7 +159,9 @@ Truncated: func (osp *OpaqueSubpacket) Serialize(w io.Writer) (err error) { buf := make([]byte, 6) - n := serializeSubpacketLength(buf, len(osp.Contents)+1) + copy(buf, osp.EncodedLength) + n := len(osp.EncodedLength) + buf[n] = osp.SubType if _, err = w.Write(buf[:n+1]); err != nil { return diff --git a/vendor/golang.org/x/crypto/openpgp/packet/packet.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/packet.go similarity index 61% rename from vendor/golang.org/x/crypto/openpgp/packet/packet.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/packet/packet.go index 0a19794a8e49..4d86a7da8263 100644 --- a/vendor/golang.org/x/crypto/openpgp/packet/packet.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/packet.go @@ -4,26 +4,16 @@ // Package packet implements parsing and serialization of OpenPGP packets, as // specified in RFC 4880. -// -// Deprecated: this package is unmaintained except for security fixes. New -// applications should consider a more focused, modern alternative to OpenPGP -// for their specific task. If you are required to interoperate with OpenPGP -// systems and need a maintained package, consider a community fork. -// See https://golang.org/issue/44226. -package packet // import "golang.org/x/crypto/openpgp/packet" +package packet // import "github.com/ProtonMail/go-crypto/openpgp/packet" import ( - "bufio" - "crypto/aes" + "bytes" "crypto/cipher" - "crypto/des" "crypto/rsa" "io" - "math/big" - "math/bits" - "golang.org/x/crypto/cast5" - "golang.org/x/crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" ) // readFull is the same as io.ReadFull except that reading zero bytes returns @@ -106,68 +96,43 @@ func (r *partialLengthReader) Read(p []byte) (n int, err error) { // See RFC 4880, section 4.2.2.4. type partialLengthWriter struct { w io.WriteCloser + buf bytes.Buffer lengthByte [1]byte - sentFirst bool - buf []byte } -// RFC 4880 4.2.2.4: the first partial length MUST be at least 512 octets long. -const minFirstPartialWrite = 512 - func (w *partialLengthWriter) Write(p []byte) (n int, err error) { - off := 0 - if !w.sentFirst { - if len(w.buf) > 0 || len(p) < minFirstPartialWrite { - off = len(w.buf) - w.buf = append(w.buf, p...) - if len(w.buf) < minFirstPartialWrite { - return len(p), nil - } - p = w.buf - w.buf = nil - } - w.sentFirst = true - } - - power := uint8(30) - for len(p) > 0 { - l := 1 << power - if len(p) < l { - power = uint8(bits.Len32(uint32(len(p)))) - 1 - l = 1 << power - } - w.lengthByte[0] = 224 + power - _, err = w.w.Write(w.lengthByte[:]) - if err == nil { - var m int - m, err = w.w.Write(p[:l]) - n += m - } - if err != nil { - if n < off { - return 0, err + bufLen := w.buf.Len() + if bufLen > 512 { + for power := uint(30); ; power-- { + l := 1 << power + if bufLen >= l { + w.lengthByte[0] = 224 + uint8(power) + _, err = w.w.Write(w.lengthByte[:]) + if err != nil { + return + } + var m int + m, err = w.w.Write(w.buf.Next(l)) + if err != nil { + return + } + if m != l { + return 0, io.ErrShortWrite + } + break } - return n - off, err } - p = p[l:] } - return n - off, nil + return w.buf.Write(p) } -func (w *partialLengthWriter) Close() error { - if len(w.buf) > 0 { - // In this case we can't send a 512 byte packet. - // Just send what we have. - p := w.buf - w.sentFirst = true - w.buf = nil - if _, err := w.Write(p); err != nil { - return err - } +func (w *partialLengthWriter) Close() (err error) { + len := w.buf.Len() + err = serializeLength(w.w, len) + if err != nil { + return err } - - w.lengthByte[0] = 0 - _, err := w.w.Write(w.lengthByte[:]) + _, err = w.buf.WriteTo(w.w) if err != nil { return err } @@ -252,25 +217,43 @@ func readHeader(r io.Reader) (tag packetType, length int64, contents io.Reader, // serializeHeader writes an OpenPGP packet header to w. See RFC 4880, section // 4.2. func serializeHeader(w io.Writer, ptype packetType, length int) (err error) { - var buf [6]byte - var n int + err = serializeType(w, ptype) + if err != nil { + return + } + return serializeLength(w, length) +} +// serializeType writes an OpenPGP packet type to w. See RFC 4880, section +// 4.2. +func serializeType(w io.Writer, ptype packetType) (err error) { + var buf [1]byte buf[0] = 0x80 | 0x40 | byte(ptype) + _, err = w.Write(buf[:]) + return +} + +// serializeLength writes an OpenPGP packet length to w. See RFC 4880, section +// 4.2.2. +func serializeLength(w io.Writer, length int) (err error) { + var buf [5]byte + var n int + if length < 192 { - buf[1] = byte(length) - n = 2 + buf[0] = byte(length) + n = 1 } else if length < 8384 { length -= 192 - buf[1] = 192 + byte(length>>8) - buf[2] = byte(length) - n = 3 + buf[0] = 192 + byte(length>>8) + buf[1] = byte(length) + n = 2 } else { - buf[1] = 255 - buf[2] = byte(length >> 24) - buf[3] = byte(length >> 16) - buf[4] = byte(length >> 8) - buf[5] = byte(length) - n = 6 + buf[0] = 255 + buf[1] = byte(length >> 24) + buf[2] = byte(length >> 16) + buf[3] = byte(length >> 8) + buf[4] = byte(length) + n = 5 } _, err = w.Write(buf[:n]) @@ -281,9 +264,7 @@ func serializeHeader(w io.Writer, ptype packetType, length int) (err error) { // length of the packet is unknown. It returns a io.WriteCloser which can be // used to write the contents of the packet. See RFC 4880, section 4.2. func serializeStreamHeader(w io.WriteCloser, ptype packetType) (out io.WriteCloser, err error) { - var buf [1]byte - buf[0] = 0x80 | 0x40 | byte(ptype) - _, err = w.Write(buf[:]) + err = serializeType(w, ptype) if err != nil { return } @@ -321,33 +302,27 @@ func consumeAll(r io.Reader) (n int64, err error) { type packetType uint8 const ( - packetTypeEncryptedKey packetType = 1 - packetTypeSignature packetType = 2 - packetTypeSymmetricKeyEncrypted packetType = 3 - packetTypeOnePassSignature packetType = 4 - packetTypePrivateKey packetType = 5 - packetTypePublicKey packetType = 6 - packetTypePrivateSubkey packetType = 7 - packetTypeCompressed packetType = 8 - packetTypeSymmetricallyEncrypted packetType = 9 - packetTypeLiteralData packetType = 11 - packetTypeUserId packetType = 13 - packetTypePublicSubkey packetType = 14 - packetTypeUserAttribute packetType = 17 - packetTypeSymmetricallyEncryptedMDC packetType = 18 + packetTypeEncryptedKey packetType = 1 + packetTypeSignature packetType = 2 + packetTypeSymmetricKeyEncrypted packetType = 3 + packetTypeOnePassSignature packetType = 4 + packetTypePrivateKey packetType = 5 + packetTypePublicKey packetType = 6 + packetTypePrivateSubkey packetType = 7 + packetTypeCompressed packetType = 8 + packetTypeSymmetricallyEncrypted packetType = 9 + packetTypeLiteralData packetType = 11 + packetTypeUserId packetType = 13 + packetTypePublicSubkey packetType = 14 + packetTypeUserAttribute packetType = 17 + packetTypeSymmetricallyEncryptedIntegrityProtected packetType = 18 + packetTypeAEADEncrypted packetType = 20 ) -// peekVersion detects the version of a public key packet about to -// be read. A bufio.Reader at the original position of the io.Reader -// is returned. -func peekVersion(r io.Reader) (bufr *bufio.Reader, ver byte, err error) { - bufr = bufio.NewReader(r) - var verBuf []byte - if verBuf, err = bufr.Peek(1); err != nil { - return - } - ver = verBuf[0] - return +// EncryptedDataPacket holds encrypted data. It is currently implemented by +// SymmetricallyEncrypted and AEADEncrypted. +type EncryptedDataPacket interface { + Decrypt(CipherFunction, []byte) (io.ReadCloser, error) } // Read reads a single OpenPGP packet from the given io.Reader. If there is an @@ -362,16 +337,7 @@ func Read(r io.Reader) (p Packet, err error) { case packetTypeEncryptedKey: p = new(EncryptedKey) case packetTypeSignature: - var version byte - // Detect signature version - if contents, version, err = peekVersion(contents); err != nil { - return - } - if version < 4 { - p = new(SignatureV3) - } else { - p = new(Signature) - } + p = new(Signature) case packetTypeSymmetricKeyEncrypted: p = new(SymmetricKeyEncrypted) case packetTypeOnePassSignature: @@ -383,16 +349,8 @@ func Read(r io.Reader) (p Packet, err error) { } p = pk case packetTypePublicKey, packetTypePublicSubkey: - var version byte - if contents, version, err = peekVersion(contents); err != nil { - return - } isSubkey := tag == packetTypePublicSubkey - if version < 4 { - p = &PublicKeyV3{IsSubkey: isSubkey} - } else { - p = &PublicKey{IsSubkey: isSubkey} - } + p = &PublicKey{IsSubkey: isSubkey} case packetTypeCompressed: p = new(Compressed) case packetTypeSymmetricallyEncrypted: @@ -403,10 +361,12 @@ func Read(r io.Reader) (p Packet, err error) { p = new(UserId) case packetTypeUserAttribute: p = new(UserAttribute) - case packetTypeSymmetricallyEncryptedMDC: + case packetTypeSymmetricallyEncryptedIntegrityProtected: se := new(SymmetricallyEncrypted) - se.MDC = true + se.IntegrityProtected = true p = se + case packetTypeAEADEncrypted: + p = new(AEADEncrypted) default: err = errors.UnknownPacketTypeError(tag) } @@ -424,17 +384,18 @@ func Read(r io.Reader) (p Packet, err error) { type SignatureType uint8 const ( - SigTypeBinary SignatureType = 0 - SigTypeText = 1 - SigTypeGenericCert = 0x10 - SigTypePersonaCert = 0x11 - SigTypeCasualCert = 0x12 - SigTypePositiveCert = 0x13 - SigTypeSubkeyBinding = 0x18 - SigTypePrimaryKeyBinding = 0x19 - SigTypeDirectSignature = 0x1F - SigTypeKeyRevocation = 0x20 - SigTypeSubkeyRevocation = 0x28 + SigTypeBinary SignatureType = 0x00 + SigTypeText = 0x01 + SigTypeGenericCert = 0x10 + SigTypePersonaCert = 0x11 + SigTypeCasualCert = 0x12 + SigTypePositiveCert = 0x13 + SigTypeSubkeyBinding = 0x18 + SigTypePrimaryKeyBinding = 0x19 + SigTypeDirectSignature = 0x1F + SigTypeKeyRevocation = 0x20 + SigTypeSubkeyRevocation = 0x28 + SigTypeCertificationRevocation = 0x30 ) // PublicKeyAlgorithm represents the different public key system specified for @@ -449,6 +410,8 @@ const ( // RFC 6637, Section 5. PubKeyAlgoECDH PublicKeyAlgorithm = 18 PubKeyAlgoECDSA PublicKeyAlgorithm = 19 + // https://www.ietf.org/archive/id/draft-koch-eddsa-for-openpgp-04.txt + PubKeyAlgoEdDSA PublicKeyAlgorithm = 22 // Deprecated in RFC 4880, Section 13.5. Use key flags instead. PubKeyAlgoRSAEncryptOnly PublicKeyAlgorithm = 2 @@ -459,7 +422,7 @@ const ( // key of the given type. func (pka PublicKeyAlgorithm) CanEncrypt() bool { switch pka { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoElGamal: + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoElGamal, PubKeyAlgoECDH: return true } return false @@ -469,7 +432,7 @@ func (pka PublicKeyAlgorithm) CanEncrypt() bool { // sign a message. func (pka PublicKeyAlgorithm) CanSign() bool { switch pka { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA, PubKeyAlgoECDSA: + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA, PubKeyAlgoECDSA, PubKeyAlgoEdDSA: return true } return false @@ -477,7 +440,7 @@ func (pka PublicKeyAlgorithm) CanSign() bool { // CipherFunction represents the different block ciphers specified for OpenPGP. See // http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-13 -type CipherFunction uint8 +type CipherFunction algorithm.CipherFunction const ( Cipher3DES CipherFunction = 2 @@ -489,81 +452,22 @@ const ( // KeySize returns the key size, in bytes, of cipher. func (cipher CipherFunction) KeySize() int { - switch cipher { - case Cipher3DES: - return 24 - case CipherCAST5: - return cast5.KeySize - case CipherAES128: - return 16 - case CipherAES192: - return 24 - case CipherAES256: - return 32 - } - return 0 + return algorithm.CipherFunction(cipher).KeySize() +} + +// IsSupported returns true if the cipher is supported from the library +func (cipher CipherFunction) IsSupported() bool { + return algorithm.CipherFunction(cipher).KeySize() > 0 } // blockSize returns the block size, in bytes, of cipher. func (cipher CipherFunction) blockSize() int { - switch cipher { - case Cipher3DES: - return des.BlockSize - case CipherCAST5: - return 8 - case CipherAES128, CipherAES192, CipherAES256: - return 16 - } - return 0 + return algorithm.CipherFunction(cipher).BlockSize() } // new returns a fresh instance of the given cipher. func (cipher CipherFunction) new(key []byte) (block cipher.Block) { - switch cipher { - case Cipher3DES: - block, _ = des.NewTripleDESCipher(key) - case CipherCAST5: - block, _ = cast5.NewCipher(key) - case CipherAES128, CipherAES192, CipherAES256: - block, _ = aes.NewCipher(key) - } - return -} - -// readMPI reads a big integer from r. The bit length returned is the bit -// length that was specified in r. This is preserved so that the integer can be -// reserialized exactly. -func readMPI(r io.Reader) (mpi []byte, bitLength uint16, err error) { - var buf [2]byte - _, err = readFull(r, buf[0:]) - if err != nil { - return - } - bitLength = uint16(buf[0])<<8 | uint16(buf[1]) - numBytes := (int(bitLength) + 7) / 8 - mpi = make([]byte, numBytes) - _, err = readFull(r, mpi) - // According to RFC 4880 3.2. we should check that the MPI has no leading - // zeroes (at least when not an encrypted MPI?), but this implementation - // does generate leading zeroes, so we keep accepting them. - return -} - -// writeMPI serializes a big integer to w. -func writeMPI(w io.Writer, bitLength uint16, mpiBytes []byte) (err error) { - // Note that we can produce leading zeroes, in violation of RFC 4880 3.2. - // Implementations seem to be tolerant of them, and stripping them would - // make it complex to guarantee matching re-serialization. - _, err = w.Write([]byte{byte(bitLength >> 8), byte(bitLength)}) - if err == nil { - _, err = w.Write(mpiBytes) - } - return -} - -// writeBig serializes a *big.Int to w. -func writeBig(w io.Writer, i *big.Int) error { - return writeMPI(w, uint16(i.BitLen()), i.Bytes()) + return algorithm.CipherFunction(cipher).New(key) } // padToKeySize left-pads a MPI with zeroes to match the length of the @@ -588,3 +492,60 @@ const ( CompressionZIP CompressionAlgo = 1 CompressionZLIB CompressionAlgo = 2 ) + +// AEADMode represents the different Authenticated Encryption with Associated +// Data specified for OpenPGP. +// See https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-9.6 +type AEADMode algorithm.AEADMode + +const ( + AEADModeEAX AEADMode = 1 + AEADModeOCB AEADMode = 2 + AEADModeGCM AEADMode = 3 +) + +func (mode AEADMode) IvLength() int { + return algorithm.AEADMode(mode).NonceLength() +} + +func (mode AEADMode) TagLength() int { + return algorithm.AEADMode(mode).TagLength() +} + +// new returns a fresh instance of the given mode. +func (mode AEADMode) new(block cipher.Block) cipher.AEAD { + return algorithm.AEADMode(mode).New(block) +} + +// ReasonForRevocation represents a revocation reason code as per RFC4880 +// section 5.2.3.23. +type ReasonForRevocation uint8 + +const ( + NoReason ReasonForRevocation = 0 + KeySuperseded ReasonForRevocation = 1 + KeyCompromised ReasonForRevocation = 2 + KeyRetired ReasonForRevocation = 3 +) + +// Curve is a mapping to supported ECC curves for key generation. +// See https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-06.html#name-curve-specific-wire-formats +type Curve string + +const ( + Curve25519 Curve = "Curve25519" + Curve448 Curve = "Curve448" + CurveNistP256 Curve = "P256" + CurveNistP384 Curve = "P384" + CurveNistP521 Curve = "P521" + CurveSecP256k1 Curve = "SecP256k1" + CurveBrainpoolP256 Curve = "BrainpoolP256" + CurveBrainpoolP384 Curve = "BrainpoolP384" + CurveBrainpoolP512 Curve = "BrainpoolP512" +) + +// TrustLevel represents a trust level per RFC4880 5.2.3.13 +type TrustLevel uint8 + +// TrustAmount represents a trust amount per RFC4880 5.2.3.13 +type TrustAmount uint8 diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key.go new file mode 100644 index 000000000000..2fc4386437c1 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key.go @@ -0,0 +1,837 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "crypto" + "crypto/cipher" + "crypto/dsa" + "crypto/rand" + "crypto/rsa" + "crypto/sha1" + "io" + "io/ioutil" + "math/big" + "strconv" + "time" + + "github.com/ProtonMail/go-crypto/openpgp/ecdh" + "github.com/ProtonMail/go-crypto/openpgp/ecdsa" + "github.com/ProtonMail/go-crypto/openpgp/eddsa" + "github.com/ProtonMail/go-crypto/openpgp/elgamal" + "github.com/ProtonMail/go-crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/internal/encoding" + "github.com/ProtonMail/go-crypto/openpgp/s2k" +) + +// PrivateKey represents a possibly encrypted private key. See RFC 4880, +// section 5.5.3. +type PrivateKey struct { + PublicKey + Encrypted bool // if true then the private key is unavailable until Decrypt has been called. + encryptedData []byte + cipher CipherFunction + s2k func(out, in []byte) + // An *{rsa|dsa|elgamal|ecdh|ecdsa|ed25519}.PrivateKey or + // crypto.Signer/crypto.Decrypter (Decryptor RSA only). + PrivateKey interface{} + sha1Checksum bool + iv []byte + + // Type of encryption of the S2K packet + // Allowed values are 0 (Not encrypted), 254 (SHA1), or + // 255 (2-byte checksum) + s2kType S2KType + // Full parameters of the S2K packet + s2kParams *s2k.Params +} + +// S2KType s2k packet type +type S2KType uint8 + +const ( + // S2KNON unencrypt + S2KNON S2KType = 0 + // S2KSHA1 sha1 sum check + S2KSHA1 S2KType = 254 + // S2KCHECKSUM sum check + S2KCHECKSUM S2KType = 255 +) + +func NewRSAPrivateKey(creationTime time.Time, priv *rsa.PrivateKey) *PrivateKey { + pk := new(PrivateKey) + pk.PublicKey = *NewRSAPublicKey(creationTime, &priv.PublicKey) + pk.PrivateKey = priv + return pk +} + +func NewDSAPrivateKey(creationTime time.Time, priv *dsa.PrivateKey) *PrivateKey { + pk := new(PrivateKey) + pk.PublicKey = *NewDSAPublicKey(creationTime, &priv.PublicKey) + pk.PrivateKey = priv + return pk +} + +func NewElGamalPrivateKey(creationTime time.Time, priv *elgamal.PrivateKey) *PrivateKey { + pk := new(PrivateKey) + pk.PublicKey = *NewElGamalPublicKey(creationTime, &priv.PublicKey) + pk.PrivateKey = priv + return pk +} + +func NewECDSAPrivateKey(creationTime time.Time, priv *ecdsa.PrivateKey) *PrivateKey { + pk := new(PrivateKey) + pk.PublicKey = *NewECDSAPublicKey(creationTime, &priv.PublicKey) + pk.PrivateKey = priv + return pk +} + +func NewEdDSAPrivateKey(creationTime time.Time, priv *eddsa.PrivateKey) *PrivateKey { + pk := new(PrivateKey) + pk.PublicKey = *NewEdDSAPublicKey(creationTime, &priv.PublicKey) + pk.PrivateKey = priv + return pk +} + +func NewECDHPrivateKey(creationTime time.Time, priv *ecdh.PrivateKey) *PrivateKey { + pk := new(PrivateKey) + pk.PublicKey = *NewECDHPublicKey(creationTime, &priv.PublicKey) + pk.PrivateKey = priv + return pk +} + +// NewSignerPrivateKey creates a PrivateKey from a crypto.Signer that +// implements RSA, ECDSA or EdDSA. +func NewSignerPrivateKey(creationTime time.Time, signer interface{}) *PrivateKey { + pk := new(PrivateKey) + // In general, the public Keys should be used as pointers. We still + // type-switch on the values, for backwards-compatibility. + switch pubkey := signer.(type) { + case *rsa.PrivateKey: + pk.PublicKey = *NewRSAPublicKey(creationTime, &pubkey.PublicKey) + case rsa.PrivateKey: + pk.PublicKey = *NewRSAPublicKey(creationTime, &pubkey.PublicKey) + case *ecdsa.PrivateKey: + pk.PublicKey = *NewECDSAPublicKey(creationTime, &pubkey.PublicKey) + case ecdsa.PrivateKey: + pk.PublicKey = *NewECDSAPublicKey(creationTime, &pubkey.PublicKey) + case *eddsa.PrivateKey: + pk.PublicKey = *NewEdDSAPublicKey(creationTime, &pubkey.PublicKey) + case eddsa.PrivateKey: + pk.PublicKey = *NewEdDSAPublicKey(creationTime, &pubkey.PublicKey) + default: + panic("openpgp: unknown signer type in NewSignerPrivateKey") + } + pk.PrivateKey = signer + return pk +} + +// NewDecrypterPrivateKey creates a PrivateKey from a *{rsa|elgamal|ecdh}.PrivateKey. +func NewDecrypterPrivateKey(creationTime time.Time, decrypter interface{}) *PrivateKey { + pk := new(PrivateKey) + switch priv := decrypter.(type) { + case *rsa.PrivateKey: + pk.PublicKey = *NewRSAPublicKey(creationTime, &priv.PublicKey) + case *elgamal.PrivateKey: + pk.PublicKey = *NewElGamalPublicKey(creationTime, &priv.PublicKey) + case *ecdh.PrivateKey: + pk.PublicKey = *NewECDHPublicKey(creationTime, &priv.PublicKey) + default: + panic("openpgp: unknown decrypter type in NewDecrypterPrivateKey") + } + pk.PrivateKey = decrypter + return pk +} + +func (pk *PrivateKey) parse(r io.Reader) (err error) { + err = (&pk.PublicKey).parse(r) + if err != nil { + return + } + v5 := pk.PublicKey.Version == 5 + + var buf [1]byte + _, err = readFull(r, buf[:]) + if err != nil { + return + } + pk.s2kType = S2KType(buf[0]) + var optCount [1]byte + if v5 { + if _, err = readFull(r, optCount[:]); err != nil { + return + } + } + + switch pk.s2kType { + case S2KNON: + pk.s2k = nil + pk.Encrypted = false + case S2KSHA1, S2KCHECKSUM: + if v5 && pk.s2kType == S2KCHECKSUM { + return errors.StructuralError("wrong s2k identifier for version 5") + } + _, err = readFull(r, buf[:]) + if err != nil { + return + } + pk.cipher = CipherFunction(buf[0]) + if pk.cipher != 0 && !pk.cipher.IsSupported() { + return errors.UnsupportedError("unsupported cipher function in private key") + } + pk.s2kParams, err = s2k.ParseIntoParams(r) + if err != nil { + return + } + if pk.s2kParams.Dummy() { + return + } + pk.s2k, err = pk.s2kParams.Function() + if err != nil { + return + } + pk.Encrypted = true + if pk.s2kType == S2KSHA1 { + pk.sha1Checksum = true + } + default: + return errors.UnsupportedError("deprecated s2k function in private key") + } + + if pk.Encrypted { + blockSize := pk.cipher.blockSize() + if blockSize == 0 { + return errors.UnsupportedError("unsupported cipher in private key: " + strconv.Itoa(int(pk.cipher))) + } + pk.iv = make([]byte, blockSize) + _, err = readFull(r, pk.iv) + if err != nil { + return + } + } + + var privateKeyData []byte + if v5 { + var n [4]byte /* secret material four octet count */ + _, err = readFull(r, n[:]) + if err != nil { + return + } + count := uint32(uint32(n[0])<<24 | uint32(n[1])<<16 | uint32(n[2])<<8 | uint32(n[3])) + if !pk.Encrypted { + count = count + 2 /* two octet checksum */ + } + privateKeyData = make([]byte, count) + _, err = readFull(r, privateKeyData) + if err != nil { + return + } + } else { + privateKeyData, err = ioutil.ReadAll(r) + if err != nil { + return + } + } + if !pk.Encrypted { + if len(privateKeyData) < 2 { + return errors.StructuralError("truncated private key data") + } + var sum uint16 + for i := 0; i < len(privateKeyData)-2; i++ { + sum += uint16(privateKeyData[i]) + } + if privateKeyData[len(privateKeyData)-2] != uint8(sum>>8) || + privateKeyData[len(privateKeyData)-1] != uint8(sum) { + return errors.StructuralError("private key checksum failure") + } + privateKeyData = privateKeyData[:len(privateKeyData)-2] + return pk.parsePrivateKey(privateKeyData) + } + + pk.encryptedData = privateKeyData + return +} + +// Dummy returns true if the private key is a dummy key. This is a GNU extension. +func (pk *PrivateKey) Dummy() bool { + return pk.s2kParams.Dummy() +} + +func mod64kHash(d []byte) uint16 { + var h uint16 + for _, b := range d { + h += uint16(b) + } + return h +} + +func (pk *PrivateKey) Serialize(w io.Writer) (err error) { + contents := bytes.NewBuffer(nil) + err = pk.PublicKey.serializeWithoutHeaders(contents) + if err != nil { + return + } + if _, err = contents.Write([]byte{uint8(pk.s2kType)}); err != nil { + return + } + + optional := bytes.NewBuffer(nil) + if pk.Encrypted || pk.Dummy() { + optional.Write([]byte{uint8(pk.cipher)}) + if err := pk.s2kParams.Serialize(optional); err != nil { + return err + } + if pk.Encrypted { + optional.Write(pk.iv) + } + } + if pk.Version == 5 { + contents.Write([]byte{uint8(optional.Len())}) + } + io.Copy(contents, optional) + + if !pk.Dummy() { + l := 0 + var priv []byte + if !pk.Encrypted { + buf := bytes.NewBuffer(nil) + err = pk.serializePrivateKey(buf) + if err != nil { + return err + } + l = buf.Len() + checksum := mod64kHash(buf.Bytes()) + buf.Write([]byte{byte(checksum >> 8), byte(checksum)}) + priv = buf.Bytes() + } else { + priv, l = pk.encryptedData, len(pk.encryptedData) + } + + if pk.Version == 5 { + contents.Write([]byte{byte(l >> 24), byte(l >> 16), byte(l >> 8), byte(l)}) + } + contents.Write(priv) + } + + ptype := packetTypePrivateKey + if pk.IsSubkey { + ptype = packetTypePrivateSubkey + } + err = serializeHeader(w, ptype, contents.Len()) + if err != nil { + return + } + _, err = io.Copy(w, contents) + if err != nil { + return + } + return +} + +func serializeRSAPrivateKey(w io.Writer, priv *rsa.PrivateKey) error { + if _, err := w.Write(new(encoding.MPI).SetBig(priv.D).EncodedBytes()); err != nil { + return err + } + if _, err := w.Write(new(encoding.MPI).SetBig(priv.Primes[1]).EncodedBytes()); err != nil { + return err + } + if _, err := w.Write(new(encoding.MPI).SetBig(priv.Primes[0]).EncodedBytes()); err != nil { + return err + } + _, err := w.Write(new(encoding.MPI).SetBig(priv.Precomputed.Qinv).EncodedBytes()) + return err +} + +func serializeDSAPrivateKey(w io.Writer, priv *dsa.PrivateKey) error { + _, err := w.Write(new(encoding.MPI).SetBig(priv.X).EncodedBytes()) + return err +} + +func serializeElGamalPrivateKey(w io.Writer, priv *elgamal.PrivateKey) error { + _, err := w.Write(new(encoding.MPI).SetBig(priv.X).EncodedBytes()) + return err +} + +func serializeECDSAPrivateKey(w io.Writer, priv *ecdsa.PrivateKey) error { + _, err := w.Write(encoding.NewMPI(priv.MarshalIntegerSecret()).EncodedBytes()) + return err +} + +func serializeEdDSAPrivateKey(w io.Writer, priv *eddsa.PrivateKey) error { + _, err := w.Write(encoding.NewMPI(priv.MarshalByteSecret()).EncodedBytes()) + return err +} + +func serializeECDHPrivateKey(w io.Writer, priv *ecdh.PrivateKey) error { + _, err := w.Write(encoding.NewMPI(priv.MarshalByteSecret()).EncodedBytes()) + return err +} + +// decrypt decrypts an encrypted private key using a decryption key. +func (pk *PrivateKey) decrypt(decryptionKey []byte) error { + if pk.Dummy() { + return errors.ErrDummyPrivateKey("dummy key found") + } + if !pk.Encrypted { + return nil + } + + block := pk.cipher.new(decryptionKey) + cfb := cipher.NewCFBDecrypter(block, pk.iv) + + data := make([]byte, len(pk.encryptedData)) + cfb.XORKeyStream(data, pk.encryptedData) + + if pk.sha1Checksum { + if len(data) < sha1.Size { + return errors.StructuralError("truncated private key data") + } + h := sha1.New() + h.Write(data[:len(data)-sha1.Size]) + sum := h.Sum(nil) + if !bytes.Equal(sum, data[len(data)-sha1.Size:]) { + return errors.StructuralError("private key checksum failure") + } + data = data[:len(data)-sha1.Size] + } else { + if len(data) < 2 { + return errors.StructuralError("truncated private key data") + } + var sum uint16 + for i := 0; i < len(data)-2; i++ { + sum += uint16(data[i]) + } + if data[len(data)-2] != uint8(sum>>8) || + data[len(data)-1] != uint8(sum) { + return errors.StructuralError("private key checksum failure") + } + data = data[:len(data)-2] + } + + err := pk.parsePrivateKey(data) + if _, ok := err.(errors.KeyInvalidError); ok { + return errors.KeyInvalidError("invalid key parameters") + } + if err != nil { + return err + } + + // Mark key as unencrypted + pk.s2kType = S2KNON + pk.s2k = nil + pk.Encrypted = false + pk.encryptedData = nil + + return nil +} + +func (pk *PrivateKey) decryptWithCache(passphrase []byte, keyCache *s2k.Cache) error { + if pk.Dummy() { + return errors.ErrDummyPrivateKey("dummy key found") + } + if !pk.Encrypted { + return nil + } + + key, err := keyCache.GetOrComputeDerivedKey(passphrase, pk.s2kParams, pk.cipher.KeySize()) + if err != nil { + return err + } + return pk.decrypt(key) +} + +// Decrypt decrypts an encrypted private key using a passphrase. +func (pk *PrivateKey) Decrypt(passphrase []byte) error { + if pk.Dummy() { + return errors.ErrDummyPrivateKey("dummy key found") + } + if !pk.Encrypted { + return nil + } + + key := make([]byte, pk.cipher.KeySize()) + pk.s2k(key, passphrase) + return pk.decrypt(key) +} + +// DecryptPrivateKeys decrypts all encrypted keys with the given config and passphrase. +// Avoids recomputation of similar s2k key derivations. +func DecryptPrivateKeys(keys []*PrivateKey, passphrase []byte) error { + // Create a cache to avoid recomputation of key derviations for the same passphrase. + s2kCache := &s2k.Cache{} + for _, key := range keys { + if key != nil && !key.Dummy() && key.Encrypted { + err := key.decryptWithCache(passphrase, s2kCache) + if err != nil { + return err + } + } + } + return nil +} + +// encrypt encrypts an unencrypted private key. +func (pk *PrivateKey) encrypt(key []byte, params *s2k.Params, cipherFunction CipherFunction) error { + if pk.Dummy() { + return errors.ErrDummyPrivateKey("dummy key found") + } + if pk.Encrypted { + return nil + } + // check if encryptionKey has the correct size + if len(key) != cipherFunction.KeySize() { + return errors.InvalidArgumentError("supplied encryption key has the wrong size") + } + + priv := bytes.NewBuffer(nil) + err := pk.serializePrivateKey(priv) + if err != nil { + return err + } + + pk.cipher = cipherFunction + pk.s2kParams = params + pk.s2k, err = pk.s2kParams.Function() + if err != nil { + return err + } + + privateKeyBytes := priv.Bytes() + pk.sha1Checksum = true + block := pk.cipher.new(key) + pk.iv = make([]byte, pk.cipher.blockSize()) + _, err = rand.Read(pk.iv) + if err != nil { + return err + } + cfb := cipher.NewCFBEncrypter(block, pk.iv) + + if pk.sha1Checksum { + pk.s2kType = S2KSHA1 + h := sha1.New() + h.Write(privateKeyBytes) + sum := h.Sum(nil) + privateKeyBytes = append(privateKeyBytes, sum...) + } else { + pk.s2kType = S2KCHECKSUM + var sum uint16 + for _, b := range privateKeyBytes { + sum += uint16(b) + } + priv.Write([]byte{uint8(sum >> 8), uint8(sum)}) + } + + pk.encryptedData = make([]byte, len(privateKeyBytes)) + cfb.XORKeyStream(pk.encryptedData, privateKeyBytes) + pk.Encrypted = true + pk.PrivateKey = nil + return err +} + +// EncryptWithConfig encrypts an unencrypted private key using the passphrase and the config. +func (pk *PrivateKey) EncryptWithConfig(passphrase []byte, config *Config) error { + params, err := s2k.Generate(config.Random(), config.S2K()) + if err != nil { + return err + } + // Derive an encryption key with the configured s2k function. + key := make([]byte, config.Cipher().KeySize()) + s2k, err := params.Function() + if err != nil { + return err + } + s2k(key, passphrase) + // Encrypt the private key with the derived encryption key. + return pk.encrypt(key, params, config.Cipher()) +} + +// EncryptPrivateKeys encrypts all unencrypted keys with the given config and passphrase. +// Only derives one key from the passphrase, which is then used to encrypt each key. +func EncryptPrivateKeys(keys []*PrivateKey, passphrase []byte, config *Config) error { + params, err := s2k.Generate(config.Random(), config.S2K()) + if err != nil { + return err + } + // Derive an encryption key with the configured s2k function. + encryptionKey := make([]byte, config.Cipher().KeySize()) + s2k, err := params.Function() + if err != nil { + return err + } + s2k(encryptionKey, passphrase) + for _, key := range keys { + if key != nil && !key.Dummy() && !key.Encrypted { + err = key.encrypt(encryptionKey, params, config.Cipher()) + if err != nil { + return err + } + } + } + return nil +} + +// Encrypt encrypts an unencrypted private key using a passphrase. +func (pk *PrivateKey) Encrypt(passphrase []byte) error { + // Default config of private key encryption + config := &Config{ + S2KConfig: &s2k.Config{ + S2KMode: s2k.IteratedSaltedS2K, + S2KCount: 65536, + Hash: crypto.SHA256, + } , + DefaultCipher: CipherAES256, + } + return pk.EncryptWithConfig(passphrase, config) +} + +func (pk *PrivateKey) serializePrivateKey(w io.Writer) (err error) { + switch priv := pk.PrivateKey.(type) { + case *rsa.PrivateKey: + err = serializeRSAPrivateKey(w, priv) + case *dsa.PrivateKey: + err = serializeDSAPrivateKey(w, priv) + case *elgamal.PrivateKey: + err = serializeElGamalPrivateKey(w, priv) + case *ecdsa.PrivateKey: + err = serializeECDSAPrivateKey(w, priv) + case *eddsa.PrivateKey: + err = serializeEdDSAPrivateKey(w, priv) + case *ecdh.PrivateKey: + err = serializeECDHPrivateKey(w, priv) + default: + err = errors.InvalidArgumentError("unknown private key type") + } + return +} + +func (pk *PrivateKey) parsePrivateKey(data []byte) (err error) { + switch pk.PublicKey.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoRSAEncryptOnly: + return pk.parseRSAPrivateKey(data) + case PubKeyAlgoDSA: + return pk.parseDSAPrivateKey(data) + case PubKeyAlgoElGamal: + return pk.parseElGamalPrivateKey(data) + case PubKeyAlgoECDSA: + return pk.parseECDSAPrivateKey(data) + case PubKeyAlgoECDH: + return pk.parseECDHPrivateKey(data) + case PubKeyAlgoEdDSA: + return pk.parseEdDSAPrivateKey(data) + } + panic("impossible") +} + +func (pk *PrivateKey) parseRSAPrivateKey(data []byte) (err error) { + rsaPub := pk.PublicKey.PublicKey.(*rsa.PublicKey) + rsaPriv := new(rsa.PrivateKey) + rsaPriv.PublicKey = *rsaPub + + buf := bytes.NewBuffer(data) + d := new(encoding.MPI) + if _, err := d.ReadFrom(buf); err != nil { + return err + } + + p := new(encoding.MPI) + if _, err := p.ReadFrom(buf); err != nil { + return err + } + + q := new(encoding.MPI) + if _, err := q.ReadFrom(buf); err != nil { + return err + } + + rsaPriv.D = new(big.Int).SetBytes(d.Bytes()) + rsaPriv.Primes = make([]*big.Int, 2) + rsaPriv.Primes[0] = new(big.Int).SetBytes(p.Bytes()) + rsaPriv.Primes[1] = new(big.Int).SetBytes(q.Bytes()) + if err := rsaPriv.Validate(); err != nil { + return errors.KeyInvalidError(err.Error()) + } + rsaPriv.Precompute() + pk.PrivateKey = rsaPriv + + return nil +} + +func (pk *PrivateKey) parseDSAPrivateKey(data []byte) (err error) { + dsaPub := pk.PublicKey.PublicKey.(*dsa.PublicKey) + dsaPriv := new(dsa.PrivateKey) + dsaPriv.PublicKey = *dsaPub + + buf := bytes.NewBuffer(data) + x := new(encoding.MPI) + if _, err := x.ReadFrom(buf); err != nil { + return err + } + + dsaPriv.X = new(big.Int).SetBytes(x.Bytes()) + if err := validateDSAParameters(dsaPriv); err != nil { + return err + } + pk.PrivateKey = dsaPriv + + return nil +} + +func (pk *PrivateKey) parseElGamalPrivateKey(data []byte) (err error) { + pub := pk.PublicKey.PublicKey.(*elgamal.PublicKey) + priv := new(elgamal.PrivateKey) + priv.PublicKey = *pub + + buf := bytes.NewBuffer(data) + x := new(encoding.MPI) + if _, err := x.ReadFrom(buf); err != nil { + return err + } + + priv.X = new(big.Int).SetBytes(x.Bytes()) + if err := validateElGamalParameters(priv); err != nil { + return err + } + pk.PrivateKey = priv + + return nil +} + +func (pk *PrivateKey) parseECDSAPrivateKey(data []byte) (err error) { + ecdsaPub := pk.PublicKey.PublicKey.(*ecdsa.PublicKey) + ecdsaPriv := ecdsa.NewPrivateKey(*ecdsaPub) + + buf := bytes.NewBuffer(data) + d := new(encoding.MPI) + if _, err := d.ReadFrom(buf); err != nil { + return err + } + + if err := ecdsaPriv.UnmarshalIntegerSecret(d.Bytes()); err != nil { + return err + } + if err := ecdsa.Validate(ecdsaPriv); err != nil { + return err + } + pk.PrivateKey = ecdsaPriv + + return nil +} + +func (pk *PrivateKey) parseECDHPrivateKey(data []byte) (err error) { + ecdhPub := pk.PublicKey.PublicKey.(*ecdh.PublicKey) + ecdhPriv := ecdh.NewPrivateKey(*ecdhPub) + + buf := bytes.NewBuffer(data) + d := new(encoding.MPI) + if _, err := d.ReadFrom(buf); err != nil { + return err + } + + if err := ecdhPriv.UnmarshalByteSecret(d.Bytes()); err != nil { + return err + } + + if err := ecdh.Validate(ecdhPriv); err != nil { + return err + } + + pk.PrivateKey = ecdhPriv + + return nil +} + +func (pk *PrivateKey) parseEdDSAPrivateKey(data []byte) (err error) { + eddsaPub := pk.PublicKey.PublicKey.(*eddsa.PublicKey) + eddsaPriv := eddsa.NewPrivateKey(*eddsaPub) + eddsaPriv.PublicKey = *eddsaPub + + buf := bytes.NewBuffer(data) + d := new(encoding.MPI) + if _, err := d.ReadFrom(buf); err != nil { + return err + } + + if err = eddsaPriv.UnmarshalByteSecret(d.Bytes()); err != nil { + return err + } + + if err := eddsa.Validate(eddsaPriv); err != nil { + return err + } + + pk.PrivateKey = eddsaPriv + + return nil +} + +func validateDSAParameters(priv *dsa.PrivateKey) error { + p := priv.P // group prime + q := priv.Q // subgroup order + g := priv.G // g has order q mod p + x := priv.X // secret + y := priv.Y // y == g**x mod p + one := big.NewInt(1) + // expect g, y >= 2 and g < p + if g.Cmp(one) <= 0 || y.Cmp(one) <= 0 || g.Cmp(p) > 0 { + return errors.KeyInvalidError("dsa: invalid group") + } + // expect p > q + if p.Cmp(q) <= 0 { + return errors.KeyInvalidError("dsa: invalid group prime") + } + // q should be large enough and divide p-1 + pSub1 := new(big.Int).Sub(p, one) + if q.BitLen() < 150 || new(big.Int).Mod(pSub1, q).Cmp(big.NewInt(0)) != 0 { + return errors.KeyInvalidError("dsa: invalid order") + } + // confirm that g has order q mod p + if !q.ProbablyPrime(32) || new(big.Int).Exp(g, q, p).Cmp(one) != 0 { + return errors.KeyInvalidError("dsa: invalid order") + } + // check y + if new(big.Int).Exp(g, x, p).Cmp(y) != 0 { + return errors.KeyInvalidError("dsa: mismatching values") + } + + return nil +} + +func validateElGamalParameters(priv *elgamal.PrivateKey) error { + p := priv.P // group prime + g := priv.G // g has order p-1 mod p + x := priv.X // secret + y := priv.Y // y == g**x mod p + one := big.NewInt(1) + // Expect g, y >= 2 and g < p + if g.Cmp(one) <= 0 || y.Cmp(one) <= 0 || g.Cmp(p) > 0 { + return errors.KeyInvalidError("elgamal: invalid group") + } + if p.BitLen() < 1024 { + return errors.KeyInvalidError("elgamal: group order too small") + } + pSub1 := new(big.Int).Sub(p, one) + if new(big.Int).Exp(g, pSub1, p).Cmp(one) != 0 { + return errors.KeyInvalidError("elgamal: invalid group") + } + // Since p-1 is not prime, g might have a smaller order that divides p-1. + // We cannot confirm the exact order of g, but we make sure it is not too small. + gExpI := new(big.Int).Set(g) + i := 1 + threshold := 2 << 17 // we want order > threshold + for i < threshold { + i++ // we check every order to make sure key validation is not easily bypassed by guessing y' + gExpI.Mod(new(big.Int).Mul(gExpI, g), p) + if gExpI.Cmp(one) == 0 { + return errors.KeyInvalidError("elgamal: order too small") + } + } + // Check y + if new(big.Int).Exp(g, x, p).Cmp(y) != 0 { + return errors.KeyInvalidError("elgamal: mismatching values") + } + + return nil +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key_test_data.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key_test_data.go new file mode 100644 index 000000000000..029b8f1aab2e --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key_test_data.go @@ -0,0 +1,12 @@ +package packet + +// Generated with `gpg --export-secret-keys "Test Key 2"` +const privKeyRSAHex = "9501fe044cc349a8010400b70ca0010e98c090008d45d1ee8f9113bd5861fd57b88bacb7c68658747663f1e1a3b5a98f32fda6472373c024b97359cd2efc88ff60f77751adfbf6af5e615e6a1408cfad8bf0cea30b0d5f53aa27ad59089ba9b15b7ebc2777a25d7b436144027e3bcd203909f147d0e332b240cf63d3395f5dfe0df0a6c04e8655af7eacdf0011010001fe0303024a252e7d475fd445607de39a265472aa74a9320ba2dac395faa687e9e0336aeb7e9a7397e511b5afd9dc84557c80ac0f3d4d7bfec5ae16f20d41c8c84a04552a33870b930420e230e179564f6d19bb153145e76c33ae993886c388832b0fa042ddda7f133924f3854481533e0ede31d51278c0519b29abc3bf53da673e13e3e1214b52413d179d7f66deee35cac8eacb060f78379d70ef4af8607e68131ff529439668fc39c9ce6dfef8a5ac234d234802cbfb749a26107db26406213ae5c06d4673253a3cbee1fcbae58d6ab77e38d6e2c0e7c6317c48e054edadb5a40d0d48acb44643d998139a8a66bb820be1f3f80185bc777d14b5954b60effe2448a036d565c6bc0b915fcea518acdd20ab07bc1529f561c58cd044f723109b93f6fd99f876ff891d64306b5d08f48bab59f38695e9109c4dec34013ba3153488ce070268381ba923ee1eb77125b36afcb4347ec3478c8f2735b06ef17351d872e577fa95d0c397c88c71b59629a36aec" + +// Generated by `gpg --export-secret-keys` followed by a manual extraction of +// the ElGamal subkey from the packets. +const privKeyElGamalHex = "9d0157044df9ee1a100400eb8e136a58ec39b582629cdadf830bc64e0a94ed8103ca8bb247b27b11b46d1d25297ef4bcc3071785ba0c0bedfe89eabc5287fcc0edf81ab5896c1c8e4b20d27d79813c7aede75320b33eaeeaa586edc00fd1036c10133e6ba0ff277245d0d59d04b2b3421b7244aca5f4a8d870c6f1c1fbff9e1c26699a860b9504f35ca1d700030503fd1ededd3b840795be6d9ccbe3c51ee42e2f39233c432b831ddd9c4e72b7025a819317e47bf94f9ee316d7273b05d5fcf2999c3a681f519b1234bbfa6d359b4752bd9c3f77d6b6456cde152464763414ca130f4e91d91041432f90620fec0e6d6b5116076c2985d5aeaae13be492b9b329efcaf7ee25120159a0a30cd976b42d7afe030302dae7eb80db744d4960c4df930d57e87fe81412eaace9f900e6c839817a614ddb75ba6603b9417c33ea7b6c93967dfa2bcff3fa3c74a5ce2c962db65b03aece14c96cbd0038fc" + +// pkcs1PrivKeyHex is a PKCS#1, RSA private key. +// Generated by `openssl genrsa 1024 | openssl rsa -outform DER | xxd -p` +const pkcs1PrivKeyHex = "3082025d02010002818100e98edfa1c3b35884a54d0b36a6a603b0290fa85e49e30fa23fc94fef9c6790bc4849928607aa48d809da326fb42a969d06ad756b98b9c1a90f5d4a2b6d0ac05953c97f4da3120164a21a679793ce181c906dc01d235cc085ddcdf6ea06c389b6ab8885dfd685959e693138856a68a7e5db263337ff82a088d583a897cf2d59e9020301000102818100b6d5c9eb70b02d5369b3ee5b520a14490b5bde8a317d36f7e4c74b7460141311d1e5067735f8f01d6f5908b2b96fbd881f7a1ab9a84d82753e39e19e2d36856be960d05ac9ef8e8782ea1b6d65aee28fdfe1d61451e8cff0adfe84322f12cf455028b581cf60eb9e0e140ba5d21aeba6c2634d7c65318b9a665fc01c3191ca21024100fa5e818da3705b0fa33278bb28d4b6f6050388af2d4b75ec9375dd91ccf2e7d7068086a8b82a8f6282e4fbbdb8a7f2622eb97295249d87acea7f5f816f54d347024100eecf9406d7dc49cdfb95ab1eff4064de84c7a30f64b2798936a0d2018ba9eb52e4b636f82e96c49cc63b80b675e91e40d1b2e4017d4b9adaf33ab3d9cf1c214f024100c173704ace742c082323066226a4655226819a85304c542b9dacbeacbf5d1881ee863485fcf6f59f3a604f9b42289282067447f2b13dfeed3eab7851fc81e0550240741fc41f3fc002b382eed8730e33c5d8de40256e4accee846667f536832f711ab1d4590e7db91a8a116ac5bff3be13d3f9243ff2e976662aa9b395d907f8e9c9024046a5696c9ef882363e06c9fa4e2f5b580906452befba03f4a99d0f873697ef1f851d2226ca7934b30b7c3e80cb634a67172bbbf4781735fe3e09263e2dd723e7" diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key.go new file mode 100644 index 000000000000..3402b8c140cd --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key.go @@ -0,0 +1,806 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "crypto" + "crypto/dsa" + "crypto/rsa" + "crypto/sha1" + "crypto/sha256" + _ "crypto/sha512" + "encoding/binary" + "fmt" + "hash" + "io" + "math/big" + "strconv" + "time" + + "github.com/ProtonMail/go-crypto/openpgp/ecdh" + "github.com/ProtonMail/go-crypto/openpgp/ecdsa" + "github.com/ProtonMail/go-crypto/openpgp/eddsa" + "github.com/ProtonMail/go-crypto/openpgp/elgamal" + "github.com/ProtonMail/go-crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" + "github.com/ProtonMail/go-crypto/openpgp/internal/ecc" + "github.com/ProtonMail/go-crypto/openpgp/internal/encoding" +) + +type kdfHashFunction byte +type kdfAlgorithm byte + +// PublicKey represents an OpenPGP public key. See RFC 4880, section 5.5.2. +type PublicKey struct { + Version int + CreationTime time.Time + PubKeyAlgo PublicKeyAlgorithm + PublicKey interface{} // *rsa.PublicKey, *dsa.PublicKey, *ecdsa.PublicKey or *eddsa.PublicKey + Fingerprint []byte + KeyId uint64 + IsSubkey bool + + // RFC 4880 fields + n, e, p, q, g, y encoding.Field + + // RFC 6637 fields + // oid contains the OID byte sequence identifying the elliptic curve used + oid encoding.Field + + // kdf stores key derivation function parameters + // used for ECDH encryption. See RFC 6637, Section 9. + kdf encoding.Field +} + +// UpgradeToV5 updates the version of the key to v5, and updates all necessary +// fields. +func (pk *PublicKey) UpgradeToV5() { + pk.Version = 5 + pk.setFingerprintAndKeyId() +} + +// signingKey provides a convenient abstraction over signature verification +// for v3 and v4 public keys. +type signingKey interface { + SerializeForHash(io.Writer) error + SerializeSignaturePrefix(io.Writer) + serializeWithoutHeaders(io.Writer) error +} + +// NewRSAPublicKey returns a PublicKey that wraps the given rsa.PublicKey. +func NewRSAPublicKey(creationTime time.Time, pub *rsa.PublicKey) *PublicKey { + pk := &PublicKey{ + Version: 4, + CreationTime: creationTime, + PubKeyAlgo: PubKeyAlgoRSA, + PublicKey: pub, + n: new(encoding.MPI).SetBig(pub.N), + e: new(encoding.MPI).SetBig(big.NewInt(int64(pub.E))), + } + + pk.setFingerprintAndKeyId() + return pk +} + +// NewDSAPublicKey returns a PublicKey that wraps the given dsa.PublicKey. +func NewDSAPublicKey(creationTime time.Time, pub *dsa.PublicKey) *PublicKey { + pk := &PublicKey{ + Version: 4, + CreationTime: creationTime, + PubKeyAlgo: PubKeyAlgoDSA, + PublicKey: pub, + p: new(encoding.MPI).SetBig(pub.P), + q: new(encoding.MPI).SetBig(pub.Q), + g: new(encoding.MPI).SetBig(pub.G), + y: new(encoding.MPI).SetBig(pub.Y), + } + + pk.setFingerprintAndKeyId() + return pk +} + +// NewElGamalPublicKey returns a PublicKey that wraps the given elgamal.PublicKey. +func NewElGamalPublicKey(creationTime time.Time, pub *elgamal.PublicKey) *PublicKey { + pk := &PublicKey{ + Version: 4, + CreationTime: creationTime, + PubKeyAlgo: PubKeyAlgoElGamal, + PublicKey: pub, + p: new(encoding.MPI).SetBig(pub.P), + g: new(encoding.MPI).SetBig(pub.G), + y: new(encoding.MPI).SetBig(pub.Y), + } + + pk.setFingerprintAndKeyId() + return pk +} + +func NewECDSAPublicKey(creationTime time.Time, pub *ecdsa.PublicKey) *PublicKey { + pk := &PublicKey{ + Version: 4, + CreationTime: creationTime, + PubKeyAlgo: PubKeyAlgoECDSA, + PublicKey: pub, + p: encoding.NewMPI(pub.MarshalPoint()), + } + + curveInfo := ecc.FindByCurve(pub.GetCurve()) + if curveInfo == nil { + panic("unknown elliptic curve") + } + pk.oid = curveInfo.Oid + pk.setFingerprintAndKeyId() + return pk +} + +func NewECDHPublicKey(creationTime time.Time, pub *ecdh.PublicKey) *PublicKey { + var pk *PublicKey + var kdf = encoding.NewOID([]byte{0x1, pub.Hash.Id(), pub.Cipher.Id()}) + pk = &PublicKey{ + Version: 4, + CreationTime: creationTime, + PubKeyAlgo: PubKeyAlgoECDH, + PublicKey: pub, + p: encoding.NewMPI(pub.MarshalPoint()), + kdf: kdf, + } + + curveInfo := ecc.FindByCurve(pub.GetCurve()) + + if curveInfo == nil { + panic("unknown elliptic curve") + } + + pk.oid = curveInfo.Oid + pk.setFingerprintAndKeyId() + return pk +} + +func NewEdDSAPublicKey(creationTime time.Time, pub *eddsa.PublicKey) *PublicKey { + curveInfo := ecc.FindByCurve(pub.GetCurve()) + pk := &PublicKey{ + Version: 4, + CreationTime: creationTime, + PubKeyAlgo: PubKeyAlgoEdDSA, + PublicKey: pub, + oid: curveInfo.Oid, + // Native point format, see draft-koch-eddsa-for-openpgp-04, Appendix B + p: encoding.NewMPI(pub.MarshalPoint()), + } + + pk.setFingerprintAndKeyId() + return pk +} + +func (pk *PublicKey) parse(r io.Reader) (err error) { + // RFC 4880, section 5.5.2 + var buf [6]byte + _, err = readFull(r, buf[:]) + if err != nil { + return + } + if buf[0] != 4 && buf[0] != 5 { + return errors.UnsupportedError("public key version " + strconv.Itoa(int(buf[0]))) + } + + pk.Version = int(buf[0]) + if pk.Version == 5 { + var n [4]byte + _, err = readFull(r, n[:]) + if err != nil { + return + } + } + pk.CreationTime = time.Unix(int64(uint32(buf[1])<<24|uint32(buf[2])<<16|uint32(buf[3])<<8|uint32(buf[4])), 0) + pk.PubKeyAlgo = PublicKeyAlgorithm(buf[5]) + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: + err = pk.parseRSA(r) + case PubKeyAlgoDSA: + err = pk.parseDSA(r) + case PubKeyAlgoElGamal: + err = pk.parseElGamal(r) + case PubKeyAlgoECDSA: + err = pk.parseECDSA(r) + case PubKeyAlgoECDH: + err = pk.parseECDH(r) + case PubKeyAlgoEdDSA: + err = pk.parseEdDSA(r) + default: + err = errors.UnsupportedError("public key type: " + strconv.Itoa(int(pk.PubKeyAlgo))) + } + if err != nil { + return + } + + pk.setFingerprintAndKeyId() + return +} + +func (pk *PublicKey) setFingerprintAndKeyId() { + // RFC 4880, section 12.2 + if pk.Version == 5 { + fingerprint := sha256.New() + pk.SerializeForHash(fingerprint) + pk.Fingerprint = make([]byte, 32) + copy(pk.Fingerprint, fingerprint.Sum(nil)) + pk.KeyId = binary.BigEndian.Uint64(pk.Fingerprint[:8]) + } else { + fingerprint := sha1.New() + pk.SerializeForHash(fingerprint) + pk.Fingerprint = make([]byte, 20) + copy(pk.Fingerprint, fingerprint.Sum(nil)) + pk.KeyId = binary.BigEndian.Uint64(pk.Fingerprint[12:20]) + } +} + +// parseRSA parses RSA public key material from the given Reader. See RFC 4880, +// section 5.5.2. +func (pk *PublicKey) parseRSA(r io.Reader) (err error) { + pk.n = new(encoding.MPI) + if _, err = pk.n.ReadFrom(r); err != nil { + return + } + pk.e = new(encoding.MPI) + if _, err = pk.e.ReadFrom(r); err != nil { + return + } + + if len(pk.e.Bytes()) > 3 { + err = errors.UnsupportedError("large public exponent") + return + } + rsa := &rsa.PublicKey{ + N: new(big.Int).SetBytes(pk.n.Bytes()), + E: 0, + } + for i := 0; i < len(pk.e.Bytes()); i++ { + rsa.E <<= 8 + rsa.E |= int(pk.e.Bytes()[i]) + } + pk.PublicKey = rsa + return +} + +// parseDSA parses DSA public key material from the given Reader. See RFC 4880, +// section 5.5.2. +func (pk *PublicKey) parseDSA(r io.Reader) (err error) { + pk.p = new(encoding.MPI) + if _, err = pk.p.ReadFrom(r); err != nil { + return + } + pk.q = new(encoding.MPI) + if _, err = pk.q.ReadFrom(r); err != nil { + return + } + pk.g = new(encoding.MPI) + if _, err = pk.g.ReadFrom(r); err != nil { + return + } + pk.y = new(encoding.MPI) + if _, err = pk.y.ReadFrom(r); err != nil { + return + } + + dsa := new(dsa.PublicKey) + dsa.P = new(big.Int).SetBytes(pk.p.Bytes()) + dsa.Q = new(big.Int).SetBytes(pk.q.Bytes()) + dsa.G = new(big.Int).SetBytes(pk.g.Bytes()) + dsa.Y = new(big.Int).SetBytes(pk.y.Bytes()) + pk.PublicKey = dsa + return +} + +// parseElGamal parses ElGamal public key material from the given Reader. See +// RFC 4880, section 5.5.2. +func (pk *PublicKey) parseElGamal(r io.Reader) (err error) { + pk.p = new(encoding.MPI) + if _, err = pk.p.ReadFrom(r); err != nil { + return + } + pk.g = new(encoding.MPI) + if _, err = pk.g.ReadFrom(r); err != nil { + return + } + pk.y = new(encoding.MPI) + if _, err = pk.y.ReadFrom(r); err != nil { + return + } + + elgamal := new(elgamal.PublicKey) + elgamal.P = new(big.Int).SetBytes(pk.p.Bytes()) + elgamal.G = new(big.Int).SetBytes(pk.g.Bytes()) + elgamal.Y = new(big.Int).SetBytes(pk.y.Bytes()) + pk.PublicKey = elgamal + return +} + +// parseECDSA parses ECDSA public key material from the given Reader. See +// RFC 6637, Section 9. +func (pk *PublicKey) parseECDSA(r io.Reader) (err error) { + pk.oid = new(encoding.OID) + if _, err = pk.oid.ReadFrom(r); err != nil { + return + } + pk.p = new(encoding.MPI) + if _, err = pk.p.ReadFrom(r); err != nil { + return + } + + curveInfo := ecc.FindByOid(pk.oid) + if curveInfo == nil { + return errors.UnsupportedError(fmt.Sprintf("unknown oid: %x", pk.oid)) + } + + c, ok := curveInfo.Curve.(ecc.ECDSACurve) + if !ok { + return errors.UnsupportedError(fmt.Sprintf("unsupported oid: %x", pk.oid)) + } + + ecdsaKey := ecdsa.NewPublicKey(c) + err = ecdsaKey.UnmarshalPoint(pk.p.Bytes()) + pk.PublicKey = ecdsaKey + + return +} + +// parseECDH parses ECDH public key material from the given Reader. See +// RFC 6637, Section 9. +func (pk *PublicKey) parseECDH(r io.Reader) (err error) { + pk.oid = new(encoding.OID) + if _, err = pk.oid.ReadFrom(r); err != nil { + return + } + pk.p = new(encoding.MPI) + if _, err = pk.p.ReadFrom(r); err != nil { + return + } + pk.kdf = new(encoding.OID) + if _, err = pk.kdf.ReadFrom(r); err != nil { + return + } + + curveInfo := ecc.FindByOid(pk.oid) + + if curveInfo == nil { + return errors.UnsupportedError(fmt.Sprintf("unknown oid: %x", pk.oid)) + } + + c, ok := curveInfo.Curve.(ecc.ECDHCurve) + if !ok { + return errors.UnsupportedError(fmt.Sprintf("unsupported oid: %x", pk.oid)) + } + + if kdfLen := len(pk.kdf.Bytes()); kdfLen < 3 { + return errors.UnsupportedError("unsupported ECDH KDF length: " + strconv.Itoa(kdfLen)) + } + if reserved := pk.kdf.Bytes()[0]; reserved != 0x01 { + return errors.UnsupportedError("unsupported KDF reserved field: " + strconv.Itoa(int(reserved))) + } + kdfHash, ok := algorithm.HashById[pk.kdf.Bytes()[1]] + if !ok { + return errors.UnsupportedError("unsupported ECDH KDF hash: " + strconv.Itoa(int(pk.kdf.Bytes()[1]))) + } + kdfCipher, ok := algorithm.CipherById[pk.kdf.Bytes()[2]] + if !ok { + return errors.UnsupportedError("unsupported ECDH KDF cipher: " + strconv.Itoa(int(pk.kdf.Bytes()[2]))) + } + + ecdhKey := ecdh.NewPublicKey(c, kdfHash, kdfCipher) + err = ecdhKey.UnmarshalPoint(pk.p.Bytes()) + pk.PublicKey = ecdhKey + + return +} + +func (pk *PublicKey) parseEdDSA(r io.Reader) (err error) { + pk.oid = new(encoding.OID) + if _, err = pk.oid.ReadFrom(r); err != nil { + return + } + curveInfo := ecc.FindByOid(pk.oid) + if curveInfo == nil { + return errors.UnsupportedError(fmt.Sprintf("unknown oid: %x", pk.oid)) + } + + c, ok := curveInfo.Curve.(ecc.EdDSACurve) + if !ok { + return errors.UnsupportedError(fmt.Sprintf("unsupported oid: %x", pk.oid)) + } + + pk.p = new(encoding.MPI) + if _, err = pk.p.ReadFrom(r); err != nil { + return + } + + if len(pk.p.Bytes()) == 0 { + return errors.StructuralError("empty EdDSA public key") + } + + pub := eddsa.NewPublicKey(c) + + switch flag := pk.p.Bytes()[0]; flag { + case 0x04: + // TODO: see _grcy_ecc_eddsa_ensure_compact in grcypt + return errors.UnsupportedError("unsupported EdDSA compression: " + strconv.Itoa(int(flag))) + case 0x40: + err = pub.UnmarshalPoint(pk.p.Bytes()) + default: + return errors.UnsupportedError("unsupported EdDSA compression: " + strconv.Itoa(int(flag))) + } + + pk.PublicKey = pub + return +} + +// SerializeForHash serializes the PublicKey to w with the special packet +// header format needed for hashing. +func (pk *PublicKey) SerializeForHash(w io.Writer) error { + pk.SerializeSignaturePrefix(w) + return pk.serializeWithoutHeaders(w) +} + +// SerializeSignaturePrefix writes the prefix for this public key to the given Writer. +// The prefix is used when calculating a signature over this public key. See +// RFC 4880, section 5.2.4. +func (pk *PublicKey) SerializeSignaturePrefix(w io.Writer) { + var pLength = pk.algorithmSpecificByteCount() + if pk.Version == 5 { + pLength += 10 // version, timestamp (4), algorithm, key octet count (4). + w.Write([]byte{ + 0x9A, + byte(pLength >> 24), + byte(pLength >> 16), + byte(pLength >> 8), + byte(pLength), + }) + return + } + pLength += 6 + w.Write([]byte{0x99, byte(pLength >> 8), byte(pLength)}) +} + +func (pk *PublicKey) Serialize(w io.Writer) (err error) { + length := 6 // 6 byte header + length += pk.algorithmSpecificByteCount() + if pk.Version == 5 { + length += 4 // octet key count + } + packetType := packetTypePublicKey + if pk.IsSubkey { + packetType = packetTypePublicSubkey + } + err = serializeHeader(w, packetType, length) + if err != nil { + return + } + return pk.serializeWithoutHeaders(w) +} + +func (pk *PublicKey) algorithmSpecificByteCount() int { + length := 0 + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: + length += int(pk.n.EncodedLength()) + length += int(pk.e.EncodedLength()) + case PubKeyAlgoDSA: + length += int(pk.p.EncodedLength()) + length += int(pk.q.EncodedLength()) + length += int(pk.g.EncodedLength()) + length += int(pk.y.EncodedLength()) + case PubKeyAlgoElGamal: + length += int(pk.p.EncodedLength()) + length += int(pk.g.EncodedLength()) + length += int(pk.y.EncodedLength()) + case PubKeyAlgoECDSA: + length += int(pk.oid.EncodedLength()) + length += int(pk.p.EncodedLength()) + case PubKeyAlgoECDH: + length += int(pk.oid.EncodedLength()) + length += int(pk.p.EncodedLength()) + length += int(pk.kdf.EncodedLength()) + case PubKeyAlgoEdDSA: + length += int(pk.oid.EncodedLength()) + length += int(pk.p.EncodedLength()) + default: + panic("unknown public key algorithm") + } + return length +} + +// serializeWithoutHeaders marshals the PublicKey to w in the form of an +// OpenPGP public key packet, not including the packet header. +func (pk *PublicKey) serializeWithoutHeaders(w io.Writer) (err error) { + t := uint32(pk.CreationTime.Unix()) + if _, err = w.Write([]byte{ + byte(pk.Version), + byte(t >> 24), byte(t >> 16), byte(t >> 8), byte(t), + byte(pk.PubKeyAlgo), + }); err != nil { + return + } + + if pk.Version == 5 { + n := pk.algorithmSpecificByteCount() + if _, err = w.Write([]byte{ + byte(n >> 24), byte(n >> 16), byte(n >> 8), byte(n), + }); err != nil { + return + } + } + + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: + if _, err = w.Write(pk.n.EncodedBytes()); err != nil { + return + } + _, err = w.Write(pk.e.EncodedBytes()) + return + case PubKeyAlgoDSA: + if _, err = w.Write(pk.p.EncodedBytes()); err != nil { + return + } + if _, err = w.Write(pk.q.EncodedBytes()); err != nil { + return + } + if _, err = w.Write(pk.g.EncodedBytes()); err != nil { + return + } + _, err = w.Write(pk.y.EncodedBytes()) + return + case PubKeyAlgoElGamal: + if _, err = w.Write(pk.p.EncodedBytes()); err != nil { + return + } + if _, err = w.Write(pk.g.EncodedBytes()); err != nil { + return + } + _, err = w.Write(pk.y.EncodedBytes()) + return + case PubKeyAlgoECDSA: + if _, err = w.Write(pk.oid.EncodedBytes()); err != nil { + return + } + _, err = w.Write(pk.p.EncodedBytes()) + return + case PubKeyAlgoECDH: + if _, err = w.Write(pk.oid.EncodedBytes()); err != nil { + return + } + if _, err = w.Write(pk.p.EncodedBytes()); err != nil { + return + } + _, err = w.Write(pk.kdf.EncodedBytes()) + return + case PubKeyAlgoEdDSA: + if _, err = w.Write(pk.oid.EncodedBytes()); err != nil { + return + } + _, err = w.Write(pk.p.EncodedBytes()) + return + } + return errors.InvalidArgumentError("bad public-key algorithm") +} + +// CanSign returns true iff this public key can generate signatures +func (pk *PublicKey) CanSign() bool { + return pk.PubKeyAlgo != PubKeyAlgoRSAEncryptOnly && pk.PubKeyAlgo != PubKeyAlgoElGamal && pk.PubKeyAlgo != PubKeyAlgoECDH +} + +// VerifySignature returns nil iff sig is a valid signature, made by this +// public key, of the data hashed into signed. signed is mutated by this call. +func (pk *PublicKey) VerifySignature(signed hash.Hash, sig *Signature) (err error) { + if !pk.CanSign() { + return errors.InvalidArgumentError("public key cannot generate signatures") + } + if sig.Version == 5 && (sig.SigType == 0x00 || sig.SigType == 0x01) { + sig.AddMetadataToHashSuffix() + } + signed.Write(sig.HashSuffix) + hashBytes := signed.Sum(nil) + if sig.Version == 5 && (hashBytes[0] != sig.HashTag[0] || hashBytes[1] != sig.HashTag[1]) { + return errors.SignatureError("hash tag doesn't match") + } + + if pk.PubKeyAlgo != sig.PubKeyAlgo { + return errors.InvalidArgumentError("public key and signature use different algorithms") + } + + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: + rsaPublicKey, _ := pk.PublicKey.(*rsa.PublicKey) + err = rsa.VerifyPKCS1v15(rsaPublicKey, sig.Hash, hashBytes, padToKeySize(rsaPublicKey, sig.RSASignature.Bytes())) + if err != nil { + return errors.SignatureError("RSA verification failure") + } + return nil + case PubKeyAlgoDSA: + dsaPublicKey, _ := pk.PublicKey.(*dsa.PublicKey) + // Need to truncate hashBytes to match FIPS 186-3 section 4.6. + subgroupSize := (dsaPublicKey.Q.BitLen() + 7) / 8 + if len(hashBytes) > subgroupSize { + hashBytes = hashBytes[:subgroupSize] + } + if !dsa.Verify(dsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.DSASigR.Bytes()), new(big.Int).SetBytes(sig.DSASigS.Bytes())) { + return errors.SignatureError("DSA verification failure") + } + return nil + case PubKeyAlgoECDSA: + ecdsaPublicKey := pk.PublicKey.(*ecdsa.PublicKey) + if !ecdsa.Verify(ecdsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.ECDSASigR.Bytes()), new(big.Int).SetBytes(sig.ECDSASigS.Bytes())) { + return errors.SignatureError("ECDSA verification failure") + } + return nil + case PubKeyAlgoEdDSA: + eddsaPublicKey := pk.PublicKey.(*eddsa.PublicKey) + if !eddsa.Verify(eddsaPublicKey, hashBytes, sig.EdDSASigR.Bytes(), sig.EdDSASigS.Bytes()) { + return errors.SignatureError("EdDSA verification failure") + } + return nil + default: + return errors.SignatureError("Unsupported public key algorithm used in signature") + } +} + +// keySignatureHash returns a Hash of the message that needs to be signed for +// pk to assert a subkey relationship to signed. +func keySignatureHash(pk, signed signingKey, hashFunc crypto.Hash) (h hash.Hash, err error) { + if !hashFunc.Available() { + return nil, errors.UnsupportedError("hash function") + } + h = hashFunc.New() + + // RFC 4880, section 5.2.4 + err = pk.SerializeForHash(h) + if err != nil { + return nil, err + } + + err = signed.SerializeForHash(h) + return +} + +// VerifyKeySignature returns nil iff sig is a valid signature, made by this +// public key, of signed. +func (pk *PublicKey) VerifyKeySignature(signed *PublicKey, sig *Signature) error { + h, err := keySignatureHash(pk, signed, sig.Hash) + if err != nil { + return err + } + if err = pk.VerifySignature(h, sig); err != nil { + return err + } + + if sig.FlagSign { + // Signing subkeys must be cross-signed. See + // https://www.gnupg.org/faq/subkey-cross-certify.html. + if sig.EmbeddedSignature == nil { + return errors.StructuralError("signing subkey is missing cross-signature") + } + // Verify the cross-signature. This is calculated over the same + // data as the main signature, so we cannot just recursively + // call signed.VerifyKeySignature(...) + if h, err = keySignatureHash(pk, signed, sig.EmbeddedSignature.Hash); err != nil { + return errors.StructuralError("error while hashing for cross-signature: " + err.Error()) + } + if err := signed.VerifySignature(h, sig.EmbeddedSignature); err != nil { + return errors.StructuralError("error while verifying cross-signature: " + err.Error()) + } + } + + return nil +} + +func keyRevocationHash(pk signingKey, hashFunc crypto.Hash) (h hash.Hash, err error) { + if !hashFunc.Available() { + return nil, errors.UnsupportedError("hash function") + } + h = hashFunc.New() + + // RFC 4880, section 5.2.4 + err = pk.SerializeForHash(h) + + return +} + +// VerifyRevocationSignature returns nil iff sig is a valid signature, made by this +// public key. +func (pk *PublicKey) VerifyRevocationSignature(sig *Signature) (err error) { + h, err := keyRevocationHash(pk, sig.Hash) + if err != nil { + return err + } + return pk.VerifySignature(h, sig) +} + +// VerifySubkeyRevocationSignature returns nil iff sig is a valid subkey revocation signature, +// made by this public key, of signed. +func (pk *PublicKey) VerifySubkeyRevocationSignature(sig *Signature, signed *PublicKey) (err error) { + h, err := keySignatureHash(pk, signed, sig.Hash) + if err != nil { + return err + } + return pk.VerifySignature(h, sig) +} + +// userIdSignatureHash returns a Hash of the message that needs to be signed +// to assert that pk is a valid key for id. +func userIdSignatureHash(id string, pk *PublicKey, hashFunc crypto.Hash) (h hash.Hash, err error) { + if !hashFunc.Available() { + return nil, errors.UnsupportedError("hash function") + } + h = hashFunc.New() + + // RFC 4880, section 5.2.4 + pk.SerializeSignaturePrefix(h) + pk.serializeWithoutHeaders(h) + + var buf [5]byte + buf[0] = 0xb4 + buf[1] = byte(len(id) >> 24) + buf[2] = byte(len(id) >> 16) + buf[3] = byte(len(id) >> 8) + buf[4] = byte(len(id)) + h.Write(buf[:]) + h.Write([]byte(id)) + + return +} + +// VerifyUserIdSignature returns nil iff sig is a valid signature, made by this +// public key, that id is the identity of pub. +func (pk *PublicKey) VerifyUserIdSignature(id string, pub *PublicKey, sig *Signature) (err error) { + h, err := userIdSignatureHash(id, pub, sig.Hash) + if err != nil { + return err + } + return pk.VerifySignature(h, sig) +} + +// KeyIdString returns the public key's fingerprint in capital hex +// (e.g. "6C7EE1B8621CC013"). +func (pk *PublicKey) KeyIdString() string { + return fmt.Sprintf("%X", pk.Fingerprint[12:20]) +} + +// KeyIdShortString returns the short form of public key's fingerprint +// in capital hex, as shown by gpg --list-keys (e.g. "621CC013"). +func (pk *PublicKey) KeyIdShortString() string { + return fmt.Sprintf("%X", pk.Fingerprint[16:20]) +} + +// BitLength returns the bit length for the given public key. +func (pk *PublicKey) BitLength() (bitLength uint16, err error) { + switch pk.PubKeyAlgo { + case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: + bitLength = pk.n.BitLength() + case PubKeyAlgoDSA: + bitLength = pk.p.BitLength() + case PubKeyAlgoElGamal: + bitLength = pk.p.BitLength() + case PubKeyAlgoECDSA: + bitLength = pk.p.BitLength() + case PubKeyAlgoECDH: + bitLength = pk.p.BitLength() + case PubKeyAlgoEdDSA: + bitLength = pk.p.BitLength() + default: + err = errors.InvalidArgumentError("bad public-key algorithm") + } + return +} + +// KeyExpired returns whether sig is a self-signature of a key that has +// expired or is created in the future. +func (pk *PublicKey) KeyExpired(sig *Signature, currentTime time.Time) bool { + if pk.CreationTime.After(currentTime) { + return true + } + if sig.KeyLifetimeSecs == nil || *sig.KeyLifetimeSecs == 0 { + return false + } + expiry := pk.CreationTime.Add(time.Duration(*sig.KeyLifetimeSecs) * time.Second) + return currentTime.After(expiry) +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key_test_data.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key_test_data.go new file mode 100644 index 000000000000..b255f1f6f8f5 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key_test_data.go @@ -0,0 +1,24 @@ +package packet + +const rsaFingerprintHex = "5fb74b1d03b1e3cb31bc2f8aa34d7e18c20c31bb" + +const rsaPkDataHex = "988d044d3c5c10010400b1d13382944bd5aba23a4312968b5095d14f947f600eb478e14a6fcb16b0e0cac764884909c020bc495cfcc39a935387c661507bdb236a0612fb582cac3af9b29cc2c8c70090616c41b662f4da4c1201e195472eb7f4ae1ccbcbf9940fe21d985e379a5563dde5b9a23d35f1cfaa5790da3b79db26f23695107bfaca8e7b5bcd0011010001" + +const dsaFingerprintHex = "eece4c094db002103714c63c8e8fbe54062f19ed" + +const dsaPkDataHex = "9901a2044d432f89110400cd581334f0d7a1e1bdc8b9d6d8c0baf68793632735d2bb0903224cbaa1dfbf35a60ee7a13b92643421e1eb41aa8d79bea19a115a677f6b8ba3c7818ce53a6c2a24a1608bd8b8d6e55c5090cbde09dd26e356267465ae25e69ec8bdd57c7bbb2623e4d73336f73a0a9098f7f16da2e25252130fd694c0e8070c55a812a423ae7f00a0ebf50e70c2f19c3520a551bd4b08d30f23530d3d03ff7d0bf4a53a64a09dc5e6e6e35854b7d70c882b0c60293401958b1bd9e40abec3ea05ba87cf64899299d4bd6aa7f459c201d3fbbd6c82004bdc5e8a9eb8082d12054cc90fa9d4ec251a843236a588bf49552441817436c4f43326966fe85447d4e6d0acf8fa1ef0f014730770603ad7634c3088dc52501c237328417c31c89ed70400b2f1a98b0bf42f11fefc430704bebbaa41d9f355600c3facee1e490f64208e0e094ea55e3a598a219a58500bf78ac677b670a14f4e47e9cf8eab4f368cc1ddcaa18cc59309d4cc62dd4f680e73e6cc3e1ce87a84d0925efbcb26c575c093fc42eecf45135fabf6403a25c2016e1774c0484e440a18319072c617cc97ac0a3bb0" + +const ecdsaFingerprintHex = "9892270b38b8980b05c8d56d43fe956c542ca00b" + +const ecdsaPkDataHex = "9893045071c29413052b8104002304230401f4867769cedfa52c325018896245443968e52e51d0c2df8d939949cb5b330f2921711fbee1c9b9dddb95d15cb0255e99badeddda7cc23d9ddcaacbc290969b9f24019375d61c2e4e3b36953a28d8b2bc95f78c3f1d592fb24499be348656a7b17e3963187b4361afe497bc5f9f81213f04069f8e1fb9e6a6290ae295ca1a92b894396cb4" + +const ecdhFingerprintHex = "722354df2475a42164d1d49faa8b938f9a201946" + +const ecdhPkDataHex = "b90073044d53059212052b810400220303042faa84024a20b6735c4897efa5bfb41bf85b7eefeab5ca0cb9ffc8ea04a46acb25534a577694f9e25340a4ab5223a9dd1eda530c8aa2e6718db10d7e672558c7736fe09369ea5739a2a3554bf16d41faa50562f11c6d39bbd5dffb6b9a9ec91803010909" + +const eddsaFingerprintHex = "b2d5e5ec0e6deca6bc8eeeb00907e75e1dd99ad8" + +const eddsaPkDataHex = "98330456e2132b16092b06010401da470f01010740bbda39266affa511a8c2d02edf690fb784b0499c4406185811a163539ef11dc1b41d74657374696e67203c74657374696e674074657374696e672e636f6d3e8879041316080021050256e2132b021b03050b09080702061508090a0b020416020301021e01021780000a09100907e75e1dd99ad86d0c00fe39d2008359352782bc9b61ac382584cd8eff3f57a18c2287e3afeeb05d1f04ba00fe2d0bc1ddf3ff8adb9afa3e7d9287244b4ec567f3db4d60b74a9b5465ed528203" + +// Source: https://sites.google.com/site/brainhub/pgpecckeys#TOC-ECC-NIST-P-384-key +const ecc384PubHex = `99006f044d53059213052b81040022030304f6b8c5aced5b84ef9f4a209db2e4a9dfb70d28cb8c10ecd57674a9fa5a67389942b62d5e51367df4c7bfd3f8e500feecf07ed265a621a8ebbbe53e947ec78c677eba143bd1533c2b350e1c29f82313e1e1108eba063be1e64b10e6950e799c2db42465635f6473615f64685f333834203c6f70656e70677040627261696e6875622e6f72673e8900cb04101309005305024d530592301480000000002000077072656665727265642d656d61696c2d656e636f64696e67407067702e636f6d7067706d696d65040b090807021901051b03000000021602051e010000000415090a08000a0910098033880f54719fca2b0180aa37350968bd5f115afd8ce7bc7b103822152dbff06d0afcda835329510905b98cb469ba208faab87c7412b799e7b633017f58364ea480e8a1a3f253a0c5f22c446e8be9a9fce6210136ee30811abbd49139de28b5bdf8dc36d06ae748579e9ff503b90073044d53059212052b810400220303042faa84024a20b6735c4897efa5bfb41bf85b7eefeab5ca0cb9ffc8ea04a46acb25534a577694f9e25340a4ab5223a9dd1eda530c8aa2e6718db10d7e672558c7736fe09369ea5739a2a3554bf16d41faa50562f11c6d39bbd5dffb6b9a9ec9180301090989008404181309000c05024d530592051b0c000000000a0910098033880f54719f80970180eee7a6d8fcee41ee4f9289df17f9bcf9d955dca25c583b94336f3a2b2d4986dc5cf417b8d2dc86f741a9e1a6d236c0e3017d1c76575458a0cfb93ae8a2b274fcc65ceecd7a91eec83656ba13219969f06945b48c56bd04152c3a0553c5f2f4bd1267` diff --git a/vendor/golang.org/x/crypto/openpgp/packet/reader.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/reader.go similarity index 83% rename from vendor/golang.org/x/crypto/openpgp/packet/reader.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/packet/reader.go index 34bc7c613e6e..10215fe5f233 100644 --- a/vendor/golang.org/x/crypto/openpgp/packet/reader.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/reader.go @@ -5,8 +5,9 @@ package packet import ( - "golang.org/x/crypto/openpgp/errors" "io" + + "github.com/ProtonMail/go-crypto/openpgp/errors" ) // Reader reads packets from an io.Reader and allows packets to be 'unread' so @@ -42,9 +43,18 @@ func (r *Reader) Next() (p Packet, err error) { r.readers = r.readers[:len(r.readers)-1] continue } - if _, ok := err.(errors.UnknownPacketTypeError); !ok { - return nil, err + // TODO: Add strict mode that rejects unknown packets, instead of ignoring them. + if _, ok := err.(errors.UnknownPacketTypeError); ok { + continue + } + if _, ok := err.(errors.UnsupportedError); ok { + switch p.(type) { + case *SymmetricallyEncrypted, *AEADEncrypted, *Compressed, *LiteralData: + return nil, err + } + continue } + return nil, err } return nil, io.EOF diff --git a/vendor/golang.org/x/crypto/openpgp/packet/signature.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/signature.go similarity index 50% rename from vendor/golang.org/x/crypto/openpgp/packet/signature.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/packet/signature.go index b2a24a532327..80d0bb98e0f4 100644 --- a/vendor/golang.org/x/crypto/openpgp/packet/signature.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/signature.go @@ -8,17 +8,17 @@ import ( "bytes" "crypto" "crypto/dsa" - "crypto/ecdsa" - "encoding/asn1" "encoding/binary" "hash" "io" - "math/big" "strconv" "time" - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/s2k" + "github.com/ProtonMail/go-crypto/openpgp/ecdsa" + "github.com/ProtonMail/go-crypto/openpgp/eddsa" + "github.com/ProtonMail/go-crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" + "github.com/ProtonMail/go-crypto/openpgp/internal/encoding" ) const ( @@ -27,10 +27,15 @@ const ( KeyFlagSign KeyFlagEncryptCommunications KeyFlagEncryptStorage + KeyFlagSplitKey + KeyFlagAuthenticate + _ + KeyFlagGroupKey ) // Signature represents a signature. See RFC 4880, section 5.2. type Signature struct { + Version int SigType SignatureType PubKeyAlgo PublicKeyAlgorithm Hash crypto.Hash @@ -39,12 +44,19 @@ type Signature struct { HashSuffix []byte // HashTag contains the first two bytes of the hash for fast rejection // of bad signed data. - HashTag [2]byte + HashTag [2]byte + + // Metadata includes format, filename and time, and is protected by v5 + // signatures of type 0x00 or 0x01. This metadata is included into the hash + // computation; if nil, six 0x00 bytes are used instead. See section 5.2.4. + Metadata *LiteralData + CreationTime time.Time - RSASignature parsedMPI - DSASigR, DSASigS parsedMPI - ECDSASigR, ECDSASigS parsedMPI + RSASignature encoding.Field + DSASigR, DSASigS encoding.Field + ECDSASigR, ECDSASigS encoding.Field + EdDSASigR, EdDSASigS encoding.Field // rawSubpackets contains the unparsed subpackets, in order. rawSubpackets []outputSubpacket @@ -54,22 +66,44 @@ type Signature struct { SigLifetimeSecs, KeyLifetimeSecs *uint32 PreferredSymmetric, PreferredHash, PreferredCompression []uint8 + PreferredCipherSuites [][2]uint8 IssuerKeyId *uint64 + IssuerFingerprint []byte + SignerUserId *string IsPrimaryId *bool + Notations []*Notation + + // TrustLevel and TrustAmount can be set by the signer to assert that + // the key is not only valid but also trustworthy at the specified + // level. + // See RFC 4880, section 5.2.3.13 for details. + TrustLevel TrustLevel + TrustAmount TrustAmount + + // TrustRegularExpression can be used in conjunction with trust Signature + // packets to limit the scope of the trust that is extended. + // See RFC 4880, section 5.2.3.14 for details. + TrustRegularExpression *string + + // PolicyURI can be set to the URI of a document that describes the + // policy under which the signature was issued. See RFC 4880, section + // 5.2.3.20 for details. + PolicyURI string // FlagsValid is set if any flags were given. See RFC 4880, section // 5.2.3.21 for details. - FlagsValid bool - FlagCertify, FlagSign, FlagEncryptCommunications, FlagEncryptStorage bool + FlagsValid bool + FlagCertify, FlagSign, FlagEncryptCommunications, FlagEncryptStorage, FlagSplitKey, FlagAuthenticate, FlagGroupKey bool // RevocationReason is set if this signature has been revoked. // See RFC 4880, section 5.2.3.23 for details. - RevocationReason *uint8 + RevocationReason *ReasonForRevocation RevocationReasonText string - // MDC is set if this signature has a feature packet that indicates - // support for MDC subpackets. - MDC bool + // In a self-signature, these flags are set there is a features subpacket + // indicating that the issuer implementation supports these features + // see https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh#features-subpacket + SEIPDv1, SEIPDv2 bool // EmbeddedSignature, if non-nil, is a signature of the parent key, by // this key. This prevents an attacker from claiming another's signing @@ -86,11 +120,11 @@ func (sig *Signature) parse(r io.Reader) (err error) { if err != nil { return } - if buf[0] != 4 { + if buf[0] != 4 && buf[0] != 5 { err = errors.UnsupportedError("signature packet version " + strconv.Itoa(int(buf[0]))) return } - + sig.Version = int(buf[0]) _, err = readFull(r, buf[:5]) if err != nil { return @@ -98,36 +132,34 @@ func (sig *Signature) parse(r io.Reader) (err error) { sig.SigType = SignatureType(buf[0]) sig.PubKeyAlgo = PublicKeyAlgorithm(buf[1]) switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA, PubKeyAlgoECDSA: + case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA, PubKeyAlgoECDSA, PubKeyAlgoEdDSA: default: err = errors.UnsupportedError("public key algorithm " + strconv.Itoa(int(sig.PubKeyAlgo))) return } var ok bool - sig.Hash, ok = s2k.HashIdToHash(buf[2]) + + if sig.Version < 5 { + sig.Hash, ok = algorithm.HashIdToHashWithSha1(buf[2]) + } else { + sig.Hash, ok = algorithm.HashIdToHash(buf[2]) + } + if !ok { return errors.UnsupportedError("hash function " + strconv.Itoa(int(buf[2]))) } hashedSubpacketsLength := int(buf[3])<<8 | int(buf[4]) - l := 6 + hashedSubpacketsLength - sig.HashSuffix = make([]byte, l+6) - sig.HashSuffix[0] = 4 - copy(sig.HashSuffix[1:], buf[:5]) - hashedSubpackets := sig.HashSuffix[6:l] + hashedSubpackets := make([]byte, hashedSubpacketsLength) _, err = readFull(r, hashedSubpackets) if err != nil { return } - // See RFC 4880, section 5.2.4 - trailer := sig.HashSuffix[l:] - trailer[0] = 4 - trailer[1] = 0xff - trailer[2] = uint8(l >> 24) - trailer[3] = uint8(l >> 16) - trailer[4] = uint8(l >> 8) - trailer[5] = uint8(l) + err = sig.buildHashSuffix(hashedSubpackets) + if err != nil { + return + } err = parseSignatureSubpackets(sig, hashedSubpackets, true) if err != nil { @@ -156,16 +188,33 @@ func (sig *Signature) parse(r io.Reader) (err error) { switch sig.PubKeyAlgo { case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - sig.RSASignature.bytes, sig.RSASignature.bitLength, err = readMPI(r) + sig.RSASignature = new(encoding.MPI) + _, err = sig.RSASignature.ReadFrom(r) case PubKeyAlgoDSA: - sig.DSASigR.bytes, sig.DSASigR.bitLength, err = readMPI(r) - if err == nil { - sig.DSASigS.bytes, sig.DSASigS.bitLength, err = readMPI(r) + sig.DSASigR = new(encoding.MPI) + if _, err = sig.DSASigR.ReadFrom(r); err != nil { + return } + + sig.DSASigS = new(encoding.MPI) + _, err = sig.DSASigS.ReadFrom(r) case PubKeyAlgoECDSA: - sig.ECDSASigR.bytes, sig.ECDSASigR.bitLength, err = readMPI(r) - if err == nil { - sig.ECDSASigS.bytes, sig.ECDSASigS.bitLength, err = readMPI(r) + sig.ECDSASigR = new(encoding.MPI) + if _, err = sig.ECDSASigR.ReadFrom(r); err != nil { + return + } + + sig.ECDSASigS = new(encoding.MPI) + _, err = sig.ECDSASigS.ReadFrom(r) + case PubKeyAlgoEdDSA: + sig.EdDSASigR = new(encoding.MPI) + if _, err = sig.EdDSASigR.ReadFrom(r); err != nil { + return + } + + sig.EdDSASigS = new(encoding.MPI) + if _, err = sig.EdDSASigS.ReadFrom(r); err != nil { + return } default: panic("unreachable") @@ -195,16 +244,23 @@ type signatureSubpacketType uint8 const ( creationTimeSubpacket signatureSubpacketType = 2 signatureExpirationSubpacket signatureSubpacketType = 3 + trustSubpacket signatureSubpacketType = 5 + regularExpressionSubpacket signatureSubpacketType = 6 keyExpirationSubpacket signatureSubpacketType = 9 prefSymmetricAlgosSubpacket signatureSubpacketType = 11 issuerSubpacket signatureSubpacketType = 16 + notationDataSubpacket signatureSubpacketType = 20 prefHashAlgosSubpacket signatureSubpacketType = 21 prefCompressionSubpacket signatureSubpacketType = 22 primaryUserIdSubpacket signatureSubpacketType = 25 + policyUriSubpacket signatureSubpacketType = 26 keyFlagsSubpacket signatureSubpacketType = 27 + signerUserIdSubpacket signatureSubpacketType = 28 reasonForRevocationSubpacket signatureSubpacketType = 29 featuresSubpacket signatureSubpacketType = 30 embeddedSignatureSubpacket signatureSubpacketType = 32 + issuerFingerprintSubpacket signatureSubpacketType = 33 + prefCipherSuitesSubpacket signatureSubpacketType = 39 ) // parseSignatureSubpacket parses a single subpacket. len(subpacket) is >= 1. @@ -215,6 +271,10 @@ func parseSignatureSubpacket(sig *Signature, subpacket []byte, isHashed bool) (r packetType signatureSubpacketType isCritical bool ) + if len(subpacket) == 0 { + err = errors.StructuralError("zero length signature subpacket") + return + } switch { case subpacket[0] < 192: length = uint32(subpacket[0]) @@ -248,12 +308,14 @@ func parseSignatureSubpacket(sig *Signature, subpacket []byte, isHashed bool) (r isCritical = subpacket[0]&0x80 == 0x80 subpacket = subpacket[1:] sig.rawSubpackets = append(sig.rawSubpackets, outputSubpacket{isHashed, packetType, isCritical, subpacket}) + if !isHashed && + packetType != issuerSubpacket && + packetType != issuerFingerprintSubpacket && + packetType != embeddedSignatureSubpacket { + return + } switch packetType { case creationTimeSubpacket: - if !isHashed { - err = errors.StructuralError("signature creation time in non-hashed area") - return - } if len(subpacket) != 4 { err = errors.StructuralError("signature creation time not four bytes") return @@ -262,20 +324,35 @@ func parseSignatureSubpacket(sig *Signature, subpacket []byte, isHashed bool) (r sig.CreationTime = time.Unix(int64(t), 0) case signatureExpirationSubpacket: // Signature expiration time, section 5.2.3.10 - if !isHashed { - return - } if len(subpacket) != 4 { err = errors.StructuralError("expiration subpacket with bad length") return } sig.SigLifetimeSecs = new(uint32) *sig.SigLifetimeSecs = binary.BigEndian.Uint32(subpacket) - case keyExpirationSubpacket: - // Key expiration time, section 5.2.3.6 - if !isHashed { + case trustSubpacket: + if len(subpacket) != 2 { + err = errors.StructuralError("trust subpacket with bad length") return } + // Trust level and amount, section 5.2.3.13 + sig.TrustLevel = TrustLevel(subpacket[0]) + sig.TrustAmount = TrustAmount(subpacket[1]) + case regularExpressionSubpacket: + if len(subpacket) == 0 { + err = errors.StructuralError("regexp subpacket with bad length") + return + } + // Trust regular expression, section 5.2.3.14 + // RFC specifies the string should be null-terminated; remove a null byte from the end + if subpacket[len(subpacket)-1] != 0x00 { + err = errors.StructuralError("expected regular expression to be null-terminated") + return + } + trustRegularExpression := string(subpacket[:len(subpacket)-1]) + sig.TrustRegularExpression = &trustRegularExpression + case keyExpirationSubpacket: + // Key expiration time, section 5.2.3.6 if len(subpacket) != 4 { err = errors.StructuralError("key expiration subpacket with bad length") return @@ -284,38 +361,52 @@ func parseSignatureSubpacket(sig *Signature, subpacket []byte, isHashed bool) (r *sig.KeyLifetimeSecs = binary.BigEndian.Uint32(subpacket) case prefSymmetricAlgosSubpacket: // Preferred symmetric algorithms, section 5.2.3.7 - if !isHashed { - return - } sig.PreferredSymmetric = make([]byte, len(subpacket)) copy(sig.PreferredSymmetric, subpacket) case issuerSubpacket: // Issuer, section 5.2.3.5 + if sig.Version > 4 { + err = errors.StructuralError("issuer subpacket found in v5 key") + return + } if len(subpacket) != 8 { err = errors.StructuralError("issuer subpacket with bad length") return } sig.IssuerKeyId = new(uint64) *sig.IssuerKeyId = binary.BigEndian.Uint64(subpacket) - case prefHashAlgosSubpacket: - // Preferred hash algorithms, section 5.2.3.8 - if !isHashed { + case notationDataSubpacket: + // Notation data, section 5.2.3.16 + if len(subpacket) < 8 { + err = errors.StructuralError("notation data subpacket with bad length") + return + } + + nameLength := uint32(subpacket[4])<<8 | uint32(subpacket[5]) + valueLength := uint32(subpacket[6])<<8 | uint32(subpacket[7]) + if len(subpacket) != int(nameLength)+int(valueLength)+8 { + err = errors.StructuralError("notation data subpacket with bad length") return } + + notation := Notation{ + IsHumanReadable: (subpacket[0] & 0x80) == 0x80, + Name: string(subpacket[8:(nameLength + 8)]), + Value: subpacket[(nameLength + 8):(valueLength + nameLength + 8)], + IsCritical: isCritical, + } + + sig.Notations = append(sig.Notations, ¬ation) + case prefHashAlgosSubpacket: + // Preferred hash algorithms, section 5.2.3.8 sig.PreferredHash = make([]byte, len(subpacket)) copy(sig.PreferredHash, subpacket) case prefCompressionSubpacket: // Preferred compression algorithms, section 5.2.3.9 - if !isHashed { - return - } sig.PreferredCompression = make([]byte, len(subpacket)) copy(sig.PreferredCompression, subpacket) case primaryUserIdSubpacket: // Primary User ID, section 5.2.3.19 - if !isHashed { - return - } if len(subpacket) != 1 { err = errors.StructuralError("primary user id subpacket with bad length") return @@ -326,9 +417,6 @@ func parseSignatureSubpacket(sig *Signature, subpacket []byte, isHashed bool) (r } case keyFlagsSubpacket: // Key flags, section 5.2.3.21 - if !isHashed { - return - } if len(subpacket) == 0 { err = errors.StructuralError("empty key flags subpacket") return @@ -346,24 +434,40 @@ func parseSignatureSubpacket(sig *Signature, subpacket []byte, isHashed bool) (r if subpacket[0]&KeyFlagEncryptStorage != 0 { sig.FlagEncryptStorage = true } + if subpacket[0]&KeyFlagSplitKey != 0 { + sig.FlagSplitKey = true + } + if subpacket[0]&KeyFlagAuthenticate != 0 { + sig.FlagAuthenticate = true + } + if subpacket[0]&KeyFlagGroupKey != 0 { + sig.FlagGroupKey = true + } + case signerUserIdSubpacket: + userId := string(subpacket) + sig.SignerUserId = &userId case reasonForRevocationSubpacket: // Reason For Revocation, section 5.2.3.23 - if !isHashed { - return - } if len(subpacket) == 0 { err = errors.StructuralError("empty revocation reason subpacket") return } - sig.RevocationReason = new(uint8) - *sig.RevocationReason = subpacket[0] + sig.RevocationReason = new(ReasonForRevocation) + *sig.RevocationReason = ReasonForRevocation(subpacket[0]) sig.RevocationReasonText = string(subpacket[1:]) case featuresSubpacket: // Features subpacket, section 5.2.3.24 specifies a very general // mechanism for OpenPGP implementations to signal support for new - // features. In practice, the subpacket is used exclusively to - // indicate support for MDC-protected encryption. - sig.MDC = len(subpacket) >= 1 && subpacket[0]&1 == 1 + // features. + if len(subpacket) > 0 { + if subpacket[0]&0x01 != 0 { + sig.SEIPDv1 = true + } + // 0x02 and 0x04 are reserved + if subpacket[0]&0x08 != 0 { + sig.SEIPDv2 = true + } + } case embeddedSignatureSubpacket: // Only usage is in signatures that cross-certify // signing subkeys. section 5.2.3.26 describes the @@ -382,6 +486,39 @@ func parseSignatureSubpacket(sig *Signature, subpacket []byte, isHashed bool) (r if sigType := sig.EmbeddedSignature.SigType; sigType != SigTypePrimaryKeyBinding { return nil, errors.StructuralError("cross-signature has unexpected type " + strconv.Itoa(int(sigType))) } + case policyUriSubpacket: + // Policy URI, section 5.2.3.20 + sig.PolicyURI = string(subpacket) + case issuerFingerprintSubpacket: + if len(subpacket) == 0 { + err = errors.StructuralError("empty issuer fingerprint subpacket") + return + } + v, l := subpacket[0], len(subpacket[1:]) + if v == 5 && l != 32 || v != 5 && l != 20 { + return nil, errors.StructuralError("bad fingerprint length") + } + sig.IssuerFingerprint = make([]byte, l) + copy(sig.IssuerFingerprint, subpacket[1:]) + sig.IssuerKeyId = new(uint64) + if v == 5 { + *sig.IssuerKeyId = binary.BigEndian.Uint64(subpacket[1:9]) + } else { + *sig.IssuerKeyId = binary.BigEndian.Uint64(subpacket[13:21]) + } + case prefCipherSuitesSubpacket: + // Preferred AEAD cipher suites + // See https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#name-preferred-aead-ciphersuites + if len(subpacket)%2 != 0 { + err = errors.StructuralError("invalid aead cipher suite length") + return + } + + sig.PreferredCipherSuites = make([][2]byte, len(subpacket)/2) + + for i := 0; i < len(subpacket)/2; i++ { + sig.PreferredCipherSuites[i] = [2]uint8{subpacket[2*i], subpacket[2*i+1]} + } default: if isCritical { err = errors.UnsupportedError("unknown critical signature subpacket type " + strconv.Itoa(int(packetType))) @@ -406,6 +543,13 @@ func subpacketLengthLength(length int) int { return 5 } +func (sig *Signature) CheckKeyIdOrFingerprint(pk *PublicKey) bool { + if sig.IssuerFingerprint != nil && len(sig.IssuerFingerprint) >= 20 { + return bytes.Equal(sig.IssuerFingerprint, pk.Fingerprint) + } + return sig.IssuerKeyId != nil && *sig.IssuerKeyId == pk.KeyId +} + // serializeSubpacketLength marshals the given length into to. func serializeSubpacketLength(to []byte, length int) int { // RFC 4880, Section 4.2.2. @@ -446,6 +590,9 @@ func serializeSubpackets(to []byte, subpackets []outputSubpacket, hashed bool) { if subpacket.hashed == hashed { n := serializeSubpacketLength(to, len(subpacket.contents)+1) to[n] = byte(subpacket.subpacketType) + if subpacket.isCritical { + to[n] |= 0x80 + } to = to[1+n:] n = copy(to, subpacket.contents) to = to[n:] @@ -454,49 +601,74 @@ func serializeSubpackets(to []byte, subpackets []outputSubpacket, hashed bool) { return } -// KeyExpired returns whether sig is a self-signature of a key that has -// expired. -func (sig *Signature) KeyExpired(currentTime time.Time) bool { - if sig.KeyLifetimeSecs == nil { +// SigExpired returns whether sig is a signature that has expired or is created +// in the future. +func (sig *Signature) SigExpired(currentTime time.Time) bool { + if sig.CreationTime.After(currentTime) { + return true + } + if sig.SigLifetimeSecs == nil || *sig.SigLifetimeSecs == 0 { return false } - expiry := sig.CreationTime.Add(time.Duration(*sig.KeyLifetimeSecs) * time.Second) + expiry := sig.CreationTime.Add(time.Duration(*sig.SigLifetimeSecs) * time.Second) return currentTime.After(expiry) } // buildHashSuffix constructs the HashSuffix member of sig in preparation for signing. -func (sig *Signature) buildHashSuffix() (err error) { - hashedSubpacketsLen := subpacketsLength(sig.outSubpackets, true) - +func (sig *Signature) buildHashSuffix(hashedSubpackets []byte) (err error) { + var hashId byte var ok bool - l := 6 + hashedSubpacketsLen - sig.HashSuffix = make([]byte, l+6) - sig.HashSuffix[0] = 4 - sig.HashSuffix[1] = uint8(sig.SigType) - sig.HashSuffix[2] = uint8(sig.PubKeyAlgo) - sig.HashSuffix[3], ok = s2k.HashToHashId(sig.Hash) + + if sig.Version < 5 { + hashId, ok = algorithm.HashToHashIdWithSha1(sig.Hash) + } else { + hashId, ok = algorithm.HashToHashId(sig.Hash) + } + if !ok { sig.HashSuffix = nil return errors.InvalidArgumentError("hash cannot be represented in OpenPGP: " + strconv.Itoa(int(sig.Hash))) } - sig.HashSuffix[4] = byte(hashedSubpacketsLen >> 8) - sig.HashSuffix[5] = byte(hashedSubpacketsLen) - serializeSubpackets(sig.HashSuffix[6:l], sig.outSubpackets, true) - trailer := sig.HashSuffix[l:] - trailer[0] = 4 - trailer[1] = 0xff - trailer[2] = byte(l >> 24) - trailer[3] = byte(l >> 16) - trailer[4] = byte(l >> 8) - trailer[5] = byte(l) + + hashedFields := bytes.NewBuffer([]byte{ + uint8(sig.Version), + uint8(sig.SigType), + uint8(sig.PubKeyAlgo), + uint8(hashId), + uint8(len(hashedSubpackets) >> 8), + uint8(len(hashedSubpackets)), + }) + hashedFields.Write(hashedSubpackets) + + var l uint64 = uint64(6 + len(hashedSubpackets)) + if sig.Version == 5 { + hashedFields.Write([]byte{0x05, 0xff}) + hashedFields.Write([]byte{ + uint8(l >> 56), uint8(l >> 48), uint8(l >> 40), uint8(l >> 32), + uint8(l >> 24), uint8(l >> 16), uint8(l >> 8), uint8(l), + }) + } else { + hashedFields.Write([]byte{0x04, 0xff}) + hashedFields.Write([]byte{ + uint8(l >> 24), uint8(l >> 16), uint8(l >> 8), uint8(l), + }) + } + sig.HashSuffix = make([]byte, hashedFields.Len()) + copy(sig.HashSuffix, hashedFields.Bytes()) return } func (sig *Signature) signPrepareHash(h hash.Hash) (digest []byte, err error) { - err = sig.buildHashSuffix() + hashedSubpacketsLen := subpacketsLength(sig.outSubpackets, true) + hashedSubpackets := make([]byte, hashedSubpacketsLen) + serializeSubpackets(hashedSubpackets, sig.outSubpackets, true) + err = sig.buildHashSuffix(hashedSubpackets) if err != nil { return } + if sig.Version == 5 && (sig.SigType == 0x00 || sig.SigType == 0x01) { + sig.AddMetadataToHashSuffix() + } h.Write(sig.HashSuffix) digest = h.Sum(nil) @@ -509,17 +681,26 @@ func (sig *Signature) signPrepareHash(h hash.Hash) (digest []byte, err error) { // On success, the signature is stored in sig. Call Serialize to write it out. // If config is nil, sensible defaults will be used. func (sig *Signature) Sign(h hash.Hash, priv *PrivateKey, config *Config) (err error) { - sig.outSubpackets = sig.buildSubpackets() + if priv.Dummy() { + return errors.ErrDummyPrivateKey("dummy key found") + } + sig.Version = priv.PublicKey.Version + sig.IssuerFingerprint = priv.PublicKey.Fingerprint + sig.outSubpackets, err = sig.buildSubpackets(priv.PublicKey) + if err != nil { + return err + } digest, err := sig.signPrepareHash(h) if err != nil { return } - switch priv.PubKeyAlgo { case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: // supports both *rsa.PrivateKey and crypto.Signer - sig.RSASignature.bytes, err = priv.PrivateKey.(crypto.Signer).Sign(config.Random(), digest, sig.Hash) - sig.RSASignature.bitLength = uint16(8 * len(sig.RSASignature.bytes)) + sigdata, err := priv.PrivateKey.(crypto.Signer).Sign(config.Random(), digest, sig.Hash) + if err == nil { + sig.RSASignature = encoding.NewMPI(sigdata) + } case PubKeyAlgoDSA: dsaPriv := priv.PrivateKey.(*dsa.PrivateKey) @@ -530,26 +711,23 @@ func (sig *Signature) Sign(h hash.Hash, priv *PrivateKey, config *Config) (err e } r, s, err := dsa.Sign(config.Random(), dsaPriv, digest) if err == nil { - sig.DSASigR.bytes = r.Bytes() - sig.DSASigR.bitLength = uint16(8 * len(sig.DSASigR.bytes)) - sig.DSASigS.bytes = s.Bytes() - sig.DSASigS.bitLength = uint16(8 * len(sig.DSASigS.bytes)) + sig.DSASigR = new(encoding.MPI).SetBig(r) + sig.DSASigS = new(encoding.MPI).SetBig(s) } case PubKeyAlgoECDSA: - var r, s *big.Int - if pk, ok := priv.PrivateKey.(*ecdsa.PrivateKey); ok { - // direct support, avoid asn1 wrapping/unwrapping - r, s, err = ecdsa.Sign(config.Random(), pk, digest) - } else { - var b []byte - b, err = priv.PrivateKey.(crypto.Signer).Sign(config.Random(), digest, sig.Hash) - if err == nil { - r, s, err = unwrapECDSASig(b) - } + sk := priv.PrivateKey.(*ecdsa.PrivateKey) + r, s, err := ecdsa.Sign(config.Random(), sk, digest) + + if err == nil { + sig.ECDSASigR = new(encoding.MPI).SetBig(r) + sig.ECDSASigS = new(encoding.MPI).SetBig(s) } + case PubKeyAlgoEdDSA: + sk := priv.PrivateKey.(*eddsa.PrivateKey) + r, s, err := eddsa.Sign(sk, digest) if err == nil { - sig.ECDSASigR = fromBig(r) - sig.ECDSASigS = fromBig(s) + sig.EdDSASigR = encoding.NewMPI(r) + sig.EdDSASigS = encoding.NewMPI(s) } default: err = errors.UnsupportedError("public key algorithm: " + strconv.Itoa(int(sig.PubKeyAlgo))) @@ -558,24 +736,14 @@ func (sig *Signature) Sign(h hash.Hash, priv *PrivateKey, config *Config) (err e return } -// unwrapECDSASig parses the two integer components of an ASN.1-encoded ECDSA -// signature. -func unwrapECDSASig(b []byte) (r, s *big.Int, err error) { - var ecsdaSig struct { - R, S *big.Int - } - _, err = asn1.Unmarshal(b, &ecsdaSig) - if err != nil { - return - } - return ecsdaSig.R, ecsdaSig.S, nil -} - // SignUserId computes a signature from priv, asserting that pub is a valid // key for the identity id. On success, the signature is stored in sig. Call // Serialize to write it out. // If config is nil, sensible defaults will be used. func (sig *Signature) SignUserId(id string, pub *PublicKey, priv *PrivateKey, config *Config) error { + if priv.Dummy() { + return errors.ErrDummyPrivateKey("dummy key found") + } h, err := userIdSignatureHash(id, pub, sig.Hash) if err != nil { return err @@ -583,10 +751,25 @@ func (sig *Signature) SignUserId(id string, pub *PublicKey, priv *PrivateKey, co return sig.Sign(h, priv, config) } +// CrossSignKey computes a signature from signingKey on pub hashed using hashKey. On success, +// the signature is stored in sig. Call Serialize to write it out. +// If config is nil, sensible defaults will be used. +func (sig *Signature) CrossSignKey(pub *PublicKey, hashKey *PublicKey, signingKey *PrivateKey, + config *Config) error { + h, err := keySignatureHash(hashKey, pub, sig.Hash) + if err != nil { + return err + } + return sig.Sign(h, signingKey, config) +} + // SignKey computes a signature from priv, asserting that pub is a subkey. On // success, the signature is stored in sig. Call Serialize to write it out. // If config is nil, sensible defaults will be used. func (sig *Signature) SignKey(pub *PublicKey, priv *PrivateKey, config *Config) error { + if priv.Dummy() { + return errors.ErrDummyPrivateKey("dummy key found") + } h, err := keySignatureHash(&priv.PublicKey, pub, sig.Hash) if err != nil { return err @@ -594,26 +777,48 @@ func (sig *Signature) SignKey(pub *PublicKey, priv *PrivateKey, config *Config) return sig.Sign(h, priv, config) } +// RevokeKey computes a revocation signature of pub using priv. On success, the signature is +// stored in sig. Call Serialize to write it out. +// If config is nil, sensible defaults will be used. +func (sig *Signature) RevokeKey(pub *PublicKey, priv *PrivateKey, config *Config) error { + h, err := keyRevocationHash(pub, sig.Hash) + if err != nil { + return err + } + return sig.Sign(h, priv, config) +} + +// RevokeSubkey computes a subkey revocation signature of pub using priv. +// On success, the signature is stored in sig. Call Serialize to write it out. +// If config is nil, sensible defaults will be used. +func (sig *Signature) RevokeSubkey(pub *PublicKey, priv *PrivateKey, config *Config) error { + // Identical to a subkey binding signature + return sig.SignKey(pub, priv, config) +} + // Serialize marshals sig to w. Sign, SignUserId or SignKey must have been // called first. func (sig *Signature) Serialize(w io.Writer) (err error) { if len(sig.outSubpackets) == 0 { sig.outSubpackets = sig.rawSubpackets } - if sig.RSASignature.bytes == nil && sig.DSASigR.bytes == nil && sig.ECDSASigR.bytes == nil { + if sig.RSASignature == nil && sig.DSASigR == nil && sig.ECDSASigR == nil && sig.EdDSASigR == nil { return errors.InvalidArgumentError("Signature: need to call Sign, SignUserId or SignKey before Serialize") } sigLength := 0 switch sig.PubKeyAlgo { case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - sigLength = 2 + len(sig.RSASignature.bytes) + sigLength = int(sig.RSASignature.EncodedLength()) case PubKeyAlgoDSA: - sigLength = 2 + len(sig.DSASigR.bytes) - sigLength += 2 + len(sig.DSASigS.bytes) + sigLength = int(sig.DSASigR.EncodedLength()) + sigLength += int(sig.DSASigS.EncodedLength()) case PubKeyAlgoECDSA: - sigLength = 2 + len(sig.ECDSASigR.bytes) - sigLength += 2 + len(sig.ECDSASigS.bytes) + sigLength = int(sig.ECDSASigR.EncodedLength()) + sigLength += int(sig.ECDSASigS.EncodedLength()) + case PubKeyAlgoEdDSA: + sigLength = int(sig.EdDSASigR.EncodedLength()) + sigLength += int(sig.EdDSASigS.EncodedLength()) default: panic("impossible") } @@ -622,16 +827,29 @@ func (sig *Signature) Serialize(w io.Writer) (err error) { length := len(sig.HashSuffix) - 6 /* trailer not included */ + 2 /* length of unhashed subpackets */ + unhashedSubpacketsLen + 2 /* hash tag */ + sigLength + if sig.Version == 5 { + length -= 4 // eight-octet instead of four-octet big endian + } err = serializeHeader(w, packetTypeSignature, length) if err != nil { return } + err = sig.serializeBody(w) + if err != nil { + return err + } + return +} - _, err = w.Write(sig.HashSuffix[:len(sig.HashSuffix)-6]) +func (sig *Signature) serializeBody(w io.Writer) (err error) { + hashedSubpacketsLen := uint16(uint16(sig.HashSuffix[4])<<8) | uint16(sig.HashSuffix[5]) + fields := sig.HashSuffix[:6+hashedSubpacketsLen] + _, err = w.Write(fields) if err != nil { return } + unhashedSubpacketsLen := subpacketsLength(sig.outSubpackets, false) unhashedSubpackets := make([]byte, 2+unhashedSubpacketsLen) unhashedSubpackets[0] = byte(unhashedSubpacketsLen >> 8) unhashedSubpackets[1] = byte(unhashedSubpacketsLen) @@ -648,11 +866,22 @@ func (sig *Signature) Serialize(w io.Writer) (err error) { switch sig.PubKeyAlgo { case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - err = writeMPIs(w, sig.RSASignature) + _, err = w.Write(sig.RSASignature.EncodedBytes()) case PubKeyAlgoDSA: - err = writeMPIs(w, sig.DSASigR, sig.DSASigS) + if _, err = w.Write(sig.DSASigR.EncodedBytes()); err != nil { + return + } + _, err = w.Write(sig.DSASigS.EncodedBytes()) case PubKeyAlgoECDSA: - err = writeMPIs(w, sig.ECDSASigR, sig.ECDSASigS) + if _, err = w.Write(sig.ECDSASigR.EncodedBytes()); err != nil { + return + } + _, err = w.Write(sig.ECDSASigS.EncodedBytes()) + case PubKeyAlgoEdDSA: + if _, err = w.Write(sig.EdDSASigR.EncodedBytes()); err != nil { + return + } + _, err = w.Write(sig.EdDSASigS.EncodedBytes()) default: panic("impossible") } @@ -667,17 +896,23 @@ type outputSubpacket struct { contents []byte } -func (sig *Signature) buildSubpackets() (subpackets []outputSubpacket) { +func (sig *Signature) buildSubpackets(issuer PublicKey) (subpackets []outputSubpacket, err error) { creationTime := make([]byte, 4) binary.BigEndian.PutUint32(creationTime, uint32(sig.CreationTime.Unix())) subpackets = append(subpackets, outputSubpacket{true, creationTimeSubpacket, false, creationTime}) - if sig.IssuerKeyId != nil { + if sig.IssuerKeyId != nil && sig.Version == 4 { keyId := make([]byte, 8) binary.BigEndian.PutUint64(keyId, *sig.IssuerKeyId) subpackets = append(subpackets, outputSubpacket{true, issuerSubpacket, false, keyId}) } - + if sig.IssuerFingerprint != nil { + contents := append([]uint8{uint8(issuer.Version)}, sig.IssuerFingerprint...) + subpackets = append(subpackets, outputSubpacket{true, issuerFingerprintSubpacket, sig.Version == 5, contents}) + } + if sig.SignerUserId != nil { + subpackets = append(subpackets, outputSubpacket{true, signerUserIdSubpacket, false, []byte(*sig.SignerUserId)}) + } if sig.SigLifetimeSecs != nil && *sig.SigLifetimeSecs != 0 { sigLifetime := make([]byte, 4) binary.BigEndian.PutUint32(sigLifetime, *sig.SigLifetimeSecs) @@ -700,10 +935,51 @@ func (sig *Signature) buildSubpackets() (subpackets []outputSubpacket) { if sig.FlagEncryptStorage { flags |= KeyFlagEncryptStorage } + if sig.FlagSplitKey { + flags |= KeyFlagSplitKey + } + if sig.FlagAuthenticate { + flags |= KeyFlagAuthenticate + } + if sig.FlagGroupKey { + flags |= KeyFlagGroupKey + } subpackets = append(subpackets, outputSubpacket{true, keyFlagsSubpacket, false, []byte{flags}}) } - // The following subpackets may only appear in self-signatures + for _, notation := range sig.Notations { + subpackets = append( + subpackets, + outputSubpacket{ + true, + notationDataSubpacket, + notation.IsCritical, + notation.getData(), + }) + } + + // The following subpackets may only appear in self-signatures. + + var features = byte(0x00) + if sig.SEIPDv1 { + features |= 0x01 + } + if sig.SEIPDv2 { + features |= 0x08 + } + + if features != 0x00 { + subpackets = append(subpackets, outputSubpacket{true, featuresSubpacket, false, []byte{features}}) + } + + if sig.TrustLevel != 0 { + subpackets = append(subpackets, outputSubpacket{true, trustSubpacket, true, []byte{byte(sig.TrustLevel), byte(sig.TrustAmount)}}) + } + + if sig.TrustRegularExpression != nil { + // RFC specifies the string should be null-terminated; add a null byte to the end + subpackets = append(subpackets, outputSubpacket{true, regularExpressionSubpacket, true, []byte(*sig.TrustRegularExpression + "\000")}) + } if sig.KeyLifetimeSecs != nil && *sig.KeyLifetimeSecs != 0 { keyLifetime := make([]byte, 4) @@ -727,5 +1003,82 @@ func (sig *Signature) buildSubpackets() (subpackets []outputSubpacket) { subpackets = append(subpackets, outputSubpacket{true, prefCompressionSubpacket, false, sig.PreferredCompression}) } + if len(sig.PolicyURI) > 0 { + subpackets = append(subpackets, outputSubpacket{true, policyUriSubpacket, false, []uint8(sig.PolicyURI)}) + } + + if len(sig.PreferredCipherSuites) > 0 { + serialized := make([]byte, len(sig.PreferredCipherSuites)*2) + for i, cipherSuite := range sig.PreferredCipherSuites { + serialized[2*i] = cipherSuite[0] + serialized[2*i+1] = cipherSuite[1] + } + subpackets = append(subpackets, outputSubpacket{true, prefCipherSuitesSubpacket, false, serialized}) + } + + // Revocation reason appears only in revocation signatures and is serialized as per section 5.2.3.23. + if sig.RevocationReason != nil { + subpackets = append(subpackets, outputSubpacket{true, reasonForRevocationSubpacket, true, + append([]uint8{uint8(*sig.RevocationReason)}, []uint8(sig.RevocationReasonText)...)}) + } + + // EmbeddedSignature appears only in subkeys capable of signing and is serialized as per section 5.2.3.26. + if sig.EmbeddedSignature != nil { + var buf bytes.Buffer + err = sig.EmbeddedSignature.serializeBody(&buf) + if err != nil { + return + } + subpackets = append(subpackets, outputSubpacket{true, embeddedSignatureSubpacket, true, buf.Bytes()}) + } + return } + +// AddMetadataToHashSuffix modifies the current hash suffix to include metadata +// (format, filename, and time). Version 5 keys protect this data including it +// in the hash computation. See section 5.2.4. +func (sig *Signature) AddMetadataToHashSuffix() { + if sig == nil || sig.Version != 5 { + return + } + if sig.SigType != 0x00 && sig.SigType != 0x01 { + return + } + lit := sig.Metadata + if lit == nil { + // This will translate into six 0x00 bytes. + lit = &LiteralData{} + } + + // Extract the current byte count + n := sig.HashSuffix[len(sig.HashSuffix)-8:] + l := uint64( + uint64(n[0])<<56 | uint64(n[1])<<48 | uint64(n[2])<<40 | uint64(n[3])<<32 | + uint64(n[4])<<24 | uint64(n[5])<<16 | uint64(n[6])<<8 | uint64(n[7])) + + suffix := bytes.NewBuffer(nil) + suffix.Write(sig.HashSuffix[:l]) + + // Add the metadata + var buf [4]byte + buf[0] = lit.Format + fileName := lit.FileName + if len(lit.FileName) > 255 { + fileName = fileName[:255] + } + buf[1] = byte(len(fileName)) + suffix.Write(buf[:2]) + suffix.Write([]byte(lit.FileName)) + binary.BigEndian.PutUint32(buf[:], lit.Time) + suffix.Write(buf[:]) + + // Update the counter and restore trailing bytes + l = uint64(suffix.Len()) + suffix.Write([]byte{0x05, 0xff}) + suffix.Write([]byte{ + uint8(l >> 56), uint8(l >> 48), uint8(l >> 40), uint8(l >> 32), + uint8(l >> 24), uint8(l >> 16), uint8(l >> 8), uint8(l), + }) + sig.HashSuffix = suffix.Bytes() +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetric_key_encrypted.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetric_key_encrypted.go new file mode 100644 index 000000000000..bac2b132ea27 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetric_key_encrypted.go @@ -0,0 +1,276 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "bytes" + "crypto/cipher" + "io" + "strconv" + + "github.com/ProtonMail/go-crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/s2k" +) + +// This is the largest session key that we'll support. Since at most 256-bit cipher +// is supported in OpenPGP, this is large enough to contain also the auth tag. +const maxSessionKeySizeInBytes = 64 + +// SymmetricKeyEncrypted represents a passphrase protected session key. See RFC +// 4880, section 5.3. +type SymmetricKeyEncrypted struct { + Version int + CipherFunc CipherFunction + Mode AEADMode + s2k func(out, in []byte) + iv []byte + encryptedKey []byte // Contains also the authentication tag for AEAD +} + +// parse parses an SymmetricKeyEncrypted packet as specified in +// https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#name-symmetric-key-encrypted-ses +func (ske *SymmetricKeyEncrypted) parse(r io.Reader) error { + var buf [1]byte + + // Version + if _, err := readFull(r, buf[:]); err != nil { + return err + } + ske.Version = int(buf[0]) + if ske.Version != 4 && ske.Version != 5 { + return errors.UnsupportedError("unknown SymmetricKeyEncrypted version") + } + + // Cipher function + if _, err := readFull(r, buf[:]); err != nil { + return err + } + ske.CipherFunc = CipherFunction(buf[0]) + if !ske.CipherFunc.IsSupported() { + return errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(buf[0]))) + } + + if ske.Version == 5 { + // AEAD mode + if _, err := readFull(r, buf[:]); err != nil { + return errors.StructuralError("cannot read AEAD octet from packet") + } + ske.Mode = AEADMode(buf[0]) + } + + var err error + if ske.s2k, err = s2k.Parse(r); err != nil { + if _, ok := err.(errors.ErrDummyPrivateKey); ok { + return errors.UnsupportedError("missing key GNU extension in session key") + } + return err + } + + if ske.Version == 5 { + // AEAD IV + iv := make([]byte, ske.Mode.IvLength()) + _, err := readFull(r, iv) + if err != nil { + return errors.StructuralError("cannot read AEAD IV") + } + + ske.iv = iv + } + + encryptedKey := make([]byte, maxSessionKeySizeInBytes) + // The session key may follow. We just have to try and read to find + // out. If it exists then we limit it to maxSessionKeySizeInBytes. + n, err := readFull(r, encryptedKey) + if err != nil && err != io.ErrUnexpectedEOF { + return err + } + + if n != 0 { + if n == maxSessionKeySizeInBytes { + return errors.UnsupportedError("oversized encrypted session key") + } + ske.encryptedKey = encryptedKey[:n] + } + return nil +} + +// Decrypt attempts to decrypt an encrypted session key and returns the key and +// the cipher to use when decrypting a subsequent Symmetrically Encrypted Data +// packet. +func (ske *SymmetricKeyEncrypted) Decrypt(passphrase []byte) ([]byte, CipherFunction, error) { + key := make([]byte, ske.CipherFunc.KeySize()) + ske.s2k(key, passphrase) + if len(ske.encryptedKey) == 0 { + return key, ske.CipherFunc, nil + } + switch ske.Version { + case 4: + plaintextKey, cipherFunc, err := ske.decryptV4(key) + return plaintextKey, cipherFunc, err + case 5: + plaintextKey, err := ske.decryptV5(key) + return plaintextKey, CipherFunction(0), err + } + err := errors.UnsupportedError("unknown SymmetricKeyEncrypted version") + return nil, CipherFunction(0), err +} + +func (ske *SymmetricKeyEncrypted) decryptV4(key []byte) ([]byte, CipherFunction, error) { + // the IV is all zeros + iv := make([]byte, ske.CipherFunc.blockSize()) + c := cipher.NewCFBDecrypter(ske.CipherFunc.new(key), iv) + plaintextKey := make([]byte, len(ske.encryptedKey)) + c.XORKeyStream(plaintextKey, ske.encryptedKey) + cipherFunc := CipherFunction(plaintextKey[0]) + if cipherFunc.blockSize() == 0 { + return nil, ske.CipherFunc, errors.UnsupportedError( + "unknown cipher: " + strconv.Itoa(int(cipherFunc))) + } + plaintextKey = plaintextKey[1:] + if len(plaintextKey) != cipherFunc.KeySize() { + return nil, cipherFunc, errors.StructuralError( + "length of decrypted key not equal to cipher keysize") + } + return plaintextKey, cipherFunc, nil +} + +func (ske *SymmetricKeyEncrypted) decryptV5(key []byte) ([]byte, error) { + adata := []byte{0xc3, byte(5), byte(ske.CipherFunc), byte(ske.Mode)} + aead := getEncryptedKeyAeadInstance(ske.CipherFunc, ske.Mode, key, adata) + + plaintextKey, err := aead.Open(nil, ske.iv, ske.encryptedKey, adata) + if err != nil { + return nil, err + } + return plaintextKey, nil +} + +// SerializeSymmetricKeyEncrypted serializes a symmetric key packet to w. +// The packet contains a random session key, encrypted by a key derived from +// the given passphrase. The session key is returned and must be passed to +// SerializeSymmetricallyEncrypted. +// If config is nil, sensible defaults will be used. +func SerializeSymmetricKeyEncrypted(w io.Writer, passphrase []byte, config *Config) (key []byte, err error) { + cipherFunc := config.Cipher() + + sessionKey := make([]byte, cipherFunc.KeySize()) + _, err = io.ReadFull(config.Random(), sessionKey) + if err != nil { + return + } + + err = SerializeSymmetricKeyEncryptedReuseKey(w, sessionKey, passphrase, config) + if err != nil { + return + } + + key = sessionKey + return +} + +// SerializeSymmetricKeyEncryptedReuseKey serializes a symmetric key packet to w. +// The packet contains the given session key, encrypted by a key derived from +// the given passphrase. The returned session key must be passed to +// SerializeSymmetricallyEncrypted. +// If config is nil, sensible defaults will be used. +func SerializeSymmetricKeyEncryptedReuseKey(w io.Writer, sessionKey []byte, passphrase []byte, config *Config) (err error) { + var version int + if config.AEAD() != nil { + version = 5 + } else { + version = 4 + } + cipherFunc := config.Cipher() + // cipherFunc must be AES + if !cipherFunc.IsSupported() || cipherFunc < CipherAES128 || cipherFunc > CipherAES256 { + return errors.UnsupportedError("unsupported cipher: " + strconv.Itoa(int(cipherFunc))) + } + + keySize := cipherFunc.KeySize() + s2kBuf := new(bytes.Buffer) + keyEncryptingKey := make([]byte, keySize) + // s2k.Serialize salts and stretches the passphrase, and writes the + // resulting key to keyEncryptingKey and the s2k descriptor to s2kBuf. + err = s2k.Serialize(s2kBuf, keyEncryptingKey, config.Random(), passphrase, config.S2K()) + if err != nil { + return + } + s2kBytes := s2kBuf.Bytes() + + var packetLength int + switch version { + case 4: + packetLength = 2 /* header */ + len(s2kBytes) + 1 /* cipher type */ + keySize + case 5: + ivLen := config.AEAD().Mode().IvLength() + tagLen := config.AEAD().Mode().TagLength() + packetLength = 3 + len(s2kBytes) + ivLen + keySize + tagLen + } + err = serializeHeader(w, packetTypeSymmetricKeyEncrypted, packetLength) + if err != nil { + return + } + + // Symmetric Key Encrypted Version + buf := []byte{byte(version)} + + // Cipher function + buf = append(buf, byte(cipherFunc)) + + if version == 5 { + // AEAD mode + buf = append(buf, byte(config.AEAD().Mode())) + } + _, err = w.Write(buf) + if err != nil { + return + } + _, err = w.Write(s2kBytes) + if err != nil { + return + } + + switch version { + case 4: + iv := make([]byte, cipherFunc.blockSize()) + c := cipher.NewCFBEncrypter(cipherFunc.new(keyEncryptingKey), iv) + encryptedCipherAndKey := make([]byte, keySize+1) + c.XORKeyStream(encryptedCipherAndKey, buf[1:]) + c.XORKeyStream(encryptedCipherAndKey[1:], sessionKey) + _, err = w.Write(encryptedCipherAndKey) + if err != nil { + return + } + case 5: + mode := config.AEAD().Mode() + adata := []byte{0xc3, byte(5), byte(cipherFunc), byte(mode)} + aead := getEncryptedKeyAeadInstance(cipherFunc, mode, keyEncryptingKey, adata) + + // Sample iv using random reader + iv := make([]byte, config.AEAD().Mode().IvLength()) + _, err = io.ReadFull(config.Random(), iv) + if err != nil { + return + } + // Seal and write (encryptedData includes auth. tag) + + encryptedData := aead.Seal(nil, iv, sessionKey, adata) + _, err = w.Write(iv) + if err != nil { + return + } + _, err = w.Write(encryptedData) + if err != nil { + return + } + } + + return +} + +func getEncryptedKeyAeadInstance(c CipherFunction, mode AEADMode, inputKey, associatedData []byte) (aead cipher.AEAD) { + blockCipher := c.new(inputKey) + return mode.new(blockCipher) +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted.go new file mode 100644 index 000000000000..e9bbf0327e13 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted.go @@ -0,0 +1,90 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "io" + + "github.com/ProtonMail/go-crypto/openpgp/errors" +) + +const aeadSaltSize = 32 + +// SymmetricallyEncrypted represents a symmetrically encrypted byte string. The +// encrypted Contents will consist of more OpenPGP packets. See RFC 4880, +// sections 5.7 and 5.13. +type SymmetricallyEncrypted struct { + Version int + Contents io.Reader // contains tag for version 2 + IntegrityProtected bool // If true it is type 18 (with MDC or AEAD). False is packet type 9 + + // Specific to version 1 + prefix []byte + + // Specific to version 2 + Cipher CipherFunction + Mode AEADMode + ChunkSizeByte byte + Salt [aeadSaltSize]byte +} + +const ( + symmetricallyEncryptedVersionMdc = 1 + symmetricallyEncryptedVersionAead = 2 +) + +func (se *SymmetricallyEncrypted) parse(r io.Reader) error { + if se.IntegrityProtected { + // See RFC 4880, section 5.13. + var buf [1]byte + _, err := readFull(r, buf[:]) + if err != nil { + return err + } + + switch buf[0] { + case symmetricallyEncryptedVersionMdc: + se.Version = symmetricallyEncryptedVersionMdc + case symmetricallyEncryptedVersionAead: + se.Version = symmetricallyEncryptedVersionAead + if err := se.parseAead(r); err != nil { + return err + } + default: + return errors.UnsupportedError("unknown SymmetricallyEncrypted version") + } + } + se.Contents = r + return nil +} + +// Decrypt returns a ReadCloser, from which the decrypted Contents of the +// packet can be read. An incorrect key will only be detected after trying +// to decrypt the entire data. +func (se *SymmetricallyEncrypted) Decrypt(c CipherFunction, key []byte) (io.ReadCloser, error) { + if se.Version == symmetricallyEncryptedVersionAead { + return se.decryptAead(key) + } + + return se.decryptMdc(c, key) +} + +// SerializeSymmetricallyEncrypted serializes a symmetrically encrypted packet +// to w and returns a WriteCloser to which the to-be-encrypted packets can be +// written. +// If config is nil, sensible defaults will be used. +func SerializeSymmetricallyEncrypted(w io.Writer, c CipherFunction, aeadSupported bool, cipherSuite CipherSuite, key []byte, config *Config) (Contents io.WriteCloser, err error) { + writeCloser := noOpCloser{w} + ciphertext, err := serializeStreamHeader(writeCloser, packetTypeSymmetricallyEncryptedIntegrityProtected) + if err != nil { + return + } + + if aeadSupported { + return serializeSymmetricallyEncryptedAead(ciphertext, cipherSuite, config.AEADConfig.ChunkSizeByte(), config.Random(), key) + } + + return serializeSymmetricallyEncryptedMdc(ciphertext, c, key, config) +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_aead.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_aead.go new file mode 100644 index 000000000000..e96252c19681 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_aead.go @@ -0,0 +1,156 @@ +// Copyright 2023 Proton AG. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packet + +import ( + "crypto/cipher" + "crypto/sha256" + "io" + + "github.com/ProtonMail/go-crypto/openpgp/errors" + "golang.org/x/crypto/hkdf" +) + +// parseAead parses a V2 SEIPD packet (AEAD) as specified in +// https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-5.13.2 +func (se *SymmetricallyEncrypted) parseAead(r io.Reader) error { + headerData := make([]byte, 3) + if n, err := io.ReadFull(r, headerData); n < 3 { + return errors.StructuralError("could not read aead header: " + err.Error()) + } + + // Cipher + se.Cipher = CipherFunction(headerData[0]) + // cipherFunc must have block size 16 to use AEAD + if se.Cipher.blockSize() != 16 { + return errors.UnsupportedError("invalid aead cipher: " + string(se.Cipher)) + } + + // Mode + se.Mode = AEADMode(headerData[1]) + if se.Mode.TagLength() == 0 { + return errors.UnsupportedError("unknown aead mode: " + string(se.Mode)) + } + + // Chunk size + se.ChunkSizeByte = headerData[2] + if se.ChunkSizeByte > 16 { + return errors.UnsupportedError("invalid aead chunk size byte: " + string(se.ChunkSizeByte)) + } + + // Salt + if n, err := io.ReadFull(r, se.Salt[:]); n < aeadSaltSize { + return errors.StructuralError("could not read aead salt: " + err.Error()) + } + + return nil +} + +// associatedData for chunks: tag, version, cipher, mode, chunk size byte +func (se *SymmetricallyEncrypted) associatedData() []byte { + return []byte{ + 0xD2, + symmetricallyEncryptedVersionAead, + byte(se.Cipher), + byte(se.Mode), + se.ChunkSizeByte, + } +} + +// decryptAead decrypts a V2 SEIPD packet (AEAD) as specified in +// https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-5.13.2 +func (se *SymmetricallyEncrypted) decryptAead(inputKey []byte) (io.ReadCloser, error) { + aead, nonce := getSymmetricallyEncryptedAeadInstance(se.Cipher, se.Mode, inputKey, se.Salt[:], se.associatedData()) + + // Carry the first tagLen bytes + tagLen := se.Mode.TagLength() + peekedBytes := make([]byte, tagLen) + n, err := io.ReadFull(se.Contents, peekedBytes) + if n < tagLen || (err != nil && err != io.EOF) { + return nil, errors.StructuralError("not enough data to decrypt:" + err.Error()) + } + + return &aeadDecrypter{ + aeadCrypter: aeadCrypter{ + aead: aead, + chunkSize: decodeAEADChunkSize(se.ChunkSizeByte), + initialNonce: nonce, + associatedData: se.associatedData(), + chunkIndex: make([]byte, 8), + packetTag: packetTypeSymmetricallyEncryptedIntegrityProtected, + }, + reader: se.Contents, + peekedBytes: peekedBytes, + }, nil +} + +// serializeSymmetricallyEncryptedAead encrypts to a writer a V2 SEIPD packet (AEAD) as specified in +// https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-5.13.2 +func serializeSymmetricallyEncryptedAead(ciphertext io.WriteCloser, cipherSuite CipherSuite, chunkSizeByte byte, rand io.Reader, inputKey []byte) (Contents io.WriteCloser, err error) { + // cipherFunc must have block size 16 to use AEAD + if cipherSuite.Cipher.blockSize() != 16 { + return nil, errors.InvalidArgumentError("invalid aead cipher function") + } + + if cipherSuite.Cipher.KeySize() != len(inputKey) { + return nil, errors.InvalidArgumentError("error in aead serialization: bad key length") + } + + // Data for en/decryption: tag, version, cipher, aead mode, chunk size + prefix := []byte{ + 0xD2, + symmetricallyEncryptedVersionAead, + byte(cipherSuite.Cipher), + byte(cipherSuite.Mode), + chunkSizeByte, + } + + // Write header (that correspond to prefix except first byte) + n, err := ciphertext.Write(prefix[1:]) + if err != nil || n < 4 { + return nil, err + } + + // Random salt + salt := make([]byte, aeadSaltSize) + if _, err := rand.Read(salt); err != nil { + return nil, err + } + + if _, err := ciphertext.Write(salt); err != nil { + return nil, err + } + + aead, nonce := getSymmetricallyEncryptedAeadInstance(cipherSuite.Cipher, cipherSuite.Mode, inputKey, salt, prefix) + + return &aeadEncrypter{ + aeadCrypter: aeadCrypter{ + aead: aead, + chunkSize: decodeAEADChunkSize(chunkSizeByte), + associatedData: prefix, + chunkIndex: make([]byte, 8), + initialNonce: nonce, + packetTag: packetTypeSymmetricallyEncryptedIntegrityProtected, + }, + writer: ciphertext, + }, nil +} + +func getSymmetricallyEncryptedAeadInstance(c CipherFunction, mode AEADMode, inputKey, salt, associatedData []byte) (aead cipher.AEAD, nonce []byte) { + hkdfReader := hkdf.New(sha256.New, inputKey, salt, associatedData) + + encryptionKey := make([]byte, c.KeySize()) + _, _ = readFull(hkdfReader, encryptionKey) + + // Last 64 bits of nonce are the counter + nonce = make([]byte, mode.IvLength()-8) + + _, _ = readFull(hkdfReader, nonce) + + blockCipher := c.new(encryptionKey) + aead = mode.new(blockCipher) + + return +} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_mdc.go similarity index 61% rename from vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_mdc.go index 1a1a62964fc9..fa26bebe382f 100644 --- a/vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_mdc.go @@ -8,54 +8,38 @@ import ( "crypto/cipher" "crypto/sha1" "crypto/subtle" - "golang.org/x/crypto/openpgp/errors" "hash" "io" "strconv" + + "github.com/ProtonMail/go-crypto/openpgp/errors" ) -// SymmetricallyEncrypted represents a symmetrically encrypted byte string. The -// encrypted contents will consist of more OpenPGP packets. See RFC 4880, -// sections 5.7 and 5.13. -type SymmetricallyEncrypted struct { - MDC bool // true iff this is a type 18 packet and thus has an embedded MAC. - contents io.Reader - prefix []byte +// seMdcReader wraps an io.Reader with a no-op Close method. +type seMdcReader struct { + in io.Reader } -const symmetricallyEncryptedVersion = 1 +func (ser seMdcReader) Read(buf []byte) (int, error) { + return ser.in.Read(buf) +} -func (se *SymmetricallyEncrypted) parse(r io.Reader) error { - if se.MDC { - // See RFC 4880, section 5.13. - var buf [1]byte - _, err := readFull(r, buf[:]) - if err != nil { - return err - } - if buf[0] != symmetricallyEncryptedVersion { - return errors.UnsupportedError("unknown SymmetricallyEncrypted version") - } - } - se.contents = r +func (ser seMdcReader) Close() error { return nil } -// Decrypt returns a ReadCloser, from which the decrypted contents of the -// packet can be read. An incorrect key can, with high probability, be detected -// immediately and this will result in a KeyIncorrect error being returned. -func (se *SymmetricallyEncrypted) Decrypt(c CipherFunction, key []byte) (io.ReadCloser, error) { - keySize := c.KeySize() - if keySize == 0 { - return nil, errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(c))) +func (se *SymmetricallyEncrypted) decryptMdc(c CipherFunction, key []byte) (io.ReadCloser, error) { + if !c.IsSupported() { + return nil, errors.UnsupportedError("unsupported cipher: " + strconv.Itoa(int(c))) } - if len(key) != keySize { + + if len(key) != c.KeySize() { return nil, errors.InvalidArgumentError("SymmetricallyEncrypted: incorrect key length") } if se.prefix == nil { se.prefix = make([]byte, c.blockSize()+2) - _, err := readFull(se.contents, se.prefix) + _, err := readFull(se.Contents, se.prefix) if err != nil { return nil, err } @@ -64,47 +48,31 @@ func (se *SymmetricallyEncrypted) Decrypt(c CipherFunction, key []byte) (io.Read } ocfbResync := OCFBResync - if se.MDC { + if se.IntegrityProtected { // MDC packets use a different form of OCFB mode. ocfbResync = OCFBNoResync } s := NewOCFBDecrypter(c.new(key), se.prefix, ocfbResync) - if s == nil { - return nil, errors.ErrKeyIncorrect - } - plaintext := cipher.StreamReader{S: s, R: se.contents} + plaintext := cipher.StreamReader{S: s, R: se.Contents} - if se.MDC { - // MDC packets have an embedded hash that we need to check. + if se.IntegrityProtected { + // IntegrityProtected packets have an embedded hash that we need to check. h := sha1.New() h.Write(se.prefix) return &seMDCReader{in: plaintext, h: h}, nil } // Otherwise, we just need to wrap plaintext so that it's a valid ReadCloser. - return seReader{plaintext}, nil -} - -// seReader wraps an io.Reader with a no-op Close method. -type seReader struct { - in io.Reader -} - -func (ser seReader) Read(buf []byte) (int, error) { - return ser.in.Read(buf) -} - -func (ser seReader) Close() error { - return nil + return seMdcReader{plaintext}, nil } const mdcTrailerSize = 1 /* tag byte */ + 1 /* length byte */ + sha1.Size // An seMDCReader wraps an io.Reader, maintains a running hash and keeps hold // of the most recent 22 bytes (mdcTrailerSize). Upon EOF, those bytes form an -// MDC packet containing a hash of the previous contents which is checked +// MDC packet containing a hash of the previous Contents which is checked // against the running hash. See RFC 4880, section 5.13. type seMDCReader struct { in io.Reader @@ -175,12 +143,12 @@ func (ser *seMDCReader) Read(buf []byte) (n int, err error) { return } -// This is a new-format packet tag byte for a type 19 (MDC) packet. +// This is a new-format packet tag byte for a type 19 (Integrity Protected) packet. const mdcPacketTagByte = byte(0x80) | 0x40 | 19 func (ser *seMDCReader) Close() error { if ser.error { - return errors.SignatureError("error during reading") + return errors.ErrMDCMissing } for !ser.eof { @@ -191,18 +159,20 @@ func (ser *seMDCReader) Close() error { break } if err != nil { - return errors.SignatureError("error during reading") + return errors.ErrMDCMissing } } - if ser.trailer[0] != mdcPacketTagByte || ser.trailer[1] != sha1.Size { - return errors.SignatureError("MDC packet not found") - } ser.h.Write(ser.trailer[:2]) final := ser.h.Sum(nil) if subtle.ConstantTimeCompare(final, ser.trailer[2:]) != 1 { - return errors.SignatureError("hash mismatch") + return errors.ErrMDCHashMismatch + } + // The hash already includes the MDC header, but we still check its value + // to confirm encryption correctness + if ser.trailer[0] != mdcPacketTagByte || ser.trailer[1] != sha1.Size { + return errors.ErrMDCMissing } return nil } @@ -236,7 +206,7 @@ func (w *seMDCWriter) Close() (err error) { return w.w.Close() } -// noOpCloser is like an io.NopCloser, but for an io.Writer. +// noOpCloser is like an ioutil.NopCloser, but for an io.Writer. type noOpCloser struct { w io.Writer } @@ -249,21 +219,17 @@ func (c noOpCloser) Close() error { return nil } -// SerializeSymmetricallyEncrypted serializes a symmetrically encrypted packet -// to w and returns a WriteCloser to which the to-be-encrypted packets can be -// written. -// If config is nil, sensible defaults will be used. -func SerializeSymmetricallyEncrypted(w io.Writer, c CipherFunction, key []byte, config *Config) (contents io.WriteCloser, err error) { - if c.KeySize() != len(key) { - return nil, errors.InvalidArgumentError("SymmetricallyEncrypted.Serialize: bad key length") +func serializeSymmetricallyEncryptedMdc(ciphertext io.WriteCloser, c CipherFunction, key []byte, config *Config) (Contents io.WriteCloser, err error) { + // Disallow old cipher suites + if !c.IsSupported() || c < CipherAES128 { + return nil, errors.InvalidArgumentError("invalid mdc cipher function") } - writeCloser := noOpCloser{w} - ciphertext, err := serializeStreamHeader(writeCloser, packetTypeSymmetricallyEncryptedMDC) - if err != nil { - return + + if c.KeySize() != len(key) { + return nil, errors.InvalidArgumentError("error in mdc serialization: bad key length") } - _, err = ciphertext.Write([]byte{symmetricallyEncryptedVersion}) + _, err = ciphertext.Write([]byte{symmetricallyEncryptedVersionMdc}) if err != nil { return } @@ -285,6 +251,6 @@ func SerializeSymmetricallyEncrypted(w io.Writer, c CipherFunction, key []byte, h := sha1.New() h.Write(iv) h.Write(iv[blockSize-2:]) - contents = &seMDCWriter{w: plaintext, h: h} + Contents = &seMDCWriter{w: plaintext, h: h} return } diff --git a/vendor/golang.org/x/crypto/openpgp/packet/userattribute.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userattribute.go similarity index 87% rename from vendor/golang.org/x/crypto/openpgp/packet/userattribute.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userattribute.go index ff7ef5307557..88ec72c6c4aa 100644 --- a/vendor/golang.org/x/crypto/openpgp/packet/userattribute.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userattribute.go @@ -9,6 +9,7 @@ import ( "image" "image/jpeg" "io" + "io/ioutil" ) const UserAttrImageSubpacket = 1 @@ -41,9 +42,16 @@ func NewUserAttributePhoto(photos ...image.Image) (uat *UserAttribute, err error if err = jpeg.Encode(&buf, photo, nil); err != nil { return } + + lengthBuf := make([]byte, 5) + n := serializeSubpacketLength(lengthBuf, len(buf.Bytes())+1) + lengthBuf = lengthBuf[:n] + uat.Contents = append(uat.Contents, &OpaqueSubpacket{ - SubType: UserAttrImageSubpacket, - Contents: buf.Bytes()}) + SubType: UserAttrImageSubpacket, + EncodedLength: lengthBuf, + Contents: buf.Bytes(), + }) } return } @@ -55,7 +63,7 @@ func NewUserAttribute(contents ...*OpaqueSubpacket) *UserAttribute { func (uat *UserAttribute) parse(r io.Reader) (err error) { // RFC 4880, section 5.13 - b, err := io.ReadAll(r) + b, err := ioutil.ReadAll(r) if err != nil { return } @@ -68,7 +76,10 @@ func (uat *UserAttribute) parse(r io.Reader) (err error) { func (uat *UserAttribute) Serialize(w io.Writer) (err error) { var buf bytes.Buffer for _, sp := range uat.Contents { - sp.Serialize(&buf) + err = sp.Serialize(&buf) + if err != nil { + return err + } } if err = serializeHeader(w, packetTypeUserAttribute, buf.Len()); err != nil { return err diff --git a/vendor/golang.org/x/crypto/openpgp/packet/userid.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userid.go similarity index 95% rename from vendor/golang.org/x/crypto/openpgp/packet/userid.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userid.go index 359a462eb8ab..614fbafd5e1a 100644 --- a/vendor/golang.org/x/crypto/openpgp/packet/userid.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userid.go @@ -6,6 +6,7 @@ package packet import ( "io" + "io/ioutil" "strings" ) @@ -65,7 +66,7 @@ func NewUserId(name, comment, email string) *UserId { func (uid *UserId) parse(r io.Reader) (err error) { // RFC 4880, section 5.11 - b, err := io.ReadAll(r) + b, err := ioutil.ReadAll(r) if err != nil { return } @@ -155,5 +156,12 @@ func parseUserId(id string) (name, comment, email string) { name = strings.TrimSpace(id[n.start:n.end]) comment = strings.TrimSpace(id[c.start:c.end]) email = strings.TrimSpace(id[e.start:e.end]) + + // RFC 2822 3.4: alternate simple form of a mailbox + if email == "" && strings.ContainsRune(name, '@') { + email = name + name = "" + } + return } diff --git a/vendor/golang.org/x/crypto/openpgp/read.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/read.go similarity index 51% rename from vendor/golang.org/x/crypto/openpgp/read.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/read.go index 48a893146858..8499c73790d6 100644 --- a/vendor/golang.org/x/crypto/openpgp/read.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/read.go @@ -3,24 +3,21 @@ // license that can be found in the LICENSE file. // Package openpgp implements high level operations on OpenPGP messages. -// -// Deprecated: this package is unmaintained except for security fixes. New -// applications should consider a more focused, modern alternative to OpenPGP -// for their specific task. If you are required to interoperate with OpenPGP -// systems and need a maintained package, consider a community fork. -// See https://golang.org/issue/44226. -package openpgp // import "golang.org/x/crypto/openpgp" +package openpgp // import "github.com/ProtonMail/go-crypto/openpgp" import ( "crypto" _ "crypto/sha256" + _ "crypto/sha512" "hash" "io" "strconv" - "golang.org/x/crypto/openpgp/armor" - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/packet" + "github.com/ProtonMail/go-crypto/openpgp/armor" + "github.com/ProtonMail/go-crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" + "github.com/ProtonMail/go-crypto/openpgp/packet" + _ "golang.org/x/crypto/sha3" ) // SignatureType is the armor type for a PGP signature. @@ -62,9 +59,9 @@ type MessageDetails struct { // been consumed. Once EOF has been seen, the following fields are // valid. (An authentication code failure is reported as a // SignatureError error when reading from UnverifiedBody.) - SignatureError error // nil if the signature is good. - Signature *packet.Signature // the signature packet itself, if v4 (default) - SignatureV3 *packet.SignatureV3 // the signature packet if it is a v2 or v3 signature + Signature *packet.Signature // the signature packet itself. + SignatureError error // nil if the signature is good. + UnverifiedSignatures []*packet.Signature // all other unverified signature packets. decrypted io.ReadCloser } @@ -94,7 +91,8 @@ func ReadMessage(r io.Reader, keyring KeyRing, prompt PromptFunction, config *pa var symKeys []*packet.SymmetricKeyEncrypted var pubKeys []keyEnvelopePair - var se *packet.SymmetricallyEncrypted + // Integrity protected encrypted packet: SymmetricallyEncrypted or AEADEncrypted + var edp packet.EncryptedDataPacket packets := packet.NewReader(r) md = new(MessageDetails) @@ -119,22 +117,30 @@ ParsePackets: // This packet contains the decryption key encrypted to a public key. md.EncryptedToKeyIds = append(md.EncryptedToKeyIds, p.KeyId) switch p.Algo { - case packet.PubKeyAlgoRSA, packet.PubKeyAlgoRSAEncryptOnly, packet.PubKeyAlgoElGamal: + case packet.PubKeyAlgoRSA, packet.PubKeyAlgoRSAEncryptOnly, packet.PubKeyAlgoElGamal, packet.PubKeyAlgoECDH: break default: continue } - var keys []Key - if p.KeyId == 0 { - keys = keyring.DecryptionKeys() - } else { - keys = keyring.KeysById(p.KeyId) - } - for _, k := range keys { - pubKeys = append(pubKeys, keyEnvelopePair{k, p}) + if keyring != nil { + var keys []Key + if p.KeyId == 0 { + keys = keyring.DecryptionKeys() + } else { + keys = keyring.KeysById(p.KeyId) + } + for _, k := range keys { + pubKeys = append(pubKeys, keyEnvelopePair{k, p}) + } } case *packet.SymmetricallyEncrypted: - se = p + if !p.IntegrityProtected && !config.AllowUnauthenticatedMessages() { + return nil, errors.UnsupportedError("message is not integrity protected") + } + edp = p + break ParsePackets + case *packet.AEADEncrypted: + edp = p break ParsePackets case *packet.Compressed, *packet.LiteralData, *packet.OnePassSignature: // This message isn't encrypted. @@ -142,7 +148,7 @@ ParsePackets: return nil, errors.StructuralError("key material not followed by encrypted message") } packets.Unread(p) - return readSignedMessage(packets, nil, keyring) + return readSignedMessage(packets, nil, keyring, config) } } @@ -164,12 +170,13 @@ FindKey: } if !pk.key.PrivateKey.Encrypted { if len(pk.encryptedKey.Key) == 0 { - pk.encryptedKey.Decrypt(pk.key.PrivateKey, config) - } - if len(pk.encryptedKey.Key) == 0 { - continue + errDec := pk.encryptedKey.Decrypt(pk.key.PrivateKey, config) + if errDec != nil { + continue + } } - decrypted, err = se.Decrypt(pk.encryptedKey.CipherFunc, pk.encryptedKey.Key) + // Try to decrypt symmetrically encrypted + decrypted, err = edp.Decrypt(pk.encryptedKey.CipherFunc, pk.encryptedKey.Key) if err != nil && err != errors.ErrKeyIncorrect { return nil, err } @@ -204,16 +211,17 @@ FindKey: if len(symKeys) != 0 && passphrase != nil { for _, s := range symKeys { key, cipherFunc, err := s.Decrypt(passphrase) + // In v4, on wrong passphrase, session key decryption is very likely to result in an invalid cipherFunc: + // only for < 5% of cases we will proceed to decrypt the data if err == nil { - decrypted, err = se.Decrypt(cipherFunc, key) - if err != nil && err != errors.ErrKeyIncorrect { + decrypted, err = edp.Decrypt(cipherFunc, key) + if err != nil { return nil, err } if decrypted != nil { break FindKey } } - } } } @@ -222,13 +230,17 @@ FindKey: if err := packets.Push(decrypted); err != nil { return nil, err } - return readSignedMessage(packets, md, keyring) + mdFinal, sensitiveParsingErr := readSignedMessage(packets, md, keyring, config) + if sensitiveParsingErr != nil { + return nil, errors.StructuralError("parsing error") + } + return mdFinal, nil } // readSignedMessage reads a possibly signed message if mdin is non-zero then // that structure is updated and returned. Otherwise a fresh MessageDetails is // used. -func readSignedMessage(packets *packet.Reader, mdin *MessageDetails, keyring KeyRing) (md *MessageDetails, err error) { +func readSignedMessage(packets *packet.Reader, mdin *MessageDetails, keyring KeyRing, config *packet.Config) (md *MessageDetails, err error) { if mdin == nil { mdin = new(MessageDetails) } @@ -237,6 +249,7 @@ func readSignedMessage(packets *packet.Reader, mdin *MessageDetails, keyring Key var p packet.Packet var h hash.Hash var wrappedHash hash.Hash + var prevLast bool FindLiteralData: for { p, err = packets.Next() @@ -249,21 +262,26 @@ FindLiteralData: return nil, err } case *packet.OnePassSignature: - if !p.IsLast { - return nil, errors.UnsupportedError("nested signatures") + if prevLast { + return nil, errors.UnsupportedError("nested signature packets") + } + + if p.IsLast { + prevLast = true } h, wrappedHash, err = hashForSignature(p.Hash, p.SigType) if err != nil { - md = nil - return + md.SignatureError = err } md.IsSigned = true md.SignedByKeyId = p.KeyId - keys := keyring.KeysByIdUsage(p.KeyId, packet.KeyFlagSign) - if len(keys) > 0 { - md.SignedBy = &keys[0] + if keyring != nil { + keys := keyring.KeysByIdUsage(p.KeyId, packet.KeyFlagSign) + if len(keys) > 0 { + md.SignedBy = &keys[0] + } } case *packet.LiteralData: md.LiteralData = p @@ -271,8 +289,8 @@ FindLiteralData: } } - if md.SignedBy != nil { - md.UnverifiedBody = &signatureCheckReader{packets, h, wrappedHash, md} + if md.IsSigned && md.SignatureError == nil { + md.UnverifiedBody = &signatureCheckReader{packets, h, wrappedHash, md, config} } else if md.decrypted != nil { md.UnverifiedBody = checkReader{md} } else { @@ -287,11 +305,14 @@ FindLiteralData: // should be preprocessed (i.e. to normalize line endings). Thus this function // returns two hashes. The second should be used to hash the message itself and // performs any needed preprocessing. -func hashForSignature(hashId crypto.Hash, sigType packet.SignatureType) (hash.Hash, hash.Hash, error) { - if !hashId.Available() { - return nil, nil, errors.UnsupportedError("hash not available: " + strconv.Itoa(int(hashId))) +func hashForSignature(hashFunc crypto.Hash, sigType packet.SignatureType) (hash.Hash, hash.Hash, error) { + if _, ok := algorithm.HashToHashIdWithSha1(hashFunc); !ok { + return nil, nil, errors.UnsupportedError("unsupported hash function") } - h := hashId.New() + if !hashFunc.Available() { + return nil, nil, errors.UnsupportedError("hash not available: " + strconv.Itoa(int(hashFunc))) + } + h := hashFunc.New() switch sigType { case packet.SigTypeBinary: @@ -310,15 +331,21 @@ type checkReader struct { md *MessageDetails } -func (cr checkReader) Read(buf []byte) (n int, err error) { - n, err = cr.md.LiteralData.Body.Read(buf) - if err == io.EOF { +func (cr checkReader) Read(buf []byte) (int, error) { + n, sensitiveParsingError := cr.md.LiteralData.Body.Read(buf) + if sensitiveParsingError == io.EOF { mdcErr := cr.md.decrypted.Close() if mdcErr != nil { - err = mdcErr + return n, mdcErr } + return n, io.EOF } - return + + if sensitiveParsingError != nil { + return n, errors.StructuralError("parsing error") + } + + return n, nil } // signatureCheckReader wraps an io.Reader from a LiteralData packet and hashes @@ -328,26 +355,53 @@ type signatureCheckReader struct { packets *packet.Reader h, wrappedHash hash.Hash md *MessageDetails + config *packet.Config } -func (scr *signatureCheckReader) Read(buf []byte) (n int, err error) { - n, err = scr.md.LiteralData.Body.Read(buf) - scr.wrappedHash.Write(buf[:n]) - if err == io.EOF { +func (scr *signatureCheckReader) Read(buf []byte) (int, error) { + n, sensitiveParsingError := scr.md.LiteralData.Body.Read(buf) + + // Hash only if required + if scr.md.SignedBy != nil { + scr.wrappedHash.Write(buf[:n]) + } + + if sensitiveParsingError == io.EOF { var p packet.Packet - p, scr.md.SignatureError = scr.packets.Next() - if scr.md.SignatureError != nil { - return + var readError error + var sig *packet.Signature + + p, readError = scr.packets.Next() + for readError == nil { + var ok bool + if sig, ok = p.(*packet.Signature); ok { + if sig.Version == 5 && (sig.SigType == 0x00 || sig.SigType == 0x01) { + sig.Metadata = scr.md.LiteralData + } + + // If signature KeyID matches + if scr.md.SignedBy != nil && *sig.IssuerKeyId == scr.md.SignedByKeyId { + key := scr.md.SignedBy + signatureError := key.PublicKey.VerifySignature(scr.h, sig) + if signatureError == nil { + signatureError = checkSignatureDetails(key, sig, scr.config) + } + scr.md.Signature = sig + scr.md.SignatureError = signatureError + } else { + scr.md.UnverifiedSignatures = append(scr.md.UnverifiedSignatures, sig) + } + } + + p, readError = scr.packets.Next() } - var ok bool - if scr.md.Signature, ok = p.(*packet.Signature); ok { - scr.md.SignatureError = scr.md.SignedBy.PublicKey.VerifySignature(scr.h, scr.md.Signature) - } else if scr.md.SignatureV3, ok = p.(*packet.SignatureV3); ok { - scr.md.SignatureError = scr.md.SignedBy.PublicKey.VerifySignatureV3(scr.h, scr.md.SignatureV3) - } else { - scr.md.SignatureError = errors.StructuralError("LiteralData not followed by Signature") - return + if scr.md.SignedBy != nil && scr.md.Signature == nil { + if scr.md.UnverifiedSignatures == nil { + scr.md.SignatureError = errors.StructuralError("LiteralData not followed by signature") + } else { + scr.md.SignatureError = errors.StructuralError("No matching signature found") + } } // The SymmetricallyEncrypted packet, if any, might have an @@ -356,47 +410,87 @@ func (scr *signatureCheckReader) Read(buf []byte) (n int, err error) { if scr.md.decrypted != nil { mdcErr := scr.md.decrypted.Close() if mdcErr != nil { - err = mdcErr + return n, mdcErr } } + return n, io.EOF } - return + + if sensitiveParsingError != nil { + return n, errors.StructuralError("parsing error") + } + + return n, nil +} + +// VerifyDetachedSignature takes a signed file and a detached signature and +// returns the signature packet and the entity the signature was signed by, +// if any, and a possible signature verification error. +// If the signer isn't known, ErrUnknownIssuer is returned. +func VerifyDetachedSignature(keyring KeyRing, signed, signature io.Reader, config *packet.Config) (sig *packet.Signature, signer *Entity, err error) { + var expectedHashes []crypto.Hash + return verifyDetachedSignature(keyring, signed, signature, expectedHashes, config) +} + +// VerifyDetachedSignatureAndHash performs the same actions as +// VerifyDetachedSignature and checks that the expected hash functions were used. +func VerifyDetachedSignatureAndHash(keyring KeyRing, signed, signature io.Reader, expectedHashes []crypto.Hash, config *packet.Config) (sig *packet.Signature, signer *Entity, err error) { + return verifyDetachedSignature(keyring, signed, signature, expectedHashes, config) } // CheckDetachedSignature takes a signed file and a detached signature and -// returns the signer if the signature is valid. If the signer isn't known, +// returns the entity the signature was signed by, if any, and a possible +// signature verification error. If the signer isn't known, // ErrUnknownIssuer is returned. -func CheckDetachedSignature(keyring KeyRing, signed, signature io.Reader) (signer *Entity, err error) { +func CheckDetachedSignature(keyring KeyRing, signed, signature io.Reader, config *packet.Config) (signer *Entity, err error) { + var expectedHashes []crypto.Hash + return CheckDetachedSignatureAndHash(keyring, signed, signature, expectedHashes, config) +} + +// CheckDetachedSignatureAndHash performs the same actions as +// CheckDetachedSignature and checks that the expected hash functions were used. +func CheckDetachedSignatureAndHash(keyring KeyRing, signed, signature io.Reader, expectedHashes []crypto.Hash, config *packet.Config) (signer *Entity, err error) { + _, signer, err = verifyDetachedSignature(keyring, signed, signature, expectedHashes, config) + return +} + +func verifyDetachedSignature(keyring KeyRing, signed, signature io.Reader, expectedHashes []crypto.Hash, config *packet.Config) (sig *packet.Signature, signer *Entity, err error) { var issuerKeyId uint64 var hashFunc crypto.Hash var sigType packet.SignatureType var keys []Key var p packet.Packet + expectedHashesLen := len(expectedHashes) packets := packet.NewReader(signature) for { p, err = packets.Next() if err == io.EOF { - return nil, errors.ErrUnknownIssuer + return nil, nil, errors.ErrUnknownIssuer } if err != nil { - return nil, err + return nil, nil, err } - switch sig := p.(type) { - case *packet.Signature: - if sig.IssuerKeyId == nil { - return nil, errors.StructuralError("signature doesn't have an issuer") + var ok bool + sig, ok = p.(*packet.Signature) + if !ok { + return nil, nil, errors.StructuralError("non signature packet found") + } + if sig.IssuerKeyId == nil { + return nil, nil, errors.StructuralError("signature doesn't have an issuer") + } + issuerKeyId = *sig.IssuerKeyId + hashFunc = sig.Hash + sigType = sig.SigType + + for i, expectedHash := range expectedHashes { + if hashFunc == expectedHash { + break + } + if i+1 == expectedHashesLen { + return nil, nil, errors.StructuralError("hash algorithm mismatch with cleartext message headers") } - issuerKeyId = *sig.IssuerKeyId - hashFunc = sig.Hash - sigType = sig.SigType - case *packet.SignatureV3: - issuerKeyId = sig.IssuerKeyId - hashFunc = sig.Hash - sigType = sig.SigType - default: - return nil, errors.StructuralError("non signature packet found") } keys = keyring.KeysByIdUsage(issuerKeyId, packet.KeyFlagSign) @@ -411,38 +505,88 @@ func CheckDetachedSignature(keyring KeyRing, signed, signature io.Reader) (signe h, wrappedHash, err := hashForSignature(hashFunc, sigType) if err != nil { - return nil, err + return nil, nil, err } if _, err := io.Copy(wrappedHash, signed); err != nil && err != io.EOF { - return nil, err + return nil, nil, err } for _, key := range keys { - switch sig := p.(type) { - case *packet.Signature: - err = key.PublicKey.VerifySignature(h, sig) - case *packet.SignatureV3: - err = key.PublicKey.VerifySignatureV3(h, sig) - default: - panic("unreachable") - } - + err = key.PublicKey.VerifySignature(h, sig) if err == nil { - return key.Entity, nil + return sig, key.Entity, checkSignatureDetails(&key, sig, config) } } - return nil, err + return nil, nil, err } // CheckArmoredDetachedSignature performs the same actions as // CheckDetachedSignature but expects the signature to be armored. -func CheckArmoredDetachedSignature(keyring KeyRing, signed, signature io.Reader) (signer *Entity, err error) { +func CheckArmoredDetachedSignature(keyring KeyRing, signed, signature io.Reader, config *packet.Config) (signer *Entity, err error) { body, err := readArmored(signature, SignatureType) if err != nil { return } - return CheckDetachedSignature(keyring, signed, body) + return CheckDetachedSignature(keyring, signed, body, config) +} + +// checkSignatureDetails returns an error if: +// - The signature (or one of the binding signatures mentioned below) +// has a unknown critical notation data subpacket +// - The primary key of the signing entity is revoked +// - The primary identity is revoked +// - The signature is expired +// - The primary key of the signing entity is expired according to the +// primary identity binding signature +// +// ... or, if the signature was signed by a subkey and: +// - The signing subkey is revoked +// - The signing subkey is expired according to the subkey binding signature +// - The signing subkey binding signature is expired +// - The signing subkey cross-signature is expired +// +// NOTE: The order of these checks is important, as the caller may choose to +// ignore ErrSignatureExpired or ErrKeyExpired errors, but should never +// ignore any other errors. +// +// TODO: Also return an error if: +// - The primary key is expired according to a direct-key signature +// - (For V5 keys only:) The direct-key signature (exists and) is expired +func checkSignatureDetails(key *Key, signature *packet.Signature, config *packet.Config) error { + now := config.Now() + primaryIdentity := key.Entity.PrimaryIdentity() + signedBySubKey := key.PublicKey != key.Entity.PrimaryKey + sigsToCheck := []*packet.Signature{signature, primaryIdentity.SelfSignature} + if signedBySubKey { + sigsToCheck = append(sigsToCheck, key.SelfSignature, key.SelfSignature.EmbeddedSignature) + } + for _, sig := range sigsToCheck { + for _, notation := range sig.Notations { + if notation.IsCritical && !config.KnownNotation(notation.Name) { + return errors.SignatureError("unknown critical notation: " + notation.Name) + } + } + } + if key.Entity.Revoked(now) || // primary key is revoked + (signedBySubKey && key.Revoked(now)) || // subkey is revoked + primaryIdentity.Revoked(now) { // primary identity is revoked + return errors.ErrKeyRevoked + } + if key.Entity.PrimaryKey.KeyExpired(primaryIdentity.SelfSignature, now) { // primary key is expired + return errors.ErrKeyExpired + } + if signedBySubKey { + if key.PublicKey.KeyExpired(key.SelfSignature, now) { // subkey is expired + return errors.ErrKeyExpired + } + } + for _, sig := range sigsToCheck { + if sig.SigExpired(now) { // any of the relevant signatures are expired + return errors.ErrSignatureExpired + } + } + return nil } diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/read_write_test_data.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/read_write_test_data.go new file mode 100644 index 000000000000..db6dad5c0b7b --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/read_write_test_data.go @@ -0,0 +1,274 @@ +package openpgp + +const testKey1KeyId uint64 = 0xA34D7E18C20C31BB +const testKey3KeyId uint64 = 0x338934250CCC0360 +const testKeyP256KeyId uint64 = 0xd44a2c495918513e + +const signedInput = "Signed message\nline 2\nline 3\n" +const signedTextInput = "Signed message\r\nline 2\r\nline 3\r\n" + +const recipientUnspecifiedHex = "848c0300000000000000000103ff62d4d578d03cf40c3da998dfe216c074fa6ddec5e31c197c9666ba292830d91d18716a80f699f9d897389a90e6d62d0238f5f07a5248073c0f24920e4bc4a30c2d17ee4e0cae7c3d4aaa4e8dced50e3010a80ee692175fa0385f62ecca4b56ee6e9980aa3ec51b61b077096ac9e800edaf161268593eedb6cc7027ff5cb32745d250010d407a6221ae22ef18469b444f2822478c4d190b24d36371a95cb40087cdd42d9399c3d06a53c0673349bfb607927f20d1e122bde1e2bf3aa6cae6edf489629bcaa0689539ae3b718914d88ededc3b" + +const detachedSignatureHex = "889c04000102000605024d449cd1000a0910a34d7e18c20c31bb167603ff57718d09f28a519fdc7b5a68b6a3336da04df85e38c5cd5d5bd2092fa4629848a33d85b1729402a2aab39c3ac19f9d573f773cc62c264dc924c067a79dfd8a863ae06c7c8686120760749f5fd9b1e03a64d20a7df3446ddc8f0aeadeaeba7cbaee5c1e366d65b6a0c6cc749bcb912d2f15013f812795c2e29eb7f7b77f39ce77" + +const detachedSignatureTextHex = "889c04010102000605024d449d21000a0910a34d7e18c20c31bbc8c60400a24fbef7342603a41cb1165767bd18985d015fb72fe05db42db36cfb2f1d455967f1e491194fbf6cf88146222b23bf6ffbd50d17598d976a0417d3192ff9cc0034fd00f287b02e90418bbefe609484b09231e4e7a5f3562e199bf39909ab5276c4d37382fe088f6b5c3426fc1052865da8b3ab158672d58b6264b10823dc4b39" + +const detachedSignatureDSAHex = "884604001102000605024d6c4eac000a0910338934250ccc0360f18d00a087d743d6405ed7b87755476629600b8b694a39e900a0abff8126f46faf1547c1743c37b21b4ea15b8f83" + +const detachedSignatureP256Hex = "885e0400130a0006050256e5bb00000a0910d44a2c495918513edef001009841a4f792beb0befccb35c8838a6a87d9b936beaa86db6745ddc7b045eee0cf00fd1ac1f78306b17e965935dd3f8bae4587a76587e4af231efe19cc4011a8434817" + +// The plaintext is https://www.gutenberg.org/cache/epub/1080/pg1080.txt +const modestProposalSha512 = "lbbrB1+WP3T9AaC9OQqBdOcCjgeEQadlulXsNPgVx0tyqPzDHwUugZ2gE7V0ESKAw6kAVfgkcuvfgxAAGaeHtw==" + +const testKeys1And2Hex = "988d044d3c5c10010400b1d13382944bd5aba23a4312968b5095d14f947f600eb478e14a6fcb16b0e0cac764884909c020bc495cfcc39a935387c661507bdb236a0612fb582cac3af9b29cc2c8c70090616c41b662f4da4c1201e195472eb7f4ae1ccbcbf9940fe21d985e379a5563dde5b9a23d35f1cfaa5790da3b79db26f23695107bfaca8e7b5bcd0011010001b41054657374204b6579203120285253412988b804130102002205024d3c5c10021b03060b090807030206150802090a0b0416020301021e01021780000a0910a34d7e18c20c31bbb5b304009cc45fe610b641a2c146331be94dade0a396e73ca725e1b25c21708d9cab46ecca5ccebc23055879df8f99eea39b377962a400f2ebdc36a7c99c333d74aeba346315137c3ff9d0a09b0273299090343048afb8107cf94cbd1400e3026f0ccac7ecebbc4d78588eb3e478fe2754d3ca664bcf3eac96ca4a6b0c8d7df5102f60f6b0020003b88d044d3c5c10010400b201df61d67487301f11879d514f4248ade90c8f68c7af1284c161098de4c28c2850f1ec7b8e30f959793e571542ffc6532189409cb51c3d30dad78c4ad5165eda18b20d9826d8707d0f742e2ab492103a85bbd9ddf4f5720f6de7064feb0d39ee002219765bb07bcfb8b877f47abe270ddeda4f676108cecb6b9bb2ad484a4f0011010001889f04180102000905024d3c5c10021b0c000a0910a34d7e18c20c31bb1a03040085c8d62e16d05dc4e9dad64953c8a2eed8b6c12f92b1575eeaa6dcf7be9473dd5b24b37b6dffbb4e7c99ed1bd3cb11634be19b3e6e207bed7505c7ca111ccf47cb323bf1f8851eb6360e8034cbff8dd149993c959de89f8f77f38e7e98b8e3076323aa719328e2b408db5ec0d03936efd57422ba04f925cdc7b4c1af7590e40ab0020003988d044d3c5c33010400b488c3e5f83f4d561f317817538d9d0397981e9aef1321ca68ebfae1cf8b7d388e19f4b5a24a82e2fbbf1c6c26557a6c5845307a03d815756f564ac7325b02bc83e87d5480a8fae848f07cb891f2d51ce7df83dcafdc12324517c86d472cc0ee10d47a68fd1d9ae49a6c19bbd36d82af597a0d88cc9c49de9df4e696fc1f0b5d0011010001b42754657374204b6579203220285253412c20656e637279707465642070726976617465206b65792988b804130102002205024d3c5c33021b03060b090807030206150802090a0b0416020301021e01021780000a0910d4984f961e35246b98940400908a73b6a6169f700434f076c6c79015a49bee37130eaf23aaa3cfa9ce60bfe4acaa7bc95f1146ada5867e0079babb38804891f4f0b8ebca57a86b249dee786161a755b7a342e68ccf3f78ed6440a93a6626beb9a37aa66afcd4f888790cb4bb46d94a4ae3eb3d7d3e6b00f6bfec940303e89ec5b32a1eaaacce66497d539328b0020003b88d044d3c5c33010400a4e913f9442abcc7f1804ccab27d2f787ffa592077ca935a8bb23165bd8d57576acac647cc596b2c3f814518cc8c82953c7a4478f32e0cf645630a5ba38d9618ef2bc3add69d459ae3dece5cab778938d988239f8c5ae437807075e06c828019959c644ff05ef6a5a1dab72227c98e3a040b0cf219026640698d7a13d8538a570011010001889f04180102000905024d3c5c33021b0c000a0910d4984f961e35246b26c703ff7ee29ef53bc1ae1ead533c408fa136db508434e233d6e62be621e031e5940bbd4c08142aed0f82217e7c3e1ec8de574bc06ccf3c36633be41ad78a9eacd209f861cae7b064100758545cc9dd83db71806dc1cfd5fb9ae5c7474bba0c19c44034ae61bae5eca379383339dece94ff56ff7aa44a582f3e5c38f45763af577c0934b0020003" + +const testKeys1And2PrivateHex = "9501d8044d3c5c10010400b1d13382944bd5aba23a4312968b5095d14f947f600eb478e14a6fcb16b0e0cac764884909c020bc495cfcc39a935387c661507bdb236a0612fb582cac3af9b29cc2c8c70090616c41b662f4da4c1201e195472eb7f4ae1ccbcbf9940fe21d985e379a5563dde5b9a23d35f1cfaa5790da3b79db26f23695107bfaca8e7b5bcd00110100010003ff4d91393b9a8e3430b14d6209df42f98dc927425b881f1209f319220841273a802a97c7bdb8b3a7740b3ab5866c4d1d308ad0d3a79bd1e883aacf1ac92dfe720285d10d08752a7efe3c609b1d00f17f2805b217be53999a7da7e493bfc3e9618fd17018991b8128aea70a05dbce30e4fbe626aa45775fa255dd9177aabf4df7cf0200c1ded12566e4bc2bb590455e5becfb2e2c9796482270a943343a7835de41080582c2be3caf5981aa838140e97afa40ad652a0b544f83eb1833b0957dce26e47b0200eacd6046741e9ce2ec5beb6fb5e6335457844fb09477f83b050a96be7da043e17f3a9523567ed40e7a521f818813a8b8a72209f1442844843ccc7eb9805442570200bdafe0438d97ac36e773c7162028d65844c4d463e2420aa2228c6e50dc2743c3d6c72d0d782a5173fe7be2169c8a9f4ef8a7cf3e37165e8c61b89c346cdc6c1799d2b41054657374204b6579203120285253412988b804130102002205024d3c5c10021b03060b090807030206150802090a0b0416020301021e01021780000a0910a34d7e18c20c31bbb5b304009cc45fe610b641a2c146331be94dade0a396e73ca725e1b25c21708d9cab46ecca5ccebc23055879df8f99eea39b377962a400f2ebdc36a7c99c333d74aeba346315137c3ff9d0a09b0273299090343048afb8107cf94cbd1400e3026f0ccac7ecebbc4d78588eb3e478fe2754d3ca664bcf3eac96ca4a6b0c8d7df5102f60f6b00200009d01d8044d3c5c10010400b201df61d67487301f11879d514f4248ade90c8f68c7af1284c161098de4c28c2850f1ec7b8e30f959793e571542ffc6532189409cb51c3d30dad78c4ad5165eda18b20d9826d8707d0f742e2ab492103a85bbd9ddf4f5720f6de7064feb0d39ee002219765bb07bcfb8b877f47abe270ddeda4f676108cecb6b9bb2ad484a4f00110100010003fd17a7490c22a79c59281fb7b20f5e6553ec0c1637ae382e8adaea295f50241037f8997cf42c1ce26417e015091451b15424b2c59eb8d4161b0975630408e394d3b00f88d4b4e18e2cc85e8251d4753a27c639c83f5ad4a571c4f19d7cd460b9b73c25ade730c99df09637bd173d8e3e981ac64432078263bb6dc30d3e974150dd0200d0ee05be3d4604d2146fb0457f31ba17c057560785aa804e8ca5530a7cd81d3440d0f4ba6851efcfd3954b7e68908fc0ba47f7ac37bf559c6c168b70d3a7c8cd0200da1c677c4bce06a068070f2b3733b0a714e88d62aa3f9a26c6f5216d48d5c2b5624144f3807c0df30be66b3268eeeca4df1fbded58faf49fc95dc3c35f134f8b01fd1396b6c0fc1b6c4f0eb8f5e44b8eace1e6073e20d0b8bc5385f86f1cf3f050f66af789f3ef1fc107b7f4421e19e0349c730c68f0a226981f4e889054fdb4dc149e8e889f04180102000905024d3c5c10021b0c000a0910a34d7e18c20c31bb1a03040085c8d62e16d05dc4e9dad64953c8a2eed8b6c12f92b1575eeaa6dcf7be9473dd5b24b37b6dffbb4e7c99ed1bd3cb11634be19b3e6e207bed7505c7ca111ccf47cb323bf1f8851eb6360e8034cbff8dd149993c959de89f8f77f38e7e98b8e3076323aa719328e2b408db5ec0d03936efd57422ba04f925cdc7b4c1af7590e40ab00200009501fe044d3c5c33010400b488c3e5f83f4d561f317817538d9d0397981e9aef1321ca68ebfae1cf8b7d388e19f4b5a24a82e2fbbf1c6c26557a6c5845307a03d815756f564ac7325b02bc83e87d5480a8fae848f07cb891f2d51ce7df83dcafdc12324517c86d472cc0ee10d47a68fd1d9ae49a6c19bbd36d82af597a0d88cc9c49de9df4e696fc1f0b5d0011010001fe030302e9030f3c783e14856063f16938530e148bc57a7aa3f3e4f90df9dceccdc779bc0835e1ad3d006e4a8d7b36d08b8e0de5a0d947254ecfbd22037e6572b426bcfdc517796b224b0036ff90bc574b5509bede85512f2eefb520fb4b02aa523ba739bff424a6fe81c5041f253f8d757e69a503d3563a104d0d49e9e890b9d0c26f96b55b743883b472caa7050c4acfd4a21f875bdf1258d88bd61224d303dc9df77f743137d51e6d5246b88c406780528fd9a3e15bab5452e5b93970d9dcc79f48b38651b9f15bfbcf6da452837e9cc70683d1bdca94507870f743e4ad902005812488dd342f836e72869afd00ce1850eea4cfa53ce10e3608e13d3c149394ee3cbd0e23d018fcbcb6e2ec5a1a22972d1d462ca05355d0d290dd2751e550d5efb38c6c89686344df64852bf4ff86638708f644e8ec6bd4af9b50d8541cb91891a431326ab2e332faa7ae86cfb6e0540aa63160c1e5cdd5a4add518b303fff0a20117c6bc77f7cfbaf36b04c865c6c2b42754657374204b6579203220285253412c20656e637279707465642070726976617465206b65792988b804130102002205024d3c5c33021b03060b090807030206150802090a0b0416020301021e01021780000a0910d4984f961e35246b98940400908a73b6a6169f700434f076c6c79015a49bee37130eaf23aaa3cfa9ce60bfe4acaa7bc95f1146ada5867e0079babb38804891f4f0b8ebca57a86b249dee786161a755b7a342e68ccf3f78ed6440a93a6626beb9a37aa66afcd4f888790cb4bb46d94a4ae3eb3d7d3e6b00f6bfec940303e89ec5b32a1eaaacce66497d539328b00200009d01fe044d3c5c33010400a4e913f9442abcc7f1804ccab27d2f787ffa592077ca935a8bb23165bd8d57576acac647cc596b2c3f814518cc8c82953c7a4478f32e0cf645630a5ba38d9618ef2bc3add69d459ae3dece5cab778938d988239f8c5ae437807075e06c828019959c644ff05ef6a5a1dab72227c98e3a040b0cf219026640698d7a13d8538a570011010001fe030302e9030f3c783e148560f936097339ae381d63116efcf802ff8b1c9360767db5219cc987375702a4123fd8657d3e22700f23f95020d1b261eda5257e9a72f9a918e8ef22dd5b3323ae03bbc1923dd224db988cadc16acc04b120a9f8b7e84da9716c53e0334d7b66586ddb9014df604b41be1e960dcfcbc96f4ed150a1a0dd070b9eb14276b9b6be413a769a75b519a53d3ecc0c220e85cd91ca354d57e7344517e64b43b6e29823cbd87eae26e2b2e78e6dedfbb76e3e9f77bcb844f9a8932eb3db2c3f9e44316e6f5d60e9e2a56e46b72abe6b06dc9a31cc63f10023d1f5e12d2a3ee93b675c96f504af0001220991c88db759e231b3320dcedf814dcf723fd9857e3d72d66a0f2af26950b915abdf56c1596f46a325bf17ad4810d3535fb02a259b247ac3dbd4cc3ecf9c51b6c07cebb009c1506fba0a89321ec8683e3fd009a6e551d50243e2d5092fefb3321083a4bad91320dc624bd6b5dddf93553e3d53924c05bfebec1fb4bd47e89a1a889f04180102000905024d3c5c33021b0c000a0910d4984f961e35246b26c703ff7ee29ef53bc1ae1ead533c408fa136db508434e233d6e62be621e031e5940bbd4c08142aed0f82217e7c3e1ec8de574bc06ccf3c36633be41ad78a9eacd209f861cae7b064100758545cc9dd83db71806dc1cfd5fb9ae5c7474bba0c19c44034ae61bae5eca379383339dece94ff56ff7aa44a582f3e5c38f45763af577c0934b0020000" + +const dsaElGamalTestKeysHex = "9501e1044dfcb16a110400aa3e5c1a1f43dd28c2ffae8abf5cfce555ee874134d8ba0a0f7b868ce2214beddc74e5e1e21ded354a95d18acdaf69e5e342371a71fbb9093162e0c5f3427de413a7f2c157d83f5cd2f9d791256dc4f6f0e13f13c3302af27f2384075ab3021dff7a050e14854bbde0a1094174855fc02f0bae8e00a340d94a1f22b32e48485700a0cec672ac21258fb95f61de2ce1af74b2c4fa3e6703ff698edc9be22c02ae4d916e4fa223f819d46582c0516235848a77b577ea49018dcd5e9e15cff9dbb4663a1ae6dd7580fa40946d40c05f72814b0f88481207e6c0832c3bded4853ebba0a7e3bd8e8c66df33d5a537cd4acf946d1080e7a3dcea679cb2b11a72a33a2b6a9dc85f466ad2ddf4c3db6283fa645343286971e3dd700703fc0c4e290d45767f370831a90187e74e9972aae5bff488eeff7d620af0362bfb95c1a6c3413ab5d15a2e4139e5d07a54d72583914661ed6a87cce810be28a0aa8879a2dd39e52fb6fe800f4f181ac7e328f740cde3d09a05cecf9483e4cca4253e60d4429ffd679d9996a520012aad119878c941e3cf151459873bdfc2a9563472fe0303027a728f9feb3b864260a1babe83925ce794710cfd642ee4ae0e5b9d74cee49e9c67b6cd0ea5dfbb582132195a121356a1513e1bca73e5b80c58c7ccb4164453412f456c47616d616c2054657374204b65792031886204131102002205024dfcb16a021b03060b090807030206150802090a0b0416020301021e01021780000a091033af447ccd759b09fadd00a0b8fd6f5a790bad7e9f2dbb7632046dc4493588db009c087c6a9ba9f7f49fab221587a74788c00db4889ab00200009d0157044dfcb16a1004008dec3f9291205255ccff8c532318133a6840739dd68b03ba942676f9038612071447bf07d00d559c5c0875724ea16a4c774f80d8338b55fca691a0522e530e604215b467bbc9ccfd483a1da99d7bc2648b4318fdbd27766fc8bfad3fddb37c62b8ae7ccfe9577e9b8d1e77c1d417ed2c2ef02d52f4da11600d85d3229607943700030503ff506c94c87c8cab778e963b76cf63770f0a79bf48fb49d3b4e52234620fc9f7657f9f8d56c96a2b7c7826ae6b57ebb2221a3fe154b03b6637cea7e6d98e3e45d87cf8dc432f723d3d71f89c5192ac8d7290684d2c25ce55846a80c9a7823f6acd9bb29fa6cd71f20bc90eccfca20451d0c976e460e672b000df49466408d527affe0303027a728f9feb3b864260abd761730327bca2aaa4ea0525c175e92bf240682a0e83b226f97ecb2e935b62c9a133858ce31b271fa8eb41f6a1b3cd72a63025ce1a75ee4180dcc284884904181102000905024dfcb16a021b0c000a091033af447ccd759b09dd0b009e3c3e7296092c81bee5a19929462caaf2fff3ae26009e218c437a2340e7ea628149af1ec98ec091a43992b00200009501e1044dfcb1be1104009f61faa61aa43df75d128cbe53de528c4aec49ce9360c992e70c77072ad5623de0a3a6212771b66b39a30dad6781799e92608316900518ec01184a85d872365b7d2ba4bacfb5882ea3c2473d3750dc6178cc1cf82147fb58caa28b28e9f12f6d1efcb0534abed644156c91cca4ab78834268495160b2400bc422beb37d237c2300a0cac94911b6d493bda1e1fbc6feeca7cb7421d34b03fe22cec6ccb39675bb7b94a335c2b7be888fd3906a1125f33301d8aa6ec6ee6878f46f73961c8d57a3e9544d8ef2a2cbfd4d52da665b1266928cfe4cb347a58c412815f3b2d2369dec04b41ac9a71cc9547426d5ab941cccf3b18575637ccfb42df1a802df3cfe0a999f9e7109331170e3a221991bf868543960f8c816c28097e503fe319db10fb98049f3a57d7c80c420da66d56f3644371631fad3f0ff4040a19a4fedc2d07727a1b27576f75a4d28c47d8246f27071e12d7a8de62aad216ddbae6aa02efd6b8a3e2818cda48526549791ab277e447b3a36c57cefe9b592f5eab73959743fcc8e83cbefec03a329b55018b53eec196765ae40ef9e20521a603c551efe0303020950d53a146bf9c66034d00c23130cce95576a2ff78016ca471276e8227fb30b1ffbd92e61804fb0c3eff9e30b1a826ee8f3e4730b4d86273ca977b4164453412f456c47616d616c2054657374204b65792032886204131102002205024dfcb1be021b03060b090807030206150802090a0b0416020301021e01021780000a0910a86bf526325b21b22bd9009e34511620415c974750a20df5cb56b182f3b48e6600a0a9466cb1a1305a84953445f77d461593f1d42bc1b00200009d0157044dfcb1be1004009565a951da1ee87119d600c077198f1c1bceb0f7aa54552489298e41ff788fa8f0d43a69871f0f6f77ebdfb14a4260cf9fbeb65d5844b4272a1904dd95136d06c3da745dc46327dd44a0f16f60135914368c8039a34033862261806bb2c5ce1152e2840254697872c85441ccb7321431d75a747a4bfb1d2c66362b51ce76311700030503fc0ea76601c196768070b7365a200e6ddb09307f262d5f39eec467b5f5784e22abdf1aa49226f59ab37cb49969d8f5230ea65caf56015abda62604544ed526c5c522bf92bed178a078789f6c807b6d34885688024a5bed9e9f8c58d11d4b82487b44c5f470c5606806a0443b79cadb45e0f897a561a53f724e5349b9267c75ca17fe0303020950d53a146bf9c660bc5f4ce8f072465e2d2466434320c1e712272fafc20e342fe7608101580fa1a1a367e60486a7cd1246b7ef5586cf5e10b32762b710a30144f12dd17dd4884904181102000905024dfcb1be021b0c000a0910a86bf526325b21b2904c00a0b2b66b4b39ccffda1d10f3ea8d58f827e30a8b8e009f4255b2d8112a184e40cde43a34e8655ca7809370b0020000" + +const signedMessageHex = "a3019bc0cbccc0c4b8d8b74ee2108fe16ec6d3ca490cbe362d3f8333d3f352531472538b8b13d353b97232f352158c20943157c71c16064626063656269052062e4e01987e9b6fccff4b7df3a34c534b23e679cbec3bc0f8f6e64dfb4b55fe3f8efa9ce110ddb5cd79faf1d753c51aecfa669f7e7aa043436596cccc3359cb7dd6bbe9ecaa69e5989d9e57209571edc0b2fa7f57b9b79a64ee6e99ce1371395fee92fec2796f7b15a77c386ff668ee27f6d38f0baa6c438b561657377bf6acff3c5947befd7bf4c196252f1d6e5c524d0300" + +const signedTextMessageHex = "a3019bc0cbccc8c4b8d8b74ee2108fe16ec6d36a250cbece0c178233d3f352531472538b8b13d35379b97232f352158ca0b4312f57c71c1646462606365626906a062e4e019811591798ff99bf8afee860b0d8a8c2a85c3387e3bcf0bb3b17987f2bbcfab2aa526d930cbfd3d98757184df3995c9f3e7790e36e3e9779f06089d4c64e9e47dd6202cb6e9bc73c5d11bb59fbaf89d22d8dc7cf199ddf17af96e77c5f65f9bbed56f427bd8db7af37f6c9984bf9385efaf5f184f986fb3e6adb0ecfe35bbf92d16a7aa2a344fb0bc52fb7624f0200" + +const signedEncryptedMessageHex = "c18c032a67d68660df41c70103ff5a84c9a72f80e74ef0384c2d6a9ebfe2b09e06a8f298394f6d2abf174e40934ab0ec01fb2d0ddf21211c6fe13eb238563663b017a6b44edca552eb4736c4b7dc6ed907dd9e12a21b51b64b46f902f76fb7aaf805c1db8070574d8d0431a23e324a750f77fb72340a17a42300ee4ca8207301e95a731da229a63ab9c6b44541fbd2c11d016d810b3b3b2b38f15b5b40f0a4910332829c2062f1f7cc61f5b03677d73c54cafa1004ced41f315d46444946faae571d6f426e6dbd45d9780eb466df042005298adabf7ce0ef766dfeb94cd449c7ed0046c880339599c4711af073ce649b1e237c40b50a5536283e03bdbb7afad78bd08707715c67fb43295f905b4c479178809d429a8e167a9a8c6dfd8ab20b4edebdc38d6dec879a3202e1b752690d9bb5b0c07c5a227c79cc200e713a99251a4219d62ad5556900cf69bd384b6c8e726c7be267471d0d23af956da165af4af757246c2ebcc302b39e8ef2fccb4971b234fcda22d759ddb20e27269ee7f7fe67898a9de721bfa02ab0becaa046d00ea16cb1afc4e2eab40d0ac17121c565686e5cbd0cbdfbd9d6db5c70278b9c9db5a83176d04f61fbfbc4471d721340ede2746e5c312ded4f26787985af92b64fae3f253dbdde97f6a5e1996fd4d865599e32ff76325d3e9abe93184c02988ee89a4504356a4ef3b9b7a57cbb9637ca90af34a7676b9ef559325c3cca4e29d69fec1887f5440bb101361d744ad292a8547f22b4f22b419a42aa836169b89190f46d9560824cb2ac6e8771de8223216a5e647e132ab9eebcba89569ab339cb1c3d70fe806b31f4f4c600b4103b8d7583ebff16e43dcda551e6530f975122eb8b29" + +const verifiedSignatureEncryptedMessageHex = "c2b304000108000605026048f6d600210910a34d7e18c20c31bb1621045fb74b1d03b1e3cb31bc2f8aa34d7e18c20c31bb9a3b0400a32ddac1af259c1b0abab0041327ea04970944401978fb647dd1cf9aba4f164e43f0d8a9389501886474bdd4a6e77f6aea945c07dfbf87743835b44cc2c39a1f9aeecfa83135abc92e18e50396f2e6a06c44e0188b0081effbfb4160d28f118d4ff73dd199a102e47cffd8c7ff2bacd83ae72b5820c021a486766dd587b5da61" + +const unverifiedSignatureEncryptedMessageHex = "c2b304000108000605026048f6d600210910a34d7e18c20c31bb1621045fb74b1d03b1e3cb31bc2f8aa34d7e18c20c31bb9a3b0400a32ddac1af259c1b0abab0041327ea04970944401978fb647dd1cf9aba4f164e43f0d8a9389501886474bdd4a6e77f6aea945c07dfbf87743835b44cc2c39a1f9aeecfa83135abc92e18e50396f2e6a06c44e0188b0081effbfb4160d28f118d4ff73dd199a102e47cffd8c7ff2bacd83ae72b5820c021a486766dd587b5da61" + +const signedEncryptedMessage2Hex = "85010e03cf6a7abcd43e36731003fb057f5495b79db367e277cdbe4ab90d924ddee0c0381494112ff8c1238fb0184af35d1731573b01bc4c55ecacd2aafbe2003d36310487d1ecc9ac994f3fada7f9f7f5c3a64248ab7782906c82c6ff1303b69a84d9a9529c31ecafbcdb9ba87e05439897d87e8a2a3dec55e14df19bba7f7bd316291c002ae2efd24f83f9e3441203fc081c0c23dc3092a454ca8a082b27f631abf73aca341686982e8fbda7e0e7d863941d68f3de4a755c2964407f4b5e0477b3196b8c93d551dd23c8beef7d0f03fbb1b6066f78907faf4bf1677d8fcec72651124080e0b7feae6b476e72ab207d38d90b958759fdedfc3c6c35717c9dbfc979b3cfbbff0a76d24a5e57056bb88acbd2a901ef64bc6e4db02adc05b6250ff378de81dca18c1910ab257dff1b9771b85bb9bbe0a69f5989e6d1710a35e6dfcceb7d8fb5ccea8db3932b3d9ff3fe0d327597c68b3622aec8e3716c83a6c93f497543b459b58ba504ed6bcaa747d37d2ca746fe49ae0a6ce4a8b694234e941b5159ff8bd34b9023da2814076163b86f40eed7c9472f81b551452d5ab87004a373c0172ec87ea6ce42ccfa7dbdad66b745496c4873d8019e8c28d6b3" + +const signatureEncryptedMessage2Hex = "c24604001102000605024dfd0166000a091033af447ccd759b09bae600a096ec5e63ecf0a403085e10f75cc3bab327663282009f51fad9df457ed8d2b70d8a73c76e0443eac0f377" + +const symmetricallyEncryptedCompressedHex = "c32e040903085a357c1a7b5614ed00cc0d1d92f428162058b3f558a0fb0980d221ebac6c97d5eda4e0fe32f6e706e94dd263012d6ca1ef8c4bbd324098225e603a10c85ebf09cbf7b5aeeb5ce46381a52edc51038b76a8454483be74e6dcd1e50d5689a8ae7eceaeefed98a0023d49b22eb1f65c2aa1ef1783bb5e1995713b0457102ec3c3075fe871267ffa4b686ad5d52000d857" + +const dsaTestKeyHex = "9901a2044d6c49de110400cb5ce438cf9250907ac2ba5bf6547931270b89f7c4b53d9d09f4d0213a5ef2ec1f26806d3d259960f872a4a102ef1581ea3f6d6882d15134f21ef6a84de933cc34c47cc9106efe3bd84c6aec12e78523661e29bc1a61f0aab17fa58a627fd5fd33f5149153fbe8cd70edf3d963bc287ef875270ff14b5bfdd1bca4483793923b00a0fe46d76cb6e4cbdc568435cd5480af3266d610d303fe33ae8273f30a96d4d34f42fa28ce1112d425b2e3bf7ea553d526e2db6b9255e9dc7419045ce817214d1a0056dbc8d5289956a4b1b69f20f1105124096e6a438f41f2e2495923b0f34b70642607d45559595c7fe94d7fa85fc41bf7d68c1fd509ebeaa5f315f6059a446b9369c277597e4f474a9591535354c7e7f4fd98a08aa60400b130c24ff20bdfbf683313f5daebf1c9b34b3bdadfc77f2ddd72ee1fb17e56c473664bc21d66467655dd74b9005e3a2bacce446f1920cd7017231ae447b67036c9b431b8179deacd5120262d894c26bc015bffe3d827ba7087ad9b700d2ca1f6d16cc1786581e5dd065f293c31209300f9b0afcc3f7c08dd26d0a22d87580b4db41054657374204b65792033202844534129886204131102002205024d6c49de021b03060b090807030206150802090a0b0416020301021e01021780000a0910338934250ccc03607e0400a0bdb9193e8a6b96fc2dfc108ae848914b504481f100a09c4dc148cb693293a67af24dd40d2b13a9e36794" + +const dsaTestKeyPrivateHex = "9501bb044d6c49de110400cb5ce438cf9250907ac2ba5bf6547931270b89f7c4b53d9d09f4d0213a5ef2ec1f26806d3d259960f872a4a102ef1581ea3f6d6882d15134f21ef6a84de933cc34c47cc9106efe3bd84c6aec12e78523661e29bc1a61f0aab17fa58a627fd5fd33f5149153fbe8cd70edf3d963bc287ef875270ff14b5bfdd1bca4483793923b00a0fe46d76cb6e4cbdc568435cd5480af3266d610d303fe33ae8273f30a96d4d34f42fa28ce1112d425b2e3bf7ea553d526e2db6b9255e9dc7419045ce817214d1a0056dbc8d5289956a4b1b69f20f1105124096e6a438f41f2e2495923b0f34b70642607d45559595c7fe94d7fa85fc41bf7d68c1fd509ebeaa5f315f6059a446b9369c277597e4f474a9591535354c7e7f4fd98a08aa60400b130c24ff20bdfbf683313f5daebf1c9b34b3bdadfc77f2ddd72ee1fb17e56c473664bc21d66467655dd74b9005e3a2bacce446f1920cd7017231ae447b67036c9b431b8179deacd5120262d894c26bc015bffe3d827ba7087ad9b700d2ca1f6d16cc1786581e5dd065f293c31209300f9b0afcc3f7c08dd26d0a22d87580b4d00009f592e0619d823953577d4503061706843317e4fee083db41054657374204b65792033202844534129886204131102002205024d6c49de021b03060b090807030206150802090a0b0416020301021e01021780000a0910338934250ccc03607e0400a0bdb9193e8a6b96fc2dfc108ae848914b504481f100a09c4dc148cb693293a67af24dd40d2b13a9e36794" + +const p256TestKeyHex = "98520456e5b83813082a8648ce3d030107020304a2072cd6d21321266c758cc5b83fab0510f751cb8d91897cddb7047d8d6f185546e2107111b0a95cb8ef063c33245502af7a65f004d5919d93ee74eb71a66253b424502d3235362054657374204b6579203c696e76616c6964406578616d706c652e636f6d3e8879041313080021050256e5b838021b03050b09080702061508090a0b020416020301021e01021780000a0910d44a2c495918513e54e50100dfa64f97d9b47766fc1943c6314ba3f2b2a103d71ad286dc5b1efb96a345b0c80100dbc8150b54241f559da6ef4baacea6d31902b4f4b1bdc09b34bf0502334b7754b8560456e5b83812082a8648ce3d030107020304bfe3cea9cee13486f8d518aa487fecab451f25467d2bf08e58f63e5fa525d5482133e6a79299c274b068ef0be448152ad65cf11cf764348588ca4f6a0bcf22b6030108078861041813080009050256e5b838021b0c000a0910d44a2c495918513e4a4800ff49d589fa64024ad30be363a032e3a0e0e6f5db56ba4c73db850518bf0121b8f20100fd78e065f4c70ea5be9df319ea67e493b936fc78da834a71828043d3154af56e" + +const p256TestKeyPrivateHex = "94a50456e5b83813082a8648ce3d030107020304a2072cd6d21321266c758cc5b83fab0510f751cb8d91897cddb7047d8d6f185546e2107111b0a95cb8ef063c33245502af7a65f004d5919d93ee74eb71a66253fe070302f0c2bfb0b6c30f87ee1599472b8636477eab23ced13b271886a4b50ed34c9d8436af5af5b8f88921f0efba6ef8c37c459bbb88bc1c6a13bbd25c4ce9b1e97679569ee77645d469bf4b43de637f5561b424502d3235362054657374204b6579203c696e76616c6964406578616d706c652e636f6d3e8879041313080021050256e5b838021b03050b09080702061508090a0b020416020301021e01021780000a0910d44a2c495918513e54e50100dfa64f97d9b47766fc1943c6314ba3f2b2a103d71ad286dc5b1efb96a345b0c80100dbc8150b54241f559da6ef4baacea6d31902b4f4b1bdc09b34bf0502334b77549ca90456e5b83812082a8648ce3d030107020304bfe3cea9cee13486f8d518aa487fecab451f25467d2bf08e58f63e5fa525d5482133e6a79299c274b068ef0be448152ad65cf11cf764348588ca4f6a0bcf22b603010807fe0703027510012471a603cfee2968dce19f732721ddf03e966fd133b4e3c7a685b788705cbc46fb026dc94724b830c9edbaecd2fb2c662f23169516cacd1fe423f0475c364ecc10abcabcfd4bbbda1a36a1bd8861041813080009050256e5b838021b0c000a0910d44a2c495918513e4a4800ff49d589fa64024ad30be363a032e3a0e0e6f5db56ba4c73db850518bf0121b8f20100fd78e065f4c70ea5be9df319ea67e493b936fc78da834a71828043d3154af56e" + +const armoredPrivateKeyBlock = `-----BEGIN PGP PRIVATE KEY BLOCK----- +Version: GnuPG v1.4.10 (GNU/Linux) + +lQHYBE2rFNoBBADFwqWQIW/DSqcB4yCQqnAFTJ27qS5AnB46ccAdw3u4Greeu3Bp +idpoHdjULy7zSKlwR1EA873dO/k/e11Ml3dlAFUinWeejWaK2ugFP6JjiieSsrKn +vWNicdCS4HTWn0X4sjl0ZiAygw6GNhqEQ3cpLeL0g8E9hnYzJKQ0LWJa0QARAQAB +AAP/TB81EIo2VYNmTq0pK1ZXwUpxCrvAAIG3hwKjEzHcbQznsjNvPUihZ+NZQ6+X +0HCfPAdPkGDCLCb6NavcSW+iNnLTrdDnSI6+3BbIONqWWdRDYJhqZCkqmG6zqSfL +IdkJgCw94taUg5BWP/AAeQrhzjChvpMQTVKQL5mnuZbUCeMCAN5qrYMP2S9iKdnk +VANIFj7656ARKt/nf4CBzxcpHTyB8+d2CtPDKCmlJP6vL8t58Jmih+kHJMvC0dzn +gr5f5+sCAOOe5gt9e0am7AvQWhdbHVfJU0TQJx+m2OiCJAqGTB1nvtBLHdJnfdC9 +TnXXQ6ZXibqLyBies/xeY2sCKL5qtTMCAKnX9+9d/5yQxRyrQUHt1NYhaXZnJbHx +q4ytu0eWz+5i68IYUSK69jJ1NWPM0T6SkqpB3KCAIv68VFm9PxqG1KmhSrQIVGVz +dCBLZXmIuAQTAQIAIgUCTasU2gIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AA +CgkQO9o98PRieSoLhgQAkLEZex02Qt7vGhZzMwuN0R22w3VwyYyjBx+fM3JFETy1 +ut4xcLJoJfIaF5ZS38UplgakHG0FQ+b49i8dMij0aZmDqGxrew1m4kBfjXw9B/v+ +eIqpODryb6cOSwyQFH0lQkXC040pjq9YqDsO5w0WYNXYKDnzRV0p4H1pweo2VDid +AdgETasU2gEEAN46UPeWRqKHvA99arOxee38fBt2CI08iiWyI8T3J6ivtFGixSqV +bRcPxYO/qLpVe5l84Nb3X71GfVXlc9hyv7CD6tcowL59hg1E/DC5ydI8K8iEpUmK +/UnHdIY5h8/kqgGxkY/T/hgp5fRQgW1ZoZxLajVlMRZ8W4tFtT0DeA+JABEBAAEA +A/0bE1jaaZKj6ndqcw86jd+QtD1SF+Cf21CWRNeLKnUds4FRRvclzTyUMuWPkUeX +TaNNsUOFqBsf6QQ2oHUBBK4VCHffHCW4ZEX2cd6umz7mpHW6XzN4DECEzOVksXtc +lUC1j4UB91DC/RNQqwX1IV2QLSwssVotPMPqhOi0ZLNY7wIA3n7DWKInxYZZ4K+6 +rQ+POsz6brEoRHwr8x6XlHenq1Oki855pSa1yXIARoTrSJkBtn5oI+f8AzrnN0BN +oyeQAwIA/7E++3HDi5aweWrViiul9cd3rcsS0dEnksPhvS0ozCJiHsq/6GFmy7J8 +QSHZPteedBnZyNp5jR+H7cIfVN3KgwH/Skq4PsuPhDq5TKK6i8Pc1WW8MA6DXTdU +nLkX7RGmMwjC0DBf7KWAlPjFaONAX3a8ndnz//fy1q7u2l9AZwrj1qa1iJ8EGAEC +AAkFAk2rFNoCGwwACgkQO9o98PRieSo2/QP/WTzr4ioINVsvN1akKuekmEMI3LAp +BfHwatufxxP1U+3Si/6YIk7kuPB9Hs+pRqCXzbvPRrI8NHZBmc8qIGthishdCYad +AHcVnXjtxrULkQFGbGvhKURLvS9WnzD/m1K2zzwxzkPTzT9/Yf06O6Mal5AdugPL +VrM0m72/jnpKo04= +=zNCn +-----END PGP PRIVATE KEY BLOCK-----` + +const e2ePublicKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- +Charset: UTF-8 + +xv8AAABSBAAAAAATCCqGSM49AwEHAgME1LRoXSpOxtHXDUdmuvzchyg6005qIBJ4 +sfaSxX7QgH9RV2ONUhC+WiayCNADq+UMzuR/vunSr4aQffXvuGnR383/AAAAFDxk +Z2lsQHlhaG9vLWluYy5jb20+wv8AAACGBBATCAA4/wAAAAWCVGvAG/8AAAACiwn/ +AAAACZC2VkQCOjdvYf8AAAAFlQgJCgv/AAAAA5YBAv8AAAACngEAAE1BAP0X8veD +24IjmI5/C6ZAfVNXxgZZFhTAACFX75jUA3oD6AEAzoSwKf1aqH6oq62qhCN/pekX ++WAsVMBhNwzLpqtCRjLO/wAAAFYEAAAAABIIKoZIzj0DAQcCAwT50ain7vXiIRv8 +B1DO3x3cE/aattZ5sHNixJzRCXi2vQIA5QmOxZ6b5jjUekNbdHG3SZi1a2Ak5mfX +fRxC/5VGAwEIB8L/AAAAZQQYEwgAGP8AAAAFglRrwBz/AAAACZC2VkQCOjdvYQAA +FJAA9isX3xtGyMLYwp2F3nXm7QEdY5bq5VUcD/RJlj792VwA/1wH0pCzVLl4Q9F9 +ex7En5r7rHR5xwX82Msc+Rq9dSyO +=7MrZ +-----END PGP PUBLIC KEY BLOCK-----` + +const dsaKeyWithSHA512 = `9901a2044f04b07f110400db244efecc7316553ee08d179972aab87bb1214de7692593fcf5b6feb1c80fba268722dd464748539b85b81d574cd2d7ad0ca2444de4d849b8756bad7768c486c83a824f9bba4af773d11742bdfb4ac3b89ef8cc9452d4aad31a37e4b630d33927bff68e879284a1672659b8b298222fc68f370f3e24dccacc4a862442b9438b00a0ea444a24088dc23e26df7daf8f43cba3bffc4fe703fe3d6cd7fdca199d54ed8ae501c30e3ec7871ea9cdd4cf63cfe6fc82281d70a5b8bb493f922cd99fba5f088935596af087c8d818d5ec4d0b9afa7f070b3d7c1dd32a84fca08d8280b4890c8da1dde334de8e3cad8450eed2a4a4fcc2db7b8e5528b869a74a7f0189e11ef097ef1253582348de072bb07a9fa8ab838e993cef0ee203ff49298723e2d1f549b00559f886cd417a41692ce58d0ac1307dc71d85a8af21b0cf6eaa14baf2922d3a70389bedf17cc514ba0febbd107675a372fe84b90162a9e88b14d4b1c6be855b96b33fb198c46f058568817780435b6936167ebb3724b680f32bf27382ada2e37a879b3d9de2abe0c3f399350afd1ad438883f4791e2e3b4184453412068617368207472756e636174696f6e207465737488620413110a002205024f04b07f021b03060b090807030206150802090a0b0416020301021e01021780000a0910ef20e0cefca131581318009e2bf3bf047a44d75a9bacd00161ee04d435522397009a03a60d51bd8a568c6c021c8d7cf1be8d990d6417b0020003` + +const unknownHashFunctionHex = `8a00000040040001990006050253863c24000a09103b4fe6acc0b21f32ffff0101010101010101010101010101010101010101010101010101010101010101010101010101` + +const rsaSignatureBadMPIlength = `8a00000040040001030006050253863c24000a09103b4fe6acc0b21f32ffff0101010101010101010101010101010101010101010101010101010101010101010101010101` + +const missingHashFunctionHex = `8a00000040040001030006050253863c24000a09103b4fe6acc0b21f32ffff0101010101010101010101010101010101010101010101010101010101010101010101010101` + +const campbellQuine = `a0b001000300fcffa0b001000d00f2ff000300fcffa0b001000d00f2ff8270a01c00000500faff8270a01c00000500faff000500faff001400ebff8270a01c00000500faff000500faff001400ebff428821c400001400ebff428821c400001400ebff428821c400001400ebff428821c400001400ebff428821c400000000ffff000000ffff000b00f4ff428821c400000000ffff000000ffff000b00f4ff0233214c40000100feff000233214c40000100feff0000` + +const keyV4forVerifyingSignedMessageV3 = `-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: GPGTools - https://gpgtools.org + +mI0EVfxoFQEEAMBIqmbDfYygcvP6Phr1wr1XI41IF7Qixqybs/foBF8qqblD9gIY +BKpXjnBOtbkcVOJ0nljd3/sQIfH4E0vQwK5/4YRQSI59eKOqd6Fx+fWQOLG+uu6z +tewpeCj9LLHvibx/Sc7VWRnrznia6ftrXxJ/wHMezSab3tnGC0YPVdGNABEBAAG0 +JEdvY3J5cHRvIFRlc3QgS2V5IDx0aGVtYXhAZ21haWwuY29tPoi5BBMBCgAjBQJV +/GgVAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQeXnQmhdGW9PFVAP+ +K7TU0qX5ArvIONIxh/WAweyOk884c5cE8f+3NOPOOCRGyVy0FId5A7MmD5GOQh4H +JseOZVEVCqlmngEvtHZb3U1VYtVGE5WZ+6rQhGsMcWP5qaT4soYwMBlSYxgYwQcx +YhN9qOr292f9j2Y//TTIJmZT4Oa+lMxhWdqTfX+qMgG4jQRV/GgVAQQArhFSiij1 +b+hT3dnapbEU+23Z1yTu1DfF6zsxQ4XQWEV3eR8v+8mEDDNcz8oyyF56k6UQ3rXi +UMTIwRDg4V6SbZmaFbZYCOwp/EmXJ3rfhm7z7yzXj2OFN22luuqbyVhuL7LRdB0M +pxgmjXb4tTvfgKd26x34S+QqUJ7W6uprY4sAEQEAAYifBBgBCgAJBQJV/GgVAhsM +AAoJEHl50JoXRlvT7y8D/02ckx4OMkKBZo7viyrBw0MLG92i+DC2bs35PooHR6zz +786mitjOp5z2QWNLBvxC70S0qVfCIz8jKupO1J6rq6Z8CcbLF3qjm6h1omUBf8Nd +EfXKD2/2HV6zMKVknnKzIEzauh+eCKS2CeJUSSSryap/QLVAjRnckaES/OsEWhNB +=RZia +-----END PGP PUBLIC KEY BLOCK----- +` + +const signedMessageV3 = `-----BEGIN PGP MESSAGE----- +Comment: GPGTools - https://gpgtools.org + +owGbwMvMwMVYWXlhlrhb9GXG03JJDKF/MtxDMjKLFYAoUaEktbhEITe1uDgxPVWP +q5NhKjMrWAVcC9evD8z/bF/uWNjqtk/X3y5/38XGRQHm/57rrDRYuGnTw597Xqka +uM3137/hH3Os+Jf2dc0fXOITKwJvXJvecPVs0ta+Vg7ZO1MLn8w58Xx+6L58mbka +DGHyU9yTueZE8D+QF/Tz28Y78dqtF56R1VPn9Xw4uJqrWYdd7b3vIZ1V6R4Nh05d +iT57d/OhWwA= +=hG7R +-----END PGP MESSAGE----- +` + +// https://mailarchive.ietf.org/arch/msg/openpgp/9SheW_LENE0Kxf7haNllovPyAdY/ +const v5PrivKey = `-----BEGIN PGP PRIVATE KEY BLOCK----- + +lGEFXJH05BYAAAAtCSsGAQQB2kcPAQEHQFhZlVcVVtwf+21xNQPX+ecMJJBL0MPd +fj75iux+my8QAAAAAAAiAQCHZ1SnSUmWqxEsoI6facIVZQu6mph3cBFzzTvcm5lA +Ng5ctBhlbW1hLmdvbGRtYW5AZXhhbXBsZS5uZXSIlgUTFggASCIhBRk0e8mHJGQC +X5nfPsLgAA7ZiEiS4fez6kyUAJFZVptUBQJckfTkAhsDBQsJCAcCAyICAQYVCgkI +CwIEFgIDAQIeBwIXgAAA9cAA/jiR3yMsZMeEQ40u6uzEoXa6UXeV/S3wwJAXRJy9 +M8s0AP9vuL/7AyTfFXwwzSjDnYmzS0qAhbLDQ643N+MXGBJ2BZxmBVyR9OQSAAAA +MgorBgEEAZdVAQUBAQdA+nysrzml2UCweAqtpDuncSPlvrcBWKU0yfU0YvYWWAoD +AQgHAAAAAAAiAP9OdAPppjU1WwpqjIItkxr+VPQRT8Zm/Riw7U3F6v3OiBFHiHoF +GBYIACwiIQUZNHvJhyRkAl+Z3z7C4AAO2YhIkuH3s+pMlACRWVabVAUCXJH05AIb +DAAAOSQBAP4BOOIR/sGLNMOfeb5fPs/02QMieoiSjIBnijhob2U5AQC+RtOHCHx7 +TcIYl5/Uyoi+FOvPLcNw4hOv2nwUzSSVAw== +=IiS2 +-----END PGP PRIVATE KEY BLOCK-----` + +// Generated with the above private key +const v5PrivKeyMsg = `-----BEGIN PGP MESSAGE----- +Version: OpenPGP.js v4.10.7 +Comment: https://openpgpjs.org + +xA0DAQoWGTR7yYckZAIByxF1B21zZy50eHRfbIGSdGVzdMJ3BQEWCgAGBQJf +bIGSACMiIQUZNHvJhyRkAl+Z3z7C4AAO2YhIkuH3s+pMlACRWVabVDQvAP9G +y29VPonFXqi2zKkpZrvyvZxg+n5e8Nt9wNbuxeCd3QD/TtO2s+JvjrE4Siwv +UQdl5MlBka1QSNbMq2Bz7XwNPg4= +=6lbM +-----END PGP MESSAGE-----` + +const keyWithExpiredCrossSig = `-----BEGIN PGP PUBLIC KEY BLOCK----- + +xsDNBF2lnPIBDAC5cL9PQoQLTMuhjbYvb4Ncuuo0bfmgPRFywX53jPhoFf4Zg6mv +/seOXpgecTdOcVttfzC8ycIKrt3aQTiwOG/ctaR4Bk/t6ayNFfdUNxHWk4WCKzdz +/56fW2O0F23qIRd8UUJp5IIlN4RDdRCtdhVQIAuzvp2oVy/LaS2kxQoKvph/5pQ/ +5whqsyroEWDJoSV0yOb25B/iwk/pLUFoyhDG9bj0kIzDxrEqW+7Ba8nocQlecMF3 +X5KMN5kp2zraLv9dlBBpWW43XktjcCZgMy20SouraVma8Je/ECwUWYUiAZxLIlMv +9CurEOtxUw6N3RdOtLmYZS9uEnn5y1UkF88o8Nku890uk6BrewFzJyLAx5wRZ4F0 +qV/yq36UWQ0JB/AUGhHVPdFf6pl6eaxBwT5GXvbBUibtf8YI2og5RsgTWtXfU7eb +SGXrl5ZMpbA6mbfhd0R8aPxWfmDWiIOhBufhMCvUHh1sApMKVZnvIff9/0Dca3wb +vLIwa3T4CyshfT0AEQEAAc0hQm9iIEJhYmJhZ2UgPGJvYkBvcGVucGdwLmV4YW1w +bGU+wsEABBMBCgATBYJeO2eVAgsJAxUICgKbAQIeAQAhCRD7/MgqAV5zMBYhBNGm +bhojsYLJmA94jPv8yCoBXnMwKWUMAJ3FKZfJ2mXvh+GFqgymvK4NoKkDRPB0CbUN +aDdG7ZOizQrWXo7Da2MYIZ6eZUDqBKLdhZ5gZfVnisDfu/yeCgpENaKib1MPHpA8 +nZQjnPejbBDomNqY8HRzr5jvXNlwywBpjWGtegCKUY9xbSynjbfzIlMrWL4S+Rfl ++bOOQKRyYJWXmECmVyqY8cz2VUYmETjNcwC8VCDUxQnhtcCJ7Aej22hfYwVEPb/J +BsJBPq8WECCiGfJ9Y2y6TF+62KzG9Kfs5hqUeHhQy8V4TSi479ewwL7DH86XmIIK +chSANBS+7iyMtctjNZfmF9zYdGJFvjI/mbBR/lK66E515Inuf75XnL8hqlXuwqvG +ni+i03Aet1DzULZEIio4uIU6ioc1lGO9h7K2Xn4S7QQH1QoISNMWqXibUR0RCGjw +FsEDTt2QwJl8XXxoJCooM7BCcCQo+rMNVUHDjIwrdoQjPld3YZsUQQRcqH6bLuln +cfn5ufl8zTGWKydoj/iTz8KcjZ7w187AzQRdpZzyAQwA1jC/XGxjK6ddgrRfW9j+ +s/U00++EvIsgTs2kr3Rg0GP7FLWV0YNtR1mpl55/bEl7yAxCDTkOgPUMXcaKlnQh +6zrlt6H53mF6Bvs3inOHQvOsGtU0dqvb1vkTF0juLiJgPlM7pWv+pNQ6IA39vKoQ +sTMBv4v5vYNXP9GgKbg8inUNT17BxzZYHfw5+q63ectgDm2on1e8CIRCZ76oBVwz +dkVxoy3gjh1eENlk2D4P0uJNZzF1Q8GV67yLANGMCDICE/OkWn6daipYDzW4iJQt +YPUWP4hWhjdm+CK+hg6IQUEn2Vtvi16D2blRP8BpUNNa4fNuylWVuJV76rIHvsLZ +1pbM3LHpRgE8s6jivS3Rz3WRs0TmWCNnvHPqWizQ3VTy+r3UQVJ5AmhJDrZdZq9i +aUIuZ01PoE1+CHiJwuxPtWvVAxf2POcm1M/F1fK1J0e+lKlQuyonTXqXR22Y41wr +fP2aPk3nPSTW2DUAf3vRMZg57ZpRxLEhEMxcM4/LMR+PABEBAAHCwrIEGAEKAAkF +gl8sAVYCmwIB3QkQ+/zIKgFeczDA+qAEGQEKAAwFgl47Z5UFgwB4TOAAIQkQfC+q +Tfk8N7IWIQQd3OFfCSF87i87N2B8L6pN+Tw3st58C/0exp0X2U4LqicSHEOSqHZj +jiysdqIELHGyo5DSPv92UFPp36aqjF9OFgtNNwSa56fmAVCD4+hor/fKARRIeIjF +qdIC5Y/9a4B10NQFJa5lsvB38x/d39LI2kEoglZnqWgdJskROo3vNQF4KlIcm6FH +dn4WI8UkC5oUUcrpZVMSKoacIaxLwqnXT42nIVgYYuqrd/ZagZZjG5WlrTOd5+NI +zi/l0fWProcPHGLjmAh4Thu8i7omtVw1nQaMnq9I77ffg3cPDgXknYrLL+q8xXh/ +0mEJyIhnmPwllWCSZuLv9DrD5pOexFfdlwXhf6cLzNpW6QhXD/Tf5KrqIPr9aOv8 +9xaEEXWh0vEby2kIsI2++ft+vfdIyxYw/wKqx0awTSnuBV1rG3z1dswX4BfoY66x +Bz3KOVqlz9+mG/FTRQwrgPvR+qgLCHbuotxoGN7fzW+PI75hQG5JQAqhsC9sHjQH +UrI21/VUNwzfw3v5pYsWuFb5bdQ3ASJetICQiMy7IW8WIQTRpm4aI7GCyZgPeIz7 +/MgqAV5zMG6/C/wLpPl/9e6Hf5wmXIUwpZNQbNZvpiCcyx9sXsHXaycOQVxn3McZ +nYOUP9/mobl1tIeDQyTNbkxWjU0zzJl8XQsDZerb5098pg+x7oGIL7M1vn5s5JMl +owROourqF88JEtOBxLMxlAM7X4hB48xKQ3Hu9hS1GdnqLKki4MqRGl4l5FUwyGOM +GjyS3TzkfiDJNwQxybQiC9n57ij20ieNyLfuWCMLcNNnZUgZtnF6wCctoq/0ZIWu +a7nvuA/XC2WW9YjEJJiWdy5109pqac+qWiY11HWy/nms4gpMdxVpT0RhrKGWq4o0 +M5q3ZElOoeN70UO3OSbU5EVrG7gB1GuwF9mTHUVlV0veSTw0axkta3FGT//XfSpD +lRrCkyLzwq0M+UUHQAuYpAfobDlDdnxxOD2jm5GyTzak3GSVFfjW09QFVO6HlGp5 +01/jtzkUiS6nwoHHkfnyn0beZuR8X6KlcrzLB0VFgQFLmkSM9cSOgYhD0PTu9aHb +hW1Hj9AO8lzggBQ= +=Nt+N +-----END PGP PUBLIC KEY BLOCK----- +` + +const sigFromKeyWithExpiredCrossSig = `-----BEGIN PGP SIGNATURE----- + +wsDzBAABCgAGBYJfLAFsACEJEHwvqk35PDeyFiEEHdzhXwkhfO4vOzdgfC+qTfk8 +N7KiqwwAts4QGB7v9bABCC2qkTxJhmStC0wQMcHRcjL/qAiVnmasQWmvE9KVsdm3 +AaXd8mIx4a37/RRvr9dYrY2eE4uw72cMqPxNja2tvVXkHQvk1oEUqfkvbXs4ypKI +NyeTWjXNOTZEbg0hbm3nMy+Wv7zgB1CEvAsEboLDJlhGqPcD+X8a6CJGrBGUBUrv +KVmZr3U6vEzClz3DBLpoddCQseJRhT4YM1nKmBlZ5quh2LFgTSpajv5OsZheqt9y +EZAPbqmLhDmWRQwGzkWHKceKS7nZ/ox2WK6OS7Ob8ZGZkM64iPo6/EGj5Yc19vQN +AGiIaPEGszBBWlOpHTPhNm0LB0nMWqqaT87oNYwP8CQuuxDb6rKJ2lffCmZH27Lb +UbQZcH8J+0UhpeaiadPZxH5ATJAcenmVtVVMLVOFnm+eIlxzov9ntpgGYt8hLdXB +ITEG9mMgp3TGS9ZzSifMZ8UGtHdp9QdBg8NEVPFzDOMGxpc/Bftav7RRRuPiAER+ +7A5CBid5 +=aQkm +-----END PGP SIGNATURE----- +` + +const signedMessageWithCriticalNotation = `-----BEGIN PGP MESSAGE----- + +owGbwMvMwMH4oOW7S46CznTG09xJDDE3Wl1KUotLuDousDAwcjBYiSmyXL+48d6x +U1PSGUxcj8IUszKBVMpMaWAAAgEGZpAeh9SKxNyCnFS95PzcytRiBi5OAZjyXXzM +f8WYLqv7TXP61Sa4rqT12CI3xaN73YS2pt089f96odCKaEPnWJ3iSGmzJaW/ug10 +2Zo8Wj2k4s7t8wt4H3HtTu+y5UZfV3VOO+l//sdE/o+Lsub8FZH7/eOq7OnbNp4n +vwjE8mqJXetNMfj8r2SCyvkEnlVRYR+/mnge+ib56FdJ8uKtqSxyvgA= +=fRXs +-----END PGP MESSAGE-----` + +const criticalNotationSigner = `-----BEGIN PGP PUBLIC KEY BLOCK----- + +mI0EUmEvTgEEANyWtQQMOybQ9JltDqmaX0WnNPJeLILIM36sw6zL0nfTQ5zXSS3+ +fIF6P29lJFxpblWk02PSID5zX/DYU9/zjM2xPO8Oa4xo0cVTOTLj++Ri5mtr//f5 +GLsIXxFrBJhD/ghFsL3Op0GXOeLJ9A5bsOn8th7x6JucNKuaRB6bQbSPABEBAAG0 +JFRlc3QgTWNUZXN0aW5ndG9uIDx0ZXN0QGV4YW1wbGUuY29tPoi5BBMBAgAjBQJS +YS9OAhsvBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQSmNhOk1uQJQwDAP6 +AgrTyqkRlJVqz2pb46TfbDM2TDF7o9CBnBzIGoxBhlRwpqALz7z2kxBDmwpQa+ki +Bq3jZN/UosY9y8bhwMAlnrDY9jP1gdCo+H0sD48CdXybblNwaYpwqC8VSpDdTndf +9j2wE/weihGp/DAdy/2kyBCaiOY1sjhUfJ1GogF49rC4jQRSYS9OAQQA6R/PtBFa +JaT4jq10yqASk4sqwVMsc6HcifM5lSdxzExFP74naUMMyEsKHP53QxTF0Grqusag +Qg/ZtgT0CN1HUM152y7ACOdp1giKjpMzOTQClqCoclyvWOFB+L/SwGEIJf7LSCEr +woBuJifJc8xAVr0XX0JthoW+uP91eTQ3XpsAEQEAAYkBPQQYAQIACQUCUmEvTgIb +LgCoCRBKY2E6TW5AlJ0gBBkBAgAGBQJSYS9OAAoJEOCE90RsICyXuqIEANmmiRCA +SF7YK7PvFkieJNwzeK0V3F2lGX+uu6Y3Q/Zxdtwc4xR+me/CSBmsURyXTO29OWhP +GLszPH9zSJU9BdDi6v0yNprmFPX/1Ng0Abn/sCkwetvjxC1YIvTLFwtUL/7v6NS2 +bZpsUxRTg9+cSrMWWSNjiY9qUKajm1tuzPDZXAUEAMNmAN3xXN/Kjyvj2OK2ck0X +W748sl/tc3qiKPMJ+0AkMF7Pjhmh9nxqE9+QCEl7qinFqqBLjuzgUhBU4QlwX1GD +AtNTq6ihLMD5v1d82ZC7tNatdlDMGWnIdvEMCv2GZcuIqDQ9rXWs49e7tq1NncLY +hz3tYjKhoFTKEIq3y3Pp +=h/aX +-----END PGP PUBLIC KEY BLOCK-----` diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k.go new file mode 100644 index 000000000000..a43695964b2a --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k.go @@ -0,0 +1,407 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package s2k implements the various OpenPGP string-to-key transforms as +// specified in RFC 4800 section 3.7.1, and Argon2 specified in +// draft-ietf-openpgp-crypto-refresh-08 section 3.7.1.4. +package s2k // import "github.com/ProtonMail/go-crypto/openpgp/s2k" + +import ( + "crypto" + "hash" + "io" + "strconv" + + "github.com/ProtonMail/go-crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" + "golang.org/x/crypto/argon2" +) + +type Mode uint8 + +// Defines the default S2KMode constants +// +// 0 (simple), 1(salted), 3(iterated), 4(argon2) +const ( + SimpleS2K Mode = 0 + SaltedS2K Mode = 1 + IteratedSaltedS2K Mode = 3 + Argon2S2K Mode = 4 + GnuS2K Mode = 101 +) + +const Argon2SaltSize int = 16 + +// Params contains all the parameters of the s2k packet +type Params struct { + // mode is the mode of s2k function. + // It can be 0 (simple), 1(salted), 3(iterated) + // 2(reserved) 100-110(private/experimental). + mode Mode + // hashId is the ID of the hash function used in any of the modes + hashId byte + // salt is a byte array to use as a salt in hashing process or argon2 + saltBytes [Argon2SaltSize]byte + // countByte is used to determine how many rounds of hashing are to + // be performed in s2k mode 3. See RFC 4880 Section 3.7.1.3. + countByte byte + // passes is a parameter in Argon2 to determine the number of iterations + // See RFC the crypto refresh Section 3.7.1.4. + passes byte + // parallelism is a parameter in Argon2 to determine the degree of paralellism + // See RFC the crypto refresh Section 3.7.1.4. + parallelism byte + // memoryExp is a parameter in Argon2 to determine the memory usage + // i.e., 2 ** memoryExp kibibytes + // See RFC the crypto refresh Section 3.7.1.4. + memoryExp byte +} + +// encodeCount converts an iterative "count" in the range 1024 to +// 65011712, inclusive, to an encoded count. The return value is the +// octet that is actually stored in the GPG file. encodeCount panics +// if i is not in the above range (encodedCount above takes care to +// pass i in the correct range). See RFC 4880 Section 3.7.7.1. +func encodeCount(i int) uint8 { + if i < 65536 || i > 65011712 { + panic("count arg i outside the required range") + } + + for encoded := 96; encoded < 256; encoded++ { + count := decodeCount(uint8(encoded)) + if count >= i { + return uint8(encoded) + } + } + + return 255 +} + +// decodeCount returns the s2k mode 3 iterative "count" corresponding to +// the encoded octet c. +func decodeCount(c uint8) int { + return (16 + int(c&15)) << (uint32(c>>4) + 6) +} + +// encodeMemory converts the Argon2 "memory" in the range parallelism*8 to +// 2**31, inclusive, to an encoded memory. The return value is the +// octet that is actually stored in the GPG file. encodeMemory panics +// if is not in the above range +// See OpenPGP crypto refresh Section 3.7.1.4. +func encodeMemory(memory uint32, parallelism uint8) uint8 { + if memory < (8 * uint32(parallelism)) || memory > uint32(2147483648) { + panic("Memory argument memory is outside the required range") + } + + for exp := 3; exp < 31; exp++ { + compare := decodeMemory(uint8(exp)) + if compare >= memory { + return uint8(exp) + } + } + + return 31 +} + +// decodeMemory computes the decoded memory in kibibytes as 2**memoryExponent +func decodeMemory(memoryExponent uint8) uint32 { + return uint32(1) << memoryExponent +} + +// Simple writes to out the result of computing the Simple S2K function (RFC +// 4880, section 3.7.1.1) using the given hash and input passphrase. +func Simple(out []byte, h hash.Hash, in []byte) { + Salted(out, h, in, nil) +} + +var zero [1]byte + +// Salted writes to out the result of computing the Salted S2K function (RFC +// 4880, section 3.7.1.2) using the given hash, input passphrase and salt. +func Salted(out []byte, h hash.Hash, in []byte, salt []byte) { + done := 0 + var digest []byte + + for i := 0; done < len(out); i++ { + h.Reset() + for j := 0; j < i; j++ { + h.Write(zero[:]) + } + h.Write(salt) + h.Write(in) + digest = h.Sum(digest[:0]) + n := copy(out[done:], digest) + done += n + } +} + +// Iterated writes to out the result of computing the Iterated and Salted S2K +// function (RFC 4880, section 3.7.1.3) using the given hash, input passphrase, +// salt and iteration count. +func Iterated(out []byte, h hash.Hash, in []byte, salt []byte, count int) { + combined := make([]byte, len(in)+len(salt)) + copy(combined, salt) + copy(combined[len(salt):], in) + + if count < len(combined) { + count = len(combined) + } + + done := 0 + var digest []byte + for i := 0; done < len(out); i++ { + h.Reset() + for j := 0; j < i; j++ { + h.Write(zero[:]) + } + written := 0 + for written < count { + if written+len(combined) > count { + todo := count - written + h.Write(combined[:todo]) + written = count + } else { + h.Write(combined) + written += len(combined) + } + } + digest = h.Sum(digest[:0]) + n := copy(out[done:], digest) + done += n + } +} + +// Argon2 writes to out the key derived from the password (in) with the Argon2 +// function (the crypto refresh, section 3.7.1.4) +func Argon2(out []byte, in []byte, salt []byte, passes uint8, paralellism uint8, memoryExp uint8) { + key := argon2.IDKey(in, salt, uint32(passes), decodeMemory(memoryExp), paralellism, uint32(len(out))) + copy(out[:], key) +} + +// Generate generates valid parameters from given configuration. +// It will enforce the Iterated and Salted or Argon2 S2K method. +func Generate(rand io.Reader, c *Config) (*Params, error) { + var params *Params + if c != nil && c.Mode() == Argon2S2K { + // handle Argon2 case + argonConfig := c.Argon2() + params = &Params{ + mode: Argon2S2K, + passes: argonConfig.Passes(), + parallelism: argonConfig.Parallelism(), + memoryExp: argonConfig.EncodedMemory(), + } + } else if c != nil && c.PassphraseIsHighEntropy && c.Mode() == SaltedS2K { // Allow SaltedS2K if PassphraseIsHighEntropy + hashId, ok := algorithm.HashToHashId(c.hash()) + if !ok { + return nil, errors.UnsupportedError("no such hash") + } + + params = &Params{ + mode: SaltedS2K, + hashId: hashId, + } + } else { // Enforce IteratedSaltedS2K method otherwise + hashId, ok := algorithm.HashToHashId(c.hash()) + if !ok { + return nil, errors.UnsupportedError("no such hash") + } + if c != nil { + c.S2KMode = IteratedSaltedS2K + } + params = &Params{ + mode: IteratedSaltedS2K, + hashId: hashId, + countByte: c.EncodedCount(), + } + } + if _, err := io.ReadFull(rand, params.salt()); err != nil { + return nil, err + } + return params, nil +} + +// Parse reads a binary specification for a string-to-key transformation from r +// and returns a function which performs that transform. If the S2K is a special +// GNU extension that indicates that the private key is missing, then the error +// returned is errors.ErrDummyPrivateKey. +func Parse(r io.Reader) (f func(out, in []byte), err error) { + params, err := ParseIntoParams(r) + if err != nil { + return nil, err + } + + return params.Function() +} + +// ParseIntoParams reads a binary specification for a string-to-key +// transformation from r and returns a struct describing the s2k parameters. +func ParseIntoParams(r io.Reader) (params *Params, err error) { + var buf [Argon2SaltSize + 3]byte + + _, err = io.ReadFull(r, buf[:1]) + if err != nil { + return + } + + params = &Params{ + mode: Mode(buf[0]), + } + + switch params.mode { + case SimpleS2K: + _, err = io.ReadFull(r, buf[:1]) + if err != nil { + return nil, err + } + params.hashId = buf[0] + return params, nil + case SaltedS2K: + _, err = io.ReadFull(r, buf[:9]) + if err != nil { + return nil, err + } + params.hashId = buf[0] + copy(params.salt(), buf[1:9]) + return params, nil + case IteratedSaltedS2K: + _, err = io.ReadFull(r, buf[:10]) + if err != nil { + return nil, err + } + params.hashId = buf[0] + copy(params.salt(), buf[1:9]) + params.countByte = buf[9] + return params, nil + case Argon2S2K: + _, err = io.ReadFull(r, buf[:Argon2SaltSize+3]) + if err != nil { + return nil, err + } + copy(params.salt(), buf[:Argon2SaltSize]) + params.passes = buf[Argon2SaltSize] + params.parallelism = buf[Argon2SaltSize+1] + params.memoryExp = buf[Argon2SaltSize+2] + return params, nil + case GnuS2K: + // This is a GNU extension. See + // https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=doc/DETAILS;h=fe55ae16ab4e26d8356dc574c9e8bc935e71aef1;hb=23191d7851eae2217ecdac6484349849a24fd94a#l1109 + if _, err = io.ReadFull(r, buf[:5]); err != nil { + return nil, err + } + params.hashId = buf[0] + if buf[1] == 'G' && buf[2] == 'N' && buf[3] == 'U' && buf[4] == 1 { + return params, nil + } + return nil, errors.UnsupportedError("GNU S2K extension") + } + + return nil, errors.UnsupportedError("S2K function") +} + +func (params *Params) Dummy() bool { + return params != nil && params.mode == GnuS2K +} + +func (params *Params) salt() []byte { + switch params.mode { + case SaltedS2K, IteratedSaltedS2K: return params.saltBytes[:8] + case Argon2S2K: return params.saltBytes[:Argon2SaltSize] + default: return nil + } +} + +func (params *Params) Function() (f func(out, in []byte), err error) { + if params.Dummy() { + return nil, errors.ErrDummyPrivateKey("dummy key found") + } + var hashObj crypto.Hash + if params.mode != Argon2S2K { + var ok bool + hashObj, ok = algorithm.HashIdToHashWithSha1(params.hashId) + if !ok { + return nil, errors.UnsupportedError("hash for S2K function: " + strconv.Itoa(int(params.hashId))) + } + if !hashObj.Available() { + return nil, errors.UnsupportedError("hash not available: " + strconv.Itoa(int(hashObj))) + } + } + + switch params.mode { + case SimpleS2K: + f := func(out, in []byte) { + Simple(out, hashObj.New(), in) + } + + return f, nil + case SaltedS2K: + f := func(out, in []byte) { + Salted(out, hashObj.New(), in, params.salt()) + } + + return f, nil + case IteratedSaltedS2K: + f := func(out, in []byte) { + Iterated(out, hashObj.New(), in, params.salt(), decodeCount(params.countByte)) + } + + return f, nil + case Argon2S2K: + f := func(out, in []byte) { + Argon2(out, in, params.salt(), params.passes, params.parallelism, params.memoryExp) + } + return f, nil + } + + return nil, errors.UnsupportedError("S2K function") +} + +func (params *Params) Serialize(w io.Writer) (err error) { + if _, err = w.Write([]byte{uint8(params.mode)}); err != nil { + return + } + if params.mode != Argon2S2K { + if _, err = w.Write([]byte{params.hashId}); err != nil { + return + } + } + if params.Dummy() { + _, err = w.Write(append([]byte("GNU"), 1)) + return + } + if params.mode > 0 { + if _, err = w.Write(params.salt()); err != nil { + return + } + if params.mode == IteratedSaltedS2K { + _, err = w.Write([]byte{params.countByte}) + } + if params.mode == Argon2S2K { + _, err = w.Write([]byte{params.passes, params.parallelism, params.memoryExp}) + } + } + return +} + +// Serialize salts and stretches the given passphrase and writes the +// resulting key into key. It also serializes an S2K descriptor to +// w. The key stretching can be configured with c, which may be +// nil. In that case, sensible defaults will be used. +func Serialize(w io.Writer, key []byte, rand io.Reader, passphrase []byte, c *Config) error { + params, err := Generate(rand, c) + if err != nil { + return err + } + err = params.Serialize(w) + if err != nil { + return err + } + + f, err := params.Function() + if err != nil { + return err + } + f(key, passphrase) + return nil +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k_cache.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k_cache.go new file mode 100644 index 000000000000..25a4442dfbd1 --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k_cache.go @@ -0,0 +1,26 @@ +package s2k + +// Cache stores keys derived with s2k functions from one passphrase +// to avoid recomputation if multiple items are encrypted with +// the same parameters. +type Cache map[Params][]byte + +// GetOrComputeDerivedKey tries to retrieve the key +// for the given s2k parameters from the cache. +// If there is no hit, it derives the key with the s2k function from the passphrase, +// updates the cache, and returns the key. +func (c *Cache) GetOrComputeDerivedKey(passphrase []byte, params *Params, expectedKeySize int) ([]byte, error) { + key, found := (*c)[*params] + if !found || len(key) != expectedKeySize { + var err error + derivedKey := make([]byte, expectedKeySize) + s2k, err := params.Function() + if err != nil { + return nil, err + } + s2k(derivedKey, passphrase) + (*c)[*params] = key + return derivedKey, nil + } + return key, nil +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k_config.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k_config.go new file mode 100644 index 000000000000..b40be5228fca --- /dev/null +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k_config.go @@ -0,0 +1,129 @@ +package s2k + +import "crypto" + +// Config collects configuration parameters for s2k key-stretching +// transformations. A nil *Config is valid and results in all default +// values. +type Config struct { + // S2K (String to Key) mode, used for key derivation in the context of secret key encryption + // and passphrase-encrypted data. Either s2k.Argon2S2K or s2k.IteratedSaltedS2K may be used. + // If the passphrase is a high-entropy key, indicated by setting PassphraseIsHighEntropy to true, + // s2k.SaltedS2K can also be used. + // Note: Argon2 is the strongest option but not all OpenPGP implementations are compatible with it + //(pending standardisation). + // 0 (simple), 1(salted), 3(iterated), 4(argon2) + // 2(reserved) 100-110(private/experimental). + S2KMode Mode + // Only relevant if S2KMode is not set to s2k.Argon2S2K. + // Hash is the default hash function to be used. If + // nil, SHA256 is used. + Hash crypto.Hash + // Argon2 parameters for S2K (String to Key). + // Only relevant if S2KMode is set to s2k.Argon2S2K. + // If nil, default parameters are used. + // For more details on the choice of parameters, see https://tools.ietf.org/html/rfc9106#section-4. + Argon2Config *Argon2Config + // Only relevant if S2KMode is set to s2k.IteratedSaltedS2K. + // Iteration count for Iterated S2K (String to Key). It + // determines the strength of the passphrase stretching when + // the said passphrase is hashed to produce a key. S2KCount + // should be between 65536 and 65011712, inclusive. If Config + // is nil or S2KCount is 0, the value 16777216 used. Not all + // values in the above range can be represented. S2KCount will + // be rounded up to the next representable value if it cannot + // be encoded exactly. When set, it is strongly encrouraged to + // use a value that is at least 65536. See RFC 4880 Section + // 3.7.1.3. + S2KCount int + // Indicates whether the passphrase passed by the application is a + // high-entropy key (e.g. it's randomly generated or derived from + // another passphrase using a strong key derivation function). + // When true, allows the S2KMode to be s2k.SaltedS2K. + // When the passphrase is not a high-entropy key, using SaltedS2K is + // insecure, and not allowed by draft-ietf-openpgp-crypto-refresh-08. + PassphraseIsHighEntropy bool +} + +// Argon2Config stores the Argon2 parameters +// A nil *Argon2Config is valid and results in all default +type Argon2Config struct { + NumberOfPasses uint8 + DegreeOfParallelism uint8 + // The memory parameter for Argon2 specifies desired memory usage in kibibytes. + // For example memory=64*1024 sets the memory cost to ~64 MB. + Memory uint32 +} + +func (c *Config) Mode() Mode { + if c == nil { + return IteratedSaltedS2K + } + return c.S2KMode +} + +func (c *Config) hash() crypto.Hash { + if c == nil || uint(c.Hash) == 0 { + return crypto.SHA256 + } + + return c.Hash +} + +func (c *Config) Argon2() *Argon2Config { + if c == nil || c.Argon2Config == nil { + return nil + } + return c.Argon2Config +} + +// EncodedCount get encoded count +func (c *Config) EncodedCount() uint8 { + if c == nil || c.S2KCount == 0 { + return 224 // The common case. Corresponding to 16777216 + } + + i := c.S2KCount + + switch { + case i < 65536: + i = 65536 + case i > 65011712: + i = 65011712 + } + + return encodeCount(i) +} + +func (c *Argon2Config) Passes() uint8 { + if c == nil || c.NumberOfPasses == 0 { + return 3 + } + return c.NumberOfPasses +} + +func (c *Argon2Config) Parallelism() uint8 { + if c == nil || c.DegreeOfParallelism == 0 { + return 4 + } + return c.DegreeOfParallelism +} + +func (c *Argon2Config) EncodedMemory() uint8 { + if c == nil || c.Memory == 0 { + return 16 // 64 MiB of RAM + } + + memory := c.Memory + lowerBound := uint32(c.Parallelism())*8 + upperBound := uint32(2147483648) + + switch { + case memory < lowerBound: + memory = lowerBound + case memory > upperBound: + memory = upperBound + } + + return encodeMemory(memory, c.Parallelism()) +} diff --git a/vendor/golang.org/x/crypto/openpgp/write.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/write.go similarity index 51% rename from vendor/golang.org/x/crypto/openpgp/write.go rename to vendor/github.com/ProtonMail/go-crypto/openpgp/write.go index b89d48b81d73..7fdd13a3dd30 100644 --- a/vendor/golang.org/x/crypto/openpgp/write.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/write.go @@ -11,10 +11,10 @@ import ( "strconv" "time" - "golang.org/x/crypto/openpgp/armor" - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/packet" - "golang.org/x/crypto/openpgp/s2k" + "github.com/ProtonMail/go-crypto/openpgp/armor" + "github.com/ProtonMail/go-crypto/openpgp/errors" + "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" + "github.com/ProtonMail/go-crypto/openpgp/packet" ) // DetachSign signs message with the private key from signer (which must @@ -60,27 +60,31 @@ func armoredDetachSign(w io.Writer, signer *Entity, message io.Reader, sigType p } func detachSign(w io.Writer, signer *Entity, message io.Reader, sigType packet.SignatureType, config *packet.Config) (err error) { - if signer.PrivateKey == nil { + signingKey, ok := signer.SigningKeyById(config.Now(), config.SigningKey()) + if !ok { + return errors.InvalidArgumentError("no valid signing keys") + } + if signingKey.PrivateKey == nil { return errors.InvalidArgumentError("signing key doesn't have a private key") } - if signer.PrivateKey.Encrypted { + if signingKey.PrivateKey.Encrypted { return errors.InvalidArgumentError("signing key is encrypted") } + if _, ok := algorithm.HashToHashId(config.Hash()); !ok { + return errors.InvalidArgumentError("invalid hash function") + } - sig := new(packet.Signature) - sig.SigType = sigType - sig.PubKeyAlgo = signer.PrivateKey.PubKeyAlgo - sig.Hash = config.Hash() - sig.CreationTime = config.Now() - sig.IssuerKeyId = &signer.PrivateKey.KeyId + sig := createSignaturePacket(signingKey.PublicKey, sigType, config) h, wrappedHash, err := hashForSignature(sig.Hash, sig.SigType) if err != nil { return } - io.Copy(wrappedHash, message) + if _, err = io.Copy(wrappedHash, message); err != nil { + return err + } - err = sig.Sign(h, signer.PrivateKey, config) + err = sig.Sign(h, signingKey.PrivateKey, config) if err != nil { return } @@ -115,18 +119,24 @@ func SymmetricallyEncrypt(ciphertext io.Writer, passphrase []byte, hints *FileHi if err != nil { return } - w, err := packet.SerializeSymmetricallyEncrypted(ciphertext, config.Cipher(), key, config) + + var w io.WriteCloser + cipherSuite := packet.CipherSuite{ + Cipher: config.Cipher(), + Mode: config.AEAD().Mode(), + } + w, err = packet.SerializeSymmetricallyEncrypted(ciphertext, config.Cipher(), config.AEAD() != nil, cipherSuite, key, config) if err != nil { return } - literaldata := w + literalData := w if algo := config.Compression(); algo != packet.CompressionNone { var compConfig *packet.CompressionConfig if config != nil { compConfig = config.CompressionConfig } - literaldata, err = packet.SerializeCompressed(w, algo, compConfig) + literalData, err = packet.SerializeCompressed(w, algo, compConfig) if err != nil { return } @@ -136,7 +146,7 @@ func SymmetricallyEncrypt(ciphertext io.Writer, passphrase []byte, hints *FileHi if !hints.ModTime.IsZero() { epochSeconds = uint32(hints.ModTime.Unix()) } - return packet.SerializeLiteral(literaldata, hints.IsBinary, hints.FileName, epochSeconds) + return packet.SerializeLiteral(literalData, hints.IsBinary, hints.FileName, epochSeconds) } // intersectPreferences mutates and returns a prefix of a that contains only @@ -156,23 +166,76 @@ func intersectPreferences(a []uint8, b []uint8) (intersection []uint8) { return a[:j] } +// intersectPreferences mutates and returns a prefix of a that contains only +// the values in the intersection of a and b. The order of a is preserved. +func intersectCipherSuites(a [][2]uint8, b [][2]uint8) (intersection [][2]uint8) { + var j int + for _, v := range a { + for _, v2 := range b { + if v[0] == v2[0] && v[1] == v2[1] { + a[j] = v + j++ + break + } + } + } + + return a[:j] +} + func hashToHashId(h crypto.Hash) uint8 { - v, ok := s2k.HashToHashId(h) + v, ok := algorithm.HashToHashId(h) if !ok { panic("tried to convert unknown hash") } return v } +// EncryptText encrypts a message to a number of recipients and, optionally, +// signs it. Optional information is contained in 'hints', also encrypted, that +// aids the recipients in processing the message. The resulting WriteCloser +// must be closed after the contents of the file have been written. If config +// is nil, sensible defaults will be used. The signing is done in text mode. +func EncryptText(ciphertext io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { + return encrypt(ciphertext, ciphertext, to, signed, hints, packet.SigTypeText, config) +} + +// Encrypt encrypts a message to a number of recipients and, optionally, signs +// it. hints contains optional information, that is also encrypted, that aids +// the recipients in processing the message. The resulting WriteCloser must +// be closed after the contents of the file have been written. +// If config is nil, sensible defaults will be used. +func Encrypt(ciphertext io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { + return encrypt(ciphertext, ciphertext, to, signed, hints, packet.SigTypeBinary, config) +} + +// EncryptSplit encrypts a message to a number of recipients and, optionally, signs +// it. hints contains optional information, that is also encrypted, that aids +// the recipients in processing the message. The resulting WriteCloser must +// be closed after the contents of the file have been written. +// If config is nil, sensible defaults will be used. +func EncryptSplit(keyWriter io.Writer, dataWriter io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { + return encrypt(keyWriter, dataWriter, to, signed, hints, packet.SigTypeBinary, config) +} + +// EncryptTextSplit encrypts a message to a number of recipients and, optionally, signs +// it. hints contains optional information, that is also encrypted, that aids +// the recipients in processing the message. The resulting WriteCloser must +// be closed after the contents of the file have been written. +// If config is nil, sensible defaults will be used. +func EncryptTextSplit(keyWriter io.Writer, dataWriter io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { + return encrypt(keyWriter, dataWriter, to, signed, hints, packet.SigTypeText, config) +} + // writeAndSign writes the data as a payload package and, optionally, signs // it. hints contains optional information, that is also encrypted, // that aids the recipients in processing the message. The resulting // WriteCloser must be closed after the contents of the file have been // written. If config is nil, sensible defaults will be used. -func writeAndSign(payload io.WriteCloser, candidateHashes []uint8, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { +func writeAndSign(payload io.WriteCloser, candidateHashes []uint8, signed *Entity, hints *FileHints, sigType packet.SignatureType, config *packet.Config) (plaintext io.WriteCloser, err error) { var signer *packet.PrivateKey if signed != nil { - signKey, ok := signed.signingKey(config.Now()) + signKey, ok := signed.SigningKeyById(config.Now(), config.SigningKey()) if !ok { return nil, errors.InvalidArgumentError("no valid signing keys") } @@ -187,7 +250,7 @@ func writeAndSign(payload io.WriteCloser, candidateHashes []uint8, signed *Entit var hash crypto.Hash for _, hashId := range candidateHashes { - if h, ok := s2k.HashIdToHash(hashId); ok && h.Available() { + if h, ok := algorithm.HashIdToHash(hashId); ok && h.Available() { hash = h break } @@ -196,7 +259,7 @@ func writeAndSign(payload io.WriteCloser, candidateHashes []uint8, signed *Entit // If the hash specified by config is a candidate, we'll use that. if configuredHash := config.Hash(); configuredHash.Available() { for _, hashId := range candidateHashes { - if h, ok := s2k.HashIdToHash(hashId); ok && h == configuredHash { + if h, ok := algorithm.HashIdToHash(hashId); ok && h == configuredHash { hash = h break } @@ -205,7 +268,7 @@ func writeAndSign(payload io.WriteCloser, candidateHashes []uint8, signed *Entit if hash == 0 { hashId := candidateHashes[0] - name, ok := s2k.HashIdToString(hashId) + name, ok := algorithm.HashIdToString(hashId) if !ok { name = "#" + strconv.Itoa(int(hashId)) } @@ -214,7 +277,7 @@ func writeAndSign(payload io.WriteCloser, candidateHashes []uint8, signed *Entit if signer != nil { ops := &packet.OnePassSignature{ - SigType: packet.SigTypeBinary, + SigType: sigType, Hash: hash, PubKeyAlgo: signer.PubKeyAlgo, KeyId: signer.KeyId, @@ -247,68 +310,108 @@ func writeAndSign(payload io.WriteCloser, candidateHashes []uint8, signed *Entit } if signer != nil { - return signatureWriter{payload, literalData, hash, hash.New(), signer, config}, nil + h, wrappedHash, err := hashForSignature(hash, sigType) + if err != nil { + return nil, err + } + metadata := &packet.LiteralData{ + Format: 't', + FileName: hints.FileName, + Time: epochSeconds, + } + if hints.IsBinary { + metadata.Format = 'b' + } + return signatureWriter{payload, literalData, hash, wrappedHash, h, signer, sigType, config, metadata}, nil } return literalData, nil } -// Encrypt encrypts a message to a number of recipients and, optionally, signs +// encrypt encrypts a message to a number of recipients and, optionally, signs // it. hints contains optional information, that is also encrypted, that aids // the recipients in processing the message. The resulting WriteCloser must // be closed after the contents of the file have been written. // If config is nil, sensible defaults will be used. -func Encrypt(ciphertext io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { +func encrypt(keyWriter io.Writer, dataWriter io.Writer, to []*Entity, signed *Entity, hints *FileHints, sigType packet.SignatureType, config *packet.Config) (plaintext io.WriteCloser, err error) { if len(to) == 0 { return nil, errors.InvalidArgumentError("no encryption recipient provided") } // These are the possible ciphers that we'll use for the message. candidateCiphers := []uint8{ - uint8(packet.CipherAES128), uint8(packet.CipherAES256), - uint8(packet.CipherCAST5), + uint8(packet.CipherAES128), } + // These are the possible hash functions that we'll use for the signature. candidateHashes := []uint8{ hashToHashId(crypto.SHA256), hashToHashId(crypto.SHA384), hashToHashId(crypto.SHA512), - hashToHashId(crypto.SHA1), - hashToHashId(crypto.RIPEMD160), + hashToHashId(crypto.SHA3_256), + hashToHashId(crypto.SHA3_512), + } + + // Prefer GCM if everyone supports it + candidateCipherSuites := [][2]uint8{ + {uint8(packet.CipherAES256), uint8(packet.AEADModeGCM)}, + {uint8(packet.CipherAES256), uint8(packet.AEADModeEAX)}, + {uint8(packet.CipherAES256), uint8(packet.AEADModeOCB)}, + {uint8(packet.CipherAES128), uint8(packet.AEADModeGCM)}, + {uint8(packet.CipherAES128), uint8(packet.AEADModeEAX)}, + {uint8(packet.CipherAES128), uint8(packet.AEADModeOCB)}, + } + + candidateCompression := []uint8{ + uint8(packet.CompressionNone), + uint8(packet.CompressionZIP), + uint8(packet.CompressionZLIB), } - // In the event that a recipient doesn't specify any supported ciphers - // or hash functions, these are the ones that we assume that every - // implementation supports. - defaultCiphers := candidateCiphers[len(candidateCiphers)-1:] - defaultHashes := candidateHashes[len(candidateHashes)-1:] encryptKeys := make([]Key, len(to)) + + // AEAD is used only if config enables it and every key supports it + aeadSupported := config.AEAD() != nil + for i := range to { var ok bool - encryptKeys[i], ok = to[i].encryptionKey(config.Now()) + encryptKeys[i], ok = to[i].EncryptionKey(config.Now()) if !ok { - return nil, errors.InvalidArgumentError("cannot encrypt a message to key id " + strconv.FormatUint(to[i].PrimaryKey.KeyId, 16) + " because it has no encryption keys") + return nil, errors.InvalidArgumentError("cannot encrypt a message to key id " + strconv.FormatUint(to[i].PrimaryKey.KeyId, 16) + " because it has no valid encryption keys") } - sig := to[i].primaryIdentity().SelfSignature - - preferredSymmetric := sig.PreferredSymmetric - if len(preferredSymmetric) == 0 { - preferredSymmetric = defaultCiphers - } - preferredHashes := sig.PreferredHash - if len(preferredHashes) == 0 { - preferredHashes = defaultHashes + sig := to[i].PrimaryIdentity().SelfSignature + if !sig.SEIPDv2 { + aeadSupported = false } - candidateCiphers = intersectPreferences(candidateCiphers, preferredSymmetric) - candidateHashes = intersectPreferences(candidateHashes, preferredHashes) + + candidateCiphers = intersectPreferences(candidateCiphers, sig.PreferredSymmetric) + candidateHashes = intersectPreferences(candidateHashes, sig.PreferredHash) + candidateCipherSuites = intersectCipherSuites(candidateCipherSuites, sig.PreferredCipherSuites) + candidateCompression = intersectPreferences(candidateCompression, sig.PreferredCompression) } - if len(candidateCiphers) == 0 || len(candidateHashes) == 0 { - return nil, errors.InvalidArgumentError("cannot encrypt because recipient set shares no common algorithms") + // In the event that the intersection of supported algorithms is empty we use the ones + // labelled as MUST that every implementation supports. + if len(candidateCiphers) == 0 { + // https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-9.3 + candidateCiphers = []uint8{uint8(packet.CipherAES128)} + } + if len(candidateHashes) == 0 { + // https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#hash-algos + candidateHashes = []uint8{hashToHashId(crypto.SHA256)} + } + if len(candidateCipherSuites) == 0 { + // https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-9.6 + candidateCipherSuites = [][2]uint8{{uint8(packet.CipherAES128), uint8(packet.AEADModeOCB)}} } cipher := packet.CipherFunction(candidateCiphers[0]) + aeadCipherSuite := packet.CipherSuite{ + Cipher: packet.CipherFunction(candidateCipherSuites[0][0]), + Mode: packet.AEADMode(candidateCipherSuites[0][1]), + } + // If the cipher specified by config is a candidate, we'll use that. configuredCipher := config.Cipher() for _, c := range candidateCiphers { @@ -325,17 +428,23 @@ func Encrypt(ciphertext io.Writer, to []*Entity, signed *Entity, hints *FileHint } for _, key := range encryptKeys { - if err := packet.SerializeEncryptedKey(ciphertext, key.PublicKey, cipher, symKey, config); err != nil { + if err := packet.SerializeEncryptedKey(keyWriter, key.PublicKey, cipher, symKey, config); err != nil { return nil, err } } - payload, err := packet.SerializeSymmetricallyEncrypted(ciphertext, cipher, symKey, config) + var payload io.WriteCloser + payload, err = packet.SerializeSymmetricallyEncrypted(dataWriter, cipher, aeadSupported, aeadCipherSuite, symKey, config) if err != nil { return } - return writeAndSign(payload, candidateHashes, signed, hints, config) + payload, err = handleCompression(payload, candidateCompression, config) + if err != nil { + return nil, err + } + + return writeAndSign(payload, candidateHashes, signed, hints, sigType, config) } // Sign signs a message. The resulting WriteCloser must be closed after the @@ -352,16 +461,20 @@ func Sign(output io.Writer, signed *Entity, hints *FileHints, config *packet.Con hashToHashId(crypto.SHA256), hashToHashId(crypto.SHA384), hashToHashId(crypto.SHA512), - hashToHashId(crypto.SHA1), - hashToHashId(crypto.RIPEMD160), + hashToHashId(crypto.SHA3_256), + hashToHashId(crypto.SHA3_512), } - defaultHashes := candidateHashes[len(candidateHashes)-1:] - preferredHashes := signed.primaryIdentity().SelfSignature.PreferredHash + defaultHashes := candidateHashes[0:1] + preferredHashes := signed.PrimaryIdentity().SelfSignature.PreferredHash if len(preferredHashes) == 0 { preferredHashes = defaultHashes } candidateHashes = intersectPreferences(candidateHashes, preferredHashes) - return writeAndSign(noOpCloser{output}, candidateHashes, signed, hints, config) + if len(candidateHashes) == 0 { + return nil, errors.InvalidArgumentError("cannot sign because signing key shares no common algorithms with candidate hashes") + } + + return writeAndSign(noOpCloser{output}, candidateHashes, signed, hints, packet.SigTypeBinary, config) } // signatureWriter hashes the contents of a message while passing it along to @@ -371,24 +484,30 @@ type signatureWriter struct { encryptedData io.WriteCloser literalData io.WriteCloser hashType crypto.Hash + wrappedHash hash.Hash h hash.Hash signer *packet.PrivateKey + sigType packet.SignatureType config *packet.Config + metadata *packet.LiteralData // V5 signatures protect document metadata } func (s signatureWriter) Write(data []byte) (int, error) { - s.h.Write(data) - return s.literalData.Write(data) + s.wrappedHash.Write(data) + switch s.sigType { + case packet.SigTypeBinary: + return s.literalData.Write(data) + case packet.SigTypeText: + flag := 0 + return writeCanonical(s.literalData, data, &flag) + } + return 0, errors.UnsupportedError("unsupported signature type: " + strconv.Itoa(int(s.sigType))) } func (s signatureWriter) Close() error { - sig := &packet.Signature{ - SigType: packet.SigTypeBinary, - PubKeyAlgo: s.signer.PubKeyAlgo, - Hash: s.hashType, - CreationTime: s.config.Now(), - IssuerKeyId: &s.signer.KeyId, - } + sig := createSignaturePacket(&s.signer.PublicKey, s.sigType, s.config) + sig.Hash = s.hashType + sig.Metadata = s.metadata if err := sig.Sign(s.h, s.signer, s.config); err != nil { return err @@ -402,7 +521,22 @@ func (s signatureWriter) Close() error { return s.encryptedData.Close() } -// noOpCloser is like an io.NopCloser, but for an io.Writer. +func createSignaturePacket(signer *packet.PublicKey, sigType packet.SignatureType, config *packet.Config) *packet.Signature { + sigLifetimeSecs := config.SigLifetime() + return &packet.Signature{ + Version: signer.Version, + SigType: sigType, + PubKeyAlgo: signer.PubKeyAlgo, + Hash: config.Hash(), + CreationTime: config.Now(), + IssuerKeyId: &signer.KeyId, + IssuerFingerprint: signer.Fingerprint, + Notations: config.Notations(), + SigLifetimeSecs: &sigLifetimeSecs, + } +} + +// noOpCloser is like an ioutil.NopCloser, but for an io.Writer. // TODO: we have two of these in OpenPGP packages alone. This probably needs // to be promoted somewhere more common. type noOpCloser struct { @@ -416,3 +550,34 @@ func (c noOpCloser) Write(data []byte) (n int, err error) { func (c noOpCloser) Close() error { return nil } + +func handleCompression(compressed io.WriteCloser, candidateCompression []uint8, config *packet.Config) (data io.WriteCloser, err error) { + data = compressed + confAlgo := config.Compression() + if confAlgo == packet.CompressionNone { + return + } + + // Set algorithm labelled as MUST as fallback + // https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-9.4 + finalAlgo := packet.CompressionNone + // if compression specified by config available we will use it + for _, c := range candidateCompression { + if uint8(confAlgo) == c { + finalAlgo = confAlgo + break + } + } + + if finalAlgo != packet.CompressionNone { + var compConfig *packet.CompressionConfig + if config != nil { + compConfig = config.CompressionConfig + } + data, err = packet.SerializeCompressed(compressed, finalAlgo, compConfig) + if err != nil { + return + } + } + return data, nil +} diff --git a/vendor/github.com/apparentlymart/go-textseg/v13/textseg/grapheme_clusters.go b/vendor/github.com/apparentlymart/go-textseg/v13/textseg/grapheme_clusters.go deleted file mode 100644 index 7ad1c799f3f3..000000000000 --- a/vendor/github.com/apparentlymart/go-textseg/v13/textseg/grapheme_clusters.go +++ /dev/null @@ -1,4138 +0,0 @@ -//line grapheme_clusters.rl:1 -package textseg - -import ( - "errors" - "unicode/utf8" -) - -// Generated from grapheme_clusters.rl. DO NOT EDIT - -//line grapheme_clusters.go:13 -var _graphclust_actions []byte = []byte{ - 0, 1, 0, 1, 4, 1, 10, 1, 11, - 1, 12, 1, 13, 1, 14, 1, 15, - 1, 16, 1, 17, 1, 18, 1, 19, - 1, 20, 1, 21, 1, 22, 2, 1, - 8, 2, 1, 9, 2, 2, 3, 2, - 5, 1, 3, 0, 1, 9, 3, 5, - 0, 1, 3, 5, 1, 6, 3, 5, - 1, 7, -} - -var _graphclust_key_offsets []int16 = []int16{ - 0, 0, 1, 3, 5, 7, 10, 15, - 17, 20, 28, 31, 33, 35, 38, 68, - 76, 78, 82, 85, 90, 95, 107, 119, - 127, 132, 142, 145, 152, 156, 164, 174, - 180, 188, 190, 198, 201, 203, 206, 208, - 215, 217, 225, 226, 248, 252, 258, 263, - 265, 269, 273, 275, 279, 281, 284, 288, - 290, 297, 299, 301, 305, 309, 313, 315, - 317, 325, 329, 334, 336, 338, 340, 341, - 343, 345, 347, 349, 364, 368, 370, 372, - 378, 382, 388, 390, 392, 396, 400, 402, - 406, 413, 418, 422, 425, 426, 430, 437, - 445, 446, 447, 449, 458, 460, 462, 464, - 466, 500, 504, 506, 510, 514, 517, 521, - 526, 529, 531, 537, 550, 552, 555, 557, - 561, 565, 567, 569, 571, 577, 580, 585, - 591, 594, 596, 600, 604, 611, 614, 620, - 622, 627, 629, 631, 634, 638, 641, 642, - 644, 650, 656, 662, 664, 668, 672, 677, - 682, 692, 694, 696, 698, 699, 701, 702, - 708, 710, 712, 712, 714, 721, 723, 725, - 727, 730, 735, 737, 740, 748, 751, 753, - 755, 758, 788, 796, 798, 802, 805, 810, - 815, 827, 839, 847, 852, 862, 865, 872, - 876, 884, 894, 900, 908, 910, 918, 921, - 923, 926, 928, 935, 937, 945, 946, 968, - 972, 978, 983, 985, 989, 993, 995, 999, - 1001, 1004, 1008, 1010, 1017, 1019, 1021, 1025, - 1029, 1033, 1035, 1037, 1045, 1049, 1054, 1056, - 1058, 1082, 1085, 1086, 1088, 1090, 1094, 1097, - 1098, 1103, 1104, 1107, 1110, 1116, 1118, 1122, - 1122, 1136, 1145, 1150, 1152, 1156, 1158, 1160, - 1161, 1163, 1166, 1169, 1171, 1173, 1188, 1192, - 1194, 1196, 1202, 1206, 1212, 1214, 1216, 1220, - 1224, 1226, 1230, 1237, 1242, 1246, 1249, 1250, - 1254, 1261, 1269, 1270, 1271, 1273, 1282, 1284, - 1286, 1288, 1290, 1324, 1328, 1330, 1334, 1338, - 1341, 1345, 1350, 1353, 1355, 1361, 1374, 1376, - 1379, 1381, 1385, 1389, 1391, 1393, 1395, 1401, - 1404, 1409, 1415, 1418, 1420, 1424, 1428, 1435, - 1438, 1444, 1446, 1451, 1453, 1455, 1458, 1462, - 1465, 1466, 1468, 1474, 1480, 1486, 1488, 1492, - 1496, 1501, 1506, 1516, 1518, 1520, 1522, 1562, - 1564, 1567, 1571, 1576, 1578, 1586, 1588, 1590, - 1592, 1594, 1596, 1598, 1600, 1604, 1608, 1612, - 1616, 1617, 1623, 1625, 1627, 1629, 1636, 1637, - 1639, 1644, 1646, 1648, 1650, 1653, 1658, 1660, - 1663, 1671, 1674, 1676, 1678, 1681, 1711, 1719, - 1721, 1725, 1728, 1733, 1738, 1750, 1762, 1770, - 1775, 1785, 1788, 1795, 1799, 1807, 1817, 1823, - 1831, 1833, 1841, 1844, 1846, 1849, 1851, 1858, - 1860, 1868, 1869, 1891, 1895, 1901, 1906, 1908, - 1912, 1916, 1918, 1922, 1924, 1927, 1931, 1933, - 1940, 1942, 1944, 1948, 1952, 1956, 1958, 1960, - 1968, 1972, 1977, 1979, 1981, 1983, 1984, 1986, - 1988, 1990, 1992, 2007, 2011, 2013, 2015, 2021, - 2025, 2031, 2033, 2035, 2039, 2043, 2045, 2049, - 2056, 2061, 2065, 2068, 2069, 2073, 2080, 2088, - 2089, 2090, 2092, 2101, 2103, 2105, 2107, 2109, - 2143, 2147, 2149, 2153, 2157, 2160, 2164, 2169, - 2172, 2174, 2180, 2193, 2195, 2198, 2200, 2204, - 2208, 2210, 2212, 2214, 2220, 2223, 2228, 2234, - 2237, 2239, 2243, 2247, 2254, 2257, 2263, 2265, - 2270, 2272, 2274, 2277, 2281, 2284, 2285, 2287, - 2293, 2299, 2305, 2307, 2311, 2315, 2320, 2325, - 2335, 2337, 2339, 2341, 2342, 2344, 2345, 2351, - 2353, 2355, 2355, 2357, 2363, 2365, 2367, 2369, - 2372, 2377, 2379, 2382, 2390, 2393, 2395, 2397, - 2400, 2430, 2438, 2440, 2444, 2447, 2452, 2457, - 2469, 2481, 2489, 2494, 2504, 2507, 2514, 2518, - 2526, 2536, 2542, 2550, 2552, 2560, 2563, 2565, - 2568, 2570, 2577, 2579, 2587, 2588, 2610, 2614, - 2620, 2625, 2627, 2631, 2635, 2637, 2641, 2643, - 2646, 2650, 2652, 2659, 2661, 2663, 2667, 2671, - 2675, 2677, 2679, 2687, 2691, 2696, 2698, 2700, - 2724, 2727, 2728, 2730, 2732, 2736, 2739, 2740, - 2745, 2746, 2749, 2752, 2758, 2760, 2764, 2764, - 2778, 2787, 2792, 2794, 2798, 2800, 2802, 2803, - 2805, 2808, 2811, 2813, 2815, 2830, 2834, 2836, - 2838, 2844, 2848, 2854, 2856, 2858, 2862, 2866, - 2868, 2872, 2879, 2884, 2888, 2891, 2892, 2896, - 2903, 2911, 2912, 2913, 2915, 2924, 2926, 2928, - 2930, 2932, 2966, 2970, 2972, 2976, 2980, 2983, - 2987, 2992, 2995, 2997, 3003, 3016, 3018, 3021, - 3023, 3027, 3031, 3033, 3035, 3037, 3043, 3046, - 3051, 3057, 3060, 3062, 3066, 3070, 3077, 3080, - 3086, 3088, 3093, 3095, 3097, 3100, 3104, 3107, - 3108, 3110, 3116, 3122, 3128, 3130, 3134, 3138, - 3143, 3148, 3158, 3160, 3162, 3164, 3204, 3206, - 3209, 3213, 3218, 3220, 3228, 3230, 3232, 3234, - 3236, 3238, 3240, 3242, 3246, 3250, 3254, 3258, - 3259, 3265, 3267, 3269, 3271, 3278, 3279, 3281, - 3287, 3290, 3293, 3297, 3300, 3303, 3310, 3312, - 3337, 3339, 3364, 3366, 3368, 3392, 3394, 3396, - 3397, 3399, 3401, 3403, 3409, 3411, 3443, 3447, - 3452, 3476, 3478, 3480, 3482, 3484, 3487, 3489, - 3491, 3495, 3495, 3551, 3607, 3638, 3643, 3647, - 3669, 3678, 3683, 3687, 3697, 3704, 3707, 3718, - 3721, 3728, 3734, 3738, 3744, 3760, 3775, 3784, - 3790, 3800, 3804, 3808, 3812, 3816, 3818, 3838, - 3844, 3849, 3851, 3853, 3856, 3858, 3860, 3864, - 3920, 3976, 4009, 4014, 4022, 4026, 4028, 4033, - 4040, 4050, 4053, 4056, 4062, 4065, 4068, 4071, - 4077, 4080, 4083, 4087, 4090, 4094, 4097, 4101, - 4143, 4150, 4158, 4167, 4171, 4178, 4180, 4182, - 4192, 4196, 4200, 4204, 4208, 4212, 4216, 4220, - 4226, 4236, 4244, 4249, 4252, 4254, 4257, 4262, - 4264, 4267, 4270, 4274, 4277, 4280, 4287, 4289, - 4291, 4293, 4295, 4298, 4303, 4305, 4308, 4316, - 4319, 4321, 4323, 4326, 4356, 4364, 4366, 4370, - 4373, 4378, 4383, 4395, 4407, 4415, 4420, 4430, - 4433, 4440, 4444, 4452, 4462, 4468, 4476, 4478, - 4486, 4489, 4491, 4494, 4496, 4503, 4505, 4513, - 4514, 4536, 4540, 4546, 4551, 4553, 4557, 4561, - 4563, 4567, 4569, 4572, 4576, 4578, 4585, 4587, - 4589, 4593, 4597, 4601, 4603, 4605, 4613, 4617, - 4622, 4624, 4626, 4650, 4653, 4654, 4656, 4658, - 4662, 4665, 4666, 4671, 4672, 4675, 4678, 4684, - 4686, 4690, 4690, 4704, 4713, 4718, 4720, 4724, - 4726, 4728, 4729, 4731, 4734, 4737, 4739, 4741, - 4756, 4760, 4762, 4764, 4770, 4774, 4780, 4782, - 4784, 4788, 4792, 4794, 4798, 4805, 4810, 4814, - 4817, 4818, 4822, 4829, 4837, 4838, 4839, 4841, - 4850, 4852, 4854, 4856, 4858, 4892, 4896, 4898, - 4902, 4906, 4909, 4913, 4918, 4921, 4923, 4929, - 4942, 4944, 4947, 4949, 4953, 4957, 4959, 4961, - 4963, 4969, 4972, 4977, 4983, 4986, 4988, 4992, - 4996, 5003, 5006, 5012, 5014, 5019, 5021, 5023, - 5026, 5030, 5033, 5034, 5036, 5042, 5048, 5054, - 5056, 5060, 5064, 5069, 5074, 5084, 5086, 5088, - 5090, 5130, 5132, 5135, 5139, 5144, 5146, 5154, - 5156, 5158, 5160, 5162, 5164, 5166, 5168, 5172, - 5176, 5180, 5184, 5185, 5191, 5193, 5195, 5197, - 5204, 5205, 5207, 5232, 5234, 5259, 5261, 5263, - 5287, 5289, 5291, 5292, 5294, 5296, 5298, 5304, - 5306, 5338, 5342, 5347, 5371, 5373, 5375, 5377, - 5379, 5382, 5384, 5386, 5390, 5390, 5446, 5502, - 5533, 5538, 5541, 5563, 5576, 5578, 5580, 5582, - 5585, 5590, 5592, 5595, 5603, 5606, 5608, 5610, - 5613, 5643, 5651, 5653, 5657, 5660, 5665, 5670, - 5682, 5694, 5702, 5707, 5717, 5720, 5727, 5731, - 5739, 5749, 5755, 5763, 5765, 5773, 5776, 5778, - 5781, 5783, 5790, 5792, 5800, 5801, 5823, 5827, - 5833, 5838, 5840, 5844, 5848, 5850, 5854, 5856, - 5859, 5863, 5865, 5872, 5874, 5876, 5880, 5884, - 5888, 5890, 5892, 5900, 5904, 5909, 5911, 5913, - 5915, 5916, 5918, 5920, 5922, 5924, 5939, 5943, - 5945, 5947, 5953, 5957, 5963, 5965, 5967, 5971, - 5975, 5977, 5981, 5988, 5993, 5997, 6000, 6001, - 6005, 6012, 6020, 6021, 6022, 6024, 6033, 6035, - 6037, 6039, 6041, 6075, 6079, 6081, 6085, 6089, - 6092, 6096, 6101, 6104, 6106, 6112, 6125, 6127, - 6130, 6132, 6136, 6140, 6142, 6144, 6146, 6152, - 6155, 6160, 6166, 6169, 6171, 6175, 6179, 6186, - 6189, 6195, 6197, 6202, 6204, 6206, 6209, 6213, - 6216, 6217, 6219, 6225, 6231, 6237, 6239, 6243, - 6247, 6252, 6257, 6267, 6269, 6271, 6273, 6274, - 6276, 6277, 6283, 6285, 6287, 6287, 6294, 6298, - 6308, 6315, 6318, 6329, 6332, 6339, 6345, 6349, - 6355, 6371, 6386, 6395, 6401, 6411, 6415, 6419, - 6423, 6427, 6429, 6449, 6455, 6460, 6462, 6464, - 6467, 6469, 6471, 6475, 6531, 6587, 6620, 6625, - 6633, 6637, 6640, 6647, 6654, 6664, 6667, 6670, - 6676, 6679, 6682, 6685, 6691, 6694, 6697, 6703, - 6706, 6712, 6715, 6721, 6763, 6770, 6778, 6787, - 6791, 6793, 6795, 6797, 6800, 6805, 6807, 6810, - 6818, 6821, 6823, 6825, 6828, 6858, 6866, 6868, - 6872, 6875, 6880, 6885, 6897, 6909, 6917, 6922, - 6932, 6935, 6942, 6946, 6954, 6964, 6970, 6978, - 6980, 6988, 6991, 6993, 6996, 6998, 7005, 7007, - 7015, 7016, 7038, 7042, 7048, 7053, 7055, 7059, - 7063, 7065, 7069, 7071, 7074, 7078, 7080, 7087, - 7089, 7091, 7095, 7099, 7103, 7105, 7107, 7115, - 7119, 7124, 7126, 7128, 7152, 7155, 7156, 7158, - 7160, 7164, 7167, 7168, 7173, 7174, 7177, 7180, - 7186, 7188, 7192, 7192, 7206, 7215, 7220, 7222, - 7226, 7228, 7230, 7231, 7233, 7236, 7239, 7241, - 7243, 7258, 7262, 7264, 7266, 7272, 7276, 7282, - 7284, 7286, 7290, 7294, 7296, 7300, 7307, 7312, - 7316, 7319, 7320, 7324, 7331, 7339, 7340, 7341, - 7343, 7352, 7354, 7356, 7358, 7360, 7394, 7398, - 7400, 7404, 7408, 7411, 7415, 7420, 7423, 7425, - 7431, 7444, 7446, 7449, 7451, 7455, 7459, 7461, - 7463, 7465, 7471, 7474, 7479, 7485, 7488, 7490, - 7494, 7498, 7505, 7508, 7514, 7516, 7521, 7523, - 7525, 7528, 7532, 7535, 7536, 7538, 7544, 7550, - 7556, 7558, 7562, 7566, 7571, 7576, 7586, 7588, - 7590, 7592, 7632, 7634, 7637, 7641, 7646, 7648, - 7656, 7658, 7660, 7662, 7664, 7666, 7668, 7670, - 7674, 7678, 7682, 7686, 7687, 7693, 7695, 7697, - 7699, 7706, 7707, 7709, 7716, 7718, 7720, 7730, - 7734, 7738, 7742, 7746, 7750, 7754, 7758, 7764, - 7774, 7782, 7787, 7790, 7792, 7795, 7804, 7808, - 7810, 7812, 7816, 7816, 7846, 7866, 7886, 7907, - 7930, 7950, 7970, 7991, 8014, 8035, 8056, 8077, - 8097, 8120, 8140, 8161, 8182, 8203, 8224, 8244, - 8264, 8284, -} - -var _graphclust_trans_keys []byte = []byte{ - 10, 128, 255, 176, 255, 131, 137, 191, - 145, 189, 135, 129, 130, 132, 133, 144, - 154, 176, 139, 159, 150, 156, 159, 164, - 167, 168, 170, 173, 145, 176, 255, 139, - 255, 166, 176, 189, 171, 179, 160, 161, - 163, 164, 165, 167, 169, 171, 173, 174, - 175, 176, 177, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, - 166, 170, 172, 178, 150, 153, 155, 163, - 165, 167, 169, 173, 153, 155, 147, 161, - 163, 255, 189, 132, 185, 144, 152, 161, - 164, 255, 188, 129, 131, 190, 255, 133, - 134, 137, 138, 142, 150, 152, 161, 164, - 189, 191, 255, 131, 134, 137, 138, 142, - 144, 146, 175, 178, 180, 182, 255, 134, - 138, 142, 161, 164, 185, 192, 255, 188, - 129, 131, 190, 191, 128, 132, 135, 136, - 139, 141, 149, 151, 162, 163, 130, 190, - 191, 151, 128, 130, 134, 136, 138, 141, - 128, 132, 190, 255, 133, 137, 142, 148, - 151, 161, 164, 255, 128, 132, 134, 136, - 138, 141, 149, 150, 162, 163, 128, 131, - 187, 188, 190, 255, 133, 137, 142, 150, - 152, 161, 164, 255, 129, 131, 138, 150, - 143, 148, 152, 159, 178, 179, 177, 179, - 186, 135, 142, 177, 179, 188, 136, 141, - 181, 183, 185, 152, 153, 190, 191, 177, - 191, 128, 132, 134, 135, 141, 151, 153, - 188, 134, 128, 129, 130, 141, 156, 157, - 158, 159, 160, 162, 164, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 179, 183, - 173, 183, 185, 190, 150, 153, 158, 160, - 177, 180, 130, 141, 157, 132, 134, 157, - 159, 146, 148, 178, 180, 146, 147, 178, - 179, 180, 255, 148, 156, 158, 255, 139, - 141, 169, 133, 134, 160, 171, 176, 187, - 151, 155, 160, 162, 191, 149, 158, 165, - 188, 176, 255, 129, 255, 128, 132, 180, - 255, 133, 170, 180, 255, 128, 130, 161, - 173, 166, 179, 164, 183, 173, 180, 144, - 146, 148, 168, 183, 185, 128, 185, 187, - 191, 128, 131, 179, 181, 183, 140, 141, - 144, 176, 175, 177, 191, 160, 191, 128, - 130, 170, 175, 153, 154, 153, 154, 155, - 160, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 175, 175, 178, 180, 189, - 158, 159, 176, 177, 130, 134, 139, 172, - 163, 167, 128, 129, 180, 255, 134, 159, - 178, 190, 192, 255, 166, 173, 135, 147, - 128, 131, 179, 255, 129, 164, 166, 255, - 169, 182, 131, 188, 140, 141, 176, 178, - 180, 183, 184, 190, 191, 129, 171, 175, - 181, 182, 163, 170, 172, 173, 172, 184, - 190, 158, 128, 143, 160, 175, 144, 145, - 150, 155, 157, 158, 159, 135, 139, 141, - 168, 171, 180, 186, 189, 189, 160, 182, - 186, 191, 129, 131, 133, 134, 140, 143, - 184, 186, 165, 166, 164, 167, 171, 172, - 134, 144, 128, 129, 130, 132, 133, 134, - 135, 136, 139, 140, 141, 144, 145, 146, - 147, 150, 151, 152, 153, 154, 156, 160, - 164, 165, 167, 168, 169, 170, 176, 178, - 180, 181, 182, 187, 128, 130, 184, 255, - 135, 190, 131, 175, 187, 255, 128, 130, - 167, 180, 179, 133, 134, 128, 130, 179, - 255, 141, 129, 136, 144, 255, 190, 172, - 183, 159, 170, 128, 131, 187, 188, 190, - 191, 151, 128, 132, 135, 136, 139, 141, - 162, 163, 166, 172, 176, 180, 181, 191, - 158, 128, 134, 132, 255, 175, 181, 184, - 255, 129, 155, 158, 255, 171, 183, 157, - 171, 172, 186, 176, 181, 183, 184, 187, - 190, 128, 130, 131, 164, 145, 151, 154, - 160, 129, 138, 179, 185, 187, 190, 135, - 145, 155, 138, 153, 175, 182, 184, 191, - 146, 167, 169, 182, 186, 177, 182, 188, - 189, 191, 255, 134, 136, 255, 138, 142, - 144, 145, 147, 151, 179, 182, 171, 172, - 189, 190, 191, 176, 180, 176, 182, 143, - 145, 255, 136, 142, 147, 255, 164, 176, - 177, 178, 157, 158, 133, 134, 137, 168, - 169, 170, 165, 169, 173, 178, 187, 255, - 131, 132, 140, 169, 174, 255, 130, 132, - 128, 182, 187, 255, 173, 180, 182, 255, - 132, 155, 159, 161, 175, 128, 132, 139, - 163, 165, 128, 134, 136, 152, 155, 161, - 163, 164, 166, 170, 172, 175, 144, 150, - 132, 138, 143, 187, 191, 160, 128, 129, - 132, 135, 133, 134, 160, 255, 192, 255, - 128, 191, 169, 173, 174, 128, 159, 160, - 191, 0, 127, 176, 255, 131, 137, 191, - 145, 189, 135, 129, 130, 132, 133, 144, - 154, 176, 139, 159, 150, 156, 159, 164, - 167, 168, 170, 173, 145, 176, 255, 139, - 255, 166, 176, 189, 171, 179, 160, 161, - 163, 164, 165, 167, 169, 171, 173, 174, - 175, 176, 177, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, - 166, 170, 172, 178, 150, 153, 155, 163, - 165, 167, 169, 173, 153, 155, 147, 161, - 163, 255, 189, 132, 185, 144, 152, 161, - 164, 255, 188, 129, 131, 190, 255, 133, - 134, 137, 138, 142, 150, 152, 161, 164, - 189, 191, 255, 131, 134, 137, 138, 142, - 144, 146, 175, 178, 180, 182, 255, 134, - 138, 142, 161, 164, 185, 192, 255, 188, - 129, 131, 190, 191, 128, 132, 135, 136, - 139, 141, 149, 151, 162, 163, 130, 190, - 191, 151, 128, 130, 134, 136, 138, 141, - 128, 132, 190, 255, 133, 137, 142, 148, - 151, 161, 164, 255, 128, 132, 134, 136, - 138, 141, 149, 150, 162, 163, 128, 131, - 187, 188, 190, 255, 133, 137, 142, 150, - 152, 161, 164, 255, 129, 131, 138, 150, - 143, 148, 152, 159, 178, 179, 177, 179, - 186, 135, 142, 177, 179, 188, 136, 141, - 181, 183, 185, 152, 153, 190, 191, 177, - 191, 128, 132, 134, 135, 141, 151, 153, - 188, 134, 128, 129, 130, 141, 156, 157, - 158, 159, 160, 162, 164, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 179, 183, - 173, 183, 185, 190, 150, 153, 158, 160, - 177, 180, 130, 141, 157, 132, 134, 157, - 159, 146, 148, 178, 180, 146, 147, 178, - 179, 180, 255, 148, 156, 158, 255, 139, - 141, 169, 133, 134, 160, 171, 176, 187, - 151, 155, 160, 162, 191, 149, 158, 165, - 188, 176, 255, 129, 255, 128, 132, 180, - 255, 133, 170, 180, 255, 128, 130, 161, - 173, 166, 179, 164, 183, 173, 180, 144, - 146, 148, 168, 183, 185, 128, 185, 187, - 191, 128, 131, 179, 181, 183, 140, 141, - 169, 174, 128, 129, 131, 132, 134, 140, - 142, 143, 147, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 164, 172, 173, 179, - 181, 183, 140, 141, 188, 137, 144, 176, - 162, 185, 148, 153, 169, 170, 168, 154, - 155, 136, 143, 169, 179, 184, 186, 130, - 182, 170, 171, 128, 187, 190, 128, 133, - 135, 146, 148, 191, 128, 191, 128, 133, - 144, 255, 147, 149, 134, 135, 151, 156, - 158, 160, 162, 167, 169, 178, 181, 255, - 132, 135, 140, 142, 151, 147, 149, 163, - 167, 161, 176, 191, 149, 151, 180, 181, - 133, 135, 155, 156, 144, 149, 175, 177, - 191, 160, 191, 128, 130, 138, 189, 170, - 176, 153, 154, 151, 153, 153, 154, 155, - 160, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 175, 175, 178, 180, 189, - 158, 159, 176, 177, 130, 134, 139, 172, - 163, 167, 128, 129, 180, 255, 134, 159, - 178, 190, 192, 255, 166, 173, 135, 147, - 128, 131, 179, 255, 129, 164, 166, 255, - 169, 182, 131, 188, 140, 141, 176, 178, - 180, 183, 184, 190, 191, 129, 171, 175, - 181, 182, 163, 170, 172, 173, 172, 184, - 190, 158, 128, 143, 160, 175, 144, 145, - 150, 155, 157, 158, 159, 135, 139, 141, - 168, 171, 180, 186, 189, 189, 160, 182, - 186, 191, 129, 131, 133, 134, 140, 143, - 184, 186, 165, 166, 164, 167, 171, 172, - 134, 144, 128, 129, 130, 132, 133, 134, - 135, 136, 139, 140, 141, 144, 145, 146, - 147, 150, 151, 152, 153, 154, 156, 160, - 164, 165, 167, 168, 169, 170, 176, 178, - 180, 181, 182, 187, 128, 130, 184, 255, - 135, 190, 131, 175, 187, 255, 128, 130, - 167, 180, 179, 133, 134, 128, 130, 179, - 255, 141, 129, 136, 144, 255, 190, 172, - 183, 159, 170, 128, 131, 187, 188, 190, - 191, 151, 128, 132, 135, 136, 139, 141, - 162, 163, 166, 172, 176, 180, 181, 191, - 158, 128, 134, 132, 255, 175, 181, 184, - 255, 129, 155, 158, 255, 171, 183, 157, - 171, 172, 186, 176, 181, 183, 184, 187, - 190, 128, 130, 131, 164, 145, 151, 154, - 160, 129, 138, 179, 185, 187, 190, 135, - 145, 155, 138, 153, 175, 182, 184, 191, - 146, 167, 169, 182, 186, 177, 182, 188, - 189, 191, 255, 134, 136, 255, 138, 142, - 144, 145, 147, 151, 179, 182, 171, 172, - 189, 190, 191, 176, 180, 176, 182, 143, - 145, 255, 136, 142, 147, 255, 164, 176, - 177, 178, 157, 158, 133, 134, 137, 168, - 169, 170, 165, 169, 173, 178, 187, 255, - 131, 132, 140, 169, 174, 255, 130, 132, - 128, 182, 187, 255, 173, 180, 182, 255, - 132, 155, 159, 161, 175, 128, 132, 139, - 163, 165, 128, 134, 136, 152, 155, 161, - 163, 164, 166, 170, 172, 175, 144, 150, - 132, 138, 128, 131, 132, 133, 134, 135, - 136, 137, 139, 140, 141, 142, 143, 144, - 145, 148, 149, 151, 152, 153, 157, 159, - 160, 161, 162, 163, 164, 165, 168, 169, - 176, 191, 129, 150, 154, 155, 166, 171, - 177, 190, 192, 255, 175, 141, 143, 172, - 177, 190, 191, 142, 145, 154, 173, 255, - 166, 255, 154, 175, 129, 143, 178, 186, - 188, 191, 137, 255, 190, 255, 134, 255, - 144, 255, 180, 191, 149, 191, 140, 143, - 136, 143, 154, 159, 136, 143, 174, 255, - 140, 186, 188, 191, 128, 133, 135, 191, - 160, 128, 129, 132, 135, 133, 134, 160, - 255, 128, 130, 170, 175, 144, 145, 150, - 155, 157, 158, 159, 143, 187, 191, 156, - 128, 133, 134, 191, 128, 255, 176, 255, - 131, 137, 191, 145, 189, 135, 129, 130, - 132, 133, 144, 154, 176, 139, 159, 150, - 156, 159, 164, 167, 168, 170, 173, 145, - 176, 255, 139, 255, 166, 176, 189, 171, - 179, 160, 161, 163, 164, 165, 167, 169, - 171, 173, 174, 175, 176, 177, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 166, 170, 172, 178, 150, - 153, 155, 163, 165, 167, 169, 173, 153, - 155, 147, 161, 163, 255, 189, 132, 185, - 144, 152, 161, 164, 255, 188, 129, 131, - 190, 255, 133, 134, 137, 138, 142, 150, - 152, 161, 164, 189, 191, 255, 131, 134, - 137, 138, 142, 144, 146, 175, 178, 180, - 182, 255, 134, 138, 142, 161, 164, 185, - 192, 255, 188, 129, 131, 190, 191, 128, - 132, 135, 136, 139, 141, 149, 151, 162, - 163, 130, 190, 191, 151, 128, 130, 134, - 136, 138, 141, 128, 132, 190, 255, 133, - 137, 142, 148, 151, 161, 164, 255, 128, - 132, 134, 136, 138, 141, 149, 150, 162, - 163, 128, 131, 187, 188, 190, 255, 133, - 137, 142, 150, 152, 161, 164, 255, 129, - 131, 138, 150, 143, 148, 152, 159, 178, - 179, 177, 179, 186, 135, 142, 177, 179, - 188, 136, 141, 181, 183, 185, 152, 153, - 190, 191, 177, 191, 128, 132, 134, 135, - 141, 151, 153, 188, 134, 128, 129, 130, - 141, 156, 157, 158, 159, 160, 162, 164, - 168, 169, 170, 171, 172, 173, 174, 175, - 176, 179, 183, 173, 183, 185, 190, 150, - 153, 158, 160, 177, 180, 130, 141, 157, - 132, 134, 157, 159, 146, 148, 178, 180, - 146, 147, 178, 179, 180, 255, 148, 156, - 158, 255, 139, 141, 169, 133, 134, 160, - 171, 176, 187, 151, 155, 160, 162, 191, - 149, 158, 165, 188, 176, 255, 129, 255, - 128, 132, 180, 255, 133, 170, 180, 255, - 128, 130, 161, 173, 166, 179, 164, 183, - 173, 180, 144, 146, 148, 168, 183, 185, - 128, 185, 187, 191, 128, 131, 179, 181, - 183, 140, 141, 144, 176, 175, 177, 191, - 160, 191, 128, 130, 170, 175, 153, 154, - 153, 154, 155, 160, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 175, 175, - 178, 180, 189, 158, 159, 176, 177, 130, - 134, 139, 172, 163, 167, 128, 129, 180, - 255, 134, 159, 178, 190, 192, 255, 166, - 173, 135, 147, 128, 131, 179, 255, 129, - 164, 166, 255, 169, 182, 131, 188, 140, - 141, 176, 178, 180, 183, 184, 190, 191, - 129, 171, 175, 181, 182, 163, 170, 172, - 173, 172, 184, 190, 158, 128, 143, 160, - 175, 144, 145, 150, 155, 157, 158, 159, - 135, 139, 141, 168, 171, 180, 186, 189, - 189, 160, 182, 186, 191, 129, 131, 133, - 134, 140, 143, 184, 186, 165, 166, 164, - 167, 171, 172, 134, 144, 128, 129, 130, - 132, 133, 134, 135, 136, 139, 140, 141, - 144, 145, 146, 147, 150, 151, 152, 153, - 154, 156, 160, 164, 165, 167, 168, 169, - 170, 176, 178, 180, 181, 182, 187, 128, - 130, 184, 255, 135, 190, 131, 175, 187, - 255, 128, 130, 167, 180, 179, 133, 134, - 128, 130, 179, 255, 141, 129, 136, 144, - 255, 190, 172, 183, 159, 170, 128, 131, - 187, 188, 190, 191, 151, 128, 132, 135, - 136, 139, 141, 162, 163, 166, 172, 176, - 180, 181, 191, 158, 128, 134, 132, 255, - 175, 181, 184, 255, 129, 155, 158, 255, - 171, 183, 157, 171, 172, 186, 176, 181, - 183, 184, 187, 190, 128, 130, 131, 164, - 145, 151, 154, 160, 129, 138, 179, 185, - 187, 190, 135, 145, 155, 138, 153, 175, - 182, 184, 191, 146, 167, 169, 182, 186, - 177, 182, 188, 189, 191, 255, 134, 136, - 255, 138, 142, 144, 145, 147, 151, 179, - 182, 171, 172, 189, 190, 191, 176, 180, - 176, 182, 143, 145, 255, 136, 142, 147, - 255, 164, 176, 177, 178, 157, 158, 133, - 134, 137, 168, 169, 170, 165, 169, 173, - 178, 187, 255, 131, 132, 140, 169, 174, - 255, 130, 132, 128, 182, 187, 255, 173, - 180, 182, 255, 132, 155, 159, 161, 175, - 128, 132, 139, 163, 165, 128, 134, 136, - 152, 155, 161, 163, 164, 166, 170, 172, - 175, 144, 150, 132, 138, 143, 187, 191, - 160, 128, 129, 132, 135, 133, 134, 160, - 255, 192, 255, 128, 191, 169, 174, 160, - 172, 175, 191, 128, 255, 176, 255, 131, - 137, 191, 145, 189, 135, 129, 130, 132, - 133, 144, 154, 176, 139, 159, 150, 156, - 159, 164, 167, 168, 170, 173, 145, 176, - 255, 139, 255, 166, 176, 189, 171, 179, - 160, 161, 163, 164, 165, 167, 169, 171, - 173, 174, 175, 176, 177, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 166, 170, 172, 178, 150, 153, - 155, 163, 165, 167, 169, 173, 153, 155, - 147, 161, 163, 255, 189, 132, 185, 144, - 152, 161, 164, 255, 188, 129, 131, 190, - 255, 133, 134, 137, 138, 142, 150, 152, - 161, 164, 189, 191, 255, 131, 134, 137, - 138, 142, 144, 146, 175, 178, 180, 182, - 255, 134, 138, 142, 161, 164, 185, 192, - 255, 188, 129, 131, 190, 191, 128, 132, - 135, 136, 139, 141, 149, 151, 162, 163, - 130, 190, 191, 151, 128, 130, 134, 136, - 138, 141, 128, 132, 190, 255, 133, 137, - 142, 148, 151, 161, 164, 255, 128, 132, - 134, 136, 138, 141, 149, 150, 162, 163, - 128, 131, 187, 188, 190, 255, 133, 137, - 142, 150, 152, 161, 164, 255, 129, 131, - 138, 150, 143, 148, 152, 159, 178, 179, - 177, 179, 186, 135, 142, 177, 179, 188, - 136, 141, 181, 183, 185, 152, 153, 190, - 191, 177, 191, 128, 132, 134, 135, 141, - 151, 153, 188, 134, 128, 129, 130, 141, - 156, 157, 158, 159, 160, 162, 164, 168, - 169, 170, 171, 172, 173, 174, 175, 176, - 179, 183, 173, 183, 185, 190, 150, 153, - 158, 160, 177, 180, 130, 141, 157, 132, - 134, 157, 159, 146, 148, 178, 180, 146, - 147, 178, 179, 180, 255, 148, 156, 158, - 255, 139, 141, 169, 133, 134, 160, 171, - 176, 187, 151, 155, 160, 162, 191, 149, - 158, 165, 188, 176, 255, 129, 255, 128, - 132, 180, 255, 133, 170, 180, 255, 128, - 130, 161, 173, 166, 179, 164, 183, 173, - 180, 144, 146, 148, 168, 183, 185, 128, - 185, 187, 191, 128, 131, 179, 181, 183, - 140, 141, 169, 174, 128, 129, 131, 132, - 134, 140, 142, 143, 147, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 164, 172, - 173, 179, 181, 183, 140, 141, 188, 137, - 144, 176, 162, 185, 148, 153, 169, 170, - 168, 154, 155, 136, 143, 169, 179, 184, - 186, 130, 182, 170, 171, 128, 187, 190, - 128, 133, 135, 146, 148, 191, 128, 191, - 128, 133, 144, 255, 147, 149, 134, 135, - 151, 156, 158, 160, 162, 167, 169, 178, - 181, 255, 132, 135, 140, 142, 151, 147, - 149, 163, 167, 161, 176, 191, 149, 151, - 180, 181, 133, 135, 155, 156, 144, 149, - 175, 177, 191, 160, 191, 128, 130, 138, - 189, 170, 176, 153, 154, 151, 153, 153, - 154, 155, 160, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 175, 175, 178, - 180, 189, 158, 159, 176, 177, 130, 134, - 139, 172, 163, 167, 128, 129, 180, 255, - 134, 159, 178, 190, 192, 255, 166, 173, - 135, 147, 128, 131, 179, 255, 129, 164, - 166, 255, 169, 182, 131, 188, 140, 141, - 176, 178, 180, 183, 184, 190, 191, 129, - 171, 175, 181, 182, 163, 170, 172, 173, - 172, 184, 190, 158, 128, 143, 160, 175, - 144, 145, 150, 155, 157, 158, 159, 135, - 139, 141, 168, 171, 180, 186, 189, 189, - 160, 182, 186, 191, 129, 131, 133, 134, - 140, 143, 184, 186, 165, 166, 164, 167, - 171, 172, 134, 144, 128, 129, 130, 132, - 133, 134, 135, 136, 139, 140, 141, 144, - 145, 146, 147, 150, 151, 152, 153, 154, - 156, 160, 164, 165, 167, 168, 169, 170, - 176, 178, 180, 181, 182, 187, 128, 130, - 184, 255, 135, 190, 131, 175, 187, 255, - 128, 130, 167, 180, 179, 133, 134, 128, - 130, 179, 255, 141, 129, 136, 144, 255, - 190, 172, 183, 159, 170, 128, 131, 187, - 188, 190, 191, 151, 128, 132, 135, 136, - 139, 141, 162, 163, 166, 172, 176, 180, - 181, 191, 158, 128, 134, 132, 255, 175, - 181, 184, 255, 129, 155, 158, 255, 171, - 183, 157, 171, 172, 186, 176, 181, 183, - 184, 187, 190, 128, 130, 131, 164, 145, - 151, 154, 160, 129, 138, 179, 185, 187, - 190, 135, 145, 155, 138, 153, 175, 182, - 184, 191, 146, 167, 169, 182, 186, 177, - 182, 188, 189, 191, 255, 134, 136, 255, - 138, 142, 144, 145, 147, 151, 179, 182, - 171, 172, 189, 190, 191, 176, 180, 176, - 182, 143, 145, 255, 136, 142, 147, 255, - 164, 176, 177, 178, 157, 158, 133, 134, - 137, 168, 169, 170, 165, 169, 173, 178, - 187, 255, 131, 132, 140, 169, 174, 255, - 130, 132, 128, 182, 187, 255, 173, 180, - 182, 255, 132, 155, 159, 161, 175, 128, - 132, 139, 163, 165, 128, 134, 136, 152, - 155, 161, 163, 164, 166, 170, 172, 175, - 144, 150, 132, 138, 128, 131, 132, 133, - 134, 135, 136, 137, 139, 140, 141, 142, - 143, 144, 145, 148, 149, 151, 152, 153, - 157, 159, 160, 161, 162, 163, 164, 165, - 168, 169, 176, 191, 129, 150, 154, 155, - 166, 171, 177, 190, 192, 255, 175, 141, - 143, 172, 177, 190, 191, 142, 145, 154, - 173, 255, 166, 255, 154, 175, 129, 143, - 178, 186, 188, 191, 137, 255, 190, 255, - 134, 255, 144, 255, 180, 191, 149, 191, - 140, 143, 136, 143, 154, 159, 136, 143, - 174, 255, 140, 186, 188, 191, 128, 133, - 135, 191, 160, 128, 129, 132, 135, 133, - 134, 160, 255, 128, 130, 170, 175, 144, - 145, 150, 155, 157, 158, 159, 143, 187, - 191, 128, 133, 134, 155, 157, 191, 157, - 128, 191, 143, 128, 191, 163, 181, 128, - 191, 162, 128, 191, 142, 128, 191, 132, - 133, 134, 135, 160, 128, 191, 128, 255, - 128, 129, 130, 132, 133, 134, 141, 156, - 157, 158, 159, 160, 162, 164, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 179, - 183, 160, 255, 128, 129, 130, 133, 134, - 135, 141, 156, 157, 158, 159, 160, 162, - 164, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 179, 183, 160, 255, 168, 255, - 128, 129, 130, 134, 135, 141, 156, 157, - 158, 159, 160, 162, 164, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 179, 183, - 168, 255, 192, 255, 159, 139, 187, 158, - 159, 176, 255, 135, 138, 139, 187, 188, - 255, 168, 255, 153, 154, 155, 160, 162, - 163, 164, 165, 166, 167, 168, 169, 170, - 171, 175, 177, 178, 179, 180, 181, 182, - 184, 185, 186, 187, 188, 189, 191, 176, - 190, 192, 255, 135, 147, 160, 188, 128, - 156, 184, 129, 255, 128, 129, 130, 133, - 134, 141, 156, 157, 158, 159, 160, 162, - 164, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 179, 183, 158, 159, 135, 255, - 148, 176, 140, 168, 132, 160, 188, 152, - 180, 144, 172, 136, 164, 192, 255, 129, - 130, 131, 132, 133, 134, 136, 137, 138, - 139, 140, 141, 143, 144, 145, 146, 147, - 148, 150, 151, 152, 153, 154, 155, 157, - 158, 159, 160, 161, 162, 164, 165, 166, - 167, 168, 169, 171, 172, 173, 174, 175, - 176, 178, 179, 180, 181, 182, 183, 185, - 186, 187, 188, 189, 190, 128, 191, 129, - 130, 131, 132, 133, 134, 136, 137, 138, - 139, 140, 141, 143, 144, 145, 146, 147, - 148, 150, 151, 152, 153, 154, 155, 157, - 158, 159, 160, 161, 162, 164, 165, 166, - 167, 168, 169, 171, 172, 173, 174, 175, - 176, 178, 179, 180, 181, 182, 183, 185, - 186, 187, 188, 189, 190, 128, 191, 129, - 130, 131, 132, 133, 134, 136, 137, 138, - 139, 140, 141, 143, 144, 145, 146, 147, - 148, 150, 151, 152, 153, 154, 155, 157, - 158, 159, 128, 156, 160, 255, 136, 164, - 175, 176, 255, 128, 141, 143, 191, 128, - 129, 132, 134, 140, 142, 143, 147, 150, - 151, 152, 153, 154, 155, 156, 157, 158, - 164, 172, 173, 130, 191, 188, 128, 138, - 140, 141, 144, 167, 175, 191, 137, 128, - 159, 176, 191, 162, 185, 128, 191, 128, - 147, 148, 153, 154, 168, 169, 170, 171, - 191, 168, 128, 153, 154, 155, 156, 191, - 136, 128, 191, 143, 128, 168, 169, 179, - 180, 183, 184, 186, 187, 191, 130, 128, - 191, 182, 128, 169, 170, 171, 172, 191, - 128, 191, 129, 186, 187, 190, 134, 147, - 128, 191, 128, 133, 134, 143, 144, 255, - 147, 149, 134, 135, 151, 156, 158, 160, - 162, 167, 169, 178, 181, 191, 192, 255, - 132, 135, 140, 142, 150, 128, 146, 147, - 151, 152, 162, 163, 167, 168, 191, 161, - 176, 191, 128, 148, 149, 151, 152, 190, - 128, 179, 180, 181, 182, 191, 128, 132, - 133, 135, 136, 154, 155, 156, 157, 191, - 144, 149, 128, 191, 128, 138, 129, 191, - 176, 189, 128, 191, 151, 153, 128, 191, - 128, 191, 165, 177, 178, 179, 180, 181, - 182, 184, 185, 186, 187, 188, 189, 191, - 128, 175, 176, 190, 192, 255, 128, 159, - 160, 188, 189, 191, 128, 156, 184, 129, - 255, 148, 176, 140, 168, 132, 160, 188, - 152, 180, 144, 172, 136, 164, 192, 255, - 129, 130, 131, 132, 133, 134, 136, 137, - 138, 139, 140, 141, 143, 144, 145, 146, - 147, 148, 150, 151, 152, 153, 154, 155, - 157, 158, 159, 160, 161, 162, 164, 165, - 166, 167, 168, 169, 171, 172, 173, 174, - 175, 176, 178, 179, 180, 181, 182, 183, - 185, 186, 187, 188, 189, 190, 128, 191, - 129, 130, 131, 132, 133, 134, 136, 137, - 138, 139, 140, 141, 143, 144, 145, 146, - 147, 148, 150, 151, 152, 153, 154, 155, - 157, 158, 159, 160, 161, 162, 164, 165, - 166, 167, 168, 169, 171, 172, 173, 174, - 175, 176, 178, 179, 180, 181, 182, 183, - 185, 186, 187, 188, 189, 190, 128, 191, - 129, 130, 131, 132, 133, 134, 136, 137, - 138, 139, 140, 141, 143, 144, 145, 146, - 147, 148, 150, 151, 152, 153, 154, 155, - 157, 158, 159, 128, 156, 160, 191, 192, - 255, 136, 164, 175, 176, 255, 135, 138, - 139, 187, 188, 191, 192, 255, 187, 191, - 128, 190, 128, 190, 188, 128, 175, 190, - 191, 145, 147, 155, 157, 159, 128, 191, - 130, 131, 135, 164, 165, 168, 170, 181, - 128, 191, 189, 128, 191, 141, 128, 191, - 128, 129, 130, 131, 132, 191, 191, 128, - 190, 129, 128, 191, 186, 128, 191, 128, - 131, 132, 137, 138, 191, 134, 128, 191, - 144, 128, 191, 128, 175, 185, 191, 178, - 128, 191, 128, 159, 164, 191, 133, 128, - 191, 128, 178, 187, 191, 128, 131, 132, - 133, 134, 135, 136, 137, 139, 140, 141, - 142, 143, 144, 145, 148, 149, 151, 152, - 153, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 168, 169, 176, 191, 129, - 150, 154, 171, 172, 175, 177, 190, 175, - 128, 140, 141, 143, 144, 191, 128, 171, - 172, 177, 178, 189, 190, 191, 142, 128, - 144, 145, 154, 155, 172, 173, 255, 166, - 191, 192, 255, 144, 145, 150, 155, 157, - 158, 159, 135, 143, 166, 191, 128, 154, - 175, 187, 129, 143, 144, 177, 178, 191, - 128, 136, 137, 255, 187, 191, 192, 255, - 190, 191, 192, 255, 128, 133, 134, 255, - 144, 191, 192, 255, 128, 179, 180, 191, - 128, 148, 149, 191, 128, 139, 140, 143, - 144, 191, 128, 135, 136, 143, 144, 153, - 154, 159, 160, 191, 128, 135, 136, 143, - 144, 173, 174, 255, 187, 128, 139, 140, - 191, 134, 128, 191, 128, 191, 160, 128, - 191, 128, 129, 135, 132, 134, 128, 175, - 157, 128, 191, 143, 128, 191, 163, 181, - 128, 191, 162, 128, 191, 142, 128, 191, - 132, 133, 134, 135, 160, 128, 191, 128, - 255, 128, 255, 176, 255, 131, 137, 191, - 145, 189, 135, 129, 130, 132, 133, 144, - 154, 176, 139, 159, 150, 156, 159, 164, - 167, 168, 170, 173, 145, 176, 255, 139, - 255, 166, 176, 189, 171, 179, 160, 161, - 163, 164, 165, 167, 169, 171, 173, 174, - 175, 176, 177, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, - 166, 170, 172, 178, 150, 153, 155, 163, - 165, 167, 169, 173, 153, 155, 147, 161, - 163, 255, 189, 132, 185, 144, 152, 161, - 164, 255, 188, 129, 131, 190, 255, 133, - 134, 137, 138, 142, 150, 152, 161, 164, - 189, 191, 255, 131, 134, 137, 138, 142, - 144, 146, 175, 178, 180, 182, 255, 134, - 138, 142, 161, 164, 185, 192, 255, 188, - 129, 131, 190, 191, 128, 132, 135, 136, - 139, 141, 149, 151, 162, 163, 130, 190, - 191, 151, 128, 130, 134, 136, 138, 141, - 128, 132, 190, 255, 133, 137, 142, 148, - 151, 161, 164, 255, 128, 132, 134, 136, - 138, 141, 149, 150, 162, 163, 128, 131, - 187, 188, 190, 255, 133, 137, 142, 150, - 152, 161, 164, 255, 129, 131, 138, 150, - 143, 148, 152, 159, 178, 179, 177, 179, - 186, 135, 142, 177, 179, 188, 136, 141, - 181, 183, 185, 152, 153, 190, 191, 177, - 191, 128, 132, 134, 135, 141, 151, 153, - 188, 134, 128, 129, 130, 141, 156, 157, - 158, 159, 160, 162, 164, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 179, 183, - 173, 183, 185, 190, 150, 153, 158, 160, - 177, 180, 130, 141, 157, 132, 134, 157, - 159, 146, 148, 178, 180, 146, 147, 178, - 179, 180, 255, 148, 156, 158, 255, 139, - 141, 169, 133, 134, 160, 171, 176, 187, - 151, 155, 160, 162, 191, 149, 158, 165, - 188, 176, 255, 129, 255, 128, 132, 180, - 255, 133, 170, 180, 255, 128, 130, 161, - 173, 166, 179, 164, 183, 173, 180, 144, - 146, 148, 168, 183, 185, 128, 185, 187, - 191, 128, 131, 179, 181, 183, 140, 141, - 169, 174, 128, 129, 131, 132, 134, 140, - 142, 143, 147, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 164, 172, 173, 179, - 181, 183, 140, 141, 188, 137, 144, 176, - 162, 185, 148, 153, 169, 170, 168, 154, - 155, 136, 143, 169, 179, 184, 186, 130, - 182, 170, 171, 128, 187, 190, 128, 133, - 135, 146, 148, 191, 128, 191, 128, 133, - 144, 255, 147, 149, 134, 135, 151, 156, - 158, 160, 162, 167, 169, 178, 181, 255, - 132, 135, 140, 142, 151, 147, 149, 163, - 167, 161, 176, 191, 149, 151, 180, 181, - 133, 135, 155, 156, 144, 149, 175, 177, - 191, 160, 191, 128, 130, 138, 189, 170, - 176, 153, 154, 151, 153, 153, 154, 155, - 160, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 175, 175, 178, 180, 189, - 158, 159, 176, 177, 130, 134, 139, 172, - 163, 167, 128, 129, 180, 255, 134, 159, - 178, 190, 192, 255, 166, 173, 135, 147, - 128, 131, 179, 255, 129, 164, 166, 255, - 169, 182, 131, 188, 140, 141, 176, 178, - 180, 183, 184, 190, 191, 129, 171, 175, - 181, 182, 163, 170, 172, 173, 172, 184, - 190, 158, 128, 143, 160, 175, 144, 145, - 150, 155, 157, 158, 159, 135, 139, 141, - 168, 171, 180, 186, 189, 189, 160, 182, - 186, 191, 129, 131, 133, 134, 140, 143, - 184, 186, 165, 166, 164, 167, 171, 172, - 134, 144, 128, 129, 130, 132, 133, 134, - 135, 136, 139, 140, 141, 144, 145, 146, - 147, 150, 151, 152, 153, 154, 156, 160, - 164, 165, 167, 168, 169, 170, 176, 178, - 180, 181, 182, 187, 128, 130, 184, 255, - 135, 190, 131, 175, 187, 255, 128, 130, - 167, 180, 179, 133, 134, 128, 130, 179, - 255, 141, 129, 136, 144, 255, 190, 172, - 183, 159, 170, 128, 131, 187, 188, 190, - 191, 151, 128, 132, 135, 136, 139, 141, - 162, 163, 166, 172, 176, 180, 181, 191, - 158, 128, 134, 132, 255, 175, 181, 184, - 255, 129, 155, 158, 255, 171, 183, 157, - 171, 172, 186, 176, 181, 183, 184, 187, - 190, 128, 130, 131, 164, 145, 151, 154, - 160, 129, 138, 179, 185, 187, 190, 135, - 145, 155, 138, 153, 175, 182, 184, 191, - 146, 167, 169, 182, 186, 177, 182, 188, - 189, 191, 255, 134, 136, 255, 138, 142, - 144, 145, 147, 151, 179, 182, 171, 172, - 189, 190, 191, 176, 180, 176, 182, 143, - 145, 255, 136, 142, 147, 255, 164, 176, - 177, 178, 157, 158, 133, 134, 137, 168, - 169, 170, 165, 169, 173, 178, 187, 255, - 131, 132, 140, 169, 174, 255, 130, 132, - 128, 182, 187, 255, 173, 180, 182, 255, - 132, 155, 159, 161, 175, 128, 132, 139, - 163, 165, 128, 134, 136, 152, 155, 161, - 163, 164, 166, 170, 172, 175, 144, 150, - 132, 138, 128, 131, 132, 133, 134, 135, - 136, 137, 139, 140, 141, 142, 143, 144, - 145, 148, 149, 151, 152, 153, 157, 159, - 160, 161, 162, 163, 164, 165, 168, 169, - 176, 191, 129, 150, 154, 155, 166, 171, - 177, 190, 192, 255, 175, 141, 143, 172, - 177, 190, 191, 142, 145, 154, 173, 255, - 166, 255, 154, 175, 129, 143, 178, 186, - 188, 191, 137, 255, 190, 255, 134, 255, - 144, 255, 180, 191, 149, 191, 140, 143, - 136, 143, 154, 159, 136, 143, 174, 255, - 140, 186, 188, 191, 128, 133, 135, 191, - 160, 128, 129, 132, 135, 133, 134, 160, - 255, 128, 130, 170, 175, 144, 145, 150, - 155, 157, 158, 159, 143, 187, 191, 128, - 129, 130, 132, 133, 134, 141, 156, 157, - 158, 159, 160, 162, 164, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 179, 183, - 160, 255, 128, 129, 130, 133, 134, 135, - 141, 156, 157, 158, 159, 160, 162, 164, - 168, 169, 170, 171, 172, 173, 174, 175, - 176, 179, 183, 160, 255, 168, 255, 128, - 129, 130, 134, 135, 141, 156, 157, 158, - 159, 160, 162, 164, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 179, 183, 168, - 255, 192, 255, 159, 139, 187, 158, 159, - 176, 255, 135, 138, 139, 187, 188, 255, - 168, 255, 153, 154, 155, 160, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, - 175, 177, 178, 179, 180, 181, 182, 184, - 185, 186, 187, 188, 189, 191, 176, 190, - 192, 255, 135, 147, 160, 188, 128, 156, - 184, 129, 255, 128, 129, 130, 133, 134, - 141, 156, 157, 158, 159, 160, 162, 164, - 168, 169, 170, 171, 172, 173, 174, 175, - 176, 179, 183, 158, 159, 135, 255, 148, - 176, 140, 168, 132, 160, 188, 152, 180, - 144, 172, 136, 164, 192, 255, 129, 130, - 131, 132, 133, 134, 136, 137, 138, 139, - 140, 141, 143, 144, 145, 146, 147, 148, - 150, 151, 152, 153, 154, 155, 157, 158, - 159, 160, 161, 162, 164, 165, 166, 167, - 168, 169, 171, 172, 173, 174, 175, 176, - 178, 179, 180, 181, 182, 183, 185, 186, - 187, 188, 189, 190, 128, 191, 129, 130, - 131, 132, 133, 134, 136, 137, 138, 139, - 140, 141, 143, 144, 145, 146, 147, 148, - 150, 151, 152, 153, 154, 155, 157, 158, - 159, 160, 161, 162, 164, 165, 166, 167, - 168, 169, 171, 172, 173, 174, 175, 176, - 178, 179, 180, 181, 182, 183, 185, 186, - 187, 188, 189, 190, 128, 191, 129, 130, - 131, 132, 133, 134, 136, 137, 138, 139, - 140, 141, 143, 144, 145, 146, 147, 148, - 150, 151, 152, 153, 154, 155, 157, 158, - 159, 128, 156, 160, 255, 136, 164, 175, - 176, 255, 142, 128, 191, 128, 129, 132, - 134, 140, 142, 143, 147, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 164, 172, - 173, 130, 191, 139, 141, 188, 128, 140, - 142, 143, 144, 167, 168, 174, 175, 191, - 128, 255, 176, 255, 131, 137, 191, 145, - 189, 135, 129, 130, 132, 133, 144, 154, - 176, 139, 159, 150, 156, 159, 164, 167, - 168, 170, 173, 145, 176, 255, 139, 255, - 166, 176, 189, 171, 179, 160, 161, 163, - 164, 165, 167, 169, 171, 173, 174, 175, - 176, 177, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 166, - 170, 172, 178, 150, 153, 155, 163, 165, - 167, 169, 173, 153, 155, 147, 161, 163, - 255, 189, 132, 185, 144, 152, 161, 164, - 255, 188, 129, 131, 190, 255, 133, 134, - 137, 138, 142, 150, 152, 161, 164, 189, - 191, 255, 131, 134, 137, 138, 142, 144, - 146, 175, 178, 180, 182, 255, 134, 138, - 142, 161, 164, 185, 192, 255, 188, 129, - 131, 190, 191, 128, 132, 135, 136, 139, - 141, 149, 151, 162, 163, 130, 190, 191, - 151, 128, 130, 134, 136, 138, 141, 128, - 132, 190, 255, 133, 137, 142, 148, 151, - 161, 164, 255, 128, 132, 134, 136, 138, - 141, 149, 150, 162, 163, 128, 131, 187, - 188, 190, 255, 133, 137, 142, 150, 152, - 161, 164, 255, 129, 131, 138, 150, 143, - 148, 152, 159, 178, 179, 177, 179, 186, - 135, 142, 177, 179, 188, 136, 141, 181, - 183, 185, 152, 153, 190, 191, 177, 191, - 128, 132, 134, 135, 141, 151, 153, 188, - 134, 128, 129, 130, 141, 156, 157, 158, - 159, 160, 162, 164, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 179, 183, 173, - 183, 185, 190, 150, 153, 158, 160, 177, - 180, 130, 141, 157, 132, 134, 157, 159, - 146, 148, 178, 180, 146, 147, 178, 179, - 180, 255, 148, 156, 158, 255, 139, 141, - 169, 133, 134, 160, 171, 176, 187, 151, - 155, 160, 162, 191, 149, 158, 165, 188, - 176, 255, 129, 255, 128, 132, 180, 255, - 133, 170, 180, 255, 128, 130, 161, 173, - 166, 179, 164, 183, 173, 180, 144, 146, - 148, 168, 183, 185, 128, 185, 187, 191, - 128, 131, 179, 181, 183, 140, 141, 144, - 176, 175, 177, 191, 160, 191, 128, 130, - 170, 175, 153, 154, 153, 154, 155, 160, - 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 175, 175, 178, 180, 189, 158, - 159, 176, 177, 130, 134, 139, 172, 163, - 167, 128, 129, 180, 255, 134, 159, 178, - 190, 192, 255, 166, 173, 135, 147, 128, - 131, 179, 255, 129, 164, 166, 255, 169, - 182, 131, 188, 140, 141, 176, 178, 180, - 183, 184, 190, 191, 129, 171, 175, 181, - 182, 163, 170, 172, 173, 172, 184, 190, - 158, 128, 143, 160, 175, 144, 145, 150, - 155, 157, 158, 159, 135, 139, 141, 168, - 171, 180, 186, 189, 189, 160, 182, 186, - 191, 129, 131, 133, 134, 140, 143, 184, - 186, 165, 166, 164, 167, 171, 172, 134, - 144, 128, 129, 130, 132, 133, 134, 135, - 136, 139, 140, 141, 144, 145, 146, 147, - 150, 151, 152, 153, 154, 156, 160, 164, - 165, 167, 168, 169, 170, 176, 178, 180, - 181, 182, 187, 128, 130, 184, 255, 135, - 190, 131, 175, 187, 255, 128, 130, 167, - 180, 179, 133, 134, 128, 130, 179, 255, - 141, 129, 136, 144, 255, 190, 172, 183, - 159, 170, 128, 131, 187, 188, 190, 191, - 151, 128, 132, 135, 136, 139, 141, 162, - 163, 166, 172, 176, 180, 181, 191, 158, - 128, 134, 132, 255, 175, 181, 184, 255, - 129, 155, 158, 255, 171, 183, 157, 171, - 172, 186, 176, 181, 183, 184, 187, 190, - 128, 130, 131, 164, 145, 151, 154, 160, - 129, 138, 179, 185, 187, 190, 135, 145, - 155, 138, 153, 175, 182, 184, 191, 146, - 167, 169, 182, 186, 177, 182, 188, 189, - 191, 255, 134, 136, 255, 138, 142, 144, - 145, 147, 151, 179, 182, 171, 172, 189, - 190, 191, 176, 180, 176, 182, 143, 145, - 255, 136, 142, 147, 255, 164, 176, 177, - 178, 157, 158, 133, 134, 137, 168, 169, - 170, 165, 169, 173, 178, 187, 255, 131, - 132, 140, 169, 174, 255, 130, 132, 128, - 182, 187, 255, 173, 180, 182, 255, 132, - 155, 159, 161, 175, 128, 132, 139, 163, - 165, 128, 134, 136, 152, 155, 161, 163, - 164, 166, 170, 172, 175, 144, 150, 132, - 138, 143, 187, 191, 160, 128, 129, 132, - 135, 133, 134, 160, 255, 192, 255, 137, - 128, 159, 160, 175, 176, 191, 162, 185, - 128, 191, 128, 147, 148, 153, 154, 168, - 169, 170, 171, 191, 168, 128, 153, 154, - 155, 156, 191, 136, 128, 191, 143, 128, - 168, 169, 179, 180, 183, 184, 186, 187, - 191, 130, 128, 191, 182, 128, 169, 170, - 171, 172, 191, 128, 191, 129, 186, 187, - 190, 134, 147, 128, 191, 128, 133, 134, - 143, 144, 255, 147, 149, 134, 135, 151, - 156, 158, 160, 162, 167, 169, 178, 181, - 191, 192, 255, 132, 135, 140, 142, 150, - 128, 146, 147, 151, 152, 162, 163, 167, - 168, 191, 161, 176, 191, 128, 148, 149, - 151, 152, 190, 128, 179, 180, 181, 182, - 191, 128, 132, 133, 135, 136, 154, 155, - 156, 157, 191, 144, 149, 128, 191, 128, - 138, 129, 191, 176, 189, 128, 191, 151, - 153, 128, 191, 128, 191, 165, 177, 178, - 179, 180, 181, 182, 184, 185, 186, 187, - 188, 189, 191, 128, 175, 176, 190, 192, - 255, 128, 159, 160, 188, 189, 191, 128, - 156, 184, 129, 255, 148, 176, 140, 168, - 132, 160, 188, 152, 180, 144, 172, 136, - 164, 192, 255, 129, 130, 131, 132, 133, - 134, 136, 137, 138, 139, 140, 141, 143, - 144, 145, 146, 147, 148, 150, 151, 152, - 153, 154, 155, 157, 158, 159, 160, 161, - 162, 164, 165, 166, 167, 168, 169, 171, - 172, 173, 174, 175, 176, 178, 179, 180, - 181, 182, 183, 185, 186, 187, 188, 189, - 190, 128, 191, 129, 130, 131, 132, 133, - 134, 136, 137, 138, 139, 140, 141, 143, - 144, 145, 146, 147, 148, 150, 151, 152, - 153, 154, 155, 157, 158, 159, 160, 161, - 162, 164, 165, 166, 167, 168, 169, 171, - 172, 173, 174, 175, 176, 178, 179, 180, - 181, 182, 183, 185, 186, 187, 188, 189, - 190, 128, 191, 129, 130, 131, 132, 133, - 134, 136, 137, 138, 139, 140, 141, 143, - 144, 145, 146, 147, 148, 150, 151, 152, - 153, 154, 155, 157, 158, 159, 128, 156, - 160, 191, 192, 255, 136, 164, 175, 176, - 255, 135, 138, 139, 187, 188, 191, 192, - 255, 187, 191, 128, 190, 191, 128, 190, - 188, 128, 175, 176, 189, 190, 191, 145, - 147, 155, 157, 159, 128, 191, 130, 131, - 135, 164, 165, 168, 170, 181, 128, 191, - 189, 128, 191, 141, 128, 191, 128, 129, - 130, 131, 132, 191, 191, 128, 190, 129, - 128, 191, 186, 128, 191, 128, 131, 132, - 137, 138, 191, 134, 128, 191, 144, 128, - 191, 128, 175, 176, 184, 185, 191, 178, - 128, 191, 128, 159, 160, 163, 164, 191, - 133, 128, 191, 128, 178, 179, 186, 187, - 191, 128, 131, 132, 133, 134, 135, 136, - 137, 139, 140, 141, 142, 143, 144, 145, - 148, 149, 151, 152, 153, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 168, - 169, 176, 191, 129, 150, 154, 171, 172, - 175, 177, 190, 175, 128, 140, 141, 143, - 144, 191, 128, 171, 172, 177, 178, 189, - 190, 191, 142, 128, 144, 145, 154, 155, - 172, 173, 255, 166, 191, 192, 255, 128, - 255, 176, 255, 131, 137, 191, 145, 189, - 135, 129, 130, 132, 133, 144, 154, 176, - 139, 159, 150, 156, 159, 164, 167, 168, - 170, 173, 145, 176, 255, 139, 255, 166, - 176, 189, 171, 179, 160, 161, 163, 164, - 165, 167, 169, 171, 173, 174, 175, 176, - 177, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 166, 170, - 172, 178, 150, 153, 155, 163, 165, 167, - 169, 173, 153, 155, 147, 161, 163, 255, - 189, 132, 185, 144, 152, 161, 164, 255, - 188, 129, 131, 190, 255, 133, 134, 137, - 138, 142, 150, 152, 161, 164, 189, 191, - 255, 131, 134, 137, 138, 142, 144, 146, - 175, 178, 180, 182, 255, 134, 138, 142, - 161, 164, 185, 192, 255, 188, 129, 131, - 190, 191, 128, 132, 135, 136, 139, 141, - 149, 151, 162, 163, 130, 190, 191, 151, - 128, 130, 134, 136, 138, 141, 128, 132, - 190, 255, 133, 137, 142, 148, 151, 161, - 164, 255, 128, 132, 134, 136, 138, 141, - 149, 150, 162, 163, 128, 131, 187, 188, - 190, 255, 133, 137, 142, 150, 152, 161, - 164, 255, 129, 131, 138, 150, 143, 148, - 152, 159, 178, 179, 177, 179, 186, 135, - 142, 177, 179, 188, 136, 141, 181, 183, - 185, 152, 153, 190, 191, 177, 191, 128, - 132, 134, 135, 141, 151, 153, 188, 134, - 128, 129, 130, 141, 156, 157, 158, 159, - 160, 162, 164, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 179, 183, 173, 183, - 185, 190, 150, 153, 158, 160, 177, 180, - 130, 141, 157, 132, 134, 157, 159, 146, - 148, 178, 180, 146, 147, 178, 179, 180, - 255, 148, 156, 158, 255, 139, 141, 169, - 133, 134, 160, 171, 176, 187, 151, 155, - 160, 162, 191, 149, 158, 165, 188, 176, - 255, 129, 255, 128, 132, 180, 255, 133, - 170, 180, 255, 128, 130, 161, 173, 166, - 179, 164, 183, 173, 180, 144, 146, 148, - 168, 183, 185, 128, 185, 187, 191, 128, - 131, 179, 181, 183, 140, 141, 169, 174, - 128, 129, 131, 132, 134, 140, 142, 143, - 147, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 164, 172, 173, 179, 181, 183, - 140, 141, 188, 137, 144, 176, 162, 185, - 148, 153, 169, 170, 168, 154, 155, 136, - 143, 169, 179, 184, 186, 130, 182, 170, - 171, 128, 187, 190, 128, 133, 135, 146, - 148, 191, 128, 191, 128, 133, 144, 255, - 147, 149, 134, 135, 151, 156, 158, 160, - 162, 167, 169, 178, 181, 255, 132, 135, - 140, 142, 151, 147, 149, 163, 167, 161, - 176, 191, 149, 151, 180, 181, 133, 135, - 155, 156, 144, 149, 175, 177, 191, 160, - 191, 128, 130, 138, 189, 170, 176, 153, - 154, 151, 153, 153, 154, 155, 160, 162, - 163, 164, 165, 166, 167, 168, 169, 170, - 171, 175, 175, 178, 180, 189, 158, 159, - 176, 177, 130, 134, 139, 172, 163, 167, - 128, 129, 180, 255, 134, 159, 178, 190, - 192, 255, 166, 173, 135, 147, 128, 131, - 179, 255, 129, 164, 166, 255, 169, 182, - 131, 188, 140, 141, 176, 178, 180, 183, - 184, 190, 191, 129, 171, 175, 181, 182, - 163, 170, 172, 173, 172, 184, 190, 158, - 128, 143, 160, 175, 144, 145, 150, 155, - 157, 158, 159, 135, 139, 141, 168, 171, - 180, 186, 189, 189, 160, 182, 186, 191, - 129, 131, 133, 134, 140, 143, 184, 186, - 165, 166, 164, 167, 171, 172, 134, 144, - 128, 129, 130, 132, 133, 134, 135, 136, - 139, 140, 141, 144, 145, 146, 147, 150, - 151, 152, 153, 154, 156, 160, 164, 165, - 167, 168, 169, 170, 176, 178, 180, 181, - 182, 187, 128, 130, 184, 255, 135, 190, - 131, 175, 187, 255, 128, 130, 167, 180, - 179, 133, 134, 128, 130, 179, 255, 141, - 129, 136, 144, 255, 190, 172, 183, 159, - 170, 128, 131, 187, 188, 190, 191, 151, - 128, 132, 135, 136, 139, 141, 162, 163, - 166, 172, 176, 180, 181, 191, 158, 128, - 134, 132, 255, 175, 181, 184, 255, 129, - 155, 158, 255, 171, 183, 157, 171, 172, - 186, 176, 181, 183, 184, 187, 190, 128, - 130, 131, 164, 145, 151, 154, 160, 129, - 138, 179, 185, 187, 190, 135, 145, 155, - 138, 153, 175, 182, 184, 191, 146, 167, - 169, 182, 186, 177, 182, 188, 189, 191, - 255, 134, 136, 255, 138, 142, 144, 145, - 147, 151, 179, 182, 171, 172, 189, 190, - 191, 176, 180, 176, 182, 143, 145, 255, - 136, 142, 147, 255, 164, 176, 177, 178, - 157, 158, 133, 134, 137, 168, 169, 170, - 165, 169, 173, 178, 187, 255, 131, 132, - 140, 169, 174, 255, 130, 132, 128, 182, - 187, 255, 173, 180, 182, 255, 132, 155, - 159, 161, 175, 128, 132, 139, 163, 165, - 128, 134, 136, 152, 155, 161, 163, 164, - 166, 170, 172, 175, 144, 150, 132, 138, - 128, 131, 132, 133, 134, 135, 136, 137, - 139, 140, 141, 142, 143, 144, 145, 148, - 149, 151, 152, 153, 157, 159, 160, 161, - 162, 163, 164, 165, 168, 169, 176, 191, - 129, 150, 154, 155, 166, 171, 177, 190, - 192, 255, 175, 141, 143, 172, 177, 190, - 191, 142, 145, 154, 173, 255, 166, 255, - 154, 175, 129, 143, 178, 186, 188, 191, - 137, 255, 190, 255, 134, 255, 144, 255, - 180, 191, 149, 191, 140, 143, 136, 143, - 154, 159, 136, 143, 174, 255, 140, 186, - 188, 191, 128, 133, 135, 191, 160, 128, - 129, 132, 135, 133, 134, 160, 255, 128, - 130, 170, 175, 144, 145, 150, 155, 157, - 158, 159, 143, 187, 191, 144, 145, 150, - 155, 157, 158, 159, 135, 143, 166, 191, - 128, 154, 175, 187, 129, 143, 144, 177, - 178, 191, 128, 136, 137, 255, 187, 191, - 192, 255, 190, 191, 192, 255, 128, 133, - 134, 255, 144, 191, 192, 255, 128, 179, - 180, 191, 128, 148, 149, 191, 128, 139, - 140, 143, 144, 191, 128, 135, 136, 143, - 144, 153, 154, 159, 160, 191, 128, 135, - 136, 143, 144, 173, 174, 255, 187, 128, - 139, 140, 191, 134, 128, 191, 128, 191, - 160, 128, 191, 128, 130, 131, 135, 191, - 129, 134, 136, 190, 128, 159, 160, 191, - 0, 127, 192, 255, 128, 175, 176, 255, - 10, 13, 127, 194, 216, 219, 220, 224, - 225, 226, 227, 234, 235, 236, 237, 239, - 240, 243, 0, 31, 128, 191, 192, 223, - 228, 238, 241, 247, 248, 255, 204, 205, - 210, 214, 215, 216, 217, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 234, 239, - 240, 243, 204, 205, 210, 214, 215, 216, - 217, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 234, 239, 240, 243, 194, 204, - 205, 210, 214, 215, 216, 217, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 234, - 239, 240, 243, 194, 216, 219, 220, 224, - 225, 226, 227, 234, 235, 236, 237, 239, - 240, 243, 32, 126, 192, 223, 228, 238, - 241, 247, 204, 205, 210, 214, 215, 216, - 217, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 234, 239, 240, 243, 204, 205, - 210, 214, 215, 216, 217, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 234, 239, - 240, 243, 194, 204, 205, 210, 214, 215, - 216, 217, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 234, 239, 240, 243, 204, - 205, 210, 214, 215, 216, 217, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 234, - 235, 236, 237, 239, 240, 243, 204, 205, - 210, 214, 215, 216, 217, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 234, 237, - 239, 240, 243, 204, 205, 210, 214, 215, - 216, 217, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 234, 237, 239, 240, 243, - 204, 205, 210, 214, 215, 216, 217, 219, - 220, 221, 222, 223, 224, 225, 226, 227, - 234, 237, 239, 240, 243, 204, 205, 210, - 214, 215, 216, 217, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 234, 239, 240, - 243, 204, 205, 210, 214, 215, 216, 217, - 219, 220, 221, 222, 223, 224, 225, 226, - 227, 234, 235, 236, 237, 239, 240, 243, - 204, 205, 210, 214, 215, 216, 217, 219, - 220, 221, 222, 223, 224, 225, 226, 227, - 234, 239, 240, 243, 194, 204, 205, 210, - 214, 215, 216, 217, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 234, 239, 240, - 243, 204, 205, 210, 214, 215, 216, 217, - 219, 220, 221, 222, 223, 224, 225, 226, - 227, 234, 237, 239, 240, 243, 204, 205, - 210, 214, 215, 216, 217, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 234, 237, - 239, 240, 243, 204, 205, 210, 214, 215, - 216, 217, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 234, 237, 239, 240, 243, - 204, 205, 210, 214, 215, 216, 217, 219, - 220, 221, 222, 223, 224, 225, 226, 227, - 234, 239, 240, 243, 204, 205, 210, 214, - 215, 216, 217, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 234, 239, 240, 243, - 204, 205, 210, 214, 215, 216, 217, 219, - 220, 221, 222, 223, 224, 225, 226, 227, - 234, 239, 240, 243, 194, 204, 205, 210, - 214, 215, 216, 217, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 234, 239, 240, - 243, -} - -var _graphclust_single_lengths []byte = []byte{ - 0, 1, 0, 0, 0, 1, 1, 0, - 1, 0, 1, 0, 0, 1, 26, 0, - 0, 0, 1, 1, 1, 0, 0, 2, - 1, 0, 1, 1, 0, 2, 0, 0, - 2, 0, 2, 1, 0, 1, 0, 3, - 0, 0, 1, 22, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 1, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 5, 0, 0, 0, 1, 0, - 2, 0, 0, 15, 0, 0, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 2, - 1, 1, 0, 3, 1, 0, 7, 8, - 1, 1, 0, 1, 0, 0, 0, 0, - 34, 0, 0, 0, 0, 1, 0, 1, - 1, 0, 0, 1, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 1, 1, 0, - 1, 0, 0, 0, 1, 1, 0, 0, - 5, 0, 0, 1, 0, 1, 1, 0, - 6, 0, 0, 0, 0, 0, 1, 5, - 0, 0, 0, 0, 1, 0, 1, 4, - 0, 0, 0, 0, 3, 0, 0, 0, - 1, 1, 0, 1, 0, 1, 0, 0, - 1, 26, 0, 0, 0, 1, 1, 1, - 0, 0, 2, 1, 0, 1, 1, 0, - 2, 0, 0, 2, 0, 2, 1, 0, - 1, 0, 3, 0, 0, 1, 22, 0, - 0, 3, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 5, 2, 2, - 24, 3, 1, 0, 2, 0, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, - 2, 5, 3, 0, 0, 2, 0, 1, - 0, 3, 1, 0, 2, 15, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 0, - 0, 2, 1, 1, 0, 3, 1, 0, - 7, 8, 1, 1, 0, 1, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 1, - 0, 1, 1, 0, 0, 1, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 0, 0, 0, 1, 1, - 0, 0, 5, 0, 0, 1, 0, 1, - 1, 0, 6, 0, 0, 0, 0, 0, - 1, 5, 0, 0, 0, 0, 32, 0, - 1, 0, 1, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 4, 0, 2, 0, 7, 1, 0, - 1, 0, 0, 0, 1, 1, 0, 1, - 0, 1, 0, 0, 1, 26, 0, 0, - 0, 1, 1, 1, 0, 0, 2, 1, - 0, 1, 1, 0, 2, 0, 0, 2, - 0, 2, 1, 0, 1, 0, 3, 0, - 0, 1, 22, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 3, - 0, 0, 0, 0, 0, 0, 0, 2, - 0, 5, 0, 0, 0, 1, 0, 2, - 0, 0, 15, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, 2, 1, - 1, 0, 3, 1, 0, 7, 8, 1, - 1, 0, 1, 0, 0, 0, 0, 34, - 0, 0, 0, 0, 1, 0, 1, 1, - 0, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 1, 0, 1, - 0, 0, 0, 1, 1, 0, 0, 5, - 0, 0, 1, 0, 1, 1, 0, 6, - 0, 0, 0, 0, 0, 1, 5, 0, - 0, 0, 0, 1, 0, 1, 4, 0, - 0, 0, 0, 2, 0, 0, 0, 1, - 1, 0, 1, 0, 1, 0, 0, 1, - 26, 0, 0, 0, 1, 1, 1, 0, - 0, 2, 1, 0, 1, 1, 0, 2, - 0, 0, 2, 0, 2, 1, 0, 1, - 0, 3, 0, 0, 1, 22, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 5, 2, 2, 24, - 3, 1, 0, 2, 0, 1, 1, 1, - 1, 1, 1, 0, 0, 0, 0, 2, - 5, 3, 0, 0, 2, 0, 1, 0, - 3, 1, 0, 2, 15, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, - 2, 1, 1, 0, 3, 1, 0, 7, - 8, 1, 1, 0, 1, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 1, 0, - 1, 1, 0, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 1, 1, - 0, 1, 0, 0, 0, 1, 1, 0, - 0, 5, 0, 0, 1, 0, 1, 1, - 0, 6, 0, 0, 0, 0, 0, 1, - 5, 0, 0, 0, 0, 32, 0, 1, - 0, 1, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, - 4, 0, 2, 0, 7, 1, 0, 0, - 1, 1, 2, 1, 1, 5, 0, 25, - 0, 25, 0, 0, 24, 0, 0, 1, - 0, 2, 0, 0, 0, 28, 0, 3, - 24, 2, 0, 2, 2, 3, 2, 2, - 2, 0, 54, 54, 27, 1, 0, 20, - 1, 1, 2, 0, 1, 1, 1, 1, - 1, 2, 2, 0, 2, 5, 3, 0, - 0, 2, 2, 2, 2, 0, 14, 0, - 3, 2, 2, 3, 2, 2, 2, 54, - 54, 27, 1, 0, 2, 0, 1, 5, - 8, 1, 1, 0, 1, 1, 1, 0, - 1, 1, 0, 1, 0, 1, 0, 34, - 1, 0, 1, 0, 7, 2, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 0, 1, 3, 0, - 1, 1, 2, 1, 1, 5, 0, 0, - 0, 0, 1, 1, 0, 1, 0, 1, - 0, 0, 1, 26, 0, 0, 0, 1, - 1, 1, 0, 0, 2, 1, 0, 1, - 1, 0, 2, 0, 0, 2, 0, 2, - 1, 0, 1, 0, 3, 0, 0, 1, - 22, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 5, - 2, 2, 24, 3, 1, 0, 2, 0, - 1, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 2, 5, 3, 0, 0, 2, - 0, 1, 0, 3, 1, 0, 2, 15, - 0, 0, 0, 4, 0, 0, 0, 0, - 0, 0, 0, 2, 1, 1, 0, 3, - 1, 0, 7, 8, 1, 1, 0, 1, - 0, 0, 0, 0, 34, 0, 0, 0, - 0, 1, 0, 1, 1, 0, 0, 1, - 0, 1, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 0, 1, 0, 0, 0, - 1, 1, 0, 0, 5, 0, 0, 1, - 0, 1, 1, 0, 6, 0, 0, 0, - 0, 0, 1, 5, 0, 0, 0, 0, - 32, 0, 1, 0, 1, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 4, 0, 2, 0, 7, - 1, 0, 25, 0, 25, 0, 0, 24, - 0, 0, 1, 0, 2, 0, 0, 0, - 28, 0, 3, 24, 2, 0, 2, 2, - 3, 2, 2, 2, 0, 54, 54, 27, - 1, 1, 20, 3, 0, 0, 0, 1, - 1, 0, 1, 0, 1, 0, 0, 1, - 26, 0, 0, 0, 1, 1, 1, 0, - 0, 2, 1, 0, 1, 1, 0, 2, - 0, 0, 2, 0, 2, 1, 0, 1, - 0, 3, 0, 0, 1, 22, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 5, 0, 0, 0, - 1, 0, 2, 0, 0, 15, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 0, - 0, 2, 1, 1, 0, 3, 1, 0, - 7, 8, 1, 1, 0, 1, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 1, - 0, 1, 1, 0, 0, 1, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 1, - 1, 0, 1, 0, 0, 0, 1, 1, - 0, 0, 5, 0, 0, 1, 0, 1, - 1, 0, 6, 0, 0, 0, 0, 0, - 1, 5, 0, 0, 0, 0, 1, 0, - 1, 4, 0, 0, 0, 1, 2, 0, - 1, 1, 1, 1, 1, 2, 2, 0, - 2, 5, 3, 0, 0, 2, 2, 2, - 2, 0, 14, 0, 3, 2, 2, 3, - 2, 2, 2, 54, 54, 27, 1, 0, - 2, 1, 1, 5, 8, 1, 1, 0, - 1, 1, 1, 0, 1, 1, 0, 1, - 0, 1, 0, 34, 1, 0, 1, 0, - 0, 0, 0, 1, 1, 0, 1, 0, - 1, 0, 0, 1, 26, 0, 0, 0, - 1, 1, 1, 0, 0, 2, 1, 0, - 1, 1, 0, 2, 0, 0, 2, 0, - 2, 1, 0, 1, 0, 3, 0, 0, - 1, 22, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, 2, 0, - 5, 2, 2, 24, 3, 1, 0, 2, - 0, 1, 1, 1, 1, 1, 1, 0, - 0, 0, 0, 2, 5, 3, 0, 0, - 2, 0, 1, 0, 3, 1, 0, 2, - 15, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 2, 1, 1, 0, - 3, 1, 0, 7, 8, 1, 1, 0, - 1, 0, 0, 0, 0, 34, 0, 0, - 0, 0, 1, 0, 1, 1, 0, 0, - 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 0, 1, 0, 0, - 0, 1, 1, 0, 0, 5, 0, 0, - 1, 0, 1, 1, 0, 6, 0, 0, - 0, 0, 0, 1, 5, 0, 0, 0, - 0, 32, 0, 1, 0, 1, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 4, 0, 2, 0, - 7, 1, 0, 7, 2, 0, 4, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 0, 1, 5, 0, 0, - 0, 0, 0, 18, 20, 20, 21, 15, - 20, 20, 21, 23, 21, 21, 21, 20, - 23, 20, 21, 21, 21, 21, 20, 20, - 20, 21, -} - -var _graphclust_range_lengths []byte = []byte{ - 0, 0, 1, 1, 1, 1, 2, 1, - 1, 4, 1, 1, 1, 1, 2, 4, - 1, 2, 1, 2, 2, 6, 6, 3, - 2, 5, 1, 3, 2, 3, 5, 3, - 3, 1, 3, 1, 1, 1, 1, 2, - 1, 4, 0, 0, 2, 3, 1, 1, - 2, 2, 1, 2, 1, 1, 2, 1, - 2, 1, 1, 2, 2, 2, 1, 1, - 3, 2, 0, 1, 1, 1, 0, 1, - 0, 1, 1, 0, 2, 1, 1, 1, - 2, 3, 1, 1, 2, 2, 1, 1, - 3, 2, 2, 0, 0, 2, 0, 0, - 0, 0, 1, 4, 1, 1, 1, 1, - 0, 2, 1, 2, 2, 1, 2, 2, - 1, 1, 3, 6, 1, 1, 1, 2, - 2, 1, 1, 1, 3, 1, 2, 3, - 1, 1, 2, 2, 3, 1, 3, 1, - 0, 1, 1, 1, 2, 1, 0, 1, - 0, 3, 3, 1, 2, 2, 2, 0, - 5, 1, 1, 1, 0, 1, 0, 1, - 1, 1, 0, 1, 2, 1, 1, 1, - 1, 2, 1, 1, 4, 1, 1, 1, - 1, 2, 4, 1, 2, 1, 2, 2, - 6, 6, 3, 2, 5, 1, 3, 2, - 3, 5, 3, 3, 1, 3, 1, 1, - 1, 1, 2, 1, 4, 0, 0, 2, - 3, 1, 1, 2, 2, 1, 2, 1, - 1, 2, 1, 2, 1, 1, 2, 2, - 2, 1, 1, 3, 2, 0, 0, 0, - 0, 0, 0, 1, 0, 2, 1, 0, - 2, 0, 1, 1, 3, 1, 2, 0, - 6, 2, 1, 1, 2, 0, 1, 0, - 1, 0, 1, 1, 0, 0, 2, 1, - 1, 1, 2, 3, 1, 1, 2, 2, - 1, 1, 3, 2, 2, 0, 0, 2, - 0, 0, 0, 0, 1, 4, 1, 1, - 1, 1, 0, 2, 1, 2, 2, 1, - 2, 2, 1, 1, 3, 6, 1, 1, - 1, 2, 2, 1, 1, 1, 3, 1, - 2, 3, 1, 1, 2, 2, 3, 1, - 3, 1, 0, 1, 1, 1, 2, 1, - 0, 1, 0, 3, 3, 1, 2, 2, - 2, 0, 5, 1, 1, 1, 4, 1, - 1, 2, 2, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, - 0, 1, 1, 0, 1, 0, 0, 1, - 2, 1, 1, 1, 1, 2, 1, 1, - 4, 1, 1, 1, 1, 2, 4, 1, - 2, 1, 2, 2, 6, 6, 3, 2, - 5, 1, 3, 2, 3, 5, 3, 3, - 1, 3, 1, 1, 1, 1, 2, 1, - 4, 0, 0, 2, 3, 1, 1, 2, - 2, 1, 2, 1, 1, 2, 1, 2, - 1, 1, 2, 2, 2, 1, 1, 3, - 2, 0, 1, 1, 1, 0, 1, 0, - 1, 1, 0, 2, 1, 1, 1, 2, - 3, 1, 1, 2, 2, 1, 1, 3, - 2, 2, 0, 0, 2, 0, 0, 0, - 0, 1, 4, 1, 1, 1, 1, 0, - 2, 1, 2, 2, 1, 2, 2, 1, - 1, 3, 6, 1, 1, 1, 2, 2, - 1, 1, 1, 3, 1, 2, 3, 1, - 1, 2, 2, 3, 1, 3, 1, 0, - 1, 1, 1, 2, 1, 0, 1, 0, - 3, 3, 1, 2, 2, 2, 0, 5, - 1, 1, 1, 0, 1, 0, 1, 1, - 1, 0, 1, 2, 1, 1, 1, 1, - 2, 1, 1, 4, 1, 1, 1, 1, - 2, 4, 1, 2, 1, 2, 2, 6, - 6, 3, 2, 5, 1, 3, 2, 3, - 5, 3, 3, 1, 3, 1, 1, 1, - 1, 2, 1, 4, 0, 0, 2, 3, - 1, 1, 2, 2, 1, 2, 1, 1, - 2, 1, 2, 1, 1, 2, 2, 2, - 1, 1, 3, 2, 0, 0, 0, 0, - 0, 0, 1, 0, 2, 1, 0, 2, - 0, 1, 1, 3, 1, 2, 0, 6, - 2, 1, 1, 2, 0, 1, 0, 1, - 0, 1, 1, 0, 0, 2, 1, 1, - 1, 2, 3, 1, 1, 2, 2, 1, - 1, 3, 2, 2, 0, 0, 2, 0, - 0, 0, 0, 1, 4, 1, 1, 1, - 1, 0, 2, 1, 2, 2, 1, 2, - 2, 1, 1, 3, 6, 1, 1, 1, - 2, 2, 1, 1, 1, 3, 1, 2, - 3, 1, 1, 2, 2, 3, 1, 3, - 1, 0, 1, 1, 1, 2, 1, 0, - 1, 0, 3, 3, 1, 2, 2, 2, - 0, 5, 1, 1, 1, 4, 1, 1, - 2, 2, 1, 3, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 0, - 1, 1, 0, 1, 0, 0, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 0, - 1, 0, 1, 1, 0, 1, 1, 0, - 1, 0, 1, 3, 1, 2, 2, 1, - 0, 0, 1, 0, 0, 0, 0, 0, - 1, 0, 1, 1, 2, 2, 2, 1, - 4, 2, 1, 5, 3, 1, 5, 1, - 3, 2, 1, 3, 7, 5, 3, 3, - 5, 1, 1, 1, 1, 1, 3, 3, - 1, 0, 0, 0, 0, 0, 1, 1, - 1, 3, 2, 4, 1, 1, 2, 1, - 1, 1, 1, 3, 1, 1, 1, 3, - 1, 1, 2, 1, 2, 1, 2, 4, - 3, 4, 4, 2, 0, 0, 1, 3, - 2, 2, 2, 2, 2, 2, 2, 3, - 5, 4, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 1, 1, 4, 1, - 1, 1, 1, 2, 4, 1, 2, 1, - 2, 2, 6, 6, 3, 2, 5, 1, - 3, 2, 3, 5, 3, 3, 1, 3, - 1, 1, 1, 1, 2, 1, 4, 0, - 0, 2, 3, 1, 1, 2, 2, 1, - 2, 1, 1, 2, 1, 2, 1, 1, - 2, 2, 2, 1, 1, 3, 2, 0, - 0, 0, 0, 0, 0, 1, 0, 2, - 1, 0, 2, 0, 1, 1, 3, 1, - 2, 0, 6, 2, 1, 1, 2, 0, - 1, 0, 1, 0, 1, 1, 0, 0, - 2, 1, 1, 1, 2, 3, 1, 1, - 2, 2, 1, 1, 3, 2, 2, 0, - 0, 2, 0, 0, 0, 0, 1, 4, - 1, 1, 1, 1, 0, 2, 1, 2, - 2, 1, 2, 2, 1, 1, 3, 6, - 1, 1, 1, 2, 2, 1, 1, 1, - 3, 1, 2, 3, 1, 1, 2, 2, - 3, 1, 3, 1, 0, 1, 1, 1, - 2, 1, 0, 1, 0, 3, 3, 1, - 2, 2, 2, 0, 5, 1, 1, 1, - 4, 1, 1, 2, 2, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 0, 1, 1, 0, 1, 0, - 0, 1, 0, 1, 0, 1, 1, 0, - 1, 1, 0, 1, 0, 1, 3, 1, - 2, 2, 1, 0, 0, 1, 0, 0, - 0, 0, 0, 1, 0, 1, 1, 2, - 2, 1, 1, 5, 1, 1, 1, 1, - 2, 1, 1, 4, 1, 1, 1, 1, - 2, 4, 1, 2, 1, 2, 2, 6, - 6, 3, 2, 5, 1, 3, 2, 3, - 5, 3, 3, 1, 3, 1, 1, 1, - 1, 2, 1, 4, 0, 0, 2, 3, - 1, 1, 2, 2, 1, 2, 1, 1, - 2, 1, 2, 1, 1, 2, 2, 2, - 1, 1, 3, 2, 0, 1, 1, 1, - 0, 1, 0, 1, 1, 0, 2, 1, - 1, 1, 2, 3, 1, 1, 2, 2, - 1, 1, 3, 2, 2, 0, 0, 2, - 0, 0, 0, 0, 1, 4, 1, 1, - 1, 1, 0, 2, 1, 2, 2, 1, - 2, 2, 1, 1, 3, 6, 1, 1, - 1, 2, 2, 1, 1, 1, 3, 1, - 2, 3, 1, 1, 2, 2, 3, 1, - 3, 1, 0, 1, 1, 1, 2, 1, - 0, 1, 0, 3, 3, 1, 2, 2, - 2, 0, 5, 1, 1, 1, 0, 1, - 0, 1, 1, 1, 0, 3, 1, 5, - 3, 1, 5, 1, 3, 2, 1, 3, - 7, 5, 3, 3, 5, 1, 1, 1, - 1, 1, 3, 3, 1, 0, 0, 0, - 0, 0, 1, 1, 1, 3, 2, 4, - 1, 1, 3, 1, 1, 1, 1, 3, - 1, 1, 1, 3, 1, 1, 3, 1, - 3, 1, 3, 4, 3, 4, 4, 2, - 1, 1, 1, 1, 2, 1, 1, 4, - 1, 1, 1, 1, 2, 4, 1, 2, - 1, 2, 2, 6, 6, 3, 2, 5, - 1, 3, 2, 3, 5, 3, 3, 1, - 3, 1, 1, 1, 1, 2, 1, 4, - 0, 0, 2, 3, 1, 1, 2, 2, - 1, 2, 1, 1, 2, 1, 2, 1, - 1, 2, 2, 2, 1, 1, 3, 2, - 0, 0, 0, 0, 0, 0, 1, 0, - 2, 1, 0, 2, 0, 1, 1, 3, - 1, 2, 0, 6, 2, 1, 1, 2, - 0, 1, 0, 1, 0, 1, 1, 0, - 0, 2, 1, 1, 1, 2, 3, 1, - 1, 2, 2, 1, 1, 3, 2, 2, - 0, 0, 2, 0, 0, 0, 0, 1, - 4, 1, 1, 1, 1, 0, 2, 1, - 2, 2, 1, 2, 2, 1, 1, 3, - 6, 1, 1, 1, 2, 2, 1, 1, - 1, 3, 1, 2, 3, 1, 1, 2, - 2, 3, 1, 3, 1, 0, 1, 1, - 1, 2, 1, 0, 1, 0, 3, 3, - 1, 2, 2, 2, 0, 5, 1, 1, - 1, 4, 1, 1, 2, 2, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 0, 1, 1, 0, 1, - 0, 0, 1, 0, 0, 1, 3, 2, - 2, 2, 2, 2, 2, 2, 3, 5, - 4, 2, 1, 1, 1, 2, 2, 1, - 1, 2, 0, 6, 0, 0, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -} - -var _graphclust_index_offsets []int16 = []int16{ - 0, 0, 2, 4, 6, 8, 11, 15, - 17, 20, 25, 28, 30, 32, 35, 64, - 69, 71, 74, 77, 81, 85, 92, 99, - 105, 109, 115, 118, 123, 126, 132, 138, - 142, 148, 150, 156, 159, 161, 164, 166, - 172, 174, 179, 181, 204, 207, 211, 216, - 218, 221, 224, 226, 229, 231, 234, 237, - 239, 245, 247, 249, 252, 255, 258, 260, - 262, 268, 271, 277, 279, 281, 283, 285, - 287, 290, 292, 294, 310, 313, 315, 317, - 323, 326, 330, 332, 334, 337, 340, 342, - 346, 351, 355, 358, 362, 364, 367, 375, - 384, 386, 388, 390, 396, 398, 400, 402, - 404, 439, 442, 444, 447, 450, 453, 456, - 460, 463, 465, 469, 477, 479, 482, 484, - 487, 490, 492, 494, 496, 500, 503, 507, - 511, 514, 516, 519, 522, 527, 530, 534, - 536, 542, 544, 546, 549, 552, 555, 557, - 559, 566, 570, 574, 576, 579, 582, 586, - 592, 598, 600, 602, 604, 606, 608, 610, - 616, 618, 620, 621, 623, 629, 631, 633, - 635, 638, 642, 644, 647, 652, 655, 657, - 659, 662, 691, 696, 698, 701, 704, 708, - 712, 719, 726, 732, 736, 742, 745, 750, - 753, 759, 765, 769, 775, 777, 783, 786, - 788, 791, 793, 799, 801, 806, 808, 831, - 834, 838, 843, 845, 848, 851, 853, 856, - 858, 861, 864, 866, 872, 874, 876, 879, - 882, 885, 887, 889, 895, 898, 904, 907, - 910, 935, 939, 941, 943, 946, 949, 952, - 954, 958, 960, 963, 966, 970, 972, 975, - 976, 985, 993, 998, 1000, 1003, 1006, 1008, - 1010, 1012, 1016, 1019, 1021, 1024, 1040, 1043, - 1045, 1047, 1053, 1056, 1060, 1062, 1064, 1067, - 1070, 1072, 1076, 1081, 1085, 1088, 1092, 1094, - 1097, 1105, 1114, 1116, 1118, 1120, 1126, 1128, - 1130, 1132, 1134, 1169, 1172, 1174, 1177, 1180, - 1183, 1186, 1190, 1193, 1195, 1199, 1207, 1209, - 1212, 1214, 1217, 1220, 1222, 1224, 1226, 1230, - 1233, 1237, 1241, 1244, 1246, 1249, 1252, 1257, - 1260, 1264, 1266, 1272, 1274, 1276, 1279, 1282, - 1285, 1287, 1289, 1296, 1300, 1304, 1306, 1309, - 1312, 1316, 1322, 1328, 1330, 1332, 1334, 1371, - 1373, 1376, 1379, 1383, 1385, 1391, 1393, 1395, - 1397, 1399, 1401, 1403, 1405, 1408, 1411, 1414, - 1417, 1419, 1425, 1427, 1430, 1432, 1440, 1442, - 1444, 1448, 1450, 1452, 1454, 1457, 1461, 1463, - 1466, 1471, 1474, 1476, 1478, 1481, 1510, 1515, - 1517, 1520, 1523, 1527, 1531, 1538, 1545, 1551, - 1555, 1561, 1564, 1569, 1572, 1578, 1584, 1588, - 1594, 1596, 1602, 1605, 1607, 1610, 1612, 1618, - 1620, 1625, 1627, 1650, 1653, 1657, 1662, 1664, - 1667, 1670, 1672, 1675, 1677, 1680, 1683, 1685, - 1691, 1693, 1695, 1698, 1701, 1704, 1706, 1708, - 1714, 1717, 1723, 1725, 1727, 1729, 1731, 1733, - 1736, 1738, 1740, 1756, 1759, 1761, 1763, 1769, - 1772, 1776, 1778, 1780, 1783, 1786, 1788, 1792, - 1797, 1801, 1804, 1808, 1810, 1813, 1821, 1830, - 1832, 1834, 1836, 1842, 1844, 1846, 1848, 1850, - 1885, 1888, 1890, 1893, 1896, 1899, 1902, 1906, - 1909, 1911, 1915, 1923, 1925, 1928, 1930, 1933, - 1936, 1938, 1940, 1942, 1946, 1949, 1953, 1957, - 1960, 1962, 1965, 1968, 1973, 1976, 1980, 1982, - 1988, 1990, 1992, 1995, 1998, 2001, 2003, 2005, - 2012, 2016, 2020, 2022, 2025, 2028, 2032, 2038, - 2044, 2046, 2048, 2050, 2052, 2054, 2056, 2062, - 2064, 2066, 2067, 2069, 2074, 2076, 2078, 2080, - 2083, 2087, 2089, 2092, 2097, 2100, 2102, 2104, - 2107, 2136, 2141, 2143, 2146, 2149, 2153, 2157, - 2164, 2171, 2177, 2181, 2187, 2190, 2195, 2198, - 2204, 2210, 2214, 2220, 2222, 2228, 2231, 2233, - 2236, 2238, 2244, 2246, 2251, 2253, 2276, 2279, - 2283, 2288, 2290, 2293, 2296, 2298, 2301, 2303, - 2306, 2309, 2311, 2317, 2319, 2321, 2324, 2327, - 2330, 2332, 2334, 2340, 2343, 2349, 2352, 2355, - 2380, 2384, 2386, 2388, 2391, 2394, 2397, 2399, - 2403, 2405, 2408, 2411, 2415, 2417, 2420, 2421, - 2430, 2438, 2443, 2445, 2448, 2451, 2453, 2455, - 2457, 2461, 2464, 2466, 2469, 2485, 2488, 2490, - 2492, 2498, 2501, 2505, 2507, 2509, 2512, 2515, - 2517, 2521, 2526, 2530, 2533, 2537, 2539, 2542, - 2550, 2559, 2561, 2563, 2565, 2571, 2573, 2575, - 2577, 2579, 2614, 2617, 2619, 2622, 2625, 2628, - 2631, 2635, 2638, 2640, 2644, 2652, 2654, 2657, - 2659, 2662, 2665, 2667, 2669, 2671, 2675, 2678, - 2682, 2686, 2689, 2691, 2694, 2697, 2702, 2705, - 2709, 2711, 2717, 2719, 2721, 2724, 2727, 2730, - 2732, 2734, 2741, 2745, 2749, 2751, 2754, 2757, - 2761, 2767, 2773, 2775, 2777, 2779, 2816, 2818, - 2821, 2824, 2828, 2830, 2836, 2838, 2840, 2842, - 2844, 2846, 2848, 2850, 2853, 2856, 2859, 2862, - 2864, 2870, 2872, 2875, 2877, 2885, 2887, 2889, - 2893, 2896, 2899, 2903, 2906, 2909, 2916, 2918, - 2944, 2946, 2972, 2974, 2976, 3001, 3003, 3005, - 3007, 3009, 3012, 3014, 3018, 3020, 3051, 3054, - 3059, 3084, 3087, 3089, 3092, 3095, 3099, 3102, - 3105, 3109, 3110, 3166, 3222, 3252, 3256, 3259, - 3281, 3287, 3291, 3295, 3301, 3306, 3309, 3316, - 3319, 3324, 3329, 3333, 3337, 3347, 3358, 3365, - 3369, 3375, 3379, 3383, 3387, 3391, 3393, 3411, - 3415, 3420, 3423, 3426, 3430, 3433, 3436, 3440, - 3496, 3552, 3583, 3587, 3592, 3596, 3598, 3602, - 3609, 3619, 3622, 3625, 3629, 3632, 3635, 3638, - 3642, 3645, 3648, 3651, 3654, 3657, 3660, 3663, - 3702, 3707, 3712, 3718, 3721, 3729, 3732, 3734, - 3742, 3745, 3748, 3751, 3754, 3757, 3760, 3763, - 3767, 3773, 3778, 3782, 3785, 3787, 3790, 3795, - 3797, 3800, 3803, 3807, 3810, 3813, 3820, 3822, - 3824, 3826, 3828, 3831, 3835, 3837, 3840, 3845, - 3848, 3850, 3852, 3855, 3884, 3889, 3891, 3894, - 3897, 3901, 3905, 3912, 3919, 3925, 3929, 3935, - 3938, 3943, 3946, 3952, 3958, 3962, 3968, 3970, - 3976, 3979, 3981, 3984, 3986, 3992, 3994, 3999, - 4001, 4024, 4027, 4031, 4036, 4038, 4041, 4044, - 4046, 4049, 4051, 4054, 4057, 4059, 4065, 4067, - 4069, 4072, 4075, 4078, 4080, 4082, 4088, 4091, - 4097, 4100, 4103, 4128, 4132, 4134, 4136, 4139, - 4142, 4145, 4147, 4151, 4153, 4156, 4159, 4163, - 4165, 4168, 4169, 4178, 4186, 4191, 4193, 4196, - 4199, 4201, 4203, 4205, 4209, 4212, 4214, 4217, - 4233, 4236, 4238, 4240, 4246, 4249, 4253, 4255, - 4257, 4260, 4263, 4265, 4269, 4274, 4278, 4281, - 4285, 4287, 4290, 4298, 4307, 4309, 4311, 4313, - 4319, 4321, 4323, 4325, 4327, 4362, 4365, 4367, - 4370, 4373, 4376, 4379, 4383, 4386, 4388, 4392, - 4400, 4402, 4405, 4407, 4410, 4413, 4415, 4417, - 4419, 4423, 4426, 4430, 4434, 4437, 4439, 4442, - 4445, 4450, 4453, 4457, 4459, 4465, 4467, 4469, - 4472, 4475, 4478, 4480, 4482, 4489, 4493, 4497, - 4499, 4502, 4505, 4509, 4515, 4521, 4523, 4525, - 4527, 4564, 4566, 4569, 4572, 4576, 4578, 4584, - 4586, 4588, 4590, 4592, 4594, 4596, 4598, 4601, - 4604, 4607, 4610, 4612, 4618, 4620, 4623, 4625, - 4633, 4635, 4637, 4663, 4665, 4691, 4693, 4695, - 4720, 4722, 4724, 4726, 4728, 4731, 4733, 4737, - 4739, 4770, 4773, 4778, 4803, 4806, 4808, 4811, - 4814, 4818, 4821, 4824, 4828, 4829, 4885, 4941, - 4971, 4975, 4978, 5000, 5009, 5011, 5013, 5015, - 5018, 5022, 5024, 5027, 5032, 5035, 5037, 5039, - 5042, 5071, 5076, 5078, 5081, 5084, 5088, 5092, - 5099, 5106, 5112, 5116, 5122, 5125, 5130, 5133, - 5139, 5145, 5149, 5155, 5157, 5163, 5166, 5168, - 5171, 5173, 5179, 5181, 5186, 5188, 5211, 5214, - 5218, 5223, 5225, 5228, 5231, 5233, 5236, 5238, - 5241, 5244, 5246, 5252, 5254, 5256, 5259, 5262, - 5265, 5267, 5269, 5275, 5278, 5284, 5286, 5288, - 5290, 5292, 5294, 5297, 5299, 5301, 5317, 5320, - 5322, 5324, 5330, 5333, 5337, 5339, 5341, 5344, - 5347, 5349, 5353, 5358, 5362, 5365, 5369, 5371, - 5374, 5382, 5391, 5393, 5395, 5397, 5403, 5405, - 5407, 5409, 5411, 5446, 5449, 5451, 5454, 5457, - 5460, 5463, 5467, 5470, 5472, 5476, 5484, 5486, - 5489, 5491, 5494, 5497, 5499, 5501, 5503, 5507, - 5510, 5514, 5518, 5521, 5523, 5526, 5529, 5534, - 5537, 5541, 5543, 5549, 5551, 5553, 5556, 5559, - 5562, 5564, 5566, 5573, 5577, 5581, 5583, 5586, - 5589, 5593, 5599, 5605, 5607, 5609, 5611, 5613, - 5615, 5617, 5623, 5625, 5627, 5628, 5633, 5637, - 5643, 5648, 5651, 5658, 5661, 5666, 5671, 5675, - 5679, 5689, 5700, 5707, 5711, 5717, 5721, 5725, - 5729, 5733, 5735, 5753, 5757, 5762, 5765, 5768, - 5772, 5775, 5778, 5782, 5838, 5894, 5925, 5929, - 5934, 5938, 5941, 5946, 5953, 5963, 5966, 5969, - 5973, 5976, 5979, 5982, 5986, 5989, 5992, 5996, - 5999, 6003, 6006, 6010, 6049, 6054, 6059, 6065, - 6068, 6070, 6072, 6074, 6077, 6081, 6083, 6086, - 6091, 6094, 6096, 6098, 6101, 6130, 6135, 6137, - 6140, 6143, 6147, 6151, 6158, 6165, 6171, 6175, - 6181, 6184, 6189, 6192, 6198, 6204, 6208, 6214, - 6216, 6222, 6225, 6227, 6230, 6232, 6238, 6240, - 6245, 6247, 6270, 6273, 6277, 6282, 6284, 6287, - 6290, 6292, 6295, 6297, 6300, 6303, 6305, 6311, - 6313, 6315, 6318, 6321, 6324, 6326, 6328, 6334, - 6337, 6343, 6346, 6349, 6374, 6378, 6380, 6382, - 6385, 6388, 6391, 6393, 6397, 6399, 6402, 6405, - 6409, 6411, 6414, 6415, 6424, 6432, 6437, 6439, - 6442, 6445, 6447, 6449, 6451, 6455, 6458, 6460, - 6463, 6479, 6482, 6484, 6486, 6492, 6495, 6499, - 6501, 6503, 6506, 6509, 6511, 6515, 6520, 6524, - 6527, 6531, 6533, 6536, 6544, 6553, 6555, 6557, - 6559, 6565, 6567, 6569, 6571, 6573, 6608, 6611, - 6613, 6616, 6619, 6622, 6625, 6629, 6632, 6634, - 6638, 6646, 6648, 6651, 6653, 6656, 6659, 6661, - 6663, 6665, 6669, 6672, 6676, 6680, 6683, 6685, - 6688, 6691, 6696, 6699, 6703, 6705, 6711, 6713, - 6715, 6718, 6721, 6724, 6726, 6728, 6735, 6739, - 6743, 6745, 6748, 6751, 6755, 6761, 6767, 6769, - 6771, 6773, 6810, 6812, 6815, 6818, 6822, 6824, - 6830, 6832, 6834, 6836, 6838, 6840, 6842, 6844, - 6847, 6850, 6853, 6856, 6858, 6864, 6866, 6869, - 6871, 6879, 6881, 6883, 6891, 6894, 6896, 6904, - 6907, 6910, 6913, 6916, 6919, 6922, 6925, 6929, - 6935, 6940, 6944, 6947, 6949, 6952, 6960, 6963, - 6965, 6967, 6970, 6971, 6996, 7017, 7038, 7060, - 7080, 7101, 7122, 7144, 7168, 7190, 7212, 7234, - 7255, 7279, 7300, 7322, 7344, 7366, 7388, 7409, - 7430, 7451, -} - -var _graphclust_indicies []int16 = []int16{ - 0, 1, 3, 2, 2, 3, 3, 2, - 3, 3, 2, 3, 3, 3, 2, 3, - 2, 3, 3, 2, 3, 3, 3, 3, - 2, 3, 3, 2, 2, 3, 3, 2, - 3, 3, 2, 4, 5, 6, 7, 8, - 10, 11, 12, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 9, 13, 2, - 3, 3, 3, 3, 2, 3, 2, 3, - 3, 2, 2, 2, 3, 2, 2, 2, - 3, 3, 3, 3, 2, 2, 2, 2, - 2, 2, 2, 3, 2, 2, 2, 2, - 2, 2, 3, 2, 2, 2, 2, 2, - 3, 3, 3, 3, 2, 3, 3, 3, - 3, 3, 2, 3, 3, 2, 3, 3, - 3, 3, 2, 3, 3, 2, 2, 2, - 2, 2, 2, 3, 3, 3, 3, 3, - 3, 2, 3, 3, 3, 2, 2, 2, - 2, 2, 2, 3, 3, 2, 3, 3, - 3, 3, 3, 2, 3, 3, 2, 3, - 2, 3, 3, 2, 3, 2, 3, 3, - 3, 3, 3, 2, 3, 2, 3, 3, - 3, 3, 2, 3, 2, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 2, 3, 3, 2, 3, - 3, 3, 2, 3, 3, 3, 3, 2, - 3, 2, 3, 3, 2, 3, 3, 2, - 3, 2, 2, 2, 3, 3, 2, 3, - 3, 2, 3, 3, 2, 3, 2, 3, - 3, 3, 3, 3, 2, 3, 2, 2, - 3, 3, 3, 2, 2, 2, 3, 3, - 3, 2, 3, 2, 3, 2, 3, 3, - 3, 3, 3, 2, 3, 3, 2, 54, - 55, 56, 57, 58, 2, 3, 2, 3, - 2, 3, 2, 3, 2, 3, 2, 59, - 60, 2, 3, 2, 3, 2, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 2, 3, 3, - 2, 3, 2, 3, 2, 3, 3, 3, - 3, 3, 2, 3, 3, 2, 2, 2, - 2, 3, 3, 2, 3, 2, 3, 3, - 2, 2, 2, 3, 3, 2, 3, 3, - 3, 2, 3, 3, 3, 3, 2, 3, - 3, 3, 2, 3, 3, 2, 76, 77, - 62, 2, 3, 2, 3, 3, 2, 78, - 79, 80, 81, 82, 83, 84, 2, 85, - 86, 87, 88, 89, 90, 91, 92, 2, - 3, 2, 3, 2, 3, 2, 3, 3, - 3, 3, 3, 2, 3, 2, 3, 2, - 3, 2, 3, 2, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, - 105, 45, 106, 107, 108, 45, 46, 109, - 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 2, 3, - 3, 2, 2, 3, 2, 2, 3, 3, - 3, 2, 3, 3, 2, 3, 3, 2, - 2, 2, 2, 3, 3, 3, 2, 3, - 2, 3, 3, 3, 2, 3, 3, 3, - 3, 3, 3, 3, 2, 3, 2, 3, - 3, 2, 2, 3, 3, 3, 2, 2, - 2, 3, 3, 2, 3, 2, 3, 2, - 3, 3, 3, 2, 3, 3, 2, 3, - 3, 3, 2, 3, 3, 3, 2, 3, - 3, 2, 3, 2, 3, 3, 2, 3, - 3, 2, 3, 3, 3, 3, 2, 2, - 2, 3, 3, 3, 3, 2, 3, 2, - 124, 125, 126, 127, 128, 2, 3, 2, - 3, 2, 3, 3, 2, 2, 2, 3, - 3, 3, 2, 129, 2, 3, 2, 130, - 131, 132, 133, 134, 135, 2, 3, 3, - 3, 2, 2, 2, 2, 3, 3, 2, - 3, 3, 2, 2, 2, 3, 3, 3, - 3, 2, 136, 125, 137, 138, 139, 2, - 3, 3, 3, 3, 3, 2, 3, 2, - 3, 2, 3, 2, 140, 2, 3, 2, - 141, 2, 142, 143, 144, 146, 145, 2, - 3, 2, 2, 3, 3, 3, 1, 148, - 147, 148, 147, 3, 1, 149, 148, 150, - 148, 148, 150, 148, 148, 150, 148, 148, - 148, 150, 148, 150, 148, 148, 150, 148, - 148, 148, 148, 150, 148, 148, 150, 150, - 148, 148, 150, 148, 148, 150, 151, 152, - 153, 154, 155, 157, 158, 159, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, - 156, 160, 150, 148, 148, 148, 148, 150, - 148, 150, 148, 148, 150, 150, 150, 148, - 150, 150, 150, 148, 148, 148, 148, 150, - 150, 150, 150, 150, 150, 150, 148, 150, - 150, 150, 150, 150, 150, 148, 150, 150, - 150, 150, 150, 148, 148, 148, 148, 150, - 148, 148, 148, 148, 148, 150, 148, 148, - 150, 148, 148, 148, 148, 150, 148, 148, - 150, 150, 150, 150, 150, 150, 148, 148, - 148, 148, 148, 148, 150, 148, 148, 148, - 150, 150, 150, 150, 150, 150, 148, 148, - 150, 148, 148, 148, 148, 148, 150, 148, - 148, 150, 148, 150, 148, 148, 150, 148, - 150, 148, 148, 148, 148, 148, 150, 148, - 150, 148, 148, 148, 148, 150, 148, 150, - 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 150, 148, - 148, 150, 148, 148, 148, 150, 148, 148, - 148, 148, 150, 148, 150, 148, 148, 150, - 148, 148, 150, 148, 150, 150, 150, 148, - 148, 150, 148, 148, 150, 148, 148, 150, - 148, 150, 148, 148, 148, 148, 148, 150, - 148, 150, 150, 148, 148, 148, 150, 150, - 150, 148, 148, 148, 150, 148, 150, 148, - 150, 148, 148, 148, 148, 148, 150, 148, - 148, 150, 201, 202, 203, 204, 205, 150, - 148, 206, 150, 148, 148, 150, 207, 208, - 202, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 203, 204, 205, 150, 148, - 206, 148, 150, 148, 150, 148, 150, 148, - 148, 150, 148, 148, 150, 148, 148, 150, - 148, 150, 148, 148, 148, 150, 148, 150, - 148, 148, 150, 148, 148, 150, 148, 148, - 148, 150, 148, 149, 148, 148, 150, 148, - 150, 150, 150, 150, 150, 150, 150, 150, - 148, 148, 148, 148, 148, 148, 148, 148, - 150, 148, 148, 148, 148, 150, 148, 150, - 148, 148, 150, 148, 148, 150, 148, 150, - 148, 150, 148, 150, 227, 228, 229, 150, - 148, 148, 150, 148, 150, 148, 148, 150, - 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 150, - 148, 148, 150, 148, 150, 148, 150, 148, - 148, 148, 148, 148, 150, 148, 148, 150, - 150, 150, 150, 148, 148, 150, 148, 150, - 148, 148, 150, 150, 150, 148, 148, 150, - 148, 148, 148, 150, 148, 148, 148, 148, - 150, 148, 148, 148, 150, 148, 148, 150, - 245, 246, 231, 150, 148, 150, 148, 148, - 150, 247, 248, 249, 250, 251, 252, 253, - 150, 254, 255, 256, 257, 258, 259, 260, - 261, 150, 148, 150, 148, 150, 148, 150, - 148, 148, 148, 148, 148, 150, 148, 150, - 148, 150, 148, 150, 148, 150, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 192, 275, 276, 277, 192, - 193, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, - 150, 148, 148, 150, 150, 148, 150, 150, - 148, 148, 148, 150, 148, 148, 150, 148, - 148, 150, 150, 150, 150, 148, 148, 148, - 150, 148, 150, 148, 148, 148, 150, 148, - 148, 148, 148, 148, 148, 148, 150, 148, - 150, 148, 148, 150, 150, 148, 148, 148, - 150, 150, 150, 148, 148, 150, 148, 150, - 148, 150, 148, 148, 148, 150, 148, 148, - 150, 148, 148, 148, 150, 148, 148, 148, - 150, 148, 148, 150, 148, 150, 148, 148, - 150, 148, 148, 150, 148, 148, 148, 148, - 150, 150, 150, 148, 148, 148, 148, 150, - 148, 150, 293, 294, 295, 296, 297, 150, - 148, 150, 148, 150, 148, 148, 150, 150, - 150, 148, 148, 148, 150, 298, 150, 148, - 150, 299, 300, 301, 302, 303, 304, 150, - 148, 148, 148, 150, 150, 150, 150, 148, - 148, 150, 148, 148, 150, 150, 150, 148, - 148, 148, 148, 150, 305, 294, 306, 307, - 308, 150, 148, 148, 148, 148, 148, 150, - 148, 150, 148, 150, 148, 150, 309, 310, - 311, 312, 313, 314, 315, 316, 310, 309, - 310, 309, 310, 218, 309, 317, 318, 310, - 309, 319, 320, 321, 322, 323, 324, 310, - 325, 326, 309, 310, 309, 317, 220, 218, - 218, 220, 150, 149, 148, 148, 148, 150, - 148, 148, 150, 148, 148, 148, 150, 150, - 148, 148, 148, 148, 148, 148, 150, 148, - 150, 150, 148, 148, 150, 150, 148, 148, - 150, 148, 150, 148, 150, 148, 148, 150, - 148, 148, 150, 148, 148, 150, 148, 148, - 150, 327, 150, 328, 310, 309, 329, 220, - 150, 148, 150, 330, 228, 150, 148, 150, - 247, 248, 249, 250, 251, 252, 331, 150, - 332, 150, 148, 150, 147, 333, 3, 1, - 335, 334, 334, 335, 335, 334, 335, 335, - 334, 335, 335, 335, 334, 335, 334, 335, - 335, 334, 335, 335, 335, 335, 334, 335, - 335, 334, 334, 335, 335, 334, 335, 335, - 334, 336, 337, 338, 339, 340, 342, 343, - 344, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 341, 345, 334, 335, 335, - 335, 335, 334, 335, 334, 335, 335, 334, - 334, 334, 335, 334, 334, 334, 335, 335, - 335, 335, 334, 334, 334, 334, 334, 334, - 334, 335, 334, 334, 334, 334, 334, 334, - 335, 334, 334, 334, 334, 334, 335, 335, - 335, 335, 334, 335, 335, 335, 335, 335, - 334, 335, 335, 334, 335, 335, 335, 335, - 334, 335, 335, 334, 334, 334, 334, 334, - 334, 335, 335, 335, 335, 335, 335, 334, - 335, 335, 335, 334, 334, 334, 334, 334, - 334, 335, 335, 334, 335, 335, 335, 335, - 335, 334, 335, 335, 334, 335, 334, 335, - 335, 334, 335, 334, 335, 335, 335, 335, - 335, 334, 335, 334, 335, 335, 335, 335, - 334, 335, 334, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, - 385, 334, 335, 335, 334, 335, 335, 335, - 334, 335, 335, 335, 335, 334, 335, 334, - 335, 335, 334, 335, 335, 334, 335, 334, - 334, 334, 335, 335, 334, 335, 335, 334, - 335, 335, 334, 335, 334, 335, 335, 335, - 335, 335, 334, 335, 334, 334, 335, 335, - 335, 334, 334, 334, 335, 335, 335, 334, - 335, 334, 335, 334, 335, 335, 335, 335, - 335, 334, 335, 335, 334, 386, 387, 388, - 389, 390, 334, 335, 334, 335, 334, 335, - 334, 335, 334, 335, 334, 391, 392, 334, - 335, 334, 335, 334, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 334, 335, 335, 334, 335, - 334, 335, 334, 335, 335, 335, 335, 335, - 334, 335, 335, 334, 334, 334, 334, 335, - 335, 334, 335, 334, 335, 335, 334, 334, - 334, 335, 335, 334, 335, 335, 335, 334, - 335, 335, 335, 335, 334, 335, 335, 335, - 334, 335, 335, 334, 408, 409, 394, 334, - 335, 334, 335, 335, 334, 410, 411, 412, - 413, 414, 415, 416, 334, 417, 418, 419, - 420, 421, 422, 423, 424, 334, 335, 334, - 335, 334, 335, 334, 335, 335, 335, 335, - 335, 334, 335, 334, 335, 334, 335, 334, - 335, 334, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 377, - 438, 439, 440, 377, 378, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 334, 335, 335, 334, - 334, 335, 334, 334, 335, 335, 335, 334, - 335, 335, 334, 335, 335, 334, 334, 334, - 334, 335, 335, 335, 334, 335, 334, 335, - 335, 335, 334, 335, 335, 335, 335, 335, - 335, 335, 334, 335, 334, 335, 335, 334, - 334, 335, 335, 335, 334, 334, 334, 335, - 335, 334, 335, 334, 335, 334, 335, 335, - 335, 334, 335, 335, 334, 335, 335, 335, - 334, 335, 335, 335, 334, 335, 335, 334, - 335, 334, 335, 335, 334, 335, 335, 334, - 335, 335, 335, 335, 334, 334, 334, 335, - 335, 335, 335, 334, 335, 334, 456, 457, - 458, 459, 460, 334, 335, 334, 335, 334, - 335, 335, 334, 334, 334, 335, 335, 335, - 334, 461, 334, 335, 334, 462, 463, 464, - 465, 466, 467, 334, 335, 335, 335, 334, - 334, 334, 334, 335, 335, 334, 335, 335, - 334, 334, 334, 335, 335, 335, 335, 334, - 468, 457, 469, 470, 471, 334, 335, 335, - 335, 335, 335, 334, 335, 334, 335, 334, - 335, 334, 472, 334, 335, 334, 473, 334, - 474, 475, 476, 478, 477, 334, 335, 334, - 334, 335, 335, 335, 334, 479, 479, 335, - 335, 334, 479, 334, 334, 479, 479, 334, - 479, 479, 334, 479, 479, 479, 334, 479, - 334, 479, 479, 334, 479, 479, 479, 479, - 334, 479, 479, 334, 334, 479, 479, 334, - 479, 479, 334, 480, 481, 482, 483, 484, - 486, 487, 488, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 485, 489, 334, - 479, 479, 479, 479, 334, 479, 334, 479, - 479, 334, 334, 334, 479, 334, 334, 334, - 479, 479, 479, 479, 334, 334, 334, 334, - 334, 334, 334, 479, 334, 334, 334, 334, - 334, 334, 479, 334, 334, 334, 334, 334, - 479, 479, 479, 479, 334, 479, 479, 479, - 479, 479, 334, 479, 479, 334, 479, 479, - 479, 479, 334, 479, 479, 334, 334, 334, - 334, 334, 334, 479, 479, 479, 479, 479, - 479, 334, 479, 479, 479, 334, 334, 334, - 334, 334, 334, 479, 479, 334, 479, 479, - 479, 479, 479, 334, 479, 479, 334, 479, - 334, 479, 479, 334, 479, 334, 479, 479, - 479, 479, 479, 334, 479, 334, 479, 479, - 479, 479, 334, 479, 334, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 334, 479, 479, 334, 479, - 479, 479, 334, 479, 479, 479, 479, 334, - 479, 334, 479, 479, 334, 479, 479, 334, - 479, 334, 334, 334, 479, 479, 334, 479, - 479, 334, 479, 479, 334, 479, 334, 479, - 479, 479, 479, 479, 334, 479, 334, 334, - 479, 479, 479, 334, 334, 334, 479, 479, - 479, 334, 479, 334, 479, 334, 479, 479, - 479, 479, 479, 334, 479, 479, 334, 530, - 531, 532, 533, 534, 334, 479, 535, 334, - 479, 479, 334, 536, 537, 531, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, - 532, 533, 534, 334, 479, 535, 479, 334, - 479, 334, 479, 334, 479, 479, 334, 479, - 479, 334, 479, 479, 334, 479, 334, 479, - 479, 479, 334, 479, 334, 479, 479, 334, - 479, 479, 334, 479, 479, 479, 334, 479, - 334, 479, 479, 334, 479, 334, 334, 334, - 334, 334, 334, 334, 334, 479, 479, 479, - 479, 479, 479, 479, 479, 334, 479, 479, - 479, 479, 334, 479, 334, 479, 479, 334, - 479, 479, 334, 479, 334, 479, 334, 479, - 334, 556, 557, 558, 334, 479, 479, 334, - 479, 334, 479, 479, 334, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 334, 479, 479, 334, - 479, 334, 479, 334, 479, 479, 479, 479, - 479, 334, 479, 479, 334, 334, 334, 334, - 479, 479, 334, 479, 334, 479, 479, 334, - 334, 334, 479, 479, 334, 479, 479, 479, - 334, 479, 479, 479, 479, 334, 479, 479, - 479, 334, 479, 479, 334, 574, 575, 560, - 334, 479, 334, 479, 479, 334, 576, 577, - 578, 579, 580, 581, 582, 334, 583, 584, - 585, 586, 587, 588, 589, 590, 334, 479, - 334, 479, 334, 479, 334, 479, 479, 479, - 479, 479, 334, 479, 334, 479, 334, 479, - 334, 479, 334, 591, 592, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 602, 603, - 521, 604, 605, 606, 521, 522, 607, 608, - 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 334, 479, 479, - 334, 334, 479, 334, 334, 479, 479, 479, - 334, 479, 479, 334, 479, 479, 334, 334, - 334, 334, 479, 479, 479, 334, 479, 334, - 479, 479, 479, 334, 479, 479, 479, 479, - 479, 479, 479, 334, 479, 334, 479, 479, - 334, 334, 479, 479, 479, 334, 334, 334, - 479, 479, 334, 479, 334, 479, 334, 479, - 479, 479, 334, 479, 479, 334, 479, 479, - 479, 334, 479, 479, 479, 334, 479, 479, - 334, 479, 334, 479, 479, 334, 479, 479, - 334, 479, 479, 479, 479, 334, 334, 334, - 479, 479, 479, 479, 334, 479, 334, 622, - 623, 624, 625, 626, 334, 479, 334, 479, - 334, 479, 479, 334, 334, 334, 479, 479, - 479, 334, 627, 334, 479, 334, 628, 629, - 630, 631, 632, 633, 334, 479, 479, 479, - 334, 334, 334, 334, 479, 479, 334, 479, - 479, 334, 334, 334, 479, 479, 479, 479, - 334, 634, 623, 635, 636, 637, 334, 479, - 479, 479, 479, 479, 334, 479, 334, 479, - 334, 479, 334, 638, 639, 640, 641, 642, - 643, 644, 645, 639, 638, 639, 638, 639, - 547, 638, 646, 647, 639, 638, 648, 649, - 650, 651, 652, 653, 639, 654, 655, 638, - 639, 638, 646, 549, 547, 547, 549, 334, - 334, 479, 479, 479, 334, 479, 479, 334, - 479, 479, 479, 334, 334, 479, 479, 479, - 479, 479, 479, 334, 479, 334, 334, 479, - 479, 334, 334, 479, 479, 334, 479, 334, - 479, 334, 479, 479, 334, 479, 479, 334, - 479, 479, 334, 479, 479, 334, 656, 334, - 657, 639, 638, 658, 549, 334, 479, 334, - 659, 557, 334, 479, 334, 576, 577, 578, - 579, 580, 581, 660, 334, 661, 334, 479, - 334, 333, 335, 335, 334, 333, 335, 334, - 333, 335, 334, 663, 664, 662, 334, 333, - 335, 334, 333, 335, 334, 665, 666, 667, - 668, 669, 662, 334, 670, 334, 508, 509, - 510, 665, 666, 671, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 334, - 672, 670, 508, 509, 510, 673, 667, 668, - 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 334, 672, 334, 674, 672, - 508, 509, 510, 675, 668, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, - 334, 674, 334, 334, 674, 676, 334, 674, - 334, 677, 678, 334, 672, 334, 334, 674, - 334, 672, 334, 672, 559, 560, 561, 562, - 563, 564, 565, 679, 567, 568, 569, 570, - 571, 572, 573, 681, 682, 683, 684, 685, - 686, 681, 682, 683, 684, 685, 686, 681, - 680, 687, 334, 479, 670, 334, 688, 688, - 688, 674, 334, 508, 509, 510, 673, 671, - 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 334, 677, 689, 334, 334, - 672, 688, 688, 674, 688, 688, 674, 688, - 688, 688, 674, 688, 688, 674, 688, 688, - 674, 688, 688, 334, 674, 674, 683, 684, - 685, 686, 680, 681, 683, 684, 685, 686, - 680, 681, 683, 684, 685, 686, 680, 681, - 683, 684, 685, 686, 680, 681, 683, 684, - 685, 686, 680, 681, 683, 684, 685, 686, - 680, 681, 683, 684, 685, 686, 680, 681, - 683, 684, 685, 686, 680, 681, 683, 684, - 685, 686, 680, 681, 682, 687, 684, 685, - 686, 680, 681, 682, 684, 685, 686, 680, - 681, 682, 684, 685, 686, 680, 681, 682, - 684, 685, 686, 680, 681, 682, 684, 685, - 686, 680, 681, 682, 684, 685, 686, 680, - 681, 682, 684, 685, 686, 680, 681, 682, - 684, 685, 686, 680, 681, 682, 684, 685, - 686, 680, 681, 682, 683, 687, 685, 686, - 680, 681, 682, 683, 685, 686, 680, 681, - 682, 683, 685, 686, 680, 681, 682, 683, - 685, 686, 680, 681, 682, 683, 685, 690, - 689, 684, 334, 687, 688, 334, 672, 674, - 335, 335, 334, 691, 692, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 547, 702, - 549, 703, 704, 705, 706, 707, 708, 662, - 334, 479, 335, 335, 335, 335, 334, 479, - 335, 335, 334, 479, 479, 335, 334, 335, - 479, 335, 479, 335, 334, 479, 335, 479, - 335, 334, 479, 335, 334, 479, 335, 479, - 335, 479, 335, 334, 479, 335, 334, 479, - 335, 479, 335, 334, 479, 335, 335, 479, - 334, 335, 335, 479, 334, 479, 335, 479, - 334, 335, 335, 335, 335, 335, 335, 335, - 335, 334, 479, 479, 479, 479, 479, 335, - 335, 479, 335, 479, 335, 334, 479, 479, - 479, 335, 479, 335, 334, 335, 479, 335, - 334, 335, 479, 335, 479, 335, 334, 479, - 479, 335, 334, 709, 710, 662, 334, 479, - 479, 335, 334, 479, 479, 335, 334, 662, - 334, 711, 713, 714, 715, 716, 717, 718, - 713, 714, 715, 716, 717, 718, 713, 662, - 712, 687, 334, 335, 670, 335, 334, 672, - 672, 672, 674, 334, 672, 672, 674, 672, - 672, 674, 672, 672, 672, 674, 672, 672, - 674, 672, 672, 674, 672, 672, 334, 674, - 715, 716, 717, 718, 712, 713, 715, 716, - 717, 718, 712, 713, 715, 716, 717, 718, - 712, 713, 715, 716, 717, 718, 712, 713, - 715, 716, 717, 718, 712, 713, 715, 716, - 717, 718, 712, 713, 715, 716, 717, 718, - 712, 713, 715, 716, 717, 718, 712, 713, - 715, 716, 717, 718, 712, 713, 714, 687, - 716, 717, 718, 712, 713, 714, 716, 717, - 718, 712, 713, 714, 716, 717, 718, 712, - 713, 714, 716, 717, 718, 712, 713, 714, - 716, 717, 718, 712, 713, 714, 716, 717, - 718, 712, 713, 714, 716, 717, 718, 712, - 713, 714, 716, 717, 718, 712, 713, 714, - 716, 717, 718, 712, 713, 714, 715, 687, - 717, 718, 712, 713, 714, 715, 717, 718, - 712, 713, 714, 715, 717, 718, 712, 713, - 714, 715, 717, 718, 712, 713, 714, 715, - 717, 719, 720, 716, 662, 334, 687, 672, - 335, 672, 674, 335, 674, 335, 334, 672, - 721, 722, 662, 334, 335, 334, 335, 335, - 335, 334, 724, 725, 726, 727, 728, 723, - 334, 729, 730, 731, 732, 733, 734, 735, - 736, 662, 334, 333, 335, 334, 333, 335, - 334, 335, 333, 335, 334, 333, 335, 334, - 333, 335, 334, 333, 335, 334, 335, 333, - 335, 334, 333, 335, 334, 737, 662, 334, - 335, 335, 334, 738, 662, 334, 335, 335, - 334, 739, 662, 334, 335, 335, 334, 638, - 639, 740, 741, 742, 743, 744, 745, 639, - 638, 639, 638, 746, 547, 638, 747, 748, - 639, 638, 749, 662, 750, 662, 751, 752, - 753, 754, 639, 755, 756, 638, 639, 638, - 747, 549, 547, 662, 549, 334, 479, 335, - 479, 335, 334, 335, 479, 335, 479, 334, - 479, 335, 479, 335, 479, 334, 757, 334, - 479, 576, 577, 578, 579, 580, 581, 758, - 334, 759, 661, 334, 479, 334, 335, 479, - 479, 335, 479, 335, 479, 334, 335, 479, - 334, 335, 334, 479, 335, 334, 479, 335, - 479, 334, 335, 334, 479, 335, 479, 334, - 335, 479, 334, 335, 479, 335, 334, 335, - 479, 335, 479, 335, 334, 335, 479, 335, - 479, 334, 335, 335, 479, 334, 335, 479, - 334, 723, 334, 760, 723, 334, 390, 662, - 761, 662, 334, 335, 334, 333, 3, 1, - 333, 3, 1, 763, 764, 762, 1, 333, - 3, 1, 333, 3, 1, 765, 766, 767, - 768, 769, 762, 1, 770, 149, 772, 771, - 771, 772, 772, 771, 772, 772, 771, 772, - 772, 772, 771, 772, 771, 772, 772, 771, - 772, 772, 772, 772, 771, 772, 772, 771, - 771, 772, 772, 771, 772, 772, 771, 773, - 774, 775, 776, 777, 779, 780, 781, 783, - 784, 785, 786, 787, 788, 789, 790, 791, - 792, 793, 794, 795, 796, 797, 798, 799, - 800, 778, 782, 771, 772, 772, 772, 772, - 771, 772, 771, 772, 772, 771, 771, 771, - 772, 771, 771, 771, 772, 772, 772, 772, - 771, 771, 771, 771, 771, 771, 771, 772, - 771, 771, 771, 771, 771, 771, 772, 771, - 771, 771, 771, 771, 772, 772, 772, 772, - 771, 772, 772, 772, 772, 772, 771, 772, - 772, 771, 772, 772, 772, 772, 771, 772, - 772, 771, 771, 771, 771, 771, 771, 772, - 772, 772, 772, 772, 772, 771, 772, 772, - 772, 771, 771, 771, 771, 771, 771, 772, - 772, 771, 772, 772, 772, 772, 772, 771, - 772, 772, 771, 772, 771, 772, 772, 771, - 772, 771, 772, 772, 772, 772, 772, 771, - 772, 771, 772, 772, 772, 772, 771, 772, - 771, 801, 802, 803, 804, 805, 806, 807, - 808, 809, 810, 811, 812, 813, 814, 815, - 816, 817, 818, 819, 820, 821, 822, 771, - 772, 772, 771, 772, 772, 772, 771, 772, - 772, 772, 772, 771, 772, 771, 772, 772, - 771, 772, 772, 771, 772, 771, 771, 771, - 772, 772, 771, 772, 772, 771, 772, 772, - 771, 772, 771, 772, 772, 772, 772, 772, - 771, 772, 771, 771, 772, 772, 772, 771, - 771, 771, 772, 772, 772, 771, 772, 771, - 772, 771, 772, 772, 772, 772, 772, 771, - 772, 772, 771, 823, 824, 825, 826, 827, - 771, 772, 828, 771, 772, 772, 771, 829, - 830, 824, 831, 832, 833, 834, 835, 836, - 837, 838, 839, 840, 841, 842, 843, 844, - 845, 846, 847, 848, 825, 826, 827, 771, - 772, 828, 772, 771, 772, 771, 772, 771, - 772, 772, 771, 772, 772, 771, 772, 772, - 771, 772, 771, 772, 772, 772, 771, 772, - 771, 772, 772, 771, 772, 772, 771, 772, - 772, 772, 771, 772, 771, 772, 772, 771, - 772, 771, 771, 771, 771, 771, 771, 771, - 771, 772, 772, 772, 772, 772, 772, 772, - 772, 771, 772, 772, 772, 772, 771, 772, - 771, 772, 772, 771, 772, 772, 771, 772, - 771, 772, 771, 772, 771, 849, 850, 851, - 771, 772, 772, 771, 772, 771, 772, 772, - 771, 852, 853, 854, 855, 856, 857, 858, - 859, 860, 861, 862, 863, 864, 865, 866, - 771, 772, 772, 771, 772, 771, 772, 771, - 772, 772, 772, 772, 772, 771, 772, 772, - 771, 771, 771, 771, 772, 772, 771, 772, - 771, 772, 772, 771, 771, 771, 772, 772, - 771, 772, 772, 772, 771, 772, 772, 772, - 772, 771, 772, 772, 772, 771, 772, 772, - 771, 867, 868, 853, 771, 772, 771, 772, - 772, 771, 869, 870, 871, 872, 873, 874, - 875, 771, 876, 877, 878, 879, 880, 881, - 882, 883, 771, 772, 771, 772, 771, 772, - 771, 772, 772, 772, 772, 772, 771, 772, - 771, 772, 771, 772, 771, 772, 771, 884, - 885, 886, 887, 888, 889, 890, 891, 892, - 893, 894, 895, 896, 814, 897, 898, 899, - 814, 815, 900, 901, 902, 903, 904, 905, - 906, 907, 908, 909, 910, 911, 912, 913, - 914, 771, 772, 772, 771, 771, 772, 771, - 771, 772, 772, 772, 771, 772, 772, 771, - 772, 772, 771, 771, 771, 771, 772, 772, - 772, 771, 772, 771, 772, 772, 772, 771, - 772, 772, 772, 772, 772, 772, 772, 771, - 772, 771, 772, 772, 771, 771, 772, 772, - 772, 771, 771, 771, 772, 772, 771, 772, - 771, 772, 771, 772, 772, 772, 771, 772, - 772, 771, 772, 772, 772, 771, 772, 772, - 772, 771, 772, 772, 771, 772, 771, 772, - 772, 771, 772, 772, 771, 772, 772, 772, - 772, 771, 771, 771, 772, 772, 772, 772, - 771, 772, 771, 915, 916, 917, 918, 919, - 771, 772, 771, 772, 771, 772, 772, 771, - 771, 771, 772, 772, 772, 771, 920, 771, - 772, 771, 921, 922, 923, 924, 925, 926, - 771, 772, 772, 772, 771, 771, 771, 771, - 772, 772, 771, 772, 772, 771, 771, 771, - 772, 772, 772, 772, 771, 927, 916, 928, - 929, 930, 771, 772, 772, 772, 772, 772, - 771, 772, 771, 772, 771, 772, 771, 931, - 932, 933, 934, 935, 936, 937, 938, 932, - 931, 932, 931, 932, 840, 931, 939, 940, - 932, 931, 941, 942, 943, 944, 945, 946, - 932, 947, 948, 931, 932, 931, 939, 842, - 840, 840, 842, 771, 771, 772, 772, 772, - 771, 772, 772, 771, 772, 772, 772, 771, - 771, 772, 772, 772, 772, 772, 772, 771, - 772, 771, 771, 772, 772, 771, 771, 772, - 772, 771, 772, 771, 772, 771, 772, 772, - 771, 772, 772, 771, 772, 772, 771, 772, - 772, 771, 949, 771, 950, 932, 931, 951, - 842, 771, 772, 771, 952, 850, 771, 772, - 771, 869, 870, 871, 872, 873, 874, 953, - 771, 954, 771, 772, 771, 801, 802, 803, - 765, 766, 955, 804, 805, 806, 807, 808, - 809, 810, 811, 812, 813, 814, 815, 816, - 817, 818, 819, 820, 821, 822, 771, 956, - 770, 801, 802, 803, 957, 767, 768, 804, - 805, 806, 807, 808, 809, 810, 811, 812, - 813, 814, 815, 816, 817, 818, 819, 820, - 821, 822, 771, 956, 771, 958, 956, 801, - 802, 803, 959, 768, 804, 805, 806, 807, - 808, 809, 810, 811, 812, 813, 814, 815, - 816, 817, 818, 819, 820, 821, 822, 771, - 958, 771, 149, 958, 960, 771, 958, 771, - 961, 962, 771, 956, 771, 771, 958, 771, - 956, 771, 956, 852, 853, 854, 855, 856, - 857, 858, 963, 860, 861, 862, 863, 864, - 865, 866, 965, 966, 967, 968, 969, 970, - 965, 966, 967, 968, 969, 970, 965, 964, - 971, 771, 772, 770, 771, 972, 972, 972, - 958, 771, 801, 802, 803, 957, 955, 804, - 805, 806, 807, 808, 809, 810, 811, 812, - 813, 814, 815, 816, 817, 818, 819, 820, - 821, 822, 771, 961, 973, 771, 771, 956, - 972, 972, 958, 972, 972, 958, 972, 972, - 972, 958, 972, 972, 958, 972, 972, 958, - 972, 972, 771, 958, 958, 967, 968, 969, - 970, 964, 965, 967, 968, 969, 970, 964, - 965, 967, 968, 969, 970, 964, 965, 967, - 968, 969, 970, 964, 965, 967, 968, 969, - 970, 964, 965, 967, 968, 969, 970, 964, - 965, 967, 968, 969, 970, 964, 965, 967, - 968, 969, 970, 964, 965, 967, 968, 969, - 970, 964, 965, 966, 971, 968, 969, 970, - 964, 965, 966, 968, 969, 970, 964, 965, - 966, 968, 969, 970, 964, 965, 966, 968, - 969, 970, 964, 965, 966, 968, 969, 970, - 964, 965, 966, 968, 969, 970, 964, 965, - 966, 968, 969, 970, 964, 965, 966, 968, - 969, 970, 964, 965, 966, 968, 969, 970, - 964, 965, 966, 967, 971, 969, 970, 964, - 965, 966, 967, 969, 970, 964, 965, 966, - 967, 969, 970, 964, 965, 966, 967, 969, - 970, 964, 965, 966, 967, 969, 974, 973, - 968, 771, 971, 972, 771, 956, 958, 147, - 3, 1, 975, 976, 977, 978, 979, 980, - 981, 982, 983, 984, 985, 218, 986, 220, - 987, 988, 989, 990, 991, 992, 762, 1, - 147, 993, 148, 3, 147, 3, 147, 3, - 1, 993, 994, 994, 993, 993, 994, 993, - 993, 994, 993, 993, 993, 994, 993, 994, - 993, 993, 994, 993, 993, 993, 993, 994, - 993, 993, 994, 994, 993, 993, 994, 993, - 993, 994, 995, 996, 997, 998, 999, 1001, - 1002, 1003, 1005, 1006, 1007, 1008, 1009, 1010, - 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, - 1019, 1020, 1021, 1022, 1000, 1004, 994, 993, - 993, 993, 993, 994, 993, 994, 993, 993, - 994, 994, 994, 993, 994, 994, 994, 993, - 993, 993, 993, 994, 994, 994, 994, 994, - 994, 994, 993, 994, 994, 994, 994, 994, - 994, 993, 994, 994, 994, 994, 994, 993, - 993, 993, 993, 994, 993, 993, 993, 993, - 993, 994, 993, 993, 994, 993, 993, 993, - 993, 994, 993, 993, 994, 994, 994, 994, - 994, 994, 993, 993, 993, 993, 993, 993, - 994, 993, 993, 993, 994, 994, 994, 994, - 994, 994, 993, 993, 994, 993, 993, 993, - 993, 993, 994, 993, 993, 994, 993, 994, - 993, 993, 994, 993, 994, 993, 993, 993, - 993, 993, 994, 993, 994, 993, 993, 993, - 993, 994, 993, 994, 1023, 1024, 1025, 1026, - 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, - 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, - 1043, 1044, 994, 993, 993, 994, 993, 993, - 993, 994, 993, 993, 993, 993, 994, 993, - 994, 993, 993, 994, 993, 993, 994, 993, - 994, 994, 994, 993, 993, 994, 993, 993, - 994, 993, 993, 994, 993, 994, 993, 993, - 993, 993, 993, 994, 993, 994, 994, 993, - 993, 993, 994, 994, 994, 993, 993, 993, - 994, 993, 994, 993, 994, 993, 993, 993, - 993, 993, 994, 993, 993, 994, 1045, 1046, - 1047, 1048, 1049, 994, 993, 994, 993, 994, - 993, 994, 993, 994, 993, 994, 1050, 1051, - 994, 993, 994, 993, 994, 1052, 1053, 1054, - 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, - 1063, 1064, 1065, 1066, 994, 993, 993, 994, - 993, 994, 993, 994, 993, 993, 993, 993, - 993, 994, 993, 993, 994, 994, 994, 994, - 993, 993, 994, 993, 994, 993, 993, 994, - 994, 994, 993, 993, 994, 993, 993, 993, - 994, 993, 993, 993, 993, 994, 993, 993, - 993, 994, 993, 993, 994, 1067, 1068, 1053, - 994, 993, 994, 993, 993, 994, 1069, 1070, - 1071, 1072, 1073, 1074, 1075, 994, 1076, 1077, - 1078, 1079, 1080, 1081, 1082, 1083, 994, 993, - 994, 993, 994, 993, 994, 993, 993, 993, - 993, 993, 994, 993, 994, 993, 994, 993, - 994, 993, 994, 1084, 1085, 1086, 1087, 1088, - 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, - 1036, 1097, 1098, 1099, 1036, 1037, 1100, 1101, - 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, - 1110, 1111, 1112, 1113, 1114, 994, 993, 993, - 994, 994, 993, 994, 994, 993, 993, 993, - 994, 993, 993, 994, 993, 993, 994, 994, - 994, 994, 993, 993, 993, 994, 993, 994, - 993, 993, 993, 994, 993, 993, 993, 993, - 993, 993, 993, 994, 993, 994, 993, 993, - 994, 994, 993, 993, 993, 994, 994, 994, - 993, 993, 994, 993, 994, 993, 994, 993, - 993, 993, 994, 993, 993, 994, 993, 993, - 993, 994, 993, 993, 993, 994, 993, 993, - 994, 993, 994, 993, 993, 994, 993, 993, - 994, 993, 993, 993, 993, 994, 994, 994, - 993, 993, 993, 993, 994, 993, 994, 1115, - 1116, 1117, 1118, 1119, 994, 993, 994, 993, - 994, 993, 993, 994, 994, 994, 993, 993, - 993, 994, 1120, 994, 993, 994, 1121, 1122, - 1123, 1124, 1125, 1126, 994, 993, 993, 993, - 994, 994, 994, 994, 993, 993, 994, 993, - 993, 994, 994, 994, 993, 993, 993, 993, - 994, 1127, 1116, 1128, 1129, 1130, 994, 993, - 993, 993, 993, 993, 994, 993, 994, 993, - 994, 993, 994, 1131, 994, 993, 994, 1132, - 994, 1133, 1134, 1135, 1137, 1136, 994, 993, - 994, 994, 993, 993, 148, 3, 147, 3, - 1, 148, 148, 3, 1, 3, 148, 3, - 148, 3, 1, 148, 3, 148, 3, 1, - 148, 3, 1, 148, 3, 148, 3, 148, - 3, 1, 148, 3, 1, 148, 3, 148, - 3, 1, 148, 3, 3, 148, 1, 3, - 3, 148, 1, 148, 3, 148, 1, 3, - 3, 3, 3, 3, 3, 3, 3, 1, - 148, 148, 148, 148, 148, 3, 3, 148, - 3, 148, 3, 1, 148, 148, 148, 3, - 148, 3, 1, 3, 148, 3, 1, 3, - 148, 3, 148, 3, 1, 148, 148, 3, - 1, 1138, 1139, 762, 1, 148, 148, 3, - 1, 148, 148, 3, 1, 762, 1, 1140, - 1142, 1143, 1144, 1145, 1146, 1147, 1142, 1143, - 1144, 1145, 1146, 1147, 1142, 762, 1141, 971, - 1, 3, 770, 3, 1, 956, 956, 956, - 958, 1, 956, 956, 958, 956, 956, 958, - 956, 956, 956, 958, 956, 956, 958, 956, - 956, 958, 956, 956, 1, 958, 1144, 1145, - 1146, 1147, 1141, 1142, 1144, 1145, 1146, 1147, - 1141, 1142, 1144, 1145, 1146, 1147, 1141, 1142, - 1144, 1145, 1146, 1147, 1141, 1142, 1144, 1145, - 1146, 1147, 1141, 1142, 1144, 1145, 1146, 1147, - 1141, 1142, 1144, 1145, 1146, 1147, 1141, 1142, - 1144, 1145, 1146, 1147, 1141, 1142, 1144, 1145, - 1146, 1147, 1141, 1142, 1143, 971, 1145, 1146, - 1147, 1141, 1142, 1143, 1145, 1146, 1147, 1141, - 1142, 1143, 1145, 1146, 1147, 1141, 1142, 1143, - 1145, 1146, 1147, 1141, 1142, 1143, 1145, 1146, - 1147, 1141, 1142, 1143, 1145, 1146, 1147, 1141, - 1142, 1143, 1145, 1146, 1147, 1141, 1142, 1143, - 1145, 1146, 1147, 1141, 1142, 1143, 1145, 1146, - 1147, 1141, 1142, 1143, 1144, 971, 1146, 1147, - 1141, 1142, 1143, 1144, 1146, 1147, 1141, 1142, - 1143, 1144, 1146, 1147, 1141, 1142, 1143, 1144, - 1146, 1147, 1141, 1142, 1143, 1144, 1146, 1148, - 1149, 1145, 762, 1, 971, 956, 3, 956, - 958, 3, 958, 3, 1, 956, 1150, 1151, - 762, 1, 147, 3, 1, 3, 3, 147, - 3, 1, 1153, 1154, 1155, 1156, 1157, 1152, - 1, 1158, 1159, 1160, 1161, 1162, 1163, 1164, - 1165, 762, 1, 333, 3, 1, 333, 3, - 1, 3, 333, 3, 1, 333, 3, 1, - 333, 3, 1, 333, 3, 1, 3, 333, - 3, 1, 333, 3, 1, 1166, 762, 1, - 3, 147, 3, 1, 1167, 762, 1, 3, - 147, 3, 1, 1168, 762, 1, 3, 147, - 3, 1, 309, 310, 1169, 1170, 1171, 1172, - 1173, 1174, 310, 309, 310, 309, 1175, 218, - 309, 1176, 1177, 310, 309, 1178, 762, 1179, - 762, 1180, 1181, 1182, 1183, 310, 1184, 1185, - 309, 310, 309, 1176, 220, 218, 762, 220, - 1, 148, 3, 148, 3, 1, 3, 148, - 3, 148, 1, 148, 3, 148, 3, 148, - 1, 1186, 1, 148, 1188, 1187, 1187, 1188, - 1188, 1187, 1188, 1188, 1187, 1188, 1188, 1188, - 1187, 1188, 1187, 1188, 1188, 1187, 1188, 1188, - 1188, 1188, 1187, 1188, 1188, 1187, 1187, 1188, - 1188, 1187, 1188, 1188, 1187, 1189, 1190, 1191, - 1192, 1193, 1195, 1196, 1197, 1199, 1200, 1201, - 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, - 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1194, - 1198, 1187, 1188, 1188, 1188, 1188, 1187, 1188, - 1187, 1188, 1188, 1187, 1187, 1187, 1188, 1187, - 1187, 1187, 1188, 1188, 1188, 1188, 1187, 1187, - 1187, 1187, 1187, 1187, 1187, 1188, 1187, 1187, - 1187, 1187, 1187, 1187, 1188, 1187, 1187, 1187, - 1187, 1187, 1188, 1188, 1188, 1188, 1187, 1188, - 1188, 1188, 1188, 1188, 1187, 1188, 1188, 1187, - 1188, 1188, 1188, 1188, 1187, 1188, 1188, 1187, - 1187, 1187, 1187, 1187, 1187, 1188, 1188, 1188, - 1188, 1188, 1188, 1187, 1188, 1188, 1188, 1187, - 1187, 1187, 1187, 1187, 1187, 1188, 1188, 1187, - 1188, 1188, 1188, 1188, 1188, 1187, 1188, 1188, - 1187, 1188, 1187, 1188, 1188, 1187, 1188, 1187, - 1188, 1188, 1188, 1188, 1188, 1187, 1188, 1187, - 1188, 1188, 1188, 1188, 1187, 1188, 1187, 1217, - 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, - 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, - 1234, 1235, 1236, 1237, 1238, 1187, 1188, 1188, - 1187, 1188, 1188, 1188, 1187, 1188, 1188, 1188, - 1188, 1187, 1188, 1187, 1188, 1188, 1187, 1188, - 1188, 1187, 1188, 1187, 1187, 1187, 1188, 1188, - 1187, 1188, 1188, 1187, 1188, 1188, 1187, 1188, - 1187, 1188, 1188, 1188, 1188, 1188, 1187, 1188, - 1187, 1187, 1188, 1188, 1188, 1187, 1187, 1187, - 1188, 1188, 1188, 1187, 1188, 1187, 1188, 1187, - 1188, 1188, 1188, 1188, 1188, 1187, 1188, 1188, - 1187, 1239, 1240, 1241, 1242, 1243, 1187, 1188, - 1244, 1187, 1188, 1188, 1187, 1245, 1246, 1240, - 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, - 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, - 1263, 1264, 1241, 1242, 1243, 1187, 1188, 1244, - 1188, 1187, 1188, 1187, 1188, 1187, 1188, 1188, - 1187, 1188, 1188, 1187, 1188, 1188, 1187, 1188, - 1187, 1188, 1188, 1188, 1187, 1188, 1187, 1188, - 1188, 1187, 1188, 1188, 1187, 1188, 1188, 1188, - 1187, 1188, 1187, 1188, 1188, 1187, 1188, 1187, - 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1187, - 1188, 1188, 1188, 1188, 1187, 1188, 1187, 1188, - 1188, 1187, 1188, 1188, 1187, 1188, 1187, 1188, - 1187, 1188, 1187, 1265, 1266, 1267, 1187, 1188, - 1188, 1187, 1188, 1187, 1188, 1188, 1187, 1268, - 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, - 1277, 1278, 1279, 1280, 1281, 1282, 1187, 1188, - 1188, 1187, 1188, 1187, 1188, 1187, 1188, 1188, - 1188, 1188, 1188, 1187, 1188, 1188, 1187, 1187, - 1187, 1187, 1188, 1188, 1187, 1188, 1187, 1188, - 1188, 1187, 1187, 1187, 1188, 1188, 1187, 1188, - 1188, 1188, 1187, 1188, 1188, 1188, 1188, 1187, - 1188, 1188, 1188, 1187, 1188, 1188, 1187, 1283, - 1284, 1269, 1187, 1188, 1187, 1188, 1188, 1187, - 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1187, - 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, - 1187, 1188, 1187, 1188, 1187, 1188, 1187, 1188, - 1188, 1188, 1188, 1188, 1187, 1188, 1187, 1188, - 1187, 1188, 1187, 1188, 1187, 1300, 1301, 1302, - 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, - 1311, 1312, 1230, 1313, 1314, 1315, 1230, 1231, - 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, - 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1187, - 1188, 1188, 1187, 1187, 1188, 1187, 1187, 1188, - 1188, 1188, 1187, 1188, 1188, 1187, 1188, 1188, - 1187, 1187, 1187, 1187, 1188, 1188, 1188, 1187, - 1188, 1187, 1188, 1188, 1188, 1187, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1187, 1188, 1187, - 1188, 1188, 1187, 1187, 1188, 1188, 1188, 1187, - 1187, 1187, 1188, 1188, 1187, 1188, 1187, 1188, - 1187, 1188, 1188, 1188, 1187, 1188, 1188, 1187, - 1188, 1188, 1188, 1187, 1188, 1188, 1188, 1187, - 1188, 1188, 1187, 1188, 1187, 1188, 1188, 1187, - 1188, 1188, 1187, 1188, 1188, 1188, 1188, 1187, - 1187, 1187, 1188, 1188, 1188, 1188, 1187, 1188, - 1187, 1331, 1332, 1333, 1334, 1335, 1187, 1188, - 1187, 1188, 1187, 1188, 1188, 1187, 1187, 1187, - 1188, 1188, 1188, 1187, 1336, 1187, 1188, 1187, - 1337, 1338, 1339, 1340, 1341, 1342, 1187, 1188, - 1188, 1188, 1187, 1187, 1187, 1187, 1188, 1188, - 1187, 1188, 1188, 1187, 1187, 1187, 1188, 1188, - 1188, 1188, 1187, 1343, 1332, 1344, 1345, 1346, - 1187, 1188, 1188, 1188, 1188, 1188, 1187, 1188, - 1187, 1188, 1187, 1188, 1187, 1347, 1348, 1349, - 1350, 1351, 1352, 1353, 1354, 1348, 1347, 1348, - 1347, 1348, 1256, 1347, 1355, 1356, 1348, 1347, - 1357, 1358, 1359, 1360, 1361, 1362, 1348, 1363, - 1364, 1347, 1348, 1347, 1355, 1258, 1256, 1256, - 1258, 1187, 1187, 1188, 1188, 1188, 1187, 1188, - 1188, 1187, 1188, 1188, 1188, 1187, 1187, 1188, - 1188, 1188, 1188, 1188, 1188, 1187, 1188, 1187, - 1187, 1188, 1188, 1187, 1187, 1188, 1188, 1187, - 1188, 1187, 1188, 1187, 1188, 1188, 1187, 1188, - 1188, 1187, 1188, 1188, 1187, 1188, 1188, 1187, - 1365, 1187, 1366, 1348, 1347, 1367, 1258, 1187, - 1188, 1187, 1368, 1266, 1187, 1188, 1187, 1285, - 1286, 1287, 1288, 1289, 1290, 1369, 1187, 1370, - 1187, 1188, 1187, 1285, 1286, 1287, 1288, 1289, - 1290, 1371, 1187, 1372, 1370, 1187, 1188, 1187, - 3, 148, 148, 3, 148, 3, 148, 1, - 3, 148, 1, 3, 1, 148, 3, 1, - 148, 3, 148, 1, 3, 1, 148, 3, - 148, 1, 3, 148, 1, 3, 148, 3, - 1, 3, 148, 3, 148, 3, 1, 3, - 148, 3, 148, 1, 3, 3, 148, 1, - 3, 148, 1, 1152, 1, 1373, 1152, 1, - 1374, 1375, 1376, 1377, 1376, 762, 1378, 1, - 147, 3, 1, 1, 147, 1, 147, 3, - 147, 1, 147, 1, 1380, 1379, 1383, 1384, - 1385, 1386, 1387, 1388, 1389, 1390, 1392, 1393, - 1394, 1395, 1396, 1397, 1399, 1379, 1, 1382, - 1391, 1398, 1, 1381, 144, 146, 1401, 1402, - 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, - 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, - 1400, 309, 329, 1420, 1421, 1422, 1423, 1424, - 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, - 1433, 1434, 1435, 1436, 1437, 1419, 1438, 309, - 329, 1420, 1421, 1422, 1423, 1424, 1425, 1426, - 1427, 1428, 1429, 1430, 1431, 1439, 1440, 1434, - 1435, 1441, 1437, 1419, 1443, 1444, 1445, 1446, - 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, - 1455, 1456, 1458, 335, 662, 723, 1457, 1442, - 476, 478, 1459, 1460, 1461, 1462, 1463, 1464, - 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, - 1473, 1474, 1475, 1476, 1442, 638, 658, 1477, - 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, - 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, - 1494, 1442, 1495, 638, 658, 1477, 1478, 1479, - 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, - 1488, 1496, 1497, 1491, 1492, 1498, 1494, 1442, - 638, 658, 1477, 1478, 1479, 1480, 1481, 1482, - 1483, 1484, 1485, 1486, 1487, 1499, 1489, 1490, - 1500, 1501, 1502, 1503, 1492, 1493, 1494, 1442, - 638, 658, 1477, 1478, 1479, 1480, 1481, 1482, - 1483, 1484, 1485, 1486, 1487, 1504, 1489, 1490, - 1491, 1505, 1492, 1493, 1494, 1442, 638, 658, - 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, - 1485, 1486, 1487, 1506, 1489, 1490, 1491, 1507, - 1492, 1493, 1494, 1442, 638, 658, 1477, 1478, - 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, - 1487, 1508, 1489, 1490, 1491, 1509, 1492, 1493, - 1494, 1442, 638, 658, 1477, 1478, 1479, 1480, - 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, - 1489, 1490, 1491, 1492, 1510, 1494, 1442, 931, - 951, 1512, 1513, 1514, 1515, 1516, 1517, 1518, - 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, - 1527, 1528, 1529, 1530, 1531, 1532, 1511, 931, - 951, 1512, 1513, 1514, 1515, 1516, 1517, 1518, - 1519, 1520, 1521, 1522, 1533, 1524, 1525, 1534, - 1530, 1531, 1532, 1511, 1535, 931, 951, 1512, - 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, - 1521, 1522, 1533, 1536, 1537, 1534, 1530, 1538, - 1532, 1511, 931, 951, 1512, 1513, 1514, 1515, - 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1539, - 1524, 1525, 1534, 1540, 1530, 1531, 1532, 1511, - 931, 951, 1512, 1513, 1514, 1515, 1516, 1517, - 1518, 1519, 1520, 1521, 1522, 1541, 1524, 1525, - 1534, 1542, 1530, 1531, 1532, 1511, 931, 951, - 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, - 1520, 1521, 1522, 1543, 1524, 1525, 1534, 1544, - 1530, 1531, 1532, 1511, 1135, 1137, 1546, 1547, - 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, - 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, - 1545, 1347, 1367, 1565, 1566, 1567, 1568, 1569, - 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, - 1578, 1579, 1580, 1581, 1582, 1564, 1347, 1367, - 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, - 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, - 1583, 1582, 1564, 1584, 1347, 1367, 1565, 1566, - 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, - 1575, 1576, 1585, 1586, 1579, 1580, 1587, 1582, - 1564, -} - -var _graphclust_trans_targs []int16 = []int16{ - 1547, 0, 1547, 1548, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, - 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 67, 68, - 69, 70, 71, 73, 74, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 92, 93, 95, 104, - 136, 142, 144, 151, 156, 96, 97, 98, - 99, 100, 101, 102, 103, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 137, 138, 139, 140, - 141, 143, 145, 146, 147, 148, 149, 150, - 152, 153, 154, 155, 157, 159, 160, 161, - 2, 162, 3, 1547, 1549, 1547, 1547, 178, - 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, - 228, 230, 235, 254, 255, 256, 1550, 233, - 234, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 258, 259, 260, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 278, 279, 281, - 290, 322, 328, 330, 337, 342, 282, 283, - 284, 285, 286, 287, 288, 289, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 323, 324, 325, - 326, 327, 329, 331, 332, 333, 334, 335, - 336, 338, 339, 340, 341, 165, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 361, - 362, 166, 364, 366, 367, 1551, 1547, 1552, - 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 434, 435, 436, 437, 438, 440, - 441, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, - 459, 460, 462, 471, 503, 509, 511, 518, - 523, 463, 464, 465, 466, 467, 468, 469, - 470, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, - 504, 505, 506, 507, 508, 510, 512, 513, - 514, 515, 516, 517, 519, 520, 521, 522, - 524, 526, 527, 528, 369, 529, 370, 1553, - 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 584, 585, - 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 597, 602, 621, 622, 623, 1554, - 600, 601, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 625, 626, 627, 629, - 630, 631, 632, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 645, 646, - 648, 657, 689, 695, 697, 704, 709, 649, - 650, 651, 652, 653, 654, 655, 656, 658, - 659, 660, 661, 662, 663, 664, 665, 666, - 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 687, 688, 690, 691, - 692, 693, 694, 696, 698, 699, 700, 701, - 702, 703, 705, 706, 707, 708, 532, 710, - 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, - 728, 729, 533, 731, 733, 734, 530, 739, - 740, 742, 744, 747, 750, 774, 1555, 756, - 1556, 746, 1557, 749, 752, 754, 755, 758, - 759, 763, 764, 765, 766, 767, 768, 769, - 1558, 762, 773, 776, 777, 778, 779, 780, - 781, 782, 783, 784, 785, 786, 787, 788, - 789, 790, 791, 792, 793, 795, 796, 799, - 800, 801, 802, 803, 804, 805, 806, 810, - 811, 813, 814, 797, 816, 825, 827, 829, - 831, 817, 818, 819, 820, 821, 822, 823, - 824, 826, 828, 830, 832, 833, 834, 835, - 839, 840, 841, 842, 843, 844, 845, 846, - 847, 848, 849, 850, 851, 1559, 837, 838, - 854, 855, 163, 859, 860, 862, 1067, 1070, - 1073, 1097, 1560, 1547, 1561, 876, 877, 878, - 879, 880, 881, 882, 883, 884, 885, 886, - 887, 888, 889, 890, 891, 892, 893, 894, - 895, 896, 897, 898, 899, 900, 901, 902, - 903, 905, 906, 907, 908, 909, 910, 911, - 912, 913, 914, 915, 916, 917, 918, 919, - 920, 921, 922, 923, 924, 925, 926, 928, - 933, 952, 953, 954, 1562, 931, 932, 934, - 935, 936, 937, 938, 939, 940, 941, 942, - 943, 944, 945, 946, 947, 948, 949, 950, - 951, 956, 957, 958, 960, 961, 962, 963, - 964, 965, 966, 967, 968, 969, 970, 971, - 972, 973, 974, 976, 977, 979, 988, 1020, - 1026, 1028, 1035, 1040, 980, 981, 982, 983, - 984, 985, 986, 987, 989, 990, 991, 992, - 993, 994, 995, 996, 997, 998, 999, 1000, - 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, - 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, - 1017, 1018, 1019, 1021, 1022, 1023, 1024, 1025, - 1027, 1029, 1030, 1031, 1032, 1033, 1034, 1036, - 1037, 1038, 1039, 863, 1041, 1042, 1043, 1044, - 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, - 1053, 1054, 1055, 1056, 1057, 1059, 1060, 864, - 1062, 1064, 1065, 1079, 1563, 1069, 1564, 1072, - 1075, 1077, 1078, 1081, 1082, 1086, 1087, 1088, - 1089, 1090, 1091, 1092, 1565, 1085, 1096, 1099, - 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, - 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, - 1277, 1566, 1547, 1113, 1114, 1115, 1116, 1117, - 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, - 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, - 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1142, - 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, - 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, - 1159, 1160, 1161, 1162, 1163, 1165, 1166, 1167, - 1168, 1169, 1171, 1172, 1174, 1175, 1176, 1177, - 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, - 1186, 1187, 1188, 1190, 1191, 1193, 1202, 1234, - 1240, 1242, 1249, 1254, 1194, 1195, 1196, 1197, - 1198, 1199, 1200, 1201, 1203, 1204, 1205, 1206, - 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, - 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, - 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, - 1231, 1232, 1233, 1235, 1236, 1237, 1238, 1239, - 1241, 1243, 1244, 1245, 1246, 1247, 1248, 1250, - 1251, 1252, 1253, 1255, 1257, 1258, 1259, 1100, - 1260, 1101, 1279, 1280, 1283, 1284, 1285, 1286, - 1287, 1288, 1289, 1290, 1294, 1295, 1297, 1298, - 1281, 1300, 1309, 1311, 1313, 1315, 1301, 1302, - 1303, 1304, 1305, 1306, 1307, 1308, 1310, 1312, - 1314, 1316, 1317, 1318, 1319, 1526, 1527, 1528, - 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, - 1537, 1538, 1567, 1547, 1568, 1333, 1334, 1335, - 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, - 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, - 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, - 1360, 1362, 1363, 1364, 1365, 1366, 1367, 1368, - 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, - 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1385, - 1390, 1409, 1410, 1411, 1569, 1388, 1389, 1391, - 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, - 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, - 1408, 1413, 1414, 1415, 1417, 1418, 1419, 1420, - 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, - 1429, 1430, 1431, 1433, 1434, 1436, 1445, 1477, - 1483, 1485, 1492, 1497, 1437, 1438, 1439, 1440, - 1441, 1442, 1443, 1444, 1446, 1447, 1448, 1449, - 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, - 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, - 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, - 1474, 1475, 1476, 1478, 1479, 1480, 1481, 1482, - 1484, 1486, 1487, 1488, 1489, 1490, 1491, 1493, - 1494, 1495, 1496, 1320, 1498, 1499, 1500, 1501, - 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, - 1510, 1511, 1512, 1513, 1514, 1516, 1517, 1321, - 1519, 1521, 1522, 1524, 1525, 1541, 1542, 1543, - 1544, 1545, 1546, 1547, 1, 1548, 163, 164, - 368, 856, 857, 858, 861, 1098, 1278, 1281, - 1282, 1291, 1292, 1293, 1296, 1299, 1539, 1540, - 1547, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 43, 66, 72, 75, - 91, 94, 158, 1547, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 206, - 229, 363, 261, 277, 365, 360, 231, 232, - 257, 280, 1547, 531, 735, 736, 737, 738, - 741, 775, 794, 798, 807, 808, 809, 812, - 815, 852, 853, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 410, 433, - 439, 442, 458, 461, 525, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, - 573, 596, 730, 628, 644, 732, 727, 598, - 599, 624, 647, 743, 757, 770, 771, 772, - 745, 753, 748, 751, 760, 761, 836, 1547, - 865, 866, 867, 868, 869, 870, 871, 872, - 873, 874, 875, 1066, 927, 1061, 1080, 1093, - 1094, 1095, 975, 1063, 1058, 904, 959, 929, - 930, 955, 978, 1068, 1076, 1071, 1074, 1083, - 1084, 1547, 1102, 1103, 1104, 1105, 1106, 1107, - 1108, 1109, 1110, 1111, 1112, 1141, 1164, 1170, - 1173, 1189, 1192, 1256, 1547, 1322, 1323, 1324, - 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, - 1361, 1384, 1518, 1416, 1432, 1523, 1515, 1520, - 1386, 1387, 1412, 1435, -} - -var _graphclust_trans_actions []byte = []byte{ - 31, 0, 27, 40, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 34, 55, 29, 19, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 55, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 40, 25, 40, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 40, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 40, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40, 0, - 40, 0, 40, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 40, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 40, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 17, 40, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 51, 0, 51, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 40, 21, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 23, 40, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 43, 1, 47, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 15, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -} - -var _graphclust_to_state_actions []byte = []byte{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 37, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -} - -var _graphclust_from_state_actions []byte = []byte{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -} - -var _graphclust_eof_trans []int16 = []int16{ - 0, 0, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 0, 150, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 150, 151, 150, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 150, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 0, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, - 0, 0, 0, 0, 0, 0, 150, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 150, 772, 772, 150, 772, - 772, 150, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 150, 772, 772, 772, - 772, 0, 0, 0, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 995, 995, 995, - 995, 995, 995, 995, 995, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 1188, 1188, 1188, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1401, 1420, 1420, 1443, - 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, - 1512, 1512, 1512, 1512, 1512, 1512, 1546, 1565, - 1565, 1565, -} - -const graphclust_start int = 1547 -const graphclust_first_final int = 1547 -const graphclust_error int = 0 - -const graphclust_en_main int = 1547 - -//line grapheme_clusters.rl:14 - -var Error = errors.New("invalid UTF8 text") - -// ScanGraphemeClusters is a split function for bufio.Scanner that splits -// on grapheme cluster boundaries. -func ScanGraphemeClusters(data []byte, atEOF bool) (int, []byte, error) { - if len(data) == 0 { - return 0, nil, nil - } - - // Ragel state - cs := 0 // Current State - p := 0 // "Pointer" into data - pe := len(data) // End-of-data "pointer" - ts := 0 - te := 0 - act := 0 - eof := pe - - // Make Go compiler happy - _ = ts - _ = te - _ = act - _ = eof - - startPos := 0 - endPos := 0 - -//line grapheme_clusters.go:3847 - { - cs = graphclust_start - ts = 0 - te = 0 - act = 0 - } - -//line grapheme_clusters.go:3855 - { - var _klen int - var _trans int - var _acts int - var _nacts uint - var _keys int - if p == pe { - goto _test_eof - } - if cs == 0 { - goto _out - } - _resume: - _acts = int(_graphclust_from_state_actions[cs]) - _nacts = uint(_graphclust_actions[_acts]) - _acts++ - for ; _nacts > 0; _nacts-- { - _acts++ - switch _graphclust_actions[_acts-1] { - case 4: -//line NONE:1 - ts = p - -//line grapheme_clusters.go:3878 - } - } - - _keys = int(_graphclust_key_offsets[cs]) - _trans = int(_graphclust_index_offsets[cs]) - - _klen = int(_graphclust_single_lengths[cs]) - if _klen > 0 { - _lower := int(_keys) - var _mid int - _upper := int(_keys + _klen - 1) - for { - if _upper < _lower { - break - } - - _mid = _lower + ((_upper - _lower) >> 1) - switch { - case data[p] < _graphclust_trans_keys[_mid]: - _upper = _mid - 1 - case data[p] > _graphclust_trans_keys[_mid]: - _lower = _mid + 1 - default: - _trans += int(_mid - int(_keys)) - goto _match - } - } - _keys += _klen - _trans += _klen - } - - _klen = int(_graphclust_range_lengths[cs]) - if _klen > 0 { - _lower := int(_keys) - var _mid int - _upper := int(_keys + (_klen << 1) - 2) - for { - if _upper < _lower { - break - } - - _mid = _lower + (((_upper - _lower) >> 1) & ^1) - switch { - case data[p] < _graphclust_trans_keys[_mid]: - _upper = _mid - 2 - case data[p] > _graphclust_trans_keys[_mid+1]: - _lower = _mid + 2 - default: - _trans += int((_mid - int(_keys)) >> 1) - goto _match - } - } - _trans += _klen - } - - _match: - _trans = int(_graphclust_indicies[_trans]) - _eof_trans: - cs = int(_graphclust_trans_targs[_trans]) - - if _graphclust_trans_actions[_trans] == 0 { - goto _again - } - - _acts = int(_graphclust_trans_actions[_trans]) - _nacts = uint(_graphclust_actions[_acts]) - _acts++ - for ; _nacts > 0; _nacts-- { - _acts++ - switch _graphclust_actions[_acts-1] { - case 0: -//line grapheme_clusters.rl:47 - - startPos = p - - case 1: -//line grapheme_clusters.rl:51 - - endPos = p - - case 5: -//line NONE:1 - te = p + 1 - - case 6: -//line grapheme_clusters.rl:55 - act = 3 - case 7: -//line grapheme_clusters.rl:55 - act = 4 - case 8: -//line grapheme_clusters.rl:55 - te = p + 1 - { - return endPos + 1, data[startPos : endPos+1], nil - } - case 9: -//line grapheme_clusters.rl:55 - te = p + 1 - { - return endPos + 1, data[startPos : endPos+1], nil - } - case 10: -//line grapheme_clusters.rl:55 - te = p - p-- - { - return endPos + 1, data[startPos : endPos+1], nil - } - case 11: -//line grapheme_clusters.rl:55 - te = p - p-- - { - return endPos + 1, data[startPos : endPos+1], nil - } - case 12: -//line grapheme_clusters.rl:55 - te = p - p-- - { - return endPos + 1, data[startPos : endPos+1], nil - } - case 13: -//line grapheme_clusters.rl:55 - te = p - p-- - { - return endPos + 1, data[startPos : endPos+1], nil - } - case 14: -//line grapheme_clusters.rl:55 - te = p - p-- - { - return endPos + 1, data[startPos : endPos+1], nil - } - case 15: -//line grapheme_clusters.rl:55 - te = p - p-- - { - return endPos + 1, data[startPos : endPos+1], nil - } - case 16: -//line grapheme_clusters.rl:55 - p = (te) - 1 - { - return endPos + 1, data[startPos : endPos+1], nil - } - case 17: -//line grapheme_clusters.rl:55 - p = (te) - 1 - { - return endPos + 1, data[startPos : endPos+1], nil - } - case 18: -//line grapheme_clusters.rl:55 - p = (te) - 1 - { - return endPos + 1, data[startPos : endPos+1], nil - } - case 19: -//line grapheme_clusters.rl:55 - p = (te) - 1 - { - return endPos + 1, data[startPos : endPos+1], nil - } - case 20: -//line grapheme_clusters.rl:55 - p = (te) - 1 - { - return endPos + 1, data[startPos : endPos+1], nil - } - case 21: -//line grapheme_clusters.rl:55 - p = (te) - 1 - { - return endPos + 1, data[startPos : endPos+1], nil - } - case 22: -//line NONE:1 - switch act { - case 0: - { - cs = 0 - goto _again - } - case 3: - { - p = (te) - 1 - - return endPos + 1, data[startPos : endPos+1], nil - } - case 4: - { - p = (te) - 1 - - return endPos + 1, data[startPos : endPos+1], nil - } - } - -//line grapheme_clusters.go:4077 - } - } - - _again: - _acts = int(_graphclust_to_state_actions[cs]) - _nacts = uint(_graphclust_actions[_acts]) - _acts++ - for ; _nacts > 0; _nacts-- { - _acts++ - switch _graphclust_actions[_acts-1] { - case 2: -//line NONE:1 - ts = 0 - - case 3: -//line NONE:1 - act = 0 - -//line grapheme_clusters.go:4095 - } - } - - if cs == 0 { - goto _out - } - p++ - if p != pe { - goto _resume - } - _test_eof: - { - } - if p == eof { - if _graphclust_eof_trans[cs] > 0 { - _trans = int(_graphclust_eof_trans[cs] - 1) - goto _eof_trans - } - } - - _out: - { - } - } - -//line grapheme_clusters.rl:117 - - // If we fall out here then we were unable to complete a sequence. - // If we weren't able to complete a sequence then either we've - // reached the end of a partial buffer (so there's more data to come) - // or we have an isolated symbol that would normally be part of a - // grapheme cluster but has appeared in isolation here. - - if !atEOF { - // Request more - return 0, nil, nil - } - - // Just take the first UTF-8 sequence and return that. - _, seqLen := utf8.DecodeRune(data) - return seqLen, data[:seqLen], nil -} diff --git a/vendor/github.com/apparentlymart/go-textseg/v13/LICENSE b/vendor/github.com/apparentlymart/go-textseg/v15/LICENSE similarity index 100% rename from vendor/github.com/apparentlymart/go-textseg/v13/LICENSE rename to vendor/github.com/apparentlymart/go-textseg/v15/LICENSE diff --git a/vendor/github.com/apparentlymart/go-textseg/v13/textseg/all_tokens.go b/vendor/github.com/apparentlymart/go-textseg/v15/textseg/all_tokens.go similarity index 100% rename from vendor/github.com/apparentlymart/go-textseg/v13/textseg/all_tokens.go rename to vendor/github.com/apparentlymart/go-textseg/v15/textseg/all_tokens.go diff --git a/vendor/github.com/apparentlymart/go-textseg/v13/textseg/emoji_table.rl b/vendor/github.com/apparentlymart/go-textseg/v15/textseg/emoji_table.rl similarity index 93% rename from vendor/github.com/apparentlymart/go-textseg/v13/textseg/emoji_table.rl rename to vendor/github.com/apparentlymart/go-textseg/v15/textseg/emoji_table.rl index f2cb484a3d73..10b93e474f26 100644 --- a/vendor/github.com/apparentlymart/go-textseg/v13/textseg/emoji_table.rl +++ b/vendor/github.com/apparentlymart/go-textseg/v15/textseg/emoji_table.rl @@ -1,5 +1,5 @@ # The following Ragel file was autogenerated with unicode2ragel.rb -# from: https://www.unicode.org/Public/13.0.0/ucd/emoji/emoji-data.txt +# from: https://www.unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt # # It defines ["Extended_Pictographic"]. # @@ -150,8 +150,8 @@ | 0xE2 0x9D 0x87 #E0.6 [1] (❇️) sparkle | 0xE2 0x9D 0x8C #E0.6 [1] (❌) cross mark | 0xE2 0x9D 0x8E #E0.6 [1] (❎) cross mark button - | 0xE2 0x9D 0x93..0x95 #E0.6 [3] (❓..❕) question mark..white e... - | 0xE2 0x9D 0x97 #E0.6 [1] (❗) exclamation mark + | 0xE2 0x9D 0x93..0x95 #E0.6 [3] (❓..❕) red question mark..whi... + | 0xE2 0x9D 0x97 #E0.6 [1] (❗) red exclamation mark | 0xE2 0x9D 0xA3 #E1.0 [1] (❣️) heart exclamation | 0xE2 0x9D 0xA4 #E0.6 [1] (❤️) red heart | 0xE2 0x9D 0xA5..0xA7 #E0.0 [3] (❥..❧) ROTATED HEAVY BLACK HE... @@ -299,7 +299,7 @@ | 0xF0 0x9F 0x94 0x89 #E1.0 [1] (🔉) speaker medium volume | 0xF0 0x9F 0x94 0x8A..0x94 #E0.6 [11] (🔊..🔔) speaker high volume... | 0xF0 0x9F 0x94 0x95 #E1.0 [1] (🔕) bell with slash - | 0xF0 0x9F 0x94 0x96..0xAB #E0.6 [22] (🔖..🔫) bookmark..pistol + | 0xF0 0x9F 0x94 0x96..0xAB #E0.6 [22] (🔖..🔫) bookmark..water pistol | 0xF0 0x9F 0x94 0xAC..0xAD #E1.0 [2] (🔬..🔭) microscope..telescope | 0xF0 0x9F 0x94 0xAE..0xBD #E0.6 [16] (🔮..🔽) crystal ball..downw... | 0xF0 0x9F 0x95 0x86..0x88 #E0.0 [3] (🕆..🕈) WHITE LATIN CROSS..... @@ -377,7 +377,7 @@ | 0xF0 0x9F 0x98 0xAE..0xAF #E1.0 [2] (😮..😯) face with open mout... | 0xF0 0x9F 0x98 0xB0..0xB3 #E0.6 [4] (😰..😳) anxious face with s... | 0xF0 0x9F 0x98 0xB4 #E1.0 [1] (😴) sleeping face - | 0xF0 0x9F 0x98 0xB5 #E0.6 [1] (😵) dizzy face + | 0xF0 0x9F 0x98 0xB5 #E0.6 [1] (😵) face with crossed-out ... | 0xF0 0x9F 0x98 0xB6 #E1.0 [1] (😶) face without mouth | 0xF0 0x9F 0x98 0xB7..0xFF #E0.6 [10] (😷..🙀) face with medical m... | 0xF0 0x9F 0x99 0x00..0x80 # @@ -427,7 +427,9 @@ | 0xF0 0x9F 0x9B 0x93..0x94 #E0.0 [2] (🛓..🛔) STUPA..PAGODA | 0xF0 0x9F 0x9B 0x95 #E12.0 [1] (🛕) hindu temple | 0xF0 0x9F 0x9B 0x96..0x97 #E13.0 [2] (🛖..🛗) hut..elevator - | 0xF0 0x9F 0x9B 0x98..0x9F #E0.0 [8] (🛘..🛟) ..<... + | 0xF0 0x9F 0x9B 0x98..0x9B #E0.0 [4] (🛘..🛛) ..<... + | 0xF0 0x9F 0x9B 0x9C #E15.0 [1] (🛜) wireless + | 0xF0 0x9F 0x9B 0x9D..0x9F #E14.0 [3] (🛝..🛟) playground slide..r... | 0xF0 0x9F 0x9B 0xA0..0xA5 #E0.7 [6] (🛠️..🛥️) hammer and wrench... | 0xF0 0x9F 0x9B 0xA6..0xA8 #E0.0 [3] (🛦..🛨) UP-POINTING MILITAR... | 0xF0 0x9F 0x9B 0xA9 #E0.7 [1] (🛩️) small airplane @@ -443,10 +445,12 @@ | 0xF0 0x9F 0x9B 0xBA #E12.0 [1] (🛺) auto rickshaw | 0xF0 0x9F 0x9B 0xBB..0xBC #E13.0 [2] (🛻..🛼) pickup truck..rolle... | 0xF0 0x9F 0x9B 0xBD..0xBF #E0.0 [3] (🛽..🛿) ..<... - | 0xF0 0x9F 0x9D 0xB4..0xBF #E0.0 [12] (🝴..🝿) ..<... + | 0xF0 0x9F 0x9D 0xB4..0xBF #E0.0 [12] (🝴..🝿) LOT OF FORTUNE..ORCUS | 0xF0 0x9F 0x9F 0x95..0x9F #E0.0 [11] (🟕..🟟) CIRCLED TRIANGLE..<... | 0xF0 0x9F 0x9F 0xA0..0xAB #E12.0 [12] (🟠..🟫) orange circle..brow... - | 0xF0 0x9F 0x9F 0xAC..0xBF #E0.0 [20] (🟬..🟿) ..<... + | 0xF0 0x9F 0x9F 0xAC..0xAF #E0.0 [4] (🟬..🟯) ..<... + | 0xF0 0x9F 0x9F 0xB0 #E14.0 [1] (🟰) heavy equals sign + | 0xF0 0x9F 0x9F 0xB1..0xBF #E0.0 [15] (🟱..🟿) ..<... | 0xF0 0x9F 0xA0 0x8C..0x8F #E0.0 [4] (🠌..🠏) ..<... | 0xF0 0x9F 0xA1 0x88..0x8F #E0.0 [8] (🡈..🡏) ..<... | 0xF0 0x9F 0xA1 0x9A..0x9F #E0.0 [6] (🡚..🡟) ..<... @@ -476,7 +480,7 @@ | 0xF0 0x9F 0xA5 0xB2 #E13.0 [1] (🥲) smiling face with tear | 0xF0 0x9F 0xA5 0xB3..0xB6 #E11.0 [4] (🥳..🥶) partying face..cold... | 0xF0 0x9F 0xA5 0xB7..0xB8 #E13.0 [2] (🥷..🥸) ninja..disguised face - | 0xF0 0x9F 0xA5 0xB9 #E0.0 [1] (🥹) + | 0xF0 0x9F 0xA5 0xB9 #E14.0 [1] (🥹) face holding back tears | 0xF0 0x9F 0xA5 0xBA #E11.0 [1] (🥺) pleading face | 0xF0 0x9F 0xA5 0xBB #E12.0 [1] (🥻) sari | 0xF0 0x9F 0xA5 0xBC..0xBF #E11.0 [4] (🥼..🥿) lab coat..flat shoe @@ -494,7 +498,7 @@ | 0xF0 0x9F 0xA7 0x81..0x82 #E11.0 [2] (🧁..🧂) cupcake..salt | 0xF0 0x9F 0xA7 0x83..0x8A #E12.0 [8] (🧃..🧊) beverage box..ice | 0xF0 0x9F 0xA7 0x8B #E13.0 [1] (🧋) bubble tea - | 0xF0 0x9F 0xA7 0x8C #E0.0 [1] (🧌) + | 0xF0 0x9F 0xA7 0x8C #E14.0 [1] (🧌) troll | 0xF0 0x9F 0xA7 0x8D..0x8F #E12.0 [3] (🧍..🧏) person standing..de... | 0xF0 0x9F 0xA7 0x90..0xA6 #E5.0 [23] (🧐..🧦) face with monocle..... | 0xF0 0x9F 0xA7 0xA7..0xBF #E11.0 [25] (🧧..🧿) red envelope..nazar... @@ -502,21 +506,37 @@ | 0xF0 0x9F 0xA9 0x00..0xAF # | 0xF0 0x9F 0xA9 0xB0..0xB3 #E12.0 [4] (🩰..🩳) ballet shoes..shorts | 0xF0 0x9F 0xA9 0xB4 #E13.0 [1] (🩴) thong sandal - | 0xF0 0x9F 0xA9 0xB5..0xB7 #E0.0 [3] (🩵..🩷) ..<... + | 0xF0 0x9F 0xA9 0xB5..0xB7 #E15.0 [3] (🩵..🩷) light blue heart..p... | 0xF0 0x9F 0xA9 0xB8..0xBA #E12.0 [3] (🩸..🩺) drop of blood..stet... - | 0xF0 0x9F 0xA9 0xBB..0xBF #E0.0 [5] (🩻..🩿) ..<... + | 0xF0 0x9F 0xA9 0xBB..0xBC #E14.0 [2] (🩻..🩼) x-ray..crutch + | 0xF0 0x9F 0xA9 0xBD..0xBF #E0.0 [3] (🩽..🩿) ..<... | 0xF0 0x9F 0xAA 0x80..0x82 #E12.0 [3] (🪀..🪂) yo-yo..parachute | 0xF0 0x9F 0xAA 0x83..0x86 #E13.0 [4] (🪃..🪆) boomerang..nesting ... - | 0xF0 0x9F 0xAA 0x87..0x8F #E0.0 [9] (🪇..🪏) ..<... + | 0xF0 0x9F 0xAA 0x87..0x88 #E15.0 [2] (🪇..🪈) maracas..flute + | 0xF0 0x9F 0xAA 0x89..0x8F #E0.0 [7] (🪉..🪏) ..<... | 0xF0 0x9F 0xAA 0x90..0x95 #E12.0 [6] (🪐..🪕) ringed planet..banjo | 0xF0 0x9F 0xAA 0x96..0xA8 #E13.0 [19] (🪖..🪨) military helmet..rock - | 0xF0 0x9F 0xAA 0xA9..0xAF #E0.0 [7] (🪩..🪯) ..<... + | 0xF0 0x9F 0xAA 0xA9..0xAC #E14.0 [4] (🪩..🪬) mirror ball..hamsa + | 0xF0 0x9F 0xAA 0xAD..0xAF #E15.0 [3] (🪭..🪯) folding hand fan..k... | 0xF0 0x9F 0xAA 0xB0..0xB6 #E13.0 [7] (🪰..🪶) fly..feather - | 0xF0 0x9F 0xAA 0xB7..0xBF #E0.0 [9] (🪷..🪿) ..<... + | 0xF0 0x9F 0xAA 0xB7..0xBA #E14.0 [4] (🪷..🪺) lotus..nest with eggs + | 0xF0 0x9F 0xAA 0xBB..0xBD #E15.0 [3] (🪻..🪽) hyacinth..wing + | 0xF0 0x9F 0xAA 0xBE #E0.0 [1] (🪾) + | 0xF0 0x9F 0xAA 0xBF #E15.0 [1] (🪿) goose | 0xF0 0x9F 0xAB 0x80..0x82 #E13.0 [3] (🫀..🫂) anatomical heart..p... - | 0xF0 0x9F 0xAB 0x83..0x8F #E0.0 [13] (🫃..🫏) ..<... + | 0xF0 0x9F 0xAB 0x83..0x85 #E14.0 [3] (🫃..🫅) pregnant man..perso... + | 0xF0 0x9F 0xAB 0x86..0x8D #E0.0 [8] (🫆..🫍) ..<... + | 0xF0 0x9F 0xAB 0x8E..0x8F #E15.0 [2] (🫎..🫏) moose..donkey | 0xF0 0x9F 0xAB 0x90..0x96 #E13.0 [7] (🫐..🫖) blueberries..teapot - | 0xF0 0x9F 0xAB 0x97..0xBF #E0.0 [41] (🫗..🫿) ..<... + | 0xF0 0x9F 0xAB 0x97..0x99 #E14.0 [3] (🫗..🫙) pouring liquid..jar + | 0xF0 0x9F 0xAB 0x9A..0x9B #E15.0 [2] (🫚..🫛) ginger root..pea pod + | 0xF0 0x9F 0xAB 0x9C..0x9F #E0.0 [4] (🫜..🫟) ..<... + | 0xF0 0x9F 0xAB 0xA0..0xA7 #E14.0 [8] (🫠..🫧) melting face..bubbles + | 0xF0 0x9F 0xAB 0xA8 #E15.0 [1] (🫨) shaking face + | 0xF0 0x9F 0xAB 0xA9..0xAF #E0.0 [7] (🫩..🫯) ..<... + | 0xF0 0x9F 0xAB 0xB0..0xB6 #E14.0 [7] (🫰..🫶) hand with index fin... + | 0xF0 0x9F 0xAB 0xB7..0xB8 #E15.0 [2] (🫷..🫸) leftwards pushing h... + | 0xF0 0x9F 0xAB 0xB9..0xBF #E0.0 [7] (🫹..🫿) ..<... | 0xF0 0x9F 0xB0 0x80..0xFF #E0.0[1022] (🰀..🿽) 0; _nacts-- { + _acts++ + switch _graphclust_actions[_acts-1] { + case 4: +//line NONE:1 + ts = p + +//line grapheme_clusters.go:4080 + } + } + + _keys = int(_graphclust_key_offsets[cs]) + _trans = int(_graphclust_index_offsets[cs]) + + _klen = int(_graphclust_single_lengths[cs]) + if _klen > 0 { + _lower := int(_keys) + var _mid int + _upper := int(_keys + _klen - 1) + for { + if _upper < _lower { + break + } + + _mid = _lower + ((_upper - _lower) >> 1) + switch { + case data[p] < _graphclust_trans_keys[_mid]: + _upper = _mid - 1 + case data[p] > _graphclust_trans_keys[_mid]: + _lower = _mid + 1 + default: + _trans += int(_mid - int(_keys)) + goto _match + } + } + _keys += _klen + _trans += _klen + } + + _klen = int(_graphclust_range_lengths[cs]) + if _klen > 0 { + _lower := int(_keys) + var _mid int + _upper := int(_keys + (_klen << 1) - 2) + for { + if _upper < _lower { + break + } + + _mid = _lower + (((_upper - _lower) >> 1) & ^1) + switch { + case data[p] < _graphclust_trans_keys[_mid]: + _upper = _mid - 2 + case data[p] > _graphclust_trans_keys[_mid+1]: + _lower = _mid + 2 + default: + _trans += int((_mid - int(_keys)) >> 1) + goto _match + } + } + _trans += _klen + } + + _match: + _trans = int(_graphclust_indicies[_trans]) + _eof_trans: + cs = int(_graphclust_trans_targs[_trans]) + + if _graphclust_trans_actions[_trans] == 0 { + goto _again + } + + _acts = int(_graphclust_trans_actions[_trans]) + _nacts = uint(_graphclust_actions[_acts]) + _acts++ + for ; _nacts > 0; _nacts-- { + _acts++ + switch _graphclust_actions[_acts-1] { + case 0: +//line grapheme_clusters.rl:47 + + startPos = p + + case 1: +//line grapheme_clusters.rl:51 + + endPos = p + + case 5: +//line NONE:1 + te = p + 1 + + case 6: +//line grapheme_clusters.rl:55 + act = 3 + case 7: +//line grapheme_clusters.rl:55 + act = 4 + case 8: +//line grapheme_clusters.rl:55 + act = 8 + case 9: +//line grapheme_clusters.rl:55 + te = p + 1 + { + return endPos + 1, data[startPos : endPos+1], nil + } + case 10: +//line grapheme_clusters.rl:55 + te = p + 1 + { + return endPos + 1, data[startPos : endPos+1], nil + } + case 11: +//line grapheme_clusters.rl:55 + te = p + p-- + { + return endPos + 1, data[startPos : endPos+1], nil + } + case 12: +//line grapheme_clusters.rl:55 + te = p + p-- + { + return endPos + 1, data[startPos : endPos+1], nil + } + case 13: +//line grapheme_clusters.rl:55 + te = p + p-- + { + return endPos + 1, data[startPos : endPos+1], nil + } + case 14: +//line grapheme_clusters.rl:55 + te = p + p-- + { + return endPos + 1, data[startPos : endPos+1], nil + } + case 15: +//line grapheme_clusters.rl:55 + te = p + p-- + { + return endPos + 1, data[startPos : endPos+1], nil + } + case 16: +//line grapheme_clusters.rl:55 + te = p + p-- + { + return endPos + 1, data[startPos : endPos+1], nil + } + case 17: +//line grapheme_clusters.rl:55 + p = (te) - 1 + { + return endPos + 1, data[startPos : endPos+1], nil + } + case 18: +//line grapheme_clusters.rl:55 + p = (te) - 1 + { + return endPos + 1, data[startPos : endPos+1], nil + } + case 19: +//line grapheme_clusters.rl:55 + p = (te) - 1 + { + return endPos + 1, data[startPos : endPos+1], nil + } + case 20: +//line grapheme_clusters.rl:55 + p = (te) - 1 + { + return endPos + 1, data[startPos : endPos+1], nil + } + case 21: +//line grapheme_clusters.rl:55 + p = (te) - 1 + { + return endPos + 1, data[startPos : endPos+1], nil + } + case 22: +//line grapheme_clusters.rl:55 + p = (te) - 1 + { + return endPos + 1, data[startPos : endPos+1], nil + } + case 23: +//line NONE:1 + switch act { + case 0: + { + cs = 0 + goto _again + } + case 3: + { + p = (te) - 1 + + return endPos + 1, data[startPos : endPos+1], nil + } + case 4: + { + p = (te) - 1 + + return endPos + 1, data[startPos : endPos+1], nil + } + case 8: + { + p = (te) - 1 + + return endPos + 1, data[startPos : endPos+1], nil + } + } + +//line grapheme_clusters.go:4287 + } + } + + _again: + _acts = int(_graphclust_to_state_actions[cs]) + _nacts = uint(_graphclust_actions[_acts]) + _acts++ + for ; _nacts > 0; _nacts-- { + _acts++ + switch _graphclust_actions[_acts-1] { + case 2: +//line NONE:1 + ts = 0 + + case 3: +//line NONE:1 + act = 0 + +//line grapheme_clusters.go:4305 + } + } + + if cs == 0 { + goto _out + } + p++ + if p != pe { + goto _resume + } + _test_eof: + { + } + if p == eof { + if _graphclust_eof_trans[cs] > 0 { + _trans = int(_graphclust_eof_trans[cs] - 1) + goto _eof_trans + } + } + + _out: + { + } + } + +//line grapheme_clusters.rl:117 + + // If we fall out here then we were unable to complete a sequence. + // If we weren't able to complete a sequence then either we've + // reached the end of a partial buffer (so there's more data to come) + // or we have an isolated symbol that would normally be part of a + // grapheme cluster but has appeared in isolation here. + + if !atEOF { + // Request more + return 0, nil, nil + } + + // Just take the first UTF-8 sequence and return that. + _, seqLen := utf8.DecodeRune(data) + return seqLen, data[:seqLen], nil +} diff --git a/vendor/github.com/apparentlymart/go-textseg/v13/textseg/grapheme_clusters.rl b/vendor/github.com/apparentlymart/go-textseg/v15/textseg/grapheme_clusters.rl similarity index 100% rename from vendor/github.com/apparentlymart/go-textseg/v13/textseg/grapheme_clusters.rl rename to vendor/github.com/apparentlymart/go-textseg/v15/textseg/grapheme_clusters.rl diff --git a/vendor/github.com/apparentlymart/go-textseg/v13/textseg/grapheme_clusters_table.rl b/vendor/github.com/apparentlymart/go-textseg/v15/textseg/grapheme_clusters_table.rl similarity index 97% rename from vendor/github.com/apparentlymart/go-textseg/v13/textseg/grapheme_clusters_table.rl rename to vendor/github.com/apparentlymart/go-textseg/v15/textseg/grapheme_clusters_table.rl index 803dca19c58b..3cff4291de14 100644 --- a/vendor/github.com/apparentlymart/go-textseg/v13/textseg/grapheme_clusters_table.rl +++ b/vendor/github.com/apparentlymart/go-textseg/v15/textseg/grapheme_clusters_table.rl @@ -1,5 +1,5 @@ # The following Ragel file was autogenerated with unicode2ragel.rb -# from: https://www.unicode.org/Public/13.0.0/ucd/auxiliary/GraphemeBreakProperty.txt +# from: https://www.unicode.org/Public/15.0.0/ucd/auxiliary/GraphemeBreakProperty.txt # # It defines ["Prepend", "CR", "LF", "Control", "Extend", "Regional_Indicator", "SpacingMark", "L", "V", "T", "LV", "LVT", "ZWJ"]. # @@ -13,6 +13,7 @@ 0xD8 0x80..0x85 #Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER ... | 0xDB 0x9D #Cf ARABIC END OF AYAH | 0xDC 0x8F #Cf SYRIAC ABBREVIATION MARK + | 0xE0 0xA2 0x90..0x91 #Cf [2] ARABIC POUND MARK ABOVE..ARABIC PI... | 0xE0 0xA3 0xA2 #Cf ARABIC DISPUTED END OF AYAH | 0xE0 0xB5 0x8E #Lo MALAYALAM LETTER DOT REPH | 0xF0 0x91 0x82 0xBD #Cf KAITHI NUMBER SIGN @@ -23,6 +24,7 @@ | 0xF0 0x91 0xA8 0xBA #Lo ZANABAZAR SQUARE CLUSTER-INITIAL L... | 0xF0 0x91 0xAA 0x84..0x89 #Lo [6] SOYOMBO SIGN JIHVAMULIYA..SOYOM... | 0xF0 0x91 0xB5 0x86 #Lo MASARAM GONDI REPHA + | 0xF0 0x91 0xBC 0x82 #Lo KAWI SIGN REPHA ; CR = @@ -53,7 +55,7 @@ | 0xEF 0xBB 0xBF #Cf ZERO WIDTH NO-BREAK SPACE | 0xEF 0xBF 0xB0..0xB8 #Cn [9] .. | 0xEF 0xBF 0xB9..0xBB #Cf [3] INTERLINEAR ANNOTATION ANCHOR..INT... - | 0xF0 0x93 0x90 0xB0..0xB8 #Cf [9] EGYPTIAN HIEROGLYPH VERTICAL JO... + | 0xF0 0x93 0x90 0xB0..0xBF #Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JO... | 0xF0 0x9B 0xB2 0xA0..0xA3 #Cf [4] SHORTHAND FORMAT LETTER OVERLAP... | 0xF0 0x9D 0x85 0xB3..0xBA #Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSI... | 0xF3 0xA0 0x80 0x80 #Cn @@ -94,7 +96,8 @@ | 0xE0 0xA0 0xA5..0xA7 #Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMA... | 0xE0 0xA0 0xA9..0xAD #Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMAR... | 0xE0 0xA1 0x99..0x9B #Mn [3] MANDAIC AFFRICATION MARK..MANDAIC ... - | 0xE0 0xA3 0x93..0xA1 #Mn [15] ARABIC SMALL LOW WAW..ARABIC SMALL... + | 0xE0 0xA2 0x98..0x9F #Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARA... + | 0xE0 0xA3 0x8A..0xA1 #Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABI... | 0xE0 0xA3 0xA3..0xFF #Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAG... | 0xE0 0xA4 0x00..0x82 # | 0xE0 0xA4 0xBA #Mn DEVANAGARI VOWEL SIGN OE @@ -142,6 +145,7 @@ | 0xE0 0xAF 0x97 #Mc TAMIL AU LENGTH MARK | 0xE0 0xB0 0x80 #Mn TELUGU SIGN COMBINING CANDRABINDU ... | 0xE0 0xB0 0x84 #Mn TELUGU SIGN COMBINING ANUSVARA ABOVE + | 0xE0 0xB0 0xBC #Mn TELUGU SIGN NUKTA | 0xE0 0xB0 0xBE..0xFF #Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL... | 0xE0 0xB1 0x00..0x80 # | 0xE0 0xB1 0x86..0x88 #Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL ... @@ -174,7 +178,7 @@ | 0xE0 0xB9 0x87..0x8E #Mn [8] THAI CHARACTER MAITAIKHU..THAI CHA... | 0xE0 0xBA 0xB1 #Mn LAO VOWEL SIGN MAI KAN | 0xE0 0xBA 0xB4..0xBC #Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SI... - | 0xE0 0xBB 0x88..0x8D #Mn [6] LAO TONE MAI EK..LAO NIGGAHITA + | 0xE0 0xBB 0x88..0x8E #Mn [7] LAO TONE MAI EK..LAO YAMAKKAN | 0xE0 0xBC 0x98..0x99 #Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD P... | 0xE0 0xBC 0xB5 #Mn TIBETAN MARK NGAS BZUNG NYI ZLA | 0xE0 0xBC 0xB7 #Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS @@ -198,7 +202,7 @@ | 0xE1 0x82 0x9D #Mn MYANMAR VOWEL SIGN AITON AI | 0xE1 0x8D 0x9D..0x9F #Mn [3] ETHIOPIC COMBINING GEMINATION AND ... | 0xE1 0x9C 0x92..0x94 #Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN... - | 0xE1 0x9C 0xB2..0xB4 #Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN... + | 0xE1 0x9C 0xB2..0xB3 #Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWE... | 0xE1 0x9D 0x92..0x93 #Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SI... | 0xE1 0x9D 0xB2..0xB3 #Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VO... | 0xE1 0x9E 0xB4..0xB5 #Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOW... @@ -207,6 +211,7 @@ | 0xE1 0x9F 0x89..0x93 #Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN... | 0xE1 0x9F 0x9D #Mn KHMER SIGN ATTHACAN | 0xE1 0xA0 0x8B..0x8D #Mn [3] MONGOLIAN FREE VARIATION SELECTOR ... + | 0xE1 0xA0 0x8F #Mn MONGOLIAN FREE VARIATION SELECTOR ... | 0xE1 0xA2 0x85..0x86 #Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..... | 0xE1 0xA2 0xA9 #Mn MONGOLIAN LETTER ALI GALI DAGALGA | 0xE1 0xA4 0xA0..0xA2 #Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SI... @@ -224,8 +229,8 @@ | 0xE1 0xA9 0xBF #Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT | 0xE1 0xAA 0xB0..0xBD #Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCEN... | 0xE1 0xAA 0xBE #Me COMBINING PARENTHESES OVERLAY - | 0xE1 0xAA 0xBF..0xFF #Mn [2] COMBINING LATIN SMALL LETTER W BEL... - | 0xE1 0xAB 0x00..0x80 # + | 0xE1 0xAA 0xBF..0xFF #Mn [16] COMBINING LATIN SMALL LETTER W BEL... + | 0xE1 0xAB 0x00..0x8E # | 0xE1 0xAC 0x80..0x83 #Mn [4] BALINESE SIGN ULU RICEM..BALINESE ... | 0xE1 0xAC 0xB4 #Mn BALINESE SIGN REREKAN | 0xE1 0xAC 0xB5 #Mc BALINESE VOWEL SIGN TEDUNG @@ -249,8 +254,7 @@ | 0xE1 0xB3 0xAD #Mn VEDIC SIGN TIRYAK | 0xE1 0xB3 0xB4 #Mn VEDIC TONE CANDRA ABOVE | 0xE1 0xB3 0xB8..0xB9 #Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE ... - | 0xE1 0xB7 0x80..0xB9 #Mn [58] COMBINING DOTTED GRAVE ACCENT..COM... - | 0xE1 0xB7 0xBB..0xBF #Mn [5] COMBINING DELETION MARK..COMBINING... + | 0xE1 0xB7 0x80..0xBF #Mn [64] COMBINING DOTTED GRAVE ACCENT..COM... | 0xE2 0x80 0x8C #Cf ZERO WIDTH NON-JOINER | 0xE2 0x83 0x90..0x9C #Mn [13] COMBINING LEFT HARPOON ABOVE..COMB... | 0xE2 0x83 0x9D..0xA0 #Me [4] COMBINING ENCLOSING CIRCLE..COMBIN... @@ -314,14 +318,19 @@ | 0xF0 0x90 0xAB 0xA5..0xA6 #Mn [2] MANICHAEAN ABBREVIATION MARK AB... | 0xF0 0x90 0xB4 0xA4..0xA7 #Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..... | 0xF0 0x90 0xBA 0xAB..0xAC #Mn [2] YEZIDI COMBINING HAMZA MARK..YE... + | 0xF0 0x90 0xBB 0xBD..0xBF #Mn [3] ARABIC SMALL LOW WORD SAKTA..AR... | 0xF0 0x90 0xBD 0x86..0x90 #Mn [11] SOGDIAN COMBINING DOT BELOW..SO... + | 0xF0 0x90 0xBE 0x82..0x85 #Mn [4] OLD UYGHUR COMBINING DOT ABOVE.... | 0xF0 0x91 0x80 0x81 #Mn BRAHMI SIGN ANUSVARA | 0xF0 0x91 0x80 0xB8..0xFF #Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VI... | 0xF0 0x91 0x81 0x00..0x86 # + | 0xF0 0x91 0x81 0xB0 #Mn BRAHMI SIGN OLD TAMIL VIRAMA + | 0xF0 0x91 0x81 0xB3..0xB4 #Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHO... | 0xF0 0x91 0x81 0xBF..0xFF #Mn [3] BRAHMI NUMBER JOINER..KAITHI SI... | 0xF0 0x91 0x82 0x00..0x81 # | 0xF0 0x91 0x82 0xB3..0xB6 #Mn [4] KAITHI VOWEL SIGN U..KAITHI VOW... | 0xF0 0x91 0x82 0xB9..0xBA #Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN... + | 0xF0 0x91 0x83 0x82 #Mn KAITHI VOWEL SIGN VOCALIC R | 0xF0 0x91 0x84 0x80..0x82 #Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA... | 0xF0 0x91 0x84 0xA7..0xAB #Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOW... | 0xF0 0x91 0x84 0xAD..0xB4 #Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MA... @@ -334,6 +343,7 @@ | 0xF0 0x91 0x88 0xB4 #Mn KHOJKI SIGN ANUSVARA | 0xF0 0x91 0x88 0xB6..0xB7 #Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN ... | 0xF0 0x91 0x88 0xBE #Mn KHOJKI SIGN SUKUN + | 0xF0 0x91 0x89 0x81 #Mn KHOJKI VOWEL SIGN VOCALIC R | 0xF0 0x91 0x8B 0x9F #Mn KHUDAWADI SIGN ANUSVARA | 0xF0 0x91 0x8B 0xA3..0xAA #Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWA... | 0xF0 0x91 0x8C 0x80..0x81 #Mn [2] GRANTHA SIGN COMBINING ANUSVARA... @@ -405,12 +415,21 @@ | 0xF0 0x91 0xB6 0x95 #Mn GUNJALA GONDI SIGN ANUSVARA | 0xF0 0x91 0xB6 0x97 #Mn GUNJALA GONDI VIRAMA | 0xF0 0x91 0xBB 0xB3..0xB4 #Mn [2] MAKASAR VOWEL SIGN I..MAKASAR V... + | 0xF0 0x91 0xBC 0x80..0x81 #Mn [2] KAWI SIGN CANDRABINDU..KAWI SIG... + | 0xF0 0x91 0xBC 0xB6..0xBA #Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL S... + | 0xF0 0x91 0xBD 0x80 #Mn KAWI VOWEL SIGN EU + | 0xF0 0x91 0xBD 0x82 #Mn KAWI CONJOINER + | 0xF0 0x93 0x91 0x80 #Mn EGYPTIAN HIEROGLYPH MIRROR HORIZON... + | 0xF0 0x93 0x91 0x87..0x95 #Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DA... | 0xF0 0x96 0xAB 0xB0..0xB4 #Mn [5] BASSA VAH COMBINING HIGH TONE..... | 0xF0 0x96 0xAC 0xB0..0xB6 #Mn [7] PAHAWH HMONG MARK CIM TUB..PAHA... | 0xF0 0x96 0xBD 0x8F #Mn MIAO SIGN CONSONANT MODIFIER BAR | 0xF0 0x96 0xBE 0x8F..0x92 #Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW | 0xF0 0x96 0xBF 0xA4 #Mn KHITAN SMALL SCRIPT FILLER | 0xF0 0x9B 0xB2 0x9D..0x9E #Mn [2] DUPLOYAN THICK LETTER SELECTOR.... + | 0xF0 0x9C 0xBC 0x80..0xAD #Mn [46] ZNAMENNY COMBINING MARK GORAZDO... + | 0xF0 0x9C 0xBC 0xB0..0xFF #Mn [23] ZNAMENNY COMBINING TONAL RANGE ... + | 0xF0 0x9C 0xBD 0x00..0x86 # | 0xF0 0x9D 0x85 0xA5 #Mc MUSICAL SYMBOL COMBINING STEM | 0xF0 0x9D 0x85 0xA7..0xA9 #Mn [3] MUSICAL SYMBOL COMBINING TREMOL... | 0xF0 0x9D 0x85 0xAE..0xB2 #Mc [5] MUSICAL SYMBOL COMBINING FLAG-1... @@ -431,8 +450,11 @@ | 0xF0 0x9E 0x80 0x9B..0xA1 #Mn [7] COMBINING GLAGOLITIC LETTER SHT... | 0xF0 0x9E 0x80 0xA3..0xA4 #Mn [2] COMBINING GLAGOLITIC LETTER YU.... | 0xF0 0x9E 0x80 0xA6..0xAA #Mn [5] COMBINING GLAGOLITIC LETTER YO.... + | 0xF0 0x9E 0x82 0x8F #Mn COMBINING CYRILLIC SMALL LETTER BY... | 0xF0 0x9E 0x84 0xB0..0xB6 #Mn [7] NYIAKENG PUACHUE HMONG TONE-B..... + | 0xF0 0x9E 0x8A 0xAE #Mn TOTO SIGN RISING TONE | 0xF0 0x9E 0x8B 0xAC..0xAF #Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI + | 0xF0 0x9E 0x93 0xAC..0xAF #Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUN... | 0xF0 0x9E 0xA3 0x90..0x96 #Mn [7] MENDE KIKAKUI COMBINING NUMBER ... | 0xF0 0x9E 0xA5 0x84..0x8A #Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA | 0xF0 0x9F 0x8F 0xBB..0xBF #Sk [5] EMOJI MODIFIER FITZPATRICK TYPE... @@ -483,6 +505,7 @@ | 0xE0 0xB3 0x83..0x84 #Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANN... | 0xE0 0xB3 0x87..0x88 #Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOW... | 0xE0 0xB3 0x8A..0x8B #Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWE... + | 0xE0 0xB3 0xB3 #Mc KANNADA SIGN COMBINING ANUSVARA AB... | 0xE0 0xB4 0x82..0x83 #Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM... | 0xE0 0xB4 0xBF..0xFF #Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM ... | 0xE0 0xB5 0x00..0x80 # @@ -500,6 +523,8 @@ | 0xE1 0x80 0xBB..0xBC #Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..... | 0xE1 0x81 0x96..0x97 #Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYAN... | 0xE1 0x82 0x84 #Mc MYANMAR VOWEL SIGN SHAN E + | 0xE1 0x9C 0x95 #Mc TAGALOG SIGN PAMUDPOD + | 0xE1 0x9C 0xB4 #Mc HANUNOO SIGN PAMUDPOD | 0xE1 0x9E 0xB6 #Mc KHMER VOWEL SIGN AA | 0xE1 0x9E 0xBE..0xFF #Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL S... | 0xE1 0x9F 0x00..0x85 # @@ -589,7 +614,6 @@ | 0xF0 0x91 0x9A 0xAC #Mc TAKRI SIGN VISARGA | 0xF0 0x91 0x9A 0xAE..0xAF #Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL... | 0xF0 0x91 0x9A 0xB6 #Mc TAKRI SIGN VIRAMA - | 0xF0 0x91 0x9C 0xA0..0xA1 #Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL S... | 0xF0 0x91 0x9C 0xA6 #Mc AHOM VOWEL SIGN E | 0xF0 0x91 0xA0 0xAC..0xAE #Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWE... | 0xF0 0x91 0xA0 0xB8 #Mc DOGRA SIGN VISARGA @@ -613,6 +637,10 @@ | 0xF0 0x91 0xB6 0x93..0x94 #Mc [2] GUNJALA GONDI VOWEL SIGN OO..GU... | 0xF0 0x91 0xB6 0x96 #Mc GUNJALA GONDI SIGN VISARGA | 0xF0 0x91 0xBB 0xB5..0xB6 #Mc [2] MAKASAR VOWEL SIGN E..MAKASAR V... + | 0xF0 0x91 0xBC 0x83 #Mc KAWI SIGN VISARGA + | 0xF0 0x91 0xBC 0xB4..0xB5 #Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL ... + | 0xF0 0x91 0xBC 0xBE..0xBF #Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL S... + | 0xF0 0x91 0xBD 0x81 #Mc KAWI SIGN KILLER | 0xF0 0x96 0xBD 0x91..0xFF #Mc [55] MIAO SIGN ASPIRATION..MIAO VOWE... | 0xF0 0x96 0xBE 0x00..0x87 # | 0xF0 0x96 0xBF 0xB0..0xB1 #Mc [2] VIETNAMESE ALTERNATE READING MA... diff --git a/vendor/github.com/apparentlymart/go-textseg/v13/textseg/tables.go b/vendor/github.com/apparentlymart/go-textseg/v15/textseg/tables.go similarity index 93% rename from vendor/github.com/apparentlymart/go-textseg/v13/textseg/tables.go rename to vendor/github.com/apparentlymart/go-textseg/v15/textseg/tables.go index b3f22ad432fa..864268d5890d 100644 --- a/vendor/github.com/apparentlymart/go-textseg/v13/textseg/tables.go +++ b/vendor/github.com/apparentlymart/go-textseg/v15/textseg/tables.go @@ -1,5 +1,5 @@ // Generated by running -// maketables --url=http://www.unicode.org/Public/12.0.0/ucd/auxiliary/ +// maketables --url=http://www.unicode.org/Public/15.0.0/ucd/auxiliary/ // DO NOT EDIT package textseg @@ -37,7 +37,7 @@ var _GraphemeControl = &unicode.RangeTable{ unicode.Range16{Lo: 0xfff9, Hi: 0xfffb, Stride: 0x1}, }, R32: []unicode.Range32{ - unicode.Range32{Lo: 0x13430, Hi: 0x13438, Stride: 0x1}, + unicode.Range32{Lo: 0x13430, Hi: 0x1343f, Stride: 0x1}, unicode.Range32{Lo: 0x1bca0, Hi: 0x1bca3, Stride: 0x1}, unicode.Range32{Lo: 0x1d173, Hi: 0x1d17a, Stride: 0x1}, unicode.Range32{Lo: 0xe0000, Hi: 0xe0000, Stride: 0x1}, @@ -76,7 +76,8 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x825, Hi: 0x827, Stride: 0x1}, unicode.Range16{Lo: 0x829, Hi: 0x82d, Stride: 0x1}, unicode.Range16{Lo: 0x859, Hi: 0x85b, Stride: 0x1}, - unicode.Range16{Lo: 0x8d3, Hi: 0x8e1, Stride: 0x1}, + unicode.Range16{Lo: 0x898, Hi: 0x89f, Stride: 0x1}, + unicode.Range16{Lo: 0x8ca, Hi: 0x8e1, Stride: 0x1}, unicode.Range16{Lo: 0x8e3, Hi: 0x902, Stride: 0x1}, unicode.Range16{Lo: 0x93a, Hi: 0x93a, Stride: 0x1}, unicode.Range16{Lo: 0x93c, Hi: 0x93c, Stride: 0x1}, @@ -113,7 +114,7 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xb3f, Hi: 0xb3f, Stride: 0x1}, unicode.Range16{Lo: 0xb41, Hi: 0xb44, Stride: 0x1}, unicode.Range16{Lo: 0xb4d, Hi: 0xb4d, Stride: 0x1}, - unicode.Range16{Lo: 0xb56, Hi: 0xb56, Stride: 0x1}, + unicode.Range16{Lo: 0xb55, Hi: 0xb56, Stride: 0x1}, unicode.Range16{Lo: 0xb57, Hi: 0xb57, Stride: 0x1}, unicode.Range16{Lo: 0xb62, Hi: 0xb63, Stride: 0x1}, unicode.Range16{Lo: 0xb82, Hi: 0xb82, Stride: 0x1}, @@ -123,6 +124,7 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xbd7, Hi: 0xbd7, Stride: 0x1}, unicode.Range16{Lo: 0xc00, Hi: 0xc00, Stride: 0x1}, unicode.Range16{Lo: 0xc04, Hi: 0xc04, Stride: 0x1}, + unicode.Range16{Lo: 0xc3c, Hi: 0xc3c, Stride: 0x1}, unicode.Range16{Lo: 0xc3e, Hi: 0xc40, Stride: 0x1}, unicode.Range16{Lo: 0xc46, Hi: 0xc48, Stride: 0x1}, unicode.Range16{Lo: 0xc4a, Hi: 0xc4d, Stride: 0x1}, @@ -143,6 +145,7 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xd4d, Hi: 0xd4d, Stride: 0x1}, unicode.Range16{Lo: 0xd57, Hi: 0xd57, Stride: 0x1}, unicode.Range16{Lo: 0xd62, Hi: 0xd63, Stride: 0x1}, + unicode.Range16{Lo: 0xd81, Hi: 0xd81, Stride: 0x1}, unicode.Range16{Lo: 0xdca, Hi: 0xdca, Stride: 0x1}, unicode.Range16{Lo: 0xdcf, Hi: 0xdcf, Stride: 0x1}, unicode.Range16{Lo: 0xdd2, Hi: 0xdd4, Stride: 0x1}, @@ -153,7 +156,7 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xe47, Hi: 0xe4e, Stride: 0x1}, unicode.Range16{Lo: 0xeb1, Hi: 0xeb1, Stride: 0x1}, unicode.Range16{Lo: 0xeb4, Hi: 0xebc, Stride: 0x1}, - unicode.Range16{Lo: 0xec8, Hi: 0xecd, Stride: 0x1}, + unicode.Range16{Lo: 0xec8, Hi: 0xece, Stride: 0x1}, unicode.Range16{Lo: 0xf18, Hi: 0xf19, Stride: 0x1}, unicode.Range16{Lo: 0xf35, Hi: 0xf35, Stride: 0x1}, unicode.Range16{Lo: 0xf37, Hi: 0xf37, Stride: 0x1}, @@ -177,7 +180,7 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x109d, Hi: 0x109d, Stride: 0x1}, unicode.Range16{Lo: 0x135d, Hi: 0x135f, Stride: 0x1}, unicode.Range16{Lo: 0x1712, Hi: 0x1714, Stride: 0x1}, - unicode.Range16{Lo: 0x1732, Hi: 0x1734, Stride: 0x1}, + unicode.Range16{Lo: 0x1732, Hi: 0x1733, Stride: 0x1}, unicode.Range16{Lo: 0x1752, Hi: 0x1753, Stride: 0x1}, unicode.Range16{Lo: 0x1772, Hi: 0x1773, Stride: 0x1}, unicode.Range16{Lo: 0x17b4, Hi: 0x17b5, Stride: 0x1}, @@ -186,6 +189,7 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x17c9, Hi: 0x17d3, Stride: 0x1}, unicode.Range16{Lo: 0x17dd, Hi: 0x17dd, Stride: 0x1}, unicode.Range16{Lo: 0x180b, Hi: 0x180d, Stride: 0x1}, + unicode.Range16{Lo: 0x180f, Hi: 0x180f, Stride: 0x1}, unicode.Range16{Lo: 0x1885, Hi: 0x1886, Stride: 0x1}, unicode.Range16{Lo: 0x18a9, Hi: 0x18a9, Stride: 0x1}, unicode.Range16{Lo: 0x1920, Hi: 0x1922, Stride: 0x1}, @@ -203,6 +207,7 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x1a7f, Hi: 0x1a7f, Stride: 0x1}, unicode.Range16{Lo: 0x1ab0, Hi: 0x1abd, Stride: 0x1}, unicode.Range16{Lo: 0x1abe, Hi: 0x1abe, Stride: 0x1}, + unicode.Range16{Lo: 0x1abf, Hi: 0x1ace, Stride: 0x1}, unicode.Range16{Lo: 0x1b00, Hi: 0x1b03, Stride: 0x1}, unicode.Range16{Lo: 0x1b34, Hi: 0x1b34, Stride: 0x1}, unicode.Range16{Lo: 0x1b35, Hi: 0x1b35, Stride: 0x1}, @@ -226,8 +231,7 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x1ced, Hi: 0x1ced, Stride: 0x1}, unicode.Range16{Lo: 0x1cf4, Hi: 0x1cf4, Stride: 0x1}, unicode.Range16{Lo: 0x1cf8, Hi: 0x1cf9, Stride: 0x1}, - unicode.Range16{Lo: 0x1dc0, Hi: 0x1df9, Stride: 0x1}, - unicode.Range16{Lo: 0x1dfb, Hi: 0x1dff, Stride: 0x1}, + unicode.Range16{Lo: 0x1dc0, Hi: 0x1dff, Stride: 0x1}, unicode.Range16{Lo: 0x200c, Hi: 0x200c, Stride: 0x1}, unicode.Range16{Lo: 0x20d0, Hi: 0x20dc, Stride: 0x1}, unicode.Range16{Lo: 0x20dd, Hi: 0x20e0, Stride: 0x1}, @@ -249,6 +253,7 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xa806, Hi: 0xa806, Stride: 0x1}, unicode.Range16{Lo: 0xa80b, Hi: 0xa80b, Stride: 0x1}, unicode.Range16{Lo: 0xa825, Hi: 0xa826, Stride: 0x1}, + unicode.Range16{Lo: 0xa82c, Hi: 0xa82c, Stride: 0x1}, unicode.Range16{Lo: 0xa8c4, Hi: 0xa8c5, Stride: 0x1}, unicode.Range16{Lo: 0xa8e0, Hi: 0xa8f1, Stride: 0x1}, unicode.Range16{Lo: 0xa8ff, Hi: 0xa8ff, Stride: 0x1}, @@ -291,12 +296,18 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x10a3f, Hi: 0x10a3f, Stride: 0x1}, unicode.Range32{Lo: 0x10ae5, Hi: 0x10ae6, Stride: 0x1}, unicode.Range32{Lo: 0x10d24, Hi: 0x10d27, Stride: 0x1}, + unicode.Range32{Lo: 0x10eab, Hi: 0x10eac, Stride: 0x1}, + unicode.Range32{Lo: 0x10efd, Hi: 0x10eff, Stride: 0x1}, unicode.Range32{Lo: 0x10f46, Hi: 0x10f50, Stride: 0x1}, + unicode.Range32{Lo: 0x10f82, Hi: 0x10f85, Stride: 0x1}, unicode.Range32{Lo: 0x11001, Hi: 0x11001, Stride: 0x1}, unicode.Range32{Lo: 0x11038, Hi: 0x11046, Stride: 0x1}, + unicode.Range32{Lo: 0x11070, Hi: 0x11070, Stride: 0x1}, + unicode.Range32{Lo: 0x11073, Hi: 0x11074, Stride: 0x1}, unicode.Range32{Lo: 0x1107f, Hi: 0x11081, Stride: 0x1}, unicode.Range32{Lo: 0x110b3, Hi: 0x110b6, Stride: 0x1}, unicode.Range32{Lo: 0x110b9, Hi: 0x110ba, Stride: 0x1}, + unicode.Range32{Lo: 0x110c2, Hi: 0x110c2, Stride: 0x1}, unicode.Range32{Lo: 0x11100, Hi: 0x11102, Stride: 0x1}, unicode.Range32{Lo: 0x11127, Hi: 0x1112b, Stride: 0x1}, unicode.Range32{Lo: 0x1112d, Hi: 0x11134, Stride: 0x1}, @@ -304,10 +315,12 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x11180, Hi: 0x11181, Stride: 0x1}, unicode.Range32{Lo: 0x111b6, Hi: 0x111be, Stride: 0x1}, unicode.Range32{Lo: 0x111c9, Hi: 0x111cc, Stride: 0x1}, + unicode.Range32{Lo: 0x111cf, Hi: 0x111cf, Stride: 0x1}, unicode.Range32{Lo: 0x1122f, Hi: 0x11231, Stride: 0x1}, unicode.Range32{Lo: 0x11234, Hi: 0x11234, Stride: 0x1}, unicode.Range32{Lo: 0x11236, Hi: 0x11237, Stride: 0x1}, unicode.Range32{Lo: 0x1123e, Hi: 0x1123e, Stride: 0x1}, + unicode.Range32{Lo: 0x11241, Hi: 0x11241, Stride: 0x1}, unicode.Range32{Lo: 0x112df, Hi: 0x112df, Stride: 0x1}, unicode.Range32{Lo: 0x112e3, Hi: 0x112ea, Stride: 0x1}, unicode.Range32{Lo: 0x11300, Hi: 0x11301, Stride: 0x1}, @@ -344,6 +357,10 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x11727, Hi: 0x1172b, Stride: 0x1}, unicode.Range32{Lo: 0x1182f, Hi: 0x11837, Stride: 0x1}, unicode.Range32{Lo: 0x11839, Hi: 0x1183a, Stride: 0x1}, + unicode.Range32{Lo: 0x11930, Hi: 0x11930, Stride: 0x1}, + unicode.Range32{Lo: 0x1193b, Hi: 0x1193c, Stride: 0x1}, + unicode.Range32{Lo: 0x1193e, Hi: 0x1193e, Stride: 0x1}, + unicode.Range32{Lo: 0x11943, Hi: 0x11943, Stride: 0x1}, unicode.Range32{Lo: 0x119d4, Hi: 0x119d7, Stride: 0x1}, unicode.Range32{Lo: 0x119da, Hi: 0x119db, Stride: 0x1}, unicode.Range32{Lo: 0x119e0, Hi: 0x119e0, Stride: 0x1}, @@ -371,11 +388,20 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x11d95, Hi: 0x11d95, Stride: 0x1}, unicode.Range32{Lo: 0x11d97, Hi: 0x11d97, Stride: 0x1}, unicode.Range32{Lo: 0x11ef3, Hi: 0x11ef4, Stride: 0x1}, + unicode.Range32{Lo: 0x11f00, Hi: 0x11f01, Stride: 0x1}, + unicode.Range32{Lo: 0x11f36, Hi: 0x11f3a, Stride: 0x1}, + unicode.Range32{Lo: 0x11f40, Hi: 0x11f40, Stride: 0x1}, + unicode.Range32{Lo: 0x11f42, Hi: 0x11f42, Stride: 0x1}, + unicode.Range32{Lo: 0x13440, Hi: 0x13440, Stride: 0x1}, + unicode.Range32{Lo: 0x13447, Hi: 0x13455, Stride: 0x1}, unicode.Range32{Lo: 0x16af0, Hi: 0x16af4, Stride: 0x1}, unicode.Range32{Lo: 0x16b30, Hi: 0x16b36, Stride: 0x1}, unicode.Range32{Lo: 0x16f4f, Hi: 0x16f4f, Stride: 0x1}, unicode.Range32{Lo: 0x16f8f, Hi: 0x16f92, Stride: 0x1}, + unicode.Range32{Lo: 0x16fe4, Hi: 0x16fe4, Stride: 0x1}, unicode.Range32{Lo: 0x1bc9d, Hi: 0x1bc9e, Stride: 0x1}, + unicode.Range32{Lo: 0x1cf00, Hi: 0x1cf2d, Stride: 0x1}, + unicode.Range32{Lo: 0x1cf30, Hi: 0x1cf46, Stride: 0x1}, unicode.Range32{Lo: 0x1d165, Hi: 0x1d165, Stride: 0x1}, unicode.Range32{Lo: 0x1d167, Hi: 0x1d169, Stride: 0x1}, unicode.Range32{Lo: 0x1d16e, Hi: 0x1d172, Stride: 0x1}, @@ -394,8 +420,11 @@ var _GraphemeExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x1e01b, Hi: 0x1e021, Stride: 0x1}, unicode.Range32{Lo: 0x1e023, Hi: 0x1e024, Stride: 0x1}, unicode.Range32{Lo: 0x1e026, Hi: 0x1e02a, Stride: 0x1}, + unicode.Range32{Lo: 0x1e08f, Hi: 0x1e08f, Stride: 0x1}, unicode.Range32{Lo: 0x1e130, Hi: 0x1e136, Stride: 0x1}, + unicode.Range32{Lo: 0x1e2ae, Hi: 0x1e2ae, Stride: 0x1}, unicode.Range32{Lo: 0x1e2ec, Hi: 0x1e2ef, Stride: 0x1}, + unicode.Range32{Lo: 0x1e4ec, Hi: 0x1e4ef, Stride: 0x1}, unicode.Range32{Lo: 0x1e8d0, Hi: 0x1e8d6, Stride: 0x1}, unicode.Range32{Lo: 0x1e944, Hi: 0x1e94a, Stride: 0x1}, unicode.Range32{Lo: 0x1f3fb, Hi: 0x1f3ff, Stride: 0x1}, @@ -1235,6 +1264,7 @@ var _GraphemePrepend = &unicode.RangeTable{ unicode.Range16{Lo: 0x600, Hi: 0x605, Stride: 0x1}, unicode.Range16{Lo: 0x6dd, Hi: 0x6dd, Stride: 0x1}, unicode.Range16{Lo: 0x70f, Hi: 0x70f, Stride: 0x1}, + unicode.Range16{Lo: 0x890, Hi: 0x891, Stride: 0x1}, unicode.Range16{Lo: 0x8e2, Hi: 0x8e2, Stride: 0x1}, unicode.Range16{Lo: 0xd4e, Hi: 0xd4e, Stride: 0x1}, }, @@ -1242,9 +1272,12 @@ var _GraphemePrepend = &unicode.RangeTable{ unicode.Range32{Lo: 0x110bd, Hi: 0x110bd, Stride: 0x1}, unicode.Range32{Lo: 0x110cd, Hi: 0x110cd, Stride: 0x1}, unicode.Range32{Lo: 0x111c2, Hi: 0x111c3, Stride: 0x1}, + unicode.Range32{Lo: 0x1193f, Hi: 0x1193f, Stride: 0x1}, + unicode.Range32{Lo: 0x11941, Hi: 0x11941, Stride: 0x1}, unicode.Range32{Lo: 0x11a3a, Hi: 0x11a3a, Stride: 0x1}, unicode.Range32{Lo: 0x11a84, Hi: 0x11a89, Stride: 0x1}, unicode.Range32{Lo: 0x11d46, Hi: 0x11d46, Stride: 0x1}, + unicode.Range32{Lo: 0x11f02, Hi: 0x11f02, Stride: 0x1}, }, LatinOffset: 0, } @@ -1289,6 +1322,7 @@ var _GraphemeSpacingMark = &unicode.RangeTable{ unicode.Range16{Lo: 0xcc3, Hi: 0xcc4, Stride: 0x1}, unicode.Range16{Lo: 0xcc7, Hi: 0xcc8, Stride: 0x1}, unicode.Range16{Lo: 0xcca, Hi: 0xccb, Stride: 0x1}, + unicode.Range16{Lo: 0xcf3, Hi: 0xcf3, Stride: 0x1}, unicode.Range16{Lo: 0xd02, Hi: 0xd03, Stride: 0x1}, unicode.Range16{Lo: 0xd3f, Hi: 0xd40, Stride: 0x1}, unicode.Range16{Lo: 0xd46, Hi: 0xd48, Stride: 0x1}, @@ -1305,6 +1339,8 @@ var _GraphemeSpacingMark = &unicode.RangeTable{ unicode.Range16{Lo: 0x103b, Hi: 0x103c, Stride: 0x1}, unicode.Range16{Lo: 0x1056, Hi: 0x1057, Stride: 0x1}, unicode.Range16{Lo: 0x1084, Hi: 0x1084, Stride: 0x1}, + unicode.Range16{Lo: 0x1715, Hi: 0x1715, Stride: 0x1}, + unicode.Range16{Lo: 0x1734, Hi: 0x1734, Stride: 0x1}, unicode.Range16{Lo: 0x17b6, Hi: 0x17b6, Stride: 0x1}, unicode.Range16{Lo: 0x17be, Hi: 0x17c5, Stride: 0x1}, unicode.Range16{Lo: 0x17c7, Hi: 0x17c8, Stride: 0x1}, @@ -1363,6 +1399,7 @@ var _GraphemeSpacingMark = &unicode.RangeTable{ unicode.Range32{Lo: 0x11182, Hi: 0x11182, Stride: 0x1}, unicode.Range32{Lo: 0x111b3, Hi: 0x111b5, Stride: 0x1}, unicode.Range32{Lo: 0x111bf, Hi: 0x111c0, Stride: 0x1}, + unicode.Range32{Lo: 0x111ce, Hi: 0x111ce, Stride: 0x1}, unicode.Range32{Lo: 0x1122c, Hi: 0x1122e, Stride: 0x1}, unicode.Range32{Lo: 0x11232, Hi: 0x11233, Stride: 0x1}, unicode.Range32{Lo: 0x11235, Hi: 0x11235, Stride: 0x1}, @@ -1390,10 +1427,14 @@ var _GraphemeSpacingMark = &unicode.RangeTable{ unicode.Range32{Lo: 0x116ac, Hi: 0x116ac, Stride: 0x1}, unicode.Range32{Lo: 0x116ae, Hi: 0x116af, Stride: 0x1}, unicode.Range32{Lo: 0x116b6, Hi: 0x116b6, Stride: 0x1}, - unicode.Range32{Lo: 0x11720, Hi: 0x11721, Stride: 0x1}, unicode.Range32{Lo: 0x11726, Hi: 0x11726, Stride: 0x1}, unicode.Range32{Lo: 0x1182c, Hi: 0x1182e, Stride: 0x1}, unicode.Range32{Lo: 0x11838, Hi: 0x11838, Stride: 0x1}, + unicode.Range32{Lo: 0x11931, Hi: 0x11935, Stride: 0x1}, + unicode.Range32{Lo: 0x11937, Hi: 0x11938, Stride: 0x1}, + unicode.Range32{Lo: 0x1193d, Hi: 0x1193d, Stride: 0x1}, + unicode.Range32{Lo: 0x11940, Hi: 0x11940, Stride: 0x1}, + unicode.Range32{Lo: 0x11942, Hi: 0x11942, Stride: 0x1}, unicode.Range32{Lo: 0x119d1, Hi: 0x119d3, Stride: 0x1}, unicode.Range32{Lo: 0x119dc, Hi: 0x119df, Stride: 0x1}, unicode.Range32{Lo: 0x119e4, Hi: 0x119e4, Stride: 0x1}, @@ -1409,7 +1450,12 @@ var _GraphemeSpacingMark = &unicode.RangeTable{ unicode.Range32{Lo: 0x11d93, Hi: 0x11d94, Stride: 0x1}, unicode.Range32{Lo: 0x11d96, Hi: 0x11d96, Stride: 0x1}, unicode.Range32{Lo: 0x11ef5, Hi: 0x11ef6, Stride: 0x1}, + unicode.Range32{Lo: 0x11f03, Hi: 0x11f03, Stride: 0x1}, + unicode.Range32{Lo: 0x11f34, Hi: 0x11f35, Stride: 0x1}, + unicode.Range32{Lo: 0x11f3e, Hi: 0x11f3f, Stride: 0x1}, + unicode.Range32{Lo: 0x11f41, Hi: 0x11f41, Stride: 0x1}, unicode.Range32{Lo: 0x16f51, Hi: 0x16f87, Stride: 0x1}, + unicode.Range32{Lo: 0x16ff0, Hi: 0x16ff1, Stride: 0x1}, unicode.Range32{Lo: 0x1d166, Hi: 0x1d166, Stride: 0x1}, unicode.Range32{Lo: 0x1d16d, Hi: 0x1d16d, Stride: 0x1}, }, @@ -1528,6 +1574,7 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range16{Lo: 0x2d2, Hi: 0x2d7, Stride: 0x1}, unicode.Range16{Lo: 0x2de, Hi: 0x2df, Stride: 0x1}, unicode.Range16{Lo: 0x2e0, Hi: 0x2e4, Stride: 0x1}, + unicode.Range16{Lo: 0x2e5, Hi: 0x2eb, Stride: 0x1}, unicode.Range16{Lo: 0x2ec, Hi: 0x2ec, Stride: 0x1}, unicode.Range16{Lo: 0x2ed, Hi: 0x2ed, Stride: 0x1}, unicode.Range16{Lo: 0x2ee, Hi: 0x2ee, Stride: 0x1}, @@ -1547,9 +1594,10 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range16{Lo: 0x48a, Hi: 0x52f, Stride: 0x1}, unicode.Range16{Lo: 0x531, Hi: 0x556, Stride: 0x1}, unicode.Range16{Lo: 0x559, Hi: 0x559, Stride: 0x1}, - unicode.Range16{Lo: 0x55b, Hi: 0x55c, Stride: 0x1}, + unicode.Range16{Lo: 0x55a, Hi: 0x55c, Stride: 0x1}, unicode.Range16{Lo: 0x55e, Hi: 0x55e, Stride: 0x1}, unicode.Range16{Lo: 0x560, Hi: 0x588, Stride: 0x1}, + unicode.Range16{Lo: 0x58a, Hi: 0x58a, Stride: 0x1}, unicode.Range16{Lo: 0x5f3, Hi: 0x5f3, Stride: 0x1}, unicode.Range16{Lo: 0x620, Hi: 0x63f, Stride: 0x1}, unicode.Range16{Lo: 0x640, Hi: 0x640, Stride: 0x1}, @@ -1574,8 +1622,10 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range16{Lo: 0x828, Hi: 0x828, Stride: 0x1}, unicode.Range16{Lo: 0x840, Hi: 0x858, Stride: 0x1}, unicode.Range16{Lo: 0x860, Hi: 0x86a, Stride: 0x1}, - unicode.Range16{Lo: 0x8a0, Hi: 0x8b4, Stride: 0x1}, - unicode.Range16{Lo: 0x8b6, Hi: 0x8bd, Stride: 0x1}, + unicode.Range16{Lo: 0x870, Hi: 0x887, Stride: 0x1}, + unicode.Range16{Lo: 0x889, Hi: 0x88e, Stride: 0x1}, + unicode.Range16{Lo: 0x8a0, Hi: 0x8c8, Stride: 0x1}, + unicode.Range16{Lo: 0x8c9, Hi: 0x8c9, Stride: 0x1}, unicode.Range16{Lo: 0x904, Hi: 0x939, Stride: 0x1}, unicode.Range16{Lo: 0x93d, Hi: 0x93d, Stride: 0x1}, unicode.Range16{Lo: 0x950, Hi: 0x950, Stride: 0x1}, @@ -1641,6 +1691,7 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range16{Lo: 0xc2a, Hi: 0xc39, Stride: 0x1}, unicode.Range16{Lo: 0xc3d, Hi: 0xc3d, Stride: 0x1}, unicode.Range16{Lo: 0xc58, Hi: 0xc5a, Stride: 0x1}, + unicode.Range16{Lo: 0xc5d, Hi: 0xc5d, Stride: 0x1}, unicode.Range16{Lo: 0xc60, Hi: 0xc61, Stride: 0x1}, unicode.Range16{Lo: 0xc80, Hi: 0xc80, Stride: 0x1}, unicode.Range16{Lo: 0xc85, Hi: 0xc8c, Stride: 0x1}, @@ -1649,10 +1700,10 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range16{Lo: 0xcaa, Hi: 0xcb3, Stride: 0x1}, unicode.Range16{Lo: 0xcb5, Hi: 0xcb9, Stride: 0x1}, unicode.Range16{Lo: 0xcbd, Hi: 0xcbd, Stride: 0x1}, - unicode.Range16{Lo: 0xcde, Hi: 0xcde, Stride: 0x1}, + unicode.Range16{Lo: 0xcdd, Hi: 0xcde, Stride: 0x1}, unicode.Range16{Lo: 0xce0, Hi: 0xce1, Stride: 0x1}, unicode.Range16{Lo: 0xcf1, Hi: 0xcf2, Stride: 0x1}, - unicode.Range16{Lo: 0xd05, Hi: 0xd0c, Stride: 0x1}, + unicode.Range16{Lo: 0xd04, Hi: 0xd0c, Stride: 0x1}, unicode.Range16{Lo: 0xd0e, Hi: 0xd10, Stride: 0x1}, unicode.Range16{Lo: 0xd12, Hi: 0xd3a, Stride: 0x1}, unicode.Range16{Lo: 0xd3d, Hi: 0xd3d, Stride: 0x1}, @@ -1700,9 +1751,8 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range16{Lo: 0x16a0, Hi: 0x16ea, Stride: 0x1}, unicode.Range16{Lo: 0x16ee, Hi: 0x16f0, Stride: 0x1}, unicode.Range16{Lo: 0x16f1, Hi: 0x16f8, Stride: 0x1}, - unicode.Range16{Lo: 0x1700, Hi: 0x170c, Stride: 0x1}, - unicode.Range16{Lo: 0x170e, Hi: 0x1711, Stride: 0x1}, - unicode.Range16{Lo: 0x1720, Hi: 0x1731, Stride: 0x1}, + unicode.Range16{Lo: 0x1700, Hi: 0x1711, Stride: 0x1}, + unicode.Range16{Lo: 0x171f, Hi: 0x1731, Stride: 0x1}, unicode.Range16{Lo: 0x1740, Hi: 0x1751, Stride: 0x1}, unicode.Range16{Lo: 0x1760, Hi: 0x176c, Stride: 0x1}, unicode.Range16{Lo: 0x176e, Hi: 0x1770, Stride: 0x1}, @@ -1716,7 +1766,7 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range16{Lo: 0x1900, Hi: 0x191e, Stride: 0x1}, unicode.Range16{Lo: 0x1a00, Hi: 0x1a16, Stride: 0x1}, unicode.Range16{Lo: 0x1b05, Hi: 0x1b33, Stride: 0x1}, - unicode.Range16{Lo: 0x1b45, Hi: 0x1b4b, Stride: 0x1}, + unicode.Range16{Lo: 0x1b45, Hi: 0x1b4c, Stride: 0x1}, unicode.Range16{Lo: 0x1b83, Hi: 0x1ba0, Stride: 0x1}, unicode.Range16{Lo: 0x1bae, Hi: 0x1baf, Stride: 0x1}, unicode.Range16{Lo: 0x1bba, Hi: 0x1be5, Stride: 0x1}, @@ -1778,9 +1828,7 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range16{Lo: 0x2183, Hi: 0x2184, Stride: 0x1}, unicode.Range16{Lo: 0x2185, Hi: 0x2188, Stride: 0x1}, unicode.Range16{Lo: 0x24b6, Hi: 0x24e9, Stride: 0x1}, - unicode.Range16{Lo: 0x2c00, Hi: 0x2c2e, Stride: 0x1}, - unicode.Range16{Lo: 0x2c30, Hi: 0x2c5e, Stride: 0x1}, - unicode.Range16{Lo: 0x2c60, Hi: 0x2c7b, Stride: 0x1}, + unicode.Range16{Lo: 0x2c00, Hi: 0x2c7b, Stride: 0x1}, unicode.Range16{Lo: 0x2c7c, Hi: 0x2c7d, Stride: 0x1}, unicode.Range16{Lo: 0x2c7e, Hi: 0x2ce4, Stride: 0x1}, unicode.Range16{Lo: 0x2ceb, Hi: 0x2cee, Stride: 0x1}, @@ -1805,7 +1853,7 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range16{Lo: 0x303c, Hi: 0x303c, Stride: 0x1}, unicode.Range16{Lo: 0x3105, Hi: 0x312f, Stride: 0x1}, unicode.Range16{Lo: 0x3131, Hi: 0x318e, Stride: 0x1}, - unicode.Range16{Lo: 0x31a0, Hi: 0x31ba, Stride: 0x1}, + unicode.Range16{Lo: 0x31a0, Hi: 0x31bf, Stride: 0x1}, unicode.Range16{Lo: 0xa000, Hi: 0xa014, Stride: 0x1}, unicode.Range16{Lo: 0xa015, Hi: 0xa015, Stride: 0x1}, unicode.Range16{Lo: 0xa016, Hi: 0xa48c, Stride: 0x1}, @@ -1822,6 +1870,7 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range16{Lo: 0xa69c, Hi: 0xa69d, Stride: 0x1}, unicode.Range16{Lo: 0xa6a0, Hi: 0xa6e5, Stride: 0x1}, unicode.Range16{Lo: 0xa6e6, Hi: 0xa6ef, Stride: 0x1}, + unicode.Range16{Lo: 0xa708, Hi: 0xa716, Stride: 0x1}, unicode.Range16{Lo: 0xa717, Hi: 0xa71f, Stride: 0x1}, unicode.Range16{Lo: 0xa720, Hi: 0xa721, Stride: 0x1}, unicode.Range16{Lo: 0xa722, Hi: 0xa76f, Stride: 0x1}, @@ -1831,8 +1880,12 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range16{Lo: 0xa789, Hi: 0xa78a, Stride: 0x1}, unicode.Range16{Lo: 0xa78b, Hi: 0xa78e, Stride: 0x1}, unicode.Range16{Lo: 0xa78f, Hi: 0xa78f, Stride: 0x1}, - unicode.Range16{Lo: 0xa790, Hi: 0xa7bf, Stride: 0x1}, - unicode.Range16{Lo: 0xa7c2, Hi: 0xa7c6, Stride: 0x1}, + unicode.Range16{Lo: 0xa790, Hi: 0xa7ca, Stride: 0x1}, + unicode.Range16{Lo: 0xa7d0, Hi: 0xa7d1, Stride: 0x1}, + unicode.Range16{Lo: 0xa7d3, Hi: 0xa7d3, Stride: 0x1}, + unicode.Range16{Lo: 0xa7d5, Hi: 0xa7d9, Stride: 0x1}, + unicode.Range16{Lo: 0xa7f2, Hi: 0xa7f4, Stride: 0x1}, + unicode.Range16{Lo: 0xa7f5, Hi: 0xa7f6, Stride: 0x1}, unicode.Range16{Lo: 0xa7f7, Hi: 0xa7f7, Stride: 0x1}, unicode.Range16{Lo: 0xa7f8, Hi: 0xa7f9, Stride: 0x1}, unicode.Range16{Lo: 0xa7fa, Hi: 0xa7fa, Stride: 0x1}, @@ -1864,7 +1917,8 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range16{Lo: 0xab30, Hi: 0xab5a, Stride: 0x1}, unicode.Range16{Lo: 0xab5b, Hi: 0xab5b, Stride: 0x1}, unicode.Range16{Lo: 0xab5c, Hi: 0xab5f, Stride: 0x1}, - unicode.Range16{Lo: 0xab60, Hi: 0xab67, Stride: 0x1}, + unicode.Range16{Lo: 0xab60, Hi: 0xab68, Stride: 0x1}, + unicode.Range16{Lo: 0xab69, Hi: 0xab69, Stride: 0x1}, unicode.Range16{Lo: 0xab70, Hi: 0xabbf, Stride: 0x1}, unicode.Range16{Lo: 0xabc0, Hi: 0xabe2, Stride: 0x1}, unicode.Range16{Lo: 0xac00, Hi: 0xd7a3, Stride: 0x1}, @@ -1914,9 +1968,20 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x104d8, Hi: 0x104fb, Stride: 0x1}, unicode.Range32{Lo: 0x10500, Hi: 0x10527, Stride: 0x1}, unicode.Range32{Lo: 0x10530, Hi: 0x10563, Stride: 0x1}, + unicode.Range32{Lo: 0x10570, Hi: 0x1057a, Stride: 0x1}, + unicode.Range32{Lo: 0x1057c, Hi: 0x1058a, Stride: 0x1}, + unicode.Range32{Lo: 0x1058c, Hi: 0x10592, Stride: 0x1}, + unicode.Range32{Lo: 0x10594, Hi: 0x10595, Stride: 0x1}, + unicode.Range32{Lo: 0x10597, Hi: 0x105a1, Stride: 0x1}, + unicode.Range32{Lo: 0x105a3, Hi: 0x105b1, Stride: 0x1}, + unicode.Range32{Lo: 0x105b3, Hi: 0x105b9, Stride: 0x1}, + unicode.Range32{Lo: 0x105bb, Hi: 0x105bc, Stride: 0x1}, unicode.Range32{Lo: 0x10600, Hi: 0x10736, Stride: 0x1}, unicode.Range32{Lo: 0x10740, Hi: 0x10755, Stride: 0x1}, unicode.Range32{Lo: 0x10760, Hi: 0x10767, Stride: 0x1}, + unicode.Range32{Lo: 0x10780, Hi: 0x10785, Stride: 0x1}, + unicode.Range32{Lo: 0x10787, Hi: 0x107b0, Stride: 0x1}, + unicode.Range32{Lo: 0x107b2, Hi: 0x107ba, Stride: 0x1}, unicode.Range32{Lo: 0x10800, Hi: 0x10805, Stride: 0x1}, unicode.Range32{Lo: 0x10808, Hi: 0x10808, Stride: 0x1}, unicode.Range32{Lo: 0x1080a, Hi: 0x10835, Stride: 0x1}, @@ -1947,15 +2012,22 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x10c80, Hi: 0x10cb2, Stride: 0x1}, unicode.Range32{Lo: 0x10cc0, Hi: 0x10cf2, Stride: 0x1}, unicode.Range32{Lo: 0x10d00, Hi: 0x10d23, Stride: 0x1}, + unicode.Range32{Lo: 0x10e80, Hi: 0x10ea9, Stride: 0x1}, + unicode.Range32{Lo: 0x10eb0, Hi: 0x10eb1, Stride: 0x1}, unicode.Range32{Lo: 0x10f00, Hi: 0x10f1c, Stride: 0x1}, unicode.Range32{Lo: 0x10f27, Hi: 0x10f27, Stride: 0x1}, unicode.Range32{Lo: 0x10f30, Hi: 0x10f45, Stride: 0x1}, + unicode.Range32{Lo: 0x10f70, Hi: 0x10f81, Stride: 0x1}, + unicode.Range32{Lo: 0x10fb0, Hi: 0x10fc4, Stride: 0x1}, unicode.Range32{Lo: 0x10fe0, Hi: 0x10ff6, Stride: 0x1}, unicode.Range32{Lo: 0x11003, Hi: 0x11037, Stride: 0x1}, + unicode.Range32{Lo: 0x11071, Hi: 0x11072, Stride: 0x1}, + unicode.Range32{Lo: 0x11075, Hi: 0x11075, Stride: 0x1}, unicode.Range32{Lo: 0x11083, Hi: 0x110af, Stride: 0x1}, unicode.Range32{Lo: 0x110d0, Hi: 0x110e8, Stride: 0x1}, unicode.Range32{Lo: 0x11103, Hi: 0x11126, Stride: 0x1}, unicode.Range32{Lo: 0x11144, Hi: 0x11144, Stride: 0x1}, + unicode.Range32{Lo: 0x11147, Hi: 0x11147, Stride: 0x1}, unicode.Range32{Lo: 0x11150, Hi: 0x11172, Stride: 0x1}, unicode.Range32{Lo: 0x11176, Hi: 0x11176, Stride: 0x1}, unicode.Range32{Lo: 0x11183, Hi: 0x111b2, Stride: 0x1}, @@ -1964,6 +2036,7 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x111dc, Hi: 0x111dc, Stride: 0x1}, unicode.Range32{Lo: 0x11200, Hi: 0x11211, Stride: 0x1}, unicode.Range32{Lo: 0x11213, Hi: 0x1122b, Stride: 0x1}, + unicode.Range32{Lo: 0x1123f, Hi: 0x11240, Stride: 0x1}, unicode.Range32{Lo: 0x11280, Hi: 0x11286, Stride: 0x1}, unicode.Range32{Lo: 0x11288, Hi: 0x11288, Stride: 0x1}, unicode.Range32{Lo: 0x1128a, Hi: 0x1128d, Stride: 0x1}, @@ -1981,7 +2054,7 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x1135d, Hi: 0x11361, Stride: 0x1}, unicode.Range32{Lo: 0x11400, Hi: 0x11434, Stride: 0x1}, unicode.Range32{Lo: 0x11447, Hi: 0x1144a, Stride: 0x1}, - unicode.Range32{Lo: 0x1145f, Hi: 0x1145f, Stride: 0x1}, + unicode.Range32{Lo: 0x1145f, Hi: 0x11461, Stride: 0x1}, unicode.Range32{Lo: 0x11480, Hi: 0x114af, Stride: 0x1}, unicode.Range32{Lo: 0x114c4, Hi: 0x114c5, Stride: 0x1}, unicode.Range32{Lo: 0x114c7, Hi: 0x114c7, Stride: 0x1}, @@ -1993,7 +2066,13 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x116b8, Hi: 0x116b8, Stride: 0x1}, unicode.Range32{Lo: 0x11800, Hi: 0x1182b, Stride: 0x1}, unicode.Range32{Lo: 0x118a0, Hi: 0x118df, Stride: 0x1}, - unicode.Range32{Lo: 0x118ff, Hi: 0x118ff, Stride: 0x1}, + unicode.Range32{Lo: 0x118ff, Hi: 0x11906, Stride: 0x1}, + unicode.Range32{Lo: 0x11909, Hi: 0x11909, Stride: 0x1}, + unicode.Range32{Lo: 0x1190c, Hi: 0x11913, Stride: 0x1}, + unicode.Range32{Lo: 0x11915, Hi: 0x11916, Stride: 0x1}, + unicode.Range32{Lo: 0x11918, Hi: 0x1192f, Stride: 0x1}, + unicode.Range32{Lo: 0x1193f, Hi: 0x1193f, Stride: 0x1}, + unicode.Range32{Lo: 0x11941, Hi: 0x11941, Stride: 0x1}, unicode.Range32{Lo: 0x119a0, Hi: 0x119a7, Stride: 0x1}, unicode.Range32{Lo: 0x119aa, Hi: 0x119d0, Stride: 0x1}, unicode.Range32{Lo: 0x119e1, Hi: 0x119e1, Stride: 0x1}, @@ -2004,7 +2083,7 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x11a50, Hi: 0x11a50, Stride: 0x1}, unicode.Range32{Lo: 0x11a5c, Hi: 0x11a89, Stride: 0x1}, unicode.Range32{Lo: 0x11a9d, Hi: 0x11a9d, Stride: 0x1}, - unicode.Range32{Lo: 0x11ac0, Hi: 0x11af8, Stride: 0x1}, + unicode.Range32{Lo: 0x11ab0, Hi: 0x11af8, Stride: 0x1}, unicode.Range32{Lo: 0x11c00, Hi: 0x11c08, Stride: 0x1}, unicode.Range32{Lo: 0x11c0a, Hi: 0x11c2e, Stride: 0x1}, unicode.Range32{Lo: 0x11c40, Hi: 0x11c40, Stride: 0x1}, @@ -2018,13 +2097,20 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x11d6a, Hi: 0x11d89, Stride: 0x1}, unicode.Range32{Lo: 0x11d98, Hi: 0x11d98, Stride: 0x1}, unicode.Range32{Lo: 0x11ee0, Hi: 0x11ef2, Stride: 0x1}, + unicode.Range32{Lo: 0x11f02, Hi: 0x11f02, Stride: 0x1}, + unicode.Range32{Lo: 0x11f04, Hi: 0x11f10, Stride: 0x1}, + unicode.Range32{Lo: 0x11f12, Hi: 0x11f33, Stride: 0x1}, + unicode.Range32{Lo: 0x11fb0, Hi: 0x11fb0, Stride: 0x1}, unicode.Range32{Lo: 0x12000, Hi: 0x12399, Stride: 0x1}, unicode.Range32{Lo: 0x12400, Hi: 0x1246e, Stride: 0x1}, unicode.Range32{Lo: 0x12480, Hi: 0x12543, Stride: 0x1}, - unicode.Range32{Lo: 0x13000, Hi: 0x1342e, Stride: 0x1}, + unicode.Range32{Lo: 0x12f90, Hi: 0x12ff0, Stride: 0x1}, + unicode.Range32{Lo: 0x13000, Hi: 0x1342f, Stride: 0x1}, + unicode.Range32{Lo: 0x13441, Hi: 0x13446, Stride: 0x1}, unicode.Range32{Lo: 0x14400, Hi: 0x14646, Stride: 0x1}, unicode.Range32{Lo: 0x16800, Hi: 0x16a38, Stride: 0x1}, unicode.Range32{Lo: 0x16a40, Hi: 0x16a5e, Stride: 0x1}, + unicode.Range32{Lo: 0x16a70, Hi: 0x16abe, Stride: 0x1}, unicode.Range32{Lo: 0x16ad0, Hi: 0x16aed, Stride: 0x1}, unicode.Range32{Lo: 0x16b00, Hi: 0x16b2f, Stride: 0x1}, unicode.Range32{Lo: 0x16b40, Hi: 0x16b43, Stride: 0x1}, @@ -2070,10 +2156,22 @@ var _WordALetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x1d78a, Hi: 0x1d7a8, Stride: 0x1}, unicode.Range32{Lo: 0x1d7aa, Hi: 0x1d7c2, Stride: 0x1}, unicode.Range32{Lo: 0x1d7c4, Hi: 0x1d7cb, Stride: 0x1}, + unicode.Range32{Lo: 0x1df00, Hi: 0x1df09, Stride: 0x1}, + unicode.Range32{Lo: 0x1df0a, Hi: 0x1df0a, Stride: 0x1}, + unicode.Range32{Lo: 0x1df0b, Hi: 0x1df1e, Stride: 0x1}, + unicode.Range32{Lo: 0x1df25, Hi: 0x1df2a, Stride: 0x1}, + unicode.Range32{Lo: 0x1e030, Hi: 0x1e06d, Stride: 0x1}, unicode.Range32{Lo: 0x1e100, Hi: 0x1e12c, Stride: 0x1}, unicode.Range32{Lo: 0x1e137, Hi: 0x1e13d, Stride: 0x1}, unicode.Range32{Lo: 0x1e14e, Hi: 0x1e14e, Stride: 0x1}, + unicode.Range32{Lo: 0x1e290, Hi: 0x1e2ad, Stride: 0x1}, unicode.Range32{Lo: 0x1e2c0, Hi: 0x1e2eb, Stride: 0x1}, + unicode.Range32{Lo: 0x1e4d0, Hi: 0x1e4ea, Stride: 0x1}, + unicode.Range32{Lo: 0x1e4eb, Hi: 0x1e4eb, Stride: 0x1}, + unicode.Range32{Lo: 0x1e7e0, Hi: 0x1e7e6, Stride: 0x1}, + unicode.Range32{Lo: 0x1e7e8, Hi: 0x1e7eb, Stride: 0x1}, + unicode.Range32{Lo: 0x1e7ed, Hi: 0x1e7ee, Stride: 0x1}, + unicode.Range32{Lo: 0x1e7f0, Hi: 0x1e7fe, Stride: 0x1}, unicode.Range32{Lo: 0x1e800, Hi: 0x1e8c4, Stride: 0x1}, unicode.Range32{Lo: 0x1e900, Hi: 0x1e943, Stride: 0x1}, unicode.Range32{Lo: 0x1e94b, Hi: 0x1e94b, Stride: 0x1}, @@ -2158,7 +2256,8 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x825, Hi: 0x827, Stride: 0x1}, unicode.Range16{Lo: 0x829, Hi: 0x82d, Stride: 0x1}, unicode.Range16{Lo: 0x859, Hi: 0x85b, Stride: 0x1}, - unicode.Range16{Lo: 0x8d3, Hi: 0x8e1, Stride: 0x1}, + unicode.Range16{Lo: 0x898, Hi: 0x89f, Stride: 0x1}, + unicode.Range16{Lo: 0x8ca, Hi: 0x8e1, Stride: 0x1}, unicode.Range16{Lo: 0x8e3, Hi: 0x902, Stride: 0x1}, unicode.Range16{Lo: 0x903, Hi: 0x903, Stride: 0x1}, unicode.Range16{Lo: 0x93a, Hi: 0x93a, Stride: 0x1}, @@ -2213,7 +2312,7 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xb47, Hi: 0xb48, Stride: 0x1}, unicode.Range16{Lo: 0xb4b, Hi: 0xb4c, Stride: 0x1}, unicode.Range16{Lo: 0xb4d, Hi: 0xb4d, Stride: 0x1}, - unicode.Range16{Lo: 0xb56, Hi: 0xb56, Stride: 0x1}, + unicode.Range16{Lo: 0xb55, Hi: 0xb56, Stride: 0x1}, unicode.Range16{Lo: 0xb57, Hi: 0xb57, Stride: 0x1}, unicode.Range16{Lo: 0xb62, Hi: 0xb63, Stride: 0x1}, unicode.Range16{Lo: 0xb82, Hi: 0xb82, Stride: 0x1}, @@ -2227,6 +2326,7 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xc00, Hi: 0xc00, Stride: 0x1}, unicode.Range16{Lo: 0xc01, Hi: 0xc03, Stride: 0x1}, unicode.Range16{Lo: 0xc04, Hi: 0xc04, Stride: 0x1}, + unicode.Range16{Lo: 0xc3c, Hi: 0xc3c, Stride: 0x1}, unicode.Range16{Lo: 0xc3e, Hi: 0xc40, Stride: 0x1}, unicode.Range16{Lo: 0xc41, Hi: 0xc44, Stride: 0x1}, unicode.Range16{Lo: 0xc46, Hi: 0xc48, Stride: 0x1}, @@ -2245,6 +2345,7 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xccc, Hi: 0xccd, Stride: 0x1}, unicode.Range16{Lo: 0xcd5, Hi: 0xcd6, Stride: 0x1}, unicode.Range16{Lo: 0xce2, Hi: 0xce3, Stride: 0x1}, + unicode.Range16{Lo: 0xcf3, Hi: 0xcf3, Stride: 0x1}, unicode.Range16{Lo: 0xd00, Hi: 0xd01, Stride: 0x1}, unicode.Range16{Lo: 0xd02, Hi: 0xd03, Stride: 0x1}, unicode.Range16{Lo: 0xd3b, Hi: 0xd3c, Stride: 0x1}, @@ -2255,6 +2356,7 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xd4d, Hi: 0xd4d, Stride: 0x1}, unicode.Range16{Lo: 0xd57, Hi: 0xd57, Stride: 0x1}, unicode.Range16{Lo: 0xd62, Hi: 0xd63, Stride: 0x1}, + unicode.Range16{Lo: 0xd81, Hi: 0xd81, Stride: 0x1}, unicode.Range16{Lo: 0xd82, Hi: 0xd83, Stride: 0x1}, unicode.Range16{Lo: 0xdca, Hi: 0xdca, Stride: 0x1}, unicode.Range16{Lo: 0xdcf, Hi: 0xdd1, Stride: 0x1}, @@ -2267,7 +2369,7 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xe47, Hi: 0xe4e, Stride: 0x1}, unicode.Range16{Lo: 0xeb1, Hi: 0xeb1, Stride: 0x1}, unicode.Range16{Lo: 0xeb4, Hi: 0xebc, Stride: 0x1}, - unicode.Range16{Lo: 0xec8, Hi: 0xecd, Stride: 0x1}, + unicode.Range16{Lo: 0xec8, Hi: 0xece, Stride: 0x1}, unicode.Range16{Lo: 0xf18, Hi: 0xf19, Stride: 0x1}, unicode.Range16{Lo: 0xf35, Hi: 0xf35, Stride: 0x1}, unicode.Range16{Lo: 0xf37, Hi: 0xf37, Stride: 0x1}, @@ -2304,7 +2406,9 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x109d, Hi: 0x109d, Stride: 0x1}, unicode.Range16{Lo: 0x135d, Hi: 0x135f, Stride: 0x1}, unicode.Range16{Lo: 0x1712, Hi: 0x1714, Stride: 0x1}, - unicode.Range16{Lo: 0x1732, Hi: 0x1734, Stride: 0x1}, + unicode.Range16{Lo: 0x1715, Hi: 0x1715, Stride: 0x1}, + unicode.Range16{Lo: 0x1732, Hi: 0x1733, Stride: 0x1}, + unicode.Range16{Lo: 0x1734, Hi: 0x1734, Stride: 0x1}, unicode.Range16{Lo: 0x1752, Hi: 0x1753, Stride: 0x1}, unicode.Range16{Lo: 0x1772, Hi: 0x1773, Stride: 0x1}, unicode.Range16{Lo: 0x17b4, Hi: 0x17b5, Stride: 0x1}, @@ -2316,6 +2420,7 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x17c9, Hi: 0x17d3, Stride: 0x1}, unicode.Range16{Lo: 0x17dd, Hi: 0x17dd, Stride: 0x1}, unicode.Range16{Lo: 0x180b, Hi: 0x180d, Stride: 0x1}, + unicode.Range16{Lo: 0x180f, Hi: 0x180f, Stride: 0x1}, unicode.Range16{Lo: 0x1885, Hi: 0x1886, Stride: 0x1}, unicode.Range16{Lo: 0x18a9, Hi: 0x18a9, Stride: 0x1}, unicode.Range16{Lo: 0x1920, Hi: 0x1922, Stride: 0x1}, @@ -2343,6 +2448,7 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x1a7f, Hi: 0x1a7f, Stride: 0x1}, unicode.Range16{Lo: 0x1ab0, Hi: 0x1abd, Stride: 0x1}, unicode.Range16{Lo: 0x1abe, Hi: 0x1abe, Stride: 0x1}, + unicode.Range16{Lo: 0x1abf, Hi: 0x1ace, Stride: 0x1}, unicode.Range16{Lo: 0x1b00, Hi: 0x1b03, Stride: 0x1}, unicode.Range16{Lo: 0x1b04, Hi: 0x1b04, Stride: 0x1}, unicode.Range16{Lo: 0x1b34, Hi: 0x1b34, Stride: 0x1}, @@ -2382,8 +2488,7 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x1cf4, Hi: 0x1cf4, Stride: 0x1}, unicode.Range16{Lo: 0x1cf7, Hi: 0x1cf7, Stride: 0x1}, unicode.Range16{Lo: 0x1cf8, Hi: 0x1cf9, Stride: 0x1}, - unicode.Range16{Lo: 0x1dc0, Hi: 0x1df9, Stride: 0x1}, - unicode.Range16{Lo: 0x1dfb, Hi: 0x1dff, Stride: 0x1}, + unicode.Range16{Lo: 0x1dc0, Hi: 0x1dff, Stride: 0x1}, unicode.Range16{Lo: 0x200c, Hi: 0x200c, Stride: 0x1}, unicode.Range16{Lo: 0x20d0, Hi: 0x20dc, Stride: 0x1}, unicode.Range16{Lo: 0x20dd, Hi: 0x20e0, Stride: 0x1}, @@ -2407,6 +2512,7 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xa823, Hi: 0xa824, Stride: 0x1}, unicode.Range16{Lo: 0xa825, Hi: 0xa826, Stride: 0x1}, unicode.Range16{Lo: 0xa827, Hi: 0xa827, Stride: 0x1}, + unicode.Range16{Lo: 0xa82c, Hi: 0xa82c, Stride: 0x1}, unicode.Range16{Lo: 0xa880, Hi: 0xa881, Stride: 0x1}, unicode.Range16{Lo: 0xa8b4, Hi: 0xa8c3, Stride: 0x1}, unicode.Range16{Lo: 0xa8c4, Hi: 0xa8c5, Stride: 0x1}, @@ -2468,17 +2574,23 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x10a3f, Hi: 0x10a3f, Stride: 0x1}, unicode.Range32{Lo: 0x10ae5, Hi: 0x10ae6, Stride: 0x1}, unicode.Range32{Lo: 0x10d24, Hi: 0x10d27, Stride: 0x1}, + unicode.Range32{Lo: 0x10eab, Hi: 0x10eac, Stride: 0x1}, + unicode.Range32{Lo: 0x10efd, Hi: 0x10eff, Stride: 0x1}, unicode.Range32{Lo: 0x10f46, Hi: 0x10f50, Stride: 0x1}, + unicode.Range32{Lo: 0x10f82, Hi: 0x10f85, Stride: 0x1}, unicode.Range32{Lo: 0x11000, Hi: 0x11000, Stride: 0x1}, unicode.Range32{Lo: 0x11001, Hi: 0x11001, Stride: 0x1}, unicode.Range32{Lo: 0x11002, Hi: 0x11002, Stride: 0x1}, unicode.Range32{Lo: 0x11038, Hi: 0x11046, Stride: 0x1}, + unicode.Range32{Lo: 0x11070, Hi: 0x11070, Stride: 0x1}, + unicode.Range32{Lo: 0x11073, Hi: 0x11074, Stride: 0x1}, unicode.Range32{Lo: 0x1107f, Hi: 0x11081, Stride: 0x1}, unicode.Range32{Lo: 0x11082, Hi: 0x11082, Stride: 0x1}, unicode.Range32{Lo: 0x110b0, Hi: 0x110b2, Stride: 0x1}, unicode.Range32{Lo: 0x110b3, Hi: 0x110b6, Stride: 0x1}, unicode.Range32{Lo: 0x110b7, Hi: 0x110b8, Stride: 0x1}, unicode.Range32{Lo: 0x110b9, Hi: 0x110ba, Stride: 0x1}, + unicode.Range32{Lo: 0x110c2, Hi: 0x110c2, Stride: 0x1}, unicode.Range32{Lo: 0x11100, Hi: 0x11102, Stride: 0x1}, unicode.Range32{Lo: 0x11127, Hi: 0x1112b, Stride: 0x1}, unicode.Range32{Lo: 0x1112c, Hi: 0x1112c, Stride: 0x1}, @@ -2491,6 +2603,8 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x111b6, Hi: 0x111be, Stride: 0x1}, unicode.Range32{Lo: 0x111bf, Hi: 0x111c0, Stride: 0x1}, unicode.Range32{Lo: 0x111c9, Hi: 0x111cc, Stride: 0x1}, + unicode.Range32{Lo: 0x111ce, Hi: 0x111ce, Stride: 0x1}, + unicode.Range32{Lo: 0x111cf, Hi: 0x111cf, Stride: 0x1}, unicode.Range32{Lo: 0x1122c, Hi: 0x1122e, Stride: 0x1}, unicode.Range32{Lo: 0x1122f, Hi: 0x11231, Stride: 0x1}, unicode.Range32{Lo: 0x11232, Hi: 0x11233, Stride: 0x1}, @@ -2498,6 +2612,7 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x11235, Hi: 0x11235, Stride: 0x1}, unicode.Range32{Lo: 0x11236, Hi: 0x11237, Stride: 0x1}, unicode.Range32{Lo: 0x1123e, Hi: 0x1123e, Stride: 0x1}, + unicode.Range32{Lo: 0x11241, Hi: 0x11241, Stride: 0x1}, unicode.Range32{Lo: 0x112df, Hi: 0x112df, Stride: 0x1}, unicode.Range32{Lo: 0x112e0, Hi: 0x112e2, Stride: 0x1}, unicode.Range32{Lo: 0x112e3, Hi: 0x112ea, Stride: 0x1}, @@ -2557,6 +2672,14 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x1182f, Hi: 0x11837, Stride: 0x1}, unicode.Range32{Lo: 0x11838, Hi: 0x11838, Stride: 0x1}, unicode.Range32{Lo: 0x11839, Hi: 0x1183a, Stride: 0x1}, + unicode.Range32{Lo: 0x11930, Hi: 0x11935, Stride: 0x1}, + unicode.Range32{Lo: 0x11937, Hi: 0x11938, Stride: 0x1}, + unicode.Range32{Lo: 0x1193b, Hi: 0x1193c, Stride: 0x1}, + unicode.Range32{Lo: 0x1193d, Hi: 0x1193d, Stride: 0x1}, + unicode.Range32{Lo: 0x1193e, Hi: 0x1193e, Stride: 0x1}, + unicode.Range32{Lo: 0x11940, Hi: 0x11940, Stride: 0x1}, + unicode.Range32{Lo: 0x11942, Hi: 0x11942, Stride: 0x1}, + unicode.Range32{Lo: 0x11943, Hi: 0x11943, Stride: 0x1}, unicode.Range32{Lo: 0x119d1, Hi: 0x119d3, Stride: 0x1}, unicode.Range32{Lo: 0x119d4, Hi: 0x119d7, Stride: 0x1}, unicode.Range32{Lo: 0x119da, Hi: 0x119db, Stride: 0x1}, @@ -2599,12 +2722,26 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x11d97, Hi: 0x11d97, Stride: 0x1}, unicode.Range32{Lo: 0x11ef3, Hi: 0x11ef4, Stride: 0x1}, unicode.Range32{Lo: 0x11ef5, Hi: 0x11ef6, Stride: 0x1}, + unicode.Range32{Lo: 0x11f00, Hi: 0x11f01, Stride: 0x1}, + unicode.Range32{Lo: 0x11f03, Hi: 0x11f03, Stride: 0x1}, + unicode.Range32{Lo: 0x11f34, Hi: 0x11f35, Stride: 0x1}, + unicode.Range32{Lo: 0x11f36, Hi: 0x11f3a, Stride: 0x1}, + unicode.Range32{Lo: 0x11f3e, Hi: 0x11f3f, Stride: 0x1}, + unicode.Range32{Lo: 0x11f40, Hi: 0x11f40, Stride: 0x1}, + unicode.Range32{Lo: 0x11f41, Hi: 0x11f41, Stride: 0x1}, + unicode.Range32{Lo: 0x11f42, Hi: 0x11f42, Stride: 0x1}, + unicode.Range32{Lo: 0x13440, Hi: 0x13440, Stride: 0x1}, + unicode.Range32{Lo: 0x13447, Hi: 0x13455, Stride: 0x1}, unicode.Range32{Lo: 0x16af0, Hi: 0x16af4, Stride: 0x1}, unicode.Range32{Lo: 0x16b30, Hi: 0x16b36, Stride: 0x1}, unicode.Range32{Lo: 0x16f4f, Hi: 0x16f4f, Stride: 0x1}, unicode.Range32{Lo: 0x16f51, Hi: 0x16f87, Stride: 0x1}, unicode.Range32{Lo: 0x16f8f, Hi: 0x16f92, Stride: 0x1}, + unicode.Range32{Lo: 0x16fe4, Hi: 0x16fe4, Stride: 0x1}, + unicode.Range32{Lo: 0x16ff0, Hi: 0x16ff1, Stride: 0x1}, unicode.Range32{Lo: 0x1bc9d, Hi: 0x1bc9e, Stride: 0x1}, + unicode.Range32{Lo: 0x1cf00, Hi: 0x1cf2d, Stride: 0x1}, + unicode.Range32{Lo: 0x1cf30, Hi: 0x1cf46, Stride: 0x1}, unicode.Range32{Lo: 0x1d165, Hi: 0x1d166, Stride: 0x1}, unicode.Range32{Lo: 0x1d167, Hi: 0x1d169, Stride: 0x1}, unicode.Range32{Lo: 0x1d16d, Hi: 0x1d172, Stride: 0x1}, @@ -2623,8 +2760,11 @@ var _WordExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x1e01b, Hi: 0x1e021, Stride: 0x1}, unicode.Range32{Lo: 0x1e023, Hi: 0x1e024, Stride: 0x1}, unicode.Range32{Lo: 0x1e026, Hi: 0x1e02a, Stride: 0x1}, + unicode.Range32{Lo: 0x1e08f, Hi: 0x1e08f, Stride: 0x1}, unicode.Range32{Lo: 0x1e130, Hi: 0x1e136, Stride: 0x1}, + unicode.Range32{Lo: 0x1e2ae, Hi: 0x1e2ae, Stride: 0x1}, unicode.Range32{Lo: 0x1e2ec, Hi: 0x1e2ef, Stride: 0x1}, + unicode.Range32{Lo: 0x1e4ec, Hi: 0x1e4ef, Stride: 0x1}, unicode.Range32{Lo: 0x1e8d0, Hi: 0x1e8d6, Stride: 0x1}, unicode.Range32{Lo: 0x1e944, Hi: 0x1e94a, Stride: 0x1}, unicode.Range32{Lo: 0x1f3fb, Hi: 0x1f3ff, Stride: 0x1}, @@ -2654,6 +2794,7 @@ var _WordFormat = &unicode.RangeTable{ unicode.Range16{Lo: 0x61c, Hi: 0x61c, Stride: 0x1}, unicode.Range16{Lo: 0x6dd, Hi: 0x6dd, Stride: 0x1}, unicode.Range16{Lo: 0x70f, Hi: 0x70f, Stride: 0x1}, + unicode.Range16{Lo: 0x890, Hi: 0x891, Stride: 0x1}, unicode.Range16{Lo: 0x8e2, Hi: 0x8e2, Stride: 0x1}, unicode.Range16{Lo: 0x180e, Hi: 0x180e, Stride: 0x1}, unicode.Range16{Lo: 0x200e, Hi: 0x200f, Stride: 0x1}, @@ -2666,7 +2807,7 @@ var _WordFormat = &unicode.RangeTable{ R32: []unicode.Range32{ unicode.Range32{Lo: 0x110bd, Hi: 0x110bd, Stride: 0x1}, unicode.Range32{Lo: 0x110cd, Hi: 0x110cd, Stride: 0x1}, - unicode.Range32{Lo: 0x13430, Hi: 0x13438, Stride: 0x1}, + unicode.Range32{Lo: 0x13430, Hi: 0x1343f, Stride: 0x1}, unicode.Range32{Lo: 0x1bca0, Hi: 0x1bca3, Stride: 0x1}, unicode.Range32{Lo: 0x1d173, Hi: 0x1d17a, Stride: 0x1}, unicode.Range32{Lo: 0xe0001, Hi: 0xe0001, Stride: 0x1}, @@ -2706,7 +2847,12 @@ var _WordKatakana = &unicode.RangeTable{ unicode.Range16{Lo: 0xff71, Hi: 0xff9d, Stride: 0x1}, }, R32: []unicode.Range32{ + unicode.Range32{Lo: 0x1aff0, Hi: 0x1aff3, Stride: 0x1}, + unicode.Range32{Lo: 0x1aff5, Hi: 0x1affb, Stride: 0x1}, + unicode.Range32{Lo: 0x1affd, Hi: 0x1affe, Stride: 0x1}, unicode.Range32{Lo: 0x1b000, Hi: 0x1b000, Stride: 0x1}, + unicode.Range32{Lo: 0x1b120, Hi: 0x1b122, Stride: 0x1}, + unicode.Range32{Lo: 0x1b155, Hi: 0x1b155, Stride: 0x1}, unicode.Range32{Lo: 0x1b164, Hi: 0x1b167, Stride: 0x1}, }, LatinOffset: 0, @@ -2724,6 +2870,7 @@ var _WordMidLetter = &unicode.RangeTable{ unicode.Range16{Lo: 0x3a, Hi: 0x3a, Stride: 0x1}, unicode.Range16{Lo: 0xb7, Hi: 0xb7, Stride: 0x1}, unicode.Range16{Lo: 0x387, Hi: 0x387, Stride: 0x1}, + unicode.Range16{Lo: 0x55f, Hi: 0x55f, Stride: 0x1}, unicode.Range16{Lo: 0x5f4, Hi: 0x5f4, Stride: 0x1}, unicode.Range16{Lo: 0x2027, Hi: 0x2027, Stride: 0x1}, unicode.Range16{Lo: 0xfe13, Hi: 0xfe13, Stride: 0x1}, @@ -2831,15 +2978,20 @@ var _WordNumeric = &unicode.RangeTable{ unicode.Range32{Lo: 0x116c0, Hi: 0x116c9, Stride: 0x1}, unicode.Range32{Lo: 0x11730, Hi: 0x11739, Stride: 0x1}, unicode.Range32{Lo: 0x118e0, Hi: 0x118e9, Stride: 0x1}, + unicode.Range32{Lo: 0x11950, Hi: 0x11959, Stride: 0x1}, unicode.Range32{Lo: 0x11c50, Hi: 0x11c59, Stride: 0x1}, unicode.Range32{Lo: 0x11d50, Hi: 0x11d59, Stride: 0x1}, unicode.Range32{Lo: 0x11da0, Hi: 0x11da9, Stride: 0x1}, + unicode.Range32{Lo: 0x11f50, Hi: 0x11f59, Stride: 0x1}, unicode.Range32{Lo: 0x16a60, Hi: 0x16a69, Stride: 0x1}, + unicode.Range32{Lo: 0x16ac0, Hi: 0x16ac9, Stride: 0x1}, unicode.Range32{Lo: 0x16b50, Hi: 0x16b59, Stride: 0x1}, unicode.Range32{Lo: 0x1d7ce, Hi: 0x1d7ff, Stride: 0x1}, unicode.Range32{Lo: 0x1e140, Hi: 0x1e149, Stride: 0x1}, unicode.Range32{Lo: 0x1e2f0, Hi: 0x1e2f9, Stride: 0x1}, + unicode.Range32{Lo: 0x1e4f0, Hi: 0x1e4f9, Stride: 0x1}, unicode.Range32{Lo: 0x1e950, Hi: 0x1e959, Stride: 0x1}, + unicode.Range32{Lo: 0x1fbf0, Hi: 0x1fbf9, Stride: 0x1}, }, LatinOffset: 1, } @@ -3099,6 +3251,14 @@ var _SentenceClose = &unicode.RangeTable{ unicode.Range16{Lo: 0x2e28, Hi: 0x2e28, Stride: 0x1}, unicode.Range16{Lo: 0x2e29, Hi: 0x2e29, Stride: 0x1}, unicode.Range16{Lo: 0x2e42, Hi: 0x2e42, Stride: 0x1}, + unicode.Range16{Lo: 0x2e55, Hi: 0x2e55, Stride: 0x1}, + unicode.Range16{Lo: 0x2e56, Hi: 0x2e56, Stride: 0x1}, + unicode.Range16{Lo: 0x2e57, Hi: 0x2e57, Stride: 0x1}, + unicode.Range16{Lo: 0x2e58, Hi: 0x2e58, Stride: 0x1}, + unicode.Range16{Lo: 0x2e59, Hi: 0x2e59, Stride: 0x1}, + unicode.Range16{Lo: 0x2e5a, Hi: 0x2e5a, Stride: 0x1}, + unicode.Range16{Lo: 0x2e5b, Hi: 0x2e5b, Stride: 0x1}, + unicode.Range16{Lo: 0x2e5c, Hi: 0x2e5c, Stride: 0x1}, unicode.Range16{Lo: 0x3008, Hi: 0x3008, Stride: 0x1}, unicode.Range16{Lo: 0x3009, Hi: 0x3009, Stride: 0x1}, unicode.Range16{Lo: 0x300a, Hi: 0x300a, Stride: 0x1}, @@ -3191,7 +3351,8 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x825, Hi: 0x827, Stride: 0x1}, unicode.Range16{Lo: 0x829, Hi: 0x82d, Stride: 0x1}, unicode.Range16{Lo: 0x859, Hi: 0x85b, Stride: 0x1}, - unicode.Range16{Lo: 0x8d3, Hi: 0x8e1, Stride: 0x1}, + unicode.Range16{Lo: 0x898, Hi: 0x89f, Stride: 0x1}, + unicode.Range16{Lo: 0x8ca, Hi: 0x8e1, Stride: 0x1}, unicode.Range16{Lo: 0x8e3, Hi: 0x902, Stride: 0x1}, unicode.Range16{Lo: 0x903, Hi: 0x903, Stride: 0x1}, unicode.Range16{Lo: 0x93a, Hi: 0x93a, Stride: 0x1}, @@ -3246,7 +3407,7 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xb47, Hi: 0xb48, Stride: 0x1}, unicode.Range16{Lo: 0xb4b, Hi: 0xb4c, Stride: 0x1}, unicode.Range16{Lo: 0xb4d, Hi: 0xb4d, Stride: 0x1}, - unicode.Range16{Lo: 0xb56, Hi: 0xb56, Stride: 0x1}, + unicode.Range16{Lo: 0xb55, Hi: 0xb56, Stride: 0x1}, unicode.Range16{Lo: 0xb57, Hi: 0xb57, Stride: 0x1}, unicode.Range16{Lo: 0xb62, Hi: 0xb63, Stride: 0x1}, unicode.Range16{Lo: 0xb82, Hi: 0xb82, Stride: 0x1}, @@ -3260,6 +3421,7 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xc00, Hi: 0xc00, Stride: 0x1}, unicode.Range16{Lo: 0xc01, Hi: 0xc03, Stride: 0x1}, unicode.Range16{Lo: 0xc04, Hi: 0xc04, Stride: 0x1}, + unicode.Range16{Lo: 0xc3c, Hi: 0xc3c, Stride: 0x1}, unicode.Range16{Lo: 0xc3e, Hi: 0xc40, Stride: 0x1}, unicode.Range16{Lo: 0xc41, Hi: 0xc44, Stride: 0x1}, unicode.Range16{Lo: 0xc46, Hi: 0xc48, Stride: 0x1}, @@ -3278,6 +3440,7 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xccc, Hi: 0xccd, Stride: 0x1}, unicode.Range16{Lo: 0xcd5, Hi: 0xcd6, Stride: 0x1}, unicode.Range16{Lo: 0xce2, Hi: 0xce3, Stride: 0x1}, + unicode.Range16{Lo: 0xcf3, Hi: 0xcf3, Stride: 0x1}, unicode.Range16{Lo: 0xd00, Hi: 0xd01, Stride: 0x1}, unicode.Range16{Lo: 0xd02, Hi: 0xd03, Stride: 0x1}, unicode.Range16{Lo: 0xd3b, Hi: 0xd3c, Stride: 0x1}, @@ -3288,6 +3451,7 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xd4d, Hi: 0xd4d, Stride: 0x1}, unicode.Range16{Lo: 0xd57, Hi: 0xd57, Stride: 0x1}, unicode.Range16{Lo: 0xd62, Hi: 0xd63, Stride: 0x1}, + unicode.Range16{Lo: 0xd81, Hi: 0xd81, Stride: 0x1}, unicode.Range16{Lo: 0xd82, Hi: 0xd83, Stride: 0x1}, unicode.Range16{Lo: 0xdca, Hi: 0xdca, Stride: 0x1}, unicode.Range16{Lo: 0xdcf, Hi: 0xdd1, Stride: 0x1}, @@ -3300,7 +3464,7 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xe47, Hi: 0xe4e, Stride: 0x1}, unicode.Range16{Lo: 0xeb1, Hi: 0xeb1, Stride: 0x1}, unicode.Range16{Lo: 0xeb4, Hi: 0xebc, Stride: 0x1}, - unicode.Range16{Lo: 0xec8, Hi: 0xecd, Stride: 0x1}, + unicode.Range16{Lo: 0xec8, Hi: 0xece, Stride: 0x1}, unicode.Range16{Lo: 0xf18, Hi: 0xf19, Stride: 0x1}, unicode.Range16{Lo: 0xf35, Hi: 0xf35, Stride: 0x1}, unicode.Range16{Lo: 0xf37, Hi: 0xf37, Stride: 0x1}, @@ -3337,7 +3501,9 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x109d, Hi: 0x109d, Stride: 0x1}, unicode.Range16{Lo: 0x135d, Hi: 0x135f, Stride: 0x1}, unicode.Range16{Lo: 0x1712, Hi: 0x1714, Stride: 0x1}, - unicode.Range16{Lo: 0x1732, Hi: 0x1734, Stride: 0x1}, + unicode.Range16{Lo: 0x1715, Hi: 0x1715, Stride: 0x1}, + unicode.Range16{Lo: 0x1732, Hi: 0x1733, Stride: 0x1}, + unicode.Range16{Lo: 0x1734, Hi: 0x1734, Stride: 0x1}, unicode.Range16{Lo: 0x1752, Hi: 0x1753, Stride: 0x1}, unicode.Range16{Lo: 0x1772, Hi: 0x1773, Stride: 0x1}, unicode.Range16{Lo: 0x17b4, Hi: 0x17b5, Stride: 0x1}, @@ -3349,6 +3515,7 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x17c9, Hi: 0x17d3, Stride: 0x1}, unicode.Range16{Lo: 0x17dd, Hi: 0x17dd, Stride: 0x1}, unicode.Range16{Lo: 0x180b, Hi: 0x180d, Stride: 0x1}, + unicode.Range16{Lo: 0x180f, Hi: 0x180f, Stride: 0x1}, unicode.Range16{Lo: 0x1885, Hi: 0x1886, Stride: 0x1}, unicode.Range16{Lo: 0x18a9, Hi: 0x18a9, Stride: 0x1}, unicode.Range16{Lo: 0x1920, Hi: 0x1922, Stride: 0x1}, @@ -3376,6 +3543,7 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x1a7f, Hi: 0x1a7f, Stride: 0x1}, unicode.Range16{Lo: 0x1ab0, Hi: 0x1abd, Stride: 0x1}, unicode.Range16{Lo: 0x1abe, Hi: 0x1abe, Stride: 0x1}, + unicode.Range16{Lo: 0x1abf, Hi: 0x1ace, Stride: 0x1}, unicode.Range16{Lo: 0x1b00, Hi: 0x1b03, Stride: 0x1}, unicode.Range16{Lo: 0x1b04, Hi: 0x1b04, Stride: 0x1}, unicode.Range16{Lo: 0x1b34, Hi: 0x1b34, Stride: 0x1}, @@ -3415,8 +3583,7 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0x1cf4, Hi: 0x1cf4, Stride: 0x1}, unicode.Range16{Lo: 0x1cf7, Hi: 0x1cf7, Stride: 0x1}, unicode.Range16{Lo: 0x1cf8, Hi: 0x1cf9, Stride: 0x1}, - unicode.Range16{Lo: 0x1dc0, Hi: 0x1df9, Stride: 0x1}, - unicode.Range16{Lo: 0x1dfb, Hi: 0x1dff, Stride: 0x1}, + unicode.Range16{Lo: 0x1dc0, Hi: 0x1dff, Stride: 0x1}, unicode.Range16{Lo: 0x200c, Hi: 0x200d, Stride: 0x1}, unicode.Range16{Lo: 0x20d0, Hi: 0x20dc, Stride: 0x1}, unicode.Range16{Lo: 0x20dd, Hi: 0x20e0, Stride: 0x1}, @@ -3440,6 +3607,7 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range16{Lo: 0xa823, Hi: 0xa824, Stride: 0x1}, unicode.Range16{Lo: 0xa825, Hi: 0xa826, Stride: 0x1}, unicode.Range16{Lo: 0xa827, Hi: 0xa827, Stride: 0x1}, + unicode.Range16{Lo: 0xa82c, Hi: 0xa82c, Stride: 0x1}, unicode.Range16{Lo: 0xa880, Hi: 0xa881, Stride: 0x1}, unicode.Range16{Lo: 0xa8b4, Hi: 0xa8c3, Stride: 0x1}, unicode.Range16{Lo: 0xa8c4, Hi: 0xa8c5, Stride: 0x1}, @@ -3501,17 +3669,23 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x10a3f, Hi: 0x10a3f, Stride: 0x1}, unicode.Range32{Lo: 0x10ae5, Hi: 0x10ae6, Stride: 0x1}, unicode.Range32{Lo: 0x10d24, Hi: 0x10d27, Stride: 0x1}, + unicode.Range32{Lo: 0x10eab, Hi: 0x10eac, Stride: 0x1}, + unicode.Range32{Lo: 0x10efd, Hi: 0x10eff, Stride: 0x1}, unicode.Range32{Lo: 0x10f46, Hi: 0x10f50, Stride: 0x1}, + unicode.Range32{Lo: 0x10f82, Hi: 0x10f85, Stride: 0x1}, unicode.Range32{Lo: 0x11000, Hi: 0x11000, Stride: 0x1}, unicode.Range32{Lo: 0x11001, Hi: 0x11001, Stride: 0x1}, unicode.Range32{Lo: 0x11002, Hi: 0x11002, Stride: 0x1}, unicode.Range32{Lo: 0x11038, Hi: 0x11046, Stride: 0x1}, + unicode.Range32{Lo: 0x11070, Hi: 0x11070, Stride: 0x1}, + unicode.Range32{Lo: 0x11073, Hi: 0x11074, Stride: 0x1}, unicode.Range32{Lo: 0x1107f, Hi: 0x11081, Stride: 0x1}, unicode.Range32{Lo: 0x11082, Hi: 0x11082, Stride: 0x1}, unicode.Range32{Lo: 0x110b0, Hi: 0x110b2, Stride: 0x1}, unicode.Range32{Lo: 0x110b3, Hi: 0x110b6, Stride: 0x1}, unicode.Range32{Lo: 0x110b7, Hi: 0x110b8, Stride: 0x1}, unicode.Range32{Lo: 0x110b9, Hi: 0x110ba, Stride: 0x1}, + unicode.Range32{Lo: 0x110c2, Hi: 0x110c2, Stride: 0x1}, unicode.Range32{Lo: 0x11100, Hi: 0x11102, Stride: 0x1}, unicode.Range32{Lo: 0x11127, Hi: 0x1112b, Stride: 0x1}, unicode.Range32{Lo: 0x1112c, Hi: 0x1112c, Stride: 0x1}, @@ -3524,6 +3698,8 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x111b6, Hi: 0x111be, Stride: 0x1}, unicode.Range32{Lo: 0x111bf, Hi: 0x111c0, Stride: 0x1}, unicode.Range32{Lo: 0x111c9, Hi: 0x111cc, Stride: 0x1}, + unicode.Range32{Lo: 0x111ce, Hi: 0x111ce, Stride: 0x1}, + unicode.Range32{Lo: 0x111cf, Hi: 0x111cf, Stride: 0x1}, unicode.Range32{Lo: 0x1122c, Hi: 0x1122e, Stride: 0x1}, unicode.Range32{Lo: 0x1122f, Hi: 0x11231, Stride: 0x1}, unicode.Range32{Lo: 0x11232, Hi: 0x11233, Stride: 0x1}, @@ -3531,6 +3707,7 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x11235, Hi: 0x11235, Stride: 0x1}, unicode.Range32{Lo: 0x11236, Hi: 0x11237, Stride: 0x1}, unicode.Range32{Lo: 0x1123e, Hi: 0x1123e, Stride: 0x1}, + unicode.Range32{Lo: 0x11241, Hi: 0x11241, Stride: 0x1}, unicode.Range32{Lo: 0x112df, Hi: 0x112df, Stride: 0x1}, unicode.Range32{Lo: 0x112e0, Hi: 0x112e2, Stride: 0x1}, unicode.Range32{Lo: 0x112e3, Hi: 0x112ea, Stride: 0x1}, @@ -3590,6 +3767,14 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x1182f, Hi: 0x11837, Stride: 0x1}, unicode.Range32{Lo: 0x11838, Hi: 0x11838, Stride: 0x1}, unicode.Range32{Lo: 0x11839, Hi: 0x1183a, Stride: 0x1}, + unicode.Range32{Lo: 0x11930, Hi: 0x11935, Stride: 0x1}, + unicode.Range32{Lo: 0x11937, Hi: 0x11938, Stride: 0x1}, + unicode.Range32{Lo: 0x1193b, Hi: 0x1193c, Stride: 0x1}, + unicode.Range32{Lo: 0x1193d, Hi: 0x1193d, Stride: 0x1}, + unicode.Range32{Lo: 0x1193e, Hi: 0x1193e, Stride: 0x1}, + unicode.Range32{Lo: 0x11940, Hi: 0x11940, Stride: 0x1}, + unicode.Range32{Lo: 0x11942, Hi: 0x11942, Stride: 0x1}, + unicode.Range32{Lo: 0x11943, Hi: 0x11943, Stride: 0x1}, unicode.Range32{Lo: 0x119d1, Hi: 0x119d3, Stride: 0x1}, unicode.Range32{Lo: 0x119d4, Hi: 0x119d7, Stride: 0x1}, unicode.Range32{Lo: 0x119da, Hi: 0x119db, Stride: 0x1}, @@ -3632,12 +3817,26 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x11d97, Hi: 0x11d97, Stride: 0x1}, unicode.Range32{Lo: 0x11ef3, Hi: 0x11ef4, Stride: 0x1}, unicode.Range32{Lo: 0x11ef5, Hi: 0x11ef6, Stride: 0x1}, + unicode.Range32{Lo: 0x11f00, Hi: 0x11f01, Stride: 0x1}, + unicode.Range32{Lo: 0x11f03, Hi: 0x11f03, Stride: 0x1}, + unicode.Range32{Lo: 0x11f34, Hi: 0x11f35, Stride: 0x1}, + unicode.Range32{Lo: 0x11f36, Hi: 0x11f3a, Stride: 0x1}, + unicode.Range32{Lo: 0x11f3e, Hi: 0x11f3f, Stride: 0x1}, + unicode.Range32{Lo: 0x11f40, Hi: 0x11f40, Stride: 0x1}, + unicode.Range32{Lo: 0x11f41, Hi: 0x11f41, Stride: 0x1}, + unicode.Range32{Lo: 0x11f42, Hi: 0x11f42, Stride: 0x1}, + unicode.Range32{Lo: 0x13440, Hi: 0x13440, Stride: 0x1}, + unicode.Range32{Lo: 0x13447, Hi: 0x13455, Stride: 0x1}, unicode.Range32{Lo: 0x16af0, Hi: 0x16af4, Stride: 0x1}, unicode.Range32{Lo: 0x16b30, Hi: 0x16b36, Stride: 0x1}, unicode.Range32{Lo: 0x16f4f, Hi: 0x16f4f, Stride: 0x1}, unicode.Range32{Lo: 0x16f51, Hi: 0x16f87, Stride: 0x1}, unicode.Range32{Lo: 0x16f8f, Hi: 0x16f92, Stride: 0x1}, + unicode.Range32{Lo: 0x16fe4, Hi: 0x16fe4, Stride: 0x1}, + unicode.Range32{Lo: 0x16ff0, Hi: 0x16ff1, Stride: 0x1}, unicode.Range32{Lo: 0x1bc9d, Hi: 0x1bc9e, Stride: 0x1}, + unicode.Range32{Lo: 0x1cf00, Hi: 0x1cf2d, Stride: 0x1}, + unicode.Range32{Lo: 0x1cf30, Hi: 0x1cf46, Stride: 0x1}, unicode.Range32{Lo: 0x1d165, Hi: 0x1d166, Stride: 0x1}, unicode.Range32{Lo: 0x1d167, Hi: 0x1d169, Stride: 0x1}, unicode.Range32{Lo: 0x1d16d, Hi: 0x1d172, Stride: 0x1}, @@ -3656,8 +3855,11 @@ var _SentenceExtend = &unicode.RangeTable{ unicode.Range32{Lo: 0x1e01b, Hi: 0x1e021, Stride: 0x1}, unicode.Range32{Lo: 0x1e023, Hi: 0x1e024, Stride: 0x1}, unicode.Range32{Lo: 0x1e026, Hi: 0x1e02a, Stride: 0x1}, + unicode.Range32{Lo: 0x1e08f, Hi: 0x1e08f, Stride: 0x1}, unicode.Range32{Lo: 0x1e130, Hi: 0x1e136, Stride: 0x1}, + unicode.Range32{Lo: 0x1e2ae, Hi: 0x1e2ae, Stride: 0x1}, unicode.Range32{Lo: 0x1e2ec, Hi: 0x1e2ef, Stride: 0x1}, + unicode.Range32{Lo: 0x1e4ec, Hi: 0x1e4ef, Stride: 0x1}, unicode.Range32{Lo: 0x1e8d0, Hi: 0x1e8d6, Stride: 0x1}, unicode.Range32{Lo: 0x1e944, Hi: 0x1e94a, Stride: 0x1}, unicode.Range32{Lo: 0xe0020, Hi: 0xe007f, Stride: 0x1}, @@ -3673,6 +3875,7 @@ var _SentenceFormat = &unicode.RangeTable{ unicode.Range16{Lo: 0x61c, Hi: 0x61c, Stride: 0x1}, unicode.Range16{Lo: 0x6dd, Hi: 0x6dd, Stride: 0x1}, unicode.Range16{Lo: 0x70f, Hi: 0x70f, Stride: 0x1}, + unicode.Range16{Lo: 0x890, Hi: 0x891, Stride: 0x1}, unicode.Range16{Lo: 0x8e2, Hi: 0x8e2, Stride: 0x1}, unicode.Range16{Lo: 0x180e, Hi: 0x180e, Stride: 0x1}, unicode.Range16{Lo: 0x200b, Hi: 0x200b, Stride: 0x1}, @@ -3686,7 +3889,7 @@ var _SentenceFormat = &unicode.RangeTable{ R32: []unicode.Range32{ unicode.Range32{Lo: 0x110bd, Hi: 0x110bd, Stride: 0x1}, unicode.Range32{Lo: 0x110cd, Hi: 0x110cd, Stride: 0x1}, - unicode.Range32{Lo: 0x13430, Hi: 0x13438, Stride: 0x1}, + unicode.Range32{Lo: 0x13430, Hi: 0x1343f, Stride: 0x1}, unicode.Range32{Lo: 0x1bca0, Hi: 0x1bca3, Stride: 0x1}, unicode.Range32{Lo: 0x1d173, Hi: 0x1d17a, Stride: 0x1}, unicode.Range32{Lo: 0xe0001, Hi: 0xe0001, Stride: 0x1}, @@ -3979,6 +4182,7 @@ var _SentenceLower = &unicode.RangeTable{ unicode.Range16{Lo: 0x52d, Hi: 0x52d, Stride: 0x1}, unicode.Range16{Lo: 0x52f, Hi: 0x52f, Stride: 0x1}, unicode.Range16{Lo: 0x560, Hi: 0x588, Stride: 0x1}, + unicode.Range16{Lo: 0x10fc, Hi: 0x10fc, Stride: 0x1}, unicode.Range16{Lo: 0x13f8, Hi: 0x13fd, Stride: 0x1}, unicode.Range16{Lo: 0x1c80, Hi: 0x1c88, Stride: 0x1}, unicode.Range16{Lo: 0x1d00, Hi: 0x1d2b, Stride: 0x1}, @@ -4146,7 +4350,7 @@ var _SentenceLower = &unicode.RangeTable{ unicode.Range16{Lo: 0x2170, Hi: 0x217f, Stride: 0x1}, unicode.Range16{Lo: 0x2184, Hi: 0x2184, Stride: 0x1}, unicode.Range16{Lo: 0x24d0, Hi: 0x24e9, Stride: 0x1}, - unicode.Range16{Lo: 0x2c30, Hi: 0x2c5e, Stride: 0x1}, + unicode.Range16{Lo: 0x2c30, Hi: 0x2c5f, Stride: 0x1}, unicode.Range16{Lo: 0x2c61, Hi: 0x2c61, Stride: 0x1}, unicode.Range16{Lo: 0x2c65, Hi: 0x2c66, Stride: 0x1}, unicode.Range16{Lo: 0x2c68, Hi: 0x2c68, Stride: 0x1}, @@ -4318,12 +4522,23 @@ var _SentenceLower = &unicode.RangeTable{ unicode.Range16{Lo: 0xa7bb, Hi: 0xa7bb, Stride: 0x1}, unicode.Range16{Lo: 0xa7bd, Hi: 0xa7bd, Stride: 0x1}, unicode.Range16{Lo: 0xa7bf, Hi: 0xa7bf, Stride: 0x1}, + unicode.Range16{Lo: 0xa7c1, Hi: 0xa7c1, Stride: 0x1}, unicode.Range16{Lo: 0xa7c3, Hi: 0xa7c3, Stride: 0x1}, + unicode.Range16{Lo: 0xa7c8, Hi: 0xa7c8, Stride: 0x1}, + unicode.Range16{Lo: 0xa7ca, Hi: 0xa7ca, Stride: 0x1}, + unicode.Range16{Lo: 0xa7d1, Hi: 0xa7d1, Stride: 0x1}, + unicode.Range16{Lo: 0xa7d3, Hi: 0xa7d3, Stride: 0x1}, + unicode.Range16{Lo: 0xa7d5, Hi: 0xa7d5, Stride: 0x1}, + unicode.Range16{Lo: 0xa7d7, Hi: 0xa7d7, Stride: 0x1}, + unicode.Range16{Lo: 0xa7d9, Hi: 0xa7d9, Stride: 0x1}, + unicode.Range16{Lo: 0xa7f2, Hi: 0xa7f4, Stride: 0x1}, + unicode.Range16{Lo: 0xa7f6, Hi: 0xa7f6, Stride: 0x1}, unicode.Range16{Lo: 0xa7f8, Hi: 0xa7f9, Stride: 0x1}, unicode.Range16{Lo: 0xa7fa, Hi: 0xa7fa, Stride: 0x1}, unicode.Range16{Lo: 0xab30, Hi: 0xab5a, Stride: 0x1}, unicode.Range16{Lo: 0xab5c, Hi: 0xab5f, Stride: 0x1}, - unicode.Range16{Lo: 0xab60, Hi: 0xab67, Stride: 0x1}, + unicode.Range16{Lo: 0xab60, Hi: 0xab68, Stride: 0x1}, + unicode.Range16{Lo: 0xab69, Hi: 0xab69, Stride: 0x1}, unicode.Range16{Lo: 0xab70, Hi: 0xabbf, Stride: 0x1}, unicode.Range16{Lo: 0xfb00, Hi: 0xfb06, Stride: 0x1}, unicode.Range16{Lo: 0xfb13, Hi: 0xfb17, Stride: 0x1}, @@ -4332,6 +4547,14 @@ var _SentenceLower = &unicode.RangeTable{ R32: []unicode.Range32{ unicode.Range32{Lo: 0x10428, Hi: 0x1044f, Stride: 0x1}, unicode.Range32{Lo: 0x104d8, Hi: 0x104fb, Stride: 0x1}, + unicode.Range32{Lo: 0x10597, Hi: 0x105a1, Stride: 0x1}, + unicode.Range32{Lo: 0x105a3, Hi: 0x105b1, Stride: 0x1}, + unicode.Range32{Lo: 0x105b3, Hi: 0x105b9, Stride: 0x1}, + unicode.Range32{Lo: 0x105bb, Hi: 0x105bc, Stride: 0x1}, + unicode.Range32{Lo: 0x10780, Hi: 0x10780, Stride: 0x1}, + unicode.Range32{Lo: 0x10783, Hi: 0x10785, Stride: 0x1}, + unicode.Range32{Lo: 0x10787, Hi: 0x107b0, Stride: 0x1}, + unicode.Range32{Lo: 0x107b2, Hi: 0x107ba, Stride: 0x1}, unicode.Range32{Lo: 0x10cc0, Hi: 0x10cf2, Stride: 0x1}, unicode.Range32{Lo: 0x118c0, Hi: 0x118df, Stride: 0x1}, unicode.Range32{Lo: 0x16e60, Hi: 0x16e7f, Stride: 0x1}, @@ -4363,6 +4586,10 @@ var _SentenceLower = &unicode.RangeTable{ unicode.Range32{Lo: 0x1d7aa, Hi: 0x1d7c2, Stride: 0x1}, unicode.Range32{Lo: 0x1d7c4, Hi: 0x1d7c9, Stride: 0x1}, unicode.Range32{Lo: 0x1d7cb, Hi: 0x1d7cb, Stride: 0x1}, + unicode.Range32{Lo: 0x1df00, Hi: 0x1df09, Stride: 0x1}, + unicode.Range32{Lo: 0x1df0b, Hi: 0x1df1e, Stride: 0x1}, + unicode.Range32{Lo: 0x1df25, Hi: 0x1df2a, Stride: 0x1}, + unicode.Range32{Lo: 0x1e030, Hi: 0x1e06d, Stride: 0x1}, unicode.Range32{Lo: 0x1e922, Hi: 0x1e943, Stride: 0x1}, }, LatinOffset: 6, @@ -4423,15 +4650,20 @@ var _SentenceNumeric = &unicode.RangeTable{ unicode.Range32{Lo: 0x116c0, Hi: 0x116c9, Stride: 0x1}, unicode.Range32{Lo: 0x11730, Hi: 0x11739, Stride: 0x1}, unicode.Range32{Lo: 0x118e0, Hi: 0x118e9, Stride: 0x1}, + unicode.Range32{Lo: 0x11950, Hi: 0x11959, Stride: 0x1}, unicode.Range32{Lo: 0x11c50, Hi: 0x11c59, Stride: 0x1}, unicode.Range32{Lo: 0x11d50, Hi: 0x11d59, Stride: 0x1}, unicode.Range32{Lo: 0x11da0, Hi: 0x11da9, Stride: 0x1}, + unicode.Range32{Lo: 0x11f50, Hi: 0x11f59, Stride: 0x1}, unicode.Range32{Lo: 0x16a60, Hi: 0x16a69, Stride: 0x1}, + unicode.Range32{Lo: 0x16ac0, Hi: 0x16ac9, Stride: 0x1}, unicode.Range32{Lo: 0x16b50, Hi: 0x16b59, Stride: 0x1}, unicode.Range32{Lo: 0x1d7ce, Hi: 0x1d7ff, Stride: 0x1}, unicode.Range32{Lo: 0x1e140, Hi: 0x1e149, Stride: 0x1}, unicode.Range32{Lo: 0x1e2f0, Hi: 0x1e2f9, Stride: 0x1}, + unicode.Range32{Lo: 0x1e4f0, Hi: 0x1e4f9, Stride: 0x1}, unicode.Range32{Lo: 0x1e950, Hi: 0x1e959, Stride: 0x1}, + unicode.Range32{Lo: 0x1fbf0, Hi: 0x1fbf9, Stride: 0x1}, }, LatinOffset: 1, } @@ -4473,8 +4705,10 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range16{Lo: 0x828, Hi: 0x828, Stride: 0x1}, unicode.Range16{Lo: 0x840, Hi: 0x858, Stride: 0x1}, unicode.Range16{Lo: 0x860, Hi: 0x86a, Stride: 0x1}, - unicode.Range16{Lo: 0x8a0, Hi: 0x8b4, Stride: 0x1}, - unicode.Range16{Lo: 0x8b6, Hi: 0x8bd, Stride: 0x1}, + unicode.Range16{Lo: 0x870, Hi: 0x887, Stride: 0x1}, + unicode.Range16{Lo: 0x889, Hi: 0x88e, Stride: 0x1}, + unicode.Range16{Lo: 0x8a0, Hi: 0x8c8, Stride: 0x1}, + unicode.Range16{Lo: 0x8c9, Hi: 0x8c9, Stride: 0x1}, unicode.Range16{Lo: 0x904, Hi: 0x939, Stride: 0x1}, unicode.Range16{Lo: 0x93d, Hi: 0x93d, Stride: 0x1}, unicode.Range16{Lo: 0x950, Hi: 0x950, Stride: 0x1}, @@ -4540,6 +4774,7 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range16{Lo: 0xc2a, Hi: 0xc39, Stride: 0x1}, unicode.Range16{Lo: 0xc3d, Hi: 0xc3d, Stride: 0x1}, unicode.Range16{Lo: 0xc58, Hi: 0xc5a, Stride: 0x1}, + unicode.Range16{Lo: 0xc5d, Hi: 0xc5d, Stride: 0x1}, unicode.Range16{Lo: 0xc60, Hi: 0xc61, Stride: 0x1}, unicode.Range16{Lo: 0xc80, Hi: 0xc80, Stride: 0x1}, unicode.Range16{Lo: 0xc85, Hi: 0xc8c, Stride: 0x1}, @@ -4548,10 +4783,10 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range16{Lo: 0xcaa, Hi: 0xcb3, Stride: 0x1}, unicode.Range16{Lo: 0xcb5, Hi: 0xcb9, Stride: 0x1}, unicode.Range16{Lo: 0xcbd, Hi: 0xcbd, Stride: 0x1}, - unicode.Range16{Lo: 0xcde, Hi: 0xcde, Stride: 0x1}, + unicode.Range16{Lo: 0xcdd, Hi: 0xcde, Stride: 0x1}, unicode.Range16{Lo: 0xce0, Hi: 0xce1, Stride: 0x1}, unicode.Range16{Lo: 0xcf1, Hi: 0xcf2, Stride: 0x1}, - unicode.Range16{Lo: 0xd05, Hi: 0xd0c, Stride: 0x1}, + unicode.Range16{Lo: 0xd04, Hi: 0xd0c, Stride: 0x1}, unicode.Range16{Lo: 0xd0e, Hi: 0xd10, Stride: 0x1}, unicode.Range16{Lo: 0xd12, Hi: 0xd3a, Stride: 0x1}, unicode.Range16{Lo: 0xd3d, Hi: 0xd3d, Stride: 0x1}, @@ -4593,7 +4828,6 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range16{Lo: 0x1075, Hi: 0x1081, Stride: 0x1}, unicode.Range16{Lo: 0x108e, Hi: 0x108e, Stride: 0x1}, unicode.Range16{Lo: 0x10d0, Hi: 0x10fa, Stride: 0x1}, - unicode.Range16{Lo: 0x10fc, Hi: 0x10fc, Stride: 0x1}, unicode.Range16{Lo: 0x10fd, Hi: 0x10ff, Stride: 0x1}, unicode.Range16{Lo: 0x1100, Hi: 0x1248, Stride: 0x1}, unicode.Range16{Lo: 0x124a, Hi: 0x124d, Stride: 0x1}, @@ -4618,9 +4852,8 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range16{Lo: 0x16a0, Hi: 0x16ea, Stride: 0x1}, unicode.Range16{Lo: 0x16ee, Hi: 0x16f0, Stride: 0x1}, unicode.Range16{Lo: 0x16f1, Hi: 0x16f8, Stride: 0x1}, - unicode.Range16{Lo: 0x1700, Hi: 0x170c, Stride: 0x1}, - unicode.Range16{Lo: 0x170e, Hi: 0x1711, Stride: 0x1}, - unicode.Range16{Lo: 0x1720, Hi: 0x1731, Stride: 0x1}, + unicode.Range16{Lo: 0x1700, Hi: 0x1711, Stride: 0x1}, + unicode.Range16{Lo: 0x171f, Hi: 0x1731, Stride: 0x1}, unicode.Range16{Lo: 0x1740, Hi: 0x1751, Stride: 0x1}, unicode.Range16{Lo: 0x1760, Hi: 0x176c, Stride: 0x1}, unicode.Range16{Lo: 0x176e, Hi: 0x1770, Stride: 0x1}, @@ -4643,7 +4876,7 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range16{Lo: 0x1a20, Hi: 0x1a54, Stride: 0x1}, unicode.Range16{Lo: 0x1aa7, Hi: 0x1aa7, Stride: 0x1}, unicode.Range16{Lo: 0x1b05, Hi: 0x1b33, Stride: 0x1}, - unicode.Range16{Lo: 0x1b45, Hi: 0x1b4b, Stride: 0x1}, + unicode.Range16{Lo: 0x1b45, Hi: 0x1b4c, Stride: 0x1}, unicode.Range16{Lo: 0x1b83, Hi: 0x1ba0, Stride: 0x1}, unicode.Range16{Lo: 0x1bae, Hi: 0x1baf, Stride: 0x1}, unicode.Range16{Lo: 0x1bba, Hi: 0x1be5, Stride: 0x1}, @@ -4688,11 +4921,10 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range16{Lo: 0x30ff, Hi: 0x30ff, Stride: 0x1}, unicode.Range16{Lo: 0x3105, Hi: 0x312f, Stride: 0x1}, unicode.Range16{Lo: 0x3131, Hi: 0x318e, Stride: 0x1}, - unicode.Range16{Lo: 0x31a0, Hi: 0x31ba, Stride: 0x1}, + unicode.Range16{Lo: 0x31a0, Hi: 0x31bf, Stride: 0x1}, unicode.Range16{Lo: 0x31f0, Hi: 0x31ff, Stride: 0x1}, - unicode.Range16{Lo: 0x3400, Hi: 0x4db5, Stride: 0x1}, - unicode.Range16{Lo: 0x4e00, Hi: 0x9fef, Stride: 0x1}, - unicode.Range16{Lo: 0xa000, Hi: 0xa014, Stride: 0x1}, + unicode.Range16{Lo: 0x3400, Hi: 0x4dbf, Stride: 0x1}, + unicode.Range16{Lo: 0x4e00, Hi: 0xa014, Stride: 0x1}, unicode.Range16{Lo: 0xa015, Hi: 0xa015, Stride: 0x1}, unicode.Range16{Lo: 0xa016, Hi: 0xa48c, Stride: 0x1}, unicode.Range16{Lo: 0xa4d0, Hi: 0xa4f7, Stride: 0x1}, @@ -4806,6 +5038,7 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x10600, Hi: 0x10736, Stride: 0x1}, unicode.Range32{Lo: 0x10740, Hi: 0x10755, Stride: 0x1}, unicode.Range32{Lo: 0x10760, Hi: 0x10767, Stride: 0x1}, + unicode.Range32{Lo: 0x10781, Hi: 0x10782, Stride: 0x1}, unicode.Range32{Lo: 0x10800, Hi: 0x10805, Stride: 0x1}, unicode.Range32{Lo: 0x10808, Hi: 0x10808, Stride: 0x1}, unicode.Range32{Lo: 0x1080a, Hi: 0x10835, Stride: 0x1}, @@ -4834,15 +5067,22 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x10b80, Hi: 0x10b91, Stride: 0x1}, unicode.Range32{Lo: 0x10c00, Hi: 0x10c48, Stride: 0x1}, unicode.Range32{Lo: 0x10d00, Hi: 0x10d23, Stride: 0x1}, + unicode.Range32{Lo: 0x10e80, Hi: 0x10ea9, Stride: 0x1}, + unicode.Range32{Lo: 0x10eb0, Hi: 0x10eb1, Stride: 0x1}, unicode.Range32{Lo: 0x10f00, Hi: 0x10f1c, Stride: 0x1}, unicode.Range32{Lo: 0x10f27, Hi: 0x10f27, Stride: 0x1}, unicode.Range32{Lo: 0x10f30, Hi: 0x10f45, Stride: 0x1}, + unicode.Range32{Lo: 0x10f70, Hi: 0x10f81, Stride: 0x1}, + unicode.Range32{Lo: 0x10fb0, Hi: 0x10fc4, Stride: 0x1}, unicode.Range32{Lo: 0x10fe0, Hi: 0x10ff6, Stride: 0x1}, unicode.Range32{Lo: 0x11003, Hi: 0x11037, Stride: 0x1}, + unicode.Range32{Lo: 0x11071, Hi: 0x11072, Stride: 0x1}, + unicode.Range32{Lo: 0x11075, Hi: 0x11075, Stride: 0x1}, unicode.Range32{Lo: 0x11083, Hi: 0x110af, Stride: 0x1}, unicode.Range32{Lo: 0x110d0, Hi: 0x110e8, Stride: 0x1}, unicode.Range32{Lo: 0x11103, Hi: 0x11126, Stride: 0x1}, unicode.Range32{Lo: 0x11144, Hi: 0x11144, Stride: 0x1}, + unicode.Range32{Lo: 0x11147, Hi: 0x11147, Stride: 0x1}, unicode.Range32{Lo: 0x11150, Hi: 0x11172, Stride: 0x1}, unicode.Range32{Lo: 0x11176, Hi: 0x11176, Stride: 0x1}, unicode.Range32{Lo: 0x11183, Hi: 0x111b2, Stride: 0x1}, @@ -4851,6 +5091,7 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x111dc, Hi: 0x111dc, Stride: 0x1}, unicode.Range32{Lo: 0x11200, Hi: 0x11211, Stride: 0x1}, unicode.Range32{Lo: 0x11213, Hi: 0x1122b, Stride: 0x1}, + unicode.Range32{Lo: 0x1123f, Hi: 0x11240, Stride: 0x1}, unicode.Range32{Lo: 0x11280, Hi: 0x11286, Stride: 0x1}, unicode.Range32{Lo: 0x11288, Hi: 0x11288, Stride: 0x1}, unicode.Range32{Lo: 0x1128a, Hi: 0x1128d, Stride: 0x1}, @@ -4868,7 +5109,7 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x1135d, Hi: 0x11361, Stride: 0x1}, unicode.Range32{Lo: 0x11400, Hi: 0x11434, Stride: 0x1}, unicode.Range32{Lo: 0x11447, Hi: 0x1144a, Stride: 0x1}, - unicode.Range32{Lo: 0x1145f, Hi: 0x1145f, Stride: 0x1}, + unicode.Range32{Lo: 0x1145f, Hi: 0x11461, Stride: 0x1}, unicode.Range32{Lo: 0x11480, Hi: 0x114af, Stride: 0x1}, unicode.Range32{Lo: 0x114c4, Hi: 0x114c5, Stride: 0x1}, unicode.Range32{Lo: 0x114c7, Hi: 0x114c7, Stride: 0x1}, @@ -4879,8 +5120,15 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x11680, Hi: 0x116aa, Stride: 0x1}, unicode.Range32{Lo: 0x116b8, Hi: 0x116b8, Stride: 0x1}, unicode.Range32{Lo: 0x11700, Hi: 0x1171a, Stride: 0x1}, + unicode.Range32{Lo: 0x11740, Hi: 0x11746, Stride: 0x1}, unicode.Range32{Lo: 0x11800, Hi: 0x1182b, Stride: 0x1}, - unicode.Range32{Lo: 0x118ff, Hi: 0x118ff, Stride: 0x1}, + unicode.Range32{Lo: 0x118ff, Hi: 0x11906, Stride: 0x1}, + unicode.Range32{Lo: 0x11909, Hi: 0x11909, Stride: 0x1}, + unicode.Range32{Lo: 0x1190c, Hi: 0x11913, Stride: 0x1}, + unicode.Range32{Lo: 0x11915, Hi: 0x11916, Stride: 0x1}, + unicode.Range32{Lo: 0x11918, Hi: 0x1192f, Stride: 0x1}, + unicode.Range32{Lo: 0x1193f, Hi: 0x1193f, Stride: 0x1}, + unicode.Range32{Lo: 0x11941, Hi: 0x11941, Stride: 0x1}, unicode.Range32{Lo: 0x119a0, Hi: 0x119a7, Stride: 0x1}, unicode.Range32{Lo: 0x119aa, Hi: 0x119d0, Stride: 0x1}, unicode.Range32{Lo: 0x119e1, Hi: 0x119e1, Stride: 0x1}, @@ -4891,7 +5139,7 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x11a50, Hi: 0x11a50, Stride: 0x1}, unicode.Range32{Lo: 0x11a5c, Hi: 0x11a89, Stride: 0x1}, unicode.Range32{Lo: 0x11a9d, Hi: 0x11a9d, Stride: 0x1}, - unicode.Range32{Lo: 0x11ac0, Hi: 0x11af8, Stride: 0x1}, + unicode.Range32{Lo: 0x11ab0, Hi: 0x11af8, Stride: 0x1}, unicode.Range32{Lo: 0x11c00, Hi: 0x11c08, Stride: 0x1}, unicode.Range32{Lo: 0x11c0a, Hi: 0x11c2e, Stride: 0x1}, unicode.Range32{Lo: 0x11c40, Hi: 0x11c40, Stride: 0x1}, @@ -4905,13 +5153,20 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x11d6a, Hi: 0x11d89, Stride: 0x1}, unicode.Range32{Lo: 0x11d98, Hi: 0x11d98, Stride: 0x1}, unicode.Range32{Lo: 0x11ee0, Hi: 0x11ef2, Stride: 0x1}, + unicode.Range32{Lo: 0x11f02, Hi: 0x11f02, Stride: 0x1}, + unicode.Range32{Lo: 0x11f04, Hi: 0x11f10, Stride: 0x1}, + unicode.Range32{Lo: 0x11f12, Hi: 0x11f33, Stride: 0x1}, + unicode.Range32{Lo: 0x11fb0, Hi: 0x11fb0, Stride: 0x1}, unicode.Range32{Lo: 0x12000, Hi: 0x12399, Stride: 0x1}, unicode.Range32{Lo: 0x12400, Hi: 0x1246e, Stride: 0x1}, unicode.Range32{Lo: 0x12480, Hi: 0x12543, Stride: 0x1}, - unicode.Range32{Lo: 0x13000, Hi: 0x1342e, Stride: 0x1}, + unicode.Range32{Lo: 0x12f90, Hi: 0x12ff0, Stride: 0x1}, + unicode.Range32{Lo: 0x13000, Hi: 0x1342f, Stride: 0x1}, + unicode.Range32{Lo: 0x13441, Hi: 0x13446, Stride: 0x1}, unicode.Range32{Lo: 0x14400, Hi: 0x14646, Stride: 0x1}, unicode.Range32{Lo: 0x16800, Hi: 0x16a38, Stride: 0x1}, unicode.Range32{Lo: 0x16a40, Hi: 0x16a5e, Stride: 0x1}, + unicode.Range32{Lo: 0x16a70, Hi: 0x16abe, Stride: 0x1}, unicode.Range32{Lo: 0x16ad0, Hi: 0x16aed, Stride: 0x1}, unicode.Range32{Lo: 0x16b00, Hi: 0x16b2f, Stride: 0x1}, unicode.Range32{Lo: 0x16b40, Hi: 0x16b43, Stride: 0x1}, @@ -4923,19 +5178,33 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x16fe0, Hi: 0x16fe1, Stride: 0x1}, unicode.Range32{Lo: 0x16fe3, Hi: 0x16fe3, Stride: 0x1}, unicode.Range32{Lo: 0x17000, Hi: 0x187f7, Stride: 0x1}, - unicode.Range32{Lo: 0x18800, Hi: 0x18af2, Stride: 0x1}, - unicode.Range32{Lo: 0x1b000, Hi: 0x1b11e, Stride: 0x1}, + unicode.Range32{Lo: 0x18800, Hi: 0x18cd5, Stride: 0x1}, + unicode.Range32{Lo: 0x18d00, Hi: 0x18d08, Stride: 0x1}, + unicode.Range32{Lo: 0x1aff0, Hi: 0x1aff3, Stride: 0x1}, + unicode.Range32{Lo: 0x1aff5, Hi: 0x1affb, Stride: 0x1}, + unicode.Range32{Lo: 0x1affd, Hi: 0x1affe, Stride: 0x1}, + unicode.Range32{Lo: 0x1b000, Hi: 0x1b122, Stride: 0x1}, + unicode.Range32{Lo: 0x1b132, Hi: 0x1b132, Stride: 0x1}, unicode.Range32{Lo: 0x1b150, Hi: 0x1b152, Stride: 0x1}, + unicode.Range32{Lo: 0x1b155, Hi: 0x1b155, Stride: 0x1}, unicode.Range32{Lo: 0x1b164, Hi: 0x1b167, Stride: 0x1}, unicode.Range32{Lo: 0x1b170, Hi: 0x1b2fb, Stride: 0x1}, unicode.Range32{Lo: 0x1bc00, Hi: 0x1bc6a, Stride: 0x1}, unicode.Range32{Lo: 0x1bc70, Hi: 0x1bc7c, Stride: 0x1}, unicode.Range32{Lo: 0x1bc80, Hi: 0x1bc88, Stride: 0x1}, unicode.Range32{Lo: 0x1bc90, Hi: 0x1bc99, Stride: 0x1}, + unicode.Range32{Lo: 0x1df0a, Hi: 0x1df0a, Stride: 0x1}, unicode.Range32{Lo: 0x1e100, Hi: 0x1e12c, Stride: 0x1}, unicode.Range32{Lo: 0x1e137, Hi: 0x1e13d, Stride: 0x1}, unicode.Range32{Lo: 0x1e14e, Hi: 0x1e14e, Stride: 0x1}, + unicode.Range32{Lo: 0x1e290, Hi: 0x1e2ad, Stride: 0x1}, unicode.Range32{Lo: 0x1e2c0, Hi: 0x1e2eb, Stride: 0x1}, + unicode.Range32{Lo: 0x1e4d0, Hi: 0x1e4ea, Stride: 0x1}, + unicode.Range32{Lo: 0x1e4eb, Hi: 0x1e4eb, Stride: 0x1}, + unicode.Range32{Lo: 0x1e7e0, Hi: 0x1e7e6, Stride: 0x1}, + unicode.Range32{Lo: 0x1e7e8, Hi: 0x1e7eb, Stride: 0x1}, + unicode.Range32{Lo: 0x1e7ed, Hi: 0x1e7ee, Stride: 0x1}, + unicode.Range32{Lo: 0x1e7f0, Hi: 0x1e7fe, Stride: 0x1}, unicode.Range32{Lo: 0x1e800, Hi: 0x1e8c4, Stride: 0x1}, unicode.Range32{Lo: 0x1e94b, Hi: 0x1e94b, Stride: 0x1}, unicode.Range32{Lo: 0x1ee00, Hi: 0x1ee03, Stride: 0x1}, @@ -4971,12 +5240,14 @@ var _SentenceOLetter = &unicode.RangeTable{ unicode.Range32{Lo: 0x1eea1, Hi: 0x1eea3, Stride: 0x1}, unicode.Range32{Lo: 0x1eea5, Hi: 0x1eea9, Stride: 0x1}, unicode.Range32{Lo: 0x1eeab, Hi: 0x1eebb, Stride: 0x1}, - unicode.Range32{Lo: 0x20000, Hi: 0x2a6d6, Stride: 0x1}, - unicode.Range32{Lo: 0x2a700, Hi: 0x2b734, Stride: 0x1}, + unicode.Range32{Lo: 0x20000, Hi: 0x2a6df, Stride: 0x1}, + unicode.Range32{Lo: 0x2a700, Hi: 0x2b739, Stride: 0x1}, unicode.Range32{Lo: 0x2b740, Hi: 0x2b81d, Stride: 0x1}, unicode.Range32{Lo: 0x2b820, Hi: 0x2cea1, Stride: 0x1}, unicode.Range32{Lo: 0x2ceb0, Hi: 0x2ebe0, Stride: 0x1}, unicode.Range32{Lo: 0x2f800, Hi: 0x2fa1d, Stride: 0x1}, + unicode.Range32{Lo: 0x30000, Hi: 0x3134a, Stride: 0x1}, + unicode.Range32{Lo: 0x31350, Hi: 0x323af, Stride: 0x1}, }, LatinOffset: 0, } @@ -5013,7 +5284,7 @@ var _SentenceSTerm = &unicode.RangeTable{ unicode.Range16{Lo: 0x21, Hi: 0x21, Stride: 0x1}, unicode.Range16{Lo: 0x3f, Hi: 0x3f, Stride: 0x1}, unicode.Range16{Lo: 0x589, Hi: 0x589, Stride: 0x1}, - unicode.Range16{Lo: 0x61e, Hi: 0x61f, Stride: 0x1}, + unicode.Range16{Lo: 0x61d, Hi: 0x61f, Stride: 0x1}, unicode.Range16{Lo: 0x6d4, Hi: 0x6d4, Stride: 0x1}, unicode.Range16{Lo: 0x700, Hi: 0x702, Stride: 0x1}, unicode.Range16{Lo: 0x7f9, Hi: 0x7f9, Stride: 0x1}, @@ -5032,12 +5303,14 @@ var _SentenceSTerm = &unicode.RangeTable{ unicode.Range16{Lo: 0x1aa8, Hi: 0x1aab, Stride: 0x1}, unicode.Range16{Lo: 0x1b5a, Hi: 0x1b5b, Stride: 0x1}, unicode.Range16{Lo: 0x1b5e, Hi: 0x1b5f, Stride: 0x1}, + unicode.Range16{Lo: 0x1b7d, Hi: 0x1b7e, Stride: 0x1}, unicode.Range16{Lo: 0x1c3b, Hi: 0x1c3c, Stride: 0x1}, unicode.Range16{Lo: 0x1c7e, Hi: 0x1c7f, Stride: 0x1}, unicode.Range16{Lo: 0x203c, Hi: 0x203d, Stride: 0x1}, unicode.Range16{Lo: 0x2047, Hi: 0x2049, Stride: 0x1}, unicode.Range16{Lo: 0x2e2e, Hi: 0x2e2e, Stride: 0x1}, unicode.Range16{Lo: 0x2e3c, Hi: 0x2e3c, Stride: 0x1}, + unicode.Range16{Lo: 0x2e53, Hi: 0x2e54, Stride: 0x1}, unicode.Range16{Lo: 0x3002, Hi: 0x3002, Stride: 0x1}, unicode.Range16{Lo: 0xa4ff, Hi: 0xa4ff, Stride: 0x1}, unicode.Range16{Lo: 0xa60e, Hi: 0xa60f, Stride: 0x1}, @@ -5058,6 +5331,7 @@ var _SentenceSTerm = &unicode.RangeTable{ R32: []unicode.Range32{ unicode.Range32{Lo: 0x10a56, Hi: 0x10a57, Stride: 0x1}, unicode.Range32{Lo: 0x10f55, Hi: 0x10f59, Stride: 0x1}, + unicode.Range32{Lo: 0x10f86, Hi: 0x10f89, Stride: 0x1}, unicode.Range32{Lo: 0x11047, Hi: 0x11048, Stride: 0x1}, unicode.Range32{Lo: 0x110be, Hi: 0x110c1, Stride: 0x1}, unicode.Range32{Lo: 0x11141, Hi: 0x11143, Stride: 0x1}, @@ -5072,10 +5346,13 @@ var _SentenceSTerm = &unicode.RangeTable{ unicode.Range32{Lo: 0x115c9, Hi: 0x115d7, Stride: 0x1}, unicode.Range32{Lo: 0x11641, Hi: 0x11642, Stride: 0x1}, unicode.Range32{Lo: 0x1173c, Hi: 0x1173e, Stride: 0x1}, + unicode.Range32{Lo: 0x11944, Hi: 0x11944, Stride: 0x1}, + unicode.Range32{Lo: 0x11946, Hi: 0x11946, Stride: 0x1}, unicode.Range32{Lo: 0x11a42, Hi: 0x11a43, Stride: 0x1}, unicode.Range32{Lo: 0x11a9b, Hi: 0x11a9c, Stride: 0x1}, unicode.Range32{Lo: 0x11c41, Hi: 0x11c42, Stride: 0x1}, unicode.Range32{Lo: 0x11ef7, Hi: 0x11ef8, Stride: 0x1}, + unicode.Range32{Lo: 0x11f43, Hi: 0x11f44, Stride: 0x1}, unicode.Range32{Lo: 0x16a6e, Hi: 0x16a6f, Stride: 0x1}, unicode.Range32{Lo: 0x16af5, Hi: 0x16af5, Stride: 0x1}, unicode.Range32{Lo: 0x16b37, Hi: 0x16b38, Stride: 0x1}, @@ -5547,7 +5824,7 @@ var _SentenceUpper = &unicode.RangeTable{ unicode.Range16{Lo: 0x2160, Hi: 0x216f, Stride: 0x1}, unicode.Range16{Lo: 0x2183, Hi: 0x2183, Stride: 0x1}, unicode.Range16{Lo: 0x24b6, Hi: 0x24cf, Stride: 0x1}, - unicode.Range16{Lo: 0x2c00, Hi: 0x2c2e, Stride: 0x1}, + unicode.Range16{Lo: 0x2c00, Hi: 0x2c2f, Stride: 0x1}, unicode.Range16{Lo: 0x2c60, Hi: 0x2c60, Stride: 0x1}, unicode.Range16{Lo: 0x2c62, Hi: 0x2c64, Stride: 0x1}, unicode.Range16{Lo: 0x2c67, Hi: 0x2c67, Stride: 0x1}, @@ -5712,13 +5989,23 @@ var _SentenceUpper = &unicode.RangeTable{ unicode.Range16{Lo: 0xa7ba, Hi: 0xa7ba, Stride: 0x1}, unicode.Range16{Lo: 0xa7bc, Hi: 0xa7bc, Stride: 0x1}, unicode.Range16{Lo: 0xa7be, Hi: 0xa7be, Stride: 0x1}, + unicode.Range16{Lo: 0xa7c0, Hi: 0xa7c0, Stride: 0x1}, unicode.Range16{Lo: 0xa7c2, Hi: 0xa7c2, Stride: 0x1}, - unicode.Range16{Lo: 0xa7c4, Hi: 0xa7c6, Stride: 0x1}, + unicode.Range16{Lo: 0xa7c4, Hi: 0xa7c7, Stride: 0x1}, + unicode.Range16{Lo: 0xa7c9, Hi: 0xa7c9, Stride: 0x1}, + unicode.Range16{Lo: 0xa7d0, Hi: 0xa7d0, Stride: 0x1}, + unicode.Range16{Lo: 0xa7d6, Hi: 0xa7d6, Stride: 0x1}, + unicode.Range16{Lo: 0xa7d8, Hi: 0xa7d8, Stride: 0x1}, + unicode.Range16{Lo: 0xa7f5, Hi: 0xa7f5, Stride: 0x1}, unicode.Range16{Lo: 0xff21, Hi: 0xff3a, Stride: 0x1}, }, R32: []unicode.Range32{ unicode.Range32{Lo: 0x10400, Hi: 0x10427, Stride: 0x1}, unicode.Range32{Lo: 0x104b0, Hi: 0x104d3, Stride: 0x1}, + unicode.Range32{Lo: 0x10570, Hi: 0x1057a, Stride: 0x1}, + unicode.Range32{Lo: 0x1057c, Hi: 0x1058a, Stride: 0x1}, + unicode.Range32{Lo: 0x1058c, Hi: 0x10592, Stride: 0x1}, + unicode.Range32{Lo: 0x10594, Hi: 0x10595, Stride: 0x1}, unicode.Range32{Lo: 0x10c80, Hi: 0x10cb2, Stride: 0x1}, unicode.Range32{Lo: 0x118a0, Hi: 0x118bf, Stride: 0x1}, unicode.Range32{Lo: 0x16e40, Hi: 0x16e5f, Stride: 0x1}, diff --git a/vendor/github.com/apparentlymart/go-textseg/v13/textseg/unicode2ragel.rb b/vendor/github.com/apparentlymart/go-textseg/v15/textseg/unicode2ragel.rb similarity index 100% rename from vendor/github.com/apparentlymart/go-textseg/v13/textseg/unicode2ragel.rb rename to vendor/github.com/apparentlymart/go-textseg/v15/textseg/unicode2ragel.rb diff --git a/vendor/github.com/apparentlymart/go-textseg/v13/textseg/utf8_seqs.go b/vendor/github.com/apparentlymart/go-textseg/v15/textseg/utf8_seqs.go similarity index 100% rename from vendor/github.com/apparentlymart/go-textseg/v13/textseg/utf8_seqs.go rename to vendor/github.com/apparentlymart/go-textseg/v15/textseg/utf8_seqs.go diff --git a/vendor/github.com/btubbs/datetime/parser.go b/vendor/github.com/btubbs/datetime/parser.go index 5f81d3873050..5389943762ea 100644 --- a/vendor/github.com/btubbs/datetime/parser.go +++ b/vendor/github.com/btubbs/datetime/parser.go @@ -238,12 +238,17 @@ func (p *parser) parseDate() (int, time.Month, int, error) { return parseErr(fmt.Errorf("found %s, expected %s", found, expected)) } - // should start with a number like yyyy or yyyymmdd + // should start with a number like yyyy or yyyymm or yyyymmdd switch tok, lit := p.scan(); tok { case NUMBER: switch len(lit) { case 4: year = parseInt(lit) + case 6: + year = parseInt(lit[:4]) + monthNum := parseInt(lit[4:6]) + month = time.Month(monthNum) + return year, month, day, nil case 8: // we should have yyyymmdd year = parseInt(lit[:4]) diff --git a/vendor/github.com/cloudflare/circl/LICENSE b/vendor/github.com/cloudflare/circl/LICENSE new file mode 100644 index 000000000000..67edaa90a044 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/LICENSE @@ -0,0 +1,57 @@ +Copyright (c) 2019 Cloudflare. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Cloudflare nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +======================================================================== + +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/curve.go b/vendor/github.com/cloudflare/circl/dh/x25519/curve.go new file mode 100644 index 000000000000..f9057c2b8662 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x25519/curve.go @@ -0,0 +1,96 @@ +package x25519 + +import ( + fp "github.com/cloudflare/circl/math/fp25519" +) + +// ladderJoye calculates a fixed-point multiplication with the generator point. +// The algorithm is the right-to-left Joye's ladder as described +// in "How to precompute a ladder" in SAC'2017. +func ladderJoye(k *Key) { + w := [5]fp.Elt{} // [mu,x1,z1,x2,z2] order must be preserved. + fp.SetOne(&w[1]) // x1 = 1 + fp.SetOne(&w[2]) // z1 = 1 + w[3] = fp.Elt{ // x2 = G-S + 0xbd, 0xaa, 0x2f, 0xc8, 0xfe, 0xe1, 0x94, 0x7e, + 0xf8, 0xed, 0xb2, 0x14, 0xae, 0x95, 0xf0, 0xbb, + 0xe2, 0x48, 0x5d, 0x23, 0xb9, 0xa0, 0xc7, 0xad, + 0x34, 0xab, 0x7c, 0xe2, 0xee, 0xcd, 0xae, 0x1e, + } + fp.SetOne(&w[4]) // z2 = 1 + + const n = 255 + const h = 3 + swap := uint(1) + for s := 0; s < n-h; s++ { + i := (s + h) / 8 + j := (s + h) % 8 + bit := uint((k[i] >> uint(j)) & 1) + copy(w[0][:], tableGenerator[s*Size:(s+1)*Size]) + diffAdd(&w, swap^bit) + swap = bit + } + for s := 0; s < h; s++ { + double(&w[1], &w[2]) + } + toAffine((*[fp.Size]byte)(k), &w[1], &w[2]) +} + +// ladderMontgomery calculates a generic scalar point multiplication +// The algorithm implemented is the left-to-right Montgomery's ladder. +func ladderMontgomery(k, xP *Key) { + w := [5]fp.Elt{} // [x1, x2, z2, x3, z3] order must be preserved. + w[0] = *(*fp.Elt)(xP) // x1 = xP + fp.SetOne(&w[1]) // x2 = 1 + w[3] = *(*fp.Elt)(xP) // x3 = xP + fp.SetOne(&w[4]) // z3 = 1 + + move := uint(0) + for s := 255 - 1; s >= 0; s-- { + i := s / 8 + j := s % 8 + bit := uint((k[i] >> uint(j)) & 1) + ladderStep(&w, move^bit) + move = bit + } + toAffine((*[fp.Size]byte)(k), &w[1], &w[2]) +} + +func toAffine(k *[fp.Size]byte, x, z *fp.Elt) { + fp.Inv(z, z) + fp.Mul(x, x, z) + _ = fp.ToBytes(k[:], x) +} + +var lowOrderPoints = [5]fp.Elt{ + { /* (0,_,1) point of order 2 on Curve25519 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { /* (1,_,1) point of order 4 on Curve25519 */ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { /* (x,_,1) first point of order 8 on Curve25519 */ + 0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae, + 0x16, 0x56, 0xe3, 0xfa, 0xf1, 0x9f, 0xc4, 0x6a, + 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32, 0xb1, 0xfd, + 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00, + }, + { /* (x,_,1) second point of order 8 on Curve25519 */ + 0x5f, 0x9c, 0x95, 0xbc, 0xa3, 0x50, 0x8c, 0x24, + 0xb1, 0xd0, 0xb1, 0x55, 0x9c, 0x83, 0xef, 0x5b, + 0x04, 0x44, 0x5c, 0xc4, 0x58, 0x1c, 0x8e, 0x86, + 0xd8, 0x22, 0x4e, 0xdd, 0xd0, 0x9f, 0x11, 0x57, + }, + { /* (-1,_,1) a point of order 4 on the twist of Curve25519 */ + 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + }, +} diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.go b/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.go new file mode 100644 index 000000000000..8a3d54c570f0 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.go @@ -0,0 +1,30 @@ +//go:build amd64 && !purego +// +build amd64,!purego + +package x25519 + +import ( + fp "github.com/cloudflare/circl/math/fp25519" + "golang.org/x/sys/cpu" +) + +var hasBmi2Adx = cpu.X86.HasBMI2 && cpu.X86.HasADX + +var _ = hasBmi2Adx + +func double(x, z *fp.Elt) { doubleAmd64(x, z) } +func diffAdd(w *[5]fp.Elt, b uint) { diffAddAmd64(w, b) } +func ladderStep(w *[5]fp.Elt, b uint) { ladderStepAmd64(w, b) } +func mulA24(z, x *fp.Elt) { mulA24Amd64(z, x) } + +//go:noescape +func ladderStepAmd64(w *[5]fp.Elt, b uint) + +//go:noescape +func diffAddAmd64(w *[5]fp.Elt, b uint) + +//go:noescape +func doubleAmd64(x, z *fp.Elt) + +//go:noescape +func mulA24Amd64(z, x *fp.Elt) diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.h b/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.h new file mode 100644 index 000000000000..8c1ae4d0fbb4 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.h @@ -0,0 +1,111 @@ +#define ladderStepLeg \ + addSub(x2,z2) \ + addSub(x3,z3) \ + integerMulLeg(b0,x2,z3) \ + integerMulLeg(b1,x3,z2) \ + reduceFromDoubleLeg(t0,b0) \ + reduceFromDoubleLeg(t1,b1) \ + addSub(t0,t1) \ + cselect(x2,x3,regMove) \ + cselect(z2,z3,regMove) \ + integerSqrLeg(b0,t0) \ + integerSqrLeg(b1,t1) \ + reduceFromDoubleLeg(x3,b0) \ + reduceFromDoubleLeg(z3,b1) \ + integerMulLeg(b0,x1,z3) \ + reduceFromDoubleLeg(z3,b0) \ + integerSqrLeg(b0,x2) \ + integerSqrLeg(b1,z2) \ + reduceFromDoubleLeg(x2,b0) \ + reduceFromDoubleLeg(z2,b1) \ + subtraction(t0,x2,z2) \ + multiplyA24Leg(t1,t0) \ + additionLeg(t1,t1,z2) \ + integerMulLeg(b0,x2,z2) \ + integerMulLeg(b1,t0,t1) \ + reduceFromDoubleLeg(x2,b0) \ + reduceFromDoubleLeg(z2,b1) + +#define ladderStepBmi2Adx \ + addSub(x2,z2) \ + addSub(x3,z3) \ + integerMulAdx(b0,x2,z3) \ + integerMulAdx(b1,x3,z2) \ + reduceFromDoubleAdx(t0,b0) \ + reduceFromDoubleAdx(t1,b1) \ + addSub(t0,t1) \ + cselect(x2,x3,regMove) \ + cselect(z2,z3,regMove) \ + integerSqrAdx(b0,t0) \ + integerSqrAdx(b1,t1) \ + reduceFromDoubleAdx(x3,b0) \ + reduceFromDoubleAdx(z3,b1) \ + integerMulAdx(b0,x1,z3) \ + reduceFromDoubleAdx(z3,b0) \ + integerSqrAdx(b0,x2) \ + integerSqrAdx(b1,z2) \ + reduceFromDoubleAdx(x2,b0) \ + reduceFromDoubleAdx(z2,b1) \ + subtraction(t0,x2,z2) \ + multiplyA24Adx(t1,t0) \ + additionAdx(t1,t1,z2) \ + integerMulAdx(b0,x2,z2) \ + integerMulAdx(b1,t0,t1) \ + reduceFromDoubleAdx(x2,b0) \ + reduceFromDoubleAdx(z2,b1) + +#define difAddLeg \ + addSub(x1,z1) \ + integerMulLeg(b0,z1,ui) \ + reduceFromDoubleLeg(z1,b0) \ + addSub(x1,z1) \ + integerSqrLeg(b0,x1) \ + integerSqrLeg(b1,z1) \ + reduceFromDoubleLeg(x1,b0) \ + reduceFromDoubleLeg(z1,b1) \ + integerMulLeg(b0,x1,z2) \ + integerMulLeg(b1,z1,x2) \ + reduceFromDoubleLeg(x1,b0) \ + reduceFromDoubleLeg(z1,b1) + +#define difAddBmi2Adx \ + addSub(x1,z1) \ + integerMulAdx(b0,z1,ui) \ + reduceFromDoubleAdx(z1,b0) \ + addSub(x1,z1) \ + integerSqrAdx(b0,x1) \ + integerSqrAdx(b1,z1) \ + reduceFromDoubleAdx(x1,b0) \ + reduceFromDoubleAdx(z1,b1) \ + integerMulAdx(b0,x1,z2) \ + integerMulAdx(b1,z1,x2) \ + reduceFromDoubleAdx(x1,b0) \ + reduceFromDoubleAdx(z1,b1) + +#define doubleLeg \ + addSub(x1,z1) \ + integerSqrLeg(b0,x1) \ + integerSqrLeg(b1,z1) \ + reduceFromDoubleLeg(x1,b0) \ + reduceFromDoubleLeg(z1,b1) \ + subtraction(t0,x1,z1) \ + multiplyA24Leg(t1,t0) \ + additionLeg(t1,t1,z1) \ + integerMulLeg(b0,x1,z1) \ + integerMulLeg(b1,t0,t1) \ + reduceFromDoubleLeg(x1,b0) \ + reduceFromDoubleLeg(z1,b1) + +#define doubleBmi2Adx \ + addSub(x1,z1) \ + integerSqrAdx(b0,x1) \ + integerSqrAdx(b1,z1) \ + reduceFromDoubleAdx(x1,b0) \ + reduceFromDoubleAdx(z1,b1) \ + subtraction(t0,x1,z1) \ + multiplyA24Adx(t1,t0) \ + additionAdx(t1,t1,z1) \ + integerMulAdx(b0,x1,z1) \ + integerMulAdx(b1,t0,t1) \ + reduceFromDoubleAdx(x1,b0) \ + reduceFromDoubleAdx(z1,b1) diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.s b/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.s new file mode 100644 index 000000000000..b7723185b61a --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.s @@ -0,0 +1,156 @@ +// +build amd64 + +#include "textflag.h" + +// Depends on circl/math/fp25519 package +#include "../../math/fp25519/fp_amd64.h" +#include "curve_amd64.h" + +// CTE_A24 is (A+2)/4 from Curve25519 +#define CTE_A24 121666 + +#define Size 32 + +// multiplyA24Leg multiplies x times CTE_A24 and stores in z +// Uses: AX, DX, R8-R13, FLAGS +// Instr: x86_64, cmov +#define multiplyA24Leg(z,x) \ + MOVL $CTE_A24, AX; MULQ 0+x; MOVQ AX, R8; MOVQ DX, R9; \ + MOVL $CTE_A24, AX; MULQ 8+x; MOVQ AX, R12; MOVQ DX, R10; \ + MOVL $CTE_A24, AX; MULQ 16+x; MOVQ AX, R13; MOVQ DX, R11; \ + MOVL $CTE_A24, AX; MULQ 24+x; \ + ADDQ R12, R9; \ + ADCQ R13, R10; \ + ADCQ AX, R11; \ + ADCQ $0, DX; \ + MOVL $38, AX; /* 2*C = 38 = 2^256 MOD 2^255-19*/ \ + IMULQ AX, DX; \ + ADDQ DX, R8; \ + ADCQ $0, R9; MOVQ R9, 8+z; \ + ADCQ $0, R10; MOVQ R10, 16+z; \ + ADCQ $0, R11; MOVQ R11, 24+z; \ + MOVQ $0, DX; \ + CMOVQCS AX, DX; \ + ADDQ DX, R8; MOVQ R8, 0+z; + +// multiplyA24Adx multiplies x times CTE_A24 and stores in z +// Uses: AX, DX, R8-R12, FLAGS +// Instr: x86_64, cmov, bmi2 +#define multiplyA24Adx(z,x) \ + MOVQ $CTE_A24, DX; \ + MULXQ 0+x, R8, R10; \ + MULXQ 8+x, R9, R11; ADDQ R10, R9; \ + MULXQ 16+x, R10, AX; ADCQ R11, R10; \ + MULXQ 24+x, R11, R12; ADCQ AX, R11; \ + ;;;;;;;;;;;;;;;;;;;;; ADCQ $0, R12; \ + MOVL $38, DX; /* 2*C = 38 = 2^256 MOD 2^255-19*/ \ + IMULQ DX, R12; \ + ADDQ R12, R8; \ + ADCQ $0, R9; MOVQ R9, 8+z; \ + ADCQ $0, R10; MOVQ R10, 16+z; \ + ADCQ $0, R11; MOVQ R11, 24+z; \ + MOVQ $0, R12; \ + CMOVQCS DX, R12; \ + ADDQ R12, R8; MOVQ R8, 0+z; + +#define mulA24Legacy \ + multiplyA24Leg(0(DI),0(SI)) +#define mulA24Bmi2Adx \ + multiplyA24Adx(0(DI),0(SI)) + +// func mulA24Amd64(z, x *fp255.Elt) +TEXT ·mulA24Amd64(SB),NOSPLIT,$0-16 + MOVQ z+0(FP), DI + MOVQ x+8(FP), SI + CHECK_BMI2ADX(LMA24, mulA24Legacy, mulA24Bmi2Adx) + + +// func ladderStepAmd64(w *[5]fp255.Elt, b uint) +// ladderStepAmd64 calculates a point addition and doubling as follows: +// (x2,z2) = 2*(x2,z2) and (x3,z3) = (x2,z2)+(x3,z3) using as a difference (x1,-). +// work = (x1,x2,z2,x3,z3) are five fp255.Elt of 32 bytes. +// stack = (t0,t1) are two fp.Elt of fp.Size bytes, and +// (b0,b1) are two-double precision fp.Elt of 2*fp.Size bytes. +TEXT ·ladderStepAmd64(SB),NOSPLIT,$192-16 + // Parameters + #define regWork DI + #define regMove SI + #define x1 0*Size(regWork) + #define x2 1*Size(regWork) + #define z2 2*Size(regWork) + #define x3 3*Size(regWork) + #define z3 4*Size(regWork) + // Local variables + #define t0 0*Size(SP) + #define t1 1*Size(SP) + #define b0 2*Size(SP) + #define b1 4*Size(SP) + MOVQ w+0(FP), regWork + MOVQ b+8(FP), regMove + CHECK_BMI2ADX(LLADSTEP, ladderStepLeg, ladderStepBmi2Adx) + #undef regWork + #undef regMove + #undef x1 + #undef x2 + #undef z2 + #undef x3 + #undef z3 + #undef t0 + #undef t1 + #undef b0 + #undef b1 + +// func diffAddAmd64(w *[5]fp255.Elt, b uint) +// diffAddAmd64 calculates a differential point addition using a precomputed point. +// (x1,z1) = (x1,z1)+(mu) using a difference point (x2,z2) +// w = (mu,x1,z1,x2,z2) are five fp.Elt, and +// stack = (b0,b1) are two-double precision fp.Elt of 2*fp.Size bytes. +TEXT ·diffAddAmd64(SB),NOSPLIT,$128-16 + // Parameters + #define regWork DI + #define regSwap SI + #define ui 0*Size(regWork) + #define x1 1*Size(regWork) + #define z1 2*Size(regWork) + #define x2 3*Size(regWork) + #define z2 4*Size(regWork) + // Local variables + #define b0 0*Size(SP) + #define b1 2*Size(SP) + MOVQ w+0(FP), regWork + MOVQ b+8(FP), regSwap + cswap(x1,x2,regSwap) + cswap(z1,z2,regSwap) + CHECK_BMI2ADX(LDIFADD, difAddLeg, difAddBmi2Adx) + #undef regWork + #undef regSwap + #undef ui + #undef x1 + #undef z1 + #undef x2 + #undef z2 + #undef b0 + #undef b1 + +// func doubleAmd64(x, z *fp255.Elt) +// doubleAmd64 calculates a point doubling (x1,z1) = 2*(x1,z1). +// stack = (t0,t1) are two fp.Elt of fp.Size bytes, and +// (b0,b1) are two-double precision fp.Elt of 2*fp.Size bytes. +TEXT ·doubleAmd64(SB),NOSPLIT,$192-16 + // Parameters + #define x1 0(DI) + #define z1 0(SI) + // Local variables + #define t0 0*Size(SP) + #define t1 1*Size(SP) + #define b0 2*Size(SP) + #define b1 4*Size(SP) + MOVQ x+0(FP), DI + MOVQ z+8(FP), SI + CHECK_BMI2ADX(LDOUB,doubleLeg,doubleBmi2Adx) + #undef x1 + #undef z1 + #undef t0 + #undef t1 + #undef b0 + #undef b1 diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/curve_generic.go b/vendor/github.com/cloudflare/circl/dh/x25519/curve_generic.go new file mode 100644 index 000000000000..dae67ea37df4 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x25519/curve_generic.go @@ -0,0 +1,85 @@ +package x25519 + +import ( + "encoding/binary" + "math/bits" + + fp "github.com/cloudflare/circl/math/fp25519" +) + +func doubleGeneric(x, z *fp.Elt) { + t0, t1 := &fp.Elt{}, &fp.Elt{} + fp.AddSub(x, z) + fp.Sqr(x, x) + fp.Sqr(z, z) + fp.Sub(t0, x, z) + mulA24Generic(t1, t0) + fp.Add(t1, t1, z) + fp.Mul(x, x, z) + fp.Mul(z, t0, t1) +} + +func diffAddGeneric(w *[5]fp.Elt, b uint) { + mu, x1, z1, x2, z2 := &w[0], &w[1], &w[2], &w[3], &w[4] + fp.Cswap(x1, x2, b) + fp.Cswap(z1, z2, b) + fp.AddSub(x1, z1) + fp.Mul(z1, z1, mu) + fp.AddSub(x1, z1) + fp.Sqr(x1, x1) + fp.Sqr(z1, z1) + fp.Mul(x1, x1, z2) + fp.Mul(z1, z1, x2) +} + +func ladderStepGeneric(w *[5]fp.Elt, b uint) { + x1, x2, z2, x3, z3 := &w[0], &w[1], &w[2], &w[3], &w[4] + t0 := &fp.Elt{} + t1 := &fp.Elt{} + fp.AddSub(x2, z2) + fp.AddSub(x3, z3) + fp.Mul(t0, x2, z3) + fp.Mul(t1, x3, z2) + fp.AddSub(t0, t1) + fp.Cmov(x2, x3, b) + fp.Cmov(z2, z3, b) + fp.Sqr(x3, t0) + fp.Sqr(z3, t1) + fp.Mul(z3, x1, z3) + fp.Sqr(x2, x2) + fp.Sqr(z2, z2) + fp.Sub(t0, x2, z2) + mulA24Generic(t1, t0) + fp.Add(t1, t1, z2) + fp.Mul(x2, x2, z2) + fp.Mul(z2, t0, t1) +} + +func mulA24Generic(z, x *fp.Elt) { + const A24 = 121666 + const n = 8 + var xx [4]uint64 + for i := range xx { + xx[i] = binary.LittleEndian.Uint64(x[i*n : (i+1)*n]) + } + + h0, l0 := bits.Mul64(xx[0], A24) + h1, l1 := bits.Mul64(xx[1], A24) + h2, l2 := bits.Mul64(xx[2], A24) + h3, l3 := bits.Mul64(xx[3], A24) + + var c3 uint64 + l1, c0 := bits.Add64(h0, l1, 0) + l2, c1 := bits.Add64(h1, l2, c0) + l3, c2 := bits.Add64(h2, l3, c1) + l4, _ := bits.Add64(h3, 0, c2) + _, l4 = bits.Mul64(l4, 38) + l0, c0 = bits.Add64(l0, l4, 0) + xx[1], c1 = bits.Add64(l1, 0, c0) + xx[2], c2 = bits.Add64(l2, 0, c1) + xx[3], c3 = bits.Add64(l3, 0, c2) + xx[0], _ = bits.Add64(l0, (-c3)&38, 0) + for i := range xx { + binary.LittleEndian.PutUint64(z[i*n:(i+1)*n], xx[i]) + } +} diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/curve_noasm.go b/vendor/github.com/cloudflare/circl/dh/x25519/curve_noasm.go new file mode 100644 index 000000000000..07fab97d2af6 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x25519/curve_noasm.go @@ -0,0 +1,11 @@ +//go:build !amd64 || purego +// +build !amd64 purego + +package x25519 + +import fp "github.com/cloudflare/circl/math/fp25519" + +func double(x, z *fp.Elt) { doubleGeneric(x, z) } +func diffAdd(w *[5]fp.Elt, b uint) { diffAddGeneric(w, b) } +func ladderStep(w *[5]fp.Elt, b uint) { ladderStepGeneric(w, b) } +func mulA24(z, x *fp.Elt) { mulA24Generic(z, x) } diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/doc.go b/vendor/github.com/cloudflare/circl/dh/x25519/doc.go new file mode 100644 index 000000000000..3ce102d1457f --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x25519/doc.go @@ -0,0 +1,19 @@ +/* +Package x25519 provides Diffie-Hellman functions as specified in RFC-7748. + +Validation of public keys. + +The Diffie-Hellman function, as described in RFC-7748 [1], works for any +public key. However, if a different protocol requires contributory +behaviour [2,3], then the public keys must be validated against low-order +points [3,4]. To do that, the Shared function performs this validation +internally and returns false when the public key is invalid (i.e., it +is a low-order point). + +References: + - [1] RFC7748 by Langley, Hamburg, Turner (https://rfc-editor.org/rfc/rfc7748.txt) + - [2] Curve25519 by Bernstein (https://cr.yp.to/ecdh.html) + - [3] Bernstein (https://cr.yp.to/ecdh.html#validate) + - [4] Cremers&Jackson (https://eprint.iacr.org/2019/526) +*/ +package x25519 diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/key.go b/vendor/github.com/cloudflare/circl/dh/x25519/key.go new file mode 100644 index 000000000000..c76f72ac7fa0 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x25519/key.go @@ -0,0 +1,47 @@ +package x25519 + +import ( + "crypto/subtle" + + fp "github.com/cloudflare/circl/math/fp25519" +) + +// Size is the length in bytes of a X25519 key. +const Size = 32 + +// Key represents a X25519 key. +type Key [Size]byte + +func (k *Key) clamp(in *Key) *Key { + *k = *in + k[0] &= 248 + k[31] = (k[31] & 127) | 64 + return k +} + +// isValidPubKey verifies if the public key is not a low-order point. +func (k *Key) isValidPubKey() bool { + fp.Modp((*fp.Elt)(k)) + var isLowOrder int + for _, P := range lowOrderPoints { + isLowOrder |= subtle.ConstantTimeCompare(P[:], k[:]) + } + return isLowOrder == 0 +} + +// KeyGen obtains a public key given a secret key. +func KeyGen(public, secret *Key) { + ladderJoye(public.clamp(secret)) +} + +// Shared calculates Alice's shared key from Alice's secret key and Bob's +// public key returning true on success. A failure case happens when the public +// key is a low-order point, thus the shared key is all-zeros and the function +// returns false. +func Shared(shared, secret, public *Key) bool { + validPk := *public + validPk[31] &= (1 << (255 % 8)) - 1 + ok := validPk.isValidPubKey() + ladderMontgomery(shared.clamp(secret), &validPk) + return ok +} diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/table.go b/vendor/github.com/cloudflare/circl/dh/x25519/table.go new file mode 100644 index 000000000000..28c8c4ac0322 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x25519/table.go @@ -0,0 +1,268 @@ +package x25519 + +import "github.com/cloudflare/circl/math/fp25519" + +// tableGenerator contains the set of points: +// +// t[i] = (xi+1)/(xi-1), +// +// where (xi,yi) = 2^iG and G is the generator point +// Size = (256)*(256/8) = 8192 bytes. +var tableGenerator = [256 * fp25519.Size]byte{ + /* (2^ 0)P */ 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, + /* (2^ 1)P */ 0x96, 0xfe, 0xaa, 0x16, 0xf4, 0x20, 0x82, 0x6b, 0x34, 0x6a, 0x56, 0x4f, 0x2b, 0xeb, 0xeb, 0x82, 0x0f, 0x95, 0xa5, 0x75, 0xb0, 0xa5, 0xa9, 0xd5, 0xf4, 0x88, 0x24, 0x4b, 0xcf, 0xb2, 0x42, 0x51, + /* (2^ 2)P */ 0x0c, 0x68, 0x69, 0x00, 0x75, 0xbc, 0xae, 0x6a, 0x41, 0x9c, 0xf9, 0xa0, 0x20, 0x78, 0xcf, 0x89, 0xf4, 0xd0, 0x56, 0x3b, 0x18, 0xd9, 0x58, 0x2a, 0xa4, 0x11, 0x60, 0xe3, 0x80, 0xca, 0x5a, 0x4b, + /* (2^ 3)P */ 0x5d, 0x74, 0x29, 0x8c, 0x34, 0x32, 0x91, 0x32, 0xd7, 0x2f, 0x64, 0xe1, 0x16, 0xe6, 0xa2, 0xf4, 0x34, 0xbc, 0x67, 0xff, 0x03, 0xbb, 0x45, 0x1e, 0x4a, 0x9b, 0x2a, 0xf4, 0xd0, 0x12, 0x69, 0x30, + /* (2^ 4)P */ 0x54, 0x71, 0xaf, 0xe6, 0x07, 0x65, 0x88, 0xff, 0x2f, 0xc8, 0xee, 0xdf, 0x13, 0x0e, 0xf5, 0x04, 0xce, 0xb5, 0xba, 0x2a, 0xe8, 0x2f, 0x51, 0xaa, 0x22, 0xf2, 0xd5, 0x68, 0x1a, 0x25, 0x4e, 0x17, + /* (2^ 5)P */ 0x98, 0x88, 0x02, 0x82, 0x0d, 0x70, 0x96, 0xcf, 0xc5, 0x02, 0x2c, 0x0a, 0x37, 0xe3, 0x43, 0x17, 0xaa, 0x6e, 0xe8, 0xb4, 0x98, 0xec, 0x9e, 0x37, 0x2e, 0x48, 0xe0, 0x51, 0x8a, 0x88, 0x59, 0x0c, + /* (2^ 6)P */ 0x89, 0xd1, 0xb5, 0x99, 0xd6, 0xf1, 0xcb, 0xfb, 0x84, 0xdc, 0x9f, 0x8e, 0xd5, 0xf0, 0xae, 0xac, 0x14, 0x76, 0x1f, 0x23, 0x06, 0x0d, 0xc2, 0xc1, 0x72, 0xf9, 0x74, 0xa2, 0x8d, 0x21, 0x38, 0x29, + /* (2^ 7)P */ 0x18, 0x7f, 0x1d, 0xff, 0xbe, 0x49, 0xaf, 0xf6, 0xc2, 0xc9, 0x7a, 0x38, 0x22, 0x1c, 0x54, 0xcc, 0x6b, 0xc5, 0x15, 0x40, 0xef, 0xc9, 0xfc, 0x96, 0xa9, 0x13, 0x09, 0x69, 0x7c, 0x62, 0xc1, 0x69, + /* (2^ 8)P */ 0x0e, 0xdb, 0x33, 0x47, 0x2f, 0xfd, 0x86, 0x7a, 0xe9, 0x7d, 0x08, 0x9e, 0xf2, 0xc4, 0xb8, 0xfd, 0x29, 0xa2, 0xa2, 0x8e, 0x1a, 0x4b, 0x5e, 0x09, 0x79, 0x7a, 0xb3, 0x29, 0xc8, 0xa7, 0xd7, 0x1a, + /* (2^ 9)P */ 0xc0, 0xa0, 0x7e, 0xd1, 0xca, 0x89, 0x2d, 0x34, 0x51, 0x20, 0xed, 0xcc, 0xa6, 0xdd, 0xbe, 0x67, 0x74, 0x2f, 0xb4, 0x2b, 0xbf, 0x31, 0xca, 0x19, 0xbb, 0xac, 0x80, 0x49, 0xc8, 0xb4, 0xf7, 0x3d, + /* (2^ 10)P */ 0x83, 0xd8, 0x0a, 0xc8, 0x4d, 0x44, 0xc6, 0xa8, 0x85, 0xab, 0xe3, 0x66, 0x03, 0x44, 0x1e, 0xb9, 0xd8, 0xf6, 0x64, 0x01, 0xa0, 0xcd, 0x15, 0xc2, 0x68, 0xe6, 0x47, 0xf2, 0x6e, 0x7c, 0x86, 0x3d, + /* (2^ 11)P */ 0x8c, 0x65, 0x3e, 0xcc, 0x2b, 0x58, 0xdd, 0xc7, 0x28, 0x55, 0x0e, 0xee, 0x48, 0x47, 0x2c, 0xfd, 0x71, 0x4f, 0x9f, 0xcc, 0x95, 0x9b, 0xfd, 0xa0, 0xdf, 0x5d, 0x67, 0xb0, 0x71, 0xd8, 0x29, 0x75, + /* (2^ 12)P */ 0x78, 0xbd, 0x3c, 0x2d, 0xb4, 0x68, 0xf5, 0xb8, 0x82, 0xda, 0xf3, 0x91, 0x1b, 0x01, 0x33, 0x12, 0x62, 0x3b, 0x7c, 0x4a, 0xcd, 0x6c, 0xce, 0x2d, 0x03, 0x86, 0x49, 0x9e, 0x8e, 0xfc, 0xe7, 0x75, + /* (2^ 13)P */ 0xec, 0xb6, 0xd0, 0xfc, 0xf1, 0x13, 0x4f, 0x2f, 0x45, 0x7a, 0xff, 0x29, 0x1f, 0xca, 0xa8, 0xf1, 0x9b, 0xe2, 0x81, 0x29, 0xa7, 0xc1, 0x49, 0xc2, 0x6a, 0xb5, 0x83, 0x8c, 0xbb, 0x0d, 0xbe, 0x6e, + /* (2^ 14)P */ 0x22, 0xb2, 0x0b, 0x17, 0x8d, 0xfa, 0x14, 0x71, 0x5f, 0x93, 0x93, 0xbf, 0xd5, 0xdc, 0xa2, 0x65, 0x9a, 0x97, 0x9c, 0xb5, 0x68, 0x1f, 0xc4, 0xbd, 0x89, 0x92, 0xce, 0xa2, 0x79, 0xef, 0x0e, 0x2f, + /* (2^ 15)P */ 0xce, 0x37, 0x3c, 0x08, 0x0c, 0xbf, 0xec, 0x42, 0x22, 0x63, 0x49, 0xec, 0x09, 0xbc, 0x30, 0x29, 0x0d, 0xac, 0xfe, 0x9c, 0xc1, 0xb0, 0x94, 0xf2, 0x80, 0xbb, 0xfa, 0xed, 0x4b, 0xaa, 0x80, 0x37, + /* (2^ 16)P */ 0x29, 0xd9, 0xea, 0x7c, 0x3e, 0x7d, 0xc1, 0x56, 0xc5, 0x22, 0x57, 0x2e, 0xeb, 0x4b, 0xcb, 0xe7, 0x5a, 0xe1, 0xbf, 0x2d, 0x73, 0x31, 0xe9, 0x0c, 0xf8, 0x52, 0x10, 0x62, 0xc7, 0x83, 0xb8, 0x41, + /* (2^ 17)P */ 0x50, 0x53, 0xd2, 0xc3, 0xa0, 0x5c, 0xf7, 0xdb, 0x51, 0xe3, 0xb1, 0x6e, 0x08, 0xbe, 0x36, 0x29, 0x12, 0xb2, 0xa9, 0xb4, 0x3c, 0xe0, 0x36, 0xc9, 0xaa, 0x25, 0x22, 0x32, 0x82, 0xbf, 0x45, 0x1d, + /* (2^ 18)P */ 0xc5, 0x4c, 0x02, 0x6a, 0x03, 0xb1, 0x1a, 0xe8, 0x72, 0x9a, 0x4c, 0x30, 0x1c, 0x20, 0x12, 0xe2, 0xfc, 0xb1, 0x32, 0x68, 0xba, 0x3f, 0xd7, 0xc5, 0x81, 0x95, 0x83, 0x4d, 0x5a, 0xdb, 0xff, 0x20, + /* (2^ 19)P */ 0xad, 0x0f, 0x5d, 0xbe, 0x67, 0xd3, 0x83, 0xa2, 0x75, 0x44, 0x16, 0x8b, 0xca, 0x25, 0x2b, 0x6c, 0x2e, 0xf2, 0xaa, 0x7c, 0x46, 0x35, 0x49, 0x9d, 0x49, 0xff, 0x85, 0xee, 0x8e, 0x40, 0x66, 0x51, + /* (2^ 20)P */ 0x61, 0xe3, 0xb4, 0xfa, 0xa2, 0xba, 0x67, 0x3c, 0xef, 0x5c, 0xf3, 0x7e, 0xc6, 0x33, 0xe4, 0xb3, 0x1c, 0x9b, 0x15, 0x41, 0x92, 0x72, 0x59, 0x52, 0x33, 0xab, 0xb0, 0xd5, 0x92, 0x18, 0x62, 0x6a, + /* (2^ 21)P */ 0xcb, 0xcd, 0x55, 0x75, 0x38, 0x4a, 0xb7, 0x20, 0x3f, 0x92, 0x08, 0x12, 0x0e, 0xa1, 0x2a, 0x53, 0xd1, 0x1d, 0x28, 0x62, 0x77, 0x7b, 0xa1, 0xea, 0xbf, 0x44, 0x5c, 0xf0, 0x43, 0x34, 0xab, 0x61, + /* (2^ 22)P */ 0xf8, 0xde, 0x24, 0x23, 0x42, 0x6c, 0x7a, 0x25, 0x7f, 0xcf, 0xe3, 0x17, 0x10, 0x6c, 0x1c, 0x13, 0x57, 0xa2, 0x30, 0xf6, 0x39, 0x87, 0x75, 0x23, 0x80, 0x85, 0xa7, 0x01, 0x7a, 0x40, 0x5a, 0x29, + /* (2^ 23)P */ 0xd9, 0xa8, 0x5d, 0x6d, 0x24, 0x43, 0xc4, 0xf8, 0x5d, 0xfa, 0x52, 0x0c, 0x45, 0x75, 0xd7, 0x19, 0x3d, 0xf8, 0x1b, 0x73, 0x92, 0xfc, 0xfc, 0x2a, 0x00, 0x47, 0x2b, 0x1b, 0xe8, 0xc8, 0x10, 0x7d, + /* (2^ 24)P */ 0x0b, 0xa2, 0xba, 0x70, 0x1f, 0x27, 0xe0, 0xc8, 0x57, 0x39, 0xa6, 0x7c, 0x86, 0x48, 0x37, 0x99, 0xbb, 0xd4, 0x7e, 0xcb, 0xb3, 0xef, 0x12, 0x54, 0x75, 0x29, 0xe6, 0x73, 0x61, 0xd3, 0x96, 0x31, + /* (2^ 25)P */ 0xfc, 0xdf, 0xc7, 0x41, 0xd1, 0xca, 0x5b, 0xde, 0x48, 0xc8, 0x95, 0xb3, 0xd2, 0x8c, 0xcc, 0x47, 0xcb, 0xf3, 0x1a, 0xe1, 0x42, 0xd9, 0x4c, 0xa3, 0xc2, 0xce, 0x4e, 0xd0, 0xf2, 0xdb, 0x56, 0x02, + /* (2^ 26)P */ 0x7f, 0x66, 0x0e, 0x4b, 0xe9, 0xb7, 0x5a, 0x87, 0x10, 0x0d, 0x85, 0xc0, 0x83, 0xdd, 0xd4, 0xca, 0x9f, 0xc7, 0x72, 0x4e, 0x8f, 0x2e, 0xf1, 0x47, 0x9b, 0xb1, 0x85, 0x8c, 0xbb, 0x87, 0x1a, 0x5f, + /* (2^ 27)P */ 0xb8, 0x51, 0x7f, 0x43, 0xb6, 0xd0, 0xe9, 0x7a, 0x65, 0x90, 0x87, 0x18, 0x55, 0xce, 0xc7, 0x12, 0xee, 0x7a, 0xf7, 0x5c, 0xfe, 0x09, 0xde, 0x2a, 0x27, 0x56, 0x2c, 0x7d, 0x2f, 0x5a, 0xa0, 0x23, + /* (2^ 28)P */ 0x9a, 0x16, 0x7c, 0xf1, 0x28, 0xe1, 0x08, 0x59, 0x2d, 0x85, 0xd0, 0x8a, 0xdd, 0x98, 0x74, 0xf7, 0x64, 0x2f, 0x10, 0xab, 0xce, 0xc4, 0xb4, 0x74, 0x45, 0x98, 0x13, 0x10, 0xdd, 0xba, 0x3a, 0x18, + /* (2^ 29)P */ 0xac, 0xaa, 0x92, 0xaa, 0x8d, 0xba, 0x65, 0xb1, 0x05, 0x67, 0x38, 0x99, 0x95, 0xef, 0xc5, 0xd5, 0xd1, 0x40, 0xfc, 0xf8, 0x0c, 0x8f, 0x2f, 0xbe, 0x14, 0x45, 0x20, 0xee, 0x35, 0xe6, 0x01, 0x27, + /* (2^ 30)P */ 0x14, 0x65, 0x15, 0x20, 0x00, 0xa8, 0x9f, 0x62, 0xce, 0xc1, 0xa8, 0x64, 0x87, 0x86, 0x23, 0xf2, 0x0e, 0x06, 0x3f, 0x0b, 0xff, 0x4f, 0x89, 0x5b, 0xfa, 0xa3, 0x08, 0xf7, 0x4c, 0x94, 0xd9, 0x60, + /* (2^ 31)P */ 0x1f, 0x20, 0x7a, 0x1c, 0x1a, 0x00, 0xea, 0xae, 0x63, 0xce, 0xe2, 0x3e, 0x63, 0x6a, 0xf1, 0xeb, 0xe1, 0x07, 0x7a, 0x4c, 0x59, 0x09, 0x77, 0x6f, 0xcb, 0x08, 0x02, 0x0d, 0x15, 0x58, 0xb9, 0x79, + /* (2^ 32)P */ 0xe7, 0x10, 0xd4, 0x01, 0x53, 0x5e, 0xb5, 0x24, 0x4d, 0xc8, 0xfd, 0xf3, 0xdf, 0x4e, 0xa3, 0xe3, 0xd8, 0x32, 0x40, 0x90, 0xe4, 0x68, 0x87, 0xd8, 0xec, 0xae, 0x3a, 0x7b, 0x42, 0x84, 0x13, 0x13, + /* (2^ 33)P */ 0x14, 0x4f, 0x23, 0x86, 0x12, 0xe5, 0x05, 0x84, 0x29, 0xc5, 0xb4, 0xad, 0x39, 0x47, 0xdc, 0x14, 0xfd, 0x4f, 0x63, 0x50, 0xb2, 0xb5, 0xa2, 0xb8, 0x93, 0xff, 0xa7, 0xd8, 0x4a, 0xa9, 0xe2, 0x2f, + /* (2^ 34)P */ 0xdd, 0xfa, 0x43, 0xe8, 0xef, 0x57, 0x5c, 0xec, 0x18, 0x99, 0xbb, 0xf0, 0x40, 0xce, 0x43, 0x28, 0x05, 0x63, 0x3d, 0xcf, 0xd6, 0x61, 0xb5, 0xa4, 0x7e, 0x77, 0xfb, 0xe8, 0xbd, 0x29, 0x36, 0x74, + /* (2^ 35)P */ 0x8f, 0x73, 0xaf, 0xbb, 0x46, 0xdd, 0x3e, 0x34, 0x51, 0xa6, 0x01, 0xb1, 0x28, 0x18, 0x98, 0xed, 0x7a, 0x79, 0x2c, 0x88, 0x0b, 0x76, 0x01, 0xa4, 0x30, 0x87, 0xc8, 0x8d, 0xe2, 0x23, 0xc2, 0x1f, + /* (2^ 36)P */ 0x0e, 0xba, 0x0f, 0xfc, 0x91, 0x4e, 0x60, 0x48, 0xa4, 0x6f, 0x2c, 0x05, 0x8f, 0xf7, 0x37, 0xb6, 0x9c, 0x23, 0xe9, 0x09, 0x3d, 0xac, 0xcc, 0x91, 0x7c, 0x68, 0x7a, 0x43, 0xd4, 0xee, 0xf7, 0x23, + /* (2^ 37)P */ 0x00, 0xd8, 0x9b, 0x8d, 0x11, 0xb1, 0x73, 0x51, 0xa7, 0xd4, 0x89, 0x31, 0xb6, 0x41, 0xd6, 0x29, 0x86, 0xc5, 0xbb, 0x88, 0x79, 0x17, 0xbf, 0xfd, 0xf5, 0x1d, 0xd8, 0xca, 0x4f, 0x89, 0x59, 0x29, + /* (2^ 38)P */ 0x99, 0xc8, 0xbb, 0xb4, 0xf3, 0x8e, 0xbc, 0xae, 0xb9, 0x92, 0x69, 0xb2, 0x5a, 0x99, 0x48, 0x41, 0xfb, 0x2c, 0xf9, 0x34, 0x01, 0x0b, 0xe2, 0x24, 0xe8, 0xde, 0x05, 0x4a, 0x89, 0x58, 0xd1, 0x40, + /* (2^ 39)P */ 0xf6, 0x76, 0xaf, 0x85, 0x11, 0x0b, 0xb0, 0x46, 0x79, 0x7a, 0x18, 0x73, 0x78, 0xc7, 0xba, 0x26, 0x5f, 0xff, 0x8f, 0xab, 0x95, 0xbf, 0xc0, 0x3d, 0xd7, 0x24, 0x55, 0x94, 0xd8, 0x8b, 0x60, 0x2a, + /* (2^ 40)P */ 0x02, 0x63, 0x44, 0xbd, 0x88, 0x95, 0x44, 0x26, 0x9c, 0x43, 0x88, 0x03, 0x1c, 0xc2, 0x4b, 0x7c, 0xb2, 0x11, 0xbd, 0x83, 0xf3, 0xa4, 0x98, 0x8e, 0xb9, 0x76, 0xd8, 0xc9, 0x7b, 0x8d, 0x21, 0x26, + /* (2^ 41)P */ 0x8a, 0x17, 0x7c, 0x99, 0x42, 0x15, 0x08, 0xe3, 0x6f, 0x60, 0xb6, 0x6f, 0xa8, 0x29, 0x2d, 0x3c, 0x74, 0x93, 0x27, 0xfa, 0x36, 0x77, 0x21, 0x5c, 0xfa, 0xb1, 0xfe, 0x4a, 0x73, 0x05, 0xde, 0x7d, + /* (2^ 42)P */ 0xab, 0x2b, 0xd4, 0x06, 0x39, 0x0e, 0xf1, 0x3b, 0x9c, 0x64, 0x80, 0x19, 0x3e, 0x80, 0xf7, 0xe4, 0x7a, 0xbf, 0x95, 0x95, 0xf8, 0x3b, 0x05, 0xe6, 0x30, 0x55, 0x24, 0xda, 0x38, 0xaf, 0x4f, 0x39, + /* (2^ 43)P */ 0xf4, 0x28, 0x69, 0x89, 0x58, 0xfb, 0x8e, 0x7a, 0x3c, 0x11, 0x6a, 0xcc, 0xe9, 0x78, 0xc7, 0xfb, 0x6f, 0x59, 0xaf, 0x30, 0xe3, 0x0c, 0x67, 0x72, 0xf7, 0x6c, 0x3d, 0x1d, 0xa8, 0x22, 0xf2, 0x48, + /* (2^ 44)P */ 0xa7, 0xca, 0x72, 0x0d, 0x41, 0xce, 0x1f, 0xf0, 0x95, 0x55, 0x3b, 0x21, 0xc7, 0xec, 0x20, 0x5a, 0x83, 0x14, 0xfa, 0xc1, 0x65, 0x11, 0xc2, 0x7b, 0x41, 0xa7, 0xa8, 0x1d, 0xe3, 0x9a, 0xf8, 0x07, + /* (2^ 45)P */ 0xf9, 0x0f, 0x83, 0xc6, 0xb4, 0xc2, 0xd2, 0x05, 0x93, 0x62, 0x31, 0xc6, 0x0f, 0x33, 0x3e, 0xd4, 0x04, 0xa9, 0xd3, 0x96, 0x0a, 0x59, 0xa5, 0xa5, 0xb6, 0x33, 0x53, 0xa6, 0x91, 0xdb, 0x5e, 0x70, + /* (2^ 46)P */ 0xf7, 0xa5, 0xb9, 0x0b, 0x5e, 0xe1, 0x8e, 0x04, 0x5d, 0xaf, 0x0a, 0x9e, 0xca, 0xcf, 0x40, 0x32, 0x0b, 0xa4, 0xc4, 0xed, 0xce, 0x71, 0x4b, 0x8f, 0x6d, 0x4a, 0x54, 0xde, 0xa3, 0x0d, 0x1c, 0x62, + /* (2^ 47)P */ 0x91, 0x40, 0x8c, 0xa0, 0x36, 0x28, 0x87, 0x92, 0x45, 0x14, 0xc9, 0x10, 0xb0, 0x75, 0x83, 0xce, 0x94, 0x63, 0x27, 0x4f, 0x52, 0xeb, 0x72, 0x8a, 0x35, 0x36, 0xc8, 0x7e, 0xfa, 0xfc, 0x67, 0x26, + /* (2^ 48)P */ 0x2a, 0x75, 0xe8, 0x45, 0x33, 0x17, 0x4c, 0x7f, 0xa5, 0x79, 0x70, 0xee, 0xfe, 0x47, 0x1b, 0x06, 0x34, 0xff, 0x86, 0x9f, 0xfa, 0x9a, 0xdd, 0x25, 0x9c, 0xc8, 0x5d, 0x42, 0xf5, 0xce, 0x80, 0x37, + /* (2^ 49)P */ 0xe9, 0xb4, 0x3b, 0x51, 0x5a, 0x03, 0x46, 0x1a, 0xda, 0x5a, 0x57, 0xac, 0x79, 0xf3, 0x1e, 0x3e, 0x50, 0x4b, 0xa2, 0x5f, 0x1c, 0x5f, 0x8c, 0xc7, 0x22, 0x9f, 0xfd, 0x34, 0x76, 0x96, 0x1a, 0x32, + /* (2^ 50)P */ 0xfa, 0x27, 0x6e, 0x82, 0xb8, 0x07, 0x67, 0x94, 0xd0, 0x6f, 0x50, 0x4c, 0xd6, 0x84, 0xca, 0x3d, 0x36, 0x14, 0xe9, 0x75, 0x80, 0x21, 0x89, 0xc1, 0x84, 0x84, 0x3b, 0x9b, 0x16, 0x84, 0x92, 0x6d, + /* (2^ 51)P */ 0xdf, 0x2d, 0x3f, 0x38, 0x40, 0xe8, 0x67, 0x3a, 0x75, 0x9b, 0x4f, 0x0c, 0xa3, 0xc9, 0xee, 0x33, 0x47, 0xef, 0x83, 0xa7, 0x6f, 0xc8, 0xc7, 0x3e, 0xc4, 0xfb, 0xc9, 0xba, 0x9f, 0x44, 0xec, 0x26, + /* (2^ 52)P */ 0x7d, 0x9e, 0x9b, 0xa0, 0xcb, 0x38, 0x0f, 0x5c, 0x8c, 0x47, 0xa3, 0x62, 0xc7, 0x8c, 0x16, 0x81, 0x1c, 0x12, 0xfc, 0x06, 0xd3, 0xb0, 0x23, 0x3e, 0xdd, 0xdc, 0xef, 0xa5, 0xa0, 0x8a, 0x23, 0x5a, + /* (2^ 53)P */ 0xff, 0x43, 0xea, 0xc4, 0x21, 0x61, 0xa2, 0x1b, 0xb5, 0x32, 0x88, 0x7c, 0x7f, 0xc7, 0xf8, 0x36, 0x9a, 0xf9, 0xdc, 0x0a, 0x0b, 0xea, 0xfb, 0x88, 0xf9, 0xeb, 0x5b, 0xc2, 0x8e, 0x93, 0xa9, 0x5c, + /* (2^ 54)P */ 0xa0, 0xcd, 0xfc, 0x51, 0x5e, 0x6a, 0x43, 0xd5, 0x3b, 0x89, 0xcd, 0xc2, 0x97, 0x47, 0xbc, 0x1d, 0x08, 0x4a, 0x22, 0xd3, 0x65, 0x6a, 0x34, 0x19, 0x66, 0xf4, 0x9a, 0x9b, 0xe4, 0x34, 0x50, 0x0f, + /* (2^ 55)P */ 0x6e, 0xb9, 0xe0, 0xa1, 0x67, 0x39, 0x3c, 0xf2, 0x88, 0x4d, 0x7a, 0x86, 0xfa, 0x08, 0x8b, 0xe5, 0x79, 0x16, 0x34, 0xa7, 0xc6, 0xab, 0x2f, 0xfb, 0x46, 0x69, 0x02, 0xb6, 0x1e, 0x38, 0x75, 0x2a, + /* (2^ 56)P */ 0xac, 0x20, 0x94, 0xc1, 0xe4, 0x3b, 0x0a, 0xc8, 0xdc, 0xb6, 0xf2, 0x81, 0xc6, 0xf6, 0xb1, 0x66, 0x88, 0x33, 0xe9, 0x61, 0x67, 0x03, 0xf7, 0x7c, 0xc4, 0xa4, 0x60, 0xa6, 0xd8, 0xbb, 0xab, 0x25, + /* (2^ 57)P */ 0x98, 0x51, 0xfd, 0x14, 0xba, 0x12, 0xea, 0x91, 0xa9, 0xff, 0x3c, 0x4a, 0xfc, 0x50, 0x49, 0x68, 0x28, 0xad, 0xf5, 0x30, 0x21, 0x84, 0x26, 0xf8, 0x41, 0xa4, 0x01, 0x53, 0xf7, 0x88, 0xa9, 0x3e, + /* (2^ 58)P */ 0x6f, 0x8c, 0x5f, 0x69, 0x9a, 0x10, 0x78, 0xc9, 0xf3, 0xc3, 0x30, 0x05, 0x4a, 0xeb, 0x46, 0x17, 0x95, 0x99, 0x45, 0xb4, 0x77, 0x6d, 0x4d, 0x44, 0xc7, 0x5c, 0x4e, 0x05, 0x8c, 0x2b, 0x95, 0x75, + /* (2^ 59)P */ 0xaa, 0xd6, 0xf4, 0x15, 0x79, 0x3f, 0x70, 0xa3, 0xd8, 0x47, 0x26, 0x2f, 0x20, 0x46, 0xc3, 0x66, 0x4b, 0x64, 0x1d, 0x81, 0xdf, 0x69, 0x14, 0xd0, 0x1f, 0xd7, 0xa5, 0x81, 0x7d, 0xa4, 0xfe, 0x77, + /* (2^ 60)P */ 0x81, 0xa3, 0x7c, 0xf5, 0x9e, 0x52, 0xe9, 0xc5, 0x1a, 0x88, 0x2f, 0xce, 0xb9, 0xb4, 0xee, 0x6e, 0xd6, 0x9b, 0x00, 0xe8, 0x28, 0x1a, 0xe9, 0xb6, 0xec, 0x3f, 0xfc, 0x9a, 0x3e, 0xbe, 0x80, 0x4b, + /* (2^ 61)P */ 0xc5, 0xd2, 0xae, 0x26, 0xc5, 0x73, 0x37, 0x7e, 0x9d, 0xa4, 0xc9, 0x53, 0xb4, 0xfc, 0x4a, 0x1b, 0x4d, 0xb2, 0xff, 0xba, 0xd7, 0xbd, 0x20, 0xa9, 0x0e, 0x40, 0x2d, 0x12, 0x9f, 0x69, 0x54, 0x7c, + /* (2^ 62)P */ 0xc8, 0x4b, 0xa9, 0x4f, 0xe1, 0xc8, 0x46, 0xef, 0x5e, 0xed, 0x52, 0x29, 0xce, 0x74, 0xb0, 0xe0, 0xd5, 0x85, 0xd8, 0xdb, 0xe1, 0x50, 0xa4, 0xbe, 0x2c, 0x71, 0x0f, 0x32, 0x49, 0x86, 0xb6, 0x61, + /* (2^ 63)P */ 0xd1, 0xbd, 0xcc, 0x09, 0x73, 0x5f, 0x48, 0x8a, 0x2d, 0x1a, 0x4d, 0x7d, 0x0d, 0x32, 0x06, 0xbd, 0xf4, 0xbe, 0x2d, 0x32, 0x73, 0x29, 0x23, 0x25, 0x70, 0xf7, 0x17, 0x8c, 0x75, 0xc4, 0x5d, 0x44, + /* (2^ 64)P */ 0x3c, 0x93, 0xc8, 0x7c, 0x17, 0x34, 0x04, 0xdb, 0x9f, 0x05, 0xea, 0x75, 0x21, 0xe8, 0x6f, 0xed, 0x34, 0xdb, 0x53, 0xc0, 0xfd, 0xbe, 0xfe, 0x1e, 0x99, 0xaf, 0x5d, 0xc6, 0x67, 0xe8, 0xdb, 0x4a, + /* (2^ 65)P */ 0xdf, 0x09, 0x06, 0xa9, 0xa2, 0x71, 0xcd, 0x3a, 0x50, 0x40, 0xd0, 0x6d, 0x85, 0x91, 0xe9, 0xe5, 0x3c, 0xc2, 0x57, 0x81, 0x68, 0x9b, 0xc6, 0x1e, 0x4d, 0xfe, 0x5c, 0x88, 0xf6, 0x27, 0x74, 0x69, + /* (2^ 66)P */ 0x51, 0xa8, 0xe1, 0x65, 0x9b, 0x7b, 0xbe, 0xd7, 0xdd, 0x36, 0xc5, 0x22, 0xd5, 0x28, 0x3d, 0xa0, 0x45, 0xb6, 0xd2, 0x8f, 0x65, 0x9d, 0x39, 0x28, 0xe1, 0x41, 0x26, 0x7c, 0xe1, 0xb7, 0xe5, 0x49, + /* (2^ 67)P */ 0xa4, 0x57, 0x04, 0x70, 0x98, 0x3a, 0x8c, 0x6f, 0x78, 0x67, 0xbb, 0x5e, 0xa2, 0xf0, 0x78, 0x50, 0x0f, 0x96, 0x82, 0xc3, 0xcb, 0x3c, 0x3c, 0xd1, 0xb1, 0x84, 0xdf, 0xa7, 0x58, 0x32, 0x00, 0x2e, + /* (2^ 68)P */ 0x1c, 0x6a, 0x29, 0xe6, 0x9b, 0xf3, 0xd1, 0x8a, 0xb2, 0xbf, 0x5f, 0x2a, 0x65, 0xaa, 0xee, 0xc1, 0xcb, 0xf3, 0x26, 0xfd, 0x73, 0x06, 0xee, 0x33, 0xcc, 0x2c, 0x9d, 0xa6, 0x73, 0x61, 0x25, 0x59, + /* (2^ 69)P */ 0x41, 0xfc, 0x18, 0x4e, 0xaa, 0x07, 0xea, 0x41, 0x1e, 0xa5, 0x87, 0x7c, 0x52, 0x19, 0xfc, 0xd9, 0x6f, 0xca, 0x31, 0x58, 0x80, 0xcb, 0xaa, 0xbd, 0x4f, 0x69, 0x16, 0xc9, 0x2d, 0x65, 0x5b, 0x44, + /* (2^ 70)P */ 0x15, 0x23, 0x17, 0xf2, 0xa7, 0xa3, 0x92, 0xce, 0x64, 0x99, 0x1b, 0xe1, 0x2d, 0x28, 0xdc, 0x1e, 0x4a, 0x31, 0x4c, 0xe0, 0xaf, 0x3a, 0x82, 0xa1, 0x86, 0xf5, 0x7c, 0x43, 0x94, 0x2d, 0x0a, 0x79, + /* (2^ 71)P */ 0x09, 0xe0, 0xf6, 0x93, 0xfb, 0x47, 0xc4, 0x71, 0x76, 0x52, 0x84, 0x22, 0x67, 0xa5, 0x22, 0x89, 0x69, 0x51, 0x4f, 0x20, 0x3b, 0x90, 0x70, 0xbf, 0xfe, 0x19, 0xa3, 0x1b, 0x89, 0x89, 0x7a, 0x2f, + /* (2^ 72)P */ 0x0c, 0x14, 0xe2, 0x77, 0xb5, 0x8e, 0xa0, 0x02, 0xf4, 0xdc, 0x7b, 0x42, 0xd4, 0x4e, 0x9a, 0xed, 0xd1, 0x3c, 0x32, 0xe4, 0x44, 0xec, 0x53, 0x52, 0x5b, 0x35, 0xe9, 0x14, 0x3c, 0x36, 0x88, 0x3e, + /* (2^ 73)P */ 0x8c, 0x0b, 0x11, 0x77, 0x42, 0xc1, 0x66, 0xaa, 0x90, 0x33, 0xa2, 0x10, 0x16, 0x39, 0xe0, 0x1a, 0xa2, 0xc2, 0x3f, 0xc9, 0x12, 0xbd, 0x30, 0x20, 0xab, 0xc7, 0x55, 0x95, 0x57, 0x41, 0xe1, 0x3e, + /* (2^ 74)P */ 0x41, 0x7d, 0x6e, 0x6d, 0x3a, 0xde, 0x14, 0x92, 0xfe, 0x7e, 0xf1, 0x07, 0x86, 0xd8, 0xcd, 0x3c, 0x17, 0x12, 0xe1, 0xf8, 0x88, 0x12, 0x4f, 0x67, 0xd0, 0x93, 0x9f, 0x32, 0x0f, 0x25, 0x82, 0x56, + /* (2^ 75)P */ 0x6e, 0x39, 0x2e, 0x6d, 0x13, 0x0b, 0xf0, 0x6c, 0xbf, 0xde, 0x14, 0x10, 0x6f, 0xf8, 0x4c, 0x6e, 0x83, 0x4e, 0xcc, 0xbf, 0xb5, 0xb1, 0x30, 0x59, 0xb6, 0x16, 0xba, 0x8a, 0xb4, 0x69, 0x70, 0x04, + /* (2^ 76)P */ 0x93, 0x07, 0xb2, 0x69, 0xab, 0xe4, 0x4c, 0x0d, 0x9e, 0xfb, 0xd0, 0x97, 0x1a, 0xb9, 0x4d, 0xb2, 0x1d, 0xd0, 0x00, 0x4e, 0xf5, 0x50, 0xfa, 0xcd, 0xb5, 0xdd, 0x8b, 0x36, 0x85, 0x10, 0x1b, 0x22, + /* (2^ 77)P */ 0xd2, 0xd8, 0xe3, 0xb1, 0x68, 0x94, 0xe5, 0xe7, 0x93, 0x2f, 0x12, 0xbd, 0x63, 0x65, 0xc5, 0x53, 0x09, 0x3f, 0x66, 0xe0, 0x03, 0xa9, 0xe8, 0xee, 0x42, 0x3d, 0xbe, 0xcb, 0x62, 0xa6, 0xef, 0x61, + /* (2^ 78)P */ 0x2a, 0xab, 0x6e, 0xde, 0xdd, 0xdd, 0xf8, 0x2c, 0x31, 0xf2, 0x35, 0x14, 0xd5, 0x0a, 0xf8, 0x9b, 0x73, 0x49, 0xf0, 0xc9, 0xce, 0xda, 0xea, 0x5d, 0x27, 0x9b, 0xd2, 0x41, 0x5d, 0x5b, 0x27, 0x29, + /* (2^ 79)P */ 0x4f, 0xf1, 0xeb, 0x95, 0x08, 0x0f, 0xde, 0xcf, 0xa7, 0x05, 0x49, 0x05, 0x6b, 0xb9, 0xaa, 0xb9, 0xfd, 0x20, 0xc4, 0xa1, 0xd9, 0x0d, 0xe8, 0xca, 0xc7, 0xbb, 0x73, 0x16, 0x2f, 0xbf, 0x63, 0x0a, + /* (2^ 80)P */ 0x8c, 0xbc, 0x8f, 0x95, 0x11, 0x6e, 0x2f, 0x09, 0xad, 0x2f, 0x82, 0x04, 0xe8, 0x81, 0x2a, 0x67, 0x17, 0x25, 0xd5, 0x60, 0x15, 0x35, 0xc8, 0xca, 0xf8, 0x92, 0xf1, 0xc8, 0x22, 0x77, 0x3f, 0x6f, + /* (2^ 81)P */ 0xb7, 0x94, 0xe8, 0xc2, 0xcc, 0x90, 0xba, 0xf8, 0x0d, 0x9f, 0xff, 0x38, 0xa4, 0x57, 0x75, 0x2c, 0x59, 0x23, 0xe5, 0x5a, 0x85, 0x1d, 0x4d, 0x89, 0x69, 0x3d, 0x74, 0x7b, 0x15, 0x22, 0xe1, 0x68, + /* (2^ 82)P */ 0xf3, 0x19, 0xb9, 0xcf, 0x70, 0x55, 0x7e, 0xd8, 0xb9, 0x8d, 0x79, 0x95, 0xcd, 0xde, 0x2c, 0x3f, 0xce, 0xa2, 0xc0, 0x10, 0x47, 0x15, 0x21, 0x21, 0xb2, 0xc5, 0x6d, 0x24, 0x15, 0xa1, 0x66, 0x3c, + /* (2^ 83)P */ 0x72, 0xcb, 0x4e, 0x29, 0x62, 0xc5, 0xed, 0xcb, 0x16, 0x0b, 0x28, 0x6a, 0xc3, 0x43, 0x71, 0xba, 0x67, 0x8b, 0x07, 0xd4, 0xef, 0xc2, 0x10, 0x96, 0x1e, 0x4b, 0x6a, 0x94, 0x5d, 0x73, 0x44, 0x61, + /* (2^ 84)P */ 0x50, 0x33, 0x5b, 0xd7, 0x1e, 0x11, 0x6f, 0x53, 0x1b, 0xd8, 0x41, 0x20, 0x8c, 0xdb, 0x11, 0x02, 0x3c, 0x41, 0x10, 0x0e, 0x00, 0xb1, 0x3c, 0xf9, 0x76, 0x88, 0x9e, 0x03, 0x3c, 0xfd, 0x9d, 0x14, + /* (2^ 85)P */ 0x5b, 0x15, 0x63, 0x6b, 0xe4, 0xdd, 0x79, 0xd4, 0x76, 0x79, 0x83, 0x3c, 0xe9, 0x15, 0x6e, 0xb6, 0x38, 0xe0, 0x13, 0x1f, 0x3b, 0xe4, 0xfd, 0xda, 0x35, 0x0b, 0x4b, 0x2e, 0x1a, 0xda, 0xaf, 0x5f, + /* (2^ 86)P */ 0x81, 0x75, 0x19, 0x17, 0xdf, 0xbb, 0x00, 0x36, 0xc2, 0xd2, 0x3c, 0xbe, 0x0b, 0x05, 0x72, 0x39, 0x86, 0xbe, 0xd5, 0xbd, 0x6d, 0x90, 0x38, 0x59, 0x0f, 0x86, 0x9b, 0x3f, 0xe4, 0xe5, 0xfc, 0x34, + /* (2^ 87)P */ 0x02, 0x4d, 0xd1, 0x42, 0xcd, 0xa4, 0xa8, 0x75, 0x65, 0xdf, 0x41, 0x34, 0xc5, 0xab, 0x8d, 0x82, 0xd3, 0x31, 0xe1, 0xd2, 0xed, 0xab, 0xdc, 0x33, 0x5f, 0xd2, 0x14, 0xb8, 0x6f, 0xd7, 0xba, 0x3e, + /* (2^ 88)P */ 0x0f, 0xe1, 0x70, 0x6f, 0x56, 0x6f, 0x90, 0xd4, 0x5a, 0x0f, 0x69, 0x51, 0xaa, 0xf7, 0x12, 0x5d, 0xf2, 0xfc, 0xce, 0x76, 0x6e, 0xb1, 0xad, 0x45, 0x99, 0x29, 0x23, 0xad, 0xae, 0x68, 0xf7, 0x01, + /* (2^ 89)P */ 0xbd, 0xfe, 0x48, 0x62, 0x7b, 0xc7, 0x6c, 0x2b, 0xfd, 0xaf, 0x3a, 0xec, 0x28, 0x06, 0xd3, 0x3c, 0x6a, 0x48, 0xef, 0xd4, 0x80, 0x0b, 0x1c, 0xce, 0x23, 0x6c, 0xf6, 0xa6, 0x2e, 0xff, 0x3b, 0x4c, + /* (2^ 90)P */ 0x5f, 0xeb, 0xea, 0x4a, 0x09, 0xc4, 0x2e, 0x3f, 0xa7, 0x2c, 0x37, 0x6e, 0x28, 0x9b, 0xb1, 0x61, 0x1d, 0x70, 0x2a, 0xde, 0x66, 0xa9, 0xef, 0x5e, 0xef, 0xe3, 0x55, 0xde, 0x65, 0x05, 0xb2, 0x23, + /* (2^ 91)P */ 0x57, 0x85, 0xd5, 0x79, 0x52, 0xca, 0x01, 0xe3, 0x4f, 0x87, 0xc2, 0x27, 0xce, 0xd4, 0xb2, 0x07, 0x67, 0x1d, 0xcf, 0x9d, 0x8a, 0xcd, 0x32, 0xa5, 0x56, 0xff, 0x2b, 0x3f, 0xe2, 0xfe, 0x52, 0x2a, + /* (2^ 92)P */ 0x3d, 0x66, 0xd8, 0x7c, 0xb3, 0xef, 0x24, 0x86, 0x94, 0x75, 0xbd, 0xff, 0x20, 0xac, 0xc7, 0xbb, 0x45, 0x74, 0xd3, 0x82, 0x9c, 0x5e, 0xb8, 0x57, 0x66, 0xec, 0xa6, 0x86, 0xcb, 0x52, 0x30, 0x7b, + /* (2^ 93)P */ 0x1e, 0xe9, 0x25, 0x25, 0xad, 0xf0, 0x82, 0x34, 0xa0, 0xdc, 0x8e, 0xd2, 0x43, 0x80, 0xb6, 0x2c, 0x3a, 0x00, 0x1b, 0x2e, 0x05, 0x6d, 0x4f, 0xaf, 0x0a, 0x1b, 0x78, 0x29, 0x25, 0x8c, 0x5f, 0x18, + /* (2^ 94)P */ 0xd6, 0xe0, 0x0c, 0xd8, 0x5b, 0xde, 0x41, 0xaa, 0xd6, 0xe9, 0x53, 0x68, 0x41, 0xb2, 0x07, 0x94, 0x3a, 0x4c, 0x7f, 0x35, 0x6e, 0xc3, 0x3e, 0x56, 0xce, 0x7b, 0x29, 0x0e, 0xdd, 0xb8, 0xc4, 0x4c, + /* (2^ 95)P */ 0x0e, 0x73, 0xb8, 0xff, 0x52, 0x1a, 0xfc, 0xa2, 0x37, 0x8e, 0x05, 0x67, 0x6e, 0xf1, 0x11, 0x18, 0xe1, 0x4e, 0xdf, 0xcd, 0x66, 0xa3, 0xf9, 0x10, 0x99, 0xf0, 0xb9, 0xa0, 0xc4, 0xa0, 0xf4, 0x72, + /* (2^ 96)P */ 0xa7, 0x4e, 0x3f, 0x66, 0x6f, 0xc0, 0x16, 0x8c, 0xba, 0x0f, 0x97, 0x4e, 0xf7, 0x3a, 0x3b, 0x69, 0x45, 0xc3, 0x9e, 0xd6, 0xf1, 0xe7, 0x02, 0x21, 0x89, 0x80, 0x8a, 0x96, 0xbc, 0x3c, 0xa5, 0x0b, + /* (2^ 97)P */ 0x37, 0x55, 0xa1, 0xfe, 0xc7, 0x9d, 0x3d, 0xca, 0x93, 0x64, 0x53, 0x51, 0xbb, 0x24, 0x68, 0x4c, 0xb1, 0x06, 0x40, 0x84, 0x14, 0x63, 0x88, 0xb9, 0x60, 0xcc, 0x54, 0xb4, 0x2a, 0xa7, 0xd2, 0x40, + /* (2^ 98)P */ 0x75, 0x09, 0x57, 0x12, 0xb7, 0xa1, 0x36, 0x59, 0x57, 0xa6, 0xbd, 0xde, 0x48, 0xd6, 0xb9, 0x91, 0xea, 0x30, 0x43, 0xb6, 0x4b, 0x09, 0x44, 0x33, 0xd0, 0x51, 0xee, 0x12, 0x0d, 0xa1, 0x6b, 0x00, + /* (2^ 99)P */ 0x58, 0x5d, 0xde, 0xf5, 0x68, 0x84, 0x22, 0x19, 0xb0, 0x05, 0xcc, 0x38, 0x4c, 0x2f, 0xb1, 0x0e, 0x90, 0x19, 0x60, 0xd5, 0x9d, 0x9f, 0x03, 0xa1, 0x0b, 0x0e, 0xff, 0x4f, 0xce, 0xd4, 0x02, 0x45, + /* (2^100)P */ 0x89, 0xc1, 0x37, 0x68, 0x10, 0x54, 0x20, 0xeb, 0x3c, 0xb9, 0xd3, 0x6d, 0x4c, 0x54, 0xf6, 0xd0, 0x4f, 0xd7, 0x16, 0xc4, 0x64, 0x70, 0x72, 0x40, 0xf0, 0x2e, 0x50, 0x4b, 0x11, 0xc6, 0x15, 0x6e, + /* (2^101)P */ 0x6b, 0xa7, 0xb1, 0xcf, 0x98, 0xa3, 0xf2, 0x4d, 0xb1, 0xf6, 0xf2, 0x19, 0x74, 0x6c, 0x25, 0x11, 0x43, 0x60, 0x6e, 0x06, 0x62, 0x79, 0x49, 0x4a, 0x44, 0x5b, 0x35, 0x41, 0xab, 0x3a, 0x5b, 0x70, + /* (2^102)P */ 0xd8, 0xb1, 0x97, 0xd7, 0x36, 0xf5, 0x5e, 0x36, 0xdb, 0xf0, 0xdd, 0x22, 0xd6, 0x6b, 0x07, 0x00, 0x88, 0x5a, 0x57, 0xe0, 0xb0, 0x33, 0xbf, 0x3b, 0x4d, 0xca, 0xe4, 0xc8, 0x05, 0xaa, 0x77, 0x37, + /* (2^103)P */ 0x5f, 0xdb, 0x78, 0x55, 0xc8, 0x45, 0x27, 0x39, 0xe2, 0x5a, 0xae, 0xdb, 0x49, 0x41, 0xda, 0x6f, 0x67, 0x98, 0xdc, 0x8a, 0x0b, 0xb0, 0xf0, 0xb1, 0xa3, 0x1d, 0x6f, 0xd3, 0x37, 0x34, 0x96, 0x09, + /* (2^104)P */ 0x53, 0x38, 0xdc, 0xa5, 0x90, 0x4e, 0x82, 0x7e, 0xbd, 0x5c, 0x13, 0x1f, 0x64, 0xf6, 0xb5, 0xcc, 0xcc, 0x8f, 0xce, 0x87, 0x6c, 0xd8, 0x36, 0x67, 0x9f, 0x24, 0x04, 0x66, 0xe2, 0x3c, 0x5f, 0x62, + /* (2^105)P */ 0x3f, 0xf6, 0x02, 0x95, 0x05, 0xc8, 0x8a, 0xaf, 0x69, 0x14, 0x35, 0x2e, 0x0a, 0xe7, 0x05, 0x0c, 0x05, 0x63, 0x4b, 0x76, 0x9c, 0x2e, 0x29, 0x35, 0xc3, 0x3a, 0xe2, 0xc7, 0x60, 0x43, 0x39, 0x1a, + /* (2^106)P */ 0x64, 0x32, 0x18, 0x51, 0x32, 0xd5, 0xc6, 0xd5, 0x4f, 0xb7, 0xc2, 0x43, 0xbd, 0x5a, 0x06, 0x62, 0x9b, 0x3f, 0x97, 0x3b, 0xd0, 0xf5, 0xfb, 0xb5, 0x5e, 0x6e, 0x20, 0x61, 0x36, 0xda, 0xa3, 0x13, + /* (2^107)P */ 0xe5, 0x94, 0x5d, 0x72, 0x37, 0x58, 0xbd, 0xc6, 0xc5, 0x16, 0x50, 0x20, 0x12, 0x09, 0xe3, 0x18, 0x68, 0x3c, 0x03, 0x70, 0x15, 0xce, 0x88, 0x20, 0x87, 0x79, 0x83, 0x5c, 0x49, 0x1f, 0xba, 0x7f, + /* (2^108)P */ 0x9d, 0x07, 0xf9, 0xf2, 0x23, 0x74, 0x8c, 0x5a, 0xc5, 0x3f, 0x02, 0x34, 0x7b, 0x15, 0x35, 0x17, 0x51, 0xb3, 0xfa, 0xd2, 0x9a, 0xb4, 0xf9, 0xe4, 0x3c, 0xe3, 0x78, 0xc8, 0x72, 0xff, 0x91, 0x66, + /* (2^109)P */ 0x3e, 0xff, 0x5e, 0xdc, 0xde, 0x2a, 0x2c, 0x12, 0xf4, 0x6c, 0x95, 0xd8, 0xf1, 0x4b, 0xdd, 0xf8, 0xda, 0x5b, 0x9e, 0x9e, 0x5d, 0x20, 0x86, 0xeb, 0x43, 0xc7, 0x75, 0xd9, 0xb9, 0x92, 0x9b, 0x04, + /* (2^110)P */ 0x5a, 0xc0, 0xf6, 0xb0, 0x30, 0x97, 0x37, 0xa5, 0x53, 0xa5, 0xf3, 0xc6, 0xac, 0xff, 0xa0, 0x72, 0x6d, 0xcd, 0x0d, 0xb2, 0x34, 0x2c, 0x03, 0xb0, 0x4a, 0x16, 0xd5, 0x88, 0xbc, 0x9d, 0x0e, 0x47, + /* (2^111)P */ 0x47, 0xc0, 0x37, 0xa2, 0x0c, 0xf1, 0x9c, 0xb1, 0xa2, 0x81, 0x6c, 0x1f, 0x71, 0x66, 0x54, 0xb6, 0x43, 0x0b, 0xd8, 0x6d, 0xd1, 0x1b, 0x32, 0xb3, 0x8e, 0xbe, 0x5f, 0x0c, 0x60, 0x4f, 0xc1, 0x48, + /* (2^112)P */ 0x03, 0xc8, 0xa6, 0x4a, 0x26, 0x1c, 0x45, 0x66, 0xa6, 0x7d, 0xfa, 0xa4, 0x04, 0x39, 0x6e, 0xb6, 0x95, 0x83, 0x12, 0xb3, 0xb0, 0x19, 0x5f, 0xd4, 0x10, 0xbc, 0xc9, 0xc3, 0x27, 0x26, 0x60, 0x31, + /* (2^113)P */ 0x0d, 0xe1, 0xe4, 0x32, 0x48, 0xdc, 0x20, 0x31, 0xf7, 0x17, 0xc7, 0x56, 0x67, 0xc4, 0x20, 0xeb, 0x94, 0x02, 0x28, 0x67, 0x3f, 0x2e, 0xf5, 0x00, 0x09, 0xc5, 0x30, 0x47, 0xc1, 0x4f, 0x6d, 0x56, + /* (2^114)P */ 0x06, 0x72, 0x83, 0xfd, 0x40, 0x5d, 0x3a, 0x7e, 0x7a, 0x54, 0x59, 0x71, 0xdc, 0x26, 0xe9, 0xc1, 0x95, 0x60, 0x8d, 0xa6, 0xfb, 0x30, 0x67, 0x21, 0xa7, 0xce, 0x69, 0x3f, 0x84, 0xc3, 0xe8, 0x22, + /* (2^115)P */ 0x2b, 0x4b, 0x0e, 0x93, 0xe8, 0x74, 0xd0, 0x33, 0x16, 0x58, 0xd1, 0x84, 0x0e, 0x35, 0xe4, 0xb6, 0x65, 0x23, 0xba, 0xd6, 0x6a, 0xc2, 0x34, 0x55, 0xf3, 0xf3, 0xf1, 0x89, 0x2f, 0xc1, 0x73, 0x77, + /* (2^116)P */ 0xaa, 0x62, 0x79, 0xa5, 0x4d, 0x40, 0xba, 0x8c, 0x56, 0xce, 0x99, 0x19, 0xa8, 0x97, 0x98, 0x5b, 0xfc, 0x92, 0x16, 0x12, 0x2f, 0x86, 0x8e, 0x50, 0x91, 0xc2, 0x93, 0xa0, 0x7f, 0x90, 0x81, 0x3a, + /* (2^117)P */ 0x10, 0xa5, 0x25, 0x47, 0xff, 0xd0, 0xde, 0x0d, 0x03, 0xc5, 0x3f, 0x67, 0x10, 0xcc, 0xd8, 0x10, 0x89, 0x4e, 0x1f, 0x9f, 0x1c, 0x15, 0x9d, 0x5b, 0x4c, 0xa4, 0x09, 0xcb, 0xd5, 0xc1, 0xa5, 0x32, + /* (2^118)P */ 0xfb, 0x41, 0x05, 0xb9, 0x42, 0xa4, 0x0a, 0x1e, 0xdb, 0x85, 0xb4, 0xc1, 0x7c, 0xeb, 0x85, 0x5f, 0xe5, 0xf2, 0x9d, 0x8a, 0xce, 0x95, 0xe5, 0xbe, 0x36, 0x22, 0x42, 0x22, 0xc7, 0x96, 0xe4, 0x25, + /* (2^119)P */ 0xb9, 0xe5, 0x0f, 0xcd, 0x46, 0x3c, 0xdf, 0x5e, 0x88, 0x33, 0xa4, 0xd2, 0x7e, 0x5a, 0xe7, 0x34, 0x52, 0xe3, 0x61, 0xd7, 0x11, 0xde, 0x88, 0xe4, 0x5c, 0x54, 0x85, 0xa0, 0x01, 0x8a, 0x87, 0x0e, + /* (2^120)P */ 0x04, 0xbb, 0x21, 0xe0, 0x77, 0x3c, 0x49, 0xba, 0x9a, 0x89, 0xdf, 0xc7, 0x43, 0x18, 0x4d, 0x2b, 0x67, 0x0d, 0xe8, 0x7a, 0x48, 0x7a, 0xa3, 0x9e, 0x94, 0x17, 0xe4, 0x11, 0x80, 0x95, 0xa9, 0x67, + /* (2^121)P */ 0x65, 0xb0, 0x97, 0x66, 0x1a, 0x05, 0x58, 0x4b, 0xd4, 0xa6, 0x6b, 0x8d, 0x7d, 0x3f, 0xe3, 0x47, 0xc1, 0x46, 0xca, 0x83, 0xd4, 0xa8, 0x4d, 0xbb, 0x0d, 0xdb, 0xc2, 0x81, 0xa1, 0xca, 0xbe, 0x68, + /* (2^122)P */ 0xa5, 0x9a, 0x98, 0x0b, 0xe9, 0x80, 0x89, 0x8d, 0x9b, 0xc9, 0x93, 0x2c, 0x4a, 0xb1, 0x5e, 0xf9, 0xa2, 0x73, 0x6e, 0x79, 0xc4, 0xc7, 0xc6, 0x51, 0x69, 0xb5, 0xef, 0xb5, 0x63, 0x83, 0x22, 0x6e, + /* (2^123)P */ 0xc8, 0x24, 0xd6, 0x2d, 0xb0, 0xc0, 0xbb, 0xc6, 0xee, 0x70, 0x81, 0xec, 0x7d, 0xb4, 0x7e, 0x77, 0xa9, 0xaf, 0xcf, 0x04, 0xa0, 0x15, 0xde, 0x3c, 0x9b, 0xbf, 0x60, 0x71, 0x08, 0xbc, 0xc6, 0x1d, + /* (2^124)P */ 0x02, 0x40, 0xc3, 0xee, 0x43, 0xe0, 0x07, 0x2e, 0x7f, 0xdc, 0x68, 0x7a, 0x67, 0xfc, 0xe9, 0x18, 0x9a, 0x5b, 0xd1, 0x8b, 0x18, 0x03, 0xda, 0xd8, 0x53, 0x82, 0x56, 0x00, 0xbb, 0xc3, 0xfb, 0x48, + /* (2^125)P */ 0xe1, 0x4c, 0x65, 0xfb, 0x4c, 0x7d, 0x54, 0x57, 0xad, 0xe2, 0x58, 0xa0, 0x82, 0x5b, 0x56, 0xd3, 0x78, 0x44, 0x15, 0xbf, 0x0b, 0xaf, 0x3e, 0xf6, 0x18, 0xbb, 0xdf, 0x14, 0xf1, 0x1e, 0x53, 0x47, + /* (2^126)P */ 0x87, 0xc5, 0x78, 0x42, 0x0a, 0x63, 0xec, 0xe1, 0xf3, 0x83, 0x8e, 0xca, 0x46, 0xd5, 0x07, 0x55, 0x2b, 0x0c, 0xdc, 0x3a, 0xc6, 0x35, 0xe1, 0x85, 0x4e, 0x84, 0x82, 0x56, 0xa8, 0xef, 0xa7, 0x0a, + /* (2^127)P */ 0x15, 0xf6, 0xe1, 0xb3, 0xa8, 0x1b, 0x69, 0x72, 0xfa, 0x3f, 0xbe, 0x1f, 0x70, 0xe9, 0xb4, 0x32, 0x68, 0x78, 0xbb, 0x39, 0x2e, 0xd9, 0xb6, 0x97, 0xe8, 0x39, 0x2e, 0xa0, 0xde, 0x53, 0xfe, 0x2c, + /* (2^128)P */ 0xb0, 0x52, 0xcd, 0x85, 0xcd, 0x92, 0x73, 0x68, 0x31, 0x98, 0xe2, 0x10, 0xc9, 0x66, 0xff, 0x27, 0x06, 0x2d, 0x83, 0xa9, 0x56, 0x45, 0x13, 0x97, 0xa0, 0xf8, 0x84, 0x0a, 0x36, 0xb0, 0x9b, 0x26, + /* (2^129)P */ 0x5c, 0xf8, 0x43, 0x76, 0x45, 0x55, 0x6e, 0x70, 0x1b, 0x7d, 0x59, 0x9b, 0x8c, 0xa4, 0x34, 0x37, 0x72, 0xa4, 0xef, 0xc6, 0xe8, 0x91, 0xee, 0x7a, 0xe0, 0xd9, 0xa9, 0x98, 0xc1, 0xab, 0xd6, 0x5c, + /* (2^130)P */ 0x1a, 0xe4, 0x3c, 0xcb, 0x06, 0xde, 0x04, 0x0e, 0x38, 0xe1, 0x02, 0x34, 0x89, 0xeb, 0xc6, 0xd8, 0x72, 0x37, 0x6e, 0x68, 0xbb, 0x59, 0x46, 0x90, 0xc8, 0xa8, 0x6b, 0x74, 0x71, 0xc3, 0x15, 0x72, + /* (2^131)P */ 0xd9, 0xa2, 0xe4, 0xea, 0x7e, 0xa9, 0x12, 0xfd, 0xc5, 0xf2, 0x94, 0x63, 0x51, 0xb7, 0x14, 0x95, 0x94, 0xf2, 0x08, 0x92, 0x80, 0xd5, 0x6f, 0x26, 0xb9, 0x26, 0x9a, 0x61, 0x85, 0x70, 0x84, 0x5c, + /* (2^132)P */ 0xea, 0x94, 0xd6, 0xfe, 0x10, 0x54, 0x98, 0x52, 0x54, 0xd2, 0x2e, 0x4a, 0x93, 0x5b, 0x90, 0x3c, 0x67, 0xe4, 0x3b, 0x2d, 0x69, 0x47, 0xbb, 0x10, 0xe1, 0xe9, 0xe5, 0x69, 0x2d, 0x3d, 0x3b, 0x06, + /* (2^133)P */ 0xeb, 0x7d, 0xa5, 0xdd, 0xee, 0x26, 0x27, 0x47, 0x91, 0x18, 0xf4, 0x10, 0xae, 0xc4, 0xb6, 0xef, 0x14, 0x76, 0x30, 0x7b, 0x91, 0x41, 0x16, 0x2b, 0x7c, 0x5b, 0xf4, 0xc4, 0x4f, 0x55, 0x7c, 0x11, + /* (2^134)P */ 0x12, 0x88, 0x9d, 0x8f, 0x11, 0xf3, 0x7c, 0xc0, 0x39, 0x79, 0x01, 0x50, 0x20, 0xd8, 0xdb, 0x01, 0x27, 0x28, 0x1b, 0x17, 0xf4, 0x03, 0xe8, 0xd7, 0xea, 0x25, 0xd2, 0x87, 0x74, 0xe8, 0x15, 0x10, + /* (2^135)P */ 0x4d, 0xcc, 0x3a, 0xd2, 0xfe, 0xe3, 0x8d, 0xc5, 0x2d, 0xbe, 0xa7, 0x94, 0xc2, 0x91, 0xdb, 0x50, 0x57, 0xf4, 0x9c, 0x1c, 0x3d, 0xd4, 0x94, 0x0b, 0x4a, 0x52, 0x37, 0x6e, 0xfa, 0x40, 0x16, 0x6b, + /* (2^136)P */ 0x09, 0x0d, 0xda, 0x5f, 0x6c, 0x34, 0x2f, 0x69, 0x51, 0x31, 0x4d, 0xfa, 0x59, 0x1c, 0x0b, 0x20, 0x96, 0xa2, 0x77, 0x07, 0x76, 0x6f, 0xc4, 0xb8, 0xcf, 0xfb, 0xfd, 0x3f, 0x5f, 0x39, 0x38, 0x4b, + /* (2^137)P */ 0x71, 0xd6, 0x54, 0xbe, 0x00, 0x5e, 0xd2, 0x18, 0xa6, 0xab, 0xc8, 0xbe, 0x82, 0x05, 0xd5, 0x60, 0x82, 0xb9, 0x78, 0x3b, 0x26, 0x8f, 0xad, 0x87, 0x32, 0x04, 0xda, 0x9c, 0x4e, 0xf6, 0xfd, 0x50, + /* (2^138)P */ 0xf0, 0xdc, 0x78, 0xc5, 0xaa, 0x67, 0xf5, 0x90, 0x3b, 0x13, 0xa3, 0xf2, 0x0e, 0x9b, 0x1e, 0xef, 0x71, 0xde, 0xd9, 0x42, 0x92, 0xba, 0xeb, 0x0e, 0xc7, 0x01, 0x31, 0xf0, 0x9b, 0x3c, 0x47, 0x15, + /* (2^139)P */ 0x95, 0x80, 0xb7, 0x56, 0xae, 0xe8, 0x77, 0x7c, 0x8e, 0x07, 0x6f, 0x6e, 0x66, 0xe7, 0x78, 0xb6, 0x1f, 0xba, 0x48, 0x53, 0x61, 0xb9, 0xa0, 0x2d, 0x0b, 0x3f, 0x73, 0xff, 0xc1, 0x31, 0xf9, 0x7c, + /* (2^140)P */ 0x6c, 0x36, 0x0a, 0x0a, 0xf5, 0x57, 0xb3, 0x26, 0x32, 0xd7, 0x87, 0x2b, 0xf4, 0x8c, 0x70, 0xe9, 0xc0, 0xb2, 0x1c, 0xf9, 0xa5, 0xee, 0x3a, 0xc1, 0x4c, 0xbb, 0x43, 0x11, 0x99, 0x0c, 0xd9, 0x35, + /* (2^141)P */ 0xdc, 0xd9, 0xa0, 0xa9, 0x04, 0xc4, 0xc1, 0x47, 0x51, 0xd2, 0x72, 0x19, 0x45, 0x58, 0x9e, 0x65, 0x31, 0x8c, 0xb3, 0x73, 0xc4, 0xa8, 0x75, 0x38, 0x24, 0x1f, 0x56, 0x79, 0xd3, 0x9e, 0xbd, 0x1f, + /* (2^142)P */ 0x8d, 0xc2, 0x1e, 0xd4, 0x6f, 0xbc, 0xfa, 0x11, 0xca, 0x2d, 0x2a, 0xcd, 0xe3, 0xdf, 0xf8, 0x7e, 0x95, 0x45, 0x40, 0x8c, 0x5d, 0x3b, 0xe7, 0x72, 0x27, 0x2f, 0xb7, 0x54, 0x49, 0xfa, 0x35, 0x61, + /* (2^143)P */ 0x9c, 0xb6, 0x24, 0xde, 0xa2, 0x32, 0xfc, 0xcc, 0x88, 0x5d, 0x09, 0x1f, 0x8c, 0x69, 0x55, 0x3f, 0x29, 0xf9, 0xc3, 0x5a, 0xed, 0x50, 0x33, 0xbe, 0xeb, 0x7e, 0x47, 0xca, 0x06, 0xf8, 0x9b, 0x5e, + /* (2^144)P */ 0x68, 0x9f, 0x30, 0x3c, 0xb6, 0x8f, 0xce, 0xe9, 0xf4, 0xf9, 0xe1, 0x65, 0x35, 0xf6, 0x76, 0x53, 0xf1, 0x93, 0x63, 0x5a, 0xb3, 0xcf, 0xaf, 0xd1, 0x06, 0x35, 0x62, 0xe5, 0xed, 0xa1, 0x32, 0x66, + /* (2^145)P */ 0x4c, 0xed, 0x2d, 0x0c, 0x39, 0x6c, 0x7d, 0x0b, 0x1f, 0xcb, 0x04, 0xdf, 0x81, 0x32, 0xcb, 0x56, 0xc7, 0xc3, 0xec, 0x49, 0x12, 0x5a, 0x30, 0x66, 0x2a, 0xa7, 0x8c, 0xa3, 0x60, 0x8b, 0x58, 0x5d, + /* (2^146)P */ 0x2d, 0xf4, 0xe5, 0xe8, 0x78, 0xbf, 0xec, 0xa6, 0xec, 0x3e, 0x8a, 0x3c, 0x4b, 0xb4, 0xee, 0x86, 0x04, 0x16, 0xd2, 0xfb, 0x48, 0x9c, 0x21, 0xec, 0x31, 0x67, 0xc3, 0x17, 0xf5, 0x1a, 0xaf, 0x1a, + /* (2^147)P */ 0xe7, 0xbd, 0x69, 0x67, 0x83, 0xa2, 0x06, 0xc3, 0xdb, 0x2a, 0x1e, 0x2b, 0x62, 0x80, 0x82, 0x20, 0xa6, 0x94, 0xff, 0xfb, 0x1f, 0xf5, 0x27, 0x80, 0x6b, 0xf2, 0x24, 0x11, 0xce, 0xa1, 0xcf, 0x76, + /* (2^148)P */ 0xb6, 0xab, 0x22, 0x24, 0x56, 0x00, 0xeb, 0x18, 0xc3, 0x29, 0x8c, 0x8f, 0xd5, 0xc4, 0x77, 0xf3, 0x1a, 0x56, 0x31, 0xf5, 0x07, 0xc2, 0xbb, 0x4d, 0x27, 0x8a, 0x12, 0x82, 0xf0, 0xb7, 0x53, 0x02, + /* (2^149)P */ 0xe0, 0x17, 0x2c, 0xb6, 0x1c, 0x09, 0x1f, 0x3d, 0xa9, 0x28, 0x46, 0xd6, 0xab, 0xe1, 0x60, 0x48, 0x53, 0x42, 0x9d, 0x30, 0x36, 0x74, 0xd1, 0x52, 0x76, 0xe5, 0xfa, 0x3e, 0xe1, 0x97, 0x6f, 0x35, + /* (2^150)P */ 0x5b, 0x53, 0x50, 0xa1, 0x1a, 0xe1, 0x51, 0xd3, 0xcc, 0x78, 0xd8, 0x1d, 0xbb, 0x45, 0x6b, 0x3e, 0x98, 0x2c, 0xd9, 0xbe, 0x28, 0x61, 0x77, 0x0c, 0xb8, 0x85, 0x28, 0x03, 0x93, 0xae, 0x34, 0x1d, + /* (2^151)P */ 0xc3, 0xa4, 0x5b, 0xa8, 0x8c, 0x48, 0xa0, 0x4b, 0xce, 0xe6, 0x9c, 0x3c, 0xc3, 0x48, 0x53, 0x98, 0x70, 0xa7, 0xbd, 0x97, 0x6f, 0x4c, 0x12, 0x66, 0x4a, 0x12, 0x54, 0x06, 0x29, 0xa0, 0x81, 0x0f, + /* (2^152)P */ 0xfd, 0x86, 0x9b, 0x56, 0xa6, 0x9c, 0xd0, 0x9e, 0x2d, 0x9a, 0xaf, 0x18, 0xfd, 0x09, 0x10, 0x81, 0x0a, 0xc2, 0xd8, 0x93, 0x3f, 0xd0, 0x08, 0xff, 0x6b, 0xf2, 0xae, 0x9f, 0x19, 0x48, 0xa1, 0x52, + /* (2^153)P */ 0x73, 0x1b, 0x8d, 0x2d, 0xdc, 0xf9, 0x03, 0x3e, 0x70, 0x1a, 0x96, 0x73, 0x18, 0x80, 0x05, 0x42, 0x70, 0x59, 0xa3, 0x41, 0xf0, 0x87, 0xd9, 0xc0, 0x49, 0xd5, 0xc0, 0xa1, 0x15, 0x1f, 0xaa, 0x07, + /* (2^154)P */ 0x24, 0x72, 0xd2, 0x8c, 0xe0, 0x6c, 0xd4, 0xdf, 0x39, 0x42, 0x4e, 0x93, 0x4f, 0x02, 0x0a, 0x6d, 0x59, 0x7b, 0x89, 0x99, 0x63, 0x7a, 0x8a, 0x80, 0xa2, 0x95, 0x3d, 0xe1, 0xe9, 0x56, 0x45, 0x0a, + /* (2^155)P */ 0x45, 0x30, 0xc1, 0xe9, 0x1f, 0x99, 0x1a, 0xd2, 0xb8, 0x51, 0x77, 0xfe, 0x48, 0x85, 0x0e, 0x9b, 0x35, 0x00, 0xf3, 0x4b, 0xcb, 0x43, 0xa6, 0x5d, 0x21, 0xf7, 0x40, 0x39, 0xd6, 0x28, 0xdb, 0x77, + /* (2^156)P */ 0x11, 0x90, 0xdc, 0x4a, 0x61, 0xeb, 0x5e, 0xfc, 0xeb, 0x11, 0xc4, 0xe8, 0x9a, 0x41, 0x29, 0x52, 0x74, 0xcf, 0x1d, 0x7d, 0x78, 0xe7, 0xc3, 0x9e, 0xb5, 0x4c, 0x6e, 0x21, 0x3e, 0x05, 0x0d, 0x34, + /* (2^157)P */ 0xb4, 0xf2, 0x8d, 0xb4, 0x39, 0xaf, 0xc7, 0xca, 0x94, 0x0a, 0xa1, 0x71, 0x28, 0xec, 0xfa, 0xc0, 0xed, 0x75, 0xa5, 0x5c, 0x24, 0x69, 0x0a, 0x14, 0x4c, 0x3a, 0x27, 0x34, 0x71, 0xc3, 0xf1, 0x0c, + /* (2^158)P */ 0xa5, 0xb8, 0x24, 0xc2, 0x6a, 0x30, 0xee, 0xc8, 0xb0, 0x30, 0x49, 0xcb, 0x7c, 0xee, 0xea, 0x57, 0x4f, 0xe7, 0xcb, 0xaa, 0xbd, 0x06, 0xe8, 0xa1, 0x7d, 0x65, 0xeb, 0x2e, 0x74, 0x62, 0x9a, 0x7d, + /* (2^159)P */ 0x30, 0x48, 0x6c, 0x54, 0xef, 0xb6, 0xb6, 0x9e, 0x2e, 0x6e, 0xb3, 0xdd, 0x1f, 0xca, 0x5c, 0x88, 0x05, 0x71, 0x0d, 0xef, 0x83, 0xf3, 0xb9, 0xe6, 0x12, 0x04, 0x2e, 0x9d, 0xef, 0x4f, 0x65, 0x58, + /* (2^160)P */ 0x26, 0x8e, 0x0e, 0xbe, 0xff, 0xc4, 0x05, 0xa9, 0x6e, 0x81, 0x31, 0x9b, 0xdf, 0xe5, 0x2d, 0x94, 0xe1, 0x88, 0x2e, 0x80, 0x3f, 0x72, 0x7d, 0x49, 0x8d, 0x40, 0x2f, 0x60, 0xea, 0x4d, 0x68, 0x30, + /* (2^161)P */ 0x34, 0xcb, 0xe6, 0xa3, 0x78, 0xa2, 0xe5, 0x21, 0xc4, 0x1d, 0x15, 0x5b, 0x6f, 0x6e, 0xfb, 0xae, 0x15, 0xca, 0x77, 0x9d, 0x04, 0x8e, 0x0b, 0xb3, 0x81, 0x89, 0xb9, 0x53, 0xcf, 0xc9, 0xc3, 0x28, + /* (2^162)P */ 0x2a, 0xdd, 0x6c, 0x55, 0x21, 0xb7, 0x7f, 0x28, 0x74, 0x22, 0x02, 0x97, 0xa8, 0x7c, 0x31, 0x0d, 0x58, 0x32, 0x54, 0x3a, 0x42, 0xc7, 0x68, 0x74, 0x2f, 0x64, 0xb5, 0x4e, 0x46, 0x11, 0x7f, 0x4a, + /* (2^163)P */ 0xa6, 0x3a, 0x19, 0x4d, 0x77, 0xa4, 0x37, 0xa2, 0xa1, 0x29, 0x21, 0xa9, 0x6e, 0x98, 0x65, 0xd8, 0x88, 0x1a, 0x7c, 0xf8, 0xec, 0x15, 0xc5, 0x24, 0xeb, 0xf5, 0x39, 0x5f, 0x57, 0x03, 0x40, 0x60, + /* (2^164)P */ 0x27, 0x9b, 0x0a, 0x57, 0x89, 0xf1, 0xb9, 0x47, 0x78, 0x4b, 0x5e, 0x46, 0xde, 0xce, 0x98, 0x2b, 0x20, 0x5c, 0xb8, 0xdb, 0x51, 0xf5, 0x6d, 0x02, 0x01, 0x19, 0xe2, 0x47, 0x10, 0xd9, 0xfc, 0x74, + /* (2^165)P */ 0xa3, 0xbf, 0xc1, 0x23, 0x0a, 0xa9, 0xe2, 0x13, 0xf6, 0x19, 0x85, 0x47, 0x4e, 0x07, 0xb0, 0x0c, 0x44, 0xcf, 0xf6, 0x3a, 0xbe, 0xcb, 0xf1, 0x5f, 0xbe, 0x2d, 0x81, 0xbe, 0x38, 0x54, 0xfe, 0x67, + /* (2^166)P */ 0xb0, 0x05, 0x0f, 0xa4, 0x4f, 0xf6, 0x3c, 0xd1, 0x87, 0x37, 0x28, 0x32, 0x2f, 0xfb, 0x4d, 0x05, 0xea, 0x2a, 0x0d, 0x7f, 0x5b, 0x91, 0x73, 0x41, 0x4e, 0x0d, 0x61, 0x1f, 0x4f, 0x14, 0x2f, 0x48, + /* (2^167)P */ 0x34, 0x82, 0x7f, 0xb4, 0x01, 0x02, 0x21, 0xf6, 0x90, 0xb9, 0x70, 0x9e, 0x92, 0xe1, 0x0a, 0x5d, 0x7c, 0x56, 0x49, 0xb0, 0x55, 0xf4, 0xd7, 0xdc, 0x01, 0x6f, 0x91, 0xf0, 0xf1, 0xd0, 0x93, 0x7e, + /* (2^168)P */ 0xfa, 0xb4, 0x7d, 0x8a, 0xf1, 0xcb, 0x79, 0xdd, 0x2f, 0xc6, 0x74, 0x6f, 0xbf, 0x91, 0x83, 0xbe, 0xbd, 0x91, 0x82, 0x4b, 0xd1, 0x45, 0x71, 0x02, 0x05, 0x17, 0xbf, 0x2c, 0xea, 0x73, 0x5a, 0x58, + /* (2^169)P */ 0xb2, 0x0d, 0x8a, 0x92, 0x3e, 0xa0, 0x5c, 0x48, 0xe7, 0x57, 0x28, 0x74, 0xa5, 0x01, 0xfc, 0x10, 0xa7, 0x51, 0xd5, 0xd6, 0xdb, 0x2e, 0x48, 0x2f, 0x8a, 0xdb, 0x8f, 0x04, 0xb5, 0x33, 0x04, 0x0f, + /* (2^170)P */ 0x47, 0x62, 0xdc, 0xd7, 0x8d, 0x2e, 0xda, 0x60, 0x9a, 0x81, 0xd4, 0x8c, 0xd3, 0xc9, 0xb4, 0x88, 0x97, 0x66, 0xf6, 0x01, 0xc0, 0x3a, 0x03, 0x13, 0x75, 0x7d, 0x36, 0x3b, 0xfe, 0x24, 0x3b, 0x27, + /* (2^171)P */ 0xd4, 0xb9, 0xb3, 0x31, 0x6a, 0xf6, 0xe8, 0xc6, 0xd5, 0x49, 0xdf, 0x94, 0xa4, 0x14, 0x15, 0x28, 0xa7, 0x3d, 0xb2, 0xc8, 0xdf, 0x6f, 0x72, 0xd1, 0x48, 0xe5, 0xde, 0x03, 0xd1, 0xe7, 0x3a, 0x4b, + /* (2^172)P */ 0x7e, 0x9d, 0x4b, 0xce, 0x19, 0x6e, 0x25, 0xc6, 0x1c, 0xc6, 0xe3, 0x86, 0xf1, 0x5c, 0x5c, 0xff, 0x45, 0xc1, 0x8e, 0x4b, 0xa3, 0x3c, 0xc6, 0xac, 0x74, 0x65, 0xe6, 0xfe, 0x88, 0x18, 0x62, 0x74, + /* (2^173)P */ 0x1e, 0x0a, 0x29, 0x45, 0x96, 0x40, 0x6f, 0x95, 0x2e, 0x96, 0x3a, 0x26, 0xe3, 0xf8, 0x0b, 0xef, 0x7b, 0x64, 0xc2, 0x5e, 0xeb, 0x50, 0x6a, 0xed, 0x02, 0x75, 0xca, 0x9d, 0x3a, 0x28, 0x94, 0x06, + /* (2^174)P */ 0xd1, 0xdc, 0xa2, 0x43, 0x36, 0x96, 0x9b, 0x76, 0x53, 0x53, 0xfc, 0x09, 0xea, 0xc8, 0xb7, 0x42, 0xab, 0x7e, 0x39, 0x13, 0xee, 0x2a, 0x00, 0x4f, 0x3a, 0xd6, 0xb7, 0x19, 0x2c, 0x5e, 0x00, 0x63, + /* (2^175)P */ 0xea, 0x3b, 0x02, 0x63, 0xda, 0x36, 0x67, 0xca, 0xb7, 0x99, 0x2a, 0xb1, 0x6d, 0x7f, 0x6c, 0x96, 0xe1, 0xc5, 0x37, 0xc5, 0x90, 0x93, 0xe0, 0xac, 0xee, 0x89, 0xaa, 0xa1, 0x63, 0x60, 0x69, 0x0b, + /* (2^176)P */ 0xe5, 0x56, 0x8c, 0x28, 0x97, 0x3e, 0xb0, 0xeb, 0xe8, 0x8b, 0x8c, 0x93, 0x9f, 0x9f, 0x2a, 0x43, 0x71, 0x7f, 0x71, 0x5b, 0x3d, 0xa9, 0xa5, 0xa6, 0x97, 0x9d, 0x8f, 0xe1, 0xc3, 0xb4, 0x5f, 0x1a, + /* (2^177)P */ 0xce, 0xcd, 0x60, 0x1c, 0xad, 0xe7, 0x94, 0x1c, 0xa0, 0xc4, 0x02, 0xfc, 0x43, 0x2a, 0x20, 0xee, 0x20, 0x6a, 0xc4, 0x67, 0xd8, 0xe4, 0xaf, 0x8d, 0x58, 0x7b, 0xc2, 0x8a, 0x3c, 0x26, 0x10, 0x0a, + /* (2^178)P */ 0x4a, 0x2a, 0x43, 0xe4, 0xdf, 0xa9, 0xde, 0xd0, 0xc5, 0x77, 0x92, 0xbe, 0x7b, 0xf8, 0x6a, 0x85, 0x1a, 0xc7, 0x12, 0xc2, 0xac, 0x72, 0x84, 0xce, 0x91, 0x1e, 0xbb, 0x9b, 0x6d, 0x1b, 0x15, 0x6f, + /* (2^179)P */ 0x6a, 0xd5, 0xee, 0x7c, 0x52, 0x6c, 0x77, 0x26, 0xec, 0xfa, 0xf8, 0xfb, 0xb7, 0x1c, 0x21, 0x7d, 0xcc, 0x09, 0x46, 0xfd, 0xa6, 0x66, 0xae, 0x37, 0x42, 0x0c, 0x77, 0xd2, 0x02, 0xb7, 0x81, 0x1f, + /* (2^180)P */ 0x92, 0x83, 0xc5, 0xea, 0x57, 0xb0, 0xb0, 0x2f, 0x9d, 0x4e, 0x74, 0x29, 0xfe, 0x89, 0xdd, 0xe1, 0xf8, 0xb4, 0xbe, 0x17, 0xeb, 0xf8, 0x64, 0xc9, 0x1e, 0xd4, 0xa2, 0xc9, 0x73, 0x10, 0x57, 0x29, + /* (2^181)P */ 0x54, 0xe2, 0xc0, 0x81, 0x89, 0xa1, 0x48, 0xa9, 0x30, 0x28, 0xb2, 0x65, 0x9b, 0x36, 0xf6, 0x2d, 0xc6, 0xd3, 0xcf, 0x5f, 0xd7, 0xb2, 0x3e, 0xa3, 0x1f, 0xa0, 0x99, 0x41, 0xec, 0xd6, 0x8c, 0x07, + /* (2^182)P */ 0x2f, 0x0d, 0x90, 0xad, 0x41, 0x4a, 0x58, 0x4a, 0x52, 0x4c, 0xc7, 0xe2, 0x78, 0x2b, 0x14, 0x32, 0x78, 0xc9, 0x31, 0x84, 0x33, 0xe8, 0xc4, 0x68, 0xc2, 0x9f, 0x68, 0x08, 0x90, 0xea, 0x69, 0x7f, + /* (2^183)P */ 0x65, 0x82, 0xa3, 0x46, 0x1e, 0xc8, 0xf2, 0x52, 0xfd, 0x32, 0xa8, 0x04, 0x2d, 0x07, 0x78, 0xfd, 0x94, 0x9e, 0x35, 0x25, 0xfa, 0xd5, 0xd7, 0x8c, 0xd2, 0x29, 0xcc, 0x54, 0x74, 0x1b, 0xe7, 0x4d, + /* (2^184)P */ 0xc9, 0x6a, 0xda, 0x1e, 0xad, 0x60, 0xeb, 0x42, 0x3a, 0x9c, 0xc0, 0xdb, 0xdf, 0x37, 0xad, 0x0a, 0x91, 0xc1, 0x3c, 0xe3, 0x71, 0x4b, 0x00, 0x81, 0x3c, 0x80, 0x22, 0x51, 0x34, 0xbe, 0xe6, 0x44, + /* (2^185)P */ 0xdb, 0x20, 0x19, 0xba, 0x88, 0x83, 0xfe, 0x03, 0x08, 0xb0, 0x0d, 0x15, 0x32, 0x7c, 0xd5, 0xf5, 0x29, 0x0c, 0xf6, 0x1a, 0x28, 0xc4, 0xc8, 0x49, 0xee, 0x1a, 0x70, 0xde, 0x18, 0xb5, 0xed, 0x21, + /* (2^186)P */ 0x99, 0xdc, 0x06, 0x8f, 0x41, 0x3e, 0xb6, 0x7f, 0xb8, 0xd7, 0x66, 0xc1, 0x99, 0x0d, 0x46, 0xa4, 0x83, 0x0a, 0x52, 0xce, 0x48, 0x52, 0xdd, 0x24, 0x58, 0x83, 0x92, 0x2b, 0x71, 0xad, 0xc3, 0x5e, + /* (2^187)P */ 0x0f, 0x93, 0x17, 0xbd, 0x5f, 0x2a, 0x02, 0x15, 0xe3, 0x70, 0x25, 0xd8, 0x77, 0x4a, 0xf6, 0xa4, 0x12, 0x37, 0x78, 0x15, 0x69, 0x8d, 0xbc, 0x12, 0xbb, 0x0a, 0x62, 0xfc, 0xc0, 0x94, 0x81, 0x49, + /* (2^188)P */ 0x82, 0x6c, 0x68, 0x55, 0xd2, 0xd9, 0xa2, 0x38, 0xf0, 0x21, 0x3e, 0x19, 0xd9, 0x6b, 0x5c, 0x78, 0x84, 0x54, 0x4a, 0xb2, 0x1a, 0xc8, 0xd5, 0xe4, 0x89, 0x09, 0xe2, 0xb2, 0x60, 0x78, 0x30, 0x56, + /* (2^189)P */ 0xc4, 0x74, 0x4d, 0x8b, 0xf7, 0x55, 0x9d, 0x42, 0x31, 0x01, 0x35, 0x43, 0x46, 0x83, 0xf1, 0x22, 0xff, 0x1f, 0xc7, 0x98, 0x45, 0xc2, 0x60, 0x1e, 0xef, 0x83, 0x99, 0x97, 0x14, 0xf0, 0xf2, 0x59, + /* (2^190)P */ 0x44, 0x4a, 0x49, 0xeb, 0x56, 0x7d, 0xa4, 0x46, 0x8e, 0xa1, 0x36, 0xd6, 0x54, 0xa8, 0x22, 0x3e, 0x3b, 0x1c, 0x49, 0x74, 0x52, 0xe1, 0x46, 0xb3, 0xe7, 0xcd, 0x90, 0x53, 0x4e, 0xfd, 0xea, 0x2c, + /* (2^191)P */ 0x75, 0x66, 0x0d, 0xbe, 0x38, 0x85, 0x8a, 0xba, 0x23, 0x8e, 0x81, 0x50, 0xbb, 0x74, 0x90, 0x4b, 0xc3, 0x04, 0xd3, 0x85, 0x90, 0xb8, 0xda, 0xcb, 0xc4, 0x92, 0x61, 0xe5, 0xe0, 0x4f, 0xa2, 0x61, + /* (2^192)P */ 0xcb, 0x5b, 0x52, 0xdb, 0xe6, 0x15, 0x76, 0xcb, 0xca, 0xe4, 0x67, 0xa5, 0x35, 0x8c, 0x7d, 0xdd, 0x69, 0xdd, 0xfc, 0xca, 0x3a, 0x15, 0xb4, 0xe6, 0x66, 0x97, 0x3c, 0x7f, 0x09, 0x8e, 0x66, 0x2d, + /* (2^193)P */ 0xf0, 0x5e, 0xe5, 0x5c, 0x26, 0x7e, 0x7e, 0xa5, 0x67, 0xb9, 0xd4, 0x7c, 0x52, 0x4e, 0x9f, 0x5d, 0xe5, 0xd1, 0x2f, 0x49, 0x06, 0x36, 0xc8, 0xfb, 0xae, 0xf7, 0xc3, 0xb7, 0xbe, 0x52, 0x0d, 0x09, + /* (2^194)P */ 0x7c, 0x4d, 0x7b, 0x1e, 0x5a, 0x51, 0xb9, 0x09, 0xc0, 0x44, 0xda, 0x99, 0x25, 0x6a, 0x26, 0x1f, 0x04, 0x55, 0xc5, 0xe2, 0x48, 0x95, 0xc4, 0xa1, 0xcc, 0x15, 0x6f, 0x12, 0x87, 0x42, 0xf0, 0x7e, + /* (2^195)P */ 0x15, 0xef, 0x30, 0xbd, 0x9d, 0x65, 0xd1, 0xfe, 0x7b, 0x27, 0xe0, 0xc4, 0xee, 0xb9, 0x4a, 0x8b, 0x91, 0x32, 0xdf, 0xa5, 0x36, 0x62, 0x4d, 0x88, 0x88, 0xf7, 0x5c, 0xbf, 0xa6, 0x6e, 0xd9, 0x1f, + /* (2^196)P */ 0x9a, 0x0d, 0x19, 0x1f, 0x98, 0x61, 0xa1, 0x42, 0xc1, 0x52, 0x60, 0x7e, 0x50, 0x49, 0xd8, 0x61, 0xd5, 0x2c, 0x5a, 0x28, 0xbf, 0x13, 0xe1, 0x9f, 0xd8, 0x85, 0xad, 0xdb, 0x76, 0xd6, 0x22, 0x7c, + /* (2^197)P */ 0x7d, 0xd2, 0xfb, 0x2b, 0xed, 0x70, 0xe7, 0x82, 0xa5, 0xf5, 0x96, 0xe9, 0xec, 0xb2, 0x05, 0x4c, 0x50, 0x01, 0x90, 0xb0, 0xc2, 0xa9, 0x40, 0xcd, 0x64, 0xbf, 0xd9, 0x13, 0x92, 0x31, 0x95, 0x58, + /* (2^198)P */ 0x08, 0x2e, 0xea, 0x3f, 0x70, 0x5d, 0xcc, 0xe7, 0x8c, 0x18, 0xe2, 0x58, 0x12, 0x49, 0x0c, 0xb5, 0xf0, 0x5b, 0x20, 0x48, 0xaa, 0x0b, 0xe3, 0xcc, 0x62, 0x2d, 0xa3, 0xcf, 0x9c, 0x65, 0x7c, 0x53, + /* (2^199)P */ 0x88, 0xc0, 0xcf, 0x98, 0x3a, 0x62, 0xb6, 0x37, 0xa4, 0xac, 0xd6, 0xa4, 0x1f, 0xed, 0x9b, 0xfe, 0xb0, 0xd1, 0xa8, 0x56, 0x8e, 0x9b, 0xd2, 0x04, 0x75, 0x95, 0x51, 0x0b, 0xc4, 0x71, 0x5f, 0x72, + /* (2^200)P */ 0xe6, 0x9c, 0x33, 0xd0, 0x9c, 0xf8, 0xc7, 0x28, 0x8b, 0xc1, 0xdd, 0x69, 0x44, 0xb1, 0x67, 0x83, 0x2c, 0x65, 0xa1, 0xa6, 0x83, 0xda, 0x3a, 0x88, 0x17, 0x6c, 0x4d, 0x03, 0x74, 0x19, 0x5f, 0x58, + /* (2^201)P */ 0x88, 0x91, 0xb1, 0xf1, 0x66, 0xb2, 0xcf, 0x89, 0x17, 0x52, 0xc3, 0xe7, 0x63, 0x48, 0x3b, 0xe6, 0x6a, 0x52, 0xc0, 0xb4, 0xa6, 0x9d, 0x8c, 0xd8, 0x35, 0x46, 0x95, 0xf0, 0x9d, 0x5c, 0x03, 0x3e, + /* (2^202)P */ 0x9d, 0xde, 0x45, 0xfb, 0x12, 0x54, 0x9d, 0xdd, 0x0d, 0xf4, 0xcf, 0xe4, 0x32, 0x45, 0x68, 0xdd, 0x1c, 0x67, 0x1d, 0x15, 0x9b, 0x99, 0x5c, 0x4b, 0x90, 0xf6, 0xe7, 0x11, 0xc8, 0x2c, 0x8c, 0x2d, + /* (2^203)P */ 0x40, 0x5d, 0x05, 0x90, 0x1d, 0xbe, 0x54, 0x7f, 0x40, 0xaf, 0x4a, 0x46, 0xdf, 0xc5, 0x64, 0xa4, 0xbe, 0x17, 0xe9, 0xf0, 0x24, 0x96, 0x97, 0x33, 0x30, 0x6b, 0x35, 0x27, 0xc5, 0x8d, 0x01, 0x2c, + /* (2^204)P */ 0xd4, 0xb3, 0x30, 0xe3, 0x24, 0x50, 0x41, 0xa5, 0xd3, 0x52, 0x16, 0x69, 0x96, 0x3d, 0xff, 0x73, 0xf1, 0x59, 0x9b, 0xef, 0xc4, 0x42, 0xec, 0x94, 0x5a, 0x8e, 0xd0, 0x18, 0x16, 0x20, 0x47, 0x07, + /* (2^205)P */ 0x53, 0x1c, 0x41, 0xca, 0x8a, 0xa4, 0x6c, 0x4d, 0x19, 0x61, 0xa6, 0xcf, 0x2f, 0x5f, 0x41, 0x66, 0xff, 0x27, 0xe2, 0x51, 0x00, 0xd4, 0x4d, 0x9c, 0xeb, 0xf7, 0x02, 0x9a, 0xc0, 0x0b, 0x81, 0x59, + /* (2^206)P */ 0x1d, 0x10, 0xdc, 0xb3, 0x71, 0xb1, 0x7e, 0x2a, 0x8e, 0xf6, 0xfe, 0x9f, 0xb9, 0x5a, 0x1c, 0x44, 0xea, 0x59, 0xb3, 0x93, 0x9b, 0x5c, 0x02, 0x32, 0x2f, 0x11, 0x9d, 0x1e, 0xa7, 0xe0, 0x8c, 0x5e, + /* (2^207)P */ 0xfd, 0x03, 0x95, 0x42, 0x92, 0xcb, 0xcc, 0xbf, 0x55, 0x5d, 0x09, 0x2f, 0x75, 0xba, 0x71, 0xd2, 0x1e, 0x09, 0x2d, 0x97, 0x5e, 0xad, 0x5e, 0x34, 0xba, 0x03, 0x31, 0xa8, 0x11, 0xdf, 0xc8, 0x18, + /* (2^208)P */ 0x4c, 0x0f, 0xed, 0x9a, 0x9a, 0x94, 0xcd, 0x90, 0x7e, 0xe3, 0x60, 0x66, 0xcb, 0xf4, 0xd1, 0xc5, 0x0b, 0x2e, 0xc5, 0x56, 0x2d, 0xc5, 0xca, 0xb8, 0x0d, 0x8e, 0x80, 0xc5, 0x00, 0xe4, 0x42, 0x6e, + /* (2^209)P */ 0x23, 0xfd, 0xae, 0xee, 0x66, 0x69, 0xb4, 0xa3, 0xca, 0xcd, 0x9e, 0xe3, 0x0b, 0x1f, 0x4f, 0x0c, 0x1d, 0xa5, 0x83, 0xd6, 0xc9, 0xc8, 0x9d, 0x18, 0x1b, 0x35, 0x09, 0x4c, 0x05, 0x7f, 0xf2, 0x51, + /* (2^210)P */ 0x82, 0x06, 0x32, 0x2a, 0xcd, 0x7c, 0x48, 0x4c, 0x96, 0x1c, 0xdf, 0xb3, 0x5b, 0xa9, 0x7e, 0x58, 0xe8, 0xb8, 0x5c, 0x55, 0x9e, 0xf7, 0xcc, 0xc8, 0x3d, 0xd7, 0x06, 0xa2, 0x29, 0xc8, 0x7d, 0x54, + /* (2^211)P */ 0x06, 0x9b, 0xc3, 0x80, 0xcd, 0xa6, 0x22, 0xb8, 0xc6, 0xd4, 0x00, 0x20, 0x73, 0x54, 0x6d, 0xe9, 0x4d, 0x3b, 0x46, 0x91, 0x6f, 0x5b, 0x53, 0x28, 0x1d, 0x6e, 0x48, 0xe2, 0x60, 0x46, 0x8f, 0x22, + /* (2^212)P */ 0xbf, 0x3a, 0x8d, 0xde, 0x38, 0x95, 0x79, 0x98, 0x6e, 0xca, 0xeb, 0x45, 0x00, 0x33, 0xd8, 0x8c, 0x38, 0xe7, 0x21, 0x82, 0x00, 0x2a, 0x95, 0x79, 0xbb, 0xd2, 0x5c, 0x53, 0xa7, 0xe1, 0x22, 0x43, + /* (2^213)P */ 0x1c, 0x80, 0xd1, 0x19, 0x18, 0xc1, 0x14, 0xb1, 0xc7, 0x5e, 0x3f, 0x4f, 0xd8, 0xe4, 0x16, 0x20, 0x4c, 0x0f, 0x26, 0x09, 0xf4, 0x2d, 0x0e, 0xdd, 0x66, 0x72, 0x5f, 0xae, 0xc0, 0x62, 0xc3, 0x5e, + /* (2^214)P */ 0xee, 0xb4, 0xb2, 0xb8, 0x18, 0x2b, 0x46, 0xc0, 0xfb, 0x1a, 0x4d, 0x27, 0x50, 0xd9, 0xc8, 0x7c, 0xd2, 0x02, 0x6b, 0x43, 0x05, 0x71, 0x5f, 0xf2, 0xd3, 0xcc, 0xf9, 0xbf, 0xdc, 0xf8, 0xbb, 0x43, + /* (2^215)P */ 0xdf, 0xe9, 0x39, 0xa0, 0x67, 0x17, 0xad, 0xb6, 0x83, 0x35, 0x9d, 0xf6, 0xa8, 0x4d, 0x71, 0xb0, 0xf5, 0x31, 0x29, 0xb4, 0x18, 0xfa, 0x55, 0x5e, 0x61, 0x09, 0xc6, 0x33, 0x8f, 0x55, 0xd5, 0x4e, + /* (2^216)P */ 0xdd, 0xa5, 0x47, 0xc6, 0x01, 0x79, 0xe3, 0x1f, 0x57, 0xd3, 0x81, 0x80, 0x1f, 0xdf, 0x3d, 0x59, 0xa6, 0xd7, 0x3f, 0x81, 0xfd, 0xa4, 0x49, 0x02, 0x61, 0xaf, 0x9c, 0x4e, 0x27, 0xca, 0xac, 0x69, + /* (2^217)P */ 0xc9, 0x21, 0x07, 0x33, 0xea, 0xa3, 0x7b, 0x04, 0xa0, 0x1e, 0x7e, 0x0e, 0xc2, 0x3f, 0x42, 0x83, 0x60, 0x4a, 0x31, 0x01, 0xaf, 0xc0, 0xf4, 0x1d, 0x27, 0x95, 0x28, 0x89, 0xab, 0x2d, 0xa6, 0x09, + /* (2^218)P */ 0x00, 0xcb, 0xc6, 0x9c, 0xa4, 0x25, 0xb3, 0xa5, 0xb6, 0x6c, 0xb5, 0x54, 0xc6, 0x5d, 0x4b, 0xe9, 0xa0, 0x94, 0xc9, 0xad, 0x79, 0x87, 0xe2, 0x3b, 0xad, 0x4a, 0x3a, 0xba, 0xf8, 0xe8, 0x96, 0x42, + /* (2^219)P */ 0xab, 0x1e, 0x45, 0x1e, 0x76, 0x89, 0x86, 0x32, 0x4a, 0x59, 0x59, 0xff, 0x8b, 0x59, 0x4d, 0x2e, 0x4a, 0x08, 0xa7, 0xd7, 0x53, 0x68, 0xb9, 0x49, 0xa8, 0x20, 0x14, 0x60, 0x19, 0xa3, 0x80, 0x49, + /* (2^220)P */ 0x42, 0x2c, 0x55, 0x2f, 0xe1, 0xb9, 0x65, 0x95, 0x96, 0xfe, 0x00, 0x71, 0xdb, 0x18, 0x53, 0x8a, 0xd7, 0xd0, 0xad, 0x43, 0x4d, 0x0b, 0xc9, 0x05, 0xda, 0x4e, 0x5d, 0x6a, 0xd6, 0x4c, 0x8b, 0x53, + /* (2^221)P */ 0x9f, 0x03, 0x9f, 0xe8, 0xc3, 0x4f, 0xe9, 0xf4, 0x45, 0x80, 0x61, 0x6f, 0xf2, 0x9a, 0x2c, 0x59, 0x50, 0x95, 0x4b, 0xfd, 0xb5, 0x6e, 0xa3, 0x08, 0x19, 0x14, 0xed, 0xc2, 0xf6, 0xfa, 0xff, 0x25, + /* (2^222)P */ 0x54, 0xd3, 0x79, 0xcc, 0x59, 0x44, 0x43, 0x34, 0x6b, 0x47, 0xd5, 0xb1, 0xb4, 0xbf, 0xec, 0xee, 0x99, 0x5d, 0x61, 0x61, 0xa0, 0x34, 0xeb, 0xdd, 0x73, 0xb7, 0x64, 0xeb, 0xcc, 0xce, 0x29, 0x51, + /* (2^223)P */ 0x20, 0x35, 0x99, 0x94, 0x58, 0x21, 0x43, 0xee, 0x3b, 0x0b, 0x4c, 0xf1, 0x7c, 0x9c, 0x2f, 0x77, 0xd5, 0xda, 0xbe, 0x06, 0xe3, 0xfc, 0xe2, 0xd2, 0x97, 0x6a, 0xf0, 0x46, 0xb5, 0x42, 0x5f, 0x71, + /* (2^224)P */ 0x1a, 0x5f, 0x5b, 0xda, 0xce, 0xcd, 0x4e, 0x43, 0xa9, 0x41, 0x97, 0xa4, 0x15, 0x71, 0xa1, 0x0d, 0x2e, 0xad, 0xed, 0x73, 0x7c, 0xd7, 0x0b, 0x68, 0x41, 0x90, 0xdd, 0x4e, 0x35, 0x02, 0x7c, 0x48, + /* (2^225)P */ 0xc4, 0xd9, 0x0e, 0xa7, 0xf3, 0xef, 0xef, 0xb8, 0x02, 0xe3, 0x57, 0xe8, 0xa3, 0x2a, 0xa3, 0x56, 0xa0, 0xa5, 0xa2, 0x48, 0xbd, 0x68, 0x3a, 0xdf, 0x44, 0xc4, 0x76, 0x31, 0xb7, 0x50, 0xf6, 0x07, + /* (2^226)P */ 0xb1, 0xcc, 0xe0, 0x26, 0x16, 0x9b, 0x8b, 0xe3, 0x36, 0xfb, 0x09, 0x8b, 0xc1, 0x53, 0xe0, 0x79, 0x64, 0x49, 0xf9, 0xc9, 0x19, 0x03, 0xd9, 0x56, 0xc4, 0xf5, 0x9f, 0xac, 0xe7, 0x41, 0xa9, 0x1c, + /* (2^227)P */ 0xbb, 0xa0, 0x2f, 0x16, 0x29, 0xdf, 0xc4, 0x49, 0x05, 0x33, 0xb3, 0x82, 0x32, 0xcf, 0x88, 0x84, 0x7d, 0x43, 0xbb, 0xca, 0x14, 0xda, 0xdf, 0x95, 0x86, 0xad, 0xd5, 0x64, 0x82, 0xf7, 0x91, 0x33, + /* (2^228)P */ 0x5d, 0x09, 0xb5, 0xe2, 0x6a, 0xe0, 0x9a, 0x72, 0x46, 0xa9, 0x59, 0x32, 0xd7, 0x58, 0x8a, 0xd5, 0xed, 0x21, 0x39, 0xd1, 0x62, 0x42, 0x83, 0xe9, 0x92, 0xb5, 0x4b, 0xa5, 0xfa, 0xda, 0xfe, 0x27, + /* (2^229)P */ 0xbb, 0x48, 0xad, 0x29, 0xb8, 0xc5, 0x9d, 0xa9, 0x60, 0xe2, 0x9e, 0x49, 0x42, 0x57, 0x02, 0x5f, 0xfd, 0x13, 0x75, 0x5d, 0xcd, 0x8e, 0x2c, 0x80, 0x38, 0xd9, 0x6d, 0x3f, 0xef, 0xb3, 0xce, 0x78, + /* (2^230)P */ 0x94, 0x5d, 0x13, 0x8a, 0x4f, 0xf4, 0x42, 0xc3, 0xa3, 0xdd, 0x8c, 0x82, 0x44, 0xdb, 0x9e, 0x7b, 0xe7, 0xcf, 0x37, 0x05, 0x1a, 0xd1, 0x36, 0x94, 0xc8, 0xb4, 0x1a, 0xec, 0x64, 0xb1, 0x64, 0x50, + /* (2^231)P */ 0xfc, 0xb2, 0x7e, 0xd3, 0xcf, 0xec, 0x20, 0x70, 0xfc, 0x25, 0x0d, 0xd9, 0x3e, 0xea, 0x31, 0x1f, 0x34, 0xbb, 0xa1, 0xdf, 0x7b, 0x0d, 0x93, 0x1b, 0x44, 0x30, 0x11, 0x48, 0x7a, 0x46, 0x44, 0x53, + /* (2^232)P */ 0xfb, 0x6d, 0x5e, 0xf2, 0x70, 0x31, 0x07, 0x70, 0xc8, 0x4c, 0x11, 0x50, 0x1a, 0xdc, 0x85, 0xe3, 0x00, 0x4f, 0xfc, 0xc8, 0x8a, 0x69, 0x48, 0x23, 0xd8, 0x40, 0xdd, 0x84, 0x52, 0xa5, 0x77, 0x2a, + /* (2^233)P */ 0xe4, 0x6c, 0x8c, 0xc9, 0xe0, 0xaf, 0x06, 0xfe, 0xe4, 0xd6, 0xdf, 0xdd, 0x96, 0xdf, 0x35, 0xc2, 0xd3, 0x1e, 0xbf, 0x33, 0x1e, 0xd0, 0x28, 0x14, 0xaf, 0xbd, 0x00, 0x93, 0xec, 0x68, 0x57, 0x78, + /* (2^234)P */ 0x3b, 0xb6, 0xde, 0x91, 0x7a, 0xe5, 0x02, 0x97, 0x80, 0x8b, 0xce, 0xe5, 0xbf, 0xb8, 0xbd, 0x61, 0xac, 0x58, 0x1d, 0x3d, 0x6f, 0x42, 0x5b, 0x64, 0xbc, 0x57, 0xa5, 0x27, 0x22, 0xa8, 0x04, 0x48, + /* (2^235)P */ 0x01, 0x26, 0x4d, 0xb4, 0x8a, 0x04, 0x57, 0x8e, 0x35, 0x69, 0x3a, 0x4b, 0x1a, 0x50, 0xd6, 0x68, 0x93, 0xc2, 0xe1, 0xf9, 0xc3, 0x9e, 0x9c, 0xc3, 0xe2, 0x63, 0xde, 0xd4, 0x57, 0xf2, 0x72, 0x41, + /* (2^236)P */ 0x01, 0x64, 0x0c, 0x33, 0x50, 0xb4, 0x68, 0xd3, 0x91, 0x23, 0x8f, 0x41, 0x17, 0x30, 0x0d, 0x04, 0x0d, 0xd9, 0xb7, 0x90, 0x60, 0xbb, 0x34, 0x2c, 0x1f, 0xd5, 0xdf, 0x8f, 0x22, 0x49, 0xf6, 0x16, + /* (2^237)P */ 0xf5, 0x8e, 0x92, 0x2b, 0x8e, 0x81, 0xa6, 0xbe, 0x72, 0x1e, 0xc1, 0xcd, 0x91, 0xcf, 0x8c, 0xe2, 0xcd, 0x36, 0x7a, 0xe7, 0x68, 0xaa, 0x4a, 0x59, 0x0f, 0xfd, 0x7f, 0x6c, 0x80, 0x34, 0x30, 0x31, + /* (2^238)P */ 0x65, 0xbd, 0x49, 0x22, 0xac, 0x27, 0x9d, 0x8a, 0x12, 0x95, 0x8e, 0x01, 0x64, 0xb4, 0xa3, 0x19, 0xc7, 0x7e, 0xb3, 0x52, 0xf3, 0xcf, 0x6c, 0xc2, 0x21, 0x7b, 0x79, 0x1d, 0x34, 0x68, 0x6f, 0x05, + /* (2^239)P */ 0x27, 0x23, 0xfd, 0x7e, 0x75, 0xd6, 0x79, 0x5e, 0x15, 0xfe, 0x3a, 0x55, 0xb6, 0xbc, 0xbd, 0xfa, 0x60, 0x5a, 0xaf, 0x6e, 0x2c, 0x22, 0xe7, 0xd3, 0x3b, 0x74, 0xae, 0x4d, 0x6d, 0xc7, 0x46, 0x70, + /* (2^240)P */ 0x55, 0x4a, 0x8d, 0xb1, 0x72, 0xe8, 0x0b, 0x66, 0x96, 0x14, 0x4e, 0x57, 0x18, 0x25, 0x99, 0x19, 0xbb, 0xdc, 0x2b, 0x30, 0x3a, 0x05, 0x03, 0xc1, 0x8e, 0x8e, 0x21, 0x0b, 0x80, 0xe9, 0xd8, 0x3e, + /* (2^241)P */ 0x3e, 0xe0, 0x75, 0xfa, 0x39, 0x92, 0x0b, 0x7b, 0x83, 0xc0, 0x33, 0x46, 0x68, 0xfb, 0xe9, 0xef, 0x93, 0x77, 0x1a, 0x39, 0xbe, 0x5f, 0xa3, 0x98, 0x34, 0xfe, 0xd0, 0xe2, 0x0f, 0x51, 0x65, 0x60, + /* (2^242)P */ 0x0c, 0xad, 0xab, 0x48, 0x85, 0x66, 0xcb, 0x55, 0x27, 0xe5, 0x87, 0xda, 0x48, 0x45, 0x58, 0xb4, 0xdd, 0xc1, 0x07, 0x01, 0xea, 0xec, 0x43, 0x2c, 0x35, 0xde, 0x72, 0x93, 0x80, 0x28, 0x60, 0x52, + /* (2^243)P */ 0x1f, 0x3b, 0x21, 0xf9, 0x6a, 0xc5, 0x15, 0x34, 0xdb, 0x98, 0x7e, 0x01, 0x4d, 0x1a, 0xee, 0x5b, 0x9b, 0x70, 0xcf, 0xb5, 0x05, 0xb1, 0xf6, 0x13, 0xb6, 0x9a, 0xb2, 0x82, 0x34, 0x0e, 0xf2, 0x5f, + /* (2^244)P */ 0x90, 0x6c, 0x2e, 0xcc, 0x75, 0x9c, 0xa2, 0x0a, 0x06, 0xe2, 0x70, 0x3a, 0xca, 0x73, 0x7d, 0xfc, 0x15, 0xc5, 0xb5, 0xc4, 0x8f, 0xc3, 0x9f, 0x89, 0x07, 0xc2, 0xff, 0x24, 0xb1, 0x86, 0x03, 0x25, + /* (2^245)P */ 0x56, 0x2b, 0x3d, 0xae, 0xd5, 0x28, 0xea, 0x54, 0xce, 0x60, 0xde, 0xd6, 0x9d, 0x14, 0x13, 0x99, 0xc1, 0xd6, 0x06, 0x8f, 0xc5, 0x4f, 0x69, 0x16, 0xc7, 0x8f, 0x01, 0xeb, 0x75, 0x39, 0xb2, 0x46, + /* (2^246)P */ 0xe2, 0xb4, 0xb7, 0xb4, 0x0f, 0x6a, 0x0a, 0x47, 0xde, 0x53, 0x72, 0x8f, 0x5a, 0x47, 0x92, 0x5d, 0xdb, 0x3a, 0xbd, 0x2f, 0xb5, 0xe5, 0xee, 0xab, 0x68, 0x69, 0x80, 0xa0, 0x01, 0x08, 0xa2, 0x7f, + /* (2^247)P */ 0xd2, 0x14, 0x77, 0x9f, 0xf1, 0xfa, 0xf3, 0x76, 0xc3, 0x60, 0x46, 0x2f, 0xc1, 0x40, 0xe8, 0xb3, 0x4e, 0x74, 0x12, 0xf2, 0x8d, 0xcd, 0xb4, 0x0f, 0xd2, 0x2d, 0x3a, 0x1d, 0x25, 0x5a, 0x06, 0x4b, + /* (2^248)P */ 0x4a, 0xcd, 0x77, 0x3d, 0x38, 0xde, 0xeb, 0x5c, 0xb1, 0x9c, 0x2c, 0x88, 0xdf, 0x39, 0xdf, 0x6a, 0x59, 0xf7, 0x9a, 0xb0, 0x2e, 0x24, 0xdd, 0xa2, 0x22, 0x64, 0x5f, 0x0e, 0xe5, 0xc0, 0x47, 0x31, + /* (2^249)P */ 0xdb, 0x50, 0x13, 0x1d, 0x10, 0xa5, 0x4c, 0x16, 0x62, 0xc9, 0x3f, 0xc3, 0x79, 0x34, 0xd1, 0xf8, 0x08, 0xda, 0xe5, 0x13, 0x4d, 0xce, 0x40, 0xe6, 0xba, 0xf8, 0x61, 0x50, 0xc4, 0xe0, 0xde, 0x4b, + /* (2^250)P */ 0xc9, 0xb1, 0xed, 0xa4, 0xc1, 0x6d, 0xc4, 0xd7, 0x8a, 0xd9, 0x7f, 0x43, 0xb6, 0xd7, 0x14, 0x55, 0x0b, 0xc0, 0xa1, 0xb2, 0x6b, 0x2f, 0x94, 0x58, 0x0e, 0x71, 0x70, 0x1d, 0xab, 0xb2, 0xff, 0x2d, + /* (2^251)P */ 0x68, 0x6d, 0x8b, 0xc1, 0x2f, 0xcf, 0xdf, 0xcc, 0x67, 0x61, 0x80, 0xb7, 0xa8, 0xcb, 0xeb, 0xa8, 0xe3, 0x37, 0x29, 0x5e, 0xf9, 0x97, 0x06, 0x98, 0x8c, 0x6e, 0x12, 0xd0, 0x1c, 0xba, 0xfb, 0x02, + /* (2^252)P */ 0x65, 0x45, 0xff, 0xad, 0x60, 0xc3, 0x98, 0xcb, 0x19, 0x15, 0xdb, 0x4b, 0xd2, 0x01, 0x71, 0x44, 0xd5, 0x15, 0xfb, 0x75, 0x74, 0xc8, 0xc4, 0x98, 0x7d, 0xa2, 0x22, 0x6e, 0x6d, 0xc7, 0xf8, 0x05, + /* (2^253)P */ 0x94, 0xf4, 0xb9, 0xfe, 0xdf, 0xe5, 0x69, 0xab, 0x75, 0x6b, 0x40, 0x18, 0x9d, 0xc7, 0x09, 0xae, 0x1d, 0x2d, 0xa4, 0x94, 0xfb, 0x45, 0x9b, 0x19, 0x84, 0xfa, 0x2a, 0xae, 0xeb, 0x0a, 0x71, 0x79, + /* (2^254)P */ 0xdf, 0xd2, 0x34, 0xf3, 0xa7, 0xed, 0xad, 0xa6, 0xb4, 0x57, 0x2a, 0xaf, 0x51, 0x9c, 0xde, 0x7b, 0xa8, 0xea, 0xdc, 0x86, 0x4f, 0xc6, 0x8f, 0xa9, 0x7b, 0xd0, 0x0e, 0xc2, 0x35, 0x03, 0xbe, 0x6b, + /* (2^255)P */ 0x44, 0x43, 0x98, 0x53, 0xbe, 0xdc, 0x7f, 0x66, 0xa8, 0x49, 0x59, 0x00, 0x1c, 0xbc, 0x72, 0x07, 0x8e, 0xd6, 0xbe, 0x4e, 0x9f, 0xa4, 0x07, 0xba, 0xbf, 0x30, 0xdf, 0xba, 0x85, 0xb0, 0xa7, 0x1f, +} diff --git a/vendor/github.com/cloudflare/circl/dh/x448/curve.go b/vendor/github.com/cloudflare/circl/dh/x448/curve.go new file mode 100644 index 000000000000..d59564e4b42a --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x448/curve.go @@ -0,0 +1,104 @@ +package x448 + +import ( + fp "github.com/cloudflare/circl/math/fp448" +) + +// ladderJoye calculates a fixed-point multiplication with the generator point. +// The algorithm is the right-to-left Joye's ladder as described +// in "How to precompute a ladder" in SAC'2017. +func ladderJoye(k *Key) { + w := [5]fp.Elt{} // [mu,x1,z1,x2,z2] order must be preserved. + w[1] = fp.Elt{ // x1 = S + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + } + fp.SetOne(&w[2]) // z1 = 1 + w[3] = fp.Elt{ // x2 = G-S + 0x20, 0x27, 0x9d, 0xc9, 0x7d, 0x19, 0xb1, 0xac, + 0xf8, 0xba, 0x69, 0x1c, 0xff, 0x33, 0xac, 0x23, + 0x51, 0x1b, 0xce, 0x3a, 0x64, 0x65, 0xbd, 0xf1, + 0x23, 0xf8, 0xc1, 0x84, 0x9d, 0x45, 0x54, 0x29, + 0x67, 0xb9, 0x81, 0x1c, 0x03, 0xd1, 0xcd, 0xda, + 0x7b, 0xeb, 0xff, 0x1a, 0x88, 0x03, 0xcf, 0x3a, + 0x42, 0x44, 0x32, 0x01, 0x25, 0xb7, 0xfa, 0xf0, + } + fp.SetOne(&w[4]) // z2 = 1 + + const n = 448 + const h = 2 + swap := uint(1) + for s := 0; s < n-h; s++ { + i := (s + h) / 8 + j := (s + h) % 8 + bit := uint((k[i] >> uint(j)) & 1) + copy(w[0][:], tableGenerator[s*Size:(s+1)*Size]) + diffAdd(&w, swap^bit) + swap = bit + } + for s := 0; s < h; s++ { + double(&w[1], &w[2]) + } + toAffine((*[fp.Size]byte)(k), &w[1], &w[2]) +} + +// ladderMontgomery calculates a generic scalar point multiplication +// The algorithm implemented is the left-to-right Montgomery's ladder. +func ladderMontgomery(k, xP *Key) { + w := [5]fp.Elt{} // [x1, x2, z2, x3, z3] order must be preserved. + w[0] = *(*fp.Elt)(xP) // x1 = xP + fp.SetOne(&w[1]) // x2 = 1 + w[3] = *(*fp.Elt)(xP) // x3 = xP + fp.SetOne(&w[4]) // z3 = 1 + + move := uint(0) + for s := 448 - 1; s >= 0; s-- { + i := s / 8 + j := s % 8 + bit := uint((k[i] >> uint(j)) & 1) + ladderStep(&w, move^bit) + move = bit + } + toAffine((*[fp.Size]byte)(k), &w[1], &w[2]) +} + +func toAffine(k *[fp.Size]byte, x, z *fp.Elt) { + fp.Inv(z, z) + fp.Mul(x, x, z) + _ = fp.ToBytes(k[:], x) +} + +var lowOrderPoints = [3]fp.Elt{ + { /* (0,_,1) point of order 2 on Curve448 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { /* (1,_,1) a point of order 4 on the twist of Curve448 */ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + { /* (-1,_,1) point of order 4 on Curve448 */ + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + }, +} diff --git a/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.go b/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.go new file mode 100644 index 000000000000..a0622666136d --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.go @@ -0,0 +1,30 @@ +//go:build amd64 && !purego +// +build amd64,!purego + +package x448 + +import ( + fp "github.com/cloudflare/circl/math/fp448" + "golang.org/x/sys/cpu" +) + +var hasBmi2Adx = cpu.X86.HasBMI2 && cpu.X86.HasADX + +var _ = hasBmi2Adx + +func double(x, z *fp.Elt) { doubleAmd64(x, z) } +func diffAdd(w *[5]fp.Elt, b uint) { diffAddAmd64(w, b) } +func ladderStep(w *[5]fp.Elt, b uint) { ladderStepAmd64(w, b) } +func mulA24(z, x *fp.Elt) { mulA24Amd64(z, x) } + +//go:noescape +func doubleAmd64(x, z *fp.Elt) + +//go:noescape +func diffAddAmd64(w *[5]fp.Elt, b uint) + +//go:noescape +func ladderStepAmd64(w *[5]fp.Elt, b uint) + +//go:noescape +func mulA24Amd64(z, x *fp.Elt) diff --git a/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.h b/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.h new file mode 100644 index 000000000000..8c1ae4d0fbb4 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.h @@ -0,0 +1,111 @@ +#define ladderStepLeg \ + addSub(x2,z2) \ + addSub(x3,z3) \ + integerMulLeg(b0,x2,z3) \ + integerMulLeg(b1,x3,z2) \ + reduceFromDoubleLeg(t0,b0) \ + reduceFromDoubleLeg(t1,b1) \ + addSub(t0,t1) \ + cselect(x2,x3,regMove) \ + cselect(z2,z3,regMove) \ + integerSqrLeg(b0,t0) \ + integerSqrLeg(b1,t1) \ + reduceFromDoubleLeg(x3,b0) \ + reduceFromDoubleLeg(z3,b1) \ + integerMulLeg(b0,x1,z3) \ + reduceFromDoubleLeg(z3,b0) \ + integerSqrLeg(b0,x2) \ + integerSqrLeg(b1,z2) \ + reduceFromDoubleLeg(x2,b0) \ + reduceFromDoubleLeg(z2,b1) \ + subtraction(t0,x2,z2) \ + multiplyA24Leg(t1,t0) \ + additionLeg(t1,t1,z2) \ + integerMulLeg(b0,x2,z2) \ + integerMulLeg(b1,t0,t1) \ + reduceFromDoubleLeg(x2,b0) \ + reduceFromDoubleLeg(z2,b1) + +#define ladderStepBmi2Adx \ + addSub(x2,z2) \ + addSub(x3,z3) \ + integerMulAdx(b0,x2,z3) \ + integerMulAdx(b1,x3,z2) \ + reduceFromDoubleAdx(t0,b0) \ + reduceFromDoubleAdx(t1,b1) \ + addSub(t0,t1) \ + cselect(x2,x3,regMove) \ + cselect(z2,z3,regMove) \ + integerSqrAdx(b0,t0) \ + integerSqrAdx(b1,t1) \ + reduceFromDoubleAdx(x3,b0) \ + reduceFromDoubleAdx(z3,b1) \ + integerMulAdx(b0,x1,z3) \ + reduceFromDoubleAdx(z3,b0) \ + integerSqrAdx(b0,x2) \ + integerSqrAdx(b1,z2) \ + reduceFromDoubleAdx(x2,b0) \ + reduceFromDoubleAdx(z2,b1) \ + subtraction(t0,x2,z2) \ + multiplyA24Adx(t1,t0) \ + additionAdx(t1,t1,z2) \ + integerMulAdx(b0,x2,z2) \ + integerMulAdx(b1,t0,t1) \ + reduceFromDoubleAdx(x2,b0) \ + reduceFromDoubleAdx(z2,b1) + +#define difAddLeg \ + addSub(x1,z1) \ + integerMulLeg(b0,z1,ui) \ + reduceFromDoubleLeg(z1,b0) \ + addSub(x1,z1) \ + integerSqrLeg(b0,x1) \ + integerSqrLeg(b1,z1) \ + reduceFromDoubleLeg(x1,b0) \ + reduceFromDoubleLeg(z1,b1) \ + integerMulLeg(b0,x1,z2) \ + integerMulLeg(b1,z1,x2) \ + reduceFromDoubleLeg(x1,b0) \ + reduceFromDoubleLeg(z1,b1) + +#define difAddBmi2Adx \ + addSub(x1,z1) \ + integerMulAdx(b0,z1,ui) \ + reduceFromDoubleAdx(z1,b0) \ + addSub(x1,z1) \ + integerSqrAdx(b0,x1) \ + integerSqrAdx(b1,z1) \ + reduceFromDoubleAdx(x1,b0) \ + reduceFromDoubleAdx(z1,b1) \ + integerMulAdx(b0,x1,z2) \ + integerMulAdx(b1,z1,x2) \ + reduceFromDoubleAdx(x1,b0) \ + reduceFromDoubleAdx(z1,b1) + +#define doubleLeg \ + addSub(x1,z1) \ + integerSqrLeg(b0,x1) \ + integerSqrLeg(b1,z1) \ + reduceFromDoubleLeg(x1,b0) \ + reduceFromDoubleLeg(z1,b1) \ + subtraction(t0,x1,z1) \ + multiplyA24Leg(t1,t0) \ + additionLeg(t1,t1,z1) \ + integerMulLeg(b0,x1,z1) \ + integerMulLeg(b1,t0,t1) \ + reduceFromDoubleLeg(x1,b0) \ + reduceFromDoubleLeg(z1,b1) + +#define doubleBmi2Adx \ + addSub(x1,z1) \ + integerSqrAdx(b0,x1) \ + integerSqrAdx(b1,z1) \ + reduceFromDoubleAdx(x1,b0) \ + reduceFromDoubleAdx(z1,b1) \ + subtraction(t0,x1,z1) \ + multiplyA24Adx(t1,t0) \ + additionAdx(t1,t1,z1) \ + integerMulAdx(b0,x1,z1) \ + integerMulAdx(b1,t0,t1) \ + reduceFromDoubleAdx(x1,b0) \ + reduceFromDoubleAdx(z1,b1) diff --git a/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.s b/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.s new file mode 100644 index 000000000000..810aa9e64812 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.s @@ -0,0 +1,193 @@ +// +build amd64 + +#include "textflag.h" + +// Depends on circl/math/fp448 package +#include "../../math/fp448/fp_amd64.h" +#include "curve_amd64.h" + +// CTE_A24 is (A+2)/4 from Curve448 +#define CTE_A24 39082 + +#define Size 56 + +// multiplyA24Leg multiplies x times CTE_A24 and stores in z +// Uses: AX, DX, R8-R15, FLAGS +// Instr: x86_64, cmov, adx +#define multiplyA24Leg(z,x) \ + MOVQ $CTE_A24, R15; \ + MOVQ 0+x, AX; MULQ R15; MOVQ AX, R8; ;;;;;;;;;;;; MOVQ DX, R9; \ + MOVQ 8+x, AX; MULQ R15; ADDQ AX, R9; ADCQ $0, DX; MOVQ DX, R10; \ + MOVQ 16+x, AX; MULQ R15; ADDQ AX, R10; ADCQ $0, DX; MOVQ DX, R11; \ + MOVQ 24+x, AX; MULQ R15; ADDQ AX, R11; ADCQ $0, DX; MOVQ DX, R12; \ + MOVQ 32+x, AX; MULQ R15; ADDQ AX, R12; ADCQ $0, DX; MOVQ DX, R13; \ + MOVQ 40+x, AX; MULQ R15; ADDQ AX, R13; ADCQ $0, DX; MOVQ DX, R14; \ + MOVQ 48+x, AX; MULQ R15; ADDQ AX, R14; ADCQ $0, DX; \ + MOVQ DX, AX; \ + SHLQ $32, AX; \ + ADDQ DX, R8; MOVQ $0, DX; \ + ADCQ $0, R9; \ + ADCQ $0, R10; \ + ADCQ AX, R11; \ + ADCQ $0, R12; \ + ADCQ $0, R13; \ + ADCQ $0, R14; \ + ADCQ $0, DX; \ + MOVQ DX, AX; \ + SHLQ $32, AX; \ + ADDQ DX, R8; \ + ADCQ $0, R9; \ + ADCQ $0, R10; \ + ADCQ AX, R11; \ + ADCQ $0, R12; \ + ADCQ $0, R13; \ + ADCQ $0, R14; \ + MOVQ R8, 0+z; \ + MOVQ R9, 8+z; \ + MOVQ R10, 16+z; \ + MOVQ R11, 24+z; \ + MOVQ R12, 32+z; \ + MOVQ R13, 40+z; \ + MOVQ R14, 48+z; + +// multiplyA24Adx multiplies x times CTE_A24 and stores in z +// Uses: AX, DX, R8-R14, FLAGS +// Instr: x86_64, bmi2 +#define multiplyA24Adx(z,x) \ + MOVQ $CTE_A24, DX; \ + MULXQ 0+x, R8, R9; \ + MULXQ 8+x, AX, R10; ADDQ AX, R9; \ + MULXQ 16+x, AX, R11; ADCQ AX, R10; \ + MULXQ 24+x, AX, R12; ADCQ AX, R11; \ + MULXQ 32+x, AX, R13; ADCQ AX, R12; \ + MULXQ 40+x, AX, R14; ADCQ AX, R13; \ + MULXQ 48+x, AX, DX; ADCQ AX, R14; \ + ;;;;;;;;;;;;;;;;;;;; ADCQ $0, DX; \ + MOVQ DX, AX; \ + SHLQ $32, AX; \ + ADDQ DX, R8; MOVQ $0, DX; \ + ADCQ $0, R9; \ + ADCQ $0, R10; \ + ADCQ AX, R11; \ + ADCQ $0, R12; \ + ADCQ $0, R13; \ + ADCQ $0, R14; \ + ADCQ $0, DX; \ + MOVQ DX, AX; \ + SHLQ $32, AX; \ + ADDQ DX, R8; \ + ADCQ $0, R9; \ + ADCQ $0, R10; \ + ADCQ AX, R11; \ + ADCQ $0, R12; \ + ADCQ $0, R13; \ + ADCQ $0, R14; \ + MOVQ R8, 0+z; \ + MOVQ R9, 8+z; \ + MOVQ R10, 16+z; \ + MOVQ R11, 24+z; \ + MOVQ R12, 32+z; \ + MOVQ R13, 40+z; \ + MOVQ R14, 48+z; + +#define mulA24Legacy \ + multiplyA24Leg(0(DI),0(SI)) +#define mulA24Bmi2Adx \ + multiplyA24Adx(0(DI),0(SI)) + +// func mulA24Amd64(z, x *fp448.Elt) +TEXT ·mulA24Amd64(SB),NOSPLIT,$0-16 + MOVQ z+0(FP), DI + MOVQ x+8(FP), SI + CHECK_BMI2ADX(LMA24, mulA24Legacy, mulA24Bmi2Adx) + +// func ladderStepAmd64(w *[5]fp448.Elt, b uint) +// ladderStepAmd64 calculates a point addition and doubling as follows: +// (x2,z2) = 2*(x2,z2) and (x3,z3) = (x2,z2)+(x3,z3) using as a difference (x1,-). +// w = {x1,x2,z2,x3,z4} are five fp255.Elt of 56 bytes. +// stack = (t0,t1) are two fp.Elt of fp.Size bytes, and +// (b0,b1) are two-double precision fp.Elt of 2*fp.Size bytes. +TEXT ·ladderStepAmd64(SB),NOSPLIT,$336-16 + // Parameters + #define regWork DI + #define regMove SI + #define x1 0*Size(regWork) + #define x2 1*Size(regWork) + #define z2 2*Size(regWork) + #define x3 3*Size(regWork) + #define z3 4*Size(regWork) + // Local variables + #define t0 0*Size(SP) + #define t1 1*Size(SP) + #define b0 2*Size(SP) + #define b1 4*Size(SP) + MOVQ w+0(FP), regWork + MOVQ b+8(FP), regMove + CHECK_BMI2ADX(LLADSTEP, ladderStepLeg, ladderStepBmi2Adx) + #undef regWork + #undef regMove + #undef x1 + #undef x2 + #undef z2 + #undef x3 + #undef z3 + #undef t0 + #undef t1 + #undef b0 + #undef b1 + +// func diffAddAmd64(work *[5]fp.Elt, swap uint) +// diffAddAmd64 calculates a differential point addition using a precomputed point. +// (x1,z1) = (x1,z1)+(mu) using a difference point (x2,z2) +// work = {mu,x1,z1,x2,z2} are five fp448.Elt of 56 bytes, and +// stack = (b0,b1) are two-double precision fp.Elt of 2*fp.Size bytes. +// This is Equation 7 at https://eprint.iacr.org/2017/264. +TEXT ·diffAddAmd64(SB),NOSPLIT,$224-16 + // Parameters + #define regWork DI + #define regSwap SI + #define ui 0*Size(regWork) + #define x1 1*Size(regWork) + #define z1 2*Size(regWork) + #define x2 3*Size(regWork) + #define z2 4*Size(regWork) + // Local variables + #define b0 0*Size(SP) + #define b1 2*Size(SP) + MOVQ w+0(FP), regWork + MOVQ b+8(FP), regSwap + cswap(x1,x2,regSwap) + cswap(z1,z2,regSwap) + CHECK_BMI2ADX(LDIFADD, difAddLeg, difAddBmi2Adx) + #undef regWork + #undef regSwap + #undef ui + #undef x1 + #undef z1 + #undef x2 + #undef z2 + #undef b0 + #undef b1 + +// func doubleAmd64(x, z *fp448.Elt) +// doubleAmd64 calculates a point doubling (x1,z1) = 2*(x1,z1). +// stack = (t0,t1) are two fp.Elt of fp.Size bytes, and +// (b0,b1) are two-double precision fp.Elt of 2*fp.Size bytes. +TEXT ·doubleAmd64(SB),NOSPLIT,$336-16 + // Parameters + #define x1 0(DI) + #define z1 0(SI) + // Local variables + #define t0 0*Size(SP) + #define t1 1*Size(SP) + #define b0 2*Size(SP) + #define b1 4*Size(SP) + MOVQ x+0(FP), DI + MOVQ z+8(FP), SI + CHECK_BMI2ADX(LDOUB,doubleLeg,doubleBmi2Adx) + #undef x1 + #undef z1 + #undef t0 + #undef t1 + #undef b0 + #undef b1 diff --git a/vendor/github.com/cloudflare/circl/dh/x448/curve_generic.go b/vendor/github.com/cloudflare/circl/dh/x448/curve_generic.go new file mode 100644 index 000000000000..b0b65ccf7ebb --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x448/curve_generic.go @@ -0,0 +1,100 @@ +package x448 + +import ( + "encoding/binary" + "math/bits" + + "github.com/cloudflare/circl/math/fp448" +) + +func doubleGeneric(x, z *fp448.Elt) { + t0, t1 := &fp448.Elt{}, &fp448.Elt{} + fp448.AddSub(x, z) + fp448.Sqr(x, x) + fp448.Sqr(z, z) + fp448.Sub(t0, x, z) + mulA24Generic(t1, t0) + fp448.Add(t1, t1, z) + fp448.Mul(x, x, z) + fp448.Mul(z, t0, t1) +} + +func diffAddGeneric(w *[5]fp448.Elt, b uint) { + mu, x1, z1, x2, z2 := &w[0], &w[1], &w[2], &w[3], &w[4] + fp448.Cswap(x1, x2, b) + fp448.Cswap(z1, z2, b) + fp448.AddSub(x1, z1) + fp448.Mul(z1, z1, mu) + fp448.AddSub(x1, z1) + fp448.Sqr(x1, x1) + fp448.Sqr(z1, z1) + fp448.Mul(x1, x1, z2) + fp448.Mul(z1, z1, x2) +} + +func ladderStepGeneric(w *[5]fp448.Elt, b uint) { + x1, x2, z2, x3, z3 := &w[0], &w[1], &w[2], &w[3], &w[4] + t0 := &fp448.Elt{} + t1 := &fp448.Elt{} + fp448.AddSub(x2, z2) + fp448.AddSub(x3, z3) + fp448.Mul(t0, x2, z3) + fp448.Mul(t1, x3, z2) + fp448.AddSub(t0, t1) + fp448.Cmov(x2, x3, b) + fp448.Cmov(z2, z3, b) + fp448.Sqr(x3, t0) + fp448.Sqr(z3, t1) + fp448.Mul(z3, x1, z3) + fp448.Sqr(x2, x2) + fp448.Sqr(z2, z2) + fp448.Sub(t0, x2, z2) + mulA24Generic(t1, t0) + fp448.Add(t1, t1, z2) + fp448.Mul(x2, x2, z2) + fp448.Mul(z2, t0, t1) +} + +func mulA24Generic(z, x *fp448.Elt) { + const A24 = 39082 + const n = 8 + var xx [7]uint64 + for i := range xx { + xx[i] = binary.LittleEndian.Uint64(x[i*n : (i+1)*n]) + } + h0, l0 := bits.Mul64(xx[0], A24) + h1, l1 := bits.Mul64(xx[1], A24) + h2, l2 := bits.Mul64(xx[2], A24) + h3, l3 := bits.Mul64(xx[3], A24) + h4, l4 := bits.Mul64(xx[4], A24) + h5, l5 := bits.Mul64(xx[5], A24) + h6, l6 := bits.Mul64(xx[6], A24) + + l1, c0 := bits.Add64(h0, l1, 0) + l2, c1 := bits.Add64(h1, l2, c0) + l3, c2 := bits.Add64(h2, l3, c1) + l4, c3 := bits.Add64(h3, l4, c2) + l5, c4 := bits.Add64(h4, l5, c3) + l6, c5 := bits.Add64(h5, l6, c4) + l7, _ := bits.Add64(h6, 0, c5) + + l0, c0 = bits.Add64(l0, l7, 0) + l1, c1 = bits.Add64(l1, 0, c0) + l2, c2 = bits.Add64(l2, 0, c1) + l3, c3 = bits.Add64(l3, l7<<32, c2) + l4, c4 = bits.Add64(l4, 0, c3) + l5, c5 = bits.Add64(l5, 0, c4) + l6, l7 = bits.Add64(l6, 0, c5) + + xx[0], c0 = bits.Add64(l0, l7, 0) + xx[1], c1 = bits.Add64(l1, 0, c0) + xx[2], c2 = bits.Add64(l2, 0, c1) + xx[3], c3 = bits.Add64(l3, l7<<32, c2) + xx[4], c4 = bits.Add64(l4, 0, c3) + xx[5], c5 = bits.Add64(l5, 0, c4) + xx[6], _ = bits.Add64(l6, 0, c5) + + for i := range xx { + binary.LittleEndian.PutUint64(z[i*n:(i+1)*n], xx[i]) + } +} diff --git a/vendor/github.com/cloudflare/circl/dh/x448/curve_noasm.go b/vendor/github.com/cloudflare/circl/dh/x448/curve_noasm.go new file mode 100644 index 000000000000..3755b7c83b3f --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x448/curve_noasm.go @@ -0,0 +1,11 @@ +//go:build !amd64 || purego +// +build !amd64 purego + +package x448 + +import fp "github.com/cloudflare/circl/math/fp448" + +func double(x, z *fp.Elt) { doubleGeneric(x, z) } +func diffAdd(w *[5]fp.Elt, b uint) { diffAddGeneric(w, b) } +func ladderStep(w *[5]fp.Elt, b uint) { ladderStepGeneric(w, b) } +func mulA24(z, x *fp.Elt) { mulA24Generic(z, x) } diff --git a/vendor/github.com/cloudflare/circl/dh/x448/doc.go b/vendor/github.com/cloudflare/circl/dh/x448/doc.go new file mode 100644 index 000000000000..c02904fedae2 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x448/doc.go @@ -0,0 +1,19 @@ +/* +Package x448 provides Diffie-Hellman functions as specified in RFC-7748. + +Validation of public keys. + +The Diffie-Hellman function, as described in RFC-7748 [1], works for any +public key. However, if a different protocol requires contributory +behaviour [2,3], then the public keys must be validated against low-order +points [3,4]. To do that, the Shared function performs this validation +internally and returns false when the public key is invalid (i.e., it +is a low-order point). + +References: + - [1] RFC7748 by Langley, Hamburg, Turner (https://rfc-editor.org/rfc/rfc7748.txt) + - [2] Curve25519 by Bernstein (https://cr.yp.to/ecdh.html) + - [3] Bernstein (https://cr.yp.to/ecdh.html#validate) + - [4] Cremers&Jackson (https://eprint.iacr.org/2019/526) +*/ +package x448 diff --git a/vendor/github.com/cloudflare/circl/dh/x448/key.go b/vendor/github.com/cloudflare/circl/dh/x448/key.go new file mode 100644 index 000000000000..2fdde51168a9 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x448/key.go @@ -0,0 +1,46 @@ +package x448 + +import ( + "crypto/subtle" + + fp "github.com/cloudflare/circl/math/fp448" +) + +// Size is the length in bytes of a X448 key. +const Size = 56 + +// Key represents a X448 key. +type Key [Size]byte + +func (k *Key) clamp(in *Key) *Key { + *k = *in + k[0] &= 252 + k[55] |= 128 + return k +} + +// isValidPubKey verifies if the public key is not a low-order point. +func (k *Key) isValidPubKey() bool { + fp.Modp((*fp.Elt)(k)) + var isLowOrder int + for _, P := range lowOrderPoints { + isLowOrder |= subtle.ConstantTimeCompare(P[:], k[:]) + } + return isLowOrder == 0 +} + +// KeyGen obtains a public key given a secret key. +func KeyGen(public, secret *Key) { + ladderJoye(public.clamp(secret)) +} + +// Shared calculates Alice's shared key from Alice's secret key and Bob's +// public key returning true on success. A failure case happens when the public +// key is a low-order point, thus the shared key is all-zeros and the function +// returns false. +func Shared(shared, secret, public *Key) bool { + validPk := *public + ok := validPk.isValidPubKey() + ladderMontgomery(shared.clamp(secret), &validPk) + return ok +} diff --git a/vendor/github.com/cloudflare/circl/dh/x448/table.go b/vendor/github.com/cloudflare/circl/dh/x448/table.go new file mode 100644 index 000000000000..eef53c30f80e --- /dev/null +++ b/vendor/github.com/cloudflare/circl/dh/x448/table.go @@ -0,0 +1,460 @@ +package x448 + +import fp "github.com/cloudflare/circl/math/fp448" + +// tableGenerator contains the set of points: +// +// t[i] = (xi+1)/(xi-1), +// +// where (xi,yi) = 2^iG and G is the generator point +// Size = (448)*(448/8) = 25088 bytes. +var tableGenerator = [448 * fp.Size]byte{ + /* (2^ 0)P */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + /* (2^ 1)P */ 0x37, 0xfa, 0xaa, 0x0d, 0x86, 0xa6, 0x24, 0xe9, 0x6c, 0x95, 0x08, 0x34, 0xba, 0x1a, 0x81, 0x3a, 0xae, 0x01, 0xa5, 0xa7, 0x05, 0x85, 0x96, 0x00, 0x06, 0x5a, 0xd7, 0xff, 0xee, 0x8e, 0x8f, 0x94, 0xd2, 0xdc, 0xd7, 0xfc, 0xe7, 0xe5, 0x99, 0x1d, 0x05, 0x46, 0x43, 0xe8, 0xbc, 0x12, 0xb7, 0xeb, 0x30, 0x5e, 0x7a, 0x85, 0x68, 0xed, 0x9d, 0x28, + /* (2^ 2)P */ 0xf1, 0x7d, 0x08, 0x2b, 0x32, 0x4a, 0x62, 0x80, 0x36, 0xe7, 0xa4, 0x76, 0x5a, 0x2a, 0x1e, 0xf7, 0x9e, 0x3c, 0x40, 0x46, 0x9a, 0x1b, 0x61, 0xc1, 0xbf, 0x1a, 0x1b, 0xae, 0x91, 0x80, 0xa3, 0x76, 0x6c, 0xd4, 0x8f, 0xa4, 0xee, 0x26, 0x39, 0x23, 0xa4, 0x80, 0xf4, 0x66, 0x92, 0xe4, 0xe1, 0x18, 0x76, 0xc5, 0xe2, 0x19, 0x87, 0xd5, 0xc3, 0xe8, + /* (2^ 3)P */ 0xfb, 0xc9, 0xf0, 0x07, 0xf2, 0x93, 0xd8, 0x50, 0x36, 0xed, 0xfb, 0xbd, 0xb2, 0xd3, 0xfc, 0xdf, 0xd5, 0x2a, 0x6e, 0x26, 0x09, 0xce, 0xd4, 0x07, 0x64, 0x9f, 0x40, 0x74, 0xad, 0x98, 0x2f, 0x1c, 0xb6, 0xdc, 0x2d, 0x42, 0xff, 0xbf, 0x97, 0xd8, 0xdb, 0xef, 0x99, 0xca, 0x73, 0x99, 0x1a, 0x04, 0x3b, 0x56, 0x2c, 0x1f, 0x87, 0x9d, 0x9f, 0x03, + /* (2^ 4)P */ 0x4c, 0x35, 0x97, 0xf7, 0x81, 0x2c, 0x84, 0xa6, 0xe0, 0xcb, 0xce, 0x37, 0x4c, 0x21, 0x1c, 0x67, 0xfa, 0xab, 0x18, 0x4d, 0xef, 0xd0, 0xf0, 0x44, 0xa9, 0xfb, 0xc0, 0x8e, 0xda, 0x57, 0xa1, 0xd8, 0xeb, 0x87, 0xf4, 0x17, 0xea, 0x66, 0x0f, 0x16, 0xea, 0xcd, 0x5f, 0x3e, 0x88, 0xea, 0x09, 0x68, 0x40, 0xdf, 0x43, 0xcc, 0x54, 0x61, 0x58, 0xaa, + /* (2^ 5)P */ 0x8d, 0xe7, 0x59, 0xd7, 0x5e, 0x63, 0x37, 0xa7, 0x3f, 0xd1, 0x49, 0x85, 0x01, 0xdd, 0x5e, 0xb3, 0xe6, 0x29, 0xcb, 0x25, 0x93, 0xdd, 0x08, 0x96, 0x83, 0x52, 0x76, 0x85, 0xf5, 0x5d, 0x02, 0xbf, 0xe9, 0x6d, 0x15, 0x27, 0xc1, 0x09, 0xd1, 0x14, 0x4d, 0x6e, 0xe8, 0xaf, 0x59, 0x58, 0x34, 0x9d, 0x2a, 0x99, 0x85, 0x26, 0xbe, 0x4b, 0x1e, 0xb9, + /* (2^ 6)P */ 0x8d, 0xce, 0x94, 0xe2, 0x18, 0x56, 0x0d, 0x82, 0x8e, 0xdf, 0x85, 0x01, 0x8f, 0x93, 0x3c, 0xc6, 0xbd, 0x61, 0xfb, 0xf4, 0x22, 0xc5, 0x16, 0x87, 0xd1, 0xb1, 0x9e, 0x09, 0xc5, 0x83, 0x2e, 0x4a, 0x07, 0x88, 0xee, 0xe0, 0x29, 0x8d, 0x2e, 0x1f, 0x88, 0xad, 0xfd, 0x18, 0x93, 0xb7, 0xed, 0x42, 0x86, 0x78, 0xf0, 0xb8, 0x70, 0xbe, 0x01, 0x67, + /* (2^ 7)P */ 0xdf, 0x62, 0x2d, 0x94, 0xc7, 0x35, 0x23, 0xda, 0x27, 0xbb, 0x2b, 0xdb, 0x30, 0x80, 0x68, 0x16, 0xa3, 0xae, 0xd7, 0xd2, 0xa7, 0x7c, 0xbf, 0x6a, 0x1d, 0x83, 0xde, 0x96, 0x0a, 0x43, 0xb6, 0x30, 0x37, 0xd6, 0xee, 0x63, 0x59, 0x9a, 0xbf, 0xa3, 0x30, 0x6c, 0xaf, 0x0c, 0xee, 0x3d, 0xcb, 0x35, 0x4b, 0x55, 0x5f, 0x84, 0x85, 0xcb, 0x4f, 0x1e, + /* (2^ 8)P */ 0x9d, 0x04, 0x68, 0x89, 0xa4, 0xa9, 0x0d, 0x87, 0xc1, 0x70, 0xf1, 0xeb, 0xfb, 0x47, 0x0a, 0xf0, 0xde, 0x67, 0xb7, 0x94, 0xcd, 0x36, 0x43, 0xa5, 0x49, 0x43, 0x67, 0xc3, 0xee, 0x3c, 0x6b, 0xec, 0xd0, 0x1a, 0xf4, 0xad, 0xef, 0x06, 0x4a, 0xe8, 0x46, 0x24, 0xd7, 0x93, 0xbf, 0xf0, 0xe3, 0x81, 0x61, 0xec, 0xea, 0x64, 0xfe, 0x67, 0xeb, 0xc7, + /* (2^ 9)P */ 0x95, 0x45, 0x79, 0xcf, 0x2c, 0xfd, 0x9b, 0xfe, 0x84, 0x46, 0x4b, 0x8f, 0xa1, 0xcf, 0xc3, 0x04, 0x94, 0x78, 0xdb, 0xc9, 0xa6, 0x01, 0x75, 0xa4, 0xb4, 0x93, 0x72, 0x43, 0xa7, 0x7d, 0xda, 0x31, 0x38, 0x54, 0xab, 0x4e, 0x3f, 0x89, 0xa6, 0xab, 0x57, 0xc0, 0x16, 0x65, 0xdb, 0x92, 0x96, 0xe4, 0xc8, 0xae, 0xe7, 0x4c, 0x7a, 0xeb, 0xbb, 0x5a, + /* (2^ 10)P */ 0xbe, 0xfe, 0x86, 0xc3, 0x97, 0xe0, 0x6a, 0x18, 0x20, 0x21, 0xca, 0x22, 0x55, 0xa1, 0xeb, 0xf5, 0x74, 0xe5, 0xc9, 0x59, 0xa7, 0x92, 0x65, 0x15, 0x08, 0x71, 0xd1, 0x09, 0x7e, 0x83, 0xfc, 0xbc, 0x5a, 0x93, 0x38, 0x0d, 0x43, 0x42, 0xfd, 0x76, 0x30, 0xe8, 0x63, 0x60, 0x09, 0x8d, 0x6c, 0xd3, 0xf8, 0x56, 0x3d, 0x68, 0x47, 0xab, 0xa0, 0x1d, + /* (2^ 11)P */ 0x38, 0x50, 0x1c, 0xb1, 0xac, 0x88, 0x8f, 0x38, 0xe3, 0x69, 0xe6, 0xfc, 0x4f, 0x8f, 0xe1, 0x9b, 0xb1, 0x1a, 0x09, 0x39, 0x19, 0xdf, 0xcd, 0x98, 0x7b, 0x64, 0x42, 0xf6, 0x11, 0xea, 0xc7, 0xe8, 0x92, 0x65, 0x00, 0x2c, 0x75, 0xb5, 0x94, 0x1e, 0x5b, 0xa6, 0x66, 0x81, 0x77, 0xf3, 0x39, 0x94, 0xac, 0xbd, 0xe4, 0x2a, 0x66, 0x84, 0x9c, 0x60, + /* (2^ 12)P */ 0xb5, 0xb6, 0xd9, 0x03, 0x67, 0xa4, 0xa8, 0x0a, 0x4a, 0x2b, 0x9d, 0xfa, 0x13, 0xe1, 0x99, 0x25, 0x4a, 0x5c, 0x67, 0xb9, 0xb2, 0xb7, 0xdd, 0x1e, 0xaf, 0xeb, 0x63, 0x41, 0xb6, 0xb9, 0xa0, 0x87, 0x0a, 0xe0, 0x06, 0x07, 0xaa, 0x97, 0xf8, 0xf9, 0x38, 0x4f, 0xdf, 0x0c, 0x40, 0x7c, 0xc3, 0x98, 0xa9, 0x74, 0xf1, 0x5d, 0xda, 0xd1, 0xc0, 0x0a, + /* (2^ 13)P */ 0xf2, 0x0a, 0xab, 0xab, 0x94, 0x50, 0xf0, 0xa3, 0x6f, 0xc6, 0x66, 0xba, 0xa6, 0xdc, 0x44, 0xdd, 0xd6, 0x08, 0xf4, 0xd3, 0xed, 0xb1, 0x40, 0x93, 0xee, 0xf6, 0xb8, 0x8e, 0xb4, 0x7c, 0xb9, 0x82, 0xc9, 0x9d, 0x45, 0x3b, 0x8e, 0x10, 0xcb, 0x70, 0x1e, 0xba, 0x3c, 0x62, 0x50, 0xda, 0xa9, 0x93, 0xb5, 0xd7, 0xd0, 0x6f, 0x29, 0x52, 0x95, 0xae, + /* (2^ 14)P */ 0x14, 0x68, 0x69, 0x23, 0xa8, 0x44, 0x87, 0x9e, 0x22, 0x91, 0xe8, 0x92, 0xdf, 0xf7, 0xae, 0xba, 0x1c, 0x96, 0xe1, 0xc3, 0x94, 0xed, 0x6c, 0x95, 0xae, 0x96, 0xa7, 0x15, 0x9f, 0xf1, 0x17, 0x11, 0x92, 0x42, 0xd5, 0xcd, 0x18, 0xe7, 0xa9, 0xb5, 0x2f, 0xcd, 0xde, 0x6c, 0xc9, 0x7d, 0xfc, 0x7e, 0xbd, 0x7f, 0x10, 0x3d, 0x01, 0x00, 0x8d, 0x95, + /* (2^ 15)P */ 0x3b, 0x76, 0x72, 0xae, 0xaf, 0x84, 0xf2, 0xf7, 0xd1, 0x6d, 0x13, 0x9c, 0x47, 0xe1, 0xb7, 0xa3, 0x19, 0x16, 0xee, 0x75, 0x45, 0xf6, 0x1a, 0x7b, 0x78, 0x49, 0x79, 0x05, 0x86, 0xf0, 0x7f, 0x9f, 0xfc, 0xc4, 0xbd, 0x86, 0xf3, 0x41, 0xa7, 0xfe, 0x01, 0xd5, 0x67, 0x16, 0x10, 0x5b, 0xa5, 0x16, 0xf3, 0x7f, 0x60, 0xce, 0xd2, 0x0c, 0x8e, 0x4b, + /* (2^ 16)P */ 0x4a, 0x07, 0x99, 0x4a, 0x0f, 0x74, 0x91, 0x14, 0x68, 0xb9, 0x48, 0xb7, 0x44, 0x77, 0x9b, 0x4a, 0xe0, 0x68, 0x0e, 0x43, 0x4d, 0x98, 0x98, 0xbf, 0xa8, 0x3a, 0xb7, 0x6d, 0x2a, 0x9a, 0x77, 0x5f, 0x62, 0xf5, 0x6b, 0x4a, 0xb7, 0x7d, 0xe5, 0x09, 0x6b, 0xc0, 0x8b, 0x9c, 0x88, 0x37, 0x33, 0xf2, 0x41, 0xac, 0x22, 0x1f, 0xcf, 0x3b, 0x82, 0x34, + /* (2^ 17)P */ 0x00, 0xc3, 0x78, 0x42, 0x32, 0x2e, 0xdc, 0xda, 0xb1, 0x96, 0x21, 0xa4, 0xe4, 0xbb, 0xe9, 0x9d, 0xbb, 0x0f, 0x93, 0xed, 0x26, 0x3d, 0xb5, 0xdb, 0x94, 0x31, 0x37, 0x07, 0xa2, 0xb2, 0xd5, 0x99, 0x0d, 0x93, 0xe1, 0xce, 0x3f, 0x0b, 0x96, 0x82, 0x47, 0xfe, 0x60, 0x6f, 0x8f, 0x61, 0x88, 0xd7, 0x05, 0x95, 0x0b, 0x46, 0x06, 0xb7, 0x32, 0x06, + /* (2^ 18)P */ 0x44, 0xf5, 0x34, 0xdf, 0x2f, 0x9c, 0x5d, 0x9f, 0x53, 0x5c, 0x42, 0x8f, 0xc9, 0xdc, 0xd8, 0x40, 0xa2, 0xe7, 0x6a, 0x4a, 0x05, 0xf7, 0x86, 0x77, 0x2b, 0xae, 0x37, 0xed, 0x48, 0xfb, 0xf7, 0x62, 0x7c, 0x17, 0x59, 0x92, 0x41, 0x61, 0x93, 0x38, 0x30, 0xd1, 0xef, 0x54, 0x54, 0x03, 0x17, 0x57, 0x91, 0x15, 0x11, 0x33, 0xb5, 0xfa, 0xfb, 0x17, + /* (2^ 19)P */ 0x29, 0xbb, 0xd4, 0xb4, 0x9c, 0xf1, 0x72, 0x94, 0xce, 0x6a, 0x29, 0xa8, 0x89, 0x18, 0x19, 0xf7, 0xb7, 0xcc, 0xee, 0x9a, 0x02, 0xe3, 0xc0, 0xb1, 0xe0, 0xee, 0x83, 0x78, 0xb4, 0x9e, 0x07, 0x87, 0xdf, 0xb0, 0x82, 0x26, 0x4e, 0xa4, 0x0c, 0x33, 0xaf, 0x40, 0x59, 0xb6, 0xdd, 0x52, 0x45, 0xf0, 0xb4, 0xf6, 0xe8, 0x4e, 0x4e, 0x79, 0x1a, 0x5d, + /* (2^ 20)P */ 0x27, 0x33, 0x4d, 0x4c, 0x6b, 0x4f, 0x75, 0xb1, 0xbc, 0x1f, 0xab, 0x5b, 0x2b, 0xf0, 0x1c, 0x57, 0x86, 0xdd, 0xfd, 0x60, 0xb0, 0x8c, 0xe7, 0x9a, 0xe5, 0x5c, 0xeb, 0x11, 0x3a, 0xda, 0x22, 0x25, 0x99, 0x06, 0x8d, 0xf4, 0xaf, 0x29, 0x7a, 0xc9, 0xe5, 0xd2, 0x16, 0x9e, 0xd4, 0x63, 0x1d, 0x64, 0xa6, 0x47, 0x96, 0x37, 0x6f, 0x93, 0x2c, 0xcc, + /* (2^ 21)P */ 0xc1, 0x94, 0x74, 0x86, 0x75, 0xf2, 0x91, 0x58, 0x23, 0x85, 0x63, 0x76, 0x54, 0xc7, 0xb4, 0x8c, 0xbc, 0x4e, 0xc4, 0xa7, 0xba, 0xa0, 0x55, 0x26, 0x71, 0xd5, 0x33, 0x72, 0xc9, 0xad, 0x1e, 0xf9, 0x5d, 0x78, 0x70, 0x93, 0x4e, 0x85, 0xfc, 0x39, 0x06, 0x73, 0x76, 0xff, 0xe8, 0x64, 0x69, 0x42, 0x45, 0xb2, 0x69, 0xb5, 0x32, 0xe7, 0x2c, 0xde, + /* (2^ 22)P */ 0xde, 0x16, 0xd8, 0x33, 0x49, 0x32, 0xe9, 0x0e, 0x3a, 0x60, 0xee, 0x2e, 0x24, 0x75, 0xe3, 0x9c, 0x92, 0x07, 0xdb, 0xad, 0x92, 0xf5, 0x11, 0xdf, 0xdb, 0xb0, 0x17, 0x5c, 0xd6, 0x1a, 0x70, 0x00, 0xb7, 0xe2, 0x18, 0xec, 0xdc, 0xc2, 0x02, 0x93, 0xb3, 0xc8, 0x3f, 0x4f, 0x1b, 0x96, 0xe6, 0x33, 0x8c, 0xfb, 0xcc, 0xa5, 0x4e, 0xe8, 0xe7, 0x11, + /* (2^ 23)P */ 0x05, 0x7a, 0x74, 0x52, 0xf8, 0xdf, 0x0d, 0x7c, 0x6a, 0x1a, 0x4e, 0x9a, 0x02, 0x1d, 0xae, 0x77, 0xf8, 0x8e, 0xf9, 0xa2, 0x38, 0x54, 0x50, 0xb2, 0x2c, 0x08, 0x9d, 0x9b, 0x9f, 0xfb, 0x2b, 0x06, 0xde, 0x9d, 0xc2, 0x03, 0x0b, 0x22, 0x2b, 0x10, 0x5b, 0x3a, 0x73, 0x29, 0x8e, 0x3e, 0x37, 0x08, 0x2c, 0x3b, 0xf8, 0x80, 0xc1, 0x66, 0x1e, 0x98, + /* (2^ 24)P */ 0xd8, 0xd6, 0x3e, 0xcd, 0x63, 0x8c, 0x2b, 0x41, 0x81, 0xc0, 0x0c, 0x06, 0x87, 0xd6, 0xe7, 0x92, 0xfe, 0xf1, 0x0c, 0x4a, 0x84, 0x5b, 0xaf, 0x40, 0x53, 0x6f, 0x60, 0xd6, 0x6b, 0x76, 0x4b, 0xc2, 0xad, 0xc9, 0xb6, 0xb6, 0x6a, 0xa2, 0xb3, 0xf5, 0xf5, 0xc2, 0x55, 0x83, 0xb2, 0xd3, 0xe9, 0x41, 0x6c, 0x63, 0x51, 0xb8, 0x81, 0x74, 0xc8, 0x2c, + /* (2^ 25)P */ 0xb2, 0xaf, 0x1c, 0xee, 0x07, 0xb0, 0x58, 0xa8, 0x2c, 0x6a, 0xc9, 0x2d, 0x62, 0x28, 0x75, 0x0c, 0x40, 0xb6, 0x11, 0x33, 0x96, 0x80, 0x28, 0x6d, 0xd5, 0x9e, 0x87, 0x90, 0x01, 0x66, 0x1d, 0x1c, 0xf8, 0xb4, 0x92, 0xac, 0x38, 0x18, 0x05, 0xc2, 0x4c, 0x4b, 0x54, 0x7d, 0x80, 0x46, 0x87, 0x2d, 0x99, 0x8e, 0x70, 0x80, 0x69, 0x71, 0x8b, 0xed, + /* (2^ 26)P */ 0x37, 0xa7, 0x6b, 0x71, 0x36, 0x75, 0x8e, 0xff, 0x0f, 0x42, 0xda, 0x5a, 0x46, 0xa6, 0x97, 0x79, 0x7e, 0x30, 0xb3, 0x8f, 0xc7, 0x3a, 0xa0, 0xcb, 0x1d, 0x9c, 0x78, 0x77, 0x36, 0xc2, 0xe7, 0xf4, 0x2f, 0x29, 0x07, 0xb1, 0x07, 0xfd, 0xed, 0x1b, 0x39, 0x77, 0x06, 0x38, 0x77, 0x0f, 0x50, 0x31, 0x12, 0xbf, 0x92, 0xbf, 0x72, 0x79, 0x54, 0xa9, + /* (2^ 27)P */ 0xbd, 0x4d, 0x46, 0x6b, 0x1a, 0x80, 0x46, 0x2d, 0xed, 0xfd, 0x64, 0x6d, 0x94, 0xbc, 0x4a, 0x6e, 0x0c, 0x12, 0xf6, 0x12, 0xab, 0x54, 0x88, 0xd3, 0x85, 0xac, 0x51, 0xae, 0x6f, 0xca, 0xc4, 0xb7, 0xec, 0x22, 0x54, 0x6d, 0x80, 0xb2, 0x1c, 0x63, 0x33, 0x76, 0x6b, 0x8e, 0x6d, 0x59, 0xcd, 0x73, 0x92, 0x5f, 0xff, 0xad, 0x10, 0x35, 0x70, 0x5f, + /* (2^ 28)P */ 0xb3, 0x84, 0xde, 0xc8, 0x04, 0x43, 0x63, 0xfa, 0x29, 0xd9, 0xf0, 0x69, 0x65, 0x5a, 0x0c, 0xe8, 0x2e, 0x0b, 0xfe, 0xb0, 0x7a, 0x42, 0xb3, 0xc3, 0xfc, 0xe6, 0xb8, 0x92, 0x29, 0xae, 0xed, 0xec, 0xd5, 0xe8, 0x4a, 0xa1, 0xbd, 0x3b, 0xd3, 0xc0, 0x07, 0xab, 0x65, 0x65, 0x35, 0x9a, 0xa6, 0x5e, 0x78, 0x18, 0x76, 0x1c, 0x15, 0x49, 0xe6, 0x75, + /* (2^ 29)P */ 0x45, 0xb3, 0x92, 0xa9, 0xc3, 0xb8, 0x11, 0x68, 0x64, 0x3a, 0x83, 0x5d, 0xa8, 0x94, 0x6a, 0x9d, 0xaa, 0x27, 0x9f, 0x98, 0x5d, 0xc0, 0x29, 0xf0, 0xc0, 0x4b, 0x14, 0x3c, 0x05, 0xe7, 0xf8, 0xbd, 0x38, 0x22, 0x96, 0x75, 0x65, 0x5e, 0x0d, 0x3f, 0xbb, 0x6f, 0xe8, 0x3f, 0x96, 0x76, 0x9f, 0xba, 0xd9, 0x44, 0x92, 0x96, 0x22, 0xe7, 0x52, 0xe7, + /* (2^ 30)P */ 0xf4, 0xa3, 0x95, 0x90, 0x47, 0xdf, 0x7d, 0xdc, 0xf4, 0x13, 0x87, 0x67, 0x7d, 0x4f, 0x9d, 0xa0, 0x00, 0x46, 0x72, 0x08, 0xc3, 0xa2, 0x7a, 0x3e, 0xe7, 0x6d, 0x52, 0x7c, 0x11, 0x36, 0x50, 0x83, 0x89, 0x64, 0xcb, 0x1f, 0x08, 0x83, 0x46, 0xcb, 0xac, 0xa6, 0xd8, 0x9c, 0x1b, 0xe8, 0x05, 0x47, 0xc7, 0x26, 0x06, 0x83, 0x39, 0xe9, 0xb1, 0x1c, + /* (2^ 31)P */ 0x11, 0xe8, 0xc8, 0x42, 0xbf, 0x30, 0x9c, 0xa3, 0xf1, 0x85, 0x96, 0x95, 0x4f, 0x4f, 0x52, 0xa2, 0xf5, 0x8b, 0x68, 0x24, 0x16, 0xac, 0x9b, 0xa9, 0x27, 0x28, 0x0e, 0x84, 0x03, 0x46, 0x22, 0x5f, 0xf7, 0x0d, 0xa6, 0x85, 0x88, 0xc1, 0x45, 0x4b, 0x85, 0x1a, 0x10, 0x7f, 0xc9, 0x94, 0x20, 0xb0, 0x04, 0x28, 0x12, 0x30, 0xb9, 0xe6, 0x40, 0x6b, + /* (2^ 32)P */ 0xac, 0x1b, 0x57, 0xb6, 0x42, 0xdb, 0x81, 0x8d, 0x76, 0xfd, 0x9b, 0x1c, 0x29, 0x30, 0xd5, 0x3a, 0xcc, 0x53, 0xd9, 0x26, 0x7a, 0x0f, 0x9c, 0x2e, 0x79, 0xf5, 0x62, 0xeb, 0x61, 0x9d, 0x9b, 0x80, 0x39, 0xcd, 0x60, 0x2e, 0x1f, 0x08, 0x22, 0xbc, 0x19, 0xb3, 0x2a, 0x43, 0x44, 0xf2, 0x4e, 0x66, 0xf4, 0x36, 0xa6, 0xa7, 0xbc, 0xa4, 0x15, 0x7e, + /* (2^ 33)P */ 0xc1, 0x90, 0x8a, 0xde, 0xff, 0x78, 0xc3, 0x73, 0x16, 0xee, 0x76, 0xa0, 0x84, 0x60, 0x8d, 0xe6, 0x82, 0x0f, 0xde, 0x4e, 0xc5, 0x99, 0x34, 0x06, 0x90, 0x44, 0x55, 0xf8, 0x91, 0xd8, 0xe1, 0xe4, 0x2c, 0x8a, 0xde, 0x94, 0x1e, 0x78, 0x25, 0x3d, 0xfd, 0xd8, 0x59, 0x7d, 0xaf, 0x6e, 0xbe, 0x96, 0xbe, 0x3c, 0x16, 0x23, 0x0f, 0x4c, 0xa4, 0x28, + /* (2^ 34)P */ 0xba, 0x11, 0x35, 0x57, 0x03, 0xb6, 0xf4, 0x24, 0x89, 0xb8, 0x5a, 0x0d, 0x50, 0x9c, 0xaa, 0x51, 0x7f, 0xa4, 0x0e, 0xfc, 0x71, 0xb3, 0x3b, 0xf1, 0x96, 0x50, 0x23, 0x15, 0xf5, 0xf5, 0xd4, 0x23, 0xdc, 0x8b, 0x26, 0x9e, 0xae, 0xb7, 0x50, 0xcd, 0xc4, 0x25, 0xf6, 0x75, 0x40, 0x9c, 0x37, 0x79, 0x33, 0x60, 0xd4, 0x4b, 0x13, 0x32, 0xee, 0xe2, + /* (2^ 35)P */ 0x43, 0xb8, 0x56, 0x59, 0xf0, 0x68, 0x23, 0xb3, 0xea, 0x70, 0x58, 0x4c, 0x1e, 0x5a, 0x16, 0x54, 0x03, 0xb2, 0xf4, 0x73, 0xb6, 0xd9, 0x5c, 0x9c, 0x6f, 0xcf, 0x82, 0x2e, 0x54, 0x15, 0x46, 0x2c, 0xa3, 0xda, 0x4e, 0x87, 0xf5, 0x2b, 0xba, 0x91, 0xa3, 0xa0, 0x89, 0xba, 0x48, 0x2b, 0xfa, 0x64, 0x02, 0x7f, 0x78, 0x03, 0xd1, 0xe8, 0x3b, 0xe9, + /* (2^ 36)P */ 0x15, 0xa4, 0x71, 0xd4, 0x0c, 0x24, 0xe9, 0x07, 0xa1, 0x43, 0xf4, 0x7f, 0xbb, 0xa2, 0xa6, 0x6b, 0xfa, 0xb7, 0xea, 0x58, 0xd1, 0x96, 0xb0, 0x24, 0x5c, 0xc7, 0x37, 0x4e, 0x60, 0x0f, 0x40, 0xf2, 0x2f, 0x44, 0x70, 0xea, 0x80, 0x63, 0xfe, 0xfc, 0x46, 0x59, 0x12, 0x27, 0xb5, 0x27, 0xfd, 0xb7, 0x73, 0x0b, 0xca, 0x8b, 0xc2, 0xd3, 0x71, 0x08, + /* (2^ 37)P */ 0x26, 0x0e, 0xd7, 0x52, 0x6f, 0xf1, 0xf2, 0x9d, 0xb8, 0x3d, 0xbd, 0xd4, 0x75, 0x97, 0xd8, 0xbf, 0xa8, 0x86, 0x96, 0xa5, 0x80, 0xa0, 0x45, 0x75, 0xf6, 0x77, 0x71, 0xdb, 0x77, 0x96, 0x55, 0x99, 0x31, 0xd0, 0x4f, 0x34, 0xf4, 0x35, 0x39, 0x41, 0xd3, 0x7d, 0xf7, 0xe2, 0x74, 0xde, 0xbe, 0x5b, 0x1f, 0x39, 0x10, 0x21, 0xa3, 0x4d, 0x3b, 0xc8, + /* (2^ 38)P */ 0x04, 0x00, 0x2a, 0x45, 0xb2, 0xaf, 0x9b, 0x18, 0x6a, 0xeb, 0x96, 0x28, 0xa4, 0x77, 0xd0, 0x13, 0xcf, 0x17, 0x65, 0xe8, 0xc5, 0x81, 0x28, 0xad, 0x39, 0x7a, 0x0b, 0xaa, 0x55, 0x2b, 0xf3, 0xfc, 0x86, 0x40, 0xad, 0x0d, 0x1e, 0x28, 0xa2, 0x2d, 0xc5, 0xd6, 0x04, 0x15, 0xa2, 0x30, 0x3d, 0x12, 0x8e, 0xd6, 0xb5, 0xf7, 0x69, 0xbb, 0x84, 0x20, + /* (2^ 39)P */ 0xd7, 0x7a, 0x77, 0x2c, 0xfb, 0x81, 0x80, 0xe9, 0x1e, 0xc6, 0x36, 0x31, 0x79, 0xc3, 0x7c, 0xa9, 0x57, 0x6b, 0xb5, 0x70, 0xfb, 0xe4, 0xa1, 0xff, 0xfd, 0x21, 0xa5, 0x7c, 0xfa, 0x44, 0xba, 0x0d, 0x96, 0x3d, 0xc4, 0x5c, 0x39, 0x52, 0x87, 0xd7, 0x22, 0x0f, 0x52, 0x88, 0x91, 0x87, 0x96, 0xac, 0xfa, 0x3b, 0xdf, 0xdc, 0x83, 0x8c, 0x99, 0x29, + /* (2^ 40)P */ 0x98, 0x6b, 0x3a, 0x8d, 0x83, 0x17, 0xe1, 0x62, 0xd8, 0x80, 0x4c, 0x97, 0xce, 0x6b, 0xaa, 0x10, 0xa7, 0xc4, 0xe9, 0xeb, 0xa5, 0xfb, 0xc9, 0xdd, 0x2d, 0xeb, 0xfc, 0x9a, 0x71, 0xcd, 0x68, 0x6e, 0xc0, 0x35, 0x64, 0x62, 0x1b, 0x95, 0x12, 0xe8, 0x53, 0xec, 0xf0, 0xf4, 0x86, 0x86, 0x78, 0x18, 0xc4, 0xc6, 0xbc, 0x5a, 0x59, 0x8f, 0x7c, 0x7e, + /* (2^ 41)P */ 0x7f, 0xd7, 0x1e, 0xc5, 0x83, 0xdc, 0x1f, 0xbe, 0x0b, 0xcf, 0x2e, 0x01, 0x01, 0xed, 0xac, 0x17, 0x3b, 0xed, 0xa4, 0x30, 0x96, 0x0e, 0x14, 0x7e, 0x19, 0x2b, 0xa5, 0x67, 0x1e, 0xb3, 0x34, 0x03, 0xa8, 0xbb, 0x0a, 0x7d, 0x08, 0x2d, 0xd5, 0x53, 0x19, 0x6f, 0x13, 0xd5, 0xc0, 0x90, 0x8a, 0xcc, 0xc9, 0x5c, 0xab, 0x24, 0xd7, 0x03, 0xf6, 0x57, + /* (2^ 42)P */ 0x49, 0xcb, 0xb4, 0x96, 0x5f, 0xa6, 0xf8, 0x71, 0x6f, 0x59, 0xad, 0x05, 0x24, 0x2d, 0xaf, 0x67, 0xa8, 0xbe, 0x95, 0xdf, 0x0d, 0x28, 0x5a, 0x7f, 0x6e, 0x87, 0x8c, 0x6e, 0x67, 0x0c, 0xf4, 0xe0, 0x1c, 0x30, 0xc2, 0x66, 0xae, 0x20, 0xa1, 0x34, 0xec, 0x9c, 0xbc, 0xae, 0x3d, 0xa1, 0x28, 0x28, 0x95, 0x1d, 0xc9, 0x3a, 0xa8, 0xfd, 0xfc, 0xa1, + /* (2^ 43)P */ 0xe2, 0x2b, 0x9d, 0xed, 0x02, 0x99, 0x67, 0xbb, 0x2e, 0x16, 0x62, 0x05, 0x70, 0xc7, 0x27, 0xb9, 0x1c, 0x3f, 0xf2, 0x11, 0x01, 0xd8, 0x51, 0xa4, 0x18, 0x92, 0xa9, 0x5d, 0xfb, 0xa9, 0xe4, 0x42, 0xba, 0x38, 0x34, 0x1a, 0x4a, 0xc5, 0x6a, 0x37, 0xde, 0xa7, 0x0c, 0xb4, 0x7e, 0x7f, 0xde, 0xa6, 0xee, 0xcd, 0x55, 0x57, 0x05, 0x06, 0xfd, 0x5d, + /* (2^ 44)P */ 0x2f, 0x32, 0xcf, 0x2e, 0x2c, 0x7b, 0xbe, 0x9a, 0x0c, 0x57, 0x35, 0xf8, 0x87, 0xda, 0x9c, 0xec, 0x48, 0xf2, 0xbb, 0xe2, 0xda, 0x10, 0x58, 0x20, 0xc6, 0xd3, 0x87, 0xe9, 0xc7, 0x26, 0xd1, 0x9a, 0x46, 0x87, 0x90, 0xda, 0xdc, 0xde, 0xc3, 0xb3, 0xf2, 0xe8, 0x6f, 0x4a, 0xe6, 0xe8, 0x9d, 0x98, 0x36, 0x20, 0x03, 0x47, 0x15, 0x3f, 0x64, 0x59, + /* (2^ 45)P */ 0xd4, 0x71, 0x49, 0x0a, 0x67, 0x97, 0xaa, 0x3f, 0xf4, 0x1b, 0x3a, 0x6e, 0x5e, 0x17, 0xcc, 0x0a, 0x8f, 0x81, 0x6a, 0x41, 0x38, 0x77, 0x40, 0x8a, 0x11, 0x42, 0x62, 0xd2, 0x50, 0x32, 0x79, 0x78, 0x28, 0xc2, 0x2e, 0x10, 0x01, 0x94, 0x30, 0x4f, 0x7f, 0x18, 0x17, 0x56, 0x85, 0x4e, 0xad, 0xf7, 0xcb, 0x87, 0x3c, 0x3f, 0x50, 0x2c, 0xc0, 0xba, + /* (2^ 46)P */ 0xbc, 0x30, 0x8e, 0x65, 0x8e, 0x57, 0x5b, 0x38, 0x7a, 0xd4, 0x95, 0x52, 0x7a, 0x32, 0x59, 0x69, 0xcd, 0x9d, 0x47, 0x34, 0x5b, 0x55, 0xa5, 0x24, 0x60, 0xdd, 0xc0, 0xc1, 0x62, 0x73, 0x44, 0xae, 0x4c, 0x9c, 0x65, 0x55, 0x1b, 0x9d, 0x8a, 0x29, 0xb0, 0x1a, 0x52, 0xa8, 0xf1, 0xe6, 0x9a, 0xb3, 0xf6, 0xa3, 0xc9, 0x0a, 0x70, 0x7d, 0x0f, 0xee, + /* (2^ 47)P */ 0x77, 0xd3, 0xe5, 0x8e, 0xfa, 0x00, 0xeb, 0x1b, 0x7f, 0xdc, 0x68, 0x3f, 0x92, 0xbd, 0xb7, 0x0b, 0xb7, 0xb5, 0x24, 0xdf, 0xc5, 0x67, 0x53, 0xd4, 0x36, 0x79, 0xc4, 0x7b, 0x57, 0xbc, 0x99, 0x97, 0x60, 0xef, 0xe4, 0x01, 0xa1, 0xa7, 0xaa, 0x12, 0x36, 0x29, 0xb1, 0x03, 0xc2, 0x83, 0x1c, 0x2b, 0x83, 0xef, 0x2e, 0x2c, 0x23, 0x92, 0xfd, 0xd1, + /* (2^ 48)P */ 0x94, 0xef, 0x03, 0x59, 0xfa, 0x8a, 0x18, 0x76, 0xee, 0x58, 0x08, 0x4d, 0x44, 0xce, 0xf1, 0x52, 0x33, 0x49, 0xf6, 0x69, 0x71, 0xe3, 0xa9, 0xbc, 0x86, 0xe3, 0x43, 0xde, 0x33, 0x7b, 0x90, 0x8b, 0x3e, 0x7d, 0xd5, 0x4a, 0xf0, 0x23, 0x99, 0xa6, 0xea, 0x5f, 0x08, 0xe5, 0xb9, 0x49, 0x8b, 0x0d, 0x6a, 0x21, 0xab, 0x07, 0x62, 0xcd, 0xc4, 0xbe, + /* (2^ 49)P */ 0x61, 0xbf, 0x70, 0x14, 0xfa, 0x4e, 0x9e, 0x7c, 0x0c, 0xf8, 0xb2, 0x48, 0x71, 0x62, 0x83, 0xd6, 0xd1, 0xdc, 0x9c, 0x29, 0x66, 0xb1, 0x34, 0x9c, 0x8d, 0xe6, 0x88, 0xaf, 0xbe, 0xdc, 0x4d, 0xeb, 0xb0, 0xe7, 0x28, 0xae, 0xb2, 0x05, 0x56, 0xc6, 0x0e, 0x10, 0x26, 0xab, 0x2c, 0x59, 0x72, 0x03, 0x66, 0xfe, 0x8f, 0x2c, 0x51, 0x2d, 0xdc, 0xae, + /* (2^ 50)P */ 0xdc, 0x63, 0xf1, 0x8b, 0x5c, 0x65, 0x0b, 0xf1, 0xa6, 0x22, 0xe2, 0xd9, 0xdb, 0x49, 0xb1, 0x3c, 0x47, 0xc2, 0xfe, 0xac, 0x86, 0x07, 0x52, 0xec, 0xb0, 0x08, 0x69, 0xfb, 0xd1, 0x06, 0xdc, 0x48, 0x5c, 0x3d, 0xb2, 0x4d, 0xb8, 0x1a, 0x4e, 0xda, 0xb9, 0xc1, 0x2b, 0xab, 0x4b, 0x62, 0x81, 0x21, 0x9a, 0xfc, 0x3d, 0x39, 0x83, 0x11, 0x36, 0xeb, + /* (2^ 51)P */ 0x94, 0xf3, 0x17, 0xef, 0xf9, 0x60, 0x54, 0xc3, 0xd7, 0x27, 0x35, 0xc5, 0x98, 0x5e, 0xf6, 0x63, 0x6c, 0xa0, 0x4a, 0xd3, 0xa3, 0x98, 0xd9, 0x42, 0xe3, 0xf1, 0xf8, 0x81, 0x96, 0xa9, 0xea, 0x6d, 0x4b, 0x8e, 0x33, 0xca, 0x94, 0x0d, 0xa0, 0xf7, 0xbb, 0x64, 0xa3, 0x36, 0x6f, 0xdc, 0x5a, 0x94, 0x42, 0xca, 0x06, 0xb2, 0x2b, 0x9a, 0x9f, 0x71, + /* (2^ 52)P */ 0xec, 0xdb, 0xa6, 0x1f, 0xdf, 0x15, 0x36, 0xa3, 0xda, 0x8a, 0x7a, 0xb6, 0xa7, 0xe3, 0xaf, 0x52, 0xe0, 0x8d, 0xe8, 0xf2, 0x44, 0x20, 0xeb, 0xa1, 0x20, 0xc4, 0x65, 0x3c, 0x7c, 0x6c, 0x49, 0xed, 0x2f, 0x66, 0x23, 0x68, 0x61, 0x91, 0x40, 0x9f, 0x50, 0x19, 0xd1, 0x84, 0xa7, 0xe2, 0xed, 0x34, 0x37, 0xe3, 0xe4, 0x11, 0x7f, 0x87, 0x55, 0x0f, + /* (2^ 53)P */ 0xb3, 0xa1, 0x0f, 0xb0, 0x48, 0xc0, 0x4d, 0x96, 0xa7, 0xcf, 0x5a, 0x81, 0xb8, 0x4a, 0x46, 0xef, 0x0a, 0xd3, 0x40, 0x7e, 0x02, 0xe3, 0x63, 0xaa, 0x50, 0xd1, 0x2a, 0x37, 0x22, 0x4a, 0x7f, 0x4f, 0xb6, 0xf9, 0x01, 0x82, 0x78, 0x3d, 0x93, 0x14, 0x11, 0x8a, 0x90, 0x60, 0xcd, 0x45, 0x4e, 0x7b, 0x42, 0xb9, 0x3e, 0x6e, 0x68, 0x1f, 0x36, 0x41, + /* (2^ 54)P */ 0x13, 0x73, 0x0e, 0x4f, 0x79, 0x93, 0x9e, 0x29, 0x70, 0x7b, 0x4a, 0x59, 0x1a, 0x9a, 0xf4, 0x55, 0x08, 0xf0, 0xdb, 0x17, 0x58, 0xec, 0x64, 0xad, 0x7f, 0x29, 0xeb, 0x3f, 0x85, 0x4e, 0x60, 0x28, 0x98, 0x1f, 0x73, 0x4e, 0xe6, 0xa8, 0xab, 0xd5, 0xd6, 0xfc, 0xa1, 0x36, 0x6d, 0x15, 0xc6, 0x13, 0x83, 0xa0, 0xc2, 0x6e, 0xd9, 0xdb, 0xc9, 0xcc, + /* (2^ 55)P */ 0xff, 0xd8, 0x52, 0xa3, 0xdc, 0x99, 0xcf, 0x3e, 0x19, 0xb3, 0x68, 0xd0, 0xb5, 0x0d, 0xb8, 0xee, 0x3f, 0xef, 0x6e, 0xc0, 0x38, 0x28, 0x44, 0x92, 0x78, 0x91, 0x1a, 0x08, 0x78, 0x6c, 0x65, 0x24, 0xf3, 0xa2, 0x3d, 0xf2, 0xe5, 0x79, 0x62, 0x69, 0x29, 0xf4, 0x22, 0xc5, 0xdb, 0x6a, 0xae, 0xf4, 0x44, 0xa3, 0x6f, 0xc7, 0x86, 0xab, 0xef, 0xef, + /* (2^ 56)P */ 0xbf, 0x54, 0x9a, 0x09, 0x5d, 0x17, 0xd0, 0xde, 0xfb, 0xf5, 0xca, 0xff, 0x13, 0x20, 0x88, 0x82, 0x3a, 0xe2, 0xd0, 0x3b, 0xfb, 0x05, 0x76, 0xd1, 0xc0, 0x02, 0x71, 0x3b, 0x94, 0xe8, 0xc9, 0x84, 0xcf, 0xa4, 0xe9, 0x28, 0x7b, 0xf5, 0x09, 0xc3, 0x2b, 0x22, 0x40, 0xf1, 0x68, 0x24, 0x24, 0x7d, 0x9f, 0x6e, 0xcd, 0xfe, 0xb0, 0x19, 0x61, 0xf5, + /* (2^ 57)P */ 0xe8, 0x63, 0x51, 0xb3, 0x95, 0x6b, 0x7b, 0x74, 0x92, 0x52, 0x45, 0xa4, 0xed, 0xea, 0x0e, 0x0d, 0x2b, 0x01, 0x1e, 0x2c, 0xbc, 0x91, 0x06, 0x69, 0xdb, 0x1f, 0xb5, 0x77, 0x1d, 0x56, 0xf5, 0xb4, 0x02, 0x80, 0x49, 0x56, 0x12, 0xce, 0x86, 0x05, 0xc9, 0xd9, 0xae, 0xf3, 0x6d, 0xe6, 0x3f, 0x40, 0x52, 0xe9, 0x49, 0x2b, 0x31, 0x06, 0x86, 0x14, + /* (2^ 58)P */ 0xf5, 0x09, 0x3b, 0xd2, 0xff, 0xdf, 0x11, 0xa5, 0x1c, 0x99, 0xe8, 0x1b, 0xa4, 0x2c, 0x7d, 0x8e, 0xc8, 0xf7, 0x03, 0x46, 0xfa, 0xb6, 0xde, 0x73, 0x91, 0x7e, 0x5a, 0x7a, 0xd7, 0x9a, 0x5b, 0x80, 0x24, 0x62, 0x5e, 0x92, 0xf1, 0xa3, 0x45, 0xa3, 0x43, 0x92, 0x8a, 0x2a, 0x5b, 0x0c, 0xb4, 0xc8, 0xad, 0x1c, 0xb6, 0x6c, 0x5e, 0x81, 0x18, 0x91, + /* (2^ 59)P */ 0x96, 0xb3, 0xca, 0x2b, 0xe3, 0x7a, 0x59, 0x72, 0x17, 0x74, 0x29, 0x21, 0xe7, 0x78, 0x07, 0xad, 0xda, 0xb6, 0xcd, 0xf9, 0x27, 0x4d, 0xc8, 0xf2, 0x98, 0x22, 0xca, 0xf2, 0x33, 0x74, 0x7a, 0xdd, 0x1e, 0x71, 0xec, 0xe3, 0x3f, 0xe2, 0xa2, 0xd2, 0x38, 0x75, 0xb0, 0xd0, 0x0a, 0xcf, 0x7d, 0x36, 0xdc, 0x49, 0x38, 0x25, 0x34, 0x4f, 0x20, 0x9a, + /* (2^ 60)P */ 0x2b, 0x6e, 0x04, 0x0d, 0x4f, 0x3d, 0x3b, 0x24, 0xf6, 0x4e, 0x5e, 0x0a, 0xbd, 0x48, 0x96, 0xba, 0x81, 0x8f, 0x39, 0x82, 0x13, 0xe6, 0x72, 0xf3, 0x0f, 0xb6, 0x94, 0xf4, 0xc5, 0x90, 0x74, 0x91, 0xa8, 0xf2, 0xc9, 0xca, 0x9a, 0x4d, 0x98, 0xf2, 0xdf, 0x52, 0x4e, 0x97, 0x2f, 0xeb, 0x84, 0xd3, 0xaf, 0xc2, 0xcc, 0xfb, 0x4c, 0x26, 0x4b, 0xe4, + /* (2^ 61)P */ 0x12, 0x9e, 0xfb, 0x9d, 0x78, 0x79, 0x99, 0xdd, 0xb3, 0x0b, 0x2e, 0x56, 0x41, 0x8e, 0x3f, 0x39, 0xb8, 0x97, 0x89, 0x53, 0x9b, 0x8a, 0x3c, 0x40, 0x9d, 0xa4, 0x6c, 0x2e, 0x31, 0x71, 0xc6, 0x0a, 0x41, 0xd4, 0x95, 0x06, 0x5e, 0xc1, 0xab, 0xc2, 0x14, 0xc4, 0xc7, 0x15, 0x08, 0x3a, 0xad, 0x7a, 0xb4, 0x62, 0xa3, 0x0c, 0x90, 0xf4, 0x47, 0x08, + /* (2^ 62)P */ 0x7f, 0xec, 0x09, 0x82, 0xf5, 0x94, 0x09, 0x93, 0x32, 0xd3, 0xdc, 0x56, 0x80, 0x7b, 0x5b, 0x22, 0x80, 0x6a, 0x96, 0x72, 0xb1, 0xc2, 0xd9, 0xa1, 0x8b, 0x66, 0x42, 0x16, 0xe2, 0x07, 0xb3, 0x2d, 0xf1, 0x75, 0x35, 0x72, 0xc7, 0x98, 0xbe, 0x63, 0x3b, 0x20, 0x75, 0x05, 0xc1, 0x3e, 0x31, 0x5a, 0xf7, 0xaa, 0xae, 0x4b, 0xdb, 0x1d, 0xd0, 0x74, + /* (2^ 63)P */ 0x36, 0x5c, 0x74, 0xe6, 0x5d, 0x59, 0x3f, 0x15, 0x4b, 0x4d, 0x4e, 0x67, 0x41, 0xfe, 0x98, 0x1f, 0x49, 0x76, 0x91, 0x0f, 0x9b, 0xf4, 0xaf, 0x86, 0xaf, 0x66, 0x19, 0xed, 0x46, 0xf1, 0x05, 0x9a, 0xcc, 0xd1, 0x14, 0x1f, 0x82, 0x12, 0x8e, 0xe6, 0xf4, 0xc3, 0x42, 0x5c, 0x4e, 0x33, 0x93, 0xbe, 0x30, 0xe7, 0x64, 0xa9, 0x35, 0x00, 0x4d, 0xf9, + /* (2^ 64)P */ 0x1f, 0xc1, 0x1e, 0xb7, 0xe3, 0x7c, 0xfa, 0xa3, 0x6b, 0x76, 0xaf, 0x9c, 0x05, 0x85, 0x4a, 0xa9, 0xfb, 0xe3, 0x7e, 0xf2, 0x49, 0x56, 0xdc, 0x2f, 0x57, 0x10, 0xba, 0x37, 0xb2, 0x62, 0xf5, 0x6b, 0xe5, 0x8f, 0x0a, 0x87, 0xd1, 0x6a, 0xcb, 0x9d, 0x07, 0xd0, 0xf6, 0x38, 0x99, 0x2c, 0x61, 0x4a, 0x4e, 0xd8, 0xd2, 0x88, 0x29, 0x99, 0x11, 0x95, + /* (2^ 65)P */ 0x6f, 0xdc, 0xd5, 0xd6, 0xd6, 0xa7, 0x4c, 0x46, 0x93, 0x65, 0x62, 0x23, 0x95, 0x32, 0x9c, 0xde, 0x40, 0x41, 0x68, 0x2c, 0x18, 0x4e, 0x5a, 0x8c, 0xc0, 0xc5, 0xc5, 0xea, 0x5c, 0x45, 0x0f, 0x60, 0x78, 0x39, 0xb6, 0x36, 0x23, 0x12, 0xbc, 0x21, 0x9a, 0xf8, 0x91, 0xac, 0xc4, 0x70, 0xdf, 0x85, 0x8e, 0x3c, 0xec, 0x22, 0x04, 0x98, 0xa8, 0xaa, + /* (2^ 66)P */ 0xcc, 0x52, 0x10, 0x5b, 0x4b, 0x6c, 0xc5, 0xfa, 0x3e, 0xd4, 0xf8, 0x1c, 0x04, 0x14, 0x48, 0x33, 0xd9, 0xfc, 0x5f, 0xb0, 0xa5, 0x48, 0x8c, 0x45, 0x8a, 0xee, 0x3e, 0xa7, 0xc1, 0x2e, 0x34, 0xca, 0xf6, 0xc9, 0xeb, 0x10, 0xbb, 0xe1, 0x59, 0x84, 0x25, 0xe8, 0x81, 0x70, 0xc0, 0x09, 0x42, 0xa7, 0x3b, 0x0d, 0x33, 0x00, 0xb5, 0x77, 0xbe, 0x25, + /* (2^ 67)P */ 0xcd, 0x1f, 0xbc, 0x7d, 0xef, 0xe5, 0xca, 0x91, 0xaf, 0xa9, 0x59, 0x6a, 0x09, 0xca, 0xd6, 0x1b, 0x3d, 0x55, 0xde, 0xa2, 0x6a, 0x80, 0xd6, 0x95, 0x47, 0xe4, 0x5f, 0x68, 0x54, 0x08, 0xdf, 0x29, 0xba, 0x2a, 0x02, 0x84, 0xe8, 0xe9, 0x00, 0x77, 0x99, 0x36, 0x03, 0xf6, 0x4a, 0x3e, 0x21, 0x81, 0x7d, 0xb8, 0xa4, 0x8a, 0xa2, 0x05, 0xef, 0xbc, + /* (2^ 68)P */ 0x7c, 0x59, 0x5f, 0x66, 0xd9, 0xb7, 0x83, 0x43, 0x8a, 0xa1, 0x8d, 0x51, 0x70, 0xba, 0xf2, 0x9b, 0x95, 0xc0, 0x4b, 0x4c, 0xa0, 0x14, 0xd3, 0xa4, 0x5d, 0x4a, 0x37, 0x36, 0x97, 0x31, 0x1e, 0x12, 0xe7, 0xbb, 0x08, 0x67, 0xa5, 0x23, 0xd7, 0xfb, 0x97, 0xd8, 0x6a, 0x03, 0xb1, 0xf8, 0x7f, 0xda, 0x58, 0xd9, 0x3f, 0x73, 0x4a, 0x53, 0xe1, 0x7b, + /* (2^ 69)P */ 0x55, 0x83, 0x98, 0x78, 0x6c, 0x56, 0x5e, 0xed, 0xf7, 0x23, 0x3e, 0x4c, 0x7d, 0x09, 0x2d, 0x09, 0x9c, 0x58, 0x8b, 0x32, 0xca, 0xfe, 0xbf, 0x47, 0x03, 0xeb, 0x4d, 0xe7, 0xeb, 0x9c, 0x83, 0x05, 0x68, 0xaa, 0x80, 0x89, 0x44, 0xf9, 0xd4, 0xdc, 0xdb, 0xb1, 0xdb, 0x77, 0xac, 0xf9, 0x2a, 0xae, 0x35, 0xac, 0x74, 0xb5, 0x95, 0x62, 0x18, 0x85, + /* (2^ 70)P */ 0xab, 0x82, 0x7e, 0x10, 0xd7, 0xe6, 0x57, 0xd1, 0x66, 0x12, 0x31, 0x9c, 0x9c, 0xa6, 0x27, 0x59, 0x71, 0x2e, 0xeb, 0xa0, 0x68, 0xc5, 0x87, 0x51, 0xf4, 0xca, 0x3f, 0x98, 0x56, 0xb0, 0x89, 0xb1, 0xc7, 0x7b, 0x46, 0xb3, 0xae, 0x36, 0xf2, 0xee, 0x15, 0x1a, 0x60, 0xf4, 0x50, 0x76, 0x4f, 0xc4, 0x53, 0x0d, 0x36, 0x4d, 0x31, 0xb1, 0x20, 0x51, + /* (2^ 71)P */ 0xf7, 0x1d, 0x8c, 0x1b, 0x5e, 0xe5, 0x02, 0x6f, 0xc5, 0xa5, 0xe0, 0x5f, 0xc6, 0xb6, 0x63, 0x43, 0xaf, 0x3c, 0x19, 0x6c, 0xf4, 0xaf, 0xa4, 0x33, 0xb1, 0x0a, 0x37, 0x3d, 0xd9, 0x4d, 0xe2, 0x29, 0x24, 0x26, 0x94, 0x7c, 0x02, 0xe4, 0xe2, 0xf2, 0xbe, 0xbd, 0xac, 0x1b, 0x48, 0xb8, 0xdd, 0xe9, 0x0d, 0x9a, 0x50, 0x1a, 0x98, 0x71, 0x6e, 0xdc, + /* (2^ 72)P */ 0x9f, 0x40, 0xb1, 0xb3, 0x66, 0x28, 0x6c, 0xfe, 0xa6, 0x7d, 0xf8, 0x3e, 0xb8, 0xf3, 0xde, 0x52, 0x76, 0x52, 0xa3, 0x92, 0x98, 0x23, 0xab, 0x4f, 0x88, 0x97, 0xfc, 0x22, 0xe1, 0x6b, 0x67, 0xcd, 0x13, 0x95, 0xda, 0x65, 0xdd, 0x3b, 0x67, 0x3f, 0x5f, 0x4c, 0xf2, 0x8a, 0xad, 0x98, 0xa7, 0x94, 0x24, 0x45, 0x87, 0x11, 0x7c, 0x75, 0x79, 0x85, + /* (2^ 73)P */ 0x70, 0xbf, 0xf9, 0x3b, 0xa9, 0x44, 0x57, 0x72, 0x96, 0xc9, 0xa4, 0x98, 0x65, 0xbf, 0x87, 0xb3, 0x3a, 0x39, 0x12, 0xde, 0xe5, 0x39, 0x01, 0x4f, 0xf7, 0xc0, 0x71, 0x52, 0x36, 0x85, 0xb3, 0x18, 0xf8, 0x14, 0xc0, 0x6d, 0xae, 0x9e, 0x4f, 0xb0, 0x72, 0x87, 0xac, 0x5c, 0xd1, 0x6c, 0x41, 0x6c, 0x90, 0x9d, 0x22, 0x81, 0xe4, 0x2b, 0xea, 0xe5, + /* (2^ 74)P */ 0xfc, 0xea, 0x1a, 0x65, 0xd9, 0x49, 0x6a, 0x39, 0xb5, 0x96, 0x72, 0x7b, 0x32, 0xf1, 0xd0, 0xe9, 0x45, 0xd9, 0x31, 0x55, 0xc7, 0x34, 0xe9, 0x5a, 0xec, 0x73, 0x0b, 0x03, 0xc4, 0xb3, 0xe6, 0xc9, 0x5e, 0x0a, 0x17, 0xfe, 0x53, 0x66, 0x7f, 0x21, 0x18, 0x74, 0x54, 0x1b, 0xc9, 0x49, 0x16, 0xd2, 0x48, 0xaf, 0x5b, 0x47, 0x7b, 0xeb, 0xaa, 0xc9, + /* (2^ 75)P */ 0x47, 0x04, 0xf5, 0x5a, 0x87, 0x77, 0x9e, 0x21, 0x34, 0x4e, 0x83, 0x88, 0xaf, 0x02, 0x1d, 0xb0, 0x5a, 0x1d, 0x1d, 0x7d, 0x8d, 0x2c, 0xd3, 0x8d, 0x63, 0xa9, 0x45, 0xfb, 0x15, 0x6d, 0x86, 0x45, 0xcd, 0x38, 0x0e, 0xf7, 0x37, 0x79, 0xed, 0x6d, 0x5a, 0xbc, 0x32, 0xcc, 0x66, 0xf1, 0x3a, 0xb2, 0x87, 0x6f, 0x70, 0x71, 0xd9, 0xf2, 0xfa, 0x7b, + /* (2^ 76)P */ 0x68, 0x07, 0xdc, 0x61, 0x40, 0xe4, 0xec, 0x32, 0xc8, 0xbe, 0x66, 0x30, 0x54, 0x80, 0xfd, 0x13, 0x7a, 0xef, 0xae, 0xed, 0x2e, 0x00, 0x6d, 0x3f, 0xbd, 0xfc, 0x91, 0x24, 0x53, 0x7f, 0x63, 0x9d, 0x2e, 0xe3, 0x76, 0xe0, 0xf3, 0xe1, 0x8f, 0x7a, 0xc4, 0x77, 0x0c, 0x91, 0xc0, 0xc2, 0x18, 0x6b, 0x04, 0xad, 0xb6, 0x70, 0x9a, 0x64, 0xc5, 0x82, + /* (2^ 77)P */ 0x7f, 0xea, 0x13, 0xd8, 0x9e, 0xfc, 0x5b, 0x06, 0xb5, 0x4f, 0xda, 0x38, 0xe0, 0x9c, 0xd2, 0x3a, 0xc1, 0x1c, 0x62, 0x70, 0x7f, 0xc6, 0x24, 0x0a, 0x47, 0x04, 0x01, 0xc4, 0x55, 0x09, 0xd1, 0x7a, 0x07, 0xba, 0xa3, 0x80, 0x4f, 0xc1, 0x65, 0x36, 0x6d, 0xc0, 0x10, 0xcf, 0x94, 0xa9, 0xa2, 0x01, 0x44, 0xd1, 0xf9, 0x1c, 0x4c, 0xfb, 0xf8, 0x99, + /* (2^ 78)P */ 0x6c, 0xb9, 0x6b, 0xee, 0x43, 0x5b, 0xb9, 0xbb, 0xee, 0x2e, 0x52, 0xc1, 0xc6, 0xb9, 0x61, 0xd2, 0x93, 0xa5, 0xaf, 0x52, 0xf4, 0xa4, 0x1a, 0x51, 0x61, 0xa7, 0xcb, 0x9e, 0xbb, 0x56, 0x65, 0xe2, 0xbf, 0x75, 0xb9, 0x9c, 0x50, 0x96, 0x60, 0x81, 0x74, 0x47, 0xc0, 0x04, 0x88, 0x71, 0x76, 0x39, 0x9a, 0xa7, 0xb1, 0x4e, 0x43, 0x15, 0xe0, 0xbb, + /* (2^ 79)P */ 0xbb, 0xce, 0xe2, 0xbb, 0xf9, 0x17, 0x0f, 0x82, 0x40, 0xad, 0x73, 0xe3, 0xeb, 0x3b, 0x06, 0x1a, 0xcf, 0x8e, 0x6e, 0x28, 0xb8, 0x26, 0xd9, 0x5b, 0xb7, 0xb3, 0xcf, 0xb4, 0x6a, 0x1c, 0xbf, 0x7f, 0xb8, 0xb5, 0x79, 0xcf, 0x45, 0x68, 0x7d, 0xc5, 0xeb, 0xf3, 0xbe, 0x39, 0x40, 0xfc, 0x07, 0x90, 0x7a, 0x62, 0xad, 0x86, 0x08, 0x71, 0x25, 0xe1, + /* (2^ 80)P */ 0x9b, 0x46, 0xac, 0xef, 0xc1, 0x4e, 0xa1, 0x97, 0x95, 0x76, 0xf9, 0x1b, 0xc2, 0xb2, 0x6a, 0x41, 0xea, 0x80, 0x3d, 0xe9, 0x08, 0x52, 0x5a, 0xe3, 0xf2, 0x08, 0xc5, 0xea, 0x39, 0x3f, 0x44, 0x71, 0x4d, 0xea, 0x0d, 0x05, 0x23, 0xe4, 0x2e, 0x3c, 0x89, 0xfe, 0x12, 0x8a, 0x95, 0x42, 0x0a, 0x68, 0xea, 0x5a, 0x28, 0x06, 0x9e, 0xe3, 0x5f, 0xe0, + /* (2^ 81)P */ 0x00, 0x61, 0x6c, 0x98, 0x9b, 0xe7, 0xb9, 0x06, 0x1c, 0xc5, 0x1b, 0xed, 0xbe, 0xc8, 0xb3, 0xea, 0x87, 0xf0, 0xc4, 0x24, 0x7d, 0xbb, 0x5d, 0xa4, 0x1d, 0x7a, 0x16, 0x00, 0x55, 0x94, 0x67, 0x78, 0xbd, 0x58, 0x02, 0x82, 0x90, 0x53, 0x76, 0xd4, 0x72, 0x99, 0x51, 0x6f, 0x7b, 0xcf, 0x80, 0x30, 0x31, 0x3b, 0x01, 0xc7, 0xc1, 0xef, 0xe6, 0x42, + /* (2^ 82)P */ 0xe2, 0x35, 0xaf, 0x4b, 0x79, 0xc6, 0x12, 0x24, 0x99, 0xc0, 0x68, 0xb0, 0x43, 0x3e, 0xe5, 0xef, 0xe2, 0x29, 0xea, 0xb8, 0xb3, 0xbc, 0x6a, 0x53, 0x2c, 0x69, 0x18, 0x5a, 0xf9, 0x15, 0xae, 0x66, 0x58, 0x18, 0xd3, 0x2d, 0x4b, 0x00, 0xfd, 0x84, 0xab, 0x4f, 0xae, 0x70, 0x6b, 0x9e, 0x9a, 0xdf, 0x83, 0xfd, 0x2e, 0x3c, 0xcf, 0xf8, 0x88, 0x5b, + /* (2^ 83)P */ 0xa4, 0x90, 0x31, 0x85, 0x13, 0xcd, 0xdf, 0x64, 0xc9, 0xa1, 0x0b, 0xe7, 0xb6, 0x73, 0x8a, 0x1b, 0x22, 0x78, 0x4c, 0xd4, 0xae, 0x48, 0x18, 0x00, 0x00, 0xa8, 0x9f, 0x06, 0xf9, 0xfb, 0x2d, 0xc3, 0xb1, 0x2a, 0xbc, 0x13, 0x99, 0x57, 0xaf, 0xf0, 0x8d, 0x61, 0x54, 0x29, 0xd5, 0xf2, 0x72, 0x00, 0x96, 0xd1, 0x85, 0x12, 0x8a, 0xf0, 0x23, 0xfb, + /* (2^ 84)P */ 0x69, 0xc7, 0xdb, 0xd9, 0x92, 0x75, 0x08, 0x9b, 0xeb, 0xa5, 0x93, 0xd1, 0x1a, 0xf4, 0xf5, 0xaf, 0xe6, 0xc4, 0x4a, 0x0d, 0x35, 0x26, 0x39, 0x9d, 0xd3, 0x17, 0x3e, 0xae, 0x2d, 0xbf, 0x73, 0x9f, 0xb7, 0x74, 0x91, 0xd1, 0xd8, 0x5c, 0x14, 0xf9, 0x75, 0xdf, 0xeb, 0xc2, 0x22, 0xd8, 0x14, 0x8d, 0x86, 0x23, 0x4d, 0xd1, 0x2d, 0xdb, 0x6b, 0x42, + /* (2^ 85)P */ 0x8c, 0xda, 0xc6, 0xf8, 0x71, 0xba, 0x2b, 0x06, 0x78, 0xae, 0xcc, 0x3a, 0xe3, 0xe3, 0xa1, 0x8b, 0xe2, 0x34, 0x6d, 0x28, 0x9e, 0x46, 0x13, 0x4d, 0x9e, 0xa6, 0x73, 0x49, 0x65, 0x79, 0x88, 0xb9, 0x3a, 0xd1, 0x6d, 0x2f, 0x48, 0x2b, 0x0a, 0x7f, 0x58, 0x20, 0x37, 0xf4, 0x0e, 0xbb, 0x4a, 0x95, 0x58, 0x0c, 0x88, 0x30, 0xc4, 0x74, 0xdd, 0xfd, + /* (2^ 86)P */ 0x6d, 0x13, 0x4e, 0x89, 0x2d, 0xa9, 0xa3, 0xed, 0x09, 0xe3, 0x0e, 0x71, 0x3e, 0x4a, 0xab, 0x90, 0xde, 0x03, 0xeb, 0x56, 0x46, 0x60, 0x06, 0xf5, 0x71, 0xe5, 0xee, 0x9b, 0xef, 0xff, 0xc4, 0x2c, 0x9f, 0x37, 0x48, 0x45, 0x94, 0x12, 0x41, 0x81, 0x15, 0x70, 0x91, 0x99, 0x5e, 0x56, 0x6b, 0xf4, 0xa6, 0xc9, 0xf5, 0x69, 0x9d, 0x78, 0x37, 0x57, + /* (2^ 87)P */ 0xf3, 0x51, 0x57, 0x7e, 0x43, 0x6f, 0xc6, 0x67, 0x59, 0x0c, 0xcf, 0x94, 0xe6, 0x3d, 0xb5, 0x07, 0xc9, 0x77, 0x48, 0xc9, 0x68, 0x0d, 0x98, 0x36, 0x62, 0x35, 0x38, 0x1c, 0xf5, 0xc5, 0xec, 0x66, 0x78, 0xfe, 0x47, 0xab, 0x26, 0xd6, 0x44, 0xb6, 0x06, 0x0f, 0x89, 0xe3, 0x19, 0x40, 0x1a, 0xe7, 0xd8, 0x65, 0x55, 0xf7, 0x1a, 0xfc, 0xa3, 0x0e, + /* (2^ 88)P */ 0x0e, 0x30, 0xa6, 0xb7, 0x58, 0x60, 0x62, 0x2a, 0x6c, 0x13, 0xa8, 0x14, 0x9b, 0xb8, 0xf2, 0x70, 0xd8, 0xb1, 0x71, 0x88, 0x8c, 0x18, 0x31, 0x25, 0x93, 0x90, 0xb4, 0xc7, 0x49, 0xd8, 0xd4, 0xdb, 0x1e, 0x1e, 0x7f, 0xaa, 0xba, 0xc9, 0xf2, 0x5d, 0xa9, 0x3a, 0x43, 0xb4, 0x5c, 0xee, 0x7b, 0xc7, 0x97, 0xb7, 0x66, 0xd7, 0x23, 0xd9, 0x22, 0x59, + /* (2^ 89)P */ 0x28, 0x19, 0xa6, 0xf9, 0x89, 0x20, 0x78, 0xd4, 0x6d, 0xcb, 0x79, 0x8f, 0x61, 0x6f, 0xb2, 0x5c, 0x4f, 0xa6, 0x54, 0x84, 0x95, 0x24, 0x36, 0x64, 0xcb, 0x39, 0xe7, 0x8f, 0x97, 0x9c, 0x5c, 0x3c, 0xfb, 0x51, 0x11, 0x01, 0x17, 0xdb, 0xc9, 0x9b, 0x51, 0x03, 0x9a, 0xe9, 0xe5, 0x24, 0x1e, 0xf5, 0xda, 0xe0, 0x48, 0x02, 0x23, 0xd0, 0x2c, 0x81, + /* (2^ 90)P */ 0x42, 0x1b, 0xe4, 0x91, 0x85, 0x2a, 0x0c, 0xd2, 0x28, 0x66, 0x57, 0x9e, 0x33, 0x8d, 0x25, 0x71, 0x10, 0x65, 0x76, 0xa2, 0x8c, 0x21, 0x86, 0x81, 0x15, 0xc2, 0x27, 0xeb, 0x54, 0x2d, 0x4f, 0x6c, 0xe6, 0xd6, 0x24, 0x9c, 0x1a, 0x12, 0xb8, 0x81, 0xe2, 0x0a, 0xf3, 0xd3, 0xf0, 0xd3, 0xe1, 0x74, 0x1f, 0x9b, 0x11, 0x47, 0xd0, 0xcf, 0xb6, 0x54, + /* (2^ 91)P */ 0x26, 0x45, 0xa2, 0x10, 0xd4, 0x2d, 0xae, 0xc0, 0xb0, 0xe8, 0x86, 0xb3, 0xc7, 0xea, 0x70, 0x87, 0x61, 0xb5, 0xa5, 0x55, 0xbe, 0x88, 0x1d, 0x7a, 0xd9, 0x6f, 0xeb, 0x83, 0xe2, 0x44, 0x7f, 0x98, 0x04, 0xd6, 0x50, 0x9d, 0xa7, 0x86, 0x66, 0x09, 0x63, 0xe1, 0xed, 0x72, 0xb1, 0xe4, 0x1d, 0x3a, 0xfd, 0x47, 0xce, 0x1c, 0xaa, 0x3b, 0x8f, 0x1b, + /* (2^ 92)P */ 0xf4, 0x3c, 0x4a, 0xb6, 0xc2, 0x9c, 0xe0, 0x2e, 0xb7, 0x38, 0xea, 0x61, 0x35, 0x97, 0x10, 0x90, 0xae, 0x22, 0x48, 0xb3, 0xa9, 0xc6, 0x7a, 0xbb, 0x23, 0xf2, 0xf8, 0x1b, 0xa7, 0xa1, 0x79, 0xcc, 0xc4, 0xf8, 0x08, 0x76, 0x8a, 0x5a, 0x1c, 0x1b, 0xc5, 0x33, 0x91, 0xa9, 0xb8, 0xb9, 0xd3, 0xf8, 0x49, 0xcd, 0xe5, 0x82, 0x43, 0xf7, 0xca, 0x68, + /* (2^ 93)P */ 0x38, 0xba, 0xae, 0x44, 0xfe, 0x57, 0x64, 0x56, 0x7c, 0x0e, 0x9c, 0xca, 0xff, 0xa9, 0x82, 0xbb, 0x38, 0x4a, 0xa7, 0xf7, 0x47, 0xab, 0xbe, 0x6d, 0x23, 0x0b, 0x8a, 0xed, 0xc2, 0xb9, 0x8f, 0xf1, 0xec, 0x91, 0x44, 0x73, 0x64, 0xba, 0xd5, 0x8f, 0x37, 0x38, 0x0d, 0xd5, 0xf8, 0x73, 0x57, 0xb6, 0xc2, 0x45, 0xdc, 0x25, 0xb2, 0xb6, 0xea, 0xd9, + /* (2^ 94)P */ 0xbf, 0xe9, 0x1a, 0x40, 0x4d, 0xcc, 0xe6, 0x1d, 0x70, 0x1a, 0x65, 0xcc, 0x34, 0x2c, 0x37, 0x2c, 0x2d, 0x6b, 0x6d, 0xe5, 0x2f, 0x19, 0x9e, 0xe4, 0xe1, 0xaa, 0xd4, 0xab, 0x54, 0xf4, 0xa8, 0xe4, 0x69, 0x2d, 0x8e, 0x4d, 0xd7, 0xac, 0xb0, 0x5b, 0xfe, 0xe3, 0x26, 0x07, 0xc3, 0xf8, 0x1b, 0x43, 0xa8, 0x1d, 0x64, 0xa5, 0x25, 0x88, 0xbb, 0x77, + /* (2^ 95)P */ 0x92, 0xcd, 0x6e, 0xa0, 0x79, 0x04, 0x18, 0xf4, 0x11, 0x58, 0x48, 0xb5, 0x3c, 0x7b, 0xd1, 0xcc, 0xd3, 0x14, 0x2c, 0xa0, 0xdd, 0x04, 0x44, 0x11, 0xb3, 0x6d, 0x2f, 0x0d, 0xf5, 0x2a, 0x75, 0x5d, 0x1d, 0xda, 0x86, 0x8d, 0x7d, 0x6b, 0x32, 0x68, 0xb6, 0x6c, 0x64, 0x9e, 0xde, 0x80, 0x88, 0xce, 0x08, 0xbf, 0x0b, 0xe5, 0x8e, 0x4f, 0x1d, 0xfb, + /* (2^ 96)P */ 0xaf, 0xe8, 0x85, 0xbf, 0x7f, 0x37, 0x8d, 0x66, 0x7c, 0xd5, 0xd3, 0x96, 0xa5, 0x81, 0x67, 0x95, 0xff, 0x48, 0xde, 0xde, 0xd7, 0x7a, 0x46, 0x34, 0xb1, 0x13, 0x70, 0x29, 0xed, 0x87, 0x90, 0xb0, 0x40, 0x2c, 0xa6, 0x43, 0x6e, 0xb6, 0xbc, 0x48, 0x8a, 0xc1, 0xae, 0xb8, 0xd4, 0xe2, 0xc0, 0x32, 0xb2, 0xa6, 0x2a, 0x8f, 0xb5, 0x16, 0x9e, 0xc3, + /* (2^ 97)P */ 0xff, 0x4d, 0xd2, 0xd6, 0x74, 0xef, 0x2c, 0x96, 0xc1, 0x11, 0xa8, 0xb8, 0xfe, 0x94, 0x87, 0x3e, 0xa0, 0xfb, 0x57, 0xa3, 0xfc, 0x7a, 0x7e, 0x6a, 0x59, 0x6c, 0x54, 0xbb, 0xbb, 0xa2, 0x25, 0x38, 0x1b, 0xdf, 0x5d, 0x7b, 0x94, 0x14, 0xde, 0x07, 0x6e, 0xd3, 0xab, 0x02, 0x26, 0x74, 0x16, 0x12, 0xdf, 0x2e, 0x2a, 0xa7, 0xb0, 0xe8, 0x29, 0xc0, + /* (2^ 98)P */ 0x6a, 0x38, 0x0b, 0xd3, 0xba, 0x45, 0x23, 0xe0, 0x04, 0x3b, 0x83, 0x39, 0xc5, 0x11, 0xe6, 0xcf, 0x39, 0x0a, 0xb3, 0xb0, 0x3b, 0x27, 0x29, 0x63, 0x1c, 0xf3, 0x00, 0xe6, 0xd2, 0x55, 0x21, 0x1f, 0x84, 0x97, 0x9f, 0x01, 0x49, 0x43, 0x30, 0x5f, 0xe0, 0x1d, 0x24, 0xc4, 0x4e, 0xa0, 0x2b, 0x0b, 0x12, 0x55, 0xc3, 0x27, 0xae, 0x08, 0x83, 0x7c, + /* (2^ 99)P */ 0x5d, 0x1a, 0xb7, 0xa9, 0xf5, 0xfd, 0xec, 0xad, 0xb7, 0x87, 0x02, 0x5f, 0x0d, 0x30, 0x4d, 0xe2, 0x65, 0x87, 0xa4, 0x41, 0x45, 0x1d, 0x67, 0xe0, 0x30, 0x5c, 0x13, 0x87, 0xf6, 0x2e, 0x08, 0xc1, 0xc7, 0x12, 0x45, 0xc8, 0x9b, 0xad, 0xb8, 0xd5, 0x57, 0xbb, 0x5c, 0x48, 0x3a, 0xe1, 0x91, 0x5e, 0xf6, 0x4d, 0x8a, 0x63, 0x75, 0x69, 0x0c, 0x01, + /* (2^100)P */ 0x8f, 0x53, 0x2d, 0xa0, 0x71, 0x3d, 0xfc, 0x45, 0x10, 0x96, 0xcf, 0x56, 0xf9, 0xbb, 0x40, 0x3c, 0x86, 0x52, 0x76, 0xbe, 0x84, 0xf9, 0xa6, 0x9d, 0x3d, 0x27, 0xbe, 0xb4, 0x00, 0x49, 0x94, 0xf5, 0x5d, 0xe1, 0x62, 0x85, 0x66, 0xe5, 0xb8, 0x20, 0x2c, 0x09, 0x7d, 0x9d, 0x3d, 0x6e, 0x74, 0x39, 0xab, 0xad, 0xa0, 0x90, 0x97, 0x5f, 0xbb, 0xa7, + /* (2^101)P */ 0xdb, 0x2d, 0x99, 0x08, 0x16, 0x46, 0x83, 0x7a, 0xa8, 0xea, 0x3d, 0x28, 0x5b, 0x49, 0xfc, 0xb9, 0x6d, 0x00, 0x9e, 0x54, 0x4f, 0x47, 0x64, 0x9b, 0x58, 0x4d, 0x07, 0x0c, 0x6f, 0x29, 0x56, 0x0b, 0x00, 0x14, 0x85, 0x96, 0x41, 0x04, 0xb9, 0x5c, 0xa4, 0xf6, 0x16, 0x73, 0x6a, 0xc7, 0x62, 0x0c, 0x65, 0x2f, 0x93, 0xbf, 0xf7, 0xb9, 0xb7, 0xf1, + /* (2^102)P */ 0xeb, 0x6d, 0xb3, 0x46, 0x32, 0xd2, 0xcb, 0x08, 0x94, 0x14, 0xbf, 0x3f, 0xc5, 0xcb, 0x5f, 0x9f, 0x8a, 0x89, 0x0c, 0x1b, 0x45, 0xad, 0x4c, 0x50, 0xb4, 0xe1, 0xa0, 0x6b, 0x11, 0x92, 0xaf, 0x1f, 0x00, 0xcc, 0xe5, 0x13, 0x7e, 0xe4, 0x2e, 0xa0, 0x57, 0xf3, 0xa7, 0x84, 0x79, 0x7a, 0xc2, 0xb7, 0xb7, 0xfc, 0x5d, 0xa5, 0xa9, 0x64, 0xcc, 0xd8, + /* (2^103)P */ 0xa9, 0xc4, 0x12, 0x8b, 0x34, 0x78, 0x3e, 0x38, 0xfd, 0x3f, 0x87, 0xfa, 0x88, 0x94, 0xd5, 0xd9, 0x7f, 0xeb, 0x58, 0xff, 0xb9, 0x45, 0xdb, 0xa1, 0xed, 0x22, 0x28, 0x1d, 0x00, 0x6d, 0x79, 0x85, 0x7a, 0x75, 0x5d, 0xf0, 0xb1, 0x9e, 0x47, 0x28, 0x8c, 0x62, 0xdf, 0xfb, 0x4c, 0x7b, 0xc5, 0x1a, 0x42, 0x95, 0xef, 0x9a, 0xb7, 0x27, 0x7e, 0xda, + /* (2^104)P */ 0xca, 0xd5, 0xc0, 0x17, 0xa1, 0x66, 0x79, 0x9c, 0x2a, 0xb7, 0x0a, 0xfe, 0x62, 0xe4, 0x26, 0x78, 0x90, 0xa7, 0xcb, 0xb0, 0x4f, 0x6d, 0xf9, 0x8f, 0xf7, 0x7d, 0xac, 0xb8, 0x78, 0x1f, 0x41, 0xea, 0x97, 0x1e, 0x62, 0x97, 0x43, 0x80, 0x58, 0x80, 0xb6, 0x69, 0x7d, 0xee, 0x16, 0xd2, 0xa1, 0x81, 0xd7, 0xb1, 0x27, 0x03, 0x48, 0xda, 0xab, 0xec, + /* (2^105)P */ 0x5b, 0xed, 0x40, 0x8e, 0x8c, 0xc1, 0x66, 0x90, 0x7f, 0x0c, 0xb2, 0xfc, 0xbd, 0x16, 0xac, 0x7d, 0x4c, 0x6a, 0xf9, 0xae, 0xe7, 0x4e, 0x11, 0x12, 0xe9, 0xbe, 0x17, 0x09, 0xc6, 0xc1, 0x5e, 0xb5, 0x7b, 0x50, 0x5c, 0x27, 0xfb, 0x80, 0xab, 0x01, 0xfa, 0x5b, 0x9b, 0x75, 0x16, 0x6e, 0xb2, 0x5c, 0x8c, 0x2f, 0xa5, 0x6a, 0x1a, 0x68, 0xa6, 0x90, + /* (2^106)P */ 0x75, 0xfe, 0xb6, 0x96, 0x96, 0x87, 0x4c, 0x12, 0xa9, 0xd1, 0xd8, 0x03, 0xa3, 0xc1, 0x15, 0x96, 0xe8, 0xa0, 0x75, 0x82, 0xa0, 0x6d, 0xea, 0x54, 0xdc, 0x5f, 0x0d, 0x7e, 0xf6, 0x70, 0xb5, 0xdc, 0x7a, 0xf6, 0xc4, 0xd4, 0x21, 0x49, 0xf5, 0xd4, 0x14, 0x6d, 0x48, 0x1d, 0x7c, 0x99, 0x42, 0xdf, 0x78, 0x6b, 0x9d, 0xb9, 0x30, 0x3c, 0xd0, 0x29, + /* (2^107)P */ 0x85, 0xd6, 0xd8, 0xf3, 0x91, 0x74, 0xdd, 0xbd, 0x72, 0x96, 0x10, 0xe4, 0x76, 0x02, 0x5a, 0x72, 0x67, 0xd3, 0x17, 0x72, 0x14, 0x9a, 0x20, 0x5b, 0x0f, 0x8d, 0xed, 0x6d, 0x4e, 0xe3, 0xd9, 0x82, 0xc2, 0x99, 0xee, 0x39, 0x61, 0x69, 0x8a, 0x24, 0x01, 0x92, 0x15, 0xe7, 0xfc, 0xf9, 0x4d, 0xac, 0xf1, 0x30, 0x49, 0x01, 0x0b, 0x6e, 0x0f, 0x20, + /* (2^108)P */ 0xd8, 0x25, 0x94, 0x5e, 0x43, 0x29, 0xf5, 0xcc, 0xe8, 0xe3, 0x55, 0x41, 0x3c, 0x9f, 0x58, 0x5b, 0x00, 0xeb, 0xc5, 0xdf, 0xcf, 0xfb, 0xfd, 0x6e, 0x92, 0xec, 0x99, 0x30, 0xd6, 0x05, 0xdd, 0x80, 0x7a, 0x5d, 0x6d, 0x16, 0x85, 0xd8, 0x9d, 0x43, 0x65, 0xd8, 0x2c, 0x33, 0x2f, 0x5c, 0x41, 0xea, 0xb7, 0x95, 0x77, 0xf2, 0x9e, 0x59, 0x09, 0xe8, + /* (2^109)P */ 0x00, 0xa0, 0x03, 0x80, 0xcd, 0x60, 0xe5, 0x17, 0xd4, 0x15, 0x99, 0xdd, 0x4f, 0xbf, 0x66, 0xb8, 0xc0, 0xf5, 0xf9, 0xfc, 0x6d, 0x42, 0x18, 0x34, 0x1c, 0x7d, 0x5b, 0xb5, 0x09, 0xd0, 0x99, 0x57, 0x81, 0x0b, 0x62, 0xb3, 0xa2, 0xf9, 0x0b, 0xae, 0x95, 0xb8, 0xc2, 0x3b, 0x0d, 0x5b, 0x00, 0xf1, 0xed, 0xbc, 0x05, 0x9d, 0x61, 0xbc, 0x73, 0x9d, + /* (2^110)P */ 0xd4, 0xdb, 0x29, 0xe5, 0x85, 0xe9, 0xc6, 0x89, 0x2a, 0xa8, 0x54, 0xab, 0xb3, 0x7f, 0x88, 0xc0, 0x4d, 0xe0, 0xd1, 0x74, 0x6e, 0xa3, 0xa7, 0x39, 0xd5, 0xcc, 0xa1, 0x8a, 0xcb, 0x5b, 0x34, 0xad, 0x92, 0xb4, 0xd8, 0xd5, 0x17, 0xf6, 0x77, 0x18, 0x9e, 0xaf, 0x45, 0x3b, 0x03, 0xe2, 0xf8, 0x52, 0x60, 0xdc, 0x15, 0x20, 0x9e, 0xdf, 0xd8, 0x5d, + /* (2^111)P */ 0x02, 0xc1, 0xac, 0x1a, 0x15, 0x8e, 0x6c, 0xf5, 0x1e, 0x1e, 0xba, 0x7e, 0xc2, 0xda, 0x7d, 0x02, 0xda, 0x43, 0xae, 0x04, 0x70, 0x28, 0x54, 0x78, 0x94, 0xf5, 0x4f, 0x07, 0x84, 0x8f, 0xed, 0xaa, 0xc0, 0xb8, 0xcd, 0x7f, 0x7e, 0x33, 0xa3, 0xbe, 0x21, 0x29, 0xc8, 0x56, 0x34, 0xc0, 0x76, 0x87, 0x8f, 0xc7, 0x73, 0x58, 0x90, 0x16, 0xfc, 0xd6, + /* (2^112)P */ 0xb8, 0x3f, 0xe1, 0xdf, 0x3a, 0x91, 0x25, 0x0c, 0xf6, 0x47, 0xa8, 0x89, 0xc4, 0xc6, 0x61, 0xec, 0x86, 0x2c, 0xfd, 0xbe, 0xa4, 0x6f, 0xc2, 0xd4, 0x46, 0x19, 0x70, 0x5d, 0x09, 0x02, 0x86, 0xd3, 0x4b, 0xe9, 0x16, 0x7b, 0xf0, 0x0d, 0x6c, 0xff, 0x91, 0x05, 0xbf, 0x55, 0xb4, 0x00, 0x8d, 0xe5, 0x6d, 0x68, 0x20, 0x90, 0x12, 0xb5, 0x5c, 0x32, + /* (2^113)P */ 0x80, 0x45, 0xc8, 0x51, 0x87, 0xba, 0x1c, 0x5c, 0xcf, 0x5f, 0x4b, 0x3c, 0x9e, 0x3b, 0x36, 0xd2, 0x26, 0xa2, 0x7f, 0xab, 0xb7, 0xbf, 0xda, 0x68, 0x23, 0x8f, 0xc3, 0xa0, 0xfd, 0xad, 0xf1, 0x56, 0x3b, 0xd0, 0x75, 0x2b, 0x44, 0x61, 0xd8, 0xf4, 0xf1, 0x05, 0x49, 0x53, 0x07, 0xee, 0x47, 0xef, 0xc0, 0x7c, 0x9d, 0xe4, 0x15, 0x88, 0xc5, 0x47, + /* (2^114)P */ 0x2d, 0xb5, 0x09, 0x80, 0xb9, 0xd3, 0xd8, 0xfe, 0x4c, 0xd2, 0xa6, 0x6e, 0xd3, 0x75, 0xcf, 0xb0, 0x99, 0xcb, 0x50, 0x8d, 0xe9, 0x67, 0x9b, 0x20, 0xe8, 0x57, 0xd8, 0x14, 0x85, 0x73, 0x6a, 0x74, 0xe0, 0x99, 0xf0, 0x6b, 0x6e, 0x59, 0x30, 0x31, 0x33, 0x96, 0x5f, 0xa1, 0x0c, 0x1b, 0xf4, 0xca, 0x09, 0xe1, 0x9b, 0xb5, 0xcf, 0x6d, 0x0b, 0xeb, + /* (2^115)P */ 0x1a, 0xde, 0x50, 0xa9, 0xac, 0x3e, 0x10, 0x43, 0x4f, 0x82, 0x4f, 0xc0, 0xfe, 0x3f, 0x33, 0xd2, 0x64, 0x86, 0x50, 0xa9, 0x51, 0x76, 0x5e, 0x50, 0x97, 0x6c, 0x73, 0x8d, 0x77, 0xa3, 0x75, 0x03, 0xbc, 0xc9, 0xfb, 0x50, 0xd9, 0x6d, 0x16, 0xad, 0x5d, 0x32, 0x3d, 0xac, 0x44, 0xdf, 0x51, 0xf7, 0x19, 0xd4, 0x0b, 0x57, 0x78, 0x0b, 0x81, 0x4e, + /* (2^116)P */ 0x32, 0x24, 0xf1, 0x6c, 0x55, 0x62, 0x1d, 0xb3, 0x1f, 0xda, 0xfa, 0x6a, 0x8f, 0x98, 0x01, 0x16, 0xde, 0x44, 0x50, 0x0d, 0x2e, 0x6c, 0x0b, 0xa2, 0xd3, 0x74, 0x0e, 0xa9, 0xbf, 0x8d, 0xa9, 0xc8, 0xc8, 0x2f, 0x62, 0xc1, 0x35, 0x5e, 0xfd, 0x3a, 0xb3, 0x83, 0x2d, 0xee, 0x4e, 0xfd, 0x5c, 0x5e, 0xad, 0x85, 0xa5, 0x10, 0xb5, 0x4f, 0x34, 0xa7, + /* (2^117)P */ 0xd1, 0x58, 0x6f, 0xe6, 0x54, 0x2c, 0xc2, 0xcd, 0xcf, 0x83, 0xdc, 0x88, 0x0c, 0xb9, 0xb4, 0x62, 0x18, 0x89, 0x65, 0x28, 0xe9, 0x72, 0x4b, 0x65, 0xcf, 0xd6, 0x90, 0x88, 0xd7, 0x76, 0x17, 0x4f, 0x74, 0x64, 0x1e, 0xcb, 0xd3, 0xf5, 0x4b, 0xaa, 0x2e, 0x4d, 0x2d, 0x7c, 0x13, 0x1f, 0xfd, 0xd9, 0x60, 0x83, 0x7e, 0xda, 0x64, 0x1c, 0xdc, 0x9f, + /* (2^118)P */ 0xad, 0xef, 0xac, 0x1b, 0xc1, 0x30, 0x5a, 0x15, 0xc9, 0x1f, 0xac, 0xf1, 0xca, 0x44, 0x95, 0x95, 0xea, 0xf2, 0x22, 0xe7, 0x8d, 0x25, 0xf0, 0xff, 0xd8, 0x71, 0xf7, 0xf8, 0x8f, 0x8f, 0xcd, 0xf4, 0x1e, 0xfe, 0x6c, 0x68, 0x04, 0xb8, 0x78, 0xa1, 0x5f, 0xa6, 0x5d, 0x5e, 0xf9, 0x8d, 0xea, 0x80, 0xcb, 0xf3, 0x17, 0xa6, 0x03, 0xc9, 0x38, 0xd5, + /* (2^119)P */ 0x79, 0x14, 0x31, 0xc3, 0x38, 0xe5, 0xaa, 0xbf, 0x17, 0xa3, 0x04, 0x4e, 0x80, 0x59, 0x9c, 0x9f, 0x19, 0x39, 0xe4, 0x2d, 0x23, 0x54, 0x4a, 0x7f, 0x3e, 0xf3, 0xd9, 0xc7, 0xba, 0x6c, 0x8f, 0x6b, 0xfa, 0x34, 0xb5, 0x23, 0x17, 0x1d, 0xff, 0x1d, 0xea, 0x1f, 0xd7, 0xba, 0x61, 0xb2, 0xe0, 0x38, 0x6a, 0xe9, 0xcf, 0x48, 0x5d, 0x6a, 0x10, 0x9c, + /* (2^120)P */ 0xc8, 0xbb, 0x13, 0x1c, 0x3f, 0x3c, 0x34, 0xfd, 0xac, 0x37, 0x52, 0x44, 0x25, 0xa8, 0xde, 0x1d, 0x63, 0xf4, 0x81, 0x9a, 0xbe, 0x0b, 0x74, 0x2e, 0xc8, 0x51, 0x16, 0xd3, 0xac, 0x4a, 0xaf, 0xe2, 0x5f, 0x3a, 0x89, 0x32, 0xd1, 0x9b, 0x7c, 0x90, 0x0d, 0xac, 0xdc, 0x8b, 0x73, 0x45, 0x45, 0x97, 0xb1, 0x90, 0x2c, 0x1b, 0x31, 0xca, 0xb1, 0x94, + /* (2^121)P */ 0x07, 0x28, 0xdd, 0x10, 0x14, 0xa5, 0x95, 0x7e, 0xf3, 0xe4, 0xd4, 0x14, 0xb4, 0x7e, 0x76, 0xdb, 0x42, 0xd6, 0x94, 0x3e, 0xeb, 0x44, 0x64, 0x88, 0x0d, 0xec, 0xc1, 0x21, 0xf0, 0x79, 0xe0, 0x83, 0x67, 0x55, 0x53, 0xc2, 0xf6, 0xc5, 0xc5, 0x89, 0x39, 0xe8, 0x42, 0xd0, 0x17, 0xbd, 0xff, 0x35, 0x59, 0x0e, 0xc3, 0x06, 0x86, 0xd4, 0x64, 0xcf, + /* (2^122)P */ 0x91, 0xa8, 0xdb, 0x57, 0x9b, 0xe2, 0x96, 0x31, 0x10, 0x6e, 0xd7, 0x9a, 0x97, 0xb3, 0xab, 0xb5, 0x15, 0x66, 0xbe, 0xcc, 0x6d, 0x9a, 0xac, 0x06, 0xb3, 0x0d, 0xaa, 0x4b, 0x9c, 0x96, 0x79, 0x6c, 0x34, 0xee, 0x9e, 0x53, 0x4d, 0x6e, 0xbd, 0x88, 0x02, 0xbf, 0x50, 0x54, 0x12, 0x5d, 0x01, 0x02, 0x46, 0xc6, 0x74, 0x02, 0x8c, 0x24, 0xae, 0xb1, + /* (2^123)P */ 0xf5, 0x22, 0xea, 0xac, 0x7d, 0x9c, 0x33, 0x8a, 0xa5, 0x36, 0x79, 0x6a, 0x4f, 0xa4, 0xdc, 0xa5, 0x73, 0x64, 0xc4, 0x6f, 0x43, 0x02, 0x3b, 0x94, 0x66, 0xd2, 0x4b, 0x4f, 0xf6, 0x45, 0x33, 0x5d, 0x10, 0x33, 0x18, 0x1e, 0xa3, 0xfc, 0xf7, 0xd2, 0xb8, 0xc8, 0xa7, 0xe0, 0x76, 0x8a, 0xcd, 0xff, 0x4f, 0x99, 0x34, 0x47, 0x84, 0x91, 0x96, 0x9f, + /* (2^124)P */ 0x8a, 0x48, 0x3b, 0x48, 0x4a, 0xbc, 0xac, 0xe2, 0x80, 0xd6, 0xd2, 0x35, 0xde, 0xd0, 0x56, 0x42, 0x33, 0xb3, 0x56, 0x5a, 0xcd, 0xb8, 0x3d, 0xb5, 0x25, 0xc1, 0xed, 0xff, 0x87, 0x0b, 0x79, 0xff, 0xf2, 0x62, 0xe1, 0x76, 0xc6, 0xa2, 0x0f, 0xa8, 0x9b, 0x0d, 0xcc, 0x3f, 0x3d, 0x35, 0x27, 0x8d, 0x0b, 0x74, 0xb0, 0xc3, 0x78, 0x8c, 0xcc, 0xc8, + /* (2^125)P */ 0xfc, 0x9a, 0x0c, 0xa8, 0x49, 0x42, 0xb8, 0xdf, 0xcf, 0xb3, 0x19, 0xa6, 0x64, 0x57, 0xfe, 0xe8, 0xf8, 0xa6, 0x4b, 0x86, 0xa1, 0xd5, 0x83, 0x7f, 0x14, 0x99, 0x18, 0x0c, 0x7d, 0x5b, 0xf7, 0x3d, 0xf9, 0x4b, 0x79, 0xb1, 0x86, 0x30, 0xb4, 0x5e, 0x6a, 0xe8, 0x9d, 0xfa, 0x8a, 0x41, 0xc4, 0x30, 0xfc, 0x56, 0x74, 0x14, 0x42, 0xc8, 0x96, 0x0e, + /* (2^126)P */ 0xdf, 0x66, 0xec, 0xbc, 0x44, 0xdb, 0x19, 0xce, 0xd4, 0xb5, 0x49, 0x40, 0x07, 0x49, 0xe0, 0x3a, 0x61, 0x10, 0xfb, 0x7d, 0xba, 0xb1, 0xe0, 0x28, 0x5b, 0x99, 0x59, 0x96, 0xa2, 0xee, 0xe0, 0x23, 0x37, 0x39, 0x1f, 0xe6, 0x57, 0x9f, 0xf8, 0xf8, 0xdc, 0x74, 0xf6, 0x8f, 0x4f, 0x5e, 0x51, 0xa4, 0x12, 0xac, 0xbe, 0xe4, 0xf3, 0xd1, 0xf0, 0x24, + /* (2^127)P */ 0x1e, 0x3e, 0x9a, 0x5f, 0xdf, 0x9f, 0xd6, 0x4e, 0x8a, 0x28, 0xc3, 0xcd, 0x96, 0x9d, 0x57, 0xc7, 0x61, 0x81, 0x90, 0xff, 0xae, 0xb1, 0x4f, 0xc2, 0x96, 0x8b, 0x1a, 0x18, 0xf4, 0x50, 0xcb, 0x31, 0xe1, 0x57, 0xf4, 0x90, 0xa8, 0xea, 0xac, 0xe7, 0x61, 0x98, 0xb6, 0x15, 0xc1, 0x7b, 0x29, 0xa4, 0xc3, 0x18, 0xef, 0xb9, 0xd8, 0xdf, 0xf6, 0xac, + /* (2^128)P */ 0xca, 0xa8, 0x6c, 0xf1, 0xb4, 0xca, 0xfe, 0x31, 0xee, 0x48, 0x38, 0x8b, 0x0e, 0xbb, 0x7a, 0x30, 0xaa, 0xf9, 0xee, 0x27, 0x53, 0x24, 0xdc, 0x2e, 0x15, 0xa6, 0x48, 0x8f, 0xa0, 0x7e, 0xf1, 0xdc, 0x93, 0x87, 0x39, 0xeb, 0x7f, 0x38, 0x92, 0x92, 0x4c, 0x29, 0xe9, 0x57, 0xd8, 0x59, 0xfc, 0xe9, 0x9c, 0x44, 0xc0, 0x65, 0xcf, 0xac, 0x4b, 0xdc, + /* (2^129)P */ 0xa3, 0xd0, 0x37, 0x8f, 0x86, 0x2f, 0xc6, 0x47, 0x55, 0x46, 0x65, 0x26, 0x4b, 0x91, 0xe2, 0x18, 0x5c, 0x4f, 0x23, 0xc1, 0x37, 0x29, 0xb9, 0xc1, 0x27, 0xc5, 0x3c, 0xbf, 0x7e, 0x23, 0xdb, 0x73, 0x99, 0xbd, 0x1b, 0xb2, 0x31, 0x68, 0x3a, 0xad, 0xb7, 0xb0, 0x10, 0xc5, 0xe5, 0x11, 0x51, 0xba, 0xa7, 0x60, 0x66, 0x54, 0xf0, 0x08, 0xd7, 0x69, + /* (2^130)P */ 0x89, 0x41, 0x79, 0xcc, 0xeb, 0x0a, 0xf5, 0x4b, 0xa3, 0x4c, 0xce, 0x52, 0xb0, 0xa7, 0xe4, 0x41, 0x75, 0x7d, 0x04, 0xbb, 0x09, 0x4c, 0x50, 0x9f, 0xdf, 0xea, 0x74, 0x61, 0x02, 0xad, 0xb4, 0x9d, 0xb7, 0x05, 0xb9, 0xea, 0xeb, 0x91, 0x35, 0xe7, 0x49, 0xea, 0xd3, 0x4f, 0x3c, 0x60, 0x21, 0x7a, 0xde, 0xc7, 0xe2, 0x5a, 0xee, 0x8e, 0x93, 0xc7, + /* (2^131)P */ 0x00, 0xe8, 0xed, 0xd0, 0xb3, 0x0d, 0xaf, 0xb2, 0xde, 0x2c, 0xf6, 0x00, 0xe2, 0xea, 0x6d, 0xf8, 0x0e, 0xd9, 0x67, 0x59, 0xa9, 0x50, 0xbb, 0x17, 0x8f, 0xff, 0xb1, 0x9f, 0x17, 0xb6, 0xf2, 0xb5, 0xba, 0x80, 0xf7, 0x0f, 0xba, 0xd5, 0x09, 0x43, 0xaa, 0x4e, 0x3a, 0x67, 0x6a, 0x89, 0x9b, 0x18, 0x65, 0x35, 0xf8, 0x3a, 0x49, 0x91, 0x30, 0x51, + /* (2^132)P */ 0x8d, 0x25, 0xe9, 0x0e, 0x7d, 0x50, 0x76, 0xe4, 0x58, 0x7e, 0xb9, 0x33, 0xe6, 0x65, 0x90, 0xc2, 0x50, 0x9d, 0x50, 0x2e, 0x11, 0xad, 0xd5, 0x43, 0x52, 0x32, 0x41, 0x4f, 0x7b, 0xb6, 0xa0, 0xec, 0x81, 0x75, 0x36, 0x7c, 0x77, 0x85, 0x59, 0x70, 0xe4, 0xf9, 0xef, 0x66, 0x8d, 0x35, 0xc8, 0x2a, 0x6e, 0x5b, 0xc6, 0x0d, 0x0b, 0x29, 0x60, 0x68, + /* (2^133)P */ 0xf8, 0xce, 0xb0, 0x3a, 0x56, 0x7d, 0x51, 0x9a, 0x25, 0x73, 0xea, 0xdd, 0xe4, 0xe0, 0x0e, 0xf0, 0x07, 0xc0, 0x31, 0x00, 0x73, 0x35, 0xd0, 0x39, 0xc4, 0x9b, 0xb7, 0x95, 0xe0, 0x62, 0x70, 0x36, 0x0b, 0xcb, 0xa0, 0x42, 0xde, 0x51, 0xcf, 0x41, 0xe0, 0xb8, 0xb4, 0xc0, 0xe5, 0x46, 0x99, 0x9f, 0x02, 0x7f, 0x14, 0x8c, 0xc1, 0x4e, 0xef, 0xe8, + /* (2^134)P */ 0x10, 0x01, 0x57, 0x0a, 0xbe, 0x8b, 0x18, 0xc8, 0xca, 0x00, 0x28, 0x77, 0x4a, 0x9a, 0xc7, 0x55, 0x2a, 0xcc, 0x0c, 0x7b, 0xb9, 0xe9, 0xc8, 0x97, 0x7c, 0x02, 0xe3, 0x09, 0x2f, 0x62, 0x30, 0xb8, 0x40, 0x09, 0x65, 0xe9, 0x55, 0x63, 0xb5, 0x07, 0xca, 0x9f, 0x00, 0xdf, 0x9d, 0x5c, 0xc7, 0xee, 0x57, 0xa5, 0x90, 0x15, 0x1e, 0x22, 0xa0, 0x12, + /* (2^135)P */ 0x71, 0x2d, 0xc9, 0xef, 0x27, 0xb9, 0xd8, 0x12, 0x43, 0x6b, 0xa8, 0xce, 0x3b, 0x6d, 0x6e, 0x91, 0x43, 0x23, 0xbc, 0x32, 0xb3, 0xbf, 0xe1, 0xc7, 0x39, 0xcf, 0x7c, 0x42, 0x4c, 0xb1, 0x30, 0xe2, 0xdd, 0x69, 0x06, 0xe5, 0xea, 0xf0, 0x2a, 0x16, 0x50, 0x71, 0xca, 0x92, 0xdf, 0xc1, 0xcc, 0xec, 0xe6, 0x54, 0x07, 0xf3, 0x18, 0x8d, 0xd8, 0x29, + /* (2^136)P */ 0x98, 0x51, 0x48, 0x8f, 0xfa, 0x2e, 0x5e, 0x67, 0xb0, 0xc6, 0x17, 0x12, 0xb6, 0x7d, 0xc9, 0xad, 0x81, 0x11, 0xad, 0x0c, 0x1c, 0x2d, 0x45, 0xdf, 0xac, 0x66, 0xbd, 0x08, 0x6f, 0x7c, 0xc7, 0x06, 0x6e, 0x19, 0x08, 0x39, 0x64, 0xd7, 0xe4, 0xd1, 0x11, 0x5f, 0x1c, 0xf4, 0x67, 0xc3, 0x88, 0x6a, 0xe6, 0x07, 0xa3, 0x83, 0xd7, 0xfd, 0x2a, 0xf9, + /* (2^137)P */ 0x87, 0xed, 0xeb, 0xd9, 0xdf, 0xff, 0x43, 0x8b, 0xaa, 0x20, 0x58, 0xb0, 0xb4, 0x6b, 0x14, 0xb8, 0x02, 0xc5, 0x40, 0x20, 0x22, 0xbb, 0xf7, 0xb4, 0xf3, 0x05, 0x1e, 0x4d, 0x94, 0xff, 0xe3, 0xc5, 0x22, 0x82, 0xfe, 0xaf, 0x90, 0x42, 0x98, 0x6b, 0x76, 0x8b, 0x3e, 0x89, 0x3f, 0x42, 0x2a, 0xa7, 0x26, 0x00, 0xda, 0x5c, 0xa2, 0x2b, 0xec, 0xdd, + /* (2^138)P */ 0x5c, 0x21, 0x16, 0x0d, 0x46, 0xb8, 0xd0, 0xa7, 0x88, 0xe7, 0x25, 0xcb, 0x3e, 0x50, 0x73, 0x61, 0xe7, 0xaf, 0x5a, 0x3f, 0x47, 0x8b, 0x3d, 0x97, 0x79, 0x2c, 0xe6, 0x6d, 0x95, 0x74, 0x65, 0x70, 0x36, 0xfd, 0xd1, 0x9e, 0x13, 0x18, 0x63, 0xb1, 0x2d, 0x0b, 0xb5, 0x36, 0x3e, 0xe7, 0x35, 0x42, 0x3b, 0xe6, 0x1f, 0x4d, 0x9d, 0x59, 0xa2, 0x43, + /* (2^139)P */ 0x8c, 0x0c, 0x7c, 0x24, 0x9e, 0xe0, 0xf8, 0x05, 0x1c, 0x9e, 0x1f, 0x31, 0xc0, 0x70, 0xb3, 0xfb, 0x4e, 0xf8, 0x0a, 0x57, 0xb7, 0x49, 0xb5, 0x73, 0xa1, 0x5f, 0x9b, 0x6a, 0x07, 0x6c, 0x87, 0x71, 0x87, 0xd4, 0xbe, 0x98, 0x1e, 0x98, 0xee, 0x52, 0xc1, 0x7b, 0x95, 0x0f, 0x28, 0x32, 0x36, 0x28, 0xd0, 0x3a, 0x0f, 0x7d, 0x2a, 0xa9, 0x62, 0xb9, + /* (2^140)P */ 0x97, 0xe6, 0x18, 0x77, 0xf9, 0x34, 0xac, 0xbc, 0xe0, 0x62, 0x9f, 0x42, 0xde, 0xbd, 0x2f, 0xf7, 0x1f, 0xb7, 0x14, 0x52, 0x8a, 0x79, 0xb2, 0x3f, 0xd2, 0x95, 0x71, 0x01, 0xe8, 0xaf, 0x8c, 0xa4, 0xa4, 0xa7, 0x27, 0xf3, 0x5c, 0xdf, 0x3e, 0x57, 0x7a, 0xf1, 0x76, 0x49, 0xe6, 0x42, 0x3f, 0x8f, 0x1e, 0x63, 0x4a, 0x65, 0xb5, 0x41, 0xf5, 0x02, + /* (2^141)P */ 0x72, 0x85, 0xc5, 0x0b, 0xe1, 0x47, 0x64, 0x02, 0xc5, 0x4d, 0x81, 0x69, 0xb2, 0xcf, 0x0f, 0x6c, 0xd4, 0x6d, 0xd0, 0xc7, 0xb4, 0x1c, 0xd0, 0x32, 0x59, 0x89, 0xe2, 0xe0, 0x96, 0x8b, 0x12, 0x98, 0xbf, 0x63, 0x7a, 0x4c, 0x76, 0x7e, 0x58, 0x17, 0x8f, 0x5b, 0x0a, 0x59, 0x65, 0x75, 0xbc, 0x61, 0x1f, 0xbe, 0xc5, 0x6e, 0x0a, 0x57, 0x52, 0x70, + /* (2^142)P */ 0x92, 0x1c, 0x77, 0xbb, 0x62, 0x02, 0x6c, 0x25, 0x9c, 0x66, 0x07, 0x83, 0xab, 0xcc, 0x80, 0x5d, 0xd2, 0x76, 0x0c, 0xa4, 0xc5, 0xb4, 0x8a, 0x68, 0x23, 0x31, 0x32, 0x29, 0x8a, 0x47, 0x92, 0x12, 0x80, 0xb3, 0xfa, 0x18, 0xe4, 0x8d, 0xc0, 0x4d, 0xfe, 0x97, 0x5f, 0x72, 0x41, 0xb5, 0x5c, 0x7a, 0xbd, 0xf0, 0xcf, 0x5e, 0x97, 0xaa, 0x64, 0x32, + /* (2^143)P */ 0x35, 0x3f, 0x75, 0xc1, 0x7a, 0x75, 0x7e, 0xa9, 0xc6, 0x0b, 0x4e, 0x32, 0x62, 0xec, 0xe3, 0x5c, 0xfb, 0x01, 0x43, 0xb6, 0xd4, 0x5b, 0x75, 0xd2, 0xee, 0x7f, 0x5d, 0x23, 0x2b, 0xb3, 0x54, 0x34, 0x4c, 0xd3, 0xb4, 0x32, 0x84, 0x81, 0xb5, 0x09, 0x76, 0x19, 0xda, 0x58, 0xda, 0x7c, 0xdb, 0x2e, 0xdd, 0x4c, 0x8e, 0xdd, 0x5d, 0x89, 0x10, 0x10, + /* (2^144)P */ 0x57, 0x25, 0x6a, 0x08, 0x37, 0x92, 0xa8, 0xdf, 0x24, 0xef, 0x8f, 0x33, 0x34, 0x52, 0xa4, 0x4c, 0xf0, 0x77, 0x9f, 0x69, 0x77, 0xd5, 0x8f, 0xd2, 0x9a, 0xb3, 0xb6, 0x1d, 0x2d, 0xa6, 0xf7, 0x1f, 0xda, 0xd7, 0xcb, 0x75, 0x11, 0xc3, 0x6b, 0xc0, 0x38, 0xb1, 0xd5, 0x2d, 0x96, 0x84, 0x16, 0xfa, 0x26, 0xb9, 0xcc, 0x3f, 0x16, 0x47, 0x23, 0x74, + /* (2^145)P */ 0x9b, 0x61, 0x2a, 0x1c, 0xdd, 0x39, 0xa5, 0xfa, 0x1c, 0x7d, 0x63, 0x50, 0xca, 0xe6, 0x9d, 0xfa, 0xb7, 0xc4, 0x4c, 0x6a, 0x97, 0x5f, 0x36, 0x4e, 0x47, 0xdd, 0x17, 0xf7, 0xf9, 0x19, 0xce, 0x75, 0x17, 0xad, 0xce, 0x2a, 0xf3, 0xfe, 0x27, 0x8f, 0x3e, 0x48, 0xc0, 0x60, 0x87, 0x24, 0x19, 0xae, 0x59, 0xe4, 0x5a, 0x00, 0x2a, 0xba, 0xa2, 0x1f, + /* (2^146)P */ 0x26, 0x88, 0x42, 0x60, 0x9f, 0x6e, 0x2c, 0x7c, 0x39, 0x0f, 0x47, 0x6a, 0x0e, 0x02, 0xbb, 0x4b, 0x34, 0x29, 0x55, 0x18, 0x36, 0xcf, 0x3b, 0x47, 0xf1, 0x2e, 0xfc, 0x6e, 0x94, 0xff, 0xe8, 0x6b, 0x06, 0xd2, 0xba, 0x77, 0x5e, 0x60, 0xd7, 0x19, 0xef, 0x02, 0x9d, 0x3a, 0xc2, 0xb7, 0xa9, 0xd8, 0x57, 0xee, 0x7e, 0x2b, 0xf2, 0x6d, 0x28, 0xda, + /* (2^147)P */ 0xdf, 0xd9, 0x92, 0x11, 0x98, 0x23, 0xe2, 0x45, 0x2f, 0x74, 0x70, 0xee, 0x0e, 0x55, 0x65, 0x79, 0x86, 0x38, 0x17, 0x92, 0x85, 0x87, 0x99, 0x50, 0xd9, 0x7c, 0xdb, 0xa1, 0x10, 0xec, 0x30, 0xb7, 0x40, 0xa3, 0x23, 0x9b, 0x0e, 0x27, 0x49, 0x29, 0x03, 0x94, 0xff, 0x53, 0xdc, 0xd7, 0xed, 0x49, 0xa9, 0x5a, 0x3b, 0xee, 0xd7, 0xc7, 0x65, 0xaf, + /* (2^148)P */ 0xa0, 0xbd, 0xbe, 0x03, 0xee, 0x0c, 0xbe, 0x32, 0x00, 0x7b, 0x52, 0xcb, 0x92, 0x29, 0xbf, 0xa0, 0xc6, 0xd9, 0xd2, 0xd6, 0x15, 0xe8, 0x3a, 0x75, 0x61, 0x65, 0x56, 0xae, 0xad, 0x3c, 0x2a, 0x64, 0x14, 0x3f, 0x8e, 0xc1, 0x2d, 0x0c, 0x8d, 0x20, 0xdb, 0x58, 0x4b, 0xe5, 0x40, 0x15, 0x4b, 0xdc, 0xa8, 0xbd, 0xef, 0x08, 0xa7, 0xd1, 0xf4, 0xb0, + /* (2^149)P */ 0xa9, 0x0f, 0x05, 0x94, 0x66, 0xac, 0x1f, 0x65, 0x3f, 0xe1, 0xb8, 0xe1, 0x34, 0x5e, 0x1d, 0x8f, 0xe3, 0x93, 0x03, 0x15, 0xff, 0xb6, 0x65, 0xb6, 0x6e, 0xc0, 0x2f, 0xd4, 0x2e, 0xb9, 0x2c, 0x13, 0x3c, 0x99, 0x1c, 0xb5, 0x87, 0xba, 0x79, 0xcb, 0xf0, 0x18, 0x06, 0x86, 0x04, 0x14, 0x25, 0x09, 0xcd, 0x1c, 0x14, 0xda, 0x35, 0xd0, 0x38, 0x3b, + /* (2^150)P */ 0x1b, 0x04, 0xa3, 0x27, 0xb4, 0xd3, 0x37, 0x48, 0x1e, 0x8f, 0x69, 0xd3, 0x5a, 0x2f, 0x20, 0x02, 0x36, 0xbe, 0x06, 0x7b, 0x6b, 0x6c, 0x12, 0x5b, 0x80, 0x74, 0x44, 0xe6, 0xf8, 0xf5, 0x95, 0x59, 0x29, 0xab, 0x51, 0x47, 0x83, 0x28, 0xe0, 0xad, 0xde, 0xaa, 0xd3, 0xb1, 0x1a, 0xcb, 0xa3, 0xcd, 0x8b, 0x6a, 0xb1, 0xa7, 0x0a, 0xd1, 0xf9, 0xbe, + /* (2^151)P */ 0xce, 0x2f, 0x85, 0xca, 0x74, 0x6d, 0x49, 0xb8, 0xce, 0x80, 0x44, 0xe0, 0xda, 0x5b, 0xcf, 0x2f, 0x79, 0x74, 0xfe, 0xb4, 0x2c, 0x99, 0x20, 0x6e, 0x09, 0x04, 0xfb, 0x6d, 0x57, 0x5b, 0x95, 0x0c, 0x45, 0xda, 0x4f, 0x7f, 0x63, 0xcc, 0x85, 0x5a, 0x67, 0x50, 0x68, 0x71, 0xb4, 0x67, 0xb1, 0x2e, 0xc1, 0x1c, 0xdc, 0xff, 0x2a, 0x7c, 0x10, 0x5e, + /* (2^152)P */ 0xa6, 0xde, 0xf3, 0xd4, 0x22, 0x30, 0x24, 0x9e, 0x0b, 0x30, 0x54, 0x59, 0x7e, 0xa2, 0xeb, 0x89, 0x54, 0x65, 0x3e, 0x40, 0xd1, 0xde, 0xe6, 0xee, 0x4d, 0xbf, 0x5e, 0x40, 0x1d, 0xee, 0x4f, 0x68, 0xd9, 0xa7, 0x2f, 0xb3, 0x64, 0xb3, 0xf5, 0xc8, 0xd3, 0xaa, 0x70, 0x70, 0x3d, 0xef, 0xd3, 0x95, 0x54, 0xdb, 0x3e, 0x94, 0x95, 0x92, 0x1f, 0x45, + /* (2^153)P */ 0x22, 0x80, 0x1d, 0x9d, 0x96, 0xa5, 0x78, 0x6f, 0xe0, 0x1e, 0x1b, 0x66, 0x42, 0xc8, 0xae, 0x9e, 0x46, 0x45, 0x08, 0x41, 0xdf, 0x80, 0xae, 0x6f, 0xdb, 0x15, 0x5a, 0x21, 0x31, 0x7a, 0xd0, 0xf2, 0x54, 0x15, 0x88, 0xd3, 0x0f, 0x7f, 0x14, 0x5a, 0x14, 0x97, 0xab, 0xf4, 0x58, 0x6a, 0x9f, 0xea, 0x74, 0xe5, 0x6b, 0x90, 0x59, 0x2b, 0x48, 0xd9, + /* (2^154)P */ 0x12, 0x24, 0x04, 0xf5, 0x50, 0xc2, 0x8c, 0xb0, 0x7c, 0x46, 0x98, 0xd5, 0x24, 0xad, 0xf6, 0x72, 0xdc, 0x82, 0x1a, 0x60, 0xc1, 0xeb, 0x48, 0xef, 0x7f, 0x6e, 0xe6, 0xcc, 0xdb, 0x7b, 0xae, 0xbe, 0x5e, 0x1e, 0x5c, 0xe6, 0x0a, 0x70, 0xdf, 0xa4, 0xa3, 0x85, 0x1b, 0x1b, 0x7f, 0x72, 0xb9, 0x96, 0x6f, 0xdc, 0x03, 0x76, 0x66, 0xfb, 0xa0, 0x33, + /* (2^155)P */ 0x37, 0x40, 0xbb, 0xbc, 0x68, 0x58, 0x86, 0xca, 0xbb, 0xa5, 0x24, 0x76, 0x3d, 0x48, 0xd1, 0xad, 0xb4, 0xa8, 0xcf, 0xc3, 0xb6, 0xa8, 0xba, 0x1a, 0x3a, 0xbe, 0x33, 0x75, 0x04, 0x5c, 0x13, 0x8c, 0x0d, 0x70, 0x8d, 0xa6, 0x4e, 0x2a, 0xeb, 0x17, 0x3c, 0x22, 0xdd, 0x3e, 0x96, 0x40, 0x11, 0x9e, 0x4e, 0xae, 0x3d, 0xf8, 0x91, 0xd7, 0x50, 0xc8, + /* (2^156)P */ 0xd8, 0xca, 0xde, 0x19, 0xcf, 0x00, 0xe4, 0x73, 0x18, 0x7f, 0x9b, 0x9f, 0xf4, 0x5b, 0x49, 0x49, 0x99, 0xdc, 0xa4, 0x46, 0x21, 0xb5, 0xd7, 0x3e, 0xb7, 0x47, 0x1b, 0xa9, 0x9f, 0x4c, 0x69, 0x7d, 0xec, 0x33, 0xd6, 0x1c, 0x51, 0x7f, 0x47, 0x74, 0x7a, 0x6c, 0xf3, 0xd2, 0x2e, 0xbf, 0xdf, 0x6c, 0x9e, 0x77, 0x3b, 0x34, 0xf6, 0x73, 0x80, 0xed, + /* (2^157)P */ 0x16, 0xfb, 0x16, 0xc3, 0xc2, 0x83, 0xe4, 0xf4, 0x03, 0x7f, 0x52, 0xb0, 0x67, 0x51, 0x7b, 0x24, 0x5a, 0x51, 0xd3, 0xb6, 0x4e, 0x59, 0x76, 0xcd, 0x08, 0x7b, 0x1d, 0x7a, 0x9c, 0x65, 0xae, 0xce, 0xaa, 0xd2, 0x1c, 0x85, 0x66, 0x68, 0x06, 0x15, 0xa8, 0x06, 0xe6, 0x16, 0x37, 0xf4, 0x49, 0x9e, 0x0f, 0x50, 0x37, 0xb1, 0xb2, 0x93, 0x70, 0x43, + /* (2^158)P */ 0x18, 0x3a, 0x16, 0xe5, 0x8d, 0xc8, 0x35, 0xd6, 0x7b, 0x09, 0xec, 0x61, 0x5f, 0x5c, 0x2a, 0x19, 0x96, 0x2e, 0xc3, 0xfd, 0xab, 0xe6, 0x23, 0xae, 0xab, 0xc5, 0xcb, 0xb9, 0x7b, 0x2d, 0x34, 0x51, 0xb9, 0x41, 0x9e, 0x7d, 0xca, 0xda, 0x25, 0x45, 0x14, 0xb0, 0xc7, 0x4d, 0x26, 0x2b, 0xfe, 0x43, 0xb0, 0x21, 0x5e, 0xfa, 0xdc, 0x7c, 0xf9, 0x5a, + /* (2^159)P */ 0x94, 0xad, 0x42, 0x17, 0xf5, 0xcd, 0x1c, 0x0d, 0xf6, 0x41, 0xd2, 0x55, 0xbb, 0x50, 0xf1, 0xc6, 0xbc, 0xa6, 0xc5, 0x3a, 0xfd, 0x9b, 0x75, 0x3e, 0xf6, 0x1a, 0xa7, 0xb2, 0x6e, 0x64, 0x12, 0xdc, 0x3c, 0xe5, 0xf6, 0xfc, 0x3b, 0xfa, 0x43, 0x81, 0xd4, 0xa5, 0xee, 0xf5, 0x9c, 0x47, 0x2f, 0xd0, 0x9c, 0xde, 0xa1, 0x48, 0x91, 0x9a, 0x34, 0xc1, + /* (2^160)P */ 0x37, 0x1b, 0xb3, 0x88, 0xc9, 0x98, 0x4e, 0xfb, 0x84, 0x4f, 0x2b, 0x0a, 0xb6, 0x8f, 0x35, 0x15, 0xcd, 0x61, 0x7a, 0x5f, 0x5c, 0xa0, 0xca, 0x23, 0xa0, 0x93, 0x1f, 0xcc, 0x3c, 0x39, 0x3a, 0x24, 0xa7, 0x49, 0xad, 0x8d, 0x59, 0xcc, 0x94, 0x5a, 0x16, 0xf5, 0x70, 0xe8, 0x52, 0x1e, 0xee, 0x20, 0x30, 0x17, 0x7e, 0xf0, 0x4c, 0x93, 0x06, 0x5a, + /* (2^161)P */ 0x81, 0xba, 0x3b, 0xd7, 0x3e, 0xb4, 0x32, 0x3a, 0x22, 0x39, 0x2a, 0xfc, 0x19, 0xd9, 0xd2, 0xf6, 0xc5, 0x79, 0x6c, 0x0e, 0xde, 0xda, 0x01, 0xff, 0x52, 0xfb, 0xb6, 0x95, 0x4e, 0x7a, 0x10, 0xb8, 0x06, 0x86, 0x3c, 0xcd, 0x56, 0xd6, 0x15, 0xbf, 0x6e, 0x3e, 0x4f, 0x35, 0x5e, 0xca, 0xbc, 0xa5, 0x95, 0xa2, 0xdf, 0x2d, 0x1d, 0xaf, 0x59, 0xf9, + /* (2^162)P */ 0x69, 0xe5, 0xe2, 0xfa, 0xc9, 0x7f, 0xdd, 0x09, 0xf5, 0x6b, 0x4e, 0x2e, 0xbe, 0xb4, 0xbf, 0x3e, 0xb2, 0xf2, 0x81, 0x30, 0xe1, 0x07, 0xa8, 0x0d, 0x2b, 0xd2, 0x5a, 0x55, 0xbe, 0x4b, 0x86, 0x5d, 0xb0, 0x5e, 0x7c, 0x8f, 0xc1, 0x3c, 0x81, 0x4c, 0xf7, 0x6d, 0x7d, 0xe6, 0x4f, 0x8a, 0x85, 0xc2, 0x2f, 0x28, 0xef, 0x8c, 0x69, 0xc2, 0xc2, 0x1a, + /* (2^163)P */ 0xd9, 0xe4, 0x0e, 0x1e, 0xc2, 0xf7, 0x2f, 0x9f, 0xa1, 0x40, 0xfe, 0x46, 0x16, 0xaf, 0x2e, 0xd1, 0xec, 0x15, 0x9b, 0x61, 0x92, 0xce, 0xfc, 0x10, 0x43, 0x1d, 0x00, 0xf6, 0xbe, 0x20, 0x80, 0x80, 0x6f, 0x3c, 0x16, 0x94, 0x59, 0xba, 0x03, 0x53, 0x6e, 0xb6, 0xdd, 0x25, 0x7b, 0x86, 0xbf, 0x96, 0xf4, 0x2f, 0xa1, 0x96, 0x8d, 0xf9, 0xb3, 0x29, + /* (2^164)P */ 0x3b, 0x04, 0x60, 0x6e, 0xce, 0xab, 0xd2, 0x63, 0x18, 0x53, 0x88, 0x16, 0x4a, 0x6a, 0xab, 0x72, 0x03, 0x68, 0xa5, 0xd4, 0x0d, 0xb2, 0x82, 0x81, 0x1f, 0x2b, 0x5c, 0x75, 0xe8, 0xd2, 0x1d, 0x7f, 0xe7, 0x1b, 0x35, 0x02, 0xde, 0xec, 0xbd, 0xcb, 0xc7, 0x01, 0xd3, 0x95, 0x61, 0xfe, 0xb2, 0x7a, 0x66, 0x09, 0x4c, 0x6d, 0xfd, 0x39, 0xf7, 0x52, + /* (2^165)P */ 0x42, 0xc1, 0x5f, 0xf8, 0x35, 0x52, 0xc1, 0xfe, 0xc5, 0x11, 0x80, 0x1c, 0x11, 0x46, 0x31, 0x11, 0xbe, 0xd0, 0xc4, 0xb6, 0x07, 0x13, 0x38, 0xa0, 0x8d, 0x65, 0xf0, 0x56, 0x9e, 0x16, 0xbf, 0x9d, 0xcd, 0x51, 0x34, 0xf9, 0x08, 0x48, 0x7b, 0x76, 0x0c, 0x7b, 0x30, 0x07, 0xa8, 0x76, 0xaf, 0xa3, 0x29, 0x38, 0xb0, 0x58, 0xde, 0x72, 0x4b, 0x45, + /* (2^166)P */ 0xd4, 0x16, 0xa7, 0xc0, 0xb4, 0x9f, 0xdf, 0x1a, 0x37, 0xc8, 0x35, 0xed, 0xc5, 0x85, 0x74, 0x64, 0x09, 0x22, 0xef, 0xe9, 0x0c, 0xaf, 0x12, 0x4c, 0x9e, 0xf8, 0x47, 0x56, 0xe0, 0x7f, 0x4e, 0x24, 0x6b, 0x0c, 0xe7, 0xad, 0xc6, 0x47, 0x1d, 0xa4, 0x0d, 0x86, 0x89, 0x65, 0xe8, 0x5f, 0x71, 0xc7, 0xe9, 0xcd, 0xec, 0x6c, 0x62, 0xc7, 0xe3, 0xb3, + /* (2^167)P */ 0xb5, 0xea, 0x86, 0xe3, 0x15, 0x18, 0x3f, 0x6d, 0x7b, 0x05, 0x95, 0x15, 0x53, 0x26, 0x1c, 0xeb, 0xbe, 0x7e, 0x16, 0x42, 0x4b, 0xa2, 0x3d, 0xdd, 0x0e, 0xff, 0xba, 0x67, 0xb5, 0xae, 0x7a, 0x17, 0xde, 0x23, 0xad, 0x14, 0xcc, 0xd7, 0xaf, 0x57, 0x01, 0xe0, 0xdd, 0x48, 0xdd, 0xd7, 0xe3, 0xdf, 0xe9, 0x2d, 0xda, 0x67, 0xa4, 0x9f, 0x29, 0x04, + /* (2^168)P */ 0x16, 0x53, 0xe6, 0x9c, 0x4e, 0xe5, 0x1e, 0x70, 0x81, 0x25, 0x02, 0x9b, 0x47, 0x6d, 0xd2, 0x08, 0x73, 0xbe, 0x0a, 0xf1, 0x7b, 0xeb, 0x24, 0xeb, 0x38, 0x23, 0x5c, 0xb6, 0x3e, 0xce, 0x1e, 0xe3, 0xbc, 0x82, 0x35, 0x1f, 0xaf, 0x3a, 0x3a, 0xe5, 0x4e, 0xc1, 0xca, 0xbf, 0x47, 0xb4, 0xbb, 0xbc, 0x5f, 0xea, 0xc6, 0xca, 0xf3, 0xa0, 0xa2, 0x73, + /* (2^169)P */ 0xef, 0xa4, 0x7a, 0x4e, 0xe4, 0xc7, 0xb6, 0x43, 0x2e, 0xa5, 0xe4, 0xa5, 0xba, 0x1e, 0xa5, 0xfe, 0x9e, 0xce, 0xa9, 0x80, 0x04, 0xcb, 0x4f, 0xd8, 0x74, 0x05, 0x48, 0xfa, 0x99, 0x11, 0x5d, 0x97, 0x3b, 0x07, 0x0d, 0xdd, 0xe6, 0xb1, 0x74, 0x87, 0x1a, 0xd3, 0x26, 0xb7, 0x8f, 0xe1, 0x63, 0x3d, 0xec, 0x53, 0x93, 0xb0, 0x81, 0x78, 0x34, 0xa4, + /* (2^170)P */ 0xe1, 0xe7, 0xd4, 0x58, 0x9d, 0x0e, 0x8b, 0x65, 0x66, 0x37, 0x16, 0x48, 0x6f, 0xaa, 0x42, 0x37, 0x77, 0xad, 0xb1, 0x56, 0x48, 0xdf, 0x65, 0x36, 0x30, 0xb8, 0x00, 0x12, 0xd8, 0x32, 0x28, 0x7f, 0xc1, 0x71, 0xeb, 0x93, 0x0f, 0x48, 0x04, 0xe1, 0x5a, 0x6a, 0x96, 0xc1, 0xca, 0x89, 0x6d, 0x1b, 0x82, 0x4c, 0x18, 0x6d, 0x55, 0x4b, 0xea, 0xfd, + /* (2^171)P */ 0x62, 0x1a, 0x53, 0xb4, 0xb1, 0xbe, 0x6f, 0x15, 0x18, 0x88, 0xd4, 0x66, 0x61, 0xc7, 0x12, 0x69, 0x02, 0xbd, 0x03, 0x23, 0x2b, 0xef, 0xf9, 0x54, 0xa4, 0x85, 0xa8, 0xe3, 0xb7, 0xbd, 0xa9, 0xa3, 0xf3, 0x2a, 0xdd, 0xf1, 0xd4, 0x03, 0x0f, 0xa9, 0xa1, 0xd8, 0xa3, 0xcd, 0xb2, 0x71, 0x90, 0x4b, 0x35, 0x62, 0xf2, 0x2f, 0xce, 0x67, 0x1f, 0xaa, + /* (2^172)P */ 0x9e, 0x1e, 0xcd, 0x43, 0x7e, 0x87, 0x37, 0x94, 0x3a, 0x97, 0x4c, 0x7e, 0xee, 0xc9, 0x37, 0x85, 0xf1, 0xd9, 0x4f, 0xbf, 0xf9, 0x6f, 0x39, 0x9a, 0x39, 0x87, 0x2e, 0x25, 0x84, 0x42, 0xc3, 0x80, 0xcb, 0x07, 0x22, 0xae, 0x30, 0xd5, 0x50, 0xa1, 0x23, 0xcc, 0x31, 0x81, 0x9d, 0xf1, 0x30, 0xd9, 0x2b, 0x73, 0x41, 0x16, 0x50, 0xab, 0x2d, 0xa2, + /* (2^173)P */ 0xa4, 0x69, 0x4f, 0xa1, 0x4e, 0xb9, 0xbf, 0x14, 0xe8, 0x2b, 0x04, 0x93, 0xb7, 0x6e, 0x9f, 0x7d, 0x73, 0x0a, 0xc5, 0x14, 0xb8, 0xde, 0x8c, 0xc1, 0xfe, 0xc0, 0xa7, 0xa4, 0xcc, 0x42, 0x42, 0x81, 0x15, 0x65, 0x8a, 0x80, 0xb9, 0xde, 0x1f, 0x60, 0x33, 0x0e, 0xcb, 0xfc, 0xe0, 0xdb, 0x83, 0xa1, 0xe5, 0xd0, 0x16, 0x86, 0x2c, 0xe2, 0x87, 0xed, + /* (2^174)P */ 0x7a, 0xc0, 0xeb, 0x6b, 0xf6, 0x0d, 0x4c, 0x6d, 0x1e, 0xdb, 0xab, 0xe7, 0x19, 0x45, 0xc6, 0xe3, 0xb2, 0x06, 0xbb, 0xbc, 0x70, 0x99, 0x83, 0x33, 0xeb, 0x28, 0xc8, 0x77, 0xf6, 0x4d, 0x01, 0xb7, 0x59, 0xa0, 0xd2, 0xb3, 0x2a, 0x72, 0x30, 0xe7, 0x11, 0x39, 0xb6, 0x41, 0x29, 0x65, 0x5a, 0x14, 0xb9, 0x86, 0x08, 0xe0, 0x7d, 0x32, 0x8c, 0xf0, + /* (2^175)P */ 0x5c, 0x11, 0x30, 0x9e, 0x05, 0x27, 0xf5, 0x45, 0x0f, 0xb3, 0xc9, 0x75, 0xc3, 0xd7, 0xe1, 0x82, 0x3b, 0x8e, 0x87, 0x23, 0x00, 0x15, 0x19, 0x07, 0xd9, 0x21, 0x53, 0xc7, 0xf1, 0xa3, 0xbf, 0x70, 0x64, 0x15, 0x18, 0xca, 0x23, 0x9e, 0xd3, 0x08, 0xc3, 0x2a, 0x8b, 0xe5, 0x83, 0x04, 0x89, 0x14, 0xfd, 0x28, 0x25, 0x1c, 0xe3, 0x26, 0xa7, 0x22, + /* (2^176)P */ 0xdc, 0xd4, 0x75, 0x60, 0x99, 0x94, 0xea, 0x09, 0x8e, 0x8a, 0x3c, 0x1b, 0xf9, 0xbd, 0x33, 0x0d, 0x51, 0x3d, 0x12, 0x6f, 0x4e, 0x72, 0xe0, 0x17, 0x20, 0xe9, 0x75, 0xe6, 0x3a, 0xb2, 0x13, 0x83, 0x4e, 0x7a, 0x08, 0x9e, 0xd1, 0x04, 0x5f, 0x6b, 0x42, 0x0b, 0x76, 0x2a, 0x2d, 0x77, 0x53, 0x6c, 0x65, 0x6d, 0x8e, 0x25, 0x3c, 0xb6, 0x8b, 0x69, + /* (2^177)P */ 0xb9, 0x49, 0x28, 0xd0, 0xdc, 0x6c, 0x8f, 0x4c, 0xc9, 0x14, 0x8a, 0x38, 0xa3, 0xcb, 0xc4, 0x9d, 0x53, 0xcf, 0xe9, 0xe3, 0xcf, 0xe0, 0xb1, 0xf2, 0x1b, 0x4c, 0x7f, 0x83, 0x2a, 0x7a, 0xe9, 0x8b, 0x3b, 0x86, 0x61, 0x30, 0xe9, 0x99, 0xbd, 0xba, 0x19, 0x6e, 0x65, 0x2a, 0x12, 0x3e, 0x9c, 0xa8, 0xaf, 0xc3, 0xcf, 0xf8, 0x1f, 0x77, 0x86, 0xea, + /* (2^178)P */ 0x30, 0xde, 0xe7, 0xff, 0x54, 0xf7, 0xa2, 0x59, 0xf6, 0x0b, 0xfb, 0x7a, 0xf2, 0x39, 0xf0, 0xdb, 0x39, 0xbc, 0xf0, 0xfa, 0x60, 0xeb, 0x6b, 0x4f, 0x47, 0x17, 0xc8, 0x00, 0x65, 0x6d, 0x25, 0x1c, 0xd0, 0x48, 0x56, 0x53, 0x45, 0x11, 0x30, 0x02, 0x49, 0x20, 0x27, 0xac, 0xf2, 0x4c, 0xac, 0x64, 0x3d, 0x52, 0xb8, 0x89, 0xe0, 0x93, 0x16, 0x0f, + /* (2^179)P */ 0x84, 0x09, 0xba, 0x40, 0xb2, 0x2f, 0xa3, 0xa8, 0xc2, 0xba, 0x46, 0x33, 0x05, 0x9d, 0x62, 0xad, 0xa1, 0x3c, 0x33, 0xef, 0x0d, 0xeb, 0xf0, 0x77, 0x11, 0x5a, 0xb0, 0x21, 0x9c, 0xdf, 0x55, 0x24, 0x25, 0x35, 0x51, 0x61, 0x92, 0xf0, 0xb1, 0xce, 0xf5, 0xd4, 0x7b, 0x6c, 0x21, 0x9d, 0x56, 0x52, 0xf8, 0xa1, 0x4c, 0xe9, 0x27, 0x55, 0xac, 0x91, + /* (2^180)P */ 0x03, 0x3e, 0x30, 0xd2, 0x0a, 0xfa, 0x7d, 0x82, 0x3d, 0x1f, 0x8b, 0xcb, 0xb6, 0x04, 0x5c, 0xcc, 0x8b, 0xda, 0xe2, 0x68, 0x74, 0x08, 0x8c, 0x44, 0x83, 0x57, 0x6d, 0x6f, 0x80, 0xb0, 0x7e, 0xa9, 0x82, 0x91, 0x7b, 0x4c, 0x37, 0x97, 0xd1, 0x63, 0xd1, 0xbd, 0x45, 0xe6, 0x8a, 0x86, 0xd6, 0x89, 0x54, 0xfd, 0xd2, 0xb1, 0xd7, 0x54, 0xad, 0xaf, + /* (2^181)P */ 0x8b, 0x33, 0x62, 0x49, 0x9f, 0x63, 0xf9, 0x87, 0x42, 0x58, 0xbf, 0xb3, 0xe6, 0x68, 0x02, 0x60, 0x5c, 0x76, 0x62, 0xf7, 0x61, 0xd7, 0x36, 0x31, 0xf7, 0x9c, 0xb5, 0xe5, 0x13, 0x6c, 0xea, 0x78, 0xae, 0xcf, 0xde, 0xbf, 0xb6, 0xeb, 0x4f, 0xc8, 0x2a, 0xb4, 0x9a, 0x9f, 0xf3, 0xd1, 0x6a, 0xec, 0x0c, 0xbd, 0x85, 0x98, 0x40, 0x06, 0x1c, 0x2a, + /* (2^182)P */ 0x74, 0x3b, 0xe7, 0x81, 0xd5, 0xae, 0x54, 0x56, 0x03, 0xe8, 0x97, 0x16, 0x76, 0xcf, 0x24, 0x96, 0x96, 0x5b, 0xcc, 0x09, 0xab, 0x23, 0x6f, 0x54, 0xae, 0x8f, 0xe4, 0x12, 0xcb, 0xfd, 0xbc, 0xac, 0x93, 0x45, 0x3d, 0x68, 0x08, 0x22, 0x59, 0xc6, 0xf0, 0x47, 0x19, 0x8c, 0x79, 0x93, 0x1e, 0x0e, 0x30, 0xb0, 0x94, 0xfb, 0x17, 0x1d, 0x5a, 0x12, + /* (2^183)P */ 0x85, 0xff, 0x40, 0x18, 0x85, 0xff, 0x44, 0x37, 0x69, 0x23, 0x4d, 0x34, 0xe1, 0xeb, 0xa3, 0x1b, 0x55, 0x40, 0xc1, 0x64, 0xf4, 0xd4, 0x13, 0x0a, 0x9f, 0xb9, 0x19, 0xfc, 0x88, 0x7d, 0xc0, 0x72, 0xcf, 0x69, 0x2f, 0xd2, 0x0c, 0x82, 0x0f, 0xda, 0x08, 0xba, 0x0f, 0xaa, 0x3b, 0xe9, 0xe5, 0x83, 0x7a, 0x06, 0xe8, 0x1b, 0x38, 0x43, 0xc3, 0x54, + /* (2^184)P */ 0x14, 0xaa, 0xb3, 0x6e, 0xe6, 0x28, 0xee, 0xc5, 0x22, 0x6c, 0x7c, 0xf9, 0xa8, 0x71, 0xcc, 0xfe, 0x68, 0x7e, 0xd3, 0xb8, 0x37, 0x96, 0xca, 0x0b, 0xd9, 0xb6, 0x06, 0xa9, 0xf6, 0x71, 0xe8, 0x31, 0xf7, 0xd8, 0xf1, 0x5d, 0xab, 0xb9, 0xf0, 0x5c, 0x98, 0xcf, 0x22, 0xa2, 0x2a, 0xf6, 0xd0, 0x59, 0xf0, 0x9d, 0xd9, 0x6a, 0x4f, 0x59, 0x57, 0xad, + /* (2^185)P */ 0xd7, 0x2b, 0x3d, 0x38, 0x4c, 0x2e, 0x23, 0x4d, 0x49, 0xa2, 0x62, 0x62, 0xf9, 0x0f, 0xde, 0x08, 0xf3, 0x86, 0x71, 0xb6, 0xc7, 0xf9, 0x85, 0x9c, 0x33, 0xa1, 0xcf, 0x16, 0xaa, 0x60, 0xb9, 0xb7, 0xea, 0xed, 0x01, 0x1c, 0x59, 0xdb, 0x3f, 0x3f, 0x97, 0x2e, 0xf0, 0x09, 0x9f, 0x10, 0x85, 0x5f, 0x53, 0x39, 0xf3, 0x13, 0x40, 0x56, 0x95, 0xf9, + /* (2^186)P */ 0xb4, 0xe3, 0xda, 0xc6, 0x1f, 0x78, 0x8e, 0xac, 0xd4, 0x20, 0x1d, 0xa0, 0xbf, 0x4c, 0x09, 0x16, 0xa7, 0x30, 0xb5, 0x8d, 0x9e, 0xa1, 0x5f, 0x6d, 0x52, 0xf4, 0x71, 0xb6, 0x32, 0x2d, 0x21, 0x51, 0xc6, 0xfc, 0x2f, 0x08, 0xf4, 0x13, 0x6c, 0x55, 0xba, 0x72, 0x81, 0x24, 0x49, 0x0e, 0x4f, 0x06, 0x36, 0x39, 0x6a, 0xc5, 0x81, 0xfc, 0xeb, 0xb2, + /* (2^187)P */ 0x7d, 0x8d, 0xc8, 0x6c, 0xea, 0xb4, 0xb9, 0xe8, 0x40, 0xc9, 0x69, 0xc9, 0x30, 0x05, 0xfd, 0x34, 0x46, 0xfd, 0x94, 0x05, 0x16, 0xf5, 0x4b, 0x13, 0x3d, 0x24, 0x1a, 0xd6, 0x64, 0x2b, 0x9c, 0xe2, 0xa5, 0xd9, 0x98, 0xe0, 0xe8, 0xf4, 0xbc, 0x2c, 0xbd, 0xa2, 0x56, 0xe3, 0x9e, 0x14, 0xdb, 0xbf, 0x05, 0xbf, 0x9a, 0x13, 0x5d, 0xf7, 0x91, 0xa3, + /* (2^188)P */ 0x8b, 0xcb, 0x27, 0xf3, 0x15, 0x26, 0x05, 0x40, 0x0f, 0xa6, 0x15, 0x13, 0x71, 0x95, 0xa2, 0xc6, 0x38, 0x04, 0x67, 0xf8, 0x9a, 0x83, 0x06, 0xaa, 0x25, 0x36, 0x72, 0x01, 0x6f, 0x74, 0x5f, 0xe5, 0x6e, 0x44, 0x99, 0xce, 0x13, 0xbc, 0x82, 0xc2, 0x0d, 0xa4, 0x98, 0x50, 0x38, 0xf3, 0xa2, 0xc5, 0xe5, 0x24, 0x1f, 0x6f, 0x56, 0x3e, 0x07, 0xb2, + /* (2^189)P */ 0xbd, 0x0f, 0x32, 0x60, 0x07, 0xb1, 0xd7, 0x0b, 0x11, 0x07, 0x57, 0x02, 0x89, 0xe8, 0x8b, 0xe8, 0x5a, 0x1f, 0xee, 0x54, 0x6b, 0xff, 0xb3, 0x04, 0x07, 0x57, 0x13, 0x0b, 0x94, 0xa8, 0x4d, 0x81, 0xe2, 0x17, 0x16, 0x45, 0xd4, 0x4b, 0xf7, 0x7e, 0x64, 0x66, 0x20, 0xe8, 0x0b, 0x26, 0xfd, 0xa9, 0x8a, 0x47, 0x52, 0x89, 0x14, 0xd0, 0xd1, 0xa1, + /* (2^190)P */ 0xdc, 0x03, 0xe6, 0x20, 0x44, 0x47, 0x8f, 0x04, 0x16, 0x24, 0x22, 0xc1, 0x55, 0x5c, 0xbe, 0x43, 0xc3, 0x92, 0xc5, 0x54, 0x3d, 0x5d, 0xd1, 0x05, 0x9c, 0xc6, 0x7c, 0xbf, 0x23, 0x84, 0x1a, 0xba, 0x4f, 0x1f, 0xfc, 0xa1, 0xae, 0x1a, 0x64, 0x02, 0x51, 0xf1, 0xcb, 0x7a, 0x20, 0xce, 0xb2, 0x34, 0x3c, 0xca, 0xe0, 0xe4, 0xba, 0x22, 0xd4, 0x7b, + /* (2^191)P */ 0xca, 0xfd, 0xca, 0xd7, 0xde, 0x61, 0xae, 0xf0, 0x79, 0x0c, 0x20, 0xab, 0xbc, 0x6f, 0x4d, 0x61, 0xf0, 0xc7, 0x9c, 0x8d, 0x4b, 0x52, 0xf3, 0xb9, 0x48, 0x63, 0x0b, 0xb6, 0xd2, 0x25, 0x9a, 0x96, 0x72, 0xc1, 0x6b, 0x0c, 0xb5, 0xfb, 0x71, 0xaa, 0xad, 0x47, 0x5b, 0xe7, 0xc0, 0x0a, 0x55, 0xb2, 0xd4, 0x16, 0x2f, 0xb1, 0x01, 0xfd, 0xce, 0x27, + /* (2^192)P */ 0x64, 0x11, 0x4b, 0xab, 0x57, 0x09, 0xc6, 0x49, 0x4a, 0x37, 0xc3, 0x36, 0xc4, 0x7b, 0x81, 0x1f, 0x42, 0xed, 0xbb, 0xe0, 0xa0, 0x8d, 0x51, 0xe6, 0xca, 0x8b, 0xb9, 0xcd, 0x99, 0x2d, 0x91, 0x53, 0xa9, 0x47, 0xcb, 0x32, 0xc7, 0xa4, 0x92, 0xec, 0x46, 0x74, 0x44, 0x6d, 0x71, 0x9f, 0x6d, 0x0c, 0x69, 0xa4, 0xf8, 0xbe, 0x9f, 0x7f, 0xa0, 0xd7, + /* (2^193)P */ 0x5f, 0x33, 0xb6, 0x91, 0xc8, 0xa5, 0x3f, 0x5d, 0x7f, 0x38, 0x6e, 0x74, 0x20, 0x4a, 0xd6, 0x2b, 0x98, 0x2a, 0x41, 0x4b, 0x83, 0x64, 0x0b, 0x92, 0x7a, 0x06, 0x1e, 0xc6, 0x2c, 0xf6, 0xe4, 0x91, 0xe5, 0xb1, 0x2e, 0x6e, 0x4e, 0xa8, 0xc8, 0x14, 0x32, 0x57, 0x44, 0x1c, 0xe4, 0xb9, 0x7f, 0x54, 0x51, 0x08, 0x81, 0xaa, 0x4e, 0xce, 0xa1, 0x5d, + /* (2^194)P */ 0x5c, 0xd5, 0x9b, 0x5e, 0x7c, 0xb5, 0xb1, 0x52, 0x73, 0x00, 0x41, 0x56, 0x79, 0x08, 0x7e, 0x07, 0x28, 0x06, 0xa6, 0xfb, 0x7f, 0x69, 0xbd, 0x7a, 0x3c, 0xae, 0x9f, 0x39, 0xbb, 0x54, 0xa2, 0x79, 0xb9, 0x0e, 0x7f, 0xbb, 0xe0, 0xe6, 0xb7, 0x27, 0x64, 0x38, 0x45, 0xdb, 0x84, 0xe4, 0x61, 0x72, 0x3f, 0xe2, 0x24, 0xfe, 0x7a, 0x31, 0x9a, 0xc9, + /* (2^195)P */ 0xa1, 0xd2, 0xa4, 0xee, 0x24, 0x96, 0xe5, 0x5b, 0x79, 0x78, 0x3c, 0x7b, 0x82, 0x3b, 0x8b, 0x58, 0x0b, 0xa3, 0x63, 0x2d, 0xbc, 0x75, 0x46, 0xe8, 0x83, 0x1a, 0xc0, 0x2a, 0x92, 0x61, 0xa8, 0x75, 0x37, 0x3c, 0xbf, 0x0f, 0xef, 0x8f, 0x6c, 0x97, 0x75, 0x10, 0x05, 0x7a, 0xde, 0x23, 0xe8, 0x2a, 0x35, 0xeb, 0x41, 0x64, 0x7d, 0xcf, 0xe0, 0x52, + /* (2^196)P */ 0x4a, 0xd0, 0x49, 0x93, 0xae, 0xf3, 0x24, 0x8c, 0xe1, 0x09, 0x98, 0x45, 0xd8, 0xb9, 0xfe, 0x8e, 0x8c, 0xa8, 0x2c, 0xc9, 0x9f, 0xce, 0x01, 0xdc, 0x38, 0x11, 0xab, 0x85, 0xb9, 0xe8, 0x00, 0x51, 0xfd, 0x82, 0xe1, 0x9b, 0x4e, 0xfc, 0xb5, 0x2a, 0x0f, 0x8b, 0xda, 0x4e, 0x02, 0xca, 0xcc, 0xe3, 0x91, 0xc4, 0xe0, 0xcf, 0x7b, 0xd6, 0xe6, 0x6a, + /* (2^197)P */ 0xfe, 0x11, 0xd7, 0xaa, 0xe3, 0x0c, 0x52, 0x2e, 0x04, 0xe0, 0xe0, 0x61, 0xc8, 0x05, 0xd7, 0x31, 0x4c, 0xc3, 0x9b, 0x2d, 0xce, 0x59, 0xbe, 0x12, 0xb7, 0x30, 0x21, 0xfc, 0x81, 0xb8, 0x5e, 0x57, 0x73, 0xd0, 0xad, 0x8e, 0x9e, 0xe4, 0xeb, 0xcd, 0xcf, 0xd2, 0x0f, 0x01, 0x35, 0x16, 0xed, 0x7a, 0x43, 0x8e, 0x42, 0xdc, 0xea, 0x4c, 0xa8, 0x7c, + /* (2^198)P */ 0x37, 0x26, 0xcc, 0x76, 0x0b, 0xe5, 0x76, 0xdd, 0x3e, 0x19, 0x3c, 0xc4, 0x6c, 0x7f, 0xd0, 0x03, 0xc1, 0xb8, 0x59, 0x82, 0xca, 0x36, 0xc1, 0xe4, 0xc8, 0xb2, 0x83, 0x69, 0x9c, 0xc5, 0x9d, 0x12, 0x82, 0x1c, 0xea, 0xb2, 0x84, 0x9f, 0xf3, 0x52, 0x6b, 0xbb, 0xd8, 0x81, 0x56, 0x83, 0x04, 0x66, 0x05, 0x22, 0x49, 0x37, 0x93, 0xb1, 0xfd, 0xd5, + /* (2^199)P */ 0xaf, 0x96, 0xbf, 0x03, 0xbe, 0xe6, 0x5d, 0x78, 0x19, 0xba, 0x37, 0x46, 0x0a, 0x2b, 0x52, 0x7c, 0xd8, 0x51, 0x9e, 0x3d, 0x29, 0x42, 0xdb, 0x0e, 0x31, 0x20, 0x94, 0xf8, 0x43, 0x9a, 0x2d, 0x22, 0xd3, 0xe3, 0xa1, 0x79, 0x68, 0xfb, 0x2d, 0x7e, 0xd6, 0x79, 0xda, 0x0b, 0xc6, 0x5b, 0x76, 0x68, 0xf0, 0xfe, 0x72, 0x59, 0xbb, 0xa1, 0x9c, 0x74, + /* (2^200)P */ 0x0a, 0xd9, 0xec, 0xc5, 0xbd, 0xf0, 0xda, 0xcf, 0x82, 0xab, 0x46, 0xc5, 0x32, 0x13, 0xdc, 0x5b, 0xac, 0xc3, 0x53, 0x9a, 0x7f, 0xef, 0xa5, 0x40, 0x5a, 0x1f, 0xc1, 0x12, 0x91, 0x54, 0x83, 0x6a, 0xb0, 0x9a, 0x85, 0x4d, 0xbf, 0x36, 0x8e, 0xd3, 0xa2, 0x2b, 0xe5, 0xd6, 0xc6, 0xe1, 0x58, 0x5b, 0x82, 0x9b, 0xc8, 0xf2, 0x03, 0xba, 0xf5, 0x92, + /* (2^201)P */ 0xfb, 0x21, 0x7e, 0xde, 0xe7, 0xb4, 0xc0, 0x56, 0x86, 0x3a, 0x5b, 0x78, 0xf8, 0xf0, 0xf4, 0xe7, 0x5c, 0x00, 0xd2, 0xd7, 0xd6, 0xf8, 0x75, 0x5e, 0x0f, 0x3e, 0xd1, 0x4b, 0x77, 0xd8, 0xad, 0xb0, 0xc9, 0x8b, 0x59, 0x7d, 0x30, 0x76, 0x64, 0x7a, 0x76, 0xd9, 0x51, 0x69, 0xfc, 0xbd, 0x8e, 0xb5, 0x55, 0xe0, 0xd2, 0x07, 0x15, 0xa9, 0xf7, 0xa4, + /* (2^202)P */ 0xaa, 0x2d, 0x2f, 0x2b, 0x3c, 0x15, 0xdd, 0xcd, 0xe9, 0x28, 0x82, 0x4f, 0xa2, 0xaa, 0x31, 0x48, 0xcc, 0xfa, 0x07, 0x73, 0x8a, 0x34, 0x74, 0x0d, 0xab, 0x1a, 0xca, 0xd2, 0xbf, 0x3a, 0xdb, 0x1a, 0x5f, 0x50, 0x62, 0xf4, 0x6b, 0x83, 0x38, 0x43, 0x96, 0xee, 0x6b, 0x39, 0x1e, 0xf0, 0x17, 0x80, 0x1e, 0x9b, 0xed, 0x2b, 0x2f, 0xcc, 0x65, 0xf7, + /* (2^203)P */ 0x03, 0xb3, 0x23, 0x9c, 0x0d, 0xd1, 0xeb, 0x7e, 0x34, 0x17, 0x8a, 0x4c, 0xde, 0x54, 0x39, 0xc4, 0x11, 0x82, 0xd3, 0xa4, 0x00, 0x32, 0x95, 0x9c, 0xa6, 0x64, 0x76, 0x6e, 0xd6, 0x53, 0x27, 0xb4, 0x6a, 0x14, 0x8c, 0x54, 0xf6, 0x58, 0x9e, 0x22, 0x4a, 0x55, 0x18, 0x77, 0xd0, 0x08, 0x6b, 0x19, 0x8a, 0xb5, 0xe7, 0x19, 0xb8, 0x60, 0x92, 0xb1, + /* (2^204)P */ 0x66, 0xec, 0xf3, 0x12, 0xde, 0x67, 0x7f, 0xd4, 0x5b, 0xf6, 0x70, 0x64, 0x0a, 0xb5, 0xc2, 0xf9, 0xb3, 0x64, 0xab, 0x56, 0x46, 0xc7, 0x93, 0xc2, 0x8b, 0x2d, 0xd0, 0xd6, 0x39, 0x3b, 0x1f, 0xcd, 0xb3, 0xac, 0xcc, 0x2c, 0x27, 0x6a, 0xbc, 0xb3, 0x4b, 0xa8, 0x3c, 0x69, 0x20, 0xe2, 0x18, 0x35, 0x17, 0xe1, 0x8a, 0xd3, 0x11, 0x74, 0xaa, 0x4d, + /* (2^205)P */ 0x96, 0xc4, 0x16, 0x7e, 0xfd, 0xf5, 0xd0, 0x7d, 0x1f, 0x32, 0x1b, 0xdb, 0xa6, 0xfd, 0x51, 0x75, 0x4d, 0xd7, 0x00, 0xe5, 0x7f, 0x58, 0x5b, 0xeb, 0x4b, 0x6a, 0x78, 0xfe, 0xe5, 0xd6, 0x8f, 0x99, 0x17, 0xca, 0x96, 0x45, 0xf7, 0x52, 0xdf, 0x84, 0x06, 0x77, 0xb9, 0x05, 0x63, 0x5d, 0xe9, 0x91, 0xb1, 0x4b, 0x82, 0x5a, 0xdb, 0xd7, 0xca, 0x69, + /* (2^206)P */ 0x02, 0xd3, 0x38, 0x38, 0x87, 0xea, 0xbd, 0x9f, 0x11, 0xca, 0xf3, 0x21, 0xf1, 0x9b, 0x35, 0x97, 0x98, 0xff, 0x8e, 0x6d, 0x3d, 0xd6, 0xb2, 0xfa, 0x68, 0xcb, 0x7e, 0x62, 0x85, 0xbb, 0xc7, 0x5d, 0xee, 0x32, 0x30, 0x2e, 0x71, 0x96, 0x63, 0x43, 0x98, 0xc4, 0xa7, 0xde, 0x60, 0xb2, 0xd9, 0x43, 0x4a, 0xfa, 0x97, 0x2d, 0x5f, 0x21, 0xd4, 0xfe, + /* (2^207)P */ 0x3b, 0x20, 0x29, 0x07, 0x07, 0xb5, 0x78, 0xc3, 0xc7, 0xab, 0x56, 0xba, 0x40, 0xde, 0x1d, 0xcf, 0xc3, 0x00, 0x56, 0x21, 0x0c, 0xc8, 0x42, 0xd9, 0x0e, 0xcd, 0x02, 0x7c, 0x07, 0xb9, 0x11, 0xd7, 0x96, 0xaf, 0xff, 0xad, 0xc5, 0xba, 0x30, 0x6d, 0x82, 0x3a, 0xbf, 0xef, 0x7b, 0xf7, 0x0a, 0x74, 0xbd, 0x31, 0x0c, 0xe4, 0xec, 0x1a, 0xe5, 0xc5, + /* (2^208)P */ 0xcc, 0xf2, 0x28, 0x16, 0x12, 0xbf, 0xef, 0x85, 0xbc, 0xf7, 0xcb, 0x9f, 0xdb, 0xa8, 0xb2, 0x49, 0x53, 0x48, 0xa8, 0x24, 0xa8, 0x68, 0x8d, 0xbb, 0x21, 0x0a, 0x5a, 0xbd, 0xb2, 0x91, 0x61, 0x47, 0xc4, 0x43, 0x08, 0xa6, 0x19, 0xef, 0x8e, 0x88, 0x39, 0xc6, 0x33, 0x30, 0xf3, 0x0e, 0xc5, 0x92, 0x66, 0xd6, 0xfe, 0xc5, 0x12, 0xd9, 0x4c, 0x2d, + /* (2^209)P */ 0x30, 0x34, 0x07, 0xbf, 0x9c, 0x5a, 0x4e, 0x65, 0xf1, 0x39, 0x35, 0x38, 0xae, 0x7b, 0x55, 0xac, 0x6a, 0x92, 0x24, 0x7e, 0x50, 0xd3, 0xba, 0x78, 0x51, 0xfe, 0x4d, 0x32, 0x05, 0x11, 0xf5, 0x52, 0xf1, 0x31, 0x45, 0x39, 0x98, 0x7b, 0x28, 0x56, 0xc3, 0x5d, 0x4f, 0x07, 0x6f, 0x84, 0xb8, 0x1a, 0x58, 0x0b, 0xc4, 0x7c, 0xc4, 0x8d, 0x32, 0x8e, + /* (2^210)P */ 0x7e, 0xaf, 0x98, 0xce, 0xc5, 0x2b, 0x9d, 0xf6, 0xfa, 0x2c, 0xb6, 0x2a, 0x5a, 0x1d, 0xc0, 0x24, 0x8d, 0xa4, 0xce, 0xb1, 0x12, 0x01, 0xf9, 0x79, 0xc6, 0x79, 0x38, 0x0c, 0xd4, 0x07, 0xc9, 0xf7, 0x37, 0xa1, 0x0b, 0xfe, 0x72, 0xec, 0x5d, 0xd6, 0xb0, 0x1c, 0x70, 0xbe, 0x70, 0x01, 0x13, 0xe0, 0x86, 0x95, 0xc7, 0x2e, 0x12, 0x3b, 0xe6, 0xa6, + /* (2^211)P */ 0x24, 0x82, 0x67, 0xe0, 0x14, 0x7b, 0x56, 0x08, 0x38, 0x44, 0xdb, 0xa0, 0x3a, 0x05, 0x47, 0xb2, 0xc0, 0xac, 0xd1, 0xcc, 0x3f, 0x82, 0xb8, 0x8a, 0x88, 0xbc, 0xf5, 0x33, 0xa1, 0x35, 0x0f, 0xf6, 0xe2, 0xef, 0x6c, 0xf7, 0x37, 0x9e, 0xe8, 0x10, 0xca, 0xb0, 0x8e, 0x80, 0x86, 0x00, 0x23, 0xd0, 0x4a, 0x76, 0x9f, 0xf7, 0x2c, 0x52, 0x15, 0x0e, + /* (2^212)P */ 0x5e, 0x49, 0xe1, 0x2c, 0x9a, 0x01, 0x76, 0xa6, 0xb3, 0x07, 0x5b, 0xa4, 0x07, 0xef, 0x1d, 0xc3, 0x6a, 0xbb, 0x64, 0xbe, 0x71, 0x15, 0x6e, 0x32, 0x31, 0x46, 0x9a, 0x9e, 0x8f, 0x45, 0x73, 0xce, 0x0b, 0x94, 0x1a, 0x52, 0x07, 0xf4, 0x50, 0x30, 0x49, 0x53, 0x50, 0xfb, 0x71, 0x1f, 0x5a, 0x03, 0xa9, 0x76, 0xf2, 0x8f, 0x42, 0xff, 0xed, 0xed, + /* (2^213)P */ 0xed, 0x08, 0xdb, 0x91, 0x1c, 0xee, 0xa2, 0xb4, 0x47, 0xa2, 0xfa, 0xcb, 0x03, 0xd1, 0xff, 0x8c, 0xad, 0x64, 0x50, 0x61, 0xcd, 0xfc, 0x88, 0xa0, 0x31, 0x95, 0x30, 0xb9, 0x58, 0xdd, 0xd7, 0x43, 0xe4, 0x46, 0xc2, 0x16, 0xd9, 0x72, 0x4a, 0x56, 0x51, 0x70, 0x85, 0xf1, 0xa1, 0x80, 0x40, 0xd5, 0xba, 0x67, 0x81, 0xda, 0xcd, 0x03, 0xea, 0x51, + /* (2^214)P */ 0x42, 0x50, 0xf0, 0xef, 0x37, 0x61, 0x72, 0x85, 0xe1, 0xf1, 0xff, 0x6f, 0x3d, 0xe8, 0x7b, 0x21, 0x5c, 0xe5, 0x50, 0x03, 0xde, 0x00, 0xc1, 0xf7, 0x3a, 0x55, 0x12, 0x1c, 0x9e, 0x1e, 0xce, 0xd1, 0x2f, 0xaf, 0x05, 0x70, 0x5b, 0x47, 0xf2, 0x04, 0x7a, 0x89, 0xbc, 0x78, 0xa6, 0x65, 0x6c, 0xaa, 0x3c, 0xa2, 0x3c, 0x8b, 0x5c, 0xa9, 0x22, 0x48, + /* (2^215)P */ 0x7e, 0x8c, 0x8f, 0x2f, 0x60, 0xe3, 0x5a, 0x94, 0xd4, 0xce, 0xdd, 0x9d, 0x83, 0x3b, 0x77, 0x78, 0x43, 0x1d, 0xfd, 0x8f, 0xc8, 0xe8, 0x02, 0x90, 0xab, 0xf6, 0xc9, 0xfc, 0xf1, 0x63, 0xaa, 0x5f, 0x42, 0xf1, 0x78, 0x34, 0x64, 0x16, 0x75, 0x9c, 0x7d, 0xd0, 0xe4, 0x74, 0x5a, 0xa8, 0xfb, 0xcb, 0xac, 0x20, 0xa3, 0xc2, 0xa6, 0x20, 0xf8, 0x1b, + /* (2^216)P */ 0x00, 0x4f, 0x1e, 0x56, 0xb5, 0x34, 0xb2, 0x87, 0x31, 0xe5, 0xee, 0x8d, 0xf1, 0x41, 0x67, 0xb7, 0x67, 0x3a, 0x54, 0x86, 0x5c, 0xf0, 0x0b, 0x37, 0x2f, 0x1b, 0x92, 0x5d, 0x58, 0x93, 0xdc, 0xd8, 0x58, 0xcc, 0x9e, 0x67, 0xd0, 0x97, 0x3a, 0xaf, 0x49, 0x39, 0x2d, 0x3b, 0xd8, 0x98, 0xfb, 0x76, 0x6b, 0xe7, 0xaf, 0xc3, 0x45, 0x44, 0x53, 0x94, + /* (2^217)P */ 0x30, 0xbd, 0x90, 0x75, 0xd3, 0xbd, 0x3b, 0x58, 0x27, 0x14, 0x9f, 0x6b, 0xd4, 0x31, 0x99, 0xcd, 0xde, 0x3a, 0x21, 0x1e, 0xb4, 0x02, 0xe4, 0x33, 0x04, 0x02, 0xb0, 0x50, 0x66, 0x68, 0x90, 0xdd, 0x7b, 0x69, 0x31, 0xd9, 0xcf, 0x68, 0x73, 0xf1, 0x60, 0xdd, 0xc8, 0x1d, 0x5d, 0xe3, 0xd6, 0x5b, 0x2a, 0xa4, 0xea, 0xc4, 0x3f, 0x08, 0xcd, 0x9c, + /* (2^218)P */ 0x6b, 0x1a, 0xbf, 0x55, 0xc1, 0x1b, 0x0c, 0x05, 0x09, 0xdf, 0xf5, 0x5e, 0xa3, 0x77, 0x95, 0xe9, 0xdf, 0x19, 0xdd, 0xc7, 0x94, 0xcb, 0x06, 0x73, 0xd0, 0x88, 0x02, 0x33, 0x94, 0xca, 0x7a, 0x2f, 0x8e, 0x3d, 0x72, 0x61, 0x2d, 0x4d, 0xa6, 0x61, 0x1f, 0x32, 0x5e, 0x87, 0x53, 0x36, 0x11, 0x15, 0x20, 0xb3, 0x5a, 0x57, 0x51, 0x93, 0x20, 0xd8, + /* (2^219)P */ 0xb7, 0x56, 0xf4, 0xab, 0x7d, 0x0c, 0xfb, 0x99, 0x1a, 0x30, 0x29, 0xb0, 0x75, 0x2a, 0xf8, 0x53, 0x71, 0x23, 0xbd, 0xa7, 0xd8, 0x0a, 0xe2, 0x27, 0x65, 0xe9, 0x74, 0x26, 0x98, 0x4a, 0x69, 0x19, 0xb2, 0x4d, 0x0a, 0x17, 0x98, 0xb2, 0xa9, 0x57, 0x4e, 0xf6, 0x86, 0xc8, 0x01, 0xa4, 0xc6, 0x98, 0xad, 0x5a, 0x90, 0x2c, 0x05, 0x46, 0x64, 0xb7, + /* (2^220)P */ 0x7b, 0x91, 0xdf, 0xfc, 0xf8, 0x1c, 0x8c, 0x15, 0x9e, 0xf7, 0xd5, 0xa8, 0xe8, 0xe7, 0xe3, 0xa3, 0xb0, 0x04, 0x74, 0xfa, 0x78, 0xfb, 0x26, 0xbf, 0x67, 0x42, 0xf9, 0x8c, 0x9b, 0xb4, 0x69, 0x5b, 0x02, 0x13, 0x6d, 0x09, 0x6c, 0xd6, 0x99, 0x61, 0x7b, 0x89, 0x4a, 0x67, 0x75, 0xa3, 0x98, 0x13, 0x23, 0x1d, 0x18, 0x24, 0x0e, 0xef, 0x41, 0x79, + /* (2^221)P */ 0x86, 0x33, 0xab, 0x08, 0xcb, 0xbf, 0x1e, 0x76, 0x3c, 0x0b, 0xbd, 0x30, 0xdb, 0xe9, 0xa3, 0x35, 0x87, 0x1b, 0xe9, 0x07, 0x00, 0x66, 0x7f, 0x3b, 0x35, 0x0c, 0x8a, 0x3f, 0x61, 0xbc, 0xe0, 0xae, 0xf6, 0xcc, 0x54, 0xe1, 0x72, 0x36, 0x2d, 0xee, 0x93, 0x24, 0xf8, 0xd7, 0xc5, 0xf9, 0xcb, 0xb0, 0xe5, 0x88, 0x0d, 0x23, 0x4b, 0x76, 0x15, 0xa2, + /* (2^222)P */ 0x37, 0xdb, 0x83, 0xd5, 0x6d, 0x06, 0x24, 0x37, 0x1b, 0x15, 0x85, 0x15, 0xe2, 0xc0, 0x4e, 0x02, 0xa9, 0x6d, 0x0a, 0x3a, 0x94, 0x4a, 0x6f, 0x49, 0x00, 0x01, 0x72, 0xbb, 0x60, 0x14, 0x35, 0xae, 0xb4, 0xc6, 0x01, 0x0a, 0x00, 0x9e, 0xc3, 0x58, 0xc5, 0xd1, 0x5e, 0x30, 0x73, 0x96, 0x24, 0x85, 0x9d, 0xf0, 0xf9, 0xec, 0x09, 0xd3, 0xe7, 0x70, + /* (2^223)P */ 0xf3, 0xbd, 0x96, 0x87, 0xe9, 0x71, 0xbd, 0xd6, 0xa2, 0x45, 0xeb, 0x0a, 0xcd, 0x2c, 0xf1, 0x72, 0xa6, 0x31, 0xa9, 0x6f, 0x09, 0xa1, 0x5e, 0xdd, 0xc8, 0x8d, 0x0d, 0xbc, 0x5a, 0x8d, 0xb1, 0x2c, 0x9a, 0xcc, 0x37, 0x74, 0xc2, 0xa9, 0x4e, 0xd6, 0xc0, 0x3c, 0xa0, 0x23, 0xb0, 0xa0, 0x77, 0x14, 0x80, 0x45, 0x71, 0x6a, 0x2d, 0x41, 0xc3, 0x82, + /* (2^224)P */ 0x37, 0x44, 0xec, 0x8a, 0x3e, 0xc1, 0x0c, 0xa9, 0x12, 0x9c, 0x08, 0x88, 0xcb, 0xd9, 0xf8, 0xba, 0x00, 0xd6, 0xc3, 0xdf, 0xef, 0x7a, 0x44, 0x7e, 0x25, 0x69, 0xc9, 0xc1, 0x46, 0xe5, 0x20, 0x9e, 0xcc, 0x0b, 0x05, 0x3e, 0xf4, 0x78, 0x43, 0x0c, 0xa6, 0x2f, 0xc1, 0xfa, 0x70, 0xb2, 0x3c, 0x31, 0x7a, 0x63, 0x58, 0xab, 0x17, 0xcf, 0x4c, 0x4f, + /* (2^225)P */ 0x2b, 0x08, 0x31, 0x59, 0x75, 0x8b, 0xec, 0x0a, 0xa9, 0x79, 0x70, 0xdd, 0xf1, 0x11, 0xc3, 0x11, 0x1f, 0xab, 0x37, 0xaa, 0x26, 0xea, 0x53, 0xc4, 0x79, 0xa7, 0x91, 0x00, 0xaa, 0x08, 0x42, 0xeb, 0x8b, 0x8b, 0xe8, 0xc3, 0x2f, 0xb8, 0x78, 0x90, 0x38, 0x0e, 0x8a, 0x42, 0x0c, 0x0f, 0xbf, 0x3e, 0xf8, 0xd8, 0x07, 0xcf, 0x6a, 0x34, 0xc9, 0xfa, + /* (2^226)P */ 0x11, 0xe0, 0x76, 0x4d, 0x23, 0xc5, 0xa6, 0xcc, 0x9f, 0x9a, 0x2a, 0xde, 0x3a, 0xb5, 0x92, 0x39, 0x19, 0x8a, 0xf1, 0x8d, 0xf9, 0x4d, 0xc9, 0xb4, 0x39, 0x9f, 0x57, 0xd8, 0x72, 0xab, 0x1d, 0x61, 0x6a, 0xb2, 0xff, 0x52, 0xba, 0x54, 0x0e, 0xfb, 0x83, 0x30, 0x8a, 0xf7, 0x3b, 0xf4, 0xd8, 0xae, 0x1a, 0x94, 0x3a, 0xec, 0x63, 0xfe, 0x6e, 0x7c, + /* (2^227)P */ 0xdc, 0x70, 0x8e, 0x55, 0x44, 0xbf, 0xd2, 0x6a, 0xa0, 0x14, 0x61, 0x89, 0xd5, 0x55, 0x45, 0x3c, 0xf6, 0x40, 0x0d, 0x83, 0x85, 0x44, 0xb4, 0x62, 0x56, 0xfe, 0x60, 0xd7, 0x07, 0x1d, 0x47, 0x30, 0x3b, 0x73, 0xa4, 0xb5, 0xb7, 0xea, 0xac, 0xda, 0xf1, 0x17, 0xaa, 0x60, 0xdf, 0xe9, 0x84, 0xda, 0x31, 0x32, 0x61, 0xbf, 0xd0, 0x7e, 0x8a, 0x02, + /* (2^228)P */ 0xb9, 0x51, 0xb3, 0x89, 0x21, 0x5d, 0xa2, 0xfe, 0x79, 0x2a, 0xb3, 0x2a, 0x3b, 0xe6, 0x6f, 0x2b, 0x22, 0x03, 0xea, 0x7b, 0x1f, 0xaf, 0x85, 0xc3, 0x38, 0x55, 0x5b, 0x8e, 0xb4, 0xaa, 0x77, 0xfe, 0x03, 0x6e, 0xda, 0x91, 0x24, 0x0c, 0x48, 0x39, 0x27, 0x43, 0x16, 0xd2, 0x0a, 0x0d, 0x43, 0xa3, 0x0e, 0xca, 0x45, 0xd1, 0x7f, 0xf5, 0xd3, 0x16, + /* (2^229)P */ 0x3d, 0x32, 0x9b, 0x38, 0xf8, 0x06, 0x93, 0x78, 0x5b, 0x50, 0x2b, 0x06, 0xd8, 0x66, 0xfe, 0xab, 0x9b, 0x58, 0xc7, 0xd1, 0x4d, 0xd5, 0xf8, 0x3b, 0x10, 0x7e, 0x85, 0xde, 0x58, 0x4e, 0xdf, 0x53, 0xd9, 0x58, 0xe0, 0x15, 0x81, 0x9f, 0x1a, 0x78, 0xfc, 0x9f, 0x10, 0xc2, 0x23, 0xd6, 0x78, 0xd1, 0x9d, 0xd2, 0xd5, 0x1c, 0x53, 0xe2, 0xc9, 0x76, + /* (2^230)P */ 0x98, 0x1e, 0x38, 0x7b, 0x71, 0x18, 0x4b, 0x15, 0xaf, 0xa1, 0xa6, 0x98, 0xcb, 0x26, 0xa3, 0xc8, 0x07, 0x46, 0xda, 0x3b, 0x70, 0x65, 0xec, 0x7a, 0x2b, 0x34, 0x94, 0xa8, 0xb6, 0x14, 0xf8, 0x1a, 0xce, 0xf7, 0xc8, 0x60, 0xf3, 0x88, 0xf4, 0x33, 0x60, 0x7b, 0xd1, 0x02, 0xe7, 0xda, 0x00, 0x4a, 0xea, 0xd2, 0xfd, 0x88, 0xd2, 0x99, 0x28, 0xf3, + /* (2^231)P */ 0x28, 0x24, 0x1d, 0x26, 0xc2, 0xeb, 0x8b, 0x3b, 0xb4, 0x6b, 0xbe, 0x6b, 0x77, 0xff, 0xf3, 0x21, 0x3b, 0x26, 0x6a, 0x8c, 0x8e, 0x2a, 0x44, 0xa8, 0x01, 0x2b, 0x71, 0xea, 0x64, 0x30, 0xfd, 0xfd, 0x95, 0xcb, 0x39, 0x38, 0x48, 0xfa, 0x96, 0x97, 0x8c, 0x2f, 0x33, 0xca, 0x03, 0xe6, 0xd7, 0x94, 0x55, 0x6c, 0xc3, 0xb3, 0xa8, 0xf7, 0xae, 0x8c, + /* (2^232)P */ 0xea, 0x62, 0x8a, 0xb4, 0xeb, 0x74, 0xf7, 0xb8, 0xae, 0xc5, 0x20, 0x71, 0x06, 0xd6, 0x7c, 0x62, 0x9b, 0x69, 0x74, 0xef, 0xa7, 0x6d, 0xd6, 0x8c, 0x37, 0xb9, 0xbf, 0xcf, 0xeb, 0xe4, 0x2f, 0x04, 0x02, 0x21, 0x7d, 0x75, 0x6b, 0x92, 0x48, 0xf8, 0x70, 0xad, 0x69, 0xe2, 0xea, 0x0e, 0x88, 0x67, 0x72, 0xcc, 0x2d, 0x10, 0xce, 0x2d, 0xcf, 0x65, + /* (2^233)P */ 0x49, 0xf3, 0x57, 0x64, 0xe5, 0x5c, 0xc5, 0x65, 0x49, 0x97, 0xc4, 0x8a, 0xcc, 0xa9, 0xca, 0x94, 0x7b, 0x86, 0x88, 0xb6, 0x51, 0x27, 0x69, 0xa5, 0x0f, 0x8b, 0x06, 0x59, 0xa0, 0x94, 0xef, 0x63, 0x1a, 0x01, 0x9e, 0x4f, 0xd2, 0x5a, 0x93, 0xc0, 0x7c, 0xe6, 0x61, 0x77, 0xb6, 0xf5, 0x40, 0xd9, 0x98, 0x43, 0x5b, 0x56, 0x68, 0xe9, 0x37, 0x8f, + /* (2^234)P */ 0xee, 0x87, 0xd2, 0x05, 0x1b, 0x39, 0x89, 0x10, 0x07, 0x6d, 0xe8, 0xfd, 0x8b, 0x4d, 0xb2, 0xa7, 0x7b, 0x1e, 0xa0, 0x6c, 0x0d, 0x3d, 0x3d, 0x49, 0xba, 0x61, 0x36, 0x1f, 0xc2, 0x84, 0x4a, 0xcc, 0x87, 0xa9, 0x1b, 0x23, 0x04, 0xe2, 0x3e, 0x97, 0xe1, 0xdb, 0xd5, 0x5a, 0xe8, 0x41, 0x6b, 0xe5, 0x5a, 0xa1, 0x99, 0xe5, 0x7b, 0xa7, 0xe0, 0x3b, + /* (2^235)P */ 0xea, 0xa3, 0x6a, 0xdd, 0x77, 0x7f, 0x77, 0x41, 0xc5, 0x6a, 0xe4, 0xaf, 0x11, 0x5f, 0x88, 0xa5, 0x10, 0xee, 0xd0, 0x8c, 0x0c, 0xb4, 0xa5, 0x2a, 0xd0, 0xd8, 0x1d, 0x47, 0x06, 0xc0, 0xd5, 0xce, 0x51, 0x54, 0x9b, 0x2b, 0xe6, 0x2f, 0xe7, 0xe7, 0x31, 0x5f, 0x5c, 0x23, 0x81, 0x3e, 0x03, 0x93, 0xaa, 0x2d, 0x71, 0x84, 0xa0, 0x89, 0x32, 0xa6, + /* (2^236)P */ 0x55, 0xa3, 0x13, 0x92, 0x4e, 0x93, 0x7d, 0xec, 0xca, 0x57, 0xfb, 0x37, 0xae, 0xd2, 0x18, 0x2e, 0x54, 0x05, 0x6c, 0xd1, 0x28, 0xca, 0x90, 0x40, 0x82, 0x2e, 0x79, 0xc6, 0x5a, 0xc7, 0xdd, 0x84, 0x93, 0xdf, 0x15, 0xb8, 0x1f, 0xb1, 0xf9, 0xaf, 0x2c, 0xe5, 0x32, 0xcd, 0xc2, 0x99, 0x6d, 0xac, 0x85, 0x5c, 0x63, 0xd3, 0xe2, 0xff, 0x24, 0xda, + /* (2^237)P */ 0x2d, 0x8d, 0xfd, 0x65, 0xcc, 0xe5, 0x02, 0xa0, 0xe5, 0xb9, 0xec, 0x59, 0x09, 0x50, 0x27, 0xb7, 0x3d, 0x2a, 0x79, 0xb2, 0x76, 0x5d, 0x64, 0x95, 0xf8, 0xc5, 0xaf, 0x8a, 0x62, 0x11, 0x5c, 0x56, 0x1c, 0x05, 0x64, 0x9e, 0x5e, 0xbd, 0x54, 0x04, 0xe6, 0x9e, 0xab, 0xe6, 0x22, 0x7e, 0x42, 0x54, 0xb5, 0xa5, 0xd0, 0x8d, 0x28, 0x6b, 0x0f, 0x0b, + /* (2^238)P */ 0x2d, 0xb2, 0x8c, 0x59, 0x10, 0x37, 0x84, 0x3b, 0x9b, 0x65, 0x1b, 0x0f, 0x10, 0xf9, 0xea, 0x60, 0x1b, 0x02, 0xf5, 0xee, 0x8b, 0xe6, 0x32, 0x7d, 0x10, 0x7f, 0x5f, 0x8c, 0x72, 0x09, 0x4e, 0x1f, 0x29, 0xff, 0x65, 0xcb, 0x3e, 0x3a, 0xd2, 0x96, 0x50, 0x1e, 0xea, 0x64, 0x99, 0xb5, 0x4c, 0x7a, 0x69, 0xb8, 0x95, 0xae, 0x48, 0xc0, 0x7c, 0xb1, + /* (2^239)P */ 0xcd, 0x7c, 0x4f, 0x3e, 0xea, 0xf3, 0x90, 0xcb, 0x12, 0x76, 0xd1, 0x17, 0xdc, 0x0d, 0x13, 0x0f, 0xfd, 0x4d, 0xb5, 0x1f, 0xe4, 0xdd, 0xf2, 0x4d, 0x58, 0xea, 0xa5, 0x66, 0x92, 0xcf, 0xe5, 0x54, 0xea, 0x9b, 0x35, 0x83, 0x1a, 0x44, 0x8e, 0x62, 0x73, 0x45, 0x98, 0xa3, 0x89, 0x95, 0x52, 0x93, 0x1a, 0x8d, 0x63, 0x0f, 0xc2, 0x57, 0x3c, 0xb1, + /* (2^240)P */ 0x72, 0xb4, 0xdf, 0x51, 0xb7, 0xf6, 0x52, 0xa2, 0x14, 0x56, 0xe5, 0x0a, 0x2e, 0x75, 0x81, 0x02, 0xee, 0x93, 0x48, 0x0a, 0x92, 0x4e, 0x0c, 0x0f, 0xdf, 0x09, 0x89, 0x99, 0xf6, 0xf9, 0x22, 0xa2, 0x32, 0xf8, 0xb0, 0x76, 0x0c, 0xb2, 0x4d, 0x6e, 0xbe, 0x83, 0x35, 0x61, 0x44, 0xd2, 0x58, 0xc7, 0xdd, 0x14, 0xcf, 0xc3, 0x4b, 0x7c, 0x07, 0xee, + /* (2^241)P */ 0x8b, 0x03, 0xee, 0xcb, 0xa7, 0x2e, 0x28, 0xbd, 0x97, 0xd1, 0x4c, 0x2b, 0xd1, 0x92, 0x67, 0x5b, 0x5a, 0x12, 0xbf, 0x29, 0x17, 0xfc, 0x50, 0x09, 0x74, 0x76, 0xa2, 0xd4, 0x82, 0xfd, 0x2c, 0x0c, 0x90, 0xf7, 0xe7, 0xe5, 0x9a, 0x2c, 0x16, 0x40, 0xb9, 0x6c, 0xd9, 0xe0, 0x22, 0x9e, 0xf8, 0xdd, 0x73, 0xe4, 0x7b, 0x9e, 0xbe, 0x4f, 0x66, 0x22, + /* (2^242)P */ 0xa4, 0x10, 0xbe, 0xb8, 0x83, 0x3a, 0x77, 0x8e, 0xea, 0x0a, 0xc4, 0x97, 0x3e, 0xb6, 0x6c, 0x81, 0xd7, 0x65, 0xd9, 0xf7, 0xae, 0xe6, 0xbe, 0xab, 0x59, 0x81, 0x29, 0x4b, 0xff, 0xe1, 0x0f, 0xc3, 0x2b, 0xad, 0x4b, 0xef, 0xc4, 0x50, 0x9f, 0x88, 0x31, 0xf2, 0xde, 0x80, 0xd6, 0xf4, 0x20, 0x9c, 0x77, 0x9b, 0xbe, 0xbe, 0x08, 0xf5, 0xf0, 0x95, + /* (2^243)P */ 0x0e, 0x7c, 0x7b, 0x7c, 0xb3, 0xd8, 0x83, 0xfc, 0x8c, 0x75, 0x51, 0x74, 0x1b, 0xe1, 0x6d, 0x11, 0x05, 0x46, 0x24, 0x0d, 0xa4, 0x2b, 0x32, 0xfd, 0x2c, 0x4e, 0x21, 0xdf, 0x39, 0x6b, 0x96, 0xfc, 0xff, 0x92, 0xfc, 0x35, 0x0d, 0x9a, 0x4b, 0xc0, 0x70, 0x46, 0x32, 0x7d, 0xc0, 0xc4, 0x04, 0xe0, 0x2d, 0x83, 0xa7, 0x00, 0xc7, 0xcb, 0xb4, 0x8f, + /* (2^244)P */ 0xa9, 0x5a, 0x7f, 0x0e, 0xdd, 0x2c, 0x85, 0xaa, 0x4d, 0xac, 0xde, 0xb3, 0xb6, 0xaf, 0xe6, 0xd1, 0x06, 0x7b, 0x2c, 0xa4, 0x01, 0x19, 0x22, 0x7d, 0x78, 0xf0, 0x3a, 0xea, 0x89, 0xfe, 0x21, 0x61, 0x6d, 0xb8, 0xfe, 0xa5, 0x2a, 0xab, 0x0d, 0x7b, 0x51, 0x39, 0xb6, 0xde, 0xbc, 0xf0, 0xc5, 0x48, 0xd7, 0x09, 0x82, 0x6e, 0x66, 0x75, 0xc5, 0xcd, + /* (2^245)P */ 0xee, 0xdf, 0x2b, 0x6c, 0xa8, 0xde, 0x61, 0xe1, 0x27, 0xfa, 0x2a, 0x0f, 0x68, 0xe7, 0x7a, 0x9b, 0x13, 0xe9, 0x56, 0xd2, 0x1c, 0x3d, 0x2f, 0x3c, 0x7a, 0xf6, 0x6f, 0x45, 0xee, 0xe8, 0xf4, 0xa0, 0xa6, 0xe8, 0xa5, 0x27, 0xee, 0xf2, 0x85, 0xa9, 0xd5, 0x0e, 0xa9, 0x26, 0x60, 0xfe, 0xee, 0xc7, 0x59, 0x99, 0x5e, 0xa3, 0xdf, 0x23, 0x36, 0xd5, + /* (2^246)P */ 0x15, 0x66, 0x6f, 0xd5, 0x78, 0xa4, 0x0a, 0xf7, 0xb1, 0xe8, 0x75, 0x6b, 0x48, 0x7d, 0xa6, 0x4d, 0x3d, 0x36, 0x9b, 0xc7, 0xcc, 0x68, 0x9a, 0xfe, 0x2f, 0x39, 0x2a, 0x51, 0x31, 0x39, 0x7d, 0x73, 0x6f, 0xc8, 0x74, 0x72, 0x6f, 0x6e, 0xda, 0x5f, 0xad, 0x48, 0xc8, 0x40, 0xe1, 0x06, 0x01, 0x36, 0xa1, 0x88, 0xc8, 0x99, 0x9c, 0xd1, 0x11, 0x8f, + /* (2^247)P */ 0xab, 0xc5, 0xcb, 0xcf, 0xbd, 0x73, 0x21, 0xd0, 0x82, 0xb1, 0x2e, 0x2d, 0xd4, 0x36, 0x1b, 0xed, 0xa9, 0x8a, 0x26, 0x79, 0xc4, 0x17, 0xae, 0xe5, 0x09, 0x0a, 0x0c, 0xa4, 0x21, 0xa0, 0x6e, 0xdd, 0x62, 0x8e, 0x44, 0x62, 0xcc, 0x50, 0xff, 0x93, 0xb3, 0x9a, 0x72, 0x8c, 0x3f, 0xa1, 0xa6, 0x4d, 0x87, 0xd5, 0x1c, 0x5a, 0xc0, 0x0b, 0x1a, 0xd6, + /* (2^248)P */ 0x67, 0x36, 0x6a, 0x1f, 0x96, 0xe5, 0x80, 0x20, 0xa9, 0xe8, 0x0b, 0x0e, 0x21, 0x29, 0x3f, 0xc8, 0x0a, 0x6d, 0x27, 0x47, 0xca, 0xd9, 0x05, 0x55, 0xbf, 0x11, 0xcf, 0x31, 0x7a, 0x37, 0xc7, 0x90, 0xa9, 0xf4, 0x07, 0x5e, 0xd5, 0xc3, 0x92, 0xaa, 0x95, 0xc8, 0x23, 0x2a, 0x53, 0x45, 0xe3, 0x3a, 0x24, 0xe9, 0x67, 0x97, 0x3a, 0x82, 0xf9, 0xa6, + /* (2^249)P */ 0x92, 0x9e, 0x6d, 0x82, 0x67, 0xe9, 0xf9, 0x17, 0x96, 0x2c, 0xa7, 0xd3, 0x89, 0xf9, 0xdb, 0xd8, 0x20, 0xc6, 0x2e, 0xec, 0x4a, 0x76, 0x64, 0xbf, 0x27, 0x40, 0xe2, 0xb4, 0xdf, 0x1f, 0xa0, 0xef, 0x07, 0x80, 0xfb, 0x8e, 0x12, 0xf8, 0xb8, 0xe1, 0xc6, 0xdf, 0x7c, 0x69, 0x35, 0x5a, 0xe1, 0x8e, 0x5d, 0x69, 0x84, 0x56, 0xb6, 0x31, 0x1c, 0x0b, + /* (2^250)P */ 0xd6, 0x94, 0x5c, 0xef, 0xbb, 0x46, 0x45, 0x44, 0x5b, 0xa1, 0xae, 0x03, 0x65, 0xdd, 0xb5, 0x66, 0x88, 0x35, 0x29, 0x95, 0x16, 0x54, 0xa6, 0xf5, 0xc9, 0x78, 0x34, 0xe6, 0x0f, 0xc4, 0x2b, 0x5b, 0x79, 0x51, 0x68, 0x48, 0x3a, 0x26, 0x87, 0x05, 0x70, 0xaf, 0x8b, 0xa6, 0xc7, 0x2e, 0xb3, 0xa9, 0x10, 0x01, 0xb0, 0xb9, 0x31, 0xfd, 0xdc, 0x80, + /* (2^251)P */ 0x25, 0xf2, 0xad, 0xd6, 0x75, 0xa3, 0x04, 0x05, 0x64, 0x8a, 0x97, 0x60, 0x27, 0x2a, 0xe5, 0x6d, 0xb0, 0x73, 0xf4, 0x07, 0x2a, 0x9d, 0xe9, 0x46, 0xb4, 0x1c, 0x51, 0xf8, 0x63, 0x98, 0x7e, 0xe5, 0x13, 0x51, 0xed, 0x98, 0x65, 0x98, 0x4f, 0x8f, 0xe7, 0x7e, 0x72, 0xd7, 0x64, 0x11, 0x2f, 0xcd, 0x12, 0xf8, 0xc4, 0x63, 0x52, 0x0f, 0x7f, 0xc4, + /* (2^252)P */ 0x5c, 0xd9, 0x85, 0x63, 0xc7, 0x8a, 0x65, 0x9a, 0x25, 0x83, 0x31, 0x73, 0x49, 0xf0, 0x93, 0x96, 0x70, 0x67, 0x6d, 0xb1, 0xff, 0x95, 0x54, 0xe4, 0xf8, 0x15, 0x6c, 0x5f, 0xbd, 0xf6, 0x0f, 0x38, 0x7b, 0x68, 0x7d, 0xd9, 0x3d, 0xf0, 0xa9, 0xa0, 0xe4, 0xd1, 0xb6, 0x34, 0x6d, 0x14, 0x16, 0xc2, 0x4c, 0x30, 0x0e, 0x67, 0xd3, 0xbe, 0x2e, 0xc0, + /* (2^253)P */ 0x06, 0x6b, 0x52, 0xc8, 0x14, 0xcd, 0xae, 0x03, 0x93, 0xea, 0xc1, 0xf2, 0xf6, 0x8b, 0xc5, 0xb6, 0xdc, 0x82, 0x42, 0x29, 0x94, 0xe0, 0x25, 0x6c, 0x3f, 0x9f, 0x5d, 0xe4, 0x96, 0xf6, 0x8e, 0x3f, 0xf9, 0x72, 0xc4, 0x77, 0x60, 0x8b, 0xa4, 0xf9, 0xa8, 0xc3, 0x0a, 0x81, 0xb1, 0x97, 0x70, 0x18, 0xab, 0xea, 0x37, 0x8a, 0x08, 0xc7, 0xe2, 0x95, + /* (2^254)P */ 0x94, 0x49, 0xd9, 0x5f, 0x76, 0x72, 0x82, 0xad, 0x2d, 0x50, 0x1a, 0x7a, 0x5b, 0xe6, 0x95, 0x1e, 0x95, 0x65, 0x87, 0x1c, 0x52, 0xd7, 0x44, 0xe6, 0x9b, 0x56, 0xcd, 0x6f, 0x05, 0xff, 0x67, 0xc5, 0xdb, 0xa2, 0xac, 0xe4, 0xa2, 0x28, 0x63, 0x5f, 0xfb, 0x0c, 0x3b, 0xf1, 0x87, 0xc3, 0x36, 0x78, 0x3f, 0x77, 0xfa, 0x50, 0x85, 0xf9, 0xd7, 0x82, + /* (2^255)P */ 0x64, 0xc0, 0xe0, 0xd8, 0x2d, 0xed, 0xcb, 0x6a, 0xfd, 0xcd, 0xbc, 0x7e, 0x9f, 0xc8, 0x85, 0xe9, 0xc1, 0x7c, 0x0f, 0xe5, 0x18, 0xea, 0xd4, 0x51, 0xad, 0x59, 0x13, 0x75, 0xd9, 0x3d, 0xd4, 0x8a, 0xb2, 0xbe, 0x78, 0x52, 0x2b, 0x52, 0x94, 0x37, 0x41, 0xd6, 0xb4, 0xb6, 0x45, 0x20, 0x76, 0xe0, 0x1f, 0x31, 0xdb, 0xb1, 0xa1, 0x43, 0xf0, 0x18, + /* (2^256)P */ 0x74, 0xa9, 0xa4, 0xa9, 0xdd, 0x6e, 0x3e, 0x68, 0xe5, 0xc3, 0x2e, 0x92, 0x17, 0xa4, 0xcb, 0x80, 0xb1, 0xf0, 0x06, 0x93, 0xef, 0xe6, 0x00, 0xe6, 0x3b, 0xb1, 0x32, 0x65, 0x7b, 0x83, 0xb6, 0x8a, 0x49, 0x1b, 0x14, 0x89, 0xee, 0xba, 0xf5, 0x6a, 0x8d, 0x36, 0xef, 0xb0, 0xd8, 0xb2, 0x16, 0x99, 0x17, 0x35, 0x02, 0x16, 0x55, 0x58, 0xdd, 0x82, + /* (2^257)P */ 0x36, 0x95, 0xe8, 0xf4, 0x36, 0x42, 0xbb, 0xc5, 0x3e, 0xfa, 0x30, 0x84, 0x9e, 0x59, 0xfd, 0xd2, 0x95, 0x42, 0xf8, 0x64, 0xd9, 0xb9, 0x0e, 0x9f, 0xfa, 0xd0, 0x7b, 0x20, 0x31, 0x77, 0x48, 0x29, 0x4d, 0xd0, 0x32, 0x57, 0x56, 0x30, 0xa6, 0x17, 0x53, 0x04, 0xbf, 0x08, 0x28, 0xec, 0xb8, 0x46, 0xc1, 0x03, 0x89, 0xdc, 0xed, 0xa0, 0x35, 0x53, + /* (2^258)P */ 0xc5, 0x7f, 0x9e, 0xd8, 0xc5, 0xba, 0x5f, 0x68, 0xc8, 0x23, 0x75, 0xea, 0x0d, 0xd9, 0x5a, 0xfd, 0x61, 0x1a, 0xa3, 0x2e, 0x45, 0x63, 0x14, 0x55, 0x86, 0x21, 0x29, 0xbe, 0xef, 0x5e, 0x50, 0xe5, 0x18, 0x59, 0xe7, 0xe3, 0xce, 0x4d, 0x8c, 0x15, 0x8f, 0x89, 0x66, 0x44, 0x52, 0x3d, 0xfa, 0xc7, 0x9a, 0x59, 0x90, 0x8e, 0xc0, 0x06, 0x3f, 0xc9, + /* (2^259)P */ 0x8e, 0x04, 0xd9, 0x16, 0x50, 0x1d, 0x8c, 0x9f, 0xd5, 0xe3, 0xce, 0xfd, 0x47, 0x04, 0x27, 0x4d, 0xc2, 0xfa, 0x71, 0xd9, 0x0b, 0xb8, 0x65, 0xf4, 0x11, 0xf3, 0x08, 0xee, 0x81, 0xc8, 0x67, 0x99, 0x0b, 0x8d, 0x77, 0xa3, 0x4f, 0xb5, 0x9b, 0xdb, 0x26, 0xf1, 0x97, 0xeb, 0x04, 0x54, 0xeb, 0x80, 0x08, 0x1d, 0x1d, 0xf6, 0x3d, 0x1f, 0x5a, 0xb8, + /* (2^260)P */ 0xb7, 0x9c, 0x9d, 0xee, 0xb9, 0x5c, 0xad, 0x0d, 0x9e, 0xfd, 0x60, 0x3c, 0x27, 0x4e, 0xa2, 0x95, 0xfb, 0x64, 0x7e, 0x79, 0x64, 0x87, 0x10, 0xb4, 0x73, 0xe0, 0x9d, 0x46, 0x4d, 0x3d, 0xee, 0x83, 0xe4, 0x16, 0x88, 0x97, 0xe6, 0x4d, 0xba, 0x70, 0xb6, 0x96, 0x7b, 0xff, 0x4b, 0xc8, 0xcf, 0x72, 0x83, 0x3e, 0x5b, 0x24, 0x2e, 0x57, 0xf1, 0x82, + /* (2^261)P */ 0x30, 0x71, 0x40, 0x51, 0x4f, 0x44, 0xbb, 0xc7, 0xf0, 0x54, 0x6e, 0x9d, 0xeb, 0x15, 0xad, 0xf8, 0x61, 0x43, 0x5a, 0xef, 0xc0, 0xb1, 0x57, 0xae, 0x03, 0x40, 0xe8, 0x68, 0x6f, 0x03, 0x20, 0x4f, 0x8a, 0x51, 0x2a, 0x9e, 0xd2, 0x45, 0xaf, 0xb4, 0xf5, 0xd4, 0x95, 0x7f, 0x3d, 0x3d, 0xb7, 0xb6, 0x28, 0xc5, 0x08, 0x8b, 0x44, 0xd6, 0x3f, 0xe7, + /* (2^262)P */ 0xa9, 0x52, 0x04, 0x67, 0xcb, 0x20, 0x63, 0xf8, 0x18, 0x01, 0x44, 0x21, 0x6a, 0x8a, 0x83, 0x48, 0xd4, 0xaf, 0x23, 0x0f, 0x35, 0x8d, 0xe5, 0x5a, 0xc4, 0x7c, 0x55, 0x46, 0x19, 0x5f, 0x35, 0xe0, 0x5d, 0x97, 0x4c, 0x2d, 0x04, 0xed, 0x59, 0xd4, 0xb0, 0xb2, 0xc6, 0xe3, 0x51, 0xe1, 0x38, 0xc6, 0x30, 0x49, 0x8f, 0xae, 0x61, 0x64, 0xce, 0xa8, + /* (2^263)P */ 0x9b, 0x64, 0x83, 0x3c, 0xd3, 0xdf, 0xb9, 0x27, 0xe7, 0x5b, 0x7f, 0xeb, 0xf3, 0x26, 0xcf, 0xb1, 0x8f, 0xaf, 0x26, 0xc8, 0x48, 0xce, 0xa1, 0xac, 0x7d, 0x10, 0x34, 0x28, 0xe1, 0x1f, 0x69, 0x03, 0x64, 0x77, 0x61, 0xdd, 0x4a, 0x9b, 0x18, 0x47, 0xf8, 0xca, 0x63, 0xc9, 0x03, 0x2d, 0x20, 0x2a, 0x69, 0x6e, 0x42, 0xd0, 0xe7, 0xaa, 0xb5, 0xf3, + /* (2^264)P */ 0xea, 0x31, 0x0c, 0x57, 0x0f, 0x3e, 0xe3, 0x35, 0xd8, 0x30, 0xa5, 0x6f, 0xdd, 0x95, 0x43, 0xc6, 0x66, 0x07, 0x4f, 0x34, 0xc3, 0x7e, 0x04, 0x10, 0x2d, 0xc4, 0x1c, 0x94, 0x52, 0x2e, 0x5b, 0x9a, 0x65, 0x2f, 0x91, 0xaa, 0x4f, 0x3c, 0xdc, 0x23, 0x18, 0xe1, 0x4f, 0x85, 0xcd, 0xf4, 0x8c, 0x51, 0xf7, 0xab, 0x4f, 0xdc, 0x15, 0x5c, 0x9e, 0xc5, + /* (2^265)P */ 0x54, 0x57, 0x23, 0x17, 0xe7, 0x82, 0x2f, 0x04, 0x7d, 0xfe, 0xe7, 0x1f, 0xa2, 0x57, 0x79, 0xe9, 0x58, 0x9b, 0xbe, 0xc6, 0x16, 0x4a, 0x17, 0x50, 0x90, 0x4a, 0x34, 0x70, 0x87, 0x37, 0x01, 0x26, 0xd8, 0xa3, 0x5f, 0x07, 0x7c, 0xd0, 0x7d, 0x05, 0x8a, 0x93, 0x51, 0x2f, 0x99, 0xea, 0xcf, 0x00, 0xd8, 0xc7, 0xe6, 0x9b, 0x8c, 0x62, 0x45, 0x87, + /* (2^266)P */ 0xc3, 0xfd, 0x29, 0x66, 0xe7, 0x30, 0x29, 0x77, 0xe0, 0x0d, 0x63, 0x5b, 0xe6, 0x90, 0x1a, 0x1e, 0x99, 0xc2, 0xa7, 0xab, 0xff, 0xa7, 0xbd, 0x79, 0x01, 0x97, 0xfd, 0x27, 0x1b, 0x43, 0x2b, 0xe6, 0xfe, 0x5e, 0xf1, 0xb9, 0x35, 0x38, 0x08, 0x25, 0x55, 0x90, 0x68, 0x2e, 0xc3, 0x67, 0x39, 0x9f, 0x2b, 0x2c, 0x70, 0x48, 0x8c, 0x47, 0xee, 0x56, + /* (2^267)P */ 0xf7, 0x32, 0x70, 0xb5, 0xe6, 0x42, 0xfd, 0x0a, 0x39, 0x9b, 0x07, 0xfe, 0x0e, 0xf4, 0x47, 0xba, 0x6a, 0x3f, 0xf5, 0x2c, 0x15, 0xf3, 0x60, 0x3f, 0xb1, 0x83, 0x7b, 0x2e, 0x34, 0x58, 0x1a, 0x6e, 0x4a, 0x49, 0x05, 0x45, 0xca, 0xdb, 0x00, 0x01, 0x0c, 0x42, 0x5e, 0x60, 0x40, 0x5f, 0xd9, 0xc7, 0x3a, 0x9e, 0x1c, 0x8d, 0xab, 0x11, 0x55, 0x65, + /* (2^268)P */ 0x87, 0x40, 0xb7, 0x0d, 0xaa, 0x34, 0x89, 0x90, 0x75, 0x6d, 0xa2, 0xfe, 0x3b, 0x6d, 0x5c, 0x39, 0x98, 0x10, 0x9e, 0x15, 0xc5, 0x35, 0xa2, 0x27, 0x23, 0x0a, 0x2d, 0x60, 0xe2, 0xa8, 0x7f, 0x3e, 0x77, 0x8f, 0xcc, 0x44, 0xcc, 0x30, 0x28, 0xe2, 0xf0, 0x04, 0x8c, 0xee, 0xe4, 0x5f, 0x68, 0x8c, 0xdf, 0x70, 0xbf, 0x31, 0xee, 0x2a, 0xfc, 0xce, + /* (2^269)P */ 0x92, 0xf2, 0xa0, 0xd9, 0x58, 0x3b, 0x7c, 0x1a, 0x99, 0x46, 0x59, 0x54, 0x60, 0x06, 0x8d, 0x5e, 0xf0, 0x22, 0xa1, 0xed, 0x92, 0x8a, 0x4d, 0x76, 0x95, 0x05, 0x0b, 0xff, 0xfc, 0x9a, 0xd1, 0xcc, 0x05, 0xb9, 0x5e, 0x99, 0xe8, 0x2a, 0x76, 0x7b, 0xfd, 0xa6, 0xe2, 0xd1, 0x1a, 0xd6, 0x76, 0x9f, 0x2f, 0x0e, 0xd1, 0xa8, 0x77, 0x5a, 0x40, 0x5a, + /* (2^270)P */ 0xff, 0xf9, 0x3f, 0xa9, 0xa6, 0x6c, 0x6d, 0x03, 0x8b, 0xa7, 0x10, 0x5d, 0x3f, 0xec, 0x3e, 0x1c, 0x0b, 0x6b, 0xa2, 0x6a, 0x22, 0xa9, 0x28, 0xd0, 0x66, 0xc9, 0xc2, 0x3d, 0x47, 0x20, 0x7d, 0xa6, 0x1d, 0xd8, 0x25, 0xb5, 0xf2, 0xf9, 0x70, 0x19, 0x6b, 0xf8, 0x43, 0x36, 0xc5, 0x1f, 0xe4, 0x5a, 0x4c, 0x13, 0xe4, 0x6d, 0x08, 0x0b, 0x1d, 0xb1, + /* (2^271)P */ 0x3f, 0x20, 0x9b, 0xfb, 0xec, 0x7d, 0x31, 0xc5, 0xfc, 0x88, 0x0b, 0x30, 0xed, 0x36, 0xc0, 0x63, 0xb1, 0x7d, 0x10, 0xda, 0xb6, 0x2e, 0xad, 0xf3, 0xec, 0x94, 0xe7, 0xec, 0xb5, 0x9c, 0xfe, 0xf5, 0x35, 0xf0, 0xa2, 0x2d, 0x7f, 0xca, 0x6b, 0x67, 0x1a, 0xf6, 0xb3, 0xda, 0x09, 0x2a, 0xaa, 0xdf, 0xb1, 0xca, 0x9b, 0xfb, 0xeb, 0xb3, 0xcd, 0xc0, + /* (2^272)P */ 0xcd, 0x4d, 0x89, 0x00, 0xa4, 0x3b, 0x48, 0xf0, 0x76, 0x91, 0x35, 0xa5, 0xf8, 0xc9, 0xb6, 0x46, 0xbc, 0xf6, 0x9a, 0x45, 0x47, 0x17, 0x96, 0x80, 0x5b, 0x3a, 0x28, 0x33, 0xf9, 0x5a, 0xef, 0x43, 0x07, 0xfe, 0x3b, 0xf4, 0x8e, 0x19, 0xce, 0xd2, 0x94, 0x4b, 0x6d, 0x8e, 0x67, 0x20, 0xc7, 0x4f, 0x2f, 0x59, 0x8e, 0xe1, 0xa1, 0xa9, 0xf9, 0x0e, + /* (2^273)P */ 0xdc, 0x7b, 0xb5, 0x50, 0x2e, 0xe9, 0x7e, 0x8b, 0x78, 0xa1, 0x38, 0x96, 0x22, 0xc3, 0x61, 0x67, 0x6d, 0xc8, 0x58, 0xed, 0x41, 0x1d, 0x5d, 0x86, 0x98, 0x7f, 0x2f, 0x1b, 0x8d, 0x3e, 0xaa, 0xc1, 0xd2, 0x0a, 0xf3, 0xbf, 0x95, 0x04, 0xf3, 0x10, 0x3c, 0x2b, 0x7f, 0x90, 0x46, 0x04, 0xaa, 0x6a, 0xa9, 0x35, 0x76, 0xac, 0x49, 0xb5, 0x00, 0x45, + /* (2^274)P */ 0xb1, 0x93, 0x79, 0x84, 0x4a, 0x2a, 0x30, 0x78, 0x16, 0xaa, 0xc5, 0x74, 0x06, 0xce, 0xa5, 0xa7, 0x32, 0x86, 0xe0, 0xf9, 0x10, 0xd2, 0x58, 0x76, 0xfb, 0x66, 0x49, 0x76, 0x3a, 0x90, 0xba, 0xb5, 0xcc, 0x99, 0xcd, 0x09, 0xc1, 0x9a, 0x74, 0x23, 0xdf, 0x0c, 0xfe, 0x99, 0x52, 0x80, 0xa3, 0x7c, 0x1c, 0x71, 0x5f, 0x2c, 0x49, 0x57, 0xf4, 0xf9, + /* (2^275)P */ 0x6d, 0xbf, 0x52, 0xe6, 0x25, 0x98, 0xed, 0xcf, 0xe3, 0xbc, 0x08, 0xa2, 0x1a, 0x90, 0xae, 0xa0, 0xbf, 0x07, 0x15, 0xad, 0x0a, 0x9f, 0x3e, 0x47, 0x44, 0xc2, 0x10, 0x46, 0xa6, 0x7a, 0x9e, 0x2f, 0x57, 0xbc, 0xe2, 0xf0, 0x1d, 0xd6, 0x9a, 0x06, 0xed, 0xfc, 0x54, 0x95, 0x92, 0x15, 0xa2, 0xf7, 0x8d, 0x6b, 0xef, 0xb2, 0x05, 0xed, 0x5c, 0x63, + /* (2^276)P */ 0xbc, 0x0b, 0x27, 0x3a, 0x3a, 0xf8, 0xe1, 0x48, 0x02, 0x7e, 0x27, 0xe6, 0x81, 0x62, 0x07, 0x73, 0x74, 0xe5, 0x52, 0xd7, 0xf8, 0x26, 0xca, 0x93, 0x4d, 0x3e, 0x9b, 0x55, 0x09, 0x8e, 0xe3, 0xd7, 0xa6, 0xe3, 0xb6, 0x2a, 0xa9, 0xb3, 0xb0, 0xa0, 0x8c, 0x01, 0xbb, 0x07, 0x90, 0x78, 0x6d, 0x6d, 0xe9, 0xf0, 0x7a, 0x90, 0xbd, 0xdc, 0x0c, 0x36, + /* (2^277)P */ 0x7f, 0x20, 0x12, 0x0f, 0x40, 0x00, 0x53, 0xd8, 0x0c, 0x27, 0x47, 0x47, 0x22, 0x80, 0xfb, 0x62, 0xe4, 0xa7, 0xf7, 0xbd, 0x42, 0xa5, 0xc3, 0x2b, 0xb2, 0x7f, 0x50, 0xcc, 0xe2, 0xfb, 0xd5, 0xc0, 0x63, 0xdd, 0x24, 0x5f, 0x7c, 0x08, 0x91, 0xbf, 0x6e, 0x47, 0x44, 0xd4, 0x6a, 0xc0, 0xc3, 0x09, 0x39, 0x27, 0xdd, 0xc7, 0xca, 0x06, 0x29, 0x55, + /* (2^278)P */ 0x76, 0x28, 0x58, 0xb0, 0xd2, 0xf3, 0x0f, 0x04, 0xe9, 0xc9, 0xab, 0x66, 0x5b, 0x75, 0x51, 0xdc, 0xe5, 0x8f, 0xe8, 0x1f, 0xdb, 0x03, 0x0f, 0xb0, 0x7d, 0xf9, 0x20, 0x64, 0x89, 0xe9, 0xdc, 0xe6, 0x24, 0xc3, 0xd5, 0xd2, 0x41, 0xa6, 0xe4, 0xe3, 0xc4, 0x79, 0x7c, 0x0f, 0xa1, 0x61, 0x2f, 0xda, 0xa4, 0xc9, 0xfd, 0xad, 0x5c, 0x65, 0x6a, 0xf3, + /* (2^279)P */ 0xd5, 0xab, 0x72, 0x7a, 0x3b, 0x59, 0xea, 0xcf, 0xd5, 0x17, 0xd2, 0xb2, 0x5f, 0x2d, 0xab, 0xad, 0x9e, 0x88, 0x64, 0x55, 0x96, 0x6e, 0xf3, 0x44, 0xa9, 0x11, 0xf5, 0xf8, 0x3a, 0xf1, 0xcd, 0x79, 0x4c, 0x99, 0x6d, 0x23, 0x6a, 0xa0, 0xc2, 0x1a, 0x19, 0x45, 0xb5, 0xd8, 0x95, 0x2f, 0x49, 0xe9, 0x46, 0x39, 0x26, 0x60, 0x04, 0x15, 0x8b, 0xcc, + /* (2^280)P */ 0x66, 0x0c, 0xf0, 0x54, 0x41, 0x02, 0x91, 0xab, 0xe5, 0x85, 0x8a, 0x44, 0xa6, 0x34, 0x96, 0x32, 0xc0, 0xdf, 0x6c, 0x41, 0x39, 0xd4, 0xc6, 0xe1, 0xe3, 0x81, 0xb0, 0x4c, 0x34, 0x4f, 0xe5, 0xf4, 0x35, 0x46, 0x1f, 0xeb, 0x75, 0xfd, 0x43, 0x37, 0x50, 0x99, 0xab, 0xad, 0xb7, 0x8c, 0xa1, 0x57, 0xcb, 0xe6, 0xce, 0x16, 0x2e, 0x85, 0xcc, 0xf9, + /* (2^281)P */ 0x63, 0xd1, 0x3f, 0x9e, 0xa2, 0x17, 0x2e, 0x1d, 0x3e, 0xce, 0x48, 0x2d, 0xbb, 0x8f, 0x69, 0xc9, 0xa6, 0x3d, 0x4e, 0xfe, 0x09, 0x56, 0xb3, 0x02, 0x5f, 0x99, 0x97, 0x0c, 0x54, 0xda, 0x32, 0x97, 0x9b, 0xf4, 0x95, 0xf1, 0xad, 0xe3, 0x2b, 0x04, 0xa7, 0x9b, 0x3f, 0xbb, 0xe7, 0x87, 0x2e, 0x1f, 0x8b, 0x4b, 0x7a, 0xa4, 0x43, 0x0c, 0x0f, 0x35, + /* (2^282)P */ 0x05, 0xdc, 0xe0, 0x2c, 0xa1, 0xc1, 0xd0, 0xf1, 0x1f, 0x4e, 0xc0, 0x6c, 0x35, 0x7b, 0xca, 0x8f, 0x8b, 0x02, 0xb1, 0xf7, 0xd6, 0x2e, 0xe7, 0x93, 0x80, 0x85, 0x18, 0x88, 0x19, 0xb9, 0xb4, 0x4a, 0xbc, 0xeb, 0x5a, 0x78, 0x38, 0xed, 0xc6, 0x27, 0x2a, 0x74, 0x76, 0xf0, 0x1b, 0x79, 0x92, 0x2f, 0xd2, 0x81, 0x98, 0xdf, 0xa9, 0x50, 0x19, 0xeb, + /* (2^283)P */ 0xb5, 0xe7, 0xb4, 0x11, 0x3a, 0x81, 0xb6, 0xb4, 0xf8, 0xa2, 0xb3, 0x6c, 0xfc, 0x9d, 0xe0, 0xc0, 0xe0, 0x59, 0x7f, 0x05, 0x37, 0xef, 0x2c, 0xa9, 0x3a, 0x24, 0xac, 0x7b, 0x25, 0xa0, 0x55, 0xd2, 0x44, 0x82, 0x82, 0x6e, 0x64, 0xa3, 0x58, 0xc8, 0x67, 0xae, 0x26, 0xa7, 0x0f, 0x42, 0x63, 0xe1, 0x93, 0x01, 0x52, 0x19, 0xaf, 0x49, 0x3e, 0x33, + /* (2^284)P */ 0x05, 0x85, 0xe6, 0x66, 0xaf, 0x5f, 0xdf, 0xbf, 0x9d, 0x24, 0x62, 0x60, 0x90, 0xe2, 0x4c, 0x7d, 0x4e, 0xc3, 0x74, 0x5d, 0x4f, 0x53, 0xf3, 0x63, 0x13, 0xf4, 0x74, 0x28, 0x6b, 0x7d, 0x57, 0x0c, 0x9d, 0x84, 0xa7, 0x1a, 0xff, 0xa0, 0x79, 0xdf, 0xfc, 0x65, 0x98, 0x8e, 0x22, 0x0d, 0x62, 0x7e, 0xf2, 0x34, 0x60, 0x83, 0x05, 0x14, 0xb1, 0xc1, + /* (2^285)P */ 0x64, 0x22, 0xcc, 0xdf, 0x5c, 0xbc, 0x88, 0x68, 0x4c, 0xd9, 0xbc, 0x0e, 0xc9, 0x8b, 0xb4, 0x23, 0x52, 0xad, 0xb0, 0xb3, 0xf1, 0x17, 0xd8, 0x15, 0x04, 0x6b, 0x99, 0xf0, 0xc4, 0x7d, 0x48, 0x22, 0x4a, 0xf8, 0x6f, 0xaa, 0x88, 0x0d, 0xc5, 0x5e, 0xa9, 0x1c, 0x61, 0x3d, 0x95, 0xa9, 0x7b, 0x6a, 0x79, 0x33, 0x0a, 0x2b, 0x99, 0xe3, 0x4e, 0x48, + /* (2^286)P */ 0x6b, 0x9b, 0x6a, 0x2a, 0xf1, 0x60, 0x31, 0xb4, 0x73, 0xd1, 0x87, 0x45, 0x9c, 0x15, 0x58, 0x4b, 0x91, 0x6d, 0x94, 0x1c, 0x41, 0x11, 0x4a, 0x83, 0xec, 0xaf, 0x65, 0xbc, 0x34, 0xaa, 0x26, 0xe2, 0xaf, 0xed, 0x46, 0x05, 0x4e, 0xdb, 0xc6, 0x4e, 0x10, 0x28, 0x4e, 0x72, 0xe5, 0x31, 0xa3, 0x20, 0xd7, 0xb1, 0x96, 0x64, 0xf6, 0xce, 0x08, 0x08, + /* (2^287)P */ 0x16, 0xa9, 0x5c, 0x9f, 0x9a, 0xb4, 0xb8, 0xc8, 0x32, 0x78, 0xc0, 0x3a, 0xd9, 0x5f, 0x94, 0xac, 0x3a, 0x42, 0x1f, 0x43, 0xd6, 0x80, 0x47, 0x2c, 0xdc, 0x76, 0x27, 0xfa, 0x50, 0xe5, 0xa1, 0xe4, 0xc3, 0xcb, 0x61, 0x31, 0xe1, 0x2e, 0xde, 0x81, 0x3b, 0x77, 0x1c, 0x39, 0x3c, 0xdb, 0xda, 0x87, 0x4b, 0x84, 0x12, 0xeb, 0xdd, 0x54, 0xbf, 0xe7, + /* (2^288)P */ 0xbf, 0xcb, 0x73, 0x21, 0x3d, 0x7e, 0x13, 0x8c, 0xa6, 0x34, 0x21, 0x2b, 0xa5, 0xe4, 0x9f, 0x8e, 0x9c, 0x01, 0x9c, 0x43, 0xd9, 0xc7, 0xb9, 0xf1, 0xbe, 0x7f, 0x45, 0x51, 0x97, 0xa1, 0x8e, 0x01, 0xf8, 0xbd, 0xd2, 0xbf, 0x81, 0x3a, 0x8b, 0xab, 0xe4, 0x89, 0xb7, 0xbd, 0xf2, 0xcd, 0xa9, 0x8a, 0x8a, 0xde, 0xfb, 0x8a, 0x55, 0x12, 0x7b, 0x17, + /* (2^289)P */ 0x1b, 0x95, 0x58, 0x4d, 0xe6, 0x51, 0x31, 0x52, 0x1c, 0xd8, 0x15, 0x84, 0xb1, 0x0d, 0x36, 0x25, 0x88, 0x91, 0x46, 0x71, 0x42, 0x56, 0xe2, 0x90, 0x08, 0x9e, 0x77, 0x1b, 0xee, 0x22, 0x3f, 0xec, 0xee, 0x8c, 0x7b, 0x2e, 0x79, 0xc4, 0x6c, 0x07, 0xa1, 0x7e, 0x52, 0xf5, 0x26, 0x5c, 0x84, 0x2a, 0x50, 0x6e, 0x82, 0xb3, 0x76, 0xda, 0x35, 0x16, + /* (2^290)P */ 0x0a, 0x6f, 0x99, 0x87, 0xc0, 0x7d, 0x8a, 0xb2, 0xca, 0xae, 0xe8, 0x65, 0x98, 0x0f, 0xb3, 0x44, 0xe1, 0xdc, 0x52, 0x79, 0x75, 0xec, 0x8f, 0x95, 0x87, 0x45, 0xd1, 0x32, 0x18, 0x55, 0x15, 0xce, 0x64, 0x9b, 0x08, 0x4f, 0x2c, 0xea, 0xba, 0x1c, 0x57, 0x06, 0x63, 0xc8, 0xb1, 0xfd, 0xc5, 0x67, 0xe7, 0x1f, 0x87, 0x9e, 0xde, 0x72, 0x7d, 0xec, + /* (2^291)P */ 0x36, 0x8b, 0x4d, 0x2c, 0xc2, 0x46, 0xe8, 0x96, 0xac, 0x0b, 0x8c, 0xc5, 0x09, 0x10, 0xfc, 0xf2, 0xda, 0xea, 0x22, 0xb2, 0xd3, 0x89, 0xeb, 0xb2, 0x85, 0x0f, 0xff, 0x59, 0x50, 0x2c, 0x99, 0x5a, 0x1f, 0xec, 0x2a, 0x6f, 0xec, 0xcf, 0xe9, 0xce, 0x12, 0x6b, 0x19, 0xd8, 0xde, 0x9b, 0xce, 0x0e, 0x6a, 0xaa, 0xe1, 0x32, 0xea, 0x4c, 0xfe, 0x92, + /* (2^292)P */ 0x5f, 0x17, 0x70, 0x53, 0x26, 0x03, 0x0b, 0xab, 0xd1, 0xc1, 0x42, 0x0b, 0xab, 0x2b, 0x3d, 0x31, 0xa4, 0xd5, 0x2b, 0x5e, 0x00, 0xd5, 0x9a, 0x22, 0x34, 0xe0, 0x53, 0x3f, 0x59, 0x7f, 0x2c, 0x6d, 0x72, 0x9a, 0xa4, 0xbe, 0x3d, 0x42, 0x05, 0x1b, 0xf2, 0x7f, 0x88, 0x56, 0xd1, 0x7c, 0x7d, 0x6b, 0x9f, 0x43, 0xfe, 0x65, 0x19, 0xae, 0x9c, 0x4c, + /* (2^293)P */ 0xf3, 0x7c, 0x20, 0xa9, 0xfc, 0xf2, 0xf2, 0x3b, 0x3c, 0x57, 0x41, 0x94, 0xe5, 0xcc, 0x6a, 0x37, 0x5d, 0x09, 0xf2, 0xab, 0xc2, 0xca, 0x60, 0x38, 0x6b, 0x7a, 0xe1, 0x78, 0x2b, 0xc1, 0x1d, 0xe8, 0xfd, 0xbc, 0x3d, 0x5c, 0xa2, 0xdb, 0x49, 0x20, 0x79, 0xe6, 0x1b, 0x9b, 0x65, 0xd9, 0x6d, 0xec, 0x57, 0x1d, 0xd2, 0xe9, 0x90, 0xeb, 0x43, 0x7b, + /* (2^294)P */ 0x2a, 0x8b, 0x2e, 0x19, 0x18, 0x10, 0xb8, 0x83, 0xe7, 0x7d, 0x2d, 0x9a, 0x3a, 0xe5, 0xd1, 0xe4, 0x7c, 0x38, 0xe5, 0x59, 0x2a, 0x6e, 0xd9, 0x01, 0x29, 0x3d, 0x23, 0xf7, 0x52, 0xba, 0x61, 0x04, 0x9a, 0xde, 0xc4, 0x31, 0x50, 0xeb, 0x1b, 0xaa, 0xde, 0x39, 0x58, 0xd8, 0x1b, 0x1e, 0xfc, 0x57, 0x9a, 0x28, 0x43, 0x9e, 0x97, 0x5e, 0xaa, 0xa3, + /* (2^295)P */ 0x97, 0x0a, 0x74, 0xc4, 0x39, 0x99, 0x6b, 0x40, 0xc7, 0x3e, 0x8c, 0xa7, 0xb1, 0x4e, 0x9a, 0x59, 0x6e, 0x1c, 0xfe, 0xfc, 0x2a, 0x5e, 0x73, 0x2b, 0x8c, 0xa9, 0x71, 0xf5, 0xda, 0x6b, 0x15, 0xab, 0xf7, 0xbe, 0x2a, 0x44, 0x5f, 0xba, 0xae, 0x67, 0x93, 0xc5, 0x86, 0xc1, 0xb8, 0xdf, 0xdc, 0xcb, 0xd7, 0xff, 0xb1, 0x71, 0x7c, 0x6f, 0x88, 0xf8, + /* (2^296)P */ 0x3f, 0x89, 0xb1, 0xbf, 0x24, 0x16, 0xac, 0x56, 0xfe, 0xdf, 0x94, 0x71, 0xbf, 0xd6, 0x57, 0x0c, 0xb4, 0x77, 0x37, 0xaa, 0x2a, 0x70, 0x76, 0x49, 0xaf, 0x0c, 0x97, 0x8e, 0x78, 0x2a, 0x67, 0xc9, 0x3b, 0x3d, 0x5b, 0x01, 0x2f, 0xda, 0xd5, 0xa8, 0xde, 0x02, 0xa9, 0xac, 0x76, 0x00, 0x0b, 0x46, 0xc6, 0x2d, 0xdc, 0x08, 0xf4, 0x10, 0x2c, 0xbe, + /* (2^297)P */ 0xcb, 0x07, 0xf9, 0x91, 0xc6, 0xd5, 0x3e, 0x54, 0x63, 0xae, 0xfc, 0x10, 0xbe, 0x3a, 0x20, 0x73, 0x4e, 0x65, 0x0e, 0x2d, 0x86, 0x77, 0x83, 0x9d, 0xe2, 0x0a, 0xe9, 0xac, 0x22, 0x52, 0x76, 0xd4, 0x6e, 0xfa, 0xe0, 0x09, 0xef, 0x78, 0x82, 0x9f, 0x26, 0xf9, 0x06, 0xb5, 0xe7, 0x05, 0x0e, 0xf2, 0x46, 0x72, 0x93, 0xd3, 0x24, 0xbd, 0x87, 0x60, + /* (2^298)P */ 0x14, 0x55, 0x84, 0x7b, 0x6c, 0x60, 0x80, 0x73, 0x8c, 0xbe, 0x2d, 0xd6, 0x69, 0xd6, 0x17, 0x26, 0x44, 0x9f, 0x88, 0xa2, 0x39, 0x7c, 0x89, 0xbc, 0x6d, 0x9e, 0x46, 0xb6, 0x68, 0x66, 0xea, 0xdc, 0x31, 0xd6, 0x21, 0x51, 0x9f, 0x28, 0x28, 0xaf, 0x9e, 0x47, 0x2c, 0x4c, 0x8f, 0xf3, 0xaf, 0x1f, 0xe4, 0xab, 0xac, 0xe9, 0x0c, 0x91, 0x3a, 0x61, + /* (2^299)P */ 0xb0, 0x37, 0x55, 0x4b, 0xe9, 0xc3, 0xb1, 0xce, 0x42, 0xe6, 0xc5, 0x11, 0x7f, 0x2c, 0x11, 0xfc, 0x4e, 0x71, 0x17, 0x00, 0x74, 0x7f, 0xbf, 0x07, 0x4d, 0xfd, 0x40, 0xb2, 0x87, 0xb0, 0xef, 0x1f, 0x35, 0x2c, 0x2d, 0xd7, 0xe1, 0xe4, 0xad, 0x0e, 0x7f, 0x63, 0x66, 0x62, 0x23, 0x41, 0xf6, 0xc1, 0x14, 0xa6, 0xd7, 0xa9, 0x11, 0x56, 0x9d, 0x1b, + /* (2^300)P */ 0x02, 0x82, 0x42, 0x18, 0x4f, 0x1b, 0xc9, 0x5d, 0x78, 0x5f, 0xee, 0xed, 0x01, 0x49, 0x8f, 0xf2, 0xa0, 0xe2, 0x6e, 0xbb, 0x6b, 0x04, 0x8d, 0xb2, 0x41, 0xae, 0xc8, 0x1b, 0x59, 0x34, 0xb8, 0x2a, 0xdb, 0x1f, 0xd2, 0x52, 0xdf, 0x3f, 0x35, 0x00, 0x8b, 0x61, 0xbc, 0x97, 0xa0, 0xc4, 0x77, 0xd1, 0xe4, 0x2c, 0x59, 0x68, 0xff, 0x30, 0xf2, 0xe2, + /* (2^301)P */ 0x79, 0x08, 0xb1, 0xdb, 0x55, 0xae, 0xd0, 0xed, 0xda, 0xa0, 0xec, 0x6c, 0xae, 0x68, 0xf2, 0x0b, 0x61, 0xb3, 0xf5, 0x21, 0x69, 0x87, 0x0b, 0x03, 0xea, 0x8a, 0x15, 0xd9, 0x7e, 0xca, 0xf7, 0xcd, 0xf3, 0x33, 0xb3, 0x4c, 0x5b, 0x23, 0x4e, 0x6f, 0x90, 0xad, 0x91, 0x4b, 0x4f, 0x46, 0x37, 0xe5, 0xe8, 0xb7, 0xeb, 0xd5, 0xca, 0x34, 0x4e, 0x23, + /* (2^302)P */ 0x09, 0x02, 0xdd, 0xfd, 0x70, 0xac, 0x56, 0x80, 0x36, 0x5e, 0x49, 0xd0, 0x3f, 0xc2, 0xe0, 0xba, 0x46, 0x7f, 0x5c, 0xf7, 0xc5, 0xbd, 0xd5, 0x55, 0x7d, 0x3f, 0xd5, 0x7d, 0x06, 0xdf, 0x27, 0x20, 0x4f, 0xe9, 0x30, 0xec, 0x1b, 0xa0, 0x0c, 0xd4, 0x2c, 0xe1, 0x2b, 0x65, 0x73, 0xea, 0x75, 0x35, 0xe8, 0xe6, 0x56, 0xd6, 0x07, 0x15, 0x99, 0xdf, + /* (2^303)P */ 0x4e, 0x10, 0xb7, 0xd0, 0x63, 0x8c, 0xcf, 0x16, 0x00, 0x7c, 0x58, 0xdf, 0x86, 0xdc, 0x4e, 0xca, 0x9c, 0x40, 0x5a, 0x42, 0xfd, 0xec, 0x98, 0xa4, 0x42, 0x53, 0xae, 0x16, 0x9d, 0xfd, 0x75, 0x5a, 0x12, 0x56, 0x1e, 0xc6, 0x57, 0xcc, 0x79, 0x27, 0x96, 0x00, 0xcf, 0x80, 0x4f, 0x8a, 0x36, 0x5c, 0xbb, 0xe9, 0x12, 0xdb, 0xb6, 0x2b, 0xad, 0x96, + /* (2^304)P */ 0x92, 0x32, 0x1f, 0xfd, 0xc6, 0x02, 0x94, 0x08, 0x1b, 0x60, 0x6a, 0x9f, 0x8b, 0xd6, 0xc8, 0xad, 0xd5, 0x1b, 0x27, 0x4e, 0xa4, 0x4d, 0x4a, 0x00, 0x10, 0x5f, 0x86, 0x11, 0xf5, 0xe3, 0x14, 0x32, 0x43, 0xee, 0xb9, 0xc7, 0xab, 0xf4, 0x6f, 0xe5, 0x66, 0x0c, 0x06, 0x0d, 0x96, 0x79, 0x28, 0xaf, 0x45, 0x2b, 0x56, 0xbe, 0xe4, 0x4a, 0x52, 0xd6, + /* (2^305)P */ 0x15, 0x16, 0x69, 0xef, 0x60, 0xca, 0x82, 0x25, 0x0f, 0xc6, 0x30, 0xa0, 0x0a, 0xd1, 0x83, 0x29, 0xcd, 0xb6, 0x89, 0x6c, 0xf5, 0xb2, 0x08, 0x38, 0xe6, 0xca, 0x6b, 0x19, 0x93, 0xc6, 0x5f, 0x75, 0x8e, 0x60, 0x34, 0x23, 0xc4, 0x13, 0x17, 0x69, 0x55, 0xcc, 0x72, 0x9c, 0x2b, 0x6c, 0x80, 0xf4, 0x4b, 0x8b, 0xb6, 0x97, 0x65, 0x07, 0xb6, 0xfb, + /* (2^306)P */ 0x01, 0x99, 0x74, 0x28, 0xa6, 0x67, 0xa3, 0xe5, 0x25, 0xfb, 0xdf, 0x82, 0x93, 0xe7, 0x35, 0x74, 0xce, 0xe3, 0x15, 0x1c, 0x1d, 0x79, 0x52, 0x84, 0x08, 0x04, 0x2f, 0x5c, 0xb8, 0xcd, 0x7f, 0x89, 0xb0, 0x39, 0x93, 0x63, 0xc9, 0x5d, 0x06, 0x01, 0x59, 0xf7, 0x7e, 0xf1, 0x4c, 0x3d, 0x12, 0x8d, 0x69, 0x1d, 0xb7, 0x21, 0x5e, 0x88, 0x82, 0xa2, + /* (2^307)P */ 0x8e, 0x69, 0xaf, 0x9a, 0x41, 0x0d, 0x9d, 0xcf, 0x8e, 0x8d, 0x5c, 0x51, 0x6e, 0xde, 0x0e, 0x48, 0x23, 0x89, 0xe5, 0x37, 0x80, 0xd6, 0x9d, 0x72, 0x32, 0x26, 0x38, 0x2d, 0x63, 0xa0, 0xfa, 0xd3, 0x40, 0xc0, 0x8c, 0x68, 0x6f, 0x2b, 0x1e, 0x9a, 0x39, 0x51, 0x78, 0x74, 0x9a, 0x7b, 0x4a, 0x8f, 0x0c, 0xa0, 0x88, 0x60, 0xa5, 0x21, 0xcd, 0xc7, + /* (2^308)P */ 0x3a, 0x7f, 0x73, 0x14, 0xbf, 0x89, 0x6a, 0x4c, 0x09, 0x5d, 0xf2, 0x93, 0x20, 0x2d, 0xc4, 0x29, 0x86, 0x06, 0x95, 0xab, 0x22, 0x76, 0x4c, 0x54, 0xe1, 0x7e, 0x80, 0x6d, 0xab, 0x29, 0x61, 0x87, 0x77, 0xf6, 0xc0, 0x3e, 0xda, 0xab, 0x65, 0x7e, 0x39, 0x12, 0xa1, 0x6b, 0x42, 0xf7, 0xc5, 0x97, 0x77, 0xec, 0x6f, 0x22, 0xbe, 0x44, 0xc7, 0x03, + /* (2^309)P */ 0xa5, 0x23, 0x90, 0x41, 0xa3, 0xc5, 0x3e, 0xe0, 0xa5, 0x32, 0x49, 0x1f, 0x39, 0x78, 0xb1, 0xd8, 0x24, 0xea, 0xd4, 0x87, 0x53, 0x42, 0x51, 0xf4, 0xd9, 0x46, 0x25, 0x2f, 0x62, 0xa9, 0x90, 0x9a, 0x4a, 0x25, 0x8a, 0xd2, 0x10, 0xe7, 0x3c, 0xbc, 0x58, 0x8d, 0x16, 0x14, 0x96, 0xa4, 0x6f, 0xf8, 0x12, 0x69, 0x91, 0x73, 0xe2, 0xfa, 0xf4, 0x57, + /* (2^310)P */ 0x51, 0x45, 0x3f, 0x96, 0xdc, 0x97, 0x38, 0xa6, 0x01, 0x63, 0x09, 0xea, 0xc2, 0x13, 0x30, 0xb0, 0x00, 0xb8, 0x0a, 0xce, 0xd1, 0x8f, 0x3e, 0x69, 0x62, 0x46, 0x33, 0x9c, 0xbf, 0x4b, 0xcb, 0x0c, 0x90, 0x1c, 0x45, 0xcf, 0x37, 0x5b, 0xf7, 0x4b, 0x5e, 0x95, 0xc3, 0x28, 0x9f, 0x08, 0x83, 0x53, 0x74, 0xab, 0x0c, 0xb4, 0xc0, 0xa1, 0xbc, 0x89, + /* (2^311)P */ 0x06, 0xb1, 0x51, 0x15, 0x65, 0x60, 0x21, 0x17, 0x7a, 0x20, 0x65, 0xee, 0x12, 0x35, 0x4d, 0x46, 0xf4, 0xf8, 0xd0, 0xb1, 0xca, 0x09, 0x30, 0x08, 0x89, 0x23, 0x3b, 0xe7, 0xab, 0x8b, 0x77, 0xa6, 0xad, 0x25, 0xdd, 0xea, 0x3c, 0x7d, 0xa5, 0x24, 0xb3, 0xe8, 0xfa, 0xfb, 0xc9, 0xf2, 0x71, 0xe9, 0xfa, 0xf2, 0xdc, 0x54, 0xdd, 0x55, 0x2e, 0x2f, + /* (2^312)P */ 0x7f, 0x96, 0x96, 0xfb, 0x52, 0x86, 0xcf, 0xea, 0x62, 0x18, 0xf1, 0x53, 0x1f, 0x61, 0x2a, 0x9f, 0x8c, 0x51, 0xca, 0x2c, 0xde, 0x6d, 0xce, 0xab, 0x58, 0x32, 0x0b, 0x33, 0x9b, 0x99, 0xb4, 0x5c, 0x88, 0x2a, 0x76, 0xcc, 0x3e, 0x54, 0x1e, 0x9d, 0xa2, 0x89, 0xe4, 0x19, 0xba, 0x80, 0xc8, 0x39, 0x32, 0x7f, 0x0f, 0xc7, 0x84, 0xbb, 0x43, 0x56, + /* (2^313)P */ 0x9b, 0x07, 0xb4, 0x42, 0xa9, 0xa0, 0x78, 0x4f, 0x28, 0x70, 0x2b, 0x7e, 0x61, 0xe0, 0xdd, 0x02, 0x98, 0xfc, 0xed, 0x31, 0x80, 0xf1, 0x15, 0x52, 0x89, 0x23, 0xcd, 0x5d, 0x2b, 0xc5, 0x19, 0x32, 0xfb, 0x70, 0x50, 0x7a, 0x97, 0x6b, 0x42, 0xdb, 0xca, 0xdb, 0xc4, 0x59, 0x99, 0xe0, 0x12, 0x1f, 0x17, 0xba, 0x8b, 0xf0, 0xc4, 0x38, 0x5d, 0x27, + /* (2^314)P */ 0x29, 0x1d, 0xdc, 0x2b, 0xf6, 0x5b, 0x04, 0x61, 0x36, 0x76, 0xa0, 0x56, 0x36, 0x6e, 0xd7, 0x24, 0x4d, 0xe7, 0xef, 0x44, 0xd2, 0xd5, 0x07, 0xcd, 0xc4, 0x9d, 0x80, 0x48, 0xc3, 0x38, 0xcf, 0xd8, 0xa3, 0xdd, 0xb2, 0x5e, 0xb5, 0x70, 0x15, 0xbb, 0x36, 0x85, 0x8a, 0xd7, 0xfb, 0x56, 0x94, 0x73, 0x9c, 0x81, 0xbe, 0xb1, 0x44, 0x28, 0xf1, 0x37, + /* (2^315)P */ 0xbf, 0xcf, 0x5c, 0xd2, 0xe2, 0xea, 0xc2, 0xcd, 0x70, 0x7a, 0x9d, 0xcb, 0x81, 0xc1, 0xe9, 0xf1, 0x56, 0x71, 0x52, 0xf7, 0x1b, 0x87, 0xc6, 0xd8, 0xcc, 0xb2, 0x69, 0xf3, 0xb0, 0xbd, 0xba, 0x83, 0x12, 0x26, 0xc4, 0xce, 0x72, 0xde, 0x3b, 0x21, 0x28, 0x9e, 0x5a, 0x94, 0xf5, 0x04, 0xa3, 0xc8, 0x0f, 0x5e, 0xbc, 0x71, 0xf9, 0x0d, 0xce, 0xf5, + /* (2^316)P */ 0x93, 0x97, 0x00, 0x85, 0xf4, 0xb4, 0x40, 0xec, 0xd9, 0x2b, 0x6c, 0xd6, 0x63, 0x9e, 0x93, 0x0a, 0x5a, 0xf4, 0xa7, 0x9a, 0xe3, 0x3c, 0xf0, 0x55, 0xd1, 0x96, 0x6c, 0xf5, 0x2a, 0xce, 0xd7, 0x95, 0x72, 0xbf, 0xc5, 0x0c, 0xce, 0x79, 0xa2, 0x0a, 0x78, 0xe0, 0x72, 0xd0, 0x66, 0x28, 0x05, 0x75, 0xd3, 0x23, 0x09, 0x91, 0xed, 0x7e, 0xc4, 0xbc, + /* (2^317)P */ 0x77, 0xc2, 0x9a, 0xf7, 0xa6, 0xe6, 0x18, 0xb4, 0xe7, 0xf6, 0xda, 0xec, 0x44, 0x6d, 0xfb, 0x08, 0xee, 0x65, 0xa8, 0x92, 0x85, 0x1f, 0xba, 0x38, 0x93, 0x20, 0x5c, 0x4d, 0xd2, 0x18, 0x0f, 0x24, 0xbe, 0x1a, 0x96, 0x44, 0x7d, 0xeb, 0xb3, 0xda, 0x95, 0xf4, 0xaf, 0x6c, 0x06, 0x0f, 0x47, 0x37, 0xc8, 0x77, 0x63, 0xe1, 0x29, 0xef, 0xff, 0xa5, + /* (2^318)P */ 0x16, 0x12, 0xd9, 0x47, 0x90, 0x22, 0x9b, 0x05, 0xf2, 0xa5, 0x9a, 0xae, 0x83, 0x98, 0xb5, 0xac, 0xab, 0x29, 0xaa, 0xdc, 0x5f, 0xde, 0xcd, 0xf7, 0x42, 0xad, 0x3b, 0x96, 0xd6, 0x3e, 0x6e, 0x52, 0x47, 0xb1, 0xab, 0x51, 0xde, 0x49, 0x7c, 0x87, 0x8d, 0x86, 0xe2, 0x70, 0x13, 0x21, 0x51, 0x1c, 0x0c, 0x25, 0xc1, 0xb0, 0xe6, 0x19, 0xcf, 0x12, + /* (2^319)P */ 0xf0, 0xbc, 0x97, 0x8f, 0x4b, 0x2f, 0xd1, 0x1f, 0x8c, 0x57, 0xed, 0x3c, 0xf4, 0x26, 0x19, 0xbb, 0x60, 0xca, 0x24, 0xc5, 0xd9, 0x97, 0xe2, 0x5f, 0x76, 0x49, 0x39, 0x7e, 0x2d, 0x12, 0x21, 0x98, 0xda, 0xe6, 0xdb, 0xd2, 0xd8, 0x9f, 0x18, 0xd8, 0x83, 0x6c, 0xba, 0x89, 0x8d, 0x29, 0xfa, 0x46, 0x33, 0x8c, 0x28, 0xdf, 0x6a, 0xb3, 0x69, 0x28, + /* (2^320)P */ 0x86, 0x17, 0xbc, 0xd6, 0x7c, 0xba, 0x1e, 0x83, 0xbb, 0x84, 0xb5, 0x8c, 0xad, 0xdf, 0xa1, 0x24, 0x81, 0x70, 0x40, 0x0f, 0xad, 0xad, 0x3b, 0x23, 0xd0, 0x93, 0xa0, 0x49, 0x5c, 0x4b, 0x51, 0xbe, 0x20, 0x49, 0x4e, 0xda, 0x2d, 0xd3, 0xad, 0x1b, 0x74, 0x08, 0x41, 0xf0, 0xef, 0x19, 0xe9, 0x45, 0x5d, 0x02, 0xae, 0x26, 0x25, 0xd9, 0xd1, 0xc2, + /* (2^321)P */ 0x48, 0x81, 0x3e, 0xb2, 0x83, 0xf8, 0x4d, 0xb3, 0xd0, 0x4c, 0x75, 0xb3, 0xa0, 0x52, 0x26, 0xf2, 0xaf, 0x5d, 0x36, 0x70, 0x72, 0xd6, 0xb7, 0x88, 0x08, 0x69, 0xbd, 0x15, 0x25, 0xb1, 0x45, 0x1b, 0xb7, 0x0b, 0x5f, 0x71, 0x5d, 0x83, 0x49, 0xb9, 0x84, 0x3b, 0x7c, 0xc1, 0x50, 0x93, 0x05, 0x53, 0xe0, 0x61, 0xea, 0xc1, 0xef, 0xdb, 0x82, 0x97, + /* (2^322)P */ 0x00, 0xd5, 0xc3, 0x3a, 0x4d, 0x8a, 0x23, 0x7a, 0xef, 0xff, 0x37, 0xef, 0xf3, 0xbc, 0xa9, 0xb6, 0xae, 0xd7, 0x3a, 0x7b, 0xfd, 0x3e, 0x8e, 0x9b, 0xab, 0x44, 0x54, 0x60, 0x28, 0x6c, 0xbf, 0x15, 0x24, 0x4a, 0x56, 0x60, 0x7f, 0xa9, 0x7a, 0x28, 0x59, 0x2c, 0x8a, 0xd1, 0x7d, 0x6b, 0x00, 0xfd, 0xa5, 0xad, 0xbc, 0x19, 0x3f, 0xcb, 0x73, 0xe0, + /* (2^323)P */ 0xcf, 0x9e, 0x66, 0x06, 0x4d, 0x2b, 0xf5, 0x9c, 0xc2, 0x9d, 0x9e, 0xed, 0x5a, 0x5c, 0x2d, 0x00, 0xbf, 0x29, 0x90, 0x88, 0xe4, 0x5d, 0xfd, 0xe2, 0xf0, 0x38, 0xec, 0x4d, 0x26, 0xea, 0x54, 0xf0, 0x3c, 0x84, 0x10, 0x6a, 0xf9, 0x66, 0x9c, 0xe7, 0x21, 0xfd, 0x0f, 0xc7, 0x13, 0x50, 0x81, 0xb6, 0x50, 0xf9, 0x04, 0x7f, 0xa4, 0x37, 0x85, 0x14, + /* (2^324)P */ 0xdb, 0x87, 0x49, 0xc7, 0xa8, 0x39, 0x0c, 0x32, 0x98, 0x0c, 0xb9, 0x1a, 0x1b, 0x4d, 0xe0, 0x8a, 0x9a, 0x8e, 0x8f, 0xab, 0x5a, 0x17, 0x3d, 0x04, 0x21, 0xce, 0x3e, 0x2c, 0xf9, 0xa3, 0x97, 0xe4, 0x77, 0x95, 0x0e, 0xb6, 0xa5, 0x15, 0xad, 0x3a, 0x1e, 0x46, 0x53, 0x17, 0x09, 0x83, 0x71, 0x4e, 0x86, 0x38, 0xd5, 0x23, 0x44, 0x16, 0x8d, 0xc8, + /* (2^325)P */ 0x05, 0x5e, 0x99, 0x08, 0xbb, 0xc3, 0xc0, 0xb7, 0x6c, 0x12, 0xf2, 0xf3, 0xf4, 0x7c, 0x6a, 0x4d, 0x9e, 0xeb, 0x3d, 0xb9, 0x63, 0x94, 0xce, 0x81, 0xd8, 0x11, 0xcb, 0x55, 0x69, 0x4a, 0x20, 0x0b, 0x4c, 0x2e, 0x14, 0xb8, 0xd4, 0x6a, 0x7c, 0xf0, 0xed, 0xfc, 0x8f, 0xef, 0xa0, 0xeb, 0x6c, 0x01, 0xe2, 0xdc, 0x10, 0x22, 0xa2, 0x01, 0x85, 0x64, + /* (2^326)P */ 0x58, 0xe1, 0x9c, 0x27, 0x55, 0xc6, 0x25, 0xa6, 0x7d, 0x67, 0x88, 0x65, 0x99, 0x6c, 0xcb, 0xdb, 0x27, 0x4f, 0x44, 0x29, 0xf5, 0x4a, 0x23, 0x10, 0xbc, 0x03, 0x3f, 0x36, 0x1e, 0xef, 0xb0, 0xba, 0x75, 0xe8, 0x74, 0x5f, 0x69, 0x3e, 0x26, 0x40, 0xb4, 0x2f, 0xdc, 0x43, 0xbf, 0xa1, 0x8b, 0xbd, 0xca, 0x6e, 0xc1, 0x6e, 0x21, 0x79, 0xa0, 0xd0, + /* (2^327)P */ 0x78, 0x93, 0x4a, 0x2d, 0x22, 0x6e, 0x6e, 0x7d, 0x74, 0xd2, 0x66, 0x58, 0xce, 0x7b, 0x1d, 0x97, 0xb1, 0xf2, 0xda, 0x1c, 0x79, 0xfb, 0xba, 0xd1, 0xc0, 0xc5, 0x6e, 0xc9, 0x11, 0x89, 0xd2, 0x41, 0x8d, 0x70, 0xb9, 0xcc, 0xea, 0x6a, 0xb3, 0x45, 0xb6, 0x05, 0x2e, 0xf2, 0x17, 0xf1, 0x27, 0xb8, 0xed, 0x06, 0x1f, 0xdb, 0x9d, 0x1f, 0x69, 0x28, + /* (2^328)P */ 0x93, 0x12, 0xa8, 0x11, 0xe1, 0x92, 0x30, 0x8d, 0xac, 0xe1, 0x1c, 0x60, 0x7c, 0xed, 0x2d, 0x2e, 0xd3, 0x03, 0x5c, 0x9c, 0xc5, 0xbd, 0x64, 0x4a, 0x8c, 0xba, 0x76, 0xfe, 0xc6, 0xc1, 0xea, 0xc2, 0x4f, 0xbe, 0x70, 0x3d, 0x64, 0xcf, 0x8e, 0x18, 0xcb, 0xcd, 0x57, 0xa7, 0xf7, 0x36, 0xa9, 0x6b, 0x3e, 0xb8, 0x69, 0xee, 0x47, 0xa2, 0x7e, 0xb2, + /* (2^329)P */ 0x96, 0xaf, 0x3a, 0xf5, 0xed, 0xcd, 0xaf, 0xf7, 0x82, 0xaf, 0x59, 0x62, 0x0b, 0x36, 0x85, 0xf9, 0xaf, 0xd6, 0x38, 0xff, 0x87, 0x2e, 0x1d, 0x6c, 0x8b, 0xaf, 0x3b, 0xdf, 0x28, 0xa2, 0xd6, 0x4d, 0x80, 0x92, 0xc3, 0x0f, 0x34, 0xa8, 0xae, 0x69, 0x5d, 0x7b, 0x9d, 0xbc, 0xf5, 0xfd, 0x1d, 0xb1, 0x96, 0x55, 0x86, 0xe1, 0x5c, 0xb6, 0xac, 0xb9, + /* (2^330)P */ 0x50, 0x9e, 0x37, 0x28, 0x7d, 0xa8, 0x33, 0x63, 0xda, 0x3f, 0x20, 0x98, 0x0e, 0x09, 0xa8, 0x77, 0x3b, 0x7a, 0xfc, 0x16, 0x85, 0x44, 0x64, 0x77, 0x65, 0x68, 0x92, 0x41, 0xc6, 0x1f, 0xdf, 0x27, 0xf9, 0xec, 0xa0, 0x61, 0x22, 0xea, 0x19, 0xe7, 0x75, 0x8b, 0x4e, 0xe5, 0x0f, 0xb7, 0xf7, 0xd2, 0x53, 0xf4, 0xdd, 0x4a, 0xaa, 0x78, 0x40, 0xb7, + /* (2^331)P */ 0xd4, 0x89, 0xe3, 0x79, 0xba, 0xb6, 0xc3, 0xda, 0xe6, 0x78, 0x65, 0x7d, 0x6e, 0x22, 0x62, 0xb1, 0x3d, 0xea, 0x90, 0x84, 0x30, 0x5e, 0xd4, 0x39, 0x84, 0x78, 0xd9, 0x75, 0xd6, 0xce, 0x2a, 0x11, 0x29, 0x69, 0xa4, 0x5e, 0xaa, 0x2a, 0x98, 0x5a, 0xe5, 0x91, 0x8f, 0xb2, 0xfb, 0xda, 0x97, 0xe8, 0x83, 0x6f, 0x04, 0xb9, 0x5d, 0xaf, 0xe1, 0x9b, + /* (2^332)P */ 0x8b, 0xe4, 0xe1, 0x48, 0x9c, 0xc4, 0x83, 0x89, 0xdf, 0x65, 0xd3, 0x35, 0x55, 0x13, 0xf4, 0x1f, 0x36, 0x92, 0x33, 0x38, 0xcb, 0xed, 0x15, 0xe6, 0x60, 0x2d, 0x25, 0xf5, 0x36, 0x60, 0x3a, 0x37, 0x9b, 0x71, 0x9d, 0x42, 0xb0, 0x14, 0xc8, 0xba, 0x62, 0xa3, 0x49, 0xb0, 0x88, 0xc1, 0x72, 0x73, 0xdd, 0x62, 0x40, 0xa9, 0x62, 0x88, 0x99, 0xca, + /* (2^333)P */ 0x47, 0x7b, 0xea, 0xda, 0x46, 0x2f, 0x45, 0xc6, 0xe3, 0xb4, 0x4d, 0x8d, 0xac, 0x0b, 0x54, 0x22, 0x06, 0x31, 0x16, 0x66, 0x3e, 0xe4, 0x38, 0x12, 0xcd, 0xf3, 0xe7, 0x99, 0x37, 0xd9, 0x62, 0x24, 0x4b, 0x05, 0xf2, 0x58, 0xe6, 0x29, 0x4b, 0x0d, 0xf6, 0xc1, 0xba, 0xa0, 0x1e, 0x0f, 0xcb, 0x1f, 0xc6, 0x2b, 0x19, 0xfc, 0x82, 0x01, 0xd0, 0x86, + /* (2^334)P */ 0xa2, 0xae, 0x77, 0x20, 0xfb, 0xa8, 0x18, 0xb4, 0x61, 0xef, 0xe8, 0x52, 0x79, 0xbb, 0x86, 0x90, 0x5d, 0x2e, 0x76, 0xed, 0x66, 0x60, 0x5d, 0x00, 0xb5, 0xa4, 0x00, 0x40, 0x89, 0xec, 0xd1, 0xd2, 0x0d, 0x26, 0xb9, 0x30, 0xb2, 0xd2, 0xb8, 0xe8, 0x0e, 0x56, 0xf9, 0x67, 0x94, 0x2e, 0x62, 0xe1, 0x79, 0x48, 0x2b, 0xa9, 0xfa, 0xea, 0xdb, 0x28, + /* (2^335)P */ 0x35, 0xf1, 0xb0, 0x43, 0xbd, 0x27, 0xef, 0x18, 0x44, 0xa2, 0x04, 0xb4, 0x69, 0xa1, 0x97, 0x1f, 0x8c, 0x04, 0x82, 0x9b, 0x00, 0x6d, 0xf8, 0xbf, 0x7d, 0xc1, 0x5b, 0xab, 0xe8, 0xb2, 0x34, 0xbd, 0xaf, 0x7f, 0xb2, 0x0d, 0xf3, 0xed, 0xfc, 0x5b, 0x50, 0xee, 0xe7, 0x4a, 0x20, 0xd9, 0xf5, 0xc6, 0x9a, 0x97, 0x6d, 0x07, 0x2f, 0xb9, 0x31, 0x02, + /* (2^336)P */ 0xf9, 0x54, 0x4a, 0xc5, 0x61, 0x7e, 0x1d, 0xa6, 0x0e, 0x1a, 0xa8, 0xd3, 0x8c, 0x36, 0x7d, 0xf1, 0x06, 0xb1, 0xac, 0x93, 0xcd, 0xe9, 0x8f, 0x61, 0x6c, 0x5d, 0x03, 0x23, 0xdf, 0x85, 0x53, 0x39, 0x63, 0x5e, 0xeb, 0xf3, 0xd3, 0xd3, 0x75, 0x97, 0x9b, 0x62, 0x9b, 0x01, 0xb3, 0x19, 0xd8, 0x2b, 0x36, 0xf2, 0x2c, 0x2c, 0x6f, 0x36, 0xc6, 0x3c, + /* (2^337)P */ 0x05, 0x74, 0x43, 0x10, 0xb6, 0xb0, 0xf8, 0xbf, 0x02, 0x46, 0x9a, 0xee, 0xc1, 0xaf, 0xc1, 0xe5, 0x5a, 0x2e, 0xbb, 0xe1, 0xdc, 0xc6, 0xce, 0x51, 0x29, 0x50, 0xbf, 0x1b, 0xde, 0xff, 0xba, 0x4d, 0x8d, 0x8b, 0x7e, 0xe7, 0xbd, 0x5b, 0x8f, 0xbe, 0xe3, 0x75, 0x71, 0xff, 0x37, 0x05, 0x5a, 0x10, 0xeb, 0x54, 0x7e, 0x44, 0x72, 0x2c, 0xd4, 0xfc, + /* (2^338)P */ 0x03, 0x12, 0x1c, 0xb2, 0x08, 0x90, 0xa1, 0x2d, 0x50, 0xa0, 0xad, 0x7f, 0x8d, 0xa6, 0x97, 0xc1, 0xbd, 0xdc, 0xc3, 0xa7, 0xad, 0x31, 0xdf, 0xb8, 0x03, 0x84, 0xc3, 0xb9, 0x29, 0x3d, 0x92, 0x2e, 0xc3, 0x90, 0x07, 0xe8, 0xa7, 0xc7, 0xbc, 0x61, 0xe9, 0x3e, 0xa0, 0x35, 0xda, 0x1d, 0xab, 0x48, 0xfe, 0x50, 0xc9, 0x25, 0x59, 0x23, 0x69, 0x3f, + /* (2^339)P */ 0x8e, 0x91, 0xab, 0x6b, 0x91, 0x4f, 0x89, 0x76, 0x67, 0xad, 0xb2, 0x65, 0x9d, 0xad, 0x02, 0x36, 0xdc, 0xac, 0x96, 0x93, 0x97, 0x21, 0x14, 0xd0, 0xe8, 0x11, 0x60, 0x1e, 0xeb, 0x96, 0x06, 0xf2, 0x53, 0xf2, 0x6d, 0xb7, 0x93, 0x6f, 0x26, 0x91, 0x23, 0xe3, 0x34, 0x04, 0x92, 0x91, 0x37, 0x08, 0x50, 0xd6, 0x28, 0x09, 0x27, 0xa1, 0x0c, 0x00, + /* (2^340)P */ 0x1f, 0xbb, 0x21, 0x26, 0x33, 0xcb, 0xa4, 0xd1, 0xee, 0x85, 0xf9, 0xd9, 0x3c, 0x90, 0xc3, 0xd1, 0x26, 0xa2, 0x25, 0x93, 0x43, 0x61, 0xed, 0x91, 0x6e, 0x54, 0x03, 0x2e, 0x42, 0x9d, 0xf7, 0xa6, 0x02, 0x0f, 0x2f, 0x9c, 0x7a, 0x8d, 0x12, 0xc2, 0x18, 0xfc, 0x41, 0xff, 0x85, 0x26, 0x1a, 0x44, 0x55, 0x0b, 0x89, 0xab, 0x6f, 0x62, 0x33, 0x8c, + /* (2^341)P */ 0xe0, 0x3c, 0x5d, 0x70, 0x64, 0x87, 0x81, 0x35, 0xf2, 0x37, 0xa6, 0x24, 0x3e, 0xe0, 0x62, 0xd5, 0x71, 0xe7, 0x93, 0xfb, 0xac, 0xc3, 0xe7, 0xc7, 0x04, 0xe2, 0x70, 0xd3, 0x29, 0x5b, 0x21, 0xbf, 0xf4, 0x26, 0x5d, 0xf3, 0x95, 0xb4, 0x2a, 0x6a, 0x07, 0x55, 0xa6, 0x4b, 0x3b, 0x15, 0xf2, 0x25, 0x8a, 0x95, 0x3f, 0x63, 0x2f, 0x7a, 0x23, 0x96, + /* (2^342)P */ 0x0d, 0x3d, 0xd9, 0x13, 0xa7, 0xb3, 0x5e, 0x67, 0xf7, 0x02, 0x23, 0xee, 0x84, 0xff, 0x99, 0xda, 0xb9, 0x53, 0xf8, 0xf0, 0x0e, 0x39, 0x2f, 0x3c, 0x64, 0x34, 0xe3, 0x09, 0xfd, 0x2b, 0x33, 0xc7, 0xfe, 0x62, 0x2b, 0x84, 0xdf, 0x2b, 0xd2, 0x7c, 0x26, 0x01, 0x70, 0x66, 0x5b, 0x85, 0xc2, 0xbe, 0x88, 0x37, 0xf1, 0x30, 0xac, 0xb8, 0x76, 0xa3, + /* (2^343)P */ 0x6e, 0x01, 0xf0, 0x55, 0x35, 0xe4, 0xbd, 0x43, 0x62, 0x9d, 0xd6, 0x11, 0xef, 0x6f, 0xb8, 0x8c, 0xaa, 0x98, 0x87, 0xc6, 0x6d, 0xc4, 0xcc, 0x74, 0x92, 0x53, 0x4a, 0xdf, 0xe4, 0x08, 0x89, 0x17, 0xd0, 0x0f, 0xf4, 0x00, 0x60, 0x78, 0x08, 0x44, 0xb5, 0xda, 0x18, 0xed, 0x98, 0xc8, 0x61, 0x3d, 0x39, 0xdb, 0xcf, 0x1d, 0x49, 0x40, 0x65, 0x75, + /* (2^344)P */ 0x8e, 0x10, 0xae, 0x5f, 0x06, 0xd2, 0x95, 0xfd, 0x20, 0x16, 0x49, 0x5b, 0x57, 0xbe, 0x22, 0x8b, 0x43, 0xfb, 0xe6, 0xcc, 0x26, 0xa5, 0x5d, 0xd3, 0x68, 0xc5, 0xf9, 0x5a, 0x86, 0x24, 0x87, 0x27, 0x05, 0xfd, 0xe2, 0xff, 0xb3, 0xa3, 0x7b, 0x37, 0x59, 0xc5, 0x4e, 0x14, 0x94, 0xf9, 0x3b, 0xcb, 0x7c, 0xed, 0xca, 0x1d, 0xb2, 0xac, 0x05, 0x4a, + /* (2^345)P */ 0xf4, 0xd1, 0x81, 0xeb, 0x89, 0xbf, 0xfe, 0x1e, 0x41, 0x92, 0x29, 0xee, 0xe1, 0x43, 0xf5, 0x86, 0x1d, 0x2f, 0xbb, 0x1e, 0x84, 0x5d, 0x7b, 0x8d, 0xd5, 0xda, 0xee, 0x1e, 0x8a, 0xd0, 0x27, 0xf2, 0x60, 0x51, 0x59, 0x82, 0xf4, 0x84, 0x2b, 0x5b, 0x14, 0x2d, 0x81, 0x82, 0x3e, 0x2b, 0xb4, 0x6d, 0x51, 0x4f, 0xc5, 0xcb, 0xbf, 0x74, 0xe3, 0xb4, + /* (2^346)P */ 0x19, 0x2f, 0x22, 0xb3, 0x04, 0x5f, 0x81, 0xca, 0x05, 0x60, 0xb9, 0xaa, 0xee, 0x0e, 0x2f, 0x48, 0x38, 0xf9, 0x91, 0xb4, 0x66, 0xe4, 0x57, 0x28, 0x54, 0x10, 0xe9, 0x61, 0x9d, 0xd4, 0x90, 0x75, 0xb1, 0x39, 0x23, 0xb6, 0xfc, 0x82, 0xe0, 0xfa, 0xbb, 0x5c, 0x6e, 0xc3, 0x44, 0x13, 0x00, 0x83, 0x55, 0x9e, 0x8e, 0x10, 0x61, 0x81, 0x91, 0x04, + /* (2^347)P */ 0x5f, 0x2a, 0xd7, 0x81, 0xd9, 0x9c, 0xbb, 0x79, 0xbc, 0x62, 0x56, 0x98, 0x03, 0x5a, 0x18, 0x85, 0x2a, 0x9c, 0xd0, 0xfb, 0xd2, 0xb1, 0xaf, 0xef, 0x0d, 0x24, 0xc5, 0xfa, 0x39, 0xbb, 0x6b, 0xed, 0xa4, 0xdf, 0xe4, 0x87, 0xcd, 0x41, 0xd3, 0x72, 0x32, 0xc6, 0x28, 0x21, 0xb1, 0xba, 0x8b, 0xa3, 0x91, 0x79, 0x76, 0x22, 0x25, 0x10, 0x61, 0xd1, + /* (2^348)P */ 0x73, 0xb5, 0x32, 0x97, 0xdd, 0xeb, 0xdd, 0x22, 0x22, 0xf1, 0x33, 0x3c, 0x77, 0x56, 0x7d, 0x6b, 0x48, 0x2b, 0x05, 0x81, 0x03, 0x03, 0x91, 0x9a, 0xe3, 0x5e, 0xd4, 0xee, 0x3f, 0xf8, 0xbb, 0x50, 0x21, 0x32, 0x4c, 0x4a, 0x58, 0x49, 0xde, 0x0c, 0xde, 0x30, 0x82, 0x3d, 0x92, 0xf0, 0x6c, 0xcc, 0x32, 0x3e, 0xd2, 0x78, 0x8a, 0x6e, 0x2c, 0xd0, + /* (2^349)P */ 0xf0, 0xf7, 0xa1, 0x0b, 0xc1, 0x74, 0x85, 0xa8, 0xe9, 0xdd, 0x48, 0xa1, 0xc0, 0x16, 0xd8, 0x2b, 0x61, 0x08, 0xc2, 0x2b, 0x30, 0x26, 0x79, 0xce, 0x9e, 0xfd, 0x39, 0xd7, 0x81, 0xa4, 0x63, 0x8c, 0xd5, 0x74, 0xa0, 0x88, 0xfa, 0x03, 0x30, 0xe9, 0x7f, 0x2b, 0xc6, 0x02, 0xc9, 0x5e, 0xe4, 0xd5, 0x4d, 0x92, 0xd0, 0xf6, 0xf2, 0x5b, 0x79, 0x08, + /* (2^350)P */ 0x34, 0x89, 0x81, 0x43, 0xd1, 0x94, 0x2c, 0x10, 0x54, 0x9b, 0xa0, 0xe5, 0x44, 0xe8, 0xc2, 0x2f, 0x3e, 0x0e, 0x74, 0xae, 0xba, 0xe2, 0xac, 0x85, 0x6b, 0xd3, 0x5c, 0x97, 0xf7, 0x90, 0xf1, 0x12, 0xc0, 0x03, 0xc8, 0x1f, 0x37, 0x72, 0x8c, 0x9b, 0x9c, 0x17, 0x96, 0x9d, 0xc7, 0xbf, 0xa3, 0x3f, 0x44, 0x3d, 0x87, 0x81, 0xbd, 0x81, 0xa6, 0x5f, + /* (2^351)P */ 0xe4, 0xff, 0x78, 0x62, 0x82, 0x5b, 0x76, 0x58, 0xf5, 0x5b, 0xa6, 0xc4, 0x53, 0x11, 0x3b, 0x7b, 0xaa, 0x67, 0xf8, 0xea, 0x3b, 0x5d, 0x9a, 0x2e, 0x04, 0xeb, 0x4a, 0x24, 0xfb, 0x56, 0xf0, 0xa8, 0xd4, 0x14, 0xed, 0x0f, 0xfd, 0xc5, 0x26, 0x17, 0x2a, 0xf0, 0xb9, 0x13, 0x8c, 0xbd, 0x65, 0x14, 0x24, 0x95, 0x27, 0x12, 0x63, 0x2a, 0x09, 0x18, + /* (2^352)P */ 0xe1, 0x5c, 0xe7, 0xe0, 0x00, 0x6a, 0x96, 0xf2, 0x49, 0x6a, 0x39, 0xa5, 0xe0, 0x17, 0x79, 0x4a, 0x63, 0x07, 0x62, 0x09, 0x61, 0x1b, 0x6e, 0xa9, 0xb5, 0x62, 0xb7, 0xde, 0xdf, 0x80, 0x4c, 0x5a, 0x99, 0x73, 0x59, 0x9d, 0xfb, 0xb1, 0x5e, 0xbe, 0xb8, 0xb7, 0x63, 0x93, 0xe8, 0xad, 0x5e, 0x1f, 0xae, 0x59, 0x1c, 0xcd, 0xb4, 0xc2, 0xb3, 0x8a, + /* (2^353)P */ 0x78, 0x53, 0xa1, 0x4c, 0x70, 0x9c, 0x63, 0x7e, 0xb3, 0x12, 0x40, 0x5f, 0xbb, 0x23, 0xa7, 0xf7, 0x77, 0x96, 0x5b, 0x4d, 0x91, 0x10, 0x52, 0x85, 0x9e, 0xa5, 0x38, 0x0b, 0xfd, 0x25, 0x01, 0x4b, 0xfa, 0x4d, 0xd3, 0x3f, 0x78, 0x74, 0x42, 0xff, 0x62, 0x2d, 0x27, 0xdc, 0x9d, 0xd1, 0x29, 0x76, 0x2e, 0x78, 0xb3, 0x35, 0xfa, 0x15, 0xd5, 0x38, + /* (2^354)P */ 0x8b, 0xc7, 0x43, 0xce, 0xf0, 0x5e, 0xf1, 0x0d, 0x02, 0x38, 0xe8, 0x82, 0xc9, 0x25, 0xad, 0x2d, 0x27, 0xa4, 0x54, 0x18, 0xb2, 0x30, 0x73, 0xa4, 0x41, 0x08, 0xe4, 0x86, 0xe6, 0x8c, 0xe9, 0x2a, 0x34, 0xb3, 0xd6, 0x61, 0x8f, 0x66, 0x26, 0x08, 0xb6, 0x06, 0x33, 0xaa, 0x12, 0xac, 0x72, 0xec, 0x2e, 0x52, 0xa3, 0x25, 0x3e, 0xd7, 0x62, 0xe8, + /* (2^355)P */ 0xc4, 0xbb, 0x89, 0xc8, 0x40, 0xcc, 0x84, 0xec, 0x4a, 0xd9, 0xc4, 0x55, 0x78, 0x00, 0xcf, 0xd8, 0xe9, 0x24, 0x59, 0xdc, 0x5e, 0xf0, 0x66, 0xa1, 0x83, 0xae, 0x97, 0x18, 0xc5, 0x54, 0x27, 0xa2, 0x21, 0x52, 0x03, 0x31, 0x5b, 0x11, 0x67, 0xf6, 0x12, 0x00, 0x87, 0x2f, 0xff, 0x59, 0x70, 0x8f, 0x6d, 0x71, 0xab, 0xab, 0x24, 0xb8, 0xba, 0x35, + /* (2^356)P */ 0x69, 0x43, 0xa7, 0x14, 0x06, 0x96, 0xe9, 0xc2, 0xe3, 0x2b, 0x45, 0x22, 0xc0, 0xd0, 0x2f, 0x34, 0xd1, 0x01, 0x99, 0xfc, 0x99, 0x38, 0xa1, 0x25, 0x2e, 0x59, 0x6c, 0x27, 0xc9, 0xeb, 0x7b, 0xdc, 0x4e, 0x26, 0x68, 0xba, 0xfa, 0xec, 0x02, 0x05, 0x64, 0x80, 0x30, 0x20, 0x5c, 0x26, 0x7f, 0xaf, 0x95, 0x17, 0x3d, 0x5c, 0x9e, 0x96, 0x96, 0xaf, + /* (2^357)P */ 0xa6, 0xba, 0x21, 0x29, 0x32, 0xe2, 0x98, 0xde, 0x9b, 0x6d, 0x0b, 0x44, 0x91, 0xa8, 0x3e, 0xd4, 0xb8, 0x04, 0x6c, 0xf6, 0x04, 0x39, 0xbd, 0x52, 0x05, 0x15, 0x27, 0x78, 0x8e, 0x55, 0xac, 0x79, 0xc5, 0xe6, 0x00, 0x7f, 0x90, 0xa2, 0xdd, 0x07, 0x13, 0xe0, 0x24, 0x70, 0x5c, 0x0f, 0x4d, 0xa9, 0xf9, 0xae, 0xcb, 0x34, 0x10, 0x9d, 0x89, 0x9d, + /* (2^358)P */ 0x12, 0xe0, 0xb3, 0x9f, 0xc4, 0x96, 0x1d, 0xcf, 0xed, 0x99, 0x64, 0x28, 0x8d, 0xc7, 0x31, 0x82, 0xee, 0x5e, 0x75, 0x48, 0xff, 0x3a, 0xf2, 0x09, 0x34, 0x03, 0x93, 0x52, 0x19, 0xb2, 0xc5, 0x81, 0x93, 0x45, 0x5e, 0x59, 0x21, 0x2b, 0xec, 0x89, 0xba, 0x36, 0x6e, 0xf9, 0x82, 0x75, 0x7e, 0x82, 0x3f, 0xaa, 0xe2, 0xe3, 0x3b, 0x94, 0xfd, 0x98, + /* (2^359)P */ 0x7c, 0xdb, 0x75, 0x31, 0x61, 0xfb, 0x15, 0x28, 0x94, 0xd7, 0xc3, 0x5a, 0xa9, 0xa1, 0x0a, 0x66, 0x0f, 0x2b, 0x13, 0x3e, 0x42, 0xb5, 0x28, 0x3a, 0xca, 0x83, 0xf3, 0x61, 0x22, 0xf4, 0x40, 0xc5, 0xdf, 0xe7, 0x31, 0x9f, 0x7e, 0x51, 0x75, 0x06, 0x9d, 0x51, 0xc8, 0xe7, 0x9f, 0xc3, 0x71, 0x4f, 0x3d, 0x5b, 0xfb, 0xe9, 0x8e, 0x08, 0x40, 0x8e, + /* (2^360)P */ 0xf7, 0x31, 0xad, 0x50, 0x5d, 0x25, 0x93, 0x73, 0x68, 0xf6, 0x7c, 0x89, 0x5a, 0x3d, 0x9f, 0x9b, 0x05, 0x82, 0xe7, 0x70, 0x4b, 0x19, 0xaa, 0xcf, 0xff, 0xde, 0x50, 0x8f, 0x2f, 0x69, 0xd3, 0xf0, 0x99, 0x51, 0x6b, 0x9d, 0xb6, 0x56, 0x6f, 0xf8, 0x4c, 0x74, 0x8b, 0x4c, 0x91, 0xf9, 0xa9, 0xb1, 0x3e, 0x07, 0xdf, 0x0b, 0x27, 0x8a, 0xb1, 0xed, + /* (2^361)P */ 0xfb, 0x67, 0xd9, 0x48, 0xd2, 0xe4, 0x44, 0x9b, 0x43, 0x15, 0x8a, 0xeb, 0x00, 0x53, 0xad, 0x25, 0xc7, 0x7e, 0x19, 0x30, 0x87, 0xb7, 0xd5, 0x5f, 0x04, 0xf8, 0xaa, 0xdd, 0x57, 0xae, 0x34, 0x75, 0xe2, 0x84, 0x4b, 0x54, 0x60, 0x37, 0x95, 0xe4, 0xd3, 0xec, 0xac, 0xef, 0x47, 0x31, 0xa3, 0xc8, 0x31, 0x22, 0xdb, 0x26, 0xe7, 0x6a, 0xb5, 0xad, + /* (2^362)P */ 0x44, 0x09, 0x5c, 0x95, 0xe4, 0x72, 0x3c, 0x1a, 0xd1, 0xac, 0x42, 0x51, 0x99, 0x6f, 0xfa, 0x1f, 0xf2, 0x22, 0xbe, 0xff, 0x7b, 0x66, 0xf5, 0x6c, 0xb3, 0x66, 0xc7, 0x4d, 0x78, 0x31, 0x83, 0x80, 0xf5, 0x41, 0xe9, 0x7f, 0xbe, 0xf7, 0x23, 0x49, 0x6b, 0x84, 0x4e, 0x7e, 0x47, 0x07, 0x6e, 0x74, 0xdf, 0xe5, 0x9d, 0x9e, 0x56, 0x2a, 0xc0, 0xbc, + /* (2^363)P */ 0xac, 0x10, 0x80, 0x8c, 0x7c, 0xfa, 0x83, 0xdf, 0xb3, 0xd0, 0xc4, 0xbe, 0xfb, 0x9f, 0xac, 0xc9, 0xc3, 0x40, 0x95, 0x0b, 0x09, 0x23, 0xda, 0x63, 0x67, 0xcf, 0xe7, 0x9f, 0x7d, 0x7b, 0x6b, 0xe2, 0xe6, 0x6d, 0xdb, 0x87, 0x9e, 0xa6, 0xff, 0x6d, 0xab, 0xbd, 0xfb, 0x54, 0x84, 0x68, 0xcf, 0x89, 0xf1, 0xd0, 0xe2, 0x85, 0x61, 0xdc, 0x22, 0xd1, + /* (2^364)P */ 0xa8, 0x48, 0xfb, 0x8c, 0x6a, 0x63, 0x01, 0x72, 0x43, 0x43, 0xeb, 0x21, 0xa3, 0x00, 0x8a, 0xc0, 0x87, 0x51, 0x9e, 0x86, 0x75, 0x16, 0x79, 0xf9, 0x6b, 0x11, 0x80, 0x62, 0xc2, 0x9d, 0xb8, 0x8c, 0x30, 0x8e, 0x8d, 0x03, 0x52, 0x7e, 0x31, 0x59, 0x38, 0xf9, 0x25, 0xc7, 0x0f, 0xc7, 0xa8, 0x2b, 0x5c, 0x80, 0xfa, 0x90, 0xa2, 0x63, 0xca, 0xe7, + /* (2^365)P */ 0xf1, 0x5d, 0xb5, 0xd9, 0x20, 0x10, 0x7d, 0x0f, 0xc5, 0x50, 0x46, 0x07, 0xff, 0x02, 0x75, 0x2b, 0x4a, 0xf3, 0x39, 0x91, 0x72, 0xb7, 0xd5, 0xcc, 0x38, 0xb8, 0xe7, 0x36, 0x26, 0x5e, 0x11, 0x97, 0x25, 0xfb, 0x49, 0x68, 0xdc, 0xb4, 0x46, 0x87, 0x5c, 0xc2, 0x7f, 0xaa, 0x7d, 0x36, 0x23, 0xa6, 0xc6, 0x53, 0xec, 0xbc, 0x57, 0x47, 0xc1, 0x2b, + /* (2^366)P */ 0x25, 0x5d, 0x7d, 0x95, 0xda, 0x0b, 0x8f, 0x78, 0x1e, 0x19, 0x09, 0xfa, 0x67, 0xe0, 0xa0, 0x17, 0x24, 0x76, 0x6c, 0x30, 0x1f, 0x62, 0x3d, 0xbe, 0x45, 0x70, 0xcc, 0xb6, 0x1e, 0x68, 0x06, 0x25, 0x68, 0x16, 0x1a, 0x33, 0x3f, 0x90, 0xc7, 0x78, 0x2d, 0x98, 0x3c, 0x2f, 0xb9, 0x2d, 0x94, 0x0b, 0xfb, 0x49, 0x56, 0x30, 0xd7, 0xc1, 0xe6, 0x48, + /* (2^367)P */ 0x7a, 0xd1, 0xe0, 0x8e, 0x67, 0xfc, 0x0b, 0x50, 0x1f, 0x84, 0x98, 0xfa, 0xaf, 0xae, 0x2e, 0x31, 0x27, 0xcf, 0x3f, 0xf2, 0x6e, 0x8d, 0x81, 0x8f, 0xd2, 0x5f, 0xde, 0xd3, 0x5e, 0xe9, 0xe7, 0x13, 0x48, 0x83, 0x5a, 0x4e, 0x84, 0xd1, 0x58, 0xcf, 0x6b, 0x84, 0xdf, 0x13, 0x1d, 0x91, 0x85, 0xe8, 0xcb, 0x29, 0x79, 0xd2, 0xca, 0xac, 0x6a, 0x93, + /* (2^368)P */ 0x53, 0x82, 0xce, 0x61, 0x96, 0x88, 0x6f, 0xe1, 0x4a, 0x4c, 0x1e, 0x30, 0x73, 0xe8, 0x74, 0xde, 0x40, 0x2b, 0xe0, 0xc4, 0xb5, 0xd8, 0x7c, 0x15, 0xe7, 0xe1, 0xb1, 0xe0, 0xd6, 0x88, 0xb1, 0x6a, 0x57, 0x19, 0x6a, 0x22, 0x66, 0x57, 0xf6, 0x8d, 0xfd, 0xc0, 0xf2, 0xa3, 0x03, 0x56, 0xfb, 0x2e, 0x75, 0x5e, 0xc7, 0x8e, 0x22, 0x96, 0x5c, 0x06, + /* (2^369)P */ 0x98, 0x7e, 0xbf, 0x3e, 0xbf, 0x24, 0x9d, 0x15, 0xd3, 0xf6, 0xd3, 0xd2, 0xf0, 0x11, 0xf2, 0xdb, 0x36, 0x23, 0x38, 0xf7, 0x1d, 0x71, 0x20, 0xd2, 0x54, 0x7f, 0x1e, 0x24, 0x8f, 0xe2, 0xaa, 0xf7, 0x3f, 0x6b, 0x41, 0x4e, 0xdc, 0x0e, 0xec, 0xe8, 0x35, 0x0a, 0x08, 0x6d, 0x89, 0x5b, 0x32, 0x91, 0x01, 0xb6, 0xe0, 0x2c, 0xc6, 0xa1, 0xbe, 0xb4, + /* (2^370)P */ 0x29, 0xf2, 0x1e, 0x1c, 0xdc, 0x68, 0x8a, 0x43, 0x87, 0x2c, 0x48, 0xb3, 0x9e, 0xed, 0xd2, 0x82, 0x46, 0xac, 0x2f, 0xef, 0x93, 0x34, 0x37, 0xca, 0x64, 0x8d, 0xc9, 0x06, 0x90, 0xbb, 0x78, 0x0a, 0x3c, 0x4c, 0xcf, 0x35, 0x7a, 0x0f, 0xf7, 0xa7, 0xf4, 0x2f, 0x45, 0x69, 0x3f, 0xa9, 0x5d, 0xce, 0x7b, 0x8a, 0x84, 0xc3, 0xae, 0xf4, 0xda, 0xd5, + /* (2^371)P */ 0xca, 0xba, 0x95, 0x43, 0x05, 0x7b, 0x06, 0xd9, 0x5c, 0x0a, 0x18, 0x5f, 0x6a, 0x6a, 0xce, 0xc0, 0x3d, 0x95, 0x51, 0x0e, 0x1a, 0xbe, 0x85, 0x7a, 0xf2, 0x69, 0xec, 0xc0, 0x8c, 0xca, 0xa3, 0x32, 0x0a, 0x76, 0x50, 0xc6, 0x76, 0x61, 0x00, 0x89, 0xbf, 0x6e, 0x0f, 0x48, 0x90, 0x31, 0x93, 0xec, 0x34, 0x70, 0xf0, 0xc3, 0x8d, 0xf0, 0x0f, 0xb5, + /* (2^372)P */ 0xbe, 0x23, 0xe2, 0x18, 0x99, 0xf1, 0xed, 0x8a, 0xf6, 0xc9, 0xac, 0xb8, 0x1e, 0x9a, 0x3c, 0x15, 0xae, 0xd7, 0x6d, 0xb3, 0x04, 0xee, 0x5b, 0x0d, 0x1e, 0x79, 0xb7, 0xf9, 0xf9, 0x8d, 0xad, 0xf9, 0x8f, 0x5a, 0x6a, 0x7b, 0xd7, 0x9b, 0xca, 0x62, 0xfe, 0x9c, 0xc0, 0x6f, 0x6d, 0x9d, 0x76, 0xa3, 0x69, 0xb9, 0x4c, 0xa1, 0xc4, 0x0c, 0x76, 0xaa, + /* (2^373)P */ 0x1c, 0x06, 0xfe, 0x3f, 0x45, 0x70, 0xcd, 0x97, 0xa9, 0xa2, 0xb1, 0xd3, 0xf2, 0xa5, 0x0c, 0x49, 0x2c, 0x75, 0x73, 0x1f, 0xcf, 0x00, 0xaf, 0xd5, 0x2e, 0xde, 0x0d, 0x8f, 0x8f, 0x7c, 0xc4, 0x58, 0xce, 0xd4, 0xf6, 0x24, 0x19, 0x2e, 0xd8, 0xc5, 0x1d, 0x1a, 0x3f, 0xb8, 0x4f, 0xbc, 0x7d, 0xbd, 0x68, 0xe3, 0x81, 0x98, 0x1b, 0xa8, 0xc9, 0xd9, + /* (2^374)P */ 0x39, 0x95, 0x78, 0x24, 0x6c, 0x38, 0xe4, 0xe7, 0xd0, 0x8d, 0xb9, 0x38, 0x71, 0x5e, 0xc1, 0x62, 0x80, 0xcc, 0xcb, 0x8c, 0x97, 0xca, 0xf8, 0xb9, 0xd9, 0x9c, 0xce, 0x72, 0x7b, 0x70, 0xee, 0x5f, 0xea, 0xa2, 0xdf, 0xa9, 0x14, 0x10, 0xf9, 0x6e, 0x59, 0x9f, 0x9c, 0xe0, 0x0c, 0xb2, 0x07, 0x97, 0xcd, 0xd2, 0x89, 0x16, 0xfd, 0x9c, 0xa8, 0xa5, + /* (2^375)P */ 0x5a, 0x61, 0xf1, 0x59, 0x7c, 0x38, 0xda, 0xe2, 0x85, 0x99, 0x68, 0xe9, 0xc9, 0xf7, 0x32, 0x7e, 0xc4, 0xca, 0xb7, 0x11, 0x08, 0x69, 0x2b, 0x66, 0x02, 0xf7, 0x2e, 0x18, 0xc3, 0x8e, 0xe1, 0xf9, 0xc5, 0x19, 0x9a, 0x0a, 0x9c, 0x07, 0xba, 0xc7, 0x9c, 0x03, 0x34, 0x89, 0x99, 0x67, 0x0b, 0x16, 0x4b, 0x07, 0x36, 0x16, 0x36, 0x2c, 0xe2, 0xa1, + /* (2^376)P */ 0x70, 0x10, 0x91, 0x27, 0xa8, 0x24, 0x8e, 0x29, 0x04, 0x6f, 0x79, 0x1f, 0xd3, 0xa5, 0x68, 0xd3, 0x0b, 0x7d, 0x56, 0x4d, 0x14, 0x57, 0x7b, 0x2e, 0x00, 0x9f, 0x9a, 0xfd, 0x6c, 0x63, 0x18, 0x81, 0xdb, 0x9d, 0xb7, 0xd7, 0xa4, 0x1e, 0xe8, 0x40, 0xf1, 0x4c, 0xa3, 0x01, 0xd5, 0x4b, 0x75, 0xea, 0xdd, 0x97, 0xfd, 0x5b, 0xb2, 0x66, 0x6a, 0x24, + /* (2^377)P */ 0x72, 0x11, 0xfe, 0x73, 0x1b, 0xd3, 0xea, 0x7f, 0x93, 0x15, 0x15, 0x05, 0xfe, 0x40, 0xe8, 0x28, 0xd8, 0x50, 0x47, 0x66, 0xfa, 0xb7, 0xb5, 0x04, 0xba, 0x35, 0x1e, 0x32, 0x9f, 0x5f, 0x32, 0xba, 0x3d, 0xd1, 0xed, 0x9a, 0x76, 0xca, 0xa3, 0x3e, 0x77, 0xd8, 0xd8, 0x7c, 0x5f, 0x68, 0x42, 0xb5, 0x86, 0x7f, 0x3b, 0xc9, 0xc1, 0x89, 0x64, 0xda, + /* (2^378)P */ 0xd5, 0xd4, 0x17, 0x31, 0xfc, 0x6a, 0xfd, 0xb8, 0xe8, 0xe5, 0x3e, 0x39, 0x06, 0xe4, 0xd1, 0x90, 0x2a, 0xca, 0xf6, 0x54, 0x6c, 0x1b, 0x2f, 0x49, 0x97, 0xb1, 0x2a, 0x82, 0x43, 0x3d, 0x1f, 0x8b, 0xe2, 0x47, 0xc5, 0x24, 0xa8, 0xd5, 0x53, 0x29, 0x7d, 0xc6, 0x87, 0xa6, 0x25, 0x3a, 0x64, 0xdd, 0x71, 0x08, 0x9e, 0xcd, 0xe9, 0x45, 0xc7, 0xba, + /* (2^379)P */ 0x37, 0x72, 0x6d, 0x13, 0x7a, 0x8d, 0x04, 0x31, 0xe6, 0xe3, 0x9e, 0x36, 0x71, 0x3e, 0xc0, 0x1e, 0xe3, 0x71, 0xd3, 0x49, 0x4e, 0x4a, 0x36, 0x42, 0x68, 0x68, 0x61, 0xc7, 0x3c, 0xdb, 0x81, 0x49, 0xf7, 0x91, 0x4d, 0xea, 0x4c, 0x4f, 0x98, 0xc6, 0x7e, 0x60, 0x84, 0x4b, 0x6a, 0x37, 0xbb, 0x52, 0xf7, 0xce, 0x02, 0xe4, 0xad, 0xd1, 0x3c, 0xa7, + /* (2^380)P */ 0x51, 0x06, 0x2d, 0xf8, 0x08, 0xe8, 0xf1, 0x0c, 0xe5, 0xa9, 0xac, 0x29, 0x73, 0x3b, 0xed, 0x98, 0x5f, 0x55, 0x08, 0x38, 0x51, 0x44, 0x36, 0x5d, 0xea, 0xc3, 0xb8, 0x0e, 0xa0, 0x4f, 0xd2, 0x79, 0xe9, 0x98, 0xc3, 0xf5, 0x00, 0xb9, 0x26, 0x27, 0x42, 0xa8, 0x07, 0xc1, 0x12, 0x31, 0xc1, 0xc3, 0x3c, 0x3b, 0x7a, 0x72, 0x97, 0xc2, 0x70, 0x3a, + /* (2^381)P */ 0xf4, 0xb2, 0xba, 0x32, 0xbc, 0xa9, 0x2f, 0x87, 0xc7, 0x3c, 0x45, 0xcd, 0xae, 0xe2, 0x13, 0x6d, 0x3a, 0xf2, 0xf5, 0x66, 0x97, 0x29, 0xaf, 0x53, 0x9f, 0xda, 0xea, 0x14, 0xdf, 0x04, 0x98, 0x19, 0x95, 0x9e, 0x2a, 0x00, 0x5c, 0x9d, 0x1d, 0xf0, 0x39, 0x23, 0xff, 0xfc, 0xca, 0x36, 0xb7, 0xde, 0xdf, 0x37, 0x78, 0x52, 0x21, 0xfa, 0x19, 0x10, + /* (2^382)P */ 0x50, 0x20, 0x73, 0x74, 0x62, 0x21, 0xf2, 0xf7, 0x9b, 0x66, 0x85, 0x34, 0x74, 0xd4, 0x9d, 0x60, 0xd7, 0xbc, 0xc8, 0x46, 0x3b, 0xb8, 0x80, 0x42, 0x15, 0x0a, 0x6c, 0x35, 0x1a, 0x69, 0xf0, 0x1d, 0x4b, 0x29, 0x54, 0x5a, 0x9a, 0x48, 0xec, 0x9f, 0x37, 0x74, 0x91, 0xd0, 0xd1, 0x9e, 0x00, 0xc2, 0x76, 0x56, 0xd6, 0xa0, 0x15, 0x14, 0x83, 0x59, + /* (2^383)P */ 0xc2, 0xf8, 0x22, 0x20, 0x23, 0x07, 0xbd, 0x1d, 0x6f, 0x1e, 0x8c, 0x56, 0x06, 0x6a, 0x4b, 0x9f, 0xe2, 0xa9, 0x92, 0x46, 0x4b, 0x46, 0x59, 0xd7, 0xe1, 0xda, 0x14, 0x98, 0x07, 0x65, 0x7e, 0x28, 0x20, 0xf2, 0x9d, 0x4f, 0x36, 0x5c, 0x92, 0xe0, 0x9d, 0xfe, 0x3e, 0xda, 0xe4, 0x47, 0x19, 0x3c, 0x00, 0x7f, 0x22, 0xf2, 0x9e, 0x51, 0xae, 0x4d, + /* (2^384)P */ 0xbe, 0x8c, 0x1b, 0x10, 0xb6, 0xad, 0xcc, 0xcc, 0xd8, 0x5e, 0x21, 0xa6, 0xfb, 0xf1, 0xf6, 0xbd, 0x0a, 0x24, 0x67, 0xb4, 0x57, 0x7a, 0xbc, 0xe8, 0xe9, 0xff, 0xee, 0x0a, 0x1f, 0xee, 0xbd, 0xc8, 0x44, 0xed, 0x2b, 0xbb, 0x55, 0x1f, 0xdd, 0x7c, 0xb3, 0xeb, 0x3f, 0x63, 0xa1, 0x28, 0x91, 0x21, 0xab, 0x71, 0xc6, 0x4c, 0xd0, 0xe9, 0xb0, 0x21, + /* (2^385)P */ 0xad, 0xc9, 0x77, 0x2b, 0xee, 0x89, 0xa4, 0x7b, 0xfd, 0xf9, 0xf6, 0x14, 0xe4, 0xed, 0x1a, 0x16, 0x9b, 0x78, 0x41, 0x43, 0xa8, 0x83, 0x72, 0x06, 0x2e, 0x7c, 0xdf, 0xeb, 0x7e, 0xdd, 0xd7, 0x8b, 0xea, 0x9a, 0x2b, 0x03, 0xba, 0x57, 0xf3, 0xf1, 0xd9, 0xe5, 0x09, 0xc5, 0x98, 0x61, 0x1c, 0x51, 0x6d, 0x5d, 0x6e, 0xfb, 0x5e, 0x95, 0x9f, 0xb5, + /* (2^386)P */ 0x23, 0xe2, 0x1e, 0x95, 0xa3, 0x5e, 0x42, 0x10, 0xc7, 0xc3, 0x70, 0xbf, 0x4b, 0x6b, 0x83, 0x36, 0x93, 0xb7, 0x68, 0x47, 0x88, 0x3a, 0x10, 0x88, 0x48, 0x7f, 0x8c, 0xae, 0x54, 0x10, 0x02, 0xa4, 0x52, 0x8f, 0x8d, 0xf7, 0x26, 0x4f, 0x50, 0xc3, 0x6a, 0xe2, 0x4e, 0x3b, 0x4c, 0xb9, 0x8a, 0x14, 0x15, 0x6d, 0x21, 0x29, 0xb3, 0x6e, 0x4e, 0xd0, + /* (2^387)P */ 0x4c, 0x8a, 0x18, 0x3f, 0xb7, 0x20, 0xfd, 0x3e, 0x54, 0xca, 0x68, 0x3c, 0xea, 0x6f, 0xf4, 0x6b, 0xa2, 0xbd, 0x01, 0xbd, 0xfe, 0x08, 0xa8, 0xd8, 0xc2, 0x20, 0x36, 0x05, 0xcd, 0xe9, 0xf3, 0x9e, 0xfa, 0x85, 0x66, 0x8f, 0x4b, 0x1d, 0x8c, 0x64, 0x4f, 0xb8, 0xc6, 0x0f, 0x5b, 0x57, 0xd8, 0x24, 0x19, 0x5a, 0x14, 0x4b, 0x92, 0xd3, 0x96, 0xbc, + /* (2^388)P */ 0xa9, 0x3f, 0xc9, 0x6c, 0xca, 0x64, 0x1e, 0x6f, 0xdf, 0x65, 0x7f, 0x9a, 0x47, 0x6b, 0x8a, 0x60, 0x31, 0xa6, 0x06, 0xac, 0x69, 0x30, 0xe6, 0xea, 0x63, 0x42, 0x26, 0x5f, 0xdb, 0xd0, 0xf2, 0x8e, 0x34, 0x0a, 0x3a, 0xeb, 0xf3, 0x79, 0xc8, 0xb7, 0x60, 0x56, 0x5c, 0x37, 0x95, 0x71, 0xf8, 0x7f, 0x49, 0x3e, 0x9e, 0x01, 0x26, 0x1e, 0x80, 0x9f, + /* (2^389)P */ 0xf8, 0x16, 0x9a, 0xaa, 0xb0, 0x28, 0xb5, 0x8e, 0xd0, 0x60, 0xe5, 0x26, 0xa9, 0x47, 0xc4, 0x5c, 0xa9, 0x39, 0xfe, 0x0a, 0xd8, 0x07, 0x2b, 0xb3, 0xce, 0xf1, 0xea, 0x1a, 0xf4, 0x7b, 0x98, 0x31, 0x3d, 0x13, 0x29, 0x80, 0xe8, 0x0d, 0xcf, 0x56, 0x39, 0x86, 0x50, 0x0c, 0xb3, 0x18, 0xf4, 0xc5, 0xca, 0xf2, 0x6f, 0xcd, 0x8d, 0xd5, 0x02, 0xb0, + /* (2^390)P */ 0xbf, 0x39, 0x3f, 0xac, 0x6d, 0x1a, 0x6a, 0xe4, 0x42, 0x24, 0xd6, 0x41, 0x9d, 0xb9, 0x5b, 0x46, 0x73, 0x93, 0x76, 0xaa, 0xb7, 0x37, 0x36, 0xa6, 0x09, 0xe5, 0x04, 0x3b, 0x66, 0xc4, 0x29, 0x3e, 0x41, 0xc2, 0xcb, 0xe5, 0x17, 0xd7, 0x34, 0x67, 0x1d, 0x2c, 0x12, 0xec, 0x24, 0x7a, 0x40, 0xa2, 0x45, 0x41, 0xf0, 0x75, 0xed, 0x43, 0x30, 0xc9, + /* (2^391)P */ 0x80, 0xf6, 0x47, 0x5b, 0xad, 0x54, 0x02, 0xbc, 0xdd, 0xa4, 0xb2, 0xd7, 0x42, 0x95, 0xf2, 0x0d, 0x1b, 0xef, 0x37, 0xa7, 0xb4, 0x34, 0x04, 0x08, 0x71, 0x1b, 0xd3, 0xdf, 0xa1, 0xf0, 0x2b, 0xfa, 0xc0, 0x1f, 0xf3, 0x44, 0xb5, 0xc6, 0x47, 0x3d, 0x65, 0x67, 0x45, 0x4d, 0x2f, 0xde, 0x52, 0x73, 0xfc, 0x30, 0x01, 0x6b, 0xc1, 0x03, 0xd8, 0xd7, + /* (2^392)P */ 0x1c, 0x67, 0x55, 0x3e, 0x01, 0x17, 0x0f, 0x3e, 0xe5, 0x34, 0x58, 0xfc, 0xcb, 0x71, 0x24, 0x74, 0x5d, 0x36, 0x1e, 0x89, 0x2a, 0x63, 0xf8, 0xf8, 0x9f, 0x50, 0x9f, 0x32, 0x92, 0x29, 0xd8, 0x1a, 0xec, 0x76, 0x57, 0x6c, 0x67, 0x12, 0x6a, 0x6e, 0xef, 0x97, 0x1f, 0xc3, 0x77, 0x60, 0x3c, 0x22, 0xcb, 0xc7, 0x04, 0x1a, 0x89, 0x2d, 0x10, 0xa6, + /* (2^393)P */ 0x12, 0xf5, 0xa9, 0x26, 0x16, 0xd9, 0x3c, 0x65, 0x5d, 0x83, 0xab, 0xd1, 0x70, 0x6b, 0x1c, 0xdb, 0xe7, 0x86, 0x0d, 0xfb, 0xe7, 0xf8, 0x2a, 0x58, 0x6e, 0x7a, 0x66, 0x13, 0x53, 0x3a, 0x6f, 0x8d, 0x43, 0x5f, 0x14, 0x23, 0x14, 0xff, 0x3d, 0x52, 0x7f, 0xee, 0xbd, 0x7a, 0x34, 0x8b, 0x35, 0x24, 0xc3, 0x7a, 0xdb, 0xcf, 0x22, 0x74, 0x9a, 0x8f, + /* (2^394)P */ 0xdb, 0x20, 0xfc, 0xe5, 0x39, 0x4e, 0x7d, 0x78, 0xee, 0x0b, 0xbf, 0x1d, 0x80, 0xd4, 0x05, 0x4f, 0xb9, 0xd7, 0x4e, 0x94, 0x88, 0x9a, 0x50, 0x78, 0x1a, 0x70, 0x8c, 0xcc, 0x25, 0xb6, 0x61, 0x09, 0xdc, 0x7b, 0xea, 0x3f, 0x7f, 0xea, 0x2a, 0x0d, 0x47, 0x1c, 0x8e, 0xa6, 0x5b, 0xd2, 0xa3, 0x61, 0x93, 0x3c, 0x68, 0x9f, 0x8b, 0xea, 0xb0, 0xcb, + /* (2^395)P */ 0xff, 0x54, 0x02, 0x19, 0xae, 0x8b, 0x4c, 0x2c, 0x3a, 0xe0, 0xe4, 0xac, 0x87, 0xf7, 0x51, 0x45, 0x41, 0x43, 0xdc, 0xaa, 0xcd, 0xcb, 0xdc, 0x40, 0xe3, 0x44, 0x3b, 0x1d, 0x9e, 0x3d, 0xb9, 0x82, 0xcc, 0x7a, 0xc5, 0x12, 0xf8, 0x1e, 0xdd, 0xdb, 0x8d, 0xb0, 0x2a, 0xe8, 0xe6, 0x6c, 0x94, 0x3b, 0xb7, 0x2d, 0xba, 0x79, 0x3b, 0xb5, 0x86, 0xfb, + /* (2^396)P */ 0x82, 0x88, 0x13, 0xdd, 0x6c, 0xcd, 0x85, 0x2b, 0x90, 0x86, 0xb7, 0xac, 0x16, 0xa6, 0x6e, 0x6a, 0x94, 0xd8, 0x1e, 0x4e, 0x41, 0x0f, 0xce, 0x81, 0x6a, 0xa8, 0x26, 0x56, 0x43, 0x52, 0x52, 0xe6, 0xff, 0x88, 0xcf, 0x47, 0x05, 0x1d, 0xff, 0xf3, 0xa0, 0x10, 0xb2, 0x97, 0x87, 0xeb, 0x47, 0xbb, 0xfa, 0x1f, 0xe8, 0x4c, 0xce, 0xc4, 0xcd, 0x93, + /* (2^397)P */ 0xf4, 0x11, 0xf5, 0x8d, 0x89, 0x29, 0x79, 0xb3, 0x59, 0x0b, 0x29, 0x7d, 0x9c, 0x12, 0x4a, 0x65, 0x72, 0x3a, 0xf9, 0xec, 0x37, 0x18, 0x86, 0xef, 0x44, 0x07, 0x25, 0x74, 0x76, 0x53, 0xed, 0x51, 0x01, 0xc6, 0x28, 0xc5, 0xc3, 0x4a, 0x0f, 0x99, 0xec, 0xc8, 0x40, 0x5a, 0x83, 0x30, 0x79, 0xa2, 0x3e, 0x63, 0x09, 0x2d, 0x6f, 0x23, 0x54, 0x1c, + /* (2^398)P */ 0x5c, 0x6f, 0x3b, 0x1c, 0x30, 0x77, 0x7e, 0x87, 0x66, 0x83, 0x2e, 0x7e, 0x85, 0x50, 0xfd, 0xa0, 0x7a, 0xc2, 0xf5, 0x0f, 0xc1, 0x64, 0xe7, 0x0b, 0xbd, 0x59, 0xa7, 0xe7, 0x65, 0x53, 0xc3, 0xf5, 0x55, 0x5b, 0xe1, 0x82, 0x30, 0x5a, 0x61, 0xcd, 0xa0, 0x89, 0x32, 0xdb, 0x87, 0xfc, 0x21, 0x8a, 0xab, 0x6d, 0x82, 0xa8, 0x42, 0x81, 0x4f, 0xf2, + /* (2^399)P */ 0xb3, 0xeb, 0x88, 0x18, 0xf6, 0x56, 0x96, 0xbf, 0xba, 0x5d, 0x71, 0xa1, 0x5a, 0xd1, 0x04, 0x7b, 0xd5, 0x46, 0x01, 0x74, 0xfe, 0x15, 0x25, 0xb7, 0xff, 0x0c, 0x24, 0x47, 0xac, 0xfd, 0xab, 0x47, 0x32, 0xe1, 0x6a, 0x4e, 0xca, 0xcf, 0x7f, 0xdd, 0xf8, 0xd2, 0x4b, 0x3b, 0xf5, 0x17, 0xba, 0xba, 0x8b, 0xa1, 0xec, 0x28, 0x3f, 0x97, 0xab, 0x2a, + /* (2^400)P */ 0x51, 0x38, 0xc9, 0x5e, 0xc6, 0xb3, 0x64, 0xf2, 0x24, 0x4d, 0x04, 0x7d, 0xc8, 0x39, 0x0c, 0x4a, 0xc9, 0x73, 0x74, 0x1b, 0x5c, 0xb2, 0xc5, 0x41, 0x62, 0xa0, 0x4c, 0x6d, 0x8d, 0x91, 0x9a, 0x7b, 0x88, 0xab, 0x9c, 0x7e, 0x23, 0xdb, 0x6f, 0xb5, 0x72, 0xd6, 0x47, 0x40, 0xef, 0x22, 0x58, 0x62, 0x19, 0x6c, 0x38, 0xba, 0x5b, 0x00, 0x30, 0x9f, + /* (2^401)P */ 0x65, 0xbb, 0x3b, 0x9b, 0xe9, 0xae, 0xbf, 0xbe, 0xe4, 0x13, 0x95, 0xf3, 0xe3, 0x77, 0xcb, 0xe4, 0x9a, 0x22, 0xb5, 0x4a, 0x08, 0x9d, 0xb3, 0x9e, 0x27, 0xe0, 0x15, 0x6c, 0x9f, 0x7e, 0x9a, 0x5e, 0x15, 0x45, 0x25, 0x8d, 0x01, 0x0a, 0xd2, 0x2b, 0xbd, 0x48, 0x06, 0x0d, 0x18, 0x97, 0x4b, 0xdc, 0xbc, 0xf0, 0xcd, 0xb2, 0x52, 0x3c, 0xac, 0xf5, + /* (2^402)P */ 0x3e, 0xed, 0x47, 0x6b, 0x5c, 0xf6, 0x76, 0xd0, 0xe9, 0x15, 0xa3, 0xcb, 0x36, 0x00, 0x21, 0xa3, 0x79, 0x20, 0xa5, 0x3e, 0x88, 0x03, 0xcb, 0x7e, 0x63, 0xbb, 0xed, 0xa9, 0x13, 0x35, 0x16, 0xaf, 0x2e, 0xb4, 0x70, 0x14, 0x93, 0xfb, 0xc4, 0x9b, 0xd8, 0xb1, 0xbe, 0x43, 0xd1, 0x85, 0xb8, 0x97, 0xef, 0xea, 0x88, 0xa1, 0x25, 0x52, 0x62, 0x75, + /* (2^403)P */ 0x8e, 0x4f, 0xaa, 0x23, 0x62, 0x7e, 0x2b, 0x37, 0x89, 0x00, 0x11, 0x30, 0xc5, 0x33, 0x4a, 0x89, 0x8a, 0xe2, 0xfc, 0x5c, 0x6a, 0x75, 0xe5, 0xf7, 0x02, 0x4a, 0x9b, 0xf7, 0xb5, 0x6a, 0x85, 0x31, 0xd3, 0x5a, 0xcf, 0xc3, 0xf8, 0xde, 0x2f, 0xcf, 0xb5, 0x24, 0xf4, 0xe3, 0xa1, 0xad, 0x42, 0xae, 0x09, 0xb9, 0x2e, 0x04, 0x2d, 0x01, 0x22, 0x3f, + /* (2^404)P */ 0x41, 0x16, 0xfb, 0x7d, 0x50, 0xfd, 0xb5, 0xba, 0x88, 0x24, 0xba, 0xfd, 0x3d, 0xb2, 0x90, 0x15, 0xb7, 0xfa, 0xa2, 0xe1, 0x4c, 0x7d, 0xb9, 0xc6, 0xff, 0x81, 0x57, 0xb6, 0xc2, 0x9e, 0xcb, 0xc4, 0x35, 0xbd, 0x01, 0xb7, 0xaa, 0xce, 0xd0, 0xe9, 0xb5, 0xd6, 0x72, 0xbf, 0xd2, 0xee, 0xc7, 0xac, 0x94, 0xff, 0x29, 0x57, 0x02, 0x49, 0x09, 0xad, + /* (2^405)P */ 0x27, 0xa5, 0x78, 0x1b, 0xbf, 0x6b, 0xaf, 0x0b, 0x8c, 0xd9, 0xa8, 0x37, 0xb0, 0x67, 0x18, 0xb6, 0xc7, 0x05, 0x8a, 0x67, 0x03, 0x30, 0x62, 0x6e, 0x56, 0x82, 0xa9, 0x54, 0x3e, 0x0c, 0x4e, 0x07, 0xe1, 0x5a, 0x38, 0xed, 0xfa, 0xc8, 0x55, 0x6b, 0x08, 0xa3, 0x6b, 0x64, 0x2a, 0x15, 0xd6, 0x39, 0x6f, 0x47, 0x99, 0x42, 0x3f, 0x33, 0x84, 0x8f, + /* (2^406)P */ 0xbc, 0x45, 0x29, 0x81, 0x0e, 0xa4, 0xc5, 0x72, 0x3a, 0x10, 0xe1, 0xc4, 0x1e, 0xda, 0xc3, 0xfe, 0xb0, 0xce, 0xd2, 0x13, 0x34, 0x67, 0x21, 0xc6, 0x7e, 0xf9, 0x8c, 0xff, 0x39, 0x50, 0xae, 0x92, 0x60, 0x35, 0x2f, 0x8b, 0x6e, 0xc9, 0xc1, 0x27, 0x3a, 0x94, 0x66, 0x3e, 0x26, 0x84, 0x93, 0xc8, 0x6c, 0xcf, 0xd2, 0x03, 0xa1, 0x10, 0xcf, 0xb7, + /* (2^407)P */ 0x64, 0xda, 0x19, 0xf6, 0xc5, 0x73, 0x17, 0x44, 0x88, 0x81, 0x07, 0x0d, 0x34, 0xb2, 0x75, 0xf9, 0xd9, 0xe2, 0xe0, 0x8b, 0x71, 0xcf, 0x72, 0x34, 0x83, 0xb4, 0xce, 0xfc, 0xd7, 0x29, 0x09, 0x5a, 0x98, 0xbf, 0x14, 0xac, 0x77, 0x55, 0x38, 0x47, 0x5b, 0x0f, 0x40, 0x24, 0xe5, 0xa5, 0xa6, 0xac, 0x2d, 0xa6, 0xff, 0x9c, 0x73, 0xfe, 0x5c, 0x7e, + /* (2^408)P */ 0x1e, 0x33, 0xcc, 0x68, 0xb2, 0xbc, 0x8c, 0x93, 0xaf, 0xcc, 0x38, 0xf8, 0xd9, 0x16, 0x72, 0x50, 0xac, 0xd9, 0xb5, 0x0b, 0x9a, 0xbe, 0x46, 0x7a, 0xf1, 0xee, 0xf1, 0xad, 0xec, 0x5b, 0x59, 0x27, 0x9c, 0x05, 0xa3, 0x87, 0xe0, 0x37, 0x2c, 0x83, 0xce, 0xb3, 0x65, 0x09, 0x8e, 0xc3, 0x9c, 0xbf, 0x6a, 0xa2, 0x00, 0xcc, 0x12, 0x36, 0xc5, 0x95, + /* (2^409)P */ 0x36, 0x11, 0x02, 0x14, 0x9c, 0x3c, 0xeb, 0x2f, 0x23, 0x5b, 0x6b, 0x2b, 0x08, 0x54, 0x53, 0xac, 0xb2, 0xa3, 0xe0, 0x26, 0x62, 0x3c, 0xe4, 0xe1, 0x81, 0xee, 0x13, 0x3e, 0xa4, 0x97, 0xef, 0xf9, 0x92, 0x27, 0x01, 0xce, 0x54, 0x8b, 0x3e, 0x31, 0xbe, 0xa7, 0x88, 0xcf, 0x47, 0x99, 0x3c, 0x10, 0x6f, 0x60, 0xb3, 0x06, 0x4e, 0xee, 0x1b, 0xf0, + /* (2^410)P */ 0x59, 0x49, 0x66, 0xcf, 0x22, 0xe6, 0xf6, 0x73, 0xfe, 0xa3, 0x1c, 0x09, 0xfa, 0x5f, 0x65, 0xa8, 0xf0, 0x82, 0xc2, 0xef, 0x16, 0x63, 0x6e, 0x79, 0x69, 0x51, 0x39, 0x07, 0x65, 0xc4, 0x81, 0xec, 0x73, 0x0f, 0x15, 0x93, 0xe1, 0x30, 0x33, 0xe9, 0x37, 0x86, 0x42, 0x4c, 0x1f, 0x9b, 0xad, 0xee, 0x3f, 0xf1, 0x2a, 0x8e, 0x6a, 0xa3, 0xc8, 0x35, + /* (2^411)P */ 0x1e, 0x49, 0xf1, 0xdd, 0xd2, 0x9c, 0x8e, 0x78, 0xb2, 0x06, 0xe4, 0x6a, 0xab, 0x3a, 0xdc, 0xcd, 0xf4, 0xeb, 0xe1, 0xe7, 0x2f, 0xaa, 0xeb, 0x40, 0x31, 0x9f, 0xb9, 0xab, 0x13, 0xa9, 0x78, 0xbf, 0x38, 0x89, 0x0e, 0x85, 0x14, 0x8b, 0x46, 0x76, 0x14, 0xda, 0xcf, 0x33, 0xc8, 0x79, 0xd3, 0xd5, 0xa3, 0x6a, 0x69, 0x45, 0x70, 0x34, 0xc3, 0xe9, + /* (2^412)P */ 0x5e, 0xe7, 0x78, 0xe9, 0x24, 0xcc, 0xe9, 0xf4, 0xc8, 0x6b, 0xe0, 0xfb, 0x3a, 0xbe, 0xcc, 0x42, 0x4a, 0x00, 0x22, 0xf8, 0xe6, 0x32, 0xbe, 0x6d, 0x18, 0x55, 0x60, 0xe9, 0x72, 0x69, 0x50, 0x56, 0xca, 0x04, 0x18, 0x38, 0xa1, 0xee, 0xd8, 0x38, 0x3c, 0xa7, 0x70, 0xe2, 0xb9, 0x4c, 0xa0, 0xc8, 0x89, 0x72, 0xcf, 0x49, 0x7f, 0xdf, 0xbc, 0x67, + /* (2^413)P */ 0x1d, 0x17, 0xcb, 0x0b, 0xbd, 0xb2, 0x36, 0xe3, 0xa8, 0x99, 0x31, 0xb6, 0x26, 0x9c, 0x0c, 0x74, 0xaf, 0x4d, 0x24, 0x61, 0xcf, 0x31, 0x7b, 0xed, 0xdd, 0xc3, 0xf6, 0x32, 0x70, 0xfe, 0x17, 0xf6, 0x51, 0x37, 0x65, 0xce, 0x5d, 0xaf, 0xa5, 0x2f, 0x2a, 0xfe, 0x00, 0x71, 0x7c, 0x50, 0xbe, 0x21, 0xc7, 0xed, 0xc6, 0xfc, 0x67, 0xcf, 0x9c, 0xdd, + /* (2^414)P */ 0x26, 0x3e, 0xf8, 0xbb, 0xd0, 0xb1, 0x01, 0xd8, 0xeb, 0x0b, 0x62, 0x87, 0x35, 0x4c, 0xde, 0xca, 0x99, 0x9c, 0x6d, 0xf7, 0xb6, 0xf0, 0x57, 0x0a, 0x52, 0x29, 0x6a, 0x3f, 0x26, 0x31, 0x04, 0x07, 0x2a, 0xc9, 0xfa, 0x9b, 0x0e, 0x62, 0x8e, 0x72, 0xf2, 0xad, 0xce, 0xb6, 0x35, 0x7a, 0xc1, 0xae, 0x35, 0xc7, 0xa3, 0x14, 0xcf, 0x0c, 0x28, 0xb7, + /* (2^415)P */ 0xa6, 0xf1, 0x32, 0x3a, 0x20, 0xd2, 0x24, 0x97, 0xcf, 0x5d, 0x37, 0x99, 0xaf, 0x33, 0x7a, 0x5b, 0x7a, 0xcc, 0x4e, 0x41, 0x38, 0xb1, 0x4e, 0xad, 0xc9, 0xd9, 0x71, 0x7e, 0xb2, 0xf5, 0xd5, 0x01, 0x6c, 0x4d, 0xfd, 0xa1, 0xda, 0x03, 0x38, 0x9b, 0x3d, 0x92, 0x92, 0xf2, 0xca, 0xbf, 0x1f, 0x24, 0xa4, 0xbb, 0x30, 0x6a, 0x74, 0x56, 0xc8, 0xce, + /* (2^416)P */ 0x27, 0xf4, 0xed, 0xc9, 0xc3, 0xb1, 0x79, 0x85, 0xbe, 0xf6, 0xeb, 0xf3, 0x55, 0xc7, 0xaa, 0xa6, 0xe9, 0x07, 0x5d, 0xf4, 0xeb, 0xa6, 0x81, 0xe3, 0x0e, 0xcf, 0xa3, 0xc1, 0xef, 0xe7, 0x34, 0xb2, 0x03, 0x73, 0x8a, 0x91, 0xf1, 0xad, 0x05, 0xc7, 0x0b, 0x43, 0x99, 0x12, 0x31, 0xc8, 0xc7, 0xc5, 0xa4, 0x3d, 0xcd, 0xe5, 0x4e, 0x6d, 0x24, 0xdd, + /* (2^417)P */ 0x61, 0x54, 0xd0, 0x95, 0x2c, 0x45, 0x75, 0xac, 0xb5, 0x1a, 0x9d, 0x11, 0xeb, 0xed, 0x6b, 0x57, 0xa3, 0xe6, 0xcd, 0x77, 0xd4, 0x83, 0x8e, 0x39, 0xf1, 0x0f, 0x98, 0xcb, 0x40, 0x02, 0x6e, 0x10, 0x82, 0x9e, 0xb4, 0x93, 0x76, 0xd7, 0x97, 0xa3, 0x53, 0x12, 0x86, 0xc6, 0x15, 0x78, 0x73, 0x93, 0xe7, 0x7f, 0xcf, 0x1f, 0xbf, 0xcd, 0xd2, 0x7a, + /* (2^418)P */ 0xc2, 0x21, 0xdc, 0xd5, 0x69, 0xff, 0xca, 0x49, 0x3a, 0xe1, 0xc3, 0x69, 0x41, 0x56, 0xc1, 0x76, 0x63, 0x24, 0xbd, 0x64, 0x1b, 0x3d, 0x92, 0xf9, 0x13, 0x04, 0x25, 0xeb, 0x27, 0xa6, 0xef, 0x39, 0x3a, 0x80, 0xe0, 0xf8, 0x27, 0xee, 0xc9, 0x49, 0x77, 0xef, 0x3f, 0x29, 0x3d, 0x5e, 0xe6, 0x66, 0x83, 0xd1, 0xf6, 0xfe, 0x9d, 0xbc, 0xf1, 0x96, + /* (2^419)P */ 0x6b, 0xc6, 0x99, 0x26, 0x3c, 0xf3, 0x63, 0xf9, 0xc7, 0x29, 0x8c, 0x52, 0x62, 0x2d, 0xdc, 0x8a, 0x66, 0xce, 0x2c, 0xa7, 0xe4, 0xf0, 0xd7, 0x37, 0x17, 0x1e, 0xe4, 0xa3, 0x53, 0x7b, 0x29, 0x8e, 0x60, 0x99, 0xf9, 0x0c, 0x7c, 0x6f, 0xa2, 0xcc, 0x9f, 0x80, 0xdd, 0x5e, 0x46, 0xaa, 0x0d, 0x6c, 0xc9, 0x6c, 0xf7, 0x78, 0x5b, 0x38, 0xe3, 0x24, + /* (2^420)P */ 0x4b, 0x75, 0x6a, 0x2f, 0x08, 0xe1, 0x72, 0x76, 0xab, 0x82, 0x96, 0xdf, 0x3b, 0x1f, 0x9b, 0xd8, 0xed, 0xdb, 0xcd, 0x15, 0x09, 0x5a, 0x1e, 0xb7, 0xc5, 0x26, 0x72, 0x07, 0x0c, 0x50, 0xcd, 0x3b, 0x4d, 0x3f, 0xa2, 0x67, 0xc2, 0x02, 0x61, 0x2e, 0x68, 0xe9, 0x6f, 0xf0, 0x21, 0x2a, 0xa7, 0x3b, 0x88, 0x04, 0x11, 0x64, 0x49, 0x0d, 0xb4, 0x46, + /* (2^421)P */ 0x63, 0x85, 0xf3, 0xc5, 0x2b, 0x5a, 0x9f, 0xf0, 0x17, 0xcb, 0x45, 0x0a, 0xf3, 0x6e, 0x7e, 0xb0, 0x7c, 0xbc, 0xf0, 0x4f, 0x3a, 0xb0, 0xbc, 0x36, 0x36, 0x52, 0x51, 0xcb, 0xfe, 0x9a, 0xcb, 0xe8, 0x7e, 0x4b, 0x06, 0x7f, 0xaa, 0x35, 0xc8, 0x0e, 0x7a, 0x30, 0xa3, 0xb1, 0x09, 0xbb, 0x86, 0x4c, 0xbe, 0xb8, 0xbd, 0xe0, 0x32, 0xa5, 0xd4, 0xf7, + /* (2^422)P */ 0x7d, 0x50, 0x37, 0x68, 0x4e, 0x22, 0xb2, 0x2c, 0xd5, 0x0f, 0x2b, 0x6d, 0xb1, 0x51, 0xf2, 0x82, 0xe9, 0x98, 0x7c, 0x50, 0xc7, 0x96, 0x7e, 0x0e, 0xdc, 0xb1, 0x0e, 0xb2, 0x63, 0x8c, 0x30, 0x37, 0x72, 0x21, 0x9c, 0x61, 0xc2, 0xa7, 0x33, 0xd9, 0xb2, 0x63, 0x93, 0xd1, 0x6b, 0x6a, 0x73, 0xa5, 0x58, 0x80, 0xff, 0x04, 0xc7, 0x83, 0x21, 0x29, + /* (2^423)P */ 0x29, 0x04, 0xbc, 0x99, 0x39, 0xc9, 0x58, 0xc9, 0x6b, 0x17, 0xe8, 0x90, 0xb3, 0xe6, 0xa9, 0xb6, 0x28, 0x9b, 0xcb, 0x3b, 0x28, 0x90, 0x68, 0x71, 0xff, 0xcf, 0x08, 0x78, 0xc9, 0x8d, 0xa8, 0x4e, 0x43, 0xd1, 0x1c, 0x9e, 0xa4, 0xe3, 0xdf, 0xbf, 0x92, 0xf4, 0xf9, 0x41, 0xba, 0x4d, 0x1c, 0xf9, 0xdd, 0x74, 0x76, 0x1c, 0x6e, 0x3e, 0x94, 0x87, + /* (2^424)P */ 0xe4, 0xda, 0xc5, 0xd7, 0xfb, 0x87, 0xc5, 0x4d, 0x6b, 0x19, 0xaa, 0xb9, 0xbc, 0x8c, 0xf2, 0x8a, 0xd8, 0x5d, 0xdb, 0x4d, 0xef, 0xa6, 0xf2, 0x65, 0xf1, 0x22, 0x9c, 0xf1, 0x46, 0x30, 0x71, 0x7c, 0xe4, 0x53, 0x8e, 0x55, 0x2e, 0x9c, 0x9a, 0x31, 0x2a, 0xc3, 0xab, 0x0f, 0xde, 0xe4, 0xbe, 0xd8, 0x96, 0x50, 0x6e, 0x0c, 0x54, 0x49, 0xe6, 0xec, + /* (2^425)P */ 0x3c, 0x1d, 0x5a, 0xa5, 0xda, 0xad, 0xdd, 0xc2, 0xae, 0xac, 0x6f, 0x86, 0x75, 0x31, 0x91, 0x64, 0x45, 0x9d, 0xa4, 0xf0, 0x81, 0xf1, 0x0e, 0xba, 0x74, 0xaf, 0x7b, 0xcd, 0x6f, 0xfe, 0xac, 0x4e, 0xdb, 0x4e, 0x45, 0x35, 0x36, 0xc5, 0xc0, 0x6c, 0x3d, 0x64, 0xf4, 0xd8, 0x07, 0x62, 0xd1, 0xec, 0xf3, 0xfc, 0x93, 0xc9, 0x28, 0x0c, 0x2c, 0xf3, + /* (2^426)P */ 0x0c, 0x69, 0x2b, 0x5c, 0xb6, 0x41, 0x69, 0xf1, 0xa4, 0xf1, 0x5b, 0x75, 0x4c, 0x42, 0x8b, 0x47, 0xeb, 0x69, 0xfb, 0xa8, 0xe6, 0xf9, 0x7b, 0x48, 0x50, 0xaf, 0xd3, 0xda, 0xb2, 0x35, 0x10, 0xb5, 0x5b, 0x40, 0x90, 0x39, 0xc9, 0x07, 0x06, 0x73, 0x26, 0x20, 0x95, 0x01, 0xa4, 0x2d, 0xf0, 0xe7, 0x2e, 0x00, 0x7d, 0x41, 0x09, 0x68, 0x13, 0xc4, + /* (2^427)P */ 0xbe, 0x38, 0x78, 0xcf, 0xc9, 0x4f, 0x36, 0xca, 0x09, 0x61, 0x31, 0x3c, 0x57, 0x2e, 0xec, 0x17, 0xa4, 0x7d, 0x19, 0x2b, 0x9b, 0x5b, 0xbe, 0x8f, 0xd6, 0xc5, 0x2f, 0x86, 0xf2, 0x64, 0x76, 0x17, 0x00, 0x6e, 0x1a, 0x8c, 0x67, 0x1b, 0x68, 0xeb, 0x15, 0xa2, 0xd6, 0x09, 0x91, 0xdd, 0x23, 0x0d, 0x98, 0xb2, 0x10, 0x19, 0x55, 0x9b, 0x63, 0xf2, + /* (2^428)P */ 0x51, 0x1f, 0x93, 0xea, 0x2a, 0x3a, 0xfa, 0x41, 0xc0, 0x57, 0xfb, 0x74, 0xa6, 0x65, 0x09, 0x56, 0x14, 0xb6, 0x12, 0xaa, 0xb3, 0x1a, 0x8d, 0x3b, 0x76, 0x91, 0x7a, 0x23, 0x56, 0x9c, 0x6a, 0xc0, 0xe0, 0x3c, 0x3f, 0xb5, 0x1a, 0xf4, 0x57, 0x71, 0x93, 0x2b, 0xb1, 0xa7, 0x70, 0x57, 0x22, 0x80, 0xf5, 0xb8, 0x07, 0x77, 0x87, 0x0c, 0xbe, 0x83, + /* (2^429)P */ 0x07, 0x9b, 0x0e, 0x52, 0x38, 0x63, 0x13, 0x86, 0x6a, 0xa6, 0xb4, 0xd2, 0x60, 0x68, 0x9a, 0x99, 0x82, 0x0a, 0x04, 0x5f, 0x89, 0x7a, 0x1a, 0x2a, 0xae, 0x2d, 0x35, 0x0c, 0x1e, 0xad, 0xef, 0x4f, 0x9a, 0xfc, 0xc8, 0xd9, 0xcf, 0x9d, 0x48, 0x71, 0xa5, 0x55, 0x79, 0x73, 0x39, 0x1b, 0xd8, 0x73, 0xec, 0x9b, 0x03, 0x16, 0xd8, 0x82, 0xf7, 0x67, + /* (2^430)P */ 0x52, 0x67, 0x42, 0x21, 0xc9, 0x40, 0x78, 0x82, 0x2b, 0x95, 0x2d, 0x20, 0x92, 0xd1, 0xe2, 0x61, 0x25, 0xb0, 0xc6, 0x9c, 0x20, 0x59, 0x8e, 0x28, 0x6f, 0xf3, 0xfd, 0xd3, 0xc1, 0x32, 0x43, 0xc9, 0xa6, 0x08, 0x7a, 0x77, 0x9c, 0x4c, 0x8c, 0x33, 0x71, 0x13, 0x69, 0xe3, 0x52, 0x30, 0xa7, 0xf5, 0x07, 0x67, 0xac, 0xad, 0x46, 0x8a, 0x26, 0x25, + /* (2^431)P */ 0xda, 0x86, 0xc4, 0xa2, 0x71, 0x56, 0xdd, 0xd2, 0x48, 0xd3, 0xde, 0x42, 0x63, 0x01, 0xa7, 0x2c, 0x92, 0x83, 0x6f, 0x2e, 0xd8, 0x1e, 0x3f, 0xc1, 0xc5, 0x42, 0x4e, 0x34, 0x19, 0x54, 0x6e, 0x35, 0x2c, 0x51, 0x2e, 0xfd, 0x0f, 0x9a, 0x45, 0x66, 0x5e, 0x4a, 0x83, 0xda, 0x0a, 0x53, 0x68, 0x63, 0xfa, 0xce, 0x47, 0x20, 0xd3, 0x34, 0xba, 0x0d, + /* (2^432)P */ 0xd0, 0xe9, 0x64, 0xa4, 0x61, 0x4b, 0x86, 0xe5, 0x93, 0x6f, 0xda, 0x0e, 0x31, 0x7e, 0x6e, 0xe3, 0xc6, 0x73, 0xd8, 0xa3, 0x08, 0x57, 0x52, 0xcd, 0x51, 0x63, 0x1d, 0x9f, 0x93, 0x00, 0x62, 0x91, 0x26, 0x21, 0xa7, 0xdd, 0x25, 0x0f, 0x09, 0x0d, 0x35, 0xad, 0xcf, 0x11, 0x8e, 0x6e, 0xe8, 0xae, 0x1d, 0x95, 0xcb, 0x88, 0xf8, 0x70, 0x7b, 0x91, + /* (2^433)P */ 0x0c, 0x19, 0x5c, 0xd9, 0x8d, 0xda, 0x9d, 0x2c, 0x90, 0x54, 0x65, 0xe8, 0xb6, 0x35, 0x50, 0xae, 0xea, 0xae, 0x43, 0xb7, 0x1e, 0x99, 0x8b, 0x4c, 0x36, 0x4e, 0xe4, 0x1e, 0xc4, 0x64, 0x43, 0xb6, 0xeb, 0xd4, 0xe9, 0x60, 0x22, 0xee, 0xcf, 0xb8, 0x52, 0x1b, 0xf0, 0x04, 0xce, 0xbc, 0x2b, 0xf0, 0xbe, 0xcd, 0x44, 0x74, 0x1e, 0x1f, 0x63, 0xf9, + /* (2^434)P */ 0xe1, 0x3f, 0x95, 0x94, 0xb2, 0xb6, 0x31, 0xa9, 0x1b, 0xdb, 0xfd, 0x0e, 0xdb, 0xdd, 0x1a, 0x22, 0x78, 0x60, 0x9f, 0x75, 0x5f, 0x93, 0x06, 0x0c, 0xd8, 0xbb, 0xa2, 0x85, 0x2b, 0x5e, 0xc0, 0x9b, 0xa8, 0x5d, 0xaf, 0x93, 0x91, 0x91, 0x47, 0x41, 0x1a, 0xfc, 0xb4, 0x51, 0x85, 0xad, 0x69, 0x4d, 0x73, 0x69, 0xd5, 0x4e, 0x82, 0xfb, 0x66, 0xcb, + /* (2^435)P */ 0x7c, 0xbe, 0xc7, 0x51, 0xc4, 0x74, 0x6e, 0xab, 0xfd, 0x41, 0x4f, 0x76, 0x4f, 0x24, 0x03, 0xd6, 0x2a, 0xb7, 0x42, 0xb4, 0xda, 0x41, 0x2c, 0x82, 0x48, 0x4c, 0x7f, 0x6f, 0x25, 0x5d, 0x36, 0xd4, 0x69, 0xf5, 0xef, 0x02, 0x81, 0xea, 0x6f, 0x19, 0x69, 0xe8, 0x6f, 0x5b, 0x2f, 0x14, 0x0e, 0x6f, 0x89, 0xb4, 0xb5, 0xd8, 0xae, 0xef, 0x7b, 0x87, + /* (2^436)P */ 0xe9, 0x91, 0xa0, 0x8b, 0xc9, 0xe0, 0x01, 0x90, 0x37, 0xc1, 0x6f, 0xdc, 0x5e, 0xf7, 0xbf, 0x43, 0x00, 0xaa, 0x10, 0x76, 0x76, 0x18, 0x6e, 0x19, 0x1e, 0x94, 0x50, 0x11, 0x0a, 0xd1, 0xe2, 0xdb, 0x08, 0x21, 0xa0, 0x1f, 0xdb, 0x54, 0xfe, 0xea, 0x6e, 0xa3, 0x68, 0x56, 0x87, 0x0b, 0x22, 0x4e, 0x66, 0xf3, 0x82, 0x82, 0x00, 0xcd, 0xd4, 0x12, + /* (2^437)P */ 0x25, 0x8e, 0x24, 0x77, 0x64, 0x4c, 0xe0, 0xf8, 0x18, 0xc0, 0xdc, 0xc7, 0x1b, 0x35, 0x65, 0xde, 0x67, 0x41, 0x5e, 0x6f, 0x90, 0x82, 0xa7, 0x2e, 0x6d, 0xf1, 0x47, 0xb4, 0x92, 0x9c, 0xfd, 0x6a, 0x9a, 0x41, 0x36, 0x20, 0x24, 0x58, 0xc3, 0x59, 0x07, 0x9a, 0xfa, 0x9f, 0x03, 0xcb, 0xc7, 0x69, 0x37, 0x60, 0xe1, 0xab, 0x13, 0x72, 0xee, 0xa2, + /* (2^438)P */ 0x74, 0x78, 0xfb, 0x13, 0xcb, 0x8e, 0x37, 0x1a, 0xf6, 0x1d, 0x17, 0x83, 0x06, 0xd4, 0x27, 0x06, 0x21, 0xe8, 0xda, 0xdf, 0x6b, 0xf3, 0x83, 0x6b, 0x34, 0x8a, 0x8c, 0xee, 0x01, 0x05, 0x5b, 0xed, 0xd3, 0x1b, 0xc9, 0x64, 0x83, 0xc9, 0x49, 0xc2, 0x57, 0x1b, 0xdd, 0xcf, 0xf1, 0x9d, 0x63, 0xee, 0x1c, 0x0d, 0xa0, 0x0a, 0x73, 0x1f, 0x5b, 0x32, + /* (2^439)P */ 0x29, 0xce, 0x1e, 0xc0, 0x6a, 0xf5, 0xeb, 0x99, 0x5a, 0x39, 0x23, 0xe9, 0xdd, 0xac, 0x44, 0x88, 0xbc, 0x80, 0x22, 0xde, 0x2c, 0xcb, 0xa8, 0x3b, 0xff, 0xf7, 0x6f, 0xc7, 0x71, 0x72, 0xa8, 0xa3, 0xf6, 0x4d, 0xc6, 0x75, 0xda, 0x80, 0xdc, 0xd9, 0x30, 0xd9, 0x07, 0x50, 0x5a, 0x54, 0x7d, 0xda, 0x39, 0x6f, 0x78, 0x94, 0xbf, 0x25, 0x98, 0xdc, + /* (2^440)P */ 0x01, 0x26, 0x62, 0x44, 0xfb, 0x0f, 0x11, 0x72, 0x73, 0x0a, 0x16, 0xc7, 0x16, 0x9c, 0x9b, 0x37, 0xd8, 0xff, 0x4f, 0xfe, 0x57, 0xdb, 0xae, 0xef, 0x7d, 0x94, 0x30, 0x04, 0x70, 0x83, 0xde, 0x3c, 0xd4, 0xb5, 0x70, 0xda, 0xa7, 0x55, 0xc8, 0x19, 0xe1, 0x36, 0x15, 0x61, 0xe7, 0x3b, 0x7d, 0x85, 0xbb, 0xf3, 0x42, 0x5a, 0x94, 0xf4, 0x53, 0x2a, + /* (2^441)P */ 0x14, 0x60, 0xa6, 0x0b, 0x83, 0xe1, 0x23, 0x77, 0xc0, 0xce, 0x50, 0xed, 0x35, 0x8d, 0x98, 0x99, 0x7d, 0xf5, 0x8d, 0xce, 0x94, 0x25, 0xc8, 0x0f, 0x6d, 0xfa, 0x4a, 0xa4, 0x3a, 0x1f, 0x66, 0xfb, 0x5a, 0x64, 0xaf, 0x8b, 0x54, 0x54, 0x44, 0x3f, 0x5b, 0x88, 0x61, 0xe4, 0x48, 0x45, 0x26, 0x20, 0xbe, 0x0d, 0x06, 0xbb, 0x65, 0x59, 0xe1, 0x36, + /* (2^442)P */ 0xb7, 0x98, 0xce, 0xa3, 0xe3, 0xee, 0x11, 0x1b, 0x9e, 0x24, 0x59, 0x75, 0x31, 0x37, 0x44, 0x6f, 0x6b, 0x9e, 0xec, 0xb7, 0x44, 0x01, 0x7e, 0xab, 0xbb, 0x69, 0x5d, 0x11, 0xb0, 0x30, 0x64, 0xea, 0x91, 0xb4, 0x7a, 0x8c, 0x02, 0x4c, 0xb9, 0x10, 0xa7, 0xc7, 0x79, 0xe6, 0xdc, 0x77, 0xe3, 0xc8, 0xef, 0x3e, 0xf9, 0x38, 0x81, 0xce, 0x9a, 0xb2, + /* (2^443)P */ 0x91, 0x12, 0x76, 0xd0, 0x10, 0xb4, 0xaf, 0xe1, 0x89, 0x3a, 0x93, 0x6b, 0x5c, 0x19, 0x5f, 0x24, 0xed, 0x04, 0x92, 0xc7, 0xf0, 0x00, 0x08, 0xc1, 0x92, 0xff, 0x90, 0xdb, 0xb2, 0xbf, 0xdf, 0x49, 0xcd, 0xbd, 0x5c, 0x6e, 0xbf, 0x16, 0xbb, 0x61, 0xf9, 0x20, 0x33, 0x35, 0x93, 0x11, 0xbc, 0x59, 0x69, 0xce, 0x18, 0x9f, 0xf8, 0x7b, 0xa1, 0x6e, + /* (2^444)P */ 0xa1, 0xf4, 0xaf, 0xad, 0xf8, 0xe6, 0x99, 0xd2, 0xa1, 0x4d, 0xde, 0x56, 0xc9, 0x7b, 0x0b, 0x11, 0x3e, 0xbf, 0x89, 0x1a, 0x9a, 0x90, 0xe5, 0xe2, 0xa6, 0x37, 0x88, 0xa1, 0x68, 0x59, 0xae, 0x8c, 0xec, 0x02, 0x14, 0x8d, 0xb7, 0x2e, 0x25, 0x75, 0x7f, 0x76, 0x1a, 0xd3, 0x4d, 0xad, 0x8a, 0x00, 0x6c, 0x96, 0x49, 0xa4, 0xc3, 0x2e, 0x5c, 0x7b, + /* (2^445)P */ 0x26, 0x53, 0xf7, 0xda, 0xa8, 0x01, 0x14, 0xb1, 0x63, 0xe3, 0xc3, 0x89, 0x88, 0xb0, 0x85, 0x40, 0x2b, 0x26, 0x9a, 0x10, 0x1a, 0x70, 0x33, 0xf4, 0x50, 0x9d, 0x4d, 0xd8, 0x64, 0xc6, 0x0f, 0xe1, 0x17, 0xc8, 0x10, 0x4b, 0xfc, 0xa0, 0xc9, 0xba, 0x2c, 0x98, 0x09, 0xf5, 0x84, 0xb6, 0x7c, 0x4e, 0xa3, 0xe3, 0x81, 0x1b, 0x32, 0x60, 0x02, 0xdd, + /* (2^446)P */ 0xa3, 0xe5, 0x86, 0xd4, 0x43, 0xa8, 0xd1, 0x98, 0x9d, 0x9d, 0xdb, 0x04, 0xcf, 0x6e, 0x35, 0x05, 0x30, 0x53, 0x3b, 0xbc, 0x90, 0x00, 0x4a, 0xc5, 0x40, 0x2a, 0x0f, 0xde, 0x1a, 0xd7, 0x36, 0x27, 0x44, 0x62, 0xa6, 0xac, 0x9d, 0xd2, 0x70, 0x69, 0x14, 0x39, 0x9b, 0xd1, 0xc3, 0x0a, 0x3a, 0x82, 0x0e, 0xf1, 0x94, 0xd7, 0x42, 0x94, 0xd5, 0x7d, + /* (2^447)P */ 0x04, 0xc0, 0x6e, 0x12, 0x90, 0x70, 0xf9, 0xdf, 0xf7, 0xc9, 0x86, 0xc0, 0xe6, 0x92, 0x8b, 0x0a, 0xa1, 0xc1, 0x3b, 0xcc, 0x33, 0xb7, 0xf0, 0xeb, 0x51, 0x50, 0x80, 0x20, 0x69, 0x1c, 0x4f, 0x89, 0x05, 0x1e, 0xe4, 0x7a, 0x0a, 0xc2, 0xf0, 0xf5, 0x78, 0x91, 0x76, 0x34, 0x45, 0xdc, 0x24, 0x53, 0x24, 0x98, 0xe2, 0x73, 0x6f, 0xe6, 0x46, 0x67, +} diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/constants.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/constants.go new file mode 100644 index 000000000000..b6b236e5d3d5 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/ecc/goldilocks/constants.go @@ -0,0 +1,71 @@ +package goldilocks + +import fp "github.com/cloudflare/circl/math/fp448" + +var ( + // genX is the x-coordinate of the generator of Goldilocks curve. + genX = fp.Elt{ + 0x5e, 0xc0, 0x0c, 0xc7, 0x2b, 0xa8, 0x26, 0x26, + 0x8e, 0x93, 0x00, 0x8b, 0xe1, 0x80, 0x3b, 0x43, + 0x11, 0x65, 0xb6, 0x2a, 0xf7, 0x1a, 0xae, 0x12, + 0x64, 0xa4, 0xd3, 0xa3, 0x24, 0xe3, 0x6d, 0xea, + 0x67, 0x17, 0x0f, 0x47, 0x70, 0x65, 0x14, 0x9e, + 0xda, 0x36, 0xbf, 0x22, 0xa6, 0x15, 0x1d, 0x22, + 0xed, 0x0d, 0xed, 0x6b, 0xc6, 0x70, 0x19, 0x4f, + } + // genY is the y-coordinate of the generator of Goldilocks curve. + genY = fp.Elt{ + 0x14, 0xfa, 0x30, 0xf2, 0x5b, 0x79, 0x08, 0x98, + 0xad, 0xc8, 0xd7, 0x4e, 0x2c, 0x13, 0xbd, 0xfd, + 0xc4, 0x39, 0x7c, 0xe6, 0x1c, 0xff, 0xd3, 0x3a, + 0xd7, 0xc2, 0xa0, 0x05, 0x1e, 0x9c, 0x78, 0x87, + 0x40, 0x98, 0xa3, 0x6c, 0x73, 0x73, 0xea, 0x4b, + 0x62, 0xc7, 0xc9, 0x56, 0x37, 0x20, 0x76, 0x88, + 0x24, 0xbc, 0xb6, 0x6e, 0x71, 0x46, 0x3f, 0x69, + } + // paramD is -39081 in Fp. + paramD = fp.Elt{ + 0x56, 0x67, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + } + // order is 2^446-0x8335dc163bb124b65129c96fde933d8d723a70aadc873d6d54a7bb0d, + // which is the number of points in the prime subgroup. + order = Scalar{ + 0xf3, 0x44, 0x58, 0xab, 0x92, 0xc2, 0x78, 0x23, + 0x55, 0x8f, 0xc5, 0x8d, 0x72, 0xc2, 0x6c, 0x21, + 0x90, 0x36, 0xd6, 0xae, 0x49, 0xdb, 0x4e, 0xc4, + 0xe9, 0x23, 0xca, 0x7c, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + } + // residue448 is 2^448 mod order. + residue448 = [4]uint64{ + 0x721cf5b5529eec34, 0x7a4cf635c8e9c2ab, 0xeec492d944a725bf, 0x20cd77058, + } + // invFour is 1/4 mod order. + invFour = Scalar{ + 0x3d, 0x11, 0xd6, 0xaa, 0xa4, 0x30, 0xde, 0x48, + 0xd5, 0x63, 0x71, 0xa3, 0x9c, 0x30, 0x5b, 0x08, + 0xa4, 0x8d, 0xb5, 0x6b, 0xd2, 0xb6, 0x13, 0x71, + 0xfa, 0x88, 0x32, 0xdf, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, + } + // paramDTwist is -39082 in Fp. The D parameter of the twist curve. + paramDTwist = fp.Elt{ + 0x55, 0x67, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + } +) diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/curve.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/curve.go new file mode 100644 index 000000000000..5a939100d2ca --- /dev/null +++ b/vendor/github.com/cloudflare/circl/ecc/goldilocks/curve.go @@ -0,0 +1,80 @@ +// Package goldilocks provides elliptic curve operations over the goldilocks curve. +package goldilocks + +import fp "github.com/cloudflare/circl/math/fp448" + +// Curve is the Goldilocks curve x^2+y^2=z^2-39081x^2y^2. +type Curve struct{} + +// Identity returns the identity point. +func (Curve) Identity() *Point { + return &Point{ + y: fp.One(), + z: fp.One(), + } +} + +// IsOnCurve returns true if the point lies on the curve. +func (Curve) IsOnCurve(P *Point) bool { + x2, y2, t, t2, z2 := &fp.Elt{}, &fp.Elt{}, &fp.Elt{}, &fp.Elt{}, &fp.Elt{} + rhs, lhs := &fp.Elt{}, &fp.Elt{} + fp.Mul(t, &P.ta, &P.tb) // t = ta*tb + fp.Sqr(x2, &P.x) // x^2 + fp.Sqr(y2, &P.y) // y^2 + fp.Sqr(z2, &P.z) // z^2 + fp.Sqr(t2, t) // t^2 + fp.Add(lhs, x2, y2) // x^2 + y^2 + fp.Mul(rhs, t2, ¶mD) // dt^2 + fp.Add(rhs, rhs, z2) // z^2 + dt^2 + fp.Sub(lhs, lhs, rhs) // x^2 + y^2 - (z^2 + dt^2) + eq0 := fp.IsZero(lhs) + + fp.Mul(lhs, &P.x, &P.y) // xy + fp.Mul(rhs, t, &P.z) // tz + fp.Sub(lhs, lhs, rhs) // xy - tz + eq1 := fp.IsZero(lhs) + return eq0 && eq1 +} + +// Generator returns the generator point. +func (Curve) Generator() *Point { + return &Point{ + x: genX, + y: genY, + z: fp.One(), + ta: genX, + tb: genY, + } +} + +// Order returns the number of points in the prime subgroup. +func (Curve) Order() Scalar { return order } + +// Double returns 2P. +func (Curve) Double(P *Point) *Point { R := *P; R.Double(); return &R } + +// Add returns P+Q. +func (Curve) Add(P, Q *Point) *Point { R := *P; R.Add(Q); return &R } + +// ScalarMult returns kP. This function runs in constant time. +func (e Curve) ScalarMult(k *Scalar, P *Point) *Point { + k4 := &Scalar{} + k4.divBy4(k) + return e.pull(twistCurve{}.ScalarMult(k4, e.push(P))) +} + +// ScalarBaseMult returns kG where G is the generator point. This function runs in constant time. +func (e Curve) ScalarBaseMult(k *Scalar) *Point { + k4 := &Scalar{} + k4.divBy4(k) + return e.pull(twistCurve{}.ScalarBaseMult(k4)) +} + +// CombinedMult returns mG+nP, where G is the generator point. This function is non-constant time. +func (e Curve) CombinedMult(m, n *Scalar, P *Point) *Point { + m4 := &Scalar{} + n4 := &Scalar{} + m4.divBy4(m) + n4.divBy4(n) + return e.pull(twistCurve{}.CombinedMult(m4, n4, twistCurve{}.pull(P))) +} diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/isogeny.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/isogeny.go new file mode 100644 index 000000000000..b1daab851c5d --- /dev/null +++ b/vendor/github.com/cloudflare/circl/ecc/goldilocks/isogeny.go @@ -0,0 +1,52 @@ +package goldilocks + +import fp "github.com/cloudflare/circl/math/fp448" + +func (Curve) pull(P *twistPoint) *Point { return twistCurve{}.push(P) } +func (twistCurve) pull(P *Point) *twistPoint { return Curve{}.push(P) } + +// push sends a point on the Goldilocks curve to a point on the twist curve. +func (Curve) push(P *Point) *twistPoint { + Q := &twistPoint{} + Px, Py, Pz := &P.x, &P.y, &P.z + a, b, c, d, e, f, g, h := &Q.x, &Q.y, &Q.z, &fp.Elt{}, &Q.ta, &Q.x, &Q.y, &Q.tb + fp.Add(e, Px, Py) // x+y + fp.Sqr(a, Px) // A = x^2 + fp.Sqr(b, Py) // B = y^2 + fp.Sqr(c, Pz) // z^2 + fp.Add(c, c, c) // C = 2*z^2 + *d = *a // D = A + fp.Sqr(e, e) // (x+y)^2 + fp.Sub(e, e, a) // (x+y)^2-A + fp.Sub(e, e, b) // E = (x+y)^2-A-B + fp.Add(h, b, d) // H = B+D + fp.Sub(g, b, d) // G = B-D + fp.Sub(f, c, h) // F = C-H + fp.Mul(&Q.z, f, g) // Z = F * G + fp.Mul(&Q.x, e, f) // X = E * F + fp.Mul(&Q.y, g, h) // Y = G * H, // T = E * H + return Q +} + +// push sends a point on the twist curve to a point on the Goldilocks curve. +func (twistCurve) push(P *twistPoint) *Point { + Q := &Point{} + Px, Py, Pz := &P.x, &P.y, &P.z + a, b, c, d, e, f, g, h := &Q.x, &Q.y, &Q.z, &fp.Elt{}, &Q.ta, &Q.x, &Q.y, &Q.tb + fp.Add(e, Px, Py) // x+y + fp.Sqr(a, Px) // A = x^2 + fp.Sqr(b, Py) // B = y^2 + fp.Sqr(c, Pz) // z^2 + fp.Add(c, c, c) // C = 2*z^2 + fp.Neg(d, a) // D = -A + fp.Sqr(e, e) // (x+y)^2 + fp.Sub(e, e, a) // (x+y)^2-A + fp.Sub(e, e, b) // E = (x+y)^2-A-B + fp.Add(h, b, d) // H = B+D + fp.Sub(g, b, d) // G = B-D + fp.Sub(f, c, h) // F = C-H + fp.Mul(&Q.z, f, g) // Z = F * G + fp.Mul(&Q.x, e, f) // X = E * F + fp.Mul(&Q.y, g, h) // Y = G * H, // T = E * H + return Q +} diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/point.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/point.go new file mode 100644 index 000000000000..11f73de0542d --- /dev/null +++ b/vendor/github.com/cloudflare/circl/ecc/goldilocks/point.go @@ -0,0 +1,171 @@ +package goldilocks + +import ( + "errors" + "fmt" + + fp "github.com/cloudflare/circl/math/fp448" +) + +// Point is a point on the Goldilocks Curve. +type Point struct{ x, y, z, ta, tb fp.Elt } + +func (P Point) String() string { + return fmt.Sprintf("x: %v\ny: %v\nz: %v\nta: %v\ntb: %v", P.x, P.y, P.z, P.ta, P.tb) +} + +// FromAffine creates a point from affine coordinates. +func FromAffine(x, y *fp.Elt) (*Point, error) { + P := &Point{ + x: *x, + y: *y, + z: fp.One(), + ta: *x, + tb: *y, + } + if !(Curve{}).IsOnCurve(P) { + return P, errors.New("point not on curve") + } + return P, nil +} + +// isLessThan returns true if 0 <= x < y, and assumes that slices are of the +// same length and are interpreted in little-endian order. +func isLessThan(x, y []byte) bool { + i := len(x) - 1 + for i > 0 && x[i] == y[i] { + i-- + } + return x[i] < y[i] +} + +// FromBytes returns a point from the input buffer. +func FromBytes(in []byte) (*Point, error) { + if len(in) < fp.Size+1 { + return nil, errors.New("wrong input length") + } + err := errors.New("invalid decoding") + P := &Point{} + signX := in[fp.Size] >> 7 + copy(P.y[:], in[:fp.Size]) + p := fp.P() + if !isLessThan(P.y[:], p[:]) { + return nil, err + } + + u, v := &fp.Elt{}, &fp.Elt{} + one := fp.One() + fp.Sqr(u, &P.y) // u = y^2 + fp.Mul(v, u, ¶mD) // v = dy^2 + fp.Sub(u, u, &one) // u = y^2-1 + fp.Sub(v, v, &one) // v = dy^2-1 + isQR := fp.InvSqrt(&P.x, u, v) // x = sqrt(u/v) + if !isQR { + return nil, err + } + fp.Modp(&P.x) // x = x mod p + if fp.IsZero(&P.x) && signX == 1 { + return nil, err + } + if signX != (P.x[0] & 1) { + fp.Neg(&P.x, &P.x) + } + P.ta = P.x + P.tb = P.y + P.z = fp.One() + return P, nil +} + +// IsIdentity returns true is P is the identity Point. +func (P *Point) IsIdentity() bool { + return fp.IsZero(&P.x) && !fp.IsZero(&P.y) && !fp.IsZero(&P.z) && P.y == P.z +} + +// IsEqual returns true if P is equivalent to Q. +func (P *Point) IsEqual(Q *Point) bool { + l, r := &fp.Elt{}, &fp.Elt{} + fp.Mul(l, &P.x, &Q.z) + fp.Mul(r, &Q.x, &P.z) + fp.Sub(l, l, r) + b := fp.IsZero(l) + fp.Mul(l, &P.y, &Q.z) + fp.Mul(r, &Q.y, &P.z) + fp.Sub(l, l, r) + b = b && fp.IsZero(l) + fp.Mul(l, &P.ta, &P.tb) + fp.Mul(l, l, &Q.z) + fp.Mul(r, &Q.ta, &Q.tb) + fp.Mul(r, r, &P.z) + fp.Sub(l, l, r) + b = b && fp.IsZero(l) + return b +} + +// Neg obtains the inverse of the Point. +func (P *Point) Neg() { fp.Neg(&P.x, &P.x); fp.Neg(&P.ta, &P.ta) } + +// ToAffine returns the x,y affine coordinates of P. +func (P *Point) ToAffine() (x, y fp.Elt) { + fp.Inv(&P.z, &P.z) // 1/z + fp.Mul(&P.x, &P.x, &P.z) // x/z + fp.Mul(&P.y, &P.y, &P.z) // y/z + fp.Modp(&P.x) + fp.Modp(&P.y) + fp.SetOne(&P.z) + P.ta = P.x + P.tb = P.y + return P.x, P.y +} + +// ToBytes stores P into a slice of bytes. +func (P *Point) ToBytes(out []byte) error { + if len(out) < fp.Size+1 { + return errors.New("invalid decoding") + } + x, y := P.ToAffine() + out[fp.Size] = (x[0] & 1) << 7 + return fp.ToBytes(out[:fp.Size], &y) +} + +// MarshalBinary encodes the receiver into a binary form and returns the result. +func (P *Point) MarshalBinary() (data []byte, err error) { + data = make([]byte, fp.Size+1) + err = P.ToBytes(data[:fp.Size+1]) + return data, err +} + +// UnmarshalBinary must be able to decode the form generated by MarshalBinary. +func (P *Point) UnmarshalBinary(data []byte) error { Q, err := FromBytes(data); *P = *Q; return err } + +// Double sets P = 2Q. +func (P *Point) Double() { P.Add(P) } + +// Add sets P =P+Q.. +func (P *Point) Add(Q *Point) { + // This is formula (5) from "Twisted Edwards Curves Revisited" by + // Hisil H., Wong K.KH., Carter G., Dawson E. (2008) + // https://doi.org/10.1007/978-3-540-89255-7_20 + x1, y1, z1, ta1, tb1 := &P.x, &P.y, &P.z, &P.ta, &P.tb + x2, y2, z2, ta2, tb2 := &Q.x, &Q.y, &Q.z, &Q.ta, &Q.tb + x3, y3, z3, E, H := &P.x, &P.y, &P.z, &P.ta, &P.tb + A, B, C, D := &fp.Elt{}, &fp.Elt{}, &fp.Elt{}, &fp.Elt{} + t1, t2, F, G := C, D, &fp.Elt{}, &fp.Elt{} + fp.Mul(t1, ta1, tb1) // t1 = ta1*tb1 + fp.Mul(t2, ta2, tb2) // t2 = ta2*tb2 + fp.Mul(A, x1, x2) // A = x1*x2 + fp.Mul(B, y1, y2) // B = y1*y2 + fp.Mul(C, t1, t2) // t1*t2 + fp.Mul(C, C, ¶mD) // C = d*t1*t2 + fp.Mul(D, z1, z2) // D = z1*z2 + fp.Add(F, x1, y1) // x1+y1 + fp.Add(E, x2, y2) // x2+y2 + fp.Mul(E, E, F) // (x1+y1)*(x2+y2) + fp.Sub(E, E, A) // (x1+y1)*(x2+y2)-A + fp.Sub(E, E, B) // E = (x1+y1)*(x2+y2)-A-B + fp.Sub(F, D, C) // F = D-C + fp.Add(G, D, C) // G = D+C + fp.Sub(H, B, A) // H = B-A + fp.Mul(z3, F, G) // Z = F * G + fp.Mul(x3, E, F) // X = E * F + fp.Mul(y3, G, H) // Y = G * H, T = E * H +} diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/scalar.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/scalar.go new file mode 100644 index 000000000000..f98117b2527e --- /dev/null +++ b/vendor/github.com/cloudflare/circl/ecc/goldilocks/scalar.go @@ -0,0 +1,203 @@ +package goldilocks + +import ( + "encoding/binary" + "math/bits" +) + +// ScalarSize is the size (in bytes) of scalars. +const ScalarSize = 56 // 448 / 8 + +// _N is the number of 64-bit words to store scalars. +const _N = 7 // 448 / 64 + +// Scalar represents a positive integer stored in little-endian order. +type Scalar [ScalarSize]byte + +type scalar64 [_N]uint64 + +func (z *scalar64) fromScalar(x *Scalar) { + z[0] = binary.LittleEndian.Uint64(x[0*8 : 1*8]) + z[1] = binary.LittleEndian.Uint64(x[1*8 : 2*8]) + z[2] = binary.LittleEndian.Uint64(x[2*8 : 3*8]) + z[3] = binary.LittleEndian.Uint64(x[3*8 : 4*8]) + z[4] = binary.LittleEndian.Uint64(x[4*8 : 5*8]) + z[5] = binary.LittleEndian.Uint64(x[5*8 : 6*8]) + z[6] = binary.LittleEndian.Uint64(x[6*8 : 7*8]) +} + +func (z *scalar64) toScalar(x *Scalar) { + binary.LittleEndian.PutUint64(x[0*8:1*8], z[0]) + binary.LittleEndian.PutUint64(x[1*8:2*8], z[1]) + binary.LittleEndian.PutUint64(x[2*8:3*8], z[2]) + binary.LittleEndian.PutUint64(x[3*8:4*8], z[3]) + binary.LittleEndian.PutUint64(x[4*8:5*8], z[4]) + binary.LittleEndian.PutUint64(x[5*8:6*8], z[5]) + binary.LittleEndian.PutUint64(x[6*8:7*8], z[6]) +} + +// add calculates z = x + y. Assumes len(z) > max(len(x),len(y)). +func add(z, x, y []uint64) uint64 { + l, L, zz := len(x), len(y), y + if l > L { + l, L, zz = L, l, x + } + c := uint64(0) + for i := 0; i < l; i++ { + z[i], c = bits.Add64(x[i], y[i], c) + } + for i := l; i < L; i++ { + z[i], c = bits.Add64(zz[i], 0, c) + } + return c +} + +// sub calculates z = x - y. Assumes len(z) > max(len(x),len(y)). +func sub(z, x, y []uint64) uint64 { + l, L, zz := len(x), len(y), y + if l > L { + l, L, zz = L, l, x + } + c := uint64(0) + for i := 0; i < l; i++ { + z[i], c = bits.Sub64(x[i], y[i], c) + } + for i := l; i < L; i++ { + z[i], c = bits.Sub64(zz[i], 0, c) + } + return c +} + +// mulWord calculates z = x * y. Assumes len(z) >= len(x)+1. +func mulWord(z, x []uint64, y uint64) { + for i := range z { + z[i] = 0 + } + carry := uint64(0) + for i := range x { + hi, lo := bits.Mul64(x[i], y) + lo, cc := bits.Add64(lo, z[i], 0) + hi, _ = bits.Add64(hi, 0, cc) + z[i], cc = bits.Add64(lo, carry, 0) + carry, _ = bits.Add64(hi, 0, cc) + } + z[len(x)] = carry +} + +// Cmov moves x into z if b=1. +func (z *scalar64) Cmov(b uint64, x *scalar64) { + m := uint64(0) - b + for i := range z { + z[i] = (z[i] &^ m) | (x[i] & m) + } +} + +// leftShift shifts to the left the words of z returning the more significant word. +func (z *scalar64) leftShift(low uint64) uint64 { + high := z[_N-1] + for i := _N - 1; i > 0; i-- { + z[i] = z[i-1] + } + z[0] = low + return high +} + +// reduceOneWord calculates z = z + 2^448*x such that the result fits in a Scalar. +func (z *scalar64) reduceOneWord(x uint64) { + prod := (&scalar64{})[:] + mulWord(prod, residue448[:], x) + cc := add(z[:], z[:], prod) + mulWord(prod, residue448[:], cc) + add(z[:], z[:], prod) +} + +// modOrder reduces z mod order. +func (z *scalar64) modOrder() { + var o64, x scalar64 + o64.fromScalar(&order) + // Performs: while (z >= order) { z = z-order } + // At most 8 (eight) iterations reduce 3 bits by subtracting. + for i := 0; i < 8; i++ { + c := sub(x[:], z[:], o64[:]) // (c || x) = z-order + z.Cmov(1-c, &x) // if c != 0 { z = x } + } +} + +// FromBytes stores z = x mod order, where x is a number stored in little-endian order. +func (z *Scalar) FromBytes(x []byte) { + n := len(x) + nCeil := (n + 7) >> 3 + for i := range z { + z[i] = 0 + } + if nCeil < _N { + copy(z[:], x) + return + } + copy(z[:], x[8*(nCeil-_N):]) + var z64 scalar64 + z64.fromScalar(z) + for i := nCeil - _N - 1; i >= 0; i-- { + low := binary.LittleEndian.Uint64(x[8*i:]) + high := z64.leftShift(low) + z64.reduceOneWord(high) + } + z64.modOrder() + z64.toScalar(z) +} + +// divBy4 calculates z = x/4 mod order. +func (z *Scalar) divBy4(x *Scalar) { z.Mul(x, &invFour) } + +// Red reduces z mod order. +func (z *Scalar) Red() { var t scalar64; t.fromScalar(z); t.modOrder(); t.toScalar(z) } + +// Neg calculates z = -z mod order. +func (z *Scalar) Neg() { z.Sub(&order, z) } + +// Add calculates z = x+y mod order. +func (z *Scalar) Add(x, y *Scalar) { + var z64, x64, y64, t scalar64 + x64.fromScalar(x) + y64.fromScalar(y) + c := add(z64[:], x64[:], y64[:]) + add(t[:], z64[:], residue448[:]) + z64.Cmov(c, &t) + z64.modOrder() + z64.toScalar(z) +} + +// Sub calculates z = x-y mod order. +func (z *Scalar) Sub(x, y *Scalar) { + var z64, x64, y64, t scalar64 + x64.fromScalar(x) + y64.fromScalar(y) + c := sub(z64[:], x64[:], y64[:]) + sub(t[:], z64[:], residue448[:]) + z64.Cmov(c, &t) + z64.modOrder() + z64.toScalar(z) +} + +// Mul calculates z = x*y mod order. +func (z *Scalar) Mul(x, y *Scalar) { + var z64, x64, y64 scalar64 + prod := (&[_N + 1]uint64{})[:] + x64.fromScalar(x) + y64.fromScalar(y) + mulWord(prod, x64[:], y64[_N-1]) + copy(z64[:], prod[:_N]) + z64.reduceOneWord(prod[_N]) + for i := _N - 2; i >= 0; i-- { + h := z64.leftShift(0) + z64.reduceOneWord(h) + mulWord(prod, x64[:], y64[i]) + c := add(z64[:], z64[:], prod[:_N]) + z64.reduceOneWord(prod[_N] + c) + } + z64.modOrder() + z64.toScalar(z) +} + +// IsZero returns true if z=0. +func (z *Scalar) IsZero() bool { z.Red(); return *z == Scalar{} } diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist.go new file mode 100644 index 000000000000..8cd4e333b965 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist.go @@ -0,0 +1,138 @@ +package goldilocks + +import ( + "crypto/subtle" + "math/bits" + + "github.com/cloudflare/circl/internal/conv" + "github.com/cloudflare/circl/math" + fp "github.com/cloudflare/circl/math/fp448" +) + +// twistCurve is -x^2+y^2=1-39082x^2y^2 and is 4-isogeneous to Goldilocks. +type twistCurve struct{} + +// Identity returns the identity point. +func (twistCurve) Identity() *twistPoint { + return &twistPoint{ + y: fp.One(), + z: fp.One(), + } +} + +// subYDiv16 update x = (x - y) / 16. +func subYDiv16(x *scalar64, y int64) { + s := uint64(y >> 63) + x0, b0 := bits.Sub64((*x)[0], uint64(y), 0) + x1, b1 := bits.Sub64((*x)[1], s, b0) + x2, b2 := bits.Sub64((*x)[2], s, b1) + x3, b3 := bits.Sub64((*x)[3], s, b2) + x4, b4 := bits.Sub64((*x)[4], s, b3) + x5, b5 := bits.Sub64((*x)[5], s, b4) + x6, _ := bits.Sub64((*x)[6], s, b5) + x[0] = (x0 >> 4) | (x1 << 60) + x[1] = (x1 >> 4) | (x2 << 60) + x[2] = (x2 >> 4) | (x3 << 60) + x[3] = (x3 >> 4) | (x4 << 60) + x[4] = (x4 >> 4) | (x5 << 60) + x[5] = (x5 >> 4) | (x6 << 60) + x[6] = (x6 >> 4) +} + +func recodeScalar(d *[113]int8, k *Scalar) { + var k64 scalar64 + k64.fromScalar(k) + for i := 0; i < 112; i++ { + d[i] = int8((k64[0] & 0x1f) - 16) + subYDiv16(&k64, int64(d[i])) + } + d[112] = int8(k64[0]) +} + +// ScalarMult returns kP. +func (e twistCurve) ScalarMult(k *Scalar, P *twistPoint) *twistPoint { + var TabP [8]preTwistPointProy + var S preTwistPointProy + var d [113]int8 + + var isZero int + if k.IsZero() { + isZero = 1 + } + subtle.ConstantTimeCopy(isZero, k[:], order[:]) + + minusK := *k + isEven := 1 - int(k[0]&0x1) + minusK.Neg() + subtle.ConstantTimeCopy(isEven, k[:], minusK[:]) + recodeScalar(&d, k) + + P.oddMultiples(TabP[:]) + Q := e.Identity() + for i := 112; i >= 0; i-- { + Q.Double() + Q.Double() + Q.Double() + Q.Double() + mask := d[i] >> 7 + absDi := (d[i] + mask) ^ mask + inx := int32((absDi - 1) >> 1) + sig := int((d[i] >> 7) & 0x1) + for j := range TabP { + S.cmov(&TabP[j], uint(subtle.ConstantTimeEq(inx, int32(j)))) + } + S.cneg(sig) + Q.mixAdd(&S) + } + Q.cneg(uint(isEven)) + return Q +} + +const ( + omegaFix = 7 + omegaVar = 5 +) + +// CombinedMult returns mG+nP. +func (e twistCurve) CombinedMult(m, n *Scalar, P *twistPoint) *twistPoint { + nafFix := math.OmegaNAF(conv.BytesLe2BigInt(m[:]), omegaFix) + nafVar := math.OmegaNAF(conv.BytesLe2BigInt(n[:]), omegaVar) + + if len(nafFix) > len(nafVar) { + nafVar = append(nafVar, make([]int32, len(nafFix)-len(nafVar))...) + } else if len(nafFix) < len(nafVar) { + nafFix = append(nafFix, make([]int32, len(nafVar)-len(nafFix))...) + } + + var TabQ [1 << (omegaVar - 2)]preTwistPointProy + P.oddMultiples(TabQ[:]) + Q := e.Identity() + for i := len(nafFix) - 1; i >= 0; i-- { + Q.Double() + // Generator point + if nafFix[i] != 0 { + idxM := absolute(nafFix[i]) >> 1 + R := tabVerif[idxM] + if nafFix[i] < 0 { + R.neg() + } + Q.mixAddZ1(&R) + } + // Variable input point + if nafVar[i] != 0 { + idxN := absolute(nafVar[i]) >> 1 + S := TabQ[idxN] + if nafVar[i] < 0 { + S.neg() + } + Q.mixAdd(&S) + } + } + return Q +} + +// absolute returns always a positive value. +func absolute(x int32) int32 { + mask := x >> 31 + return (x + mask) ^ mask +} diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/twistPoint.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/twistPoint.go new file mode 100644 index 000000000000..c55db77b0694 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/ecc/goldilocks/twistPoint.go @@ -0,0 +1,135 @@ +package goldilocks + +import ( + "fmt" + + fp "github.com/cloudflare/circl/math/fp448" +) + +type twistPoint struct{ x, y, z, ta, tb fp.Elt } + +type preTwistPointAffine struct{ addYX, subYX, dt2 fp.Elt } + +type preTwistPointProy struct { + preTwistPointAffine + z2 fp.Elt +} + +func (P *twistPoint) String() string { + return fmt.Sprintf("x: %v\ny: %v\nz: %v\nta: %v\ntb: %v", P.x, P.y, P.z, P.ta, P.tb) +} + +// cneg conditionally negates the point if b=1. +func (P *twistPoint) cneg(b uint) { + t := &fp.Elt{} + fp.Neg(t, &P.x) + fp.Cmov(&P.x, t, b) + fp.Neg(t, &P.ta) + fp.Cmov(&P.ta, t, b) +} + +// Double updates P with 2P. +func (P *twistPoint) Double() { + // This is formula (7) from "Twisted Edwards Curves Revisited" by + // Hisil H., Wong K.KH., Carter G., Dawson E. (2008) + // https://doi.org/10.1007/978-3-540-89255-7_20 + Px, Py, Pz, Pta, Ptb := &P.x, &P.y, &P.z, &P.ta, &P.tb + a, b, c, e, f, g, h := Px, Py, Pz, Pta, Px, Py, Ptb + fp.Add(e, Px, Py) // x+y + fp.Sqr(a, Px) // A = x^2 + fp.Sqr(b, Py) // B = y^2 + fp.Sqr(c, Pz) // z^2 + fp.Add(c, c, c) // C = 2*z^2 + fp.Add(h, a, b) // H = A+B + fp.Sqr(e, e) // (x+y)^2 + fp.Sub(e, e, h) // E = (x+y)^2-A-B + fp.Sub(g, b, a) // G = B-A + fp.Sub(f, c, g) // F = C-G + fp.Mul(Pz, f, g) // Z = F * G + fp.Mul(Px, e, f) // X = E * F + fp.Mul(Py, g, h) // Y = G * H, T = E * H +} + +// mixAdd calculates P= P+Q, where Q is a precomputed point with Z_Q = 1. +func (P *twistPoint) mixAddZ1(Q *preTwistPointAffine) { + fp.Add(&P.z, &P.z, &P.z) // D = 2*z1 (z2=1) + P.coreAddition(Q) +} + +// coreAddition calculates P=P+Q for curves with A=-1. +func (P *twistPoint) coreAddition(Q *preTwistPointAffine) { + // This is the formula following (5) from "Twisted Edwards Curves Revisited" by + // Hisil H., Wong K.KH., Carter G., Dawson E. (2008) + // https://doi.org/10.1007/978-3-540-89255-7_20 + Px, Py, Pz, Pta, Ptb := &P.x, &P.y, &P.z, &P.ta, &P.tb + addYX2, subYX2, dt2 := &Q.addYX, &Q.subYX, &Q.dt2 + a, b, c, d, e, f, g, h := Px, Py, &fp.Elt{}, Pz, Pta, Px, Py, Ptb + fp.Mul(c, Pta, Ptb) // t1 = ta*tb + fp.Sub(h, Py, Px) // y1-x1 + fp.Add(b, Py, Px) // y1+x1 + fp.Mul(a, h, subYX2) // A = (y1-x1)*(y2-x2) + fp.Mul(b, b, addYX2) // B = (y1+x1)*(y2+x2) + fp.Mul(c, c, dt2) // C = 2*D*t1*t2 + fp.Sub(e, b, a) // E = B-A + fp.Add(h, b, a) // H = B+A + fp.Sub(f, d, c) // F = D-C + fp.Add(g, d, c) // G = D+C + fp.Mul(Pz, f, g) // Z = F * G + fp.Mul(Px, e, f) // X = E * F + fp.Mul(Py, g, h) // Y = G * H, T = E * H +} + +func (P *preTwistPointAffine) neg() { + P.addYX, P.subYX = P.subYX, P.addYX + fp.Neg(&P.dt2, &P.dt2) +} + +func (P *preTwistPointAffine) cneg(b int) { + t := &fp.Elt{} + fp.Cswap(&P.addYX, &P.subYX, uint(b)) + fp.Neg(t, &P.dt2) + fp.Cmov(&P.dt2, t, uint(b)) +} + +func (P *preTwistPointAffine) cmov(Q *preTwistPointAffine, b uint) { + fp.Cmov(&P.addYX, &Q.addYX, b) + fp.Cmov(&P.subYX, &Q.subYX, b) + fp.Cmov(&P.dt2, &Q.dt2, b) +} + +// mixAdd calculates P= P+Q, where Q is a precomputed point with Z_Q != 1. +func (P *twistPoint) mixAdd(Q *preTwistPointProy) { + fp.Mul(&P.z, &P.z, &Q.z2) // D = 2*z1*z2 + P.coreAddition(&Q.preTwistPointAffine) +} + +// oddMultiples calculates T[i] = (2*i-1)P for 0 < i < len(T). +func (P *twistPoint) oddMultiples(T []preTwistPointProy) { + if n := len(T); n > 0 { + T[0].FromTwistPoint(P) + _2P := *P + _2P.Double() + R := &preTwistPointProy{} + R.FromTwistPoint(&_2P) + for i := 1; i < n; i++ { + P.mixAdd(R) + T[i].FromTwistPoint(P) + } + } +} + +// cmov conditionally moves Q into P if b=1. +func (P *preTwistPointProy) cmov(Q *preTwistPointProy, b uint) { + P.preTwistPointAffine.cmov(&Q.preTwistPointAffine, b) + fp.Cmov(&P.z2, &Q.z2, b) +} + +// FromTwistPoint precomputes some coordinates of Q for missed addition. +func (P *preTwistPointProy) FromTwistPoint(Q *twistPoint) { + fp.Add(&P.addYX, &Q.y, &Q.x) // addYX = X + Y + fp.Sub(&P.subYX, &Q.y, &Q.x) // subYX = Y - X + fp.Mul(&P.dt2, &Q.ta, &Q.tb) // T = ta*tb + fp.Mul(&P.dt2, &P.dt2, ¶mDTwist) // D*T + fp.Add(&P.dt2, &P.dt2, &P.dt2) // dt2 = 2*D*T + fp.Add(&P.z2, &Q.z, &Q.z) // z2 = 2*Z +} diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/twistTables.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/twistTables.go new file mode 100644 index 000000000000..ed432e02c78b --- /dev/null +++ b/vendor/github.com/cloudflare/circl/ecc/goldilocks/twistTables.go @@ -0,0 +1,216 @@ +package goldilocks + +import fp "github.com/cloudflare/circl/math/fp448" + +var tabFixMult = [fxV][fx2w1]preTwistPointAffine{ + { + { + addYX: fp.Elt{0x65, 0x4a, 0xdd, 0xdf, 0xb4, 0x79, 0x60, 0xc8, 0xa1, 0x70, 0xb4, 0x3a, 0x1e, 0x0c, 0x9b, 0x19, 0xe5, 0x48, 0x3f, 0xd7, 0x44, 0x18, 0x18, 0x14, 0x14, 0x27, 0x45, 0xd0, 0x2b, 0x24, 0xd5, 0x93, 0xc3, 0x74, 0x4c, 0x50, 0x70, 0x43, 0x26, 0x05, 0x08, 0x24, 0xca, 0x78, 0x30, 0xc1, 0x06, 0x8d, 0xd4, 0x86, 0x42, 0xf0, 0x14, 0xde, 0x08, 0x05}, + subYX: fp.Elt{0x64, 0x4a, 0xdd, 0xdf, 0xb4, 0x79, 0x60, 0xc8, 0xa1, 0x70, 0xb4, 0x3a, 0x1e, 0x0c, 0x9b, 0x19, 0xe5, 0x48, 0x3f, 0xd7, 0x44, 0x18, 0x18, 0x14, 0x14, 0x27, 0x45, 0xd0, 0x2d, 0x24, 0xd5, 0x93, 0xc3, 0x74, 0x4c, 0x50, 0x70, 0x43, 0x26, 0x05, 0x08, 0x24, 0xca, 0x78, 0x30, 0xc1, 0x06, 0x8d, 0xd4, 0x86, 0x42, 0xf0, 0x14, 0xde, 0x08, 0x05}, + dt2: fp.Elt{0x1a, 0x33, 0xea, 0x64, 0x45, 0x1c, 0xdf, 0x17, 0x1d, 0x16, 0x34, 0x28, 0xd6, 0x61, 0x19, 0x67, 0x79, 0xb4, 0x13, 0xcf, 0x3e, 0x7c, 0x0e, 0x72, 0xda, 0xf1, 0x5f, 0xda, 0xe6, 0xcf, 0x42, 0xd3, 0xb6, 0x17, 0xc2, 0x68, 0x13, 0x2d, 0xd9, 0x60, 0x3e, 0xae, 0xf0, 0x5b, 0x96, 0xf0, 0xcd, 0xaf, 0xea, 0xb7, 0x0d, 0x59, 0x16, 0xa7, 0xff, 0x55}, + }, + { + addYX: fp.Elt{0xca, 0xd8, 0x7d, 0x86, 0x1a, 0xef, 0xad, 0x11, 0xe3, 0x27, 0x41, 0x7e, 0x7f, 0x3e, 0xa9, 0xd2, 0xb5, 0x4e, 0x50, 0xe0, 0x77, 0x91, 0xc2, 0x13, 0x52, 0x73, 0x41, 0x09, 0xa6, 0x57, 0x9a, 0xc8, 0xa8, 0x90, 0x9d, 0x26, 0x14, 0xbb, 0xa1, 0x2a, 0xf7, 0x45, 0x43, 0x4e, 0xea, 0x35, 0x62, 0xe1, 0x08, 0x85, 0x46, 0xb8, 0x24, 0x05, 0x2d, 0xab}, + subYX: fp.Elt{0x9b, 0xe6, 0xd3, 0xe5, 0xfe, 0x50, 0x36, 0x3c, 0x3c, 0x6d, 0x74, 0x1d, 0x74, 0xc0, 0xde, 0x5b, 0x45, 0x27, 0xe5, 0x12, 0xee, 0x63, 0x35, 0x6b, 0x13, 0xe2, 0x41, 0x6b, 0x3a, 0x05, 0x2b, 0xb1, 0x89, 0x26, 0xb6, 0xc6, 0xd1, 0x84, 0xff, 0x0e, 0x9b, 0xa3, 0xfb, 0x21, 0x36, 0x6b, 0x01, 0xf7, 0x9f, 0x7c, 0xeb, 0xf5, 0x18, 0x7a, 0x2a, 0x70}, + dt2: fp.Elt{0x09, 0xad, 0x99, 0x1a, 0x38, 0xd3, 0xdf, 0x22, 0x37, 0x32, 0x61, 0x8b, 0xf3, 0x19, 0x48, 0x08, 0xe8, 0x49, 0xb6, 0x4a, 0xa7, 0xed, 0xa4, 0xa2, 0xee, 0x86, 0xd7, 0x31, 0x5e, 0xce, 0x95, 0x76, 0x86, 0x42, 0x1c, 0x9d, 0x07, 0x14, 0x8c, 0x34, 0x18, 0x9c, 0x6d, 0x3a, 0xdf, 0xa9, 0xe8, 0x36, 0x7e, 0xe4, 0x95, 0xbe, 0xb5, 0x09, 0xf8, 0x9c}, + }, + { + addYX: fp.Elt{0x51, 0xdb, 0x49, 0xa8, 0x9f, 0xe3, 0xd7, 0xec, 0x0d, 0x0f, 0x49, 0xe8, 0xb6, 0xc5, 0x0f, 0x5a, 0x1c, 0xce, 0x54, 0x0d, 0xb1, 0x8d, 0x5b, 0xbf, 0xf4, 0xaa, 0x34, 0x77, 0xc4, 0x5d, 0x59, 0xb6, 0xc5, 0x0e, 0x5a, 0xd8, 0x5b, 0x30, 0xc2, 0x1d, 0xec, 0x85, 0x1c, 0x42, 0xbe, 0x24, 0x2e, 0x50, 0x55, 0x44, 0xb2, 0x3a, 0x01, 0xaa, 0x98, 0xfb}, + subYX: fp.Elt{0xe7, 0x29, 0xb7, 0xd0, 0xaa, 0x4f, 0x32, 0x53, 0x56, 0xde, 0xbc, 0xd1, 0x92, 0x5d, 0x19, 0xbe, 0xa3, 0xe3, 0x75, 0x48, 0xe0, 0x7a, 0x1b, 0x54, 0x7a, 0xb7, 0x41, 0x77, 0x84, 0x38, 0xdd, 0x14, 0x9f, 0xca, 0x3f, 0xa3, 0xc8, 0xa7, 0x04, 0x70, 0xf1, 0x4d, 0x3d, 0xb3, 0x84, 0x79, 0xcb, 0xdb, 0xe4, 0xc5, 0x42, 0x9b, 0x57, 0x19, 0xf1, 0x2d}, + dt2: fp.Elt{0x20, 0xb4, 0x94, 0x9e, 0xdf, 0x31, 0x44, 0x0b, 0xc9, 0x7b, 0x75, 0x40, 0x9d, 0xd1, 0x96, 0x39, 0x70, 0x71, 0x15, 0xc8, 0x93, 0xd5, 0xc5, 0xe5, 0xba, 0xfe, 0xee, 0x08, 0x6a, 0x98, 0x0a, 0x1b, 0xb2, 0xaa, 0x3a, 0xf4, 0xa4, 0x79, 0xf9, 0x8e, 0x4d, 0x65, 0x10, 0x9b, 0x3a, 0x6e, 0x7c, 0x87, 0x94, 0x92, 0x11, 0x65, 0xbf, 0x1a, 0x09, 0xde}, + }, + { + addYX: fp.Elt{0xf3, 0x84, 0x76, 0x77, 0xa5, 0x6b, 0x27, 0x3b, 0x83, 0x3d, 0xdf, 0xa0, 0xeb, 0x32, 0x6d, 0x58, 0x81, 0x57, 0x64, 0xc2, 0x21, 0x7c, 0x9b, 0xea, 0xe6, 0xb0, 0x93, 0xf9, 0xe7, 0xc3, 0xed, 0x5a, 0x8e, 0xe2, 0xb4, 0x72, 0x76, 0x66, 0x0f, 0x22, 0x29, 0x94, 0x3e, 0x63, 0x48, 0x5e, 0x80, 0xcb, 0xac, 0xfa, 0x95, 0xb6, 0x4b, 0xc4, 0x95, 0x33}, + subYX: fp.Elt{0x0c, 0x55, 0xd1, 0x5e, 0x5f, 0xbf, 0xbf, 0xe2, 0x4c, 0xfc, 0x37, 0x4a, 0xc4, 0xb1, 0xf4, 0x83, 0x61, 0x93, 0x60, 0x8e, 0x9f, 0x31, 0xf0, 0xa0, 0x41, 0xff, 0x1d, 0xe2, 0x7f, 0xca, 0x40, 0xd6, 0x88, 0xe8, 0x91, 0x61, 0xe2, 0x11, 0x18, 0x83, 0xf3, 0x25, 0x2f, 0x3f, 0x49, 0x40, 0xd4, 0x83, 0xe2, 0xd7, 0x74, 0x6a, 0x16, 0x86, 0x4e, 0xab}, + dt2: fp.Elt{0xdd, 0x58, 0x65, 0xd8, 0x9f, 0xdd, 0x70, 0x7f, 0x0f, 0xec, 0xbd, 0x5c, 0x5c, 0x9b, 0x7e, 0x1b, 0x9f, 0x79, 0x36, 0x1f, 0xfd, 0x79, 0x10, 0x1c, 0x52, 0xf3, 0x22, 0xa4, 0x1f, 0x71, 0x6e, 0x63, 0x14, 0xf4, 0xa7, 0x3e, 0xbe, 0xad, 0x43, 0x30, 0x38, 0x8c, 0x29, 0xc6, 0xcf, 0x50, 0x75, 0x21, 0xe5, 0x78, 0xfd, 0xb0, 0x9a, 0xc4, 0x6d, 0xd4}, + }, + }, + { + { + addYX: fp.Elt{0x7a, 0xa1, 0x38, 0xa6, 0xfd, 0x0e, 0x96, 0xd5, 0x26, 0x76, 0x86, 0x70, 0x80, 0x30, 0xa6, 0x67, 0xeb, 0xf4, 0x39, 0xdb, 0x22, 0xf5, 0x9f, 0x98, 0xe4, 0xb5, 0x3a, 0x0c, 0x59, 0xbf, 0x85, 0xc6, 0xf0, 0x0b, 0x1c, 0x41, 0x38, 0x09, 0x01, 0xdb, 0xd6, 0x3c, 0xb7, 0xf1, 0x08, 0x6b, 0x4b, 0x9e, 0x63, 0x53, 0x83, 0xd3, 0xab, 0xa3, 0x72, 0x0d}, + subYX: fp.Elt{0x84, 0x68, 0x25, 0xe8, 0xe9, 0x8f, 0x91, 0xbf, 0xf7, 0xa4, 0x30, 0xae, 0xea, 0x9f, 0xdd, 0x56, 0x64, 0x09, 0xc9, 0x54, 0x68, 0x4e, 0x33, 0xc5, 0x6f, 0x7b, 0x2d, 0x52, 0x2e, 0x42, 0xbe, 0xbe, 0xf5, 0x64, 0xbf, 0x77, 0x54, 0xdf, 0xb0, 0x10, 0xd2, 0x16, 0x5d, 0xce, 0xaf, 0x9f, 0xfb, 0xa3, 0x63, 0x50, 0xcb, 0xc0, 0xd0, 0x88, 0x44, 0xa3}, + dt2: fp.Elt{0xc3, 0x8b, 0xa5, 0xf1, 0x44, 0xe4, 0x41, 0xcd, 0x75, 0xe3, 0x17, 0x69, 0x5b, 0xb9, 0xbb, 0xee, 0x82, 0xbb, 0xce, 0x57, 0xdf, 0x2a, 0x9c, 0x12, 0xab, 0x66, 0x08, 0x68, 0x05, 0x1b, 0x87, 0xee, 0x5d, 0x1e, 0x18, 0x14, 0x22, 0x4b, 0x99, 0x61, 0x75, 0x28, 0xe7, 0x65, 0x1c, 0x36, 0xb6, 0x18, 0x09, 0xa8, 0xdf, 0xef, 0x30, 0x35, 0xbc, 0x58}, + }, + { + addYX: fp.Elt{0xc5, 0xd3, 0x0e, 0x6f, 0xaf, 0x06, 0x69, 0xc4, 0x07, 0x9e, 0x58, 0x6e, 0x3f, 0x49, 0xd9, 0x0a, 0x3c, 0x2c, 0x37, 0xcd, 0x27, 0x4d, 0x87, 0x91, 0x7a, 0xb0, 0x28, 0xad, 0x2f, 0x68, 0x92, 0x05, 0x97, 0xf1, 0x30, 0x5f, 0x4c, 0x10, 0x20, 0x30, 0xd3, 0x08, 0x3f, 0xc1, 0xc6, 0xb7, 0xb5, 0xd1, 0x71, 0x7b, 0xa8, 0x0a, 0xd8, 0xf5, 0x17, 0xcf}, + subYX: fp.Elt{0x64, 0xd4, 0x8f, 0x91, 0x40, 0xab, 0x6e, 0x1a, 0x62, 0x83, 0xdc, 0xd7, 0x30, 0x1a, 0x4a, 0x2a, 0x4c, 0x54, 0x86, 0x19, 0x81, 0x5d, 0x04, 0x52, 0xa3, 0xca, 0x82, 0x38, 0xdc, 0x1e, 0xf0, 0x7a, 0x78, 0x76, 0x49, 0x4f, 0x71, 0xc4, 0x74, 0x2f, 0xf0, 0x5b, 0x2e, 0x5e, 0xac, 0xef, 0x17, 0xe4, 0x8e, 0x6e, 0xed, 0x43, 0x23, 0x61, 0x99, 0x49}, + dt2: fp.Elt{0x64, 0x90, 0x72, 0x76, 0xf8, 0x2c, 0x7d, 0x57, 0xf9, 0x30, 0x5e, 0x7a, 0x10, 0x74, 0x19, 0x39, 0xd9, 0xaf, 0x0a, 0xf1, 0x43, 0xed, 0x88, 0x9c, 0x8b, 0xdc, 0x9b, 0x1c, 0x90, 0xe7, 0xf7, 0xa3, 0xa5, 0x0d, 0xc6, 0xbc, 0x30, 0xfb, 0x91, 0x1a, 0x51, 0xba, 0x2d, 0xbe, 0x89, 0xdf, 0x1d, 0xdc, 0x53, 0xa8, 0x82, 0x8a, 0xd3, 0x8d, 0x16, 0x68}, + }, + { + addYX: fp.Elt{0xef, 0x5c, 0xe3, 0x74, 0xbf, 0x13, 0x4a, 0xbf, 0x66, 0x73, 0x64, 0xb7, 0xd4, 0xce, 0x98, 0x82, 0x05, 0xfa, 0x98, 0x0c, 0x0a, 0xae, 0xe5, 0x6b, 0x9f, 0xac, 0xbb, 0x6e, 0x1f, 0xcf, 0xff, 0xa6, 0x71, 0x9a, 0xa8, 0x7a, 0x9e, 0x64, 0x1f, 0x20, 0x4a, 0x61, 0xa2, 0xd6, 0x50, 0xe3, 0xba, 0x81, 0x0c, 0x50, 0x59, 0x69, 0x59, 0x15, 0x55, 0xdb}, + subYX: fp.Elt{0xe8, 0x77, 0x4d, 0xe8, 0x66, 0x3d, 0xc1, 0x00, 0x3c, 0xf2, 0x25, 0x00, 0xdc, 0xb2, 0xe5, 0x9b, 0x12, 0x89, 0xf3, 0xd6, 0xea, 0x85, 0x60, 0xfe, 0x67, 0x91, 0xfd, 0x04, 0x7c, 0xe0, 0xf1, 0x86, 0x06, 0x11, 0x66, 0xee, 0xd4, 0xd5, 0xbe, 0x3b, 0x0f, 0xe3, 0x59, 0xb3, 0x4f, 0x00, 0xb6, 0xce, 0x80, 0xc1, 0x61, 0xf7, 0xaf, 0x04, 0x6a, 0x3c}, + dt2: fp.Elt{0x00, 0xd7, 0x32, 0x93, 0x67, 0x70, 0x6f, 0xd7, 0x69, 0xab, 0xb1, 0xd3, 0xdc, 0xd6, 0xa8, 0xdd, 0x35, 0x25, 0xca, 0xd3, 0x8a, 0x6d, 0xce, 0xfb, 0xfd, 0x2b, 0x83, 0xf0, 0xd4, 0xac, 0x66, 0xfb, 0x72, 0x87, 0x7e, 0x55, 0xb7, 0x91, 0x58, 0x10, 0xc3, 0x11, 0x7e, 0x15, 0xfe, 0x7c, 0x55, 0x90, 0xa3, 0x9e, 0xed, 0x9a, 0x7f, 0xa7, 0xb7, 0xeb}, + }, + { + addYX: fp.Elt{0x25, 0x0f, 0xc2, 0x09, 0x9c, 0x10, 0xc8, 0x7c, 0x93, 0xa7, 0xbe, 0xe9, 0x26, 0x25, 0x7c, 0x21, 0xfe, 0xe7, 0x5f, 0x3c, 0x02, 0x83, 0xa7, 0x9e, 0xdf, 0xc0, 0x94, 0x2b, 0x7d, 0x1a, 0xd0, 0x1d, 0xcc, 0x2e, 0x7d, 0xd4, 0x85, 0xe7, 0xc1, 0x15, 0x66, 0xd6, 0xd6, 0x32, 0xb8, 0xf7, 0x63, 0xaa, 0x3b, 0xa5, 0xea, 0x49, 0xad, 0x88, 0x9b, 0x66}, + subYX: fp.Elt{0x09, 0x97, 0x79, 0x36, 0x41, 0x56, 0x9b, 0xdf, 0x15, 0xd8, 0x43, 0x28, 0x17, 0x5b, 0x96, 0xc9, 0xcf, 0x39, 0x1f, 0x13, 0xf7, 0x4d, 0x1d, 0x1f, 0xda, 0x51, 0x56, 0xe7, 0x0a, 0x5a, 0x65, 0xb6, 0x2a, 0x87, 0x49, 0x86, 0xc2, 0x2b, 0xcd, 0xfe, 0x07, 0xf6, 0x4c, 0xe2, 0x1d, 0x9b, 0xd8, 0x82, 0x09, 0x5b, 0x11, 0x10, 0x62, 0x56, 0x89, 0xbd}, + dt2: fp.Elt{0xd9, 0x15, 0x73, 0xf2, 0x96, 0x35, 0x53, 0xb0, 0xe7, 0xa8, 0x0b, 0x93, 0x35, 0x0b, 0x3a, 0x00, 0xf5, 0x18, 0xb1, 0xc3, 0x12, 0x3f, 0x91, 0x17, 0xc1, 0x4c, 0x15, 0x5a, 0x86, 0x92, 0x11, 0xbd, 0x44, 0x40, 0x5a, 0x7b, 0x15, 0x89, 0xba, 0xc1, 0xc1, 0xbc, 0x43, 0x45, 0xe6, 0x52, 0x02, 0x73, 0x0a, 0xd0, 0x2a, 0x19, 0xda, 0x47, 0xa8, 0xff}, + }, + }, +} + +// tabVerif contains the odd multiples of P. The entry T[i] = (2i+1)P, where +// P = phi(G) and G is the generator of the Goldilocks curve, and phi is a +// 4-degree isogeny. +var tabVerif = [1 << (omegaFix - 2)]preTwistPointAffine{ + { /* 1P*/ + addYX: fp.Elt{0x65, 0x4a, 0xdd, 0xdf, 0xb4, 0x79, 0x60, 0xc8, 0xa1, 0x70, 0xb4, 0x3a, 0x1e, 0x0c, 0x9b, 0x19, 0xe5, 0x48, 0x3f, 0xd7, 0x44, 0x18, 0x18, 0x14, 0x14, 0x27, 0x45, 0xd0, 0x2b, 0x24, 0xd5, 0x93, 0xc3, 0x74, 0x4c, 0x50, 0x70, 0x43, 0x26, 0x05, 0x08, 0x24, 0xca, 0x78, 0x30, 0xc1, 0x06, 0x8d, 0xd4, 0x86, 0x42, 0xf0, 0x14, 0xde, 0x08, 0x05}, + subYX: fp.Elt{0x64, 0x4a, 0xdd, 0xdf, 0xb4, 0x79, 0x60, 0xc8, 0xa1, 0x70, 0xb4, 0x3a, 0x1e, 0x0c, 0x9b, 0x19, 0xe5, 0x48, 0x3f, 0xd7, 0x44, 0x18, 0x18, 0x14, 0x14, 0x27, 0x45, 0xd0, 0x2d, 0x24, 0xd5, 0x93, 0xc3, 0x74, 0x4c, 0x50, 0x70, 0x43, 0x26, 0x05, 0x08, 0x24, 0xca, 0x78, 0x30, 0xc1, 0x06, 0x8d, 0xd4, 0x86, 0x42, 0xf0, 0x14, 0xde, 0x08, 0x05}, + dt2: fp.Elt{0x1a, 0x33, 0xea, 0x64, 0x45, 0x1c, 0xdf, 0x17, 0x1d, 0x16, 0x34, 0x28, 0xd6, 0x61, 0x19, 0x67, 0x79, 0xb4, 0x13, 0xcf, 0x3e, 0x7c, 0x0e, 0x72, 0xda, 0xf1, 0x5f, 0xda, 0xe6, 0xcf, 0x42, 0xd3, 0xb6, 0x17, 0xc2, 0x68, 0x13, 0x2d, 0xd9, 0x60, 0x3e, 0xae, 0xf0, 0x5b, 0x96, 0xf0, 0xcd, 0xaf, 0xea, 0xb7, 0x0d, 0x59, 0x16, 0xa7, 0xff, 0x55}, + }, + { /* 3P*/ + addYX: fp.Elt{0xd1, 0xe9, 0xa8, 0x33, 0x20, 0x76, 0x18, 0x08, 0x45, 0x2a, 0xc9, 0x67, 0x2a, 0xc3, 0x15, 0x24, 0xf9, 0x74, 0x21, 0x30, 0x99, 0x59, 0x8b, 0xb2, 0xf0, 0xa4, 0x07, 0xe2, 0x6a, 0x36, 0x8d, 0xd9, 0xd2, 0x4a, 0x7f, 0x73, 0x50, 0x39, 0x3d, 0xaa, 0xa7, 0x51, 0x73, 0x0d, 0x2b, 0x8b, 0x96, 0x47, 0xac, 0x3c, 0x5d, 0xaa, 0x39, 0x9c, 0xcf, 0xd5}, + subYX: fp.Elt{0x6b, 0x11, 0x5d, 0x1a, 0xf9, 0x41, 0x9d, 0xc5, 0x30, 0x3e, 0xad, 0x25, 0x2c, 0x04, 0x45, 0xea, 0xcc, 0x67, 0x07, 0x85, 0xe9, 0xda, 0x0e, 0xb5, 0x40, 0xb7, 0x32, 0xb4, 0x49, 0xdd, 0xff, 0xaa, 0xfc, 0xbb, 0x19, 0xca, 0x8b, 0x79, 0x2b, 0x8f, 0x8d, 0x00, 0x33, 0xc2, 0xad, 0xe9, 0xd3, 0x12, 0xa8, 0xaa, 0x87, 0x62, 0xad, 0x2d, 0xff, 0xa4}, + dt2: fp.Elt{0xb0, 0xaf, 0x3b, 0xea, 0xf0, 0x42, 0x0b, 0x5e, 0x88, 0xd3, 0x98, 0x08, 0x87, 0x59, 0x72, 0x0a, 0xc2, 0xdf, 0xcb, 0x7f, 0x59, 0xb5, 0x4c, 0x63, 0x68, 0xe8, 0x41, 0x38, 0x67, 0x4f, 0xe9, 0xc6, 0xb2, 0x6b, 0x08, 0xa7, 0xf7, 0x0e, 0xcd, 0xea, 0xca, 0x3d, 0xaf, 0x8e, 0xda, 0x4b, 0x2e, 0xd2, 0x88, 0x64, 0x8d, 0xc5, 0x5f, 0x76, 0x0f, 0x3d}, + }, + { /* 5P*/ + addYX: fp.Elt{0xe5, 0x65, 0xc9, 0xe2, 0x75, 0xf0, 0x7d, 0x1a, 0xba, 0xa4, 0x40, 0x4b, 0x93, 0x12, 0xa2, 0x80, 0x95, 0x0d, 0x03, 0x93, 0xe8, 0xa5, 0x4d, 0xe2, 0x3d, 0x81, 0xf5, 0xce, 0xd4, 0x2d, 0x25, 0x59, 0x16, 0x5c, 0xe7, 0xda, 0xc7, 0x45, 0xd2, 0x7e, 0x2c, 0x38, 0xd4, 0x37, 0x64, 0xb2, 0xc2, 0x28, 0xc5, 0x72, 0x16, 0x32, 0x45, 0x36, 0x6f, 0x9f}, + subYX: fp.Elt{0x09, 0xf4, 0x7e, 0xbd, 0x89, 0xdb, 0x19, 0x58, 0xe1, 0x08, 0x00, 0x8a, 0xf4, 0x5f, 0x2a, 0x32, 0x40, 0xf0, 0x2c, 0x3f, 0x5d, 0xe4, 0xfc, 0x89, 0x11, 0x24, 0xb4, 0x2f, 0x97, 0xad, 0xac, 0x8f, 0x19, 0xab, 0xfa, 0x12, 0xe5, 0xf9, 0x50, 0x4e, 0x50, 0x6f, 0x32, 0x30, 0x88, 0xa6, 0xe5, 0x48, 0x28, 0xa2, 0x1b, 0x9f, 0xcd, 0xe2, 0x43, 0x38}, + dt2: fp.Elt{0xa9, 0xcc, 0x53, 0x39, 0x86, 0x02, 0x60, 0x75, 0x34, 0x99, 0x57, 0xbd, 0xfc, 0x5a, 0x8e, 0xce, 0x5e, 0x98, 0x22, 0xd0, 0xa5, 0x24, 0xff, 0x90, 0x28, 0x9f, 0x58, 0xf3, 0x39, 0xe9, 0xba, 0x36, 0x23, 0xfb, 0x7f, 0x41, 0xcc, 0x2b, 0x5a, 0x25, 0x3f, 0x4c, 0x2a, 0xf1, 0x52, 0x6f, 0x2f, 0x07, 0xe3, 0x88, 0x81, 0x77, 0xdd, 0x7c, 0x88, 0x82}, + }, + { /* 7P*/ + addYX: fp.Elt{0xf7, 0xee, 0x88, 0xfd, 0x3a, 0xbf, 0x7e, 0x28, 0x39, 0x23, 0x79, 0xe6, 0x5c, 0x56, 0xcb, 0xb5, 0x48, 0x6a, 0x80, 0x6d, 0x37, 0x60, 0x6c, 0x10, 0x35, 0x49, 0x4b, 0x46, 0x60, 0xd4, 0x79, 0xd4, 0x53, 0xd3, 0x67, 0x88, 0xd0, 0x41, 0xd5, 0x43, 0x85, 0xc8, 0x71, 0xe3, 0x1c, 0xb6, 0xda, 0x22, 0x64, 0x8f, 0x80, 0xac, 0xad, 0x7d, 0xd5, 0x82}, + subYX: fp.Elt{0x92, 0x40, 0xc1, 0x83, 0x21, 0x9b, 0xd5, 0x7d, 0x3f, 0x29, 0xb6, 0x26, 0xef, 0x12, 0xb9, 0x27, 0x39, 0x42, 0x37, 0x97, 0x09, 0x9a, 0x08, 0xe1, 0x68, 0xb6, 0x7a, 0x3f, 0x9f, 0x45, 0xf8, 0x37, 0x19, 0x83, 0x97, 0xe6, 0x73, 0x30, 0x32, 0x35, 0xcf, 0xae, 0x5c, 0x12, 0x68, 0xdf, 0x6e, 0x2b, 0xde, 0x83, 0xa0, 0x44, 0x74, 0x2e, 0x4a, 0xe9}, + dt2: fp.Elt{0xcb, 0x22, 0x0a, 0xda, 0x6b, 0xc1, 0x8a, 0x29, 0xa1, 0xac, 0x8b, 0x5b, 0x8b, 0x32, 0x20, 0xf2, 0x21, 0xae, 0x0c, 0x43, 0xc4, 0xd7, 0x19, 0x37, 0x3d, 0x79, 0x25, 0x98, 0x6c, 0x9c, 0x22, 0x31, 0x2a, 0x55, 0x9f, 0xda, 0x5e, 0xa8, 0x13, 0xdb, 0x8e, 0x2e, 0x16, 0x39, 0xf4, 0x91, 0x6f, 0xec, 0x71, 0x71, 0xc9, 0x10, 0xf2, 0xa4, 0x8f, 0x11}, + }, + { /* 9P*/ + addYX: fp.Elt{0x85, 0xdd, 0x37, 0x62, 0x74, 0x8e, 0x33, 0x5b, 0x25, 0x12, 0x1b, 0xe7, 0xdf, 0x47, 0xe5, 0x12, 0xfd, 0x3a, 0x3a, 0xf5, 0x5d, 0x4c, 0xa2, 0x29, 0x3c, 0x5c, 0x2f, 0xee, 0x18, 0x19, 0x0a, 0x2b, 0xef, 0x67, 0x50, 0x7a, 0x0d, 0x29, 0xae, 0x55, 0x82, 0xcd, 0xd6, 0x41, 0x90, 0xb4, 0x13, 0x31, 0x5d, 0x11, 0xb8, 0xaa, 0x12, 0x86, 0x08, 0xac}, + subYX: fp.Elt{0xcc, 0x37, 0x8d, 0x83, 0x5f, 0xfd, 0xde, 0xd5, 0xf7, 0xf1, 0xae, 0x0a, 0xa7, 0x0b, 0xeb, 0x6d, 0x19, 0x8a, 0xb6, 0x1a, 0x59, 0xd8, 0xff, 0x3c, 0xbc, 0xbc, 0xef, 0x9c, 0xda, 0x7b, 0x75, 0x12, 0xaf, 0x80, 0x8f, 0x2c, 0x3c, 0xaa, 0x0b, 0x17, 0x86, 0x36, 0x78, 0x18, 0xc8, 0x8a, 0xf6, 0xb8, 0x2c, 0x2f, 0x57, 0x2c, 0x62, 0x57, 0xf6, 0x90}, + dt2: fp.Elt{0x83, 0xbc, 0xa2, 0x07, 0xa5, 0x38, 0x96, 0xea, 0xfe, 0x11, 0x46, 0x1d, 0x3b, 0xcd, 0x42, 0xc5, 0xee, 0x67, 0x04, 0x72, 0x08, 0xd8, 0xd9, 0x96, 0x07, 0xf7, 0xac, 0xc3, 0x64, 0xf1, 0x98, 0x2c, 0x55, 0xd7, 0x7d, 0xc8, 0x6c, 0xbd, 0x2c, 0xff, 0x15, 0xd6, 0x6e, 0xb8, 0x17, 0x8e, 0xa8, 0x27, 0x66, 0xb1, 0x73, 0x79, 0x96, 0xff, 0x29, 0x10}, + }, + { /* 11P*/ + addYX: fp.Elt{0x76, 0xcb, 0x9b, 0x0c, 0x5b, 0xfe, 0xe1, 0x2a, 0xdd, 0x6f, 0x6c, 0xdd, 0x6f, 0xb4, 0xc0, 0xc2, 0x1b, 0x4b, 0x38, 0xe8, 0x66, 0x8c, 0x1e, 0x31, 0x63, 0xb9, 0x94, 0xcd, 0xc3, 0x8c, 0x44, 0x25, 0x7b, 0xd5, 0x39, 0x80, 0xfc, 0x01, 0xaa, 0xf7, 0x2a, 0x61, 0x8a, 0x25, 0xd2, 0x5f, 0xc5, 0x66, 0x38, 0xa4, 0x17, 0xcf, 0x3e, 0x11, 0x0f, 0xa3}, + subYX: fp.Elt{0xe0, 0xb6, 0xd1, 0x9c, 0x71, 0x49, 0x2e, 0x7b, 0xde, 0x00, 0xda, 0x6b, 0xf1, 0xec, 0xe6, 0x7a, 0x15, 0x38, 0x71, 0xe9, 0x7b, 0xdb, 0xf8, 0x98, 0xc0, 0x91, 0x2e, 0x53, 0xee, 0x92, 0x87, 0x25, 0xc9, 0xb0, 0xbb, 0x33, 0x15, 0x46, 0x7f, 0xfd, 0x4f, 0x8b, 0x77, 0x05, 0x96, 0xb6, 0xe2, 0x08, 0xdb, 0x0d, 0x09, 0xee, 0x5b, 0xd1, 0x2a, 0x63}, + dt2: fp.Elt{0x8f, 0x7b, 0x57, 0x8c, 0xbf, 0x06, 0x0d, 0x43, 0x21, 0x92, 0x94, 0x2d, 0x6a, 0x38, 0x07, 0x0f, 0xa0, 0xf1, 0xe3, 0xd8, 0x2a, 0xbf, 0x46, 0xc6, 0x9e, 0x1f, 0x8f, 0x2b, 0x46, 0x84, 0x0b, 0x74, 0xed, 0xff, 0xf8, 0xa5, 0x94, 0xae, 0xf1, 0x67, 0xb1, 0x9b, 0xdd, 0x4a, 0xd0, 0xdb, 0xc2, 0xb5, 0x58, 0x49, 0x0c, 0xa9, 0x1d, 0x7d, 0xa9, 0xd3}, + }, + { /* 13P*/ + addYX: fp.Elt{0x73, 0x84, 0x2e, 0x31, 0x1f, 0xdc, 0xed, 0x9f, 0x74, 0xfa, 0xe0, 0x35, 0xb1, 0x85, 0x6a, 0x8d, 0x86, 0xd0, 0xff, 0xd6, 0x08, 0x43, 0x73, 0x1a, 0xd5, 0xf8, 0x43, 0xd4, 0xb3, 0xe5, 0x3f, 0xa8, 0x84, 0x17, 0x59, 0x65, 0x4e, 0xe6, 0xee, 0x54, 0x9c, 0xda, 0x5e, 0x7e, 0x98, 0x29, 0x6d, 0x73, 0x34, 0x1f, 0x99, 0x80, 0x54, 0x54, 0x81, 0x0b}, + subYX: fp.Elt{0xb1, 0xe5, 0xbb, 0x80, 0x22, 0x9c, 0x81, 0x6d, 0xaf, 0x27, 0x65, 0x6f, 0x7e, 0x9c, 0xb6, 0x8d, 0x35, 0x5c, 0x2e, 0x20, 0x48, 0x7a, 0x28, 0xf0, 0x97, 0xfe, 0xb7, 0x71, 0xce, 0xd6, 0xad, 0x3a, 0x81, 0xf6, 0x74, 0x5e, 0xf3, 0xfd, 0x1b, 0xd4, 0x1e, 0x7c, 0xc2, 0xb7, 0xc8, 0xa6, 0xc9, 0x89, 0x03, 0x47, 0xec, 0x24, 0xd6, 0x0e, 0xec, 0x9c}, + dt2: fp.Elt{0x91, 0x0a, 0x43, 0x34, 0x20, 0xc2, 0x64, 0xf7, 0x4e, 0x48, 0xc8, 0xd2, 0x95, 0x83, 0xd1, 0xa4, 0xfb, 0x4e, 0x41, 0x3b, 0x0d, 0xd5, 0x07, 0xd9, 0xf1, 0x13, 0x16, 0x78, 0x54, 0x57, 0xd0, 0xf1, 0x4f, 0x20, 0xac, 0xcf, 0x9c, 0x3b, 0x33, 0x0b, 0x99, 0x54, 0xc3, 0x7f, 0x3e, 0x57, 0x26, 0x86, 0xd5, 0xa5, 0x2b, 0x8d, 0xe3, 0x19, 0x36, 0xf7}, + }, + { /* 15P*/ + addYX: fp.Elt{0x23, 0x69, 0x47, 0x14, 0xf9, 0x9a, 0x50, 0xff, 0x64, 0xd1, 0x50, 0x35, 0xc3, 0x11, 0xd3, 0x19, 0xcf, 0x87, 0xda, 0x30, 0x0b, 0x50, 0xda, 0xc0, 0xe0, 0x25, 0x00, 0xe5, 0x68, 0x93, 0x04, 0xc2, 0xaf, 0xbd, 0x2f, 0x36, 0x5f, 0x47, 0x96, 0x10, 0xa8, 0xbd, 0xe4, 0x88, 0xac, 0x80, 0x52, 0x61, 0x73, 0xe9, 0x63, 0xdd, 0x99, 0xad, 0x20, 0x5b}, + subYX: fp.Elt{0x1b, 0x5e, 0xa2, 0x2a, 0x25, 0x0f, 0x86, 0xc0, 0xb1, 0x2e, 0x0c, 0x13, 0x40, 0x8d, 0xf0, 0xe6, 0x00, 0x55, 0x08, 0xc5, 0x7d, 0xf4, 0xc9, 0x31, 0x25, 0x3a, 0x99, 0x69, 0xdd, 0x67, 0x63, 0x9a, 0xd6, 0x89, 0x2e, 0xa1, 0x19, 0xca, 0x2c, 0xd9, 0x59, 0x5f, 0x5d, 0xc3, 0x6e, 0x62, 0x36, 0x12, 0x59, 0x15, 0xe1, 0xdc, 0xa4, 0xad, 0xc9, 0xd0}, + dt2: fp.Elt{0xbc, 0xea, 0xfc, 0xaf, 0x66, 0x23, 0xb7, 0x39, 0x6b, 0x2a, 0x96, 0xa8, 0x54, 0x43, 0xe9, 0xaa, 0x32, 0x40, 0x63, 0x92, 0x5e, 0xdf, 0x35, 0xc2, 0x9f, 0x24, 0x0c, 0xed, 0xfc, 0xde, 0x73, 0x8f, 0xa7, 0xd5, 0xa3, 0x2b, 0x18, 0x1f, 0xb0, 0xf8, 0xeb, 0x55, 0xd9, 0xc3, 0xfd, 0x28, 0x7c, 0x4f, 0xce, 0x0d, 0xf7, 0xae, 0xc2, 0x83, 0xc3, 0x78}, + }, + { /* 17P*/ + addYX: fp.Elt{0x71, 0xe6, 0x60, 0x93, 0x37, 0xdb, 0x01, 0xa5, 0x4c, 0xba, 0xe8, 0x8e, 0xd5, 0xf9, 0xd3, 0x98, 0xe5, 0xeb, 0xab, 0x3a, 0x15, 0x8b, 0x35, 0x60, 0xbe, 0xe5, 0x9c, 0x2d, 0x10, 0x9b, 0x2e, 0xcf, 0x65, 0x64, 0xea, 0x8f, 0x72, 0xce, 0xf5, 0x18, 0xe5, 0xe2, 0xf0, 0x0e, 0xae, 0x04, 0xec, 0xa0, 0x20, 0x65, 0x63, 0x07, 0xb1, 0x9f, 0x03, 0x97}, + subYX: fp.Elt{0x9e, 0x41, 0x64, 0x30, 0x95, 0x7f, 0x3a, 0x89, 0x7b, 0x0a, 0x79, 0x59, 0x23, 0x9a, 0x3b, 0xfe, 0xa4, 0x13, 0x08, 0xb2, 0x2e, 0x04, 0x50, 0x10, 0x30, 0xcd, 0x2e, 0xa4, 0x91, 0x71, 0x50, 0x36, 0x4a, 0x02, 0xf4, 0x8d, 0xa3, 0x36, 0x1b, 0xf4, 0x52, 0xba, 0x15, 0x04, 0x8b, 0x80, 0x25, 0xd9, 0xae, 0x67, 0x20, 0xd9, 0x88, 0x8f, 0x97, 0xa6}, + dt2: fp.Elt{0xb5, 0xe7, 0x46, 0xbd, 0x55, 0x23, 0xa0, 0x68, 0xc0, 0x12, 0xd9, 0xf1, 0x0a, 0x75, 0xe2, 0xda, 0xf4, 0x6b, 0xca, 0x14, 0xe4, 0x9f, 0x0f, 0xb5, 0x3c, 0xa6, 0xa5, 0xa2, 0x63, 0x94, 0xd1, 0x1c, 0x39, 0x58, 0x57, 0x02, 0x27, 0x98, 0xb6, 0x47, 0xc6, 0x61, 0x4b, 0x5c, 0xab, 0x6f, 0x2d, 0xab, 0xe3, 0xc1, 0x69, 0xf9, 0x12, 0xb0, 0xc8, 0xd5}, + }, + { /* 19P*/ + addYX: fp.Elt{0x19, 0x7d, 0xd5, 0xac, 0x79, 0xa2, 0x82, 0x9b, 0x28, 0x31, 0x22, 0xc0, 0x73, 0x02, 0x76, 0x17, 0x10, 0x70, 0x79, 0x57, 0xc9, 0x84, 0x62, 0x8e, 0x04, 0x04, 0x61, 0x67, 0x08, 0x48, 0xb4, 0x4b, 0xde, 0x53, 0x8c, 0xff, 0x36, 0x1b, 0x62, 0x86, 0x5d, 0xe1, 0x9b, 0xb1, 0xe5, 0xe8, 0x44, 0x64, 0xa1, 0x68, 0x3f, 0xa8, 0x45, 0x52, 0x91, 0xed}, + subYX: fp.Elt{0x42, 0x1a, 0x36, 0x1f, 0x90, 0x15, 0x24, 0x8d, 0x24, 0x80, 0xe6, 0xfe, 0x1e, 0xf0, 0xad, 0xaf, 0x6a, 0x93, 0xf0, 0xa6, 0x0d, 0x5d, 0xea, 0xf6, 0x62, 0x96, 0x7a, 0x05, 0x76, 0x85, 0x74, 0x32, 0xc7, 0xc8, 0x64, 0x53, 0x62, 0xe7, 0x54, 0x84, 0xe0, 0x40, 0x66, 0x19, 0x70, 0x40, 0x95, 0x35, 0x68, 0x64, 0x43, 0xcd, 0xba, 0x29, 0x32, 0xa8}, + dt2: fp.Elt{0x3e, 0xf6, 0xd6, 0xe4, 0x99, 0xeb, 0x20, 0x66, 0x08, 0x2e, 0x26, 0x64, 0xd7, 0x76, 0xf3, 0xb4, 0xc5, 0xa4, 0x35, 0x92, 0xd2, 0x99, 0x70, 0x5a, 0x1a, 0xe9, 0xe9, 0x3d, 0x3b, 0xe1, 0xcd, 0x0e, 0xee, 0x24, 0x13, 0x03, 0x22, 0xd6, 0xd6, 0x72, 0x08, 0x2b, 0xde, 0xfd, 0x93, 0xed, 0x0c, 0x7f, 0x5e, 0x31, 0x22, 0x4d, 0x80, 0x78, 0xc0, 0x48}, + }, + { /* 21P*/ + addYX: fp.Elt{0x8f, 0x72, 0xd2, 0x9e, 0xc4, 0xcd, 0x2c, 0xbf, 0xa8, 0xd3, 0x24, 0x62, 0x28, 0xee, 0x39, 0x0a, 0x19, 0x3a, 0x58, 0xff, 0x21, 0x2e, 0x69, 0x6c, 0x6e, 0x18, 0xd0, 0xcd, 0x61, 0xc1, 0x18, 0x02, 0x5a, 0xe9, 0xe3, 0xef, 0x1f, 0x8e, 0x10, 0xe8, 0x90, 0x2b, 0x48, 0xcd, 0xee, 0x38, 0xbd, 0x3a, 0xca, 0xbc, 0x2d, 0xe2, 0x3a, 0x03, 0x71, 0x02}, + subYX: fp.Elt{0xf8, 0xa4, 0x32, 0x26, 0x66, 0xaf, 0x3b, 0x53, 0xe7, 0xb0, 0x91, 0x92, 0xf5, 0x3c, 0x74, 0xce, 0xf2, 0xdd, 0x68, 0xa9, 0xf4, 0xcd, 0x5f, 0x60, 0xab, 0x71, 0xdf, 0xcd, 0x5c, 0x5d, 0x51, 0x72, 0x3a, 0x96, 0xea, 0xd6, 0xde, 0x54, 0x8e, 0x55, 0x4c, 0x08, 0x4c, 0x60, 0xdd, 0x34, 0xa9, 0x6f, 0xf3, 0x04, 0x02, 0xa8, 0xa6, 0x4e, 0x4d, 0x62}, + dt2: fp.Elt{0x76, 0x4a, 0xae, 0x38, 0x62, 0x69, 0x72, 0xdc, 0xe8, 0x43, 0xbe, 0x1d, 0x61, 0xde, 0x31, 0xc3, 0x42, 0x8f, 0x33, 0x9d, 0xca, 0xc7, 0x9c, 0xec, 0x6a, 0xe2, 0xaa, 0x01, 0x49, 0x78, 0x8d, 0x72, 0x4f, 0x38, 0xea, 0x52, 0xc2, 0xd3, 0xc9, 0x39, 0x71, 0xba, 0xb9, 0x09, 0x9b, 0xa3, 0x7f, 0x45, 0x43, 0x65, 0x36, 0x29, 0xca, 0xe7, 0x5c, 0x5f}, + }, + { /* 23P*/ + addYX: fp.Elt{0x89, 0x42, 0x35, 0x48, 0x6d, 0x74, 0xe5, 0x1f, 0xc3, 0xdd, 0x28, 0x5b, 0x84, 0x41, 0x33, 0x9f, 0x42, 0xf3, 0x1d, 0x5d, 0x15, 0x6d, 0x76, 0x33, 0x36, 0xaf, 0xe9, 0xdd, 0xfa, 0x63, 0x4f, 0x7a, 0x9c, 0xeb, 0x1c, 0x4f, 0x34, 0x65, 0x07, 0x54, 0xbb, 0x4c, 0x8b, 0x62, 0x9d, 0xd0, 0x06, 0x99, 0xb3, 0xe9, 0xda, 0x85, 0x19, 0xb0, 0x3d, 0x3c}, + subYX: fp.Elt{0xbb, 0x99, 0xf6, 0xbf, 0xaf, 0x2c, 0x22, 0x0d, 0x7a, 0xaa, 0x98, 0x6f, 0x01, 0x82, 0x99, 0xcf, 0x88, 0xbd, 0x0e, 0x3a, 0x89, 0xe0, 0x9c, 0x8c, 0x17, 0x20, 0xc4, 0xe0, 0xcf, 0x43, 0x7a, 0xef, 0x0d, 0x9f, 0x87, 0xd4, 0xfb, 0xf2, 0x96, 0xb8, 0x03, 0xe8, 0xcb, 0x5c, 0xec, 0x65, 0x5f, 0x49, 0xa4, 0x7c, 0x85, 0xb4, 0xf6, 0xc7, 0xdb, 0xa3}, + dt2: fp.Elt{0x11, 0xf3, 0x32, 0xa3, 0xa7, 0xb2, 0x7d, 0x51, 0x82, 0x44, 0xeb, 0xa2, 0x7d, 0x72, 0xcb, 0xc6, 0xf6, 0xc7, 0xb2, 0x38, 0x0e, 0x0f, 0x4f, 0x29, 0x00, 0xe4, 0x5b, 0x94, 0x46, 0x86, 0x66, 0xa1, 0x83, 0xb3, 0xeb, 0x15, 0xb6, 0x31, 0x50, 0x28, 0xeb, 0xed, 0x0d, 0x32, 0x39, 0xe9, 0x23, 0x81, 0x99, 0x3e, 0xff, 0x17, 0x4c, 0x11, 0x43, 0xd1}, + }, + { /* 25P*/ + addYX: fp.Elt{0xce, 0xe7, 0xf8, 0x94, 0x8f, 0x96, 0xf8, 0x96, 0xe6, 0x72, 0x20, 0x44, 0x2c, 0xa7, 0xfc, 0xba, 0xc8, 0xe1, 0xbb, 0xc9, 0x16, 0x85, 0xcd, 0x0b, 0xe5, 0xb5, 0x5a, 0x7f, 0x51, 0x43, 0x63, 0x8b, 0x23, 0x8e, 0x1d, 0x31, 0xff, 0x46, 0x02, 0x66, 0xcc, 0x9e, 0x4d, 0xa2, 0xca, 0xe2, 0xc7, 0xfd, 0x22, 0xb1, 0xdb, 0xdf, 0x6f, 0xe6, 0xa5, 0x82}, + subYX: fp.Elt{0xd0, 0xf5, 0x65, 0x40, 0xec, 0x8e, 0x65, 0x42, 0x78, 0xc1, 0x65, 0xe4, 0x10, 0xc8, 0x0b, 0x1b, 0xdd, 0x96, 0x68, 0xce, 0xee, 0x45, 0x55, 0xd8, 0x6e, 0xd3, 0xe6, 0x77, 0x19, 0xae, 0xc2, 0x8d, 0x8d, 0x3e, 0x14, 0x3f, 0x6d, 0x00, 0x2f, 0x9b, 0xd1, 0x26, 0x60, 0x28, 0x0f, 0x3a, 0x47, 0xb3, 0xe6, 0x68, 0x28, 0x24, 0x25, 0xca, 0xc8, 0x06}, + dt2: fp.Elt{0x54, 0xbb, 0x60, 0x92, 0xdb, 0x8f, 0x0f, 0x38, 0xe0, 0xe6, 0xe4, 0xc9, 0xcc, 0x14, 0x62, 0x01, 0xc4, 0x2b, 0x0f, 0xcf, 0xed, 0x7d, 0x8e, 0xa4, 0xd9, 0x73, 0x0b, 0xba, 0x0c, 0xaf, 0x0c, 0xf9, 0xe2, 0xeb, 0x29, 0x2a, 0x53, 0xdf, 0x2c, 0x5a, 0xfa, 0x8f, 0xc1, 0x01, 0xd7, 0xb1, 0x45, 0x73, 0x92, 0x32, 0x83, 0x85, 0x12, 0x74, 0x89, 0x44}, + }, + { /* 27P*/ + addYX: fp.Elt{0x0b, 0x73, 0x3c, 0xc2, 0xb1, 0x2e, 0xe1, 0xa7, 0xf5, 0xc9, 0x7a, 0xfb, 0x3d, 0x2d, 0xac, 0x59, 0xdb, 0xfa, 0x36, 0x11, 0xd1, 0x13, 0x04, 0x51, 0x1d, 0xab, 0x9b, 0x6b, 0x93, 0xfe, 0xda, 0xb0, 0x8e, 0xb4, 0x79, 0x11, 0x21, 0x0f, 0x65, 0xb9, 0xbb, 0x79, 0x96, 0x2a, 0xfd, 0x30, 0xe0, 0xb4, 0x2d, 0x9a, 0x55, 0x25, 0x5d, 0xd4, 0xad, 0x2a}, + subYX: fp.Elt{0x9e, 0xc5, 0x04, 0xfe, 0xec, 0x3c, 0x64, 0x1c, 0xed, 0x95, 0xed, 0xae, 0xaf, 0x5c, 0x6e, 0x08, 0x9e, 0x02, 0x29, 0x59, 0x7e, 0x5f, 0xc4, 0x9a, 0xd5, 0x32, 0x72, 0x86, 0xe1, 0x4e, 0x3c, 0xce, 0x99, 0x69, 0x3b, 0xc4, 0xdd, 0x4d, 0xb7, 0xbb, 0xda, 0x3b, 0x1a, 0x99, 0xaa, 0x62, 0x15, 0xc1, 0xf0, 0xb6, 0x6c, 0xec, 0x56, 0xc1, 0xff, 0x0c}, + dt2: fp.Elt{0x2f, 0xf1, 0x3f, 0x7a, 0x2d, 0x56, 0x19, 0x7f, 0xea, 0xbe, 0x59, 0x2e, 0x13, 0x67, 0x81, 0xfb, 0xdb, 0xc8, 0xa3, 0x1d, 0xd5, 0xe9, 0x13, 0x8b, 0x29, 0xdf, 0xcf, 0x9f, 0xe7, 0xd9, 0x0b, 0x70, 0xd3, 0x15, 0x57, 0x4a, 0xe9, 0x50, 0x12, 0x1b, 0x81, 0x4b, 0x98, 0x98, 0xa8, 0x31, 0x1d, 0x27, 0x47, 0x38, 0xed, 0x57, 0x99, 0x26, 0xb2, 0xee}, + }, + { /* 29P*/ + addYX: fp.Elt{0x1c, 0xb2, 0xb2, 0x67, 0x3b, 0x8b, 0x3d, 0x5a, 0x30, 0x7e, 0x38, 0x7e, 0x3c, 0x3d, 0x28, 0x56, 0x59, 0xd8, 0x87, 0x53, 0x8b, 0xe6, 0x6c, 0x5d, 0xe5, 0x0a, 0x33, 0x10, 0xce, 0xa2, 0x17, 0x0d, 0xe8, 0x76, 0xee, 0x68, 0xa8, 0x72, 0x54, 0xbd, 0xa6, 0x24, 0x94, 0x6e, 0x77, 0xc7, 0x53, 0xb7, 0x89, 0x1c, 0x7a, 0xe9, 0x78, 0x9a, 0x74, 0x5f}, + subYX: fp.Elt{0x76, 0x96, 0x1c, 0xcf, 0x08, 0x55, 0xd8, 0x1e, 0x0d, 0xa3, 0x59, 0x95, 0x32, 0xf4, 0xc2, 0x8e, 0x84, 0x5e, 0x4b, 0x04, 0xda, 0x71, 0xc9, 0x78, 0x52, 0xde, 0x14, 0xb4, 0x31, 0xf4, 0xd4, 0xb8, 0x58, 0xc5, 0x20, 0xe8, 0xdd, 0x15, 0xb5, 0xee, 0xea, 0x61, 0xe0, 0xf5, 0xd6, 0xae, 0x55, 0x59, 0x05, 0x3e, 0xaf, 0x74, 0xac, 0x1f, 0x17, 0x82}, + dt2: fp.Elt{0x59, 0x24, 0xcd, 0xfc, 0x11, 0x7e, 0x85, 0x18, 0x3d, 0x69, 0xf7, 0x71, 0x31, 0x66, 0x98, 0x42, 0x95, 0x00, 0x8c, 0xb2, 0xae, 0x39, 0x7e, 0x85, 0xd6, 0xb0, 0x02, 0xec, 0xce, 0xfc, 0x25, 0xb2, 0xe3, 0x99, 0x8e, 0x5b, 0x61, 0x96, 0x2e, 0x6d, 0x96, 0x57, 0x71, 0xa5, 0x93, 0x41, 0x0e, 0x6f, 0xfd, 0x0a, 0xbf, 0xa9, 0xf7, 0x56, 0xa9, 0x3e}, + }, + { /* 31P*/ + addYX: fp.Elt{0xa2, 0x2e, 0x0c, 0x17, 0x4d, 0xcc, 0x85, 0x2c, 0x18, 0xa0, 0xd2, 0x08, 0xba, 0x11, 0xfa, 0x47, 0x71, 0x86, 0xaf, 0x36, 0x6a, 0xd7, 0xfe, 0xb9, 0xb0, 0x2f, 0x89, 0x98, 0x49, 0x69, 0xf8, 0x6a, 0xad, 0x27, 0x5e, 0x0a, 0x22, 0x60, 0x5e, 0x5d, 0xca, 0x06, 0x51, 0x27, 0x99, 0x29, 0x85, 0x68, 0x98, 0xe1, 0xc4, 0x21, 0x50, 0xa0, 0xe9, 0xc1}, + subYX: fp.Elt{0x4d, 0x70, 0xee, 0x91, 0x92, 0x3f, 0xb7, 0xd3, 0x1d, 0xdb, 0x8d, 0x6e, 0x16, 0xf5, 0x65, 0x7d, 0x5f, 0xb5, 0x6c, 0x59, 0x26, 0x70, 0x4b, 0xf2, 0xfc, 0xe7, 0xdf, 0x86, 0xfe, 0xa5, 0xa7, 0xa6, 0x5d, 0xfb, 0x06, 0xe9, 0xf9, 0xcc, 0xc0, 0x37, 0xcc, 0xd8, 0x09, 0x04, 0xd2, 0xa5, 0x1d, 0xd7, 0xb7, 0xce, 0x92, 0xac, 0x3c, 0xad, 0xfb, 0xae}, + dt2: fp.Elt{0x17, 0xa3, 0x9a, 0xc7, 0x86, 0x2a, 0x51, 0xf7, 0x96, 0x79, 0x49, 0x22, 0x2e, 0x5a, 0x01, 0x5c, 0xb5, 0x95, 0xd4, 0xe8, 0xcb, 0x00, 0xca, 0x2d, 0x55, 0xb6, 0x34, 0x36, 0x0b, 0x65, 0x46, 0xf0, 0x49, 0xfc, 0x87, 0x86, 0xe5, 0xc3, 0x15, 0xdb, 0x32, 0xcd, 0xf2, 0xd3, 0x82, 0x4c, 0xe6, 0x61, 0x8a, 0xaf, 0xd4, 0x9e, 0x0f, 0x5a, 0xf2, 0x81}, + }, + { /* 33P*/ + addYX: fp.Elt{0x88, 0x10, 0xc0, 0xcb, 0xf5, 0x77, 0xae, 0xa5, 0xbe, 0xf6, 0xcd, 0x2e, 0x8b, 0x7e, 0xbd, 0x79, 0x62, 0x4a, 0xeb, 0x69, 0xc3, 0x28, 0xaa, 0x72, 0x87, 0xa9, 0x25, 0x87, 0x46, 0xea, 0x0e, 0x62, 0xa3, 0x6a, 0x1a, 0xe2, 0xba, 0xdc, 0x81, 0x10, 0x33, 0x01, 0xf6, 0x16, 0x89, 0x80, 0xc6, 0xcd, 0xdb, 0xdc, 0xba, 0x0e, 0x09, 0x4a, 0x35, 0x4a}, + subYX: fp.Elt{0x86, 0xb2, 0x2b, 0xd0, 0xb8, 0x4a, 0x6d, 0x66, 0x7b, 0x32, 0xdf, 0x3b, 0x1a, 0x19, 0x1f, 0x63, 0xee, 0x1f, 0x3d, 0x1c, 0x5c, 0x14, 0x60, 0x5b, 0x72, 0x49, 0x07, 0xb1, 0x0d, 0x72, 0xc6, 0x35, 0xf0, 0xbc, 0x5e, 0xda, 0x80, 0x6b, 0x64, 0x5b, 0xe5, 0x34, 0x54, 0x39, 0xdd, 0xe6, 0x3c, 0xcb, 0xe5, 0x29, 0x32, 0x06, 0xc6, 0xb1, 0x96, 0x34}, + dt2: fp.Elt{0x85, 0x86, 0xf5, 0x84, 0x86, 0xe6, 0x77, 0x8a, 0x71, 0x85, 0x0c, 0x4f, 0x81, 0x5b, 0x29, 0x06, 0xb5, 0x2e, 0x26, 0x71, 0x07, 0x78, 0x07, 0xae, 0xbc, 0x95, 0x46, 0xc3, 0x65, 0xac, 0xe3, 0x76, 0x51, 0x7d, 0xd4, 0x85, 0x31, 0xe3, 0x43, 0xf3, 0x1b, 0x7c, 0xf7, 0x6b, 0x2c, 0xf8, 0x1c, 0xbb, 0x8d, 0xca, 0xab, 0x4b, 0xba, 0x7f, 0xa4, 0xe2}, + }, + { /* 35P*/ + addYX: fp.Elt{0x1a, 0xee, 0xe7, 0xa4, 0x8a, 0x9d, 0x53, 0x80, 0xc6, 0xb8, 0x4e, 0xdc, 0x89, 0xe0, 0xc4, 0x2b, 0x60, 0x52, 0x6f, 0xec, 0x81, 0xd2, 0x55, 0x6b, 0x1b, 0x6f, 0x17, 0x67, 0x8e, 0x42, 0x26, 0x4c, 0x65, 0x23, 0x29, 0xc6, 0x7b, 0xcd, 0x9f, 0xad, 0x4b, 0x42, 0xd3, 0x0c, 0x75, 0xc3, 0x8a, 0xf5, 0xbe, 0x9e, 0x55, 0xf7, 0x47, 0x5d, 0xbd, 0x3a}, + subYX: fp.Elt{0x0d, 0xa8, 0x3b, 0xf9, 0xc7, 0x7e, 0xc6, 0x86, 0x94, 0xc0, 0x01, 0xff, 0x27, 0xce, 0x43, 0xac, 0xe5, 0xe1, 0xd2, 0x8d, 0xc1, 0x22, 0x31, 0xbe, 0xe1, 0xaf, 0xf9, 0x4a, 0x78, 0xa1, 0x0c, 0xaa, 0xd4, 0x80, 0xe4, 0x09, 0x8d, 0xfb, 0x1d, 0x52, 0xc8, 0x60, 0x2d, 0xf2, 0xa2, 0x89, 0x02, 0x56, 0x3d, 0x56, 0x27, 0x85, 0xc7, 0xf0, 0x2b, 0x9a}, + dt2: fp.Elt{0x62, 0x7c, 0xc7, 0x6b, 0x2c, 0x9d, 0x0a, 0x7c, 0xe5, 0x50, 0x3c, 0xe6, 0x87, 0x1c, 0x82, 0x30, 0x67, 0x3c, 0x39, 0xb6, 0xa0, 0x31, 0xfb, 0x03, 0x7b, 0xa1, 0x58, 0xdf, 0x12, 0x76, 0x5d, 0x5d, 0x0a, 0x8f, 0x9b, 0x37, 0x32, 0xc3, 0x60, 0x33, 0xea, 0x9f, 0x0a, 0x99, 0xfa, 0x20, 0xd0, 0x33, 0x21, 0xc3, 0x94, 0xd4, 0x86, 0x49, 0x7c, 0x4e}, + }, + { /* 37P*/ + addYX: fp.Elt{0xc7, 0x0c, 0x71, 0xfe, 0x55, 0xd1, 0x95, 0x8f, 0x43, 0xbb, 0x6b, 0x74, 0x30, 0xbd, 0xe8, 0x6f, 0x1c, 0x1b, 0x06, 0x62, 0xf5, 0xfc, 0x65, 0xa0, 0xeb, 0x81, 0x12, 0xc9, 0x64, 0x66, 0x61, 0xde, 0xf3, 0x6d, 0xd4, 0xae, 0x8e, 0xb1, 0x72, 0xe0, 0xcd, 0x37, 0x01, 0x28, 0x52, 0xd7, 0x39, 0x46, 0x0c, 0x55, 0xcf, 0x47, 0x70, 0xef, 0xa1, 0x17}, + subYX: fp.Elt{0x8d, 0x58, 0xde, 0x83, 0x88, 0x16, 0x0e, 0x12, 0x42, 0x03, 0x50, 0x60, 0x4b, 0xdf, 0xbf, 0x95, 0xcc, 0x7d, 0x18, 0x17, 0x7e, 0x31, 0x5d, 0x8a, 0x66, 0xc1, 0xcf, 0x14, 0xea, 0xf4, 0xf4, 0xe5, 0x63, 0x2d, 0x32, 0x86, 0x9b, 0xed, 0x1f, 0x4f, 0x03, 0xaf, 0x33, 0x92, 0xcb, 0xaf, 0x9c, 0x05, 0x0d, 0x47, 0x1b, 0x42, 0xba, 0x13, 0x22, 0x98}, + dt2: fp.Elt{0xb5, 0x48, 0xeb, 0x7d, 0x3d, 0x10, 0x9f, 0x59, 0xde, 0xf8, 0x1c, 0x4f, 0x7d, 0x9d, 0x40, 0x4d, 0x9e, 0x13, 0x24, 0xb5, 0x21, 0x09, 0xb7, 0xee, 0x98, 0x5c, 0x56, 0xbc, 0x5e, 0x2b, 0x78, 0x38, 0x06, 0xac, 0xe3, 0xe0, 0xfa, 0x2e, 0xde, 0x4f, 0xd2, 0xb3, 0xfb, 0x2d, 0x71, 0x84, 0xd1, 0x9d, 0x12, 0x5b, 0x35, 0xc8, 0x03, 0x68, 0x67, 0xc7}, + }, + { /* 39P*/ + addYX: fp.Elt{0xb6, 0x65, 0xfb, 0xa7, 0x06, 0x35, 0xbb, 0xe0, 0x31, 0x8d, 0x91, 0x40, 0x98, 0xab, 0x30, 0xe4, 0xca, 0x12, 0x59, 0x89, 0xed, 0x65, 0x5d, 0x7f, 0xae, 0x69, 0xa0, 0xa4, 0xfa, 0x78, 0xb4, 0xf7, 0xed, 0xae, 0x86, 0x78, 0x79, 0x64, 0x24, 0xa6, 0xd4, 0xe1, 0xf6, 0xd3, 0xa0, 0x89, 0xba, 0x20, 0xf4, 0x54, 0x0d, 0x8f, 0xdb, 0x1a, 0x79, 0xdb}, + subYX: fp.Elt{0xe1, 0x82, 0x0c, 0x4d, 0xde, 0x9f, 0x40, 0xf0, 0xc1, 0xbd, 0x8b, 0xd3, 0x24, 0x03, 0xcd, 0xf2, 0x92, 0x7d, 0xe2, 0x68, 0x7f, 0xf1, 0xbe, 0x69, 0xde, 0x34, 0x67, 0x4c, 0x85, 0x3b, 0xec, 0x98, 0xcc, 0x4d, 0x3e, 0xc0, 0x96, 0x27, 0xe6, 0x75, 0xfc, 0xdf, 0x37, 0xc0, 0x1e, 0x27, 0xe0, 0xf6, 0xc2, 0xbd, 0xbc, 0x3d, 0x9b, 0x39, 0xdc, 0xe2}, + dt2: fp.Elt{0xd8, 0x29, 0xa7, 0x39, 0xe3, 0x9f, 0x2f, 0x0e, 0x4b, 0x24, 0x21, 0x70, 0xef, 0xfd, 0x91, 0xea, 0xbf, 0xe1, 0x72, 0x90, 0xcc, 0xc9, 0x84, 0x0e, 0xad, 0xd5, 0xe6, 0xbb, 0xc5, 0x99, 0x7f, 0xa4, 0xf0, 0x2e, 0xcc, 0x95, 0x64, 0x27, 0x19, 0xd8, 0x4c, 0x27, 0x0d, 0xff, 0xb6, 0x29, 0xe2, 0x6c, 0xfa, 0xbb, 0x4d, 0x9c, 0xbb, 0xaf, 0xa5, 0xec}, + }, + { /* 41P*/ + addYX: fp.Elt{0xd6, 0x33, 0x3f, 0x9f, 0xcf, 0xfd, 0x4c, 0xd1, 0xfe, 0xe5, 0xeb, 0x64, 0x27, 0xae, 0x7a, 0xa2, 0x82, 0x50, 0x6d, 0xaa, 0xe3, 0x5d, 0xe2, 0x48, 0x60, 0xb3, 0x76, 0x04, 0xd9, 0x19, 0xa7, 0xa1, 0x73, 0x8d, 0x38, 0xa9, 0xaf, 0x45, 0xb5, 0xb2, 0x62, 0x9b, 0xf1, 0x35, 0x7b, 0x84, 0x66, 0xeb, 0x06, 0xef, 0xf1, 0xb2, 0x2d, 0x6a, 0x61, 0x15}, + subYX: fp.Elt{0x86, 0x50, 0x42, 0xf7, 0xda, 0x59, 0xb2, 0xcf, 0x0d, 0x3d, 0xee, 0x8e, 0x53, 0x5d, 0xf7, 0x9e, 0x6a, 0x26, 0x2d, 0xc7, 0x8c, 0x8e, 0x18, 0x50, 0x6d, 0xb7, 0x51, 0x4c, 0xa7, 0x52, 0x6e, 0x0e, 0x0a, 0x16, 0x74, 0xb2, 0x81, 0x8b, 0x56, 0x27, 0x22, 0x84, 0xf4, 0x56, 0xc5, 0x06, 0xe1, 0x8b, 0xca, 0x2d, 0xdb, 0x9a, 0xf6, 0x10, 0x9c, 0x51}, + dt2: fp.Elt{0x1f, 0x16, 0xa2, 0x78, 0x96, 0x1b, 0x85, 0x9c, 0x76, 0x49, 0xd4, 0x0f, 0xac, 0xb0, 0xf4, 0xd0, 0x06, 0x2c, 0x7e, 0x6d, 0x6e, 0x8e, 0xc7, 0x9f, 0x18, 0xad, 0xfc, 0x88, 0x0c, 0x0c, 0x09, 0x05, 0x05, 0xa0, 0x79, 0x72, 0x32, 0x72, 0x87, 0x0f, 0x49, 0x87, 0x0c, 0xb4, 0x12, 0xc2, 0x09, 0xf8, 0x9f, 0x30, 0x72, 0xa9, 0x47, 0x13, 0x93, 0x49}, + }, + { /* 43P*/ + addYX: fp.Elt{0xcc, 0xb1, 0x4c, 0xd3, 0xc0, 0x9e, 0x9e, 0x4d, 0x6d, 0x28, 0x0b, 0xa5, 0x94, 0xa7, 0x2e, 0xc2, 0xc7, 0xaf, 0x29, 0x73, 0xc9, 0x68, 0xea, 0x0f, 0x34, 0x37, 0x8d, 0x96, 0x8f, 0x3a, 0x3d, 0x73, 0x1e, 0x6d, 0x9f, 0xcf, 0x8d, 0x83, 0xb5, 0x71, 0xb9, 0xe1, 0x4b, 0x67, 0x71, 0xea, 0xcf, 0x56, 0xe5, 0xeb, 0x72, 0x15, 0x2f, 0x9e, 0xa8, 0xaa}, + subYX: fp.Elt{0xf4, 0x3e, 0x85, 0x1c, 0x1a, 0xef, 0x50, 0xd1, 0xb4, 0x20, 0xb2, 0x60, 0x05, 0x98, 0xfe, 0x47, 0x3b, 0xc1, 0x76, 0xca, 0x2c, 0x4e, 0x5a, 0x42, 0xa3, 0xf7, 0x20, 0xaa, 0x57, 0x39, 0xee, 0x34, 0x1f, 0xe1, 0x68, 0xd3, 0x7e, 0x06, 0xc4, 0x6c, 0xc7, 0x76, 0x2b, 0xe4, 0x1c, 0x48, 0x44, 0xe6, 0xe5, 0x44, 0x24, 0x8d, 0xb3, 0xb6, 0x88, 0x32}, + dt2: fp.Elt{0x18, 0xa7, 0xba, 0xd0, 0x44, 0x6f, 0x33, 0x31, 0x00, 0xf8, 0xf6, 0x12, 0xe3, 0xc5, 0xc7, 0xb5, 0x91, 0x9c, 0x91, 0xb5, 0x75, 0x18, 0x18, 0x8a, 0xab, 0xed, 0x24, 0x11, 0x2e, 0xce, 0x5a, 0x0f, 0x94, 0x5f, 0x2e, 0xca, 0xd3, 0x80, 0xea, 0xe5, 0x34, 0x96, 0x67, 0x8b, 0x6a, 0x26, 0x5e, 0xc8, 0x9d, 0x2c, 0x5e, 0x6c, 0xa2, 0x0c, 0xbf, 0xf0}, + }, + { /* 45P*/ + addYX: fp.Elt{0xb3, 0xbf, 0xa3, 0x85, 0xee, 0xf6, 0x58, 0x02, 0x78, 0xc4, 0x30, 0xd6, 0x57, 0x59, 0x8c, 0x88, 0x08, 0x7c, 0xbc, 0xbe, 0x0a, 0x74, 0xa9, 0xde, 0x69, 0xe7, 0x41, 0xd8, 0xbf, 0x66, 0x8d, 0x3d, 0x28, 0x00, 0x8c, 0x47, 0x65, 0x34, 0xfe, 0x86, 0x9e, 0x6a, 0xf2, 0x41, 0x6a, 0x94, 0xc4, 0x88, 0x75, 0x23, 0x0d, 0x52, 0x69, 0xee, 0x07, 0x89}, + subYX: fp.Elt{0x22, 0x3c, 0xa1, 0x70, 0x58, 0x97, 0x93, 0xbe, 0x59, 0xa8, 0x0b, 0x8a, 0x46, 0x2a, 0x38, 0x1e, 0x08, 0x6b, 0x61, 0x9f, 0xf2, 0x4a, 0x8b, 0x80, 0x68, 0x6e, 0xc8, 0x92, 0x60, 0xf3, 0xc9, 0x89, 0xb2, 0x6d, 0x63, 0xb0, 0xeb, 0x83, 0x15, 0x63, 0x0e, 0x64, 0xbb, 0xb8, 0xfe, 0xb4, 0x81, 0x90, 0x01, 0x28, 0x10, 0xb9, 0x74, 0x6e, 0xde, 0xa4}, + dt2: fp.Elt{0x1a, 0x23, 0x45, 0xa8, 0x6f, 0x4e, 0xa7, 0x4a, 0x0c, 0xeb, 0xb0, 0x43, 0xf9, 0xef, 0x99, 0x60, 0x5b, 0xdb, 0x66, 0xc0, 0x86, 0x71, 0x43, 0xb1, 0x22, 0x7b, 0x1c, 0xe7, 0x8d, 0x09, 0x1d, 0x83, 0x76, 0x9c, 0xd3, 0x5a, 0xdd, 0x42, 0xd9, 0x2f, 0x2d, 0xba, 0x7a, 0xc2, 0xd9, 0x6b, 0xd4, 0x7a, 0xf1, 0xd5, 0x5f, 0x6b, 0x85, 0xbf, 0x0b, 0xf1}, + }, + { /* 47P*/ + addYX: fp.Elt{0xb2, 0x83, 0xfa, 0x1f, 0xd2, 0xce, 0xb6, 0xf2, 0x2d, 0xea, 0x1b, 0xe5, 0x29, 0xa5, 0x72, 0xf9, 0x25, 0x48, 0x4e, 0xf2, 0x50, 0x1b, 0x39, 0xda, 0x34, 0xc5, 0x16, 0x13, 0xb4, 0x0c, 0xa1, 0x00, 0x79, 0x7a, 0xf5, 0x8b, 0xf3, 0x70, 0x14, 0xb6, 0xfc, 0x9a, 0x47, 0x68, 0x1e, 0x42, 0x70, 0x64, 0x2a, 0x84, 0x3e, 0x3d, 0x20, 0x58, 0xf9, 0x6a}, + subYX: fp.Elt{0xd9, 0xee, 0xc0, 0xc4, 0xf5, 0xc2, 0x86, 0xaf, 0x45, 0xd2, 0xd2, 0x87, 0x1b, 0x64, 0xd5, 0xe0, 0x8c, 0x44, 0x00, 0x4f, 0x43, 0x89, 0x04, 0x48, 0x4a, 0x0b, 0xca, 0x94, 0x06, 0x2f, 0x23, 0x5b, 0x6c, 0x8d, 0x44, 0x66, 0x53, 0xf5, 0x5a, 0x20, 0x72, 0x28, 0x58, 0x84, 0xcc, 0x73, 0x22, 0x5e, 0xd1, 0x0b, 0x56, 0x5e, 0x6a, 0xa3, 0x11, 0x91}, + dt2: fp.Elt{0x6e, 0x9f, 0x88, 0xa8, 0x68, 0x2f, 0x12, 0x37, 0x88, 0xfc, 0x92, 0x8f, 0x24, 0xeb, 0x5b, 0x2a, 0x2a, 0xd0, 0x14, 0x40, 0x4c, 0xa9, 0xa4, 0x03, 0x0c, 0x45, 0x48, 0x13, 0xe8, 0xa6, 0x37, 0xab, 0xc0, 0x06, 0x38, 0x6c, 0x96, 0x73, 0x40, 0x6c, 0xc6, 0xea, 0x56, 0xc6, 0xe9, 0x1a, 0x69, 0xeb, 0x7a, 0xd1, 0x33, 0x69, 0x58, 0x2b, 0xea, 0x2f}, + }, + { /* 49P*/ + addYX: fp.Elt{0x58, 0xa8, 0x05, 0x41, 0x00, 0x9d, 0xaa, 0xd9, 0x98, 0xcf, 0xb9, 0x41, 0xb5, 0x4a, 0x8d, 0xe2, 0xe7, 0xc0, 0x72, 0xef, 0xc8, 0x28, 0x6b, 0x68, 0x9d, 0xc9, 0xdf, 0x05, 0x8b, 0xd0, 0x04, 0x74, 0x79, 0x45, 0x52, 0x05, 0xa3, 0x6e, 0x35, 0x3a, 0xe3, 0xef, 0xb2, 0xdc, 0x08, 0x6f, 0x4e, 0x76, 0x85, 0x67, 0xba, 0x23, 0x8f, 0xdd, 0xaf, 0x09}, + subYX: fp.Elt{0xb4, 0x38, 0xc8, 0xff, 0x4f, 0x65, 0x2a, 0x7e, 0xad, 0xb1, 0xc6, 0xb9, 0x3d, 0xd6, 0xf7, 0x14, 0xcf, 0xf6, 0x98, 0x75, 0xbb, 0x47, 0x83, 0x90, 0xe7, 0xe1, 0xf6, 0x14, 0x99, 0x7e, 0xfa, 0xe4, 0x77, 0x24, 0xe3, 0xe7, 0xf0, 0x1e, 0xdb, 0x27, 0x4e, 0x16, 0x04, 0xf2, 0x08, 0x52, 0xfc, 0xec, 0x55, 0xdb, 0x2e, 0x67, 0xe1, 0x94, 0x32, 0x89}, + dt2: fp.Elt{0x00, 0xad, 0x03, 0x35, 0x1a, 0xb1, 0x88, 0xf0, 0xc9, 0x11, 0xe4, 0x12, 0x52, 0x61, 0xfd, 0x8a, 0x1b, 0x6a, 0x0a, 0x4c, 0x42, 0x46, 0x22, 0x0e, 0xa5, 0xf9, 0xe2, 0x50, 0xf2, 0xb2, 0x1f, 0x20, 0x78, 0x10, 0xf6, 0xbf, 0x7f, 0x0c, 0x9c, 0xad, 0x40, 0x8b, 0x82, 0xd4, 0xba, 0x69, 0x09, 0xac, 0x4b, 0x6d, 0xc4, 0x49, 0x17, 0x81, 0x57, 0x3b}, + }, + { /* 51P*/ + addYX: fp.Elt{0x0d, 0xfe, 0xb4, 0x35, 0x11, 0xbd, 0x1d, 0x6b, 0xc2, 0xc5, 0x3b, 0xd2, 0x23, 0x2c, 0x72, 0xe3, 0x48, 0xb1, 0x48, 0x73, 0xfb, 0xa3, 0x21, 0x6e, 0xc0, 0x09, 0x69, 0xac, 0xe1, 0x60, 0xbc, 0x24, 0x03, 0x99, 0x63, 0x0a, 0x00, 0xf0, 0x75, 0xf6, 0x92, 0xc5, 0xd6, 0xdb, 0x51, 0xd4, 0x7d, 0xe6, 0xf4, 0x11, 0x79, 0xd7, 0xc3, 0xaf, 0x48, 0xd0}, + subYX: fp.Elt{0xf4, 0x4f, 0xaf, 0x31, 0xe3, 0x10, 0x89, 0x95, 0xf0, 0x8a, 0xf6, 0x31, 0x9f, 0x48, 0x02, 0xba, 0x42, 0x2b, 0x3c, 0x22, 0x8b, 0xcc, 0x12, 0x98, 0x6e, 0x7a, 0x64, 0x3a, 0xc4, 0xca, 0x32, 0x2a, 0x72, 0xf8, 0x2c, 0xcf, 0x78, 0x5e, 0x7a, 0x75, 0x6e, 0x72, 0x46, 0x48, 0x62, 0x28, 0xac, 0x58, 0x1a, 0xc6, 0x59, 0x88, 0x2a, 0x44, 0x9e, 0x83}, + dt2: fp.Elt{0xb3, 0xde, 0x36, 0xfd, 0xeb, 0x1b, 0xd4, 0x24, 0x1b, 0x08, 0x8c, 0xfe, 0xa9, 0x41, 0xa1, 0x64, 0xf2, 0x6d, 0xdb, 0xf9, 0x94, 0xae, 0x86, 0x71, 0xab, 0x10, 0xbf, 0xa3, 0xb2, 0xa0, 0xdf, 0x10, 0x8c, 0x74, 0xce, 0xb3, 0xfc, 0xdb, 0xba, 0x15, 0xf6, 0x91, 0x7a, 0x9c, 0x36, 0x1e, 0x45, 0x07, 0x3c, 0xec, 0x1a, 0x61, 0x26, 0x93, 0xe3, 0x50}, + }, + { /* 53P*/ + addYX: fp.Elt{0xc5, 0x50, 0xc5, 0x83, 0xb0, 0xbd, 0xd9, 0xf6, 0x6d, 0x15, 0x5e, 0xc1, 0x1a, 0x33, 0xa0, 0xce, 0x13, 0x70, 0x3b, 0xe1, 0x31, 0xc6, 0xc4, 0x02, 0xec, 0x8c, 0xd5, 0x9c, 0x97, 0xd3, 0x12, 0xc4, 0xa2, 0xf9, 0xd5, 0xfb, 0x22, 0x69, 0x94, 0x09, 0x2f, 0x59, 0xce, 0xdb, 0xf2, 0xf2, 0x00, 0xe0, 0xa9, 0x08, 0x44, 0x2e, 0x8b, 0x6b, 0xf5, 0xb3}, + subYX: fp.Elt{0x90, 0xdd, 0xec, 0xa2, 0x65, 0xb7, 0x61, 0xbc, 0xaa, 0x70, 0xa2, 0x15, 0xd8, 0xb0, 0xf8, 0x8e, 0x23, 0x3d, 0x9f, 0x46, 0xa3, 0x29, 0x20, 0xd1, 0xa1, 0x15, 0x81, 0xc6, 0xb6, 0xde, 0xbe, 0x60, 0x63, 0x24, 0xac, 0x15, 0xfb, 0xeb, 0xd3, 0xea, 0x57, 0x13, 0x86, 0x38, 0x1e, 0x22, 0xf4, 0x8c, 0x5d, 0xaf, 0x1b, 0x27, 0x21, 0x4f, 0xa3, 0x63}, + dt2: fp.Elt{0x07, 0x15, 0x87, 0xc4, 0xfd, 0xa1, 0x97, 0x7a, 0x07, 0x1f, 0x56, 0xcc, 0xe3, 0x6a, 0x01, 0x90, 0xce, 0xf9, 0xfa, 0x50, 0xb2, 0xe0, 0x87, 0x8b, 0x6c, 0x63, 0x6c, 0xf6, 0x2a, 0x09, 0xef, 0xef, 0xd2, 0x31, 0x40, 0x25, 0xf6, 0x84, 0xcb, 0xe0, 0xc4, 0x23, 0xc1, 0xcb, 0xe2, 0x02, 0x83, 0x2d, 0xed, 0x74, 0x74, 0x8b, 0xf8, 0x7c, 0x81, 0x18}, + }, + { /* 55P*/ + addYX: fp.Elt{0x9e, 0xe5, 0x59, 0x95, 0x63, 0x2e, 0xac, 0x8b, 0x03, 0x3c, 0xc1, 0x8e, 0xe1, 0x5b, 0x56, 0x3c, 0x16, 0x41, 0xe4, 0xc2, 0x60, 0x0c, 0x6d, 0x65, 0x9f, 0xfc, 0x27, 0x68, 0x43, 0x44, 0x05, 0x12, 0x6c, 0xda, 0x04, 0xef, 0xcf, 0xcf, 0xdc, 0x0a, 0x1a, 0x7f, 0x12, 0xd3, 0xeb, 0x02, 0xb6, 0x04, 0xca, 0xd6, 0xcb, 0xf0, 0x22, 0xba, 0x35, 0x6d}, + subYX: fp.Elt{0x09, 0x6d, 0xf9, 0x64, 0x4c, 0xe6, 0x41, 0xff, 0x01, 0x4d, 0xce, 0x1e, 0xfa, 0x38, 0xa2, 0x25, 0x62, 0xff, 0x03, 0x39, 0x18, 0x91, 0xbb, 0x9d, 0xce, 0x02, 0xf0, 0xf1, 0x3c, 0x55, 0x18, 0xa9, 0xab, 0x4d, 0xd2, 0x35, 0xfd, 0x8d, 0xa9, 0xb2, 0xad, 0xb7, 0x06, 0x6e, 0xc6, 0x69, 0x49, 0xd6, 0x98, 0x98, 0x0b, 0x22, 0x81, 0x6b, 0xbd, 0xa0}, + dt2: fp.Elt{0x22, 0xf4, 0x85, 0x5d, 0x2b, 0xf1, 0x55, 0xa5, 0xd6, 0x27, 0x86, 0x57, 0x12, 0x1f, 0x16, 0x0a, 0x5a, 0x9b, 0xf2, 0x38, 0xb6, 0x28, 0xd8, 0x99, 0x0c, 0x89, 0x1d, 0x7f, 0xca, 0x21, 0x17, 0x1a, 0x0b, 0x02, 0x5f, 0x77, 0x2f, 0x73, 0x30, 0x7c, 0xc8, 0xd7, 0x2b, 0xcc, 0xe7, 0xf3, 0x21, 0xac, 0x53, 0xa7, 0x11, 0x5d, 0xd8, 0x1d, 0x9b, 0xf5}, + }, + { /* 57P*/ + addYX: fp.Elt{0x94, 0x63, 0x5d, 0xef, 0xfd, 0x6d, 0x25, 0x4e, 0x6d, 0x29, 0x03, 0xed, 0x24, 0x28, 0x27, 0x57, 0x47, 0x3e, 0x6a, 0x1a, 0xfe, 0x37, 0xee, 0x5f, 0x83, 0x29, 0x14, 0xfd, 0x78, 0x25, 0x8a, 0xe1, 0x02, 0x38, 0xd8, 0xca, 0x65, 0x55, 0x40, 0x7d, 0x48, 0x2c, 0x7c, 0x7e, 0x60, 0xb6, 0x0c, 0x6d, 0xf7, 0xe8, 0xb3, 0x62, 0x53, 0xd6, 0x9c, 0x2b}, + subYX: fp.Elt{0x47, 0x25, 0x70, 0x62, 0xf5, 0x65, 0x93, 0x62, 0x08, 0xac, 0x59, 0x66, 0xdb, 0x08, 0xd9, 0x1a, 0x19, 0xaf, 0xf4, 0xef, 0x02, 0xa2, 0x78, 0xa9, 0x55, 0x1c, 0xfa, 0x08, 0x11, 0xcb, 0xa3, 0x71, 0x74, 0xb1, 0x62, 0xe7, 0xc7, 0xf3, 0x5a, 0xb5, 0x8b, 0xd4, 0xf6, 0x10, 0x57, 0x79, 0x72, 0x2f, 0x13, 0x86, 0x7b, 0x44, 0x5f, 0x48, 0xfd, 0x88}, + dt2: fp.Elt{0x10, 0x02, 0xcd, 0x05, 0x9a, 0xc3, 0x32, 0x6d, 0x10, 0x3a, 0x74, 0xba, 0x06, 0xc4, 0x3b, 0x34, 0xbc, 0x36, 0xed, 0xa3, 0xba, 0x9a, 0xdb, 0x6d, 0xd4, 0x69, 0x99, 0x97, 0xd0, 0xe4, 0xdd, 0xf5, 0xd4, 0x7c, 0xd3, 0x4e, 0xab, 0xd1, 0x3b, 0xbb, 0xe9, 0xc7, 0x6a, 0x94, 0x25, 0x61, 0xf0, 0x06, 0xc5, 0x12, 0xa8, 0x86, 0xe5, 0x35, 0x46, 0xeb}, + }, + { /* 59P*/ + addYX: fp.Elt{0x9e, 0x95, 0x11, 0xc6, 0xc7, 0xe8, 0xee, 0x5a, 0x26, 0xa0, 0x72, 0x72, 0x59, 0x91, 0x59, 0x16, 0x49, 0x99, 0x7e, 0xbb, 0xd7, 0x15, 0xb4, 0xf2, 0x40, 0xf9, 0x5a, 0x4d, 0xc8, 0xa0, 0xe2, 0x34, 0x7b, 0x34, 0xf3, 0x99, 0xbf, 0xa9, 0xf3, 0x79, 0xc1, 0x1a, 0x0c, 0xf4, 0x86, 0x74, 0x4e, 0xcb, 0xbc, 0x90, 0xad, 0xb6, 0x51, 0x6d, 0xaa, 0x33}, + subYX: fp.Elt{0x9f, 0xd1, 0xc5, 0xa2, 0x6c, 0x24, 0x88, 0x15, 0x71, 0x68, 0xf6, 0x07, 0x45, 0x02, 0xc4, 0x73, 0x7e, 0x75, 0x87, 0xca, 0x7c, 0xf0, 0x92, 0x00, 0x75, 0xd6, 0x5a, 0xdd, 0xe0, 0x64, 0x16, 0x9d, 0x62, 0x80, 0x33, 0x9f, 0xf4, 0x8e, 0x1a, 0x15, 0x1c, 0xd3, 0x0f, 0x4d, 0x4f, 0x62, 0x2d, 0xd7, 0xa5, 0x77, 0xe3, 0xea, 0xf0, 0xfb, 0x1a, 0xdb}, + dt2: fp.Elt{0x6a, 0xa2, 0xb1, 0xaa, 0xfb, 0x5a, 0x32, 0x4e, 0xff, 0x47, 0x06, 0xd5, 0x9a, 0x4f, 0xce, 0x83, 0x5b, 0x82, 0x34, 0x3e, 0x47, 0xb8, 0xf8, 0xe9, 0x7c, 0x67, 0x69, 0x8d, 0x9c, 0xb7, 0xde, 0x57, 0xf4, 0x88, 0x41, 0x56, 0x0c, 0x87, 0x1e, 0xc9, 0x2f, 0x54, 0xbf, 0x5c, 0x68, 0x2c, 0xd9, 0xc4, 0xef, 0x53, 0x73, 0x1e, 0xa6, 0x38, 0x02, 0x10}, + }, + { /* 61P*/ + addYX: fp.Elt{0x08, 0x80, 0x4a, 0xc9, 0xb7, 0xa8, 0x88, 0xd9, 0xfc, 0x6a, 0xc0, 0x3e, 0xc2, 0x33, 0x4d, 0x2b, 0x2a, 0xa3, 0x6d, 0x72, 0x3e, 0xdc, 0x34, 0x68, 0x08, 0xbf, 0x27, 0xef, 0xf4, 0xff, 0xe2, 0x0c, 0x31, 0x0c, 0xa2, 0x0a, 0x1f, 0x65, 0xc1, 0x4c, 0x61, 0xd3, 0x1b, 0xbc, 0x25, 0xb1, 0xd0, 0xd4, 0x89, 0xb2, 0x53, 0xfb, 0x43, 0xa5, 0xaf, 0x04}, + subYX: fp.Elt{0xe3, 0xe1, 0x37, 0xad, 0x58, 0xa9, 0x55, 0x81, 0xee, 0x64, 0x21, 0xb9, 0xf5, 0x4c, 0x35, 0xea, 0x4a, 0xd3, 0x26, 0xaa, 0x90, 0xd4, 0x60, 0x46, 0x09, 0x4b, 0x4a, 0x62, 0xf9, 0xcd, 0xe1, 0xee, 0xbb, 0xc2, 0x09, 0x0b, 0xb0, 0x96, 0x8e, 0x43, 0x77, 0xaf, 0x25, 0x20, 0x5e, 0x47, 0xe4, 0x1d, 0x50, 0x69, 0x74, 0x08, 0xd7, 0xb9, 0x90, 0x13}, + dt2: fp.Elt{0x51, 0x91, 0x95, 0x64, 0x03, 0x16, 0xfd, 0x6e, 0x26, 0x94, 0x6b, 0x61, 0xe7, 0xd9, 0xe0, 0x4a, 0x6d, 0x7c, 0xfa, 0xc0, 0xe2, 0x43, 0x23, 0x53, 0x70, 0xf5, 0x6f, 0x73, 0x8b, 0x81, 0xb0, 0x0c, 0xee, 0x2e, 0x46, 0xf2, 0x8d, 0xa6, 0xfb, 0xb5, 0x1c, 0x33, 0xbf, 0x90, 0x59, 0xc9, 0x7c, 0xb8, 0x6f, 0xad, 0x75, 0x02, 0x90, 0x8e, 0x59, 0x75}, + }, + { /* 63P*/ + addYX: fp.Elt{0x36, 0x4d, 0x77, 0x04, 0xb8, 0x7d, 0x4a, 0xd1, 0xc5, 0xbb, 0x7b, 0x50, 0x5f, 0x8d, 0x9d, 0x62, 0x0f, 0x66, 0x71, 0xec, 0x87, 0xc5, 0x80, 0x82, 0xc8, 0xf4, 0x6a, 0x94, 0x92, 0x5b, 0xb0, 0x16, 0x9b, 0xb2, 0xc9, 0x6f, 0x2b, 0x2d, 0xee, 0x95, 0x73, 0x2e, 0xc2, 0x1b, 0xc5, 0x55, 0x36, 0x86, 0x24, 0xf8, 0x20, 0x05, 0x0d, 0x93, 0xd7, 0x76}, + subYX: fp.Elt{0x7f, 0x01, 0xeb, 0x2e, 0x48, 0x4d, 0x1d, 0xf1, 0x06, 0x7e, 0x7c, 0x2a, 0x43, 0xbf, 0x28, 0xac, 0xe9, 0x58, 0x13, 0xc8, 0xbf, 0x8e, 0xc0, 0xef, 0xe8, 0x4f, 0x46, 0x8a, 0xe7, 0xc0, 0xf6, 0x0f, 0x0a, 0x03, 0x48, 0x91, 0x55, 0x39, 0x2a, 0xe3, 0xdc, 0xf6, 0x22, 0x9d, 0x4d, 0x71, 0x55, 0x68, 0x25, 0x6e, 0x95, 0x52, 0xee, 0x4c, 0xd9, 0x01}, + dt2: fp.Elt{0xac, 0x33, 0x3f, 0x7c, 0x27, 0x35, 0x15, 0x91, 0x33, 0x8d, 0xf9, 0xc4, 0xf4, 0xf3, 0x90, 0x09, 0x75, 0x69, 0x62, 0x9f, 0x61, 0x35, 0x83, 0x92, 0x04, 0xef, 0x96, 0x38, 0x80, 0x9e, 0x88, 0xb3, 0x67, 0x95, 0xbe, 0x79, 0x3c, 0x35, 0xd8, 0xdc, 0xb2, 0x3e, 0x2d, 0xe6, 0x46, 0xbe, 0x81, 0xf3, 0x32, 0x0e, 0x37, 0x23, 0x75, 0x2a, 0x3d, 0xa0}, + }, +} diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist_basemult.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist_basemult.go new file mode 100644 index 000000000000..f6ac5edbbbcc --- /dev/null +++ b/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist_basemult.go @@ -0,0 +1,62 @@ +package goldilocks + +import ( + "crypto/subtle" + + mlsb "github.com/cloudflare/circl/math/mlsbset" +) + +const ( + // MLSBRecoding parameters + fxT = 448 + fxV = 2 + fxW = 3 + fx2w1 = 1 << (uint(fxW) - 1) +) + +// ScalarBaseMult returns kG where G is the generator point. +func (e twistCurve) ScalarBaseMult(k *Scalar) *twistPoint { + m, err := mlsb.New(fxT, fxV, fxW) + if err != nil { + panic(err) + } + if m.IsExtended() { + panic("not extended") + } + + var isZero int + if k.IsZero() { + isZero = 1 + } + subtle.ConstantTimeCopy(isZero, k[:], order[:]) + + minusK := *k + isEven := 1 - int(k[0]&0x1) + minusK.Neg() + subtle.ConstantTimeCopy(isEven, k[:], minusK[:]) + c, err := m.Encode(k[:]) + if err != nil { + panic(err) + } + + gP := c.Exp(groupMLSB{}) + P := gP.(*twistPoint) + P.cneg(uint(isEven)) + return P +} + +type groupMLSB struct{} + +func (e groupMLSB) ExtendedEltP() mlsb.EltP { return nil } +func (e groupMLSB) Sqr(x mlsb.EltG) { x.(*twistPoint).Double() } +func (e groupMLSB) Mul(x mlsb.EltG, y mlsb.EltP) { x.(*twistPoint).mixAddZ1(y.(*preTwistPointAffine)) } +func (e groupMLSB) Identity() mlsb.EltG { return twistCurve{}.Identity() } +func (e groupMLSB) NewEltP() mlsb.EltP { return &preTwistPointAffine{} } +func (e groupMLSB) Lookup(a mlsb.EltP, v uint, s, u int32) { + Tabj := &tabFixMult[v] + P := a.(*preTwistPointAffine) + for k := range Tabj { + P.cmov(&Tabj[k], uint(subtle.ConstantTimeEq(int32(k), u))) + } + P.cneg(int(s >> 31)) +} diff --git a/vendor/github.com/cloudflare/circl/internal/conv/conv.go b/vendor/github.com/cloudflare/circl/internal/conv/conv.go new file mode 100644 index 000000000000..649a8e931d6f --- /dev/null +++ b/vendor/github.com/cloudflare/circl/internal/conv/conv.go @@ -0,0 +1,140 @@ +package conv + +import ( + "encoding/binary" + "fmt" + "math/big" + "strings" +) + +// BytesLe2Hex returns an hexadecimal string of a number stored in a +// little-endian order slice x. +func BytesLe2Hex(x []byte) string { + b := &strings.Builder{} + b.Grow(2*len(x) + 2) + fmt.Fprint(b, "0x") + if len(x) == 0 { + fmt.Fprint(b, "00") + } + for i := len(x) - 1; i >= 0; i-- { + fmt.Fprintf(b, "%02x", x[i]) + } + return b.String() +} + +// BytesLe2BigInt converts a little-endian slice x into a big-endian +// math/big.Int. +func BytesLe2BigInt(x []byte) *big.Int { + n := len(x) + b := new(big.Int) + if len(x) > 0 { + y := make([]byte, n) + for i := 0; i < n; i++ { + y[n-1-i] = x[i] + } + b.SetBytes(y) + } + return b +} + +// BytesBe2Uint64Le converts a big-endian slice x to a little-endian slice of uint64. +func BytesBe2Uint64Le(x []byte) []uint64 { + l := len(x) + z := make([]uint64, (l+7)/8) + blocks := l / 8 + for i := 0; i < blocks; i++ { + z[i] = binary.BigEndian.Uint64(x[l-8*(i+1):]) + } + remBytes := l % 8 + for i := 0; i < remBytes; i++ { + z[blocks] |= uint64(x[l-1-8*blocks-i]) << uint(8*i) + } + return z +} + +// BigInt2BytesLe stores a positive big.Int number x into a little-endian slice z. +// The slice is modified if the bitlength of x <= 8*len(z) (padding with zeros). +// If x does not fit in the slice or is negative, z is not modified. +func BigInt2BytesLe(z []byte, x *big.Int) { + xLen := (x.BitLen() + 7) >> 3 + zLen := len(z) + if zLen >= xLen && x.Sign() >= 0 { + y := x.Bytes() + for i := 0; i < xLen; i++ { + z[i] = y[xLen-1-i] + } + for i := xLen; i < zLen; i++ { + z[i] = 0 + } + } +} + +// Uint64Le2BigInt converts a little-endian slice x into a big number. +func Uint64Le2BigInt(x []uint64) *big.Int { + n := len(x) + b := new(big.Int) + var bi big.Int + for i := n - 1; i >= 0; i-- { + bi.SetUint64(x[i]) + b.Lsh(b, 64) + b.Add(b, &bi) + } + return b +} + +// Uint64Le2BytesLe converts a little-endian slice x to a little-endian slice of bytes. +func Uint64Le2BytesLe(x []uint64) []byte { + b := make([]byte, 8*len(x)) + n := len(x) + for i := 0; i < n; i++ { + binary.LittleEndian.PutUint64(b[i*8:], x[i]) + } + return b +} + +// Uint64Le2BytesBe converts a little-endian slice x to a big-endian slice of bytes. +func Uint64Le2BytesBe(x []uint64) []byte { + b := make([]byte, 8*len(x)) + n := len(x) + for i := 0; i < n; i++ { + binary.BigEndian.PutUint64(b[i*8:], x[n-1-i]) + } + return b +} + +// Uint64Le2Hex returns an hexadecimal string of a number stored in a +// little-endian order slice x. +func Uint64Le2Hex(x []uint64) string { + b := new(strings.Builder) + b.Grow(16*len(x) + 2) + fmt.Fprint(b, "0x") + if len(x) == 0 { + fmt.Fprint(b, "00") + } + for i := len(x) - 1; i >= 0; i-- { + fmt.Fprintf(b, "%016x", x[i]) + } + return b.String() +} + +// BigInt2Uint64Le stores a positive big.Int number x into a little-endian slice z. +// The slice is modified if the bitlength of x <= 8*len(z) (padding with zeros). +// If x does not fit in the slice or is negative, z is not modified. +func BigInt2Uint64Le(z []uint64, x *big.Int) { + xLen := (x.BitLen() + 63) >> 6 // number of 64-bit words + zLen := len(z) + if zLen >= xLen && x.Sign() > 0 { + var y, yi big.Int + y.Set(x) + two64 := big.NewInt(1) + two64.Lsh(two64, 64).Sub(two64, big.NewInt(1)) + for i := 0; i < xLen; i++ { + yi.And(&y, two64) + z[i] = yi.Uint64() + y.Rsh(&y, 64) + } + } + for i := xLen; i < zLen; i++ { + z[i] = 0 + } +} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/doc.go b/vendor/github.com/cloudflare/circl/internal/sha3/doc.go new file mode 100644 index 000000000000..7e023090707b --- /dev/null +++ b/vendor/github.com/cloudflare/circl/internal/sha3/doc.go @@ -0,0 +1,62 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package sha3 implements the SHA-3 fixed-output-length hash functions and +// the SHAKE variable-output-length hash functions defined by FIPS-202. +// +// Both types of hash function use the "sponge" construction and the Keccak +// permutation. For a detailed specification see http://keccak.noekeon.org/ +// +// # Guidance +// +// If you aren't sure what function you need, use SHAKE256 with at least 64 +// bytes of output. The SHAKE instances are faster than the SHA3 instances; +// the latter have to allocate memory to conform to the hash.Hash interface. +// +// If you need a secret-key MAC (message authentication code), prepend the +// secret key to the input, hash with SHAKE256 and read at least 32 bytes of +// output. +// +// # Security strengths +// +// The SHA3-x (x equals 224, 256, 384, or 512) functions have a security +// strength against preimage attacks of x bits. Since they only produce "x" +// bits of output, their collision-resistance is only "x/2" bits. +// +// The SHAKE-256 and -128 functions have a generic security strength of 256 and +// 128 bits against all attacks, provided that at least 2x bits of their output +// is used. Requesting more than 64 or 32 bytes of output, respectively, does +// not increase the collision-resistance of the SHAKE functions. +// +// # The sponge construction +// +// A sponge builds a pseudo-random function from a public pseudo-random +// permutation, by applying the permutation to a state of "rate + capacity" +// bytes, but hiding "capacity" of the bytes. +// +// A sponge starts out with a zero state. To hash an input using a sponge, up +// to "rate" bytes of the input are XORed into the sponge's state. The sponge +// is then "full" and the permutation is applied to "empty" it. This process is +// repeated until all the input has been "absorbed". The input is then padded. +// The digest is "squeezed" from the sponge in the same way, except that output +// is copied out instead of input being XORed in. +// +// A sponge is parameterized by its generic security strength, which is equal +// to half its capacity; capacity + rate is equal to the permutation's width. +// Since the KeccakF-1600 permutation is 1600 bits (200 bytes) wide, this means +// that the security strength of a sponge instance is equal to (1600 - bitrate) / 2. +// +// # Recommendations +// +// The SHAKE functions are recommended for most new uses. They can produce +// output of arbitrary length. SHAKE256, with an output length of at least +// 64 bytes, provides 256-bit security against all attacks. The Keccak team +// recommends it for most applications upgrading from SHA2-512. (NIST chose a +// much stronger, but much slower, sponge instance for SHA3-512.) +// +// The SHA-3 functions are "drop-in" replacements for the SHA-2 functions. +// They produce output of the same length, with the same security strengths +// against all attacks. This means, in particular, that SHA3-256 only has +// 128-bit collision resistance, because its output length is 32 bytes. +package sha3 diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/hashes.go b/vendor/github.com/cloudflare/circl/internal/sha3/hashes.go new file mode 100644 index 000000000000..7d2365a76ed8 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/internal/sha3/hashes.go @@ -0,0 +1,69 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package sha3 + +// This file provides functions for creating instances of the SHA-3 +// and SHAKE hash functions, as well as utility functions for hashing +// bytes. + +// New224 creates a new SHA3-224 hash. +// Its generic security strength is 224 bits against preimage attacks, +// and 112 bits against collision attacks. +func New224() State { + return State{rate: 144, outputLen: 28, dsbyte: 0x06} +} + +// New256 creates a new SHA3-256 hash. +// Its generic security strength is 256 bits against preimage attacks, +// and 128 bits against collision attacks. +func New256() State { + return State{rate: 136, outputLen: 32, dsbyte: 0x06} +} + +// New384 creates a new SHA3-384 hash. +// Its generic security strength is 384 bits against preimage attacks, +// and 192 bits against collision attacks. +func New384() State { + return State{rate: 104, outputLen: 48, dsbyte: 0x06} +} + +// New512 creates a new SHA3-512 hash. +// Its generic security strength is 512 bits against preimage attacks, +// and 256 bits against collision attacks. +func New512() State { + return State{rate: 72, outputLen: 64, dsbyte: 0x06} +} + +// Sum224 returns the SHA3-224 digest of the data. +func Sum224(data []byte) (digest [28]byte) { + h := New224() + _, _ = h.Write(data) + h.Sum(digest[:0]) + return +} + +// Sum256 returns the SHA3-256 digest of the data. +func Sum256(data []byte) (digest [32]byte) { + h := New256() + _, _ = h.Write(data) + h.Sum(digest[:0]) + return +} + +// Sum384 returns the SHA3-384 digest of the data. +func Sum384(data []byte) (digest [48]byte) { + h := New384() + _, _ = h.Write(data) + h.Sum(digest[:0]) + return +} + +// Sum512 returns the SHA3-512 digest of the data. +func Sum512(data []byte) (digest [64]byte) { + h := New512() + _, _ = h.Write(data) + h.Sum(digest[:0]) + return +} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/keccakf.go b/vendor/github.com/cloudflare/circl/internal/sha3/keccakf.go new file mode 100644 index 000000000000..ab19d0ad124f --- /dev/null +++ b/vendor/github.com/cloudflare/circl/internal/sha3/keccakf.go @@ -0,0 +1,383 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package sha3 + +// KeccakF1600 applies the Keccak permutation to a 1600b-wide +// state represented as a slice of 25 uint64s. +// nolint:funlen +func KeccakF1600(a *[25]uint64) { + // Implementation translated from Keccak-inplace.c + // in the keccak reference code. + var t, bc0, bc1, bc2, bc3, bc4, d0, d1, d2, d3, d4 uint64 + + for i := 0; i < 24; i += 4 { + // Combines the 5 steps in each round into 2 steps. + // Unrolls 4 rounds per loop and spreads some steps across rounds. + + // Round 1 + bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] + bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] + bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] + bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] + bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] + d0 = bc4 ^ (bc1<<1 | bc1>>63) + d1 = bc0 ^ (bc2<<1 | bc2>>63) + d2 = bc1 ^ (bc3<<1 | bc3>>63) + d3 = bc2 ^ (bc4<<1 | bc4>>63) + d4 = bc3 ^ (bc0<<1 | bc0>>63) + + bc0 = a[0] ^ d0 + t = a[6] ^ d1 + bc1 = t<<44 | t>>(64-44) + t = a[12] ^ d2 + bc2 = t<<43 | t>>(64-43) + t = a[18] ^ d3 + bc3 = t<<21 | t>>(64-21) + t = a[24] ^ d4 + bc4 = t<<14 | t>>(64-14) + a[0] = bc0 ^ (bc2 &^ bc1) ^ RC[i] + a[6] = bc1 ^ (bc3 &^ bc2) + a[12] = bc2 ^ (bc4 &^ bc3) + a[18] = bc3 ^ (bc0 &^ bc4) + a[24] = bc4 ^ (bc1 &^ bc0) + + t = a[10] ^ d0 + bc2 = t<<3 | t>>(64-3) + t = a[16] ^ d1 + bc3 = t<<45 | t>>(64-45) + t = a[22] ^ d2 + bc4 = t<<61 | t>>(64-61) + t = a[3] ^ d3 + bc0 = t<<28 | t>>(64-28) + t = a[9] ^ d4 + bc1 = t<<20 | t>>(64-20) + a[10] = bc0 ^ (bc2 &^ bc1) + a[16] = bc1 ^ (bc3 &^ bc2) + a[22] = bc2 ^ (bc4 &^ bc3) + a[3] = bc3 ^ (bc0 &^ bc4) + a[9] = bc4 ^ (bc1 &^ bc0) + + t = a[20] ^ d0 + bc4 = t<<18 | t>>(64-18) + t = a[1] ^ d1 + bc0 = t<<1 | t>>(64-1) + t = a[7] ^ d2 + bc1 = t<<6 | t>>(64-6) + t = a[13] ^ d3 + bc2 = t<<25 | t>>(64-25) + t = a[19] ^ d4 + bc3 = t<<8 | t>>(64-8) + a[20] = bc0 ^ (bc2 &^ bc1) + a[1] = bc1 ^ (bc3 &^ bc2) + a[7] = bc2 ^ (bc4 &^ bc3) + a[13] = bc3 ^ (bc0 &^ bc4) + a[19] = bc4 ^ (bc1 &^ bc0) + + t = a[5] ^ d0 + bc1 = t<<36 | t>>(64-36) + t = a[11] ^ d1 + bc2 = t<<10 | t>>(64-10) + t = a[17] ^ d2 + bc3 = t<<15 | t>>(64-15) + t = a[23] ^ d3 + bc4 = t<<56 | t>>(64-56) + t = a[4] ^ d4 + bc0 = t<<27 | t>>(64-27) + a[5] = bc0 ^ (bc2 &^ bc1) + a[11] = bc1 ^ (bc3 &^ bc2) + a[17] = bc2 ^ (bc4 &^ bc3) + a[23] = bc3 ^ (bc0 &^ bc4) + a[4] = bc4 ^ (bc1 &^ bc0) + + t = a[15] ^ d0 + bc3 = t<<41 | t>>(64-41) + t = a[21] ^ d1 + bc4 = t<<2 | t>>(64-2) + t = a[2] ^ d2 + bc0 = t<<62 | t>>(64-62) + t = a[8] ^ d3 + bc1 = t<<55 | t>>(64-55) + t = a[14] ^ d4 + bc2 = t<<39 | t>>(64-39) + a[15] = bc0 ^ (bc2 &^ bc1) + a[21] = bc1 ^ (bc3 &^ bc2) + a[2] = bc2 ^ (bc4 &^ bc3) + a[8] = bc3 ^ (bc0 &^ bc4) + a[14] = bc4 ^ (bc1 &^ bc0) + + // Round 2 + bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] + bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] + bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] + bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] + bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] + d0 = bc4 ^ (bc1<<1 | bc1>>63) + d1 = bc0 ^ (bc2<<1 | bc2>>63) + d2 = bc1 ^ (bc3<<1 | bc3>>63) + d3 = bc2 ^ (bc4<<1 | bc4>>63) + d4 = bc3 ^ (bc0<<1 | bc0>>63) + + bc0 = a[0] ^ d0 + t = a[16] ^ d1 + bc1 = t<<44 | t>>(64-44) + t = a[7] ^ d2 + bc2 = t<<43 | t>>(64-43) + t = a[23] ^ d3 + bc3 = t<<21 | t>>(64-21) + t = a[14] ^ d4 + bc4 = t<<14 | t>>(64-14) + a[0] = bc0 ^ (bc2 &^ bc1) ^ RC[i+1] + a[16] = bc1 ^ (bc3 &^ bc2) + a[7] = bc2 ^ (bc4 &^ bc3) + a[23] = bc3 ^ (bc0 &^ bc4) + a[14] = bc4 ^ (bc1 &^ bc0) + + t = a[20] ^ d0 + bc2 = t<<3 | t>>(64-3) + t = a[11] ^ d1 + bc3 = t<<45 | t>>(64-45) + t = a[2] ^ d2 + bc4 = t<<61 | t>>(64-61) + t = a[18] ^ d3 + bc0 = t<<28 | t>>(64-28) + t = a[9] ^ d4 + bc1 = t<<20 | t>>(64-20) + a[20] = bc0 ^ (bc2 &^ bc1) + a[11] = bc1 ^ (bc3 &^ bc2) + a[2] = bc2 ^ (bc4 &^ bc3) + a[18] = bc3 ^ (bc0 &^ bc4) + a[9] = bc4 ^ (bc1 &^ bc0) + + t = a[15] ^ d0 + bc4 = t<<18 | t>>(64-18) + t = a[6] ^ d1 + bc0 = t<<1 | t>>(64-1) + t = a[22] ^ d2 + bc1 = t<<6 | t>>(64-6) + t = a[13] ^ d3 + bc2 = t<<25 | t>>(64-25) + t = a[4] ^ d4 + bc3 = t<<8 | t>>(64-8) + a[15] = bc0 ^ (bc2 &^ bc1) + a[6] = bc1 ^ (bc3 &^ bc2) + a[22] = bc2 ^ (bc4 &^ bc3) + a[13] = bc3 ^ (bc0 &^ bc4) + a[4] = bc4 ^ (bc1 &^ bc0) + + t = a[10] ^ d0 + bc1 = t<<36 | t>>(64-36) + t = a[1] ^ d1 + bc2 = t<<10 | t>>(64-10) + t = a[17] ^ d2 + bc3 = t<<15 | t>>(64-15) + t = a[8] ^ d3 + bc4 = t<<56 | t>>(64-56) + t = a[24] ^ d4 + bc0 = t<<27 | t>>(64-27) + a[10] = bc0 ^ (bc2 &^ bc1) + a[1] = bc1 ^ (bc3 &^ bc2) + a[17] = bc2 ^ (bc4 &^ bc3) + a[8] = bc3 ^ (bc0 &^ bc4) + a[24] = bc4 ^ (bc1 &^ bc0) + + t = a[5] ^ d0 + bc3 = t<<41 | t>>(64-41) + t = a[21] ^ d1 + bc4 = t<<2 | t>>(64-2) + t = a[12] ^ d2 + bc0 = t<<62 | t>>(64-62) + t = a[3] ^ d3 + bc1 = t<<55 | t>>(64-55) + t = a[19] ^ d4 + bc2 = t<<39 | t>>(64-39) + a[5] = bc0 ^ (bc2 &^ bc1) + a[21] = bc1 ^ (bc3 &^ bc2) + a[12] = bc2 ^ (bc4 &^ bc3) + a[3] = bc3 ^ (bc0 &^ bc4) + a[19] = bc4 ^ (bc1 &^ bc0) + + // Round 3 + bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] + bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] + bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] + bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] + bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] + d0 = bc4 ^ (bc1<<1 | bc1>>63) + d1 = bc0 ^ (bc2<<1 | bc2>>63) + d2 = bc1 ^ (bc3<<1 | bc3>>63) + d3 = bc2 ^ (bc4<<1 | bc4>>63) + d4 = bc3 ^ (bc0<<1 | bc0>>63) + + bc0 = a[0] ^ d0 + t = a[11] ^ d1 + bc1 = t<<44 | t>>(64-44) + t = a[22] ^ d2 + bc2 = t<<43 | t>>(64-43) + t = a[8] ^ d3 + bc3 = t<<21 | t>>(64-21) + t = a[19] ^ d4 + bc4 = t<<14 | t>>(64-14) + a[0] = bc0 ^ (bc2 &^ bc1) ^ RC[i+2] + a[11] = bc1 ^ (bc3 &^ bc2) + a[22] = bc2 ^ (bc4 &^ bc3) + a[8] = bc3 ^ (bc0 &^ bc4) + a[19] = bc4 ^ (bc1 &^ bc0) + + t = a[15] ^ d0 + bc2 = t<<3 | t>>(64-3) + t = a[1] ^ d1 + bc3 = t<<45 | t>>(64-45) + t = a[12] ^ d2 + bc4 = t<<61 | t>>(64-61) + t = a[23] ^ d3 + bc0 = t<<28 | t>>(64-28) + t = a[9] ^ d4 + bc1 = t<<20 | t>>(64-20) + a[15] = bc0 ^ (bc2 &^ bc1) + a[1] = bc1 ^ (bc3 &^ bc2) + a[12] = bc2 ^ (bc4 &^ bc3) + a[23] = bc3 ^ (bc0 &^ bc4) + a[9] = bc4 ^ (bc1 &^ bc0) + + t = a[5] ^ d0 + bc4 = t<<18 | t>>(64-18) + t = a[16] ^ d1 + bc0 = t<<1 | t>>(64-1) + t = a[2] ^ d2 + bc1 = t<<6 | t>>(64-6) + t = a[13] ^ d3 + bc2 = t<<25 | t>>(64-25) + t = a[24] ^ d4 + bc3 = t<<8 | t>>(64-8) + a[5] = bc0 ^ (bc2 &^ bc1) + a[16] = bc1 ^ (bc3 &^ bc2) + a[2] = bc2 ^ (bc4 &^ bc3) + a[13] = bc3 ^ (bc0 &^ bc4) + a[24] = bc4 ^ (bc1 &^ bc0) + + t = a[20] ^ d0 + bc1 = t<<36 | t>>(64-36) + t = a[6] ^ d1 + bc2 = t<<10 | t>>(64-10) + t = a[17] ^ d2 + bc3 = t<<15 | t>>(64-15) + t = a[3] ^ d3 + bc4 = t<<56 | t>>(64-56) + t = a[14] ^ d4 + bc0 = t<<27 | t>>(64-27) + a[20] = bc0 ^ (bc2 &^ bc1) + a[6] = bc1 ^ (bc3 &^ bc2) + a[17] = bc2 ^ (bc4 &^ bc3) + a[3] = bc3 ^ (bc0 &^ bc4) + a[14] = bc4 ^ (bc1 &^ bc0) + + t = a[10] ^ d0 + bc3 = t<<41 | t>>(64-41) + t = a[21] ^ d1 + bc4 = t<<2 | t>>(64-2) + t = a[7] ^ d2 + bc0 = t<<62 | t>>(64-62) + t = a[18] ^ d3 + bc1 = t<<55 | t>>(64-55) + t = a[4] ^ d4 + bc2 = t<<39 | t>>(64-39) + a[10] = bc0 ^ (bc2 &^ bc1) + a[21] = bc1 ^ (bc3 &^ bc2) + a[7] = bc2 ^ (bc4 &^ bc3) + a[18] = bc3 ^ (bc0 &^ bc4) + a[4] = bc4 ^ (bc1 &^ bc0) + + // Round 4 + bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] + bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] + bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] + bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] + bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] + d0 = bc4 ^ (bc1<<1 | bc1>>63) + d1 = bc0 ^ (bc2<<1 | bc2>>63) + d2 = bc1 ^ (bc3<<1 | bc3>>63) + d3 = bc2 ^ (bc4<<1 | bc4>>63) + d4 = bc3 ^ (bc0<<1 | bc0>>63) + + bc0 = a[0] ^ d0 + t = a[1] ^ d1 + bc1 = t<<44 | t>>(64-44) + t = a[2] ^ d2 + bc2 = t<<43 | t>>(64-43) + t = a[3] ^ d3 + bc3 = t<<21 | t>>(64-21) + t = a[4] ^ d4 + bc4 = t<<14 | t>>(64-14) + a[0] = bc0 ^ (bc2 &^ bc1) ^ RC[i+3] + a[1] = bc1 ^ (bc3 &^ bc2) + a[2] = bc2 ^ (bc4 &^ bc3) + a[3] = bc3 ^ (bc0 &^ bc4) + a[4] = bc4 ^ (bc1 &^ bc0) + + t = a[5] ^ d0 + bc2 = t<<3 | t>>(64-3) + t = a[6] ^ d1 + bc3 = t<<45 | t>>(64-45) + t = a[7] ^ d2 + bc4 = t<<61 | t>>(64-61) + t = a[8] ^ d3 + bc0 = t<<28 | t>>(64-28) + t = a[9] ^ d4 + bc1 = t<<20 | t>>(64-20) + a[5] = bc0 ^ (bc2 &^ bc1) + a[6] = bc1 ^ (bc3 &^ bc2) + a[7] = bc2 ^ (bc4 &^ bc3) + a[8] = bc3 ^ (bc0 &^ bc4) + a[9] = bc4 ^ (bc1 &^ bc0) + + t = a[10] ^ d0 + bc4 = t<<18 | t>>(64-18) + t = a[11] ^ d1 + bc0 = t<<1 | t>>(64-1) + t = a[12] ^ d2 + bc1 = t<<6 | t>>(64-6) + t = a[13] ^ d3 + bc2 = t<<25 | t>>(64-25) + t = a[14] ^ d4 + bc3 = t<<8 | t>>(64-8) + a[10] = bc0 ^ (bc2 &^ bc1) + a[11] = bc1 ^ (bc3 &^ bc2) + a[12] = bc2 ^ (bc4 &^ bc3) + a[13] = bc3 ^ (bc0 &^ bc4) + a[14] = bc4 ^ (bc1 &^ bc0) + + t = a[15] ^ d0 + bc1 = t<<36 | t>>(64-36) + t = a[16] ^ d1 + bc2 = t<<10 | t>>(64-10) + t = a[17] ^ d2 + bc3 = t<<15 | t>>(64-15) + t = a[18] ^ d3 + bc4 = t<<56 | t>>(64-56) + t = a[19] ^ d4 + bc0 = t<<27 | t>>(64-27) + a[15] = bc0 ^ (bc2 &^ bc1) + a[16] = bc1 ^ (bc3 &^ bc2) + a[17] = bc2 ^ (bc4 &^ bc3) + a[18] = bc3 ^ (bc0 &^ bc4) + a[19] = bc4 ^ (bc1 &^ bc0) + + t = a[20] ^ d0 + bc3 = t<<41 | t>>(64-41) + t = a[21] ^ d1 + bc4 = t<<2 | t>>(64-2) + t = a[22] ^ d2 + bc0 = t<<62 | t>>(64-62) + t = a[23] ^ d3 + bc1 = t<<55 | t>>(64-55) + t = a[24] ^ d4 + bc2 = t<<39 | t>>(64-39) + a[20] = bc0 ^ (bc2 &^ bc1) + a[21] = bc1 ^ (bc3 &^ bc2) + a[22] = bc2 ^ (bc4 &^ bc3) + a[23] = bc3 ^ (bc0 &^ bc4) + a[24] = bc4 ^ (bc1 &^ bc0) + } +} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/rc.go b/vendor/github.com/cloudflare/circl/internal/sha3/rc.go new file mode 100644 index 000000000000..6a3df42f305f --- /dev/null +++ b/vendor/github.com/cloudflare/circl/internal/sha3/rc.go @@ -0,0 +1,29 @@ +package sha3 + +// RC stores the round constants for use in the ι step. +var RC = [24]uint64{ + 0x0000000000000001, + 0x0000000000008082, + 0x800000000000808A, + 0x8000000080008000, + 0x000000000000808B, + 0x0000000080000001, + 0x8000000080008081, + 0x8000000000008009, + 0x000000000000008A, + 0x0000000000000088, + 0x0000000080008009, + 0x000000008000000A, + 0x000000008000808B, + 0x800000000000008B, + 0x8000000000008089, + 0x8000000000008003, + 0x8000000000008002, + 0x8000000000000080, + 0x000000000000800A, + 0x800000008000000A, + 0x8000000080008081, + 0x8000000000008080, + 0x0000000080000001, + 0x8000000080008008, +} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/sha3.go b/vendor/github.com/cloudflare/circl/internal/sha3/sha3.go new file mode 100644 index 000000000000..b35cd006b03a --- /dev/null +++ b/vendor/github.com/cloudflare/circl/internal/sha3/sha3.go @@ -0,0 +1,195 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package sha3 + +// spongeDirection indicates the direction bytes are flowing through the sponge. +type spongeDirection int + +const ( + // spongeAbsorbing indicates that the sponge is absorbing input. + spongeAbsorbing spongeDirection = iota + // spongeSqueezing indicates that the sponge is being squeezed. + spongeSqueezing +) + +const ( + // maxRate is the maximum size of the internal buffer. SHAKE-256 + // currently needs the largest buffer. + maxRate = 168 +) + +func (d *State) buf() []byte { + return d.storage.asBytes()[d.bufo:d.bufe] +} + +type State struct { + // Generic sponge components. + a [25]uint64 // main state of the hash + rate int // the number of bytes of state to use + + bufo int // offset of buffer in storage + bufe int // end of buffer in storage + + // dsbyte contains the "domain separation" bits and the first bit of + // the padding. Sections 6.1 and 6.2 of [1] separate the outputs of the + // SHA-3 and SHAKE functions by appending bitstrings to the message. + // Using a little-endian bit-ordering convention, these are "01" for SHA-3 + // and "1111" for SHAKE, or 00000010b and 00001111b, respectively. Then the + // padding rule from section 5.1 is applied to pad the message to a multiple + // of the rate, which involves adding a "1" bit, zero or more "0" bits, and + // a final "1" bit. We merge the first "1" bit from the padding into dsbyte, + // giving 00000110b (0x06) and 00011111b (0x1f). + // [1] http://csrc.nist.gov/publications/drafts/fips-202/fips_202_draft.pdf + // "Draft FIPS 202: SHA-3 Standard: Permutation-Based Hash and + // Extendable-Output Functions (May 2014)" + dsbyte byte + + storage storageBuf + + // Specific to SHA-3 and SHAKE. + outputLen int // the default output size in bytes + state spongeDirection // whether the sponge is absorbing or squeezing +} + +// BlockSize returns the rate of sponge underlying this hash function. +func (d *State) BlockSize() int { return d.rate } + +// Size returns the output size of the hash function in bytes. +func (d *State) Size() int { return d.outputLen } + +// Reset clears the internal state by zeroing the sponge state and +// the byte buffer, and setting Sponge.state to absorbing. +func (d *State) Reset() { + // Zero the permutation's state. + for i := range d.a { + d.a[i] = 0 + } + d.state = spongeAbsorbing + d.bufo = 0 + d.bufe = 0 +} + +func (d *State) clone() *State { + ret := *d + return &ret +} + +// permute applies the KeccakF-1600 permutation. It handles +// any input-output buffering. +func (d *State) permute() { + switch d.state { + case spongeAbsorbing: + // If we're absorbing, we need to xor the input into the state + // before applying the permutation. + xorIn(d, d.buf()) + d.bufe = 0 + d.bufo = 0 + KeccakF1600(&d.a) + case spongeSqueezing: + // If we're squeezing, we need to apply the permutation before + // copying more output. + KeccakF1600(&d.a) + d.bufe = d.rate + d.bufo = 0 + copyOut(d, d.buf()) + } +} + +// pads appends the domain separation bits in dsbyte, applies +// the multi-bitrate 10..1 padding rule, and permutes the state. +func (d *State) padAndPermute(dsbyte byte) { + // Pad with this instance's domain-separator bits. We know that there's + // at least one byte of space in d.buf() because, if it were full, + // permute would have been called to empty it. dsbyte also contains the + // first one bit for the padding. See the comment in the state struct. + zerosStart := d.bufe + 1 + d.bufe = d.rate + buf := d.buf() + buf[zerosStart-1] = dsbyte + for i := zerosStart; i < d.rate; i++ { + buf[i] = 0 + } + // This adds the final one bit for the padding. Because of the way that + // bits are numbered from the LSB upwards, the final bit is the MSB of + // the last byte. + buf[d.rate-1] ^= 0x80 + // Apply the permutation + d.permute() + d.state = spongeSqueezing + d.bufe = d.rate + copyOut(d, buf) +} + +// Write absorbs more data into the hash's state. It produces an error +// if more data is written to the ShakeHash after writing +func (d *State) Write(p []byte) (written int, err error) { + if d.state != spongeAbsorbing { + panic("sha3: write to sponge after read") + } + written = len(p) + + for len(p) > 0 { + bufl := d.bufe - d.bufo + if bufl == 0 && len(p) >= d.rate { + // The fast path; absorb a full "rate" bytes of input and apply the permutation. + xorIn(d, p[:d.rate]) + p = p[d.rate:] + KeccakF1600(&d.a) + } else { + // The slow path; buffer the input until we can fill the sponge, and then xor it in. + todo := d.rate - bufl + if todo > len(p) { + todo = len(p) + } + d.bufe += todo + buf := d.buf() + copy(buf[bufl:], p[:todo]) + p = p[todo:] + + // If the sponge is full, apply the permutation. + if d.bufe == d.rate { + d.permute() + } + } + } + + return written, nil +} + +// Read squeezes an arbitrary number of bytes from the sponge. +func (d *State) Read(out []byte) (n int, err error) { + // If we're still absorbing, pad and apply the permutation. + if d.state == spongeAbsorbing { + d.padAndPermute(d.dsbyte) + } + + n = len(out) + + // Now, do the squeezing. + for len(out) > 0 { + buf := d.buf() + n := copy(out, buf) + d.bufo += n + out = out[n:] + + // Apply the permutation if we've squeezed the sponge dry. + if d.bufo == d.bufe { + d.permute() + } + } + + return +} + +// Sum applies padding to the hash state and then squeezes out the desired +// number of output bytes. +func (d *State) Sum(in []byte) []byte { + // Make a copy of the original hash so that caller can keep writing + // and summing. + dup := d.clone() + hash := make([]byte, dup.outputLen) + _, _ = dup.Read(hash) + return append(in, hash...) +} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/sha3_s390x.s b/vendor/github.com/cloudflare/circl/internal/sha3/sha3_s390x.s new file mode 100644 index 000000000000..8a4458f63f99 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/internal/sha3/sha3_s390x.s @@ -0,0 +1,33 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !gccgo,!appengine + +#include "textflag.h" + +// func kimd(function code, chain *[200]byte, src []byte) +TEXT ·kimd(SB), NOFRAME|NOSPLIT, $0-40 + MOVD function+0(FP), R0 + MOVD chain+8(FP), R1 + LMG src+16(FP), R2, R3 // R2=base, R3=len + +continue: + WORD $0xB93E0002 // KIMD --, R2 + BVS continue // continue if interrupted + MOVD $0, R0 // reset R0 for pre-go1.8 compilers + RET + +// func klmd(function code, chain *[200]byte, dst, src []byte) +TEXT ·klmd(SB), NOFRAME|NOSPLIT, $0-64 + // TODO: SHAKE support + MOVD function+0(FP), R0 + MOVD chain+8(FP), R1 + LMG dst+16(FP), R2, R3 // R2=base, R3=len + LMG src+40(FP), R4, R5 // R4=base, R5=len + +continue: + WORD $0xB93F0024 // KLMD R2, R4 + BVS continue // continue if interrupted + MOVD $0, R0 // reset R0 for pre-go1.8 compilers + RET diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/shake.go b/vendor/github.com/cloudflare/circl/internal/sha3/shake.go new file mode 100644 index 000000000000..b92c5b7d785a --- /dev/null +++ b/vendor/github.com/cloudflare/circl/internal/sha3/shake.go @@ -0,0 +1,79 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package sha3 + +// This file defines the ShakeHash interface, and provides +// functions for creating SHAKE and cSHAKE instances, as well as utility +// functions for hashing bytes to arbitrary-length output. +// +// +// SHAKE implementation is based on FIPS PUB 202 [1] +// cSHAKE implementations is based on NIST SP 800-185 [2] +// +// [1] https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf +// [2] https://doi.org/10.6028/NIST.SP.800-185 + +import ( + "io" +) + +// ShakeHash defines the interface to hash functions that +// support arbitrary-length output. +type ShakeHash interface { + // Write absorbs more data into the hash's state. It panics if input is + // written to it after output has been read from it. + io.Writer + + // Read reads more output from the hash; reading affects the hash's + // state. (ShakeHash.Read is thus very different from Hash.Sum) + // It never returns an error. + io.Reader + + // Clone returns a copy of the ShakeHash in its current state. + Clone() ShakeHash + + // Reset resets the ShakeHash to its initial state. + Reset() +} + +// Consts for configuring initial SHA-3 state +const ( + dsbyteShake = 0x1f + rate128 = 168 + rate256 = 136 +) + +// Clone returns copy of SHAKE context within its current state. +func (d *State) Clone() ShakeHash { + return d.clone() +} + +// NewShake128 creates a new SHAKE128 variable-output-length ShakeHash. +// Its generic security strength is 128 bits against all attacks if at +// least 32 bytes of its output are used. +func NewShake128() State { + return State{rate: rate128, dsbyte: dsbyteShake} +} + +// NewShake256 creates a new SHAKE256 variable-output-length ShakeHash. +// Its generic security strength is 256 bits against all attacks if +// at least 64 bytes of its output are used. +func NewShake256() State { + return State{rate: rate256, dsbyte: dsbyteShake} +} + +// ShakeSum128 writes an arbitrary-length digest of data into hash. +func ShakeSum128(hash, data []byte) { + h := NewShake128() + _, _ = h.Write(data) + _, _ = h.Read(hash) +} + +// ShakeSum256 writes an arbitrary-length digest of data into hash. +func ShakeSum256(hash, data []byte) { + h := NewShake256() + _, _ = h.Write(data) + _, _ = h.Read(hash) +} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/xor.go b/vendor/github.com/cloudflare/circl/internal/sha3/xor.go new file mode 100644 index 000000000000..1e21337454f0 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/internal/sha3/xor.go @@ -0,0 +1,15 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (!amd64 && !386 && !ppc64le) || appengine +// +build !amd64,!386,!ppc64le appengine + +package sha3 + +// A storageBuf is an aligned array of maxRate bytes. +type storageBuf [maxRate]byte + +func (b *storageBuf) asBytes() *[maxRate]byte { + return (*[maxRate]byte)(b) +} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/xor_generic.go b/vendor/github.com/cloudflare/circl/internal/sha3/xor_generic.go new file mode 100644 index 000000000000..2b0c66179060 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/internal/sha3/xor_generic.go @@ -0,0 +1,33 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (!amd64 || appengine) && (!386 || appengine) && (!ppc64le || appengine) +// +build !amd64 appengine +// +build !386 appengine +// +build !ppc64le appengine + +package sha3 + +import "encoding/binary" + +// xorIn xors the bytes in buf into the state; it +// makes no non-portable assumptions about memory layout +// or alignment. +func xorIn(d *State, buf []byte) { + n := len(buf) / 8 + + for i := 0; i < n; i++ { + a := binary.LittleEndian.Uint64(buf) + d.a[i] ^= a + buf = buf[8:] + } +} + +// copyOut copies ulint64s to a byte buffer. +func copyOut(d *State, b []byte) { + for i := 0; len(b) >= 8; i++ { + binary.LittleEndian.PutUint64(b, d.a[i]) + b = b[8:] + } +} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/xor_unaligned.go b/vendor/github.com/cloudflare/circl/internal/sha3/xor_unaligned.go new file mode 100644 index 000000000000..052fc8d32d2c --- /dev/null +++ b/vendor/github.com/cloudflare/circl/internal/sha3/xor_unaligned.go @@ -0,0 +1,61 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (amd64 || 386 || ppc64le) && !appengine +// +build amd64 386 ppc64le +// +build !appengine + +package sha3 + +import "unsafe" + +// A storageBuf is an aligned array of maxRate bytes. +type storageBuf [maxRate / 8]uint64 + +func (b *storageBuf) asBytes() *[maxRate]byte { + return (*[maxRate]byte)(unsafe.Pointer(b)) +} + +// xorInuses unaligned reads and writes to update d.a to contain d.a +// XOR buf. +func xorIn(d *State, buf []byte) { + n := len(buf) + bw := (*[maxRate / 8]uint64)(unsafe.Pointer(&buf[0]))[: n/8 : n/8] + if n >= 72 { + d.a[0] ^= bw[0] + d.a[1] ^= bw[1] + d.a[2] ^= bw[2] + d.a[3] ^= bw[3] + d.a[4] ^= bw[4] + d.a[5] ^= bw[5] + d.a[6] ^= bw[6] + d.a[7] ^= bw[7] + d.a[8] ^= bw[8] + } + if n >= 104 { + d.a[9] ^= bw[9] + d.a[10] ^= bw[10] + d.a[11] ^= bw[11] + d.a[12] ^= bw[12] + } + if n >= 136 { + d.a[13] ^= bw[13] + d.a[14] ^= bw[14] + d.a[15] ^= bw[15] + d.a[16] ^= bw[16] + } + if n >= 144 { + d.a[17] ^= bw[17] + } + if n >= 168 { + d.a[18] ^= bw[18] + d.a[19] ^= bw[19] + d.a[20] ^= bw[20] + } +} + +func copyOut(d *State, buf []byte) { + ab := (*[maxRate]uint8)(unsafe.Pointer(&d.a[0])) + copy(buf, ab[:]) +} diff --git a/vendor/github.com/cloudflare/circl/math/fp25519/fp.go b/vendor/github.com/cloudflare/circl/math/fp25519/fp.go new file mode 100644 index 000000000000..57a50ff5e9bd --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/fp25519/fp.go @@ -0,0 +1,205 @@ +// Package fp25519 provides prime field arithmetic over GF(2^255-19). +package fp25519 + +import ( + "errors" + + "github.com/cloudflare/circl/internal/conv" +) + +// Size in bytes of an element. +const Size = 32 + +// Elt is a prime field element. +type Elt [Size]byte + +func (e Elt) String() string { return conv.BytesLe2Hex(e[:]) } + +// p is the prime modulus 2^255-19. +var p = Elt{ + 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, +} + +// P returns the prime modulus 2^255-19. +func P() Elt { return p } + +// ToBytes stores in b the little-endian byte representation of x. +func ToBytes(b []byte, x *Elt) error { + if len(b) != Size { + return errors.New("wrong size") + } + Modp(x) + copy(b, x[:]) + return nil +} + +// IsZero returns true if x is equal to 0. +func IsZero(x *Elt) bool { Modp(x); return *x == Elt{} } + +// SetOne assigns x=1. +func SetOne(x *Elt) { *x = Elt{}; x[0] = 1 } + +// Neg calculates z = -x. +func Neg(z, x *Elt) { Sub(z, &p, x) } + +// InvSqrt calculates z = sqrt(x/y) iff x/y is a quadratic-residue, which is +// indicated by returning isQR = true. Otherwise, when x/y is a quadratic +// non-residue, z will have an undetermined value and isQR = false. +func InvSqrt(z, x, y *Elt) (isQR bool) { + sqrtMinusOne := &Elt{ + 0xb0, 0xa0, 0x0e, 0x4a, 0x27, 0x1b, 0xee, 0xc4, + 0x78, 0xe4, 0x2f, 0xad, 0x06, 0x18, 0x43, 0x2f, + 0xa7, 0xd7, 0xfb, 0x3d, 0x99, 0x00, 0x4d, 0x2b, + 0x0b, 0xdf, 0xc1, 0x4f, 0x80, 0x24, 0x83, 0x2b, + } + t0, t1, t2, t3 := &Elt{}, &Elt{}, &Elt{}, &Elt{} + + Mul(t0, x, y) // t0 = u*v + Sqr(t1, y) // t1 = v^2 + Mul(t2, t0, t1) // t2 = u*v^3 + Sqr(t0, t1) // t0 = v^4 + Mul(t1, t0, t2) // t1 = u*v^7 + + var Tab [4]*Elt + Tab[0] = &Elt{} + Tab[1] = &Elt{} + Tab[2] = t3 + Tab[3] = t1 + + *Tab[0] = *t1 + Sqr(Tab[0], Tab[0]) + Sqr(Tab[1], Tab[0]) + Sqr(Tab[1], Tab[1]) + Mul(Tab[1], Tab[1], Tab[3]) + Mul(Tab[0], Tab[0], Tab[1]) + Sqr(Tab[0], Tab[0]) + Mul(Tab[0], Tab[0], Tab[1]) + Sqr(Tab[1], Tab[0]) + for i := 0; i < 4; i++ { + Sqr(Tab[1], Tab[1]) + } + Mul(Tab[1], Tab[1], Tab[0]) + Sqr(Tab[2], Tab[1]) + for i := 0; i < 4; i++ { + Sqr(Tab[2], Tab[2]) + } + Mul(Tab[2], Tab[2], Tab[0]) + Sqr(Tab[1], Tab[2]) + for i := 0; i < 14; i++ { + Sqr(Tab[1], Tab[1]) + } + Mul(Tab[1], Tab[1], Tab[2]) + Sqr(Tab[2], Tab[1]) + for i := 0; i < 29; i++ { + Sqr(Tab[2], Tab[2]) + } + Mul(Tab[2], Tab[2], Tab[1]) + Sqr(Tab[1], Tab[2]) + for i := 0; i < 59; i++ { + Sqr(Tab[1], Tab[1]) + } + Mul(Tab[1], Tab[1], Tab[2]) + for i := 0; i < 5; i++ { + Sqr(Tab[1], Tab[1]) + } + Mul(Tab[1], Tab[1], Tab[0]) + Sqr(Tab[2], Tab[1]) + for i := 0; i < 124; i++ { + Sqr(Tab[2], Tab[2]) + } + Mul(Tab[2], Tab[2], Tab[1]) + Sqr(Tab[2], Tab[2]) + Sqr(Tab[2], Tab[2]) + Mul(Tab[2], Tab[2], Tab[3]) + + Mul(z, t3, t2) // z = xy^(p+3)/8 = xy^3*(xy^7)^(p-5)/8 + // Checking whether y z^2 == x + Sqr(t0, z) // t0 = z^2 + Mul(t0, t0, y) // t0 = yz^2 + Sub(t1, t0, x) // t1 = t0-u + Add(t2, t0, x) // t2 = t0+u + if IsZero(t1) { + return true + } else if IsZero(t2) { + Mul(z, z, sqrtMinusOne) // z = z*sqrt(-1) + return true + } else { + return false + } +} + +// Inv calculates z = 1/x mod p. +func Inv(z, x *Elt) { + x0, x1, x2 := &Elt{}, &Elt{}, &Elt{} + Sqr(x1, x) + Sqr(x0, x1) + Sqr(x0, x0) + Mul(x0, x0, x) + Mul(z, x0, x1) + Sqr(x1, z) + Mul(x0, x0, x1) + Sqr(x1, x0) + for i := 0; i < 4; i++ { + Sqr(x1, x1) + } + Mul(x0, x0, x1) + Sqr(x1, x0) + for i := 0; i < 9; i++ { + Sqr(x1, x1) + } + Mul(x1, x1, x0) + Sqr(x2, x1) + for i := 0; i < 19; i++ { + Sqr(x2, x2) + } + Mul(x2, x2, x1) + for i := 0; i < 10; i++ { + Sqr(x2, x2) + } + Mul(x2, x2, x0) + Sqr(x0, x2) + for i := 0; i < 49; i++ { + Sqr(x0, x0) + } + Mul(x0, x0, x2) + Sqr(x1, x0) + for i := 0; i < 99; i++ { + Sqr(x1, x1) + } + Mul(x1, x1, x0) + for i := 0; i < 50; i++ { + Sqr(x1, x1) + } + Mul(x1, x1, x2) + for i := 0; i < 5; i++ { + Sqr(x1, x1) + } + Mul(z, z, x1) +} + +// Cmov assigns y to x if n is 1. +func Cmov(x, y *Elt, n uint) { cmov(x, y, n) } + +// Cswap interchanges x and y if n is 1. +func Cswap(x, y *Elt, n uint) { cswap(x, y, n) } + +// Add calculates z = x+y mod p. +func Add(z, x, y *Elt) { add(z, x, y) } + +// Sub calculates z = x-y mod p. +func Sub(z, x, y *Elt) { sub(z, x, y) } + +// AddSub calculates (x,y) = (x+y mod p, x-y mod p). +func AddSub(x, y *Elt) { addsub(x, y) } + +// Mul calculates z = x*y mod p. +func Mul(z, x, y *Elt) { mul(z, x, y) } + +// Sqr calculates z = x^2 mod p. +func Sqr(z, x *Elt) { sqr(z, x) } + +// Modp ensures that z is between [0,p-1]. +func Modp(z *Elt) { modp(z) } diff --git a/vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.go b/vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.go new file mode 100644 index 000000000000..057f0d2803fa --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.go @@ -0,0 +1,45 @@ +//go:build amd64 && !purego +// +build amd64,!purego + +package fp25519 + +import ( + "golang.org/x/sys/cpu" +) + +var hasBmi2Adx = cpu.X86.HasBMI2 && cpu.X86.HasADX + +var _ = hasBmi2Adx + +func cmov(x, y *Elt, n uint) { cmovAmd64(x, y, n) } +func cswap(x, y *Elt, n uint) { cswapAmd64(x, y, n) } +func add(z, x, y *Elt) { addAmd64(z, x, y) } +func sub(z, x, y *Elt) { subAmd64(z, x, y) } +func addsub(x, y *Elt) { addsubAmd64(x, y) } +func mul(z, x, y *Elt) { mulAmd64(z, x, y) } +func sqr(z, x *Elt) { sqrAmd64(z, x) } +func modp(z *Elt) { modpAmd64(z) } + +//go:noescape +func cmovAmd64(x, y *Elt, n uint) + +//go:noescape +func cswapAmd64(x, y *Elt, n uint) + +//go:noescape +func addAmd64(z, x, y *Elt) + +//go:noescape +func subAmd64(z, x, y *Elt) + +//go:noescape +func addsubAmd64(x, y *Elt) + +//go:noescape +func mulAmd64(z, x, y *Elt) + +//go:noescape +func sqrAmd64(z, x *Elt) + +//go:noescape +func modpAmd64(z *Elt) diff --git a/vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.h b/vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.h new file mode 100644 index 000000000000..b884b584ab36 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.h @@ -0,0 +1,351 @@ +// This code was imported from https://github.com/armfazh/rfc7748_precomputed + +// CHECK_BMI2ADX triggers bmi2adx if supported, +// otherwise it fallbacks to legacy code. +#define CHECK_BMI2ADX(label, legacy, bmi2adx) \ + CMPB ·hasBmi2Adx(SB), $0 \ + JE label \ + bmi2adx \ + RET \ + label: \ + legacy \ + RET + +// cselect is a conditional move +// if b=1: it copies y into x; +// if b=0: x remains with the same value; +// if b<> 0,1: undefined. +// Uses: AX, DX, FLAGS +// Instr: x86_64, cmov +#define cselect(x,y,b) \ + TESTQ b, b \ + MOVQ 0+x, AX; MOVQ 0+y, DX; CMOVQNE DX, AX; MOVQ AX, 0+x; \ + MOVQ 8+x, AX; MOVQ 8+y, DX; CMOVQNE DX, AX; MOVQ AX, 8+x; \ + MOVQ 16+x, AX; MOVQ 16+y, DX; CMOVQNE DX, AX; MOVQ AX, 16+x; \ + MOVQ 24+x, AX; MOVQ 24+y, DX; CMOVQNE DX, AX; MOVQ AX, 24+x; + +// cswap is a conditional swap +// if b=1: x,y <- y,x; +// if b=0: x,y remain with the same values; +// if b<> 0,1: undefined. +// Uses: AX, DX, R8, FLAGS +// Instr: x86_64, cmov +#define cswap(x,y,b) \ + TESTQ b, b \ + MOVQ 0+x, AX; MOVQ AX, R8; MOVQ 0+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 0+x; MOVQ DX, 0+y; \ + MOVQ 8+x, AX; MOVQ AX, R8; MOVQ 8+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 8+x; MOVQ DX, 8+y; \ + MOVQ 16+x, AX; MOVQ AX, R8; MOVQ 16+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 16+x; MOVQ DX, 16+y; \ + MOVQ 24+x, AX; MOVQ AX, R8; MOVQ 24+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 24+x; MOVQ DX, 24+y; + +// additionLeg adds x and y and stores in z +// Uses: AX, DX, R8-R11, FLAGS +// Instr: x86_64, cmov +#define additionLeg(z,x,y) \ + MOVL $38, AX; \ + MOVL $0, DX; \ + MOVQ 0+x, R8; ADDQ 0+y, R8; \ + MOVQ 8+x, R9; ADCQ 8+y, R9; \ + MOVQ 16+x, R10; ADCQ 16+y, R10; \ + MOVQ 24+x, R11; ADCQ 24+y, R11; \ + CMOVQCS AX, DX; \ + ADDQ DX, R8; \ + ADCQ $0, R9; MOVQ R9, 8+z; \ + ADCQ $0, R10; MOVQ R10, 16+z; \ + ADCQ $0, R11; MOVQ R11, 24+z; \ + MOVL $0, DX; \ + CMOVQCS AX, DX; \ + ADDQ DX, R8; MOVQ R8, 0+z; + +// additionAdx adds x and y and stores in z +// Uses: AX, DX, R8-R11, FLAGS +// Instr: x86_64, cmov, adx +#define additionAdx(z,x,y) \ + MOVL $38, AX; \ + XORL DX, DX; \ + MOVQ 0+x, R8; ADCXQ 0+y, R8; \ + MOVQ 8+x, R9; ADCXQ 8+y, R9; \ + MOVQ 16+x, R10; ADCXQ 16+y, R10; \ + MOVQ 24+x, R11; ADCXQ 24+y, R11; \ + CMOVQCS AX, DX ; \ + XORL AX, AX; \ + ADCXQ DX, R8; \ + ADCXQ AX, R9; MOVQ R9, 8+z; \ + ADCXQ AX, R10; MOVQ R10, 16+z; \ + ADCXQ AX, R11; MOVQ R11, 24+z; \ + MOVL $38, DX; \ + CMOVQCS DX, AX; \ + ADDQ AX, R8; MOVQ R8, 0+z; + +// subtraction subtracts y from x and stores in z +// Uses: AX, DX, R8-R11, FLAGS +// Instr: x86_64, cmov +#define subtraction(z,x,y) \ + MOVL $38, AX; \ + MOVQ 0+x, R8; SUBQ 0+y, R8; \ + MOVQ 8+x, R9; SBBQ 8+y, R9; \ + MOVQ 16+x, R10; SBBQ 16+y, R10; \ + MOVQ 24+x, R11; SBBQ 24+y, R11; \ + MOVL $0, DX; \ + CMOVQCS AX, DX; \ + SUBQ DX, R8; \ + SBBQ $0, R9; MOVQ R9, 8+z; \ + SBBQ $0, R10; MOVQ R10, 16+z; \ + SBBQ $0, R11; MOVQ R11, 24+z; \ + MOVL $0, DX; \ + CMOVQCS AX, DX; \ + SUBQ DX, R8; MOVQ R8, 0+z; + +// integerMulAdx multiplies x and y and stores in z +// Uses: AX, DX, R8-R15, FLAGS +// Instr: x86_64, bmi2, adx +#define integerMulAdx(z,x,y) \ + MOVL $0,R15; \ + MOVQ 0+y, DX; XORL AX, AX; \ + MULXQ 0+x, AX, R8; MOVQ AX, 0+z; \ + MULXQ 8+x, AX, R9; ADCXQ AX, R8; \ + MULXQ 16+x, AX, R10; ADCXQ AX, R9; \ + MULXQ 24+x, AX, R11; ADCXQ AX, R10; \ + MOVL $0, AX;;;;;;;;; ADCXQ AX, R11; \ + MOVQ 8+y, DX; XORL AX, AX; \ + MULXQ 0+x, AX, R12; ADCXQ R8, AX; MOVQ AX, 8+z; \ + MULXQ 8+x, AX, R13; ADCXQ R9, R12; ADOXQ AX, R12; \ + MULXQ 16+x, AX, R14; ADCXQ R10, R13; ADOXQ AX, R13; \ + MULXQ 24+x, AX, R15; ADCXQ R11, R14; ADOXQ AX, R14; \ + MOVL $0, AX;;;;;;;;; ADCXQ AX, R15; ADOXQ AX, R15; \ + MOVQ 16+y, DX; XORL AX, AX; \ + MULXQ 0+x, AX, R8; ADCXQ R12, AX; MOVQ AX, 16+z; \ + MULXQ 8+x, AX, R9; ADCXQ R13, R8; ADOXQ AX, R8; \ + MULXQ 16+x, AX, R10; ADCXQ R14, R9; ADOXQ AX, R9; \ + MULXQ 24+x, AX, R11; ADCXQ R15, R10; ADOXQ AX, R10; \ + MOVL $0, AX;;;;;;;;; ADCXQ AX, R11; ADOXQ AX, R11; \ + MOVQ 24+y, DX; XORL AX, AX; \ + MULXQ 0+x, AX, R12; ADCXQ R8, AX; MOVQ AX, 24+z; \ + MULXQ 8+x, AX, R13; ADCXQ R9, R12; ADOXQ AX, R12; MOVQ R12, 32+z; \ + MULXQ 16+x, AX, R14; ADCXQ R10, R13; ADOXQ AX, R13; MOVQ R13, 40+z; \ + MULXQ 24+x, AX, R15; ADCXQ R11, R14; ADOXQ AX, R14; MOVQ R14, 48+z; \ + MOVL $0, AX;;;;;;;;; ADCXQ AX, R15; ADOXQ AX, R15; MOVQ R15, 56+z; + +// integerMulLeg multiplies x and y and stores in z +// Uses: AX, DX, R8-R15, FLAGS +// Instr: x86_64 +#define integerMulLeg(z,x,y) \ + MOVQ 0+y, R8; \ + MOVQ 0+x, AX; MULQ R8; MOVQ AX, 0+z; MOVQ DX, R15; \ + MOVQ 8+x, AX; MULQ R8; MOVQ AX, R13; MOVQ DX, R10; \ + MOVQ 16+x, AX; MULQ R8; MOVQ AX, R14; MOVQ DX, R11; \ + MOVQ 24+x, AX; MULQ R8; \ + ADDQ R13, R15; \ + ADCQ R14, R10; MOVQ R10, 16+z; \ + ADCQ AX, R11; MOVQ R11, 24+z; \ + ADCQ $0, DX; MOVQ DX, 32+z; \ + MOVQ 8+y, R8; \ + MOVQ 0+x, AX; MULQ R8; MOVQ AX, R12; MOVQ DX, R9; \ + MOVQ 8+x, AX; MULQ R8; MOVQ AX, R13; MOVQ DX, R10; \ + MOVQ 16+x, AX; MULQ R8; MOVQ AX, R14; MOVQ DX, R11; \ + MOVQ 24+x, AX; MULQ R8; \ + ADDQ R12, R15; MOVQ R15, 8+z; \ + ADCQ R13, R9; \ + ADCQ R14, R10; \ + ADCQ AX, R11; \ + ADCQ $0, DX; \ + ADCQ 16+z, R9; MOVQ R9, R15; \ + ADCQ 24+z, R10; MOVQ R10, 24+z; \ + ADCQ 32+z, R11; MOVQ R11, 32+z; \ + ADCQ $0, DX; MOVQ DX, 40+z; \ + MOVQ 16+y, R8; \ + MOVQ 0+x, AX; MULQ R8; MOVQ AX, R12; MOVQ DX, R9; \ + MOVQ 8+x, AX; MULQ R8; MOVQ AX, R13; MOVQ DX, R10; \ + MOVQ 16+x, AX; MULQ R8; MOVQ AX, R14; MOVQ DX, R11; \ + MOVQ 24+x, AX; MULQ R8; \ + ADDQ R12, R15; MOVQ R15, 16+z; \ + ADCQ R13, R9; \ + ADCQ R14, R10; \ + ADCQ AX, R11; \ + ADCQ $0, DX; \ + ADCQ 24+z, R9; MOVQ R9, R15; \ + ADCQ 32+z, R10; MOVQ R10, 32+z; \ + ADCQ 40+z, R11; MOVQ R11, 40+z; \ + ADCQ $0, DX; MOVQ DX, 48+z; \ + MOVQ 24+y, R8; \ + MOVQ 0+x, AX; MULQ R8; MOVQ AX, R12; MOVQ DX, R9; \ + MOVQ 8+x, AX; MULQ R8; MOVQ AX, R13; MOVQ DX, R10; \ + MOVQ 16+x, AX; MULQ R8; MOVQ AX, R14; MOVQ DX, R11; \ + MOVQ 24+x, AX; MULQ R8; \ + ADDQ R12, R15; MOVQ R15, 24+z; \ + ADCQ R13, R9; \ + ADCQ R14, R10; \ + ADCQ AX, R11; \ + ADCQ $0, DX; \ + ADCQ 32+z, R9; MOVQ R9, 32+z; \ + ADCQ 40+z, R10; MOVQ R10, 40+z; \ + ADCQ 48+z, R11; MOVQ R11, 48+z; \ + ADCQ $0, DX; MOVQ DX, 56+z; + +// integerSqrLeg squares x and stores in z +// Uses: AX, CX, DX, R8-R15, FLAGS +// Instr: x86_64 +#define integerSqrLeg(z,x) \ + MOVQ 0+x, R8; \ + MOVQ 8+x, AX; MULQ R8; MOVQ AX, R9; MOVQ DX, R10; /* A[0]*A[1] */ \ + MOVQ 16+x, AX; MULQ R8; MOVQ AX, R14; MOVQ DX, R11; /* A[0]*A[2] */ \ + MOVQ 24+x, AX; MULQ R8; MOVQ AX, R15; MOVQ DX, R12; /* A[0]*A[3] */ \ + MOVQ 24+x, R8; \ + MOVQ 8+x, AX; MULQ R8; MOVQ AX, CX; MOVQ DX, R13; /* A[3]*A[1] */ \ + MOVQ 16+x, AX; MULQ R8; /* A[3]*A[2] */ \ + \ + ADDQ R14, R10;\ + ADCQ R15, R11; MOVL $0, R15;\ + ADCQ CX, R12;\ + ADCQ AX, R13;\ + ADCQ $0, DX; MOVQ DX, R14;\ + MOVQ 8+x, AX; MULQ 16+x;\ + \ + ADDQ AX, R11;\ + ADCQ DX, R12;\ + ADCQ $0, R13;\ + ADCQ $0, R14;\ + ADCQ $0, R15;\ + \ + SHLQ $1, R14, R15; MOVQ R15, 56+z;\ + SHLQ $1, R13, R14; MOVQ R14, 48+z;\ + SHLQ $1, R12, R13; MOVQ R13, 40+z;\ + SHLQ $1, R11, R12; MOVQ R12, 32+z;\ + SHLQ $1, R10, R11; MOVQ R11, 24+z;\ + SHLQ $1, R9, R10; MOVQ R10, 16+z;\ + SHLQ $1, R9; MOVQ R9, 8+z;\ + \ + MOVQ 0+x,AX; MULQ AX; MOVQ AX, 0+z; MOVQ DX, R9;\ + MOVQ 8+x,AX; MULQ AX; MOVQ AX, R10; MOVQ DX, R11;\ + MOVQ 16+x,AX; MULQ AX; MOVQ AX, R12; MOVQ DX, R13;\ + MOVQ 24+x,AX; MULQ AX; MOVQ AX, R14; MOVQ DX, R15;\ + \ + ADDQ 8+z, R9; MOVQ R9, 8+z;\ + ADCQ 16+z, R10; MOVQ R10, 16+z;\ + ADCQ 24+z, R11; MOVQ R11, 24+z;\ + ADCQ 32+z, R12; MOVQ R12, 32+z;\ + ADCQ 40+z, R13; MOVQ R13, 40+z;\ + ADCQ 48+z, R14; MOVQ R14, 48+z;\ + ADCQ 56+z, R15; MOVQ R15, 56+z; + +// integerSqrAdx squares x and stores in z +// Uses: AX, CX, DX, R8-R15, FLAGS +// Instr: x86_64, bmi2, adx +#define integerSqrAdx(z,x) \ + MOVQ 0+x, DX; /* A[0] */ \ + MULXQ 8+x, R8, R14; /* A[1]*A[0] */ XORL R15, R15; \ + MULXQ 16+x, R9, R10; /* A[2]*A[0] */ ADCXQ R14, R9; \ + MULXQ 24+x, AX, CX; /* A[3]*A[0] */ ADCXQ AX, R10; \ + MOVQ 24+x, DX; /* A[3] */ \ + MULXQ 8+x, R11, R12; /* A[1]*A[3] */ ADCXQ CX, R11; \ + MULXQ 16+x, AX, R13; /* A[2]*A[3] */ ADCXQ AX, R12; \ + MOVQ 8+x, DX; /* A[1] */ ADCXQ R15, R13; \ + MULXQ 16+x, AX, CX; /* A[2]*A[1] */ MOVL $0, R14; \ + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ADCXQ R15, R14; \ + XORL R15, R15; \ + ADOXQ AX, R10; ADCXQ R8, R8; \ + ADOXQ CX, R11; ADCXQ R9, R9; \ + ADOXQ R15, R12; ADCXQ R10, R10; \ + ADOXQ R15, R13; ADCXQ R11, R11; \ + ADOXQ R15, R14; ADCXQ R12, R12; \ + ;;;;;;;;;;;;;;; ADCXQ R13, R13; \ + ;;;;;;;;;;;;;;; ADCXQ R14, R14; \ + MOVQ 0+x, DX; MULXQ DX, AX, CX; /* A[0]^2 */ \ + ;;;;;;;;;;;;;;; MOVQ AX, 0+z; \ + ADDQ CX, R8; MOVQ R8, 8+z; \ + MOVQ 8+x, DX; MULXQ DX, AX, CX; /* A[1]^2 */ \ + ADCQ AX, R9; MOVQ R9, 16+z; \ + ADCQ CX, R10; MOVQ R10, 24+z; \ + MOVQ 16+x, DX; MULXQ DX, AX, CX; /* A[2]^2 */ \ + ADCQ AX, R11; MOVQ R11, 32+z; \ + ADCQ CX, R12; MOVQ R12, 40+z; \ + MOVQ 24+x, DX; MULXQ DX, AX, CX; /* A[3]^2 */ \ + ADCQ AX, R13; MOVQ R13, 48+z; \ + ADCQ CX, R14; MOVQ R14, 56+z; + +// reduceFromDouble finds z congruent to x modulo p such that 0> 63) + // PUT BIT 255 IN CARRY FLAG AND CLEAR + x3 &^= 1 << 63 + + x0, c0 := bits.Add64(x0, cx, 0) + x1, c1 := bits.Add64(x1, 0, c0) + x2, c2 := bits.Add64(x2, 0, c1) + x3, _ = bits.Add64(x3, 0, c2) + + // TEST FOR BIT 255 AGAIN; ONLY TRIGGERED ON OVERFLOW MODULO 2^255-19 + // cx = C[255] ? 0 : 19 + cx = uint64(19) &^ (-(x3 >> 63)) + // CLEAR BIT 255 + x3 &^= 1 << 63 + + x0, c0 = bits.Sub64(x0, cx, 0) + x1, c1 = bits.Sub64(x1, 0, c0) + x2, c2 = bits.Sub64(x2, 0, c1) + x3, _ = bits.Sub64(x3, 0, c2) + + binary.LittleEndian.PutUint64(x[0*8:1*8], x0) + binary.LittleEndian.PutUint64(x[1*8:2*8], x1) + binary.LittleEndian.PutUint64(x[2*8:3*8], x2) + binary.LittleEndian.PutUint64(x[3*8:4*8], x3) +} + +func red64(z *Elt, x0, x1, x2, x3, x4, x5, x6, x7 uint64) { + h0, l0 := bits.Mul64(x4, 38) + h1, l1 := bits.Mul64(x5, 38) + h2, l2 := bits.Mul64(x6, 38) + h3, l3 := bits.Mul64(x7, 38) + + l1, c0 := bits.Add64(h0, l1, 0) + l2, c1 := bits.Add64(h1, l2, c0) + l3, c2 := bits.Add64(h2, l3, c1) + l4, _ := bits.Add64(h3, 0, c2) + + l0, c0 = bits.Add64(l0, x0, 0) + l1, c1 = bits.Add64(l1, x1, c0) + l2, c2 = bits.Add64(l2, x2, c1) + l3, c3 := bits.Add64(l3, x3, c2) + l4, _ = bits.Add64(l4, 0, c3) + + _, l4 = bits.Mul64(l4, 38) + l0, c0 = bits.Add64(l0, l4, 0) + z1, c1 := bits.Add64(l1, 0, c0) + z2, c2 := bits.Add64(l2, 0, c1) + z3, c3 := bits.Add64(l3, 0, c2) + z0, _ := bits.Add64(l0, (-c3)&38, 0) + + binary.LittleEndian.PutUint64(z[0*8:1*8], z0) + binary.LittleEndian.PutUint64(z[1*8:2*8], z1) + binary.LittleEndian.PutUint64(z[2*8:3*8], z2) + binary.LittleEndian.PutUint64(z[3*8:4*8], z3) +} diff --git a/vendor/github.com/cloudflare/circl/math/fp25519/fp_noasm.go b/vendor/github.com/cloudflare/circl/math/fp25519/fp_noasm.go new file mode 100644 index 000000000000..26ca4d01b7ea --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/fp25519/fp_noasm.go @@ -0,0 +1,13 @@ +//go:build !amd64 || purego +// +build !amd64 purego + +package fp25519 + +func cmov(x, y *Elt, n uint) { cmovGeneric(x, y, n) } +func cswap(x, y *Elt, n uint) { cswapGeneric(x, y, n) } +func add(z, x, y *Elt) { addGeneric(z, x, y) } +func sub(z, x, y *Elt) { subGeneric(z, x, y) } +func addsub(x, y *Elt) { addsubGeneric(x, y) } +func mul(z, x, y *Elt) { mulGeneric(z, x, y) } +func sqr(z, x *Elt) { sqrGeneric(z, x) } +func modp(z *Elt) { modpGeneric(z) } diff --git a/vendor/github.com/cloudflare/circl/math/fp448/fp.go b/vendor/github.com/cloudflare/circl/math/fp448/fp.go new file mode 100644 index 000000000000..a5e36600bb6d --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/fp448/fp.go @@ -0,0 +1,164 @@ +// Package fp448 provides prime field arithmetic over GF(2^448-2^224-1). +package fp448 + +import ( + "errors" + + "github.com/cloudflare/circl/internal/conv" +) + +// Size in bytes of an element. +const Size = 56 + +// Elt is a prime field element. +type Elt [Size]byte + +func (e Elt) String() string { return conv.BytesLe2Hex(e[:]) } + +// p is the prime modulus 2^448-2^224-1. +var p = Elt{ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +} + +// P returns the prime modulus 2^448-2^224-1. +func P() Elt { return p } + +// ToBytes stores in b the little-endian byte representation of x. +func ToBytes(b []byte, x *Elt) error { + if len(b) != Size { + return errors.New("wrong size") + } + Modp(x) + copy(b, x[:]) + return nil +} + +// IsZero returns true if x is equal to 0. +func IsZero(x *Elt) bool { Modp(x); return *x == Elt{} } + +// IsOne returns true if x is equal to 1. +func IsOne(x *Elt) bool { Modp(x); return *x == Elt{1} } + +// SetOne assigns x=1. +func SetOne(x *Elt) { *x = Elt{1} } + +// One returns the 1 element. +func One() (x Elt) { x = Elt{1}; return } + +// Neg calculates z = -x. +func Neg(z, x *Elt) { Sub(z, &p, x) } + +// Modp ensures that z is between [0,p-1]. +func Modp(z *Elt) { Sub(z, z, &p) } + +// InvSqrt calculates z = sqrt(x/y) iff x/y is a quadratic-residue. If so, +// isQR = true; otherwise, isQR = false, since x/y is a quadratic non-residue, +// and z = sqrt(-x/y). +func InvSqrt(z, x, y *Elt) (isQR bool) { + // First note that x^(2(k+1)) = x^(p-1)/2 * x = legendre(x) * x + // so that's x if x is a quadratic residue and -x otherwise. + // Next, y^(6k+3) = y^(4k+2) * y^(2k+1) = y^(p-1) * y^((p-1)/2) = legendre(y). + // So the z we compute satisfies z^2 y = x^(2(k+1)) y^(6k+3) = legendre(x)*legendre(y). + // Thus if x and y are quadratic residues, then z is indeed sqrt(x/y). + t0, t1 := &Elt{}, &Elt{} + Mul(t0, x, y) // x*y + Sqr(t1, y) // y^2 + Mul(t1, t0, t1) // x*y^3 + powPminus3div4(z, t1) // (x*y^3)^k + Mul(z, z, t0) // z = x*y*(x*y^3)^k = x^(k+1) * y^(3k+1) + + // Check if x/y is a quadratic residue + Sqr(t0, z) // z^2 + Mul(t0, t0, y) // y*z^2 + Sub(t0, t0, x) // y*z^2-x + return IsZero(t0) +} + +// Inv calculates z = 1/x mod p. +func Inv(z, x *Elt) { + // Calculates z = x^(4k+1) = x^(p-3+1) = x^(p-2) = x^-1, where k = (p-3)/4. + t := &Elt{} + powPminus3div4(t, x) // t = x^k + Sqr(t, t) // t = x^2k + Sqr(t, t) // t = x^4k + Mul(z, t, x) // z = x^(4k+1) +} + +// powPminus3div4 calculates z = x^k mod p, where k = (p-3)/4. +func powPminus3div4(z, x *Elt) { + x0, x1 := &Elt{}, &Elt{} + Sqr(z, x) + Mul(z, z, x) + Sqr(x0, z) + Mul(x0, x0, x) + Sqr(z, x0) + Sqr(z, z) + Sqr(z, z) + Mul(z, z, x0) + Sqr(x1, z) + for i := 0; i < 5; i++ { + Sqr(x1, x1) + } + Mul(x1, x1, z) + Sqr(z, x1) + for i := 0; i < 11; i++ { + Sqr(z, z) + } + Mul(z, z, x1) + Sqr(z, z) + Sqr(z, z) + Sqr(z, z) + Mul(z, z, x0) + Sqr(x1, z) + for i := 0; i < 26; i++ { + Sqr(x1, x1) + } + Mul(x1, x1, z) + Sqr(z, x1) + for i := 0; i < 53; i++ { + Sqr(z, z) + } + Mul(z, z, x1) + Sqr(z, z) + Sqr(z, z) + Sqr(z, z) + Mul(z, z, x0) + Sqr(x1, z) + for i := 0; i < 110; i++ { + Sqr(x1, x1) + } + Mul(x1, x1, z) + Sqr(z, x1) + Mul(z, z, x) + for i := 0; i < 223; i++ { + Sqr(z, z) + } + Mul(z, z, x1) +} + +// Cmov assigns y to x if n is 1. +func Cmov(x, y *Elt, n uint) { cmov(x, y, n) } + +// Cswap interchanges x and y if n is 1. +func Cswap(x, y *Elt, n uint) { cswap(x, y, n) } + +// Add calculates z = x+y mod p. +func Add(z, x, y *Elt) { add(z, x, y) } + +// Sub calculates z = x-y mod p. +func Sub(z, x, y *Elt) { sub(z, x, y) } + +// AddSub calculates (x,y) = (x+y mod p, x-y mod p). +func AddSub(x, y *Elt) { addsub(x, y) } + +// Mul calculates z = x*y mod p. +func Mul(z, x, y *Elt) { mul(z, x, y) } + +// Sqr calculates z = x^2 mod p. +func Sqr(z, x *Elt) { sqr(z, x) } diff --git a/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.go b/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.go new file mode 100644 index 000000000000..6a12209a704b --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.go @@ -0,0 +1,43 @@ +//go:build amd64 && !purego +// +build amd64,!purego + +package fp448 + +import ( + "golang.org/x/sys/cpu" +) + +var hasBmi2Adx = cpu.X86.HasBMI2 && cpu.X86.HasADX + +var _ = hasBmi2Adx + +func cmov(x, y *Elt, n uint) { cmovAmd64(x, y, n) } +func cswap(x, y *Elt, n uint) { cswapAmd64(x, y, n) } +func add(z, x, y *Elt) { addAmd64(z, x, y) } +func sub(z, x, y *Elt) { subAmd64(z, x, y) } +func addsub(x, y *Elt) { addsubAmd64(x, y) } +func mul(z, x, y *Elt) { mulAmd64(z, x, y) } +func sqr(z, x *Elt) { sqrAmd64(z, x) } + +/* Functions defined in fp_amd64.s */ + +//go:noescape +func cmovAmd64(x, y *Elt, n uint) + +//go:noescape +func cswapAmd64(x, y *Elt, n uint) + +//go:noescape +func addAmd64(z, x, y *Elt) + +//go:noescape +func subAmd64(z, x, y *Elt) + +//go:noescape +func addsubAmd64(x, y *Elt) + +//go:noescape +func mulAmd64(z, x, y *Elt) + +//go:noescape +func sqrAmd64(z, x *Elt) diff --git a/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.h b/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.h new file mode 100644 index 000000000000..536fe5bdfe0a --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.h @@ -0,0 +1,591 @@ +// This code was imported from https://github.com/armfazh/rfc7748_precomputed + +// CHECK_BMI2ADX triggers bmi2adx if supported, +// otherwise it fallbacks to legacy code. +#define CHECK_BMI2ADX(label, legacy, bmi2adx) \ + CMPB ·hasBmi2Adx(SB), $0 \ + JE label \ + bmi2adx \ + RET \ + label: \ + legacy \ + RET + +// cselect is a conditional move +// if b=1: it copies y into x; +// if b=0: x remains with the same value; +// if b<> 0,1: undefined. +// Uses: AX, DX, FLAGS +// Instr: x86_64, cmov +#define cselect(x,y,b) \ + TESTQ b, b \ + MOVQ 0+x, AX; MOVQ 0+y, DX; CMOVQNE DX, AX; MOVQ AX, 0+x; \ + MOVQ 8+x, AX; MOVQ 8+y, DX; CMOVQNE DX, AX; MOVQ AX, 8+x; \ + MOVQ 16+x, AX; MOVQ 16+y, DX; CMOVQNE DX, AX; MOVQ AX, 16+x; \ + MOVQ 24+x, AX; MOVQ 24+y, DX; CMOVQNE DX, AX; MOVQ AX, 24+x; \ + MOVQ 32+x, AX; MOVQ 32+y, DX; CMOVQNE DX, AX; MOVQ AX, 32+x; \ + MOVQ 40+x, AX; MOVQ 40+y, DX; CMOVQNE DX, AX; MOVQ AX, 40+x; \ + MOVQ 48+x, AX; MOVQ 48+y, DX; CMOVQNE DX, AX; MOVQ AX, 48+x; + +// cswap is a conditional swap +// if b=1: x,y <- y,x; +// if b=0: x,y remain with the same values; +// if b<> 0,1: undefined. +// Uses: AX, DX, R8, FLAGS +// Instr: x86_64, cmov +#define cswap(x,y,b) \ + TESTQ b, b \ + MOVQ 0+x, AX; MOVQ AX, R8; MOVQ 0+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 0+x; MOVQ DX, 0+y; \ + MOVQ 8+x, AX; MOVQ AX, R8; MOVQ 8+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 8+x; MOVQ DX, 8+y; \ + MOVQ 16+x, AX; MOVQ AX, R8; MOVQ 16+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 16+x; MOVQ DX, 16+y; \ + MOVQ 24+x, AX; MOVQ AX, R8; MOVQ 24+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 24+x; MOVQ DX, 24+y; \ + MOVQ 32+x, AX; MOVQ AX, R8; MOVQ 32+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 32+x; MOVQ DX, 32+y; \ + MOVQ 40+x, AX; MOVQ AX, R8; MOVQ 40+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 40+x; MOVQ DX, 40+y; \ + MOVQ 48+x, AX; MOVQ AX, R8; MOVQ 48+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 48+x; MOVQ DX, 48+y; + +// additionLeg adds x and y and stores in z +// Uses: AX, DX, R8-R14, FLAGS +// Instr: x86_64 +#define additionLeg(z,x,y) \ + MOVQ 0+x, R8; ADDQ 0+y, R8; \ + MOVQ 8+x, R9; ADCQ 8+y, R9; \ + MOVQ 16+x, R10; ADCQ 16+y, R10; \ + MOVQ 24+x, R11; ADCQ 24+y, R11; \ + MOVQ 32+x, R12; ADCQ 32+y, R12; \ + MOVQ 40+x, R13; ADCQ 40+y, R13; \ + MOVQ 48+x, R14; ADCQ 48+y, R14; \ + MOVQ $0, AX; ADCQ $0, AX; \ + MOVQ AX, DX; \ + SHLQ $32, DX; \ + ADDQ AX, R8; MOVQ $0, AX; \ + ADCQ $0, R9; \ + ADCQ $0, R10; \ + ADCQ DX, R11; \ + ADCQ $0, R12; \ + ADCQ $0, R13; \ + ADCQ $0, R14; \ + ADCQ $0, AX; \ + MOVQ AX, DX; \ + SHLQ $32, DX; \ + ADDQ AX, R8; MOVQ R8, 0+z; \ + ADCQ $0, R9; MOVQ R9, 8+z; \ + ADCQ $0, R10; MOVQ R10, 16+z; \ + ADCQ DX, R11; MOVQ R11, 24+z; \ + ADCQ $0, R12; MOVQ R12, 32+z; \ + ADCQ $0, R13; MOVQ R13, 40+z; \ + ADCQ $0, R14; MOVQ R14, 48+z; + + +// additionAdx adds x and y and stores in z +// Uses: AX, DX, R8-R15, FLAGS +// Instr: x86_64, adx +#define additionAdx(z,x,y) \ + MOVL $32, R15; \ + XORL DX, DX; \ + MOVQ 0+x, R8; ADCXQ 0+y, R8; \ + MOVQ 8+x, R9; ADCXQ 8+y, R9; \ + MOVQ 16+x, R10; ADCXQ 16+y, R10; \ + MOVQ 24+x, R11; ADCXQ 24+y, R11; \ + MOVQ 32+x, R12; ADCXQ 32+y, R12; \ + MOVQ 40+x, R13; ADCXQ 40+y, R13; \ + MOVQ 48+x, R14; ADCXQ 48+y, R14; \ + ;;;;;;;;;;;;;;; ADCXQ DX, DX; \ + XORL AX, AX; \ + ADCXQ DX, R8; SHLXQ R15, DX, DX; \ + ADCXQ AX, R9; \ + ADCXQ AX, R10; \ + ADCXQ DX, R11; \ + ADCXQ AX, R12; \ + ADCXQ AX, R13; \ + ADCXQ AX, R14; \ + ADCXQ AX, AX; \ + XORL DX, DX; \ + ADCXQ AX, R8; MOVQ R8, 0+z; SHLXQ R15, AX, AX; \ + ADCXQ DX, R9; MOVQ R9, 8+z; \ + ADCXQ DX, R10; MOVQ R10, 16+z; \ + ADCXQ AX, R11; MOVQ R11, 24+z; \ + ADCXQ DX, R12; MOVQ R12, 32+z; \ + ADCXQ DX, R13; MOVQ R13, 40+z; \ + ADCXQ DX, R14; MOVQ R14, 48+z; + +// subtraction subtracts y from x and stores in z +// Uses: AX, DX, R8-R14, FLAGS +// Instr: x86_64 +#define subtraction(z,x,y) \ + MOVQ 0+x, R8; SUBQ 0+y, R8; \ + MOVQ 8+x, R9; SBBQ 8+y, R9; \ + MOVQ 16+x, R10; SBBQ 16+y, R10; \ + MOVQ 24+x, R11; SBBQ 24+y, R11; \ + MOVQ 32+x, R12; SBBQ 32+y, R12; \ + MOVQ 40+x, R13; SBBQ 40+y, R13; \ + MOVQ 48+x, R14; SBBQ 48+y, R14; \ + MOVQ $0, AX; SETCS AX; \ + MOVQ AX, DX; \ + SHLQ $32, DX; \ + SUBQ AX, R8; MOVQ $0, AX; \ + SBBQ $0, R9; \ + SBBQ $0, R10; \ + SBBQ DX, R11; \ + SBBQ $0, R12; \ + SBBQ $0, R13; \ + SBBQ $0, R14; \ + SETCS AX; \ + MOVQ AX, DX; \ + SHLQ $32, DX; \ + SUBQ AX, R8; MOVQ R8, 0+z; \ + SBBQ $0, R9; MOVQ R9, 8+z; \ + SBBQ $0, R10; MOVQ R10, 16+z; \ + SBBQ DX, R11; MOVQ R11, 24+z; \ + SBBQ $0, R12; MOVQ R12, 32+z; \ + SBBQ $0, R13; MOVQ R13, 40+z; \ + SBBQ $0, R14; MOVQ R14, 48+z; + +// maddBmi2Adx multiplies x and y and accumulates in z +// Uses: AX, DX, R15, FLAGS +// Instr: x86_64, bmi2, adx +#define maddBmi2Adx(z,x,y,i,r0,r1,r2,r3,r4,r5,r6) \ + MOVQ i+y, DX; XORL AX, AX; \ + MULXQ 0+x, AX, R8; ADOXQ AX, r0; ADCXQ R8, r1; MOVQ r0,i+z; \ + MULXQ 8+x, AX, r0; ADOXQ AX, r1; ADCXQ r0, r2; MOVQ $0, R8; \ + MULXQ 16+x, AX, r0; ADOXQ AX, r2; ADCXQ r0, r3; \ + MULXQ 24+x, AX, r0; ADOXQ AX, r3; ADCXQ r0, r4; \ + MULXQ 32+x, AX, r0; ADOXQ AX, r4; ADCXQ r0, r5; \ + MULXQ 40+x, AX, r0; ADOXQ AX, r5; ADCXQ r0, r6; \ + MULXQ 48+x, AX, r0; ADOXQ AX, r6; ADCXQ R8, r0; \ + ;;;;;;;;;;;;;;;;;;; ADOXQ R8, r0; + +// integerMulAdx multiplies x and y and stores in z +// Uses: AX, DX, R8-R15, FLAGS +// Instr: x86_64, bmi2, adx +#define integerMulAdx(z,x,y) \ + MOVL $0,R15; \ + MOVQ 0+y, DX; XORL AX, AX; MOVQ $0, R8; \ + MULXQ 0+x, AX, R9; MOVQ AX, 0+z; \ + MULXQ 8+x, AX, R10; ADCXQ AX, R9; \ + MULXQ 16+x, AX, R11; ADCXQ AX, R10; \ + MULXQ 24+x, AX, R12; ADCXQ AX, R11; \ + MULXQ 32+x, AX, R13; ADCXQ AX, R12; \ + MULXQ 40+x, AX, R14; ADCXQ AX, R13; \ + MULXQ 48+x, AX, R15; ADCXQ AX, R14; \ + ;;;;;;;;;;;;;;;;;;;; ADCXQ R8, R15; \ + maddBmi2Adx(z,x,y, 8, R9,R10,R11,R12,R13,R14,R15) \ + maddBmi2Adx(z,x,y,16,R10,R11,R12,R13,R14,R15, R9) \ + maddBmi2Adx(z,x,y,24,R11,R12,R13,R14,R15, R9,R10) \ + maddBmi2Adx(z,x,y,32,R12,R13,R14,R15, R9,R10,R11) \ + maddBmi2Adx(z,x,y,40,R13,R14,R15, R9,R10,R11,R12) \ + maddBmi2Adx(z,x,y,48,R14,R15, R9,R10,R11,R12,R13) \ + MOVQ R15, 56+z; \ + MOVQ R9, 64+z; \ + MOVQ R10, 72+z; \ + MOVQ R11, 80+z; \ + MOVQ R12, 88+z; \ + MOVQ R13, 96+z; \ + MOVQ R14, 104+z; + +// maddLegacy multiplies x and y and accumulates in z +// Uses: AX, DX, R15, FLAGS +// Instr: x86_64 +#define maddLegacy(z,x,y,i) \ + MOVQ i+y, R15; \ + MOVQ 0+x, AX; MULQ R15; MOVQ AX, R8; ;;;;;;;;;;;; MOVQ DX, R9; \ + MOVQ 8+x, AX; MULQ R15; ADDQ AX, R9; ADCQ $0, DX; MOVQ DX, R10; \ + MOVQ 16+x, AX; MULQ R15; ADDQ AX, R10; ADCQ $0, DX; MOVQ DX, R11; \ + MOVQ 24+x, AX; MULQ R15; ADDQ AX, R11; ADCQ $0, DX; MOVQ DX, R12; \ + MOVQ 32+x, AX; MULQ R15; ADDQ AX, R12; ADCQ $0, DX; MOVQ DX, R13; \ + MOVQ 40+x, AX; MULQ R15; ADDQ AX, R13; ADCQ $0, DX; MOVQ DX, R14; \ + MOVQ 48+x, AX; MULQ R15; ADDQ AX, R14; ADCQ $0, DX; \ + ADDQ 0+i+z, R8; MOVQ R8, 0+i+z; \ + ADCQ 8+i+z, R9; MOVQ R9, 8+i+z; \ + ADCQ 16+i+z, R10; MOVQ R10, 16+i+z; \ + ADCQ 24+i+z, R11; MOVQ R11, 24+i+z; \ + ADCQ 32+i+z, R12; MOVQ R12, 32+i+z; \ + ADCQ 40+i+z, R13; MOVQ R13, 40+i+z; \ + ADCQ 48+i+z, R14; MOVQ R14, 48+i+z; \ + ADCQ $0, DX; MOVQ DX, 56+i+z; + +// integerMulLeg multiplies x and y and stores in z +// Uses: AX, DX, R8-R15, FLAGS +// Instr: x86_64 +#define integerMulLeg(z,x,y) \ + MOVQ 0+y, R15; \ + MOVQ 0+x, AX; MULQ R15; MOVQ AX, 0+z; ;;;;;;;;;;;; MOVQ DX, R8; \ + MOVQ 8+x, AX; MULQ R15; ADDQ AX, R8; ADCQ $0, DX; MOVQ DX, R9; MOVQ R8, 8+z; \ + MOVQ 16+x, AX; MULQ R15; ADDQ AX, R9; ADCQ $0, DX; MOVQ DX, R10; MOVQ R9, 16+z; \ + MOVQ 24+x, AX; MULQ R15; ADDQ AX, R10; ADCQ $0, DX; MOVQ DX, R11; MOVQ R10, 24+z; \ + MOVQ 32+x, AX; MULQ R15; ADDQ AX, R11; ADCQ $0, DX; MOVQ DX, R12; MOVQ R11, 32+z; \ + MOVQ 40+x, AX; MULQ R15; ADDQ AX, R12; ADCQ $0, DX; MOVQ DX, R13; MOVQ R12, 40+z; \ + MOVQ 48+x, AX; MULQ R15; ADDQ AX, R13; ADCQ $0, DX; MOVQ DX,56+z; MOVQ R13, 48+z; \ + maddLegacy(z,x,y, 8) \ + maddLegacy(z,x,y,16) \ + maddLegacy(z,x,y,24) \ + maddLegacy(z,x,y,32) \ + maddLegacy(z,x,y,40) \ + maddLegacy(z,x,y,48) + +// integerSqrLeg squares x and stores in z +// Uses: AX, CX, DX, R8-R15, FLAGS +// Instr: x86_64 +#define integerSqrLeg(z,x) \ + XORL R15, R15; \ + MOVQ 0+x, CX; \ + MOVQ CX, AX; MULQ CX; MOVQ AX, 0+z; MOVQ DX, R8; \ + ADDQ CX, CX; ADCQ $0, R15; \ + MOVQ 8+x, AX; MULQ CX; ADDQ AX, R8; ADCQ $0, DX; MOVQ DX, R9; MOVQ R8, 8+z; \ + MOVQ 16+x, AX; MULQ CX; ADDQ AX, R9; ADCQ $0, DX; MOVQ DX, R10; \ + MOVQ 24+x, AX; MULQ CX; ADDQ AX, R10; ADCQ $0, DX; MOVQ DX, R11; \ + MOVQ 32+x, AX; MULQ CX; ADDQ AX, R11; ADCQ $0, DX; MOVQ DX, R12; \ + MOVQ 40+x, AX; MULQ CX; ADDQ AX, R12; ADCQ $0, DX; MOVQ DX, R13; \ + MOVQ 48+x, AX; MULQ CX; ADDQ AX, R13; ADCQ $0, DX; MOVQ DX, R14; \ + \ + MOVQ 8+x, CX; \ + MOVQ CX, AX; ADDQ R15, CX; MOVQ $0, R15; ADCQ $0, R15; \ + ;;;;;;;;;;;;;; MULQ CX; ADDQ AX, R9; ADCQ $0, DX; MOVQ R9,16+z; \ + MOVQ R15, AX; NEGQ AX; ANDQ 8+x, AX; ADDQ AX, DX; ADCQ $0, R11; MOVQ DX, R8; \ + ADDQ 8+x, CX; ADCQ $0, R15; \ + MOVQ 16+x, AX; MULQ CX; ADDQ AX, R10; ADCQ $0, DX; ADDQ R8, R10; ADCQ $0, DX; MOVQ DX, R8; MOVQ R10, 24+z; \ + MOVQ 24+x, AX; MULQ CX; ADDQ AX, R11; ADCQ $0, DX; ADDQ R8, R11; ADCQ $0, DX; MOVQ DX, R8; \ + MOVQ 32+x, AX; MULQ CX; ADDQ AX, R12; ADCQ $0, DX; ADDQ R8, R12; ADCQ $0, DX; MOVQ DX, R8; \ + MOVQ 40+x, AX; MULQ CX; ADDQ AX, R13; ADCQ $0, DX; ADDQ R8, R13; ADCQ $0, DX; MOVQ DX, R8; \ + MOVQ 48+x, AX; MULQ CX; ADDQ AX, R14; ADCQ $0, DX; ADDQ R8, R14; ADCQ $0, DX; MOVQ DX, R9; \ + \ + MOVQ 16+x, CX; \ + MOVQ CX, AX; ADDQ R15, CX; MOVQ $0, R15; ADCQ $0, R15; \ + ;;;;;;;;;;;;;; MULQ CX; ADDQ AX, R11; ADCQ $0, DX; MOVQ R11, 32+z; \ + MOVQ R15, AX; NEGQ AX; ANDQ 16+x,AX; ADDQ AX, DX; ADCQ $0, R13; MOVQ DX, R8; \ + ADDQ 16+x, CX; ADCQ $0, R15; \ + MOVQ 24+x, AX; MULQ CX; ADDQ AX, R12; ADCQ $0, DX; ADDQ R8, R12; ADCQ $0, DX; MOVQ DX, R8; MOVQ R12, 40+z; \ + MOVQ 32+x, AX; MULQ CX; ADDQ AX, R13; ADCQ $0, DX; ADDQ R8, R13; ADCQ $0, DX; MOVQ DX, R8; \ + MOVQ 40+x, AX; MULQ CX; ADDQ AX, R14; ADCQ $0, DX; ADDQ R8, R14; ADCQ $0, DX; MOVQ DX, R8; \ + MOVQ 48+x, AX; MULQ CX; ADDQ AX, R9; ADCQ $0, DX; ADDQ R8, R9; ADCQ $0, DX; MOVQ DX,R10; \ + \ + MOVQ 24+x, CX; \ + MOVQ CX, AX; ADDQ R15, CX; MOVQ $0, R15; ADCQ $0, R15; \ + ;;;;;;;;;;;;;; MULQ CX; ADDQ AX, R13; ADCQ $0, DX; MOVQ R13, 48+z; \ + MOVQ R15, AX; NEGQ AX; ANDQ 24+x,AX; ADDQ AX, DX; ADCQ $0, R9; MOVQ DX, R8; \ + ADDQ 24+x, CX; ADCQ $0, R15; \ + MOVQ 32+x, AX; MULQ CX; ADDQ AX, R14; ADCQ $0, DX; ADDQ R8, R14; ADCQ $0, DX; MOVQ DX, R8; MOVQ R14, 56+z; \ + MOVQ 40+x, AX; MULQ CX; ADDQ AX, R9; ADCQ $0, DX; ADDQ R8, R9; ADCQ $0, DX; MOVQ DX, R8; \ + MOVQ 48+x, AX; MULQ CX; ADDQ AX, R10; ADCQ $0, DX; ADDQ R8, R10; ADCQ $0, DX; MOVQ DX,R11; \ + \ + MOVQ 32+x, CX; \ + MOVQ CX, AX; ADDQ R15, CX; MOVQ $0, R15; ADCQ $0, R15; \ + ;;;;;;;;;;;;;; MULQ CX; ADDQ AX, R9; ADCQ $0, DX; MOVQ R9, 64+z; \ + MOVQ R15, AX; NEGQ AX; ANDQ 32+x,AX; ADDQ AX, DX; ADCQ $0, R11; MOVQ DX, R8; \ + ADDQ 32+x, CX; ADCQ $0, R15; \ + MOVQ 40+x, AX; MULQ CX; ADDQ AX, R10; ADCQ $0, DX; ADDQ R8, R10; ADCQ $0, DX; MOVQ DX, R8; MOVQ R10, 72+z; \ + MOVQ 48+x, AX; MULQ CX; ADDQ AX, R11; ADCQ $0, DX; ADDQ R8, R11; ADCQ $0, DX; MOVQ DX,R12; \ + \ + XORL R13, R13; \ + XORL R14, R14; \ + MOVQ 40+x, CX; \ + MOVQ CX, AX; ADDQ R15, CX; MOVQ $0, R15; ADCQ $0, R15; \ + ;;;;;;;;;;;;;; MULQ CX; ADDQ AX, R11; ADCQ $0, DX; MOVQ R11, 80+z; \ + MOVQ R15, AX; NEGQ AX; ANDQ 40+x,AX; ADDQ AX, DX; ADCQ $0, R13; MOVQ DX, R8; \ + ADDQ 40+x, CX; ADCQ $0, R15; \ + MOVQ 48+x, AX; MULQ CX; ADDQ AX, R12; ADCQ $0, DX; ADDQ R8, R12; ADCQ $0, DX; MOVQ DX, R8; MOVQ R12, 88+z; \ + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ADDQ R8, R13; ADCQ $0,R14; \ + \ + XORL R9, R9; \ + MOVQ 48+x, CX; \ + MOVQ CX, AX; ADDQ R15, CX; MOVQ $0, R15; ADCQ $0, R15; \ + ;;;;;;;;;;;;;; MULQ CX; ADDQ AX, R13; ADCQ $0, DX; MOVQ R13, 96+z; \ + MOVQ R15, AX; NEGQ AX; ANDQ 48+x,AX; ADDQ AX, DX; ADCQ $0, R9; MOVQ DX, R8; \ + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ADDQ R8,R14; ADCQ $0, R9; MOVQ R14, 104+z; + + +// integerSqrAdx squares x and stores in z +// Uses: AX, CX, DX, R8-R15, FLAGS +// Instr: x86_64, bmi2, adx +#define integerSqrAdx(z,x) \ + XORL R15, R15; \ + MOVQ 0+x, DX; \ + ;;;;;;;;;;;;;; MULXQ DX, AX, R8; MOVQ AX, 0+z; \ + ADDQ DX, DX; ADCQ $0, R15; CLC; \ + MULXQ 8+x, AX, R9; ADCXQ AX, R8; MOVQ R8, 8+z; \ + MULXQ 16+x, AX, R10; ADCXQ AX, R9; MOVQ $0, R8;\ + MULXQ 24+x, AX, R11; ADCXQ AX, R10; \ + MULXQ 32+x, AX, R12; ADCXQ AX, R11; \ + MULXQ 40+x, AX, R13; ADCXQ AX, R12; \ + MULXQ 48+x, AX, R14; ADCXQ AX, R13; \ + ;;;;;;;;;;;;;;;;;;;; ADCXQ R8, R14; \ + \ + MOVQ 8+x, DX; \ + MOVQ DX, AX; ADDQ R15, DX; MOVQ $0, R15; ADCQ $0, R15; \ + MULXQ AX, AX, CX; \ + MOVQ R15, R8; NEGQ R8; ANDQ 8+x, R8; \ + ADDQ AX, R9; MOVQ R9, 16+z; \ + ADCQ CX, R8; \ + ADCQ $0, R11; \ + ADDQ 8+x, DX; \ + ADCQ $0, R15; \ + XORL R9, R9; ;;;;;;;;;;;;;;;;;;;;; ADOXQ R8, R10; \ + MULXQ 16+x, AX, CX; ADCXQ AX, R10; ADOXQ CX, R11; MOVQ R10, 24+z; \ + MULXQ 24+x, AX, CX; ADCXQ AX, R11; ADOXQ CX, R12; MOVQ $0, R10; \ + MULXQ 32+x, AX, CX; ADCXQ AX, R12; ADOXQ CX, R13; \ + MULXQ 40+x, AX, CX; ADCXQ AX, R13; ADOXQ CX, R14; \ + MULXQ 48+x, AX, CX; ADCXQ AX, R14; ADOXQ CX, R9; \ + ;;;;;;;;;;;;;;;;;;; ADCXQ R10, R9; \ + \ + MOVQ 16+x, DX; \ + MOVQ DX, AX; ADDQ R15, DX; MOVQ $0, R15; ADCQ $0, R15; \ + MULXQ AX, AX, CX; \ + MOVQ R15, R8; NEGQ R8; ANDQ 16+x, R8; \ + ADDQ AX, R11; MOVQ R11, 32+z; \ + ADCQ CX, R8; \ + ADCQ $0, R13; \ + ADDQ 16+x, DX; \ + ADCQ $0, R15; \ + XORL R11, R11; ;;;;;;;;;;;;;;;;;;; ADOXQ R8, R12; \ + MULXQ 24+x, AX, CX; ADCXQ AX, R12; ADOXQ CX, R13; MOVQ R12, 40+z; \ + MULXQ 32+x, AX, CX; ADCXQ AX, R13; ADOXQ CX, R14; MOVQ $0, R12; \ + MULXQ 40+x, AX, CX; ADCXQ AX, R14; ADOXQ CX, R9; \ + MULXQ 48+x, AX, CX; ADCXQ AX, R9; ADOXQ CX, R10; \ + ;;;;;;;;;;;;;;;;;;; ADCXQ R11,R10; \ + \ + MOVQ 24+x, DX; \ + MOVQ DX, AX; ADDQ R15, DX; MOVQ $0, R15; ADCQ $0, R15; \ + MULXQ AX, AX, CX; \ + MOVQ R15, R8; NEGQ R8; ANDQ 24+x, R8; \ + ADDQ AX, R13; MOVQ R13, 48+z; \ + ADCQ CX, R8; \ + ADCQ $0, R9; \ + ADDQ 24+x, DX; \ + ADCQ $0, R15; \ + XORL R13, R13; ;;;;;;;;;;;;;;;;;;; ADOXQ R8, R14; \ + MULXQ 32+x, AX, CX; ADCXQ AX, R14; ADOXQ CX, R9; MOVQ R14, 56+z; \ + MULXQ 40+x, AX, CX; ADCXQ AX, R9; ADOXQ CX, R10; MOVQ $0, R14; \ + MULXQ 48+x, AX, CX; ADCXQ AX, R10; ADOXQ CX, R11; \ + ;;;;;;;;;;;;;;;;;;; ADCXQ R12,R11; \ + \ + MOVQ 32+x, DX; \ + MOVQ DX, AX; ADDQ R15, DX; MOVQ $0, R15; ADCQ $0, R15; \ + MULXQ AX, AX, CX; \ + MOVQ R15, R8; NEGQ R8; ANDQ 32+x, R8; \ + ADDQ AX, R9; MOVQ R9, 64+z; \ + ADCQ CX, R8; \ + ADCQ $0, R11; \ + ADDQ 32+x, DX; \ + ADCQ $0, R15; \ + XORL R9, R9; ;;;;;;;;;;;;;;;;;;;;; ADOXQ R8, R10; \ + MULXQ 40+x, AX, CX; ADCXQ AX, R10; ADOXQ CX, R11; MOVQ R10, 72+z; \ + MULXQ 48+x, AX, CX; ADCXQ AX, R11; ADOXQ CX, R12; \ + ;;;;;;;;;;;;;;;;;;; ADCXQ R13,R12; \ + \ + MOVQ 40+x, DX; \ + MOVQ DX, AX; ADDQ R15, DX; MOVQ $0, R15; ADCQ $0, R15; \ + MULXQ AX, AX, CX; \ + MOVQ R15, R8; NEGQ R8; ANDQ 40+x, R8; \ + ADDQ AX, R11; MOVQ R11, 80+z; \ + ADCQ CX, R8; \ + ADCQ $0, R13; \ + ADDQ 40+x, DX; \ + ADCQ $0, R15; \ + XORL R11, R11; ;;;;;;;;;;;;;;;;;;; ADOXQ R8, R12; \ + MULXQ 48+x, AX, CX; ADCXQ AX, R12; ADOXQ CX, R13; MOVQ R12, 88+z; \ + ;;;;;;;;;;;;;;;;;;; ADCXQ R14,R13; \ + \ + MOVQ 48+x, DX; \ + MOVQ DX, AX; ADDQ R15, DX; MOVQ $0, R15; ADCQ $0, R15; \ + MULXQ AX, AX, CX; \ + MOVQ R15, R8; NEGQ R8; ANDQ 48+x, R8; \ + XORL R10, R10; ;;;;;;;;;;;;;; ADOXQ CX, R14; \ + ;;;;;;;;;;;;;; ADCXQ AX, R13; ;;;;;;;;;;;;;; MOVQ R13, 96+z; \ + ;;;;;;;;;;;;;; ADCXQ R8, R14; MOVQ R14, 104+z; + +// reduceFromDoubleLeg finds a z=x modulo p such that z<2^448 and stores in z +// Uses: AX, R8-R15, FLAGS +// Instr: x86_64 +#define reduceFromDoubleLeg(z,x) \ + /* ( ,2C13,2C12,2C11,2C10|C10,C9,C8, C7) + (C6,...,C0) */ \ + /* (r14, r13, r12, r11, r10,r9,r8,r15) */ \ + MOVQ 80+x,AX; MOVQ AX,R10; \ + MOVQ $0xFFFFFFFF00000000, R8; \ + ANDQ R8,R10; \ + \ + MOVQ $0,R14; \ + MOVQ 104+x,R13; SHLQ $1,R13,R14; \ + MOVQ 96+x,R12; SHLQ $1,R12,R13; \ + MOVQ 88+x,R11; SHLQ $1,R11,R12; \ + MOVQ 72+x, R9; SHLQ $1,R10,R11; \ + MOVQ 64+x, R8; SHLQ $1,R10; \ + MOVQ $0xFFFFFFFF,R15; ANDQ R15,AX; ORQ AX,R10; \ + MOVQ 56+x,R15; \ + \ + ADDQ 0+x,R15; MOVQ R15, 0+z; MOVQ 56+x,R15; \ + ADCQ 8+x, R8; MOVQ R8, 8+z; MOVQ 64+x, R8; \ + ADCQ 16+x, R9; MOVQ R9,16+z; MOVQ 72+x, R9; \ + ADCQ 24+x,R10; MOVQ R10,24+z; MOVQ 80+x,R10; \ + ADCQ 32+x,R11; MOVQ R11,32+z; MOVQ 88+x,R11; \ + ADCQ 40+x,R12; MOVQ R12,40+z; MOVQ 96+x,R12; \ + ADCQ 48+x,R13; MOVQ R13,48+z; MOVQ 104+x,R13; \ + ADCQ $0,R14; \ + /* (c10c9,c9c8,c8c7,c7c13,c13c12,c12c11,c11c10) + (c6,...,c0) */ \ + /* ( r9, r8, r15, r13, r12, r11, r10) */ \ + MOVQ R10, AX; \ + SHRQ $32,R11,R10; \ + SHRQ $32,R12,R11; \ + SHRQ $32,R13,R12; \ + SHRQ $32,R15,R13; \ + SHRQ $32, R8,R15; \ + SHRQ $32, R9, R8; \ + SHRQ $32, AX, R9; \ + \ + ADDQ 0+z,R10; \ + ADCQ 8+z,R11; \ + ADCQ 16+z,R12; \ + ADCQ 24+z,R13; \ + ADCQ 32+z,R15; \ + ADCQ 40+z, R8; \ + ADCQ 48+z, R9; \ + ADCQ $0,R14; \ + /* ( c7) + (c6,...,c0) */ \ + /* (r14) */ \ + MOVQ R14, AX; SHLQ $32, AX; \ + ADDQ R14,R10; MOVQ $0,R14; \ + ADCQ $0,R11; \ + ADCQ $0,R12; \ + ADCQ AX,R13; \ + ADCQ $0,R15; \ + ADCQ $0, R8; \ + ADCQ $0, R9; \ + ADCQ $0,R14; \ + /* ( c7) + (c6,...,c0) */ \ + /* (r14) */ \ + MOVQ R14, AX; SHLQ $32,AX; \ + ADDQ R14,R10; MOVQ R10, 0+z; \ + ADCQ $0,R11; MOVQ R11, 8+z; \ + ADCQ $0,R12; MOVQ R12,16+z; \ + ADCQ AX,R13; MOVQ R13,24+z; \ + ADCQ $0,R15; MOVQ R15,32+z; \ + ADCQ $0, R8; MOVQ R8,40+z; \ + ADCQ $0, R9; MOVQ R9,48+z; + +// reduceFromDoubleAdx finds a z=x modulo p such that z<2^448 and stores in z +// Uses: AX, R8-R15, FLAGS +// Instr: x86_64, adx +#define reduceFromDoubleAdx(z,x) \ + /* ( ,2C13,2C12,2C11,2C10|C10,C9,C8, C7) + (C6,...,C0) */ \ + /* (r14, r13, r12, r11, r10,r9,r8,r15) */ \ + MOVQ 80+x,AX; MOVQ AX,R10; \ + MOVQ $0xFFFFFFFF00000000, R8; \ + ANDQ R8,R10; \ + \ + MOVQ $0,R14; \ + MOVQ 104+x,R13; SHLQ $1,R13,R14; \ + MOVQ 96+x,R12; SHLQ $1,R12,R13; \ + MOVQ 88+x,R11; SHLQ $1,R11,R12; \ + MOVQ 72+x, R9; SHLQ $1,R10,R11; \ + MOVQ 64+x, R8; SHLQ $1,R10; \ + MOVQ $0xFFFFFFFF,R15; ANDQ R15,AX; ORQ AX,R10; \ + MOVQ 56+x,R15; \ + \ + XORL AX,AX; \ + ADCXQ 0+x,R15; MOVQ R15, 0+z; MOVQ 56+x,R15; \ + ADCXQ 8+x, R8; MOVQ R8, 8+z; MOVQ 64+x, R8; \ + ADCXQ 16+x, R9; MOVQ R9,16+z; MOVQ 72+x, R9; \ + ADCXQ 24+x,R10; MOVQ R10,24+z; MOVQ 80+x,R10; \ + ADCXQ 32+x,R11; MOVQ R11,32+z; MOVQ 88+x,R11; \ + ADCXQ 40+x,R12; MOVQ R12,40+z; MOVQ 96+x,R12; \ + ADCXQ 48+x,R13; MOVQ R13,48+z; MOVQ 104+x,R13; \ + ADCXQ AX,R14; \ + /* (c10c9,c9c8,c8c7,c7c13,c13c12,c12c11,c11c10) + (c6,...,c0) */ \ + /* ( r9, r8, r15, r13, r12, r11, r10) */ \ + MOVQ R10, AX; \ + SHRQ $32,R11,R10; \ + SHRQ $32,R12,R11; \ + SHRQ $32,R13,R12; \ + SHRQ $32,R15,R13; \ + SHRQ $32, R8,R15; \ + SHRQ $32, R9, R8; \ + SHRQ $32, AX, R9; \ + \ + XORL AX,AX; \ + ADCXQ 0+z,R10; \ + ADCXQ 8+z,R11; \ + ADCXQ 16+z,R12; \ + ADCXQ 24+z,R13; \ + ADCXQ 32+z,R15; \ + ADCXQ 40+z, R8; \ + ADCXQ 48+z, R9; \ + ADCXQ AX,R14; \ + /* ( c7) + (c6,...,c0) */ \ + /* (r14) */ \ + MOVQ R14, AX; SHLQ $32, AX; \ + CLC; \ + ADCXQ R14,R10; MOVQ $0,R14; \ + ADCXQ R14,R11; \ + ADCXQ R14,R12; \ + ADCXQ AX,R13; \ + ADCXQ R14,R15; \ + ADCXQ R14, R8; \ + ADCXQ R14, R9; \ + ADCXQ R14,R14; \ + /* ( c7) + (c6,...,c0) */ \ + /* (r14) */ \ + MOVQ R14, AX; SHLQ $32, AX; \ + CLC; \ + ADCXQ R14,R10; MOVQ R10, 0+z; MOVQ $0,R14; \ + ADCXQ R14,R11; MOVQ R11, 8+z; \ + ADCXQ R14,R12; MOVQ R12,16+z; \ + ADCXQ AX,R13; MOVQ R13,24+z; \ + ADCXQ R14,R15; MOVQ R15,32+z; \ + ADCXQ R14, R8; MOVQ R8,40+z; \ + ADCXQ R14, R9; MOVQ R9,48+z; + +// addSub calculates two operations: x,y = x+y,x-y +// Uses: AX, DX, R8-R15, FLAGS +#define addSub(x,y) \ + MOVQ 0+x, R8; ADDQ 0+y, R8; \ + MOVQ 8+x, R9; ADCQ 8+y, R9; \ + MOVQ 16+x, R10; ADCQ 16+y, R10; \ + MOVQ 24+x, R11; ADCQ 24+y, R11; \ + MOVQ 32+x, R12; ADCQ 32+y, R12; \ + MOVQ 40+x, R13; ADCQ 40+y, R13; \ + MOVQ 48+x, R14; ADCQ 48+y, R14; \ + MOVQ $0, AX; ADCQ $0, AX; \ + MOVQ AX, DX; \ + SHLQ $32, DX; \ + ADDQ AX, R8; MOVQ $0, AX; \ + ADCQ $0, R9; \ + ADCQ $0, R10; \ + ADCQ DX, R11; \ + ADCQ $0, R12; \ + ADCQ $0, R13; \ + ADCQ $0, R14; \ + ADCQ $0, AX; \ + MOVQ AX, DX; \ + SHLQ $32, DX; \ + ADDQ AX, R8; MOVQ 0+x,AX; MOVQ R8, 0+x; MOVQ AX, R8; \ + ADCQ $0, R9; MOVQ 8+x,AX; MOVQ R9, 8+x; MOVQ AX, R9; \ + ADCQ $0, R10; MOVQ 16+x,AX; MOVQ R10, 16+x; MOVQ AX, R10; \ + ADCQ DX, R11; MOVQ 24+x,AX; MOVQ R11, 24+x; MOVQ AX, R11; \ + ADCQ $0, R12; MOVQ 32+x,AX; MOVQ R12, 32+x; MOVQ AX, R12; \ + ADCQ $0, R13; MOVQ 40+x,AX; MOVQ R13, 40+x; MOVQ AX, R13; \ + ADCQ $0, R14; MOVQ 48+x,AX; MOVQ R14, 48+x; MOVQ AX, R14; \ + SUBQ 0+y, R8; \ + SBBQ 8+y, R9; \ + SBBQ 16+y, R10; \ + SBBQ 24+y, R11; \ + SBBQ 32+y, R12; \ + SBBQ 40+y, R13; \ + SBBQ 48+y, R14; \ + MOVQ $0, AX; SETCS AX; \ + MOVQ AX, DX; \ + SHLQ $32, DX; \ + SUBQ AX, R8; MOVQ $0, AX; \ + SBBQ $0, R9; \ + SBBQ $0, R10; \ + SBBQ DX, R11; \ + SBBQ $0, R12; \ + SBBQ $0, R13; \ + SBBQ $0, R14; \ + SETCS AX; \ + MOVQ AX, DX; \ + SHLQ $32, DX; \ + SUBQ AX, R8; MOVQ R8, 0+y; \ + SBBQ $0, R9; MOVQ R9, 8+y; \ + SBBQ $0, R10; MOVQ R10, 16+y; \ + SBBQ DX, R11; MOVQ R11, 24+y; \ + SBBQ $0, R12; MOVQ R12, 32+y; \ + SBBQ $0, R13; MOVQ R13, 40+y; \ + SBBQ $0, R14; MOVQ R14, 48+y; diff --git a/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.s b/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.s new file mode 100644 index 000000000000..435addf5e6ca --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.s @@ -0,0 +1,74 @@ +// +build amd64 + +#include "textflag.h" +#include "fp_amd64.h" + +// func cmovAmd64(x, y *Elt, n uint) +TEXT ·cmovAmd64(SB),NOSPLIT,$0-24 + MOVQ x+0(FP), DI + MOVQ y+8(FP), SI + MOVQ n+16(FP), BX + cselect(0(DI),0(SI),BX) + RET + +// func cswapAmd64(x, y *Elt, n uint) +TEXT ·cswapAmd64(SB),NOSPLIT,$0-24 + MOVQ x+0(FP), DI + MOVQ y+8(FP), SI + MOVQ n+16(FP), BX + cswap(0(DI),0(SI),BX) + RET + +// func subAmd64(z, x, y *Elt) +TEXT ·subAmd64(SB),NOSPLIT,$0-24 + MOVQ z+0(FP), DI + MOVQ x+8(FP), SI + MOVQ y+16(FP), BX + subtraction(0(DI),0(SI),0(BX)) + RET + +// func addsubAmd64(x, y *Elt) +TEXT ·addsubAmd64(SB),NOSPLIT,$0-16 + MOVQ x+0(FP), DI + MOVQ y+8(FP), SI + addSub(0(DI),0(SI)) + RET + +#define addLegacy \ + additionLeg(0(DI),0(SI),0(BX)) +#define addBmi2Adx \ + additionAdx(0(DI),0(SI),0(BX)) + +#define mulLegacy \ + integerMulLeg(0(SP),0(SI),0(BX)) \ + reduceFromDoubleLeg(0(DI),0(SP)) +#define mulBmi2Adx \ + integerMulAdx(0(SP),0(SI),0(BX)) \ + reduceFromDoubleAdx(0(DI),0(SP)) + +#define sqrLegacy \ + integerSqrLeg(0(SP),0(SI)) \ + reduceFromDoubleLeg(0(DI),0(SP)) +#define sqrBmi2Adx \ + integerSqrAdx(0(SP),0(SI)) \ + reduceFromDoubleAdx(0(DI),0(SP)) + +// func addAmd64(z, x, y *Elt) +TEXT ·addAmd64(SB),NOSPLIT,$0-24 + MOVQ z+0(FP), DI + MOVQ x+8(FP), SI + MOVQ y+16(FP), BX + CHECK_BMI2ADX(LADD, addLegacy, addBmi2Adx) + +// func mulAmd64(z, x, y *Elt) +TEXT ·mulAmd64(SB),NOSPLIT,$112-24 + MOVQ z+0(FP), DI + MOVQ x+8(FP), SI + MOVQ y+16(FP), BX + CHECK_BMI2ADX(LMUL, mulLegacy, mulBmi2Adx) + +// func sqrAmd64(z, x *Elt) +TEXT ·sqrAmd64(SB),NOSPLIT,$112-16 + MOVQ z+0(FP), DI + MOVQ x+8(FP), SI + CHECK_BMI2ADX(LSQR, sqrLegacy, sqrBmi2Adx) diff --git a/vendor/github.com/cloudflare/circl/math/fp448/fp_generic.go b/vendor/github.com/cloudflare/circl/math/fp448/fp_generic.go new file mode 100644 index 000000000000..47a0b63205f8 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/fp448/fp_generic.go @@ -0,0 +1,339 @@ +package fp448 + +import ( + "encoding/binary" + "math/bits" +) + +func cmovGeneric(x, y *Elt, n uint) { + m := -uint64(n & 0x1) + x0 := binary.LittleEndian.Uint64(x[0*8 : 1*8]) + x1 := binary.LittleEndian.Uint64(x[1*8 : 2*8]) + x2 := binary.LittleEndian.Uint64(x[2*8 : 3*8]) + x3 := binary.LittleEndian.Uint64(x[3*8 : 4*8]) + x4 := binary.LittleEndian.Uint64(x[4*8 : 5*8]) + x5 := binary.LittleEndian.Uint64(x[5*8 : 6*8]) + x6 := binary.LittleEndian.Uint64(x[6*8 : 7*8]) + + y0 := binary.LittleEndian.Uint64(y[0*8 : 1*8]) + y1 := binary.LittleEndian.Uint64(y[1*8 : 2*8]) + y2 := binary.LittleEndian.Uint64(y[2*8 : 3*8]) + y3 := binary.LittleEndian.Uint64(y[3*8 : 4*8]) + y4 := binary.LittleEndian.Uint64(y[4*8 : 5*8]) + y5 := binary.LittleEndian.Uint64(y[5*8 : 6*8]) + y6 := binary.LittleEndian.Uint64(y[6*8 : 7*8]) + + x0 = (x0 &^ m) | (y0 & m) + x1 = (x1 &^ m) | (y1 & m) + x2 = (x2 &^ m) | (y2 & m) + x3 = (x3 &^ m) | (y3 & m) + x4 = (x4 &^ m) | (y4 & m) + x5 = (x5 &^ m) | (y5 & m) + x6 = (x6 &^ m) | (y6 & m) + + binary.LittleEndian.PutUint64(x[0*8:1*8], x0) + binary.LittleEndian.PutUint64(x[1*8:2*8], x1) + binary.LittleEndian.PutUint64(x[2*8:3*8], x2) + binary.LittleEndian.PutUint64(x[3*8:4*8], x3) + binary.LittleEndian.PutUint64(x[4*8:5*8], x4) + binary.LittleEndian.PutUint64(x[5*8:6*8], x5) + binary.LittleEndian.PutUint64(x[6*8:7*8], x6) +} + +func cswapGeneric(x, y *Elt, n uint) { + m := -uint64(n & 0x1) + x0 := binary.LittleEndian.Uint64(x[0*8 : 1*8]) + x1 := binary.LittleEndian.Uint64(x[1*8 : 2*8]) + x2 := binary.LittleEndian.Uint64(x[2*8 : 3*8]) + x3 := binary.LittleEndian.Uint64(x[3*8 : 4*8]) + x4 := binary.LittleEndian.Uint64(x[4*8 : 5*8]) + x5 := binary.LittleEndian.Uint64(x[5*8 : 6*8]) + x6 := binary.LittleEndian.Uint64(x[6*8 : 7*8]) + + y0 := binary.LittleEndian.Uint64(y[0*8 : 1*8]) + y1 := binary.LittleEndian.Uint64(y[1*8 : 2*8]) + y2 := binary.LittleEndian.Uint64(y[2*8 : 3*8]) + y3 := binary.LittleEndian.Uint64(y[3*8 : 4*8]) + y4 := binary.LittleEndian.Uint64(y[4*8 : 5*8]) + y5 := binary.LittleEndian.Uint64(y[5*8 : 6*8]) + y6 := binary.LittleEndian.Uint64(y[6*8 : 7*8]) + + t0 := m & (x0 ^ y0) + t1 := m & (x1 ^ y1) + t2 := m & (x2 ^ y2) + t3 := m & (x3 ^ y3) + t4 := m & (x4 ^ y4) + t5 := m & (x5 ^ y5) + t6 := m & (x6 ^ y6) + x0 ^= t0 + x1 ^= t1 + x2 ^= t2 + x3 ^= t3 + x4 ^= t4 + x5 ^= t5 + x6 ^= t6 + y0 ^= t0 + y1 ^= t1 + y2 ^= t2 + y3 ^= t3 + y4 ^= t4 + y5 ^= t5 + y6 ^= t6 + + binary.LittleEndian.PutUint64(x[0*8:1*8], x0) + binary.LittleEndian.PutUint64(x[1*8:2*8], x1) + binary.LittleEndian.PutUint64(x[2*8:3*8], x2) + binary.LittleEndian.PutUint64(x[3*8:4*8], x3) + binary.LittleEndian.PutUint64(x[4*8:5*8], x4) + binary.LittleEndian.PutUint64(x[5*8:6*8], x5) + binary.LittleEndian.PutUint64(x[6*8:7*8], x6) + + binary.LittleEndian.PutUint64(y[0*8:1*8], y0) + binary.LittleEndian.PutUint64(y[1*8:2*8], y1) + binary.LittleEndian.PutUint64(y[2*8:3*8], y2) + binary.LittleEndian.PutUint64(y[3*8:4*8], y3) + binary.LittleEndian.PutUint64(y[4*8:5*8], y4) + binary.LittleEndian.PutUint64(y[5*8:6*8], y5) + binary.LittleEndian.PutUint64(y[6*8:7*8], y6) +} + +func addGeneric(z, x, y *Elt) { + x0 := binary.LittleEndian.Uint64(x[0*8 : 1*8]) + x1 := binary.LittleEndian.Uint64(x[1*8 : 2*8]) + x2 := binary.LittleEndian.Uint64(x[2*8 : 3*8]) + x3 := binary.LittleEndian.Uint64(x[3*8 : 4*8]) + x4 := binary.LittleEndian.Uint64(x[4*8 : 5*8]) + x5 := binary.LittleEndian.Uint64(x[5*8 : 6*8]) + x6 := binary.LittleEndian.Uint64(x[6*8 : 7*8]) + + y0 := binary.LittleEndian.Uint64(y[0*8 : 1*8]) + y1 := binary.LittleEndian.Uint64(y[1*8 : 2*8]) + y2 := binary.LittleEndian.Uint64(y[2*8 : 3*8]) + y3 := binary.LittleEndian.Uint64(y[3*8 : 4*8]) + y4 := binary.LittleEndian.Uint64(y[4*8 : 5*8]) + y5 := binary.LittleEndian.Uint64(y[5*8 : 6*8]) + y6 := binary.LittleEndian.Uint64(y[6*8 : 7*8]) + + z0, c0 := bits.Add64(x0, y0, 0) + z1, c1 := bits.Add64(x1, y1, c0) + z2, c2 := bits.Add64(x2, y2, c1) + z3, c3 := bits.Add64(x3, y3, c2) + z4, c4 := bits.Add64(x4, y4, c3) + z5, c5 := bits.Add64(x5, y5, c4) + z6, z7 := bits.Add64(x6, y6, c5) + + z0, c0 = bits.Add64(z0, z7, 0) + z1, c1 = bits.Add64(z1, 0, c0) + z2, c2 = bits.Add64(z2, 0, c1) + z3, c3 = bits.Add64(z3, z7<<32, c2) + z4, c4 = bits.Add64(z4, 0, c3) + z5, c5 = bits.Add64(z5, 0, c4) + z6, z7 = bits.Add64(z6, 0, c5) + + z0, c0 = bits.Add64(z0, z7, 0) + z1, c1 = bits.Add64(z1, 0, c0) + z2, c2 = bits.Add64(z2, 0, c1) + z3, c3 = bits.Add64(z3, z7<<32, c2) + z4, c4 = bits.Add64(z4, 0, c3) + z5, c5 = bits.Add64(z5, 0, c4) + z6, _ = bits.Add64(z6, 0, c5) + + binary.LittleEndian.PutUint64(z[0*8:1*8], z0) + binary.LittleEndian.PutUint64(z[1*8:2*8], z1) + binary.LittleEndian.PutUint64(z[2*8:3*8], z2) + binary.LittleEndian.PutUint64(z[3*8:4*8], z3) + binary.LittleEndian.PutUint64(z[4*8:5*8], z4) + binary.LittleEndian.PutUint64(z[5*8:6*8], z5) + binary.LittleEndian.PutUint64(z[6*8:7*8], z6) +} + +func subGeneric(z, x, y *Elt) { + x0 := binary.LittleEndian.Uint64(x[0*8 : 1*8]) + x1 := binary.LittleEndian.Uint64(x[1*8 : 2*8]) + x2 := binary.LittleEndian.Uint64(x[2*8 : 3*8]) + x3 := binary.LittleEndian.Uint64(x[3*8 : 4*8]) + x4 := binary.LittleEndian.Uint64(x[4*8 : 5*8]) + x5 := binary.LittleEndian.Uint64(x[5*8 : 6*8]) + x6 := binary.LittleEndian.Uint64(x[6*8 : 7*8]) + + y0 := binary.LittleEndian.Uint64(y[0*8 : 1*8]) + y1 := binary.LittleEndian.Uint64(y[1*8 : 2*8]) + y2 := binary.LittleEndian.Uint64(y[2*8 : 3*8]) + y3 := binary.LittleEndian.Uint64(y[3*8 : 4*8]) + y4 := binary.LittleEndian.Uint64(y[4*8 : 5*8]) + y5 := binary.LittleEndian.Uint64(y[5*8 : 6*8]) + y6 := binary.LittleEndian.Uint64(y[6*8 : 7*8]) + + z0, c0 := bits.Sub64(x0, y0, 0) + z1, c1 := bits.Sub64(x1, y1, c0) + z2, c2 := bits.Sub64(x2, y2, c1) + z3, c3 := bits.Sub64(x3, y3, c2) + z4, c4 := bits.Sub64(x4, y4, c3) + z5, c5 := bits.Sub64(x5, y5, c4) + z6, z7 := bits.Sub64(x6, y6, c5) + + z0, c0 = bits.Sub64(z0, z7, 0) + z1, c1 = bits.Sub64(z1, 0, c0) + z2, c2 = bits.Sub64(z2, 0, c1) + z3, c3 = bits.Sub64(z3, z7<<32, c2) + z4, c4 = bits.Sub64(z4, 0, c3) + z5, c5 = bits.Sub64(z5, 0, c4) + z6, z7 = bits.Sub64(z6, 0, c5) + + z0, c0 = bits.Sub64(z0, z7, 0) + z1, c1 = bits.Sub64(z1, 0, c0) + z2, c2 = bits.Sub64(z2, 0, c1) + z3, c3 = bits.Sub64(z3, z7<<32, c2) + z4, c4 = bits.Sub64(z4, 0, c3) + z5, c5 = bits.Sub64(z5, 0, c4) + z6, _ = bits.Sub64(z6, 0, c5) + + binary.LittleEndian.PutUint64(z[0*8:1*8], z0) + binary.LittleEndian.PutUint64(z[1*8:2*8], z1) + binary.LittleEndian.PutUint64(z[2*8:3*8], z2) + binary.LittleEndian.PutUint64(z[3*8:4*8], z3) + binary.LittleEndian.PutUint64(z[4*8:5*8], z4) + binary.LittleEndian.PutUint64(z[5*8:6*8], z5) + binary.LittleEndian.PutUint64(z[6*8:7*8], z6) +} + +func addsubGeneric(x, y *Elt) { + z := &Elt{} + addGeneric(z, x, y) + subGeneric(y, x, y) + *x = *z +} + +func mulGeneric(z, x, y *Elt) { + x0 := binary.LittleEndian.Uint64(x[0*8 : 1*8]) + x1 := binary.LittleEndian.Uint64(x[1*8 : 2*8]) + x2 := binary.LittleEndian.Uint64(x[2*8 : 3*8]) + x3 := binary.LittleEndian.Uint64(x[3*8 : 4*8]) + x4 := binary.LittleEndian.Uint64(x[4*8 : 5*8]) + x5 := binary.LittleEndian.Uint64(x[5*8 : 6*8]) + x6 := binary.LittleEndian.Uint64(x[6*8 : 7*8]) + + y0 := binary.LittleEndian.Uint64(y[0*8 : 1*8]) + y1 := binary.LittleEndian.Uint64(y[1*8 : 2*8]) + y2 := binary.LittleEndian.Uint64(y[2*8 : 3*8]) + y3 := binary.LittleEndian.Uint64(y[3*8 : 4*8]) + y4 := binary.LittleEndian.Uint64(y[4*8 : 5*8]) + y5 := binary.LittleEndian.Uint64(y[5*8 : 6*8]) + y6 := binary.LittleEndian.Uint64(y[6*8 : 7*8]) + + yy := [7]uint64{y0, y1, y2, y3, y4, y5, y6} + zz := [7]uint64{} + + yi := yy[0] + h0, l0 := bits.Mul64(x0, yi) + h1, l1 := bits.Mul64(x1, yi) + h2, l2 := bits.Mul64(x2, yi) + h3, l3 := bits.Mul64(x3, yi) + h4, l4 := bits.Mul64(x4, yi) + h5, l5 := bits.Mul64(x5, yi) + h6, l6 := bits.Mul64(x6, yi) + + zz[0] = l0 + a0, c0 := bits.Add64(h0, l1, 0) + a1, c1 := bits.Add64(h1, l2, c0) + a2, c2 := bits.Add64(h2, l3, c1) + a3, c3 := bits.Add64(h3, l4, c2) + a4, c4 := bits.Add64(h4, l5, c3) + a5, c5 := bits.Add64(h5, l6, c4) + a6, _ := bits.Add64(h6, 0, c5) + + for i := 1; i < 7; i++ { + yi = yy[i] + h0, l0 = bits.Mul64(x0, yi) + h1, l1 = bits.Mul64(x1, yi) + h2, l2 = bits.Mul64(x2, yi) + h3, l3 = bits.Mul64(x3, yi) + h4, l4 = bits.Mul64(x4, yi) + h5, l5 = bits.Mul64(x5, yi) + h6, l6 = bits.Mul64(x6, yi) + + zz[i], c0 = bits.Add64(a0, l0, 0) + a0, c1 = bits.Add64(a1, l1, c0) + a1, c2 = bits.Add64(a2, l2, c1) + a2, c3 = bits.Add64(a3, l3, c2) + a3, c4 = bits.Add64(a4, l4, c3) + a4, c5 = bits.Add64(a5, l5, c4) + a5, a6 = bits.Add64(a6, l6, c5) + + a0, c0 = bits.Add64(a0, h0, 0) + a1, c1 = bits.Add64(a1, h1, c0) + a2, c2 = bits.Add64(a2, h2, c1) + a3, c3 = bits.Add64(a3, h3, c2) + a4, c4 = bits.Add64(a4, h4, c3) + a5, c5 = bits.Add64(a5, h5, c4) + a6, _ = bits.Add64(a6, h6, c5) + } + red64(z, &zz, &[7]uint64{a0, a1, a2, a3, a4, a5, a6}) +} + +func sqrGeneric(z, x *Elt) { mulGeneric(z, x, x) } + +func red64(z *Elt, l, h *[7]uint64) { + /* (2C13, 2C12, 2C11, 2C10|C10, C9, C8, C7) + (C6,...,C0) */ + h0 := h[0] + h1 := h[1] + h2 := h[2] + h3 := ((h[3] & (0xFFFFFFFF << 32)) << 1) | (h[3] & 0xFFFFFFFF) + h4 := (h[3] >> 63) | (h[4] << 1) + h5 := (h[4] >> 63) | (h[5] << 1) + h6 := (h[5] >> 63) | (h[6] << 1) + h7 := (h[6] >> 63) + + l0, c0 := bits.Add64(h0, l[0], 0) + l1, c1 := bits.Add64(h1, l[1], c0) + l2, c2 := bits.Add64(h2, l[2], c1) + l3, c3 := bits.Add64(h3, l[3], c2) + l4, c4 := bits.Add64(h4, l[4], c3) + l5, c5 := bits.Add64(h5, l[5], c4) + l6, c6 := bits.Add64(h6, l[6], c5) + l7, _ := bits.Add64(h7, 0, c6) + + /* (C10C9, C9C8,C8C7,C7C13,C13C12,C12C11,C11C10) + (C6,...,C0) */ + h0 = (h[3] >> 32) | (h[4] << 32) + h1 = (h[4] >> 32) | (h[5] << 32) + h2 = (h[5] >> 32) | (h[6] << 32) + h3 = (h[6] >> 32) | (h[0] << 32) + h4 = (h[0] >> 32) | (h[1] << 32) + h5 = (h[1] >> 32) | (h[2] << 32) + h6 = (h[2] >> 32) | (h[3] << 32) + + l0, c0 = bits.Add64(l0, h0, 0) + l1, c1 = bits.Add64(l1, h1, c0) + l2, c2 = bits.Add64(l2, h2, c1) + l3, c3 = bits.Add64(l3, h3, c2) + l4, c4 = bits.Add64(l4, h4, c3) + l5, c5 = bits.Add64(l5, h5, c4) + l6, c6 = bits.Add64(l6, h6, c5) + l7, _ = bits.Add64(l7, 0, c6) + + /* (C7) + (C6,...,C0) */ + l0, c0 = bits.Add64(l0, l7, 0) + l1, c1 = bits.Add64(l1, 0, c0) + l2, c2 = bits.Add64(l2, 0, c1) + l3, c3 = bits.Add64(l3, l7<<32, c2) + l4, c4 = bits.Add64(l4, 0, c3) + l5, c5 = bits.Add64(l5, 0, c4) + l6, l7 = bits.Add64(l6, 0, c5) + + /* (C7) + (C6,...,C0) */ + l0, c0 = bits.Add64(l0, l7, 0) + l1, c1 = bits.Add64(l1, 0, c0) + l2, c2 = bits.Add64(l2, 0, c1) + l3, c3 = bits.Add64(l3, l7<<32, c2) + l4, c4 = bits.Add64(l4, 0, c3) + l5, c5 = bits.Add64(l5, 0, c4) + l6, _ = bits.Add64(l6, 0, c5) + + binary.LittleEndian.PutUint64(z[0*8:1*8], l0) + binary.LittleEndian.PutUint64(z[1*8:2*8], l1) + binary.LittleEndian.PutUint64(z[2*8:3*8], l2) + binary.LittleEndian.PutUint64(z[3*8:4*8], l3) + binary.LittleEndian.PutUint64(z[4*8:5*8], l4) + binary.LittleEndian.PutUint64(z[5*8:6*8], l5) + binary.LittleEndian.PutUint64(z[6*8:7*8], l6) +} diff --git a/vendor/github.com/cloudflare/circl/math/fp448/fp_noasm.go b/vendor/github.com/cloudflare/circl/math/fp448/fp_noasm.go new file mode 100644 index 000000000000..a62225d29624 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/fp448/fp_noasm.go @@ -0,0 +1,12 @@ +//go:build !amd64 || purego +// +build !amd64 purego + +package fp448 + +func cmov(x, y *Elt, n uint) { cmovGeneric(x, y, n) } +func cswap(x, y *Elt, n uint) { cswapGeneric(x, y, n) } +func add(z, x, y *Elt) { addGeneric(z, x, y) } +func sub(z, x, y *Elt) { subGeneric(z, x, y) } +func addsub(x, y *Elt) { addsubGeneric(x, y) } +func mul(z, x, y *Elt) { mulGeneric(z, x, y) } +func sqr(z, x *Elt) { sqrGeneric(z, x) } diff --git a/vendor/github.com/cloudflare/circl/math/fp448/fuzzer.go b/vendor/github.com/cloudflare/circl/math/fp448/fuzzer.go new file mode 100644 index 000000000000..2d7afc805984 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/fp448/fuzzer.go @@ -0,0 +1,75 @@ +//go:build gofuzz +// +build gofuzz + +// How to run the fuzzer: +// +// $ go get -u github.com/dvyukov/go-fuzz/go-fuzz +// $ go get -u github.com/dvyukov/go-fuzz/go-fuzz-build +// $ go-fuzz-build -libfuzzer -func FuzzReduction -o lib.a +// $ clang -fsanitize=fuzzer lib.a -o fu.exe +// $ ./fu.exe +package fp448 + +import ( + "encoding/binary" + "fmt" + "math/big" + + "github.com/cloudflare/circl/internal/conv" +) + +// FuzzReduction is a fuzzer target for red64 function, which reduces t +// (112 bits) to a number t' (56 bits) congruent modulo p448. +func FuzzReduction(data []byte) int { + if len(data) != 2*Size { + return -1 + } + var got, want Elt + var lo, hi [7]uint64 + a := data[:Size] + b := data[Size:] + lo[0] = binary.LittleEndian.Uint64(a[0*8 : 1*8]) + lo[1] = binary.LittleEndian.Uint64(a[1*8 : 2*8]) + lo[2] = binary.LittleEndian.Uint64(a[2*8 : 3*8]) + lo[3] = binary.LittleEndian.Uint64(a[3*8 : 4*8]) + lo[4] = binary.LittleEndian.Uint64(a[4*8 : 5*8]) + lo[5] = binary.LittleEndian.Uint64(a[5*8 : 6*8]) + lo[6] = binary.LittleEndian.Uint64(a[6*8 : 7*8]) + + hi[0] = binary.LittleEndian.Uint64(b[0*8 : 1*8]) + hi[1] = binary.LittleEndian.Uint64(b[1*8 : 2*8]) + hi[2] = binary.LittleEndian.Uint64(b[2*8 : 3*8]) + hi[3] = binary.LittleEndian.Uint64(b[3*8 : 4*8]) + hi[4] = binary.LittleEndian.Uint64(b[4*8 : 5*8]) + hi[5] = binary.LittleEndian.Uint64(b[5*8 : 6*8]) + hi[6] = binary.LittleEndian.Uint64(b[6*8 : 7*8]) + + red64(&got, &lo, &hi) + + t := conv.BytesLe2BigInt(data[:2*Size]) + + two448 := big.NewInt(1) + two448.Lsh(two448, 448) // 2^448 + mask448 := big.NewInt(1) + mask448.Sub(two448, mask448) // 2^448-1 + two224plus1 := big.NewInt(1) + two224plus1.Lsh(two224plus1, 224) + two224plus1.Add(two224plus1, big.NewInt(1)) // 2^224+1 + + var loBig, hiBig big.Int + for t.Cmp(two448) >= 0 { + loBig.And(t, mask448) + hiBig.Rsh(t, 448) + t.Mul(&hiBig, two224plus1) + t.Add(t, &loBig) + } + conv.BigInt2BytesLe(want[:], t) + + if got != want { + fmt.Printf("in: %v\n", conv.BytesLe2BigInt(data[:2*Size])) + fmt.Printf("got: %v\n", got) + fmt.Printf("want: %v\n", want) + panic("error found") + } + return 1 +} diff --git a/vendor/github.com/cloudflare/circl/math/mlsbset/mlsbset.go b/vendor/github.com/cloudflare/circl/math/mlsbset/mlsbset.go new file mode 100644 index 000000000000..a43851b8bb2b --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/mlsbset/mlsbset.go @@ -0,0 +1,122 @@ +// Package mlsbset provides a constant-time exponentiation method with precomputation. +// +// References: "Efficient and secure algorithms for GLV-based scalar +// multiplication and their implementation on GLV–GLS curves" by (Faz-Hernandez et al.) +// - https://doi.org/10.1007/s13389-014-0085-7 +// - https://eprint.iacr.org/2013/158 +package mlsbset + +import ( + "errors" + "fmt" + "math/big" + + "github.com/cloudflare/circl/internal/conv" +) + +// EltG is a group element. +type EltG interface{} + +// EltP is a precomputed group element. +type EltP interface{} + +// Group defines the operations required by MLSBSet exponentiation method. +type Group interface { + Identity() EltG // Returns the identity of the group. + Sqr(x EltG) // Calculates x = x^2. + Mul(x EltG, y EltP) // Calculates x = x*y. + NewEltP() EltP // Returns an arbitrary precomputed element. + ExtendedEltP() EltP // Returns the precomputed element x^(2^(w*d)). + Lookup(a EltP, v uint, s, u int32) // Sets a = s*T[v][u]. +} + +// Params contains the parameters of the encoding. +type Params struct { + T uint // T is the maximum size (in bits) of exponents. + V uint // V is the number of tables. + W uint // W is the window size. + E uint // E is the number of digits per table. + D uint // D is the number of digits in total. + L uint // L is the length of the code. +} + +// Encoder allows to convert integers into valid powers. +type Encoder struct{ p Params } + +// New produces an encoder of the MLSBSet algorithm. +func New(t, v, w uint) (Encoder, error) { + if !(t > 1 && v >= 1 && w >= 2) { + return Encoder{}, errors.New("t>1, v>=1, w>=2") + } + e := (t + w*v - 1) / (w * v) + d := e * v + l := d * w + return Encoder{Params{t, v, w, e, d, l}}, nil +} + +// Encode converts an odd integer k into a valid power for exponentiation. +func (m Encoder) Encode(k []byte) (*Power, error) { + if len(k) == 0 { + return nil, errors.New("empty slice") + } + if !(len(k) <= int(m.p.L+7)>>3) { + return nil, errors.New("k too big") + } + if k[0]%2 == 0 { + return nil, errors.New("k must be odd") + } + ap := int((m.p.L+7)/8) - len(k) + k = append(k, make([]byte, ap)...) + s := m.signs(k) + b := make([]int32, m.p.L-m.p.D) + c := conv.BytesLe2BigInt(k) + c.Rsh(c, m.p.D) + var bi big.Int + for i := m.p.D; i < m.p.L; i++ { + c0 := int32(c.Bit(0)) + b[i-m.p.D] = s[i%m.p.D] * c0 + bi.SetInt64(int64(b[i-m.p.D] >> 1)) + c.Rsh(c, 1) + c.Sub(c, &bi) + } + carry := int(c.Int64()) + return &Power{m, s, b, carry}, nil +} + +// signs calculates the set of signs. +func (m Encoder) signs(k []byte) []int32 { + s := make([]int32, m.p.D) + s[m.p.D-1] = 1 + for i := uint(1); i < m.p.D; i++ { + ki := int32((k[i>>3] >> (i & 0x7)) & 0x1) + s[i-1] = 2*ki - 1 + } + return s +} + +// GetParams returns the complementary parameters of the encoding. +func (m Encoder) GetParams() Params { return m.p } + +// tableSize returns the size of each table. +func (m Encoder) tableSize() uint { return 1 << (m.p.W - 1) } + +// Elts returns the total number of elements that must be precomputed. +func (m Encoder) Elts() uint { return m.p.V * m.tableSize() } + +// IsExtended returns true if the element x^(2^(wd)) must be calculated. +func (m Encoder) IsExtended() bool { q := m.p.T / (m.p.V * m.p.W); return m.p.T == q*m.p.V*m.p.W } + +// Ops returns the number of squares and multiplications executed during an exponentiation. +func (m Encoder) Ops() (S uint, M uint) { + S = m.p.E + M = m.p.E * m.p.V + if m.IsExtended() { + M++ + } + return +} + +func (m Encoder) String() string { + return fmt.Sprintf("T: %v W: %v V: %v e: %v d: %v l: %v wv|t: %v", + m.p.T, m.p.W, m.p.V, m.p.E, m.p.D, m.p.L, m.IsExtended()) +} diff --git a/vendor/github.com/cloudflare/circl/math/mlsbset/power.go b/vendor/github.com/cloudflare/circl/math/mlsbset/power.go new file mode 100644 index 000000000000..3f214c3046af --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/mlsbset/power.go @@ -0,0 +1,64 @@ +package mlsbset + +import "fmt" + +// Power is a valid exponent produced by the MLSBSet encoding algorithm. +type Power struct { + set Encoder // parameters of code. + s []int32 // set of signs. + b []int32 // set of digits. + c int // carry is {0,1}. +} + +// Exp is calculates x^k, where x is a predetermined element of a group G. +func (p *Power) Exp(G Group) EltG { + a, b := G.Identity(), G.NewEltP() + for e := int(p.set.p.E - 1); e >= 0; e-- { + G.Sqr(a) + for v := uint(0); v < p.set.p.V; v++ { + sgnElt, idElt := p.Digit(v, uint(e)) + G.Lookup(b, v, sgnElt, idElt) + G.Mul(a, b) + } + } + if p.set.IsExtended() && p.c == 1 { + G.Mul(a, G.ExtendedEltP()) + } + return a +} + +// Digit returns the (v,e)-th digit and its sign. +func (p *Power) Digit(v, e uint) (sgn, dig int32) { + sgn = p.bit(0, v, e) + dig = 0 + for i := p.set.p.W - 1; i > 0; i-- { + dig = 2*dig + p.bit(i, v, e) + } + mask := dig >> 31 + dig = (dig + mask) ^ mask + return sgn, dig +} + +// bit returns the (w,v,e)-th bit of the code. +func (p *Power) bit(w, v, e uint) int32 { + if !(w < p.set.p.W && + v < p.set.p.V && + e < p.set.p.E) { + panic(fmt.Errorf("indexes outside (%v,%v,%v)", w, v, e)) + } + if w == 0 { + return p.s[p.set.p.E*v+e] + } + return p.b[p.set.p.D*(w-1)+p.set.p.E*v+e] +} + +func (p *Power) String() string { + dig := "" + for j := uint(0); j < p.set.p.V; j++ { + for i := uint(0); i < p.set.p.E; i++ { + s, d := p.Digit(j, i) + dig += fmt.Sprintf("(%2v,%2v) = %+2v %+2v\n", j, i, s, d) + } + } + return fmt.Sprintf("len: %v\ncarry: %v\ndigits:\n%v", len(p.b)+len(p.s), p.c, dig) +} diff --git a/vendor/github.com/cloudflare/circl/math/wnaf.go b/vendor/github.com/cloudflare/circl/math/wnaf.go new file mode 100644 index 000000000000..94a1ec504290 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/wnaf.go @@ -0,0 +1,84 @@ +// Package math provides some utility functions for big integers. +package math + +import "math/big" + +// SignedDigit obtains the signed-digit recoding of n and returns a list L of +// digits such that n = sum( L[i]*2^(i*(w-1)) ), and each L[i] is an odd number +// in the set {±1, ±3, ..., ±2^(w-1)-1}. The third parameter ensures that the +// output has ceil(l/(w-1)) digits. +// +// Restrictions: +// - n is odd and n > 0. +// - 1 < w < 32. +// - l >= bit length of n. +// +// References: +// - Alg.6 in "Exponent Recoding and Regular Exponentiation Algorithms" +// by Joye-Tunstall. http://doi.org/10.1007/978-3-642-02384-2_21 +// - Alg.6 in "Selecting Elliptic Curves for Cryptography: An Efficiency and +// Security Analysis" by Bos et al. http://doi.org/10.1007/s13389-015-0097-y +func SignedDigit(n *big.Int, w, l uint) []int32 { + if n.Sign() <= 0 || n.Bit(0) == 0 { + panic("n must be non-zero, odd, and positive") + } + if w <= 1 || w >= 32 { + panic("Verify that 1 < w < 32") + } + if uint(n.BitLen()) > l { + panic("n is too big to fit in l digits") + } + lenN := (l + (w - 1) - 1) / (w - 1) // ceil(l/(w-1)) + L := make([]int32, lenN+1) + var k, v big.Int + k.Set(n) + + var i uint + for i = 0; i < lenN; i++ { + words := k.Bits() + value := int32(words[0] & ((1 << w) - 1)) + value -= int32(1) << (w - 1) + L[i] = value + v.SetInt64(int64(value)) + k.Sub(&k, &v) + k.Rsh(&k, w-1) + } + L[i] = int32(k.Int64()) + return L +} + +// OmegaNAF obtains the window-w Non-Adjacent Form of a positive number n and +// 1 < w < 32. The returned slice L holds n = sum( L[i]*2^i ). +// +// Reference: +// - Alg.9 "Efficient arithmetic on Koblitz curves" by Solinas. +// http://doi.org/10.1023/A:1008306223194 +func OmegaNAF(n *big.Int, w uint) (L []int32) { + if n.Sign() < 0 { + panic("n must be positive") + } + if w <= 1 || w >= 32 { + panic("Verify that 1 < w < 32") + } + + L = make([]int32, n.BitLen()+1) + var k, v big.Int + k.Set(n) + + i := 0 + for ; k.Sign() > 0; i++ { + value := int32(0) + if k.Bit(0) == 1 { + words := k.Bits() + value = int32(words[0] & ((1 << w) - 1)) + if value >= (int32(1) << (w - 1)) { + value -= int32(1) << w + } + v.SetInt64(int64(value)) + k.Sub(&k, &v) + } + L[i] = value + k.Rsh(&k, 1) + } + return L[:i] +} diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go b/vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go new file mode 100644 index 000000000000..08ca65d799a1 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go @@ -0,0 +1,453 @@ +// Package ed25519 implements Ed25519 signature scheme as described in RFC-8032. +// +// This package provides optimized implementations of the three signature +// variants and maintaining closer compatiblilty with crypto/ed25519. +// +// | Scheme Name | Sign Function | Verification | Context | +// |-------------|-------------------|---------------|-------------------| +// | Ed25519 | Sign | Verify | None | +// | Ed25519Ph | SignPh | VerifyPh | Yes, can be empty | +// | Ed25519Ctx | SignWithCtx | VerifyWithCtx | Yes, non-empty | +// | All above | (PrivateKey).Sign | VerifyAny | As above | +// +// Specific functions for sign and verify are defined. A generic signing +// function for all schemes is available through the crypto.Signer interface, +// which is implemented by the PrivateKey type. A correspond all-in-one +// verification method is provided by the VerifyAny function. +// +// Signing with Ed25519Ph or Ed25519Ctx requires a context string for domain +// separation. This parameter is passed using a SignerOptions struct defined +// in this package. While Ed25519Ph accepts an empty context, Ed25519Ctx +// enforces non-empty context strings. +// +// # Compatibility with crypto.ed25519 +// +// These functions are compatible with the “Ed25519” function defined in +// RFC-8032. However, unlike RFC 8032's formulation, this package's private +// key representation includes a public key suffix to make multiple signing +// operations with the same key more efficient. This package refers to the +// RFC-8032 private key as the “seed”. +// +// References +// +// - RFC-8032: https://rfc-editor.org/rfc/rfc8032.txt +// - Ed25519: https://ed25519.cr.yp.to/ +// - EdDSA: High-speed high-security signatures. https://doi.org/10.1007/s13389-012-0027-1 +package ed25519 + +import ( + "bytes" + "crypto" + cryptoRand "crypto/rand" + "crypto/sha512" + "crypto/subtle" + "errors" + "fmt" + "io" + "strconv" + + "github.com/cloudflare/circl/sign" +) + +const ( + // ContextMaxSize is the maximum length (in bytes) allowed for context. + ContextMaxSize = 255 + // PublicKeySize is the size, in bytes, of public keys as used in this package. + PublicKeySize = 32 + // PrivateKeySize is the size, in bytes, of private keys as used in this package. + PrivateKeySize = 64 + // SignatureSize is the size, in bytes, of signatures generated and verified by this package. + SignatureSize = 64 + // SeedSize is the size, in bytes, of private key seeds. These are the private key representations used by RFC 8032. + SeedSize = 32 +) + +const ( + paramB = 256 / 8 // Size of keys in bytes. +) + +// SignerOptions implements crypto.SignerOpts and augments with parameters +// that are specific to the Ed25519 signature schemes. +type SignerOptions struct { + // Hash must be crypto.Hash(0) for Ed25519/Ed25519ctx, or crypto.SHA512 + // for Ed25519ph. + crypto.Hash + + // Context is an optional domain separation string for Ed25519ph and a + // must for Ed25519ctx. Its length must be less or equal than 255 bytes. + Context string + + // Scheme is an identifier for choosing a signature scheme. The zero value + // is ED25519. + Scheme SchemeID +} + +// SchemeID is an identifier for each signature scheme. +type SchemeID uint + +const ( + ED25519 SchemeID = iota + ED25519Ph + ED25519Ctx +) + +// PrivateKey is the type of Ed25519 private keys. It implements crypto.Signer. +type PrivateKey []byte + +// Equal reports whether priv and x have the same value. +func (priv PrivateKey) Equal(x crypto.PrivateKey) bool { + xx, ok := x.(PrivateKey) + return ok && subtle.ConstantTimeCompare(priv, xx) == 1 +} + +// Public returns the PublicKey corresponding to priv. +func (priv PrivateKey) Public() crypto.PublicKey { + publicKey := make(PublicKey, PublicKeySize) + copy(publicKey, priv[SeedSize:]) + return publicKey +} + +// Seed returns the private key seed corresponding to priv. It is provided for +// interoperability with RFC 8032. RFC 8032's private keys correspond to seeds +// in this package. +func (priv PrivateKey) Seed() []byte { + seed := make([]byte, SeedSize) + copy(seed, priv[:SeedSize]) + return seed +} + +func (priv PrivateKey) Scheme() sign.Scheme { return sch } + +func (pub PublicKey) Scheme() sign.Scheme { return sch } + +func (priv PrivateKey) MarshalBinary() (data []byte, err error) { + privateKey := make(PrivateKey, PrivateKeySize) + copy(privateKey, priv) + return privateKey, nil +} + +func (pub PublicKey) MarshalBinary() (data []byte, err error) { + publicKey := make(PublicKey, PublicKeySize) + copy(publicKey, pub) + return publicKey, nil +} + +// Equal reports whether pub and x have the same value. +func (pub PublicKey) Equal(x crypto.PublicKey) bool { + xx, ok := x.(PublicKey) + return ok && bytes.Equal(pub, xx) +} + +// Sign creates a signature of a message with priv key. +// This function is compatible with crypto.ed25519 and also supports the +// three signature variants defined in RFC-8032, namely Ed25519 (or pure +// EdDSA), Ed25519Ph, and Ed25519Ctx. +// The opts.HashFunc() must return zero to specify either Ed25519 or Ed25519Ctx +// variant. This can be achieved by passing crypto.Hash(0) as the value for +// opts. +// The opts.HashFunc() must return SHA512 to specify the Ed25519Ph variant. +// This can be achieved by passing crypto.SHA512 as the value for opts. +// Use a SignerOptions struct (defined in this package) to pass a context +// string for signing. +func (priv PrivateKey) Sign( + rand io.Reader, + message []byte, + opts crypto.SignerOpts, +) (signature []byte, err error) { + var ctx string + var scheme SchemeID + if o, ok := opts.(SignerOptions); ok { + ctx = o.Context + scheme = o.Scheme + } + + switch true { + case scheme == ED25519 && opts.HashFunc() == crypto.Hash(0): + return Sign(priv, message), nil + case scheme == ED25519Ph && opts.HashFunc() == crypto.SHA512: + return SignPh(priv, message, ctx), nil + case scheme == ED25519Ctx && opts.HashFunc() == crypto.Hash(0) && len(ctx) > 0: + return SignWithCtx(priv, message, ctx), nil + default: + return nil, errors.New("ed25519: bad hash algorithm") + } +} + +// GenerateKey generates a public/private key pair using entropy from rand. +// If rand is nil, crypto/rand.Reader will be used. +func GenerateKey(rand io.Reader) (PublicKey, PrivateKey, error) { + if rand == nil { + rand = cryptoRand.Reader + } + + seed := make([]byte, SeedSize) + if _, err := io.ReadFull(rand, seed); err != nil { + return nil, nil, err + } + + privateKey := NewKeyFromSeed(seed) + publicKey := make(PublicKey, PublicKeySize) + copy(publicKey, privateKey[SeedSize:]) + + return publicKey, privateKey, nil +} + +// NewKeyFromSeed calculates a private key from a seed. It will panic if +// len(seed) is not SeedSize. This function is provided for interoperability +// with RFC 8032. RFC 8032's private keys correspond to seeds in this +// package. +func NewKeyFromSeed(seed []byte) PrivateKey { + privateKey := make(PrivateKey, PrivateKeySize) + newKeyFromSeed(privateKey, seed) + return privateKey +} + +func newKeyFromSeed(privateKey, seed []byte) { + if l := len(seed); l != SeedSize { + panic("ed25519: bad seed length: " + strconv.Itoa(l)) + } + var P pointR1 + k := sha512.Sum512(seed) + clamp(k[:]) + reduceModOrder(k[:paramB], false) + P.fixedMult(k[:paramB]) + copy(privateKey[:SeedSize], seed) + _ = P.ToBytes(privateKey[SeedSize:]) +} + +func signAll(signature []byte, privateKey PrivateKey, message, ctx []byte, preHash bool) { + if l := len(privateKey); l != PrivateKeySize { + panic("ed25519: bad private key length: " + strconv.Itoa(l)) + } + + H := sha512.New() + var PHM []byte + + if preHash { + _, _ = H.Write(message) + PHM = H.Sum(nil) + H.Reset() + } else { + PHM = message + } + + // 1. Hash the 32-byte private key using SHA-512. + _, _ = H.Write(privateKey[:SeedSize]) + h := H.Sum(nil) + clamp(h[:]) + prefix, s := h[paramB:], h[:paramB] + + // 2. Compute SHA-512(dom2(F, C) || prefix || PH(M)) + H.Reset() + + writeDom(H, ctx, preHash) + + _, _ = H.Write(prefix) + _, _ = H.Write(PHM) + r := H.Sum(nil) + reduceModOrder(r[:], true) + + // 3. Compute the point [r]B. + var P pointR1 + P.fixedMult(r[:paramB]) + R := (&[paramB]byte{})[:] + if err := P.ToBytes(R); err != nil { + panic(err) + } + + // 4. Compute SHA512(dom2(F, C) || R || A || PH(M)). + H.Reset() + + writeDom(H, ctx, preHash) + + _, _ = H.Write(R) + _, _ = H.Write(privateKey[SeedSize:]) + _, _ = H.Write(PHM) + hRAM := H.Sum(nil) + + reduceModOrder(hRAM[:], true) + + // 5. Compute S = (r + k * s) mod order. + S := (&[paramB]byte{})[:] + calculateS(S, r[:paramB], hRAM[:paramB], s) + + // 6. The signature is the concatenation of R and S. + copy(signature[:paramB], R[:]) + copy(signature[paramB:], S[:]) +} + +// Sign signs the message with privateKey and returns a signature. +// This function supports the signature variant defined in RFC-8032: Ed25519, +// also known as the pure version of EdDSA. +// It will panic if len(privateKey) is not PrivateKeySize. +func Sign(privateKey PrivateKey, message []byte) []byte { + signature := make([]byte, SignatureSize) + signAll(signature, privateKey, message, []byte(""), false) + return signature +} + +// SignPh creates a signature of a message with private key and context. +// This function supports the signature variant defined in RFC-8032: Ed25519ph, +// meaning it internally hashes the message using SHA-512, and optionally +// accepts a context string. +// It will panic if len(privateKey) is not PrivateKeySize. +// Context could be passed to this function, which length should be no more than +// ContextMaxSize=255. It can be empty. +func SignPh(privateKey PrivateKey, message []byte, ctx string) []byte { + if len(ctx) > ContextMaxSize { + panic(fmt.Errorf("ed25519: bad context length: %v", len(ctx))) + } + + signature := make([]byte, SignatureSize) + signAll(signature, privateKey, message, []byte(ctx), true) + return signature +} + +// SignWithCtx creates a signature of a message with private key and context. +// This function supports the signature variant defined in RFC-8032: Ed25519ctx, +// meaning it accepts a non-empty context string. +// It will panic if len(privateKey) is not PrivateKeySize. +// Context must be passed to this function, which length should be no more than +// ContextMaxSize=255 and cannot be empty. +func SignWithCtx(privateKey PrivateKey, message []byte, ctx string) []byte { + if len(ctx) == 0 || len(ctx) > ContextMaxSize { + panic(fmt.Errorf("ed25519: bad context length: %v > %v", len(ctx), ContextMaxSize)) + } + + signature := make([]byte, SignatureSize) + signAll(signature, privateKey, message, []byte(ctx), false) + return signature +} + +func verify(public PublicKey, message, signature, ctx []byte, preHash bool) bool { + if len(public) != PublicKeySize || + len(signature) != SignatureSize || + !isLessThanOrder(signature[paramB:]) { + return false + } + + var P pointR1 + if ok := P.FromBytes(public); !ok { + return false + } + + H := sha512.New() + var PHM []byte + + if preHash { + _, _ = H.Write(message) + PHM = H.Sum(nil) + H.Reset() + } else { + PHM = message + } + + R := signature[:paramB] + + writeDom(H, ctx, preHash) + + _, _ = H.Write(R) + _, _ = H.Write(public) + _, _ = H.Write(PHM) + hRAM := H.Sum(nil) + reduceModOrder(hRAM[:], true) + + var Q pointR1 + encR := (&[paramB]byte{})[:] + P.neg() + Q.doubleMult(&P, signature[paramB:], hRAM[:paramB]) + _ = Q.ToBytes(encR) + return bytes.Equal(R, encR) +} + +// VerifyAny returns true if the signature is valid. Failure cases are invalid +// signature, or when the public key cannot be decoded. +// This function supports all the three signature variants defined in RFC-8032, +// namely Ed25519 (or pure EdDSA), Ed25519Ph, and Ed25519Ctx. +// The opts.HashFunc() must return zero to specify either Ed25519 or Ed25519Ctx +// variant. This can be achieved by passing crypto.Hash(0) as the value for opts. +// The opts.HashFunc() must return SHA512 to specify the Ed25519Ph variant. +// This can be achieved by passing crypto.SHA512 as the value for opts. +// Use a SignerOptions struct to pass a context string for signing. +func VerifyAny(public PublicKey, message, signature []byte, opts crypto.SignerOpts) bool { + var ctx string + var scheme SchemeID + if o, ok := opts.(SignerOptions); ok { + ctx = o.Context + scheme = o.Scheme + } + + switch true { + case scheme == ED25519 && opts.HashFunc() == crypto.Hash(0): + return Verify(public, message, signature) + case scheme == ED25519Ph && opts.HashFunc() == crypto.SHA512: + return VerifyPh(public, message, signature, ctx) + case scheme == ED25519Ctx && opts.HashFunc() == crypto.Hash(0) && len(ctx) > 0: + return VerifyWithCtx(public, message, signature, ctx) + default: + return false + } +} + +// Verify returns true if the signature is valid. Failure cases are invalid +// signature, or when the public key cannot be decoded. +// This function supports the signature variant defined in RFC-8032: Ed25519, +// also known as the pure version of EdDSA. +func Verify(public PublicKey, message, signature []byte) bool { + return verify(public, message, signature, []byte(""), false) +} + +// VerifyPh returns true if the signature is valid. Failure cases are invalid +// signature, or when the public key cannot be decoded. +// This function supports the signature variant defined in RFC-8032: Ed25519ph, +// meaning it internally hashes the message using SHA-512. +// Context could be passed to this function, which length should be no more than +// 255. It can be empty. +func VerifyPh(public PublicKey, message, signature []byte, ctx string) bool { + return verify(public, message, signature, []byte(ctx), true) +} + +// VerifyWithCtx returns true if the signature is valid. Failure cases are invalid +// signature, or when the public key cannot be decoded, or when context is +// not provided. +// This function supports the signature variant defined in RFC-8032: Ed25519ctx, +// meaning it does not handle prehashed messages. Non-empty context string must be +// provided, and must not be more than 255 of length. +func VerifyWithCtx(public PublicKey, message, signature []byte, ctx string) bool { + if len(ctx) == 0 || len(ctx) > ContextMaxSize { + return false + } + + return verify(public, message, signature, []byte(ctx), false) +} + +func clamp(k []byte) { + k[0] &= 248 + k[paramB-1] = (k[paramB-1] & 127) | 64 +} + +// isLessThanOrder returns true if 0 <= x < order. +func isLessThanOrder(x []byte) bool { + i := len(order) - 1 + for i > 0 && x[i] == order[i] { + i-- + } + return x[i] < order[i] +} + +func writeDom(h io.Writer, ctx []byte, preHash bool) { + dom2 := "SigEd25519 no Ed25519 collisions" + + if len(ctx) > 0 { + _, _ = h.Write([]byte(dom2)) + if preHash { + _, _ = h.Write([]byte{byte(0x01), byte(len(ctx))}) + } else { + _, _ = h.Write([]byte{byte(0x00), byte(len(ctx))}) + } + _, _ = h.Write(ctx) + } else if preHash { + _, _ = h.Write([]byte(dom2)) + _, _ = h.Write([]byte{0x01, 0x00}) + } +} diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/modular.go b/vendor/github.com/cloudflare/circl/sign/ed25519/modular.go new file mode 100644 index 000000000000..10efafdcafba --- /dev/null +++ b/vendor/github.com/cloudflare/circl/sign/ed25519/modular.go @@ -0,0 +1,175 @@ +package ed25519 + +import ( + "encoding/binary" + "math/bits" +) + +var order = [paramB]byte{ + 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, + 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, +} + +// isLessThan returns true if 0 <= x < y, and assumes that slices have the same length. +func isLessThan(x, y []byte) bool { + i := len(x) - 1 + for i > 0 && x[i] == y[i] { + i-- + } + return x[i] < y[i] +} + +// reduceModOrder calculates k = k mod order of the curve. +func reduceModOrder(k []byte, is512Bit bool) { + var X [((2 * paramB) * 8) / 64]uint64 + numWords := len(k) >> 3 + for i := 0; i < numWords; i++ { + X[i] = binary.LittleEndian.Uint64(k[i*8 : (i+1)*8]) + } + red512(&X, is512Bit) + for i := 0; i < numWords; i++ { + binary.LittleEndian.PutUint64(k[i*8:(i+1)*8], X[i]) + } +} + +// red512 calculates x = x mod Order of the curve. +func red512(x *[8]uint64, full bool) { + // Implementation of Algs.(14.47)+(14.52) of Handbook of Applied + // Cryptography, by A. Menezes, P. van Oorschot, and S. Vanstone. + const ( + ell0 = uint64(0x5812631a5cf5d3ed) + ell1 = uint64(0x14def9dea2f79cd6) + ell160 = uint64(0x812631a5cf5d3ed0) + ell161 = uint64(0x4def9dea2f79cd65) + ell162 = uint64(0x0000000000000001) + ) + + var c0, c1, c2, c3 uint64 + r0, r1, r2, r3, r4 := x[0], x[1], x[2], x[3], uint64(0) + + if full { + q0, q1, q2, q3 := x[4], x[5], x[6], x[7] + + for i := 0; i < 3; i++ { + h0, s0 := bits.Mul64(q0, ell160) + h1, s1 := bits.Mul64(q1, ell160) + h2, s2 := bits.Mul64(q2, ell160) + h3, s3 := bits.Mul64(q3, ell160) + + s1, c0 = bits.Add64(h0, s1, 0) + s2, c1 = bits.Add64(h1, s2, c0) + s3, c2 = bits.Add64(h2, s3, c1) + s4, _ := bits.Add64(h3, 0, c2) + + h0, l0 := bits.Mul64(q0, ell161) + h1, l1 := bits.Mul64(q1, ell161) + h2, l2 := bits.Mul64(q2, ell161) + h3, l3 := bits.Mul64(q3, ell161) + + l1, c0 = bits.Add64(h0, l1, 0) + l2, c1 = bits.Add64(h1, l2, c0) + l3, c2 = bits.Add64(h2, l3, c1) + l4, _ := bits.Add64(h3, 0, c2) + + s1, c0 = bits.Add64(s1, l0, 0) + s2, c1 = bits.Add64(s2, l1, c0) + s3, c2 = bits.Add64(s3, l2, c1) + s4, c3 = bits.Add64(s4, l3, c2) + s5, s6 := bits.Add64(l4, 0, c3) + + s2, c0 = bits.Add64(s2, q0, 0) + s3, c1 = bits.Add64(s3, q1, c0) + s4, c2 = bits.Add64(s4, q2, c1) + s5, c3 = bits.Add64(s5, q3, c2) + s6, s7 := bits.Add64(s6, 0, c3) + + q := q0 | q1 | q2 | q3 + m := -((q | -q) >> 63) // if q=0 then m=0...0 else m=1..1 + s0 &= m + s1 &= m + s2 &= m + s3 &= m + q0, q1, q2, q3 = s4, s5, s6, s7 + + if (i+1)%2 == 0 { + r0, c0 = bits.Add64(r0, s0, 0) + r1, c1 = bits.Add64(r1, s1, c0) + r2, c2 = bits.Add64(r2, s2, c1) + r3, c3 = bits.Add64(r3, s3, c2) + r4, _ = bits.Add64(r4, 0, c3) + } else { + r0, c0 = bits.Sub64(r0, s0, 0) + r1, c1 = bits.Sub64(r1, s1, c0) + r2, c2 = bits.Sub64(r2, s2, c1) + r3, c3 = bits.Sub64(r3, s3, c2) + r4, _ = bits.Sub64(r4, 0, c3) + } + } + + m := -(r4 >> 63) + r0, c0 = bits.Add64(r0, m&ell160, 0) + r1, c1 = bits.Add64(r1, m&ell161, c0) + r2, c2 = bits.Add64(r2, m&ell162, c1) + r3, c3 = bits.Add64(r3, 0, c2) + r4, _ = bits.Add64(r4, m&1, c3) + x[4], x[5], x[6], x[7] = 0, 0, 0, 0 + } + + q0 := (r4 << 4) | (r3 >> 60) + r3 &= (uint64(1) << 60) - 1 + + h0, s0 := bits.Mul64(ell0, q0) + h1, s1 := bits.Mul64(ell1, q0) + s1, c0 = bits.Add64(h0, s1, 0) + s2, _ := bits.Add64(h1, 0, c0) + + r0, c0 = bits.Sub64(r0, s0, 0) + r1, c1 = bits.Sub64(r1, s1, c0) + r2, c2 = bits.Sub64(r2, s2, c1) + r3, _ = bits.Sub64(r3, 0, c2) + + x[0], x[1], x[2], x[3] = r0, r1, r2, r3 +} + +// calculateS performs s = r+k*a mod Order of the curve. +func calculateS(s, r, k, a []byte) { + K := [4]uint64{ + binary.LittleEndian.Uint64(k[0*8 : 1*8]), + binary.LittleEndian.Uint64(k[1*8 : 2*8]), + binary.LittleEndian.Uint64(k[2*8 : 3*8]), + binary.LittleEndian.Uint64(k[3*8 : 4*8]), + } + S := [8]uint64{ + binary.LittleEndian.Uint64(r[0*8 : 1*8]), + binary.LittleEndian.Uint64(r[1*8 : 2*8]), + binary.LittleEndian.Uint64(r[2*8 : 3*8]), + binary.LittleEndian.Uint64(r[3*8 : 4*8]), + } + var c3 uint64 + for i := range K { + ai := binary.LittleEndian.Uint64(a[i*8 : (i+1)*8]) + + h0, l0 := bits.Mul64(K[0], ai) + h1, l1 := bits.Mul64(K[1], ai) + h2, l2 := bits.Mul64(K[2], ai) + h3, l3 := bits.Mul64(K[3], ai) + + l1, c0 := bits.Add64(h0, l1, 0) + l2, c1 := bits.Add64(h1, l2, c0) + l3, c2 := bits.Add64(h2, l3, c1) + l4, _ := bits.Add64(h3, 0, c2) + + S[i+0], c0 = bits.Add64(S[i+0], l0, 0) + S[i+1], c1 = bits.Add64(S[i+1], l1, c0) + S[i+2], c2 = bits.Add64(S[i+2], l2, c1) + S[i+3], c3 = bits.Add64(S[i+3], l3, c2) + S[i+4], _ = bits.Add64(S[i+4], l4, c3) + } + red512(&S, true) + binary.LittleEndian.PutUint64(s[0*8:1*8], S[0]) + binary.LittleEndian.PutUint64(s[1*8:2*8], S[1]) + binary.LittleEndian.PutUint64(s[2*8:3*8], S[2]) + binary.LittleEndian.PutUint64(s[3*8:4*8], S[3]) +} diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/mult.go b/vendor/github.com/cloudflare/circl/sign/ed25519/mult.go new file mode 100644 index 000000000000..3216aae303ca --- /dev/null +++ b/vendor/github.com/cloudflare/circl/sign/ed25519/mult.go @@ -0,0 +1,180 @@ +package ed25519 + +import ( + "crypto/subtle" + "encoding/binary" + "math/bits" + + "github.com/cloudflare/circl/internal/conv" + "github.com/cloudflare/circl/math" + fp "github.com/cloudflare/circl/math/fp25519" +) + +var paramD = fp.Elt{ + 0xa3, 0x78, 0x59, 0x13, 0xca, 0x4d, 0xeb, 0x75, + 0xab, 0xd8, 0x41, 0x41, 0x4d, 0x0a, 0x70, 0x00, + 0x98, 0xe8, 0x79, 0x77, 0x79, 0x40, 0xc7, 0x8c, + 0x73, 0xfe, 0x6f, 0x2b, 0xee, 0x6c, 0x03, 0x52, +} + +// mLSBRecoding parameters. +const ( + fxT = 257 + fxV = 2 + fxW = 3 + fx2w1 = 1 << (uint(fxW) - 1) + numWords64 = (paramB * 8 / 64) +) + +// mLSBRecoding is the odd-only modified LSB-set. +// +// Reference: +// +// "Efficient and secure algorithms for GLV-based scalar multiplication and +// their implementation on GLV–GLS curves" by (Faz-Hernandez et al.) +// http://doi.org/10.1007/s13389-014-0085-7. +func mLSBRecoding(L []int8, k []byte) { + const ee = (fxT + fxW*fxV - 1) / (fxW * fxV) + const dd = ee * fxV + const ll = dd * fxW + if len(L) == (ll + 1) { + var m [numWords64 + 1]uint64 + for i := 0; i < numWords64; i++ { + m[i] = binary.LittleEndian.Uint64(k[8*i : 8*i+8]) + } + condAddOrderN(&m) + L[dd-1] = 1 + for i := 0; i < dd-1; i++ { + kip1 := (m[(i+1)/64] >> (uint(i+1) % 64)) & 0x1 + L[i] = int8(kip1<<1) - 1 + } + { // right-shift by d + right := uint(dd % 64) + left := uint(64) - right + lim := ((numWords64+1)*64 - dd) / 64 + j := dd / 64 + for i := 0; i < lim; i++ { + m[i] = (m[i+j] >> right) | (m[i+j+1] << left) + } + m[lim] = m[lim+j] >> right + } + for i := dd; i < ll; i++ { + L[i] = L[i%dd] * int8(m[0]&0x1) + div2subY(m[:], int64(L[i]>>1), numWords64) + } + L[ll] = int8(m[0]) + } +} + +// absolute returns always a positive value. +func absolute(x int32) int32 { + mask := x >> 31 + return (x + mask) ^ mask +} + +// condAddOrderN updates x = x+order if x is even, otherwise x remains unchanged. +func condAddOrderN(x *[numWords64 + 1]uint64) { + isOdd := (x[0] & 0x1) - 1 + c := uint64(0) + for i := 0; i < numWords64; i++ { + orderWord := binary.LittleEndian.Uint64(order[8*i : 8*i+8]) + o := isOdd & orderWord + x0, c0 := bits.Add64(x[i], o, c) + x[i] = x0 + c = c0 + } + x[numWords64], _ = bits.Add64(x[numWords64], 0, c) +} + +// div2subY update x = (x/2) - y. +func div2subY(x []uint64, y int64, l int) { + s := uint64(y >> 63) + for i := 0; i < l-1; i++ { + x[i] = (x[i] >> 1) | (x[i+1] << 63) + } + x[l-1] = (x[l-1] >> 1) + + b := uint64(0) + x0, b0 := bits.Sub64(x[0], uint64(y), b) + x[0] = x0 + b = b0 + for i := 1; i < l-1; i++ { + x0, b0 := bits.Sub64(x[i], s, b) + x[i] = x0 + b = b0 + } + x[l-1], _ = bits.Sub64(x[l-1], s, b) +} + +func (P *pointR1) fixedMult(scalar []byte) { + if len(scalar) != paramB { + panic("wrong scalar size") + } + const ee = (fxT + fxW*fxV - 1) / (fxW * fxV) + const dd = ee * fxV + const ll = dd * fxW + + L := make([]int8, ll+1) + mLSBRecoding(L[:], scalar) + S := &pointR3{} + P.SetIdentity() + for ii := ee - 1; ii >= 0; ii-- { + P.double() + for j := 0; j < fxV; j++ { + dig := L[fxW*dd-j*ee+ii-ee] + for i := (fxW-1)*dd - j*ee + ii - ee; i >= (2*dd - j*ee + ii - ee); i = i - dd { + dig = 2*dig + L[i] + } + idx := absolute(int32(dig)) + sig := L[dd-j*ee+ii-ee] + Tabj := &tabSign[fxV-j-1] + for k := 0; k < fx2w1; k++ { + S.cmov(&Tabj[k], subtle.ConstantTimeEq(int32(k), idx)) + } + S.cneg(subtle.ConstantTimeEq(int32(sig), -1)) + P.mixAdd(S) + } + } +} + +const ( + omegaFix = 7 + omegaVar = 5 +) + +// doubleMult returns P=mG+nQ. +func (P *pointR1) doubleMult(Q *pointR1, m, n []byte) { + nafFix := math.OmegaNAF(conv.BytesLe2BigInt(m), omegaFix) + nafVar := math.OmegaNAF(conv.BytesLe2BigInt(n), omegaVar) + + if len(nafFix) > len(nafVar) { + nafVar = append(nafVar, make([]int32, len(nafFix)-len(nafVar))...) + } else if len(nafFix) < len(nafVar) { + nafFix = append(nafFix, make([]int32, len(nafVar)-len(nafFix))...) + } + + var TabQ [1 << (omegaVar - 2)]pointR2 + Q.oddMultiples(TabQ[:]) + P.SetIdentity() + for i := len(nafFix) - 1; i >= 0; i-- { + P.double() + // Generator point + if nafFix[i] != 0 { + idxM := absolute(nafFix[i]) >> 1 + R := tabVerif[idxM] + if nafFix[i] < 0 { + R.neg() + } + P.mixAdd(&R) + } + // Variable input point + if nafVar[i] != 0 { + idxN := absolute(nafVar[i]) >> 1 + S := TabQ[idxN] + if nafVar[i] < 0 { + S.neg() + } + P.add(&S) + } + } +} diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/point.go b/vendor/github.com/cloudflare/circl/sign/ed25519/point.go new file mode 100644 index 000000000000..374a69503c34 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/sign/ed25519/point.go @@ -0,0 +1,195 @@ +package ed25519 + +import fp "github.com/cloudflare/circl/math/fp25519" + +type ( + pointR1 struct{ x, y, z, ta, tb fp.Elt } + pointR2 struct { + pointR3 + z2 fp.Elt + } +) +type pointR3 struct{ addYX, subYX, dt2 fp.Elt } + +func (P *pointR1) neg() { + fp.Neg(&P.x, &P.x) + fp.Neg(&P.ta, &P.ta) +} + +func (P *pointR1) SetIdentity() { + P.x = fp.Elt{} + fp.SetOne(&P.y) + fp.SetOne(&P.z) + P.ta = fp.Elt{} + P.tb = fp.Elt{} +} + +func (P *pointR1) toAffine() { + fp.Inv(&P.z, &P.z) + fp.Mul(&P.x, &P.x, &P.z) + fp.Mul(&P.y, &P.y, &P.z) + fp.Modp(&P.x) + fp.Modp(&P.y) + fp.SetOne(&P.z) + P.ta = P.x + P.tb = P.y +} + +func (P *pointR1) ToBytes(k []byte) error { + P.toAffine() + var x [fp.Size]byte + err := fp.ToBytes(k[:fp.Size], &P.y) + if err != nil { + return err + } + err = fp.ToBytes(x[:], &P.x) + if err != nil { + return err + } + b := x[0] & 1 + k[paramB-1] = k[paramB-1] | (b << 7) + return nil +} + +func (P *pointR1) FromBytes(k []byte) bool { + if len(k) != paramB { + panic("wrong size") + } + signX := k[paramB-1] >> 7 + copy(P.y[:], k[:fp.Size]) + P.y[fp.Size-1] &= 0x7F + p := fp.P() + if !isLessThan(P.y[:], p[:]) { + return false + } + + one, u, v := &fp.Elt{}, &fp.Elt{}, &fp.Elt{} + fp.SetOne(one) + fp.Sqr(u, &P.y) // u = y^2 + fp.Mul(v, u, ¶mD) // v = dy^2 + fp.Sub(u, u, one) // u = y^2-1 + fp.Add(v, v, one) // v = dy^2+1 + isQR := fp.InvSqrt(&P.x, u, v) // x = sqrt(u/v) + if !isQR { + return false + } + fp.Modp(&P.x) // x = x mod p + if fp.IsZero(&P.x) && signX == 1 { + return false + } + if signX != (P.x[0] & 1) { + fp.Neg(&P.x, &P.x) + } + P.ta = P.x + P.tb = P.y + fp.SetOne(&P.z) + return true +} + +// double calculates 2P for curves with A=-1. +func (P *pointR1) double() { + Px, Py, Pz, Pta, Ptb := &P.x, &P.y, &P.z, &P.ta, &P.tb + a, b, c, e, f, g, h := Px, Py, Pz, Pta, Px, Py, Ptb + fp.Add(e, Px, Py) // x+y + fp.Sqr(a, Px) // A = x^2 + fp.Sqr(b, Py) // B = y^2 + fp.Sqr(c, Pz) // z^2 + fp.Add(c, c, c) // C = 2*z^2 + fp.Add(h, a, b) // H = A+B + fp.Sqr(e, e) // (x+y)^2 + fp.Sub(e, e, h) // E = (x+y)^2-A-B + fp.Sub(g, b, a) // G = B-A + fp.Sub(f, c, g) // F = C-G + fp.Mul(Pz, f, g) // Z = F * G + fp.Mul(Px, e, f) // X = E * F + fp.Mul(Py, g, h) // Y = G * H, T = E * H +} + +func (P *pointR1) mixAdd(Q *pointR3) { + fp.Add(&P.z, &P.z, &P.z) // D = 2*z1 + P.coreAddition(Q) +} + +func (P *pointR1) add(Q *pointR2) { + fp.Mul(&P.z, &P.z, &Q.z2) // D = 2*z1*z2 + P.coreAddition(&Q.pointR3) +} + +// coreAddition calculates P=P+Q for curves with A=-1. +func (P *pointR1) coreAddition(Q *pointR3) { + Px, Py, Pz, Pta, Ptb := &P.x, &P.y, &P.z, &P.ta, &P.tb + addYX2, subYX2, dt2 := &Q.addYX, &Q.subYX, &Q.dt2 + a, b, c, d, e, f, g, h := Px, Py, &fp.Elt{}, Pz, Pta, Px, Py, Ptb + fp.Mul(c, Pta, Ptb) // t1 = ta*tb + fp.Sub(h, Py, Px) // y1-x1 + fp.Add(b, Py, Px) // y1+x1 + fp.Mul(a, h, subYX2) // A = (y1-x1)*(y2-x2) + fp.Mul(b, b, addYX2) // B = (y1+x1)*(y2+x2) + fp.Mul(c, c, dt2) // C = 2*D*t1*t2 + fp.Sub(e, b, a) // E = B-A + fp.Add(h, b, a) // H = B+A + fp.Sub(f, d, c) // F = D-C + fp.Add(g, d, c) // G = D+C + fp.Mul(Pz, f, g) // Z = F * G + fp.Mul(Px, e, f) // X = E * F + fp.Mul(Py, g, h) // Y = G * H, T = E * H +} + +func (P *pointR1) oddMultiples(T []pointR2) { + var R pointR2 + n := len(T) + T[0].fromR1(P) + _2P := *P + _2P.double() + R.fromR1(&_2P) + for i := 1; i < n; i++ { + P.add(&R) + T[i].fromR1(P) + } +} + +func (P *pointR1) isEqual(Q *pointR1) bool { + l, r := &fp.Elt{}, &fp.Elt{} + fp.Mul(l, &P.x, &Q.z) + fp.Mul(r, &Q.x, &P.z) + fp.Sub(l, l, r) + b := fp.IsZero(l) + fp.Mul(l, &P.y, &Q.z) + fp.Mul(r, &Q.y, &P.z) + fp.Sub(l, l, r) + b = b && fp.IsZero(l) + fp.Mul(l, &P.ta, &P.tb) + fp.Mul(l, l, &Q.z) + fp.Mul(r, &Q.ta, &Q.tb) + fp.Mul(r, r, &P.z) + fp.Sub(l, l, r) + b = b && fp.IsZero(l) + return b +} + +func (P *pointR3) neg() { + P.addYX, P.subYX = P.subYX, P.addYX + fp.Neg(&P.dt2, &P.dt2) +} + +func (P *pointR2) fromR1(Q *pointR1) { + fp.Add(&P.addYX, &Q.y, &Q.x) + fp.Sub(&P.subYX, &Q.y, &Q.x) + fp.Mul(&P.dt2, &Q.ta, &Q.tb) + fp.Mul(&P.dt2, &P.dt2, ¶mD) + fp.Add(&P.dt2, &P.dt2, &P.dt2) + fp.Add(&P.z2, &Q.z, &Q.z) +} + +func (P *pointR3) cneg(b int) { + t := &fp.Elt{} + fp.Cswap(&P.addYX, &P.subYX, uint(b)) + fp.Neg(t, &P.dt2) + fp.Cmov(&P.dt2, t, uint(b)) +} + +func (P *pointR3) cmov(Q *pointR3, b int) { + fp.Cmov(&P.addYX, &Q.addYX, uint(b)) + fp.Cmov(&P.subYX, &Q.subYX, uint(b)) + fp.Cmov(&P.dt2, &Q.dt2, uint(b)) +} diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/pubkey.go b/vendor/github.com/cloudflare/circl/sign/ed25519/pubkey.go new file mode 100644 index 000000000000..c3505b67acec --- /dev/null +++ b/vendor/github.com/cloudflare/circl/sign/ed25519/pubkey.go @@ -0,0 +1,9 @@ +//go:build go1.13 +// +build go1.13 + +package ed25519 + +import cryptoEd25519 "crypto/ed25519" + +// PublicKey is the type of Ed25519 public keys. +type PublicKey cryptoEd25519.PublicKey diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/pubkey112.go b/vendor/github.com/cloudflare/circl/sign/ed25519/pubkey112.go new file mode 100644 index 000000000000..d57d86eff08e --- /dev/null +++ b/vendor/github.com/cloudflare/circl/sign/ed25519/pubkey112.go @@ -0,0 +1,7 @@ +//go:build !go1.13 +// +build !go1.13 + +package ed25519 + +// PublicKey is the type of Ed25519 public keys. +type PublicKey []byte diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/signapi.go b/vendor/github.com/cloudflare/circl/sign/ed25519/signapi.go new file mode 100644 index 000000000000..e4520f520349 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/sign/ed25519/signapi.go @@ -0,0 +1,87 @@ +package ed25519 + +import ( + "crypto/rand" + "encoding/asn1" + + "github.com/cloudflare/circl/sign" +) + +var sch sign.Scheme = &scheme{} + +// Scheme returns a signature interface. +func Scheme() sign.Scheme { return sch } + +type scheme struct{} + +func (*scheme) Name() string { return "Ed25519" } +func (*scheme) PublicKeySize() int { return PublicKeySize } +func (*scheme) PrivateKeySize() int { return PrivateKeySize } +func (*scheme) SignatureSize() int { return SignatureSize } +func (*scheme) SeedSize() int { return SeedSize } +func (*scheme) TLSIdentifier() uint { return 0x0807 } +func (*scheme) SupportsContext() bool { return false } +func (*scheme) Oid() asn1.ObjectIdentifier { + return asn1.ObjectIdentifier{1, 3, 101, 112} +} + +func (*scheme) GenerateKey() (sign.PublicKey, sign.PrivateKey, error) { + return GenerateKey(rand.Reader) +} + +func (*scheme) Sign( + sk sign.PrivateKey, + message []byte, + opts *sign.SignatureOpts, +) []byte { + priv, ok := sk.(PrivateKey) + if !ok { + panic(sign.ErrTypeMismatch) + } + if opts != nil && opts.Context != "" { + panic(sign.ErrContextNotSupported) + } + return Sign(priv, message) +} + +func (*scheme) Verify( + pk sign.PublicKey, + message, signature []byte, + opts *sign.SignatureOpts, +) bool { + pub, ok := pk.(PublicKey) + if !ok { + panic(sign.ErrTypeMismatch) + } + if opts != nil { + if opts.Context != "" { + panic(sign.ErrContextNotSupported) + } + } + return Verify(pub, message, signature) +} + +func (*scheme) DeriveKey(seed []byte) (sign.PublicKey, sign.PrivateKey) { + privateKey := NewKeyFromSeed(seed) + publicKey := make(PublicKey, PublicKeySize) + copy(publicKey, privateKey[SeedSize:]) + return publicKey, privateKey +} + +func (*scheme) UnmarshalBinaryPublicKey(buf []byte) (sign.PublicKey, error) { + if len(buf) < PublicKeySize { + return nil, sign.ErrPubKeySize + } + pub := make(PublicKey, PublicKeySize) + copy(pub, buf[:PublicKeySize]) + return pub, nil +} + +func (*scheme) UnmarshalBinaryPrivateKey(buf []byte) (sign.PrivateKey, error) { + if len(buf) < PrivateKeySize { + return nil, sign.ErrPrivKeySize + } + priv := make(PrivateKey, PrivateKeySize) + copy(priv, buf[:PrivateKeySize]) + return priv, nil +} diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/tables.go b/vendor/github.com/cloudflare/circl/sign/ed25519/tables.go new file mode 100644 index 000000000000..8763b426fc02 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/sign/ed25519/tables.go @@ -0,0 +1,213 @@ +package ed25519 + +import fp "github.com/cloudflare/circl/math/fp25519" + +var tabSign = [fxV][fx2w1]pointR3{ + { + pointR3{ + addYX: fp.Elt{0x85, 0x3b, 0x8c, 0xf5, 0xc6, 0x93, 0xbc, 0x2f, 0x19, 0x0e, 0x8c, 0xfb, 0xc6, 0x2d, 0x93, 0xcf, 0xc2, 0x42, 0x3d, 0x64, 0x98, 0x48, 0x0b, 0x27, 0x65, 0xba, 0xd4, 0x33, 0x3a, 0x9d, 0xcf, 0x07}, + subYX: fp.Elt{0x3e, 0x91, 0x40, 0xd7, 0x05, 0x39, 0x10, 0x9d, 0xb3, 0xbe, 0x40, 0xd1, 0x05, 0x9f, 0x39, 0xfd, 0x09, 0x8a, 0x8f, 0x68, 0x34, 0x84, 0xc1, 0xa5, 0x67, 0x12, 0xf8, 0x98, 0x92, 0x2f, 0xfd, 0x44}, + dt2: fp.Elt{0x68, 0xaa, 0x7a, 0x87, 0x05, 0x12, 0xc9, 0xab, 0x9e, 0xc4, 0xaa, 0xcc, 0x23, 0xe8, 0xd9, 0x26, 0x8c, 0x59, 0x43, 0xdd, 0xcb, 0x7d, 0x1b, 0x5a, 0xa8, 0x65, 0x0c, 0x9f, 0x68, 0x7b, 0x11, 0x6f}, + }, + { + addYX: fp.Elt{0x7c, 0xb0, 0x9e, 0xe6, 0xc5, 0xbf, 0xfa, 0x13, 0x8e, 0x0d, 0x22, 0xde, 0xc8, 0xd1, 0xce, 0x52, 0x02, 0xd5, 0x62, 0x31, 0x71, 0x0e, 0x8e, 0x9d, 0xb0, 0xd6, 0x00, 0xa5, 0x5a, 0x0e, 0xce, 0x72}, + subYX: fp.Elt{0x1a, 0x8e, 0x5c, 0xdc, 0xa4, 0xb3, 0x6c, 0x51, 0x18, 0xa0, 0x09, 0x80, 0x9a, 0x46, 0x33, 0xd5, 0xe0, 0x3c, 0x4d, 0x3b, 0xfc, 0x49, 0xa2, 0x43, 0x29, 0xe1, 0x29, 0xa9, 0x93, 0xea, 0x7c, 0x35}, + dt2: fp.Elt{0x08, 0x46, 0x6f, 0x68, 0x7f, 0x0b, 0x7c, 0x9e, 0xad, 0xba, 0x07, 0x61, 0x74, 0x83, 0x2f, 0xfc, 0x26, 0xd6, 0x09, 0xb9, 0x00, 0x34, 0x36, 0x4f, 0x01, 0xf3, 0x48, 0xdb, 0x43, 0xba, 0x04, 0x44}, + }, + { + addYX: fp.Elt{0x4c, 0xda, 0x0d, 0x13, 0x66, 0xfd, 0x82, 0x84, 0x9f, 0x75, 0x5b, 0xa2, 0x17, 0xfe, 0x34, 0xbf, 0x1f, 0xcb, 0xba, 0x90, 0x55, 0x80, 0x83, 0xfd, 0x63, 0xb9, 0x18, 0xf8, 0x5b, 0x5d, 0x94, 0x1e}, + subYX: fp.Elt{0xb9, 0xdb, 0x6c, 0x04, 0x88, 0x22, 0xd8, 0x79, 0x83, 0x2f, 0x8d, 0x65, 0x6b, 0xd2, 0xab, 0x1b, 0xdd, 0x65, 0xe5, 0x93, 0x63, 0xf8, 0xa2, 0xd8, 0x3c, 0xf1, 0x4b, 0xc5, 0x99, 0xd1, 0xf2, 0x12}, + dt2: fp.Elt{0x05, 0x4c, 0xb8, 0x3b, 0xfe, 0xf5, 0x9f, 0x2e, 0xd1, 0xb2, 0xb8, 0xff, 0xfe, 0x6d, 0xd9, 0x37, 0xe0, 0xae, 0xb4, 0x5a, 0x51, 0x80, 0x7e, 0x9b, 0x1d, 0xd1, 0x8d, 0x8c, 0x56, 0xb1, 0x84, 0x35}, + }, + { + addYX: fp.Elt{0x39, 0x71, 0x43, 0x34, 0xe3, 0x42, 0x45, 0xa1, 0xf2, 0x68, 0x71, 0xa7, 0xe8, 0x23, 0xfd, 0x9f, 0x86, 0x48, 0xff, 0xe5, 0x96, 0x74, 0xcf, 0x05, 0x49, 0xe2, 0xb3, 0x6c, 0x17, 0x77, 0x2f, 0x6d}, + subYX: fp.Elt{0x73, 0x3f, 0xc1, 0xc7, 0x6a, 0x66, 0xa1, 0x20, 0xdd, 0x11, 0xfb, 0x7a, 0x6e, 0xa8, 0x51, 0xb8, 0x3f, 0x9d, 0xa2, 0x97, 0x84, 0xb5, 0xc7, 0x90, 0x7c, 0xab, 0x48, 0xd6, 0x84, 0xa3, 0xd5, 0x1a}, + dt2: fp.Elt{0x63, 0x27, 0x3c, 0x49, 0x4b, 0xfc, 0x22, 0xf2, 0x0b, 0x50, 0xc2, 0x0f, 0xb4, 0x1f, 0x31, 0x0c, 0x2f, 0x53, 0xab, 0xaa, 0x75, 0x6f, 0xe0, 0x69, 0x39, 0x56, 0xe0, 0x3b, 0xb7, 0xa8, 0xbf, 0x45}, + }, + }, + { + { + addYX: fp.Elt{0x00, 0x45, 0xd9, 0x0d, 0x58, 0x03, 0xfc, 0x29, 0x93, 0xec, 0xbb, 0x6f, 0xa4, 0x7a, 0xd2, 0xec, 0xf8, 0xa7, 0xe2, 0xc2, 0x5f, 0x15, 0x0a, 0x13, 0xd5, 0xa1, 0x06, 0xb7, 0x1a, 0x15, 0x6b, 0x41}, + subYX: fp.Elt{0x85, 0x8c, 0xb2, 0x17, 0xd6, 0x3b, 0x0a, 0xd3, 0xea, 0x3b, 0x77, 0x39, 0xb7, 0x77, 0xd3, 0xc5, 0xbf, 0x5c, 0x6a, 0x1e, 0x8c, 0xe7, 0xc6, 0xc6, 0xc4, 0xb7, 0x2a, 0x8b, 0xf7, 0xb8, 0x61, 0x0d}, + dt2: fp.Elt{0xb0, 0x36, 0xc1, 0xe9, 0xef, 0xd7, 0xa8, 0x56, 0x20, 0x4b, 0xe4, 0x58, 0xcd, 0xe5, 0x07, 0xbd, 0xab, 0xe0, 0x57, 0x1b, 0xda, 0x2f, 0xe6, 0xaf, 0xd2, 0xe8, 0x77, 0x42, 0xf7, 0x2a, 0x1a, 0x19}, + }, + { + addYX: fp.Elt{0x6a, 0x6d, 0x6d, 0xd1, 0xfa, 0xf5, 0x03, 0x30, 0xbd, 0x6d, 0xc2, 0xc8, 0xf5, 0x38, 0x80, 0x4f, 0xb2, 0xbe, 0xa1, 0x76, 0x50, 0x1a, 0x73, 0xf2, 0x78, 0x2b, 0x8e, 0x3a, 0x1e, 0x34, 0x47, 0x7b}, + subYX: fp.Elt{0xc3, 0x2c, 0x36, 0xdc, 0xc5, 0x45, 0xbc, 0xef, 0x1b, 0x64, 0xd6, 0x65, 0x28, 0xe9, 0xda, 0x84, 0x13, 0xbe, 0x27, 0x8e, 0x3f, 0x98, 0x2a, 0x37, 0xee, 0x78, 0x97, 0xd6, 0xc0, 0x6f, 0xb4, 0x53}, + dt2: fp.Elt{0x58, 0x5d, 0xa7, 0xa3, 0x68, 0xbb, 0x20, 0x30, 0x2e, 0x03, 0xe9, 0xb1, 0xd4, 0x90, 0x72, 0xe3, 0x71, 0xb2, 0x36, 0x3e, 0x73, 0xa0, 0x2e, 0x3d, 0xd1, 0x85, 0x33, 0x62, 0x4e, 0xa7, 0x7b, 0x31}, + }, + { + addYX: fp.Elt{0xbf, 0xc4, 0x38, 0x53, 0xfb, 0x68, 0xa9, 0x77, 0xce, 0x55, 0xf9, 0x05, 0xcb, 0xeb, 0xfb, 0x8c, 0x46, 0xc2, 0x32, 0x7c, 0xf0, 0xdb, 0xd7, 0x2c, 0x62, 0x8e, 0xdd, 0x54, 0x75, 0xcf, 0x3f, 0x33}, + subYX: fp.Elt{0x49, 0x50, 0x1f, 0x4e, 0x6e, 0x55, 0x55, 0xde, 0x8c, 0x4e, 0x77, 0x96, 0x38, 0x3b, 0xfe, 0xb6, 0x43, 0x3c, 0x86, 0x69, 0xc2, 0x72, 0x66, 0x1f, 0x6b, 0xf9, 0x87, 0xbc, 0x4f, 0x37, 0x3e, 0x3c}, + dt2: fp.Elt{0xd2, 0x2f, 0x06, 0x6b, 0x08, 0x07, 0x69, 0x77, 0xc0, 0x94, 0xcc, 0xae, 0x43, 0x00, 0x59, 0x6e, 0xa3, 0x63, 0xa8, 0xdd, 0xfa, 0x24, 0x18, 0xd0, 0x35, 0xc7, 0x78, 0xf7, 0x0d, 0xd4, 0x5a, 0x1e}, + }, + { + addYX: fp.Elt{0x45, 0xc1, 0x17, 0x51, 0xf8, 0xed, 0x7e, 0xc7, 0xa9, 0x1a, 0x11, 0x6e, 0x2d, 0xef, 0x0b, 0xd5, 0x3f, 0x98, 0xb0, 0xa3, 0x9d, 0x65, 0xf1, 0xcd, 0x53, 0x4a, 0x8a, 0x18, 0x70, 0x0a, 0x7f, 0x23}, + subYX: fp.Elt{0xdd, 0xef, 0xbe, 0x3a, 0x31, 0xe0, 0xbc, 0xbe, 0x6d, 0x5d, 0x79, 0x87, 0xd6, 0xbe, 0x68, 0xe3, 0x59, 0x76, 0x8c, 0x86, 0x0e, 0x7a, 0x92, 0x13, 0x14, 0x8f, 0x67, 0xb3, 0xcb, 0x1a, 0x76, 0x76}, + dt2: fp.Elt{0x56, 0x7a, 0x1c, 0x9d, 0xca, 0x96, 0xf9, 0xf9, 0x03, 0x21, 0xd4, 0xe8, 0xb3, 0xd5, 0xe9, 0x52, 0xc8, 0x54, 0x1e, 0x1b, 0x13, 0xb6, 0xfd, 0x47, 0x7d, 0x02, 0x32, 0x33, 0x27, 0xe2, 0x1f, 0x19}, + }, + }, +} + +var tabVerif = [1 << (omegaFix - 2)]pointR3{ + { /* 1P */ + addYX: fp.Elt{0x85, 0x3b, 0x8c, 0xf5, 0xc6, 0x93, 0xbc, 0x2f, 0x19, 0x0e, 0x8c, 0xfb, 0xc6, 0x2d, 0x93, 0xcf, 0xc2, 0x42, 0x3d, 0x64, 0x98, 0x48, 0x0b, 0x27, 0x65, 0xba, 0xd4, 0x33, 0x3a, 0x9d, 0xcf, 0x07}, + subYX: fp.Elt{0x3e, 0x91, 0x40, 0xd7, 0x05, 0x39, 0x10, 0x9d, 0xb3, 0xbe, 0x40, 0xd1, 0x05, 0x9f, 0x39, 0xfd, 0x09, 0x8a, 0x8f, 0x68, 0x34, 0x84, 0xc1, 0xa5, 0x67, 0x12, 0xf8, 0x98, 0x92, 0x2f, 0xfd, 0x44}, + dt2: fp.Elt{0x68, 0xaa, 0x7a, 0x87, 0x05, 0x12, 0xc9, 0xab, 0x9e, 0xc4, 0xaa, 0xcc, 0x23, 0xe8, 0xd9, 0x26, 0x8c, 0x59, 0x43, 0xdd, 0xcb, 0x7d, 0x1b, 0x5a, 0xa8, 0x65, 0x0c, 0x9f, 0x68, 0x7b, 0x11, 0x6f}, + }, + { /* 3P */ + addYX: fp.Elt{0x30, 0x97, 0xee, 0x4c, 0xa8, 0xb0, 0x25, 0xaf, 0x8a, 0x4b, 0x86, 0xe8, 0x30, 0x84, 0x5a, 0x02, 0x32, 0x67, 0x01, 0x9f, 0x02, 0x50, 0x1b, 0xc1, 0xf4, 0xf8, 0x80, 0x9a, 0x1b, 0x4e, 0x16, 0x7a}, + subYX: fp.Elt{0x65, 0xd2, 0xfc, 0xa4, 0xe8, 0x1f, 0x61, 0x56, 0x7d, 0xba, 0xc1, 0xe5, 0xfd, 0x53, 0xd3, 0x3b, 0xbd, 0xd6, 0x4b, 0x21, 0x1a, 0xf3, 0x31, 0x81, 0x62, 0xda, 0x5b, 0x55, 0x87, 0x15, 0xb9, 0x2a}, + dt2: fp.Elt{0x89, 0xd8, 0xd0, 0x0d, 0x3f, 0x93, 0xae, 0x14, 0x62, 0xda, 0x35, 0x1c, 0x22, 0x23, 0x94, 0x58, 0x4c, 0xdb, 0xf2, 0x8c, 0x45, 0xe5, 0x70, 0xd1, 0xc6, 0xb4, 0xb9, 0x12, 0xaf, 0x26, 0x28, 0x5a}, + }, + { /* 5P */ + addYX: fp.Elt{0x33, 0xbb, 0xa5, 0x08, 0x44, 0xbc, 0x12, 0xa2, 0x02, 0xed, 0x5e, 0xc7, 0xc3, 0x48, 0x50, 0x8d, 0x44, 0xec, 0xbf, 0x5a, 0x0c, 0xeb, 0x1b, 0xdd, 0xeb, 0x06, 0xe2, 0x46, 0xf1, 0xcc, 0x45, 0x29}, + subYX: fp.Elt{0xba, 0xd6, 0x47, 0xa4, 0xc3, 0x82, 0x91, 0x7f, 0xb7, 0x29, 0x27, 0x4b, 0xd1, 0x14, 0x00, 0xd5, 0x87, 0xa0, 0x64, 0xb8, 0x1c, 0xf1, 0x3c, 0xe3, 0xf3, 0x55, 0x1b, 0xeb, 0x73, 0x7e, 0x4a, 0x15}, + dt2: fp.Elt{0x85, 0x82, 0x2a, 0x81, 0xf1, 0xdb, 0xbb, 0xbc, 0xfc, 0xd1, 0xbd, 0xd0, 0x07, 0x08, 0x0e, 0x27, 0x2d, 0xa7, 0xbd, 0x1b, 0x0b, 0x67, 0x1b, 0xb4, 0x9a, 0xb6, 0x3b, 0x6b, 0x69, 0xbe, 0xaa, 0x43}, + }, + { /* 7P */ + addYX: fp.Elt{0xbf, 0xa3, 0x4e, 0x94, 0xd0, 0x5c, 0x1a, 0x6b, 0xd2, 0xc0, 0x9d, 0xb3, 0x3a, 0x35, 0x70, 0x74, 0x49, 0x2e, 0x54, 0x28, 0x82, 0x52, 0xb2, 0x71, 0x7e, 0x92, 0x3c, 0x28, 0x69, 0xea, 0x1b, 0x46}, + subYX: fp.Elt{0xb1, 0x21, 0x32, 0xaa, 0x9a, 0x2c, 0x6f, 0xba, 0xa7, 0x23, 0xba, 0x3b, 0x53, 0x21, 0xa0, 0x6c, 0x3a, 0x2c, 0x19, 0x92, 0x4f, 0x76, 0xea, 0x9d, 0xe0, 0x17, 0x53, 0x2e, 0x5d, 0xdd, 0x6e, 0x1d}, + dt2: fp.Elt{0xa2, 0xb3, 0xb8, 0x01, 0xc8, 0x6d, 0x83, 0xf1, 0x9a, 0xa4, 0x3e, 0x05, 0x47, 0x5f, 0x03, 0xb3, 0xf3, 0xad, 0x77, 0x58, 0xba, 0x41, 0x9c, 0x52, 0xa7, 0x90, 0x0f, 0x6a, 0x1c, 0xbb, 0x9f, 0x7a}, + }, + { /* 9P */ + addYX: fp.Elt{0x2f, 0x63, 0xa8, 0xa6, 0x8a, 0x67, 0x2e, 0x9b, 0xc5, 0x46, 0xbc, 0x51, 0x6f, 0x9e, 0x50, 0xa6, 0xb5, 0xf5, 0x86, 0xc6, 0xc9, 0x33, 0xb2, 0xce, 0x59, 0x7f, 0xdd, 0x8a, 0x33, 0xed, 0xb9, 0x34}, + subYX: fp.Elt{0x64, 0x80, 0x9d, 0x03, 0x7e, 0x21, 0x6e, 0xf3, 0x9b, 0x41, 0x20, 0xf5, 0xb6, 0x81, 0xa0, 0x98, 0x44, 0xb0, 0x5e, 0xe7, 0x08, 0xc6, 0xcb, 0x96, 0x8f, 0x9c, 0xdc, 0xfa, 0x51, 0x5a, 0xc0, 0x49}, + dt2: fp.Elt{0x1b, 0xaf, 0x45, 0x90, 0xbf, 0xe8, 0xb4, 0x06, 0x2f, 0xd2, 0x19, 0xa7, 0xe8, 0x83, 0xff, 0xe2, 0x16, 0xcf, 0xd4, 0x93, 0x29, 0xfc, 0xf6, 0xaa, 0x06, 0x8b, 0x00, 0x1b, 0x02, 0x72, 0xc1, 0x73}, + }, + { /* 11P */ + addYX: fp.Elt{0xde, 0x2a, 0x80, 0x8a, 0x84, 0x00, 0xbf, 0x2f, 0x27, 0x2e, 0x30, 0x02, 0xcf, 0xfe, 0xd9, 0xe5, 0x06, 0x34, 0x70, 0x17, 0x71, 0x84, 0x3e, 0x11, 0xaf, 0x8f, 0x6d, 0x54, 0xe2, 0xaa, 0x75, 0x42}, + subYX: fp.Elt{0x48, 0x43, 0x86, 0x49, 0x02, 0x5b, 0x5f, 0x31, 0x81, 0x83, 0x08, 0x77, 0x69, 0xb3, 0xd6, 0x3e, 0x95, 0xeb, 0x8d, 0x6a, 0x55, 0x75, 0xa0, 0xa3, 0x7f, 0xc7, 0xd5, 0x29, 0x80, 0x59, 0xab, 0x18}, + dt2: fp.Elt{0xe9, 0x89, 0x60, 0xfd, 0xc5, 0x2c, 0x2b, 0xd8, 0xa4, 0xe4, 0x82, 0x32, 0xa1, 0xb4, 0x1e, 0x03, 0x22, 0x86, 0x1a, 0xb5, 0x99, 0x11, 0x31, 0x44, 0x48, 0xf9, 0x3d, 0xb5, 0x22, 0x55, 0xc6, 0x3d}, + }, + { /* 13P */ + addYX: fp.Elt{0x6d, 0x7f, 0x00, 0xa2, 0x22, 0xc2, 0x70, 0xbf, 0xdb, 0xde, 0xbc, 0xb5, 0x9a, 0xb3, 0x84, 0xbf, 0x07, 0xba, 0x07, 0xfb, 0x12, 0x0e, 0x7a, 0x53, 0x41, 0xf2, 0x46, 0xc3, 0xee, 0xd7, 0x4f, 0x23}, + subYX: fp.Elt{0x93, 0xbf, 0x7f, 0x32, 0x3b, 0x01, 0x6f, 0x50, 0x6b, 0x6f, 0x77, 0x9b, 0xc9, 0xeb, 0xfc, 0xae, 0x68, 0x59, 0xad, 0xaa, 0x32, 0xb2, 0x12, 0x9d, 0xa7, 0x24, 0x60, 0x17, 0x2d, 0x88, 0x67, 0x02}, + dt2: fp.Elt{0x78, 0xa3, 0x2e, 0x73, 0x19, 0xa1, 0x60, 0x53, 0x71, 0xd4, 0x8d, 0xdf, 0xb1, 0xe6, 0x37, 0x24, 0x33, 0xe5, 0xa7, 0x91, 0xf8, 0x37, 0xef, 0xa2, 0x63, 0x78, 0x09, 0xaa, 0xfd, 0xa6, 0x7b, 0x49}, + }, + { /* 15P */ + addYX: fp.Elt{0xa0, 0xea, 0xcf, 0x13, 0x03, 0xcc, 0xce, 0x24, 0x6d, 0x24, 0x9c, 0x18, 0x8d, 0xc2, 0x48, 0x86, 0xd0, 0xd4, 0xf2, 0xc1, 0xfa, 0xbd, 0xbd, 0x2d, 0x2b, 0xe7, 0x2d, 0xf1, 0x17, 0x29, 0xe2, 0x61}, + subYX: fp.Elt{0x0b, 0xcf, 0x8c, 0x46, 0x86, 0xcd, 0x0b, 0x04, 0xd6, 0x10, 0x99, 0x2a, 0xa4, 0x9b, 0x82, 0xd3, 0x92, 0x51, 0xb2, 0x07, 0x08, 0x30, 0x08, 0x75, 0xbf, 0x5e, 0xd0, 0x18, 0x42, 0xcd, 0xb5, 0x43}, + dt2: fp.Elt{0x16, 0xb5, 0xd0, 0x9b, 0x2f, 0x76, 0x9a, 0x5d, 0xee, 0xde, 0x3f, 0x37, 0x4e, 0xaf, 0x38, 0xeb, 0x70, 0x42, 0xd6, 0x93, 0x7d, 0x5a, 0x2e, 0x03, 0x42, 0xd8, 0xe4, 0x0a, 0x21, 0x61, 0x1d, 0x51}, + }, + { /* 17P */ + addYX: fp.Elt{0x81, 0x9d, 0x0e, 0x95, 0xef, 0x76, 0xc6, 0x92, 0x4f, 0x04, 0xd7, 0xc0, 0xcd, 0x20, 0x46, 0xa5, 0x48, 0x12, 0x8f, 0x6f, 0x64, 0x36, 0x9b, 0xaa, 0xe3, 0x55, 0xb8, 0xdd, 0x24, 0x59, 0x32, 0x6d}, + subYX: fp.Elt{0x87, 0xde, 0x20, 0x44, 0x48, 0x86, 0x13, 0x08, 0xb4, 0xed, 0x92, 0xb5, 0x16, 0xf0, 0x1c, 0x8a, 0x25, 0x2d, 0x94, 0x29, 0x27, 0x4e, 0xfa, 0x39, 0x10, 0x28, 0x48, 0xe2, 0x6f, 0xfe, 0xa7, 0x71}, + dt2: fp.Elt{0x54, 0xc8, 0xc8, 0xa5, 0xb8, 0x82, 0x71, 0x6c, 0x03, 0x2a, 0x5f, 0xfe, 0x79, 0x14, 0xfd, 0x33, 0x0c, 0x8d, 0x77, 0x83, 0x18, 0x59, 0xcf, 0x72, 0xa9, 0xea, 0x9e, 0x55, 0xb6, 0xc4, 0x46, 0x47}, + }, + { /* 19P */ + addYX: fp.Elt{0x2b, 0x9a, 0xc6, 0x6d, 0x3c, 0x7b, 0x77, 0xd3, 0x17, 0xf6, 0x89, 0x6f, 0x27, 0xb2, 0xfa, 0xde, 0xb5, 0x16, 0x3a, 0xb5, 0xf7, 0x1c, 0x65, 0x45, 0xb7, 0x9f, 0xfe, 0x34, 0xde, 0x51, 0x9a, 0x5c}, + subYX: fp.Elt{0x47, 0x11, 0x74, 0x64, 0xc8, 0x46, 0x85, 0x34, 0x49, 0xc8, 0xfc, 0x0e, 0xdd, 0xae, 0x35, 0x7d, 0x32, 0xa3, 0x72, 0x06, 0x76, 0x9a, 0x93, 0xff, 0xd6, 0xe6, 0xb5, 0x7d, 0x49, 0x63, 0x96, 0x21}, + dt2: fp.Elt{0x67, 0x0e, 0xf1, 0x79, 0xcf, 0xf1, 0x10, 0xf5, 0x5b, 0x51, 0x58, 0xe6, 0xa1, 0xda, 0xdd, 0xff, 0x77, 0x22, 0x14, 0x10, 0x17, 0xa7, 0xc3, 0x09, 0xbb, 0x23, 0x82, 0x60, 0x3c, 0x50, 0x04, 0x48}, + }, + { /* 21P */ + addYX: fp.Elt{0xc7, 0x7f, 0xa3, 0x2c, 0xd0, 0x9e, 0x24, 0xc4, 0xab, 0xac, 0x15, 0xa6, 0xe3, 0xa0, 0x59, 0xa0, 0x23, 0x0e, 0x6e, 0xc9, 0xd7, 0x6e, 0xa9, 0x88, 0x6d, 0x69, 0x50, 0x16, 0xa5, 0x98, 0x33, 0x55}, + subYX: fp.Elt{0x75, 0xd1, 0x36, 0x3a, 0xd2, 0x21, 0x68, 0x3b, 0x32, 0x9e, 0x9b, 0xe9, 0xa7, 0x0a, 0xb4, 0xbb, 0x47, 0x8a, 0x83, 0x20, 0xe4, 0x5c, 0x9e, 0x5d, 0x5e, 0x4c, 0xde, 0x58, 0x88, 0x09, 0x1e, 0x77}, + dt2: fp.Elt{0xdf, 0x1e, 0x45, 0x78, 0xd2, 0xf5, 0x12, 0x9a, 0xcb, 0x9c, 0x89, 0x85, 0x79, 0x5d, 0xda, 0x3a, 0x08, 0x95, 0xa5, 0x9f, 0x2d, 0x4a, 0x7f, 0x47, 0x11, 0xa6, 0xf5, 0x8f, 0xd6, 0xd1, 0x5e, 0x5a}, + }, + { /* 23P */ + addYX: fp.Elt{0x83, 0x0e, 0x15, 0xfe, 0x2a, 0x12, 0x95, 0x11, 0xd8, 0x35, 0x4b, 0x7e, 0x25, 0x9a, 0x20, 0xcf, 0x20, 0x1e, 0x71, 0x1e, 0x29, 0xf8, 0x87, 0x73, 0xf0, 0x92, 0xbf, 0xd8, 0x97, 0xb8, 0xac, 0x44}, + subYX: fp.Elt{0x59, 0x73, 0x52, 0x58, 0xc5, 0xe0, 0xe5, 0xba, 0x7e, 0x9d, 0xdb, 0xca, 0x19, 0x5c, 0x2e, 0x39, 0xe9, 0xab, 0x1c, 0xda, 0x1e, 0x3c, 0x65, 0x28, 0x44, 0xdc, 0xef, 0x5f, 0x13, 0x60, 0x9b, 0x01}, + dt2: fp.Elt{0x83, 0x4b, 0x13, 0x5e, 0x14, 0x68, 0x60, 0x1e, 0x16, 0x4c, 0x30, 0x24, 0x4f, 0xe6, 0xf5, 0xc4, 0xd7, 0x3e, 0x1a, 0xfc, 0xa8, 0x88, 0x6e, 0x50, 0x92, 0x2f, 0xad, 0xe6, 0xfd, 0x49, 0x0c, 0x15}, + }, + { /* 25P */ + addYX: fp.Elt{0x38, 0x11, 0x47, 0x09, 0x95, 0xf2, 0x7b, 0x8e, 0x51, 0xa6, 0x75, 0x4f, 0x39, 0xef, 0x6f, 0x5d, 0xad, 0x08, 0xa7, 0x25, 0xc4, 0x79, 0xaf, 0x10, 0x22, 0x99, 0xb9, 0x5b, 0x07, 0x5a, 0x2b, 0x6b}, + subYX: fp.Elt{0x68, 0xa8, 0xdc, 0x9c, 0x3c, 0x86, 0x49, 0xb8, 0xd0, 0x4a, 0x71, 0xb8, 0xdb, 0x44, 0x3f, 0xc8, 0x8d, 0x16, 0x36, 0x0c, 0x56, 0xe3, 0x3e, 0xfe, 0xc1, 0xfb, 0x05, 0x1e, 0x79, 0xd7, 0xa6, 0x78}, + dt2: fp.Elt{0x76, 0xb9, 0xa0, 0x47, 0x4b, 0x70, 0xbf, 0x58, 0xd5, 0x48, 0x17, 0x74, 0x55, 0xb3, 0x01, 0xa6, 0x90, 0xf5, 0x42, 0xd5, 0xb1, 0x1f, 0x2b, 0xaa, 0x00, 0x5d, 0xd5, 0x4a, 0xfc, 0x7f, 0x5c, 0x72}, + }, + { /* 27P */ + addYX: fp.Elt{0xb2, 0x99, 0xcf, 0xd1, 0x15, 0x67, 0x42, 0xe4, 0x34, 0x0d, 0xa2, 0x02, 0x11, 0xd5, 0x52, 0x73, 0x9f, 0x10, 0x12, 0x8b, 0x7b, 0x15, 0xd1, 0x23, 0xa3, 0xf3, 0xb1, 0x7c, 0x27, 0xc9, 0x4c, 0x79}, + subYX: fp.Elt{0xc0, 0x98, 0xd0, 0x1c, 0xf7, 0x2b, 0x80, 0x91, 0x66, 0x63, 0x5e, 0xed, 0xa4, 0x6c, 0x41, 0xfe, 0x4c, 0x99, 0x02, 0x49, 0x71, 0x5d, 0x58, 0xdf, 0xe7, 0xfa, 0x55, 0xf8, 0x25, 0x46, 0xd5, 0x4c}, + dt2: fp.Elt{0x53, 0x50, 0xac, 0xc2, 0x26, 0xc4, 0xf6, 0x4a, 0x58, 0x72, 0xf6, 0x32, 0xad, 0xed, 0x9a, 0xbc, 0x21, 0x10, 0x31, 0x0a, 0xf1, 0x32, 0xd0, 0x2a, 0x85, 0x8e, 0xcc, 0x6f, 0x7b, 0x35, 0x08, 0x70}, + }, + { /* 29P */ + addYX: fp.Elt{0x01, 0x3f, 0x77, 0x38, 0x27, 0x67, 0x88, 0x0b, 0xfb, 0xcc, 0xfb, 0x95, 0xfa, 0xc8, 0xcc, 0xb8, 0xb6, 0x29, 0xad, 0xb9, 0xa3, 0xd5, 0x2d, 0x8d, 0x6a, 0x0f, 0xad, 0x51, 0x98, 0x7e, 0xef, 0x06}, + subYX: fp.Elt{0x34, 0x4a, 0x58, 0x82, 0xbb, 0x9f, 0x1b, 0xd0, 0x2b, 0x79, 0xb4, 0xd2, 0x63, 0x64, 0xab, 0x47, 0x02, 0x62, 0x53, 0x48, 0x9c, 0x63, 0x31, 0xb6, 0x28, 0xd4, 0xd6, 0x69, 0x36, 0x2a, 0xa9, 0x13}, + dt2: fp.Elt{0xe5, 0x7d, 0x57, 0xc0, 0x1c, 0x77, 0x93, 0xca, 0x5c, 0xdc, 0x35, 0x50, 0x1e, 0xe4, 0x40, 0x75, 0x71, 0xe0, 0x02, 0xd8, 0x01, 0x0f, 0x68, 0x24, 0x6a, 0xf8, 0x2a, 0x8a, 0xdf, 0x6d, 0x29, 0x3c}, + }, + { /* 31P */ + addYX: fp.Elt{0x13, 0xa7, 0x14, 0xd9, 0xf9, 0x15, 0xad, 0xae, 0x12, 0xf9, 0x8f, 0x8c, 0xf9, 0x7b, 0x2f, 0xa9, 0x30, 0xd7, 0x53, 0x9f, 0x17, 0x23, 0xf8, 0xaf, 0xba, 0x77, 0x0c, 0x49, 0x93, 0xd3, 0x99, 0x7a}, + subYX: fp.Elt{0x41, 0x25, 0x1f, 0xbb, 0x2e, 0x4d, 0xeb, 0xfc, 0x1f, 0xb9, 0xad, 0x40, 0xc7, 0x10, 0x95, 0xb8, 0x05, 0xad, 0xa1, 0xd0, 0x7d, 0xa3, 0x71, 0xfc, 0x7b, 0x71, 0x47, 0x07, 0x70, 0x2c, 0x89, 0x0a}, + dt2: fp.Elt{0xe8, 0xa3, 0xbd, 0x36, 0x24, 0xed, 0x52, 0x8f, 0x94, 0x07, 0xe8, 0x57, 0x41, 0xc8, 0xa8, 0x77, 0xe0, 0x9c, 0x2f, 0x26, 0x63, 0x65, 0xa9, 0xa5, 0xd2, 0xf7, 0x02, 0x83, 0xd2, 0x62, 0x67, 0x28}, + }, + { /* 33P */ + addYX: fp.Elt{0x25, 0x5b, 0xe3, 0x3c, 0x09, 0x36, 0x78, 0x4e, 0x97, 0xaa, 0x6b, 0xb2, 0x1d, 0x18, 0xe1, 0x82, 0x3f, 0xb8, 0xc7, 0xcb, 0xd3, 0x92, 0xc1, 0x0c, 0x3a, 0x9d, 0x9d, 0x6a, 0x04, 0xda, 0xf1, 0x32}, + subYX: fp.Elt{0xbd, 0xf5, 0x2e, 0xce, 0x2b, 0x8e, 0x55, 0x7c, 0x63, 0xbc, 0x47, 0x67, 0xb4, 0x6c, 0x98, 0xe4, 0xb8, 0x89, 0xbb, 0x3b, 0x9f, 0x17, 0x4a, 0x15, 0x7a, 0x76, 0xf1, 0xd6, 0xa3, 0xf2, 0x86, 0x76}, + dt2: fp.Elt{0x6a, 0x7c, 0x59, 0x6d, 0xa6, 0x12, 0x8d, 0xaa, 0x2b, 0x85, 0xd3, 0x04, 0x03, 0x93, 0x11, 0x8f, 0x22, 0xb0, 0x09, 0xc2, 0x73, 0xdc, 0x91, 0x3f, 0xa6, 0x28, 0xad, 0xa9, 0xf8, 0x05, 0x13, 0x56}, + }, + { /* 35P */ + addYX: fp.Elt{0xd1, 0xae, 0x92, 0xec, 0x8d, 0x97, 0x0c, 0x10, 0xe5, 0x73, 0x6d, 0x4d, 0x43, 0xd5, 0x43, 0xca, 0x48, 0xba, 0x47, 0xd8, 0x22, 0x1b, 0x13, 0x83, 0x2c, 0x4d, 0x5d, 0xe3, 0x53, 0xec, 0xaa}, + subYX: fp.Elt{0xd5, 0xc0, 0xb0, 0xe7, 0x28, 0xcc, 0x22, 0x67, 0x53, 0x5c, 0x07, 0xdb, 0xbb, 0xe9, 0x9d, 0x70, 0x61, 0x0a, 0x01, 0xd7, 0xa7, 0x8d, 0xf6, 0xca, 0x6c, 0xcc, 0x57, 0x2c, 0xef, 0x1a, 0x0a, 0x03}, + dt2: fp.Elt{0xaa, 0xd2, 0x3a, 0x00, 0x73, 0xf7, 0xb1, 0x7b, 0x08, 0x66, 0x21, 0x2b, 0x80, 0x29, 0x3f, 0x0b, 0x3e, 0xd2, 0x0e, 0x52, 0x86, 0xdc, 0x21, 0x78, 0x80, 0x54, 0x06, 0x24, 0x1c, 0x9c, 0xbe, 0x20}, + }, + { /* 37P */ + addYX: fp.Elt{0xa6, 0x73, 0x96, 0x24, 0xd8, 0x87, 0x53, 0xe1, 0x93, 0xe4, 0x46, 0xf5, 0x2d, 0xbc, 0x43, 0x59, 0xb5, 0x63, 0x6f, 0xc3, 0x81, 0x9a, 0x7f, 0x1c, 0xde, 0xc1, 0x0a, 0x1f, 0x36, 0xb3, 0x0a, 0x75}, + subYX: fp.Elt{0x60, 0x5e, 0x02, 0xe2, 0x4a, 0xe4, 0xe0, 0x20, 0x38, 0xb9, 0xdc, 0xcb, 0x2f, 0x3b, 0x3b, 0xb0, 0x1c, 0x0d, 0x5a, 0xf9, 0x9c, 0x63, 0x5d, 0x10, 0x11, 0xe3, 0x67, 0x50, 0x54, 0x4c, 0x76, 0x69}, + dt2: fp.Elt{0x37, 0x10, 0xf8, 0xa2, 0x83, 0x32, 0x8a, 0x1e, 0xf1, 0xcb, 0x7f, 0xbd, 0x23, 0xda, 0x2e, 0x6f, 0x63, 0x25, 0x2e, 0xac, 0x5b, 0xd1, 0x2f, 0xb7, 0x40, 0x50, 0x07, 0xb7, 0x3f, 0x6b, 0xf9, 0x54}, + }, + { /* 39P */ + addYX: fp.Elt{0x79, 0x92, 0x66, 0x29, 0x04, 0xf2, 0xad, 0x0f, 0x4a, 0x72, 0x7d, 0x7d, 0x04, 0xa2, 0xdd, 0x3a, 0xf1, 0x60, 0x57, 0x8c, 0x82, 0x94, 0x3d, 0x6f, 0x9e, 0x53, 0xb7, 0x2b, 0xc5, 0xe9, 0x7f, 0x3d}, + subYX: fp.Elt{0xcd, 0x1e, 0xb1, 0x16, 0xc6, 0xaf, 0x7d, 0x17, 0x79, 0x64, 0x57, 0xfa, 0x9c, 0x4b, 0x76, 0x89, 0x85, 0xe7, 0xec, 0xe6, 0x10, 0xa1, 0xa8, 0xb7, 0xf0, 0xdb, 0x85, 0xbe, 0x9f, 0x83, 0xe6, 0x78}, + dt2: fp.Elt{0x6b, 0x85, 0xb8, 0x37, 0xf7, 0x2d, 0x33, 0x70, 0x8a, 0x17, 0x1a, 0x04, 0x43, 0x5d, 0xd0, 0x75, 0x22, 0x9e, 0xe5, 0xa0, 0x4a, 0xf7, 0x0f, 0x32, 0x42, 0x82, 0x08, 0x50, 0xf3, 0x68, 0xf2, 0x70}, + }, + { /* 41P */ + addYX: fp.Elt{0x47, 0x5f, 0x80, 0xb1, 0x83, 0x45, 0x86, 0x66, 0x19, 0x7c, 0xdd, 0x60, 0xd1, 0xc5, 0x35, 0xf5, 0x06, 0xb0, 0x4c, 0x1e, 0xb7, 0x4e, 0x87, 0xe9, 0xd9, 0x89, 0xd8, 0xfa, 0x5c, 0x34, 0x0d, 0x7c}, + subYX: fp.Elt{0x55, 0xf3, 0xdc, 0x70, 0x20, 0x11, 0x24, 0x23, 0x17, 0xe1, 0xfc, 0xe7, 0x7e, 0xc9, 0x0c, 0x38, 0x98, 0xb6, 0x52, 0x35, 0xed, 0xde, 0x1d, 0xb3, 0xb9, 0xc4, 0xb8, 0x39, 0xc0, 0x56, 0x4e, 0x40}, + dt2: fp.Elt{0x8a, 0x33, 0x78, 0x8c, 0x4b, 0x1f, 0x1f, 0x59, 0xe1, 0xb5, 0xe0, 0x67, 0xb1, 0x6a, 0x36, 0xa0, 0x44, 0x3d, 0x5f, 0xb4, 0x52, 0x41, 0xbc, 0x5c, 0x77, 0xc7, 0xae, 0x2a, 0x76, 0x54, 0xd7, 0x20}, + }, + { /* 43P */ + addYX: fp.Elt{0x58, 0xb7, 0x3b, 0xc7, 0x6f, 0xc3, 0x8f, 0x5e, 0x9a, 0xbb, 0x3c, 0x36, 0xa5, 0x43, 0xe5, 0xac, 0x22, 0xc9, 0x3b, 0x90, 0x7d, 0x4a, 0x93, 0xa9, 0x62, 0xec, 0xce, 0xf3, 0x46, 0x1e, 0x8f, 0x2b}, + subYX: fp.Elt{0x43, 0xf5, 0xb9, 0x35, 0xb1, 0xfe, 0x74, 0x9d, 0x6c, 0x95, 0x8c, 0xde, 0xf1, 0x7d, 0xb3, 0x84, 0xa9, 0x8b, 0x13, 0x57, 0x07, 0x2b, 0x32, 0xe9, 0xe1, 0x4c, 0x0b, 0x79, 0xa8, 0xad, 0xb8, 0x38}, + dt2: fp.Elt{0x5d, 0xf9, 0x51, 0xdf, 0x9c, 0x4a, 0xc0, 0xb5, 0xac, 0xde, 0x1f, 0xcb, 0xae, 0x52, 0x39, 0x2b, 0xda, 0x66, 0x8b, 0x32, 0x8b, 0x6d, 0x10, 0x1d, 0x53, 0x19, 0xba, 0xce, 0x32, 0xeb, 0x9a, 0x04}, + }, + { /* 45P */ + addYX: fp.Elt{0x31, 0x79, 0xfc, 0x75, 0x0b, 0x7d, 0x50, 0xaa, 0xd3, 0x25, 0x67, 0x7a, 0x4b, 0x92, 0xef, 0x0f, 0x30, 0x39, 0x6b, 0x39, 0x2b, 0x54, 0x82, 0x1d, 0xfc, 0x74, 0xf6, 0x30, 0x75, 0xe1, 0x5e, 0x79}, + subYX: fp.Elt{0x7e, 0xfe, 0xdc, 0x63, 0x3c, 0x7d, 0x76, 0xd7, 0x40, 0x6e, 0x85, 0x97, 0x48, 0x59, 0x9c, 0x20, 0x13, 0x7c, 0x4f, 0xe1, 0x61, 0x68, 0x67, 0xb6, 0xfc, 0x25, 0xd6, 0xc8, 0xe0, 0x65, 0xc6, 0x51}, + dt2: fp.Elt{0x81, 0xbd, 0xec, 0x52, 0x0a, 0x5b, 0x4a, 0x25, 0xe7, 0xaf, 0x34, 0xe0, 0x6e, 0x1f, 0x41, 0x5d, 0x31, 0x4a, 0xee, 0xca, 0x0d, 0x4d, 0xa2, 0xe6, 0x77, 0x44, 0xc5, 0x9d, 0xf4, 0x9b, 0xd1, 0x6c}, + }, + { /* 47P */ + addYX: fp.Elt{0x86, 0xc3, 0xaf, 0x65, 0x21, 0x61, 0xfe, 0x1f, 0x10, 0x1b, 0xd5, 0xb8, 0x88, 0x2a, 0x2a, 0x08, 0xaa, 0x0b, 0x99, 0x20, 0x7e, 0x62, 0xf6, 0x76, 0xe7, 0x43, 0x9e, 0x42, 0xa7, 0xb3, 0x01, 0x5e}, + subYX: fp.Elt{0xa3, 0x9c, 0x17, 0x52, 0x90, 0x61, 0x87, 0x7e, 0x85, 0x9f, 0x2c, 0x0b, 0x06, 0x0a, 0x1d, 0x57, 0x1e, 0x71, 0x99, 0x84, 0xa8, 0xba, 0xa2, 0x80, 0x38, 0xe6, 0xb2, 0x40, 0xdb, 0xf3, 0x20, 0x75}, + dt2: fp.Elt{0xa1, 0x57, 0x93, 0xd3, 0xe3, 0x0b, 0xb5, 0x3d, 0xa5, 0x94, 0x9e, 0x59, 0xdd, 0x6c, 0x7b, 0x96, 0x6e, 0x1e, 0x31, 0xdf, 0x64, 0x9a, 0x30, 0x1a, 0x86, 0xc9, 0xf3, 0xce, 0x9c, 0x2c, 0x09, 0x71}, + }, + { /* 49P */ + addYX: fp.Elt{0xcf, 0x1d, 0x05, 0x74, 0xac, 0xd8, 0x6b, 0x85, 0x1e, 0xaa, 0xb7, 0x55, 0x08, 0xa4, 0xf6, 0x03, 0xeb, 0x3c, 0x74, 0xc9, 0xcb, 0xe7, 0x4a, 0x3a, 0xde, 0xab, 0x37, 0x71, 0xbb, 0xa5, 0x73, 0x41}, + subYX: fp.Elt{0x8c, 0x91, 0x64, 0x03, 0x3f, 0x52, 0xd8, 0x53, 0x1c, 0x6b, 0xab, 0x3f, 0xf4, 0x04, 0xb4, 0xa2, 0xa4, 0xe5, 0x81, 0x66, 0x9e, 0x4a, 0x0b, 0x08, 0xa7, 0x7b, 0x25, 0xd0, 0x03, 0x5b, 0xa1, 0x0e}, + dt2: fp.Elt{0x8a, 0x21, 0xf9, 0xf0, 0x31, 0x6e, 0xc5, 0x17, 0x08, 0x47, 0xfc, 0x1a, 0x2b, 0x6e, 0x69, 0x5a, 0x76, 0xf1, 0xb2, 0xf4, 0x68, 0x16, 0x93, 0xf7, 0x67, 0x3a, 0x4e, 0x4a, 0x61, 0x65, 0xc5, 0x5f}, + }, + { /* 51P */ + addYX: fp.Elt{0x8e, 0x98, 0x90, 0x77, 0xe6, 0xe1, 0x92, 0x48, 0x22, 0xd7, 0x5c, 0x1c, 0x0f, 0x95, 0xd5, 0x01, 0xed, 0x3e, 0x92, 0xe5, 0x9a, 0x81, 0xb0, 0xe3, 0x1b, 0x65, 0x46, 0x9d, 0x40, 0xc7, 0x14, 0x32}, + subYX: fp.Elt{0xe5, 0x7a, 0x6d, 0xc4, 0x0d, 0x57, 0x6e, 0x13, 0x8f, 0xdc, 0xf8, 0x54, 0xcc, 0xaa, 0xd0, 0x0f, 0x86, 0xad, 0x0d, 0x31, 0x03, 0x9f, 0x54, 0x59, 0xa1, 0x4a, 0x45, 0x4c, 0x41, 0x1c, 0x71, 0x62}, + dt2: fp.Elt{0x70, 0x17, 0x65, 0x06, 0x74, 0x82, 0x29, 0x13, 0x36, 0x94, 0x27, 0x8a, 0x66, 0xa0, 0xa4, 0x3b, 0x3c, 0x22, 0x5d, 0x18, 0xec, 0xb8, 0xb6, 0xd9, 0x3c, 0x83, 0xcb, 0x3e, 0x07, 0x94, 0xea, 0x5b}, + }, + { /* 53P */ + addYX: fp.Elt{0xf8, 0xd2, 0x43, 0xf3, 0x63, 0xce, 0x70, 0xb4, 0xf1, 0xe8, 0x43, 0x05, 0x8f, 0xba, 0x67, 0x00, 0x6f, 0x7b, 0x11, 0xa2, 0xa1, 0x51, 0xda, 0x35, 0x2f, 0xbd, 0xf1, 0x44, 0x59, 0x78, 0xd0, 0x4a}, + subYX: fp.Elt{0xe4, 0x9b, 0xc8, 0x12, 0x09, 0xbf, 0x1d, 0x64, 0x9c, 0x57, 0x6e, 0x7d, 0x31, 0x8b, 0xf3, 0xac, 0x65, 0xb0, 0x97, 0xf6, 0x02, 0x9e, 0xfe, 0xab, 0xec, 0x1e, 0xf6, 0x48, 0xc1, 0xd5, 0xac, 0x3a}, + dt2: fp.Elt{0x01, 0x83, 0x31, 0xc3, 0x34, 0x3b, 0x8e, 0x85, 0x26, 0x68, 0x31, 0x07, 0x47, 0xc0, 0x99, 0xdc, 0x8c, 0xa8, 0x9d, 0xd3, 0x2e, 0x5b, 0x08, 0x34, 0x3d, 0x85, 0x02, 0xd9, 0xb1, 0x0c, 0xff, 0x3a}, + }, + { /* 55P */ + addYX: fp.Elt{0x05, 0x35, 0xc5, 0xf4, 0x0b, 0x43, 0x26, 0x92, 0x83, 0x22, 0x1f, 0x26, 0x13, 0x9c, 0xe4, 0x68, 0xc6, 0x27, 0xd3, 0x8f, 0x78, 0x33, 0xef, 0x09, 0x7f, 0x9e, 0xd9, 0x2b, 0x73, 0x9f, 0xcf, 0x2c}, + subYX: fp.Elt{0x5e, 0x40, 0x20, 0x3a, 0xeb, 0xc7, 0xc5, 0x87, 0xc9, 0x56, 0xad, 0xed, 0xef, 0x11, 0xe3, 0x8e, 0xf9, 0xd5, 0x29, 0xad, 0x48, 0x2e, 0x25, 0x29, 0x1d, 0x25, 0xcd, 0xf4, 0x86, 0x7e, 0x0e, 0x11}, + dt2: fp.Elt{0xe4, 0xf5, 0x03, 0xd6, 0x9e, 0xd8, 0xc0, 0x57, 0x0c, 0x20, 0xb0, 0xf0, 0x28, 0x86, 0x88, 0x12, 0xb7, 0x3b, 0x2e, 0xa0, 0x09, 0x27, 0x17, 0x53, 0x37, 0x3a, 0x69, 0xb9, 0xe0, 0x57, 0xc5, 0x05}, + }, + { /* 57P */ + addYX: fp.Elt{0xb0, 0x0e, 0xc2, 0x89, 0xb0, 0xbb, 0x76, 0xf7, 0x5c, 0xd8, 0x0f, 0xfa, 0xf6, 0x5b, 0xf8, 0x61, 0xfb, 0x21, 0x44, 0x63, 0x4e, 0x3f, 0xb9, 0xb6, 0x05, 0x12, 0x86, 0x41, 0x08, 0xef, 0x9f, 0x28}, + subYX: fp.Elt{0x6f, 0x7e, 0xc9, 0x1f, 0x31, 0xce, 0xf9, 0xd8, 0xae, 0xfd, 0xf9, 0x11, 0x30, 0x26, 0x3f, 0x7a, 0xdd, 0x25, 0xed, 0x8b, 0xa0, 0x7e, 0x5b, 0xe1, 0x5a, 0x87, 0xe9, 0x8f, 0x17, 0x4c, 0x15, 0x6e}, + dt2: fp.Elt{0xbf, 0x9a, 0xd6, 0xfe, 0x36, 0x63, 0x61, 0xcf, 0x4f, 0xc9, 0x35, 0x83, 0xe7, 0xe4, 0x16, 0x9b, 0xe7, 0x7f, 0x3a, 0x75, 0x65, 0x97, 0x78, 0x13, 0x19, 0xa3, 0x5c, 0xa9, 0x42, 0xf6, 0xfb, 0x6a}, + }, + { /* 59P */ + addYX: fp.Elt{0xcc, 0xa8, 0x13, 0xf9, 0x70, 0x50, 0xe5, 0x5d, 0x61, 0xf5, 0x0c, 0x2b, 0x7b, 0x16, 0x1d, 0x7d, 0x89, 0xd4, 0xea, 0x90, 0xb6, 0x56, 0x29, 0xda, 0xd9, 0x1e, 0x80, 0xdb, 0xce, 0x93, 0xc0, 0x12}, + subYX: fp.Elt{0xc1, 0xd2, 0xf5, 0x62, 0x0c, 0xde, 0xa8, 0x7d, 0x9a, 0x7b, 0x0e, 0xb0, 0xa4, 0x3d, 0xfc, 0x98, 0xe0, 0x70, 0xad, 0x0d, 0xda, 0x6a, 0xeb, 0x7d, 0xc4, 0x38, 0x50, 0xb9, 0x51, 0xb8, 0xb4, 0x0d}, + dt2: fp.Elt{0x0f, 0x19, 0xb8, 0x08, 0x93, 0x7f, 0x14, 0xfc, 0x10, 0xe3, 0x1a, 0xa1, 0xa0, 0x9d, 0x96, 0x06, 0xfd, 0xd7, 0xc7, 0xda, 0x72, 0x55, 0xe7, 0xce, 0xe6, 0x5c, 0x63, 0xc6, 0x99, 0x87, 0xaa, 0x33}, + }, + { /* 61P */ + addYX: fp.Elt{0xb1, 0x6c, 0x15, 0xfc, 0x88, 0xf5, 0x48, 0x83, 0x27, 0x6d, 0x0a, 0x1a, 0x9b, 0xba, 0xa2, 0x6d, 0xb6, 0x5a, 0xca, 0x87, 0x5c, 0x2d, 0x26, 0xe2, 0xa6, 0x89, 0xd5, 0xc8, 0xc1, 0xd0, 0x2c, 0x21}, + subYX: fp.Elt{0xf2, 0x5c, 0x08, 0xbd, 0x1e, 0xf5, 0x0f, 0xaf, 0x1f, 0x3f, 0xd3, 0x67, 0x89, 0x1a, 0xf5, 0x78, 0x3c, 0x03, 0x60, 0x50, 0xe1, 0xbf, 0xc2, 0x6e, 0x86, 0x1a, 0xe2, 0xe8, 0x29, 0x6f, 0x3c, 0x23}, + dt2: fp.Elt{0x81, 0xc7, 0x18, 0x7f, 0x10, 0xd5, 0xf4, 0xd2, 0x28, 0x9d, 0x7e, 0x52, 0xf2, 0xcd, 0x2e, 0x12, 0x41, 0x33, 0x3d, 0x3d, 0x2a, 0x86, 0x0a, 0xa7, 0xe3, 0x4c, 0x91, 0x11, 0x89, 0x77, 0xb7, 0x1d}, + }, + { /* 63P */ + addYX: fp.Elt{0xb6, 0x1a, 0x70, 0xdd, 0x69, 0x47, 0x39, 0xb3, 0xa5, 0x8d, 0xcf, 0x19, 0xd4, 0xde, 0xb8, 0xe2, 0x52, 0xc8, 0x2a, 0xfd, 0x61, 0x41, 0xdf, 0x15, 0xbe, 0x24, 0x7d, 0x01, 0x8a, 0xca, 0xe2, 0x7a}, + subYX: fp.Elt{0x6f, 0xc2, 0x6b, 0x7c, 0x39, 0x52, 0xf3, 0xdd, 0x13, 0x01, 0xd5, 0x53, 0xcc, 0xe2, 0x97, 0x7a, 0x30, 0xa3, 0x79, 0xbf, 0x3a, 0xf4, 0x74, 0x7c, 0xfc, 0xad, 0xe2, 0x26, 0xad, 0x97, 0xad, 0x31}, + dt2: fp.Elt{0x62, 0xb9, 0x20, 0x09, 0xed, 0x17, 0xe8, 0xb7, 0x9d, 0xda, 0x19, 0x3f, 0xcc, 0x18, 0x85, 0x1e, 0x64, 0x0a, 0x56, 0x25, 0x4f, 0xc1, 0x91, 0xe4, 0x83, 0x2c, 0x62, 0xa6, 0x53, 0xfc, 0xd1, 0x1e}, + }, +} diff --git a/vendor/github.com/cloudflare/circl/sign/ed448/ed448.go b/vendor/github.com/cloudflare/circl/sign/ed448/ed448.go new file mode 100644 index 000000000000..324bd8f33460 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/sign/ed448/ed448.go @@ -0,0 +1,411 @@ +// Package ed448 implements Ed448 signature scheme as described in RFC-8032. +// +// This package implements two signature variants. +// +// | Scheme Name | Sign Function | Verification | Context | +// |-------------|-------------------|---------------|-------------------| +// | Ed448 | Sign | Verify | Yes, can be empty | +// | Ed448Ph | SignPh | VerifyPh | Yes, can be empty | +// | All above | (PrivateKey).Sign | VerifyAny | As above | +// +// Specific functions for sign and verify are defined. A generic signing +// function for all schemes is available through the crypto.Signer interface, +// which is implemented by the PrivateKey type. A correspond all-in-one +// verification method is provided by the VerifyAny function. +// +// Both schemes require a context string for domain separation. This parameter +// is passed using a SignerOptions struct defined in this package. +// +// References: +// +// - RFC8032: https://rfc-editor.org/rfc/rfc8032.txt +// - EdDSA for more curves: https://eprint.iacr.org/2015/677 +// - High-speed high-security signatures: https://doi.org/10.1007/s13389-012-0027-1 +package ed448 + +import ( + "bytes" + "crypto" + cryptoRand "crypto/rand" + "crypto/subtle" + "errors" + "fmt" + "io" + "strconv" + + "github.com/cloudflare/circl/ecc/goldilocks" + "github.com/cloudflare/circl/internal/sha3" + "github.com/cloudflare/circl/sign" +) + +const ( + // ContextMaxSize is the maximum length (in bytes) allowed for context. + ContextMaxSize = 255 + // PublicKeySize is the length in bytes of Ed448 public keys. + PublicKeySize = 57 + // PrivateKeySize is the length in bytes of Ed448 private keys. + PrivateKeySize = 114 + // SignatureSize is the length in bytes of signatures. + SignatureSize = 114 + // SeedSize is the size, in bytes, of private key seeds. These are the private key representations used by RFC 8032. + SeedSize = 57 +) + +const ( + paramB = 456 / 8 // Size of keys in bytes. + hashSize = 2 * paramB // Size of the hash function's output. +) + +// SignerOptions implements crypto.SignerOpts and augments with parameters +// that are specific to the Ed448 signature schemes. +type SignerOptions struct { + // Hash must be crypto.Hash(0) for both Ed448 and Ed448Ph. + crypto.Hash + + // Context is an optional domain separation string for signing. + // Its length must be less or equal than 255 bytes. + Context string + + // Scheme is an identifier for choosing a signature scheme. + Scheme SchemeID +} + +// SchemeID is an identifier for each signature scheme. +type SchemeID uint + +const ( + ED448 SchemeID = iota + ED448Ph +) + +// PublicKey is the type of Ed448 public keys. +type PublicKey []byte + +// Equal reports whether pub and x have the same value. +func (pub PublicKey) Equal(x crypto.PublicKey) bool { + xx, ok := x.(PublicKey) + return ok && bytes.Equal(pub, xx) +} + +// PrivateKey is the type of Ed448 private keys. It implements crypto.Signer. +type PrivateKey []byte + +// Equal reports whether priv and x have the same value. +func (priv PrivateKey) Equal(x crypto.PrivateKey) bool { + xx, ok := x.(PrivateKey) + return ok && subtle.ConstantTimeCompare(priv, xx) == 1 +} + +// Public returns the PublicKey corresponding to priv. +func (priv PrivateKey) Public() crypto.PublicKey { + publicKey := make([]byte, PublicKeySize) + copy(publicKey, priv[SeedSize:]) + return PublicKey(publicKey) +} + +// Seed returns the private key seed corresponding to priv. It is provided for +// interoperability with RFC 8032. RFC 8032's private keys correspond to seeds +// in this package. +func (priv PrivateKey) Seed() []byte { + seed := make([]byte, SeedSize) + copy(seed, priv[:SeedSize]) + return seed +} + +func (priv PrivateKey) Scheme() sign.Scheme { return sch } + +func (pub PublicKey) Scheme() sign.Scheme { return sch } + +func (priv PrivateKey) MarshalBinary() (data []byte, err error) { + privateKey := make(PrivateKey, PrivateKeySize) + copy(privateKey, priv) + return privateKey, nil +} + +func (pub PublicKey) MarshalBinary() (data []byte, err error) { + publicKey := make(PublicKey, PublicKeySize) + copy(publicKey, pub) + return publicKey, nil +} + +// Sign creates a signature of a message given a key pair. +// This function supports all the two signature variants defined in RFC-8032, +// namely Ed448 (or pure EdDSA) and Ed448Ph. +// The opts.HashFunc() must return zero to the specify Ed448 variant. This can +// be achieved by passing crypto.Hash(0) as the value for opts. +// Use an Options struct to pass a bool indicating that the ed448Ph variant +// should be used. +// The struct can also be optionally used to pass a context string for signing. +func (priv PrivateKey) Sign( + rand io.Reader, + message []byte, + opts crypto.SignerOpts, +) (signature []byte, err error) { + var ctx string + var scheme SchemeID + + if o, ok := opts.(SignerOptions); ok { + ctx = o.Context + scheme = o.Scheme + } + + switch true { + case scheme == ED448 && opts.HashFunc() == crypto.Hash(0): + return Sign(priv, message, ctx), nil + case scheme == ED448Ph && opts.HashFunc() == crypto.Hash(0): + return SignPh(priv, message, ctx), nil + default: + return nil, errors.New("ed448: bad hash algorithm") + } +} + +// GenerateKey generates a public/private key pair using entropy from rand. +// If rand is nil, crypto/rand.Reader will be used. +func GenerateKey(rand io.Reader) (PublicKey, PrivateKey, error) { + if rand == nil { + rand = cryptoRand.Reader + } + + seed := make(PrivateKey, SeedSize) + if _, err := io.ReadFull(rand, seed); err != nil { + return nil, nil, err + } + + privateKey := NewKeyFromSeed(seed) + publicKey := make([]byte, PublicKeySize) + copy(publicKey, privateKey[SeedSize:]) + + return publicKey, privateKey, nil +} + +// NewKeyFromSeed calculates a private key from a seed. It will panic if +// len(seed) is not SeedSize. This function is provided for interoperability +// with RFC 8032. RFC 8032's private keys correspond to seeds in this +// package. +func NewKeyFromSeed(seed []byte) PrivateKey { + privateKey := make([]byte, PrivateKeySize) + newKeyFromSeed(privateKey, seed) + return privateKey +} + +func newKeyFromSeed(privateKey, seed []byte) { + if l := len(seed); l != SeedSize { + panic("ed448: bad seed length: " + strconv.Itoa(l)) + } + + var h [hashSize]byte + H := sha3.NewShake256() + _, _ = H.Write(seed) + _, _ = H.Read(h[:]) + s := &goldilocks.Scalar{} + deriveSecretScalar(s, h[:paramB]) + + copy(privateKey[:SeedSize], seed) + _ = goldilocks.Curve{}.ScalarBaseMult(s).ToBytes(privateKey[SeedSize:]) +} + +func signAll(signature []byte, privateKey PrivateKey, message, ctx []byte, preHash bool) { + if len(ctx) > ContextMaxSize { + panic(fmt.Errorf("ed448: bad context length: " + strconv.Itoa(len(ctx)))) + } + + H := sha3.NewShake256() + var PHM []byte + + if preHash { + var h [64]byte + _, _ = H.Write(message) + _, _ = H.Read(h[:]) + PHM = h[:] + H.Reset() + } else { + PHM = message + } + + // 1. Hash the 57-byte private key using SHAKE256(x, 114). + var h [hashSize]byte + _, _ = H.Write(privateKey[:SeedSize]) + _, _ = H.Read(h[:]) + s := &goldilocks.Scalar{} + deriveSecretScalar(s, h[:paramB]) + prefix := h[paramB:] + + // 2. Compute SHAKE256(dom4(F, C) || prefix || PH(M), 114). + var rPM [hashSize]byte + H.Reset() + + writeDom(&H, ctx, preHash) + + _, _ = H.Write(prefix) + _, _ = H.Write(PHM) + _, _ = H.Read(rPM[:]) + + // 3. Compute the point [r]B. + r := &goldilocks.Scalar{} + r.FromBytes(rPM[:]) + R := (&[paramB]byte{})[:] + if err := (goldilocks.Curve{}.ScalarBaseMult(r).ToBytes(R)); err != nil { + panic(err) + } + // 4. Compute SHAKE256(dom4(F, C) || R || A || PH(M), 114) + var hRAM [hashSize]byte + H.Reset() + + writeDom(&H, ctx, preHash) + + _, _ = H.Write(R) + _, _ = H.Write(privateKey[SeedSize:]) + _, _ = H.Write(PHM) + _, _ = H.Read(hRAM[:]) + + // 5. Compute S = (r + k * s) mod order. + k := &goldilocks.Scalar{} + k.FromBytes(hRAM[:]) + S := &goldilocks.Scalar{} + S.Mul(k, s) + S.Add(S, r) + + // 6. The signature is the concatenation of R and S. + copy(signature[:paramB], R[:]) + copy(signature[paramB:], S[:]) +} + +// Sign signs the message with privateKey and returns a signature. +// This function supports the signature variant defined in RFC-8032: Ed448, +// also known as the pure version of EdDSA. +// It will panic if len(privateKey) is not PrivateKeySize. +func Sign(priv PrivateKey, message []byte, ctx string) []byte { + signature := make([]byte, SignatureSize) + signAll(signature, priv, message, []byte(ctx), false) + return signature +} + +// SignPh creates a signature of a message given a keypair. +// This function supports the signature variant defined in RFC-8032: Ed448ph, +// meaning it internally hashes the message using SHAKE-256. +// Context could be passed to this function, which length should be no more than +// 255. It can be empty. +func SignPh(priv PrivateKey, message []byte, ctx string) []byte { + signature := make([]byte, SignatureSize) + signAll(signature, priv, message, []byte(ctx), true) + return signature +} + +func verify(public PublicKey, message, signature, ctx []byte, preHash bool) bool { + if len(public) != PublicKeySize || + len(signature) != SignatureSize || + len(ctx) > ContextMaxSize || + !isLessThanOrder(signature[paramB:]) { + return false + } + + P, err := goldilocks.FromBytes(public) + if err != nil { + return false + } + + H := sha3.NewShake256() + var PHM []byte + + if preHash { + var h [64]byte + _, _ = H.Write(message) + _, _ = H.Read(h[:]) + PHM = h[:] + H.Reset() + } else { + PHM = message + } + + var hRAM [hashSize]byte + R := signature[:paramB] + + writeDom(&H, ctx, preHash) + + _, _ = H.Write(R) + _, _ = H.Write(public) + _, _ = H.Write(PHM) + _, _ = H.Read(hRAM[:]) + + k := &goldilocks.Scalar{} + k.FromBytes(hRAM[:]) + S := &goldilocks.Scalar{} + S.FromBytes(signature[paramB:]) + + encR := (&[paramB]byte{})[:] + P.Neg() + _ = goldilocks.Curve{}.CombinedMult(S, k, P).ToBytes(encR) + return bytes.Equal(R, encR) +} + +// VerifyAny returns true if the signature is valid. Failure cases are invalid +// signature, or when the public key cannot be decoded. +// This function supports all the two signature variants defined in RFC-8032, +// namely Ed448 (or pure EdDSA) and Ed448Ph. +// The opts.HashFunc() must return zero, this can be achieved by passing +// crypto.Hash(0) as the value for opts. +// Use a SignerOptions struct to pass a context string for signing. +func VerifyAny(public PublicKey, message, signature []byte, opts crypto.SignerOpts) bool { + var ctx string + var scheme SchemeID + if o, ok := opts.(SignerOptions); ok { + ctx = o.Context + scheme = o.Scheme + } + + switch true { + case scheme == ED448 && opts.HashFunc() == crypto.Hash(0): + return Verify(public, message, signature, ctx) + case scheme == ED448Ph && opts.HashFunc() == crypto.Hash(0): + return VerifyPh(public, message, signature, ctx) + default: + return false + } +} + +// Verify returns true if the signature is valid. Failure cases are invalid +// signature, or when the public key cannot be decoded. +// This function supports the signature variant defined in RFC-8032: Ed448, +// also known as the pure version of EdDSA. +func Verify(public PublicKey, message, signature []byte, ctx string) bool { + return verify(public, message, signature, []byte(ctx), false) +} + +// VerifyPh returns true if the signature is valid. Failure cases are invalid +// signature, or when the public key cannot be decoded. +// This function supports the signature variant defined in RFC-8032: Ed448ph, +// meaning it internally hashes the message using SHAKE-256. +// Context could be passed to this function, which length should be no more than +// 255. It can be empty. +func VerifyPh(public PublicKey, message, signature []byte, ctx string) bool { + return verify(public, message, signature, []byte(ctx), true) +} + +func deriveSecretScalar(s *goldilocks.Scalar, h []byte) { + h[0] &= 0xFC // The two least significant bits of the first octet are cleared, + h[paramB-1] = 0x00 // all eight bits the last octet are cleared, and + h[paramB-2] |= 0x80 // the highest bit of the second to last octet is set. + s.FromBytes(h[:paramB]) +} + +// isLessThanOrder returns true if 0 <= x < order and if the last byte of x is zero. +func isLessThanOrder(x []byte) bool { + order := goldilocks.Curve{}.Order() + i := len(order) - 1 + for i > 0 && x[i] == order[i] { + i-- + } + return x[paramB-1] == 0 && x[i] < order[i] +} + +func writeDom(h io.Writer, ctx []byte, preHash bool) { + dom4 := "SigEd448" + _, _ = h.Write([]byte(dom4)) + + if preHash { + _, _ = h.Write([]byte{byte(0x01), byte(len(ctx))}) + } else { + _, _ = h.Write([]byte{byte(0x00), byte(len(ctx))}) + } + _, _ = h.Write(ctx) +} diff --git a/vendor/github.com/cloudflare/circl/sign/ed448/signapi.go b/vendor/github.com/cloudflare/circl/sign/ed448/signapi.go new file mode 100644 index 000000000000..22da8bc0a570 --- /dev/null +++ b/vendor/github.com/cloudflare/circl/sign/ed448/signapi.go @@ -0,0 +1,87 @@ +package ed448 + +import ( + "crypto/rand" + "encoding/asn1" + + "github.com/cloudflare/circl/sign" +) + +var sch sign.Scheme = &scheme{} + +// Scheme returns a signature interface. +func Scheme() sign.Scheme { return sch } + +type scheme struct{} + +func (*scheme) Name() string { return "Ed448" } +func (*scheme) PublicKeySize() int { return PublicKeySize } +func (*scheme) PrivateKeySize() int { return PrivateKeySize } +func (*scheme) SignatureSize() int { return SignatureSize } +func (*scheme) SeedSize() int { return SeedSize } +func (*scheme) TLSIdentifier() uint { return 0x0808 } +func (*scheme) SupportsContext() bool { return true } +func (*scheme) Oid() asn1.ObjectIdentifier { + return asn1.ObjectIdentifier{1, 3, 101, 113} +} + +func (*scheme) GenerateKey() (sign.PublicKey, sign.PrivateKey, error) { + return GenerateKey(rand.Reader) +} + +func (*scheme) Sign( + sk sign.PrivateKey, + message []byte, + opts *sign.SignatureOpts, +) []byte { + priv, ok := sk.(PrivateKey) + if !ok { + panic(sign.ErrTypeMismatch) + } + ctx := "" + if opts != nil { + ctx = opts.Context + } + return Sign(priv, message, ctx) +} + +func (*scheme) Verify( + pk sign.PublicKey, + message, signature []byte, + opts *sign.SignatureOpts, +) bool { + pub, ok := pk.(PublicKey) + if !ok { + panic(sign.ErrTypeMismatch) + } + ctx := "" + if opts != nil { + ctx = opts.Context + } + return Verify(pub, message, signature, ctx) +} + +func (*scheme) DeriveKey(seed []byte) (sign.PublicKey, sign.PrivateKey) { + privateKey := NewKeyFromSeed(seed) + publicKey := make(PublicKey, PublicKeySize) + copy(publicKey, privateKey[SeedSize:]) + return publicKey, privateKey +} + +func (*scheme) UnmarshalBinaryPublicKey(buf []byte) (sign.PublicKey, error) { + if len(buf) < PublicKeySize { + return nil, sign.ErrPubKeySize + } + pub := make(PublicKey, PublicKeySize) + copy(pub, buf[:PublicKeySize]) + return pub, nil +} + +func (*scheme) UnmarshalBinaryPrivateKey(buf []byte) (sign.PrivateKey, error) { + if len(buf) < PrivateKeySize { + return nil, sign.ErrPrivKeySize + } + priv := make(PrivateKey, PrivateKeySize) + copy(priv, buf[:PrivateKeySize]) + return priv, nil +} diff --git a/vendor/github.com/cloudflare/circl/sign/sign.go b/vendor/github.com/cloudflare/circl/sign/sign.go new file mode 100644 index 000000000000..13b20fa4b04a --- /dev/null +++ b/vendor/github.com/cloudflare/circl/sign/sign.go @@ -0,0 +1,110 @@ +// Package sign provides unified interfaces for signature schemes. +// +// A register of schemes is available in the package +// +// github.com/cloudflare/circl/sign/schemes +package sign + +import ( + "crypto" + "encoding" + "errors" +) + +type SignatureOpts struct { + // If non-empty, includes the given context in the signature if supported + // and will cause an error during signing otherwise. + Context string +} + +// A public key is used to verify a signature set by the corresponding private +// key. +type PublicKey interface { + // Returns the signature scheme for this public key. + Scheme() Scheme + Equal(crypto.PublicKey) bool + encoding.BinaryMarshaler + crypto.PublicKey +} + +// A private key allows one to create signatures. +type PrivateKey interface { + // Returns the signature scheme for this private key. + Scheme() Scheme + Equal(crypto.PrivateKey) bool + // For compatibility with Go standard library + crypto.Signer + crypto.PrivateKey + encoding.BinaryMarshaler +} + +// A Scheme represents a specific instance of a signature scheme. +type Scheme interface { + // Name of the scheme. + Name() string + + // GenerateKey creates a new key-pair. + GenerateKey() (PublicKey, PrivateKey, error) + + // Creates a signature using the PrivateKey on the given message and + // returns the signature. opts are additional options which can be nil. + // + // Panics if key is nil or wrong type or opts context is not supported. + Sign(sk PrivateKey, message []byte, opts *SignatureOpts) []byte + + // Checks whether the given signature is a valid signature set by + // the private key corresponding to the given public key on the + // given message. opts are additional options which can be nil. + // + // Panics if key is nil or wrong type or opts context is not supported. + Verify(pk PublicKey, message []byte, signature []byte, opts *SignatureOpts) bool + + // Deterministically derives a keypair from a seed. If you're unsure, + // you're better off using GenerateKey(). + // + // Panics if seed is not of length SeedSize(). + DeriveKey(seed []byte) (PublicKey, PrivateKey) + + // Unmarshals a PublicKey from the provided buffer. + UnmarshalBinaryPublicKey([]byte) (PublicKey, error) + + // Unmarshals a PublicKey from the provided buffer. + UnmarshalBinaryPrivateKey([]byte) (PrivateKey, error) + + // Size of binary marshalled public keys. + PublicKeySize() int + + // Size of binary marshalled public keys. + PrivateKeySize() int + + // Size of signatures. + SignatureSize() int + + // Size of seeds. + SeedSize() int + + // Returns whether contexts are supported. + SupportsContext() bool +} + +var ( + // ErrTypeMismatch is the error used if types of, for instance, private + // and public keys don't match. + ErrTypeMismatch = errors.New("types mismatch") + + // ErrSeedSize is the error used if the provided seed is of the wrong + // size. + ErrSeedSize = errors.New("wrong seed size") + + // ErrPubKeySize is the error used if the provided public key is of + // the wrong size. + ErrPubKeySize = errors.New("wrong size for public key") + + // ErrPrivKeySize is the error used if the provided private key is of + // the wrong size. + ErrPrivKeySize = errors.New("wrong size for private key") + + // ErrContextNotSupported is the error used if a context is not + // supported. + ErrContextNotSupported = errors.New("context not supported") +) diff --git a/vendor/github.com/fatih/color/README.md b/vendor/github.com/fatih/color/README.md index 5152bf59bf8e..be82827cacd3 100644 --- a/vendor/github.com/fatih/color/README.md +++ b/vendor/github.com/fatih/color/README.md @@ -7,7 +7,6 @@ suits you. ![Color](https://user-images.githubusercontent.com/438920/96832689-03b3e000-13f4-11eb-9803-46f4c4de3406.jpg) - ## Install ```bash @@ -124,17 +123,17 @@ fmt.Println("All text will now be bold magenta.") ``` ### Disable/Enable color - + There might be a case where you want to explicitly disable/enable color output. the `go-isatty` package will automatically disable color output for non-tty output streams (for example if the output were piped directly to `less`). The `color` package also disables color output if the [`NO_COLOR`](https://no-color.org) environment -variable is set (regardless of its value). +variable is set to a non-empty string. -`Color` has support to disable/enable colors programatically both globally and +`Color` has support to disable/enable colors programmatically both globally and for single color definitions. For example suppose you have a CLI app and a -`--no-color` bool flag. You can easily disable the color output with: +`-no-color` bool flag. You can easily disable the color output with: ```go var flagNoColor = flag.Bool("no-color", false, "Disable color output") @@ -167,11 +166,10 @@ To output color in GitHub Actions (or other CI systems that support ANSI colors) * Save/Return previous values * Evaluate fmt.Formatter interface - ## Credits - * [Fatih Arslan](https://github.com/fatih) - * Windows support via @mattn: [colorable](https://github.com/mattn/go-colorable) +* [Fatih Arslan](https://github.com/fatih) +* Windows support via @mattn: [colorable](https://github.com/mattn/go-colorable) ## License diff --git a/vendor/github.com/fatih/color/color.go b/vendor/github.com/fatih/color/color.go index 98a60f3c88d6..889f9e77bdc9 100644 --- a/vendor/github.com/fatih/color/color.go +++ b/vendor/github.com/fatih/color/color.go @@ -19,10 +19,10 @@ var ( // set (regardless of its value). This is a global option and affects all // colors. For more control over each color block use the methods // DisableColor() individually. - NoColor = noColorExists() || os.Getenv("TERM") == "dumb" || + NoColor = noColorIsSet() || os.Getenv("TERM") == "dumb" || (!isatty.IsTerminal(os.Stdout.Fd()) && !isatty.IsCygwinTerminal(os.Stdout.Fd())) - // Output defines the standard output of the print functions. By default + // Output defines the standard output of the print functions. By default, // os.Stdout is used. Output = colorable.NewColorableStdout() @@ -35,10 +35,9 @@ var ( colorsCacheMu sync.Mutex // protects colorsCache ) -// noColorExists returns true if the environment variable NO_COLOR exists. -func noColorExists() bool { - _, exists := os.LookupEnv("NO_COLOR") - return exists +// noColorIsSet returns true if the environment variable NO_COLOR is set to a non-empty string. +func noColorIsSet() bool { + return os.Getenv("NO_COLOR") != "" } // Color defines a custom color object which is defined by SGR parameters. @@ -120,7 +119,7 @@ func New(value ...Attribute) *Color { params: make([]Attribute, 0), } - if noColorExists() { + if noColorIsSet() { c.noColor = boolPtr(true) } @@ -152,7 +151,7 @@ func (c *Color) Set() *Color { return c } - fmt.Fprintf(Output, c.format()) + fmt.Fprint(Output, c.format()) return c } @@ -164,16 +163,21 @@ func (c *Color) unset() { Unset() } -func (c *Color) setWriter(w io.Writer) *Color { +// SetWriter is used to set the SGR sequence with the given io.Writer. This is +// a low-level function, and users should use the higher-level functions, such +// as color.Fprint, color.Print, etc. +func (c *Color) SetWriter(w io.Writer) *Color { if c.isNoColorSet() { return c } - fmt.Fprintf(w, c.format()) + fmt.Fprint(w, c.format()) return c } -func (c *Color) unsetWriter(w io.Writer) { +// UnsetWriter resets all escape attributes and clears the output with the give +// io.Writer. Usually should be called after SetWriter(). +func (c *Color) UnsetWriter(w io.Writer) { if c.isNoColorSet() { return } @@ -192,20 +196,14 @@ func (c *Color) Add(value ...Attribute) *Color { return c } -func (c *Color) prepend(value Attribute) { - c.params = append(c.params, 0) - copy(c.params[1:], c.params[0:]) - c.params[0] = value -} - // Fprint formats using the default formats for its operands and writes to w. // Spaces are added between operands when neither is a string. // It returns the number of bytes written and any write error encountered. // On Windows, users should wrap w with colorable.NewColorable() if w is of // type *os.File. func (c *Color) Fprint(w io.Writer, a ...interface{}) (n int, err error) { - c.setWriter(w) - defer c.unsetWriter(w) + c.SetWriter(w) + defer c.UnsetWriter(w) return fmt.Fprint(w, a...) } @@ -227,8 +225,8 @@ func (c *Color) Print(a ...interface{}) (n int, err error) { // On Windows, users should wrap w with colorable.NewColorable() if w is of // type *os.File. func (c *Color) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) { - c.setWriter(w) - defer c.unsetWriter(w) + c.SetWriter(w) + defer c.UnsetWriter(w) return fmt.Fprintf(w, format, a...) } @@ -248,8 +246,8 @@ func (c *Color) Printf(format string, a ...interface{}) (n int, err error) { // On Windows, users should wrap w with colorable.NewColorable() if w is of // type *os.File. func (c *Color) Fprintln(w io.Writer, a ...interface{}) (n int, err error) { - c.setWriter(w) - defer c.unsetWriter(w) + c.SetWriter(w) + defer c.UnsetWriter(w) return fmt.Fprintln(w, a...) } @@ -396,7 +394,7 @@ func (c *Color) DisableColor() { } // EnableColor enables the color output. Use it in conjunction with -// DisableColor(). Otherwise this method has no side effects. +// DisableColor(). Otherwise, this method has no side effects. func (c *Color) EnableColor() { c.noColor = boolPtr(false) } diff --git a/vendor/github.com/fatih/color/color_windows.go b/vendor/github.com/fatih/color/color_windows.go new file mode 100644 index 000000000000..be01c558e506 --- /dev/null +++ b/vendor/github.com/fatih/color/color_windows.go @@ -0,0 +1,19 @@ +package color + +import ( + "os" + + "golang.org/x/sys/windows" +) + +func init() { + // Opt-in for ansi color support for current process. + // https://learn.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences#output-sequences + var outMode uint32 + out := windows.Handle(os.Stdout.Fd()) + if err := windows.GetConsoleMode(out, &outMode); err != nil { + return + } + outMode |= windows.ENABLE_PROCESSED_OUTPUT | windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING + _ = windows.SetConsoleMode(out, outMode) +} diff --git a/vendor/github.com/fatih/color/doc.go b/vendor/github.com/fatih/color/doc.go index 04541de786f3..9491ad5413c6 100644 --- a/vendor/github.com/fatih/color/doc.go +++ b/vendor/github.com/fatih/color/doc.go @@ -5,106 +5,105 @@ that suits you. Use simple and default helper functions with predefined foreground colors: - color.Cyan("Prints text in cyan.") + color.Cyan("Prints text in cyan.") - // a newline will be appended automatically - color.Blue("Prints %s in blue.", "text") + // a newline will be appended automatically + color.Blue("Prints %s in blue.", "text") - // More default foreground colors.. - color.Red("We have red") - color.Yellow("Yellow color too!") - color.Magenta("And many others ..") + // More default foreground colors.. + color.Red("We have red") + color.Yellow("Yellow color too!") + color.Magenta("And many others ..") - // Hi-intensity colors - color.HiGreen("Bright green color.") - color.HiBlack("Bright black means gray..") - color.HiWhite("Shiny white color!") + // Hi-intensity colors + color.HiGreen("Bright green color.") + color.HiBlack("Bright black means gray..") + color.HiWhite("Shiny white color!") -However there are times where custom color mixes are required. Below are some +However, there are times when custom color mixes are required. Below are some examples to create custom color objects and use the print functions of each separate color object. - // Create a new color object - c := color.New(color.FgCyan).Add(color.Underline) - c.Println("Prints cyan text with an underline.") + // Create a new color object + c := color.New(color.FgCyan).Add(color.Underline) + c.Println("Prints cyan text with an underline.") - // Or just add them to New() - d := color.New(color.FgCyan, color.Bold) - d.Printf("This prints bold cyan %s\n", "too!.") + // Or just add them to New() + d := color.New(color.FgCyan, color.Bold) + d.Printf("This prints bold cyan %s\n", "too!.") - // Mix up foreground and background colors, create new mixes! - red := color.New(color.FgRed) + // Mix up foreground and background colors, create new mixes! + red := color.New(color.FgRed) - boldRed := red.Add(color.Bold) - boldRed.Println("This will print text in bold red.") + boldRed := red.Add(color.Bold) + boldRed.Println("This will print text in bold red.") - whiteBackground := red.Add(color.BgWhite) - whiteBackground.Println("Red text with White background.") + whiteBackground := red.Add(color.BgWhite) + whiteBackground.Println("Red text with White background.") - // Use your own io.Writer output - color.New(color.FgBlue).Fprintln(myWriter, "blue color!") + // Use your own io.Writer output + color.New(color.FgBlue).Fprintln(myWriter, "blue color!") - blue := color.New(color.FgBlue) - blue.Fprint(myWriter, "This will print text in blue.") + blue := color.New(color.FgBlue) + blue.Fprint(myWriter, "This will print text in blue.") You can create PrintXxx functions to simplify even more: - // Create a custom print function for convenient - red := color.New(color.FgRed).PrintfFunc() - red("warning") - red("error: %s", err) + // Create a custom print function for convenient + red := color.New(color.FgRed).PrintfFunc() + red("warning") + red("error: %s", err) - // Mix up multiple attributes - notice := color.New(color.Bold, color.FgGreen).PrintlnFunc() - notice("don't forget this...") + // Mix up multiple attributes + notice := color.New(color.Bold, color.FgGreen).PrintlnFunc() + notice("don't forget this...") You can also FprintXxx functions to pass your own io.Writer: - blue := color.New(FgBlue).FprintfFunc() - blue(myWriter, "important notice: %s", stars) - - // Mix up with multiple attributes - success := color.New(color.Bold, color.FgGreen).FprintlnFunc() - success(myWriter, don't forget this...") + blue := color.New(FgBlue).FprintfFunc() + blue(myWriter, "important notice: %s", stars) + // Mix up with multiple attributes + success := color.New(color.Bold, color.FgGreen).FprintlnFunc() + success(myWriter, don't forget this...") Or create SprintXxx functions to mix strings with other non-colorized strings: - yellow := New(FgYellow).SprintFunc() - red := New(FgRed).SprintFunc() + yellow := New(FgYellow).SprintFunc() + red := New(FgRed).SprintFunc() - fmt.Printf("this is a %s and this is %s.\n", yellow("warning"), red("error")) + fmt.Printf("this is a %s and this is %s.\n", yellow("warning"), red("error")) - info := New(FgWhite, BgGreen).SprintFunc() - fmt.Printf("this %s rocks!\n", info("package")) + info := New(FgWhite, BgGreen).SprintFunc() + fmt.Printf("this %s rocks!\n", info("package")) Windows support is enabled by default. All Print functions work as intended. -However only for color.SprintXXX functions, user should use fmt.FprintXXX and +However, only for color.SprintXXX functions, user should use fmt.FprintXXX and set the output to color.Output: - fmt.Fprintf(color.Output, "Windows support: %s", color.GreenString("PASS")) + fmt.Fprintf(color.Output, "Windows support: %s", color.GreenString("PASS")) - info := New(FgWhite, BgGreen).SprintFunc() - fmt.Fprintf(color.Output, "this %s rocks!\n", info("package")) + info := New(FgWhite, BgGreen).SprintFunc() + fmt.Fprintf(color.Output, "this %s rocks!\n", info("package")) Using with existing code is possible. Just use the Set() method to set the standard output to the given parameters. That way a rewrite of an existing code is not required. - // Use handy standard colors. - color.Set(color.FgYellow) + // Use handy standard colors. + color.Set(color.FgYellow) - fmt.Println("Existing text will be now in Yellow") - fmt.Printf("This one %s\n", "too") + fmt.Println("Existing text will be now in Yellow") + fmt.Printf("This one %s\n", "too") - color.Unset() // don't forget to unset + color.Unset() // don't forget to unset - // You can mix up parameters - color.Set(color.FgMagenta, color.Bold) - defer color.Unset() // use it in your function + // You can mix up parameters + color.Set(color.FgMagenta, color.Bold) + defer color.Unset() // use it in your function - fmt.Println("All text will be now bold magenta.") + fmt.Println("All text will be now bold magenta.") There might be a case where you want to disable color output (for example to pipe the standard output of your app to somewhere else). `Color` has support to @@ -112,24 +111,24 @@ disable colors both globally and for single color definition. For example suppose you have a CLI app and a `--no-color` bool flag. You can easily disable the color output with: - var flagNoColor = flag.Bool("no-color", false, "Disable color output") + var flagNoColor = flag.Bool("no-color", false, "Disable color output") - if *flagNoColor { - color.NoColor = true // disables colorized output - } + if *flagNoColor { + color.NoColor = true // disables colorized output + } You can also disable the color by setting the NO_COLOR environment variable to any value. It also has support for single color definitions (local). You can disable/enable color output on the fly: - c := color.New(color.FgCyan) - c.Println("Prints cyan text") + c := color.New(color.FgCyan) + c.Println("Prints cyan text") - c.DisableColor() - c.Println("This is printed without any color") + c.DisableColor() + c.Println("This is printed without any color") - c.EnableColor() - c.Println("This prints again cyan...") + c.EnableColor() + c.Println("This prints again cyan...") */ package color diff --git a/vendor/github.com/golang/protobuf/jsonpb/decode.go b/vendor/github.com/golang/protobuf/jsonpb/decode.go index 60e82caa9a2d..6c16c255ffba 100644 --- a/vendor/github.com/golang/protobuf/jsonpb/decode.go +++ b/vendor/github.com/golang/protobuf/jsonpb/decode.go @@ -386,8 +386,14 @@ func (u *Unmarshaler) unmarshalMessage(m protoreflect.Message, in []byte) error } func isSingularWellKnownValue(fd protoreflect.FieldDescriptor) bool { + if fd.Cardinality() == protoreflect.Repeated { + return false + } if md := fd.Message(); md != nil { - return md.FullName() == "google.protobuf.Value" && fd.Cardinality() != protoreflect.Repeated + return md.FullName() == "google.protobuf.Value" + } + if ed := fd.Enum(); ed != nil { + return ed.FullName() == "google.protobuf.NullValue" } return false } diff --git a/vendor/github.com/google/uuid/.travis.yml b/vendor/github.com/google/uuid/.travis.yml deleted file mode 100644 index d8156a60ba9b..000000000000 --- a/vendor/github.com/google/uuid/.travis.yml +++ /dev/null @@ -1,9 +0,0 @@ -language: go - -go: - - 1.4.3 - - 1.5.3 - - tip - -script: - - go test -v ./... diff --git a/vendor/github.com/google/uuid/CHANGELOG.md b/vendor/github.com/google/uuid/CHANGELOG.md new file mode 100644 index 000000000000..2bd78667afbb --- /dev/null +++ b/vendor/github.com/google/uuid/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +## [1.3.1](https://github.com/google/uuid/compare/v1.3.0...v1.3.1) (2023-08-18) + + +### Bug Fixes + +* Use .EqualFold() to parse urn prefixed UUIDs ([#118](https://github.com/google/uuid/issues/118)) ([574e687](https://github.com/google/uuid/commit/574e6874943741fb99d41764c705173ada5293f0)) + +## Changelog diff --git a/vendor/github.com/google/uuid/CONTRIBUTING.md b/vendor/github.com/google/uuid/CONTRIBUTING.md index 04fdf09f136b..5566888726d9 100644 --- a/vendor/github.com/google/uuid/CONTRIBUTING.md +++ b/vendor/github.com/google/uuid/CONTRIBUTING.md @@ -2,6 +2,22 @@ We definitely welcome patches and contribution to this project! +### Tips + +Commits must be formatted according to the [Conventional Commits Specification](https://www.conventionalcommits.org). + +Always try to include a test case! If it is not possible or not necessary, +please explain why in the pull request description. + +### Releasing + +Commits that would precipitate a SemVer change, as desrcibed in the Conventional +Commits Specification, will trigger [`release-please`](https://github.com/google-github-actions/release-please-action) +to create a release candidate pull request. Once submitted, `release-please` +will create a release. + +For tips on how to work with `release-please`, see its documentation. + ### Legal requirements In order to protect both you and ourselves, you will need to sign the diff --git a/vendor/github.com/google/uuid/README.md b/vendor/github.com/google/uuid/README.md index f765a46f9150..3e9a61889de4 100644 --- a/vendor/github.com/google/uuid/README.md +++ b/vendor/github.com/google/uuid/README.md @@ -1,6 +1,6 @@ -# uuid ![build status](https://travis-ci.org/google/uuid.svg?branch=master) +# uuid The uuid package generates and inspects UUIDs based on -[RFC 4122](http://tools.ietf.org/html/rfc4122) +[RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122) and DCE 1.1: Authentication and Security Services. This package is based on the github.com/pborman/uuid package (previously named @@ -9,10 +9,12 @@ a UUID is a 16 byte array rather than a byte slice. One loss due to this change is the ability to represent an invalid UUID (vs a NIL UUID). ###### Install -`go get github.com/google/uuid` +```sh +go get github.com/google/uuid +``` ###### Documentation -[![GoDoc](https://godoc.org/github.com/google/uuid?status.svg)](http://godoc.org/github.com/google/uuid) +[![Go Reference](https://pkg.go.dev/badge/github.com/google/uuid.svg)](https://pkg.go.dev/github.com/google/uuid) Full `go doc` style documentation for the package can be viewed online without installing this package by using the GoDoc site here: diff --git a/vendor/github.com/google/uuid/node_js.go b/vendor/github.com/google/uuid/node_js.go index 24b78edc9071..b2a0bc8711b3 100644 --- a/vendor/github.com/google/uuid/node_js.go +++ b/vendor/github.com/google/uuid/node_js.go @@ -7,6 +7,6 @@ package uuid // getHardwareInterface returns nil values for the JS version of the code. -// This remvoves the "net" dependency, because it is not used in the browser. +// This removes the "net" dependency, because it is not used in the browser. // Using the "net" library inflates the size of the transpiled JS code by 673k bytes. func getHardwareInterface(name string) (string, []byte) { return "", nil } diff --git a/vendor/github.com/google/uuid/uuid.go b/vendor/github.com/google/uuid/uuid.go index a57207aeb6fd..a56138cc4bd0 100644 --- a/vendor/github.com/google/uuid/uuid.go +++ b/vendor/github.com/google/uuid/uuid.go @@ -69,7 +69,7 @@ func Parse(s string) (UUID, error) { // urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx case 36 + 9: - if strings.ToLower(s[:9]) != "urn:uuid:" { + if !strings.EqualFold(s[:9], "urn:uuid:") { return uuid, fmt.Errorf("invalid urn prefix: %q", s[:9]) } s = s[9:] @@ -101,7 +101,8 @@ func Parse(s string) (UUID, error) { 9, 11, 14, 16, 19, 21, - 24, 26, 28, 30, 32, 34} { + 24, 26, 28, 30, 32, 34, + } { v, ok := xtob(s[x], s[x+1]) if !ok { return uuid, errors.New("invalid UUID format") @@ -117,7 +118,7 @@ func ParseBytes(b []byte) (UUID, error) { switch len(b) { case 36: // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx case 36 + 9: // urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - if !bytes.Equal(bytes.ToLower(b[:9]), []byte("urn:uuid:")) { + if !bytes.EqualFold(b[:9], []byte("urn:uuid:")) { return uuid, fmt.Errorf("invalid urn prefix: %q", b[:9]) } b = b[9:] @@ -145,7 +146,8 @@ func ParseBytes(b []byte) (UUID, error) { 9, 11, 14, 16, 19, 21, - 24, 26, 28, 30, 32, 34} { + 24, 26, 28, 30, 32, 34, + } { v, ok := xtob(b[x], b[x+1]) if !ok { return uuid, errors.New("invalid UUID format") diff --git a/vendor/github.com/hashicorp/go-hclog/LICENSE b/vendor/github.com/hashicorp/go-hclog/LICENSE index abaf1e45f2a9..9938fb50ee1d 100644 --- a/vendor/github.com/hashicorp/go-hclog/LICENSE +++ b/vendor/github.com/hashicorp/go-hclog/LICENSE @@ -1,6 +1,4 @@ -MIT License - -Copyright (c) 2017 HashiCorp +Copyright (c) 2017 HashiCorp, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/github.com/hashicorp/go-hclog/colorize_unix.go b/vendor/github.com/hashicorp/go-hclog/colorize_unix.go index 99cc176a416b..d00816b38fa0 100644 --- a/vendor/github.com/hashicorp/go-hclog/colorize_unix.go +++ b/vendor/github.com/hashicorp/go-hclog/colorize_unix.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MIT + //go:build !windows // +build !windows @@ -7,23 +10,35 @@ import ( "github.com/mattn/go-isatty" ) +// hasFD is used to check if the writer has an Fd value to check +// if it's a terminal. +type hasFD interface { + Fd() uintptr +} + // setColorization will mutate the values of this logger // to appropriately configure colorization options. It provides // a wrapper to the output stream on Windows systems. func (l *intLogger) setColorization(opts *LoggerOptions) { - switch opts.Color { - case ColorOff: - fallthrough - case ForceColor: + if opts.Color != AutoColor { return - case AutoColor: - fi := l.checkWriterIsFile() - isUnixTerm := isatty.IsTerminal(fi.Fd()) - isCygwinTerm := isatty.IsCygwinTerminal(fi.Fd()) - isTerm := isUnixTerm || isCygwinTerm - if !isTerm { + } + + if sc, ok := l.writer.w.(SupportsColor); ok { + if !sc.SupportsColor() { l.headerColor = ColorOff l.writer.color = ColorOff } + return + } + + fi, ok := l.writer.w.(hasFD) + if !ok { + return + } + + if !isatty.IsTerminal(fi.Fd()) { + l.headerColor = ColorOff + l.writer.color = ColorOff } } diff --git a/vendor/github.com/hashicorp/go-hclog/colorize_windows.go b/vendor/github.com/hashicorp/go-hclog/colorize_windows.go index 26f8cef8d121..2c3fb9ea6f0d 100644 --- a/vendor/github.com/hashicorp/go-hclog/colorize_windows.go +++ b/vendor/github.com/hashicorp/go-hclog/colorize_windows.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MIT + //go:build windows // +build windows @@ -7,32 +10,32 @@ import ( "os" colorable "github.com/mattn/go-colorable" - "github.com/mattn/go-isatty" ) // setColorization will mutate the values of this logger // to appropriately configure colorization options. It provides // a wrapper to the output stream on Windows systems. func (l *intLogger) setColorization(opts *LoggerOptions) { - switch opts.Color { - case ColorOff: + if opts.Color == ColorOff { + return + } + + fi, ok := l.writer.w.(*os.File) + if !ok { + l.writer.color = ColorOff + l.headerColor = ColorOff return - case ForceColor: - fi := l.checkWriterIsFile() - l.writer.w = colorable.NewColorable(fi) - case AutoColor: - fi := l.checkWriterIsFile() - isUnixTerm := isatty.IsTerminal(os.Stdout.Fd()) - isCygwinTerm := isatty.IsCygwinTerminal(os.Stdout.Fd()) - isTerm := isUnixTerm || isCygwinTerm - if !isTerm { - l.writer.color = ColorOff - l.headerColor = ColorOff - return - } - - if l.headerColor == ColorOff { - l.writer.w = colorable.NewColorable(fi) - } + } + + cfi := colorable.NewColorable(fi) + + // NewColorable detects if color is possible and if it's not, then it + // returns the original value. So we can test if we got the original + // value back to know if color is possible. + if cfi == fi { + l.writer.color = ColorOff + l.headerColor = ColorOff + } else { + l.writer.w = cfi } } diff --git a/vendor/github.com/hashicorp/go-hclog/context.go b/vendor/github.com/hashicorp/go-hclog/context.go index 7815f5019426..eb5aba556bb6 100644 --- a/vendor/github.com/hashicorp/go-hclog/context.go +++ b/vendor/github.com/hashicorp/go-hclog/context.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MIT + package hclog import ( diff --git a/vendor/github.com/hashicorp/go-hclog/exclude.go b/vendor/github.com/hashicorp/go-hclog/exclude.go index cfd4307a8035..4b73ba553dad 100644 --- a/vendor/github.com/hashicorp/go-hclog/exclude.go +++ b/vendor/github.com/hashicorp/go-hclog/exclude.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MIT + package hclog import ( diff --git a/vendor/github.com/hashicorp/go-hclog/global.go b/vendor/github.com/hashicorp/go-hclog/global.go index 48ff1f3a4e90..a7403f593a93 100644 --- a/vendor/github.com/hashicorp/go-hclog/global.go +++ b/vendor/github.com/hashicorp/go-hclog/global.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MIT + package hclog import ( diff --git a/vendor/github.com/hashicorp/go-hclog/interceptlogger.go b/vendor/github.com/hashicorp/go-hclog/interceptlogger.go index ff42f1bfc1dd..e9b1c1885308 100644 --- a/vendor/github.com/hashicorp/go-hclog/interceptlogger.go +++ b/vendor/github.com/hashicorp/go-hclog/interceptlogger.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MIT + package hclog import ( diff --git a/vendor/github.com/hashicorp/go-hclog/intlogger.go b/vendor/github.com/hashicorp/go-hclog/intlogger.go index 89d26c9b01f7..b45064acf1a7 100644 --- a/vendor/github.com/hashicorp/go-hclog/intlogger.go +++ b/vendor/github.com/hashicorp/go-hclog/intlogger.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MIT + package hclog import ( @@ -8,7 +11,6 @@ import ( "fmt" "io" "log" - "os" "reflect" "runtime" "sort" @@ -86,6 +88,8 @@ type intLogger struct { // create subloggers with their own level setting independentLevels bool + + subloggerHook func(sub Logger) Logger } // New returns a configured logger. @@ -152,6 +156,7 @@ func newLogger(opts *LoggerOptions) *intLogger { independentLevels: opts.IndependentLevels, headerColor: headerColor, fieldColor: fieldColor, + subloggerHook: opts.SubloggerHook, } if opts.IncludeLocation { l.callerOffset = offsetIntLogger + opts.AdditionalLocationOffset @@ -167,6 +172,10 @@ func newLogger(opts *LoggerOptions) *intLogger { l.timeFormat = opts.TimeFormat } + if l.subloggerHook == nil { + l.subloggerHook = identityHook + } + l.setColorization(opts) atomic.StoreInt32(l.level, int32(level)) @@ -174,6 +183,10 @@ func newLogger(opts *LoggerOptions) *intLogger { return l } +func identityHook(logger Logger) Logger { + return logger +} + // offsetIntLogger is the stack frame offset in the call stack for the caller to // one of the Warn, Info, Log, etc methods. const offsetIntLogger = 3 @@ -775,7 +788,7 @@ func (l *intLogger) With(args ...interface{}) Logger { sl.implied = append(sl.implied, MissingKey, extra) } - return sl + return l.subloggerHook(sl) } // Create a new sub-Logger that a name decending from the current name. @@ -789,7 +802,7 @@ func (l *intLogger) Named(name string) Logger { sl.name = name } - return sl + return l.subloggerHook(sl) } // Create a new sub-Logger with an explicit name. This ignores the current @@ -800,7 +813,7 @@ func (l *intLogger) ResetNamed(name string) Logger { sl.name = name - return sl + return l.subloggerHook(sl) } func (l *intLogger) ResetOutput(opts *LoggerOptions) error { @@ -876,16 +889,6 @@ func (l *intLogger) StandardWriter(opts *StandardLoggerOptions) io.Writer { } } -// checks if the underlying io.Writer is a file, and -// panics if not. For use by colorization. -func (l *intLogger) checkWriterIsFile() *os.File { - fi, ok := l.writer.w.(*os.File) - if !ok { - panic("Cannot enable coloring of non-file Writers") - } - return fi -} - // Accept implements the SinkAdapter interface func (i *intLogger) Accept(name string, level Level, msg string, args ...interface{}) { i.log(name, level, msg, args...) diff --git a/vendor/github.com/hashicorp/go-hclog/logger.go b/vendor/github.com/hashicorp/go-hclog/logger.go index 3cdb2837d798..947ac0c9afc9 100644 --- a/vendor/github.com/hashicorp/go-hclog/logger.go +++ b/vendor/github.com/hashicorp/go-hclog/logger.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MIT + package hclog import ( @@ -89,6 +92,13 @@ const ( ForceColor ) +// SupportsColor is an optional interface that can be implemented by the output +// value. If implemented and SupportsColor() returns true, then AutoColor will +// enable colorization. +type SupportsColor interface { + SupportsColor() bool +} + // LevelFromString returns a Level type for the named log level, or "NoLevel" if // the level string is invalid. This facilitates setting the log level via // config or environment variable by name in a predictable way. @@ -292,6 +302,13 @@ type LoggerOptions struct { // logger will not affect any subloggers, and SetLevel on any subloggers // will not affect the parent or sibling loggers. IndependentLevels bool + + // SubloggerHook registers a function that is called when a sublogger via + // Named, With, or ResetNamed is created. If defined, the function is passed + // the newly created Logger and the returned Logger is returned from the + // original function. This option allows customization via interception and + // wrapping of Logger instances. + SubloggerHook func(sub Logger) Logger } // InterceptLogger describes the interface for using a logger diff --git a/vendor/github.com/hashicorp/go-hclog/nulllogger.go b/vendor/github.com/hashicorp/go-hclog/nulllogger.go index 55e89dd31cad..d43da809eb96 100644 --- a/vendor/github.com/hashicorp/go-hclog/nulllogger.go +++ b/vendor/github.com/hashicorp/go-hclog/nulllogger.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MIT + package hclog import ( diff --git a/vendor/github.com/hashicorp/go-hclog/stdlog.go b/vendor/github.com/hashicorp/go-hclog/stdlog.go index 641f20ccbcc8..03739b61fa76 100644 --- a/vendor/github.com/hashicorp/go-hclog/stdlog.go +++ b/vendor/github.com/hashicorp/go-hclog/stdlog.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MIT + package hclog import ( diff --git a/vendor/github.com/hashicorp/go-hclog/writer.go b/vendor/github.com/hashicorp/go-hclog/writer.go index 421a1f06c0ba..4ee219bf0ce7 100644 --- a/vendor/github.com/hashicorp/go-hclog/writer.go +++ b/vendor/github.com/hashicorp/go-hclog/writer.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MIT + package hclog import ( diff --git a/vendor/github.com/hashicorp/go-plugin/CHANGELOG.md b/vendor/github.com/hashicorp/go-plugin/CHANGELOG.md index d40ad613615e..ffcfe15431bf 100644 --- a/vendor/github.com/hashicorp/go-plugin/CHANGELOG.md +++ b/vendor/github.com/hashicorp/go-plugin/CHANGELOG.md @@ -1,3 +1,47 @@ +## v1.5.1 + +BUGS: + +* server: `PLUGIN_UNIX_SOCKET_DIR` is consistently used for gRPC broker sockets as well as the initial socket [[GH-277](https://github.com/hashicorp/go-plugin/pull/277)] + +ENHANCEMENTS: + +* client: New `UnixSocketConfig` option in `ClientConfig` to support making the client's Unix sockets group-writable [[GH-277](https://github.com/hashicorp/go-plugin/pull/277)] + +## v1.5.0 + +ENHANCEMENTS: + +* client: New `runner.Runner` interface to support clients providing custom plugin command runner implementations [[GH-270](https://github.com/hashicorp/go-plugin/pull/270)] + * Accessible via new `ClientConfig` field `RunnerFunc`, which is mutually exclusive with `Cmd` and `Reattach` + * Reattaching support via `ReattachConfig` field `ReattachFunc` +* client: New `ClientConfig` field `SkipHostEnv` allows omitting the client process' own environment variables from the plugin command's environment [[GH-270](https://github.com/hashicorp/go-plugin/pull/270)] +* client: Add `ID()` method to `Client` for retrieving the pid or other unique ID of a running plugin [[GH-272](https://github.com/hashicorp/go-plugin/pull/272)] +* server: Support setting the directory to create Unix sockets in with the env var `PLUGIN_UNIX_SOCKET_DIR` [[GH-270](https://github.com/hashicorp/go-plugin/pull/270)] +* server: Support setting group write permission and a custom group name or gid owner with the env var `PLUGIN_UNIX_SOCKET_GROUP` [[GH-270](https://github.com/hashicorp/go-plugin/pull/270)] + +## v1.4.11-rc1 + +ENHANCEMENTS: + +* deps: bump protoreflect to v1.15.1 [[GH-264](https://github.com/hashicorp/go-plugin/pull/264)] + +## v1.4.10 + +BUG FIXES: + +* additional notes: ensure to close files [[GH-241](https://github.com/hashicorp/go-plugin/pull/241)] + +ENHANCEMENTS: + +* deps: Remove direct dependency on golang.org/x/net [[GH-240](https://github.com/hashicorp/go-plugin/pull/240)] + +## v1.4.9 + +ENHANCEMENTS: + +* client: Remove log warning introduced in 1.4.5 when SecureConfig is nil. [[GH-238](https://github.com/hashicorp/go-plugin/pull/238)] + ## v1.4.8 BUG FIXES: @@ -33,5 +77,3 @@ BUG FIXES: * Bidirectional communication: fix bidirectional communication when AutoMTLS is enabled [[GH-193](https://github.com/hashicorp/go-plugin/pull/193)] * RPC: Trim a spurious log message for plugins using RPC [[GH-186](https://github.com/hashicorp/go-plugin/pull/186)] - - diff --git a/vendor/github.com/hashicorp/go-plugin/README.md b/vendor/github.com/hashicorp/go-plugin/README.md index 39391f24fe42..50baee06e157 100644 --- a/vendor/github.com/hashicorp/go-plugin/README.md +++ b/vendor/github.com/hashicorp/go-plugin/README.md @@ -4,8 +4,9 @@ that has been in use by HashiCorp tooling for over 4 years. While initially created for [Packer](https://www.packer.io), it is additionally in use by [Terraform](https://www.terraform.io), [Nomad](https://www.nomadproject.io), -[Vault](https://www.vaultproject.io), and -[Boundary](https://www.boundaryproject.io). +[Vault](https://www.vaultproject.io), +[Boundary](https://www.boundaryproject.io), +and [Waypoint](https://www.waypointproject.io). While the plugin system is over RPC, it is currently only designed to work over a local [reliable] network. Plugins over a real network are not supported diff --git a/vendor/github.com/hashicorp/go-plugin/client.go b/vendor/github.com/hashicorp/go-plugin/client.go index d0baf7e8d76f..b6024afce0e1 100644 --- a/vendor/github.com/hashicorp/go-plugin/client.go +++ b/vendor/github.com/hashicorp/go-plugin/client.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( @@ -23,17 +26,11 @@ import ( "time" "github.com/hashicorp/go-hclog" + "github.com/hashicorp/go-plugin/internal/cmdrunner" + "github.com/hashicorp/go-plugin/runner" "google.golang.org/grpc" ) -const unrecognizedRemotePluginMessage = `Unrecognized remote plugin message: %s -This usually means - the plugin was not compiled for this architecture, - the plugin is missing dynamic-link libraries necessary to run, - the plugin is not executable by this process due to file permissions, or - the plugin failed to negotiate the initial go-plugin protocol handshake -%s` - // If this is 1, then we've called CleanupClients. This can be used // by plugin RPC implementations to change error behavior since you // can expected network connection errors at this point. This should be @@ -49,7 +46,7 @@ var managedClientsLock sync.Mutex var ( // ErrProcessNotFound is returned when a client is instantiated to // reattach to an existing process and it isn't found. - ErrProcessNotFound = errors.New("Reattachment process not found") + ErrProcessNotFound = cmdrunner.ErrProcessNotFound // ErrChecksumsDoNotMatch is returned when binary's checksum doesn't match // the one provided in the SecureConfig. @@ -84,7 +81,7 @@ type Client struct { exited bool l sync.Mutex address net.Addr - process *os.Process + runner runner.AttachedRunner client ClientProtocol protocol Protocol logger hclog.Logger @@ -103,6 +100,8 @@ type Client struct { // processKilled is used for testing only, to flag when the process was // forcefully killed. processKilled bool + + unixSocketCfg UnixSocketConfig } // NegotiatedVersion returns the protocol version negotiated with the server. @@ -111,6 +110,19 @@ func (c *Client) NegotiatedVersion() int { return c.negotiatedVersion } +// ID returns a unique ID for the running plugin. By default this is the process +// ID (pid), but it could take other forms if RunnerFunc was provided. +func (c *Client) ID() string { + c.l.Lock() + defer c.l.Unlock() + + if c.runner != nil { + return c.runner.ID() + } + + return "" +} + // ClientConfig is the configuration used to initialize a new // plugin client. After being used to initialize a plugin client, // that configuration must not be modified again. @@ -138,6 +150,13 @@ type ClientConfig struct { Cmd *exec.Cmd Reattach *ReattachConfig + // RunnerFunc allows consumers to provide their own implementation of + // runner.Runner and control the context within which a plugin is executed. + // The cmd argument will have been copied from the config and populated with + // environment variables that a go-plugin server expects to read such as + // AutoMTLS certs and the magic cookie key. + RunnerFunc func(l hclog.Logger, cmd *exec.Cmd, tmpDir string) (runner.Runner, error) + // SecureConfig is configuration for verifying the integrity of the // executable. It can not be used with Reattach. SecureConfig *SecureConfig @@ -217,6 +236,32 @@ type ClientConfig struct { // to create gRPC connections. This only affects plugins using the gRPC // protocol. GRPCDialOptions []grpc.DialOption + + // SkipHostEnv allows plugins to run without inheriting the parent process' + // environment variables. + SkipHostEnv bool + + // UnixSocketConfig configures additional options for any Unix sockets + // that are created. Not normally required. Not supported on Windows. + UnixSocketConfig *UnixSocketConfig +} + +type UnixSocketConfig struct { + // If set, go-plugin will change the owner of any Unix sockets created to + // this group, and set them as group-writable. Can be a name or gid. The + // client process must be a member of this group or chown will fail. + Group string + + // The directory to create Unix sockets in. Internally managed by go-plugin + // and deleted when the plugin is killed. + directory string +} + +func unixSocketConfigFromEnv() UnixSocketConfig { + return UnixSocketConfig{ + Group: os.Getenv(EnvUnixSocketGroup), + directory: os.Getenv(EnvUnixSocketDir), + } } // ReattachConfig is used to configure a client to reattach to an @@ -228,6 +273,11 @@ type ReattachConfig struct { Addr net.Addr Pid int + // ReattachFunc allows consumers to provide their own implementation of + // runner.AttachedRunner and attach to something other than a plain process. + // At least one of Pid or ReattachFunc must be set. + ReattachFunc runner.ReattachFunc + // Test is set to true if this is reattaching to to a plugin in "test mode" // (see ServeConfig.Test). In this mode, client.Kill will NOT kill the // process and instead will rely on the plugin to terminate itself. This @@ -307,7 +357,7 @@ func CleanupClients() { // plugin and gets the address for the RPC connection. // // The client must be cleaned up at some point by calling Kill(). If -// the client is a managed client (created with NewManagedClient) you +// the client is a managed client (created with ClientConfig.Managed) you // can just call CleanupClients at the end of your program and they will // be properly cleaned. func NewClient(config *ClientConfig) (c *Client) { @@ -415,12 +465,13 @@ func (c *Client) killed() bool { func (c *Client) Kill() { // Grab a lock to read some private fields. c.l.Lock() - process := c.process + runner := c.runner addr := c.address + hostSocketDir := c.unixSocketCfg.directory c.l.Unlock() - // If there is no process, there is nothing to kill. - if process == nil { + // If there is no runner or ID, there is nothing to kill. + if runner == nil || runner.ID() == "" { return } @@ -428,10 +479,14 @@ func (c *Client) Kill() { // Wait for the all client goroutines to finish. c.clientWaitGroup.Wait() + if hostSocketDir != "" { + os.RemoveAll(hostSocketDir) + } + // Make sure there is no reference to the old process after it has been // killed. c.l.Lock() - c.process = nil + c.runner = nil c.l.Unlock() }() @@ -474,23 +529,15 @@ func (c *Client) Kill() { // If graceful exiting failed, just kill it c.logger.Warn("plugin failed to exit gracefully") - process.Kill() + if err := runner.Kill(context.Background()); err != nil { + c.logger.Debug("error killing plugin", "error", err) + } c.l.Lock() c.processKilled = true c.l.Unlock() } -// peTypes is a list of Portable Executable (PE) machine types from https://learn.microsoft.com/en-us/windows/win32/debug/pe-format -// mapped to GOARCH types. It is not comprehensive, and only includes machine types that Go supports. -var peTypes = map[uint16]string{ - 0x14c: "386", - 0x1c0: "arm", - 0x6264: "loong64", - 0x8664: "amd64", - 0xaa64: "arm64", -} - // Start the underlying subprocess, communicating with it to negotiate // a port for RPC connections, and returning the address to connect via RPC. // @@ -509,14 +556,21 @@ func (c *Client) Start() (addr net.Addr, err error) { // this in a {} for scoping reasons, and hopeful that the escape // analysis will pop the stack here. { - cmdSet := c.config.Cmd != nil - attachSet := c.config.Reattach != nil - secureSet := c.config.SecureConfig != nil - if cmdSet == attachSet { - return nil, fmt.Errorf("Only one of Cmd or Reattach must be set") + var mutuallyExclusiveOptions int + if c.config.Cmd != nil { + mutuallyExclusiveOptions += 1 + } + if c.config.Reattach != nil { + mutuallyExclusiveOptions += 1 + } + if c.config.RunnerFunc != nil { + mutuallyExclusiveOptions += 1 + } + if mutuallyExclusiveOptions != 1 { + return nil, fmt.Errorf("exactly one of Cmd, or Reattach, or RunnerFunc must be set") } - if secureSet && attachSet { + if c.config.SecureConfig != nil && c.config.Reattach != nil { return nil, ErrSecureConfigAndReattach } } @@ -552,22 +606,19 @@ func (c *Client) Start() (addr net.Addr, err error) { } cmd := c.config.Cmd - cmd.Env = append(cmd.Env, os.Environ()...) - cmd.Env = append(cmd.Env, env...) - cmd.Stdin = os.Stdin - - cmdStdout, err := cmd.StdoutPipe() - if err != nil { - return nil, err + if cmd == nil { + // It's only possible to get here if RunnerFunc is non-nil, but we'll + // still use cmd as a spec to populate metadata for the external + // implementation to consume. + cmd = exec.Command("") } - cmdStderr, err := cmd.StderrPipe() - if err != nil { - return nil, err + if !c.config.SkipHostEnv { + cmd.Env = append(cmd.Env, os.Environ()...) } + cmd.Env = append(cmd.Env, env...) + cmd.Stdin = os.Stdin - if c.config.SecureConfig == nil { - c.logger.Warn("plugin configured with a nil SecureConfig") - } else { + if c.config.SecureConfig != nil { if ok, err := c.config.SecureConfig.Check(cmd.Path); err != nil { return nil, fmt.Errorf("error verifying checksum: %s", err) } else if !ok { @@ -600,26 +651,62 @@ func (c *Client) Start() (addr net.Addr, err error) { } } - c.logger.Debug("starting plugin", "path", cmd.Path, "args", cmd.Args) - err = cmd.Start() - if err != nil { - return + if c.config.UnixSocketConfig != nil { + c.unixSocketCfg.Group = c.config.UnixSocketConfig.Group } - // Set the process - c.process = cmd.Process - c.logger.Debug("plugin started", "path", cmd.Path, "pid", c.process.Pid) + if c.unixSocketCfg.Group != "" { + cmd.Env = append(cmd.Env, fmt.Sprintf("%s=%s", EnvUnixSocketGroup, c.unixSocketCfg.Group)) + } + + var runner runner.Runner + switch { + case c.config.RunnerFunc != nil: + c.unixSocketCfg.directory, err = os.MkdirTemp("", "plugin-dir") + if err != nil { + return nil, err + } + // os.MkdirTemp creates folders with 0o700, so if we have a group + // configured we need to make it group-writable. + if c.unixSocketCfg.Group != "" { + err = setGroupWritable(c.unixSocketCfg.directory, c.unixSocketCfg.Group, 0o770) + if err != nil { + return nil, err + } + } + cmd.Env = append(cmd.Env, fmt.Sprintf("%s=%s", EnvUnixSocketDir, c.unixSocketCfg.directory)) + c.logger.Trace("created temporary directory for unix sockets", "dir", c.unixSocketCfg.directory) + + runner, err = c.config.RunnerFunc(c.logger, cmd, c.unixSocketCfg.directory) + if err != nil { + return nil, err + } + default: + runner, err = cmdrunner.NewCmdRunner(c.logger, cmd) + if err != nil { + return nil, err + } + + } + + c.runner = runner + startCtx, startCtxCancel := context.WithTimeout(context.Background(), c.config.StartTimeout) + defer startCtxCancel() + err = runner.Start(startCtx) + if err != nil { + return nil, err + } // Make sure the command is properly cleaned up if there is an error defer func() { - r := recover() + rErr := recover() - if err != nil || r != nil { - cmd.Process.Kill() + if err != nil || rErr != nil { + runner.Kill(context.Background()) } - if r != nil { - panic(r) + if rErr != nil { + panic(rErr) } }() @@ -630,7 +717,7 @@ func (c *Client) Start() (addr net.Addr, err error) { c.clientWaitGroup.Add(1) c.stderrWaitGroup.Add(1) // logStderr calls Done() - go c.logStderr(cmdStderr) + go c.logStderr(runner.Name(), runner.Stderr()) c.clientWaitGroup.Add(1) go func() { @@ -639,29 +726,17 @@ func (c *Client) Start() (addr net.Addr, err error) { defer c.clientWaitGroup.Done() - // get the cmd info early, since the process information will be removed - // in Kill. - pid := c.process.Pid - path := cmd.Path - // wait to finish reading from stderr since the stderr pipe reader // will be closed by the subsequent call to cmd.Wait(). c.stderrWaitGroup.Wait() // Wait for the command to end. - err := cmd.Wait() - - msgArgs := []interface{}{ - "path", path, - "pid", pid, - } + err := runner.Wait(context.Background()) if err != nil { - msgArgs = append(msgArgs, - []interface{}{"error", err.Error()}...) - c.logger.Error("plugin process exited", msgArgs...) + c.logger.Error("plugin process exited", "plugin", runner.Name(), "id", runner.ID(), "error", err.Error()) } else { // Log and make sure to flush the logs right away - c.logger.Info("plugin process exited", msgArgs...) + c.logger.Info("plugin process exited", "plugin", runner.Name(), "id", runner.ID()) } os.Stderr.Sync() @@ -680,10 +755,13 @@ func (c *Client) Start() (addr net.Addr, err error) { defer c.clientWaitGroup.Done() defer close(linesCh) - scanner := bufio.NewScanner(cmdStdout) + scanner := bufio.NewScanner(runner.Stdout()) for scanner.Scan() { linesCh <- scanner.Text() } + if scanner.Err() != nil { + c.logger.Error("error encountered while scanning stdout", "error", scanner.Err()) + } }() // Make sure after we exit we read the lines from stdout forever @@ -703,19 +781,27 @@ func (c *Client) Start() (addr net.Addr, err error) { timeout := time.After(c.config.StartTimeout) // Start looking for the address - c.logger.Debug("waiting for RPC address", "path", cmd.Path) + c.logger.Debug("waiting for RPC address", "plugin", runner.Name()) select { case <-timeout: err = errors.New("timeout while waiting for plugin to start") case <-c.doneCtx.Done(): err = errors.New("plugin exited before we could connect") - case line := <-linesCh: + case line, ok := <-linesCh: // Trim the line and split by "|" in order to get the parts of // the output. line = strings.TrimSpace(line) parts := strings.SplitN(line, "|", 6) if len(parts) < 4 { - err = fmt.Errorf(unrecognizedRemotePluginMessage, line, additionalNotesAboutCommand(cmd.Path)) + errText := fmt.Sprintf("Unrecognized remote plugin message: %s", line) + if !ok { + errText += "\n" + "Failed to read any lines from plugin's stdout" + } + additionalNotes := runner.Diagnose(context.Background()) + if additionalNotes != "" { + errText += "\n" + additionalNotes + } + err = errors.New(errText) return } @@ -750,13 +836,18 @@ func (c *Client) Start() (addr net.Addr, err error) { c.negotiatedVersion = version c.logger.Debug("using plugin", "version", version) - switch parts[2] { + network, address, err := runner.PluginToHost(parts[2], parts[3]) + if err != nil { + return addr, err + } + + switch network { case "tcp": - addr, err = net.ResolveTCPAddr("tcp", parts[3]) + addr, err = net.ResolveTCPAddr("tcp", address) case "unix": - addr, err = net.ResolveUnixAddr("unix", parts[3]) + addr, err = net.ResolveUnixAddr("unix", address) default: - err = fmt.Errorf("Unknown address type: %s", parts[3]) + err = fmt.Errorf("Unknown address type: %s", address) } // If we have a server type, then record that. We default to net/rpc @@ -817,39 +908,30 @@ func (c *Client) loadServerCert(cert string) error { } func (c *Client) reattach() (net.Addr, error) { - // Verify the process still exists. If not, then it is an error - p, err := os.FindProcess(c.config.Reattach.Pid) - if err != nil { - // On Unix systems, FindProcess never returns an error. - // On Windows, for non-existent pids it returns: - // os.SyscallError - 'OpenProcess: the paremter is incorrect' - return nil, ErrProcessNotFound + reattachFunc := c.config.Reattach.ReattachFunc + // For backwards compatibility default to cmdrunner.ReattachFunc + if reattachFunc == nil { + reattachFunc = cmdrunner.ReattachFunc(c.config.Reattach.Pid, c.config.Reattach.Addr) } - // Attempt to connect to the addr since on Unix systems FindProcess - // doesn't actually return an error if it can't find the process. - conn, err := net.Dial( - c.config.Reattach.Addr.Network(), - c.config.Reattach.Addr.String()) + r, err := reattachFunc() if err != nil { - p.Kill() - return nil, ErrProcessNotFound + return nil, err } - conn.Close() // Create a context for when we kill c.doneCtx, c.ctxCancel = context.WithCancel(context.Background()) c.clientWaitGroup.Add(1) // Goroutine to mark exit status - go func(pid int) { + go func(r runner.AttachedRunner) { defer c.clientWaitGroup.Done() // ensure the context is cancelled when we're done defer c.ctxCancel() // Wait for the process to die - pidWait(pid) + r.Wait(context.Background()) // Log so we can see it c.logger.Debug("reattached plugin process exited") @@ -858,7 +940,7 @@ func (c *Client) reattach() (net.Addr, error) { c.l.Lock() defer c.l.Unlock() c.exited = true - }(p.Pid) + }(r) // Set the address and protocol c.address = c.config.Reattach.Addr @@ -876,7 +958,7 @@ func (c *Client) reattach() (net.Addr, error) { // process being killed (the only purpose we have for c.process), since // in test mode the process is responsible for exiting on its own. if !c.config.Reattach.Test { - c.process = p + c.runner = r } return c.address, nil @@ -915,6 +997,9 @@ func (c *Client) checkProtoVersion(protoVersion string) (int, PluginSet, error) // // If this returns nil then the process hasn't been started yet. Please // call Start or Client before calling this. +// +// Clients who specified a RunnerFunc will need to populate their own +// ReattachFunc in the returned ReattachConfig before it can be used. func (c *Client) ReattachConfig() *ReattachConfig { c.l.Lock() defer c.l.Unlock() @@ -932,11 +1017,16 @@ func (c *Client) ReattachConfig() *ReattachConfig { return c.config.Reattach } - return &ReattachConfig{ + reattach := &ReattachConfig{ Protocol: c.protocol, Addr: c.address, - Pid: c.config.Cmd.Process.Pid, } + + if c.config.Cmd != nil && c.config.Cmd.Process != nil { + reattach.Pid = c.config.Cmd.Process.Pid + } + + return reattach } // Protocol returns the protocol of server on the remote end. This will @@ -988,10 +1078,10 @@ func (c *Client) dialer(_ string, timeout time.Duration) (net.Conn, error) { var stdErrBufferSize = 64 * 1024 -func (c *Client) logStderr(r io.Reader) { +func (c *Client) logStderr(name string, r io.Reader) { defer c.clientWaitGroup.Done() defer c.stderrWaitGroup.Done() - l := c.logger.Named(filepath.Base(c.config.Cmd.Path)) + l := c.logger.Named(filepath.Base(name)) reader := bufio.NewReaderSize(r, stdErrBufferSize) // continuation indicates the previous line was a prefix diff --git a/vendor/github.com/hashicorp/go-plugin/constants.go b/vendor/github.com/hashicorp/go-plugin/constants.go new file mode 100644 index 000000000000..b66fa79993ee --- /dev/null +++ b/vendor/github.com/hashicorp/go-plugin/constants.go @@ -0,0 +1,9 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package plugin + +const ( + EnvUnixSocketDir = "PLUGIN_UNIX_SOCKET_DIR" + EnvUnixSocketGroup = "PLUGIN_UNIX_SOCKET_GROUP" +) diff --git a/vendor/github.com/hashicorp/go-plugin/discover.go b/vendor/github.com/hashicorp/go-plugin/discover.go index d22c566ed506..c5b96242b1a7 100644 --- a/vendor/github.com/hashicorp/go-plugin/discover.go +++ b/vendor/github.com/hashicorp/go-plugin/discover.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( diff --git a/vendor/github.com/hashicorp/go-plugin/error.go b/vendor/github.com/hashicorp/go-plugin/error.go index 22a7baa6a0d8..e62a21913f40 100644 --- a/vendor/github.com/hashicorp/go-plugin/error.go +++ b/vendor/github.com/hashicorp/go-plugin/error.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin // This is a type that wraps error types so that they can be messaged diff --git a/vendor/github.com/hashicorp/go-plugin/grpc_broker.go b/vendor/github.com/hashicorp/go-plugin/grpc_broker.go index daf142d1709e..b86561a017f0 100644 --- a/vendor/github.com/hashicorp/go-plugin/grpc_broker.go +++ b/vendor/github.com/hashicorp/go-plugin/grpc_broker.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( @@ -12,6 +15,7 @@ import ( "time" "github.com/hashicorp/go-plugin/internal/plugin" + "github.com/hashicorp/go-plugin/runner" "github.com/oklog/run" "google.golang.org/grpc" @@ -264,6 +268,9 @@ type GRPCBroker struct { doneCh chan struct{} o sync.Once + unixSocketCfg UnixSocketConfig + addrTranslator runner.AddrTranslator + sync.Mutex } @@ -272,12 +279,15 @@ type gRPCBrokerPending struct { doneCh chan struct{} } -func newGRPCBroker(s streamer, tls *tls.Config) *GRPCBroker { +func newGRPCBroker(s streamer, tls *tls.Config, unixSocketCfg UnixSocketConfig, addrTranslator runner.AddrTranslator) *GRPCBroker { return &GRPCBroker{ streamer: s, streams: make(map[uint32]*gRPCBrokerPending), tls: tls, doneCh: make(chan struct{}), + + unixSocketCfg: unixSocketCfg, + addrTranslator: addrTranslator, } } @@ -285,15 +295,23 @@ func newGRPCBroker(s streamer, tls *tls.Config) *GRPCBroker { // // This should not be called multiple times with the same ID at one time. func (b *GRPCBroker) Accept(id uint32) (net.Listener, error) { - listener, err := serverListener() + listener, err := serverListener(b.unixSocketCfg) if err != nil { return nil, err } + advertiseNet := listener.Addr().Network() + advertiseAddr := listener.Addr().String() + if b.addrTranslator != nil { + advertiseNet, advertiseAddr, err = b.addrTranslator.HostToPlugin(advertiseNet, advertiseAddr) + if err != nil { + return nil, err + } + } err = b.streamer.Send(&plugin.ConnInfo{ ServiceId: id, - Network: listener.Addr().Network(), - Address: listener.Addr().String(), + Network: advertiseNet, + Address: advertiseAddr, }) if err != nil { return nil, err @@ -376,12 +394,20 @@ func (b *GRPCBroker) Dial(id uint32) (conn *grpc.ClientConn, err error) { return nil, fmt.Errorf("timeout waiting for connection info") } + network, address := c.Network, c.Address + if b.addrTranslator != nil { + network, address, err = b.addrTranslator.PluginToHost(network, address) + if err != nil { + return nil, err + } + } + var addr net.Addr - switch c.Network { + switch network { case "tcp": - addr, err = net.ResolveTCPAddr("tcp", c.Address) + addr, err = net.ResolveTCPAddr("tcp", address) case "unix": - addr, err = net.ResolveUnixAddr("unix", c.Address) + addr, err = net.ResolveUnixAddr("unix", address) default: err = fmt.Errorf("Unknown address type: %s", c.Address) } diff --git a/vendor/github.com/hashicorp/go-plugin/grpc_client.go b/vendor/github.com/hashicorp/go-plugin/grpc_client.go index 842903c922b4..583e42503c80 100644 --- a/vendor/github.com/hashicorp/go-plugin/grpc_client.go +++ b/vendor/github.com/hashicorp/go-plugin/grpc_client.go @@ -1,6 +1,10 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( + "context" "crypto/tls" "fmt" "math" @@ -8,7 +12,6 @@ import ( "time" "github.com/hashicorp/go-plugin/internal/plugin" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/credentials" "google.golang.org/grpc/health/grpc_health_v1" @@ -60,7 +63,7 @@ func newGRPCClient(doneCtx context.Context, c *Client) (*GRPCClient, error) { // Start the broker. brokerGRPCClient := newGRPCBrokerClient(conn) - broker := newGRPCBroker(brokerGRPCClient, c.config.TLSConfig) + broker := newGRPCBroker(brokerGRPCClient, c.config.TLSConfig, c.unixSocketCfg, c.runner) go broker.Run() go brokerGRPCClient.StartStream() diff --git a/vendor/github.com/hashicorp/go-plugin/grpc_controller.go b/vendor/github.com/hashicorp/go-plugin/grpc_controller.go index 1a8a8e70ea4c..2085356cd343 100644 --- a/vendor/github.com/hashicorp/go-plugin/grpc_controller.go +++ b/vendor/github.com/hashicorp/go-plugin/grpc_controller.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( diff --git a/vendor/github.com/hashicorp/go-plugin/grpc_server.go b/vendor/github.com/hashicorp/go-plugin/grpc_server.go index 54b061cc3654..369f958aeea4 100644 --- a/vendor/github.com/hashicorp/go-plugin/grpc_server.go +++ b/vendor/github.com/hashicorp/go-plugin/grpc_server.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( @@ -81,7 +84,7 @@ func (s *GRPCServer) Init() error { // Register the broker service brokerServer := newGRPCBrokerServer() plugin.RegisterGRPCBrokerServer(s.server, brokerServer) - s.broker = newGRPCBroker(brokerServer, s.TLS) + s.broker = newGRPCBroker(brokerServer, s.TLS, unixSocketConfigFromEnv(), nil) go s.broker.Run() // Register the controller diff --git a/vendor/github.com/hashicorp/go-plugin/grpc_stdio.go b/vendor/github.com/hashicorp/go-plugin/grpc_stdio.go index a582181505fe..ae06c1163137 100644 --- a/vendor/github.com/hashicorp/go-plugin/grpc_stdio.go +++ b/vendor/github.com/hashicorp/go-plugin/grpc_stdio.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( diff --git a/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/addr_translator.go b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/addr_translator.go new file mode 100644 index 000000000000..1854d2dd5319 --- /dev/null +++ b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/addr_translator.go @@ -0,0 +1,16 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package cmdrunner + +// addrTranslator implements stateless identity functions, as the host and plugin +// run in the same context wrt Unix and network addresses. +type addrTranslator struct{} + +func (*addrTranslator) PluginToHost(pluginNet, pluginAddr string) (string, string, error) { + return pluginNet, pluginAddr, nil +} + +func (*addrTranslator) HostToPlugin(hostNet, hostAddr string) (string, string, error) { + return hostNet, hostAddr, nil +} diff --git a/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/cmd_reattach.go b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/cmd_reattach.go new file mode 100644 index 000000000000..dce1a86a88eb --- /dev/null +++ b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/cmd_reattach.go @@ -0,0 +1,63 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package cmdrunner + +import ( + "context" + "fmt" + "net" + "os" + + "github.com/hashicorp/go-plugin/runner" +) + +// ReattachFunc returns a function that allows reattaching to a plugin running +// as a plain process. The process may or may not be a child process. +func ReattachFunc(pid int, addr net.Addr) runner.ReattachFunc { + return func() (runner.AttachedRunner, error) { + p, err := os.FindProcess(pid) + if err != nil { + // On Unix systems, FindProcess never returns an error. + // On Windows, for non-existent pids it returns: + // os.SyscallError - 'OpenProcess: the paremter is incorrect' + return nil, ErrProcessNotFound + } + + // Attempt to connect to the addr since on Unix systems FindProcess + // doesn't actually return an error if it can't find the process. + conn, err := net.Dial(addr.Network(), addr.String()) + if err != nil { + p.Kill() + return nil, ErrProcessNotFound + } + conn.Close() + + return &CmdAttachedRunner{ + pid: pid, + process: p, + }, nil + } +} + +// CmdAttachedRunner is mostly a subset of CmdRunner, except the Wait function +// does not assume the process is a child of the host process, and so uses a +// different implementation to wait on the process. +type CmdAttachedRunner struct { + pid int + process *os.Process + + addrTranslator +} + +func (c *CmdAttachedRunner) Wait(_ context.Context) error { + return pidWait(c.pid) +} + +func (c *CmdAttachedRunner) Kill(_ context.Context) error { + return c.process.Kill() +} + +func (c *CmdAttachedRunner) ID() string { + return fmt.Sprintf("%d", c.pid) +} diff --git a/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/cmd_runner.go b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/cmd_runner.go new file mode 100644 index 000000000000..b26fea928e28 --- /dev/null +++ b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/cmd_runner.go @@ -0,0 +1,129 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package cmdrunner + +import ( + "context" + "errors" + "fmt" + "io" + "os" + "os/exec" + + "github.com/hashicorp/go-hclog" + "github.com/hashicorp/go-plugin/runner" +) + +var ( + _ runner.Runner = (*CmdRunner)(nil) + + // ErrProcessNotFound is returned when a client is instantiated to + // reattach to an existing process and it isn't found. + ErrProcessNotFound = errors.New("Reattachment process not found") +) + +const unrecognizedRemotePluginMessage = `This usually means + the plugin was not compiled for this architecture, + the plugin is missing dynamic-link libraries necessary to run, + the plugin is not executable by this process due to file permissions, or + the plugin failed to negotiate the initial go-plugin protocol handshake +%s` + +// CmdRunner implements the runner.Runner interface. It mostly just passes through +// to exec.Cmd methods. +type CmdRunner struct { + logger hclog.Logger + cmd *exec.Cmd + + stdout io.ReadCloser + stderr io.ReadCloser + + // Cmd info is persisted early, since the process information will be removed + // after Kill is called. + path string + pid int + + addrTranslator +} + +// NewCmdRunner returns an implementation of runner.Runner for running a plugin +// as a subprocess. It must be passed a cmd that hasn't yet been started. +func NewCmdRunner(logger hclog.Logger, cmd *exec.Cmd) (*CmdRunner, error) { + stdout, err := cmd.StdoutPipe() + if err != nil { + return nil, err + } + + stderr, err := cmd.StderrPipe() + if err != nil { + return nil, err + } + + return &CmdRunner{ + logger: logger, + cmd: cmd, + stdout: stdout, + stderr: stderr, + path: cmd.Path, + }, nil +} + +func (c *CmdRunner) Start(_ context.Context) error { + c.logger.Debug("starting plugin", "path", c.cmd.Path, "args", c.cmd.Args) + err := c.cmd.Start() + if err != nil { + return err + } + + c.pid = c.cmd.Process.Pid + c.logger.Debug("plugin started", "path", c.path, "pid", c.pid) + return nil +} + +func (c *CmdRunner) Wait(_ context.Context) error { + return c.cmd.Wait() +} + +func (c *CmdRunner) Kill(_ context.Context) error { + if c.cmd.Process != nil { + err := c.cmd.Process.Kill() + // Swallow ErrProcessDone, we support calling Kill multiple times. + if !errors.Is(err, os.ErrProcessDone) { + return err + } + return nil + } + + return nil +} + +func (c *CmdRunner) Stdout() io.ReadCloser { + return c.stdout +} + +func (c *CmdRunner) Stderr() io.ReadCloser { + return c.stderr +} + +func (c *CmdRunner) Name() string { + return c.path +} + +func (c *CmdRunner) ID() string { + return fmt.Sprintf("%d", c.pid) +} + +// peTypes is a list of Portable Executable (PE) machine types from https://learn.microsoft.com/en-us/windows/win32/debug/pe-format +// mapped to GOARCH types. It is not comprehensive, and only includes machine types that Go supports. +var peTypes = map[uint16]string{ + 0x14c: "386", + 0x1c0: "arm", + 0x6264: "loong64", + 0x8664: "amd64", + 0xaa64: "arm64", +} + +func (c *CmdRunner) Diagnose(_ context.Context) string { + return fmt.Sprintf(unrecognizedRemotePluginMessage, additionalNotesAboutCommand(c.cmd.Path)) +} diff --git a/vendor/github.com/hashicorp/go-plugin/notes_unix.go b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/notes_unix.go similarity index 92% rename from vendor/github.com/hashicorp/go-plugin/notes_unix.go rename to vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/notes_unix.go index dae1c411deca..ce04cfebc673 100644 --- a/vendor/github.com/hashicorp/go-plugin/notes_unix.go +++ b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/notes_unix.go @@ -1,7 +1,10 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + //go:build !windows // +build !windows -package plugin +package cmdrunner import ( "debug/elf" @@ -50,10 +53,13 @@ func additionalNotesAboutCommand(path string) string { } if elfFile, err := elf.Open(path); err == nil { + defer elfFile.Close() notes += fmt.Sprintf(" ELF architecture: %s (current architecture: %s)\n", elfFile.Machine, runtime.GOARCH) } else if machoFile, err := macho.Open(path); err == nil { + defer machoFile.Close() notes += fmt.Sprintf(" MachO architecture: %s (current architecture: %s)\n", machoFile.Cpu, runtime.GOARCH) } else if peFile, err := pe.Open(path); err == nil { + defer peFile.Close() machine, ok := peTypes[peFile.Machine] if !ok { machine = "unknown" diff --git a/vendor/github.com/hashicorp/go-plugin/notes_windows.go b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/notes_windows.go similarity index 87% rename from vendor/github.com/hashicorp/go-plugin/notes_windows.go rename to vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/notes_windows.go index 900b93319c1f..39c51dd1e083 100644 --- a/vendor/github.com/hashicorp/go-plugin/notes_windows.go +++ b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/notes_windows.go @@ -1,7 +1,10 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + //go:build windows // +build windows -package plugin +package cmdrunner import ( "debug/elf" @@ -26,10 +29,13 @@ func additionalNotesAboutCommand(path string) string { notes += fmt.Sprintf(" Mode: %s\n", stat.Mode()) if elfFile, err := elf.Open(path); err == nil { + defer elfFile.Close() notes += fmt.Sprintf(" ELF architecture: %s (current architecture: %s)\n", elfFile.Machine, runtime.GOARCH) } else if machoFile, err := macho.Open(path); err == nil { + defer machoFile.Close() notes += fmt.Sprintf(" MachO architecture: %s (current architecture: %s)\n", machoFile.Cpu, runtime.GOARCH) } else if peFile, err := pe.Open(path); err == nil { + defer peFile.Close() machine, ok := peTypes[peFile.Machine] if !ok { machine = "unknown" diff --git a/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/process.go b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/process.go new file mode 100644 index 000000000000..6c34dc7747fe --- /dev/null +++ b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/process.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package cmdrunner + +import "time" + +// pidAlive checks whether a pid is alive. +func pidAlive(pid int) bool { + return _pidAlive(pid) +} + +// pidWait blocks for a process to exit. +func pidWait(pid int) error { + ticker := time.NewTicker(1 * time.Second) + defer ticker.Stop() + + for range ticker.C { + if !pidAlive(pid) { + break + } + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-plugin/process_posix.go b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/process_posix.go similarity index 79% rename from vendor/github.com/hashicorp/go-plugin/process_posix.go rename to vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/process_posix.go index 185957f8d115..bf3fc5b683ec 100644 --- a/vendor/github.com/hashicorp/go-plugin/process_posix.go +++ b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/process_posix.go @@ -1,7 +1,10 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + //go:build !windows // +build !windows -package plugin +package cmdrunner import ( "os" diff --git a/vendor/github.com/hashicorp/go-plugin/process_windows.go b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/process_windows.go similarity index 86% rename from vendor/github.com/hashicorp/go-plugin/process_windows.go rename to vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/process_windows.go index 0eaa7705d22c..6c39df28f7e6 100644 --- a/vendor/github.com/hashicorp/go-plugin/process_windows.go +++ b/vendor/github.com/hashicorp/go-plugin/internal/cmdrunner/process_windows.go @@ -1,4 +1,7 @@ -package plugin +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package cmdrunner import ( "syscall" diff --git a/vendor/github.com/hashicorp/go-plugin/internal/plugin/gen.go b/vendor/github.com/hashicorp/go-plugin/internal/plugin/gen.go index fb9d415254fe..a3b5fb124e06 100644 --- a/vendor/github.com/hashicorp/go-plugin/internal/plugin/gen.go +++ b/vendor/github.com/hashicorp/go-plugin/internal/plugin/gen.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + //go:generate protoc -I ./ ./grpc_broker.proto ./grpc_controller.proto ./grpc_stdio.proto --go_out=plugins=grpc:. package plugin diff --git a/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_broker.pb.go b/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_broker.pb.go index 6bf103859f88..303b63e43b1e 100644 --- a/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_broker.pb.go +++ b/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_broker.pb.go @@ -8,7 +8,7 @@ import fmt "fmt" import math "math" import ( - context "golang.org/x/net/context" + context "context" grpc "google.golang.org/grpc" ) diff --git a/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_broker.proto b/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_broker.proto index aa3df4630a72..038423ded7a5 100644 --- a/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_broker.proto +++ b/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_broker.proto @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + syntax = "proto3"; package plugin; option go_package = "plugin"; diff --git a/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_controller.pb.go b/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_controller.pb.go index 3e39da95a890..982fca0a5747 100644 --- a/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_controller.pb.go +++ b/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_controller.pb.go @@ -8,7 +8,7 @@ import fmt "fmt" import math "math" import ( - context "golang.org/x/net/context" + context "context" grpc "google.golang.org/grpc" ) diff --git a/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_controller.proto b/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_controller.proto index 345d0a1c1f23..3157eb885dea 100644 --- a/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_controller.proto +++ b/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_controller.proto @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + syntax = "proto3"; package plugin; option go_package = "plugin"; diff --git a/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_stdio.pb.go b/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_stdio.pb.go index c8f94921b463..bdef71b8aa03 100644 --- a/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_stdio.pb.go +++ b/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_stdio.pb.go @@ -9,7 +9,7 @@ import math "math" import empty "github.com/golang/protobuf/ptypes/empty" import ( - context "golang.org/x/net/context" + context "context" grpc "google.golang.org/grpc" ) diff --git a/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_stdio.proto b/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_stdio.proto index ce1a12230351..1c0d1d0526a9 100644 --- a/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_stdio.proto +++ b/vendor/github.com/hashicorp/go-plugin/internal/plugin/grpc_stdio.proto @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + syntax = "proto3"; package plugin; option go_package = "plugin"; diff --git a/vendor/github.com/hashicorp/go-plugin/log_entry.go b/vendor/github.com/hashicorp/go-plugin/log_entry.go index fb2ef930caad..ab963d56b54a 100644 --- a/vendor/github.com/hashicorp/go-plugin/log_entry.go +++ b/vendor/github.com/hashicorp/go-plugin/log_entry.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( diff --git a/vendor/github.com/hashicorp/go-plugin/mtls.go b/vendor/github.com/hashicorp/go-plugin/mtls.go index 889552458773..09ecafaf45a5 100644 --- a/vendor/github.com/hashicorp/go-plugin/mtls.go +++ b/vendor/github.com/hashicorp/go-plugin/mtls.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( diff --git a/vendor/github.com/hashicorp/go-plugin/mux_broker.go b/vendor/github.com/hashicorp/go-plugin/mux_broker.go index 01c45ad7c682..4eb1208fbb7d 100644 --- a/vendor/github.com/hashicorp/go-plugin/mux_broker.go +++ b/vendor/github.com/hashicorp/go-plugin/mux_broker.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( diff --git a/vendor/github.com/hashicorp/go-plugin/plugin.go b/vendor/github.com/hashicorp/go-plugin/plugin.go index 79d9674633a4..184749b96efa 100644 --- a/vendor/github.com/hashicorp/go-plugin/plugin.go +++ b/vendor/github.com/hashicorp/go-plugin/plugin.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // The plugin package exposes functions and helpers for communicating to // plugins which are implemented as standalone binary applications. // diff --git a/vendor/github.com/hashicorp/go-plugin/process.go b/vendor/github.com/hashicorp/go-plugin/process.go index 88c999a580d3..b88446361da7 100644 --- a/vendor/github.com/hashicorp/go-plugin/process.go +++ b/vendor/github.com/hashicorp/go-plugin/process.go @@ -1,24 +1,4 @@ -package plugin - -import ( - "time" -) - -// pidAlive checks whether a pid is alive. -func pidAlive(pid int) bool { - return _pidAlive(pid) -} +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 -// pidWait blocks for a process to exit. -func pidWait(pid int) error { - ticker := time.NewTicker(1 * time.Second) - defer ticker.Stop() - - for range ticker.C { - if !pidAlive(pid) { - break - } - } - - return nil -} +package plugin diff --git a/vendor/github.com/hashicorp/go-plugin/protocol.go b/vendor/github.com/hashicorp/go-plugin/protocol.go index 0cfc19e52d63..e4b7be383785 100644 --- a/vendor/github.com/hashicorp/go-plugin/protocol.go +++ b/vendor/github.com/hashicorp/go-plugin/protocol.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( diff --git a/vendor/github.com/hashicorp/go-plugin/rpc_client.go b/vendor/github.com/hashicorp/go-plugin/rpc_client.go index f30a4b1d3872..142454df80de 100644 --- a/vendor/github.com/hashicorp/go-plugin/rpc_client.go +++ b/vendor/github.com/hashicorp/go-plugin/rpc_client.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( diff --git a/vendor/github.com/hashicorp/go-plugin/rpc_server.go b/vendor/github.com/hashicorp/go-plugin/rpc_server.go index 064809d29185..cec0a3d93a2f 100644 --- a/vendor/github.com/hashicorp/go-plugin/rpc_server.go +++ b/vendor/github.com/hashicorp/go-plugin/rpc_server.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( diff --git a/vendor/github.com/hashicorp/go-plugin/runner/runner.go b/vendor/github.com/hashicorp/go-plugin/runner/runner.go new file mode 100644 index 000000000000..e638ae5f8ee2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-plugin/runner/runner.go @@ -0,0 +1,72 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package runner + +import ( + "context" + "io" +) + +// Runner defines the interface required by go-plugin to manage the lifecycle of +// of a plugin and attempt to negotiate a connection with it. Note that this +// is orthogonal to the protocol and transport used, which is negotiated over stdout. +type Runner interface { + // Start should start the plugin and ensure any work required for servicing + // other interface methods is done. If the context is cancelled, it should + // only abort any attempts to _start_ the plugin. Waiting and shutdown are + // handled separately. + Start(ctx context.Context) error + + // Diagnose makes a best-effort attempt to return any debug information that + // might help users understand why a plugin failed to start and negotiate a + // connection. + Diagnose(ctx context.Context) string + + // Stdout is used to negotiate the go-plugin protocol. + Stdout() io.ReadCloser + + // Stderr is used for forwarding plugin logs to the host process logger. + Stderr() io.ReadCloser + + // Name is a human-friendly name for the plugin, such as the path to the + // executable. It does not have to be unique. + Name() string + + AttachedRunner +} + +// AttachedRunner defines a limited subset of Runner's interface to represent the +// reduced responsibility for plugin lifecycle when attaching to an already running +// plugin. +type AttachedRunner interface { + // Wait should wait until the plugin stops running, whether in response to + // an out of band signal or in response to calling Kill(). + Wait(ctx context.Context) error + + // Kill should stop the plugin and perform any cleanup required. + Kill(ctx context.Context) error + + // ID is a unique identifier to represent the running plugin. e.g. pid or + // container ID. + ID() string + + AddrTranslator +} + +// AddrTranslator translates addresses between the execution context of the host +// process and the plugin. For example, if the plugin is in a container, the file +// path for a Unix socket may be different between the host and the container. +// +// It is only intended to be used by the host process. +type AddrTranslator interface { + // Called before connecting on any addresses received back from the plugin. + PluginToHost(pluginNet, pluginAddr string) (hostNet string, hostAddr string, err error) + + // Called on any host process addresses before they are sent to the plugin. + HostToPlugin(hostNet, hostAddr string) (pluginNet string, pluginAddr string, err error) +} + +// ReattachFunc can be passed to a client's reattach config to reattach to an +// already running plugin instead of starting it ourselves. +type ReattachFunc func() (AttachedRunner, error) diff --git a/vendor/github.com/hashicorp/go-plugin/server.go b/vendor/github.com/hashicorp/go-plugin/server.go index e134999103fd..4b0f2b769193 100644 --- a/vendor/github.com/hashicorp/go-plugin/server.go +++ b/vendor/github.com/hashicorp/go-plugin/server.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( @@ -8,10 +11,10 @@ import ( "errors" "fmt" "io" - "io/ioutil" "net" "os" "os/signal" + "os/user" "runtime" "sort" "strconv" @@ -270,7 +273,7 @@ func Serve(opts *ServeConfig) { } // Register a listener so we can accept a connection - listener, err := serverListener() + listener, err := serverListener(unixSocketConfigFromEnv()) if err != nil { logger.Error("plugin init error", "error", err) return @@ -493,12 +496,12 @@ func Serve(opts *ServeConfig) { } } -func serverListener() (net.Listener, error) { +func serverListener(unixSocketCfg UnixSocketConfig) (net.Listener, error) { if runtime.GOOS == "windows" { return serverListener_tcp() } - return serverListener_unix() + return serverListener_unix(unixSocketCfg) } func serverListener_tcp() (net.Listener, error) { @@ -543,8 +546,8 @@ func serverListener_tcp() (net.Listener, error) { return nil, errors.New("Couldn't bind plugin TCP listener") } -func serverListener_unix() (net.Listener, error) { - tf, err := ioutil.TempFile("", "plugin") +func serverListener_unix(unixSocketCfg UnixSocketConfig) (net.Listener, error) { + tf, err := os.CreateTemp(unixSocketCfg.directory, "plugin") if err != nil { return nil, err } @@ -564,6 +567,15 @@ func serverListener_unix() (net.Listener, error) { return nil, err } + // By default, unix sockets are only writable by the owner. Set up a custom + // group owner and group write permissions if configured. + if unixSocketCfg.Group != "" { + err = setGroupWritable(path, unixSocketCfg.Group, 0o660) + if err != nil { + return nil, err + } + } + // Wrap the listener in rmListener so that the Unix domain socket file // is removed on close. return &rmListener{ @@ -572,6 +584,32 @@ func serverListener_unix() (net.Listener, error) { }, nil } +func setGroupWritable(path, groupString string, mode os.FileMode) error { + groupID, err := strconv.Atoi(groupString) + if err != nil { + group, err := user.LookupGroup(groupString) + if err != nil { + return fmt.Errorf("failed to find gid from %q: %w", groupString, err) + } + groupID, err = strconv.Atoi(group.Gid) + if err != nil { + return fmt.Errorf("failed to parse %q group's gid as an integer: %w", groupString, err) + } + } + + err = os.Chown(path, -1, groupID) + if err != nil { + return err + } + + err = os.Chmod(path, mode) + if err != nil { + return err + } + + return nil +} + // rmListener is an implementation of net.Listener that forwards most // calls to the listener but also removes a file as part of the close. We // use this to cleanup the unix domain socket on close. diff --git a/vendor/github.com/hashicorp/go-plugin/server_mux.go b/vendor/github.com/hashicorp/go-plugin/server_mux.go index 033079ea0fc5..6b14b0c291db 100644 --- a/vendor/github.com/hashicorp/go-plugin/server_mux.go +++ b/vendor/github.com/hashicorp/go-plugin/server_mux.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( diff --git a/vendor/github.com/hashicorp/go-plugin/stream.go b/vendor/github.com/hashicorp/go-plugin/stream.go index 1d547aaaab3f..a2348642d861 100644 --- a/vendor/github.com/hashicorp/go-plugin/stream.go +++ b/vendor/github.com/hashicorp/go-plugin/stream.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( diff --git a/vendor/github.com/hashicorp/go-plugin/testing.go b/vendor/github.com/hashicorp/go-plugin/testing.go index e36f2eb2b7c4..ae48b7a37eb8 100644 --- a/vendor/github.com/hashicorp/go-plugin/testing.go +++ b/vendor/github.com/hashicorp/go-plugin/testing.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( @@ -163,7 +166,7 @@ func TestPluginGRPCConn(t testing.T, ps map[string]Plugin) (*GRPCClient, *GRPCSe } brokerGRPCClient := newGRPCBrokerClient(conn) - broker := newGRPCBroker(brokerGRPCClient, nil) + broker := newGRPCBroker(brokerGRPCClient, nil, UnixSocketConfig{}, nil) go broker.Run() go brokerGRPCClient.StartStream() diff --git a/vendor/github.com/hashicorp/hc-install/.copywrite.hcl b/vendor/github.com/hashicorp/hc-install/.copywrite.hcl new file mode 100644 index 000000000000..45ec82c768d7 --- /dev/null +++ b/vendor/github.com/hashicorp/hc-install/.copywrite.hcl @@ -0,0 +1,7 @@ +schema_version = 1 + +project { + license = "MPL-2.0" + copyright_year = 2020 + header_ignore = [] +} diff --git a/vendor/github.com/hashicorp/hc-install/.go-version b/vendor/github.com/hashicorp/hc-install/.go-version index 83d5e73f00e4..5fb5a6b4f547 100644 --- a/vendor/github.com/hashicorp/hc-install/.go-version +++ b/vendor/github.com/hashicorp/hc-install/.go-version @@ -1 +1 @@ -1.19.5 +1.20 diff --git a/vendor/github.com/hashicorp/hc-install/README.md b/vendor/github.com/hashicorp/hc-install/README.md index eb287ff0fc7a..6e78b5a610a1 100644 --- a/vendor/github.com/hashicorp/hc-install/README.md +++ b/vendor/github.com/hashicorp/hc-install/README.md @@ -41,16 +41,17 @@ Each comes with different trade-offs described below. - `releases.{LatestVersion,ExactVersion}` - Downloads, verifies & installs any known product from `releases.hashicorp.com` - **Pros:** - Fast and reliable way of obtaining any pre-built version of any product + - Allows installation of enterprise versions - **Cons:** - - Installation may consume some bandwith, disk space and a little time + - Installation may consume some bandwidth, disk space and a little time - Potentially less stable builds (see `checkpoint` below) - - `checkpoint.{LatestVersion}` - Downloads, verifies & installs any known product available in HashiCorp Checkpoint + - `checkpoint.LatestVersion` - Downloads, verifies & installs any known product available in HashiCorp Checkpoint - **Pros:** - Checkpoint typically contains only product versions considered stable - **Cons:** - - Installation may consume some bandwith, disk space and a little time - - Currently doesn't allow installation of a old versions (see `releases` above) - - `build.{GitRevision}` - Clones raw source code and builds the product from it + - Installation may consume some bandwidth, disk space and a little time + - Currently doesn't allow installation of old versions or enterprise versions (see `releases` above) + - `build.GitRevision` - Clones raw source code and builds the product from it - **Pros:** - Useful for catching bugs and incompatibilities as early as possible (prior to product release). - **Cons:** @@ -61,73 +62,59 @@ Each comes with different trade-offs described below. ## Example Usage -### Install single version +See examples at https://pkg.go.dev/github.com/hashicorp/hc-install#example-Installer. -```go -TODO -``` +## CLI + +In addition to the Go library, which is the intended primary use case of `hc-install`, we also distribute CLI. + +The CLI comes with some trade-offs: -### Find or install single version + - more limited interface compared to the flexible Go API (installs specific versions of products via `releases.ExactVersion`) + - minimal environment pre-requisites (no need to compile Go code) + - see ["hc-install is not a package manager"](https://github.com/hashicorp/hc-install#hc-install-is-not-a-package-manager) -```go -i := NewInstaller() +### Installation -v0_14_0 := version.Must(version.NewVersion("0.14.0")) +Given that one of the key roles of the CLI/library is integrity checking, you should choose the installation method which involves the same level of integrity checks, and/or perform these checks yourself. `go install` provides only minimal to no integrity checks, depending on exact use. We recommend any of the installation methods documented below. -execPath, err := i.Ensure(context.Background(), []src.Source{ - &fs.ExactVersion{ - Product: product.Terraform, - Version: v0_14_0, - }, - &releases.ExactVersion{ - Product: product.Terraform, - Version: v0_14_0, - }, -}) -if err != nil { - // process err -} +#### Homebrew (macOS / Linux) -// run any tests +[Homebrew](https://brew.sh) -defer i.Remove() ``` +brew install hashicorp/tap/hc-install +``` + +#### Linux + +We support Debian & Ubuntu via apt and RHEL, CentOS, Fedora and Amazon Linux via RPM. -### Install multiple versions +You can follow the instructions in the [Official Packaging Guide](https://www.hashicorp.com/official-packaging-guide) to install the package from the official HashiCorp-maintained repositories. The package name is `hc-install` in all repositories. + +#### Other platforms + +1. [Download for the latest version](https://releases.hashicorp.com/hc-install/) relevant for your operating system and architecture. +2. Verify integrity by comparing the SHA256 checksums which are part of the release (called `hc-install__SHA256SUMS`). +3. Install it by unzipping it and moving it to a directory included in your system's `PATH`. +4. Check that you have installed it correctly via `hc-install --version`. + You should see the latest version printed to your terminal. + +### Usage -```go -TODO ``` +Usage: hc-install install [options] -version -### Install and build multiple versions - -```go -i := NewInstaller() - -vc, _ := version.NewConstraint(">= 0.12") -rv := &releases.Versions{ - Product: product.Terraform, - Constraints: vc, -} - -versions, err := rv.List(context.Background()) -if err != nil { - return err -} -versions = append(versions, &build.GitRevision{Ref: "HEAD"}) - -for _, installableVersion := range versions { - execPath, err := i.Ensure(context.Background(), []src.Source{ - installableVersion, - }) - if err != nil { - return err - } - - // Do some testing here - _ = execPath - - // clean up - os.Remove(execPath) -} + This command installs a HashiCorp product. + Options: + -version [REQUIRED] Version of product to install. + -path Path to directory where the product will be installed. Defaults + to current working directory. +``` +```sh +hc-install install -version 1.3.7 terraform +``` +``` +hc-install: will install terraform@1.3.7 +installed terraform@1.3.7 to /current/working/dir/terraform ``` diff --git a/vendor/github.com/hashicorp/hc-install/checkpoint/latest_version.go b/vendor/github.com/hashicorp/hc-install/checkpoint/latest_version.go index 2d52b339f97c..2cd5379fb8ee 100644 --- a/vendor/github.com/hashicorp/hc-install/checkpoint/latest_version.go +++ b/vendor/github.com/hashicorp/hc-install/checkpoint/latest_version.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package checkpoint import ( @@ -123,7 +126,7 @@ func (lv *LatestVersion) Install(ctx context.Context) (string, error) { if lv.ArmoredPublicKey != "" { d.ArmoredPublicKey = lv.ArmoredPublicKey } - zipFilePath, err := d.DownloadAndUnpack(ctx, pv, dstDir) + zipFilePath, err := d.DownloadAndUnpack(ctx, pv, dstDir, "") if zipFilePath != "" { lv.pathsToRemove = append(lv.pathsToRemove, zipFilePath) } diff --git a/vendor/github.com/hashicorp/hc-install/errors/errors.go b/vendor/github.com/hashicorp/hc-install/errors/errors.go index 8d4f1d22d87e..15d51b602639 100644 --- a/vendor/github.com/hashicorp/hc-install/errors/errors.go +++ b/vendor/github.com/hashicorp/hc-install/errors/errors.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package errors type skippableErr struct { diff --git a/vendor/github.com/hashicorp/hc-install/fs/any_version.go b/vendor/github.com/hashicorp/hc-install/fs/any_version.go index fc1f94634030..8071dfcf52c4 100644 --- a/vendor/github.com/hashicorp/hc-install/fs/any_version.go +++ b/vendor/github.com/hashicorp/hc-install/fs/any_version.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fs import ( diff --git a/vendor/github.com/hashicorp/hc-install/fs/exact_version.go b/vendor/github.com/hashicorp/hc-install/fs/exact_version.go index 018c1fbadcb7..c3cc49bfc911 100644 --- a/vendor/github.com/hashicorp/hc-install/fs/exact_version.go +++ b/vendor/github.com/hashicorp/hc-install/fs/exact_version.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fs import ( diff --git a/vendor/github.com/hashicorp/hc-install/fs/fs.go b/vendor/github.com/hashicorp/hc-install/fs/fs.go index 5adb9c329c24..216df2c2cdc2 100644 --- a/vendor/github.com/hashicorp/hc-install/fs/fs.go +++ b/vendor/github.com/hashicorp/hc-install/fs/fs.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fs import ( diff --git a/vendor/github.com/hashicorp/hc-install/fs/fs_unix.go b/vendor/github.com/hashicorp/hc-install/fs/fs_unix.go index 95c5c11f1d91..eebd98b82c04 100644 --- a/vendor/github.com/hashicorp/hc-install/fs/fs_unix.go +++ b/vendor/github.com/hashicorp/hc-install/fs/fs_unix.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + //go:build !windows // +build !windows diff --git a/vendor/github.com/hashicorp/hc-install/fs/fs_windows.go b/vendor/github.com/hashicorp/hc-install/fs/fs_windows.go index 2a03c7ad2f20..e2e4e73fb19b 100644 --- a/vendor/github.com/hashicorp/hc-install/fs/fs_windows.go +++ b/vendor/github.com/hashicorp/hc-install/fs/fs_windows.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fs import ( diff --git a/vendor/github.com/hashicorp/hc-install/fs/version.go b/vendor/github.com/hashicorp/hc-install/fs/version.go index 26633b8afc89..39efb52d9fa0 100644 --- a/vendor/github.com/hashicorp/hc-install/fs/version.go +++ b/vendor/github.com/hashicorp/hc-install/fs/version.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fs import ( diff --git a/vendor/github.com/hashicorp/hc-install/installer.go b/vendor/github.com/hashicorp/hc-install/installer.go index 8b773c56db01..6c704eede3d9 100644 --- a/vendor/github.com/hashicorp/hc-install/installer.go +++ b/vendor/github.com/hashicorp/hc-install/installer.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package install import ( diff --git a/vendor/github.com/hashicorp/hc-install/internal/build/get_go_version.go b/vendor/github.com/hashicorp/hc-install/internal/build/get_go_version.go index 3a929859ac12..858f8ab29743 100644 --- a/vendor/github.com/hashicorp/hc-install/internal/build/get_go_version.go +++ b/vendor/github.com/hashicorp/hc-install/internal/build/get_go_version.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package build import ( diff --git a/vendor/github.com/hashicorp/hc-install/internal/build/go_build.go b/vendor/github.com/hashicorp/hc-install/internal/build/go_build.go index 9581c322cc22..504bf45a3052 100644 --- a/vendor/github.com/hashicorp/hc-install/internal/build/go_build.go +++ b/vendor/github.com/hashicorp/hc-install/internal/build/go_build.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package build import ( diff --git a/vendor/github.com/hashicorp/hc-install/internal/build/go_is_installed.go b/vendor/github.com/hashicorp/hc-install/internal/build/go_is_installed.go index 6a81d196b689..00165fff5cbb 100644 --- a/vendor/github.com/hashicorp/hc-install/internal/build/go_is_installed.go +++ b/vendor/github.com/hashicorp/hc-install/internal/build/go_is_installed.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package build import ( diff --git a/vendor/github.com/hashicorp/hc-install/internal/build/install_go_version.go b/vendor/github.com/hashicorp/hc-install/internal/build/install_go_version.go index a6610e076f6e..9dc070d7957d 100644 --- a/vendor/github.com/hashicorp/hc-install/internal/build/install_go_version.go +++ b/vendor/github.com/hashicorp/hc-install/internal/build/install_go_version.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package build import ( @@ -10,14 +13,21 @@ import ( "github.com/hashicorp/go-version" ) +var v1_21 = version.Must(version.NewVersion("1.21")) + // installGoVersion installs given version of Go using Go // according to https://golang.org/doc/manage-install func (gb *GoBuild) installGoVersion(ctx context.Context, v *version.Version) (Go, error) { - versionString := v.Core().String() + goVersion := v.String() - // trim 0 patch versions as that's how Go does it :shrug: - shortVersion := strings.TrimSuffix(versionString, ".0") - pkgURL := fmt.Sprintf("golang.org/dl/go%s", shortVersion) + // trim 0 patch versions as that's how Go does it + // for versions prior to 1.21 + // See https://github.com/golang/go/issues/62136 + if v.LessThan(v1_21) { + versionString := v.Core().String() + goVersion = strings.TrimSuffix(versionString, ".0") + } + pkgURL := fmt.Sprintf("golang.org/dl/go%s", goVersion) gb.log().Printf("go getting %q", pkgURL) cmd := exec.CommandContext(ctx, "go", "get", pkgURL) @@ -33,7 +43,7 @@ func (gb *GoBuild) installGoVersion(ctx context.Context, v *version.Version) (Go return Go{}, fmt.Errorf("unable to install Go %s: %w\n%s", v, err, out) } - cmdName := fmt.Sprintf("go%s", shortVersion) + cmdName := fmt.Sprintf("go%s", goVersion) gb.log().Printf("downloading go %q", v) cmd = exec.CommandContext(ctx, cmdName, "download") diff --git a/vendor/github.com/hashicorp/hc-install/internal/httpclient/httpclient.go b/vendor/github.com/hashicorp/hc-install/internal/httpclient/httpclient.go index 0ae6ae4af86f..a9503dfdb882 100644 --- a/vendor/github.com/hashicorp/hc-install/internal/httpclient/httpclient.go +++ b/vendor/github.com/hashicorp/hc-install/internal/httpclient/httpclient.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package httpclient import ( diff --git a/vendor/github.com/hashicorp/hc-install/internal/pubkey/pubkey.go b/vendor/github.com/hashicorp/hc-install/internal/pubkey/pubkey.go index c36fba471663..d06f10450631 100644 --- a/vendor/github.com/hashicorp/hc-install/internal/pubkey/pubkey.go +++ b/vendor/github.com/hashicorp/hc-install/internal/pubkey/pubkey.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package pubkey const ( diff --git a/vendor/github.com/hashicorp/hc-install/internal/releasesjson/checksum_downloader.go b/vendor/github.com/hashicorp/hc-install/internal/releasesjson/checksum_downloader.go index c012a20aab19..843de8cdfadd 100644 --- a/vendor/github.com/hashicorp/hc-install/internal/releasesjson/checksum_downloader.go +++ b/vendor/github.com/hashicorp/hc-install/internal/releasesjson/checksum_downloader.go @@ -1,7 +1,9 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package releasesjson import ( - "bytes" "context" "crypto/sha256" "encoding/hex" @@ -12,8 +14,8 @@ import ( "net/url" "strings" + "github.com/ProtonMail/go-crypto/openpgp" "github.com/hashicorp/hc-install/internal/httpclient" - "golang.org/x/crypto/openpgp" ) type ChecksumDownloader struct { @@ -133,43 +135,13 @@ func fileMapFromChecksums(checksums strings.Builder) (ChecksumFileMap, error) { return csMap, nil } -func compareChecksum(logger *log.Logger, r io.Reader, verifiedHashSum HashSum, filename string, expectedSize int64) error { - h := sha256.New() - - // This may take a while depending on network connection as the io.Reader - // is expected to be http.Response.Body which streams the bytes - // on demand over the network. - logger.Printf("copying %q (%d bytes) to calculate checksum", filename, expectedSize) - bytesCopied, err := io.Copy(h, r) - if err != nil { - return err - } - logger.Printf("copied %d bytes of %q", bytesCopied, filename) - - if expectedSize != 0 && bytesCopied != int64(expectedSize) { - return fmt.Errorf("unexpected size (downloaded: %d, expected: %d)", - bytesCopied, expectedSize) - } - - calculatedSum := h.Sum(nil) - if !bytes.Equal(calculatedSum, verifiedHashSum) { - return fmt.Errorf("checksum mismatch (expected %q, calculated %q)", - verifiedHashSum, - hex.EncodeToString(calculatedSum)) - } - - logger.Printf("checksum matches: %q", hex.EncodeToString(calculatedSum)) - - return nil -} - func (cd *ChecksumDownloader) verifySumsSignature(checksums, signature io.Reader) error { el, err := cd.keyEntityList() if err != nil { return err } - _, err = openpgp.CheckDetachedSignature(el, checksums, signature) + _, err = openpgp.CheckDetachedSignature(el, checksums, signature, nil) if err != nil { return fmt.Errorf("unable to verify checksums signature: %w", err) } diff --git a/vendor/github.com/hashicorp/hc-install/internal/releasesjson/downloader.go b/vendor/github.com/hashicorp/hc-install/internal/releasesjson/downloader.go index 8b2097d7615e..146c1cf029f3 100644 --- a/vendor/github.com/hashicorp/hc-install/internal/releasesjson/downloader.go +++ b/vendor/github.com/hashicorp/hc-install/internal/releasesjson/downloader.go @@ -1,9 +1,13 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package releasesjson import ( "archive/zip" "bytes" "context" + "crypto/sha256" "fmt" "io" "io/ioutil" @@ -25,7 +29,7 @@ type Downloader struct { BaseURL string } -func (d *Downloader) DownloadAndUnpack(ctx context.Context, pv *ProductVersion, dstDir string) (zipFilePath string, err error) { +func (d *Downloader) DownloadAndUnpack(ctx context.Context, pv *ProductVersion, binDir string, licenseDir string) (zipFilePath string, err error) { if len(pv.Builds) == 0 { return "", fmt.Errorf("no builds found for %s %s", pv.Name, pv.Version) } @@ -92,8 +96,7 @@ func (d *Downloader) DownloadAndUnpack(ctx context.Context, pv *ProductVersion, defer resp.Body.Close() - var pkgReader io.Reader - pkgReader = resp.Body + pkgReader := resp.Body contentType := resp.Header.Get("content-type") if !contentTypeIsZip(contentType) { @@ -103,19 +106,6 @@ func (d *Downloader) DownloadAndUnpack(ctx context.Context, pv *ProductVersion, expectedSize := resp.ContentLength - if d.VerifyChecksum { - d.Logger.Printf("verifying checksum of %q", pb.Filename) - // provide extra reader to calculate & compare checksum - var buf bytes.Buffer - r := io.TeeReader(resp.Body, &buf) - pkgReader = &buf - - err := compareChecksum(d.Logger, r, verifiedChecksum, pb.Filename, expectedSize) - if err != nil { - return "", err - } - } - pkgFile, err := ioutil.TempFile("", pb.Filename) if err != nil { return "", err @@ -124,19 +114,39 @@ func (d *Downloader) DownloadAndUnpack(ctx context.Context, pv *ProductVersion, pkgFilePath, err := filepath.Abs(pkgFile.Name()) d.Logger.Printf("copying %q (%d bytes) to %s", pb.Filename, expectedSize, pkgFile.Name()) - // Unless the bytes were already downloaded above for checksum verification - // this may take a while depending on network connection as the io.Reader - // is expected to be http.Response.Body which streams the bytes - // on demand over the network. - bytesCopied, err := io.Copy(pkgFile, pkgReader) - if err != nil { - return pkgFilePath, err + + var bytesCopied int64 + if d.VerifyChecksum { + d.Logger.Printf("verifying checksum of %q", pb.Filename) + h := sha256.New() + r := io.TeeReader(resp.Body, pkgFile) + + bytesCopied, err = io.Copy(h, r) + if err != nil { + return "", err + } + + calculatedSum := h.Sum(nil) + if !bytes.Equal(calculatedSum, verifiedChecksum) { + return pkgFilePath, fmt.Errorf( + "checksum mismatch (expected: %x, got: %x)", + verifiedChecksum, calculatedSum, + ) + } + } else { + bytesCopied, err = io.Copy(pkgFile, pkgReader) + if err != nil { + return pkgFilePath, err + } } + d.Logger.Printf("copied %d bytes to %s", bytesCopied, pkgFile.Name()) if expectedSize != 0 && bytesCopied != int64(expectedSize) { - return pkgFilePath, fmt.Errorf("unexpected size (downloaded: %d, expected: %d)", - bytesCopied, expectedSize) + return pkgFilePath, fmt.Errorf( + "unexpected size (downloaded: %d, expected: %d)", + bytesCopied, expectedSize, + ) } r, err := zip.OpenReader(pkgFile.Name()) @@ -156,6 +166,12 @@ func (d *Downloader) DownloadAndUnpack(ctx context.Context, pv *ProductVersion, return pkgFilePath, err } + // Determine the appropriate destination file path + dstDir := binDir + if isLicenseFile(f.Name) && licenseDir != "" { + dstDir = licenseDir + } + d.Logger.Printf("unpacking %s to %s", f.Name, dstDir) dstPath := filepath.Join(dstDir, f.Name) dstFile, err := os.Create(dstPath) @@ -190,3 +206,19 @@ func contentTypeIsZip(contentType string) bool { } return false } + +// Enterprise products have a few additional license files +// that need to be extracted to a separate directory +var licenseFiles = []string{ + "EULA.txt", + "TermsOfEvaluation.txt", +} + +func isLicenseFile(filename string) bool { + for _, lf := range licenseFiles { + if lf == filename { + return true + } + } + return false +} diff --git a/vendor/github.com/hashicorp/hc-install/internal/releasesjson/product_version.go b/vendor/github.com/hashicorp/hc-install/internal/releasesjson/product_version.go index 5eecb0136477..99b811a6458f 100644 --- a/vendor/github.com/hashicorp/hc-install/internal/releasesjson/product_version.go +++ b/vendor/github.com/hashicorp/hc-install/internal/releasesjson/product_version.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package releasesjson import "github.com/hashicorp/go-version" diff --git a/vendor/github.com/hashicorp/hc-install/internal/releasesjson/releases.go b/vendor/github.com/hashicorp/hc-install/internal/releasesjson/releases.go index b100a8d2b572..755019f2f257 100644 --- a/vendor/github.com/hashicorp/hc-install/internal/releasesjson/releases.go +++ b/vendor/github.com/hashicorp/hc-install/internal/releasesjson/releases.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package releasesjson import ( @@ -112,13 +115,6 @@ func (r *Releases) ListProductVersions(ctx context.Context, productName string) continue } - if ok, _ := versionIsSupported(v); !ok { - // Remove (currently unsupported) enterprise - // version and any other "custom" build - delete(p.Versions, rawVersion) - continue - } - p.Versions[rawVersion].Version = v } @@ -126,10 +122,6 @@ func (r *Releases) ListProductVersions(ctx context.Context, productName string) } func (r *Releases) GetProductVersion(ctx context.Context, product string, version *version.Version) (*ProductVersion, error) { - if ok, err := versionIsSupported(version); !ok { - return nil, fmt.Errorf("%s: %w", product, err) - } - client := httpclient.NewHTTPClient() indexURL := fmt.Sprintf("%s/%s/%s/index.json", @@ -175,12 +167,3 @@ func (r *Releases) GetProductVersion(ctx context.Context, product string, versio return pv, nil } - -func versionIsSupported(v *version.Version) (bool, error) { - isSupported := v.Metadata() == "" - if !isSupported { - return false, fmt.Errorf("cannot obtain %s (enterprise versions are not supported)", - v.String()) - } - return true, nil -} diff --git a/vendor/github.com/hashicorp/hc-install/internal/src/src.go b/vendor/github.com/hashicorp/hc-install/internal/src/src.go index 5b53d92b12f5..9cac8a64e31e 100644 --- a/vendor/github.com/hashicorp/hc-install/internal/src/src.go +++ b/vendor/github.com/hashicorp/hc-install/internal/src/src.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package src type InstallSrcSigil struct{} diff --git a/vendor/github.com/hashicorp/hc-install/internal/validators/validators.go b/vendor/github.com/hashicorp/hc-install/internal/validators/validators.go index 5e3e6c816374..8a331c4cf72e 100644 --- a/vendor/github.com/hashicorp/hc-install/internal/validators/validators.go +++ b/vendor/github.com/hashicorp/hc-install/internal/validators/validators.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package validators import "regexp" diff --git a/vendor/github.com/hashicorp/hc-install/product/consul.go b/vendor/github.com/hashicorp/hc-install/product/consul.go index 72e490e2f307..9789d7c318e1 100644 --- a/vendor/github.com/hashicorp/hc-install/product/consul.go +++ b/vendor/github.com/hashicorp/hc-install/product/consul.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package product import ( diff --git a/vendor/github.com/hashicorp/hc-install/product/nomad.go b/vendor/github.com/hashicorp/hc-install/product/nomad.go new file mode 100644 index 000000000000..b675d9a19a82 --- /dev/null +++ b/vendor/github.com/hashicorp/hc-install/product/nomad.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package product + +import ( + "context" + "fmt" + "os/exec" + "regexp" + "runtime" + "strings" + + "github.com/hashicorp/go-version" + "github.com/hashicorp/hc-install/internal/build" +) + +var nomadVersionOutputRe = regexp.MustCompile(`Nomad ` + simpleVersionRe) + +var Nomad = Product{ + Name: "nomad", + BinaryName: func() string { + if runtime.GOOS == "windows" { + return "nomad.exe" + } + return "nomad" + }, + GetVersion: func(ctx context.Context, path string) (*version.Version, error) { + cmd := exec.CommandContext(ctx, path, "version") + + out, err := cmd.Output() + if err != nil { + return nil, err + } + + stdout := strings.TrimSpace(string(out)) + + submatches := nomadVersionOutputRe.FindStringSubmatch(stdout) + if len(submatches) != 2 { + return nil, fmt.Errorf("unexpected number of version matches %d for %s", len(submatches), stdout) + } + v, err := version.NewVersion(submatches[1]) + if err != nil { + return nil, fmt.Errorf("unable to parse version %q: %w", submatches[1], err) + } + + return v, err + }, + BuildInstructions: &BuildInstructions{ + GitRepoURL: "https://github.com/hashicorp/nomad.git", + PreCloneCheck: &build.GoIsInstalled{}, + Build: &build.GoBuild{DetectVendoring: true}, + }, +} diff --git a/vendor/github.com/hashicorp/hc-install/product/product.go b/vendor/github.com/hashicorp/hc-install/product/product.go index 0b5e2a546716..85f2e11bf2c4 100644 --- a/vendor/github.com/hashicorp/hc-install/product/product.go +++ b/vendor/github.com/hashicorp/hc-install/product/product.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package product import ( diff --git a/vendor/github.com/hashicorp/hc-install/product/terraform.go b/vendor/github.com/hashicorp/hc-install/product/terraform.go index d820203a77ea..afb6b35fb3ab 100644 --- a/vendor/github.com/hashicorp/hc-install/product/terraform.go +++ b/vendor/github.com/hashicorp/hc-install/product/terraform.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package product import ( diff --git a/vendor/github.com/hashicorp/hc-install/product/vault.go b/vendor/github.com/hashicorp/hc-install/product/vault.go index f00827bfecb8..0b25965963ac 100644 --- a/vendor/github.com/hashicorp/hc-install/product/vault.go +++ b/vendor/github.com/hashicorp/hc-install/product/vault.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package product import ( diff --git a/vendor/github.com/hashicorp/hc-install/releases/enterprise.go b/vendor/github.com/hashicorp/hc-install/releases/enterprise.go new file mode 100644 index 000000000000..179d40d1cd43 --- /dev/null +++ b/vendor/github.com/hashicorp/hc-install/releases/enterprise.go @@ -0,0 +1,38 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package releases + +import "fmt" + +type EnterpriseOptions struct { + // LicenseDir represents directory path where to install license files (required) + LicenseDir string + + // Meta represents optional version metadata (e.g. hsm, fips1402) + Meta string +} + +func enterpriseVersionMetadata(eo *EnterpriseOptions) string { + if eo == nil { + return "" + } + + metadata := "ent" + if eo.Meta != "" { + metadata += "." + eo.Meta + } + return metadata +} + +func validateEnterpriseOptions(eo *EnterpriseOptions) error { + if eo == nil { + return nil + } + + if eo.LicenseDir == "" { + return fmt.Errorf("LicenseDir must be provided when requesting enterprise versions") + } + + return nil +} diff --git a/vendor/github.com/hashicorp/hc-install/releases/exact_version.go b/vendor/github.com/hashicorp/hc-install/releases/exact_version.go index 7e4091ef7e19..e42f4d239fd8 100644 --- a/vendor/github.com/hashicorp/hc-install/releases/exact_version.go +++ b/vendor/github.com/hashicorp/hc-install/releases/exact_version.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package releases import ( @@ -25,6 +28,9 @@ type ExactVersion struct { InstallDir string Timeout time.Duration + // Enterprise indicates installation of enterprise version (leave nil for Community editions) + Enterprise *EnterpriseOptions + SkipChecksumVerification bool // ArmoredPublicKey is a public PGP key in ASCII/armor format to use @@ -64,6 +70,10 @@ func (ev *ExactVersion) Validate() error { return fmt.Errorf("unknown version") } + if err := validateEnterpriseOptions(ev.Enterprise); err != nil { + return err + } + return nil } @@ -97,7 +107,11 @@ func (ev *ExactVersion) Install(ctx context.Context) (string, error) { rels.BaseURL = ev.apiBaseURL } rels.SetLogger(ev.log()) - pv, err := rels.GetProductVersion(ctx, ev.Product.Name, ev.Version) + installVersion := ev.Version + if ev.Enterprise != nil { + installVersion = versionWithMetadata(installVersion, enterpriseVersionMetadata(ev.Enterprise)) + } + pv, err := rels.GetProductVersion(ctx, ev.Product.Name, installVersion) if err != nil { return "", err } @@ -115,7 +129,11 @@ func (ev *ExactVersion) Install(ctx context.Context) (string, error) { d.BaseURL = ev.apiBaseURL } - zipFilePath, err := d.DownloadAndUnpack(ctx, pv, dstDir) + licenseDir := "" + if ev.Enterprise != nil { + licenseDir = ev.Enterprise.LicenseDir + } + zipFilePath, err := d.DownloadAndUnpack(ctx, pv, dstDir, licenseDir) if zipFilePath != "" { ev.pathsToRemove = append(ev.pathsToRemove, zipFilePath) } @@ -148,3 +166,21 @@ func (ev *ExactVersion) Remove(ctx context.Context) error { return nil } + +// versionWithMetadata returns a new version by combining the given version with the given metadata +func versionWithMetadata(v *version.Version, metadata string) *version.Version { + if v == nil { + return nil + } + + if metadata == "" { + return v + } + + v2, err := version.NewVersion(fmt.Sprintf("%s+%s", v.Core(), metadata)) + if err != nil { + return nil + } + + return v2 +} diff --git a/vendor/github.com/hashicorp/hc-install/releases/latest_version.go b/vendor/github.com/hashicorp/hc-install/releases/latest_version.go index 36aa5b2b3cb3..8873b5d4ecc3 100644 --- a/vendor/github.com/hashicorp/hc-install/releases/latest_version.go +++ b/vendor/github.com/hashicorp/hc-install/releases/latest_version.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package releases import ( @@ -25,6 +28,9 @@ type LatestVersion struct { Timeout time.Duration IncludePrereleases bool + // Enterprise indicates installation of enterprise version (leave nil for Community editions) + Enterprise *EnterpriseOptions + SkipChecksumVerification bool // ArmoredPublicKey is a public PGP key in ASCII/armor format to use @@ -60,6 +66,10 @@ func (lv *LatestVersion) Validate() error { return fmt.Errorf("invalid binary name: %q", lv.Product.BinaryName()) } + if err := validateEnterpriseOptions(lv.Enterprise); err != nil { + return err + } + return nil } @@ -119,7 +129,11 @@ func (lv *LatestVersion) Install(ctx context.Context) (string, error) { if lv.apiBaseURL != "" { d.BaseURL = lv.apiBaseURL } - zipFilePath, err := d.DownloadAndUnpack(ctx, versionToInstall, dstDir) + licenseDir := "" + if lv.Enterprise != nil { + licenseDir = lv.Enterprise.LicenseDir + } + zipFilePath, err := d.DownloadAndUnpack(ctx, versionToInstall, dstDir, licenseDir) if zipFilePath != "" { lv.pathsToRemove = append(lv.pathsToRemove, zipFilePath) } @@ -153,6 +167,7 @@ func (lv *LatestVersion) Remove(ctx context.Context) error { } func (lv *LatestVersion) findLatestMatchingVersion(pvs rjson.ProductVersionsMap, vc version.Constraints) (*rjson.ProductVersion, bool) { + expectedMetadata := enterpriseVersionMetadata(lv.Enterprise) versions := make(version.Collection, 0) for _, pv := range pvs.AsSlice() { if !lv.IncludePrereleases && pv.Version.Prerelease() != "" { @@ -160,6 +175,10 @@ func (lv *LatestVersion) findLatestMatchingVersion(pvs rjson.ProductVersionsMap, continue } + if pv.Version.Metadata() != expectedMetadata { + continue + } + versions = append(versions, pv.Version) } diff --git a/vendor/github.com/hashicorp/hc-install/releases/releases.go b/vendor/github.com/hashicorp/hc-install/releases/releases.go index 2c3f30992805..7bef49ba30f3 100644 --- a/vendor/github.com/hashicorp/hc-install/releases/releases.go +++ b/vendor/github.com/hashicorp/hc-install/releases/releases.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package releases import ( diff --git a/vendor/github.com/hashicorp/hc-install/releases/versions.go b/vendor/github.com/hashicorp/hc-install/releases/versions.go index bf0f799faafd..49b1af78cae2 100644 --- a/vendor/github.com/hashicorp/hc-install/releases/versions.go +++ b/vendor/github.com/hashicorp/hc-install/releases/versions.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package releases import ( @@ -18,6 +21,7 @@ import ( type Versions struct { Product product.Product Constraints version.Constraints + Enterprise *EnterpriseOptions // require enterprise version if set (leave nil for OSS) ListTimeout time.Duration @@ -42,6 +46,10 @@ func (v *Versions) List(ctx context.Context) ([]src.Source, error) { return nil, fmt.Errorf("invalid product name: %q", v.Product.Name) } + if err := validateEnterpriseOptions(v.Enterprise); err != nil { + return nil, err + } + timeout := defaultListTimeout if v.ListTimeout > 0 { timeout = v.ListTimeout @@ -58,6 +66,8 @@ func (v *Versions) List(ctx context.Context) ([]src.Source, error) { versions := pvs.AsSlice() sort.Stable(versions) + expectedMetadata := enterpriseVersionMetadata(v.Enterprise) + installables := make([]src.Source, 0) for _, pv := range versions { if !v.Constraints.Check(pv.Version) { @@ -65,6 +75,11 @@ func (v *Versions) List(ctx context.Context) ([]src.Source, error) { continue } + if pv.Version.Metadata() != expectedMetadata { + // skip version which doesn't match required metadata for enterprise or OSS versions + continue + } + ev := &ExactVersion{ Product: v.Product, Version: pv.Version, @@ -75,6 +90,13 @@ func (v *Versions) List(ctx context.Context) ([]src.Source, error) { SkipChecksumVerification: v.Install.SkipChecksumVerification, } + if v.Enterprise != nil { + ev.Enterprise = &EnterpriseOptions{ + Meta: v.Enterprise.Meta, + LicenseDir: v.Enterprise.LicenseDir, + } + } + installables = append(installables, ev) } diff --git a/vendor/github.com/hashicorp/hc-install/src/src.go b/vendor/github.com/hashicorp/hc-install/src/src.go index 11fef7869ffd..f7b8265efba3 100644 --- a/vendor/github.com/hashicorp/hc-install/src/src.go +++ b/vendor/github.com/hashicorp/hc-install/src/src.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package src import ( diff --git a/vendor/github.com/hashicorp/hc-install/version/VERSION b/vendor/github.com/hashicorp/hc-install/version/VERSION index 79a2734bbf3d..a918a2aa18d5 100644 --- a/vendor/github.com/hashicorp/hc-install/version/VERSION +++ b/vendor/github.com/hashicorp/hc-install/version/VERSION @@ -1 +1 @@ -0.5.0 \ No newline at end of file +0.6.0 diff --git a/vendor/github.com/hashicorp/hc-install/version/version.go b/vendor/github.com/hashicorp/hc-install/version/version.go index db367e560ae1..facd42949c76 100644 --- a/vendor/github.com/hashicorp/hc-install/version/version.go +++ b/vendor/github.com/hashicorp/hc-install/version/version.go @@ -1,7 +1,11 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package version import ( _ "embed" + "strings" "github.com/hashicorp/go-version" ) @@ -9,6 +13,9 @@ import ( //go:embed VERSION var rawVersion string +// parsedVersion declared here ensures that invalid versions panic early, on import +var parsedVersion = version.Must(version.NewVersion(strings.TrimSpace(rawVersion))) + // Version returns the version of the library // // Note: This is only exposed as public function/package @@ -16,5 +23,5 @@ var rawVersion string // In general downstream should not implement version-specific // logic and rely on this function to be present in future releases. func Version() *version.Version { - return version.Must(version.NewVersion(rawVersion)) + return parsedVersion } diff --git a/vendor/github.com/hashicorp/hcl/v2/CHANGELOG.md b/vendor/github.com/hashicorp/hcl/v2/CHANGELOG.md index daf3ad90f600..0d523b52282a 100644 --- a/vendor/github.com/hashicorp/hcl/v2/CHANGELOG.md +++ b/vendor/github.com/hashicorp/hcl/v2/CHANGELOG.md @@ -1,5 +1,35 @@ # HCL Changelog +## v2.18.0 (August 30, 2023) + +### Enhancements + +* HCL now uses the tables from Unicode 15 when performing string normalization and character segmentation. HCL was previously using the Unicode 13 tables. + + For calling applications where consistent Unicode support is important, consider also upgrading to Go 1.21 at the same time as adopting HCL v2.18.0 so that the standard library unicode tables (used for case folding, etc) will also be from Unicode 15. + +## v2.17.1 (August 30, 2023) + +### Enhancements + +* hclsyntax: When evaluating string templates that have a long known constant prefix, HCL will truncate the known prefix to avoid creating excessively-large refinements. String prefix refinements are intended primarily for relatively-short fixed prefixes, such as `https://` at the start of a URL known to use that scheme. ([#617](https://github.com/hashicorp/hcl/pull/617)) +* ext/tryfunc: The "try" and "can" functions now handle unknown values slightly more precisely, and so can return known values in more situations when given expressions referring to unknown symbols. ([#622](https://github.com/hashicorp/hcl/pull/622)) + +### Bugs Fixed + +* ext/typeexpr: Will no longer try to refine unknown values of unknown type when dealing with a user-specified type constraint containing the `any` keyword, avoiding an incorrect panic at runtime. ([#625](https://github.com/hashicorp/hcl/pull/625)) +* ext/typeexpr: Now correctly handles attempts to declare the same object type attribute multiple times by returning an error. Previously this could potentially panic by creating an incoherent internal state. ([#624](https://github.com/hashicorp/hcl/pull/624)) + +## v2.17.0 (May 31, 2023) + +### Enhancements + +* HCL now uses a newer version of the upstream `cty` library which has improved treatment of unknown values: it can now track additional optional information that reduces the range of an unknown value, which allows some operations against unknown values to return known or partially-known results. ([#590](https://github.com/hashicorp/hcl/pull/590)) + + **Note:** This change effectively passes on [`cty`'s notion of backward compatibility](https://github.com/zclconf/go-cty/blob/main/COMPATIBILITY.md) whereby unknown values can become "more known" in later releases. In particular, if your caller is using `cty.Value.RawEquals` in its tests against the results of operations with unknown values then you may see those tests begin failing after upgrading, due to the values now being more "refined". + + If so, you should review the refinements with consideration to [the `cty` refinements docs](https://github.com/zclconf/go-cty/blob/7dcbae46a6f247e983efb1fa774d2bb68781a333/docs/refinements.md) and update your expected results to match only if the reported refinements seem correct for the given situation. The `RawEquals` method is intended only for making exact value comparisons in test cases, so main application code should not use it; use `Equals` instead for real logic, which will take refinements into account automatically. + ## v2.16.2 (March 9, 2023) ### Bugs Fixed diff --git a/vendor/github.com/hashicorp/hcl/v2/hclsyntax/expression.go b/vendor/github.com/hashicorp/hcl/v2/hclsyntax/expression.go index 55fecd4eaf0d..5df423fec240 100644 --- a/vendor/github.com/hashicorp/hcl/v2/hclsyntax/expression.go +++ b/vendor/github.com/hashicorp/hcl/v2/hclsyntax/expression.go @@ -696,7 +696,59 @@ func (e *ConditionalExpr) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostic return cty.UnknownVal(resultType), diags } if !condResult.IsKnown() { - return cty.UnknownVal(resultType), diags + // We might be able to offer a refined range for the result based on + // the two possible outcomes. + if trueResult.Type() == cty.Number && falseResult.Type() == cty.Number { + // This case deals with the common case of (predicate ? 1 : 0) and + // significantly decreases the range of the result in that case. + if !(trueResult.IsNull() || falseResult.IsNull()) { + if gt := trueResult.GreaterThan(falseResult); gt.IsKnown() { + b := cty.UnknownVal(cty.Number).Refine() + if gt.True() { + b = b. + NumberRangeLowerBound(falseResult, true). + NumberRangeUpperBound(trueResult, true) + } else { + b = b. + NumberRangeLowerBound(trueResult, true). + NumberRangeUpperBound(falseResult, true) + } + b = b.NotNull() // If neither of the results is null then the result can't be either + return b.NewValue().WithSameMarks(condResult).WithSameMarks(trueResult).WithSameMarks(falseResult), diags + } + } + } + if trueResult.Type().IsCollectionType() && falseResult.Type().IsCollectionType() { + if trueResult.Type().Equals(falseResult.Type()) { + if !(trueResult.IsNull() || falseResult.IsNull()) { + trueLen := trueResult.Length() + falseLen := falseResult.Length() + if gt := trueLen.GreaterThan(falseLen); gt.IsKnown() { + b := cty.UnknownVal(resultType).Refine() + trueLen, _ := trueLen.AsBigFloat().Int64() + falseLen, _ := falseLen.AsBigFloat().Int64() + if gt.True() { + b = b. + CollectionLengthLowerBound(int(falseLen)). + CollectionLengthUpperBound(int(trueLen)) + } else { + b = b. + CollectionLengthLowerBound(int(trueLen)). + CollectionLengthUpperBound(int(falseLen)) + } + b = b.NotNull() // If neither of the results is null then the result can't be either + return b.NewValue().WithSameMarks(condResult).WithSameMarks(trueResult).WithSameMarks(falseResult), diags + } + } + } + } + trueRng := trueResult.Range() + falseRng := falseResult.Range() + ret := cty.UnknownVal(resultType) + if trueRng.DefinitelyNotNull() && falseRng.DefinitelyNotNull() { + ret = ret.RefineNotNull() + } + return ret.WithSameMarks(condResult).WithSameMarks(trueResult).WithSameMarks(falseResult), diags } condResult, err := convert.Convert(condResult, cty.Bool) if err != nil { @@ -1632,11 +1684,15 @@ func (e *SplatExpr) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostics) { // example, it is valid to use a splat on a single object to retrieve a // list of a single attribute, but we still need to check if that // attribute actually exists. - upgradedUnknown = !sourceVal.IsKnown() + if !sourceVal.IsKnown() { + sourceRng := sourceVal.Range() + if sourceRng.CouldBeNull() { + upgradedUnknown = true + } + } sourceVal = cty.TupleVal([]cty.Value{sourceVal}) sourceTy = sourceVal.Type() - } // We'll compute our result type lazily if we need it. In the normal case @@ -1675,7 +1731,20 @@ func (e *SplatExpr) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostics) { // checking to proceed. ty, tyDiags := resultTy() diags = append(diags, tyDiags...) - return cty.UnknownVal(ty), diags + ret := cty.UnknownVal(ty) + if ty != cty.DynamicPseudoType { + ret = ret.RefineNotNull() + } + if ty.IsListType() && sourceVal.Type().IsCollectionType() { + // We can refine the length of an unknown list result based on + // the source collection's own length. + sourceRng := sourceVal.Range() + ret = ret.Refine(). + CollectionLengthLowerBound(sourceRng.LengthLowerBound()). + CollectionLengthUpperBound(sourceRng.LengthUpperBound()). + NewValue() + } + return ret.WithSameMarks(sourceVal), diags } // Unmark the collection, and save the marks to apply to the returned diff --git a/vendor/github.com/hashicorp/hcl/v2/hclsyntax/expression_template.go b/vendor/github.com/hashicorp/hcl/v2/hclsyntax/expression_template.go index 0b5ac19553e5..a0dc7c2291be 100644 --- a/vendor/github.com/hashicorp/hcl/v2/hclsyntax/expression_template.go +++ b/vendor/github.com/hashicorp/hcl/v2/hclsyntax/expression_template.go @@ -38,11 +38,9 @@ func (e *TemplateExpr) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostics) if partVal.IsNull() { diags = append(diags, &hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Invalid template interpolation value", - Detail: fmt.Sprintf( - "The expression result is null. Cannot include a null value in a string template.", - ), + Severity: hcl.DiagError, + Summary: "Invalid template interpolation value", + Detail: "The expression result is null. Cannot include a null value in a string template.", Subject: part.Range().Ptr(), Context: &e.SrcRange, Expression: part, @@ -83,16 +81,38 @@ func (e *TemplateExpr) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostics) continue } - buf.WriteString(strVal.AsString()) + // If we're just continuing to validate after we found an unknown value + // then we'll skip appending so that "buf" will contain only the + // known prefix of the result. + if isKnown && !diags.HasErrors() { + buf.WriteString(strVal.AsString()) + } } var ret cty.Value if !isKnown { ret = cty.UnknownVal(cty.String) + if !diags.HasErrors() { // Invalid input means our partial result buffer is suspect + if knownPrefix := buf.String(); knownPrefix != "" { + byteLen := len(knownPrefix) + // Impose a reasonable upper limit to avoid producing too long a prefix. + // The 128 B is about 10% of the safety limits in cty's msgpack decoder. + // @see https://github.com/zclconf/go-cty/blob/v1.13.2/cty/msgpack/unknown.go#L170-L175 + // + // This operation is safe because StringPrefix removes incomplete trailing grapheme clusters. + if byteLen > 128 { // arbitrarily-decided threshold + byteLen = 128 + } + ret = ret.Refine().StringPrefix(knownPrefix[:byteLen]).NewValue() + } + } } else { ret = cty.StringVal(buf.String()) } + // A template rendering result is never null. + ret = ret.RefineNotNull() + // Apply the full set of marks to the returned value return ret.WithMarks(marks), diags } diff --git a/vendor/github.com/hashicorp/hcl/v2/hclsyntax/parser.go b/vendor/github.com/hashicorp/hcl/v2/hclsyntax/parser.go index 6ed88e632035..aa147afeb49a 100644 --- a/vendor/github.com/hashicorp/hcl/v2/hclsyntax/parser.go +++ b/vendor/github.com/hashicorp/hcl/v2/hclsyntax/parser.go @@ -9,7 +9,7 @@ import ( "strconv" "unicode/utf8" - "github.com/apparentlymart/go-textseg/v13/textseg" + "github.com/apparentlymart/go-textseg/v15/textseg" "github.com/hashicorp/hcl/v2" "github.com/zclconf/go-cty/cty" ) diff --git a/vendor/github.com/hashicorp/hcl/v2/hclsyntax/parser_template.go b/vendor/github.com/hashicorp/hcl/v2/hclsyntax/parser_template.go index 3ac6829881ac..19e988064d8b 100644 --- a/vendor/github.com/hashicorp/hcl/v2/hclsyntax/parser_template.go +++ b/vendor/github.com/hashicorp/hcl/v2/hclsyntax/parser_template.go @@ -8,7 +8,7 @@ import ( "strings" "unicode" - "github.com/apparentlymart/go-textseg/v13/textseg" + "github.com/apparentlymart/go-textseg/v15/textseg" "github.com/hashicorp/hcl/v2" "github.com/zclconf/go-cty/cty" ) diff --git a/vendor/github.com/hashicorp/hcl/v2/hclsyntax/token.go b/vendor/github.com/hashicorp/hcl/v2/hclsyntax/token.go index a14b39407fe4..afde5f33a0bb 100644 --- a/vendor/github.com/hashicorp/hcl/v2/hclsyntax/token.go +++ b/vendor/github.com/hashicorp/hcl/v2/hclsyntax/token.go @@ -7,7 +7,7 @@ import ( "bytes" "fmt" - "github.com/apparentlymart/go-textseg/v13/textseg" + "github.com/apparentlymart/go-textseg/v15/textseg" "github.com/hashicorp/hcl/v2" ) diff --git a/vendor/github.com/hashicorp/hcl/v2/pos_scanner.go b/vendor/github.com/hashicorp/hcl/v2/pos_scanner.go index cff553927093..2232f374af2c 100644 --- a/vendor/github.com/hashicorp/hcl/v2/pos_scanner.go +++ b/vendor/github.com/hashicorp/hcl/v2/pos_scanner.go @@ -7,7 +7,7 @@ import ( "bufio" "bytes" - "github.com/apparentlymart/go-textseg/v13/textseg" + "github.com/apparentlymart/go-textseg/v15/textseg" ) // RangeScanner is a helper that will scan over a buffer using a bufio.SplitFunc diff --git a/vendor/github.com/hashicorp/terraform-exec/internal/version/version.go b/vendor/github.com/hashicorp/terraform-exec/internal/version/version.go index bf1a046c740e..e5328d980361 100644 --- a/vendor/github.com/hashicorp/terraform-exec/internal/version/version.go +++ b/vendor/github.com/hashicorp/terraform-exec/internal/version/version.go @@ -1,6 +1,9 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package version -const version = "0.18.1" +const version = "0.19.0" // ModuleVersion returns the current version of the github.com/hashicorp/terraform-exec Go module. // This is a function to allow for future possible enhancement using debug.BuildInfo. diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/apply.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/apply.go index 6dfdb976c533..2c5a6d07a9d3 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/apply.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/apply.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( @@ -10,6 +13,7 @@ import ( type applyConfig struct { backup string + destroy bool dirOrPlan string lock bool @@ -18,6 +22,7 @@ type applyConfig struct { parallelism int reattachInfo ReattachInfo refresh bool + refreshOnly bool replaceAddrs []string state string stateOut string @@ -29,6 +34,7 @@ type applyConfig struct { } var defaultApplyOptions = applyConfig{ + destroy: false, lock: true, parallelism: 10, refresh: true, @@ -75,6 +81,10 @@ func (opt *RefreshOption) configureApply(conf *applyConfig) { conf.refresh = opt.refresh } +func (opt *RefreshOnlyOption) configureApply(conf *applyConfig) { + conf.refreshOnly = opt.refreshOnly +} + func (opt *ReplaceOption) configureApply(conf *applyConfig) { conf.replaceAddrs = append(conf.replaceAddrs, opt.address) } @@ -91,6 +101,10 @@ func (opt *ReattachOption) configureApply(conf *applyConfig) { conf.reattachInfo = opt.info } +func (opt *DestroyFlagOption) configureApply(conf *applyConfig) { + conf.destroy = opt.destroy +} + // Apply represents the terraform apply subcommand. func (tf *Terraform) Apply(ctx context.Context, opts ...ApplyOption) error { cmd, err := tf.applyCmd(ctx, opts...) @@ -178,6 +192,17 @@ func (tf *Terraform) buildApplyArgs(ctx context.Context, c applyConfig) ([]strin args = append(args, "-parallelism="+fmt.Sprint(c.parallelism)) args = append(args, "-refresh="+strconv.FormatBool(c.refresh)) + if c.refreshOnly { + err := tf.compatible(ctx, tf0_15_4, nil) + if err != nil { + return nil, fmt.Errorf("refresh-only option was introduced in Terraform 0.15.4: %w", err) + } + if !c.refresh { + return nil, fmt.Errorf("you cannot use refresh=false in refresh-only planning mode") + } + args = append(args, "-refresh-only") + } + // string slice opts: split into separate args if c.replaceAddrs != nil { err := tf.compatible(ctx, tf0_15_2, nil) @@ -188,6 +213,14 @@ func (tf *Terraform) buildApplyArgs(ctx context.Context, c applyConfig) ([]strin args = append(args, "-replace="+addr) } } + if c.destroy { + err := tf.compatible(ctx, tf0_15_2, nil) + if err != nil { + return nil, fmt.Errorf("-destroy option was introduced in Terraform 0.15.2: %w", err) + } + args = append(args, "-destroy") + } + if c.targets != nil { for _, ta := range c.targets { args = append(args, "-target="+ta) diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/cmd.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/cmd.go index 56393a006c11..5e160324c826 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/cmd.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/cmd.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( @@ -166,7 +169,7 @@ func (tf *Terraform) buildEnv(mergeEnv map[string]string) []string { env[automationEnvVar] = "1" // force usage of workspace methods for switching - env[workspaceEnvVar] = "" + delete(env, workspaceEnvVar) if tf.disablePluginTLS { env[disablePluginTLSEnvVar] = "1" diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/cmd_default.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/cmd_default.go index 79dacc93337b..3af11c812284 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/cmd_default.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/cmd_default.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + //go:build !linux // +build !linux diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/cmd_linux.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/cmd_linux.go index 440fafe8f25a..0565372c12f1 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/cmd_linux.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/cmd_linux.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/destroy.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/destroy.go index 189db7e45f6f..dbef8b3757e1 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/destroy.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/destroy.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/doc.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/doc.go index 0e82bbd9f906..288476f516e4 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/doc.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package tfexec exposes functionality for constructing and running Terraform // CLI commands. Structured return values use the data types defined in the // github.com/hashicorp/terraform-json package. diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/errors.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/errors.go index 3bbb431caa08..c6645e8bc779 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/errors.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/errors.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/fmt.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/fmt.go index 2234c79fa7e3..0979492336ca 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/fmt.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/fmt.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/force_unlock.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/force_unlock.go index de95f547a6ad..7d74a12f931f 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/force_unlock.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/force_unlock.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/get.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/get.go index 5bac9b1976d4..8a1363b5df94 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/get.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/get.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/graph.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/graph.go index 73396280ba92..1b28aa579e03 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/graph.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/graph.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/import.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/import.go index e243d7281778..67275dfaa7e9 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/import.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/import.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/init.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/init.go index 8fd366777c02..c292fdc0f194 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/init.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/init.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/metadata_functions.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/metadata_functions.go index 4577e062b4a1..0e642b2db8d0 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/metadata_functions.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/metadata_functions.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/options.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/options.go index ad3cc65c66bd..5f04680b2904 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/options.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/options.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( @@ -324,6 +327,14 @@ func Refresh(refresh bool) *RefreshOption { return &RefreshOption{refresh} } +type RefreshOnlyOption struct { + refreshOnly bool +} + +func RefreshOnly(refreshOnly bool) *RefreshOnlyOption { + return &RefreshOnlyOption{refreshOnly} +} + type ReplaceOption struct { address string } @@ -362,6 +373,15 @@ func Target(resource string) *TargetOption { return &TargetOption{resource} } +type TestsDirectoryOption struct { + testsDirectory string +} + +// TestsDirectory represents the -tests-directory option (path to tests files) +func TestsDirectory(testsDirectory string) *TestsDirectoryOption { + return &TestsDirectoryOption{testsDirectory} +} + type GraphTypeOption struct { graphType string } diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/output.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/output.go index b16b8b728905..b1185e8a179e 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/output.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/output.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/plan.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/plan.go index 5ea3155202da..946ce8d0ad33 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/plan.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/plan.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( @@ -17,6 +20,7 @@ type planConfig struct { parallelism int reattachInfo ReattachInfo refresh bool + refreshOnly bool replaceAddrs []string state string targets []string @@ -65,6 +69,10 @@ func (opt *RefreshOption) configurePlan(conf *planConfig) { conf.refresh = opt.refresh } +func (opt *RefreshOnlyOption) configurePlan(conf *planConfig) { + conf.refreshOnly = opt.refreshOnly +} + func (opt *ReplaceOption) configurePlan(conf *planConfig) { conf.replaceAddrs = append(conf.replaceAddrs, opt.address) } @@ -199,6 +207,17 @@ func (tf *Terraform) buildPlanArgs(ctx context.Context, c planConfig) ([]string, args = append(args, "-parallelism="+fmt.Sprint(c.parallelism)) args = append(args, "-refresh="+strconv.FormatBool(c.refresh)) + if c.refreshOnly { + err := tf.compatible(ctx, tf0_15_4, nil) + if err != nil { + return nil, fmt.Errorf("refresh-only option was introduced in Terraform 0.15.4: %w", err) + } + if !c.refresh { + return nil, fmt.Errorf("you cannot use refresh=false in refresh-only planning mode") + } + args = append(args, "-refresh-only") + } + // unary flags: pass if true if c.replaceAddrs != nil { err := tf.compatible(ctx, tf0_15_2, nil) diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/providers_lock.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/providers_lock.go index b3a20216d23d..ef5d995b2af8 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/providers_lock.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/providers_lock.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/providers_schema.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/providers_schema.go index 52efc5db6062..995dd15697dd 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/providers_schema.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/providers_schema.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/refresh.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/refresh.go index 4bdd8960f596..16733889d84b 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/refresh.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/refresh.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/show.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/show.go index 61e660ac991c..8bf0779f5f4d 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/show.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/show.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/state_mv.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/state_mv.go index fc7eecf86ce4..ca92e5220b40 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/state_mv.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/state_mv.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/state_pull.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/state_pull.go index 11b6b9c77f0e..9fa6e5db95a3 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/state_pull.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/state_pull.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/state_push.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/state_push.go index 14e55a2eb3fe..a0873e96ced7 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/state_push.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/state_push.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/state_rm.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/state_rm.go index 0c5dd66676e1..2db18cb74722 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/state_rm.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/state_rm.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/taint.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/taint.go index cd69df3085f6..b6ac955cdd60 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/taint.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/taint.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/terraform.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/terraform.go index 10d7d9adbae6..628b733dec2b 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/terraform.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/terraform.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/test.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/test.go new file mode 100644 index 000000000000..5e0bb6353fb6 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/test.go @@ -0,0 +1,66 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfexec + +import ( + "context" + "fmt" + "io" + "os/exec" +) + +type testConfig struct { + testsDirectory string +} + +var defaultTestOptions = testConfig{} + +type TestOption interface { + configureTest(*testConfig) +} + +func (opt *TestsDirectoryOption) configureTest(conf *testConfig) { + conf.testsDirectory = opt.testsDirectory +} + +// Test represents the terraform test -json subcommand. +// +// The given io.Writer, if specified, will receive +// [machine-readable](https://developer.hashicorp.com/terraform/internals/machine-readable-ui) +// JSON from Terraform including test results. +func (tf *Terraform) Test(ctx context.Context, w io.Writer, opts ...TestOption) error { + err := tf.compatible(ctx, tf1_6_0, nil) + + if err != nil { + return fmt.Errorf("terraform test was added in 1.6.0: %w", err) + } + + tf.SetStdout(w) + + testCmd := tf.testCmd(ctx) + + err = tf.runTerraformCmd(ctx, testCmd) + + if err != nil { + return err + } + + return nil +} + +func (tf *Terraform) testCmd(ctx context.Context, opts ...TestOption) *exec.Cmd { + c := defaultTestOptions + + for _, o := range opts { + o.configureTest(&c) + } + + args := []string{"test", "-json"} + + if c.testsDirectory != "" { + args = append(args, "-tests-directory="+c.testsDirectory) + } + + return tf.buildTerraformCmd(ctx, nil, args...) +} diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/untaint.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/untaint.go index bda1272775d0..5f0bf350e657 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/untaint.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/untaint.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/upgrade012.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/upgrade012.go index e55237a7b6ee..34a2c87de144 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/upgrade012.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/upgrade012.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/upgrade013.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/upgrade013.go index f1f444e2f422..98dc45908530 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/upgrade013.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/upgrade013.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/validate.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/validate.go index 320011df19a3..d995d3759da7 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/validate.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/validate.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/version.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/version.go index a2e973681f04..4ba4f6eafcd6 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/version.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/version.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( @@ -26,8 +29,10 @@ var ( tf0_15_0 = version.Must(version.NewVersion("0.15.0")) tf0_15_2 = version.Must(version.NewVersion("0.15.2")) tf0_15_3 = version.Must(version.NewVersion("0.15.3")) + tf0_15_4 = version.Must(version.NewVersion("0.15.4")) tf1_1_0 = version.Must(version.NewVersion("1.1.0")) tf1_4_0 = version.Must(version.NewVersion("1.4.0")) + tf1_6_0 = version.Must(version.NewVersion("1.6.0")) ) // Version returns structured output from the terraform version command including both the Terraform CLI version diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_delete.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_delete.go index 526772079a38..f2a17e652ee2 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_delete.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_delete.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_list.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_list.go index 33c0d779b390..1b4bec37636a 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_list.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_list.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_new.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_new.go index 2e05ffdb764e..921a11873f94 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_new.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_new.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_select.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_select.go index 5a51330f6f56..da88472ab472 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_select.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_select.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import "context" diff --git a/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_show.go b/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_show.go index 7d5a267f1dbd..840eff9ae988 100644 --- a/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_show.go +++ b/vendor/github.com/hashicorp/terraform-exec/tfexec/workspace_show.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfexec import ( diff --git a/vendor/github.com/hashicorp/terraform-json/.copywrite.hcl b/vendor/github.com/hashicorp/terraform-json/.copywrite.hcl new file mode 100644 index 000000000000..ada7d74aa733 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-json/.copywrite.hcl @@ -0,0 +1,13 @@ +schema_version = 1 + +project { + license = "MPL-2.0" + copyright_year = 2019 + + # (OPTIONAL) A list of globs that should not have copyright/license headers. + # Supports doublestar glob patterns for more flexibility in defining which + # files or folders should be ignored + header_ignore = [ + "testdata/**", + ] +} diff --git a/vendor/github.com/hashicorp/terraform-json/action.go b/vendor/github.com/hashicorp/terraform-json/action.go index 51c4c8369af9..c74f7e68a31b 100644 --- a/vendor/github.com/hashicorp/terraform-json/action.go +++ b/vendor/github.com/hashicorp/terraform-json/action.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfjson // Action is a valid action type for a resource change. diff --git a/vendor/github.com/hashicorp/terraform-json/checks.go b/vendor/github.com/hashicorp/terraform-json/checks.go new file mode 100644 index 000000000000..558cb290b6d6 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-json/checks.go @@ -0,0 +1,145 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfjson + +// CheckKind is a string representation of the type of conditional check +// referenced in a check result. +type CheckKind string + +const ( + // CheckKindResource indicates the check result is from a pre- or + // post-condition on a resource or data source. + CheckKindResource CheckKind = "resource" + + // CheckKindOutputValue indicates the check result is from an output + // post-condition. + CheckKindOutputValue CheckKind = "output_value" + + // CheckKindCheckBlock indicates the check result is from a check block. + CheckKindCheckBlock CheckKind = "check" +) + +// CheckStatus is a string representation of the status of a given conditional +// check. +type CheckStatus string + +const ( + // CheckStatusPass indicates the check passed. + CheckStatusPass CheckStatus = "pass" + + // CheckStatusFail indicates the check failed. + CheckStatusFail CheckStatus = "fail" + + // CheckStatusError indicates the check errored. This is distinct from + // CheckStatusFail in that it represents a logical or configuration error + // within the check block that prevented the check from executing, as + // opposed to the check was attempted and evaluated to false. + CheckStatusError CheckStatus = "error" + + // CheckStatusUnknown indicates the result of the check was not known. This + // could be because a value within the check could not be known at plan + // time, or because the overall plan failed for an unrelated reason before + // this check could be executed. + CheckStatusUnknown CheckStatus = "unknown" +) + +// CheckStaticAddress details the address of the object that performed a given +// check. The static address points to the overall resource, as opposed to the +// dynamic address which contains the instance key for any resource that has +// multiple instances. +type CheckStaticAddress struct { + // ToDisplay is a formatted and ready to display representation of the + // address. + ToDisplay string `json:"to_display"` + + // Kind represents the CheckKind of this check. + Kind CheckKind `json:"kind"` + + // Module is the module part of the address. This will be empty for any + // resources in the root module. + Module string `json:"module,omitempty"` + + // Mode is the ResourceMode of the resource that contains this check. This + // field is only set is Kind equals CheckKindResource. + Mode ResourceMode `json:"mode,omitempty"` + + // Type is the resource type for the resource that contains this check. This + // field is only set if Kind equals CheckKindResource. + Type string `json:"type,omitempty"` + + // Name is the name of the resource, check block, or output that contains + // this check. + Name string `json:"name,omitempty"` +} + +// CheckDynamicAddress contains the InstanceKey field for any resources that +// have multiple instances. A complete address can be built by combining the +// CheckStaticAddress with the CheckDynamicAddress. +type CheckDynamicAddress struct { + // ToDisplay is a formatted and ready to display representation of the + // full address, including the additional information from the relevant + // CheckStaticAddress. + ToDisplay string `json:"to_display"` + + // Module is the module part of the address. This address will include the + // instance key for any module expansions resulting from foreach or count + // arguments. This field will be empty for any resources within the root + // module. + Module string `json:"module,omitempty"` + + // InstanceKey is the instance key for any instances of a given resource. + // + // InstanceKey will be empty if there was no foreach or count argument + // defined on the containing object. + InstanceKey interface{} `json:"instance_key,omitempty"` +} + +// CheckResultStatic is the container for a "checkable object". +// +// A "checkable object" is a resource or data source, an output, or a check +// block. +type CheckResultStatic struct { + // Address is the absolute address of the "checkable object" + Address CheckStaticAddress `json:"address"` + + // Status is the overall status for all the checks within this object. + Status CheckStatus `json:"status"` + + // Instances contains the results for dynamic object that belongs to this + // static object. For example, any instances created from an object using + // the foreach or count meta arguments. + // + // Check blocks and outputs will only contain a single instance, while + // resources can contain 1 to many. + Instances []CheckResultDynamic `json:"instances,omitempty"` +} + +// CheckResultDynamic describes the check result for a dynamic object that +// results from the expansion of the containing object. +type CheckResultDynamic struct { + // Address is the relative address of this instance given the Address in the + // parent object. + Address CheckDynamicAddress `json:"address"` + + // Status is the overall status for the checks within this dynamic object. + Status CheckStatus `json:"status"` + + // Problems describes any additional optional details about this check if + // the check failed. + // + // This will not include the errors resulting from this check block, as they + // will be exposed as diagnostics in the original terraform execution. It + // may contain any failure messages even if the overall status is + // CheckStatusError, however, as the instance could contain multiple checks + // that returned a mix of error and failure statuses. + Problems []CheckResultProblem `json:"problems,omitempty"` +} + +// CheckResultProblem describes one of potentially several problems that led to +// a check being classied as CheckStatusFail. +type CheckResultProblem struct { + // Message is the condition error message provided by the original check + // author. + Message string `json:"message"` +} diff --git a/vendor/github.com/hashicorp/terraform-json/config.go b/vendor/github.com/hashicorp/terraform-json/config.go index 5ebe4bc840c9..e8ea638acc18 100644 --- a/vendor/github.com/hashicorp/terraform-json/config.go +++ b/vendor/github.com/hashicorp/terraform-json/config.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfjson import ( diff --git a/vendor/github.com/hashicorp/terraform-json/expression.go b/vendor/github.com/hashicorp/terraform-json/expression.go index 8a39face7b67..5ecb15ce50fb 100644 --- a/vendor/github.com/hashicorp/terraform-json/expression.go +++ b/vendor/github.com/hashicorp/terraform-json/expression.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfjson import "encoding/json" diff --git a/vendor/github.com/hashicorp/terraform-json/metadata.go b/vendor/github.com/hashicorp/terraform-json/metadata.go index 70d7ce4380a0..eb5257760784 100644 --- a/vendor/github.com/hashicorp/terraform-json/metadata.go +++ b/vendor/github.com/hashicorp/terraform-json/metadata.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfjson import ( diff --git a/vendor/github.com/hashicorp/terraform-json/plan.go b/vendor/github.com/hashicorp/terraform-json/plan.go index 6cfd533e9929..de529accc057 100644 --- a/vendor/github.com/hashicorp/terraform-json/plan.go +++ b/vendor/github.com/hashicorp/terraform-json/plan.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfjson import ( @@ -63,6 +66,14 @@ type Plan struct { // RelevantAttributes represents any resource instances and their // attributes which may have contributed to the planned changes RelevantAttributes []ResourceAttribute `json:"relevant_attributes,omitempty"` + + // Checks contains the results of any conditional checks executed, or + // planned to be executed, during this plan. + Checks []CheckResultStatic `json:"checks,omitempty"` + + // Timestamp contains the static timestamp that Terraform considers to be + // the time this plan executed, in UTC. + Timestamp string `json:"timestamp,omitempty"` } // ResourceAttribute describes a full path to a resource attribute @@ -197,6 +208,28 @@ type Change struct { // display of sensitive values in user interfaces. BeforeSensitive interface{} `json:"before_sensitive,omitempty"` AfterSensitive interface{} `json:"after_sensitive,omitempty"` + + // Importing contains the import metadata about this operation. If importing + // is present (ie. not null) then the change is an import operation in + // addition to anything mentioned in the actions field. The actual contents + // of the Importing struct is subject to change, so downstream consumers + // should treat any values in here as strictly optional. + Importing *Importing `json:"importing,omitempty"` + + // GeneratedConfig contains any HCL config generated for this resource + // during planning as a string. + // + // If this is populated, then Importing should also be populated but this + // might change in the future. However, not all Importing changes will + // contain generated config. + GeneratedConfig string `json:"generated_config,omitempty"` +} + +// Importing is a nested object for the resource import metadata. +type Importing struct { + // The original ID of this resource used to target it as part of planned + // import operation. + ID string `json:"id,omitempty"` } // PlanVariable is a top-level variable in the Terraform plan. diff --git a/vendor/github.com/hashicorp/terraform-json/schemas.go b/vendor/github.com/hashicorp/terraform-json/schemas.go index f7c8abd50f63..64f87d84a907 100644 --- a/vendor/github.com/hashicorp/terraform-json/schemas.go +++ b/vendor/github.com/hashicorp/terraform-json/schemas.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfjson import ( diff --git a/vendor/github.com/hashicorp/terraform-json/state.go b/vendor/github.com/hashicorp/terraform-json/state.go index 3c3f6a4b0aab..0f2a9996966a 100644 --- a/vendor/github.com/hashicorp/terraform-json/state.go +++ b/vendor/github.com/hashicorp/terraform-json/state.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfjson import ( @@ -32,6 +35,10 @@ type State struct { // The values that make up the state. Values *StateValues `json:"values,omitempty"` + + // Checks contains the results of any conditional checks when Values was + // last updated. + Checks *CheckResultStatic `json:"checks,omitempty"` } // UseJSONNumber controls whether the State will be decoded using the diff --git a/vendor/github.com/hashicorp/terraform-json/tfjson.go b/vendor/github.com/hashicorp/terraform-json/tfjson.go index 55f9ac44498a..3a78a4f0fed3 100644 --- a/vendor/github.com/hashicorp/terraform-json/tfjson.go +++ b/vendor/github.com/hashicorp/terraform-json/tfjson.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package tfjson is a de-coupled helper library containing types for // the plan format output by "terraform show -json" command. This // command is designed for the export of Terraform plan data in diff --git a/vendor/github.com/hashicorp/terraform-json/validate.go b/vendor/github.com/hashicorp/terraform-json/validate.go index 97b82d0a9793..53652eff3009 100644 --- a/vendor/github.com/hashicorp/terraform-json/validate.go +++ b/vendor/github.com/hashicorp/terraform-json/validate.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfjson import ( diff --git a/vendor/github.com/hashicorp/terraform-json/version.go b/vendor/github.com/hashicorp/terraform-json/version.go index 16f0a853e34d..7516ad6dd494 100644 --- a/vendor/github.com/hashicorp/terraform-json/version.go +++ b/vendor/github.com/hashicorp/terraform-json/version.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfjson // VersionOutput represents output from the version -json command diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/context.go b/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/context.go index 385283bb915d..d99e19796c23 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/context.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/context.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package logging import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/doc.go b/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/doc.go index cc1a033e6141..1d29f515eacc 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/doc.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/doc.go @@ -1,2 +1,5 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package logging contains shared environment variable and log functionality. package logging diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/environment_variables.go b/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/environment_variables.go index 49b8072c8c88..c203345769d3 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/environment_variables.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/environment_variables.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package logging // Environment variables. diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/keys.go b/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/keys.go index ce803d752bd6..2cfacba63e42 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/keys.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/keys.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package logging // Global logging keys attached to all requests. @@ -50,4 +53,10 @@ const ( // The protocol version being used, as a string, such as "6" KeyProtocolVersion = "tf_proto_version" + + // Whether the GetProviderSchemaOptional server capability is enabled + KeyServerCapabilityGetProviderSchemaOptional = "tf_server_capability_get_provider_schema_optional" + + // Whether the PlanDestroy server capability is enabled + KeyServerCapabilityPlanDestroy = "tf_server_capability_plan_destroy" ) diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/protocol.go b/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/protocol.go index ee1247690555..a1d49eae12ce 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/protocol.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/protocol.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package logging import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/protocol_data.go b/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/protocol_data.go index 36dfcd764df5..e96188f59c6e 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/protocol_data.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/protocol_data.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package logging import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/provider.go b/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/provider.go index b40763c6e178..1ece6992d099 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/provider.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/internal/logging/provider.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package logging import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/data_source.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/data_source.go index bdeac8638482..f76df34175a6 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/data_source.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/data_source.go @@ -1,9 +1,19 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov5 import ( "context" ) +// DataSourceMetadata describes metadata for a data resource in the GetMetadata +// RPC. +type DataSourceMetadata struct { + // TypeName is the name of the data resource. + TypeName string +} + // DataSourceServer is an interface containing the methods a data source // implementation needs to fill. type DataSourceServer interface { diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/diagnostic.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/diagnostic.go index de0906e33a02..15ab6a4ab133 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/diagnostic.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/diagnostic.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov5 import "github.com/hashicorp/terraform-plugin-go/tftypes" diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/doc.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/doc.go index fdaf5cde4c70..2d35c9251fb1 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/doc.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package tfprotov5 provides the interfaces and types needed to build a // Terraform provider server. // diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/dynamic_value.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/dynamic_value.go index 71d5cc4e97bd..d21e4966114e 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/dynamic_value.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/dynamic_value.go @@ -1,9 +1,17 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov5 import ( + "bytes" + "encoding/json" "errors" + "fmt" "github.com/hashicorp/terraform-plugin-go/tftypes" + msgpack "github.com/vmihailenco/msgpack/v5" + "github.com/vmihailenco/msgpack/v5/msgpcode" ) // ErrUnknownDynamicValueType is returned when a DynamicValue has no MsgPack or @@ -35,7 +43,7 @@ func NewDynamicValue(t tftypes.Type, v tftypes.Value) (DynamicValue, error) { // DynamicValue represents a nested encoding value that came from the protocol. // The only way providers should ever interact with it is by calling its -// `Unmarshal` method to retrive a `tftypes.Value`. Although the type system +// `Unmarshal` method to retrieve a `tftypes.Value`. Although the type system // allows for other interactions, they are explicitly not supported, and will // not be considered when evaluating for breaking changes. Treat this type as // an opaque value, and *only* call its `Unmarshal` method. @@ -44,6 +52,43 @@ type DynamicValue struct { JSON []byte } +// IsNull returns true if the DynamicValue represents a null value based on the +// underlying JSON or MessagePack data. +func (d DynamicValue) IsNull() (bool, error) { + if d.JSON != nil { + decoder := json.NewDecoder(bytes.NewReader(d.JSON)) + token, err := decoder.Token() + + if err != nil { + return false, fmt.Errorf("unable to read DynamicValue JSON token: %w", err) + } + + if token != nil { + return false, nil + } + + return true, nil + } + + if d.MsgPack != nil { + decoder := msgpack.NewDecoder(bytes.NewReader(d.MsgPack)) + code, err := decoder.PeekCode() + + if err != nil { + return false, fmt.Errorf("unable to read DynamicValue MsgPack code: %w", err) + } + + // Extensions are considered unknown + if msgpcode.IsExt(code) || code != msgpcode.Nil { + return false, nil + } + + return true, nil + } + + return false, fmt.Errorf("unable to read DynamicValue: %w", ErrUnknownDynamicValueType) +} + // Unmarshal returns a `tftypes.Value` that represents the information // contained in the DynamicValue in an easy-to-interact-with way. It is the // main purpose of the DynamicValue type, and is how provider developers should diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/diag/diagnostics.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/diag/diagnostics.go index 9032b901fdbd..cc40d861fce4 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/diag/diagnostics.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/diag/diagnostics.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package diag import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/diag/doc.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/diag/doc.go index 0c73dab12fe6..faaba2285cd0 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/diag/doc.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/diag/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package diag contains diagnostics helpers. These implementations are // intentionally outside the public API. package diag diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/attribute_path.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/attribute_path.go index 421bfbec548b..182479ec9a80 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/attribute_path.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/attribute_path.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/data_source.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/data_source.go index bb1ad54250c5..9a3e8891c98d 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/data_source.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/data_source.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( @@ -5,6 +8,16 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5" ) +func DataSourceMetadata(in *tfplugin5.GetMetadata_DataSourceMetadata) *tfprotov5.DataSourceMetadata { + if in == nil { + return nil + } + + return &tfprotov5.DataSourceMetadata{ + TypeName: in.TypeName, + } +} + func ValidateDataSourceConfigRequest(in *tfplugin5.ValidateDataSourceConfig_Request) (*tfprotov5.ValidateDataSourceConfigRequest, error) { resp := &tfprotov5.ValidateDataSourceConfigRequest{ TypeName: in.TypeName, diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/diagnostic.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/diagnostic.go index e0feaea5e943..1dc41687dc16 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/diagnostic.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/diagnostic.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/provider.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/provider.go index 8184bebf3874..e45cecaa0597 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/provider.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/provider.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( @@ -5,6 +8,40 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5" ) +func GetMetadataRequest(in *tfplugin5.GetMetadata_Request) (*tfprotov5.GetMetadataRequest, error) { + return &tfprotov5.GetMetadataRequest{}, nil +} + +func GetMetadataResponse(in *tfplugin5.GetMetadata_Response) (*tfprotov5.GetMetadataResponse, error) { + if in == nil { + return nil, nil + } + + resp := &tfprotov5.GetMetadataResponse{ + DataSources: make([]tfprotov5.DataSourceMetadata, 0, len(in.DataSources)), + Resources: make([]tfprotov5.ResourceMetadata, 0, len(in.Resources)), + ServerCapabilities: ServerCapabilities(in.ServerCapabilities), + } + + for _, datasource := range in.DataSources { + resp.DataSources = append(resp.DataSources, *DataSourceMetadata(datasource)) + } + + for _, resource := range in.Resources { + resp.Resources = append(resp.Resources, *ResourceMetadata(resource)) + } + + diags, err := Diagnostics(in.Diagnostics) + + if err != nil { + return resp, err + } + + resp.Diagnostics = diags + + return resp, nil +} + func GetProviderSchemaRequest(in *tfplugin5.GetProviderSchema_Request) (*tfprotov5.GetProviderSchemaRequest, error) { return &tfprotov5.GetProviderSchemaRequest{}, nil } diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/resource.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/resource.go index 9b7d505be4d8..f87abdfad088 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/resource.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/resource.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( @@ -7,6 +10,16 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5" ) +func ResourceMetadata(in *tfplugin5.GetMetadata_ResourceMetadata) *tfprotov5.ResourceMetadata { + if in == nil { + return nil + } + + return &tfprotov5.ResourceMetadata{ + TypeName: in.TypeName, + } +} + func ValidateResourceTypeConfigRequest(in *tfplugin5.ValidateResourceTypeConfig_Request) (*tfprotov5.ValidateResourceTypeConfigRequest, error) { resp := &tfprotov5.ValidateResourceTypeConfigRequest{ TypeName: in.TypeName, diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/schema.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/schema.go index 90f2e0322266..35828c3115c2 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/schema.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/schema.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/server_capabilities.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/server_capabilities.go new file mode 100644 index 000000000000..16e258f39471 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/server_capabilities.go @@ -0,0 +1,20 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package fromproto + +import ( + "github.com/hashicorp/terraform-plugin-go/tfprotov5" + "github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5" +) + +func ServerCapabilities(in *tfplugin5.ServerCapabilities) *tfprotov5.ServerCapabilities { + if in == nil { + return nil + } + + return &tfprotov5.ServerCapabilities{ + GetProviderSchemaOptional: in.GetProviderSchemaOptional, + PlanDestroy: in.PlanDestroy, + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/state.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/state.go index ad89004d2d11..910f0c7304cf 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/state.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/state.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/string_kind.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/string_kind.go index c15d2df46146..b2b47248f382 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/string_kind.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/string_kind.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/types.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/types.go index 17f31f852b91..f99ff2b777cb 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/types.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/fromproto/types.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/context_keys.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/context_keys.go index cc72fe4bbf67..5b2556a27b45 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/context_keys.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/context_keys.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tf5serverlogging // Context key types. diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/doc.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/doc.go index e77a831c03ea..82b9d39e5c5a 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/doc.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package tf5serverlogging contains logging functionality specific to // tf5server and tfprotov5 types. package tf5serverlogging diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/downstream_request.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/downstream_request.go index 65ed7011321b..efa4d9b529bc 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/downstream_request.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/downstream_request.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tf5serverlogging import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/server_capabilities.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/server_capabilities.go new file mode 100644 index 000000000000..d0f86c84272a --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tf5serverlogging/server_capabilities.go @@ -0,0 +1,26 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tf5serverlogging + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-go/internal/logging" + "github.com/hashicorp/terraform-plugin-go/tfprotov5" +) + +// ServerCapabilities generates a TRACE "Announced server capabilities" log. +func ServerCapabilities(ctx context.Context, capabilities *tfprotov5.ServerCapabilities) { + responseFields := map[string]interface{}{ + logging.KeyServerCapabilityGetProviderSchemaOptional: false, + logging.KeyServerCapabilityPlanDestroy: false, + } + + if capabilities != nil { + responseFields[logging.KeyServerCapabilityGetProviderSchemaOptional] = capabilities.GetProviderSchemaOptional + responseFields[logging.KeyServerCapabilityPlanDestroy] = capabilities.PlanDestroy + } + + logging.ProtocolTrace(ctx, "Announced server capabilities", responseFields) +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5/tfplugin5.pb.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5/tfplugin5.pb.go index 9b7abe79e46a..b00fa1be15ff 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5/tfplugin5.pb.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5/tfplugin5.pb.go @@ -1,6 +1,9 @@ -// Terraform Plugin RPC protocol version 5.3 +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Terraform Plugin RPC protocol version 5.4 // -// This file defines version 5.3 of the RPC protocol. To implement a plugin +// This file defines version 5.4 of the RPC protocol. To implement a plugin // against this protocol, copy this definition into your own codebase and // use protoc to generate stubs for your target language. // @@ -19,8 +22,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.19.4 +// protoc-gen-go v1.31.0 +// protoc v4.23.2 // source: tfplugin5.proto package tfplugin5 @@ -523,6 +526,109 @@ func (x *Schema) GetBlock() *Schema_Block { return nil } +// ServerCapabilities allows providers to communicate extra information +// regarding supported protocol features. This is used to indicate +// availability of certain forward-compatible changes which may be optional +// in a major protocol version, but cannot be tested for directly. +type ServerCapabilities struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The plan_destroy capability signals that a provider expects a call + // to PlanResourceChange when a resource is going to be destroyed. + PlanDestroy bool `protobuf:"varint,1,opt,name=plan_destroy,json=planDestroy,proto3" json:"plan_destroy,omitempty"` + // The get_provider_schema_optional capability indicates that this + // provider does not require calling GetProviderSchema to operate + // normally, and the caller can used a cached copy of the provider's + // schema. + GetProviderSchemaOptional bool `protobuf:"varint,2,opt,name=get_provider_schema_optional,json=getProviderSchemaOptional,proto3" json:"get_provider_schema_optional,omitempty"` +} + +func (x *ServerCapabilities) Reset() { + *x = ServerCapabilities{} + if protoimpl.UnsafeEnabled { + mi := &file_tfplugin5_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerCapabilities) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerCapabilities) ProtoMessage() {} + +func (x *ServerCapabilities) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin5_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServerCapabilities.ProtoReflect.Descriptor instead. +func (*ServerCapabilities) Descriptor() ([]byte, []int) { + return file_tfplugin5_proto_rawDescGZIP(), []int{6} +} + +func (x *ServerCapabilities) GetPlanDestroy() bool { + if x != nil { + return x.PlanDestroy + } + return false +} + +func (x *ServerCapabilities) GetGetProviderSchemaOptional() bool { + if x != nil { + return x.GetProviderSchemaOptional + } + return false +} + +type GetMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetMetadata) Reset() { + *x = GetMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_tfplugin5_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMetadata) ProtoMessage() {} + +func (x *GetMetadata) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin5_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMetadata.ProtoReflect.Descriptor instead. +func (*GetMetadata) Descriptor() ([]byte, []int) { + return file_tfplugin5_proto_rawDescGZIP(), []int{7} +} + type GetProviderSchema struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -532,7 +638,7 @@ type GetProviderSchema struct { func (x *GetProviderSchema) Reset() { *x = GetProviderSchema{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[6] + mi := &file_tfplugin5_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -545,7 +651,7 @@ func (x *GetProviderSchema) String() string { func (*GetProviderSchema) ProtoMessage() {} func (x *GetProviderSchema) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[6] + mi := &file_tfplugin5_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -558,7 +664,7 @@ func (x *GetProviderSchema) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProviderSchema.ProtoReflect.Descriptor instead. func (*GetProviderSchema) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{6} + return file_tfplugin5_proto_rawDescGZIP(), []int{8} } type PrepareProviderConfig struct { @@ -570,7 +676,7 @@ type PrepareProviderConfig struct { func (x *PrepareProviderConfig) Reset() { *x = PrepareProviderConfig{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[7] + mi := &file_tfplugin5_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -583,7 +689,7 @@ func (x *PrepareProviderConfig) String() string { func (*PrepareProviderConfig) ProtoMessage() {} func (x *PrepareProviderConfig) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[7] + mi := &file_tfplugin5_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -596,7 +702,7 @@ func (x *PrepareProviderConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use PrepareProviderConfig.ProtoReflect.Descriptor instead. func (*PrepareProviderConfig) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{7} + return file_tfplugin5_proto_rawDescGZIP(), []int{9} } type UpgradeResourceState struct { @@ -608,7 +714,7 @@ type UpgradeResourceState struct { func (x *UpgradeResourceState) Reset() { *x = UpgradeResourceState{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[8] + mi := &file_tfplugin5_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -621,7 +727,7 @@ func (x *UpgradeResourceState) String() string { func (*UpgradeResourceState) ProtoMessage() {} func (x *UpgradeResourceState) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[8] + mi := &file_tfplugin5_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -634,7 +740,7 @@ func (x *UpgradeResourceState) ProtoReflect() protoreflect.Message { // Deprecated: Use UpgradeResourceState.ProtoReflect.Descriptor instead. func (*UpgradeResourceState) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{8} + return file_tfplugin5_proto_rawDescGZIP(), []int{10} } type ValidateResourceTypeConfig struct { @@ -646,7 +752,7 @@ type ValidateResourceTypeConfig struct { func (x *ValidateResourceTypeConfig) Reset() { *x = ValidateResourceTypeConfig{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[9] + mi := &file_tfplugin5_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -659,7 +765,7 @@ func (x *ValidateResourceTypeConfig) String() string { func (*ValidateResourceTypeConfig) ProtoMessage() {} func (x *ValidateResourceTypeConfig) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[9] + mi := &file_tfplugin5_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -672,7 +778,7 @@ func (x *ValidateResourceTypeConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateResourceTypeConfig.ProtoReflect.Descriptor instead. func (*ValidateResourceTypeConfig) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{9} + return file_tfplugin5_proto_rawDescGZIP(), []int{11} } type ValidateDataSourceConfig struct { @@ -684,7 +790,7 @@ type ValidateDataSourceConfig struct { func (x *ValidateDataSourceConfig) Reset() { *x = ValidateDataSourceConfig{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[10] + mi := &file_tfplugin5_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -697,7 +803,7 @@ func (x *ValidateDataSourceConfig) String() string { func (*ValidateDataSourceConfig) ProtoMessage() {} func (x *ValidateDataSourceConfig) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[10] + mi := &file_tfplugin5_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -710,7 +816,7 @@ func (x *ValidateDataSourceConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateDataSourceConfig.ProtoReflect.Descriptor instead. func (*ValidateDataSourceConfig) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{10} + return file_tfplugin5_proto_rawDescGZIP(), []int{12} } type Configure struct { @@ -722,7 +828,7 @@ type Configure struct { func (x *Configure) Reset() { *x = Configure{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[11] + mi := &file_tfplugin5_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -735,7 +841,7 @@ func (x *Configure) String() string { func (*Configure) ProtoMessage() {} func (x *Configure) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[11] + mi := &file_tfplugin5_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -748,7 +854,7 @@ func (x *Configure) ProtoReflect() protoreflect.Message { // Deprecated: Use Configure.ProtoReflect.Descriptor instead. func (*Configure) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{11} + return file_tfplugin5_proto_rawDescGZIP(), []int{13} } type ReadResource struct { @@ -760,7 +866,7 @@ type ReadResource struct { func (x *ReadResource) Reset() { *x = ReadResource{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[12] + mi := &file_tfplugin5_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -773,7 +879,7 @@ func (x *ReadResource) String() string { func (*ReadResource) ProtoMessage() {} func (x *ReadResource) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[12] + mi := &file_tfplugin5_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -786,7 +892,7 @@ func (x *ReadResource) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadResource.ProtoReflect.Descriptor instead. func (*ReadResource) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{12} + return file_tfplugin5_proto_rawDescGZIP(), []int{14} } type PlanResourceChange struct { @@ -798,7 +904,7 @@ type PlanResourceChange struct { func (x *PlanResourceChange) Reset() { *x = PlanResourceChange{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[13] + mi := &file_tfplugin5_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -811,7 +917,7 @@ func (x *PlanResourceChange) String() string { func (*PlanResourceChange) ProtoMessage() {} func (x *PlanResourceChange) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[13] + mi := &file_tfplugin5_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -824,7 +930,7 @@ func (x *PlanResourceChange) ProtoReflect() protoreflect.Message { // Deprecated: Use PlanResourceChange.ProtoReflect.Descriptor instead. func (*PlanResourceChange) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{13} + return file_tfplugin5_proto_rawDescGZIP(), []int{15} } type ApplyResourceChange struct { @@ -836,7 +942,7 @@ type ApplyResourceChange struct { func (x *ApplyResourceChange) Reset() { *x = ApplyResourceChange{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[14] + mi := &file_tfplugin5_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -849,7 +955,7 @@ func (x *ApplyResourceChange) String() string { func (*ApplyResourceChange) ProtoMessage() {} func (x *ApplyResourceChange) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[14] + mi := &file_tfplugin5_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -862,7 +968,7 @@ func (x *ApplyResourceChange) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyResourceChange.ProtoReflect.Descriptor instead. func (*ApplyResourceChange) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{14} + return file_tfplugin5_proto_rawDescGZIP(), []int{16} } type ImportResourceState struct { @@ -874,7 +980,7 @@ type ImportResourceState struct { func (x *ImportResourceState) Reset() { *x = ImportResourceState{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[15] + mi := &file_tfplugin5_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -887,7 +993,7 @@ func (x *ImportResourceState) String() string { func (*ImportResourceState) ProtoMessage() {} func (x *ImportResourceState) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[15] + mi := &file_tfplugin5_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -900,7 +1006,7 @@ func (x *ImportResourceState) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportResourceState.ProtoReflect.Descriptor instead. func (*ImportResourceState) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{15} + return file_tfplugin5_proto_rawDescGZIP(), []int{17} } type ReadDataSource struct { @@ -912,7 +1018,7 @@ type ReadDataSource struct { func (x *ReadDataSource) Reset() { *x = ReadDataSource{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[16] + mi := &file_tfplugin5_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -925,7 +1031,7 @@ func (x *ReadDataSource) String() string { func (*ReadDataSource) ProtoMessage() {} func (x *ReadDataSource) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[16] + mi := &file_tfplugin5_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -938,7 +1044,7 @@ func (x *ReadDataSource) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadDataSource.ProtoReflect.Descriptor instead. func (*ReadDataSource) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{16} + return file_tfplugin5_proto_rawDescGZIP(), []int{18} } type GetProvisionerSchema struct { @@ -950,7 +1056,7 @@ type GetProvisionerSchema struct { func (x *GetProvisionerSchema) Reset() { *x = GetProvisionerSchema{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[17] + mi := &file_tfplugin5_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -963,7 +1069,7 @@ func (x *GetProvisionerSchema) String() string { func (*GetProvisionerSchema) ProtoMessage() {} func (x *GetProvisionerSchema) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[17] + mi := &file_tfplugin5_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -976,7 +1082,7 @@ func (x *GetProvisionerSchema) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProvisionerSchema.ProtoReflect.Descriptor instead. func (*GetProvisionerSchema) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{17} + return file_tfplugin5_proto_rawDescGZIP(), []int{19} } type ValidateProvisionerConfig struct { @@ -988,7 +1094,7 @@ type ValidateProvisionerConfig struct { func (x *ValidateProvisionerConfig) Reset() { *x = ValidateProvisionerConfig{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[18] + mi := &file_tfplugin5_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1001,7 +1107,7 @@ func (x *ValidateProvisionerConfig) String() string { func (*ValidateProvisionerConfig) ProtoMessage() {} func (x *ValidateProvisionerConfig) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[18] + mi := &file_tfplugin5_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1014,7 +1120,7 @@ func (x *ValidateProvisionerConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateProvisionerConfig.ProtoReflect.Descriptor instead. func (*ValidateProvisionerConfig) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{18} + return file_tfplugin5_proto_rawDescGZIP(), []int{20} } type ProvisionResource struct { @@ -1026,7 +1132,7 @@ type ProvisionResource struct { func (x *ProvisionResource) Reset() { *x = ProvisionResource{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[19] + mi := &file_tfplugin5_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1039,7 +1145,7 @@ func (x *ProvisionResource) String() string { func (*ProvisionResource) ProtoMessage() {} func (x *ProvisionResource) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[19] + mi := &file_tfplugin5_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1052,7 +1158,7 @@ func (x *ProvisionResource) ProtoReflect() protoreflect.Message { // Deprecated: Use ProvisionResource.ProtoReflect.Descriptor instead. func (*ProvisionResource) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{19} + return file_tfplugin5_proto_rawDescGZIP(), []int{21} } type AttributePath_Step struct { @@ -1061,6 +1167,7 @@ type AttributePath_Step struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Selector: + // // *AttributePath_Step_AttributeName // *AttributePath_Step_ElementKeyString // *AttributePath_Step_ElementKeyInt @@ -1070,7 +1177,7 @@ type AttributePath_Step struct { func (x *AttributePath_Step) Reset() { *x = AttributePath_Step{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[20] + mi := &file_tfplugin5_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1083,7 +1190,7 @@ func (x *AttributePath_Step) String() string { func (*AttributePath_Step) ProtoMessage() {} func (x *AttributePath_Step) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[20] + mi := &file_tfplugin5_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1162,7 +1269,7 @@ type Stop_Request struct { func (x *Stop_Request) Reset() { *x = Stop_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[21] + mi := &file_tfplugin5_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1175,7 +1282,7 @@ func (x *Stop_Request) String() string { func (*Stop_Request) ProtoMessage() {} func (x *Stop_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[21] + mi := &file_tfplugin5_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1202,7 +1309,7 @@ type Stop_Response struct { func (x *Stop_Response) Reset() { *x = Stop_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[22] + mi := &file_tfplugin5_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1215,7 +1322,7 @@ func (x *Stop_Response) String() string { func (*Stop_Response) ProtoMessage() {} func (x *Stop_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[22] + mi := &file_tfplugin5_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1254,7 +1361,7 @@ type Schema_Block struct { func (x *Schema_Block) Reset() { *x = Schema_Block{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[24] + mi := &file_tfplugin5_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1267,7 +1374,7 @@ func (x *Schema_Block) String() string { func (*Schema_Block) ProtoMessage() {} func (x *Schema_Block) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[24] + mi := &file_tfplugin5_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1344,7 +1451,7 @@ type Schema_Attribute struct { func (x *Schema_Attribute) Reset() { *x = Schema_Attribute{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[25] + mi := &file_tfplugin5_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1357,7 +1464,7 @@ func (x *Schema_Attribute) String() string { func (*Schema_Attribute) ProtoMessage() {} func (x *Schema_Attribute) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[25] + mi := &file_tfplugin5_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1451,7 +1558,7 @@ type Schema_NestedBlock struct { func (x *Schema_NestedBlock) Reset() { *x = Schema_NestedBlock{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[26] + mi := &file_tfplugin5_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1464,7 +1571,7 @@ func (x *Schema_NestedBlock) String() string { func (*Schema_NestedBlock) ProtoMessage() {} func (x *Schema_NestedBlock) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[26] + mi := &file_tfplugin5_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1515,29 +1622,29 @@ func (x *Schema_NestedBlock) GetMaxItems() int64 { return 0 } -type GetProviderSchema_Request struct { +type GetMetadata_Request struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *GetProviderSchema_Request) Reset() { - *x = GetProviderSchema_Request{} +func (x *GetMetadata_Request) Reset() { + *x = GetMetadata_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[27] + mi := &file_tfplugin5_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetProviderSchema_Request) String() string { +func (x *GetMetadata_Request) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProviderSchema_Request) ProtoMessage() {} +func (*GetMetadata_Request) ProtoMessage() {} -func (x *GetProviderSchema_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[27] +func (x *GetMetadata_Request) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin5_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1548,41 +1655,39 @@ func (x *GetProviderSchema_Request) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProviderSchema_Request.ProtoReflect.Descriptor instead. -func (*GetProviderSchema_Request) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{6, 0} +// Deprecated: Use GetMetadata_Request.ProtoReflect.Descriptor instead. +func (*GetMetadata_Request) Descriptor() ([]byte, []int) { + return file_tfplugin5_proto_rawDescGZIP(), []int{7, 0} } -type GetProviderSchema_Response struct { +type GetMetadata_Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Provider *Schema `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"` - ResourceSchemas map[string]*Schema `protobuf:"bytes,2,rep,name=resource_schemas,json=resourceSchemas,proto3" json:"resource_schemas,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - DataSourceSchemas map[string]*Schema `protobuf:"bytes,3,rep,name=data_source_schemas,json=dataSourceSchemas,proto3" json:"data_source_schemas,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Diagnostics []*Diagnostic `protobuf:"bytes,4,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` - ProviderMeta *Schema `protobuf:"bytes,5,opt,name=provider_meta,json=providerMeta,proto3" json:"provider_meta,omitempty"` - ServerCapabilities *GetProviderSchema_ServerCapabilities `protobuf:"bytes,6,opt,name=server_capabilities,json=serverCapabilities,proto3" json:"server_capabilities,omitempty"` + ServerCapabilities *ServerCapabilities `protobuf:"bytes,1,opt,name=server_capabilities,json=serverCapabilities,proto3" json:"server_capabilities,omitempty"` + Diagnostics []*Diagnostic `protobuf:"bytes,2,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` + DataSources []*GetMetadata_DataSourceMetadata `protobuf:"bytes,3,rep,name=data_sources,json=dataSources,proto3" json:"data_sources,omitempty"` + Resources []*GetMetadata_ResourceMetadata `protobuf:"bytes,4,rep,name=resources,proto3" json:"resources,omitempty"` } -func (x *GetProviderSchema_Response) Reset() { - *x = GetProviderSchema_Response{} +func (x *GetMetadata_Response) Reset() { + *x = GetMetadata_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[28] + mi := &file_tfplugin5_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetProviderSchema_Response) String() string { +func (x *GetMetadata_Response) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProviderSchema_Response) ProtoMessage() {} +func (*GetMetadata_Response) ProtoMessage() {} -func (x *GetProviderSchema_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[28] +func (x *GetMetadata_Response) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin5_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1593,84 +1698,64 @@ func (x *GetProviderSchema_Response) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProviderSchema_Response.ProtoReflect.Descriptor instead. -func (*GetProviderSchema_Response) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{6, 1} -} - -func (x *GetProviderSchema_Response) GetProvider() *Schema { - if x != nil { - return x.Provider - } - return nil -} - -func (x *GetProviderSchema_Response) GetResourceSchemas() map[string]*Schema { - if x != nil { - return x.ResourceSchemas - } - return nil +// Deprecated: Use GetMetadata_Response.ProtoReflect.Descriptor instead. +func (*GetMetadata_Response) Descriptor() ([]byte, []int) { + return file_tfplugin5_proto_rawDescGZIP(), []int{7, 1} } -func (x *GetProviderSchema_Response) GetDataSourceSchemas() map[string]*Schema { +func (x *GetMetadata_Response) GetServerCapabilities() *ServerCapabilities { if x != nil { - return x.DataSourceSchemas + return x.ServerCapabilities } return nil } -func (x *GetProviderSchema_Response) GetDiagnostics() []*Diagnostic { +func (x *GetMetadata_Response) GetDiagnostics() []*Diagnostic { if x != nil { return x.Diagnostics } return nil } -func (x *GetProviderSchema_Response) GetProviderMeta() *Schema { +func (x *GetMetadata_Response) GetDataSources() []*GetMetadata_DataSourceMetadata { if x != nil { - return x.ProviderMeta + return x.DataSources } return nil } -func (x *GetProviderSchema_Response) GetServerCapabilities() *GetProviderSchema_ServerCapabilities { +func (x *GetMetadata_Response) GetResources() []*GetMetadata_ResourceMetadata { if x != nil { - return x.ServerCapabilities + return x.Resources } return nil } -// ServerCapabilities allows providers to communicate extra information -// regarding supported protocol features. This is used to indicate -// availability of certain forward-compatible changes which may be optional -// in a major protocol version, but cannot be tested for directly. -type GetProviderSchema_ServerCapabilities struct { +type GetMetadata_DataSourceMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The plan_destroy capability signals that a provider expects a call - // to PlanResourceChange when a resource is going to be destroyed. - PlanDestroy bool `protobuf:"varint,1,opt,name=plan_destroy,json=planDestroy,proto3" json:"plan_destroy,omitempty"` + TypeName string `protobuf:"bytes,1,opt,name=type_name,json=typeName,proto3" json:"type_name,omitempty"` } -func (x *GetProviderSchema_ServerCapabilities) Reset() { - *x = GetProviderSchema_ServerCapabilities{} +func (x *GetMetadata_DataSourceMetadata) Reset() { + *x = GetMetadata_DataSourceMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[29] + mi := &file_tfplugin5_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetProviderSchema_ServerCapabilities) String() string { +func (x *GetMetadata_DataSourceMetadata) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProviderSchema_ServerCapabilities) ProtoMessage() {} +func (*GetMetadata_DataSourceMetadata) ProtoMessage() {} -func (x *GetProviderSchema_ServerCapabilities) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[29] +func (x *GetMetadata_DataSourceMetadata) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin5_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1681,28 +1766,28 @@ func (x *GetProviderSchema_ServerCapabilities) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use GetProviderSchema_ServerCapabilities.ProtoReflect.Descriptor instead. -func (*GetProviderSchema_ServerCapabilities) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{6, 2} +// Deprecated: Use GetMetadata_DataSourceMetadata.ProtoReflect.Descriptor instead. +func (*GetMetadata_DataSourceMetadata) Descriptor() ([]byte, []int) { + return file_tfplugin5_proto_rawDescGZIP(), []int{7, 2} } -func (x *GetProviderSchema_ServerCapabilities) GetPlanDestroy() bool { +func (x *GetMetadata_DataSourceMetadata) GetTypeName() string { if x != nil { - return x.PlanDestroy + return x.TypeName } - return false + return "" } -type PrepareProviderConfig_Request struct { +type GetMetadata_ResourceMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Config *DynamicValue `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + TypeName string `protobuf:"bytes,1,opt,name=type_name,json=typeName,proto3" json:"type_name,omitempty"` } -func (x *PrepareProviderConfig_Request) Reset() { - *x = PrepareProviderConfig_Request{} +func (x *GetMetadata_ResourceMetadata) Reset() { + *x = GetMetadata_ResourceMetadata{} if protoimpl.UnsafeEnabled { mi := &file_tfplugin5_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1710,13 +1795,13 @@ func (x *PrepareProviderConfig_Request) Reset() { } } -func (x *PrepareProviderConfig_Request) String() string { +func (x *GetMetadata_ResourceMetadata) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PrepareProviderConfig_Request) ProtoMessage() {} +func (*GetMetadata_ResourceMetadata) ProtoMessage() {} -func (x *PrepareProviderConfig_Request) ProtoReflect() protoreflect.Message { +func (x *GetMetadata_ResourceMetadata) ProtoReflect() protoreflect.Message { mi := &file_tfplugin5_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1728,14 +1813,186 @@ func (x *PrepareProviderConfig_Request) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PrepareProviderConfig_Request.ProtoReflect.Descriptor instead. -func (*PrepareProviderConfig_Request) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{7, 0} +// Deprecated: Use GetMetadata_ResourceMetadata.ProtoReflect.Descriptor instead. +func (*GetMetadata_ResourceMetadata) Descriptor() ([]byte, []int) { + return file_tfplugin5_proto_rawDescGZIP(), []int{7, 3} } -func (x *PrepareProviderConfig_Request) GetConfig() *DynamicValue { +func (x *GetMetadata_ResourceMetadata) GetTypeName() string { if x != nil { - return x.Config + return x.TypeName + } + return "" +} + +type GetProviderSchema_Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetProviderSchema_Request) Reset() { + *x = GetProviderSchema_Request{} + if protoimpl.UnsafeEnabled { + mi := &file_tfplugin5_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetProviderSchema_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetProviderSchema_Request) ProtoMessage() {} + +func (x *GetProviderSchema_Request) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin5_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetProviderSchema_Request.ProtoReflect.Descriptor instead. +func (*GetProviderSchema_Request) Descriptor() ([]byte, []int) { + return file_tfplugin5_proto_rawDescGZIP(), []int{8, 0} +} + +type GetProviderSchema_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Provider *Schema `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"` + ResourceSchemas map[string]*Schema `protobuf:"bytes,2,rep,name=resource_schemas,json=resourceSchemas,proto3" json:"resource_schemas,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + DataSourceSchemas map[string]*Schema `protobuf:"bytes,3,rep,name=data_source_schemas,json=dataSourceSchemas,proto3" json:"data_source_schemas,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Diagnostics []*Diagnostic `protobuf:"bytes,4,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` + ProviderMeta *Schema `protobuf:"bytes,5,opt,name=provider_meta,json=providerMeta,proto3" json:"provider_meta,omitempty"` + ServerCapabilities *ServerCapabilities `protobuf:"bytes,6,opt,name=server_capabilities,json=serverCapabilities,proto3" json:"server_capabilities,omitempty"` +} + +func (x *GetProviderSchema_Response) Reset() { + *x = GetProviderSchema_Response{} + if protoimpl.UnsafeEnabled { + mi := &file_tfplugin5_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetProviderSchema_Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetProviderSchema_Response) ProtoMessage() {} + +func (x *GetProviderSchema_Response) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin5_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetProviderSchema_Response.ProtoReflect.Descriptor instead. +func (*GetProviderSchema_Response) Descriptor() ([]byte, []int) { + return file_tfplugin5_proto_rawDescGZIP(), []int{8, 1} +} + +func (x *GetProviderSchema_Response) GetProvider() *Schema { + if x != nil { + return x.Provider + } + return nil +} + +func (x *GetProviderSchema_Response) GetResourceSchemas() map[string]*Schema { + if x != nil { + return x.ResourceSchemas + } + return nil +} + +func (x *GetProviderSchema_Response) GetDataSourceSchemas() map[string]*Schema { + if x != nil { + return x.DataSourceSchemas + } + return nil +} + +func (x *GetProviderSchema_Response) GetDiagnostics() []*Diagnostic { + if x != nil { + return x.Diagnostics + } + return nil +} + +func (x *GetProviderSchema_Response) GetProviderMeta() *Schema { + if x != nil { + return x.ProviderMeta + } + return nil +} + +func (x *GetProviderSchema_Response) GetServerCapabilities() *ServerCapabilities { + if x != nil { + return x.ServerCapabilities + } + return nil +} + +type PrepareProviderConfig_Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Config *DynamicValue `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` +} + +func (x *PrepareProviderConfig_Request) Reset() { + *x = PrepareProviderConfig_Request{} + if protoimpl.UnsafeEnabled { + mi := &file_tfplugin5_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PrepareProviderConfig_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrepareProviderConfig_Request) ProtoMessage() {} + +func (x *PrepareProviderConfig_Request) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin5_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PrepareProviderConfig_Request.ProtoReflect.Descriptor instead. +func (*PrepareProviderConfig_Request) Descriptor() ([]byte, []int) { + return file_tfplugin5_proto_rawDescGZIP(), []int{9, 0} +} + +func (x *PrepareProviderConfig_Request) GetConfig() *DynamicValue { + if x != nil { + return x.Config } return nil } @@ -1752,7 +2009,7 @@ type PrepareProviderConfig_Response struct { func (x *PrepareProviderConfig_Response) Reset() { *x = PrepareProviderConfig_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[33] + mi := &file_tfplugin5_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1765,7 +2022,7 @@ func (x *PrepareProviderConfig_Response) String() string { func (*PrepareProviderConfig_Response) ProtoMessage() {} func (x *PrepareProviderConfig_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[33] + mi := &file_tfplugin5_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1778,7 +2035,7 @@ func (x *PrepareProviderConfig_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use PrepareProviderConfig_Response.ProtoReflect.Descriptor instead. func (*PrepareProviderConfig_Response) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{7, 1} + return file_tfplugin5_proto_rawDescGZIP(), []int{9, 1} } func (x *PrepareProviderConfig_Response) GetPreparedConfig() *DynamicValue { @@ -1823,7 +2080,7 @@ type UpgradeResourceState_Request struct { func (x *UpgradeResourceState_Request) Reset() { *x = UpgradeResourceState_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[34] + mi := &file_tfplugin5_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1836,7 +2093,7 @@ func (x *UpgradeResourceState_Request) String() string { func (*UpgradeResourceState_Request) ProtoMessage() {} func (x *UpgradeResourceState_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[34] + mi := &file_tfplugin5_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1849,7 +2106,7 @@ func (x *UpgradeResourceState_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use UpgradeResourceState_Request.ProtoReflect.Descriptor instead. func (*UpgradeResourceState_Request) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{8, 0} + return file_tfplugin5_proto_rawDescGZIP(), []int{10, 0} } func (x *UpgradeResourceState_Request) GetTypeName() string { @@ -1891,7 +2148,7 @@ type UpgradeResourceState_Response struct { func (x *UpgradeResourceState_Response) Reset() { *x = UpgradeResourceState_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[35] + mi := &file_tfplugin5_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1904,7 +2161,7 @@ func (x *UpgradeResourceState_Response) String() string { func (*UpgradeResourceState_Response) ProtoMessage() {} func (x *UpgradeResourceState_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[35] + mi := &file_tfplugin5_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1917,7 +2174,7 @@ func (x *UpgradeResourceState_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use UpgradeResourceState_Response.ProtoReflect.Descriptor instead. func (*UpgradeResourceState_Response) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{8, 1} + return file_tfplugin5_proto_rawDescGZIP(), []int{10, 1} } func (x *UpgradeResourceState_Response) GetUpgradedState() *DynamicValue { @@ -1946,7 +2203,7 @@ type ValidateResourceTypeConfig_Request struct { func (x *ValidateResourceTypeConfig_Request) Reset() { *x = ValidateResourceTypeConfig_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[36] + mi := &file_tfplugin5_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1959,7 +2216,7 @@ func (x *ValidateResourceTypeConfig_Request) String() string { func (*ValidateResourceTypeConfig_Request) ProtoMessage() {} func (x *ValidateResourceTypeConfig_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[36] + mi := &file_tfplugin5_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1972,7 +2229,7 @@ func (x *ValidateResourceTypeConfig_Request) ProtoReflect() protoreflect.Message // Deprecated: Use ValidateResourceTypeConfig_Request.ProtoReflect.Descriptor instead. func (*ValidateResourceTypeConfig_Request) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{9, 0} + return file_tfplugin5_proto_rawDescGZIP(), []int{11, 0} } func (x *ValidateResourceTypeConfig_Request) GetTypeName() string { @@ -2000,7 +2257,7 @@ type ValidateResourceTypeConfig_Response struct { func (x *ValidateResourceTypeConfig_Response) Reset() { *x = ValidateResourceTypeConfig_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[37] + mi := &file_tfplugin5_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2013,7 +2270,7 @@ func (x *ValidateResourceTypeConfig_Response) String() string { func (*ValidateResourceTypeConfig_Response) ProtoMessage() {} func (x *ValidateResourceTypeConfig_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[37] + mi := &file_tfplugin5_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2026,7 +2283,7 @@ func (x *ValidateResourceTypeConfig_Response) ProtoReflect() protoreflect.Messag // Deprecated: Use ValidateResourceTypeConfig_Response.ProtoReflect.Descriptor instead. func (*ValidateResourceTypeConfig_Response) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{9, 1} + return file_tfplugin5_proto_rawDescGZIP(), []int{11, 1} } func (x *ValidateResourceTypeConfig_Response) GetDiagnostics() []*Diagnostic { @@ -2048,7 +2305,7 @@ type ValidateDataSourceConfig_Request struct { func (x *ValidateDataSourceConfig_Request) Reset() { *x = ValidateDataSourceConfig_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[38] + mi := &file_tfplugin5_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2061,7 +2318,7 @@ func (x *ValidateDataSourceConfig_Request) String() string { func (*ValidateDataSourceConfig_Request) ProtoMessage() {} func (x *ValidateDataSourceConfig_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[38] + mi := &file_tfplugin5_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2074,7 +2331,7 @@ func (x *ValidateDataSourceConfig_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateDataSourceConfig_Request.ProtoReflect.Descriptor instead. func (*ValidateDataSourceConfig_Request) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{10, 0} + return file_tfplugin5_proto_rawDescGZIP(), []int{12, 0} } func (x *ValidateDataSourceConfig_Request) GetTypeName() string { @@ -2102,7 +2359,7 @@ type ValidateDataSourceConfig_Response struct { func (x *ValidateDataSourceConfig_Response) Reset() { *x = ValidateDataSourceConfig_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[39] + mi := &file_tfplugin5_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2115,7 +2372,7 @@ func (x *ValidateDataSourceConfig_Response) String() string { func (*ValidateDataSourceConfig_Response) ProtoMessage() {} func (x *ValidateDataSourceConfig_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[39] + mi := &file_tfplugin5_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2128,7 +2385,7 @@ func (x *ValidateDataSourceConfig_Response) ProtoReflect() protoreflect.Message // Deprecated: Use ValidateDataSourceConfig_Response.ProtoReflect.Descriptor instead. func (*ValidateDataSourceConfig_Response) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{10, 1} + return file_tfplugin5_proto_rawDescGZIP(), []int{12, 1} } func (x *ValidateDataSourceConfig_Response) GetDiagnostics() []*Diagnostic { @@ -2150,7 +2407,7 @@ type Configure_Request struct { func (x *Configure_Request) Reset() { *x = Configure_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[40] + mi := &file_tfplugin5_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2163,7 +2420,7 @@ func (x *Configure_Request) String() string { func (*Configure_Request) ProtoMessage() {} func (x *Configure_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[40] + mi := &file_tfplugin5_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2176,7 +2433,7 @@ func (x *Configure_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use Configure_Request.ProtoReflect.Descriptor instead. func (*Configure_Request) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{11, 0} + return file_tfplugin5_proto_rawDescGZIP(), []int{13, 0} } func (x *Configure_Request) GetTerraformVersion() string { @@ -2204,7 +2461,7 @@ type Configure_Response struct { func (x *Configure_Response) Reset() { *x = Configure_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[41] + mi := &file_tfplugin5_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2217,7 +2474,7 @@ func (x *Configure_Response) String() string { func (*Configure_Response) ProtoMessage() {} func (x *Configure_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[41] + mi := &file_tfplugin5_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2230,7 +2487,7 @@ func (x *Configure_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use Configure_Response.ProtoReflect.Descriptor instead. func (*Configure_Response) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{11, 1} + return file_tfplugin5_proto_rawDescGZIP(), []int{13, 1} } func (x *Configure_Response) GetDiagnostics() []*Diagnostic { @@ -2262,7 +2519,7 @@ type ReadResource_Request struct { func (x *ReadResource_Request) Reset() { *x = ReadResource_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[42] + mi := &file_tfplugin5_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2275,7 +2532,7 @@ func (x *ReadResource_Request) String() string { func (*ReadResource_Request) ProtoMessage() {} func (x *ReadResource_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[42] + mi := &file_tfplugin5_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2288,7 +2545,7 @@ func (x *ReadResource_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadResource_Request.ProtoReflect.Descriptor instead. func (*ReadResource_Request) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{12, 0} + return file_tfplugin5_proto_rawDescGZIP(), []int{14, 0} } func (x *ReadResource_Request) GetTypeName() string { @@ -2332,7 +2589,7 @@ type ReadResource_Response struct { func (x *ReadResource_Response) Reset() { *x = ReadResource_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[43] + mi := &file_tfplugin5_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2345,7 +2602,7 @@ func (x *ReadResource_Response) String() string { func (*ReadResource_Response) ProtoMessage() {} func (x *ReadResource_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[43] + mi := &file_tfplugin5_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2358,7 +2615,7 @@ func (x *ReadResource_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadResource_Response.ProtoReflect.Descriptor instead. func (*ReadResource_Response) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{12, 1} + return file_tfplugin5_proto_rawDescGZIP(), []int{14, 1} } func (x *ReadResource_Response) GetNewState() *DynamicValue { @@ -2398,7 +2655,7 @@ type PlanResourceChange_Request struct { func (x *PlanResourceChange_Request) Reset() { *x = PlanResourceChange_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[44] + mi := &file_tfplugin5_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2411,7 +2668,7 @@ func (x *PlanResourceChange_Request) String() string { func (*PlanResourceChange_Request) ProtoMessage() {} func (x *PlanResourceChange_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[44] + mi := &file_tfplugin5_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2424,7 +2681,7 @@ func (x *PlanResourceChange_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use PlanResourceChange_Request.ProtoReflect.Descriptor instead. func (*PlanResourceChange_Request) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{13, 0} + return file_tfplugin5_proto_rawDescGZIP(), []int{15, 0} } func (x *PlanResourceChange_Request) GetTypeName() string { @@ -2486,16 +2743,16 @@ type PlanResourceChange_Response struct { // specific details of the legacy SDK type system, and are not a general // mechanism to avoid proper type handling in providers. // - // ==== DO NOT USE THIS ==== - // ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ==== - // ==== DO NOT USE THIS ==== + // ==== DO NOT USE THIS ==== + // ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ==== + // ==== DO NOT USE THIS ==== LegacyTypeSystem bool `protobuf:"varint,5,opt,name=legacy_type_system,json=legacyTypeSystem,proto3" json:"legacy_type_system,omitempty"` } func (x *PlanResourceChange_Response) Reset() { *x = PlanResourceChange_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[45] + mi := &file_tfplugin5_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2508,7 +2765,7 @@ func (x *PlanResourceChange_Response) String() string { func (*PlanResourceChange_Response) ProtoMessage() {} func (x *PlanResourceChange_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[45] + mi := &file_tfplugin5_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2521,7 +2778,7 @@ func (x *PlanResourceChange_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use PlanResourceChange_Response.ProtoReflect.Descriptor instead. func (*PlanResourceChange_Response) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{13, 1} + return file_tfplugin5_proto_rawDescGZIP(), []int{15, 1} } func (x *PlanResourceChange_Response) GetPlannedState() *DynamicValue { @@ -2575,7 +2832,7 @@ type ApplyResourceChange_Request struct { func (x *ApplyResourceChange_Request) Reset() { *x = ApplyResourceChange_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[46] + mi := &file_tfplugin5_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2588,7 +2845,7 @@ func (x *ApplyResourceChange_Request) String() string { func (*ApplyResourceChange_Request) ProtoMessage() {} func (x *ApplyResourceChange_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[46] + mi := &file_tfplugin5_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2601,7 +2858,7 @@ func (x *ApplyResourceChange_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyResourceChange_Request.ProtoReflect.Descriptor instead. func (*ApplyResourceChange_Request) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{14, 0} + return file_tfplugin5_proto_rawDescGZIP(), []int{16, 0} } func (x *ApplyResourceChange_Request) GetTypeName() string { @@ -2662,16 +2919,16 @@ type ApplyResourceChange_Response struct { // specific details of the legacy SDK type system, and are not a general // mechanism to avoid proper type handling in providers. // - // ==== DO NOT USE THIS ==== - // ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ==== - // ==== DO NOT USE THIS ==== + // ==== DO NOT USE THIS ==== + // ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ==== + // ==== DO NOT USE THIS ==== LegacyTypeSystem bool `protobuf:"varint,4,opt,name=legacy_type_system,json=legacyTypeSystem,proto3" json:"legacy_type_system,omitempty"` } func (x *ApplyResourceChange_Response) Reset() { *x = ApplyResourceChange_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[47] + mi := &file_tfplugin5_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2684,7 +2941,7 @@ func (x *ApplyResourceChange_Response) String() string { func (*ApplyResourceChange_Response) ProtoMessage() {} func (x *ApplyResourceChange_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[47] + mi := &file_tfplugin5_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2697,7 +2954,7 @@ func (x *ApplyResourceChange_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyResourceChange_Response.ProtoReflect.Descriptor instead. func (*ApplyResourceChange_Response) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{14, 1} + return file_tfplugin5_proto_rawDescGZIP(), []int{16, 1} } func (x *ApplyResourceChange_Response) GetNewState() *DynamicValue { @@ -2740,7 +2997,7 @@ type ImportResourceState_Request struct { func (x *ImportResourceState_Request) Reset() { *x = ImportResourceState_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[48] + mi := &file_tfplugin5_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2753,7 +3010,7 @@ func (x *ImportResourceState_Request) String() string { func (*ImportResourceState_Request) ProtoMessage() {} func (x *ImportResourceState_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[48] + mi := &file_tfplugin5_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2766,7 +3023,7 @@ func (x *ImportResourceState_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportResourceState_Request.ProtoReflect.Descriptor instead. func (*ImportResourceState_Request) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{15, 0} + return file_tfplugin5_proto_rawDescGZIP(), []int{17, 0} } func (x *ImportResourceState_Request) GetTypeName() string { @@ -2796,7 +3053,7 @@ type ImportResourceState_ImportedResource struct { func (x *ImportResourceState_ImportedResource) Reset() { *x = ImportResourceState_ImportedResource{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[49] + mi := &file_tfplugin5_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2809,7 +3066,7 @@ func (x *ImportResourceState_ImportedResource) String() string { func (*ImportResourceState_ImportedResource) ProtoMessage() {} func (x *ImportResourceState_ImportedResource) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[49] + mi := &file_tfplugin5_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2822,7 +3079,7 @@ func (x *ImportResourceState_ImportedResource) ProtoReflect() protoreflect.Messa // Deprecated: Use ImportResourceState_ImportedResource.ProtoReflect.Descriptor instead. func (*ImportResourceState_ImportedResource) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{15, 1} + return file_tfplugin5_proto_rawDescGZIP(), []int{17, 1} } func (x *ImportResourceState_ImportedResource) GetTypeName() string { @@ -2858,7 +3115,7 @@ type ImportResourceState_Response struct { func (x *ImportResourceState_Response) Reset() { *x = ImportResourceState_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[50] + mi := &file_tfplugin5_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2871,7 +3128,7 @@ func (x *ImportResourceState_Response) String() string { func (*ImportResourceState_Response) ProtoMessage() {} func (x *ImportResourceState_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[50] + mi := &file_tfplugin5_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2884,7 +3141,7 @@ func (x *ImportResourceState_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportResourceState_Response.ProtoReflect.Descriptor instead. func (*ImportResourceState_Response) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{15, 2} + return file_tfplugin5_proto_rawDescGZIP(), []int{17, 2} } func (x *ImportResourceState_Response) GetImportedResources() []*ImportResourceState_ImportedResource { @@ -2914,7 +3171,7 @@ type ReadDataSource_Request struct { func (x *ReadDataSource_Request) Reset() { *x = ReadDataSource_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[51] + mi := &file_tfplugin5_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2927,7 +3184,7 @@ func (x *ReadDataSource_Request) String() string { func (*ReadDataSource_Request) ProtoMessage() {} func (x *ReadDataSource_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[51] + mi := &file_tfplugin5_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2940,7 +3197,7 @@ func (x *ReadDataSource_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadDataSource_Request.ProtoReflect.Descriptor instead. func (*ReadDataSource_Request) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{16, 0} + return file_tfplugin5_proto_rawDescGZIP(), []int{18, 0} } func (x *ReadDataSource_Request) GetTypeName() string { @@ -2976,7 +3233,7 @@ type ReadDataSource_Response struct { func (x *ReadDataSource_Response) Reset() { *x = ReadDataSource_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[52] + mi := &file_tfplugin5_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2989,7 +3246,7 @@ func (x *ReadDataSource_Response) String() string { func (*ReadDataSource_Response) ProtoMessage() {} func (x *ReadDataSource_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[52] + mi := &file_tfplugin5_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3002,7 +3259,7 @@ func (x *ReadDataSource_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadDataSource_Response.ProtoReflect.Descriptor instead. func (*ReadDataSource_Response) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{16, 1} + return file_tfplugin5_proto_rawDescGZIP(), []int{18, 1} } func (x *ReadDataSource_Response) GetState() *DynamicValue { @@ -3028,7 +3285,7 @@ type GetProvisionerSchema_Request struct { func (x *GetProvisionerSchema_Request) Reset() { *x = GetProvisionerSchema_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[53] + mi := &file_tfplugin5_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3041,7 +3298,7 @@ func (x *GetProvisionerSchema_Request) String() string { func (*GetProvisionerSchema_Request) ProtoMessage() {} func (x *GetProvisionerSchema_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[53] + mi := &file_tfplugin5_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3054,7 +3311,7 @@ func (x *GetProvisionerSchema_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProvisionerSchema_Request.ProtoReflect.Descriptor instead. func (*GetProvisionerSchema_Request) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{17, 0} + return file_tfplugin5_proto_rawDescGZIP(), []int{19, 0} } type GetProvisionerSchema_Response struct { @@ -3069,7 +3326,7 @@ type GetProvisionerSchema_Response struct { func (x *GetProvisionerSchema_Response) Reset() { *x = GetProvisionerSchema_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[54] + mi := &file_tfplugin5_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3082,7 +3339,7 @@ func (x *GetProvisionerSchema_Response) String() string { func (*GetProvisionerSchema_Response) ProtoMessage() {} func (x *GetProvisionerSchema_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[54] + mi := &file_tfplugin5_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3095,7 +3352,7 @@ func (x *GetProvisionerSchema_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProvisionerSchema_Response.ProtoReflect.Descriptor instead. func (*GetProvisionerSchema_Response) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{17, 1} + return file_tfplugin5_proto_rawDescGZIP(), []int{19, 1} } func (x *GetProvisionerSchema_Response) GetProvisioner() *Schema { @@ -3123,7 +3380,7 @@ type ValidateProvisionerConfig_Request struct { func (x *ValidateProvisionerConfig_Request) Reset() { *x = ValidateProvisionerConfig_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[55] + mi := &file_tfplugin5_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3136,7 +3393,7 @@ func (x *ValidateProvisionerConfig_Request) String() string { func (*ValidateProvisionerConfig_Request) ProtoMessage() {} func (x *ValidateProvisionerConfig_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[55] + mi := &file_tfplugin5_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3149,7 +3406,7 @@ func (x *ValidateProvisionerConfig_Request) ProtoReflect() protoreflect.Message // Deprecated: Use ValidateProvisionerConfig_Request.ProtoReflect.Descriptor instead. func (*ValidateProvisionerConfig_Request) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{18, 0} + return file_tfplugin5_proto_rawDescGZIP(), []int{20, 0} } func (x *ValidateProvisionerConfig_Request) GetConfig() *DynamicValue { @@ -3170,7 +3427,7 @@ type ValidateProvisionerConfig_Response struct { func (x *ValidateProvisionerConfig_Response) Reset() { *x = ValidateProvisionerConfig_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[56] + mi := &file_tfplugin5_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3183,7 +3440,7 @@ func (x *ValidateProvisionerConfig_Response) String() string { func (*ValidateProvisionerConfig_Response) ProtoMessage() {} func (x *ValidateProvisionerConfig_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[56] + mi := &file_tfplugin5_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3196,7 +3453,7 @@ func (x *ValidateProvisionerConfig_Response) ProtoReflect() protoreflect.Message // Deprecated: Use ValidateProvisionerConfig_Response.ProtoReflect.Descriptor instead. func (*ValidateProvisionerConfig_Response) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{18, 1} + return file_tfplugin5_proto_rawDescGZIP(), []int{20, 1} } func (x *ValidateProvisionerConfig_Response) GetDiagnostics() []*Diagnostic { @@ -3218,7 +3475,7 @@ type ProvisionResource_Request struct { func (x *ProvisionResource_Request) Reset() { *x = ProvisionResource_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[57] + mi := &file_tfplugin5_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3231,7 +3488,7 @@ func (x *ProvisionResource_Request) String() string { func (*ProvisionResource_Request) ProtoMessage() {} func (x *ProvisionResource_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[57] + mi := &file_tfplugin5_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3244,7 +3501,7 @@ func (x *ProvisionResource_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ProvisionResource_Request.ProtoReflect.Descriptor instead. func (*ProvisionResource_Request) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{19, 0} + return file_tfplugin5_proto_rawDescGZIP(), []int{21, 0} } func (x *ProvisionResource_Request) GetConfig() *DynamicValue { @@ -3273,7 +3530,7 @@ type ProvisionResource_Response struct { func (x *ProvisionResource_Response) Reset() { *x = ProvisionResource_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin5_proto_msgTypes[58] + mi := &file_tfplugin5_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3286,7 +3543,7 @@ func (x *ProvisionResource_Response) String() string { func (*ProvisionResource_Response) ProtoMessage() {} func (x *ProvisionResource_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin5_proto_msgTypes[58] + mi := &file_tfplugin5_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3299,7 +3556,7 @@ func (x *ProvisionResource_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use ProvisionResource_Response.ProtoReflect.Descriptor instead. func (*ProvisionResource_Response) Descriptor() ([]byte, []int) { - return file_tfplugin5_proto_rawDescGZIP(), []int{19, 1} + return file_tfplugin5_proto_rawDescGZIP(), []int{21, 1} } func (x *ProvisionResource_Response) GetOutput() string { @@ -3426,396 +3683,431 @@ var file_tfplugin5_proto_rawDesc = []byte{ 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x45, 0x54, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x41, 0x50, 0x10, - 0x04, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x05, 0x22, 0xeb, 0x05, 0x0a, - 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x91, 0x05, - 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, - 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x65, 0x0a, 0x10, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, - 0x12, 0x6c, 0x0a, 0x13, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, - 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x64, 0x61, 0x74, - 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x37, - 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, + 0x04, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x05, 0x22, 0x78, 0x0a, 0x12, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x72, + 0x6f, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x6e, 0x44, 0x65, + 0x73, 0x74, 0x72, 0x6f, 0x79, 0x12, 0x3f, 0x0a, 0x1c, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x67, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xa7, 0x03, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0xa8, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, + 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x66, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x37, + 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, - 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x36, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, - 0x60, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x74, - 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x12, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x1a, 0x55, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x66, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, 0x0a, 0x16, 0x44, 0x61, 0x74, 0x61, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, - 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x1a, 0x37, 0x0a, 0x12, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x6e, 0x5f, - 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, - 0x6c, 0x61, 0x6e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x22, 0xdb, 0x01, 0x0a, 0x15, 0x50, - 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x3a, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, - 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x1a, 0x85, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, - 0x0f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0e, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, - 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, - 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0x90, 0x02, 0x0a, 0x14, 0x55, 0x70, 0x67, - 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x1a, 0x72, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x35, 0x2e, 0x52, 0x61, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x61, 0x77, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x83, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0e, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, + 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x1a, 0x31, 0x0a, 0x12, + 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x1a, + 0x2f, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0xa0, 0x05, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0xff, 0x04, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x65, 0x0a, + 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x35, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x73, 0x12, 0x6c, 0x0a, 0x13, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3c, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x11, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, - 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x1a, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x57, 0x0a, 0x07, 0x52, 0x65, + 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x36, 0x0a, 0x0d, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x12, 0x4e, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, + 0x12, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x1a, 0x55, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, + 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, 0x0a, 0x16, 0x44, 0x61, + 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x35, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0xdb, 0x01, 0x0a, 0x15, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x3a, 0x0a, + 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x85, 0x01, 0x0a, 0x08, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, + 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, + 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, + 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, + 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, + 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, + 0x73, 0x22, 0x90, 0x02, 0x0a, 0x14, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x72, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, + 0x72, 0x61, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x52, 0x61, 0x77, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x61, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x83, + 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0e, 0x75, + 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, + 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x75, 0x70, + 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, + 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x1a, 0x57, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, + 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x43, 0x0a, 0x08, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, + 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, + 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, + 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x18, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x57, + 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, + 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x43, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, + 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0xb9, 0x01, 0x0a, + 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x1a, 0x67, 0x0a, 0x07, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x65, 0x72, 0x72, 0x61, 0x66, 0x6f, + 0x72, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x74, 0x65, 0x72, 0x72, 0x61, 0x66, 0x6f, 0x72, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x43, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, - 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x18, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x57, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, - 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, - 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x43, - 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, - 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, - 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, - 0x69, 0x63, 0x73, 0x22, 0xb9, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x65, 0x1a, 0x67, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, - 0x74, 0x65, 0x72, 0x72, 0x61, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x65, 0x72, 0x72, 0x61, 0x66, 0x6f, - 0x72, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x61, + 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xbc, 0x01, 0x0a, 0x07, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x43, 0x0a, 0x08, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, - 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, - 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, - 0xe3, 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x1a, 0xbc, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, - 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, - 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x75, 0x65, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, + 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0x93, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x1a, - 0x93, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x09, - 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, - 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, - 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0xf2, 0x04, 0x0a, 0x12, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0xbb, 0x02, 0x0a, - 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x45, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x77, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x4e, 0x65, - 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0d, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, - 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0x9d, 0x02, 0x0a, 0x08, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x6e, 0x6e, - 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, - 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, - 0x72, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6c, - 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, - 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, - 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x2c, 0x0a, 0x12, - 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x92, 0x04, 0x0a, 0x13, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x1a, 0xb6, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, - 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, - 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, - 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, + 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, + 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0xf2, + 0x04, 0x0a, 0x12, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0xbb, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, + 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, - 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, - 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, - 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, - 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x06, + 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x45, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, - 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0xc1, 0x01, 0x0a, 0x08, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, - 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, - 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, - 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6c, - 0x65, 0x67, 0x61, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, - 0xed, 0x02, 0x0a, 0x13, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x36, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x1a, - 0x78, 0x0a, 0x10, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, - 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x1a, 0xa3, 0x01, 0x0a, 0x08, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x12, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x49, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x52, 0x11, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, - 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, - 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, - 0x9c, 0x02, 0x0a, 0x0e, 0x52, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x1a, 0x95, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, - 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3c, 0x0a, 0x0d, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, - 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0x72, 0x0a, 0x08, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, - 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0x9b, - 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, - 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x78, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, - 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, - 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, - 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, - 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0x9c, 0x01, 0x0a, - 0x19, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x3a, 0x0a, 0x07, 0x52, 0x65, + 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x50, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, + 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x1a, 0x9d, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x43, + 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x70, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x6c, + 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, + 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, + 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x10, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x22, 0x92, 0x04, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0xb6, 0x02, 0x0a, 0x07, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3c, + 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, + 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x06, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, + 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x0a, + 0x0f, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, + 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x1a, 0xc1, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x34, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, + 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6e, + 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, + 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x65, + 0x67, 0x61, 0x63, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0xed, 0x02, 0x0a, 0x13, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x1a, 0x36, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x1a, 0x78, 0x0a, 0x10, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x1a, 0xa3, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x5e, 0x0a, 0x12, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x66, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x11, 0x69, 0x6d, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, + 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, + 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0x9c, 0x02, 0x0a, 0x0e, 0x52, 0x65, 0x61, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x95, 0x01, 0x0a, 0x07, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, + 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, + 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x1a, 0x72, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, + 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, + 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, + 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, + 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x78, 0x0a, 0x08, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, + 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, + 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x0b, + 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, + 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x1a, 0x3a, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, + 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, + 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, + 0x43, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, + 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x22, 0xe5, 0x01, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x73, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x43, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, - 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0xe5, 0x01, 0x0a, 0x11, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x1a, 0x73, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x06, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, - 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, - 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, - 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x5b, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, - 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, - 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, - 0x69, 0x63, 0x73, 0x2a, 0x25, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4b, 0x69, 0x6e, - 0x64, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, - 0x4d, 0x41, 0x52, 0x4b, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x32, 0x97, 0x09, 0x0a, 0x08, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x58, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x12, 0x24, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x66, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x6c, 0x0a, 0x15, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x28, 0x2e, 0x74, 0x66, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, - 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x7b, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2d, 0x2e, - 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x74, - 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x18, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2b, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x35, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x14, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x74, 0x66, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, + 0x5b, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, + 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2a, 0x25, 0x0a, 0x0a, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, + 0x41, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x41, 0x52, 0x4b, 0x44, 0x4f, 0x57, + 0x4e, 0x10, 0x01, 0x32, 0xe7, 0x09, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x12, 0x4e, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x1e, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1f, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x58, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x24, 0x2e, + 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x15, 0x50, 0x72, + 0x65, 0x70, 0x61, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x28, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, + 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, + 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, + 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2d, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x35, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x35, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x18, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x2b, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, + 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x14, + 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, - 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x1c, 0x2e, 0x74, 0x66, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74, 0x66, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x64, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x74, 0x66, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x12, 0x50, - 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x12, 0x25, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x50, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, + 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, + 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x65, 0x12, 0x1c, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x51, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x1f, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x52, 0x65, + 0x61, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x52, + 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x12, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x25, 0x2e, 0x74, 0x66, 0x70, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x66, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x35, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x27, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x13, 0x49, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x26, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x49, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x35, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x57, 0x0a, 0x0e, 0x52, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x21, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x52, - 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x35, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x53, 0x74, 0x6f, - 0x70, 0x12, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x53, 0x74, - 0x6f, 0x70, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x74, 0x66, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x86, 0x03, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x65, 0x72, 0x12, 0x5e, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x12, 0x27, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x47, 0x65, - 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x74, 0x66, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x19, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x2c, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, - 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2d, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, - 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x12, 0x24, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x66, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x30, 0x01, 0x12, 0x39, 0x0a, 0x04, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x17, 0x2e, 0x74, 0x66, 0x70, + 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x13, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x26, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x66, 0x0a, 0x13, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x27, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x52, 0x65, 0x61, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x21, 0x2e, 0x74, 0x66, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, + 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, - 0x53, 0x74, 0x6f, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x47, 0x5a, - 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, - 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x74, 0x65, 0x72, 0x72, 0x61, 0x66, 0x6f, 0x72, 0x6d, 0x2d, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x66, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x76, 0x35, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x66, 0x70, - 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x53, 0x74, 0x6f, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x86, 0x03, + 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x12, 0x5e, 0x0a, + 0x09, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x27, 0x2e, 0x74, 0x66, 0x70, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, + 0x19, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x2e, 0x74, 0x66, 0x70, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x24, 0x2e, 0x74, + 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x04, 0x53, + 0x74, 0x6f, 0x70, 0x12, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, + 0x53, 0x74, 0x6f, 0x70, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x74, + 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x2e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x47, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x74, + 0x65, 0x72, 0x72, 0x61, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2d, + 0x67, 0x6f, 0x2f, 0x74, 0x66, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x76, 0x35, 0x2f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x35, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3831,7 +4123,7 @@ func file_tfplugin5_proto_rawDescGZIP() []byte { } var file_tfplugin5_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_tfplugin5_proto_msgTypes = make([]protoimpl.MessageInfo, 59) +var file_tfplugin5_proto_msgTypes = make([]protoimpl.MessageInfo, 64) var file_tfplugin5_proto_goTypes = []interface{}{ (StringKind)(0), // 0: tfplugin5.StringKind (Diagnostic_Severity)(0), // 1: tfplugin5.Diagnostic.Severity @@ -3842,160 +4134,171 @@ var file_tfplugin5_proto_goTypes = []interface{}{ (*Stop)(nil), // 6: tfplugin5.Stop (*RawState)(nil), // 7: tfplugin5.RawState (*Schema)(nil), // 8: tfplugin5.Schema - (*GetProviderSchema)(nil), // 9: tfplugin5.GetProviderSchema - (*PrepareProviderConfig)(nil), // 10: tfplugin5.PrepareProviderConfig - (*UpgradeResourceState)(nil), // 11: tfplugin5.UpgradeResourceState - (*ValidateResourceTypeConfig)(nil), // 12: tfplugin5.ValidateResourceTypeConfig - (*ValidateDataSourceConfig)(nil), // 13: tfplugin5.ValidateDataSourceConfig - (*Configure)(nil), // 14: tfplugin5.Configure - (*ReadResource)(nil), // 15: tfplugin5.ReadResource - (*PlanResourceChange)(nil), // 16: tfplugin5.PlanResourceChange - (*ApplyResourceChange)(nil), // 17: tfplugin5.ApplyResourceChange - (*ImportResourceState)(nil), // 18: tfplugin5.ImportResourceState - (*ReadDataSource)(nil), // 19: tfplugin5.ReadDataSource - (*GetProvisionerSchema)(nil), // 20: tfplugin5.GetProvisionerSchema - (*ValidateProvisionerConfig)(nil), // 21: tfplugin5.ValidateProvisionerConfig - (*ProvisionResource)(nil), // 22: tfplugin5.ProvisionResource - (*AttributePath_Step)(nil), // 23: tfplugin5.AttributePath.Step - (*Stop_Request)(nil), // 24: tfplugin5.Stop.Request - (*Stop_Response)(nil), // 25: tfplugin5.Stop.Response - nil, // 26: tfplugin5.RawState.FlatmapEntry - (*Schema_Block)(nil), // 27: tfplugin5.Schema.Block - (*Schema_Attribute)(nil), // 28: tfplugin5.Schema.Attribute - (*Schema_NestedBlock)(nil), // 29: tfplugin5.Schema.NestedBlock - (*GetProviderSchema_Request)(nil), // 30: tfplugin5.GetProviderSchema.Request - (*GetProviderSchema_Response)(nil), // 31: tfplugin5.GetProviderSchema.Response - (*GetProviderSchema_ServerCapabilities)(nil), // 32: tfplugin5.GetProviderSchema.ServerCapabilities - nil, // 33: tfplugin5.GetProviderSchema.Response.ResourceSchemasEntry - nil, // 34: tfplugin5.GetProviderSchema.Response.DataSourceSchemasEntry - (*PrepareProviderConfig_Request)(nil), // 35: tfplugin5.PrepareProviderConfig.Request - (*PrepareProviderConfig_Response)(nil), // 36: tfplugin5.PrepareProviderConfig.Response - (*UpgradeResourceState_Request)(nil), // 37: tfplugin5.UpgradeResourceState.Request - (*UpgradeResourceState_Response)(nil), // 38: tfplugin5.UpgradeResourceState.Response - (*ValidateResourceTypeConfig_Request)(nil), // 39: tfplugin5.ValidateResourceTypeConfig.Request - (*ValidateResourceTypeConfig_Response)(nil), // 40: tfplugin5.ValidateResourceTypeConfig.Response - (*ValidateDataSourceConfig_Request)(nil), // 41: tfplugin5.ValidateDataSourceConfig.Request - (*ValidateDataSourceConfig_Response)(nil), // 42: tfplugin5.ValidateDataSourceConfig.Response - (*Configure_Request)(nil), // 43: tfplugin5.Configure.Request - (*Configure_Response)(nil), // 44: tfplugin5.Configure.Response - (*ReadResource_Request)(nil), // 45: tfplugin5.ReadResource.Request - (*ReadResource_Response)(nil), // 46: tfplugin5.ReadResource.Response - (*PlanResourceChange_Request)(nil), // 47: tfplugin5.PlanResourceChange.Request - (*PlanResourceChange_Response)(nil), // 48: tfplugin5.PlanResourceChange.Response - (*ApplyResourceChange_Request)(nil), // 49: tfplugin5.ApplyResourceChange.Request - (*ApplyResourceChange_Response)(nil), // 50: tfplugin5.ApplyResourceChange.Response - (*ImportResourceState_Request)(nil), // 51: tfplugin5.ImportResourceState.Request - (*ImportResourceState_ImportedResource)(nil), // 52: tfplugin5.ImportResourceState.ImportedResource - (*ImportResourceState_Response)(nil), // 53: tfplugin5.ImportResourceState.Response - (*ReadDataSource_Request)(nil), // 54: tfplugin5.ReadDataSource.Request - (*ReadDataSource_Response)(nil), // 55: tfplugin5.ReadDataSource.Response - (*GetProvisionerSchema_Request)(nil), // 56: tfplugin5.GetProvisionerSchema.Request - (*GetProvisionerSchema_Response)(nil), // 57: tfplugin5.GetProvisionerSchema.Response - (*ValidateProvisionerConfig_Request)(nil), // 58: tfplugin5.ValidateProvisionerConfig.Request - (*ValidateProvisionerConfig_Response)(nil), // 59: tfplugin5.ValidateProvisionerConfig.Response - (*ProvisionResource_Request)(nil), // 60: tfplugin5.ProvisionResource.Request - (*ProvisionResource_Response)(nil), // 61: tfplugin5.ProvisionResource.Response + (*ServerCapabilities)(nil), // 9: tfplugin5.ServerCapabilities + (*GetMetadata)(nil), // 10: tfplugin5.GetMetadata + (*GetProviderSchema)(nil), // 11: tfplugin5.GetProviderSchema + (*PrepareProviderConfig)(nil), // 12: tfplugin5.PrepareProviderConfig + (*UpgradeResourceState)(nil), // 13: tfplugin5.UpgradeResourceState + (*ValidateResourceTypeConfig)(nil), // 14: tfplugin5.ValidateResourceTypeConfig + (*ValidateDataSourceConfig)(nil), // 15: tfplugin5.ValidateDataSourceConfig + (*Configure)(nil), // 16: tfplugin5.Configure + (*ReadResource)(nil), // 17: tfplugin5.ReadResource + (*PlanResourceChange)(nil), // 18: tfplugin5.PlanResourceChange + (*ApplyResourceChange)(nil), // 19: tfplugin5.ApplyResourceChange + (*ImportResourceState)(nil), // 20: tfplugin5.ImportResourceState + (*ReadDataSource)(nil), // 21: tfplugin5.ReadDataSource + (*GetProvisionerSchema)(nil), // 22: tfplugin5.GetProvisionerSchema + (*ValidateProvisionerConfig)(nil), // 23: tfplugin5.ValidateProvisionerConfig + (*ProvisionResource)(nil), // 24: tfplugin5.ProvisionResource + (*AttributePath_Step)(nil), // 25: tfplugin5.AttributePath.Step + (*Stop_Request)(nil), // 26: tfplugin5.Stop.Request + (*Stop_Response)(nil), // 27: tfplugin5.Stop.Response + nil, // 28: tfplugin5.RawState.FlatmapEntry + (*Schema_Block)(nil), // 29: tfplugin5.Schema.Block + (*Schema_Attribute)(nil), // 30: tfplugin5.Schema.Attribute + (*Schema_NestedBlock)(nil), // 31: tfplugin5.Schema.NestedBlock + (*GetMetadata_Request)(nil), // 32: tfplugin5.GetMetadata.Request + (*GetMetadata_Response)(nil), // 33: tfplugin5.GetMetadata.Response + (*GetMetadata_DataSourceMetadata)(nil), // 34: tfplugin5.GetMetadata.DataSourceMetadata + (*GetMetadata_ResourceMetadata)(nil), // 35: tfplugin5.GetMetadata.ResourceMetadata + (*GetProviderSchema_Request)(nil), // 36: tfplugin5.GetProviderSchema.Request + (*GetProviderSchema_Response)(nil), // 37: tfplugin5.GetProviderSchema.Response + nil, // 38: tfplugin5.GetProviderSchema.Response.ResourceSchemasEntry + nil, // 39: tfplugin5.GetProviderSchema.Response.DataSourceSchemasEntry + (*PrepareProviderConfig_Request)(nil), // 40: tfplugin5.PrepareProviderConfig.Request + (*PrepareProviderConfig_Response)(nil), // 41: tfplugin5.PrepareProviderConfig.Response + (*UpgradeResourceState_Request)(nil), // 42: tfplugin5.UpgradeResourceState.Request + (*UpgradeResourceState_Response)(nil), // 43: tfplugin5.UpgradeResourceState.Response + (*ValidateResourceTypeConfig_Request)(nil), // 44: tfplugin5.ValidateResourceTypeConfig.Request + (*ValidateResourceTypeConfig_Response)(nil), // 45: tfplugin5.ValidateResourceTypeConfig.Response + (*ValidateDataSourceConfig_Request)(nil), // 46: tfplugin5.ValidateDataSourceConfig.Request + (*ValidateDataSourceConfig_Response)(nil), // 47: tfplugin5.ValidateDataSourceConfig.Response + (*Configure_Request)(nil), // 48: tfplugin5.Configure.Request + (*Configure_Response)(nil), // 49: tfplugin5.Configure.Response + (*ReadResource_Request)(nil), // 50: tfplugin5.ReadResource.Request + (*ReadResource_Response)(nil), // 51: tfplugin5.ReadResource.Response + (*PlanResourceChange_Request)(nil), // 52: tfplugin5.PlanResourceChange.Request + (*PlanResourceChange_Response)(nil), // 53: tfplugin5.PlanResourceChange.Response + (*ApplyResourceChange_Request)(nil), // 54: tfplugin5.ApplyResourceChange.Request + (*ApplyResourceChange_Response)(nil), // 55: tfplugin5.ApplyResourceChange.Response + (*ImportResourceState_Request)(nil), // 56: tfplugin5.ImportResourceState.Request + (*ImportResourceState_ImportedResource)(nil), // 57: tfplugin5.ImportResourceState.ImportedResource + (*ImportResourceState_Response)(nil), // 58: tfplugin5.ImportResourceState.Response + (*ReadDataSource_Request)(nil), // 59: tfplugin5.ReadDataSource.Request + (*ReadDataSource_Response)(nil), // 60: tfplugin5.ReadDataSource.Response + (*GetProvisionerSchema_Request)(nil), // 61: tfplugin5.GetProvisionerSchema.Request + (*GetProvisionerSchema_Response)(nil), // 62: tfplugin5.GetProvisionerSchema.Response + (*ValidateProvisionerConfig_Request)(nil), // 63: tfplugin5.ValidateProvisionerConfig.Request + (*ValidateProvisionerConfig_Response)(nil), // 64: tfplugin5.ValidateProvisionerConfig.Response + (*ProvisionResource_Request)(nil), // 65: tfplugin5.ProvisionResource.Request + (*ProvisionResource_Response)(nil), // 66: tfplugin5.ProvisionResource.Response } var file_tfplugin5_proto_depIdxs = []int32{ 1, // 0: tfplugin5.Diagnostic.severity:type_name -> tfplugin5.Diagnostic.Severity 5, // 1: tfplugin5.Diagnostic.attribute:type_name -> tfplugin5.AttributePath - 23, // 2: tfplugin5.AttributePath.steps:type_name -> tfplugin5.AttributePath.Step - 26, // 3: tfplugin5.RawState.flatmap:type_name -> tfplugin5.RawState.FlatmapEntry - 27, // 4: tfplugin5.Schema.block:type_name -> tfplugin5.Schema.Block - 28, // 5: tfplugin5.Schema.Block.attributes:type_name -> tfplugin5.Schema.Attribute - 29, // 6: tfplugin5.Schema.Block.block_types:type_name -> tfplugin5.Schema.NestedBlock + 25, // 2: tfplugin5.AttributePath.steps:type_name -> tfplugin5.AttributePath.Step + 28, // 3: tfplugin5.RawState.flatmap:type_name -> tfplugin5.RawState.FlatmapEntry + 29, // 4: tfplugin5.Schema.block:type_name -> tfplugin5.Schema.Block + 30, // 5: tfplugin5.Schema.Block.attributes:type_name -> tfplugin5.Schema.Attribute + 31, // 6: tfplugin5.Schema.Block.block_types:type_name -> tfplugin5.Schema.NestedBlock 0, // 7: tfplugin5.Schema.Block.description_kind:type_name -> tfplugin5.StringKind 0, // 8: tfplugin5.Schema.Attribute.description_kind:type_name -> tfplugin5.StringKind - 27, // 9: tfplugin5.Schema.NestedBlock.block:type_name -> tfplugin5.Schema.Block + 29, // 9: tfplugin5.Schema.NestedBlock.block:type_name -> tfplugin5.Schema.Block 2, // 10: tfplugin5.Schema.NestedBlock.nesting:type_name -> tfplugin5.Schema.NestedBlock.NestingMode - 8, // 11: tfplugin5.GetProviderSchema.Response.provider:type_name -> tfplugin5.Schema - 33, // 12: tfplugin5.GetProviderSchema.Response.resource_schemas:type_name -> tfplugin5.GetProviderSchema.Response.ResourceSchemasEntry - 34, // 13: tfplugin5.GetProviderSchema.Response.data_source_schemas:type_name -> tfplugin5.GetProviderSchema.Response.DataSourceSchemasEntry - 4, // 14: tfplugin5.GetProviderSchema.Response.diagnostics:type_name -> tfplugin5.Diagnostic - 8, // 15: tfplugin5.GetProviderSchema.Response.provider_meta:type_name -> tfplugin5.Schema - 32, // 16: tfplugin5.GetProviderSchema.Response.server_capabilities:type_name -> tfplugin5.GetProviderSchema.ServerCapabilities - 8, // 17: tfplugin5.GetProviderSchema.Response.ResourceSchemasEntry.value:type_name -> tfplugin5.Schema - 8, // 18: tfplugin5.GetProviderSchema.Response.DataSourceSchemasEntry.value:type_name -> tfplugin5.Schema - 3, // 19: tfplugin5.PrepareProviderConfig.Request.config:type_name -> tfplugin5.DynamicValue - 3, // 20: tfplugin5.PrepareProviderConfig.Response.prepared_config:type_name -> tfplugin5.DynamicValue - 4, // 21: tfplugin5.PrepareProviderConfig.Response.diagnostics:type_name -> tfplugin5.Diagnostic - 7, // 22: tfplugin5.UpgradeResourceState.Request.raw_state:type_name -> tfplugin5.RawState - 3, // 23: tfplugin5.UpgradeResourceState.Response.upgraded_state:type_name -> tfplugin5.DynamicValue - 4, // 24: tfplugin5.UpgradeResourceState.Response.diagnostics:type_name -> tfplugin5.Diagnostic - 3, // 25: tfplugin5.ValidateResourceTypeConfig.Request.config:type_name -> tfplugin5.DynamicValue - 4, // 26: tfplugin5.ValidateResourceTypeConfig.Response.diagnostics:type_name -> tfplugin5.Diagnostic - 3, // 27: tfplugin5.ValidateDataSourceConfig.Request.config:type_name -> tfplugin5.DynamicValue - 4, // 28: tfplugin5.ValidateDataSourceConfig.Response.diagnostics:type_name -> tfplugin5.Diagnostic - 3, // 29: tfplugin5.Configure.Request.config:type_name -> tfplugin5.DynamicValue - 4, // 30: tfplugin5.Configure.Response.diagnostics:type_name -> tfplugin5.Diagnostic - 3, // 31: tfplugin5.ReadResource.Request.current_state:type_name -> tfplugin5.DynamicValue - 3, // 32: tfplugin5.ReadResource.Request.provider_meta:type_name -> tfplugin5.DynamicValue - 3, // 33: tfplugin5.ReadResource.Response.new_state:type_name -> tfplugin5.DynamicValue - 4, // 34: tfplugin5.ReadResource.Response.diagnostics:type_name -> tfplugin5.Diagnostic - 3, // 35: tfplugin5.PlanResourceChange.Request.prior_state:type_name -> tfplugin5.DynamicValue - 3, // 36: tfplugin5.PlanResourceChange.Request.proposed_new_state:type_name -> tfplugin5.DynamicValue - 3, // 37: tfplugin5.PlanResourceChange.Request.config:type_name -> tfplugin5.DynamicValue - 3, // 38: tfplugin5.PlanResourceChange.Request.provider_meta:type_name -> tfplugin5.DynamicValue - 3, // 39: tfplugin5.PlanResourceChange.Response.planned_state:type_name -> tfplugin5.DynamicValue - 5, // 40: tfplugin5.PlanResourceChange.Response.requires_replace:type_name -> tfplugin5.AttributePath - 4, // 41: tfplugin5.PlanResourceChange.Response.diagnostics:type_name -> tfplugin5.Diagnostic - 3, // 42: tfplugin5.ApplyResourceChange.Request.prior_state:type_name -> tfplugin5.DynamicValue - 3, // 43: tfplugin5.ApplyResourceChange.Request.planned_state:type_name -> tfplugin5.DynamicValue - 3, // 44: tfplugin5.ApplyResourceChange.Request.config:type_name -> tfplugin5.DynamicValue - 3, // 45: tfplugin5.ApplyResourceChange.Request.provider_meta:type_name -> tfplugin5.DynamicValue - 3, // 46: tfplugin5.ApplyResourceChange.Response.new_state:type_name -> tfplugin5.DynamicValue - 4, // 47: tfplugin5.ApplyResourceChange.Response.diagnostics:type_name -> tfplugin5.Diagnostic - 3, // 48: tfplugin5.ImportResourceState.ImportedResource.state:type_name -> tfplugin5.DynamicValue - 52, // 49: tfplugin5.ImportResourceState.Response.imported_resources:type_name -> tfplugin5.ImportResourceState.ImportedResource - 4, // 50: tfplugin5.ImportResourceState.Response.diagnostics:type_name -> tfplugin5.Diagnostic - 3, // 51: tfplugin5.ReadDataSource.Request.config:type_name -> tfplugin5.DynamicValue - 3, // 52: tfplugin5.ReadDataSource.Request.provider_meta:type_name -> tfplugin5.DynamicValue - 3, // 53: tfplugin5.ReadDataSource.Response.state:type_name -> tfplugin5.DynamicValue - 4, // 54: tfplugin5.ReadDataSource.Response.diagnostics:type_name -> tfplugin5.Diagnostic - 8, // 55: tfplugin5.GetProvisionerSchema.Response.provisioner:type_name -> tfplugin5.Schema - 4, // 56: tfplugin5.GetProvisionerSchema.Response.diagnostics:type_name -> tfplugin5.Diagnostic - 3, // 57: tfplugin5.ValidateProvisionerConfig.Request.config:type_name -> tfplugin5.DynamicValue - 4, // 58: tfplugin5.ValidateProvisionerConfig.Response.diagnostics:type_name -> tfplugin5.Diagnostic - 3, // 59: tfplugin5.ProvisionResource.Request.config:type_name -> tfplugin5.DynamicValue - 3, // 60: tfplugin5.ProvisionResource.Request.connection:type_name -> tfplugin5.DynamicValue - 4, // 61: tfplugin5.ProvisionResource.Response.diagnostics:type_name -> tfplugin5.Diagnostic - 30, // 62: tfplugin5.Provider.GetSchema:input_type -> tfplugin5.GetProviderSchema.Request - 35, // 63: tfplugin5.Provider.PrepareProviderConfig:input_type -> tfplugin5.PrepareProviderConfig.Request - 39, // 64: tfplugin5.Provider.ValidateResourceTypeConfig:input_type -> tfplugin5.ValidateResourceTypeConfig.Request - 41, // 65: tfplugin5.Provider.ValidateDataSourceConfig:input_type -> tfplugin5.ValidateDataSourceConfig.Request - 37, // 66: tfplugin5.Provider.UpgradeResourceState:input_type -> tfplugin5.UpgradeResourceState.Request - 43, // 67: tfplugin5.Provider.Configure:input_type -> tfplugin5.Configure.Request - 45, // 68: tfplugin5.Provider.ReadResource:input_type -> tfplugin5.ReadResource.Request - 47, // 69: tfplugin5.Provider.PlanResourceChange:input_type -> tfplugin5.PlanResourceChange.Request - 49, // 70: tfplugin5.Provider.ApplyResourceChange:input_type -> tfplugin5.ApplyResourceChange.Request - 51, // 71: tfplugin5.Provider.ImportResourceState:input_type -> tfplugin5.ImportResourceState.Request - 54, // 72: tfplugin5.Provider.ReadDataSource:input_type -> tfplugin5.ReadDataSource.Request - 24, // 73: tfplugin5.Provider.Stop:input_type -> tfplugin5.Stop.Request - 56, // 74: tfplugin5.Provisioner.GetSchema:input_type -> tfplugin5.GetProvisionerSchema.Request - 58, // 75: tfplugin5.Provisioner.ValidateProvisionerConfig:input_type -> tfplugin5.ValidateProvisionerConfig.Request - 60, // 76: tfplugin5.Provisioner.ProvisionResource:input_type -> tfplugin5.ProvisionResource.Request - 24, // 77: tfplugin5.Provisioner.Stop:input_type -> tfplugin5.Stop.Request - 31, // 78: tfplugin5.Provider.GetSchema:output_type -> tfplugin5.GetProviderSchema.Response - 36, // 79: tfplugin5.Provider.PrepareProviderConfig:output_type -> tfplugin5.PrepareProviderConfig.Response - 40, // 80: tfplugin5.Provider.ValidateResourceTypeConfig:output_type -> tfplugin5.ValidateResourceTypeConfig.Response - 42, // 81: tfplugin5.Provider.ValidateDataSourceConfig:output_type -> tfplugin5.ValidateDataSourceConfig.Response - 38, // 82: tfplugin5.Provider.UpgradeResourceState:output_type -> tfplugin5.UpgradeResourceState.Response - 44, // 83: tfplugin5.Provider.Configure:output_type -> tfplugin5.Configure.Response - 46, // 84: tfplugin5.Provider.ReadResource:output_type -> tfplugin5.ReadResource.Response - 48, // 85: tfplugin5.Provider.PlanResourceChange:output_type -> tfplugin5.PlanResourceChange.Response - 50, // 86: tfplugin5.Provider.ApplyResourceChange:output_type -> tfplugin5.ApplyResourceChange.Response - 53, // 87: tfplugin5.Provider.ImportResourceState:output_type -> tfplugin5.ImportResourceState.Response - 55, // 88: tfplugin5.Provider.ReadDataSource:output_type -> tfplugin5.ReadDataSource.Response - 25, // 89: tfplugin5.Provider.Stop:output_type -> tfplugin5.Stop.Response - 57, // 90: tfplugin5.Provisioner.GetSchema:output_type -> tfplugin5.GetProvisionerSchema.Response - 59, // 91: tfplugin5.Provisioner.ValidateProvisionerConfig:output_type -> tfplugin5.ValidateProvisionerConfig.Response - 61, // 92: tfplugin5.Provisioner.ProvisionResource:output_type -> tfplugin5.ProvisionResource.Response - 25, // 93: tfplugin5.Provisioner.Stop:output_type -> tfplugin5.Stop.Response - 78, // [78:94] is the sub-list for method output_type - 62, // [62:78] is the sub-list for method input_type - 62, // [62:62] is the sub-list for extension type_name - 62, // [62:62] is the sub-list for extension extendee - 0, // [0:62] is the sub-list for field type_name + 9, // 11: tfplugin5.GetMetadata.Response.server_capabilities:type_name -> tfplugin5.ServerCapabilities + 4, // 12: tfplugin5.GetMetadata.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 34, // 13: tfplugin5.GetMetadata.Response.data_sources:type_name -> tfplugin5.GetMetadata.DataSourceMetadata + 35, // 14: tfplugin5.GetMetadata.Response.resources:type_name -> tfplugin5.GetMetadata.ResourceMetadata + 8, // 15: tfplugin5.GetProviderSchema.Response.provider:type_name -> tfplugin5.Schema + 38, // 16: tfplugin5.GetProviderSchema.Response.resource_schemas:type_name -> tfplugin5.GetProviderSchema.Response.ResourceSchemasEntry + 39, // 17: tfplugin5.GetProviderSchema.Response.data_source_schemas:type_name -> tfplugin5.GetProviderSchema.Response.DataSourceSchemasEntry + 4, // 18: tfplugin5.GetProviderSchema.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 8, // 19: tfplugin5.GetProviderSchema.Response.provider_meta:type_name -> tfplugin5.Schema + 9, // 20: tfplugin5.GetProviderSchema.Response.server_capabilities:type_name -> tfplugin5.ServerCapabilities + 8, // 21: tfplugin5.GetProviderSchema.Response.ResourceSchemasEntry.value:type_name -> tfplugin5.Schema + 8, // 22: tfplugin5.GetProviderSchema.Response.DataSourceSchemasEntry.value:type_name -> tfplugin5.Schema + 3, // 23: tfplugin5.PrepareProviderConfig.Request.config:type_name -> tfplugin5.DynamicValue + 3, // 24: tfplugin5.PrepareProviderConfig.Response.prepared_config:type_name -> tfplugin5.DynamicValue + 4, // 25: tfplugin5.PrepareProviderConfig.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 7, // 26: tfplugin5.UpgradeResourceState.Request.raw_state:type_name -> tfplugin5.RawState + 3, // 27: tfplugin5.UpgradeResourceState.Response.upgraded_state:type_name -> tfplugin5.DynamicValue + 4, // 28: tfplugin5.UpgradeResourceState.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 3, // 29: tfplugin5.ValidateResourceTypeConfig.Request.config:type_name -> tfplugin5.DynamicValue + 4, // 30: tfplugin5.ValidateResourceTypeConfig.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 3, // 31: tfplugin5.ValidateDataSourceConfig.Request.config:type_name -> tfplugin5.DynamicValue + 4, // 32: tfplugin5.ValidateDataSourceConfig.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 3, // 33: tfplugin5.Configure.Request.config:type_name -> tfplugin5.DynamicValue + 4, // 34: tfplugin5.Configure.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 3, // 35: tfplugin5.ReadResource.Request.current_state:type_name -> tfplugin5.DynamicValue + 3, // 36: tfplugin5.ReadResource.Request.provider_meta:type_name -> tfplugin5.DynamicValue + 3, // 37: tfplugin5.ReadResource.Response.new_state:type_name -> tfplugin5.DynamicValue + 4, // 38: tfplugin5.ReadResource.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 3, // 39: tfplugin5.PlanResourceChange.Request.prior_state:type_name -> tfplugin5.DynamicValue + 3, // 40: tfplugin5.PlanResourceChange.Request.proposed_new_state:type_name -> tfplugin5.DynamicValue + 3, // 41: tfplugin5.PlanResourceChange.Request.config:type_name -> tfplugin5.DynamicValue + 3, // 42: tfplugin5.PlanResourceChange.Request.provider_meta:type_name -> tfplugin5.DynamicValue + 3, // 43: tfplugin5.PlanResourceChange.Response.planned_state:type_name -> tfplugin5.DynamicValue + 5, // 44: tfplugin5.PlanResourceChange.Response.requires_replace:type_name -> tfplugin5.AttributePath + 4, // 45: tfplugin5.PlanResourceChange.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 3, // 46: tfplugin5.ApplyResourceChange.Request.prior_state:type_name -> tfplugin5.DynamicValue + 3, // 47: tfplugin5.ApplyResourceChange.Request.planned_state:type_name -> tfplugin5.DynamicValue + 3, // 48: tfplugin5.ApplyResourceChange.Request.config:type_name -> tfplugin5.DynamicValue + 3, // 49: tfplugin5.ApplyResourceChange.Request.provider_meta:type_name -> tfplugin5.DynamicValue + 3, // 50: tfplugin5.ApplyResourceChange.Response.new_state:type_name -> tfplugin5.DynamicValue + 4, // 51: tfplugin5.ApplyResourceChange.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 3, // 52: tfplugin5.ImportResourceState.ImportedResource.state:type_name -> tfplugin5.DynamicValue + 57, // 53: tfplugin5.ImportResourceState.Response.imported_resources:type_name -> tfplugin5.ImportResourceState.ImportedResource + 4, // 54: tfplugin5.ImportResourceState.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 3, // 55: tfplugin5.ReadDataSource.Request.config:type_name -> tfplugin5.DynamicValue + 3, // 56: tfplugin5.ReadDataSource.Request.provider_meta:type_name -> tfplugin5.DynamicValue + 3, // 57: tfplugin5.ReadDataSource.Response.state:type_name -> tfplugin5.DynamicValue + 4, // 58: tfplugin5.ReadDataSource.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 8, // 59: tfplugin5.GetProvisionerSchema.Response.provisioner:type_name -> tfplugin5.Schema + 4, // 60: tfplugin5.GetProvisionerSchema.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 3, // 61: tfplugin5.ValidateProvisionerConfig.Request.config:type_name -> tfplugin5.DynamicValue + 4, // 62: tfplugin5.ValidateProvisionerConfig.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 3, // 63: tfplugin5.ProvisionResource.Request.config:type_name -> tfplugin5.DynamicValue + 3, // 64: tfplugin5.ProvisionResource.Request.connection:type_name -> tfplugin5.DynamicValue + 4, // 65: tfplugin5.ProvisionResource.Response.diagnostics:type_name -> tfplugin5.Diagnostic + 32, // 66: tfplugin5.Provider.GetMetadata:input_type -> tfplugin5.GetMetadata.Request + 36, // 67: tfplugin5.Provider.GetSchema:input_type -> tfplugin5.GetProviderSchema.Request + 40, // 68: tfplugin5.Provider.PrepareProviderConfig:input_type -> tfplugin5.PrepareProviderConfig.Request + 44, // 69: tfplugin5.Provider.ValidateResourceTypeConfig:input_type -> tfplugin5.ValidateResourceTypeConfig.Request + 46, // 70: tfplugin5.Provider.ValidateDataSourceConfig:input_type -> tfplugin5.ValidateDataSourceConfig.Request + 42, // 71: tfplugin5.Provider.UpgradeResourceState:input_type -> tfplugin5.UpgradeResourceState.Request + 48, // 72: tfplugin5.Provider.Configure:input_type -> tfplugin5.Configure.Request + 50, // 73: tfplugin5.Provider.ReadResource:input_type -> tfplugin5.ReadResource.Request + 52, // 74: tfplugin5.Provider.PlanResourceChange:input_type -> tfplugin5.PlanResourceChange.Request + 54, // 75: tfplugin5.Provider.ApplyResourceChange:input_type -> tfplugin5.ApplyResourceChange.Request + 56, // 76: tfplugin5.Provider.ImportResourceState:input_type -> tfplugin5.ImportResourceState.Request + 59, // 77: tfplugin5.Provider.ReadDataSource:input_type -> tfplugin5.ReadDataSource.Request + 26, // 78: tfplugin5.Provider.Stop:input_type -> tfplugin5.Stop.Request + 61, // 79: tfplugin5.Provisioner.GetSchema:input_type -> tfplugin5.GetProvisionerSchema.Request + 63, // 80: tfplugin5.Provisioner.ValidateProvisionerConfig:input_type -> tfplugin5.ValidateProvisionerConfig.Request + 65, // 81: tfplugin5.Provisioner.ProvisionResource:input_type -> tfplugin5.ProvisionResource.Request + 26, // 82: tfplugin5.Provisioner.Stop:input_type -> tfplugin5.Stop.Request + 33, // 83: tfplugin5.Provider.GetMetadata:output_type -> tfplugin5.GetMetadata.Response + 37, // 84: tfplugin5.Provider.GetSchema:output_type -> tfplugin5.GetProviderSchema.Response + 41, // 85: tfplugin5.Provider.PrepareProviderConfig:output_type -> tfplugin5.PrepareProviderConfig.Response + 45, // 86: tfplugin5.Provider.ValidateResourceTypeConfig:output_type -> tfplugin5.ValidateResourceTypeConfig.Response + 47, // 87: tfplugin5.Provider.ValidateDataSourceConfig:output_type -> tfplugin5.ValidateDataSourceConfig.Response + 43, // 88: tfplugin5.Provider.UpgradeResourceState:output_type -> tfplugin5.UpgradeResourceState.Response + 49, // 89: tfplugin5.Provider.Configure:output_type -> tfplugin5.Configure.Response + 51, // 90: tfplugin5.Provider.ReadResource:output_type -> tfplugin5.ReadResource.Response + 53, // 91: tfplugin5.Provider.PlanResourceChange:output_type -> tfplugin5.PlanResourceChange.Response + 55, // 92: tfplugin5.Provider.ApplyResourceChange:output_type -> tfplugin5.ApplyResourceChange.Response + 58, // 93: tfplugin5.Provider.ImportResourceState:output_type -> tfplugin5.ImportResourceState.Response + 60, // 94: tfplugin5.Provider.ReadDataSource:output_type -> tfplugin5.ReadDataSource.Response + 27, // 95: tfplugin5.Provider.Stop:output_type -> tfplugin5.Stop.Response + 62, // 96: tfplugin5.Provisioner.GetSchema:output_type -> tfplugin5.GetProvisionerSchema.Response + 64, // 97: tfplugin5.Provisioner.ValidateProvisionerConfig:output_type -> tfplugin5.ValidateProvisionerConfig.Response + 66, // 98: tfplugin5.Provisioner.ProvisionResource:output_type -> tfplugin5.ProvisionResource.Response + 27, // 99: tfplugin5.Provisioner.Stop:output_type -> tfplugin5.Stop.Response + 83, // [83:100] is the sub-list for method output_type + 66, // [66:83] is the sub-list for method input_type + 66, // [66:66] is the sub-list for extension type_name + 66, // [66:66] is the sub-list for extension extendee + 0, // [0:66] is the sub-list for field type_name } func init() { file_tfplugin5_proto_init() } @@ -4077,7 +4380,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProviderSchema); i { + switch v := v.(*ServerCapabilities); i { case 0: return &v.state case 1: @@ -4089,7 +4392,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrepareProviderConfig); i { + switch v := v.(*GetMetadata); i { case 0: return &v.state case 1: @@ -4101,7 +4404,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpgradeResourceState); i { + switch v := v.(*GetProviderSchema); i { case 0: return &v.state case 1: @@ -4113,7 +4416,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateResourceTypeConfig); i { + switch v := v.(*PrepareProviderConfig); i { case 0: return &v.state case 1: @@ -4125,7 +4428,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateDataSourceConfig); i { + switch v := v.(*UpgradeResourceState); i { case 0: return &v.state case 1: @@ -4137,7 +4440,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Configure); i { + switch v := v.(*ValidateResourceTypeConfig); i { case 0: return &v.state case 1: @@ -4149,7 +4452,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReadResource); i { + switch v := v.(*ValidateDataSourceConfig); i { case 0: return &v.state case 1: @@ -4161,7 +4464,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PlanResourceChange); i { + switch v := v.(*Configure); i { case 0: return &v.state case 1: @@ -4173,7 +4476,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyResourceChange); i { + switch v := v.(*ReadResource); i { case 0: return &v.state case 1: @@ -4185,7 +4488,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportResourceState); i { + switch v := v.(*PlanResourceChange); i { case 0: return &v.state case 1: @@ -4197,7 +4500,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReadDataSource); i { + switch v := v.(*ApplyResourceChange); i { case 0: return &v.state case 1: @@ -4209,7 +4512,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProvisionerSchema); i { + switch v := v.(*ImportResourceState); i { case 0: return &v.state case 1: @@ -4221,7 +4524,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateProvisionerConfig); i { + switch v := v.(*ReadDataSource); i { case 0: return &v.state case 1: @@ -4233,7 +4536,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProvisionResource); i { + switch v := v.(*GetProvisionerSchema); i { case 0: return &v.state case 1: @@ -4245,7 +4548,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AttributePath_Step); i { + switch v := v.(*ValidateProvisionerConfig); i { case 0: return &v.state case 1: @@ -4257,7 +4560,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Stop_Request); i { + switch v := v.(*ProvisionResource); i { case 0: return &v.state case 1: @@ -4269,7 +4572,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Stop_Response); i { + switch v := v.(*AttributePath_Step); i { case 0: return &v.state case 1: @@ -4280,8 +4583,8 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Schema_Block); i { + file_tfplugin5_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Stop_Request); i { case 0: return &v.state case 1: @@ -4292,8 +4595,8 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Schema_Attribute); i { + file_tfplugin5_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Stop_Response); i { case 0: return &v.state case 1: @@ -4305,7 +4608,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Schema_NestedBlock); i { + switch v := v.(*Schema_Block); i { case 0: return &v.state case 1: @@ -4317,7 +4620,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProviderSchema_Request); i { + switch v := v.(*Schema_Attribute); i { case 0: return &v.state case 1: @@ -4329,7 +4632,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProviderSchema_Response); i { + switch v := v.(*Schema_NestedBlock); i { case 0: return &v.state case 1: @@ -4341,7 +4644,31 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProviderSchema_ServerCapabilities); i { + switch v := v.(*GetMetadata_Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tfplugin5_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMetadata_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tfplugin5_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMetadata_DataSourceMetadata); i { case 0: return &v.state case 1: @@ -4353,7 +4680,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrepareProviderConfig_Request); i { + switch v := v.(*GetMetadata_ResourceMetadata); i { case 0: return &v.state case 1: @@ -4365,7 +4692,7 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrepareProviderConfig_Response); i { + switch v := v.(*GetProviderSchema_Request); i { case 0: return &v.state case 1: @@ -4377,6 +4704,42 @@ func file_tfplugin5_proto_init() { } } file_tfplugin5_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetProviderSchema_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tfplugin5_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PrepareProviderConfig_Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tfplugin5_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PrepareProviderConfig_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tfplugin5_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpgradeResourceState_Request); i { case 0: return &v.state @@ -4388,7 +4751,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpgradeResourceState_Response); i { case 0: return &v.state @@ -4400,7 +4763,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidateResourceTypeConfig_Request); i { case 0: return &v.state @@ -4412,7 +4775,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidateResourceTypeConfig_Response); i { case 0: return &v.state @@ -4424,7 +4787,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidateDataSourceConfig_Request); i { case 0: return &v.state @@ -4436,7 +4799,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidateDataSourceConfig_Response); i { case 0: return &v.state @@ -4448,7 +4811,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Configure_Request); i { case 0: return &v.state @@ -4460,7 +4823,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Configure_Response); i { case 0: return &v.state @@ -4472,7 +4835,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadResource_Request); i { case 0: return &v.state @@ -4484,7 +4847,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadResource_Response); i { case 0: return &v.state @@ -4496,7 +4859,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlanResourceChange_Request); i { case 0: return &v.state @@ -4508,7 +4871,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlanResourceChange_Response); i { case 0: return &v.state @@ -4520,7 +4883,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyResourceChange_Request); i { case 0: return &v.state @@ -4532,7 +4895,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyResourceChange_Response); i { case 0: return &v.state @@ -4544,7 +4907,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportResourceState_Request); i { case 0: return &v.state @@ -4556,7 +4919,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportResourceState_ImportedResource); i { case 0: return &v.state @@ -4568,7 +4931,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportResourceState_Response); i { case 0: return &v.state @@ -4580,7 +4943,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadDataSource_Request); i { case 0: return &v.state @@ -4592,7 +4955,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadDataSource_Response); i { case 0: return &v.state @@ -4604,7 +4967,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProvisionerSchema_Request); i { case 0: return &v.state @@ -4616,7 +4979,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProvisionerSchema_Response); i { case 0: return &v.state @@ -4628,7 +4991,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidateProvisionerConfig_Request); i { case 0: return &v.state @@ -4640,7 +5003,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidateProvisionerConfig_Response); i { case 0: return &v.state @@ -4652,7 +5015,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProvisionResource_Request); i { case 0: return &v.state @@ -4664,7 +5027,7 @@ func file_tfplugin5_proto_init() { return nil } } - file_tfplugin5_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin5_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProvisionResource_Response); i { case 0: return &v.state @@ -4677,7 +5040,7 @@ func file_tfplugin5_proto_init() { } } } - file_tfplugin5_proto_msgTypes[20].OneofWrappers = []interface{}{ + file_tfplugin5_proto_msgTypes[22].OneofWrappers = []interface{}{ (*AttributePath_Step_AttributeName)(nil), (*AttributePath_Step_ElementKeyString)(nil), (*AttributePath_Step_ElementKeyInt)(nil), @@ -4688,7 +5051,7 @@ func file_tfplugin5_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_tfplugin5_proto_rawDesc, NumEnums: 3, - NumMessages: 59, + NumMessages: 64, NumExtensions: 0, NumServices: 2, }, diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5/tfplugin5.proto b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5/tfplugin5.proto index 6cdaf2c03051..639147f95503 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5/tfplugin5.proto +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5/tfplugin5.proto @@ -1,6 +1,9 @@ -// Terraform Plugin RPC protocol version 5.3 +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Terraform Plugin RPC protocol version 5.4 // -// This file defines version 5.3 of the RPC protocol. To implement a plugin +// This file defines version 5.4 of the RPC protocol. To implement a plugin // against this protocol, copy this definition into your own codebase and // use protoc to generate stubs for your target language. // @@ -17,9 +20,9 @@ // branch or any other development branch. // syntax = "proto3"; +option go_package = "github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5"; package tfplugin5; -option go_package = "github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5"; // DynamicValue is an opaque encoding of terraform data, with the field name // indicating the encoding scheme used. @@ -125,8 +128,34 @@ message Schema { Block block = 2; } +// ServerCapabilities allows providers to communicate extra information +// regarding supported protocol features. This is used to indicate +// availability of certain forward-compatible changes which may be optional +// in a major protocol version, but cannot be tested for directly. +message ServerCapabilities { + // The plan_destroy capability signals that a provider expects a call + // to PlanResourceChange when a resource is going to be destroyed. + bool plan_destroy = 1; + + // The get_provider_schema_optional capability indicates that this + // provider does not require calling GetProviderSchema to operate + // normally, and the caller can used a cached copy of the provider's + // schema. + bool get_provider_schema_optional = 2; +} + service Provider { //////// Information about what a provider supports/expects + + // GetMetadata returns upfront information about server capabilities and + // supported resource types without requiring the server to instantiate all + // schema information, which may be memory intensive. This RPC is optional, + // where clients may receive an unimplemented RPC error. Clients should + // ignore the error and call the GetSchema RPC as a fallback. + rpc GetMetadata(GetMetadata.Request) returns (GetMetadata.Response); + + // GetSchema returns schema information for the provider, data resources, + // and managed resources. rpc GetSchema(GetProviderSchema.Request) returns (GetProviderSchema.Response); rpc PrepareProviderConfig(PrepareProviderConfig.Request) returns (PrepareProviderConfig.Response); rpc ValidateResourceTypeConfig(ValidateResourceTypeConfig.Request) returns (ValidateResourceTypeConfig.Response); @@ -148,6 +177,26 @@ service Provider { rpc Stop(Stop.Request) returns (Stop.Response); } +message GetMetadata { + message Request { + } + + message Response { + ServerCapabilities server_capabilities = 1; + repeated Diagnostic diagnostics = 2; + repeated DataSourceMetadata data_sources = 3; + repeated ResourceMetadata resources = 4; + } + + message DataSourceMetadata { + string type_name = 1; + } + + message ResourceMetadata { + string type_name = 1; + } +} + message GetProviderSchema { message Request { } @@ -159,17 +208,6 @@ message GetProviderSchema { Schema provider_meta = 5; ServerCapabilities server_capabilities = 6; } - - - // ServerCapabilities allows providers to communicate extra information - // regarding supported protocol features. This is used to indicate - // availability of certain forward-compatible changes which may be optional - // in a major protocol version, but cannot be tested for directly. - message ServerCapabilities { - // The plan_destroy capability signals that a provider expects a call - // to PlanResourceChange when a resource is going to be destroyed. - bool plan_destroy = 1; - } } message PrepareProviderConfig { diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5/tfplugin5_grpc.pb.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5/tfplugin5_grpc.pb.go index ddbdea31e713..0ed31f74882e 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5/tfplugin5_grpc.pb.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5/tfplugin5_grpc.pb.go @@ -1,7 +1,29 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Terraform Plugin RPC protocol version 5.4 +// +// This file defines version 5.4 of the RPC protocol. To implement a plugin +// against this protocol, copy this definition into your own codebase and +// use protoc to generate stubs for your target language. +// +// This file will not be updated. Any minor versions of protocol 5 to follow +// should copy this file and modify the copy while maintaing backwards +// compatibility. Breaking changes, if any are required, will come +// in a subsequent major version with its own separate proto definition. +// +// Note that only the proto files included in a release tag of Terraform are +// official protocol releases. Proto files taken from other commits may include +// incomplete changes or features that did not make it into a final release. +// In all reasonable cases, plugin developers should take the proto file from +// the tag of the most recent release of Terraform, and not from the main +// branch or any other development branch. +// + // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.23.2 // source: tfplugin5.proto package tfplugin5 @@ -18,25 +40,48 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + Provider_GetMetadata_FullMethodName = "/tfplugin5.Provider/GetMetadata" + Provider_GetSchema_FullMethodName = "/tfplugin5.Provider/GetSchema" + Provider_PrepareProviderConfig_FullMethodName = "/tfplugin5.Provider/PrepareProviderConfig" + Provider_ValidateResourceTypeConfig_FullMethodName = "/tfplugin5.Provider/ValidateResourceTypeConfig" + Provider_ValidateDataSourceConfig_FullMethodName = "/tfplugin5.Provider/ValidateDataSourceConfig" + Provider_UpgradeResourceState_FullMethodName = "/tfplugin5.Provider/UpgradeResourceState" + Provider_Configure_FullMethodName = "/tfplugin5.Provider/Configure" + Provider_ReadResource_FullMethodName = "/tfplugin5.Provider/ReadResource" + Provider_PlanResourceChange_FullMethodName = "/tfplugin5.Provider/PlanResourceChange" + Provider_ApplyResourceChange_FullMethodName = "/tfplugin5.Provider/ApplyResourceChange" + Provider_ImportResourceState_FullMethodName = "/tfplugin5.Provider/ImportResourceState" + Provider_ReadDataSource_FullMethodName = "/tfplugin5.Provider/ReadDataSource" + Provider_Stop_FullMethodName = "/tfplugin5.Provider/Stop" +) + // ProviderClient is the client API for Provider service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type ProviderClient interface { - //////// Information about what a provider supports/expects + // GetMetadata returns upfront information about server capabilities and + // supported resource types without requiring the server to instantiate all + // schema information, which may be memory intensive. This RPC is optional, + // where clients may receive an unimplemented RPC error. Clients should + // ignore the error and call the GetSchema RPC as a fallback. + GetMetadata(ctx context.Context, in *GetMetadata_Request, opts ...grpc.CallOption) (*GetMetadata_Response, error) + // GetSchema returns schema information for the provider, data resources, + // and managed resources. GetSchema(ctx context.Context, in *GetProviderSchema_Request, opts ...grpc.CallOption) (*GetProviderSchema_Response, error) PrepareProviderConfig(ctx context.Context, in *PrepareProviderConfig_Request, opts ...grpc.CallOption) (*PrepareProviderConfig_Response, error) ValidateResourceTypeConfig(ctx context.Context, in *ValidateResourceTypeConfig_Request, opts ...grpc.CallOption) (*ValidateResourceTypeConfig_Response, error) ValidateDataSourceConfig(ctx context.Context, in *ValidateDataSourceConfig_Request, opts ...grpc.CallOption) (*ValidateDataSourceConfig_Response, error) UpgradeResourceState(ctx context.Context, in *UpgradeResourceState_Request, opts ...grpc.CallOption) (*UpgradeResourceState_Response, error) - //////// One-time initialization, called before other functions below + // ////// One-time initialization, called before other functions below Configure(ctx context.Context, in *Configure_Request, opts ...grpc.CallOption) (*Configure_Response, error) - //////// Managed Resource Lifecycle + // ////// Managed Resource Lifecycle ReadResource(ctx context.Context, in *ReadResource_Request, opts ...grpc.CallOption) (*ReadResource_Response, error) PlanResourceChange(ctx context.Context, in *PlanResourceChange_Request, opts ...grpc.CallOption) (*PlanResourceChange_Response, error) ApplyResourceChange(ctx context.Context, in *ApplyResourceChange_Request, opts ...grpc.CallOption) (*ApplyResourceChange_Response, error) ImportResourceState(ctx context.Context, in *ImportResourceState_Request, opts ...grpc.CallOption) (*ImportResourceState_Response, error) ReadDataSource(ctx context.Context, in *ReadDataSource_Request, opts ...grpc.CallOption) (*ReadDataSource_Response, error) - //////// Graceful Shutdown + // ////// Graceful Shutdown Stop(ctx context.Context, in *Stop_Request, opts ...grpc.CallOption) (*Stop_Response, error) } @@ -48,9 +93,18 @@ func NewProviderClient(cc grpc.ClientConnInterface) ProviderClient { return &providerClient{cc} } +func (c *providerClient) GetMetadata(ctx context.Context, in *GetMetadata_Request, opts ...grpc.CallOption) (*GetMetadata_Response, error) { + out := new(GetMetadata_Response) + err := c.cc.Invoke(ctx, Provider_GetMetadata_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *providerClient) GetSchema(ctx context.Context, in *GetProviderSchema_Request, opts ...grpc.CallOption) (*GetProviderSchema_Response, error) { out := new(GetProviderSchema_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provider/GetSchema", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_GetSchema_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -59,7 +113,7 @@ func (c *providerClient) GetSchema(ctx context.Context, in *GetProviderSchema_Re func (c *providerClient) PrepareProviderConfig(ctx context.Context, in *PrepareProviderConfig_Request, opts ...grpc.CallOption) (*PrepareProviderConfig_Response, error) { out := new(PrepareProviderConfig_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provider/PrepareProviderConfig", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_PrepareProviderConfig_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -68,7 +122,7 @@ func (c *providerClient) PrepareProviderConfig(ctx context.Context, in *PrepareP func (c *providerClient) ValidateResourceTypeConfig(ctx context.Context, in *ValidateResourceTypeConfig_Request, opts ...grpc.CallOption) (*ValidateResourceTypeConfig_Response, error) { out := new(ValidateResourceTypeConfig_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provider/ValidateResourceTypeConfig", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_ValidateResourceTypeConfig_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -77,7 +131,7 @@ func (c *providerClient) ValidateResourceTypeConfig(ctx context.Context, in *Val func (c *providerClient) ValidateDataSourceConfig(ctx context.Context, in *ValidateDataSourceConfig_Request, opts ...grpc.CallOption) (*ValidateDataSourceConfig_Response, error) { out := new(ValidateDataSourceConfig_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provider/ValidateDataSourceConfig", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_ValidateDataSourceConfig_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -86,7 +140,7 @@ func (c *providerClient) ValidateDataSourceConfig(ctx context.Context, in *Valid func (c *providerClient) UpgradeResourceState(ctx context.Context, in *UpgradeResourceState_Request, opts ...grpc.CallOption) (*UpgradeResourceState_Response, error) { out := new(UpgradeResourceState_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provider/UpgradeResourceState", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_UpgradeResourceState_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -95,7 +149,7 @@ func (c *providerClient) UpgradeResourceState(ctx context.Context, in *UpgradeRe func (c *providerClient) Configure(ctx context.Context, in *Configure_Request, opts ...grpc.CallOption) (*Configure_Response, error) { out := new(Configure_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provider/Configure", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_Configure_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -104,7 +158,7 @@ func (c *providerClient) Configure(ctx context.Context, in *Configure_Request, o func (c *providerClient) ReadResource(ctx context.Context, in *ReadResource_Request, opts ...grpc.CallOption) (*ReadResource_Response, error) { out := new(ReadResource_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provider/ReadResource", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_ReadResource_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -113,7 +167,7 @@ func (c *providerClient) ReadResource(ctx context.Context, in *ReadResource_Requ func (c *providerClient) PlanResourceChange(ctx context.Context, in *PlanResourceChange_Request, opts ...grpc.CallOption) (*PlanResourceChange_Response, error) { out := new(PlanResourceChange_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provider/PlanResourceChange", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_PlanResourceChange_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -122,7 +176,7 @@ func (c *providerClient) PlanResourceChange(ctx context.Context, in *PlanResourc func (c *providerClient) ApplyResourceChange(ctx context.Context, in *ApplyResourceChange_Request, opts ...grpc.CallOption) (*ApplyResourceChange_Response, error) { out := new(ApplyResourceChange_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provider/ApplyResourceChange", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_ApplyResourceChange_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -131,7 +185,7 @@ func (c *providerClient) ApplyResourceChange(ctx context.Context, in *ApplyResou func (c *providerClient) ImportResourceState(ctx context.Context, in *ImportResourceState_Request, opts ...grpc.CallOption) (*ImportResourceState_Response, error) { out := new(ImportResourceState_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provider/ImportResourceState", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_ImportResourceState_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -140,7 +194,7 @@ func (c *providerClient) ImportResourceState(ctx context.Context, in *ImportReso func (c *providerClient) ReadDataSource(ctx context.Context, in *ReadDataSource_Request, opts ...grpc.CallOption) (*ReadDataSource_Response, error) { out := new(ReadDataSource_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provider/ReadDataSource", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_ReadDataSource_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -149,7 +203,7 @@ func (c *providerClient) ReadDataSource(ctx context.Context, in *ReadDataSource_ func (c *providerClient) Stop(ctx context.Context, in *Stop_Request, opts ...grpc.CallOption) (*Stop_Response, error) { out := new(Stop_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provider/Stop", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_Stop_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -160,21 +214,28 @@ func (c *providerClient) Stop(ctx context.Context, in *Stop_Request, opts ...grp // All implementations must embed UnimplementedProviderServer // for forward compatibility type ProviderServer interface { - //////// Information about what a provider supports/expects + // GetMetadata returns upfront information about server capabilities and + // supported resource types without requiring the server to instantiate all + // schema information, which may be memory intensive. This RPC is optional, + // where clients may receive an unimplemented RPC error. Clients should + // ignore the error and call the GetSchema RPC as a fallback. + GetMetadata(context.Context, *GetMetadata_Request) (*GetMetadata_Response, error) + // GetSchema returns schema information for the provider, data resources, + // and managed resources. GetSchema(context.Context, *GetProviderSchema_Request) (*GetProviderSchema_Response, error) PrepareProviderConfig(context.Context, *PrepareProviderConfig_Request) (*PrepareProviderConfig_Response, error) ValidateResourceTypeConfig(context.Context, *ValidateResourceTypeConfig_Request) (*ValidateResourceTypeConfig_Response, error) ValidateDataSourceConfig(context.Context, *ValidateDataSourceConfig_Request) (*ValidateDataSourceConfig_Response, error) UpgradeResourceState(context.Context, *UpgradeResourceState_Request) (*UpgradeResourceState_Response, error) - //////// One-time initialization, called before other functions below + // ////// One-time initialization, called before other functions below Configure(context.Context, *Configure_Request) (*Configure_Response, error) - //////// Managed Resource Lifecycle + // ////// Managed Resource Lifecycle ReadResource(context.Context, *ReadResource_Request) (*ReadResource_Response, error) PlanResourceChange(context.Context, *PlanResourceChange_Request) (*PlanResourceChange_Response, error) ApplyResourceChange(context.Context, *ApplyResourceChange_Request) (*ApplyResourceChange_Response, error) ImportResourceState(context.Context, *ImportResourceState_Request) (*ImportResourceState_Response, error) ReadDataSource(context.Context, *ReadDataSource_Request) (*ReadDataSource_Response, error) - //////// Graceful Shutdown + // ////// Graceful Shutdown Stop(context.Context, *Stop_Request) (*Stop_Response, error) mustEmbedUnimplementedProviderServer() } @@ -183,6 +244,9 @@ type ProviderServer interface { type UnimplementedProviderServer struct { } +func (UnimplementedProviderServer) GetMetadata(context.Context, *GetMetadata_Request) (*GetMetadata_Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMetadata not implemented") +} func (UnimplementedProviderServer) GetSchema(context.Context, *GetProviderSchema_Request) (*GetProviderSchema_Response, error) { return nil, status.Errorf(codes.Unimplemented, "method GetSchema not implemented") } @@ -232,6 +296,24 @@ func RegisterProviderServer(s grpc.ServiceRegistrar, srv ProviderServer) { s.RegisterService(&Provider_ServiceDesc, srv) } +func _Provider_GetMetadata_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMetadata_Request) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProviderServer).GetMetadata(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Provider_GetMetadata_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProviderServer).GetMetadata(ctx, req.(*GetMetadata_Request)) + } + return interceptor(ctx, in, info, handler) +} + func _Provider_GetSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetProviderSchema_Request) if err := dec(in); err != nil { @@ -242,7 +324,7 @@ func _Provider_GetSchema_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provider/GetSchema", + FullMethod: Provider_GetSchema_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).GetSchema(ctx, req.(*GetProviderSchema_Request)) @@ -260,7 +342,7 @@ func _Provider_PrepareProviderConfig_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provider/PrepareProviderConfig", + FullMethod: Provider_PrepareProviderConfig_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).PrepareProviderConfig(ctx, req.(*PrepareProviderConfig_Request)) @@ -278,7 +360,7 @@ func _Provider_ValidateResourceTypeConfig_Handler(srv interface{}, ctx context.C } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provider/ValidateResourceTypeConfig", + FullMethod: Provider_ValidateResourceTypeConfig_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).ValidateResourceTypeConfig(ctx, req.(*ValidateResourceTypeConfig_Request)) @@ -296,7 +378,7 @@ func _Provider_ValidateDataSourceConfig_Handler(srv interface{}, ctx context.Con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provider/ValidateDataSourceConfig", + FullMethod: Provider_ValidateDataSourceConfig_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).ValidateDataSourceConfig(ctx, req.(*ValidateDataSourceConfig_Request)) @@ -314,7 +396,7 @@ func _Provider_UpgradeResourceState_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provider/UpgradeResourceState", + FullMethod: Provider_UpgradeResourceState_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).UpgradeResourceState(ctx, req.(*UpgradeResourceState_Request)) @@ -332,7 +414,7 @@ func _Provider_Configure_Handler(srv interface{}, ctx context.Context, dec func( } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provider/Configure", + FullMethod: Provider_Configure_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).Configure(ctx, req.(*Configure_Request)) @@ -350,7 +432,7 @@ func _Provider_ReadResource_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provider/ReadResource", + FullMethod: Provider_ReadResource_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).ReadResource(ctx, req.(*ReadResource_Request)) @@ -368,7 +450,7 @@ func _Provider_PlanResourceChange_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provider/PlanResourceChange", + FullMethod: Provider_PlanResourceChange_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).PlanResourceChange(ctx, req.(*PlanResourceChange_Request)) @@ -386,7 +468,7 @@ func _Provider_ApplyResourceChange_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provider/ApplyResourceChange", + FullMethod: Provider_ApplyResourceChange_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).ApplyResourceChange(ctx, req.(*ApplyResourceChange_Request)) @@ -404,7 +486,7 @@ func _Provider_ImportResourceState_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provider/ImportResourceState", + FullMethod: Provider_ImportResourceState_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).ImportResourceState(ctx, req.(*ImportResourceState_Request)) @@ -422,7 +504,7 @@ func _Provider_ReadDataSource_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provider/ReadDataSource", + FullMethod: Provider_ReadDataSource_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).ReadDataSource(ctx, req.(*ReadDataSource_Request)) @@ -440,7 +522,7 @@ func _Provider_Stop_Handler(srv interface{}, ctx context.Context, dec func(inter } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provider/Stop", + FullMethod: Provider_Stop_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).Stop(ctx, req.(*Stop_Request)) @@ -455,6 +537,10 @@ var Provider_ServiceDesc = grpc.ServiceDesc{ ServiceName: "tfplugin5.Provider", HandlerType: (*ProviderServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "GetMetadata", + Handler: _Provider_GetMetadata_Handler, + }, { MethodName: "GetSchema", Handler: _Provider_GetSchema_Handler, @@ -508,6 +594,13 @@ var Provider_ServiceDesc = grpc.ServiceDesc{ Metadata: "tfplugin5.proto", } +const ( + Provisioner_GetSchema_FullMethodName = "/tfplugin5.Provisioner/GetSchema" + Provisioner_ValidateProvisionerConfig_FullMethodName = "/tfplugin5.Provisioner/ValidateProvisionerConfig" + Provisioner_ProvisionResource_FullMethodName = "/tfplugin5.Provisioner/ProvisionResource" + Provisioner_Stop_FullMethodName = "/tfplugin5.Provisioner/Stop" +) + // ProvisionerClient is the client API for Provisioner service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -528,7 +621,7 @@ func NewProvisionerClient(cc grpc.ClientConnInterface) ProvisionerClient { func (c *provisionerClient) GetSchema(ctx context.Context, in *GetProvisionerSchema_Request, opts ...grpc.CallOption) (*GetProvisionerSchema_Response, error) { out := new(GetProvisionerSchema_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provisioner/GetSchema", in, out, opts...) + err := c.cc.Invoke(ctx, Provisioner_GetSchema_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -537,7 +630,7 @@ func (c *provisionerClient) GetSchema(ctx context.Context, in *GetProvisionerSch func (c *provisionerClient) ValidateProvisionerConfig(ctx context.Context, in *ValidateProvisionerConfig_Request, opts ...grpc.CallOption) (*ValidateProvisionerConfig_Response, error) { out := new(ValidateProvisionerConfig_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provisioner/ValidateProvisionerConfig", in, out, opts...) + err := c.cc.Invoke(ctx, Provisioner_ValidateProvisionerConfig_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -545,7 +638,7 @@ func (c *provisionerClient) ValidateProvisionerConfig(ctx context.Context, in *V } func (c *provisionerClient) ProvisionResource(ctx context.Context, in *ProvisionResource_Request, opts ...grpc.CallOption) (Provisioner_ProvisionResourceClient, error) { - stream, err := c.cc.NewStream(ctx, &Provisioner_ServiceDesc.Streams[0], "/tfplugin5.Provisioner/ProvisionResource", opts...) + stream, err := c.cc.NewStream(ctx, &Provisioner_ServiceDesc.Streams[0], Provisioner_ProvisionResource_FullMethodName, opts...) if err != nil { return nil, err } @@ -578,7 +671,7 @@ func (x *provisionerProvisionResourceClient) Recv() (*ProvisionResource_Response func (c *provisionerClient) Stop(ctx context.Context, in *Stop_Request, opts ...grpc.CallOption) (*Stop_Response, error) { out := new(Stop_Response) - err := c.cc.Invoke(ctx, "/tfplugin5.Provisioner/Stop", in, out, opts...) + err := c.cc.Invoke(ctx, Provisioner_Stop_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -635,7 +728,7 @@ func _Provisioner_GetSchema_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provisioner/GetSchema", + FullMethod: Provisioner_GetSchema_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProvisionerServer).GetSchema(ctx, req.(*GetProvisionerSchema_Request)) @@ -653,7 +746,7 @@ func _Provisioner_ValidateProvisionerConfig_Handler(srv interface{}, ctx context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provisioner/ValidateProvisionerConfig", + FullMethod: Provisioner_ValidateProvisionerConfig_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProvisionerServer).ValidateProvisionerConfig(ctx, req.(*ValidateProvisionerConfig_Request)) @@ -692,7 +785,7 @@ func _Provisioner_Stop_Handler(srv interface{}, ctx context.Context, dec func(in } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin5.Provisioner/Stop", + FullMethod: Provisioner_Stop_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProvisionerServer).Stop(ctx, req.(*Stop_Request)) diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/data_source.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/data_source.go index 516812cd2210..e16e94fbe298 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/data_source.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/data_source.go @@ -5,6 +5,16 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5" ) +func GetMetadata_DataSourceMetadata(in *tfprotov5.DataSourceMetadata) *tfplugin5.GetMetadata_DataSourceMetadata { + if in == nil { + return nil + } + + return &tfplugin5.GetMetadata_DataSourceMetadata{ + TypeName: in.TypeName, + } +} + func ValidateDataSourceConfig_Request(in *tfprotov5.ValidateDataSourceConfigRequest) (*tfplugin5.ValidateDataSourceConfig_Request, error) { resp := &tfplugin5.ValidateDataSourceConfig_Request{ TypeName: in.TypeName, diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/provider.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/provider.go index 9b0d9ac251b0..6e29c1dd5f1b 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/provider.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/provider.go @@ -7,6 +7,40 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5" ) +func GetMetadata_Request(in *tfprotov5.GetMetadataRequest) (*tfplugin5.GetMetadata_Request, error) { + return &tfplugin5.GetMetadata_Request{}, nil +} + +func GetMetadata_Response(in *tfprotov5.GetMetadataResponse) (*tfplugin5.GetMetadata_Response, error) { + if in == nil { + return nil, nil + } + + resp := &tfplugin5.GetMetadata_Response{ + DataSources: make([]*tfplugin5.GetMetadata_DataSourceMetadata, 0, len(in.DataSources)), + Resources: make([]*tfplugin5.GetMetadata_ResourceMetadata, 0, len(in.Resources)), + ServerCapabilities: ServerCapabilities(in.ServerCapabilities), + } + + for _, datasource := range in.DataSources { + resp.DataSources = append(resp.DataSources, GetMetadata_DataSourceMetadata(&datasource)) + } + + for _, resource := range in.Resources { + resp.Resources = append(resp.Resources, GetMetadata_ResourceMetadata(&resource)) + } + + diags, err := Diagnostics(in.Diagnostics) + + if err != nil { + return resp, err + } + + resp.Diagnostics = diags + + return resp, nil +} + func GetProviderSchema_Request(in *tfprotov5.GetProviderSchemaRequest) (*tfplugin5.GetProviderSchema_Request, error) { return &tfplugin5.GetProviderSchema_Request{}, nil } @@ -16,7 +50,7 @@ func GetProviderSchema_Response(in *tfprotov5.GetProviderSchemaResponse) (*tfplu return nil, nil } resp := tfplugin5.GetProviderSchema_Response{ - ServerCapabilities: GetProviderSchema_ServerCapabilities(in.ServerCapabilities), + ServerCapabilities: ServerCapabilities(in.ServerCapabilities), } if in.Provider != nil { schema, err := Schema(in.Provider) diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/resource.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/resource.go index 77eba487e6e8..fd2d6c38ca00 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/resource.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/resource.go @@ -5,6 +5,16 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5" ) +func GetMetadata_ResourceMetadata(in *tfprotov5.ResourceMetadata) *tfplugin5.GetMetadata_ResourceMetadata { + if in == nil { + return nil + } + + return &tfplugin5.GetMetadata_ResourceMetadata{ + TypeName: in.TypeName, + } +} + func ValidateResourceTypeConfig_Request(in *tfprotov5.ValidateResourceTypeConfigRequest) (*tfplugin5.ValidateResourceTypeConfig_Request, error) { resp := &tfplugin5.ValidateResourceTypeConfig_Request{ TypeName: in.TypeName, diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/server_capabilities.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/server_capabilities.go index c1ff45ae4131..08ccbb3d9901 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/server_capabilities.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/toproto/server_capabilities.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package toproto import ( @@ -5,12 +8,13 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5" ) -func GetProviderSchema_ServerCapabilities(in *tfprotov5.ServerCapabilities) *tfplugin5.GetProviderSchema_ServerCapabilities { +func ServerCapabilities(in *tfprotov5.ServerCapabilities) *tfplugin5.ServerCapabilities { if in == nil { return nil } - return &tfplugin5.GetProviderSchema_ServerCapabilities{ - PlanDestroy: in.PlanDestroy, + return &tfplugin5.ServerCapabilities{ + GetProviderSchemaOptional: in.GetProviderSchemaOptional, + PlanDestroy: in.PlanDestroy, } } diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/provider.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/provider.go index 0bc84ff2630f..20b7e44e5c2e 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/provider.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/provider.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov5 import ( @@ -7,6 +10,13 @@ import ( // ProviderServer is an interface that reflects that Terraform protocol. // Providers must implement this interface. type ProviderServer interface { + // GetMetadata returns upfront information about server capabilities and + // supported resource types without requiring the server to instantiate all + // schema information, which may be memory intensive. This RPC is optional, + // where clients may receive an unimplemented RPC error. Clients should + // ignore the error and call the GetProviderSchema RPC as a fallback. + GetMetadata(context.Context, *GetMetadataRequest) (*GetMetadataResponse, error) + // GetProviderSchema is called when Terraform needs to know what the // provider's schema is, along with the schemas of all its resources // and data sources. @@ -39,6 +49,27 @@ type ProviderServer interface { DataSourceServer } +// GetMetadataRequest represents a GetMetadata RPC request. +type GetMetadataRequest struct{} + +// GetMetadataResponse represents a GetMetadata RPC response. +type GetMetadataResponse struct { + // ServerCapabilities defines optionally supported protocol features, + // such as forward-compatible Terraform behavior changes. + ServerCapabilities *ServerCapabilities + + // Diagnostics report errors or warnings related to returning the + // provider's schemas. Returning an empty slice indicates success, with + // no errors or warnings generated. + Diagnostics []*Diagnostic + + // DataSources returns metadata for all data resources. + DataSources []DataSourceMetadata + + // Resources returns metadata for all managed resources. + Resources []ResourceMetadata +} + // GetProviderSchemaRequest represents a Terraform RPC request for the // provider's schemas. type GetProviderSchemaRequest struct{} diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/resource.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/resource.go index b86a045e957c..fdae84f3262c 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/resource.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/resource.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov5 import ( @@ -6,6 +9,13 @@ import ( "github.com/hashicorp/terraform-plugin-go/tftypes" ) +// ResourceMetadata describes metadata for a managed resource in the GetMetadata +// RPC. +type ResourceMetadata struct { + // TypeName is the name of the managed resource. + TypeName string +} + // ResourceServer is an interface containing the methods a resource // implementation needs to fill. type ResourceServer interface { diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/schema.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/schema.go index b0b6dff28430..9b860275f138 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/schema.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/schema.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov5 import "github.com/hashicorp/terraform-plugin-go/tftypes" diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/server_capabilities.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/server_capabilities.go index f87cf2f4aa3a..9f2e79e98ecf 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/server_capabilities.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/server_capabilities.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov5 // ServerCapabilities allows providers to communicate optionally supported @@ -11,4 +14,9 @@ type ServerCapabilities struct { // opt-in to prevent unexpected errors or panics since the // ProposedNewState in PlanResourceChangeRequest will be a null value. PlanDestroy bool + + // GetProviderSchemaOptional signals that this provider does not require + // having the GetProviderSchema RPC called first to operate normally. This + // means the caller can use a cached copy of the provider's schema instead. + GetProviderSchemaOptional bool } diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/state.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/state.go index 1f85dcad1061..08c118958ef8 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/state.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/state.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov5 import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/string_kind.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/string_kind.go index 35d89d038c03..69169b678a80 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/string_kind.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/string_kind.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov5 const ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server/doc.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server/doc.go index d8360a7fba34..96089e6ba12a 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server/doc.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package tf5server implements a server implementation to run // tfprotov5.ProviderServers as gRPC servers. // diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server/plugin.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server/plugin.go index a33afd84c0ed..602246aa3f2f 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server/plugin.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server/plugin.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tf5server import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server/server.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server/server.go index 952b789f5855..c9fcdc75503d 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server/server.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server/server.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tf5server import ( @@ -45,7 +48,7 @@ const ( // // In the future, it may be possible to include this information directly // in the protocol buffers rather than recreating a constant here. - protocolVersionMinor uint = 3 + protocolVersionMinor uint = 4 ) // protocolVersion represents the combined major and minor version numbers of @@ -483,6 +486,43 @@ func New(name string, serve tfprotov5.ProviderServer, opts ...ServeOpt) tfplugin } } +func (s *server) GetMetadata(ctx context.Context, req *tfplugin5.GetMetadata_Request) (*tfplugin5.GetMetadata_Response, error) { + rpc := "GetMetadata" + ctx = s.loggingContext(ctx) + ctx = logging.RpcContext(ctx, rpc) + ctx = s.stoppableContext(ctx) + logging.ProtocolTrace(ctx, "Received request") + defer logging.ProtocolTrace(ctx, "Served request") + + r, err := fromproto.GetMetadataRequest(req) + + if err != nil { + logging.ProtocolError(ctx, "Error converting request from protobuf", map[string]interface{}{logging.KeyError: err}) + return nil, err + } + + ctx = tf5serverlogging.DownstreamRequest(ctx) + + resp, err := s.downstream.GetMetadata(ctx, r) + + if err != nil { + logging.ProtocolError(ctx, "Error from downstream", map[string]interface{}{logging.KeyError: err}) + return nil, err + } + + tf5serverlogging.DownstreamResponse(ctx, resp.Diagnostics) + tf5serverlogging.ServerCapabilities(ctx, resp.ServerCapabilities) + + ret, err := toproto.GetMetadata_Response(resp) + + if err != nil { + logging.ProtocolError(ctx, "Error converting response to protobuf", map[string]interface{}{logging.KeyError: err}) + return nil, err + } + + return ret, nil +} + func (s *server) GetSchema(ctx context.Context, req *tfplugin5.GetProviderSchema_Request) (*tfplugin5.GetProviderSchema_Response, error) { rpc := "GetProviderSchema" ctx = s.loggingContext(ctx) @@ -502,6 +542,7 @@ func (s *server) GetSchema(ctx context.Context, req *tfplugin5.GetProviderSchema return nil, err } tf5serverlogging.DownstreamResponse(ctx, resp.Diagnostics) + tf5serverlogging.ServerCapabilities(ctx, resp.ServerCapabilities) ret, err := toproto.GetProviderSchema_Response(resp) if err != nil { logging.ProtocolError(ctx, "Error converting response to protobuf", map[string]interface{}{logging.KeyError: err}) diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/data_source.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/data_source.go index 1feb2cf34500..ebb2cbd3dc23 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/data_source.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/data_source.go @@ -1,9 +1,19 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov6 import ( "context" ) +// DataSourceMetadata describes metadata for a data resource in the GetMetadata +// RPC. +type DataSourceMetadata struct { + // TypeName is the name of the data resource. + TypeName string +} + // DataSourceServer is an interface containing the methods a data source // implementation needs to fill. type DataSourceServer interface { diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/diagnostic.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/diagnostic.go index c40d52ad07c7..8f856abbba73 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/diagnostic.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/diagnostic.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov6 import "github.com/hashicorp/terraform-plugin-go/tftypes" diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/doc.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/doc.go index 875120cba380..e9adfdedb69c 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/doc.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package tfprotov6 provides the interfaces and types needed to build a // Terraform provider server. // diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/dynamic_value.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/dynamic_value.go index a9fd78420a30..76bac4d5df51 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/dynamic_value.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/dynamic_value.go @@ -1,9 +1,17 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov6 import ( + "bytes" + "encoding/json" "errors" + "fmt" "github.com/hashicorp/terraform-plugin-go/tftypes" + msgpack "github.com/vmihailenco/msgpack/v5" + "github.com/vmihailenco/msgpack/v5/msgpcode" ) // ErrUnknownDynamicValueType is returned when a DynamicValue has no MsgPack or @@ -35,7 +43,7 @@ func NewDynamicValue(t tftypes.Type, v tftypes.Value) (DynamicValue, error) { // DynamicValue represents a nested encoding value that came from the protocol. // The only way providers should ever interact with it is by calling its -// `Unmarshal` method to retrive a `tftypes.Value`. Although the type system +// `Unmarshal` method to retrieve a `tftypes.Value`. Although the type system // allows for other interactions, they are explicitly not supported, and will // not be considered when evaluating for breaking changes. Treat this type as // an opaque value, and *only* call its `Unmarshal` method. @@ -44,6 +52,43 @@ type DynamicValue struct { JSON []byte } +// IsNull returns true if the DynamicValue represents a null value based on the +// underlying JSON or MessagePack data. +func (d DynamicValue) IsNull() (bool, error) { + if d.JSON != nil { + decoder := json.NewDecoder(bytes.NewReader(d.JSON)) + token, err := decoder.Token() + + if err != nil { + return false, fmt.Errorf("unable to read DynamicValue JSON token: %w", err) + } + + if token != nil { + return false, nil + } + + return true, nil + } + + if d.MsgPack != nil { + decoder := msgpack.NewDecoder(bytes.NewReader(d.MsgPack)) + code, err := decoder.PeekCode() + + if err != nil { + return false, fmt.Errorf("unable to read DynamicValue MsgPack code: %w", err) + } + + // Extensions are considered unknown + if msgpcode.IsExt(code) || code != msgpcode.Nil { + return false, nil + } + + return true, nil + } + + return false, fmt.Errorf("unable to read DynamicValue: %w", ErrUnknownDynamicValueType) +} + // Unmarshal returns a `tftypes.Value` that represents the information // contained in the DynamicValue in an easy-to-interact-with way. It is the // main purpose of the DynamicValue type, and is how provider developers should diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/diag/diagnostics.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/diag/diagnostics.go index fbec5677cb1b..29bed4540c44 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/diag/diagnostics.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/diag/diagnostics.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package diag import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/diag/doc.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/diag/doc.go index 0c73dab12fe6..faaba2285cd0 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/diag/doc.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/diag/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package diag contains diagnostics helpers. These implementations are // intentionally outside the public API. package diag diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/attribute_path.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/attribute_path.go index c25c3cb0d95c..267bc223da3b 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/attribute_path.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/attribute_path.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/data_source.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/data_source.go index 130f6a821982..f6c3c3663eea 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/data_source.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/data_source.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( @@ -5,6 +8,16 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6" ) +func DataSourceMetadata(in *tfplugin6.GetMetadata_DataSourceMetadata) *tfprotov6.DataSourceMetadata { + if in == nil { + return nil + } + + return &tfprotov6.DataSourceMetadata{ + TypeName: in.TypeName, + } +} + func ValidateDataResourceConfigRequest(in *tfplugin6.ValidateDataResourceConfig_Request) (*tfprotov6.ValidateDataResourceConfigRequest, error) { resp := &tfprotov6.ValidateDataResourceConfigRequest{ TypeName: in.TypeName, diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/diagnostic.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/diagnostic.go index ac92796fb1fa..21673ca0da8c 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/diagnostic.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/diagnostic.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/provider.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/provider.go index 2000b9bb0c45..0bf78cb8e581 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/provider.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/provider.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( @@ -5,6 +8,40 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6" ) +func GetMetadataRequest(in *tfplugin6.GetMetadata_Request) (*tfprotov6.GetMetadataRequest, error) { + return &tfprotov6.GetMetadataRequest{}, nil +} + +func GetMetadataResponse(in *tfplugin6.GetMetadata_Response) (*tfprotov6.GetMetadataResponse, error) { + if in == nil { + return nil, nil + } + + resp := &tfprotov6.GetMetadataResponse{ + DataSources: make([]tfprotov6.DataSourceMetadata, 0, len(in.DataSources)), + Resources: make([]tfprotov6.ResourceMetadata, 0, len(in.Resources)), + ServerCapabilities: ServerCapabilities(in.ServerCapabilities), + } + + for _, datasource := range in.DataSources { + resp.DataSources = append(resp.DataSources, *DataSourceMetadata(datasource)) + } + + for _, resource := range in.Resources { + resp.Resources = append(resp.Resources, *ResourceMetadata(resource)) + } + + diags, err := Diagnostics(in.Diagnostics) + + if err != nil { + return resp, err + } + + resp.Diagnostics = diags + + return resp, nil +} + func GetProviderSchemaRequest(in *tfplugin6.GetProviderSchema_Request) (*tfprotov6.GetProviderSchemaRequest, error) { return &tfprotov6.GetProviderSchemaRequest{}, nil } diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/resource.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/resource.go index 94addd801251..385ef134d0b6 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/resource.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/resource.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( @@ -7,6 +10,16 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6" ) +func ResourceMetadata(in *tfplugin6.GetMetadata_ResourceMetadata) *tfprotov6.ResourceMetadata { + if in == nil { + return nil + } + + return &tfprotov6.ResourceMetadata{ + TypeName: in.TypeName, + } +} + func ValidateResourceConfigRequest(in *tfplugin6.ValidateResourceConfig_Request) (*tfprotov6.ValidateResourceConfigRequest, error) { resp := &tfprotov6.ValidateResourceConfigRequest{ TypeName: in.TypeName, diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/schema.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/schema.go index db720246f510..b4cb1399faca 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/schema.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/schema.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/server_capabilities.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/server_capabilities.go new file mode 100644 index 000000000000..58ba96ab5d97 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/server_capabilities.go @@ -0,0 +1,20 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package fromproto + +import ( + "github.com/hashicorp/terraform-plugin-go/tfprotov6" + "github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6" +) + +func ServerCapabilities(in *tfplugin6.ServerCapabilities) *tfprotov6.ServerCapabilities { + if in == nil { + return nil + } + + return &tfprotov6.ServerCapabilities{ + GetProviderSchemaOptional: in.GetProviderSchemaOptional, + PlanDestroy: in.PlanDestroy, + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/state.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/state.go index 0aa2a5a6a06a..e5470b50d524 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/state.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/state.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/string_kind.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/string_kind.go index f2b1107538ab..bfe82ca8aa6c 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/string_kind.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/string_kind.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/types.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/types.go index 87127f4a6df2..967256b728e9 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/types.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/fromproto/types.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package fromproto import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/context_keys.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/context_keys.go index 15386cd2cc2d..99f55e467d3e 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/context_keys.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/context_keys.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tf6serverlogging // Context key types. diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/doc.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/doc.go index 167a61825acd..29c51245efbc 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/doc.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package tf5serverlogging contains logging functionality specific to // tf5server and tfprotov5 types. package tf6serverlogging diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/downstream_request.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/downstream_request.go index 31ce386aebb3..0fd36326e56f 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/downstream_request.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/downstream_request.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tf6serverlogging import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/server_capabilities.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/server_capabilities.go new file mode 100644 index 000000000000..f6aaf953d99b --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tf6serverlogging/server_capabilities.go @@ -0,0 +1,26 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tf6serverlogging + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-go/internal/logging" + "github.com/hashicorp/terraform-plugin-go/tfprotov6" +) + +// ServerCapabilities generates a TRACE "Announced server capabilities" log. +func ServerCapabilities(ctx context.Context, capabilities *tfprotov6.ServerCapabilities) { + responseFields := map[string]interface{}{ + logging.KeyServerCapabilityGetProviderSchemaOptional: false, + logging.KeyServerCapabilityPlanDestroy: false, + } + + if capabilities != nil { + responseFields[logging.KeyServerCapabilityGetProviderSchemaOptional] = capabilities.GetProviderSchemaOptional + responseFields[logging.KeyServerCapabilityPlanDestroy] = capabilities.PlanDestroy + } + + logging.ProtocolTrace(ctx, "Announced server capabilities", responseFields) +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6/tfplugin6.pb.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6/tfplugin6.pb.go index 817f059ccd79..1e2cd2366a50 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6/tfplugin6.pb.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6/tfplugin6.pb.go @@ -1,6 +1,9 @@ -// Terraform Plugin RPC protocol version 6.3 +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Terraform Plugin RPC protocol version 6.4 // -// This file defines version 6.3 of the RPC protocol. To implement a plugin +// This file defines version 6.4 of the RPC protocol. To implement a plugin // against this protocol, copy this definition into your own codebase and // use protoc to generate stubs for your target language. // @@ -19,8 +22,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.19.4 +// protoc-gen-go v1.31.0 +// protoc v4.23.2 // source: tfplugin6.proto package tfplugin6 @@ -578,6 +581,109 @@ func (x *Schema) GetBlock() *Schema_Block { return nil } +// ServerCapabilities allows providers to communicate extra information +// regarding supported protocol features. This is used to indicate +// availability of certain forward-compatible changes which may be optional +// in a major protocol version, but cannot be tested for directly. +type ServerCapabilities struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The plan_destroy capability signals that a provider expects a call + // to PlanResourceChange when a resource is going to be destroyed. + PlanDestroy bool `protobuf:"varint,1,opt,name=plan_destroy,json=planDestroy,proto3" json:"plan_destroy,omitempty"` + // The get_provider_schema_optional capability indicates that this + // provider does not require calling GetProviderSchema to operate + // normally, and the caller can used a cached copy of the provider's + // schema. + GetProviderSchemaOptional bool `protobuf:"varint,2,opt,name=get_provider_schema_optional,json=getProviderSchemaOptional,proto3" json:"get_provider_schema_optional,omitempty"` +} + +func (x *ServerCapabilities) Reset() { + *x = ServerCapabilities{} + if protoimpl.UnsafeEnabled { + mi := &file_tfplugin6_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerCapabilities) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerCapabilities) ProtoMessage() {} + +func (x *ServerCapabilities) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin6_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServerCapabilities.ProtoReflect.Descriptor instead. +func (*ServerCapabilities) Descriptor() ([]byte, []int) { + return file_tfplugin6_proto_rawDescGZIP(), []int{6} +} + +func (x *ServerCapabilities) GetPlanDestroy() bool { + if x != nil { + return x.PlanDestroy + } + return false +} + +func (x *ServerCapabilities) GetGetProviderSchemaOptional() bool { + if x != nil { + return x.GetProviderSchemaOptional + } + return false +} + +type GetMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetMetadata) Reset() { + *x = GetMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_tfplugin6_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMetadata) ProtoMessage() {} + +func (x *GetMetadata) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin6_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMetadata.ProtoReflect.Descriptor instead. +func (*GetMetadata) Descriptor() ([]byte, []int) { + return file_tfplugin6_proto_rawDescGZIP(), []int{7} +} + type GetProviderSchema struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -587,7 +693,7 @@ type GetProviderSchema struct { func (x *GetProviderSchema) Reset() { *x = GetProviderSchema{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[6] + mi := &file_tfplugin6_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -600,7 +706,7 @@ func (x *GetProviderSchema) String() string { func (*GetProviderSchema) ProtoMessage() {} func (x *GetProviderSchema) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[6] + mi := &file_tfplugin6_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -613,7 +719,7 @@ func (x *GetProviderSchema) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProviderSchema.ProtoReflect.Descriptor instead. func (*GetProviderSchema) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{6} + return file_tfplugin6_proto_rawDescGZIP(), []int{8} } type ValidateProviderConfig struct { @@ -625,7 +731,7 @@ type ValidateProviderConfig struct { func (x *ValidateProviderConfig) Reset() { *x = ValidateProviderConfig{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[7] + mi := &file_tfplugin6_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -638,7 +744,7 @@ func (x *ValidateProviderConfig) String() string { func (*ValidateProviderConfig) ProtoMessage() {} func (x *ValidateProviderConfig) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[7] + mi := &file_tfplugin6_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -651,7 +757,7 @@ func (x *ValidateProviderConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateProviderConfig.ProtoReflect.Descriptor instead. func (*ValidateProviderConfig) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{7} + return file_tfplugin6_proto_rawDescGZIP(), []int{9} } type UpgradeResourceState struct { @@ -663,7 +769,7 @@ type UpgradeResourceState struct { func (x *UpgradeResourceState) Reset() { *x = UpgradeResourceState{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[8] + mi := &file_tfplugin6_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -676,7 +782,7 @@ func (x *UpgradeResourceState) String() string { func (*UpgradeResourceState) ProtoMessage() {} func (x *UpgradeResourceState) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[8] + mi := &file_tfplugin6_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -689,7 +795,7 @@ func (x *UpgradeResourceState) ProtoReflect() protoreflect.Message { // Deprecated: Use UpgradeResourceState.ProtoReflect.Descriptor instead. func (*UpgradeResourceState) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{8} + return file_tfplugin6_proto_rawDescGZIP(), []int{10} } type ValidateResourceConfig struct { @@ -701,7 +807,7 @@ type ValidateResourceConfig struct { func (x *ValidateResourceConfig) Reset() { *x = ValidateResourceConfig{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[9] + mi := &file_tfplugin6_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -714,7 +820,7 @@ func (x *ValidateResourceConfig) String() string { func (*ValidateResourceConfig) ProtoMessage() {} func (x *ValidateResourceConfig) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[9] + mi := &file_tfplugin6_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -727,7 +833,7 @@ func (x *ValidateResourceConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateResourceConfig.ProtoReflect.Descriptor instead. func (*ValidateResourceConfig) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{9} + return file_tfplugin6_proto_rawDescGZIP(), []int{11} } type ValidateDataResourceConfig struct { @@ -739,7 +845,7 @@ type ValidateDataResourceConfig struct { func (x *ValidateDataResourceConfig) Reset() { *x = ValidateDataResourceConfig{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[10] + mi := &file_tfplugin6_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -752,7 +858,7 @@ func (x *ValidateDataResourceConfig) String() string { func (*ValidateDataResourceConfig) ProtoMessage() {} func (x *ValidateDataResourceConfig) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[10] + mi := &file_tfplugin6_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -765,7 +871,7 @@ func (x *ValidateDataResourceConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateDataResourceConfig.ProtoReflect.Descriptor instead. func (*ValidateDataResourceConfig) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{10} + return file_tfplugin6_proto_rawDescGZIP(), []int{12} } type ConfigureProvider struct { @@ -777,7 +883,7 @@ type ConfigureProvider struct { func (x *ConfigureProvider) Reset() { *x = ConfigureProvider{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[11] + mi := &file_tfplugin6_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -790,7 +896,7 @@ func (x *ConfigureProvider) String() string { func (*ConfigureProvider) ProtoMessage() {} func (x *ConfigureProvider) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[11] + mi := &file_tfplugin6_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -803,7 +909,7 @@ func (x *ConfigureProvider) ProtoReflect() protoreflect.Message { // Deprecated: Use ConfigureProvider.ProtoReflect.Descriptor instead. func (*ConfigureProvider) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{11} + return file_tfplugin6_proto_rawDescGZIP(), []int{13} } type ReadResource struct { @@ -815,7 +921,7 @@ type ReadResource struct { func (x *ReadResource) Reset() { *x = ReadResource{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[12] + mi := &file_tfplugin6_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -828,7 +934,7 @@ func (x *ReadResource) String() string { func (*ReadResource) ProtoMessage() {} func (x *ReadResource) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[12] + mi := &file_tfplugin6_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -841,7 +947,7 @@ func (x *ReadResource) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadResource.ProtoReflect.Descriptor instead. func (*ReadResource) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{12} + return file_tfplugin6_proto_rawDescGZIP(), []int{14} } type PlanResourceChange struct { @@ -853,7 +959,7 @@ type PlanResourceChange struct { func (x *PlanResourceChange) Reset() { *x = PlanResourceChange{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[13] + mi := &file_tfplugin6_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -866,7 +972,7 @@ func (x *PlanResourceChange) String() string { func (*PlanResourceChange) ProtoMessage() {} func (x *PlanResourceChange) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[13] + mi := &file_tfplugin6_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -879,7 +985,7 @@ func (x *PlanResourceChange) ProtoReflect() protoreflect.Message { // Deprecated: Use PlanResourceChange.ProtoReflect.Descriptor instead. func (*PlanResourceChange) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{13} + return file_tfplugin6_proto_rawDescGZIP(), []int{15} } type ApplyResourceChange struct { @@ -891,7 +997,7 @@ type ApplyResourceChange struct { func (x *ApplyResourceChange) Reset() { *x = ApplyResourceChange{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[14] + mi := &file_tfplugin6_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -904,7 +1010,7 @@ func (x *ApplyResourceChange) String() string { func (*ApplyResourceChange) ProtoMessage() {} func (x *ApplyResourceChange) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[14] + mi := &file_tfplugin6_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -917,7 +1023,7 @@ func (x *ApplyResourceChange) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyResourceChange.ProtoReflect.Descriptor instead. func (*ApplyResourceChange) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{14} + return file_tfplugin6_proto_rawDescGZIP(), []int{16} } type ImportResourceState struct { @@ -929,7 +1035,7 @@ type ImportResourceState struct { func (x *ImportResourceState) Reset() { *x = ImportResourceState{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[15] + mi := &file_tfplugin6_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -942,7 +1048,7 @@ func (x *ImportResourceState) String() string { func (*ImportResourceState) ProtoMessage() {} func (x *ImportResourceState) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[15] + mi := &file_tfplugin6_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -955,7 +1061,7 @@ func (x *ImportResourceState) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportResourceState.ProtoReflect.Descriptor instead. func (*ImportResourceState) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{15} + return file_tfplugin6_proto_rawDescGZIP(), []int{17} } type ReadDataSource struct { @@ -967,7 +1073,7 @@ type ReadDataSource struct { func (x *ReadDataSource) Reset() { *x = ReadDataSource{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[16] + mi := &file_tfplugin6_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -980,7 +1086,7 @@ func (x *ReadDataSource) String() string { func (*ReadDataSource) ProtoMessage() {} func (x *ReadDataSource) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[16] + mi := &file_tfplugin6_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -993,7 +1099,7 @@ func (x *ReadDataSource) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadDataSource.ProtoReflect.Descriptor instead. func (*ReadDataSource) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{16} + return file_tfplugin6_proto_rawDescGZIP(), []int{18} } type AttributePath_Step struct { @@ -1002,6 +1108,7 @@ type AttributePath_Step struct { unknownFields protoimpl.UnknownFields // Types that are assignable to Selector: + // // *AttributePath_Step_AttributeName // *AttributePath_Step_ElementKeyString // *AttributePath_Step_ElementKeyInt @@ -1011,7 +1118,7 @@ type AttributePath_Step struct { func (x *AttributePath_Step) Reset() { *x = AttributePath_Step{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[17] + mi := &file_tfplugin6_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1024,7 +1131,7 @@ func (x *AttributePath_Step) String() string { func (*AttributePath_Step) ProtoMessage() {} func (x *AttributePath_Step) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[17] + mi := &file_tfplugin6_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1103,7 +1210,7 @@ type StopProvider_Request struct { func (x *StopProvider_Request) Reset() { *x = StopProvider_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[18] + mi := &file_tfplugin6_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1116,7 +1223,7 @@ func (x *StopProvider_Request) String() string { func (*StopProvider_Request) ProtoMessage() {} func (x *StopProvider_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[18] + mi := &file_tfplugin6_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1143,7 +1250,7 @@ type StopProvider_Response struct { func (x *StopProvider_Response) Reset() { *x = StopProvider_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[19] + mi := &file_tfplugin6_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1156,7 +1263,7 @@ func (x *StopProvider_Response) String() string { func (*StopProvider_Response) ProtoMessage() {} func (x *StopProvider_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[19] + mi := &file_tfplugin6_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1195,7 +1302,7 @@ type Schema_Block struct { func (x *Schema_Block) Reset() { *x = Schema_Block{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[21] + mi := &file_tfplugin6_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1208,7 +1315,7 @@ func (x *Schema_Block) String() string { func (*Schema_Block) ProtoMessage() {} func (x *Schema_Block) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[21] + mi := &file_tfplugin6_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1286,7 +1393,7 @@ type Schema_Attribute struct { func (x *Schema_Attribute) Reset() { *x = Schema_Attribute{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[22] + mi := &file_tfplugin6_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1299,7 +1406,7 @@ func (x *Schema_Attribute) String() string { func (*Schema_Attribute) ProtoMessage() {} func (x *Schema_Attribute) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[22] + mi := &file_tfplugin6_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1400,7 +1507,7 @@ type Schema_NestedBlock struct { func (x *Schema_NestedBlock) Reset() { *x = Schema_NestedBlock{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[23] + mi := &file_tfplugin6_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1413,7 +1520,7 @@ func (x *Schema_NestedBlock) String() string { func (*Schema_NestedBlock) ProtoMessage() {} func (x *Schema_NestedBlock) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[23] + mi := &file_tfplugin6_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1474,16 +1581,16 @@ type Schema_Object struct { // MinItems and MaxItems were never used in the protocol, and have no // effect on validation. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in tfplugin6.proto. MinItems int64 `protobuf:"varint,4,opt,name=min_items,json=minItems,proto3" json:"min_items,omitempty"` - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in tfplugin6.proto. MaxItems int64 `protobuf:"varint,5,opt,name=max_items,json=maxItems,proto3" json:"max_items,omitempty"` } func (x *Schema_Object) Reset() { *x = Schema_Object{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[24] + mi := &file_tfplugin6_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1496,7 +1603,7 @@ func (x *Schema_Object) String() string { func (*Schema_Object) ProtoMessage() {} func (x *Schema_Object) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[24] + mi := &file_tfplugin6_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1526,7 +1633,7 @@ func (x *Schema_Object) GetNesting() Schema_Object_NestingMode { return Schema_Object_INVALID } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in tfplugin6.proto. func (x *Schema_Object) GetMinItems() int64 { if x != nil { return x.MinItems @@ -1534,7 +1641,7 @@ func (x *Schema_Object) GetMinItems() int64 { return 0 } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in tfplugin6.proto. func (x *Schema_Object) GetMaxItems() int64 { if x != nil { return x.MaxItems @@ -1542,29 +1649,29 @@ func (x *Schema_Object) GetMaxItems() int64 { return 0 } -type GetProviderSchema_Request struct { +type GetMetadata_Request struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *GetProviderSchema_Request) Reset() { - *x = GetProviderSchema_Request{} +func (x *GetMetadata_Request) Reset() { + *x = GetMetadata_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[25] + mi := &file_tfplugin6_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetProviderSchema_Request) String() string { +func (x *GetMetadata_Request) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProviderSchema_Request) ProtoMessage() {} +func (*GetMetadata_Request) ProtoMessage() {} -func (x *GetProviderSchema_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[25] +func (x *GetMetadata_Request) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin6_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1575,41 +1682,39 @@ func (x *GetProviderSchema_Request) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProviderSchema_Request.ProtoReflect.Descriptor instead. -func (*GetProviderSchema_Request) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{6, 0} +// Deprecated: Use GetMetadata_Request.ProtoReflect.Descriptor instead. +func (*GetMetadata_Request) Descriptor() ([]byte, []int) { + return file_tfplugin6_proto_rawDescGZIP(), []int{7, 0} } -type GetProviderSchema_Response struct { +type GetMetadata_Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Provider *Schema `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"` - ResourceSchemas map[string]*Schema `protobuf:"bytes,2,rep,name=resource_schemas,json=resourceSchemas,proto3" json:"resource_schemas,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - DataSourceSchemas map[string]*Schema `protobuf:"bytes,3,rep,name=data_source_schemas,json=dataSourceSchemas,proto3" json:"data_source_schemas,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Diagnostics []*Diagnostic `protobuf:"bytes,4,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` - ProviderMeta *Schema `protobuf:"bytes,5,opt,name=provider_meta,json=providerMeta,proto3" json:"provider_meta,omitempty"` - ServerCapabilities *GetProviderSchema_ServerCapabilities `protobuf:"bytes,6,opt,name=server_capabilities,json=serverCapabilities,proto3" json:"server_capabilities,omitempty"` + ServerCapabilities *ServerCapabilities `protobuf:"bytes,1,opt,name=server_capabilities,json=serverCapabilities,proto3" json:"server_capabilities,omitempty"` + Diagnostics []*Diagnostic `protobuf:"bytes,2,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` + DataSources []*GetMetadata_DataSourceMetadata `protobuf:"bytes,3,rep,name=data_sources,json=dataSources,proto3" json:"data_sources,omitempty"` + Resources []*GetMetadata_ResourceMetadata `protobuf:"bytes,4,rep,name=resources,proto3" json:"resources,omitempty"` } -func (x *GetProviderSchema_Response) Reset() { - *x = GetProviderSchema_Response{} +func (x *GetMetadata_Response) Reset() { + *x = GetMetadata_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[26] + mi := &file_tfplugin6_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetProviderSchema_Response) String() string { +func (x *GetMetadata_Response) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProviderSchema_Response) ProtoMessage() {} +func (*GetMetadata_Response) ProtoMessage() {} -func (x *GetProviderSchema_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[26] +func (x *GetMetadata_Response) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin6_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1620,84 +1725,201 @@ func (x *GetProviderSchema_Response) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProviderSchema_Response.ProtoReflect.Descriptor instead. -func (*GetProviderSchema_Response) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{6, 1} +// Deprecated: Use GetMetadata_Response.ProtoReflect.Descriptor instead. +func (*GetMetadata_Response) Descriptor() ([]byte, []int) { + return file_tfplugin6_proto_rawDescGZIP(), []int{7, 1} } -func (x *GetProviderSchema_Response) GetProvider() *Schema { +func (x *GetMetadata_Response) GetServerCapabilities() *ServerCapabilities { if x != nil { - return x.Provider + return x.ServerCapabilities } return nil } -func (x *GetProviderSchema_Response) GetResourceSchemas() map[string]*Schema { +func (x *GetMetadata_Response) GetDiagnostics() []*Diagnostic { if x != nil { - return x.ResourceSchemas + return x.Diagnostics } return nil } -func (x *GetProviderSchema_Response) GetDataSourceSchemas() map[string]*Schema { +func (x *GetMetadata_Response) GetDataSources() []*GetMetadata_DataSourceMetadata { if x != nil { - return x.DataSourceSchemas + return x.DataSources } return nil } -func (x *GetProviderSchema_Response) GetDiagnostics() []*Diagnostic { +func (x *GetMetadata_Response) GetResources() []*GetMetadata_ResourceMetadata { if x != nil { - return x.Diagnostics + return x.Resources } return nil } -func (x *GetProviderSchema_Response) GetProviderMeta() *Schema { +type GetMetadata_DataSourceMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeName string `protobuf:"bytes,1,opt,name=type_name,json=typeName,proto3" json:"type_name,omitempty"` +} + +func (x *GetMetadata_DataSourceMetadata) Reset() { + *x = GetMetadata_DataSourceMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_tfplugin6_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMetadata_DataSourceMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMetadata_DataSourceMetadata) ProtoMessage() {} + +func (x *GetMetadata_DataSourceMetadata) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin6_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMetadata_DataSourceMetadata.ProtoReflect.Descriptor instead. +func (*GetMetadata_DataSourceMetadata) Descriptor() ([]byte, []int) { + return file_tfplugin6_proto_rawDescGZIP(), []int{7, 2} +} + +func (x *GetMetadata_DataSourceMetadata) GetTypeName() string { if x != nil { - return x.ProviderMeta + return x.TypeName } - return nil + return "" +} + +type GetMetadata_ResourceMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeName string `protobuf:"bytes,1,opt,name=type_name,json=typeName,proto3" json:"type_name,omitempty"` +} + +func (x *GetMetadata_ResourceMetadata) Reset() { + *x = GetMetadata_ResourceMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_tfplugin6_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMetadata_ResourceMetadata) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *GetProviderSchema_Response) GetServerCapabilities() *GetProviderSchema_ServerCapabilities { +func (*GetMetadata_ResourceMetadata) ProtoMessage() {} + +func (x *GetMetadata_ResourceMetadata) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin6_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMetadata_ResourceMetadata.ProtoReflect.Descriptor instead. +func (*GetMetadata_ResourceMetadata) Descriptor() ([]byte, []int) { + return file_tfplugin6_proto_rawDescGZIP(), []int{7, 3} +} + +func (x *GetMetadata_ResourceMetadata) GetTypeName() string { if x != nil { - return x.ServerCapabilities + return x.TypeName } - return nil + return "" } -// ServerCapabilities allows providers to communicate extra information -// regarding supported protocol features. This is used to indicate -// availability of certain forward-compatible changes which may be optional -// in a major protocol version, but cannot be tested for directly. -type GetProviderSchema_ServerCapabilities struct { +type GetProviderSchema_Request struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields +} - // The plan_destroy capability signals that a provider expects a call - // to PlanResourceChange when a resource is going to be destroyed. - PlanDestroy bool `protobuf:"varint,1,opt,name=plan_destroy,json=planDestroy,proto3" json:"plan_destroy,omitempty"` +func (x *GetProviderSchema_Request) Reset() { + *x = GetProviderSchema_Request{} + if protoimpl.UnsafeEnabled { + mi := &file_tfplugin6_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetProviderSchema_Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetProviderSchema_Request) ProtoMessage() {} + +func (x *GetProviderSchema_Request) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin6_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (x *GetProviderSchema_ServerCapabilities) Reset() { - *x = GetProviderSchema_ServerCapabilities{} +// Deprecated: Use GetProviderSchema_Request.ProtoReflect.Descriptor instead. +func (*GetProviderSchema_Request) Descriptor() ([]byte, []int) { + return file_tfplugin6_proto_rawDescGZIP(), []int{8, 0} +} + +type GetProviderSchema_Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Provider *Schema `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"` + ResourceSchemas map[string]*Schema `protobuf:"bytes,2,rep,name=resource_schemas,json=resourceSchemas,proto3" json:"resource_schemas,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + DataSourceSchemas map[string]*Schema `protobuf:"bytes,3,rep,name=data_source_schemas,json=dataSourceSchemas,proto3" json:"data_source_schemas,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Diagnostics []*Diagnostic `protobuf:"bytes,4,rep,name=diagnostics,proto3" json:"diagnostics,omitempty"` + ProviderMeta *Schema `protobuf:"bytes,5,opt,name=provider_meta,json=providerMeta,proto3" json:"provider_meta,omitempty"` + ServerCapabilities *ServerCapabilities `protobuf:"bytes,6,opt,name=server_capabilities,json=serverCapabilities,proto3" json:"server_capabilities,omitempty"` +} + +func (x *GetProviderSchema_Response) Reset() { + *x = GetProviderSchema_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[27] + mi := &file_tfplugin6_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetProviderSchema_ServerCapabilities) String() string { +func (x *GetProviderSchema_Response) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProviderSchema_ServerCapabilities) ProtoMessage() {} +func (*GetProviderSchema_Response) ProtoMessage() {} -func (x *GetProviderSchema_ServerCapabilities) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[27] +func (x *GetProviderSchema_Response) ProtoReflect() protoreflect.Message { + mi := &file_tfplugin6_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1708,16 +1930,51 @@ func (x *GetProviderSchema_ServerCapabilities) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use GetProviderSchema_ServerCapabilities.ProtoReflect.Descriptor instead. -func (*GetProviderSchema_ServerCapabilities) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{6, 2} +// Deprecated: Use GetProviderSchema_Response.ProtoReflect.Descriptor instead. +func (*GetProviderSchema_Response) Descriptor() ([]byte, []int) { + return file_tfplugin6_proto_rawDescGZIP(), []int{8, 1} } -func (x *GetProviderSchema_ServerCapabilities) GetPlanDestroy() bool { +func (x *GetProviderSchema_Response) GetProvider() *Schema { if x != nil { - return x.PlanDestroy + return x.Provider } - return false + return nil +} + +func (x *GetProviderSchema_Response) GetResourceSchemas() map[string]*Schema { + if x != nil { + return x.ResourceSchemas + } + return nil +} + +func (x *GetProviderSchema_Response) GetDataSourceSchemas() map[string]*Schema { + if x != nil { + return x.DataSourceSchemas + } + return nil +} + +func (x *GetProviderSchema_Response) GetDiagnostics() []*Diagnostic { + if x != nil { + return x.Diagnostics + } + return nil +} + +func (x *GetProviderSchema_Response) GetProviderMeta() *Schema { + if x != nil { + return x.ProviderMeta + } + return nil +} + +func (x *GetProviderSchema_Response) GetServerCapabilities() *ServerCapabilities { + if x != nil { + return x.ServerCapabilities + } + return nil } type ValidateProviderConfig_Request struct { @@ -1731,7 +1988,7 @@ type ValidateProviderConfig_Request struct { func (x *ValidateProviderConfig_Request) Reset() { *x = ValidateProviderConfig_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[30] + mi := &file_tfplugin6_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1744,7 +2001,7 @@ func (x *ValidateProviderConfig_Request) String() string { func (*ValidateProviderConfig_Request) ProtoMessage() {} func (x *ValidateProviderConfig_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[30] + mi := &file_tfplugin6_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1757,7 +2014,7 @@ func (x *ValidateProviderConfig_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateProviderConfig_Request.ProtoReflect.Descriptor instead. func (*ValidateProviderConfig_Request) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{7, 0} + return file_tfplugin6_proto_rawDescGZIP(), []int{9, 0} } func (x *ValidateProviderConfig_Request) GetConfig() *DynamicValue { @@ -1778,7 +2035,7 @@ type ValidateProviderConfig_Response struct { func (x *ValidateProviderConfig_Response) Reset() { *x = ValidateProviderConfig_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[31] + mi := &file_tfplugin6_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1791,7 +2048,7 @@ func (x *ValidateProviderConfig_Response) String() string { func (*ValidateProviderConfig_Response) ProtoMessage() {} func (x *ValidateProviderConfig_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[31] + mi := &file_tfplugin6_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1804,7 +2061,7 @@ func (x *ValidateProviderConfig_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateProviderConfig_Response.ProtoReflect.Descriptor instead. func (*ValidateProviderConfig_Response) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{7, 1} + return file_tfplugin6_proto_rawDescGZIP(), []int{9, 1} } func (x *ValidateProviderConfig_Response) GetDiagnostics() []*Diagnostic { @@ -1842,7 +2099,7 @@ type UpgradeResourceState_Request struct { func (x *UpgradeResourceState_Request) Reset() { *x = UpgradeResourceState_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[32] + mi := &file_tfplugin6_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1855,7 +2112,7 @@ func (x *UpgradeResourceState_Request) String() string { func (*UpgradeResourceState_Request) ProtoMessage() {} func (x *UpgradeResourceState_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[32] + mi := &file_tfplugin6_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1868,7 +2125,7 @@ func (x *UpgradeResourceState_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use UpgradeResourceState_Request.ProtoReflect.Descriptor instead. func (*UpgradeResourceState_Request) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{8, 0} + return file_tfplugin6_proto_rawDescGZIP(), []int{10, 0} } func (x *UpgradeResourceState_Request) GetTypeName() string { @@ -1910,7 +2167,7 @@ type UpgradeResourceState_Response struct { func (x *UpgradeResourceState_Response) Reset() { *x = UpgradeResourceState_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[33] + mi := &file_tfplugin6_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1923,7 +2180,7 @@ func (x *UpgradeResourceState_Response) String() string { func (*UpgradeResourceState_Response) ProtoMessage() {} func (x *UpgradeResourceState_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[33] + mi := &file_tfplugin6_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1936,7 +2193,7 @@ func (x *UpgradeResourceState_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use UpgradeResourceState_Response.ProtoReflect.Descriptor instead. func (*UpgradeResourceState_Response) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{8, 1} + return file_tfplugin6_proto_rawDescGZIP(), []int{10, 1} } func (x *UpgradeResourceState_Response) GetUpgradedState() *DynamicValue { @@ -1965,7 +2222,7 @@ type ValidateResourceConfig_Request struct { func (x *ValidateResourceConfig_Request) Reset() { *x = ValidateResourceConfig_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[34] + mi := &file_tfplugin6_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1978,7 +2235,7 @@ func (x *ValidateResourceConfig_Request) String() string { func (*ValidateResourceConfig_Request) ProtoMessage() {} func (x *ValidateResourceConfig_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[34] + mi := &file_tfplugin6_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1991,7 +2248,7 @@ func (x *ValidateResourceConfig_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateResourceConfig_Request.ProtoReflect.Descriptor instead. func (*ValidateResourceConfig_Request) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{9, 0} + return file_tfplugin6_proto_rawDescGZIP(), []int{11, 0} } func (x *ValidateResourceConfig_Request) GetTypeName() string { @@ -2019,7 +2276,7 @@ type ValidateResourceConfig_Response struct { func (x *ValidateResourceConfig_Response) Reset() { *x = ValidateResourceConfig_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[35] + mi := &file_tfplugin6_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2032,7 +2289,7 @@ func (x *ValidateResourceConfig_Response) String() string { func (*ValidateResourceConfig_Response) ProtoMessage() {} func (x *ValidateResourceConfig_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[35] + mi := &file_tfplugin6_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2045,7 +2302,7 @@ func (x *ValidateResourceConfig_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidateResourceConfig_Response.ProtoReflect.Descriptor instead. func (*ValidateResourceConfig_Response) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{9, 1} + return file_tfplugin6_proto_rawDescGZIP(), []int{11, 1} } func (x *ValidateResourceConfig_Response) GetDiagnostics() []*Diagnostic { @@ -2067,7 +2324,7 @@ type ValidateDataResourceConfig_Request struct { func (x *ValidateDataResourceConfig_Request) Reset() { *x = ValidateDataResourceConfig_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[36] + mi := &file_tfplugin6_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2080,7 +2337,7 @@ func (x *ValidateDataResourceConfig_Request) String() string { func (*ValidateDataResourceConfig_Request) ProtoMessage() {} func (x *ValidateDataResourceConfig_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[36] + mi := &file_tfplugin6_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2093,7 +2350,7 @@ func (x *ValidateDataResourceConfig_Request) ProtoReflect() protoreflect.Message // Deprecated: Use ValidateDataResourceConfig_Request.ProtoReflect.Descriptor instead. func (*ValidateDataResourceConfig_Request) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{10, 0} + return file_tfplugin6_proto_rawDescGZIP(), []int{12, 0} } func (x *ValidateDataResourceConfig_Request) GetTypeName() string { @@ -2121,7 +2378,7 @@ type ValidateDataResourceConfig_Response struct { func (x *ValidateDataResourceConfig_Response) Reset() { *x = ValidateDataResourceConfig_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[37] + mi := &file_tfplugin6_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2134,7 +2391,7 @@ func (x *ValidateDataResourceConfig_Response) String() string { func (*ValidateDataResourceConfig_Response) ProtoMessage() {} func (x *ValidateDataResourceConfig_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[37] + mi := &file_tfplugin6_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2147,7 +2404,7 @@ func (x *ValidateDataResourceConfig_Response) ProtoReflect() protoreflect.Messag // Deprecated: Use ValidateDataResourceConfig_Response.ProtoReflect.Descriptor instead. func (*ValidateDataResourceConfig_Response) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{10, 1} + return file_tfplugin6_proto_rawDescGZIP(), []int{12, 1} } func (x *ValidateDataResourceConfig_Response) GetDiagnostics() []*Diagnostic { @@ -2169,7 +2426,7 @@ type ConfigureProvider_Request struct { func (x *ConfigureProvider_Request) Reset() { *x = ConfigureProvider_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[38] + mi := &file_tfplugin6_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2182,7 +2439,7 @@ func (x *ConfigureProvider_Request) String() string { func (*ConfigureProvider_Request) ProtoMessage() {} func (x *ConfigureProvider_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[38] + mi := &file_tfplugin6_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2195,7 +2452,7 @@ func (x *ConfigureProvider_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ConfigureProvider_Request.ProtoReflect.Descriptor instead. func (*ConfigureProvider_Request) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{11, 0} + return file_tfplugin6_proto_rawDescGZIP(), []int{13, 0} } func (x *ConfigureProvider_Request) GetTerraformVersion() string { @@ -2223,7 +2480,7 @@ type ConfigureProvider_Response struct { func (x *ConfigureProvider_Response) Reset() { *x = ConfigureProvider_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[39] + mi := &file_tfplugin6_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2236,7 +2493,7 @@ func (x *ConfigureProvider_Response) String() string { func (*ConfigureProvider_Response) ProtoMessage() {} func (x *ConfigureProvider_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[39] + mi := &file_tfplugin6_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2249,7 +2506,7 @@ func (x *ConfigureProvider_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use ConfigureProvider_Response.ProtoReflect.Descriptor instead. func (*ConfigureProvider_Response) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{11, 1} + return file_tfplugin6_proto_rawDescGZIP(), []int{13, 1} } func (x *ConfigureProvider_Response) GetDiagnostics() []*Diagnostic { @@ -2281,7 +2538,7 @@ type ReadResource_Request struct { func (x *ReadResource_Request) Reset() { *x = ReadResource_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[40] + mi := &file_tfplugin6_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2294,7 +2551,7 @@ func (x *ReadResource_Request) String() string { func (*ReadResource_Request) ProtoMessage() {} func (x *ReadResource_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[40] + mi := &file_tfplugin6_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2307,7 +2564,7 @@ func (x *ReadResource_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadResource_Request.ProtoReflect.Descriptor instead. func (*ReadResource_Request) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{12, 0} + return file_tfplugin6_proto_rawDescGZIP(), []int{14, 0} } func (x *ReadResource_Request) GetTypeName() string { @@ -2351,7 +2608,7 @@ type ReadResource_Response struct { func (x *ReadResource_Response) Reset() { *x = ReadResource_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[41] + mi := &file_tfplugin6_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2364,7 +2621,7 @@ func (x *ReadResource_Response) String() string { func (*ReadResource_Response) ProtoMessage() {} func (x *ReadResource_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[41] + mi := &file_tfplugin6_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2377,7 +2634,7 @@ func (x *ReadResource_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadResource_Response.ProtoReflect.Descriptor instead. func (*ReadResource_Response) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{12, 1} + return file_tfplugin6_proto_rawDescGZIP(), []int{14, 1} } func (x *ReadResource_Response) GetNewState() *DynamicValue { @@ -2417,7 +2674,7 @@ type PlanResourceChange_Request struct { func (x *PlanResourceChange_Request) Reset() { *x = PlanResourceChange_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[42] + mi := &file_tfplugin6_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2430,7 +2687,7 @@ func (x *PlanResourceChange_Request) String() string { func (*PlanResourceChange_Request) ProtoMessage() {} func (x *PlanResourceChange_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[42] + mi := &file_tfplugin6_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2443,7 +2700,7 @@ func (x *PlanResourceChange_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use PlanResourceChange_Request.ProtoReflect.Descriptor instead. func (*PlanResourceChange_Request) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{13, 0} + return file_tfplugin6_proto_rawDescGZIP(), []int{15, 0} } func (x *PlanResourceChange_Request) GetTypeName() string { @@ -2505,16 +2762,16 @@ type PlanResourceChange_Response struct { // specific details of the legacy SDK type system, and are not a general // mechanism to avoid proper type handling in providers. // - // ==== DO NOT USE THIS ==== - // ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ==== - // ==== DO NOT USE THIS ==== + // ==== DO NOT USE THIS ==== + // ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ==== + // ==== DO NOT USE THIS ==== LegacyTypeSystem bool `protobuf:"varint,5,opt,name=legacy_type_system,json=legacyTypeSystem,proto3" json:"legacy_type_system,omitempty"` } func (x *PlanResourceChange_Response) Reset() { *x = PlanResourceChange_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[43] + mi := &file_tfplugin6_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2527,7 +2784,7 @@ func (x *PlanResourceChange_Response) String() string { func (*PlanResourceChange_Response) ProtoMessage() {} func (x *PlanResourceChange_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[43] + mi := &file_tfplugin6_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2540,7 +2797,7 @@ func (x *PlanResourceChange_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use PlanResourceChange_Response.ProtoReflect.Descriptor instead. func (*PlanResourceChange_Response) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{13, 1} + return file_tfplugin6_proto_rawDescGZIP(), []int{15, 1} } func (x *PlanResourceChange_Response) GetPlannedState() *DynamicValue { @@ -2594,7 +2851,7 @@ type ApplyResourceChange_Request struct { func (x *ApplyResourceChange_Request) Reset() { *x = ApplyResourceChange_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[44] + mi := &file_tfplugin6_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2607,7 +2864,7 @@ func (x *ApplyResourceChange_Request) String() string { func (*ApplyResourceChange_Request) ProtoMessage() {} func (x *ApplyResourceChange_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[44] + mi := &file_tfplugin6_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2620,7 +2877,7 @@ func (x *ApplyResourceChange_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyResourceChange_Request.ProtoReflect.Descriptor instead. func (*ApplyResourceChange_Request) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{14, 0} + return file_tfplugin6_proto_rawDescGZIP(), []int{16, 0} } func (x *ApplyResourceChange_Request) GetTypeName() string { @@ -2681,16 +2938,16 @@ type ApplyResourceChange_Response struct { // specific details of the legacy SDK type system, and are not a general // mechanism to avoid proper type handling in providers. // - // ==== DO NOT USE THIS ==== - // ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ==== - // ==== DO NOT USE THIS ==== + // ==== DO NOT USE THIS ==== + // ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ==== + // ==== DO NOT USE THIS ==== LegacyTypeSystem bool `protobuf:"varint,4,opt,name=legacy_type_system,json=legacyTypeSystem,proto3" json:"legacy_type_system,omitempty"` } func (x *ApplyResourceChange_Response) Reset() { *x = ApplyResourceChange_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[45] + mi := &file_tfplugin6_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2703,7 +2960,7 @@ func (x *ApplyResourceChange_Response) String() string { func (*ApplyResourceChange_Response) ProtoMessage() {} func (x *ApplyResourceChange_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[45] + mi := &file_tfplugin6_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2716,7 +2973,7 @@ func (x *ApplyResourceChange_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyResourceChange_Response.ProtoReflect.Descriptor instead. func (*ApplyResourceChange_Response) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{14, 1} + return file_tfplugin6_proto_rawDescGZIP(), []int{16, 1} } func (x *ApplyResourceChange_Response) GetNewState() *DynamicValue { @@ -2759,7 +3016,7 @@ type ImportResourceState_Request struct { func (x *ImportResourceState_Request) Reset() { *x = ImportResourceState_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[46] + mi := &file_tfplugin6_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2772,7 +3029,7 @@ func (x *ImportResourceState_Request) String() string { func (*ImportResourceState_Request) ProtoMessage() {} func (x *ImportResourceState_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[46] + mi := &file_tfplugin6_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2785,7 +3042,7 @@ func (x *ImportResourceState_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportResourceState_Request.ProtoReflect.Descriptor instead. func (*ImportResourceState_Request) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{15, 0} + return file_tfplugin6_proto_rawDescGZIP(), []int{17, 0} } func (x *ImportResourceState_Request) GetTypeName() string { @@ -2815,7 +3072,7 @@ type ImportResourceState_ImportedResource struct { func (x *ImportResourceState_ImportedResource) Reset() { *x = ImportResourceState_ImportedResource{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[47] + mi := &file_tfplugin6_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2828,7 +3085,7 @@ func (x *ImportResourceState_ImportedResource) String() string { func (*ImportResourceState_ImportedResource) ProtoMessage() {} func (x *ImportResourceState_ImportedResource) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[47] + mi := &file_tfplugin6_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2841,7 +3098,7 @@ func (x *ImportResourceState_ImportedResource) ProtoReflect() protoreflect.Messa // Deprecated: Use ImportResourceState_ImportedResource.ProtoReflect.Descriptor instead. func (*ImportResourceState_ImportedResource) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{15, 1} + return file_tfplugin6_proto_rawDescGZIP(), []int{17, 1} } func (x *ImportResourceState_ImportedResource) GetTypeName() string { @@ -2877,7 +3134,7 @@ type ImportResourceState_Response struct { func (x *ImportResourceState_Response) Reset() { *x = ImportResourceState_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[48] + mi := &file_tfplugin6_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2890,7 +3147,7 @@ func (x *ImportResourceState_Response) String() string { func (*ImportResourceState_Response) ProtoMessage() {} func (x *ImportResourceState_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[48] + mi := &file_tfplugin6_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2903,7 +3160,7 @@ func (x *ImportResourceState_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportResourceState_Response.ProtoReflect.Descriptor instead. func (*ImportResourceState_Response) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{15, 2} + return file_tfplugin6_proto_rawDescGZIP(), []int{17, 2} } func (x *ImportResourceState_Response) GetImportedResources() []*ImportResourceState_ImportedResource { @@ -2933,7 +3190,7 @@ type ReadDataSource_Request struct { func (x *ReadDataSource_Request) Reset() { *x = ReadDataSource_Request{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[49] + mi := &file_tfplugin6_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2946,7 +3203,7 @@ func (x *ReadDataSource_Request) String() string { func (*ReadDataSource_Request) ProtoMessage() {} func (x *ReadDataSource_Request) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[49] + mi := &file_tfplugin6_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2959,7 +3216,7 @@ func (x *ReadDataSource_Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadDataSource_Request.ProtoReflect.Descriptor instead. func (*ReadDataSource_Request) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{16, 0} + return file_tfplugin6_proto_rawDescGZIP(), []int{18, 0} } func (x *ReadDataSource_Request) GetTypeName() string { @@ -2995,7 +3252,7 @@ type ReadDataSource_Response struct { func (x *ReadDataSource_Response) Reset() { *x = ReadDataSource_Response{} if protoimpl.UnsafeEnabled { - mi := &file_tfplugin6_proto_msgTypes[50] + mi := &file_tfplugin6_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3008,7 +3265,7 @@ func (x *ReadDataSource_Response) String() string { func (*ReadDataSource_Response) ProtoMessage() {} func (x *ReadDataSource_Response) ProtoReflect() protoreflect.Message { - mi := &file_tfplugin6_proto_msgTypes[50] + mi := &file_tfplugin6_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3021,7 +3278,7 @@ func (x *ReadDataSource_Response) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadDataSource_Response.ProtoReflect.Descriptor instead. func (*ReadDataSource_Response) Descriptor() ([]byte, []int) { - return file_tfplugin6_proto_rawDescGZIP(), []int{16, 1} + return file_tfplugin6_proto_rawDescGZIP(), []int{18, 1} } func (x *ReadDataSource_Response) GetState() *DynamicValue { @@ -3169,337 +3426,372 @@ var file_tfplugin6_proto_rawDesc = []byte{ 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x53, - 0x45, 0x54, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x41, 0x50, 0x10, 0x04, 0x22, 0xeb, 0x05, - 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x91, - 0x05, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x65, 0x0a, 0x10, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x73, 0x12, 0x6c, 0x0a, 0x13, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, - 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x64, 0x61, - 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, - 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x04, + 0x45, 0x54, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x41, 0x50, 0x10, 0x04, 0x22, 0x78, 0x0a, + 0x12, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x74, + 0x72, 0x6f, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x6e, 0x44, + 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x12, 0x3f, 0x0a, 0x1c, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x67, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xa7, 0x03, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0xa8, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4e, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, + 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, + 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x12, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, + 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, - 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x36, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, - 0x12, 0x60, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x12, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x1a, 0x55, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, - 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x66, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, 0x0a, 0x16, 0x44, 0x61, 0x74, - 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, - 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x12, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x6e, - 0x5f, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x70, 0x6c, 0x61, 0x6e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x22, 0x99, 0x01, 0x0a, 0x16, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x3a, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, - 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x1a, 0x43, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, - 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, - 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, - 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0x90, 0x02, 0x0a, 0x14, 0x55, 0x70, 0x67, 0x72, - 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x1a, 0x72, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x36, 0x2e, 0x52, 0x61, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x61, 0x77, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x1a, 0x83, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3e, 0x0a, 0x0e, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x0d, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, - 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x16, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x57, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, - 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, - 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x43, - 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, - 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, - 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, - 0x69, 0x63, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x1a, 0x57, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x66, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x1a, 0x31, 0x0a, + 0x12, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x1a, 0x2f, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0xa0, 0x05, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x1a, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0xff, 0x04, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x65, + 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x6c, 0x0a, 0x13, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x47, + 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, + 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x36, 0x0a, 0x0d, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x61, 0x12, 0x4e, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, + 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x1a, 0x55, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x57, 0x0a, 0x16, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x36, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x99, 0x01, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, + 0x3a, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x43, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, - 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, - 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, - 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, - 0x22, 0xc1, 0x01, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x1a, 0x67, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x65, 0x72, 0x72, 0x61, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x65, - 0x72, 0x72, 0x61, 0x66, 0x6f, 0x72, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2f, - 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, - 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, - 0x43, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, - 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, - 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xbc, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, - 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, - 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x61, 0x1a, 0x93, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x34, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, - 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6e, - 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x22, 0xf2, 0x04, 0x0a, 0x12, 0x50, - 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x1a, 0xbb, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, - 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x45, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, - 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, - 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x64, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, - 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x0d, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, - 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x1a, - 0x9d, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0d, - 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x22, 0x90, 0x02, 0x0a, 0x14, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x72, 0x0a, 0x07, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x72, + 0x61, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x52, 0x61, 0x77, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x61, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x83, 0x01, + 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0e, 0x75, 0x70, + 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, + 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x75, 0x70, 0x67, + 0x72, 0x61, 0x64, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, + 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x57, + 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, + 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x43, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, + 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0xba, 0x01, 0x0a, + 0x1a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x57, 0x0a, 0x07, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, - 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x6c, - 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x10, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, - 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0f, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, - 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, - 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, - 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, - 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6c, - 0x65, 0x67, 0x61, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, - 0x92, 0x04, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0xb6, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x6c, - 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, - 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x6e, - 0x6e, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x43, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0xc1, 0x01, 0x0a, 0x11, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x1a, + 0x67, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x65, + 0x72, 0x72, 0x61, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x65, 0x72, 0x72, 0x61, 0x66, 0x6f, 0x72, 0x6d, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x43, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, + 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0xe3, 0x02, + 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xbc, + 0x01, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, + 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, + 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, + 0x3c, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0x93, 0x01, + 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x6e, 0x65, + 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, + 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x22, 0xf2, 0x04, 0x0a, 0x12, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x1a, 0xbb, 0x02, 0x0a, 0x07, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6c, 0x61, - 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, + 0x65, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x45, 0x0a, + 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, - 0x1a, 0xc1, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, - 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, - 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, - 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, - 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, - 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x10, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x22, 0xed, 0x02, 0x0a, 0x13, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x36, 0x0a, 0x07, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x1a, 0x78, 0x0a, 0x10, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x75, 0x65, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x4e, 0x65, 0x77, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, - 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x1a, 0xa3, - 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x12, 0x69, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x36, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x11, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x64, - 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, - 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x22, 0x9c, 0x02, 0x0a, 0x0e, 0x52, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x95, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, - 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x1a, - 0x72, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, + 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x70, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, + 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0x9d, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, + 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x73, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x6e, + 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, + 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x65, + 0x67, 0x61, 0x63, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x92, 0x04, 0x0a, 0x13, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x1a, 0xb6, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, + 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, - 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, - 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, - 0x69, 0x63, 0x73, 0x2a, 0x25, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4b, 0x69, 0x6e, - 0x64, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, - 0x4d, 0x41, 0x52, 0x4b, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x32, 0xcc, 0x09, 0x0a, 0x08, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x60, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x24, 0x2e, 0x74, - 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x47, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x16, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, - 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x16, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, - 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2a, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x1a, 0x56, + 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, + 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x6c, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, + 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0xc1, 0x01, 0x0a, 0x08, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, + 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, + 0x69, 0x63, 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, + 0x2c, 0x0a, 0x12, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6c, 0x65, 0x67, + 0x61, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0xed, 0x02, + 0x0a, 0x13, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x36, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x1a, 0x78, 0x0a, + 0x10, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, + 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x1a, 0xa3, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x12, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x11, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, + 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0x9c, 0x02, + 0x0a, 0x0e, 0x52, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x1a, 0x95, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3c, 0x0a, 0x0d, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x79, + 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x1a, 0x72, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, + 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, + 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2a, 0x25, 0x0a, 0x0a, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, + 0x41, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x41, 0x52, 0x4b, 0x44, 0x4f, 0x57, + 0x4e, 0x10, 0x01, 0x32, 0x9c, 0x0a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x12, 0x4e, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x1e, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1f, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x60, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x24, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x36, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x66, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, 0x74, + 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x36, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, + 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x2d, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2d, 0x2e, 0x74, 0x66, 0x70, 0x6c, - 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x14, 0x55, 0x70, 0x67, 0x72, - 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x27, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x55, 0x70, 0x67, - 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x74, 0x66, 0x70, 0x6c, + 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x69, 0x0a, 0x14, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x24, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, - 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, - 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x36, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x36, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x12, 0x50, 0x6c, 0x61, 0x6e, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x25, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x55, + 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x11, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x12, 0x24, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x36, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, + 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1f, + 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x20, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x52, 0x65, 0x61, 0x64, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x63, 0x0a, 0x12, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x25, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x36, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, - 0x36, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, - 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, - 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x74, - 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x13, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x2e, 0x74, - 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, - 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, - 0x0e, 0x52, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, - 0x21, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x52, 0x65, 0x61, 0x64, - 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x52, - 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x36, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x36, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x47, 0x5a, 0x45, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, - 0x70, 0x2f, 0x74, 0x65, 0x72, 0x72, 0x61, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x70, 0x6c, 0x75, 0x67, - 0x69, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, 0x66, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x76, 0x36, 0x2f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, - 0x6e, 0x36, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x2e, + 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x36, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, + 0x0a, 0x13, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x36, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, + 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x52, 0x65, 0x61, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x21, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x66, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x51, 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, + 0x1f, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x53, 0x74, 0x6f, 0x70, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x20, 0x2e, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x2e, 0x53, 0x74, 0x6f, + 0x70, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x47, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, 0x6f, 0x72, 0x70, 0x2f, 0x74, 0x65, 0x72, 0x72, 0x61, + 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x74, + 0x66, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x76, 0x36, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x2f, 0x74, 0x66, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x36, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -3515,7 +3807,7 @@ func file_tfplugin6_proto_rawDescGZIP() []byte { } var file_tfplugin6_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_tfplugin6_proto_msgTypes = make([]protoimpl.MessageInfo, 51) +var file_tfplugin6_proto_msgTypes = make([]protoimpl.MessageInfo, 56) var file_tfplugin6_proto_goTypes = []interface{}{ (StringKind)(0), // 0: tfplugin6.StringKind (Diagnostic_Severity)(0), // 1: tfplugin6.Diagnostic.Severity @@ -3527,139 +3819,150 @@ var file_tfplugin6_proto_goTypes = []interface{}{ (*StopProvider)(nil), // 7: tfplugin6.StopProvider (*RawState)(nil), // 8: tfplugin6.RawState (*Schema)(nil), // 9: tfplugin6.Schema - (*GetProviderSchema)(nil), // 10: tfplugin6.GetProviderSchema - (*ValidateProviderConfig)(nil), // 11: tfplugin6.ValidateProviderConfig - (*UpgradeResourceState)(nil), // 12: tfplugin6.UpgradeResourceState - (*ValidateResourceConfig)(nil), // 13: tfplugin6.ValidateResourceConfig - (*ValidateDataResourceConfig)(nil), // 14: tfplugin6.ValidateDataResourceConfig - (*ConfigureProvider)(nil), // 15: tfplugin6.ConfigureProvider - (*ReadResource)(nil), // 16: tfplugin6.ReadResource - (*PlanResourceChange)(nil), // 17: tfplugin6.PlanResourceChange - (*ApplyResourceChange)(nil), // 18: tfplugin6.ApplyResourceChange - (*ImportResourceState)(nil), // 19: tfplugin6.ImportResourceState - (*ReadDataSource)(nil), // 20: tfplugin6.ReadDataSource - (*AttributePath_Step)(nil), // 21: tfplugin6.AttributePath.Step - (*StopProvider_Request)(nil), // 22: tfplugin6.StopProvider.Request - (*StopProvider_Response)(nil), // 23: tfplugin6.StopProvider.Response - nil, // 24: tfplugin6.RawState.FlatmapEntry - (*Schema_Block)(nil), // 25: tfplugin6.Schema.Block - (*Schema_Attribute)(nil), // 26: tfplugin6.Schema.Attribute - (*Schema_NestedBlock)(nil), // 27: tfplugin6.Schema.NestedBlock - (*Schema_Object)(nil), // 28: tfplugin6.Schema.Object - (*GetProviderSchema_Request)(nil), // 29: tfplugin6.GetProviderSchema.Request - (*GetProviderSchema_Response)(nil), // 30: tfplugin6.GetProviderSchema.Response - (*GetProviderSchema_ServerCapabilities)(nil), // 31: tfplugin6.GetProviderSchema.ServerCapabilities - nil, // 32: tfplugin6.GetProviderSchema.Response.ResourceSchemasEntry - nil, // 33: tfplugin6.GetProviderSchema.Response.DataSourceSchemasEntry - (*ValidateProviderConfig_Request)(nil), // 34: tfplugin6.ValidateProviderConfig.Request - (*ValidateProviderConfig_Response)(nil), // 35: tfplugin6.ValidateProviderConfig.Response - (*UpgradeResourceState_Request)(nil), // 36: tfplugin6.UpgradeResourceState.Request - (*UpgradeResourceState_Response)(nil), // 37: tfplugin6.UpgradeResourceState.Response - (*ValidateResourceConfig_Request)(nil), // 38: tfplugin6.ValidateResourceConfig.Request - (*ValidateResourceConfig_Response)(nil), // 39: tfplugin6.ValidateResourceConfig.Response - (*ValidateDataResourceConfig_Request)(nil), // 40: tfplugin6.ValidateDataResourceConfig.Request - (*ValidateDataResourceConfig_Response)(nil), // 41: tfplugin6.ValidateDataResourceConfig.Response - (*ConfigureProvider_Request)(nil), // 42: tfplugin6.ConfigureProvider.Request - (*ConfigureProvider_Response)(nil), // 43: tfplugin6.ConfigureProvider.Response - (*ReadResource_Request)(nil), // 44: tfplugin6.ReadResource.Request - (*ReadResource_Response)(nil), // 45: tfplugin6.ReadResource.Response - (*PlanResourceChange_Request)(nil), // 46: tfplugin6.PlanResourceChange.Request - (*PlanResourceChange_Response)(nil), // 47: tfplugin6.PlanResourceChange.Response - (*ApplyResourceChange_Request)(nil), // 48: tfplugin6.ApplyResourceChange.Request - (*ApplyResourceChange_Response)(nil), // 49: tfplugin6.ApplyResourceChange.Response - (*ImportResourceState_Request)(nil), // 50: tfplugin6.ImportResourceState.Request - (*ImportResourceState_ImportedResource)(nil), // 51: tfplugin6.ImportResourceState.ImportedResource - (*ImportResourceState_Response)(nil), // 52: tfplugin6.ImportResourceState.Response - (*ReadDataSource_Request)(nil), // 53: tfplugin6.ReadDataSource.Request - (*ReadDataSource_Response)(nil), // 54: tfplugin6.ReadDataSource.Response + (*ServerCapabilities)(nil), // 10: tfplugin6.ServerCapabilities + (*GetMetadata)(nil), // 11: tfplugin6.GetMetadata + (*GetProviderSchema)(nil), // 12: tfplugin6.GetProviderSchema + (*ValidateProviderConfig)(nil), // 13: tfplugin6.ValidateProviderConfig + (*UpgradeResourceState)(nil), // 14: tfplugin6.UpgradeResourceState + (*ValidateResourceConfig)(nil), // 15: tfplugin6.ValidateResourceConfig + (*ValidateDataResourceConfig)(nil), // 16: tfplugin6.ValidateDataResourceConfig + (*ConfigureProvider)(nil), // 17: tfplugin6.ConfigureProvider + (*ReadResource)(nil), // 18: tfplugin6.ReadResource + (*PlanResourceChange)(nil), // 19: tfplugin6.PlanResourceChange + (*ApplyResourceChange)(nil), // 20: tfplugin6.ApplyResourceChange + (*ImportResourceState)(nil), // 21: tfplugin6.ImportResourceState + (*ReadDataSource)(nil), // 22: tfplugin6.ReadDataSource + (*AttributePath_Step)(nil), // 23: tfplugin6.AttributePath.Step + (*StopProvider_Request)(nil), // 24: tfplugin6.StopProvider.Request + (*StopProvider_Response)(nil), // 25: tfplugin6.StopProvider.Response + nil, // 26: tfplugin6.RawState.FlatmapEntry + (*Schema_Block)(nil), // 27: tfplugin6.Schema.Block + (*Schema_Attribute)(nil), // 28: tfplugin6.Schema.Attribute + (*Schema_NestedBlock)(nil), // 29: tfplugin6.Schema.NestedBlock + (*Schema_Object)(nil), // 30: tfplugin6.Schema.Object + (*GetMetadata_Request)(nil), // 31: tfplugin6.GetMetadata.Request + (*GetMetadata_Response)(nil), // 32: tfplugin6.GetMetadata.Response + (*GetMetadata_DataSourceMetadata)(nil), // 33: tfplugin6.GetMetadata.DataSourceMetadata + (*GetMetadata_ResourceMetadata)(nil), // 34: tfplugin6.GetMetadata.ResourceMetadata + (*GetProviderSchema_Request)(nil), // 35: tfplugin6.GetProviderSchema.Request + (*GetProviderSchema_Response)(nil), // 36: tfplugin6.GetProviderSchema.Response + nil, // 37: tfplugin6.GetProviderSchema.Response.ResourceSchemasEntry + nil, // 38: tfplugin6.GetProviderSchema.Response.DataSourceSchemasEntry + (*ValidateProviderConfig_Request)(nil), // 39: tfplugin6.ValidateProviderConfig.Request + (*ValidateProviderConfig_Response)(nil), // 40: tfplugin6.ValidateProviderConfig.Response + (*UpgradeResourceState_Request)(nil), // 41: tfplugin6.UpgradeResourceState.Request + (*UpgradeResourceState_Response)(nil), // 42: tfplugin6.UpgradeResourceState.Response + (*ValidateResourceConfig_Request)(nil), // 43: tfplugin6.ValidateResourceConfig.Request + (*ValidateResourceConfig_Response)(nil), // 44: tfplugin6.ValidateResourceConfig.Response + (*ValidateDataResourceConfig_Request)(nil), // 45: tfplugin6.ValidateDataResourceConfig.Request + (*ValidateDataResourceConfig_Response)(nil), // 46: tfplugin6.ValidateDataResourceConfig.Response + (*ConfigureProvider_Request)(nil), // 47: tfplugin6.ConfigureProvider.Request + (*ConfigureProvider_Response)(nil), // 48: tfplugin6.ConfigureProvider.Response + (*ReadResource_Request)(nil), // 49: tfplugin6.ReadResource.Request + (*ReadResource_Response)(nil), // 50: tfplugin6.ReadResource.Response + (*PlanResourceChange_Request)(nil), // 51: tfplugin6.PlanResourceChange.Request + (*PlanResourceChange_Response)(nil), // 52: tfplugin6.PlanResourceChange.Response + (*ApplyResourceChange_Request)(nil), // 53: tfplugin6.ApplyResourceChange.Request + (*ApplyResourceChange_Response)(nil), // 54: tfplugin6.ApplyResourceChange.Response + (*ImportResourceState_Request)(nil), // 55: tfplugin6.ImportResourceState.Request + (*ImportResourceState_ImportedResource)(nil), // 56: tfplugin6.ImportResourceState.ImportedResource + (*ImportResourceState_Response)(nil), // 57: tfplugin6.ImportResourceState.Response + (*ReadDataSource_Request)(nil), // 58: tfplugin6.ReadDataSource.Request + (*ReadDataSource_Response)(nil), // 59: tfplugin6.ReadDataSource.Response } var file_tfplugin6_proto_depIdxs = []int32{ 1, // 0: tfplugin6.Diagnostic.severity:type_name -> tfplugin6.Diagnostic.Severity 6, // 1: tfplugin6.Diagnostic.attribute:type_name -> tfplugin6.AttributePath - 21, // 2: tfplugin6.AttributePath.steps:type_name -> tfplugin6.AttributePath.Step - 24, // 3: tfplugin6.RawState.flatmap:type_name -> tfplugin6.RawState.FlatmapEntry - 25, // 4: tfplugin6.Schema.block:type_name -> tfplugin6.Schema.Block - 26, // 5: tfplugin6.Schema.Block.attributes:type_name -> tfplugin6.Schema.Attribute - 27, // 6: tfplugin6.Schema.Block.block_types:type_name -> tfplugin6.Schema.NestedBlock + 23, // 2: tfplugin6.AttributePath.steps:type_name -> tfplugin6.AttributePath.Step + 26, // 3: tfplugin6.RawState.flatmap:type_name -> tfplugin6.RawState.FlatmapEntry + 27, // 4: tfplugin6.Schema.block:type_name -> tfplugin6.Schema.Block + 28, // 5: tfplugin6.Schema.Block.attributes:type_name -> tfplugin6.Schema.Attribute + 29, // 6: tfplugin6.Schema.Block.block_types:type_name -> tfplugin6.Schema.NestedBlock 0, // 7: tfplugin6.Schema.Block.description_kind:type_name -> tfplugin6.StringKind - 28, // 8: tfplugin6.Schema.Attribute.nested_type:type_name -> tfplugin6.Schema.Object + 30, // 8: tfplugin6.Schema.Attribute.nested_type:type_name -> tfplugin6.Schema.Object 0, // 9: tfplugin6.Schema.Attribute.description_kind:type_name -> tfplugin6.StringKind - 25, // 10: tfplugin6.Schema.NestedBlock.block:type_name -> tfplugin6.Schema.Block + 27, // 10: tfplugin6.Schema.NestedBlock.block:type_name -> tfplugin6.Schema.Block 2, // 11: tfplugin6.Schema.NestedBlock.nesting:type_name -> tfplugin6.Schema.NestedBlock.NestingMode - 26, // 12: tfplugin6.Schema.Object.attributes:type_name -> tfplugin6.Schema.Attribute + 28, // 12: tfplugin6.Schema.Object.attributes:type_name -> tfplugin6.Schema.Attribute 3, // 13: tfplugin6.Schema.Object.nesting:type_name -> tfplugin6.Schema.Object.NestingMode - 9, // 14: tfplugin6.GetProviderSchema.Response.provider:type_name -> tfplugin6.Schema - 32, // 15: tfplugin6.GetProviderSchema.Response.resource_schemas:type_name -> tfplugin6.GetProviderSchema.Response.ResourceSchemasEntry - 33, // 16: tfplugin6.GetProviderSchema.Response.data_source_schemas:type_name -> tfplugin6.GetProviderSchema.Response.DataSourceSchemasEntry - 5, // 17: tfplugin6.GetProviderSchema.Response.diagnostics:type_name -> tfplugin6.Diagnostic - 9, // 18: tfplugin6.GetProviderSchema.Response.provider_meta:type_name -> tfplugin6.Schema - 31, // 19: tfplugin6.GetProviderSchema.Response.server_capabilities:type_name -> tfplugin6.GetProviderSchema.ServerCapabilities - 9, // 20: tfplugin6.GetProviderSchema.Response.ResourceSchemasEntry.value:type_name -> tfplugin6.Schema - 9, // 21: tfplugin6.GetProviderSchema.Response.DataSourceSchemasEntry.value:type_name -> tfplugin6.Schema - 4, // 22: tfplugin6.ValidateProviderConfig.Request.config:type_name -> tfplugin6.DynamicValue - 5, // 23: tfplugin6.ValidateProviderConfig.Response.diagnostics:type_name -> tfplugin6.Diagnostic - 8, // 24: tfplugin6.UpgradeResourceState.Request.raw_state:type_name -> tfplugin6.RawState - 4, // 25: tfplugin6.UpgradeResourceState.Response.upgraded_state:type_name -> tfplugin6.DynamicValue - 5, // 26: tfplugin6.UpgradeResourceState.Response.diagnostics:type_name -> tfplugin6.Diagnostic - 4, // 27: tfplugin6.ValidateResourceConfig.Request.config:type_name -> tfplugin6.DynamicValue - 5, // 28: tfplugin6.ValidateResourceConfig.Response.diagnostics:type_name -> tfplugin6.Diagnostic - 4, // 29: tfplugin6.ValidateDataResourceConfig.Request.config:type_name -> tfplugin6.DynamicValue - 5, // 30: tfplugin6.ValidateDataResourceConfig.Response.diagnostics:type_name -> tfplugin6.Diagnostic - 4, // 31: tfplugin6.ConfigureProvider.Request.config:type_name -> tfplugin6.DynamicValue - 5, // 32: tfplugin6.ConfigureProvider.Response.diagnostics:type_name -> tfplugin6.Diagnostic - 4, // 33: tfplugin6.ReadResource.Request.current_state:type_name -> tfplugin6.DynamicValue - 4, // 34: tfplugin6.ReadResource.Request.provider_meta:type_name -> tfplugin6.DynamicValue - 4, // 35: tfplugin6.ReadResource.Response.new_state:type_name -> tfplugin6.DynamicValue - 5, // 36: tfplugin6.ReadResource.Response.diagnostics:type_name -> tfplugin6.Diagnostic - 4, // 37: tfplugin6.PlanResourceChange.Request.prior_state:type_name -> tfplugin6.DynamicValue - 4, // 38: tfplugin6.PlanResourceChange.Request.proposed_new_state:type_name -> tfplugin6.DynamicValue - 4, // 39: tfplugin6.PlanResourceChange.Request.config:type_name -> tfplugin6.DynamicValue - 4, // 40: tfplugin6.PlanResourceChange.Request.provider_meta:type_name -> tfplugin6.DynamicValue - 4, // 41: tfplugin6.PlanResourceChange.Response.planned_state:type_name -> tfplugin6.DynamicValue - 6, // 42: tfplugin6.PlanResourceChange.Response.requires_replace:type_name -> tfplugin6.AttributePath - 5, // 43: tfplugin6.PlanResourceChange.Response.diagnostics:type_name -> tfplugin6.Diagnostic - 4, // 44: tfplugin6.ApplyResourceChange.Request.prior_state:type_name -> tfplugin6.DynamicValue - 4, // 45: tfplugin6.ApplyResourceChange.Request.planned_state:type_name -> tfplugin6.DynamicValue - 4, // 46: tfplugin6.ApplyResourceChange.Request.config:type_name -> tfplugin6.DynamicValue - 4, // 47: tfplugin6.ApplyResourceChange.Request.provider_meta:type_name -> tfplugin6.DynamicValue - 4, // 48: tfplugin6.ApplyResourceChange.Response.new_state:type_name -> tfplugin6.DynamicValue - 5, // 49: tfplugin6.ApplyResourceChange.Response.diagnostics:type_name -> tfplugin6.Diagnostic - 4, // 50: tfplugin6.ImportResourceState.ImportedResource.state:type_name -> tfplugin6.DynamicValue - 51, // 51: tfplugin6.ImportResourceState.Response.imported_resources:type_name -> tfplugin6.ImportResourceState.ImportedResource - 5, // 52: tfplugin6.ImportResourceState.Response.diagnostics:type_name -> tfplugin6.Diagnostic - 4, // 53: tfplugin6.ReadDataSource.Request.config:type_name -> tfplugin6.DynamicValue - 4, // 54: tfplugin6.ReadDataSource.Request.provider_meta:type_name -> tfplugin6.DynamicValue - 4, // 55: tfplugin6.ReadDataSource.Response.state:type_name -> tfplugin6.DynamicValue - 5, // 56: tfplugin6.ReadDataSource.Response.diagnostics:type_name -> tfplugin6.Diagnostic - 29, // 57: tfplugin6.Provider.GetProviderSchema:input_type -> tfplugin6.GetProviderSchema.Request - 34, // 58: tfplugin6.Provider.ValidateProviderConfig:input_type -> tfplugin6.ValidateProviderConfig.Request - 38, // 59: tfplugin6.Provider.ValidateResourceConfig:input_type -> tfplugin6.ValidateResourceConfig.Request - 40, // 60: tfplugin6.Provider.ValidateDataResourceConfig:input_type -> tfplugin6.ValidateDataResourceConfig.Request - 36, // 61: tfplugin6.Provider.UpgradeResourceState:input_type -> tfplugin6.UpgradeResourceState.Request - 42, // 62: tfplugin6.Provider.ConfigureProvider:input_type -> tfplugin6.ConfigureProvider.Request - 44, // 63: tfplugin6.Provider.ReadResource:input_type -> tfplugin6.ReadResource.Request - 46, // 64: tfplugin6.Provider.PlanResourceChange:input_type -> tfplugin6.PlanResourceChange.Request - 48, // 65: tfplugin6.Provider.ApplyResourceChange:input_type -> tfplugin6.ApplyResourceChange.Request - 50, // 66: tfplugin6.Provider.ImportResourceState:input_type -> tfplugin6.ImportResourceState.Request - 53, // 67: tfplugin6.Provider.ReadDataSource:input_type -> tfplugin6.ReadDataSource.Request - 22, // 68: tfplugin6.Provider.StopProvider:input_type -> tfplugin6.StopProvider.Request - 30, // 69: tfplugin6.Provider.GetProviderSchema:output_type -> tfplugin6.GetProviderSchema.Response - 35, // 70: tfplugin6.Provider.ValidateProviderConfig:output_type -> tfplugin6.ValidateProviderConfig.Response - 39, // 71: tfplugin6.Provider.ValidateResourceConfig:output_type -> tfplugin6.ValidateResourceConfig.Response - 41, // 72: tfplugin6.Provider.ValidateDataResourceConfig:output_type -> tfplugin6.ValidateDataResourceConfig.Response - 37, // 73: tfplugin6.Provider.UpgradeResourceState:output_type -> tfplugin6.UpgradeResourceState.Response - 43, // 74: tfplugin6.Provider.ConfigureProvider:output_type -> tfplugin6.ConfigureProvider.Response - 45, // 75: tfplugin6.Provider.ReadResource:output_type -> tfplugin6.ReadResource.Response - 47, // 76: tfplugin6.Provider.PlanResourceChange:output_type -> tfplugin6.PlanResourceChange.Response - 49, // 77: tfplugin6.Provider.ApplyResourceChange:output_type -> tfplugin6.ApplyResourceChange.Response - 52, // 78: tfplugin6.Provider.ImportResourceState:output_type -> tfplugin6.ImportResourceState.Response - 54, // 79: tfplugin6.Provider.ReadDataSource:output_type -> tfplugin6.ReadDataSource.Response - 23, // 80: tfplugin6.Provider.StopProvider:output_type -> tfplugin6.StopProvider.Response - 69, // [69:81] is the sub-list for method output_type - 57, // [57:69] is the sub-list for method input_type - 57, // [57:57] is the sub-list for extension type_name - 57, // [57:57] is the sub-list for extension extendee - 0, // [0:57] is the sub-list for field type_name + 10, // 14: tfplugin6.GetMetadata.Response.server_capabilities:type_name -> tfplugin6.ServerCapabilities + 5, // 15: tfplugin6.GetMetadata.Response.diagnostics:type_name -> tfplugin6.Diagnostic + 33, // 16: tfplugin6.GetMetadata.Response.data_sources:type_name -> tfplugin6.GetMetadata.DataSourceMetadata + 34, // 17: tfplugin6.GetMetadata.Response.resources:type_name -> tfplugin6.GetMetadata.ResourceMetadata + 9, // 18: tfplugin6.GetProviderSchema.Response.provider:type_name -> tfplugin6.Schema + 37, // 19: tfplugin6.GetProviderSchema.Response.resource_schemas:type_name -> tfplugin6.GetProviderSchema.Response.ResourceSchemasEntry + 38, // 20: tfplugin6.GetProviderSchema.Response.data_source_schemas:type_name -> tfplugin6.GetProviderSchema.Response.DataSourceSchemasEntry + 5, // 21: tfplugin6.GetProviderSchema.Response.diagnostics:type_name -> tfplugin6.Diagnostic + 9, // 22: tfplugin6.GetProviderSchema.Response.provider_meta:type_name -> tfplugin6.Schema + 10, // 23: tfplugin6.GetProviderSchema.Response.server_capabilities:type_name -> tfplugin6.ServerCapabilities + 9, // 24: tfplugin6.GetProviderSchema.Response.ResourceSchemasEntry.value:type_name -> tfplugin6.Schema + 9, // 25: tfplugin6.GetProviderSchema.Response.DataSourceSchemasEntry.value:type_name -> tfplugin6.Schema + 4, // 26: tfplugin6.ValidateProviderConfig.Request.config:type_name -> tfplugin6.DynamicValue + 5, // 27: tfplugin6.ValidateProviderConfig.Response.diagnostics:type_name -> tfplugin6.Diagnostic + 8, // 28: tfplugin6.UpgradeResourceState.Request.raw_state:type_name -> tfplugin6.RawState + 4, // 29: tfplugin6.UpgradeResourceState.Response.upgraded_state:type_name -> tfplugin6.DynamicValue + 5, // 30: tfplugin6.UpgradeResourceState.Response.diagnostics:type_name -> tfplugin6.Diagnostic + 4, // 31: tfplugin6.ValidateResourceConfig.Request.config:type_name -> tfplugin6.DynamicValue + 5, // 32: tfplugin6.ValidateResourceConfig.Response.diagnostics:type_name -> tfplugin6.Diagnostic + 4, // 33: tfplugin6.ValidateDataResourceConfig.Request.config:type_name -> tfplugin6.DynamicValue + 5, // 34: tfplugin6.ValidateDataResourceConfig.Response.diagnostics:type_name -> tfplugin6.Diagnostic + 4, // 35: tfplugin6.ConfigureProvider.Request.config:type_name -> tfplugin6.DynamicValue + 5, // 36: tfplugin6.ConfigureProvider.Response.diagnostics:type_name -> tfplugin6.Diagnostic + 4, // 37: tfplugin6.ReadResource.Request.current_state:type_name -> tfplugin6.DynamicValue + 4, // 38: tfplugin6.ReadResource.Request.provider_meta:type_name -> tfplugin6.DynamicValue + 4, // 39: tfplugin6.ReadResource.Response.new_state:type_name -> tfplugin6.DynamicValue + 5, // 40: tfplugin6.ReadResource.Response.diagnostics:type_name -> tfplugin6.Diagnostic + 4, // 41: tfplugin6.PlanResourceChange.Request.prior_state:type_name -> tfplugin6.DynamicValue + 4, // 42: tfplugin6.PlanResourceChange.Request.proposed_new_state:type_name -> tfplugin6.DynamicValue + 4, // 43: tfplugin6.PlanResourceChange.Request.config:type_name -> tfplugin6.DynamicValue + 4, // 44: tfplugin6.PlanResourceChange.Request.provider_meta:type_name -> tfplugin6.DynamicValue + 4, // 45: tfplugin6.PlanResourceChange.Response.planned_state:type_name -> tfplugin6.DynamicValue + 6, // 46: tfplugin6.PlanResourceChange.Response.requires_replace:type_name -> tfplugin6.AttributePath + 5, // 47: tfplugin6.PlanResourceChange.Response.diagnostics:type_name -> tfplugin6.Diagnostic + 4, // 48: tfplugin6.ApplyResourceChange.Request.prior_state:type_name -> tfplugin6.DynamicValue + 4, // 49: tfplugin6.ApplyResourceChange.Request.planned_state:type_name -> tfplugin6.DynamicValue + 4, // 50: tfplugin6.ApplyResourceChange.Request.config:type_name -> tfplugin6.DynamicValue + 4, // 51: tfplugin6.ApplyResourceChange.Request.provider_meta:type_name -> tfplugin6.DynamicValue + 4, // 52: tfplugin6.ApplyResourceChange.Response.new_state:type_name -> tfplugin6.DynamicValue + 5, // 53: tfplugin6.ApplyResourceChange.Response.diagnostics:type_name -> tfplugin6.Diagnostic + 4, // 54: tfplugin6.ImportResourceState.ImportedResource.state:type_name -> tfplugin6.DynamicValue + 56, // 55: tfplugin6.ImportResourceState.Response.imported_resources:type_name -> tfplugin6.ImportResourceState.ImportedResource + 5, // 56: tfplugin6.ImportResourceState.Response.diagnostics:type_name -> tfplugin6.Diagnostic + 4, // 57: tfplugin6.ReadDataSource.Request.config:type_name -> tfplugin6.DynamicValue + 4, // 58: tfplugin6.ReadDataSource.Request.provider_meta:type_name -> tfplugin6.DynamicValue + 4, // 59: tfplugin6.ReadDataSource.Response.state:type_name -> tfplugin6.DynamicValue + 5, // 60: tfplugin6.ReadDataSource.Response.diagnostics:type_name -> tfplugin6.Diagnostic + 31, // 61: tfplugin6.Provider.GetMetadata:input_type -> tfplugin6.GetMetadata.Request + 35, // 62: tfplugin6.Provider.GetProviderSchema:input_type -> tfplugin6.GetProviderSchema.Request + 39, // 63: tfplugin6.Provider.ValidateProviderConfig:input_type -> tfplugin6.ValidateProviderConfig.Request + 43, // 64: tfplugin6.Provider.ValidateResourceConfig:input_type -> tfplugin6.ValidateResourceConfig.Request + 45, // 65: tfplugin6.Provider.ValidateDataResourceConfig:input_type -> tfplugin6.ValidateDataResourceConfig.Request + 41, // 66: tfplugin6.Provider.UpgradeResourceState:input_type -> tfplugin6.UpgradeResourceState.Request + 47, // 67: tfplugin6.Provider.ConfigureProvider:input_type -> tfplugin6.ConfigureProvider.Request + 49, // 68: tfplugin6.Provider.ReadResource:input_type -> tfplugin6.ReadResource.Request + 51, // 69: tfplugin6.Provider.PlanResourceChange:input_type -> tfplugin6.PlanResourceChange.Request + 53, // 70: tfplugin6.Provider.ApplyResourceChange:input_type -> tfplugin6.ApplyResourceChange.Request + 55, // 71: tfplugin6.Provider.ImportResourceState:input_type -> tfplugin6.ImportResourceState.Request + 58, // 72: tfplugin6.Provider.ReadDataSource:input_type -> tfplugin6.ReadDataSource.Request + 24, // 73: tfplugin6.Provider.StopProvider:input_type -> tfplugin6.StopProvider.Request + 32, // 74: tfplugin6.Provider.GetMetadata:output_type -> tfplugin6.GetMetadata.Response + 36, // 75: tfplugin6.Provider.GetProviderSchema:output_type -> tfplugin6.GetProviderSchema.Response + 40, // 76: tfplugin6.Provider.ValidateProviderConfig:output_type -> tfplugin6.ValidateProviderConfig.Response + 44, // 77: tfplugin6.Provider.ValidateResourceConfig:output_type -> tfplugin6.ValidateResourceConfig.Response + 46, // 78: tfplugin6.Provider.ValidateDataResourceConfig:output_type -> tfplugin6.ValidateDataResourceConfig.Response + 42, // 79: tfplugin6.Provider.UpgradeResourceState:output_type -> tfplugin6.UpgradeResourceState.Response + 48, // 80: tfplugin6.Provider.ConfigureProvider:output_type -> tfplugin6.ConfigureProvider.Response + 50, // 81: tfplugin6.Provider.ReadResource:output_type -> tfplugin6.ReadResource.Response + 52, // 82: tfplugin6.Provider.PlanResourceChange:output_type -> tfplugin6.PlanResourceChange.Response + 54, // 83: tfplugin6.Provider.ApplyResourceChange:output_type -> tfplugin6.ApplyResourceChange.Response + 57, // 84: tfplugin6.Provider.ImportResourceState:output_type -> tfplugin6.ImportResourceState.Response + 59, // 85: tfplugin6.Provider.ReadDataSource:output_type -> tfplugin6.ReadDataSource.Response + 25, // 86: tfplugin6.Provider.StopProvider:output_type -> tfplugin6.StopProvider.Response + 74, // [74:87] is the sub-list for method output_type + 61, // [61:74] is the sub-list for method input_type + 61, // [61:61] is the sub-list for extension type_name + 61, // [61:61] is the sub-list for extension extendee + 0, // [0:61] is the sub-list for field type_name } func init() { file_tfplugin6_proto_init() } @@ -3741,7 +4044,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProviderSchema); i { + switch v := v.(*ServerCapabilities); i { case 0: return &v.state case 1: @@ -3753,7 +4056,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateProviderConfig); i { + switch v := v.(*GetMetadata); i { case 0: return &v.state case 1: @@ -3765,7 +4068,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpgradeResourceState); i { + switch v := v.(*GetProviderSchema); i { case 0: return &v.state case 1: @@ -3777,7 +4080,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateResourceConfig); i { + switch v := v.(*ValidateProviderConfig); i { case 0: return &v.state case 1: @@ -3789,7 +4092,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateDataResourceConfig); i { + switch v := v.(*UpgradeResourceState); i { case 0: return &v.state case 1: @@ -3801,7 +4104,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConfigureProvider); i { + switch v := v.(*ValidateResourceConfig); i { case 0: return &v.state case 1: @@ -3813,7 +4116,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReadResource); i { + switch v := v.(*ValidateDataResourceConfig); i { case 0: return &v.state case 1: @@ -3825,7 +4128,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PlanResourceChange); i { + switch v := v.(*ConfigureProvider); i { case 0: return &v.state case 1: @@ -3837,7 +4140,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyResourceChange); i { + switch v := v.(*ReadResource); i { case 0: return &v.state case 1: @@ -3849,7 +4152,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportResourceState); i { + switch v := v.(*PlanResourceChange); i { case 0: return &v.state case 1: @@ -3861,7 +4164,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReadDataSource); i { + switch v := v.(*ApplyResourceChange); i { case 0: return &v.state case 1: @@ -3873,7 +4176,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AttributePath_Step); i { + switch v := v.(*ImportResourceState); i { case 0: return &v.state case 1: @@ -3885,7 +4188,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StopProvider_Request); i { + switch v := v.(*ReadDataSource); i { case 0: return &v.state case 1: @@ -3897,7 +4200,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StopProvider_Response); i { + switch v := v.(*AttributePath_Step); i { case 0: return &v.state case 1: @@ -3908,8 +4211,8 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Schema_Block); i { + file_tfplugin6_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StopProvider_Request); i { case 0: return &v.state case 1: @@ -3920,8 +4223,8 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Schema_Attribute); i { + file_tfplugin6_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StopProvider_Response); i { case 0: return &v.state case 1: @@ -3933,7 +4236,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Schema_NestedBlock); i { + switch v := v.(*Schema_Block); i { case 0: return &v.state case 1: @@ -3945,7 +4248,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Schema_Object); i { + switch v := v.(*Schema_Attribute); i { case 0: return &v.state case 1: @@ -3957,7 +4260,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProviderSchema_Request); i { + switch v := v.(*Schema_NestedBlock); i { case 0: return &v.state case 1: @@ -3969,7 +4272,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProviderSchema_Response); i { + switch v := v.(*Schema_Object); i { case 0: return &v.state case 1: @@ -3981,7 +4284,31 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProviderSchema_ServerCapabilities); i { + switch v := v.(*GetMetadata_Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tfplugin6_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMetadata_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tfplugin6_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMetadata_DataSourceMetadata); i { case 0: return &v.state case 1: @@ -3993,7 +4320,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateProviderConfig_Request); i { + switch v := v.(*GetMetadata_ResourceMetadata); i { case 0: return &v.state case 1: @@ -4005,7 +4332,7 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidateProviderConfig_Response); i { + switch v := v.(*GetProviderSchema_Request); i { case 0: return &v.state case 1: @@ -4017,6 +4344,42 @@ func file_tfplugin6_proto_init() { } } file_tfplugin6_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetProviderSchema_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tfplugin6_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidateProviderConfig_Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tfplugin6_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidateProviderConfig_Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tfplugin6_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpgradeResourceState_Request); i { case 0: return &v.state @@ -4028,7 +4391,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpgradeResourceState_Response); i { case 0: return &v.state @@ -4040,7 +4403,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidateResourceConfig_Request); i { case 0: return &v.state @@ -4052,7 +4415,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidateResourceConfig_Response); i { case 0: return &v.state @@ -4064,7 +4427,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidateDataResourceConfig_Request); i { case 0: return &v.state @@ -4076,7 +4439,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidateDataResourceConfig_Response); i { case 0: return &v.state @@ -4088,7 +4451,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfigureProvider_Request); i { case 0: return &v.state @@ -4100,7 +4463,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfigureProvider_Response); i { case 0: return &v.state @@ -4112,7 +4475,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadResource_Request); i { case 0: return &v.state @@ -4124,7 +4487,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadResource_Response); i { case 0: return &v.state @@ -4136,7 +4499,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlanResourceChange_Request); i { case 0: return &v.state @@ -4148,7 +4511,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlanResourceChange_Response); i { case 0: return &v.state @@ -4160,7 +4523,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyResourceChange_Request); i { case 0: return &v.state @@ -4172,7 +4535,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyResourceChange_Response); i { case 0: return &v.state @@ -4184,7 +4547,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportResourceState_Request); i { case 0: return &v.state @@ -4196,7 +4559,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportResourceState_ImportedResource); i { case 0: return &v.state @@ -4208,7 +4571,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImportResourceState_Response); i { case 0: return &v.state @@ -4220,7 +4583,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadDataSource_Request); i { case 0: return &v.state @@ -4232,7 +4595,7 @@ func file_tfplugin6_proto_init() { return nil } } - file_tfplugin6_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_tfplugin6_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadDataSource_Response); i { case 0: return &v.state @@ -4245,7 +4608,7 @@ func file_tfplugin6_proto_init() { } } } - file_tfplugin6_proto_msgTypes[17].OneofWrappers = []interface{}{ + file_tfplugin6_proto_msgTypes[19].OneofWrappers = []interface{}{ (*AttributePath_Step_AttributeName)(nil), (*AttributePath_Step_ElementKeyString)(nil), (*AttributePath_Step_ElementKeyInt)(nil), @@ -4256,7 +4619,7 @@ func file_tfplugin6_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_tfplugin6_proto_rawDesc, NumEnums: 4, - NumMessages: 51, + NumMessages: 56, NumExtensions: 0, NumServices: 1, }, diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6/tfplugin6.proto b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6/tfplugin6.proto index affb15fb4600..a20ee8f82552 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6/tfplugin6.proto +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6/tfplugin6.proto @@ -1,6 +1,9 @@ -// Terraform Plugin RPC protocol version 6.3 +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Terraform Plugin RPC protocol version 6.4 // -// This file defines version 6.3 of the RPC protocol. To implement a plugin +// This file defines version 6.4 of the RPC protocol. To implement a plugin // against this protocol, copy this definition into your own codebase and // use protoc to generate stubs for your target language. // @@ -144,8 +147,34 @@ message Schema { Block block = 2; } +// ServerCapabilities allows providers to communicate extra information +// regarding supported protocol features. This is used to indicate +// availability of certain forward-compatible changes which may be optional +// in a major protocol version, but cannot be tested for directly. +message ServerCapabilities { + // The plan_destroy capability signals that a provider expects a call + // to PlanResourceChange when a resource is going to be destroyed. + bool plan_destroy = 1; + + // The get_provider_schema_optional capability indicates that this + // provider does not require calling GetProviderSchema to operate + // normally, and the caller can used a cached copy of the provider's + // schema. + bool get_provider_schema_optional = 2; +} + service Provider { //////// Information about what a provider supports/expects + + // GetMetadata returns upfront information about server capabilities and + // supported resource types without requiring the server to instantiate all + // schema information, which may be memory intensive. This RPC is optional, + // where clients may receive an unimplemented RPC error. Clients should + // ignore the error and call the GetProviderSchema RPC as a fallback. + rpc GetMetadata(GetMetadata.Request) returns (GetMetadata.Response); + + // GetSchema returns schema information for the provider, data resources, + // and managed resources. rpc GetProviderSchema(GetProviderSchema.Request) returns (GetProviderSchema.Response); rpc ValidateProviderConfig(ValidateProviderConfig.Request) returns (ValidateProviderConfig.Response); rpc ValidateResourceConfig(ValidateResourceConfig.Request) returns (ValidateResourceConfig.Response); @@ -167,6 +196,26 @@ service Provider { rpc StopProvider(StopProvider.Request) returns (StopProvider.Response); } +message GetMetadata { + message Request { + } + + message Response { + ServerCapabilities server_capabilities = 1; + repeated Diagnostic diagnostics = 2; + repeated DataSourceMetadata data_sources = 3; + repeated ResourceMetadata resources = 4; + } + + message DataSourceMetadata { + string type_name = 1; + } + + message ResourceMetadata { + string type_name = 1; + } +} + message GetProviderSchema { message Request { } @@ -178,17 +227,6 @@ message GetProviderSchema { Schema provider_meta = 5; ServerCapabilities server_capabilities = 6; } - - - // ServerCapabilities allows providers to communicate extra information - // regarding supported protocol features. This is used to indicate - // availability of certain forward-compatible changes which may be optional - // in a major protocol version, but cannot be tested for directly. - message ServerCapabilities { - // The plan_destroy capability signals that a provider expects a call - // to PlanResourceChange when a resource is going to be destroyed. - bool plan_destroy = 1; - } } message ValidateProviderConfig { diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6/tfplugin6_grpc.pb.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6/tfplugin6_grpc.pb.go index a22d32dc9ed4..4e92cbf4d909 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6/tfplugin6_grpc.pb.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6/tfplugin6_grpc.pb.go @@ -1,7 +1,29 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Terraform Plugin RPC protocol version 6.4 +// +// This file defines version 6.4 of the RPC protocol. To implement a plugin +// against this protocol, copy this definition into your own codebase and +// use protoc to generate stubs for your target language. +// +// This file will not be updated. Any minor versions of protocol 6 to follow +// should copy this file and modify the copy while maintaing backwards +// compatibility. Breaking changes, if any are required, will come +// in a subsequent major version with its own separate proto definition. +// +// Note that only the proto files included in a release tag of Terraform are +// official protocol releases. Proto files taken from other commits may include +// incomplete changes or features that did not make it into a final release. +// In all reasonable cases, plugin developers should take the proto file from +// the tag of the most recent release of Terraform, and not from the main +// branch or any other development branch. +// + // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.19.4 +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.23.2 // source: tfplugin6.proto package tfplugin6 @@ -18,25 +40,48 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + Provider_GetMetadata_FullMethodName = "/tfplugin6.Provider/GetMetadata" + Provider_GetProviderSchema_FullMethodName = "/tfplugin6.Provider/GetProviderSchema" + Provider_ValidateProviderConfig_FullMethodName = "/tfplugin6.Provider/ValidateProviderConfig" + Provider_ValidateResourceConfig_FullMethodName = "/tfplugin6.Provider/ValidateResourceConfig" + Provider_ValidateDataResourceConfig_FullMethodName = "/tfplugin6.Provider/ValidateDataResourceConfig" + Provider_UpgradeResourceState_FullMethodName = "/tfplugin6.Provider/UpgradeResourceState" + Provider_ConfigureProvider_FullMethodName = "/tfplugin6.Provider/ConfigureProvider" + Provider_ReadResource_FullMethodName = "/tfplugin6.Provider/ReadResource" + Provider_PlanResourceChange_FullMethodName = "/tfplugin6.Provider/PlanResourceChange" + Provider_ApplyResourceChange_FullMethodName = "/tfplugin6.Provider/ApplyResourceChange" + Provider_ImportResourceState_FullMethodName = "/tfplugin6.Provider/ImportResourceState" + Provider_ReadDataSource_FullMethodName = "/tfplugin6.Provider/ReadDataSource" + Provider_StopProvider_FullMethodName = "/tfplugin6.Provider/StopProvider" +) + // ProviderClient is the client API for Provider service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type ProviderClient interface { - //////// Information about what a provider supports/expects + // GetMetadata returns upfront information about server capabilities and + // supported resource types without requiring the server to instantiate all + // schema information, which may be memory intensive. This RPC is optional, + // where clients may receive an unimplemented RPC error. Clients should + // ignore the error and call the GetProviderSchema RPC as a fallback. + GetMetadata(ctx context.Context, in *GetMetadata_Request, opts ...grpc.CallOption) (*GetMetadata_Response, error) + // GetSchema returns schema information for the provider, data resources, + // and managed resources. GetProviderSchema(ctx context.Context, in *GetProviderSchema_Request, opts ...grpc.CallOption) (*GetProviderSchema_Response, error) ValidateProviderConfig(ctx context.Context, in *ValidateProviderConfig_Request, opts ...grpc.CallOption) (*ValidateProviderConfig_Response, error) ValidateResourceConfig(ctx context.Context, in *ValidateResourceConfig_Request, opts ...grpc.CallOption) (*ValidateResourceConfig_Response, error) ValidateDataResourceConfig(ctx context.Context, in *ValidateDataResourceConfig_Request, opts ...grpc.CallOption) (*ValidateDataResourceConfig_Response, error) UpgradeResourceState(ctx context.Context, in *UpgradeResourceState_Request, opts ...grpc.CallOption) (*UpgradeResourceState_Response, error) - //////// One-time initialization, called before other functions below + // ////// One-time initialization, called before other functions below ConfigureProvider(ctx context.Context, in *ConfigureProvider_Request, opts ...grpc.CallOption) (*ConfigureProvider_Response, error) - //////// Managed Resource Lifecycle + // ////// Managed Resource Lifecycle ReadResource(ctx context.Context, in *ReadResource_Request, opts ...grpc.CallOption) (*ReadResource_Response, error) PlanResourceChange(ctx context.Context, in *PlanResourceChange_Request, opts ...grpc.CallOption) (*PlanResourceChange_Response, error) ApplyResourceChange(ctx context.Context, in *ApplyResourceChange_Request, opts ...grpc.CallOption) (*ApplyResourceChange_Response, error) ImportResourceState(ctx context.Context, in *ImportResourceState_Request, opts ...grpc.CallOption) (*ImportResourceState_Response, error) ReadDataSource(ctx context.Context, in *ReadDataSource_Request, opts ...grpc.CallOption) (*ReadDataSource_Response, error) - //////// Graceful Shutdown + // ////// Graceful Shutdown StopProvider(ctx context.Context, in *StopProvider_Request, opts ...grpc.CallOption) (*StopProvider_Response, error) } @@ -48,9 +93,18 @@ func NewProviderClient(cc grpc.ClientConnInterface) ProviderClient { return &providerClient{cc} } +func (c *providerClient) GetMetadata(ctx context.Context, in *GetMetadata_Request, opts ...grpc.CallOption) (*GetMetadata_Response, error) { + out := new(GetMetadata_Response) + err := c.cc.Invoke(ctx, Provider_GetMetadata_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *providerClient) GetProviderSchema(ctx context.Context, in *GetProviderSchema_Request, opts ...grpc.CallOption) (*GetProviderSchema_Response, error) { out := new(GetProviderSchema_Response) - err := c.cc.Invoke(ctx, "/tfplugin6.Provider/GetProviderSchema", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_GetProviderSchema_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -59,7 +113,7 @@ func (c *providerClient) GetProviderSchema(ctx context.Context, in *GetProviderS func (c *providerClient) ValidateProviderConfig(ctx context.Context, in *ValidateProviderConfig_Request, opts ...grpc.CallOption) (*ValidateProviderConfig_Response, error) { out := new(ValidateProviderConfig_Response) - err := c.cc.Invoke(ctx, "/tfplugin6.Provider/ValidateProviderConfig", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_ValidateProviderConfig_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -68,7 +122,7 @@ func (c *providerClient) ValidateProviderConfig(ctx context.Context, in *Validat func (c *providerClient) ValidateResourceConfig(ctx context.Context, in *ValidateResourceConfig_Request, opts ...grpc.CallOption) (*ValidateResourceConfig_Response, error) { out := new(ValidateResourceConfig_Response) - err := c.cc.Invoke(ctx, "/tfplugin6.Provider/ValidateResourceConfig", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_ValidateResourceConfig_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -77,7 +131,7 @@ func (c *providerClient) ValidateResourceConfig(ctx context.Context, in *Validat func (c *providerClient) ValidateDataResourceConfig(ctx context.Context, in *ValidateDataResourceConfig_Request, opts ...grpc.CallOption) (*ValidateDataResourceConfig_Response, error) { out := new(ValidateDataResourceConfig_Response) - err := c.cc.Invoke(ctx, "/tfplugin6.Provider/ValidateDataResourceConfig", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_ValidateDataResourceConfig_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -86,7 +140,7 @@ func (c *providerClient) ValidateDataResourceConfig(ctx context.Context, in *Val func (c *providerClient) UpgradeResourceState(ctx context.Context, in *UpgradeResourceState_Request, opts ...grpc.CallOption) (*UpgradeResourceState_Response, error) { out := new(UpgradeResourceState_Response) - err := c.cc.Invoke(ctx, "/tfplugin6.Provider/UpgradeResourceState", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_UpgradeResourceState_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -95,7 +149,7 @@ func (c *providerClient) UpgradeResourceState(ctx context.Context, in *UpgradeRe func (c *providerClient) ConfigureProvider(ctx context.Context, in *ConfigureProvider_Request, opts ...grpc.CallOption) (*ConfigureProvider_Response, error) { out := new(ConfigureProvider_Response) - err := c.cc.Invoke(ctx, "/tfplugin6.Provider/ConfigureProvider", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_ConfigureProvider_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -104,7 +158,7 @@ func (c *providerClient) ConfigureProvider(ctx context.Context, in *ConfigurePro func (c *providerClient) ReadResource(ctx context.Context, in *ReadResource_Request, opts ...grpc.CallOption) (*ReadResource_Response, error) { out := new(ReadResource_Response) - err := c.cc.Invoke(ctx, "/tfplugin6.Provider/ReadResource", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_ReadResource_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -113,7 +167,7 @@ func (c *providerClient) ReadResource(ctx context.Context, in *ReadResource_Requ func (c *providerClient) PlanResourceChange(ctx context.Context, in *PlanResourceChange_Request, opts ...grpc.CallOption) (*PlanResourceChange_Response, error) { out := new(PlanResourceChange_Response) - err := c.cc.Invoke(ctx, "/tfplugin6.Provider/PlanResourceChange", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_PlanResourceChange_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -122,7 +176,7 @@ func (c *providerClient) PlanResourceChange(ctx context.Context, in *PlanResourc func (c *providerClient) ApplyResourceChange(ctx context.Context, in *ApplyResourceChange_Request, opts ...grpc.CallOption) (*ApplyResourceChange_Response, error) { out := new(ApplyResourceChange_Response) - err := c.cc.Invoke(ctx, "/tfplugin6.Provider/ApplyResourceChange", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_ApplyResourceChange_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -131,7 +185,7 @@ func (c *providerClient) ApplyResourceChange(ctx context.Context, in *ApplyResou func (c *providerClient) ImportResourceState(ctx context.Context, in *ImportResourceState_Request, opts ...grpc.CallOption) (*ImportResourceState_Response, error) { out := new(ImportResourceState_Response) - err := c.cc.Invoke(ctx, "/tfplugin6.Provider/ImportResourceState", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_ImportResourceState_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -140,7 +194,7 @@ func (c *providerClient) ImportResourceState(ctx context.Context, in *ImportReso func (c *providerClient) ReadDataSource(ctx context.Context, in *ReadDataSource_Request, opts ...grpc.CallOption) (*ReadDataSource_Response, error) { out := new(ReadDataSource_Response) - err := c.cc.Invoke(ctx, "/tfplugin6.Provider/ReadDataSource", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_ReadDataSource_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -149,7 +203,7 @@ func (c *providerClient) ReadDataSource(ctx context.Context, in *ReadDataSource_ func (c *providerClient) StopProvider(ctx context.Context, in *StopProvider_Request, opts ...grpc.CallOption) (*StopProvider_Response, error) { out := new(StopProvider_Response) - err := c.cc.Invoke(ctx, "/tfplugin6.Provider/StopProvider", in, out, opts...) + err := c.cc.Invoke(ctx, Provider_StopProvider_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -160,21 +214,28 @@ func (c *providerClient) StopProvider(ctx context.Context, in *StopProvider_Requ // All implementations must embed UnimplementedProviderServer // for forward compatibility type ProviderServer interface { - //////// Information about what a provider supports/expects + // GetMetadata returns upfront information about server capabilities and + // supported resource types without requiring the server to instantiate all + // schema information, which may be memory intensive. This RPC is optional, + // where clients may receive an unimplemented RPC error. Clients should + // ignore the error and call the GetProviderSchema RPC as a fallback. + GetMetadata(context.Context, *GetMetadata_Request) (*GetMetadata_Response, error) + // GetSchema returns schema information for the provider, data resources, + // and managed resources. GetProviderSchema(context.Context, *GetProviderSchema_Request) (*GetProviderSchema_Response, error) ValidateProviderConfig(context.Context, *ValidateProviderConfig_Request) (*ValidateProviderConfig_Response, error) ValidateResourceConfig(context.Context, *ValidateResourceConfig_Request) (*ValidateResourceConfig_Response, error) ValidateDataResourceConfig(context.Context, *ValidateDataResourceConfig_Request) (*ValidateDataResourceConfig_Response, error) UpgradeResourceState(context.Context, *UpgradeResourceState_Request) (*UpgradeResourceState_Response, error) - //////// One-time initialization, called before other functions below + // ////// One-time initialization, called before other functions below ConfigureProvider(context.Context, *ConfigureProvider_Request) (*ConfigureProvider_Response, error) - //////// Managed Resource Lifecycle + // ////// Managed Resource Lifecycle ReadResource(context.Context, *ReadResource_Request) (*ReadResource_Response, error) PlanResourceChange(context.Context, *PlanResourceChange_Request) (*PlanResourceChange_Response, error) ApplyResourceChange(context.Context, *ApplyResourceChange_Request) (*ApplyResourceChange_Response, error) ImportResourceState(context.Context, *ImportResourceState_Request) (*ImportResourceState_Response, error) ReadDataSource(context.Context, *ReadDataSource_Request) (*ReadDataSource_Response, error) - //////// Graceful Shutdown + // ////// Graceful Shutdown StopProvider(context.Context, *StopProvider_Request) (*StopProvider_Response, error) mustEmbedUnimplementedProviderServer() } @@ -183,6 +244,9 @@ type ProviderServer interface { type UnimplementedProviderServer struct { } +func (UnimplementedProviderServer) GetMetadata(context.Context, *GetMetadata_Request) (*GetMetadata_Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMetadata not implemented") +} func (UnimplementedProviderServer) GetProviderSchema(context.Context, *GetProviderSchema_Request) (*GetProviderSchema_Response, error) { return nil, status.Errorf(codes.Unimplemented, "method GetProviderSchema not implemented") } @@ -232,6 +296,24 @@ func RegisterProviderServer(s grpc.ServiceRegistrar, srv ProviderServer) { s.RegisterService(&Provider_ServiceDesc, srv) } +func _Provider_GetMetadata_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMetadata_Request) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProviderServer).GetMetadata(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Provider_GetMetadata_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProviderServer).GetMetadata(ctx, req.(*GetMetadata_Request)) + } + return interceptor(ctx, in, info, handler) +} + func _Provider_GetProviderSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetProviderSchema_Request) if err := dec(in); err != nil { @@ -242,7 +324,7 @@ func _Provider_GetProviderSchema_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin6.Provider/GetProviderSchema", + FullMethod: Provider_GetProviderSchema_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).GetProviderSchema(ctx, req.(*GetProviderSchema_Request)) @@ -260,7 +342,7 @@ func _Provider_ValidateProviderConfig_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin6.Provider/ValidateProviderConfig", + FullMethod: Provider_ValidateProviderConfig_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).ValidateProviderConfig(ctx, req.(*ValidateProviderConfig_Request)) @@ -278,7 +360,7 @@ func _Provider_ValidateResourceConfig_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin6.Provider/ValidateResourceConfig", + FullMethod: Provider_ValidateResourceConfig_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).ValidateResourceConfig(ctx, req.(*ValidateResourceConfig_Request)) @@ -296,7 +378,7 @@ func _Provider_ValidateDataResourceConfig_Handler(srv interface{}, ctx context.C } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin6.Provider/ValidateDataResourceConfig", + FullMethod: Provider_ValidateDataResourceConfig_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).ValidateDataResourceConfig(ctx, req.(*ValidateDataResourceConfig_Request)) @@ -314,7 +396,7 @@ func _Provider_UpgradeResourceState_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin6.Provider/UpgradeResourceState", + FullMethod: Provider_UpgradeResourceState_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).UpgradeResourceState(ctx, req.(*UpgradeResourceState_Request)) @@ -332,7 +414,7 @@ func _Provider_ConfigureProvider_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin6.Provider/ConfigureProvider", + FullMethod: Provider_ConfigureProvider_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).ConfigureProvider(ctx, req.(*ConfigureProvider_Request)) @@ -350,7 +432,7 @@ func _Provider_ReadResource_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin6.Provider/ReadResource", + FullMethod: Provider_ReadResource_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).ReadResource(ctx, req.(*ReadResource_Request)) @@ -368,7 +450,7 @@ func _Provider_PlanResourceChange_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin6.Provider/PlanResourceChange", + FullMethod: Provider_PlanResourceChange_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).PlanResourceChange(ctx, req.(*PlanResourceChange_Request)) @@ -386,7 +468,7 @@ func _Provider_ApplyResourceChange_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin6.Provider/ApplyResourceChange", + FullMethod: Provider_ApplyResourceChange_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).ApplyResourceChange(ctx, req.(*ApplyResourceChange_Request)) @@ -404,7 +486,7 @@ func _Provider_ImportResourceState_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin6.Provider/ImportResourceState", + FullMethod: Provider_ImportResourceState_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).ImportResourceState(ctx, req.(*ImportResourceState_Request)) @@ -422,7 +504,7 @@ func _Provider_ReadDataSource_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin6.Provider/ReadDataSource", + FullMethod: Provider_ReadDataSource_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).ReadDataSource(ctx, req.(*ReadDataSource_Request)) @@ -440,7 +522,7 @@ func _Provider_StopProvider_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tfplugin6.Provider/StopProvider", + FullMethod: Provider_StopProvider_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ProviderServer).StopProvider(ctx, req.(*StopProvider_Request)) @@ -455,6 +537,10 @@ var Provider_ServiceDesc = grpc.ServiceDesc{ ServiceName: "tfplugin6.Provider", HandlerType: (*ProviderServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "GetMetadata", + Handler: _Provider_GetMetadata_Handler, + }, { MethodName: "GetProviderSchema", Handler: _Provider_GetProviderSchema_Handler, diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/data_source.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/data_source.go index 624a3bb108c9..e264d91d6aa8 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/data_source.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/data_source.go @@ -5,6 +5,16 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6" ) +func GetMetadata_DataSourceMetadata(in *tfprotov6.DataSourceMetadata) *tfplugin6.GetMetadata_DataSourceMetadata { + if in == nil { + return nil + } + + return &tfplugin6.GetMetadata_DataSourceMetadata{ + TypeName: in.TypeName, + } +} + func ValidateDataResourceConfig_Request(in *tfprotov6.ValidateDataResourceConfigRequest) (*tfplugin6.ValidateDataResourceConfig_Request, error) { resp := &tfplugin6.ValidateDataResourceConfig_Request{ TypeName: in.TypeName, diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/provider.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/provider.go index ce37207f98f5..40db1bc90b74 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/provider.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/provider.go @@ -7,6 +7,40 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6" ) +func GetMetadata_Request(in *tfprotov6.GetMetadataRequest) (*tfplugin6.GetMetadata_Request, error) { + return &tfplugin6.GetMetadata_Request{}, nil +} + +func GetMetadata_Response(in *tfprotov6.GetMetadataResponse) (*tfplugin6.GetMetadata_Response, error) { + if in == nil { + return nil, nil + } + + resp := &tfplugin6.GetMetadata_Response{ + DataSources: make([]*tfplugin6.GetMetadata_DataSourceMetadata, 0, len(in.DataSources)), + Resources: make([]*tfplugin6.GetMetadata_ResourceMetadata, 0, len(in.Resources)), + ServerCapabilities: ServerCapabilities(in.ServerCapabilities), + } + + for _, datasource := range in.DataSources { + resp.DataSources = append(resp.DataSources, GetMetadata_DataSourceMetadata(&datasource)) + } + + for _, resource := range in.Resources { + resp.Resources = append(resp.Resources, GetMetadata_ResourceMetadata(&resource)) + } + + diags, err := Diagnostics(in.Diagnostics) + + if err != nil { + return resp, err + } + + resp.Diagnostics = diags + + return resp, nil +} + func GetProviderSchema_Request(in *tfprotov6.GetProviderSchemaRequest) (*tfplugin6.GetProviderSchema_Request, error) { return &tfplugin6.GetProviderSchema_Request{}, nil } @@ -16,7 +50,7 @@ func GetProviderSchema_Response(in *tfprotov6.GetProviderSchemaResponse) (*tfplu return nil, nil } resp := tfplugin6.GetProviderSchema_Response{ - ServerCapabilities: GetProviderSchema_ServerCapabilities(in.ServerCapabilities), + ServerCapabilities: ServerCapabilities(in.ServerCapabilities), } if in.Provider != nil { schema, err := Schema(in.Provider) diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/resource.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/resource.go index bb09681850f4..8dd35f7809b4 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/resource.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/resource.go @@ -5,6 +5,16 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6" ) +func GetMetadata_ResourceMetadata(in *tfprotov6.ResourceMetadata) *tfplugin6.GetMetadata_ResourceMetadata { + if in == nil { + return nil + } + + return &tfplugin6.GetMetadata_ResourceMetadata{ + TypeName: in.TypeName, + } +} + func ValidateResourceConfig_Request(in *tfprotov6.ValidateResourceConfigRequest) (*tfplugin6.ValidateResourceConfig_Request, error) { resp := &tfplugin6.ValidateResourceConfig_Request{ TypeName: in.TypeName, diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/server_capabilities.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/server_capabilities.go index fa335d6913e6..2c63554b40ae 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/server_capabilities.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto/server_capabilities.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package toproto import ( @@ -5,12 +8,13 @@ import ( "github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6" ) -func GetProviderSchema_ServerCapabilities(in *tfprotov6.ServerCapabilities) *tfplugin6.GetProviderSchema_ServerCapabilities { +func ServerCapabilities(in *tfprotov6.ServerCapabilities) *tfplugin6.ServerCapabilities { if in == nil { return nil } - return &tfplugin6.GetProviderSchema_ServerCapabilities{ - PlanDestroy: in.PlanDestroy, + return &tfplugin6.ServerCapabilities{ + GetProviderSchemaOptional: in.GetProviderSchemaOptional, + PlanDestroy: in.PlanDestroy, } } diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/provider.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/provider.go index 970ef8e70c2d..6f3f9d974d4e 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/provider.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/provider.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov6 import ( @@ -7,6 +10,13 @@ import ( // ProviderServer is an interface that reflects that Terraform protocol. // Providers must implement this interface. type ProviderServer interface { + // GetMetadata returns upfront information about server capabilities and + // supported resource types without requiring the server to instantiate all + // schema information, which may be memory intensive. This RPC is optional, + // where clients may receive an unimplemented RPC error. Clients should + // ignore the error and call the GetProviderSchema RPC as a fallback. + GetMetadata(context.Context, *GetMetadataRequest) (*GetMetadataResponse, error) + // GetProviderSchema is called when Terraform needs to know what the // provider's schema is, along with the schemas of all its resources // and data sources. @@ -39,6 +49,27 @@ type ProviderServer interface { DataSourceServer } +// GetMetadataRequest represents a GetMetadata RPC request. +type GetMetadataRequest struct{} + +// GetMetadataResponse represents a GetMetadata RPC response. +type GetMetadataResponse struct { + // ServerCapabilities defines optionally supported protocol features, + // such as forward-compatible Terraform behavior changes. + ServerCapabilities *ServerCapabilities + + // Diagnostics report errors or warnings related to returning the + // provider's schemas. Returning an empty slice indicates success, with + // no errors or warnings generated. + Diagnostics []*Diagnostic + + // DataSources returns metadata for all data resources. + DataSources []DataSourceMetadata + + // Resources returns metadata for all managed resources. + Resources []ResourceMetadata +} + // GetProviderSchemaRequest represents a Terraform RPC request for the // provider's schemas. type GetProviderSchemaRequest struct{} diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/resource.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/resource.go index 2768bb526e84..987d9cc5e6a9 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/resource.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/resource.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov6 import ( @@ -6,6 +9,13 @@ import ( "github.com/hashicorp/terraform-plugin-go/tftypes" ) +// ResourceMetadata describes metadata for a managed resource in the GetMetadata +// RPC. +type ResourceMetadata struct { + // TypeName is the name of the managed resource. + TypeName string +} + // ResourceServer is an interface containing the methods a resource // implementation needs to fill. type ResourceServer interface { diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/schema.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/schema.go index c17e2cceebbb..b368c620fbc1 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/schema.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/schema.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov6 import "github.com/hashicorp/terraform-plugin-go/tftypes" diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/server_capabilities.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/server_capabilities.go index eed59219d55f..2ea71df6d69c 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/server_capabilities.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/server_capabilities.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov6 // ServerCapabilities allows providers to communicate optionally supported @@ -6,6 +9,11 @@ package tfprotov6 // This information is used in GetProviderSchemaResponse as capabilities are // static features which must be known upfront in the provider server. type ServerCapabilities struct { + // GetProviderSchemaOptional signals that this provider does not require + // having the GetProviderSchema RPC called first to operate normally. This + // means the caller can use a cached copy of the provider's schema instead. + GetProviderSchemaOptional bool + // PlanDestroy signals that a provider expects a call to // PlanResourceChange when a resource is going to be destroyed. This is // opt-in to prevent unexpected errors or panics since the diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/state.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/state.go index 41506b8d7004..5f7a14518b86 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/state.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/state.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov6 import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/string_kind.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/string_kind.go index 359e036e7a31..7f0d9131b6a0 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/string_kind.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/string_kind.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfprotov6 const ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server/doc.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server/doc.go index 8b5313d953b9..5501d70d7138 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server/doc.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package tf6server implements a server implementation to run // tfprotov6.ProviderServers as gRPC servers. // diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server/plugin.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server/plugin.go index e868d30a5ba3..c5d24ffdb495 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server/plugin.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server/plugin.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tf6server import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server/server.go b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server/server.go index 9889a93e695e..6b42836e213a 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server/server.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server/server.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tf6server import ( @@ -45,7 +48,7 @@ const ( // // In the future, it may be possible to include this information directly // in the protocol buffers rather than recreating a constant here. - protocolVersionMinor uint = 3 + protocolVersionMinor uint = 4 ) // protocolVersion represents the combined major and minor version numbers of @@ -483,6 +486,43 @@ func New(name string, serve tfprotov6.ProviderServer, opts ...ServeOpt) tfplugin } } +func (s *server) GetMetadata(ctx context.Context, req *tfplugin6.GetMetadata_Request) (*tfplugin6.GetMetadata_Response, error) { + rpc := "GetMetadata" + ctx = s.loggingContext(ctx) + ctx = logging.RpcContext(ctx, rpc) + ctx = s.stoppableContext(ctx) + logging.ProtocolTrace(ctx, "Received request") + defer logging.ProtocolTrace(ctx, "Served request") + + r, err := fromproto.GetMetadataRequest(req) + + if err != nil { + logging.ProtocolError(ctx, "Error converting request from protobuf", map[string]interface{}{logging.KeyError: err}) + return nil, err + } + + ctx = tf6serverlogging.DownstreamRequest(ctx) + + resp, err := s.downstream.GetMetadata(ctx, r) + + if err != nil { + logging.ProtocolError(ctx, "Error from downstream", map[string]interface{}{logging.KeyError: err}) + return nil, err + } + + tf6serverlogging.DownstreamResponse(ctx, resp.Diagnostics) + tf6serverlogging.ServerCapabilities(ctx, resp.ServerCapabilities) + + ret, err := toproto.GetMetadata_Response(resp) + + if err != nil { + logging.ProtocolError(ctx, "Error converting response to protobuf", map[string]interface{}{logging.KeyError: err}) + return nil, err + } + + return ret, nil +} + func (s *server) GetProviderSchema(ctx context.Context, req *tfplugin6.GetProviderSchema_Request) (*tfplugin6.GetProviderSchema_Response, error) { rpc := "GetProviderSchema" ctx = s.loggingContext(ctx) @@ -502,6 +542,7 @@ func (s *server) GetProviderSchema(ctx context.Context, req *tfplugin6.GetProvid return nil, err } tf6serverlogging.DownstreamResponse(ctx, resp.Diagnostics) + tf6serverlogging.ServerCapabilities(ctx, resp.ServerCapabilities) ret, err := toproto.GetProviderSchema_Response(resp) if err != nil { logging.ProtocolError(ctx, "Error converting response to protobuf", map[string]interface{}{logging.KeyError: err}) @@ -578,7 +619,7 @@ func (s *server) stop() { s.stopCh = make(chan struct{}) } -func (s *server) Stop(ctx context.Context, req *tfplugin6.StopProvider_Request) (*tfplugin6.StopProvider_Response, error) { +func (s *server) StopProvider(ctx context.Context, req *tfplugin6.StopProvider_Request) (*tfplugin6.StopProvider_Response, error) { rpc := "StopProvider" ctx = s.loggingContext(ctx) ctx = logging.RpcContext(ctx, rpc) diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/attribute_path.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/attribute_path.go index d6108d4ab335..809cc99f6669 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/attribute_path.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/attribute_path.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tftypes import ( @@ -77,14 +80,20 @@ func (a *AttributePath) String() string { // AttributePaths are considered equal if they have the same number of steps, // the steps are all the same types, and the steps have all the same values. func (a *AttributePath) Equal(o *AttributePath) bool { - if len(a.Steps()) == 0 && len(o.Steps()) == 0 { - return true + if a == nil { + return o == nil || len(o.steps) == 0 } - if len(a.Steps()) != len(o.Steps()) { + + if o == nil { + return len(a.steps) == 0 + } + + if len(a.steps) != len(o.steps) { return false } - for pos, aStep := range a.Steps() { - oStep := o.Steps()[pos] + + for pos, aStep := range a.steps { + oStep := o.steps[pos] if !aStep.Equal(oStep) { return false @@ -117,63 +126,112 @@ func (a *AttributePath) NewError(err error) error { } } -// LastStep returns the last step in the path. If the path was -// empty, nil is returned. +// LastStep returns the last step in the path. If the path is nil or empty, nil +// is returned. func (a *AttributePath) LastStep() AttributePathStep { - steps := a.Steps() + if a == nil || len(a.steps) == 0 { + return nil + } + + return a.steps[len(a.steps)-1] +} - if len(steps) == 0 { +// NextStep returns the next step in the path. If the path is nil or empty, nil +// is returned. +func (a *AttributePath) NextStep() AttributePathStep { + if a == nil || len(a.steps) == 0 { return nil } - return steps[len(steps)-1] + return a.steps[0] } // WithAttributeName adds an AttributeName step to `a`, using `name` as the // attribute's name. `a` is copied, not modified. func (a *AttributePath) WithAttributeName(name string) *AttributePath { - steps := a.Steps() + if a == nil { + return &AttributePath{ + steps: []AttributePathStep{AttributeName(name)}, + } + } + + // Avoid re-allocating larger slice + steps := make([]AttributePathStep, len(a.steps)+1) + copy(steps, a.steps) + steps[len(steps)-1] = AttributeName(name) + return &AttributePath{ - steps: append(steps, AttributeName(name)), + steps: steps, } } // WithElementKeyString adds an ElementKeyString step to `a`, using `key` as // the element's key. `a` is copied, not modified. func (a *AttributePath) WithElementKeyString(key string) *AttributePath { - steps := a.Steps() + if a == nil { + return &AttributePath{ + steps: []AttributePathStep{ElementKeyString(key)}, + } + } + + // Avoid re-allocating larger slice + steps := make([]AttributePathStep, len(a.steps)+1) + copy(steps, a.steps) + steps[len(steps)-1] = ElementKeyString(key) + return &AttributePath{ - steps: append(steps, ElementKeyString(key)), + steps: steps, } } // WithElementKeyInt adds an ElementKeyInt step to `a`, using `key` as the // element's key. `a` is copied, not modified. func (a *AttributePath) WithElementKeyInt(key int) *AttributePath { - steps := a.Steps() + if a == nil { + return &AttributePath{ + steps: []AttributePathStep{ElementKeyInt(key)}, + } + } + + // Avoid re-allocating larger slice + steps := make([]AttributePathStep, len(a.steps)+1) + copy(steps, a.steps) + steps[len(steps)-1] = ElementKeyInt(key) + return &AttributePath{ - steps: append(steps, ElementKeyInt(key)), + steps: steps, } } // WithElementKeyValue adds an ElementKeyValue to `a`, using `key` as the // element's key. `a` is copied, not modified. func (a *AttributePath) WithElementKeyValue(key Value) *AttributePath { - steps := a.Steps() + if a == nil { + return &AttributePath{ + steps: []AttributePathStep{ElementKeyValue(key)}, + } + } + + // Avoid re-allocating larger slice + steps := make([]AttributePathStep, len(a.steps)+1) + copy(steps, a.steps) + steps[len(steps)-1] = ElementKeyValue(key) + return &AttributePath{ - steps: append(steps, ElementKeyValue(key.Copy())), + steps: steps, } } // WithoutLastStep removes the last step, whatever kind of step it was, from // `a`. `a` is copied, not modified. func (a *AttributePath) WithoutLastStep() *AttributePath { - steps := a.Steps() - if len(steps) == 0 { + if a == nil || len(a.steps) == 0 { return nil } + return &AttributePath{ - steps: steps[:len(steps)-1], + // Paths are immutable, so this should be safe without copying. + steps: a.steps[:len(a.steps)-1], } } @@ -293,7 +351,7 @@ type AttributePathStepper interface { // types need to use the AttributePathStepper interface to tell // WalkAttributePath how to traverse themselves. func WalkAttributePath(in interface{}, path *AttributePath) (interface{}, *AttributePath, error) { - if len(path.Steps()) < 1 { + if path == nil || len(path.steps) == 0 { return in, path, nil } stepper, ok := in.(AttributePathStepper) @@ -303,11 +361,11 @@ func WalkAttributePath(in interface{}, path *AttributePath) (interface{}, *Attri return in, path, ErrNotAttributePathStepper } } - next, err := stepper.ApplyTerraform5AttributePathStep(path.Steps()[0]) + next, err := stepper.ApplyTerraform5AttributePathStep(path.NextStep()) if err != nil { return in, path, err } - return WalkAttributePath(next, &AttributePath{steps: path.Steps()[1:]}) + return WalkAttributePath(next, NewAttributePathWithSteps(path.steps[1:])) } func builtinAttributePathStepper(in interface{}) (AttributePathStepper, bool) { @@ -324,17 +382,17 @@ func builtinAttributePathStepper(in interface{}) (AttributePathStepper, bool) { type mapStringInterfaceAttributePathStepper map[string]interface{} func (m mapStringInterfaceAttributePathStepper) ApplyTerraform5AttributePathStep(step AttributePathStep) (interface{}, error) { - _, isAttributeName := step.(AttributeName) - _, isElementKeyString := step.(ElementKeyString) + attributeName, isAttributeName := step.(AttributeName) + elementKeyString, isElementKeyString := step.(ElementKeyString) if !isAttributeName && !isElementKeyString { return nil, ErrInvalidStep } var stepValue string if isAttributeName { - stepValue = string(step.(AttributeName)) + stepValue = string(attributeName) } if isElementKeyString { - stepValue = string(step.(ElementKeyString)) + stepValue = string(elementKeyString) } v, ok := m[stepValue] if !ok { diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/attribute_path_error.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/attribute_path_error.go index be0002072174..df887c2fd612 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/attribute_path_error.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/attribute_path_error.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tftypes import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/diff.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/diff.go index 328b1adf67cb..72486b65e598 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/diff.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/diff.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tftypes import ( @@ -122,8 +125,10 @@ func (val1 Value) Diff(val2 Value) ([]ValueDiff, error) { return true, nil } - // convert from an interface{} to a Value - value2 := value2I.(Value) + value2, ok := value2I.(Value) + if !ok { + return false, fmt.Errorf("unexpected type %T in Diff", value2I) + } // if they're both unknown, no need to continue if !value1.IsKnown() && !value2.IsKnown() { diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/doc.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/doc.go index 414a797d96cd..ea82da6e9061 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/doc.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package tftypes provides a type system for Terraform configuration and state // values. // diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/list.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/list.go index a0bc2f370095..512c7c9004a4 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/list.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/list.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tftypes import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/map.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/map.go index 7c1e7d05ae0a..0d299dcbee89 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/map.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/map.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tftypes import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/object.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/object.go index ce2bf1325c63..b901c99e01e7 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/object.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/object.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tftypes import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/primitive.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/primitive.go index 0349f4145531..5a631baea2a8 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/primitive.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/primitive.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tftypes import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/set.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/set.go index 00163067ea1c..e4549b5945bf 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/set.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/set.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tftypes import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/tuple.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/tuple.go index 5ca5709a340a..a5c5e52390fd 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/tuple.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/tuple.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tftypes import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/type.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/type.go index 4f0e4af7c850..c59659921873 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/type.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/type.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tftypes import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/unknown_value.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/unknown_value.go index 016d3bbe8acd..4aefe719e4cb 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/unknown_value.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/unknown_value.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tftypes const ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value.go index f997347e2b2e..b84507839633 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tftypes import ( @@ -8,7 +11,7 @@ import ( "strconv" "strings" - msgpack "github.com/vmihailenco/msgpack/v4" + msgpack "github.com/vmihailenco/msgpack/v5" ) // ValueConverter is an interface that provider-defined types can implement to @@ -131,15 +134,17 @@ func (val Value) ApplyTerraform5AttributePathStep(step AttributePathStep) (inter if !val.IsKnown() || val.IsNull() { return nil, ErrInvalidStep } + + // Since this logic is very hot path, it is optimized to use Value + // implementation details rather than As() to avoid memory allocations. switch s := step.(type) { case AttributeName: - if !val.Type().Is(Object{}) { + if _, ok := val.Type().(Object); !ok { return nil, ErrInvalidStep } - o := map[string]Value{} - err := val.As(&o) - if err != nil { - return nil, err + o, ok := val.value.(map[string]Value) + if !ok { + return nil, fmt.Errorf("cannot convert %T into map[string]tftypes.Value", val.value) } res, ok := o[string(s)] if !ok { @@ -147,13 +152,12 @@ func (val Value) ApplyTerraform5AttributePathStep(step AttributePathStep) (inter } return res, nil case ElementKeyString: - if !val.Type().Is(Map{}) { + if _, ok := val.Type().(Map); !ok { return nil, ErrInvalidStep } - m := map[string]Value{} - err := val.As(&m) - if err != nil { - return nil, err + m, ok := val.value.(map[string]Value) + if !ok { + return nil, fmt.Errorf("cannot convert %T into map[string]tftypes.Value", val.value) } res, ok := m[string(s)] if !ok { @@ -161,36 +165,37 @@ func (val Value) ApplyTerraform5AttributePathStep(step AttributePathStep) (inter } return res, nil case ElementKeyInt: - if !val.Type().Is(List{}) && !val.Type().Is(Tuple{}) { + _, listOk := val.Type().(List) + _, tupleOk := val.Type().(Tuple) + if !listOk && !tupleOk { return nil, ErrInvalidStep } if int64(s) < 0 { return nil, ErrInvalidStep } - sl := []Value{} - err := val.As(&sl) - if err != nil { - return nil, err + sl, ok := val.value.([]Value) + if !ok { + return nil, fmt.Errorf("cannot convert %T into []tftypes.Value", val.value) } if int64(len(sl)) <= int64(s) { return nil, ErrInvalidStep } return sl[int64(s)], nil case ElementKeyValue: - if !val.Type().Is(Set{}) { + if _, ok := val.Type().(Set); !ok { return nil, ErrInvalidStep } - sl := []Value{} - err := val.As(&sl) - if err != nil { - return nil, err + sl, ok := val.value.([]Value) + if !ok { + return nil, fmt.Errorf("cannot convert %T into []tftypes.Value", val.value) } + stepValue := Value(s) for _, el := range sl { - diffs, err := el.Diff(Value(s)) + deepEqual, err := stepValue.deepEqual(el) if err != nil { return nil, err } - if len(diffs) == 0 { + if deepEqual { return el, nil } } @@ -216,11 +221,11 @@ func (val Value) Equal(o Value) bool { if !val.Type().Equal(o.Type()) { return false } - diff, err := val.Diff(o) + deepEqual, err := val.deepEqual(o) if err != nil { panic(err) } - return len(diff) < 1 + return deepEqual } // Copy returns a defensively-copied clone of Value that shares no underlying @@ -299,57 +304,62 @@ func newValue(t Type, val interface{}) (Value, error) { } } - switch { - case t.Is(String): - v, err := valueFromString(val) - if err != nil { - return Value{}, err - } - return v, nil - case t.Is(Number): - v, err := valueFromNumber(val) - if err != nil { - return Value{}, err - } - return v, nil - case t.Is(Bool): - v, err := valueFromBool(val) - if err != nil { - return Value{}, err - } - return v, nil - case t.Is(Map{}): - v, err := valueFromMap(t.(Map).ElementType, val) - if err != nil { - return Value{}, err + switch typ := t.(type) { + case primitive: + switch typ.name { + case String.name: + v, err := valueFromString(val) + if err != nil { + return Value{}, err + } + return v, nil + case Number.name: + v, err := valueFromNumber(val) + if err != nil { + return Value{}, err + } + return v, nil + case Bool.name: + v, err := valueFromBool(val) + if err != nil { + return Value{}, err + } + return v, nil + case DynamicPseudoType.name: + v, err := valueFromDynamicPseudoType(val) + if err != nil { + return Value{}, err + } + return v, nil + default: + return Value{}, fmt.Errorf("unknown primitive type %v passed to tftypes.NewValue", typ) } - return v, nil - case t.Is(Object{}): - v, err := valueFromObject(t.(Object).AttributeTypes, t.(Object).OptionalAttributes, val) + case Map: + v, err := valueFromMap(typ.ElementType, val) if err != nil { return Value{}, err } return v, nil - case t.Is(List{}): - v, err := valueFromList(t.(List).ElementType, val) + case Object: + v, err := valueFromObject(typ.AttributeTypes, typ.OptionalAttributes, val) if err != nil { return Value{}, err } return v, nil - case t.Is(Set{}): - v, err := valueFromSet(t.(Set).ElementType, val) + case List: + v, err := valueFromList(typ.ElementType, val) if err != nil { return Value{}, err } return v, nil - case t.Is(Tuple{}): - v, err := valueFromTuple(t.(Tuple).ElementTypes, val) + case Set: + v, err := valueFromSet(typ.ElementType, val) if err != nil { return Value{}, err } return v, nil - case t.Is(DynamicPseudoType): - v, err := valueFromDynamicPseudoType(val) + case Tuple: + v, err := valueFromTuple(typ.ElementTypes, val) if err != nil { return Value{}, err } @@ -540,6 +550,7 @@ func (val Value) IsFullyKnown() bool { case primitive: return true case List, Set, Tuple: + //nolint:forcetypeassert // NewValue func validates the type for _, v := range val.value.([]Value) { if !v.IsFullyKnown() { return false @@ -547,6 +558,7 @@ func (val Value) IsFullyKnown() bool { } return true case Map, Object: + //nolint:forcetypeassert // NewValue func validates the type for _, v := range val.value.(map[string]Value) { if !v.IsFullyKnown() { return false diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_equal.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_equal.go new file mode 100644 index 000000000000..8d326657a79a --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_equal.go @@ -0,0 +1,213 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tftypes + +import ( + "errors" + "fmt" + "math/big" +) + +// deepEqual walks both Value to ensure any underlying Value are equal. This +// logic is essentially a duplicate of Diff, however it is intended to return +// early on any inequality and avoids memory allocations where possible. +// +// There might be ways to better share the internal logic of this method with +// Diff, however that effort is reserved for a time when the effort is justified +// over resolving the inherent compute and memory performance issues with Diff +// when only checking for inequality. +func (val1 Value) deepEqual(val2 Value) (bool, error) { + if val1.Type() == nil && val2.Type() == nil && val1.value == nil && val2.value == nil { + return false, nil + } + + if (val1.Type() == nil && val2.Type() != nil) || (val1.Type() != nil && val2.Type() == nil) { + return false, errors.New("cannot diff value missing type") + } + + if !val1.Type().Is(val2.Type()) { + return false, errors.New("Can't diff values of different types") + } + + // Capture walk differences for returning early + var hasDiff bool + + // make sure everything in val2 is also in val1 + err := Walk(val2, func(path *AttributePath, _ Value) (bool, error) { + _, _, err := val1.walkAttributePath(path) + + if err != nil && err != ErrInvalidStep { + return false, fmt.Errorf("Error walking %q: %w", path, err) + } else if err == ErrInvalidStep { + hasDiff = true + + return false, stopWalkError + } + + return true, nil + }) + + if err != nil { + return false, err + } + + if hasDiff { + return false, nil + } + + // make sure everything in val1 is also in val2 and also that it all matches + err = Walk(val1, func(path *AttributePath, value1 Value) (bool, error) { + // pull out the Value at the same path in val2 + value2, _, err := val2.walkAttributePath(path) + + if err != nil && err != ErrInvalidStep { + return false, fmt.Errorf("Error walking %q: %w", path, err) + } else if err == ErrInvalidStep { + hasDiff = true + + return false, stopWalkError + } + + // if they're both unknown, no need to continue + if !value1.IsKnown() && !value2.IsKnown() { + return false, nil + } + + if value1.IsKnown() != value2.IsKnown() { + hasDiff = true + + return false, stopWalkError + } + + // if they're both null, no need to continue + if value1.IsNull() && value2.IsNull() { + return false, nil + } + + if value1.IsNull() != value2.IsNull() { + hasDiff = true + + return false, stopWalkError + } + + // We know there are known, non-null values, time to compare them. + // Since this logic is very hot path, it is optimized to use type and + // value implementation details rather than Equal() and As() + // respectively, since both result in memory allocations. + switch typ := value1.Type().(type) { + case primitive: + switch typ.name { + case String.name: + s1, ok := value1.value.(string) + + if !ok { + return false, fmt.Errorf("cannot convert %T into string", value1.value) + } + + s2, ok := value2.value.(string) + + if !ok { + return false, fmt.Errorf("cannot convert %T into string", value2.value) + } + + if s1 != s2 { + hasDiff = true + + return false, stopWalkError + } + case Number.name: + n1, ok := value1.value.(*big.Float) + + if !ok { + return false, fmt.Errorf("cannot convert %T into *big.Float", value1.value) + } + + n2, ok := value2.value.(*big.Float) + + if !ok { + return false, fmt.Errorf("cannot convert %T into *big.Float", value2.value) + } + + if n1.Cmp(n2) != 0 { + hasDiff = true + + return false, stopWalkError + } + case Bool.name: + b1, ok := value1.value.(bool) + + if !ok { + return false, fmt.Errorf("cannot convert %T into bool", value1.value) + } + + b2, ok := value2.value.(bool) + + if !ok { + return false, fmt.Errorf("cannot convert %T into bool", value2.value) + } + + if b1 != b2 { + hasDiff = true + + return false, stopWalkError + } + case DynamicPseudoType.name: + // Let recursion from the walk check the sub-values match + return true, nil + } + + return false, nil + case List, Set, Tuple: + s1, ok := value1.value.([]Value) + + if !ok { + return false, fmt.Errorf("cannot convert %T into []tftypes.Value", value1.value) + } + + s2, ok := value2.value.([]Value) + + if !ok { + return false, fmt.Errorf("cannot convert %T into []tftypes.Value", value2.value) + } + + // we only care about if the lengths match for lists, + // sets, and tuples. If any of the elements differ, + // the recursion of the walk will find them for us. + if len(s1) != len(s2) { + hasDiff = true + + return false, stopWalkError + } + + return true, nil + case Map, Object: + m1, ok := value1.value.(map[string]Value) + + if !ok { + return false, fmt.Errorf("cannot convert %T into map[string]tftypes.Value", value1.value) + } + + m2, ok := value2.value.(map[string]Value) + + if !ok { + return false, fmt.Errorf("cannot convert %T into map[string]tftypes.Value", value2.value) + } + + // we only care about if the number of keys match for maps and + // objects. If any of the elements differ, the recursion of the walk + // will find them for us. + if len(m1) != len(m2) { + hasDiff = true + + return false, stopWalkError + } + + return true, nil + } + + return false, fmt.Errorf("unexpected type %v in Diff at %s", value1.Type(), path) + }) + + return !hasDiff, err +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_json.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_json.go index b889b3bebf50..8a61918e2cc1 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_json.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_json.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tftypes import ( @@ -65,14 +68,19 @@ func jsonUnmarshal(buf []byte, typ Type, p *AttributePath, opts ValueFromJSONOpt case typ.Is(DynamicPseudoType): return jsonUnmarshalDynamicPseudoType(buf, typ, p, opts) case typ.Is(List{}): + //nolint:forcetypeassert // Is func above guarantees this type assertion return jsonUnmarshalList(buf, typ.(List).ElementType, p, opts) case typ.Is(Set{}): + //nolint:forcetypeassert // Is func above guarantees this type assertion return jsonUnmarshalSet(buf, typ.(Set).ElementType, p, opts) case typ.Is(Map{}): + //nolint:forcetypeassert // Is func above guarantees this type assertion return jsonUnmarshalMap(buf, typ.(Map).ElementType, p, opts) case typ.Is(Tuple{}): + //nolint:forcetypeassert // Is func above guarantees this type assertion return jsonUnmarshalTuple(buf, typ.(Tuple).ElementTypes, p, opts) case typ.Is(Object{}): + //nolint:forcetypeassert // Is func above guarantees this type assertion return jsonUnmarshalObject(buf, typ.(Object).AttributeTypes, p, opts) } return Value{}, p.NewErrorf("unknown type %s", typ) diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_msgpack.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_msgpack.go index c4047aeab2b3..ed03ef9833d9 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_msgpack.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_msgpack.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tftypes import ( @@ -7,8 +10,8 @@ import ( "math/big" "sort" - msgpack "github.com/vmihailenco/msgpack/v4" - msgpackCodes "github.com/vmihailenco/msgpack/v4/codes" + msgpack "github.com/vmihailenco/msgpack/v5" + msgpackCodes "github.com/vmihailenco/msgpack/v5/msgpcode" ) type msgPackUnknownType struct{} @@ -118,14 +121,19 @@ func msgpackUnmarshal(dec *msgpack.Decoder, typ Type, path *AttributePath) (Valu } return NewValue(Bool, rv), nil case typ.Is(List{}): + //nolint:forcetypeassert // Is func above guarantees this type assertion return msgpackUnmarshalList(dec, typ.(List).ElementType, path) case typ.Is(Set{}): + //nolint:forcetypeassert // Is func above guarantees this type assertion return msgpackUnmarshalSet(dec, typ.(Set).ElementType, path) case typ.Is(Map{}): + //nolint:forcetypeassert // Is func above guarantees this type assertion return msgpackUnmarshalMap(dec, typ.(Map).ElementType, path) case typ.Is(Tuple{}): + //nolint:forcetypeassert // Is func above guarantees this type assertion return msgpackUnmarshalTuple(dec, typ.(Tuple).ElementTypes, path) case typ.Is(Object{}): + //nolint:forcetypeassert // Is func above guarantees this type assertion return msgpackUnmarshalObject(dec, typ.(Object).AttributeTypes, path) } return Value{}, path.NewErrorf("unsupported type %s", typ.String()) @@ -364,15 +372,20 @@ func marshalMsgPack(val Value, typ Type, p *AttributePath, enc *msgpack.Encoder) case typ.Is(Bool): return marshalMsgPackBool(val, typ, p, enc) case typ.Is(List{}): - return marshalMsgPackList(val, typ, p, enc) + //nolint:forcetypeassert // Is func above guarantees this type assertion + return marshalMsgPackList(val, typ.(List), p, enc) case typ.Is(Set{}): - return marshalMsgPackSet(val, typ, p, enc) + //nolint:forcetypeassert // Is func above guarantees this type assertion + return marshalMsgPackSet(val, typ.(Set), p, enc) case typ.Is(Map{}): - return marshalMsgPackMap(val, typ, p, enc) + //nolint:forcetypeassert // Is func above guarantees this type assertion + return marshalMsgPackMap(val, typ.(Map), p, enc) case typ.Is(Tuple{}): - return marshalMsgPackTuple(val, typ, p, enc) + //nolint:forcetypeassert // Is func above guarantees this type assertion + return marshalMsgPackTuple(val, typ.(Tuple), p, enc) case typ.Is(Object{}): - return marshalMsgPackObject(val, typ, p, enc) + //nolint:forcetypeassert // Is func above guarantees this type assertion + return marshalMsgPackObject(val, typ.(Object), p, enc) } return fmt.Errorf("unknown type %s", typ) } @@ -459,7 +472,7 @@ func marshalMsgPackBool(val Value, typ Type, p *AttributePath, enc *msgpack.Enco return nil } -func marshalMsgPackList(val Value, typ Type, p *AttributePath, enc *msgpack.Encoder) error { +func marshalMsgPackList(val Value, typ List, p *AttributePath, enc *msgpack.Encoder) error { l, ok := val.value.([]Value) if !ok { return unexpectedValueTypeError(p, l, val.value, typ) @@ -469,7 +482,7 @@ func marshalMsgPackList(val Value, typ Type, p *AttributePath, enc *msgpack.Enco return p.NewErrorf("error encoding list length: %w", err) } for pos, i := range l { - err := marshalMsgPack(i, typ.(List).ElementType, p.WithElementKeyInt(pos), enc) + err := marshalMsgPack(i, typ.ElementType, p.WithElementKeyInt(pos), enc) if err != nil { return err } @@ -477,7 +490,7 @@ func marshalMsgPackList(val Value, typ Type, p *AttributePath, enc *msgpack.Enco return nil } -func marshalMsgPackSet(val Value, typ Type, p *AttributePath, enc *msgpack.Encoder) error { +func marshalMsgPackSet(val Value, typ Set, p *AttributePath, enc *msgpack.Encoder) error { s, ok := val.value.([]Value) if !ok { return unexpectedValueTypeError(p, s, val.value, typ) @@ -487,7 +500,7 @@ func marshalMsgPackSet(val Value, typ Type, p *AttributePath, enc *msgpack.Encod return p.NewErrorf("error encoding set length: %w", err) } for _, i := range s { - err := marshalMsgPack(i, typ.(Set).ElementType, p.WithElementKeyValue(i), enc) + err := marshalMsgPack(i, typ.ElementType, p.WithElementKeyValue(i), enc) if err != nil { return err } @@ -495,7 +508,7 @@ func marshalMsgPackSet(val Value, typ Type, p *AttributePath, enc *msgpack.Encod return nil } -func marshalMsgPackMap(val Value, typ Type, p *AttributePath, enc *msgpack.Encoder) error { +func marshalMsgPackMap(val Value, typ Map, p *AttributePath, enc *msgpack.Encoder) error { m, ok := val.value.(map[string]Value) if !ok { return unexpectedValueTypeError(p, m, val.value, typ) @@ -509,7 +522,7 @@ func marshalMsgPackMap(val Value, typ Type, p *AttributePath, enc *msgpack.Encod if err != nil { return p.NewErrorf("error encoding map key: %w", err) } - err = marshalMsgPack(v, typ.(Map).ElementType, p, enc) + err = marshalMsgPack(v, typ.ElementType, p, enc) if err != nil { return err } @@ -517,12 +530,12 @@ func marshalMsgPackMap(val Value, typ Type, p *AttributePath, enc *msgpack.Encod return nil } -func marshalMsgPackTuple(val Value, typ Type, p *AttributePath, enc *msgpack.Encoder) error { +func marshalMsgPackTuple(val Value, typ Tuple, p *AttributePath, enc *msgpack.Encoder) error { t, ok := val.value.([]Value) if !ok { return unexpectedValueTypeError(p, t, val.value, typ) } - types := typ.(Tuple).ElementTypes + types := typ.ElementTypes err := enc.EncodeArrayLen(len(types)) if err != nil { return p.NewErrorf("error encoding tuple length: %w", err) @@ -537,12 +550,12 @@ func marshalMsgPackTuple(val Value, typ Type, p *AttributePath, enc *msgpack.Enc return nil } -func marshalMsgPackObject(val Value, typ Type, p *AttributePath, enc *msgpack.Encoder) error { +func marshalMsgPackObject(val Value, typ Object, p *AttributePath, enc *msgpack.Encoder) error { o, ok := val.value.(map[string]Value) if !ok { return unexpectedValueTypeError(p, o, val.value, typ) } - types := typ.(Object).AttributeTypes + types := typ.AttributeTypes keys := make([]string, 0, len(types)) for k := range types { keys = append(keys, k) diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_walk.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_walk.go new file mode 100644 index 000000000000..7e6abb60130b --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/value_walk.go @@ -0,0 +1,33 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tftypes + +import "fmt" + +// walkAttributePath will return the Value that `path` is pointing to within the +// Value. If an error is returned, the AttributePath returned will indicate +// will indicate the steps that remained to be applied when the error was +// encountered. +// +// This implementation, along with one for Type, could be exported to deprecate +// the overly generic WalkAttributePath function. +func (v Value) walkAttributePath(path *AttributePath) (Value, *AttributePath, error) { + if path == nil || len(path.steps) == 0 { + return v, path, nil + } + + nextValueI, err := v.ApplyTerraform5AttributePathStep(path.NextStep()) + + if err != nil { + return Value{}, path, err + } + + nextValue, ok := nextValueI.(Value) + + if !ok { + return Value{}, path, fmt.Errorf("unknown type %T returned from tftypes.ApplyTerraform5AttributePathStep", nextValueI) + } + + return nextValue.walkAttributePath(NewAttributePathWithSteps(path.steps[1:])) +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/walk.go b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/walk.go index 6b26f8ff3ed0..e06a540abeb3 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/walk.go +++ b/vendor/github.com/hashicorp/terraform-plugin-go/tftypes/walk.go @@ -27,6 +27,18 @@ import ( "errors" ) +// stopWalkError is a well-known error for immediately stopping walk() without +// returning an actual error. +// +// The implementation of walk() will continue walking all attributes/elements +// within an object/collection since the boolean return value of the callback +// function is only intended to signal whether to stop descending into the same +// Value. Changing that behavior would be considered a breaking change. +// +// This could be considered for exporting to give external consumers better +// performance. +var stopWalkError = errors.New("walk stop requested") + // Walk traverses a Value, calling the passed function for every element and // attribute in the Value. The AttributePath passed to the callback function // will identify which attribute or element is currently being surfaced by the @@ -38,65 +50,116 @@ import ( // not matter when the Value that has been surfaced has no elements or // attributes. Walk uses a depth-first traversal. func Walk(val Value, cb func(*AttributePath, Value) (bool, error)) error { - return walk(nil, val, cb) + _, err := walk(NewAttributePath(), val, cb) + + return err } -func walk(path *AttributePath, val Value, cb func(*AttributePath, Value) (bool, error)) error { +// walk is the internal implementation of Walk(). It includes a bool return for +// whether callers should continue walking any remaining Value. +func walk(path *AttributePath, val Value, cb func(*AttributePath, Value) (bool, error)) (bool, error) { shouldContinue, err := cb(path, val) + + if errors.Is(err, stopWalkError) { + return false, nil + } + if err != nil { - return path.NewError(err) + return false, path.NewError(err) } + if !shouldContinue { - return nil + // The callback bool return is intended to signal that this Value should + // no longer be descended. Changing this behavior is a breaking change. + // A stopWalkError can be used to signal that all remaining Value can be + // skipped. + return true, nil } if val.IsNull() || !val.IsKnown() { - return nil + return true, nil } - ty := val.Type() - switch { - case ty.Is(List{}), ty.Is(Set{}), ty.Is(Tuple{}): - var v []Value - err := val.As(&v) - if err != nil { - // should never happen - return path.NewError(err) + switch val.Type().(type) { + case List, Tuple: + v, ok := val.value.([]Value) + + if !ok { + return false, path.NewErrorf("cannot convert %T into []tftypes.Value", val.value) } + for pos, el := range v { - if ty.Is(Set{}) { - path = path.WithElementKeyValue(el) - } else { - path = path.WithElementKeyInt(pos) + elementPath := path.WithElementKeyInt(pos) + shouldContinue, err := walk(elementPath, el, cb) + + if err != nil { + return false, elementPath.NewError(err) } - err = walk(path, el, cb) + + if !shouldContinue { + return false, nil + } + } + case Map: + v, ok := val.value.(map[string]Value) + + if !ok { + return false, path.NewErrorf("cannot convert %T into map[string]tftypes.Value", val.value) + } + + for k, el := range v { + elementPath := path.WithElementKeyString(k) + shouldContinue, err := walk(elementPath, el, cb) + if err != nil { - return path.NewError(err) + return false, elementPath.NewError(err) + } + + if !shouldContinue { + return false, nil } - path = path.WithoutLastStep() } - case ty.Is(Map{}), ty.Is(Object{}): - v := map[string]Value{} - err := val.As(&v) - if err != nil { - // should never happen - return err + case Object: + v, ok := val.value.(map[string]Value) + + if !ok { + return false, path.NewErrorf("cannot convert %T into map[string]tftypes.Value", val.value) } + for k, el := range v { - if ty.Is(Map{}) { - path = path.WithElementKeyString(k) - } else if ty.Is(Object{}) { - path = path.WithAttributeName(k) + attributePath := path.WithAttributeName(k) + shouldContinue, err := walk(attributePath, el, cb) + + if err != nil { + return false, attributePath.NewError(err) + } + + if !shouldContinue { + return false, nil } - err = walk(path, el, cb) + } + case Set: + v, ok := val.value.([]Value) + + if !ok { + return false, path.NewErrorf("cannot convert %T into []tftypes.Value", val.value) + } + + for _, el := range v { + elementPath := path.WithElementKeyValue(el) + shouldContinue, err := walk(elementPath, el, cb) + if err != nil { - return path.NewError(err) + return false, elementPath.NewError(err) + } + + if !shouldContinue { + return false, nil } - path = path.WithoutLastStep() } } - return nil + return true, nil } // Transform uses a callback to mutate a Value. Each element or attribute will @@ -113,85 +176,174 @@ func Transform(val Value, cb func(*AttributePath, Value) (Value, error)) (Value, } func transform(path *AttributePath, val Value, cb func(*AttributePath, Value) (Value, error)) (Value, error) { - var newVal Value - ty := val.Type() - - if ty == nil { + switch val.Type().(type) { + case nil: return val, path.NewError(errors.New("invalid transform: value missing type")) } - switch { - case val.IsNull() || !val.IsKnown(): - newVal = val - case ty.Is(List{}), ty.Is(Set{}), ty.Is(Tuple{}): - var v []Value - err := val.As(&v) - if err != nil { - return val, err - } - if len(v) == 0 { - newVal = val - } else { - elems := make([]Value, 0, len(v)) - for pos, el := range v { - if ty.Is(Set{}) { - path = path.WithElementKeyValue(el) - } else { - path = path.WithElementKeyInt(pos) - } - newEl, err := transform(path, el, cb) - if err != nil { - return val, path.NewError(err) - } - elems = append(elems, newEl) - path = path.WithoutLastStep() - } - newVal, err = newValue(ty, elems) - if err != nil { - return val, path.NewError(err) - } - } - case ty.Is(Map{}), ty.Is(Object{}): - v := map[string]Value{} - err := val.As(&v) - if err != nil { - return val, err - } - if len(v) == 0 { - newVal = val - } else { - elems := map[string]Value{} - for k, el := range v { - if ty.Is(Map{}) { - path = path.WithElementKeyString(k) - } else { - path = path.WithAttributeName(k) - } - newEl, err := transform(path, el, cb) - if err != nil { - return val, path.NewError(err) - } - elems[k] = newEl - path = path.WithoutLastStep() - } - newVal, err = newValue(ty, elems) - if err != nil { - return val, path.NewError(err) - } - } - default: - newVal = val + newVal, err := transformUnderlying(path, val, cb) + + if err != nil { + return val, err } + res, err := cb(path, newVal) + if err != nil { return res, path.NewError(err) } + newTy := newVal.Type() + if newTy == nil { return val, path.NewError(errors.New("invalid transform: new value missing type")) } - if !newTy.UsableAs(ty) { + + if !newTy.UsableAs(val.Type()) { return val, path.NewError(errors.New("invalid transform: value changed type")) } + return res, err } + +// transformUnderlying returns the Value with any underlying attribute or +// element transformations completed. +func transformUnderlying(path *AttributePath, val Value, cb func(*AttributePath, Value) (Value, error)) (Value, error) { + // If the Value is null or unknown, there is nothing to descend. + if val.IsNull() || !val.IsKnown() { + return val, nil + } + + switch val.Type().(type) { + case List, Tuple: + elements, ok := val.value.([]Value) + + if !ok { + return val, path.NewErrorf("cannot convert %T into []tftypes.Value", val.value) + } + + if len(elements) == 0 { + return val, nil + } + + newElements := make([]Value, 0, len(elements)) + + for index, element := range elements { + elementPath := path.WithElementKeyInt(index) + + newElement, err := transform(elementPath, element, cb) + + if err != nil { + return val, elementPath.NewError(err) + } + + newElements = append(newElements, newElement) + } + + newVal, err := newValue(val.Type(), newElements) + + if err != nil { + return val, path.NewError(err) + } + + return newVal, nil + case Map: + elements, ok := val.value.(map[string]Value) + + if !ok { + return val, path.NewErrorf("cannot convert %T into map[string]tftypes.Value", val.value) + } + + if len(elements) == 0 { + return val, nil + } + + newElements := make(map[string]Value, len(elements)) + + for key, element := range elements { + elementPath := path.WithElementKeyString(key) + + newElement, err := transform(elementPath, element, cb) + + if err != nil { + return val, elementPath.NewError(err) + } + + newElements[key] = newElement + } + + newVal, err := newValue(val.Type(), newElements) + + if err != nil { + return val, path.NewError(err) + } + + return newVal, nil + case Object: + attributes, ok := val.value.(map[string]Value) + + if !ok { + return val, path.NewErrorf("cannot convert %T into map[string]tftypes.Value", val.value) + } + + if len(attributes) == 0 { + return val, nil + } + + newAttributes := make(map[string]Value, len(attributes)) + + for name, attribute := range attributes { + attributePath := path.WithAttributeName(name) + + newAttribute, err := transform(attributePath, attribute, cb) + + if err != nil { + return val, attributePath.NewError(err) + } + + newAttributes[name] = newAttribute + } + + newVal, err := newValue(val.Type(), newAttributes) + + if err != nil { + return val, path.NewError(err) + } + + return newVal, nil + case Set: + elements, ok := val.value.([]Value) + + if !ok { + return val, path.NewErrorf("cannot convert %T into []tftypes.Value", val.value) + } + + if len(elements) == 0 { + return val, nil + } + + newElements := make([]Value, 0, len(elements)) + + for _, element := range elements { + elementPath := path.WithElementKeyValue(element) + + newElement, err := transform(elementPath, element, cb) + + if err != nil { + return val, elementPath.NewError(err) + } + + newElements = append(newElements, newElement) + } + + newVal, err := newValue(val.Type(), newElements) + + if err != nil { + return val, path.NewError(err) + } + + return newVal, nil + } + + return val, nil +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-log/tfsdklog/levels.go b/vendor/github.com/hashicorp/terraform-plugin-log/tfsdklog/levels.go new file mode 100644 index 000000000000..ed475a13790c --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-log/tfsdklog/levels.go @@ -0,0 +1,81 @@ +package tfsdklog + +import ( + "sync" + + "github.com/hashicorp/go-hclog" +) + +var ( + // rootLevel stores the effective level of the root SDK logger during + // NewRootSDKLogger where the value is deterministically chosen based on + // environment variables, etc. This call generally happens with each new + // provider RPC request. If the environment variable values changed during + // runtime between calls, then inflight provider requests checking this + // value would receive the most up-to-date value which would potentially + // differ with the actual in-context logger level. This tradeoff would only + // effect the inflight requests and should not be an overall performance + // concern in the case of this level causing more context checks until the + // request is over. + rootLevel hclog.Level = hclog.NoLevel + + // rootLevelMutex is a read-write mutex that protects rootLevel from + // triggering the data race detector. + rootLevelMutex = sync.RWMutex{} + + // subsystemLevels stores the effective level of all subsystem SDK loggers + // during NewSubsystem where the value is deterministically chosen based on + // environment variables, etc. This call generally happens with each new + // provider RPC request. If the environment variable values changed during + // runtime between calls, then inflight provider requests checking this + // value would receive the most up-to-date value which would potentially + // differ with the actual in-context logger level. This tradeoff would only + // effect the inflight requests and should not be an overall performance + // concern in the case of this level causing more context checks until the + // request is over. + subsystemLevels map[string]hclog.Level = make(map[string]hclog.Level) + + // subsystemLevelsMutex is a read-write mutex that protects the + // subsystemLevels map from concurrent read and write panics. + subsystemLevelsMutex = sync.RWMutex{} +) + +// subsystemWouldLog returns true if the subsystem SDK logger would emit a log +// at the given level. This is performed outside the context-based logger for +// performance. +func subsystemWouldLog(subsystem string, level hclog.Level) bool { + subsystemLevelsMutex.RLock() + + setLevel, ok := subsystemLevels[subsystem] + + subsystemLevelsMutex.RUnlock() + + if !ok { + return false + } + + return wouldLog(setLevel, level) +} + +// rootWouldLog returns true if the root SDK logger would emit a log at the +// given level. This is performed outside the context-based logger for +// performance. +func rootWouldLog(level hclog.Level) bool { + rootLevelMutex.RLock() + + setLevel := rootLevel + + rootLevelMutex.RUnlock() + + return wouldLog(setLevel, level) +} + +// wouldLog returns true if the set level would emit a log at the given +// level. This is performed outside the context-based logger for performance. +func wouldLog(setLevel, checkLevel hclog.Level) bool { + if checkLevel == hclog.Off { + return false + } + + return checkLevel >= setLevel +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-log/tfsdklog/sdk.go b/vendor/github.com/hashicorp/terraform-plugin-log/tfsdklog/sdk.go index 2891ddf29c0b..4ffb2cc2f53b 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-log/tfsdklog/sdk.go +++ b/vendor/github.com/hashicorp/terraform-plugin-log/tfsdklog/sdk.go @@ -35,6 +35,14 @@ func NewRootSDKLogger(ctx context.Context, options ...logging.Option) context.Co if opts.Level == hclog.NoLevel { opts.Level = hclog.Trace } + + // Cache root logger level outside context for performance reasons. + rootLevelMutex.Lock() + + rootLevel = opts.Level + + rootLevelMutex.Unlock() + loggerOptions := &hclog.LoggerOptions{ Name: opts.Name, Level: opts.Level, diff --git a/vendor/github.com/hashicorp/terraform-plugin-log/tfsdklog/subsystem.go b/vendor/github.com/hashicorp/terraform-plugin-log/tfsdklog/subsystem.go index 4d2a1a1a54a5..0aeb5463cab0 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-log/tfsdklog/subsystem.go +++ b/vendor/github.com/hashicorp/terraform-plugin-log/tfsdklog/subsystem.go @@ -58,6 +58,13 @@ func NewSubsystem(ctx context.Context, subsystem string, options ...logging.Opti subLogger = hclog.New(subLoggerOptions) } + // Cache subsystem logger level outside context for performance reasons. + subsystemLevelsMutex.Lock() + + subsystemLevels[subsystem] = subLoggerTFLoggerOpts.Level + + subsystemLevelsMutex.Unlock() + // Set the configured log level if subLoggerTFLoggerOpts.Level != hclog.NoLevel { subLogger.SetLevel(subLoggerTFLoggerOpts.Level) @@ -97,6 +104,10 @@ func SubsystemSetField(ctx context.Context, subsystem, key string, value interfa // subsystem logger, e.g. by the `SubsystemSetField()` function, and across // multiple maps. func SubsystemTrace(ctx context.Context, subsystem, msg string, additionalFields ...map[string]interface{}) { + if !subsystemWouldLog(subsystem, hclog.Trace) { + return + } + logger := logging.GetSDKSubsystemLogger(ctx, subsystem) if logger == nil { if logging.GetSDKRootLogger(ctx) == nil { @@ -122,6 +133,10 @@ func SubsystemTrace(ctx context.Context, subsystem, msg string, additionalFields // subsystem logger, e.g. by the `SubsystemSetField()` function, and across // multiple maps. func SubsystemDebug(ctx context.Context, subsystem, msg string, additionalFields ...map[string]interface{}) { + if !subsystemWouldLog(subsystem, hclog.Debug) { + return + } + logger := logging.GetSDKSubsystemLogger(ctx, subsystem) if logger == nil { if logging.GetSDKRootLogger(ctx) == nil { @@ -147,6 +162,10 @@ func SubsystemDebug(ctx context.Context, subsystem, msg string, additionalFields // subsystem logger, e.g. by the `SubsystemSetField()` function, and across // multiple maps. func SubsystemInfo(ctx context.Context, subsystem, msg string, additionalFields ...map[string]interface{}) { + if !subsystemWouldLog(subsystem, hclog.Info) { + return + } + logger := logging.GetSDKSubsystemLogger(ctx, subsystem) if logger == nil { if logging.GetSDKRootLogger(ctx) == nil { @@ -172,6 +191,10 @@ func SubsystemInfo(ctx context.Context, subsystem, msg string, additionalFields // subsystem logger, e.g. by the `SubsystemSetField()` function, and across // multiple maps. func SubsystemWarn(ctx context.Context, subsystem, msg string, additionalFields ...map[string]interface{}) { + if !subsystemWouldLog(subsystem, hclog.Warn) { + return + } + logger := logging.GetSDKSubsystemLogger(ctx, subsystem) if logger == nil { if logging.GetSDKRootLogger(ctx) == nil { @@ -197,6 +220,10 @@ func SubsystemWarn(ctx context.Context, subsystem, msg string, additionalFields // subsystem logger, e.g. by the `SubsystemSetField()` function, and across // multiple maps. func SubsystemError(ctx context.Context, subsystem, msg string, additionalFields ...map[string]interface{}) { + if !subsystemWouldLog(subsystem, hclog.Error) { + return + } + logger := logging.GetSDKSubsystemLogger(ctx, subsystem) if logger == nil { if logging.GetSDKRootLogger(ctx) == nil { diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/diag/diagnostic.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/diag/diagnostic.go index 3b1ced344f5d..5a5330426975 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/diag/diagnostic.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/diag/diagnostic.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package diag import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/diag/helpers.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/diag/helpers.go index 08e9291784d8..4f2b7a883320 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/diag/helpers.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/diag/helpers.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package diag import "fmt" diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/compose.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/compose.go index 4aa450199c85..0da82ce49e64 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/compose.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/compose.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package customdiff import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/computed.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/computed.go index c65a56401cc0..f432b656815e 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/computed.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/computed.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package customdiff import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/condition.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/condition.go index 40c06e733ff0..452d3d25b3f8 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/condition.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/condition.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package customdiff import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/doc.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/doc.go index c6ad1199cdc6..a6b39360afac 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/doc.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package customdiff provides a set of reusable and composable functions // to enable more "declarative" use of the CustomizeDiff mechanism available // for resources in package helper/schema. diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/force_new.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/force_new.go index f94257b73033..f5e35debdac6 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/force_new.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/force_new.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package customdiff import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/validate.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/validate.go index ad381fb8578a..c8e71d01e507 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/validate.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff/validate.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package customdiff import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging/logging.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging/logging.go index 74eb7f6667ae..ea0764d13ad2 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging/logging.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging/logging.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package logging import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging/logging_http_transport.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging/logging_http_transport.go index 335e1784e224..ca8ba4ecce98 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging/logging_http_transport.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging/logging_http_transport.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package logging import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging/transport.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging/transport.go index bda3813d9619..774bc480f698 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging/transport.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging/transport.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package logging import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/context.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/context.go index ed8d0964bfa8..bced9ead54d7 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/context.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/context.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema type Key string diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/core_schema.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/core_schema.go index bb1fc1dbe544..736af218da24 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/core_schema.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/core_schema.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( @@ -364,5 +367,5 @@ func (r *Resource) CoreConfigSchema() *configschema.Block { } func (r *Resource) coreConfigSchema() *configschema.Block { - return schemaMap(r.Schema).CoreConfigSchema() + return schemaMap(r.SchemaMap()).CoreConfigSchema() } diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/data_source_resource_shim.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/data_source_resource_shim.go index 8d93750aede2..3a01c0f32f65 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/data_source_resource_shim.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/data_source_resource_shim.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/equal.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/equal.go index d5e20e038897..92a02b3b3ac3 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/equal.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/equal.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema // Equal is an interface that checks for deep equality between two objects. diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader.go index 855bc4028a16..6aae74d95b63 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( @@ -81,7 +84,7 @@ func addrToSchema(addr []string, schemaMap map[string]*Schema) []*Schema { case *Resource: current = &Schema{ Type: typeObject, - Elem: v.Schema, + Elem: v.SchemaMap(), } case *Schema: current = v diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_config.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_config.go index cd4a993a35ce..df317c20bb0b 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_config.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_config.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( @@ -300,7 +303,7 @@ func (r *ConfigFieldReader) hasComputedSubKeys(key string, schema *Schema) bool switch t := schema.Elem.(type) { case *Resource: - for k, schema := range t.Schema { + for k, schema := range t.SchemaMap() { if r.Config.IsComputed(prefix + k) { return true } diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_diff.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_diff.go index ca3b714b1dd5..c9da00e91199 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_diff.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_diff.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_map.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_map.go index 6fa191522740..6697606c6f29 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_map.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_map.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_multi.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_multi.go index 89ad3a86f2b9..da4c9c81500d 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_multi.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_reader_multi.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_writer.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_writer.go index 9abc41b54f40..be4fae5060eb 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_writer.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_writer.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema // FieldWriters are responsible for writing fields by address into diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_writer_map.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_writer_map.go index 39c708b27fa0..c9147cec191a 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_writer_map.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/field_writer_map.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/grpc_provider.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/grpc_provider.go index 17a0de4cc63c..7fb59e082cd3 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/grpc_provider.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/grpc_provider.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( @@ -64,14 +67,47 @@ func (s *GRPCProviderServer) StopContext(ctx context.Context) context.Context { return stoppable } +func (s *GRPCProviderServer) serverCapabilities() *tfprotov5.ServerCapabilities { + return &tfprotov5.ServerCapabilities{ + GetProviderSchemaOptional: true, + } +} + +func (s *GRPCProviderServer) GetMetadata(ctx context.Context, req *tfprotov5.GetMetadataRequest) (*tfprotov5.GetMetadataResponse, error) { + ctx = logging.InitContext(ctx) + + logging.HelperSchemaTrace(ctx, "Getting provider metadata") + + resp := &tfprotov5.GetMetadataResponse{ + DataSources: make([]tfprotov5.DataSourceMetadata, 0, len(s.provider.DataSourcesMap)), + Resources: make([]tfprotov5.ResourceMetadata, 0, len(s.provider.ResourcesMap)), + ServerCapabilities: s.serverCapabilities(), + } + + for typeName := range s.provider.DataSourcesMap { + resp.DataSources = append(resp.DataSources, tfprotov5.DataSourceMetadata{ + TypeName: typeName, + }) + } + + for typeName := range s.provider.ResourcesMap { + resp.Resources = append(resp.Resources, tfprotov5.ResourceMetadata{ + TypeName: typeName, + }) + } + + return resp, nil +} + func (s *GRPCProviderServer) GetProviderSchema(ctx context.Context, req *tfprotov5.GetProviderSchemaRequest) (*tfprotov5.GetProviderSchemaResponse, error) { ctx = logging.InitContext(ctx) logging.HelperSchemaTrace(ctx, "Getting provider schema") resp := &tfprotov5.GetProviderSchemaResponse{ - ResourceSchemas: make(map[string]*tfprotov5.Schema), - DataSourceSchemas: make(map[string]*tfprotov5.Schema), + DataSourceSchemas: make(map[string]*tfprotov5.Schema, len(s.provider.DataSourcesMap)), + ResourceSchemas: make(map[string]*tfprotov5.Schema, len(s.provider.ResourcesMap)), + ServerCapabilities: s.serverCapabilities(), } resp.Provider = &tfprotov5.Schema{ @@ -659,20 +695,23 @@ func (s *GRPCProviderServer) PlanResourceChange(ctx context.Context, req *tfprot ctx = logging.InitContext(ctx) resp := &tfprotov5.PlanResourceChangeResponse{} + res, ok := s.provider.ResourcesMap[req.TypeName] + if !ok { + resp.Diagnostics = convert.AppendProtoDiag(ctx, resp.Diagnostics, fmt.Errorf("unknown resource type: %s", req.TypeName)) + return resp, nil + } + schemaBlock := s.getResourceSchemaBlock(req.TypeName) + // This is a signal to Terraform Core that we're doing the best we can to // shim the legacy type system of the SDK onto the Terraform type system // but we need it to cut us some slack. This setting should not be taken // forward to any new SDK implementations, since setting it prevents us // from catching certain classes of provider bug that can lead to // confusing downstream errors. - resp.UnsafeToUseLegacyTypeSystem = true //nolint:staticcheck - - res, ok := s.provider.ResourcesMap[req.TypeName] - if !ok { - resp.Diagnostics = convert.AppendProtoDiag(ctx, resp.Diagnostics, fmt.Errorf("unknown resource type: %s", req.TypeName)) - return resp, nil + if !res.EnableLegacyTypeSystemPlanErrors { + //nolint:staticcheck // explicitly for this SDK + resp.UnsafeToUseLegacyTypeSystem = true } - schemaBlock := s.getResourceSchemaBlock(req.TypeName) priorStateVal, err := msgpack.Unmarshal(req.PriorState.MsgPack, schemaBlock.ImpliedType()) if err != nil { @@ -1072,7 +1111,10 @@ func (s *GRPCProviderServer) ApplyResourceChange(ctx context.Context, req *tfpro // forward to any new SDK implementations, since setting it prevents us // from catching certain classes of provider bug that can lead to // confusing downstream errors. - resp.UnsafeToUseLegacyTypeSystem = true //nolint:staticcheck + if !res.EnableLegacyTypeSystemApplyErrors { + //nolint:staticcheck // explicitly for this SDK + resp.UnsafeToUseLegacyTypeSystem = true + } return resp, nil } @@ -1300,7 +1342,7 @@ func stripResourceModifiers(r *Resource) *Resource { newResource.CustomizeDiff = nil newResource.Schema = map[string]*Schema{} - for k, s := range r.Schema { + for k, s := range r.SchemaMap() { newResource.Schema[k] = stripSchema(s) } diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/json.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/json.go index 265099a6b6f2..8cf22a51855d 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/json.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/json.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/provider.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/provider.go index 91a21b389089..75e1a7c42e1a 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/provider.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/provider.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource.go index 28a7600b0774..7564a0aff23c 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( @@ -53,13 +56,25 @@ var ReservedResourceFields = []string{ // being implemented. type Resource struct { // Schema is the structure and type information for this component. This - // field is required for all Resource concepts. + // field, or SchemaFunc, is required for all Resource concepts. To prevent + // storing all schema information in memory for the lifecycle of a provider, + // use SchemaFunc instead. // // The keys of this map are the names used in a practitioner configuration, // such as the attribute or block name. The values describe the structure // and type information of that attribute or block. Schema map[string]*Schema + // SchemaFunc is the structure and type information for this component. This + // field, or Schema, is required for all Resource concepts. Use this field + // instead of Schema on top level Resource declarations to prevent storing + // all schema information in memory for the lifecycle of a provider. + // + // The keys of this map are the names used in a practitioner configuration, + // such as the attribute or block name. The values describe the structure + // and type information of that attribute or block. + SchemaFunc func() map[string]*Schema + // SchemaVersion is the version number for this resource's Schema // definition. This field is only valid when the Resource is a managed // resource. @@ -580,6 +595,62 @@ type Resource struct { // See github.com/hashicorp/terraform-plugin-sdk/issues/655 for more // details. UseJSONNumber bool + + // EnableLegacyTypeSystemApplyErrors when enabled will prevent the SDK from + // setting the legacy type system flag in the protocol during + // ApplyResourceChange (Create, Update, and Delete) operations. Before + // enabling this setting in a production release for a resource, the + // resource should be exhaustively acceptance tested with the setting + // enabled in an environment where it is easy to clean up resources, + // potentially outside of Terraform, since these errors may be unavoidable + // in certain cases. + // + // Disabling the legacy type system protocol flag is an unsafe operation + // when using this SDK as there are certain unavoidable behaviors imposed + // by the SDK, however this option is surfaced to allow provider developers + // to try to discover fixable data inconsistency errors more easily. + // Terraform, when encountering an enabled legacy type system protocol flag, + // will demote certain schema and data consistency errors into warning logs + // containing the text "legacy plugin SDK". Some errors for errant schema + // definitions, such as when an attribute is not marked as Computed as + // expected by Terraform, can only be resolved by migrating to + // terraform-plugin-framework since that SDK does not impose behavior + // changes with it enabled. However, data-based errors typically require + // logic fixes that should be applicable for both SDKs to be resolved. + EnableLegacyTypeSystemApplyErrors bool + + // EnableLegacyTypeSystemPlanErrors when enabled will prevent the SDK from + // setting the legacy type system flag in the protocol during + // PlanResourceChange operations. Before enabling this setting in a + // production release for a resource, the resource should be exhaustively + // acceptance tested with the setting enabled in an environment where it is + // easy to clean up resources, potentially outside of Terraform, since these + // errors may be unavoidable in certain cases. + // + // Disabling the legacy type system protocol flag is an unsafe operation + // when using this SDK as there are certain unavoidable behaviors imposed + // by the SDK, however this option is surfaced to allow provider developers + // to try to discover fixable data inconsistency errors more easily. + // Terraform, when encountering an enabled legacy type system protocol flag, + // will demote certain schema and data consistency errors into warning logs + // containing the text "legacy plugin SDK". Some errors for errant schema + // definitions, such as when an attribute is not marked as Computed as + // expected by Terraform, can only be resolved by migrating to + // terraform-plugin-framework since that SDK does not impose behavior + // changes with it enabled. However, data-based errors typically require + // logic fixes that should be applicable for both SDKs to be resolved. + EnableLegacyTypeSystemPlanErrors bool +} + +// SchemaMap returns the schema information for this Resource whether it is +// defined via the SchemaFunc field or Schema field. The SchemaFunc field, if +// defined, takes precedence over the Schema field. +func (r *Resource) SchemaMap() map[string]*Schema { + if r.SchemaFunc != nil { + return r.SchemaFunc() + } + + return r.Schema } // ShimInstanceStateFromValue converts a cty.Value to a @@ -591,7 +662,7 @@ func (r *Resource) ShimInstanceStateFromValue(state cty.Value) (*terraform.Insta // We now rebuild the state through the ResourceData, so that the set indexes // match what helper/schema expects. - data, err := schemaMap(r.Schema).Data(s, nil) + data, err := schemaMap(r.SchemaMap()).Data(s, nil) if err != nil { return nil, err } @@ -764,7 +835,8 @@ func (r *Resource) Apply( s *terraform.InstanceState, d *terraform.InstanceDiff, meta interface{}) (*terraform.InstanceState, diag.Diagnostics) { - data, err := schemaMap(r.Schema).Data(s, d) + schema := schemaMap(r.SchemaMap()) + data, err := schema.Data(s, d) if err != nil { return s, diag.FromErr(err) } @@ -821,7 +893,7 @@ func (r *Resource) Apply( } // Reset the data to be stateless since we just destroyed - data, err = schemaMap(r.Schema).Data(nil, d) + data, err = schema.Data(nil, d) if err != nil { return nil, append(diags, diag.FromErr(err)...) } @@ -865,7 +937,7 @@ func (r *Resource) Diff( return nil, fmt.Errorf("[ERR] Error decoding timeout: %s", err) } - instanceDiff, err := schemaMap(r.Schema).Diff(ctx, s, c, r.CustomizeDiff, meta, true) + instanceDiff, err := schemaMap(r.SchemaMap()).Diff(ctx, s, c, r.CustomizeDiff, meta, true) if err != nil { return instanceDiff, err } @@ -887,7 +959,7 @@ func (r *Resource) SimpleDiff( c *terraform.ResourceConfig, meta interface{}) (*terraform.InstanceDiff, error) { - instanceDiff, err := schemaMap(r.Schema).Diff(ctx, s, c, r.CustomizeDiff, meta, false) + instanceDiff, err := schemaMap(r.SchemaMap()).Diff(ctx, s, c, r.CustomizeDiff, meta, false) if err != nil { return instanceDiff, err } @@ -912,7 +984,7 @@ func (r *Resource) SimpleDiff( // Validate validates the resource configuration against the schema. func (r *Resource) Validate(c *terraform.ResourceConfig) diag.Diagnostics { - diags := schemaMap(r.Schema).Validate(c) + diags := schemaMap(r.SchemaMap()).Validate(c) if r.DeprecationMessage != "" { diags = append(diags, diag.Diagnostic{ @@ -934,7 +1006,7 @@ func (r *Resource) ReadDataApply( ) (*terraform.InstanceState, diag.Diagnostics) { // Data sources are always built completely from scratch // on each read, so the source state is always nil. - data, err := schemaMap(r.Schema).Data(nil, d) + data, err := schemaMap(r.SchemaMap()).Data(nil, d) if err != nil { return nil, diag.FromErr(err) } @@ -975,10 +1047,12 @@ func (r *Resource) RefreshWithoutUpgrade( } } + schema := schemaMap(r.SchemaMap()) + if r.Exists != nil { // Make a copy of data so that if it is modified it doesn't // affect our Read later. - data, err := schemaMap(r.Schema).Data(s, nil) + data, err := schema.Data(s, nil) if err != nil { return s, diag.FromErr(err) } @@ -1001,7 +1075,7 @@ func (r *Resource) RefreshWithoutUpgrade( } } - data, err := schemaMap(r.Schema).Data(s, nil) + data, err := schema.Data(s, nil) if err != nil { return s, diag.FromErr(err) } @@ -1020,7 +1094,7 @@ func (r *Resource) RefreshWithoutUpgrade( state = nil } - schemaMap(r.Schema).handleDiffSuppressOnRefresh(ctx, s, state) + schema.handleDiffSuppressOnRefresh(ctx, s, state) return r.recordCurrentSchemaVersion(state), diags } @@ -1066,13 +1140,14 @@ func (r *Resource) InternalValidate(topSchemaMap schemaMap, writable bool) error } } + schema := schemaMap(r.SchemaMap()) tsm := topSchemaMap if r.isTopLevel() && writable { // All non-Computed attributes must be ForceNew if Update is not defined if !r.updateFuncSet() { nonForceNewAttrs := make([]string, 0) - for k, v := range r.Schema { + for k, v := range schema { if !v.ForceNew && !v.Computed { nonForceNewAttrs = append(nonForceNewAttrs, k) } @@ -1083,19 +1158,19 @@ func (r *Resource) InternalValidate(topSchemaMap schemaMap, writable bool) error } } else { nonUpdateableAttrs := make([]string, 0) - for k, v := range r.Schema { + for k, v := range schema { if v.ForceNew || v.Computed && !v.Optional { nonUpdateableAttrs = append(nonUpdateableAttrs, k) } } - updateableAttrs := len(r.Schema) - len(nonUpdateableAttrs) + updateableAttrs := len(schema) - len(nonUpdateableAttrs) if updateableAttrs == 0 { return fmt.Errorf( "All fields are ForceNew or Computed w/out Optional, Update is superfluous") } } - tsm = schemaMap(r.Schema) + tsm = schema // Destroy, and Read are required if !r.readFuncSet() { @@ -1154,7 +1229,7 @@ func (r *Resource) InternalValidate(topSchemaMap schemaMap, writable bool) error // Data source if r.isTopLevel() && !writable { - tsm = schemaMap(r.Schema) + tsm = schema for k := range tsm { if isReservedDataSourceFieldName(k) { return fmt.Errorf("%s is a reserved field name", k) @@ -1162,6 +1237,10 @@ func (r *Resource) InternalValidate(topSchemaMap schemaMap, writable bool) error } } + if r.SchemaFunc != nil && r.Schema != nil { + return fmt.Errorf("SchemaFunc and Schema should not both be set") + } + // check context funcs are not set alongside their nonctx counterparts if r.CreateContext != nil && r.Create != nil { return fmt.Errorf("CreateContext and Create should not both be set") @@ -1204,7 +1283,7 @@ func (r *Resource) InternalValidate(topSchemaMap schemaMap, writable bool) error return fmt.Errorf("Delete and DeleteWithoutTimeout should not both be set") } - return schemaMap(r.Schema).InternalValidate(tsm) + return schema.InternalValidate(tsm) } func isReservedDataSourceFieldName(name string) bool { @@ -1251,7 +1330,7 @@ func isReservedResourceFieldName(name string) bool { // // This function is useful for unit tests and ResourceImporter functions. func (r *Resource) Data(s *terraform.InstanceState) *ResourceData { - result, err := schemaMap(r.Schema).Data(s, nil) + result, err := schemaMap(r.SchemaMap()).Data(s, nil) if err != nil { // At the time of writing, this isn't possible (Data never returns // non-nil errors). We panic to find this in the future if we have to. @@ -1278,7 +1357,7 @@ func (r *Resource) Data(s *terraform.InstanceState) *ResourceData { // TODO: May be able to be removed with the above ResourceData function. func (r *Resource) TestResourceData() *ResourceData { return &ResourceData{ - schema: r.Schema, + schema: r.SchemaMap(), } } diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_data.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_data.go index 396b5bc6f150..b7eb7d2711f8 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_data.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_data.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_data_get_source.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_data_get_source.go index 9e4cc53e78fe..0639540b47b1 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_data_get_source.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_data_get_source.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema // This code was previously generated with a go:generate directive calling: diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_diff.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_diff.go index 27575b29770a..6af9490b9e0a 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_diff.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_diff.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_importer.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_importer.go index 3b17c8e96d4c..ad9a5c3b9c6d 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_importer.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_importer.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_timeout.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_timeout.go index 93f6fc243cf5..90d29e6259a6 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_timeout.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/resource_timeout.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/schema.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/schema.go index 4a3e146b60d3..176288b0cd80 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/schema.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/schema.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // schema is a high-level framework for easily writing new providers // for Terraform. Usage of schema is recommended over attempting to write // to the low-level plugin interfaces manually. @@ -88,10 +91,6 @@ type Schema struct { // Optional indicates whether the practitioner can choose to not enter // a value in the configuration for this attribute. Optional cannot be used // with Required. - // - // If also using Default or DefaultFunc, Computed should also be enabled, - // otherwise Terraform can output warning logs or "inconsistent result - // after apply" errors. Optional bool // Computed indicates whether the provider may return its own value for @@ -940,7 +939,7 @@ func (m schemaMap) internalValidate(topSchemaMap schemaMap, attrsOnly bool) erro case *Resource: attrsOnly := attrsOnly || v.ConfigMode == SchemaConfigModeAttr - if err := schemaMap(t.Schema).internalValidate(topSchemaMap, attrsOnly); err != nil { + if err := schemaMap(t.SchemaMap()).internalValidate(topSchemaMap, attrsOnly); err != nil { return err } case *Schema: @@ -1070,7 +1069,7 @@ func checkKeysAgainstSchemaFlags(k string, keys []string, topSchemaMap schemaMap return fmt.Errorf("%s configuration block reference (%s) can only be used with TypeList and MaxItems: 1 configuration blocks", k, key) } - sm = schemaMap(subResource.Schema) + sm = subResource.SchemaMap() } if target == nil { @@ -1260,7 +1259,7 @@ func (m schemaMap) diffList( case *Resource: // This is a complex resource for i := 0; i < maxLen; i++ { - for k2, schema := range t.Schema { + for k2, schema := range t.SchemaMap() { subK := fmt.Sprintf("%s.%d.%s", k, i, k2) err := m.diff(ctx, subK, schema, diff, d, all) if err != nil { @@ -1507,7 +1506,7 @@ func (m schemaMap) diffSet( switch t := schema.Elem.(type) { case *Resource: // This is a complex resource - for k2, schema := range t.Schema { + for k2, schema := range t.SchemaMap() { subK := fmt.Sprintf("%s.%s.%s", k, code, k2) err := m.diff(ctx, subK, schema, diff, d, true) if err != nil { @@ -1974,7 +1973,7 @@ func (m schemaMap) validateList( switch t := schema.Elem.(type) { case *Resource: // This is a sub-resource - diags = append(diags, m.validateObject(key, t.Schema, c, p)...) + diags = append(diags, m.validateObject(key, t.SchemaMap(), c, p)...) case *Schema: diags = append(diags, m.validateType(key, raw, t, c, p)...) } diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/serialize.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/serialize.go index 0e0e3cca9e5d..d629240fd389 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/serialize.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/serialize.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( @@ -88,7 +91,7 @@ func SerializeResourceForHash(buf *bytes.Buffer, val interface{}, resource *Reso if val == nil { return } - sm := resource.Schema + sm := resource.SchemaMap() m := val.(map[string]interface{}) var keys []string allComputed := true diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/set.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/set.go index b937ab6e5619..e897817fd302 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/set.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/set.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/shims.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/shims.go index 9c7f0906c64c..e8baebd70cfb 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/shims.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/shims.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( @@ -40,7 +43,7 @@ func diffFromValues(ctx context.Context, prior, planned, config cty.Value, res * removeConfigUnknowns(cfg.Config) removeConfigUnknowns(cfg.Raw) - diff, err := schemaMap(res.Schema).Diff(ctx, instanceState, cfg, cust, nil, false) + diff, err := schemaMap(res.SchemaMap()).Diff(ctx, instanceState, cfg, cust, nil, false) if err != nil { return nil, err } diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/testing.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/testing.go index f345f8326319..bdf56d9012f4 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/testing.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/testing.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/unknown.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/unknown.go index c58d3648ab49..1089e4d2d791 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/unknown.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/unknown.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/valuetype.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/valuetype.go index 2b355cc9ca17..2563ff84106a 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/valuetype.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema/valuetype.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package schema // This code was previously generated with a go:generate directive calling: diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/expand_json.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/expand_json.go index b3eb90fdff53..520afeffcb2e 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/expand_json.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/expand_json.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package structure import "encoding/json" diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/flatten_json.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/flatten_json.go index 578ad2eade30..d0913ac65fc0 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/flatten_json.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/flatten_json.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package structure import "encoding/json" diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/normalize_json.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/normalize_json.go index 3256b476dd0e..0521420849b2 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/normalize_json.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/normalize_json.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package structure import "encoding/json" diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/suppress_json_diff.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/suppress_json_diff.go index c99b73846eec..c610616374c0 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/suppress_json_diff.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure/suppress_json_diff.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package structure import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/float.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/float.go index 05a30531e2d9..dfc261842d3b 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/float.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/float.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package validation import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/int.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/int.go index f2738201cc0b..2873897f2764 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/int.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/int.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package validation import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/list.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/list.go index 75702b5b8a38..9f0eb4b65d60 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/list.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/list.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package validation import "fmt" diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/map.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/map.go index 9e4510b1e55f..7c925090541f 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/map.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/map.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package validation import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/meta.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/meta.go index b0515c8d0854..941476429c22 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/meta.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/meta.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package validation import ( @@ -42,6 +45,18 @@ func All(validators ...schema.SchemaValidateFunc) schema.SchemaValidateFunc { } } +// AllDiag returns a SchemaValidateDiagFunc which tests if the provided value +// passes all provided SchemaValidateDiagFunc +func AllDiag(validators ...schema.SchemaValidateDiagFunc) schema.SchemaValidateDiagFunc { + return func(i interface{}, k cty.Path) diag.Diagnostics { + var diags diag.Diagnostics + for _, validator := range validators { + diags = append(diags, validator(i, k)...) + } + return diags + } +} + // Any returns a SchemaValidateFunc which tests if the provided value // passes any of the provided SchemaValidateFunc func Any(validators ...schema.SchemaValidateFunc) schema.SchemaValidateFunc { @@ -60,6 +75,22 @@ func Any(validators ...schema.SchemaValidateFunc) schema.SchemaValidateFunc { } } +// AnyDiag returns a SchemaValidateDiagFunc which tests if the provided value +// passes any of the provided SchemaValidateDiagFunc +func AnyDiag(validators ...schema.SchemaValidateDiagFunc) schema.SchemaValidateDiagFunc { + return func(i interface{}, k cty.Path) diag.Diagnostics { + var diags diag.Diagnostics + for _, validator := range validators { + validatorDiags := validator(i, k) + if len(validatorDiags) == 0 { + return diag.Diagnostics{} + } + diags = append(diags, validatorDiags...) + } + return diags + } +} + // ToDiagFunc is a wrapper for legacy schema.SchemaValidateFunc // converting it to schema.SchemaValidateDiagFunc func ToDiagFunc(validator schema.SchemaValidateFunc) schema.SchemaValidateDiagFunc { diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/network.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/network.go index 8aa7139a004c..9bc6da2b8eee 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/network.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/network.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package validation import ( @@ -89,7 +92,7 @@ func IsCIDR(i interface{}, k string) (warnings []string, errors []error) { } if _, _, err := net.ParseCIDR(v); err != nil { - errors = append(errors, fmt.Errorf("expected %q to be a valid IPv4 Value, got %v: %v", k, i, err)) + errors = append(errors, fmt.Errorf("expected %q to be a valid CIDR Value, got %v: %v", k, i, err)) } return warnings, errors diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/strings.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/strings.go index e739a1a1bfac..375a698f2c25 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/strings.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/strings.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package validation import ( @@ -143,7 +146,7 @@ func StringInSlice(valid []string, ignoreCase bool) schema.SchemaValidateFunc { } } - errors = append(errors, fmt.Errorf("expected %s to be one of %v, got %s", k, valid, v)) + errors = append(errors, fmt.Errorf("expected %s to be one of %q, got %s", k, valid, v)) return warnings, errors } } diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/testing.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/testing.go index d861f5a2af9c..a5aa6e045492 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/testing.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/testing.go @@ -1,9 +1,14 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package validation import ( + "fmt" "regexp" + "testing" - testing "github.com/mitchellh/go-testing-interface" + "github.com/hashicorp/go-cty/cty" "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -15,23 +20,53 @@ type testCase struct { expectedErr *regexp.Regexp } -func runTestCases(t testing.T, cases []testCase) { +func runTestCases(t *testing.T, cases []testCase) { t.Helper() for i, tc := range cases { - _, errs := tc.f(tc.val, "test_property") + t.Run(fmt.Sprintf("TestCase_%d", i), func(t *testing.T) { + _, errs := tc.f(tc.val, "test_property") - if len(errs) == 0 && tc.expectedErr == nil { - continue - } + if len(errs) == 0 && tc.expectedErr == nil { + return + } - if len(errs) != 0 && tc.expectedErr == nil { - t.Fatalf("expected test case %d to produce no errors, got %v", i, errs) - } + if len(errs) != 0 && tc.expectedErr == nil { + t.Fatalf("expected test case %d to produce no errors, got %v", i, errs) + } - if !matchAnyError(errs, tc.expectedErr) { - t.Fatalf("expected test case %d to produce error matching \"%s\", got %v", i, tc.expectedErr, errs) - } + if !matchAnyError(errs, tc.expectedErr) { + t.Fatalf("expected test case %d to produce error matching \"%s\", got %v", i, tc.expectedErr, errs) + } + }) + } +} + +type diagTestCase struct { + val interface{} + f schema.SchemaValidateDiagFunc + expectedDiagSummary *regexp.Regexp +} + +func runDiagTestCases(t *testing.T, cases []diagTestCase) { + t.Helper() + + for i, tc := range cases { + t.Run(fmt.Sprintf("TestCase_%d", i), func(t *testing.T) { + diags := tc.f(tc.val, cty.GetAttrPath("test_property")) + + if len(diags) == 0 && tc.expectedDiagSummary == nil { + return + } + + if len(diags) != 0 && tc.expectedDiagSummary == nil { + t.Fatalf("expected test case %d to produce no diagnostics, got %v", i, diags) + } + + if !matchAnyDiagSummary(diags, tc.expectedDiagSummary) { + t.Fatalf("expected test case %d to produce diagnostic summary matching \"%s\", got %v", i, tc.expectedDiagSummary, diags) + } + }) } } diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/time.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/time.go index fde3a019923b..940a9ec1cf38 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/time.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/time.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package validation import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/uuid.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/uuid.go index 00783fafce85..91122ce714d4 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/uuid.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/uuid.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package validation import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/web.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/web.go index 615e0feb7c13..2e875442f4d7 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/web.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation/web.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package validation import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/doc.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/doc.go index 46093314fe2e..0d29d9f45639 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/doc.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package addrs contains types that represent "addresses", which are // references to specific objects within a Terraform configuration or // state. diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/instance_key.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/instance_key.go index 064aeda28c34..8373297f876b 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/instance_key.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/instance_key.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package addrs import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/module.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/module.go index 98699f46e27c..8dbbb469d487 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/module.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/module.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package addrs // Module is an address for a module call within configuration. This is diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/module_instance.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/module_instance.go index 113d3d675ab6..12cd83051a70 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/module_instance.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/addrs/module_instance.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package addrs import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/coerce_value.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/coerce_value.go index 48278abed255..d12ff8cced9b 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/coerce_value.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/coerce_value.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package configschema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/doc.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/doc.go index caf8d730c1e4..d96be9c7f0f7 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/doc.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package configschema contains types for describing the expected structure // of a configuration block whose shape is not known until runtime. // diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/empty_value.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/empty_value.go index 51b8c5d24c0e..3c9573bc56ad 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/empty_value.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/empty_value.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package configschema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/implied_type.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/implied_type.go index edc9dadccee7..4de413519f65 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/implied_type.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/implied_type.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package configschema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/schema.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/schema.go index c41751b71cac..c445b4ba55e9 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/schema.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/configschema/schema.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package configschema import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/flatmap.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/flatmap.go index b96e17c58533..2bad034de94f 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/flatmap.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/flatmap.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package hcl2shim import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/paths.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/paths.go index e557845a7032..628a8bf68680 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/paths.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/paths.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package hcl2shim import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/values.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/values.go index 91e91547a854..f5f5de3b259d 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/values.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/values.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package hcl2shim import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/values_equiv.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/values_equiv.go index 87638b4e4990..6b2be2239d34 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/values_equiv.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/configs/hcl2shim/values_equiv.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package hcl2shim import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/helper/hashcode/hashcode.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/helper/hashcode/hashcode.go index 6ccc52318348..97bc709b2a77 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/helper/hashcode/hashcode.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/helper/hashcode/hashcode.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package hashcode import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/context.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/context.go index 6036b0d04468..0fe8002aa7a8 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/context.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/context.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package logging import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/environment_variables.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/environment_variables.go index db1a27a8147b..2ffc73eee6cb 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/environment_variables.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/environment_variables.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package logging // Environment variables. diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/helper_resource.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/helper_resource.go index a889601c7c4c..1b1459f24612 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/helper_resource.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/helper_resource.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package logging import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/helper_schema.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/helper_schema.go index b2fe71d15d62..0ecf6bf2e48c 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/helper_schema.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/helper_schema.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package logging import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/keys.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/keys.go index ad510721847d..983fde437a29 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/keys.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/logging/keys.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package logging // Structured logging keys. diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/plans/objchange/normalize_obj.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/plans/objchange/normalize_obj.go index d6aabbe33821..b888237fc295 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/plans/objchange/normalize_obj.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/plans/objchange/normalize_obj.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package objchange import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/plugin/convert/diagnostics.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/plugin/convert/diagnostics.go index e02c1e443944..672f75e6d835 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/plugin/convert/diagnostics.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/plugin/convert/diagnostics.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package convert import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/plugin/convert/schema.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/plugin/convert/schema.go index 07d0b89783ce..e2b4e431ce96 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/plugin/convert/schema.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/plugin/convert/schema.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package convert import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/config_traversals.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/config_traversals.go index 2201d0c0befc..6208117cbff6 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/config_traversals.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/config_traversals.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfdiags import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/contextual.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/contextual.go index b063bc1de23f..a9b5c7e83e8f 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/contextual.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/contextual.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfdiags import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/diagnostic.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/diagnostic.go index 21fb177262ff..547271346aab 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/diagnostic.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/diagnostic.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfdiags type Diagnostic interface { diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/diagnostic_base.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/diagnostic_base.go index 348162087866..505692ce51a3 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/diagnostic_base.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/diagnostic_base.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfdiags // diagnosticBase can be embedded in other diagnostic structs to get diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/diagnostics.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/diagnostics.go index 2e04b72a6293..4fc99c1bb704 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/diagnostics.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/diagnostics.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfdiags import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/doc.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/doc.go index c427879ebc7c..23be0a8bece7 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/doc.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/doc.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // Package tfdiags is a utility package for representing errors and // warnings in a manner that allows us to produce good messages for the // user. diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/error.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/error.go index b63c5d74150e..f7c9c65d382a 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/error.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/error.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfdiags // nativeError is a Diagnostic implementation that wraps a normal Go error diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/simple_warning.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/simple_warning.go index 0919170456cb..0c90c4788910 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/simple_warning.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags/simple_warning.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfdiags type simpleWarning string diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/meta/meta.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/meta/meta.go index 35f20f7ee53a..494f61ce1bd2 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/meta/meta.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/meta/meta.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + // The meta package provides a location to set the release version // and any other relevant metadata for the SDK. // diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/plugin/debug.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/plugin/debug.go index e1875e134cba..3e33dfed6b91 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/plugin/debug.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/plugin/debug.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/plugin/serve.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/plugin/serve.go index cce6212b1591..f089ab5215ba 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/plugin/serve.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/plugin/serve.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package plugin import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/diff.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/diff.go index 8a2940f31e22..7b988d9f3dc9 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/diff.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/diff.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package terraform import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/instancetype.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/instancetype.go index c0d1288f00bb..1871445819a5 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/instancetype.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/instancetype.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package terraform // This code was previously generated with a go:generate directive calling: diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource.go index 703547745e83..0da593711b99 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package terraform import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource_address.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource_address.go index ec2665d3133c..8d92fbb5e453 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource_address.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource_address.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package terraform import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource_mode.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource_mode.go index d2a806c0ba97..2d7b10bcff75 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource_mode.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource_mode.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package terraform // This code was previously generated with a go:generate directive calling: diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource_provider.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource_provider.go index ece8fc660429..c8e7008c0a8d 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource_provider.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/resource_provider.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package terraform // ResourceType is a type of resource that a resource provider can manage. diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/schemas.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/schemas.go index 07e5a84fa1d7..86ad0e7f1cfd 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/schemas.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/schemas.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package terraform import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/state.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/state.go index 1a4d3d6d112b..9357070b4016 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/state.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/state.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package terraform import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/state_filter.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/state_filter.go index d2229f8ce763..caf2c79674ba 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/state_filter.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/state_filter.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package terraform import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/util.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/util.go index 01ac810f103f..6353ad27d952 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/util.go +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/terraform/util.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package terraform import ( diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/config/config.go b/vendor/github.com/hashicorp/terraform-plugin-testing/config/config.go new file mode 100644 index 000000000000..4a663610fd99 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/config/config.go @@ -0,0 +1,38 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package config + +// TestStepConfigFunc is the callback type used with acceptance tests to +// specify a string which either identifies a directory containing +// Terraform configuration files, or a file that contains Terraform +// configuration. +type TestStepConfigFunc func(TestStepConfigRequest) string + +// TestStepConfigRequest defines the request supplied to types +// implementing TestStepConfigFunc. StepNumber is one-based +// and is used in the predefined helper functions: +// +// - [config.TestStepDirectory] +// - [config.TestStepFile]. +// +// TestName is used in the predefined helper functions: +// +// - [config.TestNameDirectory] +// - [config.TestStepDirectory] +// - [config.TestNameFile] +// - [config.TestStepFile] +type TestStepConfigRequest struct { + StepNumber int + TestName string +} + +// Exec executes TestStepConfigFunc if it is not nil, otherwise an +// empty string is returned. +func (f TestStepConfigFunc) Exec(req TestStepConfigRequest) string { + if f != nil { + return f(req) + } + + return "" +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/config/directory.go b/vendor/github.com/hashicorp/terraform-plugin-testing/config/directory.go new file mode 100644 index 000000000000..c3c9ab0c0f4a --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/config/directory.go @@ -0,0 +1,63 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package config + +import ( + "path/filepath" + "strconv" +) + +// StaticDirectory returns the supplied directory. +func StaticDirectory(directory string) func(TestStepConfigRequest) string { + return func(_ TestStepConfigRequest) string { + return directory + } +} + +// TestNameDirectory returns the name of the test prefixed with +// "testdata". +// +// For example, given test code: +// +// func TestExampleCloudThing_basic(t *testing.T) { +// resource.Test(t, resource.TestCase{ +// Steps: []resource.TestStep{ +// { +// ConfigDirectory: config.TestNameDirectory(), +// }, +// }, +// }) +// } +// +// The testing configurations will be expected in the +// testdata/TestExampleCloudThing_basic/ directory. +func TestNameDirectory() func(TestStepConfigRequest) string { + return func(req TestStepConfigRequest) string { + return filepath.Join("testdata", req.TestName) + } +} + +// TestStepDirectory returns the name of the test suffixed with the +// test step number and prefixed with "testdata". +// +// For example, given test code: +// +// func TestExampleCloudThing_basic(t *testing.T) { +// resource.Test(t, resource.TestCase{ +// Steps: []resource.TestStep{ +// { +// ConfigDirectory: config.TestStepDirectory(), +// }, +// }, +// }) +// } +// +// The testing configurations will be expected in the +// testdata/TestExampleCloudThing_basic/1 directory as +// TestStepConfigRequest.StepNumber is one-based. +func TestStepDirectory() func(TestStepConfigRequest) string { + return func(req TestStepConfigRequest) string { + return filepath.Join("testdata", req.TestName, strconv.Itoa(req.StepNumber)) + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/config/doc.go b/vendor/github.com/hashicorp/terraform-plugin-testing/config/doc.go new file mode 100644 index 000000000000..e85d5f81c90a --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/config/doc.go @@ -0,0 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Package config implements functionality for supporting native +// Terraform configuration and variables for testing purposes. +package config diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/config/file.go b/vendor/github.com/hashicorp/terraform-plugin-testing/config/file.go new file mode 100644 index 000000000000..1974c40651d9 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/config/file.go @@ -0,0 +1,63 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package config + +import ( + "path/filepath" + "strconv" +) + +// StaticFile returns the supplied file. +func StaticFile(file string) func(TestStepConfigRequest) string { + return func(_ TestStepConfigRequest) string { + return file + } +} + +// TestNameFile returns the name of the test suffixed with the supplied +// file and prefixed with "testdata". +// +// For example, given test code: +// +// func TestExampleCloudThing_basic(t *testing.T) { +// resource.Test(t, resource.TestCase{ +// Steps: []resource.TestStep{ +// { +// ConfigFile: config.TestNameFile("test.tf"), +// }, +// }, +// }) +// } +// +// The testing configuration will be expected in the +// testdata/TestExampleCloudThing_basic/test.tf file. +func TestNameFile(file string) func(TestStepConfigRequest) string { + return func(req TestStepConfigRequest) string { + return filepath.Join("testdata", req.TestName, file) + } +} + +// TestStepFile returns the name of the test suffixed with the test +// step number and the supplied file, and prefixed with "testdata". +// +// For example, given test code: +// +// func TestExampleCloudThing_basic(t *testing.T) { +// resource.Test(t, resource.TestCase{ +// Steps: []resource.TestStep{ +// { +// ConfigFile: config.TestStepFile("test.tf"), +// }, +// }, +// }) +// } +// +// The testing configuration will be expected in the +// testdata/TestExampleCloudThing_basic/1/test.tf file +// as TestStepConfigRequest.StepNumber is one-based. +func TestStepFile(file string) func(TestStepConfigRequest) string { + return func(req TestStepConfigRequest) string { + return filepath.Join("testdata", req.TestName, strconv.Itoa(req.StepNumber), file) + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/config/variable.go b/vendor/github.com/hashicorp/terraform-plugin-testing/config/variable.go new file mode 100644 index 000000000000..76c2a5110726 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/config/variable.go @@ -0,0 +1,326 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package config + +import ( + "encoding/json" + "errors" + "fmt" + "os" + "path/filepath" + "reflect" + + "golang.org/x/exp/constraints" +) + +const autoTFVarsJson = "terraform-plugin-testing.auto.tfvars.json" + +// Variable interface is an alias to json.Marshaler. +type Variable interface { + json.Marshaler +} + +// Variables is a type holding a key-value map of variable names +// to types implementing the Variable interface. +type Variables map[string]Variable + +// Write creates a file in the destination supplied +// containing JSON encoded Variables. +func (v Variables) Write(dest string) error { + if len(v) == 0 { + return nil + } + + b, err := json.Marshal(v) + + if err != nil { + return fmt.Errorf("cannot marshal variables: %s", err) + } + + outFilename := filepath.Join(dest, autoTFVarsJson) + + err = os.WriteFile(outFilename, b, 0600) + + if err != nil { + return fmt.Errorf("cannot write variables file: %s", err) + } + + return nil +} + +var _ Variable = boolVariable{} + +// boolVariable supports JSON encoding of a bool. +type boolVariable struct { + value bool +} + +// MarshalJSON returns the JSON encoding of boolVariable. +func (v boolVariable) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +// BoolVariable returns boolVariable which implements Variable. +func BoolVariable(value bool) boolVariable { + return boolVariable{ + value: value, + } +} + +var _ Variable = floatVariable{} + +// floatVariable supports JSON encoding of any floating-point type. +type floatVariable struct { + value any +} + +// MarshalJSON returns the JSON encoding of floatVariable. +func (v floatVariable) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +// FloatVariable returns floatVariable which implements Variable. +func FloatVariable[T constraints.Float](value T) floatVariable { + return floatVariable{ + value: value, + } +} + +var _ Variable = integerVariable{} + +// integerVariable supports JSON encoding of any integer type. +type integerVariable struct { + value any +} + +// MarshalJSON returns the JSON encoding of integerVariable. +func (v integerVariable) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +// IntegerVariable returns integerVariable which implements Variable. +func IntegerVariable[T constraints.Integer](value T) integerVariable { + return integerVariable{ + value: value, + } +} + +var _ Variable = listVariable{} + +// listVariable supports JSON encoding of slice of Variable. +type listVariable struct { + value []Variable +} + +// MarshalJSON returns the JSON encoding of listVariable. +// Every Variable within a listVariable must be the same +// underlying type. +func (v listVariable) MarshalJSON() ([]byte, error) { + if !typesEq(v.value) { + return nil, errors.New("lists must contain the same type") + } + + return json.Marshal(v.value) +} + +// ListVariable returns listVariable which implements Variable. +func ListVariable(value ...Variable) listVariable { + return listVariable{ + value: value, + } +} + +var _ Variable = mapVariable{} + +// mapVariable supports JSON encoding of a key-value map of +// string to Variable. +type mapVariable struct { + value map[string]Variable +} + +// MarshalJSON returns the JSON encoding of mapVariable. +// Every Variable in a mapVariable must be the same +// underlying type. +func (v mapVariable) MarshalJSON() ([]byte, error) { + var variables []Variable + + for _, variable := range v.value { + variables = append(variables, variable) + } + + if !typesEq(variables) { + return nil, errors.New("maps must contain the same type") + } + + return json.Marshal(v.value) +} + +// MapVariable returns mapVariable which implements Variable. +func MapVariable(value map[string]Variable) mapVariable { + return mapVariable{ + value: value, + } +} + +var _ Variable = objectVariable{} + +// objectVariable supports JSON encoding of a key-value +// map of string to Variable in which each Variable +// can be a different underlying type. +type objectVariable struct { + value map[string]Variable +} + +// MarshalJSON returns the JSON encoding of objectVariable. +func (v objectVariable) MarshalJSON() ([]byte, error) { + b, err := json.Marshal(v.value) + + if err != nil { + innerErr := err + + // Unwrap is used here to expose the initial error, for example + // "maps must contain the same type" whilst removing any errors + // related to the implementation (i.e., the usage of + // encoding/json in this instance. + for errors.Unwrap(innerErr) != nil { + innerErr = errors.Unwrap(err) + } + + return nil, innerErr + } + + return b, nil +} + +// ObjectVariable returns objectVariable which implements Variable. +func ObjectVariable(value map[string]Variable) objectVariable { + return objectVariable{ + value: value, + } +} + +var _ Variable = setVariable{} + +// setVariable supports JSON encoding of a slice of Variable. +type setVariable struct { + value []Variable +} + +// MarshalJSON returns the JSON encoding of setVariable. +// Every Variable in a setVariable must be the same +// underlying type. +func (v setVariable) MarshalJSON() ([]byte, error) { + for kx, x := range v.value { + for ky := kx + 1; ky < len(v.value); ky++ { + y := v.value[ky] + + if _, ok := x.(setVariable); !ok { + continue + } + + if _, ok := y.(setVariable); !ok { + continue + } + + if reflect.DeepEqual(x, y) { + return nil, errors.New("sets must contain unique elements") + } + } + } + + if !typesEq(v.value) { + return nil, errors.New("sets must contain the same type") + } + + return json.Marshal(v.value) +} + +// SetVariable returns setVariable which implements Variable. +func SetVariable(value ...Variable) setVariable { + return setVariable{ + value: value, + } +} + +var _ Variable = stringVariable{} + +// stringVariable supports JSON encoding of a string. +type stringVariable struct { + value string +} + +// MarshalJSON returns the JSON encoding of stringVariable. +func (v stringVariable) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +// StringVariable returns stringVariable which implements Variable. +func StringVariable(value string) stringVariable { + return stringVariable{ + value: value, + } +} + +var _ Variable = tupleVariable{} + +// tupleVariable supports JSON encoding of a slice of Variable +// in which each element in the slice can be a different +// underlying type. +type tupleVariable struct { + value []Variable +} + +// MarshalJSON returns the JSON encoding of tupleVariable. +func (v tupleVariable) MarshalJSON() ([]byte, error) { + return json.Marshal(v.value) +} + +// TupleVariable returns tupleVariable which implements Variable. +func TupleVariable(value ...Variable) tupleVariable { + return tupleVariable{ + value: value, + } +} + +// typesEq verifies that every element in the supplied slice of Variable +// is the same underlying type. +func typesEq(variables []Variable) bool { + var t reflect.Type + + for _, variable := range variables { + switch x := variable.(type) { + case listVariable: + if !typesEq(x.value) { + return false + } + case mapVariable: + var vars []Variable + + for _, v := range x.value { + vars = append(vars, v) + } + + if !typesEq(vars) { + return false + } + case setVariable: + if !typesEq(x.value) { + return false + } + } + + typeOfVariable := reflect.TypeOf(variable) + + if t == nil { + t = typeOfVariable + continue + } + + if t != typeOfVariable { + return false + } + } + + return true +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/acctest/random.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/acctest/random.go index 7891bf2266a5..abb778aa04b8 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/acctest/random.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/acctest/random.go @@ -84,6 +84,16 @@ func RandSSHKeyPair(comment string) (string, string, error) { // RandTLSCert generates a self-signed TLS certificate with a newly created // private key, and returns both the cert and the private key PEM encoded. +// +// The private key uses RSA algorithm, 1024 bits, and has no passphrase. +// +// The certificate expires in 24 hours, has a random serial number, and is +// set for Encipherment, Digital Signature, and Server Auth key usage. +// Only the organization name of the subject is configurable. +// +// Testing with different or stricter security requirements should +// use the standard library [crypto] and [golang.org/x/crypto] packages +// directly. func RandTLSCert(orgName string) (string, string, error) { template := &x509.Certificate{ SerialNumber: big.NewInt(int64(RandInt())), diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/error.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/error.go index 517963bc89a1..3c990e35fc85 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/error.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/error.go @@ -9,6 +9,12 @@ import ( "time" ) +// NotFoundError represents when a StateRefreshFunc returns a nil result +// during a StateChangeConf waiter method and that StateChangeConf is +// configured for specific targets. +// +// Deprecated: Copy this type to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.NotFoundError. type NotFoundError struct { LastError error LastRequest interface{} @@ -17,6 +23,11 @@ type NotFoundError struct { Retries int } +// Error returns the Message string, if non-empty, or a string indicating +// the resource could not be found. +// +// Deprecated: Copy this method to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.NotFoundError. func (e *NotFoundError) Error() string { if e.Message != "" { return e.Message @@ -29,17 +40,29 @@ func (e *NotFoundError) Error() string { return "couldn't find resource" } +// Unwrap returns the LastError, compatible with errors.Unwrap. +// +// Deprecated: Copy this method to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.NotFoundError. func (e *NotFoundError) Unwrap() error { return e.LastError } // UnexpectedStateError is returned when Refresh returns a state that's neither in Target nor Pending +// +// Deprecated: Copy this type to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.UnexpectedStateError. type UnexpectedStateError struct { LastError error State string ExpectedState []string } +// Error returns a string with the unexpected state value, the desired target, +// and any last error. +// +// Deprecated: Copy this method to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.UnexpectedStateError. func (e *UnexpectedStateError) Error() string { return fmt.Sprintf( "unexpected state '%s', wanted target '%s'. last error: %s", @@ -49,11 +72,18 @@ func (e *UnexpectedStateError) Error() string { ) } +// Unwrap returns the LastError, compatible with errors.Unwrap. +// +// Deprecated: Copy this method to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.UnexpectedStateError. func (e *UnexpectedStateError) Unwrap() error { return e.LastError } // TimeoutError is returned when WaitForState times out +// +// Deprecated: Copy this type to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.TimeoutError. type TimeoutError struct { LastError error LastState string @@ -61,6 +91,10 @@ type TimeoutError struct { ExpectedState []string } +// Error returns a string with any information available. +// +// Deprecated: Copy this method to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.TimeoutError. func (e *TimeoutError) Error() string { expectedState := "resource to be gone" if len(e.ExpectedState) > 0 { @@ -89,6 +123,10 @@ func (e *TimeoutError) Error() string { expectedState, suffix) } +// Unwrap returns the LastError, compatible with errors.Unwrap. +// +// Deprecated: Copy this method to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.TimeoutError. func (e *TimeoutError) Unwrap() error { return e.LastError } diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/id.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/id.go index c02b1b5ef017..81c1f2e8e8dc 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/id.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/id.go @@ -10,6 +10,11 @@ import ( "time" ) +// UniqueIdPrefix is a string prefix automatically added to return values of +// the UniqueId function. +// +// Deprecated: Copy this value to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/id.UniquePrefix. const UniqueIdPrefix = `terraform-` // idCounter is a monotonic counter for generating ordered unique ids. @@ -17,6 +22,9 @@ var idMutex sync.Mutex var idCounter uint32 // Helper for a resource to generate a unique identifier w/ default prefix +// +// Deprecated: Copy this function to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/id.Unique. func UniqueId() string { return PrefixedUniqueId(UniqueIdPrefix) } @@ -24,6 +32,9 @@ func UniqueId() string { // UniqueIDSuffixLength is the string length of the suffix generated by // PrefixedUniqueId. This can be used by length validation functions to // ensure prefixes are the correct length for the target field. +// +// Deprecated: Copy this value to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/id.UniqueSuffixLength. const UniqueIDSuffixLength = 26 // Helper for a resource to generate a unique identifier w/ given prefix @@ -35,6 +46,9 @@ const UniqueIDSuffixLength = 26 // across multiple terraform executions, as long as the clock is not turned back // between calls, and as long as any given terraform execution generates fewer // than 4 billion IDs. +// +// Deprecated: Copy this function to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/id.PrefixedUnique. func PrefixedUniqueId(prefix string) string { // Be precise to 4 digits of fractional seconds, but remove the dot before the // fractional seconds. diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/plan_checks.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/plan_checks.go new file mode 100644 index 000000000000..712e3dbdfe7a --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/plan_checks.go @@ -0,0 +1,32 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package resource + +import ( + "context" + + tfjson "github.com/hashicorp/terraform-json" + "github.com/hashicorp/terraform-plugin-testing/internal/errorshim" + "github.com/hashicorp/terraform-plugin-testing/plancheck" + "github.com/mitchellh/go-testing-interface" +) + +func runPlanChecks(ctx context.Context, t testing.T, plan *tfjson.Plan, planChecks []plancheck.PlanCheck) error { + t.Helper() + + var result error + + for _, planCheck := range planChecks { + resp := plancheck.CheckPlanResponse{} + planCheck.CheckPlan(ctx, plancheck.CheckPlanRequest{Plan: plan}, &resp) + + if resp.Error != nil { + // TODO: Once Go 1.20 is the minimum supported version for this module, replace with `errors.Join` function + // - https://github.com/hashicorp/terraform-plugin-testing/issues/99 + result = errorshim.Join(result, resp.Error) + } + } + + return result +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/state.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/state.go index 93f6be494abf..9ed1132703c7 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/state.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/state.go @@ -21,9 +21,15 @@ var refreshGracePeriod = 30 * time.Second // // `state` is the latest state of that object. And `err` is any error that // may have happened while refreshing the state. +// +// Deprecated: Copy this type to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.StateRefreshFunc. type StateRefreshFunc func() (result interface{}, state string, err error) // StateChangeConf is the configuration struct used for `WaitForState`. +// +// Deprecated: Copy this type to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.StateChangeConf. type StateChangeConf struct { Delay time.Duration // Wait this time before starting checks Pending []string // States that are "allowed" and will continue trying @@ -53,7 +59,10 @@ type StateChangeConf struct { // Otherwise, the result is the result of the first call to the Refresh function to // reach the target state. // -// Cancellation from the passed in context will cancel the refresh loop +// # Cancellation from the passed in context will cancel the refresh loop +// +// Deprecated: Copy this method to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.StateChangeConf. func (conf *StateChangeConf) WaitForStateContext(ctx context.Context) (interface{}, error) { log.Printf("[DEBUG] Waiting for state to become: %s", conf.Target) diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/state_shim.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/state_shim.go index 0da782401711..c9659dc95c3d 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/state_shim.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/state_shim.go @@ -21,7 +21,7 @@ type shimmedState struct { } func shimStateFromJson(jsonState *tfjson.State) (*terraform.State, error) { - state := terraform.NewState() + state := terraform.NewState() //nolint:staticcheck // legacy usage state.TFVersion = jsonState.TerraformVersion if jsonState.Values == nil { @@ -66,12 +66,14 @@ func shimOutputState(so *tfjson.StateOutput) (*terraform.OutputState, error) { case string: elements := make([]interface{}, len(v)) for i, el := range v { + //nolint:forcetypeassert // Guaranteed by type switch elements[i] = el.(string) } os.Value = elements case bool: elements := make([]interface{}, len(v)) for i, el := range v { + //nolint:forcetypeassert // Guaranteed by type switch elements[i] = el.(bool) } os.Value = elements @@ -79,6 +81,7 @@ func shimOutputState(so *tfjson.StateOutput) (*terraform.OutputState, error) { case json.Number: elements := make([]interface{}, len(v)) for i, el := range v { + //nolint:forcetypeassert // Guaranteed by type switch elements[i] = el.(json.Number) } os.Value = elements @@ -121,7 +124,7 @@ func (ss *shimmedState) shimStateModule(sm *tfjson.StateModule) error { } } - mod := ss.state.AddModule(path) + mod := ss.state.AddModule(path) //nolint:staticcheck // legacy usage for _, res := range sm.Resources { resourceState, err := shimResourceState(res) if err != nil { @@ -190,15 +193,36 @@ func shimResourceState(res *tfjson.StateResource) (*terraform.ResourceState, err } attributes := sf.Flatmap() - if _, ok := attributes["id"]; !ok { - return nil, fmt.Errorf("no %q found in attributes", "id") + // The instance state identifier was a Terraform versions 0.11 and earlier + // concept which helped core and the then SDK determine if the resource + // should be removed and as an identifier value in the human readable + // output. This concept unfortunately carried over to the testing logic when + // the testing logic was mostly changed to use the public, machine-readable + // JSON interface with Terraform, rather than reusing prior internal logic + // from Terraform. Using the "id" attribute value for this identifier was + // the default implementation and therefore those older versions of + // Terraform required the attribute. This is no longer necessary after + // Terraform versions 0.12 and later. + // + // If the "id" attribute is not found, set the instance state identifier to + // a synthetic value that can hopefully lead someone encountering the value + // to these comments. The prior logic used to raise an error if the + // attribute was not present, but this value should now only be present in + // legacy logic of this Go module, such as unintentionally exported logic in + // the terraform package, and not encountered during normal testing usage. + // + // Reference: https://github.com/hashicorp/terraform-plugin-testing/issues/84 + instanceStateID, ok := attributes["id"] + + if !ok { + instanceStateID = "id-attribute-not-set" } return &terraform.ResourceState{ Provider: res.ProviderName, Type: res.Type, Primary: &terraform.InstanceState{ - ID: attributes["id"], + ID: instanceStateID, Attributes: attributes, Meta: map[string]interface{}{ "schema_version": int(res.SchemaVersion), diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testcase_validate.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testcase_validate.go index 7f2425394bb3..6640f8c84cc8 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testcase_validate.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testcase_validate.go @@ -7,9 +7,18 @@ import ( "context" "fmt" + "github.com/mitchellh/go-testing-interface" + + "github.com/hashicorp/terraform-plugin-testing/config" "github.com/hashicorp/terraform-plugin-testing/internal/logging" + "github.com/hashicorp/terraform-plugin-testing/internal/teststep" ) +// hasProviders returns true if the TestCase has ExternalProviders set. +func (c TestCase) hasExternalProviders(_ context.Context) bool { + return len(c.ExternalProviders) > 0 +} + // hasProviders returns true if the TestCase has set any of the // ExternalProviders, ProtoV5ProviderFactories, ProtoV6ProviderFactories, // ProviderFactories, or Providers fields. @@ -42,7 +51,7 @@ func (c TestCase) hasProviders(_ context.Context) bool { // - No overlapping ExternalProviders and Providers entries // - No overlapping ExternalProviders and ProviderFactories entries // - TestStep validations performed by the (TestStep).validate() method. -func (c TestCase) validate(ctx context.Context) error { +func (c TestCase) validate(ctx context.Context, t testing.T) error { logging.HelperResourceTrace(ctx, "Validating TestCase") if len(c.Steps) == 0 { @@ -65,13 +74,30 @@ func (c TestCase) validate(ctx context.Context) error { } } + testCaseHasExternalProviders := c.hasExternalProviders(ctx) testCaseHasProviders := c.hasProviders(ctx) for stepIndex, step := range c.Steps { stepNumber := stepIndex + 1 // Use 1-based index for humans + + configRequest := teststep.PrepareConfigurationRequest{ + Directory: step.ConfigDirectory, + File: step.ConfigFile, + Raw: step.Config, + TestStepConfigRequest: config.TestStepConfigRequest{ + StepNumber: stepNumber, + TestName: t.Name(), + }, + }.Exec() + + stepConfiguration := teststep.Configuration(configRequest) + stepValidateReq := testStepValidateRequest{ - StepNumber: stepNumber, - TestCaseHasProviders: testCaseHasProviders, + StepConfiguration: stepConfiguration, + StepNumber: stepNumber, + TestCaseHasExternalProviders: testCaseHasExternalProviders, + TestCaseHasProviders: testCaseHasProviders, + TestName: t.Name(), } err := step.validate(ctx, stepValidateReq) diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing.go index 987654c6dfb4..2c40fc396574 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing.go @@ -23,7 +23,10 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-plugin-testing/config" + "github.com/hashicorp/terraform-plugin-testing/plancheck" "github.com/hashicorp/terraform-plugin-testing/terraform" + "github.com/hashicorp/terraform-plugin-testing/tfversion" "github.com/hashicorp/terraform-plugin-testing/internal/addrs" "github.com/hashicorp/terraform-plugin-testing/internal/logging" @@ -31,7 +34,7 @@ import ( ) // flagSweep is a flag available when running tests on the command line. It -// contains a comma seperated list of regions to for the sweeper functions to +// contains a comma separated list of regions to for the sweeper functions to // run in. This flag bypasses the normal Test path and instead runs functions designed to // clean up any leaked resources a testing environment could have created. It is // a best effort attempt, and relies on Provider authors to implement "Sweeper" @@ -52,7 +55,7 @@ import ( var flagSweep = flag.String("sweep", "", "List of Regions to run available Sweepers") var flagSweepAllowFailures = flag.Bool("sweep-allow-failures", false, "Enable to allow Sweeper Tests to continue after failures") -var flagSweepRun = flag.String("sweep-run", "", "Comma seperated list of Sweeper Tests to run") +var flagSweepRun = flag.String("sweep-run", "", "Comma separated list of Sweeper Tests to run") var sweeperFuncs map[string]*Sweeper // SweeperFunc is a signature for a function that acts as a sweeper. It @@ -160,7 +163,7 @@ func runSweepers(regions []string, sweepers map[string]*Sweeper, allowFailures b log.Printf("Sweeper Tests for region (%s) ran successfully:\n", region) for sweeper, sweeperErr := range regionSweeperRunList { if sweeperErr == nil { - fmt.Printf("\t- %s\n", sweeper) + log.Printf("\t- %s\n", sweeper) } else { regionSweeperErrorFound = true } @@ -171,7 +174,7 @@ func runSweepers(regions []string, sweepers map[string]*Sweeper, allowFailures b log.Printf("Sweeper Tests for region (%s) ran unsuccessfully:\n", region) for sweeper, sweeperErr := range regionSweeperRunList { if sweeperErr != nil { - fmt.Printf("\t- %s: %s\n", sweeper, sweeperErr) + log.Printf("\t- %s: %s\n", sweeper, sweeperErr) } } } @@ -186,7 +189,7 @@ func runSweepers(regions []string, sweepers map[string]*Sweeper, allowFailures b return sweeperRunList, nil } -// filterSweepers takes a comma seperated string listing the names of sweepers +// filterSweepers takes a comma separated string listing the names of sweepers // to be ran, and returns a filtered set from the list of all of sweepers to // run based on the names given. func filterSweepers(f string, source map[string]*Sweeper) map[string]*Sweeper { @@ -233,7 +236,7 @@ func filterSweeperWithDependencies(name string, source map[string]*Sweeper) map[ return result } -// runSweeperWithRegion recieves a sweeper and a region, and recursively calls +// runSweeperWithRegion receives a sweeper and a region, and recursively calls // itself with that region for every dependency found for that sweeper. If there // are no dependencies, invoke the contained sweeper fun with the region, and // add the success/fail status to the sweeperRunList. @@ -322,6 +325,12 @@ type TestCase struct { // acceptance tests, such as verifying that keys are setup. PreCheck func() + // TerraformVersionChecks is a list of checks to run against + // the Terraform CLI version which is running the testing. + // Each check is executed in order, respecting the first skip + // or fail response, unless the Any() meta check is also used. + TerraformVersionChecks []tfversion.TerraformVersionCheck + // ProviderFactories can be specified for the providers that are valid. // // This can also be specified at the TestStep level to enable per-step @@ -418,6 +427,15 @@ type TestCase struct { // IDRefreshIgnore is a list of configuration keys that will be ignored // during ID-only refresh testing. IDRefreshIgnore []string + + // WorkingDir sets the base directory where testing files used by the testing + // module are generated. If WorkingDir is unset, a randomized, temporary + // directory is used. + // + // Use the TF_ACC_PERSIST_WORKING_DIR environment variable, conventionally + // set to "1", to persist any working directory files. Otherwise, this directory is + // automatically cleaned up at the end of the TestCase. + WorkingDir string } // ExternalProvider holds information about third-party providers that should @@ -473,12 +491,60 @@ type TestStep struct { // Config a string of the configuration to give to Terraform. If this // is set, then the TestCase will execute this step with the same logic - // as a `terraform apply`. + // as a `terraform apply`. If both Config and ConfigDirectory are set + // an error will be returned. // // JSON Configuration Syntax can be used and is assumed whenever Config // contains valid JSON. + // + // Only one of Config, ConfigDirectory or ConfigFile can be set + // otherwise an error will be returned. Config string + // ConfigDirectory is a function which returns a function that + // accepts config.TestStepProviderConfig and returns a string + // representing a directory that contains Terraform + // configuration files. + // + // There are helper functions in the [config] package that can be used, + // such as: + // + // - [config.StaticDirectory] + // - [config.TestNameDirectory] + // - [config.TestStepDirectory] + // + // When running Terraform operations for the test, Terraform will + // be executed with copies of the files of this directory as its + // working directory. Only one of Config, ConfigDirectory or + // ConfigFile can be set otherwise an error will be returned. + ConfigDirectory config.TestStepConfigFunc + + // ConfigFile is a function which returns a function that + // accepts config.TestStepProviderConfig and returns a string + // representing a file that contains Terraform configuration. + // + // There are helper functions in the [config] package that can be used, + // such as: + // + // - [config.StaticFile] + // - [config.TestNameFile] + // - [config.TestStepFile] + // + // When running Terraform operations for the test, Terraform will + // be executed with a copy of the file as its working directory. + // Only one of Config, ConfigDirectory or ConfigFile can be set + // otherwise an error will be returned. + ConfigFile config.TestStepConfigFunc + + // ConfigVariables is a map defining variables for use in conjunction + // with Terraform configuration. If this map is populated then it + // will be used to assemble an *.auto.tfvars.json which will be + // written into the working directory. Any variables that are + // defined within the Terraform configuration that have a matching + // variable definition in *.auto.tfvars.json will have their value + // substituted when the acceptance test is executed. + ConfigVariables config.Variables + // Check is called after the Config is applied. Use this step to // make your own API calls to check the status of things, and to // inspect the format of the ResourceState itself. @@ -501,6 +567,20 @@ type TestStep struct { // test to pass. ExpectError *regexp.Regexp + // ConfigPlanChecks allows assertions to be made against the plan file at different points of a Config (apply) test using a plan check. + // Custom plan checks can be created by implementing the [PlanCheck] interface, or by using a PlanCheck implementation from the provided [plancheck] package + // + // [PlanCheck]: https://pkg.go.dev/github.com/hashicorp/terraform-plugin-testing/plancheck#PlanCheck + // [plancheck]: https://pkg.go.dev/github.com/hashicorp/terraform-plugin-testing/plancheck + ConfigPlanChecks ConfigPlanChecks + + // RefreshPlanChecks allows assertions to be made against the plan file at different points of a Refresh test using a plan check. + // Custom plan checks can be created by implementing the [PlanCheck] interface, or by using a PlanCheck implementation from the provided [plancheck] package + // + // [PlanCheck]: https://pkg.go.dev/github.com/hashicorp/terraform-plugin-testing/plancheck#PlanCheck + // [plancheck]: https://pkg.go.dev/github.com/hashicorp/terraform-plugin-testing/plancheck + RefreshPlanChecks RefreshPlanChecks + // PlanOnly can be set to only run `plan` with this configuration, and not // actually apply it. This is useful for ensuring config changes result in // no-op plans @@ -573,10 +653,24 @@ type TestStep struct { // IDs returned by the Import. Note that this checks for strict equality // and does not respect DiffSuppressFunc or CustomizeDiff. // + // By default, the prior resource state and import resource state are + // matched by the "id" attribute. If the "id" attribute is not implemented + // or another attribute more uniquely identifies the resource, set the + // ImportStateVerifyIdentifierAttribute field to adjust the attribute for + // matching. + // + // If certain attributes cannot be correctly imported, set the + // ImportStateVerifyIgnore field. + ImportStateVerify bool + + // ImportStateVerifyIdentifierAttribute is the resource attribute for + // matching the prior resource state and import resource state during import + // verification. By default, the "id" attribute is used. + ImportStateVerifyIdentifierAttribute string + // ImportStateVerifyIgnore is a list of prefixes of fields that should // not be verified to be equal. These can be set to ephemeral fields or // fields that can't be refreshed and don't matter. - ImportStateVerify bool ImportStateVerifyIgnore []string // ImportStatePersist, if true, will update the persisted state with the @@ -670,6 +764,28 @@ type TestStep struct { ExternalProviders map[string]ExternalProvider } +// ConfigPlanChecks defines the different points in a Config TestStep when plan checks can be run. +type ConfigPlanChecks struct { + // PreApply runs all plan checks in the slice. This occurs before the apply of a Config test is run. This slice cannot be populated + // with TestStep.PlanOnly, as there is no PreApply plan run with that flag set. All errors by plan checks in this slice are aggregated, reported, and will result in a test failure. + PreApply []plancheck.PlanCheck + + // PostApplyPreRefresh runs all plan checks in the slice. This occurs after the apply and before the refresh of a Config test is run. + // All errors by plan checks in this slice are aggregated, reported, and will result in a test failure. + PostApplyPreRefresh []plancheck.PlanCheck + + // PostApplyPostRefresh runs all plan checks in the slice. This occurs after the apply and refresh of a Config test are run. + // All errors by plan checks in this slice are aggregated, reported, and will result in a test failure. + PostApplyPostRefresh []plancheck.PlanCheck +} + +// RefreshPlanChecks defines the different points in a Refresh TestStep when plan checks can be run. +type RefreshPlanChecks struct { + // PostRefresh runs all plan checks in the slice. This occurs after the refresh of the Refresh test is run. + // All errors by plan checks in this slice are aggregated, reported, and will result in a test failure. + PostRefresh []plancheck.PlanCheck +} + // ParallelTest performs an acceptance test on a resource, allowing concurrency // with other ParallelTest. The number of concurrent tests is controlled by the // "go test" command -parallel flag. @@ -721,7 +837,7 @@ func Test(t testing.T, c TestCase) { ctx := context.Background() ctx = logging.InitTestContext(ctx, t) - err := c.validate(ctx) + err := c.validate(ctx, t) if err != nil { logging.HelperResourceError(ctx, @@ -778,6 +894,17 @@ func Test(t testing.T, c TestCase) { } }(helper) + // Run the TerraformVersionChecks if we have it. + // This is done after creating the helper because a working directory is required + // to retrieve the Terraform version. + if c.TerraformVersionChecks != nil { + logging.HelperResourceDebug(ctx, "Calling TestCase Terraform version checks") + + runTFVersionChecks(ctx, t, helper.TerraformVersion(), c.TerraformVersionChecks) + + logging.HelperResourceDebug(ctx, "Called TestCase Terraform version checks") + } + runNewTest(ctx, t, c, helper) logging.HelperResourceDebug(ctx, "Finished TestCase") @@ -905,6 +1032,14 @@ func TestCheckResourceAttrSet(name, key string) TestCheckFunc { // TestCheckModuleResourceAttrSet - as per TestCheckResourceAttrSet but with // support for non-root modules +// +// Deprecated: This functionality is deprecated without replacement. The +// terraform-plugin-testing Go module is intended for provider testing, which +// should always be possible within the root module of a configuration. This +// functionality is a carryover of when this code was used within Terraform +// core to test both providers and modules. Modern testing implementations to +// verify interactions between modules should be tested in Terraform core or +// using tooling outside this Go module. func TestCheckModuleResourceAttrSet(mp []string, name string, key string) TestCheckFunc { mpt := addrs.Module(mp).UnkeyedInstanceShim() return checkIfIndexesIntoTypeSet(key, func(s *terraform.State) error { @@ -996,6 +1131,14 @@ func TestCheckResourceAttr(name, key, value string) TestCheckFunc { // TestCheckModuleResourceAttr - as per TestCheckResourceAttr but with // support for non-root modules +// +// Deprecated: This functionality is deprecated without replacement. The +// terraform-plugin-testing Go module is intended for provider testing, which +// should always be possible within the root module of a configuration. This +// functionality is a carryover of when this code was used within Terraform +// core to test both providers and modules. Modern testing implementations to +// verify interactions between modules should be tested in Terraform core or +// using tooling outside this Go module. func TestCheckModuleResourceAttr(mp []string, name string, key string, value string) TestCheckFunc { mpt := addrs.Module(mp).UnkeyedInstanceShim() return checkIfIndexesIntoTypeSet(key, func(s *terraform.State) error { @@ -1160,6 +1303,14 @@ func TestCheckNoResourceAttr(name, key string) TestCheckFunc { // TestCheckModuleNoResourceAttr - as per TestCheckNoResourceAttr but with // support for non-root modules +// +// Deprecated: This functionality is deprecated without replacement. The +// terraform-plugin-testing Go module is intended for provider testing, which +// should always be possible within the root module of a configuration. This +// functionality is a carryover of when this code was used within Terraform +// core to test both providers and modules. Modern testing implementations to +// verify interactions between modules should be tested in Terraform core or +// using tooling outside this Go module. func TestCheckModuleNoResourceAttr(mp []string, name string, key string) TestCheckFunc { mpt := addrs.Module(mp).UnkeyedInstanceShim() return checkIfIndexesIntoTypeSet(key, func(s *terraform.State) error { @@ -1256,6 +1407,14 @@ func TestMatchResourceAttr(name, key string, r *regexp.Regexp) TestCheckFunc { // TestModuleMatchResourceAttr - as per TestMatchResourceAttr but with // support for non-root modules +// +// Deprecated: This functionality is deprecated without replacement. The +// terraform-plugin-testing Go module is intended for provider testing, which +// should always be possible within the root module of a configuration. This +// functionality is a carryover of when this code was used within Terraform +// core to test both providers and modules. Modern testing implementations to +// verify interactions between modules should be tested in Terraform core or +// using tooling outside this Go module. func TestModuleMatchResourceAttr(mp []string, name string, key string, r *regexp.Regexp) TestCheckFunc { mpt := addrs.Module(mp).UnkeyedInstanceShim() return checkIfIndexesIntoTypeSet(key, func(s *terraform.State) error { @@ -1295,6 +1454,14 @@ func TestCheckResourceAttrPtr(name string, key string, value *string) TestCheckF // TestCheckModuleResourceAttrPtr - as per TestCheckResourceAttrPtr but with // support for non-root modules +// +// Deprecated: This functionality is deprecated without replacement. The +// terraform-plugin-testing Go module is intended for provider testing, which +// should always be possible within the root module of a configuration. This +// functionality is a carryover of when this code was used within Terraform +// core to test both providers and modules. Modern testing implementations to +// verify interactions between modules should be tested in Terraform core or +// using tooling outside this Go module. func TestCheckModuleResourceAttrPtr(mp []string, name string, key string, value *string) TestCheckFunc { return func(s *terraform.State) error { return TestCheckModuleResourceAttr(mp, name, key, *value)(s) @@ -1352,6 +1519,14 @@ func TestCheckResourceAttrPair(nameFirst, keyFirst, nameSecond, keySecond string // TestCheckModuleResourceAttrPair - as per TestCheckResourceAttrPair but with // support for non-root modules +// +// Deprecated: This functionality is deprecated without replacement. The +// terraform-plugin-testing Go module is intended for provider testing, which +// should always be possible within the root module of a configuration. This +// functionality is a carryover of when this code was used within Terraform +// core to test both providers and modules. Modern testing implementations to +// verify interactions between modules should be tested in Terraform core or +// using tooling outside this Go module. func TestCheckModuleResourceAttrPair(mpFirst []string, nameFirst string, keyFirst string, mpSecond []string, nameSecond string, keySecond string) TestCheckFunc { mptFirst := addrs.Module(mpFirst).UnkeyedInstanceShim() mptSecond := addrs.Module(mpSecond).UnkeyedInstanceShim() @@ -1448,7 +1623,12 @@ func TestMatchOutput(name string, r *regexp.Regexp) TestCheckFunc { return fmt.Errorf("Not found: %s", name) } - if !r.MatchString(rs.Value.(string)) { + valStr, ok := rs.Value.(string) + if !ok { + return fmt.Errorf("unexpected type %T for resource value", rs.Value) + } + + if !r.MatchString(valStr) { return fmt.Errorf( "Output '%s': %#v didn't match %q", name, @@ -1479,7 +1659,7 @@ func modulePrimaryInstanceState(ms *terraform.ModuleState, name string) (*terraf // modulePathPrimaryInstanceState returns the primary instance state for the // given resource name in a given module path. func modulePathPrimaryInstanceState(s *terraform.State, mp addrs.ModuleInstance, name string) (*terraform.InstanceState, error) { - ms := s.ModuleByPath(mp) + ms := s.ModuleByPath(mp) //nolint:staticcheck // legacy usage if ms == nil { return nil, fmt.Errorf("No module found at: %s", mp) } @@ -1490,7 +1670,7 @@ func modulePathPrimaryInstanceState(s *terraform.State, mp addrs.ModuleInstance, // primaryInstanceState returns the primary instance state for the given // resource name in the root module. func primaryInstanceState(s *terraform.State, name string) (*terraform.InstanceState, error) { - ms := s.RootModule() + ms := s.RootModule() //nolint:staticcheck // legacy usage return modulePrimaryInstanceState(ms, name) } @@ -1509,7 +1689,7 @@ func indexesIntoTypeSet(key string) bool { func checkIfIndexesIntoTypeSet(key string, f TestCheckFunc) TestCheckFunc { return func(s *terraform.State) error { err := f(s) - if err != nil && s.IsBinaryDrivenTest && indexesIntoTypeSet(key) { + if err != nil && indexesIntoTypeSet(key) { return fmt.Errorf("Error in test check: %s\nTest check address %q likely indexes into TypeSet\nThis is currently not possible in the SDK", err, key) } return err @@ -1519,7 +1699,7 @@ func checkIfIndexesIntoTypeSet(key string, f TestCheckFunc) TestCheckFunc { func checkIfIndexesIntoTypeSetPair(keyFirst, keySecond string, f TestCheckFunc) TestCheckFunc { return func(s *terraform.State) error { err := f(s) - if err != nil && s.IsBinaryDrivenTest && (indexesIntoTypeSet(keyFirst) || indexesIntoTypeSet(keySecond)) { + if err != nil && (indexesIntoTypeSet(keyFirst) || indexesIntoTypeSet(keySecond)) { return fmt.Errorf("Error in test check: %s\nTest check address %q or %q likely indexes into TypeSet\nThis is currently not possible in the SDK", err, keyFirst, keySecond) } return err diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new.go index 86f653f8f897..96ad3eec0282 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new.go @@ -6,17 +6,21 @@ package resource import ( "context" "fmt" + "os" + "path/filepath" "reflect" + "strconv" "strings" "github.com/google/go-cmp/cmp" tfjson "github.com/hashicorp/terraform-json" "github.com/mitchellh/go-testing-interface" - "github.com/hashicorp/terraform-plugin-testing/terraform" - + "github.com/hashicorp/terraform-plugin-testing/config" "github.com/hashicorp/terraform-plugin-testing/internal/logging" "github.com/hashicorp/terraform-plugin-testing/internal/plugintest" + "github.com/hashicorp/terraform-plugin-testing/internal/teststep" + "github.com/hashicorp/terraform-plugin-testing/terraform" ) func runPostTestDestroy(ctx context.Context, t testing.T, c TestCase, wd *plugintest.WorkingDir, providers *providerFactories, statePreDestroy *terraform.State) error { @@ -46,7 +50,7 @@ func runPostTestDestroy(ctx context.Context, t testing.T, c TestCase, wd *plugin func runNewTest(ctx context.Context, t testing.T, c TestCase, helper *plugintest.Helper) { t.Helper() - wd := helper.RequireNewWorkingDir(ctx, t) + wd := helper.RequireNewWorkingDir(ctx, t, c.WorkingDir) ctx = logging.TestTerraformPathContext(ctx, wd.GetHelper().TerraformExecPath()) ctx = logging.TestWorkingDirectoryContext(ctx, wd.GetHelper().WorkingDirectory()) @@ -90,8 +94,16 @@ func runNewTest(ctx context.Context, t testing.T, c TestCase, helper *plugintest wd.Close() }() + // Return value from c.ProviderConfig() is assigned to Raw as this was previously being + // passed to wd.SetConfig() when the second argument accept a configuration string. if c.hasProviders(ctx) { - err := wd.SetConfig(ctx, c.providerConfig(ctx, false)) + config := teststep.Configuration( + teststep.ConfigurationRequest{ + Raw: teststep.Pointer(c.providerConfig(ctx, false)), + }, + ) + + err := wd.SetConfig(ctx, config, nil) if err != nil { logging.HelperResourceError(ctx, @@ -118,10 +130,28 @@ func runNewTest(ctx context.Context, t testing.T, c TestCase, helper *plugintest // use this to track last step successfully applied // acts as default for import tests - var appliedCfg string + var appliedCfg teststep.Config + var stepNumber int for stepIndex, step := range c.Steps { - stepNumber := stepIndex + 1 // 1-based indexing for humans + if stepNumber > 0 { + copyWorkingDir(ctx, t, stepNumber, wd) + } + + stepNumber = stepIndex + 1 // 1-based indexing for humans + + configRequest := teststep.PrepareConfigurationRequest{ + Directory: step.ConfigDirectory, + File: step.ConfigFile, + Raw: step.Config, + TestStepConfigRequest: config.TestStepConfigRequest{ + StepNumber: stepNumber, + TestName: t.Name(), + }, + }.Exec() + + cfg := teststep.Configuration(configRequest) + ctx = logging.TestStepNumberContext(ctx, stepNumber) logging.HelperResourceDebug(ctx, "Starting TestStep") @@ -153,7 +183,7 @@ func runNewTest(ctx context.Context, t testing.T, c TestCase, helper *plugintest } } - if step.Config != "" && !step.Destroy && len(step.Taint) > 0 { + if cfg != nil && !step.Destroy && len(step.Taint) > 0 { err := testStepTaint(ctx, step, wd) if err != nil { @@ -165,16 +195,55 @@ func runNewTest(ctx context.Context, t testing.T, c TestCase, helper *plugintest } } - if step.hasProviders(ctx) { + hasProviders, err := step.hasProviders(ctx, stepIndex, t.Name()) + + if err != nil { + logging.HelperResourceError(ctx, + "TestStep error checking for providers", + map[string]interface{}{logging.KeyError: err}, + ) + t.Fatalf("TestStep %d/%d error checking for providers: %s", stepNumber, len(c.Steps), err) + } + + if hasProviders { providers = &providerFactories{ legacy: sdkProviderFactories(c.ProviderFactories).merge(step.ProviderFactories), protov5: protov5ProviderFactories(c.ProtoV5ProviderFactories).merge(step.ProtoV5ProviderFactories), protov6: protov6ProviderFactories(c.ProtoV6ProviderFactories).merge(step.ProtoV6ProviderFactories), } - providerCfg := step.providerConfig(ctx, step.configHasProviderBlock(ctx)) + var hasProviderBlock bool + + if cfg != nil { + hasProviderBlock, err = cfg.HasProviderBlock(ctx) + + if err != nil { + logging.HelperResourceError(ctx, + "TestStep error determining whether configuration contains provider block", + map[string]interface{}{logging.KeyError: err}, + ) + t.Fatalf("TestStep %d/%d error determining whether configuration contains provider block: %s", stepNumber, len(c.Steps), err) + } + } + + var testStepConfig teststep.Config + + // Return value from step.providerConfig() is assigned to Raw as this was previously being + // passed to wd.SetConfig() directly when the second argument to wd.SetConfig() accepted a + // configuration string. + confRequest := teststep.PrepareConfigurationRequest{ + Directory: step.ConfigDirectory, + File: step.ConfigFile, + Raw: step.providerConfig(ctx, hasProviderBlock), + TestStepConfigRequest: config.TestStepConfigRequest{ + StepNumber: stepIndex + 1, + TestName: t.Name(), + }, + }.Exec() + + testStepConfig = teststep.Configuration(confRequest) - err := wd.SetConfig(ctx, providerCfg) + err = wd.SetConfig(ctx, testStepConfig, step.ConfigVariables) if err != nil { logging.HelperResourceError(ctx, @@ -207,7 +276,7 @@ func runNewTest(ctx context.Context, t testing.T, c TestCase, helper *plugintest if step.ImportState { logging.HelperResourceTrace(ctx, "TestStep is ImportState mode") - err := testStepNewImportState(ctx, t, helper, wd, step, appliedCfg, providers) + err := testStepNewImportState(ctx, t, helper, wd, step, appliedCfg, providers, stepIndex) if step.ExpectError != nil { logging.HelperResourceDebug(ctx, "Checking TestStep ExpectError") if err == nil { @@ -282,10 +351,10 @@ func runNewTest(ctx context.Context, t testing.T, c TestCase, helper *plugintest continue } - if step.Config != "" { + if cfg != nil { logging.HelperResourceTrace(ctx, "TestStep is Config mode") - err := testStepNewConfig(ctx, t, c, wd, step, providers) + err := testStepNewConfig(ctx, t, c, wd, step, providers, stepIndex) if step.ExpectError != nil { logging.HelperResourceDebug(ctx, "Checking TestStep ExpectError") @@ -319,7 +388,44 @@ func runNewTest(ctx context.Context, t testing.T, c TestCase, helper *plugintest } } - appliedCfg = step.mergedConfig(ctx, c) + var hasTerraformBlock bool + var hasProviderBlock bool + + if cfg != nil { + hasTerraformBlock, err = cfg.HasTerraformBlock(ctx) + + if err != nil { + logging.HelperResourceError(ctx, + "Error determining whether configuration contains terraform block", + map[string]interface{}{logging.KeyError: err}, + ) + t.Fatalf("Error determining whether configuration contains terraform block: %s", err) + } + + hasProviderBlock, err = cfg.HasProviderBlock(ctx) + + if err != nil { + logging.HelperResourceError(ctx, + "Error determining whether configuration contains provider block", + map[string]interface{}{logging.KeyError: err}, + ) + t.Fatalf("Error determining whether configuration contains provider block: %s", err) + } + } + + mergedConfig := step.mergedConfig(ctx, c, hasTerraformBlock, hasProviderBlock) + + confRequest := teststep.PrepareConfigurationRequest{ + Directory: step.ConfigDirectory, + File: step.ConfigFile, + Raw: mergedConfig, + TestStepConfigRequest: config.TestStepConfigRequest{ + StepNumber: stepIndex + 1, + TestName: t.Name(), + }, + }.Exec() + + appliedCfg = teststep.Configuration(confRequest) logging.HelperResourceDebug(ctx, "Finished TestStep") @@ -328,6 +434,10 @@ func runNewTest(ctx context.Context, t testing.T, c TestCase, helper *plugintest t.Fatalf("Step %d/%d, unsupported test mode", stepNumber, len(c.Steps)) } + + if stepNumber > 0 { + copyWorkingDir(ctx, t, stepNumber, wd) + } } func getState(ctx context.Context, t testing.T, wd *plugintest.WorkingDir) (*terraform.State, error) { @@ -345,7 +455,7 @@ func getState(ctx context.Context, t testing.T, wd *plugintest.WorkingDir) (*ter } func stateIsEmpty(state *terraform.State) bool { - return state.Empty() || !state.HasResources() + return state.Empty() || !state.HasResources() //nolint:staticcheck // legacy usage } func planIsEmpty(plan *tfjson.Plan) bool { @@ -359,23 +469,73 @@ func planIsEmpty(plan *tfjson.Plan) bool { return true } -func testIDRefresh(ctx context.Context, t testing.T, c TestCase, wd *plugintest.WorkingDir, step TestStep, r *terraform.ResourceState, providers *providerFactories) error { +func testIDRefresh(ctx context.Context, t testing.T, c TestCase, wd *plugintest.WorkingDir, step TestStep, r *terraform.ResourceState, providers *providerFactories, stepIndex int) error { t.Helper() // Build the state. The state is just the resource with an ID. There // are no attributes. We only set what is needed to perform a refresh. - state := terraform.NewState() + state := terraform.NewState() //nolint:staticcheck // legacy usage state.RootModule().Resources = make(map[string]*terraform.ResourceState) state.RootModule().Resources[c.IDRefreshName] = &terraform.ResourceState{} + configRequest := teststep.PrepareConfigurationRequest{ + Directory: step.ConfigDirectory, + File: step.ConfigFile, + Raw: step.Config, + TestStepConfigRequest: config.TestStepConfigRequest{ + StepNumber: stepIndex + 1, + TestName: t.Name(), + }, + }.Exec() + + cfg := teststep.Configuration(configRequest) + + var hasProviderBlock bool + + if cfg != nil { + var err error + + hasProviderBlock, err = cfg.HasProviderBlock(ctx) + + if err != nil { + logging.HelperResourceError(ctx, + "Error determining whether configuration contains provider block for import test config", + map[string]interface{}{logging.KeyError: err}, + ) + t.Fatalf("Error determining whether configuration contains provider block for import test config: %s", err) + } + } + + // Return value from c.ProviderConfig() is assigned to Raw as this was previously being + // passed to wd.SetConfig() when the second argument accept a configuration string. + testStepConfig := teststep.Configuration( + teststep.ConfigurationRequest{ + Raw: teststep.Pointer(c.providerConfig(ctx, hasProviderBlock)), + }, + ) + // Temporarily set the config to a minimal provider config for the refresh // test. After the refresh we can reset it. - err := wd.SetConfig(ctx, c.providerConfig(ctx, step.configHasProviderBlock(ctx))) + err := wd.SetConfig(ctx, testStepConfig, step.ConfigVariables) if err != nil { t.Fatalf("Error setting import test config: %s", err) } + defer func() { - err = wd.SetConfig(ctx, step.Config) + confRequest := teststep.PrepareConfigurationRequest{ + Directory: step.ConfigDirectory, + File: step.ConfigFile, + Raw: step.providerConfig(ctx, hasProviderBlock), + TestStepConfigRequest: config.TestStepConfigRequest{ + StepNumber: stepIndex + 1, + TestName: t.Name(), + }, + }.Exec() + + testStepConfigDefer := teststep.Configuration(confRequest) + + err = wd.SetConfig(ctx, testStepConfigDefer, step.ConfigVariables) + if err != nil { t.Fatalf("Error resetting test config: %s", err) } @@ -442,3 +602,27 @@ func testIDRefresh(ctx context.Context, t testing.T, c TestCase, wd *plugintest. return nil } + +func copyWorkingDir(ctx context.Context, t testing.T, stepNumber int, wd *plugintest.WorkingDir) { + if os.Getenv(plugintest.EnvTfAccPersistWorkingDir) == "" { + return + } + + workingDir := wd.GetHelper().WorkingDirectory() + + dest := filepath.Join(workingDir, fmt.Sprintf("%s%s", "step_", strconv.Itoa(stepNumber))) + + baseDir := wd.BaseDir() + rootBaseDir := strings.TrimLeft(baseDir, workingDir) + + err := plugintest.CopyDir(workingDir, dest, rootBaseDir) + if err != nil { + logging.HelperResourceError(ctx, + "Unexpected error copying working directory files", + map[string]interface{}{logging.KeyError: err}, + ) + t.Fatalf("TestStep %d/%d error copying working directory files: %s", stepNumber, err) + } + + t.Logf("Working directory and files have been copied to: %s", dest) +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new_config.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new_config.go index 3ad3f0916512..5df394d94cf0 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new_config.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new_config.go @@ -11,16 +11,71 @@ import ( tfjson "github.com/hashicorp/terraform-json" "github.com/mitchellh/go-testing-interface" + "github.com/hashicorp/terraform-plugin-testing/config" + "github.com/hashicorp/terraform-plugin-testing/internal/teststep" "github.com/hashicorp/terraform-plugin-testing/terraform" "github.com/hashicorp/terraform-plugin-testing/internal/logging" "github.com/hashicorp/terraform-plugin-testing/internal/plugintest" ) -func testStepNewConfig(ctx context.Context, t testing.T, c TestCase, wd *plugintest.WorkingDir, step TestStep, providers *providerFactories) error { +func testStepNewConfig(ctx context.Context, t testing.T, c TestCase, wd *plugintest.WorkingDir, step TestStep, providers *providerFactories, stepIndex int) error { t.Helper() - err := wd.SetConfig(ctx, step.mergedConfig(ctx, c)) + configRequest := teststep.PrepareConfigurationRequest{ + Directory: step.ConfigDirectory, + File: step.ConfigFile, + Raw: step.Config, + TestStepConfigRequest: config.TestStepConfigRequest{ + StepNumber: stepIndex + 1, + TestName: t.Name(), + }, + }.Exec() + + cfg := teststep.Configuration(configRequest) + + var hasTerraformBlock bool + var hasProviderBlock bool + + if cfg != nil { + var err error + + hasTerraformBlock, err = cfg.HasTerraformBlock(ctx) + + if err != nil { + logging.HelperResourceError(ctx, + "Error determining whether configuration contains terraform block", + map[string]interface{}{logging.KeyError: err}, + ) + t.Fatalf("Error determining whether configuration contains terraform block: %s", err) + } + + hasProviderBlock, err = cfg.HasProviderBlock(ctx) + + if err != nil { + logging.HelperResourceError(ctx, + "Error determining whether configuration contains provider block", + map[string]interface{}{logging.KeyError: err}, + ) + t.Fatalf("Error determining whether configuration contains provider block: %s", err) + } + } + + mergedConfig := step.mergedConfig(ctx, c, hasTerraformBlock, hasProviderBlock) + + confRequest := teststep.PrepareConfigurationRequest{ + Directory: step.ConfigDirectory, + File: step.ConfigFile, + Raw: mergedConfig, + TestStepConfigRequest: config.TestStepConfigRequest{ + StepNumber: stepIndex + 1, + TestName: t.Name(), + }, + }.Exec() + + testStepConfig := teststep.Configuration(confRequest) + + err := wd.SetConfig(ctx, testStepConfig, step.ConfigVariables) if err != nil { return fmt.Errorf("Error setting config: %w", err) } @@ -51,6 +106,24 @@ func testStepNewConfig(ctx context.Context, t testing.T, c TestCase, wd *plugint return fmt.Errorf("Error running pre-apply plan: %w", err) } + // Run pre-apply plan checks + if len(step.ConfigPlanChecks.PreApply) > 0 { + var plan *tfjson.Plan + err = runProviderCommand(ctx, t, func() error { + var err error + plan, err = wd.SavedPlan(ctx) + return err + }, wd, providers) + if err != nil { + return fmt.Errorf("Error retrieving pre-apply plan: %w", err) + } + + err = runPlanChecks(ctx, t, plan, step.ConfigPlanChecks.PreApply) + if err != nil { + return fmt.Errorf("Pre-apply plan check(s) failed:\n%w", err) + } + } + // We need to keep a copy of the state prior to destroying such // that the destroy steps can verify their behavior in the // check function @@ -94,7 +167,6 @@ func testStepNewConfig(ctx context.Context, t testing.T, c TestCase, wd *plugint if step.Check != nil { logging.HelperResourceTrace(ctx, "Using TestStep Check") - state.IsBinaryDrivenTest = true if step.Destroy { if err := step.Check(stateBeforeApplication); err != nil { return fmt.Errorf("Check failed: %w", err) @@ -131,6 +203,14 @@ func testStepNewConfig(ctx context.Context, t testing.T, c TestCase, wd *plugint return fmt.Errorf("Error retrieving post-apply plan: %w", err) } + // Run post-apply, pre-refresh plan checks + if len(step.ConfigPlanChecks.PostApplyPreRefresh) > 0 { + err = runPlanChecks(ctx, t, plan, step.ConfigPlanChecks.PostApplyPreRefresh) + if err != nil { + return fmt.Errorf("Post-apply, pre-refresh plan check(s) failed:\n%w", err) + } + } + if !planIsEmpty(plan) && !step.ExpectNonEmptyPlan { var stdout string err = runProviderCommand(ctx, t, func() error { @@ -174,6 +254,14 @@ func testStepNewConfig(ctx context.Context, t testing.T, c TestCase, wd *plugint return fmt.Errorf("Error retrieving second post-apply plan: %w", err) } + // Run post-apply, post-refresh plan checks + if len(step.ConfigPlanChecks.PostApplyPostRefresh) > 0 { + err = runPlanChecks(ctx, t, plan, step.ConfigPlanChecks.PostApplyPostRefresh) + if err != nil { + return fmt.Errorf("Post-apply, post-refresh plan check(s) failed:\n%w", err) + } + } + // check if plan is empty if !planIsEmpty(plan) && !step.ExpectNonEmptyPlan { var stdout string @@ -210,6 +298,7 @@ func testStepNewConfig(ctx context.Context, t testing.T, c TestCase, wd *plugint return err } + //nolint:staticcheck // legacy usage if state.Empty() { return nil } @@ -234,7 +323,7 @@ func testStepNewConfig(ctx context.Context, t testing.T, c TestCase, wd *plugint // this fails. If refresh isn't read-only, then this will have // caught a different bug. if idRefreshCheck != nil { - if err := testIDRefresh(ctx, t, c, wd, step, idRefreshCheck, providers); err != nil { + if err := testIDRefresh(ctx, t, c, wd, step, idRefreshCheck, providers, stepIndex); err != nil { return fmt.Errorf( "[ERROR] Test: ID-only test failed: %s", err) } diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new_import_state.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new_import_state.go index b1124894b761..7dbc0b800b4d 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new_import_state.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new_import_state.go @@ -12,15 +12,29 @@ import ( "github.com/google/go-cmp/cmp" "github.com/mitchellh/go-testing-interface" + "github.com/hashicorp/terraform-plugin-testing/config" + "github.com/hashicorp/terraform-plugin-testing/internal/teststep" "github.com/hashicorp/terraform-plugin-testing/terraform" "github.com/hashicorp/terraform-plugin-testing/internal/logging" "github.com/hashicorp/terraform-plugin-testing/internal/plugintest" ) -func testStepNewImportState(ctx context.Context, t testing.T, helper *plugintest.Helper, wd *plugintest.WorkingDir, step TestStep, cfg string, providers *providerFactories) error { +func testStepNewImportState(ctx context.Context, t testing.T, helper *plugintest.Helper, wd *plugintest.WorkingDir, step TestStep, cfg teststep.Config, providers *providerFactories, stepIndex int) error { t.Helper() + configRequest := teststep.PrepareConfigurationRequest{ + Directory: step.ConfigDirectory, + File: step.ConfigFile, + Raw: step.Config, + TestStepConfigRequest: config.TestStepConfigRequest{ + StepNumber: stepIndex + 1, + TestName: t.Name(), + }, + }.Exec() + + testStepConfig := teststep.Configuration(configRequest) + if step.ResourceName == "" { t.Fatal("ResourceName is required for an import state test") } @@ -28,6 +42,7 @@ func testStepNewImportState(ctx context.Context, t testing.T, helper *plugintest // get state from check sequence var state *terraform.State var err error + err = runProviderCommand(ctx, t, func() error { state, err = getState(ctx, t, wd) if err != nil { @@ -79,11 +94,11 @@ func testStepNewImportState(ctx context.Context, t testing.T, helper *plugintest logging.HelperResourceTrace(ctx, fmt.Sprintf("Using import identifier: %s", importId)) // Create working directory for import tests - if step.Config == "" { + if testStepConfig == nil { logging.HelperResourceTrace(ctx, "Using prior TestStep Config for import") - step.Config = cfg - if step.Config == "" { + testStepConfig = cfg + if testStepConfig == nil { t.Fatal("Cannot import state with no specified config") } } @@ -94,11 +109,11 @@ func testStepNewImportState(ctx context.Context, t testing.T, helper *plugintest if step.ImportStatePersist { importWd = wd } else { - importWd = helper.RequireNewWorkingDir(ctx, t) + importWd = helper.RequireNewWorkingDir(ctx, t, "") defer importWd.Close() } - err = importWd.SetConfig(ctx, step.Config) + err = importWd.SetConfig(ctx, testStepConfig, step.ConfigVariables) if err != nil { t.Fatalf("Error setting test config: %s", err) } @@ -147,7 +162,7 @@ func testStepNewImportState(ctx context.Context, t testing.T, helper *plugintest continue } - is := r.Primary.DeepCopy() + is := r.Primary.DeepCopy() //nolint:staticcheck // legacy usage is.Ephemeral.Type = r.Type // otherwise the check function cannot see the type states = append(states, is) } @@ -182,12 +197,33 @@ func testStepNewImportState(ctx context.Context, t testing.T, helper *plugintest } } + identifierAttribute := step.ImportStateVerifyIdentifierAttribute + + if identifierAttribute == "" { + identifierAttribute = "id" + } + for _, r := range newResources { + rIdentifier, ok := r.Primary.Attributes[identifierAttribute] + + if !ok { + t.Fatalf("ImportStateVerify: New resource missing identifier attribute %q, ensure attribute value is properly set or use ImportStateVerifyIdentifierAttribute to choose different attribute", identifierAttribute) + } + // Find the existing resource var oldR *terraform.ResourceState for _, r2 := range oldResources { + if r2.Primary == nil || r2.Type != r.Type || r2.Provider != r.Provider { + continue + } + + r2Identifier, ok := r2.Primary.Attributes[identifierAttribute] + + if !ok { + t.Fatalf("ImportStateVerify: Old resource missing identifier attribute %q, ensure attribute value is properly set or use ImportStateVerifyIdentifierAttribute to choose different attribute", identifierAttribute) + } - if r2.Primary != nil && r2.Primary.ID == r.Primary.ID && r2.Type == r.Type && r2.Provider == r.Provider { + if r2Identifier == rIdentifier { oldR = r2 break } @@ -195,7 +231,7 @@ func testStepNewImportState(ctx context.Context, t testing.T, helper *plugintest if oldR == nil || oldR.Primary == nil { t.Fatalf( "Failed state verification, resource with ID %s not found", - r.Primary.ID) + rIdentifier) } // don't add empty flatmapped containers, so we can more easily diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new_refresh_state.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new_refresh_state.go index fe7b2814539f..86073b165d14 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new_refresh_state.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/testing_new_refresh_state.go @@ -67,7 +67,7 @@ func testStepNewRefreshState(ctx context.Context, t testing.T, wd *plugintest.Wo return wd.CreatePlan(ctx) }, wd, providers) if err != nil { - return fmt.Errorf("Error running post-apply plan: %w", err) + return fmt.Errorf("Error running post-refresh plan: %w", err) } var plan *tfjson.Plan @@ -77,7 +77,15 @@ func testStepNewRefreshState(ctx context.Context, t testing.T, wd *plugintest.Wo return err }, wd, providers) if err != nil { - return fmt.Errorf("Error retrieving post-apply plan: %w", err) + return fmt.Errorf("Error retrieving post-refresh plan: %w", err) + } + + // Run post-refresh plan checks + if len(step.RefreshPlanChecks.PostRefresh) > 0 { + err = runPlanChecks(ctx, t, plan, step.RefreshPlanChecks.PostRefresh) + if err != nil { + return fmt.Errorf("Post-refresh plan check(s) failed:\n%w", err) + } } if !planIsEmpty(plan) && !step.ExpectNonEmptyPlan { diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/teststep_providers.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/teststep_providers.go index 9b759bde03ae..1e2aa843effe 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/teststep_providers.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/teststep_providers.go @@ -6,24 +6,9 @@ package resource import ( "context" "fmt" - "regexp" "strings" ) -var configProviderBlockRegex = regexp.MustCompile(`provider "?[a-zA-Z0-9_-]+"? {`) - -// configHasProviderBlock returns true if the Config has declared a provider -// configuration block, e.g. provider "examplecloud" {...} -func (s TestStep) configHasProviderBlock(_ context.Context) bool { - return configProviderBlockRegex.MatchString(s.Config) -} - -// configHasTerraformBlock returns true if the Config has declared a terraform -// configuration block, e.g. terraform {...} -func (s TestStep) configHasTerraformBlock(_ context.Context) bool { - return strings.Contains(s.Config, "terraform {") -} - // mergedConfig prepends any necessary terraform configuration blocks to the // TestStep Config. // @@ -31,21 +16,26 @@ func (s TestStep) configHasTerraformBlock(_ context.Context) bool { // TestStep, the terraform configuration block should be included with the // step configuration to prevent errors with providers outside the // registry.terraform.io hostname or outside the hashicorp namespace. -func (s TestStep) mergedConfig(ctx context.Context, testCase TestCase) string { +// This is only necessary when using TestStep.Config. +// +// When TestStep.ConfigDirectory is used, the expectation is that the +// Terraform configuration files will specify a terraform configuration +// block and/or provider blocks as necessary. +func (s TestStep) mergedConfig(ctx context.Context, testCase TestCase, configHasTerraformBlock, configHasProviderBlock bool) string { var config strings.Builder // Prevent issues with existing configurations containing the terraform // configuration block. - if s.configHasTerraformBlock(ctx) { + if configHasTerraformBlock { config.WriteString(s.Config) return config.String() } if testCase.hasProviders(ctx) { - config.WriteString(testCase.providerConfig(ctx, s.configHasProviderBlock(ctx))) + config.WriteString(testCase.providerConfig(ctx, configHasProviderBlock)) } else { - config.WriteString(s.providerConfig(ctx, s.configHasProviderBlock(ctx))) + config.WriteString(s.providerConfig(ctx, configHasProviderBlock)) } config.WriteString(s.Config) diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/teststep_validate.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/teststep_validate.go index 082d9e6dd1d3..d63db4dc89ea 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/teststep_validate.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/teststep_validate.go @@ -7,41 +7,88 @@ import ( "context" "fmt" + "github.com/hashicorp/terraform-plugin-testing/config" "github.com/hashicorp/terraform-plugin-testing/internal/logging" + "github.com/hashicorp/terraform-plugin-testing/internal/teststep" ) // testStepValidateRequest contains data for the (TestStep).validate() method. type testStepValidateRequest struct { + // StepConfiguration contains the TestStep configuration derived from + // TestStep.Config or TestStep.ConfigDirectory. + StepConfiguration teststep.Config + // StepNumber is the index of the TestStep in the TestCase.Steps. StepNumber int + // TestCaseHasExternalProviders is enabled if the TestCase has + // ExternalProviders. + TestCaseHasExternalProviders bool + // TestCaseHasProviders is enabled if the TestCase has set any of // ExternalProviders, ProtoV5ProviderFactories, ProtoV6ProviderFactories, // or ProviderFactories. TestCaseHasProviders bool + + // TestName is the name of the test. + TestName string +} + +// hasExternalProviders returns true if the TestStep has +// ExternalProviders set. +func (s TestStep) hasExternalProviders() bool { + return len(s.ExternalProviders) > 0 } // hasProviders returns true if the TestStep has set any of the // ExternalProviders, ProtoV5ProviderFactories, ProtoV6ProviderFactories, or -// ProviderFactories fields. -func (s TestStep) hasProviders(_ context.Context) bool { +// ProviderFactories fields. It will also return true if ConfigDirectory or +// Config contain terraform configuration which specify a provider block. +func (s TestStep) hasProviders(ctx context.Context, stepIndex int, testName string) (bool, error) { if len(s.ExternalProviders) > 0 { - return true + return true, nil } if len(s.ProtoV5ProviderFactories) > 0 { - return true + return true, nil } if len(s.ProtoV6ProviderFactories) > 0 { - return true + return true, nil } if len(s.ProviderFactories) > 0 { - return true + return true, nil + } + + configRequest := teststep.PrepareConfigurationRequest{ + Directory: s.ConfigDirectory, + File: s.ConfigFile, + TestStepConfigRequest: config.TestStepConfigRequest{ + StepNumber: stepIndex + 1, + TestName: testName, + }, + }.Exec() + + cfg := teststep.Configuration(configRequest) + + var cfgHasProviders bool + + if cfg != nil { + var err error + + cfgHasProviders, err = cfg.HasProviderBlock(ctx) + + if err != nil { + return false, err + } } - return false + if cfgHasProviders { + return true, nil + } + + return false, nil } // validate ensures the TestStep is valid based on the following criteria: @@ -59,19 +106,22 @@ func (s TestStep) hasProviders(_ context.Context) bool { // - No overlapping ExternalProviders and ProviderFactories entries // - ResourceName is not empty when ImportState is true, ImportStateIdFunc // is not set, and ImportStateId is not set. +// - ConfigPlanChecks (PreApply, PostApplyPreRefresh, PostApplyPostRefresh) are only set when Config is set. +// - ConfigPlanChecks.PreApply are only set when PlanOnly is false. +// - RefreshPlanChecks (PostRefresh) are only set when RefreshState is set. func (s TestStep) validate(ctx context.Context, req testStepValidateRequest) error { ctx = logging.TestStepNumberContext(ctx, req.StepNumber) logging.HelperResourceTrace(ctx, "Validating TestStep") - if s.Config == "" && !s.ImportState && !s.RefreshState { - err := fmt.Errorf("TestStep missing Config or ImportState or RefreshState") + if req.StepConfiguration == nil && !s.ImportState && !s.RefreshState { + err := fmt.Errorf("TestStep missing Config or ConfigDirectory or ConfigFile or ImportState or RefreshState") logging.HelperResourceError(ctx, "TestStep validation error", map[string]interface{}{logging.KeyError: err}) return err } - if s.Config != "" && s.RefreshState { - err := fmt.Errorf("TestStep cannot have Config and RefreshState") + if req.StepConfiguration != nil && s.RefreshState { + err := fmt.Errorf("TestStep cannot have Config or ConfigDirectory or ConfigFile and RefreshState") logging.HelperResourceError(ctx, "TestStep validation error", map[string]interface{}{logging.KeyError: err}) return err } @@ -102,7 +152,25 @@ func (s TestStep) validate(ctx context.Context, req testStepValidateRequest) err } } - hasProviders := s.hasProviders(ctx) + if req.TestCaseHasExternalProviders && req.StepConfiguration != nil && req.StepConfiguration.HasConfigurationFiles() { + err := fmt.Errorf("Providers must only be specified within the terraform configuration files when using TestStep.Config") + logging.HelperResourceError(ctx, "TestStep validation error", map[string]interface{}{logging.KeyError: err}) + return err + } + + if s.hasExternalProviders() && req.StepConfiguration != nil && req.StepConfiguration.HasConfigurationFiles() { + err := fmt.Errorf("Providers must only be specified within the terraform configuration files when using TestStep.Config") + logging.HelperResourceError(ctx, "TestStep validation error", map[string]interface{}{logging.KeyError: err}) + return err + } + + // We need a 0-based step index for consistency + hasProviders, err := s.hasProviders(ctx, req.StepNumber-1, req.TestName) + + if err != nil { + logging.HelperResourceError(ctx, "TestStep error checking for providers", map[string]interface{}{logging.KeyError: err}) + return err + } if req.TestCaseHasProviders && hasProviders { err := fmt.Errorf("Providers must only be specified either at the TestCase or TestStep level") @@ -110,8 +178,19 @@ func (s TestStep) validate(ctx context.Context, req testStepValidateRequest) err return err } - if !req.TestCaseHasProviders && !hasProviders { - err := fmt.Errorf("Providers must be specified at the TestCase level or in all TestStep") + var cfgHasProviderBlock bool + + if req.StepConfiguration != nil { + cfgHasProviderBlock, err = req.StepConfiguration.HasProviderBlock(ctx) + + if err != nil { + logging.HelperResourceError(ctx, "TestStep error checking for if configuration has provider block", map[string]interface{}{logging.KeyError: err}) + return err + } + } + + if !req.TestCaseHasProviders && !hasProviders && !cfgHasProviderBlock { + err := fmt.Errorf("Providers must be specified at the TestCase level, or in all TestStep, or in TestStep.ConfigDirectory or TestStep.ConfigFile") logging.HelperResourceError(ctx, "TestStep validation error", map[string]interface{}{logging.KeyError: err}) return err } @@ -124,5 +203,37 @@ func (s TestStep) validate(ctx context.Context, req testStepValidateRequest) err } } + if len(s.ConfigPlanChecks.PreApply) > 0 { + if req.StepConfiguration == nil { + err := fmt.Errorf("TestStep ConfigPlanChecks.PreApply must only be specified with Config, ConfigDirectory or ConfigFile") + logging.HelperResourceError(ctx, "TestStep validation error", map[string]interface{}{logging.KeyError: err}) + return err + } + + if s.PlanOnly { + err := fmt.Errorf("TestStep ConfigPlanChecks.PreApply cannot be run with PlanOnly") + logging.HelperResourceError(ctx, "TestStep validation error", map[string]interface{}{logging.KeyError: err}) + return err + } + } + + if len(s.ConfigPlanChecks.PostApplyPreRefresh) > 0 && req.StepConfiguration == nil { + err := fmt.Errorf("TestStep ConfigPlanChecks.PostApplyPreRefresh must only be specified with Config, ConfigDirectory or ConfigFile") + logging.HelperResourceError(ctx, "TestStep validation error", map[string]interface{}{logging.KeyError: err}) + return err + } + + if len(s.ConfigPlanChecks.PostApplyPostRefresh) > 0 && req.StepConfiguration == nil { + err := fmt.Errorf("TestStep ConfigPlanChecks.PostApplyPostRefresh must only be specified with Config, ConfigDirectory or ConfigFile") + logging.HelperResourceError(ctx, "TestStep validation error", map[string]interface{}{logging.KeyError: err}) + return err + } + + if len(s.RefreshPlanChecks.PostRefresh) > 0 && !s.RefreshState { + err := fmt.Errorf("TestStep RefreshPlanChecks.PostRefresh must only be specified with RefreshState") + logging.HelperResourceError(ctx, "TestStep validation error", map[string]interface{}{logging.KeyError: err}) + return err + } + return nil } diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/tfversion_checks.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/tfversion_checks.go new file mode 100644 index 000000000000..1bec0abd6209 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/tfversion_checks.go @@ -0,0 +1,31 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package resource + +import ( + "context" + + "github.com/hashicorp/go-version" + "github.com/mitchellh/go-testing-interface" + + "github.com/hashicorp/terraform-plugin-testing/tfversion" +) + +func runTFVersionChecks(ctx context.Context, t testing.T, terraformVersion *version.Version, terraformVersionChecks []tfversion.TerraformVersionCheck) { + t.Helper() + + for _, tfVersionCheck := range terraformVersionChecks { + resp := tfversion.CheckTerraformVersionResponse{} + tfVersionCheck.CheckTerraformVersion(ctx, tfversion.CheckTerraformVersionRequest{TerraformVersion: terraformVersion}, &resp) + + if resp.Error != nil { + t.Fatalf(resp.Error.Error()) + } + + if resp.Skip != "" { + t.Skip(resp.Skip) + } + } + +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/wait.go b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/wait.go index eff4f474a001..332791bc9110 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/wait.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/helper/resource/wait.go @@ -15,6 +15,9 @@ import ( // // Cancellation from the passed in context will propagate through to the // underlying StateChangeConf +// +// Deprecated: Copy this function to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.RetryContext. func RetryContext(ctx context.Context, timeout time.Duration, f RetryFunc) error { // These are used to pull the error out of the function; need a mutex to // avoid a data race. @@ -72,15 +75,25 @@ func Retry(timeout time.Duration, f RetryFunc) error { } // RetryFunc is the function retried until it succeeds. +// +// Deprecated: Copy this type to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.RetryFunc. type RetryFunc func() *RetryError // RetryError is the required return type of RetryFunc. It forces client code // to choose whether or not a given error is retryable. +// +// Deprecated: Copy this type to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.RetryError. type RetryError struct { Err error Retryable bool } +// Unwrap returns the Err, compatible with errors.Unwrap. +// +// Deprecated: Copy this method to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.RetryError. func (e *RetryError) Unwrap() error { return e.Err } @@ -88,6 +101,9 @@ func (e *RetryError) Unwrap() error { // RetryableError is a helper to create a RetryError that's retryable from a // given error. To prevent logic errors, will return an error when passed a // nil error. +// +// Deprecated: Copy this function to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.RetryableError. func RetryableError(err error) *RetryError { if err == nil { return &RetryError{ @@ -103,6 +119,9 @@ func RetryableError(err error) *RetryError { // NonRetryableError is a helper to create a RetryError that's _not_ retryable // from a given error. To prevent logic errors, will return an error when // passed a nil error. +// +// Deprecated: Copy this function to the provider codebase or use +// github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry.NonRetryableError. func NonRetryableError(err error) *RetryError { if err == nil { return &RetryError{ diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/addrs/instance_key.go b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/addrs/instance_key.go index 8373297f876b..56700fc05727 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/addrs/instance_key.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/addrs/instance_key.go @@ -20,7 +20,7 @@ type instanceKey interface { String() string } -// NoKey represents the absense of an instanceKey, for the single instance +// NoKey represents the absence of an instanceKey, for the single instance // of a configuration object that does not use "count" or "for_each" at all. var NoKey instanceKey diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/configs/configschema/empty_value.go b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/configs/configschema/empty_value.go index 3c9573bc56ad..cc1107fa0bdc 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/configs/configschema/empty_value.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/configs/configschema/empty_value.go @@ -7,12 +7,12 @@ import ( "github.com/hashicorp/go-cty/cty" ) -// EmptyValue returns the "empty value" for the recieving block, which for +// EmptyValue returns the "empty value" for the receiving block, which for // a block type is a non-null object where all of the attribute values are // the empty values of the block's attributes and nested block types. // // In other words, it returns the value that would be returned if an empty -// block were decoded against the recieving schema, assuming that no required +// block were decoded against the receiving schema, assuming that no required // attribute or block constraints were honored. func (b *Block) EmptyValue() cty.Value { vals := make(map[string]cty.Value) diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/configs/configschema/schema.go b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/configs/configschema/schema.go index c445b4ba55e9..fafe3fa91ce3 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/configs/configschema/schema.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/configs/configschema/schema.go @@ -125,7 +125,7 @@ const ( NestingSingle // NestingGroup is similar to NestingSingle in that it calls for only a - // single instance of a given block type with no labels, but it additonally + // single instance of a given block type with no labels, but it additionally // guarantees that its result will never be null, even if the block is // absent, and instead the nested attributes and blocks will be treated // as absent in that case. (Any required attributes or blocks within the diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/errorshim/error_join_shim.go b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/errorshim/error_join_shim.go new file mode 100644 index 000000000000..b7371af827c6 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/errorshim/error_join_shim.go @@ -0,0 +1,47 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// TODO: Once Go 1.20 is the minimum supported version delete this package, replace all usages with `errors` package +// - https://github.com/hashicorp/terraform-plugin-testing/issues/99 +package errorshim + +// Copied from -> https://cs.opensource.google/go/go/+/refs/tags/go1.20.2:src/errors/join.go +func Join(errs ...error) error { + n := 0 + for _, err := range errs { + if err != nil { + n++ + } + } + if n == 0 { + return nil + } + e := &joinError{ + errs: make([]error, 0, n), + } + for _, err := range errs { + if err != nil { + e.errs = append(e.errs, err) + } + } + return e +} + +type joinError struct { + errs []error +} + +func (e *joinError) Error() string { + var b []byte + for i, err := range e.errs { + if i > 0 { + b = append(b, '\n') + } + b = append(b, err.Error()...) + } + return string(b) +} + +func (e *joinError) Unwrap() []error { + return e.errs +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/environment_variables.go b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/environment_variables.go index 6df86f89f8c1..361de8f1e0c2 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/environment_variables.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/environment_variables.go @@ -108,4 +108,12 @@ const ( // will be installed if a binary is not found at the given path. No version // checks are performed against an existing binary. EnvTfAccTerraformPath = "TF_ACC_TERRAFORM_PATH" + + // EnvTfAccPersistWorkingDir environment variable enables persisting + // the working directory and the files generated during execution of + // TestStep(s). Default is disabled, in which case the working directory + // and the files it contains are deleted at the end of each acceptance + // test. Can be set to any value to persist the working directory and + // its contents, however "1" is conventional. + EnvTfAccPersistWorkingDir = "TF_ACC_PERSIST_WORKING_DIR" ) diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/helper.go b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/helper.go index cfc56fc8ad62..3c9772cfc4e7 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/helper.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/helper.go @@ -10,6 +10,7 @@ import ( "os" "strings" + "github.com/hashicorp/go-version" "github.com/hashicorp/terraform-exec/tfexec" "github.com/hashicorp/terraform-plugin-testing/internal/logging" @@ -42,6 +43,7 @@ type Helper struct { // for tests that use fixture files. sourceDir string terraformExec string + terraformVer *version.Version // execTempDir is created during DiscoverConfig to store any downloaded // binaries @@ -78,11 +80,23 @@ func InitHelper(ctx context.Context, config *Config) (*Helper, error) { return nil, fmt.Errorf("failed to create temporary directory for test helper: %s", err) } + tf, err := tfexec.NewTerraform(baseDir, config.TerraformExec) + if err != nil { + return nil, fmt.Errorf("unable to create terraform-exec instance: %w", err) + } + + tfVersion, _, err := tf.Version(ctx, false) + + if err != nil { + return nil, fmt.Errorf("error calling terraform version command: %w", err) + } + return &Helper{ baseDir: baseDir, sourceDir: config.SourceDir, terraformExec: config.TerraformExec, execTempDir: config.execTempDir, + terraformVer: tfVersion, }, nil } @@ -92,12 +106,17 @@ func InitHelper(ctx context.Context, config *Config) (*Helper, error) { // Call this before returning from TestMain to minimize the amount of detritus // left behind in the filesystem after the tests complete. func (h *Helper) Close() error { + if os.Getenv(EnvTfAccPersistWorkingDir) != "" { + return nil + } + if h.execTempDir != "" { err := os.RemoveAll(h.execTempDir) if err != nil { return err } } + return os.RemoveAll(h.baseDir) } @@ -107,8 +126,15 @@ func (h *Helper) Close() error { // If the working directory object is not itself closed by the time the test // program exits, the Close method on the helper itself will attempt to // delete it. -func (h *Helper) NewWorkingDir(ctx context.Context, t TestControl) (*WorkingDir, error) { - dir, err := os.MkdirTemp(h.baseDir, "work") +func (h *Helper) NewWorkingDir(ctx context.Context, t TestControl, wd string) (*WorkingDir, error) { + workingDir := h.baseDir + + if wd != "" { + workingDir = wd + h.baseDir = wd + } + + dir, err := os.MkdirTemp(workingDir, "work") if err != nil { return nil, err } @@ -267,10 +293,10 @@ func (h *Helper) NewWorkingDir(ctx context.Context, t TestControl) (*WorkingDir, // RequireNewWorkingDir is a variant of NewWorkingDir that takes a TestControl // object and will immediately fail the running test if the creation of the // working directory fails. -func (h *Helper) RequireNewWorkingDir(ctx context.Context, t TestControl) *WorkingDir { +func (h *Helper) RequireNewWorkingDir(ctx context.Context, t TestControl, workingDir string) *WorkingDir { t.Helper() - wd, err := h.NewWorkingDir(ctx, t) + wd, err := h.NewWorkingDir(ctx, t, workingDir) if err != nil { t := testingT{t} t.Fatalf("failed to create new working directory: %s", err) @@ -289,3 +315,8 @@ func (h *Helper) WorkingDirectory() string { func (h *Helper) TerraformExecPath() string { return h.terraformExec } + +// TerraformVersion returns the Terraform CLI version being used when running tests. +func (h *Helper) TerraformVersion() *version.Version { + return h.terraformVer +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/util.go b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/util.go index 0d4bbe526676..be187a01b92a 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/util.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/util.go @@ -5,8 +5,13 @@ package plugintest import ( "fmt" + "io" + "io/fs" "os" + "path" "path/filepath" + "strings" + "testing" ) func symlinkFile(src string, dest string) error { @@ -68,3 +73,114 @@ func symlinkDirectoriesOnly(srcDir string, destDir string) error { return nil } + +// CopyFile copies a single file from src to dest. +func CopyFile(src, dest string) error { + var srcFileInfo os.FileInfo + + srcFile, err := os.Open(src) + if err != nil { + return fmt.Errorf("unable to open file: %w", err) + } + defer srcFile.Close() + + destFile, err := os.Create(dest) + if err != nil { + return fmt.Errorf("unable to create file: %w", err) + } + defer destFile.Close() + + if _, err = io.Copy(destFile, srcFile); err != nil { + return fmt.Errorf("unable to copy: %w", err) + } + + if srcFileInfo, err = os.Stat(src); err != nil { + return fmt.Errorf("unable to stat: %w", err) + } + + return os.Chmod(dest, srcFileInfo.Mode()) +} + +// CopyDir recursively copies directories and files +// from src to dest. +func CopyDir(src, dest, baseDirName string) error { + srcInfo, err := os.Stat(src) + if err != nil { + return fmt.Errorf("unable to stat: %w", err) + } + + if err = os.MkdirAll(dest, srcInfo.Mode()); err != nil { + return fmt.Errorf("unable to create dir: %w", err) + } + + dirEntries, err := os.ReadDir(src) + if err != nil { + return fmt.Errorf("unable to read dir: %w", err) + } + + for _, dirEntry := range dirEntries { + srcFilepath := path.Join(src, dirEntry.Name()) + destFilepath := path.Join(dest, dirEntry.Name()) + + if !strings.Contains(srcFilepath, baseDirName) { + continue + } + + fi, err := dirEntry.Info() + + if err != nil { + return fmt.Errorf("unable to get dir entry info: %w", err) + } + + if dirEntry.IsDir() || fi.Mode()&fs.ModeSymlink == fs.ModeSymlink { + if err = CopyDir(srcFilepath, destFilepath, baseDirName); err != nil { + return fmt.Errorf("unable to copy directory: %w", err) + } + } else { + if err = CopyFile(srcFilepath, destFilepath); err != nil { + return fmt.Errorf("unable to copy file: %w", err) + } + } + } + + return nil +} + +// TestExpectTFatal provides a wrapper for logic which should call +// (*testing.T).Fatal() or (*testing.T).Fatalf(). +// +// Since we do not want the wrapping test to fail when an expected test error +// occurs, it is required that the testLogic passed in uses +// github.com/mitchellh/go-testing-interface.RuntimeT instead of the real +// *testing.T. +// +// If Fatal() or Fatalf() is not called in the logic, the real (*testing.T).Fatal() will +// be called to fail the test. +func TestExpectTFatal(t *testing.T, testLogic func()) { + t.Helper() + + var recoverIface interface{} + + func() { + defer func() { + recoverIface = recover() + }() + + testLogic() + }() + + if recoverIface == nil { + t.Fatalf("expected t.Fatal(), got none") + } + + recoverStr, ok := recoverIface.(string) + + if !ok { + t.Fatalf("expected string from recover(), got: %v (%T)", recoverIface, recoverIface) + } + + // this string is hardcoded in github.com/mitchellh/go-testing-interface + if !strings.HasPrefix(recoverStr, "testing.T failed, see logs for output") { + t.Fatalf("expected t.Fatal(), got: %s", recoverStr) + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/working_dir.go b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/working_dir.go index 734b6c9b5513..a6e580812234 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/working_dir.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/plugintest/working_dir.go @@ -5,7 +5,6 @@ package plugintest import ( "context" - "encoding/json" "fmt" "os" "path/filepath" @@ -13,13 +12,14 @@ import ( "github.com/hashicorp/terraform-exec/tfexec" tfjson "github.com/hashicorp/terraform-json" + "github.com/hashicorp/terraform-plugin-testing/config" "github.com/hashicorp/terraform-plugin-testing/internal/logging" + "github.com/hashicorp/terraform-plugin-testing/internal/teststep" ) const ( - ConfigFileName = "terraform_plugin_test.tf" - ConfigFileNameJSON = ConfigFileName + ".json" - PlanFileName = "tfplan" + ConfigFileName = "terraform_plugin_test.tf" + PlanFileName = "tfplan" ) // WorkingDir represents a distinct working directory that can be used for @@ -47,10 +47,19 @@ type WorkingDir struct { reattachInfo tfexec.ReattachInfo } +// BaseDir returns the path to the root of the working directory tree. +func (wd *WorkingDir) BaseDir() string { + return wd.baseDir +} + // Close deletes the directories and files created to represent the receiving // working directory. After this method is called, the working directory object // is invalid and may no longer be used. func (wd *WorkingDir) Close() error { + if os.Getenv(EnvTfAccPersistWorkingDir) != "" { + return nil + } + return os.RemoveAll(wd.baseDir) } @@ -73,29 +82,71 @@ func (wd *WorkingDir) GetHelper() *Helper { // This must be called at least once before any call to Init, Plan, Apply, or // Destroy to establish the configuration. Any previously-set configuration is // discarded and any saved plan is cleared. -func (wd *WorkingDir) SetConfig(ctx context.Context, cfg string) error { +func (wd *WorkingDir) SetConfig(ctx context.Context, cfg teststep.Config, vars config.Variables) error { + // Remove old config and variables files first + d, err := os.Open(wd.baseDir) + + if err != nil { + return err + } + + defer d.Close() + + fi, err := d.Readdir(-1) + + if err != nil { + return err + } + + for _, file := range fi { + if file.Mode().IsRegular() { + if filepath.Ext(file.Name()) == ".tf" || filepath.Ext(file.Name()) == ".json" { + err = os.Remove(filepath.Join(d.Name(), file.Name())) + + if err != nil && !os.IsNotExist(err) { + return err + } + } + } + } + logging.HelperResourceTrace(ctx, "Setting Terraform configuration", map[string]any{logging.KeyTestTerraformConfiguration: cfg}) outFilename := filepath.Join(wd.baseDir, ConfigFileName) - rmFilename := filepath.Join(wd.baseDir, ConfigFileNameJSON) - bCfg := []byte(cfg) - if json.Valid(bCfg) { - outFilename, rmFilename = rmFilename, outFilename + + // This file has to be written otherwise wd.Init() will return an error. + err = os.WriteFile(outFilename, nil, 0700) + + if err != nil { + return err } - if err := os.Remove(rmFilename); err != nil && !os.IsNotExist(err) { - return fmt.Errorf("unable to remove %q: %w", rmFilename, err) + + // wd.configFilename must be set otherwise wd.Init() will return an error. + wd.configFilename = outFilename + + // Write configuration + if cfg != nil { + err = cfg.Write(ctx, wd.baseDir) + + if err != nil { + return err + } } - err := os.WriteFile(outFilename, bCfg, 0700) + + //Write configuration variables + err = vars.Write(wd.baseDir) + if err != nil { return err } - wd.configFilename = outFilename // Changing configuration invalidates any saved plan. err = wd.ClearPlan(ctx) + if err != nil { return err } + return nil } diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/config.go b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/config.go new file mode 100644 index 000000000000..6bd94d3a3726 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/config.go @@ -0,0 +1,241 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package teststep + +import ( + "context" + "fmt" + "io" + "os" + "path/filepath" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-testing/config" +) + +const ( + rawConfigFileName = "terraform_plugin_test.tf" + rawConfigFileNameJSON = rawConfigFileName + ".json" +) + +var ( + providerConfigBlockRegex = regexp.MustCompile(`provider "?[a-zA-Z0-9_-]+"? {`) + terraformConfigBlockRegex = regexp.MustCompile(`terraform {`) +) + +// Config defines an interface implemented by all types +// that represent Terraform configuration: +// +// - [config.configurationDirectory] +// - [config.configurationFile] +// - [config.configurationString] +type Config interface { + HasConfigurationFiles() bool + HasProviderBlock(context.Context) (bool, error) + HasTerraformBlock(context.Context) (bool, error) + Write(context.Context, string) error +} + +// PrepareConfigurationRequest is used to simplify the generation of +// a ConfigurationRequest which is required when calling the +// Configuration func. +type PrepareConfigurationRequest struct { + Directory config.TestStepConfigFunc + File config.TestStepConfigFunc + Raw string + TestStepConfigRequest config.TestStepConfigRequest +} + +// Exec returns a Configuration request which is required when +// calling the Configuration func. +func (p PrepareConfigurationRequest) Exec() ConfigurationRequest { + directory := Pointer(p.Directory.Exec(p.TestStepConfigRequest)) + file := Pointer(p.File.Exec(p.TestStepConfigRequest)) + raw := Pointer(p.Raw) + + return ConfigurationRequest{ + Directory: directory, + File: file, + Raw: raw, + } +} + +// ConfigurationRequest is used by the Configuration func to determine +// the underlying type to instantiate. +type ConfigurationRequest struct { + Directory *string + File *string + Raw *string +} + +// Validate ensures that only one of Directory, File or Raw are non-empty. +func (c ConfigurationRequest) Validate() error { + var configSet []string + + if c.Directory != nil && *c.Directory != "" { + configSet = append(configSet, "directory") + } + + if c.File != nil && *c.File != "" { + configSet = append(configSet, "file") + } + + if c.Raw != nil && *c.Raw != "" { + configSet = append(configSet, "raw") + } + + if len(configSet) > 1 { + configSetStr := strings.Join(configSet, `, `) + + i := strings.LastIndex(configSetStr, ", ") + + if i != -1 { + configSetStr = configSetStr[:i] + " and " + configSetStr[i+len(", "):] + } + + return fmt.Errorf(`%s are populated, only one of "directory", "file", or "raw" is allowed`, configSetStr) + } + + return nil +} + +// Configuration uses the supplied ConfigurationRequest to determine +// which of the types that implement Config to instantiate. If none +// of the fields in ConfigurationRequest are populated nil is returned. +func Configuration(req ConfigurationRequest) Config { + if req.Directory != nil && *req.Directory != "" { + return configurationDirectory{ + directory: *req.Directory, + } + } + + if req.File != nil && *req.File != "" { + return configurationFile{ + file: *req.File, + } + } + + if req.Raw != nil && *req.Raw != "" { + return configurationString{ + raw: *req.Raw, + } + } + + return nil +} + +// copyFiles accepts a path to a directory and a destination. Only +// files in the path directory are copied, any nested directories +// are ignored. +func copyFiles(path string, dstPath string) error { + infos, err := os.ReadDir(path) + + if err != nil { + return err + } + + for _, info := range infos { + srcPath := filepath.Join(path, info.Name()) + + if info.IsDir() { + continue + } else { + err = copyFile(srcPath, dstPath) + + if err != nil { + return err + } + } + + } + return nil +} + +// copyFile accepts a path to a file and a destination, +// copying the file from path to destination. +func copyFile(path string, dstPath string) error { + srcF, err := os.Open(path) + + if err != nil { + return err + } + + defer srcF.Close() + + di, err := os.Stat(dstPath) + + if err != nil { + return err + } + + if di.IsDir() { + _, file := filepath.Split(path) + dstPath = filepath.Join(dstPath, file) + } + + dstF, err := os.Create(dstPath) + + if err != nil { + return err + } + + defer dstF.Close() + + if _, err := io.Copy(dstF, srcF); err != nil { + return err + } + + return nil +} + +// filesContains accepts a string representing a directory and a +// regular expression. For each file that is found within the +// directory fileContains func is called. Any nested directories +// within the directory specified by dir are ignored. +func filesContains(dir string, find *regexp.Regexp) (bool, error) { + dirEntries, err := os.ReadDir(dir) + + if err != nil { + return false, err + } + + for _, dirEntry := range dirEntries { + if dirEntry.IsDir() { + continue + } + + path := filepath.Join(dir, dirEntry.Name()) + + contains, err := fileContains(path, find) + + if err != nil { + return false, err + } + + if contains { + return true, nil + } + } + + return false, nil +} + +// fileContains accepts a path and a regular expression. The +// file is read and the supplied regular expression is used +// to determine whether the file contains the specified string. +func fileContains(path string, find *regexp.Regexp) (bool, error) { + f, err := os.ReadFile(path) + + if err != nil { + return false, err + } + + return find.MatchString(string(f)), nil +} + +// Pointer returns a pointer to any type. +func Pointer[T any](in T) *T { + return &in +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/directory.go b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/directory.go new file mode 100644 index 000000000000..0126e82aa030 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/directory.go @@ -0,0 +1,94 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package teststep + +import ( + "context" + "os" + "path/filepath" +) + +var _ Config = configurationDirectory{} + +type configurationDirectory struct { + directory string +} + +// HasConfigurationFiles is used during validation to ensure that +// ExternalProviders are not declared at the TestCase or TestStep +// level when using TestStep.ConfigDirectory. +func (c configurationDirectory) HasConfigurationFiles() bool { + return true +} + +// HasProviderBlock returns true if the Config has declared a provider +// configuration block, e.g. provider "examplecloud" {...} +func (c configurationDirectory) HasProviderBlock(ctx context.Context) (bool, error) { + configDirectory := c.directory + + if !filepath.IsAbs(configDirectory) { + pwd, err := os.Getwd() + + if err != nil { + return false, err + } + + configDirectory = filepath.Join(pwd, configDirectory) + } + + contains, err := filesContains(configDirectory, providerConfigBlockRegex) + + if err != nil { + return false, err + } + + return contains, nil +} + +// HasTerraformBlock returns true if the Config has declared a terraform +// configuration block, e.g. terraform {...} +func (c configurationDirectory) HasTerraformBlock(ctx context.Context) (bool, error) { + configDirectory := c.directory + + if !filepath.IsAbs(configDirectory) { + pwd, err := os.Getwd() + + if err != nil { + return false, err + } + + configDirectory = filepath.Join(pwd, configDirectory) + } + + contains, err := filesContains(configDirectory, terraformConfigBlockRegex) + + if err != nil { + return false, err + } + + return contains, nil +} + +// Write copies all files from directory to destination. +func (c configurationDirectory) Write(ctx context.Context, dest string) error { + configDirectory := c.directory + + if !filepath.IsAbs(configDirectory) { + pwd, err := os.Getwd() + + if err != nil { + return err + } + + configDirectory = filepath.Join(pwd, configDirectory) + } + + err := copyFiles(configDirectory, dest) + + if err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/file.go b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/file.go new file mode 100644 index 000000000000..6de3f0752c60 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/file.go @@ -0,0 +1,94 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package teststep + +import ( + "context" + "os" + "path/filepath" +) + +var _ Config = configurationFile{} + +type configurationFile struct { + file string +} + +// HasConfigurationFiles is used during validation to ensure that +// ExternalProviders are not declared at the TestCase or TestStep +// level when using TestStep.ConfigFile. +func (c configurationFile) HasConfigurationFiles() bool { + return true +} + +// HasProviderBlock returns true if the Config has declared a provider +// configuration block, e.g. provider "examplecloud" {...} +func (c configurationFile) HasProviderBlock(ctx context.Context) (bool, error) { + configFile := c.file + + if !filepath.IsAbs(configFile) { + pwd, err := os.Getwd() + + if err != nil { + return false, err + } + + configFile = filepath.Join(pwd, configFile) + } + + contains, err := fileContains(configFile, providerConfigBlockRegex) + + if err != nil { + return false, err + } + + return contains, nil +} + +// HasTerraformBlock returns true if the Config has declared a terraform +// configuration block, e.g. terraform {...} +func (c configurationFile) HasTerraformBlock(ctx context.Context) (bool, error) { + configFile := c.file + + if !filepath.IsAbs(configFile) { + pwd, err := os.Getwd() + + if err != nil { + return false, err + } + + configFile = filepath.Join(pwd, configFile) + } + + contains, err := fileContains(configFile, terraformConfigBlockRegex) + + if err != nil { + return false, err + } + + return contains, nil +} + +// Write copies file from c.file to destination. +func (c configurationFile) Write(ctx context.Context, dest string) error { + configFile := c.file + + if !filepath.IsAbs(configFile) { + pwd, err := os.Getwd() + + if err != nil { + return err + } + + configFile = filepath.Join(pwd, configFile) + } + + err := copyFile(configFile, dest) + + if err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/string.go b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/string.go new file mode 100644 index 000000000000..4143b484d8af --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/internal/teststep/string.go @@ -0,0 +1,61 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package teststep + +import ( + "context" + "encoding/json" + "fmt" + "os" + "path/filepath" +) + +var _ Config = configurationString{} + +type configurationString struct { + raw string +} + +// HasConfigurationFiles is used during validation to allow declaration +// of ExternalProviders at the TestCase or TestStep level when using +// TestStep.Config. +func (c configurationString) HasConfigurationFiles() bool { + return false +} + +// HasProviderBlock returns true if the Config has declared a provider +// configuration block, e.g. provider "examplecloud" {...} +func (c configurationString) HasProviderBlock(ctx context.Context) (bool, error) { + return providerConfigBlockRegex.MatchString(c.raw), nil +} + +// HasTerraformBlock returns true if the Config has declared a terraform +// configuration block, e.g. terraform {...} +func (c configurationString) HasTerraformBlock(ctx context.Context) (bool, error) { + return terraformConfigBlockRegex.MatchString(c.raw), nil +} + +// Write creates a file and writes c.raw into it. +func (c configurationString) Write(ctx context.Context, dest string) error { + outFilename := filepath.Join(dest, rawConfigFileName) + rmFilename := filepath.Join(dest, rawConfigFileNameJSON) + + bCfg := []byte(c.raw) + + if json.Valid(bCfg) { + outFilename, rmFilename = rmFilename, outFilename + } + + if err := os.Remove(rmFilename); err != nil && !os.IsNotExist(err) { + return fmt.Errorf("unable to remove %q: %w", rmFilename, err) + } + + err := os.WriteFile(outFilename, bCfg, 0700) + + if err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/doc.go b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/doc.go new file mode 100644 index 000000000000..eceda6faaf19 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/doc.go @@ -0,0 +1,5 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Package plancheck contains the plan check interface, request/response structs, and common plan check implementations. +package plancheck diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_empty_plan.go b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_empty_plan.go new file mode 100644 index 000000000000..92d55f465371 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_empty_plan.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package plancheck + +import ( + "context" + "fmt" + + "github.com/hashicorp/terraform-plugin-testing/internal/errorshim" +) + +var _ PlanCheck = expectEmptyPlan{} + +type expectEmptyPlan struct{} + +// CheckPlan implements the plan check logic. +func (e expectEmptyPlan) CheckPlan(ctx context.Context, req CheckPlanRequest, resp *CheckPlanResponse) { + var result error + + for _, rc := range req.Plan.ResourceChanges { + if !rc.Change.Actions.NoOp() { + // TODO: Once Go 1.20 is the minimum supported version for this module, replace with `errors.Join` function + // - https://github.com/hashicorp/terraform-plugin-testing/issues/99 + result = errorshim.Join(result, fmt.Errorf("expected empty plan, but %s has planned action(s): %v", rc.Address, rc.Change.Actions)) + } + } + + resp.Error = result +} + +// ExpectEmptyPlan returns a plan check that asserts that there are no resource changes in the plan. +// All resource changes found will be aggregated and returned in a plan check error. +func ExpectEmptyPlan() PlanCheck { + return expectEmptyPlan{} +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_non_empty_plan.go b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_non_empty_plan.go new file mode 100644 index 000000000000..74acf034d244 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_non_empty_plan.go @@ -0,0 +1,29 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package plancheck + +import ( + "context" + "errors" +) + +var _ PlanCheck = expectNonEmptyPlan{} + +type expectNonEmptyPlan struct{} + +// CheckPlan implements the plan check logic. +func (e expectNonEmptyPlan) CheckPlan(ctx context.Context, req CheckPlanRequest, resp *CheckPlanResponse) { + for _, rc := range req.Plan.ResourceChanges { + if !rc.Change.Actions.NoOp() { + return + } + } + + resp.Error = errors.New("expected a non-empty plan, but got an empty plan") +} + +// ExpectNonEmptyPlan returns a plan check that asserts there is at least one resource change in the plan. +func ExpectNonEmptyPlan() PlanCheck { + return expectNonEmptyPlan{} +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_resource_action.go b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_resource_action.go new file mode 100644 index 000000000000..37a2336d2f35 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_resource_action.go @@ -0,0 +1,90 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package plancheck + +import ( + "context" + "fmt" +) + +var _ PlanCheck = expectResourceAction{} + +type expectResourceAction struct { + resourceAddress string + actionType ResourceActionType +} + +// CheckPlan implements the plan check logic. +func (e expectResourceAction) CheckPlan(ctx context.Context, req CheckPlanRequest, resp *CheckPlanResponse) { + foundResource := false + + for _, rc := range req.Plan.ResourceChanges { + if e.resourceAddress != rc.Address { + continue + } + + switch e.actionType { + case ResourceActionNoop: + if !rc.Change.Actions.NoOp() { + resp.Error = fmt.Errorf("'%s' - expected %s, got action(s): %v", rc.Address, e.actionType, rc.Change.Actions) + return + } + case ResourceActionCreate: + if !rc.Change.Actions.Create() { + resp.Error = fmt.Errorf("'%s' - expected %s, got action(s): %v", rc.Address, e.actionType, rc.Change.Actions) + return + } + case ResourceActionRead: + if !rc.Change.Actions.Read() { + resp.Error = fmt.Errorf("'%s' - expected %s, got action(s): %v", rc.Address, e.actionType, rc.Change.Actions) + return + } + case ResourceActionUpdate: + if !rc.Change.Actions.Update() { + resp.Error = fmt.Errorf("'%s' - expected %s, got action(s): %v", rc.Address, e.actionType, rc.Change.Actions) + return + } + case ResourceActionDestroy: + if !rc.Change.Actions.Delete() { + resp.Error = fmt.Errorf("'%s' - expected %s, got action(s): %v", rc.Address, e.actionType, rc.Change.Actions) + return + } + case ResourceActionDestroyBeforeCreate: + if !rc.Change.Actions.DestroyBeforeCreate() { + resp.Error = fmt.Errorf("'%s' - expected %s, got action(s): %v", rc.Address, e.actionType, rc.Change.Actions) + return + } + case ResourceActionCreateBeforeDestroy: + if !rc.Change.Actions.CreateBeforeDestroy() { + resp.Error = fmt.Errorf("'%s' - expected %s, got action(s): %v", rc.Address, e.actionType, rc.Change.Actions) + return + } + case ResourceActionReplace: + if !rc.Change.Actions.Replace() { + resp.Error = fmt.Errorf("%s - expected %s, got action(s): %v", rc.Address, e.actionType, rc.Change.Actions) + return + } + default: + resp.Error = fmt.Errorf("%s - unexpected ResourceActionType: %s", rc.Address, e.actionType) + return + } + + foundResource = true + break + } + + if !foundResource { + resp.Error = fmt.Errorf("%s - Resource not found in plan ResourceChanges", e.resourceAddress) + return + } +} + +// ExpectResourceAction returns a plan check that asserts that a given resource will have a specific resource change type in the plan. +// Valid actionType are an enum of type plancheck.ResourceActionType, examples: NoOp, DestroyBeforeCreate, Update (in-place), etc. +func ExpectResourceAction(resourceAddress string, actionType ResourceActionType) PlanCheck { + return expectResourceAction{ + resourceAddress: resourceAddress, + actionType: actionType, + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_sensitive_value.go b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_sensitive_value.go new file mode 100644 index 000000000000..b6c3a51946fe --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_sensitive_value.go @@ -0,0 +1,61 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package plancheck + +import ( + "context" + "fmt" + + "github.com/hashicorp/terraform-plugin-testing/tfjsonpath" +) + +var _ PlanCheck = expectSensitiveValue{} + +type expectSensitiveValue struct { + resourceAddress string + attributePath tfjsonpath.Path +} + +// CheckPlan implements the plan check logic. +func (e expectSensitiveValue) CheckPlan(ctx context.Context, req CheckPlanRequest, resp *CheckPlanResponse) { + + for _, rc := range req.Plan.ResourceChanges { + if e.resourceAddress != rc.Address { + continue + } + + result, err := tfjsonpath.Traverse(rc.Change.AfterSensitive, e.attributePath) + if err != nil { + resp.Error = err + return + } + + isSensitive, ok := result.(bool) + if !ok { + resp.Error = fmt.Errorf("invalid path: the path value cannot be asserted as bool") + return + } + + if !isSensitive { + resp.Error = fmt.Errorf("attribute at path is not sensitive") + return + } + + return + } + + resp.Error = fmt.Errorf("%s - Resource not found in plan ResourceChanges", e.resourceAddress) +} + +// ExpectSensitiveValue returns a plan check that asserts that the specified attribute at the given resource has a sensitive value. +// +// Due to implementation differences between the terraform-plugin-sdk and the terraform-plugin-framework, representation of sensitive +// values may differ. For example, terraform-plugin-sdk based providers may have less precise representations of sensitive values, such +// as marking whole maps as sensitive rather than individual element values. +func ExpectSensitiveValue(resourceAddress string, attributePath tfjsonpath.Path) PlanCheck { + return expectSensitiveValue{ + resourceAddress: resourceAddress, + attributePath: attributePath, + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_unknown_value.go b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_unknown_value.go new file mode 100644 index 000000000000..1569397c21d6 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/expect_unknown_value.go @@ -0,0 +1,61 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package plancheck + +import ( + "context" + "fmt" + + "github.com/hashicorp/terraform-plugin-testing/tfjsonpath" +) + +var _ PlanCheck = expectUnknownValue{} + +type expectUnknownValue struct { + resourceAddress string + attributePath tfjsonpath.Path +} + +// CheckPlan implements the plan check logic. +func (e expectUnknownValue) CheckPlan(ctx context.Context, req CheckPlanRequest, resp *CheckPlanResponse) { + + for _, rc := range req.Plan.ResourceChanges { + if e.resourceAddress != rc.Address { + continue + } + + result, err := tfjsonpath.Traverse(rc.Change.AfterUnknown, e.attributePath) + if err != nil { + resp.Error = err + return + } + + isUnknown, ok := result.(bool) + if !ok { + resp.Error = fmt.Errorf("invalid path: the path value cannot be asserted as bool") + return + } + + if !isUnknown { + resp.Error = fmt.Errorf("attribute at path is known") + return + } + + return + } + + resp.Error = fmt.Errorf("%s - Resource not found in plan ResourceChanges", e.resourceAddress) +} + +// ExpectUnknownValue returns a plan check that asserts that the specified attribute at the given resource has an unknown value. +// +// Due to implementation differences between the terraform-plugin-sdk and the terraform-plugin-framework, representation of unknown +// values may differ. For example, terraform-plugin-sdk based providers may have less precise representations of unknown values, such +// as marking whole maps as unknown rather than individual element values. +func ExpectUnknownValue(resourceAddress string, attributePath tfjsonpath.Path) PlanCheck { + return expectUnknownValue{ + resourceAddress: resourceAddress, + attributePath: attributePath, + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/plan_check.go b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/plan_check.go new file mode 100644 index 000000000000..b6ec0d1997af --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/plan_check.go @@ -0,0 +1,30 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package plancheck + +import ( + "context" + + tfjson "github.com/hashicorp/terraform-json" +) + +// PlanCheck defines an interface for implementing test logic that checks a plan file and then returns an error +// if the plan file does not match what is expected. +type PlanCheck interface { + // CheckPlan should perform the plan check. + CheckPlan(context.Context, CheckPlanRequest, *CheckPlanResponse) +} + +// CheckPlanRequest is a request for an invoke of the CheckPlan function. +type CheckPlanRequest struct { + // Plan represents a parsed plan file, retrieved via the `terraform show -json` command. + Plan *tfjson.Plan +} + +// CheckPlanResponse is a response to an invoke of the CheckPlan function. +type CheckPlanResponse struct { + // Error is used to report the failure of a plan check assertion and is combined with other PlanCheck errors + // to be reported as a test failure. + Error error +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/resource_action.go b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/resource_action.go new file mode 100644 index 000000000000..ff4afebcdb08 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/plancheck/resource_action.go @@ -0,0 +1,50 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package plancheck + +// ResourceActionType is a string enum type that routes to a specific terraform-json.Actions function for asserting resource changes. +// - https://pkg.go.dev/github.com/hashicorp/terraform-json#Actions +// +// More information about expected resource behavior can be found at: https://developer.hashicorp.com/terraform/language/resources/behavior +type ResourceActionType string + +const ( + // ResourceActionNoop occurs when a resource is not planned to change (no-op). + // - Routes to: https://pkg.go.dev/github.com/hashicorp/terraform-json#Actions.NoOp + ResourceActionNoop ResourceActionType = "NoOp" + + // ResourceActionCreate occurs when a resource is planned to be created. + // - Routes to: https://pkg.go.dev/github.com/hashicorp/terraform-json#Actions.Create + ResourceActionCreate ResourceActionType = "Create" + + // ResourceActionRead occurs when a data source is planned to be read during the apply stage (data sources are read during plan stage when possible). + // See the data source documentation for more information on this behavior: https://developer.hashicorp.com/terraform/language/data-sources#data-resource-behavior + // - Routes to: https://pkg.go.dev/github.com/hashicorp/terraform-json#Actions.Read + ResourceActionRead ResourceActionType = "Read" + + // ResourceActionUpdate occurs when a resource is planned to be updated in-place. + // - Routes to: https://pkg.go.dev/github.com/hashicorp/terraform-json#Actions.Update + ResourceActionUpdate ResourceActionType = "Update" + + // ResourceActionDestroy occurs when a resource is planned to be deleted. + // - Routes to: https://pkg.go.dev/github.com/hashicorp/terraform-json#Actions.Delete + ResourceActionDestroy ResourceActionType = "Destroy" + + // ResourceActionDestroyBeforeCreate occurs when a resource is planned to be deleted and then re-created. This is the default + // behavior when terraform must change a resource argument that cannot be updated in-place due to remote API limitations. + // - Routes to: https://pkg.go.dev/github.com/hashicorp/terraform-json#Actions.DestroyBeforeCreate + ResourceActionDestroyBeforeCreate ResourceActionType = "DestroyBeforeCreate" + + // ResourceActionCreateBeforeDestroy occurs when a resource is planned to be created and then deleted. This is opt-in behavior that + // is enabled with the [create_before_destroy] meta-argument. + // - Routes to: https://pkg.go.dev/github.com/hashicorp/terraform-json#Actions.CreateBeforeDestroy + // + // [create_before_destroy]: https://developer.hashicorp.com/terraform/language/meta-arguments/lifecycle#create_before_destroy + ResourceActionCreateBeforeDestroy ResourceActionType = "CreateBeforeDestroy" + + // ResourceActionReplace can be used to verify a resource is planned to be deleted and re-created (where the order of delete and create actions are not important). + // This action matches both ResourceActionDestroyBeforeCreate and ResourceActionCreateBeforeDestroy. + // - Routes to: https://pkg.go.dev/github.com/hashicorp/terraform-json#Actions.Replace + ResourceActionReplace ResourceActionType = "Replace" +) diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/diff.go b/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/diff.go index 967c67944ee2..f70e46e4d04f 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/diff.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/diff.go @@ -35,6 +35,10 @@ const ( var multiVal = regexp.MustCompile(`\.(#|%)$`) // InstanceDiff is the diff of a resource from some state to another. +// +// Deprecated: This type is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. type InstanceDiff struct { mu sync.Mutex Attributes map[string]*ResourceAttrDiff @@ -53,7 +57,14 @@ type InstanceDiff struct { Meta map[string]interface{} } -func (d *InstanceDiff) Lock() { d.mu.Lock() } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. +func (d *InstanceDiff) Lock() { d.mu.Lock() } + +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (d *InstanceDiff) Unlock() { d.mu.Unlock() } // ApplyToValue merges the receiver into the given base value, returning a @@ -62,6 +73,10 @@ func (d *InstanceDiff) Unlock() { d.mu.Unlock() } // // This method is intended for shimming old subsystems that still use this // legacy diff type to work with the new-style types. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (d *InstanceDiff) ApplyToValue(base cty.Value, schema *configschema.Block) (cty.Value, error) { // Create an InstanceState attributes from our existing state. // We can use this to more easily apply the diff changes. @@ -84,6 +99,10 @@ func (d *InstanceDiff) ApplyToValue(base cty.Value, schema *configschema.Block) // // This method is intended for shimming old subsystems that still use this // legacy diff type to work with the new-style types. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (d *InstanceDiff) Apply(attrs map[string]string, schema *configschema.Block) (map[string]string, error) { // We always build a new value here, even if the given diff is "empty", // because we might be planning to create a new instance that happens @@ -604,6 +623,10 @@ func countFlatmapContainerValues(key string, attrs map[string]string) string { } // ResourceAttrDiff is the diff of a single attribute of a resource. +// +// Deprecated: This type is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. type ResourceAttrDiff struct { Old string // Old Value New string // New Value @@ -626,12 +649,19 @@ func (d *ResourceAttrDiff) GoString() string { // "private_ip". type diffAttrType byte +// Deprecated: This function is unintentionally exported by this Go module and +// not supported for external consumption. It will be removed in the next major +// version. func NewInstanceDiff() *InstanceDiff { return &InstanceDiff{Attributes: make(map[string]*ResourceAttrDiff)} } // ChangeType returns the diffChangeType represented by the diff // for this single instance. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (d *InstanceDiff) ChangeType() diffChangeType { if d.Empty() { return diffNone @@ -653,6 +683,10 @@ func (d *InstanceDiff) ChangeType() diffChangeType { } // Empty returns true if this diff encapsulates no changes. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (d *InstanceDiff) Empty() bool { if d == nil { return true @@ -693,6 +727,10 @@ func (d *InstanceDiff) GoString() string { // RequiresNew returns true if the diff requires the creation of a new // resource (implying the destruction of the old). +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (d *InstanceDiff) RequiresNew() bool { if d == nil { return false @@ -722,6 +760,9 @@ func (d *InstanceDiff) requiresNew() bool { return false } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (d *InstanceDiff) GetDestroyDeposed() bool { d.mu.Lock() defer d.mu.Unlock() @@ -729,6 +770,9 @@ func (d *InstanceDiff) GetDestroyDeposed() bool { return d.DestroyDeposed } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (d *InstanceDiff) GetDestroyTainted() bool { d.mu.Lock() defer d.mu.Unlock() @@ -736,6 +780,9 @@ func (d *InstanceDiff) GetDestroyTainted() bool { return d.DestroyTainted } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (d *InstanceDiff) GetDestroy() bool { d.mu.Lock() defer d.mu.Unlock() @@ -743,6 +790,9 @@ func (d *InstanceDiff) GetDestroy() bool { return d.Destroy } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (d *InstanceDiff) GetAttribute(key string) (*ResourceAttrDiff, bool) { d.mu.Lock() defer d.mu.Unlock() @@ -752,6 +802,10 @@ func (d *InstanceDiff) GetAttribute(key string) (*ResourceAttrDiff, bool) { } // Safely copies the Attributes map +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (d *InstanceDiff) CopyAttributes() map[string]*ResourceAttrDiff { d.mu.Lock() defer d.mu.Unlock() @@ -768,6 +822,10 @@ func (d *InstanceDiff) CopyAttributes() map[string]*ResourceAttrDiff { // we say "same", it is not necessarily exactly equal. Instead, it is // just checking that the same attributes are changing, a destroy // isn't suddenly happening, etc. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (d *InstanceDiff) Same(d2 *InstanceDiff) (bool, string) { // we can safely compare the pointers without a lock switch { @@ -892,7 +950,7 @@ func (d *InstanceDiff) Same(d2 *InstanceDiff) (bool, string) { continue } - // If the last diff was a computed value then the absense of + // If the last diff was a computed value then the absence of // that value is allowed since it may mean the value ended up // being the same. if diffOld.NewComputed { diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/resource.go b/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/resource.go index 1adfe6dffc23..0541a5fff67a 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/resource.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/resource.go @@ -20,6 +20,10 @@ import ( // InstanceInfo is used to hold information about the instance and/or // resource being modified. +// +// Deprecated: This type is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. type InstanceInfo struct { // Id is a unique name to represent this instance. This is not related // to InstanceState.ID in any way. @@ -36,6 +40,10 @@ type InstanceInfo struct { // ResourceConfig is a legacy type that was formerly used to represent // interpolatable configuration blocks. It is now only used to shim to old // APIs that still use this type, via NewResourceConfigShimmed. +// +// Deprecated: This type is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. type ResourceConfig struct { ComputedKeys []string Raw map[string]interface{} @@ -48,6 +56,10 @@ type ResourceConfig struct { // The given value may contain hcl2shim.UnknownVariableValue to signal that // something is computed, but it must not contain unprocessed interpolation // sequences as we might've seen in Terraform v0.11 and prior. +// +// Deprecated: This function is unintentionally exported by this Go module and +// not supported for external consumption. It will be removed in the next major +// version. Use real Terraform configuration instead. func NewResourceConfigRaw(raw map[string]interface{}) *ResourceConfig { v := hcl2shim.HCL2ValueFromConfigValue(raw) @@ -58,6 +70,7 @@ func NewResourceConfigRaw(raw map[string]interface{}) *ResourceConfig { // something is relying on the fact that in the old world the raw and // config maps were always distinct, and thus you could in principle mutate // one without affecting the other. (I sure hope nobody was doing that, though!) + //nolint:forcetypeassert cfg := hcl2shim.ConfigValueFromHCL2(v).(map[string]interface{}) return &ResourceConfig{ @@ -78,6 +91,10 @@ func NewResourceConfigRaw(raw map[string]interface{}) *ResourceConfig { // // If the given value is not of an object type that conforms to the given // schema then this function will panic. +// +// Deprecated: This function is unintentionally exported by this Go module and +// not supported for external consumption. It will be removed in the next major +// version. func NewResourceConfigShimmed(val cty.Value, schema *configschema.Block) *ResourceConfig { if !val.Type().IsObjectType() { panic(fmt.Errorf("NewResourceConfigShimmed given %#v; an object type is required", val.Type())) @@ -150,6 +167,10 @@ func newResourceConfigShimmedComputedKeys(val cty.Value, path string) []string { // DeepCopy performs a deep copy of the configuration. This makes it safe // to modify any of the structures that are part of the resource config without // affecting the original configuration. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (c *ResourceConfig) DeepCopy() *ResourceConfig { // DeepCopying a nil should return a nil to avoid panics if c == nil { @@ -163,7 +184,10 @@ func (c *ResourceConfig) DeepCopy() *ResourceConfig { } // Force the type - result := copiedConfig.(*ResourceConfig) + result, ok := copiedConfig.(*ResourceConfig) + if !ok { + panic(fmt.Errorf("unexpected type %T for copiedConfig", copiedConfig)) + } return result } @@ -202,6 +226,10 @@ func (c *ResourceConfig) Equal(c2 *ResourceConfig) bool { // The second return value is true if the get was successful. Get will // return the raw value if the key is computed, so you should pair this // with IsComputed. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (c *ResourceConfig) Get(k string) (interface{}, bool) { // We aim to get a value from the configuration. If it is computed, // then we return the pure raw value. @@ -218,11 +246,19 @@ func (c *ResourceConfig) Get(k string) (interface{}, bool) { // // The second return value is true if the get was successful. Get will // not succeed if the value is being computed. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (c *ResourceConfig) GetRaw(k string) (interface{}, bool) { return c.get(k, c.Raw) } // IsComputed returns whether the given key is computed or not. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (c *ResourceConfig) IsComputed(k string) bool { // The next thing we do is check the config if we get a computed // value out of it. diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/resource_provider.go b/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/resource_provider.go index c8e7008c0a8d..6de283544bb9 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/resource_provider.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/resource_provider.go @@ -4,6 +4,10 @@ package terraform // ResourceType is a type of resource that a resource provider can manage. +// +// Deprecated: This type is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. type ResourceType struct { Name string // Name of the resource, example "instance" (no provider prefix) Importable bool // Whether this resource supports importing @@ -17,6 +21,10 @@ type ResourceType struct { } // DataSource is a data source that a resource provider implements. +// +// Deprecated: This type is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. type DataSource struct { Name string diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/schemas.go b/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/schemas.go index a1b61f181b75..1cec2eb6fe82 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/schemas.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/schemas.go @@ -13,6 +13,10 @@ import ( // The completeness of this structure depends on how it was constructed. // When constructed for a configuration, it will generally include only // resource types and data sources used by that configuration. +// +// Deprecated: This type is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. type ProviderSchema struct { Provider *configschema.Block ResourceTypes map[string]*configschema.Block @@ -23,6 +27,10 @@ type ProviderSchema struct { // ProviderSchemaRequest is used to describe to a ResourceProvider which // aspects of schema are required, when calling the GetSchema method. +// +// Deprecated: This type is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. type ProviderSchemaRequest struct { ResourceTypes []string DataSources []string diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/state.go b/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/state.go index 9041d7ae9e7b..1e0fcb285778 100644 --- a/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/state.go +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/terraform/state.go @@ -92,11 +92,19 @@ type State struct { // Remote is used to track the metadata required to // pull and push state files from a remote storage endpoint. + // + // Deprecated: This field is unintentionally exported by this Go module and + // external consumption is not supported. It will be removed in the next + // major version. Remote *RemoteState `json:"remote,omitempty"` // Backend tracks the configuration for the backend in use with // this state. This is used to track any changes in the backend // configuration. + // + // Deprecated: This field is unintentionally exported by this Go module and + // external consumption is not supported. It will be removed in the next + // major version. Backend *BackendState `json:"backend,omitempty"` // Modules contains all the modules in a breadth-first order @@ -106,13 +114,28 @@ type State struct { // IsBinaryDrivenTest is a special flag that assists with a binary driver // heuristic, it should not be set externally + // + // Deprecated: This field is unintentionally exported by this Go module and + // external consumption is not supported. It will be removed in the next + // major version. IsBinaryDrivenTest bool } -func (s *State) Lock() { s.mu.Lock() } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. +func (s *State) Lock() { s.mu.Lock() } + +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) Unlock() { s.mu.Unlock() } // NewState is used to initialize a blank state +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func NewState() *State { s := &State{} s.init() @@ -122,6 +145,10 @@ func NewState() *State { // Children returns the ModuleStates that are direct children of // the given path. If the path is "root", for example, then children // returned might be "root.child", but not "root.child.grandchild". +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) Children(path []string) []*ModuleState { s.Lock() defer s.Unlock() @@ -154,6 +181,10 @@ func (s *State) children(path []string) []*ModuleState { // // This should be the preferred method to add module states since it // allows us to optimize lookups later as well as control sorting. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) AddModule(path addrs.ModuleInstance) *ModuleState { s.Lock() defer s.Unlock() @@ -200,6 +231,10 @@ func (s *State) addModule(path addrs.ModuleInstance) *ModuleState { // ModuleByPath is used to lookup the module state for the given path. // This should be the preferred lookup mechanism as it allows for future // lookup optimizations. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) ModuleByPath(path addrs.ModuleInstance) *ModuleState { if s == nil { return nil @@ -227,6 +262,10 @@ func (s *State) moduleByPath(path addrs.ModuleInstance) *ModuleState { } // Empty returns true if the state is empty. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) Empty() bool { if s == nil { return true @@ -241,6 +280,10 @@ func (s *State) Empty() bool { // // This is similar to !s.Empty, but returns true also in the case where the // state has modules but all of them are devoid of resources. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) HasResources() bool { if s.Empty() { return false @@ -257,6 +300,10 @@ func (s *State) HasResources() bool { // IsRemote returns true if State represents a state that exists and is // remote. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) IsRemote() bool { if s == nil { return false @@ -283,6 +330,10 @@ func (s *State) IsRemote() bool { // // If this returns an error, then the user should be notified. The error // response will include detailed information on the nature of the error. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) Validate() error { s.Lock() defer s.Unlock() @@ -327,6 +378,10 @@ func (s *State) Validate() error { // If the address references a module state or resource, it will delete // all children as well. To check what will be deleted, use a StateFilter // first. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) Remove(addr ...string) error { s.Lock() defer s.Unlock() @@ -373,6 +428,7 @@ func (s *State) Remove(addr ...string) error { case *ResourceState: s.removeResource(path, v) case *InstanceState: + //nolint:forcetypeassert s.removeInstance(r.Parent.Value.(*ResourceState), v) default: return fmt.Errorf("unknown type to delete: %T", r.Value) @@ -436,6 +492,10 @@ func (s *State) RootModule() *ModuleState { } // Equal tests if one state is equal to another. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) Equal(other *State) bool { // If one is nil, we do a direct check if s == nil || other == nil { @@ -477,6 +537,9 @@ func (s *State) equal(other *State) bool { return true } +// Deprecated: This type is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. type StateAgeComparison int const ( @@ -497,6 +560,10 @@ const ( // the argument, positive if the converse, and zero if they are equal. // An error is returned if the two states are not of the same lineage, // in which case the integer returned has no meaning. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) CompareAges(other *State) (StateAgeComparison, error) { // nil states are "older" than actual states switch { @@ -529,6 +596,10 @@ func (s *State) CompareAges(other *State) (StateAgeComparison, error) { // SameLineage returns true only if the state given in argument belongs // to the same "lineage" of states as the receiver. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) SameLineage(other *State) bool { s.Lock() defer s.Unlock() @@ -546,6 +617,10 @@ func (s *State) SameLineage(other *State) bool { // DeepCopy performs a deep copy of the state structure and returns // a new structure. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) DeepCopy() *State { if s == nil { return nil @@ -556,9 +631,17 @@ func (s *State) DeepCopy() *State { panic(err) } - return copiedState.(*State) + state, ok := copiedState.(*State) + if !ok { + panic(fmt.Errorf("unexpected type %T for copiedState", state)) + } + + return state } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) Init() { s.Lock() defer s.Unlock() @@ -587,6 +670,9 @@ func (s *State) init() { } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) EnsureHasLineage() { s.Lock() defer s.Unlock() @@ -612,6 +698,10 @@ func (s *State) ensureHasLineage() { } // AddModuleState insert this module state and override any existing ModuleState +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *State) AddModuleState(mod *ModuleState) { mod.init() s.Lock() @@ -703,6 +793,10 @@ func (s *State) String() string { } // BackendState stores the configuration to connect to a remote backend. +// +// Deprecated: This type is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. type BackendState struct { Type string `json:"type"` // Backend type ConfigRaw json.RawMessage `json:"config"` // Backend raw config @@ -711,6 +805,10 @@ type BackendState struct { // RemoteState is used to track the information about a remote // state store that we push/pull state to. +// +// Deprecated: This type is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. type RemoteState struct { // Type controls the client we use for the remote state Type string `json:"type"` @@ -722,7 +820,14 @@ type RemoteState struct { mu sync.Mutex } -func (s *RemoteState) Lock() { s.mu.Lock() } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. +func (s *RemoteState) Lock() { s.mu.Lock() } + +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *RemoteState) Unlock() { s.mu.Unlock() } func (r *RemoteState) init() { @@ -734,6 +839,9 @@ func (r *RemoteState) init() { } } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (r *RemoteState) Empty() bool { if r == nil { return true @@ -759,7 +867,14 @@ type OutputState struct { mu sync.Mutex } -func (s *OutputState) Lock() { s.mu.Lock() } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. +func (s *OutputState) Lock() { s.mu.Lock() } + +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *OutputState) Unlock() { s.mu.Unlock() } func (s *OutputState) String() string { @@ -768,6 +883,10 @@ func (s *OutputState) String() string { // Equal compares two OutputState structures for equality. nil values are // considered equal. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *OutputState) Equal(other *OutputState) bool { if s == nil && other == nil { return true @@ -834,7 +953,14 @@ type ModuleState struct { mu sync.Mutex } -func (s *ModuleState) Lock() { s.mu.Lock() } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. +func (s *ModuleState) Lock() { s.mu.Lock() } + +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *ModuleState) Unlock() { s.mu.Unlock() } // Equal tests whether one module state is equal to another. @@ -1196,7 +1322,14 @@ type ResourceState struct { mu sync.Mutex } -func (s *ResourceState) Lock() { s.mu.Lock() } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. +func (s *ResourceState) Lock() { s.mu.Lock() } + +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *ResourceState) Unlock() { s.mu.Unlock() } // Equal tests whether two ResourceStates are equal. @@ -1317,7 +1450,14 @@ type InstanceState struct { mu sync.Mutex } -func (s *InstanceState) Lock() { s.mu.Lock() } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. +func (s *InstanceState) Lock() { s.mu.Lock() } + +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *InstanceState) Unlock() { s.mu.Unlock() } func (s *InstanceState) init() { @@ -1338,6 +1478,10 @@ func (s *InstanceState) init() { // legacy InstanceState representation. // // This is for shimming to old components only and should not be used in new code. +// +// Deprecated: This function is unintentionally exported by this Go module and +// not supported for external consumption. It will be removed in the next major +// version. func NewInstanceStateShimmedFromValue(state cty.Value, schemaVersion int) *InstanceState { attrs := hcl2shim.FlatmapValueFromHCL2(state) return &InstanceState{ @@ -1358,6 +1502,10 @@ func NewInstanceStateShimmedFromValue(state cty.Value, schemaVersion int) *Insta // // This is for shimming from old components only and should not be used in // new code. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *InstanceState) AttrsAsObjectValue(ty cty.Type) (cty.Value, error) { if s == nil { // if the state is nil, we need to construct a complete cty.Value with @@ -1379,6 +1527,10 @@ func (s *InstanceState) AttrsAsObjectValue(ty cty.Type) (cty.Value, error) { } // Copy all the Fields from another InstanceState +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *InstanceState) Set(from *InstanceState) { s.Lock() defer s.Unlock() @@ -1393,15 +1545,26 @@ func (s *InstanceState) Set(from *InstanceState) { s.Tainted = from.Tainted } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *InstanceState) DeepCopy() *InstanceState { copiedState, err := copystructure.Config{Lock: true}.Copy(s) if err != nil { panic(err) } - return copiedState.(*InstanceState) + instanceState, ok := copiedState.(*InstanceState) + if !ok { + panic(fmt.Errorf("unexpected type %T for copiedState", copiedState)) + } + + return instanceState } +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *InstanceState) Empty() bool { if s == nil { return true @@ -1481,6 +1644,10 @@ func (s *InstanceState) Equal(other *InstanceState) bool { // If the diff attribute requires computing the value, and hence // won't be available until apply, the value is replaced with the // computeID. +// +// Deprecated: This method is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. func (s *InstanceState) MergeDiff(d *InstanceDiff) *InstanceState { result := s.DeepCopy() if result == nil { @@ -1553,6 +1720,10 @@ func (s *InstanceState) String() string { } // EphemeralState is used for transient state that is only kept in-memory +// +// Deprecated: This type is unintentionally exported by this Go module and not +// supported for external consumption. It will be removed in the next major +// version. type EphemeralState struct { // ConnInfo is used for the providers to export information which is // used to connect to the resource for provisioning. For example, diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfjsonpath/doc.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfjsonpath/doc.go new file mode 100644 index 000000000000..4b1a4923b93a --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfjsonpath/doc.go @@ -0,0 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Package tfjsonpath implements terraform-json path functionality, which defines +// traversals into Terraform JSON data, for testing purposes. +package tfjsonpath diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfjsonpath/path.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfjsonpath/path.go new file mode 100644 index 000000000000..ef3930dfb5f7 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfjsonpath/path.go @@ -0,0 +1,107 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfjsonpath + +import ( + "fmt" +) + +// Path represents exact traversal steps specifying a value inside +// Terraform JSON data. These steps always start from a MapStep with a key +// specifying the name of a top-level JSON object or array. +// +// The [terraform-json] library serves as the de facto documentation +// for JSON format of Terraform data. +// +// Use the New() function to create a Path with an initial AtMapKey() step. +// Path functionality follows a builder pattern, which allows for chaining method +// calls to construct a full path. The available traversal steps after Path +// creation are: +// +// - AtSliceIndex(): Step into a slice at a specific 0-based index +// - AtMapKey(): Step into a map at a specific key +// +// For example, to represent the first element of a JSON array +// underneath a "some_array" property of this JSON value: +// +// { +// "some_array": [true] +// } +// +// The path code would be represented by: +// +// tfjsonpath.New("some_array").AtSliceIndex(0) +// +// [terraform-json]: (https://pkg.go.dev/github.com/hashicorp/terraform-json) +type Path struct { + steps []step +} + +// New creates a new path with an initial MapStep. +func New(name string) Path { + return Path{ + steps: []step{ + MapStep(name), + }, + } +} + +// AtSliceIndex returns a copied Path with a new SliceStep at the end. +func (s Path) AtSliceIndex(index int) Path { + newSteps := append(s.steps, SliceStep(index)) + s.steps = newSteps + return s +} + +// AtMapKey returns a copied Path with a new MapStep at the end. +func (s Path) AtMapKey(key string) Path { + newSteps := append(s.steps, MapStep(key)) + s.steps = newSteps + return s +} + +// Traverse returns the element found when traversing the given +// object using the specified Path. The object is an unmarshalled +// JSON object representing Terraform data. +// +// Traverse returns an error if the value specified by the Path +// is not found in the given object or if the given object does not +// conform to format of Terraform JSON data. +func Traverse(object any, attrPath Path) (any, error) { + _, ok := object.(map[string]any) + + if !ok { + return nil, fmt.Errorf("cannot convert given object to map[string]any") + } + + result := object + + for _, step := range attrPath.steps { + switch s := step.(type) { + case MapStep: + mapObj, ok := result.(map[string]any) + if !ok { + return nil, fmt.Errorf("path not found: cannot convert object at MapStep %s to map[string]any", string(s)) + } + result, ok = mapObj[string(s)] + if !ok { + return nil, fmt.Errorf("path not found: specified key %s not found in map", string(s)) + } + + case SliceStep: + sliceObj, ok := result.([]any) + if !ok { + return nil, fmt.Errorf("path not found: cannot convert object at SliceStep %d to []any", s) + } + + if int(s) >= len(sliceObj) { + return nil, fmt.Errorf("path not found: SliceStep index %d is out of range with slice length %d", s, len(sliceObj)) + } + + result = sliceObj[s] + } + } + + return result, nil +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfjsonpath/step.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfjsonpath/step.go new file mode 100644 index 000000000000..7b6813d60e81 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfjsonpath/step.go @@ -0,0 +1,14 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfjsonpath + +// step represents a traversal type indicating the underlying Go type +// representation for a Terraform JSON value. +type step interface{} + +// MapStep represents a traversal for map[string]any +type MapStep string + +// SliceStep represents a traversal for []any +type SliceStep int diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/all.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/all.go new file mode 100644 index 000000000000..78e1f1780198 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/all.go @@ -0,0 +1,45 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfversion + +import ( + "context" +) + +// All will return the first non-nil error or non-empty skip message +// if any of the given checks return a non-nil error or non-empty skip message. +// Otherwise, it will return a nil error and empty skip message (run the test) +// +// Use of All is only necessary when used in conjunction with Any as the +// TerraformVersionChecks field automatically applies a logical AND. +func All(terraformVersionChecks ...TerraformVersionCheck) TerraformVersionCheck { + return allCheck{ + terraformVersionChecks: terraformVersionChecks, + } +} + +// allCheck implements the TerraformVersionCheck interface +type allCheck struct { + terraformVersionChecks []TerraformVersionCheck +} + +// CheckTerraformVersion satisfies the TerraformVersionCheck interface. +func (a allCheck) CheckTerraformVersion(ctx context.Context, req CheckTerraformVersionRequest, resp *CheckTerraformVersionResponse) { + + for _, subCheck := range a.terraformVersionChecks { + checkResp := CheckTerraformVersionResponse{} + + subCheck.CheckTerraformVersion(ctx, CheckTerraformVersionRequest{TerraformVersion: req.TerraformVersion}, &checkResp) + + if checkResp.Error != nil { + resp.Error = checkResp.Error + return + } + + if checkResp.Skip != "" { + resp.Skip = checkResp.Skip + return + } + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/any.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/any.go new file mode 100644 index 000000000000..27088e1a58aa --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/any.go @@ -0,0 +1,59 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfversion + +import ( + "context" + "strings" + + "github.com/hashicorp/terraform-plugin-testing/internal/errorshim" +) + +// Any will return a nil error and empty skip message (run the test) +// if any of the given checks return a nil error and empty skip message. +// Otherwise, it will return all errors and fail the test if any of the given +// checks return a non-nil error, or it will return all skip messages +// and skip (pass) the test. +func Any(terraformVersionChecks ...TerraformVersionCheck) TerraformVersionCheck { + return anyCheck{ + terraformVersionChecks: terraformVersionChecks, + } +} + +// anyCheck implements the TerraformVersionCheck interface +type anyCheck struct { + terraformVersionChecks []TerraformVersionCheck +} + +// CheckTerraformVersion satisfies the TerraformVersionCheck interface. +func (a anyCheck) CheckTerraformVersion(ctx context.Context, req CheckTerraformVersionRequest, resp *CheckTerraformVersionResponse) { + var joinedErrors error + strBuilder := strings.Builder{} + + for _, subCheck := range a.terraformVersionChecks { + checkResp := CheckTerraformVersionResponse{} + + subCheck.CheckTerraformVersion(ctx, CheckTerraformVersionRequest{TerraformVersion: req.TerraformVersion}, &checkResp) + + if checkResp.Error == nil && checkResp.Skip == "" { + resp.Error = nil + resp.Skip = "" + return + } + + if checkResp.Error != nil { + // TODO: Once Go 1.20 is the minimum supported version for this module, replace with `errors.Join` function + // - https://github.com/hashicorp/terraform-plugin-testing/issues/99 + joinedErrors = errorshim.Join(joinedErrors, checkResp.Error) + } + + if checkResp.Skip != "" { + strBuilder.WriteString(checkResp.Skip) + strBuilder.WriteString("\n") + } + } + + resp.Error = joinedErrors + resp.Skip = strings.TrimSpace(strBuilder.String()) +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/doc.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/doc.go new file mode 100644 index 000000000000..d73b474d2545 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/doc.go @@ -0,0 +1,5 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Package tfversion contains the Terraform version check interface, request/response structs, and common version check implementations. +package tfversion diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_above.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_above.go new file mode 100644 index 000000000000..4734bcf6ebf2 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_above.go @@ -0,0 +1,35 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfversion + +import ( + "context" + "fmt" + + "github.com/hashicorp/go-version" +) + +// RequireAbove will fail the test if the Terraform CLI +// version is below the given version. For example, if given +// version.Must(version.NewVersion("0.15.0")), then 0.14.x or +// any other prior minor versions will fail the test. +func RequireAbove(minimumVersion *version.Version) TerraformVersionCheck { + return requireAboveCheck{ + minimumVersion: minimumVersion, + } +} + +// requireAboveCheck implements the TerraformVersionCheck interface +type requireAboveCheck struct { + minimumVersion *version.Version +} + +// CheckTerraformVersion satisfies the TerraformVersionCheck interface. +func (r requireAboveCheck) CheckTerraformVersion(ctx context.Context, req CheckTerraformVersionRequest, resp *CheckTerraformVersionResponse) { + + if req.TerraformVersion.LessThan(r.minimumVersion) { + resp.Error = fmt.Errorf("expected Terraform CLI version above %s but detected version is %s", + r.minimumVersion, req.TerraformVersion) + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_below.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_below.go new file mode 100644 index 000000000000..99efa53468cb --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_below.go @@ -0,0 +1,35 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfversion + +import ( + "context" + "fmt" + + "github.com/hashicorp/go-version" +) + +// RequireBelow will fail the test if the Terraform CLI +// version is above the given version. For example, if given +// version.Must(version.NewVersion("0.15.0")), then versions 0.15.x and +// above will fail the test. +func RequireBelow(maximumVersion *version.Version) TerraformVersionCheck { + return requireBelowCheck{ + maximumVersion: maximumVersion, + } +} + +// requireBelowCheck implements the TerraformVersionCheck interface +type requireBelowCheck struct { + maximumVersion *version.Version +} + +// CheckTerraformVersion satisfies the TerraformVersionCheck interface. +func (s requireBelowCheck) CheckTerraformVersion(ctx context.Context, req CheckTerraformVersionRequest, resp *CheckTerraformVersionResponse) { + + if req.TerraformVersion.GreaterThan(s.maximumVersion) { + resp.Error = fmt.Errorf("expected Terraform CLI version below %s but detected version is %s", + s.maximumVersion, req.TerraformVersion) + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_between.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_between.go new file mode 100644 index 000000000000..b992979280ef --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_between.go @@ -0,0 +1,38 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfversion + +import ( + "context" + "fmt" + + "github.com/hashicorp/go-version" +) + +// RequireBetween will fail the test if the Terraform CLI +// version is outside the given minimum (exclusive) and maximum (inclusive). +// For example, if given a minimum version of version.Must(version.NewVersion("0.15.0")) +// and a maximum version of version.Must(version.NewVersion("1.0.0")), then 0.15.x or +// any other prior versions and versions greater than 1.0.0 will fail the test. +func RequireBetween(minimumVersion, maximumVersion *version.Version) TerraformVersionCheck { + return requireBetweenCheck{ + minimumVersion: minimumVersion, + maximumVersion: maximumVersion, + } +} + +// requireBetweenCheck implements the TerraformVersionCheck interface +type requireBetweenCheck struct { + minimumVersion *version.Version + maximumVersion *version.Version +} + +// CheckTerraformVersion satisfies the TerraformVersionCheck interface. +func (s requireBetweenCheck) CheckTerraformVersion(ctx context.Context, req CheckTerraformVersionRequest, resp *CheckTerraformVersionResponse) { + + if req.TerraformVersion.LessThan(s.minimumVersion) || req.TerraformVersion.GreaterThanOrEqual(s.maximumVersion) { + resp.Error = fmt.Errorf("expected Terraform CLI version between %s and %s but detected version is %s", + s.minimumVersion, s.maximumVersion, req.TerraformVersion) + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_not.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_not.go new file mode 100644 index 000000000000..18a9b68d13fe --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/require_not.go @@ -0,0 +1,32 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfversion + +import ( + "context" + "fmt" + + "github.com/hashicorp/go-version" +) + +// RequireNot will fail the test if the Terraform CLI +// version matches the given version. +func RequireNot(version *version.Version) TerraformVersionCheck { + return requireNotCheck{ + version: version, + } +} + +// requireNotCheck implements the TerraformVersionCheck interface +type requireNotCheck struct { + version *version.Version +} + +// CheckTerraformVersion satisfies the TerraformVersionCheck interface. +func (s requireNotCheck) CheckTerraformVersion(ctx context.Context, req CheckTerraformVersionRequest, resp *CheckTerraformVersionResponse) { + + if req.TerraformVersion.Equal(s.version) { + resp.Error = fmt.Errorf("unexpected Terraform CLI version: %s", s.version) + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_above.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_above.go new file mode 100644 index 000000000000..ffc69b857be4 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_above.go @@ -0,0 +1,35 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfversion + +import ( + "context" + "fmt" + + "github.com/hashicorp/go-version" +) + +// SkipAbove will skip (pass) the test if the Terraform CLI +// version is below the given version. For example, if given +// version.Must(version.NewVersion("0.15.0")), then 0.14.x or +// any other prior minor versions will skip the test. +func SkipAbove(maximumVersion *version.Version) TerraformVersionCheck { + return skipAboveCheck{ + maximumVersion: maximumVersion, + } +} + +// skipAboveCheck implements the TerraformVersionCheck interface +type skipAboveCheck struct { + maximumVersion *version.Version +} + +// CheckTerraformVersion satisfies the TerraformVersionCheck interface. +func (s skipAboveCheck) CheckTerraformVersion(ctx context.Context, req CheckTerraformVersionRequest, resp *CheckTerraformVersionResponse) { + + if req.TerraformVersion.GreaterThan(s.maximumVersion) { + resp.Skip = fmt.Sprintf("Terraform CLI version %s is above maximum version %s: skipping test", + req.TerraformVersion, s.maximumVersion) + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_below.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_below.go new file mode 100644 index 000000000000..0b3dffddcbf4 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_below.go @@ -0,0 +1,35 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfversion + +import ( + "context" + "fmt" + + "github.com/hashicorp/go-version" +) + +// SkipBelow will skip (pass) the test if the Terraform CLI +// version is below the given version. For example, if given +// version.Must(version.NewVersion("0.15.0")), then 0.14.x or +// any other prior minor versions will skip the test. +func SkipBelow(minimumVersion *version.Version) TerraformVersionCheck { + return skipBelowCheck{ + minimumVersion: minimumVersion, + } +} + +// skipBelowCheck implements the TerraformVersionCheck interface +type skipBelowCheck struct { + minimumVersion *version.Version +} + +// CheckTerraformVersion satisfies the TerraformVersionCheck interface. +func (s skipBelowCheck) CheckTerraformVersion(ctx context.Context, req CheckTerraformVersionRequest, resp *CheckTerraformVersionResponse) { + + if req.TerraformVersion.LessThan(s.minimumVersion) { + resp.Skip = fmt.Sprintf("Terraform CLI version %s is below minimum version %s: skipping test", + req.TerraformVersion, s.minimumVersion) + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_between.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_between.go new file mode 100644 index 000000000000..fb6e941082c5 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_between.go @@ -0,0 +1,38 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfversion + +import ( + "context" + "fmt" + + "github.com/hashicorp/go-version" +) + +// SkipBetween will skip the test if the Terraform CLI +// version is between the given minimum (inclusive) and maximum (exclusive). +// For example, if given a minimum version of version.Must(version.NewVersion("0.15.0")) +// and a maximum version of version.Must(version.NewVersion("0.16.0")), then versions 0.15.x +// will skip the test. +func SkipBetween(minimumVersion, maximumVersion *version.Version) TerraformVersionCheck { + return skipBetweenCheck{ + minimumVersion: minimumVersion, + maximumVersion: maximumVersion, + } +} + +// skipBetweenCheck implements the TerraformVersionCheck interface +type skipBetweenCheck struct { + minimumVersion *version.Version + maximumVersion *version.Version +} + +// CheckTerraformVersion satisfies the TerraformVersionCheck interface. +func (s skipBetweenCheck) CheckTerraformVersion(ctx context.Context, req CheckTerraformVersionRequest, resp *CheckTerraformVersionResponse) { + + if req.TerraformVersion.GreaterThanOrEqual(s.minimumVersion) && req.TerraformVersion.LessThan(s.maximumVersion) { + resp.Skip = fmt.Sprintf("Terraform CLI version %s is between %s and %s: skipping test.", + req.TerraformVersion, s.minimumVersion, s.maximumVersion) + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_if.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_if.go new file mode 100644 index 000000000000..6ece5e05d502 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/skip_if.go @@ -0,0 +1,32 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfversion + +import ( + "context" + "fmt" + + "github.com/hashicorp/go-version" +) + +// SkipIf will skip (pass) the test if the Terraform CLI +// version matches the given version. +func SkipIf(version *version.Version) TerraformVersionCheck { + return skipIfCheck{ + version: version, + } +} + +// skipIfCheck implements the TerraformVersionCheck interface +type skipIfCheck struct { + version *version.Version +} + +// CheckTerraformVersion satisfies the TerraformVersionCheck interface. +func (s skipIfCheck) CheckTerraformVersion(ctx context.Context, req CheckTerraformVersionRequest, resp *CheckTerraformVersionResponse) { + + if req.TerraformVersion.Equal(s.version) { + resp.Skip = fmt.Sprintf("Terraform CLI version is %s: skipping test.", s.version) + } +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/version_check.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/version_check.go new file mode 100644 index 000000000000..554ec2247d65 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/version_check.go @@ -0,0 +1,39 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfversion + +import ( + "context" + + "github.com/hashicorp/go-version" +) + +// TerraformVersionCheck is the interface for writing check logic against the Terraform CLI version. +// The Terraform CLI version is determined by the binary selected by the TF_ACC_TERRAFORM_PATH environment +// variable value, installed by the TF_ACC_TERRAFORM_VERSION value, or already existing based on the PATH environment +// variable. This logic is executed at the beginning of the TestCase before any TestStep is executed. +// +// This package contains some built-in functionality that implements the interface, otherwise consumers can use this +// interface for implementing their own custom logic. +type TerraformVersionCheck interface { + // CheckTerraformVersion should implement the logic to either pass, error (failing the test), or skip (passing the test). + CheckTerraformVersion(context.Context, CheckTerraformVersionRequest, *CheckTerraformVersionResponse) +} + +// CheckTerraformVersionRequest is the request received for the CheckTerraformVersion method of the +// TerraformVersionCheck interface. The response of that method is CheckTerraformVersionResponse. +type CheckTerraformVersionRequest struct { + // TerraformVersion is the version associated with the selected Terraform CLI binary. + TerraformVersion *version.Version +} + +// CheckTerraformVersionResponse is the response returned for the CheckTerraformVersion method of the +// TerraformVersionCheck interface. The request of that method is CheckTerraformVersionRequest. +type CheckTerraformVersionResponse struct { + // Error will result in failing the test with a given error message. + Error error + + // Skip will result in passing the test with a given skip message. + Skip string +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/versions.go b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/versions.go new file mode 100644 index 000000000000..6cd04b27f0a5 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-testing/tfversion/versions.go @@ -0,0 +1,32 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package tfversion + +import "github.com/hashicorp/go-version" + +// Common use version variables to simplify provider testing implementations. +// This list is not intended to be exhaustive of all Terraform versions, +// however these should at least include cases where Terraform +// introduced new configuration language features. +var ( + // Version0_12_26 is the first Terraform CLI version supported + // by the testing code. + Version0_12_26 *version.Version = version.Must(version.NewVersion("0.12.26")) + + // Major versions + + Version1_0_0 *version.Version = version.Must(version.NewVersion("1.0.0")) + Version2_0_0 *version.Version = version.Must(version.NewVersion("2.0.0")) + + // Minor versions + + Version0_13_0 *version.Version = version.Must(version.NewVersion("0.13.0")) + Version0_14_0 *version.Version = version.Must(version.NewVersion("0.14.0")) + Version0_15_0 *version.Version = version.Must(version.NewVersion("0.15.0")) + Version1_1_0 *version.Version = version.Must(version.NewVersion("1.1.0")) + Version1_2_0 *version.Version = version.Must(version.NewVersion("1.2.0")) + Version1_3_0 *version.Version = version.Must(version.NewVersion("1.3.0")) + Version1_4_0 *version.Version = version.Must(version.NewVersion("1.4.0")) + Version1_5_0 *version.Version = version.Must(version.NewVersion("1.5.0")) +) diff --git a/vendor/github.com/hashicorp/terraform-registry-address/.copywrite.hcl b/vendor/github.com/hashicorp/terraform-registry-address/.copywrite.hcl new file mode 100644 index 000000000000..235a80dc4628 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-registry-address/.copywrite.hcl @@ -0,0 +1,7 @@ +schema_version = 1 + +project { + license = "MPL-2.0" + copyright_year = 2021 + header_ignore = [] +} diff --git a/vendor/github.com/hashicorp/terraform-registry-address/.go-version b/vendor/github.com/hashicorp/terraform-registry-address/.go-version index adc97d8e2213..bc4493477aed 100644 --- a/vendor/github.com/hashicorp/terraform-registry-address/.go-version +++ b/vendor/github.com/hashicorp/terraform-registry-address/.go-version @@ -1 +1 @@ -1.18 +1.19 diff --git a/vendor/github.com/hashicorp/terraform-registry-address/errors.go b/vendor/github.com/hashicorp/terraform-registry-address/errors.go index 1ca735383a6f..cf977115a558 100644 --- a/vendor/github.com/hashicorp/terraform-registry-address/errors.go +++ b/vendor/github.com/hashicorp/terraform-registry-address/errors.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfaddr import ( diff --git a/vendor/github.com/hashicorp/terraform-registry-address/module.go b/vendor/github.com/hashicorp/terraform-registry-address/module.go index 6af0c5976b54..f000a7410ee7 100644 --- a/vendor/github.com/hashicorp/terraform-registry-address/module.go +++ b/vendor/github.com/hashicorp/terraform-registry-address/module.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfaddr import ( diff --git a/vendor/github.com/hashicorp/terraform-registry-address/module_package.go b/vendor/github.com/hashicorp/terraform-registry-address/module_package.go index d8ad2534a096..be065966138d 100644 --- a/vendor/github.com/hashicorp/terraform-registry-address/module_package.go +++ b/vendor/github.com/hashicorp/terraform-registry-address/module_package.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfaddr import ( diff --git a/vendor/github.com/hashicorp/terraform-registry-address/provider.go b/vendor/github.com/hashicorp/terraform-registry-address/provider.go index 23e1e221f2f7..7fb252ea222b 100644 --- a/vendor/github.com/hashicorp/terraform-registry-address/provider.go +++ b/vendor/github.com/hashicorp/terraform-registry-address/provider.go @@ -1,3 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + package tfaddr import ( diff --git a/vendor/github.com/hashicorp/terraform-svchost/CHANGELOG.md b/vendor/github.com/hashicorp/terraform-svchost/CHANGELOG.md new file mode 100644 index 000000000000..ed9f9932a933 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-svchost/CHANGELOG.md @@ -0,0 +1,13 @@ +## v0.1.1 + +The `disco.Disco` and `auth.CachingCredentialsSource` implementations are now safe for concurrent calls. Previously concurrent calls could potentially corrupt the internal cache maps or cause the Go runtime to panic. + +## v0.1.0 + +#### Features: + +- Adds hostname `Alias` method to service discovery, making it possible to interpret one hostname as another. + +## v0.0.1 + +Initial release diff --git a/vendor/github.com/hashicorp/terraform-svchost/CONTRIBUTING.md b/vendor/github.com/hashicorp/terraform-svchost/CONTRIBUTING.md new file mode 100644 index 000000000000..c12e3bb41a77 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-svchost/CONTRIBUTING.md @@ -0,0 +1,3 @@ +# Contributing to the svchost library + +If you find an issue or would like to add a feature, please add an issue in GitHub. We welcome your contributions - fork the repo and submit a pull request. diff --git a/vendor/github.com/hashicorp/terraform-svchost/LICENSE b/vendor/github.com/hashicorp/terraform-svchost/LICENSE index 82b4de97c7e3..342bbb5bb918 100644 --- a/vendor/github.com/hashicorp/terraform-svchost/LICENSE +++ b/vendor/github.com/hashicorp/terraform-svchost/LICENSE @@ -1,3 +1,5 @@ +Copyright (c) 2019 HashiCorp, Inc. + Mozilla Public License, version 2.0 1. Definitions diff --git a/vendor/github.com/hashicorp/terraform-svchost/README.md b/vendor/github.com/hashicorp/terraform-svchost/README.md new file mode 100644 index 000000000000..3a12f013be49 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-svchost/README.md @@ -0,0 +1,9 @@ +# terraform-svchost + +[![CI Tests](https://github.com/hashicorp/terraform-svchost/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/hashicorp/terraform-svchost/actions/workflows/ci.yml) +[![GitHub license](https://img.shields.io/github/license/hashicorp/terraform-svchost.svg)](https://github.com/hashicorp/terraform-svchost/blob/main/LICENSE) +[![GoDoc](https://godoc.org/github.com/hashicorp/terraform-svchost?status.svg)](https://godoc.org/github.com/hashicorp/terraform-svchost) +[![Go Report Card](https://goreportcard.com/badge/github.com/hashicorp/terraform-svchost)](https://goreportcard.com/report/github.com/hashicorp/terraform-svchost) +[![GitHub issues](https://img.shields.io/github/issues/hashicorp/terraform-svchost.svg)](https://github.com/hashicorp/terraform-svchost/issues) + +This package provides friendly hostnames, and is used by [terraform](https://github.com/hashicorp/terraform). diff --git a/vendor/github.com/hashicorp/terraform-svchost/label_iter.go b/vendor/github.com/hashicorp/terraform-svchost/label_iter.go index af8ccbab2084..eb8756814456 100644 --- a/vendor/github.com/hashicorp/terraform-svchost/label_iter.go +++ b/vendor/github.com/hashicorp/terraform-svchost/label_iter.go @@ -1,3 +1,5 @@ +// Copyright (c) HashiCorp, Inc. + package svchost import ( diff --git a/vendor/github.com/hashicorp/terraform-svchost/svchost.go b/vendor/github.com/hashicorp/terraform-svchost/svchost.go index 4060b767e58a..45a702978efa 100644 --- a/vendor/github.com/hashicorp/terraform-svchost/svchost.go +++ b/vendor/github.com/hashicorp/terraform-svchost/svchost.go @@ -1,3 +1,5 @@ +// Copyright (c) HashiCorp, Inc. + // Package svchost deals with the representations of the so-called "friendly // hostnames" that we use to represent systems that provide Terraform-native // remote services, such as module registry, remote operations, etc. @@ -101,6 +103,18 @@ func ForComparison(given string) (Hostname, error) { var err error portPortion, err = normalizePortPortion(portPortion) if err != nil { + // We can get in here if someone has incorrectly specified a URL + // instead of a hostname, because normalizePortPortion will try to + // treat the colon after the scheme as the port number separator. + // We'll return a more specific error message for that situation. + given = strings.ToLower(given) + if given == "https" || given == "http" { + // Technically it's valid to have a host called "https" or "http" + // which would generate a false positive here with input like + // "http:foo", but we can only get here if the hostname exactly + // matches one of the schemes _and_ the port number is also invalid. + return Hostname(""), fmt.Errorf("need just a hostname and optional port number, not a full URL") + } return Hostname(""), err } diff --git a/vendor/github.com/hashicorp/yamux/const.go b/vendor/github.com/hashicorp/yamux/const.go index 4f52938287f4..2fdbf844a8ee 100644 --- a/vendor/github.com/hashicorp/yamux/const.go +++ b/vendor/github.com/hashicorp/yamux/const.go @@ -5,6 +5,25 @@ import ( "fmt" ) +// NetError implements net.Error +type NetError struct { + err error + timeout bool + temporary bool +} + +func (e *NetError) Error() string { + return e.err.Error() +} + +func (e *NetError) Timeout() bool { + return e.timeout +} + +func (e *NetError) Temporary() bool { + return e.temporary +} + var ( // ErrInvalidVersion means we received a frame with an // invalid version @@ -30,7 +49,13 @@ var ( ErrRecvWindowExceeded = fmt.Errorf("recv window exceeded") // ErrTimeout is used when we reach an IO deadline - ErrTimeout = fmt.Errorf("i/o deadline reached") + ErrTimeout = &NetError{ + err: fmt.Errorf("i/o deadline reached"), + + // Error should meet net.Error interface for timeouts for compatability + // with standard library expectations, such as http servers. + timeout: true, + } // ErrStreamClosed is returned when using a closed stream ErrStreamClosed = fmt.Errorf("stream closed") diff --git a/vendor/github.com/hashicorp/yamux/mux.go b/vendor/github.com/hashicorp/yamux/mux.go index a3826be9ab65..0c3e67b022a5 100644 --- a/vendor/github.com/hashicorp/yamux/mux.go +++ b/vendor/github.com/hashicorp/yamux/mux.go @@ -31,6 +31,13 @@ type Config struct { // window size that we allow for a stream. MaxStreamWindowSize uint32 + // StreamOpenTimeout is the maximum amount of time that a stream will + // be allowed to remain in pending state while waiting for an ack from the peer. + // Once the timeout is reached the session will be gracefully closed. + // A zero value disables the StreamOpenTimeout allowing unbounded + // blocking on OpenStream calls. + StreamOpenTimeout time.Duration + // StreamCloseTimeout is the maximum time that a stream will allowed to // be in a half-closed state when `Close` is called before forcibly // closing the connection. Forcibly closed connections will empty the @@ -56,6 +63,7 @@ func DefaultConfig() *Config { ConnectionWriteTimeout: 10 * time.Second, MaxStreamWindowSize: initialStreamWindow, StreamCloseTimeout: 5 * time.Minute, + StreamOpenTimeout: 75 * time.Second, LogOutput: os.Stderr, } } diff --git a/vendor/github.com/hashicorp/yamux/session.go b/vendor/github.com/hashicorp/yamux/session.go index a80ddec35ea2..38fe3ed1f062 100644 --- a/vendor/github.com/hashicorp/yamux/session.go +++ b/vendor/github.com/hashicorp/yamux/session.go @@ -2,6 +2,7 @@ package yamux import ( "bufio" + "bytes" "fmt" "io" "io/ioutil" @@ -63,24 +64,27 @@ type Session struct { // sendCh is used to mark a stream as ready to send, // or to send a header out directly. - sendCh chan sendReady + sendCh chan *sendReady // recvDoneCh is closed when recv() exits to avoid a race // between stream registration and stream shutdown recvDoneCh chan struct{} + sendDoneCh chan struct{} // shutdown is used to safely close a session - shutdown bool - shutdownErr error - shutdownCh chan struct{} - shutdownLock sync.Mutex + shutdown bool + shutdownErr error + shutdownCh chan struct{} + shutdownLock sync.Mutex + shutdownErrLock sync.Mutex } // sendReady is used to either mark a stream as ready // or to directly send a header type sendReady struct { Hdr []byte - Body io.Reader + mu sync.Mutex // Protects Body from unsafe reads. + Body []byte Err chan error } @@ -101,8 +105,9 @@ func newSession(config *Config, conn io.ReadWriteCloser, client bool) *Session { inflight: make(map[uint32]struct{}), synCh: make(chan struct{}, config.AcceptBacklog), acceptCh: make(chan *Stream, config.AcceptBacklog), - sendCh: make(chan sendReady, 64), + sendCh: make(chan *sendReady, 64), recvDoneCh: make(chan struct{}), + sendDoneCh: make(chan struct{}), shutdownCh: make(chan struct{}), } if client { @@ -184,6 +189,10 @@ GET_ID: s.inflight[id] = struct{}{} s.streamLock.Unlock() + if s.config.StreamOpenTimeout > 0 { + go s.setOpenTimeout(stream) + } + // Send the window update to create if err := stream.sendWindowUpdate(); err != nil { select { @@ -196,6 +205,27 @@ GET_ID: return stream, nil } +// setOpenTimeout implements a timeout for streams that are opened but not established. +// If the StreamOpenTimeout is exceeded we assume the peer is unable to ACK, +// and close the session. +// The number of running timers is bounded by the capacity of the synCh. +func (s *Session) setOpenTimeout(stream *Stream) { + timer := time.NewTimer(s.config.StreamOpenTimeout) + defer timer.Stop() + + select { + case <-stream.establishCh: + return + case <-s.shutdownCh: + return + case <-timer.C: + // Timeout reached while waiting for ACK. + // Close the session to force connection re-establishment. + s.logger.Printf("[ERR] yamux: aborted stream open (destination=%s): %v", s.RemoteAddr().String(), ErrTimeout.err) + s.Close() + } +} + // Accept is used to block until the next available stream // is ready to be accepted. func (s *Session) Accept() (net.Conn, error) { @@ -230,10 +260,15 @@ func (s *Session) Close() error { return nil } s.shutdown = true + + s.shutdownErrLock.Lock() if s.shutdownErr == nil { s.shutdownErr = ErrSessionShutdown } + s.shutdownErrLock.Unlock() + close(s.shutdownCh) + s.conn.Close() <-s.recvDoneCh @@ -242,17 +277,18 @@ func (s *Session) Close() error { for _, stream := range s.streams { stream.forceClose() } + <-s.sendDoneCh return nil } // exitErr is used to handle an error that is causing the // session to terminate. func (s *Session) exitErr(err error) { - s.shutdownLock.Lock() + s.shutdownErrLock.Lock() if s.shutdownErr == nil { s.shutdownErr = err } - s.shutdownLock.Unlock() + s.shutdownErrLock.Unlock() s.Close() } @@ -327,7 +363,7 @@ func (s *Session) keepalive() { } // waitForSendErr waits to send a header, checking for a potential shutdown -func (s *Session) waitForSend(hdr header, body io.Reader) error { +func (s *Session) waitForSend(hdr header, body []byte) error { errCh := make(chan error, 1) return s.waitForSendErr(hdr, body, errCh) } @@ -335,7 +371,7 @@ func (s *Session) waitForSend(hdr header, body io.Reader) error { // waitForSendErr waits to send a header with optional data, checking for a // potential shutdown. Since there's the expectation that sends can happen // in a timely manner, we enforce the connection write timeout here. -func (s *Session) waitForSendErr(hdr header, body io.Reader, errCh chan error) error { +func (s *Session) waitForSendErr(hdr header, body []byte, errCh chan error) error { t := timerPool.Get() timer := t.(*time.Timer) timer.Reset(s.config.ConnectionWriteTimeout) @@ -348,7 +384,7 @@ func (s *Session) waitForSendErr(hdr header, body io.Reader, errCh chan error) e timerPool.Put(t) }() - ready := sendReady{Hdr: hdr, Body: body, Err: errCh} + ready := &sendReady{Hdr: hdr, Body: body, Err: errCh} select { case s.sendCh <- ready: case <-s.shutdownCh: @@ -357,12 +393,34 @@ func (s *Session) waitForSendErr(hdr header, body io.Reader, errCh chan error) e return ErrConnectionWriteTimeout } + bodyCopy := func() { + if body == nil { + return // A nil body is ignored. + } + + // In the event of session shutdown or connection write timeout, + // we need to prevent `send` from reading the body buffer after + // returning from this function since the caller may re-use the + // underlying array. + ready.mu.Lock() + defer ready.mu.Unlock() + + if ready.Body == nil { + return // Body was already copied in `send`. + } + newBody := make([]byte, len(body)) + copy(newBody, body) + ready.Body = newBody + } + select { case err := <-errCh: return err case <-s.shutdownCh: + bodyCopy() return ErrSessionShutdown case <-timer.C: + bodyCopy() return ErrConnectionWriteTimeout } } @@ -384,7 +442,7 @@ func (s *Session) sendNoWait(hdr header) error { }() select { - case s.sendCh <- sendReady{Hdr: hdr}: + case s.sendCh <- &sendReady{Hdr: hdr}: return nil case <-s.shutdownCh: return ErrSessionShutdown @@ -395,39 +453,59 @@ func (s *Session) sendNoWait(hdr header) error { // send is a long running goroutine that sends data func (s *Session) send() { + if err := s.sendLoop(); err != nil { + s.exitErr(err) + } +} + +func (s *Session) sendLoop() error { + defer close(s.sendDoneCh) + var bodyBuf bytes.Buffer for { + bodyBuf.Reset() + select { case ready := <-s.sendCh: // Send a header if ready if ready.Hdr != nil { - sent := 0 - for sent < len(ready.Hdr) { - n, err := s.conn.Write(ready.Hdr[sent:]) - if err != nil { - s.logger.Printf("[ERR] yamux: Failed to write header: %v", err) - asyncSendErr(ready.Err, err) - s.exitErr(err) - return - } - sent += n + _, err := s.conn.Write(ready.Hdr) + if err != nil { + s.logger.Printf("[ERR] yamux: Failed to write header: %v", err) + asyncSendErr(ready.Err, err) + return err } } - // Send data from a body if given + ready.mu.Lock() if ready.Body != nil { - _, err := io.Copy(s.conn, ready.Body) + // Copy the body into the buffer to avoid + // holding a mutex lock during the write. + _, err := bodyBuf.Write(ready.Body) + if err != nil { + ready.Body = nil + ready.mu.Unlock() + s.logger.Printf("[ERR] yamux: Failed to copy body into buffer: %v", err) + asyncSendErr(ready.Err, err) + return err + } + ready.Body = nil + } + ready.mu.Unlock() + + if bodyBuf.Len() > 0 { + // Send data from a body if given + _, err := s.conn.Write(bodyBuf.Bytes()) if err != nil { s.logger.Printf("[ERR] yamux: Failed to write body: %v", err) asyncSendErr(ready.Err, err) - s.exitErr(err) - return + return err } } // No error, successful send asyncSendErr(ready.Err, nil) case <-s.shutdownCh: - return + return nil } } } @@ -614,8 +692,9 @@ func (s *Session) incomingStream(id uint32) error { // Backlog exceeded! RST the stream s.logger.Printf("[WARN] yamux: backlog exceeded, forcing connection reset") delete(s.streams, id) - stream.sendHdr.encode(typeWindowUpdate, flagRST, id, 0) - return s.sendNoWait(stream.sendHdr) + hdr := header(make([]byte, headerSize)) + hdr.encode(typeWindowUpdate, flagRST, id, 0) + return s.sendNoWait(hdr) } } diff --git a/vendor/github.com/hashicorp/yamux/stream.go b/vendor/github.com/hashicorp/yamux/stream.go index 9ff5597d16d0..23d08fcc8daf 100644 --- a/vendor/github.com/hashicorp/yamux/stream.go +++ b/vendor/github.com/hashicorp/yamux/stream.go @@ -2,6 +2,7 @@ package yamux import ( "bytes" + "errors" "io" "sync" "sync/atomic" @@ -50,6 +51,9 @@ type Stream struct { readDeadline atomic.Value // time.Time writeDeadline atomic.Value // time.Time + // establishCh is notified if the stream is established or being closed. + establishCh chan struct{} + // closeTimer is set with stateLock held to honor the StreamCloseTimeout // setting on Session. closeTimer *time.Timer @@ -70,6 +74,7 @@ func newStream(session *Session, id uint32, state streamState) *Stream { sendWindow: initialStreamWindow, recvNotifyCh: make(chan struct{}, 1), sendNotifyCh: make(chan struct{}, 1), + establishCh: make(chan struct{}, 1), } s.readDeadline.Store(time.Time{}) s.writeDeadline.Store(time.Time{}) @@ -123,6 +128,9 @@ START: // Send a window update potentially err = s.sendWindowUpdate() + if err == ErrSessionShutdown { + err = nil + } return n, err WAIT: @@ -165,7 +173,7 @@ func (s *Stream) Write(b []byte) (n int, err error) { func (s *Stream) write(b []byte) (n int, err error) { var flags uint16 var max uint32 - var body io.Reader + var body []byte START: s.stateLock.Lock() switch s.state { @@ -191,11 +199,15 @@ START: // Send up to our send window max = min(window, uint32(len(b))) - body = bytes.NewReader(b[:max]) + body = b[:max] // Send the header s.sendHdr.encode(typeData, flags, s.id, max) if err = s.session.waitForSendErr(s.sendHdr, body, s.sendErr); err != nil { + if errors.Is(err, ErrSessionShutdown) || errors.Is(err, ErrConnectionWriteTimeout) { + // Message left in ready queue, header re-use is unsafe. + s.sendHdr = header(make([]byte, headerSize)) + } return 0, err } @@ -269,6 +281,10 @@ func (s *Stream) sendWindowUpdate() error { // Send the header s.controlHdr.encode(typeWindowUpdate, flags, s.id, delta) if err := s.session.waitForSendErr(s.controlHdr, nil, s.controlErr); err != nil { + if errors.Is(err, ErrSessionShutdown) || errors.Is(err, ErrConnectionWriteTimeout) { + // Message left in ready queue, header re-use is unsafe. + s.controlHdr = header(make([]byte, headerSize)) + } return err } return nil @@ -283,6 +299,10 @@ func (s *Stream) sendClose() error { flags |= flagFIN s.controlHdr.encode(typeWindowUpdate, flags, s.id, 0) if err := s.session.waitForSendErr(s.controlHdr, nil, s.controlErr); err != nil { + if errors.Is(err, ErrSessionShutdown) || errors.Is(err, ErrConnectionWriteTimeout) { + // Message left in ready queue, header re-use is unsafe. + s.controlHdr = header(make([]byte, headerSize)) + } return err } return nil @@ -358,8 +378,9 @@ func (s *Stream) closeTimeout() { // Send a RST so the remote side closes too. s.sendLock.Lock() defer s.sendLock.Unlock() - s.sendHdr.encode(typeWindowUpdate, flagRST, s.id, 0) - s.session.sendNoWait(s.sendHdr) + hdr := header(make([]byte, headerSize)) + hdr.encode(typeWindowUpdate, flagRST, s.id, 0) + s.session.sendNoWait(hdr) } // forceClose is used for when the session is exiting @@ -393,6 +414,7 @@ func (s *Stream) processFlags(flags uint16) error { if s.state == streamSYNSent { s.state = streamEstablished } + asyncNotify(s.establishCh) s.session.establishStream(s.id) } if flags&flagFIN == flagFIN { @@ -425,6 +447,7 @@ func (s *Stream) processFlags(flags uint16) error { func (s *Stream) notifyWaiting() { asyncNotify(s.recvNotifyCh) asyncNotify(s.sendNotifyCh) + asyncNotify(s.establishCh) } // incrSendWindow updates the size of our send window @@ -459,6 +482,7 @@ func (s *Stream) readData(hdr header, flags uint16, conn io.Reader) error { if length > s.recvWindow { s.session.logger.Printf("[ERR] yamux: receive window exceeded (stream: %d, remain: %d, recv: %d)", s.id, s.recvWindow, length) + s.recvLock.Unlock() return ErrRecvWindowExceeded } @@ -467,14 +491,15 @@ func (s *Stream) readData(hdr header, flags uint16, conn io.Reader) error { // This way we can read in the whole packet without further allocations. s.recvBuf = bytes.NewBuffer(make([]byte, 0, length)) } - if _, err := io.Copy(s.recvBuf, conn); err != nil { + copiedLength, err := io.Copy(s.recvBuf, conn) + if err != nil { s.session.logger.Printf("[ERR] yamux: Failed to read stream data: %v", err) s.recvLock.Unlock() return err } // Decrement the receive window - s.recvWindow -= length + s.recvWindow -= uint32(copiedLength) s.recvLock.Unlock() // Unblock any readers diff --git a/vendor/github.com/mattn/go-isatty/isatty_bsd.go b/vendor/github.com/mattn/go-isatty/isatty_bsd.go index 39bbcf00f0c6..d569c0c94997 100644 --- a/vendor/github.com/mattn/go-isatty/isatty_bsd.go +++ b/vendor/github.com/mattn/go-isatty/isatty_bsd.go @@ -1,5 +1,5 @@ -//go:build (darwin || freebsd || openbsd || netbsd || dragonfly) && !appengine -// +build darwin freebsd openbsd netbsd dragonfly +//go:build (darwin || freebsd || openbsd || netbsd || dragonfly || hurd) && !appengine +// +build darwin freebsd openbsd netbsd dragonfly hurd // +build !appengine package isatty diff --git a/vendor/github.com/rickb777/date/period/arithmetic.go b/vendor/github.com/rickb777/date/period/arithmetic.go new file mode 100644 index 000000000000..55993fe0b744 --- /dev/null +++ b/vendor/github.com/rickb777/date/period/arithmetic.go @@ -0,0 +1,106 @@ +// Copyright 2015 Rick Beton. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package period + +import ( + "time" +) + +// Add adds two periods together. Use this method along with Negate in order to subtract periods. +// +// The result is not normalised and may overflow arithmetically (to make this unlikely, use Normalise on +// the inputs before adding them). +func (period Period) Add(that Period) Period { + return Period{ + period.years + that.years, + period.months + that.months, + period.days + that.days, + period.hours + that.hours, + period.minutes + that.minutes, + period.seconds + that.seconds, + } +} + +//------------------------------------------------------------------------------------------------- + +// AddTo adds the period to a time, returning the result. +// A flag is also returned that is true when the conversion was precise and false otherwise. +// +// When the period specifies hours, minutes and seconds only, the result is precise. +// Also, when the period specifies whole years, months and days (i.e. without fractions), the +// result is precise. However, when years, months or days contains fractions, the result +// is only an approximation (it assumes that all days are 24 hours and every year is 365.2425 +// days, as per Gregorian calendar rules). +func (period Period) AddTo(t time.Time) (time.Time, bool) { + wholeYears := (period.years % 10) == 0 + wholeMonths := (period.months % 10) == 0 + wholeDays := (period.days % 10) == 0 + + if wholeYears && wholeMonths && wholeDays { + // in this case, time.AddDate provides an exact solution + stE3 := totalSecondsE3(period) + t1 := t.AddDate(int(period.years/10), int(period.months/10), int(period.days/10)) + return t1.Add(stE3 * time.Millisecond), true + } + + d, precise := period.Duration() + return t.Add(d), precise +} + +//------------------------------------------------------------------------------------------------- + +// Scale a period by a multiplication factor. Obviously, this can both enlarge and shrink it, +// and change the sign if negative. The result is normalised, but integer overflows are silently +// ignored. +// +// Bear in mind that the internal representation is limited by fixed-point arithmetic with two +// decimal places; each field is only int16. +// +// Known issue: scaling by a large reduction factor (i.e. much less than one) doesn't work properly. +func (period Period) Scale(factor float32) Period { + result, _ := period.ScaleWithOverflowCheck(factor) + return result +} + +// ScaleWithOverflowCheck a period by a multiplication factor. Obviously, this can both enlarge and shrink it, +// and change the sign if negative. The result is normalised. An error is returned if integer overflow +// happened. +// +// Bear in mind that the internal representation is limited by fixed-point arithmetic with one +// decimal place; each field is only int16. +// +// Known issue: scaling by a large reduction factor (i.e. much less than one) doesn't work properly. +func (period Period) ScaleWithOverflowCheck(factor float32) (Period, error) { + ap, neg := period.absNeg() + + if -0.5 < factor && factor < 0.5 { + d, pr1 := ap.Duration() + mul := float64(d) * float64(factor) + p2, pr2 := NewOf(time.Duration(mul)) + return p2.Normalise(pr1 && pr2), nil + } + + y := int64(float32(ap.years) * factor) + m := int64(float32(ap.months) * factor) + d := int64(float32(ap.days) * factor) + hh := int64(float32(ap.hours) * factor) + mm := int64(float32(ap.minutes) * factor) + ss := int64(float32(ap.seconds) * factor) + + p64 := &period64{years: y, months: m, days: d, hours: hh, minutes: mm, seconds: ss, neg: neg} + return p64.normalise64(true).toPeriod() +} + +// RationalScale scales a period by a rational multiplication factor. Obviously, this can both enlarge and shrink it, +// and change the sign if negative. The result is normalised. An error is returned if integer overflow +// happened. +// +// If the divisor is zero, a panic will arise. +// +// Bear in mind that the internal representation is limited by fixed-point arithmetic with two +// decimal places; each field is only int16. +//func (period Period) RationalScale(multiplier, divisor int) (Period, error) { +// return period.rationalScale64(int64(multiplier), int64(divisor)) +//} diff --git a/vendor/github.com/rickb777/date/period/designator.go b/vendor/github.com/rickb777/date/period/designator.go new file mode 100644 index 000000000000..6d836ec4c638 --- /dev/null +++ b/vendor/github.com/rickb777/date/period/designator.go @@ -0,0 +1,55 @@ +// Copyright 2015 Rick Beton. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package period + +type ymdDesignator byte +type hmsDesignator byte + +const ( + Year ymdDesignator = 'Y' + Month ymdDesignator = 'M' + Week ymdDesignator = 'W' + Day ymdDesignator = 'D' + + Hour hmsDesignator = 'H' + Minute hmsDesignator = 'M' + Second hmsDesignator = 'S' +) + +func (d ymdDesignator) IsOneOf(xx ...ymdDesignator) bool { + for _, x := range xx { + if x == d { + return true + } + } + return false +} + +func (d ymdDesignator) IsNotOneOf(xx ...ymdDesignator) bool { + for _, x := range xx { + if x == d { + return false + } + } + return true +} + +func (d hmsDesignator) IsOneOf(xx ...hmsDesignator) bool { + for _, x := range xx { + if x == d { + return true + } + } + return false +} + +func (d hmsDesignator) IsNotOneOf(xx ...hmsDesignator) bool { + for _, x := range xx { + if x == d { + return false + } + } + return true +} diff --git a/vendor/github.com/rickb777/date/period/doc.go b/vendor/github.com/rickb777/date/period/doc.go index c8a57b4a0d94..5abe8447b16c 100644 --- a/vendor/github.com/rickb777/date/period/doc.go +++ b/vendor/github.com/rickb777/date/period/doc.go @@ -5,6 +5,9 @@ // Package period provides functionality for periods of time using ISO-8601 conventions. // This deals with years, months, weeks/days, hours, minutes and seconds. // +// *** Warning: this package is the subject of many issues, so a replacement is under +// development. Please see https://github.com/rickb777/period. +// // Because of the vagaries of calendar systems, the meaning of year lengths, month lengths // and even day lengths depends on context. So a period is not necessarily a fixed duration // of time in terms of seconds. @@ -40,5 +43,4 @@ // * "P2.5Y" is 2.5 years. // // * "PT12M7.5S" is 12 minutes and 7.5 seconds. -// package period diff --git a/vendor/github.com/rickb777/date/period/flag.go b/vendor/github.com/rickb777/date/period/flag.go new file mode 100644 index 000000000000..9488efa7ca8d --- /dev/null +++ b/vendor/github.com/rickb777/date/period/flag.go @@ -0,0 +1,16 @@ +package period + +// Set enables use of Period by the flag API. +func (period *Period) Set(p string) error { + p2, err := Parse(p) + if err != nil { + return err + } + *period = p2 + return nil +} + +// Type is for compatibility with the spf13/pflag library. +func (period Period) Type() string { + return "period" +} diff --git a/vendor/github.com/rickb777/date/period/format.go b/vendor/github.com/rickb777/date/period/format.go index 32cb6a8311f7..3b095292674e 100644 --- a/vendor/github.com/rickb777/date/period/format.go +++ b/vendor/github.com/rickb777/date/period/format.go @@ -5,25 +5,32 @@ package period import ( - "bytes" "fmt" + "io" "strings" "github.com/rickb777/plural" ) // Format converts the period to human-readable form using the default localisation. +// Multiples of 7 days are shown as weeks. func (period Period) Format() string { return period.FormatWithPeriodNames(PeriodYearNames, PeriodMonthNames, PeriodWeekNames, PeriodDayNames, PeriodHourNames, PeriodMinuteNames, PeriodSecondNames) } +// FormatWithoutWeeks converts the period to human-readable form using the default localisation. +// Multiples of 7 days are not shown as weeks. +func (period Period) FormatWithoutWeeks() string { + return period.FormatWithPeriodNames(PeriodYearNames, PeriodMonthNames, plural.Plurals{}, PeriodDayNames, PeriodHourNames, PeriodMinuteNames, PeriodSecondNames) +} + // FormatWithPeriodNames converts the period to human-readable form in a localisable way. func (period Period) FormatWithPeriodNames(yearNames, monthNames, weekNames, dayNames, hourNames, minNames, secNames plural.Plurals) string { period = period.Abs() parts := make([]string, 0) - parts = appendNonBlank(parts, yearNames.FormatFloat(absFloat10(period.years))) - parts = appendNonBlank(parts, monthNames.FormatFloat(absFloat10(period.months))) + parts = appendNonBlank(parts, yearNames.FormatFloat(float10(period.years))) + parts = appendNonBlank(parts, monthNames.FormatFloat(float10(period.months))) if period.days > 0 || (period.IsZero()) { if len(weekNames) > 0 { @@ -34,15 +41,15 @@ func (period Period) FormatWithPeriodNames(yearNames, monthNames, weekNames, day parts = appendNonBlank(parts, weekNames.FormatInt(int(weeks))) } if mdays > 0 || weeks == 0 { - parts = appendNonBlank(parts, dayNames.FormatFloat(absFloat10(mdays))) + parts = appendNonBlank(parts, dayNames.FormatFloat(float10(mdays))) } } else { - parts = appendNonBlank(parts, dayNames.FormatFloat(absFloat10(period.days))) + parts = appendNonBlank(parts, dayNames.FormatFloat(float10(period.days))) } } - parts = appendNonBlank(parts, hourNames.FormatFloat(absFloat10(period.hours))) - parts = appendNonBlank(parts, minNames.FormatFloat(absFloat10(period.minutes))) - parts = appendNonBlank(parts, secNames.FormatFloat(absFloat10(period.seconds))) + parts = appendNonBlank(parts, hourNames.FormatFloat(float10(period.hours))) + parts = appendNonBlank(parts, minNames.FormatFloat(float10(period.minutes))) + parts = appendNonBlank(parts, secNames.FormatFloat(float10(period.seconds))) return strings.Join(parts, ", ") } @@ -79,50 +86,54 @@ var PeriodSecondNames = plural.FromZero("", "%v second", "%v seconds") // String converts the period to ISO-8601 form. func (period Period) String() string { - if period.IsZero() { + return period.toPeriod64("").String() +} + +func (p64 period64) String() string { + if p64 == (period64{}) { return "P0D" } - buf := &bytes.Buffer{} - if period.Sign() < 0 { + buf := &strings.Builder{} + if p64.neg { buf.WriteByte('-') } buf.WriteByte('P') - if period.years != 0 { - fmt.Fprintf(buf, "%gY", absFloat10(period.years)) - } - if period.months != 0 { - fmt.Fprintf(buf, "%gM", absFloat10(period.months)) - } - if period.days != 0 { - if period.days%70 == 0 { - fmt.Fprintf(buf, "%gW", absFloat10(period.days/7)) + writeField64(buf, p64.years, byte(Year)) + writeField64(buf, p64.months, byte(Month)) + + if p64.days != 0 { + if p64.days%70 == 0 { + writeField64(buf, p64.days/7, byte(Week)) } else { - fmt.Fprintf(buf, "%gD", absFloat10(period.days)) + writeField64(buf, p64.days, byte(Day)) } } - if period.hours != 0 || period.minutes != 0 || period.seconds != 0 { + + if p64.hours != 0 || p64.minutes != 0 || p64.seconds != 0 { buf.WriteByte('T') } - if period.hours != 0 { - fmt.Fprintf(buf, "%gH", absFloat10(period.hours)) - } - if period.minutes != 0 { - fmt.Fprintf(buf, "%gM", absFloat10(period.minutes)) - } - if period.seconds != 0 { - fmt.Fprintf(buf, "%gS", absFloat10(period.seconds)) - } + + writeField64(buf, p64.hours, byte(Hour)) + writeField64(buf, p64.minutes, byte(Minute)) + writeField64(buf, p64.seconds, byte(Second)) return buf.String() } -func absFloat10(v int16) float32 { - f := float32(v) / 10 - if v < 0 { - return -f +func writeField64(w io.Writer, field int64, designator byte) { + if field != 0 { + if field%10 != 0 { + fmt.Fprintf(w, "%g", float32(field)/10) + } else { + fmt.Fprintf(w, "%d", field/10) + } + w.(io.ByteWriter).WriteByte(designator) } - return f +} + +func float10(v int16) float32 { + return float32(v) / 10 } diff --git a/vendor/github.com/rickb777/date/period/marshal.go b/vendor/github.com/rickb777/date/period/marshal.go index c87ad5f6fb90..6e1f2f1ce99b 100644 --- a/vendor/github.com/rickb777/date/period/marshal.go +++ b/vendor/github.com/rickb777/date/period/marshal.go @@ -12,19 +12,21 @@ func (period Period) MarshalBinary() ([]byte, error) { } // UnmarshalBinary implements the encoding.BinaryUnmarshaler interface. -// This also provides support for gob encoding. +// This also provides support for gob decoding. func (period *Period) UnmarshalBinary(data []byte) error { return period.UnmarshalText(data) } // MarshalText implements the encoding.TextMarshaler interface for Periods. +// This also provides support for JSON encoding. func (period Period) MarshalText() ([]byte, error) { return []byte(period.String()), nil } // UnmarshalText implements the encoding.TextUnmarshaler interface for Periods. +// This also provides support for JSON decoding. func (period *Period) UnmarshalText(data []byte) (err error) { - u, err := Parse(string(data)) + u, err := Parse(string(data), false) if err == nil { *period = u } diff --git a/vendor/github.com/rickb777/date/period/parse.go b/vendor/github.com/rickb777/date/period/parse.go index 270ae8d092df..304bc5017227 100644 --- a/vendor/github.com/rickb777/date/period/parse.go +++ b/vendor/github.com/rickb777/date/period/parse.go @@ -12,8 +12,10 @@ import ( // MustParse is as per Parse except that it panics if the string cannot be parsed. // This is intended for setup code; don't use it for user inputs. -func MustParse(value string) Period { - d, err := Parse(value) +// By default, the value is normalised. +// Normalisation can be disabled using the optional flag. +func MustParse(value string, normalise ...bool) Period { + d, err := Parse(value, normalise...) if err != nil { panic(err) } @@ -24,16 +26,27 @@ func MustParse(value string) Period { // // In addition, a plus or minus sign can precede the period, e.g. "-P10D" // -// The value is normalised, e.g. multiple of 12 months become years so "P24M" -// is the same as "P2Y". However, this is done without loss of precision, so -// for example whole numbers of days do not contribute to the months tally +// By default, the value is normalised, e.g. multiple of 12 months become years +// so "P24M" is the same as "P2Y". However, this is done without loss of precision, +// so for example whole numbers of days do not contribute to the months tally // because the number of days per month is variable. // +// Normalisation can be disabled using the optional flag. +// // The zero value can be represented in several ways: all of the following // are equivalent: "P0Y", "P0M", "P0W", "P0D", "PT0H", PT0M", PT0S", and "P0". // The canonical zero is "P0D". -func Parse(period string) (Period, error) { - if period == "" { +func Parse(period string, normalise ...bool) (Period, error) { + return ParseWithNormalise(period, len(normalise) == 0 || normalise[0]) +} + +// ParseWithNormalise parses strings that specify periods using ISO-8601 rules +// with an option to specify whether to normalise parsed period components. +// +// This method is deprecated and should not be used. It may be removed in a +// future version. +func ParseWithNormalise(period string, normalise bool) (Period, error) { + if period == "" || period == "-" || period == "+" { return Period{}, fmt.Errorf("cannot parse a blank string as a period") } @@ -41,118 +54,184 @@ func Parse(period string) (Period, error) { return Period{}, nil } - result := period64{} - pcopy := period - if pcopy[0] == '-' { - result.neg = true - pcopy = pcopy[1:] - } else if pcopy[0] == '+' { - pcopy = pcopy[1:] + p64, err := parse(period, normalise) + if err != nil { + return Period{}, err } + return p64.toPeriod() +} - if pcopy[0] != 'P' { - return Period{}, fmt.Errorf("expected 'P' period mark at the start: %s", period) +func parse(period string, normalise bool) (*period64, error) { + neg := false + remaining := period + if remaining[0] == '-' { + neg = true + remaining = remaining[1:] + } else if remaining[0] == '+' { + remaining = remaining[1:] } - pcopy = pcopy[1:] - st := parseState{period, pcopy, false, nil} - t := strings.IndexByte(pcopy, 'T') - if t >= 0 { - st.pcopy = pcopy[t+1:] + if remaining[0] != 'P' { + return nil, fmt.Errorf("%s: expected 'P' period mark at the start", period) + } + remaining = remaining[1:] - result.hours, st = parseField(st, 'H') - if st.err != nil { - return Period{}, fmt.Errorf("expected a number before the 'H' marker: %s", period) - } + var number, weekValue, prevFraction int64 + result := &period64{input: period, neg: neg} + var years, months, weeks, days, hours, minutes, seconds itemState + var designator, prevDesignator byte + var err error + nComponents := 0 - result.minutes, st = parseField(st, 'M') - if st.err != nil { - return Period{}, fmt.Errorf("expected a number before the 'M' marker: %s", period) - } + years, months, weeks, days = Armed, Armed, Armed, Armed - result.seconds, st = parseField(st, 'S') - if st.err != nil { - return Period{}, fmt.Errorf("expected a number before the 'S' marker: %s", period) - } + isHMS := false + for len(remaining) > 0 { + if remaining[0] == 'T' { + if isHMS { + return nil, fmt.Errorf("%s: 'T' designator cannot occur more than once", period) + } + isHMS = true - if len(st.pcopy) != 0 { - return Period{}, fmt.Errorf("unexpected remaining components %s: %s", st.pcopy, period) - } + years, months, weeks, days = Unready, Unready, Unready, Unready + hours, minutes, seconds = Armed, Armed, Armed - st.pcopy = pcopy[:t] - } + remaining = remaining[1:] - result.years, st = parseField(st, 'Y') - if st.err != nil { - return Period{}, fmt.Errorf("expected a number before the 'Y' marker: %s", period) - } - result.months, st = parseField(st, 'M') - if st.err != nil { - return Period{}, fmt.Errorf("expected a number before the 'M' marker: %s", period) - } - weeks, st := parseField(st, 'W') - if st.err != nil { - return Period{}, fmt.Errorf("expected a number before the 'W' marker: %s", period) + } else { + number, designator, remaining, err = parseNextField(remaining, period) + if err != nil { + return nil, err + } + + fraction := number % 10 + if prevFraction != 0 && fraction != 0 { + return nil, fmt.Errorf("%s: '%c' & '%c' only the last field can have a fraction", period, prevDesignator, designator) + } + + switch designator { + case 'Y': + years, err = years.testAndSet(number, 'Y', result, &result.years) + case 'W': + weeks, err = weeks.testAndSet(number, 'W', result, &weekValue) + case 'D': + days, err = days.testAndSet(number, 'D', result, &result.days) + case 'H': + hours, err = hours.testAndSet(number, 'H', result, &result.hours) + case 'S': + seconds, err = seconds.testAndSet(number, 'S', result, &result.seconds) + case 'M': + if isHMS { + minutes, err = minutes.testAndSet(number, 'M', result, &result.minutes) + } else { + months, err = months.testAndSet(number, 'M', result, &result.months) + } + default: + return nil, fmt.Errorf("%s: expected a number not '%c'", period, designator) + } + nComponents++ + + if err != nil { + return nil, err + } + + prevFraction = fraction + prevDesignator = designator + } } - days, st := parseField(st, 'D') - if st.err != nil { - return Period{}, fmt.Errorf("expected a number before the 'D' marker: %s", period) + if nComponents == 0 { + return nil, fmt.Errorf("%s: expected 'Y', 'M', 'W', 'D', 'H', 'M', or 'S' designator", period) } - if len(st.pcopy) != 0 { - return Period{}, fmt.Errorf("unexpected remaining components %s: %s", st.pcopy, period) + result.days += weekValue * 7 + + if normalise { + result = result.normalise64(true) } - result.days = weeks*7 + days - //fmt.Printf("%#v\n", st) + return result, nil +} - if !st.ok { - return Period{}, fmt.Errorf("expected 'Y', 'M', 'W', 'D', 'H', 'M', or 'S' marker: %s", period) +//------------------------------------------------------------------------------------------------- + +type itemState int + +const ( + Unready itemState = iota + Armed + Set +) + +func (i itemState) testAndSet(number int64, designator byte, result *period64, value *int64) (itemState, error) { + switch i { + case Unready: + return i, fmt.Errorf("%s: '%c' designator cannot occur here", result.input, designator) + case Set: + return i, fmt.Errorf("%s: '%c' designator cannot occur more than once", result.input, designator) } - return result.normalise64(true).toPeriod(), nil + *value = number + return Set, nil } -type parseState struct { - period, pcopy string - ok bool - err error -} +//------------------------------------------------------------------------------------------------- -func parseField(st parseState, mark byte) (int64, parseState) { - //fmt.Printf("%c %#v\n", mark, st) - r := int64(0) - m := strings.IndexByte(st.pcopy, mark) - if m > 0 { - r, st.err = parseDecimalFixedPoint(st.pcopy[:m], st.period) - if st.err != nil { - return 0, st - } - st.pcopy = st.pcopy[m+1:] - st.ok = true +func parseNextField(str, original string) (int64, byte, string, error) { + i := scanDigits(str) + if i < 0 { + return 0, 0, "", fmt.Errorf("%s: missing designator at the end", original) } - return r, st + + des := str[i] + number, err := parseDecimalNumber(str[:i], original, des) + return number, des, str[i+1:], err } -// Fixed-point three decimal places -func parseDecimalFixedPoint(s, original string) (int64, error) { - //was := s - dec := strings.IndexByte(s, '.') +// Fixed-point one decimal place +func parseDecimalNumber(number, original string, des byte) (int64, error) { + dec := strings.IndexByte(number, '.') if dec < 0 { - dec = strings.IndexByte(s, ',') + dec = strings.IndexByte(number, ',') } + var integer, fraction int64 + var err error if dec >= 0 { - dp := len(s) - dec - if dp > 1 { - s = s[:dec] + s[dec+1:dec+2] - } else { - s = s[:dec] + s[dec+1:] + "0" + integer, err = strconv.ParseInt(number[:dec], 10, 64) + if err == nil { + number = number[dec+1:] + switch len(number) { + case 0: // skip + case 1: + fraction, err = strconv.ParseInt(number, 10, 64) + default: + fraction, err = strconv.ParseInt(number[:1], 10, 64) + } } } else { - s = s + "0" + integer, err = strconv.ParseInt(number, 10, 64) } - return strconv.ParseInt(s, 10, 64) + if err != nil { + return 0, fmt.Errorf("%s: expected a number but found '%c'", original, des) + } + + return integer*10 + fraction, err +} + +// scanDigits finds the first non-digit byte after a given starting point. +// Note that it does not care about runes or UTF-8 encoding; it assumes that +// a period string is always valid ASCII as well as UTF-8. +func scanDigits(s string) int { + for i, c := range s { + if !isDigit(c) { + return i + } + } + return -1 +} + +func isDigit(c rune) bool { + return ('0' <= c && c <= '9') || c == '.' || c == ',' } diff --git a/vendor/github.com/rickb777/date/period/period.go b/vendor/github.com/rickb777/date/period/period.go index a9b39c6a0d6b..7eb2902a0f6f 100644 --- a/vendor/github.com/rickb777/date/period/period.go +++ b/vendor/github.com/rickb777/date/period/period.go @@ -9,14 +9,14 @@ import ( "time" ) -const daysPerYearE4 int64 = 3652425 // 365.2425 days by the Gregorian rule -const daysPerMonthE4 int64 = 304369 // 30.4369 days per month -const daysPerMonthE6 int64 = 30436875 // 30.436875 days per month +const daysPerYearE4 = 3652425 // 365.2425 days by the Gregorian rule +const daysPerMonthE4 = 304369 // 30.4369 days per month +const daysPerMonthE6 = 30436875 // 30.436875 days per month -const oneE4 int64 = 10000 -const oneE5 int64 = 100000 -const oneE6 int64 = 1000000 -const oneE7 int64 = 10000000 +const oneE4 = 10000 +const oneE5 = 100000 +const oneE6 = 1000000 +const oneE7 = 10000000 const hundredMs = 100 * time.Millisecond @@ -42,7 +42,6 @@ const hundredMs = 100 * time.Millisecond // // Note that although fractional weeks can be parsed, they will never be returned via String(). // This is because the number of weeks is always inferred from the number of days. -// type Period struct { years, months, days, hours, minutes, seconds int16 } @@ -52,6 +51,8 @@ type Period struct { // need to. // // All the parameters must have the same sign (otherwise a panic occurs). +// Because this implementation uses int16 internally, the paramters must +// be within the range ± 2^16 / 10. func NewYMD(years, months, days int) Period { return New(years, months, days, 0, 0, 0) } @@ -61,6 +62,8 @@ func NewYMD(years, months, days int) Period { // if you need to. // // All the parameters must have the same sign (otherwise a panic occurs). +// Because this implementation uses int16 internally, the paramters must +// be within the range ± 2^16 / 10. func NewHMS(hours, minutes, seconds int) Period { return New(0, 0, 0, hours, minutes, seconds) } @@ -82,8 +85,6 @@ func New(years, months, days, hours, minutes, seconds int) Period { years, months, days, hours, minutes, seconds)) } -// TODO NewFloat - // NewOf converts a time duration to a Period, and also indicates whether the conversion is precise. // Any time duration that spans more than ± 3276 hours will be approximated by assuming that there // are 24 hours per day, 365.2425 days per year (as per Gregorian calendar rules), and a month @@ -142,15 +143,15 @@ func NewOf(duration time.Duration) (p Period, precise bool) { // computations applied to the period can only be precise if they concern either the date (year, month, // day) part, or the clock (hour, minute, second) part, but not both. func Between(t1, t2 time.Time) (p Period) { - if t1.Location() != t2.Location() { - t2 = t2.In(t1.Location()) - } - sign := 1 if t2.Before(t1) { t1, t2, sign = t2, t1, -1 } + if t1.Location() != t2.Location() { + t2 = t2.In(t1.Location()) + } + year, month, day, hour, min, sec, hundredth := daysDiff(t1, t2) if sign < 0 { @@ -171,9 +172,9 @@ func daysDiff(t1, t2 time.Time) (year, month, day, hour, min, sec, hundredth int day = int(duration / (24 * time.Hour)) - hour = int(hh2 - hh1) - min = int(mm2 - mm1) - sec = int(ss2 - ss1) + hour = hh2 - hh1 + min = mm2 - mm1 + sec = ss2 - ss1 hundredth = (t2.Nanosecond() - t1.Nanosecond()) / 100000000 // Normalize negative values @@ -248,15 +249,22 @@ func (period Period) OnlyHMS() Period { // Abs converts a negative period to a positive one. func (period Period) Abs() Period { - return Period{absInt16(period.years), absInt16(period.months), absInt16(period.days), - absInt16(period.hours), absInt16(period.minutes), absInt16(period.seconds)} + a, _ := period.absNeg() + return a } -func absInt16(v int16) int16 { - if v < 0 { - return -v +func (period Period) absNeg() (Period, bool) { + if period.IsNegative() { + return period.Negate(), true } - return v + return period, false +} + +func (period Period) condNegate(neg bool) Period { + if neg { + return period.Negate() + } + return period } // Negate changes the sign of the period. @@ -264,45 +272,11 @@ func (period Period) Negate() Period { return Period{-period.years, -period.months, -period.days, -period.hours, -period.minutes, -period.seconds} } -// Add adds two periods together. Use this method along with Negate in order to subtract periods. -// -// The result is not normalised and may overflow arithmetically (to make this unlikely, use Normalise on -// the inputs before adding them). -func (period Period) Add(that Period) Period { - return Period{ - period.years + that.years, - period.months + that.months, - period.days + that.days, - period.hours + that.hours, - period.minutes + that.minutes, - period.seconds + that.seconds, - } -} - -// Scale a period by a multiplication factor. Obviously, this can both enlarge and shrink it, -// and change the sign if negative. The result is normalised. -// -// Bear in mind that the internal representation is limited by fixed-point arithmetic with one -// decimal place; each field is only int16. -// -// Known issue: scaling by a large reduction factor (i.e. much less than one) doesn't work properly. -func (period Period) Scale(factor float32) Period { - - if -0.5 < factor && factor < 0.5 { - d, pr1 := period.Duration() - mul := float64(d) * float64(factor) - p2, pr2 := NewOf(time.Duration(mul)) - return p2.Normalise(pr1 && pr2) +func absInt16(v int16) int16 { + if v < 0 { + return -v } - - y := int64(float32(period.years) * factor) - m := int64(float32(period.months) * factor) - d := int64(float32(period.days) * factor) - hh := int64(float32(period.hours) * factor) - mm := int64(float32(period.minutes) * factor) - ss := int64(float32(period.seconds) * factor) - - return (&period64{y, m, d, hh, mm, ss, false}).normalise64(true).toPeriod() + return v } // Years gets the whole number of years in the period. @@ -422,29 +396,7 @@ func (period Period) SecondsFloat() float32 { return float32(period.seconds) / 10 } -// AddTo adds the period to a time, returning the result. -// A flag is also returned that is true when the conversion was precise and false otherwise. -// -// When the period specifies hours, minutes and seconds only, the result is precise. -// Also, when the period specifies whole years, months and days (i.e. without fractions), the -// result is precise. However, when years, months or days contains fractions, the result -// is only an approximation (it assumes that all days are 24 hours and every year is 365.2425 -// days, as per Gregorian calendar rules). -func (period Period) AddTo(t time.Time) (time.Time, bool) { - wholeYears := (period.years % 10) == 0 - wholeMonths := (period.months % 10) == 0 - wholeDays := (period.days % 10) == 0 - - if wholeYears && wholeMonths && wholeDays { - // in this case, time.AddDate provides an exact solution - stE3 := totalSecondsE3(period) - t1 := t.AddDate(int(period.years/10), int(period.months/10), int(period.days/10)) - return t1.Add(stE3 * time.Millisecond), true - } - - d, precise := period.Duration() - return t.Add(d), precise -} +//------------------------------------------------------------------------------------------------- // DurationApprox converts a period to the equivalent duration in nanoseconds. // When the period specifies hours, minutes and seconds only, the result is precise. @@ -514,7 +466,8 @@ func (period Period) TotalMonthsApprox() int { // // Because the number of hours per day is imprecise (due to daylight savings etc), and because // the number of days per month is variable in the Gregorian calendar, there is a reluctance -// to transfer time too or from the days element. To give control over this, there are two modes. +// to transfer time to or from the days element, or to transfer days to or from the months +// element. To give control over this, there are two modes. // // In precise mode: // Multiples of 60 seconds become minutes. @@ -527,220 +480,138 @@ func (period Period) TotalMonthsApprox() int { // // Note that leap seconds are disregarded: every minute is assumed to have 60 seconds. func (period Period) Normalise(precise bool) Period { - const limit = 32670 - (32670 / 60) - - // can we use a quicker algorithm for HHMMSS with int16 arithmetic? - if period.years == 0 && period.months == 0 && - (!precise || period.days == 0) && - period.hours > -limit && period.hours < limit { - - return period.normaliseHHMMSS(precise) - } - - // can we use a quicker algorithm for YYMM with int16 arithmetic? - if (period.years != 0 || period.months != 0) && //period.months%10 == 0 && - period.days == 0 && period.hours == 0 && period.minutes == 0 && period.seconds == 0 { - - return period.normaliseYYMM() - } - - // do things the no-nonsense way using int64 arithmetic - return period.toPeriod64().normalise64(precise).toPeriod() -} - -func (period Period) normaliseHHMMSS(precise bool) Period { - s := period.Sign() - ap := period.Abs() - - // remember that the fields are all fixed-point 1E1 - ap.minutes += (ap.seconds / 600) * 10 - ap.seconds = ap.seconds % 600 - - ap.hours += (ap.minutes / 600) * 10 - ap.minutes = ap.minutes % 600 - - // up to 36 hours stays as hours - if !precise && ap.hours > 360 { - ap.days += (ap.hours / 240) * 10 - ap.hours = ap.hours % 240 - } - - d10 := ap.days % 10 - if d10 != 0 && (ap.hours != 0 || ap.minutes != 0 || ap.seconds != 0) { - ap.hours += d10 * 24 - ap.days -= d10 - } - - hh10 := ap.hours % 10 - if hh10 != 0 { - ap.minutes += hh10 * 60 - ap.hours -= hh10 - } - - mm10 := ap.minutes % 10 - if mm10 != 0 { - ap.seconds += mm10 * 60 - ap.minutes -= mm10 - } - - if s < 0 { - return ap.Negate() - } - return ap -} - -func (period Period) normaliseYYMM() Period { - s := period.Sign() - ap := period.Abs() - - // remember that the fields are all fixed-point 1E1 - if ap.months > 129 { - ap.years += (ap.months / 120) * 10 - ap.months = ap.months % 120 - } - - y10 := ap.years % 10 - if y10 != 0 && (ap.years < 10 || ap.months != 0) { - ap.months += y10 * 12 - ap.years -= y10 - } - - if s < 0 { - return ap.Negate() - } - return ap -} - -//------------------------------------------------------------------------------------------------- - -// used for stages in arithmetic -type period64 struct { - years, months, days, hours, minutes, seconds int64 - neg bool + n, _ := period.toPeriod64("").normalise64(precise).toPeriod() + return n } -func (period Period) toPeriod64() *period64 { - return &period64{ - int64(period.years), int64(period.months), int64(period.days), - int64(period.hours), int64(period.minutes), int64(period.seconds), - false, - } -} - -func (p *period64) toPeriod() Period { - if p.neg { - return Period{ - int16(-p.years), int16(-p.months), int16(-p.days), - int16(-p.hours), int16(-p.minutes), int16(-p.seconds), +// Simplify applies some heuristic simplifications with the objective of reducing the number +// of non-zero fields and thus making the rendered form simpler. It should be applied to +// a normalised period, otherwise the results may be unpredictable. +// +// Note that months and days are never combined, due to the variability of month lengths. +// Days and hours are only combined when imprecise behaviour is selected; this is due to +// daylight savings transitions, during which there are more than or fewer than 24 hours +// per day. +// +// The following transformation rules are applied in order: +// +// * P1YnM becomes 12+n months for 0 < n <= 6 +// * P1DTnH becomes 24+n hours for 0 < n <= 6 (unless precise is true) +// * PT1HnM becomes 60+n minutes for 0 < n <= 10 +// * PT1MnS becomes 60+n seconds for 0 < n <= 10 +// +// At each step, if a fraction exists and would affect the calculation, the transformations +// stop. Also, when not precise, +// +// * for periods of at least ten years, month proper fractions are discarded +// * for periods of at least a year, day proper fractions are discarded +// * for periods of at least a month, hour proper fractions are discarded +// * for periods of at least a day, minute proper fractions are discarded +// * for periods of at least an hour, second proper fractions are discarded +// +// The thresholds can be set using the varargs th parameter. By default, the thresholds a, +// b, c, d are 6 months, 6 hours, 10 minutes, 10 seconds respectively as listed in the rules +// above. +// +// * No thresholds is equivalent to 6, 6, 10, 10. +// * A single threshold a is equivalent to a, a, a, a. +// * Two thresholds a, b are equivalent to a, a, b, b. +// * Three thresholds a, b, c are equivalent to a, b, c, c. +// * Four thresholds a, b, c, d are used as provided. +func (period Period) Simplify(precise bool, th ...int) Period { + switch len(th) { + case 0: + return period.doSimplify(precise, 60, 60, 100, 100) + case 1: + return period.doSimplify(precise, int16(th[0]*10), int16(th[0]*10), int16(th[0]*10), int16(th[0]*10)) + case 2: + return period.doSimplify(precise, int16(th[0]*10), int16(th[0]*10), int16(th[1]*10), int16(th[1]*10)) + case 3: + return period.doSimplify(precise, int16(th[0]*10), int16(th[1]*10), int16(th[2]*10), int16(th[2]*10)) + default: + return period.doSimplify(precise, int16(th[0]*10), int16(th[1]*10), int16(th[2]*10), int16(th[3]*10)) + } +} + +func (period Period) doSimplify(precise bool, a, b, c, d int16) Period { + if period.years%10 != 0 { + return period + } + + ap, neg := period.absNeg() + + // single year is dropped if there are some months + if ap.years == 10 && + 0 < ap.months && ap.months <= a && + ap.days == 0 { + ap.months += 120 + ap.years = 0 + } + + if ap.months%10 != 0 { + // month fraction is dropped for periods of at least ten years (1:120) + months := ap.months / 10 + if !precise && ap.years >= 100 && months == 0 { + ap.months = 0 } + return ap.condNegate(neg) } - return Period{ - int16(p.years), int16(p.months), int16(p.days), - int16(p.hours), int16(p.minutes), int16(p.seconds), - } -} - -func (p *period64) normalise64(precise bool) *period64 { - return p.abs().rippleUp(precise).moveFractionToRight() -} - -func (p *period64) abs() *period64 { - - if !p.neg { - if p.years < 0 { - p.years = -p.years - p.neg = true - } - - if p.months < 0 { - p.months = -p.months - p.neg = true - } - - if p.days < 0 { - p.days = -p.days - p.neg = true + if ap.days%10 != 0 { + // day fraction is dropped for periods of at least a year (1:365) + days := ap.days / 10 + if !precise && (ap.years > 0 || ap.months >= 120) && days == 0 { + ap.days = 0 } - - if p.hours < 0 { - p.hours = -p.hours - p.neg = true - } - - if p.minutes < 0 { - p.minutes = -p.minutes - p.neg = true - } - - if p.seconds < 0 { - p.seconds = -p.seconds - p.neg = true - } - } - return p -} - -func (p *period64) rippleUp(precise bool) *period64 { - // remember that the fields are all fixed-point 1E1 - - p.minutes = p.minutes + (p.seconds/600)*10 - p.seconds = p.seconds % 600 - - p.hours = p.hours + (p.minutes/600)*10 - p.minutes = p.minutes % 600 - - // 32670-(32670/60)-(32670/3600) = 32760 - 546 - 9.1 = 32204.9 - if !precise || p.hours > 32204 { - p.days += (p.hours / 240) * 10 - p.hours = p.hours % 240 + return ap.condNegate(neg) } - if !precise || p.days > 32760 { - dE6 := p.days * oneE6 - p.months += dE6 / daysPerMonthE6 - p.days = (dE6 % daysPerMonthE6) / oneE6 + if !precise && ap.days == 10 && + ap.years == 0 && + ap.months == 0 && + 0 < ap.hours && ap.hours <= b { + ap.hours += 240 + ap.days = 0 } - p.years = p.years + (p.months/120)*10 - p.months = p.months % 120 - - return p -} - -// moveFractionToRight applies the rule that only the smallest field is permitted to have a decimal fraction. -func (p *period64) moveFractionToRight() *period64 { - // remember that the fields are all fixed-point 1E1 - - y10 := p.years % 10 - if y10 != 0 && (p.months != 0 || p.days != 0 || p.hours != 0 || p.minutes != 0 || p.seconds != 0) { - p.months += y10 * 12 - p.years = (p.years / 10) * 10 + if ap.hours%10 != 0 { + // hour fraction is dropped for periods of at least a month (1:720) + hours := ap.hours / 10 + if !precise && (ap.years > 0 || ap.months > 0 || ap.days >= 300) && hours == 0 { + ap.hours = 0 + } + return ap.condNegate(neg) } - m10 := p.months % 10 - if m10 != 0 && (p.days != 0 || p.hours != 0 || p.minutes != 0 || p.seconds != 0) { - p.days += (m10 * daysPerMonthE6) / oneE6 - p.months = (p.months / 10) * 10 + if ap.hours == 10 && + 0 < ap.minutes && ap.minutes <= c { + ap.minutes += 600 + ap.hours = 0 } - d10 := p.days % 10 - if d10 != 0 && (p.hours != 0 || p.minutes != 0 || p.seconds != 0) { - p.hours += d10 * 24 - p.days = (p.days / 10) * 10 + if ap.minutes%10 != 0 { + // minute fraction is dropped for periods of at least a day (1:1440) + minutes := ap.minutes / 10 + if !precise && (ap.years > 0 || ap.months > 0 || ap.days > 0 || ap.hours >= 240) && minutes == 0 { + ap.minutes = 0 + } + return ap.condNegate(neg) } - hh10 := p.hours % 10 - if hh10 != 0 && (p.minutes != 0 || p.seconds != 0) { - p.minutes += hh10 * 60 - p.hours = (p.hours / 10) * 10 + if ap.minutes == 10 && + ap.hours == 0 && + 0 < ap.seconds && ap.seconds <= d { + ap.seconds += 600 + ap.minutes = 0 } - mm10 := p.minutes % 10 - if mm10 != 0 && p.seconds != 0 { - p.seconds += mm10 * 60 - p.minutes = (p.minutes / 10) * 10 + if ap.seconds%10 != 0 { + // second fraction is dropped for periods of at least an hour (1:3600) + seconds := ap.seconds / 10 + if !precise && (ap.years > 0 || ap.months > 0 || ap.days > 0 || ap.hours > 0 || ap.minutes >= 600) && seconds == 0 { + ap.seconds = 0 + } } - return p + return ap.condNegate(neg) } diff --git a/vendor/github.com/rickb777/date/period/period64.go b/vendor/github.com/rickb777/date/period/period64.go new file mode 100644 index 000000000000..f3e2f4b0bce5 --- /dev/null +++ b/vendor/github.com/rickb777/date/period/period64.go @@ -0,0 +1,142 @@ +package period + +import ( + "fmt" + "math" + "strings" +) + +// used for stages in arithmetic +type period64 struct { + // always positive values + years, months, days, hours, minutes, seconds int64 + // true if the period is negative + neg bool + input string +} + +func (period Period) toPeriod64(input string) *period64 { + if period.IsNegative() { + return &period64{ + years: int64(-period.years), months: int64(-period.months), days: int64(-period.days), + hours: int64(-period.hours), minutes: int64(-period.minutes), seconds: int64(-period.seconds), + neg: true, + input: input, + } + } + return &period64{ + years: int64(period.years), months: int64(period.months), days: int64(period.days), + hours: int64(period.hours), minutes: int64(period.minutes), seconds: int64(period.seconds), + input: input, + } +} + +func (p64 *period64) toPeriod() (Period, error) { + var f []string + if p64.years > math.MaxInt16 { + f = append(f, "years") + } + if p64.months > math.MaxInt16 { + f = append(f, "months") + } + if p64.days > math.MaxInt16 { + f = append(f, "days") + } + if p64.hours > math.MaxInt16 { + f = append(f, "hours") + } + if p64.minutes > math.MaxInt16 { + f = append(f, "minutes") + } + if p64.seconds > math.MaxInt16 { + f = append(f, "seconds") + } + + if len(f) > 0 { + if p64.input == "" { + p64.input = p64.String() + } + return Period{}, fmt.Errorf("%s: integer overflow occurred in %s", p64.input, strings.Join(f, ",")) + } + + if p64.neg { + return Period{ + int16(-p64.years), int16(-p64.months), int16(-p64.days), + int16(-p64.hours), int16(-p64.minutes), int16(-p64.seconds), + }, nil + } + + return Period{ + int16(p64.years), int16(p64.months), int16(p64.days), + int16(p64.hours), int16(p64.minutes), int16(p64.seconds), + }, nil +} + +func (p64 *period64) normalise64(precise bool) *period64 { + return p64.rippleUp(precise).moveFractionToRight() +} + +func (p64 *period64) rippleUp(precise bool) *period64 { + // remember that the fields are all fixed-point 1E1 + + p64.minutes += (p64.seconds / 600) * 10 + p64.seconds = p64.seconds % 600 + + p64.hours += (p64.minutes / 600) * 10 + p64.minutes = p64.minutes % 600 + + // 32670-(32670/60)-(32670/3600) = 32760 - 546 - 9.1 = 32204.9 + if !precise || p64.hours > 32204 { + p64.days += (p64.hours / 240) * 10 + p64.hours = p64.hours % 240 + } + + if !precise || p64.days > 32760 { + dE6 := p64.days * oneE5 + p64.months += (dE6 / daysPerMonthE6) * 10 + p64.days = (dE6 % daysPerMonthE6) / oneE5 + } + + p64.years += (p64.months / 120) * 10 + p64.months = p64.months % 120 + + return p64 +} + +// moveFractionToRight attempts to remove fractions in higher-order fields by moving their value to the +// next-lower-order field. For example, fractional years become months. +func (p64 *period64) moveFractionToRight() *period64 { + // remember that the fields are all fixed-point 1E1 + + y10 := p64.years % 10 + if y10 != 0 && (p64.months != 0 || p64.days != 0 || p64.hours != 0 || p64.minutes != 0 || p64.seconds != 0) { + p64.months += y10 * 12 + p64.years = (p64.years / 10) * 10 + } + + m10 := p64.months % 10 + if m10 != 0 && (p64.days != 0 || p64.hours != 0 || p64.minutes != 0 || p64.seconds != 0) { + p64.days += (m10 * daysPerMonthE6) / oneE6 + p64.months = (p64.months / 10) * 10 + } + + d10 := p64.days % 10 + if d10 != 0 && (p64.hours != 0 || p64.minutes != 0 || p64.seconds != 0) { + p64.hours += d10 * 24 + p64.days = (p64.days / 10) * 10 + } + + hh10 := p64.hours % 10 + if hh10 != 0 && (p64.minutes != 0 || p64.seconds != 0) { + p64.minutes += hh10 * 60 + p64.hours = (p64.hours / 10) * 10 + } + + mm10 := p64.minutes % 10 + if mm10 != 0 && p64.seconds != 0 { + p64.seconds += mm10 * 60 + p64.minutes = (p64.minutes / 10) * 10 + } + + return p64 +} diff --git a/vendor/github.com/rickb777/date/period/sql.go b/vendor/github.com/rickb777/date/period/sql.go new file mode 100644 index 000000000000..31b546429aa3 --- /dev/null +++ b/vendor/github.com/rickb777/date/period/sql.go @@ -0,0 +1,36 @@ +// Copyright 2015 Rick Beton. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package period + +import ( + "database/sql/driver" + "fmt" +) + +// Scan parses some value, which can be either string or []byte. +// It implements sql.Scanner, https://golang.org/pkg/database/sql/#Scanner +func (period *Period) Scan(value interface{}) (err error) { + if value == nil { + return nil + } + + err = nil + switch v := value.(type) { + case []byte: + *period, err = Parse(string(v), false) + case string: + *period, err = Parse(v, false) + default: + err = fmt.Errorf("%T %+v is not a meaningful period", value, value) + } + + return err +} + +// Value converts the period to a string. It implements driver.Valuer, +// https://golang.org/pkg/database/sql/driver/#Valuer +func (period Period) Value() (driver.Value, error) { + return period.String(), nil +} diff --git a/vendor/github.com/rickb777/plural/README.md b/vendor/github.com/rickb777/plural/README.md index b73bc2566692..1085b1087ba9 100644 --- a/vendor/github.com/rickb777/plural/README.md +++ b/vendor/github.com/rickb777/plural/README.md @@ -1,7 +1,7 @@ # plural - Simple Go API for Pluralisation. [![GoDoc](https://img.shields.io/badge/api-Godoc-blue.svg?style=flat-square)](https://godoc.org/github.com/rickb777/plural) -[![Build Status](https://travis-ci.org/rickb777/plural.svg?branch=master)](https://travis-ci.org/rickb777/plural) +[![Build Status](https://travis-ci.org/rickb777/plural.svg?branch=master)](https://travis-ci.org/rickb777/plural/builds) [![Coverage Status](https://coveralls.io/repos/github/rickb777/plural/badge.svg?branch=master&service=github)](https://coveralls.io/github/rickb777/plural?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/rickb777/plural)](https://goreportcard.com/report/github.com/rickb777/plural) [![Issues](https://img.shields.io/github/issues/rickb777/plural.svg)](https://github.com/rickb777/plural/issues) diff --git a/vendor/github.com/rickb777/plural/build+test.sh b/vendor/github.com/rickb777/plural/build+test.sh index d4a383420658..17b15af25661 100644 --- a/vendor/github.com/rickb777/plural/build+test.sh +++ b/vendor/github.com/rickb777/plural/build+test.sh @@ -1,13 +1,13 @@ #!/bin/bash -e -cd $(dirname $0) -PATH=$HOME/gopath/bin:$GOPATH/bin:$PATH +cd "$(dirname $0)" +PATH=$HOME/go/bin:$PATH if ! type -p goveralls; then - echo go get github.com/mattn/goveralls - go get github.com/mattn/goveralls + echo go install github.com/mattn/goveralls + go install github.com/mattn/goveralls fi -echo date... +echo plural... go test -v -covermode=count -coverprofile=date.out . go tool cover -func=date.out [ -z "$COVERALLS_TOKEN" ] || goveralls -coverprofile=date.out -service=travis-ci -repotoken $COVERALLS_TOKEN diff --git a/vendor/github.com/vmihailenco/msgpack/v4/.golangci.yml b/vendor/github.com/vmihailenco/msgpack/v4/.golangci.yml deleted file mode 100644 index 98d6cb7797f2..000000000000 --- a/vendor/github.com/vmihailenco/msgpack/v4/.golangci.yml +++ /dev/null @@ -1,12 +0,0 @@ -run: - concurrency: 8 - deadline: 5m - tests: false -linters: - enable-all: true - disable: - - gochecknoglobals - - gocognit - - godox - - wsl - - funlen diff --git a/vendor/github.com/vmihailenco/msgpack/v4/README.md b/vendor/github.com/vmihailenco/msgpack/v4/README.md deleted file mode 100644 index a5b1004e08c1..000000000000 --- a/vendor/github.com/vmihailenco/msgpack/v4/README.md +++ /dev/null @@ -1,72 +0,0 @@ -# MessagePack encoding for Golang - -[![Build Status](https://travis-ci.org/vmihailenco/msgpack.svg?branch=v2)](https://travis-ci.org/vmihailenco/msgpack) -[![GoDoc](https://godoc.org/github.com/vmihailenco/msgpack?status.svg)](https://godoc.org/github.com/vmihailenco/msgpack) - -Supports: -- Primitives, arrays, maps, structs, time.Time and interface{}. -- Appengine *datastore.Key and datastore.Cursor. -- [CustomEncoder](https://godoc.org/github.com/vmihailenco/msgpack#example-CustomEncoder)/CustomDecoder interfaces for custom encoding. -- [Extensions](https://godoc.org/github.com/vmihailenco/msgpack#example-RegisterExt) to encode type information. -- Renaming fields via `msgpack:"my_field_name"` and alias via `msgpack:"alias:another_name"`. -- Omitting individual empty fields via `msgpack:",omitempty"` tag or all [empty fields in a struct](https://godoc.org/github.com/vmihailenco/msgpack#example-Marshal--OmitEmpty). -- [Map keys sorting](https://godoc.org/github.com/vmihailenco/msgpack#Encoder.SortMapKeys). -- Encoding/decoding all [structs as arrays](https://godoc.org/github.com/vmihailenco/msgpack#Encoder.UseArrayForStructs) or [individual structs](https://godoc.org/github.com/vmihailenco/msgpack#example-Marshal--AsArray). -- [Encoder.UseJSONTag](https://godoc.org/github.com/vmihailenco/msgpack#Encoder.UseJSONTag) with [Decoder.UseJSONTag](https://godoc.org/github.com/vmihailenco/msgpack#Decoder.UseJSONTag) can turn msgpack into drop-in replacement for JSON. -- Simple but very fast and efficient [queries](https://godoc.org/github.com/vmihailenco/msgpack#example-Decoder-Query). - -API docs: https://godoc.org/github.com/vmihailenco/msgpack. -Examples: https://godoc.org/github.com/vmihailenco/msgpack#pkg-examples. - -## Installation - -This project uses [Go Modules](https://github.com/golang/go/wiki/Modules) and semantic import versioning since v4: - -``` shell -go mod init github.com/my/repo -go get github.com/vmihailenco/msgpack/v4 -``` - -## Quickstart - -``` go -import "github.com/vmihailenco/msgpack/v4" - -func ExampleMarshal() { - type Item struct { - Foo string - } - - b, err := msgpack.Marshal(&Item{Foo: "bar"}) - if err != nil { - panic(err) - } - - var item Item - err = msgpack.Unmarshal(b, &item) - if err != nil { - panic(err) - } - fmt.Println(item.Foo) - // Output: bar -} -``` - -## Benchmark - -``` -BenchmarkStructVmihailencoMsgpack-4 200000 12814 ns/op 2128 B/op 26 allocs/op -BenchmarkStructUgorjiGoMsgpack-4 100000 17678 ns/op 3616 B/op 70 allocs/op -BenchmarkStructUgorjiGoCodec-4 100000 19053 ns/op 7346 B/op 23 allocs/op -BenchmarkStructJSON-4 20000 69438 ns/op 7864 B/op 26 allocs/op -BenchmarkStructGOB-4 10000 104331 ns/op 14664 B/op 278 allocs/op -``` - -## Howto - -Please go through [examples](https://godoc.org/github.com/vmihailenco/msgpack#pkg-examples) to get an idea how to use this package. - -## See also - -- [Golang PostgreSQL ORM](https://github.com/go-pg/pg) -- [Golang message task queue](https://github.com/vmihailenco/taskq) diff --git a/vendor/github.com/vmihailenco/msgpack/v4/appengine.go b/vendor/github.com/vmihailenco/msgpack/v4/appengine.go deleted file mode 100644 index e8e91e53f35d..000000000000 --- a/vendor/github.com/vmihailenco/msgpack/v4/appengine.go +++ /dev/null @@ -1,64 +0,0 @@ -// +build appengine - -package msgpack - -import ( - "reflect" - - ds "google.golang.org/appengine/datastore" -) - -func init() { - Register((*ds.Key)(nil), encodeDatastoreKeyValue, decodeDatastoreKeyValue) - Register((*ds.Cursor)(nil), encodeDatastoreCursorValue, decodeDatastoreCursorValue) -} - -func EncodeDatastoreKey(e *Encoder, key *ds.Key) error { - if key == nil { - return e.EncodeNil() - } - return e.EncodeString(key.Encode()) -} - -func encodeDatastoreKeyValue(e *Encoder, v reflect.Value) error { - key := v.Interface().(*ds.Key) - return EncodeDatastoreKey(e, key) -} - -func DecodeDatastoreKey(d *Decoder) (*ds.Key, error) { - v, err := d.DecodeString() - if err != nil { - return nil, err - } - if v == "" { - return nil, nil - } - return ds.DecodeKey(v) -} - -func decodeDatastoreKeyValue(d *Decoder, v reflect.Value) error { - key, err := DecodeDatastoreKey(d) - if err != nil { - return err - } - v.Set(reflect.ValueOf(key)) - return nil -} - -func encodeDatastoreCursorValue(e *Encoder, v reflect.Value) error { - cursor := v.Interface().(ds.Cursor) - return e.Encode(cursor.String()) -} - -func decodeDatastoreCursorValue(d *Decoder, v reflect.Value) error { - s, err := d.DecodeString() - if err != nil { - return err - } - cursor, err := ds.DecodeCursor(s) - if err != nil { - return err - } - v.Set(reflect.ValueOf(cursor)) - return nil -} diff --git a/vendor/github.com/vmihailenco/msgpack/v4/codes/codes.go b/vendor/github.com/vmihailenco/msgpack/v4/codes/codes.go deleted file mode 100644 index 28e0a5a88b4d..000000000000 --- a/vendor/github.com/vmihailenco/msgpack/v4/codes/codes.go +++ /dev/null @@ -1,90 +0,0 @@ -package codes - -type Code byte - -var ( - PosFixedNumHigh Code = 0x7f - NegFixedNumLow Code = 0xe0 - - Nil Code = 0xc0 - - False Code = 0xc2 - True Code = 0xc3 - - Float Code = 0xca - Double Code = 0xcb - - Uint8 Code = 0xcc - Uint16 Code = 0xcd - Uint32 Code = 0xce - Uint64 Code = 0xcf - - Int8 Code = 0xd0 - Int16 Code = 0xd1 - Int32 Code = 0xd2 - Int64 Code = 0xd3 - - FixedStrLow Code = 0xa0 - FixedStrHigh Code = 0xbf - FixedStrMask Code = 0x1f - Str8 Code = 0xd9 - Str16 Code = 0xda - Str32 Code = 0xdb - - Bin8 Code = 0xc4 - Bin16 Code = 0xc5 - Bin32 Code = 0xc6 - - FixedArrayLow Code = 0x90 - FixedArrayHigh Code = 0x9f - FixedArrayMask Code = 0xf - Array16 Code = 0xdc - Array32 Code = 0xdd - - FixedMapLow Code = 0x80 - FixedMapHigh Code = 0x8f - FixedMapMask Code = 0xf - Map16 Code = 0xde - Map32 Code = 0xdf - - FixExt1 Code = 0xd4 - FixExt2 Code = 0xd5 - FixExt4 Code = 0xd6 - FixExt8 Code = 0xd7 - FixExt16 Code = 0xd8 - Ext8 Code = 0xc7 - Ext16 Code = 0xc8 - Ext32 Code = 0xc9 -) - -func IsFixedNum(c Code) bool { - return c <= PosFixedNumHigh || c >= NegFixedNumLow -} - -func IsFixedMap(c Code) bool { - return c >= FixedMapLow && c <= FixedMapHigh -} - -func IsFixedArray(c Code) bool { - return c >= FixedArrayLow && c <= FixedArrayHigh -} - -func IsFixedString(c Code) bool { - return c >= FixedStrLow && c <= FixedStrHigh -} - -func IsString(c Code) bool { - return IsFixedString(c) || c == Str8 || c == Str16 || c == Str32 -} - -func IsBin(c Code) bool { - return c == Bin8 || c == Bin16 || c == Bin32 -} - -func IsFixedExt(c Code) bool { - return c >= FixExt1 && c <= FixExt16 -} - -func IsExt(c Code) bool { - return IsFixedExt(c) || c == Ext8 || c == Ext16 || c == Ext32 -} diff --git a/vendor/github.com/vmihailenco/msgpack/v4/ext.go b/vendor/github.com/vmihailenco/msgpack/v4/ext.go deleted file mode 100644 index 17e709bc8ff6..000000000000 --- a/vendor/github.com/vmihailenco/msgpack/v4/ext.go +++ /dev/null @@ -1,244 +0,0 @@ -package msgpack - -import ( - "bytes" - "fmt" - "reflect" - "sync" - - "github.com/vmihailenco/msgpack/v4/codes" -) - -type extInfo struct { - Type reflect.Type - Decoder decoderFunc -} - -var extTypes = make(map[int8]*extInfo) - -var bufferPool = &sync.Pool{ - New: func() interface{} { - return new(bytes.Buffer) - }, -} - -// RegisterExt records a type, identified by a value for that type, -// under the provided id. That id will identify the concrete type of a value -// sent or received as an interface variable. Only types that will be -// transferred as implementations of interface values need to be registered. -// Expecting to be used only during initialization, it panics if the mapping -// between types and ids is not a bijection. -func RegisterExt(id int8, value interface{}) { - typ := reflect.TypeOf(value) - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - ptr := reflect.PtrTo(typ) - - if _, ok := extTypes[id]; ok { - panic(fmt.Errorf("msgpack: ext with id=%d is already registered", id)) - } - - registerExt(id, ptr, getEncoder(ptr), getDecoder(ptr)) - registerExt(id, typ, getEncoder(typ), getDecoder(typ)) -} - -func registerExt(id int8, typ reflect.Type, enc encoderFunc, dec decoderFunc) { - if enc != nil { - typeEncMap.Store(typ, makeExtEncoder(id, enc)) - } - if dec != nil { - extTypes[id] = &extInfo{ - Type: typ, - Decoder: dec, - } - typeDecMap.Store(typ, makeExtDecoder(id, dec)) - } -} - -func (e *Encoder) EncodeExtHeader(typeID int8, length int) error { - if err := e.encodeExtLen(length); err != nil { - return err - } - if err := e.w.WriteByte(byte(typeID)); err != nil { - return err - } - return nil -} - -func makeExtEncoder(typeID int8, enc encoderFunc) encoderFunc { - return func(e *Encoder, v reflect.Value) error { - buf := bufferPool.Get().(*bytes.Buffer) - defer bufferPool.Put(buf) - buf.Reset() - - oldw := e.w - e.w = buf - err := enc(e, v) - e.w = oldw - - if err != nil { - return err - } - - err = e.EncodeExtHeader(typeID, buf.Len()) - if err != nil { - return err - } - return e.write(buf.Bytes()) - } -} - -func makeExtDecoder(typeID int8, dec decoderFunc) decoderFunc { - return func(d *Decoder, v reflect.Value) error { - c, err := d.PeekCode() - if err != nil { - return err - } - - if !codes.IsExt(c) { - return dec(d, v) - } - - id, extLen, err := d.DecodeExtHeader() - if err != nil { - return err - } - - if id != typeID { - return fmt.Errorf("msgpack: got ext type=%d, wanted %d", id, typeID) - } - - d.extLen = extLen - return dec(d, v) - } -} - -func (e *Encoder) encodeExtLen(l int) error { - switch l { - case 1: - return e.writeCode(codes.FixExt1) - case 2: - return e.writeCode(codes.FixExt2) - case 4: - return e.writeCode(codes.FixExt4) - case 8: - return e.writeCode(codes.FixExt8) - case 16: - return e.writeCode(codes.FixExt16) - } - if l < 256 { - return e.write1(codes.Ext8, uint8(l)) - } - if l < 65536 { - return e.write2(codes.Ext16, uint16(l)) - } - return e.write4(codes.Ext32, uint32(l)) -} - -func (d *Decoder) parseExtLen(c codes.Code) (int, error) { - switch c { - case codes.FixExt1: - return 1, nil - case codes.FixExt2: - return 2, nil - case codes.FixExt4: - return 4, nil - case codes.FixExt8: - return 8, nil - case codes.FixExt16: - return 16, nil - case codes.Ext8: - n, err := d.uint8() - return int(n), err - case codes.Ext16: - n, err := d.uint16() - return int(n), err - case codes.Ext32: - n, err := d.uint32() - return int(n), err - default: - return 0, fmt.Errorf("msgpack: invalid code=%x decoding ext length", c) - } -} - -func (d *Decoder) extHeader(c codes.Code) (int8, int, error) { - length, err := d.parseExtLen(c) - if err != nil { - return 0, 0, err - } - - typeID, err := d.readCode() - if err != nil { - return 0, 0, err - } - - return int8(typeID), length, nil -} - -func (d *Decoder) DecodeExtHeader() (typeID int8, length int, err error) { - c, err := d.readCode() - if err != nil { - return - } - return d.extHeader(c) -} - -func (d *Decoder) extInterface(c codes.Code) (interface{}, error) { - extID, extLen, err := d.extHeader(c) - if err != nil { - return nil, err - } - - info, ok := extTypes[extID] - if !ok { - return nil, fmt.Errorf("msgpack: unknown ext id=%d", extID) - } - - v := reflect.New(info.Type) - - d.extLen = extLen - err = info.Decoder(d, v.Elem()) - d.extLen = 0 - if err != nil { - return nil, err - } - - return v.Interface(), nil -} - -func (d *Decoder) skipExt(c codes.Code) error { - n, err := d.parseExtLen(c) - if err != nil { - return err - } - return d.skipN(n + 1) -} - -func (d *Decoder) skipExtHeader(c codes.Code) error { - // Read ext type. - _, err := d.readCode() - if err != nil { - return err - } - // Read ext body len. - for i := 0; i < extHeaderLen(c); i++ { - _, err := d.readCode() - if err != nil { - return err - } - } - return nil -} - -func extHeaderLen(c codes.Code) int { - switch c { - case codes.Ext8: - return 1 - case codes.Ext16: - return 2 - case codes.Ext32: - return 4 - } - return 0 -} diff --git a/vendor/github.com/vmihailenco/msgpack/v4/intern.go b/vendor/github.com/vmihailenco/msgpack/v4/intern.go deleted file mode 100644 index 6ca5692739ab..000000000000 --- a/vendor/github.com/vmihailenco/msgpack/v4/intern.go +++ /dev/null @@ -1,236 +0,0 @@ -package msgpack - -import ( - "encoding/binary" - "errors" - "fmt" - "math" - "reflect" - - "github.com/vmihailenco/msgpack/v4/codes" -) - -var internStringExtID int8 = -128 - -var errUnexpectedCode = errors.New("msgpack: unexpected code") - -func encodeInternInterfaceValue(e *Encoder, v reflect.Value) error { - if v.IsNil() { - return e.EncodeNil() - } - - v = v.Elem() - if v.Kind() == reflect.String { - return encodeInternStringValue(e, v) - } - return e.EncodeValue(v) -} - -func encodeInternStringValue(e *Encoder, v reflect.Value) error { - s := v.String() - - if s != "" { - if idx, ok := e.intern[s]; ok { - return e.internStringIndex(idx) - } - - if e.intern == nil { - e.intern = make(map[string]int) - } - - idx := len(e.intern) - e.intern[s] = idx - } - - return e.EncodeString(s) -} - -func (e *Encoder) internStringIndex(idx int) error { - if idx < math.MaxUint8 { - if err := e.writeCode(codes.FixExt1); err != nil { - return err - } - if err := e.w.WriteByte(byte(internStringExtID)); err != nil { - return err - } - return e.w.WriteByte(byte(idx)) - } - - if idx < math.MaxUint16 { - if err := e.writeCode(codes.FixExt2); err != nil { - return err - } - if err := e.w.WriteByte(byte(internStringExtID)); err != nil { - return err - } - if err := e.w.WriteByte(byte(idx >> 8)); err != nil { - return err - } - return e.w.WriteByte(byte(idx)) - } - - if int64(idx) < math.MaxUint32 { - if err := e.writeCode(codes.FixExt4); err != nil { - return err - } - if err := e.w.WriteByte(byte(internStringExtID)); err != nil { - return err - } - if err := e.w.WriteByte(byte(idx >> 24)); err != nil { - return err - } - if err := e.w.WriteByte(byte(idx >> 16)); err != nil { - return err - } - if err := e.w.WriteByte(byte(idx >> 8)); err != nil { - return err - } - return e.w.WriteByte(byte(idx)) - } - - return fmt.Errorf("msgpack: intern string index=%d is too large", idx) -} - -//------------------------------------------------------------------------------ - -func decodeInternInterfaceValue(d *Decoder, v reflect.Value) error { - c, err := d.readCode() - if err != nil { - return err - } - - s, err := d.internString(c) - if err == nil { - v.Set(reflect.ValueOf(s)) - return nil - } - if err != nil && err != errUnexpectedCode { - return err - } - - if err := d.s.UnreadByte(); err != nil { - return err - } - - return decodeInterfaceValue(d, v) -} - -func decodeInternStringValue(d *Decoder, v reflect.Value) error { - if err := mustSet(v); err != nil { - return err - } - - c, err := d.readCode() - if err != nil { - return err - } - - s, err := d.internString(c) - if err != nil { - if err == errUnexpectedCode { - return fmt.Errorf("msgpack: invalid code=%x decoding intern string", c) - } - return err - } - - v.SetString(s) - return nil -} - -func (d *Decoder) internString(c codes.Code) (string, error) { - if codes.IsFixedString(c) { - n := int(c & codes.FixedStrMask) - return d.internStringWithLen(n) - } - - switch c { - case codes.FixExt1, codes.FixExt2, codes.FixExt4: - typeID, length, err := d.extHeader(c) - if err != nil { - return "", err - } - if typeID != internStringExtID { - err := fmt.Errorf("msgpack: got ext type=%d, wanted %d", - typeID, internStringExtID) - return "", err - } - - idx, err := d.internStringIndex(length) - if err != nil { - return "", err - } - - return d.internStringAtIndex(idx) - case codes.Str8, codes.Bin8: - n, err := d.uint8() - if err != nil { - return "", err - } - return d.internStringWithLen(int(n)) - case codes.Str16, codes.Bin16: - n, err := d.uint16() - if err != nil { - return "", err - } - return d.internStringWithLen(int(n)) - case codes.Str32, codes.Bin32: - n, err := d.uint32() - if err != nil { - return "", err - } - return d.internStringWithLen(int(n)) - } - - return "", errUnexpectedCode -} - -func (d *Decoder) internStringIndex(length int) (int, error) { - switch length { - case 1: - c, err := d.s.ReadByte() - if err != nil { - return 0, err - } - return int(c), nil - case 2: - b, err := d.readN(2) - if err != nil { - return 0, err - } - n := binary.BigEndian.Uint16(b) - return int(n), nil - case 4: - b, err := d.readN(4) - if err != nil { - return 0, err - } - n := binary.BigEndian.Uint32(b) - return int(n), nil - } - - err := fmt.Errorf("msgpack: unsupported intern string index length=%d", length) - return 0, err -} - -func (d *Decoder) internStringAtIndex(idx int) (string, error) { - if idx >= len(d.intern) { - err := fmt.Errorf("msgpack: intern string with index=%d does not exist", idx) - return "", err - } - return d.intern[idx], nil -} - -func (d *Decoder) internStringWithLen(n int) (string, error) { - if n <= 0 { - return "", nil - } - - s, err := d.stringWithLen(n) - if err != nil { - return "", err - } - - d.intern = append(d.intern, s) - - return s, nil -} diff --git a/vendor/github.com/vmihailenco/msgpack/v4/msgpack.go b/vendor/github.com/vmihailenco/msgpack/v4/msgpack.go deleted file mode 100644 index 220b43c47b31..000000000000 --- a/vendor/github.com/vmihailenco/msgpack/v4/msgpack.go +++ /dev/null @@ -1,17 +0,0 @@ -package msgpack - -type Marshaler interface { - MarshalMsgpack() ([]byte, error) -} - -type Unmarshaler interface { - UnmarshalMsgpack([]byte) error -} - -type CustomEncoder interface { - EncodeMsgpack(*Encoder) error -} - -type CustomDecoder interface { - DecodeMsgpack(*Decoder) error -} diff --git a/vendor/github.com/vmihailenco/msgpack/v5/.prettierrc b/vendor/github.com/vmihailenco/msgpack/v5/.prettierrc new file mode 100644 index 000000000000..8b7f044ad1f5 --- /dev/null +++ b/vendor/github.com/vmihailenco/msgpack/v5/.prettierrc @@ -0,0 +1,4 @@ +semi: false +singleQuote: true +proseWrap: always +printWidth: 100 diff --git a/vendor/github.com/vmihailenco/msgpack/v4/.travis.yml b/vendor/github.com/vmihailenco/msgpack/v5/.travis.yml similarity index 68% rename from vendor/github.com/vmihailenco/msgpack/v4/.travis.yml rename to vendor/github.com/vmihailenco/msgpack/v5/.travis.yml index b35bf5484e7c..e2ce06c49f01 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/.travis.yml +++ b/vendor/github.com/vmihailenco/msgpack/v5/.travis.yml @@ -2,10 +2,8 @@ sudo: false language: go go: - - 1.11.x - - 1.12.x - - 1.13.x - - 1.14.x + - 1.15.x + - 1.16.x - tip matrix: @@ -18,4 +16,5 @@ env: go_import_path: github.com/vmihailenco/msgpack before_install: - - curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.21.0 + - curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go + env GOPATH)/bin v1.31.0 diff --git a/vendor/github.com/vmihailenco/msgpack/v4/CHANGELOG.md b/vendor/github.com/vmihailenco/msgpack/v5/CHANGELOG.md similarity index 50% rename from vendor/github.com/vmihailenco/msgpack/v4/CHANGELOG.md rename to vendor/github.com/vmihailenco/msgpack/v5/CHANGELOG.md index fac97090e456..f6b19d5ba407 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/CHANGELOG.md +++ b/vendor/github.com/vmihailenco/msgpack/v5/CHANGELOG.md @@ -1,8 +1,32 @@ +## [5.3.5](https://github.com/vmihailenco/msgpack/compare/v5.3.4...v5.3.5) (2021-10-22) + + + +## v5 + +### Added + +- `DecodeMap` is split into `DecodeMap`, `DecodeTypedMap`, and `DecodeUntypedMap`. +- New msgpack extensions API. + +### Changed + +- `Reset*` functions also reset flags. +- `SetMapDecodeFunc` is renamed to `SetMapDecoder`. +- `StructAsArray` is renamed to `UseArrayEncodedStructs`. +- `SortMapKeys` is renamed to `SetSortMapKeys`. + +### Removed + +- `UseJSONTag` is removed. Use `SetCustomStructTag("json")` instead. + ## v4 -- Encode, Decode, Marshal, and Unmarshal are changed to accept single argument. EncodeMulti and DecodeMulti are added as replacement. +- Encode, Decode, Marshal, and Unmarshal are changed to accept single argument. EncodeMulti and + DecodeMulti are added as replacement. - Added EncodeInt8/16/32/64 and EncodeUint8/16/32/64. -- Encoder changed to preserve type of numbers instead of chosing most compact encoding. The old behavior can be achieved with Encoder.UseCompactEncoding. +- Encoder changed to preserve type of numbers instead of chosing most compact encoding. The old + behavior can be achieved with Encoder.UseCompactEncoding. ## v3.3 @@ -16,9 +40,12 @@ - gopkg.in is not supported any more. Update import path to github.com/vmihailenco/msgpack. - Msgpack maps are decoded into map[string]interface{} by default. -- EncodeSliceLen is removed in favor of EncodeArrayLen. DecodeSliceLen is removed in favor of DecodeArrayLen. +- EncodeSliceLen is removed in favor of EncodeArrayLen. DecodeSliceLen is removed in favor of + DecodeArrayLen. - Embedded structs are automatically inlined where possible. -- Time is encoded using extension as described in https://github.com/msgpack/msgpack/pull/209. Old format is supported as well. -- EncodeInt8/16/32/64 is replaced with EncodeInt. EncodeUint8/16/32/64 is replaced with EncodeUint. There should be no performance differences. +- Time is encoded using extension as described in https://github.com/msgpack/msgpack/pull/209. Old + format is supported as well. +- EncodeInt8/16/32/64 is replaced with EncodeInt. EncodeUint8/16/32/64 is replaced with EncodeUint. + There should be no performance differences. - DecodeInterface can now return int8/16/32 and uint8/16/32. - PeekCode returns codes.Code instead of byte. diff --git a/vendor/github.com/vmihailenco/msgpack/v4/LICENSE b/vendor/github.com/vmihailenco/msgpack/v5/LICENSE similarity index 100% rename from vendor/github.com/vmihailenco/msgpack/v4/LICENSE rename to vendor/github.com/vmihailenco/msgpack/v5/LICENSE diff --git a/vendor/github.com/vmihailenco/msgpack/v4/Makefile b/vendor/github.com/vmihailenco/msgpack/v5/Makefile similarity index 84% rename from vendor/github.com/vmihailenco/msgpack/v4/Makefile rename to vendor/github.com/vmihailenco/msgpack/v5/Makefile index 57914e333a85..e9aade78294e 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/Makefile +++ b/vendor/github.com/vmihailenco/msgpack/v5/Makefile @@ -1,6 +1,6 @@ -all: +test: go test ./... go test ./... -short -race go test ./... -run=NONE -bench=. -benchmem env GOOS=linux GOARCH=386 go test ./... - golangci-lint run + go vet diff --git a/vendor/github.com/vmihailenco/msgpack/v5/README.md b/vendor/github.com/vmihailenco/msgpack/v5/README.md new file mode 100644 index 000000000000..66ad98b9c8db --- /dev/null +++ b/vendor/github.com/vmihailenco/msgpack/v5/README.md @@ -0,0 +1,86 @@ +# MessagePack encoding for Golang + +[![Build Status](https://travis-ci.org/vmihailenco/msgpack.svg)](https://travis-ci.org/vmihailenco/msgpack) +[![PkgGoDev](https://pkg.go.dev/badge/github.com/vmihailenco/msgpack/v5)](https://pkg.go.dev/github.com/vmihailenco/msgpack/v5) +[![Documentation](https://img.shields.io/badge/msgpack-documentation-informational)](https://msgpack.uptrace.dev/) +[![Chat](https://discordapp.com/api/guilds/752070105847955518/widget.png)](https://discord.gg/rWtp5Aj) + +> :heart: +> [**Uptrace.dev** - All-in-one tool to optimize performance and monitor errors & logs](https://uptrace.dev/?utm_source=gh-msgpack&utm_campaign=gh-msgpack-var2) + +- Join [Discord](https://discord.gg/rWtp5Aj) to ask questions. +- [Documentation](https://msgpack.uptrace.dev) +- [Reference](https://pkg.go.dev/github.com/vmihailenco/msgpack/v5) +- [Examples](https://pkg.go.dev/github.com/vmihailenco/msgpack/v5#pkg-examples) + +Other projects you may like: + +- [Bun](https://bun.uptrace.dev) - fast and simple SQL client for PostgreSQL, MySQL, and SQLite. +- [BunRouter](https://bunrouter.uptrace.dev/) - fast and flexible HTTP router for Go. + +## Features + +- Primitives, arrays, maps, structs, time.Time and interface{}. +- Appengine \*datastore.Key and datastore.Cursor. +- [CustomEncoder]/[CustomDecoder] interfaces for custom encoding. +- [Extensions](https://pkg.go.dev/github.com/vmihailenco/msgpack/v5#example-RegisterExt) to encode + type information. +- Renaming fields via `msgpack:"my_field_name"` and alias via `msgpack:"alias:another_name"`. +- Omitting individual empty fields via `msgpack:",omitempty"` tag or all + [empty fields in a struct](https://pkg.go.dev/github.com/vmihailenco/msgpack/v5#example-Marshal-OmitEmpty). +- [Map keys sorting](https://pkg.go.dev/github.com/vmihailenco/msgpack/v5#Encoder.SetSortMapKeys). +- Encoding/decoding all + [structs as arrays](https://pkg.go.dev/github.com/vmihailenco/msgpack/v5#Encoder.UseArrayEncodedStructs) + or + [individual structs](https://pkg.go.dev/github.com/vmihailenco/msgpack/v5#example-Marshal-AsArray). +- [Encoder.SetCustomStructTag] with [Decoder.SetCustomStructTag] can turn msgpack into drop-in + replacement for any tag. +- Simple but very fast and efficient + [queries](https://pkg.go.dev/github.com/vmihailenco/msgpack/v5#example-Decoder.Query). + +[customencoder]: https://pkg.go.dev/github.com/vmihailenco/msgpack/v5#CustomEncoder +[customdecoder]: https://pkg.go.dev/github.com/vmihailenco/msgpack/v5#CustomDecoder +[encoder.setcustomstructtag]: + https://pkg.go.dev/github.com/vmihailenco/msgpack/v5#Encoder.SetCustomStructTag +[decoder.setcustomstructtag]: + https://pkg.go.dev/github.com/vmihailenco/msgpack/v5#Decoder.SetCustomStructTag + +## Installation + +msgpack supports 2 last Go versions and requires support for +[Go modules](https://github.com/golang/go/wiki/Modules). So make sure to initialize a Go module: + +```shell +go mod init github.com/my/repo +``` + +And then install msgpack/v5 (note _v5_ in the import; omitting it is a popular mistake): + +```shell +go get github.com/vmihailenco/msgpack/v5 +``` + +## Quickstart + +```go +import "github.com/vmihailenco/msgpack/v5" + +func ExampleMarshal() { + type Item struct { + Foo string + } + + b, err := msgpack.Marshal(&Item{Foo: "bar"}) + if err != nil { + panic(err) + } + + var item Item + err = msgpack.Unmarshal(b, &item) + if err != nil { + panic(err) + } + fmt.Println(item.Foo) + // Output: bar +} +``` diff --git a/vendor/github.com/vmihailenco/msgpack/v5/commitlint.config.js b/vendor/github.com/vmihailenco/msgpack/v5/commitlint.config.js new file mode 100644 index 000000000000..4fedde6daf0b --- /dev/null +++ b/vendor/github.com/vmihailenco/msgpack/v5/commitlint.config.js @@ -0,0 +1 @@ +module.exports = { extends: ['@commitlint/config-conventional'] } diff --git a/vendor/github.com/vmihailenco/msgpack/v4/decode.go b/vendor/github.com/vmihailenco/msgpack/v5/decode.go similarity index 63% rename from vendor/github.com/vmihailenco/msgpack/v4/decode.go rename to vendor/github.com/vmihailenco/msgpack/v5/decode.go index 1711675e9a1e..5df40e5d9caa 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/decode.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/decode.go @@ -10,12 +10,11 @@ import ( "sync" "time" - "github.com/vmihailenco/msgpack/v4/codes" + "github.com/vmihailenco/msgpack/v5/msgpcode" ) const ( - looseIfaceFlag uint32 = 1 << iota - decodeUsingJSONFlag + looseInterfaceDecodingFlag uint32 = 1 << iota disallowUnknownFieldsFlag ) @@ -38,19 +37,27 @@ var decPool = sync.Pool{ }, } +func GetDecoder() *Decoder { + return decPool.Get().(*Decoder) +} + +func PutDecoder(dec *Decoder) { + dec.r = nil + dec.s = nil + decPool.Put(dec) +} + +//------------------------------------------------------------------------------ + // Unmarshal decodes the MessagePack-encoded data and stores the result // in the value pointed to by v. func Unmarshal(data []byte, v interface{}) error { - dec := decPool.Get().(*Decoder) + dec := GetDecoder() - if r, ok := dec.r.(*bytes.Reader); ok { - r.Reset(data) - } else { - dec.Reset(bytes.NewReader(data)) - } + dec.Reset(bytes.NewReader(data)) err := dec.Decode(v) - decPool.Put(dec) + PutDecoder(dec) return err } @@ -61,18 +68,18 @@ type Decoder struct { s io.ByteScanner buf []byte - extLen int - rec []byte // accumulates read data if not nil + rec []byte // accumulates read data if not nil - intern []string - flags uint32 - decodeMapFunc func(*Decoder) (interface{}, error) + dict []string + flags uint32 + structTag string + mapDecoder func(*Decoder) (interface{}, error) } // NewDecoder returns a new decoder that reads from r. // // The decoder introduces its own buffering and may read data from r -// beyond the MessagePack values requested. Buffering can be disabled +// beyond the requested msgpack values. Buffering can be disabled // by passing a reader that implements io.ByteScanner interface. func NewDecoder(r io.Reader) *Decoder { d := new(Decoder) @@ -83,65 +90,77 @@ func NewDecoder(r io.Reader) *Decoder { // Reset discards any buffered data, resets all state, and switches the buffered // reader to read from r. func (d *Decoder) Reset(r io.Reader) { + d.ResetDict(r, nil) +} + +// ResetDict is like Reset, but also resets the dict. +func (d *Decoder) ResetDict(r io.Reader, dict []string) { + d.resetReader(r) + d.flags = 0 + d.structTag = "" + d.mapDecoder = nil + d.dict = dict +} + +func (d *Decoder) WithDict(dict []string, fn func(*Decoder) error) error { + oldDict := d.dict + d.dict = dict + err := fn(d) + d.dict = oldDict + return err +} + +func (d *Decoder) resetReader(r io.Reader) { if br, ok := r.(bufReader); ok { d.r = br d.s = br - } else if br, ok := d.r.(*bufio.Reader); ok { - br.Reset(r) } else { br := bufio.NewReader(r) d.r = br d.s = br } - - if d.intern != nil { - d.intern = d.intern[:0] - } - - //TODO: - //d.useLoose = false - //d.useJSONTag = false - //d.disallowUnknownFields = false - //d.decodeMapFunc = nil } -func (d *Decoder) SetDecodeMapFunc(fn func(*Decoder) (interface{}, error)) { - d.decodeMapFunc = fn +func (d *Decoder) SetMapDecoder(fn func(*Decoder) (interface{}, error)) { + d.mapDecoder = fn } -// UseDecodeInterfaceLoose causes decoder to use DecodeInterfaceLoose +// UseLooseInterfaceDecoding causes decoder to use DecodeInterfaceLoose // to decode msgpack value into Go interface{}. -func (d *Decoder) UseDecodeInterfaceLoose(on bool) *Decoder { +func (d *Decoder) UseLooseInterfaceDecoding(on bool) { if on { - d.flags |= looseIfaceFlag + d.flags |= looseInterfaceDecodingFlag } else { - d.flags &= ^looseIfaceFlag + d.flags &= ^looseInterfaceDecodingFlag } - return d } -// UseJSONTag causes the Decoder to use json struct tag as fallback option +// SetCustomStructTag causes the decoder to use the supplied tag as a fallback option // if there is no msgpack tag. -func (d *Decoder) UseJSONTag(on bool) *Decoder { - if on { - d.flags |= decodeUsingJSONFlag - } else { - d.flags &= ^decodeUsingJSONFlag - } - return d +func (d *Decoder) SetCustomStructTag(tag string) { + d.structTag = tag } // DisallowUnknownFields causes the Decoder to return an error when the destination // is a struct and the input contains object keys which do not match any // non-ignored, exported fields in the destination. -func (d *Decoder) DisallowUnknownFields() { - if true { +func (d *Decoder) DisallowUnknownFields(on bool) { + if on { d.flags |= disallowUnknownFieldsFlag } else { d.flags &= ^disallowUnknownFieldsFlag } } +// UseInternedStrings enables support for decoding interned strings. +func (d *Decoder) UseInternedStrings(on bool) { + if on { + d.flags |= useInternedStringsFlag + } else { + d.flags &= ^useInternedStringsFlag + } +} + // Buffered returns a reader of the data remaining in the Decoder's buffer. // The reader is valid until the next call to Decode. func (d *Decoder) Buffered() io.Reader { @@ -250,12 +269,22 @@ func (d *Decoder) Decode(v interface{}) error { return errors.New("msgpack: Decode(nil)") } if vv.Kind() != reflect.Ptr { - return fmt.Errorf("msgpack: Decode(nonsettable %T)", v) + return fmt.Errorf("msgpack: Decode(non-pointer %T)", v) + } + if vv.IsNil() { + return fmt.Errorf("msgpack: Decode(non-settable %T)", v) } + vv = vv.Elem() - if !vv.IsValid() { - return fmt.Errorf("msgpack: Decode(nonsettable %T)", v) + if vv.Kind() == reflect.Interface { + if !vv.IsNil() { + vv = vv.Elem() + if vv.Kind() != reflect.Ptr { + return fmt.Errorf("msgpack: Decode(non-pointer %s)", vv.Type().String()) + } + } } + return d.DecodeValue(vv) } @@ -269,7 +298,7 @@ func (d *Decoder) DecodeMulti(v ...interface{}) error { } func (d *Decoder) decodeInterfaceCond() (interface{}, error) { - if d.flags&looseIfaceFlag != 0 { + if d.flags&looseInterfaceDecodingFlag != 0 { return d.DecodeInterfaceLoose() } return d.DecodeInterface() @@ -285,7 +314,7 @@ func (d *Decoder) DecodeNil() error { if err != nil { return err } - if c != codes.Nil { + if c != msgpcode.Nil { return fmt.Errorf("msgpack: invalid code=%x decoding nil", c) } return nil @@ -311,11 +340,14 @@ func (d *Decoder) DecodeBool() (bool, error) { return d.bool(c) } -func (d *Decoder) bool(c codes.Code) (bool, error) { - if c == codes.False { +func (d *Decoder) bool(c byte) (bool, error) { + if c == msgpcode.Nil { + return false, nil + } + if c == msgpcode.False { return false, nil } - if c == codes.True { + if c == msgpcode.True { return true, nil } return false, fmt.Errorf("msgpack: invalid code=%x decoding bool", c) @@ -349,63 +381,63 @@ func (d *Decoder) DecodeInterface() (interface{}, error) { return nil, err } - if codes.IsFixedNum(c) { + if msgpcode.IsFixedNum(c) { return int8(c), nil } - if codes.IsFixedMap(c) { + if msgpcode.IsFixedMap(c) { err = d.s.UnreadByte() if err != nil { return nil, err } - return d.DecodeMap() + return d.decodeMapDefault() } - if codes.IsFixedArray(c) { + if msgpcode.IsFixedArray(c) { return d.decodeSlice(c) } - if codes.IsFixedString(c) { + if msgpcode.IsFixedString(c) { return d.string(c) } switch c { - case codes.Nil: + case msgpcode.Nil: return nil, nil - case codes.False, codes.True: + case msgpcode.False, msgpcode.True: return d.bool(c) - case codes.Float: + case msgpcode.Float: return d.float32(c) - case codes.Double: + case msgpcode.Double: return d.float64(c) - case codes.Uint8: + case msgpcode.Uint8: return d.uint8() - case codes.Uint16: + case msgpcode.Uint16: return d.uint16() - case codes.Uint32: + case msgpcode.Uint32: return d.uint32() - case codes.Uint64: + case msgpcode.Uint64: return d.uint64() - case codes.Int8: + case msgpcode.Int8: return d.int8() - case codes.Int16: + case msgpcode.Int16: return d.int16() - case codes.Int32: + case msgpcode.Int32: return d.int32() - case codes.Int64: + case msgpcode.Int64: return d.int64() - case codes.Bin8, codes.Bin16, codes.Bin32: + case msgpcode.Bin8, msgpcode.Bin16, msgpcode.Bin32: return d.bytes(c, nil) - case codes.Str8, codes.Str16, codes.Str32: + case msgpcode.Str8, msgpcode.Str16, msgpcode.Str32: return d.string(c) - case codes.Array16, codes.Array32: + case msgpcode.Array16, msgpcode.Array32: return d.decodeSlice(c) - case codes.Map16, codes.Map32: + case msgpcode.Map16, msgpcode.Map32: err = d.s.UnreadByte() if err != nil { return nil, err } - return d.DecodeMap() - case codes.FixExt1, codes.FixExt2, codes.FixExt4, codes.FixExt8, codes.FixExt16, - codes.Ext8, codes.Ext16, codes.Ext32: - return d.extInterface(c) + return d.decodeMapDefault() + case msgpcode.FixExt1, msgpcode.FixExt2, msgpcode.FixExt4, msgpcode.FixExt8, msgpcode.FixExt16, + msgpcode.Ext8, msgpcode.Ext16, msgpcode.Ext32: + return d.decodeInterfaceExt(c) } return 0, fmt.Errorf("msgpack: unknown code %x decoding interface{}", c) @@ -415,55 +447,55 @@ func (d *Decoder) DecodeInterface() (interface{}, error) { // - int8, int16, and int32 are converted to int64, // - uint8, uint16, and uint32 are converted to uint64, // - float32 is converted to float64. +// - []byte is converted to string. func (d *Decoder) DecodeInterfaceLoose() (interface{}, error) { c, err := d.readCode() if err != nil { return nil, err } - if codes.IsFixedNum(c) { + if msgpcode.IsFixedNum(c) { return int64(int8(c)), nil } - if codes.IsFixedMap(c) { + if msgpcode.IsFixedMap(c) { err = d.s.UnreadByte() if err != nil { return nil, err } - return d.DecodeMap() + return d.decodeMapDefault() } - if codes.IsFixedArray(c) { + if msgpcode.IsFixedArray(c) { return d.decodeSlice(c) } - if codes.IsFixedString(c) { + if msgpcode.IsFixedString(c) { return d.string(c) } switch c { - case codes.Nil: + case msgpcode.Nil: return nil, nil - case codes.False, codes.True: + case msgpcode.False, msgpcode.True: return d.bool(c) - case codes.Float, codes.Double: + case msgpcode.Float, msgpcode.Double: return d.float64(c) - case codes.Uint8, codes.Uint16, codes.Uint32, codes.Uint64: + case msgpcode.Uint8, msgpcode.Uint16, msgpcode.Uint32, msgpcode.Uint64: return d.uint(c) - case codes.Int8, codes.Int16, codes.Int32, codes.Int64: + case msgpcode.Int8, msgpcode.Int16, msgpcode.Int32, msgpcode.Int64: return d.int(c) - case codes.Bin8, codes.Bin16, codes.Bin32: - return d.bytes(c, nil) - case codes.Str8, codes.Str16, codes.Str32: + case msgpcode.Str8, msgpcode.Str16, msgpcode.Str32, + msgpcode.Bin8, msgpcode.Bin16, msgpcode.Bin32: return d.string(c) - case codes.Array16, codes.Array32: + case msgpcode.Array16, msgpcode.Array32: return d.decodeSlice(c) - case codes.Map16, codes.Map32: + case msgpcode.Map16, msgpcode.Map32: err = d.s.UnreadByte() if err != nil { return nil, err } - return d.DecodeMap() - case codes.FixExt1, codes.FixExt2, codes.FixExt4, codes.FixExt8, codes.FixExt16, - codes.Ext8, codes.Ext16, codes.Ext32: - return d.extInterface(c) + return d.decodeMapDefault() + case msgpcode.FixExt1, msgpcode.FixExt2, msgpcode.FixExt4, msgpcode.FixExt8, msgpcode.FixExt16, + msgpcode.Ext8, msgpcode.Ext16, msgpcode.Ext32: + return d.decodeInterfaceExt(c) } return 0, fmt.Errorf("msgpack: unknown code %x decoding interface{}", c) @@ -476,63 +508,78 @@ func (d *Decoder) Skip() error { return err } - if codes.IsFixedNum(c) { + if msgpcode.IsFixedNum(c) { return nil } - if codes.IsFixedMap(c) { + if msgpcode.IsFixedMap(c) { return d.skipMap(c) } - if codes.IsFixedArray(c) { + if msgpcode.IsFixedArray(c) { return d.skipSlice(c) } - if codes.IsFixedString(c) { + if msgpcode.IsFixedString(c) { return d.skipBytes(c) } switch c { - case codes.Nil, codes.False, codes.True: + case msgpcode.Nil, msgpcode.False, msgpcode.True: return nil - case codes.Uint8, codes.Int8: + case msgpcode.Uint8, msgpcode.Int8: return d.skipN(1) - case codes.Uint16, codes.Int16: + case msgpcode.Uint16, msgpcode.Int16: return d.skipN(2) - case codes.Uint32, codes.Int32, codes.Float: + case msgpcode.Uint32, msgpcode.Int32, msgpcode.Float: return d.skipN(4) - case codes.Uint64, codes.Int64, codes.Double: + case msgpcode.Uint64, msgpcode.Int64, msgpcode.Double: return d.skipN(8) - case codes.Bin8, codes.Bin16, codes.Bin32: + case msgpcode.Bin8, msgpcode.Bin16, msgpcode.Bin32: return d.skipBytes(c) - case codes.Str8, codes.Str16, codes.Str32: + case msgpcode.Str8, msgpcode.Str16, msgpcode.Str32: return d.skipBytes(c) - case codes.Array16, codes.Array32: + case msgpcode.Array16, msgpcode.Array32: return d.skipSlice(c) - case codes.Map16, codes.Map32: + case msgpcode.Map16, msgpcode.Map32: return d.skipMap(c) - case codes.FixExt1, codes.FixExt2, codes.FixExt4, codes.FixExt8, codes.FixExt16, - codes.Ext8, codes.Ext16, codes.Ext32: + case msgpcode.FixExt1, msgpcode.FixExt2, msgpcode.FixExt4, msgpcode.FixExt8, msgpcode.FixExt16, + msgpcode.Ext8, msgpcode.Ext16, msgpcode.Ext32: return d.skipExt(c) } return fmt.Errorf("msgpack: unknown code %x", c) } +func (d *Decoder) DecodeRaw() (RawMessage, error) { + d.rec = make([]byte, 0) + if err := d.Skip(); err != nil { + return nil, err + } + msg := RawMessage(d.rec) + d.rec = nil + return msg, nil +} + // PeekCode returns the next MessagePack code without advancing the reader. -// Subpackage msgpack/codes contains list of available codes. -func (d *Decoder) PeekCode() (codes.Code, error) { +// Subpackage msgpack/codes defines the list of available msgpcode. +func (d *Decoder) PeekCode() (byte, error) { c, err := d.s.ReadByte() if err != nil { return 0, err } - return codes.Code(c), d.s.UnreadByte() + return c, d.s.UnreadByte() +} + +// ReadFull reads exactly len(buf) bytes into the buf. +func (d *Decoder) ReadFull(buf []byte) error { + _, err := readN(d.r, buf, len(buf)) + return err } func (d *Decoder) hasNilCode() bool { code, err := d.PeekCode() - return err == nil && code == codes.Nil + return err == nil && code == msgpcode.Nil } -func (d *Decoder) readCode() (codes.Code, error) { - d.extLen = 0 +func (d *Decoder) readCode() (byte, error) { c, err := d.s.ReadByte() if err != nil { return 0, err @@ -540,7 +587,7 @@ func (d *Decoder) readCode() (codes.Code, error) { if d.rec != nil { d.rec = append(d.rec, c) } - return codes.Code(c), nil + return c, nil } func (d *Decoder) readFull(b []byte) error { @@ -549,7 +596,6 @@ func (d *Decoder) readFull(b []byte) error { return err } if d.rec != nil { - //TODO: read directly into d.rec? d.rec = append(d.rec, b...) } return nil @@ -562,7 +608,7 @@ func (d *Decoder) readN(n int) ([]byte, error) { return nil, err } if d.rec != nil { - //TODO: read directly into d.rec? + // TODO: read directly into d.rec? d.rec = append(d.rec, d.buf...) } return d.buf, nil diff --git a/vendor/github.com/vmihailenco/msgpack/v4/decode_map.go b/vendor/github.com/vmihailenco/msgpack/v5/decode_map.go similarity index 61% rename from vendor/github.com/vmihailenco/msgpack/v4/decode_map.go rename to vendor/github.com/vmihailenco/msgpack/v5/decode_map.go index 16c40fe77e18..52e0526cc51c 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/decode_map.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/decode_map.go @@ -5,9 +5,11 @@ import ( "fmt" "reflect" - "github.com/vmihailenco/msgpack/v4/codes" + "github.com/vmihailenco/msgpack/v5/msgpcode" ) +var errArrayStruct = errors.New("msgpack: number of fields in array-encoded struct has changed") + var ( mapStringStringPtrType = reflect.TypeOf((*map[string]string)(nil)) mapStringStringType = mapStringStringPtrType.Elem() @@ -19,13 +21,13 @@ var ( ) func decodeMapValue(d *Decoder, v reflect.Value) error { - size, err := d.DecodeMapLen() + n, err := d.DecodeMapLen() if err != nil { return err } typ := v.Type() - if size == -1 { + if n == -1 { v.Set(reflect.Zero(typ)) return nil } @@ -33,33 +35,18 @@ func decodeMapValue(d *Decoder, v reflect.Value) error { if v.IsNil() { v.Set(reflect.MakeMap(typ)) } - if size == 0 { + if n == 0 { return nil } - return decodeMapValueSize(d, v, size) + return d.decodeTypedMapValue(v, n) } -func decodeMapValueSize(d *Decoder, v reflect.Value, size int) error { - typ := v.Type() - keyType := typ.Key() - valueType := typ.Elem() - - for i := 0; i < size; i++ { - mk := reflect.New(keyType).Elem() - if err := d.DecodeValue(mk); err != nil { - return err - } - - mv := reflect.New(valueType).Elem() - if err := d.DecodeValue(mv); err != nil { - return err - } - - v.SetMapIndex(mk, mv) +func (d *Decoder) decodeMapDefault() (interface{}, error) { + if d.mapDecoder != nil { + return d.mapDecoder(d) } - - return nil + return d.DecodeMap() } // DecodeMapLen decodes map length. Length is -1 when map is nil. @@ -69,7 +56,7 @@ func (d *Decoder) DecodeMapLen() (int, error) { return 0, err } - if codes.IsExt(c) { + if msgpcode.IsExt(c) { if err = d.skipExtHeader(c); err != nil { return 0, err } @@ -82,37 +69,22 @@ func (d *Decoder) DecodeMapLen() (int, error) { return d.mapLen(c) } -func (d *Decoder) mapLen(c codes.Code) (int, error) { - size, err := d._mapLen(c) - err = expandInvalidCodeMapLenError(c, err) - return size, err -} - -func (d *Decoder) _mapLen(c codes.Code) (int, error) { - if c == codes.Nil { +func (d *Decoder) mapLen(c byte) (int, error) { + if c == msgpcode.Nil { return -1, nil } - if c >= codes.FixedMapLow && c <= codes.FixedMapHigh { - return int(c & codes.FixedMapMask), nil + if c >= msgpcode.FixedMapLow && c <= msgpcode.FixedMapHigh { + return int(c & msgpcode.FixedMapMask), nil } - if c == codes.Map16 { + if c == msgpcode.Map16 { size, err := d.uint16() return int(size), err } - if c == codes.Map32 { + if c == msgpcode.Map32 { size, err := d.uint32() return int(size), err } - return 0, errInvalidCode -} - -var errInvalidCode = errors.New("invalid code") - -func expandInvalidCodeMapLenError(c codes.Code, err error) error { - if err == errInvalidCode { - return fmt.Errorf("msgpack: invalid code=%x decoding map length", c) - } - return err + return 0, unexpectedCodeError{code: c, hint: "map length"} } func decodeMapStringStringValue(d *Decoder, v reflect.Value) error { @@ -157,61 +129,79 @@ func decodeMapStringInterfaceValue(d *Decoder, v reflect.Value) error { } func (d *Decoder) decodeMapStringInterfacePtr(ptr *map[string]interface{}) error { - n, err := d.DecodeMapLen() + m, err := d.DecodeMap() if err != nil { return err } - if n == -1 { - *ptr = nil - return nil + *ptr = m + return nil +} + +func (d *Decoder) DecodeMap() (map[string]interface{}, error) { + n, err := d.DecodeMapLen() + if err != nil { + return nil, err } - m := *ptr - if m == nil { - *ptr = make(map[string]interface{}, min(n, maxMapSize)) - m = *ptr + if n == -1 { + return nil, nil } + m := make(map[string]interface{}, min(n, maxMapSize)) + for i := 0; i < n; i++ { mk, err := d.DecodeString() if err != nil { - return err + return nil, err } mv, err := d.decodeInterfaceCond() if err != nil { - return err + return nil, err } m[mk] = mv } - return nil + return m, nil } -var errUnsupportedMapKey = errors.New("msgpack: unsupported map key") - -func (d *Decoder) DecodeMap() (interface{}, error) { - if d.decodeMapFunc != nil { - return d.decodeMapFunc(d) - } - - size, err := d.DecodeMapLen() +func (d *Decoder) DecodeUntypedMap() (map[interface{}]interface{}, error) { + n, err := d.DecodeMapLen() if err != nil { return nil, err } - if size == -1 { + + if n == -1 { return nil, nil } - if size == 0 { - return make(map[string]interface{}), nil + + m := make(map[interface{}]interface{}, min(n, maxMapSize)) + + for i := 0; i < n; i++ { + mk, err := d.decodeInterfaceCond() + if err != nil { + return nil, err + } + + mv, err := d.decodeInterfaceCond() + if err != nil { + return nil, err + } + + m[mk] = mv } - code, err := d.PeekCode() + return m, nil +} + +// DecodeTypedMap decodes a typed map. Typed map is a map that has a fixed type for keys and values. +// Key and value types may be different. +func (d *Decoder) DecodeTypedMap() (interface{}, error) { + n, err := d.DecodeMapLen() if err != nil { return nil, err } - - if codes.IsString(code) || codes.IsBin(code) { - return d.decodeMapStringInterfaceSize(size) + if n <= 0 { + return nil, nil } key, err := d.decodeInterfaceCond() @@ -228,40 +218,44 @@ func (d *Decoder) DecodeMap() (interface{}, error) { valueType := reflect.TypeOf(value) if !keyType.Comparable() { - return nil, errUnsupportedMapKey + return nil, fmt.Errorf("msgpack: unsupported map key: %s", keyType.String()) } mapType := reflect.MapOf(keyType, valueType) mapValue := reflect.MakeMap(mapType) - mapValue.SetMapIndex(reflect.ValueOf(key), reflect.ValueOf(value)) - size-- - err = decodeMapValueSize(d, mapValue, size) - if err != nil { + n-- + if err := d.decodeTypedMapValue(mapValue, n); err != nil { return nil, err } return mapValue.Interface(), nil } -func (d *Decoder) decodeMapStringInterfaceSize(size int) (map[string]interface{}, error) { - m := make(map[string]interface{}, min(size, maxMapSize)) - for i := 0; i < size; i++ { - mk, err := d.DecodeString() - if err != nil { - return nil, err +func (d *Decoder) decodeTypedMapValue(v reflect.Value, n int) error { + typ := v.Type() + keyType := typ.Key() + valueType := typ.Elem() + + for i := 0; i < n; i++ { + mk := reflect.New(keyType).Elem() + if err := d.DecodeValue(mk); err != nil { + return err } - mv, err := d.decodeInterfaceCond() - if err != nil { - return nil, err + + mv := reflect.New(valueType).Elem() + if err := d.DecodeValue(mv); err != nil { + return err } - m[mk] = mv + + v.SetMapIndex(mk, mv) } - return m, nil + + return nil } -func (d *Decoder) skipMap(c codes.Code) error { +func (d *Decoder) skipMap(c byte) error { n, err := d.mapLen(c) if err != nil { return err @@ -283,54 +277,45 @@ func decodeStructValue(d *Decoder, v reflect.Value) error { return err } - var isArray bool + n, err := d.mapLen(c) + if err == nil { + return d.decodeStruct(v, n) + } - n, err := d._mapLen(c) - if err != nil { - var err2 error - n, err2 = d.arrayLen(c) - if err2 != nil { - return expandInvalidCodeMapLenError(c, err) - } - isArray = true + var err2 error + n, err2 = d.arrayLen(c) + if err2 != nil { + return err } - if n == -1 { - if err = mustSet(v); err != nil { - return err - } + + if n <= 0 { v.Set(reflect.Zero(v.Type())) return nil } - var fields *fields - if d.flags&decodeUsingJSONFlag != 0 { - fields = jsonStructs.Fields(v.Type()) - } else { - fields = structs.Fields(v.Type()) + fields := structs.Fields(v.Type(), d.structTag) + if n != len(fields.List) { + return errArrayStruct } - if isArray { - for i, f := range fields.List { - if i >= n { - break - } - if err := f.DecodeValue(d, v); err != nil { - return err - } + for _, f := range fields.List { + if err := f.DecodeValue(d, v); err != nil { + return err } + } - // Skip extra values. - for i := len(fields.List); i < n; i++ { - if err := d.Skip(); err != nil { - return err - } - } + return nil +} +func (d *Decoder) decodeStruct(v reflect.Value, n int) error { + if n == -1 { + v.Set(reflect.Zero(v.Type())) return nil } + fields := structs.Fields(v.Type(), d.structTag) for i := 0; i < n; i++ { - name, err := d.DecodeString() + name, err := d.decodeStringTemp() if err != nil { return err } @@ -339,9 +324,13 @@ func decodeStructValue(d *Decoder, v reflect.Value) error { if err := f.DecodeValue(d, v); err != nil { return err } - } else if d.flags&disallowUnknownFieldsFlag != 0 { + continue + } + + if d.flags&disallowUnknownFieldsFlag != 0 { return fmt.Errorf("msgpack: unknown field %q", name) - } else if err := d.Skip(); err != nil { + } + if err := d.Skip(); err != nil { return err } } diff --git a/vendor/github.com/vmihailenco/msgpack/v4/decode_number.go b/vendor/github.com/vmihailenco/msgpack/v5/decode_number.go similarity index 83% rename from vendor/github.com/vmihailenco/msgpack/v4/decode_number.go rename to vendor/github.com/vmihailenco/msgpack/v5/decode_number.go index f6b9151f01e7..45d6a741868e 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/decode_number.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/decode_number.go @@ -5,7 +5,7 @@ import ( "math" "reflect" - "github.com/vmihailenco/msgpack/v4/codes" + "github.com/vmihailenco/msgpack/v5/msgpcode" ) func (d *Decoder) skipN(n int) error { @@ -18,7 +18,7 @@ func (d *Decoder) uint8() (uint8, error) { if err != nil { return 0, err } - return uint8(c), nil + return c, nil } func (d *Decoder) int8() (int8, error) { @@ -87,33 +87,33 @@ func (d *Decoder) DecodeUint64() (uint64, error) { return d.uint(c) } -func (d *Decoder) uint(c codes.Code) (uint64, error) { - if c == codes.Nil { +func (d *Decoder) uint(c byte) (uint64, error) { + if c == msgpcode.Nil { return 0, nil } - if codes.IsFixedNum(c) { + if msgpcode.IsFixedNum(c) { return uint64(int8(c)), nil } switch c { - case codes.Uint8: + case msgpcode.Uint8: n, err := d.uint8() return uint64(n), err - case codes.Int8: + case msgpcode.Int8: n, err := d.int8() return uint64(n), err - case codes.Uint16: + case msgpcode.Uint16: n, err := d.uint16() return uint64(n), err - case codes.Int16: + case msgpcode.Int16: n, err := d.int16() return uint64(n), err - case codes.Uint32: + case msgpcode.Uint32: n, err := d.uint32() return uint64(n), err - case codes.Int32: + case msgpcode.Int32: n, err := d.int32() return uint64(n), err - case codes.Uint64, codes.Int64: + case msgpcode.Uint64, msgpcode.Int64: return d.uint64() } return 0, fmt.Errorf("msgpack: invalid code=%x decoding uint64", c) @@ -129,33 +129,33 @@ func (d *Decoder) DecodeInt64() (int64, error) { return d.int(c) } -func (d *Decoder) int(c codes.Code) (int64, error) { - if c == codes.Nil { +func (d *Decoder) int(c byte) (int64, error) { + if c == msgpcode.Nil { return 0, nil } - if codes.IsFixedNum(c) { + if msgpcode.IsFixedNum(c) { return int64(int8(c)), nil } switch c { - case codes.Uint8: + case msgpcode.Uint8: n, err := d.uint8() return int64(n), err - case codes.Int8: + case msgpcode.Int8: n, err := d.uint8() return int64(int8(n)), err - case codes.Uint16: + case msgpcode.Uint16: n, err := d.uint16() return int64(n), err - case codes.Int16: + case msgpcode.Int16: n, err := d.uint16() return int64(int16(n)), err - case codes.Uint32: + case msgpcode.Uint32: n, err := d.uint32() return int64(n), err - case codes.Int32: + case msgpcode.Int32: n, err := d.uint32() return int64(int32(n)), err - case codes.Uint64, codes.Int64: + case msgpcode.Uint64, msgpcode.Int64: n, err := d.uint64() return int64(n), err } @@ -170,8 +170,8 @@ func (d *Decoder) DecodeFloat32() (float32, error) { return d.float32(c) } -func (d *Decoder) float32(c codes.Code) (float32, error) { - if c == codes.Float { +func (d *Decoder) float32(c byte) (float32, error) { + if c == msgpcode.Float { n, err := d.uint32() if err != nil { return 0, err @@ -195,15 +195,15 @@ func (d *Decoder) DecodeFloat64() (float64, error) { return d.float64(c) } -func (d *Decoder) float64(c codes.Code) (float64, error) { +func (d *Decoder) float64(c byte) (float64, error) { switch c { - case codes.Float: + case msgpcode.Float: n, err := d.float32(c) if err != nil { return 0, err } return float64(n), nil - case codes.Double: + case msgpcode.Double: n, err := d.uint64() if err != nil { return 0, err @@ -263,9 +263,6 @@ func decodeFloat32Value(d *Decoder, v reflect.Value) error { if err != nil { return err } - if err = mustSet(v); err != nil { - return err - } v.SetFloat(float64(f)) return nil } @@ -275,9 +272,6 @@ func decodeFloat64Value(d *Decoder, v reflect.Value) error { if err != nil { return err } - if err = mustSet(v); err != nil { - return err - } v.SetFloat(f) return nil } @@ -287,9 +281,6 @@ func decodeInt64Value(d *Decoder, v reflect.Value) error { if err != nil { return err } - if err = mustSet(v); err != nil { - return err - } v.SetInt(n) return nil } @@ -299,9 +290,6 @@ func decodeUint64Value(d *Decoder, v reflect.Value) error { if err != nil { return err } - if err = mustSet(v); err != nil { - return err - } v.SetUint(n) return nil } diff --git a/vendor/github.com/vmihailenco/msgpack/v4/decode_query.go b/vendor/github.com/vmihailenco/msgpack/v5/decode_query.go similarity index 89% rename from vendor/github.com/vmihailenco/msgpack/v4/decode_query.go rename to vendor/github.com/vmihailenco/msgpack/v5/decode_query.go index 80cd80e78521..c302ed1f33e4 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/decode_query.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/decode_query.go @@ -5,7 +5,7 @@ import ( "strconv" "strings" - "github.com/vmihailenco/msgpack/v4/codes" + "github.com/vmihailenco/msgpack/v5/msgpcode" ) type queryResult struct { @@ -57,9 +57,9 @@ func (d *Decoder) query(q *queryResult) error { } switch { - case code == codes.Map16 || code == codes.Map32 || codes.IsFixedMap(code): + case code == msgpcode.Map16 || code == msgpcode.Map32 || msgpcode.IsFixedMap(code): err = d.queryMapKey(q) - case code == codes.Array16 || code == codes.Array32 || codes.IsFixedArray(code): + case code == msgpcode.Array16 || code == msgpcode.Array32 || msgpcode.IsFixedArray(code): err = d.queryArrayIndex(q) default: err = fmt.Errorf("msgpack: unsupported code=%x decoding key=%q", code, q.key) @@ -77,12 +77,12 @@ func (d *Decoder) queryMapKey(q *queryResult) error { } for i := 0; i < n; i++ { - k, err := d.bytesNoCopy() + key, err := d.decodeStringTemp() if err != nil { return err } - if string(k) == q.key { + if key == q.key { if err := d.query(q); err != nil { return err } diff --git a/vendor/github.com/vmihailenco/msgpack/v4/decode_slice.go b/vendor/github.com/vmihailenco/msgpack/v5/decode_slice.go similarity index 88% rename from vendor/github.com/vmihailenco/msgpack/v4/decode_slice.go rename to vendor/github.com/vmihailenco/msgpack/v5/decode_slice.go index adf17ae5cfb7..db6f7c5472d5 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/decode_slice.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/decode_slice.go @@ -4,7 +4,7 @@ import ( "fmt" "reflect" - "github.com/vmihailenco/msgpack/v4/codes" + "github.com/vmihailenco/msgpack/v5/msgpcode" ) var sliceStringPtrType = reflect.TypeOf((*[]string)(nil)) @@ -18,17 +18,17 @@ func (d *Decoder) DecodeArrayLen() (int, error) { return d.arrayLen(c) } -func (d *Decoder) arrayLen(c codes.Code) (int, error) { - if c == codes.Nil { +func (d *Decoder) arrayLen(c byte) (int, error) { + if c == msgpcode.Nil { return -1, nil - } else if c >= codes.FixedArrayLow && c <= codes.FixedArrayHigh { - return int(c & codes.FixedArrayMask), nil + } else if c >= msgpcode.FixedArrayLow && c <= msgpcode.FixedArrayHigh { + return int(c & msgpcode.FixedArrayMask), nil } switch c { - case codes.Array16: + case msgpcode.Array16: n, err := d.uint16() return int(n), err - case codes.Array32: + case msgpcode.Array32: n, err := d.uint32() return int(n), err } @@ -154,7 +154,7 @@ func (d *Decoder) DecodeSlice() ([]interface{}, error) { return d.decodeSlice(c) } -func (d *Decoder) decodeSlice(c codes.Code) ([]interface{}, error) { +func (d *Decoder) decodeSlice(c byte) ([]interface{}, error) { n, err := d.arrayLen(c) if err != nil { return nil, err @@ -175,7 +175,7 @@ func (d *Decoder) decodeSlice(c codes.Code) ([]interface{}, error) { return s, nil } -func (d *Decoder) skipSlice(c codes.Code) error { +func (d *Decoder) skipSlice(c byte) error { n, err := d.arrayLen(c) if err != nil { return err diff --git a/vendor/github.com/vmihailenco/msgpack/v4/decode_string.go b/vendor/github.com/vmihailenco/msgpack/v5/decode_string.go similarity index 68% rename from vendor/github.com/vmihailenco/msgpack/v4/decode_string.go rename to vendor/github.com/vmihailenco/msgpack/v5/decode_string.go index c5adf3865cb9..e837e08bf14c 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/decode_string.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/decode_string.go @@ -4,34 +4,38 @@ import ( "fmt" "reflect" - "github.com/vmihailenco/msgpack/v4/codes" + "github.com/vmihailenco/msgpack/v5/msgpcode" ) -func (d *Decoder) bytesLen(c codes.Code) (int, error) { - if c == codes.Nil { +func (d *Decoder) bytesLen(c byte) (int, error) { + if c == msgpcode.Nil { return -1, nil } - if codes.IsFixedString(c) { - return int(c & codes.FixedStrMask), nil + if msgpcode.IsFixedString(c) { + return int(c & msgpcode.FixedStrMask), nil } switch c { - case codes.Str8, codes.Bin8: + case msgpcode.Str8, msgpcode.Bin8: n, err := d.uint8() return int(n), err - case codes.Str16, codes.Bin16: + case msgpcode.Str16, msgpcode.Bin16: n, err := d.uint16() return int(n), err - case codes.Str32, codes.Bin32: + case msgpcode.Str32, msgpcode.Bin32: n, err := d.uint32() return int(n), err } - return 0, fmt.Errorf("msgpack: invalid code=%x decoding bytes length", c) + return 0, fmt.Errorf("msgpack: invalid code=%x decoding string/bytes length", c) } func (d *Decoder) DecodeString() (string, error) { + if intern := d.flags&useInternedStringsFlag != 0; intern || len(d.dict) > 0 { + return d.decodeInternedString(intern) + } + c, err := d.readCode() if err != nil { return "", err @@ -39,7 +43,7 @@ func (d *Decoder) DecodeString() (string, error) { return d.string(c) } -func (d *Decoder) string(c codes.Code) (string, error) { +func (d *Decoder) string(c byte) (string, error) { n, err := d.bytesLen(c) if err != nil { return "", err @@ -56,15 +60,10 @@ func (d *Decoder) stringWithLen(n int) (string, error) { } func decodeStringValue(d *Decoder, v reflect.Value) error { - if err := mustSet(v); err != nil { - return err - } - s, err := d.DecodeString() if err != nil { return err } - v.SetString(s) return nil } @@ -85,7 +84,7 @@ func (d *Decoder) DecodeBytes() ([]byte, error) { return d.bytes(c, nil) } -func (d *Decoder) bytes(c codes.Code, b []byte) ([]byte, error) { +func (d *Decoder) bytes(c byte, b []byte) ([]byte, error) { n, err := d.bytesLen(c) if err != nil { return nil, err @@ -96,19 +95,30 @@ func (d *Decoder) bytes(c codes.Code, b []byte) ([]byte, error) { return readN(d.r, b, n) } -func (d *Decoder) bytesNoCopy() ([]byte, error) { +func (d *Decoder) decodeStringTemp() (string, error) { + if intern := d.flags&useInternedStringsFlag != 0; intern || len(d.dict) > 0 { + return d.decodeInternedString(intern) + } + c, err := d.readCode() if err != nil { - return nil, err + return "", err } + n, err := d.bytesLen(c) if err != nil { - return nil, err + return "", err } if n == -1 { - return nil, nil + return "", nil + } + + b, err := d.readN(n) + if err != nil { + return "", err } - return d.readN(n) + + return bytesToString(b), nil } func (d *Decoder) decodeBytesPtr(ptr *[]byte) error { @@ -119,7 +129,7 @@ func (d *Decoder) decodeBytesPtr(ptr *[]byte) error { return d.bytesPtr(c, ptr) } -func (d *Decoder) bytesPtr(c codes.Code, ptr *[]byte) error { +func (d *Decoder) bytesPtr(c byte, ptr *[]byte) error { n, err := d.bytesLen(c) if err != nil { return err @@ -133,7 +143,7 @@ func (d *Decoder) bytesPtr(c codes.Code, ptr *[]byte) error { return err } -func (d *Decoder) skipBytes(c codes.Code) error { +func (d *Decoder) skipBytes(c byte) error { n, err := d.bytesLen(c) if err != nil { return err @@ -145,10 +155,6 @@ func (d *Decoder) skipBytes(c codes.Code) error { } func decodeBytesValue(d *Decoder, v reflect.Value) error { - if err := mustSet(v); err != nil { - return err - } - c, err := d.readCode() if err != nil { return err diff --git a/vendor/github.com/vmihailenco/msgpack/v4/decode_value.go b/vendor/github.com/vmihailenco/msgpack/v5/decode_value.go similarity index 68% rename from vendor/github.com/vmihailenco/msgpack/v4/decode_value.go rename to vendor/github.com/vmihailenco/msgpack/v5/decode_value.go index 810d3be8f92c..d2ff2aea50fa 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/decode_value.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/decode_value.go @@ -7,8 +7,10 @@ import ( "reflect" ) -var interfaceType = reflect.TypeOf((*interface{})(nil)).Elem() -var stringType = reflect.TypeOf((*string)(nil)).Elem() +var ( + interfaceType = reflect.TypeOf((*interface{})(nil)).Elem() + stringType = reflect.TypeOf((*string)(nil)).Elem() +) var valueDecoders []decoderFunc @@ -43,13 +45,6 @@ func init() { } } -func mustSet(v reflect.Value) error { - if !v.CanSet() { - return fmt.Errorf("msgpack: Decode(nonsettable %s)", v.Type()) - } - return nil -} - func getDecoder(typ reflect.Type) decoderFunc { if v, ok := typeDecMap.Load(typ); ok { return v.(decoderFunc) @@ -62,33 +57,45 @@ func getDecoder(typ reflect.Type) decoderFunc { func _getDecoder(typ reflect.Type) decoderFunc { kind := typ.Kind() + if kind == reflect.Ptr { + if _, ok := typeDecMap.Load(typ.Elem()); ok { + return ptrValueDecoder(typ) + } + } + if typ.Implements(customDecoderType) { - return decodeCustomValue + return nilAwareDecoder(typ, decodeCustomValue) } if typ.Implements(unmarshalerType) { - return unmarshalValue + return nilAwareDecoder(typ, unmarshalValue) } if typ.Implements(binaryUnmarshalerType) { - return unmarshalBinaryValue + return nilAwareDecoder(typ, unmarshalBinaryValue) + } + if typ.Implements(textUnmarshalerType) { + return nilAwareDecoder(typ, unmarshalTextValue) } // Addressable struct field value. if kind != reflect.Ptr { ptr := reflect.PtrTo(typ) if ptr.Implements(customDecoderType) { - return decodeCustomValueAddr + return addrDecoder(nilAwareDecoder(typ, decodeCustomValue)) } if ptr.Implements(unmarshalerType) { - return unmarshalValueAddr + return addrDecoder(nilAwareDecoder(typ, unmarshalValue)) } if ptr.Implements(binaryUnmarshalerType) { - return unmarshalBinaryValueAddr + return addrDecoder(nilAwareDecoder(typ, unmarshalBinaryValue)) + } + if ptr.Implements(textUnmarshalerType) { + return addrDecoder(nilAwareDecoder(typ, unmarshalTextValue)) } } switch kind { case reflect.Ptr: - return ptrDecoderFunc(typ) + return ptrValueDecoder(typ) case reflect.Slice: elem := typ.Elem() if elem.Kind() == reflect.Uint8 { @@ -115,85 +122,50 @@ func _getDecoder(typ reflect.Type) decoderFunc { return valueDecoders[kind] } -func ptrDecoderFunc(typ reflect.Type) decoderFunc { +func ptrValueDecoder(typ reflect.Type) decoderFunc { decoder := getDecoder(typ.Elem()) return func(d *Decoder, v reflect.Value) error { if d.hasNilCode() { - if err := mustSet(v); err != nil { - return err - } if !v.IsNil() { v.Set(reflect.Zero(v.Type())) } return d.DecodeNil() } if v.IsNil() { - if err := mustSet(v); err != nil { - return err - } v.Set(reflect.New(v.Type().Elem())) } return decoder(d, v.Elem()) } } -func decodeCustomValueAddr(d *Decoder, v reflect.Value) error { - if !v.CanAddr() { - return fmt.Errorf("msgpack: Decode(nonaddressable %T)", v.Interface()) - } - return decodeCustomValue(d, v.Addr()) -} - -func decodeCustomValue(d *Decoder, v reflect.Value) error { - if d.hasNilCode() { - return d.decodeNilValue(v) - } - - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) +func addrDecoder(fn decoderFunc) decoderFunc { + return func(d *Decoder, v reflect.Value) error { + if !v.CanAddr() { + return fmt.Errorf("msgpack: Decode(nonaddressable %T)", v.Interface()) + } + return fn(d, v.Addr()) } - - decoder := v.Interface().(CustomDecoder) - return decoder.DecodeMsgpack(d) } -func unmarshalValueAddr(d *Decoder, v reflect.Value) error { - if !v.CanAddr() { - return fmt.Errorf("msgpack: Decode(nonaddressable %T)", v.Interface()) +func nilAwareDecoder(typ reflect.Type, fn decoderFunc) decoderFunc { + if nilable(typ.Kind()) { + return func(d *Decoder, v reflect.Value) error { + if d.hasNilCode() { + return d.decodeNilValue(v) + } + if v.IsNil() { + v.Set(reflect.New(v.Type().Elem())) + } + return fn(d, v) + } } - return unmarshalValue(d, v.Addr()) -} -func unmarshalValue(d *Decoder, v reflect.Value) error { - if d.extLen == 0 || d.extLen == 1 { + return func(d *Decoder, v reflect.Value) error { if d.hasNilCode() { return d.decodeNilValue(v) } + return fn(d, v) } - - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) - } - - var b []byte - - if d.extLen != 0 { - var err error - b, err = d.readN(d.extLen) - if err != nil { - return err - } - } else { - d.rec = make([]byte, 0, 64) - if err := d.Skip(); err != nil { - return err - } - b = d.rec - d.rec = nil - } - - unmarshaler := v.Interface().(Unmarshaler) - return unmarshaler.UnmarshalMsgpack(b) } func decodeBoolValue(d *Decoder, v reflect.Value) error { @@ -201,9 +173,6 @@ func decodeBoolValue(d *Decoder, v reflect.Value) error { if err != nil { return err } - if err = mustSet(v); err != nil { - return err - } v.SetBool(flag) return nil } @@ -212,16 +181,7 @@ func decodeInterfaceValue(d *Decoder, v reflect.Value) error { if v.IsNil() { return d.interfaceValue(v) } - - elem := v.Elem() - if !elem.CanAddr() { - if d.hasNilCode() { - v.Set(reflect.Zero(v.Type())) - return d.DecodeNil() - } - } - - return d.DecodeValue(elem) + return d.DecodeValue(v.Elem()) } func (d *Decoder) interfaceValue(v reflect.Value) error { @@ -250,22 +210,26 @@ func decodeUnsupportedValue(d *Decoder, v reflect.Value) error { //------------------------------------------------------------------------------ -func unmarshalBinaryValueAddr(d *Decoder, v reflect.Value) error { - if !v.CanAddr() { - return fmt.Errorf("msgpack: Decode(nonaddressable %T)", v.Interface()) - } - return unmarshalBinaryValue(d, v.Addr()) +func decodeCustomValue(d *Decoder, v reflect.Value) error { + decoder := v.Interface().(CustomDecoder) + return decoder.DecodeMsgpack(d) } -func unmarshalBinaryValue(d *Decoder, v reflect.Value) error { - if d.hasNilCode() { - return d.decodeNilValue(v) - } +func unmarshalValue(d *Decoder, v reflect.Value) error { + var b []byte - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) + d.rec = make([]byte, 0, 64) + if err := d.Skip(); err != nil { + return err } + b = d.rec + d.rec = nil + + unmarshaler := v.Interface().(Unmarshaler) + return unmarshaler.UnmarshalMsgpack(b) +} +func unmarshalBinaryValue(d *Decoder, v reflect.Value) error { data, err := d.DecodeBytes() if err != nil { return err @@ -274,3 +238,13 @@ func unmarshalBinaryValue(d *Decoder, v reflect.Value) error { unmarshaler := v.Interface().(encoding.BinaryUnmarshaler) return unmarshaler.UnmarshalBinary(data) } + +func unmarshalTextValue(d *Decoder, v reflect.Value) error { + data, err := d.DecodeBytes() + if err != nil { + return err + } + + unmarshaler := v.Interface().(encoding.TextUnmarshaler) + return unmarshaler.UnmarshalText(data) +} diff --git a/vendor/github.com/vmihailenco/msgpack/v4/encode.go b/vendor/github.com/vmihailenco/msgpack/v5/encode.go similarity index 55% rename from vendor/github.com/vmihailenco/msgpack/v4/encode.go rename to vendor/github.com/vmihailenco/msgpack/v5/encode.go index 37f098701ea0..0ef6212e63bc 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/encode.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/encode.go @@ -7,15 +7,16 @@ import ( "sync" "time" - "github.com/vmihailenco/msgpack/v4/codes" + "github.com/vmihailenco/msgpack/v5/msgpcode" ) const ( sortMapKeysFlag uint32 = 1 << iota - structAsArrayFlag - encodeUsingJSONFlag + arrayEncodedStructsFlag useCompactIntsFlag useCompactFloatsFlag + useInternedStringsFlag + omitEmptyFlag ) type writer interface { @@ -25,23 +26,16 @@ type writer interface { type byteWriter struct { io.Writer - - buf [1]byte -} - -func newByteWriter(w io.Writer) *byteWriter { - bw := new(byteWriter) - bw.Reset(w) - return bw } -func (bw *byteWriter) Reset(w io.Writer) { - bw.Writer = w +func newByteWriter(w io.Writer) byteWriter { + return byteWriter{ + Writer: w, + } } -func (bw *byteWriter) WriteByte(c byte) error { - bw.buf[0] = c - _, err := bw.Write(bw.buf[:]) +func (bw byteWriter) WriteByte(c byte) error { + _, err := bw.Write([]byte{c}) return err } @@ -53,9 +47,18 @@ var encPool = sync.Pool{ }, } +func GetEncoder() *Encoder { + return encPool.Get().(*Encoder) +} + +func PutEncoder(enc *Encoder) { + enc.w = nil + encPool.Put(enc) +} + // Marshal returns the MessagePack encoding of v. func Marshal(v interface{}) ([]byte, error) { - enc := encPool.Get().(*Encoder) + enc := GetEncoder() var buf bytes.Buffer enc.Reset(&buf) @@ -63,7 +66,7 @@ func Marshal(v interface{}) ([]byte, error) { err := enc.Encode(v) b := buf.Bytes() - encPool.Put(enc) + PutEncoder(enc) if err != nil { return nil, err @@ -74,49 +77,63 @@ func Marshal(v interface{}) ([]byte, error) { type Encoder struct { w writer - buf []byte - timeBuf []byte - bootstrap [9 + 12]byte + buf []byte + timeBuf []byte - intern map[string]int + dict map[string]int - flags uint32 + flags uint32 + structTag string } // NewEncoder returns a new encoder that writes to w. func NewEncoder(w io.Writer) *Encoder { - e := new(Encoder) - e.buf = e.bootstrap[:9] - e.timeBuf = e.bootstrap[9 : 9+12] + e := &Encoder{ + buf: make([]byte, 9), + } e.Reset(w) return e } +// Writer returns the Encoder's writer. +func (e *Encoder) Writer() io.Writer { + return e.w +} + +// Reset discards any buffered data, resets all state, and switches the writer to write to w. func (e *Encoder) Reset(w io.Writer) { + e.ResetDict(w, nil) +} + +// ResetDict is like Reset, but also resets the dict. +func (e *Encoder) ResetDict(w io.Writer, dict map[string]int) { + e.resetWriter(w) + e.flags = 0 + e.structTag = "" + e.dict = dict +} + +func (e *Encoder) WithDict(dict map[string]int, fn func(*Encoder) error) error { + oldDict := e.dict + e.dict = dict + err := fn(e) + e.dict = oldDict + return err +} + +func (e *Encoder) resetWriter(w io.Writer) { if bw, ok := w.(writer); ok { e.w = bw - } else if bw, ok := e.w.(*byteWriter); ok { - bw.Reset(w) } else { e.w = newByteWriter(w) } - - for k := range e.intern { - delete(e.intern, k) - } - - //TODO: - //e.sortMapKeys = false - //e.structAsArray = false - //e.useJSONTag = false - //e.useCompact = false } -// SortMapKeys causes the Encoder to encode map keys in increasing order. +// SetSortMapKeys causes the Encoder to encode map keys in increasing order. // Supported map types are: // - map[string]string // - map[string]interface{} -func (e *Encoder) SortMapKeys(on bool) *Encoder { +func (e *Encoder) SetSortMapKeys(on bool) *Encoder { if on { e.flags |= sortMapKeysFlag } else { @@ -125,36 +142,38 @@ func (e *Encoder) SortMapKeys(on bool) *Encoder { return e } -// StructAsArray causes the Encoder to encode Go structs as msgpack arrays. -func (e *Encoder) StructAsArray(on bool) *Encoder { +// SetCustomStructTag causes the Encoder to use a custom struct tag as +// fallback option if there is no msgpack tag. +func (e *Encoder) SetCustomStructTag(tag string) { + e.structTag = tag +} + +// SetOmitEmpty causes the Encoder to omit empty values by default. +func (e *Encoder) SetOmitEmpty(on bool) { if on { - e.flags |= structAsArrayFlag + e.flags |= omitEmptyFlag } else { - e.flags &= ^structAsArrayFlag + e.flags &= ^omitEmptyFlag } - return e } -// UseJSONTag causes the Encoder to use json struct tag as fallback option -// if there is no msgpack tag. -func (e *Encoder) UseJSONTag(on bool) *Encoder { +// UseArrayEncodedStructs causes the Encoder to encode Go structs as msgpack arrays. +func (e *Encoder) UseArrayEncodedStructs(on bool) { if on { - e.flags |= encodeUsingJSONFlag + e.flags |= arrayEncodedStructsFlag } else { - e.flags &= ^encodeUsingJSONFlag + e.flags &= ^arrayEncodedStructsFlag } - return e } // UseCompactEncoding causes the Encoder to chose the most compact encoding. // For example, it allows to encode small Go int64 as msgpack int8 saving 7 bytes. -func (e *Encoder) UseCompactEncoding(on bool) *Encoder { +func (e *Encoder) UseCompactInts(on bool) { if on { e.flags |= useCompactIntsFlag } else { e.flags &= ^useCompactIntsFlag } - return e } // UseCompactFloats causes the Encoder to chose a compact integer encoding @@ -167,6 +186,15 @@ func (e *Encoder) UseCompactFloats(on bool) { } } +// UseInternedStrings causes the Encoder to intern strings. +func (e *Encoder) UseInternedStrings(on bool) { + if on { + e.flags |= useInternedStringsFlag + } else { + e.flags &= ^useInternedStringsFlag + } +} + func (e *Encoder) Encode(v interface{}) error { switch v := v.(type) { case nil: @@ -176,11 +204,11 @@ func (e *Encoder) Encode(v interface{}) error { case []byte: return e.EncodeBytes(v) case int: - return e.encodeInt64Cond(int64(v)) + return e.EncodeInt(int64(v)) case int64: return e.encodeInt64Cond(v) case uint: - return e.encodeUint64Cond(uint64(v)) + return e.EncodeUint(uint64(v)) case uint64: return e.encodeUint64Cond(v) case bool: @@ -212,22 +240,22 @@ func (e *Encoder) EncodeValue(v reflect.Value) error { } func (e *Encoder) EncodeNil() error { - return e.writeCode(codes.Nil) + return e.writeCode(msgpcode.Nil) } func (e *Encoder) EncodeBool(value bool) error { if value { - return e.writeCode(codes.True) + return e.writeCode(msgpcode.True) } - return e.writeCode(codes.False) + return e.writeCode(msgpcode.False) } func (e *Encoder) EncodeDuration(d time.Duration) error { return e.EncodeInt(int64(d)) } -func (e *Encoder) writeCode(c codes.Code) error { - return e.w.WriteByte(byte(c)) +func (e *Encoder) writeCode(c byte) error { + return e.w.WriteByte(c) } func (e *Encoder) write(b []byte) error { diff --git a/vendor/github.com/vmihailenco/msgpack/v4/encode_map.go b/vendor/github.com/vmihailenco/msgpack/v5/encode_map.go similarity index 70% rename from vendor/github.com/vmihailenco/msgpack/v4/encode_map.go rename to vendor/github.com/vmihailenco/msgpack/v5/encode_map.go index d9b954d8667a..ba4c61be72d8 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/encode_map.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/encode_map.go @@ -1,10 +1,11 @@ package msgpack import ( + "math" "reflect" "sort" - "github.com/vmihailenco/msgpack/v4/codes" + "github.com/vmihailenco/msgpack/v5/msgpcode" ) func encodeMapValue(e *Encoder, v reflect.Value) error { @@ -16,11 +17,12 @@ func encodeMapValue(e *Encoder, v reflect.Value) error { return err } - for _, key := range v.MapKeys() { - if err := e.EncodeValue(key); err != nil { + iter := v.MapRange() + for iter.Next() { + if err := e.EncodeValue(iter.Key()); err != nil { return err } - if err := e.EncodeValue(v.MapIndex(key)); err != nil { + if err := e.EncodeValue(iter.Value()); err != nil { return err } } @@ -58,16 +60,20 @@ func encodeMapStringInterfaceValue(e *Encoder, v reflect.Value) error { if v.IsNil() { return e.EncodeNil() } - - if err := e.EncodeMapLen(v.Len()); err != nil { - return err - } - m := v.Convert(mapStringInterfaceType).Interface().(map[string]interface{}) if e.flags&sortMapKeysFlag != 0 { - return e.encodeSortedMapStringInterface(m) + return e.EncodeMapSorted(m) } + return e.EncodeMap(m) +} +func (e *Encoder) EncodeMap(m map[string]interface{}) error { + if m == nil { + return e.EncodeNil() + } + if err := e.EncodeMapLen(len(m)); err != nil { + return err + } for mk, mv := range m { if err := e.EncodeString(mk); err != nil { return err @@ -76,23 +82,30 @@ func encodeMapStringInterfaceValue(e *Encoder, v reflect.Value) error { return err } } - return nil } -func (e *Encoder) encodeSortedMapStringString(m map[string]string) error { +func (e *Encoder) EncodeMapSorted(m map[string]interface{}) error { + if m == nil { + return e.EncodeNil() + } + if err := e.EncodeMapLen(len(m)); err != nil { + return err + } + keys := make([]string, 0, len(m)) + for k := range m { keys = append(keys, k) } + sort.Strings(keys) for _, k := range keys { - err := e.EncodeString(k) - if err != nil { + if err := e.EncodeString(k); err != nil { return err } - if err = e.EncodeString(m[k]); err != nil { + if err := e.Encode(m[k]); err != nil { return err } } @@ -100,7 +113,7 @@ func (e *Encoder) encodeSortedMapStringString(m map[string]string) error { return nil } -func (e *Encoder) encodeSortedMapStringInterface(m map[string]interface{}) error { +func (e *Encoder) encodeSortedMapStringString(m map[string]string) error { keys := make([]string, 0, len(m)) for k := range m { keys = append(keys, k) @@ -112,7 +125,7 @@ func (e *Encoder) encodeSortedMapStringInterface(m map[string]interface{}) error if err != nil { return err } - if err = e.Encode(m[k]); err != nil { + if err = e.EncodeString(m[k]); err != nil { return err } } @@ -122,26 +135,20 @@ func (e *Encoder) encodeSortedMapStringInterface(m map[string]interface{}) error func (e *Encoder) EncodeMapLen(l int) error { if l < 16 { - return e.writeCode(codes.FixedMapLow | codes.Code(l)) + return e.writeCode(msgpcode.FixedMapLow | byte(l)) } - if l < 65536 { - return e.write2(codes.Map16, uint16(l)) + if l <= math.MaxUint16 { + return e.write2(msgpcode.Map16, uint16(l)) } - return e.write4(codes.Map32, uint32(l)) + return e.write4(msgpcode.Map32, uint32(l)) } func encodeStructValue(e *Encoder, strct reflect.Value) error { - var structFields *fields - if e.flags&encodeUsingJSONFlag != 0 { - structFields = jsonStructs.Fields(strct.Type()) - } else { - structFields = structs.Fields(strct.Type()) - } - - if e.flags&structAsArrayFlag != 0 || structFields.AsArray { + structFields := structs.Fields(strct.Type(), e.structTag) + if e.flags&arrayEncodedStructsFlag != 0 || structFields.AsArray { return encodeStructValueAsArray(e, strct, structFields.List) } - fields := structFields.OmitEmpty(strct) + fields := structFields.OmitEmpty(strct, e.flags&omitEmptyFlag != 0) if err := e.EncodeMapLen(len(fields)); err != nil { return err diff --git a/vendor/github.com/vmihailenco/msgpack/v4/encode_number.go b/vendor/github.com/vmihailenco/msgpack/v5/encode_number.go similarity index 84% rename from vendor/github.com/vmihailenco/msgpack/v4/encode_number.go rename to vendor/github.com/vmihailenco/msgpack/v5/encode_number.go index bf3c2f851ae8..63c311bfae8c 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/encode_number.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/encode_number.go @@ -4,12 +4,12 @@ import ( "math" "reflect" - "github.com/vmihailenco/msgpack/v4/codes" + "github.com/vmihailenco/msgpack/v5/msgpcode" ) // EncodeUint8 encodes an uint8 in 2 bytes preserving type of the number. func (e *Encoder) EncodeUint8(n uint8) error { - return e.write1(codes.Uint8, n) + return e.write1(msgpcode.Uint8, n) } func (e *Encoder) encodeUint8Cond(n uint8) error { @@ -21,7 +21,7 @@ func (e *Encoder) encodeUint8Cond(n uint8) error { // EncodeUint16 encodes an uint16 in 3 bytes preserving type of the number. func (e *Encoder) EncodeUint16(n uint16) error { - return e.write2(codes.Uint16, n) + return e.write2(msgpcode.Uint16, n) } func (e *Encoder) encodeUint16Cond(n uint16) error { @@ -33,7 +33,7 @@ func (e *Encoder) encodeUint16Cond(n uint16) error { // EncodeUint32 encodes an uint16 in 5 bytes preserving type of the number. func (e *Encoder) EncodeUint32(n uint32) error { - return e.write4(codes.Uint32, n) + return e.write4(msgpcode.Uint32, n) } func (e *Encoder) encodeUint32Cond(n uint32) error { @@ -45,7 +45,7 @@ func (e *Encoder) encodeUint32Cond(n uint32) error { // EncodeUint64 encodes an uint16 in 9 bytes preserving type of the number. func (e *Encoder) EncodeUint64(n uint64) error { - return e.write8(codes.Uint64, n) + return e.write8(msgpcode.Uint64, n) } func (e *Encoder) encodeUint64Cond(n uint64) error { @@ -57,7 +57,7 @@ func (e *Encoder) encodeUint64Cond(n uint64) error { // EncodeInt8 encodes an int8 in 2 bytes preserving type of the number. func (e *Encoder) EncodeInt8(n int8) error { - return e.write1(codes.Int8, uint8(n)) + return e.write1(msgpcode.Int8, uint8(n)) } func (e *Encoder) encodeInt8Cond(n int8) error { @@ -69,7 +69,7 @@ func (e *Encoder) encodeInt8Cond(n int8) error { // EncodeInt16 encodes an int16 in 3 bytes preserving type of the number. func (e *Encoder) EncodeInt16(n int16) error { - return e.write2(codes.Int16, uint16(n)) + return e.write2(msgpcode.Int16, uint16(n)) } func (e *Encoder) encodeInt16Cond(n int16) error { @@ -81,7 +81,7 @@ func (e *Encoder) encodeInt16Cond(n int16) error { // EncodeInt32 encodes an int32 in 5 bytes preserving type of the number. func (e *Encoder) EncodeInt32(n int32) error { - return e.write4(codes.Int32, uint32(n)) + return e.write4(msgpcode.Int32, uint32(n)) } func (e *Encoder) encodeInt32Cond(n int32) error { @@ -93,7 +93,7 @@ func (e *Encoder) encodeInt32Cond(n int32) error { // EncodeInt64 encodes an int64 in 9 bytes preserving type of the number. func (e *Encoder) EncodeInt64(n int64) error { - return e.write8(codes.Int64, uint64(n)) + return e.write8(msgpcode.Int64, uint64(n)) } func (e *Encoder) encodeInt64Cond(n int64) error { @@ -127,7 +127,7 @@ func (e *Encoder) EncodeInt(n int64) error { if n >= 0 { return e.EncodeUint(uint64(n)) } - if n >= int64(int8(codes.NegFixedNumLow)) { + if n >= int64(int8(msgpcode.NegFixedNumLow)) { return e.w.WriteByte(byte(n)) } if n >= math.MinInt8 { @@ -148,7 +148,7 @@ func (e *Encoder) EncodeFloat32(n float32) error { return e.EncodeInt(int64(n)) } } - return e.write4(codes.Float, math.Float32bits(n)) + return e.write4(msgpcode.Float, math.Float32bits(n)) } func (e *Encoder) EncodeFloat64(n float64) error { @@ -161,27 +161,27 @@ func (e *Encoder) EncodeFloat64(n float64) error { return e.EncodeInt(int64(n)) } } - return e.write8(codes.Double, math.Float64bits(n)) + return e.write8(msgpcode.Double, math.Float64bits(n)) } -func (e *Encoder) write1(code codes.Code, n uint8) error { +func (e *Encoder) write1(code byte, n uint8) error { e.buf = e.buf[:2] - e.buf[0] = byte(code) + e.buf[0] = code e.buf[1] = n return e.write(e.buf) } -func (e *Encoder) write2(code codes.Code, n uint16) error { +func (e *Encoder) write2(code byte, n uint16) error { e.buf = e.buf[:3] - e.buf[0] = byte(code) + e.buf[0] = code e.buf[1] = byte(n >> 8) e.buf[2] = byte(n) return e.write(e.buf) } -func (e *Encoder) write4(code codes.Code, n uint32) error { +func (e *Encoder) write4(code byte, n uint32) error { e.buf = e.buf[:5] - e.buf[0] = byte(code) + e.buf[0] = code e.buf[1] = byte(n >> 24) e.buf[2] = byte(n >> 16) e.buf[3] = byte(n >> 8) @@ -189,9 +189,9 @@ func (e *Encoder) write4(code codes.Code, n uint32) error { return e.write(e.buf) } -func (e *Encoder) write8(code codes.Code, n uint64) error { +func (e *Encoder) write8(code byte, n uint64) error { e.buf = e.buf[:9] - e.buf[0] = byte(code) + e.buf[0] = code e.buf[1] = byte(n >> 56) e.buf[2] = byte(n >> 48) e.buf[3] = byte(n >> 40) @@ -203,6 +203,14 @@ func (e *Encoder) write8(code codes.Code, n uint64) error { return e.write(e.buf) } +func encodeUintValue(e *Encoder, v reflect.Value) error { + return e.EncodeUint(v.Uint()) +} + +func encodeIntValue(e *Encoder, v reflect.Value) error { + return e.EncodeInt(v.Int()) +} + func encodeUint8CondValue(e *Encoder, v reflect.Value) error { return e.encodeUint8Cond(uint8(v.Uint())) } diff --git a/vendor/github.com/vmihailenco/msgpack/v4/encode_slice.go b/vendor/github.com/vmihailenco/msgpack/v5/encode_slice.go similarity index 64% rename from vendor/github.com/vmihailenco/msgpack/v4/encode_slice.go rename to vendor/github.com/vmihailenco/msgpack/v5/encode_slice.go index 69a9618e0645..ca46eadae512 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/encode_slice.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/encode_slice.go @@ -1,12 +1,13 @@ package msgpack import ( + "math" "reflect" - "github.com/vmihailenco/msgpack/v4/codes" + "github.com/vmihailenco/msgpack/v5/msgpcode" ) -var sliceStringType = reflect.TypeOf(([]string)(nil)) +var stringSliceType = reflect.TypeOf(([]string)(nil)) func encodeStringValue(e *Encoder, v reflect.Value) error { return e.EncodeString(v.String()) @@ -42,29 +43,36 @@ func grow(b []byte, n int) []byte { func (e *Encoder) EncodeBytesLen(l int) error { if l < 256 { - return e.write1(codes.Bin8, uint8(l)) + return e.write1(msgpcode.Bin8, uint8(l)) } - if l < 65536 { - return e.write2(codes.Bin16, uint16(l)) + if l <= math.MaxUint16 { + return e.write2(msgpcode.Bin16, uint16(l)) } - return e.write4(codes.Bin32, uint32(l)) + return e.write4(msgpcode.Bin32, uint32(l)) } -func (e *Encoder) encodeStrLen(l int) error { +func (e *Encoder) encodeStringLen(l int) error { if l < 32 { - return e.writeCode(codes.FixedStrLow | codes.Code(l)) + return e.writeCode(msgpcode.FixedStrLow | byte(l)) } if l < 256 { - return e.write1(codes.Str8, uint8(l)) + return e.write1(msgpcode.Str8, uint8(l)) } - if l < 65536 { - return e.write2(codes.Str16, uint16(l)) + if l <= math.MaxUint16 { + return e.write2(msgpcode.Str16, uint16(l)) } - return e.write4(codes.Str32, uint32(l)) + return e.write4(msgpcode.Str32, uint32(l)) } func (e *Encoder) EncodeString(v string) error { - if err := e.encodeStrLen(len(v)); err != nil { + if intern := e.flags&useInternedStringsFlag != 0; intern || len(e.dict) > 0 { + return e.encodeInternedString(v, intern) + } + return e.encodeNormalString(v) +} + +func (e *Encoder) encodeNormalString(v string) error { + if err := e.encodeStringLen(len(v)); err != nil { return err } return e.writeString(v) @@ -82,16 +90,16 @@ func (e *Encoder) EncodeBytes(v []byte) error { func (e *Encoder) EncodeArrayLen(l int) error { if l < 16 { - return e.writeCode(codes.FixedArrayLow | codes.Code(l)) + return e.writeCode(msgpcode.FixedArrayLow | byte(l)) } - if l < 65536 { - return e.write2(codes.Array16, uint16(l)) + if l <= math.MaxUint16 { + return e.write2(msgpcode.Array16, uint16(l)) } - return e.write4(codes.Array32, uint32(l)) + return e.write4(msgpcode.Array32, uint32(l)) } func encodeStringSliceValue(e *Encoder, v reflect.Value) error { - ss := v.Convert(sliceStringType).Interface().([]string) + ss := v.Convert(stringSliceType).Interface().([]string) return e.encodeStringSlice(ss) } diff --git a/vendor/github.com/vmihailenco/msgpack/v4/encode_value.go b/vendor/github.com/vmihailenco/msgpack/v5/encode_value.go similarity index 82% rename from vendor/github.com/vmihailenco/msgpack/v4/encode_value.go rename to vendor/github.com/vmihailenco/msgpack/v5/encode_value.go index 335fcdb7ed6c..48cf489fa1f2 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/encode_value.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/encode_value.go @@ -12,12 +12,12 @@ var valueEncoders []encoderFunc func init() { valueEncoders = []encoderFunc{ reflect.Bool: encodeBoolValue, - reflect.Int: encodeInt64CondValue, + reflect.Int: encodeIntValue, reflect.Int8: encodeInt8CondValue, reflect.Int16: encodeInt16CondValue, reflect.Int32: encodeInt32CondValue, reflect.Int64: encodeInt64CondValue, - reflect.Uint: encodeUint64CondValue, + reflect.Uint: encodeUintValue, reflect.Uint8: encodeUint8CondValue, reflect.Uint16: encodeUint16CondValue, reflect.Uint32: encodeUint32CondValue, @@ -66,6 +66,9 @@ func _getEncoder(typ reflect.Type) encoderFunc { if typ.Implements(binaryMarshalerType) { return marshalBinaryValue } + if typ.Implements(textMarshalerType) { + return marshalTextValue + } // Addressable struct field value. if kind != reflect.Ptr { @@ -77,7 +80,10 @@ func _getEncoder(typ reflect.Type) encoderFunc { return marshalValuePtr } if ptr.Implements(binaryMarshalerType) { - return marshalBinaryValuePtr + return marshalBinaryValueAddr + } + if ptr.Implements(textMarshalerType) { + return marshalTextValueAddr } } @@ -133,7 +139,7 @@ func encodeCustomValuePtr(e *Encoder, v reflect.Value) error { } func encodeCustomValue(e *Encoder, v reflect.Value) error { - if nilable(v) && v.IsNil() { + if nilable(v.Kind()) && v.IsNil() { return e.EncodeNil() } @@ -149,7 +155,7 @@ func marshalValuePtr(e *Encoder, v reflect.Value) error { } func marshalValue(e *Encoder, v reflect.Value) error { - if nilable(v) && v.IsNil() { + if nilable(v.Kind()) && v.IsNil() { return e.EncodeNil() } @@ -184,8 +190,8 @@ func encodeUnsupportedValue(e *Encoder, v reflect.Value) error { return fmt.Errorf("msgpack: Encode(unsupported %s)", v.Type()) } -func nilable(v reflect.Value) bool { - switch v.Kind() { +func nilable(kind reflect.Kind) bool { + switch kind { case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: return true } @@ -194,7 +200,7 @@ func nilable(v reflect.Value) bool { //------------------------------------------------------------------------------ -func marshalBinaryValuePtr(e *Encoder, v reflect.Value) error { +func marshalBinaryValueAddr(e *Encoder, v reflect.Value) error { if !v.CanAddr() { return fmt.Errorf("msgpack: Encode(non-addressable %T)", v.Interface()) } @@ -202,7 +208,7 @@ func marshalBinaryValuePtr(e *Encoder, v reflect.Value) error { } func marshalBinaryValue(e *Encoder, v reflect.Value) error { - if nilable(v) && v.IsNil() { + if nilable(v.Kind()) && v.IsNil() { return e.EncodeNil() } @@ -214,3 +220,26 @@ func marshalBinaryValue(e *Encoder, v reflect.Value) error { return e.EncodeBytes(data) } + +//------------------------------------------------------------------------------ + +func marshalTextValueAddr(e *Encoder, v reflect.Value) error { + if !v.CanAddr() { + return fmt.Errorf("msgpack: Encode(non-addressable %T)", v.Interface()) + } + return marshalTextValue(e, v.Addr()) +} + +func marshalTextValue(e *Encoder, v reflect.Value) error { + if nilable(v.Kind()) && v.IsNil() { + return e.EncodeNil() + } + + marshaler := v.Interface().(encoding.TextMarshaler) + data, err := marshaler.MarshalText() + if err != nil { + return err + } + + return e.EncodeBytes(data) +} diff --git a/vendor/github.com/vmihailenco/msgpack/v5/ext.go b/vendor/github.com/vmihailenco/msgpack/v5/ext.go new file mode 100644 index 000000000000..76e11603d927 --- /dev/null +++ b/vendor/github.com/vmihailenco/msgpack/v5/ext.go @@ -0,0 +1,303 @@ +package msgpack + +import ( + "fmt" + "math" + "reflect" + + "github.com/vmihailenco/msgpack/v5/msgpcode" +) + +type extInfo struct { + Type reflect.Type + Decoder func(d *Decoder, v reflect.Value, extLen int) error +} + +var extTypes = make(map[int8]*extInfo) + +type MarshalerUnmarshaler interface { + Marshaler + Unmarshaler +} + +func RegisterExt(extID int8, value MarshalerUnmarshaler) { + RegisterExtEncoder(extID, value, func(e *Encoder, v reflect.Value) ([]byte, error) { + marshaler := v.Interface().(Marshaler) + return marshaler.MarshalMsgpack() + }) + RegisterExtDecoder(extID, value, func(d *Decoder, v reflect.Value, extLen int) error { + b, err := d.readN(extLen) + if err != nil { + return err + } + return v.Interface().(Unmarshaler).UnmarshalMsgpack(b) + }) +} + +func UnregisterExt(extID int8) { + unregisterExtEncoder(extID) + unregisterExtDecoder(extID) +} + +func RegisterExtEncoder( + extID int8, + value interface{}, + encoder func(enc *Encoder, v reflect.Value) ([]byte, error), +) { + unregisterExtEncoder(extID) + + typ := reflect.TypeOf(value) + extEncoder := makeExtEncoder(extID, typ, encoder) + typeEncMap.Store(extID, typ) + typeEncMap.Store(typ, extEncoder) + if typ.Kind() == reflect.Ptr { + typeEncMap.Store(typ.Elem(), makeExtEncoderAddr(extEncoder)) + } +} + +func unregisterExtEncoder(extID int8) { + t, ok := typeEncMap.Load(extID) + if !ok { + return + } + typeEncMap.Delete(extID) + typ := t.(reflect.Type) + typeEncMap.Delete(typ) + if typ.Kind() == reflect.Ptr { + typeEncMap.Delete(typ.Elem()) + } +} + +func makeExtEncoder( + extID int8, + typ reflect.Type, + encoder func(enc *Encoder, v reflect.Value) ([]byte, error), +) encoderFunc { + nilable := typ.Kind() == reflect.Ptr + + return func(e *Encoder, v reflect.Value) error { + if nilable && v.IsNil() { + return e.EncodeNil() + } + + b, err := encoder(e, v) + if err != nil { + return err + } + + if err := e.EncodeExtHeader(extID, len(b)); err != nil { + return err + } + + return e.write(b) + } +} + +func makeExtEncoderAddr(extEncoder encoderFunc) encoderFunc { + return func(e *Encoder, v reflect.Value) error { + if !v.CanAddr() { + return fmt.Errorf("msgpack: Decode(nonaddressable %T)", v.Interface()) + } + return extEncoder(e, v.Addr()) + } +} + +func RegisterExtDecoder( + extID int8, + value interface{}, + decoder func(dec *Decoder, v reflect.Value, extLen int) error, +) { + unregisterExtDecoder(extID) + + typ := reflect.TypeOf(value) + extDecoder := makeExtDecoder(extID, typ, decoder) + extTypes[extID] = &extInfo{ + Type: typ, + Decoder: decoder, + } + + typeDecMap.Store(extID, typ) + typeDecMap.Store(typ, extDecoder) + if typ.Kind() == reflect.Ptr { + typeDecMap.Store(typ.Elem(), makeExtDecoderAddr(extDecoder)) + } +} + +func unregisterExtDecoder(extID int8) { + t, ok := typeDecMap.Load(extID) + if !ok { + return + } + typeDecMap.Delete(extID) + delete(extTypes, extID) + typ := t.(reflect.Type) + typeDecMap.Delete(typ) + if typ.Kind() == reflect.Ptr { + typeDecMap.Delete(typ.Elem()) + } +} + +func makeExtDecoder( + wantedExtID int8, + typ reflect.Type, + decoder func(d *Decoder, v reflect.Value, extLen int) error, +) decoderFunc { + return nilAwareDecoder(typ, func(d *Decoder, v reflect.Value) error { + extID, extLen, err := d.DecodeExtHeader() + if err != nil { + return err + } + if extID != wantedExtID { + return fmt.Errorf("msgpack: got ext type=%d, wanted %d", extID, wantedExtID) + } + return decoder(d, v, extLen) + }) +} + +func makeExtDecoderAddr(extDecoder decoderFunc) decoderFunc { + return func(d *Decoder, v reflect.Value) error { + if !v.CanAddr() { + return fmt.Errorf("msgpack: Decode(nonaddressable %T)", v.Interface()) + } + return extDecoder(d, v.Addr()) + } +} + +func (e *Encoder) EncodeExtHeader(extID int8, extLen int) error { + if err := e.encodeExtLen(extLen); err != nil { + return err + } + if err := e.w.WriteByte(byte(extID)); err != nil { + return err + } + return nil +} + +func (e *Encoder) encodeExtLen(l int) error { + switch l { + case 1: + return e.writeCode(msgpcode.FixExt1) + case 2: + return e.writeCode(msgpcode.FixExt2) + case 4: + return e.writeCode(msgpcode.FixExt4) + case 8: + return e.writeCode(msgpcode.FixExt8) + case 16: + return e.writeCode(msgpcode.FixExt16) + } + if l <= math.MaxUint8 { + return e.write1(msgpcode.Ext8, uint8(l)) + } + if l <= math.MaxUint16 { + return e.write2(msgpcode.Ext16, uint16(l)) + } + return e.write4(msgpcode.Ext32, uint32(l)) +} + +func (d *Decoder) DecodeExtHeader() (extID int8, extLen int, err error) { + c, err := d.readCode() + if err != nil { + return + } + return d.extHeader(c) +} + +func (d *Decoder) extHeader(c byte) (int8, int, error) { + extLen, err := d.parseExtLen(c) + if err != nil { + return 0, 0, err + } + + extID, err := d.readCode() + if err != nil { + return 0, 0, err + } + + return int8(extID), extLen, nil +} + +func (d *Decoder) parseExtLen(c byte) (int, error) { + switch c { + case msgpcode.FixExt1: + return 1, nil + case msgpcode.FixExt2: + return 2, nil + case msgpcode.FixExt4: + return 4, nil + case msgpcode.FixExt8: + return 8, nil + case msgpcode.FixExt16: + return 16, nil + case msgpcode.Ext8: + n, err := d.uint8() + return int(n), err + case msgpcode.Ext16: + n, err := d.uint16() + return int(n), err + case msgpcode.Ext32: + n, err := d.uint32() + return int(n), err + default: + return 0, fmt.Errorf("msgpack: invalid code=%x decoding ext len", c) + } +} + +func (d *Decoder) decodeInterfaceExt(c byte) (interface{}, error) { + extID, extLen, err := d.extHeader(c) + if err != nil { + return nil, err + } + + info, ok := extTypes[extID] + if !ok { + return nil, fmt.Errorf("msgpack: unknown ext id=%d", extID) + } + + v := reflect.New(info.Type).Elem() + if nilable(v.Kind()) && v.IsNil() { + v.Set(reflect.New(info.Type.Elem())) + } + + if err := info.Decoder(d, v, extLen); err != nil { + return nil, err + } + + return v.Interface(), nil +} + +func (d *Decoder) skipExt(c byte) error { + n, err := d.parseExtLen(c) + if err != nil { + return err + } + return d.skipN(n + 1) +} + +func (d *Decoder) skipExtHeader(c byte) error { + // Read ext type. + _, err := d.readCode() + if err != nil { + return err + } + // Read ext body len. + for i := 0; i < extHeaderLen(c); i++ { + _, err := d.readCode() + if err != nil { + return err + } + } + return nil +} + +func extHeaderLen(c byte) int { + switch c { + case msgpcode.Ext8: + return 1 + case msgpcode.Ext16: + return 2 + case msgpcode.Ext32: + return 4 + } + return 0 +} diff --git a/vendor/github.com/vmihailenco/msgpack/v5/intern.go b/vendor/github.com/vmihailenco/msgpack/v5/intern.go new file mode 100644 index 000000000000..be0316a83d8d --- /dev/null +++ b/vendor/github.com/vmihailenco/msgpack/v5/intern.go @@ -0,0 +1,238 @@ +package msgpack + +import ( + "fmt" + "math" + "reflect" + + "github.com/vmihailenco/msgpack/v5/msgpcode" +) + +const ( + minInternedStringLen = 3 + maxDictLen = math.MaxUint16 +) + +var internedStringExtID = int8(math.MinInt8) + +func init() { + extTypes[internedStringExtID] = &extInfo{ + Type: stringType, + Decoder: decodeInternedStringExt, + } +} + +func decodeInternedStringExt(d *Decoder, v reflect.Value, extLen int) error { + idx, err := d.decodeInternedStringIndex(extLen) + if err != nil { + return err + } + + s, err := d.internedStringAtIndex(idx) + if err != nil { + return err + } + + v.SetString(s) + return nil +} + +//------------------------------------------------------------------------------ + +func encodeInternedInterfaceValue(e *Encoder, v reflect.Value) error { + if v.IsNil() { + return e.EncodeNil() + } + + v = v.Elem() + if v.Kind() == reflect.String { + return e.encodeInternedString(v.String(), true) + } + return e.EncodeValue(v) +} + +func encodeInternedStringValue(e *Encoder, v reflect.Value) error { + return e.encodeInternedString(v.String(), true) +} + +func (e *Encoder) encodeInternedString(s string, intern bool) error { + // Interned string takes at least 3 bytes. Plain string 1 byte + string len. + if len(s) >= minInternedStringLen { + if idx, ok := e.dict[s]; ok { + return e.encodeInternedStringIndex(idx) + } + + if intern && len(e.dict) < maxDictLen { + if e.dict == nil { + e.dict = make(map[string]int) + } + idx := len(e.dict) + e.dict[s] = idx + } + } + + return e.encodeNormalString(s) +} + +func (e *Encoder) encodeInternedStringIndex(idx int) error { + if idx <= math.MaxUint8 { + if err := e.writeCode(msgpcode.FixExt1); err != nil { + return err + } + return e.write1(byte(internedStringExtID), uint8(idx)) + } + + if idx <= math.MaxUint16 { + if err := e.writeCode(msgpcode.FixExt2); err != nil { + return err + } + return e.write2(byte(internedStringExtID), uint16(idx)) + } + + if uint64(idx) <= math.MaxUint32 { + if err := e.writeCode(msgpcode.FixExt4); err != nil { + return err + } + return e.write4(byte(internedStringExtID), uint32(idx)) + } + + return fmt.Errorf("msgpack: interned string index=%d is too large", idx) +} + +//------------------------------------------------------------------------------ + +func decodeInternedInterfaceValue(d *Decoder, v reflect.Value) error { + s, err := d.decodeInternedString(true) + if err == nil { + v.Set(reflect.ValueOf(s)) + return nil + } + if err != nil { + if _, ok := err.(unexpectedCodeError); !ok { + return err + } + } + + if err := d.s.UnreadByte(); err != nil { + return err + } + return decodeInterfaceValue(d, v) +} + +func decodeInternedStringValue(d *Decoder, v reflect.Value) error { + s, err := d.decodeInternedString(true) + if err != nil { + return err + } + + v.SetString(s) + return nil +} + +func (d *Decoder) decodeInternedString(intern bool) (string, error) { + c, err := d.readCode() + if err != nil { + return "", err + } + + if msgpcode.IsFixedString(c) { + n := int(c & msgpcode.FixedStrMask) + return d.decodeInternedStringWithLen(n, intern) + } + + switch c { + case msgpcode.Nil: + return "", nil + case msgpcode.FixExt1, msgpcode.FixExt2, msgpcode.FixExt4: + typeID, extLen, err := d.extHeader(c) + if err != nil { + return "", err + } + if typeID != internedStringExtID { + err := fmt.Errorf("msgpack: got ext type=%d, wanted %d", + typeID, internedStringExtID) + return "", err + } + + idx, err := d.decodeInternedStringIndex(extLen) + if err != nil { + return "", err + } + + return d.internedStringAtIndex(idx) + case msgpcode.Str8, msgpcode.Bin8: + n, err := d.uint8() + if err != nil { + return "", err + } + return d.decodeInternedStringWithLen(int(n), intern) + case msgpcode.Str16, msgpcode.Bin16: + n, err := d.uint16() + if err != nil { + return "", err + } + return d.decodeInternedStringWithLen(int(n), intern) + case msgpcode.Str32, msgpcode.Bin32: + n, err := d.uint32() + if err != nil { + return "", err + } + return d.decodeInternedStringWithLen(int(n), intern) + } + + return "", unexpectedCodeError{ + code: c, + hint: "interned string", + } +} + +func (d *Decoder) decodeInternedStringIndex(extLen int) (int, error) { + switch extLen { + case 1: + n, err := d.uint8() + if err != nil { + return 0, err + } + return int(n), nil + case 2: + n, err := d.uint16() + if err != nil { + return 0, err + } + return int(n), nil + case 4: + n, err := d.uint32() + if err != nil { + return 0, err + } + return int(n), nil + } + + err := fmt.Errorf("msgpack: unsupported ext len=%d decoding interned string", extLen) + return 0, err +} + +func (d *Decoder) internedStringAtIndex(idx int) (string, error) { + if idx >= len(d.dict) { + err := fmt.Errorf("msgpack: interned string at index=%d does not exist", idx) + return "", err + } + return d.dict[idx], nil +} + +func (d *Decoder) decodeInternedStringWithLen(n int, intern bool) (string, error) { + if n <= 0 { + return "", nil + } + + s, err := d.stringWithLen(n) + if err != nil { + return "", err + } + + if intern && len(s) >= minInternedStringLen && len(d.dict) < maxDictLen { + d.dict = append(d.dict, s) + } + + return s, nil +} diff --git a/vendor/github.com/vmihailenco/msgpack/v5/msgpack.go b/vendor/github.com/vmihailenco/msgpack/v5/msgpack.go new file mode 100644 index 000000000000..4db2fa2c71d3 --- /dev/null +++ b/vendor/github.com/vmihailenco/msgpack/v5/msgpack.go @@ -0,0 +1,52 @@ +package msgpack + +import "fmt" + +type Marshaler interface { + MarshalMsgpack() ([]byte, error) +} + +type Unmarshaler interface { + UnmarshalMsgpack([]byte) error +} + +type CustomEncoder interface { + EncodeMsgpack(*Encoder) error +} + +type CustomDecoder interface { + DecodeMsgpack(*Decoder) error +} + +//------------------------------------------------------------------------------ + +type RawMessage []byte + +var ( + _ CustomEncoder = (RawMessage)(nil) + _ CustomDecoder = (*RawMessage)(nil) +) + +func (m RawMessage) EncodeMsgpack(enc *Encoder) error { + return enc.write(m) +} + +func (m *RawMessage) DecodeMsgpack(dec *Decoder) error { + msg, err := dec.DecodeRaw() + if err != nil { + return err + } + *m = msg + return nil +} + +//------------------------------------------------------------------------------ + +type unexpectedCodeError struct { + code byte + hint string +} + +func (err unexpectedCodeError) Error() string { + return fmt.Sprintf("msgpack: unexpected code=%x decoding %s", err.code, err.hint) +} diff --git a/vendor/github.com/vmihailenco/msgpack/v5/msgpcode/msgpcode.go b/vendor/github.com/vmihailenco/msgpack/v5/msgpcode/msgpcode.go new file mode 100644 index 000000000000..e35389cccfe0 --- /dev/null +++ b/vendor/github.com/vmihailenco/msgpack/v5/msgpcode/msgpcode.go @@ -0,0 +1,88 @@ +package msgpcode + +var ( + PosFixedNumHigh byte = 0x7f + NegFixedNumLow byte = 0xe0 + + Nil byte = 0xc0 + + False byte = 0xc2 + True byte = 0xc3 + + Float byte = 0xca + Double byte = 0xcb + + Uint8 byte = 0xcc + Uint16 byte = 0xcd + Uint32 byte = 0xce + Uint64 byte = 0xcf + + Int8 byte = 0xd0 + Int16 byte = 0xd1 + Int32 byte = 0xd2 + Int64 byte = 0xd3 + + FixedStrLow byte = 0xa0 + FixedStrHigh byte = 0xbf + FixedStrMask byte = 0x1f + Str8 byte = 0xd9 + Str16 byte = 0xda + Str32 byte = 0xdb + + Bin8 byte = 0xc4 + Bin16 byte = 0xc5 + Bin32 byte = 0xc6 + + FixedArrayLow byte = 0x90 + FixedArrayHigh byte = 0x9f + FixedArrayMask byte = 0xf + Array16 byte = 0xdc + Array32 byte = 0xdd + + FixedMapLow byte = 0x80 + FixedMapHigh byte = 0x8f + FixedMapMask byte = 0xf + Map16 byte = 0xde + Map32 byte = 0xdf + + FixExt1 byte = 0xd4 + FixExt2 byte = 0xd5 + FixExt4 byte = 0xd6 + FixExt8 byte = 0xd7 + FixExt16 byte = 0xd8 + Ext8 byte = 0xc7 + Ext16 byte = 0xc8 + Ext32 byte = 0xc9 +) + +func IsFixedNum(c byte) bool { + return c <= PosFixedNumHigh || c >= NegFixedNumLow +} + +func IsFixedMap(c byte) bool { + return c >= FixedMapLow && c <= FixedMapHigh +} + +func IsFixedArray(c byte) bool { + return c >= FixedArrayLow && c <= FixedArrayHigh +} + +func IsFixedString(c byte) bool { + return c >= FixedStrLow && c <= FixedStrHigh +} + +func IsString(c byte) bool { + return IsFixedString(c) || c == Str8 || c == Str16 || c == Str32 +} + +func IsBin(c byte) bool { + return c == Bin8 || c == Bin16 || c == Bin32 +} + +func IsFixedExt(c byte) bool { + return c >= FixExt1 && c <= FixExt16 +} + +func IsExt(c byte) bool { + return IsFixedExt(c) || c == Ext8 || c == Ext16 || c == Ext32 +} diff --git a/vendor/github.com/vmihailenco/msgpack/v5/package.json b/vendor/github.com/vmihailenco/msgpack/v5/package.json new file mode 100644 index 000000000000..298910d45cf0 --- /dev/null +++ b/vendor/github.com/vmihailenco/msgpack/v5/package.json @@ -0,0 +1,4 @@ +{ + "name": "msgpack", + "version": "5.3.5" +} diff --git a/vendor/github.com/vmihailenco/msgpack/v4/safe.go b/vendor/github.com/vmihailenco/msgpack/v5/safe.go similarity index 100% rename from vendor/github.com/vmihailenco/msgpack/v4/safe.go rename to vendor/github.com/vmihailenco/msgpack/v5/safe.go diff --git a/vendor/github.com/vmihailenco/msgpack/v4/time.go b/vendor/github.com/vmihailenco/msgpack/v5/time.go similarity index 60% rename from vendor/github.com/vmihailenco/msgpack/v4/time.go rename to vendor/github.com/vmihailenco/msgpack/v5/time.go index bf53eb2a36fc..44566ec0761f 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/time.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/time.go @@ -6,16 +6,30 @@ import ( "reflect" "time" - "github.com/vmihailenco/msgpack/v4/codes" + "github.com/vmihailenco/msgpack/v5/msgpcode" ) var timeExtID int8 = -1 -var timePtrType = reflect.TypeOf((*time.Time)(nil)) - -//nolint:gochecknoinits func init() { - registerExt(timeExtID, timePtrType.Elem(), encodeTimeValue, decodeTimeValue) + RegisterExtEncoder(timeExtID, time.Time{}, timeEncoder) + RegisterExtDecoder(timeExtID, time.Time{}, timeDecoder) +} + +func timeEncoder(e *Encoder, v reflect.Value) ([]byte, error) { + return e.encodeTime(v.Interface().(time.Time)), nil +} + +func timeDecoder(d *Decoder, v reflect.Value, extLen int) error { + tm, err := d.decodeTime(extLen) + if err != nil { + return err + } + + ptr := v.Addr().Interface().(*time.Time) + *ptr = tm + + return nil } func (e *Encoder) EncodeTime(tm time.Time) error { @@ -30,14 +44,20 @@ func (e *Encoder) EncodeTime(tm time.Time) error { } func (e *Encoder) encodeTime(tm time.Time) []byte { + if e.timeBuf == nil { + e.timeBuf = make([]byte, 12) + } + secs := uint64(tm.Unix()) if secs>>34 == 0 { data := uint64(tm.Nanosecond())<<34 | secs + if data&0xffffffff00000000 == 0 { b := e.timeBuf[:4] binary.BigEndian.PutUint32(b, uint32(data)) return b } + b := e.timeBuf[:8] binary.BigEndian.PutUint64(b, data) return b @@ -50,62 +70,56 @@ func (e *Encoder) encodeTime(tm time.Time) []byte { } func (d *Decoder) DecodeTime() (time.Time, error) { - tm, err := d.decodeTime() + c, err := d.readCode() if err != nil { - return tm, err + return time.Time{}, err } - if tm.IsZero() { - // Assume that zero time does not have timezone information. - return tm.UTC(), nil - } - return tm, nil -} - -func (d *Decoder) decodeTime() (time.Time, error) { - extLen := d.extLen - d.extLen = 0 - if extLen == 0 { - c, err := d.readCode() + // Legacy format. + if c == msgpcode.FixedArrayLow|2 { + sec, err := d.DecodeInt64() if err != nil { return time.Time{}, err } - // Legacy format. - if c == codes.FixedArrayLow|2 { - sec, err := d.DecodeInt64() - if err != nil { - return time.Time{}, err - } - - nsec, err := d.DecodeInt64() - if err != nil { - return time.Time{}, err - } - - return time.Unix(sec, nsec), nil + nsec, err := d.DecodeInt64() + if err != nil { + return time.Time{}, err } - if codes.IsString(c) { - s, err := d.string(c) - if err != nil { - return time.Time{}, err - } - return time.Parse(time.RFC3339Nano, s) - } + return time.Unix(sec, nsec), nil + } - extLen, err = d.parseExtLen(c) + if msgpcode.IsString(c) { + s, err := d.string(c) if err != nil { return time.Time{}, err } + return time.Parse(time.RFC3339Nano, s) + } - // Skip ext id. - _, err = d.s.ReadByte() - if err != nil { - return time.Time{}, nil - } + extID, extLen, err := d.extHeader(c) + if err != nil { + return time.Time{}, err + } + + if extID != timeExtID { + return time.Time{}, fmt.Errorf("msgpack: invalid time ext id=%d", extID) + } + + tm, err := d.decodeTime(extLen) + if err != nil { + return tm, err } + if tm.IsZero() { + // Zero time does not have timezone information. + return tm.UTC(), nil + } + return tm, nil +} + +func (d *Decoder) decodeTime(extLen int) (time.Time, error) { b, err := d.readN(extLen) if err != nil { return time.Time{}, err @@ -129,21 +143,3 @@ func (d *Decoder) decodeTime() (time.Time, error) { return time.Time{}, err } } - -func encodeTimeValue(e *Encoder, v reflect.Value) error { - tm := v.Interface().(time.Time) - b := e.encodeTime(tm) - return e.write(b) -} - -func decodeTimeValue(d *Decoder, v reflect.Value) error { - tm, err := d.DecodeTime() - if err != nil { - return err - } - - ptr := v.Addr().Interface().(*time.Time) - *ptr = tm - - return nil -} diff --git a/vendor/github.com/vmihailenco/msgpack/v4/types.go b/vendor/github.com/vmihailenco/msgpack/v5/types.go similarity index 73% rename from vendor/github.com/vmihailenco/msgpack/v4/types.go rename to vendor/github.com/vmihailenco/msgpack/v5/types.go index 08cf099dd2a8..69aca611b23b 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/types.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/types.go @@ -7,7 +7,7 @@ import ( "reflect" "sync" - "github.com/vmihailenco/tagparser" + "github.com/vmihailenco/tagparser/v2" ) var errorType = reflect.TypeOf((*error)(nil)).Elem() @@ -27,6 +27,11 @@ var ( binaryUnmarshalerType = reflect.TypeOf((*encoding.BinaryUnmarshaler)(nil)).Elem() ) +var ( + textMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem() + textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem() +) + type ( encoderFunc func(*Encoder, reflect.Value) error decoderFunc func(*Decoder, reflect.Value) error @@ -39,7 +44,7 @@ var ( // Register registers encoder and decoder functions for a value. // This is low level API and in most cases you should prefer implementing -// Marshaler/CustomEncoder and Unmarshaler/CustomDecoder interfaces. +// CustomEncoder/CustomDecoder or Marshaler/Unmarshaler interfaces. func Register(value interface{}, enc encoderFunc, dec decoderFunc) { typ := reflect.TypeOf(value) if enc != nil { @@ -52,30 +57,33 @@ func Register(value interface{}, enc encoderFunc, dec decoderFunc) { //------------------------------------------------------------------------------ -var ( - structs = newStructCache(false) - jsonStructs = newStructCache(true) -) +const defaultStructTag = "msgpack" + +var structs = newStructCache() type structCache struct { m sync.Map +} - useJSONTag bool +type structCacheKey struct { + tag string + typ reflect.Type } -func newStructCache(useJSONTag bool) *structCache { - return &structCache{ - useJSONTag: useJSONTag, - } +func newStructCache() *structCache { + return new(structCache) } -func (m *structCache) Fields(typ reflect.Type) *fields { - if v, ok := m.m.Load(typ); ok { +func (m *structCache) Fields(typ reflect.Type, tag string) *fields { + key := structCacheKey{tag: tag, typ: typ} + + if v, ok := m.m.Load(key); ok { return v.(*fields) } - fs := getFields(typ, m.useJSONTag) - m.m.Store(typ, fs) + fs := getFields(typ, tag) + m.m.Store(key, fs) + return fs } @@ -89,17 +97,17 @@ type field struct { decoder decoderFunc } -func (f *field) Omit(strct reflect.Value) bool { - v, isNil := fieldByIndex(strct, f.index) - if isNil { +func (f *field) Omit(strct reflect.Value, forced bool) bool { + v, ok := fieldByIndex(strct, f.index) + if !ok { return true } - return f.omitEmpty && isEmptyValue(v) + return (f.omitEmpty || forced) && isEmptyValue(v) } func (f *field) EncodeValue(e *Encoder, strct reflect.Value) error { - v, isNil := fieldByIndex(strct, f.index) - if isNil { + v, ok := fieldByIndex(strct, f.index) + if !ok { return e.EncodeNil() } return f.encoder(e, v) @@ -144,15 +152,15 @@ func (fs *fields) warnIfFieldExists(name string) { } } -func (fs *fields) OmitEmpty(strct reflect.Value) []*field { - if !fs.hasOmitEmpty { +func (fs *fields) OmitEmpty(strct reflect.Value, forced bool) []*field { + if !fs.hasOmitEmpty && !forced { return fs.List } fields := make([]*field, 0, len(fs.List)) for _, f := range fs.List { - if !f.Omit(strct) { + if !f.Omit(strct, forced) { fields = append(fields, f) } } @@ -160,16 +168,16 @@ func (fs *fields) OmitEmpty(strct reflect.Value) []*field { return fields } -func getFields(typ reflect.Type, useJSONTag bool) *fields { +func getFields(typ reflect.Type, fallbackTag string) *fields { fs := newFields(typ) var omitEmpty bool for i := 0; i < typ.NumField(); i++ { f := typ.Field(i) - tagStr := f.Tag.Get("msgpack") - if useJSONTag && tagStr == "" { - tagStr = f.Tag.Get("json") + tagStr := f.Tag.Get(defaultStructTag) + if tagStr == "" && fallbackTag != "" { + tagStr = f.Tag.Get(fallbackTag) } tag := tagparser.Parse(tagStr) @@ -178,9 +186,7 @@ func getFields(typ reflect.Type, useJSONTag bool) *fields { } if f.Name == "_msgpack" { - if tag.HasOption("asArray") { - fs.AsArray = true - } + fs.AsArray = tag.HasOption("as_array") || tag.HasOption("asArray") if tag.HasOption("omitempty") { omitEmpty = true } @@ -199,11 +205,11 @@ func getFields(typ reflect.Type, useJSONTag bool) *fields { if tag.HasOption("intern") { switch f.Type.Kind() { case reflect.Interface: - field.encoder = encodeInternInterfaceValue - field.decoder = decodeInternInterfaceValue + field.encoder = encodeInternedInterfaceValue + field.decoder = decodeInternedInterfaceValue case reflect.String: - field.encoder = encodeInternStringValue - field.decoder = decodeInternStringValue + field.encoder = encodeInternedStringValue + field.decoder = decodeInternedStringValue default: err := fmt.Errorf("msgpack: intern strings are not supported on %s", f.Type) panic(err) @@ -220,9 +226,9 @@ func getFields(typ reflect.Type, useJSONTag bool) *fields { if f.Anonymous && !tag.HasOption("noinline") { inline := tag.HasOption("inline") if inline { - inlineFields(fs, f.Type, field, useJSONTag) + inlineFields(fs, f.Type, field, fallbackTag) } else { - inline = shouldInline(fs, f.Type, field, useJSONTag) + inline = shouldInline(fs, f.Type, field, fallbackTag) } if inline { @@ -255,8 +261,8 @@ func init() { decodeStructValuePtr = reflect.ValueOf(decodeStructValue).Pointer() } -func inlineFields(fs *fields, typ reflect.Type, f *field, useJSONTag bool) { - inlinedFields := getFields(typ, useJSONTag).List +func inlineFields(fs *fields, typ reflect.Type, f *field, tag string) { + inlinedFields := getFields(typ, tag).List for _, field := range inlinedFields { if _, ok := fs.Map[field.name]; ok { // Don't inline shadowed fields. @@ -267,7 +273,7 @@ func inlineFields(fs *fields, typ reflect.Type, f *field, useJSONTag bool) { } } -func shouldInline(fs *fields, typ reflect.Type, f *field, useJSONTag bool) bool { +func shouldInline(fs *fields, typ reflect.Type, f *field, tag string) bool { var encoder encoderFunc var decoder decoderFunc @@ -292,7 +298,7 @@ func shouldInline(fs *fields, typ reflect.Type, f *field, useJSONTag bool) bool return false } - inlinedFields := getFields(typ, useJSONTag).List + inlinedFields := getFields(typ, tag).List for _, field := range inlinedFields { if _, ok := fs.Map[field.name]; ok { // Don't auto inline if there are shadowed fields. @@ -307,8 +313,26 @@ func shouldInline(fs *fields, typ reflect.Type, f *field, useJSONTag bool) bool return true } +type isZeroer interface { + IsZero() bool +} + func isEmptyValue(v reflect.Value) bool { - switch v.Kind() { + kind := v.Kind() + + for kind == reflect.Interface { + if v.IsNil() { + return true + } + v = v.Elem() + kind = v.Kind() + } + + if z, ok := v.Interface().(isZeroer); ok { + return nilable(kind) && v.IsNil() || z.IsZero() + } + + switch kind { case reflect.Array, reflect.Map, reflect.Slice, reflect.String: return v.Len() == 0 case reflect.Bool: @@ -319,22 +343,23 @@ func isEmptyValue(v reflect.Value) bool { return v.Uint() == 0 case reflect.Float32, reflect.Float64: return v.Float() == 0 - case reflect.Interface, reflect.Ptr: + case reflect.Ptr: return v.IsNil() + default: + return false } - return false } -func fieldByIndex(v reflect.Value, index []int) (_ reflect.Value, isNil bool) { +func fieldByIndex(v reflect.Value, index []int) (_ reflect.Value, ok bool) { if len(index) == 1 { - return v.Field(index[0]), false + return v.Field(index[0]), true } for i, idx := range index { if i > 0 { if v.Kind() == reflect.Ptr { if v.IsNil() { - return v, true + return v, false } v = v.Elem() } @@ -342,7 +367,7 @@ func fieldByIndex(v reflect.Value, index []int) (_ reflect.Value, isNil bool) { v = v.Field(idx) } - return v, false + return v, true } func fieldByIndexAlloc(v reflect.Value, index []int) reflect.Value { @@ -353,7 +378,7 @@ func fieldByIndexAlloc(v reflect.Value, index []int) reflect.Value { for i, idx := range index { if i > 0 { var ok bool - v, ok = indirectNew(v) + v, ok = indirectNil(v) if !ok { return v } @@ -364,7 +389,7 @@ func fieldByIndexAlloc(v reflect.Value, index []int) reflect.Value { return v } -func indirectNew(v reflect.Value) (reflect.Value, bool) { +func indirectNil(v reflect.Value) (reflect.Value, bool) { if v.Kind() == reflect.Ptr { if v.IsNil() { if !v.CanSet() { diff --git a/vendor/github.com/vmihailenco/msgpack/v4/unsafe.go b/vendor/github.com/vmihailenco/msgpack/v5/unsafe.go similarity index 83% rename from vendor/github.com/vmihailenco/msgpack/v4/unsafe.go rename to vendor/github.com/vmihailenco/msgpack/v5/unsafe.go index 50c0da8b5be5..192ac47920db 100644 --- a/vendor/github.com/vmihailenco/msgpack/v4/unsafe.go +++ b/vendor/github.com/vmihailenco/msgpack/v5/unsafe.go @@ -7,7 +7,7 @@ import ( ) // bytesToString converts byte slice to string. -func bytesToString(b []byte) string { //nolint:deadcode,unused +func bytesToString(b []byte) string { return *(*string)(unsafe.Pointer(&b)) } diff --git a/vendor/github.com/vmihailenco/msgpack/v5/version.go b/vendor/github.com/vmihailenco/msgpack/v5/version.go new file mode 100644 index 000000000000..1d49337c359e --- /dev/null +++ b/vendor/github.com/vmihailenco/msgpack/v5/version.go @@ -0,0 +1,6 @@ +package msgpack + +// Version is the current release version. +func Version() string { + return "5.3.5" +} diff --git a/vendor/github.com/vmihailenco/tagparser/.travis.yml b/vendor/github.com/vmihailenco/tagparser/v2/.travis.yml similarity index 80% rename from vendor/github.com/vmihailenco/tagparser/.travis.yml rename to vendor/github.com/vmihailenco/tagparser/v2/.travis.yml index ec538452322c..7194cd00109c 100644 --- a/vendor/github.com/vmihailenco/tagparser/.travis.yml +++ b/vendor/github.com/vmihailenco/tagparser/v2/.travis.yml @@ -1,10 +1,9 @@ dist: xenial -sudo: false language: go go: - - 1.11.x - - 1.12.x + - 1.14.x + - 1.15.x - tip matrix: @@ -18,7 +17,3 @@ go_import_path: github.com/vmihailenco/tagparser before_install: - curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.17.1 - -script: - - make - - golangci-lint run diff --git a/vendor/github.com/vmihailenco/tagparser/LICENSE b/vendor/github.com/vmihailenco/tagparser/v2/LICENSE similarity index 100% rename from vendor/github.com/vmihailenco/tagparser/LICENSE rename to vendor/github.com/vmihailenco/tagparser/v2/LICENSE diff --git a/vendor/github.com/vmihailenco/tagparser/Makefile b/vendor/github.com/vmihailenco/tagparser/v2/Makefile similarity index 91% rename from vendor/github.com/vmihailenco/tagparser/Makefile rename to vendor/github.com/vmihailenco/tagparser/v2/Makefile index fe9dc5bdbafd..0b1b59595ac1 100644 --- a/vendor/github.com/vmihailenco/tagparser/Makefile +++ b/vendor/github.com/vmihailenco/tagparser/v2/Makefile @@ -6,3 +6,4 @@ all: go vet ./... go get github.com/gordonklaus/ineffassign ineffassign . + golangci-lint run diff --git a/vendor/github.com/vmihailenco/tagparser/README.md b/vendor/github.com/vmihailenco/tagparser/v2/README.md similarity index 92% rename from vendor/github.com/vmihailenco/tagparser/README.md rename to vendor/github.com/vmihailenco/tagparser/v2/README.md index 411aa5444dc5..c0259de56592 100644 --- a/vendor/github.com/vmihailenco/tagparser/README.md +++ b/vendor/github.com/vmihailenco/tagparser/v2/README.md @@ -8,7 +8,7 @@ Install: ```shell -go get -u github.com/vmihailenco/tagparser +go get github.com/vmihailenco/tagparser/v2 ``` ## Quickstart diff --git a/vendor/github.com/vmihailenco/tagparser/internal/parser/parser.go b/vendor/github.com/vmihailenco/tagparser/v2/internal/parser/parser.go similarity index 95% rename from vendor/github.com/vmihailenco/tagparser/internal/parser/parser.go rename to vendor/github.com/vmihailenco/tagparser/v2/internal/parser/parser.go index 2de1c6f7bde5..21a9bc7f7478 100644 --- a/vendor/github.com/vmihailenco/tagparser/internal/parser/parser.go +++ b/vendor/github.com/vmihailenco/tagparser/v2/internal/parser/parser.go @@ -3,7 +3,7 @@ package parser import ( "bytes" - "github.com/vmihailenco/tagparser/internal" + "github.com/vmihailenco/tagparser/v2/internal" ) type Parser struct { diff --git a/vendor/github.com/vmihailenco/tagparser/internal/safe.go b/vendor/github.com/vmihailenco/tagparser/v2/internal/safe.go similarity index 100% rename from vendor/github.com/vmihailenco/tagparser/internal/safe.go rename to vendor/github.com/vmihailenco/tagparser/v2/internal/safe.go diff --git a/vendor/github.com/vmihailenco/tagparser/internal/unsafe.go b/vendor/github.com/vmihailenco/tagparser/v2/internal/unsafe.go similarity index 100% rename from vendor/github.com/vmihailenco/tagparser/internal/unsafe.go rename to vendor/github.com/vmihailenco/tagparser/v2/internal/unsafe.go diff --git a/vendor/github.com/vmihailenco/tagparser/tagparser.go b/vendor/github.com/vmihailenco/tagparser/v2/tagparser.go similarity index 88% rename from vendor/github.com/vmihailenco/tagparser/tagparser.go rename to vendor/github.com/vmihailenco/tagparser/v2/tagparser.go index 56b918011b0b..5002e6453ea9 100644 --- a/vendor/github.com/vmihailenco/tagparser/tagparser.go +++ b/vendor/github.com/vmihailenco/tagparser/v2/tagparser.go @@ -1,7 +1,9 @@ package tagparser import ( - "github.com/vmihailenco/tagparser/internal/parser" + "strings" + + "github.com/vmihailenco/tagparser/v2/internal/parser" ) type Tag struct { @@ -31,6 +33,9 @@ type tagParser struct { } func (p *tagParser) setTagOption(key, value string) { + key = strings.TrimSpace(key) + value = strings.TrimSpace(value) + if !p.hasName { p.hasName = true if key == "" { @@ -79,7 +84,6 @@ func (p *tagParser) parseKey() { func (p *tagParser) parseValue() { const quote = '\'' - c := p.Peek() if c == quote { p.Skip(quote) @@ -134,10 +138,7 @@ loop: func (p *tagParser) parseQuotedValue() { const quote = '\'' - var b []byte - b = append(b, quote) - for p.Valid() { bb, ok := p.ReadSep(quote) if !ok { @@ -145,6 +146,8 @@ func (p *tagParser) parseQuotedValue() { break } + // keep the escaped single-quote, and continue until we've found the + // one that isn't. if len(bb) > 0 && bb[len(bb)-1] == '\\' { b = append(b, bb[:len(bb)-1]...) b = append(b, quote) @@ -152,7 +155,6 @@ func (p *tagParser) parseQuotedValue() { } b = append(b, bb...) - b = append(b, quote) break } @@ -162,15 +164,3 @@ func (p *tagParser) parseQuotedValue() { } p.parseKey() } - -func Unquote(s string) (string, bool) { - const quote = '\'' - - if len(s) < 2 { - return s, false - } - if s[0] == quote && s[len(s)-1] == quote { - return s[1 : len(s)-1], true - } - return s, false -} diff --git a/vendor/github.com/zclconf/go-cty/cty/ctystrings/prefix.go b/vendor/github.com/zclconf/go-cty/cty/ctystrings/prefix.go index 1d9f5c5a1f92..bbf045233b42 100644 --- a/vendor/github.com/zclconf/go-cty/cty/ctystrings/prefix.go +++ b/vendor/github.com/zclconf/go-cty/cty/ctystrings/prefix.go @@ -4,7 +4,7 @@ import ( "fmt" "unicode/utf8" - "github.com/apparentlymart/go-textseg/v13/textseg" + "github.com/apparentlymart/go-textseg/v15/textseg" "golang.org/x/text/unicode/norm" ) @@ -26,10 +26,6 @@ import ( // application can guarantee that the remainder of the string will not begin // with combining marks then it is safe to instead just normalize the prefix // string with [Normalize]. -// -// Note that this function only takes into account normalization boundaries -// and does _not_ take into account grapheme cluster boundaries as defined -// by Unicode Standard Annex #29. func SafeKnownPrefix(prefix string) string { prefix = Normalize(prefix) diff --git a/vendor/github.com/zclconf/go-cty/cty/function/stdlib/format.go b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/format.go index d04a5eec78b1..2339cc33a7d0 100644 --- a/vendor/github.com/zclconf/go-cty/cty/function/stdlib/format.go +++ b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/format.go @@ -6,7 +6,7 @@ import ( "math/big" "strings" - "github.com/apparentlymart/go-textseg/v13/textseg" + "github.com/apparentlymart/go-textseg/v15/textseg" "github.com/zclconf/go-cty/cty" "github.com/zclconf/go-cty/cty/convert" diff --git a/vendor/github.com/zclconf/go-cty/cty/function/stdlib/string.go b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/string.go index 57ebce1b4a62..f79bf98df2ef 100644 --- a/vendor/github.com/zclconf/go-cty/cty/function/stdlib/string.go +++ b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/string.go @@ -6,7 +6,7 @@ import ( "sort" "strings" - "github.com/apparentlymart/go-textseg/v13/textseg" + "github.com/apparentlymart/go-textseg/v15/textseg" "github.com/zclconf/go-cty/cty" "github.com/zclconf/go-cty/cty/function" diff --git a/vendor/github.com/zclconf/go-cty/cty/path.go b/vendor/github.com/zclconf/go-cty/cty/path.go index 636e68c63dd1..4995a8c7bfce 100644 --- a/vendor/github.com/zclconf/go-cty/cty/path.go +++ b/vendor/github.com/zclconf/go-cty/cty/path.go @@ -225,7 +225,9 @@ func (s IndexStep) Apply(val Value) (Value, error) { return NilVal, errors.New("key value not number or string") } - has := val.HasIndex(s.Key) + // This value needs to be stripped of marks to check True(), but Index will + // apply the correct marks for the result. + has, _ := val.HasIndex(s.Key).Unmark() if !has.IsKnown() { return UnknownVal(val.Type().ElementType()), nil } diff --git a/vendor/golang.org/x/crypto/argon2/argon2.go b/vendor/golang.org/x/crypto/argon2/argon2.go new file mode 100644 index 000000000000..29f0a2de4514 --- /dev/null +++ b/vendor/golang.org/x/crypto/argon2/argon2.go @@ -0,0 +1,283 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package argon2 implements the key derivation function Argon2. +// Argon2 was selected as the winner of the Password Hashing Competition and can +// be used to derive cryptographic keys from passwords. +// +// For a detailed specification of Argon2 see [1]. +// +// If you aren't sure which function you need, use Argon2id (IDKey) and +// the parameter recommendations for your scenario. +// +// # Argon2i +// +// Argon2i (implemented by Key) is the side-channel resistant version of Argon2. +// It uses data-independent memory access, which is preferred for password +// hashing and password-based key derivation. Argon2i requires more passes over +// memory than Argon2id to protect from trade-off attacks. The recommended +// parameters (taken from [2]) for non-interactive operations are time=3 and to +// use the maximum available memory. +// +// # Argon2id +// +// Argon2id (implemented by IDKey) is a hybrid version of Argon2 combining +// Argon2i and Argon2d. It uses data-independent memory access for the first +// half of the first iteration over the memory and data-dependent memory access +// for the rest. Argon2id is side-channel resistant and provides better brute- +// force cost savings due to time-memory tradeoffs than Argon2i. The recommended +// parameters for non-interactive operations (taken from [2]) are time=1 and to +// use the maximum available memory. +// +// [1] https://github.com/P-H-C/phc-winner-argon2/blob/master/argon2-specs.pdf +// [2] https://tools.ietf.org/html/draft-irtf-cfrg-argon2-03#section-9.3 +package argon2 + +import ( + "encoding/binary" + "sync" + + "golang.org/x/crypto/blake2b" +) + +// The Argon2 version implemented by this package. +const Version = 0x13 + +const ( + argon2d = iota + argon2i + argon2id +) + +// Key derives a key from the password, salt, and cost parameters using Argon2i +// returning a byte slice of length keyLen that can be used as cryptographic +// key. The CPU cost and parallelism degree must be greater than zero. +// +// For example, you can get a derived key for e.g. AES-256 (which needs a +// 32-byte key) by doing: +// +// key := argon2.Key([]byte("some password"), salt, 3, 32*1024, 4, 32) +// +// The draft RFC recommends[2] time=3, and memory=32*1024 is a sensible number. +// If using that amount of memory (32 MB) is not possible in some contexts then +// the time parameter can be increased to compensate. +// +// The time parameter specifies the number of passes over the memory and the +// memory parameter specifies the size of the memory in KiB. For example +// memory=32*1024 sets the memory cost to ~32 MB. The number of threads can be +// adjusted to the number of available CPUs. The cost parameters should be +// increased as memory latency and CPU parallelism increases. Remember to get a +// good random salt. +func Key(password, salt []byte, time, memory uint32, threads uint8, keyLen uint32) []byte { + return deriveKey(argon2i, password, salt, nil, nil, time, memory, threads, keyLen) +} + +// IDKey derives a key from the password, salt, and cost parameters using +// Argon2id returning a byte slice of length keyLen that can be used as +// cryptographic key. The CPU cost and parallelism degree must be greater than +// zero. +// +// For example, you can get a derived key for e.g. AES-256 (which needs a +// 32-byte key) by doing: +// +// key := argon2.IDKey([]byte("some password"), salt, 1, 64*1024, 4, 32) +// +// The draft RFC recommends[2] time=1, and memory=64*1024 is a sensible number. +// If using that amount of memory (64 MB) is not possible in some contexts then +// the time parameter can be increased to compensate. +// +// The time parameter specifies the number of passes over the memory and the +// memory parameter specifies the size of the memory in KiB. For example +// memory=64*1024 sets the memory cost to ~64 MB. The number of threads can be +// adjusted to the numbers of available CPUs. The cost parameters should be +// increased as memory latency and CPU parallelism increases. Remember to get a +// good random salt. +func IDKey(password, salt []byte, time, memory uint32, threads uint8, keyLen uint32) []byte { + return deriveKey(argon2id, password, salt, nil, nil, time, memory, threads, keyLen) +} + +func deriveKey(mode int, password, salt, secret, data []byte, time, memory uint32, threads uint8, keyLen uint32) []byte { + if time < 1 { + panic("argon2: number of rounds too small") + } + if threads < 1 { + panic("argon2: parallelism degree too low") + } + h0 := initHash(password, salt, secret, data, time, memory, uint32(threads), keyLen, mode) + + memory = memory / (syncPoints * uint32(threads)) * (syncPoints * uint32(threads)) + if memory < 2*syncPoints*uint32(threads) { + memory = 2 * syncPoints * uint32(threads) + } + B := initBlocks(&h0, memory, uint32(threads)) + processBlocks(B, time, memory, uint32(threads), mode) + return extractKey(B, memory, uint32(threads), keyLen) +} + +const ( + blockLength = 128 + syncPoints = 4 +) + +type block [blockLength]uint64 + +func initHash(password, salt, key, data []byte, time, memory, threads, keyLen uint32, mode int) [blake2b.Size + 8]byte { + var ( + h0 [blake2b.Size + 8]byte + params [24]byte + tmp [4]byte + ) + + b2, _ := blake2b.New512(nil) + binary.LittleEndian.PutUint32(params[0:4], threads) + binary.LittleEndian.PutUint32(params[4:8], keyLen) + binary.LittleEndian.PutUint32(params[8:12], memory) + binary.LittleEndian.PutUint32(params[12:16], time) + binary.LittleEndian.PutUint32(params[16:20], uint32(Version)) + binary.LittleEndian.PutUint32(params[20:24], uint32(mode)) + b2.Write(params[:]) + binary.LittleEndian.PutUint32(tmp[:], uint32(len(password))) + b2.Write(tmp[:]) + b2.Write(password) + binary.LittleEndian.PutUint32(tmp[:], uint32(len(salt))) + b2.Write(tmp[:]) + b2.Write(salt) + binary.LittleEndian.PutUint32(tmp[:], uint32(len(key))) + b2.Write(tmp[:]) + b2.Write(key) + binary.LittleEndian.PutUint32(tmp[:], uint32(len(data))) + b2.Write(tmp[:]) + b2.Write(data) + b2.Sum(h0[:0]) + return h0 +} + +func initBlocks(h0 *[blake2b.Size + 8]byte, memory, threads uint32) []block { + var block0 [1024]byte + B := make([]block, memory) + for lane := uint32(0); lane < threads; lane++ { + j := lane * (memory / threads) + binary.LittleEndian.PutUint32(h0[blake2b.Size+4:], lane) + + binary.LittleEndian.PutUint32(h0[blake2b.Size:], 0) + blake2bHash(block0[:], h0[:]) + for i := range B[j+0] { + B[j+0][i] = binary.LittleEndian.Uint64(block0[i*8:]) + } + + binary.LittleEndian.PutUint32(h0[blake2b.Size:], 1) + blake2bHash(block0[:], h0[:]) + for i := range B[j+1] { + B[j+1][i] = binary.LittleEndian.Uint64(block0[i*8:]) + } + } + return B +} + +func processBlocks(B []block, time, memory, threads uint32, mode int) { + lanes := memory / threads + segments := lanes / syncPoints + + processSegment := func(n, slice, lane uint32, wg *sync.WaitGroup) { + var addresses, in, zero block + if mode == argon2i || (mode == argon2id && n == 0 && slice < syncPoints/2) { + in[0] = uint64(n) + in[1] = uint64(lane) + in[2] = uint64(slice) + in[3] = uint64(memory) + in[4] = uint64(time) + in[5] = uint64(mode) + } + + index := uint32(0) + if n == 0 && slice == 0 { + index = 2 // we have already generated the first two blocks + if mode == argon2i || mode == argon2id { + in[6]++ + processBlock(&addresses, &in, &zero) + processBlock(&addresses, &addresses, &zero) + } + } + + offset := lane*lanes + slice*segments + index + var random uint64 + for index < segments { + prev := offset - 1 + if index == 0 && slice == 0 { + prev += lanes // last block in lane + } + if mode == argon2i || (mode == argon2id && n == 0 && slice < syncPoints/2) { + if index%blockLength == 0 { + in[6]++ + processBlock(&addresses, &in, &zero) + processBlock(&addresses, &addresses, &zero) + } + random = addresses[index%blockLength] + } else { + random = B[prev][0] + } + newOffset := indexAlpha(random, lanes, segments, threads, n, slice, lane, index) + processBlockXOR(&B[offset], &B[prev], &B[newOffset]) + index, offset = index+1, offset+1 + } + wg.Done() + } + + for n := uint32(0); n < time; n++ { + for slice := uint32(0); slice < syncPoints; slice++ { + var wg sync.WaitGroup + for lane := uint32(0); lane < threads; lane++ { + wg.Add(1) + go processSegment(n, slice, lane, &wg) + } + wg.Wait() + } + } + +} + +func extractKey(B []block, memory, threads, keyLen uint32) []byte { + lanes := memory / threads + for lane := uint32(0); lane < threads-1; lane++ { + for i, v := range B[(lane*lanes)+lanes-1] { + B[memory-1][i] ^= v + } + } + + var block [1024]byte + for i, v := range B[memory-1] { + binary.LittleEndian.PutUint64(block[i*8:], v) + } + key := make([]byte, keyLen) + blake2bHash(key, block[:]) + return key +} + +func indexAlpha(rand uint64, lanes, segments, threads, n, slice, lane, index uint32) uint32 { + refLane := uint32(rand>>32) % threads + if n == 0 && slice == 0 { + refLane = lane + } + m, s := 3*segments, ((slice+1)%syncPoints)*segments + if lane == refLane { + m += index + } + if n == 0 { + m, s = slice*segments, 0 + if slice == 0 || lane == refLane { + m += index + } + } + if index == 0 || lane == refLane { + m-- + } + return phi(rand, uint64(m), uint64(s), refLane, lanes) +} + +func phi(rand, m, s uint64, lane, lanes uint32) uint32 { + p := rand & 0xFFFFFFFF + p = (p * p) >> 32 + p = (p * m) >> 32 + return lane*lanes + uint32((s+m-(p+1))%uint64(lanes)) +} diff --git a/vendor/golang.org/x/crypto/argon2/blake2b.go b/vendor/golang.org/x/crypto/argon2/blake2b.go new file mode 100644 index 000000000000..10f46948dc10 --- /dev/null +++ b/vendor/golang.org/x/crypto/argon2/blake2b.go @@ -0,0 +1,53 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package argon2 + +import ( + "encoding/binary" + "hash" + + "golang.org/x/crypto/blake2b" +) + +// blake2bHash computes an arbitrary long hash value of in +// and writes the hash to out. +func blake2bHash(out []byte, in []byte) { + var b2 hash.Hash + if n := len(out); n < blake2b.Size { + b2, _ = blake2b.New(n, nil) + } else { + b2, _ = blake2b.New512(nil) + } + + var buffer [blake2b.Size]byte + binary.LittleEndian.PutUint32(buffer[:4], uint32(len(out))) + b2.Write(buffer[:4]) + b2.Write(in) + + if len(out) <= blake2b.Size { + b2.Sum(out[:0]) + return + } + + outLen := len(out) + b2.Sum(buffer[:0]) + b2.Reset() + copy(out, buffer[:32]) + out = out[32:] + for len(out) > blake2b.Size { + b2.Write(buffer[:]) + b2.Sum(buffer[:0]) + copy(out, buffer[:32]) + out = out[32:] + b2.Reset() + } + + if outLen%blake2b.Size > 0 { // outLen > 64 + r := ((outLen + 31) / 32) - 2 // ⌈τ /32⌉-2 + b2, _ = blake2b.New(outLen-32*r, nil) + } + b2.Write(buffer[:]) + b2.Sum(out[:0]) +} diff --git a/vendor/golang.org/x/crypto/argon2/blamka_amd64.go b/vendor/golang.org/x/crypto/argon2/blamka_amd64.go new file mode 100644 index 000000000000..a014ac92aa9f --- /dev/null +++ b/vendor/golang.org/x/crypto/argon2/blamka_amd64.go @@ -0,0 +1,61 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build amd64 && gc && !purego +// +build amd64,gc,!purego + +package argon2 + +import "golang.org/x/sys/cpu" + +func init() { + useSSE4 = cpu.X86.HasSSE41 +} + +//go:noescape +func mixBlocksSSE2(out, a, b, c *block) + +//go:noescape +func xorBlocksSSE2(out, a, b, c *block) + +//go:noescape +func blamkaSSE4(b *block) + +func processBlockSSE(out, in1, in2 *block, xor bool) { + var t block + mixBlocksSSE2(&t, in1, in2, &t) + if useSSE4 { + blamkaSSE4(&t) + } else { + for i := 0; i < blockLength; i += 16 { + blamkaGeneric( + &t[i+0], &t[i+1], &t[i+2], &t[i+3], + &t[i+4], &t[i+5], &t[i+6], &t[i+7], + &t[i+8], &t[i+9], &t[i+10], &t[i+11], + &t[i+12], &t[i+13], &t[i+14], &t[i+15], + ) + } + for i := 0; i < blockLength/8; i += 2 { + blamkaGeneric( + &t[i], &t[i+1], &t[16+i], &t[16+i+1], + &t[32+i], &t[32+i+1], &t[48+i], &t[48+i+1], + &t[64+i], &t[64+i+1], &t[80+i], &t[80+i+1], + &t[96+i], &t[96+i+1], &t[112+i], &t[112+i+1], + ) + } + } + if xor { + xorBlocksSSE2(out, in1, in2, &t) + } else { + mixBlocksSSE2(out, in1, in2, &t) + } +} + +func processBlock(out, in1, in2 *block) { + processBlockSSE(out, in1, in2, false) +} + +func processBlockXOR(out, in1, in2 *block) { + processBlockSSE(out, in1, in2, true) +} diff --git a/vendor/golang.org/x/crypto/argon2/blamka_amd64.s b/vendor/golang.org/x/crypto/argon2/blamka_amd64.s new file mode 100644 index 000000000000..b2cc0515049a --- /dev/null +++ b/vendor/golang.org/x/crypto/argon2/blamka_amd64.s @@ -0,0 +1,244 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build amd64 && gc && !purego +// +build amd64,gc,!purego + +#include "textflag.h" + +DATA ·c40<>+0x00(SB)/8, $0x0201000706050403 +DATA ·c40<>+0x08(SB)/8, $0x0a09080f0e0d0c0b +GLOBL ·c40<>(SB), (NOPTR+RODATA), $16 + +DATA ·c48<>+0x00(SB)/8, $0x0100070605040302 +DATA ·c48<>+0x08(SB)/8, $0x09080f0e0d0c0b0a +GLOBL ·c48<>(SB), (NOPTR+RODATA), $16 + +#define SHUFFLE(v2, v3, v4, v5, v6, v7, t1, t2) \ + MOVO v4, t1; \ + MOVO v5, v4; \ + MOVO t1, v5; \ + MOVO v6, t1; \ + PUNPCKLQDQ v6, t2; \ + PUNPCKHQDQ v7, v6; \ + PUNPCKHQDQ t2, v6; \ + PUNPCKLQDQ v7, t2; \ + MOVO t1, v7; \ + MOVO v2, t1; \ + PUNPCKHQDQ t2, v7; \ + PUNPCKLQDQ v3, t2; \ + PUNPCKHQDQ t2, v2; \ + PUNPCKLQDQ t1, t2; \ + PUNPCKHQDQ t2, v3 + +#define SHUFFLE_INV(v2, v3, v4, v5, v6, v7, t1, t2) \ + MOVO v4, t1; \ + MOVO v5, v4; \ + MOVO t1, v5; \ + MOVO v2, t1; \ + PUNPCKLQDQ v2, t2; \ + PUNPCKHQDQ v3, v2; \ + PUNPCKHQDQ t2, v2; \ + PUNPCKLQDQ v3, t2; \ + MOVO t1, v3; \ + MOVO v6, t1; \ + PUNPCKHQDQ t2, v3; \ + PUNPCKLQDQ v7, t2; \ + PUNPCKHQDQ t2, v6; \ + PUNPCKLQDQ t1, t2; \ + PUNPCKHQDQ t2, v7 + +#define HALF_ROUND(v0, v1, v2, v3, v4, v5, v6, v7, t0, c40, c48) \ + MOVO v0, t0; \ + PMULULQ v2, t0; \ + PADDQ v2, v0; \ + PADDQ t0, v0; \ + PADDQ t0, v0; \ + PXOR v0, v6; \ + PSHUFD $0xB1, v6, v6; \ + MOVO v4, t0; \ + PMULULQ v6, t0; \ + PADDQ v6, v4; \ + PADDQ t0, v4; \ + PADDQ t0, v4; \ + PXOR v4, v2; \ + PSHUFB c40, v2; \ + MOVO v0, t0; \ + PMULULQ v2, t0; \ + PADDQ v2, v0; \ + PADDQ t0, v0; \ + PADDQ t0, v0; \ + PXOR v0, v6; \ + PSHUFB c48, v6; \ + MOVO v4, t0; \ + PMULULQ v6, t0; \ + PADDQ v6, v4; \ + PADDQ t0, v4; \ + PADDQ t0, v4; \ + PXOR v4, v2; \ + MOVO v2, t0; \ + PADDQ v2, t0; \ + PSRLQ $63, v2; \ + PXOR t0, v2; \ + MOVO v1, t0; \ + PMULULQ v3, t0; \ + PADDQ v3, v1; \ + PADDQ t0, v1; \ + PADDQ t0, v1; \ + PXOR v1, v7; \ + PSHUFD $0xB1, v7, v7; \ + MOVO v5, t0; \ + PMULULQ v7, t0; \ + PADDQ v7, v5; \ + PADDQ t0, v5; \ + PADDQ t0, v5; \ + PXOR v5, v3; \ + PSHUFB c40, v3; \ + MOVO v1, t0; \ + PMULULQ v3, t0; \ + PADDQ v3, v1; \ + PADDQ t0, v1; \ + PADDQ t0, v1; \ + PXOR v1, v7; \ + PSHUFB c48, v7; \ + MOVO v5, t0; \ + PMULULQ v7, t0; \ + PADDQ v7, v5; \ + PADDQ t0, v5; \ + PADDQ t0, v5; \ + PXOR v5, v3; \ + MOVO v3, t0; \ + PADDQ v3, t0; \ + PSRLQ $63, v3; \ + PXOR t0, v3 + +#define LOAD_MSG_0(block, off) \ + MOVOU 8*(off+0)(block), X0; \ + MOVOU 8*(off+2)(block), X1; \ + MOVOU 8*(off+4)(block), X2; \ + MOVOU 8*(off+6)(block), X3; \ + MOVOU 8*(off+8)(block), X4; \ + MOVOU 8*(off+10)(block), X5; \ + MOVOU 8*(off+12)(block), X6; \ + MOVOU 8*(off+14)(block), X7 + +#define STORE_MSG_0(block, off) \ + MOVOU X0, 8*(off+0)(block); \ + MOVOU X1, 8*(off+2)(block); \ + MOVOU X2, 8*(off+4)(block); \ + MOVOU X3, 8*(off+6)(block); \ + MOVOU X4, 8*(off+8)(block); \ + MOVOU X5, 8*(off+10)(block); \ + MOVOU X6, 8*(off+12)(block); \ + MOVOU X7, 8*(off+14)(block) + +#define LOAD_MSG_1(block, off) \ + MOVOU 8*off+0*8(block), X0; \ + MOVOU 8*off+16*8(block), X1; \ + MOVOU 8*off+32*8(block), X2; \ + MOVOU 8*off+48*8(block), X3; \ + MOVOU 8*off+64*8(block), X4; \ + MOVOU 8*off+80*8(block), X5; \ + MOVOU 8*off+96*8(block), X6; \ + MOVOU 8*off+112*8(block), X7 + +#define STORE_MSG_1(block, off) \ + MOVOU X0, 8*off+0*8(block); \ + MOVOU X1, 8*off+16*8(block); \ + MOVOU X2, 8*off+32*8(block); \ + MOVOU X3, 8*off+48*8(block); \ + MOVOU X4, 8*off+64*8(block); \ + MOVOU X5, 8*off+80*8(block); \ + MOVOU X6, 8*off+96*8(block); \ + MOVOU X7, 8*off+112*8(block) + +#define BLAMKA_ROUND_0(block, off, t0, t1, c40, c48) \ + LOAD_MSG_0(block, off); \ + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, t0, c40, c48); \ + SHUFFLE(X2, X3, X4, X5, X6, X7, t0, t1); \ + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, t0, c40, c48); \ + SHUFFLE_INV(X2, X3, X4, X5, X6, X7, t0, t1); \ + STORE_MSG_0(block, off) + +#define BLAMKA_ROUND_1(block, off, t0, t1, c40, c48) \ + LOAD_MSG_1(block, off); \ + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, t0, c40, c48); \ + SHUFFLE(X2, X3, X4, X5, X6, X7, t0, t1); \ + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, t0, c40, c48); \ + SHUFFLE_INV(X2, X3, X4, X5, X6, X7, t0, t1); \ + STORE_MSG_1(block, off) + +// func blamkaSSE4(b *block) +TEXT ·blamkaSSE4(SB), 4, $0-8 + MOVQ b+0(FP), AX + + MOVOU ·c40<>(SB), X10 + MOVOU ·c48<>(SB), X11 + + BLAMKA_ROUND_0(AX, 0, X8, X9, X10, X11) + BLAMKA_ROUND_0(AX, 16, X8, X9, X10, X11) + BLAMKA_ROUND_0(AX, 32, X8, X9, X10, X11) + BLAMKA_ROUND_0(AX, 48, X8, X9, X10, X11) + BLAMKA_ROUND_0(AX, 64, X8, X9, X10, X11) + BLAMKA_ROUND_0(AX, 80, X8, X9, X10, X11) + BLAMKA_ROUND_0(AX, 96, X8, X9, X10, X11) + BLAMKA_ROUND_0(AX, 112, X8, X9, X10, X11) + + BLAMKA_ROUND_1(AX, 0, X8, X9, X10, X11) + BLAMKA_ROUND_1(AX, 2, X8, X9, X10, X11) + BLAMKA_ROUND_1(AX, 4, X8, X9, X10, X11) + BLAMKA_ROUND_1(AX, 6, X8, X9, X10, X11) + BLAMKA_ROUND_1(AX, 8, X8, X9, X10, X11) + BLAMKA_ROUND_1(AX, 10, X8, X9, X10, X11) + BLAMKA_ROUND_1(AX, 12, X8, X9, X10, X11) + BLAMKA_ROUND_1(AX, 14, X8, X9, X10, X11) + RET + +// func mixBlocksSSE2(out, a, b, c *block) +TEXT ·mixBlocksSSE2(SB), 4, $0-32 + MOVQ out+0(FP), DX + MOVQ a+8(FP), AX + MOVQ b+16(FP), BX + MOVQ a+24(FP), CX + MOVQ $128, BP + +loop: + MOVOU 0(AX), X0 + MOVOU 0(BX), X1 + MOVOU 0(CX), X2 + PXOR X1, X0 + PXOR X2, X0 + MOVOU X0, 0(DX) + ADDQ $16, AX + ADDQ $16, BX + ADDQ $16, CX + ADDQ $16, DX + SUBQ $2, BP + JA loop + RET + +// func xorBlocksSSE2(out, a, b, c *block) +TEXT ·xorBlocksSSE2(SB), 4, $0-32 + MOVQ out+0(FP), DX + MOVQ a+8(FP), AX + MOVQ b+16(FP), BX + MOVQ a+24(FP), CX + MOVQ $128, BP + +loop: + MOVOU 0(AX), X0 + MOVOU 0(BX), X1 + MOVOU 0(CX), X2 + MOVOU 0(DX), X3 + PXOR X1, X0 + PXOR X2, X0 + PXOR X3, X0 + MOVOU X0, 0(DX) + ADDQ $16, AX + ADDQ $16, BX + ADDQ $16, CX + ADDQ $16, DX + SUBQ $2, BP + JA loop + RET diff --git a/vendor/golang.org/x/crypto/argon2/blamka_generic.go b/vendor/golang.org/x/crypto/argon2/blamka_generic.go new file mode 100644 index 000000000000..a481b2243f85 --- /dev/null +++ b/vendor/golang.org/x/crypto/argon2/blamka_generic.go @@ -0,0 +1,163 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package argon2 + +var useSSE4 bool + +func processBlockGeneric(out, in1, in2 *block, xor bool) { + var t block + for i := range t { + t[i] = in1[i] ^ in2[i] + } + for i := 0; i < blockLength; i += 16 { + blamkaGeneric( + &t[i+0], &t[i+1], &t[i+2], &t[i+3], + &t[i+4], &t[i+5], &t[i+6], &t[i+7], + &t[i+8], &t[i+9], &t[i+10], &t[i+11], + &t[i+12], &t[i+13], &t[i+14], &t[i+15], + ) + } + for i := 0; i < blockLength/8; i += 2 { + blamkaGeneric( + &t[i], &t[i+1], &t[16+i], &t[16+i+1], + &t[32+i], &t[32+i+1], &t[48+i], &t[48+i+1], + &t[64+i], &t[64+i+1], &t[80+i], &t[80+i+1], + &t[96+i], &t[96+i+1], &t[112+i], &t[112+i+1], + ) + } + if xor { + for i := range t { + out[i] ^= in1[i] ^ in2[i] ^ t[i] + } + } else { + for i := range t { + out[i] = in1[i] ^ in2[i] ^ t[i] + } + } +} + +func blamkaGeneric(t00, t01, t02, t03, t04, t05, t06, t07, t08, t09, t10, t11, t12, t13, t14, t15 *uint64) { + v00, v01, v02, v03 := *t00, *t01, *t02, *t03 + v04, v05, v06, v07 := *t04, *t05, *t06, *t07 + v08, v09, v10, v11 := *t08, *t09, *t10, *t11 + v12, v13, v14, v15 := *t12, *t13, *t14, *t15 + + v00 += v04 + 2*uint64(uint32(v00))*uint64(uint32(v04)) + v12 ^= v00 + v12 = v12>>32 | v12<<32 + v08 += v12 + 2*uint64(uint32(v08))*uint64(uint32(v12)) + v04 ^= v08 + v04 = v04>>24 | v04<<40 + + v00 += v04 + 2*uint64(uint32(v00))*uint64(uint32(v04)) + v12 ^= v00 + v12 = v12>>16 | v12<<48 + v08 += v12 + 2*uint64(uint32(v08))*uint64(uint32(v12)) + v04 ^= v08 + v04 = v04>>63 | v04<<1 + + v01 += v05 + 2*uint64(uint32(v01))*uint64(uint32(v05)) + v13 ^= v01 + v13 = v13>>32 | v13<<32 + v09 += v13 + 2*uint64(uint32(v09))*uint64(uint32(v13)) + v05 ^= v09 + v05 = v05>>24 | v05<<40 + + v01 += v05 + 2*uint64(uint32(v01))*uint64(uint32(v05)) + v13 ^= v01 + v13 = v13>>16 | v13<<48 + v09 += v13 + 2*uint64(uint32(v09))*uint64(uint32(v13)) + v05 ^= v09 + v05 = v05>>63 | v05<<1 + + v02 += v06 + 2*uint64(uint32(v02))*uint64(uint32(v06)) + v14 ^= v02 + v14 = v14>>32 | v14<<32 + v10 += v14 + 2*uint64(uint32(v10))*uint64(uint32(v14)) + v06 ^= v10 + v06 = v06>>24 | v06<<40 + + v02 += v06 + 2*uint64(uint32(v02))*uint64(uint32(v06)) + v14 ^= v02 + v14 = v14>>16 | v14<<48 + v10 += v14 + 2*uint64(uint32(v10))*uint64(uint32(v14)) + v06 ^= v10 + v06 = v06>>63 | v06<<1 + + v03 += v07 + 2*uint64(uint32(v03))*uint64(uint32(v07)) + v15 ^= v03 + v15 = v15>>32 | v15<<32 + v11 += v15 + 2*uint64(uint32(v11))*uint64(uint32(v15)) + v07 ^= v11 + v07 = v07>>24 | v07<<40 + + v03 += v07 + 2*uint64(uint32(v03))*uint64(uint32(v07)) + v15 ^= v03 + v15 = v15>>16 | v15<<48 + v11 += v15 + 2*uint64(uint32(v11))*uint64(uint32(v15)) + v07 ^= v11 + v07 = v07>>63 | v07<<1 + + v00 += v05 + 2*uint64(uint32(v00))*uint64(uint32(v05)) + v15 ^= v00 + v15 = v15>>32 | v15<<32 + v10 += v15 + 2*uint64(uint32(v10))*uint64(uint32(v15)) + v05 ^= v10 + v05 = v05>>24 | v05<<40 + + v00 += v05 + 2*uint64(uint32(v00))*uint64(uint32(v05)) + v15 ^= v00 + v15 = v15>>16 | v15<<48 + v10 += v15 + 2*uint64(uint32(v10))*uint64(uint32(v15)) + v05 ^= v10 + v05 = v05>>63 | v05<<1 + + v01 += v06 + 2*uint64(uint32(v01))*uint64(uint32(v06)) + v12 ^= v01 + v12 = v12>>32 | v12<<32 + v11 += v12 + 2*uint64(uint32(v11))*uint64(uint32(v12)) + v06 ^= v11 + v06 = v06>>24 | v06<<40 + + v01 += v06 + 2*uint64(uint32(v01))*uint64(uint32(v06)) + v12 ^= v01 + v12 = v12>>16 | v12<<48 + v11 += v12 + 2*uint64(uint32(v11))*uint64(uint32(v12)) + v06 ^= v11 + v06 = v06>>63 | v06<<1 + + v02 += v07 + 2*uint64(uint32(v02))*uint64(uint32(v07)) + v13 ^= v02 + v13 = v13>>32 | v13<<32 + v08 += v13 + 2*uint64(uint32(v08))*uint64(uint32(v13)) + v07 ^= v08 + v07 = v07>>24 | v07<<40 + + v02 += v07 + 2*uint64(uint32(v02))*uint64(uint32(v07)) + v13 ^= v02 + v13 = v13>>16 | v13<<48 + v08 += v13 + 2*uint64(uint32(v08))*uint64(uint32(v13)) + v07 ^= v08 + v07 = v07>>63 | v07<<1 + + v03 += v04 + 2*uint64(uint32(v03))*uint64(uint32(v04)) + v14 ^= v03 + v14 = v14>>32 | v14<<32 + v09 += v14 + 2*uint64(uint32(v09))*uint64(uint32(v14)) + v04 ^= v09 + v04 = v04>>24 | v04<<40 + + v03 += v04 + 2*uint64(uint32(v03))*uint64(uint32(v04)) + v14 ^= v03 + v14 = v14>>16 | v14<<48 + v09 += v14 + 2*uint64(uint32(v09))*uint64(uint32(v14)) + v04 ^= v09 + v04 = v04>>63 | v04<<1 + + *t00, *t01, *t02, *t03 = v00, v01, v02, v03 + *t04, *t05, *t06, *t07 = v04, v05, v06, v07 + *t08, *t09, *t10, *t11 = v08, v09, v10, v11 + *t12, *t13, *t14, *t15 = v12, v13, v14, v15 +} diff --git a/vendor/golang.org/x/crypto/argon2/blamka_ref.go b/vendor/golang.org/x/crypto/argon2/blamka_ref.go new file mode 100644 index 000000000000..167c59d2d5ab --- /dev/null +++ b/vendor/golang.org/x/crypto/argon2/blamka_ref.go @@ -0,0 +1,16 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !amd64 || purego || !gc +// +build !amd64 purego !gc + +package argon2 + +func processBlock(out, in1, in2 *block) { + processBlockGeneric(out, in1, in2, false) +} + +func processBlockXOR(out, in1, in2 *block) { + processBlockGeneric(out, in1, in2, true) +} diff --git a/vendor/golang.org/x/crypto/blake2b/blake2b.go b/vendor/golang.org/x/crypto/blake2b/blake2b.go new file mode 100644 index 000000000000..d2e98d4295bd --- /dev/null +++ b/vendor/golang.org/x/crypto/blake2b/blake2b.go @@ -0,0 +1,291 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package blake2b implements the BLAKE2b hash algorithm defined by RFC 7693 +// and the extendable output function (XOF) BLAKE2Xb. +// +// BLAKE2b is optimized for 64-bit platforms—including NEON-enabled ARMs—and +// produces digests of any size between 1 and 64 bytes. +// For a detailed specification of BLAKE2b see https://blake2.net/blake2.pdf +// and for BLAKE2Xb see https://blake2.net/blake2x.pdf +// +// If you aren't sure which function you need, use BLAKE2b (Sum512 or New512). +// If you need a secret-key MAC (message authentication code), use the New512 +// function with a non-nil key. +// +// BLAKE2X is a construction to compute hash values larger than 64 bytes. It +// can produce hash values between 0 and 4 GiB. +package blake2b + +import ( + "encoding/binary" + "errors" + "hash" +) + +const ( + // The blocksize of BLAKE2b in bytes. + BlockSize = 128 + // The hash size of BLAKE2b-512 in bytes. + Size = 64 + // The hash size of BLAKE2b-384 in bytes. + Size384 = 48 + // The hash size of BLAKE2b-256 in bytes. + Size256 = 32 +) + +var ( + useAVX2 bool + useAVX bool + useSSE4 bool +) + +var ( + errKeySize = errors.New("blake2b: invalid key size") + errHashSize = errors.New("blake2b: invalid hash size") +) + +var iv = [8]uint64{ + 0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1, + 0x510e527fade682d1, 0x9b05688c2b3e6c1f, 0x1f83d9abfb41bd6b, 0x5be0cd19137e2179, +} + +// Sum512 returns the BLAKE2b-512 checksum of the data. +func Sum512(data []byte) [Size]byte { + var sum [Size]byte + checkSum(&sum, Size, data) + return sum +} + +// Sum384 returns the BLAKE2b-384 checksum of the data. +func Sum384(data []byte) [Size384]byte { + var sum [Size]byte + var sum384 [Size384]byte + checkSum(&sum, Size384, data) + copy(sum384[:], sum[:Size384]) + return sum384 +} + +// Sum256 returns the BLAKE2b-256 checksum of the data. +func Sum256(data []byte) [Size256]byte { + var sum [Size]byte + var sum256 [Size256]byte + checkSum(&sum, Size256, data) + copy(sum256[:], sum[:Size256]) + return sum256 +} + +// New512 returns a new hash.Hash computing the BLAKE2b-512 checksum. A non-nil +// key turns the hash into a MAC. The key must be between zero and 64 bytes long. +func New512(key []byte) (hash.Hash, error) { return newDigest(Size, key) } + +// New384 returns a new hash.Hash computing the BLAKE2b-384 checksum. A non-nil +// key turns the hash into a MAC. The key must be between zero and 64 bytes long. +func New384(key []byte) (hash.Hash, error) { return newDigest(Size384, key) } + +// New256 returns a new hash.Hash computing the BLAKE2b-256 checksum. A non-nil +// key turns the hash into a MAC. The key must be between zero and 64 bytes long. +func New256(key []byte) (hash.Hash, error) { return newDigest(Size256, key) } + +// New returns a new hash.Hash computing the BLAKE2b checksum with a custom length. +// A non-nil key turns the hash into a MAC. The key must be between zero and 64 bytes long. +// The hash size can be a value between 1 and 64 but it is highly recommended to use +// values equal or greater than: +// - 32 if BLAKE2b is used as a hash function (The key is zero bytes long). +// - 16 if BLAKE2b is used as a MAC function (The key is at least 16 bytes long). +// When the key is nil, the returned hash.Hash implements BinaryMarshaler +// and BinaryUnmarshaler for state (de)serialization as documented by hash.Hash. +func New(size int, key []byte) (hash.Hash, error) { return newDigest(size, key) } + +func newDigest(hashSize int, key []byte) (*digest, error) { + if hashSize < 1 || hashSize > Size { + return nil, errHashSize + } + if len(key) > Size { + return nil, errKeySize + } + d := &digest{ + size: hashSize, + keyLen: len(key), + } + copy(d.key[:], key) + d.Reset() + return d, nil +} + +func checkSum(sum *[Size]byte, hashSize int, data []byte) { + h := iv + h[0] ^= uint64(hashSize) | (1 << 16) | (1 << 24) + var c [2]uint64 + + if length := len(data); length > BlockSize { + n := length &^ (BlockSize - 1) + if length == n { + n -= BlockSize + } + hashBlocks(&h, &c, 0, data[:n]) + data = data[n:] + } + + var block [BlockSize]byte + offset := copy(block[:], data) + remaining := uint64(BlockSize - offset) + if c[0] < remaining { + c[1]-- + } + c[0] -= remaining + + hashBlocks(&h, &c, 0xFFFFFFFFFFFFFFFF, block[:]) + + for i, v := range h[:(hashSize+7)/8] { + binary.LittleEndian.PutUint64(sum[8*i:], v) + } +} + +type digest struct { + h [8]uint64 + c [2]uint64 + size int + block [BlockSize]byte + offset int + + key [BlockSize]byte + keyLen int +} + +const ( + magic = "b2b" + marshaledSize = len(magic) + 8*8 + 2*8 + 1 + BlockSize + 1 +) + +func (d *digest) MarshalBinary() ([]byte, error) { + if d.keyLen != 0 { + return nil, errors.New("crypto/blake2b: cannot marshal MACs") + } + b := make([]byte, 0, marshaledSize) + b = append(b, magic...) + for i := 0; i < 8; i++ { + b = appendUint64(b, d.h[i]) + } + b = appendUint64(b, d.c[0]) + b = appendUint64(b, d.c[1]) + // Maximum value for size is 64 + b = append(b, byte(d.size)) + b = append(b, d.block[:]...) + b = append(b, byte(d.offset)) + return b, nil +} + +func (d *digest) UnmarshalBinary(b []byte) error { + if len(b) < len(magic) || string(b[:len(magic)]) != magic { + return errors.New("crypto/blake2b: invalid hash state identifier") + } + if len(b) != marshaledSize { + return errors.New("crypto/blake2b: invalid hash state size") + } + b = b[len(magic):] + for i := 0; i < 8; i++ { + b, d.h[i] = consumeUint64(b) + } + b, d.c[0] = consumeUint64(b) + b, d.c[1] = consumeUint64(b) + d.size = int(b[0]) + b = b[1:] + copy(d.block[:], b[:BlockSize]) + b = b[BlockSize:] + d.offset = int(b[0]) + return nil +} + +func (d *digest) BlockSize() int { return BlockSize } + +func (d *digest) Size() int { return d.size } + +func (d *digest) Reset() { + d.h = iv + d.h[0] ^= uint64(d.size) | (uint64(d.keyLen) << 8) | (1 << 16) | (1 << 24) + d.offset, d.c[0], d.c[1] = 0, 0, 0 + if d.keyLen > 0 { + d.block = d.key + d.offset = BlockSize + } +} + +func (d *digest) Write(p []byte) (n int, err error) { + n = len(p) + + if d.offset > 0 { + remaining := BlockSize - d.offset + if n <= remaining { + d.offset += copy(d.block[d.offset:], p) + return + } + copy(d.block[d.offset:], p[:remaining]) + hashBlocks(&d.h, &d.c, 0, d.block[:]) + d.offset = 0 + p = p[remaining:] + } + + if length := len(p); length > BlockSize { + nn := length &^ (BlockSize - 1) + if length == nn { + nn -= BlockSize + } + hashBlocks(&d.h, &d.c, 0, p[:nn]) + p = p[nn:] + } + + if len(p) > 0 { + d.offset += copy(d.block[:], p) + } + + return +} + +func (d *digest) Sum(sum []byte) []byte { + var hash [Size]byte + d.finalize(&hash) + return append(sum, hash[:d.size]...) +} + +func (d *digest) finalize(hash *[Size]byte) { + var block [BlockSize]byte + copy(block[:], d.block[:d.offset]) + remaining := uint64(BlockSize - d.offset) + + c := d.c + if c[0] < remaining { + c[1]-- + } + c[0] -= remaining + + h := d.h + hashBlocks(&h, &c, 0xFFFFFFFFFFFFFFFF, block[:]) + + for i, v := range h { + binary.LittleEndian.PutUint64(hash[8*i:], v) + } +} + +func appendUint64(b []byte, x uint64) []byte { + var a [8]byte + binary.BigEndian.PutUint64(a[:], x) + return append(b, a[:]...) +} + +func appendUint32(b []byte, x uint32) []byte { + var a [4]byte + binary.BigEndian.PutUint32(a[:], x) + return append(b, a[:]...) +} + +func consumeUint64(b []byte) ([]byte, uint64) { + x := binary.BigEndian.Uint64(b) + return b[8:], x +} + +func consumeUint32(b []byte) ([]byte, uint32) { + x := binary.BigEndian.Uint32(b) + return b[4:], x +} diff --git a/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go b/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go new file mode 100644 index 000000000000..56bfaaa17da6 --- /dev/null +++ b/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go @@ -0,0 +1,38 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.7 && amd64 && gc && !purego +// +build go1.7,amd64,gc,!purego + +package blake2b + +import "golang.org/x/sys/cpu" + +func init() { + useAVX2 = cpu.X86.HasAVX2 + useAVX = cpu.X86.HasAVX + useSSE4 = cpu.X86.HasSSE41 +} + +//go:noescape +func hashBlocksAVX2(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) + +//go:noescape +func hashBlocksAVX(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) + +//go:noescape +func hashBlocksSSE4(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) + +func hashBlocks(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) { + switch { + case useAVX2: + hashBlocksAVX2(h, c, flag, blocks) + case useAVX: + hashBlocksAVX(h, c, flag, blocks) + case useSSE4: + hashBlocksSSE4(h, c, flag, blocks) + default: + hashBlocksGeneric(h, c, flag, blocks) + } +} diff --git a/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s b/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s new file mode 100644 index 000000000000..4b9daa18d9d9 --- /dev/null +++ b/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s @@ -0,0 +1,745 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.7 && amd64 && gc && !purego +// +build go1.7,amd64,gc,!purego + +#include "textflag.h" + +DATA ·AVX2_iv0<>+0x00(SB)/8, $0x6a09e667f3bcc908 +DATA ·AVX2_iv0<>+0x08(SB)/8, $0xbb67ae8584caa73b +DATA ·AVX2_iv0<>+0x10(SB)/8, $0x3c6ef372fe94f82b +DATA ·AVX2_iv0<>+0x18(SB)/8, $0xa54ff53a5f1d36f1 +GLOBL ·AVX2_iv0<>(SB), (NOPTR+RODATA), $32 + +DATA ·AVX2_iv1<>+0x00(SB)/8, $0x510e527fade682d1 +DATA ·AVX2_iv1<>+0x08(SB)/8, $0x9b05688c2b3e6c1f +DATA ·AVX2_iv1<>+0x10(SB)/8, $0x1f83d9abfb41bd6b +DATA ·AVX2_iv1<>+0x18(SB)/8, $0x5be0cd19137e2179 +GLOBL ·AVX2_iv1<>(SB), (NOPTR+RODATA), $32 + +DATA ·AVX2_c40<>+0x00(SB)/8, $0x0201000706050403 +DATA ·AVX2_c40<>+0x08(SB)/8, $0x0a09080f0e0d0c0b +DATA ·AVX2_c40<>+0x10(SB)/8, $0x0201000706050403 +DATA ·AVX2_c40<>+0x18(SB)/8, $0x0a09080f0e0d0c0b +GLOBL ·AVX2_c40<>(SB), (NOPTR+RODATA), $32 + +DATA ·AVX2_c48<>+0x00(SB)/8, $0x0100070605040302 +DATA ·AVX2_c48<>+0x08(SB)/8, $0x09080f0e0d0c0b0a +DATA ·AVX2_c48<>+0x10(SB)/8, $0x0100070605040302 +DATA ·AVX2_c48<>+0x18(SB)/8, $0x09080f0e0d0c0b0a +GLOBL ·AVX2_c48<>(SB), (NOPTR+RODATA), $32 + +DATA ·AVX_iv0<>+0x00(SB)/8, $0x6a09e667f3bcc908 +DATA ·AVX_iv0<>+0x08(SB)/8, $0xbb67ae8584caa73b +GLOBL ·AVX_iv0<>(SB), (NOPTR+RODATA), $16 + +DATA ·AVX_iv1<>+0x00(SB)/8, $0x3c6ef372fe94f82b +DATA ·AVX_iv1<>+0x08(SB)/8, $0xa54ff53a5f1d36f1 +GLOBL ·AVX_iv1<>(SB), (NOPTR+RODATA), $16 + +DATA ·AVX_iv2<>+0x00(SB)/8, $0x510e527fade682d1 +DATA ·AVX_iv2<>+0x08(SB)/8, $0x9b05688c2b3e6c1f +GLOBL ·AVX_iv2<>(SB), (NOPTR+RODATA), $16 + +DATA ·AVX_iv3<>+0x00(SB)/8, $0x1f83d9abfb41bd6b +DATA ·AVX_iv3<>+0x08(SB)/8, $0x5be0cd19137e2179 +GLOBL ·AVX_iv3<>(SB), (NOPTR+RODATA), $16 + +DATA ·AVX_c40<>+0x00(SB)/8, $0x0201000706050403 +DATA ·AVX_c40<>+0x08(SB)/8, $0x0a09080f0e0d0c0b +GLOBL ·AVX_c40<>(SB), (NOPTR+RODATA), $16 + +DATA ·AVX_c48<>+0x00(SB)/8, $0x0100070605040302 +DATA ·AVX_c48<>+0x08(SB)/8, $0x09080f0e0d0c0b0a +GLOBL ·AVX_c48<>(SB), (NOPTR+RODATA), $16 + +#define VPERMQ_0x39_Y1_Y1 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xc9; BYTE $0x39 +#define VPERMQ_0x93_Y1_Y1 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xc9; BYTE $0x93 +#define VPERMQ_0x4E_Y2_Y2 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xd2; BYTE $0x4e +#define VPERMQ_0x93_Y3_Y3 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xdb; BYTE $0x93 +#define VPERMQ_0x39_Y3_Y3 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xdb; BYTE $0x39 + +#define ROUND_AVX2(m0, m1, m2, m3, t, c40, c48) \ + VPADDQ m0, Y0, Y0; \ + VPADDQ Y1, Y0, Y0; \ + VPXOR Y0, Y3, Y3; \ + VPSHUFD $-79, Y3, Y3; \ + VPADDQ Y3, Y2, Y2; \ + VPXOR Y2, Y1, Y1; \ + VPSHUFB c40, Y1, Y1; \ + VPADDQ m1, Y0, Y0; \ + VPADDQ Y1, Y0, Y0; \ + VPXOR Y0, Y3, Y3; \ + VPSHUFB c48, Y3, Y3; \ + VPADDQ Y3, Y2, Y2; \ + VPXOR Y2, Y1, Y1; \ + VPADDQ Y1, Y1, t; \ + VPSRLQ $63, Y1, Y1; \ + VPXOR t, Y1, Y1; \ + VPERMQ_0x39_Y1_Y1; \ + VPERMQ_0x4E_Y2_Y2; \ + VPERMQ_0x93_Y3_Y3; \ + VPADDQ m2, Y0, Y0; \ + VPADDQ Y1, Y0, Y0; \ + VPXOR Y0, Y3, Y3; \ + VPSHUFD $-79, Y3, Y3; \ + VPADDQ Y3, Y2, Y2; \ + VPXOR Y2, Y1, Y1; \ + VPSHUFB c40, Y1, Y1; \ + VPADDQ m3, Y0, Y0; \ + VPADDQ Y1, Y0, Y0; \ + VPXOR Y0, Y3, Y3; \ + VPSHUFB c48, Y3, Y3; \ + VPADDQ Y3, Y2, Y2; \ + VPXOR Y2, Y1, Y1; \ + VPADDQ Y1, Y1, t; \ + VPSRLQ $63, Y1, Y1; \ + VPXOR t, Y1, Y1; \ + VPERMQ_0x39_Y3_Y3; \ + VPERMQ_0x4E_Y2_Y2; \ + VPERMQ_0x93_Y1_Y1 + +#define VMOVQ_SI_X11_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x1E +#define VMOVQ_SI_X12_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x26 +#define VMOVQ_SI_X13_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x2E +#define VMOVQ_SI_X14_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x36 +#define VMOVQ_SI_X15_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x3E + +#define VMOVQ_SI_X11(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x5E; BYTE $n +#define VMOVQ_SI_X12(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x66; BYTE $n +#define VMOVQ_SI_X13(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x6E; BYTE $n +#define VMOVQ_SI_X14(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x76; BYTE $n +#define VMOVQ_SI_X15(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x7E; BYTE $n + +#define VPINSRQ_1_SI_X11_0 BYTE $0xC4; BYTE $0x63; BYTE $0xA1; BYTE $0x22; BYTE $0x1E; BYTE $0x01 +#define VPINSRQ_1_SI_X12_0 BYTE $0xC4; BYTE $0x63; BYTE $0x99; BYTE $0x22; BYTE $0x26; BYTE $0x01 +#define VPINSRQ_1_SI_X13_0 BYTE $0xC4; BYTE $0x63; BYTE $0x91; BYTE $0x22; BYTE $0x2E; BYTE $0x01 +#define VPINSRQ_1_SI_X14_0 BYTE $0xC4; BYTE $0x63; BYTE $0x89; BYTE $0x22; BYTE $0x36; BYTE $0x01 +#define VPINSRQ_1_SI_X15_0 BYTE $0xC4; BYTE $0x63; BYTE $0x81; BYTE $0x22; BYTE $0x3E; BYTE $0x01 + +#define VPINSRQ_1_SI_X11(n) BYTE $0xC4; BYTE $0x63; BYTE $0xA1; BYTE $0x22; BYTE $0x5E; BYTE $n; BYTE $0x01 +#define VPINSRQ_1_SI_X12(n) BYTE $0xC4; BYTE $0x63; BYTE $0x99; BYTE $0x22; BYTE $0x66; BYTE $n; BYTE $0x01 +#define VPINSRQ_1_SI_X13(n) BYTE $0xC4; BYTE $0x63; BYTE $0x91; BYTE $0x22; BYTE $0x6E; BYTE $n; BYTE $0x01 +#define VPINSRQ_1_SI_X14(n) BYTE $0xC4; BYTE $0x63; BYTE $0x89; BYTE $0x22; BYTE $0x76; BYTE $n; BYTE $0x01 +#define VPINSRQ_1_SI_X15(n) BYTE $0xC4; BYTE $0x63; BYTE $0x81; BYTE $0x22; BYTE $0x7E; BYTE $n; BYTE $0x01 + +#define VMOVQ_R8_X15 BYTE $0xC4; BYTE $0x41; BYTE $0xF9; BYTE $0x6E; BYTE $0xF8 +#define VPINSRQ_1_R9_X15 BYTE $0xC4; BYTE $0x43; BYTE $0x81; BYTE $0x22; BYTE $0xF9; BYTE $0x01 + +// load msg: Y12 = (i0, i1, i2, i3) +// i0, i1, i2, i3 must not be 0 +#define LOAD_MSG_AVX2_Y12(i0, i1, i2, i3) \ + VMOVQ_SI_X12(i0*8); \ + VMOVQ_SI_X11(i2*8); \ + VPINSRQ_1_SI_X12(i1*8); \ + VPINSRQ_1_SI_X11(i3*8); \ + VINSERTI128 $1, X11, Y12, Y12 + +// load msg: Y13 = (i0, i1, i2, i3) +// i0, i1, i2, i3 must not be 0 +#define LOAD_MSG_AVX2_Y13(i0, i1, i2, i3) \ + VMOVQ_SI_X13(i0*8); \ + VMOVQ_SI_X11(i2*8); \ + VPINSRQ_1_SI_X13(i1*8); \ + VPINSRQ_1_SI_X11(i3*8); \ + VINSERTI128 $1, X11, Y13, Y13 + +// load msg: Y14 = (i0, i1, i2, i3) +// i0, i1, i2, i3 must not be 0 +#define LOAD_MSG_AVX2_Y14(i0, i1, i2, i3) \ + VMOVQ_SI_X14(i0*8); \ + VMOVQ_SI_X11(i2*8); \ + VPINSRQ_1_SI_X14(i1*8); \ + VPINSRQ_1_SI_X11(i3*8); \ + VINSERTI128 $1, X11, Y14, Y14 + +// load msg: Y15 = (i0, i1, i2, i3) +// i0, i1, i2, i3 must not be 0 +#define LOAD_MSG_AVX2_Y15(i0, i1, i2, i3) \ + VMOVQ_SI_X15(i0*8); \ + VMOVQ_SI_X11(i2*8); \ + VPINSRQ_1_SI_X15(i1*8); \ + VPINSRQ_1_SI_X11(i3*8); \ + VINSERTI128 $1, X11, Y15, Y15 + +#define LOAD_MSG_AVX2_0_2_4_6_1_3_5_7_8_10_12_14_9_11_13_15() \ + VMOVQ_SI_X12_0; \ + VMOVQ_SI_X11(4*8); \ + VPINSRQ_1_SI_X12(2*8); \ + VPINSRQ_1_SI_X11(6*8); \ + VINSERTI128 $1, X11, Y12, Y12; \ + LOAD_MSG_AVX2_Y13(1, 3, 5, 7); \ + LOAD_MSG_AVX2_Y14(8, 10, 12, 14); \ + LOAD_MSG_AVX2_Y15(9, 11, 13, 15) + +#define LOAD_MSG_AVX2_14_4_9_13_10_8_15_6_1_0_11_5_12_2_7_3() \ + LOAD_MSG_AVX2_Y12(14, 4, 9, 13); \ + LOAD_MSG_AVX2_Y13(10, 8, 15, 6); \ + VMOVQ_SI_X11(11*8); \ + VPSHUFD $0x4E, 0*8(SI), X14; \ + VPINSRQ_1_SI_X11(5*8); \ + VINSERTI128 $1, X11, Y14, Y14; \ + LOAD_MSG_AVX2_Y15(12, 2, 7, 3) + +#define LOAD_MSG_AVX2_11_12_5_15_8_0_2_13_10_3_7_9_14_6_1_4() \ + VMOVQ_SI_X11(5*8); \ + VMOVDQU 11*8(SI), X12; \ + VPINSRQ_1_SI_X11(15*8); \ + VINSERTI128 $1, X11, Y12, Y12; \ + VMOVQ_SI_X13(8*8); \ + VMOVQ_SI_X11(2*8); \ + VPINSRQ_1_SI_X13_0; \ + VPINSRQ_1_SI_X11(13*8); \ + VINSERTI128 $1, X11, Y13, Y13; \ + LOAD_MSG_AVX2_Y14(10, 3, 7, 9); \ + LOAD_MSG_AVX2_Y15(14, 6, 1, 4) + +#define LOAD_MSG_AVX2_7_3_13_11_9_1_12_14_2_5_4_15_6_10_0_8() \ + LOAD_MSG_AVX2_Y12(7, 3, 13, 11); \ + LOAD_MSG_AVX2_Y13(9, 1, 12, 14); \ + LOAD_MSG_AVX2_Y14(2, 5, 4, 15); \ + VMOVQ_SI_X15(6*8); \ + VMOVQ_SI_X11_0; \ + VPINSRQ_1_SI_X15(10*8); \ + VPINSRQ_1_SI_X11(8*8); \ + VINSERTI128 $1, X11, Y15, Y15 + +#define LOAD_MSG_AVX2_9_5_2_10_0_7_4_15_14_11_6_3_1_12_8_13() \ + LOAD_MSG_AVX2_Y12(9, 5, 2, 10); \ + VMOVQ_SI_X13_0; \ + VMOVQ_SI_X11(4*8); \ + VPINSRQ_1_SI_X13(7*8); \ + VPINSRQ_1_SI_X11(15*8); \ + VINSERTI128 $1, X11, Y13, Y13; \ + LOAD_MSG_AVX2_Y14(14, 11, 6, 3); \ + LOAD_MSG_AVX2_Y15(1, 12, 8, 13) + +#define LOAD_MSG_AVX2_2_6_0_8_12_10_11_3_4_7_15_1_13_5_14_9() \ + VMOVQ_SI_X12(2*8); \ + VMOVQ_SI_X11_0; \ + VPINSRQ_1_SI_X12(6*8); \ + VPINSRQ_1_SI_X11(8*8); \ + VINSERTI128 $1, X11, Y12, Y12; \ + LOAD_MSG_AVX2_Y13(12, 10, 11, 3); \ + LOAD_MSG_AVX2_Y14(4, 7, 15, 1); \ + LOAD_MSG_AVX2_Y15(13, 5, 14, 9) + +#define LOAD_MSG_AVX2_12_1_14_4_5_15_13_10_0_6_9_8_7_3_2_11() \ + LOAD_MSG_AVX2_Y12(12, 1, 14, 4); \ + LOAD_MSG_AVX2_Y13(5, 15, 13, 10); \ + VMOVQ_SI_X14_0; \ + VPSHUFD $0x4E, 8*8(SI), X11; \ + VPINSRQ_1_SI_X14(6*8); \ + VINSERTI128 $1, X11, Y14, Y14; \ + LOAD_MSG_AVX2_Y15(7, 3, 2, 11) + +#define LOAD_MSG_AVX2_13_7_12_3_11_14_1_9_5_15_8_2_0_4_6_10() \ + LOAD_MSG_AVX2_Y12(13, 7, 12, 3); \ + LOAD_MSG_AVX2_Y13(11, 14, 1, 9); \ + LOAD_MSG_AVX2_Y14(5, 15, 8, 2); \ + VMOVQ_SI_X15_0; \ + VMOVQ_SI_X11(6*8); \ + VPINSRQ_1_SI_X15(4*8); \ + VPINSRQ_1_SI_X11(10*8); \ + VINSERTI128 $1, X11, Y15, Y15 + +#define LOAD_MSG_AVX2_6_14_11_0_15_9_3_8_12_13_1_10_2_7_4_5() \ + VMOVQ_SI_X12(6*8); \ + VMOVQ_SI_X11(11*8); \ + VPINSRQ_1_SI_X12(14*8); \ + VPINSRQ_1_SI_X11_0; \ + VINSERTI128 $1, X11, Y12, Y12; \ + LOAD_MSG_AVX2_Y13(15, 9, 3, 8); \ + VMOVQ_SI_X11(1*8); \ + VMOVDQU 12*8(SI), X14; \ + VPINSRQ_1_SI_X11(10*8); \ + VINSERTI128 $1, X11, Y14, Y14; \ + VMOVQ_SI_X15(2*8); \ + VMOVDQU 4*8(SI), X11; \ + VPINSRQ_1_SI_X15(7*8); \ + VINSERTI128 $1, X11, Y15, Y15 + +#define LOAD_MSG_AVX2_10_8_7_1_2_4_6_5_15_9_3_13_11_14_12_0() \ + LOAD_MSG_AVX2_Y12(10, 8, 7, 1); \ + VMOVQ_SI_X13(2*8); \ + VPSHUFD $0x4E, 5*8(SI), X11; \ + VPINSRQ_1_SI_X13(4*8); \ + VINSERTI128 $1, X11, Y13, Y13; \ + LOAD_MSG_AVX2_Y14(15, 9, 3, 13); \ + VMOVQ_SI_X15(11*8); \ + VMOVQ_SI_X11(12*8); \ + VPINSRQ_1_SI_X15(14*8); \ + VPINSRQ_1_SI_X11_0; \ + VINSERTI128 $1, X11, Y15, Y15 + +// func hashBlocksAVX2(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) +TEXT ·hashBlocksAVX2(SB), 4, $320-48 // frame size = 288 + 32 byte alignment + MOVQ h+0(FP), AX + MOVQ c+8(FP), BX + MOVQ flag+16(FP), CX + MOVQ blocks_base+24(FP), SI + MOVQ blocks_len+32(FP), DI + + MOVQ SP, DX + ADDQ $31, DX + ANDQ $~31, DX + + MOVQ CX, 16(DX) + XORQ CX, CX + MOVQ CX, 24(DX) + + VMOVDQU ·AVX2_c40<>(SB), Y4 + VMOVDQU ·AVX2_c48<>(SB), Y5 + + VMOVDQU 0(AX), Y8 + VMOVDQU 32(AX), Y9 + VMOVDQU ·AVX2_iv0<>(SB), Y6 + VMOVDQU ·AVX2_iv1<>(SB), Y7 + + MOVQ 0(BX), R8 + MOVQ 8(BX), R9 + MOVQ R9, 8(DX) + +loop: + ADDQ $128, R8 + MOVQ R8, 0(DX) + CMPQ R8, $128 + JGE noinc + INCQ R9 + MOVQ R9, 8(DX) + +noinc: + VMOVDQA Y8, Y0 + VMOVDQA Y9, Y1 + VMOVDQA Y6, Y2 + VPXOR 0(DX), Y7, Y3 + + LOAD_MSG_AVX2_0_2_4_6_1_3_5_7_8_10_12_14_9_11_13_15() + VMOVDQA Y12, 32(DX) + VMOVDQA Y13, 64(DX) + VMOVDQA Y14, 96(DX) + VMOVDQA Y15, 128(DX) + ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) + LOAD_MSG_AVX2_14_4_9_13_10_8_15_6_1_0_11_5_12_2_7_3() + VMOVDQA Y12, 160(DX) + VMOVDQA Y13, 192(DX) + VMOVDQA Y14, 224(DX) + VMOVDQA Y15, 256(DX) + + ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) + LOAD_MSG_AVX2_11_12_5_15_8_0_2_13_10_3_7_9_14_6_1_4() + ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) + LOAD_MSG_AVX2_7_3_13_11_9_1_12_14_2_5_4_15_6_10_0_8() + ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) + LOAD_MSG_AVX2_9_5_2_10_0_7_4_15_14_11_6_3_1_12_8_13() + ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) + LOAD_MSG_AVX2_2_6_0_8_12_10_11_3_4_7_15_1_13_5_14_9() + ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) + LOAD_MSG_AVX2_12_1_14_4_5_15_13_10_0_6_9_8_7_3_2_11() + ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) + LOAD_MSG_AVX2_13_7_12_3_11_14_1_9_5_15_8_2_0_4_6_10() + ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) + LOAD_MSG_AVX2_6_14_11_0_15_9_3_8_12_13_1_10_2_7_4_5() + ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) + LOAD_MSG_AVX2_10_8_7_1_2_4_6_5_15_9_3_13_11_14_12_0() + ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5) + + ROUND_AVX2(32(DX), 64(DX), 96(DX), 128(DX), Y10, Y4, Y5) + ROUND_AVX2(160(DX), 192(DX), 224(DX), 256(DX), Y10, Y4, Y5) + + VPXOR Y0, Y8, Y8 + VPXOR Y1, Y9, Y9 + VPXOR Y2, Y8, Y8 + VPXOR Y3, Y9, Y9 + + LEAQ 128(SI), SI + SUBQ $128, DI + JNE loop + + MOVQ R8, 0(BX) + MOVQ R9, 8(BX) + + VMOVDQU Y8, 0(AX) + VMOVDQU Y9, 32(AX) + VZEROUPPER + + RET + +#define VPUNPCKLQDQ_X2_X2_X15 BYTE $0xC5; BYTE $0x69; BYTE $0x6C; BYTE $0xFA +#define VPUNPCKLQDQ_X3_X3_X15 BYTE $0xC5; BYTE $0x61; BYTE $0x6C; BYTE $0xFB +#define VPUNPCKLQDQ_X7_X7_X15 BYTE $0xC5; BYTE $0x41; BYTE $0x6C; BYTE $0xFF +#define VPUNPCKLQDQ_X13_X13_X15 BYTE $0xC4; BYTE $0x41; BYTE $0x11; BYTE $0x6C; BYTE $0xFD +#define VPUNPCKLQDQ_X14_X14_X15 BYTE $0xC4; BYTE $0x41; BYTE $0x09; BYTE $0x6C; BYTE $0xFE + +#define VPUNPCKHQDQ_X15_X2_X2 BYTE $0xC4; BYTE $0xC1; BYTE $0x69; BYTE $0x6D; BYTE $0xD7 +#define VPUNPCKHQDQ_X15_X3_X3 BYTE $0xC4; BYTE $0xC1; BYTE $0x61; BYTE $0x6D; BYTE $0xDF +#define VPUNPCKHQDQ_X15_X6_X6 BYTE $0xC4; BYTE $0xC1; BYTE $0x49; BYTE $0x6D; BYTE $0xF7 +#define VPUNPCKHQDQ_X15_X7_X7 BYTE $0xC4; BYTE $0xC1; BYTE $0x41; BYTE $0x6D; BYTE $0xFF +#define VPUNPCKHQDQ_X15_X3_X2 BYTE $0xC4; BYTE $0xC1; BYTE $0x61; BYTE $0x6D; BYTE $0xD7 +#define VPUNPCKHQDQ_X15_X7_X6 BYTE $0xC4; BYTE $0xC1; BYTE $0x41; BYTE $0x6D; BYTE $0xF7 +#define VPUNPCKHQDQ_X15_X13_X3 BYTE $0xC4; BYTE $0xC1; BYTE $0x11; BYTE $0x6D; BYTE $0xDF +#define VPUNPCKHQDQ_X15_X13_X7 BYTE $0xC4; BYTE $0xC1; BYTE $0x11; BYTE $0x6D; BYTE $0xFF + +#define SHUFFLE_AVX() \ + VMOVDQA X6, X13; \ + VMOVDQA X2, X14; \ + VMOVDQA X4, X6; \ + VPUNPCKLQDQ_X13_X13_X15; \ + VMOVDQA X5, X4; \ + VMOVDQA X6, X5; \ + VPUNPCKHQDQ_X15_X7_X6; \ + VPUNPCKLQDQ_X7_X7_X15; \ + VPUNPCKHQDQ_X15_X13_X7; \ + VPUNPCKLQDQ_X3_X3_X15; \ + VPUNPCKHQDQ_X15_X2_X2; \ + VPUNPCKLQDQ_X14_X14_X15; \ + VPUNPCKHQDQ_X15_X3_X3; \ + +#define SHUFFLE_AVX_INV() \ + VMOVDQA X2, X13; \ + VMOVDQA X4, X14; \ + VPUNPCKLQDQ_X2_X2_X15; \ + VMOVDQA X5, X4; \ + VPUNPCKHQDQ_X15_X3_X2; \ + VMOVDQA X14, X5; \ + VPUNPCKLQDQ_X3_X3_X15; \ + VMOVDQA X6, X14; \ + VPUNPCKHQDQ_X15_X13_X3; \ + VPUNPCKLQDQ_X7_X7_X15; \ + VPUNPCKHQDQ_X15_X6_X6; \ + VPUNPCKLQDQ_X14_X14_X15; \ + VPUNPCKHQDQ_X15_X7_X7; \ + +#define HALF_ROUND_AVX(v0, v1, v2, v3, v4, v5, v6, v7, m0, m1, m2, m3, t0, c40, c48) \ + VPADDQ m0, v0, v0; \ + VPADDQ v2, v0, v0; \ + VPADDQ m1, v1, v1; \ + VPADDQ v3, v1, v1; \ + VPXOR v0, v6, v6; \ + VPXOR v1, v7, v7; \ + VPSHUFD $-79, v6, v6; \ + VPSHUFD $-79, v7, v7; \ + VPADDQ v6, v4, v4; \ + VPADDQ v7, v5, v5; \ + VPXOR v4, v2, v2; \ + VPXOR v5, v3, v3; \ + VPSHUFB c40, v2, v2; \ + VPSHUFB c40, v3, v3; \ + VPADDQ m2, v0, v0; \ + VPADDQ v2, v0, v0; \ + VPADDQ m3, v1, v1; \ + VPADDQ v3, v1, v1; \ + VPXOR v0, v6, v6; \ + VPXOR v1, v7, v7; \ + VPSHUFB c48, v6, v6; \ + VPSHUFB c48, v7, v7; \ + VPADDQ v6, v4, v4; \ + VPADDQ v7, v5, v5; \ + VPXOR v4, v2, v2; \ + VPXOR v5, v3, v3; \ + VPADDQ v2, v2, t0; \ + VPSRLQ $63, v2, v2; \ + VPXOR t0, v2, v2; \ + VPADDQ v3, v3, t0; \ + VPSRLQ $63, v3, v3; \ + VPXOR t0, v3, v3 + +// load msg: X12 = (i0, i1), X13 = (i2, i3), X14 = (i4, i5), X15 = (i6, i7) +// i0, i1, i2, i3, i4, i5, i6, i7 must not be 0 +#define LOAD_MSG_AVX(i0, i1, i2, i3, i4, i5, i6, i7) \ + VMOVQ_SI_X12(i0*8); \ + VMOVQ_SI_X13(i2*8); \ + VMOVQ_SI_X14(i4*8); \ + VMOVQ_SI_X15(i6*8); \ + VPINSRQ_1_SI_X12(i1*8); \ + VPINSRQ_1_SI_X13(i3*8); \ + VPINSRQ_1_SI_X14(i5*8); \ + VPINSRQ_1_SI_X15(i7*8) + +// load msg: X12 = (0, 2), X13 = (4, 6), X14 = (1, 3), X15 = (5, 7) +#define LOAD_MSG_AVX_0_2_4_6_1_3_5_7() \ + VMOVQ_SI_X12_0; \ + VMOVQ_SI_X13(4*8); \ + VMOVQ_SI_X14(1*8); \ + VMOVQ_SI_X15(5*8); \ + VPINSRQ_1_SI_X12(2*8); \ + VPINSRQ_1_SI_X13(6*8); \ + VPINSRQ_1_SI_X14(3*8); \ + VPINSRQ_1_SI_X15(7*8) + +// load msg: X12 = (1, 0), X13 = (11, 5), X14 = (12, 2), X15 = (7, 3) +#define LOAD_MSG_AVX_1_0_11_5_12_2_7_3() \ + VPSHUFD $0x4E, 0*8(SI), X12; \ + VMOVQ_SI_X13(11*8); \ + VMOVQ_SI_X14(12*8); \ + VMOVQ_SI_X15(7*8); \ + VPINSRQ_1_SI_X13(5*8); \ + VPINSRQ_1_SI_X14(2*8); \ + VPINSRQ_1_SI_X15(3*8) + +// load msg: X12 = (11, 12), X13 = (5, 15), X14 = (8, 0), X15 = (2, 13) +#define LOAD_MSG_AVX_11_12_5_15_8_0_2_13() \ + VMOVDQU 11*8(SI), X12; \ + VMOVQ_SI_X13(5*8); \ + VMOVQ_SI_X14(8*8); \ + VMOVQ_SI_X15(2*8); \ + VPINSRQ_1_SI_X13(15*8); \ + VPINSRQ_1_SI_X14_0; \ + VPINSRQ_1_SI_X15(13*8) + +// load msg: X12 = (2, 5), X13 = (4, 15), X14 = (6, 10), X15 = (0, 8) +#define LOAD_MSG_AVX_2_5_4_15_6_10_0_8() \ + VMOVQ_SI_X12(2*8); \ + VMOVQ_SI_X13(4*8); \ + VMOVQ_SI_X14(6*8); \ + VMOVQ_SI_X15_0; \ + VPINSRQ_1_SI_X12(5*8); \ + VPINSRQ_1_SI_X13(15*8); \ + VPINSRQ_1_SI_X14(10*8); \ + VPINSRQ_1_SI_X15(8*8) + +// load msg: X12 = (9, 5), X13 = (2, 10), X14 = (0, 7), X15 = (4, 15) +#define LOAD_MSG_AVX_9_5_2_10_0_7_4_15() \ + VMOVQ_SI_X12(9*8); \ + VMOVQ_SI_X13(2*8); \ + VMOVQ_SI_X14_0; \ + VMOVQ_SI_X15(4*8); \ + VPINSRQ_1_SI_X12(5*8); \ + VPINSRQ_1_SI_X13(10*8); \ + VPINSRQ_1_SI_X14(7*8); \ + VPINSRQ_1_SI_X15(15*8) + +// load msg: X12 = (2, 6), X13 = (0, 8), X14 = (12, 10), X15 = (11, 3) +#define LOAD_MSG_AVX_2_6_0_8_12_10_11_3() \ + VMOVQ_SI_X12(2*8); \ + VMOVQ_SI_X13_0; \ + VMOVQ_SI_X14(12*8); \ + VMOVQ_SI_X15(11*8); \ + VPINSRQ_1_SI_X12(6*8); \ + VPINSRQ_1_SI_X13(8*8); \ + VPINSRQ_1_SI_X14(10*8); \ + VPINSRQ_1_SI_X15(3*8) + +// load msg: X12 = (0, 6), X13 = (9, 8), X14 = (7, 3), X15 = (2, 11) +#define LOAD_MSG_AVX_0_6_9_8_7_3_2_11() \ + MOVQ 0*8(SI), X12; \ + VPSHUFD $0x4E, 8*8(SI), X13; \ + MOVQ 7*8(SI), X14; \ + MOVQ 2*8(SI), X15; \ + VPINSRQ_1_SI_X12(6*8); \ + VPINSRQ_1_SI_X14(3*8); \ + VPINSRQ_1_SI_X15(11*8) + +// load msg: X12 = (6, 14), X13 = (11, 0), X14 = (15, 9), X15 = (3, 8) +#define LOAD_MSG_AVX_6_14_11_0_15_9_3_8() \ + MOVQ 6*8(SI), X12; \ + MOVQ 11*8(SI), X13; \ + MOVQ 15*8(SI), X14; \ + MOVQ 3*8(SI), X15; \ + VPINSRQ_1_SI_X12(14*8); \ + VPINSRQ_1_SI_X13_0; \ + VPINSRQ_1_SI_X14(9*8); \ + VPINSRQ_1_SI_X15(8*8) + +// load msg: X12 = (5, 15), X13 = (8, 2), X14 = (0, 4), X15 = (6, 10) +#define LOAD_MSG_AVX_5_15_8_2_0_4_6_10() \ + MOVQ 5*8(SI), X12; \ + MOVQ 8*8(SI), X13; \ + MOVQ 0*8(SI), X14; \ + MOVQ 6*8(SI), X15; \ + VPINSRQ_1_SI_X12(15*8); \ + VPINSRQ_1_SI_X13(2*8); \ + VPINSRQ_1_SI_X14(4*8); \ + VPINSRQ_1_SI_X15(10*8) + +// load msg: X12 = (12, 13), X13 = (1, 10), X14 = (2, 7), X15 = (4, 5) +#define LOAD_MSG_AVX_12_13_1_10_2_7_4_5() \ + VMOVDQU 12*8(SI), X12; \ + MOVQ 1*8(SI), X13; \ + MOVQ 2*8(SI), X14; \ + VPINSRQ_1_SI_X13(10*8); \ + VPINSRQ_1_SI_X14(7*8); \ + VMOVDQU 4*8(SI), X15 + +// load msg: X12 = (15, 9), X13 = (3, 13), X14 = (11, 14), X15 = (12, 0) +#define LOAD_MSG_AVX_15_9_3_13_11_14_12_0() \ + MOVQ 15*8(SI), X12; \ + MOVQ 3*8(SI), X13; \ + MOVQ 11*8(SI), X14; \ + MOVQ 12*8(SI), X15; \ + VPINSRQ_1_SI_X12(9*8); \ + VPINSRQ_1_SI_X13(13*8); \ + VPINSRQ_1_SI_X14(14*8); \ + VPINSRQ_1_SI_X15_0 + +// func hashBlocksAVX(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) +TEXT ·hashBlocksAVX(SB), 4, $288-48 // frame size = 272 + 16 byte alignment + MOVQ h+0(FP), AX + MOVQ c+8(FP), BX + MOVQ flag+16(FP), CX + MOVQ blocks_base+24(FP), SI + MOVQ blocks_len+32(FP), DI + + MOVQ SP, R10 + ADDQ $15, R10 + ANDQ $~15, R10 + + VMOVDQU ·AVX_c40<>(SB), X0 + VMOVDQU ·AVX_c48<>(SB), X1 + VMOVDQA X0, X8 + VMOVDQA X1, X9 + + VMOVDQU ·AVX_iv3<>(SB), X0 + VMOVDQA X0, 0(R10) + XORQ CX, 0(R10) // 0(R10) = ·AVX_iv3 ^ (CX || 0) + + VMOVDQU 0(AX), X10 + VMOVDQU 16(AX), X11 + VMOVDQU 32(AX), X2 + VMOVDQU 48(AX), X3 + + MOVQ 0(BX), R8 + MOVQ 8(BX), R9 + +loop: + ADDQ $128, R8 + CMPQ R8, $128 + JGE noinc + INCQ R9 + +noinc: + VMOVQ_R8_X15 + VPINSRQ_1_R9_X15 + + VMOVDQA X10, X0 + VMOVDQA X11, X1 + VMOVDQU ·AVX_iv0<>(SB), X4 + VMOVDQU ·AVX_iv1<>(SB), X5 + VMOVDQU ·AVX_iv2<>(SB), X6 + + VPXOR X15, X6, X6 + VMOVDQA 0(R10), X7 + + LOAD_MSG_AVX_0_2_4_6_1_3_5_7() + VMOVDQA X12, 16(R10) + VMOVDQA X13, 32(R10) + VMOVDQA X14, 48(R10) + VMOVDQA X15, 64(R10) + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX() + LOAD_MSG_AVX(8, 10, 12, 14, 9, 11, 13, 15) + VMOVDQA X12, 80(R10) + VMOVDQA X13, 96(R10) + VMOVDQA X14, 112(R10) + VMOVDQA X15, 128(R10) + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX_INV() + + LOAD_MSG_AVX(14, 4, 9, 13, 10, 8, 15, 6) + VMOVDQA X12, 144(R10) + VMOVDQA X13, 160(R10) + VMOVDQA X14, 176(R10) + VMOVDQA X15, 192(R10) + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX() + LOAD_MSG_AVX_1_0_11_5_12_2_7_3() + VMOVDQA X12, 208(R10) + VMOVDQA X13, 224(R10) + VMOVDQA X14, 240(R10) + VMOVDQA X15, 256(R10) + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX_INV() + + LOAD_MSG_AVX_11_12_5_15_8_0_2_13() + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX() + LOAD_MSG_AVX(10, 3, 7, 9, 14, 6, 1, 4) + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX_INV() + + LOAD_MSG_AVX(7, 3, 13, 11, 9, 1, 12, 14) + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX() + LOAD_MSG_AVX_2_5_4_15_6_10_0_8() + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX_INV() + + LOAD_MSG_AVX_9_5_2_10_0_7_4_15() + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX() + LOAD_MSG_AVX(14, 11, 6, 3, 1, 12, 8, 13) + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX_INV() + + LOAD_MSG_AVX_2_6_0_8_12_10_11_3() + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX() + LOAD_MSG_AVX(4, 7, 15, 1, 13, 5, 14, 9) + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX_INV() + + LOAD_MSG_AVX(12, 1, 14, 4, 5, 15, 13, 10) + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX() + LOAD_MSG_AVX_0_6_9_8_7_3_2_11() + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX_INV() + + LOAD_MSG_AVX(13, 7, 12, 3, 11, 14, 1, 9) + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX() + LOAD_MSG_AVX_5_15_8_2_0_4_6_10() + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX_INV() + + LOAD_MSG_AVX_6_14_11_0_15_9_3_8() + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX() + LOAD_MSG_AVX_12_13_1_10_2_7_4_5() + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX_INV() + + LOAD_MSG_AVX(10, 8, 7, 1, 2, 4, 6, 5) + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX() + LOAD_MSG_AVX_15_9_3_13_11_14_12_0() + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9) + SHUFFLE_AVX_INV() + + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 16(R10), 32(R10), 48(R10), 64(R10), X15, X8, X9) + SHUFFLE_AVX() + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 80(R10), 96(R10), 112(R10), 128(R10), X15, X8, X9) + SHUFFLE_AVX_INV() + + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 144(R10), 160(R10), 176(R10), 192(R10), X15, X8, X9) + SHUFFLE_AVX() + HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 208(R10), 224(R10), 240(R10), 256(R10), X15, X8, X9) + SHUFFLE_AVX_INV() + + VMOVDQU 32(AX), X14 + VMOVDQU 48(AX), X15 + VPXOR X0, X10, X10 + VPXOR X1, X11, X11 + VPXOR X2, X14, X14 + VPXOR X3, X15, X15 + VPXOR X4, X10, X10 + VPXOR X5, X11, X11 + VPXOR X6, X14, X2 + VPXOR X7, X15, X3 + VMOVDQU X2, 32(AX) + VMOVDQU X3, 48(AX) + + LEAQ 128(SI), SI + SUBQ $128, DI + JNE loop + + VMOVDQU X10, 0(AX) + VMOVDQU X11, 16(AX) + + MOVQ R8, 0(BX) + MOVQ R9, 8(BX) + VZEROUPPER + + RET diff --git a/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.go b/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.go new file mode 100644 index 000000000000..5fa1b32841df --- /dev/null +++ b/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.go @@ -0,0 +1,25 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.7 && amd64 && gc && !purego +// +build !go1.7,amd64,gc,!purego + +package blake2b + +import "golang.org/x/sys/cpu" + +func init() { + useSSE4 = cpu.X86.HasSSE41 +} + +//go:noescape +func hashBlocksSSE4(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) + +func hashBlocks(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) { + if useSSE4 { + hashBlocksSSE4(h, c, flag, blocks) + } else { + hashBlocksGeneric(h, c, flag, blocks) + } +} diff --git a/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.s b/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.s new file mode 100644 index 000000000000..ae75eb9afcd7 --- /dev/null +++ b/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.s @@ -0,0 +1,279 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build amd64 && gc && !purego +// +build amd64,gc,!purego + +#include "textflag.h" + +DATA ·iv0<>+0x00(SB)/8, $0x6a09e667f3bcc908 +DATA ·iv0<>+0x08(SB)/8, $0xbb67ae8584caa73b +GLOBL ·iv0<>(SB), (NOPTR+RODATA), $16 + +DATA ·iv1<>+0x00(SB)/8, $0x3c6ef372fe94f82b +DATA ·iv1<>+0x08(SB)/8, $0xa54ff53a5f1d36f1 +GLOBL ·iv1<>(SB), (NOPTR+RODATA), $16 + +DATA ·iv2<>+0x00(SB)/8, $0x510e527fade682d1 +DATA ·iv2<>+0x08(SB)/8, $0x9b05688c2b3e6c1f +GLOBL ·iv2<>(SB), (NOPTR+RODATA), $16 + +DATA ·iv3<>+0x00(SB)/8, $0x1f83d9abfb41bd6b +DATA ·iv3<>+0x08(SB)/8, $0x5be0cd19137e2179 +GLOBL ·iv3<>(SB), (NOPTR+RODATA), $16 + +DATA ·c40<>+0x00(SB)/8, $0x0201000706050403 +DATA ·c40<>+0x08(SB)/8, $0x0a09080f0e0d0c0b +GLOBL ·c40<>(SB), (NOPTR+RODATA), $16 + +DATA ·c48<>+0x00(SB)/8, $0x0100070605040302 +DATA ·c48<>+0x08(SB)/8, $0x09080f0e0d0c0b0a +GLOBL ·c48<>(SB), (NOPTR+RODATA), $16 + +#define SHUFFLE(v2, v3, v4, v5, v6, v7, t1, t2) \ + MOVO v4, t1; \ + MOVO v5, v4; \ + MOVO t1, v5; \ + MOVO v6, t1; \ + PUNPCKLQDQ v6, t2; \ + PUNPCKHQDQ v7, v6; \ + PUNPCKHQDQ t2, v6; \ + PUNPCKLQDQ v7, t2; \ + MOVO t1, v7; \ + MOVO v2, t1; \ + PUNPCKHQDQ t2, v7; \ + PUNPCKLQDQ v3, t2; \ + PUNPCKHQDQ t2, v2; \ + PUNPCKLQDQ t1, t2; \ + PUNPCKHQDQ t2, v3 + +#define SHUFFLE_INV(v2, v3, v4, v5, v6, v7, t1, t2) \ + MOVO v4, t1; \ + MOVO v5, v4; \ + MOVO t1, v5; \ + MOVO v2, t1; \ + PUNPCKLQDQ v2, t2; \ + PUNPCKHQDQ v3, v2; \ + PUNPCKHQDQ t2, v2; \ + PUNPCKLQDQ v3, t2; \ + MOVO t1, v3; \ + MOVO v6, t1; \ + PUNPCKHQDQ t2, v3; \ + PUNPCKLQDQ v7, t2; \ + PUNPCKHQDQ t2, v6; \ + PUNPCKLQDQ t1, t2; \ + PUNPCKHQDQ t2, v7 + +#define HALF_ROUND(v0, v1, v2, v3, v4, v5, v6, v7, m0, m1, m2, m3, t0, c40, c48) \ + PADDQ m0, v0; \ + PADDQ m1, v1; \ + PADDQ v2, v0; \ + PADDQ v3, v1; \ + PXOR v0, v6; \ + PXOR v1, v7; \ + PSHUFD $0xB1, v6, v6; \ + PSHUFD $0xB1, v7, v7; \ + PADDQ v6, v4; \ + PADDQ v7, v5; \ + PXOR v4, v2; \ + PXOR v5, v3; \ + PSHUFB c40, v2; \ + PSHUFB c40, v3; \ + PADDQ m2, v0; \ + PADDQ m3, v1; \ + PADDQ v2, v0; \ + PADDQ v3, v1; \ + PXOR v0, v6; \ + PXOR v1, v7; \ + PSHUFB c48, v6; \ + PSHUFB c48, v7; \ + PADDQ v6, v4; \ + PADDQ v7, v5; \ + PXOR v4, v2; \ + PXOR v5, v3; \ + MOVOU v2, t0; \ + PADDQ v2, t0; \ + PSRLQ $63, v2; \ + PXOR t0, v2; \ + MOVOU v3, t0; \ + PADDQ v3, t0; \ + PSRLQ $63, v3; \ + PXOR t0, v3 + +#define LOAD_MSG(m0, m1, m2, m3, src, i0, i1, i2, i3, i4, i5, i6, i7) \ + MOVQ i0*8(src), m0; \ + PINSRQ $1, i1*8(src), m0; \ + MOVQ i2*8(src), m1; \ + PINSRQ $1, i3*8(src), m1; \ + MOVQ i4*8(src), m2; \ + PINSRQ $1, i5*8(src), m2; \ + MOVQ i6*8(src), m3; \ + PINSRQ $1, i7*8(src), m3 + +// func hashBlocksSSE4(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) +TEXT ·hashBlocksSSE4(SB), 4, $288-48 // frame size = 272 + 16 byte alignment + MOVQ h+0(FP), AX + MOVQ c+8(FP), BX + MOVQ flag+16(FP), CX + MOVQ blocks_base+24(FP), SI + MOVQ blocks_len+32(FP), DI + + MOVQ SP, R10 + ADDQ $15, R10 + ANDQ $~15, R10 + + MOVOU ·iv3<>(SB), X0 + MOVO X0, 0(R10) + XORQ CX, 0(R10) // 0(R10) = ·iv3 ^ (CX || 0) + + MOVOU ·c40<>(SB), X13 + MOVOU ·c48<>(SB), X14 + + MOVOU 0(AX), X12 + MOVOU 16(AX), X15 + + MOVQ 0(BX), R8 + MOVQ 8(BX), R9 + +loop: + ADDQ $128, R8 + CMPQ R8, $128 + JGE noinc + INCQ R9 + +noinc: + MOVQ R8, X8 + PINSRQ $1, R9, X8 + + MOVO X12, X0 + MOVO X15, X1 + MOVOU 32(AX), X2 + MOVOU 48(AX), X3 + MOVOU ·iv0<>(SB), X4 + MOVOU ·iv1<>(SB), X5 + MOVOU ·iv2<>(SB), X6 + + PXOR X8, X6 + MOVO 0(R10), X7 + + LOAD_MSG(X8, X9, X10, X11, SI, 0, 2, 4, 6, 1, 3, 5, 7) + MOVO X8, 16(R10) + MOVO X9, 32(R10) + MOVO X10, 48(R10) + MOVO X11, 64(R10) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) + LOAD_MSG(X8, X9, X10, X11, SI, 8, 10, 12, 14, 9, 11, 13, 15) + MOVO X8, 80(R10) + MOVO X9, 96(R10) + MOVO X10, 112(R10) + MOVO X11, 128(R10) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) + + LOAD_MSG(X8, X9, X10, X11, SI, 14, 4, 9, 13, 10, 8, 15, 6) + MOVO X8, 144(R10) + MOVO X9, 160(R10) + MOVO X10, 176(R10) + MOVO X11, 192(R10) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) + LOAD_MSG(X8, X9, X10, X11, SI, 1, 0, 11, 5, 12, 2, 7, 3) + MOVO X8, 208(R10) + MOVO X9, 224(R10) + MOVO X10, 240(R10) + MOVO X11, 256(R10) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) + + LOAD_MSG(X8, X9, X10, X11, SI, 11, 12, 5, 15, 8, 0, 2, 13) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) + LOAD_MSG(X8, X9, X10, X11, SI, 10, 3, 7, 9, 14, 6, 1, 4) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) + + LOAD_MSG(X8, X9, X10, X11, SI, 7, 3, 13, 11, 9, 1, 12, 14) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) + LOAD_MSG(X8, X9, X10, X11, SI, 2, 5, 4, 15, 6, 10, 0, 8) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) + + LOAD_MSG(X8, X9, X10, X11, SI, 9, 5, 2, 10, 0, 7, 4, 15) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) + LOAD_MSG(X8, X9, X10, X11, SI, 14, 11, 6, 3, 1, 12, 8, 13) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) + + LOAD_MSG(X8, X9, X10, X11, SI, 2, 6, 0, 8, 12, 10, 11, 3) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) + LOAD_MSG(X8, X9, X10, X11, SI, 4, 7, 15, 1, 13, 5, 14, 9) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) + + LOAD_MSG(X8, X9, X10, X11, SI, 12, 1, 14, 4, 5, 15, 13, 10) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) + LOAD_MSG(X8, X9, X10, X11, SI, 0, 6, 9, 8, 7, 3, 2, 11) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) + + LOAD_MSG(X8, X9, X10, X11, SI, 13, 7, 12, 3, 11, 14, 1, 9) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) + LOAD_MSG(X8, X9, X10, X11, SI, 5, 15, 8, 2, 0, 4, 6, 10) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) + + LOAD_MSG(X8, X9, X10, X11, SI, 6, 14, 11, 0, 15, 9, 3, 8) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) + LOAD_MSG(X8, X9, X10, X11, SI, 12, 13, 1, 10, 2, 7, 4, 5) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) + + LOAD_MSG(X8, X9, X10, X11, SI, 10, 8, 7, 1, 2, 4, 6, 5) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) + LOAD_MSG(X8, X9, X10, X11, SI, 15, 9, 3, 13, 11, 14, 12, 0) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14) + SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) + + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, 16(R10), 32(R10), 48(R10), 64(R10), X11, X13, X14) + SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, 80(R10), 96(R10), 112(R10), 128(R10), X11, X13, X14) + SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) + + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, 144(R10), 160(R10), 176(R10), 192(R10), X11, X13, X14) + SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9) + HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, 208(R10), 224(R10), 240(R10), 256(R10), X11, X13, X14) + SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9) + + MOVOU 32(AX), X10 + MOVOU 48(AX), X11 + PXOR X0, X12 + PXOR X1, X15 + PXOR X2, X10 + PXOR X3, X11 + PXOR X4, X12 + PXOR X5, X15 + PXOR X6, X10 + PXOR X7, X11 + MOVOU X10, 32(AX) + MOVOU X11, 48(AX) + + LEAQ 128(SI), SI + SUBQ $128, DI + JNE loop + + MOVOU X12, 0(AX) + MOVOU X15, 16(AX) + + MOVQ R8, 0(BX) + MOVQ R9, 8(BX) + + RET diff --git a/vendor/golang.org/x/crypto/blake2b/blake2b_generic.go b/vendor/golang.org/x/crypto/blake2b/blake2b_generic.go new file mode 100644 index 000000000000..3168a8aa3c83 --- /dev/null +++ b/vendor/golang.org/x/crypto/blake2b/blake2b_generic.go @@ -0,0 +1,182 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package blake2b + +import ( + "encoding/binary" + "math/bits" +) + +// the precomputed values for BLAKE2b +// there are 12 16-byte arrays - one for each round +// the entries are calculated from the sigma constants. +var precomputed = [12][16]byte{ + {0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15}, + {14, 4, 9, 13, 10, 8, 15, 6, 1, 0, 11, 5, 12, 2, 7, 3}, + {11, 12, 5, 15, 8, 0, 2, 13, 10, 3, 7, 9, 14, 6, 1, 4}, + {7, 3, 13, 11, 9, 1, 12, 14, 2, 5, 4, 15, 6, 10, 0, 8}, + {9, 5, 2, 10, 0, 7, 4, 15, 14, 11, 6, 3, 1, 12, 8, 13}, + {2, 6, 0, 8, 12, 10, 11, 3, 4, 7, 15, 1, 13, 5, 14, 9}, + {12, 1, 14, 4, 5, 15, 13, 10, 0, 6, 9, 8, 7, 3, 2, 11}, + {13, 7, 12, 3, 11, 14, 1, 9, 5, 15, 8, 2, 0, 4, 6, 10}, + {6, 14, 11, 0, 15, 9, 3, 8, 12, 13, 1, 10, 2, 7, 4, 5}, + {10, 8, 7, 1, 2, 4, 6, 5, 15, 9, 3, 13, 11, 14, 12, 0}, + {0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15}, // equal to the first + {14, 4, 9, 13, 10, 8, 15, 6, 1, 0, 11, 5, 12, 2, 7, 3}, // equal to the second +} + +func hashBlocksGeneric(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) { + var m [16]uint64 + c0, c1 := c[0], c[1] + + for i := 0; i < len(blocks); { + c0 += BlockSize + if c0 < BlockSize { + c1++ + } + + v0, v1, v2, v3, v4, v5, v6, v7 := h[0], h[1], h[2], h[3], h[4], h[5], h[6], h[7] + v8, v9, v10, v11, v12, v13, v14, v15 := iv[0], iv[1], iv[2], iv[3], iv[4], iv[5], iv[6], iv[7] + v12 ^= c0 + v13 ^= c1 + v14 ^= flag + + for j := range m { + m[j] = binary.LittleEndian.Uint64(blocks[i:]) + i += 8 + } + + for j := range precomputed { + s := &(precomputed[j]) + + v0 += m[s[0]] + v0 += v4 + v12 ^= v0 + v12 = bits.RotateLeft64(v12, -32) + v8 += v12 + v4 ^= v8 + v4 = bits.RotateLeft64(v4, -24) + v1 += m[s[1]] + v1 += v5 + v13 ^= v1 + v13 = bits.RotateLeft64(v13, -32) + v9 += v13 + v5 ^= v9 + v5 = bits.RotateLeft64(v5, -24) + v2 += m[s[2]] + v2 += v6 + v14 ^= v2 + v14 = bits.RotateLeft64(v14, -32) + v10 += v14 + v6 ^= v10 + v6 = bits.RotateLeft64(v6, -24) + v3 += m[s[3]] + v3 += v7 + v15 ^= v3 + v15 = bits.RotateLeft64(v15, -32) + v11 += v15 + v7 ^= v11 + v7 = bits.RotateLeft64(v7, -24) + + v0 += m[s[4]] + v0 += v4 + v12 ^= v0 + v12 = bits.RotateLeft64(v12, -16) + v8 += v12 + v4 ^= v8 + v4 = bits.RotateLeft64(v4, -63) + v1 += m[s[5]] + v1 += v5 + v13 ^= v1 + v13 = bits.RotateLeft64(v13, -16) + v9 += v13 + v5 ^= v9 + v5 = bits.RotateLeft64(v5, -63) + v2 += m[s[6]] + v2 += v6 + v14 ^= v2 + v14 = bits.RotateLeft64(v14, -16) + v10 += v14 + v6 ^= v10 + v6 = bits.RotateLeft64(v6, -63) + v3 += m[s[7]] + v3 += v7 + v15 ^= v3 + v15 = bits.RotateLeft64(v15, -16) + v11 += v15 + v7 ^= v11 + v7 = bits.RotateLeft64(v7, -63) + + v0 += m[s[8]] + v0 += v5 + v15 ^= v0 + v15 = bits.RotateLeft64(v15, -32) + v10 += v15 + v5 ^= v10 + v5 = bits.RotateLeft64(v5, -24) + v1 += m[s[9]] + v1 += v6 + v12 ^= v1 + v12 = bits.RotateLeft64(v12, -32) + v11 += v12 + v6 ^= v11 + v6 = bits.RotateLeft64(v6, -24) + v2 += m[s[10]] + v2 += v7 + v13 ^= v2 + v13 = bits.RotateLeft64(v13, -32) + v8 += v13 + v7 ^= v8 + v7 = bits.RotateLeft64(v7, -24) + v3 += m[s[11]] + v3 += v4 + v14 ^= v3 + v14 = bits.RotateLeft64(v14, -32) + v9 += v14 + v4 ^= v9 + v4 = bits.RotateLeft64(v4, -24) + + v0 += m[s[12]] + v0 += v5 + v15 ^= v0 + v15 = bits.RotateLeft64(v15, -16) + v10 += v15 + v5 ^= v10 + v5 = bits.RotateLeft64(v5, -63) + v1 += m[s[13]] + v1 += v6 + v12 ^= v1 + v12 = bits.RotateLeft64(v12, -16) + v11 += v12 + v6 ^= v11 + v6 = bits.RotateLeft64(v6, -63) + v2 += m[s[14]] + v2 += v7 + v13 ^= v2 + v13 = bits.RotateLeft64(v13, -16) + v8 += v13 + v7 ^= v8 + v7 = bits.RotateLeft64(v7, -63) + v3 += m[s[15]] + v3 += v4 + v14 ^= v3 + v14 = bits.RotateLeft64(v14, -16) + v9 += v14 + v4 ^= v9 + v4 = bits.RotateLeft64(v4, -63) + + } + + h[0] ^= v0 ^ v8 + h[1] ^= v1 ^ v9 + h[2] ^= v2 ^ v10 + h[3] ^= v3 ^ v11 + h[4] ^= v4 ^ v12 + h[5] ^= v5 ^ v13 + h[6] ^= v6 ^ v14 + h[7] ^= v7 ^ v15 + } + c[0], c[1] = c0, c1 +} diff --git a/vendor/golang.org/x/crypto/blake2b/blake2b_ref.go b/vendor/golang.org/x/crypto/blake2b/blake2b_ref.go new file mode 100644 index 000000000000..b0137cdf025c --- /dev/null +++ b/vendor/golang.org/x/crypto/blake2b/blake2b_ref.go @@ -0,0 +1,12 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !amd64 || purego || !gc +// +build !amd64 purego !gc + +package blake2b + +func hashBlocks(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) { + hashBlocksGeneric(h, c, flag, blocks) +} diff --git a/vendor/golang.org/x/crypto/blake2b/blake2x.go b/vendor/golang.org/x/crypto/blake2b/blake2x.go new file mode 100644 index 000000000000..52c414db0e64 --- /dev/null +++ b/vendor/golang.org/x/crypto/blake2b/blake2x.go @@ -0,0 +1,177 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package blake2b + +import ( + "encoding/binary" + "errors" + "io" +) + +// XOF defines the interface to hash functions that +// support arbitrary-length output. +type XOF interface { + // Write absorbs more data into the hash's state. It panics if called + // after Read. + io.Writer + + // Read reads more output from the hash. It returns io.EOF if the limit + // has been reached. + io.Reader + + // Clone returns a copy of the XOF in its current state. + Clone() XOF + + // Reset resets the XOF to its initial state. + Reset() +} + +// OutputLengthUnknown can be used as the size argument to NewXOF to indicate +// the length of the output is not known in advance. +const OutputLengthUnknown = 0 + +// magicUnknownOutputLength is a magic value for the output size that indicates +// an unknown number of output bytes. +const magicUnknownOutputLength = (1 << 32) - 1 + +// maxOutputLength is the absolute maximum number of bytes to produce when the +// number of output bytes is unknown. +const maxOutputLength = (1 << 32) * 64 + +// NewXOF creates a new variable-output-length hash. The hash either produce a +// known number of bytes (1 <= size < 2**32-1), or an unknown number of bytes +// (size == OutputLengthUnknown). In the latter case, an absolute limit of +// 256GiB applies. +// +// A non-nil key turns the hash into a MAC. The key must between +// zero and 32 bytes long. +func NewXOF(size uint32, key []byte) (XOF, error) { + if len(key) > Size { + return nil, errKeySize + } + if size == magicUnknownOutputLength { + // 2^32-1 indicates an unknown number of bytes and thus isn't a + // valid length. + return nil, errors.New("blake2b: XOF length too large") + } + if size == OutputLengthUnknown { + size = magicUnknownOutputLength + } + x := &xof{ + d: digest{ + size: Size, + keyLen: len(key), + }, + length: size, + } + copy(x.d.key[:], key) + x.Reset() + return x, nil +} + +type xof struct { + d digest + length uint32 + remaining uint64 + cfg, root, block [Size]byte + offset int + nodeOffset uint32 + readMode bool +} + +func (x *xof) Write(p []byte) (n int, err error) { + if x.readMode { + panic("blake2b: write to XOF after read") + } + return x.d.Write(p) +} + +func (x *xof) Clone() XOF { + clone := *x + return &clone +} + +func (x *xof) Reset() { + x.cfg[0] = byte(Size) + binary.LittleEndian.PutUint32(x.cfg[4:], uint32(Size)) // leaf length + binary.LittleEndian.PutUint32(x.cfg[12:], x.length) // XOF length + x.cfg[17] = byte(Size) // inner hash size + + x.d.Reset() + x.d.h[1] ^= uint64(x.length) << 32 + + x.remaining = uint64(x.length) + if x.remaining == magicUnknownOutputLength { + x.remaining = maxOutputLength + } + x.offset, x.nodeOffset = 0, 0 + x.readMode = false +} + +func (x *xof) Read(p []byte) (n int, err error) { + if !x.readMode { + x.d.finalize(&x.root) + x.readMode = true + } + + if x.remaining == 0 { + return 0, io.EOF + } + + n = len(p) + if uint64(n) > x.remaining { + n = int(x.remaining) + p = p[:n] + } + + if x.offset > 0 { + blockRemaining := Size - x.offset + if n < blockRemaining { + x.offset += copy(p, x.block[x.offset:]) + x.remaining -= uint64(n) + return + } + copy(p, x.block[x.offset:]) + p = p[blockRemaining:] + x.offset = 0 + x.remaining -= uint64(blockRemaining) + } + + for len(p) >= Size { + binary.LittleEndian.PutUint32(x.cfg[8:], x.nodeOffset) + x.nodeOffset++ + + x.d.initConfig(&x.cfg) + x.d.Write(x.root[:]) + x.d.finalize(&x.block) + + copy(p, x.block[:]) + p = p[Size:] + x.remaining -= uint64(Size) + } + + if todo := len(p); todo > 0 { + if x.remaining < uint64(Size) { + x.cfg[0] = byte(x.remaining) + } + binary.LittleEndian.PutUint32(x.cfg[8:], x.nodeOffset) + x.nodeOffset++ + + x.d.initConfig(&x.cfg) + x.d.Write(x.root[:]) + x.d.finalize(&x.block) + + x.offset = copy(p, x.block[:todo]) + x.remaining -= uint64(todo) + } + return +} + +func (d *digest) initConfig(cfg *[Size]byte) { + d.offset, d.c[0], d.c[1] = 0, 0, 0 + for i := range d.h { + d.h[i] = iv[i] ^ binary.LittleEndian.Uint64(cfg[i*8:]) + } +} diff --git a/vendor/golang.org/x/crypto/blake2b/register.go b/vendor/golang.org/x/crypto/blake2b/register.go new file mode 100644 index 000000000000..9d8633963cb6 --- /dev/null +++ b/vendor/golang.org/x/crypto/blake2b/register.go @@ -0,0 +1,33 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.9 +// +build go1.9 + +package blake2b + +import ( + "crypto" + "hash" +) + +func init() { + newHash256 := func() hash.Hash { + h, _ := New256(nil) + return h + } + newHash384 := func() hash.Hash { + h, _ := New384(nil) + return h + } + + newHash512 := func() hash.Hash { + h, _ := New512(nil) + return h + } + + crypto.RegisterHash(crypto.BLAKE2b_256, newHash256) + crypto.RegisterHash(crypto.BLAKE2b_384, newHash384) + crypto.RegisterHash(crypto.BLAKE2b_512, newHash512) +} diff --git a/vendor/golang.org/x/crypto/hkdf/hkdf.go b/vendor/golang.org/x/crypto/hkdf/hkdf.go new file mode 100644 index 000000000000..dda3f143bec5 --- /dev/null +++ b/vendor/golang.org/x/crypto/hkdf/hkdf.go @@ -0,0 +1,93 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package hkdf implements the HMAC-based Extract-and-Expand Key Derivation +// Function (HKDF) as defined in RFC 5869. +// +// HKDF is a cryptographic key derivation function (KDF) with the goal of +// expanding limited input keying material into one or more cryptographically +// strong secret keys. +package hkdf // import "golang.org/x/crypto/hkdf" + +import ( + "crypto/hmac" + "errors" + "hash" + "io" +) + +// Extract generates a pseudorandom key for use with Expand from an input secret +// and an optional independent salt. +// +// Only use this function if you need to reuse the extracted key with multiple +// Expand invocations and different context values. Most common scenarios, +// including the generation of multiple keys, should use New instead. +func Extract(hash func() hash.Hash, secret, salt []byte) []byte { + if salt == nil { + salt = make([]byte, hash().Size()) + } + extractor := hmac.New(hash, salt) + extractor.Write(secret) + return extractor.Sum(nil) +} + +type hkdf struct { + expander hash.Hash + size int + + info []byte + counter byte + + prev []byte + buf []byte +} + +func (f *hkdf) Read(p []byte) (int, error) { + // Check whether enough data can be generated + need := len(p) + remains := len(f.buf) + int(255-f.counter+1)*f.size + if remains < need { + return 0, errors.New("hkdf: entropy limit reached") + } + // Read any leftover from the buffer + n := copy(p, f.buf) + p = p[n:] + + // Fill the rest of the buffer + for len(p) > 0 { + f.expander.Reset() + f.expander.Write(f.prev) + f.expander.Write(f.info) + f.expander.Write([]byte{f.counter}) + f.prev = f.expander.Sum(f.prev[:0]) + f.counter++ + + // Copy the new batch into p + f.buf = f.prev + n = copy(p, f.buf) + p = p[n:] + } + // Save leftovers for next run + f.buf = f.buf[n:] + + return need, nil +} + +// Expand returns a Reader, from which keys can be read, using the given +// pseudorandom key and optional context info, skipping the extraction step. +// +// The pseudorandomKey should have been generated by Extract, or be a uniformly +// random or pseudorandom cryptographically strong key. See RFC 5869, Section +// 3.3. Most common scenarios will want to use New instead. +func Expand(hash func() hash.Hash, pseudorandomKey, info []byte) io.Reader { + expander := hmac.New(hash, pseudorandomKey) + return &hkdf{expander, expander.Size(), info, 1, nil, nil} +} + +// New returns a Reader, from which keys can be read, using the given hash, +// secret, salt and context info. Salt and info can be nil. +func New(hash func() hash.Hash, secret, salt, info []byte) io.Reader { + prk := Extract(hash, secret, salt) + return Expand(hash, prk, info) +} diff --git a/vendor/golang.org/x/crypto/openpgp/keys.go b/vendor/golang.org/x/crypto/openpgp/keys.go deleted file mode 100644 index d62f787e9d5a..000000000000 --- a/vendor/golang.org/x/crypto/openpgp/keys.go +++ /dev/null @@ -1,693 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package openpgp - -import ( - "crypto/rsa" - "io" - "time" - - "golang.org/x/crypto/openpgp/armor" - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/packet" -) - -// PublicKeyType is the armor type for a PGP public key. -var PublicKeyType = "PGP PUBLIC KEY BLOCK" - -// PrivateKeyType is the armor type for a PGP private key. -var PrivateKeyType = "PGP PRIVATE KEY BLOCK" - -// An Entity represents the components of an OpenPGP key: a primary public key -// (which must be a signing key), one or more identities claimed by that key, -// and zero or more subkeys, which may be encryption keys. -type Entity struct { - PrimaryKey *packet.PublicKey - PrivateKey *packet.PrivateKey - Identities map[string]*Identity // indexed by Identity.Name - Revocations []*packet.Signature - Subkeys []Subkey -} - -// An Identity represents an identity claimed by an Entity and zero or more -// assertions by other entities about that claim. -type Identity struct { - Name string // by convention, has the form "Full Name (comment) " - UserId *packet.UserId - SelfSignature *packet.Signature - Signatures []*packet.Signature -} - -// A Subkey is an additional public key in an Entity. Subkeys can be used for -// encryption. -type Subkey struct { - PublicKey *packet.PublicKey - PrivateKey *packet.PrivateKey - Sig *packet.Signature -} - -// A Key identifies a specific public key in an Entity. This is either the -// Entity's primary key or a subkey. -type Key struct { - Entity *Entity - PublicKey *packet.PublicKey - PrivateKey *packet.PrivateKey - SelfSignature *packet.Signature -} - -// A KeyRing provides access to public and private keys. -type KeyRing interface { - // KeysById returns the set of keys that have the given key id. - KeysById(id uint64) []Key - // KeysByIdUsage returns the set of keys with the given id - // that also meet the key usage given by requiredUsage. - // The requiredUsage is expressed as the bitwise-OR of - // packet.KeyFlag* values. - KeysByIdUsage(id uint64, requiredUsage byte) []Key - // DecryptionKeys returns all private keys that are valid for - // decryption. - DecryptionKeys() []Key -} - -// primaryIdentity returns the Identity marked as primary or the first identity -// if none are so marked. -func (e *Entity) primaryIdentity() *Identity { - var firstIdentity *Identity - for _, ident := range e.Identities { - if firstIdentity == nil { - firstIdentity = ident - } - if ident.SelfSignature.IsPrimaryId != nil && *ident.SelfSignature.IsPrimaryId { - return ident - } - } - return firstIdentity -} - -// encryptionKey returns the best candidate Key for encrypting a message to the -// given Entity. -func (e *Entity) encryptionKey(now time.Time) (Key, bool) { - candidateSubkey := -1 - - // Iterate the keys to find the newest key - var maxTime time.Time - for i, subkey := range e.Subkeys { - if subkey.Sig.FlagsValid && - subkey.Sig.FlagEncryptCommunications && - subkey.PublicKey.PubKeyAlgo.CanEncrypt() && - !subkey.Sig.KeyExpired(now) && - (maxTime.IsZero() || subkey.Sig.CreationTime.After(maxTime)) { - candidateSubkey = i - maxTime = subkey.Sig.CreationTime - } - } - - if candidateSubkey != -1 { - subkey := e.Subkeys[candidateSubkey] - return Key{e, subkey.PublicKey, subkey.PrivateKey, subkey.Sig}, true - } - - // If we don't have any candidate subkeys for encryption and - // the primary key doesn't have any usage metadata then we - // assume that the primary key is ok. Or, if the primary key is - // marked as ok to encrypt to, then we can obviously use it. - i := e.primaryIdentity() - if !i.SelfSignature.FlagsValid || i.SelfSignature.FlagEncryptCommunications && - e.PrimaryKey.PubKeyAlgo.CanEncrypt() && - !i.SelfSignature.KeyExpired(now) { - return Key{e, e.PrimaryKey, e.PrivateKey, i.SelfSignature}, true - } - - // This Entity appears to be signing only. - return Key{}, false -} - -// signingKey return the best candidate Key for signing a message with this -// Entity. -func (e *Entity) signingKey(now time.Time) (Key, bool) { - candidateSubkey := -1 - - for i, subkey := range e.Subkeys { - if subkey.Sig.FlagsValid && - subkey.Sig.FlagSign && - subkey.PublicKey.PubKeyAlgo.CanSign() && - !subkey.Sig.KeyExpired(now) { - candidateSubkey = i - break - } - } - - if candidateSubkey != -1 { - subkey := e.Subkeys[candidateSubkey] - return Key{e, subkey.PublicKey, subkey.PrivateKey, subkey.Sig}, true - } - - // If we have no candidate subkey then we assume that it's ok to sign - // with the primary key. - i := e.primaryIdentity() - if !i.SelfSignature.FlagsValid || i.SelfSignature.FlagSign && - !i.SelfSignature.KeyExpired(now) { - return Key{e, e.PrimaryKey, e.PrivateKey, i.SelfSignature}, true - } - - return Key{}, false -} - -// An EntityList contains one or more Entities. -type EntityList []*Entity - -// KeysById returns the set of keys that have the given key id. -func (el EntityList) KeysById(id uint64) (keys []Key) { - for _, e := range el { - if e.PrimaryKey.KeyId == id { - var selfSig *packet.Signature - for _, ident := range e.Identities { - if selfSig == nil { - selfSig = ident.SelfSignature - } else if ident.SelfSignature.IsPrimaryId != nil && *ident.SelfSignature.IsPrimaryId { - selfSig = ident.SelfSignature - break - } - } - keys = append(keys, Key{e, e.PrimaryKey, e.PrivateKey, selfSig}) - } - - for _, subKey := range e.Subkeys { - if subKey.PublicKey.KeyId == id { - keys = append(keys, Key{e, subKey.PublicKey, subKey.PrivateKey, subKey.Sig}) - } - } - } - return -} - -// KeysByIdUsage returns the set of keys with the given id that also meet -// the key usage given by requiredUsage. The requiredUsage is expressed as -// the bitwise-OR of packet.KeyFlag* values. -func (el EntityList) KeysByIdUsage(id uint64, requiredUsage byte) (keys []Key) { - for _, key := range el.KeysById(id) { - if len(key.Entity.Revocations) > 0 { - continue - } - - if key.SelfSignature.RevocationReason != nil { - continue - } - - if key.SelfSignature.FlagsValid && requiredUsage != 0 { - var usage byte - if key.SelfSignature.FlagCertify { - usage |= packet.KeyFlagCertify - } - if key.SelfSignature.FlagSign { - usage |= packet.KeyFlagSign - } - if key.SelfSignature.FlagEncryptCommunications { - usage |= packet.KeyFlagEncryptCommunications - } - if key.SelfSignature.FlagEncryptStorage { - usage |= packet.KeyFlagEncryptStorage - } - if usage&requiredUsage != requiredUsage { - continue - } - } - - keys = append(keys, key) - } - return -} - -// DecryptionKeys returns all private keys that are valid for decryption. -func (el EntityList) DecryptionKeys() (keys []Key) { - for _, e := range el { - for _, subKey := range e.Subkeys { - if subKey.PrivateKey != nil && (!subKey.Sig.FlagsValid || subKey.Sig.FlagEncryptStorage || subKey.Sig.FlagEncryptCommunications) { - keys = append(keys, Key{e, subKey.PublicKey, subKey.PrivateKey, subKey.Sig}) - } - } - } - return -} - -// ReadArmoredKeyRing reads one or more public/private keys from an armor keyring file. -func ReadArmoredKeyRing(r io.Reader) (EntityList, error) { - block, err := armor.Decode(r) - if err == io.EOF { - return nil, errors.InvalidArgumentError("no armored data found") - } - if err != nil { - return nil, err - } - if block.Type != PublicKeyType && block.Type != PrivateKeyType { - return nil, errors.InvalidArgumentError("expected public or private key block, got: " + block.Type) - } - - return ReadKeyRing(block.Body) -} - -// ReadKeyRing reads one or more public/private keys. Unsupported keys are -// ignored as long as at least a single valid key is found. -func ReadKeyRing(r io.Reader) (el EntityList, err error) { - packets := packet.NewReader(r) - var lastUnsupportedError error - - for { - var e *Entity - e, err = ReadEntity(packets) - if err != nil { - // TODO: warn about skipped unsupported/unreadable keys - if _, ok := err.(errors.UnsupportedError); ok { - lastUnsupportedError = err - err = readToNextPublicKey(packets) - } else if _, ok := err.(errors.StructuralError); ok { - // Skip unreadable, badly-formatted keys - lastUnsupportedError = err - err = readToNextPublicKey(packets) - } - if err == io.EOF { - err = nil - break - } - if err != nil { - el = nil - break - } - } else { - el = append(el, e) - } - } - - if len(el) == 0 && err == nil { - err = lastUnsupportedError - } - return -} - -// readToNextPublicKey reads packets until the start of the entity and leaves -// the first packet of the new entity in the Reader. -func readToNextPublicKey(packets *packet.Reader) (err error) { - var p packet.Packet - for { - p, err = packets.Next() - if err == io.EOF { - return - } else if err != nil { - if _, ok := err.(errors.UnsupportedError); ok { - err = nil - continue - } - return - } - - if pk, ok := p.(*packet.PublicKey); ok && !pk.IsSubkey { - packets.Unread(p) - return - } - } -} - -// ReadEntity reads an entity (public key, identities, subkeys etc) from the -// given Reader. -func ReadEntity(packets *packet.Reader) (*Entity, error) { - e := new(Entity) - e.Identities = make(map[string]*Identity) - - p, err := packets.Next() - if err != nil { - return nil, err - } - - var ok bool - if e.PrimaryKey, ok = p.(*packet.PublicKey); !ok { - if e.PrivateKey, ok = p.(*packet.PrivateKey); !ok { - packets.Unread(p) - return nil, errors.StructuralError("first packet was not a public/private key") - } - e.PrimaryKey = &e.PrivateKey.PublicKey - } - - if !e.PrimaryKey.PubKeyAlgo.CanSign() { - return nil, errors.StructuralError("primary key cannot be used for signatures") - } - - var revocations []*packet.Signature -EachPacket: - for { - p, err := packets.Next() - if err == io.EOF { - break - } else if err != nil { - return nil, err - } - - switch pkt := p.(type) { - case *packet.UserId: - if err := addUserID(e, packets, pkt); err != nil { - return nil, err - } - case *packet.Signature: - if pkt.SigType == packet.SigTypeKeyRevocation { - revocations = append(revocations, pkt) - } else if pkt.SigType == packet.SigTypeDirectSignature { - // TODO: RFC4880 5.2.1 permits signatures - // directly on keys (eg. to bind additional - // revocation keys). - } - // Else, ignoring the signature as it does not follow anything - // we would know to attach it to. - case *packet.PrivateKey: - if pkt.IsSubkey == false { - packets.Unread(p) - break EachPacket - } - err = addSubkey(e, packets, &pkt.PublicKey, pkt) - if err != nil { - return nil, err - } - case *packet.PublicKey: - if pkt.IsSubkey == false { - packets.Unread(p) - break EachPacket - } - err = addSubkey(e, packets, pkt, nil) - if err != nil { - return nil, err - } - default: - // we ignore unknown packets - } - } - - if len(e.Identities) == 0 { - return nil, errors.StructuralError("entity without any identities") - } - - for _, revocation := range revocations { - err = e.PrimaryKey.VerifyRevocationSignature(revocation) - if err == nil { - e.Revocations = append(e.Revocations, revocation) - } else { - // TODO: RFC 4880 5.2.3.15 defines revocation keys. - return nil, errors.StructuralError("revocation signature signed by alternate key") - } - } - - return e, nil -} - -func addUserID(e *Entity, packets *packet.Reader, pkt *packet.UserId) error { - // Make a new Identity object, that we might wind up throwing away. - // We'll only add it if we get a valid self-signature over this - // userID. - identity := new(Identity) - identity.Name = pkt.Id - identity.UserId = pkt - - for { - p, err := packets.Next() - if err == io.EOF { - break - } else if err != nil { - return err - } - - sig, ok := p.(*packet.Signature) - if !ok { - packets.Unread(p) - break - } - - if (sig.SigType == packet.SigTypePositiveCert || sig.SigType == packet.SigTypeGenericCert) && sig.IssuerKeyId != nil && *sig.IssuerKeyId == e.PrimaryKey.KeyId { - if err = e.PrimaryKey.VerifyUserIdSignature(pkt.Id, e.PrimaryKey, sig); err != nil { - return errors.StructuralError("user ID self-signature invalid: " + err.Error()) - } - identity.SelfSignature = sig - e.Identities[pkt.Id] = identity - } else { - identity.Signatures = append(identity.Signatures, sig) - } - } - - return nil -} - -func addSubkey(e *Entity, packets *packet.Reader, pub *packet.PublicKey, priv *packet.PrivateKey) error { - var subKey Subkey - subKey.PublicKey = pub - subKey.PrivateKey = priv - - for { - p, err := packets.Next() - if err == io.EOF { - break - } else if err != nil { - return errors.StructuralError("subkey signature invalid: " + err.Error()) - } - - sig, ok := p.(*packet.Signature) - if !ok { - packets.Unread(p) - break - } - - if sig.SigType != packet.SigTypeSubkeyBinding && sig.SigType != packet.SigTypeSubkeyRevocation { - return errors.StructuralError("subkey signature with wrong type") - } - - if err := e.PrimaryKey.VerifyKeySignature(subKey.PublicKey, sig); err != nil { - return errors.StructuralError("subkey signature invalid: " + err.Error()) - } - - switch sig.SigType { - case packet.SigTypeSubkeyRevocation: - subKey.Sig = sig - case packet.SigTypeSubkeyBinding: - - if shouldReplaceSubkeySig(subKey.Sig, sig) { - subKey.Sig = sig - } - } - } - - if subKey.Sig == nil { - return errors.StructuralError("subkey packet not followed by signature") - } - - e.Subkeys = append(e.Subkeys, subKey) - - return nil -} - -func shouldReplaceSubkeySig(existingSig, potentialNewSig *packet.Signature) bool { - if potentialNewSig == nil { - return false - } - - if existingSig == nil { - return true - } - - if existingSig.SigType == packet.SigTypeSubkeyRevocation { - return false // never override a revocation signature - } - - return potentialNewSig.CreationTime.After(existingSig.CreationTime) -} - -const defaultRSAKeyBits = 2048 - -// NewEntity returns an Entity that contains a fresh RSA/RSA keypair with a -// single identity composed of the given full name, comment and email, any of -// which may be empty but must not contain any of "()<>\x00". -// If config is nil, sensible defaults will be used. -func NewEntity(name, comment, email string, config *packet.Config) (*Entity, error) { - creationTime := config.Now() - - bits := defaultRSAKeyBits - if config != nil && config.RSABits != 0 { - bits = config.RSABits - } - - uid := packet.NewUserId(name, comment, email) - if uid == nil { - return nil, errors.InvalidArgumentError("user id field contained invalid characters") - } - signingPriv, err := rsa.GenerateKey(config.Random(), bits) - if err != nil { - return nil, err - } - encryptingPriv, err := rsa.GenerateKey(config.Random(), bits) - if err != nil { - return nil, err - } - - e := &Entity{ - PrimaryKey: packet.NewRSAPublicKey(creationTime, &signingPriv.PublicKey), - PrivateKey: packet.NewRSAPrivateKey(creationTime, signingPriv), - Identities: make(map[string]*Identity), - } - isPrimaryId := true - e.Identities[uid.Id] = &Identity{ - Name: uid.Id, - UserId: uid, - SelfSignature: &packet.Signature{ - CreationTime: creationTime, - SigType: packet.SigTypePositiveCert, - PubKeyAlgo: packet.PubKeyAlgoRSA, - Hash: config.Hash(), - IsPrimaryId: &isPrimaryId, - FlagsValid: true, - FlagSign: true, - FlagCertify: true, - IssuerKeyId: &e.PrimaryKey.KeyId, - }, - } - err = e.Identities[uid.Id].SelfSignature.SignUserId(uid.Id, e.PrimaryKey, e.PrivateKey, config) - if err != nil { - return nil, err - } - - // If the user passes in a DefaultHash via packet.Config, - // set the PreferredHash for the SelfSignature. - if config != nil && config.DefaultHash != 0 { - e.Identities[uid.Id].SelfSignature.PreferredHash = []uint8{hashToHashId(config.DefaultHash)} - } - - // Likewise for DefaultCipher. - if config != nil && config.DefaultCipher != 0 { - e.Identities[uid.Id].SelfSignature.PreferredSymmetric = []uint8{uint8(config.DefaultCipher)} - } - - e.Subkeys = make([]Subkey, 1) - e.Subkeys[0] = Subkey{ - PublicKey: packet.NewRSAPublicKey(creationTime, &encryptingPriv.PublicKey), - PrivateKey: packet.NewRSAPrivateKey(creationTime, encryptingPriv), - Sig: &packet.Signature{ - CreationTime: creationTime, - SigType: packet.SigTypeSubkeyBinding, - PubKeyAlgo: packet.PubKeyAlgoRSA, - Hash: config.Hash(), - FlagsValid: true, - FlagEncryptStorage: true, - FlagEncryptCommunications: true, - IssuerKeyId: &e.PrimaryKey.KeyId, - }, - } - e.Subkeys[0].PublicKey.IsSubkey = true - e.Subkeys[0].PrivateKey.IsSubkey = true - err = e.Subkeys[0].Sig.SignKey(e.Subkeys[0].PublicKey, e.PrivateKey, config) - if err != nil { - return nil, err - } - return e, nil -} - -// SerializePrivate serializes an Entity, including private key material, but -// excluding signatures from other entities, to the given Writer. -// Identities and subkeys are re-signed in case they changed since NewEntry. -// If config is nil, sensible defaults will be used. -func (e *Entity) SerializePrivate(w io.Writer, config *packet.Config) (err error) { - err = e.PrivateKey.Serialize(w) - if err != nil { - return - } - for _, ident := range e.Identities { - err = ident.UserId.Serialize(w) - if err != nil { - return - } - err = ident.SelfSignature.SignUserId(ident.UserId.Id, e.PrimaryKey, e.PrivateKey, config) - if err != nil { - return - } - err = ident.SelfSignature.Serialize(w) - if err != nil { - return - } - } - for _, subkey := range e.Subkeys { - err = subkey.PrivateKey.Serialize(w) - if err != nil { - return - } - err = subkey.Sig.SignKey(subkey.PublicKey, e.PrivateKey, config) - if err != nil { - return - } - err = subkey.Sig.Serialize(w) - if err != nil { - return - } - } - return nil -} - -// Serialize writes the public part of the given Entity to w, including -// signatures from other entities. No private key material will be output. -func (e *Entity) Serialize(w io.Writer) error { - err := e.PrimaryKey.Serialize(w) - if err != nil { - return err - } - for _, ident := range e.Identities { - err = ident.UserId.Serialize(w) - if err != nil { - return err - } - err = ident.SelfSignature.Serialize(w) - if err != nil { - return err - } - for _, sig := range ident.Signatures { - err = sig.Serialize(w) - if err != nil { - return err - } - } - } - for _, subkey := range e.Subkeys { - err = subkey.PublicKey.Serialize(w) - if err != nil { - return err - } - err = subkey.Sig.Serialize(w) - if err != nil { - return err - } - } - return nil -} - -// SignIdentity adds a signature to e, from signer, attesting that identity is -// associated with e. The provided identity must already be an element of -// e.Identities and the private key of signer must have been decrypted if -// necessary. -// If config is nil, sensible defaults will be used. -func (e *Entity) SignIdentity(identity string, signer *Entity, config *packet.Config) error { - if signer.PrivateKey == nil { - return errors.InvalidArgumentError("signing Entity must have a private key") - } - if signer.PrivateKey.Encrypted { - return errors.InvalidArgumentError("signing Entity's private key must be decrypted") - } - ident, ok := e.Identities[identity] - if !ok { - return errors.InvalidArgumentError("given identity string not found in Entity") - } - - sig := &packet.Signature{ - SigType: packet.SigTypeGenericCert, - PubKeyAlgo: signer.PrivateKey.PubKeyAlgo, - Hash: config.Hash(), - CreationTime: config.Now(), - IssuerKeyId: &signer.PrivateKey.KeyId, - } - if err := sig.SignUserId(identity, e.PrimaryKey, signer.PrivateKey, config); err != nil { - return err - } - ident.Signatures = append(ident.Signatures, sig) - return nil -} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/config.go b/vendor/golang.org/x/crypto/openpgp/packet/config.go deleted file mode 100644 index c76eecc963ac..000000000000 --- a/vendor/golang.org/x/crypto/openpgp/packet/config.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "crypto" - "crypto/rand" - "io" - "time" -) - -// Config collects a number of parameters along with sensible defaults. -// A nil *Config is valid and results in all default values. -type Config struct { - // Rand provides the source of entropy. - // If nil, the crypto/rand Reader is used. - Rand io.Reader - // DefaultHash is the default hash function to be used. - // If zero, SHA-256 is used. - DefaultHash crypto.Hash - // DefaultCipher is the cipher to be used. - // If zero, AES-128 is used. - DefaultCipher CipherFunction - // Time returns the current time as the number of seconds since the - // epoch. If Time is nil, time.Now is used. - Time func() time.Time - // DefaultCompressionAlgo is the compression algorithm to be - // applied to the plaintext before encryption. If zero, no - // compression is done. - DefaultCompressionAlgo CompressionAlgo - // CompressionConfig configures the compression settings. - CompressionConfig *CompressionConfig - // S2KCount is only used for symmetric encryption. It - // determines the strength of the passphrase stretching when - // the said passphrase is hashed to produce a key. S2KCount - // should be between 1024 and 65011712, inclusive. If Config - // is nil or S2KCount is 0, the value 65536 used. Not all - // values in the above range can be represented. S2KCount will - // be rounded up to the next representable value if it cannot - // be encoded exactly. When set, it is strongly encrouraged to - // use a value that is at least 65536. See RFC 4880 Section - // 3.7.1.3. - S2KCount int - // RSABits is the number of bits in new RSA keys made with NewEntity. - // If zero, then 2048 bit keys are created. - RSABits int -} - -func (c *Config) Random() io.Reader { - if c == nil || c.Rand == nil { - return rand.Reader - } - return c.Rand -} - -func (c *Config) Hash() crypto.Hash { - if c == nil || uint(c.DefaultHash) == 0 { - return crypto.SHA256 - } - return c.DefaultHash -} - -func (c *Config) Cipher() CipherFunction { - if c == nil || uint8(c.DefaultCipher) == 0 { - return CipherAES128 - } - return c.DefaultCipher -} - -func (c *Config) Now() time.Time { - if c == nil || c.Time == nil { - return time.Now() - } - return c.Time() -} - -func (c *Config) Compression() CompressionAlgo { - if c == nil { - return CompressionNone - } - return c.DefaultCompressionAlgo -} - -func (c *Config) PasswordHashIterations() int { - if c == nil || c.S2KCount == 0 { - return 0 - } - return c.S2KCount -} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/private_key.go b/vendor/golang.org/x/crypto/openpgp/packet/private_key.go deleted file mode 100644 index 192aac376d1a..000000000000 --- a/vendor/golang.org/x/crypto/openpgp/packet/private_key.go +++ /dev/null @@ -1,384 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "bytes" - "crypto" - "crypto/cipher" - "crypto/dsa" - "crypto/ecdsa" - "crypto/rsa" - "crypto/sha1" - "io" - "math/big" - "strconv" - "time" - - "golang.org/x/crypto/openpgp/elgamal" - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/s2k" -) - -// PrivateKey represents a possibly encrypted private key. See RFC 4880, -// section 5.5.3. -type PrivateKey struct { - PublicKey - Encrypted bool // if true then the private key is unavailable until Decrypt has been called. - encryptedData []byte - cipher CipherFunction - s2k func(out, in []byte) - PrivateKey interface{} // An *{rsa|dsa|ecdsa}.PrivateKey or crypto.Signer/crypto.Decrypter (Decryptor RSA only). - sha1Checksum bool - iv []byte -} - -func NewRSAPrivateKey(creationTime time.Time, priv *rsa.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewRSAPublicKey(creationTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -func NewDSAPrivateKey(creationTime time.Time, priv *dsa.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewDSAPublicKey(creationTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -func NewElGamalPrivateKey(creationTime time.Time, priv *elgamal.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewElGamalPublicKey(creationTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -func NewECDSAPrivateKey(creationTime time.Time, priv *ecdsa.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewECDSAPublicKey(creationTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -// NewSignerPrivateKey creates a PrivateKey from a crypto.Signer that -// implements RSA or ECDSA. -func NewSignerPrivateKey(creationTime time.Time, signer crypto.Signer) *PrivateKey { - pk := new(PrivateKey) - // In general, the public Keys should be used as pointers. We still - // type-switch on the values, for backwards-compatibility. - switch pubkey := signer.Public().(type) { - case *rsa.PublicKey: - pk.PublicKey = *NewRSAPublicKey(creationTime, pubkey) - case rsa.PublicKey: - pk.PublicKey = *NewRSAPublicKey(creationTime, &pubkey) - case *ecdsa.PublicKey: - pk.PublicKey = *NewECDSAPublicKey(creationTime, pubkey) - case ecdsa.PublicKey: - pk.PublicKey = *NewECDSAPublicKey(creationTime, &pubkey) - default: - panic("openpgp: unknown crypto.Signer type in NewSignerPrivateKey") - } - pk.PrivateKey = signer - return pk -} - -func (pk *PrivateKey) parse(r io.Reader) (err error) { - err = (&pk.PublicKey).parse(r) - if err != nil { - return - } - var buf [1]byte - _, err = readFull(r, buf[:]) - if err != nil { - return - } - - s2kType := buf[0] - - switch s2kType { - case 0: - pk.s2k = nil - pk.Encrypted = false - case 254, 255: - _, err = readFull(r, buf[:]) - if err != nil { - return - } - pk.cipher = CipherFunction(buf[0]) - pk.Encrypted = true - pk.s2k, err = s2k.Parse(r) - if err != nil { - return - } - if s2kType == 254 { - pk.sha1Checksum = true - } - default: - return errors.UnsupportedError("deprecated s2k function in private key") - } - - if pk.Encrypted { - blockSize := pk.cipher.blockSize() - if blockSize == 0 { - return errors.UnsupportedError("unsupported cipher in private key: " + strconv.Itoa(int(pk.cipher))) - } - pk.iv = make([]byte, blockSize) - _, err = readFull(r, pk.iv) - if err != nil { - return - } - } - - pk.encryptedData, err = io.ReadAll(r) - if err != nil { - return - } - - if !pk.Encrypted { - return pk.parsePrivateKey(pk.encryptedData) - } - - return -} - -func mod64kHash(d []byte) uint16 { - var h uint16 - for _, b := range d { - h += uint16(b) - } - return h -} - -func (pk *PrivateKey) Serialize(w io.Writer) (err error) { - // TODO(agl): support encrypted private keys - buf := bytes.NewBuffer(nil) - err = pk.PublicKey.serializeWithoutHeaders(buf) - if err != nil { - return - } - buf.WriteByte(0 /* no encryption */) - - privateKeyBuf := bytes.NewBuffer(nil) - - switch priv := pk.PrivateKey.(type) { - case *rsa.PrivateKey: - err = serializeRSAPrivateKey(privateKeyBuf, priv) - case *dsa.PrivateKey: - err = serializeDSAPrivateKey(privateKeyBuf, priv) - case *elgamal.PrivateKey: - err = serializeElGamalPrivateKey(privateKeyBuf, priv) - case *ecdsa.PrivateKey: - err = serializeECDSAPrivateKey(privateKeyBuf, priv) - default: - err = errors.InvalidArgumentError("unknown private key type") - } - if err != nil { - return - } - - ptype := packetTypePrivateKey - contents := buf.Bytes() - privateKeyBytes := privateKeyBuf.Bytes() - if pk.IsSubkey { - ptype = packetTypePrivateSubkey - } - err = serializeHeader(w, ptype, len(contents)+len(privateKeyBytes)+2) - if err != nil { - return - } - _, err = w.Write(contents) - if err != nil { - return - } - _, err = w.Write(privateKeyBytes) - if err != nil { - return - } - - checksum := mod64kHash(privateKeyBytes) - var checksumBytes [2]byte - checksumBytes[0] = byte(checksum >> 8) - checksumBytes[1] = byte(checksum) - _, err = w.Write(checksumBytes[:]) - - return -} - -func serializeRSAPrivateKey(w io.Writer, priv *rsa.PrivateKey) error { - err := writeBig(w, priv.D) - if err != nil { - return err - } - err = writeBig(w, priv.Primes[1]) - if err != nil { - return err - } - err = writeBig(w, priv.Primes[0]) - if err != nil { - return err - } - return writeBig(w, priv.Precomputed.Qinv) -} - -func serializeDSAPrivateKey(w io.Writer, priv *dsa.PrivateKey) error { - return writeBig(w, priv.X) -} - -func serializeElGamalPrivateKey(w io.Writer, priv *elgamal.PrivateKey) error { - return writeBig(w, priv.X) -} - -func serializeECDSAPrivateKey(w io.Writer, priv *ecdsa.PrivateKey) error { - return writeBig(w, priv.D) -} - -// Decrypt decrypts an encrypted private key using a passphrase. -func (pk *PrivateKey) Decrypt(passphrase []byte) error { - if !pk.Encrypted { - return nil - } - - key := make([]byte, pk.cipher.KeySize()) - pk.s2k(key, passphrase) - block := pk.cipher.new(key) - cfb := cipher.NewCFBDecrypter(block, pk.iv) - - data := make([]byte, len(pk.encryptedData)) - cfb.XORKeyStream(data, pk.encryptedData) - - if pk.sha1Checksum { - if len(data) < sha1.Size { - return errors.StructuralError("truncated private key data") - } - h := sha1.New() - h.Write(data[:len(data)-sha1.Size]) - sum := h.Sum(nil) - if !bytes.Equal(sum, data[len(data)-sha1.Size:]) { - return errors.StructuralError("private key checksum failure") - } - data = data[:len(data)-sha1.Size] - } else { - if len(data) < 2 { - return errors.StructuralError("truncated private key data") - } - var sum uint16 - for i := 0; i < len(data)-2; i++ { - sum += uint16(data[i]) - } - if data[len(data)-2] != uint8(sum>>8) || - data[len(data)-1] != uint8(sum) { - return errors.StructuralError("private key checksum failure") - } - data = data[:len(data)-2] - } - - return pk.parsePrivateKey(data) -} - -func (pk *PrivateKey) parsePrivateKey(data []byte) (err error) { - switch pk.PublicKey.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoRSAEncryptOnly: - return pk.parseRSAPrivateKey(data) - case PubKeyAlgoDSA: - return pk.parseDSAPrivateKey(data) - case PubKeyAlgoElGamal: - return pk.parseElGamalPrivateKey(data) - case PubKeyAlgoECDSA: - return pk.parseECDSAPrivateKey(data) - } - panic("impossible") -} - -func (pk *PrivateKey) parseRSAPrivateKey(data []byte) (err error) { - rsaPub := pk.PublicKey.PublicKey.(*rsa.PublicKey) - rsaPriv := new(rsa.PrivateKey) - rsaPriv.PublicKey = *rsaPub - - buf := bytes.NewBuffer(data) - d, _, err := readMPI(buf) - if err != nil { - return - } - p, _, err := readMPI(buf) - if err != nil { - return - } - q, _, err := readMPI(buf) - if err != nil { - return - } - - rsaPriv.D = new(big.Int).SetBytes(d) - rsaPriv.Primes = make([]*big.Int, 2) - rsaPriv.Primes[0] = new(big.Int).SetBytes(p) - rsaPriv.Primes[1] = new(big.Int).SetBytes(q) - if err := rsaPriv.Validate(); err != nil { - return err - } - rsaPriv.Precompute() - pk.PrivateKey = rsaPriv - pk.Encrypted = false - pk.encryptedData = nil - - return nil -} - -func (pk *PrivateKey) parseDSAPrivateKey(data []byte) (err error) { - dsaPub := pk.PublicKey.PublicKey.(*dsa.PublicKey) - dsaPriv := new(dsa.PrivateKey) - dsaPriv.PublicKey = *dsaPub - - buf := bytes.NewBuffer(data) - x, _, err := readMPI(buf) - if err != nil { - return - } - - dsaPriv.X = new(big.Int).SetBytes(x) - pk.PrivateKey = dsaPriv - pk.Encrypted = false - pk.encryptedData = nil - - return nil -} - -func (pk *PrivateKey) parseElGamalPrivateKey(data []byte) (err error) { - pub := pk.PublicKey.PublicKey.(*elgamal.PublicKey) - priv := new(elgamal.PrivateKey) - priv.PublicKey = *pub - - buf := bytes.NewBuffer(data) - x, _, err := readMPI(buf) - if err != nil { - return - } - - priv.X = new(big.Int).SetBytes(x) - pk.PrivateKey = priv - pk.Encrypted = false - pk.encryptedData = nil - - return nil -} - -func (pk *PrivateKey) parseECDSAPrivateKey(data []byte) (err error) { - ecdsaPub := pk.PublicKey.PublicKey.(*ecdsa.PublicKey) - - buf := bytes.NewBuffer(data) - d, _, err := readMPI(buf) - if err != nil { - return - } - - pk.PrivateKey = &ecdsa.PrivateKey{ - PublicKey: *ecdsaPub, - D: new(big.Int).SetBytes(d), - } - pk.Encrypted = false - pk.encryptedData = nil - - return nil -} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/public_key.go b/vendor/golang.org/x/crypto/openpgp/packet/public_key.go deleted file mode 100644 index fcd5f5251963..000000000000 --- a/vendor/golang.org/x/crypto/openpgp/packet/public_key.go +++ /dev/null @@ -1,753 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "bytes" - "crypto" - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rsa" - "crypto/sha1" - _ "crypto/sha256" - _ "crypto/sha512" - "encoding/binary" - "fmt" - "hash" - "io" - "math/big" - "strconv" - "time" - - "golang.org/x/crypto/openpgp/elgamal" - "golang.org/x/crypto/openpgp/errors" -) - -var ( - // NIST curve P-256 - oidCurveP256 []byte = []byte{0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07} - // NIST curve P-384 - oidCurveP384 []byte = []byte{0x2B, 0x81, 0x04, 0x00, 0x22} - // NIST curve P-521 - oidCurveP521 []byte = []byte{0x2B, 0x81, 0x04, 0x00, 0x23} -) - -const maxOIDLength = 8 - -// ecdsaKey stores the algorithm-specific fields for ECDSA keys. -// as defined in RFC 6637, Section 9. -type ecdsaKey struct { - // oid contains the OID byte sequence identifying the elliptic curve used - oid []byte - // p contains the elliptic curve point that represents the public key - p parsedMPI -} - -// parseOID reads the OID for the curve as defined in RFC 6637, Section 9. -func parseOID(r io.Reader) (oid []byte, err error) { - buf := make([]byte, maxOIDLength) - if _, err = readFull(r, buf[:1]); err != nil { - return - } - oidLen := buf[0] - if int(oidLen) > len(buf) { - err = errors.UnsupportedError("invalid oid length: " + strconv.Itoa(int(oidLen))) - return - } - oid = buf[:oidLen] - _, err = readFull(r, oid) - return -} - -func (f *ecdsaKey) parse(r io.Reader) (err error) { - if f.oid, err = parseOID(r); err != nil { - return err - } - f.p.bytes, f.p.bitLength, err = readMPI(r) - return -} - -func (f *ecdsaKey) serialize(w io.Writer) (err error) { - buf := make([]byte, maxOIDLength+1) - buf[0] = byte(len(f.oid)) - copy(buf[1:], f.oid) - if _, err = w.Write(buf[:len(f.oid)+1]); err != nil { - return - } - return writeMPIs(w, f.p) -} - -func (f *ecdsaKey) newECDSA() (*ecdsa.PublicKey, error) { - var c elliptic.Curve - if bytes.Equal(f.oid, oidCurveP256) { - c = elliptic.P256() - } else if bytes.Equal(f.oid, oidCurveP384) { - c = elliptic.P384() - } else if bytes.Equal(f.oid, oidCurveP521) { - c = elliptic.P521() - } else { - return nil, errors.UnsupportedError(fmt.Sprintf("unsupported oid: %x", f.oid)) - } - x, y := elliptic.Unmarshal(c, f.p.bytes) - if x == nil { - return nil, errors.UnsupportedError("failed to parse EC point") - } - return &ecdsa.PublicKey{Curve: c, X: x, Y: y}, nil -} - -func (f *ecdsaKey) byteLen() int { - return 1 + len(f.oid) + 2 + len(f.p.bytes) -} - -type kdfHashFunction byte -type kdfAlgorithm byte - -// ecdhKdf stores key derivation function parameters -// used for ECDH encryption. See RFC 6637, Section 9. -type ecdhKdf struct { - KdfHash kdfHashFunction - KdfAlgo kdfAlgorithm -} - -func (f *ecdhKdf) parse(r io.Reader) (err error) { - buf := make([]byte, 1) - if _, err = readFull(r, buf); err != nil { - return - } - kdfLen := int(buf[0]) - if kdfLen < 3 { - return errors.UnsupportedError("Unsupported ECDH KDF length: " + strconv.Itoa(kdfLen)) - } - buf = make([]byte, kdfLen) - if _, err = readFull(r, buf); err != nil { - return - } - reserved := int(buf[0]) - f.KdfHash = kdfHashFunction(buf[1]) - f.KdfAlgo = kdfAlgorithm(buf[2]) - if reserved != 0x01 { - return errors.UnsupportedError("Unsupported KDF reserved field: " + strconv.Itoa(reserved)) - } - return -} - -func (f *ecdhKdf) serialize(w io.Writer) (err error) { - buf := make([]byte, 4) - // See RFC 6637, Section 9, Algorithm-Specific Fields for ECDH keys. - buf[0] = byte(0x03) // Length of the following fields - buf[1] = byte(0x01) // Reserved for future extensions, must be 1 for now - buf[2] = byte(f.KdfHash) - buf[3] = byte(f.KdfAlgo) - _, err = w.Write(buf[:]) - return -} - -func (f *ecdhKdf) byteLen() int { - return 4 -} - -// PublicKey represents an OpenPGP public key. See RFC 4880, section 5.5.2. -type PublicKey struct { - CreationTime time.Time - PubKeyAlgo PublicKeyAlgorithm - PublicKey interface{} // *rsa.PublicKey, *dsa.PublicKey or *ecdsa.PublicKey - Fingerprint [20]byte - KeyId uint64 - IsSubkey bool - - n, e, p, q, g, y parsedMPI - - // RFC 6637 fields - ec *ecdsaKey - ecdh *ecdhKdf -} - -// signingKey provides a convenient abstraction over signature verification -// for v3 and v4 public keys. -type signingKey interface { - SerializeSignaturePrefix(io.Writer) - serializeWithoutHeaders(io.Writer) error -} - -func fromBig(n *big.Int) parsedMPI { - return parsedMPI{ - bytes: n.Bytes(), - bitLength: uint16(n.BitLen()), - } -} - -// NewRSAPublicKey returns a PublicKey that wraps the given rsa.PublicKey. -func NewRSAPublicKey(creationTime time.Time, pub *rsa.PublicKey) *PublicKey { - pk := &PublicKey{ - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoRSA, - PublicKey: pub, - n: fromBig(pub.N), - e: fromBig(big.NewInt(int64(pub.E))), - } - - pk.setFingerPrintAndKeyId() - return pk -} - -// NewDSAPublicKey returns a PublicKey that wraps the given dsa.PublicKey. -func NewDSAPublicKey(creationTime time.Time, pub *dsa.PublicKey) *PublicKey { - pk := &PublicKey{ - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoDSA, - PublicKey: pub, - p: fromBig(pub.P), - q: fromBig(pub.Q), - g: fromBig(pub.G), - y: fromBig(pub.Y), - } - - pk.setFingerPrintAndKeyId() - return pk -} - -// NewElGamalPublicKey returns a PublicKey that wraps the given elgamal.PublicKey. -func NewElGamalPublicKey(creationTime time.Time, pub *elgamal.PublicKey) *PublicKey { - pk := &PublicKey{ - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoElGamal, - PublicKey: pub, - p: fromBig(pub.P), - g: fromBig(pub.G), - y: fromBig(pub.Y), - } - - pk.setFingerPrintAndKeyId() - return pk -} - -func NewECDSAPublicKey(creationTime time.Time, pub *ecdsa.PublicKey) *PublicKey { - pk := &PublicKey{ - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoECDSA, - PublicKey: pub, - ec: new(ecdsaKey), - } - - switch pub.Curve { - case elliptic.P256(): - pk.ec.oid = oidCurveP256 - case elliptic.P384(): - pk.ec.oid = oidCurveP384 - case elliptic.P521(): - pk.ec.oid = oidCurveP521 - default: - panic("unknown elliptic curve") - } - - pk.ec.p.bytes = elliptic.Marshal(pub.Curve, pub.X, pub.Y) - - // The bit length is 3 (for the 0x04 specifying an uncompressed key) - // plus two field elements (for x and y), which are rounded up to the - // nearest byte. See https://tools.ietf.org/html/rfc6637#section-6 - fieldBytes := (pub.Curve.Params().BitSize + 7) & ^7 - pk.ec.p.bitLength = uint16(3 + fieldBytes + fieldBytes) - - pk.setFingerPrintAndKeyId() - return pk -} - -func (pk *PublicKey) parse(r io.Reader) (err error) { - // RFC 4880, section 5.5.2 - var buf [6]byte - _, err = readFull(r, buf[:]) - if err != nil { - return - } - if buf[0] != 4 { - return errors.UnsupportedError("public key version") - } - pk.CreationTime = time.Unix(int64(uint32(buf[1])<<24|uint32(buf[2])<<16|uint32(buf[3])<<8|uint32(buf[4])), 0) - pk.PubKeyAlgo = PublicKeyAlgorithm(buf[5]) - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - err = pk.parseRSA(r) - case PubKeyAlgoDSA: - err = pk.parseDSA(r) - case PubKeyAlgoElGamal: - err = pk.parseElGamal(r) - case PubKeyAlgoECDSA: - pk.ec = new(ecdsaKey) - if err = pk.ec.parse(r); err != nil { - return err - } - pk.PublicKey, err = pk.ec.newECDSA() - case PubKeyAlgoECDH: - pk.ec = new(ecdsaKey) - if err = pk.ec.parse(r); err != nil { - return - } - pk.ecdh = new(ecdhKdf) - if err = pk.ecdh.parse(r); err != nil { - return - } - // The ECDH key is stored in an ecdsa.PublicKey for convenience. - pk.PublicKey, err = pk.ec.newECDSA() - default: - err = errors.UnsupportedError("public key type: " + strconv.Itoa(int(pk.PubKeyAlgo))) - } - if err != nil { - return - } - - pk.setFingerPrintAndKeyId() - return -} - -func (pk *PublicKey) setFingerPrintAndKeyId() { - // RFC 4880, section 12.2 - fingerPrint := sha1.New() - pk.SerializeSignaturePrefix(fingerPrint) - pk.serializeWithoutHeaders(fingerPrint) - copy(pk.Fingerprint[:], fingerPrint.Sum(nil)) - pk.KeyId = binary.BigEndian.Uint64(pk.Fingerprint[12:20]) -} - -// parseRSA parses RSA public key material from the given Reader. See RFC 4880, -// section 5.5.2. -func (pk *PublicKey) parseRSA(r io.Reader) (err error) { - pk.n.bytes, pk.n.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.e.bytes, pk.e.bitLength, err = readMPI(r) - if err != nil { - return - } - - if len(pk.e.bytes) > 3 { - err = errors.UnsupportedError("large public exponent") - return - } - rsa := &rsa.PublicKey{ - N: new(big.Int).SetBytes(pk.n.bytes), - E: 0, - } - for i := 0; i < len(pk.e.bytes); i++ { - rsa.E <<= 8 - rsa.E |= int(pk.e.bytes[i]) - } - pk.PublicKey = rsa - return -} - -// parseDSA parses DSA public key material from the given Reader. See RFC 4880, -// section 5.5.2. -func (pk *PublicKey) parseDSA(r io.Reader) (err error) { - pk.p.bytes, pk.p.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.q.bytes, pk.q.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.g.bytes, pk.g.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.y.bytes, pk.y.bitLength, err = readMPI(r) - if err != nil { - return - } - - dsa := new(dsa.PublicKey) - dsa.P = new(big.Int).SetBytes(pk.p.bytes) - dsa.Q = new(big.Int).SetBytes(pk.q.bytes) - dsa.G = new(big.Int).SetBytes(pk.g.bytes) - dsa.Y = new(big.Int).SetBytes(pk.y.bytes) - pk.PublicKey = dsa - return -} - -// parseElGamal parses ElGamal public key material from the given Reader. See -// RFC 4880, section 5.5.2. -func (pk *PublicKey) parseElGamal(r io.Reader) (err error) { - pk.p.bytes, pk.p.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.g.bytes, pk.g.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.y.bytes, pk.y.bitLength, err = readMPI(r) - if err != nil { - return - } - - elgamal := new(elgamal.PublicKey) - elgamal.P = new(big.Int).SetBytes(pk.p.bytes) - elgamal.G = new(big.Int).SetBytes(pk.g.bytes) - elgamal.Y = new(big.Int).SetBytes(pk.y.bytes) - pk.PublicKey = elgamal - return -} - -// SerializeSignaturePrefix writes the prefix for this public key to the given Writer. -// The prefix is used when calculating a signature over this public key. See -// RFC 4880, section 5.2.4. -func (pk *PublicKey) SerializeSignaturePrefix(h io.Writer) { - var pLength uint16 - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - pLength += 2 + uint16(len(pk.n.bytes)) - pLength += 2 + uint16(len(pk.e.bytes)) - case PubKeyAlgoDSA: - pLength += 2 + uint16(len(pk.p.bytes)) - pLength += 2 + uint16(len(pk.q.bytes)) - pLength += 2 + uint16(len(pk.g.bytes)) - pLength += 2 + uint16(len(pk.y.bytes)) - case PubKeyAlgoElGamal: - pLength += 2 + uint16(len(pk.p.bytes)) - pLength += 2 + uint16(len(pk.g.bytes)) - pLength += 2 + uint16(len(pk.y.bytes)) - case PubKeyAlgoECDSA: - pLength += uint16(pk.ec.byteLen()) - case PubKeyAlgoECDH: - pLength += uint16(pk.ec.byteLen()) - pLength += uint16(pk.ecdh.byteLen()) - default: - panic("unknown public key algorithm") - } - pLength += 6 - h.Write([]byte{0x99, byte(pLength >> 8), byte(pLength)}) - return -} - -func (pk *PublicKey) Serialize(w io.Writer) (err error) { - length := 6 // 6 byte header - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - length += 2 + len(pk.n.bytes) - length += 2 + len(pk.e.bytes) - case PubKeyAlgoDSA: - length += 2 + len(pk.p.bytes) - length += 2 + len(pk.q.bytes) - length += 2 + len(pk.g.bytes) - length += 2 + len(pk.y.bytes) - case PubKeyAlgoElGamal: - length += 2 + len(pk.p.bytes) - length += 2 + len(pk.g.bytes) - length += 2 + len(pk.y.bytes) - case PubKeyAlgoECDSA: - length += pk.ec.byteLen() - case PubKeyAlgoECDH: - length += pk.ec.byteLen() - length += pk.ecdh.byteLen() - default: - panic("unknown public key algorithm") - } - - packetType := packetTypePublicKey - if pk.IsSubkey { - packetType = packetTypePublicSubkey - } - err = serializeHeader(w, packetType, length) - if err != nil { - return - } - return pk.serializeWithoutHeaders(w) -} - -// serializeWithoutHeaders marshals the PublicKey to w in the form of an -// OpenPGP public key packet, not including the packet header. -func (pk *PublicKey) serializeWithoutHeaders(w io.Writer) (err error) { - var buf [6]byte - buf[0] = 4 - t := uint32(pk.CreationTime.Unix()) - buf[1] = byte(t >> 24) - buf[2] = byte(t >> 16) - buf[3] = byte(t >> 8) - buf[4] = byte(t) - buf[5] = byte(pk.PubKeyAlgo) - - _, err = w.Write(buf[:]) - if err != nil { - return - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - return writeMPIs(w, pk.n, pk.e) - case PubKeyAlgoDSA: - return writeMPIs(w, pk.p, pk.q, pk.g, pk.y) - case PubKeyAlgoElGamal: - return writeMPIs(w, pk.p, pk.g, pk.y) - case PubKeyAlgoECDSA: - return pk.ec.serialize(w) - case PubKeyAlgoECDH: - if err = pk.ec.serialize(w); err != nil { - return - } - return pk.ecdh.serialize(w) - } - return errors.InvalidArgumentError("bad public-key algorithm") -} - -// CanSign returns true iff this public key can generate signatures -func (pk *PublicKey) CanSign() bool { - return pk.PubKeyAlgo != PubKeyAlgoRSAEncryptOnly && pk.PubKeyAlgo != PubKeyAlgoElGamal -} - -// VerifySignature returns nil iff sig is a valid signature, made by this -// public key, of the data hashed into signed. signed is mutated by this call. -func (pk *PublicKey) VerifySignature(signed hash.Hash, sig *Signature) (err error) { - if !pk.CanSign() { - return errors.InvalidArgumentError("public key cannot generate signatures") - } - - signed.Write(sig.HashSuffix) - hashBytes := signed.Sum(nil) - - if hashBytes[0] != sig.HashTag[0] || hashBytes[1] != sig.HashTag[1] { - return errors.SignatureError("hash tag doesn't match") - } - - if pk.PubKeyAlgo != sig.PubKeyAlgo { - return errors.InvalidArgumentError("public key and signature use different algorithms") - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - rsaPublicKey, _ := pk.PublicKey.(*rsa.PublicKey) - err = rsa.VerifyPKCS1v15(rsaPublicKey, sig.Hash, hashBytes, padToKeySize(rsaPublicKey, sig.RSASignature.bytes)) - if err != nil { - return errors.SignatureError("RSA verification failure") - } - return nil - case PubKeyAlgoDSA: - dsaPublicKey, _ := pk.PublicKey.(*dsa.PublicKey) - // Need to truncate hashBytes to match FIPS 186-3 section 4.6. - subgroupSize := (dsaPublicKey.Q.BitLen() + 7) / 8 - if len(hashBytes) > subgroupSize { - hashBytes = hashBytes[:subgroupSize] - } - if !dsa.Verify(dsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.DSASigR.bytes), new(big.Int).SetBytes(sig.DSASigS.bytes)) { - return errors.SignatureError("DSA verification failure") - } - return nil - case PubKeyAlgoECDSA: - ecdsaPublicKey := pk.PublicKey.(*ecdsa.PublicKey) - if !ecdsa.Verify(ecdsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.ECDSASigR.bytes), new(big.Int).SetBytes(sig.ECDSASigS.bytes)) { - return errors.SignatureError("ECDSA verification failure") - } - return nil - default: - return errors.SignatureError("Unsupported public key algorithm used in signature") - } -} - -// VerifySignatureV3 returns nil iff sig is a valid signature, made by this -// public key, of the data hashed into signed. signed is mutated by this call. -func (pk *PublicKey) VerifySignatureV3(signed hash.Hash, sig *SignatureV3) (err error) { - if !pk.CanSign() { - return errors.InvalidArgumentError("public key cannot generate signatures") - } - - suffix := make([]byte, 5) - suffix[0] = byte(sig.SigType) - binary.BigEndian.PutUint32(suffix[1:], uint32(sig.CreationTime.Unix())) - signed.Write(suffix) - hashBytes := signed.Sum(nil) - - if hashBytes[0] != sig.HashTag[0] || hashBytes[1] != sig.HashTag[1] { - return errors.SignatureError("hash tag doesn't match") - } - - if pk.PubKeyAlgo != sig.PubKeyAlgo { - return errors.InvalidArgumentError("public key and signature use different algorithms") - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - rsaPublicKey := pk.PublicKey.(*rsa.PublicKey) - if err = rsa.VerifyPKCS1v15(rsaPublicKey, sig.Hash, hashBytes, padToKeySize(rsaPublicKey, sig.RSASignature.bytes)); err != nil { - return errors.SignatureError("RSA verification failure") - } - return - case PubKeyAlgoDSA: - dsaPublicKey := pk.PublicKey.(*dsa.PublicKey) - // Need to truncate hashBytes to match FIPS 186-3 section 4.6. - subgroupSize := (dsaPublicKey.Q.BitLen() + 7) / 8 - if len(hashBytes) > subgroupSize { - hashBytes = hashBytes[:subgroupSize] - } - if !dsa.Verify(dsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.DSASigR.bytes), new(big.Int).SetBytes(sig.DSASigS.bytes)) { - return errors.SignatureError("DSA verification failure") - } - return nil - default: - panic("shouldn't happen") - } -} - -// keySignatureHash returns a Hash of the message that needs to be signed for -// pk to assert a subkey relationship to signed. -func keySignatureHash(pk, signed signingKey, hashFunc crypto.Hash) (h hash.Hash, err error) { - if !hashFunc.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hashFunc.New() - - // RFC 4880, section 5.2.4 - pk.SerializeSignaturePrefix(h) - pk.serializeWithoutHeaders(h) - signed.SerializeSignaturePrefix(h) - signed.serializeWithoutHeaders(h) - return -} - -// VerifyKeySignature returns nil iff sig is a valid signature, made by this -// public key, of signed. -func (pk *PublicKey) VerifyKeySignature(signed *PublicKey, sig *Signature) error { - h, err := keySignatureHash(pk, signed, sig.Hash) - if err != nil { - return err - } - if err = pk.VerifySignature(h, sig); err != nil { - return err - } - - if sig.FlagSign { - // Signing subkeys must be cross-signed. See - // https://www.gnupg.org/faq/subkey-cross-certify.html. - if sig.EmbeddedSignature == nil { - return errors.StructuralError("signing subkey is missing cross-signature") - } - // Verify the cross-signature. This is calculated over the same - // data as the main signature, so we cannot just recursively - // call signed.VerifyKeySignature(...) - if h, err = keySignatureHash(pk, signed, sig.EmbeddedSignature.Hash); err != nil { - return errors.StructuralError("error while hashing for cross-signature: " + err.Error()) - } - if err := signed.VerifySignature(h, sig.EmbeddedSignature); err != nil { - return errors.StructuralError("error while verifying cross-signature: " + err.Error()) - } - } - - return nil -} - -func keyRevocationHash(pk signingKey, hashFunc crypto.Hash) (h hash.Hash, err error) { - if !hashFunc.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hashFunc.New() - - // RFC 4880, section 5.2.4 - pk.SerializeSignaturePrefix(h) - pk.serializeWithoutHeaders(h) - - return -} - -// VerifyRevocationSignature returns nil iff sig is a valid signature, made by this -// public key. -func (pk *PublicKey) VerifyRevocationSignature(sig *Signature) (err error) { - h, err := keyRevocationHash(pk, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignature(h, sig) -} - -// userIdSignatureHash returns a Hash of the message that needs to be signed -// to assert that pk is a valid key for id. -func userIdSignatureHash(id string, pk *PublicKey, hashFunc crypto.Hash) (h hash.Hash, err error) { - if !hashFunc.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hashFunc.New() - - // RFC 4880, section 5.2.4 - pk.SerializeSignaturePrefix(h) - pk.serializeWithoutHeaders(h) - - var buf [5]byte - buf[0] = 0xb4 - buf[1] = byte(len(id) >> 24) - buf[2] = byte(len(id) >> 16) - buf[3] = byte(len(id) >> 8) - buf[4] = byte(len(id)) - h.Write(buf[:]) - h.Write([]byte(id)) - - return -} - -// VerifyUserIdSignature returns nil iff sig is a valid signature, made by this -// public key, that id is the identity of pub. -func (pk *PublicKey) VerifyUserIdSignature(id string, pub *PublicKey, sig *Signature) (err error) { - h, err := userIdSignatureHash(id, pub, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignature(h, sig) -} - -// VerifyUserIdSignatureV3 returns nil iff sig is a valid signature, made by this -// public key, that id is the identity of pub. -func (pk *PublicKey) VerifyUserIdSignatureV3(id string, pub *PublicKey, sig *SignatureV3) (err error) { - h, err := userIdSignatureV3Hash(id, pub, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignatureV3(h, sig) -} - -// KeyIdString returns the public key's fingerprint in capital hex -// (e.g. "6C7EE1B8621CC013"). -func (pk *PublicKey) KeyIdString() string { - return fmt.Sprintf("%X", pk.Fingerprint[12:20]) -} - -// KeyIdShortString returns the short form of public key's fingerprint -// in capital hex, as shown by gpg --list-keys (e.g. "621CC013"). -func (pk *PublicKey) KeyIdShortString() string { - return fmt.Sprintf("%X", pk.Fingerprint[16:20]) -} - -// A parsedMPI is used to store the contents of a big integer, along with the -// bit length that was specified in the original input. This allows the MPI to -// be reserialized exactly. -type parsedMPI struct { - bytes []byte - bitLength uint16 -} - -// writeMPIs is a utility function for serializing several big integers to the -// given Writer. -func writeMPIs(w io.Writer, mpis ...parsedMPI) (err error) { - for _, mpi := range mpis { - err = writeMPI(w, mpi.bitLength, mpi.bytes) - if err != nil { - return - } - } - return -} - -// BitLength returns the bit length for the given public key. -func (pk *PublicKey) BitLength() (bitLength uint16, err error) { - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - bitLength = pk.n.bitLength - case PubKeyAlgoDSA: - bitLength = pk.p.bitLength - case PubKeyAlgoElGamal: - bitLength = pk.p.bitLength - default: - err = errors.InvalidArgumentError("bad public-key algorithm") - } - return -} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/public_key_v3.go b/vendor/golang.org/x/crypto/openpgp/packet/public_key_v3.go deleted file mode 100644 index 5daf7b6cfd4a..000000000000 --- a/vendor/golang.org/x/crypto/openpgp/packet/public_key_v3.go +++ /dev/null @@ -1,279 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "crypto" - "crypto/md5" - "crypto/rsa" - "encoding/binary" - "fmt" - "hash" - "io" - "math/big" - "strconv" - "time" - - "golang.org/x/crypto/openpgp/errors" -) - -// PublicKeyV3 represents older, version 3 public keys. These keys are less secure and -// should not be used for signing or encrypting. They are supported here only for -// parsing version 3 key material and validating signatures. -// See RFC 4880, section 5.5.2. -type PublicKeyV3 struct { - CreationTime time.Time - DaysToExpire uint16 - PubKeyAlgo PublicKeyAlgorithm - PublicKey *rsa.PublicKey - Fingerprint [16]byte - KeyId uint64 - IsSubkey bool - - n, e parsedMPI -} - -// newRSAPublicKeyV3 returns a PublicKey that wraps the given rsa.PublicKey. -// Included here for testing purposes only. RFC 4880, section 5.5.2: -// "an implementation MUST NOT generate a V3 key, but MAY accept it." -func newRSAPublicKeyV3(creationTime time.Time, pub *rsa.PublicKey) *PublicKeyV3 { - pk := &PublicKeyV3{ - CreationTime: creationTime, - PublicKey: pub, - n: fromBig(pub.N), - e: fromBig(big.NewInt(int64(pub.E))), - } - - pk.setFingerPrintAndKeyId() - return pk -} - -func (pk *PublicKeyV3) parse(r io.Reader) (err error) { - // RFC 4880, section 5.5.2 - var buf [8]byte - if _, err = readFull(r, buf[:]); err != nil { - return - } - if buf[0] < 2 || buf[0] > 3 { - return errors.UnsupportedError("public key version") - } - pk.CreationTime = time.Unix(int64(uint32(buf[1])<<24|uint32(buf[2])<<16|uint32(buf[3])<<8|uint32(buf[4])), 0) - pk.DaysToExpire = binary.BigEndian.Uint16(buf[5:7]) - pk.PubKeyAlgo = PublicKeyAlgorithm(buf[7]) - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - err = pk.parseRSA(r) - default: - err = errors.UnsupportedError("public key type: " + strconv.Itoa(int(pk.PubKeyAlgo))) - } - if err != nil { - return - } - - pk.setFingerPrintAndKeyId() - return -} - -func (pk *PublicKeyV3) setFingerPrintAndKeyId() { - // RFC 4880, section 12.2 - fingerPrint := md5.New() - fingerPrint.Write(pk.n.bytes) - fingerPrint.Write(pk.e.bytes) - fingerPrint.Sum(pk.Fingerprint[:0]) - pk.KeyId = binary.BigEndian.Uint64(pk.n.bytes[len(pk.n.bytes)-8:]) -} - -// parseRSA parses RSA public key material from the given Reader. See RFC 4880, -// section 5.5.2. -func (pk *PublicKeyV3) parseRSA(r io.Reader) (err error) { - if pk.n.bytes, pk.n.bitLength, err = readMPI(r); err != nil { - return - } - if pk.e.bytes, pk.e.bitLength, err = readMPI(r); err != nil { - return - } - - // RFC 4880 Section 12.2 requires the low 8 bytes of the - // modulus to form the key id. - if len(pk.n.bytes) < 8 { - return errors.StructuralError("v3 public key modulus is too short") - } - if len(pk.e.bytes) > 3 { - err = errors.UnsupportedError("large public exponent") - return - } - rsa := &rsa.PublicKey{N: new(big.Int).SetBytes(pk.n.bytes)} - for i := 0; i < len(pk.e.bytes); i++ { - rsa.E <<= 8 - rsa.E |= int(pk.e.bytes[i]) - } - pk.PublicKey = rsa - return -} - -// SerializeSignaturePrefix writes the prefix for this public key to the given Writer. -// The prefix is used when calculating a signature over this public key. See -// RFC 4880, section 5.2.4. -func (pk *PublicKeyV3) SerializeSignaturePrefix(w io.Writer) { - var pLength uint16 - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - pLength += 2 + uint16(len(pk.n.bytes)) - pLength += 2 + uint16(len(pk.e.bytes)) - default: - panic("unknown public key algorithm") - } - pLength += 6 - w.Write([]byte{0x99, byte(pLength >> 8), byte(pLength)}) - return -} - -func (pk *PublicKeyV3) Serialize(w io.Writer) (err error) { - length := 8 // 8 byte header - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - length += 2 + len(pk.n.bytes) - length += 2 + len(pk.e.bytes) - default: - panic("unknown public key algorithm") - } - - packetType := packetTypePublicKey - if pk.IsSubkey { - packetType = packetTypePublicSubkey - } - if err = serializeHeader(w, packetType, length); err != nil { - return - } - return pk.serializeWithoutHeaders(w) -} - -// serializeWithoutHeaders marshals the PublicKey to w in the form of an -// OpenPGP public key packet, not including the packet header. -func (pk *PublicKeyV3) serializeWithoutHeaders(w io.Writer) (err error) { - var buf [8]byte - // Version 3 - buf[0] = 3 - // Creation time - t := uint32(pk.CreationTime.Unix()) - buf[1] = byte(t >> 24) - buf[2] = byte(t >> 16) - buf[3] = byte(t >> 8) - buf[4] = byte(t) - // Days to expire - buf[5] = byte(pk.DaysToExpire >> 8) - buf[6] = byte(pk.DaysToExpire) - // Public key algorithm - buf[7] = byte(pk.PubKeyAlgo) - - if _, err = w.Write(buf[:]); err != nil { - return - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - return writeMPIs(w, pk.n, pk.e) - } - return errors.InvalidArgumentError("bad public-key algorithm") -} - -// CanSign returns true iff this public key can generate signatures -func (pk *PublicKeyV3) CanSign() bool { - return pk.PubKeyAlgo != PubKeyAlgoRSAEncryptOnly -} - -// VerifySignatureV3 returns nil iff sig is a valid signature, made by this -// public key, of the data hashed into signed. signed is mutated by this call. -func (pk *PublicKeyV3) VerifySignatureV3(signed hash.Hash, sig *SignatureV3) (err error) { - if !pk.CanSign() { - return errors.InvalidArgumentError("public key cannot generate signatures") - } - - suffix := make([]byte, 5) - suffix[0] = byte(sig.SigType) - binary.BigEndian.PutUint32(suffix[1:], uint32(sig.CreationTime.Unix())) - signed.Write(suffix) - hashBytes := signed.Sum(nil) - - if hashBytes[0] != sig.HashTag[0] || hashBytes[1] != sig.HashTag[1] { - return errors.SignatureError("hash tag doesn't match") - } - - if pk.PubKeyAlgo != sig.PubKeyAlgo { - return errors.InvalidArgumentError("public key and signature use different algorithms") - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - if err = rsa.VerifyPKCS1v15(pk.PublicKey, sig.Hash, hashBytes, sig.RSASignature.bytes); err != nil { - return errors.SignatureError("RSA verification failure") - } - return - default: - // V3 public keys only support RSA. - panic("shouldn't happen") - } -} - -// VerifyUserIdSignatureV3 returns nil iff sig is a valid signature, made by this -// public key, that id is the identity of pub. -func (pk *PublicKeyV3) VerifyUserIdSignatureV3(id string, pub *PublicKeyV3, sig *SignatureV3) (err error) { - h, err := userIdSignatureV3Hash(id, pk, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignatureV3(h, sig) -} - -// VerifyKeySignatureV3 returns nil iff sig is a valid signature, made by this -// public key, of signed. -func (pk *PublicKeyV3) VerifyKeySignatureV3(signed *PublicKeyV3, sig *SignatureV3) (err error) { - h, err := keySignatureHash(pk, signed, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignatureV3(h, sig) -} - -// userIdSignatureV3Hash returns a Hash of the message that needs to be signed -// to assert that pk is a valid key for id. -func userIdSignatureV3Hash(id string, pk signingKey, hfn crypto.Hash) (h hash.Hash, err error) { - if !hfn.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hfn.New() - - // RFC 4880, section 5.2.4 - pk.SerializeSignaturePrefix(h) - pk.serializeWithoutHeaders(h) - - h.Write([]byte(id)) - - return -} - -// KeyIdString returns the public key's fingerprint in capital hex -// (e.g. "6C7EE1B8621CC013"). -func (pk *PublicKeyV3) KeyIdString() string { - return fmt.Sprintf("%X", pk.KeyId) -} - -// KeyIdShortString returns the short form of public key's fingerprint -// in capital hex, as shown by gpg --list-keys (e.g. "621CC013"). -func (pk *PublicKeyV3) KeyIdShortString() string { - return fmt.Sprintf("%X", pk.KeyId&0xFFFFFFFF) -} - -// BitLength returns the bit length for the given public key. -func (pk *PublicKeyV3) BitLength() (bitLength uint16, err error) { - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - bitLength = pk.n.bitLength - default: - err = errors.InvalidArgumentError("bad public-key algorithm") - } - return -} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/signature_v3.go b/vendor/golang.org/x/crypto/openpgp/packet/signature_v3.go deleted file mode 100644 index 6edff889349b..000000000000 --- a/vendor/golang.org/x/crypto/openpgp/packet/signature_v3.go +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "crypto" - "encoding/binary" - "fmt" - "io" - "strconv" - "time" - - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/s2k" -) - -// SignatureV3 represents older version 3 signatures. These signatures are less secure -// than version 4 and should not be used to create new signatures. They are included -// here for backwards compatibility to read and validate with older key material. -// See RFC 4880, section 5.2.2. -type SignatureV3 struct { - SigType SignatureType - CreationTime time.Time - IssuerKeyId uint64 - PubKeyAlgo PublicKeyAlgorithm - Hash crypto.Hash - HashTag [2]byte - - RSASignature parsedMPI - DSASigR, DSASigS parsedMPI -} - -func (sig *SignatureV3) parse(r io.Reader) (err error) { - // RFC 4880, section 5.2.2 - var buf [8]byte - if _, err = readFull(r, buf[:1]); err != nil { - return - } - if buf[0] < 2 || buf[0] > 3 { - err = errors.UnsupportedError("signature packet version " + strconv.Itoa(int(buf[0]))) - return - } - if _, err = readFull(r, buf[:1]); err != nil { - return - } - if buf[0] != 5 { - err = errors.UnsupportedError( - "invalid hashed material length " + strconv.Itoa(int(buf[0]))) - return - } - - // Read hashed material: signature type + creation time - if _, err = readFull(r, buf[:5]); err != nil { - return - } - sig.SigType = SignatureType(buf[0]) - t := binary.BigEndian.Uint32(buf[1:5]) - sig.CreationTime = time.Unix(int64(t), 0) - - // Eight-octet Key ID of signer. - if _, err = readFull(r, buf[:8]); err != nil { - return - } - sig.IssuerKeyId = binary.BigEndian.Uint64(buf[:]) - - // Public-key and hash algorithm - if _, err = readFull(r, buf[:2]); err != nil { - return - } - sig.PubKeyAlgo = PublicKeyAlgorithm(buf[0]) - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA: - default: - err = errors.UnsupportedError("public key algorithm " + strconv.Itoa(int(sig.PubKeyAlgo))) - return - } - var ok bool - if sig.Hash, ok = s2k.HashIdToHash(buf[1]); !ok { - return errors.UnsupportedError("hash function " + strconv.Itoa(int(buf[2]))) - } - - // Two-octet field holding left 16 bits of signed hash value. - if _, err = readFull(r, sig.HashTag[:2]); err != nil { - return - } - - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - sig.RSASignature.bytes, sig.RSASignature.bitLength, err = readMPI(r) - case PubKeyAlgoDSA: - if sig.DSASigR.bytes, sig.DSASigR.bitLength, err = readMPI(r); err != nil { - return - } - sig.DSASigS.bytes, sig.DSASigS.bitLength, err = readMPI(r) - default: - panic("unreachable") - } - return -} - -// Serialize marshals sig to w. Sign, SignUserId or SignKey must have been -// called first. -func (sig *SignatureV3) Serialize(w io.Writer) (err error) { - buf := make([]byte, 8) - - // Write the sig type and creation time - buf[0] = byte(sig.SigType) - binary.BigEndian.PutUint32(buf[1:5], uint32(sig.CreationTime.Unix())) - if _, err = w.Write(buf[:5]); err != nil { - return - } - - // Write the issuer long key ID - binary.BigEndian.PutUint64(buf[:8], sig.IssuerKeyId) - if _, err = w.Write(buf[:8]); err != nil { - return - } - - // Write public key algorithm, hash ID, and hash value - buf[0] = byte(sig.PubKeyAlgo) - hashId, ok := s2k.HashToHashId(sig.Hash) - if !ok { - return errors.UnsupportedError(fmt.Sprintf("hash function %v", sig.Hash)) - } - buf[1] = hashId - copy(buf[2:4], sig.HashTag[:]) - if _, err = w.Write(buf[:4]); err != nil { - return - } - - if sig.RSASignature.bytes == nil && sig.DSASigR.bytes == nil { - return errors.InvalidArgumentError("Signature: need to call Sign, SignUserId or SignKey before Serialize") - } - - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - err = writeMPIs(w, sig.RSASignature) - case PubKeyAlgoDSA: - err = writeMPIs(w, sig.DSASigR, sig.DSASigS) - default: - panic("impossible") - } - return -} diff --git a/vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted.go b/vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted.go deleted file mode 100644 index 744c2d2c42dc..000000000000 --- a/vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted.go +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "bytes" - "crypto/cipher" - "io" - "strconv" - - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/s2k" -) - -// This is the largest session key that we'll support. Since no 512-bit cipher -// has even been seriously used, this is comfortably large. -const maxSessionKeySizeInBytes = 64 - -// SymmetricKeyEncrypted represents a passphrase protected session key. See RFC -// 4880, section 5.3. -type SymmetricKeyEncrypted struct { - CipherFunc CipherFunction - s2k func(out, in []byte) - encryptedKey []byte -} - -const symmetricKeyEncryptedVersion = 4 - -func (ske *SymmetricKeyEncrypted) parse(r io.Reader) error { - // RFC 4880, section 5.3. - var buf [2]byte - if _, err := readFull(r, buf[:]); err != nil { - return err - } - if buf[0] != symmetricKeyEncryptedVersion { - return errors.UnsupportedError("SymmetricKeyEncrypted version") - } - ske.CipherFunc = CipherFunction(buf[1]) - - if ske.CipherFunc.KeySize() == 0 { - return errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(buf[1]))) - } - - var err error - ske.s2k, err = s2k.Parse(r) - if err != nil { - return err - } - - encryptedKey := make([]byte, maxSessionKeySizeInBytes) - // The session key may follow. We just have to try and read to find - // out. If it exists then we limit it to maxSessionKeySizeInBytes. - n, err := readFull(r, encryptedKey) - if err != nil && err != io.ErrUnexpectedEOF { - return err - } - - if n != 0 { - if n == maxSessionKeySizeInBytes { - return errors.UnsupportedError("oversized encrypted session key") - } - ske.encryptedKey = encryptedKey[:n] - } - - return nil -} - -// Decrypt attempts to decrypt an encrypted session key and returns the key and -// the cipher to use when decrypting a subsequent Symmetrically Encrypted Data -// packet. -func (ske *SymmetricKeyEncrypted) Decrypt(passphrase []byte) ([]byte, CipherFunction, error) { - key := make([]byte, ske.CipherFunc.KeySize()) - ske.s2k(key, passphrase) - - if len(ske.encryptedKey) == 0 { - return key, ske.CipherFunc, nil - } - - // the IV is all zeros - iv := make([]byte, ske.CipherFunc.blockSize()) - c := cipher.NewCFBDecrypter(ske.CipherFunc.new(key), iv) - plaintextKey := make([]byte, len(ske.encryptedKey)) - c.XORKeyStream(plaintextKey, ske.encryptedKey) - cipherFunc := CipherFunction(plaintextKey[0]) - if cipherFunc.blockSize() == 0 { - return nil, ske.CipherFunc, errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(cipherFunc))) - } - plaintextKey = plaintextKey[1:] - if l, cipherKeySize := len(plaintextKey), cipherFunc.KeySize(); l != cipherFunc.KeySize() { - return nil, cipherFunc, errors.StructuralError("length of decrypted key (" + strconv.Itoa(l) + ") " + - "not equal to cipher keysize (" + strconv.Itoa(cipherKeySize) + ")") - } - return plaintextKey, cipherFunc, nil -} - -// SerializeSymmetricKeyEncrypted serializes a symmetric key packet to w. The -// packet contains a random session key, encrypted by a key derived from the -// given passphrase. The session key is returned and must be passed to -// SerializeSymmetricallyEncrypted. -// If config is nil, sensible defaults will be used. -func SerializeSymmetricKeyEncrypted(w io.Writer, passphrase []byte, config *Config) (key []byte, err error) { - cipherFunc := config.Cipher() - keySize := cipherFunc.KeySize() - if keySize == 0 { - return nil, errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(cipherFunc))) - } - - s2kBuf := new(bytes.Buffer) - keyEncryptingKey := make([]byte, keySize) - // s2k.Serialize salts and stretches the passphrase, and writes the - // resulting key to keyEncryptingKey and the s2k descriptor to s2kBuf. - err = s2k.Serialize(s2kBuf, keyEncryptingKey, config.Random(), passphrase, &s2k.Config{Hash: config.Hash(), S2KCount: config.PasswordHashIterations()}) - if err != nil { - return - } - s2kBytes := s2kBuf.Bytes() - - packetLength := 2 /* header */ + len(s2kBytes) + 1 /* cipher type */ + keySize - err = serializeHeader(w, packetTypeSymmetricKeyEncrypted, packetLength) - if err != nil { - return - } - - var buf [2]byte - buf[0] = symmetricKeyEncryptedVersion - buf[1] = byte(cipherFunc) - _, err = w.Write(buf[:]) - if err != nil { - return - } - _, err = w.Write(s2kBytes) - if err != nil { - return - } - - sessionKey := make([]byte, keySize) - _, err = io.ReadFull(config.Random(), sessionKey) - if err != nil { - return - } - iv := make([]byte, cipherFunc.blockSize()) - c := cipher.NewCFBEncrypter(cipherFunc.new(keyEncryptingKey), iv) - encryptedCipherAndKey := make([]byte, keySize+1) - c.XORKeyStream(encryptedCipherAndKey, buf[1:]) - c.XORKeyStream(encryptedCipherAndKey[1:], sessionKey) - _, err = w.Write(encryptedCipherAndKey) - if err != nil { - return - } - - key = sessionKey - return -} diff --git a/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go b/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go deleted file mode 100644 index f53244a1c7b5..000000000000 --- a/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go +++ /dev/null @@ -1,279 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package s2k implements the various OpenPGP string-to-key transforms as -// specified in RFC 4800 section 3.7.1. -// -// Deprecated: this package is unmaintained except for security fixes. New -// applications should consider a more focused, modern alternative to OpenPGP -// for their specific task. If you are required to interoperate with OpenPGP -// systems and need a maintained package, consider a community fork. -// See https://golang.org/issue/44226. -package s2k // import "golang.org/x/crypto/openpgp/s2k" - -import ( - "crypto" - "hash" - "io" - "strconv" - - "golang.org/x/crypto/openpgp/errors" -) - -// Config collects configuration parameters for s2k key-stretching -// transformatioms. A nil *Config is valid and results in all default -// values. Currently, Config is used only by the Serialize function in -// this package. -type Config struct { - // Hash is the default hash function to be used. If - // nil, SHA1 is used. - Hash crypto.Hash - // S2KCount is only used for symmetric encryption. It - // determines the strength of the passphrase stretching when - // the said passphrase is hashed to produce a key. S2KCount - // should be between 1024 and 65011712, inclusive. If Config - // is nil or S2KCount is 0, the value 65536 used. Not all - // values in the above range can be represented. S2KCount will - // be rounded up to the next representable value if it cannot - // be encoded exactly. When set, it is strongly encrouraged to - // use a value that is at least 65536. See RFC 4880 Section - // 3.7.1.3. - S2KCount int -} - -func (c *Config) hash() crypto.Hash { - if c == nil || uint(c.Hash) == 0 { - // SHA1 is the historical default in this package. - return crypto.SHA1 - } - - return c.Hash -} - -func (c *Config) encodedCount() uint8 { - if c == nil || c.S2KCount == 0 { - return 96 // The common case. Correspoding to 65536 - } - - i := c.S2KCount - switch { - // Behave like GPG. Should we make 65536 the lowest value used? - case i < 1024: - i = 1024 - case i > 65011712: - i = 65011712 - } - - return encodeCount(i) -} - -// encodeCount converts an iterative "count" in the range 1024 to -// 65011712, inclusive, to an encoded count. The return value is the -// octet that is actually stored in the GPG file. encodeCount panics -// if i is not in the above range (encodedCount above takes care to -// pass i in the correct range). See RFC 4880 Section 3.7.7.1. -func encodeCount(i int) uint8 { - if i < 1024 || i > 65011712 { - panic("count arg i outside the required range") - } - - for encoded := 0; encoded < 256; encoded++ { - count := decodeCount(uint8(encoded)) - if count >= i { - return uint8(encoded) - } - } - - return 255 -} - -// decodeCount returns the s2k mode 3 iterative "count" corresponding to -// the encoded octet c. -func decodeCount(c uint8) int { - return (16 + int(c&15)) << (uint32(c>>4) + 6) -} - -// Simple writes to out the result of computing the Simple S2K function (RFC -// 4880, section 3.7.1.1) using the given hash and input passphrase. -func Simple(out []byte, h hash.Hash, in []byte) { - Salted(out, h, in, nil) -} - -var zero [1]byte - -// Salted writes to out the result of computing the Salted S2K function (RFC -// 4880, section 3.7.1.2) using the given hash, input passphrase and salt. -func Salted(out []byte, h hash.Hash, in []byte, salt []byte) { - done := 0 - var digest []byte - - for i := 0; done < len(out); i++ { - h.Reset() - for j := 0; j < i; j++ { - h.Write(zero[:]) - } - h.Write(salt) - h.Write(in) - digest = h.Sum(digest[:0]) - n := copy(out[done:], digest) - done += n - } -} - -// Iterated writes to out the result of computing the Iterated and Salted S2K -// function (RFC 4880, section 3.7.1.3) using the given hash, input passphrase, -// salt and iteration count. -func Iterated(out []byte, h hash.Hash, in []byte, salt []byte, count int) { - combined := make([]byte, len(in)+len(salt)) - copy(combined, salt) - copy(combined[len(salt):], in) - - if count < len(combined) { - count = len(combined) - } - - done := 0 - var digest []byte - for i := 0; done < len(out); i++ { - h.Reset() - for j := 0; j < i; j++ { - h.Write(zero[:]) - } - written := 0 - for written < count { - if written+len(combined) > count { - todo := count - written - h.Write(combined[:todo]) - written = count - } else { - h.Write(combined) - written += len(combined) - } - } - digest = h.Sum(digest[:0]) - n := copy(out[done:], digest) - done += n - } -} - -// Parse reads a binary specification for a string-to-key transformation from r -// and returns a function which performs that transform. -func Parse(r io.Reader) (f func(out, in []byte), err error) { - var buf [9]byte - - _, err = io.ReadFull(r, buf[:2]) - if err != nil { - return - } - - hash, ok := HashIdToHash(buf[1]) - if !ok { - return nil, errors.UnsupportedError("hash for S2K function: " + strconv.Itoa(int(buf[1]))) - } - if !hash.Available() { - return nil, errors.UnsupportedError("hash not available: " + strconv.Itoa(int(hash))) - } - h := hash.New() - - switch buf[0] { - case 0: - f := func(out, in []byte) { - Simple(out, h, in) - } - return f, nil - case 1: - _, err = io.ReadFull(r, buf[:8]) - if err != nil { - return - } - f := func(out, in []byte) { - Salted(out, h, in, buf[:8]) - } - return f, nil - case 3: - _, err = io.ReadFull(r, buf[:9]) - if err != nil { - return - } - count := decodeCount(buf[8]) - f := func(out, in []byte) { - Iterated(out, h, in, buf[:8], count) - } - return f, nil - } - - return nil, errors.UnsupportedError("S2K function") -} - -// Serialize salts and stretches the given passphrase and writes the -// resulting key into key. It also serializes an S2K descriptor to -// w. The key stretching can be configured with c, which may be -// nil. In that case, sensible defaults will be used. -func Serialize(w io.Writer, key []byte, rand io.Reader, passphrase []byte, c *Config) error { - var buf [11]byte - buf[0] = 3 /* iterated and salted */ - buf[1], _ = HashToHashId(c.hash()) - salt := buf[2:10] - if _, err := io.ReadFull(rand, salt); err != nil { - return err - } - encodedCount := c.encodedCount() - count := decodeCount(encodedCount) - buf[10] = encodedCount - if _, err := w.Write(buf[:]); err != nil { - return err - } - - Iterated(key, c.hash().New(), passphrase, salt, count) - return nil -} - -// hashToHashIdMapping contains pairs relating OpenPGP's hash identifier with -// Go's crypto.Hash type. See RFC 4880, section 9.4. -var hashToHashIdMapping = []struct { - id byte - hash crypto.Hash - name string -}{ - {1, crypto.MD5, "MD5"}, - {2, crypto.SHA1, "SHA1"}, - {3, crypto.RIPEMD160, "RIPEMD160"}, - {8, crypto.SHA256, "SHA256"}, - {9, crypto.SHA384, "SHA384"}, - {10, crypto.SHA512, "SHA512"}, - {11, crypto.SHA224, "SHA224"}, -} - -// HashIdToHash returns a crypto.Hash which corresponds to the given OpenPGP -// hash id. -func HashIdToHash(id byte) (h crypto.Hash, ok bool) { - for _, m := range hashToHashIdMapping { - if m.id == id { - return m.hash, true - } - } - return 0, false -} - -// HashIdToString returns the name of the hash function corresponding to the -// given OpenPGP hash id. -func HashIdToString(id byte) (name string, ok bool) { - for _, m := range hashToHashIdMapping { - if m.id == id { - return m.name, true - } - } - - return "", false -} - -// HashToHashId returns an OpenPGP hash id which corresponds the given Hash. -func HashToHashId(h crypto.Hash) (id byte, ok bool) { - for _, m := range hashToHashIdMapping { - if m.hash == h { - return m.id, true - } - } - return 0, false -} diff --git a/vendor/golang.org/x/crypto/sha3/doc.go b/vendor/golang.org/x/crypto/sha3/doc.go new file mode 100644 index 000000000000..decd8cf9bf74 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/doc.go @@ -0,0 +1,62 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package sha3 implements the SHA-3 fixed-output-length hash functions and +// the SHAKE variable-output-length hash functions defined by FIPS-202. +// +// Both types of hash function use the "sponge" construction and the Keccak +// permutation. For a detailed specification see http://keccak.noekeon.org/ +// +// # Guidance +// +// If you aren't sure what function you need, use SHAKE256 with at least 64 +// bytes of output. The SHAKE instances are faster than the SHA3 instances; +// the latter have to allocate memory to conform to the hash.Hash interface. +// +// If you need a secret-key MAC (message authentication code), prepend the +// secret key to the input, hash with SHAKE256 and read at least 32 bytes of +// output. +// +// # Security strengths +// +// The SHA3-x (x equals 224, 256, 384, or 512) functions have a security +// strength against preimage attacks of x bits. Since they only produce "x" +// bits of output, their collision-resistance is only "x/2" bits. +// +// The SHAKE-256 and -128 functions have a generic security strength of 256 and +// 128 bits against all attacks, provided that at least 2x bits of their output +// is used. Requesting more than 64 or 32 bytes of output, respectively, does +// not increase the collision-resistance of the SHAKE functions. +// +// # The sponge construction +// +// A sponge builds a pseudo-random function from a public pseudo-random +// permutation, by applying the permutation to a state of "rate + capacity" +// bytes, but hiding "capacity" of the bytes. +// +// A sponge starts out with a zero state. To hash an input using a sponge, up +// to "rate" bytes of the input are XORed into the sponge's state. The sponge +// is then "full" and the permutation is applied to "empty" it. This process is +// repeated until all the input has been "absorbed". The input is then padded. +// The digest is "squeezed" from the sponge in the same way, except that output +// is copied out instead of input being XORed in. +// +// A sponge is parameterized by its generic security strength, which is equal +// to half its capacity; capacity + rate is equal to the permutation's width. +// Since the KeccakF-1600 permutation is 1600 bits (200 bytes) wide, this means +// that the security strength of a sponge instance is equal to (1600 - bitrate) / 2. +// +// # Recommendations +// +// The SHAKE functions are recommended for most new uses. They can produce +// output of arbitrary length. SHAKE256, with an output length of at least +// 64 bytes, provides 256-bit security against all attacks. The Keccak team +// recommends it for most applications upgrading from SHA2-512. (NIST chose a +// much stronger, but much slower, sponge instance for SHA3-512.) +// +// The SHA-3 functions are "drop-in" replacements for the SHA-2 functions. +// They produce output of the same length, with the same security strengths +// against all attacks. This means, in particular, that SHA3-256 only has +// 128-bit collision resistance, because its output length is 32 bytes. +package sha3 // import "golang.org/x/crypto/sha3" diff --git a/vendor/golang.org/x/crypto/sha3/hashes.go b/vendor/golang.org/x/crypto/sha3/hashes.go new file mode 100644 index 000000000000..0d8043fd2a17 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/hashes.go @@ -0,0 +1,97 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package sha3 + +// This file provides functions for creating instances of the SHA-3 +// and SHAKE hash functions, as well as utility functions for hashing +// bytes. + +import ( + "hash" +) + +// New224 creates a new SHA3-224 hash. +// Its generic security strength is 224 bits against preimage attacks, +// and 112 bits against collision attacks. +func New224() hash.Hash { + if h := new224Asm(); h != nil { + return h + } + return &state{rate: 144, outputLen: 28, dsbyte: 0x06} +} + +// New256 creates a new SHA3-256 hash. +// Its generic security strength is 256 bits against preimage attacks, +// and 128 bits against collision attacks. +func New256() hash.Hash { + if h := new256Asm(); h != nil { + return h + } + return &state{rate: 136, outputLen: 32, dsbyte: 0x06} +} + +// New384 creates a new SHA3-384 hash. +// Its generic security strength is 384 bits against preimage attacks, +// and 192 bits against collision attacks. +func New384() hash.Hash { + if h := new384Asm(); h != nil { + return h + } + return &state{rate: 104, outputLen: 48, dsbyte: 0x06} +} + +// New512 creates a new SHA3-512 hash. +// Its generic security strength is 512 bits against preimage attacks, +// and 256 bits against collision attacks. +func New512() hash.Hash { + if h := new512Asm(); h != nil { + return h + } + return &state{rate: 72, outputLen: 64, dsbyte: 0x06} +} + +// NewLegacyKeccak256 creates a new Keccak-256 hash. +// +// Only use this function if you require compatibility with an existing cryptosystem +// that uses non-standard padding. All other users should use New256 instead. +func NewLegacyKeccak256() hash.Hash { return &state{rate: 136, outputLen: 32, dsbyte: 0x01} } + +// NewLegacyKeccak512 creates a new Keccak-512 hash. +// +// Only use this function if you require compatibility with an existing cryptosystem +// that uses non-standard padding. All other users should use New512 instead. +func NewLegacyKeccak512() hash.Hash { return &state{rate: 72, outputLen: 64, dsbyte: 0x01} } + +// Sum224 returns the SHA3-224 digest of the data. +func Sum224(data []byte) (digest [28]byte) { + h := New224() + h.Write(data) + h.Sum(digest[:0]) + return +} + +// Sum256 returns the SHA3-256 digest of the data. +func Sum256(data []byte) (digest [32]byte) { + h := New256() + h.Write(data) + h.Sum(digest[:0]) + return +} + +// Sum384 returns the SHA3-384 digest of the data. +func Sum384(data []byte) (digest [48]byte) { + h := New384() + h.Write(data) + h.Sum(digest[:0]) + return +} + +// Sum512 returns the SHA3-512 digest of the data. +func Sum512(data []byte) (digest [64]byte) { + h := New512() + h.Write(data) + h.Sum(digest[:0]) + return +} diff --git a/vendor/golang.org/x/crypto/sha3/hashes_generic.go b/vendor/golang.org/x/crypto/sha3/hashes_generic.go new file mode 100644 index 000000000000..c74fc20fcb33 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/hashes_generic.go @@ -0,0 +1,28 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !gc || purego || !s390x +// +build !gc purego !s390x + +package sha3 + +import ( + "hash" +) + +// new224Asm returns an assembly implementation of SHA3-224 if available, +// otherwise it returns nil. +func new224Asm() hash.Hash { return nil } + +// new256Asm returns an assembly implementation of SHA3-256 if available, +// otherwise it returns nil. +func new256Asm() hash.Hash { return nil } + +// new384Asm returns an assembly implementation of SHA3-384 if available, +// otherwise it returns nil. +func new384Asm() hash.Hash { return nil } + +// new512Asm returns an assembly implementation of SHA3-512 if available, +// otherwise it returns nil. +func new512Asm() hash.Hash { return nil } diff --git a/vendor/golang.org/x/crypto/sha3/keccakf.go b/vendor/golang.org/x/crypto/sha3/keccakf.go new file mode 100644 index 000000000000..e5faa375c04e --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/keccakf.go @@ -0,0 +1,415 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !amd64 || purego || !gc +// +build !amd64 purego !gc + +package sha3 + +import "math/bits" + +// rc stores the round constants for use in the ι step. +var rc = [24]uint64{ + 0x0000000000000001, + 0x0000000000008082, + 0x800000000000808A, + 0x8000000080008000, + 0x000000000000808B, + 0x0000000080000001, + 0x8000000080008081, + 0x8000000000008009, + 0x000000000000008A, + 0x0000000000000088, + 0x0000000080008009, + 0x000000008000000A, + 0x000000008000808B, + 0x800000000000008B, + 0x8000000000008089, + 0x8000000000008003, + 0x8000000000008002, + 0x8000000000000080, + 0x000000000000800A, + 0x800000008000000A, + 0x8000000080008081, + 0x8000000000008080, + 0x0000000080000001, + 0x8000000080008008, +} + +// keccakF1600 applies the Keccak permutation to a 1600b-wide +// state represented as a slice of 25 uint64s. +func keccakF1600(a *[25]uint64) { + // Implementation translated from Keccak-inplace.c + // in the keccak reference code. + var t, bc0, bc1, bc2, bc3, bc4, d0, d1, d2, d3, d4 uint64 + + for i := 0; i < 24; i += 4 { + // Combines the 5 steps in each round into 2 steps. + // Unrolls 4 rounds per loop and spreads some steps across rounds. + + // Round 1 + bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] + bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] + bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] + bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] + bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] + d0 = bc4 ^ (bc1<<1 | bc1>>63) + d1 = bc0 ^ (bc2<<1 | bc2>>63) + d2 = bc1 ^ (bc3<<1 | bc3>>63) + d3 = bc2 ^ (bc4<<1 | bc4>>63) + d4 = bc3 ^ (bc0<<1 | bc0>>63) + + bc0 = a[0] ^ d0 + t = a[6] ^ d1 + bc1 = bits.RotateLeft64(t, 44) + t = a[12] ^ d2 + bc2 = bits.RotateLeft64(t, 43) + t = a[18] ^ d3 + bc3 = bits.RotateLeft64(t, 21) + t = a[24] ^ d4 + bc4 = bits.RotateLeft64(t, 14) + a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i] + a[6] = bc1 ^ (bc3 &^ bc2) + a[12] = bc2 ^ (bc4 &^ bc3) + a[18] = bc3 ^ (bc0 &^ bc4) + a[24] = bc4 ^ (bc1 &^ bc0) + + t = a[10] ^ d0 + bc2 = bits.RotateLeft64(t, 3) + t = a[16] ^ d1 + bc3 = bits.RotateLeft64(t, 45) + t = a[22] ^ d2 + bc4 = bits.RotateLeft64(t, 61) + t = a[3] ^ d3 + bc0 = bits.RotateLeft64(t, 28) + t = a[9] ^ d4 + bc1 = bits.RotateLeft64(t, 20) + a[10] = bc0 ^ (bc2 &^ bc1) + a[16] = bc1 ^ (bc3 &^ bc2) + a[22] = bc2 ^ (bc4 &^ bc3) + a[3] = bc3 ^ (bc0 &^ bc4) + a[9] = bc4 ^ (bc1 &^ bc0) + + t = a[20] ^ d0 + bc4 = bits.RotateLeft64(t, 18) + t = a[1] ^ d1 + bc0 = bits.RotateLeft64(t, 1) + t = a[7] ^ d2 + bc1 = bits.RotateLeft64(t, 6) + t = a[13] ^ d3 + bc2 = bits.RotateLeft64(t, 25) + t = a[19] ^ d4 + bc3 = bits.RotateLeft64(t, 8) + a[20] = bc0 ^ (bc2 &^ bc1) + a[1] = bc1 ^ (bc3 &^ bc2) + a[7] = bc2 ^ (bc4 &^ bc3) + a[13] = bc3 ^ (bc0 &^ bc4) + a[19] = bc4 ^ (bc1 &^ bc0) + + t = a[5] ^ d0 + bc1 = bits.RotateLeft64(t, 36) + t = a[11] ^ d1 + bc2 = bits.RotateLeft64(t, 10) + t = a[17] ^ d2 + bc3 = bits.RotateLeft64(t, 15) + t = a[23] ^ d3 + bc4 = bits.RotateLeft64(t, 56) + t = a[4] ^ d4 + bc0 = bits.RotateLeft64(t, 27) + a[5] = bc0 ^ (bc2 &^ bc1) + a[11] = bc1 ^ (bc3 &^ bc2) + a[17] = bc2 ^ (bc4 &^ bc3) + a[23] = bc3 ^ (bc0 &^ bc4) + a[4] = bc4 ^ (bc1 &^ bc0) + + t = a[15] ^ d0 + bc3 = bits.RotateLeft64(t, 41) + t = a[21] ^ d1 + bc4 = bits.RotateLeft64(t, 2) + t = a[2] ^ d2 + bc0 = bits.RotateLeft64(t, 62) + t = a[8] ^ d3 + bc1 = bits.RotateLeft64(t, 55) + t = a[14] ^ d4 + bc2 = bits.RotateLeft64(t, 39) + a[15] = bc0 ^ (bc2 &^ bc1) + a[21] = bc1 ^ (bc3 &^ bc2) + a[2] = bc2 ^ (bc4 &^ bc3) + a[8] = bc3 ^ (bc0 &^ bc4) + a[14] = bc4 ^ (bc1 &^ bc0) + + // Round 2 + bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] + bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] + bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] + bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] + bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] + d0 = bc4 ^ (bc1<<1 | bc1>>63) + d1 = bc0 ^ (bc2<<1 | bc2>>63) + d2 = bc1 ^ (bc3<<1 | bc3>>63) + d3 = bc2 ^ (bc4<<1 | bc4>>63) + d4 = bc3 ^ (bc0<<1 | bc0>>63) + + bc0 = a[0] ^ d0 + t = a[16] ^ d1 + bc1 = bits.RotateLeft64(t, 44) + t = a[7] ^ d2 + bc2 = bits.RotateLeft64(t, 43) + t = a[23] ^ d3 + bc3 = bits.RotateLeft64(t, 21) + t = a[14] ^ d4 + bc4 = bits.RotateLeft64(t, 14) + a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+1] + a[16] = bc1 ^ (bc3 &^ bc2) + a[7] = bc2 ^ (bc4 &^ bc3) + a[23] = bc3 ^ (bc0 &^ bc4) + a[14] = bc4 ^ (bc1 &^ bc0) + + t = a[20] ^ d0 + bc2 = bits.RotateLeft64(t, 3) + t = a[11] ^ d1 + bc3 = bits.RotateLeft64(t, 45) + t = a[2] ^ d2 + bc4 = bits.RotateLeft64(t, 61) + t = a[18] ^ d3 + bc0 = bits.RotateLeft64(t, 28) + t = a[9] ^ d4 + bc1 = bits.RotateLeft64(t, 20) + a[20] = bc0 ^ (bc2 &^ bc1) + a[11] = bc1 ^ (bc3 &^ bc2) + a[2] = bc2 ^ (bc4 &^ bc3) + a[18] = bc3 ^ (bc0 &^ bc4) + a[9] = bc4 ^ (bc1 &^ bc0) + + t = a[15] ^ d0 + bc4 = bits.RotateLeft64(t, 18) + t = a[6] ^ d1 + bc0 = bits.RotateLeft64(t, 1) + t = a[22] ^ d2 + bc1 = bits.RotateLeft64(t, 6) + t = a[13] ^ d3 + bc2 = bits.RotateLeft64(t, 25) + t = a[4] ^ d4 + bc3 = bits.RotateLeft64(t, 8) + a[15] = bc0 ^ (bc2 &^ bc1) + a[6] = bc1 ^ (bc3 &^ bc2) + a[22] = bc2 ^ (bc4 &^ bc3) + a[13] = bc3 ^ (bc0 &^ bc4) + a[4] = bc4 ^ (bc1 &^ bc0) + + t = a[10] ^ d0 + bc1 = bits.RotateLeft64(t, 36) + t = a[1] ^ d1 + bc2 = bits.RotateLeft64(t, 10) + t = a[17] ^ d2 + bc3 = bits.RotateLeft64(t, 15) + t = a[8] ^ d3 + bc4 = bits.RotateLeft64(t, 56) + t = a[24] ^ d4 + bc0 = bits.RotateLeft64(t, 27) + a[10] = bc0 ^ (bc2 &^ bc1) + a[1] = bc1 ^ (bc3 &^ bc2) + a[17] = bc2 ^ (bc4 &^ bc3) + a[8] = bc3 ^ (bc0 &^ bc4) + a[24] = bc4 ^ (bc1 &^ bc0) + + t = a[5] ^ d0 + bc3 = bits.RotateLeft64(t, 41) + t = a[21] ^ d1 + bc4 = bits.RotateLeft64(t, 2) + t = a[12] ^ d2 + bc0 = bits.RotateLeft64(t, 62) + t = a[3] ^ d3 + bc1 = bits.RotateLeft64(t, 55) + t = a[19] ^ d4 + bc2 = bits.RotateLeft64(t, 39) + a[5] = bc0 ^ (bc2 &^ bc1) + a[21] = bc1 ^ (bc3 &^ bc2) + a[12] = bc2 ^ (bc4 &^ bc3) + a[3] = bc3 ^ (bc0 &^ bc4) + a[19] = bc4 ^ (bc1 &^ bc0) + + // Round 3 + bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] + bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] + bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] + bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] + bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] + d0 = bc4 ^ (bc1<<1 | bc1>>63) + d1 = bc0 ^ (bc2<<1 | bc2>>63) + d2 = bc1 ^ (bc3<<1 | bc3>>63) + d3 = bc2 ^ (bc4<<1 | bc4>>63) + d4 = bc3 ^ (bc0<<1 | bc0>>63) + + bc0 = a[0] ^ d0 + t = a[11] ^ d1 + bc1 = bits.RotateLeft64(t, 44) + t = a[22] ^ d2 + bc2 = bits.RotateLeft64(t, 43) + t = a[8] ^ d3 + bc3 = bits.RotateLeft64(t, 21) + t = a[19] ^ d4 + bc4 = bits.RotateLeft64(t, 14) + a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+2] + a[11] = bc1 ^ (bc3 &^ bc2) + a[22] = bc2 ^ (bc4 &^ bc3) + a[8] = bc3 ^ (bc0 &^ bc4) + a[19] = bc4 ^ (bc1 &^ bc0) + + t = a[15] ^ d0 + bc2 = bits.RotateLeft64(t, 3) + t = a[1] ^ d1 + bc3 = bits.RotateLeft64(t, 45) + t = a[12] ^ d2 + bc4 = bits.RotateLeft64(t, 61) + t = a[23] ^ d3 + bc0 = bits.RotateLeft64(t, 28) + t = a[9] ^ d4 + bc1 = bits.RotateLeft64(t, 20) + a[15] = bc0 ^ (bc2 &^ bc1) + a[1] = bc1 ^ (bc3 &^ bc2) + a[12] = bc2 ^ (bc4 &^ bc3) + a[23] = bc3 ^ (bc0 &^ bc4) + a[9] = bc4 ^ (bc1 &^ bc0) + + t = a[5] ^ d0 + bc4 = bits.RotateLeft64(t, 18) + t = a[16] ^ d1 + bc0 = bits.RotateLeft64(t, 1) + t = a[2] ^ d2 + bc1 = bits.RotateLeft64(t, 6) + t = a[13] ^ d3 + bc2 = bits.RotateLeft64(t, 25) + t = a[24] ^ d4 + bc3 = bits.RotateLeft64(t, 8) + a[5] = bc0 ^ (bc2 &^ bc1) + a[16] = bc1 ^ (bc3 &^ bc2) + a[2] = bc2 ^ (bc4 &^ bc3) + a[13] = bc3 ^ (bc0 &^ bc4) + a[24] = bc4 ^ (bc1 &^ bc0) + + t = a[20] ^ d0 + bc1 = bits.RotateLeft64(t, 36) + t = a[6] ^ d1 + bc2 = bits.RotateLeft64(t, 10) + t = a[17] ^ d2 + bc3 = bits.RotateLeft64(t, 15) + t = a[3] ^ d3 + bc4 = bits.RotateLeft64(t, 56) + t = a[14] ^ d4 + bc0 = bits.RotateLeft64(t, 27) + a[20] = bc0 ^ (bc2 &^ bc1) + a[6] = bc1 ^ (bc3 &^ bc2) + a[17] = bc2 ^ (bc4 &^ bc3) + a[3] = bc3 ^ (bc0 &^ bc4) + a[14] = bc4 ^ (bc1 &^ bc0) + + t = a[10] ^ d0 + bc3 = bits.RotateLeft64(t, 41) + t = a[21] ^ d1 + bc4 = bits.RotateLeft64(t, 2) + t = a[7] ^ d2 + bc0 = bits.RotateLeft64(t, 62) + t = a[18] ^ d3 + bc1 = bits.RotateLeft64(t, 55) + t = a[4] ^ d4 + bc2 = bits.RotateLeft64(t, 39) + a[10] = bc0 ^ (bc2 &^ bc1) + a[21] = bc1 ^ (bc3 &^ bc2) + a[7] = bc2 ^ (bc4 &^ bc3) + a[18] = bc3 ^ (bc0 &^ bc4) + a[4] = bc4 ^ (bc1 &^ bc0) + + // Round 4 + bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] + bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] + bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] + bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] + bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] + d0 = bc4 ^ (bc1<<1 | bc1>>63) + d1 = bc0 ^ (bc2<<1 | bc2>>63) + d2 = bc1 ^ (bc3<<1 | bc3>>63) + d3 = bc2 ^ (bc4<<1 | bc4>>63) + d4 = bc3 ^ (bc0<<1 | bc0>>63) + + bc0 = a[0] ^ d0 + t = a[1] ^ d1 + bc1 = bits.RotateLeft64(t, 44) + t = a[2] ^ d2 + bc2 = bits.RotateLeft64(t, 43) + t = a[3] ^ d3 + bc3 = bits.RotateLeft64(t, 21) + t = a[4] ^ d4 + bc4 = bits.RotateLeft64(t, 14) + a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+3] + a[1] = bc1 ^ (bc3 &^ bc2) + a[2] = bc2 ^ (bc4 &^ bc3) + a[3] = bc3 ^ (bc0 &^ bc4) + a[4] = bc4 ^ (bc1 &^ bc0) + + t = a[5] ^ d0 + bc2 = bits.RotateLeft64(t, 3) + t = a[6] ^ d1 + bc3 = bits.RotateLeft64(t, 45) + t = a[7] ^ d2 + bc4 = bits.RotateLeft64(t, 61) + t = a[8] ^ d3 + bc0 = bits.RotateLeft64(t, 28) + t = a[9] ^ d4 + bc1 = bits.RotateLeft64(t, 20) + a[5] = bc0 ^ (bc2 &^ bc1) + a[6] = bc1 ^ (bc3 &^ bc2) + a[7] = bc2 ^ (bc4 &^ bc3) + a[8] = bc3 ^ (bc0 &^ bc4) + a[9] = bc4 ^ (bc1 &^ bc0) + + t = a[10] ^ d0 + bc4 = bits.RotateLeft64(t, 18) + t = a[11] ^ d1 + bc0 = bits.RotateLeft64(t, 1) + t = a[12] ^ d2 + bc1 = bits.RotateLeft64(t, 6) + t = a[13] ^ d3 + bc2 = bits.RotateLeft64(t, 25) + t = a[14] ^ d4 + bc3 = bits.RotateLeft64(t, 8) + a[10] = bc0 ^ (bc2 &^ bc1) + a[11] = bc1 ^ (bc3 &^ bc2) + a[12] = bc2 ^ (bc4 &^ bc3) + a[13] = bc3 ^ (bc0 &^ bc4) + a[14] = bc4 ^ (bc1 &^ bc0) + + t = a[15] ^ d0 + bc1 = bits.RotateLeft64(t, 36) + t = a[16] ^ d1 + bc2 = bits.RotateLeft64(t, 10) + t = a[17] ^ d2 + bc3 = bits.RotateLeft64(t, 15) + t = a[18] ^ d3 + bc4 = bits.RotateLeft64(t, 56) + t = a[19] ^ d4 + bc0 = bits.RotateLeft64(t, 27) + a[15] = bc0 ^ (bc2 &^ bc1) + a[16] = bc1 ^ (bc3 &^ bc2) + a[17] = bc2 ^ (bc4 &^ bc3) + a[18] = bc3 ^ (bc0 &^ bc4) + a[19] = bc4 ^ (bc1 &^ bc0) + + t = a[20] ^ d0 + bc3 = bits.RotateLeft64(t, 41) + t = a[21] ^ d1 + bc4 = bits.RotateLeft64(t, 2) + t = a[22] ^ d2 + bc0 = bits.RotateLeft64(t, 62) + t = a[23] ^ d3 + bc1 = bits.RotateLeft64(t, 55) + t = a[24] ^ d4 + bc2 = bits.RotateLeft64(t, 39) + a[20] = bc0 ^ (bc2 &^ bc1) + a[21] = bc1 ^ (bc3 &^ bc2) + a[22] = bc2 ^ (bc4 &^ bc3) + a[23] = bc3 ^ (bc0 &^ bc4) + a[24] = bc4 ^ (bc1 &^ bc0) + } +} diff --git a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go new file mode 100644 index 000000000000..248a38241ff9 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go @@ -0,0 +1,14 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build amd64 && !purego && gc +// +build amd64,!purego,gc + +package sha3 + +// This function is implemented in keccakf_amd64.s. + +//go:noescape + +func keccakF1600(a *[25]uint64) diff --git a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s new file mode 100644 index 000000000000..4cfa54383bfa --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s @@ -0,0 +1,391 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build amd64 && !purego && gc +// +build amd64,!purego,gc + +// This code was translated into a form compatible with 6a from the public +// domain sources at https://github.com/gvanas/KeccakCodePackage + +// Offsets in state +#define _ba (0*8) +#define _be (1*8) +#define _bi (2*8) +#define _bo (3*8) +#define _bu (4*8) +#define _ga (5*8) +#define _ge (6*8) +#define _gi (7*8) +#define _go (8*8) +#define _gu (9*8) +#define _ka (10*8) +#define _ke (11*8) +#define _ki (12*8) +#define _ko (13*8) +#define _ku (14*8) +#define _ma (15*8) +#define _me (16*8) +#define _mi (17*8) +#define _mo (18*8) +#define _mu (19*8) +#define _sa (20*8) +#define _se (21*8) +#define _si (22*8) +#define _so (23*8) +#define _su (24*8) + +// Temporary registers +#define rT1 AX + +// Round vars +#define rpState DI +#define rpStack SP + +#define rDa BX +#define rDe CX +#define rDi DX +#define rDo R8 +#define rDu R9 + +#define rBa R10 +#define rBe R11 +#define rBi R12 +#define rBo R13 +#define rBu R14 + +#define rCa SI +#define rCe BP +#define rCi rBi +#define rCo rBo +#define rCu R15 + +#define MOVQ_RBI_RCE MOVQ rBi, rCe +#define XORQ_RT1_RCA XORQ rT1, rCa +#define XORQ_RT1_RCE XORQ rT1, rCe +#define XORQ_RBA_RCU XORQ rBa, rCu +#define XORQ_RBE_RCU XORQ rBe, rCu +#define XORQ_RDU_RCU XORQ rDu, rCu +#define XORQ_RDA_RCA XORQ rDa, rCa +#define XORQ_RDE_RCE XORQ rDe, rCe + +#define mKeccakRound(iState, oState, rc, B_RBI_RCE, G_RT1_RCA, G_RT1_RCE, G_RBA_RCU, K_RT1_RCA, K_RT1_RCE, K_RBA_RCU, M_RT1_RCA, M_RT1_RCE, M_RBE_RCU, S_RDU_RCU, S_RDA_RCA, S_RDE_RCE) \ + /* Prepare round */ \ + MOVQ rCe, rDa; \ + ROLQ $1, rDa; \ + \ + MOVQ _bi(iState), rCi; \ + XORQ _gi(iState), rDi; \ + XORQ rCu, rDa; \ + XORQ _ki(iState), rCi; \ + XORQ _mi(iState), rDi; \ + XORQ rDi, rCi; \ + \ + MOVQ rCi, rDe; \ + ROLQ $1, rDe; \ + \ + MOVQ _bo(iState), rCo; \ + XORQ _go(iState), rDo; \ + XORQ rCa, rDe; \ + XORQ _ko(iState), rCo; \ + XORQ _mo(iState), rDo; \ + XORQ rDo, rCo; \ + \ + MOVQ rCo, rDi; \ + ROLQ $1, rDi; \ + \ + MOVQ rCu, rDo; \ + XORQ rCe, rDi; \ + ROLQ $1, rDo; \ + \ + MOVQ rCa, rDu; \ + XORQ rCi, rDo; \ + ROLQ $1, rDu; \ + \ + /* Result b */ \ + MOVQ _ba(iState), rBa; \ + MOVQ _ge(iState), rBe; \ + XORQ rCo, rDu; \ + MOVQ _ki(iState), rBi; \ + MOVQ _mo(iState), rBo; \ + MOVQ _su(iState), rBu; \ + XORQ rDe, rBe; \ + ROLQ $44, rBe; \ + XORQ rDi, rBi; \ + XORQ rDa, rBa; \ + ROLQ $43, rBi; \ + \ + MOVQ rBe, rCa; \ + MOVQ rc, rT1; \ + ORQ rBi, rCa; \ + XORQ rBa, rT1; \ + XORQ rT1, rCa; \ + MOVQ rCa, _ba(oState); \ + \ + XORQ rDu, rBu; \ + ROLQ $14, rBu; \ + MOVQ rBa, rCu; \ + ANDQ rBe, rCu; \ + XORQ rBu, rCu; \ + MOVQ rCu, _bu(oState); \ + \ + XORQ rDo, rBo; \ + ROLQ $21, rBo; \ + MOVQ rBo, rT1; \ + ANDQ rBu, rT1; \ + XORQ rBi, rT1; \ + MOVQ rT1, _bi(oState); \ + \ + NOTQ rBi; \ + ORQ rBa, rBu; \ + ORQ rBo, rBi; \ + XORQ rBo, rBu; \ + XORQ rBe, rBi; \ + MOVQ rBu, _bo(oState); \ + MOVQ rBi, _be(oState); \ + B_RBI_RCE; \ + \ + /* Result g */ \ + MOVQ _gu(iState), rBe; \ + XORQ rDu, rBe; \ + MOVQ _ka(iState), rBi; \ + ROLQ $20, rBe; \ + XORQ rDa, rBi; \ + ROLQ $3, rBi; \ + MOVQ _bo(iState), rBa; \ + MOVQ rBe, rT1; \ + ORQ rBi, rT1; \ + XORQ rDo, rBa; \ + MOVQ _me(iState), rBo; \ + MOVQ _si(iState), rBu; \ + ROLQ $28, rBa; \ + XORQ rBa, rT1; \ + MOVQ rT1, _ga(oState); \ + G_RT1_RCA; \ + \ + XORQ rDe, rBo; \ + ROLQ $45, rBo; \ + MOVQ rBi, rT1; \ + ANDQ rBo, rT1; \ + XORQ rBe, rT1; \ + MOVQ rT1, _ge(oState); \ + G_RT1_RCE; \ + \ + XORQ rDi, rBu; \ + ROLQ $61, rBu; \ + MOVQ rBu, rT1; \ + ORQ rBa, rT1; \ + XORQ rBo, rT1; \ + MOVQ rT1, _go(oState); \ + \ + ANDQ rBe, rBa; \ + XORQ rBu, rBa; \ + MOVQ rBa, _gu(oState); \ + NOTQ rBu; \ + G_RBA_RCU; \ + \ + ORQ rBu, rBo; \ + XORQ rBi, rBo; \ + MOVQ rBo, _gi(oState); \ + \ + /* Result k */ \ + MOVQ _be(iState), rBa; \ + MOVQ _gi(iState), rBe; \ + MOVQ _ko(iState), rBi; \ + MOVQ _mu(iState), rBo; \ + MOVQ _sa(iState), rBu; \ + XORQ rDi, rBe; \ + ROLQ $6, rBe; \ + XORQ rDo, rBi; \ + ROLQ $25, rBi; \ + MOVQ rBe, rT1; \ + ORQ rBi, rT1; \ + XORQ rDe, rBa; \ + ROLQ $1, rBa; \ + XORQ rBa, rT1; \ + MOVQ rT1, _ka(oState); \ + K_RT1_RCA; \ + \ + XORQ rDu, rBo; \ + ROLQ $8, rBo; \ + MOVQ rBi, rT1; \ + ANDQ rBo, rT1; \ + XORQ rBe, rT1; \ + MOVQ rT1, _ke(oState); \ + K_RT1_RCE; \ + \ + XORQ rDa, rBu; \ + ROLQ $18, rBu; \ + NOTQ rBo; \ + MOVQ rBo, rT1; \ + ANDQ rBu, rT1; \ + XORQ rBi, rT1; \ + MOVQ rT1, _ki(oState); \ + \ + MOVQ rBu, rT1; \ + ORQ rBa, rT1; \ + XORQ rBo, rT1; \ + MOVQ rT1, _ko(oState); \ + \ + ANDQ rBe, rBa; \ + XORQ rBu, rBa; \ + MOVQ rBa, _ku(oState); \ + K_RBA_RCU; \ + \ + /* Result m */ \ + MOVQ _ga(iState), rBe; \ + XORQ rDa, rBe; \ + MOVQ _ke(iState), rBi; \ + ROLQ $36, rBe; \ + XORQ rDe, rBi; \ + MOVQ _bu(iState), rBa; \ + ROLQ $10, rBi; \ + MOVQ rBe, rT1; \ + MOVQ _mi(iState), rBo; \ + ANDQ rBi, rT1; \ + XORQ rDu, rBa; \ + MOVQ _so(iState), rBu; \ + ROLQ $27, rBa; \ + XORQ rBa, rT1; \ + MOVQ rT1, _ma(oState); \ + M_RT1_RCA; \ + \ + XORQ rDi, rBo; \ + ROLQ $15, rBo; \ + MOVQ rBi, rT1; \ + ORQ rBo, rT1; \ + XORQ rBe, rT1; \ + MOVQ rT1, _me(oState); \ + M_RT1_RCE; \ + \ + XORQ rDo, rBu; \ + ROLQ $56, rBu; \ + NOTQ rBo; \ + MOVQ rBo, rT1; \ + ORQ rBu, rT1; \ + XORQ rBi, rT1; \ + MOVQ rT1, _mi(oState); \ + \ + ORQ rBa, rBe; \ + XORQ rBu, rBe; \ + MOVQ rBe, _mu(oState); \ + \ + ANDQ rBa, rBu; \ + XORQ rBo, rBu; \ + MOVQ rBu, _mo(oState); \ + M_RBE_RCU; \ + \ + /* Result s */ \ + MOVQ _bi(iState), rBa; \ + MOVQ _go(iState), rBe; \ + MOVQ _ku(iState), rBi; \ + XORQ rDi, rBa; \ + MOVQ _ma(iState), rBo; \ + ROLQ $62, rBa; \ + XORQ rDo, rBe; \ + MOVQ _se(iState), rBu; \ + ROLQ $55, rBe; \ + \ + XORQ rDu, rBi; \ + MOVQ rBa, rDu; \ + XORQ rDe, rBu; \ + ROLQ $2, rBu; \ + ANDQ rBe, rDu; \ + XORQ rBu, rDu; \ + MOVQ rDu, _su(oState); \ + \ + ROLQ $39, rBi; \ + S_RDU_RCU; \ + NOTQ rBe; \ + XORQ rDa, rBo; \ + MOVQ rBe, rDa; \ + ANDQ rBi, rDa; \ + XORQ rBa, rDa; \ + MOVQ rDa, _sa(oState); \ + S_RDA_RCA; \ + \ + ROLQ $41, rBo; \ + MOVQ rBi, rDe; \ + ORQ rBo, rDe; \ + XORQ rBe, rDe; \ + MOVQ rDe, _se(oState); \ + S_RDE_RCE; \ + \ + MOVQ rBo, rDi; \ + MOVQ rBu, rDo; \ + ANDQ rBu, rDi; \ + ORQ rBa, rDo; \ + XORQ rBi, rDi; \ + XORQ rBo, rDo; \ + MOVQ rDi, _si(oState); \ + MOVQ rDo, _so(oState) \ + +// func keccakF1600(state *[25]uint64) +TEXT ·keccakF1600(SB), 0, $200-8 + MOVQ state+0(FP), rpState + + // Convert the user state into an internal state + NOTQ _be(rpState) + NOTQ _bi(rpState) + NOTQ _go(rpState) + NOTQ _ki(rpState) + NOTQ _mi(rpState) + NOTQ _sa(rpState) + + // Execute the KeccakF permutation + MOVQ _ba(rpState), rCa + MOVQ _be(rpState), rCe + MOVQ _bu(rpState), rCu + + XORQ _ga(rpState), rCa + XORQ _ge(rpState), rCe + XORQ _gu(rpState), rCu + + XORQ _ka(rpState), rCa + XORQ _ke(rpState), rCe + XORQ _ku(rpState), rCu + + XORQ _ma(rpState), rCa + XORQ _me(rpState), rCe + XORQ _mu(rpState), rCu + + XORQ _sa(rpState), rCa + XORQ _se(rpState), rCe + MOVQ _si(rpState), rDi + MOVQ _so(rpState), rDo + XORQ _su(rpState), rCu + + mKeccakRound(rpState, rpStack, $0x0000000000000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x0000000000008082, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x800000000000808a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x8000000080008000, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x000000000000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x8000000000008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x000000000000008a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x0000000000000088, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x0000000080008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x000000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x000000008000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x800000000000008b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x8000000000008089, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x8000000000008003, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x8000000000008002, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x8000000000000080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x000000000000800a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x800000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x8000000000008080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpState, rpStack, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) + mKeccakRound(rpStack, rpState, $0x8000000080008008, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP) + + // Revert the internal state to the user state + NOTQ _be(rpState) + NOTQ _bi(rpState) + NOTQ _go(rpState) + NOTQ _ki(rpState) + NOTQ _mi(rpState) + NOTQ _sa(rpState) + + RET diff --git a/vendor/golang.org/x/crypto/sha3/register.go b/vendor/golang.org/x/crypto/sha3/register.go new file mode 100644 index 000000000000..8b4453aac3c3 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/register.go @@ -0,0 +1,19 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.4 +// +build go1.4 + +package sha3 + +import ( + "crypto" +) + +func init() { + crypto.RegisterHash(crypto.SHA3_224, New224) + crypto.RegisterHash(crypto.SHA3_256, New256) + crypto.RegisterHash(crypto.SHA3_384, New384) + crypto.RegisterHash(crypto.SHA3_512, New512) +} diff --git a/vendor/golang.org/x/crypto/sha3/sha3.go b/vendor/golang.org/x/crypto/sha3/sha3.go new file mode 100644 index 000000000000..fa182beb40b5 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/sha3.go @@ -0,0 +1,193 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package sha3 + +// spongeDirection indicates the direction bytes are flowing through the sponge. +type spongeDirection int + +const ( + // spongeAbsorbing indicates that the sponge is absorbing input. + spongeAbsorbing spongeDirection = iota + // spongeSqueezing indicates that the sponge is being squeezed. + spongeSqueezing +) + +const ( + // maxRate is the maximum size of the internal buffer. SHAKE-256 + // currently needs the largest buffer. + maxRate = 168 +) + +type state struct { + // Generic sponge components. + a [25]uint64 // main state of the hash + buf []byte // points into storage + rate int // the number of bytes of state to use + + // dsbyte contains the "domain separation" bits and the first bit of + // the padding. Sections 6.1 and 6.2 of [1] separate the outputs of the + // SHA-3 and SHAKE functions by appending bitstrings to the message. + // Using a little-endian bit-ordering convention, these are "01" for SHA-3 + // and "1111" for SHAKE, or 00000010b and 00001111b, respectively. Then the + // padding rule from section 5.1 is applied to pad the message to a multiple + // of the rate, which involves adding a "1" bit, zero or more "0" bits, and + // a final "1" bit. We merge the first "1" bit from the padding into dsbyte, + // giving 00000110b (0x06) and 00011111b (0x1f). + // [1] http://csrc.nist.gov/publications/drafts/fips-202/fips_202_draft.pdf + // "Draft FIPS 202: SHA-3 Standard: Permutation-Based Hash and + // Extendable-Output Functions (May 2014)" + dsbyte byte + + storage storageBuf + + // Specific to SHA-3 and SHAKE. + outputLen int // the default output size in bytes + state spongeDirection // whether the sponge is absorbing or squeezing +} + +// BlockSize returns the rate of sponge underlying this hash function. +func (d *state) BlockSize() int { return d.rate } + +// Size returns the output size of the hash function in bytes. +func (d *state) Size() int { return d.outputLen } + +// Reset clears the internal state by zeroing the sponge state and +// the byte buffer, and setting Sponge.state to absorbing. +func (d *state) Reset() { + // Zero the permutation's state. + for i := range d.a { + d.a[i] = 0 + } + d.state = spongeAbsorbing + d.buf = d.storage.asBytes()[:0] +} + +func (d *state) clone() *state { + ret := *d + if ret.state == spongeAbsorbing { + ret.buf = ret.storage.asBytes()[:len(ret.buf)] + } else { + ret.buf = ret.storage.asBytes()[d.rate-cap(d.buf) : d.rate] + } + + return &ret +} + +// permute applies the KeccakF-1600 permutation. It handles +// any input-output buffering. +func (d *state) permute() { + switch d.state { + case spongeAbsorbing: + // If we're absorbing, we need to xor the input into the state + // before applying the permutation. + xorIn(d, d.buf) + d.buf = d.storage.asBytes()[:0] + keccakF1600(&d.a) + case spongeSqueezing: + // If we're squeezing, we need to apply the permutation before + // copying more output. + keccakF1600(&d.a) + d.buf = d.storage.asBytes()[:d.rate] + copyOut(d, d.buf) + } +} + +// pads appends the domain separation bits in dsbyte, applies +// the multi-bitrate 10..1 padding rule, and permutes the state. +func (d *state) padAndPermute(dsbyte byte) { + if d.buf == nil { + d.buf = d.storage.asBytes()[:0] + } + // Pad with this instance's domain-separator bits. We know that there's + // at least one byte of space in d.buf because, if it were full, + // permute would have been called to empty it. dsbyte also contains the + // first one bit for the padding. See the comment in the state struct. + d.buf = append(d.buf, dsbyte) + zerosStart := len(d.buf) + d.buf = d.storage.asBytes()[:d.rate] + for i := zerosStart; i < d.rate; i++ { + d.buf[i] = 0 + } + // This adds the final one bit for the padding. Because of the way that + // bits are numbered from the LSB upwards, the final bit is the MSB of + // the last byte. + d.buf[d.rate-1] ^= 0x80 + // Apply the permutation + d.permute() + d.state = spongeSqueezing + d.buf = d.storage.asBytes()[:d.rate] + copyOut(d, d.buf) +} + +// Write absorbs more data into the hash's state. It produces an error +// if more data is written to the ShakeHash after writing +func (d *state) Write(p []byte) (written int, err error) { + if d.state != spongeAbsorbing { + panic("sha3: write to sponge after read") + } + if d.buf == nil { + d.buf = d.storage.asBytes()[:0] + } + written = len(p) + + for len(p) > 0 { + if len(d.buf) == 0 && len(p) >= d.rate { + // The fast path; absorb a full "rate" bytes of input and apply the permutation. + xorIn(d, p[:d.rate]) + p = p[d.rate:] + keccakF1600(&d.a) + } else { + // The slow path; buffer the input until we can fill the sponge, and then xor it in. + todo := d.rate - len(d.buf) + if todo > len(p) { + todo = len(p) + } + d.buf = append(d.buf, p[:todo]...) + p = p[todo:] + + // If the sponge is full, apply the permutation. + if len(d.buf) == d.rate { + d.permute() + } + } + } + + return +} + +// Read squeezes an arbitrary number of bytes from the sponge. +func (d *state) Read(out []byte) (n int, err error) { + // If we're still absorbing, pad and apply the permutation. + if d.state == spongeAbsorbing { + d.padAndPermute(d.dsbyte) + } + + n = len(out) + + // Now, do the squeezing. + for len(out) > 0 { + n := copy(out, d.buf) + d.buf = d.buf[n:] + out = out[n:] + + // Apply the permutation if we've squeezed the sponge dry. + if len(d.buf) == 0 { + d.permute() + } + } + + return +} + +// Sum applies padding to the hash state and then squeezes out the desired +// number of output bytes. +func (d *state) Sum(in []byte) []byte { + // Make a copy of the original hash so that caller can keep writing + // and summing. + dup := d.clone() + hash := make([]byte, dup.outputLen) + dup.Read(hash) + return append(in, hash...) +} diff --git a/vendor/golang.org/x/crypto/sha3/sha3_s390x.go b/vendor/golang.org/x/crypto/sha3/sha3_s390x.go new file mode 100644 index 000000000000..63a3edb4cea7 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/sha3_s390x.go @@ -0,0 +1,287 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gc && !purego +// +build gc,!purego + +package sha3 + +// This file contains code for using the 'compute intermediate +// message digest' (KIMD) and 'compute last message digest' (KLMD) +// instructions to compute SHA-3 and SHAKE hashes on IBM Z. + +import ( + "hash" + + "golang.org/x/sys/cpu" +) + +// codes represent 7-bit KIMD/KLMD function codes as defined in +// the Principles of Operation. +type code uint64 + +const ( + // function codes for KIMD/KLMD + sha3_224 code = 32 + sha3_256 = 33 + sha3_384 = 34 + sha3_512 = 35 + shake_128 = 36 + shake_256 = 37 + nopad = 0x100 +) + +// kimd is a wrapper for the 'compute intermediate message digest' instruction. +// src must be a multiple of the rate for the given function code. +// +//go:noescape +func kimd(function code, chain *[200]byte, src []byte) + +// klmd is a wrapper for the 'compute last message digest' instruction. +// src padding is handled by the instruction. +// +//go:noescape +func klmd(function code, chain *[200]byte, dst, src []byte) + +type asmState struct { + a [200]byte // 1600 bit state + buf []byte // care must be taken to ensure cap(buf) is a multiple of rate + rate int // equivalent to block size + storage [3072]byte // underlying storage for buf + outputLen int // output length if fixed, 0 if not + function code // KIMD/KLMD function code + state spongeDirection // whether the sponge is absorbing or squeezing +} + +func newAsmState(function code) *asmState { + var s asmState + s.function = function + switch function { + case sha3_224: + s.rate = 144 + s.outputLen = 28 + case sha3_256: + s.rate = 136 + s.outputLen = 32 + case sha3_384: + s.rate = 104 + s.outputLen = 48 + case sha3_512: + s.rate = 72 + s.outputLen = 64 + case shake_128: + s.rate = 168 + case shake_256: + s.rate = 136 + default: + panic("sha3: unrecognized function code") + } + + // limit s.buf size to a multiple of s.rate + s.resetBuf() + return &s +} + +func (s *asmState) clone() *asmState { + c := *s + c.buf = c.storage[:len(s.buf):cap(s.buf)] + return &c +} + +// copyIntoBuf copies b into buf. It will panic if there is not enough space to +// store all of b. +func (s *asmState) copyIntoBuf(b []byte) { + bufLen := len(s.buf) + s.buf = s.buf[:len(s.buf)+len(b)] + copy(s.buf[bufLen:], b) +} + +// resetBuf points buf at storage, sets the length to 0 and sets cap to be a +// multiple of the rate. +func (s *asmState) resetBuf() { + max := (cap(s.storage) / s.rate) * s.rate + s.buf = s.storage[:0:max] +} + +// Write (via the embedded io.Writer interface) adds more data to the running hash. +// It never returns an error. +func (s *asmState) Write(b []byte) (int, error) { + if s.state != spongeAbsorbing { + panic("sha3: write to sponge after read") + } + length := len(b) + for len(b) > 0 { + if len(s.buf) == 0 && len(b) >= cap(s.buf) { + // Hash the data directly and push any remaining bytes + // into the buffer. + remainder := len(b) % s.rate + kimd(s.function, &s.a, b[:len(b)-remainder]) + if remainder != 0 { + s.copyIntoBuf(b[len(b)-remainder:]) + } + return length, nil + } + + if len(s.buf) == cap(s.buf) { + // flush the buffer + kimd(s.function, &s.a, s.buf) + s.buf = s.buf[:0] + } + + // copy as much as we can into the buffer + n := len(b) + if len(b) > cap(s.buf)-len(s.buf) { + n = cap(s.buf) - len(s.buf) + } + s.copyIntoBuf(b[:n]) + b = b[n:] + } + return length, nil +} + +// Read squeezes an arbitrary number of bytes from the sponge. +func (s *asmState) Read(out []byte) (n int, err error) { + n = len(out) + + // need to pad if we were absorbing + if s.state == spongeAbsorbing { + s.state = spongeSqueezing + + // write hash directly into out if possible + if len(out)%s.rate == 0 { + klmd(s.function, &s.a, out, s.buf) // len(out) may be 0 + s.buf = s.buf[:0] + return + } + + // write hash into buffer + max := cap(s.buf) + if max > len(out) { + max = (len(out)/s.rate)*s.rate + s.rate + } + klmd(s.function, &s.a, s.buf[:max], s.buf) + s.buf = s.buf[:max] + } + + for len(out) > 0 { + // flush the buffer + if len(s.buf) != 0 { + c := copy(out, s.buf) + out = out[c:] + s.buf = s.buf[c:] + continue + } + + // write hash directly into out if possible + if len(out)%s.rate == 0 { + klmd(s.function|nopad, &s.a, out, nil) + return + } + + // write hash into buffer + s.resetBuf() + if cap(s.buf) > len(out) { + s.buf = s.buf[:(len(out)/s.rate)*s.rate+s.rate] + } + klmd(s.function|nopad, &s.a, s.buf, nil) + } + return +} + +// Sum appends the current hash to b and returns the resulting slice. +// It does not change the underlying hash state. +func (s *asmState) Sum(b []byte) []byte { + if s.outputLen == 0 { + panic("sha3: cannot call Sum on SHAKE functions") + } + + // Copy the state to preserve the original. + a := s.a + + // Hash the buffer. Note that we don't clear it because we + // aren't updating the state. + klmd(s.function, &a, nil, s.buf) + return append(b, a[:s.outputLen]...) +} + +// Reset resets the Hash to its initial state. +func (s *asmState) Reset() { + for i := range s.a { + s.a[i] = 0 + } + s.resetBuf() + s.state = spongeAbsorbing +} + +// Size returns the number of bytes Sum will return. +func (s *asmState) Size() int { + return s.outputLen +} + +// BlockSize returns the hash's underlying block size. +// The Write method must be able to accept any amount +// of data, but it may operate more efficiently if all writes +// are a multiple of the block size. +func (s *asmState) BlockSize() int { + return s.rate +} + +// Clone returns a copy of the ShakeHash in its current state. +func (s *asmState) Clone() ShakeHash { + return s.clone() +} + +// new224Asm returns an assembly implementation of SHA3-224 if available, +// otherwise it returns nil. +func new224Asm() hash.Hash { + if cpu.S390X.HasSHA3 { + return newAsmState(sha3_224) + } + return nil +} + +// new256Asm returns an assembly implementation of SHA3-256 if available, +// otherwise it returns nil. +func new256Asm() hash.Hash { + if cpu.S390X.HasSHA3 { + return newAsmState(sha3_256) + } + return nil +} + +// new384Asm returns an assembly implementation of SHA3-384 if available, +// otherwise it returns nil. +func new384Asm() hash.Hash { + if cpu.S390X.HasSHA3 { + return newAsmState(sha3_384) + } + return nil +} + +// new512Asm returns an assembly implementation of SHA3-512 if available, +// otherwise it returns nil. +func new512Asm() hash.Hash { + if cpu.S390X.HasSHA3 { + return newAsmState(sha3_512) + } + return nil +} + +// newShake128Asm returns an assembly implementation of SHAKE-128 if available, +// otherwise it returns nil. +func newShake128Asm() ShakeHash { + if cpu.S390X.HasSHA3 { + return newAsmState(shake_128) + } + return nil +} + +// newShake256Asm returns an assembly implementation of SHAKE-256 if available, +// otherwise it returns nil. +func newShake256Asm() ShakeHash { + if cpu.S390X.HasSHA3 { + return newAsmState(shake_256) + } + return nil +} diff --git a/vendor/golang.org/x/crypto/sha3/sha3_s390x.s b/vendor/golang.org/x/crypto/sha3/sha3_s390x.s new file mode 100644 index 000000000000..a0e051b0451e --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/sha3_s390x.s @@ -0,0 +1,34 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gc && !purego +// +build gc,!purego + +#include "textflag.h" + +// func kimd(function code, chain *[200]byte, src []byte) +TEXT ·kimd(SB), NOFRAME|NOSPLIT, $0-40 + MOVD function+0(FP), R0 + MOVD chain+8(FP), R1 + LMG src+16(FP), R2, R3 // R2=base, R3=len + +continue: + WORD $0xB93E0002 // KIMD --, R2 + BVS continue // continue if interrupted + MOVD $0, R0 // reset R0 for pre-go1.8 compilers + RET + +// func klmd(function code, chain *[200]byte, dst, src []byte) +TEXT ·klmd(SB), NOFRAME|NOSPLIT, $0-64 + // TODO: SHAKE support + MOVD function+0(FP), R0 + MOVD chain+8(FP), R1 + LMG dst+16(FP), R2, R3 // R2=base, R3=len + LMG src+40(FP), R4, R5 // R4=base, R5=len + +continue: + WORD $0xB93F0024 // KLMD R2, R4 + BVS continue // continue if interrupted + MOVD $0, R0 // reset R0 for pre-go1.8 compilers + RET diff --git a/vendor/golang.org/x/crypto/sha3/shake.go b/vendor/golang.org/x/crypto/sha3/shake.go new file mode 100644 index 000000000000..d7be2954ab26 --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/shake.go @@ -0,0 +1,173 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package sha3 + +// This file defines the ShakeHash interface, and provides +// functions for creating SHAKE and cSHAKE instances, as well as utility +// functions for hashing bytes to arbitrary-length output. +// +// +// SHAKE implementation is based on FIPS PUB 202 [1] +// cSHAKE implementations is based on NIST SP 800-185 [2] +// +// [1] https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf +// [2] https://doi.org/10.6028/NIST.SP.800-185 + +import ( + "encoding/binary" + "io" +) + +// ShakeHash defines the interface to hash functions that +// support arbitrary-length output. +type ShakeHash interface { + // Write absorbs more data into the hash's state. It panics if input is + // written to it after output has been read from it. + io.Writer + + // Read reads more output from the hash; reading affects the hash's + // state. (ShakeHash.Read is thus very different from Hash.Sum) + // It never returns an error. + io.Reader + + // Clone returns a copy of the ShakeHash in its current state. + Clone() ShakeHash + + // Reset resets the ShakeHash to its initial state. + Reset() +} + +// cSHAKE specific context +type cshakeState struct { + *state // SHA-3 state context and Read/Write operations + + // initBlock is the cSHAKE specific initialization set of bytes. It is initialized + // by newCShake function and stores concatenation of N followed by S, encoded + // by the method specified in 3.3 of [1]. + // It is stored here in order for Reset() to be able to put context into + // initial state. + initBlock []byte +} + +// Consts for configuring initial SHA-3 state +const ( + dsbyteShake = 0x1f + dsbyteCShake = 0x04 + rate128 = 168 + rate256 = 136 +) + +func bytepad(input []byte, w int) []byte { + // leftEncode always returns max 9 bytes + buf := make([]byte, 0, 9+len(input)+w) + buf = append(buf, leftEncode(uint64(w))...) + buf = append(buf, input...) + padlen := w - (len(buf) % w) + return append(buf, make([]byte, padlen)...) +} + +func leftEncode(value uint64) []byte { + var b [9]byte + binary.BigEndian.PutUint64(b[1:], value) + // Trim all but last leading zero bytes + i := byte(1) + for i < 8 && b[i] == 0 { + i++ + } + // Prepend number of encoded bytes + b[i-1] = 9 - i + return b[i-1:] +} + +func newCShake(N, S []byte, rate int, dsbyte byte) ShakeHash { + c := cshakeState{state: &state{rate: rate, dsbyte: dsbyte}} + + // leftEncode returns max 9 bytes + c.initBlock = make([]byte, 0, 9*2+len(N)+len(S)) + c.initBlock = append(c.initBlock, leftEncode(uint64(len(N)*8))...) + c.initBlock = append(c.initBlock, N...) + c.initBlock = append(c.initBlock, leftEncode(uint64(len(S)*8))...) + c.initBlock = append(c.initBlock, S...) + c.Write(bytepad(c.initBlock, c.rate)) + return &c +} + +// Reset resets the hash to initial state. +func (c *cshakeState) Reset() { + c.state.Reset() + c.Write(bytepad(c.initBlock, c.rate)) +} + +// Clone returns copy of a cSHAKE context within its current state. +func (c *cshakeState) Clone() ShakeHash { + b := make([]byte, len(c.initBlock)) + copy(b, c.initBlock) + return &cshakeState{state: c.clone(), initBlock: b} +} + +// Clone returns copy of SHAKE context within its current state. +func (c *state) Clone() ShakeHash { + return c.clone() +} + +// NewShake128 creates a new SHAKE128 variable-output-length ShakeHash. +// Its generic security strength is 128 bits against all attacks if at +// least 32 bytes of its output are used. +func NewShake128() ShakeHash { + if h := newShake128Asm(); h != nil { + return h + } + return &state{rate: rate128, dsbyte: dsbyteShake} +} + +// NewShake256 creates a new SHAKE256 variable-output-length ShakeHash. +// Its generic security strength is 256 bits against all attacks if +// at least 64 bytes of its output are used. +func NewShake256() ShakeHash { + if h := newShake256Asm(); h != nil { + return h + } + return &state{rate: rate256, dsbyte: dsbyteShake} +} + +// NewCShake128 creates a new instance of cSHAKE128 variable-output-length ShakeHash, +// a customizable variant of SHAKE128. +// N is used to define functions based on cSHAKE, it can be empty when plain cSHAKE is +// desired. S is a customization byte string used for domain separation - two cSHAKE +// computations on same input with different S yield unrelated outputs. +// When N and S are both empty, this is equivalent to NewShake128. +func NewCShake128(N, S []byte) ShakeHash { + if len(N) == 0 && len(S) == 0 { + return NewShake128() + } + return newCShake(N, S, rate128, dsbyteCShake) +} + +// NewCShake256 creates a new instance of cSHAKE256 variable-output-length ShakeHash, +// a customizable variant of SHAKE256. +// N is used to define functions based on cSHAKE, it can be empty when plain cSHAKE is +// desired. S is a customization byte string used for domain separation - two cSHAKE +// computations on same input with different S yield unrelated outputs. +// When N and S are both empty, this is equivalent to NewShake256. +func NewCShake256(N, S []byte) ShakeHash { + if len(N) == 0 && len(S) == 0 { + return NewShake256() + } + return newCShake(N, S, rate256, dsbyteCShake) +} + +// ShakeSum128 writes an arbitrary-length digest of data into hash. +func ShakeSum128(hash, data []byte) { + h := NewShake128() + h.Write(data) + h.Read(hash) +} + +// ShakeSum256 writes an arbitrary-length digest of data into hash. +func ShakeSum256(hash, data []byte) { + h := NewShake256() + h.Write(data) + h.Read(hash) +} diff --git a/vendor/golang.org/x/crypto/sha3/shake_generic.go b/vendor/golang.org/x/crypto/sha3/shake_generic.go new file mode 100644 index 000000000000..5c0710ef98ff --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/shake_generic.go @@ -0,0 +1,20 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !gc || purego || !s390x +// +build !gc purego !s390x + +package sha3 + +// newShake128Asm returns an assembly implementation of SHAKE-128 if available, +// otherwise it returns nil. +func newShake128Asm() ShakeHash { + return nil +} + +// newShake256Asm returns an assembly implementation of SHAKE-256 if available, +// otherwise it returns nil. +func newShake256Asm() ShakeHash { + return nil +} diff --git a/vendor/golang.org/x/crypto/sha3/xor.go b/vendor/golang.org/x/crypto/sha3/xor.go new file mode 100644 index 000000000000..59c8eb94186e --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/xor.go @@ -0,0 +1,24 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (!amd64 && !386 && !ppc64le) || purego +// +build !amd64,!386,!ppc64le purego + +package sha3 + +// A storageBuf is an aligned array of maxRate bytes. +type storageBuf [maxRate]byte + +func (b *storageBuf) asBytes() *[maxRate]byte { + return (*[maxRate]byte)(b) +} + +var ( + xorIn = xorInGeneric + copyOut = copyOutGeneric + xorInUnaligned = xorInGeneric + copyOutUnaligned = copyOutGeneric +) + +const xorImplementationUnaligned = "generic" diff --git a/vendor/golang.org/x/crypto/sha3/xor_generic.go b/vendor/golang.org/x/crypto/sha3/xor_generic.go new file mode 100644 index 000000000000..8d947711272c --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/xor_generic.go @@ -0,0 +1,28 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package sha3 + +import "encoding/binary" + +// xorInGeneric xors the bytes in buf into the state; it +// makes no non-portable assumptions about memory layout +// or alignment. +func xorInGeneric(d *state, buf []byte) { + n := len(buf) / 8 + + for i := 0; i < n; i++ { + a := binary.LittleEndian.Uint64(buf) + d.a[i] ^= a + buf = buf[8:] + } +} + +// copyOutGeneric copies uint64s to a byte buffer. +func copyOutGeneric(d *state, b []byte) { + for i := 0; len(b) >= 8; i++ { + binary.LittleEndian.PutUint64(b, d.a[i]) + b = b[8:] + } +} diff --git a/vendor/golang.org/x/crypto/sha3/xor_unaligned.go b/vendor/golang.org/x/crypto/sha3/xor_unaligned.go new file mode 100644 index 000000000000..1ce606246d5c --- /dev/null +++ b/vendor/golang.org/x/crypto/sha3/xor_unaligned.go @@ -0,0 +1,68 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (amd64 || 386 || ppc64le) && !purego +// +build amd64 386 ppc64le +// +build !purego + +package sha3 + +import "unsafe" + +// A storageBuf is an aligned array of maxRate bytes. +type storageBuf [maxRate / 8]uint64 + +func (b *storageBuf) asBytes() *[maxRate]byte { + return (*[maxRate]byte)(unsafe.Pointer(b)) +} + +// xorInUnaligned uses unaligned reads and writes to update d.a to contain d.a +// XOR buf. +func xorInUnaligned(d *state, buf []byte) { + n := len(buf) + bw := (*[maxRate / 8]uint64)(unsafe.Pointer(&buf[0]))[: n/8 : n/8] + if n >= 72 { + d.a[0] ^= bw[0] + d.a[1] ^= bw[1] + d.a[2] ^= bw[2] + d.a[3] ^= bw[3] + d.a[4] ^= bw[4] + d.a[5] ^= bw[5] + d.a[6] ^= bw[6] + d.a[7] ^= bw[7] + d.a[8] ^= bw[8] + } + if n >= 104 { + d.a[9] ^= bw[9] + d.a[10] ^= bw[10] + d.a[11] ^= bw[11] + d.a[12] ^= bw[12] + } + if n >= 136 { + d.a[13] ^= bw[13] + d.a[14] ^= bw[14] + d.a[15] ^= bw[15] + d.a[16] ^= bw[16] + } + if n >= 144 { + d.a[17] ^= bw[17] + } + if n >= 168 { + d.a[18] ^= bw[18] + d.a[19] ^= bw[19] + d.a[20] ^= bw[20] + } +} + +func copyOutUnaligned(d *state, buf []byte) { + ab := (*[maxRate]uint8)(unsafe.Pointer(&d.a[0])) + copy(buf, ab[:]) +} + +var ( + xorIn = xorInUnaligned + copyOut = copyOutUnaligned +) + +const xorImplementationUnaligned = "unaligned" diff --git a/vendor/golang.org/x/crypto/ssh/common.go b/vendor/golang.org/x/crypto/ssh/common.go index e6a77f26a099..b419c761edbc 100644 --- a/vendor/golang.org/x/crypto/ssh/common.go +++ b/vendor/golang.org/x/crypto/ssh/common.go @@ -49,7 +49,8 @@ var supportedKexAlgos = []string{ // P384 and P521 are not constant-time yet, but since we don't // reuse ephemeral keys, using them for ECDH should be OK. kexAlgoECDH256, kexAlgoECDH384, kexAlgoECDH521, - kexAlgoDH14SHA256, kexAlgoDH14SHA1, kexAlgoDH1SHA1, + kexAlgoDH14SHA256, kexAlgoDH16SHA512, kexAlgoDH14SHA1, + kexAlgoDH1SHA1, } // serverForbiddenKexAlgos contains key exchange algorithms, that are forbidden @@ -59,8 +60,9 @@ var serverForbiddenKexAlgos = map[string]struct{}{ kexAlgoDHGEXSHA256: {}, // server half implementation is only minimal to satisfy the automated tests } -// preferredKexAlgos specifies the default preference for key-exchange algorithms -// in preference order. +// preferredKexAlgos specifies the default preference for key-exchange +// algorithms in preference order. The diffie-hellman-group16-sha512 algorithm +// is disabled by default because it is a bit slower than the others. var preferredKexAlgos = []string{ kexAlgoCurve25519SHA256, kexAlgoCurve25519SHA256LibSSH, kexAlgoECDH256, kexAlgoECDH384, kexAlgoECDH521, @@ -70,12 +72,12 @@ var preferredKexAlgos = []string{ // supportedHostKeyAlgos specifies the supported host-key algorithms (i.e. methods // of authenticating servers) in preference order. var supportedHostKeyAlgos = []string{ - CertAlgoRSASHA512v01, CertAlgoRSASHA256v01, + CertAlgoRSASHA256v01, CertAlgoRSASHA512v01, CertAlgoRSAv01, CertAlgoDSAv01, CertAlgoECDSA256v01, CertAlgoECDSA384v01, CertAlgoECDSA521v01, CertAlgoED25519v01, KeyAlgoECDSA256, KeyAlgoECDSA384, KeyAlgoECDSA521, - KeyAlgoRSASHA512, KeyAlgoRSASHA256, + KeyAlgoRSASHA256, KeyAlgoRSASHA512, KeyAlgoRSA, KeyAlgoDSA, KeyAlgoED25519, @@ -85,7 +87,7 @@ var supportedHostKeyAlgos = []string{ // This is based on RFC 4253, section 6.4, but with hmac-md5 variants removed // because they have reached the end of their useful life. var supportedMACs = []string{ - "hmac-sha2-256-etm@openssh.com", "hmac-sha2-256", "hmac-sha1", "hmac-sha1-96", + "hmac-sha2-256-etm@openssh.com", "hmac-sha2-512-etm@openssh.com", "hmac-sha2-256", "hmac-sha2-512", "hmac-sha1", "hmac-sha1-96", } var supportedCompressions = []string{compressionNone} @@ -119,6 +121,13 @@ func algorithmsForKeyFormat(keyFormat string) []string { } } +// isRSA returns whether algo is a supported RSA algorithm, including certificate +// algorithms. +func isRSA(algo string) bool { + algos := algorithmsForKeyFormat(KeyAlgoRSA) + return contains(algos, underlyingAlgo(algo)) +} + // supportedPubKeyAuthAlgos specifies the supported client public key // authentication algorithms. Note that this doesn't include certificate types // since those use the underlying algorithm. This list is sent to the client if @@ -262,16 +271,16 @@ type Config struct { // unspecified, a size suitable for the chosen cipher is used. RekeyThreshold uint64 - // The allowed key exchanges algorithms. If unspecified then a - // default set of algorithms is used. + // The allowed key exchanges algorithms. If unspecified then a default set + // of algorithms is used. Unsupported values are silently ignored. KeyExchanges []string - // The allowed cipher algorithms. If unspecified then a sensible - // default is used. + // The allowed cipher algorithms. If unspecified then a sensible default is + // used. Unsupported values are silently ignored. Ciphers []string - // The allowed MAC algorithms. If unspecified then a sensible default - // is used. + // The allowed MAC algorithms. If unspecified then a sensible default is + // used. Unsupported values are silently ignored. MACs []string } @@ -288,7 +297,7 @@ func (c *Config) SetDefaults() { var ciphers []string for _, c := range c.Ciphers { if cipherModes[c] != nil { - // reject the cipher if we have no cipherModes definition + // Ignore the cipher if we have no cipherModes definition. ciphers = append(ciphers, c) } } @@ -297,10 +306,26 @@ func (c *Config) SetDefaults() { if c.KeyExchanges == nil { c.KeyExchanges = preferredKexAlgos } + var kexs []string + for _, k := range c.KeyExchanges { + if kexAlgoMap[k] != nil { + // Ignore the KEX if we have no kexAlgoMap definition. + kexs = append(kexs, k) + } + } + c.KeyExchanges = kexs if c.MACs == nil { c.MACs = supportedMACs } + var macs []string + for _, m := range c.MACs { + if macModes[m] != nil { + // Ignore the MAC if we have no macModes definition. + macs = append(macs, m) + } + } + c.MACs = macs if c.RekeyThreshold == 0 { // cipher specific default diff --git a/vendor/golang.org/x/crypto/ssh/kex.go b/vendor/golang.org/x/crypto/ssh/kex.go index 927a90cd46f8..8a05f79902c0 100644 --- a/vendor/golang.org/x/crypto/ssh/kex.go +++ b/vendor/golang.org/x/crypto/ssh/kex.go @@ -23,6 +23,7 @@ const ( kexAlgoDH1SHA1 = "diffie-hellman-group1-sha1" kexAlgoDH14SHA1 = "diffie-hellman-group14-sha1" kexAlgoDH14SHA256 = "diffie-hellman-group14-sha256" + kexAlgoDH16SHA512 = "diffie-hellman-group16-sha512" kexAlgoECDH256 = "ecdh-sha2-nistp256" kexAlgoECDH384 = "ecdh-sha2-nistp384" kexAlgoECDH521 = "ecdh-sha2-nistp521" @@ -430,6 +431,17 @@ func init() { hashFunc: crypto.SHA256, } + // This is the group called diffie-hellman-group16-sha512 in RFC + // 8268 and Oakley Group 16 in RFC 3526. + p, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF", 16) + + kexAlgoMap[kexAlgoDH16SHA512] = &dhGroup{ + g: new(big.Int).SetInt64(2), + p: p, + pMinus1: new(big.Int).Sub(p, bigOne), + hashFunc: crypto.SHA512, + } + kexAlgoMap[kexAlgoECDH521] = &ecdh{elliptic.P521()} kexAlgoMap[kexAlgoECDH384] = &ecdh{elliptic.P384()} kexAlgoMap[kexAlgoECDH256] = &ecdh{elliptic.P256()} diff --git a/vendor/golang.org/x/crypto/ssh/mac.go b/vendor/golang.org/x/crypto/ssh/mac.go index c07a06285e66..06a1b27507ee 100644 --- a/vendor/golang.org/x/crypto/ssh/mac.go +++ b/vendor/golang.org/x/crypto/ssh/mac.go @@ -10,6 +10,7 @@ import ( "crypto/hmac" "crypto/sha1" "crypto/sha256" + "crypto/sha512" "hash" ) @@ -46,9 +47,15 @@ func (t truncatingMAC) Size() int { func (t truncatingMAC) BlockSize() int { return t.hmac.BlockSize() } var macModes = map[string]*macMode{ + "hmac-sha2-512-etm@openssh.com": {64, true, func(key []byte) hash.Hash { + return hmac.New(sha512.New, key) + }}, "hmac-sha2-256-etm@openssh.com": {32, true, func(key []byte) hash.Hash { return hmac.New(sha256.New, key) }}, + "hmac-sha2-512": {64, false, func(key []byte) hash.Hash { + return hmac.New(sha512.New, key) + }}, "hmac-sha2-256": {32, false, func(key []byte) hash.Hash { return hmac.New(sha256.New, key) }}, diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go index 9e3870292fae..b21322affa8a 100644 --- a/vendor/golang.org/x/crypto/ssh/server.go +++ b/vendor/golang.org/x/crypto/ssh/server.go @@ -370,6 +370,25 @@ func gssExchangeToken(gssapiConfig *GSSAPIWithMICConfig, firstToken []byte, s *c return authErr, perms, nil } +// isAlgoCompatible checks if the signature format is compatible with the +// selected algorithm taking into account edge cases that occur with old +// clients. +func isAlgoCompatible(algo, sigFormat string) bool { + // Compatibility for old clients. + // + // For certificate authentication with OpenSSH 7.2-7.7 signature format can + // be rsa-sha2-256 or rsa-sha2-512 for the algorithm + // ssh-rsa-cert-v01@openssh.com. + // + // With gpg-agent < 2.2.6 the algorithm can be rsa-sha2-256 or rsa-sha2-512 + // for signature format ssh-rsa. + if isRSA(algo) && isRSA(sigFormat) { + return true + } + // Standard case: the underlying algorithm must match the signature format. + return underlyingAlgo(algo) == sigFormat +} + // ServerAuthError represents server authentication errors and is // sometimes returned by NewServerConn. It appends any authentication // errors that may occur, and is returned if all of the authentication @@ -567,7 +586,7 @@ userAuthLoop: authErr = fmt.Errorf("ssh: algorithm %q not accepted", sig.Format) break } - if underlyingAlgo(algo) != sig.Format { + if !isAlgoCompatible(algo, sig.Format) { authErr = fmt.Errorf("ssh: signature %q not compatible with selected algorithm %q", sig.Format, algo) break } diff --git a/vendor/golang.org/x/exp/LICENSE b/vendor/golang.org/x/exp/LICENSE new file mode 100644 index 000000000000..6a66aea5eafe --- /dev/null +++ b/vendor/golang.org/x/exp/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/exp/PATENTS b/vendor/golang.org/x/exp/PATENTS new file mode 100644 index 000000000000..733099041f84 --- /dev/null +++ b/vendor/golang.org/x/exp/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/exp/constraints/constraints.go b/vendor/golang.org/x/exp/constraints/constraints.go new file mode 100644 index 000000000000..2c033dff47e9 --- /dev/null +++ b/vendor/golang.org/x/exp/constraints/constraints.go @@ -0,0 +1,50 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package constraints defines a set of useful constraints to be used +// with type parameters. +package constraints + +// Signed is a constraint that permits any signed integer type. +// If future releases of Go add new predeclared signed integer types, +// this constraint will be modified to include them. +type Signed interface { + ~int | ~int8 | ~int16 | ~int32 | ~int64 +} + +// Unsigned is a constraint that permits any unsigned integer type. +// If future releases of Go add new predeclared unsigned integer types, +// this constraint will be modified to include them. +type Unsigned interface { + ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr +} + +// Integer is a constraint that permits any integer type. +// If future releases of Go add new predeclared integer types, +// this constraint will be modified to include them. +type Integer interface { + Signed | Unsigned +} + +// Float is a constraint that permits any floating-point type. +// If future releases of Go add new predeclared floating-point types, +// this constraint will be modified to include them. +type Float interface { + ~float32 | ~float64 +} + +// Complex is a constraint that permits any complex numeric type. +// If future releases of Go add new predeclared complex numeric types, +// this constraint will be modified to include them. +type Complex interface { + ~complex64 | ~complex128 +} + +// Ordered is a constraint that permits any ordered type: any type +// that supports the operators < <= >= >. +// If future releases of Go add new ordered types, +// this constraint will be modified to include them. +type Ordered interface { + Integer | Float | ~string +} diff --git a/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go b/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go index 2681af35af19..150f887e7a4b 100644 --- a/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go +++ b/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go @@ -13,7 +13,7 @@ import ( "sync" ) -// Regexp is a wrapper around regexp.Regexp, where the underlying regexp will be +// Regexp is a wrapper around [regexp.Regexp], where the underlying regexp will be // compiled the first time it is needed. type Regexp struct { str string diff --git a/vendor/golang.org/x/mod/modfile/print.go b/vendor/golang.org/x/mod/modfile/print.go index 524f93022ac0..2a0123d4b915 100644 --- a/vendor/golang.org/x/mod/modfile/print.go +++ b/vendor/golang.org/x/mod/modfile/print.go @@ -16,7 +16,13 @@ import ( func Format(f *FileSyntax) []byte { pr := &printer{} pr.file(f) - return pr.Bytes() + + // remove trailing blank lines + b := pr.Bytes() + for len(b) > 0 && b[len(b)-1] == '\n' && (len(b) == 1 || b[len(b)-2] == '\n') { + b = b[:len(b)-1] + } + return b } // A printer collects the state during printing of a file or expression. @@ -59,7 +65,11 @@ func (p *printer) newline() { } p.trim() - p.printf("\n") + if b := p.Bytes(); len(b) == 0 || (len(b) >= 2 && b[len(b)-1] == '\n' && b[len(b)-2] == '\n') { + // skip the blank line at top of file or after a blank line + } else { + p.printf("\n") + } for i := 0; i < p.margin; i++ { p.printf("\t") } diff --git a/vendor/golang.org/x/mod/modfile/read.go b/vendor/golang.org/x/mod/modfile/read.go index a503bc2105df..5b5bb5e115b3 100644 --- a/vendor/golang.org/x/mod/modfile/read.go +++ b/vendor/golang.org/x/mod/modfile/read.go @@ -65,7 +65,7 @@ type Comments struct { } // Comment returns the receiver. This isn't useful by itself, but -// a Comments struct is embedded into all the expression +// a [Comments] struct is embedded into all the expression // implementation types, and this gives each of those a Comment // method to satisfy the Expr interface. func (c *Comments) Comment() *Comments { diff --git a/vendor/golang.org/x/mod/modfile/rule.go b/vendor/golang.org/x/mod/modfile/rule.go index 6bcde8fabe38..930b6c59bc96 100644 --- a/vendor/golang.org/x/mod/modfile/rule.go +++ b/vendor/golang.org/x/mod/modfile/rule.go @@ -5,17 +5,17 @@ // Package modfile implements a parser and formatter for go.mod files. // // The go.mod syntax is described in -// https://golang.org/cmd/go/#hdr-The_go_mod_file. +// https://pkg.go.dev/cmd/go/#hdr-The_go_mod_file. // -// The Parse and ParseLax functions both parse a go.mod file and return an +// The [Parse] and [ParseLax] functions both parse a go.mod file and return an // abstract syntax tree. ParseLax ignores unknown statements and may be used to // parse go.mod files that may have been developed with newer versions of Go. // -// The File struct returned by Parse and ParseLax represent an abstract -// go.mod file. File has several methods like AddNewRequire and DropReplace -// that can be used to programmatically edit a file. +// The [File] struct returned by Parse and ParseLax represent an abstract +// go.mod file. File has several methods like [File.AddNewRequire] and +// [File.DropReplace] that can be used to programmatically edit a file. // -// The Format function formats a File back to a byte slice which can be +// The [Format] function formats a File back to a byte slice which can be // written to a file. package modfile @@ -35,12 +35,13 @@ import ( // A File is the parsed, interpreted form of a go.mod file. type File struct { - Module *Module - Go *Go - Require []*Require - Exclude []*Exclude - Replace []*Replace - Retract []*Retract + Module *Module + Go *Go + Toolchain *Toolchain + Require []*Require + Exclude []*Exclude + Replace []*Replace + Retract []*Retract Syntax *FileSyntax } @@ -58,6 +59,12 @@ type Go struct { Syntax *Line } +// A Toolchain is the toolchain statement. +type Toolchain struct { + Name string // "go1.21rc1" + Syntax *Line +} + // An Exclude is a single exclude statement. type Exclude struct { Mod module.Version @@ -219,7 +226,7 @@ var dontFixRetract VersionFixer = func(_, vers string) (string, error) { // data is the content of the file. // // fix is an optional function that canonicalizes module versions. -// If fix is nil, all module versions must be canonical (module.CanonicalVersion +// If fix is nil, all module versions must be canonical ([module.CanonicalVersion] // must return the same string). func Parse(file string, data []byte, fix VersionFixer) (*File, error) { return parseToFile(file, data, fix, true) @@ -296,9 +303,13 @@ func parseToFile(file string, data []byte, fix VersionFixer, strict bool) (parse return f, nil } -var GoVersionRE = lazyregexp.New(`^([1-9][0-9]*)\.(0|[1-9][0-9]*)$`) +var GoVersionRE = lazyregexp.New(`^([1-9][0-9]*)\.(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))?([a-z]+[0-9]+)?$`) var laxGoVersionRE = lazyregexp.New(`^v?(([1-9][0-9]*)\.(0|[1-9][0-9]*))([^0-9].*)$`) +// Toolchains must be named beginning with `go1`, +// like "go1.20.3" or "go1.20.3-gccgo". As a special case, "default" is also permitted. +var ToolchainRE = lazyregexp.New(`^default$|^go1($|\.)`) + func (f *File) add(errs *ErrorList, block *LineBlock, line *Line, verb string, args []string, fix VersionFixer, strict bool) { // If strict is false, this module is a dependency. // We ignore all unknown directives as well as main-module-only @@ -364,6 +375,21 @@ func (f *File) add(errs *ErrorList, block *LineBlock, line *Line, verb string, a f.Go = &Go{Syntax: line} f.Go.Version = args[0] + case "toolchain": + if f.Toolchain != nil { + errorf("repeated toolchain statement") + return + } + if len(args) != 1 { + errorf("toolchain directive expects exactly one argument") + return + } else if strict && !ToolchainRE.MatchString(args[0]) { + errorf("invalid toolchain version '%s': must match format go1.23 or local", args[0]) + return + } + f.Toolchain = &Toolchain{Syntax: line} + f.Toolchain.Name = args[0] + case "module": if f.Module != nil { errorf("repeated module statement") @@ -612,6 +638,22 @@ func (f *WorkFile) add(errs *ErrorList, line *Line, verb string, args []string, f.Go = &Go{Syntax: line} f.Go.Version = args[0] + case "toolchain": + if f.Toolchain != nil { + errorf("repeated toolchain statement") + return + } + if len(args) != 1 { + errorf("toolchain directive expects exactly one argument") + return + } else if !ToolchainRE.MatchString(args[0]) { + errorf("invalid toolchain version '%s': must match format go1.23 or local", args[0]) + return + } + + f.Toolchain = &Toolchain{Syntax: line} + f.Toolchain.Name = args[0] + case "use": if len(args) != 1 { errorf("usage: %s local/dir", verb) @@ -881,7 +923,7 @@ func (f *File) Format() ([]byte, error) { } // Cleanup cleans up the file f after any edit operations. -// To avoid quadratic behavior, modifications like DropRequire +// To avoid quadratic behavior, modifications like [File.DropRequire] // clear the entry but do not remove it from the slice. // Cleanup cleans out all the cleared entries. func (f *File) Cleanup() { @@ -926,7 +968,7 @@ func (f *File) Cleanup() { func (f *File) AddGoStmt(version string) error { if !GoVersionRE.MatchString(version) { - return fmt.Errorf("invalid language version string %q", version) + return fmt.Errorf("invalid language version %q", version) } if f.Go == nil { var hint Expr @@ -944,6 +986,44 @@ func (f *File) AddGoStmt(version string) error { return nil } +// DropGoStmt deletes the go statement from the file. +func (f *File) DropGoStmt() { + if f.Go != nil { + f.Go.Syntax.markRemoved() + f.Go = nil + } +} + +// DropToolchainStmt deletes the toolchain statement from the file. +func (f *File) DropToolchainStmt() { + if f.Toolchain != nil { + f.Toolchain.Syntax.markRemoved() + f.Toolchain = nil + } +} + +func (f *File) AddToolchainStmt(name string) error { + if !ToolchainRE.MatchString(name) { + return fmt.Errorf("invalid toolchain name %q", name) + } + if f.Toolchain == nil { + var hint Expr + if f.Go != nil && f.Go.Syntax != nil { + hint = f.Go.Syntax + } else if f.Module != nil && f.Module.Syntax != nil { + hint = f.Module.Syntax + } + f.Toolchain = &Toolchain{ + Name: name, + Syntax: f.Syntax.addLine(hint, "toolchain", name), + } + } else { + f.Toolchain.Name = name + f.Syntax.updateLine(f.Toolchain.Syntax, "toolchain", name) + } + return nil +} + // AddRequire sets the first require line for path to version vers, // preserving any existing comments for that line and removing all // other lines for path. @@ -995,8 +1075,8 @@ func (f *File) AddNewRequire(path, vers string, indirect bool) { // The requirements in req must specify at most one distinct version for each // module path. // -// If any existing requirements may be removed, the caller should call Cleanup -// after all edits are complete. +// If any existing requirements may be removed, the caller should call +// [File.Cleanup] after all edits are complete. func (f *File) SetRequire(req []*Require) { type elem struct { version string @@ -1387,13 +1467,21 @@ func (f *File) DropRetract(vi VersionInterval) error { func (f *File) SortBlocks() { f.removeDups() // otherwise sorting is unsafe + // semanticSortForExcludeVersionV is the Go version (plus leading "v") at which + // lines in exclude blocks start to use semantic sort instead of lexicographic sort. + // See go.dev/issue/60028. + const semanticSortForExcludeVersionV = "v1.21" + useSemanticSortForExclude := f.Go != nil && semver.Compare("v"+f.Go.Version, semanticSortForExcludeVersionV) >= 0 + for _, stmt := range f.Syntax.Stmt { block, ok := stmt.(*LineBlock) if !ok { continue } less := lineLess - if block.Token[0] == "retract" { + if block.Token[0] == "exclude" && useSemanticSortForExclude { + less = lineExcludeLess + } else if block.Token[0] == "retract" { less = lineRetractLess } sort.SliceStable(block.Line, func(i, j int) bool { @@ -1496,6 +1584,22 @@ func lineLess(li, lj *Line) bool { return len(li.Token) < len(lj.Token) } +// lineExcludeLess reports whether li should be sorted before lj for lines in +// an "exclude" block. +func lineExcludeLess(li, lj *Line) bool { + if len(li.Token) != 2 || len(lj.Token) != 2 { + // Not a known exclude specification. + // Fall back to sorting lexicographically. + return lineLess(li, lj) + } + // An exclude specification has two tokens: ModulePath and Version. + // Compare module path by string order and version by semver rules. + if pi, pj := li.Token[0], lj.Token[0]; pi != pj { + return pi < pj + } + return semver.Compare(li.Token[1], lj.Token[1]) < 0 +} + // lineRetractLess returns whether li should be sorted before lj for lines in // a "retract" block. It treats each line as a version interval. Single versions // are compared as if they were intervals with the same low and high version. diff --git a/vendor/golang.org/x/mod/modfile/work.go b/vendor/golang.org/x/mod/modfile/work.go index 0c0e521525a9..d7b99376ebe7 100644 --- a/vendor/golang.org/x/mod/modfile/work.go +++ b/vendor/golang.org/x/mod/modfile/work.go @@ -12,9 +12,10 @@ import ( // A WorkFile is the parsed, interpreted form of a go.work file. type WorkFile struct { - Go *Go - Use []*Use - Replace []*Replace + Go *Go + Toolchain *Toolchain + Use []*Use + Replace []*Replace Syntax *FileSyntax } @@ -33,7 +34,7 @@ type Use struct { // data is the content of the file. // // fix is an optional function that canonicalizes module versions. -// If fix is nil, all module versions must be canonical (module.CanonicalVersion +// If fix is nil, all module versions must be canonical ([module.CanonicalVersion] // must return the same string). func ParseWork(file string, data []byte, fix VersionFixer) (*WorkFile, error) { fs, err := parse(file, data) @@ -82,7 +83,7 @@ func ParseWork(file string, data []byte, fix VersionFixer) (*WorkFile, error) { } // Cleanup cleans up the file f after any edit operations. -// To avoid quadratic behavior, modifications like DropRequire +// To avoid quadratic behavior, modifications like [WorkFile.DropRequire] // clear the entry but do not remove it from the slice. // Cleanup cleans out all the cleared entries. func (f *WorkFile) Cleanup() { @@ -109,7 +110,7 @@ func (f *WorkFile) Cleanup() { func (f *WorkFile) AddGoStmt(version string) error { if !GoVersionRE.MatchString(version) { - return fmt.Errorf("invalid language version string %q", version) + return fmt.Errorf("invalid language version %q", version) } if f.Go == nil { stmt := &Line{Token: []string{"go", version}} @@ -117,7 +118,7 @@ func (f *WorkFile) AddGoStmt(version string) error { Version: version, Syntax: stmt, } - // Find the first non-comment-only block that's and add + // Find the first non-comment-only block and add // the go statement before it. That will keep file comments at the top. i := 0 for i = 0; i < len(f.Syntax.Stmt); i++ { @@ -133,6 +134,56 @@ func (f *WorkFile) AddGoStmt(version string) error { return nil } +func (f *WorkFile) AddToolchainStmt(name string) error { + if !ToolchainRE.MatchString(name) { + return fmt.Errorf("invalid toolchain name %q", name) + } + if f.Toolchain == nil { + stmt := &Line{Token: []string{"toolchain", name}} + f.Toolchain = &Toolchain{ + Name: name, + Syntax: stmt, + } + // Find the go line and add the toolchain line after it. + // Or else find the first non-comment-only block and add + // the toolchain line before it. That will keep file comments at the top. + i := 0 + for i = 0; i < len(f.Syntax.Stmt); i++ { + if line, ok := f.Syntax.Stmt[i].(*Line); ok && len(line.Token) > 0 && line.Token[0] == "go" { + i++ + goto Found + } + } + for i = 0; i < len(f.Syntax.Stmt); i++ { + if _, ok := f.Syntax.Stmt[i].(*CommentBlock); !ok { + break + } + } + Found: + f.Syntax.Stmt = append(append(f.Syntax.Stmt[:i:i], stmt), f.Syntax.Stmt[i:]...) + } else { + f.Toolchain.Name = name + f.Syntax.updateLine(f.Toolchain.Syntax, "toolchain", name) + } + return nil +} + +// DropGoStmt deletes the go statement from the file. +func (f *WorkFile) DropGoStmt() { + if f.Go != nil { + f.Go.Syntax.markRemoved() + f.Go = nil + } +} + +// DropToolchainStmt deletes the toolchain statement from the file. +func (f *WorkFile) DropToolchainStmt() { + if f.Toolchain != nil { + f.Toolchain.Syntax.markRemoved() + f.Toolchain = nil + } +} + func (f *WorkFile) AddUse(diskPath, modulePath string) error { need := true for _, d := range f.Use { diff --git a/vendor/golang.org/x/mod/module/module.go b/vendor/golang.org/x/mod/module/module.go index e9dec6e61487..2a364b229b9f 100644 --- a/vendor/golang.org/x/mod/module/module.go +++ b/vendor/golang.org/x/mod/module/module.go @@ -4,7 +4,7 @@ // Package module defines the module.Version type along with support code. // -// The module.Version type is a simple Path, Version pair: +// The [module.Version] type is a simple Path, Version pair: // // type Version struct { // Path string @@ -12,7 +12,7 @@ // } // // There are no restrictions imposed directly by use of this structure, -// but additional checking functions, most notably Check, verify that +// but additional checking functions, most notably [Check], verify that // a particular path, version pair is valid. // // # Escaped Paths @@ -140,7 +140,7 @@ type ModuleError struct { Err error } -// VersionError returns a ModuleError derived from a Version and error, +// VersionError returns a [ModuleError] derived from a [Version] and error, // or err itself if it is already such an error. func VersionError(v Version, err error) error { var mErr *ModuleError @@ -169,7 +169,7 @@ func (e *ModuleError) Unwrap() error { return e.Err } // An InvalidVersionError indicates an error specific to a version, with the // module path unknown or specified externally. // -// A ModuleError may wrap an InvalidVersionError, but an InvalidVersionError +// A [ModuleError] may wrap an InvalidVersionError, but an InvalidVersionError // must not wrap a ModuleError. type InvalidVersionError struct { Version string @@ -193,8 +193,8 @@ func (e *InvalidVersionError) Error() string { func (e *InvalidVersionError) Unwrap() error { return e.Err } // An InvalidPathError indicates a module, import, or file path doesn't -// satisfy all naming constraints. See CheckPath, CheckImportPath, -// and CheckFilePath for specific restrictions. +// satisfy all naming constraints. See [CheckPath], [CheckImportPath], +// and [CheckFilePath] for specific restrictions. type InvalidPathError struct { Kind string // "module", "import", or "file" Path string @@ -294,7 +294,7 @@ func fileNameOK(r rune) bool { } // CheckPath checks that a module path is valid. -// A valid module path is a valid import path, as checked by CheckImportPath, +// A valid module path is a valid import path, as checked by [CheckImportPath], // with three additional constraints. // First, the leading path element (up to the first slash, if any), // by convention a domain name, must contain only lower-case ASCII letters, @@ -380,7 +380,7 @@ const ( // checkPath returns an error describing why the path is not valid. // Because these checks apply to module, import, and file paths, // and because other checks may be applied, the caller is expected to wrap -// this error with InvalidPathError. +// this error with [InvalidPathError]. func checkPath(path string, kind pathKind) error { if !utf8.ValidString(path) { return fmt.Errorf("invalid UTF-8") @@ -532,7 +532,7 @@ var badWindowsNames = []string{ // they require ".vN" instead of "/vN", and for all N, not just N >= 2. // SplitPathVersion returns with ok = false when presented with // a path whose last path element does not satisfy the constraints -// applied by CheckPath, such as "example.com/pkg/v1" or "example.com/pkg/v1.2". +// applied by [CheckPath], such as "example.com/pkg/v1" or "example.com/pkg/v1.2". func SplitPathVersion(path string) (prefix, pathMajor string, ok bool) { if strings.HasPrefix(path, "gopkg.in/") { return splitGopkgIn(path) @@ -582,7 +582,7 @@ func splitGopkgIn(path string) (prefix, pathMajor string, ok bool) { // MatchPathMajor reports whether the semantic version v // matches the path major version pathMajor. // -// MatchPathMajor returns true if and only if CheckPathMajor returns nil. +// MatchPathMajor returns true if and only if [CheckPathMajor] returns nil. func MatchPathMajor(v, pathMajor string) bool { return CheckPathMajor(v, pathMajor) == nil } @@ -622,7 +622,7 @@ func CheckPathMajor(v, pathMajor string) error { // PathMajorPrefix returns the major-version tag prefix implied by pathMajor. // An empty PathMajorPrefix allows either v0 or v1. // -// Note that MatchPathMajor may accept some versions that do not actually begin +// Note that [MatchPathMajor] may accept some versions that do not actually begin // with this prefix: namely, it accepts a 'v0.0.0-' prefix for a '.v1' // pathMajor, even though that pathMajor implies 'v1' tagging. func PathMajorPrefix(pathMajor string) string { @@ -643,7 +643,7 @@ func PathMajorPrefix(pathMajor string) string { } // CanonicalVersion returns the canonical form of the version string v. -// It is the same as semver.Canonical(v) except that it preserves the special build suffix "+incompatible". +// It is the same as [semver.Canonical] except that it preserves the special build suffix "+incompatible". func CanonicalVersion(v string) string { cv := semver.Canonical(v) if semver.Build(v) == "+incompatible" { @@ -652,8 +652,8 @@ func CanonicalVersion(v string) string { return cv } -// Sort sorts the list by Path, breaking ties by comparing Version fields. -// The Version fields are interpreted as semantic versions (using semver.Compare) +// Sort sorts the list by Path, breaking ties by comparing [Version] fields. +// The Version fields are interpreted as semantic versions (using [semver.Compare]) // optionally followed by a tie-breaking suffix introduced by a slash character, // like in "v0.0.1/go.mod". func Sort(list []Version) { @@ -793,7 +793,7 @@ func unescapeString(escaped string) (string, bool) { } // MatchPrefixPatterns reports whether any path prefix of target matches one of -// the glob patterns (as defined by path.Match) in the comma-separated globs +// the glob patterns (as defined by [path.Match]) in the comma-separated globs // list. This implements the algorithm used when matching a module path to the // GOPRIVATE environment variable, as described by 'go help module-private'. // diff --git a/vendor/golang.org/x/mod/module/pseudo.go b/vendor/golang.org/x/mod/module/pseudo.go index f04ad3788694..9cf19d3254eb 100644 --- a/vendor/golang.org/x/mod/module/pseudo.go +++ b/vendor/golang.org/x/mod/module/pseudo.go @@ -125,7 +125,7 @@ func IsPseudoVersion(v string) bool { } // IsZeroPseudoVersion returns whether v is a pseudo-version with a zero base, -// timestamp, and revision, as returned by ZeroPseudoVersion. +// timestamp, and revision, as returned by [ZeroPseudoVersion]. func IsZeroPseudoVersion(v string) bool { return v == ZeroPseudoVersion(semver.Major(v)) } diff --git a/vendor/golang.org/x/mod/semver/semver.go b/vendor/golang.org/x/mod/semver/semver.go index a30a22bf20f1..9a2dfd33a770 100644 --- a/vendor/golang.org/x/mod/semver/semver.go +++ b/vendor/golang.org/x/mod/semver/semver.go @@ -140,7 +140,7 @@ func Compare(v, w string) int { // Max canonicalizes its arguments and then returns the version string // that compares greater. // -// Deprecated: use Compare instead. In most cases, returning a canonicalized +// Deprecated: use [Compare] instead. In most cases, returning a canonicalized // version is not expected or desired. func Max(v, w string) string { v = Canonical(v) @@ -151,7 +151,7 @@ func Max(v, w string) string { return w } -// ByVersion implements sort.Interface for sorting semantic version strings. +// ByVersion implements [sort.Interface] for sorting semantic version strings. type ByVersion []string func (vs ByVersion) Len() int { return len(vs) } @@ -164,7 +164,7 @@ func (vs ByVersion) Less(i, j int) bool { return vs[i] < vs[j] } -// Sort sorts a list of semantic version strings using ByVersion. +// Sort sorts a list of semantic version strings using [ByVersion]. func Sort(list []string) { sort.Sort(ByVersion(list)) } diff --git a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go b/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go deleted file mode 100644 index 37dc0cfdb5b0..000000000000 --- a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package ctxhttp provides helper functions for performing context-aware HTTP requests. -package ctxhttp // import "golang.org/x/net/context/ctxhttp" - -import ( - "context" - "io" - "net/http" - "net/url" - "strings" -) - -// Do sends an HTTP request with the provided http.Client and returns -// an HTTP response. -// -// If the client is nil, http.DefaultClient is used. -// -// The provided ctx must be non-nil. If it is canceled or times out, -// ctx.Err() will be returned. -func Do(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error) { - if client == nil { - client = http.DefaultClient - } - resp, err := client.Do(req.WithContext(ctx)) - // If we got an error, and the context has been canceled, - // the context's error is probably more useful. - if err != nil { - select { - case <-ctx.Done(): - err = ctx.Err() - default: - } - } - return resp, err -} - -// Get issues a GET request via the Do function. -func Get(ctx context.Context, client *http.Client, url string) (*http.Response, error) { - req, err := http.NewRequest("GET", url, nil) - if err != nil { - return nil, err - } - return Do(ctx, client, req) -} - -// Head issues a HEAD request via the Do function. -func Head(ctx context.Context, client *http.Client, url string) (*http.Response, error) { - req, err := http.NewRequest("HEAD", url, nil) - if err != nil { - return nil, err - } - return Do(ctx, client, req) -} - -// Post issues a POST request via the Do function. -func Post(ctx context.Context, client *http.Client, url string, bodyType string, body io.Reader) (*http.Response, error) { - req, err := http.NewRequest("POST", url, body) - if err != nil { - return nil, err - } - req.Header.Set("Content-Type", bodyType) - return Do(ctx, client, req) -} - -// PostForm issues a POST request via the Do function. -func PostForm(ctx context.Context, client *http.Client, url string, data url.Values) (*http.Response, error) { - return Post(ctx, client, url, "application/x-www-form-urlencoded", strings.NewReader(data.Encode())) -} diff --git a/vendor/golang.org/x/net/http2/Dockerfile b/vendor/golang.org/x/net/http2/Dockerfile deleted file mode 100644 index 8512245952be..000000000000 --- a/vendor/golang.org/x/net/http2/Dockerfile +++ /dev/null @@ -1,51 +0,0 @@ -# -# This Dockerfile builds a recent curl with HTTP/2 client support, using -# a recent nghttp2 build. -# -# See the Makefile for how to tag it. If Docker and that image is found, the -# Go tests use this curl binary for integration tests. -# - -FROM ubuntu:trusty - -RUN apt-get update && \ - apt-get upgrade -y && \ - apt-get install -y git-core build-essential wget - -RUN apt-get install -y --no-install-recommends \ - autotools-dev libtool pkg-config zlib1g-dev \ - libcunit1-dev libssl-dev libxml2-dev libevent-dev \ - automake autoconf - -# The list of packages nghttp2 recommends for h2load: -RUN apt-get install -y --no-install-recommends make binutils \ - autoconf automake autotools-dev \ - libtool pkg-config zlib1g-dev libcunit1-dev libssl-dev libxml2-dev \ - libev-dev libevent-dev libjansson-dev libjemalloc-dev \ - cython python3.4-dev python-setuptools - -# Note: setting NGHTTP2_VER before the git clone, so an old git clone isn't cached: -ENV NGHTTP2_VER 895da9a -RUN cd /root && git clone https://github.com/tatsuhiro-t/nghttp2.git - -WORKDIR /root/nghttp2 -RUN git reset --hard $NGHTTP2_VER -RUN autoreconf -i -RUN automake -RUN autoconf -RUN ./configure -RUN make -RUN make install - -WORKDIR /root -RUN wget https://curl.se/download/curl-7.45.0.tar.gz -RUN tar -zxvf curl-7.45.0.tar.gz -WORKDIR /root/curl-7.45.0 -RUN ./configure --with-ssl --with-nghttp2=/usr/local -RUN make -RUN make install -RUN ldconfig - -CMD ["-h"] -ENTRYPOINT ["/usr/local/bin/curl"] - diff --git a/vendor/golang.org/x/net/http2/Makefile b/vendor/golang.org/x/net/http2/Makefile deleted file mode 100644 index 55fd826f77bd..000000000000 --- a/vendor/golang.org/x/net/http2/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -curlimage: - docker build -t gohttp2/curl . - diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go index cd057f398248..6d5e008874b1 100644 --- a/vendor/golang.org/x/net/http2/server.go +++ b/vendor/golang.org/x/net/http2/server.go @@ -441,7 +441,7 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { if s.NewWriteScheduler != nil { sc.writeSched = s.NewWriteScheduler() } else { - sc.writeSched = NewPriorityWriteScheduler(nil) + sc.writeSched = newRoundRobinWriteScheduler() } // These start at the RFC-specified defaults. If there is a higher @@ -1012,14 +1012,6 @@ func (sc *serverConn) serve() { } } -func (sc *serverConn) awaitGracefulShutdown(sharedCh <-chan struct{}, privateCh chan struct{}) { - select { - case <-sc.doneServing: - case <-sharedCh: - close(privateCh) - } -} - type serverMessage int // Message values sent to serveMsgCh. @@ -2429,7 +2421,7 @@ type requestBody struct { conn *serverConn closeOnce sync.Once // for use by Close only sawEOF bool // for use by Read only - pipe *pipe // non-nil if we have a HTTP entity message body + pipe *pipe // non-nil if we have an HTTP entity message body needsContinue bool // need to send a 100-continue } @@ -2569,7 +2561,8 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) { clen = "" } } - if clen == "" && rws.handlerDone && bodyAllowedForStatus(rws.status) && (len(p) > 0 || !isHeadResp) { + _, hasContentLength := rws.snapHeader["Content-Length"] + if !hasContentLength && clen == "" && rws.handlerDone && bodyAllowedForStatus(rws.status) && (len(p) > 0 || !isHeadResp) { clen = strconv.Itoa(len(p)) } _, hasContentType := rws.snapHeader["Content-Type"] @@ -2774,7 +2767,7 @@ func (w *responseWriter) FlushError() error { err = rws.bw.Flush() } else { // The bufio.Writer won't call chunkWriter.Write - // (writeChunk with zero bytes, so we have to do it + // (writeChunk with zero bytes), so we have to do it // ourselves to force the HTTP response header and/or // final DATA frame (with END_STREAM) to be sent. _, err = chunkWriter{rws}.Write(nil) diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go index ac90a2631c9e..4515b22c4a16 100644 --- a/vendor/golang.org/x/net/http2/transport.go +++ b/vendor/golang.org/x/net/http2/transport.go @@ -19,6 +19,7 @@ import ( "io/fs" "log" "math" + "math/bits" mathrand "math/rand" "net" "net/http" @@ -290,8 +291,7 @@ func (t *Transport) initConnPool() { // HTTP/2 server. type ClientConn struct { t *Transport - tconn net.Conn // usually *tls.Conn, except specialized impls - tconnClosed bool + tconn net.Conn // usually *tls.Conn, except specialized impls tlsState *tls.ConnectionState // nil only for specialized impls reused uint32 // whether conn is being reused; atomic singleUse bool // whether being used for a single http.Request @@ -518,11 +518,14 @@ func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) { func authorityAddr(scheme string, authority string) (addr string) { host, port, err := net.SplitHostPort(authority) if err != nil { // authority didn't have a port + host = authority + port = "" + } + if port == "" { // authority's port was empty port = "443" if scheme == "http" { port = "80" } - host = authority } if a, err := idna.ToASCII(host); err == nil { host = a @@ -1268,21 +1271,23 @@ func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { cancelRequest := func(cs *clientStream, err error) error { cs.cc.mu.Lock() - defer cs.cc.mu.Unlock() - cs.abortStreamLocked(err) - if cs.ID != 0 { - // This request may have failed because of a problem with the connection, - // or for some unrelated reason. (For example, the user might have canceled - // the request without waiting for a response.) Mark the connection as - // not reusable, since trying to reuse a dead connection is worse than - // unnecessarily creating a new one. - // - // If cs.ID is 0, then the request was never allocated a stream ID and - // whatever went wrong was unrelated to the connection. We might have - // timed out waiting for a stream slot when StrictMaxConcurrentStreams - // is set, for example, in which case retrying on a different connection - // will not help. - cs.cc.doNotReuse = true + bodyClosed := cs.reqBodyClosed + cs.cc.mu.Unlock() + // Wait for the request body to be closed. + // + // If nothing closed the body before now, abortStreamLocked + // will have started a goroutine to close it. + // + // Closing the body before returning avoids a race condition + // with net/http checking its readTrackingBody to see if the + // body was read from or closed. See golang/go#60041. + // + // The body is closed in a separate goroutine without the + // connection mutex held, but dropping the mutex before waiting + // will keep us from holding it indefinitely if the body + // close is slow for some reason. + if bodyClosed != nil { + <-bodyClosed } return err } @@ -1301,11 +1306,14 @@ func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { return handleResponseHeaders() default: waitDone() - return nil, cancelRequest(cs, cs.abortErr) + return nil, cs.abortErr } case <-ctx.Done(): - return nil, cancelRequest(cs, ctx.Err()) + err := ctx.Err() + cs.abortStream(err) + return nil, cancelRequest(cs, err) case <-cs.reqCancel: + cs.abortStream(errRequestCanceled) return nil, cancelRequest(cs, errRequestCanceled) } } @@ -1672,7 +1680,27 @@ func (cs *clientStream) frameScratchBufferLen(maxFrameSize int) int { return int(n) // doesn't truncate; max is 512K } -var bufPool sync.Pool // of *[]byte +// Seven bufPools manage different frame sizes. This helps to avoid scenarios where long-running +// streaming requests using small frame sizes occupy large buffers initially allocated for prior +// requests needing big buffers. The size ranges are as follows: +// {0 KB, 16 KB], {16 KB, 32 KB], {32 KB, 64 KB], {64 KB, 128 KB], {128 KB, 256 KB], +// {256 KB, 512 KB], {512 KB, infinity} +// In practice, the maximum scratch buffer size should not exceed 512 KB due to +// frameScratchBufferLen(maxFrameSize), thus the "infinity pool" should never be used. +// It exists mainly as a safety measure, for potential future increases in max buffer size. +var bufPools [7]sync.Pool // of *[]byte +func bufPoolIndex(size int) int { + if size <= 16384 { + return 0 + } + size -= 1 + bits := bits.Len(uint(size)) + index := bits - 14 + if index >= len(bufPools) { + return len(bufPools) - 1 + } + return index +} func (cs *clientStream) writeRequestBody(req *http.Request) (err error) { cc := cs.cc @@ -1690,12 +1718,13 @@ func (cs *clientStream) writeRequestBody(req *http.Request) (err error) { // Scratch buffer for reading into & writing from. scratchLen := cs.frameScratchBufferLen(maxFrameSize) var buf []byte - if bp, ok := bufPool.Get().(*[]byte); ok && len(*bp) >= scratchLen { - defer bufPool.Put(bp) + index := bufPoolIndex(scratchLen) + if bp, ok := bufPools[index].Get().(*[]byte); ok && len(*bp) >= scratchLen { + defer bufPools[index].Put(bp) buf = *bp } else { buf = make([]byte, scratchLen) - defer bufPool.Put(&buf) + defer bufPools[index].Put(&buf) } var sawEOF bool @@ -1863,6 +1892,9 @@ func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trail if err != nil { return nil, err } + if !httpguts.ValidHostHeader(host) { + return nil, errors.New("http2: invalid Host header") + } var path string if req.Method != "CONNECT" { @@ -1899,7 +1931,7 @@ func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trail // 8.1.2.3 Request Pseudo-Header Fields // The :path pseudo-header field includes the path and query parts of the // target URI (the path-absolute production and optionally a '?' character - // followed by the query production (see Sections 3.3 and 3.4 of + // followed by the query production, see Sections 3.3 and 3.4 of // [RFC3986]). f(":authority", host) m := req.Method diff --git a/vendor/golang.org/x/net/http2/writesched.go b/vendor/golang.org/x/net/http2/writesched.go index c7cd0017392e..cc893adc29af 100644 --- a/vendor/golang.org/x/net/http2/writesched.go +++ b/vendor/golang.org/x/net/http2/writesched.go @@ -184,7 +184,8 @@ func (wr *FrameWriteRequest) replyToWriter(err error) { // writeQueue is used by implementations of WriteScheduler. type writeQueue struct { - s []FrameWriteRequest + s []FrameWriteRequest + prev, next *writeQueue } func (q *writeQueue) empty() bool { return len(q.s) == 0 } diff --git a/vendor/golang.org/x/net/http2/writesched_roundrobin.go b/vendor/golang.org/x/net/http2/writesched_roundrobin.go new file mode 100644 index 000000000000..54fe86322d2f --- /dev/null +++ b/vendor/golang.org/x/net/http2/writesched_roundrobin.go @@ -0,0 +1,119 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "fmt" + "math" +) + +type roundRobinWriteScheduler struct { + // control contains control frames (SETTINGS, PING, etc.). + control writeQueue + + // streams maps stream ID to a queue. + streams map[uint32]*writeQueue + + // stream queues are stored in a circular linked list. + // head is the next stream to write, or nil if there are no streams open. + head *writeQueue + + // pool of empty queues for reuse. + queuePool writeQueuePool +} + +// newRoundRobinWriteScheduler constructs a new write scheduler. +// The round robin scheduler priorizes control frames +// like SETTINGS and PING over DATA frames. +// When there are no control frames to send, it performs a round-robin +// selection from the ready streams. +func newRoundRobinWriteScheduler() WriteScheduler { + ws := &roundRobinWriteScheduler{ + streams: make(map[uint32]*writeQueue), + } + return ws +} + +func (ws *roundRobinWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) { + if ws.streams[streamID] != nil { + panic(fmt.Errorf("stream %d already opened", streamID)) + } + q := ws.queuePool.get() + ws.streams[streamID] = q + if ws.head == nil { + ws.head = q + q.next = q + q.prev = q + } else { + // Queues are stored in a ring. + // Insert the new stream before ws.head, putting it at the end of the list. + q.prev = ws.head.prev + q.next = ws.head + q.prev.next = q + q.next.prev = q + } +} + +func (ws *roundRobinWriteScheduler) CloseStream(streamID uint32) { + q := ws.streams[streamID] + if q == nil { + return + } + if q.next == q { + // This was the only open stream. + ws.head = nil + } else { + q.prev.next = q.next + q.next.prev = q.prev + if ws.head == q { + ws.head = q.next + } + } + delete(ws.streams, streamID) + ws.queuePool.put(q) +} + +func (ws *roundRobinWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) {} + +func (ws *roundRobinWriteScheduler) Push(wr FrameWriteRequest) { + if wr.isControl() { + ws.control.push(wr) + return + } + q := ws.streams[wr.StreamID()] + if q == nil { + // This is a closed stream. + // wr should not be a HEADERS or DATA frame. + // We push the request onto the control queue. + if wr.DataSize() > 0 { + panic("add DATA on non-open stream") + } + ws.control.push(wr) + return + } + q.push(wr) +} + +func (ws *roundRobinWriteScheduler) Pop() (FrameWriteRequest, bool) { + // Control and RST_STREAM frames first. + if !ws.control.empty() { + return ws.control.shift(), true + } + if ws.head == nil { + return FrameWriteRequest{}, false + } + q := ws.head + for { + if wr, ok := q.consume(math.MaxInt32); ok { + ws.head = q.next + return wr, true + } + q = q.next + if q == ws.head { + break + } + } + return FrameWriteRequest{}, false +} diff --git a/vendor/golang.org/x/net/idna/idna9.0.0.go b/vendor/golang.org/x/net/idna/idna9.0.0.go index aae6aac872b3..ee1698cefbd8 100644 --- a/vendor/golang.org/x/net/idna/idna9.0.0.go +++ b/vendor/golang.org/x/net/idna/idna9.0.0.go @@ -121,7 +121,7 @@ func CheckJoiners(enable bool) Option { } } -// StrictDomainName limits the set of permissable ASCII characters to those +// StrictDomainName limits the set of permissible ASCII characters to those // allowed in domain names as defined in RFC 1034 (A-Z, a-z, 0-9 and the // hyphen). This is set by default for MapForLookup and ValidateForRegistration, // but is only useful if ValidateLabels is set. diff --git a/vendor/golang.org/x/net/idna/tables13.0.0.go b/vendor/golang.org/x/net/idna/tables13.0.0.go index 390c5e56d2a4..66701eadfb37 100644 --- a/vendor/golang.org/x/net/idna/tables13.0.0.go +++ b/vendor/golang.org/x/net/idna/tables13.0.0.go @@ -1,151 +1,294 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. -//go:build go1.16 -// +build go1.16 +//go:build go1.16 && !go1.21 +// +build go1.16,!go1.21 package idna // UnicodeVersion is the Unicode version from which the tables in this package are derived. const UnicodeVersion = "13.0.0" -var mappings string = "" + // Size: 8188 bytes - "\x00\x01 \x03 ̈\x01a\x03 ̄\x012\x013\x03 ́\x03 ̧\x011\x01o\x051⁄4\x051⁄2" + - "\x053⁄4\x03i̇\x03l·\x03ʼn\x01s\x03dž\x03ⱥ\x03ⱦ\x01h\x01j\x01r\x01w\x01y" + - "\x03 ̆\x03 ̇\x03 ̊\x03 ̨\x03 ̃\x03 ̋\x01l\x01x\x04̈́\x03 ι\x01;\x05 ̈́" + - "\x04եւ\x04اٴ\x04وٴ\x04ۇٴ\x04يٴ\x06क़\x06ख़\x06ग़\x06ज़\x06ड़\x06ढ़\x06फ़" + - "\x06य़\x06ড়\x06ঢ়\x06য়\x06ਲ਼\x06ਸ਼\x06ਖ਼\x06ਗ਼\x06ਜ਼\x06ਫ਼\x06ଡ଼\x06ଢ଼" + - "\x06ํา\x06ໍາ\x06ຫນ\x06ຫມ\x06གྷ\x06ཌྷ\x06དྷ\x06བྷ\x06ཛྷ\x06ཀྵ\x06ཱི\x06ཱུ" + - "\x06ྲྀ\x09ྲཱྀ\x06ླྀ\x09ླཱྀ\x06ཱྀ\x06ྒྷ\x06ྜྷ\x06ྡྷ\x06ྦྷ\x06ྫྷ\x06ྐྵ\x02" + - "в\x02д\x02о\x02с\x02т\x02ъ\x02ѣ\x02æ\x01b\x01d\x01e\x02ǝ\x01g\x01i\x01k" + - "\x01m\x01n\x02ȣ\x01p\x01t\x01u\x02ɐ\x02ɑ\x02ə\x02ɛ\x02ɜ\x02ŋ\x02ɔ\x02ɯ" + - "\x01v\x02β\x02γ\x02δ\x02φ\x02χ\x02ρ\x02н\x02ɒ\x01c\x02ɕ\x02ð\x01f\x02ɟ" + - "\x02ɡ\x02ɥ\x02ɨ\x02ɩ\x02ɪ\x02ʝ\x02ɭ\x02ʟ\x02ɱ\x02ɰ\x02ɲ\x02ɳ\x02ɴ\x02ɵ" + - "\x02ɸ\x02ʂ\x02ʃ\x02ƫ\x02ʉ\x02ʊ\x02ʋ\x02ʌ\x01z\x02ʐ\x02ʑ\x02ʒ\x02θ\x02ss" + - "\x02ά\x02έ\x02ή\x02ί\x02ό\x02ύ\x02ώ\x05ἀι\x05ἁι\x05ἂι\x05ἃι\x05ἄι\x05ἅι" + - "\x05ἆι\x05ἇι\x05ἠι\x05ἡι\x05ἢι\x05ἣι\x05ἤι\x05ἥι\x05ἦι\x05ἧι\x05ὠι\x05ὡι" + - "\x05ὢι\x05ὣι\x05ὤι\x05ὥι\x05ὦι\x05ὧι\x05ὰι\x04αι\x04άι\x05ᾶι\x02ι\x05 ̈͂" + - "\x05ὴι\x04ηι\x04ήι\x05ῆι\x05 ̓̀\x05 ̓́\x05 ̓͂\x02ΐ\x05 ̔̀\x05 ̔́\x05 ̔͂" + - "\x02ΰ\x05 ̈̀\x01`\x05ὼι\x04ωι\x04ώι\x05ῶι\x06′′\x09′′′\x06‵‵\x09‵‵‵\x02!" + - "!\x02??\x02?!\x02!?\x0c′′′′\x010\x014\x015\x016\x017\x018\x019\x01+\x01=" + - "\x01(\x01)\x02rs\x02ħ\x02no\x01q\x02sm\x02tm\x02ω\x02å\x02א\x02ב\x02ג" + - "\x02ד\x02π\x051⁄7\x051⁄9\x061⁄10\x051⁄3\x052⁄3\x051⁄5\x052⁄5\x053⁄5\x054" + - "⁄5\x051⁄6\x055⁄6\x051⁄8\x053⁄8\x055⁄8\x057⁄8\x041⁄\x02ii\x02iv\x02vi" + - "\x04viii\x02ix\x02xi\x050⁄3\x06∫∫\x09∫∫∫\x06∮∮\x09∮∮∮\x0210\x0211\x0212" + - "\x0213\x0214\x0215\x0216\x0217\x0218\x0219\x0220\x04(10)\x04(11)\x04(12)" + - "\x04(13)\x04(14)\x04(15)\x04(16)\x04(17)\x04(18)\x04(19)\x04(20)\x0c∫∫∫∫" + - "\x02==\x05⫝̸\x02ɫ\x02ɽ\x02ȿ\x02ɀ\x01.\x04 ゙\x04 ゚\x06より\x06コト\x05(ᄀ)\x05" + - "(ᄂ)\x05(ᄃ)\x05(ᄅ)\x05(ᄆ)\x05(ᄇ)\x05(ᄉ)\x05(ᄋ)\x05(ᄌ)\x05(ᄎ)\x05(ᄏ)\x05(ᄐ" + - ")\x05(ᄑ)\x05(ᄒ)\x05(가)\x05(나)\x05(다)\x05(라)\x05(마)\x05(바)\x05(사)\x05(아)" + - "\x05(자)\x05(차)\x05(카)\x05(타)\x05(파)\x05(하)\x05(주)\x08(오전)\x08(오후)\x05(一)" + - "\x05(二)\x05(三)\x05(四)\x05(五)\x05(六)\x05(七)\x05(八)\x05(九)\x05(十)\x05(月)" + - "\x05(火)\x05(水)\x05(木)\x05(金)\x05(土)\x05(日)\x05(株)\x05(有)\x05(社)\x05(名)" + - "\x05(特)\x05(財)\x05(祝)\x05(労)\x05(代)\x05(呼)\x05(学)\x05(監)\x05(企)\x05(資)" + - "\x05(協)\x05(祭)\x05(休)\x05(自)\x05(至)\x0221\x0222\x0223\x0224\x0225\x0226" + - "\x0227\x0228\x0229\x0230\x0231\x0232\x0233\x0234\x0235\x06참고\x06주의\x0236" + - "\x0237\x0238\x0239\x0240\x0241\x0242\x0243\x0244\x0245\x0246\x0247\x0248" + - "\x0249\x0250\x041月\x042月\x043月\x044月\x045月\x046月\x047月\x048月\x049月\x0510" + - "月\x0511月\x0512月\x02hg\x02ev\x06令和\x0cアパート\x0cアルファ\x0cアンペア\x09アール\x0cイニ" + - "ング\x09インチ\x09ウォン\x0fエスクード\x0cエーカー\x09オンス\x09オーム\x09カイリ\x0cカラット\x0cカロリー" + - "\x09ガロン\x09ガンマ\x06ギガ\x09ギニー\x0cキュリー\x0cギルダー\x06キロ\x0fキログラム\x12キロメートル\x0f" + - "キロワット\x09グラム\x0fグラムトン\x0fクルゼイロ\x0cクローネ\x09ケース\x09コルナ\x09コーポ\x0cサイクル" + - "\x0fサンチーム\x0cシリング\x09センチ\x09セント\x09ダース\x06デシ\x06ドル\x06トン\x06ナノ\x09ノット" + - "\x09ハイツ\x0fパーセント\x09パーツ\x0cバーレル\x0fピアストル\x09ピクル\x06ピコ\x06ビル\x0fファラッド\x0c" + - "フィート\x0fブッシェル\x09フラン\x0fヘクタール\x06ペソ\x09ペニヒ\x09ヘルツ\x09ペンス\x09ページ\x09ベータ" + - "\x0cポイント\x09ボルト\x06ホン\x09ポンド\x09ホール\x09ホーン\x0cマイクロ\x09マイル\x09マッハ\x09マルク" + - "\x0fマンション\x0cミクロン\x06ミリ\x0fミリバール\x06メガ\x0cメガトン\x0cメートル\x09ヤード\x09ヤール\x09" + - "ユアン\x0cリットル\x06リラ\x09ルピー\x0cルーブル\x06レム\x0fレントゲン\x09ワット\x040点\x041点\x04" + - "2点\x043点\x044点\x045点\x046点\x047点\x048点\x049点\x0510点\x0511点\x0512点\x0513点" + - "\x0514点\x0515点\x0516点\x0517点\x0518点\x0519点\x0520点\x0521点\x0522点\x0523点" + - "\x0524点\x02da\x02au\x02ov\x02pc\x02dm\x02iu\x06平成\x06昭和\x06大正\x06明治\x0c株" + - "式会社\x02pa\x02na\x02ma\x02ka\x02kb\x02mb\x02gb\x04kcal\x02pf\x02nf\x02m" + - "g\x02kg\x02hz\x02ml\x02dl\x02kl\x02fm\x02nm\x02mm\x02cm\x02km\x02m2\x02m" + - "3\x05m∕s\x06m∕s2\x07rad∕s\x08rad∕s2\x02ps\x02ns\x02ms\x02pv\x02nv\x02mv" + - "\x02kv\x02pw\x02nw\x02mw\x02kw\x02bq\x02cc\x02cd\x06c∕kg\x02db\x02gy\x02" + - "ha\x02hp\x02in\x02kk\x02kt\x02lm\x02ln\x02lx\x02ph\x02pr\x02sr\x02sv\x02" + - "wb\x05v∕m\x05a∕m\x041日\x042日\x043日\x044日\x045日\x046日\x047日\x048日\x049日" + - "\x0510日\x0511日\x0512日\x0513日\x0514日\x0515日\x0516日\x0517日\x0518日\x0519日" + - "\x0520日\x0521日\x0522日\x0523日\x0524日\x0525日\x0526日\x0527日\x0528日\x0529日" + - "\x0530日\x0531日\x02ь\x02ɦ\x02ɬ\x02ʞ\x02ʇ\x02œ\x02ʍ\x04𤋮\x04𢡊\x04𢡄\x04𣏕" + - "\x04𥉉\x04𥳐\x04𧻓\x02ff\x02fi\x02fl\x02st\x04մն\x04մե\x04մի\x04վն\x04մխ" + - "\x04יִ\x04ײַ\x02ע\x02ה\x02כ\x02ל\x02ם\x02ר\x02ת\x04שׁ\x04שׂ\x06שּׁ\x06שּ" + - "ׂ\x04אַ\x04אָ\x04אּ\x04בּ\x04גּ\x04דּ\x04הּ\x04וּ\x04זּ\x04טּ\x04יּ\x04" + - "ךּ\x04כּ\x04לּ\x04מּ\x04נּ\x04סּ\x04ףּ\x04פּ\x04צּ\x04קּ\x04רּ\x04שּ" + - "\x04תּ\x04וֹ\x04בֿ\x04כֿ\x04פֿ\x04אל\x02ٱ\x02ٻ\x02پ\x02ڀ\x02ٺ\x02ٿ\x02ٹ" + - "\x02ڤ\x02ڦ\x02ڄ\x02ڃ\x02چ\x02ڇ\x02ڍ\x02ڌ\x02ڎ\x02ڈ\x02ژ\x02ڑ\x02ک\x02گ" + - "\x02ڳ\x02ڱ\x02ں\x02ڻ\x02ۀ\x02ہ\x02ھ\x02ے\x02ۓ\x02ڭ\x02ۇ\x02ۆ\x02ۈ\x02ۋ" + - "\x02ۅ\x02ۉ\x02ې\x02ى\x04ئا\x04ئە\x04ئو\x04ئۇ\x04ئۆ\x04ئۈ\x04ئې\x04ئى\x02" + - "ی\x04ئج\x04ئح\x04ئم\x04ئي\x04بج\x04بح\x04بخ\x04بم\x04بى\x04بي\x04تج\x04" + - "تح\x04تخ\x04تم\x04تى\x04تي\x04ثج\x04ثم\x04ثى\x04ثي\x04جح\x04جم\x04حج" + - "\x04حم\x04خج\x04خح\x04خم\x04سج\x04سح\x04سخ\x04سم\x04صح\x04صم\x04ضج\x04ضح" + - "\x04ضخ\x04ضم\x04طح\x04طم\x04ظم\x04عج\x04عم\x04غج\x04غم\x04فج\x04فح\x04فخ" + - "\x04فم\x04فى\x04في\x04قح\x04قم\x04قى\x04قي\x04كا\x04كج\x04كح\x04كخ\x04كل" + - "\x04كم\x04كى\x04كي\x04لج\x04لح\x04لخ\x04لم\x04لى\x04لي\x04مج\x04مح\x04مخ" + - "\x04مم\x04مى\x04مي\x04نج\x04نح\x04نخ\x04نم\x04نى\x04ني\x04هج\x04هم\x04هى" + - "\x04هي\x04يج\x04يح\x04يخ\x04يم\x04يى\x04يي\x04ذٰ\x04رٰ\x04ىٰ\x05 ٌّ\x05 " + - "ٍّ\x05 َّ\x05 ُّ\x05 ِّ\x05 ّٰ\x04ئر\x04ئز\x04ئن\x04بر\x04بز\x04بن\x04ت" + - "ر\x04تز\x04تن\x04ثر\x04ثز\x04ثن\x04ما\x04نر\x04نز\x04نن\x04ير\x04يز\x04" + - "ين\x04ئخ\x04ئه\x04به\x04ته\x04صخ\x04له\x04نه\x04هٰ\x04يه\x04ثه\x04سه" + - "\x04شم\x04شه\x06ـَّ\x06ـُّ\x06ـِّ\x04طى\x04طي\x04عى\x04عي\x04غى\x04غي" + - "\x04سى\x04سي\x04شى\x04شي\x04حى\x04حي\x04جى\x04جي\x04خى\x04خي\x04صى\x04صي" + - "\x04ضى\x04ضي\x04شج\x04شح\x04شخ\x04شر\x04سر\x04صر\x04ضر\x04اً\x06تجم\x06ت" + - "حج\x06تحم\x06تخم\x06تمج\x06تمح\x06تمخ\x06جمح\x06حمي\x06حمى\x06سحج\x06سج" + - "ح\x06سجى\x06سمح\x06سمج\x06سمم\x06صحح\x06صمم\x06شحم\x06شجي\x06شمخ\x06شمم" + - "\x06ضحى\x06ضخم\x06طمح\x06طمم\x06طمي\x06عجم\x06عمم\x06عمى\x06غمم\x06غمي" + - "\x06غمى\x06فخم\x06قمح\x06قمم\x06لحم\x06لحي\x06لحى\x06لجج\x06لخم\x06لمح" + - "\x06محج\x06محم\x06محي\x06مجح\x06مجم\x06مخج\x06مخم\x06مجخ\x06همج\x06همم" + - "\x06نحم\x06نحى\x06نجم\x06نجى\x06نمي\x06نمى\x06يمم\x06بخي\x06تجي\x06تجى" + - "\x06تخي\x06تخى\x06تمي\x06تمى\x06جمي\x06جحى\x06جمى\x06سخى\x06صحي\x06شحي" + - "\x06ضحي\x06لجي\x06لمي\x06يحي\x06يجي\x06يمي\x06ممي\x06قمي\x06نحي\x06عمي" + - "\x06كمي\x06نجح\x06مخي\x06لجم\x06كمم\x06جحي\x06حجي\x06مجي\x06فمي\x06بحي" + - "\x06سخي\x06نجي\x06صلے\x06قلے\x08الله\x08اكبر\x08محمد\x08صلعم\x08رسول\x08" + - "عليه\x08وسلم\x06صلى!صلى الله عليه وسلم\x0fجل جلاله\x08ریال\x01,\x01:" + - "\x01!\x01?\x01_\x01{\x01}\x01[\x01]\x01#\x01&\x01*\x01-\x01<\x01>\x01\\" + - "\x01$\x01%\x01@\x04ـً\x04ـَ\x04ـُ\x04ـِ\x04ـّ\x04ـْ\x02ء\x02آ\x02أ\x02ؤ" + - "\x02إ\x02ئ\x02ا\x02ب\x02ة\x02ت\x02ث\x02ج\x02ح\x02خ\x02د\x02ذ\x02ر\x02ز" + - "\x02س\x02ش\x02ص\x02ض\x02ط\x02ظ\x02ع\x02غ\x02ف\x02ق\x02ك\x02ل\x02م\x02ن" + - "\x02ه\x02و\x02ي\x04لآ\x04لأ\x04لإ\x04لا\x01\x22\x01'\x01/\x01^\x01|\x01~" + - "\x02¢\x02£\x02¬\x02¦\x02¥\x08𝅗𝅥\x08𝅘𝅥\x0c𝅘𝅥𝅮\x0c𝅘𝅥𝅯\x0c𝅘𝅥𝅰\x0c𝅘𝅥𝅱\x0c𝅘𝅥𝅲" + - "\x08𝆹𝅥\x08𝆺𝅥\x0c𝆹𝅥𝅮\x0c𝆺𝅥𝅮\x0c𝆹𝅥𝅯\x0c𝆺𝅥𝅯\x02ı\x02ȷ\x02α\x02ε\x02ζ\x02η" + - "\x02κ\x02λ\x02μ\x02ν\x02ξ\x02ο\x02σ\x02τ\x02υ\x02ψ\x03∇\x03∂\x02ϝ\x02ٮ" + - "\x02ڡ\x02ٯ\x020,\x021,\x022,\x023,\x024,\x025,\x026,\x027,\x028,\x029," + - "\x03(a)\x03(b)\x03(c)\x03(d)\x03(e)\x03(f)\x03(g)\x03(h)\x03(i)\x03(j)" + - "\x03(k)\x03(l)\x03(m)\x03(n)\x03(o)\x03(p)\x03(q)\x03(r)\x03(s)\x03(t)" + - "\x03(u)\x03(v)\x03(w)\x03(x)\x03(y)\x03(z)\x07〔s〕\x02wz\x02hv\x02sd\x03p" + - "pv\x02wc\x02mc\x02md\x02mr\x02dj\x06ほか\x06ココ\x03サ\x03手\x03字\x03双\x03デ" + - "\x03二\x03多\x03解\x03天\x03交\x03映\x03無\x03料\x03前\x03後\x03再\x03新\x03初\x03終" + - "\x03生\x03販\x03声\x03吹\x03演\x03投\x03捕\x03一\x03三\x03遊\x03左\x03中\x03右\x03指" + - "\x03走\x03打\x03禁\x03空\x03合\x03満\x03有\x03月\x03申\x03割\x03営\x03配\x09〔本〕\x09〔" + - "三〕\x09〔二〕\x09〔安〕\x09〔点〕\x09〔打〕\x09〔盗〕\x09〔勝〕\x09〔敗〕\x03得\x03可\x03丽\x03" + - "丸\x03乁\x03你\x03侮\x03侻\x03倂\x03偺\x03備\x03僧\x03像\x03㒞\x03免\x03兔\x03兤\x03" + - "具\x03㒹\x03內\x03冗\x03冤\x03仌\x03冬\x03况\x03凵\x03刃\x03㓟\x03刻\x03剆\x03剷\x03" + - "㔕\x03勇\x03勉\x03勤\x03勺\x03包\x03匆\x03北\x03卉\x03卑\x03博\x03即\x03卽\x03卿\x03" + - "灰\x03及\x03叟\x03叫\x03叱\x03吆\x03咞\x03吸\x03呈\x03周\x03咢\x03哶\x03唐\x03啓\x03" + - "啣\x03善\x03喙\x03喫\x03喳\x03嗂\x03圖\x03嘆\x03圗\x03噑\x03噴\x03切\x03壮\x03城\x03" + - "埴\x03堍\x03型\x03堲\x03報\x03墬\x03売\x03壷\x03夆\x03夢\x03奢\x03姬\x03娛\x03娧\x03" + - "姘\x03婦\x03㛮\x03嬈\x03嬾\x03寃\x03寘\x03寧\x03寳\x03寿\x03将\x03尢\x03㞁\x03屠\x03" + - "屮\x03峀\x03岍\x03嵃\x03嵮\x03嵫\x03嵼\x03巡\x03巢\x03㠯\x03巽\x03帨\x03帽\x03幩\x03" + - "㡢\x03㡼\x03庰\x03庳\x03庶\x03廊\x03廾\x03舁\x03弢\x03㣇\x03形\x03彫\x03㣣\x03徚\x03" + - "忍\x03志\x03忹\x03悁\x03㤺\x03㤜\x03悔\x03惇\x03慈\x03慌\x03慎\x03慺\x03憎\x03憲\x03" + - "憤\x03憯\x03懞\x03懲\x03懶\x03成\x03戛\x03扝\x03抱\x03拔\x03捐\x03挽\x03拼\x03捨\x03" + - "掃\x03揤\x03搢\x03揅\x03掩\x03㨮\x03摩\x03摾\x03撝\x03摷\x03㩬\x03敏\x03敬\x03旣\x03" + - "書\x03晉\x03㬙\x03暑\x03㬈\x03㫤\x03冒\x03冕\x03最\x03暜\x03肭\x03䏙\x03朗\x03望\x03" + - "朡\x03杞\x03杓\x03㭉\x03柺\x03枅\x03桒\x03梅\x03梎\x03栟\x03椔\x03㮝\x03楂\x03榣\x03" + - "槪\x03檨\x03櫛\x03㰘\x03次\x03歔\x03㱎\x03歲\x03殟\x03殺\x03殻\x03汎\x03沿\x03泍\x03" + - "汧\x03洖\x03派\x03海\x03流\x03浩\x03浸\x03涅\x03洴\x03港\x03湮\x03㴳\x03滋\x03滇\x03" + - "淹\x03潮\x03濆\x03瀹\x03瀞\x03瀛\x03㶖\x03灊\x03災\x03灷\x03炭\x03煅\x03熜\x03爨\x03" + - "爵\x03牐\x03犀\x03犕\x03獺\x03王\x03㺬\x03玥\x03㺸\x03瑇\x03瑜\x03瑱\x03璅\x03瓊\x03" + - "㼛\x03甤\x03甾\x03異\x03瘐\x03㿼\x03䀈\x03直\x03眞\x03真\x03睊\x03䀹\x03瞋\x03䁆\x03" + - "䂖\x03硎\x03碌\x03磌\x03䃣\x03祖\x03福\x03秫\x03䄯\x03穀\x03穊\x03穏\x03䈂\x03篆\x03" + - "築\x03䈧\x03糒\x03䊠\x03糨\x03糣\x03紀\x03絣\x03䌁\x03緇\x03縂\x03繅\x03䌴\x03䍙\x03" + - "罺\x03羕\x03翺\x03者\x03聠\x03聰\x03䏕\x03育\x03脃\x03䐋\x03脾\x03媵\x03舄\x03辞\x03" + - "䑫\x03芑\x03芋\x03芝\x03劳\x03花\x03芳\x03芽\x03苦\x03若\x03茝\x03荣\x03莭\x03茣\x03" + - "莽\x03菧\x03著\x03荓\x03菊\x03菌\x03菜\x03䔫\x03蓱\x03蓳\x03蔖\x03蕤\x03䕝\x03䕡\x03" + - "䕫\x03虐\x03虜\x03虧\x03虩\x03蚩\x03蚈\x03蜎\x03蛢\x03蝹\x03蜨\x03蝫\x03螆\x03蟡\x03" + - "蠁\x03䗹\x03衠\x03衣\x03裗\x03裞\x03䘵\x03裺\x03㒻\x03䚾\x03䛇\x03誠\x03諭\x03變\x03" + - "豕\x03貫\x03賁\x03贛\x03起\x03跋\x03趼\x03跰\x03軔\x03輸\x03邔\x03郱\x03鄑\x03鄛\x03" + - "鈸\x03鋗\x03鋘\x03鉼\x03鏹\x03鐕\x03開\x03䦕\x03閷\x03䧦\x03雃\x03嶲\x03霣\x03䩮\x03" + - "䩶\x03韠\x03䪲\x03頋\x03頩\x03飢\x03䬳\x03餩\x03馧\x03駂\x03駾\x03䯎\x03鬒\x03鱀\x03" + - "鳽\x03䳎\x03䳭\x03鵧\x03䳸\x03麻\x03䵖\x03黹\x03黾\x03鼅\x03鼏\x03鼖\x03鼻" +var mappings string = "" + // Size: 6539 bytes + " ̈a ̄23 ́ ̧1o1⁄41⁄23⁄4i̇l·ʼnsdžⱥⱦhjrwy ̆ ̇ ̊ ̨ ̃ ̋lẍ́ ι; ̈́եւاٴوٴۇٴيٴक" + + "़ख़ग़ज़ड़ढ़फ़य़ড়ঢ়য়ਲ਼ਸ਼ਖ਼ਗ਼ਜ਼ਫ਼ଡ଼ଢ଼ําໍາຫນຫມགྷཌྷདྷབྷཛྷཀྵཱཱིུྲྀྲཱྀླྀླཱ" + + "ཱྀྀྒྷྜྷྡྷྦྷྫྷྐྵвдостъѣæbdeǝgikmnȣptuɐɑəɛɜŋɔɯvβγδφχρнɒcɕðfɟɡɥɨɩɪʝɭʟɱɰɲɳ" + + "ɴɵɸʂʃƫʉʊʋʌzʐʑʒθssάέήίόύώἀιἁιἂιἃιἄιἅιἆιἇιἠιἡιἢιἣιἤιἥιἦιἧιὠιὡιὢιὣιὤιὥιὦιὧ" + + "ιὰιαιάιᾶιι ̈͂ὴιηιήιῆι ̓̀ ̓́ ̓͂ΐ ̔̀ ̔́ ̔͂ΰ ̈̀`ὼιωιώιῶι′′′′′‵‵‵‵‵!!???!!?" + + "′′′′0456789+=()rsħnoqsmtmωåאבגדπ1⁄71⁄91⁄101⁄32⁄31⁄52⁄53⁄54⁄51⁄65⁄61⁄83" + + "⁄85⁄87⁄81⁄iiivviviiiixxi0⁄3∫∫∫∫∫∮∮∮∮∮1011121314151617181920(10)(11)(12" + + ")(13)(14)(15)(16)(17)(18)(19)(20)∫∫∫∫==⫝̸ɫɽȿɀ. ゙ ゚よりコト(ᄀ)(ᄂ)(ᄃ)(ᄅ)(ᄆ)(ᄇ)" + + "(ᄉ)(ᄋ)(ᄌ)(ᄎ)(ᄏ)(ᄐ)(ᄑ)(ᄒ)(가)(나)(다)(라)(마)(바)(사)(아)(자)(차)(카)(타)(파)(하)(주)(오전" + + ")(오후)(一)(二)(三)(四)(五)(六)(七)(八)(九)(十)(月)(火)(水)(木)(金)(土)(日)(株)(有)(社)(名)(特)(" + + "財)(祝)(労)(代)(呼)(学)(監)(企)(資)(協)(祭)(休)(自)(至)21222324252627282930313233343" + + "5참고주의3637383940414243444546474849501月2月3月4月5月6月7月8月9月10月11月12月hgev令和アパート" + + "アルファアンペアアールイニングインチウォンエスクードエーカーオンスオームカイリカラットカロリーガロンガンマギガギニーキュリーギルダーキロキロ" + + "グラムキロメートルキロワットグラムグラムトンクルゼイロクローネケースコルナコーポサイクルサンチームシリングセンチセントダースデシドルトンナノ" + + "ノットハイツパーセントパーツバーレルピアストルピクルピコビルファラッドフィートブッシェルフランヘクタールペソペニヒヘルツペンスページベータポ" + + "イントボルトホンポンドホールホーンマイクロマイルマッハマルクマンションミクロンミリミリバールメガメガトンメートルヤードヤールユアンリットルリ" + + "ラルピールーブルレムレントゲンワット0点1点2点3点4点5点6点7点8点9点10点11点12点13点14点15点16点17点18点19点20" + + "点21点22点23点24点daauovpcdmiu平成昭和大正明治株式会社panamakakbmbgbkcalpfnfmgkghzmldlk" + + "lfmnmmmcmkmm2m3m∕sm∕s2rad∕srad∕s2psnsmspvnvmvkvpwnwmwkwbqcccdc∕kgdbgyhah" + + "pinkkktlmlnlxphprsrsvwbv∕ma∕m1日2日3日4日5日6日7日8日9日10日11日12日13日14日15日16日17日1" + + "8日19日20日21日22日23日24日25日26日27日28日29日30日31日ьɦɬʞʇœʍ𤋮𢡊𢡄𣏕𥉉𥳐𧻓fffiflstմնմեմիվնմ" + + "խיִײַעהכלםרתשׁשׂשּׁשּׂאַאָאּבּגּדּהּוּזּטּיּךּכּלּמּנּסּףּפּצּקּרּשּתּו" + + "ֹבֿכֿפֿאלٱٻپڀٺٿٹڤڦڄڃچڇڍڌڎڈژڑکگڳڱںڻۀہھےۓڭۇۆۈۋۅۉېىئائەئوئۇئۆئۈئېئىیئجئحئم" + + "ئيبجبحبخبمبىبيتجتحتختمتىتيثجثمثىثيجحجمحجحمخجخحخمسجسحسخسمصحصمضجضحضخضمطحط" + + "مظمعجعمغجغمفجفحفخفمفىفيقحقمقىقيكاكجكحكخكلكمكىكيلجلحلخلملىليمجمحمخمممىمي" + + "نجنحنخنمنىنيهجهمهىهييجيحيخيميىييذٰرٰىٰ ٌّ ٍّ َّ ُّ ِّ ّٰئرئزئنبربزبنترت" + + "زتنثرثزثنمانرنزننيريزينئخئهبهتهصخلهنههٰيهثهسهشمشهـَّـُّـِّطىطيعىعيغىغيس" + + "ىسيشىشيحىحيجىجيخىخيصىصيضىضيشجشحشخشرسرصرضراًتجمتحجتحمتخمتمجتمحتمخجمححميح" + + "مىسحجسجحسجىسمحسمجسممصححصممشحمشجيشمخشممضحىضخمطمحطممطميعجمعممعمىغممغميغمى" + + "فخمقمحقمملحملحيلحىلججلخملمحمحجمحممحيمجحمجممخجمخممجخهمجهممنحمنحىنجمنجىنم" + + "ينمىيممبخيتجيتجىتخيتخىتميتمىجميجحىجمىسخىصحيشحيضحيلجيلمييحييجييميمميقمين" + + "حيعميكمينجحمخيلجمكممجحيحجيمجيفميبحيسخينجيصلےقلےاللهاكبرمحمدصلعمرسولعليه" + + "وسلمصلىصلى الله عليه وسلمجل جلالهریال,:!?_{}[]#&*-<>\\$%@ـًـَـُـِـّـْءآ" + + "أؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهويلآلألإلا\x22'/^|~¢£¬¦¥𝅗𝅥𝅘𝅥𝅘𝅥𝅮𝅘𝅥𝅯𝅘𝅥𝅰𝅘𝅥𝅱" + + "𝅘𝅥𝅲𝆹𝅥𝆺𝅥𝆹𝅥𝅮𝆺𝅥𝅮𝆹𝅥𝅯𝆺𝅥𝅯ıȷαεζηκλμνξοστυψ∇∂ϝٮڡٯ0,1,2,3,4,5,6,7,8,9,(a)(b)(c" + + ")(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y)(z)〔s" + + "〕wzhvsdppvwcmcmdmrdjほかココサ手字双デ二多解天交映無料前後再新初終生販声吹演投捕一三遊左中右指走打禁空合満有月申割営配〔" + + "本〕〔三〕〔二〕〔安〕〔点〕〔打〕〔盗〕〔勝〕〔敗〕得可丽丸乁你侮侻倂偺備僧像㒞免兔兤具㒹內冗冤仌冬况凵刃㓟刻剆剷㔕勇勉勤勺包匆北卉卑博即卽" + + "卿灰及叟叫叱吆咞吸呈周咢哶唐啓啣善喙喫喳嗂圖嘆圗噑噴切壮城埴堍型堲報墬売壷夆夢奢姬娛娧姘婦㛮嬈嬾寃寘寧寳寿将尢㞁屠屮峀岍嵃嵮嵫嵼巡巢㠯巽帨帽" + + "幩㡢㡼庰庳庶廊廾舁弢㣇形彫㣣徚忍志忹悁㤺㤜悔惇慈慌慎慺憎憲憤憯懞懲懶成戛扝抱拔捐挽拼捨掃揤搢揅掩㨮摩摾撝摷㩬敏敬旣書晉㬙暑㬈㫤冒冕最暜肭䏙朗" + + "望朡杞杓㭉柺枅桒梅梎栟椔㮝楂榣槪檨櫛㰘次歔㱎歲殟殺殻汎沿泍汧洖派海流浩浸涅洴港湮㴳滋滇淹潮濆瀹瀞瀛㶖灊災灷炭煅熜爨爵牐犀犕獺王㺬玥㺸瑇瑜瑱璅" + + "瓊㼛甤甾異瘐㿼䀈直眞真睊䀹瞋䁆䂖硎碌磌䃣祖福秫䄯穀穊穏䈂篆築䈧糒䊠糨糣紀絣䌁緇縂繅䌴䍙罺羕翺者聠聰䏕育脃䐋脾媵舄辞䑫芑芋芝劳花芳芽苦若茝荣莭" + + "茣莽菧著荓菊菌菜䔫蓱蓳蔖蕤䕝䕡䕫虐虜虧虩蚩蚈蜎蛢蝹蜨蝫螆蟡蠁䗹衠衣裗裞䘵裺㒻䚾䛇誠諭變豕貫賁贛起跋趼跰軔輸邔郱鄑鄛鈸鋗鋘鉼鏹鐕開䦕閷䧦雃嶲霣" + + "䩮䩶韠䪲頋頩飢䬳餩馧駂駾䯎鬒鱀鳽䳎䳭鵧䳸麻䵖黹黾鼅鼏鼖鼻" + +var mappingIndex = []uint16{ // 1650 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0001, 0x0004, 0x0005, 0x0008, 0x0009, 0x000a, + 0x000d, 0x0010, 0x0011, 0x0012, 0x0017, 0x001c, 0x0021, 0x0024, + 0x0027, 0x002a, 0x002b, 0x002e, 0x0031, 0x0034, 0x0035, 0x0036, + 0x0037, 0x0038, 0x0039, 0x003c, 0x003f, 0x0042, 0x0045, 0x0048, + 0x004b, 0x004c, 0x004d, 0x0051, 0x0054, 0x0055, 0x005a, 0x005e, + 0x0062, 0x0066, 0x006a, 0x006e, 0x0074, 0x007a, 0x0080, 0x0086, + 0x008c, 0x0092, 0x0098, 0x009e, 0x00a4, 0x00aa, 0x00b0, 0x00b6, + 0x00bc, 0x00c2, 0x00c8, 0x00ce, 0x00d4, 0x00da, 0x00e0, 0x00e6, + // Entry 40 - 7F + 0x00ec, 0x00f2, 0x00f8, 0x00fe, 0x0104, 0x010a, 0x0110, 0x0116, + 0x011c, 0x0122, 0x0128, 0x012e, 0x0137, 0x013d, 0x0146, 0x014c, + 0x0152, 0x0158, 0x015e, 0x0164, 0x016a, 0x0170, 0x0172, 0x0174, + 0x0176, 0x0178, 0x017a, 0x017c, 0x017e, 0x0180, 0x0181, 0x0182, + 0x0183, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 0x018a, 0x018c, + 0x018d, 0x018e, 0x018f, 0x0191, 0x0193, 0x0195, 0x0197, 0x0199, + 0x019b, 0x019d, 0x019f, 0x01a0, 0x01a2, 0x01a4, 0x01a6, 0x01a8, + 0x01aa, 0x01ac, 0x01ae, 0x01b0, 0x01b1, 0x01b3, 0x01b5, 0x01b6, + // Entry 80 - BF + 0x01b8, 0x01ba, 0x01bc, 0x01be, 0x01c0, 0x01c2, 0x01c4, 0x01c6, + 0x01c8, 0x01ca, 0x01cc, 0x01ce, 0x01d0, 0x01d2, 0x01d4, 0x01d6, + 0x01d8, 0x01da, 0x01dc, 0x01de, 0x01e0, 0x01e2, 0x01e4, 0x01e5, + 0x01e7, 0x01e9, 0x01eb, 0x01ed, 0x01ef, 0x01f1, 0x01f3, 0x01f5, + 0x01f7, 0x01f9, 0x01fb, 0x01fd, 0x0202, 0x0207, 0x020c, 0x0211, + 0x0216, 0x021b, 0x0220, 0x0225, 0x022a, 0x022f, 0x0234, 0x0239, + 0x023e, 0x0243, 0x0248, 0x024d, 0x0252, 0x0257, 0x025c, 0x0261, + 0x0266, 0x026b, 0x0270, 0x0275, 0x027a, 0x027e, 0x0282, 0x0287, + // Entry C0 - FF + 0x0289, 0x028e, 0x0293, 0x0297, 0x029b, 0x02a0, 0x02a5, 0x02aa, + 0x02af, 0x02b1, 0x02b6, 0x02bb, 0x02c0, 0x02c2, 0x02c7, 0x02c8, + 0x02cd, 0x02d1, 0x02d5, 0x02da, 0x02e0, 0x02e9, 0x02ef, 0x02f8, + 0x02fa, 0x02fc, 0x02fe, 0x0300, 0x030c, 0x030d, 0x030e, 0x030f, + 0x0310, 0x0311, 0x0312, 0x0313, 0x0314, 0x0315, 0x0316, 0x0317, + 0x0319, 0x031b, 0x031d, 0x031e, 0x0320, 0x0322, 0x0324, 0x0326, + 0x0328, 0x032a, 0x032c, 0x032e, 0x0330, 0x0335, 0x033a, 0x0340, + 0x0345, 0x034a, 0x034f, 0x0354, 0x0359, 0x035e, 0x0363, 0x0368, + // Entry 100 - 13F + 0x036d, 0x0372, 0x0377, 0x037c, 0x0380, 0x0382, 0x0384, 0x0386, + 0x038a, 0x038c, 0x038e, 0x0393, 0x0399, 0x03a2, 0x03a8, 0x03b1, + 0x03b3, 0x03b5, 0x03b7, 0x03b9, 0x03bb, 0x03bd, 0x03bf, 0x03c1, + 0x03c3, 0x03c5, 0x03c7, 0x03cb, 0x03cf, 0x03d3, 0x03d7, 0x03db, + 0x03df, 0x03e3, 0x03e7, 0x03eb, 0x03ef, 0x03f3, 0x03ff, 0x0401, + 0x0406, 0x0408, 0x040a, 0x040c, 0x040e, 0x040f, 0x0413, 0x0417, + 0x041d, 0x0423, 0x0428, 0x042d, 0x0432, 0x0437, 0x043c, 0x0441, + 0x0446, 0x044b, 0x0450, 0x0455, 0x045a, 0x045f, 0x0464, 0x0469, + // Entry 140 - 17F + 0x046e, 0x0473, 0x0478, 0x047d, 0x0482, 0x0487, 0x048c, 0x0491, + 0x0496, 0x049b, 0x04a0, 0x04a5, 0x04aa, 0x04af, 0x04b4, 0x04bc, + 0x04c4, 0x04c9, 0x04ce, 0x04d3, 0x04d8, 0x04dd, 0x04e2, 0x04e7, + 0x04ec, 0x04f1, 0x04f6, 0x04fb, 0x0500, 0x0505, 0x050a, 0x050f, + 0x0514, 0x0519, 0x051e, 0x0523, 0x0528, 0x052d, 0x0532, 0x0537, + 0x053c, 0x0541, 0x0546, 0x054b, 0x0550, 0x0555, 0x055a, 0x055f, + 0x0564, 0x0569, 0x056e, 0x0573, 0x0578, 0x057a, 0x057c, 0x057e, + 0x0580, 0x0582, 0x0584, 0x0586, 0x0588, 0x058a, 0x058c, 0x058e, + // Entry 180 - 1BF + 0x0590, 0x0592, 0x0594, 0x0596, 0x059c, 0x05a2, 0x05a4, 0x05a6, + 0x05a8, 0x05aa, 0x05ac, 0x05ae, 0x05b0, 0x05b2, 0x05b4, 0x05b6, + 0x05b8, 0x05ba, 0x05bc, 0x05be, 0x05c0, 0x05c4, 0x05c8, 0x05cc, + 0x05d0, 0x05d4, 0x05d8, 0x05dc, 0x05e0, 0x05e4, 0x05e9, 0x05ee, + 0x05f3, 0x05f5, 0x05f7, 0x05fd, 0x0609, 0x0615, 0x0621, 0x062a, + 0x0636, 0x063f, 0x0648, 0x0657, 0x0663, 0x066c, 0x0675, 0x067e, + 0x068a, 0x0696, 0x069f, 0x06a8, 0x06ae, 0x06b7, 0x06c3, 0x06cf, + 0x06d5, 0x06e4, 0x06f6, 0x0705, 0x070e, 0x071d, 0x072c, 0x0738, + // Entry 1C0 - 1FF + 0x0741, 0x074a, 0x0753, 0x075f, 0x076e, 0x077a, 0x0783, 0x078c, + 0x0795, 0x079b, 0x07a1, 0x07a7, 0x07ad, 0x07b6, 0x07bf, 0x07ce, + 0x07d7, 0x07e3, 0x07f2, 0x07fb, 0x0801, 0x0807, 0x0816, 0x0822, + 0x0831, 0x083a, 0x0849, 0x084f, 0x0858, 0x0861, 0x086a, 0x0873, + 0x087c, 0x0888, 0x0891, 0x0897, 0x08a0, 0x08a9, 0x08b2, 0x08be, + 0x08c7, 0x08d0, 0x08d9, 0x08e8, 0x08f4, 0x08fa, 0x0909, 0x090f, + 0x091b, 0x0927, 0x0930, 0x0939, 0x0942, 0x094e, 0x0954, 0x095d, + 0x0969, 0x096f, 0x097e, 0x0987, 0x098b, 0x098f, 0x0993, 0x0997, + // Entry 200 - 23F + 0x099b, 0x099f, 0x09a3, 0x09a7, 0x09ab, 0x09af, 0x09b4, 0x09b9, + 0x09be, 0x09c3, 0x09c8, 0x09cd, 0x09d2, 0x09d7, 0x09dc, 0x09e1, + 0x09e6, 0x09eb, 0x09f0, 0x09f5, 0x09fa, 0x09fc, 0x09fe, 0x0a00, + 0x0a02, 0x0a04, 0x0a06, 0x0a0c, 0x0a12, 0x0a18, 0x0a1e, 0x0a2a, + 0x0a2c, 0x0a2e, 0x0a30, 0x0a32, 0x0a34, 0x0a36, 0x0a38, 0x0a3c, + 0x0a3e, 0x0a40, 0x0a42, 0x0a44, 0x0a46, 0x0a48, 0x0a4a, 0x0a4c, + 0x0a4e, 0x0a50, 0x0a52, 0x0a54, 0x0a56, 0x0a58, 0x0a5a, 0x0a5f, + 0x0a65, 0x0a6c, 0x0a74, 0x0a76, 0x0a78, 0x0a7a, 0x0a7c, 0x0a7e, + // Entry 240 - 27F + 0x0a80, 0x0a82, 0x0a84, 0x0a86, 0x0a88, 0x0a8a, 0x0a8c, 0x0a8e, + 0x0a90, 0x0a96, 0x0a98, 0x0a9a, 0x0a9c, 0x0a9e, 0x0aa0, 0x0aa2, + 0x0aa4, 0x0aa6, 0x0aa8, 0x0aaa, 0x0aac, 0x0aae, 0x0ab0, 0x0ab2, + 0x0ab4, 0x0ab9, 0x0abe, 0x0ac2, 0x0ac6, 0x0aca, 0x0ace, 0x0ad2, + 0x0ad6, 0x0ada, 0x0ade, 0x0ae2, 0x0ae7, 0x0aec, 0x0af1, 0x0af6, + 0x0afb, 0x0b00, 0x0b05, 0x0b0a, 0x0b0f, 0x0b14, 0x0b19, 0x0b1e, + 0x0b23, 0x0b28, 0x0b2d, 0x0b32, 0x0b37, 0x0b3c, 0x0b41, 0x0b46, + 0x0b4b, 0x0b50, 0x0b52, 0x0b54, 0x0b56, 0x0b58, 0x0b5a, 0x0b5c, + // Entry 280 - 2BF + 0x0b5e, 0x0b62, 0x0b66, 0x0b6a, 0x0b6e, 0x0b72, 0x0b76, 0x0b7a, + 0x0b7c, 0x0b7e, 0x0b80, 0x0b82, 0x0b86, 0x0b8a, 0x0b8e, 0x0b92, + 0x0b96, 0x0b9a, 0x0b9e, 0x0ba0, 0x0ba2, 0x0ba4, 0x0ba6, 0x0ba8, + 0x0baa, 0x0bac, 0x0bb0, 0x0bb4, 0x0bba, 0x0bc0, 0x0bc4, 0x0bc8, + 0x0bcc, 0x0bd0, 0x0bd4, 0x0bd8, 0x0bdc, 0x0be0, 0x0be4, 0x0be8, + 0x0bec, 0x0bf0, 0x0bf4, 0x0bf8, 0x0bfc, 0x0c00, 0x0c04, 0x0c08, + 0x0c0c, 0x0c10, 0x0c14, 0x0c18, 0x0c1c, 0x0c20, 0x0c24, 0x0c28, + 0x0c2c, 0x0c30, 0x0c34, 0x0c36, 0x0c38, 0x0c3a, 0x0c3c, 0x0c3e, + // Entry 2C0 - 2FF + 0x0c40, 0x0c42, 0x0c44, 0x0c46, 0x0c48, 0x0c4a, 0x0c4c, 0x0c4e, + 0x0c50, 0x0c52, 0x0c54, 0x0c56, 0x0c58, 0x0c5a, 0x0c5c, 0x0c5e, + 0x0c60, 0x0c62, 0x0c64, 0x0c66, 0x0c68, 0x0c6a, 0x0c6c, 0x0c6e, + 0x0c70, 0x0c72, 0x0c74, 0x0c76, 0x0c78, 0x0c7a, 0x0c7c, 0x0c7e, + 0x0c80, 0x0c82, 0x0c86, 0x0c8a, 0x0c8e, 0x0c92, 0x0c96, 0x0c9a, + 0x0c9e, 0x0ca2, 0x0ca4, 0x0ca8, 0x0cac, 0x0cb0, 0x0cb4, 0x0cb8, + 0x0cbc, 0x0cc0, 0x0cc4, 0x0cc8, 0x0ccc, 0x0cd0, 0x0cd4, 0x0cd8, + 0x0cdc, 0x0ce0, 0x0ce4, 0x0ce8, 0x0cec, 0x0cf0, 0x0cf4, 0x0cf8, + // Entry 300 - 33F + 0x0cfc, 0x0d00, 0x0d04, 0x0d08, 0x0d0c, 0x0d10, 0x0d14, 0x0d18, + 0x0d1c, 0x0d20, 0x0d24, 0x0d28, 0x0d2c, 0x0d30, 0x0d34, 0x0d38, + 0x0d3c, 0x0d40, 0x0d44, 0x0d48, 0x0d4c, 0x0d50, 0x0d54, 0x0d58, + 0x0d5c, 0x0d60, 0x0d64, 0x0d68, 0x0d6c, 0x0d70, 0x0d74, 0x0d78, + 0x0d7c, 0x0d80, 0x0d84, 0x0d88, 0x0d8c, 0x0d90, 0x0d94, 0x0d98, + 0x0d9c, 0x0da0, 0x0da4, 0x0da8, 0x0dac, 0x0db0, 0x0db4, 0x0db8, + 0x0dbc, 0x0dc0, 0x0dc4, 0x0dc8, 0x0dcc, 0x0dd0, 0x0dd4, 0x0dd8, + 0x0ddc, 0x0de0, 0x0de4, 0x0de8, 0x0dec, 0x0df0, 0x0df4, 0x0df8, + // Entry 340 - 37F + 0x0dfc, 0x0e00, 0x0e04, 0x0e08, 0x0e0c, 0x0e10, 0x0e14, 0x0e18, + 0x0e1d, 0x0e22, 0x0e27, 0x0e2c, 0x0e31, 0x0e36, 0x0e3a, 0x0e3e, + 0x0e42, 0x0e46, 0x0e4a, 0x0e4e, 0x0e52, 0x0e56, 0x0e5a, 0x0e5e, + 0x0e62, 0x0e66, 0x0e6a, 0x0e6e, 0x0e72, 0x0e76, 0x0e7a, 0x0e7e, + 0x0e82, 0x0e86, 0x0e8a, 0x0e8e, 0x0e92, 0x0e96, 0x0e9a, 0x0e9e, + 0x0ea2, 0x0ea6, 0x0eaa, 0x0eae, 0x0eb2, 0x0eb6, 0x0ebc, 0x0ec2, + 0x0ec8, 0x0ecc, 0x0ed0, 0x0ed4, 0x0ed8, 0x0edc, 0x0ee0, 0x0ee4, + 0x0ee8, 0x0eec, 0x0ef0, 0x0ef4, 0x0ef8, 0x0efc, 0x0f00, 0x0f04, + // Entry 380 - 3BF + 0x0f08, 0x0f0c, 0x0f10, 0x0f14, 0x0f18, 0x0f1c, 0x0f20, 0x0f24, + 0x0f28, 0x0f2c, 0x0f30, 0x0f34, 0x0f38, 0x0f3e, 0x0f44, 0x0f4a, + 0x0f50, 0x0f56, 0x0f5c, 0x0f62, 0x0f68, 0x0f6e, 0x0f74, 0x0f7a, + 0x0f80, 0x0f86, 0x0f8c, 0x0f92, 0x0f98, 0x0f9e, 0x0fa4, 0x0faa, + 0x0fb0, 0x0fb6, 0x0fbc, 0x0fc2, 0x0fc8, 0x0fce, 0x0fd4, 0x0fda, + 0x0fe0, 0x0fe6, 0x0fec, 0x0ff2, 0x0ff8, 0x0ffe, 0x1004, 0x100a, + 0x1010, 0x1016, 0x101c, 0x1022, 0x1028, 0x102e, 0x1034, 0x103a, + 0x1040, 0x1046, 0x104c, 0x1052, 0x1058, 0x105e, 0x1064, 0x106a, + // Entry 3C0 - 3FF + 0x1070, 0x1076, 0x107c, 0x1082, 0x1088, 0x108e, 0x1094, 0x109a, + 0x10a0, 0x10a6, 0x10ac, 0x10b2, 0x10b8, 0x10be, 0x10c4, 0x10ca, + 0x10d0, 0x10d6, 0x10dc, 0x10e2, 0x10e8, 0x10ee, 0x10f4, 0x10fa, + 0x1100, 0x1106, 0x110c, 0x1112, 0x1118, 0x111e, 0x1124, 0x112a, + 0x1130, 0x1136, 0x113c, 0x1142, 0x1148, 0x114e, 0x1154, 0x115a, + 0x1160, 0x1166, 0x116c, 0x1172, 0x1178, 0x1180, 0x1188, 0x1190, + 0x1198, 0x11a0, 0x11a8, 0x11b0, 0x11b6, 0x11d7, 0x11e6, 0x11ee, + 0x11ef, 0x11f0, 0x11f1, 0x11f2, 0x11f3, 0x11f4, 0x11f5, 0x11f6, + // Entry 400 - 43F + 0x11f7, 0x11f8, 0x11f9, 0x11fa, 0x11fb, 0x11fc, 0x11fd, 0x11fe, + 0x11ff, 0x1200, 0x1201, 0x1205, 0x1209, 0x120d, 0x1211, 0x1215, + 0x1219, 0x121b, 0x121d, 0x121f, 0x1221, 0x1223, 0x1225, 0x1227, + 0x1229, 0x122b, 0x122d, 0x122f, 0x1231, 0x1233, 0x1235, 0x1237, + 0x1239, 0x123b, 0x123d, 0x123f, 0x1241, 0x1243, 0x1245, 0x1247, + 0x1249, 0x124b, 0x124d, 0x124f, 0x1251, 0x1253, 0x1255, 0x1257, + 0x1259, 0x125b, 0x125d, 0x125f, 0x1263, 0x1267, 0x126b, 0x126f, + 0x1270, 0x1271, 0x1272, 0x1273, 0x1274, 0x1275, 0x1277, 0x1279, + // Entry 440 - 47F + 0x127b, 0x127d, 0x127f, 0x1287, 0x128f, 0x129b, 0x12a7, 0x12b3, + 0x12bf, 0x12cb, 0x12d3, 0x12db, 0x12e7, 0x12f3, 0x12ff, 0x130b, + 0x130d, 0x130f, 0x1311, 0x1313, 0x1315, 0x1317, 0x1319, 0x131b, + 0x131d, 0x131f, 0x1321, 0x1323, 0x1325, 0x1327, 0x1329, 0x132b, + 0x132e, 0x1331, 0x1333, 0x1335, 0x1337, 0x1339, 0x133b, 0x133d, + 0x133f, 0x1341, 0x1343, 0x1345, 0x1347, 0x1349, 0x134b, 0x134d, + 0x1350, 0x1353, 0x1356, 0x1359, 0x135c, 0x135f, 0x1362, 0x1365, + 0x1368, 0x136b, 0x136e, 0x1371, 0x1374, 0x1377, 0x137a, 0x137d, + // Entry 480 - 4BF + 0x1380, 0x1383, 0x1386, 0x1389, 0x138c, 0x138f, 0x1392, 0x1395, + 0x1398, 0x139b, 0x13a2, 0x13a4, 0x13a6, 0x13a8, 0x13ab, 0x13ad, + 0x13af, 0x13b1, 0x13b3, 0x13b5, 0x13bb, 0x13c1, 0x13c4, 0x13c7, + 0x13ca, 0x13cd, 0x13d0, 0x13d3, 0x13d6, 0x13d9, 0x13dc, 0x13df, + 0x13e2, 0x13e5, 0x13e8, 0x13eb, 0x13ee, 0x13f1, 0x13f4, 0x13f7, + 0x13fa, 0x13fd, 0x1400, 0x1403, 0x1406, 0x1409, 0x140c, 0x140f, + 0x1412, 0x1415, 0x1418, 0x141b, 0x141e, 0x1421, 0x1424, 0x1427, + 0x142a, 0x142d, 0x1430, 0x1433, 0x1436, 0x1439, 0x143c, 0x143f, + // Entry 4C0 - 4FF + 0x1442, 0x1445, 0x1448, 0x1451, 0x145a, 0x1463, 0x146c, 0x1475, + 0x147e, 0x1487, 0x1490, 0x1499, 0x149c, 0x149f, 0x14a2, 0x14a5, + 0x14a8, 0x14ab, 0x14ae, 0x14b1, 0x14b4, 0x14b7, 0x14ba, 0x14bd, + 0x14c0, 0x14c3, 0x14c6, 0x14c9, 0x14cc, 0x14cf, 0x14d2, 0x14d5, + 0x14d8, 0x14db, 0x14de, 0x14e1, 0x14e4, 0x14e7, 0x14ea, 0x14ed, + 0x14f0, 0x14f3, 0x14f6, 0x14f9, 0x14fc, 0x14ff, 0x1502, 0x1505, + 0x1508, 0x150b, 0x150e, 0x1511, 0x1514, 0x1517, 0x151a, 0x151d, + 0x1520, 0x1523, 0x1526, 0x1529, 0x152c, 0x152f, 0x1532, 0x1535, + // Entry 500 - 53F + 0x1538, 0x153b, 0x153e, 0x1541, 0x1544, 0x1547, 0x154a, 0x154d, + 0x1550, 0x1553, 0x1556, 0x1559, 0x155c, 0x155f, 0x1562, 0x1565, + 0x1568, 0x156b, 0x156e, 0x1571, 0x1574, 0x1577, 0x157a, 0x157d, + 0x1580, 0x1583, 0x1586, 0x1589, 0x158c, 0x158f, 0x1592, 0x1595, + 0x1598, 0x159b, 0x159e, 0x15a1, 0x15a4, 0x15a7, 0x15aa, 0x15ad, + 0x15b0, 0x15b3, 0x15b6, 0x15b9, 0x15bc, 0x15bf, 0x15c2, 0x15c5, + 0x15c8, 0x15cb, 0x15ce, 0x15d1, 0x15d4, 0x15d7, 0x15da, 0x15dd, + 0x15e0, 0x15e3, 0x15e6, 0x15e9, 0x15ec, 0x15ef, 0x15f2, 0x15f5, + // Entry 540 - 57F + 0x15f8, 0x15fb, 0x15fe, 0x1601, 0x1604, 0x1607, 0x160a, 0x160d, + 0x1610, 0x1613, 0x1616, 0x1619, 0x161c, 0x161f, 0x1622, 0x1625, + 0x1628, 0x162b, 0x162e, 0x1631, 0x1634, 0x1637, 0x163a, 0x163d, + 0x1640, 0x1643, 0x1646, 0x1649, 0x164c, 0x164f, 0x1652, 0x1655, + 0x1658, 0x165b, 0x165e, 0x1661, 0x1664, 0x1667, 0x166a, 0x166d, + 0x1670, 0x1673, 0x1676, 0x1679, 0x167c, 0x167f, 0x1682, 0x1685, + 0x1688, 0x168b, 0x168e, 0x1691, 0x1694, 0x1697, 0x169a, 0x169d, + 0x16a0, 0x16a3, 0x16a6, 0x16a9, 0x16ac, 0x16af, 0x16b2, 0x16b5, + // Entry 580 - 5BF + 0x16b8, 0x16bb, 0x16be, 0x16c1, 0x16c4, 0x16c7, 0x16ca, 0x16cd, + 0x16d0, 0x16d3, 0x16d6, 0x16d9, 0x16dc, 0x16df, 0x16e2, 0x16e5, + 0x16e8, 0x16eb, 0x16ee, 0x16f1, 0x16f4, 0x16f7, 0x16fa, 0x16fd, + 0x1700, 0x1703, 0x1706, 0x1709, 0x170c, 0x170f, 0x1712, 0x1715, + 0x1718, 0x171b, 0x171e, 0x1721, 0x1724, 0x1727, 0x172a, 0x172d, + 0x1730, 0x1733, 0x1736, 0x1739, 0x173c, 0x173f, 0x1742, 0x1745, + 0x1748, 0x174b, 0x174e, 0x1751, 0x1754, 0x1757, 0x175a, 0x175d, + 0x1760, 0x1763, 0x1766, 0x1769, 0x176c, 0x176f, 0x1772, 0x1775, + // Entry 5C0 - 5FF + 0x1778, 0x177b, 0x177e, 0x1781, 0x1784, 0x1787, 0x178a, 0x178d, + 0x1790, 0x1793, 0x1796, 0x1799, 0x179c, 0x179f, 0x17a2, 0x17a5, + 0x17a8, 0x17ab, 0x17ae, 0x17b1, 0x17b4, 0x17b7, 0x17ba, 0x17bd, + 0x17c0, 0x17c3, 0x17c6, 0x17c9, 0x17cc, 0x17cf, 0x17d2, 0x17d5, + 0x17d8, 0x17db, 0x17de, 0x17e1, 0x17e4, 0x17e7, 0x17ea, 0x17ed, + 0x17f0, 0x17f3, 0x17f6, 0x17f9, 0x17fc, 0x17ff, 0x1802, 0x1805, + 0x1808, 0x180b, 0x180e, 0x1811, 0x1814, 0x1817, 0x181a, 0x181d, + 0x1820, 0x1823, 0x1826, 0x1829, 0x182c, 0x182f, 0x1832, 0x1835, + // Entry 600 - 63F + 0x1838, 0x183b, 0x183e, 0x1841, 0x1844, 0x1847, 0x184a, 0x184d, + 0x1850, 0x1853, 0x1856, 0x1859, 0x185c, 0x185f, 0x1862, 0x1865, + 0x1868, 0x186b, 0x186e, 0x1871, 0x1874, 0x1877, 0x187a, 0x187d, + 0x1880, 0x1883, 0x1886, 0x1889, 0x188c, 0x188f, 0x1892, 0x1895, + 0x1898, 0x189b, 0x189e, 0x18a1, 0x18a4, 0x18a7, 0x18aa, 0x18ad, + 0x18b0, 0x18b3, 0x18b6, 0x18b9, 0x18bc, 0x18bf, 0x18c2, 0x18c5, + 0x18c8, 0x18cb, 0x18ce, 0x18d1, 0x18d4, 0x18d7, 0x18da, 0x18dd, + 0x18e0, 0x18e3, 0x18e6, 0x18e9, 0x18ec, 0x18ef, 0x18f2, 0x18f5, + // Entry 640 - 67F + 0x18f8, 0x18fb, 0x18fe, 0x1901, 0x1904, 0x1907, 0x190a, 0x190d, + 0x1910, 0x1913, 0x1916, 0x1919, 0x191c, 0x191f, 0x1922, 0x1925, + 0x1928, 0x192b, 0x192e, 0x1931, 0x1934, 0x1937, 0x193a, 0x193d, + 0x1940, 0x1943, 0x1946, 0x1949, 0x194c, 0x194f, 0x1952, 0x1955, + 0x1958, 0x195b, 0x195e, 0x1961, 0x1964, 0x1967, 0x196a, 0x196d, + 0x1970, 0x1973, 0x1976, 0x1979, 0x197c, 0x197f, 0x1982, 0x1985, + 0x1988, 0x198b, +} // Size: 3324 bytes var xorData string = "" + // Size: 4862 bytes "\x02\x0c\x09\x02\xb0\xec\x02\xad\xd8\x02\xad\xd9\x02\x06\x07\x02\x0f\x12" + @@ -547,7 +690,7 @@ func (t *idnaTrie) lookupStringUnsafe(s string) uint16 { return 0 } -// idnaTrie. Total size: 30288 bytes (29.58 KiB). Checksum: c0cd84404a2f6f19. +// idnaTrie. Total size: 30196 bytes (29.49 KiB). Checksum: e2ae95a945f04016. type idnaTrie struct{} func newIdnaTrie(i int) *idnaTrie { @@ -600,11 +743,11 @@ var idnaValues = [8192]uint16{ 0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040, 0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040, 0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018, - 0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018, - 0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a, - 0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005, - 0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018, - 0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018, + 0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x0012, 0xe9: 0x0018, + 0xea: 0x0019, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x0022, + 0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0029, 0xf3: 0x0031, 0xf4: 0x003a, 0xf5: 0x0005, + 0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x0042, 0xf9: 0x0049, 0xfa: 0x0051, 0xfb: 0x0018, + 0xfc: 0x0059, 0xfd: 0x0061, 0xfe: 0x0069, 0xff: 0x0018, // Block 0x4, offset 0x100 0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008, 0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008, @@ -614,12 +757,12 @@ var idnaValues = [8192]uint16{ 0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008, 0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008, 0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008, - 0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008, + 0x130: 0x0071, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008, 0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d, - 0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199, + 0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0079, // Block 0x5, offset 0x140 - 0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d, - 0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008, + 0x140: 0x0079, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d, + 0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x0081, 0x14a: 0xe00d, 0x14b: 0x0008, 0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008, 0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008, 0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008, @@ -628,7 +771,7 @@ var idnaValues = [8192]uint16{ 0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008, 0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008, 0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d, - 0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9, + 0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x0089, // Block 0x6, offset 0x180 0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008, 0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d, @@ -642,8 +785,8 @@ var idnaValues = [8192]uint16{ 0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008, 0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008, // Block 0x7, offset 0x1c0 - 0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9, - 0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d, + 0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x0091, 0x1c5: 0x0091, + 0x1c6: 0x0091, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d, 0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d, 0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d, 0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008, @@ -663,22 +806,22 @@ var idnaValues = [8192]uint16{ 0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008, 0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008, 0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008, - 0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d, - 0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008, + 0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0099, 0x23b: 0xe03d, + 0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x00a1, 0x23f: 0x0008, // Block 0x9, offset 0x240 0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018, 0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008, 0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008, 0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018, - 0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a, - 0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369, + 0x258: 0x00d2, 0x259: 0x00da, 0x25a: 0x00e2, 0x25b: 0x00ea, 0x25c: 0x00f2, 0x25d: 0x00fa, + 0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0101, 0x262: 0x0089, 0x263: 0x0109, 0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018, 0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018, 0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018, 0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018, 0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018, // Block 0xa, offset 0x280 - 0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d, + 0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0111, 0x285: 0x040d, 0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308, 0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308, 0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308, @@ -687,10 +830,10 @@ var idnaValues = [8192]uint16{ 0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308, 0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308, 0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008, - 0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008, - 0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d, + 0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x011a, 0x2bb: 0x0008, + 0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x0122, 0x2bf: 0x043d, // Block 0xb, offset 0x2c0 - 0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2, + 0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x003a, 0x2c5: 0x012a, 0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040, 0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105, 0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105, @@ -782,8 +925,8 @@ var idnaValues = [8192]uint16{ 0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808, 0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808, 0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08, - 0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429, - 0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08, + 0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0139, + 0x4b6: 0x0141, 0x4b7: 0x0149, 0x4b8: 0x0151, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08, 0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08, // Block 0x13, offset 0x4c0 0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08, @@ -826,8 +969,8 @@ var idnaValues = [8192]uint16{ 0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008, 0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308, 0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308, - 0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1, - 0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308, + 0x598: 0x0159, 0x599: 0x0161, 0x59a: 0x0169, 0x59b: 0x0171, 0x59c: 0x0179, 0x59d: 0x0181, + 0x59e: 0x0189, 0x59f: 0x0191, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308, 0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008, 0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008, 0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008, @@ -850,8 +993,8 @@ var idnaValues = [8192]uint16{ 0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008, 0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040, 0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008, - 0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1, - 0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308, + 0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0199, 0x61d: 0x01a1, + 0x61e: 0x0040, 0x61f: 0x01a9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308, 0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008, 0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008, 0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018, @@ -866,16 +1009,16 @@ var idnaValues = [8192]uint16{ 0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008, 0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040, 0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008, - 0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008, - 0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040, + 0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x01b1, 0x674: 0x0040, 0x675: 0x0008, + 0x676: 0x01b9, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040, 0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008, // Block 0x1a, offset 0x680 0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040, 0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308, 0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308, 0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040, - 0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040, - 0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040, + 0x698: 0x0040, 0x699: 0x01c1, 0x69a: 0x01c9, 0x69b: 0x01d1, 0x69c: 0x0008, 0x69d: 0x0040, + 0x69e: 0x01d9, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040, 0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008, 0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008, 0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308, @@ -922,7 +1065,7 @@ var idnaValues = [8192]uint16{ 0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008, 0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040, 0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x3308, 0x796: 0x3308, 0x797: 0x3008, - 0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9, + 0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x01e1, 0x79d: 0x01e9, 0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308, 0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008, 0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008, @@ -998,32 +1141,32 @@ var idnaValues = [8192]uint16{ 0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008, 0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0008, 0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008, - 0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308, + 0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x01f9, 0x934: 0x3308, 0x935: 0x3308, 0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x3b08, 0x93b: 0x3308, 0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040, // Block 0x25, offset 0x940 - 0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008, + 0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x0211, 0x944: 0x0008, 0x945: 0x0008, 0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008, - 0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008, - 0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79, - 0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008, + 0x94c: 0x0008, 0x94d: 0x0219, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008, + 0x952: 0x0221, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0229, + 0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0231, 0x95d: 0x0008, 0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008, - 0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9, + 0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0239, 0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040, - 0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59, - 0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308, + 0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0241, 0x974: 0x3308, 0x975: 0x0249, + 0x976: 0x0251, 0x977: 0x0259, 0x978: 0x0261, 0x979: 0x0269, 0x97a: 0x3308, 0x97b: 0x3308, 0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008, // Block 0x26, offset 0x980 - 0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018, + 0x980: 0x3308, 0x981: 0x0271, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018, 0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008, 0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308, - 0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308, - 0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11, - 0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308, - 0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308, - 0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308, + 0x992: 0x3308, 0x993: 0x0279, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308, + 0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0281, + 0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0289, 0x9a3: 0x3308, + 0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0291, 0x9a8: 0x3308, 0x9a9: 0x3308, + 0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0299, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308, 0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308, - 0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308, + 0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x02a1, 0x9ba: 0x3308, 0x9bb: 0x3308, 0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018, // Block 0x27, offset 0x9c0 0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008, @@ -1033,34 +1176,34 @@ var idnaValues = [8192]uint16{ 0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008, 0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008, 0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008, - 0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008, - 0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41, - 0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008, - 0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269, + 0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0019, 0x9ed: 0x02e1, 0x9ee: 0x02e9, 0x9ef: 0x0008, + 0x9f0: 0x02f1, 0x9f1: 0x02f9, 0x9f2: 0x0301, 0x9f3: 0x0309, 0x9f4: 0x00a9, 0x9f5: 0x0311, + 0x9f6: 0x00b1, 0x9f7: 0x0319, 0x9f8: 0x0101, 0x9f9: 0x0321, 0x9fa: 0x0329, 0x9fb: 0x0008, + 0x9fc: 0x0051, 0x9fd: 0x0331, 0x9fe: 0x0339, 0x9ff: 0x00b9, // Block 0x28, offset 0xa00 - 0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1, - 0xa06: 0x05b5, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011, - 0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041, - 0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05cd, 0xa15: 0x05cd, 0xa16: 0x0f99, 0xa17: 0x0fa9, - 0xa18: 0x0fb9, 0xa19: 0x05b5, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05e5, 0xa1d: 0x1099, - 0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269, - 0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1, - 0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008, + 0xa00: 0x0341, 0xa01: 0x0349, 0xa02: 0x00c1, 0xa03: 0x0019, 0xa04: 0x0351, 0xa05: 0x0359, + 0xa06: 0x05b5, 0xa07: 0x02e9, 0xa08: 0x02f1, 0xa09: 0x02f9, 0xa0a: 0x0361, 0xa0b: 0x0369, + 0xa0c: 0x0371, 0xa0d: 0x0309, 0xa0e: 0x0008, 0xa0f: 0x0319, 0xa10: 0x0321, 0xa11: 0x0379, + 0xa12: 0x0051, 0xa13: 0x0381, 0xa14: 0x05cd, 0xa15: 0x05cd, 0xa16: 0x0339, 0xa17: 0x0341, + 0xa18: 0x0349, 0xa19: 0x05b5, 0xa1a: 0x0389, 0xa1b: 0x0391, 0xa1c: 0x05e5, 0xa1d: 0x0399, + 0xa1e: 0x03a1, 0xa1f: 0x03a9, 0xa20: 0x03b1, 0xa21: 0x03b9, 0xa22: 0x0311, 0xa23: 0x00b9, + 0xa24: 0x0349, 0xa25: 0x0391, 0xa26: 0x0399, 0xa27: 0x03a1, 0xa28: 0x03c1, 0xa29: 0x03b1, + 0xa2a: 0x03b9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008, 0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008, - 0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008, + 0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x03c9, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008, 0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008, // Block 0x29, offset 0xa40 0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008, 0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008, 0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008, 0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008, - 0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169, - 0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9, - 0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05fd, 0xa68: 0x1239, 0xa69: 0x1251, - 0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9, - 0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359, - 0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x0615, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1, - 0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429, + 0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x03d1, 0xa5c: 0x03d9, 0xa5d: 0x03e1, + 0xa5e: 0x03e9, 0xa5f: 0x0371, 0xa60: 0x03f1, 0xa61: 0x03f9, 0xa62: 0x0401, 0xa63: 0x0409, + 0xa64: 0x0411, 0xa65: 0x0419, 0xa66: 0x0421, 0xa67: 0x05fd, 0xa68: 0x0429, 0xa69: 0x0431, + 0xa6a: 0xe17d, 0xa6b: 0x0439, 0xa6c: 0x0441, 0xa6d: 0x0449, 0xa6e: 0x0451, 0xa6f: 0x0459, + 0xa70: 0x0461, 0xa71: 0x0469, 0xa72: 0x0471, 0xa73: 0x0479, 0xa74: 0x0481, 0xa75: 0x0489, + 0xa76: 0x0491, 0xa77: 0x0499, 0xa78: 0x0615, 0xa79: 0x04a1, 0xa7a: 0x04a9, 0xa7b: 0x04b1, + 0xa7c: 0x04b9, 0xa7d: 0x04c1, 0xa7e: 0x04c9, 0xa7f: 0x04d1, // Block 0x2a, offset 0xa80 0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008, 0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008, @@ -1079,7 +1222,7 @@ var idnaValues = [8192]uint16{ 0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008, 0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008, 0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x062d, 0xadb: 0x064d, 0xadc: 0x0008, 0xadd: 0x0008, - 0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008, + 0xade: 0x04d9, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008, 0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008, 0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008, 0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008, @@ -1094,33 +1237,33 @@ var idnaValues = [8192]uint16{ 0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008, 0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045, 0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045, - 0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489, - 0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1, - 0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040, + 0xb30: 0x0008, 0xb31: 0x04e1, 0xb32: 0x0008, 0xb33: 0x04e9, 0xb34: 0x0008, 0xb35: 0x04f1, + 0xb36: 0x0008, 0xb37: 0x04f9, 0xb38: 0x0008, 0xb39: 0x0501, 0xb3a: 0x0008, 0xb3b: 0x0509, + 0xb3c: 0x0008, 0xb3d: 0x0511, 0xb3e: 0x0040, 0xb3f: 0x0040, // Block 0x2d, offset 0xb40 - 0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1, - 0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591, - 0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1, - 0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1, - 0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771, - 0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891, - 0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831, - 0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951, - 0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040, - 0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x0665, 0xb7b: 0x1459, - 0xb7c: 0x19b1, 0xb7d: 0x067e, 0xb7e: 0x1a31, 0xb7f: 0x069e, + 0xb40: 0x0519, 0xb41: 0x0521, 0xb42: 0x0529, 0xb43: 0x0531, 0xb44: 0x0539, 0xb45: 0x0541, + 0xb46: 0x0549, 0xb47: 0x0551, 0xb48: 0x0519, 0xb49: 0x0521, 0xb4a: 0x0529, 0xb4b: 0x0531, + 0xb4c: 0x0539, 0xb4d: 0x0541, 0xb4e: 0x0549, 0xb4f: 0x0551, 0xb50: 0x0559, 0xb51: 0x0561, + 0xb52: 0x0569, 0xb53: 0x0571, 0xb54: 0x0579, 0xb55: 0x0581, 0xb56: 0x0589, 0xb57: 0x0591, + 0xb58: 0x0559, 0xb59: 0x0561, 0xb5a: 0x0569, 0xb5b: 0x0571, 0xb5c: 0x0579, 0xb5d: 0x0581, + 0xb5e: 0x0589, 0xb5f: 0x0591, 0xb60: 0x0599, 0xb61: 0x05a1, 0xb62: 0x05a9, 0xb63: 0x05b1, + 0xb64: 0x05b9, 0xb65: 0x05c1, 0xb66: 0x05c9, 0xb67: 0x05d1, 0xb68: 0x0599, 0xb69: 0x05a1, + 0xb6a: 0x05a9, 0xb6b: 0x05b1, 0xb6c: 0x05b9, 0xb6d: 0x05c1, 0xb6e: 0x05c9, 0xb6f: 0x05d1, + 0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x05d9, 0xb73: 0x05e1, 0xb74: 0x05e9, 0xb75: 0x0040, + 0xb76: 0x0008, 0xb77: 0x05f1, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x0665, 0xb7b: 0x04e1, + 0xb7c: 0x05e1, 0xb7d: 0x067e, 0xb7e: 0x05f9, 0xb7f: 0x069e, // Block 0x2e, offset 0xb80 - 0xb80: 0x06be, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040, - 0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06dd, 0xb89: 0x1471, 0xb8a: 0x06f5, 0xb8b: 0x1489, - 0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008, - 0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008, - 0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x070d, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2, - 0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61, + 0xb80: 0x06be, 0xb81: 0x0602, 0xb82: 0x0609, 0xb83: 0x0611, 0xb84: 0x0619, 0xb85: 0x0040, + 0xb86: 0x0008, 0xb87: 0x0621, 0xb88: 0x06dd, 0xb89: 0x04e9, 0xb8a: 0x06f5, 0xb8b: 0x04f1, + 0xb8c: 0x0611, 0xb8d: 0x062a, 0xb8e: 0x0632, 0xb8f: 0x063a, 0xb90: 0x0008, 0xb91: 0x0008, + 0xb92: 0x0008, 0xb93: 0x0641, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008, + 0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x070d, 0xb9b: 0x04f9, 0xb9c: 0x0040, 0xb9d: 0x064a, + 0xb9e: 0x0652, 0xb9f: 0x065a, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x0661, 0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045, - 0xbaa: 0x0725, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa, - 0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040, - 0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x073d, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9, - 0xbbc: 0x1ce9, 0xbbd: 0x0756, 0xbbe: 0x0776, 0xbbf: 0x0040, + 0xbaa: 0x0725, 0xbab: 0x0509, 0xbac: 0xe04d, 0xbad: 0x066a, 0xbae: 0x012a, 0xbaf: 0x0672, + 0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x0679, 0xbb3: 0x0681, 0xbb4: 0x0689, 0xbb5: 0x0040, + 0xbb6: 0x0008, 0xbb7: 0x0691, 0xbb8: 0x073d, 0xbb9: 0x0501, 0xbba: 0x0515, 0xbbb: 0x0511, + 0xbbc: 0x0681, 0xbbd: 0x0756, 0xbbe: 0x0776, 0xbbf: 0x0040, // Block 0x2f, offset 0xbc0 0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a, 0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0, @@ -1130,72 +1273,72 @@ var idnaValues = [8192]uint16{ 0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018, 0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040, 0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a, - 0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018, - 0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018, - 0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x07b6, 0xbff: 0x0018, + 0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x0699, 0xbf4: 0x06a1, 0xbf5: 0x0018, + 0xbf6: 0x06a9, 0xbf7: 0x06b1, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018, + 0xbfc: 0x06ba, 0xbfd: 0x0018, 0xbfe: 0x07b6, 0xbff: 0x0018, // Block 0x30, offset 0xc00 0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018, - 0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018, + 0xc06: 0x0018, 0xc07: 0x06c2, 0xc08: 0x06ca, 0xc09: 0x06d2, 0xc0a: 0x0018, 0xc0b: 0x0018, 0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018, - 0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9, + 0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x06d9, 0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018, 0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340, 0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040, 0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340, - 0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61, - 0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07d5, - 0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71, + 0xc30: 0x06e1, 0xc31: 0x0311, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x06e9, 0xc35: 0x06f1, + 0xc36: 0x06f9, 0xc37: 0x0701, 0xc38: 0x0709, 0xc39: 0x0711, 0xc3a: 0x071a, 0xc3b: 0x07d5, + 0xc3c: 0x0722, 0xc3d: 0x072a, 0xc3e: 0x0732, 0xc3f: 0x0329, // Block 0x31, offset 0xc40 - 0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61, - 0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07ed, - 0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09, - 0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359, - 0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040, + 0xc40: 0x06e1, 0xc41: 0x0049, 0xc42: 0x0029, 0xc43: 0x0031, 0xc44: 0x06e9, 0xc45: 0x06f1, + 0xc46: 0x06f9, 0xc47: 0x0701, 0xc48: 0x0709, 0xc49: 0x0711, 0xc4a: 0x071a, 0xc4b: 0x07ed, + 0xc4c: 0x0722, 0xc4d: 0x072a, 0xc4e: 0x0732, 0xc4f: 0x0040, 0xc50: 0x0019, 0xc51: 0x02f9, + 0xc52: 0x0051, 0xc53: 0x0109, 0xc54: 0x0361, 0xc55: 0x00a9, 0xc56: 0x0319, 0xc57: 0x0101, + 0xc58: 0x0321, 0xc59: 0x0329, 0xc5a: 0x0339, 0xc5b: 0x0089, 0xc5c: 0x0341, 0xc5d: 0x0040, 0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018, - 0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018, + 0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x0739, 0xc69: 0x0018, 0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018, 0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018, 0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018, 0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018, // Block 0x32, offset 0xc80 - 0xc80: 0x0806, 0xc81: 0x0826, 0xc82: 0x1159, 0xc83: 0x0845, 0xc84: 0x0018, 0xc85: 0x0866, - 0xc86: 0x0886, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x08a5, 0xc8a: 0x0f31, 0xc8b: 0x0249, - 0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41, - 0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018, - 0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269, - 0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08c5, 0xca2: 0x2061, 0xca3: 0x0018, - 0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018, - 0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09, - 0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9, - 0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08e5, - 0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109, + 0xc80: 0x0806, 0xc81: 0x0826, 0xc82: 0x03d9, 0xc83: 0x0845, 0xc84: 0x0018, 0xc85: 0x0866, + 0xc86: 0x0886, 0xc87: 0x0369, 0xc88: 0x0018, 0xc89: 0x08a5, 0xc8a: 0x0309, 0xc8b: 0x00a9, + 0xc8c: 0x00a9, 0xc8d: 0x00a9, 0xc8e: 0x00a9, 0xc8f: 0x0741, 0xc90: 0x0311, 0xc91: 0x0311, + 0xc92: 0x0101, 0xc93: 0x0101, 0xc94: 0x0018, 0xc95: 0x0329, 0xc96: 0x0749, 0xc97: 0x0018, + 0xc98: 0x0018, 0xc99: 0x0339, 0xc9a: 0x0751, 0xc9b: 0x00b9, 0xc9c: 0x00b9, 0xc9d: 0x00b9, + 0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x0759, 0xca1: 0x08c5, 0xca2: 0x0761, 0xca3: 0x0018, + 0xca4: 0x04b1, 0xca5: 0x0018, 0xca6: 0x0769, 0xca7: 0x0018, 0xca8: 0x04b1, 0xca9: 0x0018, + 0xcaa: 0x0319, 0xcab: 0x0771, 0xcac: 0x02e9, 0xcad: 0x03d9, 0xcae: 0x0018, 0xcaf: 0x02f9, + 0xcb0: 0x02f9, 0xcb1: 0x03f1, 0xcb2: 0x0040, 0xcb3: 0x0321, 0xcb4: 0x0051, 0xcb5: 0x0779, + 0xcb6: 0x0781, 0xcb7: 0x0789, 0xcb8: 0x0791, 0xcb9: 0x0311, 0xcba: 0x0018, 0xcbb: 0x08e5, + 0xcbc: 0x0799, 0xcbd: 0x03a1, 0xcbe: 0x03a1, 0xcbf: 0x0799, // Block 0x33, offset 0xcc0 - 0xcc0: 0x0905, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9, - 0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018, - 0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151, - 0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279, - 0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399, - 0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x091d, 0xce3: 0x2439, - 0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x093d, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369, - 0xcea: 0x24a9, 0xceb: 0x095d, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61, - 0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x097d, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451, - 0xcf6: 0x099d, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09bd, - 0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61, + 0xcc0: 0x0905, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x02f1, + 0xcc6: 0x02f1, 0xcc7: 0x02f9, 0xcc8: 0x0311, 0xcc9: 0x00b1, 0xcca: 0x0018, 0xccb: 0x0018, + 0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x07a1, 0xcd1: 0x07a9, + 0xcd2: 0x07b1, 0xcd3: 0x07b9, 0xcd4: 0x07c1, 0xcd5: 0x07c9, 0xcd6: 0x07d1, 0xcd7: 0x07d9, + 0xcd8: 0x07e1, 0xcd9: 0x07e9, 0xcda: 0x07f1, 0xcdb: 0x07f9, 0xcdc: 0x0801, 0xcdd: 0x0809, + 0xcde: 0x0811, 0xcdf: 0x0819, 0xce0: 0x0311, 0xce1: 0x0821, 0xce2: 0x091d, 0xce3: 0x0829, + 0xce4: 0x0391, 0xce5: 0x0831, 0xce6: 0x093d, 0xce7: 0x0839, 0xce8: 0x0841, 0xce9: 0x0109, + 0xcea: 0x0849, 0xceb: 0x095d, 0xcec: 0x0101, 0xced: 0x03d9, 0xcee: 0x02f1, 0xcef: 0x0321, + 0xcf0: 0x0311, 0xcf1: 0x0821, 0xcf2: 0x097d, 0xcf3: 0x0829, 0xcf4: 0x0391, 0xcf5: 0x0831, + 0xcf6: 0x099d, 0xcf7: 0x0839, 0xcf8: 0x0841, 0xcf9: 0x0109, 0xcfa: 0x0849, 0xcfb: 0x09bd, + 0xcfc: 0x0101, 0xcfd: 0x03d9, 0xcfe: 0x02f1, 0xcff: 0x0321, // Block 0x34, offset 0xd00 0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018, 0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040, 0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040, 0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040, 0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040, - 0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51, - 0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601, - 0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691, - 0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a1e, 0xd35: 0x0a3e, + 0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x0049, 0xd21: 0x0029, 0xd22: 0x0031, 0xd23: 0x06e9, + 0xd24: 0x06f1, 0xd25: 0x06f9, 0xd26: 0x0701, 0xd27: 0x0709, 0xd28: 0x0711, 0xd29: 0x0879, + 0xd2a: 0x0881, 0xd2b: 0x0889, 0xd2c: 0x0891, 0xd2d: 0x0899, 0xd2e: 0x08a1, 0xd2f: 0x08a9, + 0xd30: 0x08b1, 0xd31: 0x08b9, 0xd32: 0x08c1, 0xd33: 0x08c9, 0xd34: 0x0a1e, 0xd35: 0x0a3e, 0xd36: 0x0a5e, 0xd37: 0x0a7e, 0xd38: 0x0a9e, 0xd39: 0x0abe, 0xd3a: 0x0ade, 0xd3b: 0x0afe, - 0xd3c: 0x0b1e, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a, + 0xd3c: 0x0b1e, 0xd3d: 0x08d2, 0xd3e: 0x08da, 0xd3f: 0x08e2, // Block 0x35, offset 0xd40 - 0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a, - 0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040, + 0xd40: 0x08ea, 0xd41: 0x08f2, 0xd42: 0x08fa, 0xd43: 0x0902, 0xd44: 0x090a, 0xd45: 0x0912, + 0xd46: 0x091a, 0xd47: 0x0922, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040, 0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040, 0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040, 0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b3e, 0xd5d: 0x0b5e, @@ -1203,17 +1346,17 @@ var idnaValues = [8192]uint16{ 0xd64: 0x0c3e, 0xd65: 0x0c5e, 0xd66: 0x0c7e, 0xd67: 0x0c9e, 0xd68: 0x0cbe, 0xd69: 0x0cde, 0xd6a: 0x0cfe, 0xd6b: 0x0d1e, 0xd6c: 0x0d3e, 0xd6d: 0x0d5e, 0xd6e: 0x0d7e, 0xd6f: 0x0d9e, 0xd70: 0x0dbe, 0xd71: 0x0dde, 0xd72: 0x0dfe, 0xd73: 0x0e1e, 0xd74: 0x0e3e, 0xd75: 0x0e5e, - 0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199, - 0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259, + 0xd76: 0x0019, 0xd77: 0x02e9, 0xd78: 0x03d9, 0xd79: 0x02f1, 0xd7a: 0x02f9, 0xd7b: 0x03f1, + 0xd7c: 0x0309, 0xd7d: 0x00a9, 0xd7e: 0x0311, 0xd7f: 0x00b1, // Block 0x36, offset 0xd80 - 0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99, - 0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089, - 0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9, - 0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249, - 0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71, - 0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9, - 0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1, - 0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018, + 0xd80: 0x0319, 0xd81: 0x0101, 0xd82: 0x0321, 0xd83: 0x0329, 0xd84: 0x0051, 0xd85: 0x0339, + 0xd86: 0x0751, 0xd87: 0x00b9, 0xd88: 0x0089, 0xd89: 0x0341, 0xd8a: 0x0349, 0xd8b: 0x0391, + 0xd8c: 0x00c1, 0xd8d: 0x0109, 0xd8e: 0x00c9, 0xd8f: 0x04b1, 0xd90: 0x0019, 0xd91: 0x02e9, + 0xd92: 0x03d9, 0xd93: 0x02f1, 0xd94: 0x02f9, 0xd95: 0x03f1, 0xd96: 0x0309, 0xd97: 0x00a9, + 0xd98: 0x0311, 0xd99: 0x00b1, 0xd9a: 0x0319, 0xd9b: 0x0101, 0xd9c: 0x0321, 0xd9d: 0x0329, + 0xd9e: 0x0051, 0xd9f: 0x0339, 0xda0: 0x0751, 0xda1: 0x00b9, 0xda2: 0x0089, 0xda3: 0x0341, + 0xda4: 0x0349, 0xda5: 0x0391, 0xda6: 0x00c1, 0xda7: 0x0109, 0xda8: 0x00c9, 0xda9: 0x04b1, + 0xdaa: 0x06e1, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018, 0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018, 0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018, 0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018, @@ -1223,12 +1366,12 @@ var idnaValues = [8192]uint16{ 0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008, 0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008, 0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008, - 0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ed5, - 0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d, - 0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9, - 0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d, + 0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x0941, 0xde3: 0x0ed5, + 0xde4: 0x0949, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d, + 0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0359, 0xdee: 0x0441, 0xdef: 0x0351, + 0xdf0: 0x03d1, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d, 0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008, - 0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9, + 0xdfc: 0x00b1, 0xdfd: 0x0391, 0xdfe: 0x0951, 0xdff: 0x0959, // Block 0x38, offset 0xe00 0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008, 0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008, @@ -1254,7 +1397,7 @@ var idnaValues = [8192]uint16{ 0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040, 0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040, // Block 0x3a, offset 0xe80 - 0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008, + 0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x0961, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008, 0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018, 0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018, 0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018, @@ -1290,17 +1433,17 @@ var idnaValues = [8192]uint16{ 0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0008, 0xf3c: 0x0008, 0xf3d: 0x0008, 0xf3e: 0x0008, 0xf3f: 0x0008, // Block 0x3d, offset 0xf40 - 0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32d5, 0xf45: 0x32f5, + 0xf40: 0x0b82, 0xf41: 0x0b8a, 0xf42: 0x0b92, 0xf43: 0x0b9a, 0xf44: 0x32d5, 0xf45: 0x32f5, 0xf46: 0x3315, 0xf47: 0x3335, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018, - 0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x3355, 0xf51: 0x3761, - 0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1, - 0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881, - 0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x3375, 0xf61: 0x3395, 0xf62: 0x33b5, 0xf63: 0x33d5, + 0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x3355, 0xf51: 0x0ba1, + 0xf52: 0x0ba9, 0xf53: 0x0bb1, 0xf54: 0x0bb9, 0xf55: 0x0bc1, 0xf56: 0x0bc9, 0xf57: 0x0bd1, + 0xf58: 0x0bd9, 0xf59: 0x0be1, 0xf5a: 0x0be9, 0xf5b: 0x0bf1, 0xf5c: 0x0bf9, 0xf5d: 0x0c01, + 0xf5e: 0x0c09, 0xf5f: 0x0c11, 0xf60: 0x3375, 0xf61: 0x3395, 0xf62: 0x33b5, 0xf63: 0x33d5, 0xf64: 0x33f5, 0xf65: 0x33f5, 0xf66: 0x3415, 0xf67: 0x3435, 0xf68: 0x3455, 0xf69: 0x3475, 0xf6a: 0x3495, 0xf6b: 0x34b5, 0xf6c: 0x34d5, 0xf6d: 0x34f5, 0xf6e: 0x3515, 0xf6f: 0x3535, 0xf70: 0x3555, 0xf71: 0x3575, 0xf72: 0x3595, 0xf73: 0x35b5, 0xf74: 0x35d5, 0xf75: 0x35f5, 0xf76: 0x3615, 0xf77: 0x3635, 0xf78: 0x3655, 0xf79: 0x3675, 0xf7a: 0x3695, 0xf7b: 0x36b5, - 0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36d5, 0xf7f: 0x0018, + 0xf7c: 0x0c19, 0xf7d: 0x0c21, 0xf7e: 0x36d5, 0xf7f: 0x0018, // Block 0x3e, offset 0xf80 0xf80: 0x36f5, 0xf81: 0x3715, 0xf82: 0x3735, 0xf83: 0x3755, 0xf84: 0x3775, 0xf85: 0x3795, 0xf86: 0x37b5, 0xf87: 0x37d5, 0xf88: 0x37f5, 0xf89: 0x3815, 0xf8a: 0x3835, 0xf8b: 0x3855, @@ -1310,13 +1453,13 @@ var idnaValues = [8192]uint16{ 0xf9e: 0x3ab5, 0xf9f: 0x3ad5, 0xfa0: 0x3af5, 0xfa1: 0x3b15, 0xfa2: 0x3b35, 0xfa3: 0x3b55, 0xfa4: 0x3b75, 0xfa5: 0x3b95, 0xfa6: 0x1295, 0xfa7: 0x3bb5, 0xfa8: 0x3bd5, 0xfa9: 0x3bf5, 0xfaa: 0x3c15, 0xfab: 0x3c35, 0xfac: 0x3c55, 0xfad: 0x3c75, 0xfae: 0x23b5, 0xfaf: 0x3c95, - 0xfb0: 0x3cb5, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999, - 0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29, - 0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89, + 0xfb0: 0x3cb5, 0xfb1: 0x0c29, 0xfb2: 0x0c31, 0xfb3: 0x0c39, 0xfb4: 0x0c41, 0xfb5: 0x0c49, + 0xfb6: 0x0c51, 0xfb7: 0x0c59, 0xfb8: 0x0c61, 0xfb9: 0x0c69, 0xfba: 0x0c71, 0xfbb: 0x0c79, + 0xfbc: 0x0c81, 0xfbd: 0x0c89, 0xfbe: 0x0c91, 0xfbf: 0x0c99, // Block 0x3f, offset 0xfc0 - 0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69, - 0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69, - 0xfcc: 0x3c99, 0xfcd: 0x3cd5, 0xfce: 0x3cb1, 0xfcf: 0x3cf5, 0xfd0: 0x3d15, 0xfd1: 0x3d2d, + 0xfc0: 0x0ca1, 0xfc1: 0x0ca9, 0xfc2: 0x0cb1, 0xfc3: 0x0cb9, 0xfc4: 0x0cc1, 0xfc5: 0x0cc9, + 0xfc6: 0x0cd1, 0xfc7: 0x0cd9, 0xfc8: 0x0ce1, 0xfc9: 0x0ce9, 0xfca: 0x0cf1, 0xfcb: 0x0cf9, + 0xfcc: 0x0d01, 0xfcd: 0x3cd5, 0xfce: 0x0d09, 0xfcf: 0x3cf5, 0xfd0: 0x3d15, 0xfd1: 0x3d2d, 0xfd2: 0x3d45, 0xfd3: 0x3d5d, 0xfd4: 0x3d75, 0xfd5: 0x3d75, 0xfd6: 0x3d5d, 0xfd7: 0x3d8d, 0xfd8: 0x07d5, 0xfd9: 0x3da5, 0xfda: 0x3dbd, 0xfdb: 0x3dd5, 0xfdc: 0x3ded, 0xfdd: 0x3e05, 0xfde: 0x3e1d, 0xfdf: 0x3e35, 0xfe0: 0x3e4d, 0xfe1: 0x3e65, 0xfe2: 0x3e7d, 0xfe3: 0x3e95, @@ -1324,769 +1467,769 @@ var idnaValues = [8192]uint16{ 0xfea: 0x3ef5, 0xfeb: 0x3f0d, 0xfec: 0x3f25, 0xfed: 0x3f3d, 0xfee: 0x3f55, 0xfef: 0x3f55, 0xff0: 0x3f6d, 0xff1: 0x3f6d, 0xff2: 0x3f6d, 0xff3: 0x3f85, 0xff4: 0x3f9d, 0xff5: 0x3fb5, 0xff6: 0x3fcd, 0xff7: 0x3fb5, 0xff8: 0x3fe5, 0xff9: 0x3ffd, 0xffa: 0x3f85, 0xffb: 0x4015, - 0xffc: 0x402d, 0xffd: 0x402d, 0xffe: 0x402d, 0xfff: 0x3cc9, + 0xffc: 0x402d, 0xffd: 0x402d, 0xffe: 0x402d, 0xfff: 0x0d11, // Block 0x40, offset 0x1000 - 0x1000: 0x3d01, 0x1001: 0x3d69, 0x1002: 0x3dd1, 0x1003: 0x3e39, 0x1004: 0x3e89, 0x1005: 0x3ef1, - 0x1006: 0x3f41, 0x1007: 0x3f91, 0x1008: 0x4011, 0x1009: 0x4079, 0x100a: 0x40c9, 0x100b: 0x4119, - 0x100c: 0x4169, 0x100d: 0x41d1, 0x100e: 0x4239, 0x100f: 0x4289, 0x1010: 0x42d9, 0x1011: 0x4311, - 0x1012: 0x4361, 0x1013: 0x43c9, 0x1014: 0x4431, 0x1015: 0x4469, 0x1016: 0x44e9, 0x1017: 0x4581, - 0x1018: 0x4601, 0x1019: 0x4651, 0x101a: 0x46d1, 0x101b: 0x4751, 0x101c: 0x47b9, 0x101d: 0x4809, - 0x101e: 0x4859, 0x101f: 0x48a9, 0x1020: 0x4911, 0x1021: 0x4991, 0x1022: 0x49f9, 0x1023: 0x4a49, - 0x1024: 0x4a99, 0x1025: 0x4ae9, 0x1026: 0x4b21, 0x1027: 0x4b59, 0x1028: 0x4b91, 0x1029: 0x4bc9, - 0x102a: 0x4c19, 0x102b: 0x4c69, 0x102c: 0x4ce9, 0x102d: 0x4d39, 0x102e: 0x4da1, 0x102f: 0x4e21, - 0x1030: 0x4e71, 0x1031: 0x4ea9, 0x1032: 0x4ee1, 0x1033: 0x4f61, 0x1034: 0x4fc9, 0x1035: 0x5049, - 0x1036: 0x5099, 0x1037: 0x5119, 0x1038: 0x5151, 0x1039: 0x51a1, 0x103a: 0x51f1, 0x103b: 0x5241, - 0x103c: 0x5291, 0x103d: 0x52e1, 0x103e: 0x5349, 0x103f: 0x5399, + 0x1000: 0x10f9, 0x1001: 0x1101, 0x1002: 0x40a5, 0x1003: 0x1109, 0x1004: 0x1111, 0x1005: 0x1119, + 0x1006: 0x1121, 0x1007: 0x1129, 0x1008: 0x40c5, 0x1009: 0x1131, 0x100a: 0x1139, 0x100b: 0x1141, + 0x100c: 0x40e5, 0x100d: 0x40e5, 0x100e: 0x1149, 0x100f: 0x1151, 0x1010: 0x1159, 0x1011: 0x4105, + 0x1012: 0x4125, 0x1013: 0x4145, 0x1014: 0x4165, 0x1015: 0x4185, 0x1016: 0x1161, 0x1017: 0x1169, + 0x1018: 0x1171, 0x1019: 0x1179, 0x101a: 0x1181, 0x101b: 0x41a5, 0x101c: 0x1189, 0x101d: 0x1191, + 0x101e: 0x1199, 0x101f: 0x41c5, 0x1020: 0x41e5, 0x1021: 0x11a1, 0x1022: 0x4205, 0x1023: 0x4225, + 0x1024: 0x4245, 0x1025: 0x11a9, 0x1026: 0x4265, 0x1027: 0x11b1, 0x1028: 0x11b9, 0x1029: 0x10f9, + 0x102a: 0x4285, 0x102b: 0x42a5, 0x102c: 0x42c5, 0x102d: 0x42e5, 0x102e: 0x11c1, 0x102f: 0x11c9, + 0x1030: 0x11d1, 0x1031: 0x11d9, 0x1032: 0x4305, 0x1033: 0x11e1, 0x1034: 0x11e9, 0x1035: 0x11f1, + 0x1036: 0x4325, 0x1037: 0x11f9, 0x1038: 0x1201, 0x1039: 0x11f9, 0x103a: 0x1209, 0x103b: 0x1211, + 0x103c: 0x4345, 0x103d: 0x1219, 0x103e: 0x1221, 0x103f: 0x1219, // Block 0x41, offset 0x1040 - 0x1040: 0x53d1, 0x1041: 0x5421, 0x1042: 0x5471, 0x1043: 0x54c1, 0x1044: 0x5529, 0x1045: 0x5579, - 0x1046: 0x55c9, 0x1047: 0x5619, 0x1048: 0x5699, 0x1049: 0x5701, 0x104a: 0x5739, 0x104b: 0x57b9, - 0x104c: 0x57f1, 0x104d: 0x5859, 0x104e: 0x58c1, 0x104f: 0x5911, 0x1050: 0x5961, 0x1051: 0x59b1, - 0x1052: 0x5a19, 0x1053: 0x5a51, 0x1054: 0x5aa1, 0x1055: 0x5b09, 0x1056: 0x5b41, 0x1057: 0x5bc1, - 0x1058: 0x5c11, 0x1059: 0x5c39, 0x105a: 0x5c61, 0x105b: 0x5c89, 0x105c: 0x5cb1, 0x105d: 0x5cd9, - 0x105e: 0x5d01, 0x105f: 0x5d29, 0x1060: 0x5d51, 0x1061: 0x5d79, 0x1062: 0x5da1, 0x1063: 0x5dd1, - 0x1064: 0x5e01, 0x1065: 0x5e31, 0x1066: 0x5e61, 0x1067: 0x5e91, 0x1068: 0x5ec1, 0x1069: 0x5ef1, - 0x106a: 0x5f21, 0x106b: 0x5f51, 0x106c: 0x5f81, 0x106d: 0x5fb1, 0x106e: 0x5fe1, 0x106f: 0x6011, - 0x1070: 0x6041, 0x1071: 0x4045, 0x1072: 0x6071, 0x1073: 0x6089, 0x1074: 0x4065, 0x1075: 0x60a1, - 0x1076: 0x60b9, 0x1077: 0x60d1, 0x1078: 0x4085, 0x1079: 0x4085, 0x107a: 0x60e9, 0x107b: 0x6101, - 0x107c: 0x6139, 0x107d: 0x6171, 0x107e: 0x61a9, 0x107f: 0x61e1, + 0x1040: 0x4365, 0x1041: 0x4385, 0x1042: 0x0040, 0x1043: 0x1229, 0x1044: 0x1231, 0x1045: 0x1239, + 0x1046: 0x1241, 0x1047: 0x0040, 0x1048: 0x1249, 0x1049: 0x1251, 0x104a: 0x1259, 0x104b: 0x1261, + 0x104c: 0x1269, 0x104d: 0x1271, 0x104e: 0x1199, 0x104f: 0x1279, 0x1050: 0x1281, 0x1051: 0x1289, + 0x1052: 0x43a5, 0x1053: 0x1291, 0x1054: 0x1121, 0x1055: 0x43c5, 0x1056: 0x43e5, 0x1057: 0x1299, + 0x1058: 0x0040, 0x1059: 0x4405, 0x105a: 0x12a1, 0x105b: 0x12a9, 0x105c: 0x12b1, 0x105d: 0x12b9, + 0x105e: 0x12c1, 0x105f: 0x12c9, 0x1060: 0x12d1, 0x1061: 0x12d9, 0x1062: 0x12e1, 0x1063: 0x12e9, + 0x1064: 0x12f1, 0x1065: 0x12f9, 0x1066: 0x1301, 0x1067: 0x1309, 0x1068: 0x1311, 0x1069: 0x1319, + 0x106a: 0x1321, 0x106b: 0x1329, 0x106c: 0x1331, 0x106d: 0x1339, 0x106e: 0x1341, 0x106f: 0x1349, + 0x1070: 0x1351, 0x1071: 0x1359, 0x1072: 0x1361, 0x1073: 0x1369, 0x1074: 0x1371, 0x1075: 0x1379, + 0x1076: 0x1381, 0x1077: 0x1389, 0x1078: 0x1391, 0x1079: 0x1399, 0x107a: 0x13a1, 0x107b: 0x13a9, + 0x107c: 0x13b1, 0x107d: 0x13b9, 0x107e: 0x13c1, 0x107f: 0x4425, // Block 0x42, offset 0x1080 - 0x1080: 0x6249, 0x1081: 0x6261, 0x1082: 0x40a5, 0x1083: 0x6279, 0x1084: 0x6291, 0x1085: 0x62a9, - 0x1086: 0x62c1, 0x1087: 0x62d9, 0x1088: 0x40c5, 0x1089: 0x62f1, 0x108a: 0x6319, 0x108b: 0x6331, - 0x108c: 0x40e5, 0x108d: 0x40e5, 0x108e: 0x6349, 0x108f: 0x6361, 0x1090: 0x6379, 0x1091: 0x4105, - 0x1092: 0x4125, 0x1093: 0x4145, 0x1094: 0x4165, 0x1095: 0x4185, 0x1096: 0x6391, 0x1097: 0x63a9, - 0x1098: 0x63c1, 0x1099: 0x63d9, 0x109a: 0x63f1, 0x109b: 0x41a5, 0x109c: 0x6409, 0x109d: 0x6421, - 0x109e: 0x6439, 0x109f: 0x41c5, 0x10a0: 0x41e5, 0x10a1: 0x6451, 0x10a2: 0x4205, 0x10a3: 0x4225, - 0x10a4: 0x4245, 0x10a5: 0x6469, 0x10a6: 0x4265, 0x10a7: 0x6481, 0x10a8: 0x64b1, 0x10a9: 0x6249, - 0x10aa: 0x4285, 0x10ab: 0x42a5, 0x10ac: 0x42c5, 0x10ad: 0x42e5, 0x10ae: 0x64e9, 0x10af: 0x6529, - 0x10b0: 0x6571, 0x10b1: 0x6589, 0x10b2: 0x4305, 0x10b3: 0x65a1, 0x10b4: 0x65b9, 0x10b5: 0x65d1, - 0x10b6: 0x4325, 0x10b7: 0x65e9, 0x10b8: 0x6601, 0x10b9: 0x65e9, 0x10ba: 0x6619, 0x10bb: 0x6631, - 0x10bc: 0x4345, 0x10bd: 0x6649, 0x10be: 0x6661, 0x10bf: 0x6649, + 0x1080: 0xe00d, 0x1081: 0x0008, 0x1082: 0xe00d, 0x1083: 0x0008, 0x1084: 0xe00d, 0x1085: 0x0008, + 0x1086: 0xe00d, 0x1087: 0x0008, 0x1088: 0xe00d, 0x1089: 0x0008, 0x108a: 0xe00d, 0x108b: 0x0008, + 0x108c: 0xe00d, 0x108d: 0x0008, 0x108e: 0xe00d, 0x108f: 0x0008, 0x1090: 0xe00d, 0x1091: 0x0008, + 0x1092: 0xe00d, 0x1093: 0x0008, 0x1094: 0xe00d, 0x1095: 0x0008, 0x1096: 0xe00d, 0x1097: 0x0008, + 0x1098: 0xe00d, 0x1099: 0x0008, 0x109a: 0xe00d, 0x109b: 0x0008, 0x109c: 0xe00d, 0x109d: 0x0008, + 0x109e: 0xe00d, 0x109f: 0x0008, 0x10a0: 0xe00d, 0x10a1: 0x0008, 0x10a2: 0xe00d, 0x10a3: 0x0008, + 0x10a4: 0xe00d, 0x10a5: 0x0008, 0x10a6: 0xe00d, 0x10a7: 0x0008, 0x10a8: 0xe00d, 0x10a9: 0x0008, + 0x10aa: 0xe00d, 0x10ab: 0x0008, 0x10ac: 0xe00d, 0x10ad: 0x0008, 0x10ae: 0x0008, 0x10af: 0x3308, + 0x10b0: 0x3318, 0x10b1: 0x3318, 0x10b2: 0x3318, 0x10b3: 0x0018, 0x10b4: 0x3308, 0x10b5: 0x3308, + 0x10b6: 0x3308, 0x10b7: 0x3308, 0x10b8: 0x3308, 0x10b9: 0x3308, 0x10ba: 0x3308, 0x10bb: 0x3308, + 0x10bc: 0x3308, 0x10bd: 0x3308, 0x10be: 0x0018, 0x10bf: 0x0008, // Block 0x43, offset 0x10c0 - 0x10c0: 0x4365, 0x10c1: 0x4385, 0x10c2: 0x0040, 0x10c3: 0x6679, 0x10c4: 0x6691, 0x10c5: 0x66a9, - 0x10c6: 0x66c1, 0x10c7: 0x0040, 0x10c8: 0x66f9, 0x10c9: 0x6711, 0x10ca: 0x6729, 0x10cb: 0x6741, - 0x10cc: 0x6759, 0x10cd: 0x6771, 0x10ce: 0x6439, 0x10cf: 0x6789, 0x10d0: 0x67a1, 0x10d1: 0x67b9, - 0x10d2: 0x43a5, 0x10d3: 0x67d1, 0x10d4: 0x62c1, 0x10d5: 0x43c5, 0x10d6: 0x43e5, 0x10d7: 0x67e9, - 0x10d8: 0x0040, 0x10d9: 0x4405, 0x10da: 0x6801, 0x10db: 0x6819, 0x10dc: 0x6831, 0x10dd: 0x6849, - 0x10de: 0x6861, 0x10df: 0x6891, 0x10e0: 0x68c1, 0x10e1: 0x68e9, 0x10e2: 0x6911, 0x10e3: 0x6939, - 0x10e4: 0x6961, 0x10e5: 0x6989, 0x10e6: 0x69b1, 0x10e7: 0x69d9, 0x10e8: 0x6a01, 0x10e9: 0x6a29, - 0x10ea: 0x6a59, 0x10eb: 0x6a89, 0x10ec: 0x6ab9, 0x10ed: 0x6ae9, 0x10ee: 0x6b19, 0x10ef: 0x6b49, - 0x10f0: 0x6b79, 0x10f1: 0x6ba9, 0x10f2: 0x6bd9, 0x10f3: 0x6c09, 0x10f4: 0x6c39, 0x10f5: 0x6c69, - 0x10f6: 0x6c99, 0x10f7: 0x6cc9, 0x10f8: 0x6cf9, 0x10f9: 0x6d29, 0x10fa: 0x6d59, 0x10fb: 0x6d89, - 0x10fc: 0x6db9, 0x10fd: 0x6de9, 0x10fe: 0x6e19, 0x10ff: 0x4425, + 0x10c0: 0xe00d, 0x10c1: 0x0008, 0x10c2: 0xe00d, 0x10c3: 0x0008, 0x10c4: 0xe00d, 0x10c5: 0x0008, + 0x10c6: 0xe00d, 0x10c7: 0x0008, 0x10c8: 0xe00d, 0x10c9: 0x0008, 0x10ca: 0xe00d, 0x10cb: 0x0008, + 0x10cc: 0xe00d, 0x10cd: 0x0008, 0x10ce: 0xe00d, 0x10cf: 0x0008, 0x10d0: 0xe00d, 0x10d1: 0x0008, + 0x10d2: 0xe00d, 0x10d3: 0x0008, 0x10d4: 0xe00d, 0x10d5: 0x0008, 0x10d6: 0xe00d, 0x10d7: 0x0008, + 0x10d8: 0xe00d, 0x10d9: 0x0008, 0x10da: 0xe00d, 0x10db: 0x0008, 0x10dc: 0x02d1, 0x10dd: 0x13c9, + 0x10de: 0x3308, 0x10df: 0x3308, 0x10e0: 0x0008, 0x10e1: 0x0008, 0x10e2: 0x0008, 0x10e3: 0x0008, + 0x10e4: 0x0008, 0x10e5: 0x0008, 0x10e6: 0x0008, 0x10e7: 0x0008, 0x10e8: 0x0008, 0x10e9: 0x0008, + 0x10ea: 0x0008, 0x10eb: 0x0008, 0x10ec: 0x0008, 0x10ed: 0x0008, 0x10ee: 0x0008, 0x10ef: 0x0008, + 0x10f0: 0x0008, 0x10f1: 0x0008, 0x10f2: 0x0008, 0x10f3: 0x0008, 0x10f4: 0x0008, 0x10f5: 0x0008, + 0x10f6: 0x0008, 0x10f7: 0x0008, 0x10f8: 0x0008, 0x10f9: 0x0008, 0x10fa: 0x0008, 0x10fb: 0x0008, + 0x10fc: 0x0008, 0x10fd: 0x0008, 0x10fe: 0x0008, 0x10ff: 0x0008, // Block 0x44, offset 0x1100 - 0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008, - 0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008, - 0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008, - 0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008, - 0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008, - 0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008, + 0x1100: 0x0018, 0x1101: 0x0018, 0x1102: 0x0018, 0x1103: 0x0018, 0x1104: 0x0018, 0x1105: 0x0018, + 0x1106: 0x0018, 0x1107: 0x0018, 0x1108: 0x0018, 0x1109: 0x0018, 0x110a: 0x0018, 0x110b: 0x0018, + 0x110c: 0x0018, 0x110d: 0x0018, 0x110e: 0x0018, 0x110f: 0x0018, 0x1110: 0x0018, 0x1111: 0x0018, + 0x1112: 0x0018, 0x1113: 0x0018, 0x1114: 0x0018, 0x1115: 0x0018, 0x1116: 0x0018, 0x1117: 0x0008, + 0x1118: 0x0008, 0x1119: 0x0008, 0x111a: 0x0008, 0x111b: 0x0008, 0x111c: 0x0008, 0x111d: 0x0008, + 0x111e: 0x0008, 0x111f: 0x0008, 0x1120: 0x0018, 0x1121: 0x0018, 0x1122: 0xe00d, 0x1123: 0x0008, 0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008, - 0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308, - 0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308, - 0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308, - 0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008, + 0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0xe00d, 0x112f: 0x0008, + 0x1130: 0x0008, 0x1131: 0x0008, 0x1132: 0xe00d, 0x1133: 0x0008, 0x1134: 0xe00d, 0x1135: 0x0008, + 0x1136: 0xe00d, 0x1137: 0x0008, 0x1138: 0xe00d, 0x1139: 0x0008, 0x113a: 0xe00d, 0x113b: 0x0008, + 0x113c: 0xe00d, 0x113d: 0x0008, 0x113e: 0xe00d, 0x113f: 0x0008, // Block 0x45, offset 0x1140 0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008, 0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008, 0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008, 0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008, - 0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e49, - 0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008, - 0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008, - 0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008, - 0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008, - 0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008, - 0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008, + 0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0xe00d, 0x115d: 0x0008, + 0x115e: 0xe00d, 0x115f: 0x0008, 0x1160: 0xe00d, 0x1161: 0x0008, 0x1162: 0xe00d, 0x1163: 0x0008, + 0x1164: 0xe00d, 0x1165: 0x0008, 0x1166: 0xe00d, 0x1167: 0x0008, 0x1168: 0xe00d, 0x1169: 0x0008, + 0x116a: 0xe00d, 0x116b: 0x0008, 0x116c: 0xe00d, 0x116d: 0x0008, 0x116e: 0xe00d, 0x116f: 0x0008, + 0x1170: 0xe0fd, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008, + 0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0xe01d, 0x117a: 0x0008, 0x117b: 0xe03d, + 0x117c: 0x0008, 0x117d: 0x4445, 0x117e: 0xe00d, 0x117f: 0x0008, // Block 0x46, offset 0x1180 - 0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018, - 0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018, - 0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018, - 0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008, - 0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008, - 0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008, + 0x1180: 0xe00d, 0x1181: 0x0008, 0x1182: 0xe00d, 0x1183: 0x0008, 0x1184: 0xe00d, 0x1185: 0x0008, + 0x1186: 0xe00d, 0x1187: 0x0008, 0x1188: 0x0008, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0xe03d, + 0x118c: 0x0008, 0x118d: 0x0409, 0x118e: 0x0008, 0x118f: 0x0008, 0x1190: 0xe00d, 0x1191: 0x0008, + 0x1192: 0xe00d, 0x1193: 0x0008, 0x1194: 0x0008, 0x1195: 0x0008, 0x1196: 0xe00d, 0x1197: 0x0008, + 0x1198: 0xe00d, 0x1199: 0x0008, 0x119a: 0xe00d, 0x119b: 0x0008, 0x119c: 0xe00d, 0x119d: 0x0008, + 0x119e: 0xe00d, 0x119f: 0x0008, 0x11a0: 0xe00d, 0x11a1: 0x0008, 0x11a2: 0xe00d, 0x11a3: 0x0008, 0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008, - 0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008, - 0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008, + 0x11aa: 0x13d1, 0x11ab: 0x0371, 0x11ac: 0x0401, 0x11ad: 0x13d9, 0x11ae: 0x0421, 0x11af: 0x0008, + 0x11b0: 0x13e1, 0x11b1: 0x13e9, 0x11b2: 0x0429, 0x11b3: 0x4465, 0x11b4: 0xe00d, 0x11b5: 0x0008, 0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008, 0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008, // Block 0x47, offset 0x11c0 - 0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008, - 0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008, - 0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008, - 0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008, - 0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008, - 0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008, - 0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008, - 0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008, - 0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008, - 0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d, - 0x11fc: 0x0008, 0x11fd: 0x4445, 0x11fe: 0xe00d, 0x11ff: 0x0008, + 0x11c0: 0x650d, 0x11c1: 0x652d, 0x11c2: 0x654d, 0x11c3: 0x656d, 0x11c4: 0x658d, 0x11c5: 0x65ad, + 0x11c6: 0x65cd, 0x11c7: 0x65ed, 0x11c8: 0x660d, 0x11c9: 0x662d, 0x11ca: 0x664d, 0x11cb: 0x666d, + 0x11cc: 0x668d, 0x11cd: 0x66ad, 0x11ce: 0x0008, 0x11cf: 0x0008, 0x11d0: 0x66cd, 0x11d1: 0x0008, + 0x11d2: 0x66ed, 0x11d3: 0x0008, 0x11d4: 0x0008, 0x11d5: 0x670d, 0x11d6: 0x672d, 0x11d7: 0x674d, + 0x11d8: 0x676d, 0x11d9: 0x678d, 0x11da: 0x67ad, 0x11db: 0x67cd, 0x11dc: 0x67ed, 0x11dd: 0x680d, + 0x11de: 0x682d, 0x11df: 0x0008, 0x11e0: 0x684d, 0x11e1: 0x0008, 0x11e2: 0x686d, 0x11e3: 0x0008, + 0x11e4: 0x0008, 0x11e5: 0x688d, 0x11e6: 0x68ad, 0x11e7: 0x0008, 0x11e8: 0x0008, 0x11e9: 0x0008, + 0x11ea: 0x68cd, 0x11eb: 0x68ed, 0x11ec: 0x690d, 0x11ed: 0x692d, 0x11ee: 0x694d, 0x11ef: 0x696d, + 0x11f0: 0x698d, 0x11f1: 0x69ad, 0x11f2: 0x69cd, 0x11f3: 0x69ed, 0x11f4: 0x6a0d, 0x11f5: 0x6a2d, + 0x11f6: 0x6a4d, 0x11f7: 0x6a6d, 0x11f8: 0x6a8d, 0x11f9: 0x6aad, 0x11fa: 0x6acd, 0x11fb: 0x6aed, + 0x11fc: 0x6b0d, 0x11fd: 0x6b2d, 0x11fe: 0x6b4d, 0x11ff: 0x6b6d, // Block 0x48, offset 0x1200 - 0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008, - 0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d, - 0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008, - 0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008, - 0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008, - 0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008, - 0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008, - 0x122a: 0x6e61, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e79, 0x122e: 0x1221, 0x122f: 0x0008, - 0x1230: 0x6e91, 0x1231: 0x6ea9, 0x1232: 0x1239, 0x1233: 0x4465, 0x1234: 0xe00d, 0x1235: 0x0008, - 0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0xe00d, 0x1239: 0x0008, 0x123a: 0xe00d, 0x123b: 0x0008, - 0x123c: 0xe00d, 0x123d: 0x0008, 0x123e: 0xe00d, 0x123f: 0x0008, + 0x1200: 0x7acd, 0x1201: 0x7aed, 0x1202: 0x7b0d, 0x1203: 0x7b2d, 0x1204: 0x7b4d, 0x1205: 0x7b6d, + 0x1206: 0x7b8d, 0x1207: 0x7bad, 0x1208: 0x7bcd, 0x1209: 0x7bed, 0x120a: 0x7c0d, 0x120b: 0x7c2d, + 0x120c: 0x7c4d, 0x120d: 0x7c6d, 0x120e: 0x7c8d, 0x120f: 0x1409, 0x1210: 0x1411, 0x1211: 0x1419, + 0x1212: 0x7cad, 0x1213: 0x7ccd, 0x1214: 0x7ced, 0x1215: 0x1421, 0x1216: 0x1429, 0x1217: 0x1431, + 0x1218: 0x7d0d, 0x1219: 0x7d2d, 0x121a: 0x0040, 0x121b: 0x0040, 0x121c: 0x0040, 0x121d: 0x0040, + 0x121e: 0x0040, 0x121f: 0x0040, 0x1220: 0x0040, 0x1221: 0x0040, 0x1222: 0x0040, 0x1223: 0x0040, + 0x1224: 0x0040, 0x1225: 0x0040, 0x1226: 0x0040, 0x1227: 0x0040, 0x1228: 0x0040, 0x1229: 0x0040, + 0x122a: 0x0040, 0x122b: 0x0040, 0x122c: 0x0040, 0x122d: 0x0040, 0x122e: 0x0040, 0x122f: 0x0040, + 0x1230: 0x0040, 0x1231: 0x0040, 0x1232: 0x0040, 0x1233: 0x0040, 0x1234: 0x0040, 0x1235: 0x0040, + 0x1236: 0x0040, 0x1237: 0x0040, 0x1238: 0x0040, 0x1239: 0x0040, 0x123a: 0x0040, 0x123b: 0x0040, + 0x123c: 0x0040, 0x123d: 0x0040, 0x123e: 0x0040, 0x123f: 0x0040, // Block 0x49, offset 0x1240 - 0x1240: 0x650d, 0x1241: 0x652d, 0x1242: 0x654d, 0x1243: 0x656d, 0x1244: 0x658d, 0x1245: 0x65ad, - 0x1246: 0x65cd, 0x1247: 0x65ed, 0x1248: 0x660d, 0x1249: 0x662d, 0x124a: 0x664d, 0x124b: 0x666d, - 0x124c: 0x668d, 0x124d: 0x66ad, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x66cd, 0x1251: 0x0008, - 0x1252: 0x66ed, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x670d, 0x1256: 0x672d, 0x1257: 0x674d, - 0x1258: 0x676d, 0x1259: 0x678d, 0x125a: 0x67ad, 0x125b: 0x67cd, 0x125c: 0x67ed, 0x125d: 0x680d, - 0x125e: 0x682d, 0x125f: 0x0008, 0x1260: 0x684d, 0x1261: 0x0008, 0x1262: 0x686d, 0x1263: 0x0008, - 0x1264: 0x0008, 0x1265: 0x688d, 0x1266: 0x68ad, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008, - 0x126a: 0x68cd, 0x126b: 0x68ed, 0x126c: 0x690d, 0x126d: 0x692d, 0x126e: 0x694d, 0x126f: 0x696d, - 0x1270: 0x698d, 0x1271: 0x69ad, 0x1272: 0x69cd, 0x1273: 0x69ed, 0x1274: 0x6a0d, 0x1275: 0x6a2d, - 0x1276: 0x6a4d, 0x1277: 0x6a6d, 0x1278: 0x6a8d, 0x1279: 0x6aad, 0x127a: 0x6acd, 0x127b: 0x6aed, - 0x127c: 0x6b0d, 0x127d: 0x6b2d, 0x127e: 0x6b4d, 0x127f: 0x6b6d, + 0x1240: 0x1439, 0x1241: 0x1441, 0x1242: 0x1449, 0x1243: 0x7d4d, 0x1244: 0x7d6d, 0x1245: 0x1451, + 0x1246: 0x1451, 0x1247: 0x0040, 0x1248: 0x0040, 0x1249: 0x0040, 0x124a: 0x0040, 0x124b: 0x0040, + 0x124c: 0x0040, 0x124d: 0x0040, 0x124e: 0x0040, 0x124f: 0x0040, 0x1250: 0x0040, 0x1251: 0x0040, + 0x1252: 0x0040, 0x1253: 0x1459, 0x1254: 0x1461, 0x1255: 0x1469, 0x1256: 0x1471, 0x1257: 0x1479, + 0x1258: 0x0040, 0x1259: 0x0040, 0x125a: 0x0040, 0x125b: 0x0040, 0x125c: 0x0040, 0x125d: 0x1481, + 0x125e: 0x3308, 0x125f: 0x1489, 0x1260: 0x1491, 0x1261: 0x0779, 0x1262: 0x0791, 0x1263: 0x1499, + 0x1264: 0x14a1, 0x1265: 0x14a9, 0x1266: 0x14b1, 0x1267: 0x14b9, 0x1268: 0x14c1, 0x1269: 0x071a, + 0x126a: 0x14c9, 0x126b: 0x14d1, 0x126c: 0x14d9, 0x126d: 0x14e1, 0x126e: 0x14e9, 0x126f: 0x14f1, + 0x1270: 0x14f9, 0x1271: 0x1501, 0x1272: 0x1509, 0x1273: 0x1511, 0x1274: 0x1519, 0x1275: 0x1521, + 0x1276: 0x1529, 0x1277: 0x0040, 0x1278: 0x1531, 0x1279: 0x1539, 0x127a: 0x1541, 0x127b: 0x1549, + 0x127c: 0x1551, 0x127d: 0x0040, 0x127e: 0x1559, 0x127f: 0x0040, // Block 0x4a, offset 0x1280 - 0x1280: 0x7acd, 0x1281: 0x7aed, 0x1282: 0x7b0d, 0x1283: 0x7b2d, 0x1284: 0x7b4d, 0x1285: 0x7b6d, - 0x1286: 0x7b8d, 0x1287: 0x7bad, 0x1288: 0x7bcd, 0x1289: 0x7bed, 0x128a: 0x7c0d, 0x128b: 0x7c2d, - 0x128c: 0x7c4d, 0x128d: 0x7c6d, 0x128e: 0x7c8d, 0x128f: 0x6f19, 0x1290: 0x6f41, 0x1291: 0x6f69, - 0x1292: 0x7cad, 0x1293: 0x7ccd, 0x1294: 0x7ced, 0x1295: 0x6f91, 0x1296: 0x6fb9, 0x1297: 0x6fe1, - 0x1298: 0x7d0d, 0x1299: 0x7d2d, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040, - 0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040, - 0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040, - 0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040, - 0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040, - 0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040, - 0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040, + 0x1280: 0x1561, 0x1281: 0x1569, 0x1282: 0x0040, 0x1283: 0x1571, 0x1284: 0x1579, 0x1285: 0x0040, + 0x1286: 0x1581, 0x1287: 0x1589, 0x1288: 0x1591, 0x1289: 0x1599, 0x128a: 0x15a1, 0x128b: 0x15a9, + 0x128c: 0x15b1, 0x128d: 0x15b9, 0x128e: 0x15c1, 0x128f: 0x15c9, 0x1290: 0x15d1, 0x1291: 0x15d1, + 0x1292: 0x15d9, 0x1293: 0x15d9, 0x1294: 0x15d9, 0x1295: 0x15d9, 0x1296: 0x15e1, 0x1297: 0x15e1, + 0x1298: 0x15e1, 0x1299: 0x15e1, 0x129a: 0x15e9, 0x129b: 0x15e9, 0x129c: 0x15e9, 0x129d: 0x15e9, + 0x129e: 0x15f1, 0x129f: 0x15f1, 0x12a0: 0x15f1, 0x12a1: 0x15f1, 0x12a2: 0x15f9, 0x12a3: 0x15f9, + 0x12a4: 0x15f9, 0x12a5: 0x15f9, 0x12a6: 0x1601, 0x12a7: 0x1601, 0x12a8: 0x1601, 0x12a9: 0x1601, + 0x12aa: 0x1609, 0x12ab: 0x1609, 0x12ac: 0x1609, 0x12ad: 0x1609, 0x12ae: 0x1611, 0x12af: 0x1611, + 0x12b0: 0x1611, 0x12b1: 0x1611, 0x12b2: 0x1619, 0x12b3: 0x1619, 0x12b4: 0x1619, 0x12b5: 0x1619, + 0x12b6: 0x1621, 0x12b7: 0x1621, 0x12b8: 0x1621, 0x12b9: 0x1621, 0x12ba: 0x1629, 0x12bb: 0x1629, + 0x12bc: 0x1629, 0x12bd: 0x1629, 0x12be: 0x1631, 0x12bf: 0x1631, // Block 0x4b, offset 0x12c0 - 0x12c0: 0x7009, 0x12c1: 0x7021, 0x12c2: 0x7039, 0x12c3: 0x7d4d, 0x12c4: 0x7d6d, 0x12c5: 0x7051, - 0x12c6: 0x7051, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040, - 0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040, - 0x12d2: 0x0040, 0x12d3: 0x7069, 0x12d4: 0x7091, 0x12d5: 0x70b9, 0x12d6: 0x70e1, 0x12d7: 0x7109, - 0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x7131, - 0x12de: 0x3308, 0x12df: 0x7159, 0x12e0: 0x7181, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7199, - 0x12e4: 0x71b1, 0x12e5: 0x71c9, 0x12e6: 0x71e1, 0x12e7: 0x71f9, 0x12e8: 0x7211, 0x12e9: 0x1fb2, - 0x12ea: 0x7229, 0x12eb: 0x7251, 0x12ec: 0x7279, 0x12ed: 0x72b1, 0x12ee: 0x72e9, 0x12ef: 0x7311, - 0x12f0: 0x7339, 0x12f1: 0x7361, 0x12f2: 0x7389, 0x12f3: 0x73b1, 0x12f4: 0x73d9, 0x12f5: 0x7401, - 0x12f6: 0x7429, 0x12f7: 0x0040, 0x12f8: 0x7451, 0x12f9: 0x7479, 0x12fa: 0x74a1, 0x12fb: 0x74c9, - 0x12fc: 0x74f1, 0x12fd: 0x0040, 0x12fe: 0x7519, 0x12ff: 0x0040, + 0x12c0: 0x1631, 0x12c1: 0x1631, 0x12c2: 0x1639, 0x12c3: 0x1639, 0x12c4: 0x1641, 0x12c5: 0x1641, + 0x12c6: 0x1649, 0x12c7: 0x1649, 0x12c8: 0x1651, 0x12c9: 0x1651, 0x12ca: 0x1659, 0x12cb: 0x1659, + 0x12cc: 0x1661, 0x12cd: 0x1661, 0x12ce: 0x1669, 0x12cf: 0x1669, 0x12d0: 0x1669, 0x12d1: 0x1669, + 0x12d2: 0x1671, 0x12d3: 0x1671, 0x12d4: 0x1671, 0x12d5: 0x1671, 0x12d6: 0x1679, 0x12d7: 0x1679, + 0x12d8: 0x1679, 0x12d9: 0x1679, 0x12da: 0x1681, 0x12db: 0x1681, 0x12dc: 0x1681, 0x12dd: 0x1681, + 0x12de: 0x1689, 0x12df: 0x1689, 0x12e0: 0x1691, 0x12e1: 0x1691, 0x12e2: 0x1691, 0x12e3: 0x1691, + 0x12e4: 0x1699, 0x12e5: 0x1699, 0x12e6: 0x16a1, 0x12e7: 0x16a1, 0x12e8: 0x16a1, 0x12e9: 0x16a1, + 0x12ea: 0x16a9, 0x12eb: 0x16a9, 0x12ec: 0x16a9, 0x12ed: 0x16a9, 0x12ee: 0x16b1, 0x12ef: 0x16b1, + 0x12f0: 0x16b9, 0x12f1: 0x16b9, 0x12f2: 0x0818, 0x12f3: 0x0818, 0x12f4: 0x0818, 0x12f5: 0x0818, + 0x12f6: 0x0818, 0x12f7: 0x0818, 0x12f8: 0x0818, 0x12f9: 0x0818, 0x12fa: 0x0818, 0x12fb: 0x0818, + 0x12fc: 0x0818, 0x12fd: 0x0818, 0x12fe: 0x0818, 0x12ff: 0x0818, // Block 0x4c, offset 0x1300 - 0x1300: 0x7541, 0x1301: 0x7569, 0x1302: 0x0040, 0x1303: 0x7591, 0x1304: 0x75b9, 0x1305: 0x0040, - 0x1306: 0x75e1, 0x1307: 0x7609, 0x1308: 0x7631, 0x1309: 0x7659, 0x130a: 0x7681, 0x130b: 0x76a9, - 0x130c: 0x76d1, 0x130d: 0x76f9, 0x130e: 0x7721, 0x130f: 0x7749, 0x1310: 0x7771, 0x1311: 0x7771, - 0x1312: 0x7789, 0x1313: 0x7789, 0x1314: 0x7789, 0x1315: 0x7789, 0x1316: 0x77a1, 0x1317: 0x77a1, - 0x1318: 0x77a1, 0x1319: 0x77a1, 0x131a: 0x77b9, 0x131b: 0x77b9, 0x131c: 0x77b9, 0x131d: 0x77b9, - 0x131e: 0x77d1, 0x131f: 0x77d1, 0x1320: 0x77d1, 0x1321: 0x77d1, 0x1322: 0x77e9, 0x1323: 0x77e9, - 0x1324: 0x77e9, 0x1325: 0x77e9, 0x1326: 0x7801, 0x1327: 0x7801, 0x1328: 0x7801, 0x1329: 0x7801, - 0x132a: 0x7819, 0x132b: 0x7819, 0x132c: 0x7819, 0x132d: 0x7819, 0x132e: 0x7831, 0x132f: 0x7831, - 0x1330: 0x7831, 0x1331: 0x7831, 0x1332: 0x7849, 0x1333: 0x7849, 0x1334: 0x7849, 0x1335: 0x7849, - 0x1336: 0x7861, 0x1337: 0x7861, 0x1338: 0x7861, 0x1339: 0x7861, 0x133a: 0x7879, 0x133b: 0x7879, - 0x133c: 0x7879, 0x133d: 0x7879, 0x133e: 0x7891, 0x133f: 0x7891, + 0x1300: 0x0818, 0x1301: 0x0818, 0x1302: 0x0040, 0x1303: 0x0040, 0x1304: 0x0040, 0x1305: 0x0040, + 0x1306: 0x0040, 0x1307: 0x0040, 0x1308: 0x0040, 0x1309: 0x0040, 0x130a: 0x0040, 0x130b: 0x0040, + 0x130c: 0x0040, 0x130d: 0x0040, 0x130e: 0x0040, 0x130f: 0x0040, 0x1310: 0x0040, 0x1311: 0x0040, + 0x1312: 0x0040, 0x1313: 0x16c1, 0x1314: 0x16c1, 0x1315: 0x16c1, 0x1316: 0x16c1, 0x1317: 0x16c9, + 0x1318: 0x16c9, 0x1319: 0x16d1, 0x131a: 0x16d1, 0x131b: 0x16d9, 0x131c: 0x16d9, 0x131d: 0x0149, + 0x131e: 0x16e1, 0x131f: 0x16e1, 0x1320: 0x16e9, 0x1321: 0x16e9, 0x1322: 0x16f1, 0x1323: 0x16f1, + 0x1324: 0x16f9, 0x1325: 0x16f9, 0x1326: 0x16f9, 0x1327: 0x16f9, 0x1328: 0x1701, 0x1329: 0x1701, + 0x132a: 0x1709, 0x132b: 0x1709, 0x132c: 0x1711, 0x132d: 0x1711, 0x132e: 0x1719, 0x132f: 0x1719, + 0x1330: 0x1721, 0x1331: 0x1721, 0x1332: 0x1729, 0x1333: 0x1729, 0x1334: 0x1731, 0x1335: 0x1731, + 0x1336: 0x1739, 0x1337: 0x1739, 0x1338: 0x1739, 0x1339: 0x1741, 0x133a: 0x1741, 0x133b: 0x1741, + 0x133c: 0x1749, 0x133d: 0x1749, 0x133e: 0x1749, 0x133f: 0x1749, // Block 0x4d, offset 0x1340 - 0x1340: 0x7891, 0x1341: 0x7891, 0x1342: 0x78a9, 0x1343: 0x78a9, 0x1344: 0x78c1, 0x1345: 0x78c1, - 0x1346: 0x78d9, 0x1347: 0x78d9, 0x1348: 0x78f1, 0x1349: 0x78f1, 0x134a: 0x7909, 0x134b: 0x7909, - 0x134c: 0x7921, 0x134d: 0x7921, 0x134e: 0x7939, 0x134f: 0x7939, 0x1350: 0x7939, 0x1351: 0x7939, - 0x1352: 0x7951, 0x1353: 0x7951, 0x1354: 0x7951, 0x1355: 0x7951, 0x1356: 0x7969, 0x1357: 0x7969, - 0x1358: 0x7969, 0x1359: 0x7969, 0x135a: 0x7981, 0x135b: 0x7981, 0x135c: 0x7981, 0x135d: 0x7981, - 0x135e: 0x7999, 0x135f: 0x7999, 0x1360: 0x79b1, 0x1361: 0x79b1, 0x1362: 0x79b1, 0x1363: 0x79b1, - 0x1364: 0x79c9, 0x1365: 0x79c9, 0x1366: 0x79e1, 0x1367: 0x79e1, 0x1368: 0x79e1, 0x1369: 0x79e1, - 0x136a: 0x79f9, 0x136b: 0x79f9, 0x136c: 0x79f9, 0x136d: 0x79f9, 0x136e: 0x7a11, 0x136f: 0x7a11, - 0x1370: 0x7a29, 0x1371: 0x7a29, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818, - 0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818, - 0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818, + 0x1340: 0x1949, 0x1341: 0x1951, 0x1342: 0x1959, 0x1343: 0x1961, 0x1344: 0x1969, 0x1345: 0x1971, + 0x1346: 0x1979, 0x1347: 0x1981, 0x1348: 0x1989, 0x1349: 0x1991, 0x134a: 0x1999, 0x134b: 0x19a1, + 0x134c: 0x19a9, 0x134d: 0x19b1, 0x134e: 0x19b9, 0x134f: 0x19c1, 0x1350: 0x19c9, 0x1351: 0x19d1, + 0x1352: 0x19d9, 0x1353: 0x19e1, 0x1354: 0x19e9, 0x1355: 0x19f1, 0x1356: 0x19f9, 0x1357: 0x1a01, + 0x1358: 0x1a09, 0x1359: 0x1a11, 0x135a: 0x1a19, 0x135b: 0x1a21, 0x135c: 0x1a29, 0x135d: 0x1a31, + 0x135e: 0x1a3a, 0x135f: 0x1a42, 0x1360: 0x1a4a, 0x1361: 0x1a52, 0x1362: 0x1a5a, 0x1363: 0x1a62, + 0x1364: 0x1a69, 0x1365: 0x1a71, 0x1366: 0x1761, 0x1367: 0x1a79, 0x1368: 0x1741, 0x1369: 0x1769, + 0x136a: 0x1a81, 0x136b: 0x1a89, 0x136c: 0x1789, 0x136d: 0x1a91, 0x136e: 0x1791, 0x136f: 0x1799, + 0x1370: 0x1a99, 0x1371: 0x1aa1, 0x1372: 0x17b9, 0x1373: 0x1aa9, 0x1374: 0x17c1, 0x1375: 0x17c9, + 0x1376: 0x1ab1, 0x1377: 0x1ab9, 0x1378: 0x17d9, 0x1379: 0x1ac1, 0x137a: 0x17e1, 0x137b: 0x17e9, + 0x137c: 0x18d1, 0x137d: 0x18d9, 0x137e: 0x18f1, 0x137f: 0x18f9, // Block 0x4e, offset 0x1380 - 0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040, - 0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040, - 0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040, - 0x1392: 0x0040, 0x1393: 0x7a41, 0x1394: 0x7a41, 0x1395: 0x7a41, 0x1396: 0x7a41, 0x1397: 0x7a59, - 0x1398: 0x7a59, 0x1399: 0x7a71, 0x139a: 0x7a71, 0x139b: 0x7a89, 0x139c: 0x7a89, 0x139d: 0x0479, - 0x139e: 0x7aa1, 0x139f: 0x7aa1, 0x13a0: 0x7ab9, 0x13a1: 0x7ab9, 0x13a2: 0x7ad1, 0x13a3: 0x7ad1, - 0x13a4: 0x7ae9, 0x13a5: 0x7ae9, 0x13a6: 0x7ae9, 0x13a7: 0x7ae9, 0x13a8: 0x7b01, 0x13a9: 0x7b01, - 0x13aa: 0x7b19, 0x13ab: 0x7b19, 0x13ac: 0x7b41, 0x13ad: 0x7b41, 0x13ae: 0x7b69, 0x13af: 0x7b69, - 0x13b0: 0x7b91, 0x13b1: 0x7b91, 0x13b2: 0x7bb9, 0x13b3: 0x7bb9, 0x13b4: 0x7be1, 0x13b5: 0x7be1, - 0x13b6: 0x7c09, 0x13b7: 0x7c09, 0x13b8: 0x7c09, 0x13b9: 0x7c31, 0x13ba: 0x7c31, 0x13bb: 0x7c31, - 0x13bc: 0x7c59, 0x13bd: 0x7c59, 0x13be: 0x7c59, 0x13bf: 0x7c59, + 0x1380: 0x1901, 0x1381: 0x1921, 0x1382: 0x1929, 0x1383: 0x1931, 0x1384: 0x1939, 0x1385: 0x1959, + 0x1386: 0x1961, 0x1387: 0x1969, 0x1388: 0x1ac9, 0x1389: 0x1989, 0x138a: 0x1ad1, 0x138b: 0x1ad9, + 0x138c: 0x19b9, 0x138d: 0x1ae1, 0x138e: 0x19c1, 0x138f: 0x19c9, 0x1390: 0x1a31, 0x1391: 0x1ae9, + 0x1392: 0x1af1, 0x1393: 0x1a09, 0x1394: 0x1af9, 0x1395: 0x1a11, 0x1396: 0x1a19, 0x1397: 0x1751, + 0x1398: 0x1759, 0x1399: 0x1b01, 0x139a: 0x1761, 0x139b: 0x1b09, 0x139c: 0x1771, 0x139d: 0x1779, + 0x139e: 0x1781, 0x139f: 0x1789, 0x13a0: 0x1b11, 0x13a1: 0x17a1, 0x13a2: 0x17a9, 0x13a3: 0x17b1, + 0x13a4: 0x17b9, 0x13a5: 0x1b19, 0x13a6: 0x17d9, 0x13a7: 0x17f1, 0x13a8: 0x17f9, 0x13a9: 0x1801, + 0x13aa: 0x1809, 0x13ab: 0x1811, 0x13ac: 0x1821, 0x13ad: 0x1829, 0x13ae: 0x1831, 0x13af: 0x1839, + 0x13b0: 0x1841, 0x13b1: 0x1849, 0x13b2: 0x1b21, 0x13b3: 0x1851, 0x13b4: 0x1859, 0x13b5: 0x1861, + 0x13b6: 0x1869, 0x13b7: 0x1871, 0x13b8: 0x1879, 0x13b9: 0x1889, 0x13ba: 0x1891, 0x13bb: 0x1899, + 0x13bc: 0x18a1, 0x13bd: 0x18a9, 0x13be: 0x18b1, 0x13bf: 0x18b9, // Block 0x4f, offset 0x13c0 - 0x13c0: 0x8649, 0x13c1: 0x8671, 0x13c2: 0x8699, 0x13c3: 0x86c1, 0x13c4: 0x86e9, 0x13c5: 0x8711, - 0x13c6: 0x8739, 0x13c7: 0x8761, 0x13c8: 0x8789, 0x13c9: 0x87b1, 0x13ca: 0x87d9, 0x13cb: 0x8801, - 0x13cc: 0x8829, 0x13cd: 0x8851, 0x13ce: 0x8879, 0x13cf: 0x88a1, 0x13d0: 0x88c9, 0x13d1: 0x88f1, - 0x13d2: 0x8919, 0x13d3: 0x8941, 0x13d4: 0x8969, 0x13d5: 0x8991, 0x13d6: 0x89b9, 0x13d7: 0x89e1, - 0x13d8: 0x8a09, 0x13d9: 0x8a31, 0x13da: 0x8a59, 0x13db: 0x8a81, 0x13dc: 0x8aa9, 0x13dd: 0x8ad1, - 0x13de: 0x8afa, 0x13df: 0x8b2a, 0x13e0: 0x8b5a, 0x13e1: 0x8b8a, 0x13e2: 0x8bba, 0x13e3: 0x8bea, - 0x13e4: 0x8c19, 0x13e5: 0x8c41, 0x13e6: 0x7cc1, 0x13e7: 0x8c69, 0x13e8: 0x7c31, 0x13e9: 0x7ce9, - 0x13ea: 0x8c91, 0x13eb: 0x8cb9, 0x13ec: 0x7d89, 0x13ed: 0x8ce1, 0x13ee: 0x7db1, 0x13ef: 0x7dd9, - 0x13f0: 0x8d09, 0x13f1: 0x8d31, 0x13f2: 0x7e79, 0x13f3: 0x8d59, 0x13f4: 0x7ea1, 0x13f5: 0x7ec9, - 0x13f6: 0x8d81, 0x13f7: 0x8da9, 0x13f8: 0x7f19, 0x13f9: 0x8dd1, 0x13fa: 0x7f41, 0x13fb: 0x7f69, - 0x13fc: 0x83f1, 0x13fd: 0x8419, 0x13fe: 0x8491, 0x13ff: 0x84b9, + 0x13c0: 0x18c1, 0x13c1: 0x18c9, 0x13c2: 0x18e1, 0x13c3: 0x18e9, 0x13c4: 0x1909, 0x13c5: 0x1911, + 0x13c6: 0x1919, 0x13c7: 0x1921, 0x13c8: 0x1929, 0x13c9: 0x1941, 0x13ca: 0x1949, 0x13cb: 0x1951, + 0x13cc: 0x1959, 0x13cd: 0x1b29, 0x13ce: 0x1971, 0x13cf: 0x1979, 0x13d0: 0x1981, 0x13d1: 0x1989, + 0x13d2: 0x19a1, 0x13d3: 0x19a9, 0x13d4: 0x19b1, 0x13d5: 0x19b9, 0x13d6: 0x1b31, 0x13d7: 0x19d1, + 0x13d8: 0x19d9, 0x13d9: 0x1b39, 0x13da: 0x19f1, 0x13db: 0x19f9, 0x13dc: 0x1a01, 0x13dd: 0x1a09, + 0x13de: 0x1b41, 0x13df: 0x1761, 0x13e0: 0x1b09, 0x13e1: 0x1789, 0x13e2: 0x1b11, 0x13e3: 0x17b9, + 0x13e4: 0x1b19, 0x13e5: 0x17d9, 0x13e6: 0x1b49, 0x13e7: 0x1841, 0x13e8: 0x1b51, 0x13e9: 0x1b59, + 0x13ea: 0x1b61, 0x13eb: 0x1921, 0x13ec: 0x1929, 0x13ed: 0x1959, 0x13ee: 0x19b9, 0x13ef: 0x1b31, + 0x13f0: 0x1a09, 0x13f1: 0x1b41, 0x13f2: 0x1b69, 0x13f3: 0x1b71, 0x13f4: 0x1b79, 0x13f5: 0x1b81, + 0x13f6: 0x1b89, 0x13f7: 0x1b91, 0x13f8: 0x1b99, 0x13f9: 0x1ba1, 0x13fa: 0x1ba9, 0x13fb: 0x1bb1, + 0x13fc: 0x1bb9, 0x13fd: 0x1bc1, 0x13fe: 0x1bc9, 0x13ff: 0x1bd1, // Block 0x50, offset 0x1400 - 0x1400: 0x84e1, 0x1401: 0x8581, 0x1402: 0x85a9, 0x1403: 0x85d1, 0x1404: 0x85f9, 0x1405: 0x8699, - 0x1406: 0x86c1, 0x1407: 0x86e9, 0x1408: 0x8df9, 0x1409: 0x8789, 0x140a: 0x8e21, 0x140b: 0x8e49, - 0x140c: 0x8879, 0x140d: 0x8e71, 0x140e: 0x88a1, 0x140f: 0x88c9, 0x1410: 0x8ad1, 0x1411: 0x8e99, - 0x1412: 0x8ec1, 0x1413: 0x8a09, 0x1414: 0x8ee9, 0x1415: 0x8a31, 0x1416: 0x8a59, 0x1417: 0x7c71, - 0x1418: 0x7c99, 0x1419: 0x8f11, 0x141a: 0x7cc1, 0x141b: 0x8f39, 0x141c: 0x7d11, 0x141d: 0x7d39, - 0x141e: 0x7d61, 0x141f: 0x7d89, 0x1420: 0x8f61, 0x1421: 0x7e01, 0x1422: 0x7e29, 0x1423: 0x7e51, - 0x1424: 0x7e79, 0x1425: 0x8f89, 0x1426: 0x7f19, 0x1427: 0x7f91, 0x1428: 0x7fb9, 0x1429: 0x7fe1, - 0x142a: 0x8009, 0x142b: 0x8031, 0x142c: 0x8081, 0x142d: 0x80a9, 0x142e: 0x80d1, 0x142f: 0x80f9, - 0x1430: 0x8121, 0x1431: 0x8149, 0x1432: 0x8fb1, 0x1433: 0x8171, 0x1434: 0x8199, 0x1435: 0x81c1, - 0x1436: 0x81e9, 0x1437: 0x8211, 0x1438: 0x8239, 0x1439: 0x8289, 0x143a: 0x82b1, 0x143b: 0x82d9, - 0x143c: 0x8301, 0x143d: 0x8329, 0x143e: 0x8351, 0x143f: 0x8379, + 0x1400: 0x1bd9, 0x1401: 0x1be1, 0x1402: 0x1be9, 0x1403: 0x1bf1, 0x1404: 0x1bf9, 0x1405: 0x1c01, + 0x1406: 0x1c09, 0x1407: 0x1c11, 0x1408: 0x1c19, 0x1409: 0x1c21, 0x140a: 0x1c29, 0x140b: 0x1c31, + 0x140c: 0x1b59, 0x140d: 0x1c39, 0x140e: 0x1c41, 0x140f: 0x1c49, 0x1410: 0x1c51, 0x1411: 0x1b81, + 0x1412: 0x1b89, 0x1413: 0x1b91, 0x1414: 0x1b99, 0x1415: 0x1ba1, 0x1416: 0x1ba9, 0x1417: 0x1bb1, + 0x1418: 0x1bb9, 0x1419: 0x1bc1, 0x141a: 0x1bc9, 0x141b: 0x1bd1, 0x141c: 0x1bd9, 0x141d: 0x1be1, + 0x141e: 0x1be9, 0x141f: 0x1bf1, 0x1420: 0x1bf9, 0x1421: 0x1c01, 0x1422: 0x1c09, 0x1423: 0x1c11, + 0x1424: 0x1c19, 0x1425: 0x1c21, 0x1426: 0x1c29, 0x1427: 0x1c31, 0x1428: 0x1b59, 0x1429: 0x1c39, + 0x142a: 0x1c41, 0x142b: 0x1c49, 0x142c: 0x1c51, 0x142d: 0x1c21, 0x142e: 0x1c29, 0x142f: 0x1c31, + 0x1430: 0x1b59, 0x1431: 0x1b51, 0x1432: 0x1b61, 0x1433: 0x1881, 0x1434: 0x1829, 0x1435: 0x1831, + 0x1436: 0x1839, 0x1437: 0x1c21, 0x1438: 0x1c29, 0x1439: 0x1c31, 0x143a: 0x1881, 0x143b: 0x1889, + 0x143c: 0x1c59, 0x143d: 0x1c59, 0x143e: 0x0018, 0x143f: 0x0018, // Block 0x51, offset 0x1440 - 0x1440: 0x83a1, 0x1441: 0x83c9, 0x1442: 0x8441, 0x1443: 0x8469, 0x1444: 0x8509, 0x1445: 0x8531, - 0x1446: 0x8559, 0x1447: 0x8581, 0x1448: 0x85a9, 0x1449: 0x8621, 0x144a: 0x8649, 0x144b: 0x8671, - 0x144c: 0x8699, 0x144d: 0x8fd9, 0x144e: 0x8711, 0x144f: 0x8739, 0x1450: 0x8761, 0x1451: 0x8789, - 0x1452: 0x8801, 0x1453: 0x8829, 0x1454: 0x8851, 0x1455: 0x8879, 0x1456: 0x9001, 0x1457: 0x88f1, - 0x1458: 0x8919, 0x1459: 0x9029, 0x145a: 0x8991, 0x145b: 0x89b9, 0x145c: 0x89e1, 0x145d: 0x8a09, - 0x145e: 0x9051, 0x145f: 0x7cc1, 0x1460: 0x8f39, 0x1461: 0x7d89, 0x1462: 0x8f61, 0x1463: 0x7e79, - 0x1464: 0x8f89, 0x1465: 0x7f19, 0x1466: 0x9079, 0x1467: 0x8121, 0x1468: 0x90a1, 0x1469: 0x90c9, - 0x146a: 0x90f1, 0x146b: 0x8581, 0x146c: 0x85a9, 0x146d: 0x8699, 0x146e: 0x8879, 0x146f: 0x9001, - 0x1470: 0x8a09, 0x1471: 0x9051, 0x1472: 0x9119, 0x1473: 0x9151, 0x1474: 0x9189, 0x1475: 0x91c1, - 0x1476: 0x91e9, 0x1477: 0x9211, 0x1478: 0x9239, 0x1479: 0x9261, 0x147a: 0x9289, 0x147b: 0x92b1, - 0x147c: 0x92d9, 0x147d: 0x9301, 0x147e: 0x9329, 0x147f: 0x9351, + 0x1440: 0x0040, 0x1441: 0x0040, 0x1442: 0x0040, 0x1443: 0x0040, 0x1444: 0x0040, 0x1445: 0x0040, + 0x1446: 0x0040, 0x1447: 0x0040, 0x1448: 0x0040, 0x1449: 0x0040, 0x144a: 0x0040, 0x144b: 0x0040, + 0x144c: 0x0040, 0x144d: 0x0040, 0x144e: 0x0040, 0x144f: 0x0040, 0x1450: 0x1c61, 0x1451: 0x1c69, + 0x1452: 0x1c69, 0x1453: 0x1c71, 0x1454: 0x1c79, 0x1455: 0x1c81, 0x1456: 0x1c89, 0x1457: 0x1c91, + 0x1458: 0x1c99, 0x1459: 0x1c99, 0x145a: 0x1ca1, 0x145b: 0x1ca9, 0x145c: 0x1cb1, 0x145d: 0x1cb9, + 0x145e: 0x1cc1, 0x145f: 0x1cc9, 0x1460: 0x1cc9, 0x1461: 0x1cd1, 0x1462: 0x1cd9, 0x1463: 0x1cd9, + 0x1464: 0x1ce1, 0x1465: 0x1ce1, 0x1466: 0x1ce9, 0x1467: 0x1cf1, 0x1468: 0x1cf1, 0x1469: 0x1cf9, + 0x146a: 0x1d01, 0x146b: 0x1d01, 0x146c: 0x1d09, 0x146d: 0x1d09, 0x146e: 0x1d11, 0x146f: 0x1d19, + 0x1470: 0x1d19, 0x1471: 0x1d21, 0x1472: 0x1d21, 0x1473: 0x1d29, 0x1474: 0x1d31, 0x1475: 0x1d39, + 0x1476: 0x1d41, 0x1477: 0x1d41, 0x1478: 0x1d49, 0x1479: 0x1d51, 0x147a: 0x1d59, 0x147b: 0x1d61, + 0x147c: 0x1d69, 0x147d: 0x1d69, 0x147e: 0x1d71, 0x147f: 0x1d79, // Block 0x52, offset 0x1480 - 0x1480: 0x9379, 0x1481: 0x93a1, 0x1482: 0x93c9, 0x1483: 0x93f1, 0x1484: 0x9419, 0x1485: 0x9441, - 0x1486: 0x9469, 0x1487: 0x9491, 0x1488: 0x94b9, 0x1489: 0x94e1, 0x148a: 0x9509, 0x148b: 0x9531, - 0x148c: 0x90c9, 0x148d: 0x9559, 0x148e: 0x9581, 0x148f: 0x95a9, 0x1490: 0x95d1, 0x1491: 0x91c1, - 0x1492: 0x91e9, 0x1493: 0x9211, 0x1494: 0x9239, 0x1495: 0x9261, 0x1496: 0x9289, 0x1497: 0x92b1, - 0x1498: 0x92d9, 0x1499: 0x9301, 0x149a: 0x9329, 0x149b: 0x9351, 0x149c: 0x9379, 0x149d: 0x93a1, - 0x149e: 0x93c9, 0x149f: 0x93f1, 0x14a0: 0x9419, 0x14a1: 0x9441, 0x14a2: 0x9469, 0x14a3: 0x9491, - 0x14a4: 0x94b9, 0x14a5: 0x94e1, 0x14a6: 0x9509, 0x14a7: 0x9531, 0x14a8: 0x90c9, 0x14a9: 0x9559, - 0x14aa: 0x9581, 0x14ab: 0x95a9, 0x14ac: 0x95d1, 0x14ad: 0x94e1, 0x14ae: 0x9509, 0x14af: 0x9531, - 0x14b0: 0x90c9, 0x14b1: 0x90a1, 0x14b2: 0x90f1, 0x14b3: 0x8261, 0x14b4: 0x80a9, 0x14b5: 0x80d1, - 0x14b6: 0x80f9, 0x14b7: 0x94e1, 0x14b8: 0x9509, 0x14b9: 0x9531, 0x14ba: 0x8261, 0x14bb: 0x8289, - 0x14bc: 0x95f9, 0x14bd: 0x95f9, 0x14be: 0x0018, 0x14bf: 0x0018, + 0x1480: 0x1f29, 0x1481: 0x1f31, 0x1482: 0x1f39, 0x1483: 0x1f11, 0x1484: 0x1d39, 0x1485: 0x1ce9, + 0x1486: 0x1f41, 0x1487: 0x1f49, 0x1488: 0x0040, 0x1489: 0x0040, 0x148a: 0x0040, 0x148b: 0x0040, + 0x148c: 0x0040, 0x148d: 0x0040, 0x148e: 0x0040, 0x148f: 0x0040, 0x1490: 0x0040, 0x1491: 0x0040, + 0x1492: 0x0040, 0x1493: 0x0040, 0x1494: 0x0040, 0x1495: 0x0040, 0x1496: 0x0040, 0x1497: 0x0040, + 0x1498: 0x0040, 0x1499: 0x0040, 0x149a: 0x0040, 0x149b: 0x0040, 0x149c: 0x0040, 0x149d: 0x0040, + 0x149e: 0x0040, 0x149f: 0x0040, 0x14a0: 0x0040, 0x14a1: 0x0040, 0x14a2: 0x0040, 0x14a3: 0x0040, + 0x14a4: 0x0040, 0x14a5: 0x0040, 0x14a6: 0x0040, 0x14a7: 0x0040, 0x14a8: 0x0040, 0x14a9: 0x0040, + 0x14aa: 0x0040, 0x14ab: 0x0040, 0x14ac: 0x0040, 0x14ad: 0x0040, 0x14ae: 0x0040, 0x14af: 0x0040, + 0x14b0: 0x1f51, 0x14b1: 0x1f59, 0x14b2: 0x1f61, 0x14b3: 0x1f69, 0x14b4: 0x1f71, 0x14b5: 0x1f79, + 0x14b6: 0x1f81, 0x14b7: 0x1f89, 0x14b8: 0x1f91, 0x14b9: 0x1f99, 0x14ba: 0x1fa2, 0x14bb: 0x1faa, + 0x14bc: 0x1fb1, 0x14bd: 0x0018, 0x14be: 0x0040, 0x14bf: 0x0040, // Block 0x53, offset 0x14c0 - 0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040, - 0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040, - 0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x9621, 0x14d1: 0x9659, - 0x14d2: 0x9659, 0x14d3: 0x9691, 0x14d4: 0x96c9, 0x14d5: 0x9701, 0x14d6: 0x9739, 0x14d7: 0x9771, - 0x14d8: 0x97a9, 0x14d9: 0x97a9, 0x14da: 0x97e1, 0x14db: 0x9819, 0x14dc: 0x9851, 0x14dd: 0x9889, - 0x14de: 0x98c1, 0x14df: 0x98f9, 0x14e0: 0x98f9, 0x14e1: 0x9931, 0x14e2: 0x9969, 0x14e3: 0x9969, - 0x14e4: 0x99a1, 0x14e5: 0x99a1, 0x14e6: 0x99d9, 0x14e7: 0x9a11, 0x14e8: 0x9a11, 0x14e9: 0x9a49, - 0x14ea: 0x9a81, 0x14eb: 0x9a81, 0x14ec: 0x9ab9, 0x14ed: 0x9ab9, 0x14ee: 0x9af1, 0x14ef: 0x9b29, - 0x14f0: 0x9b29, 0x14f1: 0x9b61, 0x14f2: 0x9b61, 0x14f3: 0x9b99, 0x14f4: 0x9bd1, 0x14f5: 0x9c09, - 0x14f6: 0x9c41, 0x14f7: 0x9c41, 0x14f8: 0x9c79, 0x14f9: 0x9cb1, 0x14fa: 0x9ce9, 0x14fb: 0x9d21, - 0x14fc: 0x9d59, 0x14fd: 0x9d59, 0x14fe: 0x9d91, 0x14ff: 0x9dc9, + 0x14c0: 0x33c0, 0x14c1: 0x33c0, 0x14c2: 0x33c0, 0x14c3: 0x33c0, 0x14c4: 0x33c0, 0x14c5: 0x33c0, + 0x14c6: 0x33c0, 0x14c7: 0x33c0, 0x14c8: 0x33c0, 0x14c9: 0x33c0, 0x14ca: 0x33c0, 0x14cb: 0x33c0, + 0x14cc: 0x33c0, 0x14cd: 0x33c0, 0x14ce: 0x33c0, 0x14cf: 0x33c0, 0x14d0: 0x1fba, 0x14d1: 0x7d8d, + 0x14d2: 0x0040, 0x14d3: 0x1fc2, 0x14d4: 0x0122, 0x14d5: 0x1fca, 0x14d6: 0x1fd2, 0x14d7: 0x7dad, + 0x14d8: 0x7dcd, 0x14d9: 0x0040, 0x14da: 0x0040, 0x14db: 0x0040, 0x14dc: 0x0040, 0x14dd: 0x0040, + 0x14de: 0x0040, 0x14df: 0x0040, 0x14e0: 0x3308, 0x14e1: 0x3308, 0x14e2: 0x3308, 0x14e3: 0x3308, + 0x14e4: 0x3308, 0x14e5: 0x3308, 0x14e6: 0x3308, 0x14e7: 0x3308, 0x14e8: 0x3308, 0x14e9: 0x3308, + 0x14ea: 0x3308, 0x14eb: 0x3308, 0x14ec: 0x3308, 0x14ed: 0x3308, 0x14ee: 0x3308, 0x14ef: 0x3308, + 0x14f0: 0x0040, 0x14f1: 0x7ded, 0x14f2: 0x7e0d, 0x14f3: 0x1fda, 0x14f4: 0x1fda, 0x14f5: 0x072a, + 0x14f6: 0x0732, 0x14f7: 0x1fe2, 0x14f8: 0x1fea, 0x14f9: 0x7e2d, 0x14fa: 0x7e4d, 0x14fb: 0x7e6d, + 0x14fc: 0x7e2d, 0x14fd: 0x7e8d, 0x14fe: 0x7ead, 0x14ff: 0x7e8d, // Block 0x54, offset 0x1500 - 0x1500: 0xa999, 0x1501: 0xa9d1, 0x1502: 0xaa09, 0x1503: 0xa8f1, 0x1504: 0x9c09, 0x1505: 0x99d9, - 0x1506: 0xaa41, 0x1507: 0xaa79, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040, - 0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040, - 0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040, - 0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040, - 0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040, - 0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040, - 0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040, - 0x1530: 0xaab1, 0x1531: 0xaae9, 0x1532: 0xab21, 0x1533: 0xab69, 0x1534: 0xabb1, 0x1535: 0xabf9, - 0x1536: 0xac41, 0x1537: 0xac89, 0x1538: 0xacd1, 0x1539: 0xad19, 0x153a: 0xad52, 0x153b: 0xae62, - 0x153c: 0xaee1, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040, + 0x1500: 0x7ecd, 0x1501: 0x7eed, 0x1502: 0x7f0d, 0x1503: 0x7eed, 0x1504: 0x7f2d, 0x1505: 0x0018, + 0x1506: 0x0018, 0x1507: 0x1ff2, 0x1508: 0x1ffa, 0x1509: 0x7f4e, 0x150a: 0x7f6e, 0x150b: 0x7f8e, + 0x150c: 0x7fae, 0x150d: 0x1fda, 0x150e: 0x1fda, 0x150f: 0x1fda, 0x1510: 0x1fba, 0x1511: 0x7fcd, + 0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0122, 0x1515: 0x1fc2, 0x1516: 0x1fd2, 0x1517: 0x1fca, + 0x1518: 0x7fed, 0x1519: 0x072a, 0x151a: 0x0732, 0x151b: 0x1fe2, 0x151c: 0x1fea, 0x151d: 0x7ecd, + 0x151e: 0x7f2d, 0x151f: 0x2002, 0x1520: 0x200a, 0x1521: 0x2012, 0x1522: 0x071a, 0x1523: 0x2019, + 0x1524: 0x2022, 0x1525: 0x202a, 0x1526: 0x0722, 0x1527: 0x0040, 0x1528: 0x2032, 0x1529: 0x203a, + 0x152a: 0x2042, 0x152b: 0x204a, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040, + 0x1530: 0x800e, 0x1531: 0x2051, 0x1532: 0x802e, 0x1533: 0x0808, 0x1534: 0x804e, 0x1535: 0x0040, + 0x1536: 0x806e, 0x1537: 0x2059, 0x1538: 0x808e, 0x1539: 0x2061, 0x153a: 0x80ae, 0x153b: 0x2069, + 0x153c: 0x80ce, 0x153d: 0x2071, 0x153e: 0x80ee, 0x153f: 0x2079, // Block 0x55, offset 0x1540 - 0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0, - 0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0, - 0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaf2a, 0x1551: 0x7d8d, - 0x1552: 0x0040, 0x1553: 0xaf3a, 0x1554: 0x03c2, 0x1555: 0xaf4a, 0x1556: 0xaf5a, 0x1557: 0x7dad, - 0x1558: 0x7dcd, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040, - 0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308, - 0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308, - 0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308, - 0x1570: 0x0040, 0x1571: 0x7ded, 0x1572: 0x7e0d, 0x1573: 0xaf6a, 0x1574: 0xaf6a, 0x1575: 0x1fd2, - 0x1576: 0x1fe2, 0x1577: 0xaf7a, 0x1578: 0xaf8a, 0x1579: 0x7e2d, 0x157a: 0x7e4d, 0x157b: 0x7e6d, - 0x157c: 0x7e2d, 0x157d: 0x7e8d, 0x157e: 0x7ead, 0x157f: 0x7e8d, + 0x1540: 0x2081, 0x1541: 0x2089, 0x1542: 0x2089, 0x1543: 0x2091, 0x1544: 0x2091, 0x1545: 0x2099, + 0x1546: 0x2099, 0x1547: 0x20a1, 0x1548: 0x20a1, 0x1549: 0x20a9, 0x154a: 0x20a9, 0x154b: 0x20a9, + 0x154c: 0x20a9, 0x154d: 0x20b1, 0x154e: 0x20b1, 0x154f: 0x20b9, 0x1550: 0x20b9, 0x1551: 0x20b9, + 0x1552: 0x20b9, 0x1553: 0x20c1, 0x1554: 0x20c1, 0x1555: 0x20c9, 0x1556: 0x20c9, 0x1557: 0x20c9, + 0x1558: 0x20c9, 0x1559: 0x20d1, 0x155a: 0x20d1, 0x155b: 0x20d1, 0x155c: 0x20d1, 0x155d: 0x20d9, + 0x155e: 0x20d9, 0x155f: 0x20d9, 0x1560: 0x20d9, 0x1561: 0x20e1, 0x1562: 0x20e1, 0x1563: 0x20e1, + 0x1564: 0x20e1, 0x1565: 0x20e9, 0x1566: 0x20e9, 0x1567: 0x20e9, 0x1568: 0x20e9, 0x1569: 0x20f1, + 0x156a: 0x20f1, 0x156b: 0x20f9, 0x156c: 0x20f9, 0x156d: 0x2101, 0x156e: 0x2101, 0x156f: 0x2109, + 0x1570: 0x2109, 0x1571: 0x2111, 0x1572: 0x2111, 0x1573: 0x2111, 0x1574: 0x2111, 0x1575: 0x2119, + 0x1576: 0x2119, 0x1577: 0x2119, 0x1578: 0x2119, 0x1579: 0x2121, 0x157a: 0x2121, 0x157b: 0x2121, + 0x157c: 0x2121, 0x157d: 0x2129, 0x157e: 0x2129, 0x157f: 0x2129, // Block 0x56, offset 0x1580 - 0x1580: 0x7ecd, 0x1581: 0x7eed, 0x1582: 0x7f0d, 0x1583: 0x7eed, 0x1584: 0x7f2d, 0x1585: 0x0018, - 0x1586: 0x0018, 0x1587: 0xaf9a, 0x1588: 0xafaa, 0x1589: 0x7f4e, 0x158a: 0x7f6e, 0x158b: 0x7f8e, - 0x158c: 0x7fae, 0x158d: 0xaf6a, 0x158e: 0xaf6a, 0x158f: 0xaf6a, 0x1590: 0xaf2a, 0x1591: 0x7fcd, - 0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaf3a, 0x1596: 0xaf5a, 0x1597: 0xaf4a, - 0x1598: 0x7fed, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf7a, 0x159c: 0xaf8a, 0x159d: 0x7ecd, - 0x159e: 0x7f2d, 0x159f: 0xafba, 0x15a0: 0xafca, 0x15a1: 0xafda, 0x15a2: 0x1fb2, 0x15a3: 0xafe9, - 0x15a4: 0xaffa, 0x15a5: 0xb00a, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xb01a, 0x15a9: 0xb02a, - 0x15aa: 0xb03a, 0x15ab: 0xb04a, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040, - 0x15b0: 0x800e, 0x15b1: 0xb059, 0x15b2: 0x802e, 0x15b3: 0x0808, 0x15b4: 0x804e, 0x15b5: 0x0040, - 0x15b6: 0x806e, 0x15b7: 0xb081, 0x15b8: 0x808e, 0x15b9: 0xb0a9, 0x15ba: 0x80ae, 0x15bb: 0xb0d1, - 0x15bc: 0x80ce, 0x15bd: 0xb0f9, 0x15be: 0x80ee, 0x15bf: 0xb121, + 0x1580: 0x2129, 0x1581: 0x2131, 0x1582: 0x2131, 0x1583: 0x2131, 0x1584: 0x2131, 0x1585: 0x2139, + 0x1586: 0x2139, 0x1587: 0x2139, 0x1588: 0x2139, 0x1589: 0x2141, 0x158a: 0x2141, 0x158b: 0x2141, + 0x158c: 0x2141, 0x158d: 0x2149, 0x158e: 0x2149, 0x158f: 0x2149, 0x1590: 0x2149, 0x1591: 0x2151, + 0x1592: 0x2151, 0x1593: 0x2151, 0x1594: 0x2151, 0x1595: 0x2159, 0x1596: 0x2159, 0x1597: 0x2159, + 0x1598: 0x2159, 0x1599: 0x2161, 0x159a: 0x2161, 0x159b: 0x2161, 0x159c: 0x2161, 0x159d: 0x2169, + 0x159e: 0x2169, 0x159f: 0x2169, 0x15a0: 0x2169, 0x15a1: 0x2171, 0x15a2: 0x2171, 0x15a3: 0x2171, + 0x15a4: 0x2171, 0x15a5: 0x2179, 0x15a6: 0x2179, 0x15a7: 0x2179, 0x15a8: 0x2179, 0x15a9: 0x2181, + 0x15aa: 0x2181, 0x15ab: 0x2181, 0x15ac: 0x2181, 0x15ad: 0x2189, 0x15ae: 0x2189, 0x15af: 0x1701, + 0x15b0: 0x1701, 0x15b1: 0x2191, 0x15b2: 0x2191, 0x15b3: 0x2191, 0x15b4: 0x2191, 0x15b5: 0x2199, + 0x15b6: 0x2199, 0x15b7: 0x21a1, 0x15b8: 0x21a1, 0x15b9: 0x21a9, 0x15ba: 0x21a9, 0x15bb: 0x21b1, + 0x15bc: 0x21b1, 0x15bd: 0x0040, 0x15be: 0x0040, 0x15bf: 0x03c0, // Block 0x57, offset 0x15c0 - 0x15c0: 0xb149, 0x15c1: 0xb161, 0x15c2: 0xb161, 0x15c3: 0xb179, 0x15c4: 0xb179, 0x15c5: 0xb191, - 0x15c6: 0xb191, 0x15c7: 0xb1a9, 0x15c8: 0xb1a9, 0x15c9: 0xb1c1, 0x15ca: 0xb1c1, 0x15cb: 0xb1c1, - 0x15cc: 0xb1c1, 0x15cd: 0xb1d9, 0x15ce: 0xb1d9, 0x15cf: 0xb1f1, 0x15d0: 0xb1f1, 0x15d1: 0xb1f1, - 0x15d2: 0xb1f1, 0x15d3: 0xb209, 0x15d4: 0xb209, 0x15d5: 0xb221, 0x15d6: 0xb221, 0x15d7: 0xb221, - 0x15d8: 0xb221, 0x15d9: 0xb239, 0x15da: 0xb239, 0x15db: 0xb239, 0x15dc: 0xb239, 0x15dd: 0xb251, - 0x15de: 0xb251, 0x15df: 0xb251, 0x15e0: 0xb251, 0x15e1: 0xb269, 0x15e2: 0xb269, 0x15e3: 0xb269, - 0x15e4: 0xb269, 0x15e5: 0xb281, 0x15e6: 0xb281, 0x15e7: 0xb281, 0x15e8: 0xb281, 0x15e9: 0xb299, - 0x15ea: 0xb299, 0x15eb: 0xb2b1, 0x15ec: 0xb2b1, 0x15ed: 0xb2c9, 0x15ee: 0xb2c9, 0x15ef: 0xb2e1, - 0x15f0: 0xb2e1, 0x15f1: 0xb2f9, 0x15f2: 0xb2f9, 0x15f3: 0xb2f9, 0x15f4: 0xb2f9, 0x15f5: 0xb311, - 0x15f6: 0xb311, 0x15f7: 0xb311, 0x15f8: 0xb311, 0x15f9: 0xb329, 0x15fa: 0xb329, 0x15fb: 0xb329, - 0x15fc: 0xb329, 0x15fd: 0xb341, 0x15fe: 0xb341, 0x15ff: 0xb341, + 0x15c0: 0x0040, 0x15c1: 0x1fca, 0x15c2: 0x21ba, 0x15c3: 0x2002, 0x15c4: 0x203a, 0x15c5: 0x2042, + 0x15c6: 0x200a, 0x15c7: 0x21c2, 0x15c8: 0x072a, 0x15c9: 0x0732, 0x15ca: 0x2012, 0x15cb: 0x071a, + 0x15cc: 0x1fba, 0x15cd: 0x2019, 0x15ce: 0x0961, 0x15cf: 0x21ca, 0x15d0: 0x06e1, 0x15d1: 0x0049, + 0x15d2: 0x0029, 0x15d3: 0x0031, 0x15d4: 0x06e9, 0x15d5: 0x06f1, 0x15d6: 0x06f9, 0x15d7: 0x0701, + 0x15d8: 0x0709, 0x15d9: 0x0711, 0x15da: 0x1fc2, 0x15db: 0x0122, 0x15dc: 0x2022, 0x15dd: 0x0722, + 0x15de: 0x202a, 0x15df: 0x1fd2, 0x15e0: 0x204a, 0x15e1: 0x0019, 0x15e2: 0x02e9, 0x15e3: 0x03d9, + 0x15e4: 0x02f1, 0x15e5: 0x02f9, 0x15e6: 0x03f1, 0x15e7: 0x0309, 0x15e8: 0x00a9, 0x15e9: 0x0311, + 0x15ea: 0x00b1, 0x15eb: 0x0319, 0x15ec: 0x0101, 0x15ed: 0x0321, 0x15ee: 0x0329, 0x15ef: 0x0051, + 0x15f0: 0x0339, 0x15f1: 0x0751, 0x15f2: 0x00b9, 0x15f3: 0x0089, 0x15f4: 0x0341, 0x15f5: 0x0349, + 0x15f6: 0x0391, 0x15f7: 0x00c1, 0x15f8: 0x0109, 0x15f9: 0x00c9, 0x15fa: 0x04b1, 0x15fb: 0x1ff2, + 0x15fc: 0x2032, 0x15fd: 0x1ffa, 0x15fe: 0x21d2, 0x15ff: 0x1fda, // Block 0x58, offset 0x1600 - 0x1600: 0xb341, 0x1601: 0xb359, 0x1602: 0xb359, 0x1603: 0xb359, 0x1604: 0xb359, 0x1605: 0xb371, - 0x1606: 0xb371, 0x1607: 0xb371, 0x1608: 0xb371, 0x1609: 0xb389, 0x160a: 0xb389, 0x160b: 0xb389, - 0x160c: 0xb389, 0x160d: 0xb3a1, 0x160e: 0xb3a1, 0x160f: 0xb3a1, 0x1610: 0xb3a1, 0x1611: 0xb3b9, - 0x1612: 0xb3b9, 0x1613: 0xb3b9, 0x1614: 0xb3b9, 0x1615: 0xb3d1, 0x1616: 0xb3d1, 0x1617: 0xb3d1, - 0x1618: 0xb3d1, 0x1619: 0xb3e9, 0x161a: 0xb3e9, 0x161b: 0xb3e9, 0x161c: 0xb3e9, 0x161d: 0xb401, - 0x161e: 0xb401, 0x161f: 0xb401, 0x1620: 0xb401, 0x1621: 0xb419, 0x1622: 0xb419, 0x1623: 0xb419, - 0x1624: 0xb419, 0x1625: 0xb431, 0x1626: 0xb431, 0x1627: 0xb431, 0x1628: 0xb431, 0x1629: 0xb449, - 0x162a: 0xb449, 0x162b: 0xb449, 0x162c: 0xb449, 0x162d: 0xb461, 0x162e: 0xb461, 0x162f: 0x7b01, - 0x1630: 0x7b01, 0x1631: 0xb479, 0x1632: 0xb479, 0x1633: 0xb479, 0x1634: 0xb479, 0x1635: 0xb491, - 0x1636: 0xb491, 0x1637: 0xb4b9, 0x1638: 0xb4b9, 0x1639: 0xb4e1, 0x163a: 0xb4e1, 0x163b: 0xb509, - 0x163c: 0xb509, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0, + 0x1600: 0x0672, 0x1601: 0x0019, 0x1602: 0x02e9, 0x1603: 0x03d9, 0x1604: 0x02f1, 0x1605: 0x02f9, + 0x1606: 0x03f1, 0x1607: 0x0309, 0x1608: 0x00a9, 0x1609: 0x0311, 0x160a: 0x00b1, 0x160b: 0x0319, + 0x160c: 0x0101, 0x160d: 0x0321, 0x160e: 0x0329, 0x160f: 0x0051, 0x1610: 0x0339, 0x1611: 0x0751, + 0x1612: 0x00b9, 0x1613: 0x0089, 0x1614: 0x0341, 0x1615: 0x0349, 0x1616: 0x0391, 0x1617: 0x00c1, + 0x1618: 0x0109, 0x1619: 0x00c9, 0x161a: 0x04b1, 0x161b: 0x1fe2, 0x161c: 0x21da, 0x161d: 0x1fea, + 0x161e: 0x21e2, 0x161f: 0x810d, 0x1620: 0x812d, 0x1621: 0x0961, 0x1622: 0x814d, 0x1623: 0x814d, + 0x1624: 0x816d, 0x1625: 0x818d, 0x1626: 0x81ad, 0x1627: 0x81cd, 0x1628: 0x81ed, 0x1629: 0x820d, + 0x162a: 0x822d, 0x162b: 0x824d, 0x162c: 0x826d, 0x162d: 0x828d, 0x162e: 0x82ad, 0x162f: 0x82cd, + 0x1630: 0x82ed, 0x1631: 0x830d, 0x1632: 0x832d, 0x1633: 0x834d, 0x1634: 0x836d, 0x1635: 0x838d, + 0x1636: 0x83ad, 0x1637: 0x83cd, 0x1638: 0x83ed, 0x1639: 0x840d, 0x163a: 0x842d, 0x163b: 0x844d, + 0x163c: 0x81ed, 0x163d: 0x846d, 0x163e: 0x848d, 0x163f: 0x824d, // Block 0x59, offset 0x1640 - 0x1640: 0x0040, 0x1641: 0xaf4a, 0x1642: 0xb532, 0x1643: 0xafba, 0x1644: 0xb02a, 0x1645: 0xb03a, - 0x1646: 0xafca, 0x1647: 0xb542, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xafda, 0x164b: 0x1fb2, - 0x164c: 0xaf2a, 0x164d: 0xafe9, 0x164e: 0x29d1, 0x164f: 0xb552, 0x1650: 0x1f41, 0x1651: 0x00c9, - 0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81, - 0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaf3a, 0x165b: 0x03c2, 0x165c: 0xaffa, 0x165d: 0x1fc2, - 0x165e: 0xb00a, 0x165f: 0xaf5a, 0x1660: 0xb04a, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159, - 0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41, - 0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9, - 0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9, - 0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf9a, - 0x167c: 0xb01a, 0x167d: 0xafaa, 0x167e: 0xb562, 0x167f: 0xaf6a, + 0x1640: 0x84ad, 0x1641: 0x84cd, 0x1642: 0x84ed, 0x1643: 0x850d, 0x1644: 0x852d, 0x1645: 0x854d, + 0x1646: 0x856d, 0x1647: 0x858d, 0x1648: 0x850d, 0x1649: 0x85ad, 0x164a: 0x850d, 0x164b: 0x85cd, + 0x164c: 0x85cd, 0x164d: 0x85ed, 0x164e: 0x85ed, 0x164f: 0x860d, 0x1650: 0x854d, 0x1651: 0x862d, + 0x1652: 0x864d, 0x1653: 0x862d, 0x1654: 0x866d, 0x1655: 0x864d, 0x1656: 0x868d, 0x1657: 0x868d, + 0x1658: 0x86ad, 0x1659: 0x86ad, 0x165a: 0x86cd, 0x165b: 0x86cd, 0x165c: 0x864d, 0x165d: 0x814d, + 0x165e: 0x86ed, 0x165f: 0x870d, 0x1660: 0x0040, 0x1661: 0x872d, 0x1662: 0x874d, 0x1663: 0x876d, + 0x1664: 0x878d, 0x1665: 0x876d, 0x1666: 0x87ad, 0x1667: 0x87cd, 0x1668: 0x87ed, 0x1669: 0x87ed, + 0x166a: 0x880d, 0x166b: 0x880d, 0x166c: 0x882d, 0x166d: 0x882d, 0x166e: 0x880d, 0x166f: 0x880d, + 0x1670: 0x884d, 0x1671: 0x886d, 0x1672: 0x888d, 0x1673: 0x88ad, 0x1674: 0x88cd, 0x1675: 0x88ed, + 0x1676: 0x88ed, 0x1677: 0x88ed, 0x1678: 0x890d, 0x1679: 0x890d, 0x167a: 0x890d, 0x167b: 0x890d, + 0x167c: 0x87ed, 0x167d: 0x87ed, 0x167e: 0x87ed, 0x167f: 0x0040, // Block 0x5a, offset 0x1680 - 0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09, - 0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51, - 0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039, - 0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279, - 0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf7a, 0x169c: 0xb572, 0x169d: 0xaf8a, - 0x169e: 0xb582, 0x169f: 0x810d, 0x16a0: 0x812d, 0x16a1: 0x29d1, 0x16a2: 0x814d, 0x16a3: 0x814d, - 0x16a4: 0x816d, 0x16a5: 0x818d, 0x16a6: 0x81ad, 0x16a7: 0x81cd, 0x16a8: 0x81ed, 0x16a9: 0x820d, - 0x16aa: 0x822d, 0x16ab: 0x824d, 0x16ac: 0x826d, 0x16ad: 0x828d, 0x16ae: 0x82ad, 0x16af: 0x82cd, - 0x16b0: 0x82ed, 0x16b1: 0x830d, 0x16b2: 0x832d, 0x16b3: 0x834d, 0x16b4: 0x836d, 0x16b5: 0x838d, - 0x16b6: 0x83ad, 0x16b7: 0x83cd, 0x16b8: 0x83ed, 0x16b9: 0x840d, 0x16ba: 0x842d, 0x16bb: 0x844d, - 0x16bc: 0x81ed, 0x16bd: 0x846d, 0x16be: 0x848d, 0x16bf: 0x824d, + 0x1680: 0x0040, 0x1681: 0x0040, 0x1682: 0x874d, 0x1683: 0x872d, 0x1684: 0x892d, 0x1685: 0x872d, + 0x1686: 0x874d, 0x1687: 0x872d, 0x1688: 0x0040, 0x1689: 0x0040, 0x168a: 0x894d, 0x168b: 0x874d, + 0x168c: 0x896d, 0x168d: 0x892d, 0x168e: 0x896d, 0x168f: 0x874d, 0x1690: 0x0040, 0x1691: 0x0040, + 0x1692: 0x898d, 0x1693: 0x89ad, 0x1694: 0x88ad, 0x1695: 0x896d, 0x1696: 0x892d, 0x1697: 0x896d, + 0x1698: 0x0040, 0x1699: 0x0040, 0x169a: 0x89cd, 0x169b: 0x89ed, 0x169c: 0x89cd, 0x169d: 0x0040, + 0x169e: 0x0040, 0x169f: 0x0040, 0x16a0: 0x21e9, 0x16a1: 0x21f1, 0x16a2: 0x21f9, 0x16a3: 0x8a0e, + 0x16a4: 0x2201, 0x16a5: 0x2209, 0x16a6: 0x8a2d, 0x16a7: 0x0040, 0x16a8: 0x8a4d, 0x16a9: 0x8a6d, + 0x16aa: 0x8a8d, 0x16ab: 0x8a6d, 0x16ac: 0x8aad, 0x16ad: 0x8acd, 0x16ae: 0x8aed, 0x16af: 0x0040, + 0x16b0: 0x0040, 0x16b1: 0x0040, 0x16b2: 0x0040, 0x16b3: 0x0040, 0x16b4: 0x0040, 0x16b5: 0x0040, + 0x16b6: 0x0040, 0x16b7: 0x0040, 0x16b8: 0x0040, 0x16b9: 0x0340, 0x16ba: 0x0340, 0x16bb: 0x0340, + 0x16bc: 0x0040, 0x16bd: 0x0040, 0x16be: 0x0040, 0x16bf: 0x0040, // Block 0x5b, offset 0x16c0 - 0x16c0: 0x84ad, 0x16c1: 0x84cd, 0x16c2: 0x84ed, 0x16c3: 0x850d, 0x16c4: 0x852d, 0x16c5: 0x854d, - 0x16c6: 0x856d, 0x16c7: 0x858d, 0x16c8: 0x850d, 0x16c9: 0x85ad, 0x16ca: 0x850d, 0x16cb: 0x85cd, - 0x16cc: 0x85cd, 0x16cd: 0x85ed, 0x16ce: 0x85ed, 0x16cf: 0x860d, 0x16d0: 0x854d, 0x16d1: 0x862d, - 0x16d2: 0x864d, 0x16d3: 0x862d, 0x16d4: 0x866d, 0x16d5: 0x864d, 0x16d6: 0x868d, 0x16d7: 0x868d, - 0x16d8: 0x86ad, 0x16d9: 0x86ad, 0x16da: 0x86cd, 0x16db: 0x86cd, 0x16dc: 0x864d, 0x16dd: 0x814d, - 0x16de: 0x86ed, 0x16df: 0x870d, 0x16e0: 0x0040, 0x16e1: 0x872d, 0x16e2: 0x874d, 0x16e3: 0x876d, - 0x16e4: 0x878d, 0x16e5: 0x876d, 0x16e6: 0x87ad, 0x16e7: 0x87cd, 0x16e8: 0x87ed, 0x16e9: 0x87ed, - 0x16ea: 0x880d, 0x16eb: 0x880d, 0x16ec: 0x882d, 0x16ed: 0x882d, 0x16ee: 0x880d, 0x16ef: 0x880d, - 0x16f0: 0x884d, 0x16f1: 0x886d, 0x16f2: 0x888d, 0x16f3: 0x88ad, 0x16f4: 0x88cd, 0x16f5: 0x88ed, - 0x16f6: 0x88ed, 0x16f7: 0x88ed, 0x16f8: 0x890d, 0x16f9: 0x890d, 0x16fa: 0x890d, 0x16fb: 0x890d, - 0x16fc: 0x87ed, 0x16fd: 0x87ed, 0x16fe: 0x87ed, 0x16ff: 0x0040, + 0x16c0: 0x0a08, 0x16c1: 0x0a08, 0x16c2: 0x0a08, 0x16c3: 0x0a08, 0x16c4: 0x0a08, 0x16c5: 0x0c08, + 0x16c6: 0x0808, 0x16c7: 0x0c08, 0x16c8: 0x0818, 0x16c9: 0x0c08, 0x16ca: 0x0c08, 0x16cb: 0x0808, + 0x16cc: 0x0808, 0x16cd: 0x0908, 0x16ce: 0x0c08, 0x16cf: 0x0c08, 0x16d0: 0x0c08, 0x16d1: 0x0c08, + 0x16d2: 0x0c08, 0x16d3: 0x0a08, 0x16d4: 0x0a08, 0x16d5: 0x0a08, 0x16d6: 0x0a08, 0x16d7: 0x0908, + 0x16d8: 0x0a08, 0x16d9: 0x0a08, 0x16da: 0x0a08, 0x16db: 0x0a08, 0x16dc: 0x0a08, 0x16dd: 0x0c08, + 0x16de: 0x0a08, 0x16df: 0x0a08, 0x16e0: 0x0a08, 0x16e1: 0x0c08, 0x16e2: 0x0808, 0x16e3: 0x0808, + 0x16e4: 0x0c08, 0x16e5: 0x3308, 0x16e6: 0x3308, 0x16e7: 0x0040, 0x16e8: 0x0040, 0x16e9: 0x0040, + 0x16ea: 0x0040, 0x16eb: 0x0a18, 0x16ec: 0x0a18, 0x16ed: 0x0a18, 0x16ee: 0x0a18, 0x16ef: 0x0c18, + 0x16f0: 0x0818, 0x16f1: 0x0818, 0x16f2: 0x0818, 0x16f3: 0x0818, 0x16f4: 0x0818, 0x16f5: 0x0818, + 0x16f6: 0x0818, 0x16f7: 0x0040, 0x16f8: 0x0040, 0x16f9: 0x0040, 0x16fa: 0x0040, 0x16fb: 0x0040, + 0x16fc: 0x0040, 0x16fd: 0x0040, 0x16fe: 0x0040, 0x16ff: 0x0040, // Block 0x5c, offset 0x1700 - 0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x874d, 0x1703: 0x872d, 0x1704: 0x892d, 0x1705: 0x872d, - 0x1706: 0x874d, 0x1707: 0x872d, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x894d, 0x170b: 0x874d, - 0x170c: 0x896d, 0x170d: 0x892d, 0x170e: 0x896d, 0x170f: 0x874d, 0x1710: 0x0040, 0x1711: 0x0040, - 0x1712: 0x898d, 0x1713: 0x89ad, 0x1714: 0x88ad, 0x1715: 0x896d, 0x1716: 0x892d, 0x1717: 0x896d, - 0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x89cd, 0x171b: 0x89ed, 0x171c: 0x89cd, 0x171d: 0x0040, - 0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb591, 0x1721: 0xb5a9, 0x1722: 0xb5c1, 0x1723: 0x8a0e, - 0x1724: 0xb5d9, 0x1725: 0xb5f1, 0x1726: 0x8a2d, 0x1727: 0x0040, 0x1728: 0x8a4d, 0x1729: 0x8a6d, - 0x172a: 0x8a8d, 0x172b: 0x8a6d, 0x172c: 0x8aad, 0x172d: 0x8acd, 0x172e: 0x8aed, 0x172f: 0x0040, + 0x1700: 0x0a08, 0x1701: 0x0c08, 0x1702: 0x0a08, 0x1703: 0x0c08, 0x1704: 0x0c08, 0x1705: 0x0c08, + 0x1706: 0x0a08, 0x1707: 0x0a08, 0x1708: 0x0a08, 0x1709: 0x0c08, 0x170a: 0x0a08, 0x170b: 0x0a08, + 0x170c: 0x0c08, 0x170d: 0x0a08, 0x170e: 0x0c08, 0x170f: 0x0c08, 0x1710: 0x0a08, 0x1711: 0x0c08, + 0x1712: 0x0040, 0x1713: 0x0040, 0x1714: 0x0040, 0x1715: 0x0040, 0x1716: 0x0040, 0x1717: 0x0040, + 0x1718: 0x0040, 0x1719: 0x0818, 0x171a: 0x0818, 0x171b: 0x0818, 0x171c: 0x0818, 0x171d: 0x0040, + 0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0x0040, 0x1721: 0x0040, 0x1722: 0x0040, 0x1723: 0x0040, + 0x1724: 0x0040, 0x1725: 0x0040, 0x1726: 0x0040, 0x1727: 0x0040, 0x1728: 0x0040, 0x1729: 0x0c18, + 0x172a: 0x0c18, 0x172b: 0x0c18, 0x172c: 0x0c18, 0x172d: 0x0a18, 0x172e: 0x0a18, 0x172f: 0x0818, 0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040, - 0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340, + 0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0040, 0x173a: 0x0040, 0x173b: 0x0040, 0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040, // Block 0x5d, offset 0x1740 - 0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08, - 0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808, - 0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08, - 0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908, - 0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08, - 0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808, - 0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040, - 0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18, - 0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818, - 0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040, - 0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040, + 0x1740: 0x3308, 0x1741: 0x3308, 0x1742: 0x3008, 0x1743: 0x3008, 0x1744: 0x0040, 0x1745: 0x0008, + 0x1746: 0x0008, 0x1747: 0x0008, 0x1748: 0x0008, 0x1749: 0x0008, 0x174a: 0x0008, 0x174b: 0x0008, + 0x174c: 0x0008, 0x174d: 0x0040, 0x174e: 0x0040, 0x174f: 0x0008, 0x1750: 0x0008, 0x1751: 0x0040, + 0x1752: 0x0040, 0x1753: 0x0008, 0x1754: 0x0008, 0x1755: 0x0008, 0x1756: 0x0008, 0x1757: 0x0008, + 0x1758: 0x0008, 0x1759: 0x0008, 0x175a: 0x0008, 0x175b: 0x0008, 0x175c: 0x0008, 0x175d: 0x0008, + 0x175e: 0x0008, 0x175f: 0x0008, 0x1760: 0x0008, 0x1761: 0x0008, 0x1762: 0x0008, 0x1763: 0x0008, + 0x1764: 0x0008, 0x1765: 0x0008, 0x1766: 0x0008, 0x1767: 0x0008, 0x1768: 0x0008, 0x1769: 0x0040, + 0x176a: 0x0008, 0x176b: 0x0008, 0x176c: 0x0008, 0x176d: 0x0008, 0x176e: 0x0008, 0x176f: 0x0008, + 0x1770: 0x0008, 0x1771: 0x0040, 0x1772: 0x0008, 0x1773: 0x0008, 0x1774: 0x0040, 0x1775: 0x0008, + 0x1776: 0x0008, 0x1777: 0x0008, 0x1778: 0x0008, 0x1779: 0x0008, 0x177a: 0x0040, 0x177b: 0x3308, + 0x177c: 0x3308, 0x177d: 0x0008, 0x177e: 0x3008, 0x177f: 0x3008, // Block 0x5e, offset 0x1780 - 0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08, - 0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08, - 0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08, - 0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040, - 0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040, - 0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040, - 0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18, - 0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818, - 0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040, + 0x1780: 0x3308, 0x1781: 0x3008, 0x1782: 0x3008, 0x1783: 0x3008, 0x1784: 0x3008, 0x1785: 0x0040, + 0x1786: 0x0040, 0x1787: 0x3008, 0x1788: 0x3008, 0x1789: 0x0040, 0x178a: 0x0040, 0x178b: 0x3008, + 0x178c: 0x3008, 0x178d: 0x3808, 0x178e: 0x0040, 0x178f: 0x0040, 0x1790: 0x0008, 0x1791: 0x0040, + 0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x3008, + 0x1798: 0x0040, 0x1799: 0x0040, 0x179a: 0x0040, 0x179b: 0x0040, 0x179c: 0x0040, 0x179d: 0x0008, + 0x179e: 0x0008, 0x179f: 0x0008, 0x17a0: 0x0008, 0x17a1: 0x0008, 0x17a2: 0x3008, 0x17a3: 0x3008, + 0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x3308, 0x17a7: 0x3308, 0x17a8: 0x3308, 0x17a9: 0x3308, + 0x17aa: 0x3308, 0x17ab: 0x3308, 0x17ac: 0x3308, 0x17ad: 0x0040, 0x17ae: 0x0040, 0x17af: 0x0040, + 0x17b0: 0x3308, 0x17b1: 0x3308, 0x17b2: 0x3308, 0x17b3: 0x3308, 0x17b4: 0x3308, 0x17b5: 0x0040, 0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040, 0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040, // Block 0x5f, offset 0x17c0 - 0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008, - 0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008, - 0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040, - 0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008, + 0x17c0: 0x0008, 0x17c1: 0x0008, 0x17c2: 0x0008, 0x17c3: 0x0008, 0x17c4: 0x0008, 0x17c5: 0x0008, + 0x17c6: 0x0008, 0x17c7: 0x0040, 0x17c8: 0x0040, 0x17c9: 0x0008, 0x17ca: 0x0040, 0x17cb: 0x0040, + 0x17cc: 0x0008, 0x17cd: 0x0008, 0x17ce: 0x0008, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0008, + 0x17d2: 0x0008, 0x17d3: 0x0008, 0x17d4: 0x0040, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0040, 0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008, 0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008, - 0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040, + 0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0008, 0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008, - 0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008, - 0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x3308, - 0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008, + 0x17f0: 0x3008, 0x17f1: 0x3008, 0x17f2: 0x3008, 0x17f3: 0x3008, 0x17f4: 0x3008, 0x17f5: 0x3008, + 0x17f6: 0x0040, 0x17f7: 0x3008, 0x17f8: 0x3008, 0x17f9: 0x0040, 0x17fa: 0x0040, 0x17fb: 0x3308, + 0x17fc: 0x3308, 0x17fd: 0x3808, 0x17fe: 0x3b08, 0x17ff: 0x0008, // Block 0x60, offset 0x1800 - 0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040, - 0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008, - 0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040, - 0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008, - 0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008, - 0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008, - 0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308, - 0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040, - 0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040, - 0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040, - 0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040, + 0x1800: 0x0019, 0x1801: 0x02e9, 0x1802: 0x03d9, 0x1803: 0x02f1, 0x1804: 0x02f9, 0x1805: 0x03f1, + 0x1806: 0x0309, 0x1807: 0x00a9, 0x1808: 0x0311, 0x1809: 0x00b1, 0x180a: 0x0319, 0x180b: 0x0101, + 0x180c: 0x0321, 0x180d: 0x0329, 0x180e: 0x0051, 0x180f: 0x0339, 0x1810: 0x0751, 0x1811: 0x00b9, + 0x1812: 0x0089, 0x1813: 0x0341, 0x1814: 0x0349, 0x1815: 0x0391, 0x1816: 0x00c1, 0x1817: 0x0109, + 0x1818: 0x00c9, 0x1819: 0x04b1, 0x181a: 0x0019, 0x181b: 0x02e9, 0x181c: 0x03d9, 0x181d: 0x02f1, + 0x181e: 0x02f9, 0x181f: 0x03f1, 0x1820: 0x0309, 0x1821: 0x00a9, 0x1822: 0x0311, 0x1823: 0x00b1, + 0x1824: 0x0319, 0x1825: 0x0101, 0x1826: 0x0321, 0x1827: 0x0329, 0x1828: 0x0051, 0x1829: 0x0339, + 0x182a: 0x0751, 0x182b: 0x00b9, 0x182c: 0x0089, 0x182d: 0x0341, 0x182e: 0x0349, 0x182f: 0x0391, + 0x1830: 0x00c1, 0x1831: 0x0109, 0x1832: 0x00c9, 0x1833: 0x04b1, 0x1834: 0x0019, 0x1835: 0x02e9, + 0x1836: 0x03d9, 0x1837: 0x02f1, 0x1838: 0x02f9, 0x1839: 0x03f1, 0x183a: 0x0309, 0x183b: 0x00a9, + 0x183c: 0x0311, 0x183d: 0x00b1, 0x183e: 0x0319, 0x183f: 0x0101, // Block 0x61, offset 0x1840 - 0x1840: 0x0008, 0x1841: 0x0008, 0x1842: 0x0008, 0x1843: 0x0008, 0x1844: 0x0008, 0x1845: 0x0008, - 0x1846: 0x0008, 0x1847: 0x0040, 0x1848: 0x0040, 0x1849: 0x0008, 0x184a: 0x0040, 0x184b: 0x0040, - 0x184c: 0x0008, 0x184d: 0x0008, 0x184e: 0x0008, 0x184f: 0x0008, 0x1850: 0x0008, 0x1851: 0x0008, - 0x1852: 0x0008, 0x1853: 0x0008, 0x1854: 0x0040, 0x1855: 0x0008, 0x1856: 0x0008, 0x1857: 0x0040, - 0x1858: 0x0008, 0x1859: 0x0008, 0x185a: 0x0008, 0x185b: 0x0008, 0x185c: 0x0008, 0x185d: 0x0008, - 0x185e: 0x0008, 0x185f: 0x0008, 0x1860: 0x0008, 0x1861: 0x0008, 0x1862: 0x0008, 0x1863: 0x0008, - 0x1864: 0x0008, 0x1865: 0x0008, 0x1866: 0x0008, 0x1867: 0x0008, 0x1868: 0x0008, 0x1869: 0x0008, - 0x186a: 0x0008, 0x186b: 0x0008, 0x186c: 0x0008, 0x186d: 0x0008, 0x186e: 0x0008, 0x186f: 0x0008, - 0x1870: 0x3008, 0x1871: 0x3008, 0x1872: 0x3008, 0x1873: 0x3008, 0x1874: 0x3008, 0x1875: 0x3008, - 0x1876: 0x0040, 0x1877: 0x3008, 0x1878: 0x3008, 0x1879: 0x0040, 0x187a: 0x0040, 0x187b: 0x3308, - 0x187c: 0x3308, 0x187d: 0x3808, 0x187e: 0x3b08, 0x187f: 0x0008, + 0x1840: 0x0321, 0x1841: 0x0329, 0x1842: 0x0051, 0x1843: 0x0339, 0x1844: 0x0751, 0x1845: 0x00b9, + 0x1846: 0x0089, 0x1847: 0x0341, 0x1848: 0x0349, 0x1849: 0x0391, 0x184a: 0x00c1, 0x184b: 0x0109, + 0x184c: 0x00c9, 0x184d: 0x04b1, 0x184e: 0x0019, 0x184f: 0x02e9, 0x1850: 0x03d9, 0x1851: 0x02f1, + 0x1852: 0x02f9, 0x1853: 0x03f1, 0x1854: 0x0309, 0x1855: 0x0040, 0x1856: 0x0311, 0x1857: 0x00b1, + 0x1858: 0x0319, 0x1859: 0x0101, 0x185a: 0x0321, 0x185b: 0x0329, 0x185c: 0x0051, 0x185d: 0x0339, + 0x185e: 0x0751, 0x185f: 0x00b9, 0x1860: 0x0089, 0x1861: 0x0341, 0x1862: 0x0349, 0x1863: 0x0391, + 0x1864: 0x00c1, 0x1865: 0x0109, 0x1866: 0x00c9, 0x1867: 0x04b1, 0x1868: 0x0019, 0x1869: 0x02e9, + 0x186a: 0x03d9, 0x186b: 0x02f1, 0x186c: 0x02f9, 0x186d: 0x03f1, 0x186e: 0x0309, 0x186f: 0x00a9, + 0x1870: 0x0311, 0x1871: 0x00b1, 0x1872: 0x0319, 0x1873: 0x0101, 0x1874: 0x0321, 0x1875: 0x0329, + 0x1876: 0x0051, 0x1877: 0x0339, 0x1878: 0x0751, 0x1879: 0x00b9, 0x187a: 0x0089, 0x187b: 0x0341, + 0x187c: 0x0349, 0x187d: 0x0391, 0x187e: 0x00c1, 0x187f: 0x0109, // Block 0x62, offset 0x1880 - 0x1880: 0x0039, 0x1881: 0x0ee9, 0x1882: 0x1159, 0x1883: 0x0ef9, 0x1884: 0x0f09, 0x1885: 0x1199, - 0x1886: 0x0f31, 0x1887: 0x0249, 0x1888: 0x0f41, 0x1889: 0x0259, 0x188a: 0x0f51, 0x188b: 0x0359, - 0x188c: 0x0f61, 0x188d: 0x0f71, 0x188e: 0x00d9, 0x188f: 0x0f99, 0x1890: 0x2039, 0x1891: 0x0269, - 0x1892: 0x01d9, 0x1893: 0x0fa9, 0x1894: 0x0fb9, 0x1895: 0x1089, 0x1896: 0x0279, 0x1897: 0x0369, - 0x1898: 0x0289, 0x1899: 0x13d1, 0x189a: 0x0039, 0x189b: 0x0ee9, 0x189c: 0x1159, 0x189d: 0x0ef9, - 0x189e: 0x0f09, 0x189f: 0x1199, 0x18a0: 0x0f31, 0x18a1: 0x0249, 0x18a2: 0x0f41, 0x18a3: 0x0259, - 0x18a4: 0x0f51, 0x18a5: 0x0359, 0x18a6: 0x0f61, 0x18a7: 0x0f71, 0x18a8: 0x00d9, 0x18a9: 0x0f99, - 0x18aa: 0x2039, 0x18ab: 0x0269, 0x18ac: 0x01d9, 0x18ad: 0x0fa9, 0x18ae: 0x0fb9, 0x18af: 0x1089, - 0x18b0: 0x0279, 0x18b1: 0x0369, 0x18b2: 0x0289, 0x18b3: 0x13d1, 0x18b4: 0x0039, 0x18b5: 0x0ee9, - 0x18b6: 0x1159, 0x18b7: 0x0ef9, 0x18b8: 0x0f09, 0x18b9: 0x1199, 0x18ba: 0x0f31, 0x18bb: 0x0249, - 0x18bc: 0x0f41, 0x18bd: 0x0259, 0x18be: 0x0f51, 0x18bf: 0x0359, + 0x1880: 0x00c9, 0x1881: 0x04b1, 0x1882: 0x0019, 0x1883: 0x02e9, 0x1884: 0x03d9, 0x1885: 0x02f1, + 0x1886: 0x02f9, 0x1887: 0x03f1, 0x1888: 0x0309, 0x1889: 0x00a9, 0x188a: 0x0311, 0x188b: 0x00b1, + 0x188c: 0x0319, 0x188d: 0x0101, 0x188e: 0x0321, 0x188f: 0x0329, 0x1890: 0x0051, 0x1891: 0x0339, + 0x1892: 0x0751, 0x1893: 0x00b9, 0x1894: 0x0089, 0x1895: 0x0341, 0x1896: 0x0349, 0x1897: 0x0391, + 0x1898: 0x00c1, 0x1899: 0x0109, 0x189a: 0x00c9, 0x189b: 0x04b1, 0x189c: 0x0019, 0x189d: 0x0040, + 0x189e: 0x03d9, 0x189f: 0x02f1, 0x18a0: 0x0040, 0x18a1: 0x0040, 0x18a2: 0x0309, 0x18a3: 0x0040, + 0x18a4: 0x0040, 0x18a5: 0x00b1, 0x18a6: 0x0319, 0x18a7: 0x0040, 0x18a8: 0x0040, 0x18a9: 0x0329, + 0x18aa: 0x0051, 0x18ab: 0x0339, 0x18ac: 0x0751, 0x18ad: 0x0040, 0x18ae: 0x0089, 0x18af: 0x0341, + 0x18b0: 0x0349, 0x18b1: 0x0391, 0x18b2: 0x00c1, 0x18b3: 0x0109, 0x18b4: 0x00c9, 0x18b5: 0x04b1, + 0x18b6: 0x0019, 0x18b7: 0x02e9, 0x18b8: 0x03d9, 0x18b9: 0x02f1, 0x18ba: 0x0040, 0x18bb: 0x03f1, + 0x18bc: 0x0040, 0x18bd: 0x00a9, 0x18be: 0x0311, 0x18bf: 0x00b1, // Block 0x63, offset 0x18c0 - 0x18c0: 0x0f61, 0x18c1: 0x0f71, 0x18c2: 0x00d9, 0x18c3: 0x0f99, 0x18c4: 0x2039, 0x18c5: 0x0269, - 0x18c6: 0x01d9, 0x18c7: 0x0fa9, 0x18c8: 0x0fb9, 0x18c9: 0x1089, 0x18ca: 0x0279, 0x18cb: 0x0369, - 0x18cc: 0x0289, 0x18cd: 0x13d1, 0x18ce: 0x0039, 0x18cf: 0x0ee9, 0x18d0: 0x1159, 0x18d1: 0x0ef9, - 0x18d2: 0x0f09, 0x18d3: 0x1199, 0x18d4: 0x0f31, 0x18d5: 0x0040, 0x18d6: 0x0f41, 0x18d7: 0x0259, - 0x18d8: 0x0f51, 0x18d9: 0x0359, 0x18da: 0x0f61, 0x18db: 0x0f71, 0x18dc: 0x00d9, 0x18dd: 0x0f99, - 0x18de: 0x2039, 0x18df: 0x0269, 0x18e0: 0x01d9, 0x18e1: 0x0fa9, 0x18e2: 0x0fb9, 0x18e3: 0x1089, - 0x18e4: 0x0279, 0x18e5: 0x0369, 0x18e6: 0x0289, 0x18e7: 0x13d1, 0x18e8: 0x0039, 0x18e9: 0x0ee9, - 0x18ea: 0x1159, 0x18eb: 0x0ef9, 0x18ec: 0x0f09, 0x18ed: 0x1199, 0x18ee: 0x0f31, 0x18ef: 0x0249, - 0x18f0: 0x0f41, 0x18f1: 0x0259, 0x18f2: 0x0f51, 0x18f3: 0x0359, 0x18f4: 0x0f61, 0x18f5: 0x0f71, - 0x18f6: 0x00d9, 0x18f7: 0x0f99, 0x18f8: 0x2039, 0x18f9: 0x0269, 0x18fa: 0x01d9, 0x18fb: 0x0fa9, - 0x18fc: 0x0fb9, 0x18fd: 0x1089, 0x18fe: 0x0279, 0x18ff: 0x0369, + 0x18c0: 0x0319, 0x18c1: 0x0101, 0x18c2: 0x0321, 0x18c3: 0x0329, 0x18c4: 0x0040, 0x18c5: 0x0339, + 0x18c6: 0x0751, 0x18c7: 0x00b9, 0x18c8: 0x0089, 0x18c9: 0x0341, 0x18ca: 0x0349, 0x18cb: 0x0391, + 0x18cc: 0x00c1, 0x18cd: 0x0109, 0x18ce: 0x00c9, 0x18cf: 0x04b1, 0x18d0: 0x0019, 0x18d1: 0x02e9, + 0x18d2: 0x03d9, 0x18d3: 0x02f1, 0x18d4: 0x02f9, 0x18d5: 0x03f1, 0x18d6: 0x0309, 0x18d7: 0x00a9, + 0x18d8: 0x0311, 0x18d9: 0x00b1, 0x18da: 0x0319, 0x18db: 0x0101, 0x18dc: 0x0321, 0x18dd: 0x0329, + 0x18de: 0x0051, 0x18df: 0x0339, 0x18e0: 0x0751, 0x18e1: 0x00b9, 0x18e2: 0x0089, 0x18e3: 0x0341, + 0x18e4: 0x0349, 0x18e5: 0x0391, 0x18e6: 0x00c1, 0x18e7: 0x0109, 0x18e8: 0x00c9, 0x18e9: 0x04b1, + 0x18ea: 0x0019, 0x18eb: 0x02e9, 0x18ec: 0x03d9, 0x18ed: 0x02f1, 0x18ee: 0x02f9, 0x18ef: 0x03f1, + 0x18f0: 0x0309, 0x18f1: 0x00a9, 0x18f2: 0x0311, 0x18f3: 0x00b1, 0x18f4: 0x0319, 0x18f5: 0x0101, + 0x18f6: 0x0321, 0x18f7: 0x0329, 0x18f8: 0x0051, 0x18f9: 0x0339, 0x18fa: 0x0751, 0x18fb: 0x00b9, + 0x18fc: 0x0089, 0x18fd: 0x0341, 0x18fe: 0x0349, 0x18ff: 0x0391, // Block 0x64, offset 0x1900 - 0x1900: 0x0289, 0x1901: 0x13d1, 0x1902: 0x0039, 0x1903: 0x0ee9, 0x1904: 0x1159, 0x1905: 0x0ef9, - 0x1906: 0x0f09, 0x1907: 0x1199, 0x1908: 0x0f31, 0x1909: 0x0249, 0x190a: 0x0f41, 0x190b: 0x0259, - 0x190c: 0x0f51, 0x190d: 0x0359, 0x190e: 0x0f61, 0x190f: 0x0f71, 0x1910: 0x00d9, 0x1911: 0x0f99, - 0x1912: 0x2039, 0x1913: 0x0269, 0x1914: 0x01d9, 0x1915: 0x0fa9, 0x1916: 0x0fb9, 0x1917: 0x1089, - 0x1918: 0x0279, 0x1919: 0x0369, 0x191a: 0x0289, 0x191b: 0x13d1, 0x191c: 0x0039, 0x191d: 0x0040, - 0x191e: 0x1159, 0x191f: 0x0ef9, 0x1920: 0x0040, 0x1921: 0x0040, 0x1922: 0x0f31, 0x1923: 0x0040, - 0x1924: 0x0040, 0x1925: 0x0259, 0x1926: 0x0f51, 0x1927: 0x0040, 0x1928: 0x0040, 0x1929: 0x0f71, - 0x192a: 0x00d9, 0x192b: 0x0f99, 0x192c: 0x2039, 0x192d: 0x0040, 0x192e: 0x01d9, 0x192f: 0x0fa9, - 0x1930: 0x0fb9, 0x1931: 0x1089, 0x1932: 0x0279, 0x1933: 0x0369, 0x1934: 0x0289, 0x1935: 0x13d1, - 0x1936: 0x0039, 0x1937: 0x0ee9, 0x1938: 0x1159, 0x1939: 0x0ef9, 0x193a: 0x0040, 0x193b: 0x1199, - 0x193c: 0x0040, 0x193d: 0x0249, 0x193e: 0x0f41, 0x193f: 0x0259, + 0x1900: 0x00c1, 0x1901: 0x0109, 0x1902: 0x00c9, 0x1903: 0x04b1, 0x1904: 0x0019, 0x1905: 0x02e9, + 0x1906: 0x0040, 0x1907: 0x02f1, 0x1908: 0x02f9, 0x1909: 0x03f1, 0x190a: 0x0309, 0x190b: 0x0040, + 0x190c: 0x0040, 0x190d: 0x00b1, 0x190e: 0x0319, 0x190f: 0x0101, 0x1910: 0x0321, 0x1911: 0x0329, + 0x1912: 0x0051, 0x1913: 0x0339, 0x1914: 0x0751, 0x1915: 0x0040, 0x1916: 0x0089, 0x1917: 0x0341, + 0x1918: 0x0349, 0x1919: 0x0391, 0x191a: 0x00c1, 0x191b: 0x0109, 0x191c: 0x00c9, 0x191d: 0x0040, + 0x191e: 0x0019, 0x191f: 0x02e9, 0x1920: 0x03d9, 0x1921: 0x02f1, 0x1922: 0x02f9, 0x1923: 0x03f1, + 0x1924: 0x0309, 0x1925: 0x00a9, 0x1926: 0x0311, 0x1927: 0x00b1, 0x1928: 0x0319, 0x1929: 0x0101, + 0x192a: 0x0321, 0x192b: 0x0329, 0x192c: 0x0051, 0x192d: 0x0339, 0x192e: 0x0751, 0x192f: 0x00b9, + 0x1930: 0x0089, 0x1931: 0x0341, 0x1932: 0x0349, 0x1933: 0x0391, 0x1934: 0x00c1, 0x1935: 0x0109, + 0x1936: 0x00c9, 0x1937: 0x04b1, 0x1938: 0x0019, 0x1939: 0x02e9, 0x193a: 0x0040, 0x193b: 0x02f1, + 0x193c: 0x02f9, 0x193d: 0x03f1, 0x193e: 0x0309, 0x193f: 0x0040, // Block 0x65, offset 0x1940 - 0x1940: 0x0f51, 0x1941: 0x0359, 0x1942: 0x0f61, 0x1943: 0x0f71, 0x1944: 0x0040, 0x1945: 0x0f99, - 0x1946: 0x2039, 0x1947: 0x0269, 0x1948: 0x01d9, 0x1949: 0x0fa9, 0x194a: 0x0fb9, 0x194b: 0x1089, - 0x194c: 0x0279, 0x194d: 0x0369, 0x194e: 0x0289, 0x194f: 0x13d1, 0x1950: 0x0039, 0x1951: 0x0ee9, - 0x1952: 0x1159, 0x1953: 0x0ef9, 0x1954: 0x0f09, 0x1955: 0x1199, 0x1956: 0x0f31, 0x1957: 0x0249, - 0x1958: 0x0f41, 0x1959: 0x0259, 0x195a: 0x0f51, 0x195b: 0x0359, 0x195c: 0x0f61, 0x195d: 0x0f71, - 0x195e: 0x00d9, 0x195f: 0x0f99, 0x1960: 0x2039, 0x1961: 0x0269, 0x1962: 0x01d9, 0x1963: 0x0fa9, - 0x1964: 0x0fb9, 0x1965: 0x1089, 0x1966: 0x0279, 0x1967: 0x0369, 0x1968: 0x0289, 0x1969: 0x13d1, - 0x196a: 0x0039, 0x196b: 0x0ee9, 0x196c: 0x1159, 0x196d: 0x0ef9, 0x196e: 0x0f09, 0x196f: 0x1199, - 0x1970: 0x0f31, 0x1971: 0x0249, 0x1972: 0x0f41, 0x1973: 0x0259, 0x1974: 0x0f51, 0x1975: 0x0359, - 0x1976: 0x0f61, 0x1977: 0x0f71, 0x1978: 0x00d9, 0x1979: 0x0f99, 0x197a: 0x2039, 0x197b: 0x0269, - 0x197c: 0x01d9, 0x197d: 0x0fa9, 0x197e: 0x0fb9, 0x197f: 0x1089, + 0x1940: 0x0311, 0x1941: 0x00b1, 0x1942: 0x0319, 0x1943: 0x0101, 0x1944: 0x0321, 0x1945: 0x0040, + 0x1946: 0x0051, 0x1947: 0x0040, 0x1948: 0x0040, 0x1949: 0x0040, 0x194a: 0x0089, 0x194b: 0x0341, + 0x194c: 0x0349, 0x194d: 0x0391, 0x194e: 0x00c1, 0x194f: 0x0109, 0x1950: 0x00c9, 0x1951: 0x0040, + 0x1952: 0x0019, 0x1953: 0x02e9, 0x1954: 0x03d9, 0x1955: 0x02f1, 0x1956: 0x02f9, 0x1957: 0x03f1, + 0x1958: 0x0309, 0x1959: 0x00a9, 0x195a: 0x0311, 0x195b: 0x00b1, 0x195c: 0x0319, 0x195d: 0x0101, + 0x195e: 0x0321, 0x195f: 0x0329, 0x1960: 0x0051, 0x1961: 0x0339, 0x1962: 0x0751, 0x1963: 0x00b9, + 0x1964: 0x0089, 0x1965: 0x0341, 0x1966: 0x0349, 0x1967: 0x0391, 0x1968: 0x00c1, 0x1969: 0x0109, + 0x196a: 0x00c9, 0x196b: 0x04b1, 0x196c: 0x0019, 0x196d: 0x02e9, 0x196e: 0x03d9, 0x196f: 0x02f1, + 0x1970: 0x02f9, 0x1971: 0x03f1, 0x1972: 0x0309, 0x1973: 0x00a9, 0x1974: 0x0311, 0x1975: 0x00b1, + 0x1976: 0x0319, 0x1977: 0x0101, 0x1978: 0x0321, 0x1979: 0x0329, 0x197a: 0x0051, 0x197b: 0x0339, + 0x197c: 0x0751, 0x197d: 0x00b9, 0x197e: 0x0089, 0x197f: 0x0341, // Block 0x66, offset 0x1980 - 0x1980: 0x0279, 0x1981: 0x0369, 0x1982: 0x0289, 0x1983: 0x13d1, 0x1984: 0x0039, 0x1985: 0x0ee9, - 0x1986: 0x0040, 0x1987: 0x0ef9, 0x1988: 0x0f09, 0x1989: 0x1199, 0x198a: 0x0f31, 0x198b: 0x0040, - 0x198c: 0x0040, 0x198d: 0x0259, 0x198e: 0x0f51, 0x198f: 0x0359, 0x1990: 0x0f61, 0x1991: 0x0f71, - 0x1992: 0x00d9, 0x1993: 0x0f99, 0x1994: 0x2039, 0x1995: 0x0040, 0x1996: 0x01d9, 0x1997: 0x0fa9, - 0x1998: 0x0fb9, 0x1999: 0x1089, 0x199a: 0x0279, 0x199b: 0x0369, 0x199c: 0x0289, 0x199d: 0x0040, - 0x199e: 0x0039, 0x199f: 0x0ee9, 0x19a0: 0x1159, 0x19a1: 0x0ef9, 0x19a2: 0x0f09, 0x19a3: 0x1199, - 0x19a4: 0x0f31, 0x19a5: 0x0249, 0x19a6: 0x0f41, 0x19a7: 0x0259, 0x19a8: 0x0f51, 0x19a9: 0x0359, - 0x19aa: 0x0f61, 0x19ab: 0x0f71, 0x19ac: 0x00d9, 0x19ad: 0x0f99, 0x19ae: 0x2039, 0x19af: 0x0269, - 0x19b0: 0x01d9, 0x19b1: 0x0fa9, 0x19b2: 0x0fb9, 0x19b3: 0x1089, 0x19b4: 0x0279, 0x19b5: 0x0369, - 0x19b6: 0x0289, 0x19b7: 0x13d1, 0x19b8: 0x0039, 0x19b9: 0x0ee9, 0x19ba: 0x0040, 0x19bb: 0x0ef9, - 0x19bc: 0x0f09, 0x19bd: 0x1199, 0x19be: 0x0f31, 0x19bf: 0x0040, + 0x1980: 0x0349, 0x1981: 0x0391, 0x1982: 0x00c1, 0x1983: 0x0109, 0x1984: 0x00c9, 0x1985: 0x04b1, + 0x1986: 0x0019, 0x1987: 0x02e9, 0x1988: 0x03d9, 0x1989: 0x02f1, 0x198a: 0x02f9, 0x198b: 0x03f1, + 0x198c: 0x0309, 0x198d: 0x00a9, 0x198e: 0x0311, 0x198f: 0x00b1, 0x1990: 0x0319, 0x1991: 0x0101, + 0x1992: 0x0321, 0x1993: 0x0329, 0x1994: 0x0051, 0x1995: 0x0339, 0x1996: 0x0751, 0x1997: 0x00b9, + 0x1998: 0x0089, 0x1999: 0x0341, 0x199a: 0x0349, 0x199b: 0x0391, 0x199c: 0x00c1, 0x199d: 0x0109, + 0x199e: 0x00c9, 0x199f: 0x04b1, 0x19a0: 0x0019, 0x19a1: 0x02e9, 0x19a2: 0x03d9, 0x19a3: 0x02f1, + 0x19a4: 0x02f9, 0x19a5: 0x03f1, 0x19a6: 0x0309, 0x19a7: 0x00a9, 0x19a8: 0x0311, 0x19a9: 0x00b1, + 0x19aa: 0x0319, 0x19ab: 0x0101, 0x19ac: 0x0321, 0x19ad: 0x0329, 0x19ae: 0x0051, 0x19af: 0x0339, + 0x19b0: 0x0751, 0x19b1: 0x00b9, 0x19b2: 0x0089, 0x19b3: 0x0341, 0x19b4: 0x0349, 0x19b5: 0x0391, + 0x19b6: 0x00c1, 0x19b7: 0x0109, 0x19b8: 0x00c9, 0x19b9: 0x04b1, 0x19ba: 0x0019, 0x19bb: 0x02e9, + 0x19bc: 0x03d9, 0x19bd: 0x02f1, 0x19be: 0x02f9, 0x19bf: 0x03f1, // Block 0x67, offset 0x19c0 - 0x19c0: 0x0f41, 0x19c1: 0x0259, 0x19c2: 0x0f51, 0x19c3: 0x0359, 0x19c4: 0x0f61, 0x19c5: 0x0040, - 0x19c6: 0x00d9, 0x19c7: 0x0040, 0x19c8: 0x0040, 0x19c9: 0x0040, 0x19ca: 0x01d9, 0x19cb: 0x0fa9, - 0x19cc: 0x0fb9, 0x19cd: 0x1089, 0x19ce: 0x0279, 0x19cf: 0x0369, 0x19d0: 0x0289, 0x19d1: 0x0040, - 0x19d2: 0x0039, 0x19d3: 0x0ee9, 0x19d4: 0x1159, 0x19d5: 0x0ef9, 0x19d6: 0x0f09, 0x19d7: 0x1199, - 0x19d8: 0x0f31, 0x19d9: 0x0249, 0x19da: 0x0f41, 0x19db: 0x0259, 0x19dc: 0x0f51, 0x19dd: 0x0359, - 0x19de: 0x0f61, 0x19df: 0x0f71, 0x19e0: 0x00d9, 0x19e1: 0x0f99, 0x19e2: 0x2039, 0x19e3: 0x0269, - 0x19e4: 0x01d9, 0x19e5: 0x0fa9, 0x19e6: 0x0fb9, 0x19e7: 0x1089, 0x19e8: 0x0279, 0x19e9: 0x0369, - 0x19ea: 0x0289, 0x19eb: 0x13d1, 0x19ec: 0x0039, 0x19ed: 0x0ee9, 0x19ee: 0x1159, 0x19ef: 0x0ef9, - 0x19f0: 0x0f09, 0x19f1: 0x1199, 0x19f2: 0x0f31, 0x19f3: 0x0249, 0x19f4: 0x0f41, 0x19f5: 0x0259, - 0x19f6: 0x0f51, 0x19f7: 0x0359, 0x19f8: 0x0f61, 0x19f9: 0x0f71, 0x19fa: 0x00d9, 0x19fb: 0x0f99, - 0x19fc: 0x2039, 0x19fd: 0x0269, 0x19fe: 0x01d9, 0x19ff: 0x0fa9, + 0x19c0: 0x0309, 0x19c1: 0x00a9, 0x19c2: 0x0311, 0x19c3: 0x00b1, 0x19c4: 0x0319, 0x19c5: 0x0101, + 0x19c6: 0x0321, 0x19c7: 0x0329, 0x19c8: 0x0051, 0x19c9: 0x0339, 0x19ca: 0x0751, 0x19cb: 0x00b9, + 0x19cc: 0x0089, 0x19cd: 0x0341, 0x19ce: 0x0349, 0x19cf: 0x0391, 0x19d0: 0x00c1, 0x19d1: 0x0109, + 0x19d2: 0x00c9, 0x19d3: 0x04b1, 0x19d4: 0x0019, 0x19d5: 0x02e9, 0x19d6: 0x03d9, 0x19d7: 0x02f1, + 0x19d8: 0x02f9, 0x19d9: 0x03f1, 0x19da: 0x0309, 0x19db: 0x00a9, 0x19dc: 0x0311, 0x19dd: 0x00b1, + 0x19de: 0x0319, 0x19df: 0x0101, 0x19e0: 0x0321, 0x19e1: 0x0329, 0x19e2: 0x0051, 0x19e3: 0x0339, + 0x19e4: 0x0751, 0x19e5: 0x00b9, 0x19e6: 0x0089, 0x19e7: 0x0341, 0x19e8: 0x0349, 0x19e9: 0x0391, + 0x19ea: 0x00c1, 0x19eb: 0x0109, 0x19ec: 0x00c9, 0x19ed: 0x04b1, 0x19ee: 0x0019, 0x19ef: 0x02e9, + 0x19f0: 0x03d9, 0x19f1: 0x02f1, 0x19f2: 0x02f9, 0x19f3: 0x03f1, 0x19f4: 0x0309, 0x19f5: 0x00a9, + 0x19f6: 0x0311, 0x19f7: 0x00b1, 0x19f8: 0x0319, 0x19f9: 0x0101, 0x19fa: 0x0321, 0x19fb: 0x0329, + 0x19fc: 0x0051, 0x19fd: 0x0339, 0x19fe: 0x0751, 0x19ff: 0x00b9, // Block 0x68, offset 0x1a00 - 0x1a00: 0x0fb9, 0x1a01: 0x1089, 0x1a02: 0x0279, 0x1a03: 0x0369, 0x1a04: 0x0289, 0x1a05: 0x13d1, - 0x1a06: 0x0039, 0x1a07: 0x0ee9, 0x1a08: 0x1159, 0x1a09: 0x0ef9, 0x1a0a: 0x0f09, 0x1a0b: 0x1199, - 0x1a0c: 0x0f31, 0x1a0d: 0x0249, 0x1a0e: 0x0f41, 0x1a0f: 0x0259, 0x1a10: 0x0f51, 0x1a11: 0x0359, - 0x1a12: 0x0f61, 0x1a13: 0x0f71, 0x1a14: 0x00d9, 0x1a15: 0x0f99, 0x1a16: 0x2039, 0x1a17: 0x0269, - 0x1a18: 0x01d9, 0x1a19: 0x0fa9, 0x1a1a: 0x0fb9, 0x1a1b: 0x1089, 0x1a1c: 0x0279, 0x1a1d: 0x0369, - 0x1a1e: 0x0289, 0x1a1f: 0x13d1, 0x1a20: 0x0039, 0x1a21: 0x0ee9, 0x1a22: 0x1159, 0x1a23: 0x0ef9, - 0x1a24: 0x0f09, 0x1a25: 0x1199, 0x1a26: 0x0f31, 0x1a27: 0x0249, 0x1a28: 0x0f41, 0x1a29: 0x0259, - 0x1a2a: 0x0f51, 0x1a2b: 0x0359, 0x1a2c: 0x0f61, 0x1a2d: 0x0f71, 0x1a2e: 0x00d9, 0x1a2f: 0x0f99, - 0x1a30: 0x2039, 0x1a31: 0x0269, 0x1a32: 0x01d9, 0x1a33: 0x0fa9, 0x1a34: 0x0fb9, 0x1a35: 0x1089, - 0x1a36: 0x0279, 0x1a37: 0x0369, 0x1a38: 0x0289, 0x1a39: 0x13d1, 0x1a3a: 0x0039, 0x1a3b: 0x0ee9, - 0x1a3c: 0x1159, 0x1a3d: 0x0ef9, 0x1a3e: 0x0f09, 0x1a3f: 0x1199, + 0x1a00: 0x0089, 0x1a01: 0x0341, 0x1a02: 0x0349, 0x1a03: 0x0391, 0x1a04: 0x00c1, 0x1a05: 0x0109, + 0x1a06: 0x00c9, 0x1a07: 0x04b1, 0x1a08: 0x0019, 0x1a09: 0x02e9, 0x1a0a: 0x03d9, 0x1a0b: 0x02f1, + 0x1a0c: 0x02f9, 0x1a0d: 0x03f1, 0x1a0e: 0x0309, 0x1a0f: 0x00a9, 0x1a10: 0x0311, 0x1a11: 0x00b1, + 0x1a12: 0x0319, 0x1a13: 0x0101, 0x1a14: 0x0321, 0x1a15: 0x0329, 0x1a16: 0x0051, 0x1a17: 0x0339, + 0x1a18: 0x0751, 0x1a19: 0x00b9, 0x1a1a: 0x0089, 0x1a1b: 0x0341, 0x1a1c: 0x0349, 0x1a1d: 0x0391, + 0x1a1e: 0x00c1, 0x1a1f: 0x0109, 0x1a20: 0x00c9, 0x1a21: 0x04b1, 0x1a22: 0x0019, 0x1a23: 0x02e9, + 0x1a24: 0x03d9, 0x1a25: 0x02f1, 0x1a26: 0x02f9, 0x1a27: 0x03f1, 0x1a28: 0x0309, 0x1a29: 0x00a9, + 0x1a2a: 0x0311, 0x1a2b: 0x00b1, 0x1a2c: 0x0319, 0x1a2d: 0x0101, 0x1a2e: 0x0321, 0x1a2f: 0x0329, + 0x1a30: 0x0051, 0x1a31: 0x0339, 0x1a32: 0x0751, 0x1a33: 0x00b9, 0x1a34: 0x0089, 0x1a35: 0x0341, + 0x1a36: 0x0349, 0x1a37: 0x0391, 0x1a38: 0x00c1, 0x1a39: 0x0109, 0x1a3a: 0x00c9, 0x1a3b: 0x04b1, + 0x1a3c: 0x0019, 0x1a3d: 0x02e9, 0x1a3e: 0x03d9, 0x1a3f: 0x02f1, // Block 0x69, offset 0x1a40 - 0x1a40: 0x0f31, 0x1a41: 0x0249, 0x1a42: 0x0f41, 0x1a43: 0x0259, 0x1a44: 0x0f51, 0x1a45: 0x0359, - 0x1a46: 0x0f61, 0x1a47: 0x0f71, 0x1a48: 0x00d9, 0x1a49: 0x0f99, 0x1a4a: 0x2039, 0x1a4b: 0x0269, - 0x1a4c: 0x01d9, 0x1a4d: 0x0fa9, 0x1a4e: 0x0fb9, 0x1a4f: 0x1089, 0x1a50: 0x0279, 0x1a51: 0x0369, - 0x1a52: 0x0289, 0x1a53: 0x13d1, 0x1a54: 0x0039, 0x1a55: 0x0ee9, 0x1a56: 0x1159, 0x1a57: 0x0ef9, - 0x1a58: 0x0f09, 0x1a59: 0x1199, 0x1a5a: 0x0f31, 0x1a5b: 0x0249, 0x1a5c: 0x0f41, 0x1a5d: 0x0259, - 0x1a5e: 0x0f51, 0x1a5f: 0x0359, 0x1a60: 0x0f61, 0x1a61: 0x0f71, 0x1a62: 0x00d9, 0x1a63: 0x0f99, - 0x1a64: 0x2039, 0x1a65: 0x0269, 0x1a66: 0x01d9, 0x1a67: 0x0fa9, 0x1a68: 0x0fb9, 0x1a69: 0x1089, - 0x1a6a: 0x0279, 0x1a6b: 0x0369, 0x1a6c: 0x0289, 0x1a6d: 0x13d1, 0x1a6e: 0x0039, 0x1a6f: 0x0ee9, - 0x1a70: 0x1159, 0x1a71: 0x0ef9, 0x1a72: 0x0f09, 0x1a73: 0x1199, 0x1a74: 0x0f31, 0x1a75: 0x0249, - 0x1a76: 0x0f41, 0x1a77: 0x0259, 0x1a78: 0x0f51, 0x1a79: 0x0359, 0x1a7a: 0x0f61, 0x1a7b: 0x0f71, - 0x1a7c: 0x00d9, 0x1a7d: 0x0f99, 0x1a7e: 0x2039, 0x1a7f: 0x0269, + 0x1a40: 0x02f9, 0x1a41: 0x03f1, 0x1a42: 0x0309, 0x1a43: 0x00a9, 0x1a44: 0x0311, 0x1a45: 0x00b1, + 0x1a46: 0x0319, 0x1a47: 0x0101, 0x1a48: 0x0321, 0x1a49: 0x0329, 0x1a4a: 0x0051, 0x1a4b: 0x0339, + 0x1a4c: 0x0751, 0x1a4d: 0x00b9, 0x1a4e: 0x0089, 0x1a4f: 0x0341, 0x1a50: 0x0349, 0x1a51: 0x0391, + 0x1a52: 0x00c1, 0x1a53: 0x0109, 0x1a54: 0x00c9, 0x1a55: 0x04b1, 0x1a56: 0x0019, 0x1a57: 0x02e9, + 0x1a58: 0x03d9, 0x1a59: 0x02f1, 0x1a5a: 0x02f9, 0x1a5b: 0x03f1, 0x1a5c: 0x0309, 0x1a5d: 0x00a9, + 0x1a5e: 0x0311, 0x1a5f: 0x00b1, 0x1a60: 0x0319, 0x1a61: 0x0101, 0x1a62: 0x0321, 0x1a63: 0x0329, + 0x1a64: 0x0051, 0x1a65: 0x0339, 0x1a66: 0x0751, 0x1a67: 0x00b9, 0x1a68: 0x0089, 0x1a69: 0x0341, + 0x1a6a: 0x0349, 0x1a6b: 0x0391, 0x1a6c: 0x00c1, 0x1a6d: 0x0109, 0x1a6e: 0x00c9, 0x1a6f: 0x04b1, + 0x1a70: 0x0019, 0x1a71: 0x02e9, 0x1a72: 0x03d9, 0x1a73: 0x02f1, 0x1a74: 0x02f9, 0x1a75: 0x03f1, + 0x1a76: 0x0309, 0x1a77: 0x00a9, 0x1a78: 0x0311, 0x1a79: 0x00b1, 0x1a7a: 0x0319, 0x1a7b: 0x0101, + 0x1a7c: 0x0321, 0x1a7d: 0x0329, 0x1a7e: 0x0051, 0x1a7f: 0x0339, // Block 0x6a, offset 0x1a80 - 0x1a80: 0x01d9, 0x1a81: 0x0fa9, 0x1a82: 0x0fb9, 0x1a83: 0x1089, 0x1a84: 0x0279, 0x1a85: 0x0369, - 0x1a86: 0x0289, 0x1a87: 0x13d1, 0x1a88: 0x0039, 0x1a89: 0x0ee9, 0x1a8a: 0x1159, 0x1a8b: 0x0ef9, - 0x1a8c: 0x0f09, 0x1a8d: 0x1199, 0x1a8e: 0x0f31, 0x1a8f: 0x0249, 0x1a90: 0x0f41, 0x1a91: 0x0259, - 0x1a92: 0x0f51, 0x1a93: 0x0359, 0x1a94: 0x0f61, 0x1a95: 0x0f71, 0x1a96: 0x00d9, 0x1a97: 0x0f99, - 0x1a98: 0x2039, 0x1a99: 0x0269, 0x1a9a: 0x01d9, 0x1a9b: 0x0fa9, 0x1a9c: 0x0fb9, 0x1a9d: 0x1089, - 0x1a9e: 0x0279, 0x1a9f: 0x0369, 0x1aa0: 0x0289, 0x1aa1: 0x13d1, 0x1aa2: 0x0039, 0x1aa3: 0x0ee9, - 0x1aa4: 0x1159, 0x1aa5: 0x0ef9, 0x1aa6: 0x0f09, 0x1aa7: 0x1199, 0x1aa8: 0x0f31, 0x1aa9: 0x0249, - 0x1aaa: 0x0f41, 0x1aab: 0x0259, 0x1aac: 0x0f51, 0x1aad: 0x0359, 0x1aae: 0x0f61, 0x1aaf: 0x0f71, - 0x1ab0: 0x00d9, 0x1ab1: 0x0f99, 0x1ab2: 0x2039, 0x1ab3: 0x0269, 0x1ab4: 0x01d9, 0x1ab5: 0x0fa9, - 0x1ab6: 0x0fb9, 0x1ab7: 0x1089, 0x1ab8: 0x0279, 0x1ab9: 0x0369, 0x1aba: 0x0289, 0x1abb: 0x13d1, - 0x1abc: 0x0039, 0x1abd: 0x0ee9, 0x1abe: 0x1159, 0x1abf: 0x0ef9, + 0x1a80: 0x0751, 0x1a81: 0x00b9, 0x1a82: 0x0089, 0x1a83: 0x0341, 0x1a84: 0x0349, 0x1a85: 0x0391, + 0x1a86: 0x00c1, 0x1a87: 0x0109, 0x1a88: 0x00c9, 0x1a89: 0x04b1, 0x1a8a: 0x0019, 0x1a8b: 0x02e9, + 0x1a8c: 0x03d9, 0x1a8d: 0x02f1, 0x1a8e: 0x02f9, 0x1a8f: 0x03f1, 0x1a90: 0x0309, 0x1a91: 0x00a9, + 0x1a92: 0x0311, 0x1a93: 0x00b1, 0x1a94: 0x0319, 0x1a95: 0x0101, 0x1a96: 0x0321, 0x1a97: 0x0329, + 0x1a98: 0x0051, 0x1a99: 0x0339, 0x1a9a: 0x0751, 0x1a9b: 0x00b9, 0x1a9c: 0x0089, 0x1a9d: 0x0341, + 0x1a9e: 0x0349, 0x1a9f: 0x0391, 0x1aa0: 0x00c1, 0x1aa1: 0x0109, 0x1aa2: 0x00c9, 0x1aa3: 0x04b1, + 0x1aa4: 0x2279, 0x1aa5: 0x2281, 0x1aa6: 0x0040, 0x1aa7: 0x0040, 0x1aa8: 0x2289, 0x1aa9: 0x0399, + 0x1aaa: 0x03a1, 0x1aab: 0x03a9, 0x1aac: 0x2291, 0x1aad: 0x2299, 0x1aae: 0x22a1, 0x1aaf: 0x04d1, + 0x1ab0: 0x05f9, 0x1ab1: 0x22a9, 0x1ab2: 0x22b1, 0x1ab3: 0x22b9, 0x1ab4: 0x22c1, 0x1ab5: 0x22c9, + 0x1ab6: 0x22d1, 0x1ab7: 0x0799, 0x1ab8: 0x03c1, 0x1ab9: 0x04d1, 0x1aba: 0x22d9, 0x1abb: 0x22e1, + 0x1abc: 0x22e9, 0x1abd: 0x03b1, 0x1abe: 0x03b9, 0x1abf: 0x22f1, // Block 0x6b, offset 0x1ac0 - 0x1ac0: 0x0f09, 0x1ac1: 0x1199, 0x1ac2: 0x0f31, 0x1ac3: 0x0249, 0x1ac4: 0x0f41, 0x1ac5: 0x0259, - 0x1ac6: 0x0f51, 0x1ac7: 0x0359, 0x1ac8: 0x0f61, 0x1ac9: 0x0f71, 0x1aca: 0x00d9, 0x1acb: 0x0f99, - 0x1acc: 0x2039, 0x1acd: 0x0269, 0x1ace: 0x01d9, 0x1acf: 0x0fa9, 0x1ad0: 0x0fb9, 0x1ad1: 0x1089, - 0x1ad2: 0x0279, 0x1ad3: 0x0369, 0x1ad4: 0x0289, 0x1ad5: 0x13d1, 0x1ad6: 0x0039, 0x1ad7: 0x0ee9, - 0x1ad8: 0x1159, 0x1ad9: 0x0ef9, 0x1ada: 0x0f09, 0x1adb: 0x1199, 0x1adc: 0x0f31, 0x1add: 0x0249, - 0x1ade: 0x0f41, 0x1adf: 0x0259, 0x1ae0: 0x0f51, 0x1ae1: 0x0359, 0x1ae2: 0x0f61, 0x1ae3: 0x0f71, - 0x1ae4: 0x00d9, 0x1ae5: 0x0f99, 0x1ae6: 0x2039, 0x1ae7: 0x0269, 0x1ae8: 0x01d9, 0x1ae9: 0x0fa9, - 0x1aea: 0x0fb9, 0x1aeb: 0x1089, 0x1aec: 0x0279, 0x1aed: 0x0369, 0x1aee: 0x0289, 0x1aef: 0x13d1, - 0x1af0: 0x0039, 0x1af1: 0x0ee9, 0x1af2: 0x1159, 0x1af3: 0x0ef9, 0x1af4: 0x0f09, 0x1af5: 0x1199, - 0x1af6: 0x0f31, 0x1af7: 0x0249, 0x1af8: 0x0f41, 0x1af9: 0x0259, 0x1afa: 0x0f51, 0x1afb: 0x0359, - 0x1afc: 0x0f61, 0x1afd: 0x0f71, 0x1afe: 0x00d9, 0x1aff: 0x0f99, + 0x1ac0: 0x0769, 0x1ac1: 0x22f9, 0x1ac2: 0x2289, 0x1ac3: 0x0399, 0x1ac4: 0x03a1, 0x1ac5: 0x03a9, + 0x1ac6: 0x2291, 0x1ac7: 0x2299, 0x1ac8: 0x22a1, 0x1ac9: 0x04d1, 0x1aca: 0x05f9, 0x1acb: 0x22a9, + 0x1acc: 0x22b1, 0x1acd: 0x22b9, 0x1ace: 0x22c1, 0x1acf: 0x22c9, 0x1ad0: 0x22d1, 0x1ad1: 0x0799, + 0x1ad2: 0x03c1, 0x1ad3: 0x22d9, 0x1ad4: 0x22d9, 0x1ad5: 0x22e1, 0x1ad6: 0x22e9, 0x1ad7: 0x03b1, + 0x1ad8: 0x03b9, 0x1ad9: 0x22f1, 0x1ada: 0x0769, 0x1adb: 0x2301, 0x1adc: 0x2291, 0x1add: 0x04d1, + 0x1ade: 0x22a9, 0x1adf: 0x03b1, 0x1ae0: 0x03c1, 0x1ae1: 0x0799, 0x1ae2: 0x2289, 0x1ae3: 0x0399, + 0x1ae4: 0x03a1, 0x1ae5: 0x03a9, 0x1ae6: 0x2291, 0x1ae7: 0x2299, 0x1ae8: 0x22a1, 0x1ae9: 0x04d1, + 0x1aea: 0x05f9, 0x1aeb: 0x22a9, 0x1aec: 0x22b1, 0x1aed: 0x22b9, 0x1aee: 0x22c1, 0x1aef: 0x22c9, + 0x1af0: 0x22d1, 0x1af1: 0x0799, 0x1af2: 0x03c1, 0x1af3: 0x04d1, 0x1af4: 0x22d9, 0x1af5: 0x22e1, + 0x1af6: 0x22e9, 0x1af7: 0x03b1, 0x1af8: 0x03b9, 0x1af9: 0x22f1, 0x1afa: 0x0769, 0x1afb: 0x22f9, + 0x1afc: 0x2289, 0x1afd: 0x0399, 0x1afe: 0x03a1, 0x1aff: 0x03a9, // Block 0x6c, offset 0x1b00 - 0x1b00: 0x2039, 0x1b01: 0x0269, 0x1b02: 0x01d9, 0x1b03: 0x0fa9, 0x1b04: 0x0fb9, 0x1b05: 0x1089, - 0x1b06: 0x0279, 0x1b07: 0x0369, 0x1b08: 0x0289, 0x1b09: 0x13d1, 0x1b0a: 0x0039, 0x1b0b: 0x0ee9, - 0x1b0c: 0x1159, 0x1b0d: 0x0ef9, 0x1b0e: 0x0f09, 0x1b0f: 0x1199, 0x1b10: 0x0f31, 0x1b11: 0x0249, - 0x1b12: 0x0f41, 0x1b13: 0x0259, 0x1b14: 0x0f51, 0x1b15: 0x0359, 0x1b16: 0x0f61, 0x1b17: 0x0f71, - 0x1b18: 0x00d9, 0x1b19: 0x0f99, 0x1b1a: 0x2039, 0x1b1b: 0x0269, 0x1b1c: 0x01d9, 0x1b1d: 0x0fa9, - 0x1b1e: 0x0fb9, 0x1b1f: 0x1089, 0x1b20: 0x0279, 0x1b21: 0x0369, 0x1b22: 0x0289, 0x1b23: 0x13d1, - 0x1b24: 0xbad1, 0x1b25: 0xbae9, 0x1b26: 0x0040, 0x1b27: 0x0040, 0x1b28: 0xbb01, 0x1b29: 0x1099, - 0x1b2a: 0x10b1, 0x1b2b: 0x10c9, 0x1b2c: 0xbb19, 0x1b2d: 0xbb31, 0x1b2e: 0xbb49, 0x1b2f: 0x1429, - 0x1b30: 0x1a31, 0x1b31: 0xbb61, 0x1b32: 0xbb79, 0x1b33: 0xbb91, 0x1b34: 0xbba9, 0x1b35: 0xbbc1, - 0x1b36: 0xbbd9, 0x1b37: 0x2109, 0x1b38: 0x1111, 0x1b39: 0x1429, 0x1b3a: 0xbbf1, 0x1b3b: 0xbc09, - 0x1b3c: 0xbc21, 0x1b3d: 0x10e1, 0x1b3e: 0x10f9, 0x1b3f: 0xbc39, + 0x1b00: 0x2291, 0x1b01: 0x2299, 0x1b02: 0x22a1, 0x1b03: 0x04d1, 0x1b04: 0x05f9, 0x1b05: 0x22a9, + 0x1b06: 0x22b1, 0x1b07: 0x22b9, 0x1b08: 0x22c1, 0x1b09: 0x22c9, 0x1b0a: 0x22d1, 0x1b0b: 0x0799, + 0x1b0c: 0x03c1, 0x1b0d: 0x22d9, 0x1b0e: 0x22d9, 0x1b0f: 0x22e1, 0x1b10: 0x22e9, 0x1b11: 0x03b1, + 0x1b12: 0x03b9, 0x1b13: 0x22f1, 0x1b14: 0x0769, 0x1b15: 0x2301, 0x1b16: 0x2291, 0x1b17: 0x04d1, + 0x1b18: 0x22a9, 0x1b19: 0x03b1, 0x1b1a: 0x03c1, 0x1b1b: 0x0799, 0x1b1c: 0x2289, 0x1b1d: 0x0399, + 0x1b1e: 0x03a1, 0x1b1f: 0x03a9, 0x1b20: 0x2291, 0x1b21: 0x2299, 0x1b22: 0x22a1, 0x1b23: 0x04d1, + 0x1b24: 0x05f9, 0x1b25: 0x22a9, 0x1b26: 0x22b1, 0x1b27: 0x22b9, 0x1b28: 0x22c1, 0x1b29: 0x22c9, + 0x1b2a: 0x22d1, 0x1b2b: 0x0799, 0x1b2c: 0x03c1, 0x1b2d: 0x04d1, 0x1b2e: 0x22d9, 0x1b2f: 0x22e1, + 0x1b30: 0x22e9, 0x1b31: 0x03b1, 0x1b32: 0x03b9, 0x1b33: 0x22f1, 0x1b34: 0x0769, 0x1b35: 0x22f9, + 0x1b36: 0x2289, 0x1b37: 0x0399, 0x1b38: 0x03a1, 0x1b39: 0x03a9, 0x1b3a: 0x2291, 0x1b3b: 0x2299, + 0x1b3c: 0x22a1, 0x1b3d: 0x04d1, 0x1b3e: 0x05f9, 0x1b3f: 0x22a9, // Block 0x6d, offset 0x1b40 - 0x1b40: 0x2079, 0x1b41: 0xbc51, 0x1b42: 0xbb01, 0x1b43: 0x1099, 0x1b44: 0x10b1, 0x1b45: 0x10c9, - 0x1b46: 0xbb19, 0x1b47: 0xbb31, 0x1b48: 0xbb49, 0x1b49: 0x1429, 0x1b4a: 0x1a31, 0x1b4b: 0xbb61, - 0x1b4c: 0xbb79, 0x1b4d: 0xbb91, 0x1b4e: 0xbba9, 0x1b4f: 0xbbc1, 0x1b50: 0xbbd9, 0x1b51: 0x2109, - 0x1b52: 0x1111, 0x1b53: 0xbbf1, 0x1b54: 0xbbf1, 0x1b55: 0xbc09, 0x1b56: 0xbc21, 0x1b57: 0x10e1, - 0x1b58: 0x10f9, 0x1b59: 0xbc39, 0x1b5a: 0x2079, 0x1b5b: 0xbc71, 0x1b5c: 0xbb19, 0x1b5d: 0x1429, - 0x1b5e: 0xbb61, 0x1b5f: 0x10e1, 0x1b60: 0x1111, 0x1b61: 0x2109, 0x1b62: 0xbb01, 0x1b63: 0x1099, - 0x1b64: 0x10b1, 0x1b65: 0x10c9, 0x1b66: 0xbb19, 0x1b67: 0xbb31, 0x1b68: 0xbb49, 0x1b69: 0x1429, - 0x1b6a: 0x1a31, 0x1b6b: 0xbb61, 0x1b6c: 0xbb79, 0x1b6d: 0xbb91, 0x1b6e: 0xbba9, 0x1b6f: 0xbbc1, - 0x1b70: 0xbbd9, 0x1b71: 0x2109, 0x1b72: 0x1111, 0x1b73: 0x1429, 0x1b74: 0xbbf1, 0x1b75: 0xbc09, - 0x1b76: 0xbc21, 0x1b77: 0x10e1, 0x1b78: 0x10f9, 0x1b79: 0xbc39, 0x1b7a: 0x2079, 0x1b7b: 0xbc51, - 0x1b7c: 0xbb01, 0x1b7d: 0x1099, 0x1b7e: 0x10b1, 0x1b7f: 0x10c9, + 0x1b40: 0x22b1, 0x1b41: 0x22b9, 0x1b42: 0x22c1, 0x1b43: 0x22c9, 0x1b44: 0x22d1, 0x1b45: 0x0799, + 0x1b46: 0x03c1, 0x1b47: 0x22d9, 0x1b48: 0x22d9, 0x1b49: 0x22e1, 0x1b4a: 0x22e9, 0x1b4b: 0x03b1, + 0x1b4c: 0x03b9, 0x1b4d: 0x22f1, 0x1b4e: 0x0769, 0x1b4f: 0x2301, 0x1b50: 0x2291, 0x1b51: 0x04d1, + 0x1b52: 0x22a9, 0x1b53: 0x03b1, 0x1b54: 0x03c1, 0x1b55: 0x0799, 0x1b56: 0x2289, 0x1b57: 0x0399, + 0x1b58: 0x03a1, 0x1b59: 0x03a9, 0x1b5a: 0x2291, 0x1b5b: 0x2299, 0x1b5c: 0x22a1, 0x1b5d: 0x04d1, + 0x1b5e: 0x05f9, 0x1b5f: 0x22a9, 0x1b60: 0x22b1, 0x1b61: 0x22b9, 0x1b62: 0x22c1, 0x1b63: 0x22c9, + 0x1b64: 0x22d1, 0x1b65: 0x0799, 0x1b66: 0x03c1, 0x1b67: 0x04d1, 0x1b68: 0x22d9, 0x1b69: 0x22e1, + 0x1b6a: 0x22e9, 0x1b6b: 0x03b1, 0x1b6c: 0x03b9, 0x1b6d: 0x22f1, 0x1b6e: 0x0769, 0x1b6f: 0x22f9, + 0x1b70: 0x2289, 0x1b71: 0x0399, 0x1b72: 0x03a1, 0x1b73: 0x03a9, 0x1b74: 0x2291, 0x1b75: 0x2299, + 0x1b76: 0x22a1, 0x1b77: 0x04d1, 0x1b78: 0x05f9, 0x1b79: 0x22a9, 0x1b7a: 0x22b1, 0x1b7b: 0x22b9, + 0x1b7c: 0x22c1, 0x1b7d: 0x22c9, 0x1b7e: 0x22d1, 0x1b7f: 0x0799, // Block 0x6e, offset 0x1b80 - 0x1b80: 0xbb19, 0x1b81: 0xbb31, 0x1b82: 0xbb49, 0x1b83: 0x1429, 0x1b84: 0x1a31, 0x1b85: 0xbb61, - 0x1b86: 0xbb79, 0x1b87: 0xbb91, 0x1b88: 0xbba9, 0x1b89: 0xbbc1, 0x1b8a: 0xbbd9, 0x1b8b: 0x2109, - 0x1b8c: 0x1111, 0x1b8d: 0xbbf1, 0x1b8e: 0xbbf1, 0x1b8f: 0xbc09, 0x1b90: 0xbc21, 0x1b91: 0x10e1, - 0x1b92: 0x10f9, 0x1b93: 0xbc39, 0x1b94: 0x2079, 0x1b95: 0xbc71, 0x1b96: 0xbb19, 0x1b97: 0x1429, - 0x1b98: 0xbb61, 0x1b99: 0x10e1, 0x1b9a: 0x1111, 0x1b9b: 0x2109, 0x1b9c: 0xbb01, 0x1b9d: 0x1099, - 0x1b9e: 0x10b1, 0x1b9f: 0x10c9, 0x1ba0: 0xbb19, 0x1ba1: 0xbb31, 0x1ba2: 0xbb49, 0x1ba3: 0x1429, - 0x1ba4: 0x1a31, 0x1ba5: 0xbb61, 0x1ba6: 0xbb79, 0x1ba7: 0xbb91, 0x1ba8: 0xbba9, 0x1ba9: 0xbbc1, - 0x1baa: 0xbbd9, 0x1bab: 0x2109, 0x1bac: 0x1111, 0x1bad: 0x1429, 0x1bae: 0xbbf1, 0x1baf: 0xbc09, - 0x1bb0: 0xbc21, 0x1bb1: 0x10e1, 0x1bb2: 0x10f9, 0x1bb3: 0xbc39, 0x1bb4: 0x2079, 0x1bb5: 0xbc51, - 0x1bb6: 0xbb01, 0x1bb7: 0x1099, 0x1bb8: 0x10b1, 0x1bb9: 0x10c9, 0x1bba: 0xbb19, 0x1bbb: 0xbb31, - 0x1bbc: 0xbb49, 0x1bbd: 0x1429, 0x1bbe: 0x1a31, 0x1bbf: 0xbb61, + 0x1b80: 0x03c1, 0x1b81: 0x22d9, 0x1b82: 0x22d9, 0x1b83: 0x22e1, 0x1b84: 0x22e9, 0x1b85: 0x03b1, + 0x1b86: 0x03b9, 0x1b87: 0x22f1, 0x1b88: 0x0769, 0x1b89: 0x2301, 0x1b8a: 0x2291, 0x1b8b: 0x04d1, + 0x1b8c: 0x22a9, 0x1b8d: 0x03b1, 0x1b8e: 0x03c1, 0x1b8f: 0x0799, 0x1b90: 0x2289, 0x1b91: 0x0399, + 0x1b92: 0x03a1, 0x1b93: 0x03a9, 0x1b94: 0x2291, 0x1b95: 0x2299, 0x1b96: 0x22a1, 0x1b97: 0x04d1, + 0x1b98: 0x05f9, 0x1b99: 0x22a9, 0x1b9a: 0x22b1, 0x1b9b: 0x22b9, 0x1b9c: 0x22c1, 0x1b9d: 0x22c9, + 0x1b9e: 0x22d1, 0x1b9f: 0x0799, 0x1ba0: 0x03c1, 0x1ba1: 0x04d1, 0x1ba2: 0x22d9, 0x1ba3: 0x22e1, + 0x1ba4: 0x22e9, 0x1ba5: 0x03b1, 0x1ba6: 0x03b9, 0x1ba7: 0x22f1, 0x1ba8: 0x0769, 0x1ba9: 0x22f9, + 0x1baa: 0x2289, 0x1bab: 0x0399, 0x1bac: 0x03a1, 0x1bad: 0x03a9, 0x1bae: 0x2291, 0x1baf: 0x2299, + 0x1bb0: 0x22a1, 0x1bb1: 0x04d1, 0x1bb2: 0x05f9, 0x1bb3: 0x22a9, 0x1bb4: 0x22b1, 0x1bb5: 0x22b9, + 0x1bb6: 0x22c1, 0x1bb7: 0x22c9, 0x1bb8: 0x22d1, 0x1bb9: 0x0799, 0x1bba: 0x03c1, 0x1bbb: 0x22d9, + 0x1bbc: 0x22d9, 0x1bbd: 0x22e1, 0x1bbe: 0x22e9, 0x1bbf: 0x03b1, // Block 0x6f, offset 0x1bc0 - 0x1bc0: 0xbb79, 0x1bc1: 0xbb91, 0x1bc2: 0xbba9, 0x1bc3: 0xbbc1, 0x1bc4: 0xbbd9, 0x1bc5: 0x2109, - 0x1bc6: 0x1111, 0x1bc7: 0xbbf1, 0x1bc8: 0xbbf1, 0x1bc9: 0xbc09, 0x1bca: 0xbc21, 0x1bcb: 0x10e1, - 0x1bcc: 0x10f9, 0x1bcd: 0xbc39, 0x1bce: 0x2079, 0x1bcf: 0xbc71, 0x1bd0: 0xbb19, 0x1bd1: 0x1429, - 0x1bd2: 0xbb61, 0x1bd3: 0x10e1, 0x1bd4: 0x1111, 0x1bd5: 0x2109, 0x1bd6: 0xbb01, 0x1bd7: 0x1099, - 0x1bd8: 0x10b1, 0x1bd9: 0x10c9, 0x1bda: 0xbb19, 0x1bdb: 0xbb31, 0x1bdc: 0xbb49, 0x1bdd: 0x1429, - 0x1bde: 0x1a31, 0x1bdf: 0xbb61, 0x1be0: 0xbb79, 0x1be1: 0xbb91, 0x1be2: 0xbba9, 0x1be3: 0xbbc1, - 0x1be4: 0xbbd9, 0x1be5: 0x2109, 0x1be6: 0x1111, 0x1be7: 0x1429, 0x1be8: 0xbbf1, 0x1be9: 0xbc09, - 0x1bea: 0xbc21, 0x1beb: 0x10e1, 0x1bec: 0x10f9, 0x1bed: 0xbc39, 0x1bee: 0x2079, 0x1bef: 0xbc51, - 0x1bf0: 0xbb01, 0x1bf1: 0x1099, 0x1bf2: 0x10b1, 0x1bf3: 0x10c9, 0x1bf4: 0xbb19, 0x1bf5: 0xbb31, - 0x1bf6: 0xbb49, 0x1bf7: 0x1429, 0x1bf8: 0x1a31, 0x1bf9: 0xbb61, 0x1bfa: 0xbb79, 0x1bfb: 0xbb91, - 0x1bfc: 0xbba9, 0x1bfd: 0xbbc1, 0x1bfe: 0xbbd9, 0x1bff: 0x2109, + 0x1bc0: 0x03b9, 0x1bc1: 0x22f1, 0x1bc2: 0x0769, 0x1bc3: 0x2301, 0x1bc4: 0x2291, 0x1bc5: 0x04d1, + 0x1bc6: 0x22a9, 0x1bc7: 0x03b1, 0x1bc8: 0x03c1, 0x1bc9: 0x0799, 0x1bca: 0x2309, 0x1bcb: 0x2309, + 0x1bcc: 0x0040, 0x1bcd: 0x0040, 0x1bce: 0x06e1, 0x1bcf: 0x0049, 0x1bd0: 0x0029, 0x1bd1: 0x0031, + 0x1bd2: 0x06e9, 0x1bd3: 0x06f1, 0x1bd4: 0x06f9, 0x1bd5: 0x0701, 0x1bd6: 0x0709, 0x1bd7: 0x0711, + 0x1bd8: 0x06e1, 0x1bd9: 0x0049, 0x1bda: 0x0029, 0x1bdb: 0x0031, 0x1bdc: 0x06e9, 0x1bdd: 0x06f1, + 0x1bde: 0x06f9, 0x1bdf: 0x0701, 0x1be0: 0x0709, 0x1be1: 0x0711, 0x1be2: 0x06e1, 0x1be3: 0x0049, + 0x1be4: 0x0029, 0x1be5: 0x0031, 0x1be6: 0x06e9, 0x1be7: 0x06f1, 0x1be8: 0x06f9, 0x1be9: 0x0701, + 0x1bea: 0x0709, 0x1beb: 0x0711, 0x1bec: 0x06e1, 0x1bed: 0x0049, 0x1bee: 0x0029, 0x1bef: 0x0031, + 0x1bf0: 0x06e9, 0x1bf1: 0x06f1, 0x1bf2: 0x06f9, 0x1bf3: 0x0701, 0x1bf4: 0x0709, 0x1bf5: 0x0711, + 0x1bf6: 0x06e1, 0x1bf7: 0x0049, 0x1bf8: 0x0029, 0x1bf9: 0x0031, 0x1bfa: 0x06e9, 0x1bfb: 0x06f1, + 0x1bfc: 0x06f9, 0x1bfd: 0x0701, 0x1bfe: 0x0709, 0x1bff: 0x0711, // Block 0x70, offset 0x1c00 - 0x1c00: 0x1111, 0x1c01: 0xbbf1, 0x1c02: 0xbbf1, 0x1c03: 0xbc09, 0x1c04: 0xbc21, 0x1c05: 0x10e1, - 0x1c06: 0x10f9, 0x1c07: 0xbc39, 0x1c08: 0x2079, 0x1c09: 0xbc71, 0x1c0a: 0xbb19, 0x1c0b: 0x1429, - 0x1c0c: 0xbb61, 0x1c0d: 0x10e1, 0x1c0e: 0x1111, 0x1c0f: 0x2109, 0x1c10: 0xbb01, 0x1c11: 0x1099, - 0x1c12: 0x10b1, 0x1c13: 0x10c9, 0x1c14: 0xbb19, 0x1c15: 0xbb31, 0x1c16: 0xbb49, 0x1c17: 0x1429, - 0x1c18: 0x1a31, 0x1c19: 0xbb61, 0x1c1a: 0xbb79, 0x1c1b: 0xbb91, 0x1c1c: 0xbba9, 0x1c1d: 0xbbc1, - 0x1c1e: 0xbbd9, 0x1c1f: 0x2109, 0x1c20: 0x1111, 0x1c21: 0x1429, 0x1c22: 0xbbf1, 0x1c23: 0xbc09, - 0x1c24: 0xbc21, 0x1c25: 0x10e1, 0x1c26: 0x10f9, 0x1c27: 0xbc39, 0x1c28: 0x2079, 0x1c29: 0xbc51, - 0x1c2a: 0xbb01, 0x1c2b: 0x1099, 0x1c2c: 0x10b1, 0x1c2d: 0x10c9, 0x1c2e: 0xbb19, 0x1c2f: 0xbb31, - 0x1c30: 0xbb49, 0x1c31: 0x1429, 0x1c32: 0x1a31, 0x1c33: 0xbb61, 0x1c34: 0xbb79, 0x1c35: 0xbb91, - 0x1c36: 0xbba9, 0x1c37: 0xbbc1, 0x1c38: 0xbbd9, 0x1c39: 0x2109, 0x1c3a: 0x1111, 0x1c3b: 0xbbf1, - 0x1c3c: 0xbbf1, 0x1c3d: 0xbc09, 0x1c3e: 0xbc21, 0x1c3f: 0x10e1, + 0x1c00: 0xe115, 0x1c01: 0xe115, 0x1c02: 0xe135, 0x1c03: 0xe135, 0x1c04: 0xe115, 0x1c05: 0xe115, + 0x1c06: 0xe175, 0x1c07: 0xe175, 0x1c08: 0xe115, 0x1c09: 0xe115, 0x1c0a: 0xe135, 0x1c0b: 0xe135, + 0x1c0c: 0xe115, 0x1c0d: 0xe115, 0x1c0e: 0xe1f5, 0x1c0f: 0xe1f5, 0x1c10: 0xe115, 0x1c11: 0xe115, + 0x1c12: 0xe135, 0x1c13: 0xe135, 0x1c14: 0xe115, 0x1c15: 0xe115, 0x1c16: 0xe175, 0x1c17: 0xe175, + 0x1c18: 0xe115, 0x1c19: 0xe115, 0x1c1a: 0xe135, 0x1c1b: 0xe135, 0x1c1c: 0xe115, 0x1c1d: 0xe115, + 0x1c1e: 0x8b3d, 0x1c1f: 0x8b3d, 0x1c20: 0x04b5, 0x1c21: 0x04b5, 0x1c22: 0x0a08, 0x1c23: 0x0a08, + 0x1c24: 0x0a08, 0x1c25: 0x0a08, 0x1c26: 0x0a08, 0x1c27: 0x0a08, 0x1c28: 0x0a08, 0x1c29: 0x0a08, + 0x1c2a: 0x0a08, 0x1c2b: 0x0a08, 0x1c2c: 0x0a08, 0x1c2d: 0x0a08, 0x1c2e: 0x0a08, 0x1c2f: 0x0a08, + 0x1c30: 0x0a08, 0x1c31: 0x0a08, 0x1c32: 0x0a08, 0x1c33: 0x0a08, 0x1c34: 0x0a08, 0x1c35: 0x0a08, + 0x1c36: 0x0a08, 0x1c37: 0x0a08, 0x1c38: 0x0a08, 0x1c39: 0x0a08, 0x1c3a: 0x0a08, 0x1c3b: 0x0a08, + 0x1c3c: 0x0a08, 0x1c3d: 0x0a08, 0x1c3e: 0x0a08, 0x1c3f: 0x0a08, // Block 0x71, offset 0x1c40 - 0x1c40: 0x10f9, 0x1c41: 0xbc39, 0x1c42: 0x2079, 0x1c43: 0xbc71, 0x1c44: 0xbb19, 0x1c45: 0x1429, - 0x1c46: 0xbb61, 0x1c47: 0x10e1, 0x1c48: 0x1111, 0x1c49: 0x2109, 0x1c4a: 0xbc91, 0x1c4b: 0xbc91, - 0x1c4c: 0x0040, 0x1c4d: 0x0040, 0x1c4e: 0x1f41, 0x1c4f: 0x00c9, 0x1c50: 0x0069, 0x1c51: 0x0079, - 0x1c52: 0x1f51, 0x1c53: 0x1f61, 0x1c54: 0x1f71, 0x1c55: 0x1f81, 0x1c56: 0x1f91, 0x1c57: 0x1fa1, - 0x1c58: 0x1f41, 0x1c59: 0x00c9, 0x1c5a: 0x0069, 0x1c5b: 0x0079, 0x1c5c: 0x1f51, 0x1c5d: 0x1f61, - 0x1c5e: 0x1f71, 0x1c5f: 0x1f81, 0x1c60: 0x1f91, 0x1c61: 0x1fa1, 0x1c62: 0x1f41, 0x1c63: 0x00c9, - 0x1c64: 0x0069, 0x1c65: 0x0079, 0x1c66: 0x1f51, 0x1c67: 0x1f61, 0x1c68: 0x1f71, 0x1c69: 0x1f81, - 0x1c6a: 0x1f91, 0x1c6b: 0x1fa1, 0x1c6c: 0x1f41, 0x1c6d: 0x00c9, 0x1c6e: 0x0069, 0x1c6f: 0x0079, - 0x1c70: 0x1f51, 0x1c71: 0x1f61, 0x1c72: 0x1f71, 0x1c73: 0x1f81, 0x1c74: 0x1f91, 0x1c75: 0x1fa1, - 0x1c76: 0x1f41, 0x1c77: 0x00c9, 0x1c78: 0x0069, 0x1c79: 0x0079, 0x1c7a: 0x1f51, 0x1c7b: 0x1f61, - 0x1c7c: 0x1f71, 0x1c7d: 0x1f81, 0x1c7e: 0x1f91, 0x1c7f: 0x1fa1, + 0x1c40: 0x20b1, 0x1c41: 0x20b9, 0x1c42: 0x20d9, 0x1c43: 0x20f1, 0x1c44: 0x0040, 0x1c45: 0x2189, + 0x1c46: 0x2109, 0x1c47: 0x20e1, 0x1c48: 0x2131, 0x1c49: 0x2191, 0x1c4a: 0x2161, 0x1c4b: 0x2169, + 0x1c4c: 0x2171, 0x1c4d: 0x2179, 0x1c4e: 0x2111, 0x1c4f: 0x2141, 0x1c50: 0x2151, 0x1c51: 0x2121, + 0x1c52: 0x2159, 0x1c53: 0x2101, 0x1c54: 0x2119, 0x1c55: 0x20c9, 0x1c56: 0x20d1, 0x1c57: 0x20e9, + 0x1c58: 0x20f9, 0x1c59: 0x2129, 0x1c5a: 0x2139, 0x1c5b: 0x2149, 0x1c5c: 0x2311, 0x1c5d: 0x1689, + 0x1c5e: 0x2319, 0x1c5f: 0x2321, 0x1c60: 0x0040, 0x1c61: 0x20b9, 0x1c62: 0x20d9, 0x1c63: 0x0040, + 0x1c64: 0x2181, 0x1c65: 0x0040, 0x1c66: 0x0040, 0x1c67: 0x20e1, 0x1c68: 0x0040, 0x1c69: 0x2191, + 0x1c6a: 0x2161, 0x1c6b: 0x2169, 0x1c6c: 0x2171, 0x1c6d: 0x2179, 0x1c6e: 0x2111, 0x1c6f: 0x2141, + 0x1c70: 0x2151, 0x1c71: 0x2121, 0x1c72: 0x2159, 0x1c73: 0x0040, 0x1c74: 0x2119, 0x1c75: 0x20c9, + 0x1c76: 0x20d1, 0x1c77: 0x20e9, 0x1c78: 0x0040, 0x1c79: 0x2129, 0x1c7a: 0x0040, 0x1c7b: 0x2149, + 0x1c7c: 0x0040, 0x1c7d: 0x0040, 0x1c7e: 0x0040, 0x1c7f: 0x0040, // Block 0x72, offset 0x1c80 - 0x1c80: 0xe115, 0x1c81: 0xe115, 0x1c82: 0xe135, 0x1c83: 0xe135, 0x1c84: 0xe115, 0x1c85: 0xe115, - 0x1c86: 0xe175, 0x1c87: 0xe175, 0x1c88: 0xe115, 0x1c89: 0xe115, 0x1c8a: 0xe135, 0x1c8b: 0xe135, - 0x1c8c: 0xe115, 0x1c8d: 0xe115, 0x1c8e: 0xe1f5, 0x1c8f: 0xe1f5, 0x1c90: 0xe115, 0x1c91: 0xe115, - 0x1c92: 0xe135, 0x1c93: 0xe135, 0x1c94: 0xe115, 0x1c95: 0xe115, 0x1c96: 0xe175, 0x1c97: 0xe175, - 0x1c98: 0xe115, 0x1c99: 0xe115, 0x1c9a: 0xe135, 0x1c9b: 0xe135, 0x1c9c: 0xe115, 0x1c9d: 0xe115, - 0x1c9e: 0x8b3d, 0x1c9f: 0x8b3d, 0x1ca0: 0x04b5, 0x1ca1: 0x04b5, 0x1ca2: 0x0a08, 0x1ca3: 0x0a08, - 0x1ca4: 0x0a08, 0x1ca5: 0x0a08, 0x1ca6: 0x0a08, 0x1ca7: 0x0a08, 0x1ca8: 0x0a08, 0x1ca9: 0x0a08, - 0x1caa: 0x0a08, 0x1cab: 0x0a08, 0x1cac: 0x0a08, 0x1cad: 0x0a08, 0x1cae: 0x0a08, 0x1caf: 0x0a08, - 0x1cb0: 0x0a08, 0x1cb1: 0x0a08, 0x1cb2: 0x0a08, 0x1cb3: 0x0a08, 0x1cb4: 0x0a08, 0x1cb5: 0x0a08, - 0x1cb6: 0x0a08, 0x1cb7: 0x0a08, 0x1cb8: 0x0a08, 0x1cb9: 0x0a08, 0x1cba: 0x0a08, 0x1cbb: 0x0a08, - 0x1cbc: 0x0a08, 0x1cbd: 0x0a08, 0x1cbe: 0x0a08, 0x1cbf: 0x0a08, + 0x1c80: 0x0040, 0x1c81: 0x0040, 0x1c82: 0x20d9, 0x1c83: 0x0040, 0x1c84: 0x0040, 0x1c85: 0x0040, + 0x1c86: 0x0040, 0x1c87: 0x20e1, 0x1c88: 0x0040, 0x1c89: 0x2191, 0x1c8a: 0x0040, 0x1c8b: 0x2169, + 0x1c8c: 0x0040, 0x1c8d: 0x2179, 0x1c8e: 0x2111, 0x1c8f: 0x2141, 0x1c90: 0x0040, 0x1c91: 0x2121, + 0x1c92: 0x2159, 0x1c93: 0x0040, 0x1c94: 0x2119, 0x1c95: 0x0040, 0x1c96: 0x0040, 0x1c97: 0x20e9, + 0x1c98: 0x0040, 0x1c99: 0x2129, 0x1c9a: 0x0040, 0x1c9b: 0x2149, 0x1c9c: 0x0040, 0x1c9d: 0x1689, + 0x1c9e: 0x0040, 0x1c9f: 0x2321, 0x1ca0: 0x0040, 0x1ca1: 0x20b9, 0x1ca2: 0x20d9, 0x1ca3: 0x0040, + 0x1ca4: 0x2181, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0x20e1, 0x1ca8: 0x2131, 0x1ca9: 0x2191, + 0x1caa: 0x2161, 0x1cab: 0x0040, 0x1cac: 0x2171, 0x1cad: 0x2179, 0x1cae: 0x2111, 0x1caf: 0x2141, + 0x1cb0: 0x2151, 0x1cb1: 0x2121, 0x1cb2: 0x2159, 0x1cb3: 0x0040, 0x1cb4: 0x2119, 0x1cb5: 0x20c9, + 0x1cb6: 0x20d1, 0x1cb7: 0x20e9, 0x1cb8: 0x0040, 0x1cb9: 0x2129, 0x1cba: 0x2139, 0x1cbb: 0x2149, + 0x1cbc: 0x2311, 0x1cbd: 0x0040, 0x1cbe: 0x2319, 0x1cbf: 0x0040, // Block 0x73, offset 0x1cc0 - 0x1cc0: 0xb1d9, 0x1cc1: 0xb1f1, 0x1cc2: 0xb251, 0x1cc3: 0xb299, 0x1cc4: 0x0040, 0x1cc5: 0xb461, - 0x1cc6: 0xb2e1, 0x1cc7: 0xb269, 0x1cc8: 0xb359, 0x1cc9: 0xb479, 0x1cca: 0xb3e9, 0x1ccb: 0xb401, - 0x1ccc: 0xb419, 0x1ccd: 0xb431, 0x1cce: 0xb2f9, 0x1ccf: 0xb389, 0x1cd0: 0xb3b9, 0x1cd1: 0xb329, - 0x1cd2: 0xb3d1, 0x1cd3: 0xb2c9, 0x1cd4: 0xb311, 0x1cd5: 0xb221, 0x1cd6: 0xb239, 0x1cd7: 0xb281, - 0x1cd8: 0xb2b1, 0x1cd9: 0xb341, 0x1cda: 0xb371, 0x1cdb: 0xb3a1, 0x1cdc: 0xbca9, 0x1cdd: 0x7999, - 0x1cde: 0xbcc1, 0x1cdf: 0xbcd9, 0x1ce0: 0x0040, 0x1ce1: 0xb1f1, 0x1ce2: 0xb251, 0x1ce3: 0x0040, - 0x1ce4: 0xb449, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb269, 0x1ce8: 0x0040, 0x1ce9: 0xb479, - 0x1cea: 0xb3e9, 0x1ceb: 0xb401, 0x1cec: 0xb419, 0x1ced: 0xb431, 0x1cee: 0xb2f9, 0x1cef: 0xb389, - 0x1cf0: 0xb3b9, 0x1cf1: 0xb329, 0x1cf2: 0xb3d1, 0x1cf3: 0x0040, 0x1cf4: 0xb311, 0x1cf5: 0xb221, - 0x1cf6: 0xb239, 0x1cf7: 0xb281, 0x1cf8: 0x0040, 0x1cf9: 0xb341, 0x1cfa: 0x0040, 0x1cfb: 0xb3a1, + 0x1cc0: 0x20b1, 0x1cc1: 0x20b9, 0x1cc2: 0x20d9, 0x1cc3: 0x20f1, 0x1cc4: 0x2181, 0x1cc5: 0x2189, + 0x1cc6: 0x2109, 0x1cc7: 0x20e1, 0x1cc8: 0x2131, 0x1cc9: 0x2191, 0x1cca: 0x0040, 0x1ccb: 0x2169, + 0x1ccc: 0x2171, 0x1ccd: 0x2179, 0x1cce: 0x2111, 0x1ccf: 0x2141, 0x1cd0: 0x2151, 0x1cd1: 0x2121, + 0x1cd2: 0x2159, 0x1cd3: 0x2101, 0x1cd4: 0x2119, 0x1cd5: 0x20c9, 0x1cd6: 0x20d1, 0x1cd7: 0x20e9, + 0x1cd8: 0x20f9, 0x1cd9: 0x2129, 0x1cda: 0x2139, 0x1cdb: 0x2149, 0x1cdc: 0x0040, 0x1cdd: 0x0040, + 0x1cde: 0x0040, 0x1cdf: 0x0040, 0x1ce0: 0x0040, 0x1ce1: 0x20b9, 0x1ce2: 0x20d9, 0x1ce3: 0x20f1, + 0x1ce4: 0x0040, 0x1ce5: 0x2189, 0x1ce6: 0x2109, 0x1ce7: 0x20e1, 0x1ce8: 0x2131, 0x1ce9: 0x2191, + 0x1cea: 0x0040, 0x1ceb: 0x2169, 0x1cec: 0x2171, 0x1ced: 0x2179, 0x1cee: 0x2111, 0x1cef: 0x2141, + 0x1cf0: 0x2151, 0x1cf1: 0x2121, 0x1cf2: 0x2159, 0x1cf3: 0x2101, 0x1cf4: 0x2119, 0x1cf5: 0x20c9, + 0x1cf6: 0x20d1, 0x1cf7: 0x20e9, 0x1cf8: 0x20f9, 0x1cf9: 0x2129, 0x1cfa: 0x2139, 0x1cfb: 0x2149, 0x1cfc: 0x0040, 0x1cfd: 0x0040, 0x1cfe: 0x0040, 0x1cff: 0x0040, // Block 0x74, offset 0x1d00 - 0x1d00: 0x0040, 0x1d01: 0x0040, 0x1d02: 0xb251, 0x1d03: 0x0040, 0x1d04: 0x0040, 0x1d05: 0x0040, - 0x1d06: 0x0040, 0x1d07: 0xb269, 0x1d08: 0x0040, 0x1d09: 0xb479, 0x1d0a: 0x0040, 0x1d0b: 0xb401, - 0x1d0c: 0x0040, 0x1d0d: 0xb431, 0x1d0e: 0xb2f9, 0x1d0f: 0xb389, 0x1d10: 0x0040, 0x1d11: 0xb329, - 0x1d12: 0xb3d1, 0x1d13: 0x0040, 0x1d14: 0xb311, 0x1d15: 0x0040, 0x1d16: 0x0040, 0x1d17: 0xb281, - 0x1d18: 0x0040, 0x1d19: 0xb341, 0x1d1a: 0x0040, 0x1d1b: 0xb3a1, 0x1d1c: 0x0040, 0x1d1d: 0x7999, - 0x1d1e: 0x0040, 0x1d1f: 0xbcd9, 0x1d20: 0x0040, 0x1d21: 0xb1f1, 0x1d22: 0xb251, 0x1d23: 0x0040, - 0x1d24: 0xb449, 0x1d25: 0x0040, 0x1d26: 0x0040, 0x1d27: 0xb269, 0x1d28: 0xb359, 0x1d29: 0xb479, - 0x1d2a: 0xb3e9, 0x1d2b: 0x0040, 0x1d2c: 0xb419, 0x1d2d: 0xb431, 0x1d2e: 0xb2f9, 0x1d2f: 0xb389, - 0x1d30: 0xb3b9, 0x1d31: 0xb329, 0x1d32: 0xb3d1, 0x1d33: 0x0040, 0x1d34: 0xb311, 0x1d35: 0xb221, - 0x1d36: 0xb239, 0x1d37: 0xb281, 0x1d38: 0x0040, 0x1d39: 0xb341, 0x1d3a: 0xb371, 0x1d3b: 0xb3a1, - 0x1d3c: 0xbca9, 0x1d3d: 0x0040, 0x1d3e: 0xbcc1, 0x1d3f: 0x0040, + 0x1d00: 0x0040, 0x1d01: 0x232a, 0x1d02: 0x2332, 0x1d03: 0x233a, 0x1d04: 0x2342, 0x1d05: 0x234a, + 0x1d06: 0x2352, 0x1d07: 0x235a, 0x1d08: 0x2362, 0x1d09: 0x236a, 0x1d0a: 0x2372, 0x1d0b: 0x0018, + 0x1d0c: 0x0018, 0x1d0d: 0x0018, 0x1d0e: 0x0018, 0x1d0f: 0x0018, 0x1d10: 0x237a, 0x1d11: 0x2382, + 0x1d12: 0x238a, 0x1d13: 0x2392, 0x1d14: 0x239a, 0x1d15: 0x23a2, 0x1d16: 0x23aa, 0x1d17: 0x23b2, + 0x1d18: 0x23ba, 0x1d19: 0x23c2, 0x1d1a: 0x23ca, 0x1d1b: 0x23d2, 0x1d1c: 0x23da, 0x1d1d: 0x23e2, + 0x1d1e: 0x23ea, 0x1d1f: 0x23f2, 0x1d20: 0x23fa, 0x1d21: 0x2402, 0x1d22: 0x240a, 0x1d23: 0x2412, + 0x1d24: 0x241a, 0x1d25: 0x2422, 0x1d26: 0x242a, 0x1d27: 0x2432, 0x1d28: 0x243a, 0x1d29: 0x2442, + 0x1d2a: 0x2449, 0x1d2b: 0x03d9, 0x1d2c: 0x00b9, 0x1d2d: 0x1239, 0x1d2e: 0x2451, 0x1d2f: 0x0018, + 0x1d30: 0x0019, 0x1d31: 0x02e9, 0x1d32: 0x03d9, 0x1d33: 0x02f1, 0x1d34: 0x02f9, 0x1d35: 0x03f1, + 0x1d36: 0x0309, 0x1d37: 0x00a9, 0x1d38: 0x0311, 0x1d39: 0x00b1, 0x1d3a: 0x0319, 0x1d3b: 0x0101, + 0x1d3c: 0x0321, 0x1d3d: 0x0329, 0x1d3e: 0x0051, 0x1d3f: 0x0339, // Block 0x75, offset 0x1d40 - 0x1d40: 0xb1d9, 0x1d41: 0xb1f1, 0x1d42: 0xb251, 0x1d43: 0xb299, 0x1d44: 0xb449, 0x1d45: 0xb461, - 0x1d46: 0xb2e1, 0x1d47: 0xb269, 0x1d48: 0xb359, 0x1d49: 0xb479, 0x1d4a: 0x0040, 0x1d4b: 0xb401, - 0x1d4c: 0xb419, 0x1d4d: 0xb431, 0x1d4e: 0xb2f9, 0x1d4f: 0xb389, 0x1d50: 0xb3b9, 0x1d51: 0xb329, - 0x1d52: 0xb3d1, 0x1d53: 0xb2c9, 0x1d54: 0xb311, 0x1d55: 0xb221, 0x1d56: 0xb239, 0x1d57: 0xb281, - 0x1d58: 0xb2b1, 0x1d59: 0xb341, 0x1d5a: 0xb371, 0x1d5b: 0xb3a1, 0x1d5c: 0x0040, 0x1d5d: 0x0040, - 0x1d5e: 0x0040, 0x1d5f: 0x0040, 0x1d60: 0x0040, 0x1d61: 0xb1f1, 0x1d62: 0xb251, 0x1d63: 0xb299, - 0x1d64: 0x0040, 0x1d65: 0xb461, 0x1d66: 0xb2e1, 0x1d67: 0xb269, 0x1d68: 0xb359, 0x1d69: 0xb479, - 0x1d6a: 0x0040, 0x1d6b: 0xb401, 0x1d6c: 0xb419, 0x1d6d: 0xb431, 0x1d6e: 0xb2f9, 0x1d6f: 0xb389, - 0x1d70: 0xb3b9, 0x1d71: 0xb329, 0x1d72: 0xb3d1, 0x1d73: 0xb2c9, 0x1d74: 0xb311, 0x1d75: 0xb221, - 0x1d76: 0xb239, 0x1d77: 0xb281, 0x1d78: 0xb2b1, 0x1d79: 0xb341, 0x1d7a: 0xb371, 0x1d7b: 0xb3a1, - 0x1d7c: 0x0040, 0x1d7d: 0x0040, 0x1d7e: 0x0040, 0x1d7f: 0x0040, + 0x1d40: 0x0751, 0x1d41: 0x00b9, 0x1d42: 0x0089, 0x1d43: 0x0341, 0x1d44: 0x0349, 0x1d45: 0x0391, + 0x1d46: 0x00c1, 0x1d47: 0x0109, 0x1d48: 0x00c9, 0x1d49: 0x04b1, 0x1d4a: 0x2459, 0x1d4b: 0x11f9, + 0x1d4c: 0x2461, 0x1d4d: 0x04d9, 0x1d4e: 0x2469, 0x1d4f: 0x2471, 0x1d50: 0x0018, 0x1d51: 0x0018, + 0x1d52: 0x0018, 0x1d53: 0x0018, 0x1d54: 0x0018, 0x1d55: 0x0018, 0x1d56: 0x0018, 0x1d57: 0x0018, + 0x1d58: 0x0018, 0x1d59: 0x0018, 0x1d5a: 0x0018, 0x1d5b: 0x0018, 0x1d5c: 0x0018, 0x1d5d: 0x0018, + 0x1d5e: 0x0018, 0x1d5f: 0x0018, 0x1d60: 0x0018, 0x1d61: 0x0018, 0x1d62: 0x0018, 0x1d63: 0x0018, + 0x1d64: 0x0018, 0x1d65: 0x0018, 0x1d66: 0x0018, 0x1d67: 0x0018, 0x1d68: 0x0018, 0x1d69: 0x0018, + 0x1d6a: 0x2479, 0x1d6b: 0x2481, 0x1d6c: 0x2489, 0x1d6d: 0x0018, 0x1d6e: 0x0018, 0x1d6f: 0x0018, + 0x1d70: 0x0018, 0x1d71: 0x0018, 0x1d72: 0x0018, 0x1d73: 0x0018, 0x1d74: 0x0018, 0x1d75: 0x0018, + 0x1d76: 0x0018, 0x1d77: 0x0018, 0x1d78: 0x0018, 0x1d79: 0x0018, 0x1d7a: 0x0018, 0x1d7b: 0x0018, + 0x1d7c: 0x0018, 0x1d7d: 0x0018, 0x1d7e: 0x0018, 0x1d7f: 0x0018, // Block 0x76, offset 0x1d80 - 0x1d80: 0x0040, 0x1d81: 0xbcf2, 0x1d82: 0xbd0a, 0x1d83: 0xbd22, 0x1d84: 0xbd3a, 0x1d85: 0xbd52, - 0x1d86: 0xbd6a, 0x1d87: 0xbd82, 0x1d88: 0xbd9a, 0x1d89: 0xbdb2, 0x1d8a: 0xbdca, 0x1d8b: 0x0018, - 0x1d8c: 0x0018, 0x1d8d: 0x0018, 0x1d8e: 0x0018, 0x1d8f: 0x0018, 0x1d90: 0xbde2, 0x1d91: 0xbe02, - 0x1d92: 0xbe22, 0x1d93: 0xbe42, 0x1d94: 0xbe62, 0x1d95: 0xbe82, 0x1d96: 0xbea2, 0x1d97: 0xbec2, - 0x1d98: 0xbee2, 0x1d99: 0xbf02, 0x1d9a: 0xbf22, 0x1d9b: 0xbf42, 0x1d9c: 0xbf62, 0x1d9d: 0xbf82, - 0x1d9e: 0xbfa2, 0x1d9f: 0xbfc2, 0x1da0: 0xbfe2, 0x1da1: 0xc002, 0x1da2: 0xc022, 0x1da3: 0xc042, - 0x1da4: 0xc062, 0x1da5: 0xc082, 0x1da6: 0xc0a2, 0x1da7: 0xc0c2, 0x1da8: 0xc0e2, 0x1da9: 0xc102, - 0x1daa: 0xc121, 0x1dab: 0x1159, 0x1dac: 0x0269, 0x1dad: 0x66a9, 0x1dae: 0xc161, 0x1daf: 0x0018, - 0x1db0: 0x0039, 0x1db1: 0x0ee9, 0x1db2: 0x1159, 0x1db3: 0x0ef9, 0x1db4: 0x0f09, 0x1db5: 0x1199, - 0x1db6: 0x0f31, 0x1db7: 0x0249, 0x1db8: 0x0f41, 0x1db9: 0x0259, 0x1dba: 0x0f51, 0x1dbb: 0x0359, - 0x1dbc: 0x0f61, 0x1dbd: 0x0f71, 0x1dbe: 0x00d9, 0x1dbf: 0x0f99, + 0x1d80: 0x2499, 0x1d81: 0x24a1, 0x1d82: 0x24a9, 0x1d83: 0x0040, 0x1d84: 0x0040, 0x1d85: 0x0040, + 0x1d86: 0x0040, 0x1d87: 0x0040, 0x1d88: 0x0040, 0x1d89: 0x0040, 0x1d8a: 0x0040, 0x1d8b: 0x0040, + 0x1d8c: 0x0040, 0x1d8d: 0x0040, 0x1d8e: 0x0040, 0x1d8f: 0x0040, 0x1d90: 0x24b1, 0x1d91: 0x24b9, + 0x1d92: 0x24c1, 0x1d93: 0x24c9, 0x1d94: 0x24d1, 0x1d95: 0x24d9, 0x1d96: 0x24e1, 0x1d97: 0x24e9, + 0x1d98: 0x24f1, 0x1d99: 0x24f9, 0x1d9a: 0x2501, 0x1d9b: 0x2509, 0x1d9c: 0x2511, 0x1d9d: 0x2519, + 0x1d9e: 0x2521, 0x1d9f: 0x2529, 0x1da0: 0x2531, 0x1da1: 0x2539, 0x1da2: 0x2541, 0x1da3: 0x2549, + 0x1da4: 0x2551, 0x1da5: 0x2559, 0x1da6: 0x2561, 0x1da7: 0x2569, 0x1da8: 0x2571, 0x1da9: 0x2579, + 0x1daa: 0x2581, 0x1dab: 0x2589, 0x1dac: 0x2591, 0x1dad: 0x2599, 0x1dae: 0x25a1, 0x1daf: 0x25a9, + 0x1db0: 0x25b1, 0x1db1: 0x25b9, 0x1db2: 0x25c1, 0x1db3: 0x25c9, 0x1db4: 0x25d1, 0x1db5: 0x25d9, + 0x1db6: 0x25e1, 0x1db7: 0x25e9, 0x1db8: 0x25f1, 0x1db9: 0x25f9, 0x1dba: 0x2601, 0x1dbb: 0x2609, + 0x1dbc: 0x0040, 0x1dbd: 0x0040, 0x1dbe: 0x0040, 0x1dbf: 0x0040, // Block 0x77, offset 0x1dc0 - 0x1dc0: 0x2039, 0x1dc1: 0x0269, 0x1dc2: 0x01d9, 0x1dc3: 0x0fa9, 0x1dc4: 0x0fb9, 0x1dc5: 0x1089, - 0x1dc6: 0x0279, 0x1dc7: 0x0369, 0x1dc8: 0x0289, 0x1dc9: 0x13d1, 0x1dca: 0xc179, 0x1dcb: 0x65e9, - 0x1dcc: 0xc191, 0x1dcd: 0x1441, 0x1dce: 0xc1a9, 0x1dcf: 0xc1c9, 0x1dd0: 0x0018, 0x1dd1: 0x0018, - 0x1dd2: 0x0018, 0x1dd3: 0x0018, 0x1dd4: 0x0018, 0x1dd5: 0x0018, 0x1dd6: 0x0018, 0x1dd7: 0x0018, - 0x1dd8: 0x0018, 0x1dd9: 0x0018, 0x1dda: 0x0018, 0x1ddb: 0x0018, 0x1ddc: 0x0018, 0x1ddd: 0x0018, - 0x1dde: 0x0018, 0x1ddf: 0x0018, 0x1de0: 0x0018, 0x1de1: 0x0018, 0x1de2: 0x0018, 0x1de3: 0x0018, - 0x1de4: 0x0018, 0x1de5: 0x0018, 0x1de6: 0x0018, 0x1de7: 0x0018, 0x1de8: 0x0018, 0x1de9: 0x0018, - 0x1dea: 0xc1e1, 0x1deb: 0xc1f9, 0x1dec: 0xc211, 0x1ded: 0x0018, 0x1dee: 0x0018, 0x1def: 0x0018, - 0x1df0: 0x0018, 0x1df1: 0x0018, 0x1df2: 0x0018, 0x1df3: 0x0018, 0x1df4: 0x0018, 0x1df5: 0x0018, - 0x1df6: 0x0018, 0x1df7: 0x0018, 0x1df8: 0x0018, 0x1df9: 0x0018, 0x1dfa: 0x0018, 0x1dfb: 0x0018, - 0x1dfc: 0x0018, 0x1dfd: 0x0018, 0x1dfe: 0x0018, 0x1dff: 0x0018, + 0x1dc0: 0x2669, 0x1dc1: 0x2671, 0x1dc2: 0x2679, 0x1dc3: 0x8b55, 0x1dc4: 0x2681, 0x1dc5: 0x2689, + 0x1dc6: 0x2691, 0x1dc7: 0x2699, 0x1dc8: 0x26a1, 0x1dc9: 0x26a9, 0x1dca: 0x26b1, 0x1dcb: 0x26b9, + 0x1dcc: 0x26c1, 0x1dcd: 0x8b75, 0x1dce: 0x26c9, 0x1dcf: 0x26d1, 0x1dd0: 0x26d9, 0x1dd1: 0x26e1, + 0x1dd2: 0x8b95, 0x1dd3: 0x26e9, 0x1dd4: 0x26f1, 0x1dd5: 0x2521, 0x1dd6: 0x8bb5, 0x1dd7: 0x26f9, + 0x1dd8: 0x2701, 0x1dd9: 0x2709, 0x1dda: 0x2711, 0x1ddb: 0x2719, 0x1ddc: 0x8bd5, 0x1ddd: 0x2721, + 0x1dde: 0x2729, 0x1ddf: 0x2731, 0x1de0: 0x2739, 0x1de1: 0x2741, 0x1de2: 0x25f9, 0x1de3: 0x2749, + 0x1de4: 0x2751, 0x1de5: 0x2759, 0x1de6: 0x2761, 0x1de7: 0x2769, 0x1de8: 0x2771, 0x1de9: 0x2779, + 0x1dea: 0x2781, 0x1deb: 0x2789, 0x1dec: 0x2791, 0x1ded: 0x2799, 0x1dee: 0x27a1, 0x1def: 0x27a9, + 0x1df0: 0x27b1, 0x1df1: 0x27b9, 0x1df2: 0x27b9, 0x1df3: 0x27b9, 0x1df4: 0x8bf5, 0x1df5: 0x27c1, + 0x1df6: 0x27c9, 0x1df7: 0x27d1, 0x1df8: 0x8c15, 0x1df9: 0x27d9, 0x1dfa: 0x27e1, 0x1dfb: 0x27e9, + 0x1dfc: 0x27f1, 0x1dfd: 0x27f9, 0x1dfe: 0x2801, 0x1dff: 0x2809, // Block 0x78, offset 0x1e00 - 0x1e00: 0xc241, 0x1e01: 0xc279, 0x1e02: 0xc2b1, 0x1e03: 0x0040, 0x1e04: 0x0040, 0x1e05: 0x0040, - 0x1e06: 0x0040, 0x1e07: 0x0040, 0x1e08: 0x0040, 0x1e09: 0x0040, 0x1e0a: 0x0040, 0x1e0b: 0x0040, - 0x1e0c: 0x0040, 0x1e0d: 0x0040, 0x1e0e: 0x0040, 0x1e0f: 0x0040, 0x1e10: 0xc2d1, 0x1e11: 0xc2f1, - 0x1e12: 0xc311, 0x1e13: 0xc331, 0x1e14: 0xc351, 0x1e15: 0xc371, 0x1e16: 0xc391, 0x1e17: 0xc3b1, - 0x1e18: 0xc3d1, 0x1e19: 0xc3f1, 0x1e1a: 0xc411, 0x1e1b: 0xc431, 0x1e1c: 0xc451, 0x1e1d: 0xc471, - 0x1e1e: 0xc491, 0x1e1f: 0xc4b1, 0x1e20: 0xc4d1, 0x1e21: 0xc4f1, 0x1e22: 0xc511, 0x1e23: 0xc531, - 0x1e24: 0xc551, 0x1e25: 0xc571, 0x1e26: 0xc591, 0x1e27: 0xc5b1, 0x1e28: 0xc5d1, 0x1e29: 0xc5f1, - 0x1e2a: 0xc611, 0x1e2b: 0xc631, 0x1e2c: 0xc651, 0x1e2d: 0xc671, 0x1e2e: 0xc691, 0x1e2f: 0xc6b1, - 0x1e30: 0xc6d1, 0x1e31: 0xc6f1, 0x1e32: 0xc711, 0x1e33: 0xc731, 0x1e34: 0xc751, 0x1e35: 0xc771, - 0x1e36: 0xc791, 0x1e37: 0xc7b1, 0x1e38: 0xc7d1, 0x1e39: 0xc7f1, 0x1e3a: 0xc811, 0x1e3b: 0xc831, - 0x1e3c: 0x0040, 0x1e3d: 0x0040, 0x1e3e: 0x0040, 0x1e3f: 0x0040, + 0x1e00: 0x2811, 0x1e01: 0x2819, 0x1e02: 0x2821, 0x1e03: 0x2829, 0x1e04: 0x2831, 0x1e05: 0x2839, + 0x1e06: 0x2839, 0x1e07: 0x2841, 0x1e08: 0x2849, 0x1e09: 0x2851, 0x1e0a: 0x2859, 0x1e0b: 0x2861, + 0x1e0c: 0x2869, 0x1e0d: 0x2871, 0x1e0e: 0x2879, 0x1e0f: 0x2881, 0x1e10: 0x2889, 0x1e11: 0x2891, + 0x1e12: 0x2899, 0x1e13: 0x28a1, 0x1e14: 0x28a9, 0x1e15: 0x28b1, 0x1e16: 0x28b9, 0x1e17: 0x28c1, + 0x1e18: 0x28c9, 0x1e19: 0x8c35, 0x1e1a: 0x28d1, 0x1e1b: 0x28d9, 0x1e1c: 0x28e1, 0x1e1d: 0x24d9, + 0x1e1e: 0x28e9, 0x1e1f: 0x28f1, 0x1e20: 0x8c55, 0x1e21: 0x8c75, 0x1e22: 0x28f9, 0x1e23: 0x2901, + 0x1e24: 0x2909, 0x1e25: 0x2911, 0x1e26: 0x2919, 0x1e27: 0x2921, 0x1e28: 0x2040, 0x1e29: 0x2929, + 0x1e2a: 0x2931, 0x1e2b: 0x2931, 0x1e2c: 0x8c95, 0x1e2d: 0x2939, 0x1e2e: 0x2941, 0x1e2f: 0x2949, + 0x1e30: 0x2951, 0x1e31: 0x8cb5, 0x1e32: 0x2959, 0x1e33: 0x2961, 0x1e34: 0x2040, 0x1e35: 0x2969, + 0x1e36: 0x2971, 0x1e37: 0x2979, 0x1e38: 0x2981, 0x1e39: 0x2989, 0x1e3a: 0x2991, 0x1e3b: 0x8cd5, + 0x1e3c: 0x2999, 0x1e3d: 0x8cf5, 0x1e3e: 0x29a1, 0x1e3f: 0x29a9, // Block 0x79, offset 0x1e40 - 0x1e40: 0xcb61, 0x1e41: 0xcb81, 0x1e42: 0xcba1, 0x1e43: 0x8b55, 0x1e44: 0xcbc1, 0x1e45: 0xcbe1, - 0x1e46: 0xcc01, 0x1e47: 0xcc21, 0x1e48: 0xcc41, 0x1e49: 0xcc61, 0x1e4a: 0xcc81, 0x1e4b: 0xcca1, - 0x1e4c: 0xccc1, 0x1e4d: 0x8b75, 0x1e4e: 0xcce1, 0x1e4f: 0xcd01, 0x1e50: 0xcd21, 0x1e51: 0xcd41, - 0x1e52: 0x8b95, 0x1e53: 0xcd61, 0x1e54: 0xcd81, 0x1e55: 0xc491, 0x1e56: 0x8bb5, 0x1e57: 0xcda1, - 0x1e58: 0xcdc1, 0x1e59: 0xcde1, 0x1e5a: 0xce01, 0x1e5b: 0xce21, 0x1e5c: 0x8bd5, 0x1e5d: 0xce41, - 0x1e5e: 0xce61, 0x1e5f: 0xce81, 0x1e60: 0xcea1, 0x1e61: 0xcec1, 0x1e62: 0xc7f1, 0x1e63: 0xcee1, - 0x1e64: 0xcf01, 0x1e65: 0xcf21, 0x1e66: 0xcf41, 0x1e67: 0xcf61, 0x1e68: 0xcf81, 0x1e69: 0xcfa1, - 0x1e6a: 0xcfc1, 0x1e6b: 0xcfe1, 0x1e6c: 0xd001, 0x1e6d: 0xd021, 0x1e6e: 0xd041, 0x1e6f: 0xd061, - 0x1e70: 0xd081, 0x1e71: 0xd0a1, 0x1e72: 0xd0a1, 0x1e73: 0xd0a1, 0x1e74: 0x8bf5, 0x1e75: 0xd0c1, - 0x1e76: 0xd0e1, 0x1e77: 0xd101, 0x1e78: 0x8c15, 0x1e79: 0xd121, 0x1e7a: 0xd141, 0x1e7b: 0xd161, - 0x1e7c: 0xd181, 0x1e7d: 0xd1a1, 0x1e7e: 0xd1c1, 0x1e7f: 0xd1e1, + 0x1e40: 0x29b1, 0x1e41: 0x29b9, 0x1e42: 0x29c1, 0x1e43: 0x29c9, 0x1e44: 0x29d1, 0x1e45: 0x29d9, + 0x1e46: 0x29e1, 0x1e47: 0x29e9, 0x1e48: 0x29f1, 0x1e49: 0x8d15, 0x1e4a: 0x29f9, 0x1e4b: 0x2a01, + 0x1e4c: 0x2a09, 0x1e4d: 0x2a11, 0x1e4e: 0x2a19, 0x1e4f: 0x8d35, 0x1e50: 0x2a21, 0x1e51: 0x8d55, + 0x1e52: 0x8d75, 0x1e53: 0x2a29, 0x1e54: 0x2a31, 0x1e55: 0x2a31, 0x1e56: 0x2a39, 0x1e57: 0x8d95, + 0x1e58: 0x8db5, 0x1e59: 0x2a41, 0x1e5a: 0x2a49, 0x1e5b: 0x2a51, 0x1e5c: 0x2a59, 0x1e5d: 0x2a61, + 0x1e5e: 0x2a69, 0x1e5f: 0x2a71, 0x1e60: 0x2a79, 0x1e61: 0x2a81, 0x1e62: 0x2a89, 0x1e63: 0x2a91, + 0x1e64: 0x8dd5, 0x1e65: 0x2a99, 0x1e66: 0x2aa1, 0x1e67: 0x2aa9, 0x1e68: 0x2ab1, 0x1e69: 0x2aa9, + 0x1e6a: 0x2ab9, 0x1e6b: 0x2ac1, 0x1e6c: 0x2ac9, 0x1e6d: 0x2ad1, 0x1e6e: 0x2ad9, 0x1e6f: 0x2ae1, + 0x1e70: 0x2ae9, 0x1e71: 0x2af1, 0x1e72: 0x2af9, 0x1e73: 0x2b01, 0x1e74: 0x2b09, 0x1e75: 0x2b11, + 0x1e76: 0x2b19, 0x1e77: 0x2b21, 0x1e78: 0x8df5, 0x1e79: 0x2b29, 0x1e7a: 0x2b31, 0x1e7b: 0x2b39, + 0x1e7c: 0x2b41, 0x1e7d: 0x2b49, 0x1e7e: 0x8e15, 0x1e7f: 0x2b51, // Block 0x7a, offset 0x1e80 - 0x1e80: 0xd201, 0x1e81: 0xd221, 0x1e82: 0xd241, 0x1e83: 0xd261, 0x1e84: 0xd281, 0x1e85: 0xd2a1, - 0x1e86: 0xd2a1, 0x1e87: 0xd2c1, 0x1e88: 0xd2e1, 0x1e89: 0xd301, 0x1e8a: 0xd321, 0x1e8b: 0xd341, - 0x1e8c: 0xd361, 0x1e8d: 0xd381, 0x1e8e: 0xd3a1, 0x1e8f: 0xd3c1, 0x1e90: 0xd3e1, 0x1e91: 0xd401, - 0x1e92: 0xd421, 0x1e93: 0xd441, 0x1e94: 0xd461, 0x1e95: 0xd481, 0x1e96: 0xd4a1, 0x1e97: 0xd4c1, - 0x1e98: 0xd4e1, 0x1e99: 0x8c35, 0x1e9a: 0xd501, 0x1e9b: 0xd521, 0x1e9c: 0xd541, 0x1e9d: 0xc371, - 0x1e9e: 0xd561, 0x1e9f: 0xd581, 0x1ea0: 0x8c55, 0x1ea1: 0x8c75, 0x1ea2: 0xd5a1, 0x1ea3: 0xd5c1, - 0x1ea4: 0xd5e1, 0x1ea5: 0xd601, 0x1ea6: 0xd621, 0x1ea7: 0xd641, 0x1ea8: 0x2040, 0x1ea9: 0xd661, - 0x1eaa: 0xd681, 0x1eab: 0xd681, 0x1eac: 0x8c95, 0x1ead: 0xd6a1, 0x1eae: 0xd6c1, 0x1eaf: 0xd6e1, - 0x1eb0: 0xd701, 0x1eb1: 0x8cb5, 0x1eb2: 0xd721, 0x1eb3: 0xd741, 0x1eb4: 0x2040, 0x1eb5: 0xd761, - 0x1eb6: 0xd781, 0x1eb7: 0xd7a1, 0x1eb8: 0xd7c1, 0x1eb9: 0xd7e1, 0x1eba: 0xd801, 0x1ebb: 0x8cd5, - 0x1ebc: 0xd821, 0x1ebd: 0x8cf5, 0x1ebe: 0xd841, 0x1ebf: 0xd861, + 0x1e80: 0x2b59, 0x1e81: 0x2b61, 0x1e82: 0x2b69, 0x1e83: 0x2b71, 0x1e84: 0x2b79, 0x1e85: 0x2b81, + 0x1e86: 0x2b89, 0x1e87: 0x2b91, 0x1e88: 0x2b99, 0x1e89: 0x2ba1, 0x1e8a: 0x8e35, 0x1e8b: 0x2ba9, + 0x1e8c: 0x2bb1, 0x1e8d: 0x2bb9, 0x1e8e: 0x2bc1, 0x1e8f: 0x2bc9, 0x1e90: 0x2bd1, 0x1e91: 0x2bd9, + 0x1e92: 0x2be1, 0x1e93: 0x2be9, 0x1e94: 0x2bf1, 0x1e95: 0x2bf9, 0x1e96: 0x2c01, 0x1e97: 0x2c09, + 0x1e98: 0x2c11, 0x1e99: 0x2c19, 0x1e9a: 0x2c21, 0x1e9b: 0x2c29, 0x1e9c: 0x2c31, 0x1e9d: 0x8e55, + 0x1e9e: 0x2c39, 0x1e9f: 0x2c41, 0x1ea0: 0x2c49, 0x1ea1: 0x2c51, 0x1ea2: 0x2c59, 0x1ea3: 0x8e75, + 0x1ea4: 0x2c61, 0x1ea5: 0x2c69, 0x1ea6: 0x2c71, 0x1ea7: 0x2c79, 0x1ea8: 0x2c81, 0x1ea9: 0x2c89, + 0x1eaa: 0x2c91, 0x1eab: 0x2c99, 0x1eac: 0x7f0d, 0x1ead: 0x2ca1, 0x1eae: 0x2ca9, 0x1eaf: 0x2cb1, + 0x1eb0: 0x8e95, 0x1eb1: 0x2cb9, 0x1eb2: 0x2cc1, 0x1eb3: 0x2cc9, 0x1eb4: 0x2cd1, 0x1eb5: 0x2cd9, + 0x1eb6: 0x2ce1, 0x1eb7: 0x8eb5, 0x1eb8: 0x8ed5, 0x1eb9: 0x8ef5, 0x1eba: 0x2ce9, 0x1ebb: 0x8f15, + 0x1ebc: 0x2cf1, 0x1ebd: 0x2cf9, 0x1ebe: 0x2d01, 0x1ebf: 0x2d09, // Block 0x7b, offset 0x1ec0 - 0x1ec0: 0xd881, 0x1ec1: 0xd8a1, 0x1ec2: 0xd8c1, 0x1ec3: 0xd8e1, 0x1ec4: 0xd901, 0x1ec5: 0xd921, - 0x1ec6: 0xd941, 0x1ec7: 0xd961, 0x1ec8: 0xd981, 0x1ec9: 0x8d15, 0x1eca: 0xd9a1, 0x1ecb: 0xd9c1, - 0x1ecc: 0xd9e1, 0x1ecd: 0xda01, 0x1ece: 0xda21, 0x1ecf: 0x8d35, 0x1ed0: 0xda41, 0x1ed1: 0x8d55, - 0x1ed2: 0x8d75, 0x1ed3: 0xda61, 0x1ed4: 0xda81, 0x1ed5: 0xda81, 0x1ed6: 0xdaa1, 0x1ed7: 0x8d95, - 0x1ed8: 0x8db5, 0x1ed9: 0xdac1, 0x1eda: 0xdae1, 0x1edb: 0xdb01, 0x1edc: 0xdb21, 0x1edd: 0xdb41, - 0x1ede: 0xdb61, 0x1edf: 0xdb81, 0x1ee0: 0xdba1, 0x1ee1: 0xdbc1, 0x1ee2: 0xdbe1, 0x1ee3: 0xdc01, - 0x1ee4: 0x8dd5, 0x1ee5: 0xdc21, 0x1ee6: 0xdc41, 0x1ee7: 0xdc61, 0x1ee8: 0xdc81, 0x1ee9: 0xdc61, - 0x1eea: 0xdca1, 0x1eeb: 0xdcc1, 0x1eec: 0xdce1, 0x1eed: 0xdd01, 0x1eee: 0xdd21, 0x1eef: 0xdd41, - 0x1ef0: 0xdd61, 0x1ef1: 0xdd81, 0x1ef2: 0xdda1, 0x1ef3: 0xddc1, 0x1ef4: 0xdde1, 0x1ef5: 0xde01, - 0x1ef6: 0xde21, 0x1ef7: 0xde41, 0x1ef8: 0x8df5, 0x1ef9: 0xde61, 0x1efa: 0xde81, 0x1efb: 0xdea1, - 0x1efc: 0xdec1, 0x1efd: 0xdee1, 0x1efe: 0x8e15, 0x1eff: 0xdf01, + 0x1ec0: 0x2d11, 0x1ec1: 0x2d19, 0x1ec2: 0x2d21, 0x1ec3: 0x2d29, 0x1ec4: 0x2d31, 0x1ec5: 0x2d39, + 0x1ec6: 0x8f35, 0x1ec7: 0x2d41, 0x1ec8: 0x2d49, 0x1ec9: 0x2d51, 0x1eca: 0x2d59, 0x1ecb: 0x2d61, + 0x1ecc: 0x2d69, 0x1ecd: 0x8f55, 0x1ece: 0x2d71, 0x1ecf: 0x2d79, 0x1ed0: 0x8f75, 0x1ed1: 0x8f95, + 0x1ed2: 0x2d81, 0x1ed3: 0x2d89, 0x1ed4: 0x2d91, 0x1ed5: 0x2d99, 0x1ed6: 0x2da1, 0x1ed7: 0x2da9, + 0x1ed8: 0x2db1, 0x1ed9: 0x2db9, 0x1eda: 0x2dc1, 0x1edb: 0x8fb5, 0x1edc: 0x2dc9, 0x1edd: 0x8fd5, + 0x1ede: 0x2dd1, 0x1edf: 0x2040, 0x1ee0: 0x2dd9, 0x1ee1: 0x2de1, 0x1ee2: 0x2de9, 0x1ee3: 0x8ff5, + 0x1ee4: 0x2df1, 0x1ee5: 0x2df9, 0x1ee6: 0x9015, 0x1ee7: 0x9035, 0x1ee8: 0x2e01, 0x1ee9: 0x2e09, + 0x1eea: 0x2e11, 0x1eeb: 0x2e19, 0x1eec: 0x2e21, 0x1eed: 0x2e21, 0x1eee: 0x2e29, 0x1eef: 0x2e31, + 0x1ef0: 0x2e39, 0x1ef1: 0x2e41, 0x1ef2: 0x2e49, 0x1ef3: 0x2e51, 0x1ef4: 0x2e59, 0x1ef5: 0x9055, + 0x1ef6: 0x2e61, 0x1ef7: 0x9075, 0x1ef8: 0x2e69, 0x1ef9: 0x9095, 0x1efa: 0x2e71, 0x1efb: 0x90b5, + 0x1efc: 0x90d5, 0x1efd: 0x90f5, 0x1efe: 0x2e79, 0x1eff: 0x2e81, // Block 0x7c, offset 0x1f00 - 0x1f00: 0xe601, 0x1f01: 0xe621, 0x1f02: 0xe641, 0x1f03: 0xe661, 0x1f04: 0xe681, 0x1f05: 0xe6a1, - 0x1f06: 0x8f35, 0x1f07: 0xe6c1, 0x1f08: 0xe6e1, 0x1f09: 0xe701, 0x1f0a: 0xe721, 0x1f0b: 0xe741, - 0x1f0c: 0xe761, 0x1f0d: 0x8f55, 0x1f0e: 0xe781, 0x1f0f: 0xe7a1, 0x1f10: 0x8f75, 0x1f11: 0x8f95, - 0x1f12: 0xe7c1, 0x1f13: 0xe7e1, 0x1f14: 0xe801, 0x1f15: 0xe821, 0x1f16: 0xe841, 0x1f17: 0xe861, - 0x1f18: 0xe881, 0x1f19: 0xe8a1, 0x1f1a: 0xe8c1, 0x1f1b: 0x8fb5, 0x1f1c: 0xe8e1, 0x1f1d: 0x8fd5, - 0x1f1e: 0xe901, 0x1f1f: 0x2040, 0x1f20: 0xe921, 0x1f21: 0xe941, 0x1f22: 0xe961, 0x1f23: 0x8ff5, - 0x1f24: 0xe981, 0x1f25: 0xe9a1, 0x1f26: 0x9015, 0x1f27: 0x9035, 0x1f28: 0xe9c1, 0x1f29: 0xe9e1, - 0x1f2a: 0xea01, 0x1f2b: 0xea21, 0x1f2c: 0xea41, 0x1f2d: 0xea41, 0x1f2e: 0xea61, 0x1f2f: 0xea81, - 0x1f30: 0xeaa1, 0x1f31: 0xeac1, 0x1f32: 0xeae1, 0x1f33: 0xeb01, 0x1f34: 0xeb21, 0x1f35: 0x9055, - 0x1f36: 0xeb41, 0x1f37: 0x9075, 0x1f38: 0xeb61, 0x1f39: 0x9095, 0x1f3a: 0xeb81, 0x1f3b: 0x90b5, - 0x1f3c: 0x90d5, 0x1f3d: 0x90f5, 0x1f3e: 0xeba1, 0x1f3f: 0xebc1, + 0x1f00: 0x2e89, 0x1f01: 0x9115, 0x1f02: 0x9135, 0x1f03: 0x9155, 0x1f04: 0x9175, 0x1f05: 0x2e91, + 0x1f06: 0x2e99, 0x1f07: 0x2e99, 0x1f08: 0x2ea1, 0x1f09: 0x2ea9, 0x1f0a: 0x2eb1, 0x1f0b: 0x2eb9, + 0x1f0c: 0x2ec1, 0x1f0d: 0x9195, 0x1f0e: 0x2ec9, 0x1f0f: 0x2ed1, 0x1f10: 0x2ed9, 0x1f11: 0x2ee1, + 0x1f12: 0x91b5, 0x1f13: 0x2ee9, 0x1f14: 0x91d5, 0x1f15: 0x91f5, 0x1f16: 0x2ef1, 0x1f17: 0x2ef9, + 0x1f18: 0x2f01, 0x1f19: 0x2f09, 0x1f1a: 0x2f11, 0x1f1b: 0x2f19, 0x1f1c: 0x9215, 0x1f1d: 0x9235, + 0x1f1e: 0x9255, 0x1f1f: 0x2040, 0x1f20: 0x2f21, 0x1f21: 0x9275, 0x1f22: 0x2f29, 0x1f23: 0x2f31, + 0x1f24: 0x2f39, 0x1f25: 0x9295, 0x1f26: 0x2f41, 0x1f27: 0x2f49, 0x1f28: 0x2f51, 0x1f29: 0x2f59, + 0x1f2a: 0x2f61, 0x1f2b: 0x92b5, 0x1f2c: 0x2f69, 0x1f2d: 0x2f71, 0x1f2e: 0x2f79, 0x1f2f: 0x2f81, + 0x1f30: 0x2f89, 0x1f31: 0x2f91, 0x1f32: 0x92d5, 0x1f33: 0x92f5, 0x1f34: 0x2f99, 0x1f35: 0x9315, + 0x1f36: 0x2fa1, 0x1f37: 0x9335, 0x1f38: 0x2fa9, 0x1f39: 0x2fb1, 0x1f3a: 0x2fb9, 0x1f3b: 0x9355, + 0x1f3c: 0x9375, 0x1f3d: 0x2fc1, 0x1f3e: 0x9395, 0x1f3f: 0x2fc9, // Block 0x7d, offset 0x1f40 - 0x1f40: 0xebe1, 0x1f41: 0x9115, 0x1f42: 0x9135, 0x1f43: 0x9155, 0x1f44: 0x9175, 0x1f45: 0xec01, - 0x1f46: 0xec21, 0x1f47: 0xec21, 0x1f48: 0xec41, 0x1f49: 0xec61, 0x1f4a: 0xec81, 0x1f4b: 0xeca1, - 0x1f4c: 0xecc1, 0x1f4d: 0x9195, 0x1f4e: 0xece1, 0x1f4f: 0xed01, 0x1f50: 0xed21, 0x1f51: 0xed41, - 0x1f52: 0x91b5, 0x1f53: 0xed61, 0x1f54: 0x91d5, 0x1f55: 0x91f5, 0x1f56: 0xed81, 0x1f57: 0xeda1, - 0x1f58: 0xedc1, 0x1f59: 0xede1, 0x1f5a: 0xee01, 0x1f5b: 0xee21, 0x1f5c: 0x9215, 0x1f5d: 0x9235, - 0x1f5e: 0x9255, 0x1f5f: 0x2040, 0x1f60: 0xee41, 0x1f61: 0x9275, 0x1f62: 0xee61, 0x1f63: 0xee81, - 0x1f64: 0xeea1, 0x1f65: 0x9295, 0x1f66: 0xeec1, 0x1f67: 0xeee1, 0x1f68: 0xef01, 0x1f69: 0xef21, - 0x1f6a: 0xef41, 0x1f6b: 0x92b5, 0x1f6c: 0xef61, 0x1f6d: 0xef81, 0x1f6e: 0xefa1, 0x1f6f: 0xefc1, - 0x1f70: 0xefe1, 0x1f71: 0xf001, 0x1f72: 0x92d5, 0x1f73: 0x92f5, 0x1f74: 0xf021, 0x1f75: 0x9315, - 0x1f76: 0xf041, 0x1f77: 0x9335, 0x1f78: 0xf061, 0x1f79: 0xf081, 0x1f7a: 0xf0a1, 0x1f7b: 0x9355, - 0x1f7c: 0x9375, 0x1f7d: 0xf0c1, 0x1f7e: 0x9395, 0x1f7f: 0xf0e1, + 0x1f40: 0x93b5, 0x1f41: 0x2fd1, 0x1f42: 0x2fd9, 0x1f43: 0x2fe1, 0x1f44: 0x2fe9, 0x1f45: 0x2ff1, + 0x1f46: 0x2ff9, 0x1f47: 0x93d5, 0x1f48: 0x93f5, 0x1f49: 0x9415, 0x1f4a: 0x9435, 0x1f4b: 0x2a29, + 0x1f4c: 0x3001, 0x1f4d: 0x3009, 0x1f4e: 0x3011, 0x1f4f: 0x3019, 0x1f50: 0x3021, 0x1f51: 0x3029, + 0x1f52: 0x3031, 0x1f53: 0x3039, 0x1f54: 0x3041, 0x1f55: 0x3049, 0x1f56: 0x3051, 0x1f57: 0x9455, + 0x1f58: 0x3059, 0x1f59: 0x3061, 0x1f5a: 0x3069, 0x1f5b: 0x3071, 0x1f5c: 0x3079, 0x1f5d: 0x3081, + 0x1f5e: 0x3089, 0x1f5f: 0x3091, 0x1f60: 0x3099, 0x1f61: 0x30a1, 0x1f62: 0x30a9, 0x1f63: 0x30b1, + 0x1f64: 0x9475, 0x1f65: 0x9495, 0x1f66: 0x94b5, 0x1f67: 0x30b9, 0x1f68: 0x30c1, 0x1f69: 0x30c9, + 0x1f6a: 0x30d1, 0x1f6b: 0x94d5, 0x1f6c: 0x30d9, 0x1f6d: 0x94f5, 0x1f6e: 0x30e1, 0x1f6f: 0x30e9, + 0x1f70: 0x9515, 0x1f71: 0x9535, 0x1f72: 0x30f1, 0x1f73: 0x30f9, 0x1f74: 0x3101, 0x1f75: 0x3109, + 0x1f76: 0x3111, 0x1f77: 0x3119, 0x1f78: 0x3121, 0x1f79: 0x3129, 0x1f7a: 0x3131, 0x1f7b: 0x3139, + 0x1f7c: 0x3141, 0x1f7d: 0x3149, 0x1f7e: 0x3151, 0x1f7f: 0x2040, // Block 0x7e, offset 0x1f80 - 0x1f80: 0xf721, 0x1f81: 0xf741, 0x1f82: 0xf761, 0x1f83: 0xf781, 0x1f84: 0xf7a1, 0x1f85: 0x9555, - 0x1f86: 0xf7c1, 0x1f87: 0xf7e1, 0x1f88: 0xf801, 0x1f89: 0xf821, 0x1f8a: 0xf841, 0x1f8b: 0x9575, - 0x1f8c: 0x9595, 0x1f8d: 0xf861, 0x1f8e: 0xf881, 0x1f8f: 0xf8a1, 0x1f90: 0xf8c1, 0x1f91: 0xf8e1, - 0x1f92: 0xf901, 0x1f93: 0x95b5, 0x1f94: 0xf921, 0x1f95: 0xf941, 0x1f96: 0xf961, 0x1f97: 0xf981, - 0x1f98: 0x95d5, 0x1f99: 0x95f5, 0x1f9a: 0xf9a1, 0x1f9b: 0xf9c1, 0x1f9c: 0xf9e1, 0x1f9d: 0x9615, - 0x1f9e: 0xfa01, 0x1f9f: 0xfa21, 0x1fa0: 0x684d, 0x1fa1: 0x9635, 0x1fa2: 0xfa41, 0x1fa3: 0xfa61, - 0x1fa4: 0xfa81, 0x1fa5: 0x9655, 0x1fa6: 0xfaa1, 0x1fa7: 0xfac1, 0x1fa8: 0xfae1, 0x1fa9: 0xfb01, - 0x1faa: 0xfb21, 0x1fab: 0xfb41, 0x1fac: 0xfb61, 0x1fad: 0x9675, 0x1fae: 0xfb81, 0x1faf: 0xfba1, - 0x1fb0: 0xfbc1, 0x1fb1: 0x9695, 0x1fb2: 0xfbe1, 0x1fb3: 0xfc01, 0x1fb4: 0xfc21, 0x1fb5: 0xfc41, - 0x1fb6: 0x7b6d, 0x1fb7: 0x96b5, 0x1fb8: 0xfc61, 0x1fb9: 0xfc81, 0x1fba: 0xfca1, 0x1fbb: 0x96d5, - 0x1fbc: 0xfcc1, 0x1fbd: 0x96f5, 0x1fbe: 0xfce1, 0x1fbf: 0xfce1, + 0x1f80: 0x3159, 0x1f81: 0x3161, 0x1f82: 0x3169, 0x1f83: 0x3171, 0x1f84: 0x3179, 0x1f85: 0x9555, + 0x1f86: 0x3181, 0x1f87: 0x3189, 0x1f88: 0x3191, 0x1f89: 0x3199, 0x1f8a: 0x31a1, 0x1f8b: 0x9575, + 0x1f8c: 0x9595, 0x1f8d: 0x31a9, 0x1f8e: 0x31b1, 0x1f8f: 0x31b9, 0x1f90: 0x31c1, 0x1f91: 0x31c9, + 0x1f92: 0x31d1, 0x1f93: 0x95b5, 0x1f94: 0x31d9, 0x1f95: 0x31e1, 0x1f96: 0x31e9, 0x1f97: 0x31f1, + 0x1f98: 0x95d5, 0x1f99: 0x95f5, 0x1f9a: 0x31f9, 0x1f9b: 0x3201, 0x1f9c: 0x3209, 0x1f9d: 0x9615, + 0x1f9e: 0x3211, 0x1f9f: 0x3219, 0x1fa0: 0x684d, 0x1fa1: 0x9635, 0x1fa2: 0x3221, 0x1fa3: 0x3229, + 0x1fa4: 0x3231, 0x1fa5: 0x9655, 0x1fa6: 0x3239, 0x1fa7: 0x3241, 0x1fa8: 0x3249, 0x1fa9: 0x3251, + 0x1faa: 0x3259, 0x1fab: 0x3261, 0x1fac: 0x3269, 0x1fad: 0x9675, 0x1fae: 0x3271, 0x1faf: 0x3279, + 0x1fb0: 0x3281, 0x1fb1: 0x9695, 0x1fb2: 0x3289, 0x1fb3: 0x3291, 0x1fb4: 0x3299, 0x1fb5: 0x32a1, + 0x1fb6: 0x7b6d, 0x1fb7: 0x96b5, 0x1fb8: 0x32a9, 0x1fb9: 0x32b1, 0x1fba: 0x32b9, 0x1fbb: 0x96d5, + 0x1fbc: 0x32c1, 0x1fbd: 0x96f5, 0x1fbe: 0x32c9, 0x1fbf: 0x32c9, // Block 0x7f, offset 0x1fc0 - 0x1fc0: 0xfd01, 0x1fc1: 0x9715, 0x1fc2: 0xfd21, 0x1fc3: 0xfd41, 0x1fc4: 0xfd61, 0x1fc5: 0xfd81, - 0x1fc6: 0xfda1, 0x1fc7: 0xfdc1, 0x1fc8: 0xfde1, 0x1fc9: 0x9735, 0x1fca: 0xfe01, 0x1fcb: 0xfe21, - 0x1fcc: 0xfe41, 0x1fcd: 0xfe61, 0x1fce: 0xfe81, 0x1fcf: 0xfea1, 0x1fd0: 0x9755, 0x1fd1: 0xfec1, - 0x1fd2: 0x9775, 0x1fd3: 0x9795, 0x1fd4: 0x97b5, 0x1fd5: 0xfee1, 0x1fd6: 0xff01, 0x1fd7: 0xff21, - 0x1fd8: 0xff41, 0x1fd9: 0xff61, 0x1fda: 0xff81, 0x1fdb: 0xffa1, 0x1fdc: 0xffc1, 0x1fdd: 0x97d5, + 0x1fc0: 0x32d1, 0x1fc1: 0x9715, 0x1fc2: 0x32d9, 0x1fc3: 0x32e1, 0x1fc4: 0x32e9, 0x1fc5: 0x32f1, + 0x1fc6: 0x32f9, 0x1fc7: 0x3301, 0x1fc8: 0x3309, 0x1fc9: 0x9735, 0x1fca: 0x3311, 0x1fcb: 0x3319, + 0x1fcc: 0x3321, 0x1fcd: 0x3329, 0x1fce: 0x3331, 0x1fcf: 0x3339, 0x1fd0: 0x9755, 0x1fd1: 0x3341, + 0x1fd2: 0x9775, 0x1fd3: 0x9795, 0x1fd4: 0x97b5, 0x1fd5: 0x3349, 0x1fd6: 0x3351, 0x1fd7: 0x3359, + 0x1fd8: 0x3361, 0x1fd9: 0x3369, 0x1fda: 0x3371, 0x1fdb: 0x3379, 0x1fdc: 0x3381, 0x1fdd: 0x97d5, 0x1fde: 0x0040, 0x1fdf: 0x0040, 0x1fe0: 0x0040, 0x1fe1: 0x0040, 0x1fe2: 0x0040, 0x1fe3: 0x0040, 0x1fe4: 0x0040, 0x1fe5: 0x0040, 0x1fe6: 0x0040, 0x1fe7: 0x0040, 0x1fe8: 0x0040, 0x1fe9: 0x0040, 0x1fea: 0x0040, 0x1feb: 0x0040, 0x1fec: 0x0040, 0x1fed: 0x0040, 0x1fee: 0x0040, 0x1fef: 0x0040, @@ -2134,7 +2277,7 @@ var idnaIndex = [2368]uint16{ 0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37, // Block 0x7, offset 0x1c0 0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1, - 0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41, + 0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0xe3, 0x1cd: 0xe4, 0x1ce: 0x3e, 0x1cf: 0x3f, 0x1d0: 0xa0, 0x1d1: 0xa0, 0x1d2: 0xa0, 0x1d3: 0xa0, 0x1d4: 0xa0, 0x1d5: 0xa0, 0x1d6: 0xa0, 0x1d7: 0xa0, 0x1d8: 0xa0, 0x1d9: 0xa0, 0x1da: 0xa0, 0x1db: 0xa0, 0x1dc: 0xa0, 0x1dd: 0xa0, 0x1de: 0xa0, 0x1df: 0xa0, 0x1e0: 0xa0, 0x1e1: 0xa0, 0x1e2: 0xa0, 0x1e3: 0xa0, 0x1e4: 0xa0, 0x1e5: 0xa0, 0x1e6: 0xa0, 0x1e7: 0xa0, @@ -2167,143 +2310,143 @@ var idnaIndex = [2368]uint16{ 0x2a0: 0xa0, 0x2a1: 0xa0, 0x2a2: 0xa0, 0x2a3: 0xa0, 0x2a4: 0xa0, 0x2a5: 0xa0, 0x2a6: 0xa0, 0x2a7: 0xa0, 0x2a8: 0xa0, 0x2a9: 0xa0, 0x2aa: 0xa0, 0x2ab: 0xa0, 0x2ac: 0xa0, 0x2ad: 0xa0, 0x2ae: 0xa0, 0x2af: 0xa0, 0x2b0: 0xa0, 0x2b1: 0xa0, 0x2b2: 0xa0, 0x2b3: 0xa0, 0x2b4: 0xa0, 0x2b5: 0xa0, 0x2b6: 0xa0, 0x2b7: 0xa0, - 0x2b8: 0xa0, 0x2b9: 0xa0, 0x2ba: 0xa0, 0x2bb: 0xa0, 0x2bc: 0xa0, 0x2bd: 0xa0, 0x2be: 0xa0, 0x2bf: 0xe3, + 0x2b8: 0xa0, 0x2b9: 0xa0, 0x2ba: 0xa0, 0x2bb: 0xa0, 0x2bc: 0xa0, 0x2bd: 0xa0, 0x2be: 0xa0, 0x2bf: 0xe5, // Block 0xb, offset 0x2c0 0x2c0: 0xa0, 0x2c1: 0xa0, 0x2c2: 0xa0, 0x2c3: 0xa0, 0x2c4: 0xa0, 0x2c5: 0xa0, 0x2c6: 0xa0, 0x2c7: 0xa0, 0x2c8: 0xa0, 0x2c9: 0xa0, 0x2ca: 0xa0, 0x2cb: 0xa0, 0x2cc: 0xa0, 0x2cd: 0xa0, 0x2ce: 0xa0, 0x2cf: 0xa0, - 0x2d0: 0xa0, 0x2d1: 0xa0, 0x2d2: 0xe4, 0x2d3: 0xe5, 0x2d4: 0xa0, 0x2d5: 0xa0, 0x2d6: 0xa0, 0x2d7: 0xa0, - 0x2d8: 0xe6, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe7, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe8, - 0x2e0: 0xe9, 0x2e1: 0xea, 0x2e2: 0xeb, 0x2e3: 0xec, 0x2e4: 0xed, 0x2e5: 0xee, 0x2e6: 0xef, 0x2e7: 0xf0, - 0x2e8: 0xf1, 0x2e9: 0xf2, 0x2ea: 0xf3, 0x2eb: 0xf4, 0x2ec: 0xf5, 0x2ed: 0xf6, 0x2ee: 0xf7, 0x2ef: 0xf8, + 0x2d0: 0xa0, 0x2d1: 0xa0, 0x2d2: 0xe6, 0x2d3: 0xe7, 0x2d4: 0xa0, 0x2d5: 0xa0, 0x2d6: 0xa0, 0x2d7: 0xa0, + 0x2d8: 0xe8, 0x2d9: 0x40, 0x2da: 0x41, 0x2db: 0xe9, 0x2dc: 0x42, 0x2dd: 0x43, 0x2de: 0x44, 0x2df: 0xea, + 0x2e0: 0xeb, 0x2e1: 0xec, 0x2e2: 0xed, 0x2e3: 0xee, 0x2e4: 0xef, 0x2e5: 0xf0, 0x2e6: 0xf1, 0x2e7: 0xf2, + 0x2e8: 0xf3, 0x2e9: 0xf4, 0x2ea: 0xf5, 0x2eb: 0xf6, 0x2ec: 0xf7, 0x2ed: 0xf8, 0x2ee: 0xf9, 0x2ef: 0xfa, 0x2f0: 0xa0, 0x2f1: 0xa0, 0x2f2: 0xa0, 0x2f3: 0xa0, 0x2f4: 0xa0, 0x2f5: 0xa0, 0x2f6: 0xa0, 0x2f7: 0xa0, 0x2f8: 0xa0, 0x2f9: 0xa0, 0x2fa: 0xa0, 0x2fb: 0xa0, 0x2fc: 0xa0, 0x2fd: 0xa0, 0x2fe: 0xa0, 0x2ff: 0xa0, // Block 0xc, offset 0x300 0x300: 0xa0, 0x301: 0xa0, 0x302: 0xa0, 0x303: 0xa0, 0x304: 0xa0, 0x305: 0xa0, 0x306: 0xa0, 0x307: 0xa0, 0x308: 0xa0, 0x309: 0xa0, 0x30a: 0xa0, 0x30b: 0xa0, 0x30c: 0xa0, 0x30d: 0xa0, 0x30e: 0xa0, 0x30f: 0xa0, 0x310: 0xa0, 0x311: 0xa0, 0x312: 0xa0, 0x313: 0xa0, 0x314: 0xa0, 0x315: 0xa0, 0x316: 0xa0, 0x317: 0xa0, - 0x318: 0xa0, 0x319: 0xa0, 0x31a: 0xa0, 0x31b: 0xa0, 0x31c: 0xa0, 0x31d: 0xa0, 0x31e: 0xf9, 0x31f: 0xfa, + 0x318: 0xa0, 0x319: 0xa0, 0x31a: 0xa0, 0x31b: 0xa0, 0x31c: 0xa0, 0x31d: 0xa0, 0x31e: 0xfb, 0x31f: 0xfc, // Block 0xd, offset 0x340 - 0x340: 0xfb, 0x341: 0xfb, 0x342: 0xfb, 0x343: 0xfb, 0x344: 0xfb, 0x345: 0xfb, 0x346: 0xfb, 0x347: 0xfb, - 0x348: 0xfb, 0x349: 0xfb, 0x34a: 0xfb, 0x34b: 0xfb, 0x34c: 0xfb, 0x34d: 0xfb, 0x34e: 0xfb, 0x34f: 0xfb, - 0x350: 0xfb, 0x351: 0xfb, 0x352: 0xfb, 0x353: 0xfb, 0x354: 0xfb, 0x355: 0xfb, 0x356: 0xfb, 0x357: 0xfb, - 0x358: 0xfb, 0x359: 0xfb, 0x35a: 0xfb, 0x35b: 0xfb, 0x35c: 0xfb, 0x35d: 0xfb, 0x35e: 0xfb, 0x35f: 0xfb, - 0x360: 0xfb, 0x361: 0xfb, 0x362: 0xfb, 0x363: 0xfb, 0x364: 0xfb, 0x365: 0xfb, 0x366: 0xfb, 0x367: 0xfb, - 0x368: 0xfb, 0x369: 0xfb, 0x36a: 0xfb, 0x36b: 0xfb, 0x36c: 0xfb, 0x36d: 0xfb, 0x36e: 0xfb, 0x36f: 0xfb, - 0x370: 0xfb, 0x371: 0xfb, 0x372: 0xfb, 0x373: 0xfb, 0x374: 0xfb, 0x375: 0xfb, 0x376: 0xfb, 0x377: 0xfb, - 0x378: 0xfb, 0x379: 0xfb, 0x37a: 0xfb, 0x37b: 0xfb, 0x37c: 0xfb, 0x37d: 0xfb, 0x37e: 0xfb, 0x37f: 0xfb, + 0x340: 0xfd, 0x341: 0xfd, 0x342: 0xfd, 0x343: 0xfd, 0x344: 0xfd, 0x345: 0xfd, 0x346: 0xfd, 0x347: 0xfd, + 0x348: 0xfd, 0x349: 0xfd, 0x34a: 0xfd, 0x34b: 0xfd, 0x34c: 0xfd, 0x34d: 0xfd, 0x34e: 0xfd, 0x34f: 0xfd, + 0x350: 0xfd, 0x351: 0xfd, 0x352: 0xfd, 0x353: 0xfd, 0x354: 0xfd, 0x355: 0xfd, 0x356: 0xfd, 0x357: 0xfd, + 0x358: 0xfd, 0x359: 0xfd, 0x35a: 0xfd, 0x35b: 0xfd, 0x35c: 0xfd, 0x35d: 0xfd, 0x35e: 0xfd, 0x35f: 0xfd, + 0x360: 0xfd, 0x361: 0xfd, 0x362: 0xfd, 0x363: 0xfd, 0x364: 0xfd, 0x365: 0xfd, 0x366: 0xfd, 0x367: 0xfd, + 0x368: 0xfd, 0x369: 0xfd, 0x36a: 0xfd, 0x36b: 0xfd, 0x36c: 0xfd, 0x36d: 0xfd, 0x36e: 0xfd, 0x36f: 0xfd, + 0x370: 0xfd, 0x371: 0xfd, 0x372: 0xfd, 0x373: 0xfd, 0x374: 0xfd, 0x375: 0xfd, 0x376: 0xfd, 0x377: 0xfd, + 0x378: 0xfd, 0x379: 0xfd, 0x37a: 0xfd, 0x37b: 0xfd, 0x37c: 0xfd, 0x37d: 0xfd, 0x37e: 0xfd, 0x37f: 0xfd, // Block 0xe, offset 0x380 - 0x380: 0xfb, 0x381: 0xfb, 0x382: 0xfb, 0x383: 0xfb, 0x384: 0xfb, 0x385: 0xfb, 0x386: 0xfb, 0x387: 0xfb, - 0x388: 0xfb, 0x389: 0xfb, 0x38a: 0xfb, 0x38b: 0xfb, 0x38c: 0xfb, 0x38d: 0xfb, 0x38e: 0xfb, 0x38f: 0xfb, - 0x390: 0xfb, 0x391: 0xfb, 0x392: 0xfb, 0x393: 0xfb, 0x394: 0xfb, 0x395: 0xfb, 0x396: 0xfb, 0x397: 0xfb, - 0x398: 0xfb, 0x399: 0xfb, 0x39a: 0xfb, 0x39b: 0xfb, 0x39c: 0xfb, 0x39d: 0xfb, 0x39e: 0xfb, 0x39f: 0xfb, - 0x3a0: 0xfb, 0x3a1: 0xfb, 0x3a2: 0xfb, 0x3a3: 0xfb, 0x3a4: 0xfc, 0x3a5: 0xfd, 0x3a6: 0xfe, 0x3a7: 0xff, - 0x3a8: 0x47, 0x3a9: 0x100, 0x3aa: 0x101, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c, - 0x3b0: 0x102, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x103, 0x3b7: 0x52, - 0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a, + 0x380: 0xfd, 0x381: 0xfd, 0x382: 0xfd, 0x383: 0xfd, 0x384: 0xfd, 0x385: 0xfd, 0x386: 0xfd, 0x387: 0xfd, + 0x388: 0xfd, 0x389: 0xfd, 0x38a: 0xfd, 0x38b: 0xfd, 0x38c: 0xfd, 0x38d: 0xfd, 0x38e: 0xfd, 0x38f: 0xfd, + 0x390: 0xfd, 0x391: 0xfd, 0x392: 0xfd, 0x393: 0xfd, 0x394: 0xfd, 0x395: 0xfd, 0x396: 0xfd, 0x397: 0xfd, + 0x398: 0xfd, 0x399: 0xfd, 0x39a: 0xfd, 0x39b: 0xfd, 0x39c: 0xfd, 0x39d: 0xfd, 0x39e: 0xfd, 0x39f: 0xfd, + 0x3a0: 0xfd, 0x3a1: 0xfd, 0x3a2: 0xfd, 0x3a3: 0xfd, 0x3a4: 0xfe, 0x3a5: 0xff, 0x3a6: 0x100, 0x3a7: 0x101, + 0x3a8: 0x45, 0x3a9: 0x102, 0x3aa: 0x103, 0x3ab: 0x46, 0x3ac: 0x47, 0x3ad: 0x48, 0x3ae: 0x49, 0x3af: 0x4a, + 0x3b0: 0x104, 0x3b1: 0x4b, 0x3b2: 0x4c, 0x3b3: 0x4d, 0x3b4: 0x4e, 0x3b5: 0x4f, 0x3b6: 0x105, 0x3b7: 0x50, + 0x3b8: 0x51, 0x3b9: 0x52, 0x3ba: 0x53, 0x3bb: 0x54, 0x3bc: 0x55, 0x3bd: 0x56, 0x3be: 0x57, 0x3bf: 0x58, // Block 0xf, offset 0x3c0 - 0x3c0: 0x104, 0x3c1: 0x105, 0x3c2: 0xa0, 0x3c3: 0x106, 0x3c4: 0x107, 0x3c5: 0x9c, 0x3c6: 0x108, 0x3c7: 0x109, - 0x3c8: 0xfb, 0x3c9: 0xfb, 0x3ca: 0x10a, 0x3cb: 0x10b, 0x3cc: 0x10c, 0x3cd: 0x10d, 0x3ce: 0x10e, 0x3cf: 0x10f, - 0x3d0: 0x110, 0x3d1: 0xa0, 0x3d2: 0x111, 0x3d3: 0x112, 0x3d4: 0x113, 0x3d5: 0x114, 0x3d6: 0xfb, 0x3d7: 0xfb, - 0x3d8: 0xa0, 0x3d9: 0xa0, 0x3da: 0xa0, 0x3db: 0xa0, 0x3dc: 0x115, 0x3dd: 0x116, 0x3de: 0xfb, 0x3df: 0xfb, - 0x3e0: 0x117, 0x3e1: 0x118, 0x3e2: 0x119, 0x3e3: 0x11a, 0x3e4: 0x11b, 0x3e5: 0xfb, 0x3e6: 0x11c, 0x3e7: 0x11d, - 0x3e8: 0x11e, 0x3e9: 0x11f, 0x3ea: 0x120, 0x3eb: 0x5b, 0x3ec: 0x121, 0x3ed: 0x122, 0x3ee: 0x5c, 0x3ef: 0xfb, - 0x3f0: 0x123, 0x3f1: 0x124, 0x3f2: 0x125, 0x3f3: 0x126, 0x3f4: 0x127, 0x3f5: 0xfb, 0x3f6: 0xfb, 0x3f7: 0xfb, - 0x3f8: 0xfb, 0x3f9: 0x128, 0x3fa: 0x129, 0x3fb: 0xfb, 0x3fc: 0x12a, 0x3fd: 0x12b, 0x3fe: 0x12c, 0x3ff: 0x12d, + 0x3c0: 0x106, 0x3c1: 0x107, 0x3c2: 0xa0, 0x3c3: 0x108, 0x3c4: 0x109, 0x3c5: 0x9c, 0x3c6: 0x10a, 0x3c7: 0x10b, + 0x3c8: 0xfd, 0x3c9: 0xfd, 0x3ca: 0x10c, 0x3cb: 0x10d, 0x3cc: 0x10e, 0x3cd: 0x10f, 0x3ce: 0x110, 0x3cf: 0x111, + 0x3d0: 0x112, 0x3d1: 0xa0, 0x3d2: 0x113, 0x3d3: 0x114, 0x3d4: 0x115, 0x3d5: 0x116, 0x3d6: 0xfd, 0x3d7: 0xfd, + 0x3d8: 0xa0, 0x3d9: 0xa0, 0x3da: 0xa0, 0x3db: 0xa0, 0x3dc: 0x117, 0x3dd: 0x118, 0x3de: 0xfd, 0x3df: 0xfd, + 0x3e0: 0x119, 0x3e1: 0x11a, 0x3e2: 0x11b, 0x3e3: 0x11c, 0x3e4: 0x11d, 0x3e5: 0xfd, 0x3e6: 0x11e, 0x3e7: 0x11f, + 0x3e8: 0x120, 0x3e9: 0x121, 0x3ea: 0x122, 0x3eb: 0x59, 0x3ec: 0x123, 0x3ed: 0x124, 0x3ee: 0x5a, 0x3ef: 0xfd, + 0x3f0: 0x125, 0x3f1: 0x126, 0x3f2: 0x127, 0x3f3: 0x128, 0x3f4: 0x129, 0x3f5: 0xfd, 0x3f6: 0xfd, 0x3f7: 0xfd, + 0x3f8: 0xfd, 0x3f9: 0x12a, 0x3fa: 0x12b, 0x3fb: 0xfd, 0x3fc: 0x12c, 0x3fd: 0x12d, 0x3fe: 0x12e, 0x3ff: 0x12f, // Block 0x10, offset 0x400 - 0x400: 0x12e, 0x401: 0x12f, 0x402: 0x130, 0x403: 0x131, 0x404: 0x132, 0x405: 0x133, 0x406: 0x134, 0x407: 0x135, - 0x408: 0x136, 0x409: 0xfb, 0x40a: 0x137, 0x40b: 0x138, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xfb, 0x40f: 0xfb, - 0x410: 0x139, 0x411: 0x13a, 0x412: 0x13b, 0x413: 0x13c, 0x414: 0xfb, 0x415: 0xfb, 0x416: 0x13d, 0x417: 0x13e, - 0x418: 0x13f, 0x419: 0x140, 0x41a: 0x141, 0x41b: 0x142, 0x41c: 0x143, 0x41d: 0xfb, 0x41e: 0xfb, 0x41f: 0xfb, - 0x420: 0x144, 0x421: 0xfb, 0x422: 0x145, 0x423: 0x146, 0x424: 0x5f, 0x425: 0x147, 0x426: 0x148, 0x427: 0x149, - 0x428: 0x14a, 0x429: 0x14b, 0x42a: 0x14c, 0x42b: 0x14d, 0x42c: 0xfb, 0x42d: 0xfb, 0x42e: 0xfb, 0x42f: 0xfb, - 0x430: 0x14e, 0x431: 0x14f, 0x432: 0x150, 0x433: 0xfb, 0x434: 0x151, 0x435: 0x152, 0x436: 0x153, 0x437: 0xfb, - 0x438: 0xfb, 0x439: 0xfb, 0x43a: 0xfb, 0x43b: 0x154, 0x43c: 0xfb, 0x43d: 0xfb, 0x43e: 0x155, 0x43f: 0x156, + 0x400: 0x130, 0x401: 0x131, 0x402: 0x132, 0x403: 0x133, 0x404: 0x134, 0x405: 0x135, 0x406: 0x136, 0x407: 0x137, + 0x408: 0x138, 0x409: 0xfd, 0x40a: 0x139, 0x40b: 0x13a, 0x40c: 0x5b, 0x40d: 0x5c, 0x40e: 0xfd, 0x40f: 0xfd, + 0x410: 0x13b, 0x411: 0x13c, 0x412: 0x13d, 0x413: 0x13e, 0x414: 0xfd, 0x415: 0xfd, 0x416: 0x13f, 0x417: 0x140, + 0x418: 0x141, 0x419: 0x142, 0x41a: 0x143, 0x41b: 0x144, 0x41c: 0x145, 0x41d: 0xfd, 0x41e: 0xfd, 0x41f: 0xfd, + 0x420: 0x146, 0x421: 0xfd, 0x422: 0x147, 0x423: 0x148, 0x424: 0x5d, 0x425: 0x149, 0x426: 0x14a, 0x427: 0x14b, + 0x428: 0x14c, 0x429: 0x14d, 0x42a: 0x14e, 0x42b: 0x14f, 0x42c: 0xfd, 0x42d: 0xfd, 0x42e: 0xfd, 0x42f: 0xfd, + 0x430: 0x150, 0x431: 0x151, 0x432: 0x152, 0x433: 0xfd, 0x434: 0x153, 0x435: 0x154, 0x436: 0x155, 0x437: 0xfd, + 0x438: 0xfd, 0x439: 0xfd, 0x43a: 0xfd, 0x43b: 0x156, 0x43c: 0xfd, 0x43d: 0xfd, 0x43e: 0x157, 0x43f: 0x158, // Block 0x11, offset 0x440 0x440: 0xa0, 0x441: 0xa0, 0x442: 0xa0, 0x443: 0xa0, 0x444: 0xa0, 0x445: 0xa0, 0x446: 0xa0, 0x447: 0xa0, - 0x448: 0xa0, 0x449: 0xa0, 0x44a: 0xa0, 0x44b: 0xa0, 0x44c: 0xa0, 0x44d: 0xa0, 0x44e: 0x157, 0x44f: 0xfb, - 0x450: 0x9c, 0x451: 0x158, 0x452: 0xa0, 0x453: 0xa0, 0x454: 0xa0, 0x455: 0x159, 0x456: 0xfb, 0x457: 0xfb, - 0x458: 0xfb, 0x459: 0xfb, 0x45a: 0xfb, 0x45b: 0xfb, 0x45c: 0xfb, 0x45d: 0xfb, 0x45e: 0xfb, 0x45f: 0xfb, - 0x460: 0xfb, 0x461: 0xfb, 0x462: 0xfb, 0x463: 0xfb, 0x464: 0xfb, 0x465: 0xfb, 0x466: 0xfb, 0x467: 0xfb, - 0x468: 0xfb, 0x469: 0xfb, 0x46a: 0xfb, 0x46b: 0xfb, 0x46c: 0xfb, 0x46d: 0xfb, 0x46e: 0xfb, 0x46f: 0xfb, - 0x470: 0xfb, 0x471: 0xfb, 0x472: 0xfb, 0x473: 0xfb, 0x474: 0xfb, 0x475: 0xfb, 0x476: 0xfb, 0x477: 0xfb, - 0x478: 0xfb, 0x479: 0xfb, 0x47a: 0xfb, 0x47b: 0xfb, 0x47c: 0xfb, 0x47d: 0xfb, 0x47e: 0xfb, 0x47f: 0xfb, + 0x448: 0xa0, 0x449: 0xa0, 0x44a: 0xa0, 0x44b: 0xa0, 0x44c: 0xa0, 0x44d: 0xa0, 0x44e: 0x159, 0x44f: 0xfd, + 0x450: 0x9c, 0x451: 0x15a, 0x452: 0xa0, 0x453: 0xa0, 0x454: 0xa0, 0x455: 0x15b, 0x456: 0xfd, 0x457: 0xfd, + 0x458: 0xfd, 0x459: 0xfd, 0x45a: 0xfd, 0x45b: 0xfd, 0x45c: 0xfd, 0x45d: 0xfd, 0x45e: 0xfd, 0x45f: 0xfd, + 0x460: 0xfd, 0x461: 0xfd, 0x462: 0xfd, 0x463: 0xfd, 0x464: 0xfd, 0x465: 0xfd, 0x466: 0xfd, 0x467: 0xfd, + 0x468: 0xfd, 0x469: 0xfd, 0x46a: 0xfd, 0x46b: 0xfd, 0x46c: 0xfd, 0x46d: 0xfd, 0x46e: 0xfd, 0x46f: 0xfd, + 0x470: 0xfd, 0x471: 0xfd, 0x472: 0xfd, 0x473: 0xfd, 0x474: 0xfd, 0x475: 0xfd, 0x476: 0xfd, 0x477: 0xfd, + 0x478: 0xfd, 0x479: 0xfd, 0x47a: 0xfd, 0x47b: 0xfd, 0x47c: 0xfd, 0x47d: 0xfd, 0x47e: 0xfd, 0x47f: 0xfd, // Block 0x12, offset 0x480 0x480: 0xa0, 0x481: 0xa0, 0x482: 0xa0, 0x483: 0xa0, 0x484: 0xa0, 0x485: 0xa0, 0x486: 0xa0, 0x487: 0xa0, 0x488: 0xa0, 0x489: 0xa0, 0x48a: 0xa0, 0x48b: 0xa0, 0x48c: 0xa0, 0x48d: 0xa0, 0x48e: 0xa0, 0x48f: 0xa0, - 0x490: 0x15a, 0x491: 0xfb, 0x492: 0xfb, 0x493: 0xfb, 0x494: 0xfb, 0x495: 0xfb, 0x496: 0xfb, 0x497: 0xfb, - 0x498: 0xfb, 0x499: 0xfb, 0x49a: 0xfb, 0x49b: 0xfb, 0x49c: 0xfb, 0x49d: 0xfb, 0x49e: 0xfb, 0x49f: 0xfb, - 0x4a0: 0xfb, 0x4a1: 0xfb, 0x4a2: 0xfb, 0x4a3: 0xfb, 0x4a4: 0xfb, 0x4a5: 0xfb, 0x4a6: 0xfb, 0x4a7: 0xfb, - 0x4a8: 0xfb, 0x4a9: 0xfb, 0x4aa: 0xfb, 0x4ab: 0xfb, 0x4ac: 0xfb, 0x4ad: 0xfb, 0x4ae: 0xfb, 0x4af: 0xfb, - 0x4b0: 0xfb, 0x4b1: 0xfb, 0x4b2: 0xfb, 0x4b3: 0xfb, 0x4b4: 0xfb, 0x4b5: 0xfb, 0x4b6: 0xfb, 0x4b7: 0xfb, - 0x4b8: 0xfb, 0x4b9: 0xfb, 0x4ba: 0xfb, 0x4bb: 0xfb, 0x4bc: 0xfb, 0x4bd: 0xfb, 0x4be: 0xfb, 0x4bf: 0xfb, + 0x490: 0x15c, 0x491: 0xfd, 0x492: 0xfd, 0x493: 0xfd, 0x494: 0xfd, 0x495: 0xfd, 0x496: 0xfd, 0x497: 0xfd, + 0x498: 0xfd, 0x499: 0xfd, 0x49a: 0xfd, 0x49b: 0xfd, 0x49c: 0xfd, 0x49d: 0xfd, 0x49e: 0xfd, 0x49f: 0xfd, + 0x4a0: 0xfd, 0x4a1: 0xfd, 0x4a2: 0xfd, 0x4a3: 0xfd, 0x4a4: 0xfd, 0x4a5: 0xfd, 0x4a6: 0xfd, 0x4a7: 0xfd, + 0x4a8: 0xfd, 0x4a9: 0xfd, 0x4aa: 0xfd, 0x4ab: 0xfd, 0x4ac: 0xfd, 0x4ad: 0xfd, 0x4ae: 0xfd, 0x4af: 0xfd, + 0x4b0: 0xfd, 0x4b1: 0xfd, 0x4b2: 0xfd, 0x4b3: 0xfd, 0x4b4: 0xfd, 0x4b5: 0xfd, 0x4b6: 0xfd, 0x4b7: 0xfd, + 0x4b8: 0xfd, 0x4b9: 0xfd, 0x4ba: 0xfd, 0x4bb: 0xfd, 0x4bc: 0xfd, 0x4bd: 0xfd, 0x4be: 0xfd, 0x4bf: 0xfd, // Block 0x13, offset 0x4c0 - 0x4c0: 0xfb, 0x4c1: 0xfb, 0x4c2: 0xfb, 0x4c3: 0xfb, 0x4c4: 0xfb, 0x4c5: 0xfb, 0x4c6: 0xfb, 0x4c7: 0xfb, - 0x4c8: 0xfb, 0x4c9: 0xfb, 0x4ca: 0xfb, 0x4cb: 0xfb, 0x4cc: 0xfb, 0x4cd: 0xfb, 0x4ce: 0xfb, 0x4cf: 0xfb, + 0x4c0: 0xfd, 0x4c1: 0xfd, 0x4c2: 0xfd, 0x4c3: 0xfd, 0x4c4: 0xfd, 0x4c5: 0xfd, 0x4c6: 0xfd, 0x4c7: 0xfd, + 0x4c8: 0xfd, 0x4c9: 0xfd, 0x4ca: 0xfd, 0x4cb: 0xfd, 0x4cc: 0xfd, 0x4cd: 0xfd, 0x4ce: 0xfd, 0x4cf: 0xfd, 0x4d0: 0xa0, 0x4d1: 0xa0, 0x4d2: 0xa0, 0x4d3: 0xa0, 0x4d4: 0xa0, 0x4d5: 0xa0, 0x4d6: 0xa0, 0x4d7: 0xa0, - 0x4d8: 0xa0, 0x4d9: 0x15b, 0x4da: 0xfb, 0x4db: 0xfb, 0x4dc: 0xfb, 0x4dd: 0xfb, 0x4de: 0xfb, 0x4df: 0xfb, - 0x4e0: 0xfb, 0x4e1: 0xfb, 0x4e2: 0xfb, 0x4e3: 0xfb, 0x4e4: 0xfb, 0x4e5: 0xfb, 0x4e6: 0xfb, 0x4e7: 0xfb, - 0x4e8: 0xfb, 0x4e9: 0xfb, 0x4ea: 0xfb, 0x4eb: 0xfb, 0x4ec: 0xfb, 0x4ed: 0xfb, 0x4ee: 0xfb, 0x4ef: 0xfb, - 0x4f0: 0xfb, 0x4f1: 0xfb, 0x4f2: 0xfb, 0x4f3: 0xfb, 0x4f4: 0xfb, 0x4f5: 0xfb, 0x4f6: 0xfb, 0x4f7: 0xfb, - 0x4f8: 0xfb, 0x4f9: 0xfb, 0x4fa: 0xfb, 0x4fb: 0xfb, 0x4fc: 0xfb, 0x4fd: 0xfb, 0x4fe: 0xfb, 0x4ff: 0xfb, + 0x4d8: 0xa0, 0x4d9: 0x15d, 0x4da: 0xfd, 0x4db: 0xfd, 0x4dc: 0xfd, 0x4dd: 0xfd, 0x4de: 0xfd, 0x4df: 0xfd, + 0x4e0: 0xfd, 0x4e1: 0xfd, 0x4e2: 0xfd, 0x4e3: 0xfd, 0x4e4: 0xfd, 0x4e5: 0xfd, 0x4e6: 0xfd, 0x4e7: 0xfd, + 0x4e8: 0xfd, 0x4e9: 0xfd, 0x4ea: 0xfd, 0x4eb: 0xfd, 0x4ec: 0xfd, 0x4ed: 0xfd, 0x4ee: 0xfd, 0x4ef: 0xfd, + 0x4f0: 0xfd, 0x4f1: 0xfd, 0x4f2: 0xfd, 0x4f3: 0xfd, 0x4f4: 0xfd, 0x4f5: 0xfd, 0x4f6: 0xfd, 0x4f7: 0xfd, + 0x4f8: 0xfd, 0x4f9: 0xfd, 0x4fa: 0xfd, 0x4fb: 0xfd, 0x4fc: 0xfd, 0x4fd: 0xfd, 0x4fe: 0xfd, 0x4ff: 0xfd, // Block 0x14, offset 0x500 - 0x500: 0xfb, 0x501: 0xfb, 0x502: 0xfb, 0x503: 0xfb, 0x504: 0xfb, 0x505: 0xfb, 0x506: 0xfb, 0x507: 0xfb, - 0x508: 0xfb, 0x509: 0xfb, 0x50a: 0xfb, 0x50b: 0xfb, 0x50c: 0xfb, 0x50d: 0xfb, 0x50e: 0xfb, 0x50f: 0xfb, - 0x510: 0xfb, 0x511: 0xfb, 0x512: 0xfb, 0x513: 0xfb, 0x514: 0xfb, 0x515: 0xfb, 0x516: 0xfb, 0x517: 0xfb, - 0x518: 0xfb, 0x519: 0xfb, 0x51a: 0xfb, 0x51b: 0xfb, 0x51c: 0xfb, 0x51d: 0xfb, 0x51e: 0xfb, 0x51f: 0xfb, + 0x500: 0xfd, 0x501: 0xfd, 0x502: 0xfd, 0x503: 0xfd, 0x504: 0xfd, 0x505: 0xfd, 0x506: 0xfd, 0x507: 0xfd, + 0x508: 0xfd, 0x509: 0xfd, 0x50a: 0xfd, 0x50b: 0xfd, 0x50c: 0xfd, 0x50d: 0xfd, 0x50e: 0xfd, 0x50f: 0xfd, + 0x510: 0xfd, 0x511: 0xfd, 0x512: 0xfd, 0x513: 0xfd, 0x514: 0xfd, 0x515: 0xfd, 0x516: 0xfd, 0x517: 0xfd, + 0x518: 0xfd, 0x519: 0xfd, 0x51a: 0xfd, 0x51b: 0xfd, 0x51c: 0xfd, 0x51d: 0xfd, 0x51e: 0xfd, 0x51f: 0xfd, 0x520: 0xa0, 0x521: 0xa0, 0x522: 0xa0, 0x523: 0xa0, 0x524: 0xa0, 0x525: 0xa0, 0x526: 0xa0, 0x527: 0xa0, - 0x528: 0x14d, 0x529: 0x15c, 0x52a: 0xfb, 0x52b: 0x15d, 0x52c: 0x15e, 0x52d: 0x15f, 0x52e: 0x160, 0x52f: 0xfb, - 0x530: 0xfb, 0x531: 0xfb, 0x532: 0xfb, 0x533: 0xfb, 0x534: 0xfb, 0x535: 0xfb, 0x536: 0xfb, 0x537: 0xfb, - 0x538: 0xfb, 0x539: 0x161, 0x53a: 0x162, 0x53b: 0xfb, 0x53c: 0xa0, 0x53d: 0x163, 0x53e: 0x164, 0x53f: 0x165, + 0x528: 0x14f, 0x529: 0x15e, 0x52a: 0xfd, 0x52b: 0x15f, 0x52c: 0x160, 0x52d: 0x161, 0x52e: 0x162, 0x52f: 0xfd, + 0x530: 0xfd, 0x531: 0xfd, 0x532: 0xfd, 0x533: 0xfd, 0x534: 0xfd, 0x535: 0xfd, 0x536: 0xfd, 0x537: 0xfd, + 0x538: 0xfd, 0x539: 0x163, 0x53a: 0x164, 0x53b: 0xfd, 0x53c: 0xa0, 0x53d: 0x165, 0x53e: 0x166, 0x53f: 0x167, // Block 0x15, offset 0x540 0x540: 0xa0, 0x541: 0xa0, 0x542: 0xa0, 0x543: 0xa0, 0x544: 0xa0, 0x545: 0xa0, 0x546: 0xa0, 0x547: 0xa0, 0x548: 0xa0, 0x549: 0xa0, 0x54a: 0xa0, 0x54b: 0xa0, 0x54c: 0xa0, 0x54d: 0xa0, 0x54e: 0xa0, 0x54f: 0xa0, 0x550: 0xa0, 0x551: 0xa0, 0x552: 0xa0, 0x553: 0xa0, 0x554: 0xa0, 0x555: 0xa0, 0x556: 0xa0, 0x557: 0xa0, - 0x558: 0xa0, 0x559: 0xa0, 0x55a: 0xa0, 0x55b: 0xa0, 0x55c: 0xa0, 0x55d: 0xa0, 0x55e: 0xa0, 0x55f: 0x166, + 0x558: 0xa0, 0x559: 0xa0, 0x55a: 0xa0, 0x55b: 0xa0, 0x55c: 0xa0, 0x55d: 0xa0, 0x55e: 0xa0, 0x55f: 0x168, 0x560: 0xa0, 0x561: 0xa0, 0x562: 0xa0, 0x563: 0xa0, 0x564: 0xa0, 0x565: 0xa0, 0x566: 0xa0, 0x567: 0xa0, 0x568: 0xa0, 0x569: 0xa0, 0x56a: 0xa0, 0x56b: 0xa0, 0x56c: 0xa0, 0x56d: 0xa0, 0x56e: 0xa0, 0x56f: 0xa0, - 0x570: 0xa0, 0x571: 0xa0, 0x572: 0xa0, 0x573: 0x167, 0x574: 0x168, 0x575: 0xfb, 0x576: 0xfb, 0x577: 0xfb, - 0x578: 0xfb, 0x579: 0xfb, 0x57a: 0xfb, 0x57b: 0xfb, 0x57c: 0xfb, 0x57d: 0xfb, 0x57e: 0xfb, 0x57f: 0xfb, + 0x570: 0xa0, 0x571: 0xa0, 0x572: 0xa0, 0x573: 0x169, 0x574: 0x16a, 0x575: 0xfd, 0x576: 0xfd, 0x577: 0xfd, + 0x578: 0xfd, 0x579: 0xfd, 0x57a: 0xfd, 0x57b: 0xfd, 0x57c: 0xfd, 0x57d: 0xfd, 0x57e: 0xfd, 0x57f: 0xfd, // Block 0x16, offset 0x580 - 0x580: 0xa0, 0x581: 0xa0, 0x582: 0xa0, 0x583: 0xa0, 0x584: 0x169, 0x585: 0x16a, 0x586: 0xa0, 0x587: 0xa0, - 0x588: 0xa0, 0x589: 0xa0, 0x58a: 0xa0, 0x58b: 0x16b, 0x58c: 0xfb, 0x58d: 0xfb, 0x58e: 0xfb, 0x58f: 0xfb, - 0x590: 0xfb, 0x591: 0xfb, 0x592: 0xfb, 0x593: 0xfb, 0x594: 0xfb, 0x595: 0xfb, 0x596: 0xfb, 0x597: 0xfb, - 0x598: 0xfb, 0x599: 0xfb, 0x59a: 0xfb, 0x59b: 0xfb, 0x59c: 0xfb, 0x59d: 0xfb, 0x59e: 0xfb, 0x59f: 0xfb, - 0x5a0: 0xfb, 0x5a1: 0xfb, 0x5a2: 0xfb, 0x5a3: 0xfb, 0x5a4: 0xfb, 0x5a5: 0xfb, 0x5a6: 0xfb, 0x5a7: 0xfb, - 0x5a8: 0xfb, 0x5a9: 0xfb, 0x5aa: 0xfb, 0x5ab: 0xfb, 0x5ac: 0xfb, 0x5ad: 0xfb, 0x5ae: 0xfb, 0x5af: 0xfb, - 0x5b0: 0xa0, 0x5b1: 0x16c, 0x5b2: 0x16d, 0x5b3: 0xfb, 0x5b4: 0xfb, 0x5b5: 0xfb, 0x5b6: 0xfb, 0x5b7: 0xfb, - 0x5b8: 0xfb, 0x5b9: 0xfb, 0x5ba: 0xfb, 0x5bb: 0xfb, 0x5bc: 0xfb, 0x5bd: 0xfb, 0x5be: 0xfb, 0x5bf: 0xfb, + 0x580: 0xa0, 0x581: 0xa0, 0x582: 0xa0, 0x583: 0xa0, 0x584: 0x16b, 0x585: 0x16c, 0x586: 0xa0, 0x587: 0xa0, + 0x588: 0xa0, 0x589: 0xa0, 0x58a: 0xa0, 0x58b: 0x16d, 0x58c: 0xfd, 0x58d: 0xfd, 0x58e: 0xfd, 0x58f: 0xfd, + 0x590: 0xfd, 0x591: 0xfd, 0x592: 0xfd, 0x593: 0xfd, 0x594: 0xfd, 0x595: 0xfd, 0x596: 0xfd, 0x597: 0xfd, + 0x598: 0xfd, 0x599: 0xfd, 0x59a: 0xfd, 0x59b: 0xfd, 0x59c: 0xfd, 0x59d: 0xfd, 0x59e: 0xfd, 0x59f: 0xfd, + 0x5a0: 0xfd, 0x5a1: 0xfd, 0x5a2: 0xfd, 0x5a3: 0xfd, 0x5a4: 0xfd, 0x5a5: 0xfd, 0x5a6: 0xfd, 0x5a7: 0xfd, + 0x5a8: 0xfd, 0x5a9: 0xfd, 0x5aa: 0xfd, 0x5ab: 0xfd, 0x5ac: 0xfd, 0x5ad: 0xfd, 0x5ae: 0xfd, 0x5af: 0xfd, + 0x5b0: 0xa0, 0x5b1: 0x16e, 0x5b2: 0x16f, 0x5b3: 0xfd, 0x5b4: 0xfd, 0x5b5: 0xfd, 0x5b6: 0xfd, 0x5b7: 0xfd, + 0x5b8: 0xfd, 0x5b9: 0xfd, 0x5ba: 0xfd, 0x5bb: 0xfd, 0x5bc: 0xfd, 0x5bd: 0xfd, 0x5be: 0xfd, 0x5bf: 0xfd, // Block 0x17, offset 0x5c0 - 0x5c0: 0x9c, 0x5c1: 0x9c, 0x5c2: 0x9c, 0x5c3: 0x16e, 0x5c4: 0x16f, 0x5c5: 0x170, 0x5c6: 0x171, 0x5c7: 0x172, - 0x5c8: 0x9c, 0x5c9: 0x173, 0x5ca: 0xfb, 0x5cb: 0x174, 0x5cc: 0x9c, 0x5cd: 0x175, 0x5ce: 0xfb, 0x5cf: 0xfb, - 0x5d0: 0x60, 0x5d1: 0x61, 0x5d2: 0x62, 0x5d3: 0x63, 0x5d4: 0x64, 0x5d5: 0x65, 0x5d6: 0x66, 0x5d7: 0x67, - 0x5d8: 0x68, 0x5d9: 0x69, 0x5da: 0x6a, 0x5db: 0x6b, 0x5dc: 0x6c, 0x5dd: 0x6d, 0x5de: 0x6e, 0x5df: 0x6f, + 0x5c0: 0x9c, 0x5c1: 0x9c, 0x5c2: 0x9c, 0x5c3: 0x170, 0x5c4: 0x171, 0x5c5: 0x172, 0x5c6: 0x173, 0x5c7: 0x174, + 0x5c8: 0x9c, 0x5c9: 0x175, 0x5ca: 0xfd, 0x5cb: 0x176, 0x5cc: 0x9c, 0x5cd: 0x177, 0x5ce: 0xfd, 0x5cf: 0xfd, + 0x5d0: 0x5e, 0x5d1: 0x5f, 0x5d2: 0x60, 0x5d3: 0x61, 0x5d4: 0x62, 0x5d5: 0x63, 0x5d6: 0x64, 0x5d7: 0x65, + 0x5d8: 0x66, 0x5d9: 0x67, 0x5da: 0x68, 0x5db: 0x69, 0x5dc: 0x6a, 0x5dd: 0x6b, 0x5de: 0x6c, 0x5df: 0x6d, 0x5e0: 0x9c, 0x5e1: 0x9c, 0x5e2: 0x9c, 0x5e3: 0x9c, 0x5e4: 0x9c, 0x5e5: 0x9c, 0x5e6: 0x9c, 0x5e7: 0x9c, - 0x5e8: 0x176, 0x5e9: 0x177, 0x5ea: 0x178, 0x5eb: 0xfb, 0x5ec: 0xfb, 0x5ed: 0xfb, 0x5ee: 0xfb, 0x5ef: 0xfb, - 0x5f0: 0xfb, 0x5f1: 0xfb, 0x5f2: 0xfb, 0x5f3: 0xfb, 0x5f4: 0xfb, 0x5f5: 0xfb, 0x5f6: 0xfb, 0x5f7: 0xfb, - 0x5f8: 0xfb, 0x5f9: 0xfb, 0x5fa: 0xfb, 0x5fb: 0xfb, 0x5fc: 0xfb, 0x5fd: 0xfb, 0x5fe: 0xfb, 0x5ff: 0xfb, + 0x5e8: 0x178, 0x5e9: 0x179, 0x5ea: 0x17a, 0x5eb: 0xfd, 0x5ec: 0xfd, 0x5ed: 0xfd, 0x5ee: 0xfd, 0x5ef: 0xfd, + 0x5f0: 0xfd, 0x5f1: 0xfd, 0x5f2: 0xfd, 0x5f3: 0xfd, 0x5f4: 0xfd, 0x5f5: 0xfd, 0x5f6: 0xfd, 0x5f7: 0xfd, + 0x5f8: 0xfd, 0x5f9: 0xfd, 0x5fa: 0xfd, 0x5fb: 0xfd, 0x5fc: 0xfd, 0x5fd: 0xfd, 0x5fe: 0xfd, 0x5ff: 0xfd, // Block 0x18, offset 0x600 - 0x600: 0x179, 0x601: 0xfb, 0x602: 0xfb, 0x603: 0xfb, 0x604: 0x17a, 0x605: 0x17b, 0x606: 0xfb, 0x607: 0xfb, - 0x608: 0xfb, 0x609: 0xfb, 0x60a: 0xfb, 0x60b: 0x17c, 0x60c: 0xfb, 0x60d: 0xfb, 0x60e: 0xfb, 0x60f: 0xfb, - 0x610: 0xfb, 0x611: 0xfb, 0x612: 0xfb, 0x613: 0xfb, 0x614: 0xfb, 0x615: 0xfb, 0x616: 0xfb, 0x617: 0xfb, - 0x618: 0xfb, 0x619: 0xfb, 0x61a: 0xfb, 0x61b: 0xfb, 0x61c: 0xfb, 0x61d: 0xfb, 0x61e: 0xfb, 0x61f: 0xfb, - 0x620: 0x123, 0x621: 0x123, 0x622: 0x123, 0x623: 0x17d, 0x624: 0x70, 0x625: 0x17e, 0x626: 0xfb, 0x627: 0xfb, - 0x628: 0xfb, 0x629: 0xfb, 0x62a: 0xfb, 0x62b: 0xfb, 0x62c: 0xfb, 0x62d: 0xfb, 0x62e: 0xfb, 0x62f: 0xfb, - 0x630: 0xfb, 0x631: 0x17f, 0x632: 0x180, 0x633: 0xfb, 0x634: 0x181, 0x635: 0xfb, 0x636: 0xfb, 0x637: 0xfb, - 0x638: 0x71, 0x639: 0x72, 0x63a: 0x73, 0x63b: 0x182, 0x63c: 0xfb, 0x63d: 0xfb, 0x63e: 0xfb, 0x63f: 0xfb, + 0x600: 0x17b, 0x601: 0xfd, 0x602: 0xfd, 0x603: 0xfd, 0x604: 0x17c, 0x605: 0x17d, 0x606: 0xfd, 0x607: 0xfd, + 0x608: 0xfd, 0x609: 0xfd, 0x60a: 0xfd, 0x60b: 0x17e, 0x60c: 0xfd, 0x60d: 0xfd, 0x60e: 0xfd, 0x60f: 0xfd, + 0x610: 0xfd, 0x611: 0xfd, 0x612: 0xfd, 0x613: 0xfd, 0x614: 0xfd, 0x615: 0xfd, 0x616: 0xfd, 0x617: 0xfd, + 0x618: 0xfd, 0x619: 0xfd, 0x61a: 0xfd, 0x61b: 0xfd, 0x61c: 0xfd, 0x61d: 0xfd, 0x61e: 0xfd, 0x61f: 0xfd, + 0x620: 0x125, 0x621: 0x125, 0x622: 0x125, 0x623: 0x17f, 0x624: 0x6e, 0x625: 0x180, 0x626: 0xfd, 0x627: 0xfd, + 0x628: 0xfd, 0x629: 0xfd, 0x62a: 0xfd, 0x62b: 0xfd, 0x62c: 0xfd, 0x62d: 0xfd, 0x62e: 0xfd, 0x62f: 0xfd, + 0x630: 0xfd, 0x631: 0x181, 0x632: 0x182, 0x633: 0xfd, 0x634: 0x183, 0x635: 0xfd, 0x636: 0xfd, 0x637: 0xfd, + 0x638: 0x6f, 0x639: 0x70, 0x63a: 0x71, 0x63b: 0x184, 0x63c: 0xfd, 0x63d: 0xfd, 0x63e: 0xfd, 0x63f: 0xfd, // Block 0x19, offset 0x640 - 0x640: 0x183, 0x641: 0x9c, 0x642: 0x184, 0x643: 0x185, 0x644: 0x74, 0x645: 0x75, 0x646: 0x186, 0x647: 0x187, - 0x648: 0x76, 0x649: 0x188, 0x64a: 0xfb, 0x64b: 0xfb, 0x64c: 0x9c, 0x64d: 0x9c, 0x64e: 0x9c, 0x64f: 0x9c, + 0x640: 0x185, 0x641: 0x9c, 0x642: 0x186, 0x643: 0x187, 0x644: 0x72, 0x645: 0x73, 0x646: 0x188, 0x647: 0x189, + 0x648: 0x74, 0x649: 0x18a, 0x64a: 0xfd, 0x64b: 0xfd, 0x64c: 0x9c, 0x64d: 0x9c, 0x64e: 0x9c, 0x64f: 0x9c, 0x650: 0x9c, 0x651: 0x9c, 0x652: 0x9c, 0x653: 0x9c, 0x654: 0x9c, 0x655: 0x9c, 0x656: 0x9c, 0x657: 0x9c, - 0x658: 0x9c, 0x659: 0x9c, 0x65a: 0x9c, 0x65b: 0x189, 0x65c: 0x9c, 0x65d: 0x18a, 0x65e: 0x9c, 0x65f: 0x18b, - 0x660: 0x18c, 0x661: 0x18d, 0x662: 0x18e, 0x663: 0xfb, 0x664: 0x9c, 0x665: 0x18f, 0x666: 0x9c, 0x667: 0x190, - 0x668: 0x9c, 0x669: 0x191, 0x66a: 0x192, 0x66b: 0x193, 0x66c: 0x9c, 0x66d: 0x9c, 0x66e: 0x194, 0x66f: 0x195, - 0x670: 0xfb, 0x671: 0xfb, 0x672: 0xfb, 0x673: 0xfb, 0x674: 0xfb, 0x675: 0xfb, 0x676: 0xfb, 0x677: 0xfb, - 0x678: 0xfb, 0x679: 0xfb, 0x67a: 0xfb, 0x67b: 0xfb, 0x67c: 0xfb, 0x67d: 0xfb, 0x67e: 0xfb, 0x67f: 0xfb, + 0x658: 0x9c, 0x659: 0x9c, 0x65a: 0x9c, 0x65b: 0x18b, 0x65c: 0x9c, 0x65d: 0x18c, 0x65e: 0x9c, 0x65f: 0x18d, + 0x660: 0x18e, 0x661: 0x18f, 0x662: 0x190, 0x663: 0xfd, 0x664: 0x9c, 0x665: 0x191, 0x666: 0x9c, 0x667: 0x192, + 0x668: 0x9c, 0x669: 0x193, 0x66a: 0x194, 0x66b: 0x195, 0x66c: 0x9c, 0x66d: 0x9c, 0x66e: 0x196, 0x66f: 0x197, + 0x670: 0xfd, 0x671: 0xfd, 0x672: 0xfd, 0x673: 0xfd, 0x674: 0xfd, 0x675: 0xfd, 0x676: 0xfd, 0x677: 0xfd, + 0x678: 0xfd, 0x679: 0xfd, 0x67a: 0xfd, 0x67b: 0xfd, 0x67c: 0xfd, 0x67d: 0xfd, 0x67e: 0xfd, 0x67f: 0xfd, // Block 0x1a, offset 0x680 0x680: 0xa0, 0x681: 0xa0, 0x682: 0xa0, 0x683: 0xa0, 0x684: 0xa0, 0x685: 0xa0, 0x686: 0xa0, 0x687: 0xa0, 0x688: 0xa0, 0x689: 0xa0, 0x68a: 0xa0, 0x68b: 0xa0, 0x68c: 0xa0, 0x68d: 0xa0, 0x68e: 0xa0, 0x68f: 0xa0, 0x690: 0xa0, 0x691: 0xa0, 0x692: 0xa0, 0x693: 0xa0, 0x694: 0xa0, 0x695: 0xa0, 0x696: 0xa0, 0x697: 0xa0, - 0x698: 0xa0, 0x699: 0xa0, 0x69a: 0xa0, 0x69b: 0x196, 0x69c: 0xa0, 0x69d: 0xa0, 0x69e: 0xa0, 0x69f: 0xa0, + 0x698: 0xa0, 0x699: 0xa0, 0x69a: 0xa0, 0x69b: 0x198, 0x69c: 0xa0, 0x69d: 0xa0, 0x69e: 0xa0, 0x69f: 0xa0, 0x6a0: 0xa0, 0x6a1: 0xa0, 0x6a2: 0xa0, 0x6a3: 0xa0, 0x6a4: 0xa0, 0x6a5: 0xa0, 0x6a6: 0xa0, 0x6a7: 0xa0, 0x6a8: 0xa0, 0x6a9: 0xa0, 0x6aa: 0xa0, 0x6ab: 0xa0, 0x6ac: 0xa0, 0x6ad: 0xa0, 0x6ae: 0xa0, 0x6af: 0xa0, 0x6b0: 0xa0, 0x6b1: 0xa0, 0x6b2: 0xa0, 0x6b3: 0xa0, 0x6b4: 0xa0, 0x6b5: 0xa0, 0x6b6: 0xa0, 0x6b7: 0xa0, @@ -2312,8 +2455,8 @@ var idnaIndex = [2368]uint16{ 0x6c0: 0xa0, 0x6c1: 0xa0, 0x6c2: 0xa0, 0x6c3: 0xa0, 0x6c4: 0xa0, 0x6c5: 0xa0, 0x6c6: 0xa0, 0x6c7: 0xa0, 0x6c8: 0xa0, 0x6c9: 0xa0, 0x6ca: 0xa0, 0x6cb: 0xa0, 0x6cc: 0xa0, 0x6cd: 0xa0, 0x6ce: 0xa0, 0x6cf: 0xa0, 0x6d0: 0xa0, 0x6d1: 0xa0, 0x6d2: 0xa0, 0x6d3: 0xa0, 0x6d4: 0xa0, 0x6d5: 0xa0, 0x6d6: 0xa0, 0x6d7: 0xa0, - 0x6d8: 0xa0, 0x6d9: 0xa0, 0x6da: 0xa0, 0x6db: 0xa0, 0x6dc: 0x197, 0x6dd: 0xa0, 0x6de: 0xa0, 0x6df: 0xa0, - 0x6e0: 0x198, 0x6e1: 0xa0, 0x6e2: 0xa0, 0x6e3: 0xa0, 0x6e4: 0xa0, 0x6e5: 0xa0, 0x6e6: 0xa0, 0x6e7: 0xa0, + 0x6d8: 0xa0, 0x6d9: 0xa0, 0x6da: 0xa0, 0x6db: 0xa0, 0x6dc: 0x199, 0x6dd: 0xa0, 0x6de: 0xa0, 0x6df: 0xa0, + 0x6e0: 0x19a, 0x6e1: 0xa0, 0x6e2: 0xa0, 0x6e3: 0xa0, 0x6e4: 0xa0, 0x6e5: 0xa0, 0x6e6: 0xa0, 0x6e7: 0xa0, 0x6e8: 0xa0, 0x6e9: 0xa0, 0x6ea: 0xa0, 0x6eb: 0xa0, 0x6ec: 0xa0, 0x6ed: 0xa0, 0x6ee: 0xa0, 0x6ef: 0xa0, 0x6f0: 0xa0, 0x6f1: 0xa0, 0x6f2: 0xa0, 0x6f3: 0xa0, 0x6f4: 0xa0, 0x6f5: 0xa0, 0x6f6: 0xa0, 0x6f7: 0xa0, 0x6f8: 0xa0, 0x6f9: 0xa0, 0x6fa: 0xa0, 0x6fb: 0xa0, 0x6fc: 0xa0, 0x6fd: 0xa0, 0x6fe: 0xa0, 0x6ff: 0xa0, @@ -2325,34 +2468,34 @@ var idnaIndex = [2368]uint16{ 0x720: 0xa0, 0x721: 0xa0, 0x722: 0xa0, 0x723: 0xa0, 0x724: 0xa0, 0x725: 0xa0, 0x726: 0xa0, 0x727: 0xa0, 0x728: 0xa0, 0x729: 0xa0, 0x72a: 0xa0, 0x72b: 0xa0, 0x72c: 0xa0, 0x72d: 0xa0, 0x72e: 0xa0, 0x72f: 0xa0, 0x730: 0xa0, 0x731: 0xa0, 0x732: 0xa0, 0x733: 0xa0, 0x734: 0xa0, 0x735: 0xa0, 0x736: 0xa0, 0x737: 0xa0, - 0x738: 0xa0, 0x739: 0xa0, 0x73a: 0x199, 0x73b: 0xa0, 0x73c: 0xa0, 0x73d: 0xa0, 0x73e: 0xa0, 0x73f: 0xa0, + 0x738: 0xa0, 0x739: 0xa0, 0x73a: 0x19b, 0x73b: 0xa0, 0x73c: 0xa0, 0x73d: 0xa0, 0x73e: 0xa0, 0x73f: 0xa0, // Block 0x1d, offset 0x740 0x740: 0xa0, 0x741: 0xa0, 0x742: 0xa0, 0x743: 0xa0, 0x744: 0xa0, 0x745: 0xa0, 0x746: 0xa0, 0x747: 0xa0, 0x748: 0xa0, 0x749: 0xa0, 0x74a: 0xa0, 0x74b: 0xa0, 0x74c: 0xa0, 0x74d: 0xa0, 0x74e: 0xa0, 0x74f: 0xa0, 0x750: 0xa0, 0x751: 0xa0, 0x752: 0xa0, 0x753: 0xa0, 0x754: 0xa0, 0x755: 0xa0, 0x756: 0xa0, 0x757: 0xa0, 0x758: 0xa0, 0x759: 0xa0, 0x75a: 0xa0, 0x75b: 0xa0, 0x75c: 0xa0, 0x75d: 0xa0, 0x75e: 0xa0, 0x75f: 0xa0, 0x760: 0xa0, 0x761: 0xa0, 0x762: 0xa0, 0x763: 0xa0, 0x764: 0xa0, 0x765: 0xa0, 0x766: 0xa0, 0x767: 0xa0, - 0x768: 0xa0, 0x769: 0xa0, 0x76a: 0xa0, 0x76b: 0xa0, 0x76c: 0xa0, 0x76d: 0xa0, 0x76e: 0xa0, 0x76f: 0x19a, - 0x770: 0xfb, 0x771: 0xfb, 0x772: 0xfb, 0x773: 0xfb, 0x774: 0xfb, 0x775: 0xfb, 0x776: 0xfb, 0x777: 0xfb, - 0x778: 0xfb, 0x779: 0xfb, 0x77a: 0xfb, 0x77b: 0xfb, 0x77c: 0xfb, 0x77d: 0xfb, 0x77e: 0xfb, 0x77f: 0xfb, + 0x768: 0xa0, 0x769: 0xa0, 0x76a: 0xa0, 0x76b: 0xa0, 0x76c: 0xa0, 0x76d: 0xa0, 0x76e: 0xa0, 0x76f: 0x19c, + 0x770: 0xfd, 0x771: 0xfd, 0x772: 0xfd, 0x773: 0xfd, 0x774: 0xfd, 0x775: 0xfd, 0x776: 0xfd, 0x777: 0xfd, + 0x778: 0xfd, 0x779: 0xfd, 0x77a: 0xfd, 0x77b: 0xfd, 0x77c: 0xfd, 0x77d: 0xfd, 0x77e: 0xfd, 0x77f: 0xfd, // Block 0x1e, offset 0x780 - 0x780: 0xfb, 0x781: 0xfb, 0x782: 0xfb, 0x783: 0xfb, 0x784: 0xfb, 0x785: 0xfb, 0x786: 0xfb, 0x787: 0xfb, - 0x788: 0xfb, 0x789: 0xfb, 0x78a: 0xfb, 0x78b: 0xfb, 0x78c: 0xfb, 0x78d: 0xfb, 0x78e: 0xfb, 0x78f: 0xfb, - 0x790: 0xfb, 0x791: 0xfb, 0x792: 0xfb, 0x793: 0xfb, 0x794: 0xfb, 0x795: 0xfb, 0x796: 0xfb, 0x797: 0xfb, - 0x798: 0xfb, 0x799: 0xfb, 0x79a: 0xfb, 0x79b: 0xfb, 0x79c: 0xfb, 0x79d: 0xfb, 0x79e: 0xfb, 0x79f: 0xfb, - 0x7a0: 0x77, 0x7a1: 0x78, 0x7a2: 0x79, 0x7a3: 0x19b, 0x7a4: 0x7a, 0x7a5: 0x7b, 0x7a6: 0x19c, 0x7a7: 0x7c, - 0x7a8: 0x7d, 0x7a9: 0xfb, 0x7aa: 0xfb, 0x7ab: 0xfb, 0x7ac: 0xfb, 0x7ad: 0xfb, 0x7ae: 0xfb, 0x7af: 0xfb, - 0x7b0: 0xfb, 0x7b1: 0xfb, 0x7b2: 0xfb, 0x7b3: 0xfb, 0x7b4: 0xfb, 0x7b5: 0xfb, 0x7b6: 0xfb, 0x7b7: 0xfb, - 0x7b8: 0xfb, 0x7b9: 0xfb, 0x7ba: 0xfb, 0x7bb: 0xfb, 0x7bc: 0xfb, 0x7bd: 0xfb, 0x7be: 0xfb, 0x7bf: 0xfb, + 0x780: 0xfd, 0x781: 0xfd, 0x782: 0xfd, 0x783: 0xfd, 0x784: 0xfd, 0x785: 0xfd, 0x786: 0xfd, 0x787: 0xfd, + 0x788: 0xfd, 0x789: 0xfd, 0x78a: 0xfd, 0x78b: 0xfd, 0x78c: 0xfd, 0x78d: 0xfd, 0x78e: 0xfd, 0x78f: 0xfd, + 0x790: 0xfd, 0x791: 0xfd, 0x792: 0xfd, 0x793: 0xfd, 0x794: 0xfd, 0x795: 0xfd, 0x796: 0xfd, 0x797: 0xfd, + 0x798: 0xfd, 0x799: 0xfd, 0x79a: 0xfd, 0x79b: 0xfd, 0x79c: 0xfd, 0x79d: 0xfd, 0x79e: 0xfd, 0x79f: 0xfd, + 0x7a0: 0x75, 0x7a1: 0x76, 0x7a2: 0x77, 0x7a3: 0x78, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x7b, 0x7a7: 0x7c, + 0x7a8: 0x7d, 0x7a9: 0xfd, 0x7aa: 0xfd, 0x7ab: 0xfd, 0x7ac: 0xfd, 0x7ad: 0xfd, 0x7ae: 0xfd, 0x7af: 0xfd, + 0x7b0: 0xfd, 0x7b1: 0xfd, 0x7b2: 0xfd, 0x7b3: 0xfd, 0x7b4: 0xfd, 0x7b5: 0xfd, 0x7b6: 0xfd, 0x7b7: 0xfd, + 0x7b8: 0xfd, 0x7b9: 0xfd, 0x7ba: 0xfd, 0x7bb: 0xfd, 0x7bc: 0xfd, 0x7bd: 0xfd, 0x7be: 0xfd, 0x7bf: 0xfd, // Block 0x1f, offset 0x7c0 0x7c0: 0xa0, 0x7c1: 0xa0, 0x7c2: 0xa0, 0x7c3: 0xa0, 0x7c4: 0xa0, 0x7c5: 0xa0, 0x7c6: 0xa0, 0x7c7: 0xa0, - 0x7c8: 0xa0, 0x7c9: 0xa0, 0x7ca: 0xa0, 0x7cb: 0xa0, 0x7cc: 0xa0, 0x7cd: 0x19d, 0x7ce: 0xfb, 0x7cf: 0xfb, - 0x7d0: 0xfb, 0x7d1: 0xfb, 0x7d2: 0xfb, 0x7d3: 0xfb, 0x7d4: 0xfb, 0x7d5: 0xfb, 0x7d6: 0xfb, 0x7d7: 0xfb, - 0x7d8: 0xfb, 0x7d9: 0xfb, 0x7da: 0xfb, 0x7db: 0xfb, 0x7dc: 0xfb, 0x7dd: 0xfb, 0x7de: 0xfb, 0x7df: 0xfb, - 0x7e0: 0xfb, 0x7e1: 0xfb, 0x7e2: 0xfb, 0x7e3: 0xfb, 0x7e4: 0xfb, 0x7e5: 0xfb, 0x7e6: 0xfb, 0x7e7: 0xfb, - 0x7e8: 0xfb, 0x7e9: 0xfb, 0x7ea: 0xfb, 0x7eb: 0xfb, 0x7ec: 0xfb, 0x7ed: 0xfb, 0x7ee: 0xfb, 0x7ef: 0xfb, - 0x7f0: 0xfb, 0x7f1: 0xfb, 0x7f2: 0xfb, 0x7f3: 0xfb, 0x7f4: 0xfb, 0x7f5: 0xfb, 0x7f6: 0xfb, 0x7f7: 0xfb, - 0x7f8: 0xfb, 0x7f9: 0xfb, 0x7fa: 0xfb, 0x7fb: 0xfb, 0x7fc: 0xfb, 0x7fd: 0xfb, 0x7fe: 0xfb, 0x7ff: 0xfb, + 0x7c8: 0xa0, 0x7c9: 0xa0, 0x7ca: 0xa0, 0x7cb: 0xa0, 0x7cc: 0xa0, 0x7cd: 0x19d, 0x7ce: 0xfd, 0x7cf: 0xfd, + 0x7d0: 0xfd, 0x7d1: 0xfd, 0x7d2: 0xfd, 0x7d3: 0xfd, 0x7d4: 0xfd, 0x7d5: 0xfd, 0x7d6: 0xfd, 0x7d7: 0xfd, + 0x7d8: 0xfd, 0x7d9: 0xfd, 0x7da: 0xfd, 0x7db: 0xfd, 0x7dc: 0xfd, 0x7dd: 0xfd, 0x7de: 0xfd, 0x7df: 0xfd, + 0x7e0: 0xfd, 0x7e1: 0xfd, 0x7e2: 0xfd, 0x7e3: 0xfd, 0x7e4: 0xfd, 0x7e5: 0xfd, 0x7e6: 0xfd, 0x7e7: 0xfd, + 0x7e8: 0xfd, 0x7e9: 0xfd, 0x7ea: 0xfd, 0x7eb: 0xfd, 0x7ec: 0xfd, 0x7ed: 0xfd, 0x7ee: 0xfd, 0x7ef: 0xfd, + 0x7f0: 0xfd, 0x7f1: 0xfd, 0x7f2: 0xfd, 0x7f3: 0xfd, 0x7f4: 0xfd, 0x7f5: 0xfd, 0x7f6: 0xfd, 0x7f7: 0xfd, + 0x7f8: 0xfd, 0x7f9: 0xfd, 0x7fa: 0xfd, 0x7fb: 0xfd, 0x7fc: 0xfd, 0x7fd: 0xfd, 0x7fe: 0xfd, 0x7ff: 0xfd, // Block 0x20, offset 0x800 0x810: 0x0d, 0x811: 0x0e, 0x812: 0x0f, 0x813: 0x10, 0x814: 0x11, 0x815: 0x0b, 0x816: 0x12, 0x817: 0x07, 0x818: 0x13, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x14, 0x81c: 0x0b, 0x81d: 0x15, 0x81e: 0x16, 0x81f: 0x17, @@ -2370,14 +2513,14 @@ var idnaIndex = [2368]uint16{ 0x870: 0x0b, 0x871: 0x0b, 0x872: 0x0b, 0x873: 0x0b, 0x874: 0x0b, 0x875: 0x0b, 0x876: 0x0b, 0x877: 0x0b, 0x878: 0x0b, 0x879: 0x0b, 0x87a: 0x0b, 0x87b: 0x0b, 0x87c: 0x0b, 0x87d: 0x0b, 0x87e: 0x0b, 0x87f: 0x0b, // Block 0x22, offset 0x880 - 0x880: 0x19e, 0x881: 0x19f, 0x882: 0xfb, 0x883: 0xfb, 0x884: 0x1a0, 0x885: 0x1a0, 0x886: 0x1a0, 0x887: 0x1a1, - 0x888: 0xfb, 0x889: 0xfb, 0x88a: 0xfb, 0x88b: 0xfb, 0x88c: 0xfb, 0x88d: 0xfb, 0x88e: 0xfb, 0x88f: 0xfb, - 0x890: 0xfb, 0x891: 0xfb, 0x892: 0xfb, 0x893: 0xfb, 0x894: 0xfb, 0x895: 0xfb, 0x896: 0xfb, 0x897: 0xfb, - 0x898: 0xfb, 0x899: 0xfb, 0x89a: 0xfb, 0x89b: 0xfb, 0x89c: 0xfb, 0x89d: 0xfb, 0x89e: 0xfb, 0x89f: 0xfb, - 0x8a0: 0xfb, 0x8a1: 0xfb, 0x8a2: 0xfb, 0x8a3: 0xfb, 0x8a4: 0xfb, 0x8a5: 0xfb, 0x8a6: 0xfb, 0x8a7: 0xfb, - 0x8a8: 0xfb, 0x8a9: 0xfb, 0x8aa: 0xfb, 0x8ab: 0xfb, 0x8ac: 0xfb, 0x8ad: 0xfb, 0x8ae: 0xfb, 0x8af: 0xfb, - 0x8b0: 0xfb, 0x8b1: 0xfb, 0x8b2: 0xfb, 0x8b3: 0xfb, 0x8b4: 0xfb, 0x8b5: 0xfb, 0x8b6: 0xfb, 0x8b7: 0xfb, - 0x8b8: 0xfb, 0x8b9: 0xfb, 0x8ba: 0xfb, 0x8bb: 0xfb, 0x8bc: 0xfb, 0x8bd: 0xfb, 0x8be: 0xfb, 0x8bf: 0xfb, + 0x880: 0x19e, 0x881: 0x19f, 0x882: 0xfd, 0x883: 0xfd, 0x884: 0x1a0, 0x885: 0x1a0, 0x886: 0x1a0, 0x887: 0x1a1, + 0x888: 0xfd, 0x889: 0xfd, 0x88a: 0xfd, 0x88b: 0xfd, 0x88c: 0xfd, 0x88d: 0xfd, 0x88e: 0xfd, 0x88f: 0xfd, + 0x890: 0xfd, 0x891: 0xfd, 0x892: 0xfd, 0x893: 0xfd, 0x894: 0xfd, 0x895: 0xfd, 0x896: 0xfd, 0x897: 0xfd, + 0x898: 0xfd, 0x899: 0xfd, 0x89a: 0xfd, 0x89b: 0xfd, 0x89c: 0xfd, 0x89d: 0xfd, 0x89e: 0xfd, 0x89f: 0xfd, + 0x8a0: 0xfd, 0x8a1: 0xfd, 0x8a2: 0xfd, 0x8a3: 0xfd, 0x8a4: 0xfd, 0x8a5: 0xfd, 0x8a6: 0xfd, 0x8a7: 0xfd, + 0x8a8: 0xfd, 0x8a9: 0xfd, 0x8aa: 0xfd, 0x8ab: 0xfd, 0x8ac: 0xfd, 0x8ad: 0xfd, 0x8ae: 0xfd, 0x8af: 0xfd, + 0x8b0: 0xfd, 0x8b1: 0xfd, 0x8b2: 0xfd, 0x8b3: 0xfd, 0x8b4: 0xfd, 0x8b5: 0xfd, 0x8b6: 0xfd, 0x8b7: 0xfd, + 0x8b8: 0xfd, 0x8b9: 0xfd, 0x8ba: 0xfd, 0x8bb: 0xfd, 0x8bc: 0xfd, 0x8bd: 0xfd, 0x8be: 0xfd, 0x8bf: 0xfd, // Block 0x23, offset 0x8c0 0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b, 0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b, @@ -2393,10 +2536,10 @@ var idnaIndex = [2368]uint16{ } // idnaSparseOffset: 292 entries, 584 bytes -var idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x85, 0x8b, 0x94, 0xa4, 0xb2, 0xbd, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x225, 0x22f, 0x23b, 0x247, 0x253, 0x25b, 0x260, 0x26d, 0x27e, 0x282, 0x28d, 0x291, 0x29a, 0x2a2, 0x2a8, 0x2ad, 0x2b0, 0x2b4, 0x2ba, 0x2be, 0x2c2, 0x2c6, 0x2cc, 0x2d4, 0x2db, 0x2e6, 0x2f0, 0x2f4, 0x2f7, 0x2fd, 0x301, 0x303, 0x306, 0x308, 0x30b, 0x315, 0x318, 0x327, 0x32b, 0x330, 0x333, 0x337, 0x33c, 0x341, 0x347, 0x358, 0x368, 0x36e, 0x372, 0x381, 0x386, 0x38e, 0x398, 0x3a3, 0x3ab, 0x3bc, 0x3c5, 0x3d5, 0x3e2, 0x3ee, 0x3f3, 0x400, 0x404, 0x409, 0x40b, 0x40d, 0x411, 0x413, 0x417, 0x420, 0x426, 0x42a, 0x43a, 0x444, 0x449, 0x44c, 0x452, 0x459, 0x45e, 0x462, 0x468, 0x46d, 0x476, 0x47b, 0x481, 0x488, 0x48f, 0x496, 0x49a, 0x49f, 0x4a2, 0x4a7, 0x4b3, 0x4b9, 0x4be, 0x4c5, 0x4cd, 0x4d2, 0x4d6, 0x4e6, 0x4ed, 0x4f1, 0x4f5, 0x4fc, 0x4fe, 0x501, 0x504, 0x508, 0x511, 0x515, 0x51d, 0x525, 0x52d, 0x539, 0x545, 0x54b, 0x554, 0x560, 0x567, 0x570, 0x57b, 0x582, 0x591, 0x59e, 0x5ab, 0x5b4, 0x5b8, 0x5c7, 0x5cf, 0x5da, 0x5e3, 0x5e9, 0x5f1, 0x5fa, 0x605, 0x608, 0x614, 0x61d, 0x620, 0x625, 0x62e, 0x633, 0x640, 0x64b, 0x654, 0x65e, 0x661, 0x66b, 0x674, 0x680, 0x68d, 0x69a, 0x6a8, 0x6af, 0x6b3, 0x6b7, 0x6ba, 0x6bf, 0x6c2, 0x6c7, 0x6ca, 0x6d1, 0x6d8, 0x6dc, 0x6e7, 0x6ea, 0x6ed, 0x6f0, 0x6f6, 0x6fc, 0x705, 0x708, 0x70b, 0x70e, 0x711, 0x718, 0x71b, 0x720, 0x72a, 0x72d, 0x731, 0x740, 0x74c, 0x750, 0x755, 0x759, 0x75e, 0x762, 0x767, 0x770, 0x77b, 0x781, 0x787, 0x78d, 0x793, 0x79c, 0x79f, 0x7a2, 0x7a6, 0x7aa, 0x7ae, 0x7b4, 0x7ba, 0x7bf, 0x7c2, 0x7d2, 0x7d9, 0x7dc, 0x7e1, 0x7e5, 0x7eb, 0x7f2, 0x7f6, 0x7fa, 0x803, 0x80a, 0x80f, 0x813, 0x821, 0x824, 0x827, 0x82b, 0x82f, 0x832, 0x842, 0x853, 0x856, 0x85b, 0x85d, 0x85f} +var idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x85, 0x8b, 0x94, 0xa4, 0xb2, 0xbd, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x225, 0x22f, 0x23b, 0x247, 0x253, 0x25b, 0x260, 0x26d, 0x27e, 0x282, 0x28d, 0x291, 0x29a, 0x2a2, 0x2a8, 0x2ad, 0x2b0, 0x2b4, 0x2ba, 0x2be, 0x2c2, 0x2c6, 0x2cc, 0x2d4, 0x2db, 0x2e6, 0x2f0, 0x2f4, 0x2f7, 0x2fd, 0x301, 0x303, 0x306, 0x308, 0x30b, 0x315, 0x318, 0x327, 0x32b, 0x32f, 0x331, 0x33a, 0x33d, 0x341, 0x346, 0x34b, 0x351, 0x362, 0x372, 0x378, 0x37c, 0x38b, 0x390, 0x398, 0x3a2, 0x3ad, 0x3b5, 0x3c6, 0x3cf, 0x3df, 0x3ec, 0x3f8, 0x3fd, 0x40a, 0x40e, 0x413, 0x415, 0x417, 0x41b, 0x41d, 0x421, 0x42a, 0x430, 0x434, 0x444, 0x44e, 0x453, 0x456, 0x45c, 0x463, 0x468, 0x46c, 0x472, 0x477, 0x480, 0x485, 0x48b, 0x492, 0x499, 0x4a0, 0x4a4, 0x4a9, 0x4ac, 0x4b1, 0x4bd, 0x4c3, 0x4c8, 0x4cf, 0x4d7, 0x4dc, 0x4e0, 0x4f0, 0x4f7, 0x4fb, 0x4ff, 0x506, 0x508, 0x50b, 0x50e, 0x512, 0x51b, 0x51f, 0x527, 0x52f, 0x537, 0x543, 0x54f, 0x555, 0x55e, 0x56a, 0x571, 0x57a, 0x585, 0x58c, 0x59b, 0x5a8, 0x5b5, 0x5be, 0x5c2, 0x5d1, 0x5d9, 0x5e4, 0x5ed, 0x5f3, 0x5fb, 0x604, 0x60f, 0x612, 0x61e, 0x627, 0x62a, 0x62f, 0x638, 0x63d, 0x64a, 0x655, 0x65e, 0x668, 0x66b, 0x675, 0x67e, 0x68a, 0x697, 0x6a4, 0x6b2, 0x6b9, 0x6bd, 0x6c1, 0x6c4, 0x6c9, 0x6cc, 0x6d1, 0x6d4, 0x6db, 0x6e2, 0x6e6, 0x6f1, 0x6f4, 0x6f7, 0x6fa, 0x700, 0x706, 0x70f, 0x712, 0x715, 0x718, 0x71b, 0x722, 0x725, 0x72a, 0x734, 0x737, 0x73b, 0x74a, 0x756, 0x75a, 0x75f, 0x763, 0x768, 0x76c, 0x771, 0x77a, 0x785, 0x78b, 0x791, 0x797, 0x79d, 0x7a6, 0x7a9, 0x7ac, 0x7b0, 0x7b4, 0x7b8, 0x7be, 0x7c4, 0x7c9, 0x7cc, 0x7dc, 0x7e3, 0x7e6, 0x7eb, 0x7ef, 0x7f5, 0x7fc, 0x800, 0x804, 0x80d, 0x814, 0x819, 0x81d, 0x82b, 0x82e, 0x831, 0x835, 0x839, 0x83c, 0x83f, 0x844, 0x846, 0x848} -// idnaSparseValues: 2146 entries, 8584 bytes -var idnaSparseValues = [2146]valueRange{ +// idnaSparseValues: 2123 entries, 8492 bytes +var idnaSparseValues = [2123]valueRange{ // Block 0x0, offset 0x0 {value: 0x0000, lo: 0x07}, {value: 0xe105, lo: 0x80, hi: 0x96}, @@ -2427,15 +2570,15 @@ var idnaSparseValues = [2146]valueRange{ // Block 0x2, offset 0x19 {value: 0x0000, lo: 0x0b}, {value: 0x0008, lo: 0x80, hi: 0xaf}, - {value: 0x0249, lo: 0xb0, hi: 0xb0}, + {value: 0x00a9, lo: 0xb0, hi: 0xb0}, {value: 0x037d, lo: 0xb1, hi: 0xb1}, - {value: 0x0259, lo: 0xb2, hi: 0xb2}, - {value: 0x0269, lo: 0xb3, hi: 0xb3}, + {value: 0x00b1, lo: 0xb2, hi: 0xb2}, + {value: 0x00b9, lo: 0xb3, hi: 0xb3}, {value: 0x034d, lo: 0xb4, hi: 0xb4}, {value: 0x0395, lo: 0xb5, hi: 0xb5}, {value: 0xe1bd, lo: 0xb6, hi: 0xb6}, - {value: 0x0279, lo: 0xb7, hi: 0xb7}, - {value: 0x0289, lo: 0xb8, hi: 0xb8}, + {value: 0x00c1, lo: 0xb7, hi: 0xb7}, + {value: 0x00c9, lo: 0xb8, hi: 0xb8}, {value: 0x0008, lo: 0xb9, hi: 0xbf}, // Block 0x3, offset 0x25 {value: 0x0000, lo: 0x01}, @@ -2457,7 +2600,7 @@ var idnaSparseValues = [2146]valueRange{ // Block 0x6, offset 0x33 {value: 0x0000, lo: 0x0a}, {value: 0x0008, lo: 0x80, hi: 0x86}, - {value: 0x0401, lo: 0x87, hi: 0x87}, + {value: 0x0131, lo: 0x87, hi: 0x87}, {value: 0x0008, lo: 0x88, hi: 0x88}, {value: 0x0018, lo: 0x89, hi: 0x8a}, {value: 0x0040, lo: 0x8b, hi: 0x8c}, @@ -2643,7 +2786,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0x81, hi: 0xb0}, {value: 0x3308, lo: 0xb1, hi: 0xb1}, {value: 0x0008, lo: 0xb2, hi: 0xb2}, - {value: 0x08f1, lo: 0xb3, hi: 0xb3}, + {value: 0x01f1, lo: 0xb3, hi: 0xb3}, {value: 0x3308, lo: 0xb4, hi: 0xb9}, {value: 0x3b08, lo: 0xba, hi: 0xba}, {value: 0x0040, lo: 0xbb, hi: 0xbe}, @@ -2666,8 +2809,8 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x8e, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0x99}, {value: 0x0040, lo: 0x9a, hi: 0x9b}, - {value: 0x0961, lo: 0x9c, hi: 0x9c}, - {value: 0x0999, lo: 0x9d, hi: 0x9d}, + {value: 0x0201, lo: 0x9c, hi: 0x9c}, + {value: 0x0209, lo: 0x9d, hi: 0x9d}, {value: 0x0008, lo: 0x9e, hi: 0x9f}, {value: 0x0040, lo: 0xa0, hi: 0xbf}, // Block 0x18, offset 0xf9 @@ -3075,13 +3218,13 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0xbe, hi: 0xbf}, // Block 0x44, offset 0x260 {value: 0x0000, lo: 0x0c}, - {value: 0x0e29, lo: 0x80, hi: 0x80}, - {value: 0x0e41, lo: 0x81, hi: 0x81}, - {value: 0x0e59, lo: 0x82, hi: 0x82}, - {value: 0x0e71, lo: 0x83, hi: 0x83}, - {value: 0x0e89, lo: 0x84, hi: 0x85}, - {value: 0x0ea1, lo: 0x86, hi: 0x86}, - {value: 0x0eb9, lo: 0x87, hi: 0x87}, + {value: 0x02a9, lo: 0x80, hi: 0x80}, + {value: 0x02b1, lo: 0x81, hi: 0x81}, + {value: 0x02b9, lo: 0x82, hi: 0x82}, + {value: 0x02c1, lo: 0x83, hi: 0x83}, + {value: 0x02c9, lo: 0x84, hi: 0x85}, + {value: 0x02d1, lo: 0x86, hi: 0x86}, + {value: 0x02d9, lo: 0x87, hi: 0x87}, {value: 0x057d, lo: 0x88, hi: 0x88}, {value: 0x0040, lo: 0x89, hi: 0x8f}, {value: 0x059d, lo: 0x90, hi: 0xba}, @@ -3133,18 +3276,18 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x83, hi: 0x83}, {value: 0x0008, lo: 0x84, hi: 0x84}, {value: 0x0018, lo: 0x85, hi: 0x88}, - {value: 0x24c1, lo: 0x89, hi: 0x89}, + {value: 0x0851, lo: 0x89, hi: 0x89}, {value: 0x0018, lo: 0x8a, hi: 0x8b}, {value: 0x0040, lo: 0x8c, hi: 0x8f}, {value: 0x0018, lo: 0x90, hi: 0xbf}, // Block 0x4a, offset 0x29a {value: 0x0000, lo: 0x07}, {value: 0x0018, lo: 0x80, hi: 0xab}, - {value: 0x24f1, lo: 0xac, hi: 0xac}, - {value: 0x2529, lo: 0xad, hi: 0xad}, + {value: 0x0859, lo: 0xac, hi: 0xac}, + {value: 0x0861, lo: 0xad, hi: 0xad}, {value: 0x0018, lo: 0xae, hi: 0xae}, - {value: 0x2579, lo: 0xaf, hi: 0xaf}, - {value: 0x25b1, lo: 0xb0, hi: 0xb0}, + {value: 0x0869, lo: 0xaf, hi: 0xaf}, + {value: 0x0871, lo: 0xb0, hi: 0xb0}, {value: 0x0018, lo: 0xb1, hi: 0xbf}, // Block 0x4b, offset 0x2a2 {value: 0x0000, lo: 0x05}, @@ -3166,19 +3309,19 @@ var idnaSparseValues = [2146]valueRange{ // Block 0x4e, offset 0x2b0 {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0x8b}, - {value: 0x28c1, lo: 0x8c, hi: 0x8c}, + {value: 0x0929, lo: 0x8c, hi: 0x8c}, {value: 0x0018, lo: 0x8d, hi: 0xbf}, // Block 0x4f, offset 0x2b4 {value: 0x0000, lo: 0x05}, {value: 0x0018, lo: 0x80, hi: 0xb3}, {value: 0x0e7e, lo: 0xb4, hi: 0xb4}, - {value: 0x292a, lo: 0xb5, hi: 0xb5}, + {value: 0x0932, lo: 0xb5, hi: 0xb5}, {value: 0x0e9e, lo: 0xb6, hi: 0xb6}, {value: 0x0018, lo: 0xb7, hi: 0xbf}, // Block 0x50, offset 0x2ba {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0x9b}, - {value: 0x2941, lo: 0x9c, hi: 0x9c}, + {value: 0x0939, lo: 0x9c, hi: 0x9c}, {value: 0x0018, lo: 0x9d, hi: 0xbf}, // Block 0x51, offset 0x2be {value: 0x0000, lo: 0x03}, @@ -3277,16 +3420,16 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0x80, hi: 0x96}, {value: 0x0040, lo: 0x97, hi: 0x98}, {value: 0x3308, lo: 0x99, hi: 0x9a}, - {value: 0x29e2, lo: 0x9b, hi: 0x9b}, - {value: 0x2a0a, lo: 0x9c, hi: 0x9c}, + {value: 0x096a, lo: 0x9b, hi: 0x9b}, + {value: 0x0972, lo: 0x9c, hi: 0x9c}, {value: 0x0008, lo: 0x9d, hi: 0x9e}, - {value: 0x2a31, lo: 0x9f, hi: 0x9f}, + {value: 0x0979, lo: 0x9f, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xa0}, {value: 0x0008, lo: 0xa1, hi: 0xbf}, // Block 0x61, offset 0x315 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xbe}, - {value: 0x2a69, lo: 0xbf, hi: 0xbf}, + {value: 0x0981, lo: 0xbf, hi: 0xbf}, // Block 0x62, offset 0x318 {value: 0x0000, lo: 0x0e}, {value: 0x0040, lo: 0x80, hi: 0x84}, @@ -3309,46 +3452,58 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa4, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbf}, // Block 0x64, offset 0x32b - {value: 0x0030, lo: 0x04}, - {value: 0x2aa2, lo: 0x80, hi: 0x9d}, - {value: 0x305a, lo: 0x9e, hi: 0x9e}, + {value: 0x0008, lo: 0x03}, + {value: 0x098a, lo: 0x80, hi: 0x9e}, {value: 0x0040, lo: 0x9f, hi: 0x9f}, - {value: 0x30a2, lo: 0xa0, hi: 0xbf}, - // Block 0x65, offset 0x330 + {value: 0x0a82, lo: 0xa0, hi: 0xbf}, + // Block 0x65, offset 0x32f + {value: 0x0008, lo: 0x01}, + {value: 0x0d19, lo: 0x80, hi: 0xbf}, + // Block 0x66, offset 0x331 + {value: 0x0008, lo: 0x08}, + {value: 0x0f19, lo: 0x80, hi: 0xb0}, + {value: 0x4045, lo: 0xb1, hi: 0xb1}, + {value: 0x10a1, lo: 0xb2, hi: 0xb3}, + {value: 0x4065, lo: 0xb4, hi: 0xb4}, + {value: 0x10b1, lo: 0xb5, hi: 0xb7}, + {value: 0x4085, lo: 0xb8, hi: 0xb8}, + {value: 0x4085, lo: 0xb9, hi: 0xb9}, + {value: 0x10c9, lo: 0xba, hi: 0xbf}, + // Block 0x67, offset 0x33a {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xbc}, {value: 0x0040, lo: 0xbd, hi: 0xbf}, - // Block 0x66, offset 0x333 + // Block 0x68, offset 0x33d {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0x8c}, {value: 0x0040, lo: 0x8d, hi: 0x8f}, {value: 0x0018, lo: 0x90, hi: 0xbf}, - // Block 0x67, offset 0x337 + // Block 0x69, offset 0x341 {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0x86}, {value: 0x0040, lo: 0x87, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0xbd}, {value: 0x0018, lo: 0xbe, hi: 0xbf}, - // Block 0x68, offset 0x33c + // Block 0x6a, offset 0x346 {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0x8c}, {value: 0x0018, lo: 0x8d, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0xab}, {value: 0x0040, lo: 0xac, hi: 0xbf}, - // Block 0x69, offset 0x341 + // Block 0x6b, offset 0x34b {value: 0x0000, lo: 0x05}, {value: 0x0008, lo: 0x80, hi: 0xa5}, {value: 0x0018, lo: 0xa6, hi: 0xaf}, {value: 0x3308, lo: 0xb0, hi: 0xb1}, {value: 0x0018, lo: 0xb2, hi: 0xb7}, {value: 0x0040, lo: 0xb8, hi: 0xbf}, - // Block 0x6a, offset 0x347 + // Block 0x6c, offset 0x351 {value: 0x0000, lo: 0x10}, {value: 0x0040, lo: 0x80, hi: 0x81}, {value: 0xe00d, lo: 0x82, hi: 0x82}, {value: 0x0008, lo: 0x83, hi: 0x83}, {value: 0x03f5, lo: 0x84, hi: 0x84}, - {value: 0x1329, lo: 0x85, hi: 0x85}, + {value: 0x0479, lo: 0x85, hi: 0x85}, {value: 0x447d, lo: 0x86, hi: 0x86}, {value: 0xe07d, lo: 0x87, hi: 0x87}, {value: 0x0008, lo: 0x88, hi: 0x88}, @@ -3357,10 +3512,10 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x8b, hi: 0xb4}, {value: 0xe01d, lo: 0xb5, hi: 0xb5}, {value: 0x0008, lo: 0xb6, hi: 0xb7}, - {value: 0x2009, lo: 0xb8, hi: 0xb8}, - {value: 0x6ec1, lo: 0xb9, hi: 0xb9}, + {value: 0x0741, lo: 0xb8, hi: 0xb8}, + {value: 0x13f1, lo: 0xb9, hi: 0xb9}, {value: 0x0008, lo: 0xba, hi: 0xbf}, - // Block 0x6b, offset 0x358 + // Block 0x6d, offset 0x362 {value: 0x0000, lo: 0x0f}, {value: 0x0008, lo: 0x80, hi: 0x81}, {value: 0x3308, lo: 0x82, hi: 0x82}, @@ -3377,19 +3532,19 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xad, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbf}, - // Block 0x6c, offset 0x368 + // Block 0x6e, offset 0x372 {value: 0x0000, lo: 0x05}, {value: 0x0208, lo: 0x80, hi: 0xb1}, {value: 0x0108, lo: 0xb2, hi: 0xb2}, {value: 0x0008, lo: 0xb3, hi: 0xb3}, {value: 0x0018, lo: 0xb4, hi: 0xb7}, {value: 0x0040, lo: 0xb8, hi: 0xbf}, - // Block 0x6d, offset 0x36e + // Block 0x6f, offset 0x378 {value: 0x0000, lo: 0x03}, {value: 0x3008, lo: 0x80, hi: 0x81}, {value: 0x0008, lo: 0x82, hi: 0xb3}, {value: 0x3008, lo: 0xb4, hi: 0xbf}, - // Block 0x6e, offset 0x372 + // Block 0x70, offset 0x37c {value: 0x0000, lo: 0x0e}, {value: 0x3008, lo: 0x80, hi: 0x83}, {value: 0x3b08, lo: 0x84, hi: 0x84}, @@ -3405,13 +3560,13 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0xbc, hi: 0xbc}, {value: 0x0008, lo: 0xbd, hi: 0xbe}, {value: 0x3308, lo: 0xbf, hi: 0xbf}, - // Block 0x6f, offset 0x381 + // Block 0x71, offset 0x38b {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0xa5}, {value: 0x3308, lo: 0xa6, hi: 0xad}, {value: 0x0018, lo: 0xae, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbf}, - // Block 0x70, offset 0x386 + // Block 0x72, offset 0x390 {value: 0x0000, lo: 0x07}, {value: 0x0008, lo: 0x80, hi: 0x86}, {value: 0x3308, lo: 0x87, hi: 0x91}, @@ -3420,7 +3575,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x94, hi: 0x9e}, {value: 0x0018, lo: 0x9f, hi: 0xbc}, {value: 0x0040, lo: 0xbd, hi: 0xbf}, - // Block 0x71, offset 0x38e + // Block 0x73, offset 0x398 {value: 0x0000, lo: 0x09}, {value: 0x3308, lo: 0x80, hi: 0x82}, {value: 0x3008, lo: 0x83, hi: 0x83}, @@ -3431,7 +3586,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3008, lo: 0xba, hi: 0xbb}, {value: 0x3308, lo: 0xbc, hi: 0xbd}, {value: 0x3008, lo: 0xbe, hi: 0xbf}, - // Block 0x72, offset 0x398 + // Block 0x74, offset 0x3a2 {value: 0x0000, lo: 0x0a}, {value: 0x3808, lo: 0x80, hi: 0x80}, {value: 0x0018, lo: 0x81, hi: 0x8d}, @@ -3443,7 +3598,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xa5, hi: 0xa5}, {value: 0x0008, lo: 0xa6, hi: 0xbe}, {value: 0x0040, lo: 0xbf, hi: 0xbf}, - // Block 0x73, offset 0x3a3 + // Block 0x75, offset 0x3ad {value: 0x0000, lo: 0x07}, {value: 0x0008, lo: 0x80, hi: 0xa8}, {value: 0x3308, lo: 0xa9, hi: 0xae}, @@ -3452,7 +3607,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3008, lo: 0xb3, hi: 0xb4}, {value: 0x3308, lo: 0xb5, hi: 0xb6}, {value: 0x0040, lo: 0xb7, hi: 0xbf}, - // Block 0x74, offset 0x3ab + // Block 0x76, offset 0x3b5 {value: 0x0000, lo: 0x10}, {value: 0x0008, lo: 0x80, hi: 0x82}, {value: 0x3308, lo: 0x83, hi: 0x83}, @@ -3470,7 +3625,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xbc, hi: 0xbc}, {value: 0x3008, lo: 0xbd, hi: 0xbd}, {value: 0x0008, lo: 0xbe, hi: 0xbf}, - // Block 0x75, offset 0x3bc + // Block 0x77, offset 0x3c6 {value: 0x0000, lo: 0x08}, {value: 0x0008, lo: 0x80, hi: 0xaf}, {value: 0x3308, lo: 0xb0, hi: 0xb0}, @@ -3480,7 +3635,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xb7, hi: 0xb8}, {value: 0x0008, lo: 0xb9, hi: 0xbd}, {value: 0x3308, lo: 0xbe, hi: 0xbf}, - // Block 0x76, offset 0x3c5 + // Block 0x78, offset 0x3cf {value: 0x0000, lo: 0x0f}, {value: 0x0008, lo: 0x80, hi: 0x80}, {value: 0x3308, lo: 0x81, hi: 0x81}, @@ -3497,7 +3652,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3008, lo: 0xb5, hi: 0xb5}, {value: 0x3b08, lo: 0xb6, hi: 0xb6}, {value: 0x0040, lo: 0xb7, hi: 0xbf}, - // Block 0x77, offset 0x3d5 + // Block 0x79, offset 0x3df {value: 0x0000, lo: 0x0c}, {value: 0x0040, lo: 0x80, hi: 0x80}, {value: 0x0008, lo: 0x81, hi: 0x86}, @@ -3511,26 +3666,26 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xa8, hi: 0xae}, {value: 0x0040, lo: 0xaf, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbf}, - // Block 0x78, offset 0x3e2 + // Block 0x7a, offset 0x3ec {value: 0x0000, lo: 0x0b}, {value: 0x0008, lo: 0x80, hi: 0x9a}, {value: 0x0018, lo: 0x9b, hi: 0x9b}, {value: 0x449d, lo: 0x9c, hi: 0x9c}, {value: 0x44b5, lo: 0x9d, hi: 0x9d}, - {value: 0x2971, lo: 0x9e, hi: 0x9e}, + {value: 0x0941, lo: 0x9e, hi: 0x9e}, {value: 0xe06d, lo: 0x9f, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xa8}, - {value: 0x6ed9, lo: 0xa9, hi: 0xa9}, + {value: 0x13f9, lo: 0xa9, hi: 0xa9}, {value: 0x0018, lo: 0xaa, hi: 0xab}, {value: 0x0040, lo: 0xac, hi: 0xaf}, {value: 0x44cd, lo: 0xb0, hi: 0xbf}, - // Block 0x79, offset 0x3ee + // Block 0x7b, offset 0x3f8 {value: 0x0000, lo: 0x04}, {value: 0x44ed, lo: 0x80, hi: 0x8f}, {value: 0x450d, lo: 0x90, hi: 0x9f}, {value: 0x452d, lo: 0xa0, hi: 0xaf}, {value: 0x450d, lo: 0xb0, hi: 0xbf}, - // Block 0x7a, offset 0x3f3 + // Block 0x7c, offset 0x3fd {value: 0x0000, lo: 0x0c}, {value: 0x0008, lo: 0x80, hi: 0xa2}, {value: 0x3008, lo: 0xa3, hi: 0xa4}, @@ -3544,76 +3699,76 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xae, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbf}, - // Block 0x7b, offset 0x400 + // Block 0x7d, offset 0x40a {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0xa3}, {value: 0x0040, lo: 0xa4, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xbf}, - // Block 0x7c, offset 0x404 + // Block 0x7e, offset 0x40e {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0x86}, {value: 0x0040, lo: 0x87, hi: 0x8a}, {value: 0x0018, lo: 0x8b, hi: 0xbb}, {value: 0x0040, lo: 0xbc, hi: 0xbf}, - // Block 0x7d, offset 0x409 + // Block 0x7f, offset 0x413 {value: 0x0000, lo: 0x01}, {value: 0x0040, lo: 0x80, hi: 0xbf}, - // Block 0x7e, offset 0x40b + // Block 0x80, offset 0x415 {value: 0x0020, lo: 0x01}, {value: 0x454d, lo: 0x80, hi: 0xbf}, - // Block 0x7f, offset 0x40d + // Block 0x81, offset 0x417 {value: 0x0020, lo: 0x03}, {value: 0x4d4d, lo: 0x80, hi: 0x94}, {value: 0x4b0d, lo: 0x95, hi: 0x95}, {value: 0x4fed, lo: 0x96, hi: 0xbf}, - // Block 0x80, offset 0x411 + // Block 0x82, offset 0x41b {value: 0x0020, lo: 0x01}, {value: 0x552d, lo: 0x80, hi: 0xbf}, - // Block 0x81, offset 0x413 + // Block 0x83, offset 0x41d {value: 0x0020, lo: 0x03}, {value: 0x5d2d, lo: 0x80, hi: 0x84}, {value: 0x568d, lo: 0x85, hi: 0x85}, {value: 0x5dcd, lo: 0x86, hi: 0xbf}, - // Block 0x82, offset 0x417 + // Block 0x84, offset 0x421 {value: 0x0020, lo: 0x08}, {value: 0x6b8d, lo: 0x80, hi: 0x8f}, {value: 0x6d4d, lo: 0x90, hi: 0x90}, {value: 0x6d8d, lo: 0x91, hi: 0xab}, - {value: 0x6ef1, lo: 0xac, hi: 0xac}, + {value: 0x1401, lo: 0xac, hi: 0xac}, {value: 0x70ed, lo: 0xad, hi: 0xad}, {value: 0x0040, lo: 0xae, hi: 0xae}, {value: 0x0040, lo: 0xaf, hi: 0xaf}, {value: 0x710d, lo: 0xb0, hi: 0xbf}, - // Block 0x83, offset 0x420 + // Block 0x85, offset 0x42a {value: 0x0020, lo: 0x05}, {value: 0x730d, lo: 0x80, hi: 0xad}, {value: 0x656d, lo: 0xae, hi: 0xae}, {value: 0x78cd, lo: 0xaf, hi: 0xb5}, {value: 0x6f8d, lo: 0xb6, hi: 0xb6}, {value: 0x79ad, lo: 0xb7, hi: 0xbf}, - // Block 0x84, offset 0x426 - {value: 0x0028, lo: 0x03}, - {value: 0x7c71, lo: 0x80, hi: 0x82}, - {value: 0x7c31, lo: 0x83, hi: 0x83}, - {value: 0x7ce9, lo: 0x84, hi: 0xbf}, - // Block 0x85, offset 0x42a - {value: 0x0038, lo: 0x0f}, - {value: 0x9e01, lo: 0x80, hi: 0x83}, - {value: 0x9ea9, lo: 0x84, hi: 0x85}, - {value: 0x9ee1, lo: 0x86, hi: 0x87}, - {value: 0x9f19, lo: 0x88, hi: 0x8f}, + // Block 0x86, offset 0x430 + {value: 0x0008, lo: 0x03}, + {value: 0x1751, lo: 0x80, hi: 0x82}, + {value: 0x1741, lo: 0x83, hi: 0x83}, + {value: 0x1769, lo: 0x84, hi: 0xbf}, + // Block 0x87, offset 0x434 + {value: 0x0008, lo: 0x0f}, + {value: 0x1d81, lo: 0x80, hi: 0x83}, + {value: 0x1d99, lo: 0x84, hi: 0x85}, + {value: 0x1da1, lo: 0x86, hi: 0x87}, + {value: 0x1da9, lo: 0x88, hi: 0x8f}, {value: 0x0040, lo: 0x90, hi: 0x90}, {value: 0x0040, lo: 0x91, hi: 0x91}, - {value: 0xa0d9, lo: 0x92, hi: 0x97}, - {value: 0xa1f1, lo: 0x98, hi: 0x9c}, - {value: 0xa2d1, lo: 0x9d, hi: 0xb3}, - {value: 0x9d91, lo: 0xb4, hi: 0xb4}, - {value: 0x9e01, lo: 0xb5, hi: 0xb5}, - {value: 0xa7d9, lo: 0xb6, hi: 0xbb}, - {value: 0xa8b9, lo: 0xbc, hi: 0xbc}, - {value: 0xa849, lo: 0xbd, hi: 0xbd}, - {value: 0xa929, lo: 0xbe, hi: 0xbf}, - // Block 0x86, offset 0x43a + {value: 0x1de9, lo: 0x92, hi: 0x97}, + {value: 0x1e11, lo: 0x98, hi: 0x9c}, + {value: 0x1e31, lo: 0x9d, hi: 0xb3}, + {value: 0x1d71, lo: 0xb4, hi: 0xb4}, + {value: 0x1d81, lo: 0xb5, hi: 0xb5}, + {value: 0x1ee9, lo: 0xb6, hi: 0xbb}, + {value: 0x1f09, lo: 0xbc, hi: 0xbc}, + {value: 0x1ef9, lo: 0xbd, hi: 0xbd}, + {value: 0x1f19, lo: 0xbe, hi: 0xbf}, + // Block 0x88, offset 0x444 {value: 0x0000, lo: 0x09}, {value: 0x0008, lo: 0x80, hi: 0x8b}, {value: 0x0040, lo: 0x8c, hi: 0x8c}, @@ -3624,24 +3779,24 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xbc, hi: 0xbd}, {value: 0x0040, lo: 0xbe, hi: 0xbe}, {value: 0x0008, lo: 0xbf, hi: 0xbf}, - // Block 0x87, offset 0x444 + // Block 0x89, offset 0x44e {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0x8d}, {value: 0x0040, lo: 0x8e, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0x9d}, {value: 0x0040, lo: 0x9e, hi: 0xbf}, - // Block 0x88, offset 0x449 + // Block 0x8a, offset 0x453 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xba}, {value: 0x0040, lo: 0xbb, hi: 0xbf}, - // Block 0x89, offset 0x44c + // Block 0x8b, offset 0x456 {value: 0x0000, lo: 0x05}, {value: 0x0018, lo: 0x80, hi: 0x82}, {value: 0x0040, lo: 0x83, hi: 0x86}, {value: 0x0018, lo: 0x87, hi: 0xb3}, {value: 0x0040, lo: 0xb4, hi: 0xb6}, {value: 0x0018, lo: 0xb7, hi: 0xbf}, - // Block 0x8a, offset 0x452 + // Block 0x8c, offset 0x45c {value: 0x0000, lo: 0x06}, {value: 0x0018, lo: 0x80, hi: 0x8e}, {value: 0x0040, lo: 0x8f, hi: 0x8f}, @@ -3649,31 +3804,31 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x9d, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xa0}, {value: 0x0040, lo: 0xa1, hi: 0xbf}, - // Block 0x8b, offset 0x459 + // Block 0x8d, offset 0x463 {value: 0x0000, lo: 0x04}, {value: 0x0040, lo: 0x80, hi: 0x8f}, {value: 0x0018, lo: 0x90, hi: 0xbc}, {value: 0x3308, lo: 0xbd, hi: 0xbd}, {value: 0x0040, lo: 0xbe, hi: 0xbf}, - // Block 0x8c, offset 0x45e + // Block 0x8e, offset 0x468 {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0x9c}, {value: 0x0040, lo: 0x9d, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xbf}, - // Block 0x8d, offset 0x462 + // Block 0x8f, offset 0x46c {value: 0x0000, lo: 0x05}, {value: 0x0008, lo: 0x80, hi: 0x90}, {value: 0x0040, lo: 0x91, hi: 0x9f}, {value: 0x3308, lo: 0xa0, hi: 0xa0}, {value: 0x0018, lo: 0xa1, hi: 0xbb}, {value: 0x0040, lo: 0xbc, hi: 0xbf}, - // Block 0x8e, offset 0x468 + // Block 0x90, offset 0x472 {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xa3}, {value: 0x0040, lo: 0xa4, hi: 0xac}, {value: 0x0008, lo: 0xad, hi: 0xbf}, - // Block 0x8f, offset 0x46d + // Block 0x91, offset 0x477 {value: 0x0000, lo: 0x08}, {value: 0x0008, lo: 0x80, hi: 0x80}, {value: 0x0018, lo: 0x81, hi: 0x81}, @@ -3683,20 +3838,20 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0x90, hi: 0xb5}, {value: 0x3308, lo: 0xb6, hi: 0xba}, {value: 0x0040, lo: 0xbb, hi: 0xbf}, - // Block 0x90, offset 0x476 + // Block 0x92, offset 0x480 {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0x9d}, {value: 0x0040, lo: 0x9e, hi: 0x9e}, {value: 0x0018, lo: 0x9f, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xbf}, - // Block 0x91, offset 0x47b + // Block 0x93, offset 0x485 {value: 0x0000, lo: 0x05}, {value: 0x0008, lo: 0x80, hi: 0x83}, {value: 0x0040, lo: 0x84, hi: 0x87}, {value: 0x0008, lo: 0x88, hi: 0x8f}, {value: 0x0018, lo: 0x90, hi: 0x95}, {value: 0x0040, lo: 0x96, hi: 0xbf}, - // Block 0x92, offset 0x481 + // Block 0x94, offset 0x48b {value: 0x0000, lo: 0x06}, {value: 0xe145, lo: 0x80, hi: 0x87}, {value: 0xe1c5, lo: 0x88, hi: 0x8f}, @@ -3704,7 +3859,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x8b0d, lo: 0x98, hi: 0x9f}, {value: 0x8b25, lo: 0xa0, hi: 0xa7}, {value: 0x0008, lo: 0xa8, hi: 0xbf}, - // Block 0x93, offset 0x488 + // Block 0x95, offset 0x492 {value: 0x0000, lo: 0x06}, {value: 0x0008, lo: 0x80, hi: 0x9d}, {value: 0x0040, lo: 0x9e, hi: 0x9f}, @@ -3712,7 +3867,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xaa, hi: 0xaf}, {value: 0x8b25, lo: 0xb0, hi: 0xb7}, {value: 0x8b0d, lo: 0xb8, hi: 0xbf}, - // Block 0x94, offset 0x48f + // Block 0x96, offset 0x499 {value: 0x0000, lo: 0x06}, {value: 0xe145, lo: 0x80, hi: 0x87}, {value: 0xe1c5, lo: 0x88, hi: 0x8f}, @@ -3720,28 +3875,28 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x94, hi: 0x97}, {value: 0x0008, lo: 0x98, hi: 0xbb}, {value: 0x0040, lo: 0xbc, hi: 0xbf}, - // Block 0x95, offset 0x496 + // Block 0x97, offset 0x4a0 {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0xa7}, {value: 0x0040, lo: 0xa8, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbf}, - // Block 0x96, offset 0x49a + // Block 0x98, offset 0x4a4 {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0xa3}, {value: 0x0040, lo: 0xa4, hi: 0xae}, {value: 0x0018, lo: 0xaf, hi: 0xaf}, {value: 0x0040, lo: 0xb0, hi: 0xbf}, - // Block 0x97, offset 0x49f + // Block 0x99, offset 0x4a9 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xb6}, {value: 0x0040, lo: 0xb7, hi: 0xbf}, - // Block 0x98, offset 0x4a2 + // Block 0x9a, offset 0x4ac {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0x95}, {value: 0x0040, lo: 0x96, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xa7}, {value: 0x0040, lo: 0xa8, hi: 0xbf}, - // Block 0x99, offset 0x4a7 + // Block 0x9b, offset 0x4b1 {value: 0x0000, lo: 0x0b}, {value: 0x0808, lo: 0x80, hi: 0x85}, {value: 0x0040, lo: 0x86, hi: 0x87}, @@ -3754,20 +3909,20 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0808, lo: 0xbc, hi: 0xbc}, {value: 0x0040, lo: 0xbd, hi: 0xbe}, {value: 0x0808, lo: 0xbf, hi: 0xbf}, - // Block 0x9a, offset 0x4b3 + // Block 0x9c, offset 0x4bd {value: 0x0000, lo: 0x05}, {value: 0x0808, lo: 0x80, hi: 0x95}, {value: 0x0040, lo: 0x96, hi: 0x96}, {value: 0x0818, lo: 0x97, hi: 0x9f}, {value: 0x0808, lo: 0xa0, hi: 0xb6}, {value: 0x0818, lo: 0xb7, hi: 0xbf}, - // Block 0x9b, offset 0x4b9 + // Block 0x9d, offset 0x4c3 {value: 0x0000, lo: 0x04}, {value: 0x0808, lo: 0x80, hi: 0x9e}, {value: 0x0040, lo: 0x9f, hi: 0xa6}, {value: 0x0818, lo: 0xa7, hi: 0xaf}, {value: 0x0040, lo: 0xb0, hi: 0xbf}, - // Block 0x9c, offset 0x4be + // Block 0x9e, offset 0x4c8 {value: 0x0000, lo: 0x06}, {value: 0x0040, lo: 0x80, hi: 0x9f}, {value: 0x0808, lo: 0xa0, hi: 0xb2}, @@ -3775,7 +3930,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0808, lo: 0xb4, hi: 0xb5}, {value: 0x0040, lo: 0xb6, hi: 0xba}, {value: 0x0818, lo: 0xbb, hi: 0xbf}, - // Block 0x9d, offset 0x4c5 + // Block 0x9f, offset 0x4cf {value: 0x0000, lo: 0x07}, {value: 0x0808, lo: 0x80, hi: 0x95}, {value: 0x0818, lo: 0x96, hi: 0x9b}, @@ -3784,18 +3939,18 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0808, lo: 0xa0, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbe}, {value: 0x0818, lo: 0xbf, hi: 0xbf}, - // Block 0x9e, offset 0x4cd + // Block 0xa0, offset 0x4d7 {value: 0x0000, lo: 0x04}, {value: 0x0808, lo: 0x80, hi: 0xb7}, {value: 0x0040, lo: 0xb8, hi: 0xbb}, {value: 0x0818, lo: 0xbc, hi: 0xbd}, {value: 0x0808, lo: 0xbe, hi: 0xbf}, - // Block 0x9f, offset 0x4d2 + // Block 0xa1, offset 0x4dc {value: 0x0000, lo: 0x03}, {value: 0x0818, lo: 0x80, hi: 0x8f}, {value: 0x0040, lo: 0x90, hi: 0x91}, {value: 0x0818, lo: 0x92, hi: 0xbf}, - // Block 0xa0, offset 0x4d6 + // Block 0xa2, offset 0x4e0 {value: 0x0000, lo: 0x0f}, {value: 0x0808, lo: 0x80, hi: 0x80}, {value: 0x3308, lo: 0x81, hi: 0x83}, @@ -3812,7 +3967,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xb8, hi: 0xba}, {value: 0x0040, lo: 0xbb, hi: 0xbe}, {value: 0x3b08, lo: 0xbf, hi: 0xbf}, - // Block 0xa1, offset 0x4e6 + // Block 0xa3, offset 0x4f0 {value: 0x0000, lo: 0x06}, {value: 0x0818, lo: 0x80, hi: 0x88}, {value: 0x0040, lo: 0x89, hi: 0x8f}, @@ -3820,17 +3975,17 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x99, hi: 0x9f}, {value: 0x0808, lo: 0xa0, hi: 0xbc}, {value: 0x0818, lo: 0xbd, hi: 0xbf}, - // Block 0xa2, offset 0x4ed + // Block 0xa4, offset 0x4f7 {value: 0x0000, lo: 0x03}, {value: 0x0808, lo: 0x80, hi: 0x9c}, {value: 0x0818, lo: 0x9d, hi: 0x9f}, {value: 0x0040, lo: 0xa0, hi: 0xbf}, - // Block 0xa3, offset 0x4f1 + // Block 0xa5, offset 0x4fb {value: 0x0000, lo: 0x03}, {value: 0x0808, lo: 0x80, hi: 0xb5}, {value: 0x0040, lo: 0xb6, hi: 0xb8}, {value: 0x0018, lo: 0xb9, hi: 0xbf}, - // Block 0xa4, offset 0x4f5 + // Block 0xa6, offset 0x4ff {value: 0x0000, lo: 0x06}, {value: 0x0808, lo: 0x80, hi: 0x95}, {value: 0x0040, lo: 0x96, hi: 0x97}, @@ -3838,23 +3993,23 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0808, lo: 0xa0, hi: 0xb2}, {value: 0x0040, lo: 0xb3, hi: 0xb7}, {value: 0x0818, lo: 0xb8, hi: 0xbf}, - // Block 0xa5, offset 0x4fc + // Block 0xa7, offset 0x506 {value: 0x0000, lo: 0x01}, {value: 0x0808, lo: 0x80, hi: 0xbf}, - // Block 0xa6, offset 0x4fe + // Block 0xa8, offset 0x508 {value: 0x0000, lo: 0x02}, {value: 0x0808, lo: 0x80, hi: 0x88}, {value: 0x0040, lo: 0x89, hi: 0xbf}, - // Block 0xa7, offset 0x501 + // Block 0xa9, offset 0x50b {value: 0x0000, lo: 0x02}, {value: 0x03dd, lo: 0x80, hi: 0xb2}, {value: 0x0040, lo: 0xb3, hi: 0xbf}, - // Block 0xa8, offset 0x504 + // Block 0xaa, offset 0x50e {value: 0x0000, lo: 0x03}, {value: 0x0808, lo: 0x80, hi: 0xb2}, {value: 0x0040, lo: 0xb3, hi: 0xb9}, {value: 0x0818, lo: 0xba, hi: 0xbf}, - // Block 0xa9, offset 0x508 + // Block 0xab, offset 0x512 {value: 0x0000, lo: 0x08}, {value: 0x0908, lo: 0x80, hi: 0x80}, {value: 0x0a08, lo: 0x81, hi: 0xa1}, @@ -3864,12 +4019,12 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa8, hi: 0xaf}, {value: 0x0808, lo: 0xb0, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbf}, - // Block 0xaa, offset 0x511 + // Block 0xac, offset 0x51b {value: 0x0000, lo: 0x03}, {value: 0x0040, lo: 0x80, hi: 0x9f}, {value: 0x0818, lo: 0xa0, hi: 0xbe}, {value: 0x0040, lo: 0xbf, hi: 0xbf}, - // Block 0xab, offset 0x515 + // Block 0xad, offset 0x51f {value: 0x0000, lo: 0x07}, {value: 0x0808, lo: 0x80, hi: 0xa9}, {value: 0x0040, lo: 0xaa, hi: 0xaa}, @@ -3878,7 +4033,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xae, hi: 0xaf}, {value: 0x0808, lo: 0xb0, hi: 0xb1}, {value: 0x0040, lo: 0xb2, hi: 0xbf}, - // Block 0xac, offset 0x51d + // Block 0xae, offset 0x527 {value: 0x0000, lo: 0x07}, {value: 0x0808, lo: 0x80, hi: 0x9c}, {value: 0x0818, lo: 0x9d, hi: 0xa6}, @@ -3887,7 +4042,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0a08, lo: 0xb0, hi: 0xb2}, {value: 0x0c08, lo: 0xb3, hi: 0xb3}, {value: 0x0a08, lo: 0xb4, hi: 0xbf}, - // Block 0xad, offset 0x525 + // Block 0xaf, offset 0x52f {value: 0x0000, lo: 0x07}, {value: 0x0a08, lo: 0x80, hi: 0x84}, {value: 0x0808, lo: 0x85, hi: 0x85}, @@ -3896,7 +4051,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0c18, lo: 0x94, hi: 0x94}, {value: 0x0818, lo: 0x95, hi: 0x99}, {value: 0x0040, lo: 0x9a, hi: 0xbf}, - // Block 0xae, offset 0x52d + // Block 0xb0, offset 0x537 {value: 0x0000, lo: 0x0b}, {value: 0x0040, lo: 0x80, hi: 0xaf}, {value: 0x0a08, lo: 0xb0, hi: 0xb0}, @@ -3909,7 +4064,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0a08, lo: 0xbb, hi: 0xbc}, {value: 0x0c08, lo: 0xbd, hi: 0xbd}, {value: 0x0a08, lo: 0xbe, hi: 0xbf}, - // Block 0xaf, offset 0x539 + // Block 0xb1, offset 0x543 {value: 0x0000, lo: 0x0b}, {value: 0x0808, lo: 0x80, hi: 0x80}, {value: 0x0a08, lo: 0x81, hi: 0x81}, @@ -3922,14 +4077,14 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x8c, hi: 0x9f}, {value: 0x0808, lo: 0xa0, hi: 0xb6}, {value: 0x0040, lo: 0xb7, hi: 0xbf}, - // Block 0xb0, offset 0x545 + // Block 0xb2, offset 0x54f {value: 0x0000, lo: 0x05}, {value: 0x3008, lo: 0x80, hi: 0x80}, {value: 0x3308, lo: 0x81, hi: 0x81}, {value: 0x3008, lo: 0x82, hi: 0x82}, {value: 0x0008, lo: 0x83, hi: 0xb7}, {value: 0x3308, lo: 0xb8, hi: 0xbf}, - // Block 0xb1, offset 0x54b + // Block 0xb3, offset 0x555 {value: 0x0000, lo: 0x08}, {value: 0x3308, lo: 0x80, hi: 0x85}, {value: 0x3b08, lo: 0x86, hi: 0x86}, @@ -3939,7 +4094,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xa6, hi: 0xaf}, {value: 0x0040, lo: 0xb0, hi: 0xbe}, {value: 0x3b08, lo: 0xbf, hi: 0xbf}, - // Block 0xb2, offset 0x554 + // Block 0xb4, offset 0x55e {value: 0x0000, lo: 0x0b}, {value: 0x3308, lo: 0x80, hi: 0x81}, {value: 0x3008, lo: 0x82, hi: 0x82}, @@ -3952,7 +4107,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0xbb, hi: 0xbc}, {value: 0x0040, lo: 0xbd, hi: 0xbd}, {value: 0x0018, lo: 0xbe, hi: 0xbf}, - // Block 0xb3, offset 0x560 + // Block 0xb5, offset 0x56a {value: 0x0000, lo: 0x06}, {value: 0x0018, lo: 0x80, hi: 0x81}, {value: 0x0040, lo: 0x82, hi: 0x8f}, @@ -3960,7 +4115,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa9, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbf}, - // Block 0xb4, offset 0x567 + // Block 0xb6, offset 0x571 {value: 0x0000, lo: 0x08}, {value: 0x3308, lo: 0x80, hi: 0x82}, {value: 0x0008, lo: 0x83, hi: 0xa6}, @@ -3970,7 +4125,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3b08, lo: 0xb3, hi: 0xb4}, {value: 0x0040, lo: 0xb5, hi: 0xb5}, {value: 0x0008, lo: 0xb6, hi: 0xbf}, - // Block 0xb5, offset 0x570 + // Block 0xb7, offset 0x57a {value: 0x0000, lo: 0x0a}, {value: 0x0018, lo: 0x80, hi: 0x83}, {value: 0x0008, lo: 0x84, hi: 0x84}, @@ -3982,7 +4137,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0xb4, hi: 0xb5}, {value: 0x0008, lo: 0xb6, hi: 0xb6}, {value: 0x0040, lo: 0xb7, hi: 0xbf}, - // Block 0xb6, offset 0x57b + // Block 0xb8, offset 0x585 {value: 0x0000, lo: 0x06}, {value: 0x3308, lo: 0x80, hi: 0x81}, {value: 0x3008, lo: 0x82, hi: 0x82}, @@ -3990,7 +4145,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3008, lo: 0xb3, hi: 0xb5}, {value: 0x3308, lo: 0xb6, hi: 0xbe}, {value: 0x3008, lo: 0xbf, hi: 0xbf}, - // Block 0xb7, offset 0x582 + // Block 0xb9, offset 0x58c {value: 0x0000, lo: 0x0e}, {value: 0x3808, lo: 0x80, hi: 0x80}, {value: 0x0008, lo: 0x81, hi: 0x84}, @@ -4006,7 +4161,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa0, hi: 0xa0}, {value: 0x0018, lo: 0xa1, hi: 0xb4}, {value: 0x0040, lo: 0xb5, hi: 0xbf}, - // Block 0xb8, offset 0x591 + // Block 0xba, offset 0x59b {value: 0x0000, lo: 0x0c}, {value: 0x0008, lo: 0x80, hi: 0x91}, {value: 0x0040, lo: 0x92, hi: 0x92}, @@ -4020,7 +4175,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0xb8, hi: 0xbd}, {value: 0x3308, lo: 0xbe, hi: 0xbe}, {value: 0x0040, lo: 0xbf, hi: 0xbf}, - // Block 0xb9, offset 0x59e + // Block 0xbb, offset 0x5a8 {value: 0x0000, lo: 0x0c}, {value: 0x0008, lo: 0x80, hi: 0x86}, {value: 0x0040, lo: 0x87, hi: 0x87}, @@ -4034,7 +4189,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0xa9, hi: 0xa9}, {value: 0x0040, lo: 0xaa, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbf}, - // Block 0xba, offset 0x5ab + // Block 0xbc, offset 0x5b5 {value: 0x0000, lo: 0x08}, {value: 0x0008, lo: 0x80, hi: 0x9e}, {value: 0x3308, lo: 0x9f, hi: 0x9f}, @@ -4044,12 +4199,12 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xab, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbf}, - // Block 0xbb, offset 0x5b4 + // Block 0xbd, offset 0x5be {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0xb4}, {value: 0x3008, lo: 0xb5, hi: 0xb7}, {value: 0x3308, lo: 0xb8, hi: 0xbf}, - // Block 0xbc, offset 0x5b8 + // Block 0xbe, offset 0x5c2 {value: 0x0000, lo: 0x0e}, {value: 0x3008, lo: 0x80, hi: 0x81}, {value: 0x3b08, lo: 0x82, hi: 0x82}, @@ -4065,7 +4220,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0x9e, hi: 0x9e}, {value: 0x0008, lo: 0x9f, hi: 0xa1}, {value: 0x0040, lo: 0xa2, hi: 0xbf}, - // Block 0xbd, offset 0x5c7 + // Block 0xbf, offset 0x5d1 {value: 0x0000, lo: 0x07}, {value: 0x0008, lo: 0x80, hi: 0xaf}, {value: 0x3008, lo: 0xb0, hi: 0xb2}, @@ -4074,7 +4229,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xba, hi: 0xba}, {value: 0x3008, lo: 0xbb, hi: 0xbe}, {value: 0x3308, lo: 0xbf, hi: 0xbf}, - // Block 0xbe, offset 0x5cf + // Block 0xc0, offset 0x5d9 {value: 0x0000, lo: 0x0a}, {value: 0x3308, lo: 0x80, hi: 0x80}, {value: 0x3008, lo: 0x81, hi: 0x81}, @@ -4086,7 +4241,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x88, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0x99}, {value: 0x0040, lo: 0x9a, hi: 0xbf}, - // Block 0xbf, offset 0x5da + // Block 0xc1, offset 0x5e4 {value: 0x0000, lo: 0x08}, {value: 0x0008, lo: 0x80, hi: 0xae}, {value: 0x3008, lo: 0xaf, hi: 0xb1}, @@ -4096,14 +4251,14 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xbc, hi: 0xbd}, {value: 0x3008, lo: 0xbe, hi: 0xbe}, {value: 0x3b08, lo: 0xbf, hi: 0xbf}, - // Block 0xc0, offset 0x5e3 + // Block 0xc2, offset 0x5ed {value: 0x0000, lo: 0x05}, {value: 0x3308, lo: 0x80, hi: 0x80}, {value: 0x0018, lo: 0x81, hi: 0x97}, {value: 0x0008, lo: 0x98, hi: 0x9b}, {value: 0x3308, lo: 0x9c, hi: 0x9d}, {value: 0x0040, lo: 0x9e, hi: 0xbf}, - // Block 0xc1, offset 0x5e9 + // Block 0xc3, offset 0x5f3 {value: 0x0000, lo: 0x07}, {value: 0x0008, lo: 0x80, hi: 0xaf}, {value: 0x3008, lo: 0xb0, hi: 0xb2}, @@ -4112,7 +4267,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xbd, hi: 0xbd}, {value: 0x3008, lo: 0xbe, hi: 0xbe}, {value: 0x3b08, lo: 0xbf, hi: 0xbf}, - // Block 0xc2, offset 0x5f1 + // Block 0xc4, offset 0x5fb {value: 0x0000, lo: 0x08}, {value: 0x3308, lo: 0x80, hi: 0x80}, {value: 0x0018, lo: 0x81, hi: 0x83}, @@ -4122,7 +4277,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x9a, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xac}, {value: 0x0040, lo: 0xad, hi: 0xbf}, - // Block 0xc3, offset 0x5fa + // Block 0xc5, offset 0x604 {value: 0x0000, lo: 0x0a}, {value: 0x0008, lo: 0x80, hi: 0xaa}, {value: 0x3308, lo: 0xab, hi: 0xab}, @@ -4134,11 +4289,11 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xb7, hi: 0xb7}, {value: 0x0008, lo: 0xb8, hi: 0xb8}, {value: 0x0040, lo: 0xb9, hi: 0xbf}, - // Block 0xc4, offset 0x605 + // Block 0xc6, offset 0x60f {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x89}, {value: 0x0040, lo: 0x8a, hi: 0xbf}, - // Block 0xc5, offset 0x608 + // Block 0xc7, offset 0x612 {value: 0x0000, lo: 0x0b}, {value: 0x0008, lo: 0x80, hi: 0x9a}, {value: 0x0040, lo: 0x9b, hi: 0x9c}, @@ -4151,7 +4306,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xac, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xb9}, {value: 0x0018, lo: 0xba, hi: 0xbf}, - // Block 0xc6, offset 0x614 + // Block 0xc8, offset 0x61e {value: 0x0000, lo: 0x08}, {value: 0x0008, lo: 0x80, hi: 0xab}, {value: 0x3008, lo: 0xac, hi: 0xae}, @@ -4161,17 +4316,17 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xba, hi: 0xba}, {value: 0x0018, lo: 0xbb, hi: 0xbb}, {value: 0x0040, lo: 0xbc, hi: 0xbf}, - // Block 0xc7, offset 0x61d + // Block 0xc9, offset 0x627 {value: 0x0000, lo: 0x02}, {value: 0x0040, lo: 0x80, hi: 0x9f}, {value: 0x049d, lo: 0xa0, hi: 0xbf}, - // Block 0xc8, offset 0x620 + // Block 0xca, offset 0x62a {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0xa9}, {value: 0x0018, lo: 0xaa, hi: 0xb2}, {value: 0x0040, lo: 0xb3, hi: 0xbe}, {value: 0x0008, lo: 0xbf, hi: 0xbf}, - // Block 0xc9, offset 0x625 + // Block 0xcb, offset 0x62f {value: 0x0000, lo: 0x08}, {value: 0x3008, lo: 0x80, hi: 0x80}, {value: 0x0008, lo: 0x81, hi: 0x81}, @@ -4181,13 +4336,13 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x87, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0x99}, {value: 0x0040, lo: 0x9a, hi: 0xbf}, - // Block 0xca, offset 0x62e + // Block 0xcc, offset 0x638 {value: 0x0000, lo: 0x04}, {value: 0x0040, lo: 0x80, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xa7}, {value: 0x0040, lo: 0xa8, hi: 0xa9}, {value: 0x0008, lo: 0xaa, hi: 0xbf}, - // Block 0xcb, offset 0x633 + // Block 0xcd, offset 0x63d {value: 0x0000, lo: 0x0c}, {value: 0x0008, lo: 0x80, hi: 0x90}, {value: 0x3008, lo: 0x91, hi: 0x93}, @@ -4201,7 +4356,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xa3, hi: 0xa3}, {value: 0x3008, lo: 0xa4, hi: 0xa4}, {value: 0x0040, lo: 0xa5, hi: 0xbf}, - // Block 0xcc, offset 0x640 + // Block 0xce, offset 0x64a {value: 0x0000, lo: 0x0a}, {value: 0x0008, lo: 0x80, hi: 0x80}, {value: 0x3308, lo: 0x81, hi: 0x8a}, @@ -4213,7 +4368,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xba, hi: 0xba}, {value: 0x3308, lo: 0xbb, hi: 0xbe}, {value: 0x0018, lo: 0xbf, hi: 0xbf}, - // Block 0xcd, offset 0x64b + // Block 0xcf, offset 0x655 {value: 0x0000, lo: 0x08}, {value: 0x0018, lo: 0x80, hi: 0x86}, {value: 0x3b08, lo: 0x87, hi: 0x87}, @@ -4223,7 +4378,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3008, lo: 0x97, hi: 0x98}, {value: 0x3308, lo: 0x99, hi: 0x9b}, {value: 0x0008, lo: 0x9c, hi: 0xbf}, - // Block 0xce, offset 0x654 + // Block 0xd0, offset 0x65e {value: 0x0000, lo: 0x09}, {value: 0x0008, lo: 0x80, hi: 0x89}, {value: 0x3308, lo: 0x8a, hi: 0x96}, @@ -4234,11 +4389,11 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0x9d, hi: 0x9d}, {value: 0x0018, lo: 0x9e, hi: 0xa2}, {value: 0x0040, lo: 0xa3, hi: 0xbf}, - // Block 0xcf, offset 0x65e + // Block 0xd1, offset 0x668 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xb8}, {value: 0x0040, lo: 0xb9, hi: 0xbf}, - // Block 0xd0, offset 0x661 + // Block 0xd2, offset 0x66b {value: 0x0000, lo: 0x09}, {value: 0x0008, lo: 0x80, hi: 0x88}, {value: 0x0040, lo: 0x89, hi: 0x89}, @@ -4249,7 +4404,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xb8, hi: 0xbd}, {value: 0x3008, lo: 0xbe, hi: 0xbe}, {value: 0x3b08, lo: 0xbf, hi: 0xbf}, - // Block 0xd1, offset 0x66b + // Block 0xd3, offset 0x675 {value: 0x0000, lo: 0x08}, {value: 0x0008, lo: 0x80, hi: 0x80}, {value: 0x0018, lo: 0x81, hi: 0x85}, @@ -4259,7 +4414,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xad, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xb1}, {value: 0x0008, lo: 0xb2, hi: 0xbf}, - // Block 0xd2, offset 0x674 + // Block 0xd4, offset 0x67e {value: 0x0000, lo: 0x0b}, {value: 0x0008, lo: 0x80, hi: 0x8f}, {value: 0x0040, lo: 0x90, hi: 0x91}, @@ -4272,7 +4427,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3008, lo: 0xb4, hi: 0xb4}, {value: 0x3308, lo: 0xb5, hi: 0xb6}, {value: 0x0040, lo: 0xb7, hi: 0xbf}, - // Block 0xd3, offset 0x680 + // Block 0xd5, offset 0x68a {value: 0x0000, lo: 0x0c}, {value: 0x0008, lo: 0x80, hi: 0x86}, {value: 0x0040, lo: 0x87, hi: 0x87}, @@ -4286,7 +4441,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xbc, hi: 0xbd}, {value: 0x0040, lo: 0xbe, hi: 0xbe}, {value: 0x3308, lo: 0xbf, hi: 0xbf}, - // Block 0xd4, offset 0x68d + // Block 0xd6, offset 0x697 {value: 0x0000, lo: 0x0c}, {value: 0x3308, lo: 0x80, hi: 0x83}, {value: 0x3b08, lo: 0x84, hi: 0x85}, @@ -4300,7 +4455,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xa7, hi: 0xa8}, {value: 0x0040, lo: 0xa9, hi: 0xa9}, {value: 0x0008, lo: 0xaa, hi: 0xbf}, - // Block 0xd5, offset 0x69a + // Block 0xd7, offset 0x6a4 {value: 0x0000, lo: 0x0d}, {value: 0x0008, lo: 0x80, hi: 0x89}, {value: 0x3008, lo: 0x8a, hi: 0x8e}, @@ -4315,7 +4470,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x99, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xa9}, {value: 0x0040, lo: 0xaa, hi: 0xbf}, - // Block 0xd6, offset 0x6a8 + // Block 0xd8, offset 0x6b2 {value: 0x0000, lo: 0x06}, {value: 0x0040, lo: 0x80, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xb2}, @@ -4323,41 +4478,41 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3008, lo: 0xb5, hi: 0xb6}, {value: 0x0018, lo: 0xb7, hi: 0xb8}, {value: 0x0040, lo: 0xb9, hi: 0xbf}, - // Block 0xd7, offset 0x6af + // Block 0xd9, offset 0x6b9 {value: 0x0000, lo: 0x03}, {value: 0x0040, lo: 0x80, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xb0}, {value: 0x0040, lo: 0xb1, hi: 0xbf}, - // Block 0xd8, offset 0x6b3 + // Block 0xda, offset 0x6bd {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0xb1}, {value: 0x0040, lo: 0xb2, hi: 0xbe}, {value: 0x0018, lo: 0xbf, hi: 0xbf}, - // Block 0xd9, offset 0x6b7 + // Block 0xdb, offset 0x6c1 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x99}, {value: 0x0040, lo: 0x9a, hi: 0xbf}, - // Block 0xda, offset 0x6ba + // Block 0xdc, offset 0x6c4 {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0xae}, {value: 0x0040, lo: 0xaf, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xb4}, {value: 0x0040, lo: 0xb5, hi: 0xbf}, - // Block 0xdb, offset 0x6bf + // Block 0xdd, offset 0x6c9 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x83}, {value: 0x0040, lo: 0x84, hi: 0xbf}, - // Block 0xdc, offset 0x6c2 + // Block 0xde, offset 0x6cc {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0xae}, {value: 0x0040, lo: 0xaf, hi: 0xaf}, {value: 0x0340, lo: 0xb0, hi: 0xb8}, {value: 0x0040, lo: 0xb9, hi: 0xbf}, - // Block 0xdd, offset 0x6c7 + // Block 0xdf, offset 0x6d1 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x86}, {value: 0x0040, lo: 0x87, hi: 0xbf}, - // Block 0xde, offset 0x6ca + // Block 0xe0, offset 0x6d4 {value: 0x0000, lo: 0x06}, {value: 0x0008, lo: 0x80, hi: 0x9e}, {value: 0x0040, lo: 0x9f, hi: 0x9f}, @@ -4365,7 +4520,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xaa, hi: 0xad}, {value: 0x0018, lo: 0xae, hi: 0xaf}, {value: 0x0040, lo: 0xb0, hi: 0xbf}, - // Block 0xdf, offset 0x6d1 + // Block 0xe1, offset 0x6db {value: 0x0000, lo: 0x06}, {value: 0x0040, lo: 0x80, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0xad}, @@ -4373,12 +4528,12 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xb0, hi: 0xb4}, {value: 0x0018, lo: 0xb5, hi: 0xb5}, {value: 0x0040, lo: 0xb6, hi: 0xbf}, - // Block 0xe0, offset 0x6d8 + // Block 0xe2, offset 0x6e2 {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0xaf}, {value: 0x3308, lo: 0xb0, hi: 0xb6}, {value: 0x0018, lo: 0xb7, hi: 0xbf}, - // Block 0xe1, offset 0x6dc + // Block 0xe3, offset 0x6e6 {value: 0x0000, lo: 0x0a}, {value: 0x0008, lo: 0x80, hi: 0x83}, {value: 0x0018, lo: 0x84, hi: 0x85}, @@ -4390,33 +4545,33 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xa3, hi: 0xb7}, {value: 0x0040, lo: 0xb8, hi: 0xbc}, {value: 0x0008, lo: 0xbd, hi: 0xbf}, - // Block 0xe2, offset 0x6e7 + // Block 0xe4, offset 0x6f1 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x8f}, {value: 0x0040, lo: 0x90, hi: 0xbf}, - // Block 0xe3, offset 0x6ea + // Block 0xe5, offset 0x6f4 {value: 0x0000, lo: 0x02}, {value: 0xe105, lo: 0x80, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xbf}, - // Block 0xe4, offset 0x6ed + // Block 0xe6, offset 0x6f7 {value: 0x0000, lo: 0x02}, {value: 0x0018, lo: 0x80, hi: 0x9a}, {value: 0x0040, lo: 0x9b, hi: 0xbf}, - // Block 0xe5, offset 0x6f0 + // Block 0xe7, offset 0x6fa {value: 0x0000, lo: 0x05}, {value: 0x0008, lo: 0x80, hi: 0x8a}, {value: 0x0040, lo: 0x8b, hi: 0x8e}, {value: 0x3308, lo: 0x8f, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0x90}, {value: 0x3008, lo: 0x91, hi: 0xbf}, - // Block 0xe6, offset 0x6f6 + // Block 0xe8, offset 0x700 {value: 0x0000, lo: 0x05}, {value: 0x3008, lo: 0x80, hi: 0x87}, {value: 0x0040, lo: 0x88, hi: 0x8e}, {value: 0x3308, lo: 0x8f, hi: 0x92}, {value: 0x0008, lo: 0x93, hi: 0x9f}, {value: 0x0040, lo: 0xa0, hi: 0xbf}, - // Block 0xe7, offset 0x6fc + // Block 0xe9, offset 0x706 {value: 0x0000, lo: 0x08}, {value: 0x0040, lo: 0x80, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xa1}, @@ -4426,23 +4581,23 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa5, hi: 0xaf}, {value: 0x3008, lo: 0xb0, hi: 0xb1}, {value: 0x0040, lo: 0xb2, hi: 0xbf}, - // Block 0xe8, offset 0x705 + // Block 0xea, offset 0x70f {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xb7}, {value: 0x0040, lo: 0xb8, hi: 0xbf}, - // Block 0xe9, offset 0x708 + // Block 0xeb, offset 0x712 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x95}, {value: 0x0040, lo: 0x96, hi: 0xbf}, - // Block 0xea, offset 0x70b + // Block 0xec, offset 0x715 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x88}, {value: 0x0040, lo: 0x89, hi: 0xbf}, - // Block 0xeb, offset 0x70e + // Block 0xed, offset 0x718 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x9e}, {value: 0x0040, lo: 0x9f, hi: 0xbf}, - // Block 0xec, offset 0x711 + // Block 0xee, offset 0x71b {value: 0x0000, lo: 0x06}, {value: 0x0040, lo: 0x80, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0x92}, @@ -4450,17 +4605,17 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xa4, hi: 0xa7}, {value: 0x0040, lo: 0xa8, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbf}, - // Block 0xed, offset 0x718 + // Block 0xef, offset 0x722 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xbb}, {value: 0x0040, lo: 0xbc, hi: 0xbf}, - // Block 0xee, offset 0x71b + // Block 0xf0, offset 0x725 {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0xaa}, {value: 0x0040, lo: 0xab, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbc}, {value: 0x0040, lo: 0xbd, hi: 0xbf}, - // Block 0xef, offset 0x720 + // Block 0xf1, offset 0x72a {value: 0x0000, lo: 0x09}, {value: 0x0008, lo: 0x80, hi: 0x88}, {value: 0x0040, lo: 0x89, hi: 0x8f}, @@ -4471,32 +4626,32 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0x9f, hi: 0x9f}, {value: 0x03c0, lo: 0xa0, hi: 0xa3}, {value: 0x0040, lo: 0xa4, hi: 0xbf}, - // Block 0xf0, offset 0x72a + // Block 0xf2, offset 0x734 {value: 0x0000, lo: 0x02}, {value: 0x0018, lo: 0x80, hi: 0xb5}, {value: 0x0040, lo: 0xb6, hi: 0xbf}, - // Block 0xf1, offset 0x72d + // Block 0xf3, offset 0x737 {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0xa6}, {value: 0x0040, lo: 0xa7, hi: 0xa8}, {value: 0x0018, lo: 0xa9, hi: 0xbf}, - // Block 0xf2, offset 0x731 + // Block 0xf4, offset 0x73b {value: 0x0000, lo: 0x0e}, {value: 0x0018, lo: 0x80, hi: 0x9d}, - {value: 0xb609, lo: 0x9e, hi: 0x9e}, - {value: 0xb651, lo: 0x9f, hi: 0x9f}, - {value: 0xb699, lo: 0xa0, hi: 0xa0}, - {value: 0xb701, lo: 0xa1, hi: 0xa1}, - {value: 0xb769, lo: 0xa2, hi: 0xa2}, - {value: 0xb7d1, lo: 0xa3, hi: 0xa3}, - {value: 0xb839, lo: 0xa4, hi: 0xa4}, + {value: 0x2211, lo: 0x9e, hi: 0x9e}, + {value: 0x2219, lo: 0x9f, hi: 0x9f}, + {value: 0x2221, lo: 0xa0, hi: 0xa0}, + {value: 0x2229, lo: 0xa1, hi: 0xa1}, + {value: 0x2231, lo: 0xa2, hi: 0xa2}, + {value: 0x2239, lo: 0xa3, hi: 0xa3}, + {value: 0x2241, lo: 0xa4, hi: 0xa4}, {value: 0x3018, lo: 0xa5, hi: 0xa6}, {value: 0x3318, lo: 0xa7, hi: 0xa9}, {value: 0x0018, lo: 0xaa, hi: 0xac}, {value: 0x3018, lo: 0xad, hi: 0xb2}, {value: 0x0340, lo: 0xb3, hi: 0xba}, {value: 0x3318, lo: 0xbb, hi: 0xbf}, - // Block 0xf3, offset 0x740 + // Block 0xf5, offset 0x74a {value: 0x0000, lo: 0x0b}, {value: 0x3318, lo: 0x80, hi: 0x82}, {value: 0x0018, lo: 0x83, hi: 0x84}, @@ -4504,45 +4659,45 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0x8c, hi: 0xa9}, {value: 0x3318, lo: 0xaa, hi: 0xad}, {value: 0x0018, lo: 0xae, hi: 0xba}, - {value: 0xb8a1, lo: 0xbb, hi: 0xbb}, - {value: 0xb8e9, lo: 0xbc, hi: 0xbc}, - {value: 0xb931, lo: 0xbd, hi: 0xbd}, - {value: 0xb999, lo: 0xbe, hi: 0xbe}, - {value: 0xba01, lo: 0xbf, hi: 0xbf}, - // Block 0xf4, offset 0x74c + {value: 0x2249, lo: 0xbb, hi: 0xbb}, + {value: 0x2251, lo: 0xbc, hi: 0xbc}, + {value: 0x2259, lo: 0xbd, hi: 0xbd}, + {value: 0x2261, lo: 0xbe, hi: 0xbe}, + {value: 0x2269, lo: 0xbf, hi: 0xbf}, + // Block 0xf6, offset 0x756 {value: 0x0000, lo: 0x03}, - {value: 0xba69, lo: 0x80, hi: 0x80}, + {value: 0x2271, lo: 0x80, hi: 0x80}, {value: 0x0018, lo: 0x81, hi: 0xa8}, {value: 0x0040, lo: 0xa9, hi: 0xbf}, - // Block 0xf5, offset 0x750 + // Block 0xf7, offset 0x75a {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0x81}, {value: 0x3318, lo: 0x82, hi: 0x84}, {value: 0x0018, lo: 0x85, hi: 0x85}, {value: 0x0040, lo: 0x86, hi: 0xbf}, - // Block 0xf6, offset 0x755 + // Block 0xf8, offset 0x75f {value: 0x0000, lo: 0x03}, {value: 0x0040, lo: 0x80, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xb3}, {value: 0x0040, lo: 0xb4, hi: 0xbf}, - // Block 0xf7, offset 0x759 + // Block 0xf9, offset 0x763 {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0x96}, {value: 0x0040, lo: 0x97, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xb8}, {value: 0x0040, lo: 0xb9, hi: 0xbf}, - // Block 0xf8, offset 0x75e + // Block 0xfa, offset 0x768 {value: 0x0000, lo: 0x03}, {value: 0x3308, lo: 0x80, hi: 0xb6}, {value: 0x0018, lo: 0xb7, hi: 0xba}, {value: 0x3308, lo: 0xbb, hi: 0xbf}, - // Block 0xf9, offset 0x762 + // Block 0xfb, offset 0x76c {value: 0x0000, lo: 0x04}, {value: 0x3308, lo: 0x80, hi: 0xac}, {value: 0x0018, lo: 0xad, hi: 0xb4}, {value: 0x3308, lo: 0xb5, hi: 0xb5}, {value: 0x0018, lo: 0xb6, hi: 0xbf}, - // Block 0xfa, offset 0x767 + // Block 0xfc, offset 0x771 {value: 0x0000, lo: 0x08}, {value: 0x0018, lo: 0x80, hi: 0x83}, {value: 0x3308, lo: 0x84, hi: 0x84}, @@ -4552,7 +4707,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa0, hi: 0xa0}, {value: 0x3308, lo: 0xa1, hi: 0xaf}, {value: 0x0040, lo: 0xb0, hi: 0xbf}, - // Block 0xfb, offset 0x770 + // Block 0xfd, offset 0x77a {value: 0x0000, lo: 0x0a}, {value: 0x3308, lo: 0x80, hi: 0x86}, {value: 0x0040, lo: 0x87, hi: 0x87}, @@ -4564,35 +4719,35 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa5, hi: 0xa5}, {value: 0x3308, lo: 0xa6, hi: 0xaa}, {value: 0x0040, lo: 0xab, hi: 0xbf}, - // Block 0xfc, offset 0x77b + // Block 0xfe, offset 0x785 {value: 0x0000, lo: 0x05}, {value: 0x0008, lo: 0x80, hi: 0xac}, {value: 0x0040, lo: 0xad, hi: 0xaf}, {value: 0x3308, lo: 0xb0, hi: 0xb6}, {value: 0x0008, lo: 0xb7, hi: 0xbd}, {value: 0x0040, lo: 0xbe, hi: 0xbf}, - // Block 0xfd, offset 0x781 + // Block 0xff, offset 0x78b {value: 0x0000, lo: 0x05}, {value: 0x0008, lo: 0x80, hi: 0x89}, {value: 0x0040, lo: 0x8a, hi: 0x8d}, {value: 0x0008, lo: 0x8e, hi: 0x8e}, {value: 0x0018, lo: 0x8f, hi: 0x8f}, {value: 0x0040, lo: 0x90, hi: 0xbf}, - // Block 0xfe, offset 0x787 + // Block 0x100, offset 0x791 {value: 0x0000, lo: 0x05}, {value: 0x0008, lo: 0x80, hi: 0xab}, {value: 0x3308, lo: 0xac, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbe}, {value: 0x0018, lo: 0xbf, hi: 0xbf}, - // Block 0xff, offset 0x78d + // Block 0x101, offset 0x797 {value: 0x0000, lo: 0x05}, {value: 0x0808, lo: 0x80, hi: 0x84}, {value: 0x0040, lo: 0x85, hi: 0x86}, {value: 0x0818, lo: 0x87, hi: 0x8f}, {value: 0x3308, lo: 0x90, hi: 0x96}, {value: 0x0040, lo: 0x97, hi: 0xbf}, - // Block 0x100, offset 0x793 + // Block 0x102, offset 0x79d {value: 0x0000, lo: 0x08}, {value: 0x0a08, lo: 0x80, hi: 0x83}, {value: 0x3308, lo: 0x84, hi: 0x8a}, @@ -4602,71 +4757,71 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x9a, hi: 0x9d}, {value: 0x0818, lo: 0x9e, hi: 0x9f}, {value: 0x0040, lo: 0xa0, hi: 0xbf}, - // Block 0x101, offset 0x79c + // Block 0x103, offset 0x7a6 {value: 0x0000, lo: 0x02}, {value: 0x0040, lo: 0x80, hi: 0xb0}, {value: 0x0818, lo: 0xb1, hi: 0xbf}, - // Block 0x102, offset 0x79f + // Block 0x104, offset 0x7a9 {value: 0x0000, lo: 0x02}, {value: 0x0818, lo: 0x80, hi: 0xb4}, {value: 0x0040, lo: 0xb5, hi: 0xbf}, - // Block 0x103, offset 0x7a2 + // Block 0x105, offset 0x7ac {value: 0x0000, lo: 0x03}, {value: 0x0040, lo: 0x80, hi: 0x80}, {value: 0x0818, lo: 0x81, hi: 0xbd}, {value: 0x0040, lo: 0xbe, hi: 0xbf}, - // Block 0x104, offset 0x7a6 + // Block 0x106, offset 0x7b0 {value: 0x0000, lo: 0x03}, {value: 0x0040, lo: 0x80, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xb1}, {value: 0x0040, lo: 0xb2, hi: 0xbf}, - // Block 0x105, offset 0x7aa + // Block 0x107, offset 0x7b4 {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0xab}, {value: 0x0040, lo: 0xac, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xbf}, - // Block 0x106, offset 0x7ae + // Block 0x108, offset 0x7b8 {value: 0x0000, lo: 0x05}, {value: 0x0018, lo: 0x80, hi: 0x93}, {value: 0x0040, lo: 0x94, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xae}, {value: 0x0040, lo: 0xaf, hi: 0xb0}, {value: 0x0018, lo: 0xb1, hi: 0xbf}, - // Block 0x107, offset 0x7b4 + // Block 0x109, offset 0x7be {value: 0x0000, lo: 0x05}, {value: 0x0040, lo: 0x80, hi: 0x80}, {value: 0x0018, lo: 0x81, hi: 0x8f}, {value: 0x0040, lo: 0x90, hi: 0x90}, {value: 0x0018, lo: 0x91, hi: 0xb5}, {value: 0x0040, lo: 0xb6, hi: 0xbf}, - // Block 0x108, offset 0x7ba + // Block 0x10a, offset 0x7c4 {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0x8f}, - {value: 0xc229, lo: 0x90, hi: 0x90}, + {value: 0x2491, lo: 0x90, hi: 0x90}, {value: 0x0018, lo: 0x91, hi: 0xad}, {value: 0x0040, lo: 0xae, hi: 0xbf}, - // Block 0x109, offset 0x7bf + // Block 0x10b, offset 0x7c9 {value: 0x0000, lo: 0x02}, {value: 0x0040, lo: 0x80, hi: 0xa5}, {value: 0x0018, lo: 0xa6, hi: 0xbf}, - // Block 0x10a, offset 0x7c2 + // Block 0x10c, offset 0x7cc {value: 0x0000, lo: 0x0f}, - {value: 0xc851, lo: 0x80, hi: 0x80}, - {value: 0xc8a1, lo: 0x81, hi: 0x81}, - {value: 0xc8f1, lo: 0x82, hi: 0x82}, - {value: 0xc941, lo: 0x83, hi: 0x83}, - {value: 0xc991, lo: 0x84, hi: 0x84}, - {value: 0xc9e1, lo: 0x85, hi: 0x85}, - {value: 0xca31, lo: 0x86, hi: 0x86}, - {value: 0xca81, lo: 0x87, hi: 0x87}, - {value: 0xcad1, lo: 0x88, hi: 0x88}, + {value: 0x2611, lo: 0x80, hi: 0x80}, + {value: 0x2619, lo: 0x81, hi: 0x81}, + {value: 0x2621, lo: 0x82, hi: 0x82}, + {value: 0x2629, lo: 0x83, hi: 0x83}, + {value: 0x2631, lo: 0x84, hi: 0x84}, + {value: 0x2639, lo: 0x85, hi: 0x85}, + {value: 0x2641, lo: 0x86, hi: 0x86}, + {value: 0x2649, lo: 0x87, hi: 0x87}, + {value: 0x2651, lo: 0x88, hi: 0x88}, {value: 0x0040, lo: 0x89, hi: 0x8f}, - {value: 0xcb21, lo: 0x90, hi: 0x90}, - {value: 0xcb41, lo: 0x91, hi: 0x91}, + {value: 0x2659, lo: 0x90, hi: 0x90}, + {value: 0x2661, lo: 0x91, hi: 0x91}, {value: 0x0040, lo: 0x92, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xa5}, {value: 0x0040, lo: 0xa6, hi: 0xbf}, - // Block 0x10b, offset 0x7d2 + // Block 0x10d, offset 0x7dc {value: 0x0000, lo: 0x06}, {value: 0x0018, lo: 0x80, hi: 0x97}, {value: 0x0040, lo: 0x98, hi: 0x9f}, @@ -4674,29 +4829,29 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xad, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xbc}, {value: 0x0040, lo: 0xbd, hi: 0xbf}, - // Block 0x10c, offset 0x7d9 + // Block 0x10e, offset 0x7e3 {value: 0x0000, lo: 0x02}, {value: 0x0018, lo: 0x80, hi: 0xb3}, {value: 0x0040, lo: 0xb4, hi: 0xbf}, - // Block 0x10d, offset 0x7dc + // Block 0x10f, offset 0x7e6 {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0x98}, {value: 0x0040, lo: 0x99, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xab}, {value: 0x0040, lo: 0xac, hi: 0xbf}, - // Block 0x10e, offset 0x7e1 + // Block 0x110, offset 0x7eb {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0x8b}, {value: 0x0040, lo: 0x8c, hi: 0x8f}, {value: 0x0018, lo: 0x90, hi: 0xbf}, - // Block 0x10f, offset 0x7e5 + // Block 0x111, offset 0x7ef {value: 0x0000, lo: 0x05}, {value: 0x0018, lo: 0x80, hi: 0x87}, {value: 0x0040, lo: 0x88, hi: 0x8f}, {value: 0x0018, lo: 0x90, hi: 0x99}, {value: 0x0040, lo: 0x9a, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xbf}, - // Block 0x110, offset 0x7eb + // Block 0x112, offset 0x7f5 {value: 0x0000, lo: 0x06}, {value: 0x0018, lo: 0x80, hi: 0x87}, {value: 0x0040, lo: 0x88, hi: 0x8f}, @@ -4704,17 +4859,17 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xae, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xb1}, {value: 0x0040, lo: 0xb2, hi: 0xbf}, - // Block 0x111, offset 0x7f2 + // Block 0x113, offset 0x7fc {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0xb8}, {value: 0x0040, lo: 0xb9, hi: 0xb9}, {value: 0x0018, lo: 0xba, hi: 0xbf}, - // Block 0x112, offset 0x7f6 + // Block 0x114, offset 0x800 {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0x8b}, {value: 0x0040, lo: 0x8c, hi: 0x8c}, {value: 0x0018, lo: 0x8d, hi: 0xbf}, - // Block 0x113, offset 0x7fa + // Block 0x115, offset 0x804 {value: 0x0000, lo: 0x08}, {value: 0x0018, lo: 0x80, hi: 0x93}, {value: 0x0040, lo: 0x94, hi: 0x9f}, @@ -4724,7 +4879,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xb5, hi: 0xb7}, {value: 0x0018, lo: 0xb8, hi: 0xba}, {value: 0x0040, lo: 0xbb, hi: 0xbf}, - // Block 0x114, offset 0x803 + // Block 0x116, offset 0x80d {value: 0x0000, lo: 0x06}, {value: 0x0018, lo: 0x80, hi: 0x86}, {value: 0x0040, lo: 0x87, hi: 0x8f}, @@ -4732,109 +4887,74 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa9, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xb6}, {value: 0x0040, lo: 0xb7, hi: 0xbf}, - // Block 0x115, offset 0x80a + // Block 0x117, offset 0x814 {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0x82}, {value: 0x0040, lo: 0x83, hi: 0x8f}, {value: 0x0018, lo: 0x90, hi: 0x96}, {value: 0x0040, lo: 0x97, hi: 0xbf}, - // Block 0x116, offset 0x80f + // Block 0x118, offset 0x819 {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0x92}, {value: 0x0040, lo: 0x93, hi: 0x93}, {value: 0x0018, lo: 0x94, hi: 0xbf}, - // Block 0x117, offset 0x813 + // Block 0x119, offset 0x81d {value: 0x0000, lo: 0x0d}, {value: 0x0018, lo: 0x80, hi: 0x8a}, {value: 0x0040, lo: 0x8b, hi: 0xaf}, - {value: 0x1f41, lo: 0xb0, hi: 0xb0}, - {value: 0x00c9, lo: 0xb1, hi: 0xb1}, - {value: 0x0069, lo: 0xb2, hi: 0xb2}, - {value: 0x0079, lo: 0xb3, hi: 0xb3}, - {value: 0x1f51, lo: 0xb4, hi: 0xb4}, - {value: 0x1f61, lo: 0xb5, hi: 0xb5}, - {value: 0x1f71, lo: 0xb6, hi: 0xb6}, - {value: 0x1f81, lo: 0xb7, hi: 0xb7}, - {value: 0x1f91, lo: 0xb8, hi: 0xb8}, - {value: 0x1fa1, lo: 0xb9, hi: 0xb9}, + {value: 0x06e1, lo: 0xb0, hi: 0xb0}, + {value: 0x0049, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb2, hi: 0xb2}, + {value: 0x0031, lo: 0xb3, hi: 0xb3}, + {value: 0x06e9, lo: 0xb4, hi: 0xb4}, + {value: 0x06f1, lo: 0xb5, hi: 0xb5}, + {value: 0x06f9, lo: 0xb6, hi: 0xb6}, + {value: 0x0701, lo: 0xb7, hi: 0xb7}, + {value: 0x0709, lo: 0xb8, hi: 0xb8}, + {value: 0x0711, lo: 0xb9, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbf}, - // Block 0x118, offset 0x821 + // Block 0x11a, offset 0x82b {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x9d}, {value: 0x0040, lo: 0x9e, hi: 0xbf}, - // Block 0x119, offset 0x824 + // Block 0x11b, offset 0x82e {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xb4}, {value: 0x0040, lo: 0xb5, hi: 0xbf}, - // Block 0x11a, offset 0x827 + // Block 0x11c, offset 0x831 {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0x9d}, {value: 0x0040, lo: 0x9e, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xbf}, - // Block 0x11b, offset 0x82b + // Block 0x11d, offset 0x835 {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0xa1}, {value: 0x0040, lo: 0xa2, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbf}, - // Block 0x11c, offset 0x82f + // Block 0x11e, offset 0x839 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xa0}, {value: 0x0040, lo: 0xa1, hi: 0xbf}, - // Block 0x11d, offset 0x832 - {value: 0x0020, lo: 0x0f}, - {value: 0xdf21, lo: 0x80, hi: 0x89}, - {value: 0x8e35, lo: 0x8a, hi: 0x8a}, - {value: 0xe061, lo: 0x8b, hi: 0x9c}, - {value: 0x8e55, lo: 0x9d, hi: 0x9d}, - {value: 0xe2a1, lo: 0x9e, hi: 0xa2}, - {value: 0x8e75, lo: 0xa3, hi: 0xa3}, - {value: 0xe341, lo: 0xa4, hi: 0xab}, - {value: 0x7f0d, lo: 0xac, hi: 0xac}, - {value: 0xe441, lo: 0xad, hi: 0xaf}, - {value: 0x8e95, lo: 0xb0, hi: 0xb0}, - {value: 0xe4a1, lo: 0xb1, hi: 0xb6}, - {value: 0x8eb5, lo: 0xb7, hi: 0xb9}, - {value: 0xe561, lo: 0xba, hi: 0xba}, - {value: 0x8f15, lo: 0xbb, hi: 0xbb}, - {value: 0xe581, lo: 0xbc, hi: 0xbf}, - // Block 0x11e, offset 0x842 - {value: 0x0020, lo: 0x10}, - {value: 0x93b5, lo: 0x80, hi: 0x80}, - {value: 0xf101, lo: 0x81, hi: 0x86}, - {value: 0x93d5, lo: 0x87, hi: 0x8a}, - {value: 0xda61, lo: 0x8b, hi: 0x8b}, - {value: 0xf1c1, lo: 0x8c, hi: 0x96}, - {value: 0x9455, lo: 0x97, hi: 0x97}, - {value: 0xf321, lo: 0x98, hi: 0xa3}, - {value: 0x9475, lo: 0xa4, hi: 0xa6}, - {value: 0xf4a1, lo: 0xa7, hi: 0xaa}, - {value: 0x94d5, lo: 0xab, hi: 0xab}, - {value: 0xf521, lo: 0xac, hi: 0xac}, - {value: 0x94f5, lo: 0xad, hi: 0xad}, - {value: 0xf541, lo: 0xae, hi: 0xaf}, - {value: 0x9515, lo: 0xb0, hi: 0xb1}, - {value: 0xf581, lo: 0xb2, hi: 0xbe}, - {value: 0x2040, lo: 0xbf, hi: 0xbf}, - // Block 0x11f, offset 0x853 + // Block 0x11f, offset 0x83c {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x8a}, {value: 0x0040, lo: 0x8b, hi: 0xbf}, - // Block 0x120, offset 0x856 + // Block 0x120, offset 0x83f {value: 0x0000, lo: 0x04}, {value: 0x0040, lo: 0x80, hi: 0x80}, {value: 0x0340, lo: 0x81, hi: 0x81}, {value: 0x0040, lo: 0x82, hi: 0x9f}, {value: 0x0340, lo: 0xa0, hi: 0xbf}, - // Block 0x121, offset 0x85b + // Block 0x121, offset 0x844 {value: 0x0000, lo: 0x01}, {value: 0x0340, lo: 0x80, hi: 0xbf}, - // Block 0x122, offset 0x85d + // Block 0x122, offset 0x846 {value: 0x0000, lo: 0x01}, {value: 0x33c0, lo: 0x80, hi: 0xbf}, - // Block 0x123, offset 0x85f + // Block 0x123, offset 0x848 {value: 0x0000, lo: 0x02}, {value: 0x33c0, lo: 0x80, hi: 0xaf}, {value: 0x0040, lo: 0xb0, hi: 0xbf}, } -// Total table size 43370 bytes (42KiB); checksum: EBD909C0 +// Total table size 44953 bytes (43KiB); checksum: D51909DD diff --git a/vendor/golang.org/x/net/idna/tables15.0.0.go b/vendor/golang.org/x/net/idna/tables15.0.0.go new file mode 100644 index 000000000000..40033778f01f --- /dev/null +++ b/vendor/golang.org/x/net/idna/tables15.0.0.go @@ -0,0 +1,5145 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.21 +// +build go1.21 + +package idna + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "15.0.0" + +var mappings string = "" + // Size: 6704 bytes + " ̈a ̄23 ́ ̧1o1⁄41⁄23⁄4i̇l·ʼnsdžⱥⱦhjrwy ̆ ̇ ̊ ̨ ̃ ̋lẍ́ ι; ̈́եւاٴوٴۇٴيٴक" + + "़ख़ग़ज़ड़ढ़फ़य़ড়ঢ়য়ਲ਼ਸ਼ਖ਼ਗ਼ਜ਼ਫ਼ଡ଼ଢ଼ําໍາຫນຫມགྷཌྷདྷབྷཛྷཀྵཱཱིུྲྀྲཱྀླྀླཱ" + + "ཱྀྀྒྷྜྷྡྷྦྷྫྷྐྵвдостъѣæbdeǝgikmnȣptuɐɑəɛɜŋɔɯvβγδφχρнɒcɕðfɟɡɥɨɩɪʝɭʟɱɰɲɳ" + + "ɴɵɸʂʃƫʉʊʋʌzʐʑʒθssάέήίόύώἀιἁιἂιἃιἄιἅιἆιἇιἠιἡιἢιἣιἤιἥιἦιἧιὠιὡιὢιὣιὤιὥιὦιὧ" + + "ιὰιαιάιᾶιι ̈͂ὴιηιήιῆι ̓̀ ̓́ ̓͂ΐ ̔̀ ̔́ ̔͂ΰ ̈̀`ὼιωιώιῶι′′′′′‵‵‵‵‵!!???!!?" + + "′′′′0456789+=()rsħnoqsmtmωåאבגדπ1⁄71⁄91⁄101⁄32⁄31⁄52⁄53⁄54⁄51⁄65⁄61⁄83" + + "⁄85⁄87⁄81⁄iiivviviiiixxi0⁄3∫∫∫∫∫∮∮∮∮∮1011121314151617181920(10)(11)(12" + + ")(13)(14)(15)(16)(17)(18)(19)(20)∫∫∫∫==⫝̸ɫɽȿɀ. ゙ ゚よりコト(ᄀ)(ᄂ)(ᄃ)(ᄅ)(ᄆ)(ᄇ)" + + "(ᄉ)(ᄋ)(ᄌ)(ᄎ)(ᄏ)(ᄐ)(ᄑ)(ᄒ)(가)(나)(다)(라)(마)(바)(사)(아)(자)(차)(카)(타)(파)(하)(주)(오전" + + ")(오후)(一)(二)(三)(四)(五)(六)(七)(八)(九)(十)(月)(火)(水)(木)(金)(土)(日)(株)(有)(社)(名)(特)(" + + "財)(祝)(労)(代)(呼)(学)(監)(企)(資)(協)(祭)(休)(自)(至)21222324252627282930313233343" + + "5참고주의3637383940414243444546474849501月2月3月4月5月6月7月8月9月10月11月12月hgev令和アパート" + + "アルファアンペアアールイニングインチウォンエスクードエーカーオンスオームカイリカラットカロリーガロンガンマギガギニーキュリーギルダーキロキロ" + + "グラムキロメートルキロワットグラムグラムトンクルゼイロクローネケースコルナコーポサイクルサンチームシリングセンチセントダースデシドルトンナノ" + + "ノットハイツパーセントパーツバーレルピアストルピクルピコビルファラッドフィートブッシェルフランヘクタールペソペニヒヘルツペンスページベータポ" + + "イントボルトホンポンドホールホーンマイクロマイルマッハマルクマンションミクロンミリミリバールメガメガトンメートルヤードヤールユアンリットルリ" + + "ラルピールーブルレムレントゲンワット0点1点2点3点4点5点6点7点8点9点10点11点12点13点14点15点16点17点18点19点20" + + "点21点22点23点24点daauovpcdmiu平成昭和大正明治株式会社panamakakbmbgbkcalpfnfmgkghzmldlk" + + "lfmnmmmcmkmm2m3m∕sm∕s2rad∕srad∕s2psnsmspvnvmvkvpwnwmwkwbqcccdc∕kgdbgyhah" + + "pinkkktlmlnlxphprsrsvwbv∕ma∕m1日2日3日4日5日6日7日8日9日10日11日12日13日14日15日16日17日1" + + "8日19日20日21日22日23日24日25日26日27日28日29日30日31日ьɦɬʞʇœʍ𤋮𢡊𢡄𣏕𥉉𥳐𧻓fffiflstմնմեմիվնմ" + + "խיִײַעהכלםרתשׁשׂשּׁשּׂאַאָאּבּגּדּהּוּזּטּיּךּכּלּמּנּסּףּפּצּקּרּשּתּו" + + "ֹבֿכֿפֿאלٱٻپڀٺٿٹڤڦڄڃچڇڍڌڎڈژڑکگڳڱںڻۀہھےۓڭۇۆۈۋۅۉېىئائەئوئۇئۆئۈئېئىیئجئحئم" + + "ئيبجبحبخبمبىبيتجتحتختمتىتيثجثمثىثيجحجمحجحمخجخحخمسجسحسخسمصحصمضجضحضخضمطحط" + + "مظمعجعمغجغمفجفحفخفمفىفيقحقمقىقيكاكجكحكخكلكمكىكيلجلحلخلملىليمجمحمخمممىمي" + + "نجنحنخنمنىنيهجهمهىهييجيحيخيميىييذٰرٰىٰ ٌّ ٍّ َّ ُّ ِّ ّٰئرئزئنبربزبنترت" + + "زتنثرثزثنمانرنزننيريزينئخئهبهتهصخلهنههٰيهثهسهشمشهـَّـُّـِّطىطيعىعيغىغيس" + + "ىسيشىشيحىحيجىجيخىخيصىصيضىضيشجشحشخشرسرصرضراًتجمتحجتحمتخمتمجتمحتمخجمححميح" + + "مىسحجسجحسجىسمحسمجسممصححصممشحمشجيشمخشممضحىضخمطمحطممطميعجمعممعمىغممغميغمى" + + "فخمقمحقمملحملحيلحىلججلخملمحمحجمحممحيمجحمجممخجمخممجخهمجهممنحمنحىنجمنجىنم" + + "ينمىيممبخيتجيتجىتخيتخىتميتمىجميجحىجمىسخىصحيشحيضحيلجيلمييحييجييميمميقمين" + + "حيعميكمينجحمخيلجمكممجحيحجيمجيفميبحيسخينجيصلےقلےاللهاكبرمحمدصلعمرسولعليه" + + "وسلمصلىصلى الله عليه وسلمجل جلالهریال,:!?_{}[]#&*-<>\\$%@ـًـَـُـِـّـْءآ" + + "أؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهويلآلألإلا\x22'/^|~¢£¬¦¥ːˑʙɓʣꭦʥʤɖɗᶑɘɞʩɤɢ" + + "ɠʛʜɧʄʪʫꞎɮʎøɶɷɺɾʀʨʦꭧʧʈⱱʏʡʢʘǀǁǂ𝅗𝅥𝅘𝅥𝅘𝅥𝅮𝅘𝅥𝅯𝅘𝅥𝅰𝅘𝅥𝅱𝅘𝅥𝅲𝆹𝅥𝆺𝅥𝆹𝅥𝅮𝆺𝅥𝅮𝆹𝅥𝅯𝆺𝅥𝅯ıȷαεζηκ" + + "λμνξοστυψ∇∂ϝабгежзиклмпруфхцчшыэюꚉәіјөүӏґѕџҫꙑұٮڡٯ0,1,2,3,4,5,6,7,8,9,(a" + + ")(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y" + + ")(z)〔s〕wzhvsdppvwcmcmdmrdjほかココサ手字双デ二多解天交映無料前後再新初終生販声吹演投捕一三遊左中右指走打禁空合満有月申" + + "割営配〔本〕〔三〕〔二〕〔安〕〔点〕〔打〕〔盗〕〔勝〕〔敗〕得可丽丸乁你侮侻倂偺備僧像㒞免兔兤具㒹內冗冤仌冬况凵刃㓟刻剆剷㔕勇勉勤勺包匆北卉" + + "卑博即卽卿灰及叟叫叱吆咞吸呈周咢哶唐啓啣善喙喫喳嗂圖嘆圗噑噴切壮城埴堍型堲報墬売壷夆夢奢姬娛娧姘婦㛮嬈嬾寃寘寧寳寿将尢㞁屠屮峀岍嵃嵮嵫嵼巡巢" + + "㠯巽帨帽幩㡢㡼庰庳庶廊廾舁弢㣇形彫㣣徚忍志忹悁㤺㤜悔惇慈慌慎慺憎憲憤憯懞懲懶成戛扝抱拔捐挽拼捨掃揤搢揅掩㨮摩摾撝摷㩬敏敬旣書晉㬙暑㬈㫤冒冕最" + + "暜肭䏙朗望朡杞杓㭉柺枅桒梅梎栟椔㮝楂榣槪檨櫛㰘次歔㱎歲殟殺殻汎沿泍汧洖派海流浩浸涅洴港湮㴳滋滇淹潮濆瀹瀞瀛㶖灊災灷炭煅熜爨爵牐犀犕獺王㺬玥㺸" + + "瑇瑜瑱璅瓊㼛甤甾異瘐㿼䀈直眞真睊䀹瞋䁆䂖硎碌磌䃣祖福秫䄯穀穊穏䈂篆築䈧糒䊠糨糣紀絣䌁緇縂繅䌴䍙罺羕翺者聠聰䏕育脃䐋脾媵舄辞䑫芑芋芝劳花芳芽苦" + + "若茝荣莭茣莽菧著荓菊菌菜䔫蓱蓳蔖蕤䕝䕡䕫虐虜虧虩蚩蚈蜎蛢蝹蜨蝫螆蟡蠁䗹衠衣裗裞䘵裺㒻䚾䛇誠諭變豕貫賁贛起跋趼跰軔輸邔郱鄑鄛鈸鋗鋘鉼鏹鐕開䦕閷" + + "䧦雃嶲霣䩮䩶韠䪲頋頩飢䬳餩馧駂駾䯎鬒鱀鳽䳎䳭鵧䳸麻䵖黹黾鼅鼏鼖鼻" + +var mappingIndex = []uint16{ // 1729 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0001, 0x0004, 0x0005, 0x0008, 0x0009, 0x000a, + 0x000d, 0x0010, 0x0011, 0x0012, 0x0017, 0x001c, 0x0021, 0x0024, + 0x0027, 0x002a, 0x002b, 0x002e, 0x0031, 0x0034, 0x0035, 0x0036, + 0x0037, 0x0038, 0x0039, 0x003c, 0x003f, 0x0042, 0x0045, 0x0048, + 0x004b, 0x004c, 0x004d, 0x0051, 0x0054, 0x0055, 0x005a, 0x005e, + 0x0062, 0x0066, 0x006a, 0x006e, 0x0074, 0x007a, 0x0080, 0x0086, + 0x008c, 0x0092, 0x0098, 0x009e, 0x00a4, 0x00aa, 0x00b0, 0x00b6, + 0x00bc, 0x00c2, 0x00c8, 0x00ce, 0x00d4, 0x00da, 0x00e0, 0x00e6, + // Entry 40 - 7F + 0x00ec, 0x00f2, 0x00f8, 0x00fe, 0x0104, 0x010a, 0x0110, 0x0116, + 0x011c, 0x0122, 0x0128, 0x012e, 0x0137, 0x013d, 0x0146, 0x014c, + 0x0152, 0x0158, 0x015e, 0x0164, 0x016a, 0x0170, 0x0172, 0x0174, + 0x0176, 0x0178, 0x017a, 0x017c, 0x017e, 0x0180, 0x0181, 0x0182, + 0x0183, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 0x018a, 0x018c, + 0x018d, 0x018e, 0x018f, 0x0191, 0x0193, 0x0195, 0x0197, 0x0199, + 0x019b, 0x019d, 0x019f, 0x01a0, 0x01a2, 0x01a4, 0x01a6, 0x01a8, + 0x01aa, 0x01ac, 0x01ae, 0x01b0, 0x01b1, 0x01b3, 0x01b5, 0x01b6, + // Entry 80 - BF + 0x01b8, 0x01ba, 0x01bc, 0x01be, 0x01c0, 0x01c2, 0x01c4, 0x01c6, + 0x01c8, 0x01ca, 0x01cc, 0x01ce, 0x01d0, 0x01d2, 0x01d4, 0x01d6, + 0x01d8, 0x01da, 0x01dc, 0x01de, 0x01e0, 0x01e2, 0x01e4, 0x01e5, + 0x01e7, 0x01e9, 0x01eb, 0x01ed, 0x01ef, 0x01f1, 0x01f3, 0x01f5, + 0x01f7, 0x01f9, 0x01fb, 0x01fd, 0x0202, 0x0207, 0x020c, 0x0211, + 0x0216, 0x021b, 0x0220, 0x0225, 0x022a, 0x022f, 0x0234, 0x0239, + 0x023e, 0x0243, 0x0248, 0x024d, 0x0252, 0x0257, 0x025c, 0x0261, + 0x0266, 0x026b, 0x0270, 0x0275, 0x027a, 0x027e, 0x0282, 0x0287, + // Entry C0 - FF + 0x0289, 0x028e, 0x0293, 0x0297, 0x029b, 0x02a0, 0x02a5, 0x02aa, + 0x02af, 0x02b1, 0x02b6, 0x02bb, 0x02c0, 0x02c2, 0x02c7, 0x02c8, + 0x02cd, 0x02d1, 0x02d5, 0x02da, 0x02e0, 0x02e9, 0x02ef, 0x02f8, + 0x02fa, 0x02fc, 0x02fe, 0x0300, 0x030c, 0x030d, 0x030e, 0x030f, + 0x0310, 0x0311, 0x0312, 0x0313, 0x0314, 0x0315, 0x0316, 0x0317, + 0x0319, 0x031b, 0x031d, 0x031e, 0x0320, 0x0322, 0x0324, 0x0326, + 0x0328, 0x032a, 0x032c, 0x032e, 0x0330, 0x0335, 0x033a, 0x0340, + 0x0345, 0x034a, 0x034f, 0x0354, 0x0359, 0x035e, 0x0363, 0x0368, + // Entry 100 - 13F + 0x036d, 0x0372, 0x0377, 0x037c, 0x0380, 0x0382, 0x0384, 0x0386, + 0x038a, 0x038c, 0x038e, 0x0393, 0x0399, 0x03a2, 0x03a8, 0x03b1, + 0x03b3, 0x03b5, 0x03b7, 0x03b9, 0x03bb, 0x03bd, 0x03bf, 0x03c1, + 0x03c3, 0x03c5, 0x03c7, 0x03cb, 0x03cf, 0x03d3, 0x03d7, 0x03db, + 0x03df, 0x03e3, 0x03e7, 0x03eb, 0x03ef, 0x03f3, 0x03ff, 0x0401, + 0x0406, 0x0408, 0x040a, 0x040c, 0x040e, 0x040f, 0x0413, 0x0417, + 0x041d, 0x0423, 0x0428, 0x042d, 0x0432, 0x0437, 0x043c, 0x0441, + 0x0446, 0x044b, 0x0450, 0x0455, 0x045a, 0x045f, 0x0464, 0x0469, + // Entry 140 - 17F + 0x046e, 0x0473, 0x0478, 0x047d, 0x0482, 0x0487, 0x048c, 0x0491, + 0x0496, 0x049b, 0x04a0, 0x04a5, 0x04aa, 0x04af, 0x04b4, 0x04bc, + 0x04c4, 0x04c9, 0x04ce, 0x04d3, 0x04d8, 0x04dd, 0x04e2, 0x04e7, + 0x04ec, 0x04f1, 0x04f6, 0x04fb, 0x0500, 0x0505, 0x050a, 0x050f, + 0x0514, 0x0519, 0x051e, 0x0523, 0x0528, 0x052d, 0x0532, 0x0537, + 0x053c, 0x0541, 0x0546, 0x054b, 0x0550, 0x0555, 0x055a, 0x055f, + 0x0564, 0x0569, 0x056e, 0x0573, 0x0578, 0x057a, 0x057c, 0x057e, + 0x0580, 0x0582, 0x0584, 0x0586, 0x0588, 0x058a, 0x058c, 0x058e, + // Entry 180 - 1BF + 0x0590, 0x0592, 0x0594, 0x0596, 0x059c, 0x05a2, 0x05a4, 0x05a6, + 0x05a8, 0x05aa, 0x05ac, 0x05ae, 0x05b0, 0x05b2, 0x05b4, 0x05b6, + 0x05b8, 0x05ba, 0x05bc, 0x05be, 0x05c0, 0x05c4, 0x05c8, 0x05cc, + 0x05d0, 0x05d4, 0x05d8, 0x05dc, 0x05e0, 0x05e4, 0x05e9, 0x05ee, + 0x05f3, 0x05f5, 0x05f7, 0x05fd, 0x0609, 0x0615, 0x0621, 0x062a, + 0x0636, 0x063f, 0x0648, 0x0657, 0x0663, 0x066c, 0x0675, 0x067e, + 0x068a, 0x0696, 0x069f, 0x06a8, 0x06ae, 0x06b7, 0x06c3, 0x06cf, + 0x06d5, 0x06e4, 0x06f6, 0x0705, 0x070e, 0x071d, 0x072c, 0x0738, + // Entry 1C0 - 1FF + 0x0741, 0x074a, 0x0753, 0x075f, 0x076e, 0x077a, 0x0783, 0x078c, + 0x0795, 0x079b, 0x07a1, 0x07a7, 0x07ad, 0x07b6, 0x07bf, 0x07ce, + 0x07d7, 0x07e3, 0x07f2, 0x07fb, 0x0801, 0x0807, 0x0816, 0x0822, + 0x0831, 0x083a, 0x0849, 0x084f, 0x0858, 0x0861, 0x086a, 0x0873, + 0x087c, 0x0888, 0x0891, 0x0897, 0x08a0, 0x08a9, 0x08b2, 0x08be, + 0x08c7, 0x08d0, 0x08d9, 0x08e8, 0x08f4, 0x08fa, 0x0909, 0x090f, + 0x091b, 0x0927, 0x0930, 0x0939, 0x0942, 0x094e, 0x0954, 0x095d, + 0x0969, 0x096f, 0x097e, 0x0987, 0x098b, 0x098f, 0x0993, 0x0997, + // Entry 200 - 23F + 0x099b, 0x099f, 0x09a3, 0x09a7, 0x09ab, 0x09af, 0x09b4, 0x09b9, + 0x09be, 0x09c3, 0x09c8, 0x09cd, 0x09d2, 0x09d7, 0x09dc, 0x09e1, + 0x09e6, 0x09eb, 0x09f0, 0x09f5, 0x09fa, 0x09fc, 0x09fe, 0x0a00, + 0x0a02, 0x0a04, 0x0a06, 0x0a0c, 0x0a12, 0x0a18, 0x0a1e, 0x0a2a, + 0x0a2c, 0x0a2e, 0x0a30, 0x0a32, 0x0a34, 0x0a36, 0x0a38, 0x0a3c, + 0x0a3e, 0x0a40, 0x0a42, 0x0a44, 0x0a46, 0x0a48, 0x0a4a, 0x0a4c, + 0x0a4e, 0x0a50, 0x0a52, 0x0a54, 0x0a56, 0x0a58, 0x0a5a, 0x0a5f, + 0x0a65, 0x0a6c, 0x0a74, 0x0a76, 0x0a78, 0x0a7a, 0x0a7c, 0x0a7e, + // Entry 240 - 27F + 0x0a80, 0x0a82, 0x0a84, 0x0a86, 0x0a88, 0x0a8a, 0x0a8c, 0x0a8e, + 0x0a90, 0x0a96, 0x0a98, 0x0a9a, 0x0a9c, 0x0a9e, 0x0aa0, 0x0aa2, + 0x0aa4, 0x0aa6, 0x0aa8, 0x0aaa, 0x0aac, 0x0aae, 0x0ab0, 0x0ab2, + 0x0ab4, 0x0ab9, 0x0abe, 0x0ac2, 0x0ac6, 0x0aca, 0x0ace, 0x0ad2, + 0x0ad6, 0x0ada, 0x0ade, 0x0ae2, 0x0ae7, 0x0aec, 0x0af1, 0x0af6, + 0x0afb, 0x0b00, 0x0b05, 0x0b0a, 0x0b0f, 0x0b14, 0x0b19, 0x0b1e, + 0x0b23, 0x0b28, 0x0b2d, 0x0b32, 0x0b37, 0x0b3c, 0x0b41, 0x0b46, + 0x0b4b, 0x0b50, 0x0b52, 0x0b54, 0x0b56, 0x0b58, 0x0b5a, 0x0b5c, + // Entry 280 - 2BF + 0x0b5e, 0x0b62, 0x0b66, 0x0b6a, 0x0b6e, 0x0b72, 0x0b76, 0x0b7a, + 0x0b7c, 0x0b7e, 0x0b80, 0x0b82, 0x0b86, 0x0b8a, 0x0b8e, 0x0b92, + 0x0b96, 0x0b9a, 0x0b9e, 0x0ba0, 0x0ba2, 0x0ba4, 0x0ba6, 0x0ba8, + 0x0baa, 0x0bac, 0x0bb0, 0x0bb4, 0x0bba, 0x0bc0, 0x0bc4, 0x0bc8, + 0x0bcc, 0x0bd0, 0x0bd4, 0x0bd8, 0x0bdc, 0x0be0, 0x0be4, 0x0be8, + 0x0bec, 0x0bf0, 0x0bf4, 0x0bf8, 0x0bfc, 0x0c00, 0x0c04, 0x0c08, + 0x0c0c, 0x0c10, 0x0c14, 0x0c18, 0x0c1c, 0x0c20, 0x0c24, 0x0c28, + 0x0c2c, 0x0c30, 0x0c34, 0x0c36, 0x0c38, 0x0c3a, 0x0c3c, 0x0c3e, + // Entry 2C0 - 2FF + 0x0c40, 0x0c42, 0x0c44, 0x0c46, 0x0c48, 0x0c4a, 0x0c4c, 0x0c4e, + 0x0c50, 0x0c52, 0x0c54, 0x0c56, 0x0c58, 0x0c5a, 0x0c5c, 0x0c5e, + 0x0c60, 0x0c62, 0x0c64, 0x0c66, 0x0c68, 0x0c6a, 0x0c6c, 0x0c6e, + 0x0c70, 0x0c72, 0x0c74, 0x0c76, 0x0c78, 0x0c7a, 0x0c7c, 0x0c7e, + 0x0c80, 0x0c82, 0x0c86, 0x0c8a, 0x0c8e, 0x0c92, 0x0c96, 0x0c9a, + 0x0c9e, 0x0ca2, 0x0ca4, 0x0ca8, 0x0cac, 0x0cb0, 0x0cb4, 0x0cb8, + 0x0cbc, 0x0cc0, 0x0cc4, 0x0cc8, 0x0ccc, 0x0cd0, 0x0cd4, 0x0cd8, + 0x0cdc, 0x0ce0, 0x0ce4, 0x0ce8, 0x0cec, 0x0cf0, 0x0cf4, 0x0cf8, + // Entry 300 - 33F + 0x0cfc, 0x0d00, 0x0d04, 0x0d08, 0x0d0c, 0x0d10, 0x0d14, 0x0d18, + 0x0d1c, 0x0d20, 0x0d24, 0x0d28, 0x0d2c, 0x0d30, 0x0d34, 0x0d38, + 0x0d3c, 0x0d40, 0x0d44, 0x0d48, 0x0d4c, 0x0d50, 0x0d54, 0x0d58, + 0x0d5c, 0x0d60, 0x0d64, 0x0d68, 0x0d6c, 0x0d70, 0x0d74, 0x0d78, + 0x0d7c, 0x0d80, 0x0d84, 0x0d88, 0x0d8c, 0x0d90, 0x0d94, 0x0d98, + 0x0d9c, 0x0da0, 0x0da4, 0x0da8, 0x0dac, 0x0db0, 0x0db4, 0x0db8, + 0x0dbc, 0x0dc0, 0x0dc4, 0x0dc8, 0x0dcc, 0x0dd0, 0x0dd4, 0x0dd8, + 0x0ddc, 0x0de0, 0x0de4, 0x0de8, 0x0dec, 0x0df0, 0x0df4, 0x0df8, + // Entry 340 - 37F + 0x0dfc, 0x0e00, 0x0e04, 0x0e08, 0x0e0c, 0x0e10, 0x0e14, 0x0e18, + 0x0e1d, 0x0e22, 0x0e27, 0x0e2c, 0x0e31, 0x0e36, 0x0e3a, 0x0e3e, + 0x0e42, 0x0e46, 0x0e4a, 0x0e4e, 0x0e52, 0x0e56, 0x0e5a, 0x0e5e, + 0x0e62, 0x0e66, 0x0e6a, 0x0e6e, 0x0e72, 0x0e76, 0x0e7a, 0x0e7e, + 0x0e82, 0x0e86, 0x0e8a, 0x0e8e, 0x0e92, 0x0e96, 0x0e9a, 0x0e9e, + 0x0ea2, 0x0ea6, 0x0eaa, 0x0eae, 0x0eb2, 0x0eb6, 0x0ebc, 0x0ec2, + 0x0ec8, 0x0ecc, 0x0ed0, 0x0ed4, 0x0ed8, 0x0edc, 0x0ee0, 0x0ee4, + 0x0ee8, 0x0eec, 0x0ef0, 0x0ef4, 0x0ef8, 0x0efc, 0x0f00, 0x0f04, + // Entry 380 - 3BF + 0x0f08, 0x0f0c, 0x0f10, 0x0f14, 0x0f18, 0x0f1c, 0x0f20, 0x0f24, + 0x0f28, 0x0f2c, 0x0f30, 0x0f34, 0x0f38, 0x0f3e, 0x0f44, 0x0f4a, + 0x0f50, 0x0f56, 0x0f5c, 0x0f62, 0x0f68, 0x0f6e, 0x0f74, 0x0f7a, + 0x0f80, 0x0f86, 0x0f8c, 0x0f92, 0x0f98, 0x0f9e, 0x0fa4, 0x0faa, + 0x0fb0, 0x0fb6, 0x0fbc, 0x0fc2, 0x0fc8, 0x0fce, 0x0fd4, 0x0fda, + 0x0fe0, 0x0fe6, 0x0fec, 0x0ff2, 0x0ff8, 0x0ffe, 0x1004, 0x100a, + 0x1010, 0x1016, 0x101c, 0x1022, 0x1028, 0x102e, 0x1034, 0x103a, + 0x1040, 0x1046, 0x104c, 0x1052, 0x1058, 0x105e, 0x1064, 0x106a, + // Entry 3C0 - 3FF + 0x1070, 0x1076, 0x107c, 0x1082, 0x1088, 0x108e, 0x1094, 0x109a, + 0x10a0, 0x10a6, 0x10ac, 0x10b2, 0x10b8, 0x10be, 0x10c4, 0x10ca, + 0x10d0, 0x10d6, 0x10dc, 0x10e2, 0x10e8, 0x10ee, 0x10f4, 0x10fa, + 0x1100, 0x1106, 0x110c, 0x1112, 0x1118, 0x111e, 0x1124, 0x112a, + 0x1130, 0x1136, 0x113c, 0x1142, 0x1148, 0x114e, 0x1154, 0x115a, + 0x1160, 0x1166, 0x116c, 0x1172, 0x1178, 0x1180, 0x1188, 0x1190, + 0x1198, 0x11a0, 0x11a8, 0x11b0, 0x11b6, 0x11d7, 0x11e6, 0x11ee, + 0x11ef, 0x11f0, 0x11f1, 0x11f2, 0x11f3, 0x11f4, 0x11f5, 0x11f6, + // Entry 400 - 43F + 0x11f7, 0x11f8, 0x11f9, 0x11fa, 0x11fb, 0x11fc, 0x11fd, 0x11fe, + 0x11ff, 0x1200, 0x1201, 0x1205, 0x1209, 0x120d, 0x1211, 0x1215, + 0x1219, 0x121b, 0x121d, 0x121f, 0x1221, 0x1223, 0x1225, 0x1227, + 0x1229, 0x122b, 0x122d, 0x122f, 0x1231, 0x1233, 0x1235, 0x1237, + 0x1239, 0x123b, 0x123d, 0x123f, 0x1241, 0x1243, 0x1245, 0x1247, + 0x1249, 0x124b, 0x124d, 0x124f, 0x1251, 0x1253, 0x1255, 0x1257, + 0x1259, 0x125b, 0x125d, 0x125f, 0x1263, 0x1267, 0x126b, 0x126f, + 0x1270, 0x1271, 0x1272, 0x1273, 0x1274, 0x1275, 0x1277, 0x1279, + // Entry 440 - 47F + 0x127b, 0x127d, 0x127f, 0x1281, 0x1283, 0x1285, 0x1287, 0x1289, + 0x128c, 0x128e, 0x1290, 0x1292, 0x1294, 0x1297, 0x1299, 0x129b, + 0x129d, 0x129f, 0x12a1, 0x12a3, 0x12a5, 0x12a7, 0x12a9, 0x12ab, + 0x12ad, 0x12af, 0x12b2, 0x12b4, 0x12b6, 0x12b8, 0x12ba, 0x12bc, + 0x12be, 0x12c0, 0x12c2, 0x12c4, 0x12c6, 0x12c9, 0x12cb, 0x12cd, + 0x12d0, 0x12d2, 0x12d4, 0x12d6, 0x12d8, 0x12da, 0x12dc, 0x12de, + 0x12e6, 0x12ee, 0x12fa, 0x1306, 0x1312, 0x131e, 0x132a, 0x1332, + 0x133a, 0x1346, 0x1352, 0x135e, 0x136a, 0x136c, 0x136e, 0x1370, + // Entry 480 - 4BF + 0x1372, 0x1374, 0x1376, 0x1378, 0x137a, 0x137c, 0x137e, 0x1380, + 0x1382, 0x1384, 0x1386, 0x1388, 0x138a, 0x138d, 0x1390, 0x1392, + 0x1394, 0x1396, 0x1398, 0x139a, 0x139c, 0x139e, 0x13a0, 0x13a2, + 0x13a4, 0x13a6, 0x13a8, 0x13aa, 0x13ac, 0x13ae, 0x13b0, 0x13b2, + 0x13b4, 0x13b6, 0x13b8, 0x13ba, 0x13bc, 0x13bf, 0x13c1, 0x13c3, + 0x13c5, 0x13c7, 0x13c9, 0x13cb, 0x13cd, 0x13cf, 0x13d1, 0x13d3, + 0x13d6, 0x13d8, 0x13da, 0x13dc, 0x13de, 0x13e0, 0x13e2, 0x13e4, + 0x13e6, 0x13e8, 0x13ea, 0x13ec, 0x13ee, 0x13f0, 0x13f2, 0x13f5, + // Entry 4C0 - 4FF + 0x13f8, 0x13fb, 0x13fe, 0x1401, 0x1404, 0x1407, 0x140a, 0x140d, + 0x1410, 0x1413, 0x1416, 0x1419, 0x141c, 0x141f, 0x1422, 0x1425, + 0x1428, 0x142b, 0x142e, 0x1431, 0x1434, 0x1437, 0x143a, 0x143d, + 0x1440, 0x1447, 0x1449, 0x144b, 0x144d, 0x1450, 0x1452, 0x1454, + 0x1456, 0x1458, 0x145a, 0x1460, 0x1466, 0x1469, 0x146c, 0x146f, + 0x1472, 0x1475, 0x1478, 0x147b, 0x147e, 0x1481, 0x1484, 0x1487, + 0x148a, 0x148d, 0x1490, 0x1493, 0x1496, 0x1499, 0x149c, 0x149f, + 0x14a2, 0x14a5, 0x14a8, 0x14ab, 0x14ae, 0x14b1, 0x14b4, 0x14b7, + // Entry 500 - 53F + 0x14ba, 0x14bd, 0x14c0, 0x14c3, 0x14c6, 0x14c9, 0x14cc, 0x14cf, + 0x14d2, 0x14d5, 0x14d8, 0x14db, 0x14de, 0x14e1, 0x14e4, 0x14e7, + 0x14ea, 0x14ed, 0x14f6, 0x14ff, 0x1508, 0x1511, 0x151a, 0x1523, + 0x152c, 0x1535, 0x153e, 0x1541, 0x1544, 0x1547, 0x154a, 0x154d, + 0x1550, 0x1553, 0x1556, 0x1559, 0x155c, 0x155f, 0x1562, 0x1565, + 0x1568, 0x156b, 0x156e, 0x1571, 0x1574, 0x1577, 0x157a, 0x157d, + 0x1580, 0x1583, 0x1586, 0x1589, 0x158c, 0x158f, 0x1592, 0x1595, + 0x1598, 0x159b, 0x159e, 0x15a1, 0x15a4, 0x15a7, 0x15aa, 0x15ad, + // Entry 540 - 57F + 0x15b0, 0x15b3, 0x15b6, 0x15b9, 0x15bc, 0x15bf, 0x15c2, 0x15c5, + 0x15c8, 0x15cb, 0x15ce, 0x15d1, 0x15d4, 0x15d7, 0x15da, 0x15dd, + 0x15e0, 0x15e3, 0x15e6, 0x15e9, 0x15ec, 0x15ef, 0x15f2, 0x15f5, + 0x15f8, 0x15fb, 0x15fe, 0x1601, 0x1604, 0x1607, 0x160a, 0x160d, + 0x1610, 0x1613, 0x1616, 0x1619, 0x161c, 0x161f, 0x1622, 0x1625, + 0x1628, 0x162b, 0x162e, 0x1631, 0x1634, 0x1637, 0x163a, 0x163d, + 0x1640, 0x1643, 0x1646, 0x1649, 0x164c, 0x164f, 0x1652, 0x1655, + 0x1658, 0x165b, 0x165e, 0x1661, 0x1664, 0x1667, 0x166a, 0x166d, + // Entry 580 - 5BF + 0x1670, 0x1673, 0x1676, 0x1679, 0x167c, 0x167f, 0x1682, 0x1685, + 0x1688, 0x168b, 0x168e, 0x1691, 0x1694, 0x1697, 0x169a, 0x169d, + 0x16a0, 0x16a3, 0x16a6, 0x16a9, 0x16ac, 0x16af, 0x16b2, 0x16b5, + 0x16b8, 0x16bb, 0x16be, 0x16c1, 0x16c4, 0x16c7, 0x16ca, 0x16cd, + 0x16d0, 0x16d3, 0x16d6, 0x16d9, 0x16dc, 0x16df, 0x16e2, 0x16e5, + 0x16e8, 0x16eb, 0x16ee, 0x16f1, 0x16f4, 0x16f7, 0x16fa, 0x16fd, + 0x1700, 0x1703, 0x1706, 0x1709, 0x170c, 0x170f, 0x1712, 0x1715, + 0x1718, 0x171b, 0x171e, 0x1721, 0x1724, 0x1727, 0x172a, 0x172d, + // Entry 5C0 - 5FF + 0x1730, 0x1733, 0x1736, 0x1739, 0x173c, 0x173f, 0x1742, 0x1745, + 0x1748, 0x174b, 0x174e, 0x1751, 0x1754, 0x1757, 0x175a, 0x175d, + 0x1760, 0x1763, 0x1766, 0x1769, 0x176c, 0x176f, 0x1772, 0x1775, + 0x1778, 0x177b, 0x177e, 0x1781, 0x1784, 0x1787, 0x178a, 0x178d, + 0x1790, 0x1793, 0x1796, 0x1799, 0x179c, 0x179f, 0x17a2, 0x17a5, + 0x17a8, 0x17ab, 0x17ae, 0x17b1, 0x17b4, 0x17b7, 0x17ba, 0x17bd, + 0x17c0, 0x17c3, 0x17c6, 0x17c9, 0x17cc, 0x17cf, 0x17d2, 0x17d5, + 0x17d8, 0x17db, 0x17de, 0x17e1, 0x17e4, 0x17e7, 0x17ea, 0x17ed, + // Entry 600 - 63F + 0x17f0, 0x17f3, 0x17f6, 0x17f9, 0x17fc, 0x17ff, 0x1802, 0x1805, + 0x1808, 0x180b, 0x180e, 0x1811, 0x1814, 0x1817, 0x181a, 0x181d, + 0x1820, 0x1823, 0x1826, 0x1829, 0x182c, 0x182f, 0x1832, 0x1835, + 0x1838, 0x183b, 0x183e, 0x1841, 0x1844, 0x1847, 0x184a, 0x184d, + 0x1850, 0x1853, 0x1856, 0x1859, 0x185c, 0x185f, 0x1862, 0x1865, + 0x1868, 0x186b, 0x186e, 0x1871, 0x1874, 0x1877, 0x187a, 0x187d, + 0x1880, 0x1883, 0x1886, 0x1889, 0x188c, 0x188f, 0x1892, 0x1895, + 0x1898, 0x189b, 0x189e, 0x18a1, 0x18a4, 0x18a7, 0x18aa, 0x18ad, + // Entry 640 - 67F + 0x18b0, 0x18b3, 0x18b6, 0x18b9, 0x18bc, 0x18bf, 0x18c2, 0x18c5, + 0x18c8, 0x18cb, 0x18ce, 0x18d1, 0x18d4, 0x18d7, 0x18da, 0x18dd, + 0x18e0, 0x18e3, 0x18e6, 0x18e9, 0x18ec, 0x18ef, 0x18f2, 0x18f5, + 0x18f8, 0x18fb, 0x18fe, 0x1901, 0x1904, 0x1907, 0x190a, 0x190d, + 0x1910, 0x1913, 0x1916, 0x1919, 0x191c, 0x191f, 0x1922, 0x1925, + 0x1928, 0x192b, 0x192e, 0x1931, 0x1934, 0x1937, 0x193a, 0x193d, + 0x1940, 0x1943, 0x1946, 0x1949, 0x194c, 0x194f, 0x1952, 0x1955, + 0x1958, 0x195b, 0x195e, 0x1961, 0x1964, 0x1967, 0x196a, 0x196d, + // Entry 680 - 6BF + 0x1970, 0x1973, 0x1976, 0x1979, 0x197c, 0x197f, 0x1982, 0x1985, + 0x1988, 0x198b, 0x198e, 0x1991, 0x1994, 0x1997, 0x199a, 0x199d, + 0x19a0, 0x19a3, 0x19a6, 0x19a9, 0x19ac, 0x19af, 0x19b2, 0x19b5, + 0x19b8, 0x19bb, 0x19be, 0x19c1, 0x19c4, 0x19c7, 0x19ca, 0x19cd, + 0x19d0, 0x19d3, 0x19d6, 0x19d9, 0x19dc, 0x19df, 0x19e2, 0x19e5, + 0x19e8, 0x19eb, 0x19ee, 0x19f1, 0x19f4, 0x19f7, 0x19fa, 0x19fd, + 0x1a00, 0x1a03, 0x1a06, 0x1a09, 0x1a0c, 0x1a0f, 0x1a12, 0x1a15, + 0x1a18, 0x1a1b, 0x1a1e, 0x1a21, 0x1a24, 0x1a27, 0x1a2a, 0x1a2d, + // Entry 6C0 - 6FF + 0x1a30, +} // Size: 3482 bytes + +var xorData string = "" + // Size: 4907 bytes + "\x02\x0c\x09\x02\xb0\xec\x02\xad\xd8\x02\xad\xd9\x02\x06\x07\x02\x0f\x12" + + "\x02\x0f\x1f\x02\x0f\x1d\x02\x01\x13\x02\x0f\x16\x02\x0f\x0b\x02\x0f3" + + "\x02\x0f7\x02\x0f?\x02\x0f/\x02\x0f*\x02\x0c&\x02\x0c*\x02\x0c;\x02\x0c9" + + "\x02\x0c%\x02\xab\xed\x02\xab\xe2\x02\xab\xe3\x02\xa9\xe0\x02\xa9\xe1" + + "\x02\xa9\xe6\x02\xa3\xcb\x02\xa3\xc8\x02\xa3\xc9\x02\x01#\x02\x01\x08" + + "\x02\x0e>\x02\x0e'\x02\x0f\x03\x02\x03\x0d\x02\x03\x09\x02\x03\x17\x02" + + "\x03\x0e\x02\x02\x03\x02\x011\x02\x01\x00\x02\x01\x10\x02\x03<\x02\x07" + + "\x0d\x02\x02\x0c\x02\x0c0\x02\x01\x03\x02\x01\x01\x02\x01 \x02\x01\x22" + + "\x02\x01)\x02\x01\x0a\x02\x01\x0c\x02\x02\x06\x02\x02\x02\x02\x03\x10" + + "\x03\x037 \x03\x0b+\x03\x021\x00\x02\x01\x04\x02\x01\x02\x02\x019\x02" + + "\x03\x1c\x02\x02$\x03\x80p$\x02\x03:\x02\x03\x0a\x03\xc1r.\x03\xc1r,\x03" + + "\xc1r\x02\x02\x02:\x02\x02>\x02\x02,\x02\x02\x10\x02\x02\x00\x03\xc1s<" + + "\x03\xc1s*\x03\xc2L$\x03\xc2L;\x02\x09)\x02\x0a\x19\x03\x83\xab\xe3\x03" + + "\x83\xab\xf2\x03 4\xe0\x03\x81\xab\xea\x03\x81\xab\xf3\x03 4\xef\x03\x96" + + "\xe1\xcd\x03\x84\xe5\xc3\x02\x0d\x11\x03\x8b\xec\xcb\x03\x94\xec\xcf\x03" + + "\x9a\xec\xc2\x03\x8b\xec\xdb\x03\x94\xec\xdf\x03\x9a\xec\xd2\x03\x01\x0c" + + "!\x03\x01\x0c#\x03ʠ\x9d\x03ʣ\x9c\x03ʢ\x9f\x03ʥ\x9e\x03ʤ\x91\x03ʧ\x90\x03" + + "ʦ\x93\x03ʩ\x92\x03ʨ\x95\x03\xca\xf3\xb5\x03\xca\xf0\xb4\x03\xca\xf1\xb7" + + "\x03\xca\xf6\xb6\x03\xca\xf7\x89\x03\xca\xf4\x88\x03\xca\xf5\x8b\x03\xca" + + "\xfa\x8a\x03\xca\xfb\x8d\x03\xca\xf8\x8c\x03\xca\xf9\x8f\x03\xca\xfe\x8e" + + "\x03\xca\xff\x81\x03\xca\xfc\x80\x03\xca\xfd\x83\x03\xca\xe2\x82\x03\xca" + + "\xe3\x85\x03\xca\xe0\x84\x03\xca\xe1\x87\x03\xca\xe6\x86\x03\xca\xe7\x99" + + "\x03\xca\xe4\x98\x03\xca\xe5\x9b\x03\xca\xea\x9a\x03\xca\xeb\x9d\x03\xca" + + "\xe8\x9c\x03ؓ\x89\x03ߔ\x8b\x02\x010\x03\x03\x04\x1e\x03\x04\x15\x12\x03" + + "\x0b\x05,\x03\x06\x04\x00\x03\x06\x04)\x03\x06\x044\x03\x06\x04<\x03\x06" + + "\x05\x1d\x03\x06\x06\x00\x03\x06\x06\x0a\x03\x06\x06'\x03\x06\x062\x03" + + "\x0786\x03\x079/\x03\x079 \x03\x07:\x0e\x03\x07:\x1b\x03\x07:%\x03\x07;/" + + "\x03\x07;%\x03\x074\x11\x03\x076\x09\x03\x077*\x03\x070\x01\x03\x070\x0f" + + "\x03\x070.\x03\x071\x16\x03\x071\x04\x03\x0710\x03\x072\x18\x03\x072-" + + "\x03\x073\x14\x03\x073>\x03\x07'\x09\x03\x07 \x00\x03\x07\x1f\x0b\x03" + + "\x07\x18#\x03\x07\x18(\x03\x07\x186\x03\x07\x18\x03\x03\x07\x19\x16\x03" + + "\x07\x116\x03\x07\x12'\x03\x07\x13\x10\x03\x07\x0c&\x03\x07\x0c\x08\x03" + + "\x07\x0c\x13\x03\x07\x0d\x02\x03\x07\x0d\x1c\x03\x07\x0b5\x03\x07\x0b" + + "\x0a\x03\x07\x0b\x01\x03\x07\x0b\x0f\x03\x07\x05\x00\x03\x07\x05\x09\x03" + + "\x07\x05\x0b\x03\x07\x07\x01\x03\x07\x07\x08\x03\x07\x00<\x03\x07\x00+" + + "\x03\x07\x01)\x03\x07\x01\x1b\x03\x07\x01\x08\x03\x07\x03?\x03\x0445\x03" + + "\x044\x08\x03\x0454\x03\x04)/\x03\x04)5\x03\x04+\x05\x03\x04+\x14\x03" + + "\x04+ \x03\x04+<\x03\x04*&\x03\x04*\x22\x03\x04&8\x03\x04!\x01\x03\x04!" + + "\x22\x03\x04\x11+\x03\x04\x10.\x03\x04\x104\x03\x04\x13=\x03\x04\x12\x04" + + "\x03\x04\x12\x0a\x03\x04\x0d\x1d\x03\x04\x0d\x07\x03\x04\x0d \x03\x05<>" + + "\x03\x055<\x03\x055!\x03\x055#\x03\x055&\x03\x054\x1d\x03\x054\x02\x03" + + "\x054\x07\x03\x0571\x03\x053\x1a\x03\x053\x16\x03\x05.<\x03\x05.\x07\x03" + + "\x05):\x03\x05)<\x03\x05)\x0c\x03\x05)\x15\x03\x05+-\x03\x05+5\x03\x05$" + + "\x1e\x03\x05$\x14\x03\x05'\x04\x03\x05'\x14\x03\x05&\x02\x03\x05\x226" + + "\x03\x05\x22\x0c\x03\x05\x22\x1c\x03\x05\x19\x0a\x03\x05\x1b\x09\x03\x05" + + "\x1b\x0c\x03\x05\x14\x07\x03\x05\x16?\x03\x05\x16\x0c\x03\x05\x0c\x05" + + "\x03\x05\x0e\x0f\x03\x05\x01\x0e\x03\x05\x00(\x03\x05\x030\x03\x05\x03" + + "\x06\x03\x0a==\x03\x0a=1\x03\x0a=,\x03\x0a=\x0c\x03\x0a??\x03\x0a<\x08" + + "\x03\x0a9!\x03\x0a9)\x03\x0a97\x03\x0a99\x03\x0a6\x0a\x03\x0a6\x1c\x03" + + "\x0a6\x17\x03\x0a7'\x03\x0a78\x03\x0a73\x03\x0a'\x01\x03\x0a'&\x03\x0a" + + "\x1f\x0e\x03\x0a\x1f\x03\x03\x0a\x1f3\x03\x0a\x1b/\x03\x0a\x18\x19\x03" + + "\x0a\x19\x01\x03\x0a\x16\x14\x03\x0a\x0e\x22\x03\x0a\x0f\x10\x03\x0a\x0f" + + "\x02\x03\x0a\x0f \x03\x0a\x0c\x04\x03\x0a\x0b>\x03\x0a\x0b+\x03\x0a\x08/" + + "\x03\x0a\x046\x03\x0a\x05\x14\x03\x0a\x00\x04\x03\x0a\x00\x10\x03\x0a" + + "\x00\x14\x03\x0b<3\x03\x0b;*\x03\x0b9\x22\x03\x0b9)\x03\x0b97\x03\x0b+" + + "\x10\x03\x0b((\x03\x0b&5\x03\x0b$\x1c\x03\x0b$\x12\x03\x0b%\x04\x03\x0b#" + + "<\x03\x0b#0\x03\x0b#\x0d\x03\x0b#\x19\x03\x0b!:\x03\x0b!\x1f\x03\x0b!" + + "\x00\x03\x0b\x1e5\x03\x0b\x1c\x1d\x03\x0b\x1d-\x03\x0b\x1d(\x03\x0b\x18." + + "\x03\x0b\x18 \x03\x0b\x18\x16\x03\x0b\x14\x13\x03\x0b\x15$\x03\x0b\x15" + + "\x22\x03\x0b\x12\x1b\x03\x0b\x12\x10\x03\x0b\x132\x03\x0b\x13=\x03\x0b" + + "\x12\x18\x03\x0b\x0c&\x03\x0b\x061\x03\x0b\x06:\x03\x0b\x05#\x03\x0b\x05" + + "<\x03\x0b\x04\x0b\x03\x0b\x04\x04\x03\x0b\x04\x1b\x03\x0b\x042\x03\x0b" + + "\x041\x03\x0b\x03\x03\x03\x0b\x03\x1d\x03\x0b\x03/\x03\x0b\x03+\x03\x0b" + + "\x02\x1b\x03\x0b\x02\x00\x03\x0b\x01\x1e\x03\x0b\x01\x08\x03\x0b\x015" + + "\x03\x06\x0d9\x03\x06\x0d=\x03\x06\x0d?\x03\x02\x001\x03\x02\x003\x03" + + "\x02\x02\x19\x03\x02\x006\x03\x02\x02\x1b\x03\x02\x004\x03\x02\x00<\x03" + + "\x02\x02\x0a\x03\x02\x02\x0e\x03\x02\x01\x1a\x03\x02\x01\x07\x03\x02\x01" + + "\x05\x03\x02\x01\x0b\x03\x02\x01%\x03\x02\x01\x0c\x03\x02\x01\x04\x03" + + "\x02\x01\x1c\x03\x02\x00.\x03\x02\x002\x03\x02\x00>\x03\x02\x00\x12\x03" + + "\x02\x00\x16\x03\x02\x011\x03\x02\x013\x03\x02\x02 \x03\x02\x02%\x03\x02" + + "\x02$\x03\x02\x028\x03\x02\x02;\x03\x02\x024\x03\x02\x012\x03\x02\x022" + + "\x03\x02\x02/\x03\x02\x01,\x03\x02\x01\x13\x03\x02\x01\x16\x03\x02\x01" + + "\x11\x03\x02\x01\x1e\x03\x02\x01\x15\x03\x02\x01\x17\x03\x02\x01\x0f\x03" + + "\x02\x01\x08\x03\x02\x00?\x03\x02\x03\x07\x03\x02\x03\x0d\x03\x02\x03" + + "\x13\x03\x02\x03\x1d\x03\x02\x03\x1f\x03\x02\x00\x03\x03\x02\x00\x0d\x03" + + "\x02\x00\x01\x03\x02\x00\x1b\x03\x02\x00\x19\x03\x02\x00\x18\x03\x02\x00" + + "\x13\x03\x02\x00/\x03\x07>\x12\x03\x07<\x1f\x03\x07>\x1d\x03\x06\x1d\x0e" + + "\x03\x07>\x1c\x03\x07>:\x03\x07>\x13\x03\x04\x12+\x03\x07?\x03\x03\x07>" + + "\x02\x03\x06\x224\x03\x06\x1a.\x03\x07<%\x03\x06\x1c\x0b\x03\x0609\x03" + + "\x05\x1f\x01\x03\x04'\x08\x03\x93\xfd\xf5\x03\x02\x0d \x03\x02\x0d#\x03" + + "\x02\x0d!\x03\x02\x0d&\x03\x02\x0d\x22\x03\x02\x0d/\x03\x02\x0d,\x03\x02" + + "\x0d$\x03\x02\x0d'\x03\x02\x0d%\x03\x02\x0d;\x03\x02\x0d=\x03\x02\x0d?" + + "\x03\x099.\x03\x08\x0b7\x03\x08\x02\x14\x03\x08\x14\x0d\x03\x08.:\x03" + + "\x089'\x03\x0f\x0b\x18\x03\x0f\x1c1\x03\x0f\x17&\x03\x0f9\x1f\x03\x0f0" + + "\x0c\x03\x0e\x0a9\x03\x0e\x056\x03\x0e\x1c#\x03\x0f\x13\x0e\x03\x072\x00" + + "\x03\x070\x0d\x03\x072\x0b\x03\x06\x11\x18\x03\x070\x10\x03\x06\x0f(\x03" + + "\x072\x05\x03\x06\x0f,\x03\x073\x15\x03\x06\x07\x08\x03\x05\x16\x02\x03" + + "\x04\x0b \x03\x05:8\x03\x05\x16%\x03\x0a\x0d\x1f\x03\x06\x16\x10\x03\x05" + + "\x1d5\x03\x05*;\x03\x05\x16\x1b\x03\x04.-\x03\x06\x1a\x19\x03\x04\x03," + + "\x03\x0b87\x03\x04/\x0a\x03\x06\x00,\x03\x04-\x01\x03\x04\x1e-\x03\x06/(" + + "\x03\x0a\x0b5\x03\x06\x0e7\x03\x06\x07.\x03\x0597\x03\x0a*%\x03\x0760" + + "\x03\x06\x0c;\x03\x05'\x00\x03\x072.\x03\x072\x08\x03\x06=\x01\x03\x06" + + "\x05\x1b\x03\x06\x06\x12\x03\x06$=\x03\x06'\x0d\x03\x04\x11\x0f\x03\x076" + + ",\x03\x06\x07;\x03\x06.,\x03\x86\xf9\xea\x03\x8f\xff\xeb\x02\x092\x02" + + "\x095\x02\x094\x02\x09;\x02\x09>\x02\x098\x02\x09*\x02\x09/\x02\x09,\x02" + + "\x09%\x02\x09&\x02\x09#\x02\x09 \x02\x08!\x02\x08%\x02\x08$\x02\x08+\x02" + + "\x08.\x02\x08*\x02\x08&\x02\x088\x02\x08>\x02\x084\x02\x086\x02\x080\x02" + + "\x08\x10\x02\x08\x17\x02\x08\x12\x02\x08\x1d\x02\x08\x1f\x02\x08\x13\x02" + + "\x08\x15\x02\x08\x14\x02\x08\x0c\x03\x8b\xfd\xd0\x03\x81\xec\xc6\x03\x87" + + "\xe0\x8a\x03-2\xe3\x03\x80\xef\xe4\x03-2\xea\x03\x88\xe6\xeb\x03\x8e\xe6" + + "\xe8\x03\x84\xe6\xe9\x03\x97\xe6\xee\x03-2\xf9\x03-2\xf6\x03\x8e\xe3\xad" + + "\x03\x80\xe3\x92\x03\x88\xe3\x90\x03\x8e\xe3\x90\x03\x80\xe3\x97\x03\x88" + + "\xe3\x95\x03\x88\xfe\xcb\x03\x8e\xfe\xca\x03\x84\xfe\xcd\x03\x91\xef\xc9" + + "\x03-2\xc1\x03-2\xc0\x03-2\xcb\x03\x88@\x09\x03\x8e@\x08\x03\x8f\xe0\xf5" + + "\x03\x8e\xe6\xf9\x03\x8e\xe0\xfa\x03\x93\xff\xf4\x03\x84\xee\xd3\x03\x0b" + + "(\x04\x023 \x03\x0b)\x08\x021;\x02\x01*\x03\x0b#\x10\x03\x0b 0\x03\x0b!" + + "\x10\x03\x0b!0\x03\x07\x15\x08\x03\x09?5\x03\x07\x1f\x08\x03\x07\x17\x0b" + + "\x03\x09\x1f\x15\x03\x0b\x1c7\x03\x0a+#\x03\x06\x1a\x1b\x03\x06\x1a\x14" + + "\x03\x0a\x01\x18\x03\x06#\x1b\x03\x0a2\x0c\x03\x0a\x01\x04\x03\x09#;\x03" + + "\x08='\x03\x08\x1a\x0a\x03\x07\x03\x0a\x111\x03\x09\x1b\x09\x03\x073.\x03\x07" + + "\x01\x00\x03\x09/,\x03\x07#>\x03\x07\x048\x03\x0a\x1f\x22\x03\x098>\x03" + + "\x09\x11\x00\x03\x08/\x17\x03\x06'\x22\x03\x0b\x1a+\x03\x0a\x22\x19\x03" + + "\x0a/1\x03\x0974\x03\x09\x0f\x22\x03\x08,\x22\x03\x08?\x14\x03\x07$5\x03" + + "\x07<3\x03\x07=*\x03\x07\x13\x18\x03\x068\x0a\x03\x06\x09\x16\x03\x06" + + "\x13\x00\x03\x08\x067\x03\x08\x01\x03\x03\x08\x12\x1d\x03\x07+7\x03\x06(" + + ";\x03\x06\x1c?\x03\x07\x0e\x17\x03\x0a\x06\x1d\x03\x0a\x19\x07\x03\x08" + + "\x14$\x03\x07$;\x03\x08,$\x03\x08\x06\x0d\x03\x07\x16\x0a\x03\x06>>\x03" + + "\x0a\x06\x12\x03\x0a\x14)\x03\x09\x0d\x1f\x03\x09\x12\x17\x03\x09\x19" + + "\x01\x03\x08\x11 \x03\x08\x1d'\x03\x06<\x1a\x03\x0a.\x00\x03\x07'\x18" + + "\x03\x0a\x22\x08\x03\x08\x0d\x0a\x03\x08\x13)\x03\x07*)\x03\x06<,\x03" + + "\x07\x0b\x1a\x03\x09.\x14\x03\x09\x0d\x1e\x03\x07\x0e#\x03\x0b\x1d'\x03" + + "\x0a\x0a8\x03\x09%2\x03\x08+&\x03\x080\x12\x03\x0a)4\x03\x08\x06\x1f\x03" + + "\x0b\x1b\x1a\x03\x0a\x1b\x0f\x03\x0b\x1d*\x03\x09\x16$\x03\x090\x11\x03" + + "\x08\x11\x08\x03\x0a*(\x03\x0a\x042\x03\x089,\x03\x074'\x03\x07\x0f\x05" + + "\x03\x09\x0b\x0a\x03\x07\x1b\x01\x03\x09\x17:\x03\x09.\x0d\x03\x07.\x11" + + "\x03\x09+\x15\x03\x080\x13\x03\x0b\x1f\x19\x03\x0a \x11\x03\x0a\x220\x03" + + "\x09\x07;\x03\x08\x16\x1c\x03\x07,\x13\x03\x07\x0e/\x03\x06\x221\x03\x0a" + + ".\x0a\x03\x0a7\x02\x03\x0a\x032\x03\x0a\x1d.\x03\x091\x06\x03\x09\x19:" + + "\x03\x08\x02/\x03\x060+\x03\x06\x0f-\x03\x06\x1c\x1f\x03\x06\x1d\x07\x03" + + "\x0a,\x11\x03\x09=\x0d\x03\x09\x0b;\x03\x07\x1b/\x03\x0a\x1f:\x03\x09 " + + "\x1f\x03\x09.\x10\x03\x094\x0b\x03\x09\x1a1\x03\x08#\x1a\x03\x084\x1d" + + "\x03\x08\x01\x1f\x03\x08\x11\x22\x03\x07'8\x03\x07\x1a>\x03\x0757\x03" + + "\x06&9\x03\x06+\x11\x03\x0a.\x0b\x03\x0a,>\x03\x0a4#\x03\x08%\x17\x03" + + "\x07\x05\x22\x03\x07\x0c\x0b\x03\x0a\x1d+\x03\x0a\x19\x16\x03\x09+\x1f" + + "\x03\x09\x08\x0b\x03\x08\x16\x18\x03\x08+\x12\x03\x0b\x1d\x0c\x03\x0a=" + + "\x10\x03\x0a\x09\x0d\x03\x0a\x10\x11\x03\x09&0\x03\x08(\x1f\x03\x087\x07" + + "\x03\x08\x185\x03\x07'6\x03\x06.\x05\x03\x06=\x04\x03\x06;;\x03\x06\x06," + + "\x03\x0b\x18>\x03\x08\x00\x18\x03\x06 \x03\x03\x06<\x00\x03\x09%\x18\x03" + + "\x0b\x1c<\x03\x0a%!\x03\x0a\x09\x12\x03\x0a\x16\x02\x03\x090'\x03\x09" + + "\x0e=\x03\x08 \x0e\x03\x08>\x03\x03\x074>\x03\x06&?\x03\x06\x19\x09\x03" + + "\x06?(\x03\x0a-\x0e\x03\x09:3\x03\x098:\x03\x09\x12\x0b\x03\x09\x1d\x17" + + "\x03\x087\x05\x03\x082\x14\x03\x08\x06%\x03\x08\x13\x1f\x03\x06\x06\x0e" + + "\x03\x0a\x22<\x03\x09/<\x03\x06>+\x03\x0a'?\x03\x0a\x13\x0c\x03\x09\x10<" + + "\x03\x07\x1b=\x03\x0a\x19\x13\x03\x09\x22\x1d\x03\x09\x07\x0d\x03\x08)" + + "\x1c\x03\x06=\x1a\x03\x0a/4\x03\x0a7\x11\x03\x0a\x16:\x03\x09?3\x03\x09:" + + "/\x03\x09\x05\x0a\x03\x09\x14\x06\x03\x087\x22\x03\x080\x07\x03\x08\x1a" + + "\x1f\x03\x07\x04(\x03\x07\x04\x09\x03\x06 %\x03\x06<\x08\x03\x0a+\x14" + + "\x03\x09\x1d\x16\x03\x0a70\x03\x08 >\x03\x0857\x03\x070\x0a\x03\x06=\x12" + + "\x03\x06\x16%\x03\x06\x1d,\x03\x099#\x03\x09\x10>\x03\x07 \x1e\x03\x08" + + "\x0c<\x03\x08\x0b\x18\x03\x08\x15+\x03\x08,:\x03\x08%\x22\x03\x07\x0a$" + + "\x03\x0b\x1c=\x03\x07+\x08\x03\x0a/\x05\x03\x0a \x07\x03\x0a\x12'\x03" + + "\x09#\x11\x03\x08\x1b\x15\x03\x0a\x06\x01\x03\x09\x1c\x1b\x03\x0922\x03" + + "\x07\x14<\x03\x07\x09\x04\x03\x061\x04\x03\x07\x0e\x01\x03\x0a\x13\x18" + + "\x03\x0a-\x0c\x03\x0a?\x0d\x03\x0a\x09\x0a\x03\x091&\x03\x0a/\x0b\x03" + + "\x08$<\x03\x083\x1d\x03\x08\x0c$\x03\x08\x0d\x07\x03\x08\x0d?\x03\x08" + + "\x0e\x14\x03\x065\x0a\x03\x08\x1a#\x03\x08\x16#\x03\x0702\x03\x07\x03" + + "\x1a\x03\x06(\x1d\x03\x06+\x1b\x03\x06\x0b\x05\x03\x06\x0b\x17\x03\x06" + + "\x0c\x04\x03\x06\x1e\x19\x03\x06+0\x03\x062\x18\x03\x0b\x16\x1e\x03\x0a+" + + "\x16\x03\x0a-?\x03\x0a#:\x03\x0a#\x10\x03\x0a%$\x03\x0a>+\x03\x0a01\x03" + + "\x0a1\x10\x03\x0a\x099\x03\x0a\x0a\x12\x03\x0a\x19\x1f\x03\x0a\x19\x12" + + "\x03\x09*)\x03\x09-\x16\x03\x09.1\x03\x09.2\x03\x09<\x0e\x03\x09> \x03" + + "\x093\x12\x03\x09\x0b\x01\x03\x09\x1c2\x03\x09\x11\x1c\x03\x09\x15%\x03" + + "\x08,&\x03\x08!\x22\x03\x089(\x03\x08\x0b\x1a\x03\x08\x0d2\x03\x08\x0c" + + "\x04\x03\x08\x0c\x06\x03\x08\x0c\x1f\x03\x08\x0c\x0c\x03\x08\x0f\x1f\x03" + + "\x08\x0f\x1d\x03\x08\x00\x14\x03\x08\x03\x14\x03\x08\x06\x16\x03\x08\x1e" + + "#\x03\x08\x11\x11\x03\x08\x10\x18\x03\x08\x14(\x03\x07)\x1e\x03\x07.1" + + "\x03\x07 $\x03\x07 '\x03\x078\x08\x03\x07\x0d0\x03\x07\x0f7\x03\x07\x05#" + + "\x03\x07\x05\x1a\x03\x07\x1a7\x03\x07\x1d-\x03\x07\x17\x10\x03\x06)\x1f" + + "\x03\x062\x0b\x03\x066\x16\x03\x06\x09\x11\x03\x09(\x1e\x03\x07!5\x03" + + "\x0b\x11\x16\x03\x0a/\x04\x03\x0a,\x1a\x03\x0b\x173\x03\x0a,1\x03\x0a/5" + + "\x03\x0a\x221\x03\x0a\x22\x0d\x03\x0a?%\x03\x0a<,\x03\x0a?#\x03\x0a>\x19" + + "\x03\x0a\x08&\x03\x0a\x0b\x0e\x03\x0a\x0c:\x03\x0a\x0c+\x03\x0a\x03\x22" + + "\x03\x0a\x06)\x03\x0a\x11\x10\x03\x0a\x11\x1a\x03\x0a\x17-\x03\x0a\x14(" + + "\x03\x09)\x1e\x03\x09/\x09\x03\x09.\x00\x03\x09,\x07\x03\x09/*\x03\x09-9" + + "\x03\x09\x228\x03\x09%\x09\x03\x09:\x12\x03\x09;\x1d\x03\x09?\x06\x03" + + "\x093%\x03\x096\x05\x03\x096\x08\x03\x097\x02\x03\x09\x07,\x03\x09\x04," + + "\x03\x09\x1f\x16\x03\x09\x11\x03\x03\x09\x11\x12\x03\x09\x168\x03\x08*" + + "\x05\x03\x08/2\x03\x084:\x03\x08\x22+\x03\x08 0\x03\x08&\x0a\x03\x08;" + + "\x10\x03\x08>$\x03\x08>\x18\x03\x0829\x03\x082:\x03\x081,\x03\x081<\x03" + + "\x081\x1c\x03\x087#\x03\x087*\x03\x08\x09'\x03\x08\x00\x1d\x03\x08\x05-" + + "\x03\x08\x1f4\x03\x08\x1d\x04\x03\x08\x16\x0f\x03\x07*7\x03\x07'!\x03" + + "\x07%\x1b\x03\x077\x0c\x03\x07\x0c1\x03\x07\x0c.\x03\x07\x00\x06\x03\x07" + + "\x01\x02\x03\x07\x010\x03\x07\x06=\x03\x07\x01\x03\x03\x07\x01\x13\x03" + + "\x07\x06\x06\x03\x07\x05\x0a\x03\x07\x1f\x09\x03\x07\x17:\x03\x06*1\x03" + + "\x06-\x1d\x03\x06\x223\x03\x062:\x03\x060$\x03\x066\x1e\x03\x064\x12\x03" + + "\x0645\x03\x06\x0b\x00\x03\x06\x0b7\x03\x06\x07\x1f\x03\x06\x15\x12\x03" + + "\x0c\x05\x0f\x03\x0b+\x0b\x03\x0b+-\x03\x06\x16\x1b\x03\x06\x15\x17\x03" + + "\x89\xca\xea\x03\x89\xca\xe8\x03\x0c8\x10\x03\x0c8\x01\x03\x0c8\x0f\x03" + + "\x0d8%\x03\x0d8!\x03\x0c8-\x03\x0c8/\x03\x0c8+\x03\x0c87\x03\x0c85\x03" + + "\x0c9\x09\x03\x0c9\x0d\x03\x0c9\x0f\x03\x0c9\x0b\x03\xcfu\x0c\x03\xcfu" + + "\x0f\x03\xcfu\x0e\x03\xcfu\x09\x03\x0c9\x10\x03\x0d9\x0c\x03\xcf`;\x03" + + "\xcf`>\x03\xcf`9\x03\xcf`8\x03\xcf`7\x03\xcf`*\x03\xcf`-\x03\xcf`,\x03" + + "\x0d\x1b\x1a\x03\x0d\x1b&\x03\x0c=.\x03\x0c=%\x03\x0c>\x1e\x03\x0c>\x14" + + "\x03\x0c?\x06\x03\x0c?\x0b\x03\x0c?\x0c\x03\x0c?\x0d\x03\x0c?\x02\x03" + + "\x0c>\x0f\x03\x0c>\x08\x03\x0c>\x09\x03\x0c>,\x03\x0c>\x0c\x03\x0c?\x13" + + "\x03\x0c?\x16\x03\x0c?\x15\x03\x0c?\x1c\x03\x0c?\x1f\x03\x0c?\x1d\x03" + + "\x0c?\x1a\x03\x0c?\x17\x03\x0c?\x08\x03\x0c?\x09\x03\x0c?\x0e\x03\x0c?" + + "\x04\x03\x0c?\x05\x03\x0c" + + "\x03\x0c=2\x03\x0c=6\x03\x0c<\x07\x03\x0c<\x05\x03\x0e:!\x03\x0e:#\x03" + + "\x0e8\x09\x03\x0e:&\x03\x0e8\x0b\x03\x0e:$\x03\x0e:,\x03\x0e8\x1a\x03" + + "\x0e8\x1e\x03\x0e:*\x03\x0e:7\x03\x0e:5\x03\x0e:;\x03\x0e:\x15\x03\x0e:<" + + "\x03\x0e:4\x03\x0e:'\x03\x0e:-\x03\x0e:%\x03\x0e:?\x03\x0e:=\x03\x0e:)" + + "\x03\x0e:/\x03\xcfs'\x03\x0d=\x0f\x03\x0d+*\x03\x0d99\x03\x0d9;\x03\x0d9" + + "?\x03\x0d)\x0d\x03\x0d(%\x02\x01\x18\x02\x01(\x02\x03'\x02\x03)\x02\x03+" + + "\x02\x03/\x02\x03\x19\x02\x03\x1b\x02\x03\x1f\x03\x0d\x22\x18\x03\x0d" + + "\x22\x1a\x03\x0d\x22'\x03\x0d\x22/\x03\x0d\x223\x03\x0d\x22$\x02\x01\x1e" + + "\x03\x0f$!\x03\x0f87\x03\x0f4\x0e\x03\x0f5\x1d\x03\x06'\x03\x03\x0f\x08" + + "\x18\x03\x0f\x0d\x1b\x03\x0e2=\x03\x0e;\x08\x03\x0e:\x0b\x03\x0e\x06$" + + "\x03\x0e\x0d)\x03\x0e\x16\x1f\x03\x0e\x16\x1b\x03\x0d$\x0a\x03\x05,\x1d" + + "\x03\x0d. \x03\x0d.#\x03\x0c(/\x03\x09%\x02\x03\x0d90\x03\x0d\x0e4\x03" + + "\x0d\x0d\x0f\x03\x0c#\x00\x03\x0c,\x1e\x03\x0c2\x0e\x03\x0c\x01\x17\x03" + + "\x0c\x09:\x03\x0e\x173\x03\x0c\x08\x03\x03\x0c\x11\x07\x03\x0c\x10\x18" + + "\x03\x0c\x1f\x1c\x03\x0c\x19\x0e\x03\x0c\x1a\x1f\x03\x0f0>\x03\x0b->\x03" + + "\x0b<+\x03\x0b8\x13\x03\x0b\x043\x03\x0b\x14\x03\x03\x0b\x16%\x03\x0d" + + "\x22&\x03\x0b\x1a\x1a\x03\x0b\x1a\x04\x03\x0a%9\x03\x0a&2\x03\x0a&0\x03" + + "\x0a!\x1a\x03\x0a!7\x03\x0a5\x10\x03\x0a=4\x03\x0a?\x0e\x03\x0a>\x10\x03" + + "\x0a\x00 \x03\x0a\x0f:\x03\x0a\x0f9\x03\x0a\x0b\x0a\x03\x0a\x17%\x03\x0a" + + "\x1b-\x03\x09-\x1a\x03\x09,4\x03\x09.,\x03\x09)\x09\x03\x096!\x03\x091" + + "\x1f\x03\x093\x16\x03\x0c+\x1f\x03\x098 \x03\x098=\x03\x0c(\x1a\x03\x0c(" + + "\x16\x03\x09\x0a+\x03\x09\x16\x12\x03\x09\x13\x0e\x03\x09\x153\x03\x08)!" + + "\x03\x09\x1a\x01\x03\x09\x18\x01\x03\x08%#\x03\x08>\x22\x03\x08\x05%\x03" + + "\x08\x02*\x03\x08\x15;\x03\x08\x1b7\x03\x0f\x07\x1d\x03\x0f\x04\x03\x03" + + "\x070\x0c\x03\x07;\x0b\x03\x07\x08\x17\x03\x07\x12\x06\x03\x06/-\x03\x06" + + "71\x03\x065+\x03\x06>7\x03\x06\x049\x03\x05+\x1e\x03\x05,\x17\x03\x05 " + + "\x1d\x03\x05\x22\x05\x03\x050\x1d" + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *idnaTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return idnaValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = idnaIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *idnaTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return idnaValues[c0] + } + i := idnaIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *idnaTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return idnaValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := idnaIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = idnaIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = idnaIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *idnaTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return idnaValues[c0] + } + i := idnaIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = idnaIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// idnaTrie. Total size: 31598 bytes (30.86 KiB). Checksum: d3118eda0d6b5360. +type idnaTrie struct{} + +func newIdnaTrie(i int) *idnaTrie { + return &idnaTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *idnaTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 133: + return uint16(idnaValues[n<<6+uint32(b)]) + default: + n -= 133 + return uint16(idnaSparse.lookup(n, b)) + } +} + +// idnaValues: 135 blocks, 8640 entries, 17280 bytes +// The third block is the zero block. +var idnaValues = [8640]uint16{ + // Block 0x0, offset 0x0 + 0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080, + 0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080, + 0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080, + 0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080, + 0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080, + 0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080, + 0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080, + 0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080, + 0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008, + 0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080, + 0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080, + // Block 0x1, offset 0x40 + 0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105, + 0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105, + 0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105, + 0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105, + 0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080, + 0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008, + 0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008, + 0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008, + 0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008, + 0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080, + 0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040, + 0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040, + 0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040, + 0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040, + 0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040, + 0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018, + 0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x0012, 0xe9: 0x0018, + 0xea: 0x0019, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x0022, + 0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0029, 0xf3: 0x0031, 0xf4: 0x003a, 0xf5: 0x0005, + 0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x0042, 0xf9: 0x0049, 0xfa: 0x0051, 0xfb: 0x0018, + 0xfc: 0x0059, 0xfd: 0x0061, 0xfe: 0x0069, 0xff: 0x0018, + // Block 0x4, offset 0x100 + 0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008, + 0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008, + 0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008, + 0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008, + 0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008, + 0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008, + 0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008, + 0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008, + 0x130: 0x0071, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008, + 0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d, + 0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0079, + // Block 0x5, offset 0x140 + 0x140: 0x0079, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d, + 0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x0081, 0x14a: 0xe00d, 0x14b: 0x0008, + 0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008, + 0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008, + 0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008, + 0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008, + 0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008, + 0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008, + 0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008, + 0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d, + 0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x0089, + // Block 0x6, offset 0x180 + 0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008, + 0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d, + 0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d, + 0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d, + 0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155, + 0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008, + 0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d, + 0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd, + 0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d, + 0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008, + 0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x0091, 0x1c5: 0x0091, + 0x1c6: 0x0091, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d, + 0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d, + 0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d, + 0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008, + 0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008, + 0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008, + 0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008, + 0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008, + 0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008, + 0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008, + // Block 0x8, offset 0x200 + 0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008, + 0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008, + 0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008, + 0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008, + 0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008, + 0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008, + 0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008, + 0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008, + 0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008, + 0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0099, 0x23b: 0xe03d, + 0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x00a1, 0x23f: 0x0008, + // Block 0x9, offset 0x240 + 0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018, + 0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008, + 0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008, + 0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018, + 0x258: 0x00d2, 0x259: 0x00da, 0x25a: 0x00e2, 0x25b: 0x00ea, 0x25c: 0x00f2, 0x25d: 0x00fa, + 0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0101, 0x262: 0x0089, 0x263: 0x0109, + 0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018, + 0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018, + 0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018, + 0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018, + 0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018, + // Block 0xa, offset 0x280 + 0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0111, 0x285: 0x040d, + 0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308, + 0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308, + 0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308, + 0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308, + 0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308, + 0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308, + 0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308, + 0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008, + 0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x011a, 0x2bb: 0x0008, + 0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x0122, 0x2bf: 0x043d, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x003a, 0x2c5: 0x012a, + 0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040, + 0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105, + 0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105, + 0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105, + 0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d, + 0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d, + 0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008, + 0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008, + 0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008, + 0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008, + // Block 0xc, offset 0x300 + 0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008, + 0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008, + 0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd, + 0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008, + 0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008, + 0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008, + 0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008, + 0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008, + 0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd, + 0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008, + 0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d, + // Block 0xd, offset 0x340 + 0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008, + 0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008, + 0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008, + 0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008, + 0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008, + 0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008, + 0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008, + 0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008, + 0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008, + 0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008, + 0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008, + // Block 0xe, offset 0x380 + 0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308, + 0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008, + 0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008, + 0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008, + 0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008, + 0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008, + 0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008, + 0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008, + 0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008, + 0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008, + 0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d, + 0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d, + 0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008, + 0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008, + 0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008, + 0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008, + 0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008, + 0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008, + 0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008, + 0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008, + 0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008, + // Block 0x10, offset 0x400 + 0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008, + 0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008, + 0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008, + 0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008, + 0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008, + 0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008, + 0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008, + 0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008, + 0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5, + 0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5, + 0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5, + // Block 0x11, offset 0x440 + 0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840, + 0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818, + 0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308, + 0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308, + 0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0818, + 0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08, + 0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08, + 0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08, + 0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08, + 0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08, + 0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08, + // Block 0x12, offset 0x480 + 0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08, + 0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308, + 0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308, + 0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308, + 0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308, + 0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808, + 0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808, + 0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08, + 0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0139, + 0x4b6: 0x0141, 0x4b7: 0x0149, 0x4b8: 0x0151, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08, + 0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08, + 0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08, + 0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08, + 0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308, + 0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840, + 0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308, + 0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018, + 0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08, + 0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008, + 0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08, + 0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08, + // Block 0x14, offset 0x500 + 0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818, + 0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818, + 0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308, + 0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08, + 0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08, + 0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08, + 0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08, + 0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08, + 0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308, + 0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308, + 0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308, + // Block 0x15, offset 0x540 + 0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08, + 0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08, + 0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08, + 0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0c08, 0x557: 0x0c08, + 0x558: 0x0c08, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040, + 0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08, + 0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08, + 0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040, + 0x570: 0x0c08, 0x571: 0x0c08, 0x572: 0x0c08, 0x573: 0x0c08, 0x574: 0x0c08, 0x575: 0x0c08, + 0x576: 0x0c08, 0x577: 0x0c08, 0x578: 0x0c08, 0x579: 0x0c08, 0x57a: 0x0c08, 0x57b: 0x0c08, + 0x57c: 0x0c08, 0x57d: 0x0c08, 0x57e: 0x0c08, 0x57f: 0x0c08, + // Block 0x16, offset 0x580 + 0x580: 0x0c08, 0x581: 0x0c08, 0x582: 0x0c08, 0x583: 0x0808, 0x584: 0x0808, 0x585: 0x0808, + 0x586: 0x0a08, 0x587: 0x0808, 0x588: 0x0818, 0x589: 0x0a08, 0x58a: 0x0a08, 0x58b: 0x0a08, + 0x58c: 0x0a08, 0x58d: 0x0a08, 0x58e: 0x0c08, 0x58f: 0x0040, 0x590: 0x0840, 0x591: 0x0840, + 0x592: 0x0040, 0x593: 0x0040, 0x594: 0x0040, 0x595: 0x0040, 0x596: 0x0040, 0x597: 0x0040, + 0x598: 0x3308, 0x599: 0x3308, 0x59a: 0x3308, 0x59b: 0x3308, 0x59c: 0x3308, 0x59d: 0x3308, + 0x59e: 0x3308, 0x59f: 0x3308, 0x5a0: 0x0a08, 0x5a1: 0x0a08, 0x5a2: 0x0a08, 0x5a3: 0x0a08, + 0x5a4: 0x0a08, 0x5a5: 0x0a08, 0x5a6: 0x0a08, 0x5a7: 0x0a08, 0x5a8: 0x0a08, 0x5a9: 0x0a08, + 0x5aa: 0x0c08, 0x5ab: 0x0c08, 0x5ac: 0x0c08, 0x5ad: 0x0808, 0x5ae: 0x0c08, 0x5af: 0x0a08, + 0x5b0: 0x0a08, 0x5b1: 0x0c08, 0x5b2: 0x0c08, 0x5b3: 0x0a08, 0x5b4: 0x0a08, 0x5b5: 0x0a08, + 0x5b6: 0x0a08, 0x5b7: 0x0a08, 0x5b8: 0x0a08, 0x5b9: 0x0c08, 0x5ba: 0x0a08, 0x5bb: 0x0a08, + 0x5bc: 0x0a08, 0x5bd: 0x0a08, 0x5be: 0x0a08, 0x5bf: 0x0a08, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x3008, 0x5c1: 0x3308, 0x5c2: 0x3308, 0x5c3: 0x3308, 0x5c4: 0x3308, 0x5c5: 0x3308, + 0x5c6: 0x3308, 0x5c7: 0x3308, 0x5c8: 0x3308, 0x5c9: 0x3008, 0x5ca: 0x3008, 0x5cb: 0x3008, + 0x5cc: 0x3008, 0x5cd: 0x3b08, 0x5ce: 0x3008, 0x5cf: 0x3008, 0x5d0: 0x0008, 0x5d1: 0x3308, + 0x5d2: 0x3308, 0x5d3: 0x3308, 0x5d4: 0x3308, 0x5d5: 0x3308, 0x5d6: 0x3308, 0x5d7: 0x3308, + 0x5d8: 0x0159, 0x5d9: 0x0161, 0x5da: 0x0169, 0x5db: 0x0171, 0x5dc: 0x0179, 0x5dd: 0x0181, + 0x5de: 0x0189, 0x5df: 0x0191, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x3308, 0x5e3: 0x3308, + 0x5e4: 0x0018, 0x5e5: 0x0018, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0008, + 0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008, + 0x5f0: 0x0018, 0x5f1: 0x0008, 0x5f2: 0x0008, 0x5f3: 0x0008, 0x5f4: 0x0008, 0x5f5: 0x0008, + 0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0008, 0x5fb: 0x0008, + 0x5fc: 0x0008, 0x5fd: 0x0008, 0x5fe: 0x0008, 0x5ff: 0x0008, + // Block 0x18, offset 0x600 + 0x600: 0x0008, 0x601: 0x3308, 0x602: 0x3008, 0x603: 0x3008, 0x604: 0x0040, 0x605: 0x0008, + 0x606: 0x0008, 0x607: 0x0008, 0x608: 0x0008, 0x609: 0x0008, 0x60a: 0x0008, 0x60b: 0x0008, + 0x60c: 0x0008, 0x60d: 0x0040, 0x60e: 0x0040, 0x60f: 0x0008, 0x610: 0x0008, 0x611: 0x0040, + 0x612: 0x0040, 0x613: 0x0008, 0x614: 0x0008, 0x615: 0x0008, 0x616: 0x0008, 0x617: 0x0008, + 0x618: 0x0008, 0x619: 0x0008, 0x61a: 0x0008, 0x61b: 0x0008, 0x61c: 0x0008, 0x61d: 0x0008, + 0x61e: 0x0008, 0x61f: 0x0008, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x0008, 0x623: 0x0008, + 0x624: 0x0008, 0x625: 0x0008, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0040, + 0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008, + 0x630: 0x0008, 0x631: 0x0040, 0x632: 0x0008, 0x633: 0x0040, 0x634: 0x0040, 0x635: 0x0040, + 0x636: 0x0008, 0x637: 0x0008, 0x638: 0x0008, 0x639: 0x0008, 0x63a: 0x0040, 0x63b: 0x0040, + 0x63c: 0x3308, 0x63d: 0x0008, 0x63e: 0x3008, 0x63f: 0x3008, + // Block 0x19, offset 0x640 + 0x640: 0x3008, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3308, 0x644: 0x3308, 0x645: 0x0040, + 0x646: 0x0040, 0x647: 0x3008, 0x648: 0x3008, 0x649: 0x0040, 0x64a: 0x0040, 0x64b: 0x3008, + 0x64c: 0x3008, 0x64d: 0x3b08, 0x64e: 0x0008, 0x64f: 0x0040, 0x650: 0x0040, 0x651: 0x0040, + 0x652: 0x0040, 0x653: 0x0040, 0x654: 0x0040, 0x655: 0x0040, 0x656: 0x0040, 0x657: 0x3008, + 0x658: 0x0040, 0x659: 0x0040, 0x65a: 0x0040, 0x65b: 0x0040, 0x65c: 0x0199, 0x65d: 0x01a1, + 0x65e: 0x0040, 0x65f: 0x01a9, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x3308, 0x663: 0x3308, + 0x664: 0x0040, 0x665: 0x0040, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0008, + 0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008, + 0x670: 0x0008, 0x671: 0x0008, 0x672: 0x0018, 0x673: 0x0018, 0x674: 0x0018, 0x675: 0x0018, + 0x676: 0x0018, 0x677: 0x0018, 0x678: 0x0018, 0x679: 0x0018, 0x67a: 0x0018, 0x67b: 0x0018, + 0x67c: 0x0008, 0x67d: 0x0018, 0x67e: 0x3308, 0x67f: 0x0040, + // Block 0x1a, offset 0x680 + 0x680: 0x0040, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x3008, 0x684: 0x0040, 0x685: 0x0008, + 0x686: 0x0008, 0x687: 0x0008, 0x688: 0x0008, 0x689: 0x0008, 0x68a: 0x0008, 0x68b: 0x0040, + 0x68c: 0x0040, 0x68d: 0x0040, 0x68e: 0x0040, 0x68f: 0x0008, 0x690: 0x0008, 0x691: 0x0040, + 0x692: 0x0040, 0x693: 0x0008, 0x694: 0x0008, 0x695: 0x0008, 0x696: 0x0008, 0x697: 0x0008, + 0x698: 0x0008, 0x699: 0x0008, 0x69a: 0x0008, 0x69b: 0x0008, 0x69c: 0x0008, 0x69d: 0x0008, + 0x69e: 0x0008, 0x69f: 0x0008, 0x6a0: 0x0008, 0x6a1: 0x0008, 0x6a2: 0x0008, 0x6a3: 0x0008, + 0x6a4: 0x0008, 0x6a5: 0x0008, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0040, + 0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008, + 0x6b0: 0x0008, 0x6b1: 0x0040, 0x6b2: 0x0008, 0x6b3: 0x01b1, 0x6b4: 0x0040, 0x6b5: 0x0008, + 0x6b6: 0x01b9, 0x6b7: 0x0040, 0x6b8: 0x0008, 0x6b9: 0x0008, 0x6ba: 0x0040, 0x6bb: 0x0040, + 0x6bc: 0x3308, 0x6bd: 0x0040, 0x6be: 0x3008, 0x6bf: 0x3008, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3008, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x0040, 0x6c4: 0x0040, 0x6c5: 0x0040, + 0x6c6: 0x0040, 0x6c7: 0x3308, 0x6c8: 0x3308, 0x6c9: 0x0040, 0x6ca: 0x0040, 0x6cb: 0x3308, + 0x6cc: 0x3308, 0x6cd: 0x3b08, 0x6ce: 0x0040, 0x6cf: 0x0040, 0x6d0: 0x0040, 0x6d1: 0x3308, + 0x6d2: 0x0040, 0x6d3: 0x0040, 0x6d4: 0x0040, 0x6d5: 0x0040, 0x6d6: 0x0040, 0x6d7: 0x0040, + 0x6d8: 0x0040, 0x6d9: 0x01c1, 0x6da: 0x01c9, 0x6db: 0x01d1, 0x6dc: 0x0008, 0x6dd: 0x0040, + 0x6de: 0x01d9, 0x6df: 0x0040, 0x6e0: 0x0040, 0x6e1: 0x0040, 0x6e2: 0x0040, 0x6e3: 0x0040, + 0x6e4: 0x0040, 0x6e5: 0x0040, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0008, + 0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008, + 0x6f0: 0x3308, 0x6f1: 0x3308, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0008, 0x6f5: 0x3308, + 0x6f6: 0x0018, 0x6f7: 0x0040, 0x6f8: 0x0040, 0x6f9: 0x0040, 0x6fa: 0x0040, 0x6fb: 0x0040, + 0x6fc: 0x0040, 0x6fd: 0x0040, 0x6fe: 0x0040, 0x6ff: 0x0040, + // Block 0x1c, offset 0x700 + 0x700: 0x0040, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3008, 0x704: 0x0040, 0x705: 0x0008, + 0x706: 0x0008, 0x707: 0x0008, 0x708: 0x0008, 0x709: 0x0008, 0x70a: 0x0008, 0x70b: 0x0008, + 0x70c: 0x0008, 0x70d: 0x0008, 0x70e: 0x0040, 0x70f: 0x0008, 0x710: 0x0008, 0x711: 0x0008, + 0x712: 0x0040, 0x713: 0x0008, 0x714: 0x0008, 0x715: 0x0008, 0x716: 0x0008, 0x717: 0x0008, + 0x718: 0x0008, 0x719: 0x0008, 0x71a: 0x0008, 0x71b: 0x0008, 0x71c: 0x0008, 0x71d: 0x0008, + 0x71e: 0x0008, 0x71f: 0x0008, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x0008, 0x723: 0x0008, + 0x724: 0x0008, 0x725: 0x0008, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0040, + 0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008, + 0x730: 0x0008, 0x731: 0x0040, 0x732: 0x0008, 0x733: 0x0008, 0x734: 0x0040, 0x735: 0x0008, + 0x736: 0x0008, 0x737: 0x0008, 0x738: 0x0008, 0x739: 0x0008, 0x73a: 0x0040, 0x73b: 0x0040, + 0x73c: 0x3308, 0x73d: 0x0008, 0x73e: 0x3008, 0x73f: 0x3008, + // Block 0x1d, offset 0x740 + 0x740: 0x3008, 0x741: 0x3308, 0x742: 0x3308, 0x743: 0x3308, 0x744: 0x3308, 0x745: 0x3308, + 0x746: 0x0040, 0x747: 0x3308, 0x748: 0x3308, 0x749: 0x3008, 0x74a: 0x0040, 0x74b: 0x3008, + 0x74c: 0x3008, 0x74d: 0x3b08, 0x74e: 0x0040, 0x74f: 0x0040, 0x750: 0x0008, 0x751: 0x0040, + 0x752: 0x0040, 0x753: 0x0040, 0x754: 0x0040, 0x755: 0x0040, 0x756: 0x0040, 0x757: 0x0040, + 0x758: 0x0040, 0x759: 0x0040, 0x75a: 0x0040, 0x75b: 0x0040, 0x75c: 0x0040, 0x75d: 0x0040, + 0x75e: 0x0040, 0x75f: 0x0040, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x3308, 0x763: 0x3308, + 0x764: 0x0040, 0x765: 0x0040, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0008, + 0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008, + 0x770: 0x0018, 0x771: 0x0018, 0x772: 0x0040, 0x773: 0x0040, 0x774: 0x0040, 0x775: 0x0040, + 0x776: 0x0040, 0x777: 0x0040, 0x778: 0x0040, 0x779: 0x0008, 0x77a: 0x3308, 0x77b: 0x3308, + 0x77c: 0x3308, 0x77d: 0x3308, 0x77e: 0x3308, 0x77f: 0x3308, + // Block 0x1e, offset 0x780 + 0x780: 0x0040, 0x781: 0x3308, 0x782: 0x3008, 0x783: 0x3008, 0x784: 0x0040, 0x785: 0x0008, + 0x786: 0x0008, 0x787: 0x0008, 0x788: 0x0008, 0x789: 0x0008, 0x78a: 0x0008, 0x78b: 0x0008, + 0x78c: 0x0008, 0x78d: 0x0040, 0x78e: 0x0040, 0x78f: 0x0008, 0x790: 0x0008, 0x791: 0x0040, + 0x792: 0x0040, 0x793: 0x0008, 0x794: 0x0008, 0x795: 0x0008, 0x796: 0x0008, 0x797: 0x0008, + 0x798: 0x0008, 0x799: 0x0008, 0x79a: 0x0008, 0x79b: 0x0008, 0x79c: 0x0008, 0x79d: 0x0008, + 0x79e: 0x0008, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x0008, 0x7a3: 0x0008, + 0x7a4: 0x0008, 0x7a5: 0x0008, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0040, + 0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008, + 0x7b0: 0x0008, 0x7b1: 0x0040, 0x7b2: 0x0008, 0x7b3: 0x0008, 0x7b4: 0x0040, 0x7b5: 0x0008, + 0x7b6: 0x0008, 0x7b7: 0x0008, 0x7b8: 0x0008, 0x7b9: 0x0008, 0x7ba: 0x0040, 0x7bb: 0x0040, + 0x7bc: 0x3308, 0x7bd: 0x0008, 0x7be: 0x3008, 0x7bf: 0x3308, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x3008, 0x7c1: 0x3308, 0x7c2: 0x3308, 0x7c3: 0x3308, 0x7c4: 0x3308, 0x7c5: 0x0040, + 0x7c6: 0x0040, 0x7c7: 0x3008, 0x7c8: 0x3008, 0x7c9: 0x0040, 0x7ca: 0x0040, 0x7cb: 0x3008, + 0x7cc: 0x3008, 0x7cd: 0x3b08, 0x7ce: 0x0040, 0x7cf: 0x0040, 0x7d0: 0x0040, 0x7d1: 0x0040, + 0x7d2: 0x0040, 0x7d3: 0x0040, 0x7d4: 0x0040, 0x7d5: 0x3308, 0x7d6: 0x3308, 0x7d7: 0x3008, + 0x7d8: 0x0040, 0x7d9: 0x0040, 0x7da: 0x0040, 0x7db: 0x0040, 0x7dc: 0x01e1, 0x7dd: 0x01e9, + 0x7de: 0x0040, 0x7df: 0x0008, 0x7e0: 0x0008, 0x7e1: 0x0008, 0x7e2: 0x3308, 0x7e3: 0x3308, + 0x7e4: 0x0040, 0x7e5: 0x0040, 0x7e6: 0x0008, 0x7e7: 0x0008, 0x7e8: 0x0008, 0x7e9: 0x0008, + 0x7ea: 0x0008, 0x7eb: 0x0008, 0x7ec: 0x0008, 0x7ed: 0x0008, 0x7ee: 0x0008, 0x7ef: 0x0008, + 0x7f0: 0x0018, 0x7f1: 0x0008, 0x7f2: 0x0018, 0x7f3: 0x0018, 0x7f4: 0x0018, 0x7f5: 0x0018, + 0x7f6: 0x0018, 0x7f7: 0x0018, 0x7f8: 0x0040, 0x7f9: 0x0040, 0x7fa: 0x0040, 0x7fb: 0x0040, + 0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x0040, 0x7ff: 0x0040, + // Block 0x20, offset 0x800 + 0x800: 0x0040, 0x801: 0x0040, 0x802: 0x3308, 0x803: 0x0008, 0x804: 0x0040, 0x805: 0x0008, + 0x806: 0x0008, 0x807: 0x0008, 0x808: 0x0008, 0x809: 0x0008, 0x80a: 0x0008, 0x80b: 0x0040, + 0x80c: 0x0040, 0x80d: 0x0040, 0x80e: 0x0008, 0x80f: 0x0008, 0x810: 0x0008, 0x811: 0x0040, + 0x812: 0x0008, 0x813: 0x0008, 0x814: 0x0008, 0x815: 0x0008, 0x816: 0x0040, 0x817: 0x0040, + 0x818: 0x0040, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0008, 0x81d: 0x0040, + 0x81e: 0x0008, 0x81f: 0x0008, 0x820: 0x0040, 0x821: 0x0040, 0x822: 0x0040, 0x823: 0x0008, + 0x824: 0x0008, 0x825: 0x0040, 0x826: 0x0040, 0x827: 0x0040, 0x828: 0x0008, 0x829: 0x0008, + 0x82a: 0x0008, 0x82b: 0x0040, 0x82c: 0x0040, 0x82d: 0x0040, 0x82e: 0x0008, 0x82f: 0x0008, + 0x830: 0x0008, 0x831: 0x0008, 0x832: 0x0008, 0x833: 0x0008, 0x834: 0x0008, 0x835: 0x0008, + 0x836: 0x0008, 0x837: 0x0008, 0x838: 0x0008, 0x839: 0x0008, 0x83a: 0x0040, 0x83b: 0x0040, + 0x83c: 0x0040, 0x83d: 0x0040, 0x83e: 0x3008, 0x83f: 0x3008, + // Block 0x21, offset 0x840 + 0x840: 0x3308, 0x841: 0x3008, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x3008, 0x845: 0x0040, + 0x846: 0x3308, 0x847: 0x3308, 0x848: 0x3308, 0x849: 0x0040, 0x84a: 0x3308, 0x84b: 0x3308, + 0x84c: 0x3308, 0x84d: 0x3b08, 0x84e: 0x0040, 0x84f: 0x0040, 0x850: 0x0040, 0x851: 0x0040, + 0x852: 0x0040, 0x853: 0x0040, 0x854: 0x0040, 0x855: 0x3308, 0x856: 0x3308, 0x857: 0x0040, + 0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0040, 0x85c: 0x0040, 0x85d: 0x0008, + 0x85e: 0x0040, 0x85f: 0x0040, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x3308, 0x863: 0x3308, + 0x864: 0x0040, 0x865: 0x0040, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0008, + 0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008, + 0x870: 0x0040, 0x871: 0x0040, 0x872: 0x0040, 0x873: 0x0040, 0x874: 0x0040, 0x875: 0x0040, + 0x876: 0x0040, 0x877: 0x0018, 0x878: 0x0018, 0x879: 0x0018, 0x87a: 0x0018, 0x87b: 0x0018, + 0x87c: 0x0018, 0x87d: 0x0018, 0x87e: 0x0018, 0x87f: 0x0018, + // Block 0x22, offset 0x880 + 0x880: 0x0008, 0x881: 0x3308, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x0018, 0x885: 0x0008, + 0x886: 0x0008, 0x887: 0x0008, 0x888: 0x0008, 0x889: 0x0008, 0x88a: 0x0008, 0x88b: 0x0008, + 0x88c: 0x0008, 0x88d: 0x0040, 0x88e: 0x0008, 0x88f: 0x0008, 0x890: 0x0008, 0x891: 0x0040, + 0x892: 0x0008, 0x893: 0x0008, 0x894: 0x0008, 0x895: 0x0008, 0x896: 0x0008, 0x897: 0x0008, + 0x898: 0x0008, 0x899: 0x0008, 0x89a: 0x0008, 0x89b: 0x0008, 0x89c: 0x0008, 0x89d: 0x0008, + 0x89e: 0x0008, 0x89f: 0x0008, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x0008, 0x8a3: 0x0008, + 0x8a4: 0x0008, 0x8a5: 0x0008, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0040, + 0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008, + 0x8b0: 0x0008, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0008, 0x8b4: 0x0040, 0x8b5: 0x0008, + 0x8b6: 0x0008, 0x8b7: 0x0008, 0x8b8: 0x0008, 0x8b9: 0x0008, 0x8ba: 0x0040, 0x8bb: 0x0040, + 0x8bc: 0x3308, 0x8bd: 0x0008, 0x8be: 0x3008, 0x8bf: 0x3308, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x3008, 0x8c1: 0x3008, 0x8c2: 0x3008, 0x8c3: 0x3008, 0x8c4: 0x3008, 0x8c5: 0x0040, + 0x8c6: 0x3308, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008, + 0x8cc: 0x3308, 0x8cd: 0x3b08, 0x8ce: 0x0040, 0x8cf: 0x0040, 0x8d0: 0x0040, 0x8d1: 0x0040, + 0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0040, 0x8d5: 0x3008, 0x8d6: 0x3008, 0x8d7: 0x0040, + 0x8d8: 0x0040, 0x8d9: 0x0040, 0x8da: 0x0040, 0x8db: 0x0040, 0x8dc: 0x0040, 0x8dd: 0x0008, + 0x8de: 0x0008, 0x8df: 0x0040, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308, + 0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008, + 0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008, + 0x8f0: 0x0040, 0x8f1: 0x0008, 0x8f2: 0x0008, 0x8f3: 0x3008, 0x8f4: 0x0040, 0x8f5: 0x0040, + 0x8f6: 0x0040, 0x8f7: 0x0040, 0x8f8: 0x0040, 0x8f9: 0x0040, 0x8fa: 0x0040, 0x8fb: 0x0040, + 0x8fc: 0x0040, 0x8fd: 0x0040, 0x8fe: 0x0040, 0x8ff: 0x0040, + // Block 0x24, offset 0x900 + 0x900: 0x3008, 0x901: 0x3308, 0x902: 0x3308, 0x903: 0x3308, 0x904: 0x3308, 0x905: 0x0040, + 0x906: 0x3008, 0x907: 0x3008, 0x908: 0x3008, 0x909: 0x0040, 0x90a: 0x3008, 0x90b: 0x3008, + 0x90c: 0x3008, 0x90d: 0x3b08, 0x90e: 0x0008, 0x90f: 0x0018, 0x910: 0x0040, 0x911: 0x0040, + 0x912: 0x0040, 0x913: 0x0040, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x3008, + 0x918: 0x0018, 0x919: 0x0018, 0x91a: 0x0018, 0x91b: 0x0018, 0x91c: 0x0018, 0x91d: 0x0018, + 0x91e: 0x0018, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x3308, 0x923: 0x3308, + 0x924: 0x0040, 0x925: 0x0040, 0x926: 0x0008, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0008, + 0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008, + 0x930: 0x0018, 0x931: 0x0018, 0x932: 0x0018, 0x933: 0x0018, 0x934: 0x0018, 0x935: 0x0018, + 0x936: 0x0018, 0x937: 0x0018, 0x938: 0x0018, 0x939: 0x0018, 0x93a: 0x0008, 0x93b: 0x0008, + 0x93c: 0x0008, 0x93d: 0x0008, 0x93e: 0x0008, 0x93f: 0x0008, + // Block 0x25, offset 0x940 + 0x940: 0x0040, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x0040, 0x944: 0x0008, 0x945: 0x0040, + 0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0008, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0040, + 0x94c: 0x0008, 0x94d: 0x0008, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008, + 0x952: 0x0008, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0008, + 0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0008, 0x95d: 0x0008, + 0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008, + 0x964: 0x0040, 0x965: 0x0008, 0x966: 0x0040, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0008, + 0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0008, 0x96e: 0x0008, 0x96f: 0x0008, + 0x970: 0x0008, 0x971: 0x3308, 0x972: 0x0008, 0x973: 0x01f9, 0x974: 0x3308, 0x975: 0x3308, + 0x976: 0x3308, 0x977: 0x3308, 0x978: 0x3308, 0x979: 0x3308, 0x97a: 0x3b08, 0x97b: 0x3308, + 0x97c: 0x3308, 0x97d: 0x0008, 0x97e: 0x0040, 0x97f: 0x0040, + // Block 0x26, offset 0x980 + 0x980: 0x0008, 0x981: 0x0008, 0x982: 0x0008, 0x983: 0x0211, 0x984: 0x0008, 0x985: 0x0008, + 0x986: 0x0008, 0x987: 0x0008, 0x988: 0x0040, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008, + 0x98c: 0x0008, 0x98d: 0x0219, 0x98e: 0x0008, 0x98f: 0x0008, 0x990: 0x0008, 0x991: 0x0008, + 0x992: 0x0221, 0x993: 0x0008, 0x994: 0x0008, 0x995: 0x0008, 0x996: 0x0008, 0x997: 0x0229, + 0x998: 0x0008, 0x999: 0x0008, 0x99a: 0x0008, 0x99b: 0x0008, 0x99c: 0x0231, 0x99d: 0x0008, + 0x99e: 0x0008, 0x99f: 0x0008, 0x9a0: 0x0008, 0x9a1: 0x0008, 0x9a2: 0x0008, 0x9a3: 0x0008, + 0x9a4: 0x0008, 0x9a5: 0x0008, 0x9a6: 0x0008, 0x9a7: 0x0008, 0x9a8: 0x0008, 0x9a9: 0x0239, + 0x9aa: 0x0008, 0x9ab: 0x0008, 0x9ac: 0x0008, 0x9ad: 0x0040, 0x9ae: 0x0040, 0x9af: 0x0040, + 0x9b0: 0x0040, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x0241, 0x9b4: 0x3308, 0x9b5: 0x0249, + 0x9b6: 0x0251, 0x9b7: 0x0259, 0x9b8: 0x0261, 0x9b9: 0x0269, 0x9ba: 0x3308, 0x9bb: 0x3308, + 0x9bc: 0x3308, 0x9bd: 0x3308, 0x9be: 0x3308, 0x9bf: 0x3008, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x3308, 0x9c1: 0x0271, 0x9c2: 0x3308, 0x9c3: 0x3308, 0x9c4: 0x3b08, 0x9c5: 0x0018, + 0x9c6: 0x3308, 0x9c7: 0x3308, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008, + 0x9cc: 0x0008, 0x9cd: 0x3308, 0x9ce: 0x3308, 0x9cf: 0x3308, 0x9d0: 0x3308, 0x9d1: 0x3308, + 0x9d2: 0x3308, 0x9d3: 0x0279, 0x9d4: 0x3308, 0x9d5: 0x3308, 0x9d6: 0x3308, 0x9d7: 0x3308, + 0x9d8: 0x0040, 0x9d9: 0x3308, 0x9da: 0x3308, 0x9db: 0x3308, 0x9dc: 0x3308, 0x9dd: 0x0281, + 0x9de: 0x3308, 0x9df: 0x3308, 0x9e0: 0x3308, 0x9e1: 0x3308, 0x9e2: 0x0289, 0x9e3: 0x3308, + 0x9e4: 0x3308, 0x9e5: 0x3308, 0x9e6: 0x3308, 0x9e7: 0x0291, 0x9e8: 0x3308, 0x9e9: 0x3308, + 0x9ea: 0x3308, 0x9eb: 0x3308, 0x9ec: 0x0299, 0x9ed: 0x3308, 0x9ee: 0x3308, 0x9ef: 0x3308, + 0x9f0: 0x3308, 0x9f1: 0x3308, 0x9f2: 0x3308, 0x9f3: 0x3308, 0x9f4: 0x3308, 0x9f5: 0x3308, + 0x9f6: 0x3308, 0x9f7: 0x3308, 0x9f8: 0x3308, 0x9f9: 0x02a1, 0x9fa: 0x3308, 0x9fb: 0x3308, + 0x9fc: 0x3308, 0x9fd: 0x0040, 0x9fe: 0x0018, 0x9ff: 0x0018, + // Block 0x28, offset 0xa00 + 0xa00: 0x0008, 0xa01: 0x0008, 0xa02: 0x0008, 0xa03: 0x0008, 0xa04: 0x0008, 0xa05: 0x0008, + 0xa06: 0x0008, 0xa07: 0x0008, 0xa08: 0x0008, 0xa09: 0x0008, 0xa0a: 0x0008, 0xa0b: 0x0008, + 0xa0c: 0x0008, 0xa0d: 0x0008, 0xa0e: 0x0008, 0xa0f: 0x0008, 0xa10: 0x0008, 0xa11: 0x0008, + 0xa12: 0x0008, 0xa13: 0x0008, 0xa14: 0x0008, 0xa15: 0x0008, 0xa16: 0x0008, 0xa17: 0x0008, + 0xa18: 0x0008, 0xa19: 0x0008, 0xa1a: 0x0008, 0xa1b: 0x0008, 0xa1c: 0x0008, 0xa1d: 0x0008, + 0xa1e: 0x0008, 0xa1f: 0x0008, 0xa20: 0x0008, 0xa21: 0x0008, 0xa22: 0x0008, 0xa23: 0x0008, + 0xa24: 0x0008, 0xa25: 0x0008, 0xa26: 0x0008, 0xa27: 0x0008, 0xa28: 0x0008, 0xa29: 0x0008, + 0xa2a: 0x0008, 0xa2b: 0x0008, 0xa2c: 0x0019, 0xa2d: 0x02e1, 0xa2e: 0x02e9, 0xa2f: 0x0008, + 0xa30: 0x02f1, 0xa31: 0x02f9, 0xa32: 0x0301, 0xa33: 0x0309, 0xa34: 0x00a9, 0xa35: 0x0311, + 0xa36: 0x00b1, 0xa37: 0x0319, 0xa38: 0x0101, 0xa39: 0x0321, 0xa3a: 0x0329, 0xa3b: 0x0008, + 0xa3c: 0x0051, 0xa3d: 0x0331, 0xa3e: 0x0339, 0xa3f: 0x00b9, + // Block 0x29, offset 0xa40 + 0xa40: 0x0341, 0xa41: 0x0349, 0xa42: 0x00c1, 0xa43: 0x0019, 0xa44: 0x0351, 0xa45: 0x0359, + 0xa46: 0x05b5, 0xa47: 0x02e9, 0xa48: 0x02f1, 0xa49: 0x02f9, 0xa4a: 0x0361, 0xa4b: 0x0369, + 0xa4c: 0x0371, 0xa4d: 0x0309, 0xa4e: 0x0008, 0xa4f: 0x0319, 0xa50: 0x0321, 0xa51: 0x0379, + 0xa52: 0x0051, 0xa53: 0x0381, 0xa54: 0x05cd, 0xa55: 0x05cd, 0xa56: 0x0339, 0xa57: 0x0341, + 0xa58: 0x0349, 0xa59: 0x05b5, 0xa5a: 0x0389, 0xa5b: 0x0391, 0xa5c: 0x05e5, 0xa5d: 0x0399, + 0xa5e: 0x03a1, 0xa5f: 0x03a9, 0xa60: 0x03b1, 0xa61: 0x03b9, 0xa62: 0x0311, 0xa63: 0x00b9, + 0xa64: 0x0349, 0xa65: 0x0391, 0xa66: 0x0399, 0xa67: 0x03a1, 0xa68: 0x03c1, 0xa69: 0x03b1, + 0xa6a: 0x03b9, 0xa6b: 0x0008, 0xa6c: 0x0008, 0xa6d: 0x0008, 0xa6e: 0x0008, 0xa6f: 0x0008, + 0xa70: 0x0008, 0xa71: 0x0008, 0xa72: 0x0008, 0xa73: 0x0008, 0xa74: 0x0008, 0xa75: 0x0008, + 0xa76: 0x0008, 0xa77: 0x0008, 0xa78: 0x03c9, 0xa79: 0x0008, 0xa7a: 0x0008, 0xa7b: 0x0008, + 0xa7c: 0x0008, 0xa7d: 0x0008, 0xa7e: 0x0008, 0xa7f: 0x0008, + // Block 0x2a, offset 0xa80 + 0xa80: 0x0008, 0xa81: 0x0008, 0xa82: 0x0008, 0xa83: 0x0008, 0xa84: 0x0008, 0xa85: 0x0008, + 0xa86: 0x0008, 0xa87: 0x0008, 0xa88: 0x0008, 0xa89: 0x0008, 0xa8a: 0x0008, 0xa8b: 0x0008, + 0xa8c: 0x0008, 0xa8d: 0x0008, 0xa8e: 0x0008, 0xa8f: 0x0008, 0xa90: 0x0008, 0xa91: 0x0008, + 0xa92: 0x0008, 0xa93: 0x0008, 0xa94: 0x0008, 0xa95: 0x0008, 0xa96: 0x0008, 0xa97: 0x0008, + 0xa98: 0x0008, 0xa99: 0x0008, 0xa9a: 0x0008, 0xa9b: 0x03d1, 0xa9c: 0x03d9, 0xa9d: 0x03e1, + 0xa9e: 0x03e9, 0xa9f: 0x0371, 0xaa0: 0x03f1, 0xaa1: 0x03f9, 0xaa2: 0x0401, 0xaa3: 0x0409, + 0xaa4: 0x0411, 0xaa5: 0x0419, 0xaa6: 0x0421, 0xaa7: 0x05fd, 0xaa8: 0x0429, 0xaa9: 0x0431, + 0xaaa: 0xe17d, 0xaab: 0x0439, 0xaac: 0x0441, 0xaad: 0x0449, 0xaae: 0x0451, 0xaaf: 0x0459, + 0xab0: 0x0461, 0xab1: 0x0469, 0xab2: 0x0471, 0xab3: 0x0479, 0xab4: 0x0481, 0xab5: 0x0489, + 0xab6: 0x0491, 0xab7: 0x0499, 0xab8: 0x0615, 0xab9: 0x04a1, 0xaba: 0x04a9, 0xabb: 0x04b1, + 0xabc: 0x04b9, 0xabd: 0x04c1, 0xabe: 0x04c9, 0xabf: 0x04d1, + // Block 0x2b, offset 0xac0 + 0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008, + 0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008, + 0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008, + 0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0xe00d, 0xad7: 0x0008, + 0xad8: 0xe00d, 0xad9: 0x0008, 0xada: 0xe00d, 0xadb: 0x0008, 0xadc: 0xe00d, 0xadd: 0x0008, + 0xade: 0xe00d, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008, + 0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008, + 0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008, + 0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008, + 0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008, + 0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008, + // Block 0x2c, offset 0xb00 + 0xb00: 0xe00d, 0xb01: 0x0008, 0xb02: 0xe00d, 0xb03: 0x0008, 0xb04: 0xe00d, 0xb05: 0x0008, + 0xb06: 0xe00d, 0xb07: 0x0008, 0xb08: 0xe00d, 0xb09: 0x0008, 0xb0a: 0xe00d, 0xb0b: 0x0008, + 0xb0c: 0xe00d, 0xb0d: 0x0008, 0xb0e: 0xe00d, 0xb0f: 0x0008, 0xb10: 0xe00d, 0xb11: 0x0008, + 0xb12: 0xe00d, 0xb13: 0x0008, 0xb14: 0xe00d, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008, + 0xb18: 0x0008, 0xb19: 0x0008, 0xb1a: 0x062d, 0xb1b: 0x064d, 0xb1c: 0x0008, 0xb1d: 0x0008, + 0xb1e: 0x04d9, 0xb1f: 0x0008, 0xb20: 0xe00d, 0xb21: 0x0008, 0xb22: 0xe00d, 0xb23: 0x0008, + 0xb24: 0xe00d, 0xb25: 0x0008, 0xb26: 0xe00d, 0xb27: 0x0008, 0xb28: 0xe00d, 0xb29: 0x0008, + 0xb2a: 0xe00d, 0xb2b: 0x0008, 0xb2c: 0xe00d, 0xb2d: 0x0008, 0xb2e: 0xe00d, 0xb2f: 0x0008, + 0xb30: 0xe00d, 0xb31: 0x0008, 0xb32: 0xe00d, 0xb33: 0x0008, 0xb34: 0xe00d, 0xb35: 0x0008, + 0xb36: 0xe00d, 0xb37: 0x0008, 0xb38: 0xe00d, 0xb39: 0x0008, 0xb3a: 0xe00d, 0xb3b: 0x0008, + 0xb3c: 0xe00d, 0xb3d: 0x0008, 0xb3e: 0xe00d, 0xb3f: 0x0008, + // Block 0x2d, offset 0xb40 + 0xb40: 0x0008, 0xb41: 0x0008, 0xb42: 0x0008, 0xb43: 0x0008, 0xb44: 0x0008, 0xb45: 0x0008, + 0xb46: 0x0040, 0xb47: 0x0040, 0xb48: 0xe045, 0xb49: 0xe045, 0xb4a: 0xe045, 0xb4b: 0xe045, + 0xb4c: 0xe045, 0xb4d: 0xe045, 0xb4e: 0x0040, 0xb4f: 0x0040, 0xb50: 0x0008, 0xb51: 0x0008, + 0xb52: 0x0008, 0xb53: 0x0008, 0xb54: 0x0008, 0xb55: 0x0008, 0xb56: 0x0008, 0xb57: 0x0008, + 0xb58: 0x0040, 0xb59: 0xe045, 0xb5a: 0x0040, 0xb5b: 0xe045, 0xb5c: 0x0040, 0xb5d: 0xe045, + 0xb5e: 0x0040, 0xb5f: 0xe045, 0xb60: 0x0008, 0xb61: 0x0008, 0xb62: 0x0008, 0xb63: 0x0008, + 0xb64: 0x0008, 0xb65: 0x0008, 0xb66: 0x0008, 0xb67: 0x0008, 0xb68: 0xe045, 0xb69: 0xe045, + 0xb6a: 0xe045, 0xb6b: 0xe045, 0xb6c: 0xe045, 0xb6d: 0xe045, 0xb6e: 0xe045, 0xb6f: 0xe045, + 0xb70: 0x0008, 0xb71: 0x04e1, 0xb72: 0x0008, 0xb73: 0x04e9, 0xb74: 0x0008, 0xb75: 0x04f1, + 0xb76: 0x0008, 0xb77: 0x04f9, 0xb78: 0x0008, 0xb79: 0x0501, 0xb7a: 0x0008, 0xb7b: 0x0509, + 0xb7c: 0x0008, 0xb7d: 0x0511, 0xb7e: 0x0040, 0xb7f: 0x0040, + // Block 0x2e, offset 0xb80 + 0xb80: 0x0519, 0xb81: 0x0521, 0xb82: 0x0529, 0xb83: 0x0531, 0xb84: 0x0539, 0xb85: 0x0541, + 0xb86: 0x0549, 0xb87: 0x0551, 0xb88: 0x0519, 0xb89: 0x0521, 0xb8a: 0x0529, 0xb8b: 0x0531, + 0xb8c: 0x0539, 0xb8d: 0x0541, 0xb8e: 0x0549, 0xb8f: 0x0551, 0xb90: 0x0559, 0xb91: 0x0561, + 0xb92: 0x0569, 0xb93: 0x0571, 0xb94: 0x0579, 0xb95: 0x0581, 0xb96: 0x0589, 0xb97: 0x0591, + 0xb98: 0x0559, 0xb99: 0x0561, 0xb9a: 0x0569, 0xb9b: 0x0571, 0xb9c: 0x0579, 0xb9d: 0x0581, + 0xb9e: 0x0589, 0xb9f: 0x0591, 0xba0: 0x0599, 0xba1: 0x05a1, 0xba2: 0x05a9, 0xba3: 0x05b1, + 0xba4: 0x05b9, 0xba5: 0x05c1, 0xba6: 0x05c9, 0xba7: 0x05d1, 0xba8: 0x0599, 0xba9: 0x05a1, + 0xbaa: 0x05a9, 0xbab: 0x05b1, 0xbac: 0x05b9, 0xbad: 0x05c1, 0xbae: 0x05c9, 0xbaf: 0x05d1, + 0xbb0: 0x0008, 0xbb1: 0x0008, 0xbb2: 0x05d9, 0xbb3: 0x05e1, 0xbb4: 0x05e9, 0xbb5: 0x0040, + 0xbb6: 0x0008, 0xbb7: 0x05f1, 0xbb8: 0xe045, 0xbb9: 0xe045, 0xbba: 0x0665, 0xbbb: 0x04e1, + 0xbbc: 0x05e1, 0xbbd: 0x067e, 0xbbe: 0x05f9, 0xbbf: 0x069e, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x06be, 0xbc1: 0x0602, 0xbc2: 0x0609, 0xbc3: 0x0611, 0xbc4: 0x0619, 0xbc5: 0x0040, + 0xbc6: 0x0008, 0xbc7: 0x0621, 0xbc8: 0x06dd, 0xbc9: 0x04e9, 0xbca: 0x06f5, 0xbcb: 0x04f1, + 0xbcc: 0x0611, 0xbcd: 0x062a, 0xbce: 0x0632, 0xbcf: 0x063a, 0xbd0: 0x0008, 0xbd1: 0x0008, + 0xbd2: 0x0008, 0xbd3: 0x0641, 0xbd4: 0x0040, 0xbd5: 0x0040, 0xbd6: 0x0008, 0xbd7: 0x0008, + 0xbd8: 0xe045, 0xbd9: 0xe045, 0xbda: 0x070d, 0xbdb: 0x04f9, 0xbdc: 0x0040, 0xbdd: 0x064a, + 0xbde: 0x0652, 0xbdf: 0x065a, 0xbe0: 0x0008, 0xbe1: 0x0008, 0xbe2: 0x0008, 0xbe3: 0x0661, + 0xbe4: 0x0008, 0xbe5: 0x0008, 0xbe6: 0x0008, 0xbe7: 0x0008, 0xbe8: 0xe045, 0xbe9: 0xe045, + 0xbea: 0x0725, 0xbeb: 0x0509, 0xbec: 0xe04d, 0xbed: 0x066a, 0xbee: 0x012a, 0xbef: 0x0672, + 0xbf0: 0x0040, 0xbf1: 0x0040, 0xbf2: 0x0679, 0xbf3: 0x0681, 0xbf4: 0x0689, 0xbf5: 0x0040, + 0xbf6: 0x0008, 0xbf7: 0x0691, 0xbf8: 0x073d, 0xbf9: 0x0501, 0xbfa: 0x0515, 0xbfb: 0x0511, + 0xbfc: 0x0681, 0xbfd: 0x0756, 0xbfe: 0x0776, 0xbff: 0x0040, + // Block 0x30, offset 0xc00 + 0xc00: 0x000a, 0xc01: 0x000a, 0xc02: 0x000a, 0xc03: 0x000a, 0xc04: 0x000a, 0xc05: 0x000a, + 0xc06: 0x000a, 0xc07: 0x000a, 0xc08: 0x000a, 0xc09: 0x000a, 0xc0a: 0x000a, 0xc0b: 0x03c0, + 0xc0c: 0x0003, 0xc0d: 0x0003, 0xc0e: 0x0340, 0xc0f: 0x0b40, 0xc10: 0x0018, 0xc11: 0xe00d, + 0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x0796, + 0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018, + 0xc1e: 0x0018, 0xc1f: 0x0018, 0xc20: 0x0018, 0xc21: 0x0018, 0xc22: 0x0018, 0xc23: 0x0018, + 0xc24: 0x0040, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0018, 0xc28: 0x0040, 0xc29: 0x0040, + 0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x000a, + 0xc30: 0x0018, 0xc31: 0x0018, 0xc32: 0x0018, 0xc33: 0x0699, 0xc34: 0x06a1, 0xc35: 0x0018, + 0xc36: 0x06a9, 0xc37: 0x06b1, 0xc38: 0x0018, 0xc39: 0x0018, 0xc3a: 0x0018, 0xc3b: 0x0018, + 0xc3c: 0x06ba, 0xc3d: 0x0018, 0xc3e: 0x07b6, 0xc3f: 0x0018, + // Block 0x31, offset 0xc40 + 0xc40: 0x0018, 0xc41: 0x0018, 0xc42: 0x0018, 0xc43: 0x0018, 0xc44: 0x0018, 0xc45: 0x0018, + 0xc46: 0x0018, 0xc47: 0x06c2, 0xc48: 0x06ca, 0xc49: 0x06d2, 0xc4a: 0x0018, 0xc4b: 0x0018, + 0xc4c: 0x0018, 0xc4d: 0x0018, 0xc4e: 0x0018, 0xc4f: 0x0018, 0xc50: 0x0018, 0xc51: 0x0018, + 0xc52: 0x0018, 0xc53: 0x0018, 0xc54: 0x0018, 0xc55: 0x0018, 0xc56: 0x0018, 0xc57: 0x06d9, + 0xc58: 0x0018, 0xc59: 0x0018, 0xc5a: 0x0018, 0xc5b: 0x0018, 0xc5c: 0x0018, 0xc5d: 0x0018, + 0xc5e: 0x0018, 0xc5f: 0x000a, 0xc60: 0x03c0, 0xc61: 0x0340, 0xc62: 0x0340, 0xc63: 0x0340, + 0xc64: 0x03c0, 0xc65: 0x0040, 0xc66: 0x0040, 0xc67: 0x0040, 0xc68: 0x0040, 0xc69: 0x0040, + 0xc6a: 0x0340, 0xc6b: 0x0340, 0xc6c: 0x0340, 0xc6d: 0x0340, 0xc6e: 0x0340, 0xc6f: 0x0340, + 0xc70: 0x06e1, 0xc71: 0x0311, 0xc72: 0x0040, 0xc73: 0x0040, 0xc74: 0x06e9, 0xc75: 0x06f1, + 0xc76: 0x06f9, 0xc77: 0x0701, 0xc78: 0x0709, 0xc79: 0x0711, 0xc7a: 0x071a, 0xc7b: 0x07d5, + 0xc7c: 0x0722, 0xc7d: 0x072a, 0xc7e: 0x0732, 0xc7f: 0x0329, + // Block 0x32, offset 0xc80 + 0xc80: 0x06e1, 0xc81: 0x0049, 0xc82: 0x0029, 0xc83: 0x0031, 0xc84: 0x06e9, 0xc85: 0x06f1, + 0xc86: 0x06f9, 0xc87: 0x0701, 0xc88: 0x0709, 0xc89: 0x0711, 0xc8a: 0x071a, 0xc8b: 0x07ed, + 0xc8c: 0x0722, 0xc8d: 0x072a, 0xc8e: 0x0732, 0xc8f: 0x0040, 0xc90: 0x0019, 0xc91: 0x02f9, + 0xc92: 0x0051, 0xc93: 0x0109, 0xc94: 0x0361, 0xc95: 0x00a9, 0xc96: 0x0319, 0xc97: 0x0101, + 0xc98: 0x0321, 0xc99: 0x0329, 0xc9a: 0x0339, 0xc9b: 0x0089, 0xc9c: 0x0341, 0xc9d: 0x0040, + 0xc9e: 0x0040, 0xc9f: 0x0040, 0xca0: 0x0018, 0xca1: 0x0018, 0xca2: 0x0018, 0xca3: 0x0018, + 0xca4: 0x0018, 0xca5: 0x0018, 0xca6: 0x0018, 0xca7: 0x0018, 0xca8: 0x0739, 0xca9: 0x0018, + 0xcaa: 0x0018, 0xcab: 0x0018, 0xcac: 0x0018, 0xcad: 0x0018, 0xcae: 0x0018, 0xcaf: 0x0018, + 0xcb0: 0x0018, 0xcb1: 0x0018, 0xcb2: 0x0018, 0xcb3: 0x0018, 0xcb4: 0x0018, 0xcb5: 0x0018, + 0xcb6: 0x0018, 0xcb7: 0x0018, 0xcb8: 0x0018, 0xcb9: 0x0018, 0xcba: 0x0018, 0xcbb: 0x0018, + 0xcbc: 0x0018, 0xcbd: 0x0018, 0xcbe: 0x0018, 0xcbf: 0x0018, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x0806, 0xcc1: 0x0826, 0xcc2: 0x03d9, 0xcc3: 0x0845, 0xcc4: 0x0018, 0xcc5: 0x0866, + 0xcc6: 0x0886, 0xcc7: 0x0369, 0xcc8: 0x0018, 0xcc9: 0x08a5, 0xcca: 0x0309, 0xccb: 0x00a9, + 0xccc: 0x00a9, 0xccd: 0x00a9, 0xcce: 0x00a9, 0xccf: 0x0741, 0xcd0: 0x0311, 0xcd1: 0x0311, + 0xcd2: 0x0101, 0xcd3: 0x0101, 0xcd4: 0x0018, 0xcd5: 0x0329, 0xcd6: 0x0749, 0xcd7: 0x0018, + 0xcd8: 0x0018, 0xcd9: 0x0339, 0xcda: 0x0751, 0xcdb: 0x00b9, 0xcdc: 0x00b9, 0xcdd: 0x00b9, + 0xcde: 0x0018, 0xcdf: 0x0018, 0xce0: 0x0759, 0xce1: 0x08c5, 0xce2: 0x0761, 0xce3: 0x0018, + 0xce4: 0x04b1, 0xce5: 0x0018, 0xce6: 0x0769, 0xce7: 0x0018, 0xce8: 0x04b1, 0xce9: 0x0018, + 0xcea: 0x0319, 0xceb: 0x0771, 0xcec: 0x02e9, 0xced: 0x03d9, 0xcee: 0x0018, 0xcef: 0x02f9, + 0xcf0: 0x02f9, 0xcf1: 0x03f1, 0xcf2: 0x0040, 0xcf3: 0x0321, 0xcf4: 0x0051, 0xcf5: 0x0779, + 0xcf6: 0x0781, 0xcf7: 0x0789, 0xcf8: 0x0791, 0xcf9: 0x0311, 0xcfa: 0x0018, 0xcfb: 0x08e5, + 0xcfc: 0x0799, 0xcfd: 0x03a1, 0xcfe: 0x03a1, 0xcff: 0x0799, + // Block 0x34, offset 0xd00 + 0xd00: 0x0905, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x02f1, + 0xd06: 0x02f1, 0xd07: 0x02f9, 0xd08: 0x0311, 0xd09: 0x00b1, 0xd0a: 0x0018, 0xd0b: 0x0018, + 0xd0c: 0x0018, 0xd0d: 0x0018, 0xd0e: 0x0008, 0xd0f: 0x0018, 0xd10: 0x07a1, 0xd11: 0x07a9, + 0xd12: 0x07b1, 0xd13: 0x07b9, 0xd14: 0x07c1, 0xd15: 0x07c9, 0xd16: 0x07d1, 0xd17: 0x07d9, + 0xd18: 0x07e1, 0xd19: 0x07e9, 0xd1a: 0x07f1, 0xd1b: 0x07f9, 0xd1c: 0x0801, 0xd1d: 0x0809, + 0xd1e: 0x0811, 0xd1f: 0x0819, 0xd20: 0x0311, 0xd21: 0x0821, 0xd22: 0x091d, 0xd23: 0x0829, + 0xd24: 0x0391, 0xd25: 0x0831, 0xd26: 0x093d, 0xd27: 0x0839, 0xd28: 0x0841, 0xd29: 0x0109, + 0xd2a: 0x0849, 0xd2b: 0x095d, 0xd2c: 0x0101, 0xd2d: 0x03d9, 0xd2e: 0x02f1, 0xd2f: 0x0321, + 0xd30: 0x0311, 0xd31: 0x0821, 0xd32: 0x097d, 0xd33: 0x0829, 0xd34: 0x0391, 0xd35: 0x0831, + 0xd36: 0x099d, 0xd37: 0x0839, 0xd38: 0x0841, 0xd39: 0x0109, 0xd3a: 0x0849, 0xd3b: 0x09bd, + 0xd3c: 0x0101, 0xd3d: 0x03d9, 0xd3e: 0x02f1, 0xd3f: 0x0321, + // Block 0x35, offset 0xd40 + 0xd40: 0x0018, 0xd41: 0x0018, 0xd42: 0x0018, 0xd43: 0x0018, 0xd44: 0x0018, 0xd45: 0x0018, + 0xd46: 0x0018, 0xd47: 0x0018, 0xd48: 0x0018, 0xd49: 0x0018, 0xd4a: 0x0018, 0xd4b: 0x0040, + 0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040, + 0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040, + 0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0040, 0xd5d: 0x0040, + 0xd5e: 0x0040, 0xd5f: 0x0040, 0xd60: 0x0049, 0xd61: 0x0029, 0xd62: 0x0031, 0xd63: 0x06e9, + 0xd64: 0x06f1, 0xd65: 0x06f9, 0xd66: 0x0701, 0xd67: 0x0709, 0xd68: 0x0711, 0xd69: 0x0879, + 0xd6a: 0x0881, 0xd6b: 0x0889, 0xd6c: 0x0891, 0xd6d: 0x0899, 0xd6e: 0x08a1, 0xd6f: 0x08a9, + 0xd70: 0x08b1, 0xd71: 0x08b9, 0xd72: 0x08c1, 0xd73: 0x08c9, 0xd74: 0x0a1e, 0xd75: 0x0a3e, + 0xd76: 0x0a5e, 0xd77: 0x0a7e, 0xd78: 0x0a9e, 0xd79: 0x0abe, 0xd7a: 0x0ade, 0xd7b: 0x0afe, + 0xd7c: 0x0b1e, 0xd7d: 0x08d2, 0xd7e: 0x08da, 0xd7f: 0x08e2, + // Block 0x36, offset 0xd80 + 0xd80: 0x08ea, 0xd81: 0x08f2, 0xd82: 0x08fa, 0xd83: 0x0902, 0xd84: 0x090a, 0xd85: 0x0912, + 0xd86: 0x091a, 0xd87: 0x0922, 0xd88: 0x0040, 0xd89: 0x0040, 0xd8a: 0x0040, 0xd8b: 0x0040, + 0xd8c: 0x0040, 0xd8d: 0x0040, 0xd8e: 0x0040, 0xd8f: 0x0040, 0xd90: 0x0040, 0xd91: 0x0040, + 0xd92: 0x0040, 0xd93: 0x0040, 0xd94: 0x0040, 0xd95: 0x0040, 0xd96: 0x0040, 0xd97: 0x0040, + 0xd98: 0x0040, 0xd99: 0x0040, 0xd9a: 0x0040, 0xd9b: 0x0040, 0xd9c: 0x0b3e, 0xd9d: 0x0b5e, + 0xd9e: 0x0b7e, 0xd9f: 0x0b9e, 0xda0: 0x0bbe, 0xda1: 0x0bde, 0xda2: 0x0bfe, 0xda3: 0x0c1e, + 0xda4: 0x0c3e, 0xda5: 0x0c5e, 0xda6: 0x0c7e, 0xda7: 0x0c9e, 0xda8: 0x0cbe, 0xda9: 0x0cde, + 0xdaa: 0x0cfe, 0xdab: 0x0d1e, 0xdac: 0x0d3e, 0xdad: 0x0d5e, 0xdae: 0x0d7e, 0xdaf: 0x0d9e, + 0xdb0: 0x0dbe, 0xdb1: 0x0dde, 0xdb2: 0x0dfe, 0xdb3: 0x0e1e, 0xdb4: 0x0e3e, 0xdb5: 0x0e5e, + 0xdb6: 0x0019, 0xdb7: 0x02e9, 0xdb8: 0x03d9, 0xdb9: 0x02f1, 0xdba: 0x02f9, 0xdbb: 0x03f1, + 0xdbc: 0x0309, 0xdbd: 0x00a9, 0xdbe: 0x0311, 0xdbf: 0x00b1, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x0319, 0xdc1: 0x0101, 0xdc2: 0x0321, 0xdc3: 0x0329, 0xdc4: 0x0051, 0xdc5: 0x0339, + 0xdc6: 0x0751, 0xdc7: 0x00b9, 0xdc8: 0x0089, 0xdc9: 0x0341, 0xdca: 0x0349, 0xdcb: 0x0391, + 0xdcc: 0x00c1, 0xdcd: 0x0109, 0xdce: 0x00c9, 0xdcf: 0x04b1, 0xdd0: 0x0019, 0xdd1: 0x02e9, + 0xdd2: 0x03d9, 0xdd3: 0x02f1, 0xdd4: 0x02f9, 0xdd5: 0x03f1, 0xdd6: 0x0309, 0xdd7: 0x00a9, + 0xdd8: 0x0311, 0xdd9: 0x00b1, 0xdda: 0x0319, 0xddb: 0x0101, 0xddc: 0x0321, 0xddd: 0x0329, + 0xdde: 0x0051, 0xddf: 0x0339, 0xde0: 0x0751, 0xde1: 0x00b9, 0xde2: 0x0089, 0xde3: 0x0341, + 0xde4: 0x0349, 0xde5: 0x0391, 0xde6: 0x00c1, 0xde7: 0x0109, 0xde8: 0x00c9, 0xde9: 0x04b1, + 0xdea: 0x06e1, 0xdeb: 0x0018, 0xdec: 0x0018, 0xded: 0x0018, 0xdee: 0x0018, 0xdef: 0x0018, + 0xdf0: 0x0018, 0xdf1: 0x0018, 0xdf2: 0x0018, 0xdf3: 0x0018, 0xdf4: 0x0018, 0xdf5: 0x0018, + 0xdf6: 0x0018, 0xdf7: 0x0018, 0xdf8: 0x0018, 0xdf9: 0x0018, 0xdfa: 0x0018, 0xdfb: 0x0018, + 0xdfc: 0x0018, 0xdfd: 0x0018, 0xdfe: 0x0018, 0xdff: 0x0018, + // Block 0x38, offset 0xe00 + 0xe00: 0x0008, 0xe01: 0x0008, 0xe02: 0x0008, 0xe03: 0x0008, 0xe04: 0x0008, 0xe05: 0x0008, + 0xe06: 0x0008, 0xe07: 0x0008, 0xe08: 0x0008, 0xe09: 0x0008, 0xe0a: 0x0008, 0xe0b: 0x0008, + 0xe0c: 0x0008, 0xe0d: 0x0008, 0xe0e: 0x0008, 0xe0f: 0x0008, 0xe10: 0x0008, 0xe11: 0x0008, + 0xe12: 0x0008, 0xe13: 0x0008, 0xe14: 0x0008, 0xe15: 0x0008, 0xe16: 0x0008, 0xe17: 0x0008, + 0xe18: 0x0008, 0xe19: 0x0008, 0xe1a: 0x0008, 0xe1b: 0x0008, 0xe1c: 0x0008, 0xe1d: 0x0008, + 0xe1e: 0x0008, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0x0941, 0xe23: 0x0ed5, + 0xe24: 0x0949, 0xe25: 0x0008, 0xe26: 0x0008, 0xe27: 0xe07d, 0xe28: 0x0008, 0xe29: 0xe01d, + 0xe2a: 0x0008, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0x0359, 0xe2e: 0x0441, 0xe2f: 0x0351, + 0xe30: 0x03d1, 0xe31: 0x0008, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0008, 0xe35: 0xe01d, + 0xe36: 0x0008, 0xe37: 0x0008, 0xe38: 0x0008, 0xe39: 0x0008, 0xe3a: 0x0008, 0xe3b: 0x0008, + 0xe3c: 0x00b1, 0xe3d: 0x0391, 0xe3e: 0x0951, 0xe3f: 0x0959, + // Block 0x39, offset 0xe40 + 0xe40: 0xe00d, 0xe41: 0x0008, 0xe42: 0xe00d, 0xe43: 0x0008, 0xe44: 0xe00d, 0xe45: 0x0008, + 0xe46: 0xe00d, 0xe47: 0x0008, 0xe48: 0xe00d, 0xe49: 0x0008, 0xe4a: 0xe00d, 0xe4b: 0x0008, + 0xe4c: 0xe00d, 0xe4d: 0x0008, 0xe4e: 0xe00d, 0xe4f: 0x0008, 0xe50: 0xe00d, 0xe51: 0x0008, + 0xe52: 0xe00d, 0xe53: 0x0008, 0xe54: 0xe00d, 0xe55: 0x0008, 0xe56: 0xe00d, 0xe57: 0x0008, + 0xe58: 0xe00d, 0xe59: 0x0008, 0xe5a: 0xe00d, 0xe5b: 0x0008, 0xe5c: 0xe00d, 0xe5d: 0x0008, + 0xe5e: 0xe00d, 0xe5f: 0x0008, 0xe60: 0xe00d, 0xe61: 0x0008, 0xe62: 0xe00d, 0xe63: 0x0008, + 0xe64: 0x0008, 0xe65: 0x0018, 0xe66: 0x0018, 0xe67: 0x0018, 0xe68: 0x0018, 0xe69: 0x0018, + 0xe6a: 0x0018, 0xe6b: 0xe03d, 0xe6c: 0x0008, 0xe6d: 0xe01d, 0xe6e: 0x0008, 0xe6f: 0x3308, + 0xe70: 0x3308, 0xe71: 0x3308, 0xe72: 0xe00d, 0xe73: 0x0008, 0xe74: 0x0040, 0xe75: 0x0040, + 0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0018, 0xe7a: 0x0018, 0xe7b: 0x0018, + 0xe7c: 0x0018, 0xe7d: 0x0018, 0xe7e: 0x0018, 0xe7f: 0x0018, + // Block 0x3a, offset 0xe80 + 0xe80: 0x2715, 0xe81: 0x2735, 0xe82: 0x2755, 0xe83: 0x2775, 0xe84: 0x2795, 0xe85: 0x27b5, + 0xe86: 0x27d5, 0xe87: 0x27f5, 0xe88: 0x2815, 0xe89: 0x2835, 0xe8a: 0x2855, 0xe8b: 0x2875, + 0xe8c: 0x2895, 0xe8d: 0x28b5, 0xe8e: 0x28d5, 0xe8f: 0x28f5, 0xe90: 0x2915, 0xe91: 0x2935, + 0xe92: 0x2955, 0xe93: 0x2975, 0xe94: 0x2995, 0xe95: 0x29b5, 0xe96: 0x0040, 0xe97: 0x0040, + 0xe98: 0x0040, 0xe99: 0x0040, 0xe9a: 0x0040, 0xe9b: 0x0040, 0xe9c: 0x0040, 0xe9d: 0x0040, + 0xe9e: 0x0040, 0xe9f: 0x0040, 0xea0: 0x0040, 0xea1: 0x0040, 0xea2: 0x0040, 0xea3: 0x0040, + 0xea4: 0x0040, 0xea5: 0x0040, 0xea6: 0x0040, 0xea7: 0x0040, 0xea8: 0x0040, 0xea9: 0x0040, + 0xeaa: 0x0040, 0xeab: 0x0040, 0xeac: 0x0040, 0xead: 0x0040, 0xeae: 0x0040, 0xeaf: 0x0040, + 0xeb0: 0x0040, 0xeb1: 0x0040, 0xeb2: 0x0040, 0xeb3: 0x0040, 0xeb4: 0x0040, 0xeb5: 0x0040, + 0xeb6: 0x0040, 0xeb7: 0x0040, 0xeb8: 0x0040, 0xeb9: 0x0040, 0xeba: 0x0040, 0xebb: 0x0040, + 0xebc: 0x0040, 0xebd: 0x0040, 0xebe: 0x0040, 0xebf: 0x0040, + // Block 0x3b, offset 0xec0 + 0xec0: 0x000a, 0xec1: 0x0018, 0xec2: 0x0961, 0xec3: 0x0018, 0xec4: 0x0018, 0xec5: 0x0008, + 0xec6: 0x0008, 0xec7: 0x0008, 0xec8: 0x0018, 0xec9: 0x0018, 0xeca: 0x0018, 0xecb: 0x0018, + 0xecc: 0x0018, 0xecd: 0x0018, 0xece: 0x0018, 0xecf: 0x0018, 0xed0: 0x0018, 0xed1: 0x0018, + 0xed2: 0x0018, 0xed3: 0x0018, 0xed4: 0x0018, 0xed5: 0x0018, 0xed6: 0x0018, 0xed7: 0x0018, + 0xed8: 0x0018, 0xed9: 0x0018, 0xeda: 0x0018, 0xedb: 0x0018, 0xedc: 0x0018, 0xedd: 0x0018, + 0xede: 0x0018, 0xedf: 0x0018, 0xee0: 0x0018, 0xee1: 0x0018, 0xee2: 0x0018, 0xee3: 0x0018, + 0xee4: 0x0018, 0xee5: 0x0018, 0xee6: 0x0018, 0xee7: 0x0018, 0xee8: 0x0018, 0xee9: 0x0018, + 0xeea: 0x3308, 0xeeb: 0x3308, 0xeec: 0x3308, 0xeed: 0x3308, 0xeee: 0x3018, 0xeef: 0x3018, + 0xef0: 0x0018, 0xef1: 0x0018, 0xef2: 0x0018, 0xef3: 0x0018, 0xef4: 0x0018, 0xef5: 0x0018, + 0xef6: 0xe125, 0xef7: 0x0018, 0xef8: 0x29d5, 0xef9: 0x29f5, 0xefa: 0x2a15, 0xefb: 0x0018, + 0xefc: 0x0008, 0xefd: 0x0018, 0xefe: 0x0018, 0xeff: 0x0018, + // Block 0x3c, offset 0xf00 + 0xf00: 0x2b55, 0xf01: 0x2b75, 0xf02: 0x2b95, 0xf03: 0x2bb5, 0xf04: 0x2bd5, 0xf05: 0x2bf5, + 0xf06: 0x2bf5, 0xf07: 0x2bf5, 0xf08: 0x2c15, 0xf09: 0x2c15, 0xf0a: 0x2c15, 0xf0b: 0x2c15, + 0xf0c: 0x2c35, 0xf0d: 0x2c35, 0xf0e: 0x2c35, 0xf0f: 0x2c55, 0xf10: 0x2c75, 0xf11: 0x2c75, + 0xf12: 0x2a95, 0xf13: 0x2a95, 0xf14: 0x2c75, 0xf15: 0x2c75, 0xf16: 0x2c95, 0xf17: 0x2c95, + 0xf18: 0x2c75, 0xf19: 0x2c75, 0xf1a: 0x2a95, 0xf1b: 0x2a95, 0xf1c: 0x2c75, 0xf1d: 0x2c75, + 0xf1e: 0x2c55, 0xf1f: 0x2c55, 0xf20: 0x2cb5, 0xf21: 0x2cb5, 0xf22: 0x2cd5, 0xf23: 0x2cd5, + 0xf24: 0x0040, 0xf25: 0x2cf5, 0xf26: 0x2d15, 0xf27: 0x2d35, 0xf28: 0x2d35, 0xf29: 0x2d55, + 0xf2a: 0x2d75, 0xf2b: 0x2d95, 0xf2c: 0x2db5, 0xf2d: 0x2dd5, 0xf2e: 0x2df5, 0xf2f: 0x2e15, + 0xf30: 0x2e35, 0xf31: 0x2e55, 0xf32: 0x2e55, 0xf33: 0x2e75, 0xf34: 0x2e95, 0xf35: 0x2e95, + 0xf36: 0x2eb5, 0xf37: 0x2ed5, 0xf38: 0x2e75, 0xf39: 0x2ef5, 0xf3a: 0x2f15, 0xf3b: 0x2ef5, + 0xf3c: 0x2e75, 0xf3d: 0x2f35, 0xf3e: 0x2f55, 0xf3f: 0x2f75, + // Block 0x3d, offset 0xf40 + 0xf40: 0x2f95, 0xf41: 0x2fb5, 0xf42: 0x2d15, 0xf43: 0x2cf5, 0xf44: 0x2fd5, 0xf45: 0x2ff5, + 0xf46: 0x3015, 0xf47: 0x3035, 0xf48: 0x3055, 0xf49: 0x3075, 0xf4a: 0x3095, 0xf4b: 0x30b5, + 0xf4c: 0x30d5, 0xf4d: 0x30f5, 0xf4e: 0x3115, 0xf4f: 0x0040, 0xf50: 0x0018, 0xf51: 0x0018, + 0xf52: 0x3135, 0xf53: 0x3155, 0xf54: 0x3175, 0xf55: 0x3195, 0xf56: 0x31b5, 0xf57: 0x31d5, + 0xf58: 0x31f5, 0xf59: 0x3215, 0xf5a: 0x3235, 0xf5b: 0x3255, 0xf5c: 0x3175, 0xf5d: 0x3275, + 0xf5e: 0x3295, 0xf5f: 0x32b5, 0xf60: 0x0008, 0xf61: 0x0008, 0xf62: 0x0008, 0xf63: 0x0008, + 0xf64: 0x0008, 0xf65: 0x0008, 0xf66: 0x0008, 0xf67: 0x0008, 0xf68: 0x0008, 0xf69: 0x0008, + 0xf6a: 0x0008, 0xf6b: 0x0008, 0xf6c: 0x0008, 0xf6d: 0x0008, 0xf6e: 0x0008, 0xf6f: 0x0008, + 0xf70: 0x0008, 0xf71: 0x0008, 0xf72: 0x0008, 0xf73: 0x0008, 0xf74: 0x0008, 0xf75: 0x0008, + 0xf76: 0x0008, 0xf77: 0x0008, 0xf78: 0x0008, 0xf79: 0x0008, 0xf7a: 0x0008, 0xf7b: 0x0008, + 0xf7c: 0x0008, 0xf7d: 0x0008, 0xf7e: 0x0008, 0xf7f: 0x0008, + // Block 0x3e, offset 0xf80 + 0xf80: 0x0b82, 0xf81: 0x0b8a, 0xf82: 0x0b92, 0xf83: 0x0b9a, 0xf84: 0x32d5, 0xf85: 0x32f5, + 0xf86: 0x3315, 0xf87: 0x3335, 0xf88: 0x0018, 0xf89: 0x0018, 0xf8a: 0x0018, 0xf8b: 0x0018, + 0xf8c: 0x0018, 0xf8d: 0x0018, 0xf8e: 0x0018, 0xf8f: 0x0018, 0xf90: 0x3355, 0xf91: 0x0ba1, + 0xf92: 0x0ba9, 0xf93: 0x0bb1, 0xf94: 0x0bb9, 0xf95: 0x0bc1, 0xf96: 0x0bc9, 0xf97: 0x0bd1, + 0xf98: 0x0bd9, 0xf99: 0x0be1, 0xf9a: 0x0be9, 0xf9b: 0x0bf1, 0xf9c: 0x0bf9, 0xf9d: 0x0c01, + 0xf9e: 0x0c09, 0xf9f: 0x0c11, 0xfa0: 0x3375, 0xfa1: 0x3395, 0xfa2: 0x33b5, 0xfa3: 0x33d5, + 0xfa4: 0x33f5, 0xfa5: 0x33f5, 0xfa6: 0x3415, 0xfa7: 0x3435, 0xfa8: 0x3455, 0xfa9: 0x3475, + 0xfaa: 0x3495, 0xfab: 0x34b5, 0xfac: 0x34d5, 0xfad: 0x34f5, 0xfae: 0x3515, 0xfaf: 0x3535, + 0xfb0: 0x3555, 0xfb1: 0x3575, 0xfb2: 0x3595, 0xfb3: 0x35b5, 0xfb4: 0x35d5, 0xfb5: 0x35f5, + 0xfb6: 0x3615, 0xfb7: 0x3635, 0xfb8: 0x3655, 0xfb9: 0x3675, 0xfba: 0x3695, 0xfbb: 0x36b5, + 0xfbc: 0x0c19, 0xfbd: 0x0c21, 0xfbe: 0x36d5, 0xfbf: 0x0018, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x36f5, 0xfc1: 0x3715, 0xfc2: 0x3735, 0xfc3: 0x3755, 0xfc4: 0x3775, 0xfc5: 0x3795, + 0xfc6: 0x37b5, 0xfc7: 0x37d5, 0xfc8: 0x37f5, 0xfc9: 0x3815, 0xfca: 0x3835, 0xfcb: 0x3855, + 0xfcc: 0x3875, 0xfcd: 0x3895, 0xfce: 0x38b5, 0xfcf: 0x38d5, 0xfd0: 0x38f5, 0xfd1: 0x3915, + 0xfd2: 0x3935, 0xfd3: 0x3955, 0xfd4: 0x3975, 0xfd5: 0x3995, 0xfd6: 0x39b5, 0xfd7: 0x39d5, + 0xfd8: 0x39f5, 0xfd9: 0x3a15, 0xfda: 0x3a35, 0xfdb: 0x3a55, 0xfdc: 0x3a75, 0xfdd: 0x3a95, + 0xfde: 0x3ab5, 0xfdf: 0x3ad5, 0xfe0: 0x3af5, 0xfe1: 0x3b15, 0xfe2: 0x3b35, 0xfe3: 0x3b55, + 0xfe4: 0x3b75, 0xfe5: 0x3b95, 0xfe6: 0x1295, 0xfe7: 0x3bb5, 0xfe8: 0x3bd5, 0xfe9: 0x3bf5, + 0xfea: 0x3c15, 0xfeb: 0x3c35, 0xfec: 0x3c55, 0xfed: 0x3c75, 0xfee: 0x23b5, 0xfef: 0x3c95, + 0xff0: 0x3cb5, 0xff1: 0x0c29, 0xff2: 0x0c31, 0xff3: 0x0c39, 0xff4: 0x0c41, 0xff5: 0x0c49, + 0xff6: 0x0c51, 0xff7: 0x0c59, 0xff8: 0x0c61, 0xff9: 0x0c69, 0xffa: 0x0c71, 0xffb: 0x0c79, + 0xffc: 0x0c81, 0xffd: 0x0c89, 0xffe: 0x0c91, 0xfff: 0x0c99, + // Block 0x40, offset 0x1000 + 0x1000: 0x0ca1, 0x1001: 0x0ca9, 0x1002: 0x0cb1, 0x1003: 0x0cb9, 0x1004: 0x0cc1, 0x1005: 0x0cc9, + 0x1006: 0x0cd1, 0x1007: 0x0cd9, 0x1008: 0x0ce1, 0x1009: 0x0ce9, 0x100a: 0x0cf1, 0x100b: 0x0cf9, + 0x100c: 0x0d01, 0x100d: 0x3cd5, 0x100e: 0x0d09, 0x100f: 0x3cf5, 0x1010: 0x3d15, 0x1011: 0x3d2d, + 0x1012: 0x3d45, 0x1013: 0x3d5d, 0x1014: 0x3d75, 0x1015: 0x3d75, 0x1016: 0x3d5d, 0x1017: 0x3d8d, + 0x1018: 0x07d5, 0x1019: 0x3da5, 0x101a: 0x3dbd, 0x101b: 0x3dd5, 0x101c: 0x3ded, 0x101d: 0x3e05, + 0x101e: 0x3e1d, 0x101f: 0x3e35, 0x1020: 0x3e4d, 0x1021: 0x3e65, 0x1022: 0x3e7d, 0x1023: 0x3e95, + 0x1024: 0x3ead, 0x1025: 0x3ead, 0x1026: 0x3ec5, 0x1027: 0x3ec5, 0x1028: 0x3edd, 0x1029: 0x3edd, + 0x102a: 0x3ef5, 0x102b: 0x3f0d, 0x102c: 0x3f25, 0x102d: 0x3f3d, 0x102e: 0x3f55, 0x102f: 0x3f55, + 0x1030: 0x3f6d, 0x1031: 0x3f6d, 0x1032: 0x3f6d, 0x1033: 0x3f85, 0x1034: 0x3f9d, 0x1035: 0x3fb5, + 0x1036: 0x3fcd, 0x1037: 0x3fb5, 0x1038: 0x3fe5, 0x1039: 0x3ffd, 0x103a: 0x3f85, 0x103b: 0x4015, + 0x103c: 0x402d, 0x103d: 0x402d, 0x103e: 0x402d, 0x103f: 0x0d11, + // Block 0x41, offset 0x1040 + 0x1040: 0x10f9, 0x1041: 0x1101, 0x1042: 0x40a5, 0x1043: 0x1109, 0x1044: 0x1111, 0x1045: 0x1119, + 0x1046: 0x1121, 0x1047: 0x1129, 0x1048: 0x40c5, 0x1049: 0x1131, 0x104a: 0x1139, 0x104b: 0x1141, + 0x104c: 0x40e5, 0x104d: 0x40e5, 0x104e: 0x1149, 0x104f: 0x1151, 0x1050: 0x1159, 0x1051: 0x4105, + 0x1052: 0x4125, 0x1053: 0x4145, 0x1054: 0x4165, 0x1055: 0x4185, 0x1056: 0x1161, 0x1057: 0x1169, + 0x1058: 0x1171, 0x1059: 0x1179, 0x105a: 0x1181, 0x105b: 0x41a5, 0x105c: 0x1189, 0x105d: 0x1191, + 0x105e: 0x1199, 0x105f: 0x41c5, 0x1060: 0x41e5, 0x1061: 0x11a1, 0x1062: 0x4205, 0x1063: 0x4225, + 0x1064: 0x4245, 0x1065: 0x11a9, 0x1066: 0x4265, 0x1067: 0x11b1, 0x1068: 0x11b9, 0x1069: 0x10f9, + 0x106a: 0x4285, 0x106b: 0x42a5, 0x106c: 0x42c5, 0x106d: 0x42e5, 0x106e: 0x11c1, 0x106f: 0x11c9, + 0x1070: 0x11d1, 0x1071: 0x11d9, 0x1072: 0x4305, 0x1073: 0x11e1, 0x1074: 0x11e9, 0x1075: 0x11f1, + 0x1076: 0x4325, 0x1077: 0x11f9, 0x1078: 0x1201, 0x1079: 0x11f9, 0x107a: 0x1209, 0x107b: 0x1211, + 0x107c: 0x4345, 0x107d: 0x1219, 0x107e: 0x1221, 0x107f: 0x1219, + // Block 0x42, offset 0x1080 + 0x1080: 0x4365, 0x1081: 0x4385, 0x1082: 0x0040, 0x1083: 0x1229, 0x1084: 0x1231, 0x1085: 0x1239, + 0x1086: 0x1241, 0x1087: 0x0040, 0x1088: 0x1249, 0x1089: 0x1251, 0x108a: 0x1259, 0x108b: 0x1261, + 0x108c: 0x1269, 0x108d: 0x1271, 0x108e: 0x1199, 0x108f: 0x1279, 0x1090: 0x1281, 0x1091: 0x1289, + 0x1092: 0x43a5, 0x1093: 0x1291, 0x1094: 0x1121, 0x1095: 0x43c5, 0x1096: 0x43e5, 0x1097: 0x1299, + 0x1098: 0x0040, 0x1099: 0x4405, 0x109a: 0x12a1, 0x109b: 0x12a9, 0x109c: 0x12b1, 0x109d: 0x12b9, + 0x109e: 0x12c1, 0x109f: 0x12c9, 0x10a0: 0x12d1, 0x10a1: 0x12d9, 0x10a2: 0x12e1, 0x10a3: 0x12e9, + 0x10a4: 0x12f1, 0x10a5: 0x12f9, 0x10a6: 0x1301, 0x10a7: 0x1309, 0x10a8: 0x1311, 0x10a9: 0x1319, + 0x10aa: 0x1321, 0x10ab: 0x1329, 0x10ac: 0x1331, 0x10ad: 0x1339, 0x10ae: 0x1341, 0x10af: 0x1349, + 0x10b0: 0x1351, 0x10b1: 0x1359, 0x10b2: 0x1361, 0x10b3: 0x1369, 0x10b4: 0x1371, 0x10b5: 0x1379, + 0x10b6: 0x1381, 0x10b7: 0x1389, 0x10b8: 0x1391, 0x10b9: 0x1399, 0x10ba: 0x13a1, 0x10bb: 0x13a9, + 0x10bc: 0x13b1, 0x10bd: 0x13b9, 0x10be: 0x13c1, 0x10bf: 0x4425, + // Block 0x43, offset 0x10c0 + 0x10c0: 0xe00d, 0x10c1: 0x0008, 0x10c2: 0xe00d, 0x10c3: 0x0008, 0x10c4: 0xe00d, 0x10c5: 0x0008, + 0x10c6: 0xe00d, 0x10c7: 0x0008, 0x10c8: 0xe00d, 0x10c9: 0x0008, 0x10ca: 0xe00d, 0x10cb: 0x0008, + 0x10cc: 0xe00d, 0x10cd: 0x0008, 0x10ce: 0xe00d, 0x10cf: 0x0008, 0x10d0: 0xe00d, 0x10d1: 0x0008, + 0x10d2: 0xe00d, 0x10d3: 0x0008, 0x10d4: 0xe00d, 0x10d5: 0x0008, 0x10d6: 0xe00d, 0x10d7: 0x0008, + 0x10d8: 0xe00d, 0x10d9: 0x0008, 0x10da: 0xe00d, 0x10db: 0x0008, 0x10dc: 0xe00d, 0x10dd: 0x0008, + 0x10de: 0xe00d, 0x10df: 0x0008, 0x10e0: 0xe00d, 0x10e1: 0x0008, 0x10e2: 0xe00d, 0x10e3: 0x0008, + 0x10e4: 0xe00d, 0x10e5: 0x0008, 0x10e6: 0xe00d, 0x10e7: 0x0008, 0x10e8: 0xe00d, 0x10e9: 0x0008, + 0x10ea: 0xe00d, 0x10eb: 0x0008, 0x10ec: 0xe00d, 0x10ed: 0x0008, 0x10ee: 0x0008, 0x10ef: 0x3308, + 0x10f0: 0x3318, 0x10f1: 0x3318, 0x10f2: 0x3318, 0x10f3: 0x0018, 0x10f4: 0x3308, 0x10f5: 0x3308, + 0x10f6: 0x3308, 0x10f7: 0x3308, 0x10f8: 0x3308, 0x10f9: 0x3308, 0x10fa: 0x3308, 0x10fb: 0x3308, + 0x10fc: 0x3308, 0x10fd: 0x3308, 0x10fe: 0x0018, 0x10ff: 0x0008, + // Block 0x44, offset 0x1100 + 0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008, + 0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008, + 0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008, + 0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008, + 0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0x02d1, 0x111d: 0x13c9, + 0x111e: 0x3308, 0x111f: 0x3308, 0x1120: 0x0008, 0x1121: 0x0008, 0x1122: 0x0008, 0x1123: 0x0008, + 0x1124: 0x0008, 0x1125: 0x0008, 0x1126: 0x0008, 0x1127: 0x0008, 0x1128: 0x0008, 0x1129: 0x0008, + 0x112a: 0x0008, 0x112b: 0x0008, 0x112c: 0x0008, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x0008, + 0x1130: 0x0008, 0x1131: 0x0008, 0x1132: 0x0008, 0x1133: 0x0008, 0x1134: 0x0008, 0x1135: 0x0008, + 0x1136: 0x0008, 0x1137: 0x0008, 0x1138: 0x0008, 0x1139: 0x0008, 0x113a: 0x0008, 0x113b: 0x0008, + 0x113c: 0x0008, 0x113d: 0x0008, 0x113e: 0x0008, 0x113f: 0x0008, + // Block 0x45, offset 0x1140 + 0x1140: 0x0018, 0x1141: 0x0018, 0x1142: 0x0018, 0x1143: 0x0018, 0x1144: 0x0018, 0x1145: 0x0018, + 0x1146: 0x0018, 0x1147: 0x0018, 0x1148: 0x0018, 0x1149: 0x0018, 0x114a: 0x0018, 0x114b: 0x0018, + 0x114c: 0x0018, 0x114d: 0x0018, 0x114e: 0x0018, 0x114f: 0x0018, 0x1150: 0x0018, 0x1151: 0x0018, + 0x1152: 0x0018, 0x1153: 0x0018, 0x1154: 0x0018, 0x1155: 0x0018, 0x1156: 0x0018, 0x1157: 0x0008, + 0x1158: 0x0008, 0x1159: 0x0008, 0x115a: 0x0008, 0x115b: 0x0008, 0x115c: 0x0008, 0x115d: 0x0008, + 0x115e: 0x0008, 0x115f: 0x0008, 0x1160: 0x0018, 0x1161: 0x0018, 0x1162: 0xe00d, 0x1163: 0x0008, + 0x1164: 0xe00d, 0x1165: 0x0008, 0x1166: 0xe00d, 0x1167: 0x0008, 0x1168: 0xe00d, 0x1169: 0x0008, + 0x116a: 0xe00d, 0x116b: 0x0008, 0x116c: 0xe00d, 0x116d: 0x0008, 0x116e: 0xe00d, 0x116f: 0x0008, + 0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0xe00d, 0x1173: 0x0008, 0x1174: 0xe00d, 0x1175: 0x0008, + 0x1176: 0xe00d, 0x1177: 0x0008, 0x1178: 0xe00d, 0x1179: 0x0008, 0x117a: 0xe00d, 0x117b: 0x0008, + 0x117c: 0xe00d, 0x117d: 0x0008, 0x117e: 0xe00d, 0x117f: 0x0008, + // Block 0x46, offset 0x1180 + 0x1180: 0xe00d, 0x1181: 0x0008, 0x1182: 0xe00d, 0x1183: 0x0008, 0x1184: 0xe00d, 0x1185: 0x0008, + 0x1186: 0xe00d, 0x1187: 0x0008, 0x1188: 0xe00d, 0x1189: 0x0008, 0x118a: 0xe00d, 0x118b: 0x0008, + 0x118c: 0xe00d, 0x118d: 0x0008, 0x118e: 0xe00d, 0x118f: 0x0008, 0x1190: 0xe00d, 0x1191: 0x0008, + 0x1192: 0xe00d, 0x1193: 0x0008, 0x1194: 0xe00d, 0x1195: 0x0008, 0x1196: 0xe00d, 0x1197: 0x0008, + 0x1198: 0xe00d, 0x1199: 0x0008, 0x119a: 0xe00d, 0x119b: 0x0008, 0x119c: 0xe00d, 0x119d: 0x0008, + 0x119e: 0xe00d, 0x119f: 0x0008, 0x11a0: 0xe00d, 0x11a1: 0x0008, 0x11a2: 0xe00d, 0x11a3: 0x0008, + 0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008, + 0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008, + 0x11b0: 0xe0fd, 0x11b1: 0x0008, 0x11b2: 0x0008, 0x11b3: 0x0008, 0x11b4: 0x0008, 0x11b5: 0x0008, + 0x11b6: 0x0008, 0x11b7: 0x0008, 0x11b8: 0x0008, 0x11b9: 0xe01d, 0x11ba: 0x0008, 0x11bb: 0xe03d, + 0x11bc: 0x0008, 0x11bd: 0x4445, 0x11be: 0xe00d, 0x11bf: 0x0008, + // Block 0x47, offset 0x11c0 + 0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008, + 0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0x0008, 0x11c9: 0x0018, 0x11ca: 0x0018, 0x11cb: 0xe03d, + 0x11cc: 0x0008, 0x11cd: 0x0409, 0x11ce: 0x0008, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008, + 0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0x0008, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008, + 0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008, + 0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008, + 0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008, + 0x11ea: 0x13d1, 0x11eb: 0x0371, 0x11ec: 0x0401, 0x11ed: 0x13d9, 0x11ee: 0x0421, 0x11ef: 0x0008, + 0x11f0: 0x13e1, 0x11f1: 0x13e9, 0x11f2: 0x0429, 0x11f3: 0x4465, 0x11f4: 0xe00d, 0x11f5: 0x0008, + 0x11f6: 0xe00d, 0x11f7: 0x0008, 0x11f8: 0xe00d, 0x11f9: 0x0008, 0x11fa: 0xe00d, 0x11fb: 0x0008, + 0x11fc: 0xe00d, 0x11fd: 0x0008, 0x11fe: 0xe00d, 0x11ff: 0x0008, + // Block 0x48, offset 0x1200 + 0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0x03f5, 0x1205: 0x0479, + 0x1206: 0x447d, 0x1207: 0xe07d, 0x1208: 0x0008, 0x1209: 0xe01d, 0x120a: 0x0008, 0x120b: 0x0040, + 0x120c: 0x0040, 0x120d: 0x0040, 0x120e: 0x0040, 0x120f: 0x0040, 0x1210: 0xe00d, 0x1211: 0x0008, + 0x1212: 0x0040, 0x1213: 0x0008, 0x1214: 0x0040, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008, + 0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0x0040, 0x121b: 0x0040, 0x121c: 0x0040, 0x121d: 0x0040, + 0x121e: 0x0040, 0x121f: 0x0040, 0x1220: 0x0040, 0x1221: 0x0040, 0x1222: 0x0040, 0x1223: 0x0040, + 0x1224: 0x0040, 0x1225: 0x0040, 0x1226: 0x0040, 0x1227: 0x0040, 0x1228: 0x0040, 0x1229: 0x0040, + 0x122a: 0x0040, 0x122b: 0x0040, 0x122c: 0x0040, 0x122d: 0x0040, 0x122e: 0x0040, 0x122f: 0x0040, + 0x1230: 0x0040, 0x1231: 0x0040, 0x1232: 0x03d9, 0x1233: 0x03f1, 0x1234: 0x0751, 0x1235: 0xe01d, + 0x1236: 0x0008, 0x1237: 0x0008, 0x1238: 0x0741, 0x1239: 0x13f1, 0x123a: 0x0008, 0x123b: 0x0008, + 0x123c: 0x0008, 0x123d: 0x0008, 0x123e: 0x0008, 0x123f: 0x0008, + // Block 0x49, offset 0x1240 + 0x1240: 0x650d, 0x1241: 0x652d, 0x1242: 0x654d, 0x1243: 0x656d, 0x1244: 0x658d, 0x1245: 0x65ad, + 0x1246: 0x65cd, 0x1247: 0x65ed, 0x1248: 0x660d, 0x1249: 0x662d, 0x124a: 0x664d, 0x124b: 0x666d, + 0x124c: 0x668d, 0x124d: 0x66ad, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x66cd, 0x1251: 0x0008, + 0x1252: 0x66ed, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x670d, 0x1256: 0x672d, 0x1257: 0x674d, + 0x1258: 0x676d, 0x1259: 0x678d, 0x125a: 0x67ad, 0x125b: 0x67cd, 0x125c: 0x67ed, 0x125d: 0x680d, + 0x125e: 0x682d, 0x125f: 0x0008, 0x1260: 0x684d, 0x1261: 0x0008, 0x1262: 0x686d, 0x1263: 0x0008, + 0x1264: 0x0008, 0x1265: 0x688d, 0x1266: 0x68ad, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008, + 0x126a: 0x68cd, 0x126b: 0x68ed, 0x126c: 0x690d, 0x126d: 0x692d, 0x126e: 0x694d, 0x126f: 0x696d, + 0x1270: 0x698d, 0x1271: 0x69ad, 0x1272: 0x69cd, 0x1273: 0x69ed, 0x1274: 0x6a0d, 0x1275: 0x6a2d, + 0x1276: 0x6a4d, 0x1277: 0x6a6d, 0x1278: 0x6a8d, 0x1279: 0x6aad, 0x127a: 0x6acd, 0x127b: 0x6aed, + 0x127c: 0x6b0d, 0x127d: 0x6b2d, 0x127e: 0x6b4d, 0x127f: 0x6b6d, + // Block 0x4a, offset 0x1280 + 0x1280: 0x7acd, 0x1281: 0x7aed, 0x1282: 0x7b0d, 0x1283: 0x7b2d, 0x1284: 0x7b4d, 0x1285: 0x7b6d, + 0x1286: 0x7b8d, 0x1287: 0x7bad, 0x1288: 0x7bcd, 0x1289: 0x7bed, 0x128a: 0x7c0d, 0x128b: 0x7c2d, + 0x128c: 0x7c4d, 0x128d: 0x7c6d, 0x128e: 0x7c8d, 0x128f: 0x1409, 0x1290: 0x1411, 0x1291: 0x1419, + 0x1292: 0x7cad, 0x1293: 0x7ccd, 0x1294: 0x7ced, 0x1295: 0x1421, 0x1296: 0x1429, 0x1297: 0x1431, + 0x1298: 0x7d0d, 0x1299: 0x7d2d, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040, + 0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040, + 0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040, + 0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040, + 0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040, + 0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040, + 0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x1439, 0x12c1: 0x1441, 0x12c2: 0x1449, 0x12c3: 0x7d4d, 0x12c4: 0x7d6d, 0x12c5: 0x1451, + 0x12c6: 0x1451, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040, + 0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040, + 0x12d2: 0x0040, 0x12d3: 0x1459, 0x12d4: 0x1461, 0x12d5: 0x1469, 0x12d6: 0x1471, 0x12d7: 0x1479, + 0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x1481, + 0x12de: 0x3308, 0x12df: 0x1489, 0x12e0: 0x1491, 0x12e1: 0x0779, 0x12e2: 0x0791, 0x12e3: 0x1499, + 0x12e4: 0x14a1, 0x12e5: 0x14a9, 0x12e6: 0x14b1, 0x12e7: 0x14b9, 0x12e8: 0x14c1, 0x12e9: 0x071a, + 0x12ea: 0x14c9, 0x12eb: 0x14d1, 0x12ec: 0x14d9, 0x12ed: 0x14e1, 0x12ee: 0x14e9, 0x12ef: 0x14f1, + 0x12f0: 0x14f9, 0x12f1: 0x1501, 0x12f2: 0x1509, 0x12f3: 0x1511, 0x12f4: 0x1519, 0x12f5: 0x1521, + 0x12f6: 0x1529, 0x12f7: 0x0040, 0x12f8: 0x1531, 0x12f9: 0x1539, 0x12fa: 0x1541, 0x12fb: 0x1549, + 0x12fc: 0x1551, 0x12fd: 0x0040, 0x12fe: 0x1559, 0x12ff: 0x0040, + // Block 0x4c, offset 0x1300 + 0x1300: 0x1561, 0x1301: 0x1569, 0x1302: 0x0040, 0x1303: 0x1571, 0x1304: 0x1579, 0x1305: 0x0040, + 0x1306: 0x1581, 0x1307: 0x1589, 0x1308: 0x1591, 0x1309: 0x1599, 0x130a: 0x15a1, 0x130b: 0x15a9, + 0x130c: 0x15b1, 0x130d: 0x15b9, 0x130e: 0x15c1, 0x130f: 0x15c9, 0x1310: 0x15d1, 0x1311: 0x15d1, + 0x1312: 0x15d9, 0x1313: 0x15d9, 0x1314: 0x15d9, 0x1315: 0x15d9, 0x1316: 0x15e1, 0x1317: 0x15e1, + 0x1318: 0x15e1, 0x1319: 0x15e1, 0x131a: 0x15e9, 0x131b: 0x15e9, 0x131c: 0x15e9, 0x131d: 0x15e9, + 0x131e: 0x15f1, 0x131f: 0x15f1, 0x1320: 0x15f1, 0x1321: 0x15f1, 0x1322: 0x15f9, 0x1323: 0x15f9, + 0x1324: 0x15f9, 0x1325: 0x15f9, 0x1326: 0x1601, 0x1327: 0x1601, 0x1328: 0x1601, 0x1329: 0x1601, + 0x132a: 0x1609, 0x132b: 0x1609, 0x132c: 0x1609, 0x132d: 0x1609, 0x132e: 0x1611, 0x132f: 0x1611, + 0x1330: 0x1611, 0x1331: 0x1611, 0x1332: 0x1619, 0x1333: 0x1619, 0x1334: 0x1619, 0x1335: 0x1619, + 0x1336: 0x1621, 0x1337: 0x1621, 0x1338: 0x1621, 0x1339: 0x1621, 0x133a: 0x1629, 0x133b: 0x1629, + 0x133c: 0x1629, 0x133d: 0x1629, 0x133e: 0x1631, 0x133f: 0x1631, + // Block 0x4d, offset 0x1340 + 0x1340: 0x1631, 0x1341: 0x1631, 0x1342: 0x1639, 0x1343: 0x1639, 0x1344: 0x1641, 0x1345: 0x1641, + 0x1346: 0x1649, 0x1347: 0x1649, 0x1348: 0x1651, 0x1349: 0x1651, 0x134a: 0x1659, 0x134b: 0x1659, + 0x134c: 0x1661, 0x134d: 0x1661, 0x134e: 0x1669, 0x134f: 0x1669, 0x1350: 0x1669, 0x1351: 0x1669, + 0x1352: 0x1671, 0x1353: 0x1671, 0x1354: 0x1671, 0x1355: 0x1671, 0x1356: 0x1679, 0x1357: 0x1679, + 0x1358: 0x1679, 0x1359: 0x1679, 0x135a: 0x1681, 0x135b: 0x1681, 0x135c: 0x1681, 0x135d: 0x1681, + 0x135e: 0x1689, 0x135f: 0x1689, 0x1360: 0x1691, 0x1361: 0x1691, 0x1362: 0x1691, 0x1363: 0x1691, + 0x1364: 0x1699, 0x1365: 0x1699, 0x1366: 0x16a1, 0x1367: 0x16a1, 0x1368: 0x16a1, 0x1369: 0x16a1, + 0x136a: 0x16a9, 0x136b: 0x16a9, 0x136c: 0x16a9, 0x136d: 0x16a9, 0x136e: 0x16b1, 0x136f: 0x16b1, + 0x1370: 0x16b9, 0x1371: 0x16b9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818, + 0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818, + 0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818, + // Block 0x4e, offset 0x1380 + 0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0818, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040, + 0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040, + 0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040, + 0x1392: 0x0040, 0x1393: 0x16c1, 0x1394: 0x16c1, 0x1395: 0x16c1, 0x1396: 0x16c1, 0x1397: 0x16c9, + 0x1398: 0x16c9, 0x1399: 0x16d1, 0x139a: 0x16d1, 0x139b: 0x16d9, 0x139c: 0x16d9, 0x139d: 0x0149, + 0x139e: 0x16e1, 0x139f: 0x16e1, 0x13a0: 0x16e9, 0x13a1: 0x16e9, 0x13a2: 0x16f1, 0x13a3: 0x16f1, + 0x13a4: 0x16f9, 0x13a5: 0x16f9, 0x13a6: 0x16f9, 0x13a7: 0x16f9, 0x13a8: 0x1701, 0x13a9: 0x1701, + 0x13aa: 0x1709, 0x13ab: 0x1709, 0x13ac: 0x1711, 0x13ad: 0x1711, 0x13ae: 0x1719, 0x13af: 0x1719, + 0x13b0: 0x1721, 0x13b1: 0x1721, 0x13b2: 0x1729, 0x13b3: 0x1729, 0x13b4: 0x1731, 0x13b5: 0x1731, + 0x13b6: 0x1739, 0x13b7: 0x1739, 0x13b8: 0x1739, 0x13b9: 0x1741, 0x13ba: 0x1741, 0x13bb: 0x1741, + 0x13bc: 0x1749, 0x13bd: 0x1749, 0x13be: 0x1749, 0x13bf: 0x1749, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x1949, 0x13c1: 0x1951, 0x13c2: 0x1959, 0x13c3: 0x1961, 0x13c4: 0x1969, 0x13c5: 0x1971, + 0x13c6: 0x1979, 0x13c7: 0x1981, 0x13c8: 0x1989, 0x13c9: 0x1991, 0x13ca: 0x1999, 0x13cb: 0x19a1, + 0x13cc: 0x19a9, 0x13cd: 0x19b1, 0x13ce: 0x19b9, 0x13cf: 0x19c1, 0x13d0: 0x19c9, 0x13d1: 0x19d1, + 0x13d2: 0x19d9, 0x13d3: 0x19e1, 0x13d4: 0x19e9, 0x13d5: 0x19f1, 0x13d6: 0x19f9, 0x13d7: 0x1a01, + 0x13d8: 0x1a09, 0x13d9: 0x1a11, 0x13da: 0x1a19, 0x13db: 0x1a21, 0x13dc: 0x1a29, 0x13dd: 0x1a31, + 0x13de: 0x1a3a, 0x13df: 0x1a42, 0x13e0: 0x1a4a, 0x13e1: 0x1a52, 0x13e2: 0x1a5a, 0x13e3: 0x1a62, + 0x13e4: 0x1a69, 0x13e5: 0x1a71, 0x13e6: 0x1761, 0x13e7: 0x1a79, 0x13e8: 0x1741, 0x13e9: 0x1769, + 0x13ea: 0x1a81, 0x13eb: 0x1a89, 0x13ec: 0x1789, 0x13ed: 0x1a91, 0x13ee: 0x1791, 0x13ef: 0x1799, + 0x13f0: 0x1a99, 0x13f1: 0x1aa1, 0x13f2: 0x17b9, 0x13f3: 0x1aa9, 0x13f4: 0x17c1, 0x13f5: 0x17c9, + 0x13f6: 0x1ab1, 0x13f7: 0x1ab9, 0x13f8: 0x17d9, 0x13f9: 0x1ac1, 0x13fa: 0x17e1, 0x13fb: 0x17e9, + 0x13fc: 0x18d1, 0x13fd: 0x18d9, 0x13fe: 0x18f1, 0x13ff: 0x18f9, + // Block 0x50, offset 0x1400 + 0x1400: 0x1901, 0x1401: 0x1921, 0x1402: 0x1929, 0x1403: 0x1931, 0x1404: 0x1939, 0x1405: 0x1959, + 0x1406: 0x1961, 0x1407: 0x1969, 0x1408: 0x1ac9, 0x1409: 0x1989, 0x140a: 0x1ad1, 0x140b: 0x1ad9, + 0x140c: 0x19b9, 0x140d: 0x1ae1, 0x140e: 0x19c1, 0x140f: 0x19c9, 0x1410: 0x1a31, 0x1411: 0x1ae9, + 0x1412: 0x1af1, 0x1413: 0x1a09, 0x1414: 0x1af9, 0x1415: 0x1a11, 0x1416: 0x1a19, 0x1417: 0x1751, + 0x1418: 0x1759, 0x1419: 0x1b01, 0x141a: 0x1761, 0x141b: 0x1b09, 0x141c: 0x1771, 0x141d: 0x1779, + 0x141e: 0x1781, 0x141f: 0x1789, 0x1420: 0x1b11, 0x1421: 0x17a1, 0x1422: 0x17a9, 0x1423: 0x17b1, + 0x1424: 0x17b9, 0x1425: 0x1b19, 0x1426: 0x17d9, 0x1427: 0x17f1, 0x1428: 0x17f9, 0x1429: 0x1801, + 0x142a: 0x1809, 0x142b: 0x1811, 0x142c: 0x1821, 0x142d: 0x1829, 0x142e: 0x1831, 0x142f: 0x1839, + 0x1430: 0x1841, 0x1431: 0x1849, 0x1432: 0x1b21, 0x1433: 0x1851, 0x1434: 0x1859, 0x1435: 0x1861, + 0x1436: 0x1869, 0x1437: 0x1871, 0x1438: 0x1879, 0x1439: 0x1889, 0x143a: 0x1891, 0x143b: 0x1899, + 0x143c: 0x18a1, 0x143d: 0x18a9, 0x143e: 0x18b1, 0x143f: 0x18b9, + // Block 0x51, offset 0x1440 + 0x1440: 0x18c1, 0x1441: 0x18c9, 0x1442: 0x18e1, 0x1443: 0x18e9, 0x1444: 0x1909, 0x1445: 0x1911, + 0x1446: 0x1919, 0x1447: 0x1921, 0x1448: 0x1929, 0x1449: 0x1941, 0x144a: 0x1949, 0x144b: 0x1951, + 0x144c: 0x1959, 0x144d: 0x1b29, 0x144e: 0x1971, 0x144f: 0x1979, 0x1450: 0x1981, 0x1451: 0x1989, + 0x1452: 0x19a1, 0x1453: 0x19a9, 0x1454: 0x19b1, 0x1455: 0x19b9, 0x1456: 0x1b31, 0x1457: 0x19d1, + 0x1458: 0x19d9, 0x1459: 0x1b39, 0x145a: 0x19f1, 0x145b: 0x19f9, 0x145c: 0x1a01, 0x145d: 0x1a09, + 0x145e: 0x1b41, 0x145f: 0x1761, 0x1460: 0x1b09, 0x1461: 0x1789, 0x1462: 0x1b11, 0x1463: 0x17b9, + 0x1464: 0x1b19, 0x1465: 0x17d9, 0x1466: 0x1b49, 0x1467: 0x1841, 0x1468: 0x1b51, 0x1469: 0x1b59, + 0x146a: 0x1b61, 0x146b: 0x1921, 0x146c: 0x1929, 0x146d: 0x1959, 0x146e: 0x19b9, 0x146f: 0x1b31, + 0x1470: 0x1a09, 0x1471: 0x1b41, 0x1472: 0x1b69, 0x1473: 0x1b71, 0x1474: 0x1b79, 0x1475: 0x1b81, + 0x1476: 0x1b89, 0x1477: 0x1b91, 0x1478: 0x1b99, 0x1479: 0x1ba1, 0x147a: 0x1ba9, 0x147b: 0x1bb1, + 0x147c: 0x1bb9, 0x147d: 0x1bc1, 0x147e: 0x1bc9, 0x147f: 0x1bd1, + // Block 0x52, offset 0x1480 + 0x1480: 0x1bd9, 0x1481: 0x1be1, 0x1482: 0x1be9, 0x1483: 0x1bf1, 0x1484: 0x1bf9, 0x1485: 0x1c01, + 0x1486: 0x1c09, 0x1487: 0x1c11, 0x1488: 0x1c19, 0x1489: 0x1c21, 0x148a: 0x1c29, 0x148b: 0x1c31, + 0x148c: 0x1b59, 0x148d: 0x1c39, 0x148e: 0x1c41, 0x148f: 0x1c49, 0x1490: 0x1c51, 0x1491: 0x1b81, + 0x1492: 0x1b89, 0x1493: 0x1b91, 0x1494: 0x1b99, 0x1495: 0x1ba1, 0x1496: 0x1ba9, 0x1497: 0x1bb1, + 0x1498: 0x1bb9, 0x1499: 0x1bc1, 0x149a: 0x1bc9, 0x149b: 0x1bd1, 0x149c: 0x1bd9, 0x149d: 0x1be1, + 0x149e: 0x1be9, 0x149f: 0x1bf1, 0x14a0: 0x1bf9, 0x14a1: 0x1c01, 0x14a2: 0x1c09, 0x14a3: 0x1c11, + 0x14a4: 0x1c19, 0x14a5: 0x1c21, 0x14a6: 0x1c29, 0x14a7: 0x1c31, 0x14a8: 0x1b59, 0x14a9: 0x1c39, + 0x14aa: 0x1c41, 0x14ab: 0x1c49, 0x14ac: 0x1c51, 0x14ad: 0x1c21, 0x14ae: 0x1c29, 0x14af: 0x1c31, + 0x14b0: 0x1b59, 0x14b1: 0x1b51, 0x14b2: 0x1b61, 0x14b3: 0x1881, 0x14b4: 0x1829, 0x14b5: 0x1831, + 0x14b6: 0x1839, 0x14b7: 0x1c21, 0x14b8: 0x1c29, 0x14b9: 0x1c31, 0x14ba: 0x1881, 0x14bb: 0x1889, + 0x14bc: 0x1c59, 0x14bd: 0x1c59, 0x14be: 0x0018, 0x14bf: 0x0018, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x0018, 0x14c1: 0x0018, 0x14c2: 0x0018, 0x14c3: 0x0018, 0x14c4: 0x0018, 0x14c5: 0x0018, + 0x14c6: 0x0018, 0x14c7: 0x0018, 0x14c8: 0x0018, 0x14c9: 0x0018, 0x14ca: 0x0018, 0x14cb: 0x0018, + 0x14cc: 0x0018, 0x14cd: 0x0018, 0x14ce: 0x0018, 0x14cf: 0x0018, 0x14d0: 0x1c61, 0x14d1: 0x1c69, + 0x14d2: 0x1c69, 0x14d3: 0x1c71, 0x14d4: 0x1c79, 0x14d5: 0x1c81, 0x14d6: 0x1c89, 0x14d7: 0x1c91, + 0x14d8: 0x1c99, 0x14d9: 0x1c99, 0x14da: 0x1ca1, 0x14db: 0x1ca9, 0x14dc: 0x1cb1, 0x14dd: 0x1cb9, + 0x14de: 0x1cc1, 0x14df: 0x1cc9, 0x14e0: 0x1cc9, 0x14e1: 0x1cd1, 0x14e2: 0x1cd9, 0x14e3: 0x1cd9, + 0x14e4: 0x1ce1, 0x14e5: 0x1ce1, 0x14e6: 0x1ce9, 0x14e7: 0x1cf1, 0x14e8: 0x1cf1, 0x14e9: 0x1cf9, + 0x14ea: 0x1d01, 0x14eb: 0x1d01, 0x14ec: 0x1d09, 0x14ed: 0x1d09, 0x14ee: 0x1d11, 0x14ef: 0x1d19, + 0x14f0: 0x1d19, 0x14f1: 0x1d21, 0x14f2: 0x1d21, 0x14f3: 0x1d29, 0x14f4: 0x1d31, 0x14f5: 0x1d39, + 0x14f6: 0x1d41, 0x14f7: 0x1d41, 0x14f8: 0x1d49, 0x14f9: 0x1d51, 0x14fa: 0x1d59, 0x14fb: 0x1d61, + 0x14fc: 0x1d69, 0x14fd: 0x1d69, 0x14fe: 0x1d71, 0x14ff: 0x1d79, + // Block 0x54, offset 0x1500 + 0x1500: 0x1f29, 0x1501: 0x1f31, 0x1502: 0x1f39, 0x1503: 0x1f11, 0x1504: 0x1d39, 0x1505: 0x1ce9, + 0x1506: 0x1f41, 0x1507: 0x1f49, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040, + 0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0018, 0x1510: 0x0040, 0x1511: 0x0040, + 0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040, + 0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040, + 0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040, + 0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040, + 0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040, + 0x1530: 0x1f51, 0x1531: 0x1f59, 0x1532: 0x1f61, 0x1533: 0x1f69, 0x1534: 0x1f71, 0x1535: 0x1f79, + 0x1536: 0x1f81, 0x1537: 0x1f89, 0x1538: 0x1f91, 0x1539: 0x1f99, 0x153a: 0x1fa2, 0x153b: 0x1faa, + 0x153c: 0x1fb1, 0x153d: 0x0018, 0x153e: 0x0018, 0x153f: 0x0018, + // Block 0x55, offset 0x1540 + 0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0, + 0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0, + 0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0x1fba, 0x1551: 0x7d8d, + 0x1552: 0x0040, 0x1553: 0x1fc2, 0x1554: 0x0122, 0x1555: 0x1fca, 0x1556: 0x1fd2, 0x1557: 0x7dad, + 0x1558: 0x7dcd, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040, + 0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308, + 0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308, + 0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308, + 0x1570: 0x0040, 0x1571: 0x7ded, 0x1572: 0x7e0d, 0x1573: 0x1fda, 0x1574: 0x1fda, 0x1575: 0x072a, + 0x1576: 0x0732, 0x1577: 0x1fe2, 0x1578: 0x1fea, 0x1579: 0x7e2d, 0x157a: 0x7e4d, 0x157b: 0x7e6d, + 0x157c: 0x7e2d, 0x157d: 0x7e8d, 0x157e: 0x7ead, 0x157f: 0x7e8d, + // Block 0x56, offset 0x1580 + 0x1580: 0x7ecd, 0x1581: 0x7eed, 0x1582: 0x7f0d, 0x1583: 0x7eed, 0x1584: 0x7f2d, 0x1585: 0x0018, + 0x1586: 0x0018, 0x1587: 0x1ff2, 0x1588: 0x1ffa, 0x1589: 0x7f4e, 0x158a: 0x7f6e, 0x158b: 0x7f8e, + 0x158c: 0x7fae, 0x158d: 0x1fda, 0x158e: 0x1fda, 0x158f: 0x1fda, 0x1590: 0x1fba, 0x1591: 0x7fcd, + 0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x0122, 0x1595: 0x1fc2, 0x1596: 0x1fd2, 0x1597: 0x1fca, + 0x1598: 0x7fed, 0x1599: 0x072a, 0x159a: 0x0732, 0x159b: 0x1fe2, 0x159c: 0x1fea, 0x159d: 0x7ecd, + 0x159e: 0x7f2d, 0x159f: 0x2002, 0x15a0: 0x200a, 0x15a1: 0x2012, 0x15a2: 0x071a, 0x15a3: 0x2019, + 0x15a4: 0x2022, 0x15a5: 0x202a, 0x15a6: 0x0722, 0x15a7: 0x0040, 0x15a8: 0x2032, 0x15a9: 0x203a, + 0x15aa: 0x2042, 0x15ab: 0x204a, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040, + 0x15b0: 0x800e, 0x15b1: 0x2051, 0x15b2: 0x802e, 0x15b3: 0x0808, 0x15b4: 0x804e, 0x15b5: 0x0040, + 0x15b6: 0x806e, 0x15b7: 0x2059, 0x15b8: 0x808e, 0x15b9: 0x2061, 0x15ba: 0x80ae, 0x15bb: 0x2069, + 0x15bc: 0x80ce, 0x15bd: 0x2071, 0x15be: 0x80ee, 0x15bf: 0x2079, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x2081, 0x15c1: 0x2089, 0x15c2: 0x2089, 0x15c3: 0x2091, 0x15c4: 0x2091, 0x15c5: 0x2099, + 0x15c6: 0x2099, 0x15c7: 0x20a1, 0x15c8: 0x20a1, 0x15c9: 0x20a9, 0x15ca: 0x20a9, 0x15cb: 0x20a9, + 0x15cc: 0x20a9, 0x15cd: 0x20b1, 0x15ce: 0x20b1, 0x15cf: 0x20b9, 0x15d0: 0x20b9, 0x15d1: 0x20b9, + 0x15d2: 0x20b9, 0x15d3: 0x20c1, 0x15d4: 0x20c1, 0x15d5: 0x20c9, 0x15d6: 0x20c9, 0x15d7: 0x20c9, + 0x15d8: 0x20c9, 0x15d9: 0x20d1, 0x15da: 0x20d1, 0x15db: 0x20d1, 0x15dc: 0x20d1, 0x15dd: 0x20d9, + 0x15de: 0x20d9, 0x15df: 0x20d9, 0x15e0: 0x20d9, 0x15e1: 0x20e1, 0x15e2: 0x20e1, 0x15e3: 0x20e1, + 0x15e4: 0x20e1, 0x15e5: 0x20e9, 0x15e6: 0x20e9, 0x15e7: 0x20e9, 0x15e8: 0x20e9, 0x15e9: 0x20f1, + 0x15ea: 0x20f1, 0x15eb: 0x20f9, 0x15ec: 0x20f9, 0x15ed: 0x2101, 0x15ee: 0x2101, 0x15ef: 0x2109, + 0x15f0: 0x2109, 0x15f1: 0x2111, 0x15f2: 0x2111, 0x15f3: 0x2111, 0x15f4: 0x2111, 0x15f5: 0x2119, + 0x15f6: 0x2119, 0x15f7: 0x2119, 0x15f8: 0x2119, 0x15f9: 0x2121, 0x15fa: 0x2121, 0x15fb: 0x2121, + 0x15fc: 0x2121, 0x15fd: 0x2129, 0x15fe: 0x2129, 0x15ff: 0x2129, + // Block 0x58, offset 0x1600 + 0x1600: 0x2129, 0x1601: 0x2131, 0x1602: 0x2131, 0x1603: 0x2131, 0x1604: 0x2131, 0x1605: 0x2139, + 0x1606: 0x2139, 0x1607: 0x2139, 0x1608: 0x2139, 0x1609: 0x2141, 0x160a: 0x2141, 0x160b: 0x2141, + 0x160c: 0x2141, 0x160d: 0x2149, 0x160e: 0x2149, 0x160f: 0x2149, 0x1610: 0x2149, 0x1611: 0x2151, + 0x1612: 0x2151, 0x1613: 0x2151, 0x1614: 0x2151, 0x1615: 0x2159, 0x1616: 0x2159, 0x1617: 0x2159, + 0x1618: 0x2159, 0x1619: 0x2161, 0x161a: 0x2161, 0x161b: 0x2161, 0x161c: 0x2161, 0x161d: 0x2169, + 0x161e: 0x2169, 0x161f: 0x2169, 0x1620: 0x2169, 0x1621: 0x2171, 0x1622: 0x2171, 0x1623: 0x2171, + 0x1624: 0x2171, 0x1625: 0x2179, 0x1626: 0x2179, 0x1627: 0x2179, 0x1628: 0x2179, 0x1629: 0x2181, + 0x162a: 0x2181, 0x162b: 0x2181, 0x162c: 0x2181, 0x162d: 0x2189, 0x162e: 0x2189, 0x162f: 0x1701, + 0x1630: 0x1701, 0x1631: 0x2191, 0x1632: 0x2191, 0x1633: 0x2191, 0x1634: 0x2191, 0x1635: 0x2199, + 0x1636: 0x2199, 0x1637: 0x21a1, 0x1638: 0x21a1, 0x1639: 0x21a9, 0x163a: 0x21a9, 0x163b: 0x21b1, + 0x163c: 0x21b1, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0, + // Block 0x59, offset 0x1640 + 0x1640: 0x0040, 0x1641: 0x1fca, 0x1642: 0x21ba, 0x1643: 0x2002, 0x1644: 0x203a, 0x1645: 0x2042, + 0x1646: 0x200a, 0x1647: 0x21c2, 0x1648: 0x072a, 0x1649: 0x0732, 0x164a: 0x2012, 0x164b: 0x071a, + 0x164c: 0x1fba, 0x164d: 0x2019, 0x164e: 0x0961, 0x164f: 0x21ca, 0x1650: 0x06e1, 0x1651: 0x0049, + 0x1652: 0x0029, 0x1653: 0x0031, 0x1654: 0x06e9, 0x1655: 0x06f1, 0x1656: 0x06f9, 0x1657: 0x0701, + 0x1658: 0x0709, 0x1659: 0x0711, 0x165a: 0x1fc2, 0x165b: 0x0122, 0x165c: 0x2022, 0x165d: 0x0722, + 0x165e: 0x202a, 0x165f: 0x1fd2, 0x1660: 0x204a, 0x1661: 0x0019, 0x1662: 0x02e9, 0x1663: 0x03d9, + 0x1664: 0x02f1, 0x1665: 0x02f9, 0x1666: 0x03f1, 0x1667: 0x0309, 0x1668: 0x00a9, 0x1669: 0x0311, + 0x166a: 0x00b1, 0x166b: 0x0319, 0x166c: 0x0101, 0x166d: 0x0321, 0x166e: 0x0329, 0x166f: 0x0051, + 0x1670: 0x0339, 0x1671: 0x0751, 0x1672: 0x00b9, 0x1673: 0x0089, 0x1674: 0x0341, 0x1675: 0x0349, + 0x1676: 0x0391, 0x1677: 0x00c1, 0x1678: 0x0109, 0x1679: 0x00c9, 0x167a: 0x04b1, 0x167b: 0x1ff2, + 0x167c: 0x2032, 0x167d: 0x1ffa, 0x167e: 0x21d2, 0x167f: 0x1fda, + // Block 0x5a, offset 0x1680 + 0x1680: 0x0672, 0x1681: 0x0019, 0x1682: 0x02e9, 0x1683: 0x03d9, 0x1684: 0x02f1, 0x1685: 0x02f9, + 0x1686: 0x03f1, 0x1687: 0x0309, 0x1688: 0x00a9, 0x1689: 0x0311, 0x168a: 0x00b1, 0x168b: 0x0319, + 0x168c: 0x0101, 0x168d: 0x0321, 0x168e: 0x0329, 0x168f: 0x0051, 0x1690: 0x0339, 0x1691: 0x0751, + 0x1692: 0x00b9, 0x1693: 0x0089, 0x1694: 0x0341, 0x1695: 0x0349, 0x1696: 0x0391, 0x1697: 0x00c1, + 0x1698: 0x0109, 0x1699: 0x00c9, 0x169a: 0x04b1, 0x169b: 0x1fe2, 0x169c: 0x21da, 0x169d: 0x1fea, + 0x169e: 0x21e2, 0x169f: 0x810d, 0x16a0: 0x812d, 0x16a1: 0x0961, 0x16a2: 0x814d, 0x16a3: 0x814d, + 0x16a4: 0x816d, 0x16a5: 0x818d, 0x16a6: 0x81ad, 0x16a7: 0x81cd, 0x16a8: 0x81ed, 0x16a9: 0x820d, + 0x16aa: 0x822d, 0x16ab: 0x824d, 0x16ac: 0x826d, 0x16ad: 0x828d, 0x16ae: 0x82ad, 0x16af: 0x82cd, + 0x16b0: 0x82ed, 0x16b1: 0x830d, 0x16b2: 0x832d, 0x16b3: 0x834d, 0x16b4: 0x836d, 0x16b5: 0x838d, + 0x16b6: 0x83ad, 0x16b7: 0x83cd, 0x16b8: 0x83ed, 0x16b9: 0x840d, 0x16ba: 0x842d, 0x16bb: 0x844d, + 0x16bc: 0x81ed, 0x16bd: 0x846d, 0x16be: 0x848d, 0x16bf: 0x824d, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x84ad, 0x16c1: 0x84cd, 0x16c2: 0x84ed, 0x16c3: 0x850d, 0x16c4: 0x852d, 0x16c5: 0x854d, + 0x16c6: 0x856d, 0x16c7: 0x858d, 0x16c8: 0x850d, 0x16c9: 0x85ad, 0x16ca: 0x850d, 0x16cb: 0x85cd, + 0x16cc: 0x85cd, 0x16cd: 0x85ed, 0x16ce: 0x85ed, 0x16cf: 0x860d, 0x16d0: 0x854d, 0x16d1: 0x862d, + 0x16d2: 0x864d, 0x16d3: 0x862d, 0x16d4: 0x866d, 0x16d5: 0x864d, 0x16d6: 0x868d, 0x16d7: 0x868d, + 0x16d8: 0x86ad, 0x16d9: 0x86ad, 0x16da: 0x86cd, 0x16db: 0x86cd, 0x16dc: 0x864d, 0x16dd: 0x814d, + 0x16de: 0x86ed, 0x16df: 0x870d, 0x16e0: 0x0040, 0x16e1: 0x872d, 0x16e2: 0x874d, 0x16e3: 0x876d, + 0x16e4: 0x878d, 0x16e5: 0x876d, 0x16e6: 0x87ad, 0x16e7: 0x87cd, 0x16e8: 0x87ed, 0x16e9: 0x87ed, + 0x16ea: 0x880d, 0x16eb: 0x880d, 0x16ec: 0x882d, 0x16ed: 0x882d, 0x16ee: 0x880d, 0x16ef: 0x880d, + 0x16f0: 0x884d, 0x16f1: 0x886d, 0x16f2: 0x888d, 0x16f3: 0x88ad, 0x16f4: 0x88cd, 0x16f5: 0x88ed, + 0x16f6: 0x88ed, 0x16f7: 0x88ed, 0x16f8: 0x890d, 0x16f9: 0x890d, 0x16fa: 0x890d, 0x16fb: 0x890d, + 0x16fc: 0x87ed, 0x16fd: 0x87ed, 0x16fe: 0x87ed, 0x16ff: 0x0040, + // Block 0x5c, offset 0x1700 + 0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x874d, 0x1703: 0x872d, 0x1704: 0x892d, 0x1705: 0x872d, + 0x1706: 0x874d, 0x1707: 0x872d, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x894d, 0x170b: 0x874d, + 0x170c: 0x896d, 0x170d: 0x892d, 0x170e: 0x896d, 0x170f: 0x874d, 0x1710: 0x0040, 0x1711: 0x0040, + 0x1712: 0x898d, 0x1713: 0x89ad, 0x1714: 0x88ad, 0x1715: 0x896d, 0x1716: 0x892d, 0x1717: 0x896d, + 0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x89cd, 0x171b: 0x89ed, 0x171c: 0x89cd, 0x171d: 0x0040, + 0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0x21e9, 0x1721: 0x21f1, 0x1722: 0x21f9, 0x1723: 0x8a0e, + 0x1724: 0x2201, 0x1725: 0x2209, 0x1726: 0x8a2d, 0x1727: 0x0040, 0x1728: 0x8a4d, 0x1729: 0x8a6d, + 0x172a: 0x8a8d, 0x172b: 0x8a6d, 0x172c: 0x8aad, 0x172d: 0x8acd, 0x172e: 0x8aed, 0x172f: 0x0040, + 0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040, + 0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340, + 0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040, + // Block 0x5d, offset 0x1740 + 0x1740: 0x0008, 0x1741: 0x0008, 0x1742: 0x0008, 0x1743: 0x0008, 0x1744: 0x0008, 0x1745: 0x0008, + 0x1746: 0x0008, 0x1747: 0x0008, 0x1748: 0x0008, 0x1749: 0x0008, 0x174a: 0x0008, 0x174b: 0x0008, + 0x174c: 0x0008, 0x174d: 0x0008, 0x174e: 0x0008, 0x174f: 0x0008, 0x1750: 0x0008, 0x1751: 0x0008, + 0x1752: 0x0008, 0x1753: 0x0008, 0x1754: 0x0008, 0x1755: 0x0008, 0x1756: 0x0008, 0x1757: 0x0008, + 0x1758: 0x0008, 0x1759: 0x0008, 0x175a: 0x0008, 0x175b: 0x0008, 0x175c: 0x0008, 0x175d: 0x0008, + 0x175e: 0x0008, 0x175f: 0x0008, 0x1760: 0x0008, 0x1761: 0x0008, 0x1762: 0x0008, 0x1763: 0x0008, + 0x1764: 0x0040, 0x1765: 0x0040, 0x1766: 0x0040, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040, + 0x176a: 0x0040, 0x176b: 0x0040, 0x176c: 0x0040, 0x176d: 0x0040, 0x176e: 0x0040, 0x176f: 0x0018, + 0x1770: 0x8b3d, 0x1771: 0x8b55, 0x1772: 0x8b6d, 0x1773: 0x8b55, 0x1774: 0x8b85, 0x1775: 0x8b55, + 0x1776: 0x8b6d, 0x1777: 0x8b55, 0x1778: 0x8b3d, 0x1779: 0x8b9d, 0x177a: 0x8bb5, 0x177b: 0x0040, + 0x177c: 0x8bcd, 0x177d: 0x8b9d, 0x177e: 0x8bb5, 0x177f: 0x8b9d, + // Block 0x5e, offset 0x1780 + 0x1780: 0xe13d, 0x1781: 0xe14d, 0x1782: 0xe15d, 0x1783: 0xe14d, 0x1784: 0xe17d, 0x1785: 0xe14d, + 0x1786: 0xe15d, 0x1787: 0xe14d, 0x1788: 0xe13d, 0x1789: 0xe1cd, 0x178a: 0xe1dd, 0x178b: 0x0040, + 0x178c: 0xe1fd, 0x178d: 0xe1cd, 0x178e: 0xe1dd, 0x178f: 0xe1cd, 0x1790: 0xe13d, 0x1791: 0xe14d, + 0x1792: 0xe15d, 0x1793: 0x0040, 0x1794: 0xe17d, 0x1795: 0xe14d, 0x1796: 0x0040, 0x1797: 0x0008, + 0x1798: 0x0008, 0x1799: 0x0008, 0x179a: 0x0008, 0x179b: 0x0008, 0x179c: 0x0008, 0x179d: 0x0008, + 0x179e: 0x0008, 0x179f: 0x0008, 0x17a0: 0x0008, 0x17a1: 0x0008, 0x17a2: 0x0040, 0x17a3: 0x0008, + 0x17a4: 0x0008, 0x17a5: 0x0008, 0x17a6: 0x0008, 0x17a7: 0x0008, 0x17a8: 0x0008, 0x17a9: 0x0008, + 0x17aa: 0x0008, 0x17ab: 0x0008, 0x17ac: 0x0008, 0x17ad: 0x0008, 0x17ae: 0x0008, 0x17af: 0x0008, + 0x17b0: 0x0008, 0x17b1: 0x0008, 0x17b2: 0x0040, 0x17b3: 0x0008, 0x17b4: 0x0008, 0x17b5: 0x0008, + 0x17b6: 0x0008, 0x17b7: 0x0008, 0x17b8: 0x0008, 0x17b9: 0x0008, 0x17ba: 0x0040, 0x17bb: 0x0008, + 0x17bc: 0x0008, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x0008, 0x17c1: 0x2211, 0x17c2: 0x2219, 0x17c3: 0x02e1, 0x17c4: 0x2221, 0x17c5: 0x2229, + 0x17c6: 0x0040, 0x17c7: 0x2231, 0x17c8: 0x2239, 0x17c9: 0x2241, 0x17ca: 0x2249, 0x17cb: 0x2251, + 0x17cc: 0x2259, 0x17cd: 0x2261, 0x17ce: 0x2269, 0x17cf: 0x2271, 0x17d0: 0x2279, 0x17d1: 0x2281, + 0x17d2: 0x2289, 0x17d3: 0x2291, 0x17d4: 0x2299, 0x17d5: 0x0741, 0x17d6: 0x22a1, 0x17d7: 0x22a9, + 0x17d8: 0x22b1, 0x17d9: 0x22b9, 0x17da: 0x22c1, 0x17db: 0x13d9, 0x17dc: 0x8be5, 0x17dd: 0x22c9, + 0x17de: 0x22d1, 0x17df: 0x8c05, 0x17e0: 0x22d9, 0x17e1: 0x8c25, 0x17e2: 0x22e1, 0x17e3: 0x22e9, + 0x17e4: 0x22f1, 0x17e5: 0x0751, 0x17e6: 0x22f9, 0x17e7: 0x8c45, 0x17e8: 0x0949, 0x17e9: 0x2301, + 0x17ea: 0x2309, 0x17eb: 0x2311, 0x17ec: 0x2319, 0x17ed: 0x2321, 0x17ee: 0x2329, 0x17ef: 0x2331, + 0x17f0: 0x2339, 0x17f1: 0x0040, 0x17f2: 0x2341, 0x17f3: 0x2349, 0x17f4: 0x2351, 0x17f5: 0x2359, + 0x17f6: 0x2361, 0x17f7: 0x2369, 0x17f8: 0x2371, 0x17f9: 0x8c65, 0x17fa: 0x8c85, 0x17fb: 0x0040, + 0x17fc: 0x0040, 0x17fd: 0x0040, 0x17fe: 0x0040, 0x17ff: 0x0040, + // Block 0x60, offset 0x1800 + 0x1800: 0x0a08, 0x1801: 0x0a08, 0x1802: 0x0a08, 0x1803: 0x0a08, 0x1804: 0x0a08, 0x1805: 0x0c08, + 0x1806: 0x0808, 0x1807: 0x0c08, 0x1808: 0x0818, 0x1809: 0x0c08, 0x180a: 0x0c08, 0x180b: 0x0808, + 0x180c: 0x0808, 0x180d: 0x0908, 0x180e: 0x0c08, 0x180f: 0x0c08, 0x1810: 0x0c08, 0x1811: 0x0c08, + 0x1812: 0x0c08, 0x1813: 0x0a08, 0x1814: 0x0a08, 0x1815: 0x0a08, 0x1816: 0x0a08, 0x1817: 0x0908, + 0x1818: 0x0a08, 0x1819: 0x0a08, 0x181a: 0x0a08, 0x181b: 0x0a08, 0x181c: 0x0a08, 0x181d: 0x0c08, + 0x181e: 0x0a08, 0x181f: 0x0a08, 0x1820: 0x0a08, 0x1821: 0x0c08, 0x1822: 0x0808, 0x1823: 0x0808, + 0x1824: 0x0c08, 0x1825: 0x3308, 0x1826: 0x3308, 0x1827: 0x0040, 0x1828: 0x0040, 0x1829: 0x0040, + 0x182a: 0x0040, 0x182b: 0x0a18, 0x182c: 0x0a18, 0x182d: 0x0a18, 0x182e: 0x0a18, 0x182f: 0x0c18, + 0x1830: 0x0818, 0x1831: 0x0818, 0x1832: 0x0818, 0x1833: 0x0818, 0x1834: 0x0818, 0x1835: 0x0818, + 0x1836: 0x0818, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040, + 0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040, + // Block 0x61, offset 0x1840 + 0x1840: 0x0a08, 0x1841: 0x0c08, 0x1842: 0x0a08, 0x1843: 0x0c08, 0x1844: 0x0c08, 0x1845: 0x0c08, + 0x1846: 0x0a08, 0x1847: 0x0a08, 0x1848: 0x0a08, 0x1849: 0x0c08, 0x184a: 0x0a08, 0x184b: 0x0a08, + 0x184c: 0x0c08, 0x184d: 0x0a08, 0x184e: 0x0c08, 0x184f: 0x0c08, 0x1850: 0x0a08, 0x1851: 0x0c08, + 0x1852: 0x0040, 0x1853: 0x0040, 0x1854: 0x0040, 0x1855: 0x0040, 0x1856: 0x0040, 0x1857: 0x0040, + 0x1858: 0x0040, 0x1859: 0x0818, 0x185a: 0x0818, 0x185b: 0x0818, 0x185c: 0x0818, 0x185d: 0x0040, + 0x185e: 0x0040, 0x185f: 0x0040, 0x1860: 0x0040, 0x1861: 0x0040, 0x1862: 0x0040, 0x1863: 0x0040, + 0x1864: 0x0040, 0x1865: 0x0040, 0x1866: 0x0040, 0x1867: 0x0040, 0x1868: 0x0040, 0x1869: 0x0c18, + 0x186a: 0x0c18, 0x186b: 0x0c18, 0x186c: 0x0c18, 0x186d: 0x0a18, 0x186e: 0x0a18, 0x186f: 0x0818, + 0x1870: 0x0040, 0x1871: 0x0040, 0x1872: 0x0040, 0x1873: 0x0040, 0x1874: 0x0040, 0x1875: 0x0040, + 0x1876: 0x0040, 0x1877: 0x0040, 0x1878: 0x0040, 0x1879: 0x0040, 0x187a: 0x0040, 0x187b: 0x0040, + 0x187c: 0x0040, 0x187d: 0x0040, 0x187e: 0x0040, 0x187f: 0x0040, + // Block 0x62, offset 0x1880 + 0x1880: 0x3308, 0x1881: 0x3308, 0x1882: 0x3008, 0x1883: 0x3008, 0x1884: 0x0040, 0x1885: 0x0008, + 0x1886: 0x0008, 0x1887: 0x0008, 0x1888: 0x0008, 0x1889: 0x0008, 0x188a: 0x0008, 0x188b: 0x0008, + 0x188c: 0x0008, 0x188d: 0x0040, 0x188e: 0x0040, 0x188f: 0x0008, 0x1890: 0x0008, 0x1891: 0x0040, + 0x1892: 0x0040, 0x1893: 0x0008, 0x1894: 0x0008, 0x1895: 0x0008, 0x1896: 0x0008, 0x1897: 0x0008, + 0x1898: 0x0008, 0x1899: 0x0008, 0x189a: 0x0008, 0x189b: 0x0008, 0x189c: 0x0008, 0x189d: 0x0008, + 0x189e: 0x0008, 0x189f: 0x0008, 0x18a0: 0x0008, 0x18a1: 0x0008, 0x18a2: 0x0008, 0x18a3: 0x0008, + 0x18a4: 0x0008, 0x18a5: 0x0008, 0x18a6: 0x0008, 0x18a7: 0x0008, 0x18a8: 0x0008, 0x18a9: 0x0040, + 0x18aa: 0x0008, 0x18ab: 0x0008, 0x18ac: 0x0008, 0x18ad: 0x0008, 0x18ae: 0x0008, 0x18af: 0x0008, + 0x18b0: 0x0008, 0x18b1: 0x0040, 0x18b2: 0x0008, 0x18b3: 0x0008, 0x18b4: 0x0040, 0x18b5: 0x0008, + 0x18b6: 0x0008, 0x18b7: 0x0008, 0x18b8: 0x0008, 0x18b9: 0x0008, 0x18ba: 0x0040, 0x18bb: 0x3308, + 0x18bc: 0x3308, 0x18bd: 0x0008, 0x18be: 0x3008, 0x18bf: 0x3008, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x3308, 0x18c1: 0x3008, 0x18c2: 0x3008, 0x18c3: 0x3008, 0x18c4: 0x3008, 0x18c5: 0x0040, + 0x18c6: 0x0040, 0x18c7: 0x3008, 0x18c8: 0x3008, 0x18c9: 0x0040, 0x18ca: 0x0040, 0x18cb: 0x3008, + 0x18cc: 0x3008, 0x18cd: 0x3808, 0x18ce: 0x0040, 0x18cf: 0x0040, 0x18d0: 0x0008, 0x18d1: 0x0040, + 0x18d2: 0x0040, 0x18d3: 0x0040, 0x18d4: 0x0040, 0x18d5: 0x0040, 0x18d6: 0x0040, 0x18d7: 0x3008, + 0x18d8: 0x0040, 0x18d9: 0x0040, 0x18da: 0x0040, 0x18db: 0x0040, 0x18dc: 0x0040, 0x18dd: 0x0008, + 0x18de: 0x0008, 0x18df: 0x0008, 0x18e0: 0x0008, 0x18e1: 0x0008, 0x18e2: 0x3008, 0x18e3: 0x3008, + 0x18e4: 0x0040, 0x18e5: 0x0040, 0x18e6: 0x3308, 0x18e7: 0x3308, 0x18e8: 0x3308, 0x18e9: 0x3308, + 0x18ea: 0x3308, 0x18eb: 0x3308, 0x18ec: 0x3308, 0x18ed: 0x0040, 0x18ee: 0x0040, 0x18ef: 0x0040, + 0x18f0: 0x3308, 0x18f1: 0x3308, 0x18f2: 0x3308, 0x18f3: 0x3308, 0x18f4: 0x3308, 0x18f5: 0x0040, + 0x18f6: 0x0040, 0x18f7: 0x0040, 0x18f8: 0x0040, 0x18f9: 0x0040, 0x18fa: 0x0040, 0x18fb: 0x0040, + 0x18fc: 0x0040, 0x18fd: 0x0040, 0x18fe: 0x0040, 0x18ff: 0x0040, + // Block 0x64, offset 0x1900 + 0x1900: 0x0008, 0x1901: 0x0008, 0x1902: 0x0008, 0x1903: 0x0008, 0x1904: 0x0008, 0x1905: 0x0008, + 0x1906: 0x0008, 0x1907: 0x0040, 0x1908: 0x0040, 0x1909: 0x0008, 0x190a: 0x0040, 0x190b: 0x0040, + 0x190c: 0x0008, 0x190d: 0x0008, 0x190e: 0x0008, 0x190f: 0x0008, 0x1910: 0x0008, 0x1911: 0x0008, + 0x1912: 0x0008, 0x1913: 0x0008, 0x1914: 0x0040, 0x1915: 0x0008, 0x1916: 0x0008, 0x1917: 0x0040, + 0x1918: 0x0008, 0x1919: 0x0008, 0x191a: 0x0008, 0x191b: 0x0008, 0x191c: 0x0008, 0x191d: 0x0008, + 0x191e: 0x0008, 0x191f: 0x0008, 0x1920: 0x0008, 0x1921: 0x0008, 0x1922: 0x0008, 0x1923: 0x0008, + 0x1924: 0x0008, 0x1925: 0x0008, 0x1926: 0x0008, 0x1927: 0x0008, 0x1928: 0x0008, 0x1929: 0x0008, + 0x192a: 0x0008, 0x192b: 0x0008, 0x192c: 0x0008, 0x192d: 0x0008, 0x192e: 0x0008, 0x192f: 0x0008, + 0x1930: 0x3008, 0x1931: 0x3008, 0x1932: 0x3008, 0x1933: 0x3008, 0x1934: 0x3008, 0x1935: 0x3008, + 0x1936: 0x0040, 0x1937: 0x3008, 0x1938: 0x3008, 0x1939: 0x0040, 0x193a: 0x0040, 0x193b: 0x3308, + 0x193c: 0x3308, 0x193d: 0x3808, 0x193e: 0x3b08, 0x193f: 0x0008, + // Block 0x65, offset 0x1940 + 0x1940: 0x0019, 0x1941: 0x02e9, 0x1942: 0x03d9, 0x1943: 0x02f1, 0x1944: 0x02f9, 0x1945: 0x03f1, + 0x1946: 0x0309, 0x1947: 0x00a9, 0x1948: 0x0311, 0x1949: 0x00b1, 0x194a: 0x0319, 0x194b: 0x0101, + 0x194c: 0x0321, 0x194d: 0x0329, 0x194e: 0x0051, 0x194f: 0x0339, 0x1950: 0x0751, 0x1951: 0x00b9, + 0x1952: 0x0089, 0x1953: 0x0341, 0x1954: 0x0349, 0x1955: 0x0391, 0x1956: 0x00c1, 0x1957: 0x0109, + 0x1958: 0x00c9, 0x1959: 0x04b1, 0x195a: 0x0019, 0x195b: 0x02e9, 0x195c: 0x03d9, 0x195d: 0x02f1, + 0x195e: 0x02f9, 0x195f: 0x03f1, 0x1960: 0x0309, 0x1961: 0x00a9, 0x1962: 0x0311, 0x1963: 0x00b1, + 0x1964: 0x0319, 0x1965: 0x0101, 0x1966: 0x0321, 0x1967: 0x0329, 0x1968: 0x0051, 0x1969: 0x0339, + 0x196a: 0x0751, 0x196b: 0x00b9, 0x196c: 0x0089, 0x196d: 0x0341, 0x196e: 0x0349, 0x196f: 0x0391, + 0x1970: 0x00c1, 0x1971: 0x0109, 0x1972: 0x00c9, 0x1973: 0x04b1, 0x1974: 0x0019, 0x1975: 0x02e9, + 0x1976: 0x03d9, 0x1977: 0x02f1, 0x1978: 0x02f9, 0x1979: 0x03f1, 0x197a: 0x0309, 0x197b: 0x00a9, + 0x197c: 0x0311, 0x197d: 0x00b1, 0x197e: 0x0319, 0x197f: 0x0101, + // Block 0x66, offset 0x1980 + 0x1980: 0x0321, 0x1981: 0x0329, 0x1982: 0x0051, 0x1983: 0x0339, 0x1984: 0x0751, 0x1985: 0x00b9, + 0x1986: 0x0089, 0x1987: 0x0341, 0x1988: 0x0349, 0x1989: 0x0391, 0x198a: 0x00c1, 0x198b: 0x0109, + 0x198c: 0x00c9, 0x198d: 0x04b1, 0x198e: 0x0019, 0x198f: 0x02e9, 0x1990: 0x03d9, 0x1991: 0x02f1, + 0x1992: 0x02f9, 0x1993: 0x03f1, 0x1994: 0x0309, 0x1995: 0x0040, 0x1996: 0x0311, 0x1997: 0x00b1, + 0x1998: 0x0319, 0x1999: 0x0101, 0x199a: 0x0321, 0x199b: 0x0329, 0x199c: 0x0051, 0x199d: 0x0339, + 0x199e: 0x0751, 0x199f: 0x00b9, 0x19a0: 0x0089, 0x19a1: 0x0341, 0x19a2: 0x0349, 0x19a3: 0x0391, + 0x19a4: 0x00c1, 0x19a5: 0x0109, 0x19a6: 0x00c9, 0x19a7: 0x04b1, 0x19a8: 0x0019, 0x19a9: 0x02e9, + 0x19aa: 0x03d9, 0x19ab: 0x02f1, 0x19ac: 0x02f9, 0x19ad: 0x03f1, 0x19ae: 0x0309, 0x19af: 0x00a9, + 0x19b0: 0x0311, 0x19b1: 0x00b1, 0x19b2: 0x0319, 0x19b3: 0x0101, 0x19b4: 0x0321, 0x19b5: 0x0329, + 0x19b6: 0x0051, 0x19b7: 0x0339, 0x19b8: 0x0751, 0x19b9: 0x00b9, 0x19ba: 0x0089, 0x19bb: 0x0341, + 0x19bc: 0x0349, 0x19bd: 0x0391, 0x19be: 0x00c1, 0x19bf: 0x0109, + // Block 0x67, offset 0x19c0 + 0x19c0: 0x00c9, 0x19c1: 0x04b1, 0x19c2: 0x0019, 0x19c3: 0x02e9, 0x19c4: 0x03d9, 0x19c5: 0x02f1, + 0x19c6: 0x02f9, 0x19c7: 0x03f1, 0x19c8: 0x0309, 0x19c9: 0x00a9, 0x19ca: 0x0311, 0x19cb: 0x00b1, + 0x19cc: 0x0319, 0x19cd: 0x0101, 0x19ce: 0x0321, 0x19cf: 0x0329, 0x19d0: 0x0051, 0x19d1: 0x0339, + 0x19d2: 0x0751, 0x19d3: 0x00b9, 0x19d4: 0x0089, 0x19d5: 0x0341, 0x19d6: 0x0349, 0x19d7: 0x0391, + 0x19d8: 0x00c1, 0x19d9: 0x0109, 0x19da: 0x00c9, 0x19db: 0x04b1, 0x19dc: 0x0019, 0x19dd: 0x0040, + 0x19de: 0x03d9, 0x19df: 0x02f1, 0x19e0: 0x0040, 0x19e1: 0x0040, 0x19e2: 0x0309, 0x19e3: 0x0040, + 0x19e4: 0x0040, 0x19e5: 0x00b1, 0x19e6: 0x0319, 0x19e7: 0x0040, 0x19e8: 0x0040, 0x19e9: 0x0329, + 0x19ea: 0x0051, 0x19eb: 0x0339, 0x19ec: 0x0751, 0x19ed: 0x0040, 0x19ee: 0x0089, 0x19ef: 0x0341, + 0x19f0: 0x0349, 0x19f1: 0x0391, 0x19f2: 0x00c1, 0x19f3: 0x0109, 0x19f4: 0x00c9, 0x19f5: 0x04b1, + 0x19f6: 0x0019, 0x19f7: 0x02e9, 0x19f8: 0x03d9, 0x19f9: 0x02f1, 0x19fa: 0x0040, 0x19fb: 0x03f1, + 0x19fc: 0x0040, 0x19fd: 0x00a9, 0x19fe: 0x0311, 0x19ff: 0x00b1, + // Block 0x68, offset 0x1a00 + 0x1a00: 0x0319, 0x1a01: 0x0101, 0x1a02: 0x0321, 0x1a03: 0x0329, 0x1a04: 0x0040, 0x1a05: 0x0339, + 0x1a06: 0x0751, 0x1a07: 0x00b9, 0x1a08: 0x0089, 0x1a09: 0x0341, 0x1a0a: 0x0349, 0x1a0b: 0x0391, + 0x1a0c: 0x00c1, 0x1a0d: 0x0109, 0x1a0e: 0x00c9, 0x1a0f: 0x04b1, 0x1a10: 0x0019, 0x1a11: 0x02e9, + 0x1a12: 0x03d9, 0x1a13: 0x02f1, 0x1a14: 0x02f9, 0x1a15: 0x03f1, 0x1a16: 0x0309, 0x1a17: 0x00a9, + 0x1a18: 0x0311, 0x1a19: 0x00b1, 0x1a1a: 0x0319, 0x1a1b: 0x0101, 0x1a1c: 0x0321, 0x1a1d: 0x0329, + 0x1a1e: 0x0051, 0x1a1f: 0x0339, 0x1a20: 0x0751, 0x1a21: 0x00b9, 0x1a22: 0x0089, 0x1a23: 0x0341, + 0x1a24: 0x0349, 0x1a25: 0x0391, 0x1a26: 0x00c1, 0x1a27: 0x0109, 0x1a28: 0x00c9, 0x1a29: 0x04b1, + 0x1a2a: 0x0019, 0x1a2b: 0x02e9, 0x1a2c: 0x03d9, 0x1a2d: 0x02f1, 0x1a2e: 0x02f9, 0x1a2f: 0x03f1, + 0x1a30: 0x0309, 0x1a31: 0x00a9, 0x1a32: 0x0311, 0x1a33: 0x00b1, 0x1a34: 0x0319, 0x1a35: 0x0101, + 0x1a36: 0x0321, 0x1a37: 0x0329, 0x1a38: 0x0051, 0x1a39: 0x0339, 0x1a3a: 0x0751, 0x1a3b: 0x00b9, + 0x1a3c: 0x0089, 0x1a3d: 0x0341, 0x1a3e: 0x0349, 0x1a3f: 0x0391, + // Block 0x69, offset 0x1a40 + 0x1a40: 0x00c1, 0x1a41: 0x0109, 0x1a42: 0x00c9, 0x1a43: 0x04b1, 0x1a44: 0x0019, 0x1a45: 0x02e9, + 0x1a46: 0x0040, 0x1a47: 0x02f1, 0x1a48: 0x02f9, 0x1a49: 0x03f1, 0x1a4a: 0x0309, 0x1a4b: 0x0040, + 0x1a4c: 0x0040, 0x1a4d: 0x00b1, 0x1a4e: 0x0319, 0x1a4f: 0x0101, 0x1a50: 0x0321, 0x1a51: 0x0329, + 0x1a52: 0x0051, 0x1a53: 0x0339, 0x1a54: 0x0751, 0x1a55: 0x0040, 0x1a56: 0x0089, 0x1a57: 0x0341, + 0x1a58: 0x0349, 0x1a59: 0x0391, 0x1a5a: 0x00c1, 0x1a5b: 0x0109, 0x1a5c: 0x00c9, 0x1a5d: 0x0040, + 0x1a5e: 0x0019, 0x1a5f: 0x02e9, 0x1a60: 0x03d9, 0x1a61: 0x02f1, 0x1a62: 0x02f9, 0x1a63: 0x03f1, + 0x1a64: 0x0309, 0x1a65: 0x00a9, 0x1a66: 0x0311, 0x1a67: 0x00b1, 0x1a68: 0x0319, 0x1a69: 0x0101, + 0x1a6a: 0x0321, 0x1a6b: 0x0329, 0x1a6c: 0x0051, 0x1a6d: 0x0339, 0x1a6e: 0x0751, 0x1a6f: 0x00b9, + 0x1a70: 0x0089, 0x1a71: 0x0341, 0x1a72: 0x0349, 0x1a73: 0x0391, 0x1a74: 0x00c1, 0x1a75: 0x0109, + 0x1a76: 0x00c9, 0x1a77: 0x04b1, 0x1a78: 0x0019, 0x1a79: 0x02e9, 0x1a7a: 0x0040, 0x1a7b: 0x02f1, + 0x1a7c: 0x02f9, 0x1a7d: 0x03f1, 0x1a7e: 0x0309, 0x1a7f: 0x0040, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x0311, 0x1a81: 0x00b1, 0x1a82: 0x0319, 0x1a83: 0x0101, 0x1a84: 0x0321, 0x1a85: 0x0040, + 0x1a86: 0x0051, 0x1a87: 0x0040, 0x1a88: 0x0040, 0x1a89: 0x0040, 0x1a8a: 0x0089, 0x1a8b: 0x0341, + 0x1a8c: 0x0349, 0x1a8d: 0x0391, 0x1a8e: 0x00c1, 0x1a8f: 0x0109, 0x1a90: 0x00c9, 0x1a91: 0x0040, + 0x1a92: 0x0019, 0x1a93: 0x02e9, 0x1a94: 0x03d9, 0x1a95: 0x02f1, 0x1a96: 0x02f9, 0x1a97: 0x03f1, + 0x1a98: 0x0309, 0x1a99: 0x00a9, 0x1a9a: 0x0311, 0x1a9b: 0x00b1, 0x1a9c: 0x0319, 0x1a9d: 0x0101, + 0x1a9e: 0x0321, 0x1a9f: 0x0329, 0x1aa0: 0x0051, 0x1aa1: 0x0339, 0x1aa2: 0x0751, 0x1aa3: 0x00b9, + 0x1aa4: 0x0089, 0x1aa5: 0x0341, 0x1aa6: 0x0349, 0x1aa7: 0x0391, 0x1aa8: 0x00c1, 0x1aa9: 0x0109, + 0x1aaa: 0x00c9, 0x1aab: 0x04b1, 0x1aac: 0x0019, 0x1aad: 0x02e9, 0x1aae: 0x03d9, 0x1aaf: 0x02f1, + 0x1ab0: 0x02f9, 0x1ab1: 0x03f1, 0x1ab2: 0x0309, 0x1ab3: 0x00a9, 0x1ab4: 0x0311, 0x1ab5: 0x00b1, + 0x1ab6: 0x0319, 0x1ab7: 0x0101, 0x1ab8: 0x0321, 0x1ab9: 0x0329, 0x1aba: 0x0051, 0x1abb: 0x0339, + 0x1abc: 0x0751, 0x1abd: 0x00b9, 0x1abe: 0x0089, 0x1abf: 0x0341, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x0349, 0x1ac1: 0x0391, 0x1ac2: 0x00c1, 0x1ac3: 0x0109, 0x1ac4: 0x00c9, 0x1ac5: 0x04b1, + 0x1ac6: 0x0019, 0x1ac7: 0x02e9, 0x1ac8: 0x03d9, 0x1ac9: 0x02f1, 0x1aca: 0x02f9, 0x1acb: 0x03f1, + 0x1acc: 0x0309, 0x1acd: 0x00a9, 0x1ace: 0x0311, 0x1acf: 0x00b1, 0x1ad0: 0x0319, 0x1ad1: 0x0101, + 0x1ad2: 0x0321, 0x1ad3: 0x0329, 0x1ad4: 0x0051, 0x1ad5: 0x0339, 0x1ad6: 0x0751, 0x1ad7: 0x00b9, + 0x1ad8: 0x0089, 0x1ad9: 0x0341, 0x1ada: 0x0349, 0x1adb: 0x0391, 0x1adc: 0x00c1, 0x1add: 0x0109, + 0x1ade: 0x00c9, 0x1adf: 0x04b1, 0x1ae0: 0x0019, 0x1ae1: 0x02e9, 0x1ae2: 0x03d9, 0x1ae3: 0x02f1, + 0x1ae4: 0x02f9, 0x1ae5: 0x03f1, 0x1ae6: 0x0309, 0x1ae7: 0x00a9, 0x1ae8: 0x0311, 0x1ae9: 0x00b1, + 0x1aea: 0x0319, 0x1aeb: 0x0101, 0x1aec: 0x0321, 0x1aed: 0x0329, 0x1aee: 0x0051, 0x1aef: 0x0339, + 0x1af0: 0x0751, 0x1af1: 0x00b9, 0x1af2: 0x0089, 0x1af3: 0x0341, 0x1af4: 0x0349, 0x1af5: 0x0391, + 0x1af6: 0x00c1, 0x1af7: 0x0109, 0x1af8: 0x00c9, 0x1af9: 0x04b1, 0x1afa: 0x0019, 0x1afb: 0x02e9, + 0x1afc: 0x03d9, 0x1afd: 0x02f1, 0x1afe: 0x02f9, 0x1aff: 0x03f1, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x0309, 0x1b01: 0x00a9, 0x1b02: 0x0311, 0x1b03: 0x00b1, 0x1b04: 0x0319, 0x1b05: 0x0101, + 0x1b06: 0x0321, 0x1b07: 0x0329, 0x1b08: 0x0051, 0x1b09: 0x0339, 0x1b0a: 0x0751, 0x1b0b: 0x00b9, + 0x1b0c: 0x0089, 0x1b0d: 0x0341, 0x1b0e: 0x0349, 0x1b0f: 0x0391, 0x1b10: 0x00c1, 0x1b11: 0x0109, + 0x1b12: 0x00c9, 0x1b13: 0x04b1, 0x1b14: 0x0019, 0x1b15: 0x02e9, 0x1b16: 0x03d9, 0x1b17: 0x02f1, + 0x1b18: 0x02f9, 0x1b19: 0x03f1, 0x1b1a: 0x0309, 0x1b1b: 0x00a9, 0x1b1c: 0x0311, 0x1b1d: 0x00b1, + 0x1b1e: 0x0319, 0x1b1f: 0x0101, 0x1b20: 0x0321, 0x1b21: 0x0329, 0x1b22: 0x0051, 0x1b23: 0x0339, + 0x1b24: 0x0751, 0x1b25: 0x00b9, 0x1b26: 0x0089, 0x1b27: 0x0341, 0x1b28: 0x0349, 0x1b29: 0x0391, + 0x1b2a: 0x00c1, 0x1b2b: 0x0109, 0x1b2c: 0x00c9, 0x1b2d: 0x04b1, 0x1b2e: 0x0019, 0x1b2f: 0x02e9, + 0x1b30: 0x03d9, 0x1b31: 0x02f1, 0x1b32: 0x02f9, 0x1b33: 0x03f1, 0x1b34: 0x0309, 0x1b35: 0x00a9, + 0x1b36: 0x0311, 0x1b37: 0x00b1, 0x1b38: 0x0319, 0x1b39: 0x0101, 0x1b3a: 0x0321, 0x1b3b: 0x0329, + 0x1b3c: 0x0051, 0x1b3d: 0x0339, 0x1b3e: 0x0751, 0x1b3f: 0x00b9, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0x0089, 0x1b41: 0x0341, 0x1b42: 0x0349, 0x1b43: 0x0391, 0x1b44: 0x00c1, 0x1b45: 0x0109, + 0x1b46: 0x00c9, 0x1b47: 0x04b1, 0x1b48: 0x0019, 0x1b49: 0x02e9, 0x1b4a: 0x03d9, 0x1b4b: 0x02f1, + 0x1b4c: 0x02f9, 0x1b4d: 0x03f1, 0x1b4e: 0x0309, 0x1b4f: 0x00a9, 0x1b50: 0x0311, 0x1b51: 0x00b1, + 0x1b52: 0x0319, 0x1b53: 0x0101, 0x1b54: 0x0321, 0x1b55: 0x0329, 0x1b56: 0x0051, 0x1b57: 0x0339, + 0x1b58: 0x0751, 0x1b59: 0x00b9, 0x1b5a: 0x0089, 0x1b5b: 0x0341, 0x1b5c: 0x0349, 0x1b5d: 0x0391, + 0x1b5e: 0x00c1, 0x1b5f: 0x0109, 0x1b60: 0x00c9, 0x1b61: 0x04b1, 0x1b62: 0x0019, 0x1b63: 0x02e9, + 0x1b64: 0x03d9, 0x1b65: 0x02f1, 0x1b66: 0x02f9, 0x1b67: 0x03f1, 0x1b68: 0x0309, 0x1b69: 0x00a9, + 0x1b6a: 0x0311, 0x1b6b: 0x00b1, 0x1b6c: 0x0319, 0x1b6d: 0x0101, 0x1b6e: 0x0321, 0x1b6f: 0x0329, + 0x1b70: 0x0051, 0x1b71: 0x0339, 0x1b72: 0x0751, 0x1b73: 0x00b9, 0x1b74: 0x0089, 0x1b75: 0x0341, + 0x1b76: 0x0349, 0x1b77: 0x0391, 0x1b78: 0x00c1, 0x1b79: 0x0109, 0x1b7a: 0x00c9, 0x1b7b: 0x04b1, + 0x1b7c: 0x0019, 0x1b7d: 0x02e9, 0x1b7e: 0x03d9, 0x1b7f: 0x02f1, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0x02f9, 0x1b81: 0x03f1, 0x1b82: 0x0309, 0x1b83: 0x00a9, 0x1b84: 0x0311, 0x1b85: 0x00b1, + 0x1b86: 0x0319, 0x1b87: 0x0101, 0x1b88: 0x0321, 0x1b89: 0x0329, 0x1b8a: 0x0051, 0x1b8b: 0x0339, + 0x1b8c: 0x0751, 0x1b8d: 0x00b9, 0x1b8e: 0x0089, 0x1b8f: 0x0341, 0x1b90: 0x0349, 0x1b91: 0x0391, + 0x1b92: 0x00c1, 0x1b93: 0x0109, 0x1b94: 0x00c9, 0x1b95: 0x04b1, 0x1b96: 0x0019, 0x1b97: 0x02e9, + 0x1b98: 0x03d9, 0x1b99: 0x02f1, 0x1b9a: 0x02f9, 0x1b9b: 0x03f1, 0x1b9c: 0x0309, 0x1b9d: 0x00a9, + 0x1b9e: 0x0311, 0x1b9f: 0x00b1, 0x1ba0: 0x0319, 0x1ba1: 0x0101, 0x1ba2: 0x0321, 0x1ba3: 0x0329, + 0x1ba4: 0x0051, 0x1ba5: 0x0339, 0x1ba6: 0x0751, 0x1ba7: 0x00b9, 0x1ba8: 0x0089, 0x1ba9: 0x0341, + 0x1baa: 0x0349, 0x1bab: 0x0391, 0x1bac: 0x00c1, 0x1bad: 0x0109, 0x1bae: 0x00c9, 0x1baf: 0x04b1, + 0x1bb0: 0x0019, 0x1bb1: 0x02e9, 0x1bb2: 0x03d9, 0x1bb3: 0x02f1, 0x1bb4: 0x02f9, 0x1bb5: 0x03f1, + 0x1bb6: 0x0309, 0x1bb7: 0x00a9, 0x1bb8: 0x0311, 0x1bb9: 0x00b1, 0x1bba: 0x0319, 0x1bbb: 0x0101, + 0x1bbc: 0x0321, 0x1bbd: 0x0329, 0x1bbe: 0x0051, 0x1bbf: 0x0339, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0x0751, 0x1bc1: 0x00b9, 0x1bc2: 0x0089, 0x1bc3: 0x0341, 0x1bc4: 0x0349, 0x1bc5: 0x0391, + 0x1bc6: 0x00c1, 0x1bc7: 0x0109, 0x1bc8: 0x00c9, 0x1bc9: 0x04b1, 0x1bca: 0x0019, 0x1bcb: 0x02e9, + 0x1bcc: 0x03d9, 0x1bcd: 0x02f1, 0x1bce: 0x02f9, 0x1bcf: 0x03f1, 0x1bd0: 0x0309, 0x1bd1: 0x00a9, + 0x1bd2: 0x0311, 0x1bd3: 0x00b1, 0x1bd4: 0x0319, 0x1bd5: 0x0101, 0x1bd6: 0x0321, 0x1bd7: 0x0329, + 0x1bd8: 0x0051, 0x1bd9: 0x0339, 0x1bda: 0x0751, 0x1bdb: 0x00b9, 0x1bdc: 0x0089, 0x1bdd: 0x0341, + 0x1bde: 0x0349, 0x1bdf: 0x0391, 0x1be0: 0x00c1, 0x1be1: 0x0109, 0x1be2: 0x00c9, 0x1be3: 0x04b1, + 0x1be4: 0x23e1, 0x1be5: 0x23e9, 0x1be6: 0x0040, 0x1be7: 0x0040, 0x1be8: 0x23f1, 0x1be9: 0x0399, + 0x1bea: 0x03a1, 0x1beb: 0x03a9, 0x1bec: 0x23f9, 0x1bed: 0x2401, 0x1bee: 0x2409, 0x1bef: 0x04d1, + 0x1bf0: 0x05f9, 0x1bf1: 0x2411, 0x1bf2: 0x2419, 0x1bf3: 0x2421, 0x1bf4: 0x2429, 0x1bf5: 0x2431, + 0x1bf6: 0x2439, 0x1bf7: 0x0799, 0x1bf8: 0x03c1, 0x1bf9: 0x04d1, 0x1bfa: 0x2441, 0x1bfb: 0x2449, + 0x1bfc: 0x2451, 0x1bfd: 0x03b1, 0x1bfe: 0x03b9, 0x1bff: 0x2459, + // Block 0x70, offset 0x1c00 + 0x1c00: 0x0769, 0x1c01: 0x2461, 0x1c02: 0x23f1, 0x1c03: 0x0399, 0x1c04: 0x03a1, 0x1c05: 0x03a9, + 0x1c06: 0x23f9, 0x1c07: 0x2401, 0x1c08: 0x2409, 0x1c09: 0x04d1, 0x1c0a: 0x05f9, 0x1c0b: 0x2411, + 0x1c0c: 0x2419, 0x1c0d: 0x2421, 0x1c0e: 0x2429, 0x1c0f: 0x2431, 0x1c10: 0x2439, 0x1c11: 0x0799, + 0x1c12: 0x03c1, 0x1c13: 0x2441, 0x1c14: 0x2441, 0x1c15: 0x2449, 0x1c16: 0x2451, 0x1c17: 0x03b1, + 0x1c18: 0x03b9, 0x1c19: 0x2459, 0x1c1a: 0x0769, 0x1c1b: 0x2469, 0x1c1c: 0x23f9, 0x1c1d: 0x04d1, + 0x1c1e: 0x2411, 0x1c1f: 0x03b1, 0x1c20: 0x03c1, 0x1c21: 0x0799, 0x1c22: 0x23f1, 0x1c23: 0x0399, + 0x1c24: 0x03a1, 0x1c25: 0x03a9, 0x1c26: 0x23f9, 0x1c27: 0x2401, 0x1c28: 0x2409, 0x1c29: 0x04d1, + 0x1c2a: 0x05f9, 0x1c2b: 0x2411, 0x1c2c: 0x2419, 0x1c2d: 0x2421, 0x1c2e: 0x2429, 0x1c2f: 0x2431, + 0x1c30: 0x2439, 0x1c31: 0x0799, 0x1c32: 0x03c1, 0x1c33: 0x04d1, 0x1c34: 0x2441, 0x1c35: 0x2449, + 0x1c36: 0x2451, 0x1c37: 0x03b1, 0x1c38: 0x03b9, 0x1c39: 0x2459, 0x1c3a: 0x0769, 0x1c3b: 0x2461, + 0x1c3c: 0x23f1, 0x1c3d: 0x0399, 0x1c3e: 0x03a1, 0x1c3f: 0x03a9, + // Block 0x71, offset 0x1c40 + 0x1c40: 0x23f9, 0x1c41: 0x2401, 0x1c42: 0x2409, 0x1c43: 0x04d1, 0x1c44: 0x05f9, 0x1c45: 0x2411, + 0x1c46: 0x2419, 0x1c47: 0x2421, 0x1c48: 0x2429, 0x1c49: 0x2431, 0x1c4a: 0x2439, 0x1c4b: 0x0799, + 0x1c4c: 0x03c1, 0x1c4d: 0x2441, 0x1c4e: 0x2441, 0x1c4f: 0x2449, 0x1c50: 0x2451, 0x1c51: 0x03b1, + 0x1c52: 0x03b9, 0x1c53: 0x2459, 0x1c54: 0x0769, 0x1c55: 0x2469, 0x1c56: 0x23f9, 0x1c57: 0x04d1, + 0x1c58: 0x2411, 0x1c59: 0x03b1, 0x1c5a: 0x03c1, 0x1c5b: 0x0799, 0x1c5c: 0x23f1, 0x1c5d: 0x0399, + 0x1c5e: 0x03a1, 0x1c5f: 0x03a9, 0x1c60: 0x23f9, 0x1c61: 0x2401, 0x1c62: 0x2409, 0x1c63: 0x04d1, + 0x1c64: 0x05f9, 0x1c65: 0x2411, 0x1c66: 0x2419, 0x1c67: 0x2421, 0x1c68: 0x2429, 0x1c69: 0x2431, + 0x1c6a: 0x2439, 0x1c6b: 0x0799, 0x1c6c: 0x03c1, 0x1c6d: 0x04d1, 0x1c6e: 0x2441, 0x1c6f: 0x2449, + 0x1c70: 0x2451, 0x1c71: 0x03b1, 0x1c72: 0x03b9, 0x1c73: 0x2459, 0x1c74: 0x0769, 0x1c75: 0x2461, + 0x1c76: 0x23f1, 0x1c77: 0x0399, 0x1c78: 0x03a1, 0x1c79: 0x03a9, 0x1c7a: 0x23f9, 0x1c7b: 0x2401, + 0x1c7c: 0x2409, 0x1c7d: 0x04d1, 0x1c7e: 0x05f9, 0x1c7f: 0x2411, + // Block 0x72, offset 0x1c80 + 0x1c80: 0x2419, 0x1c81: 0x2421, 0x1c82: 0x2429, 0x1c83: 0x2431, 0x1c84: 0x2439, 0x1c85: 0x0799, + 0x1c86: 0x03c1, 0x1c87: 0x2441, 0x1c88: 0x2441, 0x1c89: 0x2449, 0x1c8a: 0x2451, 0x1c8b: 0x03b1, + 0x1c8c: 0x03b9, 0x1c8d: 0x2459, 0x1c8e: 0x0769, 0x1c8f: 0x2469, 0x1c90: 0x23f9, 0x1c91: 0x04d1, + 0x1c92: 0x2411, 0x1c93: 0x03b1, 0x1c94: 0x03c1, 0x1c95: 0x0799, 0x1c96: 0x23f1, 0x1c97: 0x0399, + 0x1c98: 0x03a1, 0x1c99: 0x03a9, 0x1c9a: 0x23f9, 0x1c9b: 0x2401, 0x1c9c: 0x2409, 0x1c9d: 0x04d1, + 0x1c9e: 0x05f9, 0x1c9f: 0x2411, 0x1ca0: 0x2419, 0x1ca1: 0x2421, 0x1ca2: 0x2429, 0x1ca3: 0x2431, + 0x1ca4: 0x2439, 0x1ca5: 0x0799, 0x1ca6: 0x03c1, 0x1ca7: 0x04d1, 0x1ca8: 0x2441, 0x1ca9: 0x2449, + 0x1caa: 0x2451, 0x1cab: 0x03b1, 0x1cac: 0x03b9, 0x1cad: 0x2459, 0x1cae: 0x0769, 0x1caf: 0x2461, + 0x1cb0: 0x23f1, 0x1cb1: 0x0399, 0x1cb2: 0x03a1, 0x1cb3: 0x03a9, 0x1cb4: 0x23f9, 0x1cb5: 0x2401, + 0x1cb6: 0x2409, 0x1cb7: 0x04d1, 0x1cb8: 0x05f9, 0x1cb9: 0x2411, 0x1cba: 0x2419, 0x1cbb: 0x2421, + 0x1cbc: 0x2429, 0x1cbd: 0x2431, 0x1cbe: 0x2439, 0x1cbf: 0x0799, + // Block 0x73, offset 0x1cc0 + 0x1cc0: 0x03c1, 0x1cc1: 0x2441, 0x1cc2: 0x2441, 0x1cc3: 0x2449, 0x1cc4: 0x2451, 0x1cc5: 0x03b1, + 0x1cc6: 0x03b9, 0x1cc7: 0x2459, 0x1cc8: 0x0769, 0x1cc9: 0x2469, 0x1cca: 0x23f9, 0x1ccb: 0x04d1, + 0x1ccc: 0x2411, 0x1ccd: 0x03b1, 0x1cce: 0x03c1, 0x1ccf: 0x0799, 0x1cd0: 0x23f1, 0x1cd1: 0x0399, + 0x1cd2: 0x03a1, 0x1cd3: 0x03a9, 0x1cd4: 0x23f9, 0x1cd5: 0x2401, 0x1cd6: 0x2409, 0x1cd7: 0x04d1, + 0x1cd8: 0x05f9, 0x1cd9: 0x2411, 0x1cda: 0x2419, 0x1cdb: 0x2421, 0x1cdc: 0x2429, 0x1cdd: 0x2431, + 0x1cde: 0x2439, 0x1cdf: 0x0799, 0x1ce0: 0x03c1, 0x1ce1: 0x04d1, 0x1ce2: 0x2441, 0x1ce3: 0x2449, + 0x1ce4: 0x2451, 0x1ce5: 0x03b1, 0x1ce6: 0x03b9, 0x1ce7: 0x2459, 0x1ce8: 0x0769, 0x1ce9: 0x2461, + 0x1cea: 0x23f1, 0x1ceb: 0x0399, 0x1cec: 0x03a1, 0x1ced: 0x03a9, 0x1cee: 0x23f9, 0x1cef: 0x2401, + 0x1cf0: 0x2409, 0x1cf1: 0x04d1, 0x1cf2: 0x05f9, 0x1cf3: 0x2411, 0x1cf4: 0x2419, 0x1cf5: 0x2421, + 0x1cf6: 0x2429, 0x1cf7: 0x2431, 0x1cf8: 0x2439, 0x1cf9: 0x0799, 0x1cfa: 0x03c1, 0x1cfb: 0x2441, + 0x1cfc: 0x2441, 0x1cfd: 0x2449, 0x1cfe: 0x2451, 0x1cff: 0x03b1, + // Block 0x74, offset 0x1d00 + 0x1d00: 0x03b9, 0x1d01: 0x2459, 0x1d02: 0x0769, 0x1d03: 0x2469, 0x1d04: 0x23f9, 0x1d05: 0x04d1, + 0x1d06: 0x2411, 0x1d07: 0x03b1, 0x1d08: 0x03c1, 0x1d09: 0x0799, 0x1d0a: 0x2471, 0x1d0b: 0x2471, + 0x1d0c: 0x0040, 0x1d0d: 0x0040, 0x1d0e: 0x06e1, 0x1d0f: 0x0049, 0x1d10: 0x0029, 0x1d11: 0x0031, + 0x1d12: 0x06e9, 0x1d13: 0x06f1, 0x1d14: 0x06f9, 0x1d15: 0x0701, 0x1d16: 0x0709, 0x1d17: 0x0711, + 0x1d18: 0x06e1, 0x1d19: 0x0049, 0x1d1a: 0x0029, 0x1d1b: 0x0031, 0x1d1c: 0x06e9, 0x1d1d: 0x06f1, + 0x1d1e: 0x06f9, 0x1d1f: 0x0701, 0x1d20: 0x0709, 0x1d21: 0x0711, 0x1d22: 0x06e1, 0x1d23: 0x0049, + 0x1d24: 0x0029, 0x1d25: 0x0031, 0x1d26: 0x06e9, 0x1d27: 0x06f1, 0x1d28: 0x06f9, 0x1d29: 0x0701, + 0x1d2a: 0x0709, 0x1d2b: 0x0711, 0x1d2c: 0x06e1, 0x1d2d: 0x0049, 0x1d2e: 0x0029, 0x1d2f: 0x0031, + 0x1d30: 0x06e9, 0x1d31: 0x06f1, 0x1d32: 0x06f9, 0x1d33: 0x0701, 0x1d34: 0x0709, 0x1d35: 0x0711, + 0x1d36: 0x06e1, 0x1d37: 0x0049, 0x1d38: 0x0029, 0x1d39: 0x0031, 0x1d3a: 0x06e9, 0x1d3b: 0x06f1, + 0x1d3c: 0x06f9, 0x1d3d: 0x0701, 0x1d3e: 0x0709, 0x1d3f: 0x0711, + // Block 0x75, offset 0x1d40 + 0x1d40: 0x3308, 0x1d41: 0x3308, 0x1d42: 0x3308, 0x1d43: 0x3308, 0x1d44: 0x3308, 0x1d45: 0x3308, + 0x1d46: 0x3308, 0x1d47: 0x0040, 0x1d48: 0x3308, 0x1d49: 0x3308, 0x1d4a: 0x3308, 0x1d4b: 0x3308, + 0x1d4c: 0x3308, 0x1d4d: 0x3308, 0x1d4e: 0x3308, 0x1d4f: 0x3308, 0x1d50: 0x3308, 0x1d51: 0x3308, + 0x1d52: 0x3308, 0x1d53: 0x3308, 0x1d54: 0x3308, 0x1d55: 0x3308, 0x1d56: 0x3308, 0x1d57: 0x3308, + 0x1d58: 0x3308, 0x1d59: 0x0040, 0x1d5a: 0x0040, 0x1d5b: 0x3308, 0x1d5c: 0x3308, 0x1d5d: 0x3308, + 0x1d5e: 0x3308, 0x1d5f: 0x3308, 0x1d60: 0x3308, 0x1d61: 0x3308, 0x1d62: 0x0040, 0x1d63: 0x3308, + 0x1d64: 0x3308, 0x1d65: 0x0040, 0x1d66: 0x3308, 0x1d67: 0x3308, 0x1d68: 0x3308, 0x1d69: 0x3308, + 0x1d6a: 0x3308, 0x1d6b: 0x0040, 0x1d6c: 0x0040, 0x1d6d: 0x0040, 0x1d6e: 0x0040, 0x1d6f: 0x0040, + 0x1d70: 0x2479, 0x1d71: 0x2481, 0x1d72: 0x02a9, 0x1d73: 0x2489, 0x1d74: 0x02b1, 0x1d75: 0x2491, + 0x1d76: 0x2499, 0x1d77: 0x24a1, 0x1d78: 0x24a9, 0x1d79: 0x24b1, 0x1d7a: 0x24b9, 0x1d7b: 0x24c1, + 0x1d7c: 0x02b9, 0x1d7d: 0x24c9, 0x1d7e: 0x24d1, 0x1d7f: 0x02c1, + // Block 0x76, offset 0x1d80 + 0x1d80: 0x02c9, 0x1d81: 0x24d9, 0x1d82: 0x24e1, 0x1d83: 0x24e9, 0x1d84: 0x24f1, 0x1d85: 0x24f9, + 0x1d86: 0x2501, 0x1d87: 0x2509, 0x1d88: 0x2511, 0x1d89: 0x2519, 0x1d8a: 0x2521, 0x1d8b: 0x2529, + 0x1d8c: 0x2531, 0x1d8d: 0x2539, 0x1d8e: 0x2541, 0x1d8f: 0x2549, 0x1d90: 0x2551, 0x1d91: 0x2479, + 0x1d92: 0x2481, 0x1d93: 0x02a9, 0x1d94: 0x2489, 0x1d95: 0x02b1, 0x1d96: 0x2491, 0x1d97: 0x2499, + 0x1d98: 0x24a1, 0x1d99: 0x24a9, 0x1d9a: 0x24b1, 0x1d9b: 0x24b9, 0x1d9c: 0x02b9, 0x1d9d: 0x24c9, + 0x1d9e: 0x02c1, 0x1d9f: 0x24d9, 0x1da0: 0x24e1, 0x1da1: 0x24e9, 0x1da2: 0x24f1, 0x1da3: 0x24f9, + 0x1da4: 0x2501, 0x1da5: 0x02d1, 0x1da6: 0x2509, 0x1da7: 0x2559, 0x1da8: 0x2531, 0x1da9: 0x2561, + 0x1daa: 0x2569, 0x1dab: 0x2571, 0x1dac: 0x2579, 0x1dad: 0x2581, 0x1dae: 0x0040, 0x1daf: 0x0040, + 0x1db0: 0x0040, 0x1db1: 0x0040, 0x1db2: 0x0040, 0x1db3: 0x0040, 0x1db4: 0x0040, 0x1db5: 0x0040, + 0x1db6: 0x0040, 0x1db7: 0x0040, 0x1db8: 0x0040, 0x1db9: 0x0040, 0x1dba: 0x0040, 0x1dbb: 0x0040, + 0x1dbc: 0x0040, 0x1dbd: 0x0040, 0x1dbe: 0x0040, 0x1dbf: 0x0040, + // Block 0x77, offset 0x1dc0 + 0x1dc0: 0xe115, 0x1dc1: 0xe115, 0x1dc2: 0xe135, 0x1dc3: 0xe135, 0x1dc4: 0xe115, 0x1dc5: 0xe115, + 0x1dc6: 0xe175, 0x1dc7: 0xe175, 0x1dc8: 0xe115, 0x1dc9: 0xe115, 0x1dca: 0xe135, 0x1dcb: 0xe135, + 0x1dcc: 0xe115, 0x1dcd: 0xe115, 0x1dce: 0xe1f5, 0x1dcf: 0xe1f5, 0x1dd0: 0xe115, 0x1dd1: 0xe115, + 0x1dd2: 0xe135, 0x1dd3: 0xe135, 0x1dd4: 0xe115, 0x1dd5: 0xe115, 0x1dd6: 0xe175, 0x1dd7: 0xe175, + 0x1dd8: 0xe115, 0x1dd9: 0xe115, 0x1dda: 0xe135, 0x1ddb: 0xe135, 0x1ddc: 0xe115, 0x1ddd: 0xe115, + 0x1dde: 0x8ca5, 0x1ddf: 0x8ca5, 0x1de0: 0x04b5, 0x1de1: 0x04b5, 0x1de2: 0x0a08, 0x1de3: 0x0a08, + 0x1de4: 0x0a08, 0x1de5: 0x0a08, 0x1de6: 0x0a08, 0x1de7: 0x0a08, 0x1de8: 0x0a08, 0x1de9: 0x0a08, + 0x1dea: 0x0a08, 0x1deb: 0x0a08, 0x1dec: 0x0a08, 0x1ded: 0x0a08, 0x1dee: 0x0a08, 0x1def: 0x0a08, + 0x1df0: 0x0a08, 0x1df1: 0x0a08, 0x1df2: 0x0a08, 0x1df3: 0x0a08, 0x1df4: 0x0a08, 0x1df5: 0x0a08, + 0x1df6: 0x0a08, 0x1df7: 0x0a08, 0x1df8: 0x0a08, 0x1df9: 0x0a08, 0x1dfa: 0x0a08, 0x1dfb: 0x0a08, + 0x1dfc: 0x0a08, 0x1dfd: 0x0a08, 0x1dfe: 0x0a08, 0x1dff: 0x0a08, + // Block 0x78, offset 0x1e00 + 0x1e00: 0x20b1, 0x1e01: 0x20b9, 0x1e02: 0x20d9, 0x1e03: 0x20f1, 0x1e04: 0x0040, 0x1e05: 0x2189, + 0x1e06: 0x2109, 0x1e07: 0x20e1, 0x1e08: 0x2131, 0x1e09: 0x2191, 0x1e0a: 0x2161, 0x1e0b: 0x2169, + 0x1e0c: 0x2171, 0x1e0d: 0x2179, 0x1e0e: 0x2111, 0x1e0f: 0x2141, 0x1e10: 0x2151, 0x1e11: 0x2121, + 0x1e12: 0x2159, 0x1e13: 0x2101, 0x1e14: 0x2119, 0x1e15: 0x20c9, 0x1e16: 0x20d1, 0x1e17: 0x20e9, + 0x1e18: 0x20f9, 0x1e19: 0x2129, 0x1e1a: 0x2139, 0x1e1b: 0x2149, 0x1e1c: 0x2589, 0x1e1d: 0x1689, + 0x1e1e: 0x2591, 0x1e1f: 0x2599, 0x1e20: 0x0040, 0x1e21: 0x20b9, 0x1e22: 0x20d9, 0x1e23: 0x0040, + 0x1e24: 0x2181, 0x1e25: 0x0040, 0x1e26: 0x0040, 0x1e27: 0x20e1, 0x1e28: 0x0040, 0x1e29: 0x2191, + 0x1e2a: 0x2161, 0x1e2b: 0x2169, 0x1e2c: 0x2171, 0x1e2d: 0x2179, 0x1e2e: 0x2111, 0x1e2f: 0x2141, + 0x1e30: 0x2151, 0x1e31: 0x2121, 0x1e32: 0x2159, 0x1e33: 0x0040, 0x1e34: 0x2119, 0x1e35: 0x20c9, + 0x1e36: 0x20d1, 0x1e37: 0x20e9, 0x1e38: 0x0040, 0x1e39: 0x2129, 0x1e3a: 0x0040, 0x1e3b: 0x2149, + 0x1e3c: 0x0040, 0x1e3d: 0x0040, 0x1e3e: 0x0040, 0x1e3f: 0x0040, + // Block 0x79, offset 0x1e40 + 0x1e40: 0x0040, 0x1e41: 0x0040, 0x1e42: 0x20d9, 0x1e43: 0x0040, 0x1e44: 0x0040, 0x1e45: 0x0040, + 0x1e46: 0x0040, 0x1e47: 0x20e1, 0x1e48: 0x0040, 0x1e49: 0x2191, 0x1e4a: 0x0040, 0x1e4b: 0x2169, + 0x1e4c: 0x0040, 0x1e4d: 0x2179, 0x1e4e: 0x2111, 0x1e4f: 0x2141, 0x1e50: 0x0040, 0x1e51: 0x2121, + 0x1e52: 0x2159, 0x1e53: 0x0040, 0x1e54: 0x2119, 0x1e55: 0x0040, 0x1e56: 0x0040, 0x1e57: 0x20e9, + 0x1e58: 0x0040, 0x1e59: 0x2129, 0x1e5a: 0x0040, 0x1e5b: 0x2149, 0x1e5c: 0x0040, 0x1e5d: 0x1689, + 0x1e5e: 0x0040, 0x1e5f: 0x2599, 0x1e60: 0x0040, 0x1e61: 0x20b9, 0x1e62: 0x20d9, 0x1e63: 0x0040, + 0x1e64: 0x2181, 0x1e65: 0x0040, 0x1e66: 0x0040, 0x1e67: 0x20e1, 0x1e68: 0x2131, 0x1e69: 0x2191, + 0x1e6a: 0x2161, 0x1e6b: 0x0040, 0x1e6c: 0x2171, 0x1e6d: 0x2179, 0x1e6e: 0x2111, 0x1e6f: 0x2141, + 0x1e70: 0x2151, 0x1e71: 0x2121, 0x1e72: 0x2159, 0x1e73: 0x0040, 0x1e74: 0x2119, 0x1e75: 0x20c9, + 0x1e76: 0x20d1, 0x1e77: 0x20e9, 0x1e78: 0x0040, 0x1e79: 0x2129, 0x1e7a: 0x2139, 0x1e7b: 0x2149, + 0x1e7c: 0x2589, 0x1e7d: 0x0040, 0x1e7e: 0x2591, 0x1e7f: 0x0040, + // Block 0x7a, offset 0x1e80 + 0x1e80: 0x20b1, 0x1e81: 0x20b9, 0x1e82: 0x20d9, 0x1e83: 0x20f1, 0x1e84: 0x2181, 0x1e85: 0x2189, + 0x1e86: 0x2109, 0x1e87: 0x20e1, 0x1e88: 0x2131, 0x1e89: 0x2191, 0x1e8a: 0x0040, 0x1e8b: 0x2169, + 0x1e8c: 0x2171, 0x1e8d: 0x2179, 0x1e8e: 0x2111, 0x1e8f: 0x2141, 0x1e90: 0x2151, 0x1e91: 0x2121, + 0x1e92: 0x2159, 0x1e93: 0x2101, 0x1e94: 0x2119, 0x1e95: 0x20c9, 0x1e96: 0x20d1, 0x1e97: 0x20e9, + 0x1e98: 0x20f9, 0x1e99: 0x2129, 0x1e9a: 0x2139, 0x1e9b: 0x2149, 0x1e9c: 0x0040, 0x1e9d: 0x0040, + 0x1e9e: 0x0040, 0x1e9f: 0x0040, 0x1ea0: 0x0040, 0x1ea1: 0x20b9, 0x1ea2: 0x20d9, 0x1ea3: 0x20f1, + 0x1ea4: 0x0040, 0x1ea5: 0x2189, 0x1ea6: 0x2109, 0x1ea7: 0x20e1, 0x1ea8: 0x2131, 0x1ea9: 0x2191, + 0x1eaa: 0x0040, 0x1eab: 0x2169, 0x1eac: 0x2171, 0x1ead: 0x2179, 0x1eae: 0x2111, 0x1eaf: 0x2141, + 0x1eb0: 0x2151, 0x1eb1: 0x2121, 0x1eb2: 0x2159, 0x1eb3: 0x2101, 0x1eb4: 0x2119, 0x1eb5: 0x20c9, + 0x1eb6: 0x20d1, 0x1eb7: 0x20e9, 0x1eb8: 0x20f9, 0x1eb9: 0x2129, 0x1eba: 0x2139, 0x1ebb: 0x2149, + 0x1ebc: 0x0040, 0x1ebd: 0x0040, 0x1ebe: 0x0040, 0x1ebf: 0x0040, + // Block 0x7b, offset 0x1ec0 + 0x1ec0: 0x0040, 0x1ec1: 0x25a2, 0x1ec2: 0x25aa, 0x1ec3: 0x25b2, 0x1ec4: 0x25ba, 0x1ec5: 0x25c2, + 0x1ec6: 0x25ca, 0x1ec7: 0x25d2, 0x1ec8: 0x25da, 0x1ec9: 0x25e2, 0x1eca: 0x25ea, 0x1ecb: 0x0018, + 0x1ecc: 0x0018, 0x1ecd: 0x0018, 0x1ece: 0x0018, 0x1ecf: 0x0018, 0x1ed0: 0x25f2, 0x1ed1: 0x25fa, + 0x1ed2: 0x2602, 0x1ed3: 0x260a, 0x1ed4: 0x2612, 0x1ed5: 0x261a, 0x1ed6: 0x2622, 0x1ed7: 0x262a, + 0x1ed8: 0x2632, 0x1ed9: 0x263a, 0x1eda: 0x2642, 0x1edb: 0x264a, 0x1edc: 0x2652, 0x1edd: 0x265a, + 0x1ede: 0x2662, 0x1edf: 0x266a, 0x1ee0: 0x2672, 0x1ee1: 0x267a, 0x1ee2: 0x2682, 0x1ee3: 0x268a, + 0x1ee4: 0x2692, 0x1ee5: 0x269a, 0x1ee6: 0x26a2, 0x1ee7: 0x26aa, 0x1ee8: 0x26b2, 0x1ee9: 0x26ba, + 0x1eea: 0x26c1, 0x1eeb: 0x03d9, 0x1eec: 0x00b9, 0x1eed: 0x1239, 0x1eee: 0x26c9, 0x1eef: 0x0018, + 0x1ef0: 0x0019, 0x1ef1: 0x02e9, 0x1ef2: 0x03d9, 0x1ef3: 0x02f1, 0x1ef4: 0x02f9, 0x1ef5: 0x03f1, + 0x1ef6: 0x0309, 0x1ef7: 0x00a9, 0x1ef8: 0x0311, 0x1ef9: 0x00b1, 0x1efa: 0x0319, 0x1efb: 0x0101, + 0x1efc: 0x0321, 0x1efd: 0x0329, 0x1efe: 0x0051, 0x1eff: 0x0339, + // Block 0x7c, offset 0x1f00 + 0x1f00: 0x0751, 0x1f01: 0x00b9, 0x1f02: 0x0089, 0x1f03: 0x0341, 0x1f04: 0x0349, 0x1f05: 0x0391, + 0x1f06: 0x00c1, 0x1f07: 0x0109, 0x1f08: 0x00c9, 0x1f09: 0x04b1, 0x1f0a: 0x26d1, 0x1f0b: 0x11f9, + 0x1f0c: 0x26d9, 0x1f0d: 0x04d9, 0x1f0e: 0x26e1, 0x1f0f: 0x26e9, 0x1f10: 0x0018, 0x1f11: 0x0018, + 0x1f12: 0x0018, 0x1f13: 0x0018, 0x1f14: 0x0018, 0x1f15: 0x0018, 0x1f16: 0x0018, 0x1f17: 0x0018, + 0x1f18: 0x0018, 0x1f19: 0x0018, 0x1f1a: 0x0018, 0x1f1b: 0x0018, 0x1f1c: 0x0018, 0x1f1d: 0x0018, + 0x1f1e: 0x0018, 0x1f1f: 0x0018, 0x1f20: 0x0018, 0x1f21: 0x0018, 0x1f22: 0x0018, 0x1f23: 0x0018, + 0x1f24: 0x0018, 0x1f25: 0x0018, 0x1f26: 0x0018, 0x1f27: 0x0018, 0x1f28: 0x0018, 0x1f29: 0x0018, + 0x1f2a: 0x26f1, 0x1f2b: 0x26f9, 0x1f2c: 0x2701, 0x1f2d: 0x0018, 0x1f2e: 0x0018, 0x1f2f: 0x0018, + 0x1f30: 0x0018, 0x1f31: 0x0018, 0x1f32: 0x0018, 0x1f33: 0x0018, 0x1f34: 0x0018, 0x1f35: 0x0018, + 0x1f36: 0x0018, 0x1f37: 0x0018, 0x1f38: 0x0018, 0x1f39: 0x0018, 0x1f3a: 0x0018, 0x1f3b: 0x0018, + 0x1f3c: 0x0018, 0x1f3d: 0x0018, 0x1f3e: 0x0018, 0x1f3f: 0x0018, + // Block 0x7d, offset 0x1f40 + 0x1f40: 0x2711, 0x1f41: 0x2719, 0x1f42: 0x2721, 0x1f43: 0x0040, 0x1f44: 0x0040, 0x1f45: 0x0040, + 0x1f46: 0x0040, 0x1f47: 0x0040, 0x1f48: 0x0040, 0x1f49: 0x0040, 0x1f4a: 0x0040, 0x1f4b: 0x0040, + 0x1f4c: 0x0040, 0x1f4d: 0x0040, 0x1f4e: 0x0040, 0x1f4f: 0x0040, 0x1f50: 0x2729, 0x1f51: 0x2731, + 0x1f52: 0x2739, 0x1f53: 0x2741, 0x1f54: 0x2749, 0x1f55: 0x2751, 0x1f56: 0x2759, 0x1f57: 0x2761, + 0x1f58: 0x2769, 0x1f59: 0x2771, 0x1f5a: 0x2779, 0x1f5b: 0x2781, 0x1f5c: 0x2789, 0x1f5d: 0x2791, + 0x1f5e: 0x2799, 0x1f5f: 0x27a1, 0x1f60: 0x27a9, 0x1f61: 0x27b1, 0x1f62: 0x27b9, 0x1f63: 0x27c1, + 0x1f64: 0x27c9, 0x1f65: 0x27d1, 0x1f66: 0x27d9, 0x1f67: 0x27e1, 0x1f68: 0x27e9, 0x1f69: 0x27f1, + 0x1f6a: 0x27f9, 0x1f6b: 0x2801, 0x1f6c: 0x2809, 0x1f6d: 0x2811, 0x1f6e: 0x2819, 0x1f6f: 0x2821, + 0x1f70: 0x2829, 0x1f71: 0x2831, 0x1f72: 0x2839, 0x1f73: 0x2841, 0x1f74: 0x2849, 0x1f75: 0x2851, + 0x1f76: 0x2859, 0x1f77: 0x2861, 0x1f78: 0x2869, 0x1f79: 0x2871, 0x1f7a: 0x2879, 0x1f7b: 0x2881, + 0x1f7c: 0x0040, 0x1f7d: 0x0040, 0x1f7e: 0x0040, 0x1f7f: 0x0040, + // Block 0x7e, offset 0x1f80 + 0x1f80: 0x28e1, 0x1f81: 0x28e9, 0x1f82: 0x28f1, 0x1f83: 0x8cbd, 0x1f84: 0x28f9, 0x1f85: 0x2901, + 0x1f86: 0x2909, 0x1f87: 0x2911, 0x1f88: 0x2919, 0x1f89: 0x2921, 0x1f8a: 0x2929, 0x1f8b: 0x2931, + 0x1f8c: 0x2939, 0x1f8d: 0x8cdd, 0x1f8e: 0x2941, 0x1f8f: 0x2949, 0x1f90: 0x2951, 0x1f91: 0x2959, + 0x1f92: 0x8cfd, 0x1f93: 0x2961, 0x1f94: 0x2969, 0x1f95: 0x2799, 0x1f96: 0x8d1d, 0x1f97: 0x2971, + 0x1f98: 0x2979, 0x1f99: 0x2981, 0x1f9a: 0x2989, 0x1f9b: 0x2991, 0x1f9c: 0x8d3d, 0x1f9d: 0x2999, + 0x1f9e: 0x29a1, 0x1f9f: 0x29a9, 0x1fa0: 0x29b1, 0x1fa1: 0x29b9, 0x1fa2: 0x2871, 0x1fa3: 0x29c1, + 0x1fa4: 0x29c9, 0x1fa5: 0x29d1, 0x1fa6: 0x29d9, 0x1fa7: 0x29e1, 0x1fa8: 0x29e9, 0x1fa9: 0x29f1, + 0x1faa: 0x29f9, 0x1fab: 0x2a01, 0x1fac: 0x2a09, 0x1fad: 0x2a11, 0x1fae: 0x2a19, 0x1faf: 0x2a21, + 0x1fb0: 0x2a29, 0x1fb1: 0x2a31, 0x1fb2: 0x2a31, 0x1fb3: 0x2a31, 0x1fb4: 0x8d5d, 0x1fb5: 0x2a39, + 0x1fb6: 0x2a41, 0x1fb7: 0x2a49, 0x1fb8: 0x8d7d, 0x1fb9: 0x2a51, 0x1fba: 0x2a59, 0x1fbb: 0x2a61, + 0x1fbc: 0x2a69, 0x1fbd: 0x2a71, 0x1fbe: 0x2a79, 0x1fbf: 0x2a81, + // Block 0x7f, offset 0x1fc0 + 0x1fc0: 0x2a89, 0x1fc1: 0x2a91, 0x1fc2: 0x2a99, 0x1fc3: 0x2aa1, 0x1fc4: 0x2aa9, 0x1fc5: 0x2ab1, + 0x1fc6: 0x2ab1, 0x1fc7: 0x2ab9, 0x1fc8: 0x2ac1, 0x1fc9: 0x2ac9, 0x1fca: 0x2ad1, 0x1fcb: 0x2ad9, + 0x1fcc: 0x2ae1, 0x1fcd: 0x2ae9, 0x1fce: 0x2af1, 0x1fcf: 0x2af9, 0x1fd0: 0x2b01, 0x1fd1: 0x2b09, + 0x1fd2: 0x2b11, 0x1fd3: 0x2b19, 0x1fd4: 0x2b21, 0x1fd5: 0x2b29, 0x1fd6: 0x2b31, 0x1fd7: 0x2b39, + 0x1fd8: 0x2b41, 0x1fd9: 0x8d9d, 0x1fda: 0x2b49, 0x1fdb: 0x2b51, 0x1fdc: 0x2b59, 0x1fdd: 0x2751, + 0x1fde: 0x2b61, 0x1fdf: 0x2b69, 0x1fe0: 0x8dbd, 0x1fe1: 0x8ddd, 0x1fe2: 0x2b71, 0x1fe3: 0x2b79, + 0x1fe4: 0x2b81, 0x1fe5: 0x2b89, 0x1fe6: 0x2b91, 0x1fe7: 0x2b99, 0x1fe8: 0x2040, 0x1fe9: 0x2ba1, + 0x1fea: 0x2ba9, 0x1feb: 0x2ba9, 0x1fec: 0x8dfd, 0x1fed: 0x2bb1, 0x1fee: 0x2bb9, 0x1fef: 0x2bc1, + 0x1ff0: 0x2bc9, 0x1ff1: 0x8e1d, 0x1ff2: 0x2bd1, 0x1ff3: 0x2bd9, 0x1ff4: 0x2040, 0x1ff5: 0x2be1, + 0x1ff6: 0x2be9, 0x1ff7: 0x2bf1, 0x1ff8: 0x2bf9, 0x1ff9: 0x2c01, 0x1ffa: 0x2c09, 0x1ffb: 0x8e3d, + 0x1ffc: 0x2c11, 0x1ffd: 0x8e5d, 0x1ffe: 0x2c19, 0x1fff: 0x2c21, + // Block 0x80, offset 0x2000 + 0x2000: 0x2c29, 0x2001: 0x2c31, 0x2002: 0x2c39, 0x2003: 0x2c41, 0x2004: 0x2c49, 0x2005: 0x2c51, + 0x2006: 0x2c59, 0x2007: 0x2c61, 0x2008: 0x2c69, 0x2009: 0x8e7d, 0x200a: 0x2c71, 0x200b: 0x2c79, + 0x200c: 0x2c81, 0x200d: 0x2c89, 0x200e: 0x2c91, 0x200f: 0x8e9d, 0x2010: 0x2c99, 0x2011: 0x8ebd, + 0x2012: 0x8edd, 0x2013: 0x2ca1, 0x2014: 0x2ca9, 0x2015: 0x2ca9, 0x2016: 0x2cb1, 0x2017: 0x8efd, + 0x2018: 0x8f1d, 0x2019: 0x2cb9, 0x201a: 0x2cc1, 0x201b: 0x2cc9, 0x201c: 0x2cd1, 0x201d: 0x2cd9, + 0x201e: 0x2ce1, 0x201f: 0x2ce9, 0x2020: 0x2cf1, 0x2021: 0x2cf9, 0x2022: 0x2d01, 0x2023: 0x2d09, + 0x2024: 0x8f3d, 0x2025: 0x2d11, 0x2026: 0x2d19, 0x2027: 0x2d21, 0x2028: 0x2d29, 0x2029: 0x2d21, + 0x202a: 0x2d31, 0x202b: 0x2d39, 0x202c: 0x2d41, 0x202d: 0x2d49, 0x202e: 0x2d51, 0x202f: 0x2d59, + 0x2030: 0x2d61, 0x2031: 0x2d69, 0x2032: 0x2d71, 0x2033: 0x2d79, 0x2034: 0x2d81, 0x2035: 0x2d89, + 0x2036: 0x2d91, 0x2037: 0x2d99, 0x2038: 0x8f5d, 0x2039: 0x2da1, 0x203a: 0x2da9, 0x203b: 0x2db1, + 0x203c: 0x2db9, 0x203d: 0x2dc1, 0x203e: 0x8f7d, 0x203f: 0x2dc9, + // Block 0x81, offset 0x2040 + 0x2040: 0x2dd1, 0x2041: 0x2dd9, 0x2042: 0x2de1, 0x2043: 0x2de9, 0x2044: 0x2df1, 0x2045: 0x2df9, + 0x2046: 0x2e01, 0x2047: 0x2e09, 0x2048: 0x2e11, 0x2049: 0x2e19, 0x204a: 0x8f9d, 0x204b: 0x2e21, + 0x204c: 0x2e29, 0x204d: 0x2e31, 0x204e: 0x2e39, 0x204f: 0x2e41, 0x2050: 0x2e49, 0x2051: 0x2e51, + 0x2052: 0x2e59, 0x2053: 0x2e61, 0x2054: 0x2e69, 0x2055: 0x2e71, 0x2056: 0x2e79, 0x2057: 0x2e81, + 0x2058: 0x2e89, 0x2059: 0x2e91, 0x205a: 0x2e99, 0x205b: 0x2ea1, 0x205c: 0x2ea9, 0x205d: 0x8fbd, + 0x205e: 0x2eb1, 0x205f: 0x2eb9, 0x2060: 0x2ec1, 0x2061: 0x2ec9, 0x2062: 0x2ed1, 0x2063: 0x8fdd, + 0x2064: 0x2ed9, 0x2065: 0x2ee1, 0x2066: 0x2ee9, 0x2067: 0x2ef1, 0x2068: 0x2ef9, 0x2069: 0x2f01, + 0x206a: 0x2f09, 0x206b: 0x2f11, 0x206c: 0x7f0d, 0x206d: 0x2f19, 0x206e: 0x2f21, 0x206f: 0x2f29, + 0x2070: 0x8ffd, 0x2071: 0x2f31, 0x2072: 0x2f39, 0x2073: 0x2f41, 0x2074: 0x2f49, 0x2075: 0x2f51, + 0x2076: 0x2f59, 0x2077: 0x901d, 0x2078: 0x903d, 0x2079: 0x905d, 0x207a: 0x2f61, 0x207b: 0x907d, + 0x207c: 0x2f69, 0x207d: 0x2f71, 0x207e: 0x2f79, 0x207f: 0x2f81, + // Block 0x82, offset 0x2080 + 0x2080: 0x2f89, 0x2081: 0x2f91, 0x2082: 0x2f99, 0x2083: 0x2fa1, 0x2084: 0x2fa9, 0x2085: 0x2fb1, + 0x2086: 0x909d, 0x2087: 0x2fb9, 0x2088: 0x2fc1, 0x2089: 0x2fc9, 0x208a: 0x2fd1, 0x208b: 0x2fd9, + 0x208c: 0x2fe1, 0x208d: 0x90bd, 0x208e: 0x2fe9, 0x208f: 0x2ff1, 0x2090: 0x90dd, 0x2091: 0x90fd, + 0x2092: 0x2ff9, 0x2093: 0x3001, 0x2094: 0x3009, 0x2095: 0x3011, 0x2096: 0x3019, 0x2097: 0x3021, + 0x2098: 0x3029, 0x2099: 0x3031, 0x209a: 0x3039, 0x209b: 0x911d, 0x209c: 0x3041, 0x209d: 0x913d, + 0x209e: 0x3049, 0x209f: 0x2040, 0x20a0: 0x3051, 0x20a1: 0x3059, 0x20a2: 0x3061, 0x20a3: 0x915d, + 0x20a4: 0x3069, 0x20a5: 0x3071, 0x20a6: 0x917d, 0x20a7: 0x919d, 0x20a8: 0x3079, 0x20a9: 0x3081, + 0x20aa: 0x3089, 0x20ab: 0x3091, 0x20ac: 0x3099, 0x20ad: 0x3099, 0x20ae: 0x30a1, 0x20af: 0x30a9, + 0x20b0: 0x30b1, 0x20b1: 0x30b9, 0x20b2: 0x30c1, 0x20b3: 0x30c9, 0x20b4: 0x30d1, 0x20b5: 0x91bd, + 0x20b6: 0x30d9, 0x20b7: 0x91dd, 0x20b8: 0x30e1, 0x20b9: 0x91fd, 0x20ba: 0x30e9, 0x20bb: 0x921d, + 0x20bc: 0x923d, 0x20bd: 0x925d, 0x20be: 0x30f1, 0x20bf: 0x30f9, + // Block 0x83, offset 0x20c0 + 0x20c0: 0x3101, 0x20c1: 0x927d, 0x20c2: 0x929d, 0x20c3: 0x92bd, 0x20c4: 0x92dd, 0x20c5: 0x3109, + 0x20c6: 0x3111, 0x20c7: 0x3111, 0x20c8: 0x3119, 0x20c9: 0x3121, 0x20ca: 0x3129, 0x20cb: 0x3131, + 0x20cc: 0x3139, 0x20cd: 0x92fd, 0x20ce: 0x3141, 0x20cf: 0x3149, 0x20d0: 0x3151, 0x20d1: 0x3159, + 0x20d2: 0x931d, 0x20d3: 0x3161, 0x20d4: 0x933d, 0x20d5: 0x935d, 0x20d6: 0x3169, 0x20d7: 0x3171, + 0x20d8: 0x3179, 0x20d9: 0x3181, 0x20da: 0x3189, 0x20db: 0x3191, 0x20dc: 0x937d, 0x20dd: 0x939d, + 0x20de: 0x93bd, 0x20df: 0x2040, 0x20e0: 0x3199, 0x20e1: 0x93dd, 0x20e2: 0x31a1, 0x20e3: 0x31a9, + 0x20e4: 0x31b1, 0x20e5: 0x93fd, 0x20e6: 0x31b9, 0x20e7: 0x31c1, 0x20e8: 0x31c9, 0x20e9: 0x31d1, + 0x20ea: 0x31d9, 0x20eb: 0x941d, 0x20ec: 0x31e1, 0x20ed: 0x31e9, 0x20ee: 0x31f1, 0x20ef: 0x31f9, + 0x20f0: 0x3201, 0x20f1: 0x3209, 0x20f2: 0x943d, 0x20f3: 0x945d, 0x20f4: 0x3211, 0x20f5: 0x947d, + 0x20f6: 0x3219, 0x20f7: 0x949d, 0x20f8: 0x3221, 0x20f9: 0x3229, 0x20fa: 0x3231, 0x20fb: 0x94bd, + 0x20fc: 0x94dd, 0x20fd: 0x3239, 0x20fe: 0x94fd, 0x20ff: 0x3241, + // Block 0x84, offset 0x2100 + 0x2100: 0x951d, 0x2101: 0x3249, 0x2102: 0x3251, 0x2103: 0x3259, 0x2104: 0x3261, 0x2105: 0x3269, + 0x2106: 0x3271, 0x2107: 0x953d, 0x2108: 0x955d, 0x2109: 0x957d, 0x210a: 0x959d, 0x210b: 0x2ca1, + 0x210c: 0x3279, 0x210d: 0x3281, 0x210e: 0x3289, 0x210f: 0x3291, 0x2110: 0x3299, 0x2111: 0x32a1, + 0x2112: 0x32a9, 0x2113: 0x32b1, 0x2114: 0x32b9, 0x2115: 0x32c1, 0x2116: 0x32c9, 0x2117: 0x95bd, + 0x2118: 0x32d1, 0x2119: 0x32d9, 0x211a: 0x32e1, 0x211b: 0x32e9, 0x211c: 0x32f1, 0x211d: 0x32f9, + 0x211e: 0x3301, 0x211f: 0x3309, 0x2120: 0x3311, 0x2121: 0x3319, 0x2122: 0x3321, 0x2123: 0x3329, + 0x2124: 0x95dd, 0x2125: 0x95fd, 0x2126: 0x961d, 0x2127: 0x3331, 0x2128: 0x3339, 0x2129: 0x3341, + 0x212a: 0x3349, 0x212b: 0x963d, 0x212c: 0x3351, 0x212d: 0x965d, 0x212e: 0x3359, 0x212f: 0x3361, + 0x2130: 0x967d, 0x2131: 0x969d, 0x2132: 0x3369, 0x2133: 0x3371, 0x2134: 0x3379, 0x2135: 0x3381, + 0x2136: 0x3389, 0x2137: 0x3391, 0x2138: 0x3399, 0x2139: 0x33a1, 0x213a: 0x33a9, 0x213b: 0x33b1, + 0x213c: 0x33b9, 0x213d: 0x33c1, 0x213e: 0x33c9, 0x213f: 0x2040, + // Block 0x85, offset 0x2140 + 0x2140: 0x33d1, 0x2141: 0x33d9, 0x2142: 0x33e1, 0x2143: 0x33e9, 0x2144: 0x33f1, 0x2145: 0x96bd, + 0x2146: 0x33f9, 0x2147: 0x3401, 0x2148: 0x3409, 0x2149: 0x3411, 0x214a: 0x3419, 0x214b: 0x96dd, + 0x214c: 0x96fd, 0x214d: 0x3421, 0x214e: 0x3429, 0x214f: 0x3431, 0x2150: 0x3439, 0x2151: 0x3441, + 0x2152: 0x3449, 0x2153: 0x971d, 0x2154: 0x3451, 0x2155: 0x3459, 0x2156: 0x3461, 0x2157: 0x3469, + 0x2158: 0x973d, 0x2159: 0x975d, 0x215a: 0x3471, 0x215b: 0x3479, 0x215c: 0x3481, 0x215d: 0x977d, + 0x215e: 0x3489, 0x215f: 0x3491, 0x2160: 0x684d, 0x2161: 0x979d, 0x2162: 0x3499, 0x2163: 0x34a1, + 0x2164: 0x34a9, 0x2165: 0x97bd, 0x2166: 0x34b1, 0x2167: 0x34b9, 0x2168: 0x34c1, 0x2169: 0x34c9, + 0x216a: 0x34d1, 0x216b: 0x34d9, 0x216c: 0x34e1, 0x216d: 0x97dd, 0x216e: 0x34e9, 0x216f: 0x34f1, + 0x2170: 0x34f9, 0x2171: 0x97fd, 0x2172: 0x3501, 0x2173: 0x3509, 0x2174: 0x3511, 0x2175: 0x3519, + 0x2176: 0x7b6d, 0x2177: 0x981d, 0x2178: 0x3521, 0x2179: 0x3529, 0x217a: 0x3531, 0x217b: 0x983d, + 0x217c: 0x3539, 0x217d: 0x985d, 0x217e: 0x3541, 0x217f: 0x3541, + // Block 0x86, offset 0x2180 + 0x2180: 0x3549, 0x2181: 0x987d, 0x2182: 0x3551, 0x2183: 0x3559, 0x2184: 0x3561, 0x2185: 0x3569, + 0x2186: 0x3571, 0x2187: 0x3579, 0x2188: 0x3581, 0x2189: 0x989d, 0x218a: 0x3589, 0x218b: 0x3591, + 0x218c: 0x3599, 0x218d: 0x35a1, 0x218e: 0x35a9, 0x218f: 0x35b1, 0x2190: 0x98bd, 0x2191: 0x35b9, + 0x2192: 0x98dd, 0x2193: 0x98fd, 0x2194: 0x991d, 0x2195: 0x35c1, 0x2196: 0x35c9, 0x2197: 0x35d1, + 0x2198: 0x35d9, 0x2199: 0x35e1, 0x219a: 0x35e9, 0x219b: 0x35f1, 0x219c: 0x35f9, 0x219d: 0x993d, + 0x219e: 0x0040, 0x219f: 0x0040, 0x21a0: 0x0040, 0x21a1: 0x0040, 0x21a2: 0x0040, 0x21a3: 0x0040, + 0x21a4: 0x0040, 0x21a5: 0x0040, 0x21a6: 0x0040, 0x21a7: 0x0040, 0x21a8: 0x0040, 0x21a9: 0x0040, + 0x21aa: 0x0040, 0x21ab: 0x0040, 0x21ac: 0x0040, 0x21ad: 0x0040, 0x21ae: 0x0040, 0x21af: 0x0040, + 0x21b0: 0x0040, 0x21b1: 0x0040, 0x21b2: 0x0040, 0x21b3: 0x0040, 0x21b4: 0x0040, 0x21b5: 0x0040, + 0x21b6: 0x0040, 0x21b7: 0x0040, 0x21b8: 0x0040, 0x21b9: 0x0040, 0x21ba: 0x0040, 0x21bb: 0x0040, + 0x21bc: 0x0040, 0x21bd: 0x0040, 0x21be: 0x0040, 0x21bf: 0x0040, +} + +// idnaIndex: 39 blocks, 2496 entries, 4992 bytes +// Block 0 is the zero block. +var idnaIndex = [2496]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x85, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05, + 0xc8: 0x06, 0xc9: 0x86, 0xca: 0x87, 0xcb: 0x07, 0xcc: 0x88, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a, + 0xd0: 0x89, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x8a, 0xd6: 0x8b, 0xd7: 0x8c, + 0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x8d, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x8e, 0xde: 0x8f, 0xdf: 0x90, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07, + 0xe8: 0x07, 0xe9: 0x07, 0xea: 0x08, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x09, 0xee: 0x0a, 0xef: 0x0b, + 0xf0: 0x20, 0xf1: 0x21, 0xf2: 0x21, 0xf3: 0x23, 0xf4: 0x24, + // Block 0x4, offset 0x100 + 0x120: 0x91, 0x121: 0x13, 0x122: 0x14, 0x123: 0x92, 0x124: 0x93, 0x125: 0x15, 0x126: 0x16, 0x127: 0x17, + 0x128: 0x18, 0x129: 0x19, 0x12a: 0x1a, 0x12b: 0x1b, 0x12c: 0x1c, 0x12d: 0x1d, 0x12e: 0x1e, 0x12f: 0x94, + 0x130: 0x95, 0x131: 0x1f, 0x132: 0x20, 0x133: 0x21, 0x134: 0x96, 0x135: 0x22, 0x136: 0x97, 0x137: 0x98, + 0x138: 0x99, 0x139: 0x9a, 0x13a: 0x23, 0x13b: 0x9b, 0x13c: 0x9c, 0x13d: 0x24, 0x13e: 0x25, 0x13f: 0x9d, + // Block 0x5, offset 0x140 + 0x140: 0x9e, 0x141: 0x9f, 0x142: 0xa0, 0x143: 0xa1, 0x144: 0xa2, 0x145: 0xa3, 0x146: 0xa4, 0x147: 0xa5, + 0x148: 0xa6, 0x149: 0xa7, 0x14a: 0xa8, 0x14b: 0xa9, 0x14c: 0xaa, 0x14d: 0xab, 0x14e: 0xac, 0x14f: 0xad, + 0x150: 0xae, 0x151: 0xa6, 0x152: 0xa6, 0x153: 0xa6, 0x154: 0xa6, 0x155: 0xa6, 0x156: 0xa6, 0x157: 0xa6, + 0x158: 0xa6, 0x159: 0xaf, 0x15a: 0xb0, 0x15b: 0xb1, 0x15c: 0xb2, 0x15d: 0xb3, 0x15e: 0xb4, 0x15f: 0xb5, + 0x160: 0xb6, 0x161: 0xb7, 0x162: 0xb8, 0x163: 0xb9, 0x164: 0xba, 0x165: 0xbb, 0x166: 0xbc, 0x167: 0xbd, + 0x168: 0xbe, 0x169: 0xbf, 0x16a: 0xc0, 0x16b: 0xc1, 0x16c: 0xc2, 0x16d: 0xc3, 0x16e: 0xc4, 0x16f: 0xc5, + 0x170: 0xc6, 0x171: 0xc7, 0x172: 0xc8, 0x173: 0xc9, 0x174: 0x26, 0x175: 0x27, 0x176: 0x28, 0x177: 0x88, + 0x178: 0x29, 0x179: 0x29, 0x17a: 0x2a, 0x17b: 0x29, 0x17c: 0xca, 0x17d: 0x2b, 0x17e: 0x2c, 0x17f: 0x2d, + // Block 0x6, offset 0x180 + 0x180: 0x2e, 0x181: 0x2f, 0x182: 0x30, 0x183: 0xcb, 0x184: 0x31, 0x185: 0x32, 0x186: 0xcc, 0x187: 0xa2, + 0x188: 0xcd, 0x189: 0xce, 0x18a: 0xa2, 0x18b: 0xa2, 0x18c: 0xcf, 0x18d: 0xa2, 0x18e: 0xa2, 0x18f: 0xa2, + 0x190: 0xd0, 0x191: 0x33, 0x192: 0x34, 0x193: 0x35, 0x194: 0xa2, 0x195: 0xa2, 0x196: 0xa2, 0x197: 0xa2, + 0x198: 0xa2, 0x199: 0xa2, 0x19a: 0xa2, 0x19b: 0xa2, 0x19c: 0xa2, 0x19d: 0xa2, 0x19e: 0xa2, 0x19f: 0xa2, + 0x1a0: 0xa2, 0x1a1: 0xa2, 0x1a2: 0xa2, 0x1a3: 0xa2, 0x1a4: 0xa2, 0x1a5: 0xa2, 0x1a6: 0xa2, 0x1a7: 0xa2, + 0x1a8: 0xd1, 0x1a9: 0xd2, 0x1aa: 0xa2, 0x1ab: 0xd3, 0x1ac: 0xa2, 0x1ad: 0xd4, 0x1ae: 0xd5, 0x1af: 0xa2, + 0x1b0: 0xd6, 0x1b1: 0x36, 0x1b2: 0x29, 0x1b3: 0x37, 0x1b4: 0xd7, 0x1b5: 0xd8, 0x1b6: 0xd9, 0x1b7: 0xda, + 0x1b8: 0xdb, 0x1b9: 0xdc, 0x1ba: 0xdd, 0x1bb: 0xde, 0x1bc: 0xdf, 0x1bd: 0xe0, 0x1be: 0xe1, 0x1bf: 0x38, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x39, 0x1c1: 0xe2, 0x1c2: 0xe3, 0x1c3: 0xe4, 0x1c4: 0xe5, 0x1c5: 0x3a, 0x1c6: 0x3b, 0x1c7: 0xe6, + 0x1c8: 0xe7, 0x1c9: 0x3c, 0x1ca: 0x3d, 0x1cb: 0x3e, 0x1cc: 0xe8, 0x1cd: 0xe9, 0x1ce: 0x3f, 0x1cf: 0x40, + 0x1d0: 0xa6, 0x1d1: 0xa6, 0x1d2: 0xa6, 0x1d3: 0xa6, 0x1d4: 0xa6, 0x1d5: 0xa6, 0x1d6: 0xa6, 0x1d7: 0xa6, + 0x1d8: 0xa6, 0x1d9: 0xa6, 0x1da: 0xa6, 0x1db: 0xa6, 0x1dc: 0xa6, 0x1dd: 0xa6, 0x1de: 0xa6, 0x1df: 0xa6, + 0x1e0: 0xa6, 0x1e1: 0xa6, 0x1e2: 0xa6, 0x1e3: 0xa6, 0x1e4: 0xa6, 0x1e5: 0xa6, 0x1e6: 0xa6, 0x1e7: 0xa6, + 0x1e8: 0xa6, 0x1e9: 0xa6, 0x1ea: 0xa6, 0x1eb: 0xa6, 0x1ec: 0xa6, 0x1ed: 0xa6, 0x1ee: 0xa6, 0x1ef: 0xa6, + 0x1f0: 0xa6, 0x1f1: 0xa6, 0x1f2: 0xa6, 0x1f3: 0xa6, 0x1f4: 0xa6, 0x1f5: 0xa6, 0x1f6: 0xa6, 0x1f7: 0xa6, + 0x1f8: 0xa6, 0x1f9: 0xa6, 0x1fa: 0xa6, 0x1fb: 0xa6, 0x1fc: 0xa6, 0x1fd: 0xa6, 0x1fe: 0xa6, 0x1ff: 0xa6, + // Block 0x8, offset 0x200 + 0x200: 0xa6, 0x201: 0xa6, 0x202: 0xa6, 0x203: 0xa6, 0x204: 0xa6, 0x205: 0xa6, 0x206: 0xa6, 0x207: 0xa6, + 0x208: 0xa6, 0x209: 0xa6, 0x20a: 0xa6, 0x20b: 0xa6, 0x20c: 0xa6, 0x20d: 0xa6, 0x20e: 0xa6, 0x20f: 0xa6, + 0x210: 0xa6, 0x211: 0xa6, 0x212: 0xa6, 0x213: 0xa6, 0x214: 0xa6, 0x215: 0xa6, 0x216: 0xa6, 0x217: 0xa6, + 0x218: 0xa6, 0x219: 0xa6, 0x21a: 0xa6, 0x21b: 0xa6, 0x21c: 0xa6, 0x21d: 0xa6, 0x21e: 0xa6, 0x21f: 0xa6, + 0x220: 0xa6, 0x221: 0xa6, 0x222: 0xa6, 0x223: 0xa6, 0x224: 0xa6, 0x225: 0xa6, 0x226: 0xa6, 0x227: 0xa6, + 0x228: 0xa6, 0x229: 0xa6, 0x22a: 0xa6, 0x22b: 0xa6, 0x22c: 0xa6, 0x22d: 0xa6, 0x22e: 0xa6, 0x22f: 0xa6, + 0x230: 0xa6, 0x231: 0xa6, 0x232: 0xa6, 0x233: 0xa6, 0x234: 0xa6, 0x235: 0xa6, 0x236: 0xa6, 0x237: 0xa2, + 0x238: 0xa6, 0x239: 0xa6, 0x23a: 0xa6, 0x23b: 0xa6, 0x23c: 0xa6, 0x23d: 0xa6, 0x23e: 0xa6, 0x23f: 0xa6, + // Block 0x9, offset 0x240 + 0x240: 0xa6, 0x241: 0xa6, 0x242: 0xa6, 0x243: 0xa6, 0x244: 0xa6, 0x245: 0xa6, 0x246: 0xa6, 0x247: 0xa6, + 0x248: 0xa6, 0x249: 0xa6, 0x24a: 0xa6, 0x24b: 0xa6, 0x24c: 0xa6, 0x24d: 0xa6, 0x24e: 0xa6, 0x24f: 0xa6, + 0x250: 0xa6, 0x251: 0xa6, 0x252: 0xa6, 0x253: 0xa6, 0x254: 0xa6, 0x255: 0xa6, 0x256: 0xa6, 0x257: 0xa6, + 0x258: 0xa6, 0x259: 0xa6, 0x25a: 0xa6, 0x25b: 0xa6, 0x25c: 0xa6, 0x25d: 0xa6, 0x25e: 0xa6, 0x25f: 0xa6, + 0x260: 0xa6, 0x261: 0xa6, 0x262: 0xa6, 0x263: 0xa6, 0x264: 0xa6, 0x265: 0xa6, 0x266: 0xa6, 0x267: 0xa6, + 0x268: 0xa6, 0x269: 0xa6, 0x26a: 0xa6, 0x26b: 0xa6, 0x26c: 0xa6, 0x26d: 0xa6, 0x26e: 0xa6, 0x26f: 0xa6, + 0x270: 0xa6, 0x271: 0xa6, 0x272: 0xa6, 0x273: 0xa6, 0x274: 0xa6, 0x275: 0xa6, 0x276: 0xa6, 0x277: 0xa6, + 0x278: 0xa6, 0x279: 0xa6, 0x27a: 0xa6, 0x27b: 0xa6, 0x27c: 0xa6, 0x27d: 0xa6, 0x27e: 0xa6, 0x27f: 0xa6, + // Block 0xa, offset 0x280 + 0x280: 0xa6, 0x281: 0xa6, 0x282: 0xa6, 0x283: 0xa6, 0x284: 0xa6, 0x285: 0xa6, 0x286: 0xa6, 0x287: 0xa6, + 0x288: 0xa6, 0x289: 0xa6, 0x28a: 0xa6, 0x28b: 0xa6, 0x28c: 0xa6, 0x28d: 0xa6, 0x28e: 0xa6, 0x28f: 0xa6, + 0x290: 0xa6, 0x291: 0xa6, 0x292: 0xea, 0x293: 0xeb, 0x294: 0xa6, 0x295: 0xa6, 0x296: 0xa6, 0x297: 0xa6, + 0x298: 0xec, 0x299: 0x41, 0x29a: 0x42, 0x29b: 0xed, 0x29c: 0x43, 0x29d: 0x44, 0x29e: 0x45, 0x29f: 0x46, + 0x2a0: 0xee, 0x2a1: 0xef, 0x2a2: 0xf0, 0x2a3: 0xf1, 0x2a4: 0xf2, 0x2a5: 0xf3, 0x2a6: 0xf4, 0x2a7: 0xf5, + 0x2a8: 0xf6, 0x2a9: 0xf7, 0x2aa: 0xf8, 0x2ab: 0xf9, 0x2ac: 0xfa, 0x2ad: 0xfb, 0x2ae: 0xfc, 0x2af: 0xfd, + 0x2b0: 0xa6, 0x2b1: 0xa6, 0x2b2: 0xa6, 0x2b3: 0xa6, 0x2b4: 0xa6, 0x2b5: 0xa6, 0x2b6: 0xa6, 0x2b7: 0xa6, + 0x2b8: 0xa6, 0x2b9: 0xa6, 0x2ba: 0xa6, 0x2bb: 0xa6, 0x2bc: 0xa6, 0x2bd: 0xa6, 0x2be: 0xa6, 0x2bf: 0xa6, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xa6, 0x2c1: 0xa6, 0x2c2: 0xa6, 0x2c3: 0xa6, 0x2c4: 0xa6, 0x2c5: 0xa6, 0x2c6: 0xa6, 0x2c7: 0xa6, + 0x2c8: 0xa6, 0x2c9: 0xa6, 0x2ca: 0xa6, 0x2cb: 0xa6, 0x2cc: 0xa6, 0x2cd: 0xa6, 0x2ce: 0xa6, 0x2cf: 0xa6, + 0x2d0: 0xa6, 0x2d1: 0xa6, 0x2d2: 0xa6, 0x2d3: 0xa6, 0x2d4: 0xa6, 0x2d5: 0xa6, 0x2d6: 0xa6, 0x2d7: 0xa6, + 0x2d8: 0xa6, 0x2d9: 0xa6, 0x2da: 0xa6, 0x2db: 0xa6, 0x2dc: 0xa6, 0x2dd: 0xa6, 0x2de: 0xfe, 0x2df: 0xff, + // Block 0xc, offset 0x300 + 0x300: 0x100, 0x301: 0x100, 0x302: 0x100, 0x303: 0x100, 0x304: 0x100, 0x305: 0x100, 0x306: 0x100, 0x307: 0x100, + 0x308: 0x100, 0x309: 0x100, 0x30a: 0x100, 0x30b: 0x100, 0x30c: 0x100, 0x30d: 0x100, 0x30e: 0x100, 0x30f: 0x100, + 0x310: 0x100, 0x311: 0x100, 0x312: 0x100, 0x313: 0x100, 0x314: 0x100, 0x315: 0x100, 0x316: 0x100, 0x317: 0x100, + 0x318: 0x100, 0x319: 0x100, 0x31a: 0x100, 0x31b: 0x100, 0x31c: 0x100, 0x31d: 0x100, 0x31e: 0x100, 0x31f: 0x100, + 0x320: 0x100, 0x321: 0x100, 0x322: 0x100, 0x323: 0x100, 0x324: 0x100, 0x325: 0x100, 0x326: 0x100, 0x327: 0x100, + 0x328: 0x100, 0x329: 0x100, 0x32a: 0x100, 0x32b: 0x100, 0x32c: 0x100, 0x32d: 0x100, 0x32e: 0x100, 0x32f: 0x100, + 0x330: 0x100, 0x331: 0x100, 0x332: 0x100, 0x333: 0x100, 0x334: 0x100, 0x335: 0x100, 0x336: 0x100, 0x337: 0x100, + 0x338: 0x100, 0x339: 0x100, 0x33a: 0x100, 0x33b: 0x100, 0x33c: 0x100, 0x33d: 0x100, 0x33e: 0x100, 0x33f: 0x100, + // Block 0xd, offset 0x340 + 0x340: 0x100, 0x341: 0x100, 0x342: 0x100, 0x343: 0x100, 0x344: 0x100, 0x345: 0x100, 0x346: 0x100, 0x347: 0x100, + 0x348: 0x100, 0x349: 0x100, 0x34a: 0x100, 0x34b: 0x100, 0x34c: 0x100, 0x34d: 0x100, 0x34e: 0x100, 0x34f: 0x100, + 0x350: 0x100, 0x351: 0x100, 0x352: 0x100, 0x353: 0x100, 0x354: 0x100, 0x355: 0x100, 0x356: 0x100, 0x357: 0x100, + 0x358: 0x100, 0x359: 0x100, 0x35a: 0x100, 0x35b: 0x100, 0x35c: 0x100, 0x35d: 0x100, 0x35e: 0x100, 0x35f: 0x100, + 0x360: 0x100, 0x361: 0x100, 0x362: 0x100, 0x363: 0x100, 0x364: 0x101, 0x365: 0x102, 0x366: 0x103, 0x367: 0x104, + 0x368: 0x47, 0x369: 0x105, 0x36a: 0x106, 0x36b: 0x48, 0x36c: 0x49, 0x36d: 0x4a, 0x36e: 0x4b, 0x36f: 0x4c, + 0x370: 0x107, 0x371: 0x4d, 0x372: 0x4e, 0x373: 0x4f, 0x374: 0x50, 0x375: 0x51, 0x376: 0x108, 0x377: 0x52, + 0x378: 0x53, 0x379: 0x54, 0x37a: 0x55, 0x37b: 0x56, 0x37c: 0x57, 0x37d: 0x58, 0x37e: 0x59, 0x37f: 0x5a, + // Block 0xe, offset 0x380 + 0x380: 0x109, 0x381: 0x10a, 0x382: 0xa6, 0x383: 0x10b, 0x384: 0x10c, 0x385: 0xa2, 0x386: 0x10d, 0x387: 0x10e, + 0x388: 0x100, 0x389: 0x100, 0x38a: 0x10f, 0x38b: 0x110, 0x38c: 0x111, 0x38d: 0x112, 0x38e: 0x113, 0x38f: 0x114, + 0x390: 0x115, 0x391: 0xa6, 0x392: 0x116, 0x393: 0x117, 0x394: 0x118, 0x395: 0x5b, 0x396: 0x5c, 0x397: 0x100, + 0x398: 0xa6, 0x399: 0xa6, 0x39a: 0xa6, 0x39b: 0xa6, 0x39c: 0x119, 0x39d: 0x11a, 0x39e: 0x5d, 0x39f: 0x100, + 0x3a0: 0x11b, 0x3a1: 0x11c, 0x3a2: 0x11d, 0x3a3: 0x11e, 0x3a4: 0x11f, 0x3a5: 0x100, 0x3a6: 0x120, 0x3a7: 0x121, + 0x3a8: 0x122, 0x3a9: 0x123, 0x3aa: 0x124, 0x3ab: 0x5e, 0x3ac: 0x125, 0x3ad: 0x126, 0x3ae: 0x5f, 0x3af: 0x100, + 0x3b0: 0x127, 0x3b1: 0x128, 0x3b2: 0x129, 0x3b3: 0x12a, 0x3b4: 0x12b, 0x3b5: 0x100, 0x3b6: 0x100, 0x3b7: 0x100, + 0x3b8: 0x100, 0x3b9: 0x12c, 0x3ba: 0x12d, 0x3bb: 0x12e, 0x3bc: 0x12f, 0x3bd: 0x130, 0x3be: 0x131, 0x3bf: 0x132, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x133, 0x3c1: 0x134, 0x3c2: 0x135, 0x3c3: 0x136, 0x3c4: 0x137, 0x3c5: 0x138, 0x3c6: 0x139, 0x3c7: 0x13a, + 0x3c8: 0x13b, 0x3c9: 0x13c, 0x3ca: 0x13d, 0x3cb: 0x13e, 0x3cc: 0x60, 0x3cd: 0x61, 0x3ce: 0x100, 0x3cf: 0x100, + 0x3d0: 0x13f, 0x3d1: 0x140, 0x3d2: 0x141, 0x3d3: 0x142, 0x3d4: 0x100, 0x3d5: 0x100, 0x3d6: 0x143, 0x3d7: 0x144, + 0x3d8: 0x145, 0x3d9: 0x146, 0x3da: 0x147, 0x3db: 0x148, 0x3dc: 0x149, 0x3dd: 0x14a, 0x3de: 0x100, 0x3df: 0x100, + 0x3e0: 0x14b, 0x3e1: 0x100, 0x3e2: 0x14c, 0x3e3: 0x14d, 0x3e4: 0x62, 0x3e5: 0x14e, 0x3e6: 0x14f, 0x3e7: 0x150, + 0x3e8: 0x151, 0x3e9: 0x152, 0x3ea: 0x153, 0x3eb: 0x154, 0x3ec: 0x155, 0x3ed: 0x100, 0x3ee: 0x100, 0x3ef: 0x100, + 0x3f0: 0x156, 0x3f1: 0x157, 0x3f2: 0x158, 0x3f3: 0x100, 0x3f4: 0x159, 0x3f5: 0x15a, 0x3f6: 0x15b, 0x3f7: 0x100, + 0x3f8: 0x100, 0x3f9: 0x100, 0x3fa: 0x100, 0x3fb: 0x15c, 0x3fc: 0x15d, 0x3fd: 0x15e, 0x3fe: 0x15f, 0x3ff: 0x160, + // Block 0x10, offset 0x400 + 0x400: 0xa6, 0x401: 0xa6, 0x402: 0xa6, 0x403: 0xa6, 0x404: 0xa6, 0x405: 0xa6, 0x406: 0xa6, 0x407: 0xa6, + 0x408: 0xa6, 0x409: 0xa6, 0x40a: 0xa6, 0x40b: 0xa6, 0x40c: 0xa6, 0x40d: 0xa6, 0x40e: 0x161, 0x40f: 0x100, + 0x410: 0xa2, 0x411: 0x162, 0x412: 0xa6, 0x413: 0xa6, 0x414: 0xa6, 0x415: 0x163, 0x416: 0x100, 0x417: 0x100, + 0x418: 0x100, 0x419: 0x100, 0x41a: 0x100, 0x41b: 0x100, 0x41c: 0x100, 0x41d: 0x100, 0x41e: 0x100, 0x41f: 0x100, + 0x420: 0x100, 0x421: 0x100, 0x422: 0x100, 0x423: 0x100, 0x424: 0x100, 0x425: 0x100, 0x426: 0x100, 0x427: 0x100, + 0x428: 0x100, 0x429: 0x100, 0x42a: 0x100, 0x42b: 0x100, 0x42c: 0x100, 0x42d: 0x100, 0x42e: 0x100, 0x42f: 0x100, + 0x430: 0x100, 0x431: 0x100, 0x432: 0x100, 0x433: 0x100, 0x434: 0x100, 0x435: 0x100, 0x436: 0x100, 0x437: 0x100, + 0x438: 0x100, 0x439: 0x100, 0x43a: 0x100, 0x43b: 0x100, 0x43c: 0x100, 0x43d: 0x100, 0x43e: 0x164, 0x43f: 0x165, + // Block 0x11, offset 0x440 + 0x440: 0xa6, 0x441: 0xa6, 0x442: 0xa6, 0x443: 0xa6, 0x444: 0xa6, 0x445: 0xa6, 0x446: 0xa6, 0x447: 0xa6, + 0x448: 0xa6, 0x449: 0xa6, 0x44a: 0xa6, 0x44b: 0xa6, 0x44c: 0xa6, 0x44d: 0xa6, 0x44e: 0xa6, 0x44f: 0xa6, + 0x450: 0x166, 0x451: 0x167, 0x452: 0x100, 0x453: 0x100, 0x454: 0x100, 0x455: 0x100, 0x456: 0x100, 0x457: 0x100, + 0x458: 0x100, 0x459: 0x100, 0x45a: 0x100, 0x45b: 0x100, 0x45c: 0x100, 0x45d: 0x100, 0x45e: 0x100, 0x45f: 0x100, + 0x460: 0x100, 0x461: 0x100, 0x462: 0x100, 0x463: 0x100, 0x464: 0x100, 0x465: 0x100, 0x466: 0x100, 0x467: 0x100, + 0x468: 0x100, 0x469: 0x100, 0x46a: 0x100, 0x46b: 0x100, 0x46c: 0x100, 0x46d: 0x100, 0x46e: 0x100, 0x46f: 0x100, + 0x470: 0x100, 0x471: 0x100, 0x472: 0x100, 0x473: 0x100, 0x474: 0x100, 0x475: 0x100, 0x476: 0x100, 0x477: 0x100, + 0x478: 0x100, 0x479: 0x100, 0x47a: 0x100, 0x47b: 0x100, 0x47c: 0x100, 0x47d: 0x100, 0x47e: 0x100, 0x47f: 0x100, + // Block 0x12, offset 0x480 + 0x480: 0x100, 0x481: 0x100, 0x482: 0x100, 0x483: 0x100, 0x484: 0x100, 0x485: 0x100, 0x486: 0x100, 0x487: 0x100, + 0x488: 0x100, 0x489: 0x100, 0x48a: 0x100, 0x48b: 0x100, 0x48c: 0x100, 0x48d: 0x100, 0x48e: 0x100, 0x48f: 0x100, + 0x490: 0xa6, 0x491: 0xa6, 0x492: 0xa6, 0x493: 0xa6, 0x494: 0xa6, 0x495: 0xa6, 0x496: 0xa6, 0x497: 0xa6, + 0x498: 0xa6, 0x499: 0x14a, 0x49a: 0x100, 0x49b: 0x100, 0x49c: 0x100, 0x49d: 0x100, 0x49e: 0x100, 0x49f: 0x100, + 0x4a0: 0x100, 0x4a1: 0x100, 0x4a2: 0x100, 0x4a3: 0x100, 0x4a4: 0x100, 0x4a5: 0x100, 0x4a6: 0x100, 0x4a7: 0x100, + 0x4a8: 0x100, 0x4a9: 0x100, 0x4aa: 0x100, 0x4ab: 0x100, 0x4ac: 0x100, 0x4ad: 0x100, 0x4ae: 0x100, 0x4af: 0x100, + 0x4b0: 0x100, 0x4b1: 0x100, 0x4b2: 0x100, 0x4b3: 0x100, 0x4b4: 0x100, 0x4b5: 0x100, 0x4b6: 0x100, 0x4b7: 0x100, + 0x4b8: 0x100, 0x4b9: 0x100, 0x4ba: 0x100, 0x4bb: 0x100, 0x4bc: 0x100, 0x4bd: 0x100, 0x4be: 0x100, 0x4bf: 0x100, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x100, 0x4c1: 0x100, 0x4c2: 0x100, 0x4c3: 0x100, 0x4c4: 0x100, 0x4c5: 0x100, 0x4c6: 0x100, 0x4c7: 0x100, + 0x4c8: 0x100, 0x4c9: 0x100, 0x4ca: 0x100, 0x4cb: 0x100, 0x4cc: 0x100, 0x4cd: 0x100, 0x4ce: 0x100, 0x4cf: 0x100, + 0x4d0: 0x100, 0x4d1: 0x100, 0x4d2: 0x100, 0x4d3: 0x100, 0x4d4: 0x100, 0x4d5: 0x100, 0x4d6: 0x100, 0x4d7: 0x100, + 0x4d8: 0x100, 0x4d9: 0x100, 0x4da: 0x100, 0x4db: 0x100, 0x4dc: 0x100, 0x4dd: 0x100, 0x4de: 0x100, 0x4df: 0x100, + 0x4e0: 0xa6, 0x4e1: 0xa6, 0x4e2: 0xa6, 0x4e3: 0xa6, 0x4e4: 0xa6, 0x4e5: 0xa6, 0x4e6: 0xa6, 0x4e7: 0xa6, + 0x4e8: 0x154, 0x4e9: 0x168, 0x4ea: 0x169, 0x4eb: 0x16a, 0x4ec: 0x16b, 0x4ed: 0x16c, 0x4ee: 0x16d, 0x4ef: 0x100, + 0x4f0: 0x100, 0x4f1: 0x100, 0x4f2: 0x100, 0x4f3: 0x100, 0x4f4: 0x100, 0x4f5: 0x100, 0x4f6: 0x100, 0x4f7: 0x100, + 0x4f8: 0x100, 0x4f9: 0x16e, 0x4fa: 0x16f, 0x4fb: 0x100, 0x4fc: 0xa6, 0x4fd: 0x170, 0x4fe: 0x171, 0x4ff: 0x172, + // Block 0x14, offset 0x500 + 0x500: 0xa6, 0x501: 0xa6, 0x502: 0xa6, 0x503: 0xa6, 0x504: 0xa6, 0x505: 0xa6, 0x506: 0xa6, 0x507: 0xa6, + 0x508: 0xa6, 0x509: 0xa6, 0x50a: 0xa6, 0x50b: 0xa6, 0x50c: 0xa6, 0x50d: 0xa6, 0x50e: 0xa6, 0x50f: 0xa6, + 0x510: 0xa6, 0x511: 0xa6, 0x512: 0xa6, 0x513: 0xa6, 0x514: 0xa6, 0x515: 0xa6, 0x516: 0xa6, 0x517: 0xa6, + 0x518: 0xa6, 0x519: 0xa6, 0x51a: 0xa6, 0x51b: 0xa6, 0x51c: 0xa6, 0x51d: 0xa6, 0x51e: 0xa6, 0x51f: 0x173, + 0x520: 0xa6, 0x521: 0xa6, 0x522: 0xa6, 0x523: 0xa6, 0x524: 0xa6, 0x525: 0xa6, 0x526: 0xa6, 0x527: 0xa6, + 0x528: 0xa6, 0x529: 0xa6, 0x52a: 0xa6, 0x52b: 0xa6, 0x52c: 0xa6, 0x52d: 0xa6, 0x52e: 0xa6, 0x52f: 0xa6, + 0x530: 0xa6, 0x531: 0xa6, 0x532: 0xa6, 0x533: 0x174, 0x534: 0x175, 0x535: 0x100, 0x536: 0x100, 0x537: 0x100, + 0x538: 0x100, 0x539: 0x100, 0x53a: 0x100, 0x53b: 0x100, 0x53c: 0x100, 0x53d: 0x100, 0x53e: 0x100, 0x53f: 0x100, + // Block 0x15, offset 0x540 + 0x540: 0x100, 0x541: 0x100, 0x542: 0x100, 0x543: 0x100, 0x544: 0x100, 0x545: 0x100, 0x546: 0x100, 0x547: 0x100, + 0x548: 0x100, 0x549: 0x100, 0x54a: 0x100, 0x54b: 0x100, 0x54c: 0x100, 0x54d: 0x100, 0x54e: 0x100, 0x54f: 0x100, + 0x550: 0x100, 0x551: 0x100, 0x552: 0x100, 0x553: 0x100, 0x554: 0x100, 0x555: 0x100, 0x556: 0x100, 0x557: 0x100, + 0x558: 0x100, 0x559: 0x100, 0x55a: 0x100, 0x55b: 0x100, 0x55c: 0x100, 0x55d: 0x100, 0x55e: 0x100, 0x55f: 0x100, + 0x560: 0x100, 0x561: 0x100, 0x562: 0x100, 0x563: 0x100, 0x564: 0x100, 0x565: 0x100, 0x566: 0x100, 0x567: 0x100, + 0x568: 0x100, 0x569: 0x100, 0x56a: 0x100, 0x56b: 0x100, 0x56c: 0x100, 0x56d: 0x100, 0x56e: 0x100, 0x56f: 0x100, + 0x570: 0x100, 0x571: 0x100, 0x572: 0x100, 0x573: 0x100, 0x574: 0x100, 0x575: 0x100, 0x576: 0x100, 0x577: 0x100, + 0x578: 0x100, 0x579: 0x100, 0x57a: 0x100, 0x57b: 0x100, 0x57c: 0x100, 0x57d: 0x100, 0x57e: 0x100, 0x57f: 0x176, + // Block 0x16, offset 0x580 + 0x580: 0xa6, 0x581: 0xa6, 0x582: 0xa6, 0x583: 0xa6, 0x584: 0x177, 0x585: 0x178, 0x586: 0xa6, 0x587: 0xa6, + 0x588: 0xa6, 0x589: 0xa6, 0x58a: 0xa6, 0x58b: 0x179, 0x58c: 0x100, 0x58d: 0x100, 0x58e: 0x100, 0x58f: 0x100, + 0x590: 0x100, 0x591: 0x100, 0x592: 0x100, 0x593: 0x100, 0x594: 0x100, 0x595: 0x100, 0x596: 0x100, 0x597: 0x100, + 0x598: 0x100, 0x599: 0x100, 0x59a: 0x100, 0x59b: 0x100, 0x59c: 0x100, 0x59d: 0x100, 0x59e: 0x100, 0x59f: 0x100, + 0x5a0: 0x100, 0x5a1: 0x100, 0x5a2: 0x100, 0x5a3: 0x100, 0x5a4: 0x100, 0x5a5: 0x100, 0x5a6: 0x100, 0x5a7: 0x100, + 0x5a8: 0x100, 0x5a9: 0x100, 0x5aa: 0x100, 0x5ab: 0x100, 0x5ac: 0x100, 0x5ad: 0x100, 0x5ae: 0x100, 0x5af: 0x100, + 0x5b0: 0xa6, 0x5b1: 0x17a, 0x5b2: 0x17b, 0x5b3: 0x100, 0x5b4: 0x100, 0x5b5: 0x100, 0x5b6: 0x100, 0x5b7: 0x100, + 0x5b8: 0x100, 0x5b9: 0x100, 0x5ba: 0x100, 0x5bb: 0x100, 0x5bc: 0x100, 0x5bd: 0x100, 0x5be: 0x100, 0x5bf: 0x100, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x100, 0x5c1: 0x100, 0x5c2: 0x100, 0x5c3: 0x100, 0x5c4: 0x100, 0x5c5: 0x100, 0x5c6: 0x100, 0x5c7: 0x100, + 0x5c8: 0x100, 0x5c9: 0x100, 0x5ca: 0x100, 0x5cb: 0x100, 0x5cc: 0x100, 0x5cd: 0x100, 0x5ce: 0x100, 0x5cf: 0x100, + 0x5d0: 0x100, 0x5d1: 0x100, 0x5d2: 0x100, 0x5d3: 0x100, 0x5d4: 0x100, 0x5d5: 0x100, 0x5d6: 0x100, 0x5d7: 0x100, + 0x5d8: 0x100, 0x5d9: 0x100, 0x5da: 0x100, 0x5db: 0x100, 0x5dc: 0x100, 0x5dd: 0x100, 0x5de: 0x100, 0x5df: 0x100, + 0x5e0: 0x100, 0x5e1: 0x100, 0x5e2: 0x100, 0x5e3: 0x100, 0x5e4: 0x100, 0x5e5: 0x100, 0x5e6: 0x100, 0x5e7: 0x100, + 0x5e8: 0x100, 0x5e9: 0x100, 0x5ea: 0x100, 0x5eb: 0x100, 0x5ec: 0x100, 0x5ed: 0x100, 0x5ee: 0x100, 0x5ef: 0x100, + 0x5f0: 0x100, 0x5f1: 0x100, 0x5f2: 0x100, 0x5f3: 0x100, 0x5f4: 0x100, 0x5f5: 0x100, 0x5f6: 0x100, 0x5f7: 0x100, + 0x5f8: 0x100, 0x5f9: 0x100, 0x5fa: 0x100, 0x5fb: 0x100, 0x5fc: 0x17c, 0x5fd: 0x17d, 0x5fe: 0xa2, 0x5ff: 0x17e, + // Block 0x18, offset 0x600 + 0x600: 0xa2, 0x601: 0xa2, 0x602: 0xa2, 0x603: 0x17f, 0x604: 0x180, 0x605: 0x181, 0x606: 0x182, 0x607: 0x183, + 0x608: 0xa2, 0x609: 0x184, 0x60a: 0x100, 0x60b: 0x185, 0x60c: 0xa2, 0x60d: 0x186, 0x60e: 0x100, 0x60f: 0x100, + 0x610: 0x63, 0x611: 0x64, 0x612: 0x65, 0x613: 0x66, 0x614: 0x67, 0x615: 0x68, 0x616: 0x69, 0x617: 0x6a, + 0x618: 0x6b, 0x619: 0x6c, 0x61a: 0x6d, 0x61b: 0x6e, 0x61c: 0x6f, 0x61d: 0x70, 0x61e: 0x71, 0x61f: 0x72, + 0x620: 0xa2, 0x621: 0xa2, 0x622: 0xa2, 0x623: 0xa2, 0x624: 0xa2, 0x625: 0xa2, 0x626: 0xa2, 0x627: 0xa2, + 0x628: 0x187, 0x629: 0x188, 0x62a: 0x189, 0x62b: 0x100, 0x62c: 0x100, 0x62d: 0x100, 0x62e: 0x100, 0x62f: 0x100, + 0x630: 0x100, 0x631: 0x100, 0x632: 0x100, 0x633: 0x100, 0x634: 0x100, 0x635: 0x100, 0x636: 0x100, 0x637: 0x100, + 0x638: 0x100, 0x639: 0x100, 0x63a: 0x100, 0x63b: 0x100, 0x63c: 0x18a, 0x63d: 0x100, 0x63e: 0x100, 0x63f: 0x100, + // Block 0x19, offset 0x640 + 0x640: 0x73, 0x641: 0x74, 0x642: 0x18b, 0x643: 0x100, 0x644: 0x18c, 0x645: 0x18d, 0x646: 0x100, 0x647: 0x100, + 0x648: 0x100, 0x649: 0x100, 0x64a: 0x18e, 0x64b: 0x18f, 0x64c: 0x100, 0x64d: 0x100, 0x64e: 0x100, 0x64f: 0x100, + 0x650: 0x100, 0x651: 0x100, 0x652: 0x100, 0x653: 0x190, 0x654: 0x100, 0x655: 0x100, 0x656: 0x100, 0x657: 0x100, + 0x658: 0x100, 0x659: 0x100, 0x65a: 0x100, 0x65b: 0x100, 0x65c: 0x100, 0x65d: 0x100, 0x65e: 0x100, 0x65f: 0x191, + 0x660: 0x127, 0x661: 0x127, 0x662: 0x127, 0x663: 0x192, 0x664: 0x75, 0x665: 0x193, 0x666: 0x100, 0x667: 0x100, + 0x668: 0x100, 0x669: 0x100, 0x66a: 0x100, 0x66b: 0x100, 0x66c: 0x100, 0x66d: 0x100, 0x66e: 0x100, 0x66f: 0x100, + 0x670: 0x100, 0x671: 0x194, 0x672: 0x195, 0x673: 0x100, 0x674: 0x196, 0x675: 0x100, 0x676: 0x100, 0x677: 0x100, + 0x678: 0x76, 0x679: 0x77, 0x67a: 0x78, 0x67b: 0x197, 0x67c: 0x100, 0x67d: 0x100, 0x67e: 0x100, 0x67f: 0x100, + // Block 0x1a, offset 0x680 + 0x680: 0x198, 0x681: 0xa2, 0x682: 0x199, 0x683: 0x19a, 0x684: 0x79, 0x685: 0x7a, 0x686: 0x19b, 0x687: 0x19c, + 0x688: 0x7b, 0x689: 0x19d, 0x68a: 0x100, 0x68b: 0x100, 0x68c: 0xa2, 0x68d: 0xa2, 0x68e: 0xa2, 0x68f: 0xa2, + 0x690: 0xa2, 0x691: 0xa2, 0x692: 0xa2, 0x693: 0xa2, 0x694: 0xa2, 0x695: 0xa2, 0x696: 0xa2, 0x697: 0xa2, + 0x698: 0xa2, 0x699: 0xa2, 0x69a: 0xa2, 0x69b: 0x19e, 0x69c: 0xa2, 0x69d: 0x19f, 0x69e: 0xa2, 0x69f: 0x1a0, + 0x6a0: 0x1a1, 0x6a1: 0x1a2, 0x6a2: 0x1a3, 0x6a3: 0x100, 0x6a4: 0xa2, 0x6a5: 0xa2, 0x6a6: 0xa2, 0x6a7: 0xa2, + 0x6a8: 0xa2, 0x6a9: 0x1a4, 0x6aa: 0x1a5, 0x6ab: 0x1a6, 0x6ac: 0xa2, 0x6ad: 0xa2, 0x6ae: 0x1a7, 0x6af: 0x1a8, + 0x6b0: 0x100, 0x6b1: 0x100, 0x6b2: 0x100, 0x6b3: 0x100, 0x6b4: 0x100, 0x6b5: 0x100, 0x6b6: 0x100, 0x6b7: 0x100, + 0x6b8: 0x100, 0x6b9: 0x100, 0x6ba: 0x100, 0x6bb: 0x100, 0x6bc: 0x100, 0x6bd: 0x100, 0x6be: 0x100, 0x6bf: 0x100, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0xa6, 0x6c1: 0xa6, 0x6c2: 0xa6, 0x6c3: 0xa6, 0x6c4: 0xa6, 0x6c5: 0xa6, 0x6c6: 0xa6, 0x6c7: 0xa6, + 0x6c8: 0xa6, 0x6c9: 0xa6, 0x6ca: 0xa6, 0x6cb: 0xa6, 0x6cc: 0xa6, 0x6cd: 0xa6, 0x6ce: 0xa6, 0x6cf: 0xa6, + 0x6d0: 0xa6, 0x6d1: 0xa6, 0x6d2: 0xa6, 0x6d3: 0xa6, 0x6d4: 0xa6, 0x6d5: 0xa6, 0x6d6: 0xa6, 0x6d7: 0xa6, + 0x6d8: 0xa6, 0x6d9: 0xa6, 0x6da: 0xa6, 0x6db: 0x1a9, 0x6dc: 0xa6, 0x6dd: 0xa6, 0x6de: 0xa6, 0x6df: 0xa6, + 0x6e0: 0xa6, 0x6e1: 0xa6, 0x6e2: 0xa6, 0x6e3: 0xa6, 0x6e4: 0xa6, 0x6e5: 0xa6, 0x6e6: 0xa6, 0x6e7: 0xa6, + 0x6e8: 0xa6, 0x6e9: 0xa6, 0x6ea: 0xa6, 0x6eb: 0xa6, 0x6ec: 0xa6, 0x6ed: 0xa6, 0x6ee: 0xa6, 0x6ef: 0xa6, + 0x6f0: 0xa6, 0x6f1: 0xa6, 0x6f2: 0xa6, 0x6f3: 0xa6, 0x6f4: 0xa6, 0x6f5: 0xa6, 0x6f6: 0xa6, 0x6f7: 0xa6, + 0x6f8: 0xa6, 0x6f9: 0xa6, 0x6fa: 0xa6, 0x6fb: 0xa6, 0x6fc: 0xa6, 0x6fd: 0xa6, 0x6fe: 0xa6, 0x6ff: 0xa6, + // Block 0x1c, offset 0x700 + 0x700: 0xa6, 0x701: 0xa6, 0x702: 0xa6, 0x703: 0xa6, 0x704: 0xa6, 0x705: 0xa6, 0x706: 0xa6, 0x707: 0xa6, + 0x708: 0xa6, 0x709: 0xa6, 0x70a: 0xa6, 0x70b: 0xa6, 0x70c: 0xa6, 0x70d: 0xa6, 0x70e: 0xa6, 0x70f: 0xa6, + 0x710: 0xa6, 0x711: 0xa6, 0x712: 0xa6, 0x713: 0xa6, 0x714: 0xa6, 0x715: 0xa6, 0x716: 0xa6, 0x717: 0xa6, + 0x718: 0xa6, 0x719: 0xa6, 0x71a: 0xa6, 0x71b: 0xa6, 0x71c: 0x1aa, 0x71d: 0xa6, 0x71e: 0xa6, 0x71f: 0xa6, + 0x720: 0x1ab, 0x721: 0xa6, 0x722: 0xa6, 0x723: 0xa6, 0x724: 0xa6, 0x725: 0xa6, 0x726: 0xa6, 0x727: 0xa6, + 0x728: 0xa6, 0x729: 0xa6, 0x72a: 0xa6, 0x72b: 0xa6, 0x72c: 0xa6, 0x72d: 0xa6, 0x72e: 0xa6, 0x72f: 0xa6, + 0x730: 0xa6, 0x731: 0xa6, 0x732: 0xa6, 0x733: 0xa6, 0x734: 0xa6, 0x735: 0xa6, 0x736: 0xa6, 0x737: 0xa6, + 0x738: 0xa6, 0x739: 0xa6, 0x73a: 0xa6, 0x73b: 0xa6, 0x73c: 0xa6, 0x73d: 0xa6, 0x73e: 0xa6, 0x73f: 0xa6, + // Block 0x1d, offset 0x740 + 0x740: 0xa6, 0x741: 0xa6, 0x742: 0xa6, 0x743: 0xa6, 0x744: 0xa6, 0x745: 0xa6, 0x746: 0xa6, 0x747: 0xa6, + 0x748: 0xa6, 0x749: 0xa6, 0x74a: 0xa6, 0x74b: 0xa6, 0x74c: 0xa6, 0x74d: 0xa6, 0x74e: 0xa6, 0x74f: 0xa6, + 0x750: 0xa6, 0x751: 0xa6, 0x752: 0xa6, 0x753: 0xa6, 0x754: 0xa6, 0x755: 0xa6, 0x756: 0xa6, 0x757: 0xa6, + 0x758: 0xa6, 0x759: 0xa6, 0x75a: 0xa6, 0x75b: 0xa6, 0x75c: 0xa6, 0x75d: 0xa6, 0x75e: 0xa6, 0x75f: 0xa6, + 0x760: 0xa6, 0x761: 0xa6, 0x762: 0xa6, 0x763: 0xa6, 0x764: 0xa6, 0x765: 0xa6, 0x766: 0xa6, 0x767: 0xa6, + 0x768: 0xa6, 0x769: 0xa6, 0x76a: 0xa6, 0x76b: 0xa6, 0x76c: 0xa6, 0x76d: 0xa6, 0x76e: 0xa6, 0x76f: 0xa6, + 0x770: 0xa6, 0x771: 0xa6, 0x772: 0xa6, 0x773: 0xa6, 0x774: 0xa6, 0x775: 0xa6, 0x776: 0xa6, 0x777: 0xa6, + 0x778: 0xa6, 0x779: 0xa6, 0x77a: 0x1ac, 0x77b: 0xa6, 0x77c: 0xa6, 0x77d: 0xa6, 0x77e: 0xa6, 0x77f: 0xa6, + // Block 0x1e, offset 0x780 + 0x780: 0xa6, 0x781: 0xa6, 0x782: 0xa6, 0x783: 0xa6, 0x784: 0xa6, 0x785: 0xa6, 0x786: 0xa6, 0x787: 0xa6, + 0x788: 0xa6, 0x789: 0xa6, 0x78a: 0xa6, 0x78b: 0xa6, 0x78c: 0xa6, 0x78d: 0xa6, 0x78e: 0xa6, 0x78f: 0xa6, + 0x790: 0xa6, 0x791: 0xa6, 0x792: 0xa6, 0x793: 0xa6, 0x794: 0xa6, 0x795: 0xa6, 0x796: 0xa6, 0x797: 0xa6, + 0x798: 0xa6, 0x799: 0xa6, 0x79a: 0xa6, 0x79b: 0xa6, 0x79c: 0xa6, 0x79d: 0xa6, 0x79e: 0xa6, 0x79f: 0xa6, + 0x7a0: 0xa6, 0x7a1: 0xa6, 0x7a2: 0xa6, 0x7a3: 0xa6, 0x7a4: 0xa6, 0x7a5: 0xa6, 0x7a6: 0xa6, 0x7a7: 0xa6, + 0x7a8: 0xa6, 0x7a9: 0xa6, 0x7aa: 0xa6, 0x7ab: 0xa6, 0x7ac: 0xa6, 0x7ad: 0xa6, 0x7ae: 0xa6, 0x7af: 0x1ad, + 0x7b0: 0x100, 0x7b1: 0x100, 0x7b2: 0x100, 0x7b3: 0x100, 0x7b4: 0x100, 0x7b5: 0x100, 0x7b6: 0x100, 0x7b7: 0x100, + 0x7b8: 0x100, 0x7b9: 0x100, 0x7ba: 0x100, 0x7bb: 0x100, 0x7bc: 0x100, 0x7bd: 0x100, 0x7be: 0x100, 0x7bf: 0x100, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x100, 0x7c1: 0x100, 0x7c2: 0x100, 0x7c3: 0x100, 0x7c4: 0x100, 0x7c5: 0x100, 0x7c6: 0x100, 0x7c7: 0x100, + 0x7c8: 0x100, 0x7c9: 0x100, 0x7ca: 0x100, 0x7cb: 0x100, 0x7cc: 0x100, 0x7cd: 0x100, 0x7ce: 0x100, 0x7cf: 0x100, + 0x7d0: 0x100, 0x7d1: 0x100, 0x7d2: 0x100, 0x7d3: 0x100, 0x7d4: 0x100, 0x7d5: 0x100, 0x7d6: 0x100, 0x7d7: 0x100, + 0x7d8: 0x100, 0x7d9: 0x100, 0x7da: 0x100, 0x7db: 0x100, 0x7dc: 0x100, 0x7dd: 0x100, 0x7de: 0x100, 0x7df: 0x100, + 0x7e0: 0x7c, 0x7e1: 0x7d, 0x7e2: 0x7e, 0x7e3: 0x7f, 0x7e4: 0x80, 0x7e5: 0x81, 0x7e6: 0x82, 0x7e7: 0x83, + 0x7e8: 0x84, 0x7e9: 0x100, 0x7ea: 0x100, 0x7eb: 0x100, 0x7ec: 0x100, 0x7ed: 0x100, 0x7ee: 0x100, 0x7ef: 0x100, + 0x7f0: 0x100, 0x7f1: 0x100, 0x7f2: 0x100, 0x7f3: 0x100, 0x7f4: 0x100, 0x7f5: 0x100, 0x7f6: 0x100, 0x7f7: 0x100, + 0x7f8: 0x100, 0x7f9: 0x100, 0x7fa: 0x100, 0x7fb: 0x100, 0x7fc: 0x100, 0x7fd: 0x100, 0x7fe: 0x100, 0x7ff: 0x100, + // Block 0x20, offset 0x800 + 0x800: 0xa6, 0x801: 0xa6, 0x802: 0xa6, 0x803: 0xa6, 0x804: 0xa6, 0x805: 0xa6, 0x806: 0xa6, 0x807: 0xa6, + 0x808: 0xa6, 0x809: 0xa6, 0x80a: 0xa6, 0x80b: 0xa6, 0x80c: 0xa6, 0x80d: 0x1ae, 0x80e: 0xa6, 0x80f: 0xa6, + 0x810: 0xa6, 0x811: 0xa6, 0x812: 0xa6, 0x813: 0xa6, 0x814: 0xa6, 0x815: 0xa6, 0x816: 0xa6, 0x817: 0xa6, + 0x818: 0xa6, 0x819: 0xa6, 0x81a: 0xa6, 0x81b: 0xa6, 0x81c: 0xa6, 0x81d: 0xa6, 0x81e: 0xa6, 0x81f: 0xa6, + 0x820: 0xa6, 0x821: 0xa6, 0x822: 0xa6, 0x823: 0xa6, 0x824: 0xa6, 0x825: 0xa6, 0x826: 0xa6, 0x827: 0xa6, + 0x828: 0xa6, 0x829: 0xa6, 0x82a: 0xa6, 0x82b: 0xa6, 0x82c: 0xa6, 0x82d: 0xa6, 0x82e: 0xa6, 0x82f: 0xa6, + 0x830: 0xa6, 0x831: 0xa6, 0x832: 0xa6, 0x833: 0xa6, 0x834: 0xa6, 0x835: 0xa6, 0x836: 0xa6, 0x837: 0xa6, + 0x838: 0xa6, 0x839: 0xa6, 0x83a: 0xa6, 0x83b: 0xa6, 0x83c: 0xa6, 0x83d: 0xa6, 0x83e: 0xa6, 0x83f: 0xa6, + // Block 0x21, offset 0x840 + 0x840: 0xa6, 0x841: 0xa6, 0x842: 0xa6, 0x843: 0xa6, 0x844: 0xa6, 0x845: 0xa6, 0x846: 0xa6, 0x847: 0xa6, + 0x848: 0xa6, 0x849: 0xa6, 0x84a: 0xa6, 0x84b: 0xa6, 0x84c: 0xa6, 0x84d: 0xa6, 0x84e: 0x1af, 0x84f: 0x100, + 0x850: 0x100, 0x851: 0x100, 0x852: 0x100, 0x853: 0x100, 0x854: 0x100, 0x855: 0x100, 0x856: 0x100, 0x857: 0x100, + 0x858: 0x100, 0x859: 0x100, 0x85a: 0x100, 0x85b: 0x100, 0x85c: 0x100, 0x85d: 0x100, 0x85e: 0x100, 0x85f: 0x100, + 0x860: 0x100, 0x861: 0x100, 0x862: 0x100, 0x863: 0x100, 0x864: 0x100, 0x865: 0x100, 0x866: 0x100, 0x867: 0x100, + 0x868: 0x100, 0x869: 0x100, 0x86a: 0x100, 0x86b: 0x100, 0x86c: 0x100, 0x86d: 0x100, 0x86e: 0x100, 0x86f: 0x100, + 0x870: 0x100, 0x871: 0x100, 0x872: 0x100, 0x873: 0x100, 0x874: 0x100, 0x875: 0x100, 0x876: 0x100, 0x877: 0x100, + 0x878: 0x100, 0x879: 0x100, 0x87a: 0x100, 0x87b: 0x100, 0x87c: 0x100, 0x87d: 0x100, 0x87e: 0x100, 0x87f: 0x100, + // Block 0x22, offset 0x880 + 0x890: 0x0c, 0x891: 0x0d, 0x892: 0x0e, 0x893: 0x0f, 0x894: 0x10, 0x895: 0x0a, 0x896: 0x11, 0x897: 0x07, + 0x898: 0x12, 0x899: 0x0a, 0x89a: 0x13, 0x89b: 0x14, 0x89c: 0x15, 0x89d: 0x16, 0x89e: 0x17, 0x89f: 0x18, + 0x8a0: 0x07, 0x8a1: 0x07, 0x8a2: 0x07, 0x8a3: 0x07, 0x8a4: 0x07, 0x8a5: 0x07, 0x8a6: 0x07, 0x8a7: 0x07, + 0x8a8: 0x07, 0x8a9: 0x07, 0x8aa: 0x19, 0x8ab: 0x1a, 0x8ac: 0x1b, 0x8ad: 0x07, 0x8ae: 0x1c, 0x8af: 0x1d, + 0x8b0: 0x07, 0x8b1: 0x1e, 0x8b2: 0x1f, 0x8b3: 0x0a, 0x8b4: 0x0a, 0x8b5: 0x0a, 0x8b6: 0x0a, 0x8b7: 0x0a, + 0x8b8: 0x0a, 0x8b9: 0x0a, 0x8ba: 0x0a, 0x8bb: 0x0a, 0x8bc: 0x0a, 0x8bd: 0x0a, 0x8be: 0x0a, 0x8bf: 0x0a, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0a, 0x8c1: 0x0a, 0x8c2: 0x0a, 0x8c3: 0x0a, 0x8c4: 0x0a, 0x8c5: 0x0a, 0x8c6: 0x0a, 0x8c7: 0x0a, + 0x8c8: 0x0a, 0x8c9: 0x0a, 0x8ca: 0x0a, 0x8cb: 0x0a, 0x8cc: 0x0a, 0x8cd: 0x0a, 0x8ce: 0x0a, 0x8cf: 0x0a, + 0x8d0: 0x0a, 0x8d1: 0x0a, 0x8d2: 0x0a, 0x8d3: 0x0a, 0x8d4: 0x0a, 0x8d5: 0x0a, 0x8d6: 0x0a, 0x8d7: 0x0a, + 0x8d8: 0x0a, 0x8d9: 0x0a, 0x8da: 0x0a, 0x8db: 0x0a, 0x8dc: 0x0a, 0x8dd: 0x0a, 0x8de: 0x0a, 0x8df: 0x0a, + 0x8e0: 0x0a, 0x8e1: 0x0a, 0x8e2: 0x0a, 0x8e3: 0x0a, 0x8e4: 0x0a, 0x8e5: 0x0a, 0x8e6: 0x0a, 0x8e7: 0x0a, + 0x8e8: 0x0a, 0x8e9: 0x0a, 0x8ea: 0x0a, 0x8eb: 0x0a, 0x8ec: 0x0a, 0x8ed: 0x0a, 0x8ee: 0x0a, 0x8ef: 0x0a, + 0x8f0: 0x0a, 0x8f1: 0x0a, 0x8f2: 0x0a, 0x8f3: 0x0a, 0x8f4: 0x0a, 0x8f5: 0x0a, 0x8f6: 0x0a, 0x8f7: 0x0a, + 0x8f8: 0x0a, 0x8f9: 0x0a, 0x8fa: 0x0a, 0x8fb: 0x0a, 0x8fc: 0x0a, 0x8fd: 0x0a, 0x8fe: 0x0a, 0x8ff: 0x0a, + // Block 0x24, offset 0x900 + 0x900: 0x1b0, 0x901: 0x1b1, 0x902: 0x100, 0x903: 0x100, 0x904: 0x1b2, 0x905: 0x1b2, 0x906: 0x1b2, 0x907: 0x1b3, + 0x908: 0x100, 0x909: 0x100, 0x90a: 0x100, 0x90b: 0x100, 0x90c: 0x100, 0x90d: 0x100, 0x90e: 0x100, 0x90f: 0x100, + 0x910: 0x100, 0x911: 0x100, 0x912: 0x100, 0x913: 0x100, 0x914: 0x100, 0x915: 0x100, 0x916: 0x100, 0x917: 0x100, + 0x918: 0x100, 0x919: 0x100, 0x91a: 0x100, 0x91b: 0x100, 0x91c: 0x100, 0x91d: 0x100, 0x91e: 0x100, 0x91f: 0x100, + 0x920: 0x100, 0x921: 0x100, 0x922: 0x100, 0x923: 0x100, 0x924: 0x100, 0x925: 0x100, 0x926: 0x100, 0x927: 0x100, + 0x928: 0x100, 0x929: 0x100, 0x92a: 0x100, 0x92b: 0x100, 0x92c: 0x100, 0x92d: 0x100, 0x92e: 0x100, 0x92f: 0x100, + 0x930: 0x100, 0x931: 0x100, 0x932: 0x100, 0x933: 0x100, 0x934: 0x100, 0x935: 0x100, 0x936: 0x100, 0x937: 0x100, + 0x938: 0x100, 0x939: 0x100, 0x93a: 0x100, 0x93b: 0x100, 0x93c: 0x100, 0x93d: 0x100, 0x93e: 0x100, 0x93f: 0x100, + // Block 0x25, offset 0x940 + 0x940: 0x0a, 0x941: 0x0a, 0x942: 0x0a, 0x943: 0x0a, 0x944: 0x0a, 0x945: 0x0a, 0x946: 0x0a, 0x947: 0x0a, + 0x948: 0x0a, 0x949: 0x0a, 0x94a: 0x0a, 0x94b: 0x0a, 0x94c: 0x0a, 0x94d: 0x0a, 0x94e: 0x0a, 0x94f: 0x0a, + 0x950: 0x0a, 0x951: 0x0a, 0x952: 0x0a, 0x953: 0x0a, 0x954: 0x0a, 0x955: 0x0a, 0x956: 0x0a, 0x957: 0x0a, + 0x958: 0x0a, 0x959: 0x0a, 0x95a: 0x0a, 0x95b: 0x0a, 0x95c: 0x0a, 0x95d: 0x0a, 0x95e: 0x0a, 0x95f: 0x0a, + 0x960: 0x22, 0x961: 0x0a, 0x962: 0x0a, 0x963: 0x0a, 0x964: 0x0a, 0x965: 0x0a, 0x966: 0x0a, 0x967: 0x0a, + 0x968: 0x0a, 0x969: 0x0a, 0x96a: 0x0a, 0x96b: 0x0a, 0x96c: 0x0a, 0x96d: 0x0a, 0x96e: 0x0a, 0x96f: 0x0a, + 0x970: 0x0a, 0x971: 0x0a, 0x972: 0x0a, 0x973: 0x0a, 0x974: 0x0a, 0x975: 0x0a, 0x976: 0x0a, 0x977: 0x0a, + 0x978: 0x0a, 0x979: 0x0a, 0x97a: 0x0a, 0x97b: 0x0a, 0x97c: 0x0a, 0x97d: 0x0a, 0x97e: 0x0a, 0x97f: 0x0a, + // Block 0x26, offset 0x980 + 0x980: 0x0a, 0x981: 0x0a, 0x982: 0x0a, 0x983: 0x0a, 0x984: 0x0a, 0x985: 0x0a, 0x986: 0x0a, 0x987: 0x0a, + 0x988: 0x0a, 0x989: 0x0a, 0x98a: 0x0a, 0x98b: 0x0a, 0x98c: 0x0a, 0x98d: 0x0a, 0x98e: 0x0a, 0x98f: 0x0a, +} + +// idnaSparseOffset: 303 entries, 606 bytes +var idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x7e, 0x87, 0x97, 0xa6, 0xb1, 0xbe, 0xcf, 0xd9, 0xe0, 0xed, 0xfe, 0x105, 0x110, 0x11f, 0x12d, 0x137, 0x139, 0x13e, 0x141, 0x144, 0x146, 0x152, 0x15d, 0x165, 0x16b, 0x171, 0x176, 0x17b, 0x17e, 0x182, 0x188, 0x18d, 0x198, 0x1a2, 0x1a8, 0x1b9, 0x1c4, 0x1c7, 0x1cf, 0x1d2, 0x1df, 0x1e7, 0x1eb, 0x1f2, 0x1fa, 0x20a, 0x216, 0x219, 0x223, 0x22f, 0x23b, 0x247, 0x24f, 0x254, 0x261, 0x272, 0x27d, 0x282, 0x28b, 0x293, 0x299, 0x29e, 0x2a1, 0x2a5, 0x2ab, 0x2af, 0x2b3, 0x2b7, 0x2bc, 0x2c4, 0x2cb, 0x2d6, 0x2e0, 0x2e4, 0x2e7, 0x2ed, 0x2f1, 0x2f3, 0x2f6, 0x2f8, 0x2fb, 0x305, 0x308, 0x317, 0x31b, 0x31f, 0x321, 0x32a, 0x32e, 0x333, 0x338, 0x33e, 0x34e, 0x354, 0x358, 0x367, 0x36c, 0x374, 0x37e, 0x389, 0x391, 0x3a2, 0x3ab, 0x3bb, 0x3c8, 0x3d4, 0x3d9, 0x3e6, 0x3ea, 0x3ef, 0x3f1, 0x3f3, 0x3f7, 0x3f9, 0x3fd, 0x406, 0x40c, 0x410, 0x420, 0x42a, 0x42f, 0x432, 0x438, 0x43f, 0x444, 0x448, 0x44e, 0x453, 0x45c, 0x461, 0x467, 0x46e, 0x475, 0x47c, 0x480, 0x483, 0x488, 0x494, 0x49a, 0x49f, 0x4a6, 0x4ae, 0x4b3, 0x4b7, 0x4c7, 0x4ce, 0x4d2, 0x4d6, 0x4dd, 0x4df, 0x4e2, 0x4e5, 0x4e9, 0x4f2, 0x4f6, 0x4fe, 0x501, 0x509, 0x514, 0x523, 0x52f, 0x535, 0x542, 0x54e, 0x556, 0x55f, 0x56a, 0x571, 0x580, 0x58d, 0x591, 0x59e, 0x5a7, 0x5ab, 0x5ba, 0x5c2, 0x5cd, 0x5d6, 0x5dc, 0x5e4, 0x5ed, 0x5f9, 0x5fc, 0x608, 0x60b, 0x614, 0x617, 0x61c, 0x625, 0x62a, 0x637, 0x642, 0x64b, 0x656, 0x659, 0x65c, 0x666, 0x66f, 0x67b, 0x688, 0x695, 0x6a3, 0x6aa, 0x6b5, 0x6bc, 0x6c0, 0x6c4, 0x6c7, 0x6cc, 0x6cf, 0x6d2, 0x6d6, 0x6d9, 0x6de, 0x6e5, 0x6e8, 0x6f0, 0x6f4, 0x6ff, 0x702, 0x705, 0x708, 0x70e, 0x714, 0x71d, 0x720, 0x723, 0x726, 0x72e, 0x733, 0x73c, 0x73f, 0x744, 0x74e, 0x752, 0x756, 0x759, 0x75c, 0x760, 0x76f, 0x77b, 0x77f, 0x784, 0x789, 0x78e, 0x792, 0x797, 0x7a0, 0x7a5, 0x7a9, 0x7af, 0x7b5, 0x7ba, 0x7c0, 0x7c6, 0x7d0, 0x7d6, 0x7df, 0x7e2, 0x7e5, 0x7e9, 0x7ed, 0x7f1, 0x7f7, 0x7fd, 0x802, 0x805, 0x815, 0x81c, 0x820, 0x827, 0x82b, 0x831, 0x838, 0x83f, 0x845, 0x84e, 0x852, 0x860, 0x863, 0x866, 0x86a, 0x86e, 0x871, 0x875, 0x878, 0x87d, 0x87f, 0x881} + +// idnaSparseValues: 2180 entries, 8720 bytes +var idnaSparseValues = [2180]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x07}, + {value: 0xe105, lo: 0x80, hi: 0x96}, + {value: 0x0018, lo: 0x97, hi: 0x97}, + {value: 0xe105, lo: 0x98, hi: 0x9e}, + {value: 0x001f, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbf}, + // Block 0x1, offset 0x8 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0xe01d, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x0335, lo: 0x83, hi: 0x83}, + {value: 0x034d, lo: 0x84, hi: 0x84}, + {value: 0x0365, lo: 0x85, hi: 0x85}, + {value: 0xe00d, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0xe00d, lo: 0x88, hi: 0x88}, + {value: 0x0008, lo: 0x89, hi: 0x89}, + {value: 0xe00d, lo: 0x8a, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0x8b}, + {value: 0xe00d, lo: 0x8c, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0x8d}, + {value: 0xe00d, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0xbf}, + // Block 0x2, offset 0x19 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x00a9, lo: 0xb0, hi: 0xb0}, + {value: 0x037d, lo: 0xb1, hi: 0xb1}, + {value: 0x00b1, lo: 0xb2, hi: 0xb2}, + {value: 0x00b9, lo: 0xb3, hi: 0xb3}, + {value: 0x034d, lo: 0xb4, hi: 0xb4}, + {value: 0x0395, lo: 0xb5, hi: 0xb5}, + {value: 0xe1bd, lo: 0xb6, hi: 0xb6}, + {value: 0x00c1, lo: 0xb7, hi: 0xb7}, + {value: 0x00c9, lo: 0xb8, hi: 0xb8}, + {value: 0x0008, lo: 0xb9, hi: 0xbf}, + // Block 0x3, offset 0x25 + {value: 0x0000, lo: 0x01}, + {value: 0x3308, lo: 0x80, hi: 0xbf}, + // Block 0x4, offset 0x27 + {value: 0x0000, lo: 0x04}, + {value: 0x03f5, lo: 0x80, hi: 0x8f}, + {value: 0xe105, lo: 0x90, hi: 0x9f}, + {value: 0x049d, lo: 0xa0, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x5, offset 0x2c + {value: 0x0000, lo: 0x06}, + {value: 0xe185, lo: 0x80, hi: 0x8f}, + {value: 0x0545, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x98}, + {value: 0x0008, lo: 0x99, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x6, offset 0x33 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0131, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x88}, + {value: 0x0018, lo: 0x89, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x3308, lo: 0x91, hi: 0xbd}, + {value: 0x0818, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x7, offset 0x3e + {value: 0x0000, lo: 0x0b}, + {value: 0x0818, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x82}, + {value: 0x0818, lo: 0x83, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x85}, + {value: 0x0818, lo: 0x86, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xae}, + {value: 0x0808, lo: 0xaf, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x8, offset 0x4a + {value: 0x0000, lo: 0x03}, + {value: 0x0a08, lo: 0x80, hi: 0x87}, + {value: 0x0c08, lo: 0x88, hi: 0x99}, + {value: 0x0a08, lo: 0x9a, hi: 0xbf}, + // Block 0x9, offset 0x4e + {value: 0x0000, lo: 0x0e}, + {value: 0x3308, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8c}, + {value: 0x0c08, lo: 0x8d, hi: 0x8d}, + {value: 0x0a08, lo: 0x8e, hi: 0x98}, + {value: 0x0c08, lo: 0x99, hi: 0x9b}, + {value: 0x0a08, lo: 0x9c, hi: 0xaa}, + {value: 0x0c08, lo: 0xab, hi: 0xac}, + {value: 0x0a08, lo: 0xad, hi: 0xb0}, + {value: 0x0c08, lo: 0xb1, hi: 0xb1}, + {value: 0x0a08, lo: 0xb2, hi: 0xb2}, + {value: 0x0c08, lo: 0xb3, hi: 0xb4}, + {value: 0x0a08, lo: 0xb5, hi: 0xb7}, + {value: 0x0c08, lo: 0xb8, hi: 0xb9}, + {value: 0x0a08, lo: 0xba, hi: 0xbf}, + // Block 0xa, offset 0x5d + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xb0}, + {value: 0x0808, lo: 0xb1, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xb, offset 0x62 + {value: 0x0000, lo: 0x09}, + {value: 0x0808, lo: 0x80, hi: 0x89}, + {value: 0x0a08, lo: 0x8a, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xb3}, + {value: 0x0808, lo: 0xb4, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xb9}, + {value: 0x0818, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x0818, lo: 0xbe, hi: 0xbf}, + // Block 0xc, offset 0x6c + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x99}, + {value: 0x0808, lo: 0x9a, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0xa3}, + {value: 0x0808, lo: 0xa4, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa7}, + {value: 0x0808, lo: 0xa8, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0818, lo: 0xb0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xd, offset 0x78 + {value: 0x0000, lo: 0x05}, + {value: 0x0a08, lo: 0x80, hi: 0x88}, + {value: 0x0808, lo: 0x89, hi: 0x89}, + {value: 0x3308, lo: 0x8a, hi: 0xa1}, + {value: 0x0840, lo: 0xa2, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xbf}, + // Block 0xe, offset 0x7e + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0xf, offset 0x87 + {value: 0x0000, lo: 0x0f}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x85}, + {value: 0x3008, lo: 0x86, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x3008, lo: 0x8a, hi: 0x8c}, + {value: 0x3b08, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x10, offset 0x97 + {value: 0x0000, lo: 0x0e}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbf}, + // Block 0x11, offset 0xa6 + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xba}, + {value: 0x3b08, lo: 0xbb, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x12, offset 0xb1 + {value: 0x0000, lo: 0x0c}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xb2}, + {value: 0x0008, lo: 0xb3, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x13, offset 0xbe + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x89}, + {value: 0x3b08, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8e}, + {value: 0x3008, lo: 0x8f, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x94}, + {value: 0x0040, lo: 0x95, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x3008, lo: 0x98, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x14, offset 0xcf + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb2}, + {value: 0x01f1, lo: 0xb3, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb9}, + {value: 0x3b08, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0x15, offset 0xd9 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x8e}, + {value: 0x0018, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0xbf}, + // Block 0x16, offset 0xe0 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x3308, lo: 0x88, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0201, lo: 0x9c, hi: 0x9c}, + {value: 0x0209, lo: 0x9d, hi: 0x9d}, + {value: 0x0008, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x17, offset 0xed + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0x8b}, + {value: 0xe03d, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xb8}, + {value: 0x3308, lo: 0xb9, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x18, offset 0xfe + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0xbf}, + // Block 0x19, offset 0x105 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x3008, lo: 0xab, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xb0}, + {value: 0x3008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0x1a, offset 0x110 + {value: 0x0000, lo: 0x0e}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x95}, + {value: 0x3008, lo: 0x96, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0x9d}, + {value: 0x3308, lo: 0x9e, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xa1}, + {value: 0x3008, lo: 0xa2, hi: 0xa4}, + {value: 0x0008, lo: 0xa5, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xbf}, + // Block 0x1b, offset 0x11f + {value: 0x0000, lo: 0x0d}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x8c}, + {value: 0x3308, lo: 0x8d, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x8e}, + {value: 0x3008, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x3008, lo: 0x9a, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x1c, offset 0x12d + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x86}, + {value: 0x055d, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8c}, + {value: 0x055d, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbb}, + {value: 0xe105, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbf}, + // Block 0x1d, offset 0x137 + {value: 0x0000, lo: 0x01}, + {value: 0x0018, lo: 0x80, hi: 0xbf}, + // Block 0x1e, offset 0x139 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa0}, + {value: 0x2018, lo: 0xa1, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x1f, offset 0x13e + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xa7}, + {value: 0x2018, lo: 0xa8, hi: 0xbf}, + // Block 0x20, offset 0x141 + {value: 0x0000, lo: 0x02}, + {value: 0x2018, lo: 0x80, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0xbf}, + // Block 0x21, offset 0x144 + {value: 0x0000, lo: 0x01}, + {value: 0x0008, lo: 0x80, hi: 0xbf}, + // Block 0x22, offset 0x146 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x99}, + {value: 0x0008, lo: 0x9a, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x23, offset 0x152 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x24, offset 0x15d + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbf}, + // Block 0x25, offset 0x165 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbf}, + // Block 0x26, offset 0x16b + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x27, offset 0x171 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x28, offset 0x176 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0xe045, lo: 0xb8, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x29, offset 0x17b + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xbf}, + // Block 0x2a, offset 0x17e + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xac}, + {value: 0x0018, lo: 0xad, hi: 0xae}, + {value: 0x0008, lo: 0xaf, hi: 0xbf}, + // Block 0x2b, offset 0x182 + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x2c, offset 0x188 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0x2d, offset 0x18d + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x93}, + {value: 0x3b08, lo: 0x94, hi: 0x94}, + {value: 0x3808, lo: 0x95, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x9e}, + {value: 0x0008, lo: 0x9f, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x3808, lo: 0xb4, hi: 0xb4}, + {value: 0x0018, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x2e, offset 0x198 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x2f, offset 0x1a2 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xb3}, + {value: 0x3340, lo: 0xb4, hi: 0xb5}, + {value: 0x3008, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x30, offset 0x1a8 + {value: 0x0000, lo: 0x10}, + {value: 0x3008, lo: 0x80, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x3008, lo: 0x87, hi: 0x88}, + {value: 0x3308, lo: 0x89, hi: 0x91}, + {value: 0x3b08, lo: 0x92, hi: 0x92}, + {value: 0x3308, lo: 0x93, hi: 0x93}, + {value: 0x0018, lo: 0x94, hi: 0x96}, + {value: 0x0008, lo: 0x97, hi: 0x97}, + {value: 0x0018, lo: 0x98, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x31, offset 0x1b9 + {value: 0x0000, lo: 0x0a}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x86}, + {value: 0x0218, lo: 0x87, hi: 0x87}, + {value: 0x0018, lo: 0x88, hi: 0x8a}, + {value: 0x33c0, lo: 0x8b, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x33c0, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0208, lo: 0xa0, hi: 0xbf}, + // Block 0x32, offset 0x1c4 + {value: 0x0000, lo: 0x02}, + {value: 0x0208, lo: 0x80, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0x33, offset 0x1c7 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x0208, lo: 0x87, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xa9}, + {value: 0x0208, lo: 0xaa, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x34, offset 0x1cf + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0x35, offset 0x1d2 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb8}, + {value: 0x3308, lo: 0xb9, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x36, offset 0x1df + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x37, offset 0x1e7 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x38, offset 0x1eb + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0028, lo: 0x9a, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0xbf}, + // Block 0x39, offset 0x1f2 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x3308, lo: 0x97, hi: 0x98}, + {value: 0x3008, lo: 0x99, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x3a, offset 0x1fa + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x94}, + {value: 0x3008, lo: 0x95, hi: 0x95}, + {value: 0x3308, lo: 0x96, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3b08, lo: 0xa0, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xac}, + {value: 0x3008, lo: 0xad, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x3b, offset 0x20a + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa7}, + {value: 0x0018, lo: 0xa8, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xbd}, + {value: 0x3318, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x3c, offset 0x216 + {value: 0x0000, lo: 0x02}, + {value: 0x3308, lo: 0x80, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0xbf}, + // Block 0x3d, offset 0x219 + {value: 0x0000, lo: 0x09}, + {value: 0x3308, lo: 0x80, hi: 0x83}, + {value: 0x3008, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbf}, + // Block 0x3e, offset 0x223 + {value: 0x0000, lo: 0x0b}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x3808, lo: 0x84, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x3f, offset 0x22f + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa9}, + {value: 0x3808, lo: 0xaa, hi: 0xaa}, + {value: 0x3b08, lo: 0xab, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xbf}, + // Block 0x40, offset 0x23b + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa9}, + {value: 0x3008, lo: 0xaa, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb1}, + {value: 0x3808, lo: 0xb2, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbf}, + // Block 0x41, offset 0x247 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x3008, lo: 0xa4, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbf}, + // Block 0x42, offset 0x24f + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0x43, offset 0x254 + {value: 0x0000, lo: 0x0c}, + {value: 0x02a9, lo: 0x80, hi: 0x80}, + {value: 0x02b1, lo: 0x81, hi: 0x81}, + {value: 0x02b9, lo: 0x82, hi: 0x82}, + {value: 0x02c1, lo: 0x83, hi: 0x83}, + {value: 0x02c9, lo: 0x84, hi: 0x85}, + {value: 0x02d1, lo: 0x86, hi: 0x86}, + {value: 0x02d9, lo: 0x87, hi: 0x87}, + {value: 0x057d, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x059d, lo: 0x90, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbc}, + {value: 0x059d, lo: 0xbd, hi: 0xbf}, + // Block 0x44, offset 0x261 + {value: 0x0000, lo: 0x10}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x92}, + {value: 0x0018, lo: 0x93, hi: 0x93}, + {value: 0x3308, lo: 0x94, hi: 0xa0}, + {value: 0x3008, lo: 0xa1, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa8}, + {value: 0x0008, lo: 0xa9, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x0008, lo: 0xae, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb6}, + {value: 0x3008, lo: 0xb7, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x45, offset 0x272 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x87}, + {value: 0xe045, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0xe045, lo: 0x98, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0xe045, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb7}, + {value: 0xe045, lo: 0xb8, hi: 0xbf}, + // Block 0x46, offset 0x27d + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x80}, + {value: 0x0040, lo: 0x81, hi: 0x8f}, + {value: 0x3318, lo: 0x90, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbf}, + // Block 0x47, offset 0x282 + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x88}, + {value: 0x0851, lo: 0x89, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x48, offset 0x28b + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0xab}, + {value: 0x0859, lo: 0xac, hi: 0xac}, + {value: 0x0861, lo: 0xad, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xae}, + {value: 0x0869, lo: 0xaf, hi: 0xaf}, + {value: 0x0871, lo: 0xb0, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xbf}, + // Block 0x49, offset 0x293 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x9f}, + {value: 0x0080, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xad}, + {value: 0x0080, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x4a, offset 0x299 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xa8}, + {value: 0x09dd, lo: 0xa9, hi: 0xa9}, + {value: 0x09fd, lo: 0xaa, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xbf}, + // Block 0x4b, offset 0x29e + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xbf}, + // Block 0x4c, offset 0x2a1 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x0929, lo: 0x8c, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0xbf}, + // Block 0x4d, offset 0x2a5 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0e7e, lo: 0xb4, hi: 0xb4}, + {value: 0x0932, lo: 0xb5, hi: 0xb5}, + {value: 0x0e9e, lo: 0xb6, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0x4e, offset 0x2ab + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x9b}, + {value: 0x0939, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0xbf}, + // Block 0x4f, offset 0x2af + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x50, offset 0x2b3 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x96}, + {value: 0x0018, lo: 0x97, hi: 0xbf}, + // Block 0x51, offset 0x2b7 + {value: 0x0000, lo: 0x04}, + {value: 0xe185, lo: 0x80, hi: 0x8f}, + {value: 0x03f5, lo: 0x90, hi: 0x9f}, + {value: 0x0ebd, lo: 0xa0, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x52, offset 0x2bc + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xac}, + {value: 0x0008, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x53, offset 0x2c4 + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xae}, + {value: 0xe075, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0x54, offset 0x2cb + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x55, offset 0x2d6 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xbf}, + // Block 0x56, offset 0x2e0 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xae}, + {value: 0x0008, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x57, offset 0x2e4 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0x58, offset 0x2e7 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9e}, + {value: 0x0ef5, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbf}, + // Block 0x59, offset 0x2ed + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb2}, + {value: 0x0f15, lo: 0xb3, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x5a, offset 0x2f1 + {value: 0x0020, lo: 0x01}, + {value: 0x0f35, lo: 0x80, hi: 0xbf}, + // Block 0x5b, offset 0x2f3 + {value: 0x0020, lo: 0x02}, + {value: 0x1735, lo: 0x80, hi: 0x8f}, + {value: 0x1915, lo: 0x90, hi: 0xbf}, + // Block 0x5c, offset 0x2f6 + {value: 0x0020, lo: 0x01}, + {value: 0x1f15, lo: 0x80, hi: 0xbf}, + // Block 0x5d, offset 0x2f8 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0xbf}, + // Block 0x5e, offset 0x2fb + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x98}, + {value: 0x3308, lo: 0x99, hi: 0x9a}, + {value: 0x096a, lo: 0x9b, hi: 0x9b}, + {value: 0x0972, lo: 0x9c, hi: 0x9c}, + {value: 0x0008, lo: 0x9d, hi: 0x9e}, + {value: 0x0979, lo: 0x9f, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xbf}, + // Block 0x5f, offset 0x305 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbe}, + {value: 0x0981, lo: 0xbf, hi: 0xbf}, + // Block 0x60, offset 0x308 + {value: 0x0000, lo: 0x0e}, + {value: 0x0040, lo: 0x80, hi: 0x84}, + {value: 0x0008, lo: 0x85, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xb0}, + {value: 0x2a35, lo: 0xb1, hi: 0xb1}, + {value: 0x2a55, lo: 0xb2, hi: 0xb2}, + {value: 0x2a75, lo: 0xb3, hi: 0xb3}, + {value: 0x2a95, lo: 0xb4, hi: 0xb4}, + {value: 0x2a75, lo: 0xb5, hi: 0xb5}, + {value: 0x2ab5, lo: 0xb6, hi: 0xb6}, + {value: 0x2ad5, lo: 0xb7, hi: 0xb7}, + {value: 0x2af5, lo: 0xb8, hi: 0xb9}, + {value: 0x2b15, lo: 0xba, hi: 0xbb}, + {value: 0x2b35, lo: 0xbc, hi: 0xbd}, + {value: 0x2b15, lo: 0xbe, hi: 0xbf}, + // Block 0x61, offset 0x317 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x62, offset 0x31b + {value: 0x0008, lo: 0x03}, + {value: 0x098a, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x0a82, lo: 0xa0, hi: 0xbf}, + // Block 0x63, offset 0x31f + {value: 0x0008, lo: 0x01}, + {value: 0x0d19, lo: 0x80, hi: 0xbf}, + // Block 0x64, offset 0x321 + {value: 0x0008, lo: 0x08}, + {value: 0x0f19, lo: 0x80, hi: 0xb0}, + {value: 0x4045, lo: 0xb1, hi: 0xb1}, + {value: 0x10a1, lo: 0xb2, hi: 0xb3}, + {value: 0x4065, lo: 0xb4, hi: 0xb4}, + {value: 0x10b1, lo: 0xb5, hi: 0xb7}, + {value: 0x4085, lo: 0xb8, hi: 0xb8}, + {value: 0x4085, lo: 0xb9, hi: 0xb9}, + {value: 0x10c9, lo: 0xba, hi: 0xbf}, + // Block 0x65, offset 0x32a + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0040, lo: 0x8d, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x66, offset 0x32e + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0x67, offset 0x333 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xbf}, + // Block 0x68, offset 0x338 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x0018, lo: 0xa6, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb1}, + {value: 0x0018, lo: 0xb2, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x69, offset 0x33e + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0x85}, + {value: 0x3b08, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x8a}, + {value: 0x3308, lo: 0x8b, hi: 0x8b}, + {value: 0x0008, lo: 0x8c, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa6}, + {value: 0x3008, lo: 0xa7, hi: 0xa7}, + {value: 0x0018, lo: 0xa8, hi: 0xab}, + {value: 0x3b08, lo: 0xac, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x6a, offset 0x34e + {value: 0x0000, lo: 0x05}, + {value: 0x0208, lo: 0x80, hi: 0xb1}, + {value: 0x0108, lo: 0xb2, hi: 0xb2}, + {value: 0x0008, lo: 0xb3, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0x6b, offset 0x354 + {value: 0x0000, lo: 0x03}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xbf}, + // Block 0x6c, offset 0x358 + {value: 0x0000, lo: 0x0e}, + {value: 0x3008, lo: 0x80, hi: 0x83}, + {value: 0x3b08, lo: 0x84, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xba}, + {value: 0x0008, lo: 0xbb, hi: 0xbb}, + {value: 0x0018, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0x6d, offset 0x367 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa5}, + {value: 0x3308, lo: 0xa6, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x6e, offset 0x36c + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x91}, + {value: 0x3008, lo: 0x92, hi: 0x92}, + {value: 0x3808, lo: 0x93, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x6f, offset 0x374 + {value: 0x0000, lo: 0x09}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb9}, + {value: 0x3008, lo: 0xba, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0x70, offset 0x37e + {value: 0x0000, lo: 0x0a}, + {value: 0x3808, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x71, offset 0x389 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xa8}, + {value: 0x3308, lo: 0xa9, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x72, offset 0x391 + {value: 0x0000, lo: 0x10}, + {value: 0x0008, lo: 0x80, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x8b}, + {value: 0x3308, lo: 0x8c, hi: 0x8c}, + {value: 0x3008, lo: 0x8d, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbc}, + {value: 0x3008, lo: 0xbd, hi: 0xbd}, + {value: 0x0008, lo: 0xbe, hi: 0xbf}, + // Block 0x73, offset 0x3a2 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb8}, + {value: 0x0008, lo: 0xb9, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbf}, + // Block 0x74, offset 0x3ab + {value: 0x0000, lo: 0x0f}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x9a}, + {value: 0x0008, lo: 0x9b, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xaa}, + {value: 0x3008, lo: 0xab, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb5}, + {value: 0x3b08, lo: 0xb6, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x75, offset 0x3bb + {value: 0x0000, lo: 0x0c}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x88}, + {value: 0x0008, lo: 0x89, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x90}, + {value: 0x0008, lo: 0x91, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x76, offset 0x3c8 + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x449d, lo: 0x9c, hi: 0x9c}, + {value: 0x44b5, lo: 0x9d, hi: 0x9d}, + {value: 0x0941, lo: 0x9e, hi: 0x9e}, + {value: 0xe06d, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa8}, + {value: 0x13f9, lo: 0xa9, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x44cd, lo: 0xb0, hi: 0xbf}, + // Block 0x77, offset 0x3d4 + {value: 0x0000, lo: 0x04}, + {value: 0x44ed, lo: 0x80, hi: 0x8f}, + {value: 0x450d, lo: 0x90, hi: 0x9f}, + {value: 0x452d, lo: 0xa0, hi: 0xaf}, + {value: 0x450d, lo: 0xb0, hi: 0xbf}, + // Block 0x78, offset 0x3d9 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0xa2}, + {value: 0x3008, lo: 0xa3, hi: 0xa4}, + {value: 0x3308, lo: 0xa5, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa7}, + {value: 0x3308, lo: 0xa8, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xaa}, + {value: 0x0018, lo: 0xab, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3b08, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x79, offset 0x3e6 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x7a, offset 0x3ea + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8a}, + {value: 0x0018, lo: 0x8b, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x7b, offset 0x3ef + {value: 0x0000, lo: 0x01}, + {value: 0x0040, lo: 0x80, hi: 0xbf}, + // Block 0x7c, offset 0x3f1 + {value: 0x0020, lo: 0x01}, + {value: 0x454d, lo: 0x80, hi: 0xbf}, + // Block 0x7d, offset 0x3f3 + {value: 0x0020, lo: 0x03}, + {value: 0x4d4d, lo: 0x80, hi: 0x94}, + {value: 0x4b0d, lo: 0x95, hi: 0x95}, + {value: 0x4fed, lo: 0x96, hi: 0xbf}, + // Block 0x7e, offset 0x3f7 + {value: 0x0020, lo: 0x01}, + {value: 0x552d, lo: 0x80, hi: 0xbf}, + // Block 0x7f, offset 0x3f9 + {value: 0x0020, lo: 0x03}, + {value: 0x5d2d, lo: 0x80, hi: 0x84}, + {value: 0x568d, lo: 0x85, hi: 0x85}, + {value: 0x5dcd, lo: 0x86, hi: 0xbf}, + // Block 0x80, offset 0x3fd + {value: 0x0020, lo: 0x08}, + {value: 0x6b8d, lo: 0x80, hi: 0x8f}, + {value: 0x6d4d, lo: 0x90, hi: 0x90}, + {value: 0x6d8d, lo: 0x91, hi: 0xab}, + {value: 0x1401, lo: 0xac, hi: 0xac}, + {value: 0x70ed, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x710d, lo: 0xb0, hi: 0xbf}, + // Block 0x81, offset 0x406 + {value: 0x0020, lo: 0x05}, + {value: 0x730d, lo: 0x80, hi: 0xad}, + {value: 0x656d, lo: 0xae, hi: 0xae}, + {value: 0x78cd, lo: 0xaf, hi: 0xb5}, + {value: 0x6f8d, lo: 0xb6, hi: 0xb6}, + {value: 0x79ad, lo: 0xb7, hi: 0xbf}, + // Block 0x82, offset 0x40c + {value: 0x0008, lo: 0x03}, + {value: 0x1751, lo: 0x80, hi: 0x82}, + {value: 0x1741, lo: 0x83, hi: 0x83}, + {value: 0x1769, lo: 0x84, hi: 0xbf}, + // Block 0x83, offset 0x410 + {value: 0x0008, lo: 0x0f}, + {value: 0x1d81, lo: 0x80, hi: 0x83}, + {value: 0x1d99, lo: 0x84, hi: 0x85}, + {value: 0x1da1, lo: 0x86, hi: 0x87}, + {value: 0x1da9, lo: 0x88, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x1de9, lo: 0x92, hi: 0x97}, + {value: 0x1e11, lo: 0x98, hi: 0x9c}, + {value: 0x1e31, lo: 0x9d, hi: 0xb3}, + {value: 0x1d71, lo: 0xb4, hi: 0xb4}, + {value: 0x1d81, lo: 0xb5, hi: 0xb5}, + {value: 0x1ee9, lo: 0xb6, hi: 0xbb}, + {value: 0x1f09, lo: 0xbc, hi: 0xbc}, + {value: 0x1ef9, lo: 0xbd, hi: 0xbd}, + {value: 0x1f19, lo: 0xbe, hi: 0xbf}, + // Block 0x84, offset 0x420 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8c}, + {value: 0x0008, lo: 0x8d, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbb}, + {value: 0x0008, lo: 0xbc, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0x85, offset 0x42a + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0x86, offset 0x42f + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x87, offset 0x432 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0x88, offset 0x438 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa0}, + {value: 0x0040, lo: 0xa1, hi: 0xbf}, + // Block 0x89, offset 0x43f + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x8a, offset 0x444 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x9c}, + {value: 0x0040, lo: 0x9d, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x8b, offset 0x448 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x9f}, + {value: 0x3308, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x8c, offset 0x44e + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xac}, + {value: 0x0008, lo: 0xad, hi: 0xbf}, + // Block 0x8d, offset 0x453 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x89}, + {value: 0x0018, lo: 0x8a, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbf}, + // Block 0x8e, offset 0x45c + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x8f, offset 0x461 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0xbf}, + // Block 0x90, offset 0x467 + {value: 0x0000, lo: 0x06}, + {value: 0xe145, lo: 0x80, hi: 0x87}, + {value: 0xe1c5, lo: 0x88, hi: 0x8f}, + {value: 0xe145, lo: 0x90, hi: 0x97}, + {value: 0x8b0d, lo: 0x98, hi: 0x9f}, + {value: 0x8b25, lo: 0xa0, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xbf}, + // Block 0x91, offset 0x46e + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x8b25, lo: 0xb0, hi: 0xb7}, + {value: 0x8b0d, lo: 0xb8, hi: 0xbf}, + // Block 0x92, offset 0x475 + {value: 0x0000, lo: 0x06}, + {value: 0xe145, lo: 0x80, hi: 0x87}, + {value: 0xe1c5, lo: 0x88, hi: 0x8f}, + {value: 0xe145, lo: 0x90, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0x93, offset 0x47c + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x94, offset 0x480 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0x95, offset 0x483 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xbf}, + // Block 0x96, offset 0x488 + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x87}, + {value: 0x0808, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0808, lo: 0x8a, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb6}, + {value: 0x0808, lo: 0xb7, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbb}, + {value: 0x0808, lo: 0xbc, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbe}, + {value: 0x0808, lo: 0xbf, hi: 0xbf}, + // Block 0x97, offset 0x494 + {value: 0x0000, lo: 0x05}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x96}, + {value: 0x0818, lo: 0x97, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb6}, + {value: 0x0818, lo: 0xb7, hi: 0xbf}, + // Block 0x98, offset 0x49a + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa6}, + {value: 0x0818, lo: 0xa7, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x99, offset 0x49f + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb3}, + {value: 0x0808, lo: 0xb4, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xba}, + {value: 0x0818, lo: 0xbb, hi: 0xbf}, + // Block 0x9a, offset 0x4a6 + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0818, lo: 0x96, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbe}, + {value: 0x0818, lo: 0xbf, hi: 0xbf}, + // Block 0x9b, offset 0x4ae + {value: 0x0000, lo: 0x04}, + {value: 0x0808, lo: 0x80, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbb}, + {value: 0x0818, lo: 0xbc, hi: 0xbd}, + {value: 0x0808, lo: 0xbe, hi: 0xbf}, + // Block 0x9c, offset 0x4b3 + {value: 0x0000, lo: 0x03}, + {value: 0x0818, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x91}, + {value: 0x0818, lo: 0x92, hi: 0xbf}, + // Block 0x9d, offset 0x4b7 + {value: 0x0000, lo: 0x0f}, + {value: 0x0808, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0x84}, + {value: 0x3308, lo: 0x85, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8b}, + {value: 0x3308, lo: 0x8c, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x94}, + {value: 0x0808, lo: 0x95, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0x98}, + {value: 0x0808, lo: 0x99, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0x9e, offset 0x4c7 + {value: 0x0000, lo: 0x06}, + {value: 0x0818, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x0818, lo: 0x90, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xbc}, + {value: 0x0818, lo: 0xbd, hi: 0xbf}, + // Block 0x9f, offset 0x4ce + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0x9c}, + {value: 0x0818, lo: 0x9d, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xa0, offset 0x4d2 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb8}, + {value: 0x0018, lo: 0xb9, hi: 0xbf}, + // Block 0xa1, offset 0x4d6 + {value: 0x0000, lo: 0x06}, + {value: 0x0808, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0x97}, + {value: 0x0818, lo: 0x98, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb7}, + {value: 0x0818, lo: 0xb8, hi: 0xbf}, + // Block 0xa2, offset 0x4dd + {value: 0x0000, lo: 0x01}, + {value: 0x0808, lo: 0x80, hi: 0xbf}, + // Block 0xa3, offset 0x4df + {value: 0x0000, lo: 0x02}, + {value: 0x0808, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0xbf}, + // Block 0xa4, offset 0x4e2 + {value: 0x0000, lo: 0x02}, + {value: 0x03dd, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbf}, + // Block 0xa5, offset 0x4e5 + {value: 0x0000, lo: 0x03}, + {value: 0x0808, lo: 0x80, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xb9}, + {value: 0x0818, lo: 0xba, hi: 0xbf}, + // Block 0xa6, offset 0x4e9 + {value: 0x0000, lo: 0x08}, + {value: 0x0908, lo: 0x80, hi: 0x80}, + {value: 0x0a08, lo: 0x81, hi: 0xa1}, + {value: 0x0c08, lo: 0xa2, hi: 0xa2}, + {value: 0x0a08, lo: 0xa3, hi: 0xa3}, + {value: 0x3308, lo: 0xa4, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0808, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xa7, offset 0x4f2 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0818, lo: 0xa0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xa8, offset 0x4f6 + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xac}, + {value: 0x0818, lo: 0xad, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0808, lo: 0xb0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xa9, offset 0x4fe + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbf}, + // Block 0xaa, offset 0x501 + {value: 0x0000, lo: 0x07}, + {value: 0x0808, lo: 0x80, hi: 0x9c}, + {value: 0x0818, lo: 0x9d, hi: 0xa6}, + {value: 0x0808, lo: 0xa7, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0a08, lo: 0xb0, hi: 0xb2}, + {value: 0x0c08, lo: 0xb3, hi: 0xb3}, + {value: 0x0a08, lo: 0xb4, hi: 0xbf}, + // Block 0xab, offset 0x509 + {value: 0x0000, lo: 0x0a}, + {value: 0x0a08, lo: 0x80, hi: 0x84}, + {value: 0x0808, lo: 0x85, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x90}, + {value: 0x0a18, lo: 0x91, hi: 0x93}, + {value: 0x0c18, lo: 0x94, hi: 0x94}, + {value: 0x0818, lo: 0x95, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xaf}, + {value: 0x0a08, lo: 0xb0, hi: 0xb3}, + {value: 0x0c08, lo: 0xb4, hi: 0xb5}, + {value: 0x0a08, lo: 0xb6, hi: 0xbf}, + // Block 0xac, offset 0x514 + {value: 0x0000, lo: 0x0e}, + {value: 0x0a08, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x85}, + {value: 0x0818, lo: 0x86, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0xaf}, + {value: 0x0a08, lo: 0xb0, hi: 0xb0}, + {value: 0x0808, lo: 0xb1, hi: 0xb1}, + {value: 0x0a08, lo: 0xb2, hi: 0xb3}, + {value: 0x0c08, lo: 0xb4, hi: 0xb6}, + {value: 0x0808, lo: 0xb7, hi: 0xb7}, + {value: 0x0a08, lo: 0xb8, hi: 0xb8}, + {value: 0x0c08, lo: 0xb9, hi: 0xba}, + {value: 0x0a08, lo: 0xbb, hi: 0xbc}, + {value: 0x0c08, lo: 0xbd, hi: 0xbd}, + {value: 0x0a08, lo: 0xbe, hi: 0xbf}, + // Block 0xad, offset 0x523 + {value: 0x0000, lo: 0x0b}, + {value: 0x0808, lo: 0x80, hi: 0x80}, + {value: 0x0a08, lo: 0x81, hi: 0x81}, + {value: 0x0c08, lo: 0x82, hi: 0x83}, + {value: 0x0a08, lo: 0x84, hi: 0x84}, + {value: 0x0818, lo: 0x85, hi: 0x88}, + {value: 0x0c18, lo: 0x89, hi: 0x89}, + {value: 0x0a18, lo: 0x8a, hi: 0x8a}, + {value: 0x0918, lo: 0x8b, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x9f}, + {value: 0x0808, lo: 0xa0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xae, offset 0x52f + {value: 0x0000, lo: 0x05}, + {value: 0x3008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbf}, + // Block 0xaf, offset 0x535 + {value: 0x0000, lo: 0x0c}, + {value: 0x3308, lo: 0x80, hi: 0x85}, + {value: 0x3b08, lo: 0x86, hi: 0x86}, + {value: 0x0018, lo: 0x87, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x91}, + {value: 0x0018, lo: 0x92, hi: 0xa5}, + {value: 0x0008, lo: 0xa6, hi: 0xaf}, + {value: 0x3b08, lo: 0xb0, hi: 0xb0}, + {value: 0x0008, lo: 0xb1, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xb0, offset 0x542 + {value: 0x0000, lo: 0x0b}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb6}, + {value: 0x3008, lo: 0xb7, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbd}, + {value: 0x0018, lo: 0xbe, hi: 0xbf}, + // Block 0xb1, offset 0x54e + {value: 0x0000, lo: 0x07}, + {value: 0x0018, lo: 0x80, hi: 0x81}, + {value: 0x3308, lo: 0x82, hi: 0x82}, + {value: 0x0040, lo: 0x83, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xb2, offset 0x556 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xb2}, + {value: 0x3b08, lo: 0xb3, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xbf}, + // Block 0xb3, offset 0x55f + {value: 0x0000, lo: 0x0a}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x3008, lo: 0x85, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x0018, lo: 0xb4, hi: 0xb5}, + {value: 0x0008, lo: 0xb6, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xb4, offset 0x56a + {value: 0x0000, lo: 0x06}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x0008, lo: 0x83, hi: 0xb2}, + {value: 0x3008, lo: 0xb3, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xbe}, + {value: 0x3008, lo: 0xbf, hi: 0xbf}, + // Block 0xb5, offset 0x571 + {value: 0x0000, lo: 0x0e}, + {value: 0x3808, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x88}, + {value: 0x3308, lo: 0x89, hi: 0x8c}, + {value: 0x0018, lo: 0x8d, hi: 0x8d}, + {value: 0x3008, lo: 0x8e, hi: 0x8e}, + {value: 0x3308, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x0018, lo: 0xa1, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xb6, offset 0x580 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x92}, + {value: 0x0008, lo: 0x93, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb1}, + {value: 0x3008, lo: 0xb2, hi: 0xb3}, + {value: 0x3308, lo: 0xb4, hi: 0xb4}, + {value: 0x3808, lo: 0xb5, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xb7}, + {value: 0x0018, lo: 0xb8, hi: 0xbd}, + {value: 0x3308, lo: 0xbe, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0xb7, offset 0x58d + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0xbf}, + // Block 0xb8, offset 0x591 + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0x8d}, + {value: 0x0040, lo: 0x8e, hi: 0x8e}, + {value: 0x0008, lo: 0x8f, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9e}, + {value: 0x0008, lo: 0x9f, hi: 0xa8}, + {value: 0x0018, lo: 0xa9, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xb9, offset 0x59e + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x3308, lo: 0x9f, hi: 0x9f}, + {value: 0x3008, lo: 0xa0, hi: 0xa2}, + {value: 0x3308, lo: 0xa3, hi: 0xa9}, + {value: 0x3b08, lo: 0xaa, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xba, offset 0x5a7 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbf}, + // Block 0xbb, offset 0x5ab + {value: 0x0000, lo: 0x0e}, + {value: 0x3008, lo: 0x80, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x84}, + {value: 0x3008, lo: 0x85, hi: 0x85}, + {value: 0x3308, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x8a}, + {value: 0x0018, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9c}, + {value: 0x0018, lo: 0x9d, hi: 0x9d}, + {value: 0x3308, lo: 0x9e, hi: 0x9e}, + {value: 0x0008, lo: 0x9f, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xbf}, + // Block 0xbc, offset 0x5ba + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb8}, + {value: 0x3008, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0xbd, offset 0x5c2 + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3008, lo: 0x81, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x85}, + {value: 0x0018, lo: 0x86, hi: 0x86}, + {value: 0x0008, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xbe, offset 0x5cd + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xbf, offset 0x5d6 + {value: 0x0000, lo: 0x05}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x9b}, + {value: 0x3308, lo: 0x9c, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0xbf}, + // Block 0xc0, offset 0x5dc + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xba}, + {value: 0x3008, lo: 0xbb, hi: 0xbc}, + {value: 0x3308, lo: 0xbd, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xc1, offset 0x5e4 + {value: 0x0000, lo: 0x08}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xbf}, + // Block 0xc2, offset 0x5ed + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x3308, lo: 0xab, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xac}, + {value: 0x3308, lo: 0xad, hi: 0xad}, + {value: 0x3008, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb5}, + {value: 0x3808, lo: 0xb6, hi: 0xb6}, + {value: 0x3308, lo: 0xb7, hi: 0xb7}, + {value: 0x0008, lo: 0xb8, hi: 0xb8}, + {value: 0x0018, lo: 0xb9, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0xc3, offset 0x5f9 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0xbf}, + // Block 0xc4, offset 0x5fc + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9f}, + {value: 0x3008, lo: 0xa0, hi: 0xa1}, + {value: 0x3308, lo: 0xa2, hi: 0xa5}, + {value: 0x3008, lo: 0xa6, hi: 0xa6}, + {value: 0x3308, lo: 0xa7, hi: 0xaa}, + {value: 0x3b08, lo: 0xab, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0018, lo: 0xba, hi: 0xbf}, + // Block 0xc5, offset 0x608 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0xbf}, + // Block 0xc6, offset 0x60b + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x3008, lo: 0xac, hi: 0xae}, + {value: 0x3308, lo: 0xaf, hi: 0xb7}, + {value: 0x3008, lo: 0xb8, hi: 0xb8}, + {value: 0x3b08, lo: 0xb9, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0xc7, offset 0x614 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x049d, lo: 0xa0, hi: 0xbf}, + // Block 0xc8, offset 0x617 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbe}, + {value: 0x0008, lo: 0xbf, hi: 0xbf}, + // Block 0xc9, offset 0x61c + {value: 0x0000, lo: 0x08}, + {value: 0x3008, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x81}, + {value: 0x3008, lo: 0x82, hi: 0x82}, + {value: 0x3308, lo: 0x83, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xca, offset 0x625 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xbf}, + // Block 0xcb, offset 0x62a + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x90}, + {value: 0x3008, lo: 0x91, hi: 0x93}, + {value: 0x3308, lo: 0x94, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0x99}, + {value: 0x3308, lo: 0x9a, hi: 0x9b}, + {value: 0x3008, lo: 0x9c, hi: 0x9f}, + {value: 0x3b08, lo: 0xa0, hi: 0xa0}, + {value: 0x0008, lo: 0xa1, hi: 0xa1}, + {value: 0x0018, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xa3}, + {value: 0x3008, lo: 0xa4, hi: 0xa4}, + {value: 0x0040, lo: 0xa5, hi: 0xbf}, + // Block 0xcc, offset 0x637 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x3308, lo: 0x81, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb3}, + {value: 0x3b08, lo: 0xb4, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb8}, + {value: 0x3008, lo: 0xb9, hi: 0xb9}, + {value: 0x0008, lo: 0xba, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0xcd, offset 0x642 + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x86}, + {value: 0x3b08, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x3308, lo: 0x91, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x98}, + {value: 0x3308, lo: 0x99, hi: 0x9b}, + {value: 0x0008, lo: 0x9c, hi: 0xbf}, + // Block 0xce, offset 0x64b + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x3308, lo: 0x8a, hi: 0x96}, + {value: 0x3008, lo: 0x97, hi: 0x97}, + {value: 0x3308, lo: 0x98, hi: 0x98}, + {value: 0x3b08, lo: 0x99, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0x9c}, + {value: 0x0008, lo: 0x9d, hi: 0x9d}, + {value: 0x0018, lo: 0x9e, hi: 0xa2}, + {value: 0x0040, lo: 0xa3, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xcf, offset 0x656 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xd0, offset 0x659 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0xbf}, + // Block 0xd1, offset 0x65c + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x89}, + {value: 0x0008, lo: 0x8a, hi: 0xae}, + {value: 0x3008, lo: 0xaf, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb7}, + {value: 0x3308, lo: 0xb8, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbe}, + {value: 0x3b08, lo: 0xbf, hi: 0xbf}, + // Block 0xd2, offset 0x666 + {value: 0x0000, lo: 0x08}, + {value: 0x0008, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0018, lo: 0x9a, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xbf}, + // Block 0xd3, offset 0x66f + {value: 0x0000, lo: 0x0b}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x91}, + {value: 0x3308, lo: 0x92, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xa8}, + {value: 0x3008, lo: 0xa9, hi: 0xa9}, + {value: 0x3308, lo: 0xaa, hi: 0xb0}, + {value: 0x3008, lo: 0xb1, hi: 0xb1}, + {value: 0x3308, lo: 0xb2, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xbf}, + // Block 0xd4, offset 0x67b + {value: 0x0000, lo: 0x0c}, + {value: 0x0008, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x87}, + {value: 0x0008, lo: 0x88, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8a}, + {value: 0x0008, lo: 0x8b, hi: 0xb0}, + {value: 0x3308, lo: 0xb1, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xb9}, + {value: 0x3308, lo: 0xba, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbb}, + {value: 0x3308, lo: 0xbc, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbe}, + {value: 0x3308, lo: 0xbf, hi: 0xbf}, + // Block 0xd5, offset 0x688 + {value: 0x0000, lo: 0x0c}, + {value: 0x3308, lo: 0x80, hi: 0x83}, + {value: 0x3b08, lo: 0x84, hi: 0x85}, + {value: 0x0008, lo: 0x86, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xa6}, + {value: 0x0008, lo: 0xa7, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xa9}, + {value: 0x0008, lo: 0xaa, hi: 0xbf}, + // Block 0xd6, offset 0x695 + {value: 0x0000, lo: 0x0d}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x3008, lo: 0x8a, hi: 0x8e}, + {value: 0x0040, lo: 0x8f, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x92}, + {value: 0x3008, lo: 0x93, hi: 0x94}, + {value: 0x3308, lo: 0x95, hi: 0x95}, + {value: 0x3008, lo: 0x96, hi: 0x96}, + {value: 0x3b08, lo: 0x97, hi: 0x97}, + {value: 0x0008, lo: 0x98, hi: 0x98}, + {value: 0x0040, lo: 0x99, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xbf}, + // Block 0xd7, offset 0x6a3 + {value: 0x0000, lo: 0x06}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xb2}, + {value: 0x3308, lo: 0xb3, hi: 0xb4}, + {value: 0x3008, lo: 0xb5, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0xd8, offset 0x6aa + {value: 0x0000, lo: 0x0a}, + {value: 0x3308, lo: 0x80, hi: 0x81}, + {value: 0x0008, lo: 0x82, hi: 0x82}, + {value: 0x3008, lo: 0x83, hi: 0x83}, + {value: 0x0008, lo: 0x84, hi: 0x90}, + {value: 0x0040, lo: 0x91, hi: 0x91}, + {value: 0x0008, lo: 0x92, hi: 0xb3}, + {value: 0x3008, lo: 0xb4, hi: 0xb5}, + {value: 0x3308, lo: 0xb6, hi: 0xba}, + {value: 0x0040, lo: 0xbb, hi: 0xbd}, + {value: 0x3008, lo: 0xbe, hi: 0xbf}, + // Block 0xd9, offset 0x6b5 + {value: 0x0000, lo: 0x06}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x3808, lo: 0x81, hi: 0x81}, + {value: 0x3b08, lo: 0x82, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xda, offset 0x6bc + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbf}, + // Block 0xdb, offset 0x6c0 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0xdc, offset 0x6c4 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0xbf}, + // Block 0xdd, offset 0x6c7 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0xde, offset 0x6cc + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0xbf}, + // Block 0xdf, offset 0x6cf + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xbf}, + // Block 0xe0, offset 0x6d2 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbf}, + // Block 0xe1, offset 0x6d6 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x0340, lo: 0xb0, hi: 0xbf}, + // Block 0xe2, offset 0x6d9 + {value: 0x0000, lo: 0x04}, + {value: 0x3308, lo: 0x80, hi: 0x80}, + {value: 0x0008, lo: 0x81, hi: 0x86}, + {value: 0x3308, lo: 0x87, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0xbf}, + // Block 0xe3, offset 0x6de + {value: 0x0000, lo: 0x06}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa9}, + {value: 0x0040, lo: 0xaa, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xe4, offset 0x6e5 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xe5, offset 0x6e8 + {value: 0x0000, lo: 0x07}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb4}, + {value: 0x0018, lo: 0xb5, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xe6, offset 0x6f0 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xbf}, + // Block 0xe7, offset 0x6f4 + {value: 0x0000, lo: 0x0a}, + {value: 0x0008, lo: 0x80, hi: 0x83}, + {value: 0x0018, lo: 0x84, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9a}, + {value: 0x0018, lo: 0x9b, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbf}, + // Block 0xe8, offset 0x6ff + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0xbf}, + // Block 0xe9, offset 0x702 + {value: 0x0000, lo: 0x02}, + {value: 0xe105, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0xea, offset 0x705 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x9a}, + {value: 0x0040, lo: 0x9b, hi: 0xbf}, + // Block 0xeb, offset 0x708 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8e}, + {value: 0x3308, lo: 0x8f, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x90}, + {value: 0x3008, lo: 0x91, hi: 0xbf}, + // Block 0xec, offset 0x70e + {value: 0x0000, lo: 0x05}, + {value: 0x3008, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8e}, + {value: 0x3308, lo: 0x8f, hi: 0x92}, + {value: 0x0008, lo: 0x93, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0xed, offset 0x714 + {value: 0x0000, lo: 0x08}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa1}, + {value: 0x0018, lo: 0xa2, hi: 0xa2}, + {value: 0x0008, lo: 0xa3, hi: 0xa3}, + {value: 0x3308, lo: 0xa4, hi: 0xa4}, + {value: 0x0040, lo: 0xa5, hi: 0xaf}, + {value: 0x3008, lo: 0xb0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0xee, offset 0x71d + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb7}, + {value: 0x0040, lo: 0xb8, hi: 0xbf}, + // Block 0xef, offset 0x720 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0xbf}, + // Block 0xf0, offset 0x723 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0xbf}, + // Block 0xf1, offset 0x726 + {value: 0x0000, lo: 0x07}, + {value: 0x0040, lo: 0x80, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xb4}, + {value: 0x0008, lo: 0xb5, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbc}, + {value: 0x0008, lo: 0xbd, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0xf2, offset 0x72e + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xa2}, + {value: 0x0040, lo: 0xa3, hi: 0xb1}, + {value: 0x0008, lo: 0xb2, hi: 0xb2}, + {value: 0x0040, lo: 0xb3, hi: 0xbf}, + // Block 0xf3, offset 0x733 + {value: 0x0000, lo: 0x08}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x92}, + {value: 0x0040, lo: 0x93, hi: 0x94}, + {value: 0x0008, lo: 0x95, hi: 0x95}, + {value: 0x0040, lo: 0x96, hi: 0xa3}, + {value: 0x0008, lo: 0xa4, hi: 0xa7}, + {value: 0x0040, lo: 0xa8, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0xf4, offset 0x73c + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xbb}, + {value: 0x0040, lo: 0xbc, hi: 0xbf}, + // Block 0xf5, offset 0x73f + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0xf6, offset 0x744 + {value: 0x0000, lo: 0x09}, + {value: 0x0008, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0x9c}, + {value: 0x3308, lo: 0x9d, hi: 0x9e}, + {value: 0x0018, lo: 0x9f, hi: 0x9f}, + {value: 0x03c0, lo: 0xa0, hi: 0xa3}, + {value: 0x0040, lo: 0xa4, hi: 0xbf}, + // Block 0xf7, offset 0x74e + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xbf}, + // Block 0xf8, offset 0x752 + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0x86}, + {value: 0x0040, lo: 0x87, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0xf9, offset 0x756 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x0040, lo: 0x84, hi: 0xbf}, + // Block 0xfa, offset 0x759 + {value: 0x0000, lo: 0x02}, + {value: 0x0018, lo: 0x80, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0xfb, offset 0x75c + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa8}, + {value: 0x0018, lo: 0xa9, hi: 0xbf}, + // Block 0xfc, offset 0x760 + {value: 0x0000, lo: 0x0e}, + {value: 0x0018, lo: 0x80, hi: 0x9d}, + {value: 0x2379, lo: 0x9e, hi: 0x9e}, + {value: 0x2381, lo: 0x9f, hi: 0x9f}, + {value: 0x2389, lo: 0xa0, hi: 0xa0}, + {value: 0x2391, lo: 0xa1, hi: 0xa1}, + {value: 0x2399, lo: 0xa2, hi: 0xa2}, + {value: 0x23a1, lo: 0xa3, hi: 0xa3}, + {value: 0x23a9, lo: 0xa4, hi: 0xa4}, + {value: 0x3018, lo: 0xa5, hi: 0xa6}, + {value: 0x3318, lo: 0xa7, hi: 0xa9}, + {value: 0x0018, lo: 0xaa, hi: 0xac}, + {value: 0x3018, lo: 0xad, hi: 0xb2}, + {value: 0x0340, lo: 0xb3, hi: 0xba}, + {value: 0x3318, lo: 0xbb, hi: 0xbf}, + // Block 0xfd, offset 0x76f + {value: 0x0000, lo: 0x0b}, + {value: 0x3318, lo: 0x80, hi: 0x82}, + {value: 0x0018, lo: 0x83, hi: 0x84}, + {value: 0x3318, lo: 0x85, hi: 0x8b}, + {value: 0x0018, lo: 0x8c, hi: 0xa9}, + {value: 0x3318, lo: 0xaa, hi: 0xad}, + {value: 0x0018, lo: 0xae, hi: 0xba}, + {value: 0x23b1, lo: 0xbb, hi: 0xbb}, + {value: 0x23b9, lo: 0xbc, hi: 0xbc}, + {value: 0x23c1, lo: 0xbd, hi: 0xbd}, + {value: 0x23c9, lo: 0xbe, hi: 0xbe}, + {value: 0x23d1, lo: 0xbf, hi: 0xbf}, + // Block 0xfe, offset 0x77b + {value: 0x0000, lo: 0x03}, + {value: 0x23d9, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xbf}, + // Block 0xff, offset 0x77f + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x81}, + {value: 0x3318, lo: 0x82, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0xbf}, + // Block 0x100, offset 0x784 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xb3}, + {value: 0x0040, lo: 0xb4, hi: 0xbf}, + // Block 0x101, offset 0x789 + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0x102, offset 0x78e + {value: 0x0000, lo: 0x03}, + {value: 0x3308, lo: 0x80, hi: 0xb6}, + {value: 0x0018, lo: 0xb7, hi: 0xba}, + {value: 0x3308, lo: 0xbb, hi: 0xbf}, + // Block 0x103, offset 0x792 + {value: 0x0000, lo: 0x04}, + {value: 0x3308, lo: 0x80, hi: 0xac}, + {value: 0x0018, lo: 0xad, hi: 0xb4}, + {value: 0x3308, lo: 0xb5, hi: 0xb5}, + {value: 0x0018, lo: 0xb6, hi: 0xbf}, + // Block 0x104, offset 0x797 + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x84}, + {value: 0x0018, lo: 0x85, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x9a}, + {value: 0x3308, lo: 0x9b, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xa0}, + {value: 0x3308, lo: 0xa1, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x105, offset 0x7a0 + {value: 0x0000, lo: 0x04}, + {value: 0x0008, lo: 0x80, hi: 0x9e}, + {value: 0x0040, lo: 0x9f, hi: 0xa4}, + {value: 0x0008, lo: 0xa5, hi: 0xaa}, + {value: 0x0040, lo: 0xab, hi: 0xbf}, + // Block 0x106, offset 0x7a5 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x8e}, + {value: 0x3308, lo: 0x8f, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0xbf}, + // Block 0x107, offset 0x7a9 + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x3308, lo: 0xb0, hi: 0xb6}, + {value: 0x0008, lo: 0xb7, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x108, offset 0x7af + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0x89}, + {value: 0x0040, lo: 0x8a, hi: 0x8d}, + {value: 0x0008, lo: 0x8e, hi: 0x8e}, + {value: 0x0018, lo: 0x8f, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0xbf}, + // Block 0x109, offset 0x7b5 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xad}, + {value: 0x3308, lo: 0xae, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xbf}, + // Block 0x10a, offset 0x7ba + {value: 0x0000, lo: 0x05}, + {value: 0x0008, lo: 0x80, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0x10b, offset 0x7c0 + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xab}, + {value: 0x3308, lo: 0xac, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x10c, offset 0x7c6 + {value: 0x0000, lo: 0x09}, + {value: 0x0040, lo: 0x80, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xa6}, + {value: 0x0040, lo: 0xa7, hi: 0xa7}, + {value: 0x0008, lo: 0xa8, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xac}, + {value: 0x0008, lo: 0xad, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbe}, + {value: 0x0040, lo: 0xbf, hi: 0xbf}, + // Block 0x10d, offset 0x7d0 + {value: 0x0000, lo: 0x05}, + {value: 0x0808, lo: 0x80, hi: 0x84}, + {value: 0x0040, lo: 0x85, hi: 0x86}, + {value: 0x0818, lo: 0x87, hi: 0x8f}, + {value: 0x3308, lo: 0x90, hi: 0x96}, + {value: 0x0040, lo: 0x97, hi: 0xbf}, + // Block 0x10e, offset 0x7d6 + {value: 0x0000, lo: 0x08}, + {value: 0x0a08, lo: 0x80, hi: 0x83}, + {value: 0x3308, lo: 0x84, hi: 0x8a}, + {value: 0x0b08, lo: 0x8b, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0808, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9d}, + {value: 0x0818, lo: 0x9e, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x10f, offset 0x7df + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xb0}, + {value: 0x0818, lo: 0xb1, hi: 0xbf}, + // Block 0x110, offset 0x7e2 + {value: 0x0000, lo: 0x02}, + {value: 0x0818, lo: 0x80, hi: 0xb4}, + {value: 0x0040, lo: 0xb5, hi: 0xbf}, + // Block 0x111, offset 0x7e5 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0818, lo: 0x81, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbf}, + // Block 0x112, offset 0x7e9 + {value: 0x0000, lo: 0x03}, + {value: 0x0040, lo: 0x80, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0x113, offset 0x7ed + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbf}, + // Block 0x114, offset 0x7f1 + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xae}, + {value: 0x0040, lo: 0xaf, hi: 0xb0}, + {value: 0x0018, lo: 0xb1, hi: 0xbf}, + // Block 0x115, offset 0x7f7 + {value: 0x0000, lo: 0x05}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0018, lo: 0x81, hi: 0x8f}, + {value: 0x0040, lo: 0x90, hi: 0x90}, + {value: 0x0018, lo: 0x91, hi: 0xb5}, + {value: 0x0040, lo: 0xb6, hi: 0xbf}, + // Block 0x116, offset 0x7fd + {value: 0x0000, lo: 0x04}, + {value: 0x0018, lo: 0x80, hi: 0x8f}, + {value: 0x2709, lo: 0x90, hi: 0x90}, + {value: 0x0018, lo: 0x91, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xbf}, + // Block 0x117, offset 0x802 + {value: 0x0000, lo: 0x02}, + {value: 0x0040, lo: 0x80, hi: 0xa5}, + {value: 0x0018, lo: 0xa6, hi: 0xbf}, + // Block 0x118, offset 0x805 + {value: 0x0000, lo: 0x0f}, + {value: 0x2889, lo: 0x80, hi: 0x80}, + {value: 0x2891, lo: 0x81, hi: 0x81}, + {value: 0x2899, lo: 0x82, hi: 0x82}, + {value: 0x28a1, lo: 0x83, hi: 0x83}, + {value: 0x28a9, lo: 0x84, hi: 0x84}, + {value: 0x28b1, lo: 0x85, hi: 0x85}, + {value: 0x28b9, lo: 0x86, hi: 0x86}, + {value: 0x28c1, lo: 0x87, hi: 0x87}, + {value: 0x28c9, lo: 0x88, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x28d1, lo: 0x90, hi: 0x90}, + {value: 0x28d9, lo: 0x91, hi: 0x91}, + {value: 0x0040, lo: 0x92, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa5}, + {value: 0x0040, lo: 0xa6, hi: 0xbf}, + // Block 0x119, offset 0x815 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x97}, + {value: 0x0040, lo: 0x98, hi: 0x9b}, + {value: 0x0018, lo: 0x9c, hi: 0xac}, + {value: 0x0040, lo: 0xad, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x11a, offset 0x81c + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0xb6}, + {value: 0x0040, lo: 0xb7, hi: 0xba}, + {value: 0x0018, lo: 0xbb, hi: 0xbf}, + // Block 0x11b, offset 0x820 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xab}, + {value: 0x0040, lo: 0xac, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb0}, + {value: 0x0040, lo: 0xb1, hi: 0xbf}, + // Block 0x11c, offset 0x827 + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x8b}, + {value: 0x0040, lo: 0x8c, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbf}, + // Block 0x11d, offset 0x82b + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0x99}, + {value: 0x0040, lo: 0x9a, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xbf}, + // Block 0x11e, offset 0x831 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x87}, + {value: 0x0040, lo: 0x88, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb1}, + {value: 0x0040, lo: 0xb2, hi: 0xbf}, + // Block 0x11f, offset 0x838 + {value: 0x0000, lo: 0x06}, + {value: 0x0018, lo: 0x80, hi: 0x93}, + {value: 0x0040, lo: 0x94, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xad}, + {value: 0x0040, lo: 0xae, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xbc}, + {value: 0x0040, lo: 0xbd, hi: 0xbf}, + // Block 0x120, offset 0x83f + {value: 0x0000, lo: 0x05}, + {value: 0x0018, lo: 0x80, hi: 0x88}, + {value: 0x0040, lo: 0x89, hi: 0x8f}, + {value: 0x0018, lo: 0x90, hi: 0xbd}, + {value: 0x0040, lo: 0xbe, hi: 0xbe}, + {value: 0x0018, lo: 0xbf, hi: 0xbf}, + // Block 0x121, offset 0x845 + {value: 0x0000, lo: 0x08}, + {value: 0x0018, lo: 0x80, hi: 0x85}, + {value: 0x0040, lo: 0x86, hi: 0x8d}, + {value: 0x0018, lo: 0x8e, hi: 0x9b}, + {value: 0x0040, lo: 0x9c, hi: 0x9f}, + {value: 0x0018, lo: 0xa0, hi: 0xa8}, + {value: 0x0040, lo: 0xa9, hi: 0xaf}, + {value: 0x0018, lo: 0xb0, hi: 0xb8}, + {value: 0x0040, lo: 0xb9, hi: 0xbf}, + // Block 0x122, offset 0x84e + {value: 0x0000, lo: 0x03}, + {value: 0x0018, lo: 0x80, hi: 0x92}, + {value: 0x0040, lo: 0x93, hi: 0x93}, + {value: 0x0018, lo: 0x94, hi: 0xbf}, + // Block 0x123, offset 0x852 + {value: 0x0000, lo: 0x0d}, + {value: 0x0018, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0xaf}, + {value: 0x06e1, lo: 0xb0, hi: 0xb0}, + {value: 0x0049, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb2, hi: 0xb2}, + {value: 0x0031, lo: 0xb3, hi: 0xb3}, + {value: 0x06e9, lo: 0xb4, hi: 0xb4}, + {value: 0x06f1, lo: 0xb5, hi: 0xb5}, + {value: 0x06f9, lo: 0xb6, hi: 0xb6}, + {value: 0x0701, lo: 0xb7, hi: 0xb7}, + {value: 0x0709, lo: 0xb8, hi: 0xb8}, + {value: 0x0711, lo: 0xb9, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x124, offset 0x860 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0x9f}, + {value: 0x0040, lo: 0xa0, hi: 0xbf}, + // Block 0x125, offset 0x863 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xb9}, + {value: 0x0040, lo: 0xba, hi: 0xbf}, + // Block 0x126, offset 0x866 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x9d}, + {value: 0x0040, lo: 0x9e, hi: 0x9f}, + {value: 0x0008, lo: 0xa0, hi: 0xbf}, + // Block 0x127, offset 0x86a + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0xa1}, + {value: 0x0040, lo: 0xa2, hi: 0xaf}, + {value: 0x0008, lo: 0xb0, hi: 0xbf}, + // Block 0x128, offset 0x86e + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xa0}, + {value: 0x0040, lo: 0xa1, hi: 0xbf}, + // Block 0x129, offset 0x871 + {value: 0x0000, lo: 0x03}, + {value: 0x0008, lo: 0x80, hi: 0x8a}, + {value: 0x0040, lo: 0x8b, hi: 0x8f}, + {value: 0x0008, lo: 0x90, hi: 0xbf}, + // Block 0x12a, offset 0x875 + {value: 0x0000, lo: 0x02}, + {value: 0x0008, lo: 0x80, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, + // Block 0x12b, offset 0x878 + {value: 0x0000, lo: 0x04}, + {value: 0x0040, lo: 0x80, hi: 0x80}, + {value: 0x0340, lo: 0x81, hi: 0x81}, + {value: 0x0040, lo: 0x82, hi: 0x9f}, + {value: 0x0340, lo: 0xa0, hi: 0xbf}, + // Block 0x12c, offset 0x87d + {value: 0x0000, lo: 0x01}, + {value: 0x0340, lo: 0x80, hi: 0xbf}, + // Block 0x12d, offset 0x87f + {value: 0x0000, lo: 0x01}, + {value: 0x33c0, lo: 0x80, hi: 0xbf}, + // Block 0x12e, offset 0x881 + {value: 0x0000, lo: 0x02}, + {value: 0x33c0, lo: 0x80, hi: 0xaf}, + {value: 0x0040, lo: 0xb0, hi: 0xbf}, +} + +// Total table size 46723 bytes (45KiB); checksum: 4CF3143A diff --git a/vendor/golang.org/x/net/idna/trie.go b/vendor/golang.org/x/net/idna/trie.go index c4ef847e7a37..421274172874 100644 --- a/vendor/golang.org/x/net/idna/trie.go +++ b/vendor/golang.org/x/net/idna/trie.go @@ -6,27 +6,6 @@ package idna -// appendMapping appends the mapping for the respective rune. isMapped must be -// true. A mapping is a categorization of a rune as defined in UTS #46. -func (c info) appendMapping(b []byte, s string) []byte { - index := int(c >> indexShift) - if c&xorBit == 0 { - s := mappings[index:] - return append(b, s[1:s[0]+1]...) - } - b = append(b, s...) - if c&inlineXOR == inlineXOR { - // TODO: support and handle two-byte inline masks - b[len(b)-1] ^= byte(index) - } else { - for p := len(b) - int(xorData[index]); p < len(b); p++ { - index++ - b[p] ^= xorData[index] - } - } - return b -} - // Sparse block handling code. type valueRange struct { diff --git a/vendor/golang.org/x/net/idna/trie12.0.0.go b/vendor/golang.org/x/net/idna/trie12.0.0.go new file mode 100644 index 000000000000..bb63f904b379 --- /dev/null +++ b/vendor/golang.org/x/net/idna/trie12.0.0.go @@ -0,0 +1,31 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.16 +// +build !go1.16 + +package idna + +// appendMapping appends the mapping for the respective rune. isMapped must be +// true. A mapping is a categorization of a rune as defined in UTS #46. +func (c info) appendMapping(b []byte, s string) []byte { + index := int(c >> indexShift) + if c&xorBit == 0 { + s := mappings[index:] + return append(b, s[1:s[0]+1]...) + } + b = append(b, s...) + if c&inlineXOR == inlineXOR { + // TODO: support and handle two-byte inline masks + b[len(b)-1] ^= byte(index) + } else { + for p := len(b) - int(xorData[index]); p < len(b); p++ { + index++ + b[p] ^= xorData[index] + } + } + return b +} diff --git a/vendor/golang.org/x/net/idna/trie13.0.0.go b/vendor/golang.org/x/net/idna/trie13.0.0.go new file mode 100644 index 000000000000..7d68a8dc13cb --- /dev/null +++ b/vendor/golang.org/x/net/idna/trie13.0.0.go @@ -0,0 +1,31 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.16 +// +build go1.16 + +package idna + +// appendMapping appends the mapping for the respective rune. isMapped must be +// true. A mapping is a categorization of a rune as defined in UTS #46. +func (c info) appendMapping(b []byte, s string) []byte { + index := int(c >> indexShift) + if c&xorBit == 0 { + p := index + return append(b, mappings[mappingIndex[p]:mappingIndex[p+1]]...) + } + b = append(b, s...) + if c&inlineXOR == inlineXOR { + // TODO: support and handle two-byte inline masks + b[len(b)-1] ^= byte(index) + } else { + for p := len(b) - int(xorData[index]); p < len(b); p++ { + index++ + b[p] ^= xorData[index] + } + } + return b +} diff --git a/vendor/golang.org/x/oauth2/README.md b/vendor/golang.org/x/oauth2/README.md index 1473e1296d09..781770c20464 100644 --- a/vendor/golang.org/x/oauth2/README.md +++ b/vendor/golang.org/x/oauth2/README.md @@ -19,7 +19,7 @@ See pkg.go.dev for further documentation and examples. * [pkg.go.dev/golang.org/x/oauth2](https://pkg.go.dev/golang.org/x/oauth2) * [pkg.go.dev/golang.org/x/oauth2/google](https://pkg.go.dev/golang.org/x/oauth2/google) -## Policy for new packages +## Policy for new endpoints We no longer accept new provider-specific packages in this repo if all they do is add a single endpoint variable. If you just want to add a @@ -29,8 +29,12 @@ package. ## Report Issues / Send Patches -This repository uses Gerrit for code changes. To learn how to submit changes to -this repository, see https://golang.org/doc/contribute.html. - The main issue tracker for the oauth2 repository is located at https://github.com/golang/oauth2/issues. + +This repository uses Gerrit for code changes. To learn how to submit changes to +this repository, see https://golang.org/doc/contribute.html. In particular: + +* Excluding trivial changes, all contributions should be connected to an existing issue. +* API changes must go through the [change proposal process](https://go.dev/s/proposal-process) before they can be accepted. +* The code owners are listed at [dev.golang.org/owners](https://dev.golang.org/owners#:~:text=x/oauth2). diff --git a/vendor/golang.org/x/oauth2/internal/client_appengine.go b/vendor/golang.org/x/oauth2/internal/client_appengine.go index e1755d1d9acf..d28140f789ec 100644 --- a/vendor/golang.org/x/oauth2/internal/client_appengine.go +++ b/vendor/golang.org/x/oauth2/internal/client_appengine.go @@ -3,7 +3,6 @@ // license that can be found in the LICENSE file. //go:build appengine -// +build appengine package internal diff --git a/vendor/golang.org/x/oauth2/internal/oauth2.go b/vendor/golang.org/x/oauth2/internal/oauth2.go index c0ab196cf461..14989beaf493 100644 --- a/vendor/golang.org/x/oauth2/internal/oauth2.go +++ b/vendor/golang.org/x/oauth2/internal/oauth2.go @@ -14,7 +14,7 @@ import ( // ParseKey converts the binary contents of a private key file // to an *rsa.PrivateKey. It detects whether the private key is in a -// PEM container or not. If so, it extracts the the private key +// PEM container or not. If so, it extracts the private key // from PEM container before conversion. It only supports PEM // containers with no passphrase. func ParseKey(key []byte) (*rsa.PrivateKey, error) { diff --git a/vendor/golang.org/x/oauth2/internal/token.go b/vendor/golang.org/x/oauth2/internal/token.go index 355c386961dd..e83ddeef0fc2 100644 --- a/vendor/golang.org/x/oauth2/internal/token.go +++ b/vendor/golang.org/x/oauth2/internal/token.go @@ -18,9 +18,8 @@ import ( "strconv" "strings" "sync" + "sync/atomic" "time" - - "golang.org/x/net/context/ctxhttp" ) // Token represents the credentials used to authorize @@ -57,12 +56,18 @@ type Token struct { } // tokenJSON is the struct representing the HTTP response from OAuth2 -// providers returning a token in JSON form. +// providers returning a token or error in JSON form. +// https://datatracker.ietf.org/doc/html/rfc6749#section-5.1 type tokenJSON struct { AccessToken string `json:"access_token"` TokenType string `json:"token_type"` RefreshToken string `json:"refresh_token"` ExpiresIn expirationTime `json:"expires_in"` // at least PayPal returns string, while most return number + // error fields + // https://datatracker.ietf.org/doc/html/rfc6749#section-5.2 + ErrorCode string `json:"error"` + ErrorDescription string `json:"error_description"` + ErrorURI string `json:"error_uri"` } func (e *tokenJSON) expiry() (t time.Time) { @@ -111,41 +116,60 @@ const ( AuthStyleInHeader AuthStyle = 2 ) -// authStyleCache is the set of tokenURLs we've successfully used via +// LazyAuthStyleCache is a backwards compatibility compromise to let Configs +// have a lazily-initialized AuthStyleCache. +// +// The two users of this, oauth2.Config and oauth2/clientcredentials.Config, +// both would ideally just embed an unexported AuthStyleCache but because both +// were historically allowed to be copied by value we can't retroactively add an +// uncopyable Mutex to them. +// +// We could use an atomic.Pointer, but that was added recently enough (in Go +// 1.18) that we'd break Go 1.17 users where the tests as of 2023-08-03 +// still pass. By using an atomic.Value, it supports both Go 1.17 and +// copying by value, even if that's not ideal. +type LazyAuthStyleCache struct { + v atomic.Value // of *AuthStyleCache +} + +func (lc *LazyAuthStyleCache) Get() *AuthStyleCache { + if c, ok := lc.v.Load().(*AuthStyleCache); ok { + return c + } + c := new(AuthStyleCache) + if !lc.v.CompareAndSwap(nil, c) { + c = lc.v.Load().(*AuthStyleCache) + } + return c +} + +// AuthStyleCache is the set of tokenURLs we've successfully used via // RetrieveToken and which style auth we ended up using. // It's called a cache, but it doesn't (yet?) shrink. It's expected that // the set of OAuth2 servers a program contacts over time is fixed and // small. -var authStyleCache struct { - sync.Mutex - m map[string]AuthStyle // keyed by tokenURL -} - -// ResetAuthCache resets the global authentication style cache used -// for AuthStyleUnknown token requests. -func ResetAuthCache() { - authStyleCache.Lock() - defer authStyleCache.Unlock() - authStyleCache.m = nil +type AuthStyleCache struct { + mu sync.Mutex + m map[string]AuthStyle // keyed by tokenURL } // lookupAuthStyle reports which auth style we last used with tokenURL // when calling RetrieveToken and whether we have ever done so. -func lookupAuthStyle(tokenURL string) (style AuthStyle, ok bool) { - authStyleCache.Lock() - defer authStyleCache.Unlock() - style, ok = authStyleCache.m[tokenURL] +func (c *AuthStyleCache) lookupAuthStyle(tokenURL string) (style AuthStyle, ok bool) { + c.mu.Lock() + defer c.mu.Unlock() + style, ok = c.m[tokenURL] return } // setAuthStyle adds an entry to authStyleCache, documented above. -func setAuthStyle(tokenURL string, v AuthStyle) { - authStyleCache.Lock() - defer authStyleCache.Unlock() - if authStyleCache.m == nil { - authStyleCache.m = make(map[string]AuthStyle) +func (c *AuthStyleCache) setAuthStyle(tokenURL string, v AuthStyle) { + c.mu.Lock() + defer c.mu.Unlock() + if c.m == nil { + c.m = make(map[string]AuthStyle) } - authStyleCache.m[tokenURL] = v + c.m[tokenURL] = v } // newTokenRequest returns a new *http.Request to retrieve a new token @@ -185,10 +209,10 @@ func cloneURLValues(v url.Values) url.Values { return v2 } -func RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string, v url.Values, authStyle AuthStyle) (*Token, error) { +func RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string, v url.Values, authStyle AuthStyle, styleCache *AuthStyleCache) (*Token, error) { needsAuthStyleProbe := authStyle == 0 if needsAuthStyleProbe { - if style, ok := lookupAuthStyle(tokenURL); ok { + if style, ok := styleCache.lookupAuthStyle(tokenURL); ok { authStyle = style needsAuthStyleProbe = false } else { @@ -218,7 +242,7 @@ func RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string, token, err = doTokenRoundTrip(ctx, req) } if needsAuthStyleProbe && err == nil { - setAuthStyle(tokenURL, authStyle) + styleCache.setAuthStyle(tokenURL, authStyle) } // Don't overwrite `RefreshToken` with an empty value // if this was a token refreshing request. @@ -229,7 +253,7 @@ func RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string, } func doTokenRoundTrip(ctx context.Context, req *http.Request) (*Token, error) { - r, err := ctxhttp.Do(ctx, ContextClient(ctx), req) + r, err := ContextClient(ctx).Do(req.WithContext(ctx)) if err != nil { return nil, err } @@ -238,21 +262,29 @@ func doTokenRoundTrip(ctx context.Context, req *http.Request) (*Token, error) { if err != nil { return nil, fmt.Errorf("oauth2: cannot fetch token: %v", err) } - if code := r.StatusCode; code < 200 || code > 299 { - return nil, &RetrieveError{ - Response: r, - Body: body, - } + + failureStatus := r.StatusCode < 200 || r.StatusCode > 299 + retrieveError := &RetrieveError{ + Response: r, + Body: body, + // attempt to populate error detail below } var token *Token content, _, _ := mime.ParseMediaType(r.Header.Get("Content-Type")) switch content { case "application/x-www-form-urlencoded", "text/plain": + // some endpoints return a query string vals, err := url.ParseQuery(string(body)) if err != nil { - return nil, err + if failureStatus { + return nil, retrieveError + } + return nil, fmt.Errorf("oauth2: cannot parse response: %v", err) } + retrieveError.ErrorCode = vals.Get("error") + retrieveError.ErrorDescription = vals.Get("error_description") + retrieveError.ErrorURI = vals.Get("error_uri") token = &Token{ AccessToken: vals.Get("access_token"), TokenType: vals.Get("token_type"), @@ -267,8 +299,14 @@ func doTokenRoundTrip(ctx context.Context, req *http.Request) (*Token, error) { default: var tj tokenJSON if err = json.Unmarshal(body, &tj); err != nil { - return nil, err + if failureStatus { + return nil, retrieveError + } + return nil, fmt.Errorf("oauth2: cannot parse json: %v", err) } + retrieveError.ErrorCode = tj.ErrorCode + retrieveError.ErrorDescription = tj.ErrorDescription + retrieveError.ErrorURI = tj.ErrorURI token = &Token{ AccessToken: tj.AccessToken, TokenType: tj.TokenType, @@ -278,17 +316,37 @@ func doTokenRoundTrip(ctx context.Context, req *http.Request) (*Token, error) { } json.Unmarshal(body, &token.Raw) // no error checks for optional fields } + // according to spec, servers should respond status 400 in error case + // https://www.rfc-editor.org/rfc/rfc6749#section-5.2 + // but some unorthodox servers respond 200 in error case + if failureStatus || retrieveError.ErrorCode != "" { + return nil, retrieveError + } if token.AccessToken == "" { return nil, errors.New("oauth2: server response missing access_token") } return token, nil } +// mirrors oauth2.RetrieveError type RetrieveError struct { - Response *http.Response - Body []byte + Response *http.Response + Body []byte + ErrorCode string + ErrorDescription string + ErrorURI string } func (r *RetrieveError) Error() string { + if r.ErrorCode != "" { + s := fmt.Sprintf("oauth2: %q", r.ErrorCode) + if r.ErrorDescription != "" { + s += fmt.Sprintf(" %q", r.ErrorDescription) + } + if r.ErrorURI != "" { + s += fmt.Sprintf(" %q", r.ErrorURI) + } + return s + } return fmt.Sprintf("oauth2: cannot fetch token: %v\nResponse: %s", r.Response.Status, r.Body) } diff --git a/vendor/golang.org/x/oauth2/oauth2.go b/vendor/golang.org/x/oauth2/oauth2.go index 291df5c833f9..cc7c98c25ddf 100644 --- a/vendor/golang.org/x/oauth2/oauth2.go +++ b/vendor/golang.org/x/oauth2/oauth2.go @@ -16,6 +16,7 @@ import ( "net/url" "strings" "sync" + "time" "golang.org/x/oauth2/internal" ) @@ -57,6 +58,10 @@ type Config struct { // Scope specifies optional requested permissions. Scopes []string + + // authStyleCache caches which auth style to use when Endpoint.AuthStyle is + // the zero value (AuthStyleAutoDetect). + authStyleCache internal.LazyAuthStyleCache } // A TokenSource is anything that can return a token. @@ -140,7 +145,7 @@ func SetAuthURLParam(key, value string) AuthCodeOption { // // State is a token to protect the user from CSRF attacks. You must // always provide a non-empty string and validate that it matches the -// the state query parameter on your redirect callback. +// state query parameter on your redirect callback. // See http://tools.ietf.org/html/rfc6749#section-10.12 for more info. // // Opts may include AccessTypeOnline or AccessTypeOffline, as well @@ -290,6 +295,8 @@ type reuseTokenSource struct { mu sync.Mutex // guards t t *Token + + expiryDelta time.Duration } // Token returns the current token if it's still valid, else will @@ -305,6 +312,7 @@ func (s *reuseTokenSource) Token() (*Token, error) { if err != nil { return nil, err } + t.expiryDelta = s.expiryDelta s.t = t return t, nil } @@ -379,3 +387,30 @@ func ReuseTokenSource(t *Token, src TokenSource) TokenSource { new: src, } } + +// ReuseTokenSource returns a TokenSource that acts in the same manner as the +// TokenSource returned by ReuseTokenSource, except the expiry buffer is +// configurable. The expiration time of a token is calculated as +// t.Expiry.Add(-earlyExpiry). +func ReuseTokenSourceWithExpiry(t *Token, src TokenSource, earlyExpiry time.Duration) TokenSource { + // Don't wrap a reuseTokenSource in itself. That would work, + // but cause an unnecessary number of mutex operations. + // Just build the equivalent one. + if rt, ok := src.(*reuseTokenSource); ok { + if t == nil { + // Just use it directly, but set the expiryDelta to earlyExpiry, + // so the behavior matches what the user expects. + rt.expiryDelta = earlyExpiry + return rt + } + src = rt.new + } + if t != nil { + t.expiryDelta = earlyExpiry + } + return &reuseTokenSource{ + t: t, + new: src, + expiryDelta: earlyExpiry, + } +} diff --git a/vendor/golang.org/x/oauth2/token.go b/vendor/golang.org/x/oauth2/token.go index 822720341af1..5bbb33217488 100644 --- a/vendor/golang.org/x/oauth2/token.go +++ b/vendor/golang.org/x/oauth2/token.go @@ -16,10 +16,10 @@ import ( "golang.org/x/oauth2/internal" ) -// expiryDelta determines how earlier a token should be considered +// defaultExpiryDelta determines how earlier a token should be considered // expired than its actual expiration time. It is used to avoid late // expirations due to client-server time mismatches. -const expiryDelta = 10 * time.Second +const defaultExpiryDelta = 10 * time.Second // Token represents the credentials used to authorize // the requests to access protected resources on the OAuth 2.0 @@ -52,6 +52,11 @@ type Token struct { // raw optionally contains extra metadata from the server // when updating a token. raw interface{} + + // expiryDelta is used to calculate when a token is considered + // expired, by subtracting from Expiry. If zero, defaultExpiryDelta + // is used. + expiryDelta time.Duration } // Type returns t.TokenType if non-empty, else "Bearer". @@ -127,6 +132,11 @@ func (t *Token) expired() bool { if t.Expiry.IsZero() { return false } + + expiryDelta := defaultExpiryDelta + if t.expiryDelta != 0 { + expiryDelta = t.expiryDelta + } return t.Expiry.Round(0).Add(-expiryDelta).Before(timeNow()) } @@ -154,7 +164,7 @@ func tokenFromInternal(t *internal.Token) *Token { // This token is then mapped from *internal.Token into an *oauth2.Token which is returned along // with an error.. func retrieveToken(ctx context.Context, c *Config, v url.Values) (*Token, error) { - tk, err := internal.RetrieveToken(ctx, c.ClientID, c.ClientSecret, c.Endpoint.TokenURL, v, internal.AuthStyle(c.Endpoint.AuthStyle)) + tk, err := internal.RetrieveToken(ctx, c.ClientID, c.ClientSecret, c.Endpoint.TokenURL, v, internal.AuthStyle(c.Endpoint.AuthStyle), c.authStyleCache.Get()) if err != nil { if rErr, ok := err.(*internal.RetrieveError); ok { return nil, (*RetrieveError)(rErr) @@ -165,14 +175,31 @@ func retrieveToken(ctx context.Context, c *Config, v url.Values) (*Token, error) } // RetrieveError is the error returned when the token endpoint returns a -// non-2XX HTTP status code. +// non-2XX HTTP status code or populates RFC 6749's 'error' parameter. +// https://datatracker.ietf.org/doc/html/rfc6749#section-5.2 type RetrieveError struct { Response *http.Response // Body is the body that was consumed by reading Response.Body. // It may be truncated. Body []byte + // ErrorCode is RFC 6749's 'error' parameter. + ErrorCode string + // ErrorDescription is RFC 6749's 'error_description' parameter. + ErrorDescription string + // ErrorURI is RFC 6749's 'error_uri' parameter. + ErrorURI string } func (r *RetrieveError) Error() string { + if r.ErrorCode != "" { + s := fmt.Sprintf("oauth2: %q", r.ErrorCode) + if r.ErrorDescription != "" { + s += fmt.Sprintf(" %q", r.ErrorDescription) + } + if r.ErrorURI != "" { + s += fmt.Sprintf(" %q", r.ErrorURI) + } + return s + } return fmt.Sprintf("oauth2: cannot fetch token: %v\nResponse: %s", r.Response.Status, r.Body) } diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go index 83f112c4c808..4756ad5f7951 100644 --- a/vendor/golang.org/x/sys/cpu/cpu.go +++ b/vendor/golang.org/x/sys/cpu/cpu.go @@ -38,7 +38,7 @@ var X86 struct { HasAVX512F bool // Advanced vector extension 512 Foundation Instructions HasAVX512CD bool // Advanced vector extension 512 Conflict Detection Instructions HasAVX512ER bool // Advanced vector extension 512 Exponential and Reciprocal Instructions - HasAVX512PF bool // Advanced vector extension 512 Prefetch Instructions Instructions + HasAVX512PF bool // Advanced vector extension 512 Prefetch Instructions HasAVX512VL bool // Advanced vector extension 512 Vector Length Extensions HasAVX512BW bool // Advanced vector extension 512 Byte and Word Instructions HasAVX512DQ bool // Advanced vector extension 512 Doubleword and Quadword Instructions @@ -54,6 +54,9 @@ var X86 struct { HasAVX512VBMI2 bool // Advanced vector extension 512 Vector Byte Manipulation Instructions 2 HasAVX512BITALG bool // Advanced vector extension 512 Bit Algorithms HasAVX512BF16 bool // Advanced vector extension 512 BFloat16 Instructions + HasAMXTile bool // Advanced Matrix Extension Tile instructions + HasAMXInt8 bool // Advanced Matrix Extension Int8 instructions + HasAMXBF16 bool // Advanced Matrix Extension BFloat16 instructions HasBMI1 bool // Bit manipulation instruction set 1 HasBMI2 bool // Bit manipulation instruction set 2 HasCX16 bool // Compare and exchange 16 Bytes diff --git a/vendor/golang.org/x/sys/cpu/cpu_x86.go b/vendor/golang.org/x/sys/cpu/cpu_x86.go index f5aacfc825d5..2dcde8285d59 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_x86.go +++ b/vendor/golang.org/x/sys/cpu/cpu_x86.go @@ -37,6 +37,9 @@ func initOptions() { {Name: "avx512vbmi2", Feature: &X86.HasAVX512VBMI2}, {Name: "avx512bitalg", Feature: &X86.HasAVX512BITALG}, {Name: "avx512bf16", Feature: &X86.HasAVX512BF16}, + {Name: "amxtile", Feature: &X86.HasAMXTile}, + {Name: "amxint8", Feature: &X86.HasAMXInt8}, + {Name: "amxbf16", Feature: &X86.HasAMXBF16}, {Name: "bmi1", Feature: &X86.HasBMI1}, {Name: "bmi2", Feature: &X86.HasBMI2}, {Name: "cx16", Feature: &X86.HasCX16}, @@ -138,6 +141,10 @@ func archInit() { eax71, _, _, _ := cpuid(7, 1) X86.HasAVX512BF16 = isSet(5, eax71) } + + X86.HasAMXTile = isSet(24, edx7) + X86.HasAMXInt8 = isSet(25, edx7) + X86.HasAMXBF16 = isSet(22, edx7) } func isSet(bitpos uint, value uint32) bool { diff --git a/vendor/golang.org/x/sys/cpu/endian_little.go b/vendor/golang.org/x/sys/cpu/endian_little.go index fe545966b615..55db853efbec 100644 --- a/vendor/golang.org/x/sys/cpu/endian_little.go +++ b/vendor/golang.org/x/sys/cpu/endian_little.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh -// +build 386 amd64 amd64p32 alpha arm arm64 loong64 mipsle mips64le mips64p32le nios2 ppc64le riscv riscv64 sh +//go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh || wasm +// +build 386 amd64 amd64p32 alpha arm arm64 loong64 mipsle mips64le mips64p32le nios2 ppc64le riscv riscv64 sh wasm package cpu diff --git a/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go b/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go new file mode 100644 index 000000000000..e07899b909bb --- /dev/null +++ b/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go @@ -0,0 +1,30 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package unsafeheader contains header declarations for the Go runtime's +// slice and string implementations. +// +// This package allows x/sys to use types equivalent to +// reflect.SliceHeader and reflect.StringHeader without introducing +// a dependency on the (relatively heavy) "reflect" package. +package unsafeheader + +import ( + "unsafe" +) + +// Slice is the runtime representation of a slice. +// It cannot be used safely or portably and its representation may change in a later release. +type Slice struct { + Data unsafe.Pointer + Len int + Cap int +} + +// String is the runtime representation of a string. +// It cannot be used safely or portably and its representation may change in a later release. +type String struct { + Data unsafe.Pointer + Len int +} diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh index 8e3947c3686c..e6f31d374df5 100644 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -50,7 +50,7 @@ if [[ "$GOOS" = "linux" ]]; then # Use the Docker-based build system # Files generated through docker (use $cmd so you can Ctl-C the build or run) $cmd docker build --tag generate:$GOOS $GOOS - $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")/.." && /bin/pwd):/build generate:$GOOS + $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")/.." && pwd):/build generate:$GOOS exit fi diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index be0423e6856b..47fa6a7ebd45 100644 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -519,7 +519,7 @@ ccflags="$@" $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || $2 ~ /^LO_(KEY|NAME)_SIZE$/ || $2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ || - $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT|UDP)_/ || + $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MREMAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT|UDP)_/ || $2 ~ /^NFC_(GENL|PROTO|COMM|RF|SE|DIRECTION|LLCP|SOCKPROTO)_/ || $2 ~ /^NFC_.*_(MAX)?SIZE$/ || $2 ~ /^RAW_PAYLOAD_/ || @@ -583,6 +583,7 @@ ccflags="$@" $2 ~ /^PERF_/ || $2 ~ /^SECCOMP_MODE_/ || $2 ~ /^SEEK_/ || + $2 ~ /^SCHED_/ || $2 ~ /^SPLICE_/ || $2 ~ /^SYNC_FILE_RANGE_/ || $2 !~ /IOC_MAGIC/ && @@ -624,7 +625,7 @@ ccflags="$@" $2 ~ /^MEM/ || $2 ~ /^WG/ || $2 ~ /^FIB_RULE_/ || - $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf("\t%s = C.%s\n", $2, $2)} + $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE|IOMIN$|IOOPT$|ALIGNOFF$|DISCARD|ROTATIONAL$|ZEROOUT$|GETDISKSEQ$)/ {printf("\t%s = C.%s\n", $2, $2)} $2 ~ /^__WCOREFLAG$/ {next} $2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)} @@ -741,7 +742,8 @@ main(void) e = errors[i].num; if(i > 0 && errors[i-1].num == e) continue; - strcpy(buf, strerror(e)); + strncpy(buf, strerror(e), sizeof(buf) - 1); + buf[sizeof(buf) - 1] = '\0'; // lowercase first letter: Bad -> bad, but STREAM -> STREAM. if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) buf[0] += a - A; @@ -760,7 +762,8 @@ main(void) e = signals[i].num; if(i > 0 && signals[i-1].num == e) continue; - strcpy(buf, strsignal(e)); + strncpy(buf, strsignal(e), sizeof(buf) - 1); + buf[sizeof(buf) - 1] = '\0'; // lowercase first letter: Bad -> bad, but STREAM -> STREAM. if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) buf[0] += a - A; diff --git a/vendor/golang.org/x/sys/unix/mmap_nomremap.go b/vendor/golang.org/x/sys/unix/mmap_nomremap.go new file mode 100644 index 000000000000..ca0513632ee3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/mmap_nomremap.go @@ -0,0 +1,14 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || openbsd || solaris +// +build aix darwin dragonfly freebsd openbsd solaris + +package unix + +var mapper = &mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, +} diff --git a/vendor/golang.org/x/sys/unix/mremap.go b/vendor/golang.org/x/sys/unix/mremap.go new file mode 100644 index 000000000000..fa93d0aa9045 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/mremap.go @@ -0,0 +1,53 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux || netbsd +// +build linux netbsd + +package unix + +import "unsafe" + +type mremapMmapper struct { + mmapper + mremap func(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) +} + +var mapper = &mremapMmapper{ + mmapper: mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, + }, + mremap: mremap, +} + +func (m *mremapMmapper) Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) { + if newLength <= 0 || len(oldData) == 0 || len(oldData) != cap(oldData) || flags&mremapFixed != 0 { + return nil, EINVAL + } + + pOld := &oldData[cap(oldData)-1] + m.Lock() + defer m.Unlock() + bOld := m.active[pOld] + if bOld == nil || &bOld[0] != &oldData[0] { + return nil, EINVAL + } + newAddr, errno := m.mremap(uintptr(unsafe.Pointer(&bOld[0])), uintptr(len(bOld)), uintptr(newLength), flags, 0) + if errno != nil { + return nil, errno + } + bNew := unsafe.Slice((*byte)(unsafe.Pointer(newAddr)), newLength) + pNew := &bNew[cap(bNew)-1] + if flags&mremapDontunmap == 0 { + delete(m.active, pOld) + } + m.active[pNew] = bNew + return bNew, nil +} + +func Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) { + return mapper.Mremap(oldData, newLength, flags) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go index c406ae00f417..9a6e5acacbf1 100644 --- a/vendor/golang.org/x/sys/unix/syscall_aix.go +++ b/vendor/golang.org/x/sys/unix/syscall_aix.go @@ -535,21 +535,6 @@ func Fsync(fd int) error { //sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg //sys munmap(addr uintptr, length uintptr) (err error) - -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} - -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - //sys Madvise(b []byte, advice int) (err error) //sys Mprotect(b []byte, prot int) (err error) //sys Mlock(b []byte) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go index 7705c3270b5e..4217de518bc8 100644 --- a/vendor/golang.org/x/sys/unix/syscall_bsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go @@ -601,20 +601,6 @@ func Poll(fds []PollFd, timeout int) (n int, err error) { // Gethostuuid(uuid *byte, timeout *Timespec) (err error) // Ptrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error) -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} - -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - //sys Madvise(b []byte, behav int) (err error) //sys Mlock(b []byte) (err error) //sys Mlockall(flags int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go index 206921504cb6..135cc3cd75ba 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go @@ -510,30 +510,36 @@ func SysctlKinfoProcSlice(name string, args ...int) ([]KinfoProc, error) { return nil, err } - // Find size. - n := uintptr(0) - if err := sysctl(mib, nil, &n, nil, 0); err != nil { - return nil, err - } - if n == 0 { - return nil, nil - } - if n%SizeofKinfoProc != 0 { - return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) - } + for { + // Find size. + n := uintptr(0) + if err := sysctl(mib, nil, &n, nil, 0); err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + if n%SizeofKinfoProc != 0 { + return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) + } - // Read into buffer of that size. - buf := make([]KinfoProc, n/SizeofKinfoProc) - if err := sysctl(mib, (*byte)(unsafe.Pointer(&buf[0])), &n, nil, 0); err != nil { - return nil, err - } - if n%SizeofKinfoProc != 0 { - return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) - } + // Read into buffer of that size. + buf := make([]KinfoProc, n/SizeofKinfoProc) + if err := sysctl(mib, (*byte)(unsafe.Pointer(&buf[0])), &n, nil, 0); err != nil { + if err == ENOMEM { + // Process table grew. Try again. + continue + } + return nil, err + } + if n%SizeofKinfoProc != 0 { + return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) + } - // The actual call may return less than the original reported required - // size so ensure we deal with that. - return buf[:n/SizeofKinfoProc], nil + // The actual call may return less than the original reported required + // size so ensure we deal with that. + return buf[:n/SizeofKinfoProc], nil + } } //sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index fbaeb5fff148..0ba030197f2a 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -1699,12 +1699,23 @@ func PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) { return ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data) } +// elfNT_PRSTATUS is a copy of the debug/elf.NT_PRSTATUS constant so +// x/sys/unix doesn't need to depend on debug/elf and thus +// compress/zlib, debug/dwarf, and other packages. +const elfNT_PRSTATUS = 1 + func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) { - return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) + var iov Iovec + iov.Base = (*byte)(unsafe.Pointer(regsout)) + iov.SetLen(int(unsafe.Sizeof(*regsout))) + return ptracePtr(PTRACE_GETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov)) } func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) { - return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) + var iov Iovec + iov.Base = (*byte)(unsafe.Pointer(regs)) + iov.SetLen(int(unsafe.Sizeof(*regs))) + return ptracePtr(PTRACE_SETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov)) } func PtraceSetOptions(pid int, options int) (err error) { @@ -1874,7 +1885,7 @@ func Getpgrp() (pid int) { //sys PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) //sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT //sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) -//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) = SYS_PSELECT6 +//sys pselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (n int, err error) //sys read(fd int, p []byte) (n int, err error) //sys Removexattr(path string, attr string) (err error) //sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) @@ -2113,21 +2124,7 @@ func writevRacedetect(iovecs []Iovec, n int) { // mmap varies by architecture; see syscall_linux_*.go. //sys munmap(addr uintptr, length uintptr) (err error) - -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} - -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - +//sys mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) //sys Madvise(b []byte, advice int) (err error) //sys Mprotect(b []byte, prot int) (err error) //sys Mlock(b []byte) (err error) @@ -2136,6 +2133,12 @@ func Munmap(b []byte) (err error) { //sys Munlock(b []byte) (err error) //sys Munlockall() (err error) +const ( + mremapFixed = MREMAP_FIXED + mremapDontunmap = MREMAP_DONTUNMAP + mremapMaymove = MREMAP_MAYMOVE +) + // Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd, // using the specified flags. func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { @@ -2420,6 +2423,77 @@ func PthreadSigmask(how int, set, oldset *Sigset_t) error { return rtSigprocmask(how, set, oldset, _C__NSIG/8) } +//sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) +//sysnb getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) + +func Getresuid() (ruid, euid, suid int) { + var r, e, s _C_int + getresuid(&r, &e, &s) + return int(r), int(e), int(s) +} + +func Getresgid() (rgid, egid, sgid int) { + var r, e, s _C_int + getresgid(&r, &e, &s) + return int(r), int(e), int(s) +} + +// Pselect is a wrapper around the Linux pselect6 system call. +// This version does not modify the timeout argument. +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + // Per https://man7.org/linux/man-pages/man2/select.2.html#NOTES, + // The Linux pselect6() system call modifies its timeout argument. + // [Not modifying the argument] is the behavior required by POSIX.1-2001. + var mutableTimeout *Timespec + if timeout != nil { + mutableTimeout = new(Timespec) + *mutableTimeout = *timeout + } + + // The final argument of the pselect6() system call is not a + // sigset_t * pointer, but is instead a structure + var kernelMask *sigset_argpack + if sigmask != nil { + wordBits := 32 << (^uintptr(0) >> 63) // see math.intSize + + // A sigset stores one bit per signal, + // offset by 1 (because signal 0 does not exist). + // So the number of words needed is ⌈__C_NSIG - 1 / wordBits⌉. + sigsetWords := (_C__NSIG - 1 + wordBits - 1) / (wordBits) + + sigsetBytes := uintptr(sigsetWords * (wordBits / 8)) + kernelMask = &sigset_argpack{ + ss: sigmask, + ssLen: sigsetBytes, + } + } + + return pselect6(nfd, r, w, e, mutableTimeout, kernelMask) +} + +//sys schedSetattr(pid int, attr *SchedAttr, flags uint) (err error) +//sys schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) + +// SchedSetAttr is a wrapper for sched_setattr(2) syscall. +// https://man7.org/linux/man-pages/man2/sched_setattr.2.html +func SchedSetAttr(pid int, attr *SchedAttr, flags uint) error { + if attr == nil { + return EINVAL + } + attr.Size = SizeofSchedAttr + return schedSetattr(pid, attr, flags) +} + +// SchedGetAttr is a wrapper for sched_getattr(2) syscall. +// https://man7.org/linux/man-pages/man2/sched_getattr.2.html +func SchedGetAttr(pid int, flags uint) (*SchedAttr, error) { + attr := &SchedAttr{} + if err := schedGetattr(pid, attr, SizeofSchedAttr, flags); err != nil { + return nil, err + } + return attr, nil +} + /* * Unimplemented */ @@ -2461,7 +2535,6 @@ func PthreadSigmask(how int, set, oldset *Sigset_t) error { // MqTimedreceive // MqTimedsend // MqUnlink -// Mremap // Msgctl // Msgget // Msgrcv diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go index 5b21fcfd7539..70601ce3692c 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go @@ -40,7 +40,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err if timeout != nil { ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} } - return Pselect(nfd, r, w, e, ts, nil) + return pselect6(nfd, r, w, e, ts, nil) } //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go index a81f5742b8a5..f5266689af0e 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go @@ -33,7 +33,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err if timeout != nil { ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} } - return Pselect(nfd, r, w, e, ts, nil) + return pselect6(nfd, r, w, e, ts, nil) } //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go b/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go index 69d2d7c3db7a..f6ab02ec1501 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go @@ -28,7 +28,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err if timeout != nil { ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} } - return Pselect(nfd, r, w, e, ts, nil) + return pselect6(nfd, r, w, e, ts, nil) } //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go index 76d564095ef4..93fe59d25d9f 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go @@ -31,7 +31,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err if timeout != nil { ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} } - return Pselect(nfd, r, w, e, ts, nil) + return pselect6(nfd, r, w, e, ts, nil) } //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go index 35851ef70b8d..5e6ceee129fb 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go @@ -32,7 +32,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err if timeout != nil { ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} } - return Pselect(nfd, r, w, e, ts, nil) + return pselect6(nfd, r, w, e, ts, nil) } //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) @@ -177,3 +177,14 @@ func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error } return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) } + +//sys riscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error) + +func RISCVHWProbe(pairs []RISCVHWProbePairs, set *CPUSet, flags uint) (err error) { + var setSize uintptr + + if set != nil { + setSize = uintptr(unsafe.Sizeof(*set)) + } + return riscvHWProbe(pairs, setSize, set, flags) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go index 018d7d47822f..ddd1ac853412 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go @@ -360,6 +360,18 @@ func Statvfs(path string, buf *Statvfs_t) (err error) { //sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE //sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) +const ( + mremapFixed = MAP_FIXED + mremapDontunmap = 0 + mremapMaymove = 0 +) + +//sys mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) = SYS_MREMAP + +func mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (uintptr, error) { + return mremapNetBSD(oldaddr, oldlength, newaddr, newlength, flags) +} + /* * Unimplemented */ @@ -564,7 +576,6 @@ func Statvfs(path string, buf *Statvfs_t) (err error) { // mq_timedreceive // mq_timedsend // mq_unlink -// mremap // msgget // msgrcv // msgsnd diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go index f9c7a9663c6a..c5f166a11526 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go @@ -151,6 +151,21 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { return } +//sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) +//sysnb getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) + +func Getresuid() (ruid, euid, suid int) { + var r, e, s _C_int + getresuid(&r, &e, &s) + return int(r), int(e), int(s) +} + +func Getresgid() (rgid, egid, sgid int) { + var r, e, s _C_int + getresgid(&r, &e, &s) + return int(r), int(e), int(s) +} + //sys ioctl(fd int, req uint, arg uintptr) (err error) //sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL @@ -338,8 +353,6 @@ func Uname(uname *Utsname) error { // getgid // getitimer // getlogin -// getresgid -// getresuid // getthrid // ktrace // lfs_bmapv diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go index b600a289d338..72d23575fa43 100644 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -716,20 +716,6 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { return } -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} - -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - // Event Ports type fileObjCookie struct { diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go index 8e48c29ec332..f6eda27050da 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix.go @@ -147,6 +147,14 @@ func (m *mmapper) Munmap(data []byte) (err error) { return nil } +func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + return mapper.Mmap(fd, offset, length, prot, flags) +} + +func Munmap(b []byte) (err error) { + return mapper.Munmap(b) +} + func Read(fd int, p []byte) (n int, err error) { n, err = read(fd, p) if raceenabled { @@ -541,6 +549,9 @@ func SetNonblock(fd int, nonblocking bool) (err error) { if err != nil { return err } + if (flag&O_NONBLOCK != 0) == nonblocking { + return nil + } if nonblocking { flag |= O_NONBLOCK } else { diff --git a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go index d3d49ec3ed75..44e72edb42d3 100644 --- a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go +++ b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go @@ -285,25 +285,11 @@ func Close(fd int) (err error) { return } -var mapper = &mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, -} - // Dummy function: there are no semantics for Madvise on z/OS func Madvise(b []byte, advice int) (err error) { return } -func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { - return mapper.Mmap(fd, offset, length, prot, flags) -} - -func Munmap(b []byte) (err error) { - return mapper.Munmap(b) -} - //sys Gethostname(buf []byte) (err error) = SYS___GETHOSTNAME_A //sysnb Getegid() (egid int) //sysnb Geteuid() (uid int) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go index de936b677b6a..0787a043be12 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go @@ -493,6 +493,7 @@ const ( BPF_F_TEST_RUN_ON_CPU = 0x1 BPF_F_TEST_STATE_FREQ = 0x8 BPF_F_TEST_XDP_LIVE_FRAMES = 0x2 + BPF_F_XDP_DEV_BOUND_ONLY = 0x40 BPF_F_XDP_HAS_FRAGS = 0x20 BPF_H = 0x8 BPF_IMM = 0x0 @@ -826,9 +827,9 @@ const ( DM_UUID_FLAG = 0x4000 DM_UUID_LEN = 0x81 DM_VERSION = 0xc138fd00 - DM_VERSION_EXTRA = "-ioctl (2022-07-28)" + DM_VERSION_EXTRA = "-ioctl (2023-03-01)" DM_VERSION_MAJOR = 0x4 - DM_VERSION_MINOR = 0x2f + DM_VERSION_MINOR = 0x30 DM_VERSION_PATCHLEVEL = 0x0 DT_BLK = 0x6 DT_CHR = 0x2 @@ -1197,6 +1198,7 @@ const ( FAN_EVENT_METADATA_LEN = 0x18 FAN_EVENT_ON_CHILD = 0x8000000 FAN_FS_ERROR = 0x8000 + FAN_INFO = 0x20 FAN_MARK_ADD = 0x1 FAN_MARK_DONT_FOLLOW = 0x4 FAN_MARK_EVICTABLE = 0x200 @@ -1233,6 +1235,8 @@ const ( FAN_REPORT_PIDFD = 0x80 FAN_REPORT_TARGET_FID = 0x1000 FAN_REPORT_TID = 0x100 + FAN_RESPONSE_INFO_AUDIT_RULE = 0x1 + FAN_RESPONSE_INFO_NONE = 0x0 FAN_UNLIMITED_MARKS = 0x20 FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 @@ -1860,6 +1864,7 @@ const ( MEMWRITEOOB64 = 0xc0184d15 MFD_ALLOW_SEALING = 0x2 MFD_CLOEXEC = 0x1 + MFD_EXEC = 0x10 MFD_HUGETLB = 0x4 MFD_HUGE_16GB = 0x88000000 MFD_HUGE_16MB = 0x60000000 @@ -1875,6 +1880,7 @@ const ( MFD_HUGE_8MB = 0x5c000000 MFD_HUGE_MASK = 0x3f MFD_HUGE_SHIFT = 0x1a + MFD_NOEXEC_SEAL = 0x8 MINIX2_SUPER_MAGIC = 0x2468 MINIX2_SUPER_MAGIC2 = 0x2478 MINIX3_SUPER_MAGIC = 0x4d5a @@ -1898,6 +1904,9 @@ const ( MOUNT_ATTR_SIZE_VER0 = 0x20 MOUNT_ATTR_STRICTATIME = 0x20 MOUNT_ATTR__ATIME = 0x70 + MREMAP_DONTUNMAP = 0x4 + MREMAP_FIXED = 0x2 + MREMAP_MAYMOVE = 0x1 MSDOS_SUPER_MAGIC = 0x4d44 MSG_BATCH = 0x40000 MSG_CMSG_CLOEXEC = 0x40000000 @@ -2204,6 +2213,7 @@ const ( PACKET_USER = 0x6 PACKET_VERSION = 0xa PACKET_VNET_HDR = 0xf + PACKET_VNET_HDR_SZ = 0x18 PARITY_CRC16_PR0 = 0x2 PARITY_CRC16_PR0_CCITT = 0x4 PARITY_CRC16_PR1 = 0x3 @@ -2221,6 +2231,7 @@ const ( PERF_ATTR_SIZE_VER5 = 0x70 PERF_ATTR_SIZE_VER6 = 0x78 PERF_ATTR_SIZE_VER7 = 0x80 + PERF_ATTR_SIZE_VER8 = 0x88 PERF_AUX_FLAG_COLLISION = 0x8 PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT = 0x0 PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW = 0x100 @@ -2361,6 +2372,7 @@ const ( PR_FP_EXC_UND = 0x40000 PR_FP_MODE_FR = 0x1 PR_FP_MODE_FRE = 0x2 + PR_GET_AUXV = 0x41555856 PR_GET_CHILD_SUBREAPER = 0x25 PR_GET_DUMPABLE = 0x3 PR_GET_ENDIAN = 0x13 @@ -2369,6 +2381,8 @@ const ( PR_GET_FP_MODE = 0x2e PR_GET_IO_FLUSHER = 0x3a PR_GET_KEEPCAPS = 0x7 + PR_GET_MDWE = 0x42 + PR_GET_MEMORY_MERGE = 0x44 PR_GET_NAME = 0x10 PR_GET_NO_NEW_PRIVS = 0x27 PR_GET_PDEATHSIG = 0x2 @@ -2389,6 +2403,7 @@ const ( PR_MCE_KILL_GET = 0x22 PR_MCE_KILL_LATE = 0x0 PR_MCE_KILL_SET = 0x1 + PR_MDWE_REFUSE_EXEC_GAIN = 0x1 PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MTE_TAG_MASK = 0x7fff8 @@ -2423,6 +2438,8 @@ const ( PR_SET_FP_MODE = 0x2d PR_SET_IO_FLUSHER = 0x39 PR_SET_KEEPCAPS = 0x8 + PR_SET_MDWE = 0x41 + PR_SET_MEMORY_MERGE = 0x43 PR_SET_MM = 0x23 PR_SET_MM_ARG_END = 0x9 PR_SET_MM_ARG_START = 0x8 @@ -2506,6 +2523,7 @@ const ( PTRACE_GETSIGMASK = 0x420a PTRACE_GET_RSEQ_CONFIGURATION = 0x420f PTRACE_GET_SYSCALL_INFO = 0x420e + PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG = 0x4211 PTRACE_INTERRUPT = 0x4207 PTRACE_KILL = 0x8 PTRACE_LISTEN = 0x4208 @@ -2536,6 +2554,7 @@ const ( PTRACE_SETREGSET = 0x4205 PTRACE_SETSIGINFO = 0x4203 PTRACE_SETSIGMASK = 0x420b + PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210 PTRACE_SINGLESTEP = 0x9 PTRACE_SYSCALL = 0x18 PTRACE_SYSCALL_INFO_ENTRY = 0x1 @@ -2802,6 +2821,23 @@ const ( RWF_SUPPORTED = 0x1f RWF_SYNC = 0x4 RWF_WRITE_LIFE_NOT_SET = 0x0 + SCHED_BATCH = 0x3 + SCHED_DEADLINE = 0x6 + SCHED_FIFO = 0x1 + SCHED_FLAG_ALL = 0x7f + SCHED_FLAG_DL_OVERRUN = 0x4 + SCHED_FLAG_KEEP_ALL = 0x18 + SCHED_FLAG_KEEP_PARAMS = 0x10 + SCHED_FLAG_KEEP_POLICY = 0x8 + SCHED_FLAG_RECLAIM = 0x2 + SCHED_FLAG_RESET_ON_FORK = 0x1 + SCHED_FLAG_UTIL_CLAMP = 0x60 + SCHED_FLAG_UTIL_CLAMP_MAX = 0x40 + SCHED_FLAG_UTIL_CLAMP_MIN = 0x20 + SCHED_IDLE = 0x5 + SCHED_NORMAL = 0x0 + SCHED_RESET_ON_FORK = 0x40000000 + SCHED_RR = 0x2 SCM_CREDENTIALS = 0x2 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x1d @@ -3072,7 +3108,7 @@ const ( TASKSTATS_GENL_NAME = "TASKSTATS" TASKSTATS_GENL_VERSION = 0x1 TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0xd + TASKSTATS_VERSION = 0xe TCIFLUSH = 0x0 TCIOFF = 0x2 TCIOFLUSH = 0x2 @@ -3238,6 +3274,7 @@ const ( TP_STATUS_COPY = 0x2 TP_STATUS_CSUMNOTREADY = 0x8 TP_STATUS_CSUM_VALID = 0x80 + TP_STATUS_GSO_TCP = 0x100 TP_STATUS_KERNEL = 0x0 TP_STATUS_LOSING = 0x4 TP_STATUS_SENDING = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go index a46df0f1e57a..cfb143001862 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -27,22 +27,31 @@ const ( B57600 = 0x1001 B576000 = 0x1006 B921600 = 0x1007 + BLKALIGNOFF = 0x127a BLKBSZGET = 0x80041270 BLKBSZSET = 0x40041271 + BLKDISCARD = 0x1277 + BLKDISCARDZEROES = 0x127c BLKFLSBUF = 0x1261 BLKFRAGET = 0x1265 BLKFRASET = 0x1264 + BLKGETDISKSEQ = 0x80081280 BLKGETSIZE = 0x1260 BLKGETSIZE64 = 0x80041272 + BLKIOMIN = 0x1278 + BLKIOOPT = 0x1279 BLKPBSZGET = 0x127b BLKRAGET = 0x1263 BLKRASET = 0x1262 BLKROGET = 0x125e BLKROSET = 0x125d + BLKROTATIONAL = 0x127e BLKRRPART = 0x125f + BLKSECDISCARD = 0x127d BLKSECTGET = 0x1267 BLKSECTSET = 0x1266 BLKSSZGET = 0x1268 + BLKZEROOUT = 0x127f BOTHER = 0x1000 BS1 = 0x2000 BSDLY = 0x2000 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go index 6cd4a3ea9d33..df64f2d590a0 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -27,22 +27,31 @@ const ( B57600 = 0x1001 B576000 = 0x1006 B921600 = 0x1007 + BLKALIGNOFF = 0x127a BLKBSZGET = 0x80081270 BLKBSZSET = 0x40081271 + BLKDISCARD = 0x1277 + BLKDISCARDZEROES = 0x127c BLKFLSBUF = 0x1261 BLKFRAGET = 0x1265 BLKFRASET = 0x1264 + BLKGETDISKSEQ = 0x80081280 BLKGETSIZE = 0x1260 BLKGETSIZE64 = 0x80081272 + BLKIOMIN = 0x1278 + BLKIOOPT = 0x1279 BLKPBSZGET = 0x127b BLKRAGET = 0x1263 BLKRASET = 0x1262 BLKROGET = 0x125e BLKROSET = 0x125d + BLKROTATIONAL = 0x127e BLKRRPART = 0x125f + BLKSECDISCARD = 0x127d BLKSECTGET = 0x1267 BLKSECTSET = 0x1266 BLKSSZGET = 0x1268 + BLKZEROOUT = 0x127f BOTHER = 0x1000 BS1 = 0x2000 BSDLY = 0x2000 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go index c7ebee24df3f..3025cd5b2d95 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -27,22 +27,31 @@ const ( B57600 = 0x1001 B576000 = 0x1006 B921600 = 0x1007 + BLKALIGNOFF = 0x127a BLKBSZGET = 0x80041270 BLKBSZSET = 0x40041271 + BLKDISCARD = 0x1277 + BLKDISCARDZEROES = 0x127c BLKFLSBUF = 0x1261 BLKFRAGET = 0x1265 BLKFRASET = 0x1264 + BLKGETDISKSEQ = 0x80081280 BLKGETSIZE = 0x1260 BLKGETSIZE64 = 0x80041272 + BLKIOMIN = 0x1278 + BLKIOOPT = 0x1279 BLKPBSZGET = 0x127b BLKRAGET = 0x1263 BLKRASET = 0x1262 BLKROGET = 0x125e BLKROSET = 0x125d + BLKROTATIONAL = 0x127e BLKRRPART = 0x125f + BLKSECDISCARD = 0x127d BLKSECTGET = 0x1267 BLKSECTSET = 0x1266 BLKSSZGET = 0x1268 + BLKZEROOUT = 0x127f BOTHER = 0x1000 BS1 = 0x2000 BSDLY = 0x2000 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go index 9d5352c3e45e..09e1ffbef909 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -27,22 +27,31 @@ const ( B57600 = 0x1001 B576000 = 0x1006 B921600 = 0x1007 + BLKALIGNOFF = 0x127a BLKBSZGET = 0x80081270 BLKBSZSET = 0x40081271 + BLKDISCARD = 0x1277 + BLKDISCARDZEROES = 0x127c BLKFLSBUF = 0x1261 BLKFRAGET = 0x1265 BLKFRASET = 0x1264 + BLKGETDISKSEQ = 0x80081280 BLKGETSIZE = 0x1260 BLKGETSIZE64 = 0x80081272 + BLKIOMIN = 0x1278 + BLKIOOPT = 0x1279 BLKPBSZGET = 0x127b BLKRAGET = 0x1263 BLKRASET = 0x1262 BLKROGET = 0x125e BLKROSET = 0x125d + BLKROTATIONAL = 0x127e BLKRRPART = 0x125f + BLKSECDISCARD = 0x127d BLKSECTGET = 0x1267 BLKSECTSET = 0x1266 BLKSSZGET = 0x1268 + BLKZEROOUT = 0x127f BOTHER = 0x1000 BS1 = 0x2000 BSDLY = 0x2000 @@ -443,6 +452,7 @@ const ( TIOCSWINSZ = 0x5414 TIOCVHANGUP = 0x5437 TOSTOP = 0x100 + TPIDR2_MAGIC = 0x54504902 TUNATTACHFILTER = 0x401054d5 TUNDETACHFILTER = 0x401054d6 TUNGETDEVNETNS = 0x54e3 @@ -515,6 +525,7 @@ const ( XCASE = 0x4 XTABS = 0x1800 ZA_MAGIC = 0x54366345 + ZT_MAGIC = 0x5a544e01 _HIDIOCGRAWNAME = 0x80804804 _HIDIOCGRAWPHYS = 0x80404805 _HIDIOCGRAWUNIQ = 0x80404808 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go index f26a164f4aab..a4572354079c 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go @@ -27,22 +27,31 @@ const ( B57600 = 0x1001 B576000 = 0x1006 B921600 = 0x1007 + BLKALIGNOFF = 0x127a BLKBSZGET = 0x80081270 BLKBSZSET = 0x40081271 + BLKDISCARD = 0x1277 + BLKDISCARDZEROES = 0x127c BLKFLSBUF = 0x1261 BLKFRAGET = 0x1265 BLKFRASET = 0x1264 + BLKGETDISKSEQ = 0x80081280 BLKGETSIZE = 0x1260 BLKGETSIZE64 = 0x80081272 + BLKIOMIN = 0x1278 + BLKIOOPT = 0x1279 BLKPBSZGET = 0x127b BLKRAGET = 0x1263 BLKRASET = 0x1262 BLKROGET = 0x125e BLKROSET = 0x125d + BLKROTATIONAL = 0x127e BLKRRPART = 0x125f + BLKSECDISCARD = 0x127d BLKSECTGET = 0x1267 BLKSECTSET = 0x1266 BLKSSZGET = 0x1268 + BLKZEROOUT = 0x127f BOTHER = 0x1000 BS1 = 0x2000 BSDLY = 0x2000 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go index 890bc3c9b706..fee7dfb819db 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -27,22 +27,31 @@ const ( B57600 = 0x1001 B576000 = 0x1006 B921600 = 0x1007 + BLKALIGNOFF = 0x2000127a BLKBSZGET = 0x40041270 BLKBSZSET = 0x80041271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c BLKFLSBUF = 0x20001261 BLKFRAGET = 0x20001265 BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 BLKGETSIZE = 0x20001260 BLKGETSIZE64 = 0x40041272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 BLKPBSZGET = 0x2000127b BLKRAGET = 0x20001263 BLKRASET = 0x20001262 BLKROGET = 0x2000125e BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d BLKSECTGET = 0x20001267 BLKSECTSET = 0x20001266 BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f BOTHER = 0x1000 BS1 = 0x2000 BSDLY = 0x2000 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go index 549f26ac6466..a5b2373aea06 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -27,22 +27,31 @@ const ( B57600 = 0x1001 B576000 = 0x1006 B921600 = 0x1007 + BLKALIGNOFF = 0x2000127a BLKBSZGET = 0x40081270 BLKBSZSET = 0x80081271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c BLKFLSBUF = 0x20001261 BLKFRAGET = 0x20001265 BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 BLKGETSIZE = 0x20001260 BLKGETSIZE64 = 0x40081272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 BLKPBSZGET = 0x2000127b BLKRAGET = 0x20001263 BLKRASET = 0x20001262 BLKROGET = 0x2000125e BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d BLKSECTGET = 0x20001267 BLKSECTSET = 0x20001266 BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f BOTHER = 0x1000 BS1 = 0x2000 BSDLY = 0x2000 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go index e0365e32c174..5dde82c98ab3 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -27,22 +27,31 @@ const ( B57600 = 0x1001 B576000 = 0x1006 B921600 = 0x1007 + BLKALIGNOFF = 0x2000127a BLKBSZGET = 0x40081270 BLKBSZSET = 0x80081271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c BLKFLSBUF = 0x20001261 BLKFRAGET = 0x20001265 BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 BLKGETSIZE = 0x20001260 BLKGETSIZE64 = 0x40081272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 BLKPBSZGET = 0x2000127b BLKRAGET = 0x20001263 BLKRASET = 0x20001262 BLKROGET = 0x2000125e BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d BLKSECTGET = 0x20001267 BLKSECTSET = 0x20001266 BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f BOTHER = 0x1000 BS1 = 0x2000 BSDLY = 0x2000 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go index fdccce15ca20..2e80ea6b33fc 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -27,22 +27,31 @@ const ( B57600 = 0x1001 B576000 = 0x1006 B921600 = 0x1007 + BLKALIGNOFF = 0x2000127a BLKBSZGET = 0x40041270 BLKBSZSET = 0x80041271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c BLKFLSBUF = 0x20001261 BLKFRAGET = 0x20001265 BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 BLKGETSIZE = 0x20001260 BLKGETSIZE64 = 0x40041272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 BLKPBSZGET = 0x2000127b BLKRAGET = 0x20001263 BLKRASET = 0x20001262 BLKROGET = 0x2000125e BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d BLKSECTGET = 0x20001267 BLKSECTSET = 0x20001266 BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f BOTHER = 0x1000 BS1 = 0x2000 BSDLY = 0x2000 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go index b2205c83faa1..a65dcd7cbe30 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go @@ -27,22 +27,31 @@ const ( B57600 = 0x10 B576000 = 0x15 B921600 = 0x16 + BLKALIGNOFF = 0x2000127a BLKBSZGET = 0x40041270 BLKBSZSET = 0x80041271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c BLKFLSBUF = 0x20001261 BLKFRAGET = 0x20001265 BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 BLKGETSIZE = 0x20001260 BLKGETSIZE64 = 0x40041272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 BLKPBSZGET = 0x2000127b BLKRAGET = 0x20001263 BLKRASET = 0x20001262 BLKROGET = 0x2000125e BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d BLKSECTGET = 0x20001267 BLKSECTSET = 0x20001266 BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f BOTHER = 0x1f BS1 = 0x8000 BSDLY = 0x8000 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go index 81aa5ad0f695..cbd34e3d89a0 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -27,22 +27,31 @@ const ( B57600 = 0x10 B576000 = 0x15 B921600 = 0x16 + BLKALIGNOFF = 0x2000127a BLKBSZGET = 0x40081270 BLKBSZSET = 0x80081271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c BLKFLSBUF = 0x20001261 BLKFRAGET = 0x20001265 BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 BLKGETSIZE = 0x20001260 BLKGETSIZE64 = 0x40081272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 BLKPBSZGET = 0x2000127b BLKRAGET = 0x20001263 BLKRASET = 0x20001262 BLKROGET = 0x2000125e BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d BLKSECTGET = 0x20001267 BLKSECTSET = 0x20001266 BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f BOTHER = 0x1f BS1 = 0x8000 BSDLY = 0x8000 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go index 76807a1fd4f7..e4afa7a3178f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -27,22 +27,31 @@ const ( B57600 = 0x10 B576000 = 0x15 B921600 = 0x16 + BLKALIGNOFF = 0x2000127a BLKBSZGET = 0x40081270 BLKBSZSET = 0x80081271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c BLKFLSBUF = 0x20001261 BLKFRAGET = 0x20001265 BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 BLKGETSIZE = 0x20001260 BLKGETSIZE64 = 0x40081272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 BLKPBSZGET = 0x2000127b BLKRAGET = 0x20001263 BLKRASET = 0x20001262 BLKROGET = 0x2000125e BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d BLKSECTGET = 0x20001267 BLKSECTSET = 0x20001266 BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f BOTHER = 0x1f BS1 = 0x8000 BSDLY = 0x8000 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go index d4a5ab9e4e06..44f45a039d9b 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -27,22 +27,31 @@ const ( B57600 = 0x1001 B576000 = 0x1006 B921600 = 0x1007 + BLKALIGNOFF = 0x127a BLKBSZGET = 0x80081270 BLKBSZSET = 0x40081271 + BLKDISCARD = 0x1277 + BLKDISCARDZEROES = 0x127c BLKFLSBUF = 0x1261 BLKFRAGET = 0x1265 BLKFRASET = 0x1264 + BLKGETDISKSEQ = 0x80081280 BLKGETSIZE = 0x1260 BLKGETSIZE64 = 0x80081272 + BLKIOMIN = 0x1278 + BLKIOOPT = 0x1279 BLKPBSZGET = 0x127b BLKRAGET = 0x1263 BLKRASET = 0x1262 BLKROGET = 0x125e BLKROSET = 0x125d + BLKROTATIONAL = 0x127e BLKRRPART = 0x125f + BLKSECDISCARD = 0x127d BLKSECTGET = 0x1267 BLKSECTSET = 0x1266 BLKSSZGET = 0x1268 + BLKZEROOUT = 0x127f BOTHER = 0x1000 BS1 = 0x2000 BSDLY = 0x2000 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go index 66e65db95192..74733e260f7e 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -27,22 +27,31 @@ const ( B57600 = 0x1001 B576000 = 0x1006 B921600 = 0x1007 + BLKALIGNOFF = 0x127a BLKBSZGET = 0x80081270 BLKBSZSET = 0x40081271 + BLKDISCARD = 0x1277 + BLKDISCARDZEROES = 0x127c BLKFLSBUF = 0x1261 BLKFRAGET = 0x1265 BLKFRASET = 0x1264 + BLKGETDISKSEQ = 0x80081280 BLKGETSIZE = 0x1260 BLKGETSIZE64 = 0x80081272 + BLKIOMIN = 0x1278 + BLKIOOPT = 0x1279 BLKPBSZGET = 0x127b BLKRAGET = 0x1263 BLKRASET = 0x1262 BLKROGET = 0x125e BLKROSET = 0x125d + BLKROTATIONAL = 0x127e BLKRRPART = 0x125f + BLKSECDISCARD = 0x127d BLKSECTGET = 0x1267 BLKSECTSET = 0x1266 BLKSSZGET = 0x1268 + BLKZEROOUT = 0x127f BOTHER = 0x1000 BS1 = 0x2000 BSDLY = 0x2000 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go index f619252691e2..f5f3934b1a9f 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -30,22 +30,31 @@ const ( B57600 = 0x1001 B576000 = 0x1006 B921600 = 0x1007 + BLKALIGNOFF = 0x2000127a BLKBSZGET = 0x40081270 BLKBSZSET = 0x80081271 + BLKDISCARD = 0x20001277 + BLKDISCARDZEROES = 0x2000127c BLKFLSBUF = 0x20001261 BLKFRAGET = 0x20001265 BLKFRASET = 0x20001264 + BLKGETDISKSEQ = 0x40081280 BLKGETSIZE = 0x20001260 BLKGETSIZE64 = 0x40081272 + BLKIOMIN = 0x20001278 + BLKIOOPT = 0x20001279 BLKPBSZGET = 0x2000127b BLKRAGET = 0x20001263 BLKRASET = 0x20001262 BLKROGET = 0x2000125e BLKROSET = 0x2000125d + BLKROTATIONAL = 0x2000127e BLKRRPART = 0x2000125f + BLKSECDISCARD = 0x2000127d BLKSECTGET = 0x20001267 BLKSECTSET = 0x20001266 BLKSSZGET = 0x20001268 + BLKZEROOUT = 0x2000127f BOTHER = 0x1000 BS1 = 0x2000 BSDLY = 0x2000 @@ -329,6 +338,54 @@ const ( SCM_WIFI_STATUS = 0x25 SFD_CLOEXEC = 0x400000 SFD_NONBLOCK = 0x4000 + SF_FP = 0x38 + SF_I0 = 0x20 + SF_I1 = 0x24 + SF_I2 = 0x28 + SF_I3 = 0x2c + SF_I4 = 0x30 + SF_I5 = 0x34 + SF_L0 = 0x0 + SF_L1 = 0x4 + SF_L2 = 0x8 + SF_L3 = 0xc + SF_L4 = 0x10 + SF_L5 = 0x14 + SF_L6 = 0x18 + SF_L7 = 0x1c + SF_PC = 0x3c + SF_RETP = 0x40 + SF_V9_FP = 0x70 + SF_V9_I0 = 0x40 + SF_V9_I1 = 0x48 + SF_V9_I2 = 0x50 + SF_V9_I3 = 0x58 + SF_V9_I4 = 0x60 + SF_V9_I5 = 0x68 + SF_V9_L0 = 0x0 + SF_V9_L1 = 0x8 + SF_V9_L2 = 0x10 + SF_V9_L3 = 0x18 + SF_V9_L4 = 0x20 + SF_V9_L5 = 0x28 + SF_V9_L6 = 0x30 + SF_V9_L7 = 0x38 + SF_V9_PC = 0x78 + SF_V9_RETP = 0x80 + SF_V9_XARG0 = 0x88 + SF_V9_XARG1 = 0x90 + SF_V9_XARG2 = 0x98 + SF_V9_XARG3 = 0xa0 + SF_V9_XARG4 = 0xa8 + SF_V9_XARG5 = 0xb0 + SF_V9_XXARG = 0xb8 + SF_XARG0 = 0x44 + SF_XARG1 = 0x48 + SF_XARG2 = 0x4c + SF_XARG3 = 0x50 + SF_XARG4 = 0x54 + SF_XARG5 = 0x58 + SF_XXARG = 0x5c SIOCATMARK = 0x8905 SIOCGPGRP = 0x8904 SIOCGSTAMPNS_NEW = 0x40108907 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go index da63d9d7822f..14ab34a56514 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go @@ -1356,7 +1356,7 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) ( // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { +func pselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (n int, err error) { r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) n = int(r0) if e1 != 0 { @@ -1868,6 +1868,17 @@ func munmap(addr uintptr, length uintptr) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldaddr), uintptr(oldlength), uintptr(newlength), uintptr(flags), uintptr(newaddr), 0) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Madvise(b []byte, advice int) (err error) { var _p0 unsafe.Pointer if len(b) > 0 { @@ -2172,3 +2183,37 @@ func rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) } return } + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + RawSyscallNoError(SYS_GETRESUID, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + RawSyscallNoError(SYS_GETRESGID, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func schedSetattr(pid int, attr *SchedAttr, flags uint) (err error) { + _, _, e1 := Syscall(SYS_SCHED_SETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) { + _, _, e1 := Syscall6(SYS_SCHED_GETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(size), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go index 0b29239583b9..0ab4f2ed7206 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go @@ -531,3 +531,19 @@ func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, f } return } + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func riscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error) { + var _p0 unsafe.Pointer + if len(pairs) > 0 { + _p0 = unsafe.Pointer(&pairs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_RISCV_HWPROBE, uintptr(_p0), uintptr(len(pairs)), uintptr(cpuCount), uintptr(unsafe.Pointer(cpus)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go index cdb2af5ae0f4..35f499b32a3b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go @@ -1858,3 +1858,14 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error } return } + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go index 9d25f76b0bfd..3cda65b0da37 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go @@ -1858,3 +1858,14 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error } return } + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go index d3f8035169f0..1e1fea902be4 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go @@ -1858,3 +1858,14 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error } return } + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go index 887188a529e2..3b77da110798 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go @@ -1858,3 +1858,14 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error } return } + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go index 6699a783e1f0..9ab9abf7215f 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go @@ -519,6 +519,28 @@ var libc_getcwd_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +var libc_getresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +var libc_getresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ioctl(fd int, req uint, arg uintptr) (err error) { _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s index 04f0de34b2e5..3dcacd30d7e4 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s @@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) +TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresuid(SB) +GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB) + +TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresgid(SB) +GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB) + TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go index 1e775fe05718..915761eab778 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go @@ -519,6 +519,28 @@ var libc_getcwd_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +var libc_getresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +var libc_getresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ioctl(fd int, req uint, arg uintptr) (err error) { _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { @@ -527,6 +549,12 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { return } +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { @@ -535,10 +563,6 @@ func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { return } -var libc_ioctl_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s index 27b6f4df74f1..2763620b01ad 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s @@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) +TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresuid(SB) +GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) + +TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresgid(SB) +GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) + TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go index 7f6427899a5b..8e87fdf153f3 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go @@ -519,6 +519,28 @@ var libc_getcwd_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +var libc_getresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +var libc_getresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ioctl(fd int, req uint, arg uintptr) (err error) { _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s index b797045fd2d1..c922314048f6 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s @@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) +TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresuid(SB) +GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB) + +TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresgid(SB) +GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB) + TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go index 756ef7b17362..12a7a2160e09 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go @@ -519,6 +519,28 @@ var libc_getcwd_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +var libc_getresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +var libc_getresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ioctl(fd int, req uint, arg uintptr) (err error) { _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s index a871266221e4..a6bc32c92204 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s @@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) +TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresuid(SB) +GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) + +TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresgid(SB) +GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) + TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go index 7bc2e24eb95f..b19e8aa031db 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go @@ -519,6 +519,28 @@ var libc_getcwd_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +var libc_getresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +var libc_getresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ioctl(fd int, req uint, arg uintptr) (err error) { _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s index 05d4bffd791e..b4e7bceabf35 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s @@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) +TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresuid(SB) +GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) + +TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresgid(SB) +GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) + TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go index 739be6217a37..fb99594c9374 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go @@ -519,6 +519,28 @@ var libc_getcwd_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +var libc_getresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +var libc_getresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ioctl(fd int, req uint, arg uintptr) (err error) { _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s index 74a25f8d6438..ca3f766009c3 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s @@ -189,6 +189,18 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) +TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getresuid(SB) + RET +GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) + +TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getresgid(SB) + RET +GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) + TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 CALL libc_ioctl(SB) RET diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go index 7d95a1978033..32cbbbc52b51 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go @@ -519,6 +519,28 @@ var libc_getcwd_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +var libc_getresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +} + +var libc_getresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ioctl(fd int, req uint, arg uintptr) (err error) { _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s index 990be2457404..477a7d5b21e9 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s @@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) +TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresuid(SB) +GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) + +TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getresgid(SB) +GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) + TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_ioctl(SB) GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go index 3e594a8c0910..ef285c567b64 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go @@ -251,6 +251,8 @@ const ( SYS_ACCEPT4 = 242 SYS_RECVMMSG = 243 SYS_ARCH_SPECIFIC_SYSCALL = 244 + SYS_RISCV_HWPROBE = 258 + SYS_RISCV_FLUSH_ICACHE = 259 SYS_WAIT4 = 260 SYS_PRLIMIT64 = 261 SYS_FANOTIFY_INIT = 262 diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go index 7ea465204b7c..e6ed7d637d06 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go @@ -372,6 +372,7 @@ const ( SYS_LANDLOCK_CREATE_RULESET = 444 SYS_LANDLOCK_ADD_RULE = 445 SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_MEMFD_SECRET = 447 SYS_PROCESS_MRELEASE = 448 SYS_FUTEX_WAITV = 449 SYS_SET_MEMPOLICY_HOME_NODE = 450 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go index ca84727cfe80..494493c78c9d 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -866,6 +866,11 @@ const ( POLLNVAL = 0x20 ) +type sigset_argpack struct { + ss *Sigset_t + ssLen uintptr +} + type SignalfdSiginfo struct { Signo uint32 Errno int32 @@ -1538,6 +1543,10 @@ const ( IFLA_GRO_MAX_SIZE = 0x3a IFLA_TSO_MAX_SIZE = 0x3b IFLA_TSO_MAX_SEGS = 0x3c + IFLA_ALLMULTI = 0x3d + IFLA_DEVLINK_PORT = 0x3e + IFLA_GSO_IPV4_MAX_SIZE = 0x3f + IFLA_GRO_IPV4_MAX_SIZE = 0x40 IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 IFLA_PROTO_DOWN_REASON_MASK = 0x1 IFLA_PROTO_DOWN_REASON_VALUE = 0x2 @@ -1968,7 +1977,7 @@ const ( NFT_MSG_GETFLOWTABLE = 0x17 NFT_MSG_DELFLOWTABLE = 0x18 NFT_MSG_GETRULE_RESET = 0x19 - NFT_MSG_MAX = 0x1a + NFT_MSG_MAX = 0x21 NFTA_LIST_UNSPEC = 0x0 NFTA_LIST_ELEM = 0x1 NFTA_HOOK_UNSPEC = 0x0 @@ -2555,6 +2564,11 @@ const ( BPF_REG_8 = 0x8 BPF_REG_9 = 0x9 BPF_REG_10 = 0xa + BPF_CGROUP_ITER_ORDER_UNSPEC = 0x0 + BPF_CGROUP_ITER_SELF_ONLY = 0x1 + BPF_CGROUP_ITER_DESCENDANTS_PRE = 0x2 + BPF_CGROUP_ITER_DESCENDANTS_POST = 0x3 + BPF_CGROUP_ITER_ANCESTORS_UP = 0x4 BPF_MAP_CREATE = 0x0 BPF_MAP_LOOKUP_ELEM = 0x1 BPF_MAP_UPDATE_ELEM = 0x2 @@ -2566,6 +2580,7 @@ const ( BPF_PROG_ATTACH = 0x8 BPF_PROG_DETACH = 0x9 BPF_PROG_TEST_RUN = 0xa + BPF_PROG_RUN = 0xa BPF_PROG_GET_NEXT_ID = 0xb BPF_MAP_GET_NEXT_ID = 0xc BPF_PROG_GET_FD_BY_ID = 0xd @@ -2610,6 +2625,7 @@ const ( BPF_MAP_TYPE_CPUMAP = 0x10 BPF_MAP_TYPE_XSKMAP = 0x11 BPF_MAP_TYPE_SOCKHASH = 0x12 + BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 0x13 BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 @@ -2620,6 +2636,10 @@ const ( BPF_MAP_TYPE_STRUCT_OPS = 0x1a BPF_MAP_TYPE_RINGBUF = 0x1b BPF_MAP_TYPE_INODE_STORAGE = 0x1c + BPF_MAP_TYPE_TASK_STORAGE = 0x1d + BPF_MAP_TYPE_BLOOM_FILTER = 0x1e + BPF_MAP_TYPE_USER_RINGBUF = 0x1f + BPF_MAP_TYPE_CGRP_STORAGE = 0x20 BPF_PROG_TYPE_UNSPEC = 0x0 BPF_PROG_TYPE_SOCKET_FILTER = 0x1 BPF_PROG_TYPE_KPROBE = 0x2 @@ -2651,6 +2671,7 @@ const ( BPF_PROG_TYPE_EXT = 0x1c BPF_PROG_TYPE_LSM = 0x1d BPF_PROG_TYPE_SK_LOOKUP = 0x1e + BPF_PROG_TYPE_SYSCALL = 0x1f BPF_CGROUP_INET_INGRESS = 0x0 BPF_CGROUP_INET_EGRESS = 0x1 BPF_CGROUP_INET_SOCK_CREATE = 0x2 @@ -2689,6 +2710,12 @@ const ( BPF_XDP_CPUMAP = 0x23 BPF_SK_LOOKUP = 0x24 BPF_XDP = 0x25 + BPF_SK_SKB_VERDICT = 0x26 + BPF_SK_REUSEPORT_SELECT = 0x27 + BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 0x28 + BPF_PERF_EVENT = 0x29 + BPF_TRACE_KPROBE_MULTI = 0x2a + BPF_LSM_CGROUP = 0x2b BPF_LINK_TYPE_UNSPEC = 0x0 BPF_LINK_TYPE_RAW_TRACEPOINT = 0x1 BPF_LINK_TYPE_TRACING = 0x2 @@ -2696,6 +2723,9 @@ const ( BPF_LINK_TYPE_ITER = 0x4 BPF_LINK_TYPE_NETNS = 0x5 BPF_LINK_TYPE_XDP = 0x6 + BPF_LINK_TYPE_PERF_EVENT = 0x7 + BPF_LINK_TYPE_KPROBE_MULTI = 0x8 + BPF_LINK_TYPE_STRUCT_OPS = 0x9 BPF_ANY = 0x0 BPF_NOEXIST = 0x1 BPF_EXIST = 0x2 @@ -2733,6 +2763,7 @@ const ( BPF_F_ZERO_CSUM_TX = 0x2 BPF_F_DONT_FRAGMENT = 0x4 BPF_F_SEQ_NUMBER = 0x8 + BPF_F_TUNINFO_FLAGS = 0x10 BPF_F_INDEX_MASK = 0xffffffff BPF_F_CURRENT_CPU = 0xffffffff BPF_F_CTXLEN_MASK = 0xfffff00000000 @@ -2747,6 +2778,7 @@ const ( BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 BPF_F_ADJ_ROOM_NO_CSUM_RESET = 0x20 + BPF_F_ADJ_ROOM_ENCAP_L2_ETH = 0x40 BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 BPF_F_SYSCTL_BASE_NAME = 0x1 @@ -2771,10 +2803,16 @@ const ( BPF_LWT_ENCAP_SEG6 = 0x0 BPF_LWT_ENCAP_SEG6_INLINE = 0x1 BPF_LWT_ENCAP_IP = 0x2 + BPF_F_BPRM_SECUREEXEC = 0x1 + BPF_F_BROADCAST = 0x8 + BPF_F_EXCLUDE_INGRESS = 0x10 + BPF_SKB_TSTAMP_UNSPEC = 0x0 + BPF_SKB_TSTAMP_DELIVERY_MONO = 0x1 BPF_OK = 0x0 BPF_DROP = 0x2 BPF_REDIRECT = 0x7 BPF_LWT_REROUTE = 0x80 + BPF_FLOW_DISSECTOR_CONTINUE = 0x81 BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 @@ -2838,6 +2876,10 @@ const ( BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 + BPF_MTU_CHK_SEGS = 0x1 + BPF_MTU_CHK_RET_SUCCESS = 0x0 + BPF_MTU_CHK_RET_FRAG_NEEDED = 0x1 + BPF_MTU_CHK_RET_SEGS_TOOBIG = 0x2 BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 BPF_FD_TYPE_TRACEPOINT = 0x1 BPF_FD_TYPE_KPROBE = 0x2 @@ -2847,6 +2889,19 @@ const ( BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1 BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2 BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4 + BPF_CORE_FIELD_BYTE_OFFSET = 0x0 + BPF_CORE_FIELD_BYTE_SIZE = 0x1 + BPF_CORE_FIELD_EXISTS = 0x2 + BPF_CORE_FIELD_SIGNED = 0x3 + BPF_CORE_FIELD_LSHIFT_U64 = 0x4 + BPF_CORE_FIELD_RSHIFT_U64 = 0x5 + BPF_CORE_TYPE_ID_LOCAL = 0x6 + BPF_CORE_TYPE_ID_TARGET = 0x7 + BPF_CORE_TYPE_EXISTS = 0x8 + BPF_CORE_TYPE_SIZE = 0x9 + BPF_CORE_ENUMVAL_EXISTS = 0xa + BPF_CORE_ENUMVAL_VALUE = 0xb + BPF_CORE_TYPE_MATCHES = 0xc ) const ( @@ -3605,7 +3660,7 @@ const ( ETHTOOL_MSG_PSE_GET = 0x24 ETHTOOL_MSG_PSE_SET = 0x25 ETHTOOL_MSG_RSS_GET = 0x26 - ETHTOOL_MSG_USER_MAX = 0x26 + ETHTOOL_MSG_USER_MAX = 0x2b ETHTOOL_MSG_KERNEL_NONE = 0x0 ETHTOOL_MSG_STRSET_GET_REPLY = 0x1 ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2 @@ -3645,7 +3700,7 @@ const ( ETHTOOL_MSG_MODULE_NTF = 0x24 ETHTOOL_MSG_PSE_GET_REPLY = 0x25 ETHTOOL_MSG_RSS_GET_REPLY = 0x26 - ETHTOOL_MSG_KERNEL_MAX = 0x26 + ETHTOOL_MSG_KERNEL_MAX = 0x2b ETHTOOL_A_HEADER_UNSPEC = 0x0 ETHTOOL_A_HEADER_DEV_INDEX = 0x1 ETHTOOL_A_HEADER_DEV_NAME = 0x2 @@ -3749,7 +3804,7 @@ const ( ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 0xb ETHTOOL_A_RINGS_CQE_SIZE = 0xc ETHTOOL_A_RINGS_TX_PUSH = 0xd - ETHTOOL_A_RINGS_MAX = 0xd + ETHTOOL_A_RINGS_MAX = 0x10 ETHTOOL_A_CHANNELS_UNSPEC = 0x0 ETHTOOL_A_CHANNELS_HEADER = 0x1 ETHTOOL_A_CHANNELS_RX_MAX = 0x2 @@ -3787,14 +3842,14 @@ const ( ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 0x17 ETHTOOL_A_COALESCE_USE_CQE_MODE_TX = 0x18 ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 0x19 - ETHTOOL_A_COALESCE_MAX = 0x19 + ETHTOOL_A_COALESCE_MAX = 0x1c ETHTOOL_A_PAUSE_UNSPEC = 0x0 ETHTOOL_A_PAUSE_HEADER = 0x1 ETHTOOL_A_PAUSE_AUTONEG = 0x2 ETHTOOL_A_PAUSE_RX = 0x3 ETHTOOL_A_PAUSE_TX = 0x4 ETHTOOL_A_PAUSE_STATS = 0x5 - ETHTOOL_A_PAUSE_MAX = 0x5 + ETHTOOL_A_PAUSE_MAX = 0x6 ETHTOOL_A_PAUSE_STAT_UNSPEC = 0x0 ETHTOOL_A_PAUSE_STAT_PAD = 0x1 ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 0x2 @@ -4444,7 +4499,7 @@ const ( NL80211_ATTR_MAC_HINT = 0xc8 NL80211_ATTR_MAC_MASK = 0xd7 NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca - NL80211_ATTR_MAX = 0x141 + NL80211_ATTR_MAX = 0x145 NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 NL80211_ATTR_MAX_CSA_COUNTERS = 0xce NL80211_ATTR_MAX_MATCH_SETS = 0x85 @@ -4673,7 +4728,7 @@ const ( NL80211_BAND_ATTR_HT_CAPA = 0x4 NL80211_BAND_ATTR_HT_MCS_SET = 0x3 NL80211_BAND_ATTR_IFTYPE_DATA = 0x9 - NL80211_BAND_ATTR_MAX = 0xb + NL80211_BAND_ATTR_MAX = 0xd NL80211_BAND_ATTR_RATES = 0x2 NL80211_BAND_ATTR_VHT_CAPA = 0x8 NL80211_BAND_ATTR_VHT_MCS_SET = 0x7 @@ -4814,7 +4869,7 @@ const ( NL80211_CMD_LEAVE_IBSS = 0x2c NL80211_CMD_LEAVE_MESH = 0x45 NL80211_CMD_LEAVE_OCB = 0x6d - NL80211_CMD_MAX = 0x98 + NL80211_CMD_MAX = 0x99 NL80211_CMD_MICHAEL_MIC_FAILURE = 0x29 NL80211_CMD_MODIFY_LINK_STA = 0x97 NL80211_CMD_NAN_MATCH = 0x78 @@ -5795,6 +5850,8 @@ const ( TUN_F_TSO6 = 0x4 TUN_F_TSO_ECN = 0x8 TUN_F_UFO = 0x10 + TUN_F_USO4 = 0x20 + TUN_F_USO6 = 0x40 ) const ( @@ -5804,9 +5861,25 @@ const ( ) const ( - VIRTIO_NET_HDR_GSO_NONE = 0x0 - VIRTIO_NET_HDR_GSO_TCPV4 = 0x1 - VIRTIO_NET_HDR_GSO_UDP = 0x3 - VIRTIO_NET_HDR_GSO_TCPV6 = 0x4 - VIRTIO_NET_HDR_GSO_ECN = 0x80 + VIRTIO_NET_HDR_GSO_NONE = 0x0 + VIRTIO_NET_HDR_GSO_TCPV4 = 0x1 + VIRTIO_NET_HDR_GSO_UDP = 0x3 + VIRTIO_NET_HDR_GSO_TCPV6 = 0x4 + VIRTIO_NET_HDR_GSO_UDP_L4 = 0x5 + VIRTIO_NET_HDR_GSO_ECN = 0x80 ) + +type SchedAttr struct { + Size uint32 + Policy uint32 + Flags uint64 + Nice int32 + Priority uint32 + Runtime uint64 + Deadline uint64 + Period uint64 + Util_min uint32 + Util_max uint32 +} + +const SizeofSchedAttr = 0x38 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go index 4ecc1495cd0a..6d8acbcc5708 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -337,6 +337,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go index 34fddff964e9..59293c688412 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -350,6 +350,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go index 3b14a6031f3f..40cfa38c29f6 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -328,6 +328,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go index 0517651ab3f9..055bc4216d4b 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -329,6 +329,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go index 3b0c51813452..f28affbc6078 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go @@ -330,6 +330,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go index fccdf4dd0f46..9d71e7ccd8b0 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -333,6 +333,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go index 500de8fc07db..fd5ccd332a16 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -332,6 +332,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go index d0434cd2c6db..7704de77a2f6 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -332,6 +332,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go index 84206ba5347a..df00b87571ae 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -333,6 +333,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go index ab078cf1f51d..0942840db6ed 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go @@ -340,6 +340,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go index 42eb2c4cefd6..034874395081 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -339,6 +339,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go index 31304a4e8bb5..bad06704757b 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -339,6 +339,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go index c311f9612d88..83c69c119fa1 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -357,6 +357,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint64 @@ -716,3 +718,26 @@ type SysvShmDesc struct { _ uint64 _ uint64 } + +type RISCVHWProbePairs struct { + Key int64 + Value uint64 +} + +const ( + RISCV_HWPROBE_KEY_MVENDORID = 0x0 + RISCV_HWPROBE_KEY_MARCHID = 0x1 + RISCV_HWPROBE_KEY_MIMPID = 0x2 + RISCV_HWPROBE_KEY_BASE_BEHAVIOR = 0x3 + RISCV_HWPROBE_BASE_BEHAVIOR_IMA = 0x1 + RISCV_HWPROBE_KEY_IMA_EXT_0 = 0x4 + RISCV_HWPROBE_IMA_FD = 0x1 + RISCV_HWPROBE_IMA_C = 0x2 + RISCV_HWPROBE_KEY_CPUPERF_0 = 0x5 + RISCV_HWPROBE_MISALIGNED_UNKNOWN = 0x0 + RISCV_HWPROBE_MISALIGNED_EMULATED = 0x1 + RISCV_HWPROBE_MISALIGNED_SLOW = 0x2 + RISCV_HWPROBE_MISALIGNED_FAST = 0x3 + RISCV_HWPROBE_MISALIGNED_UNSUPPORTED = 0x4 + RISCV_HWPROBE_MISALIGNED_MASK = 0x7 +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go index bba3cefac1dd..aa268d025cf9 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -352,6 +352,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go index ad8a01380461..444045b6c585 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -334,6 +334,8 @@ type Taskstats struct { Ac_exe_inode uint64 Wpcopy_count uint64 Wpcopy_delay_total uint64 + Irq_count uint64 + Irq_delay_total uint64 } type cpuMask uint64 diff --git a/vendor/golang.org/x/sys/windows/aliases.go b/vendor/golang.org/x/sys/windows/aliases.go new file mode 100644 index 000000000000..a20ebea63312 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/aliases.go @@ -0,0 +1,13 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build windows && go1.9 +// +build windows,go1.9 + +package windows + +import "syscall" + +type Errno = syscall.Errno +type SysProcAttr = syscall.SysProcAttr diff --git a/vendor/golang.org/x/sys/windows/dll_windows.go b/vendor/golang.org/x/sys/windows/dll_windows.go new file mode 100644 index 000000000000..115341fba66d --- /dev/null +++ b/vendor/golang.org/x/sys/windows/dll_windows.go @@ -0,0 +1,416 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +import ( + "sync" + "sync/atomic" + "syscall" + "unsafe" +) + +// We need to use LoadLibrary and GetProcAddress from the Go runtime, because +// the these symbols are loaded by the system linker and are required to +// dynamically load additional symbols. Note that in the Go runtime, these +// return syscall.Handle and syscall.Errno, but these are the same, in fact, +// as windows.Handle and windows.Errno, and we intend to keep these the same. + +//go:linkname syscall_loadlibrary syscall.loadlibrary +func syscall_loadlibrary(filename *uint16) (handle Handle, err Errno) + +//go:linkname syscall_getprocaddress syscall.getprocaddress +func syscall_getprocaddress(handle Handle, procname *uint8) (proc uintptr, err Errno) + +// DLLError describes reasons for DLL load failures. +type DLLError struct { + Err error + ObjName string + Msg string +} + +func (e *DLLError) Error() string { return e.Msg } + +func (e *DLLError) Unwrap() error { return e.Err } + +// A DLL implements access to a single DLL. +type DLL struct { + Name string + Handle Handle +} + +// LoadDLL loads DLL file into memory. +// +// Warning: using LoadDLL without an absolute path name is subject to +// DLL preloading attacks. To safely load a system DLL, use LazyDLL +// with System set to true, or use LoadLibraryEx directly. +func LoadDLL(name string) (dll *DLL, err error) { + namep, err := UTF16PtrFromString(name) + if err != nil { + return nil, err + } + h, e := syscall_loadlibrary(namep) + if e != 0 { + return nil, &DLLError{ + Err: e, + ObjName: name, + Msg: "Failed to load " + name + ": " + e.Error(), + } + } + d := &DLL{ + Name: name, + Handle: h, + } + return d, nil +} + +// MustLoadDLL is like LoadDLL but panics if load operation failes. +func MustLoadDLL(name string) *DLL { + d, e := LoadDLL(name) + if e != nil { + panic(e) + } + return d +} + +// FindProc searches DLL d for procedure named name and returns *Proc +// if found. It returns an error if search fails. +func (d *DLL) FindProc(name string) (proc *Proc, err error) { + namep, err := BytePtrFromString(name) + if err != nil { + return nil, err + } + a, e := syscall_getprocaddress(d.Handle, namep) + if e != 0 { + return nil, &DLLError{ + Err: e, + ObjName: name, + Msg: "Failed to find " + name + " procedure in " + d.Name + ": " + e.Error(), + } + } + p := &Proc{ + Dll: d, + Name: name, + addr: a, + } + return p, nil +} + +// MustFindProc is like FindProc but panics if search fails. +func (d *DLL) MustFindProc(name string) *Proc { + p, e := d.FindProc(name) + if e != nil { + panic(e) + } + return p +} + +// FindProcByOrdinal searches DLL d for procedure by ordinal and returns *Proc +// if found. It returns an error if search fails. +func (d *DLL) FindProcByOrdinal(ordinal uintptr) (proc *Proc, err error) { + a, e := GetProcAddressByOrdinal(d.Handle, ordinal) + name := "#" + itoa(int(ordinal)) + if e != nil { + return nil, &DLLError{ + Err: e, + ObjName: name, + Msg: "Failed to find " + name + " procedure in " + d.Name + ": " + e.Error(), + } + } + p := &Proc{ + Dll: d, + Name: name, + addr: a, + } + return p, nil +} + +// MustFindProcByOrdinal is like FindProcByOrdinal but panics if search fails. +func (d *DLL) MustFindProcByOrdinal(ordinal uintptr) *Proc { + p, e := d.FindProcByOrdinal(ordinal) + if e != nil { + panic(e) + } + return p +} + +// Release unloads DLL d from memory. +func (d *DLL) Release() (err error) { + return FreeLibrary(d.Handle) +} + +// A Proc implements access to a procedure inside a DLL. +type Proc struct { + Dll *DLL + Name string + addr uintptr +} + +// Addr returns the address of the procedure represented by p. +// The return value can be passed to Syscall to run the procedure. +func (p *Proc) Addr() uintptr { + return p.addr +} + +//go:uintptrescapes + +// Call executes procedure p with arguments a. It will panic, if more than 15 arguments +// are supplied. +// +// The returned error is always non-nil, constructed from the result of GetLastError. +// Callers must inspect the primary return value to decide whether an error occurred +// (according to the semantics of the specific function being called) before consulting +// the error. The error will be guaranteed to contain windows.Errno. +func (p *Proc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { + switch len(a) { + case 0: + return syscall.Syscall(p.Addr(), uintptr(len(a)), 0, 0, 0) + case 1: + return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], 0, 0) + case 2: + return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], 0) + case 3: + return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], a[2]) + case 4: + return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], 0, 0) + case 5: + return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], 0) + case 6: + return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5]) + case 7: + return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], 0, 0) + case 8: + return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], 0) + case 9: + return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]) + case 10: + return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], 0, 0) + case 11: + return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], 0) + case 12: + return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]) + case 13: + return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], 0, 0) + case 14: + return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], 0) + case 15: + return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]) + default: + panic("Call " + p.Name + " with too many arguments " + itoa(len(a)) + ".") + } +} + +// A LazyDLL implements access to a single DLL. +// It will delay the load of the DLL until the first +// call to its Handle method or to one of its +// LazyProc's Addr method. +type LazyDLL struct { + Name string + + // System determines whether the DLL must be loaded from the + // Windows System directory, bypassing the normal DLL search + // path. + System bool + + mu sync.Mutex + dll *DLL // non nil once DLL is loaded +} + +// Load loads DLL file d.Name into memory. It returns an error if fails. +// Load will not try to load DLL, if it is already loaded into memory. +func (d *LazyDLL) Load() error { + // Non-racy version of: + // if d.dll != nil { + if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll))) != nil { + return nil + } + d.mu.Lock() + defer d.mu.Unlock() + if d.dll != nil { + return nil + } + + // kernel32.dll is special, since it's where LoadLibraryEx comes from. + // The kernel already special-cases its name, so it's always + // loaded from system32. + var dll *DLL + var err error + if d.Name == "kernel32.dll" { + dll, err = LoadDLL(d.Name) + } else { + dll, err = loadLibraryEx(d.Name, d.System) + } + if err != nil { + return err + } + + // Non-racy version of: + // d.dll = dll + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll)), unsafe.Pointer(dll)) + return nil +} + +// mustLoad is like Load but panics if search fails. +func (d *LazyDLL) mustLoad() { + e := d.Load() + if e != nil { + panic(e) + } +} + +// Handle returns d's module handle. +func (d *LazyDLL) Handle() uintptr { + d.mustLoad() + return uintptr(d.dll.Handle) +} + +// NewProc returns a LazyProc for accessing the named procedure in the DLL d. +func (d *LazyDLL) NewProc(name string) *LazyProc { + return &LazyProc{l: d, Name: name} +} + +// NewLazyDLL creates new LazyDLL associated with DLL file. +func NewLazyDLL(name string) *LazyDLL { + return &LazyDLL{Name: name} +} + +// NewLazySystemDLL is like NewLazyDLL, but will only +// search Windows System directory for the DLL if name is +// a base name (like "advapi32.dll"). +func NewLazySystemDLL(name string) *LazyDLL { + return &LazyDLL{Name: name, System: true} +} + +// A LazyProc implements access to a procedure inside a LazyDLL. +// It delays the lookup until the Addr method is called. +type LazyProc struct { + Name string + + mu sync.Mutex + l *LazyDLL + proc *Proc +} + +// Find searches DLL for procedure named p.Name. It returns +// an error if search fails. Find will not search procedure, +// if it is already found and loaded into memory. +func (p *LazyProc) Find() error { + // Non-racy version of: + // if p.proc == nil { + if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc))) == nil { + p.mu.Lock() + defer p.mu.Unlock() + if p.proc == nil { + e := p.l.Load() + if e != nil { + return e + } + proc, e := p.l.dll.FindProc(p.Name) + if e != nil { + return e + } + // Non-racy version of: + // p.proc = proc + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc)), unsafe.Pointer(proc)) + } + } + return nil +} + +// mustFind is like Find but panics if search fails. +func (p *LazyProc) mustFind() { + e := p.Find() + if e != nil { + panic(e) + } +} + +// Addr returns the address of the procedure represented by p. +// The return value can be passed to Syscall to run the procedure. +// It will panic if the procedure cannot be found. +func (p *LazyProc) Addr() uintptr { + p.mustFind() + return p.proc.Addr() +} + +//go:uintptrescapes + +// Call executes procedure p with arguments a. It will panic, if more than 15 arguments +// are supplied. It will also panic if the procedure cannot be found. +// +// The returned error is always non-nil, constructed from the result of GetLastError. +// Callers must inspect the primary return value to decide whether an error occurred +// (according to the semantics of the specific function being called) before consulting +// the error. The error will be guaranteed to contain windows.Errno. +func (p *LazyProc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { + p.mustFind() + return p.proc.Call(a...) +} + +var canDoSearchSystem32Once struct { + sync.Once + v bool +} + +func initCanDoSearchSystem32() { + // https://msdn.microsoft.com/en-us/library/ms684179(v=vs.85).aspx says: + // "Windows 7, Windows Server 2008 R2, Windows Vista, and Windows + // Server 2008: The LOAD_LIBRARY_SEARCH_* flags are available on + // systems that have KB2533623 installed. To determine whether the + // flags are available, use GetProcAddress to get the address of the + // AddDllDirectory, RemoveDllDirectory, or SetDefaultDllDirectories + // function. If GetProcAddress succeeds, the LOAD_LIBRARY_SEARCH_* + // flags can be used with LoadLibraryEx." + canDoSearchSystem32Once.v = (modkernel32.NewProc("AddDllDirectory").Find() == nil) +} + +func canDoSearchSystem32() bool { + canDoSearchSystem32Once.Do(initCanDoSearchSystem32) + return canDoSearchSystem32Once.v +} + +func isBaseName(name string) bool { + for _, c := range name { + if c == ':' || c == '/' || c == '\\' { + return false + } + } + return true +} + +// loadLibraryEx wraps the Windows LoadLibraryEx function. +// +// See https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx +// +// If name is not an absolute path, LoadLibraryEx searches for the DLL +// in a variety of automatic locations unless constrained by flags. +// See: https://msdn.microsoft.com/en-us/library/ff919712%28VS.85%29.aspx +func loadLibraryEx(name string, system bool) (*DLL, error) { + loadDLL := name + var flags uintptr + if system { + if canDoSearchSystem32() { + flags = LOAD_LIBRARY_SEARCH_SYSTEM32 + } else if isBaseName(name) { + // WindowsXP or unpatched Windows machine + // trying to load "foo.dll" out of the system + // folder, but LoadLibraryEx doesn't support + // that yet on their system, so emulate it. + systemdir, err := GetSystemDirectory() + if err != nil { + return nil, err + } + loadDLL = systemdir + "\\" + name + } + } + h, err := LoadLibraryEx(loadDLL, 0, flags) + if err != nil { + return nil, err + } + return &DLL{Name: name, Handle: h}, nil +} + +type errString string + +func (s errString) Error() string { return string(s) } diff --git a/vendor/golang.org/x/sys/windows/empty.s b/vendor/golang.org/x/sys/windows/empty.s new file mode 100644 index 000000000000..fdbbbcd31717 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/empty.s @@ -0,0 +1,9 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.12 +// +build !go1.12 + +// This file is here to allow bodyless functions with go:linkname for Go 1.11 +// and earlier (see https://golang.org/issue/23311). diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go new file mode 100644 index 000000000000..b8ad19250689 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/env_windows.go @@ -0,0 +1,54 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Windows environment variables. + +package windows + +import ( + "syscall" + "unsafe" +) + +func Getenv(key string) (value string, found bool) { + return syscall.Getenv(key) +} + +func Setenv(key, value string) error { + return syscall.Setenv(key, value) +} + +func Clearenv() { + syscall.Clearenv() +} + +func Environ() []string { + return syscall.Environ() +} + +// Returns a default environment associated with the token, rather than the current +// process. If inheritExisting is true, then this environment also inherits the +// environment of the current process. +func (token Token) Environ(inheritExisting bool) (env []string, err error) { + var block *uint16 + err = CreateEnvironmentBlock(&block, token, inheritExisting) + if err != nil { + return nil, err + } + defer DestroyEnvironmentBlock(block) + blockp := unsafe.Pointer(block) + for { + entry := UTF16PtrToString((*uint16)(blockp)) + if len(entry) == 0 { + break + } + env = append(env, entry) + blockp = unsafe.Add(blockp, 2*(len(entry)+1)) + } + return env, nil +} + +func Unsetenv(key string) error { + return syscall.Unsetenv(key) +} diff --git a/vendor/golang.org/x/sys/windows/eventlog.go b/vendor/golang.org/x/sys/windows/eventlog.go new file mode 100644 index 000000000000..2cd60645ee7d --- /dev/null +++ b/vendor/golang.org/x/sys/windows/eventlog.go @@ -0,0 +1,21 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build windows +// +build windows + +package windows + +const ( + EVENTLOG_SUCCESS = 0 + EVENTLOG_ERROR_TYPE = 1 + EVENTLOG_WARNING_TYPE = 2 + EVENTLOG_INFORMATION_TYPE = 4 + EVENTLOG_AUDIT_SUCCESS = 8 + EVENTLOG_AUDIT_FAILURE = 16 +) + +//sys RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW +//sys DeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource +//sys ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW diff --git a/vendor/golang.org/x/sys/windows/exec_windows.go b/vendor/golang.org/x/sys/windows/exec_windows.go new file mode 100644 index 000000000000..a52e0331d8bc --- /dev/null +++ b/vendor/golang.org/x/sys/windows/exec_windows.go @@ -0,0 +1,183 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Fork, exec, wait, etc. + +package windows + +import ( + errorspkg "errors" + "unsafe" +) + +// EscapeArg rewrites command line argument s as prescribed +// in http://msdn.microsoft.com/en-us/library/ms880421. +// This function returns "" (2 double quotes) if s is empty. +// Alternatively, these transformations are done: +// - every back slash (\) is doubled, but only if immediately +// followed by double quote ("); +// - every double quote (") is escaped by back slash (\); +// - finally, s is wrapped with double quotes (arg -> "arg"), +// but only if there is space or tab inside s. +func EscapeArg(s string) string { + if len(s) == 0 { + return "\"\"" + } + n := len(s) + hasSpace := false + for i := 0; i < len(s); i++ { + switch s[i] { + case '"', '\\': + n++ + case ' ', '\t': + hasSpace = true + } + } + if hasSpace { + n += 2 + } + if n == len(s) { + return s + } + + qs := make([]byte, n) + j := 0 + if hasSpace { + qs[j] = '"' + j++ + } + slashes := 0 + for i := 0; i < len(s); i++ { + switch s[i] { + default: + slashes = 0 + qs[j] = s[i] + case '\\': + slashes++ + qs[j] = s[i] + case '"': + for ; slashes > 0; slashes-- { + qs[j] = '\\' + j++ + } + qs[j] = '\\' + j++ + qs[j] = s[i] + } + j++ + } + if hasSpace { + for ; slashes > 0; slashes-- { + qs[j] = '\\' + j++ + } + qs[j] = '"' + j++ + } + return string(qs[:j]) +} + +// ComposeCommandLine escapes and joins the given arguments suitable for use as a Windows command line, +// in CreateProcess's CommandLine argument, CreateService/ChangeServiceConfig's BinaryPathName argument, +// or any program that uses CommandLineToArgv. +func ComposeCommandLine(args []string) string { + var commandLine string + for i := range args { + if i > 0 { + commandLine += " " + } + commandLine += EscapeArg(args[i]) + } + return commandLine +} + +// DecomposeCommandLine breaks apart its argument command line into unescaped parts using CommandLineToArgv, +// as gathered from GetCommandLine, QUERY_SERVICE_CONFIG's BinaryPathName argument, or elsewhere that +// command lines are passed around. +// DecomposeCommandLine returns error if commandLine contains NUL. +func DecomposeCommandLine(commandLine string) ([]string, error) { + if len(commandLine) == 0 { + return []string{}, nil + } + utf16CommandLine, err := UTF16FromString(commandLine) + if err != nil { + return nil, errorspkg.New("string with NUL passed to DecomposeCommandLine") + } + var argc int32 + argv, err := CommandLineToArgv(&utf16CommandLine[0], &argc) + if err != nil { + return nil, err + } + defer LocalFree(Handle(unsafe.Pointer(argv))) + var args []string + for _, v := range (*argv)[:argc] { + args = append(args, UTF16ToString((*v)[:])) + } + return args, nil +} + +func CloseOnExec(fd Handle) { + SetHandleInformation(Handle(fd), HANDLE_FLAG_INHERIT, 0) +} + +// FullPath retrieves the full path of the specified file. +func FullPath(name string) (path string, err error) { + p, err := UTF16PtrFromString(name) + if err != nil { + return "", err + } + n := uint32(100) + for { + buf := make([]uint16, n) + n, err = GetFullPathName(p, uint32(len(buf)), &buf[0], nil) + if err != nil { + return "", err + } + if n <= uint32(len(buf)) { + return UTF16ToString(buf[:n]), nil + } + } +} + +// NewProcThreadAttributeList allocates a new ProcThreadAttributeListContainer, with the requested maximum number of attributes. +func NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeListContainer, error) { + var size uintptr + err := initializeProcThreadAttributeList(nil, maxAttrCount, 0, &size) + if err != ERROR_INSUFFICIENT_BUFFER { + if err == nil { + return nil, errorspkg.New("unable to query buffer size from InitializeProcThreadAttributeList") + } + return nil, err + } + alloc, err := LocalAlloc(LMEM_FIXED, uint32(size)) + if err != nil { + return nil, err + } + // size is guaranteed to be ≥1 by InitializeProcThreadAttributeList. + al := &ProcThreadAttributeListContainer{data: (*ProcThreadAttributeList)(unsafe.Pointer(alloc))} + err = initializeProcThreadAttributeList(al.data, maxAttrCount, 0, &size) + if err != nil { + return nil, err + } + return al, err +} + +// Update modifies the ProcThreadAttributeList using UpdateProcThreadAttribute. +func (al *ProcThreadAttributeListContainer) Update(attribute uintptr, value unsafe.Pointer, size uintptr) error { + al.pointers = append(al.pointers, value) + return updateProcThreadAttribute(al.data, 0, attribute, value, size, nil, nil) +} + +// Delete frees ProcThreadAttributeList's resources. +func (al *ProcThreadAttributeListContainer) Delete() { + deleteProcThreadAttributeList(al.data) + LocalFree(Handle(unsafe.Pointer(al.data))) + al.data = nil + al.pointers = nil +} + +// List returns the actual ProcThreadAttributeList to be passed to StartupInfoEx. +func (al *ProcThreadAttributeListContainer) List() *ProcThreadAttributeList { + return al.data +} diff --git a/vendor/golang.org/x/sys/windows/memory_windows.go b/vendor/golang.org/x/sys/windows/memory_windows.go new file mode 100644 index 000000000000..6dc0920a84da --- /dev/null +++ b/vendor/golang.org/x/sys/windows/memory_windows.go @@ -0,0 +1,48 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +const ( + MEM_COMMIT = 0x00001000 + MEM_RESERVE = 0x00002000 + MEM_DECOMMIT = 0x00004000 + MEM_RELEASE = 0x00008000 + MEM_RESET = 0x00080000 + MEM_TOP_DOWN = 0x00100000 + MEM_WRITE_WATCH = 0x00200000 + MEM_PHYSICAL = 0x00400000 + MEM_RESET_UNDO = 0x01000000 + MEM_LARGE_PAGES = 0x20000000 + + PAGE_NOACCESS = 0x00000001 + PAGE_READONLY = 0x00000002 + PAGE_READWRITE = 0x00000004 + PAGE_WRITECOPY = 0x00000008 + PAGE_EXECUTE = 0x00000010 + PAGE_EXECUTE_READ = 0x00000020 + PAGE_EXECUTE_READWRITE = 0x00000040 + PAGE_EXECUTE_WRITECOPY = 0x00000080 + PAGE_GUARD = 0x00000100 + PAGE_NOCACHE = 0x00000200 + PAGE_WRITECOMBINE = 0x00000400 + PAGE_TARGETS_INVALID = 0x40000000 + PAGE_TARGETS_NO_UPDATE = 0x40000000 + + QUOTA_LIMITS_HARDWS_MIN_DISABLE = 0x00000002 + QUOTA_LIMITS_HARDWS_MIN_ENABLE = 0x00000001 + QUOTA_LIMITS_HARDWS_MAX_DISABLE = 0x00000008 + QUOTA_LIMITS_HARDWS_MAX_ENABLE = 0x00000004 +) + +type MemoryBasicInformation struct { + BaseAddress uintptr + AllocationBase uintptr + AllocationProtect uint32 + PartitionId uint16 + RegionSize uintptr + State uint32 + Protect uint32 + Type uint32 +} diff --git a/vendor/golang.org/x/sys/windows/mkerrors.bash b/vendor/golang.org/x/sys/windows/mkerrors.bash new file mode 100644 index 000000000000..58e0188fb71f --- /dev/null +++ b/vendor/golang.org/x/sys/windows/mkerrors.bash @@ -0,0 +1,70 @@ +#!/bin/bash + +# Copyright 2019 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +set -e +shopt -s nullglob + +winerror="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/shared/winerror.h | sort -Vr | head -n 1)" +[[ -n $winerror ]] || { echo "Unable to find winerror.h" >&2; exit 1; } +ntstatus="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/shared/ntstatus.h | sort -Vr | head -n 1)" +[[ -n $ntstatus ]] || { echo "Unable to find ntstatus.h" >&2; exit 1; } + +declare -A errors + +{ + echo "// Code generated by 'mkerrors.bash'; DO NOT EDIT." + echo + echo "package windows" + echo "import \"syscall\"" + echo "const (" + + while read -r line; do + unset vtype + if [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?([A-Z][A-Z0-9_]+k?)\)? ]]; then + key="${BASH_REMATCH[1]}" + value="${BASH_REMATCH[3]}" + elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?((0x)?[0-9A-Fa-f]+)L?\)? ]]; then + key="${BASH_REMATCH[1]}" + value="${BASH_REMATCH[3]}" + vtype="${BASH_REMATCH[2]}" + elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +\(\(([A-Z]+)\)((0x)?[0-9A-Fa-f]+)L?\) ]]; then + key="${BASH_REMATCH[1]}" + value="${BASH_REMATCH[3]}" + vtype="${BASH_REMATCH[2]}" + else + continue + fi + [[ -n $key && -n $value ]] || continue + [[ -z ${errors["$key"]} ]] || continue + errors["$key"]="$value" + if [[ -v vtype ]]; then + if [[ $key == FACILITY_* || $key == NO_ERROR ]]; then + vtype="" + elif [[ $vtype == *HANDLE* || $vtype == *HRESULT* ]]; then + vtype="Handle" + else + vtype="syscall.Errno" + fi + last_vtype="$vtype" + else + vtype="" + if [[ $last_vtype == Handle && $value == NO_ERROR ]]; then + value="S_OK" + elif [[ $last_vtype == syscall.Errno && $value == NO_ERROR ]]; then + value="ERROR_SUCCESS" + fi + fi + + echo "$key $vtype = $value" + done < "$winerror" + + while read -r line; do + [[ $line =~ ^#define\ (STATUS_[^\s]+)\ +\(\(NTSTATUS\)((0x)?[0-9a-fA-F]+)L?\) ]] || continue + echo "${BASH_REMATCH[1]} NTStatus = ${BASH_REMATCH[2]}" + done < "$ntstatus" + + echo ")" +} | gofmt > "zerrors_windows.go" diff --git a/vendor/golang.org/x/sys/windows/mkknownfolderids.bash b/vendor/golang.org/x/sys/windows/mkknownfolderids.bash new file mode 100644 index 000000000000..ab8924e936f5 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/mkknownfolderids.bash @@ -0,0 +1,27 @@ +#!/bin/bash + +# Copyright 2019 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +set -e +shopt -s nullglob + +knownfolders="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/um/KnownFolders.h | sort -Vr | head -n 1)" +[[ -n $knownfolders ]] || { echo "Unable to find KnownFolders.h" >&2; exit 1; } + +{ + echo "// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT." + echo + echo "package windows" + echo "type KNOWNFOLDERID GUID" + echo "var (" + while read -r line; do + [[ $line =~ DEFINE_KNOWN_FOLDER\((FOLDERID_[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+),[\t\ ]*(0x[^,]+)\) ]] || continue + printf "%s = &KNOWNFOLDERID{0x%08x, 0x%04x, 0x%04x, [8]byte{0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x}}\n" \ + "${BASH_REMATCH[1]}" $(( "${BASH_REMATCH[2]}" )) $(( "${BASH_REMATCH[3]}" )) $(( "${BASH_REMATCH[4]}" )) \ + $(( "${BASH_REMATCH[5]}" )) $(( "${BASH_REMATCH[6]}" )) $(( "${BASH_REMATCH[7]}" )) $(( "${BASH_REMATCH[8]}" )) \ + $(( "${BASH_REMATCH[9]}" )) $(( "${BASH_REMATCH[10]}" )) $(( "${BASH_REMATCH[11]}" )) $(( "${BASH_REMATCH[12]}" )) + done < "$knownfolders" + echo ")" +} | gofmt > "zknownfolderids_windows.go" diff --git a/vendor/golang.org/x/sys/windows/mksyscall.go b/vendor/golang.org/x/sys/windows/mksyscall.go new file mode 100644 index 000000000000..8563f79c57f8 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/mksyscall.go @@ -0,0 +1,10 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build generate +// +build generate + +package windows + +//go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go setupapi_windows.go diff --git a/vendor/golang.org/x/sys/windows/race.go b/vendor/golang.org/x/sys/windows/race.go new file mode 100644 index 000000000000..9196b089ca14 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/race.go @@ -0,0 +1,31 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build windows && race +// +build windows,race + +package windows + +import ( + "runtime" + "unsafe" +) + +const raceenabled = true + +func raceAcquire(addr unsafe.Pointer) { + runtime.RaceAcquire(addr) +} + +func raceReleaseMerge(addr unsafe.Pointer) { + runtime.RaceReleaseMerge(addr) +} + +func raceReadRange(addr unsafe.Pointer, len int) { + runtime.RaceReadRange(addr, len) +} + +func raceWriteRange(addr unsafe.Pointer, len int) { + runtime.RaceWriteRange(addr, len) +} diff --git a/vendor/golang.org/x/sys/windows/race0.go b/vendor/golang.org/x/sys/windows/race0.go new file mode 100644 index 000000000000..7bae4817a06c --- /dev/null +++ b/vendor/golang.org/x/sys/windows/race0.go @@ -0,0 +1,26 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build windows && !race +// +build windows,!race + +package windows + +import ( + "unsafe" +) + +const raceenabled = false + +func raceAcquire(addr unsafe.Pointer) { +} + +func raceReleaseMerge(addr unsafe.Pointer) { +} + +func raceReadRange(addr unsafe.Pointer, len int) { +} + +func raceWriteRange(addr unsafe.Pointer, len int) { +} diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go new file mode 100644 index 000000000000..d414ef13bef0 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/security_windows.go @@ -0,0 +1,1444 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +import ( + "syscall" + "unsafe" + + "golang.org/x/sys/internal/unsafeheader" +) + +const ( + NameUnknown = 0 + NameFullyQualifiedDN = 1 + NameSamCompatible = 2 + NameDisplay = 3 + NameUniqueId = 6 + NameCanonical = 7 + NameUserPrincipal = 8 + NameCanonicalEx = 9 + NameServicePrincipal = 10 + NameDnsDomain = 12 +) + +// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. +// http://blogs.msdn.com/b/drnick/archive/2007/12/19/windows-and-upn-format-credentials.aspx +//sys TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.TranslateNameW +//sys GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.GetUserNameExW + +// TranslateAccountName converts a directory service +// object name from one format to another. +func TranslateAccountName(username string, from, to uint32, initSize int) (string, error) { + u, e := UTF16PtrFromString(username) + if e != nil { + return "", e + } + n := uint32(50) + for { + b := make([]uint16, n) + e = TranslateName(u, from, to, &b[0], &n) + if e == nil { + return UTF16ToString(b[:n]), nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return "", e + } + if n <= uint32(len(b)) { + return "", e + } + } +} + +const ( + // do not reorder + NetSetupUnknownStatus = iota + NetSetupUnjoined + NetSetupWorkgroupName + NetSetupDomainName +) + +type UserInfo10 struct { + Name *uint16 + Comment *uint16 + UsrComment *uint16 + FullName *uint16 +} + +//sys NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo +//sys NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation +//sys NetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree + +const ( + // do not reorder + SidTypeUser = 1 + iota + SidTypeGroup + SidTypeDomain + SidTypeAlias + SidTypeWellKnownGroup + SidTypeDeletedAccount + SidTypeInvalid + SidTypeUnknown + SidTypeComputer + SidTypeLabel +) + +type SidIdentifierAuthority struct { + Value [6]byte +} + +var ( + SECURITY_NULL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 0}} + SECURITY_WORLD_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 1}} + SECURITY_LOCAL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 2}} + SECURITY_CREATOR_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 3}} + SECURITY_NON_UNIQUE_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 4}} + SECURITY_NT_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 5}} + SECURITY_MANDATORY_LABEL_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 16}} +) + +const ( + SECURITY_NULL_RID = 0 + SECURITY_WORLD_RID = 0 + SECURITY_LOCAL_RID = 0 + SECURITY_CREATOR_OWNER_RID = 0 + SECURITY_CREATOR_GROUP_RID = 1 + SECURITY_DIALUP_RID = 1 + SECURITY_NETWORK_RID = 2 + SECURITY_BATCH_RID = 3 + SECURITY_INTERACTIVE_RID = 4 + SECURITY_LOGON_IDS_RID = 5 + SECURITY_SERVICE_RID = 6 + SECURITY_LOCAL_SYSTEM_RID = 18 + SECURITY_BUILTIN_DOMAIN_RID = 32 + SECURITY_PRINCIPAL_SELF_RID = 10 + SECURITY_CREATOR_OWNER_SERVER_RID = 0x2 + SECURITY_CREATOR_GROUP_SERVER_RID = 0x3 + SECURITY_LOGON_IDS_RID_COUNT = 0x3 + SECURITY_ANONYMOUS_LOGON_RID = 0x7 + SECURITY_PROXY_RID = 0x8 + SECURITY_ENTERPRISE_CONTROLLERS_RID = 0x9 + SECURITY_SERVER_LOGON_RID = SECURITY_ENTERPRISE_CONTROLLERS_RID + SECURITY_AUTHENTICATED_USER_RID = 0xb + SECURITY_RESTRICTED_CODE_RID = 0xc + SECURITY_NT_NON_UNIQUE_RID = 0x15 +) + +// Predefined domain-relative RIDs for local groups. +// See https://msdn.microsoft.com/en-us/library/windows/desktop/aa379649(v=vs.85).aspx +const ( + DOMAIN_ALIAS_RID_ADMINS = 0x220 + DOMAIN_ALIAS_RID_USERS = 0x221 + DOMAIN_ALIAS_RID_GUESTS = 0x222 + DOMAIN_ALIAS_RID_POWER_USERS = 0x223 + DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x224 + DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x225 + DOMAIN_ALIAS_RID_PRINT_OPS = 0x226 + DOMAIN_ALIAS_RID_BACKUP_OPS = 0x227 + DOMAIN_ALIAS_RID_REPLICATOR = 0x228 + DOMAIN_ALIAS_RID_RAS_SERVERS = 0x229 + DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 0x22a + DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x22b + DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x22c + DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 0x22d + DOMAIN_ALIAS_RID_MONITORING_USERS = 0x22e + DOMAIN_ALIAS_RID_LOGGING_USERS = 0x22f + DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS = 0x230 + DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS = 0x231 + DOMAIN_ALIAS_RID_DCOM_USERS = 0x232 + DOMAIN_ALIAS_RID_IUSERS = 0x238 + DOMAIN_ALIAS_RID_CRYPTO_OPERATORS = 0x239 + DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP = 0x23b + DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP = 0x23c + DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP = 0x23d + DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP = 0x23e +) + +//sys LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountSidW +//sys LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountNameW +//sys ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) = advapi32.ConvertSidToStringSidW +//sys ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) = advapi32.ConvertStringSidToSidW +//sys GetLengthSid(sid *SID) (len uint32) = advapi32.GetLengthSid +//sys CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) = advapi32.CopySid +//sys AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) = advapi32.AllocateAndInitializeSid +//sys createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) = advapi32.CreateWellKnownSid +//sys isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) = advapi32.IsWellKnownSid +//sys FreeSid(sid *SID) (err error) [failretval!=0] = advapi32.FreeSid +//sys EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) = advapi32.EqualSid +//sys getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) = advapi32.GetSidIdentifierAuthority +//sys getSidSubAuthorityCount(sid *SID) (count *uint8) = advapi32.GetSidSubAuthorityCount +//sys getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) = advapi32.GetSidSubAuthority +//sys isValidSid(sid *SID) (isValid bool) = advapi32.IsValidSid + +// The security identifier (SID) structure is a variable-length +// structure used to uniquely identify users or groups. +type SID struct{} + +// StringToSid converts a string-format security identifier +// SID into a valid, functional SID. +func StringToSid(s string) (*SID, error) { + var sid *SID + p, e := UTF16PtrFromString(s) + if e != nil { + return nil, e + } + e = ConvertStringSidToSid(p, &sid) + if e != nil { + return nil, e + } + defer LocalFree((Handle)(unsafe.Pointer(sid))) + return sid.Copy() +} + +// LookupSID retrieves a security identifier SID for the account +// and the name of the domain on which the account was found. +// System specify target computer to search. +func LookupSID(system, account string) (sid *SID, domain string, accType uint32, err error) { + if len(account) == 0 { + return nil, "", 0, syscall.EINVAL + } + acc, e := UTF16PtrFromString(account) + if e != nil { + return nil, "", 0, e + } + var sys *uint16 + if len(system) > 0 { + sys, e = UTF16PtrFromString(system) + if e != nil { + return nil, "", 0, e + } + } + n := uint32(50) + dn := uint32(50) + for { + b := make([]byte, n) + db := make([]uint16, dn) + sid = (*SID)(unsafe.Pointer(&b[0])) + e = LookupAccountName(sys, acc, sid, &n, &db[0], &dn, &accType) + if e == nil { + return sid, UTF16ToString(db), accType, nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return nil, "", 0, e + } + if n <= uint32(len(b)) { + return nil, "", 0, e + } + } +} + +// String converts SID to a string format suitable for display, storage, or transmission. +func (sid *SID) String() string { + var s *uint16 + e := ConvertSidToStringSid(sid, &s) + if e != nil { + return "" + } + defer LocalFree((Handle)(unsafe.Pointer(s))) + return UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:]) +} + +// Len returns the length, in bytes, of a valid security identifier SID. +func (sid *SID) Len() int { + return int(GetLengthSid(sid)) +} + +// Copy creates a duplicate of security identifier SID. +func (sid *SID) Copy() (*SID, error) { + b := make([]byte, sid.Len()) + sid2 := (*SID)(unsafe.Pointer(&b[0])) + e := CopySid(uint32(len(b)), sid2, sid) + if e != nil { + return nil, e + } + return sid2, nil +} + +// IdentifierAuthority returns the identifier authority of the SID. +func (sid *SID) IdentifierAuthority() SidIdentifierAuthority { + return *getSidIdentifierAuthority(sid) +} + +// SubAuthorityCount returns the number of sub-authorities in the SID. +func (sid *SID) SubAuthorityCount() uint8 { + return *getSidSubAuthorityCount(sid) +} + +// SubAuthority returns the sub-authority of the SID as specified by +// the index, which must be less than sid.SubAuthorityCount(). +func (sid *SID) SubAuthority(idx uint32) uint32 { + if idx >= uint32(sid.SubAuthorityCount()) { + panic("sub-authority index out of range") + } + return *getSidSubAuthority(sid, idx) +} + +// IsValid returns whether the SID has a valid revision and length. +func (sid *SID) IsValid() bool { + return isValidSid(sid) +} + +// Equals compares two SIDs for equality. +func (sid *SID) Equals(sid2 *SID) bool { + return EqualSid(sid, sid2) +} + +// IsWellKnown determines whether the SID matches the well-known sidType. +func (sid *SID) IsWellKnown(sidType WELL_KNOWN_SID_TYPE) bool { + return isWellKnownSid(sid, sidType) +} + +// LookupAccount retrieves the name of the account for this SID +// and the name of the first domain on which this SID is found. +// System specify target computer to search for. +func (sid *SID) LookupAccount(system string) (account, domain string, accType uint32, err error) { + var sys *uint16 + if len(system) > 0 { + sys, err = UTF16PtrFromString(system) + if err != nil { + return "", "", 0, err + } + } + n := uint32(50) + dn := uint32(50) + for { + b := make([]uint16, n) + db := make([]uint16, dn) + e := LookupAccountSid(sys, sid, &b[0], &n, &db[0], &dn, &accType) + if e == nil { + return UTF16ToString(b), UTF16ToString(db), accType, nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return "", "", 0, e + } + if n <= uint32(len(b)) { + return "", "", 0, e + } + } +} + +// Various types of pre-specified SIDs that can be synthesized and compared at runtime. +type WELL_KNOWN_SID_TYPE uint32 + +const ( + WinNullSid = 0 + WinWorldSid = 1 + WinLocalSid = 2 + WinCreatorOwnerSid = 3 + WinCreatorGroupSid = 4 + WinCreatorOwnerServerSid = 5 + WinCreatorGroupServerSid = 6 + WinNtAuthoritySid = 7 + WinDialupSid = 8 + WinNetworkSid = 9 + WinBatchSid = 10 + WinInteractiveSid = 11 + WinServiceSid = 12 + WinAnonymousSid = 13 + WinProxySid = 14 + WinEnterpriseControllersSid = 15 + WinSelfSid = 16 + WinAuthenticatedUserSid = 17 + WinRestrictedCodeSid = 18 + WinTerminalServerSid = 19 + WinRemoteLogonIdSid = 20 + WinLogonIdsSid = 21 + WinLocalSystemSid = 22 + WinLocalServiceSid = 23 + WinNetworkServiceSid = 24 + WinBuiltinDomainSid = 25 + WinBuiltinAdministratorsSid = 26 + WinBuiltinUsersSid = 27 + WinBuiltinGuestsSid = 28 + WinBuiltinPowerUsersSid = 29 + WinBuiltinAccountOperatorsSid = 30 + WinBuiltinSystemOperatorsSid = 31 + WinBuiltinPrintOperatorsSid = 32 + WinBuiltinBackupOperatorsSid = 33 + WinBuiltinReplicatorSid = 34 + WinBuiltinPreWindows2000CompatibleAccessSid = 35 + WinBuiltinRemoteDesktopUsersSid = 36 + WinBuiltinNetworkConfigurationOperatorsSid = 37 + WinAccountAdministratorSid = 38 + WinAccountGuestSid = 39 + WinAccountKrbtgtSid = 40 + WinAccountDomainAdminsSid = 41 + WinAccountDomainUsersSid = 42 + WinAccountDomainGuestsSid = 43 + WinAccountComputersSid = 44 + WinAccountControllersSid = 45 + WinAccountCertAdminsSid = 46 + WinAccountSchemaAdminsSid = 47 + WinAccountEnterpriseAdminsSid = 48 + WinAccountPolicyAdminsSid = 49 + WinAccountRasAndIasServersSid = 50 + WinNTLMAuthenticationSid = 51 + WinDigestAuthenticationSid = 52 + WinSChannelAuthenticationSid = 53 + WinThisOrganizationSid = 54 + WinOtherOrganizationSid = 55 + WinBuiltinIncomingForestTrustBuildersSid = 56 + WinBuiltinPerfMonitoringUsersSid = 57 + WinBuiltinPerfLoggingUsersSid = 58 + WinBuiltinAuthorizationAccessSid = 59 + WinBuiltinTerminalServerLicenseServersSid = 60 + WinBuiltinDCOMUsersSid = 61 + WinBuiltinIUsersSid = 62 + WinIUserSid = 63 + WinBuiltinCryptoOperatorsSid = 64 + WinUntrustedLabelSid = 65 + WinLowLabelSid = 66 + WinMediumLabelSid = 67 + WinHighLabelSid = 68 + WinSystemLabelSid = 69 + WinWriteRestrictedCodeSid = 70 + WinCreatorOwnerRightsSid = 71 + WinCacheablePrincipalsGroupSid = 72 + WinNonCacheablePrincipalsGroupSid = 73 + WinEnterpriseReadonlyControllersSid = 74 + WinAccountReadonlyControllersSid = 75 + WinBuiltinEventLogReadersGroup = 76 + WinNewEnterpriseReadonlyControllersSid = 77 + WinBuiltinCertSvcDComAccessGroup = 78 + WinMediumPlusLabelSid = 79 + WinLocalLogonSid = 80 + WinConsoleLogonSid = 81 + WinThisOrganizationCertificateSid = 82 + WinApplicationPackageAuthoritySid = 83 + WinBuiltinAnyPackageSid = 84 + WinCapabilityInternetClientSid = 85 + WinCapabilityInternetClientServerSid = 86 + WinCapabilityPrivateNetworkClientServerSid = 87 + WinCapabilityPicturesLibrarySid = 88 + WinCapabilityVideosLibrarySid = 89 + WinCapabilityMusicLibrarySid = 90 + WinCapabilityDocumentsLibrarySid = 91 + WinCapabilitySharedUserCertificatesSid = 92 + WinCapabilityEnterpriseAuthenticationSid = 93 + WinCapabilityRemovableStorageSid = 94 + WinBuiltinRDSRemoteAccessServersSid = 95 + WinBuiltinRDSEndpointServersSid = 96 + WinBuiltinRDSManagementServersSid = 97 + WinUserModeDriversSid = 98 + WinBuiltinHyperVAdminsSid = 99 + WinAccountCloneableControllersSid = 100 + WinBuiltinAccessControlAssistanceOperatorsSid = 101 + WinBuiltinRemoteManagementUsersSid = 102 + WinAuthenticationAuthorityAssertedSid = 103 + WinAuthenticationServiceAssertedSid = 104 + WinLocalAccountSid = 105 + WinLocalAccountAndAdministratorSid = 106 + WinAccountProtectedUsersSid = 107 + WinCapabilityAppointmentsSid = 108 + WinCapabilityContactsSid = 109 + WinAccountDefaultSystemManagedSid = 110 + WinBuiltinDefaultSystemManagedGroupSid = 111 + WinBuiltinStorageReplicaAdminsSid = 112 + WinAccountKeyAdminsSid = 113 + WinAccountEnterpriseKeyAdminsSid = 114 + WinAuthenticationKeyTrustSid = 115 + WinAuthenticationKeyPropertyMFASid = 116 + WinAuthenticationKeyPropertyAttestationSid = 117 + WinAuthenticationFreshKeyAuthSid = 118 + WinBuiltinDeviceOwnersSid = 119 +) + +// Creates a SID for a well-known predefined alias, generally using the constants of the form +// Win*Sid, for the local machine. +func CreateWellKnownSid(sidType WELL_KNOWN_SID_TYPE) (*SID, error) { + return CreateWellKnownDomainSid(sidType, nil) +} + +// Creates a SID for a well-known predefined alias, generally using the constants of the form +// Win*Sid, for the domain specified by the domainSid parameter. +func CreateWellKnownDomainSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID) (*SID, error) { + n := uint32(50) + for { + b := make([]byte, n) + sid := (*SID)(unsafe.Pointer(&b[0])) + err := createWellKnownSid(sidType, domainSid, sid, &n) + if err == nil { + return sid, nil + } + if err != ERROR_INSUFFICIENT_BUFFER { + return nil, err + } + if n <= uint32(len(b)) { + return nil, err + } + } +} + +const ( + // do not reorder + TOKEN_ASSIGN_PRIMARY = 1 << iota + TOKEN_DUPLICATE + TOKEN_IMPERSONATE + TOKEN_QUERY + TOKEN_QUERY_SOURCE + TOKEN_ADJUST_PRIVILEGES + TOKEN_ADJUST_GROUPS + TOKEN_ADJUST_DEFAULT + TOKEN_ADJUST_SESSIONID + + TOKEN_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | + TOKEN_ASSIGN_PRIMARY | + TOKEN_DUPLICATE | + TOKEN_IMPERSONATE | + TOKEN_QUERY | + TOKEN_QUERY_SOURCE | + TOKEN_ADJUST_PRIVILEGES | + TOKEN_ADJUST_GROUPS | + TOKEN_ADJUST_DEFAULT | + TOKEN_ADJUST_SESSIONID + TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY + TOKEN_WRITE = STANDARD_RIGHTS_WRITE | + TOKEN_ADJUST_PRIVILEGES | + TOKEN_ADJUST_GROUPS | + TOKEN_ADJUST_DEFAULT + TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE +) + +const ( + // do not reorder + TokenUser = 1 + iota + TokenGroups + TokenPrivileges + TokenOwner + TokenPrimaryGroup + TokenDefaultDacl + TokenSource + TokenType + TokenImpersonationLevel + TokenStatistics + TokenRestrictedSids + TokenSessionId + TokenGroupsAndPrivileges + TokenSessionReference + TokenSandBoxInert + TokenAuditPolicy + TokenOrigin + TokenElevationType + TokenLinkedToken + TokenElevation + TokenHasRestrictions + TokenAccessInformation + TokenVirtualizationAllowed + TokenVirtualizationEnabled + TokenIntegrityLevel + TokenUIAccess + TokenMandatoryPolicy + TokenLogonSid + MaxTokenInfoClass +) + +// Group attributes inside of Tokengroups.Groups[i].Attributes +const ( + SE_GROUP_MANDATORY = 0x00000001 + SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002 + SE_GROUP_ENABLED = 0x00000004 + SE_GROUP_OWNER = 0x00000008 + SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010 + SE_GROUP_INTEGRITY = 0x00000020 + SE_GROUP_INTEGRITY_ENABLED = 0x00000040 + SE_GROUP_LOGON_ID = 0xC0000000 + SE_GROUP_RESOURCE = 0x20000000 + SE_GROUP_VALID_ATTRIBUTES = SE_GROUP_MANDATORY | SE_GROUP_ENABLED_BY_DEFAULT | SE_GROUP_ENABLED | SE_GROUP_OWNER | SE_GROUP_USE_FOR_DENY_ONLY | SE_GROUP_LOGON_ID | SE_GROUP_RESOURCE | SE_GROUP_INTEGRITY | SE_GROUP_INTEGRITY_ENABLED +) + +// Privilege attributes +const ( + SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001 + SE_PRIVILEGE_ENABLED = 0x00000002 + SE_PRIVILEGE_REMOVED = 0x00000004 + SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000 + SE_PRIVILEGE_VALID_ATTRIBUTES = SE_PRIVILEGE_ENABLED_BY_DEFAULT | SE_PRIVILEGE_ENABLED | SE_PRIVILEGE_REMOVED | SE_PRIVILEGE_USED_FOR_ACCESS +) + +// Token types +const ( + TokenPrimary = 1 + TokenImpersonation = 2 +) + +// Impersonation levels +const ( + SecurityAnonymous = 0 + SecurityIdentification = 1 + SecurityImpersonation = 2 + SecurityDelegation = 3 +) + +type LUID struct { + LowPart uint32 + HighPart int32 +} + +type LUIDAndAttributes struct { + Luid LUID + Attributes uint32 +} + +type SIDAndAttributes struct { + Sid *SID + Attributes uint32 +} + +type Tokenuser struct { + User SIDAndAttributes +} + +type Tokenprimarygroup struct { + PrimaryGroup *SID +} + +type Tokengroups struct { + GroupCount uint32 + Groups [1]SIDAndAttributes // Use AllGroups() for iterating. +} + +// AllGroups returns a slice that can be used to iterate over the groups in g. +func (g *Tokengroups) AllGroups() []SIDAndAttributes { + return (*[(1 << 28) - 1]SIDAndAttributes)(unsafe.Pointer(&g.Groups[0]))[:g.GroupCount:g.GroupCount] +} + +type Tokenprivileges struct { + PrivilegeCount uint32 + Privileges [1]LUIDAndAttributes // Use AllPrivileges() for iterating. +} + +// AllPrivileges returns a slice that can be used to iterate over the privileges in p. +func (p *Tokenprivileges) AllPrivileges() []LUIDAndAttributes { + return (*[(1 << 27) - 1]LUIDAndAttributes)(unsafe.Pointer(&p.Privileges[0]))[:p.PrivilegeCount:p.PrivilegeCount] +} + +type Tokenmandatorylabel struct { + Label SIDAndAttributes +} + +func (tml *Tokenmandatorylabel) Size() uint32 { + return uint32(unsafe.Sizeof(Tokenmandatorylabel{})) + GetLengthSid(tml.Label.Sid) +} + +// Authorization Functions +//sys checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) = advapi32.CheckTokenMembership +//sys isTokenRestricted(tokenHandle Token) (ret bool, err error) [!failretval] = advapi32.IsTokenRestricted +//sys OpenProcessToken(process Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken +//sys OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) = advapi32.OpenThreadToken +//sys ImpersonateSelf(impersonationlevel uint32) (err error) = advapi32.ImpersonateSelf +//sys RevertToSelf() (err error) = advapi32.RevertToSelf +//sys SetThreadToken(thread *Handle, token Token) (err error) = advapi32.SetThreadToken +//sys LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) = advapi32.LookupPrivilegeValueW +//sys AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) = advapi32.AdjustTokenPrivileges +//sys AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) = advapi32.AdjustTokenGroups +//sys GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) = advapi32.GetTokenInformation +//sys SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) = advapi32.SetTokenInformation +//sys DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) = advapi32.DuplicateTokenEx +//sys GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) = userenv.GetUserProfileDirectoryW +//sys getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemDirectoryW +//sys getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetWindowsDirectoryW +//sys getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemWindowsDirectoryW + +// An access token contains the security information for a logon session. +// The system creates an access token when a user logs on, and every +// process executed on behalf of the user has a copy of the token. +// The token identifies the user, the user's groups, and the user's +// privileges. The system uses the token to control access to securable +// objects and to control the ability of the user to perform various +// system-related operations on the local computer. +type Token Handle + +// OpenCurrentProcessToken opens an access token associated with current +// process with TOKEN_QUERY access. It is a real token that needs to be closed. +// +// Deprecated: Explicitly call OpenProcessToken(CurrentProcess(), ...) +// with the desired access instead, or use GetCurrentProcessToken for a +// TOKEN_QUERY token. +func OpenCurrentProcessToken() (Token, error) { + var token Token + err := OpenProcessToken(CurrentProcess(), TOKEN_QUERY, &token) + return token, err +} + +// GetCurrentProcessToken returns the access token associated with +// the current process. It is a pseudo token that does not need +// to be closed. +func GetCurrentProcessToken() Token { + return Token(^uintptr(4 - 1)) +} + +// GetCurrentThreadToken return the access token associated with +// the current thread. It is a pseudo token that does not need +// to be closed. +func GetCurrentThreadToken() Token { + return Token(^uintptr(5 - 1)) +} + +// GetCurrentThreadEffectiveToken returns the effective access token +// associated with the current thread. It is a pseudo token that does +// not need to be closed. +func GetCurrentThreadEffectiveToken() Token { + return Token(^uintptr(6 - 1)) +} + +// Close releases access to access token. +func (t Token) Close() error { + return CloseHandle(Handle(t)) +} + +// getInfo retrieves a specified type of information about an access token. +func (t Token) getInfo(class uint32, initSize int) (unsafe.Pointer, error) { + n := uint32(initSize) + for { + b := make([]byte, n) + e := GetTokenInformation(t, class, &b[0], uint32(len(b)), &n) + if e == nil { + return unsafe.Pointer(&b[0]), nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return nil, e + } + if n <= uint32(len(b)) { + return nil, e + } + } +} + +// GetTokenUser retrieves access token t user account information. +func (t Token) GetTokenUser() (*Tokenuser, error) { + i, e := t.getInfo(TokenUser, 50) + if e != nil { + return nil, e + } + return (*Tokenuser)(i), nil +} + +// GetTokenGroups retrieves group accounts associated with access token t. +func (t Token) GetTokenGroups() (*Tokengroups, error) { + i, e := t.getInfo(TokenGroups, 50) + if e != nil { + return nil, e + } + return (*Tokengroups)(i), nil +} + +// GetTokenPrimaryGroup retrieves access token t primary group information. +// A pointer to a SID structure representing a group that will become +// the primary group of any objects created by a process using this access token. +func (t Token) GetTokenPrimaryGroup() (*Tokenprimarygroup, error) { + i, e := t.getInfo(TokenPrimaryGroup, 50) + if e != nil { + return nil, e + } + return (*Tokenprimarygroup)(i), nil +} + +// GetUserProfileDirectory retrieves path to the +// root directory of the access token t user's profile. +func (t Token) GetUserProfileDirectory() (string, error) { + n := uint32(100) + for { + b := make([]uint16, n) + e := GetUserProfileDirectory(t, &b[0], &n) + if e == nil { + return UTF16ToString(b), nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return "", e + } + if n <= uint32(len(b)) { + return "", e + } + } +} + +// IsElevated returns whether the current token is elevated from a UAC perspective. +func (token Token) IsElevated() bool { + var isElevated uint32 + var outLen uint32 + err := GetTokenInformation(token, TokenElevation, (*byte)(unsafe.Pointer(&isElevated)), uint32(unsafe.Sizeof(isElevated)), &outLen) + if err != nil { + return false + } + return outLen == uint32(unsafe.Sizeof(isElevated)) && isElevated != 0 +} + +// GetLinkedToken returns the linked token, which may be an elevated UAC token. +func (token Token) GetLinkedToken() (Token, error) { + var linkedToken Token + var outLen uint32 + err := GetTokenInformation(token, TokenLinkedToken, (*byte)(unsafe.Pointer(&linkedToken)), uint32(unsafe.Sizeof(linkedToken)), &outLen) + if err != nil { + return Token(0), err + } + return linkedToken, nil +} + +// GetSystemDirectory retrieves the path to current location of the system +// directory, which is typically, though not always, `C:\Windows\System32`. +func GetSystemDirectory() (string, error) { + n := uint32(MAX_PATH) + for { + b := make([]uint16, n) + l, e := getSystemDirectory(&b[0], n) + if e != nil { + return "", e + } + if l <= n { + return UTF16ToString(b[:l]), nil + } + n = l + } +} + +// GetWindowsDirectory retrieves the path to current location of the Windows +// directory, which is typically, though not always, `C:\Windows`. This may +// be a private user directory in the case that the application is running +// under a terminal server. +func GetWindowsDirectory() (string, error) { + n := uint32(MAX_PATH) + for { + b := make([]uint16, n) + l, e := getWindowsDirectory(&b[0], n) + if e != nil { + return "", e + } + if l <= n { + return UTF16ToString(b[:l]), nil + } + n = l + } +} + +// GetSystemWindowsDirectory retrieves the path to current location of the +// Windows directory, which is typically, though not always, `C:\Windows`. +func GetSystemWindowsDirectory() (string, error) { + n := uint32(MAX_PATH) + for { + b := make([]uint16, n) + l, e := getSystemWindowsDirectory(&b[0], n) + if e != nil { + return "", e + } + if l <= n { + return UTF16ToString(b[:l]), nil + } + n = l + } +} + +// IsMember reports whether the access token t is a member of the provided SID. +func (t Token) IsMember(sid *SID) (bool, error) { + var b int32 + if e := checkTokenMembership(t, sid, &b); e != nil { + return false, e + } + return b != 0, nil +} + +// IsRestricted reports whether the access token t is a restricted token. +func (t Token) IsRestricted() (isRestricted bool, err error) { + isRestricted, err = isTokenRestricted(t) + if !isRestricted && err == syscall.EINVAL { + // If err is EINVAL, this returned ERROR_SUCCESS indicating a non-restricted token. + err = nil + } + return +} + +const ( + WTS_CONSOLE_CONNECT = 0x1 + WTS_CONSOLE_DISCONNECT = 0x2 + WTS_REMOTE_CONNECT = 0x3 + WTS_REMOTE_DISCONNECT = 0x4 + WTS_SESSION_LOGON = 0x5 + WTS_SESSION_LOGOFF = 0x6 + WTS_SESSION_LOCK = 0x7 + WTS_SESSION_UNLOCK = 0x8 + WTS_SESSION_REMOTE_CONTROL = 0x9 + WTS_SESSION_CREATE = 0xa + WTS_SESSION_TERMINATE = 0xb +) + +const ( + WTSActive = 0 + WTSConnected = 1 + WTSConnectQuery = 2 + WTSShadow = 3 + WTSDisconnected = 4 + WTSIdle = 5 + WTSListen = 6 + WTSReset = 7 + WTSDown = 8 + WTSInit = 9 +) + +type WTSSESSION_NOTIFICATION struct { + Size uint32 + SessionID uint32 +} + +type WTS_SESSION_INFO struct { + SessionID uint32 + WindowStationName *uint16 + State uint32 +} + +//sys WTSQueryUserToken(session uint32, token *Token) (err error) = wtsapi32.WTSQueryUserToken +//sys WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) = wtsapi32.WTSEnumerateSessionsW +//sys WTSFreeMemory(ptr uintptr) = wtsapi32.WTSFreeMemory +//sys WTSGetActiveConsoleSessionId() (sessionID uint32) + +type ACL struct { + aclRevision byte + sbz1 byte + aclSize uint16 + aceCount uint16 + sbz2 uint16 +} + +type SECURITY_DESCRIPTOR struct { + revision byte + sbz1 byte + control SECURITY_DESCRIPTOR_CONTROL + owner *SID + group *SID + sacl *ACL + dacl *ACL +} + +type SECURITY_QUALITY_OF_SERVICE struct { + Length uint32 + ImpersonationLevel uint32 + ContextTrackingMode byte + EffectiveOnly byte +} + +// Constants for the ContextTrackingMode field of SECURITY_QUALITY_OF_SERVICE. +const ( + SECURITY_STATIC_TRACKING = 0 + SECURITY_DYNAMIC_TRACKING = 1 +) + +type SecurityAttributes struct { + Length uint32 + SecurityDescriptor *SECURITY_DESCRIPTOR + InheritHandle uint32 +} + +type SE_OBJECT_TYPE uint32 + +// Constants for type SE_OBJECT_TYPE +const ( + SE_UNKNOWN_OBJECT_TYPE = 0 + SE_FILE_OBJECT = 1 + SE_SERVICE = 2 + SE_PRINTER = 3 + SE_REGISTRY_KEY = 4 + SE_LMSHARE = 5 + SE_KERNEL_OBJECT = 6 + SE_WINDOW_OBJECT = 7 + SE_DS_OBJECT = 8 + SE_DS_OBJECT_ALL = 9 + SE_PROVIDER_DEFINED_OBJECT = 10 + SE_WMIGUID_OBJECT = 11 + SE_REGISTRY_WOW64_32KEY = 12 + SE_REGISTRY_WOW64_64KEY = 13 +) + +type SECURITY_INFORMATION uint32 + +// Constants for type SECURITY_INFORMATION +const ( + OWNER_SECURITY_INFORMATION = 0x00000001 + GROUP_SECURITY_INFORMATION = 0x00000002 + DACL_SECURITY_INFORMATION = 0x00000004 + SACL_SECURITY_INFORMATION = 0x00000008 + LABEL_SECURITY_INFORMATION = 0x00000010 + ATTRIBUTE_SECURITY_INFORMATION = 0x00000020 + SCOPE_SECURITY_INFORMATION = 0x00000040 + BACKUP_SECURITY_INFORMATION = 0x00010000 + PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000 + PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000 + UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000 + UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000 +) + +type SECURITY_DESCRIPTOR_CONTROL uint16 + +// Constants for type SECURITY_DESCRIPTOR_CONTROL +const ( + SE_OWNER_DEFAULTED = 0x0001 + SE_GROUP_DEFAULTED = 0x0002 + SE_DACL_PRESENT = 0x0004 + SE_DACL_DEFAULTED = 0x0008 + SE_SACL_PRESENT = 0x0010 + SE_SACL_DEFAULTED = 0x0020 + SE_DACL_AUTO_INHERIT_REQ = 0x0100 + SE_SACL_AUTO_INHERIT_REQ = 0x0200 + SE_DACL_AUTO_INHERITED = 0x0400 + SE_SACL_AUTO_INHERITED = 0x0800 + SE_DACL_PROTECTED = 0x1000 + SE_SACL_PROTECTED = 0x2000 + SE_RM_CONTROL_VALID = 0x4000 + SE_SELF_RELATIVE = 0x8000 +) + +type ACCESS_MASK uint32 + +// Constants for type ACCESS_MASK +const ( + DELETE = 0x00010000 + READ_CONTROL = 0x00020000 + WRITE_DAC = 0x00040000 + WRITE_OWNER = 0x00080000 + SYNCHRONIZE = 0x00100000 + STANDARD_RIGHTS_REQUIRED = 0x000F0000 + STANDARD_RIGHTS_READ = READ_CONTROL + STANDARD_RIGHTS_WRITE = READ_CONTROL + STANDARD_RIGHTS_EXECUTE = READ_CONTROL + STANDARD_RIGHTS_ALL = 0x001F0000 + SPECIFIC_RIGHTS_ALL = 0x0000FFFF + ACCESS_SYSTEM_SECURITY = 0x01000000 + MAXIMUM_ALLOWED = 0x02000000 + GENERIC_READ = 0x80000000 + GENERIC_WRITE = 0x40000000 + GENERIC_EXECUTE = 0x20000000 + GENERIC_ALL = 0x10000000 +) + +type ACCESS_MODE uint32 + +// Constants for type ACCESS_MODE +const ( + NOT_USED_ACCESS = 0 + GRANT_ACCESS = 1 + SET_ACCESS = 2 + DENY_ACCESS = 3 + REVOKE_ACCESS = 4 + SET_AUDIT_SUCCESS = 5 + SET_AUDIT_FAILURE = 6 +) + +// Constants for AceFlags and Inheritance fields +const ( + NO_INHERITANCE = 0x0 + SUB_OBJECTS_ONLY_INHERIT = 0x1 + SUB_CONTAINERS_ONLY_INHERIT = 0x2 + SUB_CONTAINERS_AND_OBJECTS_INHERIT = 0x3 + INHERIT_NO_PROPAGATE = 0x4 + INHERIT_ONLY = 0x8 + INHERITED_ACCESS_ENTRY = 0x10 + INHERITED_PARENT = 0x10000000 + INHERITED_GRANDPARENT = 0x20000000 + OBJECT_INHERIT_ACE = 0x1 + CONTAINER_INHERIT_ACE = 0x2 + NO_PROPAGATE_INHERIT_ACE = 0x4 + INHERIT_ONLY_ACE = 0x8 + INHERITED_ACE = 0x10 + VALID_INHERIT_FLAGS = 0x1F +) + +type MULTIPLE_TRUSTEE_OPERATION uint32 + +// Constants for MULTIPLE_TRUSTEE_OPERATION +const ( + NO_MULTIPLE_TRUSTEE = 0 + TRUSTEE_IS_IMPERSONATE = 1 +) + +type TRUSTEE_FORM uint32 + +// Constants for TRUSTEE_FORM +const ( + TRUSTEE_IS_SID = 0 + TRUSTEE_IS_NAME = 1 + TRUSTEE_BAD_FORM = 2 + TRUSTEE_IS_OBJECTS_AND_SID = 3 + TRUSTEE_IS_OBJECTS_AND_NAME = 4 +) + +type TRUSTEE_TYPE uint32 + +// Constants for TRUSTEE_TYPE +const ( + TRUSTEE_IS_UNKNOWN = 0 + TRUSTEE_IS_USER = 1 + TRUSTEE_IS_GROUP = 2 + TRUSTEE_IS_DOMAIN = 3 + TRUSTEE_IS_ALIAS = 4 + TRUSTEE_IS_WELL_KNOWN_GROUP = 5 + TRUSTEE_IS_DELETED = 6 + TRUSTEE_IS_INVALID = 7 + TRUSTEE_IS_COMPUTER = 8 +) + +// Constants for ObjectsPresent field +const ( + ACE_OBJECT_TYPE_PRESENT = 0x1 + ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2 +) + +type EXPLICIT_ACCESS struct { + AccessPermissions ACCESS_MASK + AccessMode ACCESS_MODE + Inheritance uint32 + Trustee TRUSTEE +} + +// This type is the union inside of TRUSTEE and must be created using one of the TrusteeValueFrom* functions. +type TrusteeValue uintptr + +func TrusteeValueFromString(str string) TrusteeValue { + return TrusteeValue(unsafe.Pointer(StringToUTF16Ptr(str))) +} +func TrusteeValueFromSID(sid *SID) TrusteeValue { + return TrusteeValue(unsafe.Pointer(sid)) +} +func TrusteeValueFromObjectsAndSid(objectsAndSid *OBJECTS_AND_SID) TrusteeValue { + return TrusteeValue(unsafe.Pointer(objectsAndSid)) +} +func TrusteeValueFromObjectsAndName(objectsAndName *OBJECTS_AND_NAME) TrusteeValue { + return TrusteeValue(unsafe.Pointer(objectsAndName)) +} + +type TRUSTEE struct { + MultipleTrustee *TRUSTEE + MultipleTrusteeOperation MULTIPLE_TRUSTEE_OPERATION + TrusteeForm TRUSTEE_FORM + TrusteeType TRUSTEE_TYPE + TrusteeValue TrusteeValue +} + +type OBJECTS_AND_SID struct { + ObjectsPresent uint32 + ObjectTypeGuid GUID + InheritedObjectTypeGuid GUID + Sid *SID +} + +type OBJECTS_AND_NAME struct { + ObjectsPresent uint32 + ObjectType SE_OBJECT_TYPE + ObjectTypeName *uint16 + InheritedObjectTypeName *uint16 + Name *uint16 +} + +//sys getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetSecurityInfo +//sys SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetSecurityInfo +//sys getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetNamedSecurityInfoW +//sys SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetNamedSecurityInfoW +//sys SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) = advapi32.SetKernelObjectSecurity + +//sys buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) = advapi32.BuildSecurityDescriptorW +//sys initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) = advapi32.InitializeSecurityDescriptor + +//sys getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) = advapi32.GetSecurityDescriptorControl +//sys getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorDacl +//sys getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorSacl +//sys getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorOwner +//sys getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorGroup +//sys getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) = advapi32.GetSecurityDescriptorLength +//sys getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) [failretval!=0] = advapi32.GetSecurityDescriptorRMControl +//sys isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) = advapi32.IsValidSecurityDescriptor + +//sys setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) = advapi32.SetSecurityDescriptorControl +//sys setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorDacl +//sys setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorSacl +//sys setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) = advapi32.SetSecurityDescriptorOwner +//sys setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) = advapi32.SetSecurityDescriptorGroup +//sys setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) = advapi32.SetSecurityDescriptorRMControl + +//sys convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) = advapi32.ConvertStringSecurityDescriptorToSecurityDescriptorW +//sys convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) = advapi32.ConvertSecurityDescriptorToStringSecurityDescriptorW + +//sys makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) = advapi32.MakeAbsoluteSD +//sys makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) = advapi32.MakeSelfRelativeSD + +//sys setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) = advapi32.SetEntriesInAclW + +// Control returns the security descriptor control bits. +func (sd *SECURITY_DESCRIPTOR) Control() (control SECURITY_DESCRIPTOR_CONTROL, revision uint32, err error) { + err = getSecurityDescriptorControl(sd, &control, &revision) + return +} + +// SetControl sets the security descriptor control bits. +func (sd *SECURITY_DESCRIPTOR) SetControl(controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) error { + return setSecurityDescriptorControl(sd, controlBitsOfInterest, controlBitsToSet) +} + +// RMControl returns the security descriptor resource manager control bits. +func (sd *SECURITY_DESCRIPTOR) RMControl() (control uint8, err error) { + err = getSecurityDescriptorRMControl(sd, &control) + return +} + +// SetRMControl sets the security descriptor resource manager control bits. +func (sd *SECURITY_DESCRIPTOR) SetRMControl(rmControl uint8) { + setSecurityDescriptorRMControl(sd, &rmControl) +} + +// DACL returns the security descriptor DACL and whether it was defaulted. The dacl return value may be nil +// if a DACL exists but is an "empty DACL", meaning fully permissive. If the DACL does not exist, err returns +// ERROR_OBJECT_NOT_FOUND. +func (sd *SECURITY_DESCRIPTOR) DACL() (dacl *ACL, defaulted bool, err error) { + var present bool + err = getSecurityDescriptorDacl(sd, &present, &dacl, &defaulted) + if !present { + err = ERROR_OBJECT_NOT_FOUND + } + return +} + +// SetDACL sets the absolute security descriptor DACL. +func (absoluteSD *SECURITY_DESCRIPTOR) SetDACL(dacl *ACL, present, defaulted bool) error { + return setSecurityDescriptorDacl(absoluteSD, present, dacl, defaulted) +} + +// SACL returns the security descriptor SACL and whether it was defaulted. The sacl return value may be nil +// if a SACL exists but is an "empty SACL", meaning fully permissive. If the SACL does not exist, err returns +// ERROR_OBJECT_NOT_FOUND. +func (sd *SECURITY_DESCRIPTOR) SACL() (sacl *ACL, defaulted bool, err error) { + var present bool + err = getSecurityDescriptorSacl(sd, &present, &sacl, &defaulted) + if !present { + err = ERROR_OBJECT_NOT_FOUND + } + return +} + +// SetSACL sets the absolute security descriptor SACL. +func (absoluteSD *SECURITY_DESCRIPTOR) SetSACL(sacl *ACL, present, defaulted bool) error { + return setSecurityDescriptorSacl(absoluteSD, present, sacl, defaulted) +} + +// Owner returns the security descriptor owner and whether it was defaulted. +func (sd *SECURITY_DESCRIPTOR) Owner() (owner *SID, defaulted bool, err error) { + err = getSecurityDescriptorOwner(sd, &owner, &defaulted) + return +} + +// SetOwner sets the absolute security descriptor owner. +func (absoluteSD *SECURITY_DESCRIPTOR) SetOwner(owner *SID, defaulted bool) error { + return setSecurityDescriptorOwner(absoluteSD, owner, defaulted) +} + +// Group returns the security descriptor group and whether it was defaulted. +func (sd *SECURITY_DESCRIPTOR) Group() (group *SID, defaulted bool, err error) { + err = getSecurityDescriptorGroup(sd, &group, &defaulted) + return +} + +// SetGroup sets the absolute security descriptor owner. +func (absoluteSD *SECURITY_DESCRIPTOR) SetGroup(group *SID, defaulted bool) error { + return setSecurityDescriptorGroup(absoluteSD, group, defaulted) +} + +// Length returns the length of the security descriptor. +func (sd *SECURITY_DESCRIPTOR) Length() uint32 { + return getSecurityDescriptorLength(sd) +} + +// IsValid returns whether the security descriptor is valid. +func (sd *SECURITY_DESCRIPTOR) IsValid() bool { + return isValidSecurityDescriptor(sd) +} + +// String returns the SDDL form of the security descriptor, with a function signature that can be +// used with %v formatting directives. +func (sd *SECURITY_DESCRIPTOR) String() string { + var sddl *uint16 + err := convertSecurityDescriptorToStringSecurityDescriptor(sd, 1, 0xff, &sddl, nil) + if err != nil { + return "" + } + defer LocalFree(Handle(unsafe.Pointer(sddl))) + return UTF16PtrToString(sddl) +} + +// ToAbsolute converts a self-relative security descriptor into an absolute one. +func (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DESCRIPTOR, err error) { + control, _, err := selfRelativeSD.Control() + if err != nil { + return + } + if control&SE_SELF_RELATIVE == 0 { + err = ERROR_INVALID_PARAMETER + return + } + var absoluteSDSize, daclSize, saclSize, ownerSize, groupSize uint32 + err = makeAbsoluteSD(selfRelativeSD, nil, &absoluteSDSize, + nil, &daclSize, nil, &saclSize, nil, &ownerSize, nil, &groupSize) + switch err { + case ERROR_INSUFFICIENT_BUFFER: + case nil: + // makeAbsoluteSD is expected to fail, but it succeeds. + return nil, ERROR_INTERNAL_ERROR + default: + return nil, err + } + if absoluteSDSize > 0 { + absoluteSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, absoluteSDSize)[0])) + } + var ( + dacl *ACL + sacl *ACL + owner *SID + group *SID + ) + if daclSize > 0 { + dacl = (*ACL)(unsafe.Pointer(&make([]byte, daclSize)[0])) + } + if saclSize > 0 { + sacl = (*ACL)(unsafe.Pointer(&make([]byte, saclSize)[0])) + } + if ownerSize > 0 { + owner = (*SID)(unsafe.Pointer(&make([]byte, ownerSize)[0])) + } + if groupSize > 0 { + group = (*SID)(unsafe.Pointer(&make([]byte, groupSize)[0])) + } + err = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize, + dacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize) + return +} + +// ToSelfRelative converts an absolute security descriptor into a self-relative one. +func (absoluteSD *SECURITY_DESCRIPTOR) ToSelfRelative() (selfRelativeSD *SECURITY_DESCRIPTOR, err error) { + control, _, err := absoluteSD.Control() + if err != nil { + return + } + if control&SE_SELF_RELATIVE != 0 { + err = ERROR_INVALID_PARAMETER + return + } + var selfRelativeSDSize uint32 + err = makeSelfRelativeSD(absoluteSD, nil, &selfRelativeSDSize) + switch err { + case ERROR_INSUFFICIENT_BUFFER: + case nil: + // makeSelfRelativeSD is expected to fail, but it succeeds. + return nil, ERROR_INTERNAL_ERROR + default: + return nil, err + } + if selfRelativeSDSize > 0 { + selfRelativeSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, selfRelativeSDSize)[0])) + } + err = makeSelfRelativeSD(absoluteSD, selfRelativeSD, &selfRelativeSDSize) + return +} + +func (selfRelativeSD *SECURITY_DESCRIPTOR) copySelfRelativeSecurityDescriptor() *SECURITY_DESCRIPTOR { + sdLen := int(selfRelativeSD.Length()) + const min = int(unsafe.Sizeof(SECURITY_DESCRIPTOR{})) + if sdLen < min { + sdLen = min + } + + var src []byte + h := (*unsafeheader.Slice)(unsafe.Pointer(&src)) + h.Data = unsafe.Pointer(selfRelativeSD) + h.Len = sdLen + h.Cap = sdLen + + const psize = int(unsafe.Sizeof(uintptr(0))) + + var dst []byte + h = (*unsafeheader.Slice)(unsafe.Pointer(&dst)) + alloc := make([]uintptr, (sdLen+psize-1)/psize) + h.Data = (*unsafeheader.Slice)(unsafe.Pointer(&alloc)).Data + h.Len = sdLen + h.Cap = sdLen + + copy(dst, src) + return (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&dst[0])) +} + +// SecurityDescriptorFromString converts an SDDL string describing a security descriptor into a +// self-relative security descriptor object allocated on the Go heap. +func SecurityDescriptorFromString(sddl string) (sd *SECURITY_DESCRIPTOR, err error) { + var winHeapSD *SECURITY_DESCRIPTOR + err = convertStringSecurityDescriptorToSecurityDescriptor(sddl, 1, &winHeapSD, nil) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) + return winHeapSD.copySelfRelativeSecurityDescriptor(), nil +} + +// GetSecurityInfo queries the security information for a given handle and returns the self-relative security +// descriptor result on the Go heap. +func GetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) { + var winHeapSD *SECURITY_DESCRIPTOR + err = getSecurityInfo(handle, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) + return winHeapSD.copySelfRelativeSecurityDescriptor(), nil +} + +// GetNamedSecurityInfo queries the security information for a given named object and returns the self-relative security +// descriptor result on the Go heap. +func GetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) { + var winHeapSD *SECURITY_DESCRIPTOR + err = getNamedSecurityInfo(objectName, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) + return winHeapSD.copySelfRelativeSecurityDescriptor(), nil +} + +// BuildSecurityDescriptor makes a new security descriptor using the input trustees, explicit access lists, and +// prior security descriptor to be merged, any of which can be nil, returning the self-relative security descriptor +// result on the Go heap. +func BuildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, accessEntries []EXPLICIT_ACCESS, auditEntries []EXPLICIT_ACCESS, mergedSecurityDescriptor *SECURITY_DESCRIPTOR) (sd *SECURITY_DESCRIPTOR, err error) { + var winHeapSD *SECURITY_DESCRIPTOR + var winHeapSDSize uint32 + var firstAccessEntry *EXPLICIT_ACCESS + if len(accessEntries) > 0 { + firstAccessEntry = &accessEntries[0] + } + var firstAuditEntry *EXPLICIT_ACCESS + if len(auditEntries) > 0 { + firstAuditEntry = &auditEntries[0] + } + err = buildSecurityDescriptor(owner, group, uint32(len(accessEntries)), firstAccessEntry, uint32(len(auditEntries)), firstAuditEntry, mergedSecurityDescriptor, &winHeapSDSize, &winHeapSD) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapSD))) + return winHeapSD.copySelfRelativeSecurityDescriptor(), nil +} + +// NewSecurityDescriptor creates and initializes a new absolute security descriptor. +func NewSecurityDescriptor() (absoluteSD *SECURITY_DESCRIPTOR, err error) { + absoluteSD = &SECURITY_DESCRIPTOR{} + err = initializeSecurityDescriptor(absoluteSD, 1) + return +} + +// ACLFromEntries returns a new ACL on the Go heap containing a list of explicit entries as well as those of another ACL. +// Both explicitEntries and mergedACL are optional and can be nil. +func ACLFromEntries(explicitEntries []EXPLICIT_ACCESS, mergedACL *ACL) (acl *ACL, err error) { + var firstExplicitEntry *EXPLICIT_ACCESS + if len(explicitEntries) > 0 { + firstExplicitEntry = &explicitEntries[0] + } + var winHeapACL *ACL + err = setEntriesInAcl(uint32(len(explicitEntries)), firstExplicitEntry, mergedACL, &winHeapACL) + if err != nil { + return + } + defer LocalFree(Handle(unsafe.Pointer(winHeapACL))) + aclBytes := make([]byte, winHeapACL.aclSize) + copy(aclBytes, (*[(1 << 31) - 1]byte)(unsafe.Pointer(winHeapACL))[:len(aclBytes):len(aclBytes)]) + return (*ACL)(unsafe.Pointer(&aclBytes[0])), nil +} diff --git a/vendor/golang.org/x/sys/windows/service.go b/vendor/golang.org/x/sys/windows/service.go new file mode 100644 index 000000000000..c44a1b963601 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/service.go @@ -0,0 +1,258 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build windows +// +build windows + +package windows + +const ( + SC_MANAGER_CONNECT = 1 + SC_MANAGER_CREATE_SERVICE = 2 + SC_MANAGER_ENUMERATE_SERVICE = 4 + SC_MANAGER_LOCK = 8 + SC_MANAGER_QUERY_LOCK_STATUS = 16 + SC_MANAGER_MODIFY_BOOT_CONFIG = 32 + SC_MANAGER_ALL_ACCESS = 0xf003f +) + +const ( + SERVICE_KERNEL_DRIVER = 1 + SERVICE_FILE_SYSTEM_DRIVER = 2 + SERVICE_ADAPTER = 4 + SERVICE_RECOGNIZER_DRIVER = 8 + SERVICE_WIN32_OWN_PROCESS = 16 + SERVICE_WIN32_SHARE_PROCESS = 32 + SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS + SERVICE_INTERACTIVE_PROCESS = 256 + SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER + SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS + + SERVICE_BOOT_START = 0 + SERVICE_SYSTEM_START = 1 + SERVICE_AUTO_START = 2 + SERVICE_DEMAND_START = 3 + SERVICE_DISABLED = 4 + + SERVICE_ERROR_IGNORE = 0 + SERVICE_ERROR_NORMAL = 1 + SERVICE_ERROR_SEVERE = 2 + SERVICE_ERROR_CRITICAL = 3 + + SC_STATUS_PROCESS_INFO = 0 + + SC_ACTION_NONE = 0 + SC_ACTION_RESTART = 1 + SC_ACTION_REBOOT = 2 + SC_ACTION_RUN_COMMAND = 3 + + SERVICE_STOPPED = 1 + SERVICE_START_PENDING = 2 + SERVICE_STOP_PENDING = 3 + SERVICE_RUNNING = 4 + SERVICE_CONTINUE_PENDING = 5 + SERVICE_PAUSE_PENDING = 6 + SERVICE_PAUSED = 7 + SERVICE_NO_CHANGE = 0xffffffff + + SERVICE_ACCEPT_STOP = 1 + SERVICE_ACCEPT_PAUSE_CONTINUE = 2 + SERVICE_ACCEPT_SHUTDOWN = 4 + SERVICE_ACCEPT_PARAMCHANGE = 8 + SERVICE_ACCEPT_NETBINDCHANGE = 16 + SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32 + SERVICE_ACCEPT_POWEREVENT = 64 + SERVICE_ACCEPT_SESSIONCHANGE = 128 + SERVICE_ACCEPT_PRESHUTDOWN = 256 + + SERVICE_CONTROL_STOP = 1 + SERVICE_CONTROL_PAUSE = 2 + SERVICE_CONTROL_CONTINUE = 3 + SERVICE_CONTROL_INTERROGATE = 4 + SERVICE_CONTROL_SHUTDOWN = 5 + SERVICE_CONTROL_PARAMCHANGE = 6 + SERVICE_CONTROL_NETBINDADD = 7 + SERVICE_CONTROL_NETBINDREMOVE = 8 + SERVICE_CONTROL_NETBINDENABLE = 9 + SERVICE_CONTROL_NETBINDDISABLE = 10 + SERVICE_CONTROL_DEVICEEVENT = 11 + SERVICE_CONTROL_HARDWAREPROFILECHANGE = 12 + SERVICE_CONTROL_POWEREVENT = 13 + SERVICE_CONTROL_SESSIONCHANGE = 14 + SERVICE_CONTROL_PRESHUTDOWN = 15 + + SERVICE_ACTIVE = 1 + SERVICE_INACTIVE = 2 + SERVICE_STATE_ALL = 3 + + SERVICE_QUERY_CONFIG = 1 + SERVICE_CHANGE_CONFIG = 2 + SERVICE_QUERY_STATUS = 4 + SERVICE_ENUMERATE_DEPENDENTS = 8 + SERVICE_START = 16 + SERVICE_STOP = 32 + SERVICE_PAUSE_CONTINUE = 64 + SERVICE_INTERROGATE = 128 + SERVICE_USER_DEFINED_CONTROL = 256 + SERVICE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL + + SERVICE_RUNS_IN_SYSTEM_PROCESS = 1 + + SERVICE_CONFIG_DESCRIPTION = 1 + SERVICE_CONFIG_FAILURE_ACTIONS = 2 + SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 3 + SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = 4 + SERVICE_CONFIG_SERVICE_SID_INFO = 5 + SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6 + SERVICE_CONFIG_PRESHUTDOWN_INFO = 7 + SERVICE_CONFIG_TRIGGER_INFO = 8 + SERVICE_CONFIG_PREFERRED_NODE = 9 + SERVICE_CONFIG_LAUNCH_PROTECTED = 12 + + SERVICE_SID_TYPE_NONE = 0 + SERVICE_SID_TYPE_UNRESTRICTED = 1 + SERVICE_SID_TYPE_RESTRICTED = 2 | SERVICE_SID_TYPE_UNRESTRICTED + + SC_ENUM_PROCESS_INFO = 0 + + SERVICE_NOTIFY_STATUS_CHANGE = 2 + SERVICE_NOTIFY_STOPPED = 0x00000001 + SERVICE_NOTIFY_START_PENDING = 0x00000002 + SERVICE_NOTIFY_STOP_PENDING = 0x00000004 + SERVICE_NOTIFY_RUNNING = 0x00000008 + SERVICE_NOTIFY_CONTINUE_PENDING = 0x00000010 + SERVICE_NOTIFY_PAUSE_PENDING = 0x00000020 + SERVICE_NOTIFY_PAUSED = 0x00000040 + SERVICE_NOTIFY_CREATED = 0x00000080 + SERVICE_NOTIFY_DELETED = 0x00000100 + SERVICE_NOTIFY_DELETE_PENDING = 0x00000200 + + SC_EVENT_DATABASE_CHANGE = 0 + SC_EVENT_PROPERTY_CHANGE = 1 + SC_EVENT_STATUS_CHANGE = 2 + + SERVICE_START_REASON_DEMAND = 0x00000001 + SERVICE_START_REASON_AUTO = 0x00000002 + SERVICE_START_REASON_TRIGGER = 0x00000004 + SERVICE_START_REASON_RESTART_ON_FAILURE = 0x00000008 + SERVICE_START_REASON_DELAYEDAUTO = 0x00000010 + + SERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON = 1 +) + +type ENUM_SERVICE_STATUS struct { + ServiceName *uint16 + DisplayName *uint16 + ServiceStatus SERVICE_STATUS +} + +type SERVICE_STATUS struct { + ServiceType uint32 + CurrentState uint32 + ControlsAccepted uint32 + Win32ExitCode uint32 + ServiceSpecificExitCode uint32 + CheckPoint uint32 + WaitHint uint32 +} + +type SERVICE_TABLE_ENTRY struct { + ServiceName *uint16 + ServiceProc uintptr +} + +type QUERY_SERVICE_CONFIG struct { + ServiceType uint32 + StartType uint32 + ErrorControl uint32 + BinaryPathName *uint16 + LoadOrderGroup *uint16 + TagId uint32 + Dependencies *uint16 + ServiceStartName *uint16 + DisplayName *uint16 +} + +type SERVICE_DESCRIPTION struct { + Description *uint16 +} + +type SERVICE_DELAYED_AUTO_START_INFO struct { + IsDelayedAutoStartUp uint32 +} + +type SERVICE_STATUS_PROCESS struct { + ServiceType uint32 + CurrentState uint32 + ControlsAccepted uint32 + Win32ExitCode uint32 + ServiceSpecificExitCode uint32 + CheckPoint uint32 + WaitHint uint32 + ProcessId uint32 + ServiceFlags uint32 +} + +type ENUM_SERVICE_STATUS_PROCESS struct { + ServiceName *uint16 + DisplayName *uint16 + ServiceStatusProcess SERVICE_STATUS_PROCESS +} + +type SERVICE_NOTIFY struct { + Version uint32 + NotifyCallback uintptr + Context uintptr + NotificationStatus uint32 + ServiceStatus SERVICE_STATUS_PROCESS + NotificationTriggered uint32 + ServiceNames *uint16 +} + +type SERVICE_FAILURE_ACTIONS struct { + ResetPeriod uint32 + RebootMsg *uint16 + Command *uint16 + ActionsCount uint32 + Actions *SC_ACTION +} + +type SERVICE_FAILURE_ACTIONS_FLAG struct { + FailureActionsOnNonCrashFailures int32 +} + +type SC_ACTION struct { + Type uint32 + Delay uint32 +} + +type QUERY_SERVICE_LOCK_STATUS struct { + IsLocked uint32 + LockOwner *uint16 + LockDuration uint32 +} + +//sys OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenSCManagerW +//sys CloseServiceHandle(handle Handle) (err error) = advapi32.CloseServiceHandle +//sys CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) [failretval==0] = advapi32.CreateServiceW +//sys OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenServiceW +//sys DeleteService(service Handle) (err error) = advapi32.DeleteService +//sys StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) = advapi32.StartServiceW +//sys QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) = advapi32.QueryServiceStatus +//sys QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceLockStatusW +//sys ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) = advapi32.ControlService +//sys StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) = advapi32.StartServiceCtrlDispatcherW +//sys SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) = advapi32.SetServiceStatus +//sys ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) = advapi32.ChangeServiceConfigW +//sys QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfigW +//sys ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) = advapi32.ChangeServiceConfig2W +//sys QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfig2W +//sys EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) = advapi32.EnumServicesStatusExW +//sys QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceStatusEx +//sys NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) = advapi32.NotifyServiceStatusChangeW +//sys SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) = sechost.SubscribeServiceChangeNotifications? +//sys UnsubscribeServiceChangeNotifications(subscription uintptr) = sechost.UnsubscribeServiceChangeNotifications? +//sys RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) = advapi32.RegisterServiceCtrlHandlerExW +//sys QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) = advapi32.QueryServiceDynamicInformation? +//sys EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) = advapi32.EnumDependentServicesW diff --git a/vendor/golang.org/x/sys/windows/setupapi_windows.go b/vendor/golang.org/x/sys/windows/setupapi_windows.go new file mode 100644 index 000000000000..f8126482fa5a --- /dev/null +++ b/vendor/golang.org/x/sys/windows/setupapi_windows.go @@ -0,0 +1,1425 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +import ( + "encoding/binary" + "errors" + "fmt" + "runtime" + "strings" + "syscall" + "unsafe" +) + +// This file contains functions that wrap SetupAPI.dll and CfgMgr32.dll, +// core system functions for managing hardware devices, drivers, and the PnP tree. +// Information about these APIs can be found at: +// https://docs.microsoft.com/en-us/windows-hardware/drivers/install/setupapi +// https://docs.microsoft.com/en-us/windows/win32/devinst/cfgmgr32- + +const ( + ERROR_EXPECTED_SECTION_NAME Errno = 0x20000000 | 0xC0000000 | 0 + ERROR_BAD_SECTION_NAME_LINE Errno = 0x20000000 | 0xC0000000 | 1 + ERROR_SECTION_NAME_TOO_LONG Errno = 0x20000000 | 0xC0000000 | 2 + ERROR_GENERAL_SYNTAX Errno = 0x20000000 | 0xC0000000 | 3 + ERROR_WRONG_INF_STYLE Errno = 0x20000000 | 0xC0000000 | 0x100 + ERROR_SECTION_NOT_FOUND Errno = 0x20000000 | 0xC0000000 | 0x101 + ERROR_LINE_NOT_FOUND Errno = 0x20000000 | 0xC0000000 | 0x102 + ERROR_NO_BACKUP Errno = 0x20000000 | 0xC0000000 | 0x103 + ERROR_NO_ASSOCIATED_CLASS Errno = 0x20000000 | 0xC0000000 | 0x200 + ERROR_CLASS_MISMATCH Errno = 0x20000000 | 0xC0000000 | 0x201 + ERROR_DUPLICATE_FOUND Errno = 0x20000000 | 0xC0000000 | 0x202 + ERROR_NO_DRIVER_SELECTED Errno = 0x20000000 | 0xC0000000 | 0x203 + ERROR_KEY_DOES_NOT_EXIST Errno = 0x20000000 | 0xC0000000 | 0x204 + ERROR_INVALID_DEVINST_NAME Errno = 0x20000000 | 0xC0000000 | 0x205 + ERROR_INVALID_CLASS Errno = 0x20000000 | 0xC0000000 | 0x206 + ERROR_DEVINST_ALREADY_EXISTS Errno = 0x20000000 | 0xC0000000 | 0x207 + ERROR_DEVINFO_NOT_REGISTERED Errno = 0x20000000 | 0xC0000000 | 0x208 + ERROR_INVALID_REG_PROPERTY Errno = 0x20000000 | 0xC0000000 | 0x209 + ERROR_NO_INF Errno = 0x20000000 | 0xC0000000 | 0x20A + ERROR_NO_SUCH_DEVINST Errno = 0x20000000 | 0xC0000000 | 0x20B + ERROR_CANT_LOAD_CLASS_ICON Errno = 0x20000000 | 0xC0000000 | 0x20C + ERROR_INVALID_CLASS_INSTALLER Errno = 0x20000000 | 0xC0000000 | 0x20D + ERROR_DI_DO_DEFAULT Errno = 0x20000000 | 0xC0000000 | 0x20E + ERROR_DI_NOFILECOPY Errno = 0x20000000 | 0xC0000000 | 0x20F + ERROR_INVALID_HWPROFILE Errno = 0x20000000 | 0xC0000000 | 0x210 + ERROR_NO_DEVICE_SELECTED Errno = 0x20000000 | 0xC0000000 | 0x211 + ERROR_DEVINFO_LIST_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x212 + ERROR_DEVINFO_DATA_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x213 + ERROR_DI_BAD_PATH Errno = 0x20000000 | 0xC0000000 | 0x214 + ERROR_NO_CLASSINSTALL_PARAMS Errno = 0x20000000 | 0xC0000000 | 0x215 + ERROR_FILEQUEUE_LOCKED Errno = 0x20000000 | 0xC0000000 | 0x216 + ERROR_BAD_SERVICE_INSTALLSECT Errno = 0x20000000 | 0xC0000000 | 0x217 + ERROR_NO_CLASS_DRIVER_LIST Errno = 0x20000000 | 0xC0000000 | 0x218 + ERROR_NO_ASSOCIATED_SERVICE Errno = 0x20000000 | 0xC0000000 | 0x219 + ERROR_NO_DEFAULT_DEVICE_INTERFACE Errno = 0x20000000 | 0xC0000000 | 0x21A + ERROR_DEVICE_INTERFACE_ACTIVE Errno = 0x20000000 | 0xC0000000 | 0x21B + ERROR_DEVICE_INTERFACE_REMOVED Errno = 0x20000000 | 0xC0000000 | 0x21C + ERROR_BAD_INTERFACE_INSTALLSECT Errno = 0x20000000 | 0xC0000000 | 0x21D + ERROR_NO_SUCH_INTERFACE_CLASS Errno = 0x20000000 | 0xC0000000 | 0x21E + ERROR_INVALID_REFERENCE_STRING Errno = 0x20000000 | 0xC0000000 | 0x21F + ERROR_INVALID_MACHINENAME Errno = 0x20000000 | 0xC0000000 | 0x220 + ERROR_REMOTE_COMM_FAILURE Errno = 0x20000000 | 0xC0000000 | 0x221 + ERROR_MACHINE_UNAVAILABLE Errno = 0x20000000 | 0xC0000000 | 0x222 + ERROR_NO_CONFIGMGR_SERVICES Errno = 0x20000000 | 0xC0000000 | 0x223 + ERROR_INVALID_PROPPAGE_PROVIDER Errno = 0x20000000 | 0xC0000000 | 0x224 + ERROR_NO_SUCH_DEVICE_INTERFACE Errno = 0x20000000 | 0xC0000000 | 0x225 + ERROR_DI_POSTPROCESSING_REQUIRED Errno = 0x20000000 | 0xC0000000 | 0x226 + ERROR_INVALID_COINSTALLER Errno = 0x20000000 | 0xC0000000 | 0x227 + ERROR_NO_COMPAT_DRIVERS Errno = 0x20000000 | 0xC0000000 | 0x228 + ERROR_NO_DEVICE_ICON Errno = 0x20000000 | 0xC0000000 | 0x229 + ERROR_INVALID_INF_LOGCONFIG Errno = 0x20000000 | 0xC0000000 | 0x22A + ERROR_DI_DONT_INSTALL Errno = 0x20000000 | 0xC0000000 | 0x22B + ERROR_INVALID_FILTER_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22C + ERROR_NON_WINDOWS_NT_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22D + ERROR_NON_WINDOWS_DRIVER Errno = 0x20000000 | 0xC0000000 | 0x22E + ERROR_NO_CATALOG_FOR_OEM_INF Errno = 0x20000000 | 0xC0000000 | 0x22F + ERROR_DEVINSTALL_QUEUE_NONNATIVE Errno = 0x20000000 | 0xC0000000 | 0x230 + ERROR_NOT_DISABLEABLE Errno = 0x20000000 | 0xC0000000 | 0x231 + ERROR_CANT_REMOVE_DEVINST Errno = 0x20000000 | 0xC0000000 | 0x232 + ERROR_INVALID_TARGET Errno = 0x20000000 | 0xC0000000 | 0x233 + ERROR_DRIVER_NONNATIVE Errno = 0x20000000 | 0xC0000000 | 0x234 + ERROR_IN_WOW64 Errno = 0x20000000 | 0xC0000000 | 0x235 + ERROR_SET_SYSTEM_RESTORE_POINT Errno = 0x20000000 | 0xC0000000 | 0x236 + ERROR_SCE_DISABLED Errno = 0x20000000 | 0xC0000000 | 0x238 + ERROR_UNKNOWN_EXCEPTION Errno = 0x20000000 | 0xC0000000 | 0x239 + ERROR_PNP_REGISTRY_ERROR Errno = 0x20000000 | 0xC0000000 | 0x23A + ERROR_REMOTE_REQUEST_UNSUPPORTED Errno = 0x20000000 | 0xC0000000 | 0x23B + ERROR_NOT_AN_INSTALLED_OEM_INF Errno = 0x20000000 | 0xC0000000 | 0x23C + ERROR_INF_IN_USE_BY_DEVICES Errno = 0x20000000 | 0xC0000000 | 0x23D + ERROR_DI_FUNCTION_OBSOLETE Errno = 0x20000000 | 0xC0000000 | 0x23E + ERROR_NO_AUTHENTICODE_CATALOG Errno = 0x20000000 | 0xC0000000 | 0x23F + ERROR_AUTHENTICODE_DISALLOWED Errno = 0x20000000 | 0xC0000000 | 0x240 + ERROR_AUTHENTICODE_TRUSTED_PUBLISHER Errno = 0x20000000 | 0xC0000000 | 0x241 + ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED Errno = 0x20000000 | 0xC0000000 | 0x242 + ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED Errno = 0x20000000 | 0xC0000000 | 0x243 + ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH Errno = 0x20000000 | 0xC0000000 | 0x244 + ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE Errno = 0x20000000 | 0xC0000000 | 0x245 + ERROR_DEVICE_INSTALLER_NOT_READY Errno = 0x20000000 | 0xC0000000 | 0x246 + ERROR_DRIVER_STORE_ADD_FAILED Errno = 0x20000000 | 0xC0000000 | 0x247 + ERROR_DEVICE_INSTALL_BLOCKED Errno = 0x20000000 | 0xC0000000 | 0x248 + ERROR_DRIVER_INSTALL_BLOCKED Errno = 0x20000000 | 0xC0000000 | 0x249 + ERROR_WRONG_INF_TYPE Errno = 0x20000000 | 0xC0000000 | 0x24A + ERROR_FILE_HASH_NOT_IN_CATALOG Errno = 0x20000000 | 0xC0000000 | 0x24B + ERROR_DRIVER_STORE_DELETE_FAILED Errno = 0x20000000 | 0xC0000000 | 0x24C + ERROR_UNRECOVERABLE_STACK_OVERFLOW Errno = 0x20000000 | 0xC0000000 | 0x300 + EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW Errno = ERROR_UNRECOVERABLE_STACK_OVERFLOW + ERROR_NO_DEFAULT_INTERFACE_DEVICE Errno = ERROR_NO_DEFAULT_DEVICE_INTERFACE + ERROR_INTERFACE_DEVICE_ACTIVE Errno = ERROR_DEVICE_INTERFACE_ACTIVE + ERROR_INTERFACE_DEVICE_REMOVED Errno = ERROR_DEVICE_INTERFACE_REMOVED + ERROR_NO_SUCH_INTERFACE_DEVICE Errno = ERROR_NO_SUCH_DEVICE_INTERFACE +) + +const ( + MAX_DEVICE_ID_LEN = 200 + MAX_DEVNODE_ID_LEN = MAX_DEVICE_ID_LEN + MAX_GUID_STRING_LEN = 39 // 38 chars + terminator null + MAX_CLASS_NAME_LEN = 32 + MAX_PROFILE_LEN = 80 + MAX_CONFIG_VALUE = 9999 + MAX_INSTANCE_VALUE = 9999 + CONFIGMG_VERSION = 0x0400 +) + +// Maximum string length constants +const ( + LINE_LEN = 256 // Windows 9x-compatible maximum for displayable strings coming from a device INF. + MAX_INF_STRING_LENGTH = 4096 // Actual maximum size of an INF string (including string substitutions). + MAX_INF_SECTION_NAME_LENGTH = 255 // For Windows 9x compatibility, INF section names should be constrained to 32 characters. + MAX_TITLE_LEN = 60 + MAX_INSTRUCTION_LEN = 256 + MAX_LABEL_LEN = 30 + MAX_SERVICE_NAME_LEN = 256 + MAX_SUBTITLE_LEN = 256 +) + +const ( + // SP_MAX_MACHINENAME_LENGTH defines maximum length of a machine name in the format expected by ConfigMgr32 CM_Connect_Machine (i.e., "\\\\MachineName\0"). + SP_MAX_MACHINENAME_LENGTH = MAX_PATH + 3 +) + +// HSPFILEQ is type for setup file queue +type HSPFILEQ uintptr + +// DevInfo holds reference to device information set +type DevInfo Handle + +// DEVINST is a handle usually recognized by cfgmgr32 APIs +type DEVINST uint32 + +// DevInfoData is a device information structure (references a device instance that is a member of a device information set) +type DevInfoData struct { + size uint32 + ClassGUID GUID + DevInst DEVINST + _ uintptr +} + +// DevInfoListDetailData is a structure for detailed information on a device information set (used for SetupDiGetDeviceInfoListDetail which supersedes the functionality of SetupDiGetDeviceInfoListClass). +type DevInfoListDetailData struct { + size uint32 // Use unsafeSizeOf method + ClassGUID GUID + RemoteMachineHandle Handle + remoteMachineName [SP_MAX_MACHINENAME_LENGTH]uint16 +} + +func (*DevInfoListDetailData) unsafeSizeOf() uint32 { + if unsafe.Sizeof(uintptr(0)) == 4 { + // Windows declares this with pshpack1.h + return uint32(unsafe.Offsetof(DevInfoListDetailData{}.remoteMachineName) + unsafe.Sizeof(DevInfoListDetailData{}.remoteMachineName)) + } + return uint32(unsafe.Sizeof(DevInfoListDetailData{})) +} + +func (data *DevInfoListDetailData) RemoteMachineName() string { + return UTF16ToString(data.remoteMachineName[:]) +} + +func (data *DevInfoListDetailData) SetRemoteMachineName(remoteMachineName string) error { + str, err := UTF16FromString(remoteMachineName) + if err != nil { + return err + } + copy(data.remoteMachineName[:], str) + return nil +} + +// DI_FUNCTION is function type for device installer +type DI_FUNCTION uint32 + +const ( + DIF_SELECTDEVICE DI_FUNCTION = 0x00000001 + DIF_INSTALLDEVICE DI_FUNCTION = 0x00000002 + DIF_ASSIGNRESOURCES DI_FUNCTION = 0x00000003 + DIF_PROPERTIES DI_FUNCTION = 0x00000004 + DIF_REMOVE DI_FUNCTION = 0x00000005 + DIF_FIRSTTIMESETUP DI_FUNCTION = 0x00000006 + DIF_FOUNDDEVICE DI_FUNCTION = 0x00000007 + DIF_SELECTCLASSDRIVERS DI_FUNCTION = 0x00000008 + DIF_VALIDATECLASSDRIVERS DI_FUNCTION = 0x00000009 + DIF_INSTALLCLASSDRIVERS DI_FUNCTION = 0x0000000A + DIF_CALCDISKSPACE DI_FUNCTION = 0x0000000B + DIF_DESTROYPRIVATEDATA DI_FUNCTION = 0x0000000C + DIF_VALIDATEDRIVER DI_FUNCTION = 0x0000000D + DIF_DETECT DI_FUNCTION = 0x0000000F + DIF_INSTALLWIZARD DI_FUNCTION = 0x00000010 + DIF_DESTROYWIZARDDATA DI_FUNCTION = 0x00000011 + DIF_PROPERTYCHANGE DI_FUNCTION = 0x00000012 + DIF_ENABLECLASS DI_FUNCTION = 0x00000013 + DIF_DETECTVERIFY DI_FUNCTION = 0x00000014 + DIF_INSTALLDEVICEFILES DI_FUNCTION = 0x00000015 + DIF_UNREMOVE DI_FUNCTION = 0x00000016 + DIF_SELECTBESTCOMPATDRV DI_FUNCTION = 0x00000017 + DIF_ALLOW_INSTALL DI_FUNCTION = 0x00000018 + DIF_REGISTERDEVICE DI_FUNCTION = 0x00000019 + DIF_NEWDEVICEWIZARD_PRESELECT DI_FUNCTION = 0x0000001A + DIF_NEWDEVICEWIZARD_SELECT DI_FUNCTION = 0x0000001B + DIF_NEWDEVICEWIZARD_PREANALYZE DI_FUNCTION = 0x0000001C + DIF_NEWDEVICEWIZARD_POSTANALYZE DI_FUNCTION = 0x0000001D + DIF_NEWDEVICEWIZARD_FINISHINSTALL DI_FUNCTION = 0x0000001E + DIF_INSTALLINTERFACES DI_FUNCTION = 0x00000020 + DIF_DETECTCANCEL DI_FUNCTION = 0x00000021 + DIF_REGISTER_COINSTALLERS DI_FUNCTION = 0x00000022 + DIF_ADDPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000023 + DIF_ADDPROPERTYPAGE_BASIC DI_FUNCTION = 0x00000024 + DIF_TROUBLESHOOTER DI_FUNCTION = 0x00000026 + DIF_POWERMESSAGEWAKE DI_FUNCTION = 0x00000027 + DIF_ADDREMOTEPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000028 + DIF_UPDATEDRIVER_UI DI_FUNCTION = 0x00000029 + DIF_FINISHINSTALL_ACTION DI_FUNCTION = 0x0000002A +) + +// DevInstallParams is device installation parameters structure (associated with a particular device information element, or globally with a device information set) +type DevInstallParams struct { + size uint32 + Flags DI_FLAGS + FlagsEx DI_FLAGSEX + hwndParent uintptr + InstallMsgHandler uintptr + InstallMsgHandlerContext uintptr + FileQueue HSPFILEQ + _ uintptr + _ uint32 + driverPath [MAX_PATH]uint16 +} + +func (params *DevInstallParams) DriverPath() string { + return UTF16ToString(params.driverPath[:]) +} + +func (params *DevInstallParams) SetDriverPath(driverPath string) error { + str, err := UTF16FromString(driverPath) + if err != nil { + return err + } + copy(params.driverPath[:], str) + return nil +} + +// DI_FLAGS is SP_DEVINSTALL_PARAMS.Flags values +type DI_FLAGS uint32 + +const ( + // Flags for choosing a device + DI_SHOWOEM DI_FLAGS = 0x00000001 // support Other... button + DI_SHOWCOMPAT DI_FLAGS = 0x00000002 // show compatibility list + DI_SHOWCLASS DI_FLAGS = 0x00000004 // show class list + DI_SHOWALL DI_FLAGS = 0x00000007 // both class & compat list shown + DI_NOVCP DI_FLAGS = 0x00000008 // don't create a new copy queue--use caller-supplied FileQueue + DI_DIDCOMPAT DI_FLAGS = 0x00000010 // Searched for compatible devices + DI_DIDCLASS DI_FLAGS = 0x00000020 // Searched for class devices + DI_AUTOASSIGNRES DI_FLAGS = 0x00000040 // No UI for resources if possible + + // Flags returned by DiInstallDevice to indicate need to reboot/restart + DI_NEEDRESTART DI_FLAGS = 0x00000080 // Reboot required to take effect + DI_NEEDREBOOT DI_FLAGS = 0x00000100 // "" + + // Flags for device installation + DI_NOBROWSE DI_FLAGS = 0x00000200 // no Browse... in InsertDisk + + // Flags set by DiBuildDriverInfoList + DI_MULTMFGS DI_FLAGS = 0x00000400 // Set if multiple manufacturers in class driver list + + // Flag indicates that device is disabled + DI_DISABLED DI_FLAGS = 0x00000800 // Set if device disabled + + // Flags for Device/Class Properties + DI_GENERALPAGE_ADDED DI_FLAGS = 0x00001000 + DI_RESOURCEPAGE_ADDED DI_FLAGS = 0x00002000 + + // Flag to indicate the setting properties for this Device (or class) caused a change so the Dev Mgr UI probably needs to be updated. + DI_PROPERTIES_CHANGE DI_FLAGS = 0x00004000 + + // Flag to indicate that the sorting from the INF file should be used. + DI_INF_IS_SORTED DI_FLAGS = 0x00008000 + + // Flag to indicate that only the INF specified by SP_DEVINSTALL_PARAMS.DriverPath should be searched. + DI_ENUMSINGLEINF DI_FLAGS = 0x00010000 + + // Flag that prevents ConfigMgr from removing/re-enumerating devices during device + // registration, installation, and deletion. + DI_DONOTCALLCONFIGMG DI_FLAGS = 0x00020000 + + // The following flag can be used to install a device disabled + DI_INSTALLDISABLED DI_FLAGS = 0x00040000 + + // Flag that causes SetupDiBuildDriverInfoList to build a device's compatible driver + // list from its existing class driver list, instead of the normal INF search. + DI_COMPAT_FROM_CLASS DI_FLAGS = 0x00080000 + + // This flag is set if the Class Install params should be used. + DI_CLASSINSTALLPARAMS DI_FLAGS = 0x00100000 + + // This flag is set if the caller of DiCallClassInstaller does NOT want the internal default action performed if the Class installer returns ERROR_DI_DO_DEFAULT. + DI_NODI_DEFAULTACTION DI_FLAGS = 0x00200000 + + // Flags for device installation + DI_QUIETINSTALL DI_FLAGS = 0x00800000 // don't confuse the user with questions or excess info + DI_NOFILECOPY DI_FLAGS = 0x01000000 // No file Copy necessary + DI_FORCECOPY DI_FLAGS = 0x02000000 // Force files to be copied from install path + DI_DRIVERPAGE_ADDED DI_FLAGS = 0x04000000 // Prop provider added Driver page. + DI_USECI_SELECTSTRINGS DI_FLAGS = 0x08000000 // Use Class Installer Provided strings in the Select Device Dlg + DI_OVERRIDE_INFFLAGS DI_FLAGS = 0x10000000 // Override INF flags + DI_PROPS_NOCHANGEUSAGE DI_FLAGS = 0x20000000 // No Enable/Disable in General Props + + DI_NOSELECTICONS DI_FLAGS = 0x40000000 // No small icons in select device dialogs + + DI_NOWRITE_IDS DI_FLAGS = 0x80000000 // Don't write HW & Compat IDs on install +) + +// DI_FLAGSEX is SP_DEVINSTALL_PARAMS.FlagsEx values +type DI_FLAGSEX uint32 + +const ( + DI_FLAGSEX_CI_FAILED DI_FLAGSEX = 0x00000004 // Failed to Load/Call class installer + DI_FLAGSEX_FINISHINSTALL_ACTION DI_FLAGSEX = 0x00000008 // Class/co-installer wants to get a DIF_FINISH_INSTALL action in client context. + DI_FLAGSEX_DIDINFOLIST DI_FLAGSEX = 0x00000010 // Did the Class Info List + DI_FLAGSEX_DIDCOMPATINFO DI_FLAGSEX = 0x00000020 // Did the Compat Info List + DI_FLAGSEX_FILTERCLASSES DI_FLAGSEX = 0x00000040 + DI_FLAGSEX_SETFAILEDINSTALL DI_FLAGSEX = 0x00000080 + DI_FLAGSEX_DEVICECHANGE DI_FLAGSEX = 0x00000100 + DI_FLAGSEX_ALWAYSWRITEIDS DI_FLAGSEX = 0x00000200 + DI_FLAGSEX_PROPCHANGE_PENDING DI_FLAGSEX = 0x00000400 // One or more device property sheets have had changes made to them, and need to have a DIF_PROPERTYCHANGE occur. + DI_FLAGSEX_ALLOWEXCLUDEDDRVS DI_FLAGSEX = 0x00000800 + DI_FLAGSEX_NOUIONQUERYREMOVE DI_FLAGSEX = 0x00001000 + DI_FLAGSEX_USECLASSFORCOMPAT DI_FLAGSEX = 0x00002000 // Use the device's class when building compat drv list. (Ignored if DI_COMPAT_FROM_CLASS flag is specified.) + DI_FLAGSEX_NO_DRVREG_MODIFY DI_FLAGSEX = 0x00008000 // Don't run AddReg and DelReg for device's software (driver) key. + DI_FLAGSEX_IN_SYSTEM_SETUP DI_FLAGSEX = 0x00010000 // Installation is occurring during initial system setup. + DI_FLAGSEX_INET_DRIVER DI_FLAGSEX = 0x00020000 // Driver came from Windows Update + DI_FLAGSEX_APPENDDRIVERLIST DI_FLAGSEX = 0x00040000 // Cause SetupDiBuildDriverInfoList to append a new driver list to an existing list. + DI_FLAGSEX_PREINSTALLBACKUP DI_FLAGSEX = 0x00080000 // not used + DI_FLAGSEX_BACKUPONREPLACE DI_FLAGSEX = 0x00100000 // not used + DI_FLAGSEX_DRIVERLIST_FROM_URL DI_FLAGSEX = 0x00200000 // build driver list from INF(s) retrieved from URL specified in SP_DEVINSTALL_PARAMS.DriverPath (empty string means Windows Update website) + DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS DI_FLAGSEX = 0x00800000 // Don't include old Internet drivers when building a driver list. Ignored on Windows Vista and later. + DI_FLAGSEX_POWERPAGE_ADDED DI_FLAGSEX = 0x01000000 // class installer added their own power page + DI_FLAGSEX_FILTERSIMILARDRIVERS DI_FLAGSEX = 0x02000000 // only include similar drivers in class list + DI_FLAGSEX_INSTALLEDDRIVER DI_FLAGSEX = 0x04000000 // only add the installed driver to the class or compat driver list. Used in calls to SetupDiBuildDriverInfoList + DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE DI_FLAGSEX = 0x08000000 // Don't remove identical driver nodes from the class list + DI_FLAGSEX_ALTPLATFORM_DRVSEARCH DI_FLAGSEX = 0x10000000 // Build driver list based on alternate platform information specified in associated file queue + DI_FLAGSEX_RESTART_DEVICE_ONLY DI_FLAGSEX = 0x20000000 // only restart the device drivers are being installed on as opposed to restarting all devices using those drivers. + DI_FLAGSEX_RECURSIVESEARCH DI_FLAGSEX = 0x40000000 // Tell SetupDiBuildDriverInfoList to do a recursive search + DI_FLAGSEX_SEARCH_PUBLISHED_INFS DI_FLAGSEX = 0x80000000 // Tell SetupDiBuildDriverInfoList to do a "published INF" search +) + +// ClassInstallHeader is the first member of any class install parameters structure. It contains the device installation request code that defines the format of the rest of the install parameters structure. +type ClassInstallHeader struct { + size uint32 + InstallFunction DI_FUNCTION +} + +func MakeClassInstallHeader(installFunction DI_FUNCTION) *ClassInstallHeader { + hdr := &ClassInstallHeader{InstallFunction: installFunction} + hdr.size = uint32(unsafe.Sizeof(*hdr)) + return hdr +} + +// DICS_STATE specifies values indicating a change in a device's state +type DICS_STATE uint32 + +const ( + DICS_ENABLE DICS_STATE = 0x00000001 // The device is being enabled. + DICS_DISABLE DICS_STATE = 0x00000002 // The device is being disabled. + DICS_PROPCHANGE DICS_STATE = 0x00000003 // The properties of the device have changed. + DICS_START DICS_STATE = 0x00000004 // The device is being started (if the request is for the currently active hardware profile). + DICS_STOP DICS_STATE = 0x00000005 // The device is being stopped. The driver stack will be unloaded and the CSCONFIGFLAG_DO_NOT_START flag will be set for the device. +) + +// DICS_FLAG specifies the scope of a device property change +type DICS_FLAG uint32 + +const ( + DICS_FLAG_GLOBAL DICS_FLAG = 0x00000001 // make change in all hardware profiles + DICS_FLAG_CONFIGSPECIFIC DICS_FLAG = 0x00000002 // make change in specified profile only + DICS_FLAG_CONFIGGENERAL DICS_FLAG = 0x00000004 // 1 or more hardware profile-specific changes to follow (obsolete) +) + +// PropChangeParams is a structure corresponding to a DIF_PROPERTYCHANGE install function. +type PropChangeParams struct { + ClassInstallHeader ClassInstallHeader + StateChange DICS_STATE + Scope DICS_FLAG + HwProfile uint32 +} + +// DI_REMOVEDEVICE specifies the scope of the device removal +type DI_REMOVEDEVICE uint32 + +const ( + DI_REMOVEDEVICE_GLOBAL DI_REMOVEDEVICE = 0x00000001 // Make this change in all hardware profiles. Remove information about the device from the registry. + DI_REMOVEDEVICE_CONFIGSPECIFIC DI_REMOVEDEVICE = 0x00000002 // Make this change to only the hardware profile specified by HwProfile. this flag only applies to root-enumerated devices. When Windows removes the device from the last hardware profile in which it was configured, Windows performs a global removal. +) + +// RemoveDeviceParams is a structure corresponding to a DIF_REMOVE install function. +type RemoveDeviceParams struct { + ClassInstallHeader ClassInstallHeader + Scope DI_REMOVEDEVICE + HwProfile uint32 +} + +// DrvInfoData is driver information structure (member of a driver info list that may be associated with a particular device instance, or (globally) with a device information set) +type DrvInfoData struct { + size uint32 + DriverType uint32 + _ uintptr + description [LINE_LEN]uint16 + mfgName [LINE_LEN]uint16 + providerName [LINE_LEN]uint16 + DriverDate Filetime + DriverVersion uint64 +} + +func (data *DrvInfoData) Description() string { + return UTF16ToString(data.description[:]) +} + +func (data *DrvInfoData) SetDescription(description string) error { + str, err := UTF16FromString(description) + if err != nil { + return err + } + copy(data.description[:], str) + return nil +} + +func (data *DrvInfoData) MfgName() string { + return UTF16ToString(data.mfgName[:]) +} + +func (data *DrvInfoData) SetMfgName(mfgName string) error { + str, err := UTF16FromString(mfgName) + if err != nil { + return err + } + copy(data.mfgName[:], str) + return nil +} + +func (data *DrvInfoData) ProviderName() string { + return UTF16ToString(data.providerName[:]) +} + +func (data *DrvInfoData) SetProviderName(providerName string) error { + str, err := UTF16FromString(providerName) + if err != nil { + return err + } + copy(data.providerName[:], str) + return nil +} + +// IsNewer method returns true if DrvInfoData date and version is newer than supplied parameters. +func (data *DrvInfoData) IsNewer(driverDate Filetime, driverVersion uint64) bool { + if data.DriverDate.HighDateTime > driverDate.HighDateTime { + return true + } + if data.DriverDate.HighDateTime < driverDate.HighDateTime { + return false + } + + if data.DriverDate.LowDateTime > driverDate.LowDateTime { + return true + } + if data.DriverDate.LowDateTime < driverDate.LowDateTime { + return false + } + + if data.DriverVersion > driverVersion { + return true + } + if data.DriverVersion < driverVersion { + return false + } + + return false +} + +// DrvInfoDetailData is driver information details structure (provides detailed information about a particular driver information structure) +type DrvInfoDetailData struct { + size uint32 // Use unsafeSizeOf method + InfDate Filetime + compatIDsOffset uint32 + compatIDsLength uint32 + _ uintptr + sectionName [LINE_LEN]uint16 + infFileName [MAX_PATH]uint16 + drvDescription [LINE_LEN]uint16 + hardwareID [1]uint16 +} + +func (*DrvInfoDetailData) unsafeSizeOf() uint32 { + if unsafe.Sizeof(uintptr(0)) == 4 { + // Windows declares this with pshpack1.h + return uint32(unsafe.Offsetof(DrvInfoDetailData{}.hardwareID) + unsafe.Sizeof(DrvInfoDetailData{}.hardwareID)) + } + return uint32(unsafe.Sizeof(DrvInfoDetailData{})) +} + +func (data *DrvInfoDetailData) SectionName() string { + return UTF16ToString(data.sectionName[:]) +} + +func (data *DrvInfoDetailData) InfFileName() string { + return UTF16ToString(data.infFileName[:]) +} + +func (data *DrvInfoDetailData) DrvDescription() string { + return UTF16ToString(data.drvDescription[:]) +} + +func (data *DrvInfoDetailData) HardwareID() string { + if data.compatIDsOffset > 1 { + bufW := data.getBuf() + return UTF16ToString(bufW[:wcslen(bufW)]) + } + + return "" +} + +func (data *DrvInfoDetailData) CompatIDs() []string { + a := make([]string, 0) + + if data.compatIDsLength > 0 { + bufW := data.getBuf() + bufW = bufW[data.compatIDsOffset : data.compatIDsOffset+data.compatIDsLength] + for i := 0; i < len(bufW); { + j := i + wcslen(bufW[i:]) + if i < j { + a = append(a, UTF16ToString(bufW[i:j])) + } + i = j + 1 + } + } + + return a +} + +func (data *DrvInfoDetailData) getBuf() []uint16 { + len := (data.size - uint32(unsafe.Offsetof(data.hardwareID))) / 2 + sl := struct { + addr *uint16 + len int + cap int + }{&data.hardwareID[0], int(len), int(len)} + return *(*[]uint16)(unsafe.Pointer(&sl)) +} + +// IsCompatible method tests if given hardware ID matches the driver or is listed on the compatible ID list. +func (data *DrvInfoDetailData) IsCompatible(hwid string) bool { + hwidLC := strings.ToLower(hwid) + if strings.ToLower(data.HardwareID()) == hwidLC { + return true + } + a := data.CompatIDs() + for i := range a { + if strings.ToLower(a[i]) == hwidLC { + return true + } + } + + return false +} + +// DICD flags control SetupDiCreateDeviceInfo +type DICD uint32 + +const ( + DICD_GENERATE_ID DICD = 0x00000001 + DICD_INHERIT_CLASSDRVS DICD = 0x00000002 +) + +// SUOI flags control SetupUninstallOEMInf +type SUOI uint32 + +const ( + SUOI_FORCEDELETE SUOI = 0x0001 +) + +// SPDIT flags to distinguish between class drivers and +// device drivers. (Passed in 'DriverType' parameter of +// driver information list APIs) +type SPDIT uint32 + +const ( + SPDIT_NODRIVER SPDIT = 0x00000000 + SPDIT_CLASSDRIVER SPDIT = 0x00000001 + SPDIT_COMPATDRIVER SPDIT = 0x00000002 +) + +// DIGCF flags control what is included in the device information set built by SetupDiGetClassDevs +type DIGCF uint32 + +const ( + DIGCF_DEFAULT DIGCF = 0x00000001 // only valid with DIGCF_DEVICEINTERFACE + DIGCF_PRESENT DIGCF = 0x00000002 + DIGCF_ALLCLASSES DIGCF = 0x00000004 + DIGCF_PROFILE DIGCF = 0x00000008 + DIGCF_DEVICEINTERFACE DIGCF = 0x00000010 +) + +// DIREG specifies values for SetupDiCreateDevRegKey, SetupDiOpenDevRegKey, and SetupDiDeleteDevRegKey. +type DIREG uint32 + +const ( + DIREG_DEV DIREG = 0x00000001 // Open/Create/Delete device key + DIREG_DRV DIREG = 0x00000002 // Open/Create/Delete driver key + DIREG_BOTH DIREG = 0x00000004 // Delete both driver and Device key +) + +// SPDRP specifies device registry property codes +// (Codes marked as read-only (R) may only be used for +// SetupDiGetDeviceRegistryProperty) +// +// These values should cover the same set of registry properties +// as defined by the CM_DRP codes in cfgmgr32.h. +// +// Note that SPDRP codes are zero based while CM_DRP codes are one based! +type SPDRP uint32 + +const ( + SPDRP_DEVICEDESC SPDRP = 0x00000000 // DeviceDesc (R/W) + SPDRP_HARDWAREID SPDRP = 0x00000001 // HardwareID (R/W) + SPDRP_COMPATIBLEIDS SPDRP = 0x00000002 // CompatibleIDs (R/W) + SPDRP_SERVICE SPDRP = 0x00000004 // Service (R/W) + SPDRP_CLASS SPDRP = 0x00000007 // Class (R--tied to ClassGUID) + SPDRP_CLASSGUID SPDRP = 0x00000008 // ClassGUID (R/W) + SPDRP_DRIVER SPDRP = 0x00000009 // Driver (R/W) + SPDRP_CONFIGFLAGS SPDRP = 0x0000000A // ConfigFlags (R/W) + SPDRP_MFG SPDRP = 0x0000000B // Mfg (R/W) + SPDRP_FRIENDLYNAME SPDRP = 0x0000000C // FriendlyName (R/W) + SPDRP_LOCATION_INFORMATION SPDRP = 0x0000000D // LocationInformation (R/W) + SPDRP_PHYSICAL_DEVICE_OBJECT_NAME SPDRP = 0x0000000E // PhysicalDeviceObjectName (R) + SPDRP_CAPABILITIES SPDRP = 0x0000000F // Capabilities (R) + SPDRP_UI_NUMBER SPDRP = 0x00000010 // UiNumber (R) + SPDRP_UPPERFILTERS SPDRP = 0x00000011 // UpperFilters (R/W) + SPDRP_LOWERFILTERS SPDRP = 0x00000012 // LowerFilters (R/W) + SPDRP_BUSTYPEGUID SPDRP = 0x00000013 // BusTypeGUID (R) + SPDRP_LEGACYBUSTYPE SPDRP = 0x00000014 // LegacyBusType (R) + SPDRP_BUSNUMBER SPDRP = 0x00000015 // BusNumber (R) + SPDRP_ENUMERATOR_NAME SPDRP = 0x00000016 // Enumerator Name (R) + SPDRP_SECURITY SPDRP = 0x00000017 // Security (R/W, binary form) + SPDRP_SECURITY_SDS SPDRP = 0x00000018 // Security (W, SDS form) + SPDRP_DEVTYPE SPDRP = 0x00000019 // Device Type (R/W) + SPDRP_EXCLUSIVE SPDRP = 0x0000001A // Device is exclusive-access (R/W) + SPDRP_CHARACTERISTICS SPDRP = 0x0000001B // Device Characteristics (R/W) + SPDRP_ADDRESS SPDRP = 0x0000001C // Device Address (R) + SPDRP_UI_NUMBER_DESC_FORMAT SPDRP = 0x0000001D // UiNumberDescFormat (R/W) + SPDRP_DEVICE_POWER_DATA SPDRP = 0x0000001E // Device Power Data (R) + SPDRP_REMOVAL_POLICY SPDRP = 0x0000001F // Removal Policy (R) + SPDRP_REMOVAL_POLICY_HW_DEFAULT SPDRP = 0x00000020 // Hardware Removal Policy (R) + SPDRP_REMOVAL_POLICY_OVERRIDE SPDRP = 0x00000021 // Removal Policy Override (RW) + SPDRP_INSTALL_STATE SPDRP = 0x00000022 // Device Install State (R) + SPDRP_LOCATION_PATHS SPDRP = 0x00000023 // Device Location Paths (R) + SPDRP_BASE_CONTAINERID SPDRP = 0x00000024 // Base ContainerID (R) + + SPDRP_MAXIMUM_PROPERTY SPDRP = 0x00000025 // Upper bound on ordinals +) + +// DEVPROPTYPE represents the property-data-type identifier that specifies the +// data type of a device property value in the unified device property model. +type DEVPROPTYPE uint32 + +const ( + DEVPROP_TYPEMOD_ARRAY DEVPROPTYPE = 0x00001000 + DEVPROP_TYPEMOD_LIST DEVPROPTYPE = 0x00002000 + + DEVPROP_TYPE_EMPTY DEVPROPTYPE = 0x00000000 + DEVPROP_TYPE_NULL DEVPROPTYPE = 0x00000001 + DEVPROP_TYPE_SBYTE DEVPROPTYPE = 0x00000002 + DEVPROP_TYPE_BYTE DEVPROPTYPE = 0x00000003 + DEVPROP_TYPE_INT16 DEVPROPTYPE = 0x00000004 + DEVPROP_TYPE_UINT16 DEVPROPTYPE = 0x00000005 + DEVPROP_TYPE_INT32 DEVPROPTYPE = 0x00000006 + DEVPROP_TYPE_UINT32 DEVPROPTYPE = 0x00000007 + DEVPROP_TYPE_INT64 DEVPROPTYPE = 0x00000008 + DEVPROP_TYPE_UINT64 DEVPROPTYPE = 0x00000009 + DEVPROP_TYPE_FLOAT DEVPROPTYPE = 0x0000000A + DEVPROP_TYPE_DOUBLE DEVPROPTYPE = 0x0000000B + DEVPROP_TYPE_DECIMAL DEVPROPTYPE = 0x0000000C + DEVPROP_TYPE_GUID DEVPROPTYPE = 0x0000000D + DEVPROP_TYPE_CURRENCY DEVPROPTYPE = 0x0000000E + DEVPROP_TYPE_DATE DEVPROPTYPE = 0x0000000F + DEVPROP_TYPE_FILETIME DEVPROPTYPE = 0x00000010 + DEVPROP_TYPE_BOOLEAN DEVPROPTYPE = 0x00000011 + DEVPROP_TYPE_STRING DEVPROPTYPE = 0x00000012 + DEVPROP_TYPE_STRING_LIST DEVPROPTYPE = DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST + DEVPROP_TYPE_SECURITY_DESCRIPTOR DEVPROPTYPE = 0x00000013 + DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING DEVPROPTYPE = 0x00000014 + DEVPROP_TYPE_DEVPROPKEY DEVPROPTYPE = 0x00000015 + DEVPROP_TYPE_DEVPROPTYPE DEVPROPTYPE = 0x00000016 + DEVPROP_TYPE_BINARY DEVPROPTYPE = DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY + DEVPROP_TYPE_ERROR DEVPROPTYPE = 0x00000017 + DEVPROP_TYPE_NTSTATUS DEVPROPTYPE = 0x00000018 + DEVPROP_TYPE_STRING_INDIRECT DEVPROPTYPE = 0x00000019 + + MAX_DEVPROP_TYPE DEVPROPTYPE = 0x00000019 + MAX_DEVPROP_TYPEMOD DEVPROPTYPE = 0x00002000 + + DEVPROP_MASK_TYPE DEVPROPTYPE = 0x00000FFF + DEVPROP_MASK_TYPEMOD DEVPROPTYPE = 0x0000F000 +) + +// DEVPROPGUID specifies a property category. +type DEVPROPGUID GUID + +// DEVPROPID uniquely identifies the property within the property category. +type DEVPROPID uint32 + +const DEVPROPID_FIRST_USABLE DEVPROPID = 2 + +// DEVPROPKEY represents a device property key for a device property in the +// unified device property model. +type DEVPROPKEY struct { + FmtID DEVPROPGUID + PID DEVPROPID +} + +// CONFIGRET is a return value or error code from cfgmgr32 APIs +type CONFIGRET uint32 + +func (ret CONFIGRET) Error() string { + if win32Error, ok := ret.Unwrap().(Errno); ok { + return fmt.Sprintf("%s (CfgMgr error: 0x%08x)", win32Error.Error(), uint32(ret)) + } + return fmt.Sprintf("CfgMgr error: 0x%08x", uint32(ret)) +} + +func (ret CONFIGRET) Win32Error(defaultError Errno) Errno { + return cm_MapCrToWin32Err(ret, defaultError) +} + +func (ret CONFIGRET) Unwrap() error { + const noMatch = Errno(^uintptr(0)) + win32Error := ret.Win32Error(noMatch) + if win32Error == noMatch { + return nil + } + return win32Error +} + +const ( + CR_SUCCESS CONFIGRET = 0x00000000 + CR_DEFAULT CONFIGRET = 0x00000001 + CR_OUT_OF_MEMORY CONFIGRET = 0x00000002 + CR_INVALID_POINTER CONFIGRET = 0x00000003 + CR_INVALID_FLAG CONFIGRET = 0x00000004 + CR_INVALID_DEVNODE CONFIGRET = 0x00000005 + CR_INVALID_DEVINST = CR_INVALID_DEVNODE + CR_INVALID_RES_DES CONFIGRET = 0x00000006 + CR_INVALID_LOG_CONF CONFIGRET = 0x00000007 + CR_INVALID_ARBITRATOR CONFIGRET = 0x00000008 + CR_INVALID_NODELIST CONFIGRET = 0x00000009 + CR_DEVNODE_HAS_REQS CONFIGRET = 0x0000000A + CR_DEVINST_HAS_REQS = CR_DEVNODE_HAS_REQS + CR_INVALID_RESOURCEID CONFIGRET = 0x0000000B + CR_DLVXD_NOT_FOUND CONFIGRET = 0x0000000C + CR_NO_SUCH_DEVNODE CONFIGRET = 0x0000000D + CR_NO_SUCH_DEVINST = CR_NO_SUCH_DEVNODE + CR_NO_MORE_LOG_CONF CONFIGRET = 0x0000000E + CR_NO_MORE_RES_DES CONFIGRET = 0x0000000F + CR_ALREADY_SUCH_DEVNODE CONFIGRET = 0x00000010 + CR_ALREADY_SUCH_DEVINST = CR_ALREADY_SUCH_DEVNODE + CR_INVALID_RANGE_LIST CONFIGRET = 0x00000011 + CR_INVALID_RANGE CONFIGRET = 0x00000012 + CR_FAILURE CONFIGRET = 0x00000013 + CR_NO_SUCH_LOGICAL_DEV CONFIGRET = 0x00000014 + CR_CREATE_BLOCKED CONFIGRET = 0x00000015 + CR_NOT_SYSTEM_VM CONFIGRET = 0x00000016 + CR_REMOVE_VETOED CONFIGRET = 0x00000017 + CR_APM_VETOED CONFIGRET = 0x00000018 + CR_INVALID_LOAD_TYPE CONFIGRET = 0x00000019 + CR_BUFFER_SMALL CONFIGRET = 0x0000001A + CR_NO_ARBITRATOR CONFIGRET = 0x0000001B + CR_NO_REGISTRY_HANDLE CONFIGRET = 0x0000001C + CR_REGISTRY_ERROR CONFIGRET = 0x0000001D + CR_INVALID_DEVICE_ID CONFIGRET = 0x0000001E + CR_INVALID_DATA CONFIGRET = 0x0000001F + CR_INVALID_API CONFIGRET = 0x00000020 + CR_DEVLOADER_NOT_READY CONFIGRET = 0x00000021 + CR_NEED_RESTART CONFIGRET = 0x00000022 + CR_NO_MORE_HW_PROFILES CONFIGRET = 0x00000023 + CR_DEVICE_NOT_THERE CONFIGRET = 0x00000024 + CR_NO_SUCH_VALUE CONFIGRET = 0x00000025 + CR_WRONG_TYPE CONFIGRET = 0x00000026 + CR_INVALID_PRIORITY CONFIGRET = 0x00000027 + CR_NOT_DISABLEABLE CONFIGRET = 0x00000028 + CR_FREE_RESOURCES CONFIGRET = 0x00000029 + CR_QUERY_VETOED CONFIGRET = 0x0000002A + CR_CANT_SHARE_IRQ CONFIGRET = 0x0000002B + CR_NO_DEPENDENT CONFIGRET = 0x0000002C + CR_SAME_RESOURCES CONFIGRET = 0x0000002D + CR_NO_SUCH_REGISTRY_KEY CONFIGRET = 0x0000002E + CR_INVALID_MACHINENAME CONFIGRET = 0x0000002F + CR_REMOTE_COMM_FAILURE CONFIGRET = 0x00000030 + CR_MACHINE_UNAVAILABLE CONFIGRET = 0x00000031 + CR_NO_CM_SERVICES CONFIGRET = 0x00000032 + CR_ACCESS_DENIED CONFIGRET = 0x00000033 + CR_CALL_NOT_IMPLEMENTED CONFIGRET = 0x00000034 + CR_INVALID_PROPERTY CONFIGRET = 0x00000035 + CR_DEVICE_INTERFACE_ACTIVE CONFIGRET = 0x00000036 + CR_NO_SUCH_DEVICE_INTERFACE CONFIGRET = 0x00000037 + CR_INVALID_REFERENCE_STRING CONFIGRET = 0x00000038 + CR_INVALID_CONFLICT_LIST CONFIGRET = 0x00000039 + CR_INVALID_INDEX CONFIGRET = 0x0000003A + CR_INVALID_STRUCTURE_SIZE CONFIGRET = 0x0000003B + NUM_CR_RESULTS CONFIGRET = 0x0000003C +) + +const ( + CM_GET_DEVICE_INTERFACE_LIST_PRESENT = 0 // only currently 'live' device interfaces + CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES = 1 // all registered device interfaces, live or not +) + +const ( + DN_ROOT_ENUMERATED = 0x00000001 // Was enumerated by ROOT + DN_DRIVER_LOADED = 0x00000002 // Has Register_Device_Driver + DN_ENUM_LOADED = 0x00000004 // Has Register_Enumerator + DN_STARTED = 0x00000008 // Is currently configured + DN_MANUAL = 0x00000010 // Manually installed + DN_NEED_TO_ENUM = 0x00000020 // May need reenumeration + DN_NOT_FIRST_TIME = 0x00000040 // Has received a config + DN_HARDWARE_ENUM = 0x00000080 // Enum generates hardware ID + DN_LIAR = 0x00000100 // Lied about can reconfig once + DN_HAS_MARK = 0x00000200 // Not CM_Create_DevInst lately + DN_HAS_PROBLEM = 0x00000400 // Need device installer + DN_FILTERED = 0x00000800 // Is filtered + DN_MOVED = 0x00001000 // Has been moved + DN_DISABLEABLE = 0x00002000 // Can be disabled + DN_REMOVABLE = 0x00004000 // Can be removed + DN_PRIVATE_PROBLEM = 0x00008000 // Has a private problem + DN_MF_PARENT = 0x00010000 // Multi function parent + DN_MF_CHILD = 0x00020000 // Multi function child + DN_WILL_BE_REMOVED = 0x00040000 // DevInst is being removed + DN_NOT_FIRST_TIMEE = 0x00080000 // Has received a config enumerate + DN_STOP_FREE_RES = 0x00100000 // When child is stopped, free resources + DN_REBAL_CANDIDATE = 0x00200000 // Don't skip during rebalance + DN_BAD_PARTIAL = 0x00400000 // This devnode's log_confs do not have same resources + DN_NT_ENUMERATOR = 0x00800000 // This devnode's is an NT enumerator + DN_NT_DRIVER = 0x01000000 // This devnode's is an NT driver + DN_NEEDS_LOCKING = 0x02000000 // Devnode need lock resume processing + DN_ARM_WAKEUP = 0x04000000 // Devnode can be the wakeup device + DN_APM_ENUMERATOR = 0x08000000 // APM aware enumerator + DN_APM_DRIVER = 0x10000000 // APM aware driver + DN_SILENT_INSTALL = 0x20000000 // Silent install + DN_NO_SHOW_IN_DM = 0x40000000 // No show in device manager + DN_BOOT_LOG_PROB = 0x80000000 // Had a problem during preassignment of boot log conf + DN_NEED_RESTART = DN_LIAR // System needs to be restarted for this Devnode to work properly + DN_DRIVER_BLOCKED = DN_NOT_FIRST_TIME // One or more drivers are blocked from loading for this Devnode + DN_LEGACY_DRIVER = DN_MOVED // This device is using a legacy driver + DN_CHILD_WITH_INVALID_ID = DN_HAS_MARK // One or more children have invalid IDs + DN_DEVICE_DISCONNECTED = DN_NEEDS_LOCKING // The function driver for a device reported that the device is not connected. Typically this means a wireless device is out of range. + DN_QUERY_REMOVE_PENDING = DN_MF_PARENT // Device is part of a set of related devices collectively pending query-removal + DN_QUERY_REMOVE_ACTIVE = DN_MF_CHILD // Device is actively engaged in a query-remove IRP + DN_CHANGEABLE_FLAGS = DN_NOT_FIRST_TIME | DN_HARDWARE_ENUM | DN_HAS_MARK | DN_DISABLEABLE | DN_REMOVABLE | DN_MF_CHILD | DN_MF_PARENT | DN_NOT_FIRST_TIMEE | DN_STOP_FREE_RES | DN_REBAL_CANDIDATE | DN_NT_ENUMERATOR | DN_NT_DRIVER | DN_SILENT_INSTALL | DN_NO_SHOW_IN_DM +) + +//sys setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiCreateDeviceInfoListExW + +// SetupDiCreateDeviceInfoListEx function creates an empty device information set on a remote or a local computer and optionally associates the set with a device setup class. +func SetupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName string) (deviceInfoSet DevInfo, err error) { + var machineNameUTF16 *uint16 + if machineName != "" { + machineNameUTF16, err = UTF16PtrFromString(machineName) + if err != nil { + return + } + } + return setupDiCreateDeviceInfoListEx(classGUID, hwndParent, machineNameUTF16, 0) +} + +//sys setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) = setupapi.SetupDiGetDeviceInfoListDetailW + +// SetupDiGetDeviceInfoListDetail function retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name. +func SetupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo) (deviceInfoSetDetailData *DevInfoListDetailData, err error) { + data := &DevInfoListDetailData{} + data.size = data.unsafeSizeOf() + + return data, setupDiGetDeviceInfoListDetail(deviceInfoSet, data) +} + +// DeviceInfoListDetail method retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name. +func (deviceInfoSet DevInfo) DeviceInfoListDetail() (*DevInfoListDetailData, error) { + return SetupDiGetDeviceInfoListDetail(deviceInfoSet) +} + +//sys setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCreateDeviceInfoW + +// SetupDiCreateDeviceInfo function creates a new device information element and adds it as a new member to the specified device information set. +func SetupDiCreateDeviceInfo(deviceInfoSet DevInfo, deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (deviceInfoData *DevInfoData, err error) { + deviceNameUTF16, err := UTF16PtrFromString(deviceName) + if err != nil { + return + } + + var deviceDescriptionUTF16 *uint16 + if deviceDescription != "" { + deviceDescriptionUTF16, err = UTF16PtrFromString(deviceDescription) + if err != nil { + return + } + } + + data := &DevInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiCreateDeviceInfo(deviceInfoSet, deviceNameUTF16, classGUID, deviceDescriptionUTF16, hwndParent, creationFlags, data) +} + +// CreateDeviceInfo method creates a new device information element and adds it as a new member to the specified device information set. +func (deviceInfoSet DevInfo) CreateDeviceInfo(deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (*DevInfoData, error) { + return SetupDiCreateDeviceInfo(deviceInfoSet, deviceName, classGUID, deviceDescription, hwndParent, creationFlags) +} + +//sys setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiEnumDeviceInfo + +// SetupDiEnumDeviceInfo function returns a DevInfoData structure that specifies a device information element in a device information set. +func SetupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex int) (*DevInfoData, error) { + data := &DevInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiEnumDeviceInfo(deviceInfoSet, uint32(memberIndex), data) +} + +// EnumDeviceInfo method returns a DevInfoData structure that specifies a device information element in a device information set. +func (deviceInfoSet DevInfo) EnumDeviceInfo(memberIndex int) (*DevInfoData, error) { + return SetupDiEnumDeviceInfo(deviceInfoSet, memberIndex) +} + +// SetupDiDestroyDeviceInfoList function deletes a device information set and frees all associated memory. +//sys SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiDestroyDeviceInfoList + +// Close method deletes a device information set and frees all associated memory. +func (deviceInfoSet DevInfo) Close() error { + return SetupDiDestroyDeviceInfoList(deviceInfoSet) +} + +//sys SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiBuildDriverInfoList + +// BuildDriverInfoList method builds a list of drivers that is associated with a specific device or with the global class driver list for a device information set. +func (deviceInfoSet DevInfo) BuildDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error { + return SetupDiBuildDriverInfoList(deviceInfoSet, deviceInfoData, driverType) +} + +//sys SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiCancelDriverInfoSearch + +// CancelDriverInfoSearch method cancels a driver list search that is currently in progress in a different thread. +func (deviceInfoSet DevInfo) CancelDriverInfoSearch() error { + return SetupDiCancelDriverInfoSearch(deviceInfoSet) +} + +//sys setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiEnumDriverInfoW + +// SetupDiEnumDriverInfo function enumerates the members of a driver list. +func SetupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) { + data := &DrvInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, uint32(memberIndex), data) +} + +// EnumDriverInfo method enumerates the members of a driver list. +func (deviceInfoSet DevInfo) EnumDriverInfo(deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) { + return SetupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, memberIndex) +} + +//sys setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiGetSelectedDriverW + +// SetupDiGetSelectedDriver function retrieves the selected driver for a device information set or a particular device information element. +func SetupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DrvInfoData, error) { + data := &DrvInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiGetSelectedDriver(deviceInfoSet, deviceInfoData, data) +} + +// SelectedDriver method retrieves the selected driver for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) SelectedDriver(deviceInfoData *DevInfoData) (*DrvInfoData, error) { + return SetupDiGetSelectedDriver(deviceInfoSet, deviceInfoData) +} + +//sys SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiSetSelectedDriverW + +// SetSelectedDriver method sets, or resets, the selected driver for a device information element or the selected class driver for a device information set. +func (deviceInfoSet DevInfo) SetSelectedDriver(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) error { + return SetupDiSetSelectedDriver(deviceInfoSet, deviceInfoData, driverInfoData) +} + +//sys setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDriverInfoDetailW + +// SetupDiGetDriverInfoDetail function retrieves driver information detail for a device information set or a particular device information element in the device information set. +func SetupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) { + reqSize := uint32(2048) + for { + buf := make([]byte, reqSize) + data := (*DrvInfoDetailData)(unsafe.Pointer(&buf[0])) + data.size = data.unsafeSizeOf() + err := setupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData, data, uint32(len(buf)), &reqSize) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return nil, err + } + data.size = reqSize + return data, nil + } +} + +// DriverInfoDetail method retrieves driver information detail for a device information set or a particular device information element in the device information set. +func (deviceInfoSet DevInfo) DriverInfoDetail(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) { + return SetupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData) +} + +//sys SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiDestroyDriverInfoList + +// DestroyDriverInfoList method deletes a driver list. +func (deviceInfoSet DevInfo) DestroyDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error { + return SetupDiDestroyDriverInfoList(deviceInfoSet, deviceInfoData, driverType) +} + +//sys setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiGetClassDevsExW + +// SetupDiGetClassDevsEx function returns a handle to a device information set that contains requested device information elements for a local or a remote computer. +func SetupDiGetClassDevsEx(classGUID *GUID, enumerator string, hwndParent uintptr, flags DIGCF, deviceInfoSet DevInfo, machineName string) (handle DevInfo, err error) { + var enumeratorUTF16 *uint16 + if enumerator != "" { + enumeratorUTF16, err = UTF16PtrFromString(enumerator) + if err != nil { + return + } + } + var machineNameUTF16 *uint16 + if machineName != "" { + machineNameUTF16, err = UTF16PtrFromString(machineName) + if err != nil { + return + } + } + return setupDiGetClassDevsEx(classGUID, enumeratorUTF16, hwndParent, flags, deviceInfoSet, machineNameUTF16, 0) +} + +// SetupDiCallClassInstaller function calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code). +//sys SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCallClassInstaller + +// CallClassInstaller member calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code). +func (deviceInfoSet DevInfo) CallClassInstaller(installFunction DI_FUNCTION, deviceInfoData *DevInfoData) error { + return SetupDiCallClassInstaller(installFunction, deviceInfoSet, deviceInfoData) +} + +// SetupDiOpenDevRegKey function opens a registry key for device-specific configuration information. +//sys SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) [failretval==InvalidHandle] = setupapi.SetupDiOpenDevRegKey + +// OpenDevRegKey method opens a registry key for device-specific configuration information. +func (deviceInfoSet DevInfo) OpenDevRegKey(DeviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (Handle, error) { + return SetupDiOpenDevRegKey(deviceInfoSet, DeviceInfoData, Scope, HwProfile, KeyType, samDesired) +} + +//sys setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) = setupapi.SetupDiGetDevicePropertyW + +// SetupDiGetDeviceProperty function retrieves a specified device instance property. +func SetupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY) (value interface{}, err error) { + reqSize := uint32(256) + for { + var dataType DEVPROPTYPE + buf := make([]byte, reqSize) + err = setupDiGetDeviceProperty(deviceInfoSet, deviceInfoData, propertyKey, &dataType, &buf[0], uint32(len(buf)), &reqSize, 0) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return + } + switch dataType { + case DEVPROP_TYPE_STRING: + ret := UTF16ToString(bufToUTF16(buf)) + runtime.KeepAlive(buf) + return ret, nil + } + return nil, errors.New("unimplemented property type") + } +} + +//sys setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceRegistryPropertyW + +// SetupDiGetDeviceRegistryProperty function retrieves a specified Plug and Play device property. +func SetupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP) (value interface{}, err error) { + reqSize := uint32(256) + for { + var dataType uint32 + buf := make([]byte, reqSize) + err = setupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &dataType, &buf[0], uint32(len(buf)), &reqSize) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return + } + return getRegistryValue(buf[:reqSize], dataType) + } +} + +func getRegistryValue(buf []byte, dataType uint32) (interface{}, error) { + switch dataType { + case REG_SZ: + ret := UTF16ToString(bufToUTF16(buf)) + runtime.KeepAlive(buf) + return ret, nil + case REG_EXPAND_SZ: + value := UTF16ToString(bufToUTF16(buf)) + if value == "" { + return "", nil + } + p, err := syscall.UTF16PtrFromString(value) + if err != nil { + return "", err + } + ret := make([]uint16, 100) + for { + n, err := ExpandEnvironmentStrings(p, &ret[0], uint32(len(ret))) + if err != nil { + return "", err + } + if n <= uint32(len(ret)) { + return UTF16ToString(ret[:n]), nil + } + ret = make([]uint16, n) + } + case REG_BINARY: + return buf, nil + case REG_DWORD_LITTLE_ENDIAN: + return binary.LittleEndian.Uint32(buf), nil + case REG_DWORD_BIG_ENDIAN: + return binary.BigEndian.Uint32(buf), nil + case REG_MULTI_SZ: + bufW := bufToUTF16(buf) + a := []string{} + for i := 0; i < len(bufW); { + j := i + wcslen(bufW[i:]) + if i < j { + a = append(a, UTF16ToString(bufW[i:j])) + } + i = j + 1 + } + runtime.KeepAlive(buf) + return a, nil + case REG_QWORD_LITTLE_ENDIAN: + return binary.LittleEndian.Uint64(buf), nil + default: + return nil, fmt.Errorf("Unsupported registry value type: %v", dataType) + } +} + +// bufToUTF16 function reinterprets []byte buffer as []uint16 +func bufToUTF16(buf []byte) []uint16 { + sl := struct { + addr *uint16 + len int + cap int + }{(*uint16)(unsafe.Pointer(&buf[0])), len(buf) / 2, cap(buf) / 2} + return *(*[]uint16)(unsafe.Pointer(&sl)) +} + +// utf16ToBuf function reinterprets []uint16 as []byte +func utf16ToBuf(buf []uint16) []byte { + sl := struct { + addr *byte + len int + cap int + }{(*byte)(unsafe.Pointer(&buf[0])), len(buf) * 2, cap(buf) * 2} + return *(*[]byte)(unsafe.Pointer(&sl)) +} + +func wcslen(str []uint16) int { + for i := 0; i < len(str); i++ { + if str[i] == 0 { + return i + } + } + return len(str) +} + +// DeviceRegistryProperty method retrieves a specified Plug and Play device property. +func (deviceInfoSet DevInfo) DeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP) (interface{}, error) { + return SetupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property) +} + +//sys setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) = setupapi.SetupDiSetDeviceRegistryPropertyW + +// SetupDiSetDeviceRegistryProperty function sets a Plug and Play device property for a device. +func SetupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error { + return setupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &propertyBuffers[0], uint32(len(propertyBuffers))) +} + +// SetDeviceRegistryProperty function sets a Plug and Play device property for a device. +func (deviceInfoSet DevInfo) SetDeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error { + return SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, propertyBuffers) +} + +// SetDeviceRegistryPropertyString method sets a Plug and Play device property string for a device. +func (deviceInfoSet DevInfo) SetDeviceRegistryPropertyString(deviceInfoData *DevInfoData, property SPDRP, str string) error { + str16, err := UTF16FromString(str) + if err != nil { + return err + } + err = SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, utf16ToBuf(append(str16, 0))) + runtime.KeepAlive(str16) + return err +} + +//sys setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiGetDeviceInstallParamsW + +// SetupDiGetDeviceInstallParams function retrieves device installation parameters for a device information set or a particular device information element. +func SetupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DevInstallParams, error) { + params := &DevInstallParams{} + params.size = uint32(unsafe.Sizeof(*params)) + + return params, setupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData, params) +} + +// DeviceInstallParams method retrieves device installation parameters for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) DeviceInstallParams(deviceInfoData *DevInfoData) (*DevInstallParams, error) { + return SetupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData) +} + +//sys setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceInstanceIdW + +// SetupDiGetDeviceInstanceId function retrieves the instance ID of the device. +func SetupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (string, error) { + reqSize := uint32(1024) + for { + buf := make([]uint16, reqSize) + err := setupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData, &buf[0], uint32(len(buf)), &reqSize) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return "", err + } + return UTF16ToString(buf), nil + } +} + +// DeviceInstanceID method retrieves the instance ID of the device. +func (deviceInfoSet DevInfo) DeviceInstanceID(deviceInfoData *DevInfoData) (string, error) { + return SetupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData) +} + +// SetupDiGetClassInstallParams function retrieves class installation parameters for a device information set or a particular device information element. +//sys SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetClassInstallParamsW + +// ClassInstallParams method retrieves class installation parameters for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) ClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) error { + return SetupDiGetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize, requiredSize) +} + +//sys SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiSetDeviceInstallParamsW + +// SetDeviceInstallParams member sets device installation parameters for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) SetDeviceInstallParams(deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) error { + return SetupDiSetDeviceInstallParams(deviceInfoSet, deviceInfoData, deviceInstallParams) +} + +// SetupDiSetClassInstallParams function sets or clears class install parameters for a device information set or a particular device information element. +//sys SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) = setupapi.SetupDiSetClassInstallParamsW + +// SetClassInstallParams method sets or clears class install parameters for a device information set or a particular device information element. +func (deviceInfoSet DevInfo) SetClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) error { + return SetupDiSetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize) +} + +//sys setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassNameFromGuidExW + +// SetupDiClassNameFromGuidEx function retrieves the class name associated with a class GUID. The class can be installed on a local or remote computer. +func SetupDiClassNameFromGuidEx(classGUID *GUID, machineName string) (className string, err error) { + var classNameUTF16 [MAX_CLASS_NAME_LEN]uint16 + + var machineNameUTF16 *uint16 + if machineName != "" { + machineNameUTF16, err = UTF16PtrFromString(machineName) + if err != nil { + return + } + } + + err = setupDiClassNameFromGuidEx(classGUID, &classNameUTF16[0], MAX_CLASS_NAME_LEN, nil, machineNameUTF16, 0) + if err != nil { + return + } + + className = UTF16ToString(classNameUTF16[:]) + return +} + +//sys setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassGuidsFromNameExW + +// SetupDiClassGuidsFromNameEx function retrieves the GUIDs associated with the specified class name. This resulting list contains the classes currently installed on a local or remote computer. +func SetupDiClassGuidsFromNameEx(className string, machineName string) ([]GUID, error) { + classNameUTF16, err := UTF16PtrFromString(className) + if err != nil { + return nil, err + } + + var machineNameUTF16 *uint16 + if machineName != "" { + machineNameUTF16, err = UTF16PtrFromString(machineName) + if err != nil { + return nil, err + } + } + + reqSize := uint32(4) + for { + buf := make([]GUID, reqSize) + err = setupDiClassGuidsFromNameEx(classNameUTF16, &buf[0], uint32(len(buf)), &reqSize, machineNameUTF16, 0) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return nil, err + } + return buf[:reqSize], nil + } +} + +//sys setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiGetSelectedDevice + +// SetupDiGetSelectedDevice function retrieves the selected device information element in a device information set. +func SetupDiGetSelectedDevice(deviceInfoSet DevInfo) (*DevInfoData, error) { + data := &DevInfoData{} + data.size = uint32(unsafe.Sizeof(*data)) + + return data, setupDiGetSelectedDevice(deviceInfoSet, data) +} + +// SelectedDevice method retrieves the selected device information element in a device information set. +func (deviceInfoSet DevInfo) SelectedDevice() (*DevInfoData, error) { + return SetupDiGetSelectedDevice(deviceInfoSet) +} + +// SetupDiSetSelectedDevice function sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard. +//sys SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiSetSelectedDevice + +// SetSelectedDevice method sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard. +func (deviceInfoSet DevInfo) SetSelectedDevice(deviceInfoData *DevInfoData) error { + return SetupDiSetSelectedDevice(deviceInfoSet, deviceInfoData) +} + +//sys setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) = setupapi.SetupUninstallOEMInfW + +// SetupUninstallOEMInf uninstalls the specified driver. +func SetupUninstallOEMInf(infFileName string, flags SUOI) error { + infFileName16, err := UTF16PtrFromString(infFileName) + if err != nil { + return err + } + return setupUninstallOEMInf(infFileName16, flags, 0) +} + +//sys cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) = CfgMgr32.CM_MapCrToWin32Err + +//sys cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_List_SizeW +//sys cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_ListW + +func CM_Get_Device_Interface_List(deviceID string, interfaceClass *GUID, flags uint32) ([]string, error) { + deviceID16, err := UTF16PtrFromString(deviceID) + if err != nil { + return nil, err + } + var buf []uint16 + var buflen uint32 + for { + if ret := cm_Get_Device_Interface_List_Size(&buflen, interfaceClass, deviceID16, flags); ret != CR_SUCCESS { + return nil, ret + } + buf = make([]uint16, buflen) + if ret := cm_Get_Device_Interface_List(interfaceClass, deviceID16, &buf[0], buflen, flags); ret == CR_SUCCESS { + break + } else if ret != CR_BUFFER_SMALL { + return nil, ret + } + } + var interfaces []string + for i := 0; i < len(buf); { + j := i + wcslen(buf[i:]) + if i < j { + interfaces = append(interfaces, UTF16ToString(buf[i:j])) + } + i = j + 1 + } + if interfaces == nil { + return nil, ERROR_NO_SUCH_DEVICE_INTERFACE + } + return interfaces, nil +} + +//sys cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_DevNode_Status + +func CM_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) error { + ret := cm_Get_DevNode_Status(status, problemNumber, devInst, flags) + if ret == CR_SUCCESS { + return nil + } + return ret +} diff --git a/vendor/golang.org/x/sys/windows/str.go b/vendor/golang.org/x/sys/windows/str.go new file mode 100644 index 000000000000..4fc01434e4a2 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/str.go @@ -0,0 +1,23 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build windows +// +build windows + +package windows + +func itoa(val int) string { // do it here rather than with fmt to avoid dependency + if val < 0 { + return "-" + itoa(-val) + } + var buf [32]byte // big enough for int64 + i := len(buf) - 1 + for val >= 10 { + buf[i] = byte(val%10 + '0') + i-- + val /= 10 + } + buf[i] = byte(val + '0') + return string(buf[i:]) +} diff --git a/vendor/golang.org/x/sys/windows/syscall.go b/vendor/golang.org/x/sys/windows/syscall.go new file mode 100644 index 000000000000..8732cdb957f3 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/syscall.go @@ -0,0 +1,105 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build windows +// +build windows + +// Package windows contains an interface to the low-level operating system +// primitives. OS details vary depending on the underlying system, and +// by default, godoc will display the OS-specific documentation for the current +// system. If you want godoc to display syscall documentation for another +// system, set $GOOS and $GOARCH to the desired system. For example, if +// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS +// to freebsd and $GOARCH to arm. +// +// The primary use of this package is inside other packages that provide a more +// portable interface to the system, such as "os", "time" and "net". Use +// those packages rather than this one if you can. +// +// For details of the functions and data types in this package consult +// the manuals for the appropriate operating system. +// +// These calls return err == nil to indicate success; otherwise +// err represents an operating system error describing the failure and +// holds a value of type syscall.Errno. +package windows // import "golang.org/x/sys/windows" + +import ( + "bytes" + "strings" + "syscall" + "unsafe" +) + +// ByteSliceFromString returns a NUL-terminated slice of bytes +// containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, syscall.EINVAL). +func ByteSliceFromString(s string) ([]byte, error) { + if strings.IndexByte(s, 0) != -1 { + return nil, syscall.EINVAL + } + a := make([]byte, len(s)+1) + copy(a, s) + return a, nil +} + +// BytePtrFromString returns a pointer to a NUL-terminated array of +// bytes containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, syscall.EINVAL). +func BytePtrFromString(s string) (*byte, error) { + a, err := ByteSliceFromString(s) + if err != nil { + return nil, err + } + return &a[0], nil +} + +// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any +// bytes after the NUL removed. +func ByteSliceToString(s []byte) string { + if i := bytes.IndexByte(s, 0); i != -1 { + s = s[:i] + } + return string(s) +} + +// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string. +// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated +// at a zero byte; if the zero byte is not present, the program may crash. +func BytePtrToString(p *byte) string { + if p == nil { + return "" + } + if *p == 0 { + return "" + } + + // Find NUL terminator. + n := 0 + for ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ { + ptr = unsafe.Pointer(uintptr(ptr) + 1) + } + + return string(unsafe.Slice(p, n)) +} + +// Single-word zero for use when we need a valid pointer to 0 bytes. +// See mksyscall.pl. +var _zero uintptr + +func (ts *Timespec) Unix() (sec int64, nsec int64) { + return int64(ts.Sec), int64(ts.Nsec) +} + +func (tv *Timeval) Unix() (sec int64, nsec int64) { + return int64(tv.Sec), int64(tv.Usec) * 1000 +} + +func (ts *Timespec) Nano() int64 { + return int64(ts.Sec)*1e9 + int64(ts.Nsec) +} + +func (tv *Timeval) Nano() int64 { + return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 +} diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go new file mode 100644 index 000000000000..67bad0926ae1 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -0,0 +1,1828 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Windows system calls. + +package windows + +import ( + errorspkg "errors" + "fmt" + "runtime" + "sync" + "syscall" + "time" + "unicode/utf16" + "unsafe" + + "golang.org/x/sys/internal/unsafeheader" +) + +type Handle uintptr +type HWND uintptr + +const ( + InvalidHandle = ^Handle(0) + InvalidHWND = ^HWND(0) + + // Flags for DefineDosDevice. + DDD_EXACT_MATCH_ON_REMOVE = 0x00000004 + DDD_NO_BROADCAST_SYSTEM = 0x00000008 + DDD_RAW_TARGET_PATH = 0x00000001 + DDD_REMOVE_DEFINITION = 0x00000002 + + // Return values for GetDriveType. + DRIVE_UNKNOWN = 0 + DRIVE_NO_ROOT_DIR = 1 + DRIVE_REMOVABLE = 2 + DRIVE_FIXED = 3 + DRIVE_REMOTE = 4 + DRIVE_CDROM = 5 + DRIVE_RAMDISK = 6 + + // File system flags from GetVolumeInformation and GetVolumeInformationByHandle. + FILE_CASE_SENSITIVE_SEARCH = 0x00000001 + FILE_CASE_PRESERVED_NAMES = 0x00000002 + FILE_FILE_COMPRESSION = 0x00000010 + FILE_DAX_VOLUME = 0x20000000 + FILE_NAMED_STREAMS = 0x00040000 + FILE_PERSISTENT_ACLS = 0x00000008 + FILE_READ_ONLY_VOLUME = 0x00080000 + FILE_SEQUENTIAL_WRITE_ONCE = 0x00100000 + FILE_SUPPORTS_ENCRYPTION = 0x00020000 + FILE_SUPPORTS_EXTENDED_ATTRIBUTES = 0x00800000 + FILE_SUPPORTS_HARD_LINKS = 0x00400000 + FILE_SUPPORTS_OBJECT_IDS = 0x00010000 + FILE_SUPPORTS_OPEN_BY_FILE_ID = 0x01000000 + FILE_SUPPORTS_REPARSE_POINTS = 0x00000080 + FILE_SUPPORTS_SPARSE_FILES = 0x00000040 + FILE_SUPPORTS_TRANSACTIONS = 0x00200000 + FILE_SUPPORTS_USN_JOURNAL = 0x02000000 + FILE_UNICODE_ON_DISK = 0x00000004 + FILE_VOLUME_IS_COMPRESSED = 0x00008000 + FILE_VOLUME_QUOTAS = 0x00000020 + + // Flags for LockFileEx. + LOCKFILE_FAIL_IMMEDIATELY = 0x00000001 + LOCKFILE_EXCLUSIVE_LOCK = 0x00000002 + + // Return value of SleepEx and other APC functions + WAIT_IO_COMPLETION = 0x000000C0 +) + +// StringToUTF16 is deprecated. Use UTF16FromString instead. +// If s contains a NUL byte this function panics instead of +// returning an error. +func StringToUTF16(s string) []uint16 { + a, err := UTF16FromString(s) + if err != nil { + panic("windows: string with NUL passed to StringToUTF16") + } + return a +} + +// UTF16FromString returns the UTF-16 encoding of the UTF-8 string +// s, with a terminating NUL added. If s contains a NUL byte at any +// location, it returns (nil, syscall.EINVAL). +func UTF16FromString(s string) ([]uint16, error) { + return syscall.UTF16FromString(s) +} + +// UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s, +// with a terminating NUL and any bytes after the NUL removed. +func UTF16ToString(s []uint16) string { + return syscall.UTF16ToString(s) +} + +// StringToUTF16Ptr is deprecated. Use UTF16PtrFromString instead. +// If s contains a NUL byte this function panics instead of +// returning an error. +func StringToUTF16Ptr(s string) *uint16 { return &StringToUTF16(s)[0] } + +// UTF16PtrFromString returns pointer to the UTF-16 encoding of +// the UTF-8 string s, with a terminating NUL added. If s +// contains a NUL byte at any location, it returns (nil, syscall.EINVAL). +func UTF16PtrFromString(s string) (*uint16, error) { + a, err := UTF16FromString(s) + if err != nil { + return nil, err + } + return &a[0], nil +} + +// UTF16PtrToString takes a pointer to a UTF-16 sequence and returns the corresponding UTF-8 encoded string. +// If the pointer is nil, it returns the empty string. It assumes that the UTF-16 sequence is terminated +// at a zero word; if the zero word is not present, the program may crash. +func UTF16PtrToString(p *uint16) string { + if p == nil { + return "" + } + if *p == 0 { + return "" + } + + // Find NUL terminator. + n := 0 + for ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ { + ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p)) + } + + return string(utf16.Decode(unsafe.Slice(p, n))) +} + +func Getpagesize() int { return 4096 } + +// NewCallback converts a Go function to a function pointer conforming to the stdcall calling convention. +// This is useful when interoperating with Windows code requiring callbacks. +// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. +func NewCallback(fn interface{}) uintptr { + return syscall.NewCallback(fn) +} + +// NewCallbackCDecl converts a Go function to a function pointer conforming to the cdecl calling convention. +// This is useful when interoperating with Windows code requiring callbacks. +// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. +func NewCallbackCDecl(fn interface{}) uintptr { + return syscall.NewCallbackCDecl(fn) +} + +// windows api calls + +//sys GetLastError() (lasterr error) +//sys LoadLibrary(libname string) (handle Handle, err error) = LoadLibraryW +//sys LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) = LoadLibraryExW +//sys FreeLibrary(handle Handle) (err error) +//sys GetProcAddress(module Handle, procname string) (proc uintptr, err error) +//sys GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) = kernel32.GetModuleFileNameW +//sys GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) = kernel32.GetModuleHandleExW +//sys SetDefaultDllDirectories(directoryFlags uint32) (err error) +//sys SetDllDirectory(path string) (err error) = kernel32.SetDllDirectoryW +//sys GetVersion() (ver uint32, err error) +//sys FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW +//sys ExitProcess(exitcode uint32) +//sys IsWow64Process(handle Handle, isWow64 *bool) (err error) = IsWow64Process +//sys IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) = IsWow64Process2? +//sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW +//sys CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) [failretval==InvalidHandle] = CreateNamedPipeW +//sys ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) +//sys GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) +//sys GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW +//sys SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) = SetNamedPipeHandleState +//sys readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = ReadFile +//sys writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = WriteFile +//sys GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) +//sys SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) [failretval==0xffffffff] +//sys CloseHandle(handle Handle) (err error) +//sys GetStdHandle(stdhandle uint32) (handle Handle, err error) [failretval==InvalidHandle] +//sys SetStdHandle(stdhandle uint32, handle Handle) (err error) +//sys findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstFileW +//sys findNextFile1(handle Handle, data *win32finddata1) (err error) = FindNextFileW +//sys FindClose(handle Handle) (err error) +//sys GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) +//sys GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) +//sys SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) +//sys GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) = GetCurrentDirectoryW +//sys SetCurrentDirectory(path *uint16) (err error) = SetCurrentDirectoryW +//sys CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) = CreateDirectoryW +//sys RemoveDirectory(path *uint16) (err error) = RemoveDirectoryW +//sys DeleteFile(path *uint16) (err error) = DeleteFileW +//sys MoveFile(from *uint16, to *uint16) (err error) = MoveFileW +//sys MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) = MoveFileExW +//sys LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) +//sys UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) +//sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW +//sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW +//sys SetEndOfFile(handle Handle) (err error) +//sys GetSystemTimeAsFileTime(time *Filetime) +//sys GetSystemTimePreciseAsFileTime(time *Filetime) +//sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff] +//sys CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) +//sys GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) +//sys PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) +//sys CancelIo(s Handle) (err error) +//sys CancelIoEx(s Handle, o *Overlapped) (err error) +//sys CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW +//sys CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = advapi32.CreateProcessAsUserW +//sys initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) = InitializeProcThreadAttributeList +//sys deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) = DeleteProcThreadAttributeList +//sys updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) = UpdateProcThreadAttribute +//sys OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) +//sys ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) [failretval<=32] = shell32.ShellExecuteW +//sys GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) = user32.GetWindowThreadProcessId +//sys GetShellWindow() (shellWindow HWND) = user32.GetShellWindow +//sys MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW +//sys ExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx +//sys shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath +//sys TerminateProcess(handle Handle, exitcode uint32) (err error) +//sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) +//sys getStartupInfo(startupInfo *StartupInfo) = GetStartupInfoW +//sys GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) +//sys DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) +//sys WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] +//sys waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] = WaitForMultipleObjects +//sys GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) = GetTempPathW +//sys CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) +//sys GetFileType(filehandle Handle) (n uint32, err error) +//sys CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) = advapi32.CryptAcquireContextW +//sys CryptReleaseContext(provhandle Handle, flags uint32) (err error) = advapi32.CryptReleaseContext +//sys CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) = advapi32.CryptGenRandom +//sys GetEnvironmentStrings() (envs *uint16, err error) [failretval==nil] = kernel32.GetEnvironmentStringsW +//sys FreeEnvironmentStrings(envs *uint16) (err error) = kernel32.FreeEnvironmentStringsW +//sys GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) = kernel32.GetEnvironmentVariableW +//sys SetEnvironmentVariable(name *uint16, value *uint16) (err error) = kernel32.SetEnvironmentVariableW +//sys ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW +//sys CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) = userenv.CreateEnvironmentBlock +//sys DestroyEnvironmentBlock(block *uint16) (err error) = userenv.DestroyEnvironmentBlock +//sys getTickCount64() (ms uint64) = kernel32.GetTickCount64 +//sys SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) +//sys GetFileAttributes(name *uint16) (attrs uint32, err error) [failretval==INVALID_FILE_ATTRIBUTES] = kernel32.GetFileAttributesW +//sys SetFileAttributes(name *uint16, attrs uint32) (err error) = kernel32.SetFileAttributesW +//sys GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) = kernel32.GetFileAttributesExW +//sys GetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW +//sys CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) [failretval==nil] = shell32.CommandLineToArgvW +//sys LocalFree(hmem Handle) (handle Handle, err error) [failretval!=0] +//sys LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) +//sys SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) +//sys FlushFileBuffers(handle Handle) (err error) +//sys GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) = kernel32.GetFullPathNameW +//sys GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) = kernel32.GetLongPathNameW +//sys GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) = kernel32.GetShortPathNameW +//sys GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) = kernel32.GetFinalPathNameByHandleW +//sys CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateFileMappingW +//sys MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) +//sys UnmapViewOfFile(addr uintptr) (err error) +//sys FlushViewOfFile(addr uintptr, length uintptr) (err error) +//sys VirtualLock(addr uintptr, length uintptr) (err error) +//sys VirtualUnlock(addr uintptr, length uintptr) (err error) +//sys VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) = kernel32.VirtualAlloc +//sys VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) = kernel32.VirtualFree +//sys VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) = kernel32.VirtualProtect +//sys VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) = kernel32.VirtualProtectEx +//sys VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQuery +//sys VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQueryEx +//sys ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) = kernel32.ReadProcessMemory +//sys WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) = kernel32.WriteProcessMemory +//sys TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) = mswsock.TransmitFile +//sys ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) = kernel32.ReadDirectoryChangesW +//sys FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.FindFirstChangeNotificationW +//sys FindNextChangeNotification(handle Handle) (err error) +//sys FindCloseChangeNotification(handle Handle) (err error) +//sys CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) = crypt32.CertOpenSystemStoreW +//sys CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) = crypt32.CertOpenStore +//sys CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) [failretval==nil] = crypt32.CertEnumCertificatesInStore +//sys CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore +//sys CertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore +//sys CertDeleteCertificateFromStore(certContext *CertContext) (err error) = crypt32.CertDeleteCertificateFromStore +//sys CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) = crypt32.CertDuplicateCertificateContext +//sys PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) = crypt32.PFXImportCertStore +//sys CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain +//sys CertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain +//sys CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext +//sys CertFreeCertificateContext(ctx *CertContext) (err error) = crypt32.CertFreeCertificateContext +//sys CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) = crypt32.CertVerifyCertificateChainPolicy +//sys CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) = crypt32.CertGetNameStringW +//sys CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) = crypt32.CertFindExtension +//sys CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) [failretval==nil] = crypt32.CertFindCertificateInStore +//sys CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) [failretval==nil] = crypt32.CertFindChainInStore +//sys CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) = crypt32.CryptAcquireCertificatePrivateKey +//sys CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) = crypt32.CryptQueryObject +//sys CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) = crypt32.CryptDecodeObject +//sys CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptProtectData +//sys CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptUnprotectData +//sys WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) = wintrust.WinVerifyTrustEx +//sys RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) = advapi32.RegOpenKeyExW +//sys RegCloseKey(key Handle) (regerrno error) = advapi32.RegCloseKey +//sys RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegQueryInfoKeyW +//sys RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegEnumKeyExW +//sys RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegQueryValueExW +//sys RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) = advapi32.RegNotifyChangeKeyValue +//sys GetCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId +//sys ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) = kernel32.ProcessIdToSessionId +//sys GetConsoleMode(console Handle, mode *uint32) (err error) = kernel32.GetConsoleMode +//sys SetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode +//sys GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo +//sys setConsoleCursorPosition(console Handle, position uint32) (err error) = kernel32.SetConsoleCursorPosition +//sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW +//sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW +//sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot +//sys Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32FirstW +//sys Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32NextW +//sys Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32FirstW +//sys Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32NextW +//sys Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) +//sys Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) +//sys DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) +// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. +//sys CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) [failretval&0xff==0] = CreateSymbolicLinkW +//sys CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) [failretval&0xff==0] = CreateHardLinkW +//sys GetCurrentThreadId() (id uint32) +//sys CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventW +//sys CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventExW +//sys OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenEventW +//sys SetEvent(event Handle) (err error) = kernel32.SetEvent +//sys ResetEvent(event Handle) (err error) = kernel32.ResetEvent +//sys PulseEvent(event Handle) (err error) = kernel32.PulseEvent +//sys CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexW +//sys CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexExW +//sys OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenMutexW +//sys ReleaseMutex(mutex Handle) (err error) = kernel32.ReleaseMutex +//sys SleepEx(milliseconds uint32, alertable bool) (ret uint32) = kernel32.SleepEx +//sys CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) = kernel32.CreateJobObjectW +//sys AssignProcessToJobObject(job Handle, process Handle) (err error) = kernel32.AssignProcessToJobObject +//sys TerminateJobObject(job Handle, exitCode uint32) (err error) = kernel32.TerminateJobObject +//sys SetErrorMode(mode uint32) (ret uint32) = kernel32.SetErrorMode +//sys ResumeThread(thread Handle) (ret uint32, err error) [failretval==0xffffffff] = kernel32.ResumeThread +//sys SetPriorityClass(process Handle, priorityClass uint32) (err error) = kernel32.SetPriorityClass +//sys GetPriorityClass(process Handle) (ret uint32, err error) = kernel32.GetPriorityClass +//sys QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) = kernel32.QueryInformationJobObject +//sys SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) +//sys GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) +//sys GetProcessId(process Handle) (id uint32, err error) +//sys QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) = kernel32.QueryFullProcessImageNameW +//sys OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) +//sys SetProcessPriorityBoost(process Handle, disable bool) (err error) = kernel32.SetProcessPriorityBoost +//sys GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) +//sys SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) +//sys GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) +//sys SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) +//sys GetActiveProcessorCount(groupNumber uint16) (ret uint32) +//sys GetMaximumProcessorCount(groupNumber uint16) (ret uint32) +//sys EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows +//sys EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) = user32.EnumChildWindows +//sys GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) = user32.GetClassNameW +//sys GetDesktopWindow() (hwnd HWND) = user32.GetDesktopWindow +//sys GetForegroundWindow() (hwnd HWND) = user32.GetForegroundWindow +//sys IsWindow(hwnd HWND) (isWindow bool) = user32.IsWindow +//sys IsWindowUnicode(hwnd HWND) (isUnicode bool) = user32.IsWindowUnicode +//sys IsWindowVisible(hwnd HWND) (isVisible bool) = user32.IsWindowVisible +//sys GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) = user32.GetGUIThreadInfo +//sys GetLargePageMinimum() (size uintptr) + +// Volume Management Functions +//sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW +//sys DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) = DeleteVolumeMountPointW +//sys FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeW +//sys FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeMountPointW +//sys FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) = FindNextVolumeW +//sys FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) = FindNextVolumeMountPointW +//sys FindVolumeClose(findVolume Handle) (err error) +//sys FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) +//sys GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) = GetDiskFreeSpaceExW +//sys GetDriveType(rootPathName *uint16) (driveType uint32) = GetDriveTypeW +//sys GetLogicalDrives() (drivesBitMask uint32, err error) [failretval==0] +//sys GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) [failretval==0] = GetLogicalDriveStringsW +//sys GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationW +//sys GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationByHandleW +//sys GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) = GetVolumeNameForVolumeMountPointW +//sys GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) = GetVolumePathNameW +//sys GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) = GetVolumePathNamesForVolumeNameW +//sys QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) [failretval==0] = QueryDosDeviceW +//sys SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW +//sys SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW +//sys InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) = advapi32.InitiateSystemShutdownExW +//sys SetProcessShutdownParameters(level uint32, flags uint32) (err error) = kernel32.SetProcessShutdownParameters +//sys GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) = kernel32.GetProcessShutdownParameters +//sys clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) = ole32.CLSIDFromString +//sys stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) = ole32.StringFromGUID2 +//sys coCreateGuid(pguid *GUID) (ret error) = ole32.CoCreateGuid +//sys CoTaskMemFree(address unsafe.Pointer) = ole32.CoTaskMemFree +//sys CoInitializeEx(reserved uintptr, coInit uint32) (ret error) = ole32.CoInitializeEx +//sys CoUninitialize() = ole32.CoUninitialize +//sys CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) = ole32.CoGetObject +//sys getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetProcessPreferredUILanguages +//sys getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetThreadPreferredUILanguages +//sys getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetUserPreferredUILanguages +//sys getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetSystemPreferredUILanguages +//sys findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) = kernel32.FindResourceW +//sys SizeofResource(module Handle, resInfo Handle) (size uint32, err error) = kernel32.SizeofResource +//sys LoadResource(module Handle, resInfo Handle) (resData Handle, err error) = kernel32.LoadResource +//sys LockResource(resData Handle) (addr uintptr, err error) = kernel32.LockResource + +// Version APIs +//sys GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) = version.GetFileVersionInfoSizeW +//sys GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) = version.GetFileVersionInfoW +//sys VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) = version.VerQueryValueW + +// Process Status API (PSAPI) +//sys enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses +//sys EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) = psapi.EnumProcessModules +//sys EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) = psapi.EnumProcessModulesEx +//sys GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) = psapi.GetModuleInformation +//sys GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) = psapi.GetModuleFileNameExW +//sys GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) = psapi.GetModuleBaseNameW +//sys QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) = psapi.QueryWorkingSetEx + +// NT Native APIs +//sys rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) = ntdll.RtlNtStatusToDosErrorNoTeb +//sys rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) = ntdll.RtlGetVersion +//sys rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) = ntdll.RtlGetNtVersionNumbers +//sys RtlGetCurrentPeb() (peb *PEB) = ntdll.RtlGetCurrentPeb +//sys RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) = ntdll.RtlInitUnicodeString +//sys RtlInitString(destinationString *NTString, sourceString *byte) = ntdll.RtlInitString +//sys NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) = ntdll.NtCreateFile +//sys NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) = ntdll.NtCreateNamedPipeFile +//sys NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) = ntdll.NtSetInformationFile +//sys RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToNtPathName_U_WithStatus +//sys RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToRelativeNtPathName_U_WithStatus +//sys RtlDefaultNpAcl(acl **ACL) (ntstatus error) = ntdll.RtlDefaultNpAcl +//sys NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQueryInformationProcess +//sys NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) = ntdll.NtSetInformationProcess +//sys NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQuerySystemInformation +//sys NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) = ntdll.NtSetSystemInformation +//sys RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) = ntdll.RtlAddFunctionTable +//sys RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) = ntdll.RtlDeleteFunctionTable + +// Desktop Window Manager API (Dwmapi) +//sys DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmGetWindowAttribute +//sys DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmSetWindowAttribute + +// Windows Multimedia API +//sys TimeBeginPeriod (period uint32) (err error) [failretval != 0] = winmm.timeBeginPeriod +//sys TimeEndPeriod (period uint32) (err error) [failretval != 0] = winmm.timeEndPeriod + +// syscall interface implementation for other packages + +// GetCurrentProcess returns the handle for the current process. +// It is a pseudo handle that does not need to be closed. +// The returned error is always nil. +// +// Deprecated: use CurrentProcess for the same Handle without the nil +// error. +func GetCurrentProcess() (Handle, error) { + return CurrentProcess(), nil +} + +// CurrentProcess returns the handle for the current process. +// It is a pseudo handle that does not need to be closed. +func CurrentProcess() Handle { return Handle(^uintptr(1 - 1)) } + +// GetCurrentThread returns the handle for the current thread. +// It is a pseudo handle that does not need to be closed. +// The returned error is always nil. +// +// Deprecated: use CurrentThread for the same Handle without the nil +// error. +func GetCurrentThread() (Handle, error) { + return CurrentThread(), nil +} + +// CurrentThread returns the handle for the current thread. +// It is a pseudo handle that does not need to be closed. +func CurrentThread() Handle { return Handle(^uintptr(2 - 1)) } + +// GetProcAddressByOrdinal retrieves the address of the exported +// function from module by ordinal. +func GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) { + r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), ordinal, 0) + proc = uintptr(r0) + if proc == 0 { + err = errnoErr(e1) + } + return +} + +func Exit(code int) { ExitProcess(uint32(code)) } + +func makeInheritSa() *SecurityAttributes { + var sa SecurityAttributes + sa.Length = uint32(unsafe.Sizeof(sa)) + sa.InheritHandle = 1 + return &sa +} + +func Open(path string, mode int, perm uint32) (fd Handle, err error) { + if len(path) == 0 { + return InvalidHandle, ERROR_FILE_NOT_FOUND + } + pathp, err := UTF16PtrFromString(path) + if err != nil { + return InvalidHandle, err + } + var access uint32 + switch mode & (O_RDONLY | O_WRONLY | O_RDWR) { + case O_RDONLY: + access = GENERIC_READ + case O_WRONLY: + access = GENERIC_WRITE + case O_RDWR: + access = GENERIC_READ | GENERIC_WRITE + } + if mode&O_CREAT != 0 { + access |= GENERIC_WRITE + } + if mode&O_APPEND != 0 { + access &^= GENERIC_WRITE + access |= FILE_APPEND_DATA + } + sharemode := uint32(FILE_SHARE_READ | FILE_SHARE_WRITE) + var sa *SecurityAttributes + if mode&O_CLOEXEC == 0 { + sa = makeInheritSa() + } + var createmode uint32 + switch { + case mode&(O_CREAT|O_EXCL) == (O_CREAT | O_EXCL): + createmode = CREATE_NEW + case mode&(O_CREAT|O_TRUNC) == (O_CREAT | O_TRUNC): + createmode = CREATE_ALWAYS + case mode&O_CREAT == O_CREAT: + createmode = OPEN_ALWAYS + case mode&O_TRUNC == O_TRUNC: + createmode = TRUNCATE_EXISTING + default: + createmode = OPEN_EXISTING + } + var attrs uint32 = FILE_ATTRIBUTE_NORMAL + if perm&S_IWRITE == 0 { + attrs = FILE_ATTRIBUTE_READONLY + } + h, e := CreateFile(pathp, access, sharemode, sa, createmode, attrs, 0) + return h, e +} + +func Read(fd Handle, p []byte) (n int, err error) { + var done uint32 + e := ReadFile(fd, p, &done, nil) + if e != nil { + if e == ERROR_BROKEN_PIPE { + // NOTE(brainman): work around ERROR_BROKEN_PIPE is returned on reading EOF from stdin + return 0, nil + } + return 0, e + } + return int(done), nil +} + +func Write(fd Handle, p []byte) (n int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + var done uint32 + e := WriteFile(fd, p, &done, nil) + if e != nil { + return 0, e + } + return int(done), nil +} + +func ReadFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error { + err := readFile(fd, p, done, overlapped) + if raceenabled { + if *done > 0 { + raceWriteRange(unsafe.Pointer(&p[0]), int(*done)) + } + raceAcquire(unsafe.Pointer(&ioSync)) + } + return err +} + +func WriteFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + err := writeFile(fd, p, done, overlapped) + if raceenabled && *done > 0 { + raceReadRange(unsafe.Pointer(&p[0]), int(*done)) + } + return err +} + +var ioSync int64 + +func Seek(fd Handle, offset int64, whence int) (newoffset int64, err error) { + var w uint32 + switch whence { + case 0: + w = FILE_BEGIN + case 1: + w = FILE_CURRENT + case 2: + w = FILE_END + } + hi := int32(offset >> 32) + lo := int32(offset) + // use GetFileType to check pipe, pipe can't do seek + ft, _ := GetFileType(fd) + if ft == FILE_TYPE_PIPE { + return 0, syscall.EPIPE + } + rlo, e := SetFilePointer(fd, lo, &hi, w) + if e != nil { + return 0, e + } + return int64(hi)<<32 + int64(rlo), nil +} + +func Close(fd Handle) (err error) { + return CloseHandle(fd) +} + +var ( + Stdin = getStdHandle(STD_INPUT_HANDLE) + Stdout = getStdHandle(STD_OUTPUT_HANDLE) + Stderr = getStdHandle(STD_ERROR_HANDLE) +) + +func getStdHandle(stdhandle uint32) (fd Handle) { + r, _ := GetStdHandle(stdhandle) + return r +} + +const ImplementsGetwd = true + +func Getwd() (wd string, err error) { + b := make([]uint16, 300) + n, e := GetCurrentDirectory(uint32(len(b)), &b[0]) + if e != nil { + return "", e + } + return string(utf16.Decode(b[0:n])), nil +} + +func Chdir(path string) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return SetCurrentDirectory(pathp) +} + +func Mkdir(path string, mode uint32) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return CreateDirectory(pathp, nil) +} + +func Rmdir(path string) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return RemoveDirectory(pathp) +} + +func Unlink(path string) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return DeleteFile(pathp) +} + +func Rename(oldpath, newpath string) (err error) { + from, err := UTF16PtrFromString(oldpath) + if err != nil { + return err + } + to, err := UTF16PtrFromString(newpath) + if err != nil { + return err + } + return MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING) +} + +func ComputerName() (name string, err error) { + var n uint32 = MAX_COMPUTERNAME_LENGTH + 1 + b := make([]uint16, n) + e := GetComputerName(&b[0], &n) + if e != nil { + return "", e + } + return string(utf16.Decode(b[0:n])), nil +} + +func DurationSinceBoot() time.Duration { + return time.Duration(getTickCount64()) * time.Millisecond +} + +func Ftruncate(fd Handle, length int64) (err error) { + curoffset, e := Seek(fd, 0, 1) + if e != nil { + return e + } + defer Seek(fd, curoffset, 0) + _, e = Seek(fd, length, 0) + if e != nil { + return e + } + e = SetEndOfFile(fd) + if e != nil { + return e + } + return nil +} + +func Gettimeofday(tv *Timeval) (err error) { + var ft Filetime + GetSystemTimeAsFileTime(&ft) + *tv = NsecToTimeval(ft.Nanoseconds()) + return nil +} + +func Pipe(p []Handle) (err error) { + if len(p) != 2 { + return syscall.EINVAL + } + var r, w Handle + e := CreatePipe(&r, &w, makeInheritSa(), 0) + if e != nil { + return e + } + p[0] = r + p[1] = w + return nil +} + +func Utimes(path string, tv []Timeval) (err error) { + if len(tv) != 2 { + return syscall.EINVAL + } + pathp, e := UTF16PtrFromString(path) + if e != nil { + return e + } + h, e := CreateFile(pathp, + FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, + OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) + if e != nil { + return e + } + defer CloseHandle(h) + a := NsecToFiletime(tv[0].Nanoseconds()) + w := NsecToFiletime(tv[1].Nanoseconds()) + return SetFileTime(h, nil, &a, &w) +} + +func UtimesNano(path string, ts []Timespec) (err error) { + if len(ts) != 2 { + return syscall.EINVAL + } + pathp, e := UTF16PtrFromString(path) + if e != nil { + return e + } + h, e := CreateFile(pathp, + FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, + OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) + if e != nil { + return e + } + defer CloseHandle(h) + a := NsecToFiletime(TimespecToNsec(ts[0])) + w := NsecToFiletime(TimespecToNsec(ts[1])) + return SetFileTime(h, nil, &a, &w) +} + +func Fsync(fd Handle) (err error) { + return FlushFileBuffers(fd) +} + +func Chmod(path string, mode uint32) (err error) { + p, e := UTF16PtrFromString(path) + if e != nil { + return e + } + attrs, e := GetFileAttributes(p) + if e != nil { + return e + } + if mode&S_IWRITE != 0 { + attrs &^= FILE_ATTRIBUTE_READONLY + } else { + attrs |= FILE_ATTRIBUTE_READONLY + } + return SetFileAttributes(p, attrs) +} + +func LoadGetSystemTimePreciseAsFileTime() error { + return procGetSystemTimePreciseAsFileTime.Find() +} + +func LoadCancelIoEx() error { + return procCancelIoEx.Find() +} + +func LoadSetFileCompletionNotificationModes() error { + return procSetFileCompletionNotificationModes.Find() +} + +func WaitForMultipleObjects(handles []Handle, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { + // Every other win32 array API takes arguments as "pointer, count", except for this function. So we + // can't declare it as a usual [] type, because mksyscall will use the opposite order. We therefore + // trivially stub this ourselves. + + var handlePtr *Handle + if len(handles) > 0 { + handlePtr = &handles[0] + } + return waitForMultipleObjects(uint32(len(handles)), uintptr(unsafe.Pointer(handlePtr)), waitAll, waitMilliseconds) +} + +// net api calls + +const socket_error = uintptr(^uint32(0)) + +//sys WSAStartup(verreq uint32, data *WSAData) (sockerr error) = ws2_32.WSAStartup +//sys WSACleanup() (err error) [failretval==socket_error] = ws2_32.WSACleanup +//sys WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) [failretval==socket_error] = ws2_32.WSAIoctl +//sys WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceBeginW +//sys WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceNextW +//sys WSALookupServiceEnd(handle Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceEnd +//sys socket(af int32, typ int32, protocol int32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.socket +//sys sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) [failretval==socket_error] = ws2_32.sendto +//sys recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) [failretval==-1] = ws2_32.recvfrom +//sys Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) [failretval==socket_error] = ws2_32.setsockopt +//sys Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockopt +//sys bind(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.bind +//sys connect(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.connect +//sys getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockname +//sys getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getpeername +//sys listen(s Handle, backlog int32) (err error) [failretval==socket_error] = ws2_32.listen +//sys shutdown(s Handle, how int32) (err error) [failretval==socket_error] = ws2_32.shutdown +//sys Closesocket(s Handle) (err error) [failretval==socket_error] = ws2_32.closesocket +//sys AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) = mswsock.AcceptEx +//sys GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) = mswsock.GetAcceptExSockaddrs +//sys WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecv +//sys WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASend +//sys WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom +//sys WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo +//sys WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.WSASocketW +//sys GetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname +//sys GetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname +//sys Ntohs(netshort uint16) (u uint16) = ws2_32.ntohs +//sys GetProtoByName(name string) (p *Protoent, err error) [failretval==nil] = ws2_32.getprotobyname +//sys DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) = dnsapi.DnsQuery_W +//sys DnsRecordListFree(rl *DNSRecord, freetype uint32) = dnsapi.DnsRecordListFree +//sys DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) = dnsapi.DnsNameCompare_W +//sys GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) = ws2_32.GetAddrInfoW +//sys FreeAddrInfoW(addrinfo *AddrinfoW) = ws2_32.FreeAddrInfoW +//sys GetIfEntry(pIfRow *MibIfRow) (errcode error) = iphlpapi.GetIfEntry +//sys GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) = iphlpapi.GetAdaptersInfo +//sys SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) = kernel32.SetFileCompletionNotificationModes +//sys WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) [failretval==-1] = ws2_32.WSAEnumProtocolsW +//sys WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) = ws2_32.WSAGetOverlappedResult +//sys GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) = iphlpapi.GetAdaptersAddresses +//sys GetACP() (acp uint32) = kernel32.GetACP +//sys MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar +//sys getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) = iphlpapi.GetBestInterfaceEx + +// For testing: clients can set this flag to force +// creation of IPv6 sockets to return EAFNOSUPPORT. +var SocketDisableIPv6 bool + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [100]int8 +} + +type Sockaddr interface { + sockaddr() (ptr unsafe.Pointer, len int32, err error) // lowercase; only we can define Sockaddrs +} + +type SockaddrInet4 struct { + Port int + Addr [4]byte + raw RawSockaddrInet4 +} + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, int32, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, syscall.EINVAL + } + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil +} + +type SockaddrInet6 struct { + Port int + ZoneId uint32 + Addr [16]byte + raw RawSockaddrInet6 +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, int32, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, syscall.EINVAL + } + sa.raw.Family = AF_INET6 + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil +} + +type RawSockaddrUnix struct { + Family uint16 + Path [UNIX_PATH_MAX]int8 +} + +type SockaddrUnix struct { + Name string + raw RawSockaddrUnix +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) { + name := sa.Name + n := len(name) + if n > len(sa.raw.Path) { + return nil, 0, syscall.EINVAL + } + if n == len(sa.raw.Path) && name[0] != '@' { + return nil, 0, syscall.EINVAL + } + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = int8(name[i]) + } + // length is family (uint16), name, NUL. + sl := int32(2) + if n > 0 { + sl += int32(n) + 1 + } + if sa.raw.Path[0] == '@' { + sa.raw.Path[0] = 0 + // Don't count trailing NUL for abstract address. + sl-- + } + + return unsafe.Pointer(&sa.raw), sl, nil +} + +type RawSockaddrBth struct { + AddressFamily [2]byte + BtAddr [8]byte + ServiceClassId [16]byte + Port [4]byte +} + +type SockaddrBth struct { + BtAddr uint64 + ServiceClassId GUID + Port uint32 + + raw RawSockaddrBth +} + +func (sa *SockaddrBth) sockaddr() (unsafe.Pointer, int32, error) { + family := AF_BTH + sa.raw = RawSockaddrBth{ + AddressFamily: *(*[2]byte)(unsafe.Pointer(&family)), + BtAddr: *(*[8]byte)(unsafe.Pointer(&sa.BtAddr)), + Port: *(*[4]byte)(unsafe.Pointer(&sa.Port)), + ServiceClassId: *(*[16]byte)(unsafe.Pointer(&sa.ServiceClassId)), + } + return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil +} + +func (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + if pp.Path[0] == 0 { + // "Abstract" Unix domain socket. + // Rewrite leading NUL as @ for textual display. + // (This is the standard convention.) + // Not friendly to overwrite in place, + // but the callers below don't care. + pp.Path[0] = '@' + } + + // Assume path ends at NUL. + // This is not technically the Linux semantics for + // abstract Unix domain sockets--they are supposed + // to be uninterpreted fixed-size binary blobs--but + // everyone uses this convention. + n := 0 + for n < len(pp.Path) && pp.Path[n] != 0 { + n++ + } + sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) + return sa, nil + + case AF_INET: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.Addr = pp.Addr + return sa, nil + + case AF_INET6: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + sa.Addr = pp.Addr + return sa, nil + } + return nil, syscall.EAFNOSUPPORT +} + +func Socket(domain, typ, proto int) (fd Handle, err error) { + if domain == AF_INET6 && SocketDisableIPv6 { + return InvalidHandle, syscall.EAFNOSUPPORT + } + return socket(int32(domain), int32(typ), int32(proto)) +} + +func SetsockoptInt(fd Handle, level, opt int, value int) (err error) { + v := int32(value) + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), int32(unsafe.Sizeof(v))) +} + +func Bind(fd Handle, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return bind(fd, ptr, n) +} + +func Connect(fd Handle, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return connect(fd, ptr, n) +} + +func GetBestInterfaceEx(sa Sockaddr, pdwBestIfIndex *uint32) (err error) { + ptr, _, err := sa.sockaddr() + if err != nil { + return err + } + return getBestInterfaceEx(ptr, pdwBestIfIndex) +} + +func Getsockname(fd Handle) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + l := int32(unsafe.Sizeof(rsa)) + if err = getsockname(fd, &rsa, &l); err != nil { + return + } + return rsa.Sockaddr() +} + +func Getpeername(fd Handle) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + l := int32(unsafe.Sizeof(rsa)) + if err = getpeername(fd, &rsa, &l); err != nil { + return + } + return rsa.Sockaddr() +} + +func Listen(s Handle, n int) (err error) { + return listen(s, int32(n)) +} + +func Shutdown(fd Handle, how int) (err error) { + return shutdown(fd, int32(how)) +} + +func WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) { + var rsa unsafe.Pointer + var l int32 + if to != nil { + rsa, l, err = to.sockaddr() + if err != nil { + return err + } + } + return WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine) +} + +func LoadGetAddrInfo() error { + return procGetAddrInfoW.Find() +} + +var connectExFunc struct { + once sync.Once + addr uintptr + err error +} + +func LoadConnectEx() error { + connectExFunc.once.Do(func() { + var s Handle + s, connectExFunc.err = Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) + if connectExFunc.err != nil { + return + } + defer CloseHandle(s) + var n uint32 + connectExFunc.err = WSAIoctl(s, + SIO_GET_EXTENSION_FUNCTION_POINTER, + (*byte)(unsafe.Pointer(&WSAID_CONNECTEX)), + uint32(unsafe.Sizeof(WSAID_CONNECTEX)), + (*byte)(unsafe.Pointer(&connectExFunc.addr)), + uint32(unsafe.Sizeof(connectExFunc.addr)), + &n, nil, 0) + }) + return connectExFunc.err +} + +func connectEx(s Handle, name unsafe.Pointer, namelen int32, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall9(connectExFunc.addr, 7, uintptr(s), uintptr(name), uintptr(namelen), uintptr(unsafe.Pointer(sendBuf)), uintptr(sendDataLen), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = error(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ConnectEx(fd Handle, sa Sockaddr, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) error { + err := LoadConnectEx() + if err != nil { + return errorspkg.New("failed to find ConnectEx: " + err.Error()) + } + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped) +} + +var sendRecvMsgFunc struct { + once sync.Once + sendAddr uintptr + recvAddr uintptr + err error +} + +func loadWSASendRecvMsg() error { + sendRecvMsgFunc.once.Do(func() { + var s Handle + s, sendRecvMsgFunc.err = Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) + if sendRecvMsgFunc.err != nil { + return + } + defer CloseHandle(s) + var n uint32 + sendRecvMsgFunc.err = WSAIoctl(s, + SIO_GET_EXTENSION_FUNCTION_POINTER, + (*byte)(unsafe.Pointer(&WSAID_WSARECVMSG)), + uint32(unsafe.Sizeof(WSAID_WSARECVMSG)), + (*byte)(unsafe.Pointer(&sendRecvMsgFunc.recvAddr)), + uint32(unsafe.Sizeof(sendRecvMsgFunc.recvAddr)), + &n, nil, 0) + if sendRecvMsgFunc.err != nil { + return + } + sendRecvMsgFunc.err = WSAIoctl(s, + SIO_GET_EXTENSION_FUNCTION_POINTER, + (*byte)(unsafe.Pointer(&WSAID_WSASENDMSG)), + uint32(unsafe.Sizeof(WSAID_WSASENDMSG)), + (*byte)(unsafe.Pointer(&sendRecvMsgFunc.sendAddr)), + uint32(unsafe.Sizeof(sendRecvMsgFunc.sendAddr)), + &n, nil, 0) + }) + return sendRecvMsgFunc.err +} + +func WSASendMsg(fd Handle, msg *WSAMsg, flags uint32, bytesSent *uint32, overlapped *Overlapped, croutine *byte) error { + err := loadWSASendRecvMsg() + if err != nil { + return err + } + r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.sendAddr, 6, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(flags), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + if r1 == socket_error { + err = errnoErr(e1) + } + return err +} + +func WSARecvMsg(fd Handle, msg *WSAMsg, bytesReceived *uint32, overlapped *Overlapped, croutine *byte) error { + err := loadWSASendRecvMsg() + if err != nil { + return err + } + r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.recvAddr, 5, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(bytesReceived)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return err +} + +// Invented structures to support what package os expects. +type Rusage struct { + CreationTime Filetime + ExitTime Filetime + KernelTime Filetime + UserTime Filetime +} + +type WaitStatus struct { + ExitCode uint32 +} + +func (w WaitStatus) Exited() bool { return true } + +func (w WaitStatus) ExitStatus() int { return int(w.ExitCode) } + +func (w WaitStatus) Signal() Signal { return -1 } + +func (w WaitStatus) CoreDump() bool { return false } + +func (w WaitStatus) Stopped() bool { return false } + +func (w WaitStatus) Continued() bool { return false } + +func (w WaitStatus) StopSignal() Signal { return -1 } + +func (w WaitStatus) Signaled() bool { return false } + +func (w WaitStatus) TrapCause() int { return -1 } + +// Timespec is an invented structure on Windows, but here for +// consistency with the corresponding package for other operating systems. +type Timespec struct { + Sec int64 + Nsec int64 +} + +func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } + +func NsecToTimespec(nsec int64) (ts Timespec) { + ts.Sec = nsec / 1e9 + ts.Nsec = nsec % 1e9 + return +} + +// TODO(brainman): fix all needed for net + +func Accept(fd Handle) (nfd Handle, sa Sockaddr, err error) { return 0, nil, syscall.EWINDOWS } + +func Recvfrom(fd Handle, p []byte, flags int) (n int, from Sockaddr, err error) { + var rsa RawSockaddrAny + l := int32(unsafe.Sizeof(rsa)) + n32, err := recvfrom(fd, p, int32(flags), &rsa, &l) + n = int(n32) + if err != nil { + return + } + from, err = rsa.Sockaddr() + return +} + +func Sendto(fd Handle, p []byte, flags int, to Sockaddr) (err error) { + ptr, l, err := to.sockaddr() + if err != nil { + return err + } + return sendto(fd, p, int32(flags), ptr, l) +} + +func SetsockoptTimeval(fd Handle, level, opt int, tv *Timeval) (err error) { return syscall.EWINDOWS } + +// The Linger struct is wrong but we only noticed after Go 1. +// sysLinger is the real system call structure. + +// BUG(brainman): The definition of Linger is not appropriate for direct use +// with Setsockopt and Getsockopt. +// Use SetsockoptLinger instead. + +type Linger struct { + Onoff int32 + Linger int32 +} + +type sysLinger struct { + Onoff uint16 + Linger uint16 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +func GetsockoptInt(fd Handle, level, opt int) (int, error) { + v := int32(0) + l := int32(unsafe.Sizeof(v)) + err := Getsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), &l) + return int(v), err +} + +func SetsockoptLinger(fd Handle, level, opt int, l *Linger) (err error) { + sys := sysLinger{Onoff: uint16(l.Onoff), Linger: uint16(l.Linger)} + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&sys)), int32(unsafe.Sizeof(sys))) +} + +func SetsockoptInet4Addr(fd Handle, level, opt int, value [4]byte) (err error) { + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&value[0])), 4) +} +func SetsockoptIPMreq(fd Handle, level, opt int, mreq *IPMreq) (err error) { + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(mreq)), int32(unsafe.Sizeof(*mreq))) +} +func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) { + return syscall.EWINDOWS +} + +func EnumProcesses(processIds []uint32, bytesReturned *uint32) error { + // EnumProcesses syscall expects the size parameter to be in bytes, but the code generated with mksyscall uses + // the length of the processIds slice instead. Hence, this wrapper function is added to fix the discrepancy. + var p *uint32 + if len(processIds) > 0 { + p = &processIds[0] + } + size := uint32(len(processIds) * 4) + return enumProcesses(p, size, bytesReturned) +} + +func Getpid() (pid int) { return int(GetCurrentProcessId()) } + +func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) { + // NOTE(rsc): The Win32finddata struct is wrong for the system call: + // the two paths are each one uint16 short. Use the correct struct, + // a win32finddata1, and then copy the results out. + // There is no loss of expressivity here, because the final + // uint16, if it is used, is supposed to be a NUL, and Go doesn't need that. + // For Go 1.1, we might avoid the allocation of win32finddata1 here + // by adding a final Bug [2]uint16 field to the struct and then + // adjusting the fields in the result directly. + var data1 win32finddata1 + handle, err = findFirstFile1(name, &data1) + if err == nil { + copyFindData(data, &data1) + } + return +} + +func FindNextFile(handle Handle, data *Win32finddata) (err error) { + var data1 win32finddata1 + err = findNextFile1(handle, &data1) + if err == nil { + copyFindData(data, &data1) + } + return +} + +func getProcessEntry(pid int) (*ProcessEntry32, error) { + snapshot, err := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0) + if err != nil { + return nil, err + } + defer CloseHandle(snapshot) + var procEntry ProcessEntry32 + procEntry.Size = uint32(unsafe.Sizeof(procEntry)) + if err = Process32First(snapshot, &procEntry); err != nil { + return nil, err + } + for { + if procEntry.ProcessID == uint32(pid) { + return &procEntry, nil + } + err = Process32Next(snapshot, &procEntry) + if err != nil { + return nil, err + } + } +} + +func Getppid() (ppid int) { + pe, err := getProcessEntry(Getpid()) + if err != nil { + return -1 + } + return int(pe.ParentProcessID) +} + +// TODO(brainman): fix all needed for os +func Fchdir(fd Handle) (err error) { return syscall.EWINDOWS } +func Link(oldpath, newpath string) (err error) { return syscall.EWINDOWS } +func Symlink(path, link string) (err error) { return syscall.EWINDOWS } + +func Fchmod(fd Handle, mode uint32) (err error) { return syscall.EWINDOWS } +func Chown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } +func Lchown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } +func Fchown(fd Handle, uid int, gid int) (err error) { return syscall.EWINDOWS } + +func Getuid() (uid int) { return -1 } +func Geteuid() (euid int) { return -1 } +func Getgid() (gid int) { return -1 } +func Getegid() (egid int) { return -1 } +func Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS } + +type Signal int + +func (s Signal) Signal() {} + +func (s Signal) String() string { + if 0 <= s && int(s) < len(signals) { + str := signals[s] + if str != "" { + return str + } + } + return "signal " + itoa(int(s)) +} + +func LoadCreateSymbolicLink() error { + return procCreateSymbolicLinkW.Find() +} + +// Readlink returns the destination of the named symbolic link. +func Readlink(path string, buf []byte) (n int, err error) { + fd, err := CreateFile(StringToUTF16Ptr(path), GENERIC_READ, 0, nil, OPEN_EXISTING, + FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0) + if err != nil { + return -1, err + } + defer CloseHandle(fd) + + rdbbuf := make([]byte, MAXIMUM_REPARSE_DATA_BUFFER_SIZE) + var bytesReturned uint32 + err = DeviceIoControl(fd, FSCTL_GET_REPARSE_POINT, nil, 0, &rdbbuf[0], uint32(len(rdbbuf)), &bytesReturned, nil) + if err != nil { + return -1, err + } + + rdb := (*reparseDataBuffer)(unsafe.Pointer(&rdbbuf[0])) + var s string + switch rdb.ReparseTag { + case IO_REPARSE_TAG_SYMLINK: + data := (*symbolicLinkReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) + p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) + s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) + case IO_REPARSE_TAG_MOUNT_POINT: + data := (*mountPointReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) + p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) + s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) + default: + // the path is not a symlink or junction but another type of reparse + // point + return -1, syscall.ENOENT + } + n = copy(buf, []byte(s)) + + return n, nil +} + +// GUIDFromString parses a string in the form of +// "{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" into a GUID. +func GUIDFromString(str string) (GUID, error) { + guid := GUID{} + str16, err := syscall.UTF16PtrFromString(str) + if err != nil { + return guid, err + } + err = clsidFromString(str16, &guid) + if err != nil { + return guid, err + } + return guid, nil +} + +// GenerateGUID creates a new random GUID. +func GenerateGUID() (GUID, error) { + guid := GUID{} + err := coCreateGuid(&guid) + if err != nil { + return guid, err + } + return guid, nil +} + +// String returns the canonical string form of the GUID, +// in the form of "{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}". +func (guid GUID) String() string { + var str [100]uint16 + chars := stringFromGUID2(&guid, &str[0], int32(len(str))) + if chars <= 1 { + return "" + } + return string(utf16.Decode(str[:chars-1])) +} + +// KnownFolderPath returns a well-known folder path for the current user, specified by one of +// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag. +func KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) { + return Token(0).KnownFolderPath(folderID, flags) +} + +// KnownFolderPath returns a well-known folder path for the user token, specified by one of +// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag. +func (t Token) KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) { + var p *uint16 + err := shGetKnownFolderPath(folderID, flags, t, &p) + if err != nil { + return "", err + } + defer CoTaskMemFree(unsafe.Pointer(p)) + return UTF16PtrToString(p), nil +} + +// RtlGetVersion returns the version of the underlying operating system, ignoring +// manifest semantics but is affected by the application compatibility layer. +func RtlGetVersion() *OsVersionInfoEx { + info := &OsVersionInfoEx{} + info.osVersionInfoSize = uint32(unsafe.Sizeof(*info)) + // According to documentation, this function always succeeds. + // The function doesn't even check the validity of the + // osVersionInfoSize member. Disassembling ntdll.dll indicates + // that the documentation is indeed correct about that. + _ = rtlGetVersion(info) + return info +} + +// RtlGetNtVersionNumbers returns the version of the underlying operating system, +// ignoring manifest semantics and the application compatibility layer. +func RtlGetNtVersionNumbers() (majorVersion, minorVersion, buildNumber uint32) { + rtlGetNtVersionNumbers(&majorVersion, &minorVersion, &buildNumber) + buildNumber &= 0xffff + return +} + +// GetProcessPreferredUILanguages retrieves the process preferred UI languages. +func GetProcessPreferredUILanguages(flags uint32) ([]string, error) { + return getUILanguages(flags, getProcessPreferredUILanguages) +} + +// GetThreadPreferredUILanguages retrieves the thread preferred UI languages for the current thread. +func GetThreadPreferredUILanguages(flags uint32) ([]string, error) { + return getUILanguages(flags, getThreadPreferredUILanguages) +} + +// GetUserPreferredUILanguages retrieves information about the user preferred UI languages. +func GetUserPreferredUILanguages(flags uint32) ([]string, error) { + return getUILanguages(flags, getUserPreferredUILanguages) +} + +// GetSystemPreferredUILanguages retrieves the system preferred UI languages. +func GetSystemPreferredUILanguages(flags uint32) ([]string, error) { + return getUILanguages(flags, getSystemPreferredUILanguages) +} + +func getUILanguages(flags uint32, f func(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) error) ([]string, error) { + size := uint32(128) + for { + var numLanguages uint32 + buf := make([]uint16, size) + err := f(flags, &numLanguages, &buf[0], &size) + if err == ERROR_INSUFFICIENT_BUFFER { + continue + } + if err != nil { + return nil, err + } + buf = buf[:size] + if numLanguages == 0 || len(buf) == 0 { // GetProcessPreferredUILanguages may return numLanguages==0 with "\0\0" + return []string{}, nil + } + if buf[len(buf)-1] == 0 { + buf = buf[:len(buf)-1] // remove terminating null + } + languages := make([]string, 0, numLanguages) + from := 0 + for i, c := range buf { + if c == 0 { + languages = append(languages, string(utf16.Decode(buf[from:i]))) + from = i + 1 + } + } + return languages, nil + } +} + +func SetConsoleCursorPosition(console Handle, position Coord) error { + return setConsoleCursorPosition(console, *((*uint32)(unsafe.Pointer(&position)))) +} + +func GetStartupInfo(startupInfo *StartupInfo) error { + getStartupInfo(startupInfo) + return nil +} + +func (s NTStatus) Errno() syscall.Errno { + return rtlNtStatusToDosErrorNoTeb(s) +} + +func langID(pri, sub uint16) uint32 { return uint32(sub)<<10 | uint32(pri) } + +func (s NTStatus) Error() string { + b := make([]uint16, 300) + n, err := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_ARGUMENT_ARRAY, modntdll.Handle(), uint32(s), langID(LANG_ENGLISH, SUBLANG_ENGLISH_US), b, nil) + if err != nil { + return fmt.Sprintf("NTSTATUS 0x%08x", uint32(s)) + } + // trim terminating \r and \n + for ; n > 0 && (b[n-1] == '\n' || b[n-1] == '\r'); n-- { + } + return string(utf16.Decode(b[:n])) +} + +// NewNTUnicodeString returns a new NTUnicodeString structure for use with native +// NT APIs that work over the NTUnicodeString type. Note that most Windows APIs +// do not use NTUnicodeString, and instead UTF16PtrFromString should be used for +// the more common *uint16 string type. +func NewNTUnicodeString(s string) (*NTUnicodeString, error) { + var u NTUnicodeString + s16, err := UTF16PtrFromString(s) + if err != nil { + return nil, err + } + RtlInitUnicodeString(&u, s16) + return &u, nil +} + +// Slice returns a uint16 slice that aliases the data in the NTUnicodeString. +func (s *NTUnicodeString) Slice() []uint16 { + var slice []uint16 + hdr := (*unsafeheader.Slice)(unsafe.Pointer(&slice)) + hdr.Data = unsafe.Pointer(s.Buffer) + hdr.Len = int(s.Length) + hdr.Cap = int(s.MaximumLength) + return slice +} + +func (s *NTUnicodeString) String() string { + return UTF16ToString(s.Slice()) +} + +// NewNTString returns a new NTString structure for use with native +// NT APIs that work over the NTString type. Note that most Windows APIs +// do not use NTString, and instead UTF16PtrFromString should be used for +// the more common *uint16 string type. +func NewNTString(s string) (*NTString, error) { + var nts NTString + s8, err := BytePtrFromString(s) + if err != nil { + return nil, err + } + RtlInitString(&nts, s8) + return &nts, nil +} + +// Slice returns a byte slice that aliases the data in the NTString. +func (s *NTString) Slice() []byte { + var slice []byte + hdr := (*unsafeheader.Slice)(unsafe.Pointer(&slice)) + hdr.Data = unsafe.Pointer(s.Buffer) + hdr.Len = int(s.Length) + hdr.Cap = int(s.MaximumLength) + return slice +} + +func (s *NTString) String() string { + return ByteSliceToString(s.Slice()) +} + +// FindResource resolves a resource of the given name and resource type. +func FindResource(module Handle, name, resType ResourceIDOrString) (Handle, error) { + var namePtr, resTypePtr uintptr + var name16, resType16 *uint16 + var err error + resolvePtr := func(i interface{}, keep **uint16) (uintptr, error) { + switch v := i.(type) { + case string: + *keep, err = UTF16PtrFromString(v) + if err != nil { + return 0, err + } + return uintptr(unsafe.Pointer(*keep)), nil + case ResourceID: + return uintptr(v), nil + } + return 0, errorspkg.New("parameter must be a ResourceID or a string") + } + namePtr, err = resolvePtr(name, &name16) + if err != nil { + return 0, err + } + resTypePtr, err = resolvePtr(resType, &resType16) + if err != nil { + return 0, err + } + resInfo, err := findResource(module, namePtr, resTypePtr) + runtime.KeepAlive(name16) + runtime.KeepAlive(resType16) + return resInfo, err +} + +func LoadResourceData(module, resInfo Handle) (data []byte, err error) { + size, err := SizeofResource(module, resInfo) + if err != nil { + return + } + resData, err := LoadResource(module, resInfo) + if err != nil { + return + } + ptr, err := LockResource(resData) + if err != nil { + return + } + h := (*unsafeheader.Slice)(unsafe.Pointer(&data)) + h.Data = unsafe.Pointer(ptr) + h.Len = int(size) + h.Cap = int(size) + return +} + +// PSAPI_WORKING_SET_EX_BLOCK contains extended working set information for a page. +type PSAPI_WORKING_SET_EX_BLOCK uint64 + +// Valid returns the validity of this page. +// If this bit is 1, the subsequent members are valid; otherwise they should be ignored. +func (b PSAPI_WORKING_SET_EX_BLOCK) Valid() bool { + return (b & 1) == 1 +} + +// ShareCount is the number of processes that share this page. The maximum value of this member is 7. +func (b PSAPI_WORKING_SET_EX_BLOCK) ShareCount() uint64 { + return b.intField(1, 3) +} + +// Win32Protection is the memory protection attributes of the page. For a list of values, see +// https://docs.microsoft.com/en-us/windows/win32/memory/memory-protection-constants +func (b PSAPI_WORKING_SET_EX_BLOCK) Win32Protection() uint64 { + return b.intField(4, 11) +} + +// Shared returns the shared status of this page. +// If this bit is 1, the page can be shared. +func (b PSAPI_WORKING_SET_EX_BLOCK) Shared() bool { + return (b & (1 << 15)) == 1 +} + +// Node is the NUMA node. The maximum value of this member is 63. +func (b PSAPI_WORKING_SET_EX_BLOCK) Node() uint64 { + return b.intField(16, 6) +} + +// Locked returns the locked status of this page. +// If this bit is 1, the virtual page is locked in physical memory. +func (b PSAPI_WORKING_SET_EX_BLOCK) Locked() bool { + return (b & (1 << 22)) == 1 +} + +// LargePage returns the large page status of this page. +// If this bit is 1, the page is a large page. +func (b PSAPI_WORKING_SET_EX_BLOCK) LargePage() bool { + return (b & (1 << 23)) == 1 +} + +// Bad returns the bad status of this page. +// If this bit is 1, the page is has been reported as bad. +func (b PSAPI_WORKING_SET_EX_BLOCK) Bad() bool { + return (b & (1 << 31)) == 1 +} + +// intField extracts an integer field in the PSAPI_WORKING_SET_EX_BLOCK union. +func (b PSAPI_WORKING_SET_EX_BLOCK) intField(start, length int) uint64 { + var mask PSAPI_WORKING_SET_EX_BLOCK + for pos := start; pos < start+length; pos++ { + mask |= (1 << pos) + } + + masked := b & mask + return uint64(masked >> start) +} + +// PSAPI_WORKING_SET_EX_INFORMATION contains extended working set information for a process. +type PSAPI_WORKING_SET_EX_INFORMATION struct { + // The virtual address. + VirtualAddress Pointer + // A PSAPI_WORKING_SET_EX_BLOCK union that indicates the attributes of the page at VirtualAddress. + VirtualAttributes PSAPI_WORKING_SET_EX_BLOCK +} diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go new file mode 100644 index 000000000000..88e62a63851b --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -0,0 +1,3349 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +import ( + "net" + "syscall" + "unsafe" +) + +// NTStatus corresponds with NTSTATUS, error values returned by ntdll.dll and +// other native functions. +type NTStatus uint32 + +const ( + // Invented values to support what package os expects. + O_RDONLY = 0x00000 + O_WRONLY = 0x00001 + O_RDWR = 0x00002 + O_CREAT = 0x00040 + O_EXCL = 0x00080 + O_NOCTTY = 0x00100 + O_TRUNC = 0x00200 + O_NONBLOCK = 0x00800 + O_APPEND = 0x00400 + O_SYNC = 0x01000 + O_ASYNC = 0x02000 + O_CLOEXEC = 0x80000 +) + +const ( + // More invented values for signals + SIGHUP = Signal(0x1) + SIGINT = Signal(0x2) + SIGQUIT = Signal(0x3) + SIGILL = Signal(0x4) + SIGTRAP = Signal(0x5) + SIGABRT = Signal(0x6) + SIGBUS = Signal(0x7) + SIGFPE = Signal(0x8) + SIGKILL = Signal(0x9) + SIGSEGV = Signal(0xb) + SIGPIPE = Signal(0xd) + SIGALRM = Signal(0xe) + SIGTERM = Signal(0xf) +) + +var signals = [...]string{ + 1: "hangup", + 2: "interrupt", + 3: "quit", + 4: "illegal instruction", + 5: "trace/breakpoint trap", + 6: "aborted", + 7: "bus error", + 8: "floating point exception", + 9: "killed", + 10: "user defined signal 1", + 11: "segmentation fault", + 12: "user defined signal 2", + 13: "broken pipe", + 14: "alarm clock", + 15: "terminated", +} + +const ( + FILE_READ_DATA = 0x00000001 + FILE_READ_ATTRIBUTES = 0x00000080 + FILE_READ_EA = 0x00000008 + FILE_WRITE_DATA = 0x00000002 + FILE_WRITE_ATTRIBUTES = 0x00000100 + FILE_WRITE_EA = 0x00000010 + FILE_APPEND_DATA = 0x00000004 + FILE_EXECUTE = 0x00000020 + + FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE + FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE + FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE + + FILE_LIST_DIRECTORY = 0x00000001 + FILE_TRAVERSE = 0x00000020 + + FILE_SHARE_READ = 0x00000001 + FILE_SHARE_WRITE = 0x00000002 + FILE_SHARE_DELETE = 0x00000004 + + FILE_ATTRIBUTE_READONLY = 0x00000001 + FILE_ATTRIBUTE_HIDDEN = 0x00000002 + FILE_ATTRIBUTE_SYSTEM = 0x00000004 + FILE_ATTRIBUTE_DIRECTORY = 0x00000010 + FILE_ATTRIBUTE_ARCHIVE = 0x00000020 + FILE_ATTRIBUTE_DEVICE = 0x00000040 + FILE_ATTRIBUTE_NORMAL = 0x00000080 + FILE_ATTRIBUTE_TEMPORARY = 0x00000100 + FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200 + FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 + FILE_ATTRIBUTE_COMPRESSED = 0x00000800 + FILE_ATTRIBUTE_OFFLINE = 0x00001000 + FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000 + FILE_ATTRIBUTE_ENCRYPTED = 0x00004000 + FILE_ATTRIBUTE_INTEGRITY_STREAM = 0x00008000 + FILE_ATTRIBUTE_VIRTUAL = 0x00010000 + FILE_ATTRIBUTE_NO_SCRUB_DATA = 0x00020000 + FILE_ATTRIBUTE_RECALL_ON_OPEN = 0x00040000 + FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS = 0x00400000 + + INVALID_FILE_ATTRIBUTES = 0xffffffff + + CREATE_NEW = 1 + CREATE_ALWAYS = 2 + OPEN_EXISTING = 3 + OPEN_ALWAYS = 4 + TRUNCATE_EXISTING = 5 + + FILE_FLAG_OPEN_REQUIRING_OPLOCK = 0x00040000 + FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000 + FILE_FLAG_OPEN_NO_RECALL = 0x00100000 + FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000 + FILE_FLAG_SESSION_AWARE = 0x00800000 + FILE_FLAG_POSIX_SEMANTICS = 0x01000000 + FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 + FILE_FLAG_DELETE_ON_CLOSE = 0x04000000 + FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000 + FILE_FLAG_RANDOM_ACCESS = 0x10000000 + FILE_FLAG_NO_BUFFERING = 0x20000000 + FILE_FLAG_OVERLAPPED = 0x40000000 + FILE_FLAG_WRITE_THROUGH = 0x80000000 + + HANDLE_FLAG_INHERIT = 0x00000001 + STARTF_USESTDHANDLES = 0x00000100 + STARTF_USESHOWWINDOW = 0x00000001 + DUPLICATE_CLOSE_SOURCE = 0x00000001 + DUPLICATE_SAME_ACCESS = 0x00000002 + + STD_INPUT_HANDLE = -10 & (1<<32 - 1) + STD_OUTPUT_HANDLE = -11 & (1<<32 - 1) + STD_ERROR_HANDLE = -12 & (1<<32 - 1) + + FILE_BEGIN = 0 + FILE_CURRENT = 1 + FILE_END = 2 + + LANG_ENGLISH = 0x09 + SUBLANG_ENGLISH_US = 0x01 + + FORMAT_MESSAGE_ALLOCATE_BUFFER = 256 + FORMAT_MESSAGE_IGNORE_INSERTS = 512 + FORMAT_MESSAGE_FROM_STRING = 1024 + FORMAT_MESSAGE_FROM_HMODULE = 2048 + FORMAT_MESSAGE_FROM_SYSTEM = 4096 + FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192 + FORMAT_MESSAGE_MAX_WIDTH_MASK = 255 + + MAX_PATH = 260 + MAX_LONG_PATH = 32768 + + MAX_MODULE_NAME32 = 255 + + MAX_COMPUTERNAME_LENGTH = 15 + + MAX_DHCPV6_DUID_LENGTH = 130 + + MAX_DNS_SUFFIX_STRING_LENGTH = 256 + + TIME_ZONE_ID_UNKNOWN = 0 + TIME_ZONE_ID_STANDARD = 1 + + TIME_ZONE_ID_DAYLIGHT = 2 + IGNORE = 0 + INFINITE = 0xffffffff + + WAIT_ABANDONED = 0x00000080 + WAIT_OBJECT_0 = 0x00000000 + WAIT_FAILED = 0xFFFFFFFF + + // Access rights for process. + PROCESS_CREATE_PROCESS = 0x0080 + PROCESS_CREATE_THREAD = 0x0002 + PROCESS_DUP_HANDLE = 0x0040 + PROCESS_QUERY_INFORMATION = 0x0400 + PROCESS_QUERY_LIMITED_INFORMATION = 0x1000 + PROCESS_SET_INFORMATION = 0x0200 + PROCESS_SET_QUOTA = 0x0100 + PROCESS_SUSPEND_RESUME = 0x0800 + PROCESS_TERMINATE = 0x0001 + PROCESS_VM_OPERATION = 0x0008 + PROCESS_VM_READ = 0x0010 + PROCESS_VM_WRITE = 0x0020 + + // Access rights for thread. + THREAD_DIRECT_IMPERSONATION = 0x0200 + THREAD_GET_CONTEXT = 0x0008 + THREAD_IMPERSONATE = 0x0100 + THREAD_QUERY_INFORMATION = 0x0040 + THREAD_QUERY_LIMITED_INFORMATION = 0x0800 + THREAD_SET_CONTEXT = 0x0010 + THREAD_SET_INFORMATION = 0x0020 + THREAD_SET_LIMITED_INFORMATION = 0x0400 + THREAD_SET_THREAD_TOKEN = 0x0080 + THREAD_SUSPEND_RESUME = 0x0002 + THREAD_TERMINATE = 0x0001 + + FILE_MAP_COPY = 0x01 + FILE_MAP_WRITE = 0x02 + FILE_MAP_READ = 0x04 + FILE_MAP_EXECUTE = 0x20 + + CTRL_C_EVENT = 0 + CTRL_BREAK_EVENT = 1 + CTRL_CLOSE_EVENT = 2 + CTRL_LOGOFF_EVENT = 5 + CTRL_SHUTDOWN_EVENT = 6 + + // Windows reserves errors >= 1<<29 for application use. + APPLICATION_ERROR = 1 << 29 +) + +const ( + // Process creation flags. + CREATE_BREAKAWAY_FROM_JOB = 0x01000000 + CREATE_DEFAULT_ERROR_MODE = 0x04000000 + CREATE_NEW_CONSOLE = 0x00000010 + CREATE_NEW_PROCESS_GROUP = 0x00000200 + CREATE_NO_WINDOW = 0x08000000 + CREATE_PROTECTED_PROCESS = 0x00040000 + CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000 + CREATE_SEPARATE_WOW_VDM = 0x00000800 + CREATE_SHARED_WOW_VDM = 0x00001000 + CREATE_SUSPENDED = 0x00000004 + CREATE_UNICODE_ENVIRONMENT = 0x00000400 + DEBUG_ONLY_THIS_PROCESS = 0x00000002 + DEBUG_PROCESS = 0x00000001 + DETACHED_PROCESS = 0x00000008 + EXTENDED_STARTUPINFO_PRESENT = 0x00080000 + INHERIT_PARENT_AFFINITY = 0x00010000 +) + +const ( + // attributes for ProcThreadAttributeList + PROC_THREAD_ATTRIBUTE_PARENT_PROCESS = 0x00020000 + PROC_THREAD_ATTRIBUTE_HANDLE_LIST = 0x00020002 + PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY = 0x00030003 + PROC_THREAD_ATTRIBUTE_PREFERRED_NODE = 0x00020004 + PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR = 0x00030005 + PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY = 0x00020007 + PROC_THREAD_ATTRIBUTE_UMS_THREAD = 0x00030006 + PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL = 0x0002000b +) + +const ( + // flags for CreateToolhelp32Snapshot + TH32CS_SNAPHEAPLIST = 0x01 + TH32CS_SNAPPROCESS = 0x02 + TH32CS_SNAPTHREAD = 0x04 + TH32CS_SNAPMODULE = 0x08 + TH32CS_SNAPMODULE32 = 0x10 + TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD + TH32CS_INHERIT = 0x80000000 +) + +const ( + // flags for EnumProcessModulesEx + LIST_MODULES_32BIT = 0x01 + LIST_MODULES_64BIT = 0x02 + LIST_MODULES_ALL = 0x03 + LIST_MODULES_DEFAULT = 0x00 +) + +const ( + // filters for ReadDirectoryChangesW and FindFirstChangeNotificationW + FILE_NOTIFY_CHANGE_FILE_NAME = 0x001 + FILE_NOTIFY_CHANGE_DIR_NAME = 0x002 + FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x004 + FILE_NOTIFY_CHANGE_SIZE = 0x008 + FILE_NOTIFY_CHANGE_LAST_WRITE = 0x010 + FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x020 + FILE_NOTIFY_CHANGE_CREATION = 0x040 + FILE_NOTIFY_CHANGE_SECURITY = 0x100 +) + +const ( + // do not reorder + FILE_ACTION_ADDED = iota + 1 + FILE_ACTION_REMOVED + FILE_ACTION_MODIFIED + FILE_ACTION_RENAMED_OLD_NAME + FILE_ACTION_RENAMED_NEW_NAME +) + +const ( + // wincrypt.h + /* certenrolld_begin -- PROV_RSA_*/ + PROV_RSA_FULL = 1 + PROV_RSA_SIG = 2 + PROV_DSS = 3 + PROV_FORTEZZA = 4 + PROV_MS_EXCHANGE = 5 + PROV_SSL = 6 + PROV_RSA_SCHANNEL = 12 + PROV_DSS_DH = 13 + PROV_EC_ECDSA_SIG = 14 + PROV_EC_ECNRA_SIG = 15 + PROV_EC_ECDSA_FULL = 16 + PROV_EC_ECNRA_FULL = 17 + PROV_DH_SCHANNEL = 18 + PROV_SPYRUS_LYNKS = 20 + PROV_RNG = 21 + PROV_INTEL_SEC = 22 + PROV_REPLACE_OWF = 23 + PROV_RSA_AES = 24 + + /* dwFlags definitions for CryptAcquireContext */ + CRYPT_VERIFYCONTEXT = 0xF0000000 + CRYPT_NEWKEYSET = 0x00000008 + CRYPT_DELETEKEYSET = 0x00000010 + CRYPT_MACHINE_KEYSET = 0x00000020 + CRYPT_SILENT = 0x00000040 + CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080 + + /* Flags for PFXImportCertStore */ + CRYPT_EXPORTABLE = 0x00000001 + CRYPT_USER_PROTECTED = 0x00000002 + CRYPT_USER_KEYSET = 0x00001000 + PKCS12_PREFER_CNG_KSP = 0x00000100 + PKCS12_ALWAYS_CNG_KSP = 0x00000200 + PKCS12_ALLOW_OVERWRITE_KEY = 0x00004000 + PKCS12_NO_PERSIST_KEY = 0x00008000 + PKCS12_INCLUDE_EXTENDED_PROPERTIES = 0x00000010 + + /* Flags for CryptAcquireCertificatePrivateKey */ + CRYPT_ACQUIRE_CACHE_FLAG = 0x00000001 + CRYPT_ACQUIRE_USE_PROV_INFO_FLAG = 0x00000002 + CRYPT_ACQUIRE_COMPARE_KEY_FLAG = 0x00000004 + CRYPT_ACQUIRE_NO_HEALING = 0x00000008 + CRYPT_ACQUIRE_SILENT_FLAG = 0x00000040 + CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG = 0x00000080 + CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK = 0x00070000 + CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG = 0x00010000 + CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG = 0x00020000 + CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG = 0x00040000 + + /* pdwKeySpec for CryptAcquireCertificatePrivateKey */ + AT_KEYEXCHANGE = 1 + AT_SIGNATURE = 2 + CERT_NCRYPT_KEY_SPEC = 0xFFFFFFFF + + /* Default usage match type is AND with value zero */ + USAGE_MATCH_TYPE_AND = 0 + USAGE_MATCH_TYPE_OR = 1 + + /* msgAndCertEncodingType values for CertOpenStore function */ + X509_ASN_ENCODING = 0x00000001 + PKCS_7_ASN_ENCODING = 0x00010000 + + /* storeProvider values for CertOpenStore function */ + CERT_STORE_PROV_MSG = 1 + CERT_STORE_PROV_MEMORY = 2 + CERT_STORE_PROV_FILE = 3 + CERT_STORE_PROV_REG = 4 + CERT_STORE_PROV_PKCS7 = 5 + CERT_STORE_PROV_SERIALIZED = 6 + CERT_STORE_PROV_FILENAME_A = 7 + CERT_STORE_PROV_FILENAME_W = 8 + CERT_STORE_PROV_FILENAME = CERT_STORE_PROV_FILENAME_W + CERT_STORE_PROV_SYSTEM_A = 9 + CERT_STORE_PROV_SYSTEM_W = 10 + CERT_STORE_PROV_SYSTEM = CERT_STORE_PROV_SYSTEM_W + CERT_STORE_PROV_COLLECTION = 11 + CERT_STORE_PROV_SYSTEM_REGISTRY_A = 12 + CERT_STORE_PROV_SYSTEM_REGISTRY_W = 13 + CERT_STORE_PROV_SYSTEM_REGISTRY = CERT_STORE_PROV_SYSTEM_REGISTRY_W + CERT_STORE_PROV_PHYSICAL_W = 14 + CERT_STORE_PROV_PHYSICAL = CERT_STORE_PROV_PHYSICAL_W + CERT_STORE_PROV_SMART_CARD_W = 15 + CERT_STORE_PROV_SMART_CARD = CERT_STORE_PROV_SMART_CARD_W + CERT_STORE_PROV_LDAP_W = 16 + CERT_STORE_PROV_LDAP = CERT_STORE_PROV_LDAP_W + CERT_STORE_PROV_PKCS12 = 17 + + /* store characteristics (low WORD of flag) for CertOpenStore function */ + CERT_STORE_NO_CRYPT_RELEASE_FLAG = 0x00000001 + CERT_STORE_SET_LOCALIZED_NAME_FLAG = 0x00000002 + CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004 + CERT_STORE_DELETE_FLAG = 0x00000010 + CERT_STORE_UNSAFE_PHYSICAL_FLAG = 0x00000020 + CERT_STORE_SHARE_STORE_FLAG = 0x00000040 + CERT_STORE_SHARE_CONTEXT_FLAG = 0x00000080 + CERT_STORE_MANIFOLD_FLAG = 0x00000100 + CERT_STORE_ENUM_ARCHIVED_FLAG = 0x00000200 + CERT_STORE_UPDATE_KEYID_FLAG = 0x00000400 + CERT_STORE_BACKUP_RESTORE_FLAG = 0x00000800 + CERT_STORE_MAXIMUM_ALLOWED_FLAG = 0x00001000 + CERT_STORE_CREATE_NEW_FLAG = 0x00002000 + CERT_STORE_OPEN_EXISTING_FLAG = 0x00004000 + CERT_STORE_READONLY_FLAG = 0x00008000 + + /* store locations (high WORD of flag) for CertOpenStore function */ + CERT_SYSTEM_STORE_CURRENT_USER = 0x00010000 + CERT_SYSTEM_STORE_LOCAL_MACHINE = 0x00020000 + CERT_SYSTEM_STORE_CURRENT_SERVICE = 0x00040000 + CERT_SYSTEM_STORE_SERVICES = 0x00050000 + CERT_SYSTEM_STORE_USERS = 0x00060000 + CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY = 0x00070000 + CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = 0x00080000 + CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE = 0x00090000 + CERT_SYSTEM_STORE_UNPROTECTED_FLAG = 0x40000000 + CERT_SYSTEM_STORE_RELOCATE_FLAG = 0x80000000 + + /* Miscellaneous high-WORD flags for CertOpenStore function */ + CERT_REGISTRY_STORE_REMOTE_FLAG = 0x00010000 + CERT_REGISTRY_STORE_SERIALIZED_FLAG = 0x00020000 + CERT_REGISTRY_STORE_ROAMING_FLAG = 0x00040000 + CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 0x00080000 + CERT_REGISTRY_STORE_LM_GPT_FLAG = 0x01000000 + CERT_REGISTRY_STORE_CLIENT_GPT_FLAG = 0x80000000 + CERT_FILE_STORE_COMMIT_ENABLE_FLAG = 0x00010000 + CERT_LDAP_STORE_SIGN_FLAG = 0x00010000 + CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG = 0x00020000 + CERT_LDAP_STORE_OPENED_FLAG = 0x00040000 + CERT_LDAP_STORE_UNBIND_FLAG = 0x00080000 + + /* addDisposition values for CertAddCertificateContextToStore function */ + CERT_STORE_ADD_NEW = 1 + CERT_STORE_ADD_USE_EXISTING = 2 + CERT_STORE_ADD_REPLACE_EXISTING = 3 + CERT_STORE_ADD_ALWAYS = 4 + CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5 + CERT_STORE_ADD_NEWER = 6 + CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES = 7 + + /* ErrorStatus values for CertTrustStatus struct */ + CERT_TRUST_NO_ERROR = 0x00000000 + CERT_TRUST_IS_NOT_TIME_VALID = 0x00000001 + CERT_TRUST_IS_REVOKED = 0x00000004 + CERT_TRUST_IS_NOT_SIGNATURE_VALID = 0x00000008 + CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 0x00000010 + CERT_TRUST_IS_UNTRUSTED_ROOT = 0x00000020 + CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 0x00000040 + CERT_TRUST_IS_CYCLIC = 0x00000080 + CERT_TRUST_INVALID_EXTENSION = 0x00000100 + CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 0x00000200 + CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 0x00000400 + CERT_TRUST_INVALID_NAME_CONSTRAINTS = 0x00000800 + CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000 + CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 0x00002000 + CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000 + CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 0x00008000 + CERT_TRUST_IS_PARTIAL_CHAIN = 0x00010000 + CERT_TRUST_CTL_IS_NOT_TIME_VALID = 0x00020000 + CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 0x00040000 + CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 0x00080000 + CERT_TRUST_HAS_WEAK_SIGNATURE = 0x00100000 + CERT_TRUST_IS_OFFLINE_REVOCATION = 0x01000000 + CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 0x02000000 + CERT_TRUST_IS_EXPLICIT_DISTRUST = 0x04000000 + CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT = 0x08000000 + + /* InfoStatus values for CertTrustStatus struct */ + CERT_TRUST_HAS_EXACT_MATCH_ISSUER = 0x00000001 + CERT_TRUST_HAS_KEY_MATCH_ISSUER = 0x00000002 + CERT_TRUST_HAS_NAME_MATCH_ISSUER = 0x00000004 + CERT_TRUST_IS_SELF_SIGNED = 0x00000008 + CERT_TRUST_HAS_PREFERRED_ISSUER = 0x00000100 + CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY = 0x00000400 + CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS = 0x00000400 + CERT_TRUST_IS_PEER_TRUSTED = 0x00000800 + CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED = 0x00001000 + CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE = 0x00002000 + CERT_TRUST_IS_CA_TRUSTED = 0x00004000 + CERT_TRUST_IS_COMPLEX_CHAIN = 0x00010000 + + /* Certificate Information Flags */ + CERT_INFO_VERSION_FLAG = 1 + CERT_INFO_SERIAL_NUMBER_FLAG = 2 + CERT_INFO_SIGNATURE_ALGORITHM_FLAG = 3 + CERT_INFO_ISSUER_FLAG = 4 + CERT_INFO_NOT_BEFORE_FLAG = 5 + CERT_INFO_NOT_AFTER_FLAG = 6 + CERT_INFO_SUBJECT_FLAG = 7 + CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = 8 + CERT_INFO_ISSUER_UNIQUE_ID_FLAG = 9 + CERT_INFO_SUBJECT_UNIQUE_ID_FLAG = 10 + CERT_INFO_EXTENSION_FLAG = 11 + + /* dwFindType for CertFindCertificateInStore */ + CERT_COMPARE_MASK = 0xFFFF + CERT_COMPARE_SHIFT = 16 + CERT_COMPARE_ANY = 0 + CERT_COMPARE_SHA1_HASH = 1 + CERT_COMPARE_NAME = 2 + CERT_COMPARE_ATTR = 3 + CERT_COMPARE_MD5_HASH = 4 + CERT_COMPARE_PROPERTY = 5 + CERT_COMPARE_PUBLIC_KEY = 6 + CERT_COMPARE_HASH = CERT_COMPARE_SHA1_HASH + CERT_COMPARE_NAME_STR_A = 7 + CERT_COMPARE_NAME_STR_W = 8 + CERT_COMPARE_KEY_SPEC = 9 + CERT_COMPARE_ENHKEY_USAGE = 10 + CERT_COMPARE_CTL_USAGE = CERT_COMPARE_ENHKEY_USAGE + CERT_COMPARE_SUBJECT_CERT = 11 + CERT_COMPARE_ISSUER_OF = 12 + CERT_COMPARE_EXISTING = 13 + CERT_COMPARE_SIGNATURE_HASH = 14 + CERT_COMPARE_KEY_IDENTIFIER = 15 + CERT_COMPARE_CERT_ID = 16 + CERT_COMPARE_CROSS_CERT_DIST_POINTS = 17 + CERT_COMPARE_PUBKEY_MD5_HASH = 18 + CERT_COMPARE_SUBJECT_INFO_ACCESS = 19 + CERT_COMPARE_HASH_STR = 20 + CERT_COMPARE_HAS_PRIVATE_KEY = 21 + CERT_FIND_ANY = (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT) + CERT_FIND_SHA1_HASH = (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT) + CERT_FIND_MD5_HASH = (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT) + CERT_FIND_SIGNATURE_HASH = (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT) + CERT_FIND_KEY_IDENTIFIER = (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT) + CERT_FIND_HASH = CERT_FIND_SHA1_HASH + CERT_FIND_PROPERTY = (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT) + CERT_FIND_PUBLIC_KEY = (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT) + CERT_FIND_SUBJECT_NAME = (CERT_COMPARE_NAME<> 32 & 0xffffffff) + return ft +} + +type Win32finddata struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + FileSizeHigh uint32 + FileSizeLow uint32 + Reserved0 uint32 + Reserved1 uint32 + FileName [MAX_PATH - 1]uint16 + AlternateFileName [13]uint16 +} + +// This is the actual system call structure. +// Win32finddata is what we committed to in Go 1. +type win32finddata1 struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + FileSizeHigh uint32 + FileSizeLow uint32 + Reserved0 uint32 + Reserved1 uint32 + FileName [MAX_PATH]uint16 + AlternateFileName [14]uint16 + + // The Microsoft documentation for this struct¹ describes three additional + // fields: dwFileType, dwCreatorType, and wFinderFlags. However, those fields + // are empirically only present in the macOS port of the Win32 API,² and thus + // not needed for binaries built for Windows. + // + // ¹ https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-win32_find_dataw describe + // ² https://golang.org/issue/42637#issuecomment-760715755. +} + +func copyFindData(dst *Win32finddata, src *win32finddata1) { + dst.FileAttributes = src.FileAttributes + dst.CreationTime = src.CreationTime + dst.LastAccessTime = src.LastAccessTime + dst.LastWriteTime = src.LastWriteTime + dst.FileSizeHigh = src.FileSizeHigh + dst.FileSizeLow = src.FileSizeLow + dst.Reserved0 = src.Reserved0 + dst.Reserved1 = src.Reserved1 + + // The src is 1 element bigger than dst, but it must be NUL. + copy(dst.FileName[:], src.FileName[:]) + copy(dst.AlternateFileName[:], src.AlternateFileName[:]) +} + +type ByHandleFileInformation struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + VolumeSerialNumber uint32 + FileSizeHigh uint32 + FileSizeLow uint32 + NumberOfLinks uint32 + FileIndexHigh uint32 + FileIndexLow uint32 +} + +const ( + GetFileExInfoStandard = 0 + GetFileExMaxInfoLevel = 1 +) + +type Win32FileAttributeData struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + FileSizeHigh uint32 + FileSizeLow uint32 +} + +// ShowWindow constants +const ( + // winuser.h + SW_HIDE = 0 + SW_NORMAL = 1 + SW_SHOWNORMAL = 1 + SW_SHOWMINIMIZED = 2 + SW_SHOWMAXIMIZED = 3 + SW_MAXIMIZE = 3 + SW_SHOWNOACTIVATE = 4 + SW_SHOW = 5 + SW_MINIMIZE = 6 + SW_SHOWMINNOACTIVE = 7 + SW_SHOWNA = 8 + SW_RESTORE = 9 + SW_SHOWDEFAULT = 10 + SW_FORCEMINIMIZE = 11 +) + +type StartupInfo struct { + Cb uint32 + _ *uint16 + Desktop *uint16 + Title *uint16 + X uint32 + Y uint32 + XSize uint32 + YSize uint32 + XCountChars uint32 + YCountChars uint32 + FillAttribute uint32 + Flags uint32 + ShowWindow uint16 + _ uint16 + _ *byte + StdInput Handle + StdOutput Handle + StdErr Handle +} + +type StartupInfoEx struct { + StartupInfo + ProcThreadAttributeList *ProcThreadAttributeList +} + +// ProcThreadAttributeList is a placeholder type to represent a PROC_THREAD_ATTRIBUTE_LIST. +// +// To create a *ProcThreadAttributeList, use NewProcThreadAttributeList, update +// it with ProcThreadAttributeListContainer.Update, free its memory using +// ProcThreadAttributeListContainer.Delete, and access the list itself using +// ProcThreadAttributeListContainer.List. +type ProcThreadAttributeList struct{} + +type ProcThreadAttributeListContainer struct { + data *ProcThreadAttributeList + pointers []unsafe.Pointer +} + +type ProcessInformation struct { + Process Handle + Thread Handle + ProcessId uint32 + ThreadId uint32 +} + +type ProcessEntry32 struct { + Size uint32 + Usage uint32 + ProcessID uint32 + DefaultHeapID uintptr + ModuleID uint32 + Threads uint32 + ParentProcessID uint32 + PriClassBase int32 + Flags uint32 + ExeFile [MAX_PATH]uint16 +} + +type ThreadEntry32 struct { + Size uint32 + Usage uint32 + ThreadID uint32 + OwnerProcessID uint32 + BasePri int32 + DeltaPri int32 + Flags uint32 +} + +type ModuleEntry32 struct { + Size uint32 + ModuleID uint32 + ProcessID uint32 + GlblcntUsage uint32 + ProccntUsage uint32 + ModBaseAddr uintptr + ModBaseSize uint32 + ModuleHandle Handle + Module [MAX_MODULE_NAME32 + 1]uint16 + ExePath [MAX_PATH]uint16 +} + +const SizeofModuleEntry32 = unsafe.Sizeof(ModuleEntry32{}) + +type Systemtime struct { + Year uint16 + Month uint16 + DayOfWeek uint16 + Day uint16 + Hour uint16 + Minute uint16 + Second uint16 + Milliseconds uint16 +} + +type Timezoneinformation struct { + Bias int32 + StandardName [32]uint16 + StandardDate Systemtime + StandardBias int32 + DaylightName [32]uint16 + DaylightDate Systemtime + DaylightBias int32 +} + +// Socket related. + +const ( + AF_UNSPEC = 0 + AF_UNIX = 1 + AF_INET = 2 + AF_NETBIOS = 17 + AF_INET6 = 23 + AF_IRDA = 26 + AF_BTH = 32 + + SOCK_STREAM = 1 + SOCK_DGRAM = 2 + SOCK_RAW = 3 + SOCK_RDM = 4 + SOCK_SEQPACKET = 5 + + IPPROTO_IP = 0 + IPPROTO_ICMP = 1 + IPPROTO_IGMP = 2 + BTHPROTO_RFCOMM = 3 + IPPROTO_TCP = 6 + IPPROTO_UDP = 17 + IPPROTO_IPV6 = 41 + IPPROTO_ICMPV6 = 58 + IPPROTO_RM = 113 + + SOL_SOCKET = 0xffff + SO_REUSEADDR = 4 + SO_KEEPALIVE = 8 + SO_DONTROUTE = 16 + SO_BROADCAST = 32 + SO_LINGER = 128 + SO_RCVBUF = 0x1002 + SO_RCVTIMEO = 0x1006 + SO_SNDBUF = 0x1001 + SO_UPDATE_ACCEPT_CONTEXT = 0x700b + SO_UPDATE_CONNECT_CONTEXT = 0x7010 + + IOC_OUT = 0x40000000 + IOC_IN = 0x80000000 + IOC_VENDOR = 0x18000000 + IOC_INOUT = IOC_IN | IOC_OUT + IOC_WS2 = 0x08000000 + SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6 + SIO_KEEPALIVE_VALS = IOC_IN | IOC_VENDOR | 4 + SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12 + + // cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460 + + IP_HDRINCL = 0x2 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_LOOP = 0xb + IP_ADD_MEMBERSHIP = 0xc + IP_DROP_MEMBERSHIP = 0xd + IP_PKTINFO = 0x13 + + IPV6_V6ONLY = 0x1b + IPV6_UNICAST_HOPS = 0x4 + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_LOOP = 0xb + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_PKTINFO = 0x13 + + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_DONTROUTE = 0x4 + MSG_WAITALL = 0x8 + + MSG_TRUNC = 0x0100 + MSG_CTRUNC = 0x0200 + MSG_BCAST = 0x0400 + MSG_MCAST = 0x0800 + + SOMAXCONN = 0x7fffffff + + TCP_NODELAY = 1 + + SHUT_RD = 0 + SHUT_WR = 1 + SHUT_RDWR = 2 + + WSADESCRIPTION_LEN = 256 + WSASYS_STATUS_LEN = 128 +) + +type WSABuf struct { + Len uint32 + Buf *byte +} + +type WSAMsg struct { + Name *syscall.RawSockaddrAny + Namelen int32 + Buffers *WSABuf + BufferCount uint32 + Control WSABuf + Flags uint32 +} + +// Flags for WSASocket +const ( + WSA_FLAG_OVERLAPPED = 0x01 + WSA_FLAG_MULTIPOINT_C_ROOT = 0x02 + WSA_FLAG_MULTIPOINT_C_LEAF = 0x04 + WSA_FLAG_MULTIPOINT_D_ROOT = 0x08 + WSA_FLAG_MULTIPOINT_D_LEAF = 0x10 + WSA_FLAG_ACCESS_SYSTEM_SECURITY = 0x40 + WSA_FLAG_NO_HANDLE_INHERIT = 0x80 + WSA_FLAG_REGISTERED_IO = 0x100 +) + +// Invented values to support what package os expects. +const ( + S_IFMT = 0x1f000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXUSR = 0x40 +) + +const ( + FILE_TYPE_CHAR = 0x0002 + FILE_TYPE_DISK = 0x0001 + FILE_TYPE_PIPE = 0x0003 + FILE_TYPE_REMOTE = 0x8000 + FILE_TYPE_UNKNOWN = 0x0000 +) + +type Hostent struct { + Name *byte + Aliases **byte + AddrType uint16 + Length uint16 + AddrList **byte +} + +type Protoent struct { + Name *byte + Aliases **byte + Proto uint16 +} + +const ( + DNS_TYPE_A = 0x0001 + DNS_TYPE_NS = 0x0002 + DNS_TYPE_MD = 0x0003 + DNS_TYPE_MF = 0x0004 + DNS_TYPE_CNAME = 0x0005 + DNS_TYPE_SOA = 0x0006 + DNS_TYPE_MB = 0x0007 + DNS_TYPE_MG = 0x0008 + DNS_TYPE_MR = 0x0009 + DNS_TYPE_NULL = 0x000a + DNS_TYPE_WKS = 0x000b + DNS_TYPE_PTR = 0x000c + DNS_TYPE_HINFO = 0x000d + DNS_TYPE_MINFO = 0x000e + DNS_TYPE_MX = 0x000f + DNS_TYPE_TEXT = 0x0010 + DNS_TYPE_RP = 0x0011 + DNS_TYPE_AFSDB = 0x0012 + DNS_TYPE_X25 = 0x0013 + DNS_TYPE_ISDN = 0x0014 + DNS_TYPE_RT = 0x0015 + DNS_TYPE_NSAP = 0x0016 + DNS_TYPE_NSAPPTR = 0x0017 + DNS_TYPE_SIG = 0x0018 + DNS_TYPE_KEY = 0x0019 + DNS_TYPE_PX = 0x001a + DNS_TYPE_GPOS = 0x001b + DNS_TYPE_AAAA = 0x001c + DNS_TYPE_LOC = 0x001d + DNS_TYPE_NXT = 0x001e + DNS_TYPE_EID = 0x001f + DNS_TYPE_NIMLOC = 0x0020 + DNS_TYPE_SRV = 0x0021 + DNS_TYPE_ATMA = 0x0022 + DNS_TYPE_NAPTR = 0x0023 + DNS_TYPE_KX = 0x0024 + DNS_TYPE_CERT = 0x0025 + DNS_TYPE_A6 = 0x0026 + DNS_TYPE_DNAME = 0x0027 + DNS_TYPE_SINK = 0x0028 + DNS_TYPE_OPT = 0x0029 + DNS_TYPE_DS = 0x002B + DNS_TYPE_RRSIG = 0x002E + DNS_TYPE_NSEC = 0x002F + DNS_TYPE_DNSKEY = 0x0030 + DNS_TYPE_DHCID = 0x0031 + DNS_TYPE_UINFO = 0x0064 + DNS_TYPE_UID = 0x0065 + DNS_TYPE_GID = 0x0066 + DNS_TYPE_UNSPEC = 0x0067 + DNS_TYPE_ADDRS = 0x00f8 + DNS_TYPE_TKEY = 0x00f9 + DNS_TYPE_TSIG = 0x00fa + DNS_TYPE_IXFR = 0x00fb + DNS_TYPE_AXFR = 0x00fc + DNS_TYPE_MAILB = 0x00fd + DNS_TYPE_MAILA = 0x00fe + DNS_TYPE_ALL = 0x00ff + DNS_TYPE_ANY = 0x00ff + DNS_TYPE_WINS = 0xff01 + DNS_TYPE_WINSR = 0xff02 + DNS_TYPE_NBSTAT = 0xff01 +) + +const ( + // flags inside DNSRecord.Dw + DnsSectionQuestion = 0x0000 + DnsSectionAnswer = 0x0001 + DnsSectionAuthority = 0x0002 + DnsSectionAdditional = 0x0003 +) + +const ( + // flags of WSALookupService + LUP_DEEP = 0x0001 + LUP_CONTAINERS = 0x0002 + LUP_NOCONTAINERS = 0x0004 + LUP_NEAREST = 0x0008 + LUP_RETURN_NAME = 0x0010 + LUP_RETURN_TYPE = 0x0020 + LUP_RETURN_VERSION = 0x0040 + LUP_RETURN_COMMENT = 0x0080 + LUP_RETURN_ADDR = 0x0100 + LUP_RETURN_BLOB = 0x0200 + LUP_RETURN_ALIASES = 0x0400 + LUP_RETURN_QUERY_STRING = 0x0800 + LUP_RETURN_ALL = 0x0FF0 + LUP_RES_SERVICE = 0x8000 + + LUP_FLUSHCACHE = 0x1000 + LUP_FLUSHPREVIOUS = 0x2000 + + LUP_NON_AUTHORITATIVE = 0x4000 + LUP_SECURE = 0x8000 + LUP_RETURN_PREFERRED_NAMES = 0x10000 + LUP_DNS_ONLY = 0x20000 + + LUP_ADDRCONFIG = 0x100000 + LUP_DUAL_ADDR = 0x200000 + LUP_FILESERVER = 0x400000 + LUP_DISABLE_IDN_ENCODING = 0x00800000 + LUP_API_ANSI = 0x01000000 + + LUP_RESOLUTION_HANDLE = 0x80000000 +) + +const ( + // values of WSAQUERYSET's namespace + NS_ALL = 0 + NS_DNS = 12 + NS_NLA = 15 + NS_BTH = 16 + NS_EMAIL = 37 + NS_PNRPNAME = 38 + NS_PNRPCLOUD = 39 +) + +type DNSSRVData struct { + Target *uint16 + Priority uint16 + Weight uint16 + Port uint16 + Pad uint16 +} + +type DNSPTRData struct { + Host *uint16 +} + +type DNSMXData struct { + NameExchange *uint16 + Preference uint16 + Pad uint16 +} + +type DNSTXTData struct { + StringCount uint16 + StringArray [1]*uint16 +} + +type DNSRecord struct { + Next *DNSRecord + Name *uint16 + Type uint16 + Length uint16 + Dw uint32 + Ttl uint32 + Reserved uint32 + Data [40]byte +} + +const ( + TF_DISCONNECT = 1 + TF_REUSE_SOCKET = 2 + TF_WRITE_BEHIND = 4 + TF_USE_DEFAULT_WORKER = 0 + TF_USE_SYSTEM_THREAD = 16 + TF_USE_KERNEL_APC = 32 +) + +type TransmitFileBuffers struct { + Head uintptr + HeadLength uint32 + Tail uintptr + TailLength uint32 +} + +const ( + IFF_UP = 1 + IFF_BROADCAST = 2 + IFF_LOOPBACK = 4 + IFF_POINTTOPOINT = 8 + IFF_MULTICAST = 16 +) + +const SIO_GET_INTERFACE_LIST = 0x4004747F + +// TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old. +// will be fixed to change variable type as suitable. + +type SockaddrGen [24]byte + +type InterfaceInfo struct { + Flags uint32 + Address SockaddrGen + BroadcastAddress SockaddrGen + Netmask SockaddrGen +} + +type IpAddressString struct { + String [16]byte +} + +type IpMaskString IpAddressString + +type IpAddrString struct { + Next *IpAddrString + IpAddress IpAddressString + IpMask IpMaskString + Context uint32 +} + +const MAX_ADAPTER_NAME_LENGTH = 256 +const MAX_ADAPTER_DESCRIPTION_LENGTH = 128 +const MAX_ADAPTER_ADDRESS_LENGTH = 8 + +type IpAdapterInfo struct { + Next *IpAdapterInfo + ComboIndex uint32 + AdapterName [MAX_ADAPTER_NAME_LENGTH + 4]byte + Description [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte + AddressLength uint32 + Address [MAX_ADAPTER_ADDRESS_LENGTH]byte + Index uint32 + Type uint32 + DhcpEnabled uint32 + CurrentIpAddress *IpAddrString + IpAddressList IpAddrString + GatewayList IpAddrString + DhcpServer IpAddrString + HaveWins bool + PrimaryWinsServer IpAddrString + SecondaryWinsServer IpAddrString + LeaseObtained int64 + LeaseExpires int64 +} + +const MAXLEN_PHYSADDR = 8 +const MAX_INTERFACE_NAME_LEN = 256 +const MAXLEN_IFDESCR = 256 + +type MibIfRow struct { + Name [MAX_INTERFACE_NAME_LEN]uint16 + Index uint32 + Type uint32 + Mtu uint32 + Speed uint32 + PhysAddrLen uint32 + PhysAddr [MAXLEN_PHYSADDR]byte + AdminStatus uint32 + OperStatus uint32 + LastChange uint32 + InOctets uint32 + InUcastPkts uint32 + InNUcastPkts uint32 + InDiscards uint32 + InErrors uint32 + InUnknownProtos uint32 + OutOctets uint32 + OutUcastPkts uint32 + OutNUcastPkts uint32 + OutDiscards uint32 + OutErrors uint32 + OutQLen uint32 + DescrLen uint32 + Descr [MAXLEN_IFDESCR]byte +} + +type CertInfo struct { + Version uint32 + SerialNumber CryptIntegerBlob + SignatureAlgorithm CryptAlgorithmIdentifier + Issuer CertNameBlob + NotBefore Filetime + NotAfter Filetime + Subject CertNameBlob + SubjectPublicKeyInfo CertPublicKeyInfo + IssuerUniqueId CryptBitBlob + SubjectUniqueId CryptBitBlob + CountExtensions uint32 + Extensions *CertExtension +} + +type CertExtension struct { + ObjId *byte + Critical int32 + Value CryptObjidBlob +} + +type CryptAlgorithmIdentifier struct { + ObjId *byte + Parameters CryptObjidBlob +} + +type CertPublicKeyInfo struct { + Algorithm CryptAlgorithmIdentifier + PublicKey CryptBitBlob +} + +type DataBlob struct { + Size uint32 + Data *byte +} +type CryptIntegerBlob DataBlob +type CryptUintBlob DataBlob +type CryptObjidBlob DataBlob +type CertNameBlob DataBlob +type CertRdnValueBlob DataBlob +type CertBlob DataBlob +type CrlBlob DataBlob +type CryptDataBlob DataBlob +type CryptHashBlob DataBlob +type CryptDigestBlob DataBlob +type CryptDerBlob DataBlob +type CryptAttrBlob DataBlob + +type CryptBitBlob struct { + Size uint32 + Data *byte + UnusedBits uint32 +} + +type CertContext struct { + EncodingType uint32 + EncodedCert *byte + Length uint32 + CertInfo *CertInfo + Store Handle +} + +type CertChainContext struct { + Size uint32 + TrustStatus CertTrustStatus + ChainCount uint32 + Chains **CertSimpleChain + LowerQualityChainCount uint32 + LowerQualityChains **CertChainContext + HasRevocationFreshnessTime uint32 + RevocationFreshnessTime uint32 +} + +type CertTrustListInfo struct { + // Not implemented +} + +type CertSimpleChain struct { + Size uint32 + TrustStatus CertTrustStatus + NumElements uint32 + Elements **CertChainElement + TrustListInfo *CertTrustListInfo + HasRevocationFreshnessTime uint32 + RevocationFreshnessTime uint32 +} + +type CertChainElement struct { + Size uint32 + CertContext *CertContext + TrustStatus CertTrustStatus + RevocationInfo *CertRevocationInfo + IssuanceUsage *CertEnhKeyUsage + ApplicationUsage *CertEnhKeyUsage + ExtendedErrorInfo *uint16 +} + +type CertRevocationCrlInfo struct { + // Not implemented +} + +type CertRevocationInfo struct { + Size uint32 + RevocationResult uint32 + RevocationOid *byte + OidSpecificInfo Pointer + HasFreshnessTime uint32 + FreshnessTime uint32 + CrlInfo *CertRevocationCrlInfo +} + +type CertTrustStatus struct { + ErrorStatus uint32 + InfoStatus uint32 +} + +type CertUsageMatch struct { + Type uint32 + Usage CertEnhKeyUsage +} + +type CertEnhKeyUsage struct { + Length uint32 + UsageIdentifiers **byte +} + +type CertChainPara struct { + Size uint32 + RequestedUsage CertUsageMatch + RequstedIssuancePolicy CertUsageMatch + URLRetrievalTimeout uint32 + CheckRevocationFreshnessTime uint32 + RevocationFreshnessTime uint32 + CacheResync *Filetime +} + +type CertChainPolicyPara struct { + Size uint32 + Flags uint32 + ExtraPolicyPara Pointer +} + +type SSLExtraCertChainPolicyPara struct { + Size uint32 + AuthType uint32 + Checks uint32 + ServerName *uint16 +} + +type CertChainPolicyStatus struct { + Size uint32 + Error uint32 + ChainIndex uint32 + ElementIndex uint32 + ExtraPolicyStatus Pointer +} + +type CertPolicyInfo struct { + Identifier *byte + CountQualifiers uint32 + Qualifiers *CertPolicyQualifierInfo +} + +type CertPoliciesInfo struct { + Count uint32 + PolicyInfos *CertPolicyInfo +} + +type CertPolicyQualifierInfo struct { + // Not implemented +} + +type CertStrongSignPara struct { + Size uint32 + InfoChoice uint32 + InfoOrSerializedInfoOrOID unsafe.Pointer +} + +type CryptProtectPromptStruct struct { + Size uint32 + PromptFlags uint32 + App HWND + Prompt *uint16 +} + +type CertChainFindByIssuerPara struct { + Size uint32 + UsageIdentifier *byte + KeySpec uint32 + AcquirePrivateKeyFlags uint32 + IssuerCount uint32 + Issuer Pointer + FindCallback Pointer + FindArg Pointer + IssuerChainIndex *uint32 + IssuerElementIndex *uint32 +} + +type WinTrustData struct { + Size uint32 + PolicyCallbackData uintptr + SIPClientData uintptr + UIChoice uint32 + RevocationChecks uint32 + UnionChoice uint32 + FileOrCatalogOrBlobOrSgnrOrCert unsafe.Pointer + StateAction uint32 + StateData Handle + URLReference *uint16 + ProvFlags uint32 + UIContext uint32 + SignatureSettings *WinTrustSignatureSettings +} + +type WinTrustFileInfo struct { + Size uint32 + FilePath *uint16 + File Handle + KnownSubject *GUID +} + +type WinTrustSignatureSettings struct { + Size uint32 + Index uint32 + Flags uint32 + SecondarySigs uint32 + VerifiedSigIndex uint32 + CryptoPolicy *CertStrongSignPara +} + +const ( + // do not reorder + HKEY_CLASSES_ROOT = 0x80000000 + iota + HKEY_CURRENT_USER + HKEY_LOCAL_MACHINE + HKEY_USERS + HKEY_PERFORMANCE_DATA + HKEY_CURRENT_CONFIG + HKEY_DYN_DATA + + KEY_QUERY_VALUE = 1 + KEY_SET_VALUE = 2 + KEY_CREATE_SUB_KEY = 4 + KEY_ENUMERATE_SUB_KEYS = 8 + KEY_NOTIFY = 16 + KEY_CREATE_LINK = 32 + KEY_WRITE = 0x20006 + KEY_EXECUTE = 0x20019 + KEY_READ = 0x20019 + KEY_WOW64_64KEY = 0x0100 + KEY_WOW64_32KEY = 0x0200 + KEY_ALL_ACCESS = 0xf003f +) + +const ( + // do not reorder + REG_NONE = iota + REG_SZ + REG_EXPAND_SZ + REG_BINARY + REG_DWORD_LITTLE_ENDIAN + REG_DWORD_BIG_ENDIAN + REG_LINK + REG_MULTI_SZ + REG_RESOURCE_LIST + REG_FULL_RESOURCE_DESCRIPTOR + REG_RESOURCE_REQUIREMENTS_LIST + REG_QWORD_LITTLE_ENDIAN + REG_DWORD = REG_DWORD_LITTLE_ENDIAN + REG_QWORD = REG_QWORD_LITTLE_ENDIAN +) + +const ( + EVENT_MODIFY_STATE = 0x0002 + EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3 + + MUTANT_QUERY_STATE = 0x0001 + MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE + + SEMAPHORE_MODIFY_STATE = 0x0002 + SEMAPHORE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3 + + TIMER_QUERY_STATE = 0x0001 + TIMER_MODIFY_STATE = 0x0002 + TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUERY_STATE | TIMER_MODIFY_STATE + + MUTEX_MODIFY_STATE = MUTANT_QUERY_STATE + MUTEX_ALL_ACCESS = MUTANT_ALL_ACCESS + + CREATE_EVENT_MANUAL_RESET = 0x1 + CREATE_EVENT_INITIAL_SET = 0x2 + CREATE_MUTEX_INITIAL_OWNER = 0x1 +) + +type AddrinfoW struct { + Flags int32 + Family int32 + Socktype int32 + Protocol int32 + Addrlen uintptr + Canonname *uint16 + Addr uintptr + Next *AddrinfoW +} + +const ( + AI_PASSIVE = 1 + AI_CANONNAME = 2 + AI_NUMERICHOST = 4 +) + +type GUID struct { + Data1 uint32 + Data2 uint16 + Data3 uint16 + Data4 [8]byte +} + +var WSAID_CONNECTEX = GUID{ + 0x25a207b9, + 0xddf3, + 0x4660, + [8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}, +} + +var WSAID_WSASENDMSG = GUID{ + 0xa441e712, + 0x754f, + 0x43ca, + [8]byte{0x84, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d}, +} + +var WSAID_WSARECVMSG = GUID{ + 0xf689d7c8, + 0x6f1f, + 0x436b, + [8]byte{0x8a, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22}, +} + +const ( + FILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1 + FILE_SKIP_SET_EVENT_ON_HANDLE = 2 +) + +const ( + WSAPROTOCOL_LEN = 255 + MAX_PROTOCOL_CHAIN = 7 + BASE_PROTOCOL = 1 + LAYERED_PROTOCOL = 0 + + XP1_CONNECTIONLESS = 0x00000001 + XP1_GUARANTEED_DELIVERY = 0x00000002 + XP1_GUARANTEED_ORDER = 0x00000004 + XP1_MESSAGE_ORIENTED = 0x00000008 + XP1_PSEUDO_STREAM = 0x00000010 + XP1_GRACEFUL_CLOSE = 0x00000020 + XP1_EXPEDITED_DATA = 0x00000040 + XP1_CONNECT_DATA = 0x00000080 + XP1_DISCONNECT_DATA = 0x00000100 + XP1_SUPPORT_BROADCAST = 0x00000200 + XP1_SUPPORT_MULTIPOINT = 0x00000400 + XP1_MULTIPOINT_CONTROL_PLANE = 0x00000800 + XP1_MULTIPOINT_DATA_PLANE = 0x00001000 + XP1_QOS_SUPPORTED = 0x00002000 + XP1_UNI_SEND = 0x00008000 + XP1_UNI_RECV = 0x00010000 + XP1_IFS_HANDLES = 0x00020000 + XP1_PARTIAL_MESSAGE = 0x00040000 + XP1_SAN_SUPPORT_SDP = 0x00080000 + + PFL_MULTIPLE_PROTO_ENTRIES = 0x00000001 + PFL_RECOMMENDED_PROTO_ENTRY = 0x00000002 + PFL_HIDDEN = 0x00000004 + PFL_MATCHES_PROTOCOL_ZERO = 0x00000008 + PFL_NETWORKDIRECT_PROVIDER = 0x00000010 +) + +type WSAProtocolInfo struct { + ServiceFlags1 uint32 + ServiceFlags2 uint32 + ServiceFlags3 uint32 + ServiceFlags4 uint32 + ProviderFlags uint32 + ProviderId GUID + CatalogEntryId uint32 + ProtocolChain WSAProtocolChain + Version int32 + AddressFamily int32 + MaxSockAddr int32 + MinSockAddr int32 + SocketType int32 + Protocol int32 + ProtocolMaxOffset int32 + NetworkByteOrder int32 + SecurityScheme int32 + MessageSize uint32 + ProviderReserved uint32 + ProtocolName [WSAPROTOCOL_LEN + 1]uint16 +} + +type WSAProtocolChain struct { + ChainLen int32 + ChainEntries [MAX_PROTOCOL_CHAIN]uint32 +} + +type TCPKeepalive struct { + OnOff uint32 + Time uint32 + Interval uint32 +} + +type symbolicLinkReparseBuffer struct { + SubstituteNameOffset uint16 + SubstituteNameLength uint16 + PrintNameOffset uint16 + PrintNameLength uint16 + Flags uint32 + PathBuffer [1]uint16 +} + +type mountPointReparseBuffer struct { + SubstituteNameOffset uint16 + SubstituteNameLength uint16 + PrintNameOffset uint16 + PrintNameLength uint16 + PathBuffer [1]uint16 +} + +type reparseDataBuffer struct { + ReparseTag uint32 + ReparseDataLength uint16 + Reserved uint16 + + // GenericReparseBuffer + reparseBuffer byte +} + +const ( + FSCTL_CREATE_OR_GET_OBJECT_ID = 0x0900C0 + FSCTL_DELETE_OBJECT_ID = 0x0900A0 + FSCTL_DELETE_REPARSE_POINT = 0x0900AC + FSCTL_DUPLICATE_EXTENTS_TO_FILE = 0x098344 + FSCTL_DUPLICATE_EXTENTS_TO_FILE_EX = 0x0983E8 + FSCTL_FILESYSTEM_GET_STATISTICS = 0x090060 + FSCTL_FILE_LEVEL_TRIM = 0x098208 + FSCTL_FIND_FILES_BY_SID = 0x09008F + FSCTL_GET_COMPRESSION = 0x09003C + FSCTL_GET_INTEGRITY_INFORMATION = 0x09027C + FSCTL_GET_NTFS_VOLUME_DATA = 0x090064 + FSCTL_GET_REFS_VOLUME_DATA = 0x0902D8 + FSCTL_GET_OBJECT_ID = 0x09009C + FSCTL_GET_REPARSE_POINT = 0x0900A8 + FSCTL_GET_RETRIEVAL_POINTER_COUNT = 0x09042B + FSCTL_GET_RETRIEVAL_POINTERS = 0x090073 + FSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT = 0x0903D3 + FSCTL_IS_PATHNAME_VALID = 0x09002C + FSCTL_LMR_SET_LINK_TRACKING_INFORMATION = 0x1400EC + FSCTL_MARK_HANDLE = 0x0900FC + FSCTL_OFFLOAD_READ = 0x094264 + FSCTL_OFFLOAD_WRITE = 0x098268 + FSCTL_PIPE_PEEK = 0x11400C + FSCTL_PIPE_TRANSCEIVE = 0x11C017 + FSCTL_PIPE_WAIT = 0x110018 + FSCTL_QUERY_ALLOCATED_RANGES = 0x0940CF + FSCTL_QUERY_FAT_BPB = 0x090058 + FSCTL_QUERY_FILE_REGIONS = 0x090284 + FSCTL_QUERY_ON_DISK_VOLUME_INFO = 0x09013C + FSCTL_QUERY_SPARING_INFO = 0x090138 + FSCTL_READ_FILE_USN_DATA = 0x0900EB + FSCTL_RECALL_FILE = 0x090117 + FSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT = 0x090440 + FSCTL_SET_COMPRESSION = 0x09C040 + FSCTL_SET_DEFECT_MANAGEMENT = 0x098134 + FSCTL_SET_ENCRYPTION = 0x0900D7 + FSCTL_SET_INTEGRITY_INFORMATION = 0x09C280 + FSCTL_SET_INTEGRITY_INFORMATION_EX = 0x090380 + FSCTL_SET_OBJECT_ID = 0x090098 + FSCTL_SET_OBJECT_ID_EXTENDED = 0x0900BC + FSCTL_SET_REPARSE_POINT = 0x0900A4 + FSCTL_SET_SPARSE = 0x0900C4 + FSCTL_SET_ZERO_DATA = 0x0980C8 + FSCTL_SET_ZERO_ON_DEALLOCATION = 0x090194 + FSCTL_SIS_COPYFILE = 0x090100 + FSCTL_WRITE_USN_CLOSE_RECORD = 0x0900EF + + MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024 + IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003 + IO_REPARSE_TAG_SYMLINK = 0xA000000C + SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1 +) + +const ( + ComputerNameNetBIOS = 0 + ComputerNameDnsHostname = 1 + ComputerNameDnsDomain = 2 + ComputerNameDnsFullyQualified = 3 + ComputerNamePhysicalNetBIOS = 4 + ComputerNamePhysicalDnsHostname = 5 + ComputerNamePhysicalDnsDomain = 6 + ComputerNamePhysicalDnsFullyQualified = 7 + ComputerNameMax = 8 +) + +// For MessageBox() +const ( + MB_OK = 0x00000000 + MB_OKCANCEL = 0x00000001 + MB_ABORTRETRYIGNORE = 0x00000002 + MB_YESNOCANCEL = 0x00000003 + MB_YESNO = 0x00000004 + MB_RETRYCANCEL = 0x00000005 + MB_CANCELTRYCONTINUE = 0x00000006 + MB_ICONHAND = 0x00000010 + MB_ICONQUESTION = 0x00000020 + MB_ICONEXCLAMATION = 0x00000030 + MB_ICONASTERISK = 0x00000040 + MB_USERICON = 0x00000080 + MB_ICONWARNING = MB_ICONEXCLAMATION + MB_ICONERROR = MB_ICONHAND + MB_ICONINFORMATION = MB_ICONASTERISK + MB_ICONSTOP = MB_ICONHAND + MB_DEFBUTTON1 = 0x00000000 + MB_DEFBUTTON2 = 0x00000100 + MB_DEFBUTTON3 = 0x00000200 + MB_DEFBUTTON4 = 0x00000300 + MB_APPLMODAL = 0x00000000 + MB_SYSTEMMODAL = 0x00001000 + MB_TASKMODAL = 0x00002000 + MB_HELP = 0x00004000 + MB_NOFOCUS = 0x00008000 + MB_SETFOREGROUND = 0x00010000 + MB_DEFAULT_DESKTOP_ONLY = 0x00020000 + MB_TOPMOST = 0x00040000 + MB_RIGHT = 0x00080000 + MB_RTLREADING = 0x00100000 + MB_SERVICE_NOTIFICATION = 0x00200000 +) + +const ( + MOVEFILE_REPLACE_EXISTING = 0x1 + MOVEFILE_COPY_ALLOWED = 0x2 + MOVEFILE_DELAY_UNTIL_REBOOT = 0x4 + MOVEFILE_WRITE_THROUGH = 0x8 + MOVEFILE_CREATE_HARDLINK = 0x10 + MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20 +) + +const GAA_FLAG_INCLUDE_PREFIX = 0x00000010 + +const ( + IF_TYPE_OTHER = 1 + IF_TYPE_ETHERNET_CSMACD = 6 + IF_TYPE_ISO88025_TOKENRING = 9 + IF_TYPE_PPP = 23 + IF_TYPE_SOFTWARE_LOOPBACK = 24 + IF_TYPE_ATM = 37 + IF_TYPE_IEEE80211 = 71 + IF_TYPE_TUNNEL = 131 + IF_TYPE_IEEE1394 = 144 +) + +type SocketAddress struct { + Sockaddr *syscall.RawSockaddrAny + SockaddrLength int32 +} + +// IP returns an IPv4 or IPv6 address, or nil if the underlying SocketAddress is neither. +func (addr *SocketAddress) IP() net.IP { + if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet4{}) && addr.Sockaddr.Addr.Family == AF_INET { + return (*RawSockaddrInet4)(unsafe.Pointer(addr.Sockaddr)).Addr[:] + } else if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet6{}) && addr.Sockaddr.Addr.Family == AF_INET6 { + return (*RawSockaddrInet6)(unsafe.Pointer(addr.Sockaddr)).Addr[:] + } + return nil +} + +type IpAdapterUnicastAddress struct { + Length uint32 + Flags uint32 + Next *IpAdapterUnicastAddress + Address SocketAddress + PrefixOrigin int32 + SuffixOrigin int32 + DadState int32 + ValidLifetime uint32 + PreferredLifetime uint32 + LeaseLifetime uint32 + OnLinkPrefixLength uint8 +} + +type IpAdapterAnycastAddress struct { + Length uint32 + Flags uint32 + Next *IpAdapterAnycastAddress + Address SocketAddress +} + +type IpAdapterMulticastAddress struct { + Length uint32 + Flags uint32 + Next *IpAdapterMulticastAddress + Address SocketAddress +} + +type IpAdapterDnsServerAdapter struct { + Length uint32 + Reserved uint32 + Next *IpAdapterDnsServerAdapter + Address SocketAddress +} + +type IpAdapterPrefix struct { + Length uint32 + Flags uint32 + Next *IpAdapterPrefix + Address SocketAddress + PrefixLength uint32 +} + +type IpAdapterAddresses struct { + Length uint32 + IfIndex uint32 + Next *IpAdapterAddresses + AdapterName *byte + FirstUnicastAddress *IpAdapterUnicastAddress + FirstAnycastAddress *IpAdapterAnycastAddress + FirstMulticastAddress *IpAdapterMulticastAddress + FirstDnsServerAddress *IpAdapterDnsServerAdapter + DnsSuffix *uint16 + Description *uint16 + FriendlyName *uint16 + PhysicalAddress [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte + PhysicalAddressLength uint32 + Flags uint32 + Mtu uint32 + IfType uint32 + OperStatus uint32 + Ipv6IfIndex uint32 + ZoneIndices [16]uint32 + FirstPrefix *IpAdapterPrefix + TransmitLinkSpeed uint64 + ReceiveLinkSpeed uint64 + FirstWinsServerAddress *IpAdapterWinsServerAddress + FirstGatewayAddress *IpAdapterGatewayAddress + Ipv4Metric uint32 + Ipv6Metric uint32 + Luid uint64 + Dhcpv4Server SocketAddress + CompartmentId uint32 + NetworkGuid GUID + ConnectionType uint32 + TunnelType uint32 + Dhcpv6Server SocketAddress + Dhcpv6ClientDuid [MAX_DHCPV6_DUID_LENGTH]byte + Dhcpv6ClientDuidLength uint32 + Dhcpv6Iaid uint32 + FirstDnsSuffix *IpAdapterDNSSuffix +} + +type IpAdapterWinsServerAddress struct { + Length uint32 + Reserved uint32 + Next *IpAdapterWinsServerAddress + Address SocketAddress +} + +type IpAdapterGatewayAddress struct { + Length uint32 + Reserved uint32 + Next *IpAdapterGatewayAddress + Address SocketAddress +} + +type IpAdapterDNSSuffix struct { + Next *IpAdapterDNSSuffix + String [MAX_DNS_SUFFIX_STRING_LENGTH]uint16 +} + +const ( + IfOperStatusUp = 1 + IfOperStatusDown = 2 + IfOperStatusTesting = 3 + IfOperStatusUnknown = 4 + IfOperStatusDormant = 5 + IfOperStatusNotPresent = 6 + IfOperStatusLowerLayerDown = 7 +) + +// Console related constants used for the mode parameter to SetConsoleMode. See +// https://docs.microsoft.com/en-us/windows/console/setconsolemode for details. + +const ( + ENABLE_PROCESSED_INPUT = 0x1 + ENABLE_LINE_INPUT = 0x2 + ENABLE_ECHO_INPUT = 0x4 + ENABLE_WINDOW_INPUT = 0x8 + ENABLE_MOUSE_INPUT = 0x10 + ENABLE_INSERT_MODE = 0x20 + ENABLE_QUICK_EDIT_MODE = 0x40 + ENABLE_EXTENDED_FLAGS = 0x80 + ENABLE_AUTO_POSITION = 0x100 + ENABLE_VIRTUAL_TERMINAL_INPUT = 0x200 + + ENABLE_PROCESSED_OUTPUT = 0x1 + ENABLE_WRAP_AT_EOL_OUTPUT = 0x2 + ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4 + DISABLE_NEWLINE_AUTO_RETURN = 0x8 + ENABLE_LVB_GRID_WORLDWIDE = 0x10 +) + +type Coord struct { + X int16 + Y int16 +} + +type SmallRect struct { + Left int16 + Top int16 + Right int16 + Bottom int16 +} + +// Used with GetConsoleScreenBuffer to retrieve information about a console +// screen buffer. See +// https://docs.microsoft.com/en-us/windows/console/console-screen-buffer-info-str +// for details. + +type ConsoleScreenBufferInfo struct { + Size Coord + CursorPosition Coord + Attributes uint16 + Window SmallRect + MaximumWindowSize Coord +} + +const UNIX_PATH_MAX = 108 // defined in afunix.h + +const ( + // flags for JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags + JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x00000008 + JOB_OBJECT_LIMIT_AFFINITY = 0x00000010 + JOB_OBJECT_LIMIT_BREAKAWAY_OK = 0x00000800 + JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400 + JOB_OBJECT_LIMIT_JOB_MEMORY = 0x00000200 + JOB_OBJECT_LIMIT_JOB_TIME = 0x00000004 + JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 0x00002000 + JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x00000040 + JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x00000020 + JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x00000100 + JOB_OBJECT_LIMIT_PROCESS_TIME = 0x00000002 + JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x00000080 + JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 0x00001000 + JOB_OBJECT_LIMIT_SUBSET_AFFINITY = 0x00004000 + JOB_OBJECT_LIMIT_WORKINGSET = 0x00000001 +) + +type IO_COUNTERS struct { + ReadOperationCount uint64 + WriteOperationCount uint64 + OtherOperationCount uint64 + ReadTransferCount uint64 + WriteTransferCount uint64 + OtherTransferCount uint64 +} + +type JOBOBJECT_EXTENDED_LIMIT_INFORMATION struct { + BasicLimitInformation JOBOBJECT_BASIC_LIMIT_INFORMATION + IoInfo IO_COUNTERS + ProcessMemoryLimit uintptr + JobMemoryLimit uintptr + PeakProcessMemoryUsed uintptr + PeakJobMemoryUsed uintptr +} + +const ( + // UIRestrictionsClass + JOB_OBJECT_UILIMIT_DESKTOP = 0x00000040 + JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x00000010 + JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x00000080 + JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x00000020 + JOB_OBJECT_UILIMIT_HANDLES = 0x00000001 + JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x00000002 + JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008 + JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x00000004 +) + +type JOBOBJECT_BASIC_UI_RESTRICTIONS struct { + UIRestrictionsClass uint32 +} + +const ( + // JobObjectInformationClass for QueryInformationJobObject and SetInformationJobObject + JobObjectAssociateCompletionPortInformation = 7 + JobObjectBasicAccountingInformation = 1 + JobObjectBasicAndIoAccountingInformation = 8 + JobObjectBasicLimitInformation = 2 + JobObjectBasicProcessIdList = 3 + JobObjectBasicUIRestrictions = 4 + JobObjectCpuRateControlInformation = 15 + JobObjectEndOfJobTimeInformation = 6 + JobObjectExtendedLimitInformation = 9 + JobObjectGroupInformation = 11 + JobObjectGroupInformationEx = 14 + JobObjectLimitViolationInformation = 13 + JobObjectLimitViolationInformation2 = 34 + JobObjectNetRateControlInformation = 32 + JobObjectNotificationLimitInformation = 12 + JobObjectNotificationLimitInformation2 = 33 + JobObjectSecurityLimitInformation = 5 +) + +const ( + KF_FLAG_DEFAULT = 0x00000000 + KF_FLAG_FORCE_APP_DATA_REDIRECTION = 0x00080000 + KF_FLAG_RETURN_FILTER_REDIRECTION_TARGET = 0x00040000 + KF_FLAG_FORCE_PACKAGE_REDIRECTION = 0x00020000 + KF_FLAG_NO_PACKAGE_REDIRECTION = 0x00010000 + KF_FLAG_FORCE_APPCONTAINER_REDIRECTION = 0x00020000 + KF_FLAG_NO_APPCONTAINER_REDIRECTION = 0x00010000 + KF_FLAG_CREATE = 0x00008000 + KF_FLAG_DONT_VERIFY = 0x00004000 + KF_FLAG_DONT_UNEXPAND = 0x00002000 + KF_FLAG_NO_ALIAS = 0x00001000 + KF_FLAG_INIT = 0x00000800 + KF_FLAG_DEFAULT_PATH = 0x00000400 + KF_FLAG_NOT_PARENT_RELATIVE = 0x00000200 + KF_FLAG_SIMPLE_IDLIST = 0x00000100 + KF_FLAG_ALIAS_ONLY = 0x80000000 +) + +type OsVersionInfoEx struct { + osVersionInfoSize uint32 + MajorVersion uint32 + MinorVersion uint32 + BuildNumber uint32 + PlatformId uint32 + CsdVersion [128]uint16 + ServicePackMajor uint16 + ServicePackMinor uint16 + SuiteMask uint16 + ProductType byte + _ byte +} + +const ( + EWX_LOGOFF = 0x00000000 + EWX_SHUTDOWN = 0x00000001 + EWX_REBOOT = 0x00000002 + EWX_FORCE = 0x00000004 + EWX_POWEROFF = 0x00000008 + EWX_FORCEIFHUNG = 0x00000010 + EWX_QUICKRESOLVE = 0x00000020 + EWX_RESTARTAPPS = 0x00000040 + EWX_HYBRID_SHUTDOWN = 0x00400000 + EWX_BOOTOPTIONS = 0x01000000 + + SHTDN_REASON_FLAG_COMMENT_REQUIRED = 0x01000000 + SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED = 0x02000000 + SHTDN_REASON_FLAG_CLEAN_UI = 0x04000000 + SHTDN_REASON_FLAG_DIRTY_UI = 0x08000000 + SHTDN_REASON_FLAG_USER_DEFINED = 0x40000000 + SHTDN_REASON_FLAG_PLANNED = 0x80000000 + SHTDN_REASON_MAJOR_OTHER = 0x00000000 + SHTDN_REASON_MAJOR_NONE = 0x00000000 + SHTDN_REASON_MAJOR_HARDWARE = 0x00010000 + SHTDN_REASON_MAJOR_OPERATINGSYSTEM = 0x00020000 + SHTDN_REASON_MAJOR_SOFTWARE = 0x00030000 + SHTDN_REASON_MAJOR_APPLICATION = 0x00040000 + SHTDN_REASON_MAJOR_SYSTEM = 0x00050000 + SHTDN_REASON_MAJOR_POWER = 0x00060000 + SHTDN_REASON_MAJOR_LEGACY_API = 0x00070000 + SHTDN_REASON_MINOR_OTHER = 0x00000000 + SHTDN_REASON_MINOR_NONE = 0x000000ff + SHTDN_REASON_MINOR_MAINTENANCE = 0x00000001 + SHTDN_REASON_MINOR_INSTALLATION = 0x00000002 + SHTDN_REASON_MINOR_UPGRADE = 0x00000003 + SHTDN_REASON_MINOR_RECONFIG = 0x00000004 + SHTDN_REASON_MINOR_HUNG = 0x00000005 + SHTDN_REASON_MINOR_UNSTABLE = 0x00000006 + SHTDN_REASON_MINOR_DISK = 0x00000007 + SHTDN_REASON_MINOR_PROCESSOR = 0x00000008 + SHTDN_REASON_MINOR_NETWORKCARD = 0x00000009 + SHTDN_REASON_MINOR_POWER_SUPPLY = 0x0000000a + SHTDN_REASON_MINOR_CORDUNPLUGGED = 0x0000000b + SHTDN_REASON_MINOR_ENVIRONMENT = 0x0000000c + SHTDN_REASON_MINOR_HARDWARE_DRIVER = 0x0000000d + SHTDN_REASON_MINOR_OTHERDRIVER = 0x0000000e + SHTDN_REASON_MINOR_BLUESCREEN = 0x0000000F + SHTDN_REASON_MINOR_SERVICEPACK = 0x00000010 + SHTDN_REASON_MINOR_HOTFIX = 0x00000011 + SHTDN_REASON_MINOR_SECURITYFIX = 0x00000012 + SHTDN_REASON_MINOR_SECURITY = 0x00000013 + SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY = 0x00000014 + SHTDN_REASON_MINOR_WMI = 0x00000015 + SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL = 0x00000016 + SHTDN_REASON_MINOR_HOTFIX_UNINSTALL = 0x00000017 + SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL = 0x00000018 + SHTDN_REASON_MINOR_MMC = 0x00000019 + SHTDN_REASON_MINOR_SYSTEMRESTORE = 0x0000001a + SHTDN_REASON_MINOR_TERMSRV = 0x00000020 + SHTDN_REASON_MINOR_DC_PROMOTION = 0x00000021 + SHTDN_REASON_MINOR_DC_DEMOTION = 0x00000022 + SHTDN_REASON_UNKNOWN = SHTDN_REASON_MINOR_NONE + SHTDN_REASON_LEGACY_API = SHTDN_REASON_MAJOR_LEGACY_API | SHTDN_REASON_FLAG_PLANNED + SHTDN_REASON_VALID_BIT_MASK = 0xc0ffffff + + SHUTDOWN_NORETRY = 0x1 +) + +// Flags used for GetModuleHandleEx +const ( + GET_MODULE_HANDLE_EX_FLAG_PIN = 1 + GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2 + GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4 +) + +// MUI function flag values +const ( + MUI_LANGUAGE_ID = 0x4 + MUI_LANGUAGE_NAME = 0x8 + MUI_MERGE_SYSTEM_FALLBACK = 0x10 + MUI_MERGE_USER_FALLBACK = 0x20 + MUI_UI_FALLBACK = MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK + MUI_THREAD_LANGUAGES = 0x40 + MUI_CONSOLE_FILTER = 0x100 + MUI_COMPLEX_SCRIPT_FILTER = 0x200 + MUI_RESET_FILTERS = 0x001 + MUI_USER_PREFERRED_UI_LANGUAGES = 0x10 + MUI_USE_INSTALLED_LANGUAGES = 0x20 + MUI_USE_SEARCH_ALL_LANGUAGES = 0x40 + MUI_LANG_NEUTRAL_PE_FILE = 0x100 + MUI_NON_LANG_NEUTRAL_FILE = 0x200 + MUI_MACHINE_LANGUAGE_SETTINGS = 0x400 + MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL = 0x001 + MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN = 0x002 + MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI = 0x004 + MUI_QUERY_TYPE = 0x001 + MUI_QUERY_CHECKSUM = 0x002 + MUI_QUERY_LANGUAGE_NAME = 0x004 + MUI_QUERY_RESOURCE_TYPES = 0x008 + MUI_FILEINFO_VERSION = 0x001 + + MUI_FULL_LANGUAGE = 0x01 + MUI_PARTIAL_LANGUAGE = 0x02 + MUI_LIP_LANGUAGE = 0x04 + MUI_LANGUAGE_INSTALLED = 0x20 + MUI_LANGUAGE_LICENSED = 0x40 +) + +// FILE_INFO_BY_HANDLE_CLASS constants for SetFileInformationByHandle/GetFileInformationByHandleEx +const ( + FileBasicInfo = 0 + FileStandardInfo = 1 + FileNameInfo = 2 + FileRenameInfo = 3 + FileDispositionInfo = 4 + FileAllocationInfo = 5 + FileEndOfFileInfo = 6 + FileStreamInfo = 7 + FileCompressionInfo = 8 + FileAttributeTagInfo = 9 + FileIdBothDirectoryInfo = 10 + FileIdBothDirectoryRestartInfo = 11 + FileIoPriorityHintInfo = 12 + FileRemoteProtocolInfo = 13 + FileFullDirectoryInfo = 14 + FileFullDirectoryRestartInfo = 15 + FileStorageInfo = 16 + FileAlignmentInfo = 17 + FileIdInfo = 18 + FileIdExtdDirectoryInfo = 19 + FileIdExtdDirectoryRestartInfo = 20 + FileDispositionInfoEx = 21 + FileRenameInfoEx = 22 + FileCaseSensitiveInfo = 23 + FileNormalizedNameInfo = 24 +) + +// LoadLibrary flags for determining from where to search for a DLL +const ( + DONT_RESOLVE_DLL_REFERENCES = 0x1 + LOAD_LIBRARY_AS_DATAFILE = 0x2 + LOAD_WITH_ALTERED_SEARCH_PATH = 0x8 + LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x10 + LOAD_LIBRARY_AS_IMAGE_RESOURCE = 0x20 + LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE = 0x40 + LOAD_LIBRARY_REQUIRE_SIGNED_TARGET = 0x80 + LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR = 0x100 + LOAD_LIBRARY_SEARCH_APPLICATION_DIR = 0x200 + LOAD_LIBRARY_SEARCH_USER_DIRS = 0x400 + LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x800 + LOAD_LIBRARY_SEARCH_DEFAULT_DIRS = 0x1000 + LOAD_LIBRARY_SAFE_CURRENT_DIRS = 0x00002000 + LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER = 0x00004000 + LOAD_LIBRARY_OS_INTEGRITY_CONTINUITY = 0x00008000 +) + +// RegNotifyChangeKeyValue notifyFilter flags. +const ( + // REG_NOTIFY_CHANGE_NAME notifies the caller if a subkey is added or deleted. + REG_NOTIFY_CHANGE_NAME = 0x00000001 + + // REG_NOTIFY_CHANGE_ATTRIBUTES notifies the caller of changes to the attributes of the key, such as the security descriptor information. + REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002 + + // REG_NOTIFY_CHANGE_LAST_SET notifies the caller of changes to a value of the key. This can include adding or deleting a value, or changing an existing value. + REG_NOTIFY_CHANGE_LAST_SET = 0x00000004 + + // REG_NOTIFY_CHANGE_SECURITY notifies the caller of changes to the security descriptor of the key. + REG_NOTIFY_CHANGE_SECURITY = 0x00000008 + + // REG_NOTIFY_THREAD_AGNOSTIC indicates that the lifetime of the registration must not be tied to the lifetime of the thread issuing the RegNotifyChangeKeyValue call. Note: This flag value is only supported in Windows 8 and later. + REG_NOTIFY_THREAD_AGNOSTIC = 0x10000000 +) + +type CommTimeouts struct { + ReadIntervalTimeout uint32 + ReadTotalTimeoutMultiplier uint32 + ReadTotalTimeoutConstant uint32 + WriteTotalTimeoutMultiplier uint32 + WriteTotalTimeoutConstant uint32 +} + +// NTUnicodeString is a UTF-16 string for NT native APIs, corresponding to UNICODE_STRING. +type NTUnicodeString struct { + Length uint16 + MaximumLength uint16 + Buffer *uint16 +} + +// NTString is an ANSI string for NT native APIs, corresponding to STRING. +type NTString struct { + Length uint16 + MaximumLength uint16 + Buffer *byte +} + +type LIST_ENTRY struct { + Flink *LIST_ENTRY + Blink *LIST_ENTRY +} + +type RUNTIME_FUNCTION struct { + BeginAddress uint32 + EndAddress uint32 + UnwindData uint32 +} + +type LDR_DATA_TABLE_ENTRY struct { + reserved1 [2]uintptr + InMemoryOrderLinks LIST_ENTRY + reserved2 [2]uintptr + DllBase uintptr + reserved3 [2]uintptr + FullDllName NTUnicodeString + reserved4 [8]byte + reserved5 [3]uintptr + reserved6 uintptr + TimeDateStamp uint32 +} + +type PEB_LDR_DATA struct { + reserved1 [8]byte + reserved2 [3]uintptr + InMemoryOrderModuleList LIST_ENTRY +} + +type CURDIR struct { + DosPath NTUnicodeString + Handle Handle +} + +type RTL_DRIVE_LETTER_CURDIR struct { + Flags uint16 + Length uint16 + TimeStamp uint32 + DosPath NTString +} + +type RTL_USER_PROCESS_PARAMETERS struct { + MaximumLength, Length uint32 + + Flags, DebugFlags uint32 + + ConsoleHandle Handle + ConsoleFlags uint32 + StandardInput, StandardOutput, StandardError Handle + + CurrentDirectory CURDIR + DllPath NTUnicodeString + ImagePathName NTUnicodeString + CommandLine NTUnicodeString + Environment unsafe.Pointer + + StartingX, StartingY, CountX, CountY, CountCharsX, CountCharsY, FillAttribute uint32 + + WindowFlags, ShowWindowFlags uint32 + WindowTitle, DesktopInfo, ShellInfo, RuntimeData NTUnicodeString + CurrentDirectories [32]RTL_DRIVE_LETTER_CURDIR + + EnvironmentSize, EnvironmentVersion uintptr + + PackageDependencyData unsafe.Pointer + ProcessGroupId uint32 + LoaderThreads uint32 + + RedirectionDllName NTUnicodeString + HeapPartitionName NTUnicodeString + DefaultThreadpoolCpuSetMasks uintptr + DefaultThreadpoolCpuSetMaskCount uint32 +} + +type PEB struct { + reserved1 [2]byte + BeingDebugged byte + BitField byte + reserved3 uintptr + ImageBaseAddress uintptr + Ldr *PEB_LDR_DATA + ProcessParameters *RTL_USER_PROCESS_PARAMETERS + reserved4 [3]uintptr + AtlThunkSListPtr uintptr + reserved5 uintptr + reserved6 uint32 + reserved7 uintptr + reserved8 uint32 + AtlThunkSListPtr32 uint32 + reserved9 [45]uintptr + reserved10 [96]byte + PostProcessInitRoutine uintptr + reserved11 [128]byte + reserved12 [1]uintptr + SessionId uint32 +} + +type OBJECT_ATTRIBUTES struct { + Length uint32 + RootDirectory Handle + ObjectName *NTUnicodeString + Attributes uint32 + SecurityDescriptor *SECURITY_DESCRIPTOR + SecurityQoS *SECURITY_QUALITY_OF_SERVICE +} + +// Values for the Attributes member of OBJECT_ATTRIBUTES. +const ( + OBJ_INHERIT = 0x00000002 + OBJ_PERMANENT = 0x00000010 + OBJ_EXCLUSIVE = 0x00000020 + OBJ_CASE_INSENSITIVE = 0x00000040 + OBJ_OPENIF = 0x00000080 + OBJ_OPENLINK = 0x00000100 + OBJ_KERNEL_HANDLE = 0x00000200 + OBJ_FORCE_ACCESS_CHECK = 0x00000400 + OBJ_IGNORE_IMPERSONATED_DEVICEMAP = 0x00000800 + OBJ_DONT_REPARSE = 0x00001000 + OBJ_VALID_ATTRIBUTES = 0x00001FF2 +) + +type IO_STATUS_BLOCK struct { + Status NTStatus + Information uintptr +} + +type RTLP_CURDIR_REF struct { + RefCount int32 + Handle Handle +} + +type RTL_RELATIVE_NAME struct { + RelativeName NTUnicodeString + ContainingDirectory Handle + CurDirRef *RTLP_CURDIR_REF +} + +const ( + // CreateDisposition flags for NtCreateFile and NtCreateNamedPipeFile. + FILE_SUPERSEDE = 0x00000000 + FILE_OPEN = 0x00000001 + FILE_CREATE = 0x00000002 + FILE_OPEN_IF = 0x00000003 + FILE_OVERWRITE = 0x00000004 + FILE_OVERWRITE_IF = 0x00000005 + FILE_MAXIMUM_DISPOSITION = 0x00000005 + + // CreateOptions flags for NtCreateFile and NtCreateNamedPipeFile. + FILE_DIRECTORY_FILE = 0x00000001 + FILE_WRITE_THROUGH = 0x00000002 + FILE_SEQUENTIAL_ONLY = 0x00000004 + FILE_NO_INTERMEDIATE_BUFFERING = 0x00000008 + FILE_SYNCHRONOUS_IO_ALERT = 0x00000010 + FILE_SYNCHRONOUS_IO_NONALERT = 0x00000020 + FILE_NON_DIRECTORY_FILE = 0x00000040 + FILE_CREATE_TREE_CONNECTION = 0x00000080 + FILE_COMPLETE_IF_OPLOCKED = 0x00000100 + FILE_NO_EA_KNOWLEDGE = 0x00000200 + FILE_OPEN_REMOTE_INSTANCE = 0x00000400 + FILE_RANDOM_ACCESS = 0x00000800 + FILE_DELETE_ON_CLOSE = 0x00001000 + FILE_OPEN_BY_FILE_ID = 0x00002000 + FILE_OPEN_FOR_BACKUP_INTENT = 0x00004000 + FILE_NO_COMPRESSION = 0x00008000 + FILE_OPEN_REQUIRING_OPLOCK = 0x00010000 + FILE_DISALLOW_EXCLUSIVE = 0x00020000 + FILE_RESERVE_OPFILTER = 0x00100000 + FILE_OPEN_REPARSE_POINT = 0x00200000 + FILE_OPEN_NO_RECALL = 0x00400000 + FILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000 + + // Parameter constants for NtCreateNamedPipeFile. + + FILE_PIPE_BYTE_STREAM_TYPE = 0x00000000 + FILE_PIPE_MESSAGE_TYPE = 0x00000001 + + FILE_PIPE_ACCEPT_REMOTE_CLIENTS = 0x00000000 + FILE_PIPE_REJECT_REMOTE_CLIENTS = 0x00000002 + + FILE_PIPE_TYPE_VALID_MASK = 0x00000003 + + FILE_PIPE_BYTE_STREAM_MODE = 0x00000000 + FILE_PIPE_MESSAGE_MODE = 0x00000001 + + FILE_PIPE_QUEUE_OPERATION = 0x00000000 + FILE_PIPE_COMPLETE_OPERATION = 0x00000001 + + FILE_PIPE_INBOUND = 0x00000000 + FILE_PIPE_OUTBOUND = 0x00000001 + FILE_PIPE_FULL_DUPLEX = 0x00000002 + + FILE_PIPE_DISCONNECTED_STATE = 0x00000001 + FILE_PIPE_LISTENING_STATE = 0x00000002 + FILE_PIPE_CONNECTED_STATE = 0x00000003 + FILE_PIPE_CLOSING_STATE = 0x00000004 + + FILE_PIPE_CLIENT_END = 0x00000000 + FILE_PIPE_SERVER_END = 0x00000001 +) + +const ( + // FileInformationClass for NtSetInformationFile + FileBasicInformation = 4 + FileRenameInformation = 10 + FileDispositionInformation = 13 + FilePositionInformation = 14 + FileEndOfFileInformation = 20 + FileValidDataLengthInformation = 39 + FileShortNameInformation = 40 + FileIoPriorityHintInformation = 43 + FileReplaceCompletionInformation = 61 + FileDispositionInformationEx = 64 + FileCaseSensitiveInformation = 71 + FileLinkInformation = 72 + FileCaseSensitiveInformationForceAccessCheck = 75 + FileKnownFolderInformation = 76 + + // Flags for FILE_RENAME_INFORMATION + FILE_RENAME_REPLACE_IF_EXISTS = 0x00000001 + FILE_RENAME_POSIX_SEMANTICS = 0x00000002 + FILE_RENAME_SUPPRESS_PIN_STATE_INHERITANCE = 0x00000004 + FILE_RENAME_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008 + FILE_RENAME_NO_INCREASE_AVAILABLE_SPACE = 0x00000010 + FILE_RENAME_NO_DECREASE_AVAILABLE_SPACE = 0x00000020 + FILE_RENAME_PRESERVE_AVAILABLE_SPACE = 0x00000030 + FILE_RENAME_IGNORE_READONLY_ATTRIBUTE = 0x00000040 + FILE_RENAME_FORCE_RESIZE_TARGET_SR = 0x00000080 + FILE_RENAME_FORCE_RESIZE_SOURCE_SR = 0x00000100 + FILE_RENAME_FORCE_RESIZE_SR = 0x00000180 + + // Flags for FILE_DISPOSITION_INFORMATION_EX + FILE_DISPOSITION_DO_NOT_DELETE = 0x00000000 + FILE_DISPOSITION_DELETE = 0x00000001 + FILE_DISPOSITION_POSIX_SEMANTICS = 0x00000002 + FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK = 0x00000004 + FILE_DISPOSITION_ON_CLOSE = 0x00000008 + FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE = 0x00000010 + + // Flags for FILE_CASE_SENSITIVE_INFORMATION + FILE_CS_FLAG_CASE_SENSITIVE_DIR = 0x00000001 + + // Flags for FILE_LINK_INFORMATION + FILE_LINK_REPLACE_IF_EXISTS = 0x00000001 + FILE_LINK_POSIX_SEMANTICS = 0x00000002 + FILE_LINK_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008 + FILE_LINK_NO_INCREASE_AVAILABLE_SPACE = 0x00000010 + FILE_LINK_NO_DECREASE_AVAILABLE_SPACE = 0x00000020 + FILE_LINK_PRESERVE_AVAILABLE_SPACE = 0x00000030 + FILE_LINK_IGNORE_READONLY_ATTRIBUTE = 0x00000040 + FILE_LINK_FORCE_RESIZE_TARGET_SR = 0x00000080 + FILE_LINK_FORCE_RESIZE_SOURCE_SR = 0x00000100 + FILE_LINK_FORCE_RESIZE_SR = 0x00000180 +) + +// ProcessInformationClasses for NtQueryInformationProcess and NtSetInformationProcess. +const ( + ProcessBasicInformation = iota + ProcessQuotaLimits + ProcessIoCounters + ProcessVmCounters + ProcessTimes + ProcessBasePriority + ProcessRaisePriority + ProcessDebugPort + ProcessExceptionPort + ProcessAccessToken + ProcessLdtInformation + ProcessLdtSize + ProcessDefaultHardErrorMode + ProcessIoPortHandlers + ProcessPooledUsageAndLimits + ProcessWorkingSetWatch + ProcessUserModeIOPL + ProcessEnableAlignmentFaultFixup + ProcessPriorityClass + ProcessWx86Information + ProcessHandleCount + ProcessAffinityMask + ProcessPriorityBoost + ProcessDeviceMap + ProcessSessionInformation + ProcessForegroundInformation + ProcessWow64Information + ProcessImageFileName + ProcessLUIDDeviceMapsEnabled + ProcessBreakOnTermination + ProcessDebugObjectHandle + ProcessDebugFlags + ProcessHandleTracing + ProcessIoPriority + ProcessExecuteFlags + ProcessTlsInformation + ProcessCookie + ProcessImageInformation + ProcessCycleTime + ProcessPagePriority + ProcessInstrumentationCallback + ProcessThreadStackAllocation + ProcessWorkingSetWatchEx + ProcessImageFileNameWin32 + ProcessImageFileMapping + ProcessAffinityUpdateMode + ProcessMemoryAllocationMode + ProcessGroupInformation + ProcessTokenVirtualizationEnabled + ProcessConsoleHostProcess + ProcessWindowInformation + ProcessHandleInformation + ProcessMitigationPolicy + ProcessDynamicFunctionTableInformation + ProcessHandleCheckingMode + ProcessKeepAliveCount + ProcessRevokeFileHandles + ProcessWorkingSetControl + ProcessHandleTable + ProcessCheckStackExtentsMode + ProcessCommandLineInformation + ProcessProtectionInformation + ProcessMemoryExhaustion + ProcessFaultInformation + ProcessTelemetryIdInformation + ProcessCommitReleaseInformation + ProcessDefaultCpuSetsInformation + ProcessAllowedCpuSetsInformation + ProcessSubsystemProcess + ProcessJobMemoryInformation + ProcessInPrivate + ProcessRaiseUMExceptionOnInvalidHandleClose + ProcessIumChallengeResponse + ProcessChildProcessInformation + ProcessHighGraphicsPriorityInformation + ProcessSubsystemInformation + ProcessEnergyValues + ProcessActivityThrottleState + ProcessActivityThrottlePolicy + ProcessWin32kSyscallFilterInformation + ProcessDisableSystemAllowedCpuSets + ProcessWakeInformation + ProcessEnergyTrackingState + ProcessManageWritesToExecutableMemory + ProcessCaptureTrustletLiveDump + ProcessTelemetryCoverage + ProcessEnclaveInformation + ProcessEnableReadWriteVmLogging + ProcessUptimeInformation + ProcessImageSection + ProcessDebugAuthInformation + ProcessSystemResourceManagement + ProcessSequenceNumber + ProcessLoaderDetour + ProcessSecurityDomainInformation + ProcessCombineSecurityDomainsInformation + ProcessEnableLogging + ProcessLeapSecondInformation + ProcessFiberShadowStackAllocation + ProcessFreeFiberShadowStackAllocation + ProcessAltSystemCallInformation + ProcessDynamicEHContinuationTargets + ProcessDynamicEnforcedCetCompatibleRanges +) + +type PROCESS_BASIC_INFORMATION struct { + ExitStatus NTStatus + PebBaseAddress *PEB + AffinityMask uintptr + BasePriority int32 + UniqueProcessId uintptr + InheritedFromUniqueProcessId uintptr +} + +type SYSTEM_PROCESS_INFORMATION struct { + NextEntryOffset uint32 + NumberOfThreads uint32 + WorkingSetPrivateSize int64 + HardFaultCount uint32 + NumberOfThreadsHighWatermark uint32 + CycleTime uint64 + CreateTime int64 + UserTime int64 + KernelTime int64 + ImageName NTUnicodeString + BasePriority int32 + UniqueProcessID uintptr + InheritedFromUniqueProcessID uintptr + HandleCount uint32 + SessionID uint32 + UniqueProcessKey *uint32 + PeakVirtualSize uintptr + VirtualSize uintptr + PageFaultCount uint32 + PeakWorkingSetSize uintptr + WorkingSetSize uintptr + QuotaPeakPagedPoolUsage uintptr + QuotaPagedPoolUsage uintptr + QuotaPeakNonPagedPoolUsage uintptr + QuotaNonPagedPoolUsage uintptr + PagefileUsage uintptr + PeakPagefileUsage uintptr + PrivatePageCount uintptr + ReadOperationCount int64 + WriteOperationCount int64 + OtherOperationCount int64 + ReadTransferCount int64 + WriteTransferCount int64 + OtherTransferCount int64 +} + +// SystemInformationClasses for NtQuerySystemInformation and NtSetSystemInformation +const ( + SystemBasicInformation = iota + SystemProcessorInformation + SystemPerformanceInformation + SystemTimeOfDayInformation + SystemPathInformation + SystemProcessInformation + SystemCallCountInformation + SystemDeviceInformation + SystemProcessorPerformanceInformation + SystemFlagsInformation + SystemCallTimeInformation + SystemModuleInformation + SystemLocksInformation + SystemStackTraceInformation + SystemPagedPoolInformation + SystemNonPagedPoolInformation + SystemHandleInformation + SystemObjectInformation + SystemPageFileInformation + SystemVdmInstemulInformation + SystemVdmBopInformation + SystemFileCacheInformation + SystemPoolTagInformation + SystemInterruptInformation + SystemDpcBehaviorInformation + SystemFullMemoryInformation + SystemLoadGdiDriverInformation + SystemUnloadGdiDriverInformation + SystemTimeAdjustmentInformation + SystemSummaryMemoryInformation + SystemMirrorMemoryInformation + SystemPerformanceTraceInformation + systemObsolete0 + SystemExceptionInformation + SystemCrashDumpStateInformation + SystemKernelDebuggerInformation + SystemContextSwitchInformation + SystemRegistryQuotaInformation + SystemExtendServiceTableInformation + SystemPrioritySeperation + SystemVerifierAddDriverInformation + SystemVerifierRemoveDriverInformation + SystemProcessorIdleInformation + SystemLegacyDriverInformation + SystemCurrentTimeZoneInformation + SystemLookasideInformation + SystemTimeSlipNotification + SystemSessionCreate + SystemSessionDetach + SystemSessionInformation + SystemRangeStartInformation + SystemVerifierInformation + SystemVerifierThunkExtend + SystemSessionProcessInformation + SystemLoadGdiDriverInSystemSpace + SystemNumaProcessorMap + SystemPrefetcherInformation + SystemExtendedProcessInformation + SystemRecommendedSharedDataAlignment + SystemComPlusPackage + SystemNumaAvailableMemory + SystemProcessorPowerInformation + SystemEmulationBasicInformation + SystemEmulationProcessorInformation + SystemExtendedHandleInformation + SystemLostDelayedWriteInformation + SystemBigPoolInformation + SystemSessionPoolTagInformation + SystemSessionMappedViewInformation + SystemHotpatchInformation + SystemObjectSecurityMode + SystemWatchdogTimerHandler + SystemWatchdogTimerInformation + SystemLogicalProcessorInformation + SystemWow64SharedInformationObsolete + SystemRegisterFirmwareTableInformationHandler + SystemFirmwareTableInformation + SystemModuleInformationEx + SystemVerifierTriageInformation + SystemSuperfetchInformation + SystemMemoryListInformation + SystemFileCacheInformationEx + SystemThreadPriorityClientIdInformation + SystemProcessorIdleCycleTimeInformation + SystemVerifierCancellationInformation + SystemProcessorPowerInformationEx + SystemRefTraceInformation + SystemSpecialPoolInformation + SystemProcessIdInformation + SystemErrorPortInformation + SystemBootEnvironmentInformation + SystemHypervisorInformation + SystemVerifierInformationEx + SystemTimeZoneInformation + SystemImageFileExecutionOptionsInformation + SystemCoverageInformation + SystemPrefetchPatchInformation + SystemVerifierFaultsInformation + SystemSystemPartitionInformation + SystemSystemDiskInformation + SystemProcessorPerformanceDistribution + SystemNumaProximityNodeInformation + SystemDynamicTimeZoneInformation + SystemCodeIntegrityInformation + SystemProcessorMicrocodeUpdateInformation + SystemProcessorBrandString + SystemVirtualAddressInformation + SystemLogicalProcessorAndGroupInformation + SystemProcessorCycleTimeInformation + SystemStoreInformation + SystemRegistryAppendString + SystemAitSamplingValue + SystemVhdBootInformation + SystemCpuQuotaInformation + SystemNativeBasicInformation + systemSpare1 + SystemLowPriorityIoInformation + SystemTpmBootEntropyInformation + SystemVerifierCountersInformation + SystemPagedPoolInformationEx + SystemSystemPtesInformationEx + SystemNodeDistanceInformation + SystemAcpiAuditInformation + SystemBasicPerformanceInformation + SystemQueryPerformanceCounterInformation + SystemSessionBigPoolInformation + SystemBootGraphicsInformation + SystemScrubPhysicalMemoryInformation + SystemBadPageInformation + SystemProcessorProfileControlArea + SystemCombinePhysicalMemoryInformation + SystemEntropyInterruptTimingCallback + SystemConsoleInformation + SystemPlatformBinaryInformation + SystemThrottleNotificationInformation + SystemHypervisorProcessorCountInformation + SystemDeviceDataInformation + SystemDeviceDataEnumerationInformation + SystemMemoryTopologyInformation + SystemMemoryChannelInformation + SystemBootLogoInformation + SystemProcessorPerformanceInformationEx + systemSpare0 + SystemSecureBootPolicyInformation + SystemPageFileInformationEx + SystemSecureBootInformation + SystemEntropyInterruptTimingRawInformation + SystemPortableWorkspaceEfiLauncherInformation + SystemFullProcessInformation + SystemKernelDebuggerInformationEx + SystemBootMetadataInformation + SystemSoftRebootInformation + SystemElamCertificateInformation + SystemOfflineDumpConfigInformation + SystemProcessorFeaturesInformation + SystemRegistryReconciliationInformation + SystemEdidInformation + SystemManufacturingInformation + SystemEnergyEstimationConfigInformation + SystemHypervisorDetailInformation + SystemProcessorCycleStatsInformation + SystemVmGenerationCountInformation + SystemTrustedPlatformModuleInformation + SystemKernelDebuggerFlags + SystemCodeIntegrityPolicyInformation + SystemIsolatedUserModeInformation + SystemHardwareSecurityTestInterfaceResultsInformation + SystemSingleModuleInformation + SystemAllowedCpuSetsInformation + SystemDmaProtectionInformation + SystemInterruptCpuSetsInformation + SystemSecureBootPolicyFullInformation + SystemCodeIntegrityPolicyFullInformation + SystemAffinitizedInterruptProcessorInformation + SystemRootSiloInformation +) + +type RTL_PROCESS_MODULE_INFORMATION struct { + Section Handle + MappedBase uintptr + ImageBase uintptr + ImageSize uint32 + Flags uint32 + LoadOrderIndex uint16 + InitOrderIndex uint16 + LoadCount uint16 + OffsetToFileName uint16 + FullPathName [256]byte +} + +type RTL_PROCESS_MODULES struct { + NumberOfModules uint32 + Modules [1]RTL_PROCESS_MODULE_INFORMATION +} + +// Constants for LocalAlloc flags. +const ( + LMEM_FIXED = 0x0 + LMEM_MOVEABLE = 0x2 + LMEM_NOCOMPACT = 0x10 + LMEM_NODISCARD = 0x20 + LMEM_ZEROINIT = 0x40 + LMEM_MODIFY = 0x80 + LMEM_DISCARDABLE = 0xf00 + LMEM_VALID_FLAGS = 0xf72 + LMEM_INVALID_HANDLE = 0x8000 + LHND = LMEM_MOVEABLE | LMEM_ZEROINIT + LPTR = LMEM_FIXED | LMEM_ZEROINIT + NONZEROLHND = LMEM_MOVEABLE + NONZEROLPTR = LMEM_FIXED +) + +// Constants for the CreateNamedPipe-family of functions. +const ( + PIPE_ACCESS_INBOUND = 0x1 + PIPE_ACCESS_OUTBOUND = 0x2 + PIPE_ACCESS_DUPLEX = 0x3 + + PIPE_CLIENT_END = 0x0 + PIPE_SERVER_END = 0x1 + + PIPE_WAIT = 0x0 + PIPE_NOWAIT = 0x1 + PIPE_READMODE_BYTE = 0x0 + PIPE_READMODE_MESSAGE = 0x2 + PIPE_TYPE_BYTE = 0x0 + PIPE_TYPE_MESSAGE = 0x4 + PIPE_ACCEPT_REMOTE_CLIENTS = 0x0 + PIPE_REJECT_REMOTE_CLIENTS = 0x8 + + PIPE_UNLIMITED_INSTANCES = 255 +) + +// Constants for security attributes when opening named pipes. +const ( + SECURITY_ANONYMOUS = SecurityAnonymous << 16 + SECURITY_IDENTIFICATION = SecurityIdentification << 16 + SECURITY_IMPERSONATION = SecurityImpersonation << 16 + SECURITY_DELEGATION = SecurityDelegation << 16 + + SECURITY_CONTEXT_TRACKING = 0x40000 + SECURITY_EFFECTIVE_ONLY = 0x80000 + + SECURITY_SQOS_PRESENT = 0x100000 + SECURITY_VALID_SQOS_FLAGS = 0x1f0000 +) + +// ResourceID represents a 16-bit resource identifier, traditionally created with the MAKEINTRESOURCE macro. +type ResourceID uint16 + +// ResourceIDOrString must be either a ResourceID, to specify a resource or resource type by ID, +// or a string, to specify a resource or resource type by name. +type ResourceIDOrString interface{} + +// Predefined resource names and types. +var ( + // Predefined names. + CREATEPROCESS_MANIFEST_RESOURCE_ID ResourceID = 1 + ISOLATIONAWARE_MANIFEST_RESOURCE_ID ResourceID = 2 + ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID ResourceID = 3 + ISOLATIONPOLICY_MANIFEST_RESOURCE_ID ResourceID = 4 + ISOLATIONPOLICY_BROWSER_MANIFEST_RESOURCE_ID ResourceID = 5 + MINIMUM_RESERVED_MANIFEST_RESOURCE_ID ResourceID = 1 // inclusive + MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID ResourceID = 16 // inclusive + + // Predefined types. + RT_CURSOR ResourceID = 1 + RT_BITMAP ResourceID = 2 + RT_ICON ResourceID = 3 + RT_MENU ResourceID = 4 + RT_DIALOG ResourceID = 5 + RT_STRING ResourceID = 6 + RT_FONTDIR ResourceID = 7 + RT_FONT ResourceID = 8 + RT_ACCELERATOR ResourceID = 9 + RT_RCDATA ResourceID = 10 + RT_MESSAGETABLE ResourceID = 11 + RT_GROUP_CURSOR ResourceID = 12 + RT_GROUP_ICON ResourceID = 14 + RT_VERSION ResourceID = 16 + RT_DLGINCLUDE ResourceID = 17 + RT_PLUGPLAY ResourceID = 19 + RT_VXD ResourceID = 20 + RT_ANICURSOR ResourceID = 21 + RT_ANIICON ResourceID = 22 + RT_HTML ResourceID = 23 + RT_MANIFEST ResourceID = 24 +) + +type VS_FIXEDFILEINFO struct { + Signature uint32 + StrucVersion uint32 + FileVersionMS uint32 + FileVersionLS uint32 + ProductVersionMS uint32 + ProductVersionLS uint32 + FileFlagsMask uint32 + FileFlags uint32 + FileOS uint32 + FileType uint32 + FileSubtype uint32 + FileDateMS uint32 + FileDateLS uint32 +} + +type COAUTHIDENTITY struct { + User *uint16 + UserLength uint32 + Domain *uint16 + DomainLength uint32 + Password *uint16 + PasswordLength uint32 + Flags uint32 +} + +type COAUTHINFO struct { + AuthnSvc uint32 + AuthzSvc uint32 + ServerPrincName *uint16 + AuthnLevel uint32 + ImpersonationLevel uint32 + AuthIdentityData *COAUTHIDENTITY + Capabilities uint32 +} + +type COSERVERINFO struct { + Reserved1 uint32 + Aame *uint16 + AuthInfo *COAUTHINFO + Reserved2 uint32 +} + +type BIND_OPTS3 struct { + CbStruct uint32 + Flags uint32 + Mode uint32 + TickCountDeadline uint32 + TrackFlags uint32 + ClassContext uint32 + Locale uint32 + ServerInfo *COSERVERINFO + Hwnd HWND +} + +const ( + CLSCTX_INPROC_SERVER = 0x1 + CLSCTX_INPROC_HANDLER = 0x2 + CLSCTX_LOCAL_SERVER = 0x4 + CLSCTX_INPROC_SERVER16 = 0x8 + CLSCTX_REMOTE_SERVER = 0x10 + CLSCTX_INPROC_HANDLER16 = 0x20 + CLSCTX_RESERVED1 = 0x40 + CLSCTX_RESERVED2 = 0x80 + CLSCTX_RESERVED3 = 0x100 + CLSCTX_RESERVED4 = 0x200 + CLSCTX_NO_CODE_DOWNLOAD = 0x400 + CLSCTX_RESERVED5 = 0x800 + CLSCTX_NO_CUSTOM_MARSHAL = 0x1000 + CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000 + CLSCTX_NO_FAILURE_LOG = 0x4000 + CLSCTX_DISABLE_AAA = 0x8000 + CLSCTX_ENABLE_AAA = 0x10000 + CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000 + CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000 + CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000 + CLSCTX_ENABLE_CLOAKING = 0x100000 + CLSCTX_APPCONTAINER = 0x400000 + CLSCTX_ACTIVATE_AAA_AS_IU = 0x800000 + CLSCTX_PS_DLL = 0x80000000 + + COINIT_MULTITHREADED = 0x0 + COINIT_APARTMENTTHREADED = 0x2 + COINIT_DISABLE_OLE1DDE = 0x4 + COINIT_SPEED_OVER_MEMORY = 0x8 +) + +// Flag for QueryFullProcessImageName. +const PROCESS_NAME_NATIVE = 1 + +type ModuleInfo struct { + BaseOfDll uintptr + SizeOfImage uint32 + EntryPoint uintptr +} + +const ALL_PROCESSOR_GROUPS = 0xFFFF + +type Rect struct { + Left int32 + Top int32 + Right int32 + Bottom int32 +} + +type GUIThreadInfo struct { + Size uint32 + Flags uint32 + Active HWND + Focus HWND + Capture HWND + MenuOwner HWND + MoveSize HWND + CaretHandle HWND + CaretRect Rect +} + +const ( + DWMWA_NCRENDERING_ENABLED = 1 + DWMWA_NCRENDERING_POLICY = 2 + DWMWA_TRANSITIONS_FORCEDISABLED = 3 + DWMWA_ALLOW_NCPAINT = 4 + DWMWA_CAPTION_BUTTON_BOUNDS = 5 + DWMWA_NONCLIENT_RTL_LAYOUT = 6 + DWMWA_FORCE_ICONIC_REPRESENTATION = 7 + DWMWA_FLIP3D_POLICY = 8 + DWMWA_EXTENDED_FRAME_BOUNDS = 9 + DWMWA_HAS_ICONIC_BITMAP = 10 + DWMWA_DISALLOW_PEEK = 11 + DWMWA_EXCLUDED_FROM_PEEK = 12 + DWMWA_CLOAK = 13 + DWMWA_CLOAKED = 14 + DWMWA_FREEZE_REPRESENTATION = 15 + DWMWA_PASSIVE_UPDATE_MODE = 16 + DWMWA_USE_HOSTBACKDROPBRUSH = 17 + DWMWA_USE_IMMERSIVE_DARK_MODE = 20 + DWMWA_WINDOW_CORNER_PREFERENCE = 33 + DWMWA_BORDER_COLOR = 34 + DWMWA_CAPTION_COLOR = 35 + DWMWA_TEXT_COLOR = 36 + DWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 37 +) + +type WSAQUERYSET struct { + Size uint32 + ServiceInstanceName *uint16 + ServiceClassId *GUID + Version *WSAVersion + Comment *uint16 + NameSpace uint32 + NSProviderId *GUID + Context *uint16 + NumberOfProtocols uint32 + AfpProtocols *AFProtocols + QueryString *uint16 + NumberOfCsAddrs uint32 + SaBuffer *CSAddrInfo + OutputFlags uint32 + Blob *BLOB +} + +type WSAVersion struct { + Version uint32 + EnumerationOfComparison int32 +} + +type AFProtocols struct { + AddressFamily int32 + Protocol int32 +} + +type CSAddrInfo struct { + LocalAddr SocketAddress + RemoteAddr SocketAddress + SocketType int32 + Protocol int32 +} + +type BLOB struct { + Size uint32 + BlobData *byte +} diff --git a/vendor/golang.org/x/sys/windows/types_windows_386.go b/vendor/golang.org/x/sys/windows/types_windows_386.go new file mode 100644 index 000000000000..8bce3e2fc1b0 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows_386.go @@ -0,0 +1,35 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +type WSAData struct { + Version uint16 + HighVersion uint16 + Description [WSADESCRIPTION_LEN + 1]byte + SystemStatus [WSASYS_STATUS_LEN + 1]byte + MaxSockets uint16 + MaxUdpDg uint16 + VendorInfo *byte +} + +type Servent struct { + Name *byte + Aliases **byte + Port uint16 + Proto *byte +} + +type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { + PerProcessUserTimeLimit int64 + PerJobUserTimeLimit int64 + LimitFlags uint32 + MinimumWorkingSetSize uintptr + MaximumWorkingSetSize uintptr + ActiveProcessLimit uint32 + Affinity uintptr + PriorityClass uint32 + SchedulingClass uint32 + _ uint32 // pad to 8 byte boundary +} diff --git a/vendor/golang.org/x/sys/windows/types_windows_amd64.go b/vendor/golang.org/x/sys/windows/types_windows_amd64.go new file mode 100644 index 000000000000..fdddc0c70abd --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows_amd64.go @@ -0,0 +1,34 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +type WSAData struct { + Version uint16 + HighVersion uint16 + MaxSockets uint16 + MaxUdpDg uint16 + VendorInfo *byte + Description [WSADESCRIPTION_LEN + 1]byte + SystemStatus [WSASYS_STATUS_LEN + 1]byte +} + +type Servent struct { + Name *byte + Aliases **byte + Proto *byte + Port uint16 +} + +type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { + PerProcessUserTimeLimit int64 + PerJobUserTimeLimit int64 + LimitFlags uint32 + MinimumWorkingSetSize uintptr + MaximumWorkingSetSize uintptr + ActiveProcessLimit uint32 + Affinity uintptr + PriorityClass uint32 + SchedulingClass uint32 +} diff --git a/vendor/golang.org/x/sys/windows/types_windows_arm.go b/vendor/golang.org/x/sys/windows/types_windows_arm.go new file mode 100644 index 000000000000..321872c3e04f --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows_arm.go @@ -0,0 +1,35 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +type WSAData struct { + Version uint16 + HighVersion uint16 + Description [WSADESCRIPTION_LEN + 1]byte + SystemStatus [WSASYS_STATUS_LEN + 1]byte + MaxSockets uint16 + MaxUdpDg uint16 + VendorInfo *byte +} + +type Servent struct { + Name *byte + Aliases **byte + Port uint16 + Proto *byte +} + +type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { + PerProcessUserTimeLimit int64 + PerJobUserTimeLimit int64 + LimitFlags uint32 + MinimumWorkingSetSize uintptr + MaximumWorkingSetSize uintptr + ActiveProcessLimit uint32 + Affinity uintptr + PriorityClass uint32 + SchedulingClass uint32 + _ uint32 // pad to 8 byte boundary +} diff --git a/vendor/golang.org/x/sys/windows/types_windows_arm64.go b/vendor/golang.org/x/sys/windows/types_windows_arm64.go new file mode 100644 index 000000000000..fdddc0c70abd --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows_arm64.go @@ -0,0 +1,34 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +type WSAData struct { + Version uint16 + HighVersion uint16 + MaxSockets uint16 + MaxUdpDg uint16 + VendorInfo *byte + Description [WSADESCRIPTION_LEN + 1]byte + SystemStatus [WSASYS_STATUS_LEN + 1]byte +} + +type Servent struct { + Name *byte + Aliases **byte + Proto *byte + Port uint16 +} + +type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { + PerProcessUserTimeLimit int64 + PerJobUserTimeLimit int64 + LimitFlags uint32 + MinimumWorkingSetSize uintptr + MaximumWorkingSetSize uintptr + ActiveProcessLimit uint32 + Affinity uintptr + PriorityClass uint32 + SchedulingClass uint32 +} diff --git a/vendor/golang.org/x/sys/windows/zerrors_windows.go b/vendor/golang.org/x/sys/windows/zerrors_windows.go new file mode 100644 index 000000000000..0cf658fbd5d7 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/zerrors_windows.go @@ -0,0 +1,9468 @@ +// Code generated by 'mkerrors.bash'; DO NOT EDIT. + +package windows + +import "syscall" + +const ( + FACILITY_NULL = 0 + FACILITY_RPC = 1 + FACILITY_DISPATCH = 2 + FACILITY_STORAGE = 3 + FACILITY_ITF = 4 + FACILITY_WIN32 = 7 + FACILITY_WINDOWS = 8 + FACILITY_SSPI = 9 + FACILITY_SECURITY = 9 + FACILITY_CONTROL = 10 + FACILITY_CERT = 11 + FACILITY_INTERNET = 12 + FACILITY_MEDIASERVER = 13 + FACILITY_MSMQ = 14 + FACILITY_SETUPAPI = 15 + FACILITY_SCARD = 16 + FACILITY_COMPLUS = 17 + FACILITY_AAF = 18 + FACILITY_URT = 19 + FACILITY_ACS = 20 + FACILITY_DPLAY = 21 + FACILITY_UMI = 22 + FACILITY_SXS = 23 + FACILITY_WINDOWS_CE = 24 + FACILITY_HTTP = 25 + FACILITY_USERMODE_COMMONLOG = 26 + FACILITY_WER = 27 + FACILITY_USERMODE_FILTER_MANAGER = 31 + FACILITY_BACKGROUNDCOPY = 32 + FACILITY_CONFIGURATION = 33 + FACILITY_WIA = 33 + FACILITY_STATE_MANAGEMENT = 34 + FACILITY_METADIRECTORY = 35 + FACILITY_WINDOWSUPDATE = 36 + FACILITY_DIRECTORYSERVICE = 37 + FACILITY_GRAPHICS = 38 + FACILITY_SHELL = 39 + FACILITY_NAP = 39 + FACILITY_TPM_SERVICES = 40 + FACILITY_TPM_SOFTWARE = 41 + FACILITY_UI = 42 + FACILITY_XAML = 43 + FACILITY_ACTION_QUEUE = 44 + FACILITY_PLA = 48 + FACILITY_WINDOWS_SETUP = 48 + FACILITY_FVE = 49 + FACILITY_FWP = 50 + FACILITY_WINRM = 51 + FACILITY_NDIS = 52 + FACILITY_USERMODE_HYPERVISOR = 53 + FACILITY_CMI = 54 + FACILITY_USERMODE_VIRTUALIZATION = 55 + FACILITY_USERMODE_VOLMGR = 56 + FACILITY_BCD = 57 + FACILITY_USERMODE_VHD = 58 + FACILITY_USERMODE_HNS = 59 + FACILITY_SDIAG = 60 + FACILITY_WEBSERVICES = 61 + FACILITY_WINPE = 61 + FACILITY_WPN = 62 + FACILITY_WINDOWS_STORE = 63 + FACILITY_INPUT = 64 + FACILITY_EAP = 66 + FACILITY_WINDOWS_DEFENDER = 80 + FACILITY_OPC = 81 + FACILITY_XPS = 82 + FACILITY_MBN = 84 + FACILITY_POWERSHELL = 84 + FACILITY_RAS = 83 + FACILITY_P2P_INT = 98 + FACILITY_P2P = 99 + FACILITY_DAF = 100 + FACILITY_BLUETOOTH_ATT = 101 + FACILITY_AUDIO = 102 + FACILITY_STATEREPOSITORY = 103 + FACILITY_VISUALCPP = 109 + FACILITY_SCRIPT = 112 + FACILITY_PARSE = 113 + FACILITY_BLB = 120 + FACILITY_BLB_CLI = 121 + FACILITY_WSBAPP = 122 + FACILITY_BLBUI = 128 + FACILITY_USN = 129 + FACILITY_USERMODE_VOLSNAP = 130 + FACILITY_TIERING = 131 + FACILITY_WSB_ONLINE = 133 + FACILITY_ONLINE_ID = 134 + FACILITY_DEVICE_UPDATE_AGENT = 135 + FACILITY_DRVSERVICING = 136 + FACILITY_DLS = 153 + FACILITY_DELIVERY_OPTIMIZATION = 208 + FACILITY_USERMODE_SPACES = 231 + FACILITY_USER_MODE_SECURITY_CORE = 232 + FACILITY_USERMODE_LICENSING = 234 + FACILITY_SOS = 160 + FACILITY_DEBUGGERS = 176 + FACILITY_SPP = 256 + FACILITY_RESTORE = 256 + FACILITY_DMSERVER = 256 + FACILITY_DEPLOYMENT_SERVICES_SERVER = 257 + FACILITY_DEPLOYMENT_SERVICES_IMAGING = 258 + FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT = 259 + FACILITY_DEPLOYMENT_SERVICES_UTIL = 260 + FACILITY_DEPLOYMENT_SERVICES_BINLSVC = 261 + FACILITY_DEPLOYMENT_SERVICES_PXE = 263 + FACILITY_DEPLOYMENT_SERVICES_TFTP = 264 + FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT = 272 + FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING = 278 + FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER = 289 + FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT = 290 + FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER = 293 + FACILITY_LINGUISTIC_SERVICES = 305 + FACILITY_AUDIOSTREAMING = 1094 + FACILITY_ACCELERATOR = 1536 + FACILITY_WMAAECMA = 1996 + FACILITY_DIRECTMUSIC = 2168 + FACILITY_DIRECT3D10 = 2169 + FACILITY_DXGI = 2170 + FACILITY_DXGI_DDI = 2171 + FACILITY_DIRECT3D11 = 2172 + FACILITY_DIRECT3D11_DEBUG = 2173 + FACILITY_DIRECT3D12 = 2174 + FACILITY_DIRECT3D12_DEBUG = 2175 + FACILITY_LEAP = 2184 + FACILITY_AUDCLNT = 2185 + FACILITY_WINCODEC_DWRITE_DWM = 2200 + FACILITY_WINML = 2192 + FACILITY_DIRECT2D = 2201 + FACILITY_DEFRAG = 2304 + FACILITY_USERMODE_SDBUS = 2305 + FACILITY_JSCRIPT = 2306 + FACILITY_PIDGENX = 2561 + FACILITY_EAS = 85 + FACILITY_WEB = 885 + FACILITY_WEB_SOCKET = 886 + FACILITY_MOBILE = 1793 + FACILITY_SQLITE = 1967 + FACILITY_UTC = 1989 + FACILITY_WEP = 2049 + FACILITY_SYNCENGINE = 2050 + FACILITY_XBOX = 2339 + FACILITY_GAME = 2340 + FACILITY_PIX = 2748 + ERROR_SUCCESS syscall.Errno = 0 + NO_ERROR = 0 + SEC_E_OK Handle = 0x00000000 + ERROR_INVALID_FUNCTION syscall.Errno = 1 + ERROR_FILE_NOT_FOUND syscall.Errno = 2 + ERROR_PATH_NOT_FOUND syscall.Errno = 3 + ERROR_TOO_MANY_OPEN_FILES syscall.Errno = 4 + ERROR_ACCESS_DENIED syscall.Errno = 5 + ERROR_INVALID_HANDLE syscall.Errno = 6 + ERROR_ARENA_TRASHED syscall.Errno = 7 + ERROR_NOT_ENOUGH_MEMORY syscall.Errno = 8 + ERROR_INVALID_BLOCK syscall.Errno = 9 + ERROR_BAD_ENVIRONMENT syscall.Errno = 10 + ERROR_BAD_FORMAT syscall.Errno = 11 + ERROR_INVALID_ACCESS syscall.Errno = 12 + ERROR_INVALID_DATA syscall.Errno = 13 + ERROR_OUTOFMEMORY syscall.Errno = 14 + ERROR_INVALID_DRIVE syscall.Errno = 15 + ERROR_CURRENT_DIRECTORY syscall.Errno = 16 + ERROR_NOT_SAME_DEVICE syscall.Errno = 17 + ERROR_NO_MORE_FILES syscall.Errno = 18 + ERROR_WRITE_PROTECT syscall.Errno = 19 + ERROR_BAD_UNIT syscall.Errno = 20 + ERROR_NOT_READY syscall.Errno = 21 + ERROR_BAD_COMMAND syscall.Errno = 22 + ERROR_CRC syscall.Errno = 23 + ERROR_BAD_LENGTH syscall.Errno = 24 + ERROR_SEEK syscall.Errno = 25 + ERROR_NOT_DOS_DISK syscall.Errno = 26 + ERROR_SECTOR_NOT_FOUND syscall.Errno = 27 + ERROR_OUT_OF_PAPER syscall.Errno = 28 + ERROR_WRITE_FAULT syscall.Errno = 29 + ERROR_READ_FAULT syscall.Errno = 30 + ERROR_GEN_FAILURE syscall.Errno = 31 + ERROR_SHARING_VIOLATION syscall.Errno = 32 + ERROR_LOCK_VIOLATION syscall.Errno = 33 + ERROR_WRONG_DISK syscall.Errno = 34 + ERROR_SHARING_BUFFER_EXCEEDED syscall.Errno = 36 + ERROR_HANDLE_EOF syscall.Errno = 38 + ERROR_HANDLE_DISK_FULL syscall.Errno = 39 + ERROR_NOT_SUPPORTED syscall.Errno = 50 + ERROR_REM_NOT_LIST syscall.Errno = 51 + ERROR_DUP_NAME syscall.Errno = 52 + ERROR_BAD_NETPATH syscall.Errno = 53 + ERROR_NETWORK_BUSY syscall.Errno = 54 + ERROR_DEV_NOT_EXIST syscall.Errno = 55 + ERROR_TOO_MANY_CMDS syscall.Errno = 56 + ERROR_ADAP_HDW_ERR syscall.Errno = 57 + ERROR_BAD_NET_RESP syscall.Errno = 58 + ERROR_UNEXP_NET_ERR syscall.Errno = 59 + ERROR_BAD_REM_ADAP syscall.Errno = 60 + ERROR_PRINTQ_FULL syscall.Errno = 61 + ERROR_NO_SPOOL_SPACE syscall.Errno = 62 + ERROR_PRINT_CANCELLED syscall.Errno = 63 + ERROR_NETNAME_DELETED syscall.Errno = 64 + ERROR_NETWORK_ACCESS_DENIED syscall.Errno = 65 + ERROR_BAD_DEV_TYPE syscall.Errno = 66 + ERROR_BAD_NET_NAME syscall.Errno = 67 + ERROR_TOO_MANY_NAMES syscall.Errno = 68 + ERROR_TOO_MANY_SESS syscall.Errno = 69 + ERROR_SHARING_PAUSED syscall.Errno = 70 + ERROR_REQ_NOT_ACCEP syscall.Errno = 71 + ERROR_REDIR_PAUSED syscall.Errno = 72 + ERROR_FILE_EXISTS syscall.Errno = 80 + ERROR_CANNOT_MAKE syscall.Errno = 82 + ERROR_FAIL_I24 syscall.Errno = 83 + ERROR_OUT_OF_STRUCTURES syscall.Errno = 84 + ERROR_ALREADY_ASSIGNED syscall.Errno = 85 + ERROR_INVALID_PASSWORD syscall.Errno = 86 + ERROR_INVALID_PARAMETER syscall.Errno = 87 + ERROR_NET_WRITE_FAULT syscall.Errno = 88 + ERROR_NO_PROC_SLOTS syscall.Errno = 89 + ERROR_TOO_MANY_SEMAPHORES syscall.Errno = 100 + ERROR_EXCL_SEM_ALREADY_OWNED syscall.Errno = 101 + ERROR_SEM_IS_SET syscall.Errno = 102 + ERROR_TOO_MANY_SEM_REQUESTS syscall.Errno = 103 + ERROR_INVALID_AT_INTERRUPT_TIME syscall.Errno = 104 + ERROR_SEM_OWNER_DIED syscall.Errno = 105 + ERROR_SEM_USER_LIMIT syscall.Errno = 106 + ERROR_DISK_CHANGE syscall.Errno = 107 + ERROR_DRIVE_LOCKED syscall.Errno = 108 + ERROR_BROKEN_PIPE syscall.Errno = 109 + ERROR_OPEN_FAILED syscall.Errno = 110 + ERROR_BUFFER_OVERFLOW syscall.Errno = 111 + ERROR_DISK_FULL syscall.Errno = 112 + ERROR_NO_MORE_SEARCH_HANDLES syscall.Errno = 113 + ERROR_INVALID_TARGET_HANDLE syscall.Errno = 114 + ERROR_INVALID_CATEGORY syscall.Errno = 117 + ERROR_INVALID_VERIFY_SWITCH syscall.Errno = 118 + ERROR_BAD_DRIVER_LEVEL syscall.Errno = 119 + ERROR_CALL_NOT_IMPLEMENTED syscall.Errno = 120 + ERROR_SEM_TIMEOUT syscall.Errno = 121 + ERROR_INSUFFICIENT_BUFFER syscall.Errno = 122 + ERROR_INVALID_NAME syscall.Errno = 123 + ERROR_INVALID_LEVEL syscall.Errno = 124 + ERROR_NO_VOLUME_LABEL syscall.Errno = 125 + ERROR_MOD_NOT_FOUND syscall.Errno = 126 + ERROR_PROC_NOT_FOUND syscall.Errno = 127 + ERROR_WAIT_NO_CHILDREN syscall.Errno = 128 + ERROR_CHILD_NOT_COMPLETE syscall.Errno = 129 + ERROR_DIRECT_ACCESS_HANDLE syscall.Errno = 130 + ERROR_NEGATIVE_SEEK syscall.Errno = 131 + ERROR_SEEK_ON_DEVICE syscall.Errno = 132 + ERROR_IS_JOIN_TARGET syscall.Errno = 133 + ERROR_IS_JOINED syscall.Errno = 134 + ERROR_IS_SUBSTED syscall.Errno = 135 + ERROR_NOT_JOINED syscall.Errno = 136 + ERROR_NOT_SUBSTED syscall.Errno = 137 + ERROR_JOIN_TO_JOIN syscall.Errno = 138 + ERROR_SUBST_TO_SUBST syscall.Errno = 139 + ERROR_JOIN_TO_SUBST syscall.Errno = 140 + ERROR_SUBST_TO_JOIN syscall.Errno = 141 + ERROR_BUSY_DRIVE syscall.Errno = 142 + ERROR_SAME_DRIVE syscall.Errno = 143 + ERROR_DIR_NOT_ROOT syscall.Errno = 144 + ERROR_DIR_NOT_EMPTY syscall.Errno = 145 + ERROR_IS_SUBST_PATH syscall.Errno = 146 + ERROR_IS_JOIN_PATH syscall.Errno = 147 + ERROR_PATH_BUSY syscall.Errno = 148 + ERROR_IS_SUBST_TARGET syscall.Errno = 149 + ERROR_SYSTEM_TRACE syscall.Errno = 150 + ERROR_INVALID_EVENT_COUNT syscall.Errno = 151 + ERROR_TOO_MANY_MUXWAITERS syscall.Errno = 152 + ERROR_INVALID_LIST_FORMAT syscall.Errno = 153 + ERROR_LABEL_TOO_LONG syscall.Errno = 154 + ERROR_TOO_MANY_TCBS syscall.Errno = 155 + ERROR_SIGNAL_REFUSED syscall.Errno = 156 + ERROR_DISCARDED syscall.Errno = 157 + ERROR_NOT_LOCKED syscall.Errno = 158 + ERROR_BAD_THREADID_ADDR syscall.Errno = 159 + ERROR_BAD_ARGUMENTS syscall.Errno = 160 + ERROR_BAD_PATHNAME syscall.Errno = 161 + ERROR_SIGNAL_PENDING syscall.Errno = 162 + ERROR_MAX_THRDS_REACHED syscall.Errno = 164 + ERROR_LOCK_FAILED syscall.Errno = 167 + ERROR_BUSY syscall.Errno = 170 + ERROR_DEVICE_SUPPORT_IN_PROGRESS syscall.Errno = 171 + ERROR_CANCEL_VIOLATION syscall.Errno = 173 + ERROR_ATOMIC_LOCKS_NOT_SUPPORTED syscall.Errno = 174 + ERROR_INVALID_SEGMENT_NUMBER syscall.Errno = 180 + ERROR_INVALID_ORDINAL syscall.Errno = 182 + ERROR_ALREADY_EXISTS syscall.Errno = 183 + ERROR_INVALID_FLAG_NUMBER syscall.Errno = 186 + ERROR_SEM_NOT_FOUND syscall.Errno = 187 + ERROR_INVALID_STARTING_CODESEG syscall.Errno = 188 + ERROR_INVALID_STACKSEG syscall.Errno = 189 + ERROR_INVALID_MODULETYPE syscall.Errno = 190 + ERROR_INVALID_EXE_SIGNATURE syscall.Errno = 191 + ERROR_EXE_MARKED_INVALID syscall.Errno = 192 + ERROR_BAD_EXE_FORMAT syscall.Errno = 193 + ERROR_ITERATED_DATA_EXCEEDS_64k syscall.Errno = 194 + ERROR_INVALID_MINALLOCSIZE syscall.Errno = 195 + ERROR_DYNLINK_FROM_INVALID_RING syscall.Errno = 196 + ERROR_IOPL_NOT_ENABLED syscall.Errno = 197 + ERROR_INVALID_SEGDPL syscall.Errno = 198 + ERROR_AUTODATASEG_EXCEEDS_64k syscall.Errno = 199 + ERROR_RING2SEG_MUST_BE_MOVABLE syscall.Errno = 200 + ERROR_RELOC_CHAIN_XEEDS_SEGLIM syscall.Errno = 201 + ERROR_INFLOOP_IN_RELOC_CHAIN syscall.Errno = 202 + ERROR_ENVVAR_NOT_FOUND syscall.Errno = 203 + ERROR_NO_SIGNAL_SENT syscall.Errno = 205 + ERROR_FILENAME_EXCED_RANGE syscall.Errno = 206 + ERROR_RING2_STACK_IN_USE syscall.Errno = 207 + ERROR_META_EXPANSION_TOO_LONG syscall.Errno = 208 + ERROR_INVALID_SIGNAL_NUMBER syscall.Errno = 209 + ERROR_THREAD_1_INACTIVE syscall.Errno = 210 + ERROR_LOCKED syscall.Errno = 212 + ERROR_TOO_MANY_MODULES syscall.Errno = 214 + ERROR_NESTING_NOT_ALLOWED syscall.Errno = 215 + ERROR_EXE_MACHINE_TYPE_MISMATCH syscall.Errno = 216 + ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY syscall.Errno = 217 + ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY syscall.Errno = 218 + ERROR_FILE_CHECKED_OUT syscall.Errno = 220 + ERROR_CHECKOUT_REQUIRED syscall.Errno = 221 + ERROR_BAD_FILE_TYPE syscall.Errno = 222 + ERROR_FILE_TOO_LARGE syscall.Errno = 223 + ERROR_FORMS_AUTH_REQUIRED syscall.Errno = 224 + ERROR_VIRUS_INFECTED syscall.Errno = 225 + ERROR_VIRUS_DELETED syscall.Errno = 226 + ERROR_PIPE_LOCAL syscall.Errno = 229 + ERROR_BAD_PIPE syscall.Errno = 230 + ERROR_PIPE_BUSY syscall.Errno = 231 + ERROR_NO_DATA syscall.Errno = 232 + ERROR_PIPE_NOT_CONNECTED syscall.Errno = 233 + ERROR_MORE_DATA syscall.Errno = 234 + ERROR_NO_WORK_DONE syscall.Errno = 235 + ERROR_VC_DISCONNECTED syscall.Errno = 240 + ERROR_INVALID_EA_NAME syscall.Errno = 254 + ERROR_EA_LIST_INCONSISTENT syscall.Errno = 255 + WAIT_TIMEOUT syscall.Errno = 258 + ERROR_NO_MORE_ITEMS syscall.Errno = 259 + ERROR_CANNOT_COPY syscall.Errno = 266 + ERROR_DIRECTORY syscall.Errno = 267 + ERROR_EAS_DIDNT_FIT syscall.Errno = 275 + ERROR_EA_FILE_CORRUPT syscall.Errno = 276 + ERROR_EA_TABLE_FULL syscall.Errno = 277 + ERROR_INVALID_EA_HANDLE syscall.Errno = 278 + ERROR_EAS_NOT_SUPPORTED syscall.Errno = 282 + ERROR_NOT_OWNER syscall.Errno = 288 + ERROR_TOO_MANY_POSTS syscall.Errno = 298 + ERROR_PARTIAL_COPY syscall.Errno = 299 + ERROR_OPLOCK_NOT_GRANTED syscall.Errno = 300 + ERROR_INVALID_OPLOCK_PROTOCOL syscall.Errno = 301 + ERROR_DISK_TOO_FRAGMENTED syscall.Errno = 302 + ERROR_DELETE_PENDING syscall.Errno = 303 + ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING syscall.Errno = 304 + ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME syscall.Errno = 305 + ERROR_SECURITY_STREAM_IS_INCONSISTENT syscall.Errno = 306 + ERROR_INVALID_LOCK_RANGE syscall.Errno = 307 + ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT syscall.Errno = 308 + ERROR_NOTIFICATION_GUID_ALREADY_DEFINED syscall.Errno = 309 + ERROR_INVALID_EXCEPTION_HANDLER syscall.Errno = 310 + ERROR_DUPLICATE_PRIVILEGES syscall.Errno = 311 + ERROR_NO_RANGES_PROCESSED syscall.Errno = 312 + ERROR_NOT_ALLOWED_ON_SYSTEM_FILE syscall.Errno = 313 + ERROR_DISK_RESOURCES_EXHAUSTED syscall.Errno = 314 + ERROR_INVALID_TOKEN syscall.Errno = 315 + ERROR_DEVICE_FEATURE_NOT_SUPPORTED syscall.Errno = 316 + ERROR_MR_MID_NOT_FOUND syscall.Errno = 317 + ERROR_SCOPE_NOT_FOUND syscall.Errno = 318 + ERROR_UNDEFINED_SCOPE syscall.Errno = 319 + ERROR_INVALID_CAP syscall.Errno = 320 + ERROR_DEVICE_UNREACHABLE syscall.Errno = 321 + ERROR_DEVICE_NO_RESOURCES syscall.Errno = 322 + ERROR_DATA_CHECKSUM_ERROR syscall.Errno = 323 + ERROR_INTERMIXED_KERNEL_EA_OPERATION syscall.Errno = 324 + ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED syscall.Errno = 326 + ERROR_OFFSET_ALIGNMENT_VIOLATION syscall.Errno = 327 + ERROR_INVALID_FIELD_IN_PARAMETER_LIST syscall.Errno = 328 + ERROR_OPERATION_IN_PROGRESS syscall.Errno = 329 + ERROR_BAD_DEVICE_PATH syscall.Errno = 330 + ERROR_TOO_MANY_DESCRIPTORS syscall.Errno = 331 + ERROR_SCRUB_DATA_DISABLED syscall.Errno = 332 + ERROR_NOT_REDUNDANT_STORAGE syscall.Errno = 333 + ERROR_RESIDENT_FILE_NOT_SUPPORTED syscall.Errno = 334 + ERROR_COMPRESSED_FILE_NOT_SUPPORTED syscall.Errno = 335 + ERROR_DIRECTORY_NOT_SUPPORTED syscall.Errno = 336 + ERROR_NOT_READ_FROM_COPY syscall.Errno = 337 + ERROR_FT_WRITE_FAILURE syscall.Errno = 338 + ERROR_FT_DI_SCAN_REQUIRED syscall.Errno = 339 + ERROR_INVALID_KERNEL_INFO_VERSION syscall.Errno = 340 + ERROR_INVALID_PEP_INFO_VERSION syscall.Errno = 341 + ERROR_OBJECT_NOT_EXTERNALLY_BACKED syscall.Errno = 342 + ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN syscall.Errno = 343 + ERROR_COMPRESSION_NOT_BENEFICIAL syscall.Errno = 344 + ERROR_STORAGE_TOPOLOGY_ID_MISMATCH syscall.Errno = 345 + ERROR_BLOCKED_BY_PARENTAL_CONTROLS syscall.Errno = 346 + ERROR_BLOCK_TOO_MANY_REFERENCES syscall.Errno = 347 + ERROR_MARKED_TO_DISALLOW_WRITES syscall.Errno = 348 + ERROR_ENCLAVE_FAILURE syscall.Errno = 349 + ERROR_FAIL_NOACTION_REBOOT syscall.Errno = 350 + ERROR_FAIL_SHUTDOWN syscall.Errno = 351 + ERROR_FAIL_RESTART syscall.Errno = 352 + ERROR_MAX_SESSIONS_REACHED syscall.Errno = 353 + ERROR_NETWORK_ACCESS_DENIED_EDP syscall.Errno = 354 + ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL syscall.Errno = 355 + ERROR_EDP_POLICY_DENIES_OPERATION syscall.Errno = 356 + ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED syscall.Errno = 357 + ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT syscall.Errno = 358 + ERROR_DEVICE_IN_MAINTENANCE syscall.Errno = 359 + ERROR_NOT_SUPPORTED_ON_DAX syscall.Errno = 360 + ERROR_DAX_MAPPING_EXISTS syscall.Errno = 361 + ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING syscall.Errno = 362 + ERROR_CLOUD_FILE_METADATA_CORRUPT syscall.Errno = 363 + ERROR_CLOUD_FILE_METADATA_TOO_LARGE syscall.Errno = 364 + ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE syscall.Errno = 365 + ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH syscall.Errno = 366 + ERROR_CHILD_PROCESS_BLOCKED syscall.Errno = 367 + ERROR_STORAGE_LOST_DATA_PERSISTENCE syscall.Errno = 368 + ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE syscall.Errno = 369 + ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT syscall.Errno = 370 + ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY syscall.Errno = 371 + ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN syscall.Errno = 372 + ERROR_GDI_HANDLE_LEAK syscall.Errno = 373 + ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS syscall.Errno = 374 + ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED syscall.Errno = 375 + ERROR_NOT_A_CLOUD_FILE syscall.Errno = 376 + ERROR_CLOUD_FILE_NOT_IN_SYNC syscall.Errno = 377 + ERROR_CLOUD_FILE_ALREADY_CONNECTED syscall.Errno = 378 + ERROR_CLOUD_FILE_NOT_SUPPORTED syscall.Errno = 379 + ERROR_CLOUD_FILE_INVALID_REQUEST syscall.Errno = 380 + ERROR_CLOUD_FILE_READ_ONLY_VOLUME syscall.Errno = 381 + ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY syscall.Errno = 382 + ERROR_CLOUD_FILE_VALIDATION_FAILED syscall.Errno = 383 + ERROR_SMB1_NOT_AVAILABLE syscall.Errno = 384 + ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION syscall.Errno = 385 + ERROR_CLOUD_FILE_AUTHENTICATION_FAILED syscall.Errno = 386 + ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES syscall.Errno = 387 + ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE syscall.Errno = 388 + ERROR_CLOUD_FILE_UNSUCCESSFUL syscall.Errno = 389 + ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT syscall.Errno = 390 + ERROR_CLOUD_FILE_IN_USE syscall.Errno = 391 + ERROR_CLOUD_FILE_PINNED syscall.Errno = 392 + ERROR_CLOUD_FILE_REQUEST_ABORTED syscall.Errno = 393 + ERROR_CLOUD_FILE_PROPERTY_CORRUPT syscall.Errno = 394 + ERROR_CLOUD_FILE_ACCESS_DENIED syscall.Errno = 395 + ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS syscall.Errno = 396 + ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT syscall.Errno = 397 + ERROR_CLOUD_FILE_REQUEST_CANCELED syscall.Errno = 398 + ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED syscall.Errno = 399 + ERROR_THREAD_MODE_ALREADY_BACKGROUND syscall.Errno = 400 + ERROR_THREAD_MODE_NOT_BACKGROUND syscall.Errno = 401 + ERROR_PROCESS_MODE_ALREADY_BACKGROUND syscall.Errno = 402 + ERROR_PROCESS_MODE_NOT_BACKGROUND syscall.Errno = 403 + ERROR_CLOUD_FILE_PROVIDER_TERMINATED syscall.Errno = 404 + ERROR_NOT_A_CLOUD_SYNC_ROOT syscall.Errno = 405 + ERROR_FILE_PROTECTED_UNDER_DPL syscall.Errno = 406 + ERROR_VOLUME_NOT_CLUSTER_ALIGNED syscall.Errno = 407 + ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND syscall.Errno = 408 + ERROR_APPX_FILE_NOT_ENCRYPTED syscall.Errno = 409 + ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED syscall.Errno = 410 + ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET syscall.Errno = 411 + ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE syscall.Errno = 412 + ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER syscall.Errno = 413 + ERROR_LINUX_SUBSYSTEM_NOT_PRESENT syscall.Errno = 414 + ERROR_FT_READ_FAILURE syscall.Errno = 415 + ERROR_STORAGE_RESERVE_ID_INVALID syscall.Errno = 416 + ERROR_STORAGE_RESERVE_DOES_NOT_EXIST syscall.Errno = 417 + ERROR_STORAGE_RESERVE_ALREADY_EXISTS syscall.Errno = 418 + ERROR_STORAGE_RESERVE_NOT_EMPTY syscall.Errno = 419 + ERROR_NOT_A_DAX_VOLUME syscall.Errno = 420 + ERROR_NOT_DAX_MAPPABLE syscall.Errno = 421 + ERROR_TIME_SENSITIVE_THREAD syscall.Errno = 422 + ERROR_DPL_NOT_SUPPORTED_FOR_USER syscall.Errno = 423 + ERROR_CASE_DIFFERING_NAMES_IN_DIR syscall.Errno = 424 + ERROR_FILE_NOT_SUPPORTED syscall.Errno = 425 + ERROR_CLOUD_FILE_REQUEST_TIMEOUT syscall.Errno = 426 + ERROR_NO_TASK_QUEUE syscall.Errno = 427 + ERROR_SRC_SRV_DLL_LOAD_FAILED syscall.Errno = 428 + ERROR_NOT_SUPPORTED_WITH_BTT syscall.Errno = 429 + ERROR_ENCRYPTION_DISABLED syscall.Errno = 430 + ERROR_ENCRYPTING_METADATA_DISALLOWED syscall.Errno = 431 + ERROR_CANT_CLEAR_ENCRYPTION_FLAG syscall.Errno = 432 + ERROR_NO_SUCH_DEVICE syscall.Errno = 433 + ERROR_CAPAUTHZ_NOT_DEVUNLOCKED syscall.Errno = 450 + ERROR_CAPAUTHZ_CHANGE_TYPE syscall.Errno = 451 + ERROR_CAPAUTHZ_NOT_PROVISIONED syscall.Errno = 452 + ERROR_CAPAUTHZ_NOT_AUTHORIZED syscall.Errno = 453 + ERROR_CAPAUTHZ_NO_POLICY syscall.Errno = 454 + ERROR_CAPAUTHZ_DB_CORRUPTED syscall.Errno = 455 + ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG syscall.Errno = 456 + ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY syscall.Errno = 457 + ERROR_CAPAUTHZ_SCCD_PARSE_ERROR syscall.Errno = 458 + ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED syscall.Errno = 459 + ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH syscall.Errno = 460 + ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT syscall.Errno = 480 + ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT syscall.Errno = 481 + ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT syscall.Errno = 482 + ERROR_DEVICE_HARDWARE_ERROR syscall.Errno = 483 + ERROR_INVALID_ADDRESS syscall.Errno = 487 + ERROR_VRF_CFG_ENABLED syscall.Errno = 1183 + ERROR_PARTITION_TERMINATING syscall.Errno = 1184 + ERROR_USER_PROFILE_LOAD syscall.Errno = 500 + ERROR_ARITHMETIC_OVERFLOW syscall.Errno = 534 + ERROR_PIPE_CONNECTED syscall.Errno = 535 + ERROR_PIPE_LISTENING syscall.Errno = 536 + ERROR_VERIFIER_STOP syscall.Errno = 537 + ERROR_ABIOS_ERROR syscall.Errno = 538 + ERROR_WX86_WARNING syscall.Errno = 539 + ERROR_WX86_ERROR syscall.Errno = 540 + ERROR_TIMER_NOT_CANCELED syscall.Errno = 541 + ERROR_UNWIND syscall.Errno = 542 + ERROR_BAD_STACK syscall.Errno = 543 + ERROR_INVALID_UNWIND_TARGET syscall.Errno = 544 + ERROR_INVALID_PORT_ATTRIBUTES syscall.Errno = 545 + ERROR_PORT_MESSAGE_TOO_LONG syscall.Errno = 546 + ERROR_INVALID_QUOTA_LOWER syscall.Errno = 547 + ERROR_DEVICE_ALREADY_ATTACHED syscall.Errno = 548 + ERROR_INSTRUCTION_MISALIGNMENT syscall.Errno = 549 + ERROR_PROFILING_NOT_STARTED syscall.Errno = 550 + ERROR_PROFILING_NOT_STOPPED syscall.Errno = 551 + ERROR_COULD_NOT_INTERPRET syscall.Errno = 552 + ERROR_PROFILING_AT_LIMIT syscall.Errno = 553 + ERROR_CANT_WAIT syscall.Errno = 554 + ERROR_CANT_TERMINATE_SELF syscall.Errno = 555 + ERROR_UNEXPECTED_MM_CREATE_ERR syscall.Errno = 556 + ERROR_UNEXPECTED_MM_MAP_ERROR syscall.Errno = 557 + ERROR_UNEXPECTED_MM_EXTEND_ERR syscall.Errno = 558 + ERROR_BAD_FUNCTION_TABLE syscall.Errno = 559 + ERROR_NO_GUID_TRANSLATION syscall.Errno = 560 + ERROR_INVALID_LDT_SIZE syscall.Errno = 561 + ERROR_INVALID_LDT_OFFSET syscall.Errno = 563 + ERROR_INVALID_LDT_DESCRIPTOR syscall.Errno = 564 + ERROR_TOO_MANY_THREADS syscall.Errno = 565 + ERROR_THREAD_NOT_IN_PROCESS syscall.Errno = 566 + ERROR_PAGEFILE_QUOTA_EXCEEDED syscall.Errno = 567 + ERROR_LOGON_SERVER_CONFLICT syscall.Errno = 568 + ERROR_SYNCHRONIZATION_REQUIRED syscall.Errno = 569 + ERROR_NET_OPEN_FAILED syscall.Errno = 570 + ERROR_IO_PRIVILEGE_FAILED syscall.Errno = 571 + ERROR_CONTROL_C_EXIT syscall.Errno = 572 + ERROR_MISSING_SYSTEMFILE syscall.Errno = 573 + ERROR_UNHANDLED_EXCEPTION syscall.Errno = 574 + ERROR_APP_INIT_FAILURE syscall.Errno = 575 + ERROR_PAGEFILE_CREATE_FAILED syscall.Errno = 576 + ERROR_INVALID_IMAGE_HASH syscall.Errno = 577 + ERROR_NO_PAGEFILE syscall.Errno = 578 + ERROR_ILLEGAL_FLOAT_CONTEXT syscall.Errno = 579 + ERROR_NO_EVENT_PAIR syscall.Errno = 580 + ERROR_DOMAIN_CTRLR_CONFIG_ERROR syscall.Errno = 581 + ERROR_ILLEGAL_CHARACTER syscall.Errno = 582 + ERROR_UNDEFINED_CHARACTER syscall.Errno = 583 + ERROR_FLOPPY_VOLUME syscall.Errno = 584 + ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT syscall.Errno = 585 + ERROR_BACKUP_CONTROLLER syscall.Errno = 586 + ERROR_MUTANT_LIMIT_EXCEEDED syscall.Errno = 587 + ERROR_FS_DRIVER_REQUIRED syscall.Errno = 588 + ERROR_CANNOT_LOAD_REGISTRY_FILE syscall.Errno = 589 + ERROR_DEBUG_ATTACH_FAILED syscall.Errno = 590 + ERROR_SYSTEM_PROCESS_TERMINATED syscall.Errno = 591 + ERROR_DATA_NOT_ACCEPTED syscall.Errno = 592 + ERROR_VDM_HARD_ERROR syscall.Errno = 593 + ERROR_DRIVER_CANCEL_TIMEOUT syscall.Errno = 594 + ERROR_REPLY_MESSAGE_MISMATCH syscall.Errno = 595 + ERROR_LOST_WRITEBEHIND_DATA syscall.Errno = 596 + ERROR_CLIENT_SERVER_PARAMETERS_INVALID syscall.Errno = 597 + ERROR_NOT_TINY_STREAM syscall.Errno = 598 + ERROR_STACK_OVERFLOW_READ syscall.Errno = 599 + ERROR_CONVERT_TO_LARGE syscall.Errno = 600 + ERROR_FOUND_OUT_OF_SCOPE syscall.Errno = 601 + ERROR_ALLOCATE_BUCKET syscall.Errno = 602 + ERROR_MARSHALL_OVERFLOW syscall.Errno = 603 + ERROR_INVALID_VARIANT syscall.Errno = 604 + ERROR_BAD_COMPRESSION_BUFFER syscall.Errno = 605 + ERROR_AUDIT_FAILED syscall.Errno = 606 + ERROR_TIMER_RESOLUTION_NOT_SET syscall.Errno = 607 + ERROR_INSUFFICIENT_LOGON_INFO syscall.Errno = 608 + ERROR_BAD_DLL_ENTRYPOINT syscall.Errno = 609 + ERROR_BAD_SERVICE_ENTRYPOINT syscall.Errno = 610 + ERROR_IP_ADDRESS_CONFLICT1 syscall.Errno = 611 + ERROR_IP_ADDRESS_CONFLICT2 syscall.Errno = 612 + ERROR_REGISTRY_QUOTA_LIMIT syscall.Errno = 613 + ERROR_NO_CALLBACK_ACTIVE syscall.Errno = 614 + ERROR_PWD_TOO_SHORT syscall.Errno = 615 + ERROR_PWD_TOO_RECENT syscall.Errno = 616 + ERROR_PWD_HISTORY_CONFLICT syscall.Errno = 617 + ERROR_UNSUPPORTED_COMPRESSION syscall.Errno = 618 + ERROR_INVALID_HW_PROFILE syscall.Errno = 619 + ERROR_INVALID_PLUGPLAY_DEVICE_PATH syscall.Errno = 620 + ERROR_QUOTA_LIST_INCONSISTENT syscall.Errno = 621 + ERROR_EVALUATION_EXPIRATION syscall.Errno = 622 + ERROR_ILLEGAL_DLL_RELOCATION syscall.Errno = 623 + ERROR_DLL_INIT_FAILED_LOGOFF syscall.Errno = 624 + ERROR_VALIDATE_CONTINUE syscall.Errno = 625 + ERROR_NO_MORE_MATCHES syscall.Errno = 626 + ERROR_RANGE_LIST_CONFLICT syscall.Errno = 627 + ERROR_SERVER_SID_MISMATCH syscall.Errno = 628 + ERROR_CANT_ENABLE_DENY_ONLY syscall.Errno = 629 + ERROR_FLOAT_MULTIPLE_FAULTS syscall.Errno = 630 + ERROR_FLOAT_MULTIPLE_TRAPS syscall.Errno = 631 + ERROR_NOINTERFACE syscall.Errno = 632 + ERROR_DRIVER_FAILED_SLEEP syscall.Errno = 633 + ERROR_CORRUPT_SYSTEM_FILE syscall.Errno = 634 + ERROR_COMMITMENT_MINIMUM syscall.Errno = 635 + ERROR_PNP_RESTART_ENUMERATION syscall.Errno = 636 + ERROR_SYSTEM_IMAGE_BAD_SIGNATURE syscall.Errno = 637 + ERROR_PNP_REBOOT_REQUIRED syscall.Errno = 638 + ERROR_INSUFFICIENT_POWER syscall.Errno = 639 + ERROR_MULTIPLE_FAULT_VIOLATION syscall.Errno = 640 + ERROR_SYSTEM_SHUTDOWN syscall.Errno = 641 + ERROR_PORT_NOT_SET syscall.Errno = 642 + ERROR_DS_VERSION_CHECK_FAILURE syscall.Errno = 643 + ERROR_RANGE_NOT_FOUND syscall.Errno = 644 + ERROR_NOT_SAFE_MODE_DRIVER syscall.Errno = 646 + ERROR_FAILED_DRIVER_ENTRY syscall.Errno = 647 + ERROR_DEVICE_ENUMERATION_ERROR syscall.Errno = 648 + ERROR_MOUNT_POINT_NOT_RESOLVED syscall.Errno = 649 + ERROR_INVALID_DEVICE_OBJECT_PARAMETER syscall.Errno = 650 + ERROR_MCA_OCCURED syscall.Errno = 651 + ERROR_DRIVER_DATABASE_ERROR syscall.Errno = 652 + ERROR_SYSTEM_HIVE_TOO_LARGE syscall.Errno = 653 + ERROR_DRIVER_FAILED_PRIOR_UNLOAD syscall.Errno = 654 + ERROR_VOLSNAP_PREPARE_HIBERNATE syscall.Errno = 655 + ERROR_HIBERNATION_FAILURE syscall.Errno = 656 + ERROR_PWD_TOO_LONG syscall.Errno = 657 + ERROR_FILE_SYSTEM_LIMITATION syscall.Errno = 665 + ERROR_ASSERTION_FAILURE syscall.Errno = 668 + ERROR_ACPI_ERROR syscall.Errno = 669 + ERROR_WOW_ASSERTION syscall.Errno = 670 + ERROR_PNP_BAD_MPS_TABLE syscall.Errno = 671 + ERROR_PNP_TRANSLATION_FAILED syscall.Errno = 672 + ERROR_PNP_IRQ_TRANSLATION_FAILED syscall.Errno = 673 + ERROR_PNP_INVALID_ID syscall.Errno = 674 + ERROR_WAKE_SYSTEM_DEBUGGER syscall.Errno = 675 + ERROR_HANDLES_CLOSED syscall.Errno = 676 + ERROR_EXTRANEOUS_INFORMATION syscall.Errno = 677 + ERROR_RXACT_COMMIT_NECESSARY syscall.Errno = 678 + ERROR_MEDIA_CHECK syscall.Errno = 679 + ERROR_GUID_SUBSTITUTION_MADE syscall.Errno = 680 + ERROR_STOPPED_ON_SYMLINK syscall.Errno = 681 + ERROR_LONGJUMP syscall.Errno = 682 + ERROR_PLUGPLAY_QUERY_VETOED syscall.Errno = 683 + ERROR_UNWIND_CONSOLIDATE syscall.Errno = 684 + ERROR_REGISTRY_HIVE_RECOVERED syscall.Errno = 685 + ERROR_DLL_MIGHT_BE_INSECURE syscall.Errno = 686 + ERROR_DLL_MIGHT_BE_INCOMPATIBLE syscall.Errno = 687 + ERROR_DBG_EXCEPTION_NOT_HANDLED syscall.Errno = 688 + ERROR_DBG_REPLY_LATER syscall.Errno = 689 + ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE syscall.Errno = 690 + ERROR_DBG_TERMINATE_THREAD syscall.Errno = 691 + ERROR_DBG_TERMINATE_PROCESS syscall.Errno = 692 + ERROR_DBG_CONTROL_C syscall.Errno = 693 + ERROR_DBG_PRINTEXCEPTION_C syscall.Errno = 694 + ERROR_DBG_RIPEXCEPTION syscall.Errno = 695 + ERROR_DBG_CONTROL_BREAK syscall.Errno = 696 + ERROR_DBG_COMMAND_EXCEPTION syscall.Errno = 697 + ERROR_OBJECT_NAME_EXISTS syscall.Errno = 698 + ERROR_THREAD_WAS_SUSPENDED syscall.Errno = 699 + ERROR_IMAGE_NOT_AT_BASE syscall.Errno = 700 + ERROR_RXACT_STATE_CREATED syscall.Errno = 701 + ERROR_SEGMENT_NOTIFICATION syscall.Errno = 702 + ERROR_BAD_CURRENT_DIRECTORY syscall.Errno = 703 + ERROR_FT_READ_RECOVERY_FROM_BACKUP syscall.Errno = 704 + ERROR_FT_WRITE_RECOVERY syscall.Errno = 705 + ERROR_IMAGE_MACHINE_TYPE_MISMATCH syscall.Errno = 706 + ERROR_RECEIVE_PARTIAL syscall.Errno = 707 + ERROR_RECEIVE_EXPEDITED syscall.Errno = 708 + ERROR_RECEIVE_PARTIAL_EXPEDITED syscall.Errno = 709 + ERROR_EVENT_DONE syscall.Errno = 710 + ERROR_EVENT_PENDING syscall.Errno = 711 + ERROR_CHECKING_FILE_SYSTEM syscall.Errno = 712 + ERROR_FATAL_APP_EXIT syscall.Errno = 713 + ERROR_PREDEFINED_HANDLE syscall.Errno = 714 + ERROR_WAS_UNLOCKED syscall.Errno = 715 + ERROR_SERVICE_NOTIFICATION syscall.Errno = 716 + ERROR_WAS_LOCKED syscall.Errno = 717 + ERROR_LOG_HARD_ERROR syscall.Errno = 718 + ERROR_ALREADY_WIN32 syscall.Errno = 719 + ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE syscall.Errno = 720 + ERROR_NO_YIELD_PERFORMED syscall.Errno = 721 + ERROR_TIMER_RESUME_IGNORED syscall.Errno = 722 + ERROR_ARBITRATION_UNHANDLED syscall.Errno = 723 + ERROR_CARDBUS_NOT_SUPPORTED syscall.Errno = 724 + ERROR_MP_PROCESSOR_MISMATCH syscall.Errno = 725 + ERROR_HIBERNATED syscall.Errno = 726 + ERROR_RESUME_HIBERNATION syscall.Errno = 727 + ERROR_FIRMWARE_UPDATED syscall.Errno = 728 + ERROR_DRIVERS_LEAKING_LOCKED_PAGES syscall.Errno = 729 + ERROR_WAKE_SYSTEM syscall.Errno = 730 + ERROR_WAIT_1 syscall.Errno = 731 + ERROR_WAIT_2 syscall.Errno = 732 + ERROR_WAIT_3 syscall.Errno = 733 + ERROR_WAIT_63 syscall.Errno = 734 + ERROR_ABANDONED_WAIT_0 syscall.Errno = 735 + ERROR_ABANDONED_WAIT_63 syscall.Errno = 736 + ERROR_USER_APC syscall.Errno = 737 + ERROR_KERNEL_APC syscall.Errno = 738 + ERROR_ALERTED syscall.Errno = 739 + ERROR_ELEVATION_REQUIRED syscall.Errno = 740 + ERROR_REPARSE syscall.Errno = 741 + ERROR_OPLOCK_BREAK_IN_PROGRESS syscall.Errno = 742 + ERROR_VOLUME_MOUNTED syscall.Errno = 743 + ERROR_RXACT_COMMITTED syscall.Errno = 744 + ERROR_NOTIFY_CLEANUP syscall.Errno = 745 + ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED syscall.Errno = 746 + ERROR_PAGE_FAULT_TRANSITION syscall.Errno = 747 + ERROR_PAGE_FAULT_DEMAND_ZERO syscall.Errno = 748 + ERROR_PAGE_FAULT_COPY_ON_WRITE syscall.Errno = 749 + ERROR_PAGE_FAULT_GUARD_PAGE syscall.Errno = 750 + ERROR_PAGE_FAULT_PAGING_FILE syscall.Errno = 751 + ERROR_CACHE_PAGE_LOCKED syscall.Errno = 752 + ERROR_CRASH_DUMP syscall.Errno = 753 + ERROR_BUFFER_ALL_ZEROS syscall.Errno = 754 + ERROR_REPARSE_OBJECT syscall.Errno = 755 + ERROR_RESOURCE_REQUIREMENTS_CHANGED syscall.Errno = 756 + ERROR_TRANSLATION_COMPLETE syscall.Errno = 757 + ERROR_NOTHING_TO_TERMINATE syscall.Errno = 758 + ERROR_PROCESS_NOT_IN_JOB syscall.Errno = 759 + ERROR_PROCESS_IN_JOB syscall.Errno = 760 + ERROR_VOLSNAP_HIBERNATE_READY syscall.Errno = 761 + ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY syscall.Errno = 762 + ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED syscall.Errno = 763 + ERROR_INTERRUPT_STILL_CONNECTED syscall.Errno = 764 + ERROR_WAIT_FOR_OPLOCK syscall.Errno = 765 + ERROR_DBG_EXCEPTION_HANDLED syscall.Errno = 766 + ERROR_DBG_CONTINUE syscall.Errno = 767 + ERROR_CALLBACK_POP_STACK syscall.Errno = 768 + ERROR_COMPRESSION_DISABLED syscall.Errno = 769 + ERROR_CANTFETCHBACKWARDS syscall.Errno = 770 + ERROR_CANTSCROLLBACKWARDS syscall.Errno = 771 + ERROR_ROWSNOTRELEASED syscall.Errno = 772 + ERROR_BAD_ACCESSOR_FLAGS syscall.Errno = 773 + ERROR_ERRORS_ENCOUNTERED syscall.Errno = 774 + ERROR_NOT_CAPABLE syscall.Errno = 775 + ERROR_REQUEST_OUT_OF_SEQUENCE syscall.Errno = 776 + ERROR_VERSION_PARSE_ERROR syscall.Errno = 777 + ERROR_BADSTARTPOSITION syscall.Errno = 778 + ERROR_MEMORY_HARDWARE syscall.Errno = 779 + ERROR_DISK_REPAIR_DISABLED syscall.Errno = 780 + ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE syscall.Errno = 781 + ERROR_SYSTEM_POWERSTATE_TRANSITION syscall.Errno = 782 + ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION syscall.Errno = 783 + ERROR_MCA_EXCEPTION syscall.Errno = 784 + ERROR_ACCESS_AUDIT_BY_POLICY syscall.Errno = 785 + ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY syscall.Errno = 786 + ERROR_ABANDON_HIBERFILE syscall.Errno = 787 + ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED syscall.Errno = 788 + ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR syscall.Errno = 789 + ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR syscall.Errno = 790 + ERROR_BAD_MCFG_TABLE syscall.Errno = 791 + ERROR_DISK_REPAIR_REDIRECTED syscall.Errno = 792 + ERROR_DISK_REPAIR_UNSUCCESSFUL syscall.Errno = 793 + ERROR_CORRUPT_LOG_OVERFULL syscall.Errno = 794 + ERROR_CORRUPT_LOG_CORRUPTED syscall.Errno = 795 + ERROR_CORRUPT_LOG_UNAVAILABLE syscall.Errno = 796 + ERROR_CORRUPT_LOG_DELETED_FULL syscall.Errno = 797 + ERROR_CORRUPT_LOG_CLEARED syscall.Errno = 798 + ERROR_ORPHAN_NAME_EXHAUSTED syscall.Errno = 799 + ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE syscall.Errno = 800 + ERROR_CANNOT_GRANT_REQUESTED_OPLOCK syscall.Errno = 801 + ERROR_CANNOT_BREAK_OPLOCK syscall.Errno = 802 + ERROR_OPLOCK_HANDLE_CLOSED syscall.Errno = 803 + ERROR_NO_ACE_CONDITION syscall.Errno = 804 + ERROR_INVALID_ACE_CONDITION syscall.Errno = 805 + ERROR_FILE_HANDLE_REVOKED syscall.Errno = 806 + ERROR_IMAGE_AT_DIFFERENT_BASE syscall.Errno = 807 + ERROR_ENCRYPTED_IO_NOT_POSSIBLE syscall.Errno = 808 + ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS syscall.Errno = 809 + ERROR_QUOTA_ACTIVITY syscall.Errno = 810 + ERROR_HANDLE_REVOKED syscall.Errno = 811 + ERROR_CALLBACK_INVOKE_INLINE syscall.Errno = 812 + ERROR_CPU_SET_INVALID syscall.Errno = 813 + ERROR_ENCLAVE_NOT_TERMINATED syscall.Errno = 814 + ERROR_ENCLAVE_VIOLATION syscall.Errno = 815 + ERROR_EA_ACCESS_DENIED syscall.Errno = 994 + ERROR_OPERATION_ABORTED syscall.Errno = 995 + ERROR_IO_INCOMPLETE syscall.Errno = 996 + ERROR_IO_PENDING syscall.Errno = 997 + ERROR_NOACCESS syscall.Errno = 998 + ERROR_SWAPERROR syscall.Errno = 999 + ERROR_STACK_OVERFLOW syscall.Errno = 1001 + ERROR_INVALID_MESSAGE syscall.Errno = 1002 + ERROR_CAN_NOT_COMPLETE syscall.Errno = 1003 + ERROR_INVALID_FLAGS syscall.Errno = 1004 + ERROR_UNRECOGNIZED_VOLUME syscall.Errno = 1005 + ERROR_FILE_INVALID syscall.Errno = 1006 + ERROR_FULLSCREEN_MODE syscall.Errno = 1007 + ERROR_NO_TOKEN syscall.Errno = 1008 + ERROR_BADDB syscall.Errno = 1009 + ERROR_BADKEY syscall.Errno = 1010 + ERROR_CANTOPEN syscall.Errno = 1011 + ERROR_CANTREAD syscall.Errno = 1012 + ERROR_CANTWRITE syscall.Errno = 1013 + ERROR_REGISTRY_RECOVERED syscall.Errno = 1014 + ERROR_REGISTRY_CORRUPT syscall.Errno = 1015 + ERROR_REGISTRY_IO_FAILED syscall.Errno = 1016 + ERROR_NOT_REGISTRY_FILE syscall.Errno = 1017 + ERROR_KEY_DELETED syscall.Errno = 1018 + ERROR_NO_LOG_SPACE syscall.Errno = 1019 + ERROR_KEY_HAS_CHILDREN syscall.Errno = 1020 + ERROR_CHILD_MUST_BE_VOLATILE syscall.Errno = 1021 + ERROR_NOTIFY_ENUM_DIR syscall.Errno = 1022 + ERROR_DEPENDENT_SERVICES_RUNNING syscall.Errno = 1051 + ERROR_INVALID_SERVICE_CONTROL syscall.Errno = 1052 + ERROR_SERVICE_REQUEST_TIMEOUT syscall.Errno = 1053 + ERROR_SERVICE_NO_THREAD syscall.Errno = 1054 + ERROR_SERVICE_DATABASE_LOCKED syscall.Errno = 1055 + ERROR_SERVICE_ALREADY_RUNNING syscall.Errno = 1056 + ERROR_INVALID_SERVICE_ACCOUNT syscall.Errno = 1057 + ERROR_SERVICE_DISABLED syscall.Errno = 1058 + ERROR_CIRCULAR_DEPENDENCY syscall.Errno = 1059 + ERROR_SERVICE_DOES_NOT_EXIST syscall.Errno = 1060 + ERROR_SERVICE_CANNOT_ACCEPT_CTRL syscall.Errno = 1061 + ERROR_SERVICE_NOT_ACTIVE syscall.Errno = 1062 + ERROR_FAILED_SERVICE_CONTROLLER_CONNECT syscall.Errno = 1063 + ERROR_EXCEPTION_IN_SERVICE syscall.Errno = 1064 + ERROR_DATABASE_DOES_NOT_EXIST syscall.Errno = 1065 + ERROR_SERVICE_SPECIFIC_ERROR syscall.Errno = 1066 + ERROR_PROCESS_ABORTED syscall.Errno = 1067 + ERROR_SERVICE_DEPENDENCY_FAIL syscall.Errno = 1068 + ERROR_SERVICE_LOGON_FAILED syscall.Errno = 1069 + ERROR_SERVICE_START_HANG syscall.Errno = 1070 + ERROR_INVALID_SERVICE_LOCK syscall.Errno = 1071 + ERROR_SERVICE_MARKED_FOR_DELETE syscall.Errno = 1072 + ERROR_SERVICE_EXISTS syscall.Errno = 1073 + ERROR_ALREADY_RUNNING_LKG syscall.Errno = 1074 + ERROR_SERVICE_DEPENDENCY_DELETED syscall.Errno = 1075 + ERROR_BOOT_ALREADY_ACCEPTED syscall.Errno = 1076 + ERROR_SERVICE_NEVER_STARTED syscall.Errno = 1077 + ERROR_DUPLICATE_SERVICE_NAME syscall.Errno = 1078 + ERROR_DIFFERENT_SERVICE_ACCOUNT syscall.Errno = 1079 + ERROR_CANNOT_DETECT_DRIVER_FAILURE syscall.Errno = 1080 + ERROR_CANNOT_DETECT_PROCESS_ABORT syscall.Errno = 1081 + ERROR_NO_RECOVERY_PROGRAM syscall.Errno = 1082 + ERROR_SERVICE_NOT_IN_EXE syscall.Errno = 1083 + ERROR_NOT_SAFEBOOT_SERVICE syscall.Errno = 1084 + ERROR_END_OF_MEDIA syscall.Errno = 1100 + ERROR_FILEMARK_DETECTED syscall.Errno = 1101 + ERROR_BEGINNING_OF_MEDIA syscall.Errno = 1102 + ERROR_SETMARK_DETECTED syscall.Errno = 1103 + ERROR_NO_DATA_DETECTED syscall.Errno = 1104 + ERROR_PARTITION_FAILURE syscall.Errno = 1105 + ERROR_INVALID_BLOCK_LENGTH syscall.Errno = 1106 + ERROR_DEVICE_NOT_PARTITIONED syscall.Errno = 1107 + ERROR_UNABLE_TO_LOCK_MEDIA syscall.Errno = 1108 + ERROR_UNABLE_TO_UNLOAD_MEDIA syscall.Errno = 1109 + ERROR_MEDIA_CHANGED syscall.Errno = 1110 + ERROR_BUS_RESET syscall.Errno = 1111 + ERROR_NO_MEDIA_IN_DRIVE syscall.Errno = 1112 + ERROR_NO_UNICODE_TRANSLATION syscall.Errno = 1113 + ERROR_DLL_INIT_FAILED syscall.Errno = 1114 + ERROR_SHUTDOWN_IN_PROGRESS syscall.Errno = 1115 + ERROR_NO_SHUTDOWN_IN_PROGRESS syscall.Errno = 1116 + ERROR_IO_DEVICE syscall.Errno = 1117 + ERROR_SERIAL_NO_DEVICE syscall.Errno = 1118 + ERROR_IRQ_BUSY syscall.Errno = 1119 + ERROR_MORE_WRITES syscall.Errno = 1120 + ERROR_COUNTER_TIMEOUT syscall.Errno = 1121 + ERROR_FLOPPY_ID_MARK_NOT_FOUND syscall.Errno = 1122 + ERROR_FLOPPY_WRONG_CYLINDER syscall.Errno = 1123 + ERROR_FLOPPY_UNKNOWN_ERROR syscall.Errno = 1124 + ERROR_FLOPPY_BAD_REGISTERS syscall.Errno = 1125 + ERROR_DISK_RECALIBRATE_FAILED syscall.Errno = 1126 + ERROR_DISK_OPERATION_FAILED syscall.Errno = 1127 + ERROR_DISK_RESET_FAILED syscall.Errno = 1128 + ERROR_EOM_OVERFLOW syscall.Errno = 1129 + ERROR_NOT_ENOUGH_SERVER_MEMORY syscall.Errno = 1130 + ERROR_POSSIBLE_DEADLOCK syscall.Errno = 1131 + ERROR_MAPPED_ALIGNMENT syscall.Errno = 1132 + ERROR_SET_POWER_STATE_VETOED syscall.Errno = 1140 + ERROR_SET_POWER_STATE_FAILED syscall.Errno = 1141 + ERROR_TOO_MANY_LINKS syscall.Errno = 1142 + ERROR_OLD_WIN_VERSION syscall.Errno = 1150 + ERROR_APP_WRONG_OS syscall.Errno = 1151 + ERROR_SINGLE_INSTANCE_APP syscall.Errno = 1152 + ERROR_RMODE_APP syscall.Errno = 1153 + ERROR_INVALID_DLL syscall.Errno = 1154 + ERROR_NO_ASSOCIATION syscall.Errno = 1155 + ERROR_DDE_FAIL syscall.Errno = 1156 + ERROR_DLL_NOT_FOUND syscall.Errno = 1157 + ERROR_NO_MORE_USER_HANDLES syscall.Errno = 1158 + ERROR_MESSAGE_SYNC_ONLY syscall.Errno = 1159 + ERROR_SOURCE_ELEMENT_EMPTY syscall.Errno = 1160 + ERROR_DESTINATION_ELEMENT_FULL syscall.Errno = 1161 + ERROR_ILLEGAL_ELEMENT_ADDRESS syscall.Errno = 1162 + ERROR_MAGAZINE_NOT_PRESENT syscall.Errno = 1163 + ERROR_DEVICE_REINITIALIZATION_NEEDED syscall.Errno = 1164 + ERROR_DEVICE_REQUIRES_CLEANING syscall.Errno = 1165 + ERROR_DEVICE_DOOR_OPEN syscall.Errno = 1166 + ERROR_DEVICE_NOT_CONNECTED syscall.Errno = 1167 + ERROR_NOT_FOUND syscall.Errno = 1168 + ERROR_NO_MATCH syscall.Errno = 1169 + ERROR_SET_NOT_FOUND syscall.Errno = 1170 + ERROR_POINT_NOT_FOUND syscall.Errno = 1171 + ERROR_NO_TRACKING_SERVICE syscall.Errno = 1172 + ERROR_NO_VOLUME_ID syscall.Errno = 1173 + ERROR_UNABLE_TO_REMOVE_REPLACED syscall.Errno = 1175 + ERROR_UNABLE_TO_MOVE_REPLACEMENT syscall.Errno = 1176 + ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 syscall.Errno = 1177 + ERROR_JOURNAL_DELETE_IN_PROGRESS syscall.Errno = 1178 + ERROR_JOURNAL_NOT_ACTIVE syscall.Errno = 1179 + ERROR_POTENTIAL_FILE_FOUND syscall.Errno = 1180 + ERROR_JOURNAL_ENTRY_DELETED syscall.Errno = 1181 + ERROR_SHUTDOWN_IS_SCHEDULED syscall.Errno = 1190 + ERROR_SHUTDOWN_USERS_LOGGED_ON syscall.Errno = 1191 + ERROR_BAD_DEVICE syscall.Errno = 1200 + ERROR_CONNECTION_UNAVAIL syscall.Errno = 1201 + ERROR_DEVICE_ALREADY_REMEMBERED syscall.Errno = 1202 + ERROR_NO_NET_OR_BAD_PATH syscall.Errno = 1203 + ERROR_BAD_PROVIDER syscall.Errno = 1204 + ERROR_CANNOT_OPEN_PROFILE syscall.Errno = 1205 + ERROR_BAD_PROFILE syscall.Errno = 1206 + ERROR_NOT_CONTAINER syscall.Errno = 1207 + ERROR_EXTENDED_ERROR syscall.Errno = 1208 + ERROR_INVALID_GROUPNAME syscall.Errno = 1209 + ERROR_INVALID_COMPUTERNAME syscall.Errno = 1210 + ERROR_INVALID_EVENTNAME syscall.Errno = 1211 + ERROR_INVALID_DOMAINNAME syscall.Errno = 1212 + ERROR_INVALID_SERVICENAME syscall.Errno = 1213 + ERROR_INVALID_NETNAME syscall.Errno = 1214 + ERROR_INVALID_SHARENAME syscall.Errno = 1215 + ERROR_INVALID_PASSWORDNAME syscall.Errno = 1216 + ERROR_INVALID_MESSAGENAME syscall.Errno = 1217 + ERROR_INVALID_MESSAGEDEST syscall.Errno = 1218 + ERROR_SESSION_CREDENTIAL_CONFLICT syscall.Errno = 1219 + ERROR_REMOTE_SESSION_LIMIT_EXCEEDED syscall.Errno = 1220 + ERROR_DUP_DOMAINNAME syscall.Errno = 1221 + ERROR_NO_NETWORK syscall.Errno = 1222 + ERROR_CANCELLED syscall.Errno = 1223 + ERROR_USER_MAPPED_FILE syscall.Errno = 1224 + ERROR_CONNECTION_REFUSED syscall.Errno = 1225 + ERROR_GRACEFUL_DISCONNECT syscall.Errno = 1226 + ERROR_ADDRESS_ALREADY_ASSOCIATED syscall.Errno = 1227 + ERROR_ADDRESS_NOT_ASSOCIATED syscall.Errno = 1228 + ERROR_CONNECTION_INVALID syscall.Errno = 1229 + ERROR_CONNECTION_ACTIVE syscall.Errno = 1230 + ERROR_NETWORK_UNREACHABLE syscall.Errno = 1231 + ERROR_HOST_UNREACHABLE syscall.Errno = 1232 + ERROR_PROTOCOL_UNREACHABLE syscall.Errno = 1233 + ERROR_PORT_UNREACHABLE syscall.Errno = 1234 + ERROR_REQUEST_ABORTED syscall.Errno = 1235 + ERROR_CONNECTION_ABORTED syscall.Errno = 1236 + ERROR_RETRY syscall.Errno = 1237 + ERROR_CONNECTION_COUNT_LIMIT syscall.Errno = 1238 + ERROR_LOGIN_TIME_RESTRICTION syscall.Errno = 1239 + ERROR_LOGIN_WKSTA_RESTRICTION syscall.Errno = 1240 + ERROR_INCORRECT_ADDRESS syscall.Errno = 1241 + ERROR_ALREADY_REGISTERED syscall.Errno = 1242 + ERROR_SERVICE_NOT_FOUND syscall.Errno = 1243 + ERROR_NOT_AUTHENTICATED syscall.Errno = 1244 + ERROR_NOT_LOGGED_ON syscall.Errno = 1245 + ERROR_CONTINUE syscall.Errno = 1246 + ERROR_ALREADY_INITIALIZED syscall.Errno = 1247 + ERROR_NO_MORE_DEVICES syscall.Errno = 1248 + ERROR_NO_SUCH_SITE syscall.Errno = 1249 + ERROR_DOMAIN_CONTROLLER_EXISTS syscall.Errno = 1250 + ERROR_ONLY_IF_CONNECTED syscall.Errno = 1251 + ERROR_OVERRIDE_NOCHANGES syscall.Errno = 1252 + ERROR_BAD_USER_PROFILE syscall.Errno = 1253 + ERROR_NOT_SUPPORTED_ON_SBS syscall.Errno = 1254 + ERROR_SERVER_SHUTDOWN_IN_PROGRESS syscall.Errno = 1255 + ERROR_HOST_DOWN syscall.Errno = 1256 + ERROR_NON_ACCOUNT_SID syscall.Errno = 1257 + ERROR_NON_DOMAIN_SID syscall.Errno = 1258 + ERROR_APPHELP_BLOCK syscall.Errno = 1259 + ERROR_ACCESS_DISABLED_BY_POLICY syscall.Errno = 1260 + ERROR_REG_NAT_CONSUMPTION syscall.Errno = 1261 + ERROR_CSCSHARE_OFFLINE syscall.Errno = 1262 + ERROR_PKINIT_FAILURE syscall.Errno = 1263 + ERROR_SMARTCARD_SUBSYSTEM_FAILURE syscall.Errno = 1264 + ERROR_DOWNGRADE_DETECTED syscall.Errno = 1265 + ERROR_MACHINE_LOCKED syscall.Errno = 1271 + ERROR_SMB_GUEST_LOGON_BLOCKED syscall.Errno = 1272 + ERROR_CALLBACK_SUPPLIED_INVALID_DATA syscall.Errno = 1273 + ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED syscall.Errno = 1274 + ERROR_DRIVER_BLOCKED syscall.Errno = 1275 + ERROR_INVALID_IMPORT_OF_NON_DLL syscall.Errno = 1276 + ERROR_ACCESS_DISABLED_WEBBLADE syscall.Errno = 1277 + ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER syscall.Errno = 1278 + ERROR_RECOVERY_FAILURE syscall.Errno = 1279 + ERROR_ALREADY_FIBER syscall.Errno = 1280 + ERROR_ALREADY_THREAD syscall.Errno = 1281 + ERROR_STACK_BUFFER_OVERRUN syscall.Errno = 1282 + ERROR_PARAMETER_QUOTA_EXCEEDED syscall.Errno = 1283 + ERROR_DEBUGGER_INACTIVE syscall.Errno = 1284 + ERROR_DELAY_LOAD_FAILED syscall.Errno = 1285 + ERROR_VDM_DISALLOWED syscall.Errno = 1286 + ERROR_UNIDENTIFIED_ERROR syscall.Errno = 1287 + ERROR_INVALID_CRUNTIME_PARAMETER syscall.Errno = 1288 + ERROR_BEYOND_VDL syscall.Errno = 1289 + ERROR_INCOMPATIBLE_SERVICE_SID_TYPE syscall.Errno = 1290 + ERROR_DRIVER_PROCESS_TERMINATED syscall.Errno = 1291 + ERROR_IMPLEMENTATION_LIMIT syscall.Errno = 1292 + ERROR_PROCESS_IS_PROTECTED syscall.Errno = 1293 + ERROR_SERVICE_NOTIFY_CLIENT_LAGGING syscall.Errno = 1294 + ERROR_DISK_QUOTA_EXCEEDED syscall.Errno = 1295 + ERROR_CONTENT_BLOCKED syscall.Errno = 1296 + ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE syscall.Errno = 1297 + ERROR_APP_HANG syscall.Errno = 1298 + ERROR_INVALID_LABEL syscall.Errno = 1299 + ERROR_NOT_ALL_ASSIGNED syscall.Errno = 1300 + ERROR_SOME_NOT_MAPPED syscall.Errno = 1301 + ERROR_NO_QUOTAS_FOR_ACCOUNT syscall.Errno = 1302 + ERROR_LOCAL_USER_SESSION_KEY syscall.Errno = 1303 + ERROR_NULL_LM_PASSWORD syscall.Errno = 1304 + ERROR_UNKNOWN_REVISION syscall.Errno = 1305 + ERROR_REVISION_MISMATCH syscall.Errno = 1306 + ERROR_INVALID_OWNER syscall.Errno = 1307 + ERROR_INVALID_PRIMARY_GROUP syscall.Errno = 1308 + ERROR_NO_IMPERSONATION_TOKEN syscall.Errno = 1309 + ERROR_CANT_DISABLE_MANDATORY syscall.Errno = 1310 + ERROR_NO_LOGON_SERVERS syscall.Errno = 1311 + ERROR_NO_SUCH_LOGON_SESSION syscall.Errno = 1312 + ERROR_NO_SUCH_PRIVILEGE syscall.Errno = 1313 + ERROR_PRIVILEGE_NOT_HELD syscall.Errno = 1314 + ERROR_INVALID_ACCOUNT_NAME syscall.Errno = 1315 + ERROR_USER_EXISTS syscall.Errno = 1316 + ERROR_NO_SUCH_USER syscall.Errno = 1317 + ERROR_GROUP_EXISTS syscall.Errno = 1318 + ERROR_NO_SUCH_GROUP syscall.Errno = 1319 + ERROR_MEMBER_IN_GROUP syscall.Errno = 1320 + ERROR_MEMBER_NOT_IN_GROUP syscall.Errno = 1321 + ERROR_LAST_ADMIN syscall.Errno = 1322 + ERROR_WRONG_PASSWORD syscall.Errno = 1323 + ERROR_ILL_FORMED_PASSWORD syscall.Errno = 1324 + ERROR_PASSWORD_RESTRICTION syscall.Errno = 1325 + ERROR_LOGON_FAILURE syscall.Errno = 1326 + ERROR_ACCOUNT_RESTRICTION syscall.Errno = 1327 + ERROR_INVALID_LOGON_HOURS syscall.Errno = 1328 + ERROR_INVALID_WORKSTATION syscall.Errno = 1329 + ERROR_PASSWORD_EXPIRED syscall.Errno = 1330 + ERROR_ACCOUNT_DISABLED syscall.Errno = 1331 + ERROR_NONE_MAPPED syscall.Errno = 1332 + ERROR_TOO_MANY_LUIDS_REQUESTED syscall.Errno = 1333 + ERROR_LUIDS_EXHAUSTED syscall.Errno = 1334 + ERROR_INVALID_SUB_AUTHORITY syscall.Errno = 1335 + ERROR_INVALID_ACL syscall.Errno = 1336 + ERROR_INVALID_SID syscall.Errno = 1337 + ERROR_INVALID_SECURITY_DESCR syscall.Errno = 1338 + ERROR_BAD_INHERITANCE_ACL syscall.Errno = 1340 + ERROR_SERVER_DISABLED syscall.Errno = 1341 + ERROR_SERVER_NOT_DISABLED syscall.Errno = 1342 + ERROR_INVALID_ID_AUTHORITY syscall.Errno = 1343 + ERROR_ALLOTTED_SPACE_EXCEEDED syscall.Errno = 1344 + ERROR_INVALID_GROUP_ATTRIBUTES syscall.Errno = 1345 + ERROR_BAD_IMPERSONATION_LEVEL syscall.Errno = 1346 + ERROR_CANT_OPEN_ANONYMOUS syscall.Errno = 1347 + ERROR_BAD_VALIDATION_CLASS syscall.Errno = 1348 + ERROR_BAD_TOKEN_TYPE syscall.Errno = 1349 + ERROR_NO_SECURITY_ON_OBJECT syscall.Errno = 1350 + ERROR_CANT_ACCESS_DOMAIN_INFO syscall.Errno = 1351 + ERROR_INVALID_SERVER_STATE syscall.Errno = 1352 + ERROR_INVALID_DOMAIN_STATE syscall.Errno = 1353 + ERROR_INVALID_DOMAIN_ROLE syscall.Errno = 1354 + ERROR_NO_SUCH_DOMAIN syscall.Errno = 1355 + ERROR_DOMAIN_EXISTS syscall.Errno = 1356 + ERROR_DOMAIN_LIMIT_EXCEEDED syscall.Errno = 1357 + ERROR_INTERNAL_DB_CORRUPTION syscall.Errno = 1358 + ERROR_INTERNAL_ERROR syscall.Errno = 1359 + ERROR_GENERIC_NOT_MAPPED syscall.Errno = 1360 + ERROR_BAD_DESCRIPTOR_FORMAT syscall.Errno = 1361 + ERROR_NOT_LOGON_PROCESS syscall.Errno = 1362 + ERROR_LOGON_SESSION_EXISTS syscall.Errno = 1363 + ERROR_NO_SUCH_PACKAGE syscall.Errno = 1364 + ERROR_BAD_LOGON_SESSION_STATE syscall.Errno = 1365 + ERROR_LOGON_SESSION_COLLISION syscall.Errno = 1366 + ERROR_INVALID_LOGON_TYPE syscall.Errno = 1367 + ERROR_CANNOT_IMPERSONATE syscall.Errno = 1368 + ERROR_RXACT_INVALID_STATE syscall.Errno = 1369 + ERROR_RXACT_COMMIT_FAILURE syscall.Errno = 1370 + ERROR_SPECIAL_ACCOUNT syscall.Errno = 1371 + ERROR_SPECIAL_GROUP syscall.Errno = 1372 + ERROR_SPECIAL_USER syscall.Errno = 1373 + ERROR_MEMBERS_PRIMARY_GROUP syscall.Errno = 1374 + ERROR_TOKEN_ALREADY_IN_USE syscall.Errno = 1375 + ERROR_NO_SUCH_ALIAS syscall.Errno = 1376 + ERROR_MEMBER_NOT_IN_ALIAS syscall.Errno = 1377 + ERROR_MEMBER_IN_ALIAS syscall.Errno = 1378 + ERROR_ALIAS_EXISTS syscall.Errno = 1379 + ERROR_LOGON_NOT_GRANTED syscall.Errno = 1380 + ERROR_TOO_MANY_SECRETS syscall.Errno = 1381 + ERROR_SECRET_TOO_LONG syscall.Errno = 1382 + ERROR_INTERNAL_DB_ERROR syscall.Errno = 1383 + ERROR_TOO_MANY_CONTEXT_IDS syscall.Errno = 1384 + ERROR_LOGON_TYPE_NOT_GRANTED syscall.Errno = 1385 + ERROR_NT_CROSS_ENCRYPTION_REQUIRED syscall.Errno = 1386 + ERROR_NO_SUCH_MEMBER syscall.Errno = 1387 + ERROR_INVALID_MEMBER syscall.Errno = 1388 + ERROR_TOO_MANY_SIDS syscall.Errno = 1389 + ERROR_LM_CROSS_ENCRYPTION_REQUIRED syscall.Errno = 1390 + ERROR_NO_INHERITANCE syscall.Errno = 1391 + ERROR_FILE_CORRUPT syscall.Errno = 1392 + ERROR_DISK_CORRUPT syscall.Errno = 1393 + ERROR_NO_USER_SESSION_KEY syscall.Errno = 1394 + ERROR_LICENSE_QUOTA_EXCEEDED syscall.Errno = 1395 + ERROR_WRONG_TARGET_NAME syscall.Errno = 1396 + ERROR_MUTUAL_AUTH_FAILED syscall.Errno = 1397 + ERROR_TIME_SKEW syscall.Errno = 1398 + ERROR_CURRENT_DOMAIN_NOT_ALLOWED syscall.Errno = 1399 + ERROR_INVALID_WINDOW_HANDLE syscall.Errno = 1400 + ERROR_INVALID_MENU_HANDLE syscall.Errno = 1401 + ERROR_INVALID_CURSOR_HANDLE syscall.Errno = 1402 + ERROR_INVALID_ACCEL_HANDLE syscall.Errno = 1403 + ERROR_INVALID_HOOK_HANDLE syscall.Errno = 1404 + ERROR_INVALID_DWP_HANDLE syscall.Errno = 1405 + ERROR_TLW_WITH_WSCHILD syscall.Errno = 1406 + ERROR_CANNOT_FIND_WND_CLASS syscall.Errno = 1407 + ERROR_WINDOW_OF_OTHER_THREAD syscall.Errno = 1408 + ERROR_HOTKEY_ALREADY_REGISTERED syscall.Errno = 1409 + ERROR_CLASS_ALREADY_EXISTS syscall.Errno = 1410 + ERROR_CLASS_DOES_NOT_EXIST syscall.Errno = 1411 + ERROR_CLASS_HAS_WINDOWS syscall.Errno = 1412 + ERROR_INVALID_INDEX syscall.Errno = 1413 + ERROR_INVALID_ICON_HANDLE syscall.Errno = 1414 + ERROR_PRIVATE_DIALOG_INDEX syscall.Errno = 1415 + ERROR_LISTBOX_ID_NOT_FOUND syscall.Errno = 1416 + ERROR_NO_WILDCARD_CHARACTERS syscall.Errno = 1417 + ERROR_CLIPBOARD_NOT_OPEN syscall.Errno = 1418 + ERROR_HOTKEY_NOT_REGISTERED syscall.Errno = 1419 + ERROR_WINDOW_NOT_DIALOG syscall.Errno = 1420 + ERROR_CONTROL_ID_NOT_FOUND syscall.Errno = 1421 + ERROR_INVALID_COMBOBOX_MESSAGE syscall.Errno = 1422 + ERROR_WINDOW_NOT_COMBOBOX syscall.Errno = 1423 + ERROR_INVALID_EDIT_HEIGHT syscall.Errno = 1424 + ERROR_DC_NOT_FOUND syscall.Errno = 1425 + ERROR_INVALID_HOOK_FILTER syscall.Errno = 1426 + ERROR_INVALID_FILTER_PROC syscall.Errno = 1427 + ERROR_HOOK_NEEDS_HMOD syscall.Errno = 1428 + ERROR_GLOBAL_ONLY_HOOK syscall.Errno = 1429 + ERROR_JOURNAL_HOOK_SET syscall.Errno = 1430 + ERROR_HOOK_NOT_INSTALLED syscall.Errno = 1431 + ERROR_INVALID_LB_MESSAGE syscall.Errno = 1432 + ERROR_SETCOUNT_ON_BAD_LB syscall.Errno = 1433 + ERROR_LB_WITHOUT_TABSTOPS syscall.Errno = 1434 + ERROR_DESTROY_OBJECT_OF_OTHER_THREAD syscall.Errno = 1435 + ERROR_CHILD_WINDOW_MENU syscall.Errno = 1436 + ERROR_NO_SYSTEM_MENU syscall.Errno = 1437 + ERROR_INVALID_MSGBOX_STYLE syscall.Errno = 1438 + ERROR_INVALID_SPI_VALUE syscall.Errno = 1439 + ERROR_SCREEN_ALREADY_LOCKED syscall.Errno = 1440 + ERROR_HWNDS_HAVE_DIFF_PARENT syscall.Errno = 1441 + ERROR_NOT_CHILD_WINDOW syscall.Errno = 1442 + ERROR_INVALID_GW_COMMAND syscall.Errno = 1443 + ERROR_INVALID_THREAD_ID syscall.Errno = 1444 + ERROR_NON_MDICHILD_WINDOW syscall.Errno = 1445 + ERROR_POPUP_ALREADY_ACTIVE syscall.Errno = 1446 + ERROR_NO_SCROLLBARS syscall.Errno = 1447 + ERROR_INVALID_SCROLLBAR_RANGE syscall.Errno = 1448 + ERROR_INVALID_SHOWWIN_COMMAND syscall.Errno = 1449 + ERROR_NO_SYSTEM_RESOURCES syscall.Errno = 1450 + ERROR_NONPAGED_SYSTEM_RESOURCES syscall.Errno = 1451 + ERROR_PAGED_SYSTEM_RESOURCES syscall.Errno = 1452 + ERROR_WORKING_SET_QUOTA syscall.Errno = 1453 + ERROR_PAGEFILE_QUOTA syscall.Errno = 1454 + ERROR_COMMITMENT_LIMIT syscall.Errno = 1455 + ERROR_MENU_ITEM_NOT_FOUND syscall.Errno = 1456 + ERROR_INVALID_KEYBOARD_HANDLE syscall.Errno = 1457 + ERROR_HOOK_TYPE_NOT_ALLOWED syscall.Errno = 1458 + ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION syscall.Errno = 1459 + ERROR_TIMEOUT syscall.Errno = 1460 + ERROR_INVALID_MONITOR_HANDLE syscall.Errno = 1461 + ERROR_INCORRECT_SIZE syscall.Errno = 1462 + ERROR_SYMLINK_CLASS_DISABLED syscall.Errno = 1463 + ERROR_SYMLINK_NOT_SUPPORTED syscall.Errno = 1464 + ERROR_XML_PARSE_ERROR syscall.Errno = 1465 + ERROR_XMLDSIG_ERROR syscall.Errno = 1466 + ERROR_RESTART_APPLICATION syscall.Errno = 1467 + ERROR_WRONG_COMPARTMENT syscall.Errno = 1468 + ERROR_AUTHIP_FAILURE syscall.Errno = 1469 + ERROR_NO_NVRAM_RESOURCES syscall.Errno = 1470 + ERROR_NOT_GUI_PROCESS syscall.Errno = 1471 + ERROR_EVENTLOG_FILE_CORRUPT syscall.Errno = 1500 + ERROR_EVENTLOG_CANT_START syscall.Errno = 1501 + ERROR_LOG_FILE_FULL syscall.Errno = 1502 + ERROR_EVENTLOG_FILE_CHANGED syscall.Errno = 1503 + ERROR_CONTAINER_ASSIGNED syscall.Errno = 1504 + ERROR_JOB_NO_CONTAINER syscall.Errno = 1505 + ERROR_INVALID_TASK_NAME syscall.Errno = 1550 + ERROR_INVALID_TASK_INDEX syscall.Errno = 1551 + ERROR_THREAD_ALREADY_IN_TASK syscall.Errno = 1552 + ERROR_INSTALL_SERVICE_FAILURE syscall.Errno = 1601 + ERROR_INSTALL_USEREXIT syscall.Errno = 1602 + ERROR_INSTALL_FAILURE syscall.Errno = 1603 + ERROR_INSTALL_SUSPEND syscall.Errno = 1604 + ERROR_UNKNOWN_PRODUCT syscall.Errno = 1605 + ERROR_UNKNOWN_FEATURE syscall.Errno = 1606 + ERROR_UNKNOWN_COMPONENT syscall.Errno = 1607 + ERROR_UNKNOWN_PROPERTY syscall.Errno = 1608 + ERROR_INVALID_HANDLE_STATE syscall.Errno = 1609 + ERROR_BAD_CONFIGURATION syscall.Errno = 1610 + ERROR_INDEX_ABSENT syscall.Errno = 1611 + ERROR_INSTALL_SOURCE_ABSENT syscall.Errno = 1612 + ERROR_INSTALL_PACKAGE_VERSION syscall.Errno = 1613 + ERROR_PRODUCT_UNINSTALLED syscall.Errno = 1614 + ERROR_BAD_QUERY_SYNTAX syscall.Errno = 1615 + ERROR_INVALID_FIELD syscall.Errno = 1616 + ERROR_DEVICE_REMOVED syscall.Errno = 1617 + ERROR_INSTALL_ALREADY_RUNNING syscall.Errno = 1618 + ERROR_INSTALL_PACKAGE_OPEN_FAILED syscall.Errno = 1619 + ERROR_INSTALL_PACKAGE_INVALID syscall.Errno = 1620 + ERROR_INSTALL_UI_FAILURE syscall.Errno = 1621 + ERROR_INSTALL_LOG_FAILURE syscall.Errno = 1622 + ERROR_INSTALL_LANGUAGE_UNSUPPORTED syscall.Errno = 1623 + ERROR_INSTALL_TRANSFORM_FAILURE syscall.Errno = 1624 + ERROR_INSTALL_PACKAGE_REJECTED syscall.Errno = 1625 + ERROR_FUNCTION_NOT_CALLED syscall.Errno = 1626 + ERROR_FUNCTION_FAILED syscall.Errno = 1627 + ERROR_INVALID_TABLE syscall.Errno = 1628 + ERROR_DATATYPE_MISMATCH syscall.Errno = 1629 + ERROR_UNSUPPORTED_TYPE syscall.Errno = 1630 + ERROR_CREATE_FAILED syscall.Errno = 1631 + ERROR_INSTALL_TEMP_UNWRITABLE syscall.Errno = 1632 + ERROR_INSTALL_PLATFORM_UNSUPPORTED syscall.Errno = 1633 + ERROR_INSTALL_NOTUSED syscall.Errno = 1634 + ERROR_PATCH_PACKAGE_OPEN_FAILED syscall.Errno = 1635 + ERROR_PATCH_PACKAGE_INVALID syscall.Errno = 1636 + ERROR_PATCH_PACKAGE_UNSUPPORTED syscall.Errno = 1637 + ERROR_PRODUCT_VERSION syscall.Errno = 1638 + ERROR_INVALID_COMMAND_LINE syscall.Errno = 1639 + ERROR_INSTALL_REMOTE_DISALLOWED syscall.Errno = 1640 + ERROR_SUCCESS_REBOOT_INITIATED syscall.Errno = 1641 + ERROR_PATCH_TARGET_NOT_FOUND syscall.Errno = 1642 + ERROR_PATCH_PACKAGE_REJECTED syscall.Errno = 1643 + ERROR_INSTALL_TRANSFORM_REJECTED syscall.Errno = 1644 + ERROR_INSTALL_REMOTE_PROHIBITED syscall.Errno = 1645 + ERROR_PATCH_REMOVAL_UNSUPPORTED syscall.Errno = 1646 + ERROR_UNKNOWN_PATCH syscall.Errno = 1647 + ERROR_PATCH_NO_SEQUENCE syscall.Errno = 1648 + ERROR_PATCH_REMOVAL_DISALLOWED syscall.Errno = 1649 + ERROR_INVALID_PATCH_XML syscall.Errno = 1650 + ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT syscall.Errno = 1651 + ERROR_INSTALL_SERVICE_SAFEBOOT syscall.Errno = 1652 + ERROR_FAIL_FAST_EXCEPTION syscall.Errno = 1653 + ERROR_INSTALL_REJECTED syscall.Errno = 1654 + ERROR_DYNAMIC_CODE_BLOCKED syscall.Errno = 1655 + ERROR_NOT_SAME_OBJECT syscall.Errno = 1656 + ERROR_STRICT_CFG_VIOLATION syscall.Errno = 1657 + ERROR_SET_CONTEXT_DENIED syscall.Errno = 1660 + ERROR_CROSS_PARTITION_VIOLATION syscall.Errno = 1661 + RPC_S_INVALID_STRING_BINDING syscall.Errno = 1700 + RPC_S_WRONG_KIND_OF_BINDING syscall.Errno = 1701 + RPC_S_INVALID_BINDING syscall.Errno = 1702 + RPC_S_PROTSEQ_NOT_SUPPORTED syscall.Errno = 1703 + RPC_S_INVALID_RPC_PROTSEQ syscall.Errno = 1704 + RPC_S_INVALID_STRING_UUID syscall.Errno = 1705 + RPC_S_INVALID_ENDPOINT_FORMAT syscall.Errno = 1706 + RPC_S_INVALID_NET_ADDR syscall.Errno = 1707 + RPC_S_NO_ENDPOINT_FOUND syscall.Errno = 1708 + RPC_S_INVALID_TIMEOUT syscall.Errno = 1709 + RPC_S_OBJECT_NOT_FOUND syscall.Errno = 1710 + RPC_S_ALREADY_REGISTERED syscall.Errno = 1711 + RPC_S_TYPE_ALREADY_REGISTERED syscall.Errno = 1712 + RPC_S_ALREADY_LISTENING syscall.Errno = 1713 + RPC_S_NO_PROTSEQS_REGISTERED syscall.Errno = 1714 + RPC_S_NOT_LISTENING syscall.Errno = 1715 + RPC_S_UNKNOWN_MGR_TYPE syscall.Errno = 1716 + RPC_S_UNKNOWN_IF syscall.Errno = 1717 + RPC_S_NO_BINDINGS syscall.Errno = 1718 + RPC_S_NO_PROTSEQS syscall.Errno = 1719 + RPC_S_CANT_CREATE_ENDPOINT syscall.Errno = 1720 + RPC_S_OUT_OF_RESOURCES syscall.Errno = 1721 + RPC_S_SERVER_UNAVAILABLE syscall.Errno = 1722 + RPC_S_SERVER_TOO_BUSY syscall.Errno = 1723 + RPC_S_INVALID_NETWORK_OPTIONS syscall.Errno = 1724 + RPC_S_NO_CALL_ACTIVE syscall.Errno = 1725 + RPC_S_CALL_FAILED syscall.Errno = 1726 + RPC_S_CALL_FAILED_DNE syscall.Errno = 1727 + RPC_S_PROTOCOL_ERROR syscall.Errno = 1728 + RPC_S_PROXY_ACCESS_DENIED syscall.Errno = 1729 + RPC_S_UNSUPPORTED_TRANS_SYN syscall.Errno = 1730 + RPC_S_UNSUPPORTED_TYPE syscall.Errno = 1732 + RPC_S_INVALID_TAG syscall.Errno = 1733 + RPC_S_INVALID_BOUND syscall.Errno = 1734 + RPC_S_NO_ENTRY_NAME syscall.Errno = 1735 + RPC_S_INVALID_NAME_SYNTAX syscall.Errno = 1736 + RPC_S_UNSUPPORTED_NAME_SYNTAX syscall.Errno = 1737 + RPC_S_UUID_NO_ADDRESS syscall.Errno = 1739 + RPC_S_DUPLICATE_ENDPOINT syscall.Errno = 1740 + RPC_S_UNKNOWN_AUTHN_TYPE syscall.Errno = 1741 + RPC_S_MAX_CALLS_TOO_SMALL syscall.Errno = 1742 + RPC_S_STRING_TOO_LONG syscall.Errno = 1743 + RPC_S_PROTSEQ_NOT_FOUND syscall.Errno = 1744 + RPC_S_PROCNUM_OUT_OF_RANGE syscall.Errno = 1745 + RPC_S_BINDING_HAS_NO_AUTH syscall.Errno = 1746 + RPC_S_UNKNOWN_AUTHN_SERVICE syscall.Errno = 1747 + RPC_S_UNKNOWN_AUTHN_LEVEL syscall.Errno = 1748 + RPC_S_INVALID_AUTH_IDENTITY syscall.Errno = 1749 + RPC_S_UNKNOWN_AUTHZ_SERVICE syscall.Errno = 1750 + EPT_S_INVALID_ENTRY syscall.Errno = 1751 + EPT_S_CANT_PERFORM_OP syscall.Errno = 1752 + EPT_S_NOT_REGISTERED syscall.Errno = 1753 + RPC_S_NOTHING_TO_EXPORT syscall.Errno = 1754 + RPC_S_INCOMPLETE_NAME syscall.Errno = 1755 + RPC_S_INVALID_VERS_OPTION syscall.Errno = 1756 + RPC_S_NO_MORE_MEMBERS syscall.Errno = 1757 + RPC_S_NOT_ALL_OBJS_UNEXPORTED syscall.Errno = 1758 + RPC_S_INTERFACE_NOT_FOUND syscall.Errno = 1759 + RPC_S_ENTRY_ALREADY_EXISTS syscall.Errno = 1760 + RPC_S_ENTRY_NOT_FOUND syscall.Errno = 1761 + RPC_S_NAME_SERVICE_UNAVAILABLE syscall.Errno = 1762 + RPC_S_INVALID_NAF_ID syscall.Errno = 1763 + RPC_S_CANNOT_SUPPORT syscall.Errno = 1764 + RPC_S_NO_CONTEXT_AVAILABLE syscall.Errno = 1765 + RPC_S_INTERNAL_ERROR syscall.Errno = 1766 + RPC_S_ZERO_DIVIDE syscall.Errno = 1767 + RPC_S_ADDRESS_ERROR syscall.Errno = 1768 + RPC_S_FP_DIV_ZERO syscall.Errno = 1769 + RPC_S_FP_UNDERFLOW syscall.Errno = 1770 + RPC_S_FP_OVERFLOW syscall.Errno = 1771 + RPC_X_NO_MORE_ENTRIES syscall.Errno = 1772 + RPC_X_SS_CHAR_TRANS_OPEN_FAIL syscall.Errno = 1773 + RPC_X_SS_CHAR_TRANS_SHORT_FILE syscall.Errno = 1774 + RPC_X_SS_IN_NULL_CONTEXT syscall.Errno = 1775 + RPC_X_SS_CONTEXT_DAMAGED syscall.Errno = 1777 + RPC_X_SS_HANDLES_MISMATCH syscall.Errno = 1778 + RPC_X_SS_CANNOT_GET_CALL_HANDLE syscall.Errno = 1779 + RPC_X_NULL_REF_POINTER syscall.Errno = 1780 + RPC_X_ENUM_VALUE_OUT_OF_RANGE syscall.Errno = 1781 + RPC_X_BYTE_COUNT_TOO_SMALL syscall.Errno = 1782 + RPC_X_BAD_STUB_DATA syscall.Errno = 1783 + ERROR_INVALID_USER_BUFFER syscall.Errno = 1784 + ERROR_UNRECOGNIZED_MEDIA syscall.Errno = 1785 + ERROR_NO_TRUST_LSA_SECRET syscall.Errno = 1786 + ERROR_NO_TRUST_SAM_ACCOUNT syscall.Errno = 1787 + ERROR_TRUSTED_DOMAIN_FAILURE syscall.Errno = 1788 + ERROR_TRUSTED_RELATIONSHIP_FAILURE syscall.Errno = 1789 + ERROR_TRUST_FAILURE syscall.Errno = 1790 + RPC_S_CALL_IN_PROGRESS syscall.Errno = 1791 + ERROR_NETLOGON_NOT_STARTED syscall.Errno = 1792 + ERROR_ACCOUNT_EXPIRED syscall.Errno = 1793 + ERROR_REDIRECTOR_HAS_OPEN_HANDLES syscall.Errno = 1794 + ERROR_PRINTER_DRIVER_ALREADY_INSTALLED syscall.Errno = 1795 + ERROR_UNKNOWN_PORT syscall.Errno = 1796 + ERROR_UNKNOWN_PRINTER_DRIVER syscall.Errno = 1797 + ERROR_UNKNOWN_PRINTPROCESSOR syscall.Errno = 1798 + ERROR_INVALID_SEPARATOR_FILE syscall.Errno = 1799 + ERROR_INVALID_PRIORITY syscall.Errno = 1800 + ERROR_INVALID_PRINTER_NAME syscall.Errno = 1801 + ERROR_PRINTER_ALREADY_EXISTS syscall.Errno = 1802 + ERROR_INVALID_PRINTER_COMMAND syscall.Errno = 1803 + ERROR_INVALID_DATATYPE syscall.Errno = 1804 + ERROR_INVALID_ENVIRONMENT syscall.Errno = 1805 + RPC_S_NO_MORE_BINDINGS syscall.Errno = 1806 + ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT syscall.Errno = 1807 + ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT syscall.Errno = 1808 + ERROR_NOLOGON_SERVER_TRUST_ACCOUNT syscall.Errno = 1809 + ERROR_DOMAIN_TRUST_INCONSISTENT syscall.Errno = 1810 + ERROR_SERVER_HAS_OPEN_HANDLES syscall.Errno = 1811 + ERROR_RESOURCE_DATA_NOT_FOUND syscall.Errno = 1812 + ERROR_RESOURCE_TYPE_NOT_FOUND syscall.Errno = 1813 + ERROR_RESOURCE_NAME_NOT_FOUND syscall.Errno = 1814 + ERROR_RESOURCE_LANG_NOT_FOUND syscall.Errno = 1815 + ERROR_NOT_ENOUGH_QUOTA syscall.Errno = 1816 + RPC_S_NO_INTERFACES syscall.Errno = 1817 + RPC_S_CALL_CANCELLED syscall.Errno = 1818 + RPC_S_BINDING_INCOMPLETE syscall.Errno = 1819 + RPC_S_COMM_FAILURE syscall.Errno = 1820 + RPC_S_UNSUPPORTED_AUTHN_LEVEL syscall.Errno = 1821 + RPC_S_NO_PRINC_NAME syscall.Errno = 1822 + RPC_S_NOT_RPC_ERROR syscall.Errno = 1823 + RPC_S_UUID_LOCAL_ONLY syscall.Errno = 1824 + RPC_S_SEC_PKG_ERROR syscall.Errno = 1825 + RPC_S_NOT_CANCELLED syscall.Errno = 1826 + RPC_X_INVALID_ES_ACTION syscall.Errno = 1827 + RPC_X_WRONG_ES_VERSION syscall.Errno = 1828 + RPC_X_WRONG_STUB_VERSION syscall.Errno = 1829 + RPC_X_INVALID_PIPE_OBJECT syscall.Errno = 1830 + RPC_X_WRONG_PIPE_ORDER syscall.Errno = 1831 + RPC_X_WRONG_PIPE_VERSION syscall.Errno = 1832 + RPC_S_COOKIE_AUTH_FAILED syscall.Errno = 1833 + RPC_S_DO_NOT_DISTURB syscall.Errno = 1834 + RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED syscall.Errno = 1835 + RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH syscall.Errno = 1836 + RPC_S_GROUP_MEMBER_NOT_FOUND syscall.Errno = 1898 + EPT_S_CANT_CREATE syscall.Errno = 1899 + RPC_S_INVALID_OBJECT syscall.Errno = 1900 + ERROR_INVALID_TIME syscall.Errno = 1901 + ERROR_INVALID_FORM_NAME syscall.Errno = 1902 + ERROR_INVALID_FORM_SIZE syscall.Errno = 1903 + ERROR_ALREADY_WAITING syscall.Errno = 1904 + ERROR_PRINTER_DELETED syscall.Errno = 1905 + ERROR_INVALID_PRINTER_STATE syscall.Errno = 1906 + ERROR_PASSWORD_MUST_CHANGE syscall.Errno = 1907 + ERROR_DOMAIN_CONTROLLER_NOT_FOUND syscall.Errno = 1908 + ERROR_ACCOUNT_LOCKED_OUT syscall.Errno = 1909 + OR_INVALID_OXID syscall.Errno = 1910 + OR_INVALID_OID syscall.Errno = 1911 + OR_INVALID_SET syscall.Errno = 1912 + RPC_S_SEND_INCOMPLETE syscall.Errno = 1913 + RPC_S_INVALID_ASYNC_HANDLE syscall.Errno = 1914 + RPC_S_INVALID_ASYNC_CALL syscall.Errno = 1915 + RPC_X_PIPE_CLOSED syscall.Errno = 1916 + RPC_X_PIPE_DISCIPLINE_ERROR syscall.Errno = 1917 + RPC_X_PIPE_EMPTY syscall.Errno = 1918 + ERROR_NO_SITENAME syscall.Errno = 1919 + ERROR_CANT_ACCESS_FILE syscall.Errno = 1920 + ERROR_CANT_RESOLVE_FILENAME syscall.Errno = 1921 + RPC_S_ENTRY_TYPE_MISMATCH syscall.Errno = 1922 + RPC_S_NOT_ALL_OBJS_EXPORTED syscall.Errno = 1923 + RPC_S_INTERFACE_NOT_EXPORTED syscall.Errno = 1924 + RPC_S_PROFILE_NOT_ADDED syscall.Errno = 1925 + RPC_S_PRF_ELT_NOT_ADDED syscall.Errno = 1926 + RPC_S_PRF_ELT_NOT_REMOVED syscall.Errno = 1927 + RPC_S_GRP_ELT_NOT_ADDED syscall.Errno = 1928 + RPC_S_GRP_ELT_NOT_REMOVED syscall.Errno = 1929 + ERROR_KM_DRIVER_BLOCKED syscall.Errno = 1930 + ERROR_CONTEXT_EXPIRED syscall.Errno = 1931 + ERROR_PER_USER_TRUST_QUOTA_EXCEEDED syscall.Errno = 1932 + ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED syscall.Errno = 1933 + ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED syscall.Errno = 1934 + ERROR_AUTHENTICATION_FIREWALL_FAILED syscall.Errno = 1935 + ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED syscall.Errno = 1936 + ERROR_NTLM_BLOCKED syscall.Errno = 1937 + ERROR_PASSWORD_CHANGE_REQUIRED syscall.Errno = 1938 + ERROR_LOST_MODE_LOGON_RESTRICTION syscall.Errno = 1939 + ERROR_INVALID_PIXEL_FORMAT syscall.Errno = 2000 + ERROR_BAD_DRIVER syscall.Errno = 2001 + ERROR_INVALID_WINDOW_STYLE syscall.Errno = 2002 + ERROR_METAFILE_NOT_SUPPORTED syscall.Errno = 2003 + ERROR_TRANSFORM_NOT_SUPPORTED syscall.Errno = 2004 + ERROR_CLIPPING_NOT_SUPPORTED syscall.Errno = 2005 + ERROR_INVALID_CMM syscall.Errno = 2010 + ERROR_INVALID_PROFILE syscall.Errno = 2011 + ERROR_TAG_NOT_FOUND syscall.Errno = 2012 + ERROR_TAG_NOT_PRESENT syscall.Errno = 2013 + ERROR_DUPLICATE_TAG syscall.Errno = 2014 + ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE syscall.Errno = 2015 + ERROR_PROFILE_NOT_FOUND syscall.Errno = 2016 + ERROR_INVALID_COLORSPACE syscall.Errno = 2017 + ERROR_ICM_NOT_ENABLED syscall.Errno = 2018 + ERROR_DELETING_ICM_XFORM syscall.Errno = 2019 + ERROR_INVALID_TRANSFORM syscall.Errno = 2020 + ERROR_COLORSPACE_MISMATCH syscall.Errno = 2021 + ERROR_INVALID_COLORINDEX syscall.Errno = 2022 + ERROR_PROFILE_DOES_NOT_MATCH_DEVICE syscall.Errno = 2023 + ERROR_CONNECTED_OTHER_PASSWORD syscall.Errno = 2108 + ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT syscall.Errno = 2109 + ERROR_BAD_USERNAME syscall.Errno = 2202 + ERROR_NOT_CONNECTED syscall.Errno = 2250 + ERROR_OPEN_FILES syscall.Errno = 2401 + ERROR_ACTIVE_CONNECTIONS syscall.Errno = 2402 + ERROR_DEVICE_IN_USE syscall.Errno = 2404 + ERROR_UNKNOWN_PRINT_MONITOR syscall.Errno = 3000 + ERROR_PRINTER_DRIVER_IN_USE syscall.Errno = 3001 + ERROR_SPOOL_FILE_NOT_FOUND syscall.Errno = 3002 + ERROR_SPL_NO_STARTDOC syscall.Errno = 3003 + ERROR_SPL_NO_ADDJOB syscall.Errno = 3004 + ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED syscall.Errno = 3005 + ERROR_PRINT_MONITOR_ALREADY_INSTALLED syscall.Errno = 3006 + ERROR_INVALID_PRINT_MONITOR syscall.Errno = 3007 + ERROR_PRINT_MONITOR_IN_USE syscall.Errno = 3008 + ERROR_PRINTER_HAS_JOBS_QUEUED syscall.Errno = 3009 + ERROR_SUCCESS_REBOOT_REQUIRED syscall.Errno = 3010 + ERROR_SUCCESS_RESTART_REQUIRED syscall.Errno = 3011 + ERROR_PRINTER_NOT_FOUND syscall.Errno = 3012 + ERROR_PRINTER_DRIVER_WARNED syscall.Errno = 3013 + ERROR_PRINTER_DRIVER_BLOCKED syscall.Errno = 3014 + ERROR_PRINTER_DRIVER_PACKAGE_IN_USE syscall.Errno = 3015 + ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND syscall.Errno = 3016 + ERROR_FAIL_REBOOT_REQUIRED syscall.Errno = 3017 + ERROR_FAIL_REBOOT_INITIATED syscall.Errno = 3018 + ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED syscall.Errno = 3019 + ERROR_PRINT_JOB_RESTART_REQUIRED syscall.Errno = 3020 + ERROR_INVALID_PRINTER_DRIVER_MANIFEST syscall.Errno = 3021 + ERROR_PRINTER_NOT_SHAREABLE syscall.Errno = 3022 + ERROR_REQUEST_PAUSED syscall.Errno = 3050 + ERROR_APPEXEC_CONDITION_NOT_SATISFIED syscall.Errno = 3060 + ERROR_APPEXEC_HANDLE_INVALIDATED syscall.Errno = 3061 + ERROR_APPEXEC_INVALID_HOST_GENERATION syscall.Errno = 3062 + ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION syscall.Errno = 3063 + ERROR_APPEXEC_INVALID_HOST_STATE syscall.Errno = 3064 + ERROR_APPEXEC_NO_DONOR syscall.Errno = 3065 + ERROR_APPEXEC_HOST_ID_MISMATCH syscall.Errno = 3066 + ERROR_APPEXEC_UNKNOWN_USER syscall.Errno = 3067 + ERROR_IO_REISSUE_AS_CACHED syscall.Errno = 3950 + ERROR_WINS_INTERNAL syscall.Errno = 4000 + ERROR_CAN_NOT_DEL_LOCAL_WINS syscall.Errno = 4001 + ERROR_STATIC_INIT syscall.Errno = 4002 + ERROR_INC_BACKUP syscall.Errno = 4003 + ERROR_FULL_BACKUP syscall.Errno = 4004 + ERROR_REC_NON_EXISTENT syscall.Errno = 4005 + ERROR_RPL_NOT_ALLOWED syscall.Errno = 4006 + PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED syscall.Errno = 4050 + PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO syscall.Errno = 4051 + PEERDIST_ERROR_MISSING_DATA syscall.Errno = 4052 + PEERDIST_ERROR_NO_MORE syscall.Errno = 4053 + PEERDIST_ERROR_NOT_INITIALIZED syscall.Errno = 4054 + PEERDIST_ERROR_ALREADY_INITIALIZED syscall.Errno = 4055 + PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS syscall.Errno = 4056 + PEERDIST_ERROR_INVALIDATED syscall.Errno = 4057 + PEERDIST_ERROR_ALREADY_EXISTS syscall.Errno = 4058 + PEERDIST_ERROR_OPERATION_NOTFOUND syscall.Errno = 4059 + PEERDIST_ERROR_ALREADY_COMPLETED syscall.Errno = 4060 + PEERDIST_ERROR_OUT_OF_BOUNDS syscall.Errno = 4061 + PEERDIST_ERROR_VERSION_UNSUPPORTED syscall.Errno = 4062 + PEERDIST_ERROR_INVALID_CONFIGURATION syscall.Errno = 4063 + PEERDIST_ERROR_NOT_LICENSED syscall.Errno = 4064 + PEERDIST_ERROR_SERVICE_UNAVAILABLE syscall.Errno = 4065 + PEERDIST_ERROR_TRUST_FAILURE syscall.Errno = 4066 + ERROR_DHCP_ADDRESS_CONFLICT syscall.Errno = 4100 + ERROR_WMI_GUID_NOT_FOUND syscall.Errno = 4200 + ERROR_WMI_INSTANCE_NOT_FOUND syscall.Errno = 4201 + ERROR_WMI_ITEMID_NOT_FOUND syscall.Errno = 4202 + ERROR_WMI_TRY_AGAIN syscall.Errno = 4203 + ERROR_WMI_DP_NOT_FOUND syscall.Errno = 4204 + ERROR_WMI_UNRESOLVED_INSTANCE_REF syscall.Errno = 4205 + ERROR_WMI_ALREADY_ENABLED syscall.Errno = 4206 + ERROR_WMI_GUID_DISCONNECTED syscall.Errno = 4207 + ERROR_WMI_SERVER_UNAVAILABLE syscall.Errno = 4208 + ERROR_WMI_DP_FAILED syscall.Errno = 4209 + ERROR_WMI_INVALID_MOF syscall.Errno = 4210 + ERROR_WMI_INVALID_REGINFO syscall.Errno = 4211 + ERROR_WMI_ALREADY_DISABLED syscall.Errno = 4212 + ERROR_WMI_READ_ONLY syscall.Errno = 4213 + ERROR_WMI_SET_FAILURE syscall.Errno = 4214 + ERROR_NOT_APPCONTAINER syscall.Errno = 4250 + ERROR_APPCONTAINER_REQUIRED syscall.Errno = 4251 + ERROR_NOT_SUPPORTED_IN_APPCONTAINER syscall.Errno = 4252 + ERROR_INVALID_PACKAGE_SID_LENGTH syscall.Errno = 4253 + ERROR_INVALID_MEDIA syscall.Errno = 4300 + ERROR_INVALID_LIBRARY syscall.Errno = 4301 + ERROR_INVALID_MEDIA_POOL syscall.Errno = 4302 + ERROR_DRIVE_MEDIA_MISMATCH syscall.Errno = 4303 + ERROR_MEDIA_OFFLINE syscall.Errno = 4304 + ERROR_LIBRARY_OFFLINE syscall.Errno = 4305 + ERROR_EMPTY syscall.Errno = 4306 + ERROR_NOT_EMPTY syscall.Errno = 4307 + ERROR_MEDIA_UNAVAILABLE syscall.Errno = 4308 + ERROR_RESOURCE_DISABLED syscall.Errno = 4309 + ERROR_INVALID_CLEANER syscall.Errno = 4310 + ERROR_UNABLE_TO_CLEAN syscall.Errno = 4311 + ERROR_OBJECT_NOT_FOUND syscall.Errno = 4312 + ERROR_DATABASE_FAILURE syscall.Errno = 4313 + ERROR_DATABASE_FULL syscall.Errno = 4314 + ERROR_MEDIA_INCOMPATIBLE syscall.Errno = 4315 + ERROR_RESOURCE_NOT_PRESENT syscall.Errno = 4316 + ERROR_INVALID_OPERATION syscall.Errno = 4317 + ERROR_MEDIA_NOT_AVAILABLE syscall.Errno = 4318 + ERROR_DEVICE_NOT_AVAILABLE syscall.Errno = 4319 + ERROR_REQUEST_REFUSED syscall.Errno = 4320 + ERROR_INVALID_DRIVE_OBJECT syscall.Errno = 4321 + ERROR_LIBRARY_FULL syscall.Errno = 4322 + ERROR_MEDIUM_NOT_ACCESSIBLE syscall.Errno = 4323 + ERROR_UNABLE_TO_LOAD_MEDIUM syscall.Errno = 4324 + ERROR_UNABLE_TO_INVENTORY_DRIVE syscall.Errno = 4325 + ERROR_UNABLE_TO_INVENTORY_SLOT syscall.Errno = 4326 + ERROR_UNABLE_TO_INVENTORY_TRANSPORT syscall.Errno = 4327 + ERROR_TRANSPORT_FULL syscall.Errno = 4328 + ERROR_CONTROLLING_IEPORT syscall.Errno = 4329 + ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA syscall.Errno = 4330 + ERROR_CLEANER_SLOT_SET syscall.Errno = 4331 + ERROR_CLEANER_SLOT_NOT_SET syscall.Errno = 4332 + ERROR_CLEANER_CARTRIDGE_SPENT syscall.Errno = 4333 + ERROR_UNEXPECTED_OMID syscall.Errno = 4334 + ERROR_CANT_DELETE_LAST_ITEM syscall.Errno = 4335 + ERROR_MESSAGE_EXCEEDS_MAX_SIZE syscall.Errno = 4336 + ERROR_VOLUME_CONTAINS_SYS_FILES syscall.Errno = 4337 + ERROR_INDIGENOUS_TYPE syscall.Errno = 4338 + ERROR_NO_SUPPORTING_DRIVES syscall.Errno = 4339 + ERROR_CLEANER_CARTRIDGE_INSTALLED syscall.Errno = 4340 + ERROR_IEPORT_FULL syscall.Errno = 4341 + ERROR_FILE_OFFLINE syscall.Errno = 4350 + ERROR_REMOTE_STORAGE_NOT_ACTIVE syscall.Errno = 4351 + ERROR_REMOTE_STORAGE_MEDIA_ERROR syscall.Errno = 4352 + ERROR_NOT_A_REPARSE_POINT syscall.Errno = 4390 + ERROR_REPARSE_ATTRIBUTE_CONFLICT syscall.Errno = 4391 + ERROR_INVALID_REPARSE_DATA syscall.Errno = 4392 + ERROR_REPARSE_TAG_INVALID syscall.Errno = 4393 + ERROR_REPARSE_TAG_MISMATCH syscall.Errno = 4394 + ERROR_REPARSE_POINT_ENCOUNTERED syscall.Errno = 4395 + ERROR_APP_DATA_NOT_FOUND syscall.Errno = 4400 + ERROR_APP_DATA_EXPIRED syscall.Errno = 4401 + ERROR_APP_DATA_CORRUPT syscall.Errno = 4402 + ERROR_APP_DATA_LIMIT_EXCEEDED syscall.Errno = 4403 + ERROR_APP_DATA_REBOOT_REQUIRED syscall.Errno = 4404 + ERROR_SECUREBOOT_ROLLBACK_DETECTED syscall.Errno = 4420 + ERROR_SECUREBOOT_POLICY_VIOLATION syscall.Errno = 4421 + ERROR_SECUREBOOT_INVALID_POLICY syscall.Errno = 4422 + ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND syscall.Errno = 4423 + ERROR_SECUREBOOT_POLICY_NOT_SIGNED syscall.Errno = 4424 + ERROR_SECUREBOOT_NOT_ENABLED syscall.Errno = 4425 + ERROR_SECUREBOOT_FILE_REPLACED syscall.Errno = 4426 + ERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED syscall.Errno = 4427 + ERROR_SECUREBOOT_POLICY_UNKNOWN syscall.Errno = 4428 + ERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION syscall.Errno = 4429 + ERROR_SECUREBOOT_PLATFORM_ID_MISMATCH syscall.Errno = 4430 + ERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED syscall.Errno = 4431 + ERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH syscall.Errno = 4432 + ERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING syscall.Errno = 4433 + ERROR_SECUREBOOT_NOT_BASE_POLICY syscall.Errno = 4434 + ERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY syscall.Errno = 4435 + ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED syscall.Errno = 4440 + ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED syscall.Errno = 4441 + ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED syscall.Errno = 4442 + ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED syscall.Errno = 4443 + ERROR_ALREADY_HAS_STREAM_ID syscall.Errno = 4444 + ERROR_SMR_GARBAGE_COLLECTION_REQUIRED syscall.Errno = 4445 + ERROR_WOF_WIM_HEADER_CORRUPT syscall.Errno = 4446 + ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT syscall.Errno = 4447 + ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT syscall.Errno = 4448 + ERROR_VOLUME_NOT_SIS_ENABLED syscall.Errno = 4500 + ERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED syscall.Errno = 4550 + ERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION syscall.Errno = 4551 + ERROR_SYSTEM_INTEGRITY_INVALID_POLICY syscall.Errno = 4552 + ERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED syscall.Errno = 4553 + ERROR_SYSTEM_INTEGRITY_TOO_MANY_POLICIES syscall.Errno = 4554 + ERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED syscall.Errno = 4555 + ERROR_VSM_NOT_INITIALIZED syscall.Errno = 4560 + ERROR_VSM_DMA_PROTECTION_NOT_IN_USE syscall.Errno = 4561 + ERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED syscall.Errno = 4570 + ERROR_PLATFORM_MANIFEST_INVALID syscall.Errno = 4571 + ERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED syscall.Errno = 4572 + ERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED syscall.Errno = 4573 + ERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND syscall.Errno = 4574 + ERROR_PLATFORM_MANIFEST_NOT_ACTIVE syscall.Errno = 4575 + ERROR_PLATFORM_MANIFEST_NOT_SIGNED syscall.Errno = 4576 + ERROR_DEPENDENT_RESOURCE_EXISTS syscall.Errno = 5001 + ERROR_DEPENDENCY_NOT_FOUND syscall.Errno = 5002 + ERROR_DEPENDENCY_ALREADY_EXISTS syscall.Errno = 5003 + ERROR_RESOURCE_NOT_ONLINE syscall.Errno = 5004 + ERROR_HOST_NODE_NOT_AVAILABLE syscall.Errno = 5005 + ERROR_RESOURCE_NOT_AVAILABLE syscall.Errno = 5006 + ERROR_RESOURCE_NOT_FOUND syscall.Errno = 5007 + ERROR_SHUTDOWN_CLUSTER syscall.Errno = 5008 + ERROR_CANT_EVICT_ACTIVE_NODE syscall.Errno = 5009 + ERROR_OBJECT_ALREADY_EXISTS syscall.Errno = 5010 + ERROR_OBJECT_IN_LIST syscall.Errno = 5011 + ERROR_GROUP_NOT_AVAILABLE syscall.Errno = 5012 + ERROR_GROUP_NOT_FOUND syscall.Errno = 5013 + ERROR_GROUP_NOT_ONLINE syscall.Errno = 5014 + ERROR_HOST_NODE_NOT_RESOURCE_OWNER syscall.Errno = 5015 + ERROR_HOST_NODE_NOT_GROUP_OWNER syscall.Errno = 5016 + ERROR_RESMON_CREATE_FAILED syscall.Errno = 5017 + ERROR_RESMON_ONLINE_FAILED syscall.Errno = 5018 + ERROR_RESOURCE_ONLINE syscall.Errno = 5019 + ERROR_QUORUM_RESOURCE syscall.Errno = 5020 + ERROR_NOT_QUORUM_CAPABLE syscall.Errno = 5021 + ERROR_CLUSTER_SHUTTING_DOWN syscall.Errno = 5022 + ERROR_INVALID_STATE syscall.Errno = 5023 + ERROR_RESOURCE_PROPERTIES_STORED syscall.Errno = 5024 + ERROR_NOT_QUORUM_CLASS syscall.Errno = 5025 + ERROR_CORE_RESOURCE syscall.Errno = 5026 + ERROR_QUORUM_RESOURCE_ONLINE_FAILED syscall.Errno = 5027 + ERROR_QUORUMLOG_OPEN_FAILED syscall.Errno = 5028 + ERROR_CLUSTERLOG_CORRUPT syscall.Errno = 5029 + ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE syscall.Errno = 5030 + ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE syscall.Errno = 5031 + ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND syscall.Errno = 5032 + ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE syscall.Errno = 5033 + ERROR_QUORUM_OWNER_ALIVE syscall.Errno = 5034 + ERROR_NETWORK_NOT_AVAILABLE syscall.Errno = 5035 + ERROR_NODE_NOT_AVAILABLE syscall.Errno = 5036 + ERROR_ALL_NODES_NOT_AVAILABLE syscall.Errno = 5037 + ERROR_RESOURCE_FAILED syscall.Errno = 5038 + ERROR_CLUSTER_INVALID_NODE syscall.Errno = 5039 + ERROR_CLUSTER_NODE_EXISTS syscall.Errno = 5040 + ERROR_CLUSTER_JOIN_IN_PROGRESS syscall.Errno = 5041 + ERROR_CLUSTER_NODE_NOT_FOUND syscall.Errno = 5042 + ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND syscall.Errno = 5043 + ERROR_CLUSTER_NETWORK_EXISTS syscall.Errno = 5044 + ERROR_CLUSTER_NETWORK_NOT_FOUND syscall.Errno = 5045 + ERROR_CLUSTER_NETINTERFACE_EXISTS syscall.Errno = 5046 + ERROR_CLUSTER_NETINTERFACE_NOT_FOUND syscall.Errno = 5047 + ERROR_CLUSTER_INVALID_REQUEST syscall.Errno = 5048 + ERROR_CLUSTER_INVALID_NETWORK_PROVIDER syscall.Errno = 5049 + ERROR_CLUSTER_NODE_DOWN syscall.Errno = 5050 + ERROR_CLUSTER_NODE_UNREACHABLE syscall.Errno = 5051 + ERROR_CLUSTER_NODE_NOT_MEMBER syscall.Errno = 5052 + ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS syscall.Errno = 5053 + ERROR_CLUSTER_INVALID_NETWORK syscall.Errno = 5054 + ERROR_CLUSTER_NODE_UP syscall.Errno = 5056 + ERROR_CLUSTER_IPADDR_IN_USE syscall.Errno = 5057 + ERROR_CLUSTER_NODE_NOT_PAUSED syscall.Errno = 5058 + ERROR_CLUSTER_NO_SECURITY_CONTEXT syscall.Errno = 5059 + ERROR_CLUSTER_NETWORK_NOT_INTERNAL syscall.Errno = 5060 + ERROR_CLUSTER_NODE_ALREADY_UP syscall.Errno = 5061 + ERROR_CLUSTER_NODE_ALREADY_DOWN syscall.Errno = 5062 + ERROR_CLUSTER_NETWORK_ALREADY_ONLINE syscall.Errno = 5063 + ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE syscall.Errno = 5064 + ERROR_CLUSTER_NODE_ALREADY_MEMBER syscall.Errno = 5065 + ERROR_CLUSTER_LAST_INTERNAL_NETWORK syscall.Errno = 5066 + ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS syscall.Errno = 5067 + ERROR_INVALID_OPERATION_ON_QUORUM syscall.Errno = 5068 + ERROR_DEPENDENCY_NOT_ALLOWED syscall.Errno = 5069 + ERROR_CLUSTER_NODE_PAUSED syscall.Errno = 5070 + ERROR_NODE_CANT_HOST_RESOURCE syscall.Errno = 5071 + ERROR_CLUSTER_NODE_NOT_READY syscall.Errno = 5072 + ERROR_CLUSTER_NODE_SHUTTING_DOWN syscall.Errno = 5073 + ERROR_CLUSTER_JOIN_ABORTED syscall.Errno = 5074 + ERROR_CLUSTER_INCOMPATIBLE_VERSIONS syscall.Errno = 5075 + ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED syscall.Errno = 5076 + ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED syscall.Errno = 5077 + ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND syscall.Errno = 5078 + ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED syscall.Errno = 5079 + ERROR_CLUSTER_RESNAME_NOT_FOUND syscall.Errno = 5080 + ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED syscall.Errno = 5081 + ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST syscall.Errno = 5082 + ERROR_CLUSTER_DATABASE_SEQMISMATCH syscall.Errno = 5083 + ERROR_RESMON_INVALID_STATE syscall.Errno = 5084 + ERROR_CLUSTER_GUM_NOT_LOCKER syscall.Errno = 5085 + ERROR_QUORUM_DISK_NOT_FOUND syscall.Errno = 5086 + ERROR_DATABASE_BACKUP_CORRUPT syscall.Errno = 5087 + ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT syscall.Errno = 5088 + ERROR_RESOURCE_PROPERTY_UNCHANGEABLE syscall.Errno = 5089 + ERROR_NO_ADMIN_ACCESS_POINT syscall.Errno = 5090 + ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE syscall.Errno = 5890 + ERROR_CLUSTER_QUORUMLOG_NOT_FOUND syscall.Errno = 5891 + ERROR_CLUSTER_MEMBERSHIP_HALT syscall.Errno = 5892 + ERROR_CLUSTER_INSTANCE_ID_MISMATCH syscall.Errno = 5893 + ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP syscall.Errno = 5894 + ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH syscall.Errno = 5895 + ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP syscall.Errno = 5896 + ERROR_CLUSTER_PARAMETER_MISMATCH syscall.Errno = 5897 + ERROR_NODE_CANNOT_BE_CLUSTERED syscall.Errno = 5898 + ERROR_CLUSTER_WRONG_OS_VERSION syscall.Errno = 5899 + ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME syscall.Errno = 5900 + ERROR_CLUSCFG_ALREADY_COMMITTED syscall.Errno = 5901 + ERROR_CLUSCFG_ROLLBACK_FAILED syscall.Errno = 5902 + ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT syscall.Errno = 5903 + ERROR_CLUSTER_OLD_VERSION syscall.Errno = 5904 + ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME syscall.Errno = 5905 + ERROR_CLUSTER_NO_NET_ADAPTERS syscall.Errno = 5906 + ERROR_CLUSTER_POISONED syscall.Errno = 5907 + ERROR_CLUSTER_GROUP_MOVING syscall.Errno = 5908 + ERROR_CLUSTER_RESOURCE_TYPE_BUSY syscall.Errno = 5909 + ERROR_RESOURCE_CALL_TIMED_OUT syscall.Errno = 5910 + ERROR_INVALID_CLUSTER_IPV6_ADDRESS syscall.Errno = 5911 + ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION syscall.Errno = 5912 + ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS syscall.Errno = 5913 + ERROR_CLUSTER_PARTIAL_SEND syscall.Errno = 5914 + ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION syscall.Errno = 5915 + ERROR_CLUSTER_INVALID_STRING_TERMINATION syscall.Errno = 5916 + ERROR_CLUSTER_INVALID_STRING_FORMAT syscall.Errno = 5917 + ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS syscall.Errno = 5918 + ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS syscall.Errno = 5919 + ERROR_CLUSTER_NULL_DATA syscall.Errno = 5920 + ERROR_CLUSTER_PARTIAL_READ syscall.Errno = 5921 + ERROR_CLUSTER_PARTIAL_WRITE syscall.Errno = 5922 + ERROR_CLUSTER_CANT_DESERIALIZE_DATA syscall.Errno = 5923 + ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT syscall.Errno = 5924 + ERROR_CLUSTER_NO_QUORUM syscall.Errno = 5925 + ERROR_CLUSTER_INVALID_IPV6_NETWORK syscall.Errno = 5926 + ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK syscall.Errno = 5927 + ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP syscall.Errno = 5928 + ERROR_DEPENDENCY_TREE_TOO_COMPLEX syscall.Errno = 5929 + ERROR_EXCEPTION_IN_RESOURCE_CALL syscall.Errno = 5930 + ERROR_CLUSTER_RHS_FAILED_INITIALIZATION syscall.Errno = 5931 + ERROR_CLUSTER_NOT_INSTALLED syscall.Errno = 5932 + ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE syscall.Errno = 5933 + ERROR_CLUSTER_MAX_NODES_IN_CLUSTER syscall.Errno = 5934 + ERROR_CLUSTER_TOO_MANY_NODES syscall.Errno = 5935 + ERROR_CLUSTER_OBJECT_ALREADY_USED syscall.Errno = 5936 + ERROR_NONCORE_GROUPS_FOUND syscall.Errno = 5937 + ERROR_FILE_SHARE_RESOURCE_CONFLICT syscall.Errno = 5938 + ERROR_CLUSTER_EVICT_INVALID_REQUEST syscall.Errno = 5939 + ERROR_CLUSTER_SINGLETON_RESOURCE syscall.Errno = 5940 + ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE syscall.Errno = 5941 + ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED syscall.Errno = 5942 + ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR syscall.Errno = 5943 + ERROR_CLUSTER_GROUP_BUSY syscall.Errno = 5944 + ERROR_CLUSTER_NOT_SHARED_VOLUME syscall.Errno = 5945 + ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR syscall.Errno = 5946 + ERROR_CLUSTER_SHARED_VOLUMES_IN_USE syscall.Errno = 5947 + ERROR_CLUSTER_USE_SHARED_VOLUMES_API syscall.Errno = 5948 + ERROR_CLUSTER_BACKUP_IN_PROGRESS syscall.Errno = 5949 + ERROR_NON_CSV_PATH syscall.Errno = 5950 + ERROR_CSV_VOLUME_NOT_LOCAL syscall.Errno = 5951 + ERROR_CLUSTER_WATCHDOG_TERMINATING syscall.Errno = 5952 + ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES syscall.Errno = 5953 + ERROR_CLUSTER_INVALID_NODE_WEIGHT syscall.Errno = 5954 + ERROR_CLUSTER_RESOURCE_VETOED_CALL syscall.Errno = 5955 + ERROR_RESMON_SYSTEM_RESOURCES_LACKING syscall.Errno = 5956 + ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION syscall.Errno = 5957 + ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE syscall.Errno = 5958 + ERROR_CLUSTER_GROUP_QUEUED syscall.Errno = 5959 + ERROR_CLUSTER_RESOURCE_LOCKED_STATUS syscall.Errno = 5960 + ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED syscall.Errno = 5961 + ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS syscall.Errno = 5962 + ERROR_CLUSTER_DISK_NOT_CONNECTED syscall.Errno = 5963 + ERROR_DISK_NOT_CSV_CAPABLE syscall.Errno = 5964 + ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE syscall.Errno = 5965 + ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED syscall.Errno = 5966 + ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED syscall.Errno = 5967 + ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES syscall.Errno = 5968 + ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES syscall.Errno = 5969 + ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE syscall.Errno = 5970 + ERROR_CLUSTER_AFFINITY_CONFLICT syscall.Errno = 5971 + ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE syscall.Errno = 5972 + ERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS syscall.Errno = 5973 + ERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED syscall.Errno = 5974 + ERROR_CLUSTER_UPGRADE_RESTART_REQUIRED syscall.Errno = 5975 + ERROR_CLUSTER_UPGRADE_IN_PROGRESS syscall.Errno = 5976 + ERROR_CLUSTER_UPGRADE_INCOMPLETE syscall.Errno = 5977 + ERROR_CLUSTER_NODE_IN_GRACE_PERIOD syscall.Errno = 5978 + ERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT syscall.Errno = 5979 + ERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER syscall.Errno = 5980 + ERROR_CLUSTER_RESOURCE_NOT_MONITORED syscall.Errno = 5981 + ERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED syscall.Errno = 5982 + ERROR_CLUSTER_RESOURCE_IS_REPLICATED syscall.Errno = 5983 + ERROR_CLUSTER_NODE_ISOLATED syscall.Errno = 5984 + ERROR_CLUSTER_NODE_QUARANTINED syscall.Errno = 5985 + ERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED syscall.Errno = 5986 + ERROR_CLUSTER_SPACE_DEGRADED syscall.Errno = 5987 + ERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED syscall.Errno = 5988 + ERROR_CLUSTER_CSV_INVALID_HANDLE syscall.Errno = 5989 + ERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR syscall.Errno = 5990 + ERROR_GROUPSET_NOT_AVAILABLE syscall.Errno = 5991 + ERROR_GROUPSET_NOT_FOUND syscall.Errno = 5992 + ERROR_GROUPSET_CANT_PROVIDE syscall.Errno = 5993 + ERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND syscall.Errno = 5994 + ERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY syscall.Errno = 5995 + ERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION syscall.Errno = 5996 + ERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS syscall.Errno = 5997 + ERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME syscall.Errno = 5998 + ERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE syscall.Errno = 5999 + ERROR_ENCRYPTION_FAILED syscall.Errno = 6000 + ERROR_DECRYPTION_FAILED syscall.Errno = 6001 + ERROR_FILE_ENCRYPTED syscall.Errno = 6002 + ERROR_NO_RECOVERY_POLICY syscall.Errno = 6003 + ERROR_NO_EFS syscall.Errno = 6004 + ERROR_WRONG_EFS syscall.Errno = 6005 + ERROR_NO_USER_KEYS syscall.Errno = 6006 + ERROR_FILE_NOT_ENCRYPTED syscall.Errno = 6007 + ERROR_NOT_EXPORT_FORMAT syscall.Errno = 6008 + ERROR_FILE_READ_ONLY syscall.Errno = 6009 + ERROR_DIR_EFS_DISALLOWED syscall.Errno = 6010 + ERROR_EFS_SERVER_NOT_TRUSTED syscall.Errno = 6011 + ERROR_BAD_RECOVERY_POLICY syscall.Errno = 6012 + ERROR_EFS_ALG_BLOB_TOO_BIG syscall.Errno = 6013 + ERROR_VOLUME_NOT_SUPPORT_EFS syscall.Errno = 6014 + ERROR_EFS_DISABLED syscall.Errno = 6015 + ERROR_EFS_VERSION_NOT_SUPPORT syscall.Errno = 6016 + ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE syscall.Errno = 6017 + ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER syscall.Errno = 6018 + ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE syscall.Errno = 6019 + ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE syscall.Errno = 6020 + ERROR_CS_ENCRYPTION_FILE_NOT_CSE syscall.Errno = 6021 + ERROR_ENCRYPTION_POLICY_DENIES_OPERATION syscall.Errno = 6022 + ERROR_WIP_ENCRYPTION_FAILED syscall.Errno = 6023 + ERROR_NO_BROWSER_SERVERS_FOUND syscall.Errno = 6118 + SCHED_E_SERVICE_NOT_LOCALSYSTEM syscall.Errno = 6200 + ERROR_LOG_SECTOR_INVALID syscall.Errno = 6600 + ERROR_LOG_SECTOR_PARITY_INVALID syscall.Errno = 6601 + ERROR_LOG_SECTOR_REMAPPED syscall.Errno = 6602 + ERROR_LOG_BLOCK_INCOMPLETE syscall.Errno = 6603 + ERROR_LOG_INVALID_RANGE syscall.Errno = 6604 + ERROR_LOG_BLOCKS_EXHAUSTED syscall.Errno = 6605 + ERROR_LOG_READ_CONTEXT_INVALID syscall.Errno = 6606 + ERROR_LOG_RESTART_INVALID syscall.Errno = 6607 + ERROR_LOG_BLOCK_VERSION syscall.Errno = 6608 + ERROR_LOG_BLOCK_INVALID syscall.Errno = 6609 + ERROR_LOG_READ_MODE_INVALID syscall.Errno = 6610 + ERROR_LOG_NO_RESTART syscall.Errno = 6611 + ERROR_LOG_METADATA_CORRUPT syscall.Errno = 6612 + ERROR_LOG_METADATA_INVALID syscall.Errno = 6613 + ERROR_LOG_METADATA_INCONSISTENT syscall.Errno = 6614 + ERROR_LOG_RESERVATION_INVALID syscall.Errno = 6615 + ERROR_LOG_CANT_DELETE syscall.Errno = 6616 + ERROR_LOG_CONTAINER_LIMIT_EXCEEDED syscall.Errno = 6617 + ERROR_LOG_START_OF_LOG syscall.Errno = 6618 + ERROR_LOG_POLICY_ALREADY_INSTALLED syscall.Errno = 6619 + ERROR_LOG_POLICY_NOT_INSTALLED syscall.Errno = 6620 + ERROR_LOG_POLICY_INVALID syscall.Errno = 6621 + ERROR_LOG_POLICY_CONFLICT syscall.Errno = 6622 + ERROR_LOG_PINNED_ARCHIVE_TAIL syscall.Errno = 6623 + ERROR_LOG_RECORD_NONEXISTENT syscall.Errno = 6624 + ERROR_LOG_RECORDS_RESERVED_INVALID syscall.Errno = 6625 + ERROR_LOG_SPACE_RESERVED_INVALID syscall.Errno = 6626 + ERROR_LOG_TAIL_INVALID syscall.Errno = 6627 + ERROR_LOG_FULL syscall.Errno = 6628 + ERROR_COULD_NOT_RESIZE_LOG syscall.Errno = 6629 + ERROR_LOG_MULTIPLEXED syscall.Errno = 6630 + ERROR_LOG_DEDICATED syscall.Errno = 6631 + ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS syscall.Errno = 6632 + ERROR_LOG_ARCHIVE_IN_PROGRESS syscall.Errno = 6633 + ERROR_LOG_EPHEMERAL syscall.Errno = 6634 + ERROR_LOG_NOT_ENOUGH_CONTAINERS syscall.Errno = 6635 + ERROR_LOG_CLIENT_ALREADY_REGISTERED syscall.Errno = 6636 + ERROR_LOG_CLIENT_NOT_REGISTERED syscall.Errno = 6637 + ERROR_LOG_FULL_HANDLER_IN_PROGRESS syscall.Errno = 6638 + ERROR_LOG_CONTAINER_READ_FAILED syscall.Errno = 6639 + ERROR_LOG_CONTAINER_WRITE_FAILED syscall.Errno = 6640 + ERROR_LOG_CONTAINER_OPEN_FAILED syscall.Errno = 6641 + ERROR_LOG_CONTAINER_STATE_INVALID syscall.Errno = 6642 + ERROR_LOG_STATE_INVALID syscall.Errno = 6643 + ERROR_LOG_PINNED syscall.Errno = 6644 + ERROR_LOG_METADATA_FLUSH_FAILED syscall.Errno = 6645 + ERROR_LOG_INCONSISTENT_SECURITY syscall.Errno = 6646 + ERROR_LOG_APPENDED_FLUSH_FAILED syscall.Errno = 6647 + ERROR_LOG_PINNED_RESERVATION syscall.Errno = 6648 + ERROR_INVALID_TRANSACTION syscall.Errno = 6700 + ERROR_TRANSACTION_NOT_ACTIVE syscall.Errno = 6701 + ERROR_TRANSACTION_REQUEST_NOT_VALID syscall.Errno = 6702 + ERROR_TRANSACTION_NOT_REQUESTED syscall.Errno = 6703 + ERROR_TRANSACTION_ALREADY_ABORTED syscall.Errno = 6704 + ERROR_TRANSACTION_ALREADY_COMMITTED syscall.Errno = 6705 + ERROR_TM_INITIALIZATION_FAILED syscall.Errno = 6706 + ERROR_RESOURCEMANAGER_READ_ONLY syscall.Errno = 6707 + ERROR_TRANSACTION_NOT_JOINED syscall.Errno = 6708 + ERROR_TRANSACTION_SUPERIOR_EXISTS syscall.Errno = 6709 + ERROR_CRM_PROTOCOL_ALREADY_EXISTS syscall.Errno = 6710 + ERROR_TRANSACTION_PROPAGATION_FAILED syscall.Errno = 6711 + ERROR_CRM_PROTOCOL_NOT_FOUND syscall.Errno = 6712 + ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER syscall.Errno = 6713 + ERROR_CURRENT_TRANSACTION_NOT_VALID syscall.Errno = 6714 + ERROR_TRANSACTION_NOT_FOUND syscall.Errno = 6715 + ERROR_RESOURCEMANAGER_NOT_FOUND syscall.Errno = 6716 + ERROR_ENLISTMENT_NOT_FOUND syscall.Errno = 6717 + ERROR_TRANSACTIONMANAGER_NOT_FOUND syscall.Errno = 6718 + ERROR_TRANSACTIONMANAGER_NOT_ONLINE syscall.Errno = 6719 + ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION syscall.Errno = 6720 + ERROR_TRANSACTION_NOT_ROOT syscall.Errno = 6721 + ERROR_TRANSACTION_OBJECT_EXPIRED syscall.Errno = 6722 + ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED syscall.Errno = 6723 + ERROR_TRANSACTION_RECORD_TOO_LONG syscall.Errno = 6724 + ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED syscall.Errno = 6725 + ERROR_TRANSACTION_INTEGRITY_VIOLATED syscall.Errno = 6726 + ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH syscall.Errno = 6727 + ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT syscall.Errno = 6728 + ERROR_TRANSACTION_MUST_WRITETHROUGH syscall.Errno = 6729 + ERROR_TRANSACTION_NO_SUPERIOR syscall.Errno = 6730 + ERROR_HEURISTIC_DAMAGE_POSSIBLE syscall.Errno = 6731 + ERROR_TRANSACTIONAL_CONFLICT syscall.Errno = 6800 + ERROR_RM_NOT_ACTIVE syscall.Errno = 6801 + ERROR_RM_METADATA_CORRUPT syscall.Errno = 6802 + ERROR_DIRECTORY_NOT_RM syscall.Errno = 6803 + ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE syscall.Errno = 6805 + ERROR_LOG_RESIZE_INVALID_SIZE syscall.Errno = 6806 + ERROR_OBJECT_NO_LONGER_EXISTS syscall.Errno = 6807 + ERROR_STREAM_MINIVERSION_NOT_FOUND syscall.Errno = 6808 + ERROR_STREAM_MINIVERSION_NOT_VALID syscall.Errno = 6809 + ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION syscall.Errno = 6810 + ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT syscall.Errno = 6811 + ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS syscall.Errno = 6812 + ERROR_REMOTE_FILE_VERSION_MISMATCH syscall.Errno = 6814 + ERROR_HANDLE_NO_LONGER_VALID syscall.Errno = 6815 + ERROR_NO_TXF_METADATA syscall.Errno = 6816 + ERROR_LOG_CORRUPTION_DETECTED syscall.Errno = 6817 + ERROR_CANT_RECOVER_WITH_HANDLE_OPEN syscall.Errno = 6818 + ERROR_RM_DISCONNECTED syscall.Errno = 6819 + ERROR_ENLISTMENT_NOT_SUPERIOR syscall.Errno = 6820 + ERROR_RECOVERY_NOT_NEEDED syscall.Errno = 6821 + ERROR_RM_ALREADY_STARTED syscall.Errno = 6822 + ERROR_FILE_IDENTITY_NOT_PERSISTENT syscall.Errno = 6823 + ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY syscall.Errno = 6824 + ERROR_CANT_CROSS_RM_BOUNDARY syscall.Errno = 6825 + ERROR_TXF_DIR_NOT_EMPTY syscall.Errno = 6826 + ERROR_INDOUBT_TRANSACTIONS_EXIST syscall.Errno = 6827 + ERROR_TM_VOLATILE syscall.Errno = 6828 + ERROR_ROLLBACK_TIMER_EXPIRED syscall.Errno = 6829 + ERROR_TXF_ATTRIBUTE_CORRUPT syscall.Errno = 6830 + ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6831 + ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED syscall.Errno = 6832 + ERROR_LOG_GROWTH_FAILED syscall.Errno = 6833 + ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE syscall.Errno = 6834 + ERROR_TXF_METADATA_ALREADY_PRESENT syscall.Errno = 6835 + ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET syscall.Errno = 6836 + ERROR_TRANSACTION_REQUIRED_PROMOTION syscall.Errno = 6837 + ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION syscall.Errno = 6838 + ERROR_TRANSACTIONS_NOT_FROZEN syscall.Errno = 6839 + ERROR_TRANSACTION_FREEZE_IN_PROGRESS syscall.Errno = 6840 + ERROR_NOT_SNAPSHOT_VOLUME syscall.Errno = 6841 + ERROR_NO_SAVEPOINT_WITH_OPEN_FILES syscall.Errno = 6842 + ERROR_DATA_LOST_REPAIR syscall.Errno = 6843 + ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6844 + ERROR_TM_IDENTITY_MISMATCH syscall.Errno = 6845 + ERROR_FLOATED_SECTION syscall.Errno = 6846 + ERROR_CANNOT_ACCEPT_TRANSACTED_WORK syscall.Errno = 6847 + ERROR_CANNOT_ABORT_TRANSACTIONS syscall.Errno = 6848 + ERROR_BAD_CLUSTERS syscall.Errno = 6849 + ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION syscall.Errno = 6850 + ERROR_VOLUME_DIRTY syscall.Errno = 6851 + ERROR_NO_LINK_TRACKING_IN_TRANSACTION syscall.Errno = 6852 + ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION syscall.Errno = 6853 + ERROR_EXPIRED_HANDLE syscall.Errno = 6854 + ERROR_TRANSACTION_NOT_ENLISTED syscall.Errno = 6855 + ERROR_CTX_WINSTATION_NAME_INVALID syscall.Errno = 7001 + ERROR_CTX_INVALID_PD syscall.Errno = 7002 + ERROR_CTX_PD_NOT_FOUND syscall.Errno = 7003 + ERROR_CTX_WD_NOT_FOUND syscall.Errno = 7004 + ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY syscall.Errno = 7005 + ERROR_CTX_SERVICE_NAME_COLLISION syscall.Errno = 7006 + ERROR_CTX_CLOSE_PENDING syscall.Errno = 7007 + ERROR_CTX_NO_OUTBUF syscall.Errno = 7008 + ERROR_CTX_MODEM_INF_NOT_FOUND syscall.Errno = 7009 + ERROR_CTX_INVALID_MODEMNAME syscall.Errno = 7010 + ERROR_CTX_MODEM_RESPONSE_ERROR syscall.Errno = 7011 + ERROR_CTX_MODEM_RESPONSE_TIMEOUT syscall.Errno = 7012 + ERROR_CTX_MODEM_RESPONSE_NO_CARRIER syscall.Errno = 7013 + ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE syscall.Errno = 7014 + ERROR_CTX_MODEM_RESPONSE_BUSY syscall.Errno = 7015 + ERROR_CTX_MODEM_RESPONSE_VOICE syscall.Errno = 7016 + ERROR_CTX_TD_ERROR syscall.Errno = 7017 + ERROR_CTX_WINSTATION_NOT_FOUND syscall.Errno = 7022 + ERROR_CTX_WINSTATION_ALREADY_EXISTS syscall.Errno = 7023 + ERROR_CTX_WINSTATION_BUSY syscall.Errno = 7024 + ERROR_CTX_BAD_VIDEO_MODE syscall.Errno = 7025 + ERROR_CTX_GRAPHICS_INVALID syscall.Errno = 7035 + ERROR_CTX_LOGON_DISABLED syscall.Errno = 7037 + ERROR_CTX_NOT_CONSOLE syscall.Errno = 7038 + ERROR_CTX_CLIENT_QUERY_TIMEOUT syscall.Errno = 7040 + ERROR_CTX_CONSOLE_DISCONNECT syscall.Errno = 7041 + ERROR_CTX_CONSOLE_CONNECT syscall.Errno = 7042 + ERROR_CTX_SHADOW_DENIED syscall.Errno = 7044 + ERROR_CTX_WINSTATION_ACCESS_DENIED syscall.Errno = 7045 + ERROR_CTX_INVALID_WD syscall.Errno = 7049 + ERROR_CTX_SHADOW_INVALID syscall.Errno = 7050 + ERROR_CTX_SHADOW_DISABLED syscall.Errno = 7051 + ERROR_CTX_CLIENT_LICENSE_IN_USE syscall.Errno = 7052 + ERROR_CTX_CLIENT_LICENSE_NOT_SET syscall.Errno = 7053 + ERROR_CTX_LICENSE_NOT_AVAILABLE syscall.Errno = 7054 + ERROR_CTX_LICENSE_CLIENT_INVALID syscall.Errno = 7055 + ERROR_CTX_LICENSE_EXPIRED syscall.Errno = 7056 + ERROR_CTX_SHADOW_NOT_RUNNING syscall.Errno = 7057 + ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE syscall.Errno = 7058 + ERROR_ACTIVATION_COUNT_EXCEEDED syscall.Errno = 7059 + ERROR_CTX_WINSTATIONS_DISABLED syscall.Errno = 7060 + ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED syscall.Errno = 7061 + ERROR_CTX_SESSION_IN_USE syscall.Errno = 7062 + ERROR_CTX_NO_FORCE_LOGOFF syscall.Errno = 7063 + ERROR_CTX_ACCOUNT_RESTRICTION syscall.Errno = 7064 + ERROR_RDP_PROTOCOL_ERROR syscall.Errno = 7065 + ERROR_CTX_CDM_CONNECT syscall.Errno = 7066 + ERROR_CTX_CDM_DISCONNECT syscall.Errno = 7067 + ERROR_CTX_SECURITY_LAYER_ERROR syscall.Errno = 7068 + ERROR_TS_INCOMPATIBLE_SESSIONS syscall.Errno = 7069 + ERROR_TS_VIDEO_SUBSYSTEM_ERROR syscall.Errno = 7070 + FRS_ERR_INVALID_API_SEQUENCE syscall.Errno = 8001 + FRS_ERR_STARTING_SERVICE syscall.Errno = 8002 + FRS_ERR_STOPPING_SERVICE syscall.Errno = 8003 + FRS_ERR_INTERNAL_API syscall.Errno = 8004 + FRS_ERR_INTERNAL syscall.Errno = 8005 + FRS_ERR_SERVICE_COMM syscall.Errno = 8006 + FRS_ERR_INSUFFICIENT_PRIV syscall.Errno = 8007 + FRS_ERR_AUTHENTICATION syscall.Errno = 8008 + FRS_ERR_PARENT_INSUFFICIENT_PRIV syscall.Errno = 8009 + FRS_ERR_PARENT_AUTHENTICATION syscall.Errno = 8010 + FRS_ERR_CHILD_TO_PARENT_COMM syscall.Errno = 8011 + FRS_ERR_PARENT_TO_CHILD_COMM syscall.Errno = 8012 + FRS_ERR_SYSVOL_POPULATE syscall.Errno = 8013 + FRS_ERR_SYSVOL_POPULATE_TIMEOUT syscall.Errno = 8014 + FRS_ERR_SYSVOL_IS_BUSY syscall.Errno = 8015 + FRS_ERR_SYSVOL_DEMOTE syscall.Errno = 8016 + FRS_ERR_INVALID_SERVICE_PARAMETER syscall.Errno = 8017 + DS_S_SUCCESS = ERROR_SUCCESS + ERROR_DS_NOT_INSTALLED syscall.Errno = 8200 + ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY syscall.Errno = 8201 + ERROR_DS_NO_ATTRIBUTE_OR_VALUE syscall.Errno = 8202 + ERROR_DS_INVALID_ATTRIBUTE_SYNTAX syscall.Errno = 8203 + ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED syscall.Errno = 8204 + ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS syscall.Errno = 8205 + ERROR_DS_BUSY syscall.Errno = 8206 + ERROR_DS_UNAVAILABLE syscall.Errno = 8207 + ERROR_DS_NO_RIDS_ALLOCATED syscall.Errno = 8208 + ERROR_DS_NO_MORE_RIDS syscall.Errno = 8209 + ERROR_DS_INCORRECT_ROLE_OWNER syscall.Errno = 8210 + ERROR_DS_RIDMGR_INIT_ERROR syscall.Errno = 8211 + ERROR_DS_OBJ_CLASS_VIOLATION syscall.Errno = 8212 + ERROR_DS_CANT_ON_NON_LEAF syscall.Errno = 8213 + ERROR_DS_CANT_ON_RDN syscall.Errno = 8214 + ERROR_DS_CANT_MOD_OBJ_CLASS syscall.Errno = 8215 + ERROR_DS_CROSS_DOM_MOVE_ERROR syscall.Errno = 8216 + ERROR_DS_GC_NOT_AVAILABLE syscall.Errno = 8217 + ERROR_SHARED_POLICY syscall.Errno = 8218 + ERROR_POLICY_OBJECT_NOT_FOUND syscall.Errno = 8219 + ERROR_POLICY_ONLY_IN_DS syscall.Errno = 8220 + ERROR_PROMOTION_ACTIVE syscall.Errno = 8221 + ERROR_NO_PROMOTION_ACTIVE syscall.Errno = 8222 + ERROR_DS_OPERATIONS_ERROR syscall.Errno = 8224 + ERROR_DS_PROTOCOL_ERROR syscall.Errno = 8225 + ERROR_DS_TIMELIMIT_EXCEEDED syscall.Errno = 8226 + ERROR_DS_SIZELIMIT_EXCEEDED syscall.Errno = 8227 + ERROR_DS_ADMIN_LIMIT_EXCEEDED syscall.Errno = 8228 + ERROR_DS_COMPARE_FALSE syscall.Errno = 8229 + ERROR_DS_COMPARE_TRUE syscall.Errno = 8230 + ERROR_DS_AUTH_METHOD_NOT_SUPPORTED syscall.Errno = 8231 + ERROR_DS_STRONG_AUTH_REQUIRED syscall.Errno = 8232 + ERROR_DS_INAPPROPRIATE_AUTH syscall.Errno = 8233 + ERROR_DS_AUTH_UNKNOWN syscall.Errno = 8234 + ERROR_DS_REFERRAL syscall.Errno = 8235 + ERROR_DS_UNAVAILABLE_CRIT_EXTENSION syscall.Errno = 8236 + ERROR_DS_CONFIDENTIALITY_REQUIRED syscall.Errno = 8237 + ERROR_DS_INAPPROPRIATE_MATCHING syscall.Errno = 8238 + ERROR_DS_CONSTRAINT_VIOLATION syscall.Errno = 8239 + ERROR_DS_NO_SUCH_OBJECT syscall.Errno = 8240 + ERROR_DS_ALIAS_PROBLEM syscall.Errno = 8241 + ERROR_DS_INVALID_DN_SYNTAX syscall.Errno = 8242 + ERROR_DS_IS_LEAF syscall.Errno = 8243 + ERROR_DS_ALIAS_DEREF_PROBLEM syscall.Errno = 8244 + ERROR_DS_UNWILLING_TO_PERFORM syscall.Errno = 8245 + ERROR_DS_LOOP_DETECT syscall.Errno = 8246 + ERROR_DS_NAMING_VIOLATION syscall.Errno = 8247 + ERROR_DS_OBJECT_RESULTS_TOO_LARGE syscall.Errno = 8248 + ERROR_DS_AFFECTS_MULTIPLE_DSAS syscall.Errno = 8249 + ERROR_DS_SERVER_DOWN syscall.Errno = 8250 + ERROR_DS_LOCAL_ERROR syscall.Errno = 8251 + ERROR_DS_ENCODING_ERROR syscall.Errno = 8252 + ERROR_DS_DECODING_ERROR syscall.Errno = 8253 + ERROR_DS_FILTER_UNKNOWN syscall.Errno = 8254 + ERROR_DS_PARAM_ERROR syscall.Errno = 8255 + ERROR_DS_NOT_SUPPORTED syscall.Errno = 8256 + ERROR_DS_NO_RESULTS_RETURNED syscall.Errno = 8257 + ERROR_DS_CONTROL_NOT_FOUND syscall.Errno = 8258 + ERROR_DS_CLIENT_LOOP syscall.Errno = 8259 + ERROR_DS_REFERRAL_LIMIT_EXCEEDED syscall.Errno = 8260 + ERROR_DS_SORT_CONTROL_MISSING syscall.Errno = 8261 + ERROR_DS_OFFSET_RANGE_ERROR syscall.Errno = 8262 + ERROR_DS_RIDMGR_DISABLED syscall.Errno = 8263 + ERROR_DS_ROOT_MUST_BE_NC syscall.Errno = 8301 + ERROR_DS_ADD_REPLICA_INHIBITED syscall.Errno = 8302 + ERROR_DS_ATT_NOT_DEF_IN_SCHEMA syscall.Errno = 8303 + ERROR_DS_MAX_OBJ_SIZE_EXCEEDED syscall.Errno = 8304 + ERROR_DS_OBJ_STRING_NAME_EXISTS syscall.Errno = 8305 + ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA syscall.Errno = 8306 + ERROR_DS_RDN_DOESNT_MATCH_SCHEMA syscall.Errno = 8307 + ERROR_DS_NO_REQUESTED_ATTS_FOUND syscall.Errno = 8308 + ERROR_DS_USER_BUFFER_TO_SMALL syscall.Errno = 8309 + ERROR_DS_ATT_IS_NOT_ON_OBJ syscall.Errno = 8310 + ERROR_DS_ILLEGAL_MOD_OPERATION syscall.Errno = 8311 + ERROR_DS_OBJ_TOO_LARGE syscall.Errno = 8312 + ERROR_DS_BAD_INSTANCE_TYPE syscall.Errno = 8313 + ERROR_DS_MASTERDSA_REQUIRED syscall.Errno = 8314 + ERROR_DS_OBJECT_CLASS_REQUIRED syscall.Errno = 8315 + ERROR_DS_MISSING_REQUIRED_ATT syscall.Errno = 8316 + ERROR_DS_ATT_NOT_DEF_FOR_CLASS syscall.Errno = 8317 + ERROR_DS_ATT_ALREADY_EXISTS syscall.Errno = 8318 + ERROR_DS_CANT_ADD_ATT_VALUES syscall.Errno = 8320 + ERROR_DS_SINGLE_VALUE_CONSTRAINT syscall.Errno = 8321 + ERROR_DS_RANGE_CONSTRAINT syscall.Errno = 8322 + ERROR_DS_ATT_VAL_ALREADY_EXISTS syscall.Errno = 8323 + ERROR_DS_CANT_REM_MISSING_ATT syscall.Errno = 8324 + ERROR_DS_CANT_REM_MISSING_ATT_VAL syscall.Errno = 8325 + ERROR_DS_ROOT_CANT_BE_SUBREF syscall.Errno = 8326 + ERROR_DS_NO_CHAINING syscall.Errno = 8327 + ERROR_DS_NO_CHAINED_EVAL syscall.Errno = 8328 + ERROR_DS_NO_PARENT_OBJECT syscall.Errno = 8329 + ERROR_DS_PARENT_IS_AN_ALIAS syscall.Errno = 8330 + ERROR_DS_CANT_MIX_MASTER_AND_REPS syscall.Errno = 8331 + ERROR_DS_CHILDREN_EXIST syscall.Errno = 8332 + ERROR_DS_OBJ_NOT_FOUND syscall.Errno = 8333 + ERROR_DS_ALIASED_OBJ_MISSING syscall.Errno = 8334 + ERROR_DS_BAD_NAME_SYNTAX syscall.Errno = 8335 + ERROR_DS_ALIAS_POINTS_TO_ALIAS syscall.Errno = 8336 + ERROR_DS_CANT_DEREF_ALIAS syscall.Errno = 8337 + ERROR_DS_OUT_OF_SCOPE syscall.Errno = 8338 + ERROR_DS_OBJECT_BEING_REMOVED syscall.Errno = 8339 + ERROR_DS_CANT_DELETE_DSA_OBJ syscall.Errno = 8340 + ERROR_DS_GENERIC_ERROR syscall.Errno = 8341 + ERROR_DS_DSA_MUST_BE_INT_MASTER syscall.Errno = 8342 + ERROR_DS_CLASS_NOT_DSA syscall.Errno = 8343 + ERROR_DS_INSUFF_ACCESS_RIGHTS syscall.Errno = 8344 + ERROR_DS_ILLEGAL_SUPERIOR syscall.Errno = 8345 + ERROR_DS_ATTRIBUTE_OWNED_BY_SAM syscall.Errno = 8346 + ERROR_DS_NAME_TOO_MANY_PARTS syscall.Errno = 8347 + ERROR_DS_NAME_TOO_LONG syscall.Errno = 8348 + ERROR_DS_NAME_VALUE_TOO_LONG syscall.Errno = 8349 + ERROR_DS_NAME_UNPARSEABLE syscall.Errno = 8350 + ERROR_DS_NAME_TYPE_UNKNOWN syscall.Errno = 8351 + ERROR_DS_NOT_AN_OBJECT syscall.Errno = 8352 + ERROR_DS_SEC_DESC_TOO_SHORT syscall.Errno = 8353 + ERROR_DS_SEC_DESC_INVALID syscall.Errno = 8354 + ERROR_DS_NO_DELETED_NAME syscall.Errno = 8355 + ERROR_DS_SUBREF_MUST_HAVE_PARENT syscall.Errno = 8356 + ERROR_DS_NCNAME_MUST_BE_NC syscall.Errno = 8357 + ERROR_DS_CANT_ADD_SYSTEM_ONLY syscall.Errno = 8358 + ERROR_DS_CLASS_MUST_BE_CONCRETE syscall.Errno = 8359 + ERROR_DS_INVALID_DMD syscall.Errno = 8360 + ERROR_DS_OBJ_GUID_EXISTS syscall.Errno = 8361 + ERROR_DS_NOT_ON_BACKLINK syscall.Errno = 8362 + ERROR_DS_NO_CROSSREF_FOR_NC syscall.Errno = 8363 + ERROR_DS_SHUTTING_DOWN syscall.Errno = 8364 + ERROR_DS_UNKNOWN_OPERATION syscall.Errno = 8365 + ERROR_DS_INVALID_ROLE_OWNER syscall.Errno = 8366 + ERROR_DS_COULDNT_CONTACT_FSMO syscall.Errno = 8367 + ERROR_DS_CROSS_NC_DN_RENAME syscall.Errno = 8368 + ERROR_DS_CANT_MOD_SYSTEM_ONLY syscall.Errno = 8369 + ERROR_DS_REPLICATOR_ONLY syscall.Errno = 8370 + ERROR_DS_OBJ_CLASS_NOT_DEFINED syscall.Errno = 8371 + ERROR_DS_OBJ_CLASS_NOT_SUBCLASS syscall.Errno = 8372 + ERROR_DS_NAME_REFERENCE_INVALID syscall.Errno = 8373 + ERROR_DS_CROSS_REF_EXISTS syscall.Errno = 8374 + ERROR_DS_CANT_DEL_MASTER_CROSSREF syscall.Errno = 8375 + ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD syscall.Errno = 8376 + ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX syscall.Errno = 8377 + ERROR_DS_DUP_RDN syscall.Errno = 8378 + ERROR_DS_DUP_OID syscall.Errno = 8379 + ERROR_DS_DUP_MAPI_ID syscall.Errno = 8380 + ERROR_DS_DUP_SCHEMA_ID_GUID syscall.Errno = 8381 + ERROR_DS_DUP_LDAP_DISPLAY_NAME syscall.Errno = 8382 + ERROR_DS_SEMANTIC_ATT_TEST syscall.Errno = 8383 + ERROR_DS_SYNTAX_MISMATCH syscall.Errno = 8384 + ERROR_DS_EXISTS_IN_MUST_HAVE syscall.Errno = 8385 + ERROR_DS_EXISTS_IN_MAY_HAVE syscall.Errno = 8386 + ERROR_DS_NONEXISTENT_MAY_HAVE syscall.Errno = 8387 + ERROR_DS_NONEXISTENT_MUST_HAVE syscall.Errno = 8388 + ERROR_DS_AUX_CLS_TEST_FAIL syscall.Errno = 8389 + ERROR_DS_NONEXISTENT_POSS_SUP syscall.Errno = 8390 + ERROR_DS_SUB_CLS_TEST_FAIL syscall.Errno = 8391 + ERROR_DS_BAD_RDN_ATT_ID_SYNTAX syscall.Errno = 8392 + ERROR_DS_EXISTS_IN_AUX_CLS syscall.Errno = 8393 + ERROR_DS_EXISTS_IN_SUB_CLS syscall.Errno = 8394 + ERROR_DS_EXISTS_IN_POSS_SUP syscall.Errno = 8395 + ERROR_DS_RECALCSCHEMA_FAILED syscall.Errno = 8396 + ERROR_DS_TREE_DELETE_NOT_FINISHED syscall.Errno = 8397 + ERROR_DS_CANT_DELETE syscall.Errno = 8398 + ERROR_DS_ATT_SCHEMA_REQ_ID syscall.Errno = 8399 + ERROR_DS_BAD_ATT_SCHEMA_SYNTAX syscall.Errno = 8400 + ERROR_DS_CANT_CACHE_ATT syscall.Errno = 8401 + ERROR_DS_CANT_CACHE_CLASS syscall.Errno = 8402 + ERROR_DS_CANT_REMOVE_ATT_CACHE syscall.Errno = 8403 + ERROR_DS_CANT_REMOVE_CLASS_CACHE syscall.Errno = 8404 + ERROR_DS_CANT_RETRIEVE_DN syscall.Errno = 8405 + ERROR_DS_MISSING_SUPREF syscall.Errno = 8406 + ERROR_DS_CANT_RETRIEVE_INSTANCE syscall.Errno = 8407 + ERROR_DS_CODE_INCONSISTENCY syscall.Errno = 8408 + ERROR_DS_DATABASE_ERROR syscall.Errno = 8409 + ERROR_DS_GOVERNSID_MISSING syscall.Errno = 8410 + ERROR_DS_MISSING_EXPECTED_ATT syscall.Errno = 8411 + ERROR_DS_NCNAME_MISSING_CR_REF syscall.Errno = 8412 + ERROR_DS_SECURITY_CHECKING_ERROR syscall.Errno = 8413 + ERROR_DS_SCHEMA_NOT_LOADED syscall.Errno = 8414 + ERROR_DS_SCHEMA_ALLOC_FAILED syscall.Errno = 8415 + ERROR_DS_ATT_SCHEMA_REQ_SYNTAX syscall.Errno = 8416 + ERROR_DS_GCVERIFY_ERROR syscall.Errno = 8417 + ERROR_DS_DRA_SCHEMA_MISMATCH syscall.Errno = 8418 + ERROR_DS_CANT_FIND_DSA_OBJ syscall.Errno = 8419 + ERROR_DS_CANT_FIND_EXPECTED_NC syscall.Errno = 8420 + ERROR_DS_CANT_FIND_NC_IN_CACHE syscall.Errno = 8421 + ERROR_DS_CANT_RETRIEVE_CHILD syscall.Errno = 8422 + ERROR_DS_SECURITY_ILLEGAL_MODIFY syscall.Errno = 8423 + ERROR_DS_CANT_REPLACE_HIDDEN_REC syscall.Errno = 8424 + ERROR_DS_BAD_HIERARCHY_FILE syscall.Errno = 8425 + ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED syscall.Errno = 8426 + ERROR_DS_CONFIG_PARAM_MISSING syscall.Errno = 8427 + ERROR_DS_COUNTING_AB_INDICES_FAILED syscall.Errno = 8428 + ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED syscall.Errno = 8429 + ERROR_DS_INTERNAL_FAILURE syscall.Errno = 8430 + ERROR_DS_UNKNOWN_ERROR syscall.Errno = 8431 + ERROR_DS_ROOT_REQUIRES_CLASS_TOP syscall.Errno = 8432 + ERROR_DS_REFUSING_FSMO_ROLES syscall.Errno = 8433 + ERROR_DS_MISSING_FSMO_SETTINGS syscall.Errno = 8434 + ERROR_DS_UNABLE_TO_SURRENDER_ROLES syscall.Errno = 8435 + ERROR_DS_DRA_GENERIC syscall.Errno = 8436 + ERROR_DS_DRA_INVALID_PARAMETER syscall.Errno = 8437 + ERROR_DS_DRA_BUSY syscall.Errno = 8438 + ERROR_DS_DRA_BAD_DN syscall.Errno = 8439 + ERROR_DS_DRA_BAD_NC syscall.Errno = 8440 + ERROR_DS_DRA_DN_EXISTS syscall.Errno = 8441 + ERROR_DS_DRA_INTERNAL_ERROR syscall.Errno = 8442 + ERROR_DS_DRA_INCONSISTENT_DIT syscall.Errno = 8443 + ERROR_DS_DRA_CONNECTION_FAILED syscall.Errno = 8444 + ERROR_DS_DRA_BAD_INSTANCE_TYPE syscall.Errno = 8445 + ERROR_DS_DRA_OUT_OF_MEM syscall.Errno = 8446 + ERROR_DS_DRA_MAIL_PROBLEM syscall.Errno = 8447 + ERROR_DS_DRA_REF_ALREADY_EXISTS syscall.Errno = 8448 + ERROR_DS_DRA_REF_NOT_FOUND syscall.Errno = 8449 + ERROR_DS_DRA_OBJ_IS_REP_SOURCE syscall.Errno = 8450 + ERROR_DS_DRA_DB_ERROR syscall.Errno = 8451 + ERROR_DS_DRA_NO_REPLICA syscall.Errno = 8452 + ERROR_DS_DRA_ACCESS_DENIED syscall.Errno = 8453 + ERROR_DS_DRA_NOT_SUPPORTED syscall.Errno = 8454 + ERROR_DS_DRA_RPC_CANCELLED syscall.Errno = 8455 + ERROR_DS_DRA_SOURCE_DISABLED syscall.Errno = 8456 + ERROR_DS_DRA_SINK_DISABLED syscall.Errno = 8457 + ERROR_DS_DRA_NAME_COLLISION syscall.Errno = 8458 + ERROR_DS_DRA_SOURCE_REINSTALLED syscall.Errno = 8459 + ERROR_DS_DRA_MISSING_PARENT syscall.Errno = 8460 + ERROR_DS_DRA_PREEMPTED syscall.Errno = 8461 + ERROR_DS_DRA_ABANDON_SYNC syscall.Errno = 8462 + ERROR_DS_DRA_SHUTDOWN syscall.Errno = 8463 + ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET syscall.Errno = 8464 + ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA syscall.Errno = 8465 + ERROR_DS_DRA_EXTN_CONNECTION_FAILED syscall.Errno = 8466 + ERROR_DS_INSTALL_SCHEMA_MISMATCH syscall.Errno = 8467 + ERROR_DS_DUP_LINK_ID syscall.Errno = 8468 + ERROR_DS_NAME_ERROR_RESOLVING syscall.Errno = 8469 + ERROR_DS_NAME_ERROR_NOT_FOUND syscall.Errno = 8470 + ERROR_DS_NAME_ERROR_NOT_UNIQUE syscall.Errno = 8471 + ERROR_DS_NAME_ERROR_NO_MAPPING syscall.Errno = 8472 + ERROR_DS_NAME_ERROR_DOMAIN_ONLY syscall.Errno = 8473 + ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING syscall.Errno = 8474 + ERROR_DS_CONSTRUCTED_ATT_MOD syscall.Errno = 8475 + ERROR_DS_WRONG_OM_OBJ_CLASS syscall.Errno = 8476 + ERROR_DS_DRA_REPL_PENDING syscall.Errno = 8477 + ERROR_DS_DS_REQUIRED syscall.Errno = 8478 + ERROR_DS_INVALID_LDAP_DISPLAY_NAME syscall.Errno = 8479 + ERROR_DS_NON_BASE_SEARCH syscall.Errno = 8480 + ERROR_DS_CANT_RETRIEVE_ATTS syscall.Errno = 8481 + ERROR_DS_BACKLINK_WITHOUT_LINK syscall.Errno = 8482 + ERROR_DS_EPOCH_MISMATCH syscall.Errno = 8483 + ERROR_DS_SRC_NAME_MISMATCH syscall.Errno = 8484 + ERROR_DS_SRC_AND_DST_NC_IDENTICAL syscall.Errno = 8485 + ERROR_DS_DST_NC_MISMATCH syscall.Errno = 8486 + ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC syscall.Errno = 8487 + ERROR_DS_SRC_GUID_MISMATCH syscall.Errno = 8488 + ERROR_DS_CANT_MOVE_DELETED_OBJECT syscall.Errno = 8489 + ERROR_DS_PDC_OPERATION_IN_PROGRESS syscall.Errno = 8490 + ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD syscall.Errno = 8491 + ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION syscall.Errno = 8492 + ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS syscall.Errno = 8493 + ERROR_DS_NC_MUST_HAVE_NC_PARENT syscall.Errno = 8494 + ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE syscall.Errno = 8495 + ERROR_DS_DST_DOMAIN_NOT_NATIVE syscall.Errno = 8496 + ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER syscall.Errno = 8497 + ERROR_DS_CANT_MOVE_ACCOUNT_GROUP syscall.Errno = 8498 + ERROR_DS_CANT_MOVE_RESOURCE_GROUP syscall.Errno = 8499 + ERROR_DS_INVALID_SEARCH_FLAG syscall.Errno = 8500 + ERROR_DS_NO_TREE_DELETE_ABOVE_NC syscall.Errno = 8501 + ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE syscall.Errno = 8502 + ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE syscall.Errno = 8503 + ERROR_DS_SAM_INIT_FAILURE syscall.Errno = 8504 + ERROR_DS_SENSITIVE_GROUP_VIOLATION syscall.Errno = 8505 + ERROR_DS_CANT_MOD_PRIMARYGROUPID syscall.Errno = 8506 + ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD syscall.Errno = 8507 + ERROR_DS_NONSAFE_SCHEMA_CHANGE syscall.Errno = 8508 + ERROR_DS_SCHEMA_UPDATE_DISALLOWED syscall.Errno = 8509 + ERROR_DS_CANT_CREATE_UNDER_SCHEMA syscall.Errno = 8510 + ERROR_DS_INSTALL_NO_SRC_SCH_VERSION syscall.Errno = 8511 + ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE syscall.Errno = 8512 + ERROR_DS_INVALID_GROUP_TYPE syscall.Errno = 8513 + ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN syscall.Errno = 8514 + ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN syscall.Errno = 8515 + ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER syscall.Errno = 8516 + ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER syscall.Errno = 8517 + ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER syscall.Errno = 8518 + ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER syscall.Errno = 8519 + ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER syscall.Errno = 8520 + ERROR_DS_HAVE_PRIMARY_MEMBERS syscall.Errno = 8521 + ERROR_DS_STRING_SD_CONVERSION_FAILED syscall.Errno = 8522 + ERROR_DS_NAMING_MASTER_GC syscall.Errno = 8523 + ERROR_DS_DNS_LOOKUP_FAILURE syscall.Errno = 8524 + ERROR_DS_COULDNT_UPDATE_SPNS syscall.Errno = 8525 + ERROR_DS_CANT_RETRIEVE_SD syscall.Errno = 8526 + ERROR_DS_KEY_NOT_UNIQUE syscall.Errno = 8527 + ERROR_DS_WRONG_LINKED_ATT_SYNTAX syscall.Errno = 8528 + ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD syscall.Errno = 8529 + ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY syscall.Errno = 8530 + ERROR_DS_CANT_START syscall.Errno = 8531 + ERROR_DS_INIT_FAILURE syscall.Errno = 8532 + ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION syscall.Errno = 8533 + ERROR_DS_SOURCE_DOMAIN_IN_FOREST syscall.Errno = 8534 + ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST syscall.Errno = 8535 + ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED syscall.Errno = 8536 + ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN syscall.Errno = 8537 + ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER syscall.Errno = 8538 + ERROR_DS_SRC_SID_EXISTS_IN_FOREST syscall.Errno = 8539 + ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH syscall.Errno = 8540 + ERROR_SAM_INIT_FAILURE syscall.Errno = 8541 + ERROR_DS_DRA_SCHEMA_INFO_SHIP syscall.Errno = 8542 + ERROR_DS_DRA_SCHEMA_CONFLICT syscall.Errno = 8543 + ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT syscall.Errno = 8544 + ERROR_DS_DRA_OBJ_NC_MISMATCH syscall.Errno = 8545 + ERROR_DS_NC_STILL_HAS_DSAS syscall.Errno = 8546 + ERROR_DS_GC_REQUIRED syscall.Errno = 8547 + ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY syscall.Errno = 8548 + ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS syscall.Errno = 8549 + ERROR_DS_CANT_ADD_TO_GC syscall.Errno = 8550 + ERROR_DS_NO_CHECKPOINT_WITH_PDC syscall.Errno = 8551 + ERROR_DS_SOURCE_AUDITING_NOT_ENABLED syscall.Errno = 8552 + ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC syscall.Errno = 8553 + ERROR_DS_INVALID_NAME_FOR_SPN syscall.Errno = 8554 + ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS syscall.Errno = 8555 + ERROR_DS_UNICODEPWD_NOT_IN_QUOTES syscall.Errno = 8556 + ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED syscall.Errno = 8557 + ERROR_DS_MUST_BE_RUN_ON_DST_DC syscall.Errno = 8558 + ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER syscall.Errno = 8559 + ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ syscall.Errno = 8560 + ERROR_DS_INIT_FAILURE_CONSOLE syscall.Errno = 8561 + ERROR_DS_SAM_INIT_FAILURE_CONSOLE syscall.Errno = 8562 + ERROR_DS_FOREST_VERSION_TOO_HIGH syscall.Errno = 8563 + ERROR_DS_DOMAIN_VERSION_TOO_HIGH syscall.Errno = 8564 + ERROR_DS_FOREST_VERSION_TOO_LOW syscall.Errno = 8565 + ERROR_DS_DOMAIN_VERSION_TOO_LOW syscall.Errno = 8566 + ERROR_DS_INCOMPATIBLE_VERSION syscall.Errno = 8567 + ERROR_DS_LOW_DSA_VERSION syscall.Errno = 8568 + ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN syscall.Errno = 8569 + ERROR_DS_NOT_SUPPORTED_SORT_ORDER syscall.Errno = 8570 + ERROR_DS_NAME_NOT_UNIQUE syscall.Errno = 8571 + ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 syscall.Errno = 8572 + ERROR_DS_OUT_OF_VERSION_STORE syscall.Errno = 8573 + ERROR_DS_INCOMPATIBLE_CONTROLS_USED syscall.Errno = 8574 + ERROR_DS_NO_REF_DOMAIN syscall.Errno = 8575 + ERROR_DS_RESERVED_LINK_ID syscall.Errno = 8576 + ERROR_DS_LINK_ID_NOT_AVAILABLE syscall.Errno = 8577 + ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER syscall.Errno = 8578 + ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE syscall.Errno = 8579 + ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC syscall.Errno = 8580 + ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG syscall.Errno = 8581 + ERROR_DS_MODIFYDN_WRONG_GRANDPARENT syscall.Errno = 8582 + ERROR_DS_NAME_ERROR_TRUST_REFERRAL syscall.Errno = 8583 + ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER syscall.Errno = 8584 + ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD syscall.Errno = 8585 + ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 syscall.Errno = 8586 + ERROR_DS_THREAD_LIMIT_EXCEEDED syscall.Errno = 8587 + ERROR_DS_NOT_CLOSEST syscall.Errno = 8588 + ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF syscall.Errno = 8589 + ERROR_DS_SINGLE_USER_MODE_FAILED syscall.Errno = 8590 + ERROR_DS_NTDSCRIPT_SYNTAX_ERROR syscall.Errno = 8591 + ERROR_DS_NTDSCRIPT_PROCESS_ERROR syscall.Errno = 8592 + ERROR_DS_DIFFERENT_REPL_EPOCHS syscall.Errno = 8593 + ERROR_DS_DRS_EXTENSIONS_CHANGED syscall.Errno = 8594 + ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR syscall.Errno = 8595 + ERROR_DS_NO_MSDS_INTID syscall.Errno = 8596 + ERROR_DS_DUP_MSDS_INTID syscall.Errno = 8597 + ERROR_DS_EXISTS_IN_RDNATTID syscall.Errno = 8598 + ERROR_DS_AUTHORIZATION_FAILED syscall.Errno = 8599 + ERROR_DS_INVALID_SCRIPT syscall.Errno = 8600 + ERROR_DS_REMOTE_CROSSREF_OP_FAILED syscall.Errno = 8601 + ERROR_DS_CROSS_REF_BUSY syscall.Errno = 8602 + ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN syscall.Errno = 8603 + ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC syscall.Errno = 8604 + ERROR_DS_DUPLICATE_ID_FOUND syscall.Errno = 8605 + ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT syscall.Errno = 8606 + ERROR_DS_GROUP_CONVERSION_ERROR syscall.Errno = 8607 + ERROR_DS_CANT_MOVE_APP_BASIC_GROUP syscall.Errno = 8608 + ERROR_DS_CANT_MOVE_APP_QUERY_GROUP syscall.Errno = 8609 + ERROR_DS_ROLE_NOT_VERIFIED syscall.Errno = 8610 + ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL syscall.Errno = 8611 + ERROR_DS_DOMAIN_RENAME_IN_PROGRESS syscall.Errno = 8612 + ERROR_DS_EXISTING_AD_CHILD_NC syscall.Errno = 8613 + ERROR_DS_REPL_LIFETIME_EXCEEDED syscall.Errno = 8614 + ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER syscall.Errno = 8615 + ERROR_DS_LDAP_SEND_QUEUE_FULL syscall.Errno = 8616 + ERROR_DS_DRA_OUT_SCHEDULE_WINDOW syscall.Errno = 8617 + ERROR_DS_POLICY_NOT_KNOWN syscall.Errno = 8618 + ERROR_NO_SITE_SETTINGS_OBJECT syscall.Errno = 8619 + ERROR_NO_SECRETS syscall.Errno = 8620 + ERROR_NO_WRITABLE_DC_FOUND syscall.Errno = 8621 + ERROR_DS_NO_SERVER_OBJECT syscall.Errno = 8622 + ERROR_DS_NO_NTDSA_OBJECT syscall.Errno = 8623 + ERROR_DS_NON_ASQ_SEARCH syscall.Errno = 8624 + ERROR_DS_AUDIT_FAILURE syscall.Errno = 8625 + ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE syscall.Errno = 8626 + ERROR_DS_INVALID_SEARCH_FLAG_TUPLE syscall.Errno = 8627 + ERROR_DS_HIERARCHY_TABLE_TOO_DEEP syscall.Errno = 8628 + ERROR_DS_DRA_CORRUPT_UTD_VECTOR syscall.Errno = 8629 + ERROR_DS_DRA_SECRETS_DENIED syscall.Errno = 8630 + ERROR_DS_RESERVED_MAPI_ID syscall.Errno = 8631 + ERROR_DS_MAPI_ID_NOT_AVAILABLE syscall.Errno = 8632 + ERROR_DS_DRA_MISSING_KRBTGT_SECRET syscall.Errno = 8633 + ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST syscall.Errno = 8634 + ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST syscall.Errno = 8635 + ERROR_INVALID_USER_PRINCIPAL_NAME syscall.Errno = 8636 + ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS syscall.Errno = 8637 + ERROR_DS_OID_NOT_FOUND syscall.Errno = 8638 + ERROR_DS_DRA_RECYCLED_TARGET syscall.Errno = 8639 + ERROR_DS_DISALLOWED_NC_REDIRECT syscall.Errno = 8640 + ERROR_DS_HIGH_ADLDS_FFL syscall.Errno = 8641 + ERROR_DS_HIGH_DSA_VERSION syscall.Errno = 8642 + ERROR_DS_LOW_ADLDS_FFL syscall.Errno = 8643 + ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION syscall.Errno = 8644 + ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED syscall.Errno = 8645 + ERROR_INCORRECT_ACCOUNT_TYPE syscall.Errno = 8646 + ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST syscall.Errno = 8647 + ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST syscall.Errno = 8648 + ERROR_DS_MISSING_FOREST_TRUST syscall.Errno = 8649 + ERROR_DS_VALUE_KEY_NOT_UNIQUE syscall.Errno = 8650 + DNS_ERROR_RESPONSE_CODES_BASE syscall.Errno = 9000 + DNS_ERROR_RCODE_NO_ERROR = ERROR_SUCCESS + DNS_ERROR_MASK syscall.Errno = 0x00002328 + DNS_ERROR_RCODE_FORMAT_ERROR syscall.Errno = 9001 + DNS_ERROR_RCODE_SERVER_FAILURE syscall.Errno = 9002 + DNS_ERROR_RCODE_NAME_ERROR syscall.Errno = 9003 + DNS_ERROR_RCODE_NOT_IMPLEMENTED syscall.Errno = 9004 + DNS_ERROR_RCODE_REFUSED syscall.Errno = 9005 + DNS_ERROR_RCODE_YXDOMAIN syscall.Errno = 9006 + DNS_ERROR_RCODE_YXRRSET syscall.Errno = 9007 + DNS_ERROR_RCODE_NXRRSET syscall.Errno = 9008 + DNS_ERROR_RCODE_NOTAUTH syscall.Errno = 9009 + DNS_ERROR_RCODE_NOTZONE syscall.Errno = 9010 + DNS_ERROR_RCODE_BADSIG syscall.Errno = 9016 + DNS_ERROR_RCODE_BADKEY syscall.Errno = 9017 + DNS_ERROR_RCODE_BADTIME syscall.Errno = 9018 + DNS_ERROR_RCODE_LAST = DNS_ERROR_RCODE_BADTIME + DNS_ERROR_DNSSEC_BASE syscall.Errno = 9100 + DNS_ERROR_KEYMASTER_REQUIRED syscall.Errno = 9101 + DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE syscall.Errno = 9102 + DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1 syscall.Errno = 9103 + DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS syscall.Errno = 9104 + DNS_ERROR_UNSUPPORTED_ALGORITHM syscall.Errno = 9105 + DNS_ERROR_INVALID_KEY_SIZE syscall.Errno = 9106 + DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE syscall.Errno = 9107 + DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION syscall.Errno = 9108 + DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR syscall.Errno = 9109 + DNS_ERROR_UNEXPECTED_CNG_ERROR syscall.Errno = 9110 + DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION syscall.Errno = 9111 + DNS_ERROR_KSP_NOT_ACCESSIBLE syscall.Errno = 9112 + DNS_ERROR_TOO_MANY_SKDS syscall.Errno = 9113 + DNS_ERROR_INVALID_ROLLOVER_PERIOD syscall.Errno = 9114 + DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET syscall.Errno = 9115 + DNS_ERROR_ROLLOVER_IN_PROGRESS syscall.Errno = 9116 + DNS_ERROR_STANDBY_KEY_NOT_PRESENT syscall.Errno = 9117 + DNS_ERROR_NOT_ALLOWED_ON_ZSK syscall.Errno = 9118 + DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD syscall.Errno = 9119 + DNS_ERROR_ROLLOVER_ALREADY_QUEUED syscall.Errno = 9120 + DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE syscall.Errno = 9121 + DNS_ERROR_BAD_KEYMASTER syscall.Errno = 9122 + DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD syscall.Errno = 9123 + DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT syscall.Errno = 9124 + DNS_ERROR_DNSSEC_IS_DISABLED syscall.Errno = 9125 + DNS_ERROR_INVALID_XML syscall.Errno = 9126 + DNS_ERROR_NO_VALID_TRUST_ANCHORS syscall.Errno = 9127 + DNS_ERROR_ROLLOVER_NOT_POKEABLE syscall.Errno = 9128 + DNS_ERROR_NSEC3_NAME_COLLISION syscall.Errno = 9129 + DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1 syscall.Errno = 9130 + DNS_ERROR_PACKET_FMT_BASE syscall.Errno = 9500 + DNS_INFO_NO_RECORDS syscall.Errno = 9501 + DNS_ERROR_BAD_PACKET syscall.Errno = 9502 + DNS_ERROR_NO_PACKET syscall.Errno = 9503 + DNS_ERROR_RCODE syscall.Errno = 9504 + DNS_ERROR_UNSECURE_PACKET syscall.Errno = 9505 + DNS_STATUS_PACKET_UNSECURE = DNS_ERROR_UNSECURE_PACKET + DNS_REQUEST_PENDING syscall.Errno = 9506 + DNS_ERROR_NO_MEMORY = ERROR_OUTOFMEMORY + DNS_ERROR_INVALID_NAME = ERROR_INVALID_NAME + DNS_ERROR_INVALID_DATA = ERROR_INVALID_DATA + DNS_ERROR_GENERAL_API_BASE syscall.Errno = 9550 + DNS_ERROR_INVALID_TYPE syscall.Errno = 9551 + DNS_ERROR_INVALID_IP_ADDRESS syscall.Errno = 9552 + DNS_ERROR_INVALID_PROPERTY syscall.Errno = 9553 + DNS_ERROR_TRY_AGAIN_LATER syscall.Errno = 9554 + DNS_ERROR_NOT_UNIQUE syscall.Errno = 9555 + DNS_ERROR_NON_RFC_NAME syscall.Errno = 9556 + DNS_STATUS_FQDN syscall.Errno = 9557 + DNS_STATUS_DOTTED_NAME syscall.Errno = 9558 + DNS_STATUS_SINGLE_PART_NAME syscall.Errno = 9559 + DNS_ERROR_INVALID_NAME_CHAR syscall.Errno = 9560 + DNS_ERROR_NUMERIC_NAME syscall.Errno = 9561 + DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER syscall.Errno = 9562 + DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION syscall.Errno = 9563 + DNS_ERROR_CANNOT_FIND_ROOT_HINTS syscall.Errno = 9564 + DNS_ERROR_INCONSISTENT_ROOT_HINTS syscall.Errno = 9565 + DNS_ERROR_DWORD_VALUE_TOO_SMALL syscall.Errno = 9566 + DNS_ERROR_DWORD_VALUE_TOO_LARGE syscall.Errno = 9567 + DNS_ERROR_BACKGROUND_LOADING syscall.Errno = 9568 + DNS_ERROR_NOT_ALLOWED_ON_RODC syscall.Errno = 9569 + DNS_ERROR_NOT_ALLOWED_UNDER_DNAME syscall.Errno = 9570 + DNS_ERROR_DELEGATION_REQUIRED syscall.Errno = 9571 + DNS_ERROR_INVALID_POLICY_TABLE syscall.Errno = 9572 + DNS_ERROR_ADDRESS_REQUIRED syscall.Errno = 9573 + DNS_ERROR_ZONE_BASE syscall.Errno = 9600 + DNS_ERROR_ZONE_DOES_NOT_EXIST syscall.Errno = 9601 + DNS_ERROR_NO_ZONE_INFO syscall.Errno = 9602 + DNS_ERROR_INVALID_ZONE_OPERATION syscall.Errno = 9603 + DNS_ERROR_ZONE_CONFIGURATION_ERROR syscall.Errno = 9604 + DNS_ERROR_ZONE_HAS_NO_SOA_RECORD syscall.Errno = 9605 + DNS_ERROR_ZONE_HAS_NO_NS_RECORDS syscall.Errno = 9606 + DNS_ERROR_ZONE_LOCKED syscall.Errno = 9607 + DNS_ERROR_ZONE_CREATION_FAILED syscall.Errno = 9608 + DNS_ERROR_ZONE_ALREADY_EXISTS syscall.Errno = 9609 + DNS_ERROR_AUTOZONE_ALREADY_EXISTS syscall.Errno = 9610 + DNS_ERROR_INVALID_ZONE_TYPE syscall.Errno = 9611 + DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP syscall.Errno = 9612 + DNS_ERROR_ZONE_NOT_SECONDARY syscall.Errno = 9613 + DNS_ERROR_NEED_SECONDARY_ADDRESSES syscall.Errno = 9614 + DNS_ERROR_WINS_INIT_FAILED syscall.Errno = 9615 + DNS_ERROR_NEED_WINS_SERVERS syscall.Errno = 9616 + DNS_ERROR_NBSTAT_INIT_FAILED syscall.Errno = 9617 + DNS_ERROR_SOA_DELETE_INVALID syscall.Errno = 9618 + DNS_ERROR_FORWARDER_ALREADY_EXISTS syscall.Errno = 9619 + DNS_ERROR_ZONE_REQUIRES_MASTER_IP syscall.Errno = 9620 + DNS_ERROR_ZONE_IS_SHUTDOWN syscall.Errno = 9621 + DNS_ERROR_ZONE_LOCKED_FOR_SIGNING syscall.Errno = 9622 + DNS_ERROR_DATAFILE_BASE syscall.Errno = 9650 + DNS_ERROR_PRIMARY_REQUIRES_DATAFILE syscall.Errno = 9651 + DNS_ERROR_INVALID_DATAFILE_NAME syscall.Errno = 9652 + DNS_ERROR_DATAFILE_OPEN_FAILURE syscall.Errno = 9653 + DNS_ERROR_FILE_WRITEBACK_FAILED syscall.Errno = 9654 + DNS_ERROR_DATAFILE_PARSING syscall.Errno = 9655 + DNS_ERROR_DATABASE_BASE syscall.Errno = 9700 + DNS_ERROR_RECORD_DOES_NOT_EXIST syscall.Errno = 9701 + DNS_ERROR_RECORD_FORMAT syscall.Errno = 9702 + DNS_ERROR_NODE_CREATION_FAILED syscall.Errno = 9703 + DNS_ERROR_UNKNOWN_RECORD_TYPE syscall.Errno = 9704 + DNS_ERROR_RECORD_TIMED_OUT syscall.Errno = 9705 + DNS_ERROR_NAME_NOT_IN_ZONE syscall.Errno = 9706 + DNS_ERROR_CNAME_LOOP syscall.Errno = 9707 + DNS_ERROR_NODE_IS_CNAME syscall.Errno = 9708 + DNS_ERROR_CNAME_COLLISION syscall.Errno = 9709 + DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT syscall.Errno = 9710 + DNS_ERROR_RECORD_ALREADY_EXISTS syscall.Errno = 9711 + DNS_ERROR_SECONDARY_DATA syscall.Errno = 9712 + DNS_ERROR_NO_CREATE_CACHE_DATA syscall.Errno = 9713 + DNS_ERROR_NAME_DOES_NOT_EXIST syscall.Errno = 9714 + DNS_WARNING_PTR_CREATE_FAILED syscall.Errno = 9715 + DNS_WARNING_DOMAIN_UNDELETED syscall.Errno = 9716 + DNS_ERROR_DS_UNAVAILABLE syscall.Errno = 9717 + DNS_ERROR_DS_ZONE_ALREADY_EXISTS syscall.Errno = 9718 + DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE syscall.Errno = 9719 + DNS_ERROR_NODE_IS_DNAME syscall.Errno = 9720 + DNS_ERROR_DNAME_COLLISION syscall.Errno = 9721 + DNS_ERROR_ALIAS_LOOP syscall.Errno = 9722 + DNS_ERROR_OPERATION_BASE syscall.Errno = 9750 + DNS_INFO_AXFR_COMPLETE syscall.Errno = 9751 + DNS_ERROR_AXFR syscall.Errno = 9752 + DNS_INFO_ADDED_LOCAL_WINS syscall.Errno = 9753 + DNS_ERROR_SECURE_BASE syscall.Errno = 9800 + DNS_STATUS_CONTINUE_NEEDED syscall.Errno = 9801 + DNS_ERROR_SETUP_BASE syscall.Errno = 9850 + DNS_ERROR_NO_TCPIP syscall.Errno = 9851 + DNS_ERROR_NO_DNS_SERVERS syscall.Errno = 9852 + DNS_ERROR_DP_BASE syscall.Errno = 9900 + DNS_ERROR_DP_DOES_NOT_EXIST syscall.Errno = 9901 + DNS_ERROR_DP_ALREADY_EXISTS syscall.Errno = 9902 + DNS_ERROR_DP_NOT_ENLISTED syscall.Errno = 9903 + DNS_ERROR_DP_ALREADY_ENLISTED syscall.Errno = 9904 + DNS_ERROR_DP_NOT_AVAILABLE syscall.Errno = 9905 + DNS_ERROR_DP_FSMO_ERROR syscall.Errno = 9906 + DNS_ERROR_RRL_NOT_ENABLED syscall.Errno = 9911 + DNS_ERROR_RRL_INVALID_WINDOW_SIZE syscall.Errno = 9912 + DNS_ERROR_RRL_INVALID_IPV4_PREFIX syscall.Errno = 9913 + DNS_ERROR_RRL_INVALID_IPV6_PREFIX syscall.Errno = 9914 + DNS_ERROR_RRL_INVALID_TC_RATE syscall.Errno = 9915 + DNS_ERROR_RRL_INVALID_LEAK_RATE syscall.Errno = 9916 + DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE syscall.Errno = 9917 + DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS syscall.Errno = 9921 + DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST syscall.Errno = 9922 + DNS_ERROR_VIRTUALIZATION_TREE_LOCKED syscall.Errno = 9923 + DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME syscall.Errno = 9924 + DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE syscall.Errno = 9925 + DNS_ERROR_ZONESCOPE_ALREADY_EXISTS syscall.Errno = 9951 + DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST syscall.Errno = 9952 + DNS_ERROR_DEFAULT_ZONESCOPE syscall.Errno = 9953 + DNS_ERROR_INVALID_ZONESCOPE_NAME syscall.Errno = 9954 + DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES syscall.Errno = 9955 + DNS_ERROR_LOAD_ZONESCOPE_FAILED syscall.Errno = 9956 + DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED syscall.Errno = 9957 + DNS_ERROR_INVALID_SCOPE_NAME syscall.Errno = 9958 + DNS_ERROR_SCOPE_DOES_NOT_EXIST syscall.Errno = 9959 + DNS_ERROR_DEFAULT_SCOPE syscall.Errno = 9960 + DNS_ERROR_INVALID_SCOPE_OPERATION syscall.Errno = 9961 + DNS_ERROR_SCOPE_LOCKED syscall.Errno = 9962 + DNS_ERROR_SCOPE_ALREADY_EXISTS syscall.Errno = 9963 + DNS_ERROR_POLICY_ALREADY_EXISTS syscall.Errno = 9971 + DNS_ERROR_POLICY_DOES_NOT_EXIST syscall.Errno = 9972 + DNS_ERROR_POLICY_INVALID_CRITERIA syscall.Errno = 9973 + DNS_ERROR_POLICY_INVALID_SETTINGS syscall.Errno = 9974 + DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED syscall.Errno = 9975 + DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST syscall.Errno = 9976 + DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS syscall.Errno = 9977 + DNS_ERROR_SUBNET_DOES_NOT_EXIST syscall.Errno = 9978 + DNS_ERROR_SUBNET_ALREADY_EXISTS syscall.Errno = 9979 + DNS_ERROR_POLICY_LOCKED syscall.Errno = 9980 + DNS_ERROR_POLICY_INVALID_WEIGHT syscall.Errno = 9981 + DNS_ERROR_POLICY_INVALID_NAME syscall.Errno = 9982 + DNS_ERROR_POLICY_MISSING_CRITERIA syscall.Errno = 9983 + DNS_ERROR_INVALID_CLIENT_SUBNET_NAME syscall.Errno = 9984 + DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID syscall.Errno = 9985 + DNS_ERROR_POLICY_SCOPE_MISSING syscall.Errno = 9986 + DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED syscall.Errno = 9987 + DNS_ERROR_SERVERSCOPE_IS_REFERENCED syscall.Errno = 9988 + DNS_ERROR_ZONESCOPE_IS_REFERENCED syscall.Errno = 9989 + DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET syscall.Errno = 9990 + DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL syscall.Errno = 9991 + DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL syscall.Errno = 9992 + DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE syscall.Errno = 9993 + DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN syscall.Errno = 9994 + DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE syscall.Errno = 9995 + DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY syscall.Errno = 9996 + WSABASEERR syscall.Errno = 10000 + WSAEINTR syscall.Errno = 10004 + WSAEBADF syscall.Errno = 10009 + WSAEACCES syscall.Errno = 10013 + WSAEFAULT syscall.Errno = 10014 + WSAEINVAL syscall.Errno = 10022 + WSAEMFILE syscall.Errno = 10024 + WSAEWOULDBLOCK syscall.Errno = 10035 + WSAEINPROGRESS syscall.Errno = 10036 + WSAEALREADY syscall.Errno = 10037 + WSAENOTSOCK syscall.Errno = 10038 + WSAEDESTADDRREQ syscall.Errno = 10039 + WSAEMSGSIZE syscall.Errno = 10040 + WSAEPROTOTYPE syscall.Errno = 10041 + WSAENOPROTOOPT syscall.Errno = 10042 + WSAEPROTONOSUPPORT syscall.Errno = 10043 + WSAESOCKTNOSUPPORT syscall.Errno = 10044 + WSAEOPNOTSUPP syscall.Errno = 10045 + WSAEPFNOSUPPORT syscall.Errno = 10046 + WSAEAFNOSUPPORT syscall.Errno = 10047 + WSAEADDRINUSE syscall.Errno = 10048 + WSAEADDRNOTAVAIL syscall.Errno = 10049 + WSAENETDOWN syscall.Errno = 10050 + WSAENETUNREACH syscall.Errno = 10051 + WSAENETRESET syscall.Errno = 10052 + WSAECONNABORTED syscall.Errno = 10053 + WSAECONNRESET syscall.Errno = 10054 + WSAENOBUFS syscall.Errno = 10055 + WSAEISCONN syscall.Errno = 10056 + WSAENOTCONN syscall.Errno = 10057 + WSAESHUTDOWN syscall.Errno = 10058 + WSAETOOMANYREFS syscall.Errno = 10059 + WSAETIMEDOUT syscall.Errno = 10060 + WSAECONNREFUSED syscall.Errno = 10061 + WSAELOOP syscall.Errno = 10062 + WSAENAMETOOLONG syscall.Errno = 10063 + WSAEHOSTDOWN syscall.Errno = 10064 + WSAEHOSTUNREACH syscall.Errno = 10065 + WSAENOTEMPTY syscall.Errno = 10066 + WSAEPROCLIM syscall.Errno = 10067 + WSAEUSERS syscall.Errno = 10068 + WSAEDQUOT syscall.Errno = 10069 + WSAESTALE syscall.Errno = 10070 + WSAEREMOTE syscall.Errno = 10071 + WSASYSNOTREADY syscall.Errno = 10091 + WSAVERNOTSUPPORTED syscall.Errno = 10092 + WSANOTINITIALISED syscall.Errno = 10093 + WSAEDISCON syscall.Errno = 10101 + WSAENOMORE syscall.Errno = 10102 + WSAECANCELLED syscall.Errno = 10103 + WSAEINVALIDPROCTABLE syscall.Errno = 10104 + WSAEINVALIDPROVIDER syscall.Errno = 10105 + WSAEPROVIDERFAILEDINIT syscall.Errno = 10106 + WSASYSCALLFAILURE syscall.Errno = 10107 + WSASERVICE_NOT_FOUND syscall.Errno = 10108 + WSATYPE_NOT_FOUND syscall.Errno = 10109 + WSA_E_NO_MORE syscall.Errno = 10110 + WSA_E_CANCELLED syscall.Errno = 10111 + WSAEREFUSED syscall.Errno = 10112 + WSAHOST_NOT_FOUND syscall.Errno = 11001 + WSATRY_AGAIN syscall.Errno = 11002 + WSANO_RECOVERY syscall.Errno = 11003 + WSANO_DATA syscall.Errno = 11004 + WSA_QOS_RECEIVERS syscall.Errno = 11005 + WSA_QOS_SENDERS syscall.Errno = 11006 + WSA_QOS_NO_SENDERS syscall.Errno = 11007 + WSA_QOS_NO_RECEIVERS syscall.Errno = 11008 + WSA_QOS_REQUEST_CONFIRMED syscall.Errno = 11009 + WSA_QOS_ADMISSION_FAILURE syscall.Errno = 11010 + WSA_QOS_POLICY_FAILURE syscall.Errno = 11011 + WSA_QOS_BAD_STYLE syscall.Errno = 11012 + WSA_QOS_BAD_OBJECT syscall.Errno = 11013 + WSA_QOS_TRAFFIC_CTRL_ERROR syscall.Errno = 11014 + WSA_QOS_GENERIC_ERROR syscall.Errno = 11015 + WSA_QOS_ESERVICETYPE syscall.Errno = 11016 + WSA_QOS_EFLOWSPEC syscall.Errno = 11017 + WSA_QOS_EPROVSPECBUF syscall.Errno = 11018 + WSA_QOS_EFILTERSTYLE syscall.Errno = 11019 + WSA_QOS_EFILTERTYPE syscall.Errno = 11020 + WSA_QOS_EFILTERCOUNT syscall.Errno = 11021 + WSA_QOS_EOBJLENGTH syscall.Errno = 11022 + WSA_QOS_EFLOWCOUNT syscall.Errno = 11023 + WSA_QOS_EUNKOWNPSOBJ syscall.Errno = 11024 + WSA_QOS_EPOLICYOBJ syscall.Errno = 11025 + WSA_QOS_EFLOWDESC syscall.Errno = 11026 + WSA_QOS_EPSFLOWSPEC syscall.Errno = 11027 + WSA_QOS_EPSFILTERSPEC syscall.Errno = 11028 + WSA_QOS_ESDMODEOBJ syscall.Errno = 11029 + WSA_QOS_ESHAPERATEOBJ syscall.Errno = 11030 + WSA_QOS_RESERVED_PETYPE syscall.Errno = 11031 + WSA_SECURE_HOST_NOT_FOUND syscall.Errno = 11032 + WSA_IPSEC_NAME_POLICY_ERROR syscall.Errno = 11033 + ERROR_IPSEC_QM_POLICY_EXISTS syscall.Errno = 13000 + ERROR_IPSEC_QM_POLICY_NOT_FOUND syscall.Errno = 13001 + ERROR_IPSEC_QM_POLICY_IN_USE syscall.Errno = 13002 + ERROR_IPSEC_MM_POLICY_EXISTS syscall.Errno = 13003 + ERROR_IPSEC_MM_POLICY_NOT_FOUND syscall.Errno = 13004 + ERROR_IPSEC_MM_POLICY_IN_USE syscall.Errno = 13005 + ERROR_IPSEC_MM_FILTER_EXISTS syscall.Errno = 13006 + ERROR_IPSEC_MM_FILTER_NOT_FOUND syscall.Errno = 13007 + ERROR_IPSEC_TRANSPORT_FILTER_EXISTS syscall.Errno = 13008 + ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND syscall.Errno = 13009 + ERROR_IPSEC_MM_AUTH_EXISTS syscall.Errno = 13010 + ERROR_IPSEC_MM_AUTH_NOT_FOUND syscall.Errno = 13011 + ERROR_IPSEC_MM_AUTH_IN_USE syscall.Errno = 13012 + ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND syscall.Errno = 13013 + ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND syscall.Errno = 13014 + ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND syscall.Errno = 13015 + ERROR_IPSEC_TUNNEL_FILTER_EXISTS syscall.Errno = 13016 + ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND syscall.Errno = 13017 + ERROR_IPSEC_MM_FILTER_PENDING_DELETION syscall.Errno = 13018 + ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION syscall.Errno = 13019 + ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION syscall.Errno = 13020 + ERROR_IPSEC_MM_POLICY_PENDING_DELETION syscall.Errno = 13021 + ERROR_IPSEC_MM_AUTH_PENDING_DELETION syscall.Errno = 13022 + ERROR_IPSEC_QM_POLICY_PENDING_DELETION syscall.Errno = 13023 + WARNING_IPSEC_MM_POLICY_PRUNED syscall.Errno = 13024 + WARNING_IPSEC_QM_POLICY_PRUNED syscall.Errno = 13025 + ERROR_IPSEC_IKE_NEG_STATUS_BEGIN syscall.Errno = 13800 + ERROR_IPSEC_IKE_AUTH_FAIL syscall.Errno = 13801 + ERROR_IPSEC_IKE_ATTRIB_FAIL syscall.Errno = 13802 + ERROR_IPSEC_IKE_NEGOTIATION_PENDING syscall.Errno = 13803 + ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR syscall.Errno = 13804 + ERROR_IPSEC_IKE_TIMED_OUT syscall.Errno = 13805 + ERROR_IPSEC_IKE_NO_CERT syscall.Errno = 13806 + ERROR_IPSEC_IKE_SA_DELETED syscall.Errno = 13807 + ERROR_IPSEC_IKE_SA_REAPED syscall.Errno = 13808 + ERROR_IPSEC_IKE_MM_ACQUIRE_DROP syscall.Errno = 13809 + ERROR_IPSEC_IKE_QM_ACQUIRE_DROP syscall.Errno = 13810 + ERROR_IPSEC_IKE_QUEUE_DROP_MM syscall.Errno = 13811 + ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM syscall.Errno = 13812 + ERROR_IPSEC_IKE_DROP_NO_RESPONSE syscall.Errno = 13813 + ERROR_IPSEC_IKE_MM_DELAY_DROP syscall.Errno = 13814 + ERROR_IPSEC_IKE_QM_DELAY_DROP syscall.Errno = 13815 + ERROR_IPSEC_IKE_ERROR syscall.Errno = 13816 + ERROR_IPSEC_IKE_CRL_FAILED syscall.Errno = 13817 + ERROR_IPSEC_IKE_INVALID_KEY_USAGE syscall.Errno = 13818 + ERROR_IPSEC_IKE_INVALID_CERT_TYPE syscall.Errno = 13819 + ERROR_IPSEC_IKE_NO_PRIVATE_KEY syscall.Errno = 13820 + ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY syscall.Errno = 13821 + ERROR_IPSEC_IKE_DH_FAIL syscall.Errno = 13822 + ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED syscall.Errno = 13823 + ERROR_IPSEC_IKE_INVALID_HEADER syscall.Errno = 13824 + ERROR_IPSEC_IKE_NO_POLICY syscall.Errno = 13825 + ERROR_IPSEC_IKE_INVALID_SIGNATURE syscall.Errno = 13826 + ERROR_IPSEC_IKE_KERBEROS_ERROR syscall.Errno = 13827 + ERROR_IPSEC_IKE_NO_PUBLIC_KEY syscall.Errno = 13828 + ERROR_IPSEC_IKE_PROCESS_ERR syscall.Errno = 13829 + ERROR_IPSEC_IKE_PROCESS_ERR_SA syscall.Errno = 13830 + ERROR_IPSEC_IKE_PROCESS_ERR_PROP syscall.Errno = 13831 + ERROR_IPSEC_IKE_PROCESS_ERR_TRANS syscall.Errno = 13832 + ERROR_IPSEC_IKE_PROCESS_ERR_KE syscall.Errno = 13833 + ERROR_IPSEC_IKE_PROCESS_ERR_ID syscall.Errno = 13834 + ERROR_IPSEC_IKE_PROCESS_ERR_CERT syscall.Errno = 13835 + ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ syscall.Errno = 13836 + ERROR_IPSEC_IKE_PROCESS_ERR_HASH syscall.Errno = 13837 + ERROR_IPSEC_IKE_PROCESS_ERR_SIG syscall.Errno = 13838 + ERROR_IPSEC_IKE_PROCESS_ERR_NONCE syscall.Errno = 13839 + ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY syscall.Errno = 13840 + ERROR_IPSEC_IKE_PROCESS_ERR_DELETE syscall.Errno = 13841 + ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR syscall.Errno = 13842 + ERROR_IPSEC_IKE_INVALID_PAYLOAD syscall.Errno = 13843 + ERROR_IPSEC_IKE_LOAD_SOFT_SA syscall.Errno = 13844 + ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN syscall.Errno = 13845 + ERROR_IPSEC_IKE_INVALID_COOKIE syscall.Errno = 13846 + ERROR_IPSEC_IKE_NO_PEER_CERT syscall.Errno = 13847 + ERROR_IPSEC_IKE_PEER_CRL_FAILED syscall.Errno = 13848 + ERROR_IPSEC_IKE_POLICY_CHANGE syscall.Errno = 13849 + ERROR_IPSEC_IKE_NO_MM_POLICY syscall.Errno = 13850 + ERROR_IPSEC_IKE_NOTCBPRIV syscall.Errno = 13851 + ERROR_IPSEC_IKE_SECLOADFAIL syscall.Errno = 13852 + ERROR_IPSEC_IKE_FAILSSPINIT syscall.Errno = 13853 + ERROR_IPSEC_IKE_FAILQUERYSSP syscall.Errno = 13854 + ERROR_IPSEC_IKE_SRVACQFAIL syscall.Errno = 13855 + ERROR_IPSEC_IKE_SRVQUERYCRED syscall.Errno = 13856 + ERROR_IPSEC_IKE_GETSPIFAIL syscall.Errno = 13857 + ERROR_IPSEC_IKE_INVALID_FILTER syscall.Errno = 13858 + ERROR_IPSEC_IKE_OUT_OF_MEMORY syscall.Errno = 13859 + ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED syscall.Errno = 13860 + ERROR_IPSEC_IKE_INVALID_POLICY syscall.Errno = 13861 + ERROR_IPSEC_IKE_UNKNOWN_DOI syscall.Errno = 13862 + ERROR_IPSEC_IKE_INVALID_SITUATION syscall.Errno = 13863 + ERROR_IPSEC_IKE_DH_FAILURE syscall.Errno = 13864 + ERROR_IPSEC_IKE_INVALID_GROUP syscall.Errno = 13865 + ERROR_IPSEC_IKE_ENCRYPT syscall.Errno = 13866 + ERROR_IPSEC_IKE_DECRYPT syscall.Errno = 13867 + ERROR_IPSEC_IKE_POLICY_MATCH syscall.Errno = 13868 + ERROR_IPSEC_IKE_UNSUPPORTED_ID syscall.Errno = 13869 + ERROR_IPSEC_IKE_INVALID_HASH syscall.Errno = 13870 + ERROR_IPSEC_IKE_INVALID_HASH_ALG syscall.Errno = 13871 + ERROR_IPSEC_IKE_INVALID_HASH_SIZE syscall.Errno = 13872 + ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG syscall.Errno = 13873 + ERROR_IPSEC_IKE_INVALID_AUTH_ALG syscall.Errno = 13874 + ERROR_IPSEC_IKE_INVALID_SIG syscall.Errno = 13875 + ERROR_IPSEC_IKE_LOAD_FAILED syscall.Errno = 13876 + ERROR_IPSEC_IKE_RPC_DELETE syscall.Errno = 13877 + ERROR_IPSEC_IKE_BENIGN_REINIT syscall.Errno = 13878 + ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY syscall.Errno = 13879 + ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION syscall.Errno = 13880 + ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN syscall.Errno = 13881 + ERROR_IPSEC_IKE_MM_LIMIT syscall.Errno = 13882 + ERROR_IPSEC_IKE_NEGOTIATION_DISABLED syscall.Errno = 13883 + ERROR_IPSEC_IKE_QM_LIMIT syscall.Errno = 13884 + ERROR_IPSEC_IKE_MM_EXPIRED syscall.Errno = 13885 + ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID syscall.Errno = 13886 + ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH syscall.Errno = 13887 + ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID syscall.Errno = 13888 + ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD syscall.Errno = 13889 + ERROR_IPSEC_IKE_DOS_COOKIE_SENT syscall.Errno = 13890 + ERROR_IPSEC_IKE_SHUTTING_DOWN syscall.Errno = 13891 + ERROR_IPSEC_IKE_CGA_AUTH_FAILED syscall.Errno = 13892 + ERROR_IPSEC_IKE_PROCESS_ERR_NATOA syscall.Errno = 13893 + ERROR_IPSEC_IKE_INVALID_MM_FOR_QM syscall.Errno = 13894 + ERROR_IPSEC_IKE_QM_EXPIRED syscall.Errno = 13895 + ERROR_IPSEC_IKE_TOO_MANY_FILTERS syscall.Errno = 13896 + ERROR_IPSEC_IKE_NEG_STATUS_END syscall.Errno = 13897 + ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL syscall.Errno = 13898 + ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE syscall.Errno = 13899 + ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING syscall.Errno = 13900 + ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING syscall.Errno = 13901 + ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS syscall.Errno = 13902 + ERROR_IPSEC_IKE_RATELIMIT_DROP syscall.Errno = 13903 + ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE syscall.Errno = 13904 + ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE syscall.Errno = 13905 + ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE syscall.Errno = 13906 + ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY syscall.Errno = 13907 + ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE syscall.Errno = 13908 + ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END syscall.Errno = 13909 + ERROR_IPSEC_BAD_SPI syscall.Errno = 13910 + ERROR_IPSEC_SA_LIFETIME_EXPIRED syscall.Errno = 13911 + ERROR_IPSEC_WRONG_SA syscall.Errno = 13912 + ERROR_IPSEC_REPLAY_CHECK_FAILED syscall.Errno = 13913 + ERROR_IPSEC_INVALID_PACKET syscall.Errno = 13914 + ERROR_IPSEC_INTEGRITY_CHECK_FAILED syscall.Errno = 13915 + ERROR_IPSEC_CLEAR_TEXT_DROP syscall.Errno = 13916 + ERROR_IPSEC_AUTH_FIREWALL_DROP syscall.Errno = 13917 + ERROR_IPSEC_THROTTLE_DROP syscall.Errno = 13918 + ERROR_IPSEC_DOSP_BLOCK syscall.Errno = 13925 + ERROR_IPSEC_DOSP_RECEIVED_MULTICAST syscall.Errno = 13926 + ERROR_IPSEC_DOSP_INVALID_PACKET syscall.Errno = 13927 + ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED syscall.Errno = 13928 + ERROR_IPSEC_DOSP_MAX_ENTRIES syscall.Errno = 13929 + ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED syscall.Errno = 13930 + ERROR_IPSEC_DOSP_NOT_INSTALLED syscall.Errno = 13931 + ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES syscall.Errno = 13932 + ERROR_SXS_SECTION_NOT_FOUND syscall.Errno = 14000 + ERROR_SXS_CANT_GEN_ACTCTX syscall.Errno = 14001 + ERROR_SXS_INVALID_ACTCTXDATA_FORMAT syscall.Errno = 14002 + ERROR_SXS_ASSEMBLY_NOT_FOUND syscall.Errno = 14003 + ERROR_SXS_MANIFEST_FORMAT_ERROR syscall.Errno = 14004 + ERROR_SXS_MANIFEST_PARSE_ERROR syscall.Errno = 14005 + ERROR_SXS_ACTIVATION_CONTEXT_DISABLED syscall.Errno = 14006 + ERROR_SXS_KEY_NOT_FOUND syscall.Errno = 14007 + ERROR_SXS_VERSION_CONFLICT syscall.Errno = 14008 + ERROR_SXS_WRONG_SECTION_TYPE syscall.Errno = 14009 + ERROR_SXS_THREAD_QUERIES_DISABLED syscall.Errno = 14010 + ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET syscall.Errno = 14011 + ERROR_SXS_UNKNOWN_ENCODING_GROUP syscall.Errno = 14012 + ERROR_SXS_UNKNOWN_ENCODING syscall.Errno = 14013 + ERROR_SXS_INVALID_XML_NAMESPACE_URI syscall.Errno = 14014 + ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED syscall.Errno = 14015 + ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED syscall.Errno = 14016 + ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE syscall.Errno = 14017 + ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE syscall.Errno = 14018 + ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE syscall.Errno = 14019 + ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT syscall.Errno = 14020 + ERROR_SXS_DUPLICATE_DLL_NAME syscall.Errno = 14021 + ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME syscall.Errno = 14022 + ERROR_SXS_DUPLICATE_CLSID syscall.Errno = 14023 + ERROR_SXS_DUPLICATE_IID syscall.Errno = 14024 + ERROR_SXS_DUPLICATE_TLBID syscall.Errno = 14025 + ERROR_SXS_DUPLICATE_PROGID syscall.Errno = 14026 + ERROR_SXS_DUPLICATE_ASSEMBLY_NAME syscall.Errno = 14027 + ERROR_SXS_FILE_HASH_MISMATCH syscall.Errno = 14028 + ERROR_SXS_POLICY_PARSE_ERROR syscall.Errno = 14029 + ERROR_SXS_XML_E_MISSINGQUOTE syscall.Errno = 14030 + ERROR_SXS_XML_E_COMMENTSYNTAX syscall.Errno = 14031 + ERROR_SXS_XML_E_BADSTARTNAMECHAR syscall.Errno = 14032 + ERROR_SXS_XML_E_BADNAMECHAR syscall.Errno = 14033 + ERROR_SXS_XML_E_BADCHARINSTRING syscall.Errno = 14034 + ERROR_SXS_XML_E_XMLDECLSYNTAX syscall.Errno = 14035 + ERROR_SXS_XML_E_BADCHARDATA syscall.Errno = 14036 + ERROR_SXS_XML_E_MISSINGWHITESPACE syscall.Errno = 14037 + ERROR_SXS_XML_E_EXPECTINGTAGEND syscall.Errno = 14038 + ERROR_SXS_XML_E_MISSINGSEMICOLON syscall.Errno = 14039 + ERROR_SXS_XML_E_UNBALANCEDPAREN syscall.Errno = 14040 + ERROR_SXS_XML_E_INTERNALERROR syscall.Errno = 14041 + ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE syscall.Errno = 14042 + ERROR_SXS_XML_E_INCOMPLETE_ENCODING syscall.Errno = 14043 + ERROR_SXS_XML_E_MISSING_PAREN syscall.Errno = 14044 + ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE syscall.Errno = 14045 + ERROR_SXS_XML_E_MULTIPLE_COLONS syscall.Errno = 14046 + ERROR_SXS_XML_E_INVALID_DECIMAL syscall.Errno = 14047 + ERROR_SXS_XML_E_INVALID_HEXIDECIMAL syscall.Errno = 14048 + ERROR_SXS_XML_E_INVALID_UNICODE syscall.Errno = 14049 + ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK syscall.Errno = 14050 + ERROR_SXS_XML_E_UNEXPECTEDENDTAG syscall.Errno = 14051 + ERROR_SXS_XML_E_UNCLOSEDTAG syscall.Errno = 14052 + ERROR_SXS_XML_E_DUPLICATEATTRIBUTE syscall.Errno = 14053 + ERROR_SXS_XML_E_MULTIPLEROOTS syscall.Errno = 14054 + ERROR_SXS_XML_E_INVALIDATROOTLEVEL syscall.Errno = 14055 + ERROR_SXS_XML_E_BADXMLDECL syscall.Errno = 14056 + ERROR_SXS_XML_E_MISSINGROOT syscall.Errno = 14057 + ERROR_SXS_XML_E_UNEXPECTEDEOF syscall.Errno = 14058 + ERROR_SXS_XML_E_BADPEREFINSUBSET syscall.Errno = 14059 + ERROR_SXS_XML_E_UNCLOSEDSTARTTAG syscall.Errno = 14060 + ERROR_SXS_XML_E_UNCLOSEDENDTAG syscall.Errno = 14061 + ERROR_SXS_XML_E_UNCLOSEDSTRING syscall.Errno = 14062 + ERROR_SXS_XML_E_UNCLOSEDCOMMENT syscall.Errno = 14063 + ERROR_SXS_XML_E_UNCLOSEDDECL syscall.Errno = 14064 + ERROR_SXS_XML_E_UNCLOSEDCDATA syscall.Errno = 14065 + ERROR_SXS_XML_E_RESERVEDNAMESPACE syscall.Errno = 14066 + ERROR_SXS_XML_E_INVALIDENCODING syscall.Errno = 14067 + ERROR_SXS_XML_E_INVALIDSWITCH syscall.Errno = 14068 + ERROR_SXS_XML_E_BADXMLCASE syscall.Errno = 14069 + ERROR_SXS_XML_E_INVALID_STANDALONE syscall.Errno = 14070 + ERROR_SXS_XML_E_UNEXPECTED_STANDALONE syscall.Errno = 14071 + ERROR_SXS_XML_E_INVALID_VERSION syscall.Errno = 14072 + ERROR_SXS_XML_E_MISSINGEQUALS syscall.Errno = 14073 + ERROR_SXS_PROTECTION_RECOVERY_FAILED syscall.Errno = 14074 + ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT syscall.Errno = 14075 + ERROR_SXS_PROTECTION_CATALOG_NOT_VALID syscall.Errno = 14076 + ERROR_SXS_UNTRANSLATABLE_HRESULT syscall.Errno = 14077 + ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING syscall.Errno = 14078 + ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE syscall.Errno = 14079 + ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME syscall.Errno = 14080 + ERROR_SXS_ASSEMBLY_MISSING syscall.Errno = 14081 + ERROR_SXS_CORRUPT_ACTIVATION_STACK syscall.Errno = 14082 + ERROR_SXS_CORRUPTION syscall.Errno = 14083 + ERROR_SXS_EARLY_DEACTIVATION syscall.Errno = 14084 + ERROR_SXS_INVALID_DEACTIVATION syscall.Errno = 14085 + ERROR_SXS_MULTIPLE_DEACTIVATION syscall.Errno = 14086 + ERROR_SXS_PROCESS_TERMINATION_REQUESTED syscall.Errno = 14087 + ERROR_SXS_RELEASE_ACTIVATION_CONTEXT syscall.Errno = 14088 + ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY syscall.Errno = 14089 + ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE syscall.Errno = 14090 + ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME syscall.Errno = 14091 + ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE syscall.Errno = 14092 + ERROR_SXS_IDENTITY_PARSE_ERROR syscall.Errno = 14093 + ERROR_MALFORMED_SUBSTITUTION_STRING syscall.Errno = 14094 + ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN syscall.Errno = 14095 + ERROR_UNMAPPED_SUBSTITUTION_STRING syscall.Errno = 14096 + ERROR_SXS_ASSEMBLY_NOT_LOCKED syscall.Errno = 14097 + ERROR_SXS_COMPONENT_STORE_CORRUPT syscall.Errno = 14098 + ERROR_ADVANCED_INSTALLER_FAILED syscall.Errno = 14099 + ERROR_XML_ENCODING_MISMATCH syscall.Errno = 14100 + ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT syscall.Errno = 14101 + ERROR_SXS_IDENTITIES_DIFFERENT syscall.Errno = 14102 + ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT syscall.Errno = 14103 + ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY syscall.Errno = 14104 + ERROR_SXS_MANIFEST_TOO_BIG syscall.Errno = 14105 + ERROR_SXS_SETTING_NOT_REGISTERED syscall.Errno = 14106 + ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE syscall.Errno = 14107 + ERROR_SMI_PRIMITIVE_INSTALLER_FAILED syscall.Errno = 14108 + ERROR_GENERIC_COMMAND_FAILED syscall.Errno = 14109 + ERROR_SXS_FILE_HASH_MISSING syscall.Errno = 14110 + ERROR_SXS_DUPLICATE_ACTIVATABLE_CLASS syscall.Errno = 14111 + ERROR_EVT_INVALID_CHANNEL_PATH syscall.Errno = 15000 + ERROR_EVT_INVALID_QUERY syscall.Errno = 15001 + ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND syscall.Errno = 15002 + ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND syscall.Errno = 15003 + ERROR_EVT_INVALID_PUBLISHER_NAME syscall.Errno = 15004 + ERROR_EVT_INVALID_EVENT_DATA syscall.Errno = 15005 + ERROR_EVT_CHANNEL_NOT_FOUND syscall.Errno = 15007 + ERROR_EVT_MALFORMED_XML_TEXT syscall.Errno = 15008 + ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL syscall.Errno = 15009 + ERROR_EVT_CONFIGURATION_ERROR syscall.Errno = 15010 + ERROR_EVT_QUERY_RESULT_STALE syscall.Errno = 15011 + ERROR_EVT_QUERY_RESULT_INVALID_POSITION syscall.Errno = 15012 + ERROR_EVT_NON_VALIDATING_MSXML syscall.Errno = 15013 + ERROR_EVT_FILTER_ALREADYSCOPED syscall.Errno = 15014 + ERROR_EVT_FILTER_NOTELTSET syscall.Errno = 15015 + ERROR_EVT_FILTER_INVARG syscall.Errno = 15016 + ERROR_EVT_FILTER_INVTEST syscall.Errno = 15017 + ERROR_EVT_FILTER_INVTYPE syscall.Errno = 15018 + ERROR_EVT_FILTER_PARSEERR syscall.Errno = 15019 + ERROR_EVT_FILTER_UNSUPPORTEDOP syscall.Errno = 15020 + ERROR_EVT_FILTER_UNEXPECTEDTOKEN syscall.Errno = 15021 + ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL syscall.Errno = 15022 + ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE syscall.Errno = 15023 + ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE syscall.Errno = 15024 + ERROR_EVT_CHANNEL_CANNOT_ACTIVATE syscall.Errno = 15025 + ERROR_EVT_FILTER_TOO_COMPLEX syscall.Errno = 15026 + ERROR_EVT_MESSAGE_NOT_FOUND syscall.Errno = 15027 + ERROR_EVT_MESSAGE_ID_NOT_FOUND syscall.Errno = 15028 + ERROR_EVT_UNRESOLVED_VALUE_INSERT syscall.Errno = 15029 + ERROR_EVT_UNRESOLVED_PARAMETER_INSERT syscall.Errno = 15030 + ERROR_EVT_MAX_INSERTS_REACHED syscall.Errno = 15031 + ERROR_EVT_EVENT_DEFINITION_NOT_FOUND syscall.Errno = 15032 + ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND syscall.Errno = 15033 + ERROR_EVT_VERSION_TOO_OLD syscall.Errno = 15034 + ERROR_EVT_VERSION_TOO_NEW syscall.Errno = 15035 + ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY syscall.Errno = 15036 + ERROR_EVT_PUBLISHER_DISABLED syscall.Errno = 15037 + ERROR_EVT_FILTER_OUT_OF_RANGE syscall.Errno = 15038 + ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE syscall.Errno = 15080 + ERROR_EC_LOG_DISABLED syscall.Errno = 15081 + ERROR_EC_CIRCULAR_FORWARDING syscall.Errno = 15082 + ERROR_EC_CREDSTORE_FULL syscall.Errno = 15083 + ERROR_EC_CRED_NOT_FOUND syscall.Errno = 15084 + ERROR_EC_NO_ACTIVE_CHANNEL syscall.Errno = 15085 + ERROR_MUI_FILE_NOT_FOUND syscall.Errno = 15100 + ERROR_MUI_INVALID_FILE syscall.Errno = 15101 + ERROR_MUI_INVALID_RC_CONFIG syscall.Errno = 15102 + ERROR_MUI_INVALID_LOCALE_NAME syscall.Errno = 15103 + ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME syscall.Errno = 15104 + ERROR_MUI_FILE_NOT_LOADED syscall.Errno = 15105 + ERROR_RESOURCE_ENUM_USER_STOP syscall.Errno = 15106 + ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED syscall.Errno = 15107 + ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME syscall.Errno = 15108 + ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE syscall.Errno = 15110 + ERROR_MRM_INVALID_PRICONFIG syscall.Errno = 15111 + ERROR_MRM_INVALID_FILE_TYPE syscall.Errno = 15112 + ERROR_MRM_UNKNOWN_QUALIFIER syscall.Errno = 15113 + ERROR_MRM_INVALID_QUALIFIER_VALUE syscall.Errno = 15114 + ERROR_MRM_NO_CANDIDATE syscall.Errno = 15115 + ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE syscall.Errno = 15116 + ERROR_MRM_RESOURCE_TYPE_MISMATCH syscall.Errno = 15117 + ERROR_MRM_DUPLICATE_MAP_NAME syscall.Errno = 15118 + ERROR_MRM_DUPLICATE_ENTRY syscall.Errno = 15119 + ERROR_MRM_INVALID_RESOURCE_IDENTIFIER syscall.Errno = 15120 + ERROR_MRM_FILEPATH_TOO_LONG syscall.Errno = 15121 + ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE syscall.Errno = 15122 + ERROR_MRM_INVALID_PRI_FILE syscall.Errno = 15126 + ERROR_MRM_NAMED_RESOURCE_NOT_FOUND syscall.Errno = 15127 + ERROR_MRM_MAP_NOT_FOUND syscall.Errno = 15135 + ERROR_MRM_UNSUPPORTED_PROFILE_TYPE syscall.Errno = 15136 + ERROR_MRM_INVALID_QUALIFIER_OPERATOR syscall.Errno = 15137 + ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE syscall.Errno = 15138 + ERROR_MRM_AUTOMERGE_ENABLED syscall.Errno = 15139 + ERROR_MRM_TOO_MANY_RESOURCES syscall.Errno = 15140 + ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE syscall.Errno = 15141 + ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE syscall.Errno = 15142 + ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD syscall.Errno = 15143 + ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST syscall.Errno = 15144 + ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT syscall.Errno = 15145 + ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE syscall.Errno = 15146 + ERROR_MRM_GENERATION_COUNT_MISMATCH syscall.Errno = 15147 + ERROR_PRI_MERGE_VERSION_MISMATCH syscall.Errno = 15148 + ERROR_PRI_MERGE_MISSING_SCHEMA syscall.Errno = 15149 + ERROR_PRI_MERGE_LOAD_FILE_FAILED syscall.Errno = 15150 + ERROR_PRI_MERGE_ADD_FILE_FAILED syscall.Errno = 15151 + ERROR_PRI_MERGE_WRITE_FILE_FAILED syscall.Errno = 15152 + ERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED syscall.Errno = 15153 + ERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED syscall.Errno = 15154 + ERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED syscall.Errno = 15155 + ERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED syscall.Errno = 15156 + ERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED syscall.Errno = 15157 + ERROR_PRI_MERGE_INVALID_FILE_NAME syscall.Errno = 15158 + ERROR_MRM_PACKAGE_NOT_FOUND syscall.Errno = 15159 + ERROR_MRM_MISSING_DEFAULT_LANGUAGE syscall.Errno = 15160 + ERROR_MCA_INVALID_CAPABILITIES_STRING syscall.Errno = 15200 + ERROR_MCA_INVALID_VCP_VERSION syscall.Errno = 15201 + ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION syscall.Errno = 15202 + ERROR_MCA_MCCS_VERSION_MISMATCH syscall.Errno = 15203 + ERROR_MCA_UNSUPPORTED_MCCS_VERSION syscall.Errno = 15204 + ERROR_MCA_INTERNAL_ERROR syscall.Errno = 15205 + ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED syscall.Errno = 15206 + ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE syscall.Errno = 15207 + ERROR_AMBIGUOUS_SYSTEM_DEVICE syscall.Errno = 15250 + ERROR_SYSTEM_DEVICE_NOT_FOUND syscall.Errno = 15299 + ERROR_HASH_NOT_SUPPORTED syscall.Errno = 15300 + ERROR_HASH_NOT_PRESENT syscall.Errno = 15301 + ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED syscall.Errno = 15321 + ERROR_GPIO_CLIENT_INFORMATION_INVALID syscall.Errno = 15322 + ERROR_GPIO_VERSION_NOT_SUPPORTED syscall.Errno = 15323 + ERROR_GPIO_INVALID_REGISTRATION_PACKET syscall.Errno = 15324 + ERROR_GPIO_OPERATION_DENIED syscall.Errno = 15325 + ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE syscall.Errno = 15326 + ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED syscall.Errno = 15327 + ERROR_CANNOT_SWITCH_RUNLEVEL syscall.Errno = 15400 + ERROR_INVALID_RUNLEVEL_SETTING syscall.Errno = 15401 + ERROR_RUNLEVEL_SWITCH_TIMEOUT syscall.Errno = 15402 + ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT syscall.Errno = 15403 + ERROR_RUNLEVEL_SWITCH_IN_PROGRESS syscall.Errno = 15404 + ERROR_SERVICES_FAILED_AUTOSTART syscall.Errno = 15405 + ERROR_COM_TASK_STOP_PENDING syscall.Errno = 15501 + ERROR_INSTALL_OPEN_PACKAGE_FAILED syscall.Errno = 15600 + ERROR_INSTALL_PACKAGE_NOT_FOUND syscall.Errno = 15601 + ERROR_INSTALL_INVALID_PACKAGE syscall.Errno = 15602 + ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED syscall.Errno = 15603 + ERROR_INSTALL_OUT_OF_DISK_SPACE syscall.Errno = 15604 + ERROR_INSTALL_NETWORK_FAILURE syscall.Errno = 15605 + ERROR_INSTALL_REGISTRATION_FAILURE syscall.Errno = 15606 + ERROR_INSTALL_DEREGISTRATION_FAILURE syscall.Errno = 15607 + ERROR_INSTALL_CANCEL syscall.Errno = 15608 + ERROR_INSTALL_FAILED syscall.Errno = 15609 + ERROR_REMOVE_FAILED syscall.Errno = 15610 + ERROR_PACKAGE_ALREADY_EXISTS syscall.Errno = 15611 + ERROR_NEEDS_REMEDIATION syscall.Errno = 15612 + ERROR_INSTALL_PREREQUISITE_FAILED syscall.Errno = 15613 + ERROR_PACKAGE_REPOSITORY_CORRUPTED syscall.Errno = 15614 + ERROR_INSTALL_POLICY_FAILURE syscall.Errno = 15615 + ERROR_PACKAGE_UPDATING syscall.Errno = 15616 + ERROR_DEPLOYMENT_BLOCKED_BY_POLICY syscall.Errno = 15617 + ERROR_PACKAGES_IN_USE syscall.Errno = 15618 + ERROR_RECOVERY_FILE_CORRUPT syscall.Errno = 15619 + ERROR_INVALID_STAGED_SIGNATURE syscall.Errno = 15620 + ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED syscall.Errno = 15621 + ERROR_INSTALL_PACKAGE_DOWNGRADE syscall.Errno = 15622 + ERROR_SYSTEM_NEEDS_REMEDIATION syscall.Errno = 15623 + ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN syscall.Errno = 15624 + ERROR_RESILIENCY_FILE_CORRUPT syscall.Errno = 15625 + ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING syscall.Errno = 15626 + ERROR_PACKAGE_MOVE_FAILED syscall.Errno = 15627 + ERROR_INSTALL_VOLUME_NOT_EMPTY syscall.Errno = 15628 + ERROR_INSTALL_VOLUME_OFFLINE syscall.Errno = 15629 + ERROR_INSTALL_VOLUME_CORRUPT syscall.Errno = 15630 + ERROR_NEEDS_REGISTRATION syscall.Errno = 15631 + ERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE syscall.Errno = 15632 + ERROR_DEV_SIDELOAD_LIMIT_EXCEEDED syscall.Errno = 15633 + ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE syscall.Errno = 15634 + ERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM syscall.Errno = 15635 + ERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING syscall.Errno = 15636 + ERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE syscall.Errno = 15637 + ERROR_PACKAGE_STAGING_ONHOLD syscall.Errno = 15638 + ERROR_INSTALL_INVALID_RELATED_SET_UPDATE syscall.Errno = 15639 + ERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY syscall.Errno = 15640 + ERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF syscall.Errno = 15641 + ERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED syscall.Errno = 15642 + ERROR_PACKAGES_REPUTATION_CHECK_FAILED syscall.Errno = 15643 + ERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT syscall.Errno = 15644 + ERROR_DEPLOYMENT_OPTION_NOT_SUPPORTED syscall.Errno = 15645 + ERROR_APPINSTALLER_ACTIVATION_BLOCKED syscall.Errno = 15646 + ERROR_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED syscall.Errno = 15647 + ERROR_APPX_RAW_DATA_WRITE_FAILED syscall.Errno = 15648 + ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE syscall.Errno = 15649 + ERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE syscall.Errno = 15650 + ERROR_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY syscall.Errno = 15651 + ERROR_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY syscall.Errno = 15652 + ERROR_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER syscall.Errno = 15653 + ERROR_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED syscall.Errno = 15654 + ERROR_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE syscall.Errno = 15655 + ERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES syscall.Errno = 15656 + APPMODEL_ERROR_NO_PACKAGE syscall.Errno = 15700 + APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT syscall.Errno = 15701 + APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT syscall.Errno = 15702 + APPMODEL_ERROR_NO_APPLICATION syscall.Errno = 15703 + APPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED syscall.Errno = 15704 + APPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID syscall.Errno = 15705 + APPMODEL_ERROR_PACKAGE_NOT_AVAILABLE syscall.Errno = 15706 + APPMODEL_ERROR_NO_MUTABLE_DIRECTORY syscall.Errno = 15707 + ERROR_STATE_LOAD_STORE_FAILED syscall.Errno = 15800 + ERROR_STATE_GET_VERSION_FAILED syscall.Errno = 15801 + ERROR_STATE_SET_VERSION_FAILED syscall.Errno = 15802 + ERROR_STATE_STRUCTURED_RESET_FAILED syscall.Errno = 15803 + ERROR_STATE_OPEN_CONTAINER_FAILED syscall.Errno = 15804 + ERROR_STATE_CREATE_CONTAINER_FAILED syscall.Errno = 15805 + ERROR_STATE_DELETE_CONTAINER_FAILED syscall.Errno = 15806 + ERROR_STATE_READ_SETTING_FAILED syscall.Errno = 15807 + ERROR_STATE_WRITE_SETTING_FAILED syscall.Errno = 15808 + ERROR_STATE_DELETE_SETTING_FAILED syscall.Errno = 15809 + ERROR_STATE_QUERY_SETTING_FAILED syscall.Errno = 15810 + ERROR_STATE_READ_COMPOSITE_SETTING_FAILED syscall.Errno = 15811 + ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED syscall.Errno = 15812 + ERROR_STATE_ENUMERATE_CONTAINER_FAILED syscall.Errno = 15813 + ERROR_STATE_ENUMERATE_SETTINGS_FAILED syscall.Errno = 15814 + ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED syscall.Errno = 15815 + ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED syscall.Errno = 15816 + ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED syscall.Errno = 15817 + ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED syscall.Errno = 15818 + ERROR_API_UNAVAILABLE syscall.Errno = 15841 + STORE_ERROR_UNLICENSED syscall.Errno = 15861 + STORE_ERROR_UNLICENSED_USER syscall.Errno = 15862 + STORE_ERROR_PENDING_COM_TRANSACTION syscall.Errno = 15863 + STORE_ERROR_LICENSE_REVOKED syscall.Errno = 15864 + SEVERITY_SUCCESS syscall.Errno = 0 + SEVERITY_ERROR syscall.Errno = 1 + FACILITY_NT_BIT = 0x10000000 + E_NOT_SET = ERROR_NOT_FOUND + E_NOT_VALID_STATE = ERROR_INVALID_STATE + E_NOT_SUFFICIENT_BUFFER = ERROR_INSUFFICIENT_BUFFER + E_TIME_SENSITIVE_THREAD = ERROR_TIME_SENSITIVE_THREAD + E_NO_TASK_QUEUE = ERROR_NO_TASK_QUEUE + NOERROR syscall.Errno = 0 + E_UNEXPECTED Handle = 0x8000FFFF + E_NOTIMPL Handle = 0x80004001 + E_OUTOFMEMORY Handle = 0x8007000E + E_INVALIDARG Handle = 0x80070057 + E_NOINTERFACE Handle = 0x80004002 + E_POINTER Handle = 0x80004003 + E_HANDLE Handle = 0x80070006 + E_ABORT Handle = 0x80004004 + E_FAIL Handle = 0x80004005 + E_ACCESSDENIED Handle = 0x80070005 + E_PENDING Handle = 0x8000000A + E_BOUNDS Handle = 0x8000000B + E_CHANGED_STATE Handle = 0x8000000C + E_ILLEGAL_STATE_CHANGE Handle = 0x8000000D + E_ILLEGAL_METHOD_CALL Handle = 0x8000000E + RO_E_METADATA_NAME_NOT_FOUND Handle = 0x8000000F + RO_E_METADATA_NAME_IS_NAMESPACE Handle = 0x80000010 + RO_E_METADATA_INVALID_TYPE_FORMAT Handle = 0x80000011 + RO_E_INVALID_METADATA_FILE Handle = 0x80000012 + RO_E_CLOSED Handle = 0x80000013 + RO_E_EXCLUSIVE_WRITE Handle = 0x80000014 + RO_E_CHANGE_NOTIFICATION_IN_PROGRESS Handle = 0x80000015 + RO_E_ERROR_STRING_NOT_FOUND Handle = 0x80000016 + E_STRING_NOT_NULL_TERMINATED Handle = 0x80000017 + E_ILLEGAL_DELEGATE_ASSIGNMENT Handle = 0x80000018 + E_ASYNC_OPERATION_NOT_STARTED Handle = 0x80000019 + E_APPLICATION_EXITING Handle = 0x8000001A + E_APPLICATION_VIEW_EXITING Handle = 0x8000001B + RO_E_MUST_BE_AGILE Handle = 0x8000001C + RO_E_UNSUPPORTED_FROM_MTA Handle = 0x8000001D + RO_E_COMMITTED Handle = 0x8000001E + RO_E_BLOCKED_CROSS_ASTA_CALL Handle = 0x8000001F + RO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER Handle = 0x80000020 + RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER Handle = 0x80000021 + CO_E_INIT_TLS Handle = 0x80004006 + CO_E_INIT_SHARED_ALLOCATOR Handle = 0x80004007 + CO_E_INIT_MEMORY_ALLOCATOR Handle = 0x80004008 + CO_E_INIT_CLASS_CACHE Handle = 0x80004009 + CO_E_INIT_RPC_CHANNEL Handle = 0x8000400A + CO_E_INIT_TLS_SET_CHANNEL_CONTROL Handle = 0x8000400B + CO_E_INIT_TLS_CHANNEL_CONTROL Handle = 0x8000400C + CO_E_INIT_UNACCEPTED_USER_ALLOCATOR Handle = 0x8000400D + CO_E_INIT_SCM_MUTEX_EXISTS Handle = 0x8000400E + CO_E_INIT_SCM_FILE_MAPPING_EXISTS Handle = 0x8000400F + CO_E_INIT_SCM_MAP_VIEW_OF_FILE Handle = 0x80004010 + CO_E_INIT_SCM_EXEC_FAILURE Handle = 0x80004011 + CO_E_INIT_ONLY_SINGLE_THREADED Handle = 0x80004012 + CO_E_CANT_REMOTE Handle = 0x80004013 + CO_E_BAD_SERVER_NAME Handle = 0x80004014 + CO_E_WRONG_SERVER_IDENTITY Handle = 0x80004015 + CO_E_OLE1DDE_DISABLED Handle = 0x80004016 + CO_E_RUNAS_SYNTAX Handle = 0x80004017 + CO_E_CREATEPROCESS_FAILURE Handle = 0x80004018 + CO_E_RUNAS_CREATEPROCESS_FAILURE Handle = 0x80004019 + CO_E_RUNAS_LOGON_FAILURE Handle = 0x8000401A + CO_E_LAUNCH_PERMSSION_DENIED Handle = 0x8000401B + CO_E_START_SERVICE_FAILURE Handle = 0x8000401C + CO_E_REMOTE_COMMUNICATION_FAILURE Handle = 0x8000401D + CO_E_SERVER_START_TIMEOUT Handle = 0x8000401E + CO_E_CLSREG_INCONSISTENT Handle = 0x8000401F + CO_E_IIDREG_INCONSISTENT Handle = 0x80004020 + CO_E_NOT_SUPPORTED Handle = 0x80004021 + CO_E_RELOAD_DLL Handle = 0x80004022 + CO_E_MSI_ERROR Handle = 0x80004023 + CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT Handle = 0x80004024 + CO_E_SERVER_PAUSED Handle = 0x80004025 + CO_E_SERVER_NOT_PAUSED Handle = 0x80004026 + CO_E_CLASS_DISABLED Handle = 0x80004027 + CO_E_CLRNOTAVAILABLE Handle = 0x80004028 + CO_E_ASYNC_WORK_REJECTED Handle = 0x80004029 + CO_E_SERVER_INIT_TIMEOUT Handle = 0x8000402A + CO_E_NO_SECCTX_IN_ACTIVATE Handle = 0x8000402B + CO_E_TRACKER_CONFIG Handle = 0x80004030 + CO_E_THREADPOOL_CONFIG Handle = 0x80004031 + CO_E_SXS_CONFIG Handle = 0x80004032 + CO_E_MALFORMED_SPN Handle = 0x80004033 + CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN Handle = 0x80004034 + CO_E_PREMATURE_STUB_RUNDOWN Handle = 0x80004035 + S_OK Handle = 0 + S_FALSE Handle = 1 + OLE_E_FIRST Handle = 0x80040000 + OLE_E_LAST Handle = 0x800400FF + OLE_S_FIRST Handle = 0x00040000 + OLE_S_LAST Handle = 0x000400FF + OLE_E_OLEVERB Handle = 0x80040000 + OLE_E_ADVF Handle = 0x80040001 + OLE_E_ENUM_NOMORE Handle = 0x80040002 + OLE_E_ADVISENOTSUPPORTED Handle = 0x80040003 + OLE_E_NOCONNECTION Handle = 0x80040004 + OLE_E_NOTRUNNING Handle = 0x80040005 + OLE_E_NOCACHE Handle = 0x80040006 + OLE_E_BLANK Handle = 0x80040007 + OLE_E_CLASSDIFF Handle = 0x80040008 + OLE_E_CANT_GETMONIKER Handle = 0x80040009 + OLE_E_CANT_BINDTOSOURCE Handle = 0x8004000A + OLE_E_STATIC Handle = 0x8004000B + OLE_E_PROMPTSAVECANCELLED Handle = 0x8004000C + OLE_E_INVALIDRECT Handle = 0x8004000D + OLE_E_WRONGCOMPOBJ Handle = 0x8004000E + OLE_E_INVALIDHWND Handle = 0x8004000F + OLE_E_NOT_INPLACEACTIVE Handle = 0x80040010 + OLE_E_CANTCONVERT Handle = 0x80040011 + OLE_E_NOSTORAGE Handle = 0x80040012 + DV_E_FORMATETC Handle = 0x80040064 + DV_E_DVTARGETDEVICE Handle = 0x80040065 + DV_E_STGMEDIUM Handle = 0x80040066 + DV_E_STATDATA Handle = 0x80040067 + DV_E_LINDEX Handle = 0x80040068 + DV_E_TYMED Handle = 0x80040069 + DV_E_CLIPFORMAT Handle = 0x8004006A + DV_E_DVASPECT Handle = 0x8004006B + DV_E_DVTARGETDEVICE_SIZE Handle = 0x8004006C + DV_E_NOIVIEWOBJECT Handle = 0x8004006D + DRAGDROP_E_FIRST syscall.Errno = 0x80040100 + DRAGDROP_E_LAST syscall.Errno = 0x8004010F + DRAGDROP_S_FIRST syscall.Errno = 0x00040100 + DRAGDROP_S_LAST syscall.Errno = 0x0004010F + DRAGDROP_E_NOTREGISTERED Handle = 0x80040100 + DRAGDROP_E_ALREADYREGISTERED Handle = 0x80040101 + DRAGDROP_E_INVALIDHWND Handle = 0x80040102 + DRAGDROP_E_CONCURRENT_DRAG_ATTEMPTED Handle = 0x80040103 + CLASSFACTORY_E_FIRST syscall.Errno = 0x80040110 + CLASSFACTORY_E_LAST syscall.Errno = 0x8004011F + CLASSFACTORY_S_FIRST syscall.Errno = 0x00040110 + CLASSFACTORY_S_LAST syscall.Errno = 0x0004011F + CLASS_E_NOAGGREGATION Handle = 0x80040110 + CLASS_E_CLASSNOTAVAILABLE Handle = 0x80040111 + CLASS_E_NOTLICENSED Handle = 0x80040112 + MARSHAL_E_FIRST syscall.Errno = 0x80040120 + MARSHAL_E_LAST syscall.Errno = 0x8004012F + MARSHAL_S_FIRST syscall.Errno = 0x00040120 + MARSHAL_S_LAST syscall.Errno = 0x0004012F + DATA_E_FIRST syscall.Errno = 0x80040130 + DATA_E_LAST syscall.Errno = 0x8004013F + DATA_S_FIRST syscall.Errno = 0x00040130 + DATA_S_LAST syscall.Errno = 0x0004013F + VIEW_E_FIRST syscall.Errno = 0x80040140 + VIEW_E_LAST syscall.Errno = 0x8004014F + VIEW_S_FIRST syscall.Errno = 0x00040140 + VIEW_S_LAST syscall.Errno = 0x0004014F + VIEW_E_DRAW Handle = 0x80040140 + REGDB_E_FIRST syscall.Errno = 0x80040150 + REGDB_E_LAST syscall.Errno = 0x8004015F + REGDB_S_FIRST syscall.Errno = 0x00040150 + REGDB_S_LAST syscall.Errno = 0x0004015F + REGDB_E_READREGDB Handle = 0x80040150 + REGDB_E_WRITEREGDB Handle = 0x80040151 + REGDB_E_KEYMISSING Handle = 0x80040152 + REGDB_E_INVALIDVALUE Handle = 0x80040153 + REGDB_E_CLASSNOTREG Handle = 0x80040154 + REGDB_E_IIDNOTREG Handle = 0x80040155 + REGDB_E_BADTHREADINGMODEL Handle = 0x80040156 + REGDB_E_PACKAGEPOLICYVIOLATION Handle = 0x80040157 + CAT_E_FIRST syscall.Errno = 0x80040160 + CAT_E_LAST syscall.Errno = 0x80040161 + CAT_E_CATIDNOEXIST Handle = 0x80040160 + CAT_E_NODESCRIPTION Handle = 0x80040161 + CS_E_FIRST syscall.Errno = 0x80040164 + CS_E_LAST syscall.Errno = 0x8004016F + CS_E_PACKAGE_NOTFOUND Handle = 0x80040164 + CS_E_NOT_DELETABLE Handle = 0x80040165 + CS_E_CLASS_NOTFOUND Handle = 0x80040166 + CS_E_INVALID_VERSION Handle = 0x80040167 + CS_E_NO_CLASSSTORE Handle = 0x80040168 + CS_E_OBJECT_NOTFOUND Handle = 0x80040169 + CS_E_OBJECT_ALREADY_EXISTS Handle = 0x8004016A + CS_E_INVALID_PATH Handle = 0x8004016B + CS_E_NETWORK_ERROR Handle = 0x8004016C + CS_E_ADMIN_LIMIT_EXCEEDED Handle = 0x8004016D + CS_E_SCHEMA_MISMATCH Handle = 0x8004016E + CS_E_INTERNAL_ERROR Handle = 0x8004016F + CACHE_E_FIRST syscall.Errno = 0x80040170 + CACHE_E_LAST syscall.Errno = 0x8004017F + CACHE_S_FIRST syscall.Errno = 0x00040170 + CACHE_S_LAST syscall.Errno = 0x0004017F + CACHE_E_NOCACHE_UPDATED Handle = 0x80040170 + OLEOBJ_E_FIRST syscall.Errno = 0x80040180 + OLEOBJ_E_LAST syscall.Errno = 0x8004018F + OLEOBJ_S_FIRST syscall.Errno = 0x00040180 + OLEOBJ_S_LAST syscall.Errno = 0x0004018F + OLEOBJ_E_NOVERBS Handle = 0x80040180 + OLEOBJ_E_INVALIDVERB Handle = 0x80040181 + CLIENTSITE_E_FIRST syscall.Errno = 0x80040190 + CLIENTSITE_E_LAST syscall.Errno = 0x8004019F + CLIENTSITE_S_FIRST syscall.Errno = 0x00040190 + CLIENTSITE_S_LAST syscall.Errno = 0x0004019F + INPLACE_E_NOTUNDOABLE Handle = 0x800401A0 + INPLACE_E_NOTOOLSPACE Handle = 0x800401A1 + INPLACE_E_FIRST syscall.Errno = 0x800401A0 + INPLACE_E_LAST syscall.Errno = 0x800401AF + INPLACE_S_FIRST syscall.Errno = 0x000401A0 + INPLACE_S_LAST syscall.Errno = 0x000401AF + ENUM_E_FIRST syscall.Errno = 0x800401B0 + ENUM_E_LAST syscall.Errno = 0x800401BF + ENUM_S_FIRST syscall.Errno = 0x000401B0 + ENUM_S_LAST syscall.Errno = 0x000401BF + CONVERT10_E_FIRST syscall.Errno = 0x800401C0 + CONVERT10_E_LAST syscall.Errno = 0x800401CF + CONVERT10_S_FIRST syscall.Errno = 0x000401C0 + CONVERT10_S_LAST syscall.Errno = 0x000401CF + CONVERT10_E_OLESTREAM_GET Handle = 0x800401C0 + CONVERT10_E_OLESTREAM_PUT Handle = 0x800401C1 + CONVERT10_E_OLESTREAM_FMT Handle = 0x800401C2 + CONVERT10_E_OLESTREAM_BITMAP_TO_DIB Handle = 0x800401C3 + CONVERT10_E_STG_FMT Handle = 0x800401C4 + CONVERT10_E_STG_NO_STD_STREAM Handle = 0x800401C5 + CONVERT10_E_STG_DIB_TO_BITMAP Handle = 0x800401C6 + CLIPBRD_E_FIRST syscall.Errno = 0x800401D0 + CLIPBRD_E_LAST syscall.Errno = 0x800401DF + CLIPBRD_S_FIRST syscall.Errno = 0x000401D0 + CLIPBRD_S_LAST syscall.Errno = 0x000401DF + CLIPBRD_E_CANT_OPEN Handle = 0x800401D0 + CLIPBRD_E_CANT_EMPTY Handle = 0x800401D1 + CLIPBRD_E_CANT_SET Handle = 0x800401D2 + CLIPBRD_E_BAD_DATA Handle = 0x800401D3 + CLIPBRD_E_CANT_CLOSE Handle = 0x800401D4 + MK_E_FIRST syscall.Errno = 0x800401E0 + MK_E_LAST syscall.Errno = 0x800401EF + MK_S_FIRST syscall.Errno = 0x000401E0 + MK_S_LAST syscall.Errno = 0x000401EF + MK_E_CONNECTMANUALLY Handle = 0x800401E0 + MK_E_EXCEEDEDDEADLINE Handle = 0x800401E1 + MK_E_NEEDGENERIC Handle = 0x800401E2 + MK_E_UNAVAILABLE Handle = 0x800401E3 + MK_E_SYNTAX Handle = 0x800401E4 + MK_E_NOOBJECT Handle = 0x800401E5 + MK_E_INVALIDEXTENSION Handle = 0x800401E6 + MK_E_INTERMEDIATEINTERFACENOTSUPPORTED Handle = 0x800401E7 + MK_E_NOTBINDABLE Handle = 0x800401E8 + MK_E_NOTBOUND Handle = 0x800401E9 + MK_E_CANTOPENFILE Handle = 0x800401EA + MK_E_MUSTBOTHERUSER Handle = 0x800401EB + MK_E_NOINVERSE Handle = 0x800401EC + MK_E_NOSTORAGE Handle = 0x800401ED + MK_E_NOPREFIX Handle = 0x800401EE + MK_E_ENUMERATION_FAILED Handle = 0x800401EF + CO_E_FIRST syscall.Errno = 0x800401F0 + CO_E_LAST syscall.Errno = 0x800401FF + CO_S_FIRST syscall.Errno = 0x000401F0 + CO_S_LAST syscall.Errno = 0x000401FF + CO_E_NOTINITIALIZED Handle = 0x800401F0 + CO_E_ALREADYINITIALIZED Handle = 0x800401F1 + CO_E_CANTDETERMINECLASS Handle = 0x800401F2 + CO_E_CLASSSTRING Handle = 0x800401F3 + CO_E_IIDSTRING Handle = 0x800401F4 + CO_E_APPNOTFOUND Handle = 0x800401F5 + CO_E_APPSINGLEUSE Handle = 0x800401F6 + CO_E_ERRORINAPP Handle = 0x800401F7 + CO_E_DLLNOTFOUND Handle = 0x800401F8 + CO_E_ERRORINDLL Handle = 0x800401F9 + CO_E_WRONGOSFORAPP Handle = 0x800401FA + CO_E_OBJNOTREG Handle = 0x800401FB + CO_E_OBJISREG Handle = 0x800401FC + CO_E_OBJNOTCONNECTED Handle = 0x800401FD + CO_E_APPDIDNTREG Handle = 0x800401FE + CO_E_RELEASED Handle = 0x800401FF + EVENT_E_FIRST syscall.Errno = 0x80040200 + EVENT_E_LAST syscall.Errno = 0x8004021F + EVENT_S_FIRST syscall.Errno = 0x00040200 + EVENT_S_LAST syscall.Errno = 0x0004021F + EVENT_S_SOME_SUBSCRIBERS_FAILED Handle = 0x00040200 + EVENT_E_ALL_SUBSCRIBERS_FAILED Handle = 0x80040201 + EVENT_S_NOSUBSCRIBERS Handle = 0x00040202 + EVENT_E_QUERYSYNTAX Handle = 0x80040203 + EVENT_E_QUERYFIELD Handle = 0x80040204 + EVENT_E_INTERNALEXCEPTION Handle = 0x80040205 + EVENT_E_INTERNALERROR Handle = 0x80040206 + EVENT_E_INVALID_PER_USER_SID Handle = 0x80040207 + EVENT_E_USER_EXCEPTION Handle = 0x80040208 + EVENT_E_TOO_MANY_METHODS Handle = 0x80040209 + EVENT_E_MISSING_EVENTCLASS Handle = 0x8004020A + EVENT_E_NOT_ALL_REMOVED Handle = 0x8004020B + EVENT_E_COMPLUS_NOT_INSTALLED Handle = 0x8004020C + EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT Handle = 0x8004020D + EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT Handle = 0x8004020E + EVENT_E_INVALID_EVENT_CLASS_PARTITION Handle = 0x8004020F + EVENT_E_PER_USER_SID_NOT_LOGGED_ON Handle = 0x80040210 + TPC_E_INVALID_PROPERTY Handle = 0x80040241 + TPC_E_NO_DEFAULT_TABLET Handle = 0x80040212 + TPC_E_UNKNOWN_PROPERTY Handle = 0x8004021B + TPC_E_INVALID_INPUT_RECT Handle = 0x80040219 + TPC_E_INVALID_STROKE Handle = 0x80040222 + TPC_E_INITIALIZE_FAIL Handle = 0x80040223 + TPC_E_NOT_RELEVANT Handle = 0x80040232 + TPC_E_INVALID_PACKET_DESCRIPTION Handle = 0x80040233 + TPC_E_RECOGNIZER_NOT_REGISTERED Handle = 0x80040235 + TPC_E_INVALID_RIGHTS Handle = 0x80040236 + TPC_E_OUT_OF_ORDER_CALL Handle = 0x80040237 + TPC_E_QUEUE_FULL Handle = 0x80040238 + TPC_E_INVALID_CONFIGURATION Handle = 0x80040239 + TPC_E_INVALID_DATA_FROM_RECOGNIZER Handle = 0x8004023A + TPC_S_TRUNCATED Handle = 0x00040252 + TPC_S_INTERRUPTED Handle = 0x00040253 + TPC_S_NO_DATA_TO_PROCESS Handle = 0x00040254 + XACT_E_FIRST syscall.Errno = 0x8004D000 + XACT_E_LAST syscall.Errno = 0x8004D02B + XACT_S_FIRST syscall.Errno = 0x0004D000 + XACT_S_LAST syscall.Errno = 0x0004D010 + XACT_E_ALREADYOTHERSINGLEPHASE Handle = 0x8004D000 + XACT_E_CANTRETAIN Handle = 0x8004D001 + XACT_E_COMMITFAILED Handle = 0x8004D002 + XACT_E_COMMITPREVENTED Handle = 0x8004D003 + XACT_E_HEURISTICABORT Handle = 0x8004D004 + XACT_E_HEURISTICCOMMIT Handle = 0x8004D005 + XACT_E_HEURISTICDAMAGE Handle = 0x8004D006 + XACT_E_HEURISTICDANGER Handle = 0x8004D007 + XACT_E_ISOLATIONLEVEL Handle = 0x8004D008 + XACT_E_NOASYNC Handle = 0x8004D009 + XACT_E_NOENLIST Handle = 0x8004D00A + XACT_E_NOISORETAIN Handle = 0x8004D00B + XACT_E_NORESOURCE Handle = 0x8004D00C + XACT_E_NOTCURRENT Handle = 0x8004D00D + XACT_E_NOTRANSACTION Handle = 0x8004D00E + XACT_E_NOTSUPPORTED Handle = 0x8004D00F + XACT_E_UNKNOWNRMGRID Handle = 0x8004D010 + XACT_E_WRONGSTATE Handle = 0x8004D011 + XACT_E_WRONGUOW Handle = 0x8004D012 + XACT_E_XTIONEXISTS Handle = 0x8004D013 + XACT_E_NOIMPORTOBJECT Handle = 0x8004D014 + XACT_E_INVALIDCOOKIE Handle = 0x8004D015 + XACT_E_INDOUBT Handle = 0x8004D016 + XACT_E_NOTIMEOUT Handle = 0x8004D017 + XACT_E_ALREADYINPROGRESS Handle = 0x8004D018 + XACT_E_ABORTED Handle = 0x8004D019 + XACT_E_LOGFULL Handle = 0x8004D01A + XACT_E_TMNOTAVAILABLE Handle = 0x8004D01B + XACT_E_CONNECTION_DOWN Handle = 0x8004D01C + XACT_E_CONNECTION_DENIED Handle = 0x8004D01D + XACT_E_REENLISTTIMEOUT Handle = 0x8004D01E + XACT_E_TIP_CONNECT_FAILED Handle = 0x8004D01F + XACT_E_TIP_PROTOCOL_ERROR Handle = 0x8004D020 + XACT_E_TIP_PULL_FAILED Handle = 0x8004D021 + XACT_E_DEST_TMNOTAVAILABLE Handle = 0x8004D022 + XACT_E_TIP_DISABLED Handle = 0x8004D023 + XACT_E_NETWORK_TX_DISABLED Handle = 0x8004D024 + XACT_E_PARTNER_NETWORK_TX_DISABLED Handle = 0x8004D025 + XACT_E_XA_TX_DISABLED Handle = 0x8004D026 + XACT_E_UNABLE_TO_READ_DTC_CONFIG Handle = 0x8004D027 + XACT_E_UNABLE_TO_LOAD_DTC_PROXY Handle = 0x8004D028 + XACT_E_ABORTING Handle = 0x8004D029 + XACT_E_PUSH_COMM_FAILURE Handle = 0x8004D02A + XACT_E_PULL_COMM_FAILURE Handle = 0x8004D02B + XACT_E_LU_TX_DISABLED Handle = 0x8004D02C + XACT_E_CLERKNOTFOUND Handle = 0x8004D080 + XACT_E_CLERKEXISTS Handle = 0x8004D081 + XACT_E_RECOVERYINPROGRESS Handle = 0x8004D082 + XACT_E_TRANSACTIONCLOSED Handle = 0x8004D083 + XACT_E_INVALIDLSN Handle = 0x8004D084 + XACT_E_REPLAYREQUEST Handle = 0x8004D085 + XACT_S_ASYNC Handle = 0x0004D000 + XACT_S_DEFECT Handle = 0x0004D001 + XACT_S_READONLY Handle = 0x0004D002 + XACT_S_SOMENORETAIN Handle = 0x0004D003 + XACT_S_OKINFORM Handle = 0x0004D004 + XACT_S_MADECHANGESCONTENT Handle = 0x0004D005 + XACT_S_MADECHANGESINFORM Handle = 0x0004D006 + XACT_S_ALLNORETAIN Handle = 0x0004D007 + XACT_S_ABORTING Handle = 0x0004D008 + XACT_S_SINGLEPHASE Handle = 0x0004D009 + XACT_S_LOCALLY_OK Handle = 0x0004D00A + XACT_S_LASTRESOURCEMANAGER Handle = 0x0004D010 + CONTEXT_E_FIRST syscall.Errno = 0x8004E000 + CONTEXT_E_LAST syscall.Errno = 0x8004E02F + CONTEXT_S_FIRST syscall.Errno = 0x0004E000 + CONTEXT_S_LAST syscall.Errno = 0x0004E02F + CONTEXT_E_ABORTED Handle = 0x8004E002 + CONTEXT_E_ABORTING Handle = 0x8004E003 + CONTEXT_E_NOCONTEXT Handle = 0x8004E004 + CONTEXT_E_WOULD_DEADLOCK Handle = 0x8004E005 + CONTEXT_E_SYNCH_TIMEOUT Handle = 0x8004E006 + CONTEXT_E_OLDREF Handle = 0x8004E007 + CONTEXT_E_ROLENOTFOUND Handle = 0x8004E00C + CONTEXT_E_TMNOTAVAILABLE Handle = 0x8004E00F + CO_E_ACTIVATIONFAILED Handle = 0x8004E021 + CO_E_ACTIVATIONFAILED_EVENTLOGGED Handle = 0x8004E022 + CO_E_ACTIVATIONFAILED_CATALOGERROR Handle = 0x8004E023 + CO_E_ACTIVATIONFAILED_TIMEOUT Handle = 0x8004E024 + CO_E_INITIALIZATIONFAILED Handle = 0x8004E025 + CONTEXT_E_NOJIT Handle = 0x8004E026 + CONTEXT_E_NOTRANSACTION Handle = 0x8004E027 + CO_E_THREADINGMODEL_CHANGED Handle = 0x8004E028 + CO_E_NOIISINTRINSICS Handle = 0x8004E029 + CO_E_NOCOOKIES Handle = 0x8004E02A + CO_E_DBERROR Handle = 0x8004E02B + CO_E_NOTPOOLED Handle = 0x8004E02C + CO_E_NOTCONSTRUCTED Handle = 0x8004E02D + CO_E_NOSYNCHRONIZATION Handle = 0x8004E02E + CO_E_ISOLEVELMISMATCH Handle = 0x8004E02F + CO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED Handle = 0x8004E030 + CO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED Handle = 0x8004E031 + OLE_S_USEREG Handle = 0x00040000 + OLE_S_STATIC Handle = 0x00040001 + OLE_S_MAC_CLIPFORMAT Handle = 0x00040002 + DRAGDROP_S_DROP Handle = 0x00040100 + DRAGDROP_S_CANCEL Handle = 0x00040101 + DRAGDROP_S_USEDEFAULTCURSORS Handle = 0x00040102 + DATA_S_SAMEFORMATETC Handle = 0x00040130 + VIEW_S_ALREADY_FROZEN Handle = 0x00040140 + CACHE_S_FORMATETC_NOTSUPPORTED Handle = 0x00040170 + CACHE_S_SAMECACHE Handle = 0x00040171 + CACHE_S_SOMECACHES_NOTUPDATED Handle = 0x00040172 + OLEOBJ_S_INVALIDVERB Handle = 0x00040180 + OLEOBJ_S_CANNOT_DOVERB_NOW Handle = 0x00040181 + OLEOBJ_S_INVALIDHWND Handle = 0x00040182 + INPLACE_S_TRUNCATED Handle = 0x000401A0 + CONVERT10_S_NO_PRESENTATION Handle = 0x000401C0 + MK_S_REDUCED_TO_SELF Handle = 0x000401E2 + MK_S_ME Handle = 0x000401E4 + MK_S_HIM Handle = 0x000401E5 + MK_S_US Handle = 0x000401E6 + MK_S_MONIKERALREADYREGISTERED Handle = 0x000401E7 + SCHED_S_TASK_READY Handle = 0x00041300 + SCHED_S_TASK_RUNNING Handle = 0x00041301 + SCHED_S_TASK_DISABLED Handle = 0x00041302 + SCHED_S_TASK_HAS_NOT_RUN Handle = 0x00041303 + SCHED_S_TASK_NO_MORE_RUNS Handle = 0x00041304 + SCHED_S_TASK_NOT_SCHEDULED Handle = 0x00041305 + SCHED_S_TASK_TERMINATED Handle = 0x00041306 + SCHED_S_TASK_NO_VALID_TRIGGERS Handle = 0x00041307 + SCHED_S_EVENT_TRIGGER Handle = 0x00041308 + SCHED_E_TRIGGER_NOT_FOUND Handle = 0x80041309 + SCHED_E_TASK_NOT_READY Handle = 0x8004130A + SCHED_E_TASK_NOT_RUNNING Handle = 0x8004130B + SCHED_E_SERVICE_NOT_INSTALLED Handle = 0x8004130C + SCHED_E_CANNOT_OPEN_TASK Handle = 0x8004130D + SCHED_E_INVALID_TASK Handle = 0x8004130E + SCHED_E_ACCOUNT_INFORMATION_NOT_SET Handle = 0x8004130F + SCHED_E_ACCOUNT_NAME_NOT_FOUND Handle = 0x80041310 + SCHED_E_ACCOUNT_DBASE_CORRUPT Handle = 0x80041311 + SCHED_E_NO_SECURITY_SERVICES Handle = 0x80041312 + SCHED_E_UNKNOWN_OBJECT_VERSION Handle = 0x80041313 + SCHED_E_UNSUPPORTED_ACCOUNT_OPTION Handle = 0x80041314 + SCHED_E_SERVICE_NOT_RUNNING Handle = 0x80041315 + SCHED_E_UNEXPECTEDNODE Handle = 0x80041316 + SCHED_E_NAMESPACE Handle = 0x80041317 + SCHED_E_INVALIDVALUE Handle = 0x80041318 + SCHED_E_MISSINGNODE Handle = 0x80041319 + SCHED_E_MALFORMEDXML Handle = 0x8004131A + SCHED_S_SOME_TRIGGERS_FAILED Handle = 0x0004131B + SCHED_S_BATCH_LOGON_PROBLEM Handle = 0x0004131C + SCHED_E_TOO_MANY_NODES Handle = 0x8004131D + SCHED_E_PAST_END_BOUNDARY Handle = 0x8004131E + SCHED_E_ALREADY_RUNNING Handle = 0x8004131F + SCHED_E_USER_NOT_LOGGED_ON Handle = 0x80041320 + SCHED_E_INVALID_TASK_HASH Handle = 0x80041321 + SCHED_E_SERVICE_NOT_AVAILABLE Handle = 0x80041322 + SCHED_E_SERVICE_TOO_BUSY Handle = 0x80041323 + SCHED_E_TASK_ATTEMPTED Handle = 0x80041324 + SCHED_S_TASK_QUEUED Handle = 0x00041325 + SCHED_E_TASK_DISABLED Handle = 0x80041326 + SCHED_E_TASK_NOT_V1_COMPAT Handle = 0x80041327 + SCHED_E_START_ON_DEMAND Handle = 0x80041328 + SCHED_E_TASK_NOT_UBPM_COMPAT Handle = 0x80041329 + SCHED_E_DEPRECATED_FEATURE_USED Handle = 0x80041330 + CO_E_CLASS_CREATE_FAILED Handle = 0x80080001 + CO_E_SCM_ERROR Handle = 0x80080002 + CO_E_SCM_RPC_FAILURE Handle = 0x80080003 + CO_E_BAD_PATH Handle = 0x80080004 + CO_E_SERVER_EXEC_FAILURE Handle = 0x80080005 + CO_E_OBJSRV_RPC_FAILURE Handle = 0x80080006 + MK_E_NO_NORMALIZED Handle = 0x80080007 + CO_E_SERVER_STOPPING Handle = 0x80080008 + MEM_E_INVALID_ROOT Handle = 0x80080009 + MEM_E_INVALID_LINK Handle = 0x80080010 + MEM_E_INVALID_SIZE Handle = 0x80080011 + CO_S_NOTALLINTERFACES Handle = 0x00080012 + CO_S_MACHINENAMENOTFOUND Handle = 0x00080013 + CO_E_MISSING_DISPLAYNAME Handle = 0x80080015 + CO_E_RUNAS_VALUE_MUST_BE_AAA Handle = 0x80080016 + CO_E_ELEVATION_DISABLED Handle = 0x80080017 + APPX_E_PACKAGING_INTERNAL Handle = 0x80080200 + APPX_E_INTERLEAVING_NOT_ALLOWED Handle = 0x80080201 + APPX_E_RELATIONSHIPS_NOT_ALLOWED Handle = 0x80080202 + APPX_E_MISSING_REQUIRED_FILE Handle = 0x80080203 + APPX_E_INVALID_MANIFEST Handle = 0x80080204 + APPX_E_INVALID_BLOCKMAP Handle = 0x80080205 + APPX_E_CORRUPT_CONTENT Handle = 0x80080206 + APPX_E_BLOCK_HASH_INVALID Handle = 0x80080207 + APPX_E_REQUESTED_RANGE_TOO_LARGE Handle = 0x80080208 + APPX_E_INVALID_SIP_CLIENT_DATA Handle = 0x80080209 + APPX_E_INVALID_KEY_INFO Handle = 0x8008020A + APPX_E_INVALID_CONTENTGROUPMAP Handle = 0x8008020B + APPX_E_INVALID_APPINSTALLER Handle = 0x8008020C + APPX_E_DELTA_BASELINE_VERSION_MISMATCH Handle = 0x8008020D + APPX_E_DELTA_PACKAGE_MISSING_FILE Handle = 0x8008020E + APPX_E_INVALID_DELTA_PACKAGE Handle = 0x8008020F + APPX_E_DELTA_APPENDED_PACKAGE_NOT_ALLOWED Handle = 0x80080210 + APPX_E_INVALID_PACKAGING_LAYOUT Handle = 0x80080211 + APPX_E_INVALID_PACKAGESIGNCONFIG Handle = 0x80080212 + APPX_E_RESOURCESPRI_NOT_ALLOWED Handle = 0x80080213 + APPX_E_FILE_COMPRESSION_MISMATCH Handle = 0x80080214 + APPX_E_INVALID_PAYLOAD_PACKAGE_EXTENSION Handle = 0x80080215 + APPX_E_INVALID_ENCRYPTION_EXCLUSION_FILE_LIST Handle = 0x80080216 + BT_E_SPURIOUS_ACTIVATION Handle = 0x80080300 + DISP_E_UNKNOWNINTERFACE Handle = 0x80020001 + DISP_E_MEMBERNOTFOUND Handle = 0x80020003 + DISP_E_PARAMNOTFOUND Handle = 0x80020004 + DISP_E_TYPEMISMATCH Handle = 0x80020005 + DISP_E_UNKNOWNNAME Handle = 0x80020006 + DISP_E_NONAMEDARGS Handle = 0x80020007 + DISP_E_BADVARTYPE Handle = 0x80020008 + DISP_E_EXCEPTION Handle = 0x80020009 + DISP_E_OVERFLOW Handle = 0x8002000A + DISP_E_BADINDEX Handle = 0x8002000B + DISP_E_UNKNOWNLCID Handle = 0x8002000C + DISP_E_ARRAYISLOCKED Handle = 0x8002000D + DISP_E_BADPARAMCOUNT Handle = 0x8002000E + DISP_E_PARAMNOTOPTIONAL Handle = 0x8002000F + DISP_E_BADCALLEE Handle = 0x80020010 + DISP_E_NOTACOLLECTION Handle = 0x80020011 + DISP_E_DIVBYZERO Handle = 0x80020012 + DISP_E_BUFFERTOOSMALL Handle = 0x80020013 + TYPE_E_BUFFERTOOSMALL Handle = 0x80028016 + TYPE_E_FIELDNOTFOUND Handle = 0x80028017 + TYPE_E_INVDATAREAD Handle = 0x80028018 + TYPE_E_UNSUPFORMAT Handle = 0x80028019 + TYPE_E_REGISTRYACCESS Handle = 0x8002801C + TYPE_E_LIBNOTREGISTERED Handle = 0x8002801D + TYPE_E_UNDEFINEDTYPE Handle = 0x80028027 + TYPE_E_QUALIFIEDNAMEDISALLOWED Handle = 0x80028028 + TYPE_E_INVALIDSTATE Handle = 0x80028029 + TYPE_E_WRONGTYPEKIND Handle = 0x8002802A + TYPE_E_ELEMENTNOTFOUND Handle = 0x8002802B + TYPE_E_AMBIGUOUSNAME Handle = 0x8002802C + TYPE_E_NAMECONFLICT Handle = 0x8002802D + TYPE_E_UNKNOWNLCID Handle = 0x8002802E + TYPE_E_DLLFUNCTIONNOTFOUND Handle = 0x8002802F + TYPE_E_BADMODULEKIND Handle = 0x800288BD + TYPE_E_SIZETOOBIG Handle = 0x800288C5 + TYPE_E_DUPLICATEID Handle = 0x800288C6 + TYPE_E_INVALIDID Handle = 0x800288CF + TYPE_E_TYPEMISMATCH Handle = 0x80028CA0 + TYPE_E_OUTOFBOUNDS Handle = 0x80028CA1 + TYPE_E_IOERROR Handle = 0x80028CA2 + TYPE_E_CANTCREATETMPFILE Handle = 0x80028CA3 + TYPE_E_CANTLOADLIBRARY Handle = 0x80029C4A + TYPE_E_INCONSISTENTPROPFUNCS Handle = 0x80029C83 + TYPE_E_CIRCULARTYPE Handle = 0x80029C84 + STG_E_INVALIDFUNCTION Handle = 0x80030001 + STG_E_FILENOTFOUND Handle = 0x80030002 + STG_E_PATHNOTFOUND Handle = 0x80030003 + STG_E_TOOMANYOPENFILES Handle = 0x80030004 + STG_E_ACCESSDENIED Handle = 0x80030005 + STG_E_INVALIDHANDLE Handle = 0x80030006 + STG_E_INSUFFICIENTMEMORY Handle = 0x80030008 + STG_E_INVALIDPOINTER Handle = 0x80030009 + STG_E_NOMOREFILES Handle = 0x80030012 + STG_E_DISKISWRITEPROTECTED Handle = 0x80030013 + STG_E_SEEKERROR Handle = 0x80030019 + STG_E_WRITEFAULT Handle = 0x8003001D + STG_E_READFAULT Handle = 0x8003001E + STG_E_SHAREVIOLATION Handle = 0x80030020 + STG_E_LOCKVIOLATION Handle = 0x80030021 + STG_E_FILEALREADYEXISTS Handle = 0x80030050 + STG_E_INVALIDPARAMETER Handle = 0x80030057 + STG_E_MEDIUMFULL Handle = 0x80030070 + STG_E_PROPSETMISMATCHED Handle = 0x800300F0 + STG_E_ABNORMALAPIEXIT Handle = 0x800300FA + STG_E_INVALIDHEADER Handle = 0x800300FB + STG_E_INVALIDNAME Handle = 0x800300FC + STG_E_UNKNOWN Handle = 0x800300FD + STG_E_UNIMPLEMENTEDFUNCTION Handle = 0x800300FE + STG_E_INVALIDFLAG Handle = 0x800300FF + STG_E_INUSE Handle = 0x80030100 + STG_E_NOTCURRENT Handle = 0x80030101 + STG_E_REVERTED Handle = 0x80030102 + STG_E_CANTSAVE Handle = 0x80030103 + STG_E_OLDFORMAT Handle = 0x80030104 + STG_E_OLDDLL Handle = 0x80030105 + STG_E_SHAREREQUIRED Handle = 0x80030106 + STG_E_NOTFILEBASEDSTORAGE Handle = 0x80030107 + STG_E_EXTANTMARSHALLINGS Handle = 0x80030108 + STG_E_DOCFILECORRUPT Handle = 0x80030109 + STG_E_BADBASEADDRESS Handle = 0x80030110 + STG_E_DOCFILETOOLARGE Handle = 0x80030111 + STG_E_NOTSIMPLEFORMAT Handle = 0x80030112 + STG_E_INCOMPLETE Handle = 0x80030201 + STG_E_TERMINATED Handle = 0x80030202 + STG_S_CONVERTED Handle = 0x00030200 + STG_S_BLOCK Handle = 0x00030201 + STG_S_RETRYNOW Handle = 0x00030202 + STG_S_MONITORING Handle = 0x00030203 + STG_S_MULTIPLEOPENS Handle = 0x00030204 + STG_S_CONSOLIDATIONFAILED Handle = 0x00030205 + STG_S_CANNOTCONSOLIDATE Handle = 0x00030206 + STG_S_POWER_CYCLE_REQUIRED Handle = 0x00030207 + STG_E_FIRMWARE_SLOT_INVALID Handle = 0x80030208 + STG_E_FIRMWARE_IMAGE_INVALID Handle = 0x80030209 + STG_E_DEVICE_UNRESPONSIVE Handle = 0x8003020A + STG_E_STATUS_COPY_PROTECTION_FAILURE Handle = 0x80030305 + STG_E_CSS_AUTHENTICATION_FAILURE Handle = 0x80030306 + STG_E_CSS_KEY_NOT_PRESENT Handle = 0x80030307 + STG_E_CSS_KEY_NOT_ESTABLISHED Handle = 0x80030308 + STG_E_CSS_SCRAMBLED_SECTOR Handle = 0x80030309 + STG_E_CSS_REGION_MISMATCH Handle = 0x8003030A + STG_E_RESETS_EXHAUSTED Handle = 0x8003030B + RPC_E_CALL_REJECTED Handle = 0x80010001 + RPC_E_CALL_CANCELED Handle = 0x80010002 + RPC_E_CANTPOST_INSENDCALL Handle = 0x80010003 + RPC_E_CANTCALLOUT_INASYNCCALL Handle = 0x80010004 + RPC_E_CANTCALLOUT_INEXTERNALCALL Handle = 0x80010005 + RPC_E_CONNECTION_TERMINATED Handle = 0x80010006 + RPC_E_SERVER_DIED Handle = 0x80010007 + RPC_E_CLIENT_DIED Handle = 0x80010008 + RPC_E_INVALID_DATAPACKET Handle = 0x80010009 + RPC_E_CANTTRANSMIT_CALL Handle = 0x8001000A + RPC_E_CLIENT_CANTMARSHAL_DATA Handle = 0x8001000B + RPC_E_CLIENT_CANTUNMARSHAL_DATA Handle = 0x8001000C + RPC_E_SERVER_CANTMARSHAL_DATA Handle = 0x8001000D + RPC_E_SERVER_CANTUNMARSHAL_DATA Handle = 0x8001000E + RPC_E_INVALID_DATA Handle = 0x8001000F + RPC_E_INVALID_PARAMETER Handle = 0x80010010 + RPC_E_CANTCALLOUT_AGAIN Handle = 0x80010011 + RPC_E_SERVER_DIED_DNE Handle = 0x80010012 + RPC_E_SYS_CALL_FAILED Handle = 0x80010100 + RPC_E_OUT_OF_RESOURCES Handle = 0x80010101 + RPC_E_ATTEMPTED_MULTITHREAD Handle = 0x80010102 + RPC_E_NOT_REGISTERED Handle = 0x80010103 + RPC_E_FAULT Handle = 0x80010104 + RPC_E_SERVERFAULT Handle = 0x80010105 + RPC_E_CHANGED_MODE Handle = 0x80010106 + RPC_E_INVALIDMETHOD Handle = 0x80010107 + RPC_E_DISCONNECTED Handle = 0x80010108 + RPC_E_RETRY Handle = 0x80010109 + RPC_E_SERVERCALL_RETRYLATER Handle = 0x8001010A + RPC_E_SERVERCALL_REJECTED Handle = 0x8001010B + RPC_E_INVALID_CALLDATA Handle = 0x8001010C + RPC_E_CANTCALLOUT_ININPUTSYNCCALL Handle = 0x8001010D + RPC_E_WRONG_THREAD Handle = 0x8001010E + RPC_E_THREAD_NOT_INIT Handle = 0x8001010F + RPC_E_VERSION_MISMATCH Handle = 0x80010110 + RPC_E_INVALID_HEADER Handle = 0x80010111 + RPC_E_INVALID_EXTENSION Handle = 0x80010112 + RPC_E_INVALID_IPID Handle = 0x80010113 + RPC_E_INVALID_OBJECT Handle = 0x80010114 + RPC_S_CALLPENDING Handle = 0x80010115 + RPC_S_WAITONTIMER Handle = 0x80010116 + RPC_E_CALL_COMPLETE Handle = 0x80010117 + RPC_E_UNSECURE_CALL Handle = 0x80010118 + RPC_E_TOO_LATE Handle = 0x80010119 + RPC_E_NO_GOOD_SECURITY_PACKAGES Handle = 0x8001011A + RPC_E_ACCESS_DENIED Handle = 0x8001011B + RPC_E_REMOTE_DISABLED Handle = 0x8001011C + RPC_E_INVALID_OBJREF Handle = 0x8001011D + RPC_E_NO_CONTEXT Handle = 0x8001011E + RPC_E_TIMEOUT Handle = 0x8001011F + RPC_E_NO_SYNC Handle = 0x80010120 + RPC_E_FULLSIC_REQUIRED Handle = 0x80010121 + RPC_E_INVALID_STD_NAME Handle = 0x80010122 + CO_E_FAILEDTOIMPERSONATE Handle = 0x80010123 + CO_E_FAILEDTOGETSECCTX Handle = 0x80010124 + CO_E_FAILEDTOOPENTHREADTOKEN Handle = 0x80010125 + CO_E_FAILEDTOGETTOKENINFO Handle = 0x80010126 + CO_E_TRUSTEEDOESNTMATCHCLIENT Handle = 0x80010127 + CO_E_FAILEDTOQUERYCLIENTBLANKET Handle = 0x80010128 + CO_E_FAILEDTOSETDACL Handle = 0x80010129 + CO_E_ACCESSCHECKFAILED Handle = 0x8001012A + CO_E_NETACCESSAPIFAILED Handle = 0x8001012B + CO_E_WRONGTRUSTEENAMESYNTAX Handle = 0x8001012C + CO_E_INVALIDSID Handle = 0x8001012D + CO_E_CONVERSIONFAILED Handle = 0x8001012E + CO_E_NOMATCHINGSIDFOUND Handle = 0x8001012F + CO_E_LOOKUPACCSIDFAILED Handle = 0x80010130 + CO_E_NOMATCHINGNAMEFOUND Handle = 0x80010131 + CO_E_LOOKUPACCNAMEFAILED Handle = 0x80010132 + CO_E_SETSERLHNDLFAILED Handle = 0x80010133 + CO_E_FAILEDTOGETWINDIR Handle = 0x80010134 + CO_E_PATHTOOLONG Handle = 0x80010135 + CO_E_FAILEDTOGENUUID Handle = 0x80010136 + CO_E_FAILEDTOCREATEFILE Handle = 0x80010137 + CO_E_FAILEDTOCLOSEHANDLE Handle = 0x80010138 + CO_E_EXCEEDSYSACLLIMIT Handle = 0x80010139 + CO_E_ACESINWRONGORDER Handle = 0x8001013A + CO_E_INCOMPATIBLESTREAMVERSION Handle = 0x8001013B + CO_E_FAILEDTOOPENPROCESSTOKEN Handle = 0x8001013C + CO_E_DECODEFAILED Handle = 0x8001013D + CO_E_ACNOTINITIALIZED Handle = 0x8001013F + CO_E_CANCEL_DISABLED Handle = 0x80010140 + RPC_E_UNEXPECTED Handle = 0x8001FFFF + ERROR_AUDITING_DISABLED Handle = 0xC0090001 + ERROR_ALL_SIDS_FILTERED Handle = 0xC0090002 + ERROR_BIZRULES_NOT_ENABLED Handle = 0xC0090003 + NTE_BAD_UID Handle = 0x80090001 + NTE_BAD_HASH Handle = 0x80090002 + NTE_BAD_KEY Handle = 0x80090003 + NTE_BAD_LEN Handle = 0x80090004 + NTE_BAD_DATA Handle = 0x80090005 + NTE_BAD_SIGNATURE Handle = 0x80090006 + NTE_BAD_VER Handle = 0x80090007 + NTE_BAD_ALGID Handle = 0x80090008 + NTE_BAD_FLAGS Handle = 0x80090009 + NTE_BAD_TYPE Handle = 0x8009000A + NTE_BAD_KEY_STATE Handle = 0x8009000B + NTE_BAD_HASH_STATE Handle = 0x8009000C + NTE_NO_KEY Handle = 0x8009000D + NTE_NO_MEMORY Handle = 0x8009000E + NTE_EXISTS Handle = 0x8009000F + NTE_PERM Handle = 0x80090010 + NTE_NOT_FOUND Handle = 0x80090011 + NTE_DOUBLE_ENCRYPT Handle = 0x80090012 + NTE_BAD_PROVIDER Handle = 0x80090013 + NTE_BAD_PROV_TYPE Handle = 0x80090014 + NTE_BAD_PUBLIC_KEY Handle = 0x80090015 + NTE_BAD_KEYSET Handle = 0x80090016 + NTE_PROV_TYPE_NOT_DEF Handle = 0x80090017 + NTE_PROV_TYPE_ENTRY_BAD Handle = 0x80090018 + NTE_KEYSET_NOT_DEF Handle = 0x80090019 + NTE_KEYSET_ENTRY_BAD Handle = 0x8009001A + NTE_PROV_TYPE_NO_MATCH Handle = 0x8009001B + NTE_SIGNATURE_FILE_BAD Handle = 0x8009001C + NTE_PROVIDER_DLL_FAIL Handle = 0x8009001D + NTE_PROV_DLL_NOT_FOUND Handle = 0x8009001E + NTE_BAD_KEYSET_PARAM Handle = 0x8009001F + NTE_FAIL Handle = 0x80090020 + NTE_SYS_ERR Handle = 0x80090021 + NTE_SILENT_CONTEXT Handle = 0x80090022 + NTE_TOKEN_KEYSET_STORAGE_FULL Handle = 0x80090023 + NTE_TEMPORARY_PROFILE Handle = 0x80090024 + NTE_FIXEDPARAMETER Handle = 0x80090025 + NTE_INVALID_HANDLE Handle = 0x80090026 + NTE_INVALID_PARAMETER Handle = 0x80090027 + NTE_BUFFER_TOO_SMALL Handle = 0x80090028 + NTE_NOT_SUPPORTED Handle = 0x80090029 + NTE_NO_MORE_ITEMS Handle = 0x8009002A + NTE_BUFFERS_OVERLAP Handle = 0x8009002B + NTE_DECRYPTION_FAILURE Handle = 0x8009002C + NTE_INTERNAL_ERROR Handle = 0x8009002D + NTE_UI_REQUIRED Handle = 0x8009002E + NTE_HMAC_NOT_SUPPORTED Handle = 0x8009002F + NTE_DEVICE_NOT_READY Handle = 0x80090030 + NTE_AUTHENTICATION_IGNORED Handle = 0x80090031 + NTE_VALIDATION_FAILED Handle = 0x80090032 + NTE_INCORRECT_PASSWORD Handle = 0x80090033 + NTE_ENCRYPTION_FAILURE Handle = 0x80090034 + NTE_DEVICE_NOT_FOUND Handle = 0x80090035 + NTE_USER_CANCELLED Handle = 0x80090036 + NTE_PASSWORD_CHANGE_REQUIRED Handle = 0x80090037 + NTE_NOT_ACTIVE_CONSOLE Handle = 0x80090038 + SEC_E_INSUFFICIENT_MEMORY Handle = 0x80090300 + SEC_E_INVALID_HANDLE Handle = 0x80090301 + SEC_E_UNSUPPORTED_FUNCTION Handle = 0x80090302 + SEC_E_TARGET_UNKNOWN Handle = 0x80090303 + SEC_E_INTERNAL_ERROR Handle = 0x80090304 + SEC_E_SECPKG_NOT_FOUND Handle = 0x80090305 + SEC_E_NOT_OWNER Handle = 0x80090306 + SEC_E_CANNOT_INSTALL Handle = 0x80090307 + SEC_E_INVALID_TOKEN Handle = 0x80090308 + SEC_E_CANNOT_PACK Handle = 0x80090309 + SEC_E_QOP_NOT_SUPPORTED Handle = 0x8009030A + SEC_E_NO_IMPERSONATION Handle = 0x8009030B + SEC_E_LOGON_DENIED Handle = 0x8009030C + SEC_E_UNKNOWN_CREDENTIALS Handle = 0x8009030D + SEC_E_NO_CREDENTIALS Handle = 0x8009030E + SEC_E_MESSAGE_ALTERED Handle = 0x8009030F + SEC_E_OUT_OF_SEQUENCE Handle = 0x80090310 + SEC_E_NO_AUTHENTICATING_AUTHORITY Handle = 0x80090311 + SEC_I_CONTINUE_NEEDED Handle = 0x00090312 + SEC_I_COMPLETE_NEEDED Handle = 0x00090313 + SEC_I_COMPLETE_AND_CONTINUE Handle = 0x00090314 + SEC_I_LOCAL_LOGON Handle = 0x00090315 + SEC_I_GENERIC_EXTENSION_RECEIVED Handle = 0x00090316 + SEC_E_BAD_PKGID Handle = 0x80090316 + SEC_E_CONTEXT_EXPIRED Handle = 0x80090317 + SEC_I_CONTEXT_EXPIRED Handle = 0x00090317 + SEC_E_INCOMPLETE_MESSAGE Handle = 0x80090318 + SEC_E_INCOMPLETE_CREDENTIALS Handle = 0x80090320 + SEC_E_BUFFER_TOO_SMALL Handle = 0x80090321 + SEC_I_INCOMPLETE_CREDENTIALS Handle = 0x00090320 + SEC_I_RENEGOTIATE Handle = 0x00090321 + SEC_E_WRONG_PRINCIPAL Handle = 0x80090322 + SEC_I_NO_LSA_CONTEXT Handle = 0x00090323 + SEC_E_TIME_SKEW Handle = 0x80090324 + SEC_E_UNTRUSTED_ROOT Handle = 0x80090325 + SEC_E_ILLEGAL_MESSAGE Handle = 0x80090326 + SEC_E_CERT_UNKNOWN Handle = 0x80090327 + SEC_E_CERT_EXPIRED Handle = 0x80090328 + SEC_E_ENCRYPT_FAILURE Handle = 0x80090329 + SEC_E_DECRYPT_FAILURE Handle = 0x80090330 + SEC_E_ALGORITHM_MISMATCH Handle = 0x80090331 + SEC_E_SECURITY_QOS_FAILED Handle = 0x80090332 + SEC_E_UNFINISHED_CONTEXT_DELETED Handle = 0x80090333 + SEC_E_NO_TGT_REPLY Handle = 0x80090334 + SEC_E_NO_IP_ADDRESSES Handle = 0x80090335 + SEC_E_WRONG_CREDENTIAL_HANDLE Handle = 0x80090336 + SEC_E_CRYPTO_SYSTEM_INVALID Handle = 0x80090337 + SEC_E_MAX_REFERRALS_EXCEEDED Handle = 0x80090338 + SEC_E_MUST_BE_KDC Handle = 0x80090339 + SEC_E_STRONG_CRYPTO_NOT_SUPPORTED Handle = 0x8009033A + SEC_E_TOO_MANY_PRINCIPALS Handle = 0x8009033B + SEC_E_NO_PA_DATA Handle = 0x8009033C + SEC_E_PKINIT_NAME_MISMATCH Handle = 0x8009033D + SEC_E_SMARTCARD_LOGON_REQUIRED Handle = 0x8009033E + SEC_E_SHUTDOWN_IN_PROGRESS Handle = 0x8009033F + SEC_E_KDC_INVALID_REQUEST Handle = 0x80090340 + SEC_E_KDC_UNABLE_TO_REFER Handle = 0x80090341 + SEC_E_KDC_UNKNOWN_ETYPE Handle = 0x80090342 + SEC_E_UNSUPPORTED_PREAUTH Handle = 0x80090343 + SEC_E_DELEGATION_REQUIRED Handle = 0x80090345 + SEC_E_BAD_BINDINGS Handle = 0x80090346 + SEC_E_MULTIPLE_ACCOUNTS Handle = 0x80090347 + SEC_E_NO_KERB_KEY Handle = 0x80090348 + SEC_E_CERT_WRONG_USAGE Handle = 0x80090349 + SEC_E_DOWNGRADE_DETECTED Handle = 0x80090350 + SEC_E_SMARTCARD_CERT_REVOKED Handle = 0x80090351 + SEC_E_ISSUING_CA_UNTRUSTED Handle = 0x80090352 + SEC_E_REVOCATION_OFFLINE_C Handle = 0x80090353 + SEC_E_PKINIT_CLIENT_FAILURE Handle = 0x80090354 + SEC_E_SMARTCARD_CERT_EXPIRED Handle = 0x80090355 + SEC_E_NO_S4U_PROT_SUPPORT Handle = 0x80090356 + SEC_E_CROSSREALM_DELEGATION_FAILURE Handle = 0x80090357 + SEC_E_REVOCATION_OFFLINE_KDC Handle = 0x80090358 + SEC_E_ISSUING_CA_UNTRUSTED_KDC Handle = 0x80090359 + SEC_E_KDC_CERT_EXPIRED Handle = 0x8009035A + SEC_E_KDC_CERT_REVOKED Handle = 0x8009035B + SEC_I_SIGNATURE_NEEDED Handle = 0x0009035C + SEC_E_INVALID_PARAMETER Handle = 0x8009035D + SEC_E_DELEGATION_POLICY Handle = 0x8009035E + SEC_E_POLICY_NLTM_ONLY Handle = 0x8009035F + SEC_I_NO_RENEGOTIATION Handle = 0x00090360 + SEC_E_NO_CONTEXT Handle = 0x80090361 + SEC_E_PKU2U_CERT_FAILURE Handle = 0x80090362 + SEC_E_MUTUAL_AUTH_FAILED Handle = 0x80090363 + SEC_I_MESSAGE_FRAGMENT Handle = 0x00090364 + SEC_E_ONLY_HTTPS_ALLOWED Handle = 0x80090365 + SEC_I_CONTINUE_NEEDED_MESSAGE_OK Handle = 0x00090366 + SEC_E_APPLICATION_PROTOCOL_MISMATCH Handle = 0x80090367 + SEC_I_ASYNC_CALL_PENDING Handle = 0x00090368 + SEC_E_INVALID_UPN_NAME Handle = 0x80090369 + SEC_E_EXT_BUFFER_TOO_SMALL Handle = 0x8009036A + SEC_E_INSUFFICIENT_BUFFERS Handle = 0x8009036B + SEC_E_NO_SPM = SEC_E_INTERNAL_ERROR + SEC_E_NOT_SUPPORTED = SEC_E_UNSUPPORTED_FUNCTION + CRYPT_E_MSG_ERROR Handle = 0x80091001 + CRYPT_E_UNKNOWN_ALGO Handle = 0x80091002 + CRYPT_E_OID_FORMAT Handle = 0x80091003 + CRYPT_E_INVALID_MSG_TYPE Handle = 0x80091004 + CRYPT_E_UNEXPECTED_ENCODING Handle = 0x80091005 + CRYPT_E_AUTH_ATTR_MISSING Handle = 0x80091006 + CRYPT_E_HASH_VALUE Handle = 0x80091007 + CRYPT_E_INVALID_INDEX Handle = 0x80091008 + CRYPT_E_ALREADY_DECRYPTED Handle = 0x80091009 + CRYPT_E_NOT_DECRYPTED Handle = 0x8009100A + CRYPT_E_RECIPIENT_NOT_FOUND Handle = 0x8009100B + CRYPT_E_CONTROL_TYPE Handle = 0x8009100C + CRYPT_E_ISSUER_SERIALNUMBER Handle = 0x8009100D + CRYPT_E_SIGNER_NOT_FOUND Handle = 0x8009100E + CRYPT_E_ATTRIBUTES_MISSING Handle = 0x8009100F + CRYPT_E_STREAM_MSG_NOT_READY Handle = 0x80091010 + CRYPT_E_STREAM_INSUFFICIENT_DATA Handle = 0x80091011 + CRYPT_I_NEW_PROTECTION_REQUIRED Handle = 0x00091012 + CRYPT_E_BAD_LEN Handle = 0x80092001 + CRYPT_E_BAD_ENCODE Handle = 0x80092002 + CRYPT_E_FILE_ERROR Handle = 0x80092003 + CRYPT_E_NOT_FOUND Handle = 0x80092004 + CRYPT_E_EXISTS Handle = 0x80092005 + CRYPT_E_NO_PROVIDER Handle = 0x80092006 + CRYPT_E_SELF_SIGNED Handle = 0x80092007 + CRYPT_E_DELETED_PREV Handle = 0x80092008 + CRYPT_E_NO_MATCH Handle = 0x80092009 + CRYPT_E_UNEXPECTED_MSG_TYPE Handle = 0x8009200A + CRYPT_E_NO_KEY_PROPERTY Handle = 0x8009200B + CRYPT_E_NO_DECRYPT_CERT Handle = 0x8009200C + CRYPT_E_BAD_MSG Handle = 0x8009200D + CRYPT_E_NO_SIGNER Handle = 0x8009200E + CRYPT_E_PENDING_CLOSE Handle = 0x8009200F + CRYPT_E_REVOKED Handle = 0x80092010 + CRYPT_E_NO_REVOCATION_DLL Handle = 0x80092011 + CRYPT_E_NO_REVOCATION_CHECK Handle = 0x80092012 + CRYPT_E_REVOCATION_OFFLINE Handle = 0x80092013 + CRYPT_E_NOT_IN_REVOCATION_DATABASE Handle = 0x80092014 + CRYPT_E_INVALID_NUMERIC_STRING Handle = 0x80092020 + CRYPT_E_INVALID_PRINTABLE_STRING Handle = 0x80092021 + CRYPT_E_INVALID_IA5_STRING Handle = 0x80092022 + CRYPT_E_INVALID_X500_STRING Handle = 0x80092023 + CRYPT_E_NOT_CHAR_STRING Handle = 0x80092024 + CRYPT_E_FILERESIZED Handle = 0x80092025 + CRYPT_E_SECURITY_SETTINGS Handle = 0x80092026 + CRYPT_E_NO_VERIFY_USAGE_DLL Handle = 0x80092027 + CRYPT_E_NO_VERIFY_USAGE_CHECK Handle = 0x80092028 + CRYPT_E_VERIFY_USAGE_OFFLINE Handle = 0x80092029 + CRYPT_E_NOT_IN_CTL Handle = 0x8009202A + CRYPT_E_NO_TRUSTED_SIGNER Handle = 0x8009202B + CRYPT_E_MISSING_PUBKEY_PARA Handle = 0x8009202C + CRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND Handle = 0x8009202D + CRYPT_E_OSS_ERROR Handle = 0x80093000 + OSS_MORE_BUF Handle = 0x80093001 + OSS_NEGATIVE_UINTEGER Handle = 0x80093002 + OSS_PDU_RANGE Handle = 0x80093003 + OSS_MORE_INPUT Handle = 0x80093004 + OSS_DATA_ERROR Handle = 0x80093005 + OSS_BAD_ARG Handle = 0x80093006 + OSS_BAD_VERSION Handle = 0x80093007 + OSS_OUT_MEMORY Handle = 0x80093008 + OSS_PDU_MISMATCH Handle = 0x80093009 + OSS_LIMITED Handle = 0x8009300A + OSS_BAD_PTR Handle = 0x8009300B + OSS_BAD_TIME Handle = 0x8009300C + OSS_INDEFINITE_NOT_SUPPORTED Handle = 0x8009300D + OSS_MEM_ERROR Handle = 0x8009300E + OSS_BAD_TABLE Handle = 0x8009300F + OSS_TOO_LONG Handle = 0x80093010 + OSS_CONSTRAINT_VIOLATED Handle = 0x80093011 + OSS_FATAL_ERROR Handle = 0x80093012 + OSS_ACCESS_SERIALIZATION_ERROR Handle = 0x80093013 + OSS_NULL_TBL Handle = 0x80093014 + OSS_NULL_FCN Handle = 0x80093015 + OSS_BAD_ENCRULES Handle = 0x80093016 + OSS_UNAVAIL_ENCRULES Handle = 0x80093017 + OSS_CANT_OPEN_TRACE_WINDOW Handle = 0x80093018 + OSS_UNIMPLEMENTED Handle = 0x80093019 + OSS_OID_DLL_NOT_LINKED Handle = 0x8009301A + OSS_CANT_OPEN_TRACE_FILE Handle = 0x8009301B + OSS_TRACE_FILE_ALREADY_OPEN Handle = 0x8009301C + OSS_TABLE_MISMATCH Handle = 0x8009301D + OSS_TYPE_NOT_SUPPORTED Handle = 0x8009301E + OSS_REAL_DLL_NOT_LINKED Handle = 0x8009301F + OSS_REAL_CODE_NOT_LINKED Handle = 0x80093020 + OSS_OUT_OF_RANGE Handle = 0x80093021 + OSS_COPIER_DLL_NOT_LINKED Handle = 0x80093022 + OSS_CONSTRAINT_DLL_NOT_LINKED Handle = 0x80093023 + OSS_COMPARATOR_DLL_NOT_LINKED Handle = 0x80093024 + OSS_COMPARATOR_CODE_NOT_LINKED Handle = 0x80093025 + OSS_MEM_MGR_DLL_NOT_LINKED Handle = 0x80093026 + OSS_PDV_DLL_NOT_LINKED Handle = 0x80093027 + OSS_PDV_CODE_NOT_LINKED Handle = 0x80093028 + OSS_API_DLL_NOT_LINKED Handle = 0x80093029 + OSS_BERDER_DLL_NOT_LINKED Handle = 0x8009302A + OSS_PER_DLL_NOT_LINKED Handle = 0x8009302B + OSS_OPEN_TYPE_ERROR Handle = 0x8009302C + OSS_MUTEX_NOT_CREATED Handle = 0x8009302D + OSS_CANT_CLOSE_TRACE_FILE Handle = 0x8009302E + CRYPT_E_ASN1_ERROR Handle = 0x80093100 + CRYPT_E_ASN1_INTERNAL Handle = 0x80093101 + CRYPT_E_ASN1_EOD Handle = 0x80093102 + CRYPT_E_ASN1_CORRUPT Handle = 0x80093103 + CRYPT_E_ASN1_LARGE Handle = 0x80093104 + CRYPT_E_ASN1_CONSTRAINT Handle = 0x80093105 + CRYPT_E_ASN1_MEMORY Handle = 0x80093106 + CRYPT_E_ASN1_OVERFLOW Handle = 0x80093107 + CRYPT_E_ASN1_BADPDU Handle = 0x80093108 + CRYPT_E_ASN1_BADARGS Handle = 0x80093109 + CRYPT_E_ASN1_BADREAL Handle = 0x8009310A + CRYPT_E_ASN1_BADTAG Handle = 0x8009310B + CRYPT_E_ASN1_CHOICE Handle = 0x8009310C + CRYPT_E_ASN1_RULE Handle = 0x8009310D + CRYPT_E_ASN1_UTF8 Handle = 0x8009310E + CRYPT_E_ASN1_PDU_TYPE Handle = 0x80093133 + CRYPT_E_ASN1_NYI Handle = 0x80093134 + CRYPT_E_ASN1_EXTENDED Handle = 0x80093201 + CRYPT_E_ASN1_NOEOD Handle = 0x80093202 + CERTSRV_E_BAD_REQUESTSUBJECT Handle = 0x80094001 + CERTSRV_E_NO_REQUEST Handle = 0x80094002 + CERTSRV_E_BAD_REQUESTSTATUS Handle = 0x80094003 + CERTSRV_E_PROPERTY_EMPTY Handle = 0x80094004 + CERTSRV_E_INVALID_CA_CERTIFICATE Handle = 0x80094005 + CERTSRV_E_SERVER_SUSPENDED Handle = 0x80094006 + CERTSRV_E_ENCODING_LENGTH Handle = 0x80094007 + CERTSRV_E_ROLECONFLICT Handle = 0x80094008 + CERTSRV_E_RESTRICTEDOFFICER Handle = 0x80094009 + CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED Handle = 0x8009400A + CERTSRV_E_NO_VALID_KRA Handle = 0x8009400B + CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL Handle = 0x8009400C + CERTSRV_E_NO_CAADMIN_DEFINED Handle = 0x8009400D + CERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE Handle = 0x8009400E + CERTSRV_E_NO_DB_SESSIONS Handle = 0x8009400F + CERTSRV_E_ALIGNMENT_FAULT Handle = 0x80094010 + CERTSRV_E_ENROLL_DENIED Handle = 0x80094011 + CERTSRV_E_TEMPLATE_DENIED Handle = 0x80094012 + CERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE Handle = 0x80094013 + CERTSRV_E_ADMIN_DENIED_REQUEST Handle = 0x80094014 + CERTSRV_E_NO_POLICY_SERVER Handle = 0x80094015 + CERTSRV_E_WEAK_SIGNATURE_OR_KEY Handle = 0x80094016 + CERTSRV_E_KEY_ATTESTATION_NOT_SUPPORTED Handle = 0x80094017 + CERTSRV_E_ENCRYPTION_CERT_REQUIRED Handle = 0x80094018 + CERTSRV_E_UNSUPPORTED_CERT_TYPE Handle = 0x80094800 + CERTSRV_E_NO_CERT_TYPE Handle = 0x80094801 + CERTSRV_E_TEMPLATE_CONFLICT Handle = 0x80094802 + CERTSRV_E_SUBJECT_ALT_NAME_REQUIRED Handle = 0x80094803 + CERTSRV_E_ARCHIVED_KEY_REQUIRED Handle = 0x80094804 + CERTSRV_E_SMIME_REQUIRED Handle = 0x80094805 + CERTSRV_E_BAD_RENEWAL_SUBJECT Handle = 0x80094806 + CERTSRV_E_BAD_TEMPLATE_VERSION Handle = 0x80094807 + CERTSRV_E_TEMPLATE_POLICY_REQUIRED Handle = 0x80094808 + CERTSRV_E_SIGNATURE_POLICY_REQUIRED Handle = 0x80094809 + CERTSRV_E_SIGNATURE_COUNT Handle = 0x8009480A + CERTSRV_E_SIGNATURE_REJECTED Handle = 0x8009480B + CERTSRV_E_ISSUANCE_POLICY_REQUIRED Handle = 0x8009480C + CERTSRV_E_SUBJECT_UPN_REQUIRED Handle = 0x8009480D + CERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED Handle = 0x8009480E + CERTSRV_E_SUBJECT_DNS_REQUIRED Handle = 0x8009480F + CERTSRV_E_ARCHIVED_KEY_UNEXPECTED Handle = 0x80094810 + CERTSRV_E_KEY_LENGTH Handle = 0x80094811 + CERTSRV_E_SUBJECT_EMAIL_REQUIRED Handle = 0x80094812 + CERTSRV_E_UNKNOWN_CERT_TYPE Handle = 0x80094813 + CERTSRV_E_CERT_TYPE_OVERLAP Handle = 0x80094814 + CERTSRV_E_TOO_MANY_SIGNATURES Handle = 0x80094815 + CERTSRV_E_RENEWAL_BAD_PUBLIC_KEY Handle = 0x80094816 + CERTSRV_E_INVALID_EK Handle = 0x80094817 + CERTSRV_E_INVALID_IDBINDING Handle = 0x80094818 + CERTSRV_E_INVALID_ATTESTATION Handle = 0x80094819 + CERTSRV_E_KEY_ATTESTATION Handle = 0x8009481A + CERTSRV_E_CORRUPT_KEY_ATTESTATION Handle = 0x8009481B + CERTSRV_E_EXPIRED_CHALLENGE Handle = 0x8009481C + CERTSRV_E_INVALID_RESPONSE Handle = 0x8009481D + CERTSRV_E_INVALID_REQUESTID Handle = 0x8009481E + CERTSRV_E_REQUEST_PRECERTIFICATE_MISMATCH Handle = 0x8009481F + CERTSRV_E_PENDING_CLIENT_RESPONSE Handle = 0x80094820 + XENROLL_E_KEY_NOT_EXPORTABLE Handle = 0x80095000 + XENROLL_E_CANNOT_ADD_ROOT_CERT Handle = 0x80095001 + XENROLL_E_RESPONSE_KA_HASH_NOT_FOUND Handle = 0x80095002 + XENROLL_E_RESPONSE_UNEXPECTED_KA_HASH Handle = 0x80095003 + XENROLL_E_RESPONSE_KA_HASH_MISMATCH Handle = 0x80095004 + XENROLL_E_KEYSPEC_SMIME_MISMATCH Handle = 0x80095005 + TRUST_E_SYSTEM_ERROR Handle = 0x80096001 + TRUST_E_NO_SIGNER_CERT Handle = 0x80096002 + TRUST_E_COUNTER_SIGNER Handle = 0x80096003 + TRUST_E_CERT_SIGNATURE Handle = 0x80096004 + TRUST_E_TIME_STAMP Handle = 0x80096005 + TRUST_E_BAD_DIGEST Handle = 0x80096010 + TRUST_E_MALFORMED_SIGNATURE Handle = 0x80096011 + TRUST_E_BASIC_CONSTRAINTS Handle = 0x80096019 + TRUST_E_FINANCIAL_CRITERIA Handle = 0x8009601E + MSSIPOTF_E_OUTOFMEMRANGE Handle = 0x80097001 + MSSIPOTF_E_CANTGETOBJECT Handle = 0x80097002 + MSSIPOTF_E_NOHEADTABLE Handle = 0x80097003 + MSSIPOTF_E_BAD_MAGICNUMBER Handle = 0x80097004 + MSSIPOTF_E_BAD_OFFSET_TABLE Handle = 0x80097005 + MSSIPOTF_E_TABLE_TAGORDER Handle = 0x80097006 + MSSIPOTF_E_TABLE_LONGWORD Handle = 0x80097007 + MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT Handle = 0x80097008 + MSSIPOTF_E_TABLES_OVERLAP Handle = 0x80097009 + MSSIPOTF_E_TABLE_PADBYTES Handle = 0x8009700A + MSSIPOTF_E_FILETOOSMALL Handle = 0x8009700B + MSSIPOTF_E_TABLE_CHECKSUM Handle = 0x8009700C + MSSIPOTF_E_FILE_CHECKSUM Handle = 0x8009700D + MSSIPOTF_E_FAILED_POLICY Handle = 0x80097010 + MSSIPOTF_E_FAILED_HINTS_CHECK Handle = 0x80097011 + MSSIPOTF_E_NOT_OPENTYPE Handle = 0x80097012 + MSSIPOTF_E_FILE Handle = 0x80097013 + MSSIPOTF_E_CRYPT Handle = 0x80097014 + MSSIPOTF_E_BADVERSION Handle = 0x80097015 + MSSIPOTF_E_DSIG_STRUCTURE Handle = 0x80097016 + MSSIPOTF_E_PCONST_CHECK Handle = 0x80097017 + MSSIPOTF_E_STRUCTURE Handle = 0x80097018 + ERROR_CRED_REQUIRES_CONFIRMATION Handle = 0x80097019 + NTE_OP_OK syscall.Errno = 0 + TRUST_E_PROVIDER_UNKNOWN Handle = 0x800B0001 + TRUST_E_ACTION_UNKNOWN Handle = 0x800B0002 + TRUST_E_SUBJECT_FORM_UNKNOWN Handle = 0x800B0003 + TRUST_E_SUBJECT_NOT_TRUSTED Handle = 0x800B0004 + DIGSIG_E_ENCODE Handle = 0x800B0005 + DIGSIG_E_DECODE Handle = 0x800B0006 + DIGSIG_E_EXTENSIBILITY Handle = 0x800B0007 + DIGSIG_E_CRYPTO Handle = 0x800B0008 + PERSIST_E_SIZEDEFINITE Handle = 0x800B0009 + PERSIST_E_SIZEINDEFINITE Handle = 0x800B000A + PERSIST_E_NOTSELFSIZING Handle = 0x800B000B + TRUST_E_NOSIGNATURE Handle = 0x800B0100 + CERT_E_EXPIRED Handle = 0x800B0101 + CERT_E_VALIDITYPERIODNESTING Handle = 0x800B0102 + CERT_E_ROLE Handle = 0x800B0103 + CERT_E_PATHLENCONST Handle = 0x800B0104 + CERT_E_CRITICAL Handle = 0x800B0105 + CERT_E_PURPOSE Handle = 0x800B0106 + CERT_E_ISSUERCHAINING Handle = 0x800B0107 + CERT_E_MALFORMED Handle = 0x800B0108 + CERT_E_UNTRUSTEDROOT Handle = 0x800B0109 + CERT_E_CHAINING Handle = 0x800B010A + TRUST_E_FAIL Handle = 0x800B010B + CERT_E_REVOKED Handle = 0x800B010C + CERT_E_UNTRUSTEDTESTROOT Handle = 0x800B010D + CERT_E_REVOCATION_FAILURE Handle = 0x800B010E + CERT_E_CN_NO_MATCH Handle = 0x800B010F + CERT_E_WRONG_USAGE Handle = 0x800B0110 + TRUST_E_EXPLICIT_DISTRUST Handle = 0x800B0111 + CERT_E_UNTRUSTEDCA Handle = 0x800B0112 + CERT_E_INVALID_POLICY Handle = 0x800B0113 + CERT_E_INVALID_NAME Handle = 0x800B0114 + SPAPI_E_EXPECTED_SECTION_NAME Handle = 0x800F0000 + SPAPI_E_BAD_SECTION_NAME_LINE Handle = 0x800F0001 + SPAPI_E_SECTION_NAME_TOO_LONG Handle = 0x800F0002 + SPAPI_E_GENERAL_SYNTAX Handle = 0x800F0003 + SPAPI_E_WRONG_INF_STYLE Handle = 0x800F0100 + SPAPI_E_SECTION_NOT_FOUND Handle = 0x800F0101 + SPAPI_E_LINE_NOT_FOUND Handle = 0x800F0102 + SPAPI_E_NO_BACKUP Handle = 0x800F0103 + SPAPI_E_NO_ASSOCIATED_CLASS Handle = 0x800F0200 + SPAPI_E_CLASS_MISMATCH Handle = 0x800F0201 + SPAPI_E_DUPLICATE_FOUND Handle = 0x800F0202 + SPAPI_E_NO_DRIVER_SELECTED Handle = 0x800F0203 + SPAPI_E_KEY_DOES_NOT_EXIST Handle = 0x800F0204 + SPAPI_E_INVALID_DEVINST_NAME Handle = 0x800F0205 + SPAPI_E_INVALID_CLASS Handle = 0x800F0206 + SPAPI_E_DEVINST_ALREADY_EXISTS Handle = 0x800F0207 + SPAPI_E_DEVINFO_NOT_REGISTERED Handle = 0x800F0208 + SPAPI_E_INVALID_REG_PROPERTY Handle = 0x800F0209 + SPAPI_E_NO_INF Handle = 0x800F020A + SPAPI_E_NO_SUCH_DEVINST Handle = 0x800F020B + SPAPI_E_CANT_LOAD_CLASS_ICON Handle = 0x800F020C + SPAPI_E_INVALID_CLASS_INSTALLER Handle = 0x800F020D + SPAPI_E_DI_DO_DEFAULT Handle = 0x800F020E + SPAPI_E_DI_NOFILECOPY Handle = 0x800F020F + SPAPI_E_INVALID_HWPROFILE Handle = 0x800F0210 + SPAPI_E_NO_DEVICE_SELECTED Handle = 0x800F0211 + SPAPI_E_DEVINFO_LIST_LOCKED Handle = 0x800F0212 + SPAPI_E_DEVINFO_DATA_LOCKED Handle = 0x800F0213 + SPAPI_E_DI_BAD_PATH Handle = 0x800F0214 + SPAPI_E_NO_CLASSINSTALL_PARAMS Handle = 0x800F0215 + SPAPI_E_FILEQUEUE_LOCKED Handle = 0x800F0216 + SPAPI_E_BAD_SERVICE_INSTALLSECT Handle = 0x800F0217 + SPAPI_E_NO_CLASS_DRIVER_LIST Handle = 0x800F0218 + SPAPI_E_NO_ASSOCIATED_SERVICE Handle = 0x800F0219 + SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE Handle = 0x800F021A + SPAPI_E_DEVICE_INTERFACE_ACTIVE Handle = 0x800F021B + SPAPI_E_DEVICE_INTERFACE_REMOVED Handle = 0x800F021C + SPAPI_E_BAD_INTERFACE_INSTALLSECT Handle = 0x800F021D + SPAPI_E_NO_SUCH_INTERFACE_CLASS Handle = 0x800F021E + SPAPI_E_INVALID_REFERENCE_STRING Handle = 0x800F021F + SPAPI_E_INVALID_MACHINENAME Handle = 0x800F0220 + SPAPI_E_REMOTE_COMM_FAILURE Handle = 0x800F0221 + SPAPI_E_MACHINE_UNAVAILABLE Handle = 0x800F0222 + SPAPI_E_NO_CONFIGMGR_SERVICES Handle = 0x800F0223 + SPAPI_E_INVALID_PROPPAGE_PROVIDER Handle = 0x800F0224 + SPAPI_E_NO_SUCH_DEVICE_INTERFACE Handle = 0x800F0225 + SPAPI_E_DI_POSTPROCESSING_REQUIRED Handle = 0x800F0226 + SPAPI_E_INVALID_COINSTALLER Handle = 0x800F0227 + SPAPI_E_NO_COMPAT_DRIVERS Handle = 0x800F0228 + SPAPI_E_NO_DEVICE_ICON Handle = 0x800F0229 + SPAPI_E_INVALID_INF_LOGCONFIG Handle = 0x800F022A + SPAPI_E_DI_DONT_INSTALL Handle = 0x800F022B + SPAPI_E_INVALID_FILTER_DRIVER Handle = 0x800F022C + SPAPI_E_NON_WINDOWS_NT_DRIVER Handle = 0x800F022D + SPAPI_E_NON_WINDOWS_DRIVER Handle = 0x800F022E + SPAPI_E_NO_CATALOG_FOR_OEM_INF Handle = 0x800F022F + SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE Handle = 0x800F0230 + SPAPI_E_NOT_DISABLEABLE Handle = 0x800F0231 + SPAPI_E_CANT_REMOVE_DEVINST Handle = 0x800F0232 + SPAPI_E_INVALID_TARGET Handle = 0x800F0233 + SPAPI_E_DRIVER_NONNATIVE Handle = 0x800F0234 + SPAPI_E_IN_WOW64 Handle = 0x800F0235 + SPAPI_E_SET_SYSTEM_RESTORE_POINT Handle = 0x800F0236 + SPAPI_E_INCORRECTLY_COPIED_INF Handle = 0x800F0237 + SPAPI_E_SCE_DISABLED Handle = 0x800F0238 + SPAPI_E_UNKNOWN_EXCEPTION Handle = 0x800F0239 + SPAPI_E_PNP_REGISTRY_ERROR Handle = 0x800F023A + SPAPI_E_REMOTE_REQUEST_UNSUPPORTED Handle = 0x800F023B + SPAPI_E_NOT_AN_INSTALLED_OEM_INF Handle = 0x800F023C + SPAPI_E_INF_IN_USE_BY_DEVICES Handle = 0x800F023D + SPAPI_E_DI_FUNCTION_OBSOLETE Handle = 0x800F023E + SPAPI_E_NO_AUTHENTICODE_CATALOG Handle = 0x800F023F + SPAPI_E_AUTHENTICODE_DISALLOWED Handle = 0x800F0240 + SPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER Handle = 0x800F0241 + SPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED Handle = 0x800F0242 + SPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED Handle = 0x800F0243 + SPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH Handle = 0x800F0244 + SPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE Handle = 0x800F0245 + SPAPI_E_DEVICE_INSTALLER_NOT_READY Handle = 0x800F0246 + SPAPI_E_DRIVER_STORE_ADD_FAILED Handle = 0x800F0247 + SPAPI_E_DEVICE_INSTALL_BLOCKED Handle = 0x800F0248 + SPAPI_E_DRIVER_INSTALL_BLOCKED Handle = 0x800F0249 + SPAPI_E_WRONG_INF_TYPE Handle = 0x800F024A + SPAPI_E_FILE_HASH_NOT_IN_CATALOG Handle = 0x800F024B + SPAPI_E_DRIVER_STORE_DELETE_FAILED Handle = 0x800F024C + SPAPI_E_UNRECOVERABLE_STACK_OVERFLOW Handle = 0x800F0300 + SPAPI_E_ERROR_NOT_INSTALLED Handle = 0x800F1000 + SCARD_S_SUCCESS = S_OK + SCARD_F_INTERNAL_ERROR Handle = 0x80100001 + SCARD_E_CANCELLED Handle = 0x80100002 + SCARD_E_INVALID_HANDLE Handle = 0x80100003 + SCARD_E_INVALID_PARAMETER Handle = 0x80100004 + SCARD_E_INVALID_TARGET Handle = 0x80100005 + SCARD_E_NO_MEMORY Handle = 0x80100006 + SCARD_F_WAITED_TOO_LONG Handle = 0x80100007 + SCARD_E_INSUFFICIENT_BUFFER Handle = 0x80100008 + SCARD_E_UNKNOWN_READER Handle = 0x80100009 + SCARD_E_TIMEOUT Handle = 0x8010000A + SCARD_E_SHARING_VIOLATION Handle = 0x8010000B + SCARD_E_NO_SMARTCARD Handle = 0x8010000C + SCARD_E_UNKNOWN_CARD Handle = 0x8010000D + SCARD_E_CANT_DISPOSE Handle = 0x8010000E + SCARD_E_PROTO_MISMATCH Handle = 0x8010000F + SCARD_E_NOT_READY Handle = 0x80100010 + SCARD_E_INVALID_VALUE Handle = 0x80100011 + SCARD_E_SYSTEM_CANCELLED Handle = 0x80100012 + SCARD_F_COMM_ERROR Handle = 0x80100013 + SCARD_F_UNKNOWN_ERROR Handle = 0x80100014 + SCARD_E_INVALID_ATR Handle = 0x80100015 + SCARD_E_NOT_TRANSACTED Handle = 0x80100016 + SCARD_E_READER_UNAVAILABLE Handle = 0x80100017 + SCARD_P_SHUTDOWN Handle = 0x80100018 + SCARD_E_PCI_TOO_SMALL Handle = 0x80100019 + SCARD_E_READER_UNSUPPORTED Handle = 0x8010001A + SCARD_E_DUPLICATE_READER Handle = 0x8010001B + SCARD_E_CARD_UNSUPPORTED Handle = 0x8010001C + SCARD_E_NO_SERVICE Handle = 0x8010001D + SCARD_E_SERVICE_STOPPED Handle = 0x8010001E + SCARD_E_UNEXPECTED Handle = 0x8010001F + SCARD_E_ICC_INSTALLATION Handle = 0x80100020 + SCARD_E_ICC_CREATEORDER Handle = 0x80100021 + SCARD_E_UNSUPPORTED_FEATURE Handle = 0x80100022 + SCARD_E_DIR_NOT_FOUND Handle = 0x80100023 + SCARD_E_FILE_NOT_FOUND Handle = 0x80100024 + SCARD_E_NO_DIR Handle = 0x80100025 + SCARD_E_NO_FILE Handle = 0x80100026 + SCARD_E_NO_ACCESS Handle = 0x80100027 + SCARD_E_WRITE_TOO_MANY Handle = 0x80100028 + SCARD_E_BAD_SEEK Handle = 0x80100029 + SCARD_E_INVALID_CHV Handle = 0x8010002A + SCARD_E_UNKNOWN_RES_MNG Handle = 0x8010002B + SCARD_E_NO_SUCH_CERTIFICATE Handle = 0x8010002C + SCARD_E_CERTIFICATE_UNAVAILABLE Handle = 0x8010002D + SCARD_E_NO_READERS_AVAILABLE Handle = 0x8010002E + SCARD_E_COMM_DATA_LOST Handle = 0x8010002F + SCARD_E_NO_KEY_CONTAINER Handle = 0x80100030 + SCARD_E_SERVER_TOO_BUSY Handle = 0x80100031 + SCARD_E_PIN_CACHE_EXPIRED Handle = 0x80100032 + SCARD_E_NO_PIN_CACHE Handle = 0x80100033 + SCARD_E_READ_ONLY_CARD Handle = 0x80100034 + SCARD_W_UNSUPPORTED_CARD Handle = 0x80100065 + SCARD_W_UNRESPONSIVE_CARD Handle = 0x80100066 + SCARD_W_UNPOWERED_CARD Handle = 0x80100067 + SCARD_W_RESET_CARD Handle = 0x80100068 + SCARD_W_REMOVED_CARD Handle = 0x80100069 + SCARD_W_SECURITY_VIOLATION Handle = 0x8010006A + SCARD_W_WRONG_CHV Handle = 0x8010006B + SCARD_W_CHV_BLOCKED Handle = 0x8010006C + SCARD_W_EOF Handle = 0x8010006D + SCARD_W_CANCELLED_BY_USER Handle = 0x8010006E + SCARD_W_CARD_NOT_AUTHENTICATED Handle = 0x8010006F + SCARD_W_CACHE_ITEM_NOT_FOUND Handle = 0x80100070 + SCARD_W_CACHE_ITEM_STALE Handle = 0x80100071 + SCARD_W_CACHE_ITEM_TOO_BIG Handle = 0x80100072 + COMADMIN_E_OBJECTERRORS Handle = 0x80110401 + COMADMIN_E_OBJECTINVALID Handle = 0x80110402 + COMADMIN_E_KEYMISSING Handle = 0x80110403 + COMADMIN_E_ALREADYINSTALLED Handle = 0x80110404 + COMADMIN_E_APP_FILE_WRITEFAIL Handle = 0x80110407 + COMADMIN_E_APP_FILE_READFAIL Handle = 0x80110408 + COMADMIN_E_APP_FILE_VERSION Handle = 0x80110409 + COMADMIN_E_BADPATH Handle = 0x8011040A + COMADMIN_E_APPLICATIONEXISTS Handle = 0x8011040B + COMADMIN_E_ROLEEXISTS Handle = 0x8011040C + COMADMIN_E_CANTCOPYFILE Handle = 0x8011040D + COMADMIN_E_NOUSER Handle = 0x8011040F + COMADMIN_E_INVALIDUSERIDS Handle = 0x80110410 + COMADMIN_E_NOREGISTRYCLSID Handle = 0x80110411 + COMADMIN_E_BADREGISTRYPROGID Handle = 0x80110412 + COMADMIN_E_AUTHENTICATIONLEVEL Handle = 0x80110413 + COMADMIN_E_USERPASSWDNOTVALID Handle = 0x80110414 + COMADMIN_E_CLSIDORIIDMISMATCH Handle = 0x80110418 + COMADMIN_E_REMOTEINTERFACE Handle = 0x80110419 + COMADMIN_E_DLLREGISTERSERVER Handle = 0x8011041A + COMADMIN_E_NOSERVERSHARE Handle = 0x8011041B + COMADMIN_E_DLLLOADFAILED Handle = 0x8011041D + COMADMIN_E_BADREGISTRYLIBID Handle = 0x8011041E + COMADMIN_E_APPDIRNOTFOUND Handle = 0x8011041F + COMADMIN_E_REGISTRARFAILED Handle = 0x80110423 + COMADMIN_E_COMPFILE_DOESNOTEXIST Handle = 0x80110424 + COMADMIN_E_COMPFILE_LOADDLLFAIL Handle = 0x80110425 + COMADMIN_E_COMPFILE_GETCLASSOBJ Handle = 0x80110426 + COMADMIN_E_COMPFILE_CLASSNOTAVAIL Handle = 0x80110427 + COMADMIN_E_COMPFILE_BADTLB Handle = 0x80110428 + COMADMIN_E_COMPFILE_NOTINSTALLABLE Handle = 0x80110429 + COMADMIN_E_NOTCHANGEABLE Handle = 0x8011042A + COMADMIN_E_NOTDELETEABLE Handle = 0x8011042B + COMADMIN_E_SESSION Handle = 0x8011042C + COMADMIN_E_COMP_MOVE_LOCKED Handle = 0x8011042D + COMADMIN_E_COMP_MOVE_BAD_DEST Handle = 0x8011042E + COMADMIN_E_REGISTERTLB Handle = 0x80110430 + COMADMIN_E_SYSTEMAPP Handle = 0x80110433 + COMADMIN_E_COMPFILE_NOREGISTRAR Handle = 0x80110434 + COMADMIN_E_COREQCOMPINSTALLED Handle = 0x80110435 + COMADMIN_E_SERVICENOTINSTALLED Handle = 0x80110436 + COMADMIN_E_PROPERTYSAVEFAILED Handle = 0x80110437 + COMADMIN_E_OBJECTEXISTS Handle = 0x80110438 + COMADMIN_E_COMPONENTEXISTS Handle = 0x80110439 + COMADMIN_E_REGFILE_CORRUPT Handle = 0x8011043B + COMADMIN_E_PROPERTY_OVERFLOW Handle = 0x8011043C + COMADMIN_E_NOTINREGISTRY Handle = 0x8011043E + COMADMIN_E_OBJECTNOTPOOLABLE Handle = 0x8011043F + COMADMIN_E_APPLID_MATCHES_CLSID Handle = 0x80110446 + COMADMIN_E_ROLE_DOES_NOT_EXIST Handle = 0x80110447 + COMADMIN_E_START_APP_NEEDS_COMPONENTS Handle = 0x80110448 + COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM Handle = 0x80110449 + COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY Handle = 0x8011044A + COMADMIN_E_CAN_NOT_START_APP Handle = 0x8011044B + COMADMIN_E_CAN_NOT_EXPORT_SYS_APP Handle = 0x8011044C + COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT Handle = 0x8011044D + COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER Handle = 0x8011044E + COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE Handle = 0x8011044F + COMADMIN_E_BASE_PARTITION_ONLY Handle = 0x80110450 + COMADMIN_E_START_APP_DISABLED Handle = 0x80110451 + COMADMIN_E_CAT_DUPLICATE_PARTITION_NAME Handle = 0x80110457 + COMADMIN_E_CAT_INVALID_PARTITION_NAME Handle = 0x80110458 + COMADMIN_E_CAT_PARTITION_IN_USE Handle = 0x80110459 + COMADMIN_E_FILE_PARTITION_DUPLICATE_FILES Handle = 0x8011045A + COMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED Handle = 0x8011045B + COMADMIN_E_AMBIGUOUS_APPLICATION_NAME Handle = 0x8011045C + COMADMIN_E_AMBIGUOUS_PARTITION_NAME Handle = 0x8011045D + COMADMIN_E_REGDB_NOTINITIALIZED Handle = 0x80110472 + COMADMIN_E_REGDB_NOTOPEN Handle = 0x80110473 + COMADMIN_E_REGDB_SYSTEMERR Handle = 0x80110474 + COMADMIN_E_REGDB_ALREADYRUNNING Handle = 0x80110475 + COMADMIN_E_MIG_VERSIONNOTSUPPORTED Handle = 0x80110480 + COMADMIN_E_MIG_SCHEMANOTFOUND Handle = 0x80110481 + COMADMIN_E_CAT_BITNESSMISMATCH Handle = 0x80110482 + COMADMIN_E_CAT_UNACCEPTABLEBITNESS Handle = 0x80110483 + COMADMIN_E_CAT_WRONGAPPBITNESS Handle = 0x80110484 + COMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED Handle = 0x80110485 + COMADMIN_E_CAT_SERVERFAULT Handle = 0x80110486 + COMQC_E_APPLICATION_NOT_QUEUED Handle = 0x80110600 + COMQC_E_NO_QUEUEABLE_INTERFACES Handle = 0x80110601 + COMQC_E_QUEUING_SERVICE_NOT_AVAILABLE Handle = 0x80110602 + COMQC_E_NO_IPERSISTSTREAM Handle = 0x80110603 + COMQC_E_BAD_MESSAGE Handle = 0x80110604 + COMQC_E_UNAUTHENTICATED Handle = 0x80110605 + COMQC_E_UNTRUSTED_ENQUEUER Handle = 0x80110606 + MSDTC_E_DUPLICATE_RESOURCE Handle = 0x80110701 + COMADMIN_E_OBJECT_PARENT_MISSING Handle = 0x80110808 + COMADMIN_E_OBJECT_DOES_NOT_EXIST Handle = 0x80110809 + COMADMIN_E_APP_NOT_RUNNING Handle = 0x8011080A + COMADMIN_E_INVALID_PARTITION Handle = 0x8011080B + COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE Handle = 0x8011080D + COMADMIN_E_USER_IN_SET Handle = 0x8011080E + COMADMIN_E_CANTRECYCLELIBRARYAPPS Handle = 0x8011080F + COMADMIN_E_CANTRECYCLESERVICEAPPS Handle = 0x80110811 + COMADMIN_E_PROCESSALREADYRECYCLED Handle = 0x80110812 + COMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED Handle = 0x80110813 + COMADMIN_E_CANTMAKEINPROCSERVICE Handle = 0x80110814 + COMADMIN_E_PROGIDINUSEBYCLSID Handle = 0x80110815 + COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET Handle = 0x80110816 + COMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED Handle = 0x80110817 + COMADMIN_E_PARTITION_ACCESSDENIED Handle = 0x80110818 + COMADMIN_E_PARTITION_MSI_ONLY Handle = 0x80110819 + COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT Handle = 0x8011081A + COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS Handle = 0x8011081B + COMADMIN_E_COMP_MOVE_SOURCE Handle = 0x8011081C + COMADMIN_E_COMP_MOVE_DEST Handle = 0x8011081D + COMADMIN_E_COMP_MOVE_PRIVATE Handle = 0x8011081E + COMADMIN_E_BASEPARTITION_REQUIRED_IN_SET Handle = 0x8011081F + COMADMIN_E_CANNOT_ALIAS_EVENTCLASS Handle = 0x80110820 + COMADMIN_E_PRIVATE_ACCESSDENIED Handle = 0x80110821 + COMADMIN_E_SAFERINVALID Handle = 0x80110822 + COMADMIN_E_REGISTRY_ACCESSDENIED Handle = 0x80110823 + COMADMIN_E_PARTITIONS_DISABLED Handle = 0x80110824 + WER_S_REPORT_DEBUG Handle = 0x001B0000 + WER_S_REPORT_UPLOADED Handle = 0x001B0001 + WER_S_REPORT_QUEUED Handle = 0x001B0002 + WER_S_DISABLED Handle = 0x001B0003 + WER_S_SUSPENDED_UPLOAD Handle = 0x001B0004 + WER_S_DISABLED_QUEUE Handle = 0x001B0005 + WER_S_DISABLED_ARCHIVE Handle = 0x001B0006 + WER_S_REPORT_ASYNC Handle = 0x001B0007 + WER_S_IGNORE_ASSERT_INSTANCE Handle = 0x001B0008 + WER_S_IGNORE_ALL_ASSERTS Handle = 0x001B0009 + WER_S_ASSERT_CONTINUE Handle = 0x001B000A + WER_S_THROTTLED Handle = 0x001B000B + WER_S_REPORT_UPLOADED_CAB Handle = 0x001B000C + WER_E_CRASH_FAILURE Handle = 0x801B8000 + WER_E_CANCELED Handle = 0x801B8001 + WER_E_NETWORK_FAILURE Handle = 0x801B8002 + WER_E_NOT_INITIALIZED Handle = 0x801B8003 + WER_E_ALREADY_REPORTING Handle = 0x801B8004 + WER_E_DUMP_THROTTLED Handle = 0x801B8005 + WER_E_INSUFFICIENT_CONSENT Handle = 0x801B8006 + WER_E_TOO_HEAVY Handle = 0x801B8007 + ERROR_FLT_IO_COMPLETE Handle = 0x001F0001 + ERROR_FLT_NO_HANDLER_DEFINED Handle = 0x801F0001 + ERROR_FLT_CONTEXT_ALREADY_DEFINED Handle = 0x801F0002 + ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST Handle = 0x801F0003 + ERROR_FLT_DISALLOW_FAST_IO Handle = 0x801F0004 + ERROR_FLT_INVALID_NAME_REQUEST Handle = 0x801F0005 + ERROR_FLT_NOT_SAFE_TO_POST_OPERATION Handle = 0x801F0006 + ERROR_FLT_NOT_INITIALIZED Handle = 0x801F0007 + ERROR_FLT_FILTER_NOT_READY Handle = 0x801F0008 + ERROR_FLT_POST_OPERATION_CLEANUP Handle = 0x801F0009 + ERROR_FLT_INTERNAL_ERROR Handle = 0x801F000A + ERROR_FLT_DELETING_OBJECT Handle = 0x801F000B + ERROR_FLT_MUST_BE_NONPAGED_POOL Handle = 0x801F000C + ERROR_FLT_DUPLICATE_ENTRY Handle = 0x801F000D + ERROR_FLT_CBDQ_DISABLED Handle = 0x801F000E + ERROR_FLT_DO_NOT_ATTACH Handle = 0x801F000F + ERROR_FLT_DO_NOT_DETACH Handle = 0x801F0010 + ERROR_FLT_INSTANCE_ALTITUDE_COLLISION Handle = 0x801F0011 + ERROR_FLT_INSTANCE_NAME_COLLISION Handle = 0x801F0012 + ERROR_FLT_FILTER_NOT_FOUND Handle = 0x801F0013 + ERROR_FLT_VOLUME_NOT_FOUND Handle = 0x801F0014 + ERROR_FLT_INSTANCE_NOT_FOUND Handle = 0x801F0015 + ERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND Handle = 0x801F0016 + ERROR_FLT_INVALID_CONTEXT_REGISTRATION Handle = 0x801F0017 + ERROR_FLT_NAME_CACHE_MISS Handle = 0x801F0018 + ERROR_FLT_NO_DEVICE_OBJECT Handle = 0x801F0019 + ERROR_FLT_VOLUME_ALREADY_MOUNTED Handle = 0x801F001A + ERROR_FLT_ALREADY_ENLISTED Handle = 0x801F001B + ERROR_FLT_CONTEXT_ALREADY_LINKED Handle = 0x801F001C + ERROR_FLT_NO_WAITER_FOR_REPLY Handle = 0x801F0020 + ERROR_FLT_REGISTRATION_BUSY Handle = 0x801F0023 + ERROR_HUNG_DISPLAY_DRIVER_THREAD Handle = 0x80260001 + DWM_E_COMPOSITIONDISABLED Handle = 0x80263001 + DWM_E_REMOTING_NOT_SUPPORTED Handle = 0x80263002 + DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE Handle = 0x80263003 + DWM_E_NOT_QUEUING_PRESENTS Handle = 0x80263004 + DWM_E_ADAPTER_NOT_FOUND Handle = 0x80263005 + DWM_S_GDI_REDIRECTION_SURFACE Handle = 0x00263005 + DWM_E_TEXTURE_TOO_LARGE Handle = 0x80263007 + DWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI Handle = 0x00263008 + ERROR_MONITOR_NO_DESCRIPTOR Handle = 0x00261001 + ERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT Handle = 0x00261002 + ERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM Handle = 0xC0261003 + ERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK Handle = 0xC0261004 + ERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED Handle = 0xC0261005 + ERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK Handle = 0xC0261006 + ERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK Handle = 0xC0261007 + ERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA Handle = 0xC0261008 + ERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK Handle = 0xC0261009 + ERROR_MONITOR_INVALID_MANUFACTURE_DATE Handle = 0xC026100A + ERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER Handle = 0xC0262000 + ERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER Handle = 0xC0262001 + ERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER Handle = 0xC0262002 + ERROR_GRAPHICS_ADAPTER_WAS_RESET Handle = 0xC0262003 + ERROR_GRAPHICS_INVALID_DRIVER_MODEL Handle = 0xC0262004 + ERROR_GRAPHICS_PRESENT_MODE_CHANGED Handle = 0xC0262005 + ERROR_GRAPHICS_PRESENT_OCCLUDED Handle = 0xC0262006 + ERROR_GRAPHICS_PRESENT_DENIED Handle = 0xC0262007 + ERROR_GRAPHICS_CANNOTCOLORCONVERT Handle = 0xC0262008 + ERROR_GRAPHICS_DRIVER_MISMATCH Handle = 0xC0262009 + ERROR_GRAPHICS_PARTIAL_DATA_POPULATED Handle = 0x4026200A + ERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED Handle = 0xC026200B + ERROR_GRAPHICS_PRESENT_UNOCCLUDED Handle = 0xC026200C + ERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE Handle = 0xC026200D + ERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED Handle = 0xC026200E + ERROR_GRAPHICS_PRESENT_INVALID_WINDOW Handle = 0xC026200F + ERROR_GRAPHICS_PRESENT_BUFFER_NOT_BOUND Handle = 0xC0262010 + ERROR_GRAPHICS_VAIL_STATE_CHANGED Handle = 0xC0262011 + ERROR_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN Handle = 0xC0262012 + ERROR_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED Handle = 0xC0262013 + ERROR_GRAPHICS_NO_VIDEO_MEMORY Handle = 0xC0262100 + ERROR_GRAPHICS_CANT_LOCK_MEMORY Handle = 0xC0262101 + ERROR_GRAPHICS_ALLOCATION_BUSY Handle = 0xC0262102 + ERROR_GRAPHICS_TOO_MANY_REFERENCES Handle = 0xC0262103 + ERROR_GRAPHICS_TRY_AGAIN_LATER Handle = 0xC0262104 + ERROR_GRAPHICS_TRY_AGAIN_NOW Handle = 0xC0262105 + ERROR_GRAPHICS_ALLOCATION_INVALID Handle = 0xC0262106 + ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE Handle = 0xC0262107 + ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED Handle = 0xC0262108 + ERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION Handle = 0xC0262109 + ERROR_GRAPHICS_INVALID_ALLOCATION_USAGE Handle = 0xC0262110 + ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION Handle = 0xC0262111 + ERROR_GRAPHICS_ALLOCATION_CLOSED Handle = 0xC0262112 + ERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE Handle = 0xC0262113 + ERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE Handle = 0xC0262114 + ERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE Handle = 0xC0262115 + ERROR_GRAPHICS_ALLOCATION_CONTENT_LOST Handle = 0xC0262116 + ERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE Handle = 0xC0262200 + ERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION Handle = 0x40262201 + ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY Handle = 0xC0262300 + ERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED Handle = 0xC0262301 + ERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED Handle = 0xC0262302 + ERROR_GRAPHICS_INVALID_VIDPN Handle = 0xC0262303 + ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE Handle = 0xC0262304 + ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET Handle = 0xC0262305 + ERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED Handle = 0xC0262306 + ERROR_GRAPHICS_MODE_NOT_PINNED Handle = 0x00262307 + ERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET Handle = 0xC0262308 + ERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET Handle = 0xC0262309 + ERROR_GRAPHICS_INVALID_FREQUENCY Handle = 0xC026230A + ERROR_GRAPHICS_INVALID_ACTIVE_REGION Handle = 0xC026230B + ERROR_GRAPHICS_INVALID_TOTAL_REGION Handle = 0xC026230C + ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE Handle = 0xC0262310 + ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE Handle = 0xC0262311 + ERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET Handle = 0xC0262312 + ERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY Handle = 0xC0262313 + ERROR_GRAPHICS_MODE_ALREADY_IN_MODESET Handle = 0xC0262314 + ERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET Handle = 0xC0262315 + ERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET Handle = 0xC0262316 + ERROR_GRAPHICS_SOURCE_ALREADY_IN_SET Handle = 0xC0262317 + ERROR_GRAPHICS_TARGET_ALREADY_IN_SET Handle = 0xC0262318 + ERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH Handle = 0xC0262319 + ERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY Handle = 0xC026231A + ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET Handle = 0xC026231B + ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE Handle = 0xC026231C + ERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET Handle = 0xC026231D + ERROR_GRAPHICS_NO_PREFERRED_MODE Handle = 0x0026231E + ERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET Handle = 0xC026231F + ERROR_GRAPHICS_STALE_MODESET Handle = 0xC0262320 + ERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET Handle = 0xC0262321 + ERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE Handle = 0xC0262322 + ERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN Handle = 0xC0262323 + ERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE Handle = 0xC0262324 + ERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION Handle = 0xC0262325 + ERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES Handle = 0xC0262326 + ERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY Handle = 0xC0262327 + ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE Handle = 0xC0262328 + ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET Handle = 0xC0262329 + ERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET Handle = 0xC026232A + ERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR Handle = 0xC026232B + ERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET Handle = 0xC026232C + ERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET Handle = 0xC026232D + ERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE Handle = 0xC026232E + ERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE Handle = 0xC026232F + ERROR_GRAPHICS_RESOURCES_NOT_RELATED Handle = 0xC0262330 + ERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE Handle = 0xC0262331 + ERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE Handle = 0xC0262332 + ERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET Handle = 0xC0262333 + ERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER Handle = 0xC0262334 + ERROR_GRAPHICS_NO_VIDPNMGR Handle = 0xC0262335 + ERROR_GRAPHICS_NO_ACTIVE_VIDPN Handle = 0xC0262336 + ERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY Handle = 0xC0262337 + ERROR_GRAPHICS_MONITOR_NOT_CONNECTED Handle = 0xC0262338 + ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY Handle = 0xC0262339 + ERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE Handle = 0xC026233A + ERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE Handle = 0xC026233B + ERROR_GRAPHICS_INVALID_STRIDE Handle = 0xC026233C + ERROR_GRAPHICS_INVALID_PIXELFORMAT Handle = 0xC026233D + ERROR_GRAPHICS_INVALID_COLORBASIS Handle = 0xC026233E + ERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE Handle = 0xC026233F + ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY Handle = 0xC0262340 + ERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT Handle = 0xC0262341 + ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0xC0262342 + ERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN Handle = 0xC0262343 + ERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL Handle = 0xC0262344 + ERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION Handle = 0xC0262345 + ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED Handle = 0xC0262346 + ERROR_GRAPHICS_INVALID_GAMMA_RAMP Handle = 0xC0262347 + ERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED Handle = 0xC0262348 + ERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED Handle = 0xC0262349 + ERROR_GRAPHICS_MODE_NOT_IN_MODESET Handle = 0xC026234A + ERROR_GRAPHICS_DATASET_IS_EMPTY Handle = 0x0026234B + ERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET Handle = 0x0026234C + ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON Handle = 0xC026234D + ERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE Handle = 0xC026234E + ERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE Handle = 0xC026234F + ERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS Handle = 0xC0262350 + ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED Handle = 0x00262351 + ERROR_GRAPHICS_INVALID_SCANLINE_ORDERING Handle = 0xC0262352 + ERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED Handle = 0xC0262353 + ERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS Handle = 0xC0262354 + ERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT Handle = 0xC0262355 + ERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM Handle = 0xC0262356 + ERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN Handle = 0xC0262357 + ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT Handle = 0xC0262358 + ERROR_GRAPHICS_MAX_NUM_PATHS_REACHED Handle = 0xC0262359 + ERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION Handle = 0xC026235A + ERROR_GRAPHICS_INVALID_CLIENT_TYPE Handle = 0xC026235B + ERROR_GRAPHICS_CLIENTVIDPN_NOT_SET Handle = 0xC026235C + ERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED Handle = 0xC0262400 + ERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED Handle = 0xC0262401 + ERROR_GRAPHICS_UNKNOWN_CHILD_STATUS Handle = 0x4026242F + ERROR_GRAPHICS_NOT_A_LINKED_ADAPTER Handle = 0xC0262430 + ERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED Handle = 0xC0262431 + ERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED Handle = 0xC0262432 + ERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY Handle = 0xC0262433 + ERROR_GRAPHICS_CHAINLINKS_NOT_STARTED Handle = 0xC0262434 + ERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON Handle = 0xC0262435 + ERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE Handle = 0xC0262436 + ERROR_GRAPHICS_LEADLINK_START_DEFERRED Handle = 0x40262437 + ERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER Handle = 0xC0262438 + ERROR_GRAPHICS_POLLING_TOO_FREQUENTLY Handle = 0x40262439 + ERROR_GRAPHICS_START_DEFERRED Handle = 0x4026243A + ERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED Handle = 0xC026243B + ERROR_GRAPHICS_DEPENDABLE_CHILD_STATUS Handle = 0x4026243C + ERROR_GRAPHICS_OPM_NOT_SUPPORTED Handle = 0xC0262500 + ERROR_GRAPHICS_COPP_NOT_SUPPORTED Handle = 0xC0262501 + ERROR_GRAPHICS_UAB_NOT_SUPPORTED Handle = 0xC0262502 + ERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS Handle = 0xC0262503 + ERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST Handle = 0xC0262505 + ERROR_GRAPHICS_OPM_INTERNAL_ERROR Handle = 0xC026250B + ERROR_GRAPHICS_OPM_INVALID_HANDLE Handle = 0xC026250C + ERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH Handle = 0xC026250E + ERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED Handle = 0xC026250F + ERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED Handle = 0xC0262510 + ERROR_GRAPHICS_PVP_HFS_FAILED Handle = 0xC0262511 + ERROR_GRAPHICS_OPM_INVALID_SRM Handle = 0xC0262512 + ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP Handle = 0xC0262513 + ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP Handle = 0xC0262514 + ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA Handle = 0xC0262515 + ERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET Handle = 0xC0262516 + ERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH Handle = 0xC0262517 + ERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE Handle = 0xC0262518 + ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS Handle = 0xC026251A + ERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS Handle = 0xC026251B + ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS Handle = 0xC026251C + ERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST Handle = 0xC026251D + ERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR Handle = 0xC026251E + ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS Handle = 0xC026251F + ERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED Handle = 0xC0262520 + ERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST Handle = 0xC0262521 + ERROR_GRAPHICS_I2C_NOT_SUPPORTED Handle = 0xC0262580 + ERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST Handle = 0xC0262581 + ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA Handle = 0xC0262582 + ERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA Handle = 0xC0262583 + ERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED Handle = 0xC0262584 + ERROR_GRAPHICS_DDCCI_INVALID_DATA Handle = 0xC0262585 + ERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE Handle = 0xC0262586 + ERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING Handle = 0xC0262587 + ERROR_GRAPHICS_MCA_INTERNAL_ERROR Handle = 0xC0262588 + ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND Handle = 0xC0262589 + ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH Handle = 0xC026258A + ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM Handle = 0xC026258B + ERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE Handle = 0xC026258C + ERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS Handle = 0xC026258D + ERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE Handle = 0xC02625D8 + ERROR_GRAPHICS_MCA_INVALID_VCP_VERSION Handle = 0xC02625D9 + ERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION Handle = 0xC02625DA + ERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH Handle = 0xC02625DB + ERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION Handle = 0xC02625DC + ERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED Handle = 0xC02625DE + ERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE Handle = 0xC02625DF + ERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED Handle = 0xC02625E0 + ERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME Handle = 0xC02625E1 + ERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP Handle = 0xC02625E2 + ERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED Handle = 0xC02625E3 + ERROR_GRAPHICS_INVALID_POINTER Handle = 0xC02625E4 + ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE Handle = 0xC02625E5 + ERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL Handle = 0xC02625E6 + ERROR_GRAPHICS_INTERNAL_ERROR Handle = 0xC02625E7 + ERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS Handle = 0xC02605E8 + NAP_E_INVALID_PACKET Handle = 0x80270001 + NAP_E_MISSING_SOH Handle = 0x80270002 + NAP_E_CONFLICTING_ID Handle = 0x80270003 + NAP_E_NO_CACHED_SOH Handle = 0x80270004 + NAP_E_STILL_BOUND Handle = 0x80270005 + NAP_E_NOT_REGISTERED Handle = 0x80270006 + NAP_E_NOT_INITIALIZED Handle = 0x80270007 + NAP_E_MISMATCHED_ID Handle = 0x80270008 + NAP_E_NOT_PENDING Handle = 0x80270009 + NAP_E_ID_NOT_FOUND Handle = 0x8027000A + NAP_E_MAXSIZE_TOO_SMALL Handle = 0x8027000B + NAP_E_SERVICE_NOT_RUNNING Handle = 0x8027000C + NAP_S_CERT_ALREADY_PRESENT Handle = 0x0027000D + NAP_E_ENTITY_DISABLED Handle = 0x8027000E + NAP_E_NETSH_GROUPPOLICY_ERROR Handle = 0x8027000F + NAP_E_TOO_MANY_CALLS Handle = 0x80270010 + NAP_E_SHV_CONFIG_EXISTED Handle = 0x80270011 + NAP_E_SHV_CONFIG_NOT_FOUND Handle = 0x80270012 + NAP_E_SHV_TIMEOUT Handle = 0x80270013 + TPM_E_ERROR_MASK Handle = 0x80280000 + TPM_E_AUTHFAIL Handle = 0x80280001 + TPM_E_BADINDEX Handle = 0x80280002 + TPM_E_BAD_PARAMETER Handle = 0x80280003 + TPM_E_AUDITFAILURE Handle = 0x80280004 + TPM_E_CLEAR_DISABLED Handle = 0x80280005 + TPM_E_DEACTIVATED Handle = 0x80280006 + TPM_E_DISABLED Handle = 0x80280007 + TPM_E_DISABLED_CMD Handle = 0x80280008 + TPM_E_FAIL Handle = 0x80280009 + TPM_E_BAD_ORDINAL Handle = 0x8028000A + TPM_E_INSTALL_DISABLED Handle = 0x8028000B + TPM_E_INVALID_KEYHANDLE Handle = 0x8028000C + TPM_E_KEYNOTFOUND Handle = 0x8028000D + TPM_E_INAPPROPRIATE_ENC Handle = 0x8028000E + TPM_E_MIGRATEFAIL Handle = 0x8028000F + TPM_E_INVALID_PCR_INFO Handle = 0x80280010 + TPM_E_NOSPACE Handle = 0x80280011 + TPM_E_NOSRK Handle = 0x80280012 + TPM_E_NOTSEALED_BLOB Handle = 0x80280013 + TPM_E_OWNER_SET Handle = 0x80280014 + TPM_E_RESOURCES Handle = 0x80280015 + TPM_E_SHORTRANDOM Handle = 0x80280016 + TPM_E_SIZE Handle = 0x80280017 + TPM_E_WRONGPCRVAL Handle = 0x80280018 + TPM_E_BAD_PARAM_SIZE Handle = 0x80280019 + TPM_E_SHA_THREAD Handle = 0x8028001A + TPM_E_SHA_ERROR Handle = 0x8028001B + TPM_E_FAILEDSELFTEST Handle = 0x8028001C + TPM_E_AUTH2FAIL Handle = 0x8028001D + TPM_E_BADTAG Handle = 0x8028001E + TPM_E_IOERROR Handle = 0x8028001F + TPM_E_ENCRYPT_ERROR Handle = 0x80280020 + TPM_E_DECRYPT_ERROR Handle = 0x80280021 + TPM_E_INVALID_AUTHHANDLE Handle = 0x80280022 + TPM_E_NO_ENDORSEMENT Handle = 0x80280023 + TPM_E_INVALID_KEYUSAGE Handle = 0x80280024 + TPM_E_WRONG_ENTITYTYPE Handle = 0x80280025 + TPM_E_INVALID_POSTINIT Handle = 0x80280026 + TPM_E_INAPPROPRIATE_SIG Handle = 0x80280027 + TPM_E_BAD_KEY_PROPERTY Handle = 0x80280028 + TPM_E_BAD_MIGRATION Handle = 0x80280029 + TPM_E_BAD_SCHEME Handle = 0x8028002A + TPM_E_BAD_DATASIZE Handle = 0x8028002B + TPM_E_BAD_MODE Handle = 0x8028002C + TPM_E_BAD_PRESENCE Handle = 0x8028002D + TPM_E_BAD_VERSION Handle = 0x8028002E + TPM_E_NO_WRAP_TRANSPORT Handle = 0x8028002F + TPM_E_AUDITFAIL_UNSUCCESSFUL Handle = 0x80280030 + TPM_E_AUDITFAIL_SUCCESSFUL Handle = 0x80280031 + TPM_E_NOTRESETABLE Handle = 0x80280032 + TPM_E_NOTLOCAL Handle = 0x80280033 + TPM_E_BAD_TYPE Handle = 0x80280034 + TPM_E_INVALID_RESOURCE Handle = 0x80280035 + TPM_E_NOTFIPS Handle = 0x80280036 + TPM_E_INVALID_FAMILY Handle = 0x80280037 + TPM_E_NO_NV_PERMISSION Handle = 0x80280038 + TPM_E_REQUIRES_SIGN Handle = 0x80280039 + TPM_E_KEY_NOTSUPPORTED Handle = 0x8028003A + TPM_E_AUTH_CONFLICT Handle = 0x8028003B + TPM_E_AREA_LOCKED Handle = 0x8028003C + TPM_E_BAD_LOCALITY Handle = 0x8028003D + TPM_E_READ_ONLY Handle = 0x8028003E + TPM_E_PER_NOWRITE Handle = 0x8028003F + TPM_E_FAMILYCOUNT Handle = 0x80280040 + TPM_E_WRITE_LOCKED Handle = 0x80280041 + TPM_E_BAD_ATTRIBUTES Handle = 0x80280042 + TPM_E_INVALID_STRUCTURE Handle = 0x80280043 + TPM_E_KEY_OWNER_CONTROL Handle = 0x80280044 + TPM_E_BAD_COUNTER Handle = 0x80280045 + TPM_E_NOT_FULLWRITE Handle = 0x80280046 + TPM_E_CONTEXT_GAP Handle = 0x80280047 + TPM_E_MAXNVWRITES Handle = 0x80280048 + TPM_E_NOOPERATOR Handle = 0x80280049 + TPM_E_RESOURCEMISSING Handle = 0x8028004A + TPM_E_DELEGATE_LOCK Handle = 0x8028004B + TPM_E_DELEGATE_FAMILY Handle = 0x8028004C + TPM_E_DELEGATE_ADMIN Handle = 0x8028004D + TPM_E_TRANSPORT_NOTEXCLUSIVE Handle = 0x8028004E + TPM_E_OWNER_CONTROL Handle = 0x8028004F + TPM_E_DAA_RESOURCES Handle = 0x80280050 + TPM_E_DAA_INPUT_DATA0 Handle = 0x80280051 + TPM_E_DAA_INPUT_DATA1 Handle = 0x80280052 + TPM_E_DAA_ISSUER_SETTINGS Handle = 0x80280053 + TPM_E_DAA_TPM_SETTINGS Handle = 0x80280054 + TPM_E_DAA_STAGE Handle = 0x80280055 + TPM_E_DAA_ISSUER_VALIDITY Handle = 0x80280056 + TPM_E_DAA_WRONG_W Handle = 0x80280057 + TPM_E_BAD_HANDLE Handle = 0x80280058 + TPM_E_BAD_DELEGATE Handle = 0x80280059 + TPM_E_BADCONTEXT Handle = 0x8028005A + TPM_E_TOOMANYCONTEXTS Handle = 0x8028005B + TPM_E_MA_TICKET_SIGNATURE Handle = 0x8028005C + TPM_E_MA_DESTINATION Handle = 0x8028005D + TPM_E_MA_SOURCE Handle = 0x8028005E + TPM_E_MA_AUTHORITY Handle = 0x8028005F + TPM_E_PERMANENTEK Handle = 0x80280061 + TPM_E_BAD_SIGNATURE Handle = 0x80280062 + TPM_E_NOCONTEXTSPACE Handle = 0x80280063 + TPM_20_E_ASYMMETRIC Handle = 0x80280081 + TPM_20_E_ATTRIBUTES Handle = 0x80280082 + TPM_20_E_HASH Handle = 0x80280083 + TPM_20_E_VALUE Handle = 0x80280084 + TPM_20_E_HIERARCHY Handle = 0x80280085 + TPM_20_E_KEY_SIZE Handle = 0x80280087 + TPM_20_E_MGF Handle = 0x80280088 + TPM_20_E_MODE Handle = 0x80280089 + TPM_20_E_TYPE Handle = 0x8028008A + TPM_20_E_HANDLE Handle = 0x8028008B + TPM_20_E_KDF Handle = 0x8028008C + TPM_20_E_RANGE Handle = 0x8028008D + TPM_20_E_AUTH_FAIL Handle = 0x8028008E + TPM_20_E_NONCE Handle = 0x8028008F + TPM_20_E_PP Handle = 0x80280090 + TPM_20_E_SCHEME Handle = 0x80280092 + TPM_20_E_SIZE Handle = 0x80280095 + TPM_20_E_SYMMETRIC Handle = 0x80280096 + TPM_20_E_TAG Handle = 0x80280097 + TPM_20_E_SELECTOR Handle = 0x80280098 + TPM_20_E_INSUFFICIENT Handle = 0x8028009A + TPM_20_E_SIGNATURE Handle = 0x8028009B + TPM_20_E_KEY Handle = 0x8028009C + TPM_20_E_POLICY_FAIL Handle = 0x8028009D + TPM_20_E_INTEGRITY Handle = 0x8028009F + TPM_20_E_TICKET Handle = 0x802800A0 + TPM_20_E_RESERVED_BITS Handle = 0x802800A1 + TPM_20_E_BAD_AUTH Handle = 0x802800A2 + TPM_20_E_EXPIRED Handle = 0x802800A3 + TPM_20_E_POLICY_CC Handle = 0x802800A4 + TPM_20_E_BINDING Handle = 0x802800A5 + TPM_20_E_CURVE Handle = 0x802800A6 + TPM_20_E_ECC_POINT Handle = 0x802800A7 + TPM_20_E_INITIALIZE Handle = 0x80280100 + TPM_20_E_FAILURE Handle = 0x80280101 + TPM_20_E_SEQUENCE Handle = 0x80280103 + TPM_20_E_PRIVATE Handle = 0x8028010B + TPM_20_E_HMAC Handle = 0x80280119 + TPM_20_E_DISABLED Handle = 0x80280120 + TPM_20_E_EXCLUSIVE Handle = 0x80280121 + TPM_20_E_ECC_CURVE Handle = 0x80280123 + TPM_20_E_AUTH_TYPE Handle = 0x80280124 + TPM_20_E_AUTH_MISSING Handle = 0x80280125 + TPM_20_E_POLICY Handle = 0x80280126 + TPM_20_E_PCR Handle = 0x80280127 + TPM_20_E_PCR_CHANGED Handle = 0x80280128 + TPM_20_E_UPGRADE Handle = 0x8028012D + TPM_20_E_TOO_MANY_CONTEXTS Handle = 0x8028012E + TPM_20_E_AUTH_UNAVAILABLE Handle = 0x8028012F + TPM_20_E_REBOOT Handle = 0x80280130 + TPM_20_E_UNBALANCED Handle = 0x80280131 + TPM_20_E_COMMAND_SIZE Handle = 0x80280142 + TPM_20_E_COMMAND_CODE Handle = 0x80280143 + TPM_20_E_AUTHSIZE Handle = 0x80280144 + TPM_20_E_AUTH_CONTEXT Handle = 0x80280145 + TPM_20_E_NV_RANGE Handle = 0x80280146 + TPM_20_E_NV_SIZE Handle = 0x80280147 + TPM_20_E_NV_LOCKED Handle = 0x80280148 + TPM_20_E_NV_AUTHORIZATION Handle = 0x80280149 + TPM_20_E_NV_UNINITIALIZED Handle = 0x8028014A + TPM_20_E_NV_SPACE Handle = 0x8028014B + TPM_20_E_NV_DEFINED Handle = 0x8028014C + TPM_20_E_BAD_CONTEXT Handle = 0x80280150 + TPM_20_E_CPHASH Handle = 0x80280151 + TPM_20_E_PARENT Handle = 0x80280152 + TPM_20_E_NEEDS_TEST Handle = 0x80280153 + TPM_20_E_NO_RESULT Handle = 0x80280154 + TPM_20_E_SENSITIVE Handle = 0x80280155 + TPM_E_COMMAND_BLOCKED Handle = 0x80280400 + TPM_E_INVALID_HANDLE Handle = 0x80280401 + TPM_E_DUPLICATE_VHANDLE Handle = 0x80280402 + TPM_E_EMBEDDED_COMMAND_BLOCKED Handle = 0x80280403 + TPM_E_EMBEDDED_COMMAND_UNSUPPORTED Handle = 0x80280404 + TPM_E_RETRY Handle = 0x80280800 + TPM_E_NEEDS_SELFTEST Handle = 0x80280801 + TPM_E_DOING_SELFTEST Handle = 0x80280802 + TPM_E_DEFEND_LOCK_RUNNING Handle = 0x80280803 + TPM_20_E_CONTEXT_GAP Handle = 0x80280901 + TPM_20_E_OBJECT_MEMORY Handle = 0x80280902 + TPM_20_E_SESSION_MEMORY Handle = 0x80280903 + TPM_20_E_MEMORY Handle = 0x80280904 + TPM_20_E_SESSION_HANDLES Handle = 0x80280905 + TPM_20_E_OBJECT_HANDLES Handle = 0x80280906 + TPM_20_E_LOCALITY Handle = 0x80280907 + TPM_20_E_YIELDED Handle = 0x80280908 + TPM_20_E_CANCELED Handle = 0x80280909 + TPM_20_E_TESTING Handle = 0x8028090A + TPM_20_E_NV_RATE Handle = 0x80280920 + TPM_20_E_LOCKOUT Handle = 0x80280921 + TPM_20_E_RETRY Handle = 0x80280922 + TPM_20_E_NV_UNAVAILABLE Handle = 0x80280923 + TBS_E_INTERNAL_ERROR Handle = 0x80284001 + TBS_E_BAD_PARAMETER Handle = 0x80284002 + TBS_E_INVALID_OUTPUT_POINTER Handle = 0x80284003 + TBS_E_INVALID_CONTEXT Handle = 0x80284004 + TBS_E_INSUFFICIENT_BUFFER Handle = 0x80284005 + TBS_E_IOERROR Handle = 0x80284006 + TBS_E_INVALID_CONTEXT_PARAM Handle = 0x80284007 + TBS_E_SERVICE_NOT_RUNNING Handle = 0x80284008 + TBS_E_TOO_MANY_TBS_CONTEXTS Handle = 0x80284009 + TBS_E_TOO_MANY_RESOURCES Handle = 0x8028400A + TBS_E_SERVICE_START_PENDING Handle = 0x8028400B + TBS_E_PPI_NOT_SUPPORTED Handle = 0x8028400C + TBS_E_COMMAND_CANCELED Handle = 0x8028400D + TBS_E_BUFFER_TOO_LARGE Handle = 0x8028400E + TBS_E_TPM_NOT_FOUND Handle = 0x8028400F + TBS_E_SERVICE_DISABLED Handle = 0x80284010 + TBS_E_NO_EVENT_LOG Handle = 0x80284011 + TBS_E_ACCESS_DENIED Handle = 0x80284012 + TBS_E_PROVISIONING_NOT_ALLOWED Handle = 0x80284013 + TBS_E_PPI_FUNCTION_UNSUPPORTED Handle = 0x80284014 + TBS_E_OWNERAUTH_NOT_FOUND Handle = 0x80284015 + TBS_E_PROVISIONING_INCOMPLETE Handle = 0x80284016 + TPMAPI_E_INVALID_STATE Handle = 0x80290100 + TPMAPI_E_NOT_ENOUGH_DATA Handle = 0x80290101 + TPMAPI_E_TOO_MUCH_DATA Handle = 0x80290102 + TPMAPI_E_INVALID_OUTPUT_POINTER Handle = 0x80290103 + TPMAPI_E_INVALID_PARAMETER Handle = 0x80290104 + TPMAPI_E_OUT_OF_MEMORY Handle = 0x80290105 + TPMAPI_E_BUFFER_TOO_SMALL Handle = 0x80290106 + TPMAPI_E_INTERNAL_ERROR Handle = 0x80290107 + TPMAPI_E_ACCESS_DENIED Handle = 0x80290108 + TPMAPI_E_AUTHORIZATION_FAILED Handle = 0x80290109 + TPMAPI_E_INVALID_CONTEXT_HANDLE Handle = 0x8029010A + TPMAPI_E_TBS_COMMUNICATION_ERROR Handle = 0x8029010B + TPMAPI_E_TPM_COMMAND_ERROR Handle = 0x8029010C + TPMAPI_E_MESSAGE_TOO_LARGE Handle = 0x8029010D + TPMAPI_E_INVALID_ENCODING Handle = 0x8029010E + TPMAPI_E_INVALID_KEY_SIZE Handle = 0x8029010F + TPMAPI_E_ENCRYPTION_FAILED Handle = 0x80290110 + TPMAPI_E_INVALID_KEY_PARAMS Handle = 0x80290111 + TPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB Handle = 0x80290112 + TPMAPI_E_INVALID_PCR_INDEX Handle = 0x80290113 + TPMAPI_E_INVALID_DELEGATE_BLOB Handle = 0x80290114 + TPMAPI_E_INVALID_CONTEXT_PARAMS Handle = 0x80290115 + TPMAPI_E_INVALID_KEY_BLOB Handle = 0x80290116 + TPMAPI_E_INVALID_PCR_DATA Handle = 0x80290117 + TPMAPI_E_INVALID_OWNER_AUTH Handle = 0x80290118 + TPMAPI_E_FIPS_RNG_CHECK_FAILED Handle = 0x80290119 + TPMAPI_E_EMPTY_TCG_LOG Handle = 0x8029011A + TPMAPI_E_INVALID_TCG_LOG_ENTRY Handle = 0x8029011B + TPMAPI_E_TCG_SEPARATOR_ABSENT Handle = 0x8029011C + TPMAPI_E_TCG_INVALID_DIGEST_ENTRY Handle = 0x8029011D + TPMAPI_E_POLICY_DENIES_OPERATION Handle = 0x8029011E + TPMAPI_E_NV_BITS_NOT_DEFINED Handle = 0x8029011F + TPMAPI_E_NV_BITS_NOT_READY Handle = 0x80290120 + TPMAPI_E_SEALING_KEY_NOT_AVAILABLE Handle = 0x80290121 + TPMAPI_E_NO_AUTHORIZATION_CHAIN_FOUND Handle = 0x80290122 + TPMAPI_E_SVN_COUNTER_NOT_AVAILABLE Handle = 0x80290123 + TPMAPI_E_OWNER_AUTH_NOT_NULL Handle = 0x80290124 + TPMAPI_E_ENDORSEMENT_AUTH_NOT_NULL Handle = 0x80290125 + TPMAPI_E_AUTHORIZATION_REVOKED Handle = 0x80290126 + TPMAPI_E_MALFORMED_AUTHORIZATION_KEY Handle = 0x80290127 + TPMAPI_E_AUTHORIZING_KEY_NOT_SUPPORTED Handle = 0x80290128 + TPMAPI_E_INVALID_AUTHORIZATION_SIGNATURE Handle = 0x80290129 + TPMAPI_E_MALFORMED_AUTHORIZATION_POLICY Handle = 0x8029012A + TPMAPI_E_MALFORMED_AUTHORIZATION_OTHER Handle = 0x8029012B + TPMAPI_E_SEALING_KEY_CHANGED Handle = 0x8029012C + TBSIMP_E_BUFFER_TOO_SMALL Handle = 0x80290200 + TBSIMP_E_CLEANUP_FAILED Handle = 0x80290201 + TBSIMP_E_INVALID_CONTEXT_HANDLE Handle = 0x80290202 + TBSIMP_E_INVALID_CONTEXT_PARAM Handle = 0x80290203 + TBSIMP_E_TPM_ERROR Handle = 0x80290204 + TBSIMP_E_HASH_BAD_KEY Handle = 0x80290205 + TBSIMP_E_DUPLICATE_VHANDLE Handle = 0x80290206 + TBSIMP_E_INVALID_OUTPUT_POINTER Handle = 0x80290207 + TBSIMP_E_INVALID_PARAMETER Handle = 0x80290208 + TBSIMP_E_RPC_INIT_FAILED Handle = 0x80290209 + TBSIMP_E_SCHEDULER_NOT_RUNNING Handle = 0x8029020A + TBSIMP_E_COMMAND_CANCELED Handle = 0x8029020B + TBSIMP_E_OUT_OF_MEMORY Handle = 0x8029020C + TBSIMP_E_LIST_NO_MORE_ITEMS Handle = 0x8029020D + TBSIMP_E_LIST_NOT_FOUND Handle = 0x8029020E + TBSIMP_E_NOT_ENOUGH_SPACE Handle = 0x8029020F + TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS Handle = 0x80290210 + TBSIMP_E_COMMAND_FAILED Handle = 0x80290211 + TBSIMP_E_UNKNOWN_ORDINAL Handle = 0x80290212 + TBSIMP_E_RESOURCE_EXPIRED Handle = 0x80290213 + TBSIMP_E_INVALID_RESOURCE Handle = 0x80290214 + TBSIMP_E_NOTHING_TO_UNLOAD Handle = 0x80290215 + TBSIMP_E_HASH_TABLE_FULL Handle = 0x80290216 + TBSIMP_E_TOO_MANY_TBS_CONTEXTS Handle = 0x80290217 + TBSIMP_E_TOO_MANY_RESOURCES Handle = 0x80290218 + TBSIMP_E_PPI_NOT_SUPPORTED Handle = 0x80290219 + TBSIMP_E_TPM_INCOMPATIBLE Handle = 0x8029021A + TBSIMP_E_NO_EVENT_LOG Handle = 0x8029021B + TPM_E_PPI_ACPI_FAILURE Handle = 0x80290300 + TPM_E_PPI_USER_ABORT Handle = 0x80290301 + TPM_E_PPI_BIOS_FAILURE Handle = 0x80290302 + TPM_E_PPI_NOT_SUPPORTED Handle = 0x80290303 + TPM_E_PPI_BLOCKED_IN_BIOS Handle = 0x80290304 + TPM_E_PCP_ERROR_MASK Handle = 0x80290400 + TPM_E_PCP_DEVICE_NOT_READY Handle = 0x80290401 + TPM_E_PCP_INVALID_HANDLE Handle = 0x80290402 + TPM_E_PCP_INVALID_PARAMETER Handle = 0x80290403 + TPM_E_PCP_FLAG_NOT_SUPPORTED Handle = 0x80290404 + TPM_E_PCP_NOT_SUPPORTED Handle = 0x80290405 + TPM_E_PCP_BUFFER_TOO_SMALL Handle = 0x80290406 + TPM_E_PCP_INTERNAL_ERROR Handle = 0x80290407 + TPM_E_PCP_AUTHENTICATION_FAILED Handle = 0x80290408 + TPM_E_PCP_AUTHENTICATION_IGNORED Handle = 0x80290409 + TPM_E_PCP_POLICY_NOT_FOUND Handle = 0x8029040A + TPM_E_PCP_PROFILE_NOT_FOUND Handle = 0x8029040B + TPM_E_PCP_VALIDATION_FAILED Handle = 0x8029040C + TPM_E_PCP_WRONG_PARENT Handle = 0x8029040E + TPM_E_KEY_NOT_LOADED Handle = 0x8029040F + TPM_E_NO_KEY_CERTIFICATION Handle = 0x80290410 + TPM_E_KEY_NOT_FINALIZED Handle = 0x80290411 + TPM_E_ATTESTATION_CHALLENGE_NOT_SET Handle = 0x80290412 + TPM_E_NOT_PCR_BOUND Handle = 0x80290413 + TPM_E_KEY_ALREADY_FINALIZED Handle = 0x80290414 + TPM_E_KEY_USAGE_POLICY_NOT_SUPPORTED Handle = 0x80290415 + TPM_E_KEY_USAGE_POLICY_INVALID Handle = 0x80290416 + TPM_E_SOFT_KEY_ERROR Handle = 0x80290417 + TPM_E_KEY_NOT_AUTHENTICATED Handle = 0x80290418 + TPM_E_PCP_KEY_NOT_AIK Handle = 0x80290419 + TPM_E_KEY_NOT_SIGNING_KEY Handle = 0x8029041A + TPM_E_LOCKED_OUT Handle = 0x8029041B + TPM_E_CLAIM_TYPE_NOT_SUPPORTED Handle = 0x8029041C + TPM_E_VERSION_NOT_SUPPORTED Handle = 0x8029041D + TPM_E_BUFFER_LENGTH_MISMATCH Handle = 0x8029041E + TPM_E_PCP_IFX_RSA_KEY_CREATION_BLOCKED Handle = 0x8029041F + TPM_E_PCP_TICKET_MISSING Handle = 0x80290420 + TPM_E_PCP_RAW_POLICY_NOT_SUPPORTED Handle = 0x80290421 + TPM_E_PCP_KEY_HANDLE_INVALIDATED Handle = 0x80290422 + TPM_E_PCP_UNSUPPORTED_PSS_SALT Handle = 0x40290423 + TPM_E_ZERO_EXHAUST_ENABLED Handle = 0x80290500 + PLA_E_DCS_NOT_FOUND Handle = 0x80300002 + PLA_E_DCS_IN_USE Handle = 0x803000AA + PLA_E_TOO_MANY_FOLDERS Handle = 0x80300045 + PLA_E_NO_MIN_DISK Handle = 0x80300070 + PLA_E_DCS_ALREADY_EXISTS Handle = 0x803000B7 + PLA_S_PROPERTY_IGNORED Handle = 0x00300100 + PLA_E_PROPERTY_CONFLICT Handle = 0x80300101 + PLA_E_DCS_SINGLETON_REQUIRED Handle = 0x80300102 + PLA_E_CREDENTIALS_REQUIRED Handle = 0x80300103 + PLA_E_DCS_NOT_RUNNING Handle = 0x80300104 + PLA_E_CONFLICT_INCL_EXCL_API Handle = 0x80300105 + PLA_E_NETWORK_EXE_NOT_VALID Handle = 0x80300106 + PLA_E_EXE_ALREADY_CONFIGURED Handle = 0x80300107 + PLA_E_EXE_PATH_NOT_VALID Handle = 0x80300108 + PLA_E_DC_ALREADY_EXISTS Handle = 0x80300109 + PLA_E_DCS_START_WAIT_TIMEOUT Handle = 0x8030010A + PLA_E_DC_START_WAIT_TIMEOUT Handle = 0x8030010B + PLA_E_REPORT_WAIT_TIMEOUT Handle = 0x8030010C + PLA_E_NO_DUPLICATES Handle = 0x8030010D + PLA_E_EXE_FULL_PATH_REQUIRED Handle = 0x8030010E + PLA_E_INVALID_SESSION_NAME Handle = 0x8030010F + PLA_E_PLA_CHANNEL_NOT_ENABLED Handle = 0x80300110 + PLA_E_TASKSCHED_CHANNEL_NOT_ENABLED Handle = 0x80300111 + PLA_E_RULES_MANAGER_FAILED Handle = 0x80300112 + PLA_E_CABAPI_FAILURE Handle = 0x80300113 + FVE_E_LOCKED_VOLUME Handle = 0x80310000 + FVE_E_NOT_ENCRYPTED Handle = 0x80310001 + FVE_E_NO_TPM_BIOS Handle = 0x80310002 + FVE_E_NO_MBR_METRIC Handle = 0x80310003 + FVE_E_NO_BOOTSECTOR_METRIC Handle = 0x80310004 + FVE_E_NO_BOOTMGR_METRIC Handle = 0x80310005 + FVE_E_WRONG_BOOTMGR Handle = 0x80310006 + FVE_E_SECURE_KEY_REQUIRED Handle = 0x80310007 + FVE_E_NOT_ACTIVATED Handle = 0x80310008 + FVE_E_ACTION_NOT_ALLOWED Handle = 0x80310009 + FVE_E_AD_SCHEMA_NOT_INSTALLED Handle = 0x8031000A + FVE_E_AD_INVALID_DATATYPE Handle = 0x8031000B + FVE_E_AD_INVALID_DATASIZE Handle = 0x8031000C + FVE_E_AD_NO_VALUES Handle = 0x8031000D + FVE_E_AD_ATTR_NOT_SET Handle = 0x8031000E + FVE_E_AD_GUID_NOT_FOUND Handle = 0x8031000F + FVE_E_BAD_INFORMATION Handle = 0x80310010 + FVE_E_TOO_SMALL Handle = 0x80310011 + FVE_E_SYSTEM_VOLUME Handle = 0x80310012 + FVE_E_FAILED_WRONG_FS Handle = 0x80310013 + FVE_E_BAD_PARTITION_SIZE Handle = 0x80310014 + FVE_E_NOT_SUPPORTED Handle = 0x80310015 + FVE_E_BAD_DATA Handle = 0x80310016 + FVE_E_VOLUME_NOT_BOUND Handle = 0x80310017 + FVE_E_TPM_NOT_OWNED Handle = 0x80310018 + FVE_E_NOT_DATA_VOLUME Handle = 0x80310019 + FVE_E_AD_INSUFFICIENT_BUFFER Handle = 0x8031001A + FVE_E_CONV_READ Handle = 0x8031001B + FVE_E_CONV_WRITE Handle = 0x8031001C + FVE_E_KEY_REQUIRED Handle = 0x8031001D + FVE_E_CLUSTERING_NOT_SUPPORTED Handle = 0x8031001E + FVE_E_VOLUME_BOUND_ALREADY Handle = 0x8031001F + FVE_E_OS_NOT_PROTECTED Handle = 0x80310020 + FVE_E_PROTECTION_DISABLED Handle = 0x80310021 + FVE_E_RECOVERY_KEY_REQUIRED Handle = 0x80310022 + FVE_E_FOREIGN_VOLUME Handle = 0x80310023 + FVE_E_OVERLAPPED_UPDATE Handle = 0x80310024 + FVE_E_TPM_SRK_AUTH_NOT_ZERO Handle = 0x80310025 + FVE_E_FAILED_SECTOR_SIZE Handle = 0x80310026 + FVE_E_FAILED_AUTHENTICATION Handle = 0x80310027 + FVE_E_NOT_OS_VOLUME Handle = 0x80310028 + FVE_E_AUTOUNLOCK_ENABLED Handle = 0x80310029 + FVE_E_WRONG_BOOTSECTOR Handle = 0x8031002A + FVE_E_WRONG_SYSTEM_FS Handle = 0x8031002B + FVE_E_POLICY_PASSWORD_REQUIRED Handle = 0x8031002C + FVE_E_CANNOT_SET_FVEK_ENCRYPTED Handle = 0x8031002D + FVE_E_CANNOT_ENCRYPT_NO_KEY Handle = 0x8031002E + FVE_E_BOOTABLE_CDDVD Handle = 0x80310030 + FVE_E_PROTECTOR_EXISTS Handle = 0x80310031 + FVE_E_RELATIVE_PATH Handle = 0x80310032 + FVE_E_PROTECTOR_NOT_FOUND Handle = 0x80310033 + FVE_E_INVALID_KEY_FORMAT Handle = 0x80310034 + FVE_E_INVALID_PASSWORD_FORMAT Handle = 0x80310035 + FVE_E_FIPS_RNG_CHECK_FAILED Handle = 0x80310036 + FVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD Handle = 0x80310037 + FVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT Handle = 0x80310038 + FVE_E_NOT_DECRYPTED Handle = 0x80310039 + FVE_E_INVALID_PROTECTOR_TYPE Handle = 0x8031003A + FVE_E_NO_PROTECTORS_TO_TEST Handle = 0x8031003B + FVE_E_KEYFILE_NOT_FOUND Handle = 0x8031003C + FVE_E_KEYFILE_INVALID Handle = 0x8031003D + FVE_E_KEYFILE_NO_VMK Handle = 0x8031003E + FVE_E_TPM_DISABLED Handle = 0x8031003F + FVE_E_NOT_ALLOWED_IN_SAFE_MODE Handle = 0x80310040 + FVE_E_TPM_INVALID_PCR Handle = 0x80310041 + FVE_E_TPM_NO_VMK Handle = 0x80310042 + FVE_E_PIN_INVALID Handle = 0x80310043 + FVE_E_AUTH_INVALID_APPLICATION Handle = 0x80310044 + FVE_E_AUTH_INVALID_CONFIG Handle = 0x80310045 + FVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED Handle = 0x80310046 + FVE_E_FS_NOT_EXTENDED Handle = 0x80310047 + FVE_E_FIRMWARE_TYPE_NOT_SUPPORTED Handle = 0x80310048 + FVE_E_NO_LICENSE Handle = 0x80310049 + FVE_E_NOT_ON_STACK Handle = 0x8031004A + FVE_E_FS_MOUNTED Handle = 0x8031004B + FVE_E_TOKEN_NOT_IMPERSONATED Handle = 0x8031004C + FVE_E_DRY_RUN_FAILED Handle = 0x8031004D + FVE_E_REBOOT_REQUIRED Handle = 0x8031004E + FVE_E_DEBUGGER_ENABLED Handle = 0x8031004F + FVE_E_RAW_ACCESS Handle = 0x80310050 + FVE_E_RAW_BLOCKED Handle = 0x80310051 + FVE_E_BCD_APPLICATIONS_PATH_INCORRECT Handle = 0x80310052 + FVE_E_NOT_ALLOWED_IN_VERSION Handle = 0x80310053 + FVE_E_NO_AUTOUNLOCK_MASTER_KEY Handle = 0x80310054 + FVE_E_MOR_FAILED Handle = 0x80310055 + FVE_E_HIDDEN_VOLUME Handle = 0x80310056 + FVE_E_TRANSIENT_STATE Handle = 0x80310057 + FVE_E_PUBKEY_NOT_ALLOWED Handle = 0x80310058 + FVE_E_VOLUME_HANDLE_OPEN Handle = 0x80310059 + FVE_E_NO_FEATURE_LICENSE Handle = 0x8031005A + FVE_E_INVALID_STARTUP_OPTIONS Handle = 0x8031005B + FVE_E_POLICY_RECOVERY_PASSWORD_NOT_ALLOWED Handle = 0x8031005C + FVE_E_POLICY_RECOVERY_PASSWORD_REQUIRED Handle = 0x8031005D + FVE_E_POLICY_RECOVERY_KEY_NOT_ALLOWED Handle = 0x8031005E + FVE_E_POLICY_RECOVERY_KEY_REQUIRED Handle = 0x8031005F + FVE_E_POLICY_STARTUP_PIN_NOT_ALLOWED Handle = 0x80310060 + FVE_E_POLICY_STARTUP_PIN_REQUIRED Handle = 0x80310061 + FVE_E_POLICY_STARTUP_KEY_NOT_ALLOWED Handle = 0x80310062 + FVE_E_POLICY_STARTUP_KEY_REQUIRED Handle = 0x80310063 + FVE_E_POLICY_STARTUP_PIN_KEY_NOT_ALLOWED Handle = 0x80310064 + FVE_E_POLICY_STARTUP_PIN_KEY_REQUIRED Handle = 0x80310065 + FVE_E_POLICY_STARTUP_TPM_NOT_ALLOWED Handle = 0x80310066 + FVE_E_POLICY_STARTUP_TPM_REQUIRED Handle = 0x80310067 + FVE_E_POLICY_INVALID_PIN_LENGTH Handle = 0x80310068 + FVE_E_KEY_PROTECTOR_NOT_SUPPORTED Handle = 0x80310069 + FVE_E_POLICY_PASSPHRASE_NOT_ALLOWED Handle = 0x8031006A + FVE_E_POLICY_PASSPHRASE_REQUIRED Handle = 0x8031006B + FVE_E_FIPS_PREVENTS_PASSPHRASE Handle = 0x8031006C + FVE_E_OS_VOLUME_PASSPHRASE_NOT_ALLOWED Handle = 0x8031006D + FVE_E_INVALID_BITLOCKER_OID Handle = 0x8031006E + FVE_E_VOLUME_TOO_SMALL Handle = 0x8031006F + FVE_E_DV_NOT_SUPPORTED_ON_FS Handle = 0x80310070 + FVE_E_DV_NOT_ALLOWED_BY_GP Handle = 0x80310071 + FVE_E_POLICY_USER_CERTIFICATE_NOT_ALLOWED Handle = 0x80310072 + FVE_E_POLICY_USER_CERTIFICATE_REQUIRED Handle = 0x80310073 + FVE_E_POLICY_USER_CERT_MUST_BE_HW Handle = 0x80310074 + FVE_E_POLICY_USER_CONFIGURE_FDV_AUTOUNLOCK_NOT_ALLOWED Handle = 0x80310075 + FVE_E_POLICY_USER_CONFIGURE_RDV_AUTOUNLOCK_NOT_ALLOWED Handle = 0x80310076 + FVE_E_POLICY_USER_CONFIGURE_RDV_NOT_ALLOWED Handle = 0x80310077 + FVE_E_POLICY_USER_ENABLE_RDV_NOT_ALLOWED Handle = 0x80310078 + FVE_E_POLICY_USER_DISABLE_RDV_NOT_ALLOWED Handle = 0x80310079 + FVE_E_POLICY_INVALID_PASSPHRASE_LENGTH Handle = 0x80310080 + FVE_E_POLICY_PASSPHRASE_TOO_SIMPLE Handle = 0x80310081 + FVE_E_RECOVERY_PARTITION Handle = 0x80310082 + FVE_E_POLICY_CONFLICT_FDV_RK_OFF_AUK_ON Handle = 0x80310083 + FVE_E_POLICY_CONFLICT_RDV_RK_OFF_AUK_ON Handle = 0x80310084 + FVE_E_NON_BITLOCKER_OID Handle = 0x80310085 + FVE_E_POLICY_PROHIBITS_SELFSIGNED Handle = 0x80310086 + FVE_E_POLICY_CONFLICT_RO_AND_STARTUP_KEY_REQUIRED Handle = 0x80310087 + FVE_E_CONV_RECOVERY_FAILED Handle = 0x80310088 + FVE_E_VIRTUALIZED_SPACE_TOO_BIG Handle = 0x80310089 + FVE_E_POLICY_CONFLICT_OSV_RP_OFF_ADB_ON Handle = 0x80310090 + FVE_E_POLICY_CONFLICT_FDV_RP_OFF_ADB_ON Handle = 0x80310091 + FVE_E_POLICY_CONFLICT_RDV_RP_OFF_ADB_ON Handle = 0x80310092 + FVE_E_NON_BITLOCKER_KU Handle = 0x80310093 + FVE_E_PRIVATEKEY_AUTH_FAILED Handle = 0x80310094 + FVE_E_REMOVAL_OF_DRA_FAILED Handle = 0x80310095 + FVE_E_OPERATION_NOT_SUPPORTED_ON_VISTA_VOLUME Handle = 0x80310096 + FVE_E_CANT_LOCK_AUTOUNLOCK_ENABLED_VOLUME Handle = 0x80310097 + FVE_E_FIPS_HASH_KDF_NOT_ALLOWED Handle = 0x80310098 + FVE_E_ENH_PIN_INVALID Handle = 0x80310099 + FVE_E_INVALID_PIN_CHARS Handle = 0x8031009A + FVE_E_INVALID_DATUM_TYPE Handle = 0x8031009B + FVE_E_EFI_ONLY Handle = 0x8031009C + FVE_E_MULTIPLE_NKP_CERTS Handle = 0x8031009D + FVE_E_REMOVAL_OF_NKP_FAILED Handle = 0x8031009E + FVE_E_INVALID_NKP_CERT Handle = 0x8031009F + FVE_E_NO_EXISTING_PIN Handle = 0x803100A0 + FVE_E_PROTECTOR_CHANGE_PIN_MISMATCH Handle = 0x803100A1 + FVE_E_PIN_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED Handle = 0x803100A2 + FVE_E_PROTECTOR_CHANGE_MAX_PIN_CHANGE_ATTEMPTS_REACHED Handle = 0x803100A3 + FVE_E_POLICY_PASSPHRASE_REQUIRES_ASCII Handle = 0x803100A4 + FVE_E_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE Handle = 0x803100A5 + FVE_E_WIPE_NOT_ALLOWED_ON_TP_STORAGE Handle = 0x803100A6 + FVE_E_KEY_LENGTH_NOT_SUPPORTED_BY_EDRIVE Handle = 0x803100A7 + FVE_E_NO_EXISTING_PASSPHRASE Handle = 0x803100A8 + FVE_E_PROTECTOR_CHANGE_PASSPHRASE_MISMATCH Handle = 0x803100A9 + FVE_E_PASSPHRASE_TOO_LONG Handle = 0x803100AA + FVE_E_NO_PASSPHRASE_WITH_TPM Handle = 0x803100AB + FVE_E_NO_TPM_WITH_PASSPHRASE Handle = 0x803100AC + FVE_E_NOT_ALLOWED_ON_CSV_STACK Handle = 0x803100AD + FVE_E_NOT_ALLOWED_ON_CLUSTER Handle = 0x803100AE + FVE_E_EDRIVE_NO_FAILOVER_TO_SW Handle = 0x803100AF + FVE_E_EDRIVE_BAND_IN_USE Handle = 0x803100B0 + FVE_E_EDRIVE_DISALLOWED_BY_GP Handle = 0x803100B1 + FVE_E_EDRIVE_INCOMPATIBLE_VOLUME Handle = 0x803100B2 + FVE_E_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING Handle = 0x803100B3 + FVE_E_EDRIVE_DV_NOT_SUPPORTED Handle = 0x803100B4 + FVE_E_NO_PREBOOT_KEYBOARD_DETECTED Handle = 0x803100B5 + FVE_E_NO_PREBOOT_KEYBOARD_OR_WINRE_DETECTED Handle = 0x803100B6 + FVE_E_POLICY_REQUIRES_STARTUP_PIN_ON_TOUCH_DEVICE Handle = 0x803100B7 + FVE_E_POLICY_REQUIRES_RECOVERY_PASSWORD_ON_TOUCH_DEVICE Handle = 0x803100B8 + FVE_E_WIPE_CANCEL_NOT_APPLICABLE Handle = 0x803100B9 + FVE_E_SECUREBOOT_DISABLED Handle = 0x803100BA + FVE_E_SECUREBOOT_CONFIGURATION_INVALID Handle = 0x803100BB + FVE_E_EDRIVE_DRY_RUN_FAILED Handle = 0x803100BC + FVE_E_SHADOW_COPY_PRESENT Handle = 0x803100BD + FVE_E_POLICY_INVALID_ENHANCED_BCD_SETTINGS Handle = 0x803100BE + FVE_E_EDRIVE_INCOMPATIBLE_FIRMWARE Handle = 0x803100BF + FVE_E_PROTECTOR_CHANGE_MAX_PASSPHRASE_CHANGE_ATTEMPTS_REACHED Handle = 0x803100C0 + FVE_E_PASSPHRASE_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED Handle = 0x803100C1 + FVE_E_LIVEID_ACCOUNT_SUSPENDED Handle = 0x803100C2 + FVE_E_LIVEID_ACCOUNT_BLOCKED Handle = 0x803100C3 + FVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES Handle = 0x803100C4 + FVE_E_DE_FIXED_DATA_NOT_SUPPORTED Handle = 0x803100C5 + FVE_E_DE_HARDWARE_NOT_COMPLIANT Handle = 0x803100C6 + FVE_E_DE_WINRE_NOT_CONFIGURED Handle = 0x803100C7 + FVE_E_DE_PROTECTION_SUSPENDED Handle = 0x803100C8 + FVE_E_DE_OS_VOLUME_NOT_PROTECTED Handle = 0x803100C9 + FVE_E_DE_DEVICE_LOCKEDOUT Handle = 0x803100CA + FVE_E_DE_PROTECTION_NOT_YET_ENABLED Handle = 0x803100CB + FVE_E_INVALID_PIN_CHARS_DETAILED Handle = 0x803100CC + FVE_E_DEVICE_LOCKOUT_COUNTER_UNAVAILABLE Handle = 0x803100CD + FVE_E_DEVICELOCKOUT_COUNTER_MISMATCH Handle = 0x803100CE + FVE_E_BUFFER_TOO_LARGE Handle = 0x803100CF + FVE_E_NO_SUCH_CAPABILITY_ON_TARGET Handle = 0x803100D0 + FVE_E_DE_PREVENTED_FOR_OS Handle = 0x803100D1 + FVE_E_DE_VOLUME_OPTED_OUT Handle = 0x803100D2 + FVE_E_DE_VOLUME_NOT_SUPPORTED Handle = 0x803100D3 + FVE_E_EOW_NOT_SUPPORTED_IN_VERSION Handle = 0x803100D4 + FVE_E_ADBACKUP_NOT_ENABLED Handle = 0x803100D5 + FVE_E_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT Handle = 0x803100D6 + FVE_E_NOT_DE_VOLUME Handle = 0x803100D7 + FVE_E_PROTECTION_CANNOT_BE_DISABLED Handle = 0x803100D8 + FVE_E_OSV_KSR_NOT_ALLOWED Handle = 0x803100D9 + FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_OS_DRIVE Handle = 0x803100DA + FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_FIXED_DRIVE Handle = 0x803100DB + FVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_REMOVABLE_DRIVE Handle = 0x803100DC + FVE_E_KEY_ROTATION_NOT_SUPPORTED Handle = 0x803100DD + FVE_E_EXECUTE_REQUEST_SENT_TOO_SOON Handle = 0x803100DE + FVE_E_KEY_ROTATION_NOT_ENABLED Handle = 0x803100DF + FVE_E_DEVICE_NOT_JOINED Handle = 0x803100E0 + FWP_E_CALLOUT_NOT_FOUND Handle = 0x80320001 + FWP_E_CONDITION_NOT_FOUND Handle = 0x80320002 + FWP_E_FILTER_NOT_FOUND Handle = 0x80320003 + FWP_E_LAYER_NOT_FOUND Handle = 0x80320004 + FWP_E_PROVIDER_NOT_FOUND Handle = 0x80320005 + FWP_E_PROVIDER_CONTEXT_NOT_FOUND Handle = 0x80320006 + FWP_E_SUBLAYER_NOT_FOUND Handle = 0x80320007 + FWP_E_NOT_FOUND Handle = 0x80320008 + FWP_E_ALREADY_EXISTS Handle = 0x80320009 + FWP_E_IN_USE Handle = 0x8032000A + FWP_E_DYNAMIC_SESSION_IN_PROGRESS Handle = 0x8032000B + FWP_E_WRONG_SESSION Handle = 0x8032000C + FWP_E_NO_TXN_IN_PROGRESS Handle = 0x8032000D + FWP_E_TXN_IN_PROGRESS Handle = 0x8032000E + FWP_E_TXN_ABORTED Handle = 0x8032000F + FWP_E_SESSION_ABORTED Handle = 0x80320010 + FWP_E_INCOMPATIBLE_TXN Handle = 0x80320011 + FWP_E_TIMEOUT Handle = 0x80320012 + FWP_E_NET_EVENTS_DISABLED Handle = 0x80320013 + FWP_E_INCOMPATIBLE_LAYER Handle = 0x80320014 + FWP_E_KM_CLIENTS_ONLY Handle = 0x80320015 + FWP_E_LIFETIME_MISMATCH Handle = 0x80320016 + FWP_E_BUILTIN_OBJECT Handle = 0x80320017 + FWP_E_TOO_MANY_CALLOUTS Handle = 0x80320018 + FWP_E_NOTIFICATION_DROPPED Handle = 0x80320019 + FWP_E_TRAFFIC_MISMATCH Handle = 0x8032001A + FWP_E_INCOMPATIBLE_SA_STATE Handle = 0x8032001B + FWP_E_NULL_POINTER Handle = 0x8032001C + FWP_E_INVALID_ENUMERATOR Handle = 0x8032001D + FWP_E_INVALID_FLAGS Handle = 0x8032001E + FWP_E_INVALID_NET_MASK Handle = 0x8032001F + FWP_E_INVALID_RANGE Handle = 0x80320020 + FWP_E_INVALID_INTERVAL Handle = 0x80320021 + FWP_E_ZERO_LENGTH_ARRAY Handle = 0x80320022 + FWP_E_NULL_DISPLAY_NAME Handle = 0x80320023 + FWP_E_INVALID_ACTION_TYPE Handle = 0x80320024 + FWP_E_INVALID_WEIGHT Handle = 0x80320025 + FWP_E_MATCH_TYPE_MISMATCH Handle = 0x80320026 + FWP_E_TYPE_MISMATCH Handle = 0x80320027 + FWP_E_OUT_OF_BOUNDS Handle = 0x80320028 + FWP_E_RESERVED Handle = 0x80320029 + FWP_E_DUPLICATE_CONDITION Handle = 0x8032002A + FWP_E_DUPLICATE_KEYMOD Handle = 0x8032002B + FWP_E_ACTION_INCOMPATIBLE_WITH_LAYER Handle = 0x8032002C + FWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER Handle = 0x8032002D + FWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER Handle = 0x8032002E + FWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT Handle = 0x8032002F + FWP_E_INCOMPATIBLE_AUTH_METHOD Handle = 0x80320030 + FWP_E_INCOMPATIBLE_DH_GROUP Handle = 0x80320031 + FWP_E_EM_NOT_SUPPORTED Handle = 0x80320032 + FWP_E_NEVER_MATCH Handle = 0x80320033 + FWP_E_PROVIDER_CONTEXT_MISMATCH Handle = 0x80320034 + FWP_E_INVALID_PARAMETER Handle = 0x80320035 + FWP_E_TOO_MANY_SUBLAYERS Handle = 0x80320036 + FWP_E_CALLOUT_NOTIFICATION_FAILED Handle = 0x80320037 + FWP_E_INVALID_AUTH_TRANSFORM Handle = 0x80320038 + FWP_E_INVALID_CIPHER_TRANSFORM Handle = 0x80320039 + FWP_E_INCOMPATIBLE_CIPHER_TRANSFORM Handle = 0x8032003A + FWP_E_INVALID_TRANSFORM_COMBINATION Handle = 0x8032003B + FWP_E_DUPLICATE_AUTH_METHOD Handle = 0x8032003C + FWP_E_INVALID_TUNNEL_ENDPOINT Handle = 0x8032003D + FWP_E_L2_DRIVER_NOT_READY Handle = 0x8032003E + FWP_E_KEY_DICTATOR_ALREADY_REGISTERED Handle = 0x8032003F + FWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL Handle = 0x80320040 + FWP_E_CONNECTIONS_DISABLED Handle = 0x80320041 + FWP_E_INVALID_DNS_NAME Handle = 0x80320042 + FWP_E_STILL_ON Handle = 0x80320043 + FWP_E_IKEEXT_NOT_RUNNING Handle = 0x80320044 + FWP_E_DROP_NOICMP Handle = 0x80320104 + WS_S_ASYNC Handle = 0x003D0000 + WS_S_END Handle = 0x003D0001 + WS_E_INVALID_FORMAT Handle = 0x803D0000 + WS_E_OBJECT_FAULTED Handle = 0x803D0001 + WS_E_NUMERIC_OVERFLOW Handle = 0x803D0002 + WS_E_INVALID_OPERATION Handle = 0x803D0003 + WS_E_OPERATION_ABORTED Handle = 0x803D0004 + WS_E_ENDPOINT_ACCESS_DENIED Handle = 0x803D0005 + WS_E_OPERATION_TIMED_OUT Handle = 0x803D0006 + WS_E_OPERATION_ABANDONED Handle = 0x803D0007 + WS_E_QUOTA_EXCEEDED Handle = 0x803D0008 + WS_E_NO_TRANSLATION_AVAILABLE Handle = 0x803D0009 + WS_E_SECURITY_VERIFICATION_FAILURE Handle = 0x803D000A + WS_E_ADDRESS_IN_USE Handle = 0x803D000B + WS_E_ADDRESS_NOT_AVAILABLE Handle = 0x803D000C + WS_E_ENDPOINT_NOT_FOUND Handle = 0x803D000D + WS_E_ENDPOINT_NOT_AVAILABLE Handle = 0x803D000E + WS_E_ENDPOINT_FAILURE Handle = 0x803D000F + WS_E_ENDPOINT_UNREACHABLE Handle = 0x803D0010 + WS_E_ENDPOINT_ACTION_NOT_SUPPORTED Handle = 0x803D0011 + WS_E_ENDPOINT_TOO_BUSY Handle = 0x803D0012 + WS_E_ENDPOINT_FAULT_RECEIVED Handle = 0x803D0013 + WS_E_ENDPOINT_DISCONNECTED Handle = 0x803D0014 + WS_E_PROXY_FAILURE Handle = 0x803D0015 + WS_E_PROXY_ACCESS_DENIED Handle = 0x803D0016 + WS_E_NOT_SUPPORTED Handle = 0x803D0017 + WS_E_PROXY_REQUIRES_BASIC_AUTH Handle = 0x803D0018 + WS_E_PROXY_REQUIRES_DIGEST_AUTH Handle = 0x803D0019 + WS_E_PROXY_REQUIRES_NTLM_AUTH Handle = 0x803D001A + WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH Handle = 0x803D001B + WS_E_SERVER_REQUIRES_BASIC_AUTH Handle = 0x803D001C + WS_E_SERVER_REQUIRES_DIGEST_AUTH Handle = 0x803D001D + WS_E_SERVER_REQUIRES_NTLM_AUTH Handle = 0x803D001E + WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH Handle = 0x803D001F + WS_E_INVALID_ENDPOINT_URL Handle = 0x803D0020 + WS_E_OTHER Handle = 0x803D0021 + WS_E_SECURITY_TOKEN_EXPIRED Handle = 0x803D0022 + WS_E_SECURITY_SYSTEM_FAILURE Handle = 0x803D0023 + ERROR_NDIS_INTERFACE_CLOSING syscall.Errno = 0x80340002 + ERROR_NDIS_BAD_VERSION syscall.Errno = 0x80340004 + ERROR_NDIS_BAD_CHARACTERISTICS syscall.Errno = 0x80340005 + ERROR_NDIS_ADAPTER_NOT_FOUND syscall.Errno = 0x80340006 + ERROR_NDIS_OPEN_FAILED syscall.Errno = 0x80340007 + ERROR_NDIS_DEVICE_FAILED syscall.Errno = 0x80340008 + ERROR_NDIS_MULTICAST_FULL syscall.Errno = 0x80340009 + ERROR_NDIS_MULTICAST_EXISTS syscall.Errno = 0x8034000A + ERROR_NDIS_MULTICAST_NOT_FOUND syscall.Errno = 0x8034000B + ERROR_NDIS_REQUEST_ABORTED syscall.Errno = 0x8034000C + ERROR_NDIS_RESET_IN_PROGRESS syscall.Errno = 0x8034000D + ERROR_NDIS_NOT_SUPPORTED syscall.Errno = 0x803400BB + ERROR_NDIS_INVALID_PACKET syscall.Errno = 0x8034000F + ERROR_NDIS_ADAPTER_NOT_READY syscall.Errno = 0x80340011 + ERROR_NDIS_INVALID_LENGTH syscall.Errno = 0x80340014 + ERROR_NDIS_INVALID_DATA syscall.Errno = 0x80340015 + ERROR_NDIS_BUFFER_TOO_SHORT syscall.Errno = 0x80340016 + ERROR_NDIS_INVALID_OID syscall.Errno = 0x80340017 + ERROR_NDIS_ADAPTER_REMOVED syscall.Errno = 0x80340018 + ERROR_NDIS_UNSUPPORTED_MEDIA syscall.Errno = 0x80340019 + ERROR_NDIS_GROUP_ADDRESS_IN_USE syscall.Errno = 0x8034001A + ERROR_NDIS_FILE_NOT_FOUND syscall.Errno = 0x8034001B + ERROR_NDIS_ERROR_READING_FILE syscall.Errno = 0x8034001C + ERROR_NDIS_ALREADY_MAPPED syscall.Errno = 0x8034001D + ERROR_NDIS_RESOURCE_CONFLICT syscall.Errno = 0x8034001E + ERROR_NDIS_MEDIA_DISCONNECTED syscall.Errno = 0x8034001F + ERROR_NDIS_INVALID_ADDRESS syscall.Errno = 0x80340022 + ERROR_NDIS_INVALID_DEVICE_REQUEST syscall.Errno = 0x80340010 + ERROR_NDIS_PAUSED syscall.Errno = 0x8034002A + ERROR_NDIS_INTERFACE_NOT_FOUND syscall.Errno = 0x8034002B + ERROR_NDIS_UNSUPPORTED_REVISION syscall.Errno = 0x8034002C + ERROR_NDIS_INVALID_PORT syscall.Errno = 0x8034002D + ERROR_NDIS_INVALID_PORT_STATE syscall.Errno = 0x8034002E + ERROR_NDIS_LOW_POWER_STATE syscall.Errno = 0x8034002F + ERROR_NDIS_REINIT_REQUIRED syscall.Errno = 0x80340030 + ERROR_NDIS_NO_QUEUES syscall.Errno = 0x80340031 + ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED syscall.Errno = 0x80342000 + ERROR_NDIS_DOT11_MEDIA_IN_USE syscall.Errno = 0x80342001 + ERROR_NDIS_DOT11_POWER_STATE_INVALID syscall.Errno = 0x80342002 + ERROR_NDIS_PM_WOL_PATTERN_LIST_FULL syscall.Errno = 0x80342003 + ERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL syscall.Errno = 0x80342004 + ERROR_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE syscall.Errno = 0x80342005 + ERROR_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE syscall.Errno = 0x80342006 + ERROR_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED syscall.Errno = 0x80342007 + ERROR_NDIS_DOT11_AP_BAND_NOT_ALLOWED syscall.Errno = 0x80342008 + ERROR_NDIS_INDICATION_REQUIRED syscall.Errno = 0x00340001 + ERROR_NDIS_OFFLOAD_POLICY syscall.Errno = 0xC034100F + ERROR_NDIS_OFFLOAD_CONNECTION_REJECTED syscall.Errno = 0xC0341012 + ERROR_NDIS_OFFLOAD_PATH_REJECTED syscall.Errno = 0xC0341013 + ERROR_HV_INVALID_HYPERCALL_CODE syscall.Errno = 0xC0350002 + ERROR_HV_INVALID_HYPERCALL_INPUT syscall.Errno = 0xC0350003 + ERROR_HV_INVALID_ALIGNMENT syscall.Errno = 0xC0350004 + ERROR_HV_INVALID_PARAMETER syscall.Errno = 0xC0350005 + ERROR_HV_ACCESS_DENIED syscall.Errno = 0xC0350006 + ERROR_HV_INVALID_PARTITION_STATE syscall.Errno = 0xC0350007 + ERROR_HV_OPERATION_DENIED syscall.Errno = 0xC0350008 + ERROR_HV_UNKNOWN_PROPERTY syscall.Errno = 0xC0350009 + ERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE syscall.Errno = 0xC035000A + ERROR_HV_INSUFFICIENT_MEMORY syscall.Errno = 0xC035000B + ERROR_HV_PARTITION_TOO_DEEP syscall.Errno = 0xC035000C + ERROR_HV_INVALID_PARTITION_ID syscall.Errno = 0xC035000D + ERROR_HV_INVALID_VP_INDEX syscall.Errno = 0xC035000E + ERROR_HV_INVALID_PORT_ID syscall.Errno = 0xC0350011 + ERROR_HV_INVALID_CONNECTION_ID syscall.Errno = 0xC0350012 + ERROR_HV_INSUFFICIENT_BUFFERS syscall.Errno = 0xC0350013 + ERROR_HV_NOT_ACKNOWLEDGED syscall.Errno = 0xC0350014 + ERROR_HV_INVALID_VP_STATE syscall.Errno = 0xC0350015 + ERROR_HV_ACKNOWLEDGED syscall.Errno = 0xC0350016 + ERROR_HV_INVALID_SAVE_RESTORE_STATE syscall.Errno = 0xC0350017 + ERROR_HV_INVALID_SYNIC_STATE syscall.Errno = 0xC0350018 + ERROR_HV_OBJECT_IN_USE syscall.Errno = 0xC0350019 + ERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO syscall.Errno = 0xC035001A + ERROR_HV_NO_DATA syscall.Errno = 0xC035001B + ERROR_HV_INACTIVE syscall.Errno = 0xC035001C + ERROR_HV_NO_RESOURCES syscall.Errno = 0xC035001D + ERROR_HV_FEATURE_UNAVAILABLE syscall.Errno = 0xC035001E + ERROR_HV_INSUFFICIENT_BUFFER syscall.Errno = 0xC0350033 + ERROR_HV_INSUFFICIENT_DEVICE_DOMAINS syscall.Errno = 0xC0350038 + ERROR_HV_CPUID_FEATURE_VALIDATION syscall.Errno = 0xC035003C + ERROR_HV_CPUID_XSAVE_FEATURE_VALIDATION syscall.Errno = 0xC035003D + ERROR_HV_PROCESSOR_STARTUP_TIMEOUT syscall.Errno = 0xC035003E + ERROR_HV_SMX_ENABLED syscall.Errno = 0xC035003F + ERROR_HV_INVALID_LP_INDEX syscall.Errno = 0xC0350041 + ERROR_HV_INVALID_REGISTER_VALUE syscall.Errno = 0xC0350050 + ERROR_HV_INVALID_VTL_STATE syscall.Errno = 0xC0350051 + ERROR_HV_NX_NOT_DETECTED syscall.Errno = 0xC0350055 + ERROR_HV_INVALID_DEVICE_ID syscall.Errno = 0xC0350057 + ERROR_HV_INVALID_DEVICE_STATE syscall.Errno = 0xC0350058 + ERROR_HV_PENDING_PAGE_REQUESTS syscall.Errno = 0x00350059 + ERROR_HV_PAGE_REQUEST_INVALID syscall.Errno = 0xC0350060 + ERROR_HV_INVALID_CPU_GROUP_ID syscall.Errno = 0xC035006F + ERROR_HV_INVALID_CPU_GROUP_STATE syscall.Errno = 0xC0350070 + ERROR_HV_OPERATION_FAILED syscall.Errno = 0xC0350071 + ERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE syscall.Errno = 0xC0350072 + ERROR_HV_INSUFFICIENT_ROOT_MEMORY syscall.Errno = 0xC0350073 + ERROR_HV_NOT_PRESENT syscall.Errno = 0xC0351000 + ERROR_VID_DUPLICATE_HANDLER syscall.Errno = 0xC0370001 + ERROR_VID_TOO_MANY_HANDLERS syscall.Errno = 0xC0370002 + ERROR_VID_QUEUE_FULL syscall.Errno = 0xC0370003 + ERROR_VID_HANDLER_NOT_PRESENT syscall.Errno = 0xC0370004 + ERROR_VID_INVALID_OBJECT_NAME syscall.Errno = 0xC0370005 + ERROR_VID_PARTITION_NAME_TOO_LONG syscall.Errno = 0xC0370006 + ERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG syscall.Errno = 0xC0370007 + ERROR_VID_PARTITION_ALREADY_EXISTS syscall.Errno = 0xC0370008 + ERROR_VID_PARTITION_DOES_NOT_EXIST syscall.Errno = 0xC0370009 + ERROR_VID_PARTITION_NAME_NOT_FOUND syscall.Errno = 0xC037000A + ERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS syscall.Errno = 0xC037000B + ERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT syscall.Errno = 0xC037000C + ERROR_VID_MB_STILL_REFERENCED syscall.Errno = 0xC037000D + ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED syscall.Errno = 0xC037000E + ERROR_VID_INVALID_NUMA_SETTINGS syscall.Errno = 0xC037000F + ERROR_VID_INVALID_NUMA_NODE_INDEX syscall.Errno = 0xC0370010 + ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED syscall.Errno = 0xC0370011 + ERROR_VID_INVALID_MEMORY_BLOCK_HANDLE syscall.Errno = 0xC0370012 + ERROR_VID_PAGE_RANGE_OVERFLOW syscall.Errno = 0xC0370013 + ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE syscall.Errno = 0xC0370014 + ERROR_VID_INVALID_GPA_RANGE_HANDLE syscall.Errno = 0xC0370015 + ERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE syscall.Errno = 0xC0370016 + ERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED syscall.Errno = 0xC0370017 + ERROR_VID_INVALID_PPM_HANDLE syscall.Errno = 0xC0370018 + ERROR_VID_MBPS_ARE_LOCKED syscall.Errno = 0xC0370019 + ERROR_VID_MESSAGE_QUEUE_CLOSED syscall.Errno = 0xC037001A + ERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED syscall.Errno = 0xC037001B + ERROR_VID_STOP_PENDING syscall.Errno = 0xC037001C + ERROR_VID_INVALID_PROCESSOR_STATE syscall.Errno = 0xC037001D + ERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT syscall.Errno = 0xC037001E + ERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED syscall.Errno = 0xC037001F + ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET syscall.Errno = 0xC0370020 + ERROR_VID_MMIO_RANGE_DESTROYED syscall.Errno = 0xC0370021 + ERROR_VID_INVALID_CHILD_GPA_PAGE_SET syscall.Errno = 0xC0370022 + ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED syscall.Errno = 0xC0370023 + ERROR_VID_RESERVE_PAGE_SET_TOO_SMALL syscall.Errno = 0xC0370024 + ERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE syscall.Errno = 0xC0370025 + ERROR_VID_MBP_COUNT_EXCEEDED_LIMIT syscall.Errno = 0xC0370026 + ERROR_VID_SAVED_STATE_CORRUPT syscall.Errno = 0xC0370027 + ERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM syscall.Errno = 0xC0370028 + ERROR_VID_SAVED_STATE_INCOMPATIBLE syscall.Errno = 0xC0370029 + ERROR_VID_VTL_ACCESS_DENIED syscall.Errno = 0xC037002A + ERROR_VMCOMPUTE_TERMINATED_DURING_START syscall.Errno = 0xC0370100 + ERROR_VMCOMPUTE_IMAGE_MISMATCH syscall.Errno = 0xC0370101 + ERROR_VMCOMPUTE_HYPERV_NOT_INSTALLED syscall.Errno = 0xC0370102 + ERROR_VMCOMPUTE_OPERATION_PENDING syscall.Errno = 0xC0370103 + ERROR_VMCOMPUTE_TOO_MANY_NOTIFICATIONS syscall.Errno = 0xC0370104 + ERROR_VMCOMPUTE_INVALID_STATE syscall.Errno = 0xC0370105 + ERROR_VMCOMPUTE_UNEXPECTED_EXIT syscall.Errno = 0xC0370106 + ERROR_VMCOMPUTE_TERMINATED syscall.Errno = 0xC0370107 + ERROR_VMCOMPUTE_CONNECT_FAILED syscall.Errno = 0xC0370108 + ERROR_VMCOMPUTE_TIMEOUT syscall.Errno = 0xC0370109 + ERROR_VMCOMPUTE_CONNECTION_CLOSED syscall.Errno = 0xC037010A + ERROR_VMCOMPUTE_UNKNOWN_MESSAGE syscall.Errno = 0xC037010B + ERROR_VMCOMPUTE_UNSUPPORTED_PROTOCOL_VERSION syscall.Errno = 0xC037010C + ERROR_VMCOMPUTE_INVALID_JSON syscall.Errno = 0xC037010D + ERROR_VMCOMPUTE_SYSTEM_NOT_FOUND syscall.Errno = 0xC037010E + ERROR_VMCOMPUTE_SYSTEM_ALREADY_EXISTS syscall.Errno = 0xC037010F + ERROR_VMCOMPUTE_SYSTEM_ALREADY_STOPPED syscall.Errno = 0xC0370110 + ERROR_VMCOMPUTE_PROTOCOL_ERROR syscall.Errno = 0xC0370111 + ERROR_VMCOMPUTE_INVALID_LAYER syscall.Errno = 0xC0370112 + ERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED syscall.Errno = 0xC0370113 + HCS_E_TERMINATED_DURING_START Handle = 0x80370100 + HCS_E_IMAGE_MISMATCH Handle = 0x80370101 + HCS_E_HYPERV_NOT_INSTALLED Handle = 0x80370102 + HCS_E_INVALID_STATE Handle = 0x80370105 + HCS_E_UNEXPECTED_EXIT Handle = 0x80370106 + HCS_E_TERMINATED Handle = 0x80370107 + HCS_E_CONNECT_FAILED Handle = 0x80370108 + HCS_E_CONNECTION_TIMEOUT Handle = 0x80370109 + HCS_E_CONNECTION_CLOSED Handle = 0x8037010A + HCS_E_UNKNOWN_MESSAGE Handle = 0x8037010B + HCS_E_UNSUPPORTED_PROTOCOL_VERSION Handle = 0x8037010C + HCS_E_INVALID_JSON Handle = 0x8037010D + HCS_E_SYSTEM_NOT_FOUND Handle = 0x8037010E + HCS_E_SYSTEM_ALREADY_EXISTS Handle = 0x8037010F + HCS_E_SYSTEM_ALREADY_STOPPED Handle = 0x80370110 + HCS_E_PROTOCOL_ERROR Handle = 0x80370111 + HCS_E_INVALID_LAYER Handle = 0x80370112 + HCS_E_WINDOWS_INSIDER_REQUIRED Handle = 0x80370113 + HCS_E_SERVICE_NOT_AVAILABLE Handle = 0x80370114 + HCS_E_OPERATION_NOT_STARTED Handle = 0x80370115 + HCS_E_OPERATION_ALREADY_STARTED Handle = 0x80370116 + HCS_E_OPERATION_PENDING Handle = 0x80370117 + HCS_E_OPERATION_TIMEOUT Handle = 0x80370118 + HCS_E_OPERATION_SYSTEM_CALLBACK_ALREADY_SET Handle = 0x80370119 + HCS_E_OPERATION_RESULT_ALLOCATION_FAILED Handle = 0x8037011A + HCS_E_ACCESS_DENIED Handle = 0x8037011B + HCS_E_GUEST_CRITICAL_ERROR Handle = 0x8037011C + ERROR_VNET_VIRTUAL_SWITCH_NAME_NOT_FOUND syscall.Errno = 0xC0370200 + ERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED syscall.Errno = 0x80370001 + WHV_E_UNKNOWN_CAPABILITY Handle = 0x80370300 + WHV_E_INSUFFICIENT_BUFFER Handle = 0x80370301 + WHV_E_UNKNOWN_PROPERTY Handle = 0x80370302 + WHV_E_UNSUPPORTED_HYPERVISOR_CONFIG Handle = 0x80370303 + WHV_E_INVALID_PARTITION_CONFIG Handle = 0x80370304 + WHV_E_GPA_RANGE_NOT_FOUND Handle = 0x80370305 + WHV_E_VP_ALREADY_EXISTS Handle = 0x80370306 + WHV_E_VP_DOES_NOT_EXIST Handle = 0x80370307 + WHV_E_INVALID_VP_STATE Handle = 0x80370308 + WHV_E_INVALID_VP_REGISTER_NAME Handle = 0x80370309 + ERROR_VSMB_SAVED_STATE_FILE_NOT_FOUND syscall.Errno = 0xC0370400 + ERROR_VSMB_SAVED_STATE_CORRUPT syscall.Errno = 0xC0370401 + ERROR_VOLMGR_INCOMPLETE_REGENERATION syscall.Errno = 0x80380001 + ERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION syscall.Errno = 0x80380002 + ERROR_VOLMGR_DATABASE_FULL syscall.Errno = 0xC0380001 + ERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED syscall.Errno = 0xC0380002 + ERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC syscall.Errno = 0xC0380003 + ERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED syscall.Errno = 0xC0380004 + ERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME syscall.Errno = 0xC0380005 + ERROR_VOLMGR_DISK_DUPLICATE syscall.Errno = 0xC0380006 + ERROR_VOLMGR_DISK_DYNAMIC syscall.Errno = 0xC0380007 + ERROR_VOLMGR_DISK_ID_INVALID syscall.Errno = 0xC0380008 + ERROR_VOLMGR_DISK_INVALID syscall.Errno = 0xC0380009 + ERROR_VOLMGR_DISK_LAST_VOTER syscall.Errno = 0xC038000A + ERROR_VOLMGR_DISK_LAYOUT_INVALID syscall.Errno = 0xC038000B + ERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS syscall.Errno = 0xC038000C + ERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED syscall.Errno = 0xC038000D + ERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL syscall.Errno = 0xC038000E + ERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS syscall.Errno = 0xC038000F + ERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS syscall.Errno = 0xC0380010 + ERROR_VOLMGR_DISK_MISSING syscall.Errno = 0xC0380011 + ERROR_VOLMGR_DISK_NOT_EMPTY syscall.Errno = 0xC0380012 + ERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE syscall.Errno = 0xC0380013 + ERROR_VOLMGR_DISK_REVECTORING_FAILED syscall.Errno = 0xC0380014 + ERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID syscall.Errno = 0xC0380015 + ERROR_VOLMGR_DISK_SET_NOT_CONTAINED syscall.Errno = 0xC0380016 + ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS syscall.Errno = 0xC0380017 + ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES syscall.Errno = 0xC0380018 + ERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED syscall.Errno = 0xC0380019 + ERROR_VOLMGR_EXTENT_ALREADY_USED syscall.Errno = 0xC038001A + ERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS syscall.Errno = 0xC038001B + ERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION syscall.Errno = 0xC038001C + ERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED syscall.Errno = 0xC038001D + ERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION syscall.Errno = 0xC038001E + ERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH syscall.Errno = 0xC038001F + ERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED syscall.Errno = 0xC0380020 + ERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID syscall.Errno = 0xC0380021 + ERROR_VOLMGR_MAXIMUM_REGISTERED_USERS syscall.Errno = 0xC0380022 + ERROR_VOLMGR_MEMBER_IN_SYNC syscall.Errno = 0xC0380023 + ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE syscall.Errno = 0xC0380024 + ERROR_VOLMGR_MEMBER_INDEX_INVALID syscall.Errno = 0xC0380025 + ERROR_VOLMGR_MEMBER_MISSING syscall.Errno = 0xC0380026 + ERROR_VOLMGR_MEMBER_NOT_DETACHED syscall.Errno = 0xC0380027 + ERROR_VOLMGR_MEMBER_REGENERATING syscall.Errno = 0xC0380028 + ERROR_VOLMGR_ALL_DISKS_FAILED syscall.Errno = 0xC0380029 + ERROR_VOLMGR_NO_REGISTERED_USERS syscall.Errno = 0xC038002A + ERROR_VOLMGR_NO_SUCH_USER syscall.Errno = 0xC038002B + ERROR_VOLMGR_NOTIFICATION_RESET syscall.Errno = 0xC038002C + ERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID syscall.Errno = 0xC038002D + ERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID syscall.Errno = 0xC038002E + ERROR_VOLMGR_PACK_DUPLICATE syscall.Errno = 0xC038002F + ERROR_VOLMGR_PACK_ID_INVALID syscall.Errno = 0xC0380030 + ERROR_VOLMGR_PACK_INVALID syscall.Errno = 0xC0380031 + ERROR_VOLMGR_PACK_NAME_INVALID syscall.Errno = 0xC0380032 + ERROR_VOLMGR_PACK_OFFLINE syscall.Errno = 0xC0380033 + ERROR_VOLMGR_PACK_HAS_QUORUM syscall.Errno = 0xC0380034 + ERROR_VOLMGR_PACK_WITHOUT_QUORUM syscall.Errno = 0xC0380035 + ERROR_VOLMGR_PARTITION_STYLE_INVALID syscall.Errno = 0xC0380036 + ERROR_VOLMGR_PARTITION_UPDATE_FAILED syscall.Errno = 0xC0380037 + ERROR_VOLMGR_PLEX_IN_SYNC syscall.Errno = 0xC0380038 + ERROR_VOLMGR_PLEX_INDEX_DUPLICATE syscall.Errno = 0xC0380039 + ERROR_VOLMGR_PLEX_INDEX_INVALID syscall.Errno = 0xC038003A + ERROR_VOLMGR_PLEX_LAST_ACTIVE syscall.Errno = 0xC038003B + ERROR_VOLMGR_PLEX_MISSING syscall.Errno = 0xC038003C + ERROR_VOLMGR_PLEX_REGENERATING syscall.Errno = 0xC038003D + ERROR_VOLMGR_PLEX_TYPE_INVALID syscall.Errno = 0xC038003E + ERROR_VOLMGR_PLEX_NOT_RAID5 syscall.Errno = 0xC038003F + ERROR_VOLMGR_PLEX_NOT_SIMPLE syscall.Errno = 0xC0380040 + ERROR_VOLMGR_STRUCTURE_SIZE_INVALID syscall.Errno = 0xC0380041 + ERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS syscall.Errno = 0xC0380042 + ERROR_VOLMGR_TRANSACTION_IN_PROGRESS syscall.Errno = 0xC0380043 + ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE syscall.Errno = 0xC0380044 + ERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK syscall.Errno = 0xC0380045 + ERROR_VOLMGR_VOLUME_ID_INVALID syscall.Errno = 0xC0380046 + ERROR_VOLMGR_VOLUME_LENGTH_INVALID syscall.Errno = 0xC0380047 + ERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE syscall.Errno = 0xC0380048 + ERROR_VOLMGR_VOLUME_NOT_MIRRORED syscall.Errno = 0xC0380049 + ERROR_VOLMGR_VOLUME_NOT_RETAINED syscall.Errno = 0xC038004A + ERROR_VOLMGR_VOLUME_OFFLINE syscall.Errno = 0xC038004B + ERROR_VOLMGR_VOLUME_RETAINED syscall.Errno = 0xC038004C + ERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID syscall.Errno = 0xC038004D + ERROR_VOLMGR_DIFFERENT_SECTOR_SIZE syscall.Errno = 0xC038004E + ERROR_VOLMGR_BAD_BOOT_DISK syscall.Errno = 0xC038004F + ERROR_VOLMGR_PACK_CONFIG_OFFLINE syscall.Errno = 0xC0380050 + ERROR_VOLMGR_PACK_CONFIG_ONLINE syscall.Errno = 0xC0380051 + ERROR_VOLMGR_NOT_PRIMARY_PACK syscall.Errno = 0xC0380052 + ERROR_VOLMGR_PACK_LOG_UPDATE_FAILED syscall.Errno = 0xC0380053 + ERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID syscall.Errno = 0xC0380054 + ERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID syscall.Errno = 0xC0380055 + ERROR_VOLMGR_VOLUME_MIRRORED syscall.Errno = 0xC0380056 + ERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED syscall.Errno = 0xC0380057 + ERROR_VOLMGR_NO_VALID_LOG_COPIES syscall.Errno = 0xC0380058 + ERROR_VOLMGR_PRIMARY_PACK_PRESENT syscall.Errno = 0xC0380059 + ERROR_VOLMGR_NUMBER_OF_DISKS_INVALID syscall.Errno = 0xC038005A + ERROR_VOLMGR_MIRROR_NOT_SUPPORTED syscall.Errno = 0xC038005B + ERROR_VOLMGR_RAID5_NOT_SUPPORTED syscall.Errno = 0xC038005C + ERROR_BCD_NOT_ALL_ENTRIES_IMPORTED syscall.Errno = 0x80390001 + ERROR_BCD_TOO_MANY_ELEMENTS syscall.Errno = 0xC0390002 + ERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED syscall.Errno = 0x80390003 + ERROR_VHD_DRIVE_FOOTER_MISSING syscall.Errno = 0xC03A0001 + ERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH syscall.Errno = 0xC03A0002 + ERROR_VHD_DRIVE_FOOTER_CORRUPT syscall.Errno = 0xC03A0003 + ERROR_VHD_FORMAT_UNKNOWN syscall.Errno = 0xC03A0004 + ERROR_VHD_FORMAT_UNSUPPORTED_VERSION syscall.Errno = 0xC03A0005 + ERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH syscall.Errno = 0xC03A0006 + ERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION syscall.Errno = 0xC03A0007 + ERROR_VHD_SPARSE_HEADER_CORRUPT syscall.Errno = 0xC03A0008 + ERROR_VHD_BLOCK_ALLOCATION_FAILURE syscall.Errno = 0xC03A0009 + ERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT syscall.Errno = 0xC03A000A + ERROR_VHD_INVALID_BLOCK_SIZE syscall.Errno = 0xC03A000B + ERROR_VHD_BITMAP_MISMATCH syscall.Errno = 0xC03A000C + ERROR_VHD_PARENT_VHD_NOT_FOUND syscall.Errno = 0xC03A000D + ERROR_VHD_CHILD_PARENT_ID_MISMATCH syscall.Errno = 0xC03A000E + ERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH syscall.Errno = 0xC03A000F + ERROR_VHD_METADATA_READ_FAILURE syscall.Errno = 0xC03A0010 + ERROR_VHD_METADATA_WRITE_FAILURE syscall.Errno = 0xC03A0011 + ERROR_VHD_INVALID_SIZE syscall.Errno = 0xC03A0012 + ERROR_VHD_INVALID_FILE_SIZE syscall.Errno = 0xC03A0013 + ERROR_VIRTDISK_PROVIDER_NOT_FOUND syscall.Errno = 0xC03A0014 + ERROR_VIRTDISK_NOT_VIRTUAL_DISK syscall.Errno = 0xC03A0015 + ERROR_VHD_PARENT_VHD_ACCESS_DENIED syscall.Errno = 0xC03A0016 + ERROR_VHD_CHILD_PARENT_SIZE_MISMATCH syscall.Errno = 0xC03A0017 + ERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED syscall.Errno = 0xC03A0018 + ERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT syscall.Errno = 0xC03A0019 + ERROR_VIRTUAL_DISK_LIMITATION syscall.Errno = 0xC03A001A + ERROR_VHD_INVALID_TYPE syscall.Errno = 0xC03A001B + ERROR_VHD_INVALID_STATE syscall.Errno = 0xC03A001C + ERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE syscall.Errno = 0xC03A001D + ERROR_VIRTDISK_DISK_ALREADY_OWNED syscall.Errno = 0xC03A001E + ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE syscall.Errno = 0xC03A001F + ERROR_CTLOG_TRACKING_NOT_INITIALIZED syscall.Errno = 0xC03A0020 + ERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE syscall.Errno = 0xC03A0021 + ERROR_CTLOG_VHD_CHANGED_OFFLINE syscall.Errno = 0xC03A0022 + ERROR_CTLOG_INVALID_TRACKING_STATE syscall.Errno = 0xC03A0023 + ERROR_CTLOG_INCONSISTENT_TRACKING_FILE syscall.Errno = 0xC03A0024 + ERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA syscall.Errno = 0xC03A0025 + ERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE syscall.Errno = 0xC03A0026 + ERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE syscall.Errno = 0xC03A0027 + ERROR_VHD_METADATA_FULL syscall.Errno = 0xC03A0028 + ERROR_VHD_INVALID_CHANGE_TRACKING_ID syscall.Errno = 0xC03A0029 + ERROR_VHD_CHANGE_TRACKING_DISABLED syscall.Errno = 0xC03A002A + ERROR_VHD_MISSING_CHANGE_TRACKING_INFORMATION syscall.Errno = 0xC03A0030 + ERROR_QUERY_STORAGE_ERROR syscall.Errno = 0x803A0001 + HCN_E_NETWORK_NOT_FOUND Handle = 0x803B0001 + HCN_E_ENDPOINT_NOT_FOUND Handle = 0x803B0002 + HCN_E_LAYER_NOT_FOUND Handle = 0x803B0003 + HCN_E_SWITCH_NOT_FOUND Handle = 0x803B0004 + HCN_E_SUBNET_NOT_FOUND Handle = 0x803B0005 + HCN_E_ADAPTER_NOT_FOUND Handle = 0x803B0006 + HCN_E_PORT_NOT_FOUND Handle = 0x803B0007 + HCN_E_POLICY_NOT_FOUND Handle = 0x803B0008 + HCN_E_VFP_PORTSETTING_NOT_FOUND Handle = 0x803B0009 + HCN_E_INVALID_NETWORK Handle = 0x803B000A + HCN_E_INVALID_NETWORK_TYPE Handle = 0x803B000B + HCN_E_INVALID_ENDPOINT Handle = 0x803B000C + HCN_E_INVALID_POLICY Handle = 0x803B000D + HCN_E_INVALID_POLICY_TYPE Handle = 0x803B000E + HCN_E_INVALID_REMOTE_ENDPOINT_OPERATION Handle = 0x803B000F + HCN_E_NETWORK_ALREADY_EXISTS Handle = 0x803B0010 + HCN_E_LAYER_ALREADY_EXISTS Handle = 0x803B0011 + HCN_E_POLICY_ALREADY_EXISTS Handle = 0x803B0012 + HCN_E_PORT_ALREADY_EXISTS Handle = 0x803B0013 + HCN_E_ENDPOINT_ALREADY_ATTACHED Handle = 0x803B0014 + HCN_E_REQUEST_UNSUPPORTED Handle = 0x803B0015 + HCN_E_MAPPING_NOT_SUPPORTED Handle = 0x803B0016 + HCN_E_DEGRADED_OPERATION Handle = 0x803B0017 + HCN_E_SHARED_SWITCH_MODIFICATION Handle = 0x803B0018 + HCN_E_GUID_CONVERSION_FAILURE Handle = 0x803B0019 + HCN_E_REGKEY_FAILURE Handle = 0x803B001A + HCN_E_INVALID_JSON Handle = 0x803B001B + HCN_E_INVALID_JSON_REFERENCE Handle = 0x803B001C + HCN_E_ENDPOINT_SHARING_DISABLED Handle = 0x803B001D + HCN_E_INVALID_IP Handle = 0x803B001E + HCN_E_SWITCH_EXTENSION_NOT_FOUND Handle = 0x803B001F + HCN_E_MANAGER_STOPPED Handle = 0x803B0020 + GCN_E_MODULE_NOT_FOUND Handle = 0x803B0021 + GCN_E_NO_REQUEST_HANDLERS Handle = 0x803B0022 + GCN_E_REQUEST_UNSUPPORTED Handle = 0x803B0023 + GCN_E_RUNTIMEKEYS_FAILED Handle = 0x803B0024 + GCN_E_NETADAPTER_TIMEOUT Handle = 0x803B0025 + GCN_E_NETADAPTER_NOT_FOUND Handle = 0x803B0026 + GCN_E_NETCOMPARTMENT_NOT_FOUND Handle = 0x803B0027 + GCN_E_NETINTERFACE_NOT_FOUND Handle = 0x803B0028 + GCN_E_DEFAULTNAMESPACE_EXISTS Handle = 0x803B0029 + HCN_E_ICS_DISABLED Handle = 0x803B002A + HCN_E_ENDPOINT_NAMESPACE_ALREADY_EXISTS Handle = 0x803B002B + HCN_E_ENTITY_HAS_REFERENCES Handle = 0x803B002C + HCN_E_INVALID_INTERNAL_PORT Handle = 0x803B002D + HCN_E_NAMESPACE_ATTACH_FAILED Handle = 0x803B002E + HCN_E_ADDR_INVALID_OR_RESERVED Handle = 0x803B002F + SDIAG_E_CANCELLED syscall.Errno = 0x803C0100 + SDIAG_E_SCRIPT syscall.Errno = 0x803C0101 + SDIAG_E_POWERSHELL syscall.Errno = 0x803C0102 + SDIAG_E_MANAGEDHOST syscall.Errno = 0x803C0103 + SDIAG_E_NOVERIFIER syscall.Errno = 0x803C0104 + SDIAG_S_CANNOTRUN syscall.Errno = 0x003C0105 + SDIAG_E_DISABLED syscall.Errno = 0x803C0106 + SDIAG_E_TRUST syscall.Errno = 0x803C0107 + SDIAG_E_CANNOTRUN syscall.Errno = 0x803C0108 + SDIAG_E_VERSION syscall.Errno = 0x803C0109 + SDIAG_E_RESOURCE syscall.Errno = 0x803C010A + SDIAG_E_ROOTCAUSE syscall.Errno = 0x803C010B + WPN_E_CHANNEL_CLOSED Handle = 0x803E0100 + WPN_E_CHANNEL_REQUEST_NOT_COMPLETE Handle = 0x803E0101 + WPN_E_INVALID_APP Handle = 0x803E0102 + WPN_E_OUTSTANDING_CHANNEL_REQUEST Handle = 0x803E0103 + WPN_E_DUPLICATE_CHANNEL Handle = 0x803E0104 + WPN_E_PLATFORM_UNAVAILABLE Handle = 0x803E0105 + WPN_E_NOTIFICATION_POSTED Handle = 0x803E0106 + WPN_E_NOTIFICATION_HIDDEN Handle = 0x803E0107 + WPN_E_NOTIFICATION_NOT_POSTED Handle = 0x803E0108 + WPN_E_CLOUD_DISABLED Handle = 0x803E0109 + WPN_E_CLOUD_INCAPABLE Handle = 0x803E0110 + WPN_E_CLOUD_AUTH_UNAVAILABLE Handle = 0x803E011A + WPN_E_CLOUD_SERVICE_UNAVAILABLE Handle = 0x803E011B + WPN_E_FAILED_LOCK_SCREEN_UPDATE_INTIALIZATION Handle = 0x803E011C + WPN_E_NOTIFICATION_DISABLED Handle = 0x803E0111 + WPN_E_NOTIFICATION_INCAPABLE Handle = 0x803E0112 + WPN_E_INTERNET_INCAPABLE Handle = 0x803E0113 + WPN_E_NOTIFICATION_TYPE_DISABLED Handle = 0x803E0114 + WPN_E_NOTIFICATION_SIZE Handle = 0x803E0115 + WPN_E_TAG_SIZE Handle = 0x803E0116 + WPN_E_ACCESS_DENIED Handle = 0x803E0117 + WPN_E_DUPLICATE_REGISTRATION Handle = 0x803E0118 + WPN_E_PUSH_NOTIFICATION_INCAPABLE Handle = 0x803E0119 + WPN_E_DEV_ID_SIZE Handle = 0x803E0120 + WPN_E_TAG_ALPHANUMERIC Handle = 0x803E012A + WPN_E_INVALID_HTTP_STATUS_CODE Handle = 0x803E012B + WPN_E_OUT_OF_SESSION Handle = 0x803E0200 + WPN_E_POWER_SAVE Handle = 0x803E0201 + WPN_E_IMAGE_NOT_FOUND_IN_CACHE Handle = 0x803E0202 + WPN_E_ALL_URL_NOT_COMPLETED Handle = 0x803E0203 + WPN_E_INVALID_CLOUD_IMAGE Handle = 0x803E0204 + WPN_E_NOTIFICATION_ID_MATCHED Handle = 0x803E0205 + WPN_E_CALLBACK_ALREADY_REGISTERED Handle = 0x803E0206 + WPN_E_TOAST_NOTIFICATION_DROPPED Handle = 0x803E0207 + WPN_E_STORAGE_LOCKED Handle = 0x803E0208 + WPN_E_GROUP_SIZE Handle = 0x803E0209 + WPN_E_GROUP_ALPHANUMERIC Handle = 0x803E020A + WPN_E_CLOUD_DISABLED_FOR_APP Handle = 0x803E020B + E_MBN_CONTEXT_NOT_ACTIVATED Handle = 0x80548201 + E_MBN_BAD_SIM Handle = 0x80548202 + E_MBN_DATA_CLASS_NOT_AVAILABLE Handle = 0x80548203 + E_MBN_INVALID_ACCESS_STRING Handle = 0x80548204 + E_MBN_MAX_ACTIVATED_CONTEXTS Handle = 0x80548205 + E_MBN_PACKET_SVC_DETACHED Handle = 0x80548206 + E_MBN_PROVIDER_NOT_VISIBLE Handle = 0x80548207 + E_MBN_RADIO_POWER_OFF Handle = 0x80548208 + E_MBN_SERVICE_NOT_ACTIVATED Handle = 0x80548209 + E_MBN_SIM_NOT_INSERTED Handle = 0x8054820A + E_MBN_VOICE_CALL_IN_PROGRESS Handle = 0x8054820B + E_MBN_INVALID_CACHE Handle = 0x8054820C + E_MBN_NOT_REGISTERED Handle = 0x8054820D + E_MBN_PROVIDERS_NOT_FOUND Handle = 0x8054820E + E_MBN_PIN_NOT_SUPPORTED Handle = 0x8054820F + E_MBN_PIN_REQUIRED Handle = 0x80548210 + E_MBN_PIN_DISABLED Handle = 0x80548211 + E_MBN_FAILURE Handle = 0x80548212 + E_MBN_INVALID_PROFILE Handle = 0x80548218 + E_MBN_DEFAULT_PROFILE_EXIST Handle = 0x80548219 + E_MBN_SMS_ENCODING_NOT_SUPPORTED Handle = 0x80548220 + E_MBN_SMS_FILTER_NOT_SUPPORTED Handle = 0x80548221 + E_MBN_SMS_INVALID_MEMORY_INDEX Handle = 0x80548222 + E_MBN_SMS_LANG_NOT_SUPPORTED Handle = 0x80548223 + E_MBN_SMS_MEMORY_FAILURE Handle = 0x80548224 + E_MBN_SMS_NETWORK_TIMEOUT Handle = 0x80548225 + E_MBN_SMS_UNKNOWN_SMSC_ADDRESS Handle = 0x80548226 + E_MBN_SMS_FORMAT_NOT_SUPPORTED Handle = 0x80548227 + E_MBN_SMS_OPERATION_NOT_ALLOWED Handle = 0x80548228 + E_MBN_SMS_MEMORY_FULL Handle = 0x80548229 + PEER_E_IPV6_NOT_INSTALLED Handle = 0x80630001 + PEER_E_NOT_INITIALIZED Handle = 0x80630002 + PEER_E_CANNOT_START_SERVICE Handle = 0x80630003 + PEER_E_NOT_LICENSED Handle = 0x80630004 + PEER_E_INVALID_GRAPH Handle = 0x80630010 + PEER_E_DBNAME_CHANGED Handle = 0x80630011 + PEER_E_DUPLICATE_GRAPH Handle = 0x80630012 + PEER_E_GRAPH_NOT_READY Handle = 0x80630013 + PEER_E_GRAPH_SHUTTING_DOWN Handle = 0x80630014 + PEER_E_GRAPH_IN_USE Handle = 0x80630015 + PEER_E_INVALID_DATABASE Handle = 0x80630016 + PEER_E_TOO_MANY_ATTRIBUTES Handle = 0x80630017 + PEER_E_CONNECTION_NOT_FOUND Handle = 0x80630103 + PEER_E_CONNECT_SELF Handle = 0x80630106 + PEER_E_ALREADY_LISTENING Handle = 0x80630107 + PEER_E_NODE_NOT_FOUND Handle = 0x80630108 + PEER_E_CONNECTION_FAILED Handle = 0x80630109 + PEER_E_CONNECTION_NOT_AUTHENTICATED Handle = 0x8063010A + PEER_E_CONNECTION_REFUSED Handle = 0x8063010B + PEER_E_CLASSIFIER_TOO_LONG Handle = 0x80630201 + PEER_E_TOO_MANY_IDENTITIES Handle = 0x80630202 + PEER_E_NO_KEY_ACCESS Handle = 0x80630203 + PEER_E_GROUPS_EXIST Handle = 0x80630204 + PEER_E_RECORD_NOT_FOUND Handle = 0x80630301 + PEER_E_DATABASE_ACCESSDENIED Handle = 0x80630302 + PEER_E_DBINITIALIZATION_FAILED Handle = 0x80630303 + PEER_E_MAX_RECORD_SIZE_EXCEEDED Handle = 0x80630304 + PEER_E_DATABASE_ALREADY_PRESENT Handle = 0x80630305 + PEER_E_DATABASE_NOT_PRESENT Handle = 0x80630306 + PEER_E_IDENTITY_NOT_FOUND Handle = 0x80630401 + PEER_E_EVENT_HANDLE_NOT_FOUND Handle = 0x80630501 + PEER_E_INVALID_SEARCH Handle = 0x80630601 + PEER_E_INVALID_ATTRIBUTES Handle = 0x80630602 + PEER_E_INVITATION_NOT_TRUSTED Handle = 0x80630701 + PEER_E_CHAIN_TOO_LONG Handle = 0x80630703 + PEER_E_INVALID_TIME_PERIOD Handle = 0x80630705 + PEER_E_CIRCULAR_CHAIN_DETECTED Handle = 0x80630706 + PEER_E_CERT_STORE_CORRUPTED Handle = 0x80630801 + PEER_E_NO_CLOUD Handle = 0x80631001 + PEER_E_CLOUD_NAME_AMBIGUOUS Handle = 0x80631005 + PEER_E_INVALID_RECORD Handle = 0x80632010 + PEER_E_NOT_AUTHORIZED Handle = 0x80632020 + PEER_E_PASSWORD_DOES_NOT_MEET_POLICY Handle = 0x80632021 + PEER_E_DEFERRED_VALIDATION Handle = 0x80632030 + PEER_E_INVALID_GROUP_PROPERTIES Handle = 0x80632040 + PEER_E_INVALID_PEER_NAME Handle = 0x80632050 + PEER_E_INVALID_CLASSIFIER Handle = 0x80632060 + PEER_E_INVALID_FRIENDLY_NAME Handle = 0x80632070 + PEER_E_INVALID_ROLE_PROPERTY Handle = 0x80632071 + PEER_E_INVALID_CLASSIFIER_PROPERTY Handle = 0x80632072 + PEER_E_INVALID_RECORD_EXPIRATION Handle = 0x80632080 + PEER_E_INVALID_CREDENTIAL_INFO Handle = 0x80632081 + PEER_E_INVALID_CREDENTIAL Handle = 0x80632082 + PEER_E_INVALID_RECORD_SIZE Handle = 0x80632083 + PEER_E_UNSUPPORTED_VERSION Handle = 0x80632090 + PEER_E_GROUP_NOT_READY Handle = 0x80632091 + PEER_E_GROUP_IN_USE Handle = 0x80632092 + PEER_E_INVALID_GROUP Handle = 0x80632093 + PEER_E_NO_MEMBERS_FOUND Handle = 0x80632094 + PEER_E_NO_MEMBER_CONNECTIONS Handle = 0x80632095 + PEER_E_UNABLE_TO_LISTEN Handle = 0x80632096 + PEER_E_IDENTITY_DELETED Handle = 0x806320A0 + PEER_E_SERVICE_NOT_AVAILABLE Handle = 0x806320A1 + PEER_E_CONTACT_NOT_FOUND Handle = 0x80636001 + PEER_S_GRAPH_DATA_CREATED Handle = 0x00630001 + PEER_S_NO_EVENT_DATA Handle = 0x00630002 + PEER_S_ALREADY_CONNECTED Handle = 0x00632000 + PEER_S_SUBSCRIPTION_EXISTS Handle = 0x00636000 + PEER_S_NO_CONNECTIVITY Handle = 0x00630005 + PEER_S_ALREADY_A_MEMBER Handle = 0x00630006 + PEER_E_CANNOT_CONVERT_PEER_NAME Handle = 0x80634001 + PEER_E_INVALID_PEER_HOST_NAME Handle = 0x80634002 + PEER_E_NO_MORE Handle = 0x80634003 + PEER_E_PNRP_DUPLICATE_PEER_NAME Handle = 0x80634005 + PEER_E_INVITE_CANCELLED Handle = 0x80637000 + PEER_E_INVITE_RESPONSE_NOT_AVAILABLE Handle = 0x80637001 + PEER_E_NOT_SIGNED_IN Handle = 0x80637003 + PEER_E_PRIVACY_DECLINED Handle = 0x80637004 + PEER_E_TIMEOUT Handle = 0x80637005 + PEER_E_INVALID_ADDRESS Handle = 0x80637007 + PEER_E_FW_EXCEPTION_DISABLED Handle = 0x80637008 + PEER_E_FW_BLOCKED_BY_POLICY Handle = 0x80637009 + PEER_E_FW_BLOCKED_BY_SHIELDS_UP Handle = 0x8063700A + PEER_E_FW_DECLINED Handle = 0x8063700B + UI_E_CREATE_FAILED Handle = 0x802A0001 + UI_E_SHUTDOWN_CALLED Handle = 0x802A0002 + UI_E_ILLEGAL_REENTRANCY Handle = 0x802A0003 + UI_E_OBJECT_SEALED Handle = 0x802A0004 + UI_E_VALUE_NOT_SET Handle = 0x802A0005 + UI_E_VALUE_NOT_DETERMINED Handle = 0x802A0006 + UI_E_INVALID_OUTPUT Handle = 0x802A0007 + UI_E_BOOLEAN_EXPECTED Handle = 0x802A0008 + UI_E_DIFFERENT_OWNER Handle = 0x802A0009 + UI_E_AMBIGUOUS_MATCH Handle = 0x802A000A + UI_E_FP_OVERFLOW Handle = 0x802A000B + UI_E_WRONG_THREAD Handle = 0x802A000C + UI_E_STORYBOARD_ACTIVE Handle = 0x802A0101 + UI_E_STORYBOARD_NOT_PLAYING Handle = 0x802A0102 + UI_E_START_KEYFRAME_AFTER_END Handle = 0x802A0103 + UI_E_END_KEYFRAME_NOT_DETERMINED Handle = 0x802A0104 + UI_E_LOOPS_OVERLAP Handle = 0x802A0105 + UI_E_TRANSITION_ALREADY_USED Handle = 0x802A0106 + UI_E_TRANSITION_NOT_IN_STORYBOARD Handle = 0x802A0107 + UI_E_TRANSITION_ECLIPSED Handle = 0x802A0108 + UI_E_TIME_BEFORE_LAST_UPDATE Handle = 0x802A0109 + UI_E_TIMER_CLIENT_ALREADY_CONNECTED Handle = 0x802A010A + UI_E_INVALID_DIMENSION Handle = 0x802A010B + UI_E_PRIMITIVE_OUT_OF_BOUNDS Handle = 0x802A010C + UI_E_WINDOW_CLOSED Handle = 0x802A0201 + E_BLUETOOTH_ATT_INVALID_HANDLE Handle = 0x80650001 + E_BLUETOOTH_ATT_READ_NOT_PERMITTED Handle = 0x80650002 + E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED Handle = 0x80650003 + E_BLUETOOTH_ATT_INVALID_PDU Handle = 0x80650004 + E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION Handle = 0x80650005 + E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED Handle = 0x80650006 + E_BLUETOOTH_ATT_INVALID_OFFSET Handle = 0x80650007 + E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION Handle = 0x80650008 + E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL Handle = 0x80650009 + E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND Handle = 0x8065000A + E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG Handle = 0x8065000B + E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE Handle = 0x8065000C + E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH Handle = 0x8065000D + E_BLUETOOTH_ATT_UNLIKELY Handle = 0x8065000E + E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION Handle = 0x8065000F + E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE Handle = 0x80650010 + E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES Handle = 0x80650011 + E_BLUETOOTH_ATT_UNKNOWN_ERROR Handle = 0x80651000 + E_AUDIO_ENGINE_NODE_NOT_FOUND Handle = 0x80660001 + E_HDAUDIO_EMPTY_CONNECTION_LIST Handle = 0x80660002 + E_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED Handle = 0x80660003 + E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED Handle = 0x80660004 + E_HDAUDIO_NULL_LINKED_LIST_ENTRY Handle = 0x80660005 + STATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE Handle = 0x80670001 + STATEREPOSITORY_E_STATEMENT_INPROGRESS Handle = 0x80670002 + STATEREPOSITORY_E_CONFIGURATION_INVALID Handle = 0x80670003 + STATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION Handle = 0x80670004 + STATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED Handle = 0x80670005 + STATEREPOSITORY_E_BLOCKED Handle = 0x80670006 + STATEREPOSITORY_E_BUSY_RETRY Handle = 0x80670007 + STATEREPOSITORY_E_BUSY_RECOVERY_RETRY Handle = 0x80670008 + STATEREPOSITORY_E_LOCKED_RETRY Handle = 0x80670009 + STATEREPOSITORY_E_LOCKED_SHAREDCACHE_RETRY Handle = 0x8067000A + STATEREPOSITORY_E_TRANSACTION_REQUIRED Handle = 0x8067000B + STATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED Handle = 0x8067000C + STATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED Handle = 0x8067000D + STATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED Handle = 0x8067000E + STATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED Handle = 0x8067000F + STATEREPOSITORY_E_SERVICE_STOP_IN_PROGRESS Handle = 0x80670010 + STATEREPOSTORY_E_NESTED_TRANSACTION_NOT_SUPPORTED Handle = 0x80670011 + STATEREPOSITORY_ERROR_CACHE_CORRUPTED Handle = 0x80670012 + STATEREPOSITORY_TRANSACTION_CALLER_ID_CHANGED Handle = 0x00670013 + STATEREPOSITORY_TRANSACTION_IN_PROGRESS Handle = 0x00670014 + ERROR_SPACES_POOL_WAS_DELETED Handle = 0x00E70001 + ERROR_SPACES_FAULT_DOMAIN_TYPE_INVALID Handle = 0x80E70001 + ERROR_SPACES_INTERNAL_ERROR Handle = 0x80E70002 + ERROR_SPACES_RESILIENCY_TYPE_INVALID Handle = 0x80E70003 + ERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID Handle = 0x80E70004 + ERROR_SPACES_DRIVE_REDUNDANCY_INVALID Handle = 0x80E70006 + ERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID Handle = 0x80E70007 + ERROR_SPACES_PARITY_LAYOUT_INVALID Handle = 0x80E70008 + ERROR_SPACES_INTERLEAVE_LENGTH_INVALID Handle = 0x80E70009 + ERROR_SPACES_NUMBER_OF_COLUMNS_INVALID Handle = 0x80E7000A + ERROR_SPACES_NOT_ENOUGH_DRIVES Handle = 0x80E7000B + ERROR_SPACES_EXTENDED_ERROR Handle = 0x80E7000C + ERROR_SPACES_PROVISIONING_TYPE_INVALID Handle = 0x80E7000D + ERROR_SPACES_ALLOCATION_SIZE_INVALID Handle = 0x80E7000E + ERROR_SPACES_ENCLOSURE_AWARE_INVALID Handle = 0x80E7000F + ERROR_SPACES_WRITE_CACHE_SIZE_INVALID Handle = 0x80E70010 + ERROR_SPACES_NUMBER_OF_GROUPS_INVALID Handle = 0x80E70011 + ERROR_SPACES_DRIVE_OPERATIONAL_STATE_INVALID Handle = 0x80E70012 + ERROR_SPACES_ENTRY_INCOMPLETE Handle = 0x80E70013 + ERROR_SPACES_ENTRY_INVALID Handle = 0x80E70014 + ERROR_VOLSNAP_BOOTFILE_NOT_VALID Handle = 0x80820001 + ERROR_VOLSNAP_ACTIVATION_TIMEOUT Handle = 0x80820002 + ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME Handle = 0x80830001 + ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS Handle = 0x80830002 + ERROR_TIERING_STORAGE_TIER_NOT_FOUND Handle = 0x80830003 + ERROR_TIERING_INVALID_FILE_ID Handle = 0x80830004 + ERROR_TIERING_WRONG_CLUSTER_NODE Handle = 0x80830005 + ERROR_TIERING_ALREADY_PROCESSING Handle = 0x80830006 + ERROR_TIERING_CANNOT_PIN_OBJECT Handle = 0x80830007 + ERROR_TIERING_FILE_IS_NOT_PINNED Handle = 0x80830008 + ERROR_NOT_A_TIERED_VOLUME Handle = 0x80830009 + ERROR_ATTRIBUTE_NOT_PRESENT Handle = 0x8083000A + ERROR_SECCORE_INVALID_COMMAND Handle = 0xC0E80000 + ERROR_NO_APPLICABLE_APP_LICENSES_FOUND Handle = 0xC0EA0001 + ERROR_CLIP_LICENSE_NOT_FOUND Handle = 0xC0EA0002 + ERROR_CLIP_DEVICE_LICENSE_MISSING Handle = 0xC0EA0003 + ERROR_CLIP_LICENSE_INVALID_SIGNATURE Handle = 0xC0EA0004 + ERROR_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID Handle = 0xC0EA0005 + ERROR_CLIP_LICENSE_EXPIRED Handle = 0xC0EA0006 + ERROR_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE Handle = 0xC0EA0007 + ERROR_CLIP_LICENSE_NOT_SIGNED Handle = 0xC0EA0008 + ERROR_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE Handle = 0xC0EA0009 + ERROR_CLIP_LICENSE_DEVICE_ID_MISMATCH Handle = 0xC0EA000A + DXGI_STATUS_OCCLUDED Handle = 0x087A0001 + DXGI_STATUS_CLIPPED Handle = 0x087A0002 + DXGI_STATUS_NO_REDIRECTION Handle = 0x087A0004 + DXGI_STATUS_NO_DESKTOP_ACCESS Handle = 0x087A0005 + DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0x087A0006 + DXGI_STATUS_MODE_CHANGED Handle = 0x087A0007 + DXGI_STATUS_MODE_CHANGE_IN_PROGRESS Handle = 0x087A0008 + DXGI_ERROR_INVALID_CALL Handle = 0x887A0001 + DXGI_ERROR_NOT_FOUND Handle = 0x887A0002 + DXGI_ERROR_MORE_DATA Handle = 0x887A0003 + DXGI_ERROR_UNSUPPORTED Handle = 0x887A0004 + DXGI_ERROR_DEVICE_REMOVED Handle = 0x887A0005 + DXGI_ERROR_DEVICE_HUNG Handle = 0x887A0006 + DXGI_ERROR_DEVICE_RESET Handle = 0x887A0007 + DXGI_ERROR_WAS_STILL_DRAWING Handle = 0x887A000A + DXGI_ERROR_FRAME_STATISTICS_DISJOINT Handle = 0x887A000B + DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE Handle = 0x887A000C + DXGI_ERROR_DRIVER_INTERNAL_ERROR Handle = 0x887A0020 + DXGI_ERROR_NONEXCLUSIVE Handle = 0x887A0021 + DXGI_ERROR_NOT_CURRENTLY_AVAILABLE Handle = 0x887A0022 + DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED Handle = 0x887A0023 + DXGI_ERROR_REMOTE_OUTOFMEMORY Handle = 0x887A0024 + DXGI_ERROR_ACCESS_LOST Handle = 0x887A0026 + DXGI_ERROR_WAIT_TIMEOUT Handle = 0x887A0027 + DXGI_ERROR_SESSION_DISCONNECTED Handle = 0x887A0028 + DXGI_ERROR_RESTRICT_TO_OUTPUT_STALE Handle = 0x887A0029 + DXGI_ERROR_CANNOT_PROTECT_CONTENT Handle = 0x887A002A + DXGI_ERROR_ACCESS_DENIED Handle = 0x887A002B + DXGI_ERROR_NAME_ALREADY_EXISTS Handle = 0x887A002C + DXGI_ERROR_SDK_COMPONENT_MISSING Handle = 0x887A002D + DXGI_ERROR_NOT_CURRENT Handle = 0x887A002E + DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY Handle = 0x887A0030 + DXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION Handle = 0x887A0031 + DXGI_ERROR_NON_COMPOSITED_UI Handle = 0x887A0032 + DXGI_STATUS_UNOCCLUDED Handle = 0x087A0009 + DXGI_STATUS_DDA_WAS_STILL_DRAWING Handle = 0x087A000A + DXGI_ERROR_MODE_CHANGE_IN_PROGRESS Handle = 0x887A0025 + DXGI_STATUS_PRESENT_REQUIRED Handle = 0x087A002F + DXGI_ERROR_CACHE_CORRUPT Handle = 0x887A0033 + DXGI_ERROR_CACHE_FULL Handle = 0x887A0034 + DXGI_ERROR_CACHE_HASH_COLLISION Handle = 0x887A0035 + DXGI_ERROR_ALREADY_EXISTS Handle = 0x887A0036 + DXGI_DDI_ERR_WASSTILLDRAWING Handle = 0x887B0001 + DXGI_DDI_ERR_UNSUPPORTED Handle = 0x887B0002 + DXGI_DDI_ERR_NONEXCLUSIVE Handle = 0x887B0003 + D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS Handle = 0x88790001 + D3D10_ERROR_FILE_NOT_FOUND Handle = 0x88790002 + D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS Handle = 0x887C0001 + D3D11_ERROR_FILE_NOT_FOUND Handle = 0x887C0002 + D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS Handle = 0x887C0003 + D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD Handle = 0x887C0004 + D3D12_ERROR_ADAPTER_NOT_FOUND Handle = 0x887E0001 + D3D12_ERROR_DRIVER_VERSION_MISMATCH Handle = 0x887E0002 + D2DERR_WRONG_STATE Handle = 0x88990001 + D2DERR_NOT_INITIALIZED Handle = 0x88990002 + D2DERR_UNSUPPORTED_OPERATION Handle = 0x88990003 + D2DERR_SCANNER_FAILED Handle = 0x88990004 + D2DERR_SCREEN_ACCESS_DENIED Handle = 0x88990005 + D2DERR_DISPLAY_STATE_INVALID Handle = 0x88990006 + D2DERR_ZERO_VECTOR Handle = 0x88990007 + D2DERR_INTERNAL_ERROR Handle = 0x88990008 + D2DERR_DISPLAY_FORMAT_NOT_SUPPORTED Handle = 0x88990009 + D2DERR_INVALID_CALL Handle = 0x8899000A + D2DERR_NO_HARDWARE_DEVICE Handle = 0x8899000B + D2DERR_RECREATE_TARGET Handle = 0x8899000C + D2DERR_TOO_MANY_SHADER_ELEMENTS Handle = 0x8899000D + D2DERR_SHADER_COMPILE_FAILED Handle = 0x8899000E + D2DERR_MAX_TEXTURE_SIZE_EXCEEDED Handle = 0x8899000F + D2DERR_UNSUPPORTED_VERSION Handle = 0x88990010 + D2DERR_BAD_NUMBER Handle = 0x88990011 + D2DERR_WRONG_FACTORY Handle = 0x88990012 + D2DERR_LAYER_ALREADY_IN_USE Handle = 0x88990013 + D2DERR_POP_CALL_DID_NOT_MATCH_PUSH Handle = 0x88990014 + D2DERR_WRONG_RESOURCE_DOMAIN Handle = 0x88990015 + D2DERR_PUSH_POP_UNBALANCED Handle = 0x88990016 + D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT Handle = 0x88990017 + D2DERR_INCOMPATIBLE_BRUSH_TYPES Handle = 0x88990018 + D2DERR_WIN32_ERROR Handle = 0x88990019 + D2DERR_TARGET_NOT_GDI_COMPATIBLE Handle = 0x8899001A + D2DERR_TEXT_EFFECT_IS_WRONG_TYPE Handle = 0x8899001B + D2DERR_TEXT_RENDERER_NOT_RELEASED Handle = 0x8899001C + D2DERR_EXCEEDS_MAX_BITMAP_SIZE Handle = 0x8899001D + D2DERR_INVALID_GRAPH_CONFIGURATION Handle = 0x8899001E + D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION Handle = 0x8899001F + D2DERR_CYCLIC_GRAPH Handle = 0x88990020 + D2DERR_BITMAP_CANNOT_DRAW Handle = 0x88990021 + D2DERR_OUTSTANDING_BITMAP_REFERENCES Handle = 0x88990022 + D2DERR_ORIGINAL_TARGET_NOT_BOUND Handle = 0x88990023 + D2DERR_INVALID_TARGET Handle = 0x88990024 + D2DERR_BITMAP_BOUND_AS_TARGET Handle = 0x88990025 + D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES Handle = 0x88990026 + D2DERR_INTERMEDIATE_TOO_LARGE Handle = 0x88990027 + D2DERR_EFFECT_IS_NOT_REGISTERED Handle = 0x88990028 + D2DERR_INVALID_PROPERTY Handle = 0x88990029 + D2DERR_NO_SUBPROPERTIES Handle = 0x8899002A + D2DERR_PRINT_JOB_CLOSED Handle = 0x8899002B + D2DERR_PRINT_FORMAT_NOT_SUPPORTED Handle = 0x8899002C + D2DERR_TOO_MANY_TRANSFORM_INPUTS Handle = 0x8899002D + D2DERR_INVALID_GLYPH_IMAGE Handle = 0x8899002E + DWRITE_E_FILEFORMAT Handle = 0x88985000 + DWRITE_E_UNEXPECTED Handle = 0x88985001 + DWRITE_E_NOFONT Handle = 0x88985002 + DWRITE_E_FILENOTFOUND Handle = 0x88985003 + DWRITE_E_FILEACCESS Handle = 0x88985004 + DWRITE_E_FONTCOLLECTIONOBSOLETE Handle = 0x88985005 + DWRITE_E_ALREADYREGISTERED Handle = 0x88985006 + DWRITE_E_CACHEFORMAT Handle = 0x88985007 + DWRITE_E_CACHEVERSION Handle = 0x88985008 + DWRITE_E_UNSUPPORTEDOPERATION Handle = 0x88985009 + DWRITE_E_TEXTRENDERERINCOMPATIBLE Handle = 0x8898500A + DWRITE_E_FLOWDIRECTIONCONFLICTS Handle = 0x8898500B + DWRITE_E_NOCOLOR Handle = 0x8898500C + DWRITE_E_REMOTEFONT Handle = 0x8898500D + DWRITE_E_DOWNLOADCANCELLED Handle = 0x8898500E + DWRITE_E_DOWNLOADFAILED Handle = 0x8898500F + DWRITE_E_TOOMANYDOWNLOADS Handle = 0x88985010 + WINCODEC_ERR_WRONGSTATE Handle = 0x88982F04 + WINCODEC_ERR_VALUEOUTOFRANGE Handle = 0x88982F05 + WINCODEC_ERR_UNKNOWNIMAGEFORMAT Handle = 0x88982F07 + WINCODEC_ERR_UNSUPPORTEDVERSION Handle = 0x88982F0B + WINCODEC_ERR_NOTINITIALIZED Handle = 0x88982F0C + WINCODEC_ERR_ALREADYLOCKED Handle = 0x88982F0D + WINCODEC_ERR_PROPERTYNOTFOUND Handle = 0x88982F40 + WINCODEC_ERR_PROPERTYNOTSUPPORTED Handle = 0x88982F41 + WINCODEC_ERR_PROPERTYSIZE Handle = 0x88982F42 + WINCODEC_ERR_CODECPRESENT Handle = 0x88982F43 + WINCODEC_ERR_CODECNOTHUMBNAIL Handle = 0x88982F44 + WINCODEC_ERR_PALETTEUNAVAILABLE Handle = 0x88982F45 + WINCODEC_ERR_CODECTOOMANYSCANLINES Handle = 0x88982F46 + WINCODEC_ERR_INTERNALERROR Handle = 0x88982F48 + WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS Handle = 0x88982F49 + WINCODEC_ERR_COMPONENTNOTFOUND Handle = 0x88982F50 + WINCODEC_ERR_IMAGESIZEOUTOFRANGE Handle = 0x88982F51 + WINCODEC_ERR_TOOMUCHMETADATA Handle = 0x88982F52 + WINCODEC_ERR_BADIMAGE Handle = 0x88982F60 + WINCODEC_ERR_BADHEADER Handle = 0x88982F61 + WINCODEC_ERR_FRAMEMISSING Handle = 0x88982F62 + WINCODEC_ERR_BADMETADATAHEADER Handle = 0x88982F63 + WINCODEC_ERR_BADSTREAMDATA Handle = 0x88982F70 + WINCODEC_ERR_STREAMWRITE Handle = 0x88982F71 + WINCODEC_ERR_STREAMREAD Handle = 0x88982F72 + WINCODEC_ERR_STREAMNOTAVAILABLE Handle = 0x88982F73 + WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT Handle = 0x88982F80 + WINCODEC_ERR_UNSUPPORTEDOPERATION Handle = 0x88982F81 + WINCODEC_ERR_INVALIDREGISTRATION Handle = 0x88982F8A + WINCODEC_ERR_COMPONENTINITIALIZEFAILURE Handle = 0x88982F8B + WINCODEC_ERR_INSUFFICIENTBUFFER Handle = 0x88982F8C + WINCODEC_ERR_DUPLICATEMETADATAPRESENT Handle = 0x88982F8D + WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE Handle = 0x88982F8E + WINCODEC_ERR_UNEXPECTEDSIZE Handle = 0x88982F8F + WINCODEC_ERR_INVALIDQUERYREQUEST Handle = 0x88982F90 + WINCODEC_ERR_UNEXPECTEDMETADATATYPE Handle = 0x88982F91 + WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT Handle = 0x88982F92 + WINCODEC_ERR_INVALIDQUERYCHARACTER Handle = 0x88982F93 + WINCODEC_ERR_WIN32ERROR Handle = 0x88982F94 + WINCODEC_ERR_INVALIDPROGRESSIVELEVEL Handle = 0x88982F95 + WINCODEC_ERR_INVALIDJPEGSCANINDEX Handle = 0x88982F96 + MILERR_OBJECTBUSY Handle = 0x88980001 + MILERR_INSUFFICIENTBUFFER Handle = 0x88980002 + MILERR_WIN32ERROR Handle = 0x88980003 + MILERR_SCANNER_FAILED Handle = 0x88980004 + MILERR_SCREENACCESSDENIED Handle = 0x88980005 + MILERR_DISPLAYSTATEINVALID Handle = 0x88980006 + MILERR_NONINVERTIBLEMATRIX Handle = 0x88980007 + MILERR_ZEROVECTOR Handle = 0x88980008 + MILERR_TERMINATED Handle = 0x88980009 + MILERR_BADNUMBER Handle = 0x8898000A + MILERR_INTERNALERROR Handle = 0x88980080 + MILERR_DISPLAYFORMATNOTSUPPORTED Handle = 0x88980084 + MILERR_INVALIDCALL Handle = 0x88980085 + MILERR_ALREADYLOCKED Handle = 0x88980086 + MILERR_NOTLOCKED Handle = 0x88980087 + MILERR_DEVICECANNOTRENDERTEXT Handle = 0x88980088 + MILERR_GLYPHBITMAPMISSED Handle = 0x88980089 + MILERR_MALFORMEDGLYPHCACHE Handle = 0x8898008A + MILERR_GENERIC_IGNORE Handle = 0x8898008B + MILERR_MALFORMED_GUIDELINE_DATA Handle = 0x8898008C + MILERR_NO_HARDWARE_DEVICE Handle = 0x8898008D + MILERR_NEED_RECREATE_AND_PRESENT Handle = 0x8898008E + MILERR_ALREADY_INITIALIZED Handle = 0x8898008F + MILERR_MISMATCHED_SIZE Handle = 0x88980090 + MILERR_NO_REDIRECTION_SURFACE_AVAILABLE Handle = 0x88980091 + MILERR_REMOTING_NOT_SUPPORTED Handle = 0x88980092 + MILERR_QUEUED_PRESENT_NOT_SUPPORTED Handle = 0x88980093 + MILERR_NOT_QUEUING_PRESENTS Handle = 0x88980094 + MILERR_NO_REDIRECTION_SURFACE_RETRY_LATER Handle = 0x88980095 + MILERR_TOOMANYSHADERELEMNTS Handle = 0x88980096 + MILERR_MROW_READLOCK_FAILED Handle = 0x88980097 + MILERR_MROW_UPDATE_FAILED Handle = 0x88980098 + MILERR_SHADER_COMPILE_FAILED Handle = 0x88980099 + MILERR_MAX_TEXTURE_SIZE_EXCEEDED Handle = 0x8898009A + MILERR_QPC_TIME_WENT_BACKWARD Handle = 0x8898009B + MILERR_DXGI_ENUMERATION_OUT_OF_SYNC Handle = 0x8898009D + MILERR_ADAPTER_NOT_FOUND Handle = 0x8898009E + MILERR_COLORSPACE_NOT_SUPPORTED Handle = 0x8898009F + MILERR_PREFILTER_NOT_SUPPORTED Handle = 0x889800A0 + MILERR_DISPLAYID_ACCESS_DENIED Handle = 0x889800A1 + UCEERR_INVALIDPACKETHEADER Handle = 0x88980400 + UCEERR_UNKNOWNPACKET Handle = 0x88980401 + UCEERR_ILLEGALPACKET Handle = 0x88980402 + UCEERR_MALFORMEDPACKET Handle = 0x88980403 + UCEERR_ILLEGALHANDLE Handle = 0x88980404 + UCEERR_HANDLELOOKUPFAILED Handle = 0x88980405 + UCEERR_RENDERTHREADFAILURE Handle = 0x88980406 + UCEERR_CTXSTACKFRSTTARGETNULL Handle = 0x88980407 + UCEERR_CONNECTIONIDLOOKUPFAILED Handle = 0x88980408 + UCEERR_BLOCKSFULL Handle = 0x88980409 + UCEERR_MEMORYFAILURE Handle = 0x8898040A + UCEERR_PACKETRECORDOUTOFRANGE Handle = 0x8898040B + UCEERR_ILLEGALRECORDTYPE Handle = 0x8898040C + UCEERR_OUTOFHANDLES Handle = 0x8898040D + UCEERR_UNCHANGABLE_UPDATE_ATTEMPTED Handle = 0x8898040E + UCEERR_NO_MULTIPLE_WORKER_THREADS Handle = 0x8898040F + UCEERR_REMOTINGNOTSUPPORTED Handle = 0x88980410 + UCEERR_MISSINGENDCOMMAND Handle = 0x88980411 + UCEERR_MISSINGBEGINCOMMAND Handle = 0x88980412 + UCEERR_CHANNELSYNCTIMEDOUT Handle = 0x88980413 + UCEERR_CHANNELSYNCABANDONED Handle = 0x88980414 + UCEERR_UNSUPPORTEDTRANSPORTVERSION Handle = 0x88980415 + UCEERR_TRANSPORTUNAVAILABLE Handle = 0x88980416 + UCEERR_FEEDBACK_UNSUPPORTED Handle = 0x88980417 + UCEERR_COMMANDTRANSPORTDENIED Handle = 0x88980418 + UCEERR_GRAPHICSSTREAMUNAVAILABLE Handle = 0x88980419 + UCEERR_GRAPHICSSTREAMALREADYOPEN Handle = 0x88980420 + UCEERR_TRANSPORTDISCONNECTED Handle = 0x88980421 + UCEERR_TRANSPORTOVERLOADED Handle = 0x88980422 + UCEERR_PARTITION_ZOMBIED Handle = 0x88980423 + MILAVERR_NOCLOCK Handle = 0x88980500 + MILAVERR_NOMEDIATYPE Handle = 0x88980501 + MILAVERR_NOVIDEOMIXER Handle = 0x88980502 + MILAVERR_NOVIDEOPRESENTER Handle = 0x88980503 + MILAVERR_NOREADYFRAMES Handle = 0x88980504 + MILAVERR_MODULENOTLOADED Handle = 0x88980505 + MILAVERR_WMPFACTORYNOTREGISTERED Handle = 0x88980506 + MILAVERR_INVALIDWMPVERSION Handle = 0x88980507 + MILAVERR_INSUFFICIENTVIDEORESOURCES Handle = 0x88980508 + MILAVERR_VIDEOACCELERATIONNOTAVAILABLE Handle = 0x88980509 + MILAVERR_REQUESTEDTEXTURETOOBIG Handle = 0x8898050A + MILAVERR_SEEKFAILED Handle = 0x8898050B + MILAVERR_UNEXPECTEDWMPFAILURE Handle = 0x8898050C + MILAVERR_MEDIAPLAYERCLOSED Handle = 0x8898050D + MILAVERR_UNKNOWNHARDWAREERROR Handle = 0x8898050E + MILEFFECTSERR_UNKNOWNPROPERTY Handle = 0x8898060E + MILEFFECTSERR_EFFECTNOTPARTOFGROUP Handle = 0x8898060F + MILEFFECTSERR_NOINPUTSOURCEATTACHED Handle = 0x88980610 + MILEFFECTSERR_CONNECTORNOTCONNECTED Handle = 0x88980611 + MILEFFECTSERR_CONNECTORNOTASSOCIATEDWITHEFFECT Handle = 0x88980612 + MILEFFECTSERR_RESERVED Handle = 0x88980613 + MILEFFECTSERR_CYCLEDETECTED Handle = 0x88980614 + MILEFFECTSERR_EFFECTINMORETHANONEGRAPH Handle = 0x88980615 + MILEFFECTSERR_EFFECTALREADYINAGRAPH Handle = 0x88980616 + MILEFFECTSERR_EFFECTHASNOCHILDREN Handle = 0x88980617 + MILEFFECTSERR_ALREADYATTACHEDTOLISTENER Handle = 0x88980618 + MILEFFECTSERR_NOTAFFINETRANSFORM Handle = 0x88980619 + MILEFFECTSERR_EMPTYBOUNDS Handle = 0x8898061A + MILEFFECTSERR_OUTPUTSIZETOOLARGE Handle = 0x8898061B + DWMERR_STATE_TRANSITION_FAILED Handle = 0x88980700 + DWMERR_THEME_FAILED Handle = 0x88980701 + DWMERR_CATASTROPHIC_FAILURE Handle = 0x88980702 + DCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED Handle = 0x88980800 + DCOMPOSITION_ERROR_SURFACE_BEING_RENDERED Handle = 0x88980801 + DCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED Handle = 0x88980802 + ONL_E_INVALID_AUTHENTICATION_TARGET Handle = 0x80860001 + ONL_E_ACCESS_DENIED_BY_TOU Handle = 0x80860002 + ONL_E_INVALID_APPLICATION Handle = 0x80860003 + ONL_E_PASSWORD_UPDATE_REQUIRED Handle = 0x80860004 + ONL_E_ACCOUNT_UPDATE_REQUIRED Handle = 0x80860005 + ONL_E_FORCESIGNIN Handle = 0x80860006 + ONL_E_ACCOUNT_LOCKED Handle = 0x80860007 + ONL_E_PARENTAL_CONSENT_REQUIRED Handle = 0x80860008 + ONL_E_EMAIL_VERIFICATION_REQUIRED Handle = 0x80860009 + ONL_E_ACCOUNT_SUSPENDED_COMPROIMISE Handle = 0x8086000A + ONL_E_ACCOUNT_SUSPENDED_ABUSE Handle = 0x8086000B + ONL_E_ACTION_REQUIRED Handle = 0x8086000C + ONL_CONNECTION_COUNT_LIMIT Handle = 0x8086000D + ONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT Handle = 0x8086000E + ONL_E_USER_AUTHENTICATION_REQUIRED Handle = 0x8086000F + ONL_E_REQUEST_THROTTLED Handle = 0x80860010 + FA_E_MAX_PERSISTED_ITEMS_REACHED Handle = 0x80270220 + FA_E_HOMEGROUP_NOT_AVAILABLE Handle = 0x80270222 + E_MONITOR_RESOLUTION_TOO_LOW Handle = 0x80270250 + E_ELEVATED_ACTIVATION_NOT_SUPPORTED Handle = 0x80270251 + E_UAC_DISABLED Handle = 0x80270252 + E_FULL_ADMIN_NOT_SUPPORTED Handle = 0x80270253 + E_APPLICATION_NOT_REGISTERED Handle = 0x80270254 + E_MULTIPLE_EXTENSIONS_FOR_APPLICATION Handle = 0x80270255 + E_MULTIPLE_PACKAGES_FOR_FAMILY Handle = 0x80270256 + E_APPLICATION_MANAGER_NOT_RUNNING Handle = 0x80270257 + S_STORE_LAUNCHED_FOR_REMEDIATION Handle = 0x00270258 + S_APPLICATION_ACTIVATION_ERROR_HANDLED_BY_DIALOG Handle = 0x00270259 + E_APPLICATION_ACTIVATION_TIMED_OUT Handle = 0x8027025A + E_APPLICATION_ACTIVATION_EXEC_FAILURE Handle = 0x8027025B + E_APPLICATION_TEMPORARY_LICENSE_ERROR Handle = 0x8027025C + E_APPLICATION_TRIAL_LICENSE_EXPIRED Handle = 0x8027025D + E_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED Handle = 0x80270260 + E_SKYDRIVE_ROOT_TARGET_OVERLAP Handle = 0x80270261 + E_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX Handle = 0x80270262 + E_SKYDRIVE_FILE_NOT_UPLOADED Handle = 0x80270263 + E_SKYDRIVE_UPDATE_AVAILABILITY_FAIL Handle = 0x80270264 + E_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED Handle = 0x80270265 + E_SYNCENGINE_FILE_SIZE_OVER_LIMIT Handle = 0x8802B001 + E_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA Handle = 0x8802B002 + E_SYNCENGINE_UNSUPPORTED_FILE_NAME Handle = 0x8802B003 + E_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED Handle = 0x8802B004 + E_SYNCENGINE_FILE_SYNC_PARTNER_ERROR Handle = 0x8802B005 + E_SYNCENGINE_SYNC_PAUSED_BY_SERVICE Handle = 0x8802B006 + E_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN Handle = 0x8802C002 + E_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED Handle = 0x8802C003 + E_SYNCENGINE_UNKNOWN_SERVICE_ERROR Handle = 0x8802C004 + E_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE Handle = 0x8802C005 + E_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE Handle = 0x8802C006 + E_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR Handle = 0x8802C007 + E_SYNCENGINE_FOLDER_INACCESSIBLE Handle = 0x8802D001 + E_SYNCENGINE_UNSUPPORTED_FOLDER_NAME Handle = 0x8802D002 + E_SYNCENGINE_UNSUPPORTED_MARKET Handle = 0x8802D003 + E_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED Handle = 0x8802D004 + E_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED Handle = 0x8802D005 + E_SYNCENGINE_CLIENT_UPDATE_NEEDED Handle = 0x8802D006 + E_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED Handle = 0x8802D007 + E_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED Handle = 0x8802D008 + E_SYNCENGINE_UNSUPPORTED_REPARSE_POINT Handle = 0x8802D009 + E_SYNCENGINE_STORAGE_SERVICE_BLOCKED Handle = 0x8802D00A + E_SYNCENGINE_FOLDER_IN_REDIRECTION Handle = 0x8802D00B + EAS_E_POLICY_NOT_MANAGED_BY_OS Handle = 0x80550001 + EAS_E_POLICY_COMPLIANT_WITH_ACTIONS Handle = 0x80550002 + EAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE Handle = 0x80550003 + EAS_E_CURRENT_USER_HAS_BLANK_PASSWORD Handle = 0x80550004 + EAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE Handle = 0x80550005 + EAS_E_USER_CANNOT_CHANGE_PASSWORD Handle = 0x80550006 + EAS_E_ADMINS_HAVE_BLANK_PASSWORD Handle = 0x80550007 + EAS_E_ADMINS_CANNOT_CHANGE_PASSWORD Handle = 0x80550008 + EAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD Handle = 0x80550009 + EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS Handle = 0x8055000A + EAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD Handle = 0x8055000B + EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER Handle = 0x8055000C + EAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD Handle = 0x8055000D + WEB_E_UNSUPPORTED_FORMAT Handle = 0x83750001 + WEB_E_INVALID_XML Handle = 0x83750002 + WEB_E_MISSING_REQUIRED_ELEMENT Handle = 0x83750003 + WEB_E_MISSING_REQUIRED_ATTRIBUTE Handle = 0x83750004 + WEB_E_UNEXPECTED_CONTENT Handle = 0x83750005 + WEB_E_RESOURCE_TOO_LARGE Handle = 0x83750006 + WEB_E_INVALID_JSON_STRING Handle = 0x83750007 + WEB_E_INVALID_JSON_NUMBER Handle = 0x83750008 + WEB_E_JSON_VALUE_NOT_FOUND Handle = 0x83750009 + HTTP_E_STATUS_UNEXPECTED Handle = 0x80190001 + HTTP_E_STATUS_UNEXPECTED_REDIRECTION Handle = 0x80190003 + HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR Handle = 0x80190004 + HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR Handle = 0x80190005 + HTTP_E_STATUS_AMBIGUOUS Handle = 0x8019012C + HTTP_E_STATUS_MOVED Handle = 0x8019012D + HTTP_E_STATUS_REDIRECT Handle = 0x8019012E + HTTP_E_STATUS_REDIRECT_METHOD Handle = 0x8019012F + HTTP_E_STATUS_NOT_MODIFIED Handle = 0x80190130 + HTTP_E_STATUS_USE_PROXY Handle = 0x80190131 + HTTP_E_STATUS_REDIRECT_KEEP_VERB Handle = 0x80190133 + HTTP_E_STATUS_BAD_REQUEST Handle = 0x80190190 + HTTP_E_STATUS_DENIED Handle = 0x80190191 + HTTP_E_STATUS_PAYMENT_REQ Handle = 0x80190192 + HTTP_E_STATUS_FORBIDDEN Handle = 0x80190193 + HTTP_E_STATUS_NOT_FOUND Handle = 0x80190194 + HTTP_E_STATUS_BAD_METHOD Handle = 0x80190195 + HTTP_E_STATUS_NONE_ACCEPTABLE Handle = 0x80190196 + HTTP_E_STATUS_PROXY_AUTH_REQ Handle = 0x80190197 + HTTP_E_STATUS_REQUEST_TIMEOUT Handle = 0x80190198 + HTTP_E_STATUS_CONFLICT Handle = 0x80190199 + HTTP_E_STATUS_GONE Handle = 0x8019019A + HTTP_E_STATUS_LENGTH_REQUIRED Handle = 0x8019019B + HTTP_E_STATUS_PRECOND_FAILED Handle = 0x8019019C + HTTP_E_STATUS_REQUEST_TOO_LARGE Handle = 0x8019019D + HTTP_E_STATUS_URI_TOO_LONG Handle = 0x8019019E + HTTP_E_STATUS_UNSUPPORTED_MEDIA Handle = 0x8019019F + HTTP_E_STATUS_RANGE_NOT_SATISFIABLE Handle = 0x801901A0 + HTTP_E_STATUS_EXPECTATION_FAILED Handle = 0x801901A1 + HTTP_E_STATUS_SERVER_ERROR Handle = 0x801901F4 + HTTP_E_STATUS_NOT_SUPPORTED Handle = 0x801901F5 + HTTP_E_STATUS_BAD_GATEWAY Handle = 0x801901F6 + HTTP_E_STATUS_SERVICE_UNAVAIL Handle = 0x801901F7 + HTTP_E_STATUS_GATEWAY_TIMEOUT Handle = 0x801901F8 + HTTP_E_STATUS_VERSION_NOT_SUP Handle = 0x801901F9 + E_INVALID_PROTOCOL_OPERATION Handle = 0x83760001 + E_INVALID_PROTOCOL_FORMAT Handle = 0x83760002 + E_PROTOCOL_EXTENSIONS_NOT_SUPPORTED Handle = 0x83760003 + E_SUBPROTOCOL_NOT_SUPPORTED Handle = 0x83760004 + E_PROTOCOL_VERSION_NOT_SUPPORTED Handle = 0x83760005 + INPUT_E_OUT_OF_ORDER Handle = 0x80400000 + INPUT_E_REENTRANCY Handle = 0x80400001 + INPUT_E_MULTIMODAL Handle = 0x80400002 + INPUT_E_PACKET Handle = 0x80400003 + INPUT_E_FRAME Handle = 0x80400004 + INPUT_E_HISTORY Handle = 0x80400005 + INPUT_E_DEVICE_INFO Handle = 0x80400006 + INPUT_E_TRANSFORM Handle = 0x80400007 + INPUT_E_DEVICE_PROPERTY Handle = 0x80400008 + INET_E_INVALID_URL Handle = 0x800C0002 + INET_E_NO_SESSION Handle = 0x800C0003 + INET_E_CANNOT_CONNECT Handle = 0x800C0004 + INET_E_RESOURCE_NOT_FOUND Handle = 0x800C0005 + INET_E_OBJECT_NOT_FOUND Handle = 0x800C0006 + INET_E_DATA_NOT_AVAILABLE Handle = 0x800C0007 + INET_E_DOWNLOAD_FAILURE Handle = 0x800C0008 + INET_E_AUTHENTICATION_REQUIRED Handle = 0x800C0009 + INET_E_NO_VALID_MEDIA Handle = 0x800C000A + INET_E_CONNECTION_TIMEOUT Handle = 0x800C000B + INET_E_INVALID_REQUEST Handle = 0x800C000C + INET_E_UNKNOWN_PROTOCOL Handle = 0x800C000D + INET_E_SECURITY_PROBLEM Handle = 0x800C000E + INET_E_CANNOT_LOAD_DATA Handle = 0x800C000F + INET_E_CANNOT_INSTANTIATE_OBJECT Handle = 0x800C0010 + INET_E_INVALID_CERTIFICATE Handle = 0x800C0019 + INET_E_REDIRECT_FAILED Handle = 0x800C0014 + INET_E_REDIRECT_TO_DIR Handle = 0x800C0015 + ERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN Handle = 0x80B00001 + ERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN Handle = 0x80B00002 + ERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN Handle = 0x80B00003 + ERROR_DBG_START_SERVER_FAILURE_LOCKDOWN Handle = 0x80B00004 + ERROR_IO_PREEMPTED Handle = 0x89010001 + JSCRIPT_E_CANTEXECUTE Handle = 0x89020001 + WEP_E_NOT_PROVISIONED_ON_ALL_VOLUMES Handle = 0x88010001 + WEP_E_FIXED_DATA_NOT_SUPPORTED Handle = 0x88010002 + WEP_E_HARDWARE_NOT_COMPLIANT Handle = 0x88010003 + WEP_E_LOCK_NOT_CONFIGURED Handle = 0x88010004 + WEP_E_PROTECTION_SUSPENDED Handle = 0x88010005 + WEP_E_NO_LICENSE Handle = 0x88010006 + WEP_E_OS_NOT_PROTECTED Handle = 0x88010007 + WEP_E_UNEXPECTED_FAIL Handle = 0x88010008 + WEP_E_BUFFER_TOO_LARGE Handle = 0x88010009 + ERROR_SVHDX_ERROR_STORED Handle = 0xC05C0000 + ERROR_SVHDX_ERROR_NOT_AVAILABLE Handle = 0xC05CFF00 + ERROR_SVHDX_UNIT_ATTENTION_AVAILABLE Handle = 0xC05CFF01 + ERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED Handle = 0xC05CFF02 + ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED Handle = 0xC05CFF03 + ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED Handle = 0xC05CFF04 + ERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED Handle = 0xC05CFF05 + ERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED Handle = 0xC05CFF06 + ERROR_SVHDX_RESERVATION_CONFLICT Handle = 0xC05CFF07 + ERROR_SVHDX_WRONG_FILE_TYPE Handle = 0xC05CFF08 + ERROR_SVHDX_VERSION_MISMATCH Handle = 0xC05CFF09 + ERROR_VHD_SHARED Handle = 0xC05CFF0A + ERROR_SVHDX_NO_INITIATOR Handle = 0xC05CFF0B + ERROR_VHDSET_BACKING_STORAGE_NOT_FOUND Handle = 0xC05CFF0C + ERROR_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP Handle = 0xC05D0000 + ERROR_SMB_BAD_CLUSTER_DIALECT Handle = 0xC05D0001 + WININET_E_OUT_OF_HANDLES Handle = 0x80072EE1 + WININET_E_TIMEOUT Handle = 0x80072EE2 + WININET_E_EXTENDED_ERROR Handle = 0x80072EE3 + WININET_E_INTERNAL_ERROR Handle = 0x80072EE4 + WININET_E_INVALID_URL Handle = 0x80072EE5 + WININET_E_UNRECOGNIZED_SCHEME Handle = 0x80072EE6 + WININET_E_NAME_NOT_RESOLVED Handle = 0x80072EE7 + WININET_E_PROTOCOL_NOT_FOUND Handle = 0x80072EE8 + WININET_E_INVALID_OPTION Handle = 0x80072EE9 + WININET_E_BAD_OPTION_LENGTH Handle = 0x80072EEA + WININET_E_OPTION_NOT_SETTABLE Handle = 0x80072EEB + WININET_E_SHUTDOWN Handle = 0x80072EEC + WININET_E_INCORRECT_USER_NAME Handle = 0x80072EED + WININET_E_INCORRECT_PASSWORD Handle = 0x80072EEE + WININET_E_LOGIN_FAILURE Handle = 0x80072EEF + WININET_E_INVALID_OPERATION Handle = 0x80072EF0 + WININET_E_OPERATION_CANCELLED Handle = 0x80072EF1 + WININET_E_INCORRECT_HANDLE_TYPE Handle = 0x80072EF2 + WININET_E_INCORRECT_HANDLE_STATE Handle = 0x80072EF3 + WININET_E_NOT_PROXY_REQUEST Handle = 0x80072EF4 + WININET_E_REGISTRY_VALUE_NOT_FOUND Handle = 0x80072EF5 + WININET_E_BAD_REGISTRY_PARAMETER Handle = 0x80072EF6 + WININET_E_NO_DIRECT_ACCESS Handle = 0x80072EF7 + WININET_E_NO_CONTEXT Handle = 0x80072EF8 + WININET_E_NO_CALLBACK Handle = 0x80072EF9 + WININET_E_REQUEST_PENDING Handle = 0x80072EFA + WININET_E_INCORRECT_FORMAT Handle = 0x80072EFB + WININET_E_ITEM_NOT_FOUND Handle = 0x80072EFC + WININET_E_CANNOT_CONNECT Handle = 0x80072EFD + WININET_E_CONNECTION_ABORTED Handle = 0x80072EFE + WININET_E_CONNECTION_RESET Handle = 0x80072EFF + WININET_E_FORCE_RETRY Handle = 0x80072F00 + WININET_E_INVALID_PROXY_REQUEST Handle = 0x80072F01 + WININET_E_NEED_UI Handle = 0x80072F02 + WININET_E_HANDLE_EXISTS Handle = 0x80072F04 + WININET_E_SEC_CERT_DATE_INVALID Handle = 0x80072F05 + WININET_E_SEC_CERT_CN_INVALID Handle = 0x80072F06 + WININET_E_HTTP_TO_HTTPS_ON_REDIR Handle = 0x80072F07 + WININET_E_HTTPS_TO_HTTP_ON_REDIR Handle = 0x80072F08 + WININET_E_MIXED_SECURITY Handle = 0x80072F09 + WININET_E_CHG_POST_IS_NON_SECURE Handle = 0x80072F0A + WININET_E_POST_IS_NON_SECURE Handle = 0x80072F0B + WININET_E_CLIENT_AUTH_CERT_NEEDED Handle = 0x80072F0C + WININET_E_INVALID_CA Handle = 0x80072F0D + WININET_E_CLIENT_AUTH_NOT_SETUP Handle = 0x80072F0E + WININET_E_ASYNC_THREAD_FAILED Handle = 0x80072F0F + WININET_E_REDIRECT_SCHEME_CHANGE Handle = 0x80072F10 + WININET_E_DIALOG_PENDING Handle = 0x80072F11 + WININET_E_RETRY_DIALOG Handle = 0x80072F12 + WININET_E_NO_NEW_CONTAINERS Handle = 0x80072F13 + WININET_E_HTTPS_HTTP_SUBMIT_REDIR Handle = 0x80072F14 + WININET_E_SEC_CERT_ERRORS Handle = 0x80072F17 + WININET_E_SEC_CERT_REV_FAILED Handle = 0x80072F19 + WININET_E_HEADER_NOT_FOUND Handle = 0x80072F76 + WININET_E_DOWNLEVEL_SERVER Handle = 0x80072F77 + WININET_E_INVALID_SERVER_RESPONSE Handle = 0x80072F78 + WININET_E_INVALID_HEADER Handle = 0x80072F79 + WININET_E_INVALID_QUERY_REQUEST Handle = 0x80072F7A + WININET_E_HEADER_ALREADY_EXISTS Handle = 0x80072F7B + WININET_E_REDIRECT_FAILED Handle = 0x80072F7C + WININET_E_SECURITY_CHANNEL_ERROR Handle = 0x80072F7D + WININET_E_UNABLE_TO_CACHE_FILE Handle = 0x80072F7E + WININET_E_TCPIP_NOT_INSTALLED Handle = 0x80072F7F + WININET_E_DISCONNECTED Handle = 0x80072F83 + WININET_E_SERVER_UNREACHABLE Handle = 0x80072F84 + WININET_E_PROXY_SERVER_UNREACHABLE Handle = 0x80072F85 + WININET_E_BAD_AUTO_PROXY_SCRIPT Handle = 0x80072F86 + WININET_E_UNABLE_TO_DOWNLOAD_SCRIPT Handle = 0x80072F87 + WININET_E_SEC_INVALID_CERT Handle = 0x80072F89 + WININET_E_SEC_CERT_REVOKED Handle = 0x80072F8A + WININET_E_FAILED_DUETOSECURITYCHECK Handle = 0x80072F8B + WININET_E_NOT_INITIALIZED Handle = 0x80072F8C + WININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY Handle = 0x80072F8E + WININET_E_DECODING_FAILED Handle = 0x80072F8F + WININET_E_NOT_REDIRECTED Handle = 0x80072F80 + WININET_E_COOKIE_NEEDS_CONFIRMATION Handle = 0x80072F81 + WININET_E_COOKIE_DECLINED Handle = 0x80072F82 + WININET_E_REDIRECT_NEEDS_CONFIRMATION Handle = 0x80072F88 + SQLITE_E_ERROR Handle = 0x87AF0001 + SQLITE_E_INTERNAL Handle = 0x87AF0002 + SQLITE_E_PERM Handle = 0x87AF0003 + SQLITE_E_ABORT Handle = 0x87AF0004 + SQLITE_E_BUSY Handle = 0x87AF0005 + SQLITE_E_LOCKED Handle = 0x87AF0006 + SQLITE_E_NOMEM Handle = 0x87AF0007 + SQLITE_E_READONLY Handle = 0x87AF0008 + SQLITE_E_INTERRUPT Handle = 0x87AF0009 + SQLITE_E_IOERR Handle = 0x87AF000A + SQLITE_E_CORRUPT Handle = 0x87AF000B + SQLITE_E_NOTFOUND Handle = 0x87AF000C + SQLITE_E_FULL Handle = 0x87AF000D + SQLITE_E_CANTOPEN Handle = 0x87AF000E + SQLITE_E_PROTOCOL Handle = 0x87AF000F + SQLITE_E_EMPTY Handle = 0x87AF0010 + SQLITE_E_SCHEMA Handle = 0x87AF0011 + SQLITE_E_TOOBIG Handle = 0x87AF0012 + SQLITE_E_CONSTRAINT Handle = 0x87AF0013 + SQLITE_E_MISMATCH Handle = 0x87AF0014 + SQLITE_E_MISUSE Handle = 0x87AF0015 + SQLITE_E_NOLFS Handle = 0x87AF0016 + SQLITE_E_AUTH Handle = 0x87AF0017 + SQLITE_E_FORMAT Handle = 0x87AF0018 + SQLITE_E_RANGE Handle = 0x87AF0019 + SQLITE_E_NOTADB Handle = 0x87AF001A + SQLITE_E_NOTICE Handle = 0x87AF001B + SQLITE_E_WARNING Handle = 0x87AF001C + SQLITE_E_ROW Handle = 0x87AF0064 + SQLITE_E_DONE Handle = 0x87AF0065 + SQLITE_E_IOERR_READ Handle = 0x87AF010A + SQLITE_E_IOERR_SHORT_READ Handle = 0x87AF020A + SQLITE_E_IOERR_WRITE Handle = 0x87AF030A + SQLITE_E_IOERR_FSYNC Handle = 0x87AF040A + SQLITE_E_IOERR_DIR_FSYNC Handle = 0x87AF050A + SQLITE_E_IOERR_TRUNCATE Handle = 0x87AF060A + SQLITE_E_IOERR_FSTAT Handle = 0x87AF070A + SQLITE_E_IOERR_UNLOCK Handle = 0x87AF080A + SQLITE_E_IOERR_RDLOCK Handle = 0x87AF090A + SQLITE_E_IOERR_DELETE Handle = 0x87AF0A0A + SQLITE_E_IOERR_BLOCKED Handle = 0x87AF0B0A + SQLITE_E_IOERR_NOMEM Handle = 0x87AF0C0A + SQLITE_E_IOERR_ACCESS Handle = 0x87AF0D0A + SQLITE_E_IOERR_CHECKRESERVEDLOCK Handle = 0x87AF0E0A + SQLITE_E_IOERR_LOCK Handle = 0x87AF0F0A + SQLITE_E_IOERR_CLOSE Handle = 0x87AF100A + SQLITE_E_IOERR_DIR_CLOSE Handle = 0x87AF110A + SQLITE_E_IOERR_SHMOPEN Handle = 0x87AF120A + SQLITE_E_IOERR_SHMSIZE Handle = 0x87AF130A + SQLITE_E_IOERR_SHMLOCK Handle = 0x87AF140A + SQLITE_E_IOERR_SHMMAP Handle = 0x87AF150A + SQLITE_E_IOERR_SEEK Handle = 0x87AF160A + SQLITE_E_IOERR_DELETE_NOENT Handle = 0x87AF170A + SQLITE_E_IOERR_MMAP Handle = 0x87AF180A + SQLITE_E_IOERR_GETTEMPPATH Handle = 0x87AF190A + SQLITE_E_IOERR_CONVPATH Handle = 0x87AF1A0A + SQLITE_E_IOERR_VNODE Handle = 0x87AF1A02 + SQLITE_E_IOERR_AUTH Handle = 0x87AF1A03 + SQLITE_E_LOCKED_SHAREDCACHE Handle = 0x87AF0106 + SQLITE_E_BUSY_RECOVERY Handle = 0x87AF0105 + SQLITE_E_BUSY_SNAPSHOT Handle = 0x87AF0205 + SQLITE_E_CANTOPEN_NOTEMPDIR Handle = 0x87AF010E + SQLITE_E_CANTOPEN_ISDIR Handle = 0x87AF020E + SQLITE_E_CANTOPEN_FULLPATH Handle = 0x87AF030E + SQLITE_E_CANTOPEN_CONVPATH Handle = 0x87AF040E + SQLITE_E_CORRUPT_VTAB Handle = 0x87AF010B + SQLITE_E_READONLY_RECOVERY Handle = 0x87AF0108 + SQLITE_E_READONLY_CANTLOCK Handle = 0x87AF0208 + SQLITE_E_READONLY_ROLLBACK Handle = 0x87AF0308 + SQLITE_E_READONLY_DBMOVED Handle = 0x87AF0408 + SQLITE_E_ABORT_ROLLBACK Handle = 0x87AF0204 + SQLITE_E_CONSTRAINT_CHECK Handle = 0x87AF0113 + SQLITE_E_CONSTRAINT_COMMITHOOK Handle = 0x87AF0213 + SQLITE_E_CONSTRAINT_FOREIGNKEY Handle = 0x87AF0313 + SQLITE_E_CONSTRAINT_FUNCTION Handle = 0x87AF0413 + SQLITE_E_CONSTRAINT_NOTNULL Handle = 0x87AF0513 + SQLITE_E_CONSTRAINT_PRIMARYKEY Handle = 0x87AF0613 + SQLITE_E_CONSTRAINT_TRIGGER Handle = 0x87AF0713 + SQLITE_E_CONSTRAINT_UNIQUE Handle = 0x87AF0813 + SQLITE_E_CONSTRAINT_VTAB Handle = 0x87AF0913 + SQLITE_E_CONSTRAINT_ROWID Handle = 0x87AF0A13 + SQLITE_E_NOTICE_RECOVER_WAL Handle = 0x87AF011B + SQLITE_E_NOTICE_RECOVER_ROLLBACK Handle = 0x87AF021B + SQLITE_E_WARNING_AUTOINDEX Handle = 0x87AF011C + UTC_E_TOGGLE_TRACE_STARTED Handle = 0x87C51001 + UTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT Handle = 0x87C51002 + UTC_E_AOT_NOT_RUNNING Handle = 0x87C51003 + UTC_E_SCRIPT_TYPE_INVALID Handle = 0x87C51004 + UTC_E_SCENARIODEF_NOT_FOUND Handle = 0x87C51005 + UTC_E_TRACEPROFILE_NOT_FOUND Handle = 0x87C51006 + UTC_E_FORWARDER_ALREADY_ENABLED Handle = 0x87C51007 + UTC_E_FORWARDER_ALREADY_DISABLED Handle = 0x87C51008 + UTC_E_EVENTLOG_ENTRY_MALFORMED Handle = 0x87C51009 + UTC_E_DIAGRULES_SCHEMAVERSION_MISMATCH Handle = 0x87C5100A + UTC_E_SCRIPT_TERMINATED Handle = 0x87C5100B + UTC_E_INVALID_CUSTOM_FILTER Handle = 0x87C5100C + UTC_E_TRACE_NOT_RUNNING Handle = 0x87C5100D + UTC_E_REESCALATED_TOO_QUICKLY Handle = 0x87C5100E + UTC_E_ESCALATION_ALREADY_RUNNING Handle = 0x87C5100F + UTC_E_PERFTRACK_ALREADY_TRACING Handle = 0x87C51010 + UTC_E_REACHED_MAX_ESCALATIONS Handle = 0x87C51011 + UTC_E_FORWARDER_PRODUCER_MISMATCH Handle = 0x87C51012 + UTC_E_INTENTIONAL_SCRIPT_FAILURE Handle = 0x87C51013 + UTC_E_SQM_INIT_FAILED Handle = 0x87C51014 + UTC_E_NO_WER_LOGGER_SUPPORTED Handle = 0x87C51015 + UTC_E_TRACERS_DONT_EXIST Handle = 0x87C51016 + UTC_E_WINRT_INIT_FAILED Handle = 0x87C51017 + UTC_E_SCENARIODEF_SCHEMAVERSION_MISMATCH Handle = 0x87C51018 + UTC_E_INVALID_FILTER Handle = 0x87C51019 + UTC_E_EXE_TERMINATED Handle = 0x87C5101A + UTC_E_ESCALATION_NOT_AUTHORIZED Handle = 0x87C5101B + UTC_E_SETUP_NOT_AUTHORIZED Handle = 0x87C5101C + UTC_E_CHILD_PROCESS_FAILED Handle = 0x87C5101D + UTC_E_COMMAND_LINE_NOT_AUTHORIZED Handle = 0x87C5101E + UTC_E_CANNOT_LOAD_SCENARIO_EDITOR_XML Handle = 0x87C5101F + UTC_E_ESCALATION_TIMED_OUT Handle = 0x87C51020 + UTC_E_SETUP_TIMED_OUT Handle = 0x87C51021 + UTC_E_TRIGGER_MISMATCH Handle = 0x87C51022 + UTC_E_TRIGGER_NOT_FOUND Handle = 0x87C51023 + UTC_E_SIF_NOT_SUPPORTED Handle = 0x87C51024 + UTC_E_DELAY_TERMINATED Handle = 0x87C51025 + UTC_E_DEVICE_TICKET_ERROR Handle = 0x87C51026 + UTC_E_TRACE_BUFFER_LIMIT_EXCEEDED Handle = 0x87C51027 + UTC_E_API_RESULT_UNAVAILABLE Handle = 0x87C51028 + UTC_E_RPC_TIMEOUT Handle = 0x87C51029 + UTC_E_RPC_WAIT_FAILED Handle = 0x87C5102A + UTC_E_API_BUSY Handle = 0x87C5102B + UTC_E_TRACE_MIN_DURATION_REQUIREMENT_NOT_MET Handle = 0x87C5102C + UTC_E_EXCLUSIVITY_NOT_AVAILABLE Handle = 0x87C5102D + UTC_E_GETFILE_FILE_PATH_NOT_APPROVED Handle = 0x87C5102E + UTC_E_ESCALATION_DIRECTORY_ALREADY_EXISTS Handle = 0x87C5102F + UTC_E_TIME_TRIGGER_ON_START_INVALID Handle = 0x87C51030 + UTC_E_TIME_TRIGGER_ONLY_VALID_ON_SINGLE_TRANSITION Handle = 0x87C51031 + UTC_E_TIME_TRIGGER_INVALID_TIME_RANGE Handle = 0x87C51032 + UTC_E_MULTIPLE_TIME_TRIGGER_ON_SINGLE_STATE Handle = 0x87C51033 + UTC_E_BINARY_MISSING Handle = 0x87C51034 + UTC_E_NETWORK_CAPTURE_NOT_ALLOWED Handle = 0x87C51035 + UTC_E_FAILED_TO_RESOLVE_CONTAINER_ID Handle = 0x87C51036 + UTC_E_UNABLE_TO_RESOLVE_SESSION Handle = 0x87C51037 + UTC_E_THROTTLED Handle = 0x87C51038 + UTC_E_UNAPPROVED_SCRIPT Handle = 0x87C51039 + UTC_E_SCRIPT_MISSING Handle = 0x87C5103A + UTC_E_SCENARIO_THROTTLED Handle = 0x87C5103B + UTC_E_API_NOT_SUPPORTED Handle = 0x87C5103C + UTC_E_GETFILE_EXTERNAL_PATH_NOT_APPROVED Handle = 0x87C5103D + UTC_E_TRY_GET_SCENARIO_TIMEOUT_EXCEEDED Handle = 0x87C5103E + UTC_E_CERT_REV_FAILED Handle = 0x87C5103F + UTC_E_FAILED_TO_START_NDISCAP Handle = 0x87C51040 + UTC_E_KERNELDUMP_LIMIT_REACHED Handle = 0x87C51041 + UTC_E_MISSING_AGGREGATE_EVENT_TAG Handle = 0x87C51042 + UTC_E_INVALID_AGGREGATION_STRUCT Handle = 0x87C51043 + UTC_E_ACTION_NOT_SUPPORTED_IN_DESTINATION Handle = 0x87C51044 + UTC_E_FILTER_MISSING_ATTRIBUTE Handle = 0x87C51045 + UTC_E_FILTER_INVALID_TYPE Handle = 0x87C51046 + UTC_E_FILTER_VARIABLE_NOT_FOUND Handle = 0x87C51047 + UTC_E_FILTER_FUNCTION_RESTRICTED Handle = 0x87C51048 + UTC_E_FILTER_VERSION_MISMATCH Handle = 0x87C51049 + UTC_E_FILTER_INVALID_FUNCTION Handle = 0x87C51050 + UTC_E_FILTER_INVALID_FUNCTION_PARAMS Handle = 0x87C51051 + UTC_E_FILTER_INVALID_COMMAND Handle = 0x87C51052 + UTC_E_FILTER_ILLEGAL_EVAL Handle = 0x87C51053 + UTC_E_TTTRACER_RETURNED_ERROR Handle = 0x87C51054 + UTC_E_AGENT_DIAGNOSTICS_TOO_LARGE Handle = 0x87C51055 + UTC_E_FAILED_TO_RECEIVE_AGENT_DIAGNOSTICS Handle = 0x87C51056 + UTC_E_SCENARIO_HAS_NO_ACTIONS Handle = 0x87C51057 + UTC_E_TTTRACER_STORAGE_FULL Handle = 0x87C51058 + UTC_E_INSUFFICIENT_SPACE_TO_START_TRACE Handle = 0x87C51059 + UTC_E_ESCALATION_CANCELLED_AT_SHUTDOWN Handle = 0x87C5105A + UTC_E_GETFILEINFOACTION_FILE_NOT_APPROVED Handle = 0x87C5105B + UTC_E_SETREGKEYACTION_TYPE_NOT_APPROVED Handle = 0x87C5105C + WINML_ERR_INVALID_DEVICE Handle = 0x88900001 + WINML_ERR_INVALID_BINDING Handle = 0x88900002 + WINML_ERR_VALUE_NOTFOUND Handle = 0x88900003 + WINML_ERR_SIZE_MISMATCH Handle = 0x88900004 + STATUS_WAIT_0 NTStatus = 0x00000000 + STATUS_SUCCESS NTStatus = 0x00000000 + STATUS_WAIT_1 NTStatus = 0x00000001 + STATUS_WAIT_2 NTStatus = 0x00000002 + STATUS_WAIT_3 NTStatus = 0x00000003 + STATUS_WAIT_63 NTStatus = 0x0000003F + STATUS_ABANDONED NTStatus = 0x00000080 + STATUS_ABANDONED_WAIT_0 NTStatus = 0x00000080 + STATUS_ABANDONED_WAIT_63 NTStatus = 0x000000BF + STATUS_USER_APC NTStatus = 0x000000C0 + STATUS_ALREADY_COMPLETE NTStatus = 0x000000FF + STATUS_KERNEL_APC NTStatus = 0x00000100 + STATUS_ALERTED NTStatus = 0x00000101 + STATUS_TIMEOUT NTStatus = 0x00000102 + STATUS_PENDING NTStatus = 0x00000103 + STATUS_REPARSE NTStatus = 0x00000104 + STATUS_MORE_ENTRIES NTStatus = 0x00000105 + STATUS_NOT_ALL_ASSIGNED NTStatus = 0x00000106 + STATUS_SOME_NOT_MAPPED NTStatus = 0x00000107 + STATUS_OPLOCK_BREAK_IN_PROGRESS NTStatus = 0x00000108 + STATUS_VOLUME_MOUNTED NTStatus = 0x00000109 + STATUS_RXACT_COMMITTED NTStatus = 0x0000010A + STATUS_NOTIFY_CLEANUP NTStatus = 0x0000010B + STATUS_NOTIFY_ENUM_DIR NTStatus = 0x0000010C + STATUS_NO_QUOTAS_FOR_ACCOUNT NTStatus = 0x0000010D + STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED NTStatus = 0x0000010E + STATUS_PAGE_FAULT_TRANSITION NTStatus = 0x00000110 + STATUS_PAGE_FAULT_DEMAND_ZERO NTStatus = 0x00000111 + STATUS_PAGE_FAULT_COPY_ON_WRITE NTStatus = 0x00000112 + STATUS_PAGE_FAULT_GUARD_PAGE NTStatus = 0x00000113 + STATUS_PAGE_FAULT_PAGING_FILE NTStatus = 0x00000114 + STATUS_CACHE_PAGE_LOCKED NTStatus = 0x00000115 + STATUS_CRASH_DUMP NTStatus = 0x00000116 + STATUS_BUFFER_ALL_ZEROS NTStatus = 0x00000117 + STATUS_REPARSE_OBJECT NTStatus = 0x00000118 + STATUS_RESOURCE_REQUIREMENTS_CHANGED NTStatus = 0x00000119 + STATUS_TRANSLATION_COMPLETE NTStatus = 0x00000120 + STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY NTStatus = 0x00000121 + STATUS_NOTHING_TO_TERMINATE NTStatus = 0x00000122 + STATUS_PROCESS_NOT_IN_JOB NTStatus = 0x00000123 + STATUS_PROCESS_IN_JOB NTStatus = 0x00000124 + STATUS_VOLSNAP_HIBERNATE_READY NTStatus = 0x00000125 + STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY NTStatus = 0x00000126 + STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED NTStatus = 0x00000127 + STATUS_INTERRUPT_STILL_CONNECTED NTStatus = 0x00000128 + STATUS_PROCESS_CLONED NTStatus = 0x00000129 + STATUS_FILE_LOCKED_WITH_ONLY_READERS NTStatus = 0x0000012A + STATUS_FILE_LOCKED_WITH_WRITERS NTStatus = 0x0000012B + STATUS_VALID_IMAGE_HASH NTStatus = 0x0000012C + STATUS_VALID_CATALOG_HASH NTStatus = 0x0000012D + STATUS_VALID_STRONG_CODE_HASH NTStatus = 0x0000012E + STATUS_GHOSTED NTStatus = 0x0000012F + STATUS_DATA_OVERWRITTEN NTStatus = 0x00000130 + STATUS_RESOURCEMANAGER_READ_ONLY NTStatus = 0x00000202 + STATUS_RING_PREVIOUSLY_EMPTY NTStatus = 0x00000210 + STATUS_RING_PREVIOUSLY_FULL NTStatus = 0x00000211 + STATUS_RING_PREVIOUSLY_ABOVE_QUOTA NTStatus = 0x00000212 + STATUS_RING_NEWLY_EMPTY NTStatus = 0x00000213 + STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT NTStatus = 0x00000214 + STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE NTStatus = 0x00000215 + STATUS_OPLOCK_HANDLE_CLOSED NTStatus = 0x00000216 + STATUS_WAIT_FOR_OPLOCK NTStatus = 0x00000367 + STATUS_REPARSE_GLOBAL NTStatus = 0x00000368 + STATUS_FLT_IO_COMPLETE NTStatus = 0x001C0001 + STATUS_OBJECT_NAME_EXISTS NTStatus = 0x40000000 + STATUS_THREAD_WAS_SUSPENDED NTStatus = 0x40000001 + STATUS_WORKING_SET_LIMIT_RANGE NTStatus = 0x40000002 + STATUS_IMAGE_NOT_AT_BASE NTStatus = 0x40000003 + STATUS_RXACT_STATE_CREATED NTStatus = 0x40000004 + STATUS_SEGMENT_NOTIFICATION NTStatus = 0x40000005 + STATUS_LOCAL_USER_SESSION_KEY NTStatus = 0x40000006 + STATUS_BAD_CURRENT_DIRECTORY NTStatus = 0x40000007 + STATUS_SERIAL_MORE_WRITES NTStatus = 0x40000008 + STATUS_REGISTRY_RECOVERED NTStatus = 0x40000009 + STATUS_FT_READ_RECOVERY_FROM_BACKUP NTStatus = 0x4000000A + STATUS_FT_WRITE_RECOVERY NTStatus = 0x4000000B + STATUS_SERIAL_COUNTER_TIMEOUT NTStatus = 0x4000000C + STATUS_NULL_LM_PASSWORD NTStatus = 0x4000000D + STATUS_IMAGE_MACHINE_TYPE_MISMATCH NTStatus = 0x4000000E + STATUS_RECEIVE_PARTIAL NTStatus = 0x4000000F + STATUS_RECEIVE_EXPEDITED NTStatus = 0x40000010 + STATUS_RECEIVE_PARTIAL_EXPEDITED NTStatus = 0x40000011 + STATUS_EVENT_DONE NTStatus = 0x40000012 + STATUS_EVENT_PENDING NTStatus = 0x40000013 + STATUS_CHECKING_FILE_SYSTEM NTStatus = 0x40000014 + STATUS_FATAL_APP_EXIT NTStatus = 0x40000015 + STATUS_PREDEFINED_HANDLE NTStatus = 0x40000016 + STATUS_WAS_UNLOCKED NTStatus = 0x40000017 + STATUS_SERVICE_NOTIFICATION NTStatus = 0x40000018 + STATUS_WAS_LOCKED NTStatus = 0x40000019 + STATUS_LOG_HARD_ERROR NTStatus = 0x4000001A + STATUS_ALREADY_WIN32 NTStatus = 0x4000001B + STATUS_WX86_UNSIMULATE NTStatus = 0x4000001C + STATUS_WX86_CONTINUE NTStatus = 0x4000001D + STATUS_WX86_SINGLE_STEP NTStatus = 0x4000001E + STATUS_WX86_BREAKPOINT NTStatus = 0x4000001F + STATUS_WX86_EXCEPTION_CONTINUE NTStatus = 0x40000020 + STATUS_WX86_EXCEPTION_LASTCHANCE NTStatus = 0x40000021 + STATUS_WX86_EXCEPTION_CHAIN NTStatus = 0x40000022 + STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE NTStatus = 0x40000023 + STATUS_NO_YIELD_PERFORMED NTStatus = 0x40000024 + STATUS_TIMER_RESUME_IGNORED NTStatus = 0x40000025 + STATUS_ARBITRATION_UNHANDLED NTStatus = 0x40000026 + STATUS_CARDBUS_NOT_SUPPORTED NTStatus = 0x40000027 + STATUS_WX86_CREATEWX86TIB NTStatus = 0x40000028 + STATUS_MP_PROCESSOR_MISMATCH NTStatus = 0x40000029 + STATUS_HIBERNATED NTStatus = 0x4000002A + STATUS_RESUME_HIBERNATION NTStatus = 0x4000002B + STATUS_FIRMWARE_UPDATED NTStatus = 0x4000002C + STATUS_DRIVERS_LEAKING_LOCKED_PAGES NTStatus = 0x4000002D + STATUS_MESSAGE_RETRIEVED NTStatus = 0x4000002E + STATUS_SYSTEM_POWERSTATE_TRANSITION NTStatus = 0x4000002F + STATUS_ALPC_CHECK_COMPLETION_LIST NTStatus = 0x40000030 + STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION NTStatus = 0x40000031 + STATUS_ACCESS_AUDIT_BY_POLICY NTStatus = 0x40000032 + STATUS_ABANDON_HIBERFILE NTStatus = 0x40000033 + STATUS_BIZRULES_NOT_ENABLED NTStatus = 0x40000034 + STATUS_FT_READ_FROM_COPY NTStatus = 0x40000035 + STATUS_IMAGE_AT_DIFFERENT_BASE NTStatus = 0x40000036 + STATUS_PATCH_DEFERRED NTStatus = 0x40000037 + STATUS_HEURISTIC_DAMAGE_POSSIBLE NTStatus = 0x40190001 + STATUS_GUARD_PAGE_VIOLATION NTStatus = 0x80000001 + STATUS_DATATYPE_MISALIGNMENT NTStatus = 0x80000002 + STATUS_BREAKPOINT NTStatus = 0x80000003 + STATUS_SINGLE_STEP NTStatus = 0x80000004 + STATUS_BUFFER_OVERFLOW NTStatus = 0x80000005 + STATUS_NO_MORE_FILES NTStatus = 0x80000006 + STATUS_WAKE_SYSTEM_DEBUGGER NTStatus = 0x80000007 + STATUS_HANDLES_CLOSED NTStatus = 0x8000000A + STATUS_NO_INHERITANCE NTStatus = 0x8000000B + STATUS_GUID_SUBSTITUTION_MADE NTStatus = 0x8000000C + STATUS_PARTIAL_COPY NTStatus = 0x8000000D + STATUS_DEVICE_PAPER_EMPTY NTStatus = 0x8000000E + STATUS_DEVICE_POWERED_OFF NTStatus = 0x8000000F + STATUS_DEVICE_OFF_LINE NTStatus = 0x80000010 + STATUS_DEVICE_BUSY NTStatus = 0x80000011 + STATUS_NO_MORE_EAS NTStatus = 0x80000012 + STATUS_INVALID_EA_NAME NTStatus = 0x80000013 + STATUS_EA_LIST_INCONSISTENT NTStatus = 0x80000014 + STATUS_INVALID_EA_FLAG NTStatus = 0x80000015 + STATUS_VERIFY_REQUIRED NTStatus = 0x80000016 + STATUS_EXTRANEOUS_INFORMATION NTStatus = 0x80000017 + STATUS_RXACT_COMMIT_NECESSARY NTStatus = 0x80000018 + STATUS_NO_MORE_ENTRIES NTStatus = 0x8000001A + STATUS_FILEMARK_DETECTED NTStatus = 0x8000001B + STATUS_MEDIA_CHANGED NTStatus = 0x8000001C + STATUS_BUS_RESET NTStatus = 0x8000001D + STATUS_END_OF_MEDIA NTStatus = 0x8000001E + STATUS_BEGINNING_OF_MEDIA NTStatus = 0x8000001F + STATUS_MEDIA_CHECK NTStatus = 0x80000020 + STATUS_SETMARK_DETECTED NTStatus = 0x80000021 + STATUS_NO_DATA_DETECTED NTStatus = 0x80000022 + STATUS_REDIRECTOR_HAS_OPEN_HANDLES NTStatus = 0x80000023 + STATUS_SERVER_HAS_OPEN_HANDLES NTStatus = 0x80000024 + STATUS_ALREADY_DISCONNECTED NTStatus = 0x80000025 + STATUS_LONGJUMP NTStatus = 0x80000026 + STATUS_CLEANER_CARTRIDGE_INSTALLED NTStatus = 0x80000027 + STATUS_PLUGPLAY_QUERY_VETOED NTStatus = 0x80000028 + STATUS_UNWIND_CONSOLIDATE NTStatus = 0x80000029 + STATUS_REGISTRY_HIVE_RECOVERED NTStatus = 0x8000002A + STATUS_DLL_MIGHT_BE_INSECURE NTStatus = 0x8000002B + STATUS_DLL_MIGHT_BE_INCOMPATIBLE NTStatus = 0x8000002C + STATUS_STOPPED_ON_SYMLINK NTStatus = 0x8000002D + STATUS_CANNOT_GRANT_REQUESTED_OPLOCK NTStatus = 0x8000002E + STATUS_NO_ACE_CONDITION NTStatus = 0x8000002F + STATUS_DEVICE_SUPPORT_IN_PROGRESS NTStatus = 0x80000030 + STATUS_DEVICE_POWER_CYCLE_REQUIRED NTStatus = 0x80000031 + STATUS_NO_WORK_DONE NTStatus = 0x80000032 + STATUS_CLUSTER_NODE_ALREADY_UP NTStatus = 0x80130001 + STATUS_CLUSTER_NODE_ALREADY_DOWN NTStatus = 0x80130002 + STATUS_CLUSTER_NETWORK_ALREADY_ONLINE NTStatus = 0x80130003 + STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE NTStatus = 0x80130004 + STATUS_CLUSTER_NODE_ALREADY_MEMBER NTStatus = 0x80130005 + STATUS_FLT_BUFFER_TOO_SMALL NTStatus = 0x801C0001 + STATUS_FVE_PARTIAL_METADATA NTStatus = 0x80210001 + STATUS_FVE_TRANSIENT_STATE NTStatus = 0x80210002 + STATUS_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH NTStatus = 0x8000CF00 + STATUS_UNSUCCESSFUL NTStatus = 0xC0000001 + STATUS_NOT_IMPLEMENTED NTStatus = 0xC0000002 + STATUS_INVALID_INFO_CLASS NTStatus = 0xC0000003 + STATUS_INFO_LENGTH_MISMATCH NTStatus = 0xC0000004 + STATUS_ACCESS_VIOLATION NTStatus = 0xC0000005 + STATUS_IN_PAGE_ERROR NTStatus = 0xC0000006 + STATUS_PAGEFILE_QUOTA NTStatus = 0xC0000007 + STATUS_INVALID_HANDLE NTStatus = 0xC0000008 + STATUS_BAD_INITIAL_STACK NTStatus = 0xC0000009 + STATUS_BAD_INITIAL_PC NTStatus = 0xC000000A + STATUS_INVALID_CID NTStatus = 0xC000000B + STATUS_TIMER_NOT_CANCELED NTStatus = 0xC000000C + STATUS_INVALID_PARAMETER NTStatus = 0xC000000D + STATUS_NO_SUCH_DEVICE NTStatus = 0xC000000E + STATUS_NO_SUCH_FILE NTStatus = 0xC000000F + STATUS_INVALID_DEVICE_REQUEST NTStatus = 0xC0000010 + STATUS_END_OF_FILE NTStatus = 0xC0000011 + STATUS_WRONG_VOLUME NTStatus = 0xC0000012 + STATUS_NO_MEDIA_IN_DEVICE NTStatus = 0xC0000013 + STATUS_UNRECOGNIZED_MEDIA NTStatus = 0xC0000014 + STATUS_NONEXISTENT_SECTOR NTStatus = 0xC0000015 + STATUS_MORE_PROCESSING_REQUIRED NTStatus = 0xC0000016 + STATUS_NO_MEMORY NTStatus = 0xC0000017 + STATUS_CONFLICTING_ADDRESSES NTStatus = 0xC0000018 + STATUS_NOT_MAPPED_VIEW NTStatus = 0xC0000019 + STATUS_UNABLE_TO_FREE_VM NTStatus = 0xC000001A + STATUS_UNABLE_TO_DELETE_SECTION NTStatus = 0xC000001B + STATUS_INVALID_SYSTEM_SERVICE NTStatus = 0xC000001C + STATUS_ILLEGAL_INSTRUCTION NTStatus = 0xC000001D + STATUS_INVALID_LOCK_SEQUENCE NTStatus = 0xC000001E + STATUS_INVALID_VIEW_SIZE NTStatus = 0xC000001F + STATUS_INVALID_FILE_FOR_SECTION NTStatus = 0xC0000020 + STATUS_ALREADY_COMMITTED NTStatus = 0xC0000021 + STATUS_ACCESS_DENIED NTStatus = 0xC0000022 + STATUS_BUFFER_TOO_SMALL NTStatus = 0xC0000023 + STATUS_OBJECT_TYPE_MISMATCH NTStatus = 0xC0000024 + STATUS_NONCONTINUABLE_EXCEPTION NTStatus = 0xC0000025 + STATUS_INVALID_DISPOSITION NTStatus = 0xC0000026 + STATUS_UNWIND NTStatus = 0xC0000027 + STATUS_BAD_STACK NTStatus = 0xC0000028 + STATUS_INVALID_UNWIND_TARGET NTStatus = 0xC0000029 + STATUS_NOT_LOCKED NTStatus = 0xC000002A + STATUS_PARITY_ERROR NTStatus = 0xC000002B + STATUS_UNABLE_TO_DECOMMIT_VM NTStatus = 0xC000002C + STATUS_NOT_COMMITTED NTStatus = 0xC000002D + STATUS_INVALID_PORT_ATTRIBUTES NTStatus = 0xC000002E + STATUS_PORT_MESSAGE_TOO_LONG NTStatus = 0xC000002F + STATUS_INVALID_PARAMETER_MIX NTStatus = 0xC0000030 + STATUS_INVALID_QUOTA_LOWER NTStatus = 0xC0000031 + STATUS_DISK_CORRUPT_ERROR NTStatus = 0xC0000032 + STATUS_OBJECT_NAME_INVALID NTStatus = 0xC0000033 + STATUS_OBJECT_NAME_NOT_FOUND NTStatus = 0xC0000034 + STATUS_OBJECT_NAME_COLLISION NTStatus = 0xC0000035 + STATUS_PORT_DO_NOT_DISTURB NTStatus = 0xC0000036 + STATUS_PORT_DISCONNECTED NTStatus = 0xC0000037 + STATUS_DEVICE_ALREADY_ATTACHED NTStatus = 0xC0000038 + STATUS_OBJECT_PATH_INVALID NTStatus = 0xC0000039 + STATUS_OBJECT_PATH_NOT_FOUND NTStatus = 0xC000003A + STATUS_OBJECT_PATH_SYNTAX_BAD NTStatus = 0xC000003B + STATUS_DATA_OVERRUN NTStatus = 0xC000003C + STATUS_DATA_LATE_ERROR NTStatus = 0xC000003D + STATUS_DATA_ERROR NTStatus = 0xC000003E + STATUS_CRC_ERROR NTStatus = 0xC000003F + STATUS_SECTION_TOO_BIG NTStatus = 0xC0000040 + STATUS_PORT_CONNECTION_REFUSED NTStatus = 0xC0000041 + STATUS_INVALID_PORT_HANDLE NTStatus = 0xC0000042 + STATUS_SHARING_VIOLATION NTStatus = 0xC0000043 + STATUS_QUOTA_EXCEEDED NTStatus = 0xC0000044 + STATUS_INVALID_PAGE_PROTECTION NTStatus = 0xC0000045 + STATUS_MUTANT_NOT_OWNED NTStatus = 0xC0000046 + STATUS_SEMAPHORE_LIMIT_EXCEEDED NTStatus = 0xC0000047 + STATUS_PORT_ALREADY_SET NTStatus = 0xC0000048 + STATUS_SECTION_NOT_IMAGE NTStatus = 0xC0000049 + STATUS_SUSPEND_COUNT_EXCEEDED NTStatus = 0xC000004A + STATUS_THREAD_IS_TERMINATING NTStatus = 0xC000004B + STATUS_BAD_WORKING_SET_LIMIT NTStatus = 0xC000004C + STATUS_INCOMPATIBLE_FILE_MAP NTStatus = 0xC000004D + STATUS_SECTION_PROTECTION NTStatus = 0xC000004E + STATUS_EAS_NOT_SUPPORTED NTStatus = 0xC000004F + STATUS_EA_TOO_LARGE NTStatus = 0xC0000050 + STATUS_NONEXISTENT_EA_ENTRY NTStatus = 0xC0000051 + STATUS_NO_EAS_ON_FILE NTStatus = 0xC0000052 + STATUS_EA_CORRUPT_ERROR NTStatus = 0xC0000053 + STATUS_FILE_LOCK_CONFLICT NTStatus = 0xC0000054 + STATUS_LOCK_NOT_GRANTED NTStatus = 0xC0000055 + STATUS_DELETE_PENDING NTStatus = 0xC0000056 + STATUS_CTL_FILE_NOT_SUPPORTED NTStatus = 0xC0000057 + STATUS_UNKNOWN_REVISION NTStatus = 0xC0000058 + STATUS_REVISION_MISMATCH NTStatus = 0xC0000059 + STATUS_INVALID_OWNER NTStatus = 0xC000005A + STATUS_INVALID_PRIMARY_GROUP NTStatus = 0xC000005B + STATUS_NO_IMPERSONATION_TOKEN NTStatus = 0xC000005C + STATUS_CANT_DISABLE_MANDATORY NTStatus = 0xC000005D + STATUS_NO_LOGON_SERVERS NTStatus = 0xC000005E + STATUS_NO_SUCH_LOGON_SESSION NTStatus = 0xC000005F + STATUS_NO_SUCH_PRIVILEGE NTStatus = 0xC0000060 + STATUS_PRIVILEGE_NOT_HELD NTStatus = 0xC0000061 + STATUS_INVALID_ACCOUNT_NAME NTStatus = 0xC0000062 + STATUS_USER_EXISTS NTStatus = 0xC0000063 + STATUS_NO_SUCH_USER NTStatus = 0xC0000064 + STATUS_GROUP_EXISTS NTStatus = 0xC0000065 + STATUS_NO_SUCH_GROUP NTStatus = 0xC0000066 + STATUS_MEMBER_IN_GROUP NTStatus = 0xC0000067 + STATUS_MEMBER_NOT_IN_GROUP NTStatus = 0xC0000068 + STATUS_LAST_ADMIN NTStatus = 0xC0000069 + STATUS_WRONG_PASSWORD NTStatus = 0xC000006A + STATUS_ILL_FORMED_PASSWORD NTStatus = 0xC000006B + STATUS_PASSWORD_RESTRICTION NTStatus = 0xC000006C + STATUS_LOGON_FAILURE NTStatus = 0xC000006D + STATUS_ACCOUNT_RESTRICTION NTStatus = 0xC000006E + STATUS_INVALID_LOGON_HOURS NTStatus = 0xC000006F + STATUS_INVALID_WORKSTATION NTStatus = 0xC0000070 + STATUS_PASSWORD_EXPIRED NTStatus = 0xC0000071 + STATUS_ACCOUNT_DISABLED NTStatus = 0xC0000072 + STATUS_NONE_MAPPED NTStatus = 0xC0000073 + STATUS_TOO_MANY_LUIDS_REQUESTED NTStatus = 0xC0000074 + STATUS_LUIDS_EXHAUSTED NTStatus = 0xC0000075 + STATUS_INVALID_SUB_AUTHORITY NTStatus = 0xC0000076 + STATUS_INVALID_ACL NTStatus = 0xC0000077 + STATUS_INVALID_SID NTStatus = 0xC0000078 + STATUS_INVALID_SECURITY_DESCR NTStatus = 0xC0000079 + STATUS_PROCEDURE_NOT_FOUND NTStatus = 0xC000007A + STATUS_INVALID_IMAGE_FORMAT NTStatus = 0xC000007B + STATUS_NO_TOKEN NTStatus = 0xC000007C + STATUS_BAD_INHERITANCE_ACL NTStatus = 0xC000007D + STATUS_RANGE_NOT_LOCKED NTStatus = 0xC000007E + STATUS_DISK_FULL NTStatus = 0xC000007F + STATUS_SERVER_DISABLED NTStatus = 0xC0000080 + STATUS_SERVER_NOT_DISABLED NTStatus = 0xC0000081 + STATUS_TOO_MANY_GUIDS_REQUESTED NTStatus = 0xC0000082 + STATUS_GUIDS_EXHAUSTED NTStatus = 0xC0000083 + STATUS_INVALID_ID_AUTHORITY NTStatus = 0xC0000084 + STATUS_AGENTS_EXHAUSTED NTStatus = 0xC0000085 + STATUS_INVALID_VOLUME_LABEL NTStatus = 0xC0000086 + STATUS_SECTION_NOT_EXTENDED NTStatus = 0xC0000087 + STATUS_NOT_MAPPED_DATA NTStatus = 0xC0000088 + STATUS_RESOURCE_DATA_NOT_FOUND NTStatus = 0xC0000089 + STATUS_RESOURCE_TYPE_NOT_FOUND NTStatus = 0xC000008A + STATUS_RESOURCE_NAME_NOT_FOUND NTStatus = 0xC000008B + STATUS_ARRAY_BOUNDS_EXCEEDED NTStatus = 0xC000008C + STATUS_FLOAT_DENORMAL_OPERAND NTStatus = 0xC000008D + STATUS_FLOAT_DIVIDE_BY_ZERO NTStatus = 0xC000008E + STATUS_FLOAT_INEXACT_RESULT NTStatus = 0xC000008F + STATUS_FLOAT_INVALID_OPERATION NTStatus = 0xC0000090 + STATUS_FLOAT_OVERFLOW NTStatus = 0xC0000091 + STATUS_FLOAT_STACK_CHECK NTStatus = 0xC0000092 + STATUS_FLOAT_UNDERFLOW NTStatus = 0xC0000093 + STATUS_INTEGER_DIVIDE_BY_ZERO NTStatus = 0xC0000094 + STATUS_INTEGER_OVERFLOW NTStatus = 0xC0000095 + STATUS_PRIVILEGED_INSTRUCTION NTStatus = 0xC0000096 + STATUS_TOO_MANY_PAGING_FILES NTStatus = 0xC0000097 + STATUS_FILE_INVALID NTStatus = 0xC0000098 + STATUS_ALLOTTED_SPACE_EXCEEDED NTStatus = 0xC0000099 + STATUS_INSUFFICIENT_RESOURCES NTStatus = 0xC000009A + STATUS_DFS_EXIT_PATH_FOUND NTStatus = 0xC000009B + STATUS_DEVICE_DATA_ERROR NTStatus = 0xC000009C + STATUS_DEVICE_NOT_CONNECTED NTStatus = 0xC000009D + STATUS_DEVICE_POWER_FAILURE NTStatus = 0xC000009E + STATUS_FREE_VM_NOT_AT_BASE NTStatus = 0xC000009F + STATUS_MEMORY_NOT_ALLOCATED NTStatus = 0xC00000A0 + STATUS_WORKING_SET_QUOTA NTStatus = 0xC00000A1 + STATUS_MEDIA_WRITE_PROTECTED NTStatus = 0xC00000A2 + STATUS_DEVICE_NOT_READY NTStatus = 0xC00000A3 + STATUS_INVALID_GROUP_ATTRIBUTES NTStatus = 0xC00000A4 + STATUS_BAD_IMPERSONATION_LEVEL NTStatus = 0xC00000A5 + STATUS_CANT_OPEN_ANONYMOUS NTStatus = 0xC00000A6 + STATUS_BAD_VALIDATION_CLASS NTStatus = 0xC00000A7 + STATUS_BAD_TOKEN_TYPE NTStatus = 0xC00000A8 + STATUS_BAD_MASTER_BOOT_RECORD NTStatus = 0xC00000A9 + STATUS_INSTRUCTION_MISALIGNMENT NTStatus = 0xC00000AA + STATUS_INSTANCE_NOT_AVAILABLE NTStatus = 0xC00000AB + STATUS_PIPE_NOT_AVAILABLE NTStatus = 0xC00000AC + STATUS_INVALID_PIPE_STATE NTStatus = 0xC00000AD + STATUS_PIPE_BUSY NTStatus = 0xC00000AE + STATUS_ILLEGAL_FUNCTION NTStatus = 0xC00000AF + STATUS_PIPE_DISCONNECTED NTStatus = 0xC00000B0 + STATUS_PIPE_CLOSING NTStatus = 0xC00000B1 + STATUS_PIPE_CONNECTED NTStatus = 0xC00000B2 + STATUS_PIPE_LISTENING NTStatus = 0xC00000B3 + STATUS_INVALID_READ_MODE NTStatus = 0xC00000B4 + STATUS_IO_TIMEOUT NTStatus = 0xC00000B5 + STATUS_FILE_FORCED_CLOSED NTStatus = 0xC00000B6 + STATUS_PROFILING_NOT_STARTED NTStatus = 0xC00000B7 + STATUS_PROFILING_NOT_STOPPED NTStatus = 0xC00000B8 + STATUS_COULD_NOT_INTERPRET NTStatus = 0xC00000B9 + STATUS_FILE_IS_A_DIRECTORY NTStatus = 0xC00000BA + STATUS_NOT_SUPPORTED NTStatus = 0xC00000BB + STATUS_REMOTE_NOT_LISTENING NTStatus = 0xC00000BC + STATUS_DUPLICATE_NAME NTStatus = 0xC00000BD + STATUS_BAD_NETWORK_PATH NTStatus = 0xC00000BE + STATUS_NETWORK_BUSY NTStatus = 0xC00000BF + STATUS_DEVICE_DOES_NOT_EXIST NTStatus = 0xC00000C0 + STATUS_TOO_MANY_COMMANDS NTStatus = 0xC00000C1 + STATUS_ADAPTER_HARDWARE_ERROR NTStatus = 0xC00000C2 + STATUS_INVALID_NETWORK_RESPONSE NTStatus = 0xC00000C3 + STATUS_UNEXPECTED_NETWORK_ERROR NTStatus = 0xC00000C4 + STATUS_BAD_REMOTE_ADAPTER NTStatus = 0xC00000C5 + STATUS_PRINT_QUEUE_FULL NTStatus = 0xC00000C6 + STATUS_NO_SPOOL_SPACE NTStatus = 0xC00000C7 + STATUS_PRINT_CANCELLED NTStatus = 0xC00000C8 + STATUS_NETWORK_NAME_DELETED NTStatus = 0xC00000C9 + STATUS_NETWORK_ACCESS_DENIED NTStatus = 0xC00000CA + STATUS_BAD_DEVICE_TYPE NTStatus = 0xC00000CB + STATUS_BAD_NETWORK_NAME NTStatus = 0xC00000CC + STATUS_TOO_MANY_NAMES NTStatus = 0xC00000CD + STATUS_TOO_MANY_SESSIONS NTStatus = 0xC00000CE + STATUS_SHARING_PAUSED NTStatus = 0xC00000CF + STATUS_REQUEST_NOT_ACCEPTED NTStatus = 0xC00000D0 + STATUS_REDIRECTOR_PAUSED NTStatus = 0xC00000D1 + STATUS_NET_WRITE_FAULT NTStatus = 0xC00000D2 + STATUS_PROFILING_AT_LIMIT NTStatus = 0xC00000D3 + STATUS_NOT_SAME_DEVICE NTStatus = 0xC00000D4 + STATUS_FILE_RENAMED NTStatus = 0xC00000D5 + STATUS_VIRTUAL_CIRCUIT_CLOSED NTStatus = 0xC00000D6 + STATUS_NO_SECURITY_ON_OBJECT NTStatus = 0xC00000D7 + STATUS_CANT_WAIT NTStatus = 0xC00000D8 + STATUS_PIPE_EMPTY NTStatus = 0xC00000D9 + STATUS_CANT_ACCESS_DOMAIN_INFO NTStatus = 0xC00000DA + STATUS_CANT_TERMINATE_SELF NTStatus = 0xC00000DB + STATUS_INVALID_SERVER_STATE NTStatus = 0xC00000DC + STATUS_INVALID_DOMAIN_STATE NTStatus = 0xC00000DD + STATUS_INVALID_DOMAIN_ROLE NTStatus = 0xC00000DE + STATUS_NO_SUCH_DOMAIN NTStatus = 0xC00000DF + STATUS_DOMAIN_EXISTS NTStatus = 0xC00000E0 + STATUS_DOMAIN_LIMIT_EXCEEDED NTStatus = 0xC00000E1 + STATUS_OPLOCK_NOT_GRANTED NTStatus = 0xC00000E2 + STATUS_INVALID_OPLOCK_PROTOCOL NTStatus = 0xC00000E3 + STATUS_INTERNAL_DB_CORRUPTION NTStatus = 0xC00000E4 + STATUS_INTERNAL_ERROR NTStatus = 0xC00000E5 + STATUS_GENERIC_NOT_MAPPED NTStatus = 0xC00000E6 + STATUS_BAD_DESCRIPTOR_FORMAT NTStatus = 0xC00000E7 + STATUS_INVALID_USER_BUFFER NTStatus = 0xC00000E8 + STATUS_UNEXPECTED_IO_ERROR NTStatus = 0xC00000E9 + STATUS_UNEXPECTED_MM_CREATE_ERR NTStatus = 0xC00000EA + STATUS_UNEXPECTED_MM_MAP_ERROR NTStatus = 0xC00000EB + STATUS_UNEXPECTED_MM_EXTEND_ERR NTStatus = 0xC00000EC + STATUS_NOT_LOGON_PROCESS NTStatus = 0xC00000ED + STATUS_LOGON_SESSION_EXISTS NTStatus = 0xC00000EE + STATUS_INVALID_PARAMETER_1 NTStatus = 0xC00000EF + STATUS_INVALID_PARAMETER_2 NTStatus = 0xC00000F0 + STATUS_INVALID_PARAMETER_3 NTStatus = 0xC00000F1 + STATUS_INVALID_PARAMETER_4 NTStatus = 0xC00000F2 + STATUS_INVALID_PARAMETER_5 NTStatus = 0xC00000F3 + STATUS_INVALID_PARAMETER_6 NTStatus = 0xC00000F4 + STATUS_INVALID_PARAMETER_7 NTStatus = 0xC00000F5 + STATUS_INVALID_PARAMETER_8 NTStatus = 0xC00000F6 + STATUS_INVALID_PARAMETER_9 NTStatus = 0xC00000F7 + STATUS_INVALID_PARAMETER_10 NTStatus = 0xC00000F8 + STATUS_INVALID_PARAMETER_11 NTStatus = 0xC00000F9 + STATUS_INVALID_PARAMETER_12 NTStatus = 0xC00000FA + STATUS_REDIRECTOR_NOT_STARTED NTStatus = 0xC00000FB + STATUS_REDIRECTOR_STARTED NTStatus = 0xC00000FC + STATUS_STACK_OVERFLOW NTStatus = 0xC00000FD + STATUS_NO_SUCH_PACKAGE NTStatus = 0xC00000FE + STATUS_BAD_FUNCTION_TABLE NTStatus = 0xC00000FF + STATUS_VARIABLE_NOT_FOUND NTStatus = 0xC0000100 + STATUS_DIRECTORY_NOT_EMPTY NTStatus = 0xC0000101 + STATUS_FILE_CORRUPT_ERROR NTStatus = 0xC0000102 + STATUS_NOT_A_DIRECTORY NTStatus = 0xC0000103 + STATUS_BAD_LOGON_SESSION_STATE NTStatus = 0xC0000104 + STATUS_LOGON_SESSION_COLLISION NTStatus = 0xC0000105 + STATUS_NAME_TOO_LONG NTStatus = 0xC0000106 + STATUS_FILES_OPEN NTStatus = 0xC0000107 + STATUS_CONNECTION_IN_USE NTStatus = 0xC0000108 + STATUS_MESSAGE_NOT_FOUND NTStatus = 0xC0000109 + STATUS_PROCESS_IS_TERMINATING NTStatus = 0xC000010A + STATUS_INVALID_LOGON_TYPE NTStatus = 0xC000010B + STATUS_NO_GUID_TRANSLATION NTStatus = 0xC000010C + STATUS_CANNOT_IMPERSONATE NTStatus = 0xC000010D + STATUS_IMAGE_ALREADY_LOADED NTStatus = 0xC000010E + STATUS_ABIOS_NOT_PRESENT NTStatus = 0xC000010F + STATUS_ABIOS_LID_NOT_EXIST NTStatus = 0xC0000110 + STATUS_ABIOS_LID_ALREADY_OWNED NTStatus = 0xC0000111 + STATUS_ABIOS_NOT_LID_OWNER NTStatus = 0xC0000112 + STATUS_ABIOS_INVALID_COMMAND NTStatus = 0xC0000113 + STATUS_ABIOS_INVALID_LID NTStatus = 0xC0000114 + STATUS_ABIOS_SELECTOR_NOT_AVAILABLE NTStatus = 0xC0000115 + STATUS_ABIOS_INVALID_SELECTOR NTStatus = 0xC0000116 + STATUS_NO_LDT NTStatus = 0xC0000117 + STATUS_INVALID_LDT_SIZE NTStatus = 0xC0000118 + STATUS_INVALID_LDT_OFFSET NTStatus = 0xC0000119 + STATUS_INVALID_LDT_DESCRIPTOR NTStatus = 0xC000011A + STATUS_INVALID_IMAGE_NE_FORMAT NTStatus = 0xC000011B + STATUS_RXACT_INVALID_STATE NTStatus = 0xC000011C + STATUS_RXACT_COMMIT_FAILURE NTStatus = 0xC000011D + STATUS_MAPPED_FILE_SIZE_ZERO NTStatus = 0xC000011E + STATUS_TOO_MANY_OPENED_FILES NTStatus = 0xC000011F + STATUS_CANCELLED NTStatus = 0xC0000120 + STATUS_CANNOT_DELETE NTStatus = 0xC0000121 + STATUS_INVALID_COMPUTER_NAME NTStatus = 0xC0000122 + STATUS_FILE_DELETED NTStatus = 0xC0000123 + STATUS_SPECIAL_ACCOUNT NTStatus = 0xC0000124 + STATUS_SPECIAL_GROUP NTStatus = 0xC0000125 + STATUS_SPECIAL_USER NTStatus = 0xC0000126 + STATUS_MEMBERS_PRIMARY_GROUP NTStatus = 0xC0000127 + STATUS_FILE_CLOSED NTStatus = 0xC0000128 + STATUS_TOO_MANY_THREADS NTStatus = 0xC0000129 + STATUS_THREAD_NOT_IN_PROCESS NTStatus = 0xC000012A + STATUS_TOKEN_ALREADY_IN_USE NTStatus = 0xC000012B + STATUS_PAGEFILE_QUOTA_EXCEEDED NTStatus = 0xC000012C + STATUS_COMMITMENT_LIMIT NTStatus = 0xC000012D + STATUS_INVALID_IMAGE_LE_FORMAT NTStatus = 0xC000012E + STATUS_INVALID_IMAGE_NOT_MZ NTStatus = 0xC000012F + STATUS_INVALID_IMAGE_PROTECT NTStatus = 0xC0000130 + STATUS_INVALID_IMAGE_WIN_16 NTStatus = 0xC0000131 + STATUS_LOGON_SERVER_CONFLICT NTStatus = 0xC0000132 + STATUS_TIME_DIFFERENCE_AT_DC NTStatus = 0xC0000133 + STATUS_SYNCHRONIZATION_REQUIRED NTStatus = 0xC0000134 + STATUS_DLL_NOT_FOUND NTStatus = 0xC0000135 + STATUS_OPEN_FAILED NTStatus = 0xC0000136 + STATUS_IO_PRIVILEGE_FAILED NTStatus = 0xC0000137 + STATUS_ORDINAL_NOT_FOUND NTStatus = 0xC0000138 + STATUS_ENTRYPOINT_NOT_FOUND NTStatus = 0xC0000139 + STATUS_CONTROL_C_EXIT NTStatus = 0xC000013A + STATUS_LOCAL_DISCONNECT NTStatus = 0xC000013B + STATUS_REMOTE_DISCONNECT NTStatus = 0xC000013C + STATUS_REMOTE_RESOURCES NTStatus = 0xC000013D + STATUS_LINK_FAILED NTStatus = 0xC000013E + STATUS_LINK_TIMEOUT NTStatus = 0xC000013F + STATUS_INVALID_CONNECTION NTStatus = 0xC0000140 + STATUS_INVALID_ADDRESS NTStatus = 0xC0000141 + STATUS_DLL_INIT_FAILED NTStatus = 0xC0000142 + STATUS_MISSING_SYSTEMFILE NTStatus = 0xC0000143 + STATUS_UNHANDLED_EXCEPTION NTStatus = 0xC0000144 + STATUS_APP_INIT_FAILURE NTStatus = 0xC0000145 + STATUS_PAGEFILE_CREATE_FAILED NTStatus = 0xC0000146 + STATUS_NO_PAGEFILE NTStatus = 0xC0000147 + STATUS_INVALID_LEVEL NTStatus = 0xC0000148 + STATUS_WRONG_PASSWORD_CORE NTStatus = 0xC0000149 + STATUS_ILLEGAL_FLOAT_CONTEXT NTStatus = 0xC000014A + STATUS_PIPE_BROKEN NTStatus = 0xC000014B + STATUS_REGISTRY_CORRUPT NTStatus = 0xC000014C + STATUS_REGISTRY_IO_FAILED NTStatus = 0xC000014D + STATUS_NO_EVENT_PAIR NTStatus = 0xC000014E + STATUS_UNRECOGNIZED_VOLUME NTStatus = 0xC000014F + STATUS_SERIAL_NO_DEVICE_INITED NTStatus = 0xC0000150 + STATUS_NO_SUCH_ALIAS NTStatus = 0xC0000151 + STATUS_MEMBER_NOT_IN_ALIAS NTStatus = 0xC0000152 + STATUS_MEMBER_IN_ALIAS NTStatus = 0xC0000153 + STATUS_ALIAS_EXISTS NTStatus = 0xC0000154 + STATUS_LOGON_NOT_GRANTED NTStatus = 0xC0000155 + STATUS_TOO_MANY_SECRETS NTStatus = 0xC0000156 + STATUS_SECRET_TOO_LONG NTStatus = 0xC0000157 + STATUS_INTERNAL_DB_ERROR NTStatus = 0xC0000158 + STATUS_FULLSCREEN_MODE NTStatus = 0xC0000159 + STATUS_TOO_MANY_CONTEXT_IDS NTStatus = 0xC000015A + STATUS_LOGON_TYPE_NOT_GRANTED NTStatus = 0xC000015B + STATUS_NOT_REGISTRY_FILE NTStatus = 0xC000015C + STATUS_NT_CROSS_ENCRYPTION_REQUIRED NTStatus = 0xC000015D + STATUS_DOMAIN_CTRLR_CONFIG_ERROR NTStatus = 0xC000015E + STATUS_FT_MISSING_MEMBER NTStatus = 0xC000015F + STATUS_ILL_FORMED_SERVICE_ENTRY NTStatus = 0xC0000160 + STATUS_ILLEGAL_CHARACTER NTStatus = 0xC0000161 + STATUS_UNMAPPABLE_CHARACTER NTStatus = 0xC0000162 + STATUS_UNDEFINED_CHARACTER NTStatus = 0xC0000163 + STATUS_FLOPPY_VOLUME NTStatus = 0xC0000164 + STATUS_FLOPPY_ID_MARK_NOT_FOUND NTStatus = 0xC0000165 + STATUS_FLOPPY_WRONG_CYLINDER NTStatus = 0xC0000166 + STATUS_FLOPPY_UNKNOWN_ERROR NTStatus = 0xC0000167 + STATUS_FLOPPY_BAD_REGISTERS NTStatus = 0xC0000168 + STATUS_DISK_RECALIBRATE_FAILED NTStatus = 0xC0000169 + STATUS_DISK_OPERATION_FAILED NTStatus = 0xC000016A + STATUS_DISK_RESET_FAILED NTStatus = 0xC000016B + STATUS_SHARED_IRQ_BUSY NTStatus = 0xC000016C + STATUS_FT_ORPHANING NTStatus = 0xC000016D + STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT NTStatus = 0xC000016E + STATUS_PARTITION_FAILURE NTStatus = 0xC0000172 + STATUS_INVALID_BLOCK_LENGTH NTStatus = 0xC0000173 + STATUS_DEVICE_NOT_PARTITIONED NTStatus = 0xC0000174 + STATUS_UNABLE_TO_LOCK_MEDIA NTStatus = 0xC0000175 + STATUS_UNABLE_TO_UNLOAD_MEDIA NTStatus = 0xC0000176 + STATUS_EOM_OVERFLOW NTStatus = 0xC0000177 + STATUS_NO_MEDIA NTStatus = 0xC0000178 + STATUS_NO_SUCH_MEMBER NTStatus = 0xC000017A + STATUS_INVALID_MEMBER NTStatus = 0xC000017B + STATUS_KEY_DELETED NTStatus = 0xC000017C + STATUS_NO_LOG_SPACE NTStatus = 0xC000017D + STATUS_TOO_MANY_SIDS NTStatus = 0xC000017E + STATUS_LM_CROSS_ENCRYPTION_REQUIRED NTStatus = 0xC000017F + STATUS_KEY_HAS_CHILDREN NTStatus = 0xC0000180 + STATUS_CHILD_MUST_BE_VOLATILE NTStatus = 0xC0000181 + STATUS_DEVICE_CONFIGURATION_ERROR NTStatus = 0xC0000182 + STATUS_DRIVER_INTERNAL_ERROR NTStatus = 0xC0000183 + STATUS_INVALID_DEVICE_STATE NTStatus = 0xC0000184 + STATUS_IO_DEVICE_ERROR NTStatus = 0xC0000185 + STATUS_DEVICE_PROTOCOL_ERROR NTStatus = 0xC0000186 + STATUS_BACKUP_CONTROLLER NTStatus = 0xC0000187 + STATUS_LOG_FILE_FULL NTStatus = 0xC0000188 + STATUS_TOO_LATE NTStatus = 0xC0000189 + STATUS_NO_TRUST_LSA_SECRET NTStatus = 0xC000018A + STATUS_NO_TRUST_SAM_ACCOUNT NTStatus = 0xC000018B + STATUS_TRUSTED_DOMAIN_FAILURE NTStatus = 0xC000018C + STATUS_TRUSTED_RELATIONSHIP_FAILURE NTStatus = 0xC000018D + STATUS_EVENTLOG_FILE_CORRUPT NTStatus = 0xC000018E + STATUS_EVENTLOG_CANT_START NTStatus = 0xC000018F + STATUS_TRUST_FAILURE NTStatus = 0xC0000190 + STATUS_MUTANT_LIMIT_EXCEEDED NTStatus = 0xC0000191 + STATUS_NETLOGON_NOT_STARTED NTStatus = 0xC0000192 + STATUS_ACCOUNT_EXPIRED NTStatus = 0xC0000193 + STATUS_POSSIBLE_DEADLOCK NTStatus = 0xC0000194 + STATUS_NETWORK_CREDENTIAL_CONFLICT NTStatus = 0xC0000195 + STATUS_REMOTE_SESSION_LIMIT NTStatus = 0xC0000196 + STATUS_EVENTLOG_FILE_CHANGED NTStatus = 0xC0000197 + STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT NTStatus = 0xC0000198 + STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT NTStatus = 0xC0000199 + STATUS_NOLOGON_SERVER_TRUST_ACCOUNT NTStatus = 0xC000019A + STATUS_DOMAIN_TRUST_INCONSISTENT NTStatus = 0xC000019B + STATUS_FS_DRIVER_REQUIRED NTStatus = 0xC000019C + STATUS_IMAGE_ALREADY_LOADED_AS_DLL NTStatus = 0xC000019D + STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING NTStatus = 0xC000019E + STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME NTStatus = 0xC000019F + STATUS_SECURITY_STREAM_IS_INCONSISTENT NTStatus = 0xC00001A0 + STATUS_INVALID_LOCK_RANGE NTStatus = 0xC00001A1 + STATUS_INVALID_ACE_CONDITION NTStatus = 0xC00001A2 + STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT NTStatus = 0xC00001A3 + STATUS_NOTIFICATION_GUID_ALREADY_DEFINED NTStatus = 0xC00001A4 + STATUS_INVALID_EXCEPTION_HANDLER NTStatus = 0xC00001A5 + STATUS_DUPLICATE_PRIVILEGES NTStatus = 0xC00001A6 + STATUS_NOT_ALLOWED_ON_SYSTEM_FILE NTStatus = 0xC00001A7 + STATUS_REPAIR_NEEDED NTStatus = 0xC00001A8 + STATUS_QUOTA_NOT_ENABLED NTStatus = 0xC00001A9 + STATUS_NO_APPLICATION_PACKAGE NTStatus = 0xC00001AA + STATUS_FILE_METADATA_OPTIMIZATION_IN_PROGRESS NTStatus = 0xC00001AB + STATUS_NOT_SAME_OBJECT NTStatus = 0xC00001AC + STATUS_FATAL_MEMORY_EXHAUSTION NTStatus = 0xC00001AD + STATUS_ERROR_PROCESS_NOT_IN_JOB NTStatus = 0xC00001AE + STATUS_CPU_SET_INVALID NTStatus = 0xC00001AF + STATUS_IO_DEVICE_INVALID_DATA NTStatus = 0xC00001B0 + STATUS_IO_UNALIGNED_WRITE NTStatus = 0xC00001B1 + STATUS_NETWORK_OPEN_RESTRICTION NTStatus = 0xC0000201 + STATUS_NO_USER_SESSION_KEY NTStatus = 0xC0000202 + STATUS_USER_SESSION_DELETED NTStatus = 0xC0000203 + STATUS_RESOURCE_LANG_NOT_FOUND NTStatus = 0xC0000204 + STATUS_INSUFF_SERVER_RESOURCES NTStatus = 0xC0000205 + STATUS_INVALID_BUFFER_SIZE NTStatus = 0xC0000206 + STATUS_INVALID_ADDRESS_COMPONENT NTStatus = 0xC0000207 + STATUS_INVALID_ADDRESS_WILDCARD NTStatus = 0xC0000208 + STATUS_TOO_MANY_ADDRESSES NTStatus = 0xC0000209 + STATUS_ADDRESS_ALREADY_EXISTS NTStatus = 0xC000020A + STATUS_ADDRESS_CLOSED NTStatus = 0xC000020B + STATUS_CONNECTION_DISCONNECTED NTStatus = 0xC000020C + STATUS_CONNECTION_RESET NTStatus = 0xC000020D + STATUS_TOO_MANY_NODES NTStatus = 0xC000020E + STATUS_TRANSACTION_ABORTED NTStatus = 0xC000020F + STATUS_TRANSACTION_TIMED_OUT NTStatus = 0xC0000210 + STATUS_TRANSACTION_NO_RELEASE NTStatus = 0xC0000211 + STATUS_TRANSACTION_NO_MATCH NTStatus = 0xC0000212 + STATUS_TRANSACTION_RESPONDED NTStatus = 0xC0000213 + STATUS_TRANSACTION_INVALID_ID NTStatus = 0xC0000214 + STATUS_TRANSACTION_INVALID_TYPE NTStatus = 0xC0000215 + STATUS_NOT_SERVER_SESSION NTStatus = 0xC0000216 + STATUS_NOT_CLIENT_SESSION NTStatus = 0xC0000217 + STATUS_CANNOT_LOAD_REGISTRY_FILE NTStatus = 0xC0000218 + STATUS_DEBUG_ATTACH_FAILED NTStatus = 0xC0000219 + STATUS_SYSTEM_PROCESS_TERMINATED NTStatus = 0xC000021A + STATUS_DATA_NOT_ACCEPTED NTStatus = 0xC000021B + STATUS_NO_BROWSER_SERVERS_FOUND NTStatus = 0xC000021C + STATUS_VDM_HARD_ERROR NTStatus = 0xC000021D + STATUS_DRIVER_CANCEL_TIMEOUT NTStatus = 0xC000021E + STATUS_REPLY_MESSAGE_MISMATCH NTStatus = 0xC000021F + STATUS_MAPPED_ALIGNMENT NTStatus = 0xC0000220 + STATUS_IMAGE_CHECKSUM_MISMATCH NTStatus = 0xC0000221 + STATUS_LOST_WRITEBEHIND_DATA NTStatus = 0xC0000222 + STATUS_CLIENT_SERVER_PARAMETERS_INVALID NTStatus = 0xC0000223 + STATUS_PASSWORD_MUST_CHANGE NTStatus = 0xC0000224 + STATUS_NOT_FOUND NTStatus = 0xC0000225 + STATUS_NOT_TINY_STREAM NTStatus = 0xC0000226 + STATUS_RECOVERY_FAILURE NTStatus = 0xC0000227 + STATUS_STACK_OVERFLOW_READ NTStatus = 0xC0000228 + STATUS_FAIL_CHECK NTStatus = 0xC0000229 + STATUS_DUPLICATE_OBJECTID NTStatus = 0xC000022A + STATUS_OBJECTID_EXISTS NTStatus = 0xC000022B + STATUS_CONVERT_TO_LARGE NTStatus = 0xC000022C + STATUS_RETRY NTStatus = 0xC000022D + STATUS_FOUND_OUT_OF_SCOPE NTStatus = 0xC000022E + STATUS_ALLOCATE_BUCKET NTStatus = 0xC000022F + STATUS_PROPSET_NOT_FOUND NTStatus = 0xC0000230 + STATUS_MARSHALL_OVERFLOW NTStatus = 0xC0000231 + STATUS_INVALID_VARIANT NTStatus = 0xC0000232 + STATUS_DOMAIN_CONTROLLER_NOT_FOUND NTStatus = 0xC0000233 + STATUS_ACCOUNT_LOCKED_OUT NTStatus = 0xC0000234 + STATUS_HANDLE_NOT_CLOSABLE NTStatus = 0xC0000235 + STATUS_CONNECTION_REFUSED NTStatus = 0xC0000236 + STATUS_GRACEFUL_DISCONNECT NTStatus = 0xC0000237 + STATUS_ADDRESS_ALREADY_ASSOCIATED NTStatus = 0xC0000238 + STATUS_ADDRESS_NOT_ASSOCIATED NTStatus = 0xC0000239 + STATUS_CONNECTION_INVALID NTStatus = 0xC000023A + STATUS_CONNECTION_ACTIVE NTStatus = 0xC000023B + STATUS_NETWORK_UNREACHABLE NTStatus = 0xC000023C + STATUS_HOST_UNREACHABLE NTStatus = 0xC000023D + STATUS_PROTOCOL_UNREACHABLE NTStatus = 0xC000023E + STATUS_PORT_UNREACHABLE NTStatus = 0xC000023F + STATUS_REQUEST_ABORTED NTStatus = 0xC0000240 + STATUS_CONNECTION_ABORTED NTStatus = 0xC0000241 + STATUS_BAD_COMPRESSION_BUFFER NTStatus = 0xC0000242 + STATUS_USER_MAPPED_FILE NTStatus = 0xC0000243 + STATUS_AUDIT_FAILED NTStatus = 0xC0000244 + STATUS_TIMER_RESOLUTION_NOT_SET NTStatus = 0xC0000245 + STATUS_CONNECTION_COUNT_LIMIT NTStatus = 0xC0000246 + STATUS_LOGIN_TIME_RESTRICTION NTStatus = 0xC0000247 + STATUS_LOGIN_WKSTA_RESTRICTION NTStatus = 0xC0000248 + STATUS_IMAGE_MP_UP_MISMATCH NTStatus = 0xC0000249 + STATUS_INSUFFICIENT_LOGON_INFO NTStatus = 0xC0000250 + STATUS_BAD_DLL_ENTRYPOINT NTStatus = 0xC0000251 + STATUS_BAD_SERVICE_ENTRYPOINT NTStatus = 0xC0000252 + STATUS_LPC_REPLY_LOST NTStatus = 0xC0000253 + STATUS_IP_ADDRESS_CONFLICT1 NTStatus = 0xC0000254 + STATUS_IP_ADDRESS_CONFLICT2 NTStatus = 0xC0000255 + STATUS_REGISTRY_QUOTA_LIMIT NTStatus = 0xC0000256 + STATUS_PATH_NOT_COVERED NTStatus = 0xC0000257 + STATUS_NO_CALLBACK_ACTIVE NTStatus = 0xC0000258 + STATUS_LICENSE_QUOTA_EXCEEDED NTStatus = 0xC0000259 + STATUS_PWD_TOO_SHORT NTStatus = 0xC000025A + STATUS_PWD_TOO_RECENT NTStatus = 0xC000025B + STATUS_PWD_HISTORY_CONFLICT NTStatus = 0xC000025C + STATUS_PLUGPLAY_NO_DEVICE NTStatus = 0xC000025E + STATUS_UNSUPPORTED_COMPRESSION NTStatus = 0xC000025F + STATUS_INVALID_HW_PROFILE NTStatus = 0xC0000260 + STATUS_INVALID_PLUGPLAY_DEVICE_PATH NTStatus = 0xC0000261 + STATUS_DRIVER_ORDINAL_NOT_FOUND NTStatus = 0xC0000262 + STATUS_DRIVER_ENTRYPOINT_NOT_FOUND NTStatus = 0xC0000263 + STATUS_RESOURCE_NOT_OWNED NTStatus = 0xC0000264 + STATUS_TOO_MANY_LINKS NTStatus = 0xC0000265 + STATUS_QUOTA_LIST_INCONSISTENT NTStatus = 0xC0000266 + STATUS_FILE_IS_OFFLINE NTStatus = 0xC0000267 + STATUS_EVALUATION_EXPIRATION NTStatus = 0xC0000268 + STATUS_ILLEGAL_DLL_RELOCATION NTStatus = 0xC0000269 + STATUS_LICENSE_VIOLATION NTStatus = 0xC000026A + STATUS_DLL_INIT_FAILED_LOGOFF NTStatus = 0xC000026B + STATUS_DRIVER_UNABLE_TO_LOAD NTStatus = 0xC000026C + STATUS_DFS_UNAVAILABLE NTStatus = 0xC000026D + STATUS_VOLUME_DISMOUNTED NTStatus = 0xC000026E + STATUS_WX86_INTERNAL_ERROR NTStatus = 0xC000026F + STATUS_WX86_FLOAT_STACK_CHECK NTStatus = 0xC0000270 + STATUS_VALIDATE_CONTINUE NTStatus = 0xC0000271 + STATUS_NO_MATCH NTStatus = 0xC0000272 + STATUS_NO_MORE_MATCHES NTStatus = 0xC0000273 + STATUS_NOT_A_REPARSE_POINT NTStatus = 0xC0000275 + STATUS_IO_REPARSE_TAG_INVALID NTStatus = 0xC0000276 + STATUS_IO_REPARSE_TAG_MISMATCH NTStatus = 0xC0000277 + STATUS_IO_REPARSE_DATA_INVALID NTStatus = 0xC0000278 + STATUS_IO_REPARSE_TAG_NOT_HANDLED NTStatus = 0xC0000279 + STATUS_PWD_TOO_LONG NTStatus = 0xC000027A + STATUS_STOWED_EXCEPTION NTStatus = 0xC000027B + STATUS_CONTEXT_STOWED_EXCEPTION NTStatus = 0xC000027C + STATUS_REPARSE_POINT_NOT_RESOLVED NTStatus = 0xC0000280 + STATUS_DIRECTORY_IS_A_REPARSE_POINT NTStatus = 0xC0000281 + STATUS_RANGE_LIST_CONFLICT NTStatus = 0xC0000282 + STATUS_SOURCE_ELEMENT_EMPTY NTStatus = 0xC0000283 + STATUS_DESTINATION_ELEMENT_FULL NTStatus = 0xC0000284 + STATUS_ILLEGAL_ELEMENT_ADDRESS NTStatus = 0xC0000285 + STATUS_MAGAZINE_NOT_PRESENT NTStatus = 0xC0000286 + STATUS_REINITIALIZATION_NEEDED NTStatus = 0xC0000287 + STATUS_DEVICE_REQUIRES_CLEANING NTStatus = 0x80000288 + STATUS_DEVICE_DOOR_OPEN NTStatus = 0x80000289 + STATUS_ENCRYPTION_FAILED NTStatus = 0xC000028A + STATUS_DECRYPTION_FAILED NTStatus = 0xC000028B + STATUS_RANGE_NOT_FOUND NTStatus = 0xC000028C + STATUS_NO_RECOVERY_POLICY NTStatus = 0xC000028D + STATUS_NO_EFS NTStatus = 0xC000028E + STATUS_WRONG_EFS NTStatus = 0xC000028F + STATUS_NO_USER_KEYS NTStatus = 0xC0000290 + STATUS_FILE_NOT_ENCRYPTED NTStatus = 0xC0000291 + STATUS_NOT_EXPORT_FORMAT NTStatus = 0xC0000292 + STATUS_FILE_ENCRYPTED NTStatus = 0xC0000293 + STATUS_WAKE_SYSTEM NTStatus = 0x40000294 + STATUS_WMI_GUID_NOT_FOUND NTStatus = 0xC0000295 + STATUS_WMI_INSTANCE_NOT_FOUND NTStatus = 0xC0000296 + STATUS_WMI_ITEMID_NOT_FOUND NTStatus = 0xC0000297 + STATUS_WMI_TRY_AGAIN NTStatus = 0xC0000298 + STATUS_SHARED_POLICY NTStatus = 0xC0000299 + STATUS_POLICY_OBJECT_NOT_FOUND NTStatus = 0xC000029A + STATUS_POLICY_ONLY_IN_DS NTStatus = 0xC000029B + STATUS_VOLUME_NOT_UPGRADED NTStatus = 0xC000029C + STATUS_REMOTE_STORAGE_NOT_ACTIVE NTStatus = 0xC000029D + STATUS_REMOTE_STORAGE_MEDIA_ERROR NTStatus = 0xC000029E + STATUS_NO_TRACKING_SERVICE NTStatus = 0xC000029F + STATUS_SERVER_SID_MISMATCH NTStatus = 0xC00002A0 + STATUS_DS_NO_ATTRIBUTE_OR_VALUE NTStatus = 0xC00002A1 + STATUS_DS_INVALID_ATTRIBUTE_SYNTAX NTStatus = 0xC00002A2 + STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED NTStatus = 0xC00002A3 + STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS NTStatus = 0xC00002A4 + STATUS_DS_BUSY NTStatus = 0xC00002A5 + STATUS_DS_UNAVAILABLE NTStatus = 0xC00002A6 + STATUS_DS_NO_RIDS_ALLOCATED NTStatus = 0xC00002A7 + STATUS_DS_NO_MORE_RIDS NTStatus = 0xC00002A8 + STATUS_DS_INCORRECT_ROLE_OWNER NTStatus = 0xC00002A9 + STATUS_DS_RIDMGR_INIT_ERROR NTStatus = 0xC00002AA + STATUS_DS_OBJ_CLASS_VIOLATION NTStatus = 0xC00002AB + STATUS_DS_CANT_ON_NON_LEAF NTStatus = 0xC00002AC + STATUS_DS_CANT_ON_RDN NTStatus = 0xC00002AD + STATUS_DS_CANT_MOD_OBJ_CLASS NTStatus = 0xC00002AE + STATUS_DS_CROSS_DOM_MOVE_FAILED NTStatus = 0xC00002AF + STATUS_DS_GC_NOT_AVAILABLE NTStatus = 0xC00002B0 + STATUS_DIRECTORY_SERVICE_REQUIRED NTStatus = 0xC00002B1 + STATUS_REPARSE_ATTRIBUTE_CONFLICT NTStatus = 0xC00002B2 + STATUS_CANT_ENABLE_DENY_ONLY NTStatus = 0xC00002B3 + STATUS_FLOAT_MULTIPLE_FAULTS NTStatus = 0xC00002B4 + STATUS_FLOAT_MULTIPLE_TRAPS NTStatus = 0xC00002B5 + STATUS_DEVICE_REMOVED NTStatus = 0xC00002B6 + STATUS_JOURNAL_DELETE_IN_PROGRESS NTStatus = 0xC00002B7 + STATUS_JOURNAL_NOT_ACTIVE NTStatus = 0xC00002B8 + STATUS_NOINTERFACE NTStatus = 0xC00002B9 + STATUS_DS_RIDMGR_DISABLED NTStatus = 0xC00002BA + STATUS_DS_ADMIN_LIMIT_EXCEEDED NTStatus = 0xC00002C1 + STATUS_DRIVER_FAILED_SLEEP NTStatus = 0xC00002C2 + STATUS_MUTUAL_AUTHENTICATION_FAILED NTStatus = 0xC00002C3 + STATUS_CORRUPT_SYSTEM_FILE NTStatus = 0xC00002C4 + STATUS_DATATYPE_MISALIGNMENT_ERROR NTStatus = 0xC00002C5 + STATUS_WMI_READ_ONLY NTStatus = 0xC00002C6 + STATUS_WMI_SET_FAILURE NTStatus = 0xC00002C7 + STATUS_COMMITMENT_MINIMUM NTStatus = 0xC00002C8 + STATUS_REG_NAT_CONSUMPTION NTStatus = 0xC00002C9 + STATUS_TRANSPORT_FULL NTStatus = 0xC00002CA + STATUS_DS_SAM_INIT_FAILURE NTStatus = 0xC00002CB + STATUS_ONLY_IF_CONNECTED NTStatus = 0xC00002CC + STATUS_DS_SENSITIVE_GROUP_VIOLATION NTStatus = 0xC00002CD + STATUS_PNP_RESTART_ENUMERATION NTStatus = 0xC00002CE + STATUS_JOURNAL_ENTRY_DELETED NTStatus = 0xC00002CF + STATUS_DS_CANT_MOD_PRIMARYGROUPID NTStatus = 0xC00002D0 + STATUS_SYSTEM_IMAGE_BAD_SIGNATURE NTStatus = 0xC00002D1 + STATUS_PNP_REBOOT_REQUIRED NTStatus = 0xC00002D2 + STATUS_POWER_STATE_INVALID NTStatus = 0xC00002D3 + STATUS_DS_INVALID_GROUP_TYPE NTStatus = 0xC00002D4 + STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN NTStatus = 0xC00002D5 + STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN NTStatus = 0xC00002D6 + STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER NTStatus = 0xC00002D7 + STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER NTStatus = 0xC00002D8 + STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER NTStatus = 0xC00002D9 + STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER NTStatus = 0xC00002DA + STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER NTStatus = 0xC00002DB + STATUS_DS_HAVE_PRIMARY_MEMBERS NTStatus = 0xC00002DC + STATUS_WMI_NOT_SUPPORTED NTStatus = 0xC00002DD + STATUS_INSUFFICIENT_POWER NTStatus = 0xC00002DE + STATUS_SAM_NEED_BOOTKEY_PASSWORD NTStatus = 0xC00002DF + STATUS_SAM_NEED_BOOTKEY_FLOPPY NTStatus = 0xC00002E0 + STATUS_DS_CANT_START NTStatus = 0xC00002E1 + STATUS_DS_INIT_FAILURE NTStatus = 0xC00002E2 + STATUS_SAM_INIT_FAILURE NTStatus = 0xC00002E3 + STATUS_DS_GC_REQUIRED NTStatus = 0xC00002E4 + STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY NTStatus = 0xC00002E5 + STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS NTStatus = 0xC00002E6 + STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED NTStatus = 0xC00002E7 + STATUS_MULTIPLE_FAULT_VIOLATION NTStatus = 0xC00002E8 + STATUS_CURRENT_DOMAIN_NOT_ALLOWED NTStatus = 0xC00002E9 + STATUS_CANNOT_MAKE NTStatus = 0xC00002EA + STATUS_SYSTEM_SHUTDOWN NTStatus = 0xC00002EB + STATUS_DS_INIT_FAILURE_CONSOLE NTStatus = 0xC00002EC + STATUS_DS_SAM_INIT_FAILURE_CONSOLE NTStatus = 0xC00002ED + STATUS_UNFINISHED_CONTEXT_DELETED NTStatus = 0xC00002EE + STATUS_NO_TGT_REPLY NTStatus = 0xC00002EF + STATUS_OBJECTID_NOT_FOUND NTStatus = 0xC00002F0 + STATUS_NO_IP_ADDRESSES NTStatus = 0xC00002F1 + STATUS_WRONG_CREDENTIAL_HANDLE NTStatus = 0xC00002F2 + STATUS_CRYPTO_SYSTEM_INVALID NTStatus = 0xC00002F3 + STATUS_MAX_REFERRALS_EXCEEDED NTStatus = 0xC00002F4 + STATUS_MUST_BE_KDC NTStatus = 0xC00002F5 + STATUS_STRONG_CRYPTO_NOT_SUPPORTED NTStatus = 0xC00002F6 + STATUS_TOO_MANY_PRINCIPALS NTStatus = 0xC00002F7 + STATUS_NO_PA_DATA NTStatus = 0xC00002F8 + STATUS_PKINIT_NAME_MISMATCH NTStatus = 0xC00002F9 + STATUS_SMARTCARD_LOGON_REQUIRED NTStatus = 0xC00002FA + STATUS_KDC_INVALID_REQUEST NTStatus = 0xC00002FB + STATUS_KDC_UNABLE_TO_REFER NTStatus = 0xC00002FC + STATUS_KDC_UNKNOWN_ETYPE NTStatus = 0xC00002FD + STATUS_SHUTDOWN_IN_PROGRESS NTStatus = 0xC00002FE + STATUS_SERVER_SHUTDOWN_IN_PROGRESS NTStatus = 0xC00002FF + STATUS_NOT_SUPPORTED_ON_SBS NTStatus = 0xC0000300 + STATUS_WMI_GUID_DISCONNECTED NTStatus = 0xC0000301 + STATUS_WMI_ALREADY_DISABLED NTStatus = 0xC0000302 + STATUS_WMI_ALREADY_ENABLED NTStatus = 0xC0000303 + STATUS_MFT_TOO_FRAGMENTED NTStatus = 0xC0000304 + STATUS_COPY_PROTECTION_FAILURE NTStatus = 0xC0000305 + STATUS_CSS_AUTHENTICATION_FAILURE NTStatus = 0xC0000306 + STATUS_CSS_KEY_NOT_PRESENT NTStatus = 0xC0000307 + STATUS_CSS_KEY_NOT_ESTABLISHED NTStatus = 0xC0000308 + STATUS_CSS_SCRAMBLED_SECTOR NTStatus = 0xC0000309 + STATUS_CSS_REGION_MISMATCH NTStatus = 0xC000030A + STATUS_CSS_RESETS_EXHAUSTED NTStatus = 0xC000030B + STATUS_PASSWORD_CHANGE_REQUIRED NTStatus = 0xC000030C + STATUS_LOST_MODE_LOGON_RESTRICTION NTStatus = 0xC000030D + STATUS_PKINIT_FAILURE NTStatus = 0xC0000320 + STATUS_SMARTCARD_SUBSYSTEM_FAILURE NTStatus = 0xC0000321 + STATUS_NO_KERB_KEY NTStatus = 0xC0000322 + STATUS_HOST_DOWN NTStatus = 0xC0000350 + STATUS_UNSUPPORTED_PREAUTH NTStatus = 0xC0000351 + STATUS_EFS_ALG_BLOB_TOO_BIG NTStatus = 0xC0000352 + STATUS_PORT_NOT_SET NTStatus = 0xC0000353 + STATUS_DEBUGGER_INACTIVE NTStatus = 0xC0000354 + STATUS_DS_VERSION_CHECK_FAILURE NTStatus = 0xC0000355 + STATUS_AUDITING_DISABLED NTStatus = 0xC0000356 + STATUS_PRENT4_MACHINE_ACCOUNT NTStatus = 0xC0000357 + STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER NTStatus = 0xC0000358 + STATUS_INVALID_IMAGE_WIN_32 NTStatus = 0xC0000359 + STATUS_INVALID_IMAGE_WIN_64 NTStatus = 0xC000035A + STATUS_BAD_BINDINGS NTStatus = 0xC000035B + STATUS_NETWORK_SESSION_EXPIRED NTStatus = 0xC000035C + STATUS_APPHELP_BLOCK NTStatus = 0xC000035D + STATUS_ALL_SIDS_FILTERED NTStatus = 0xC000035E + STATUS_NOT_SAFE_MODE_DRIVER NTStatus = 0xC000035F + STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT NTStatus = 0xC0000361 + STATUS_ACCESS_DISABLED_BY_POLICY_PATH NTStatus = 0xC0000362 + STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER NTStatus = 0xC0000363 + STATUS_ACCESS_DISABLED_BY_POLICY_OTHER NTStatus = 0xC0000364 + STATUS_FAILED_DRIVER_ENTRY NTStatus = 0xC0000365 + STATUS_DEVICE_ENUMERATION_ERROR NTStatus = 0xC0000366 + STATUS_MOUNT_POINT_NOT_RESOLVED NTStatus = 0xC0000368 + STATUS_INVALID_DEVICE_OBJECT_PARAMETER NTStatus = 0xC0000369 + STATUS_MCA_OCCURED NTStatus = 0xC000036A + STATUS_DRIVER_BLOCKED_CRITICAL NTStatus = 0xC000036B + STATUS_DRIVER_BLOCKED NTStatus = 0xC000036C + STATUS_DRIVER_DATABASE_ERROR NTStatus = 0xC000036D + STATUS_SYSTEM_HIVE_TOO_LARGE NTStatus = 0xC000036E + STATUS_INVALID_IMPORT_OF_NON_DLL NTStatus = 0xC000036F + STATUS_DS_SHUTTING_DOWN NTStatus = 0x40000370 + STATUS_NO_SECRETS NTStatus = 0xC0000371 + STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY NTStatus = 0xC0000372 + STATUS_FAILED_STACK_SWITCH NTStatus = 0xC0000373 + STATUS_HEAP_CORRUPTION NTStatus = 0xC0000374 + STATUS_SMARTCARD_WRONG_PIN NTStatus = 0xC0000380 + STATUS_SMARTCARD_CARD_BLOCKED NTStatus = 0xC0000381 + STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED NTStatus = 0xC0000382 + STATUS_SMARTCARD_NO_CARD NTStatus = 0xC0000383 + STATUS_SMARTCARD_NO_KEY_CONTAINER NTStatus = 0xC0000384 + STATUS_SMARTCARD_NO_CERTIFICATE NTStatus = 0xC0000385 + STATUS_SMARTCARD_NO_KEYSET NTStatus = 0xC0000386 + STATUS_SMARTCARD_IO_ERROR NTStatus = 0xC0000387 + STATUS_DOWNGRADE_DETECTED NTStatus = 0xC0000388 + STATUS_SMARTCARD_CERT_REVOKED NTStatus = 0xC0000389 + STATUS_ISSUING_CA_UNTRUSTED NTStatus = 0xC000038A + STATUS_REVOCATION_OFFLINE_C NTStatus = 0xC000038B + STATUS_PKINIT_CLIENT_FAILURE NTStatus = 0xC000038C + STATUS_SMARTCARD_CERT_EXPIRED NTStatus = 0xC000038D + STATUS_DRIVER_FAILED_PRIOR_UNLOAD NTStatus = 0xC000038E + STATUS_SMARTCARD_SILENT_CONTEXT NTStatus = 0xC000038F + STATUS_PER_USER_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000401 + STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000402 + STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED NTStatus = 0xC0000403 + STATUS_DS_NAME_NOT_UNIQUE NTStatus = 0xC0000404 + STATUS_DS_DUPLICATE_ID_FOUND NTStatus = 0xC0000405 + STATUS_DS_GROUP_CONVERSION_ERROR NTStatus = 0xC0000406 + STATUS_VOLSNAP_PREPARE_HIBERNATE NTStatus = 0xC0000407 + STATUS_USER2USER_REQUIRED NTStatus = 0xC0000408 + STATUS_STACK_BUFFER_OVERRUN NTStatus = 0xC0000409 + STATUS_NO_S4U_PROT_SUPPORT NTStatus = 0xC000040A + STATUS_CROSSREALM_DELEGATION_FAILURE NTStatus = 0xC000040B + STATUS_REVOCATION_OFFLINE_KDC NTStatus = 0xC000040C + STATUS_ISSUING_CA_UNTRUSTED_KDC NTStatus = 0xC000040D + STATUS_KDC_CERT_EXPIRED NTStatus = 0xC000040E + STATUS_KDC_CERT_REVOKED NTStatus = 0xC000040F + STATUS_PARAMETER_QUOTA_EXCEEDED NTStatus = 0xC0000410 + STATUS_HIBERNATION_FAILURE NTStatus = 0xC0000411 + STATUS_DELAY_LOAD_FAILED NTStatus = 0xC0000412 + STATUS_AUTHENTICATION_FIREWALL_FAILED NTStatus = 0xC0000413 + STATUS_VDM_DISALLOWED NTStatus = 0xC0000414 + STATUS_HUNG_DISPLAY_DRIVER_THREAD NTStatus = 0xC0000415 + STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE NTStatus = 0xC0000416 + STATUS_INVALID_CRUNTIME_PARAMETER NTStatus = 0xC0000417 + STATUS_NTLM_BLOCKED NTStatus = 0xC0000418 + STATUS_DS_SRC_SID_EXISTS_IN_FOREST NTStatus = 0xC0000419 + STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST NTStatus = 0xC000041A + STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST NTStatus = 0xC000041B + STATUS_INVALID_USER_PRINCIPAL_NAME NTStatus = 0xC000041C + STATUS_FATAL_USER_CALLBACK_EXCEPTION NTStatus = 0xC000041D + STATUS_ASSERTION_FAILURE NTStatus = 0xC0000420 + STATUS_VERIFIER_STOP NTStatus = 0xC0000421 + STATUS_CALLBACK_POP_STACK NTStatus = 0xC0000423 + STATUS_INCOMPATIBLE_DRIVER_BLOCKED NTStatus = 0xC0000424 + STATUS_HIVE_UNLOADED NTStatus = 0xC0000425 + STATUS_COMPRESSION_DISABLED NTStatus = 0xC0000426 + STATUS_FILE_SYSTEM_LIMITATION NTStatus = 0xC0000427 + STATUS_INVALID_IMAGE_HASH NTStatus = 0xC0000428 + STATUS_NOT_CAPABLE NTStatus = 0xC0000429 + STATUS_REQUEST_OUT_OF_SEQUENCE NTStatus = 0xC000042A + STATUS_IMPLEMENTATION_LIMIT NTStatus = 0xC000042B + STATUS_ELEVATION_REQUIRED NTStatus = 0xC000042C + STATUS_NO_SECURITY_CONTEXT NTStatus = 0xC000042D + STATUS_PKU2U_CERT_FAILURE NTStatus = 0xC000042F + STATUS_BEYOND_VDL NTStatus = 0xC0000432 + STATUS_ENCOUNTERED_WRITE_IN_PROGRESS NTStatus = 0xC0000433 + STATUS_PTE_CHANGED NTStatus = 0xC0000434 + STATUS_PURGE_FAILED NTStatus = 0xC0000435 + STATUS_CRED_REQUIRES_CONFIRMATION NTStatus = 0xC0000440 + STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE NTStatus = 0xC0000441 + STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER NTStatus = 0xC0000442 + STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE NTStatus = 0xC0000443 + STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE NTStatus = 0xC0000444 + STATUS_CS_ENCRYPTION_FILE_NOT_CSE NTStatus = 0xC0000445 + STATUS_INVALID_LABEL NTStatus = 0xC0000446 + STATUS_DRIVER_PROCESS_TERMINATED NTStatus = 0xC0000450 + STATUS_AMBIGUOUS_SYSTEM_DEVICE NTStatus = 0xC0000451 + STATUS_SYSTEM_DEVICE_NOT_FOUND NTStatus = 0xC0000452 + STATUS_RESTART_BOOT_APPLICATION NTStatus = 0xC0000453 + STATUS_INSUFFICIENT_NVRAM_RESOURCES NTStatus = 0xC0000454 + STATUS_INVALID_SESSION NTStatus = 0xC0000455 + STATUS_THREAD_ALREADY_IN_SESSION NTStatus = 0xC0000456 + STATUS_THREAD_NOT_IN_SESSION NTStatus = 0xC0000457 + STATUS_INVALID_WEIGHT NTStatus = 0xC0000458 + STATUS_REQUEST_PAUSED NTStatus = 0xC0000459 + STATUS_NO_RANGES_PROCESSED NTStatus = 0xC0000460 + STATUS_DISK_RESOURCES_EXHAUSTED NTStatus = 0xC0000461 + STATUS_NEEDS_REMEDIATION NTStatus = 0xC0000462 + STATUS_DEVICE_FEATURE_NOT_SUPPORTED NTStatus = 0xC0000463 + STATUS_DEVICE_UNREACHABLE NTStatus = 0xC0000464 + STATUS_INVALID_TOKEN NTStatus = 0xC0000465 + STATUS_SERVER_UNAVAILABLE NTStatus = 0xC0000466 + STATUS_FILE_NOT_AVAILABLE NTStatus = 0xC0000467 + STATUS_DEVICE_INSUFFICIENT_RESOURCES NTStatus = 0xC0000468 + STATUS_PACKAGE_UPDATING NTStatus = 0xC0000469 + STATUS_NOT_READ_FROM_COPY NTStatus = 0xC000046A + STATUS_FT_WRITE_FAILURE NTStatus = 0xC000046B + STATUS_FT_DI_SCAN_REQUIRED NTStatus = 0xC000046C + STATUS_OBJECT_NOT_EXTERNALLY_BACKED NTStatus = 0xC000046D + STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN NTStatus = 0xC000046E + STATUS_COMPRESSION_NOT_BENEFICIAL NTStatus = 0xC000046F + STATUS_DATA_CHECKSUM_ERROR NTStatus = 0xC0000470 + STATUS_INTERMIXED_KERNEL_EA_OPERATION NTStatus = 0xC0000471 + STATUS_TRIM_READ_ZERO_NOT_SUPPORTED NTStatus = 0xC0000472 + STATUS_TOO_MANY_SEGMENT_DESCRIPTORS NTStatus = 0xC0000473 + STATUS_INVALID_OFFSET_ALIGNMENT NTStatus = 0xC0000474 + STATUS_INVALID_FIELD_IN_PARAMETER_LIST NTStatus = 0xC0000475 + STATUS_OPERATION_IN_PROGRESS NTStatus = 0xC0000476 + STATUS_INVALID_INITIATOR_TARGET_PATH NTStatus = 0xC0000477 + STATUS_SCRUB_DATA_DISABLED NTStatus = 0xC0000478 + STATUS_NOT_REDUNDANT_STORAGE NTStatus = 0xC0000479 + STATUS_RESIDENT_FILE_NOT_SUPPORTED NTStatus = 0xC000047A + STATUS_COMPRESSED_FILE_NOT_SUPPORTED NTStatus = 0xC000047B + STATUS_DIRECTORY_NOT_SUPPORTED NTStatus = 0xC000047C + STATUS_IO_OPERATION_TIMEOUT NTStatus = 0xC000047D + STATUS_SYSTEM_NEEDS_REMEDIATION NTStatus = 0xC000047E + STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN NTStatus = 0xC000047F + STATUS_SHARE_UNAVAILABLE NTStatus = 0xC0000480 + STATUS_APISET_NOT_HOSTED NTStatus = 0xC0000481 + STATUS_APISET_NOT_PRESENT NTStatus = 0xC0000482 + STATUS_DEVICE_HARDWARE_ERROR NTStatus = 0xC0000483 + STATUS_FIRMWARE_SLOT_INVALID NTStatus = 0xC0000484 + STATUS_FIRMWARE_IMAGE_INVALID NTStatus = 0xC0000485 + STATUS_STORAGE_TOPOLOGY_ID_MISMATCH NTStatus = 0xC0000486 + STATUS_WIM_NOT_BOOTABLE NTStatus = 0xC0000487 + STATUS_BLOCKED_BY_PARENTAL_CONTROLS NTStatus = 0xC0000488 + STATUS_NEEDS_REGISTRATION NTStatus = 0xC0000489 + STATUS_QUOTA_ACTIVITY NTStatus = 0xC000048A + STATUS_CALLBACK_INVOKE_INLINE NTStatus = 0xC000048B + STATUS_BLOCK_TOO_MANY_REFERENCES NTStatus = 0xC000048C + STATUS_MARKED_TO_DISALLOW_WRITES NTStatus = 0xC000048D + STATUS_NETWORK_ACCESS_DENIED_EDP NTStatus = 0xC000048E + STATUS_ENCLAVE_FAILURE NTStatus = 0xC000048F + STATUS_PNP_NO_COMPAT_DRIVERS NTStatus = 0xC0000490 + STATUS_PNP_DRIVER_PACKAGE_NOT_FOUND NTStatus = 0xC0000491 + STATUS_PNP_DRIVER_CONFIGURATION_NOT_FOUND NTStatus = 0xC0000492 + STATUS_PNP_DRIVER_CONFIGURATION_INCOMPLETE NTStatus = 0xC0000493 + STATUS_PNP_FUNCTION_DRIVER_REQUIRED NTStatus = 0xC0000494 + STATUS_PNP_DEVICE_CONFIGURATION_PENDING NTStatus = 0xC0000495 + STATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL NTStatus = 0xC0000496 + STATUS_PACKAGE_NOT_AVAILABLE NTStatus = 0xC0000497 + STATUS_DEVICE_IN_MAINTENANCE NTStatus = 0xC0000499 + STATUS_NOT_SUPPORTED_ON_DAX NTStatus = 0xC000049A + STATUS_FREE_SPACE_TOO_FRAGMENTED NTStatus = 0xC000049B + STATUS_DAX_MAPPING_EXISTS NTStatus = 0xC000049C + STATUS_CHILD_PROCESS_BLOCKED NTStatus = 0xC000049D + STATUS_STORAGE_LOST_DATA_PERSISTENCE NTStatus = 0xC000049E + STATUS_VRF_CFG_ENABLED NTStatus = 0xC000049F + STATUS_PARTITION_TERMINATING NTStatus = 0xC00004A0 + STATUS_EXTERNAL_SYSKEY_NOT_SUPPORTED NTStatus = 0xC00004A1 + STATUS_ENCLAVE_VIOLATION NTStatus = 0xC00004A2 + STATUS_FILE_PROTECTED_UNDER_DPL NTStatus = 0xC00004A3 + STATUS_VOLUME_NOT_CLUSTER_ALIGNED NTStatus = 0xC00004A4 + STATUS_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND NTStatus = 0xC00004A5 + STATUS_APPX_FILE_NOT_ENCRYPTED NTStatus = 0xC00004A6 + STATUS_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED NTStatus = 0xC00004A7 + STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET NTStatus = 0xC00004A8 + STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE NTStatus = 0xC00004A9 + STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER NTStatus = 0xC00004AA + STATUS_FT_READ_FAILURE NTStatus = 0xC00004AB + STATUS_PATCH_CONFLICT NTStatus = 0xC00004AC + STATUS_STORAGE_RESERVE_ID_INVALID NTStatus = 0xC00004AD + STATUS_STORAGE_RESERVE_DOES_NOT_EXIST NTStatus = 0xC00004AE + STATUS_STORAGE_RESERVE_ALREADY_EXISTS NTStatus = 0xC00004AF + STATUS_STORAGE_RESERVE_NOT_EMPTY NTStatus = 0xC00004B0 + STATUS_NOT_A_DAX_VOLUME NTStatus = 0xC00004B1 + STATUS_NOT_DAX_MAPPABLE NTStatus = 0xC00004B2 + STATUS_CASE_DIFFERING_NAMES_IN_DIR NTStatus = 0xC00004B3 + STATUS_FILE_NOT_SUPPORTED NTStatus = 0xC00004B4 + STATUS_NOT_SUPPORTED_WITH_BTT NTStatus = 0xC00004B5 + STATUS_ENCRYPTION_DISABLED NTStatus = 0xC00004B6 + STATUS_ENCRYPTING_METADATA_DISALLOWED NTStatus = 0xC00004B7 + STATUS_CANT_CLEAR_ENCRYPTION_FLAG NTStatus = 0xC00004B8 + STATUS_INVALID_TASK_NAME NTStatus = 0xC0000500 + STATUS_INVALID_TASK_INDEX NTStatus = 0xC0000501 + STATUS_THREAD_ALREADY_IN_TASK NTStatus = 0xC0000502 + STATUS_CALLBACK_BYPASS NTStatus = 0xC0000503 + STATUS_UNDEFINED_SCOPE NTStatus = 0xC0000504 + STATUS_INVALID_CAP NTStatus = 0xC0000505 + STATUS_NOT_GUI_PROCESS NTStatus = 0xC0000506 + STATUS_DEVICE_HUNG NTStatus = 0xC0000507 + STATUS_CONTAINER_ASSIGNED NTStatus = 0xC0000508 + STATUS_JOB_NO_CONTAINER NTStatus = 0xC0000509 + STATUS_DEVICE_UNRESPONSIVE NTStatus = 0xC000050A + STATUS_REPARSE_POINT_ENCOUNTERED NTStatus = 0xC000050B + STATUS_ATTRIBUTE_NOT_PRESENT NTStatus = 0xC000050C + STATUS_NOT_A_TIERED_VOLUME NTStatus = 0xC000050D + STATUS_ALREADY_HAS_STREAM_ID NTStatus = 0xC000050E + STATUS_JOB_NOT_EMPTY NTStatus = 0xC000050F + STATUS_ALREADY_INITIALIZED NTStatus = 0xC0000510 + STATUS_ENCLAVE_NOT_TERMINATED NTStatus = 0xC0000511 + STATUS_ENCLAVE_IS_TERMINATING NTStatus = 0xC0000512 + STATUS_SMB1_NOT_AVAILABLE NTStatus = 0xC0000513 + STATUS_SMR_GARBAGE_COLLECTION_REQUIRED NTStatus = 0xC0000514 + STATUS_INTERRUPTED NTStatus = 0xC0000515 + STATUS_THREAD_NOT_RUNNING NTStatus = 0xC0000516 + STATUS_FAIL_FAST_EXCEPTION NTStatus = 0xC0000602 + STATUS_IMAGE_CERT_REVOKED NTStatus = 0xC0000603 + STATUS_DYNAMIC_CODE_BLOCKED NTStatus = 0xC0000604 + STATUS_IMAGE_CERT_EXPIRED NTStatus = 0xC0000605 + STATUS_STRICT_CFG_VIOLATION NTStatus = 0xC0000606 + STATUS_SET_CONTEXT_DENIED NTStatus = 0xC000060A + STATUS_CROSS_PARTITION_VIOLATION NTStatus = 0xC000060B + STATUS_PORT_CLOSED NTStatus = 0xC0000700 + STATUS_MESSAGE_LOST NTStatus = 0xC0000701 + STATUS_INVALID_MESSAGE NTStatus = 0xC0000702 + STATUS_REQUEST_CANCELED NTStatus = 0xC0000703 + STATUS_RECURSIVE_DISPATCH NTStatus = 0xC0000704 + STATUS_LPC_RECEIVE_BUFFER_EXPECTED NTStatus = 0xC0000705 + STATUS_LPC_INVALID_CONNECTION_USAGE NTStatus = 0xC0000706 + STATUS_LPC_REQUESTS_NOT_ALLOWED NTStatus = 0xC0000707 + STATUS_RESOURCE_IN_USE NTStatus = 0xC0000708 + STATUS_HARDWARE_MEMORY_ERROR NTStatus = 0xC0000709 + STATUS_THREADPOOL_HANDLE_EXCEPTION NTStatus = 0xC000070A + STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED NTStatus = 0xC000070B + STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED NTStatus = 0xC000070C + STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED NTStatus = 0xC000070D + STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED NTStatus = 0xC000070E + STATUS_THREADPOOL_RELEASED_DURING_OPERATION NTStatus = 0xC000070F + STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING NTStatus = 0xC0000710 + STATUS_APC_RETURNED_WHILE_IMPERSONATING NTStatus = 0xC0000711 + STATUS_PROCESS_IS_PROTECTED NTStatus = 0xC0000712 + STATUS_MCA_EXCEPTION NTStatus = 0xC0000713 + STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE NTStatus = 0xC0000714 + STATUS_SYMLINK_CLASS_DISABLED NTStatus = 0xC0000715 + STATUS_INVALID_IDN_NORMALIZATION NTStatus = 0xC0000716 + STATUS_NO_UNICODE_TRANSLATION NTStatus = 0xC0000717 + STATUS_ALREADY_REGISTERED NTStatus = 0xC0000718 + STATUS_CONTEXT_MISMATCH NTStatus = 0xC0000719 + STATUS_PORT_ALREADY_HAS_COMPLETION_LIST NTStatus = 0xC000071A + STATUS_CALLBACK_RETURNED_THREAD_PRIORITY NTStatus = 0xC000071B + STATUS_INVALID_THREAD NTStatus = 0xC000071C + STATUS_CALLBACK_RETURNED_TRANSACTION NTStatus = 0xC000071D + STATUS_CALLBACK_RETURNED_LDR_LOCK NTStatus = 0xC000071E + STATUS_CALLBACK_RETURNED_LANG NTStatus = 0xC000071F + STATUS_CALLBACK_RETURNED_PRI_BACK NTStatus = 0xC0000720 + STATUS_CALLBACK_RETURNED_THREAD_AFFINITY NTStatus = 0xC0000721 + STATUS_LPC_HANDLE_COUNT_EXCEEDED NTStatus = 0xC0000722 + STATUS_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000723 + STATUS_KERNEL_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000724 + STATUS_ATTACHED_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000725 + STATUS_TRIGGERED_EXECUTABLE_MEMORY_WRITE NTStatus = 0xC0000726 + STATUS_DISK_REPAIR_DISABLED NTStatus = 0xC0000800 + STATUS_DS_DOMAIN_RENAME_IN_PROGRESS NTStatus = 0xC0000801 + STATUS_DISK_QUOTA_EXCEEDED NTStatus = 0xC0000802 + STATUS_DATA_LOST_REPAIR NTStatus = 0x80000803 + STATUS_CONTENT_BLOCKED NTStatus = 0xC0000804 + STATUS_BAD_CLUSTERS NTStatus = 0xC0000805 + STATUS_VOLUME_DIRTY NTStatus = 0xC0000806 + STATUS_DISK_REPAIR_REDIRECTED NTStatus = 0x40000807 + STATUS_DISK_REPAIR_UNSUCCESSFUL NTStatus = 0xC0000808 + STATUS_CORRUPT_LOG_OVERFULL NTStatus = 0xC0000809 + STATUS_CORRUPT_LOG_CORRUPTED NTStatus = 0xC000080A + STATUS_CORRUPT_LOG_UNAVAILABLE NTStatus = 0xC000080B + STATUS_CORRUPT_LOG_DELETED_FULL NTStatus = 0xC000080C + STATUS_CORRUPT_LOG_CLEARED NTStatus = 0xC000080D + STATUS_ORPHAN_NAME_EXHAUSTED NTStatus = 0xC000080E + STATUS_PROACTIVE_SCAN_IN_PROGRESS NTStatus = 0xC000080F + STATUS_ENCRYPTED_IO_NOT_POSSIBLE NTStatus = 0xC0000810 + STATUS_CORRUPT_LOG_UPLEVEL_RECORDS NTStatus = 0xC0000811 + STATUS_FILE_CHECKED_OUT NTStatus = 0xC0000901 + STATUS_CHECKOUT_REQUIRED NTStatus = 0xC0000902 + STATUS_BAD_FILE_TYPE NTStatus = 0xC0000903 + STATUS_FILE_TOO_LARGE NTStatus = 0xC0000904 + STATUS_FORMS_AUTH_REQUIRED NTStatus = 0xC0000905 + STATUS_VIRUS_INFECTED NTStatus = 0xC0000906 + STATUS_VIRUS_DELETED NTStatus = 0xC0000907 + STATUS_BAD_MCFG_TABLE NTStatus = 0xC0000908 + STATUS_CANNOT_BREAK_OPLOCK NTStatus = 0xC0000909 + STATUS_BAD_KEY NTStatus = 0xC000090A + STATUS_BAD_DATA NTStatus = 0xC000090B + STATUS_NO_KEY NTStatus = 0xC000090C + STATUS_FILE_HANDLE_REVOKED NTStatus = 0xC0000910 + STATUS_WOW_ASSERTION NTStatus = 0xC0009898 + STATUS_INVALID_SIGNATURE NTStatus = 0xC000A000 + STATUS_HMAC_NOT_SUPPORTED NTStatus = 0xC000A001 + STATUS_AUTH_TAG_MISMATCH NTStatus = 0xC000A002 + STATUS_INVALID_STATE_TRANSITION NTStatus = 0xC000A003 + STATUS_INVALID_KERNEL_INFO_VERSION NTStatus = 0xC000A004 + STATUS_INVALID_PEP_INFO_VERSION NTStatus = 0xC000A005 + STATUS_HANDLE_REVOKED NTStatus = 0xC000A006 + STATUS_EOF_ON_GHOSTED_RANGE NTStatus = 0xC000A007 + STATUS_IPSEC_QUEUE_OVERFLOW NTStatus = 0xC000A010 + STATUS_ND_QUEUE_OVERFLOW NTStatus = 0xC000A011 + STATUS_HOPLIMIT_EXCEEDED NTStatus = 0xC000A012 + STATUS_PROTOCOL_NOT_SUPPORTED NTStatus = 0xC000A013 + STATUS_FASTPATH_REJECTED NTStatus = 0xC000A014 + STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED NTStatus = 0xC000A080 + STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR NTStatus = 0xC000A081 + STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR NTStatus = 0xC000A082 + STATUS_XML_PARSE_ERROR NTStatus = 0xC000A083 + STATUS_XMLDSIG_ERROR NTStatus = 0xC000A084 + STATUS_WRONG_COMPARTMENT NTStatus = 0xC000A085 + STATUS_AUTHIP_FAILURE NTStatus = 0xC000A086 + STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS NTStatus = 0xC000A087 + STATUS_DS_OID_NOT_FOUND NTStatus = 0xC000A088 + STATUS_INCORRECT_ACCOUNT_TYPE NTStatus = 0xC000A089 + STATUS_HASH_NOT_SUPPORTED NTStatus = 0xC000A100 + STATUS_HASH_NOT_PRESENT NTStatus = 0xC000A101 + STATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED NTStatus = 0xC000A121 + STATUS_GPIO_CLIENT_INFORMATION_INVALID NTStatus = 0xC000A122 + STATUS_GPIO_VERSION_NOT_SUPPORTED NTStatus = 0xC000A123 + STATUS_GPIO_INVALID_REGISTRATION_PACKET NTStatus = 0xC000A124 + STATUS_GPIO_OPERATION_DENIED NTStatus = 0xC000A125 + STATUS_GPIO_INCOMPATIBLE_CONNECT_MODE NTStatus = 0xC000A126 + STATUS_GPIO_INTERRUPT_ALREADY_UNMASKED NTStatus = 0x8000A127 + STATUS_CANNOT_SWITCH_RUNLEVEL NTStatus = 0xC000A141 + STATUS_INVALID_RUNLEVEL_SETTING NTStatus = 0xC000A142 + STATUS_RUNLEVEL_SWITCH_TIMEOUT NTStatus = 0xC000A143 + STATUS_SERVICES_FAILED_AUTOSTART NTStatus = 0x4000A144 + STATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT NTStatus = 0xC000A145 + STATUS_RUNLEVEL_SWITCH_IN_PROGRESS NTStatus = 0xC000A146 + STATUS_NOT_APPCONTAINER NTStatus = 0xC000A200 + STATUS_NOT_SUPPORTED_IN_APPCONTAINER NTStatus = 0xC000A201 + STATUS_INVALID_PACKAGE_SID_LENGTH NTStatus = 0xC000A202 + STATUS_LPAC_ACCESS_DENIED NTStatus = 0xC000A203 + STATUS_ADMINLESS_ACCESS_DENIED NTStatus = 0xC000A204 + STATUS_APP_DATA_NOT_FOUND NTStatus = 0xC000A281 + STATUS_APP_DATA_EXPIRED NTStatus = 0xC000A282 + STATUS_APP_DATA_CORRUPT NTStatus = 0xC000A283 + STATUS_APP_DATA_LIMIT_EXCEEDED NTStatus = 0xC000A284 + STATUS_APP_DATA_REBOOT_REQUIRED NTStatus = 0xC000A285 + STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED NTStatus = 0xC000A2A1 + STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED NTStatus = 0xC000A2A2 + STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED NTStatus = 0xC000A2A3 + STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED NTStatus = 0xC000A2A4 + STATUS_WOF_WIM_HEADER_CORRUPT NTStatus = 0xC000A2A5 + STATUS_WOF_WIM_RESOURCE_TABLE_CORRUPT NTStatus = 0xC000A2A6 + STATUS_WOF_FILE_RESOURCE_TABLE_CORRUPT NTStatus = 0xC000A2A7 + STATUS_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE NTStatus = 0xC000CE01 + STATUS_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT NTStatus = 0xC000CE02 + STATUS_FILE_SYSTEM_VIRTUALIZATION_BUSY NTStatus = 0xC000CE03 + STATUS_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN NTStatus = 0xC000CE04 + STATUS_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION NTStatus = 0xC000CE05 + STATUS_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT NTStatus = 0xC000CF00 + STATUS_CLOUD_FILE_PROVIDER_NOT_RUNNING NTStatus = 0xC000CF01 + STATUS_CLOUD_FILE_METADATA_CORRUPT NTStatus = 0xC000CF02 + STATUS_CLOUD_FILE_METADATA_TOO_LARGE NTStatus = 0xC000CF03 + STATUS_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE NTStatus = 0x8000CF04 + STATUS_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS NTStatus = 0x8000CF05 + STATUS_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED NTStatus = 0xC000CF06 + STATUS_NOT_A_CLOUD_FILE NTStatus = 0xC000CF07 + STATUS_CLOUD_FILE_NOT_IN_SYNC NTStatus = 0xC000CF08 + STATUS_CLOUD_FILE_ALREADY_CONNECTED NTStatus = 0xC000CF09 + STATUS_CLOUD_FILE_NOT_SUPPORTED NTStatus = 0xC000CF0A + STATUS_CLOUD_FILE_INVALID_REQUEST NTStatus = 0xC000CF0B + STATUS_CLOUD_FILE_READ_ONLY_VOLUME NTStatus = 0xC000CF0C + STATUS_CLOUD_FILE_CONNECTED_PROVIDER_ONLY NTStatus = 0xC000CF0D + STATUS_CLOUD_FILE_VALIDATION_FAILED NTStatus = 0xC000CF0E + STATUS_CLOUD_FILE_AUTHENTICATION_FAILED NTStatus = 0xC000CF0F + STATUS_CLOUD_FILE_INSUFFICIENT_RESOURCES NTStatus = 0xC000CF10 + STATUS_CLOUD_FILE_NETWORK_UNAVAILABLE NTStatus = 0xC000CF11 + STATUS_CLOUD_FILE_UNSUCCESSFUL NTStatus = 0xC000CF12 + STATUS_CLOUD_FILE_NOT_UNDER_SYNC_ROOT NTStatus = 0xC000CF13 + STATUS_CLOUD_FILE_IN_USE NTStatus = 0xC000CF14 + STATUS_CLOUD_FILE_PINNED NTStatus = 0xC000CF15 + STATUS_CLOUD_FILE_REQUEST_ABORTED NTStatus = 0xC000CF16 + STATUS_CLOUD_FILE_PROPERTY_CORRUPT NTStatus = 0xC000CF17 + STATUS_CLOUD_FILE_ACCESS_DENIED NTStatus = 0xC000CF18 + STATUS_CLOUD_FILE_INCOMPATIBLE_HARDLINKS NTStatus = 0xC000CF19 + STATUS_CLOUD_FILE_PROPERTY_LOCK_CONFLICT NTStatus = 0xC000CF1A + STATUS_CLOUD_FILE_REQUEST_CANCELED NTStatus = 0xC000CF1B + STATUS_CLOUD_FILE_PROVIDER_TERMINATED NTStatus = 0xC000CF1D + STATUS_NOT_A_CLOUD_SYNC_ROOT NTStatus = 0xC000CF1E + STATUS_CLOUD_FILE_REQUEST_TIMEOUT NTStatus = 0xC000CF1F + STATUS_ACPI_INVALID_OPCODE NTStatus = 0xC0140001 + STATUS_ACPI_STACK_OVERFLOW NTStatus = 0xC0140002 + STATUS_ACPI_ASSERT_FAILED NTStatus = 0xC0140003 + STATUS_ACPI_INVALID_INDEX NTStatus = 0xC0140004 + STATUS_ACPI_INVALID_ARGUMENT NTStatus = 0xC0140005 + STATUS_ACPI_FATAL NTStatus = 0xC0140006 + STATUS_ACPI_INVALID_SUPERNAME NTStatus = 0xC0140007 + STATUS_ACPI_INVALID_ARGTYPE NTStatus = 0xC0140008 + STATUS_ACPI_INVALID_OBJTYPE NTStatus = 0xC0140009 + STATUS_ACPI_INVALID_TARGETTYPE NTStatus = 0xC014000A + STATUS_ACPI_INCORRECT_ARGUMENT_COUNT NTStatus = 0xC014000B + STATUS_ACPI_ADDRESS_NOT_MAPPED NTStatus = 0xC014000C + STATUS_ACPI_INVALID_EVENTTYPE NTStatus = 0xC014000D + STATUS_ACPI_HANDLER_COLLISION NTStatus = 0xC014000E + STATUS_ACPI_INVALID_DATA NTStatus = 0xC014000F + STATUS_ACPI_INVALID_REGION NTStatus = 0xC0140010 + STATUS_ACPI_INVALID_ACCESS_SIZE NTStatus = 0xC0140011 + STATUS_ACPI_ACQUIRE_GLOBAL_LOCK NTStatus = 0xC0140012 + STATUS_ACPI_ALREADY_INITIALIZED NTStatus = 0xC0140013 + STATUS_ACPI_NOT_INITIALIZED NTStatus = 0xC0140014 + STATUS_ACPI_INVALID_MUTEX_LEVEL NTStatus = 0xC0140015 + STATUS_ACPI_MUTEX_NOT_OWNED NTStatus = 0xC0140016 + STATUS_ACPI_MUTEX_NOT_OWNER NTStatus = 0xC0140017 + STATUS_ACPI_RS_ACCESS NTStatus = 0xC0140018 + STATUS_ACPI_INVALID_TABLE NTStatus = 0xC0140019 + STATUS_ACPI_REG_HANDLER_FAILED NTStatus = 0xC0140020 + STATUS_ACPI_POWER_REQUEST_FAILED NTStatus = 0xC0140021 + STATUS_CTX_WINSTATION_NAME_INVALID NTStatus = 0xC00A0001 + STATUS_CTX_INVALID_PD NTStatus = 0xC00A0002 + STATUS_CTX_PD_NOT_FOUND NTStatus = 0xC00A0003 + STATUS_CTX_CDM_CONNECT NTStatus = 0x400A0004 + STATUS_CTX_CDM_DISCONNECT NTStatus = 0x400A0005 + STATUS_CTX_CLOSE_PENDING NTStatus = 0xC00A0006 + STATUS_CTX_NO_OUTBUF NTStatus = 0xC00A0007 + STATUS_CTX_MODEM_INF_NOT_FOUND NTStatus = 0xC00A0008 + STATUS_CTX_INVALID_MODEMNAME NTStatus = 0xC00A0009 + STATUS_CTX_RESPONSE_ERROR NTStatus = 0xC00A000A + STATUS_CTX_MODEM_RESPONSE_TIMEOUT NTStatus = 0xC00A000B + STATUS_CTX_MODEM_RESPONSE_NO_CARRIER NTStatus = 0xC00A000C + STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE NTStatus = 0xC00A000D + STATUS_CTX_MODEM_RESPONSE_BUSY NTStatus = 0xC00A000E + STATUS_CTX_MODEM_RESPONSE_VOICE NTStatus = 0xC00A000F + STATUS_CTX_TD_ERROR NTStatus = 0xC00A0010 + STATUS_CTX_LICENSE_CLIENT_INVALID NTStatus = 0xC00A0012 + STATUS_CTX_LICENSE_NOT_AVAILABLE NTStatus = 0xC00A0013 + STATUS_CTX_LICENSE_EXPIRED NTStatus = 0xC00A0014 + STATUS_CTX_WINSTATION_NOT_FOUND NTStatus = 0xC00A0015 + STATUS_CTX_WINSTATION_NAME_COLLISION NTStatus = 0xC00A0016 + STATUS_CTX_WINSTATION_BUSY NTStatus = 0xC00A0017 + STATUS_CTX_BAD_VIDEO_MODE NTStatus = 0xC00A0018 + STATUS_CTX_GRAPHICS_INVALID NTStatus = 0xC00A0022 + STATUS_CTX_NOT_CONSOLE NTStatus = 0xC00A0024 + STATUS_CTX_CLIENT_QUERY_TIMEOUT NTStatus = 0xC00A0026 + STATUS_CTX_CONSOLE_DISCONNECT NTStatus = 0xC00A0027 + STATUS_CTX_CONSOLE_CONNECT NTStatus = 0xC00A0028 + STATUS_CTX_SHADOW_DENIED NTStatus = 0xC00A002A + STATUS_CTX_WINSTATION_ACCESS_DENIED NTStatus = 0xC00A002B + STATUS_CTX_INVALID_WD NTStatus = 0xC00A002E + STATUS_CTX_WD_NOT_FOUND NTStatus = 0xC00A002F + STATUS_CTX_SHADOW_INVALID NTStatus = 0xC00A0030 + STATUS_CTX_SHADOW_DISABLED NTStatus = 0xC00A0031 + STATUS_RDP_PROTOCOL_ERROR NTStatus = 0xC00A0032 + STATUS_CTX_CLIENT_LICENSE_NOT_SET NTStatus = 0xC00A0033 + STATUS_CTX_CLIENT_LICENSE_IN_USE NTStatus = 0xC00A0034 + STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE NTStatus = 0xC00A0035 + STATUS_CTX_SHADOW_NOT_RUNNING NTStatus = 0xC00A0036 + STATUS_CTX_LOGON_DISABLED NTStatus = 0xC00A0037 + STATUS_CTX_SECURITY_LAYER_ERROR NTStatus = 0xC00A0038 + STATUS_TS_INCOMPATIBLE_SESSIONS NTStatus = 0xC00A0039 + STATUS_TS_VIDEO_SUBSYSTEM_ERROR NTStatus = 0xC00A003A + STATUS_PNP_BAD_MPS_TABLE NTStatus = 0xC0040035 + STATUS_PNP_TRANSLATION_FAILED NTStatus = 0xC0040036 + STATUS_PNP_IRQ_TRANSLATION_FAILED NTStatus = 0xC0040037 + STATUS_PNP_INVALID_ID NTStatus = 0xC0040038 + STATUS_IO_REISSUE_AS_CACHED NTStatus = 0xC0040039 + STATUS_MUI_FILE_NOT_FOUND NTStatus = 0xC00B0001 + STATUS_MUI_INVALID_FILE NTStatus = 0xC00B0002 + STATUS_MUI_INVALID_RC_CONFIG NTStatus = 0xC00B0003 + STATUS_MUI_INVALID_LOCALE_NAME NTStatus = 0xC00B0004 + STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME NTStatus = 0xC00B0005 + STATUS_MUI_FILE_NOT_LOADED NTStatus = 0xC00B0006 + STATUS_RESOURCE_ENUM_USER_STOP NTStatus = 0xC00B0007 + STATUS_FLT_NO_HANDLER_DEFINED NTStatus = 0xC01C0001 + STATUS_FLT_CONTEXT_ALREADY_DEFINED NTStatus = 0xC01C0002 + STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST NTStatus = 0xC01C0003 + STATUS_FLT_DISALLOW_FAST_IO NTStatus = 0xC01C0004 + STATUS_FLT_INVALID_NAME_REQUEST NTStatus = 0xC01C0005 + STATUS_FLT_NOT_SAFE_TO_POST_OPERATION NTStatus = 0xC01C0006 + STATUS_FLT_NOT_INITIALIZED NTStatus = 0xC01C0007 + STATUS_FLT_FILTER_NOT_READY NTStatus = 0xC01C0008 + STATUS_FLT_POST_OPERATION_CLEANUP NTStatus = 0xC01C0009 + STATUS_FLT_INTERNAL_ERROR NTStatus = 0xC01C000A + STATUS_FLT_DELETING_OBJECT NTStatus = 0xC01C000B + STATUS_FLT_MUST_BE_NONPAGED_POOL NTStatus = 0xC01C000C + STATUS_FLT_DUPLICATE_ENTRY NTStatus = 0xC01C000D + STATUS_FLT_CBDQ_DISABLED NTStatus = 0xC01C000E + STATUS_FLT_DO_NOT_ATTACH NTStatus = 0xC01C000F + STATUS_FLT_DO_NOT_DETACH NTStatus = 0xC01C0010 + STATUS_FLT_INSTANCE_ALTITUDE_COLLISION NTStatus = 0xC01C0011 + STATUS_FLT_INSTANCE_NAME_COLLISION NTStatus = 0xC01C0012 + STATUS_FLT_FILTER_NOT_FOUND NTStatus = 0xC01C0013 + STATUS_FLT_VOLUME_NOT_FOUND NTStatus = 0xC01C0014 + STATUS_FLT_INSTANCE_NOT_FOUND NTStatus = 0xC01C0015 + STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND NTStatus = 0xC01C0016 + STATUS_FLT_INVALID_CONTEXT_REGISTRATION NTStatus = 0xC01C0017 + STATUS_FLT_NAME_CACHE_MISS NTStatus = 0xC01C0018 + STATUS_FLT_NO_DEVICE_OBJECT NTStatus = 0xC01C0019 + STATUS_FLT_VOLUME_ALREADY_MOUNTED NTStatus = 0xC01C001A + STATUS_FLT_ALREADY_ENLISTED NTStatus = 0xC01C001B + STATUS_FLT_CONTEXT_ALREADY_LINKED NTStatus = 0xC01C001C + STATUS_FLT_NO_WAITER_FOR_REPLY NTStatus = 0xC01C0020 + STATUS_FLT_REGISTRATION_BUSY NTStatus = 0xC01C0023 + STATUS_SXS_SECTION_NOT_FOUND NTStatus = 0xC0150001 + STATUS_SXS_CANT_GEN_ACTCTX NTStatus = 0xC0150002 + STATUS_SXS_INVALID_ACTCTXDATA_FORMAT NTStatus = 0xC0150003 + STATUS_SXS_ASSEMBLY_NOT_FOUND NTStatus = 0xC0150004 + STATUS_SXS_MANIFEST_FORMAT_ERROR NTStatus = 0xC0150005 + STATUS_SXS_MANIFEST_PARSE_ERROR NTStatus = 0xC0150006 + STATUS_SXS_ACTIVATION_CONTEXT_DISABLED NTStatus = 0xC0150007 + STATUS_SXS_KEY_NOT_FOUND NTStatus = 0xC0150008 + STATUS_SXS_VERSION_CONFLICT NTStatus = 0xC0150009 + STATUS_SXS_WRONG_SECTION_TYPE NTStatus = 0xC015000A + STATUS_SXS_THREAD_QUERIES_DISABLED NTStatus = 0xC015000B + STATUS_SXS_ASSEMBLY_MISSING NTStatus = 0xC015000C + STATUS_SXS_RELEASE_ACTIVATION_CONTEXT NTStatus = 0x4015000D + STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET NTStatus = 0xC015000E + STATUS_SXS_EARLY_DEACTIVATION NTStatus = 0xC015000F + STATUS_SXS_INVALID_DEACTIVATION NTStatus = 0xC0150010 + STATUS_SXS_MULTIPLE_DEACTIVATION NTStatus = 0xC0150011 + STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY NTStatus = 0xC0150012 + STATUS_SXS_PROCESS_TERMINATION_REQUESTED NTStatus = 0xC0150013 + STATUS_SXS_CORRUPT_ACTIVATION_STACK NTStatus = 0xC0150014 + STATUS_SXS_CORRUPTION NTStatus = 0xC0150015 + STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE NTStatus = 0xC0150016 + STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME NTStatus = 0xC0150017 + STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE NTStatus = 0xC0150018 + STATUS_SXS_IDENTITY_PARSE_ERROR NTStatus = 0xC0150019 + STATUS_SXS_COMPONENT_STORE_CORRUPT NTStatus = 0xC015001A + STATUS_SXS_FILE_HASH_MISMATCH NTStatus = 0xC015001B + STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT NTStatus = 0xC015001C + STATUS_SXS_IDENTITIES_DIFFERENT NTStatus = 0xC015001D + STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT NTStatus = 0xC015001E + STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY NTStatus = 0xC015001F + STATUS_ADVANCED_INSTALLER_FAILED NTStatus = 0xC0150020 + STATUS_XML_ENCODING_MISMATCH NTStatus = 0xC0150021 + STATUS_SXS_MANIFEST_TOO_BIG NTStatus = 0xC0150022 + STATUS_SXS_SETTING_NOT_REGISTERED NTStatus = 0xC0150023 + STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE NTStatus = 0xC0150024 + STATUS_SMI_PRIMITIVE_INSTALLER_FAILED NTStatus = 0xC0150025 + STATUS_GENERIC_COMMAND_FAILED NTStatus = 0xC0150026 + STATUS_SXS_FILE_HASH_MISSING NTStatus = 0xC0150027 + STATUS_CLUSTER_INVALID_NODE NTStatus = 0xC0130001 + STATUS_CLUSTER_NODE_EXISTS NTStatus = 0xC0130002 + STATUS_CLUSTER_JOIN_IN_PROGRESS NTStatus = 0xC0130003 + STATUS_CLUSTER_NODE_NOT_FOUND NTStatus = 0xC0130004 + STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND NTStatus = 0xC0130005 + STATUS_CLUSTER_NETWORK_EXISTS NTStatus = 0xC0130006 + STATUS_CLUSTER_NETWORK_NOT_FOUND NTStatus = 0xC0130007 + STATUS_CLUSTER_NETINTERFACE_EXISTS NTStatus = 0xC0130008 + STATUS_CLUSTER_NETINTERFACE_NOT_FOUND NTStatus = 0xC0130009 + STATUS_CLUSTER_INVALID_REQUEST NTStatus = 0xC013000A + STATUS_CLUSTER_INVALID_NETWORK_PROVIDER NTStatus = 0xC013000B + STATUS_CLUSTER_NODE_DOWN NTStatus = 0xC013000C + STATUS_CLUSTER_NODE_UNREACHABLE NTStatus = 0xC013000D + STATUS_CLUSTER_NODE_NOT_MEMBER NTStatus = 0xC013000E + STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS NTStatus = 0xC013000F + STATUS_CLUSTER_INVALID_NETWORK NTStatus = 0xC0130010 + STATUS_CLUSTER_NO_NET_ADAPTERS NTStatus = 0xC0130011 + STATUS_CLUSTER_NODE_UP NTStatus = 0xC0130012 + STATUS_CLUSTER_NODE_PAUSED NTStatus = 0xC0130013 + STATUS_CLUSTER_NODE_NOT_PAUSED NTStatus = 0xC0130014 + STATUS_CLUSTER_NO_SECURITY_CONTEXT NTStatus = 0xC0130015 + STATUS_CLUSTER_NETWORK_NOT_INTERNAL NTStatus = 0xC0130016 + STATUS_CLUSTER_POISONED NTStatus = 0xC0130017 + STATUS_CLUSTER_NON_CSV_PATH NTStatus = 0xC0130018 + STATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL NTStatus = 0xC0130019 + STATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS NTStatus = 0xC0130020 + STATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR NTStatus = 0xC0130021 + STATUS_CLUSTER_CSV_REDIRECTED NTStatus = 0xC0130022 + STATUS_CLUSTER_CSV_NOT_REDIRECTED NTStatus = 0xC0130023 + STATUS_CLUSTER_CSV_VOLUME_DRAINING NTStatus = 0xC0130024 + STATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS NTStatus = 0xC0130025 + STATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL NTStatus = 0xC0130026 + STATUS_CLUSTER_CSV_NO_SNAPSHOTS NTStatus = 0xC0130027 + STATUS_CSV_IO_PAUSE_TIMEOUT NTStatus = 0xC0130028 + STATUS_CLUSTER_CSV_INVALID_HANDLE NTStatus = 0xC0130029 + STATUS_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR NTStatus = 0xC0130030 + STATUS_CLUSTER_CAM_TICKET_REPLAY_DETECTED NTStatus = 0xC0130031 + STATUS_TRANSACTIONAL_CONFLICT NTStatus = 0xC0190001 + STATUS_INVALID_TRANSACTION NTStatus = 0xC0190002 + STATUS_TRANSACTION_NOT_ACTIVE NTStatus = 0xC0190003 + STATUS_TM_INITIALIZATION_FAILED NTStatus = 0xC0190004 + STATUS_RM_NOT_ACTIVE NTStatus = 0xC0190005 + STATUS_RM_METADATA_CORRUPT NTStatus = 0xC0190006 + STATUS_TRANSACTION_NOT_JOINED NTStatus = 0xC0190007 + STATUS_DIRECTORY_NOT_RM NTStatus = 0xC0190008 + STATUS_COULD_NOT_RESIZE_LOG NTStatus = 0x80190009 + STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE NTStatus = 0xC019000A + STATUS_LOG_RESIZE_INVALID_SIZE NTStatus = 0xC019000B + STATUS_REMOTE_FILE_VERSION_MISMATCH NTStatus = 0xC019000C + STATUS_CRM_PROTOCOL_ALREADY_EXISTS NTStatus = 0xC019000F + STATUS_TRANSACTION_PROPAGATION_FAILED NTStatus = 0xC0190010 + STATUS_CRM_PROTOCOL_NOT_FOUND NTStatus = 0xC0190011 + STATUS_TRANSACTION_SUPERIOR_EXISTS NTStatus = 0xC0190012 + STATUS_TRANSACTION_REQUEST_NOT_VALID NTStatus = 0xC0190013 + STATUS_TRANSACTION_NOT_REQUESTED NTStatus = 0xC0190014 + STATUS_TRANSACTION_ALREADY_ABORTED NTStatus = 0xC0190015 + STATUS_TRANSACTION_ALREADY_COMMITTED NTStatus = 0xC0190016 + STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER NTStatus = 0xC0190017 + STATUS_CURRENT_TRANSACTION_NOT_VALID NTStatus = 0xC0190018 + STATUS_LOG_GROWTH_FAILED NTStatus = 0xC0190019 + STATUS_OBJECT_NO_LONGER_EXISTS NTStatus = 0xC0190021 + STATUS_STREAM_MINIVERSION_NOT_FOUND NTStatus = 0xC0190022 + STATUS_STREAM_MINIVERSION_NOT_VALID NTStatus = 0xC0190023 + STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION NTStatus = 0xC0190024 + STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT NTStatus = 0xC0190025 + STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS NTStatus = 0xC0190026 + STATUS_HANDLE_NO_LONGER_VALID NTStatus = 0xC0190028 + STATUS_NO_TXF_METADATA NTStatus = 0x80190029 + STATUS_LOG_CORRUPTION_DETECTED NTStatus = 0xC0190030 + STATUS_CANT_RECOVER_WITH_HANDLE_OPEN NTStatus = 0x80190031 + STATUS_RM_DISCONNECTED NTStatus = 0xC0190032 + STATUS_ENLISTMENT_NOT_SUPERIOR NTStatus = 0xC0190033 + STATUS_RECOVERY_NOT_NEEDED NTStatus = 0x40190034 + STATUS_RM_ALREADY_STARTED NTStatus = 0x40190035 + STATUS_FILE_IDENTITY_NOT_PERSISTENT NTStatus = 0xC0190036 + STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY NTStatus = 0xC0190037 + STATUS_CANT_CROSS_RM_BOUNDARY NTStatus = 0xC0190038 + STATUS_TXF_DIR_NOT_EMPTY NTStatus = 0xC0190039 + STATUS_INDOUBT_TRANSACTIONS_EXIST NTStatus = 0xC019003A + STATUS_TM_VOLATILE NTStatus = 0xC019003B + STATUS_ROLLBACK_TIMER_EXPIRED NTStatus = 0xC019003C + STATUS_TXF_ATTRIBUTE_CORRUPT NTStatus = 0xC019003D + STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC019003E + STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED NTStatus = 0xC019003F + STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE NTStatus = 0xC0190040 + STATUS_TXF_METADATA_ALREADY_PRESENT NTStatus = 0x80190041 + STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET NTStatus = 0x80190042 + STATUS_TRANSACTION_REQUIRED_PROMOTION NTStatus = 0xC0190043 + STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION NTStatus = 0xC0190044 + STATUS_TRANSACTIONS_NOT_FROZEN NTStatus = 0xC0190045 + STATUS_TRANSACTION_FREEZE_IN_PROGRESS NTStatus = 0xC0190046 + STATUS_NOT_SNAPSHOT_VOLUME NTStatus = 0xC0190047 + STATUS_NO_SAVEPOINT_WITH_OPEN_FILES NTStatus = 0xC0190048 + STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC0190049 + STATUS_TM_IDENTITY_MISMATCH NTStatus = 0xC019004A + STATUS_FLOATED_SECTION NTStatus = 0xC019004B + STATUS_CANNOT_ACCEPT_TRANSACTED_WORK NTStatus = 0xC019004C + STATUS_CANNOT_ABORT_TRANSACTIONS NTStatus = 0xC019004D + STATUS_TRANSACTION_NOT_FOUND NTStatus = 0xC019004E + STATUS_RESOURCEMANAGER_NOT_FOUND NTStatus = 0xC019004F + STATUS_ENLISTMENT_NOT_FOUND NTStatus = 0xC0190050 + STATUS_TRANSACTIONMANAGER_NOT_FOUND NTStatus = 0xC0190051 + STATUS_TRANSACTIONMANAGER_NOT_ONLINE NTStatus = 0xC0190052 + STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION NTStatus = 0xC0190053 + STATUS_TRANSACTION_NOT_ROOT NTStatus = 0xC0190054 + STATUS_TRANSACTION_OBJECT_EXPIRED NTStatus = 0xC0190055 + STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION NTStatus = 0xC0190056 + STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED NTStatus = 0xC0190057 + STATUS_TRANSACTION_RECORD_TOO_LONG NTStatus = 0xC0190058 + STATUS_NO_LINK_TRACKING_IN_TRANSACTION NTStatus = 0xC0190059 + STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION NTStatus = 0xC019005A + STATUS_TRANSACTION_INTEGRITY_VIOLATED NTStatus = 0xC019005B + STATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH NTStatus = 0xC019005C + STATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT NTStatus = 0xC019005D + STATUS_TRANSACTION_MUST_WRITETHROUGH NTStatus = 0xC019005E + STATUS_TRANSACTION_NO_SUPERIOR NTStatus = 0xC019005F + STATUS_EXPIRED_HANDLE NTStatus = 0xC0190060 + STATUS_TRANSACTION_NOT_ENLISTED NTStatus = 0xC0190061 + STATUS_LOG_SECTOR_INVALID NTStatus = 0xC01A0001 + STATUS_LOG_SECTOR_PARITY_INVALID NTStatus = 0xC01A0002 + STATUS_LOG_SECTOR_REMAPPED NTStatus = 0xC01A0003 + STATUS_LOG_BLOCK_INCOMPLETE NTStatus = 0xC01A0004 + STATUS_LOG_INVALID_RANGE NTStatus = 0xC01A0005 + STATUS_LOG_BLOCKS_EXHAUSTED NTStatus = 0xC01A0006 + STATUS_LOG_READ_CONTEXT_INVALID NTStatus = 0xC01A0007 + STATUS_LOG_RESTART_INVALID NTStatus = 0xC01A0008 + STATUS_LOG_BLOCK_VERSION NTStatus = 0xC01A0009 + STATUS_LOG_BLOCK_INVALID NTStatus = 0xC01A000A + STATUS_LOG_READ_MODE_INVALID NTStatus = 0xC01A000B + STATUS_LOG_NO_RESTART NTStatus = 0x401A000C + STATUS_LOG_METADATA_CORRUPT NTStatus = 0xC01A000D + STATUS_LOG_METADATA_INVALID NTStatus = 0xC01A000E + STATUS_LOG_METADATA_INCONSISTENT NTStatus = 0xC01A000F + STATUS_LOG_RESERVATION_INVALID NTStatus = 0xC01A0010 + STATUS_LOG_CANT_DELETE NTStatus = 0xC01A0011 + STATUS_LOG_CONTAINER_LIMIT_EXCEEDED NTStatus = 0xC01A0012 + STATUS_LOG_START_OF_LOG NTStatus = 0xC01A0013 + STATUS_LOG_POLICY_ALREADY_INSTALLED NTStatus = 0xC01A0014 + STATUS_LOG_POLICY_NOT_INSTALLED NTStatus = 0xC01A0015 + STATUS_LOG_POLICY_INVALID NTStatus = 0xC01A0016 + STATUS_LOG_POLICY_CONFLICT NTStatus = 0xC01A0017 + STATUS_LOG_PINNED_ARCHIVE_TAIL NTStatus = 0xC01A0018 + STATUS_LOG_RECORD_NONEXISTENT NTStatus = 0xC01A0019 + STATUS_LOG_RECORDS_RESERVED_INVALID NTStatus = 0xC01A001A + STATUS_LOG_SPACE_RESERVED_INVALID NTStatus = 0xC01A001B + STATUS_LOG_TAIL_INVALID NTStatus = 0xC01A001C + STATUS_LOG_FULL NTStatus = 0xC01A001D + STATUS_LOG_MULTIPLEXED NTStatus = 0xC01A001E + STATUS_LOG_DEDICATED NTStatus = 0xC01A001F + STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS NTStatus = 0xC01A0020 + STATUS_LOG_ARCHIVE_IN_PROGRESS NTStatus = 0xC01A0021 + STATUS_LOG_EPHEMERAL NTStatus = 0xC01A0022 + STATUS_LOG_NOT_ENOUGH_CONTAINERS NTStatus = 0xC01A0023 + STATUS_LOG_CLIENT_ALREADY_REGISTERED NTStatus = 0xC01A0024 + STATUS_LOG_CLIENT_NOT_REGISTERED NTStatus = 0xC01A0025 + STATUS_LOG_FULL_HANDLER_IN_PROGRESS NTStatus = 0xC01A0026 + STATUS_LOG_CONTAINER_READ_FAILED NTStatus = 0xC01A0027 + STATUS_LOG_CONTAINER_WRITE_FAILED NTStatus = 0xC01A0028 + STATUS_LOG_CONTAINER_OPEN_FAILED NTStatus = 0xC01A0029 + STATUS_LOG_CONTAINER_STATE_INVALID NTStatus = 0xC01A002A + STATUS_LOG_STATE_INVALID NTStatus = 0xC01A002B + STATUS_LOG_PINNED NTStatus = 0xC01A002C + STATUS_LOG_METADATA_FLUSH_FAILED NTStatus = 0xC01A002D + STATUS_LOG_INCONSISTENT_SECURITY NTStatus = 0xC01A002E + STATUS_LOG_APPENDED_FLUSH_FAILED NTStatus = 0xC01A002F + STATUS_LOG_PINNED_RESERVATION NTStatus = 0xC01A0030 + STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD NTStatus = 0xC01B00EA + STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED NTStatus = 0x801B00EB + STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST NTStatus = 0x401B00EC + STATUS_MONITOR_NO_DESCRIPTOR NTStatus = 0xC01D0001 + STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT NTStatus = 0xC01D0002 + STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM NTStatus = 0xC01D0003 + STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK NTStatus = 0xC01D0004 + STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED NTStatus = 0xC01D0005 + STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK NTStatus = 0xC01D0006 + STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK NTStatus = 0xC01D0007 + STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA NTStatus = 0xC01D0008 + STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK NTStatus = 0xC01D0009 + STATUS_MONITOR_INVALID_MANUFACTURE_DATE NTStatus = 0xC01D000A + STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER NTStatus = 0xC01E0000 + STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER NTStatus = 0xC01E0001 + STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER NTStatus = 0xC01E0002 + STATUS_GRAPHICS_ADAPTER_WAS_RESET NTStatus = 0xC01E0003 + STATUS_GRAPHICS_INVALID_DRIVER_MODEL NTStatus = 0xC01E0004 + STATUS_GRAPHICS_PRESENT_MODE_CHANGED NTStatus = 0xC01E0005 + STATUS_GRAPHICS_PRESENT_OCCLUDED NTStatus = 0xC01E0006 + STATUS_GRAPHICS_PRESENT_DENIED NTStatus = 0xC01E0007 + STATUS_GRAPHICS_CANNOTCOLORCONVERT NTStatus = 0xC01E0008 + STATUS_GRAPHICS_DRIVER_MISMATCH NTStatus = 0xC01E0009 + STATUS_GRAPHICS_PARTIAL_DATA_POPULATED NTStatus = 0x401E000A + STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED NTStatus = 0xC01E000B + STATUS_GRAPHICS_PRESENT_UNOCCLUDED NTStatus = 0xC01E000C + STATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE NTStatus = 0xC01E000D + STATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED NTStatus = 0xC01E000E + STATUS_GRAPHICS_PRESENT_INVALID_WINDOW NTStatus = 0xC01E000F + STATUS_GRAPHICS_PRESENT_BUFFER_NOT_BOUND NTStatus = 0xC01E0010 + STATUS_GRAPHICS_VAIL_STATE_CHANGED NTStatus = 0xC01E0011 + STATUS_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN NTStatus = 0xC01E0012 + STATUS_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED NTStatus = 0xC01E0013 + STATUS_GRAPHICS_NO_VIDEO_MEMORY NTStatus = 0xC01E0100 + STATUS_GRAPHICS_CANT_LOCK_MEMORY NTStatus = 0xC01E0101 + STATUS_GRAPHICS_ALLOCATION_BUSY NTStatus = 0xC01E0102 + STATUS_GRAPHICS_TOO_MANY_REFERENCES NTStatus = 0xC01E0103 + STATUS_GRAPHICS_TRY_AGAIN_LATER NTStatus = 0xC01E0104 + STATUS_GRAPHICS_TRY_AGAIN_NOW NTStatus = 0xC01E0105 + STATUS_GRAPHICS_ALLOCATION_INVALID NTStatus = 0xC01E0106 + STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE NTStatus = 0xC01E0107 + STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED NTStatus = 0xC01E0108 + STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION NTStatus = 0xC01E0109 + STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE NTStatus = 0xC01E0110 + STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION NTStatus = 0xC01E0111 + STATUS_GRAPHICS_ALLOCATION_CLOSED NTStatus = 0xC01E0112 + STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE NTStatus = 0xC01E0113 + STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE NTStatus = 0xC01E0114 + STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE NTStatus = 0xC01E0115 + STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST NTStatus = 0xC01E0116 + STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE NTStatus = 0xC01E0200 + STATUS_GRAPHICS_SKIP_ALLOCATION_PREPARATION NTStatus = 0x401E0201 + STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY NTStatus = 0xC01E0300 + STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED NTStatus = 0xC01E0301 + STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED NTStatus = 0xC01E0302 + STATUS_GRAPHICS_INVALID_VIDPN NTStatus = 0xC01E0303 + STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE NTStatus = 0xC01E0304 + STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET NTStatus = 0xC01E0305 + STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED NTStatus = 0xC01E0306 + STATUS_GRAPHICS_MODE_NOT_PINNED NTStatus = 0x401E0307 + STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET NTStatus = 0xC01E0308 + STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET NTStatus = 0xC01E0309 + STATUS_GRAPHICS_INVALID_FREQUENCY NTStatus = 0xC01E030A + STATUS_GRAPHICS_INVALID_ACTIVE_REGION NTStatus = 0xC01E030B + STATUS_GRAPHICS_INVALID_TOTAL_REGION NTStatus = 0xC01E030C + STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE NTStatus = 0xC01E0310 + STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE NTStatus = 0xC01E0311 + STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET NTStatus = 0xC01E0312 + STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY NTStatus = 0xC01E0313 + STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET NTStatus = 0xC01E0314 + STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET NTStatus = 0xC01E0315 + STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET NTStatus = 0xC01E0316 + STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET NTStatus = 0xC01E0317 + STATUS_GRAPHICS_TARGET_ALREADY_IN_SET NTStatus = 0xC01E0318 + STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH NTStatus = 0xC01E0319 + STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY NTStatus = 0xC01E031A + STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET NTStatus = 0xC01E031B + STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE NTStatus = 0xC01E031C + STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET NTStatus = 0xC01E031D + STATUS_GRAPHICS_NO_PREFERRED_MODE NTStatus = 0x401E031E + STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET NTStatus = 0xC01E031F + STATUS_GRAPHICS_STALE_MODESET NTStatus = 0xC01E0320 + STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET NTStatus = 0xC01E0321 + STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE NTStatus = 0xC01E0322 + STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN NTStatus = 0xC01E0323 + STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0324 + STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION NTStatus = 0xC01E0325 + STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES NTStatus = 0xC01E0326 + STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY NTStatus = 0xC01E0327 + STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE NTStatus = 0xC01E0328 + STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET NTStatus = 0xC01E0329 + STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET NTStatus = 0xC01E032A + STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR NTStatus = 0xC01E032B + STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET NTStatus = 0xC01E032C + STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET NTStatus = 0xC01E032D + STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE NTStatus = 0xC01E032E + STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE NTStatus = 0xC01E032F + STATUS_GRAPHICS_RESOURCES_NOT_RELATED NTStatus = 0xC01E0330 + STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0331 + STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE NTStatus = 0xC01E0332 + STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET NTStatus = 0xC01E0333 + STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER NTStatus = 0xC01E0334 + STATUS_GRAPHICS_NO_VIDPNMGR NTStatus = 0xC01E0335 + STATUS_GRAPHICS_NO_ACTIVE_VIDPN NTStatus = 0xC01E0336 + STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY NTStatus = 0xC01E0337 + STATUS_GRAPHICS_MONITOR_NOT_CONNECTED NTStatus = 0xC01E0338 + STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY NTStatus = 0xC01E0339 + STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE NTStatus = 0xC01E033A + STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE NTStatus = 0xC01E033B + STATUS_GRAPHICS_INVALID_STRIDE NTStatus = 0xC01E033C + STATUS_GRAPHICS_INVALID_PIXELFORMAT NTStatus = 0xC01E033D + STATUS_GRAPHICS_INVALID_COLORBASIS NTStatus = 0xC01E033E + STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE NTStatus = 0xC01E033F + STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY NTStatus = 0xC01E0340 + STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT NTStatus = 0xC01E0341 + STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE NTStatus = 0xC01E0342 + STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN NTStatus = 0xC01E0343 + STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL NTStatus = 0xC01E0344 + STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION NTStatus = 0xC01E0345 + STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED NTStatus = 0xC01E0346 + STATUS_GRAPHICS_INVALID_GAMMA_RAMP NTStatus = 0xC01E0347 + STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED NTStatus = 0xC01E0348 + STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED NTStatus = 0xC01E0349 + STATUS_GRAPHICS_MODE_NOT_IN_MODESET NTStatus = 0xC01E034A + STATUS_GRAPHICS_DATASET_IS_EMPTY NTStatus = 0x401E034B + STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET NTStatus = 0x401E034C + STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON NTStatus = 0xC01E034D + STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE NTStatus = 0xC01E034E + STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE NTStatus = 0xC01E034F + STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS NTStatus = 0xC01E0350 + STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED NTStatus = 0x401E0351 + STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING NTStatus = 0xC01E0352 + STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED NTStatus = 0xC01E0353 + STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS NTStatus = 0xC01E0354 + STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT NTStatus = 0xC01E0355 + STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM NTStatus = 0xC01E0356 + STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN NTStatus = 0xC01E0357 + STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT NTStatus = 0xC01E0358 + STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED NTStatus = 0xC01E0359 + STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION NTStatus = 0xC01E035A + STATUS_GRAPHICS_INVALID_CLIENT_TYPE NTStatus = 0xC01E035B + STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET NTStatus = 0xC01E035C + STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED NTStatus = 0xC01E0400 + STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED NTStatus = 0xC01E0401 + STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS NTStatus = 0x401E042F + STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER NTStatus = 0xC01E0430 + STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED NTStatus = 0xC01E0431 + STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED NTStatus = 0xC01E0432 + STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY NTStatus = 0xC01E0433 + STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED NTStatus = 0xC01E0434 + STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON NTStatus = 0xC01E0435 + STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE NTStatus = 0xC01E0436 + STATUS_GRAPHICS_LEADLINK_START_DEFERRED NTStatus = 0x401E0437 + STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER NTStatus = 0xC01E0438 + STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY NTStatus = 0x401E0439 + STATUS_GRAPHICS_START_DEFERRED NTStatus = 0x401E043A + STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED NTStatus = 0xC01E043B + STATUS_GRAPHICS_DEPENDABLE_CHILD_STATUS NTStatus = 0x401E043C + STATUS_GRAPHICS_OPM_NOT_SUPPORTED NTStatus = 0xC01E0500 + STATUS_GRAPHICS_COPP_NOT_SUPPORTED NTStatus = 0xC01E0501 + STATUS_GRAPHICS_UAB_NOT_SUPPORTED NTStatus = 0xC01E0502 + STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS NTStatus = 0xC01E0503 + STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST NTStatus = 0xC01E0505 + STATUS_GRAPHICS_OPM_INTERNAL_ERROR NTStatus = 0xC01E050B + STATUS_GRAPHICS_OPM_INVALID_HANDLE NTStatus = 0xC01E050C + STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH NTStatus = 0xC01E050E + STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED NTStatus = 0xC01E050F + STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED NTStatus = 0xC01E0510 + STATUS_GRAPHICS_PVP_HFS_FAILED NTStatus = 0xC01E0511 + STATUS_GRAPHICS_OPM_INVALID_SRM NTStatus = 0xC01E0512 + STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP NTStatus = 0xC01E0513 + STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP NTStatus = 0xC01E0514 + STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA NTStatus = 0xC01E0515 + STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET NTStatus = 0xC01E0516 + STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH NTStatus = 0xC01E0517 + STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE NTStatus = 0xC01E0518 + STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS NTStatus = 0xC01E051A + STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS NTStatus = 0xC01E051C + STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST NTStatus = 0xC01E051D + STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR NTStatus = 0xC01E051E + STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS NTStatus = 0xC01E051F + STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED NTStatus = 0xC01E0520 + STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST NTStatus = 0xC01E0521 + STATUS_GRAPHICS_I2C_NOT_SUPPORTED NTStatus = 0xC01E0580 + STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST NTStatus = 0xC01E0581 + STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA NTStatus = 0xC01E0582 + STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA NTStatus = 0xC01E0583 + STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED NTStatus = 0xC01E0584 + STATUS_GRAPHICS_DDCCI_INVALID_DATA NTStatus = 0xC01E0585 + STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE NTStatus = 0xC01E0586 + STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING NTStatus = 0xC01E0587 + STATUS_GRAPHICS_MCA_INTERNAL_ERROR NTStatus = 0xC01E0588 + STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND NTStatus = 0xC01E0589 + STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH NTStatus = 0xC01E058A + STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM NTStatus = 0xC01E058B + STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE NTStatus = 0xC01E058C + STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS NTStatus = 0xC01E058D + STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED NTStatus = 0xC01E05E0 + STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME NTStatus = 0xC01E05E1 + STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP NTStatus = 0xC01E05E2 + STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED NTStatus = 0xC01E05E3 + STATUS_GRAPHICS_INVALID_POINTER NTStatus = 0xC01E05E4 + STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE NTStatus = 0xC01E05E5 + STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL NTStatus = 0xC01E05E6 + STATUS_GRAPHICS_INTERNAL_ERROR NTStatus = 0xC01E05E7 + STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS NTStatus = 0xC01E05E8 + STATUS_FVE_LOCKED_VOLUME NTStatus = 0xC0210000 + STATUS_FVE_NOT_ENCRYPTED NTStatus = 0xC0210001 + STATUS_FVE_BAD_INFORMATION NTStatus = 0xC0210002 + STATUS_FVE_TOO_SMALL NTStatus = 0xC0210003 + STATUS_FVE_FAILED_WRONG_FS NTStatus = 0xC0210004 + STATUS_FVE_BAD_PARTITION_SIZE NTStatus = 0xC0210005 + STATUS_FVE_FS_NOT_EXTENDED NTStatus = 0xC0210006 + STATUS_FVE_FS_MOUNTED NTStatus = 0xC0210007 + STATUS_FVE_NO_LICENSE NTStatus = 0xC0210008 + STATUS_FVE_ACTION_NOT_ALLOWED NTStatus = 0xC0210009 + STATUS_FVE_BAD_DATA NTStatus = 0xC021000A + STATUS_FVE_VOLUME_NOT_BOUND NTStatus = 0xC021000B + STATUS_FVE_NOT_DATA_VOLUME NTStatus = 0xC021000C + STATUS_FVE_CONV_READ_ERROR NTStatus = 0xC021000D + STATUS_FVE_CONV_WRITE_ERROR NTStatus = 0xC021000E + STATUS_FVE_OVERLAPPED_UPDATE NTStatus = 0xC021000F + STATUS_FVE_FAILED_SECTOR_SIZE NTStatus = 0xC0210010 + STATUS_FVE_FAILED_AUTHENTICATION NTStatus = 0xC0210011 + STATUS_FVE_NOT_OS_VOLUME NTStatus = 0xC0210012 + STATUS_FVE_KEYFILE_NOT_FOUND NTStatus = 0xC0210013 + STATUS_FVE_KEYFILE_INVALID NTStatus = 0xC0210014 + STATUS_FVE_KEYFILE_NO_VMK NTStatus = 0xC0210015 + STATUS_FVE_TPM_DISABLED NTStatus = 0xC0210016 + STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO NTStatus = 0xC0210017 + STATUS_FVE_TPM_INVALID_PCR NTStatus = 0xC0210018 + STATUS_FVE_TPM_NO_VMK NTStatus = 0xC0210019 + STATUS_FVE_PIN_INVALID NTStatus = 0xC021001A + STATUS_FVE_AUTH_INVALID_APPLICATION NTStatus = 0xC021001B + STATUS_FVE_AUTH_INVALID_CONFIG NTStatus = 0xC021001C + STATUS_FVE_DEBUGGER_ENABLED NTStatus = 0xC021001D + STATUS_FVE_DRY_RUN_FAILED NTStatus = 0xC021001E + STATUS_FVE_BAD_METADATA_POINTER NTStatus = 0xC021001F + STATUS_FVE_OLD_METADATA_COPY NTStatus = 0xC0210020 + STATUS_FVE_REBOOT_REQUIRED NTStatus = 0xC0210021 + STATUS_FVE_RAW_ACCESS NTStatus = 0xC0210022 + STATUS_FVE_RAW_BLOCKED NTStatus = 0xC0210023 + STATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY NTStatus = 0xC0210024 + STATUS_FVE_MOR_FAILED NTStatus = 0xC0210025 + STATUS_FVE_NO_FEATURE_LICENSE NTStatus = 0xC0210026 + STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED NTStatus = 0xC0210027 + STATUS_FVE_CONV_RECOVERY_FAILED NTStatus = 0xC0210028 + STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG NTStatus = 0xC0210029 + STATUS_FVE_INVALID_DATUM_TYPE NTStatus = 0xC021002A + STATUS_FVE_VOLUME_TOO_SMALL NTStatus = 0xC0210030 + STATUS_FVE_ENH_PIN_INVALID NTStatus = 0xC0210031 + STATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE NTStatus = 0xC0210032 + STATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE NTStatus = 0xC0210033 + STATUS_FVE_NOT_ALLOWED_ON_CSV_STACK NTStatus = 0xC0210034 + STATUS_FVE_NOT_ALLOWED_ON_CLUSTER NTStatus = 0xC0210035 + STATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING NTStatus = 0xC0210036 + STATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE NTStatus = 0xC0210037 + STATUS_FVE_EDRIVE_DRY_RUN_FAILED NTStatus = 0xC0210038 + STATUS_FVE_SECUREBOOT_DISABLED NTStatus = 0xC0210039 + STATUS_FVE_SECUREBOOT_CONFIG_CHANGE NTStatus = 0xC021003A + STATUS_FVE_DEVICE_LOCKEDOUT NTStatus = 0xC021003B + STATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT NTStatus = 0xC021003C + STATUS_FVE_NOT_DE_VOLUME NTStatus = 0xC021003D + STATUS_FVE_PROTECTION_DISABLED NTStatus = 0xC021003E + STATUS_FVE_PROTECTION_CANNOT_BE_DISABLED NTStatus = 0xC021003F + STATUS_FVE_OSV_KSR_NOT_ALLOWED NTStatus = 0xC0210040 + STATUS_FWP_CALLOUT_NOT_FOUND NTStatus = 0xC0220001 + STATUS_FWP_CONDITION_NOT_FOUND NTStatus = 0xC0220002 + STATUS_FWP_FILTER_NOT_FOUND NTStatus = 0xC0220003 + STATUS_FWP_LAYER_NOT_FOUND NTStatus = 0xC0220004 + STATUS_FWP_PROVIDER_NOT_FOUND NTStatus = 0xC0220005 + STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND NTStatus = 0xC0220006 + STATUS_FWP_SUBLAYER_NOT_FOUND NTStatus = 0xC0220007 + STATUS_FWP_NOT_FOUND NTStatus = 0xC0220008 + STATUS_FWP_ALREADY_EXISTS NTStatus = 0xC0220009 + STATUS_FWP_IN_USE NTStatus = 0xC022000A + STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS NTStatus = 0xC022000B + STATUS_FWP_WRONG_SESSION NTStatus = 0xC022000C + STATUS_FWP_NO_TXN_IN_PROGRESS NTStatus = 0xC022000D + STATUS_FWP_TXN_IN_PROGRESS NTStatus = 0xC022000E + STATUS_FWP_TXN_ABORTED NTStatus = 0xC022000F + STATUS_FWP_SESSION_ABORTED NTStatus = 0xC0220010 + STATUS_FWP_INCOMPATIBLE_TXN NTStatus = 0xC0220011 + STATUS_FWP_TIMEOUT NTStatus = 0xC0220012 + STATUS_FWP_NET_EVENTS_DISABLED NTStatus = 0xC0220013 + STATUS_FWP_INCOMPATIBLE_LAYER NTStatus = 0xC0220014 + STATUS_FWP_KM_CLIENTS_ONLY NTStatus = 0xC0220015 + STATUS_FWP_LIFETIME_MISMATCH NTStatus = 0xC0220016 + STATUS_FWP_BUILTIN_OBJECT NTStatus = 0xC0220017 + STATUS_FWP_TOO_MANY_CALLOUTS NTStatus = 0xC0220018 + STATUS_FWP_NOTIFICATION_DROPPED NTStatus = 0xC0220019 + STATUS_FWP_TRAFFIC_MISMATCH NTStatus = 0xC022001A + STATUS_FWP_INCOMPATIBLE_SA_STATE NTStatus = 0xC022001B + STATUS_FWP_NULL_POINTER NTStatus = 0xC022001C + STATUS_FWP_INVALID_ENUMERATOR NTStatus = 0xC022001D + STATUS_FWP_INVALID_FLAGS NTStatus = 0xC022001E + STATUS_FWP_INVALID_NET_MASK NTStatus = 0xC022001F + STATUS_FWP_INVALID_RANGE NTStatus = 0xC0220020 + STATUS_FWP_INVALID_INTERVAL NTStatus = 0xC0220021 + STATUS_FWP_ZERO_LENGTH_ARRAY NTStatus = 0xC0220022 + STATUS_FWP_NULL_DISPLAY_NAME NTStatus = 0xC0220023 + STATUS_FWP_INVALID_ACTION_TYPE NTStatus = 0xC0220024 + STATUS_FWP_INVALID_WEIGHT NTStatus = 0xC0220025 + STATUS_FWP_MATCH_TYPE_MISMATCH NTStatus = 0xC0220026 + STATUS_FWP_TYPE_MISMATCH NTStatus = 0xC0220027 + STATUS_FWP_OUT_OF_BOUNDS NTStatus = 0xC0220028 + STATUS_FWP_RESERVED NTStatus = 0xC0220029 + STATUS_FWP_DUPLICATE_CONDITION NTStatus = 0xC022002A + STATUS_FWP_DUPLICATE_KEYMOD NTStatus = 0xC022002B + STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER NTStatus = 0xC022002C + STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER NTStatus = 0xC022002D + STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER NTStatus = 0xC022002E + STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT NTStatus = 0xC022002F + STATUS_FWP_INCOMPATIBLE_AUTH_METHOD NTStatus = 0xC0220030 + STATUS_FWP_INCOMPATIBLE_DH_GROUP NTStatus = 0xC0220031 + STATUS_FWP_EM_NOT_SUPPORTED NTStatus = 0xC0220032 + STATUS_FWP_NEVER_MATCH NTStatus = 0xC0220033 + STATUS_FWP_PROVIDER_CONTEXT_MISMATCH NTStatus = 0xC0220034 + STATUS_FWP_INVALID_PARAMETER NTStatus = 0xC0220035 + STATUS_FWP_TOO_MANY_SUBLAYERS NTStatus = 0xC0220036 + STATUS_FWP_CALLOUT_NOTIFICATION_FAILED NTStatus = 0xC0220037 + STATUS_FWP_INVALID_AUTH_TRANSFORM NTStatus = 0xC0220038 + STATUS_FWP_INVALID_CIPHER_TRANSFORM NTStatus = 0xC0220039 + STATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM NTStatus = 0xC022003A + STATUS_FWP_INVALID_TRANSFORM_COMBINATION NTStatus = 0xC022003B + STATUS_FWP_DUPLICATE_AUTH_METHOD NTStatus = 0xC022003C + STATUS_FWP_INVALID_TUNNEL_ENDPOINT NTStatus = 0xC022003D + STATUS_FWP_L2_DRIVER_NOT_READY NTStatus = 0xC022003E + STATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED NTStatus = 0xC022003F + STATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL NTStatus = 0xC0220040 + STATUS_FWP_CONNECTIONS_DISABLED NTStatus = 0xC0220041 + STATUS_FWP_INVALID_DNS_NAME NTStatus = 0xC0220042 + STATUS_FWP_STILL_ON NTStatus = 0xC0220043 + STATUS_FWP_IKEEXT_NOT_RUNNING NTStatus = 0xC0220044 + STATUS_FWP_TCPIP_NOT_READY NTStatus = 0xC0220100 + STATUS_FWP_INJECT_HANDLE_CLOSING NTStatus = 0xC0220101 + STATUS_FWP_INJECT_HANDLE_STALE NTStatus = 0xC0220102 + STATUS_FWP_CANNOT_PEND NTStatus = 0xC0220103 + STATUS_FWP_DROP_NOICMP NTStatus = 0xC0220104 + STATUS_NDIS_CLOSING NTStatus = 0xC0230002 + STATUS_NDIS_BAD_VERSION NTStatus = 0xC0230004 + STATUS_NDIS_BAD_CHARACTERISTICS NTStatus = 0xC0230005 + STATUS_NDIS_ADAPTER_NOT_FOUND NTStatus = 0xC0230006 + STATUS_NDIS_OPEN_FAILED NTStatus = 0xC0230007 + STATUS_NDIS_DEVICE_FAILED NTStatus = 0xC0230008 + STATUS_NDIS_MULTICAST_FULL NTStatus = 0xC0230009 + STATUS_NDIS_MULTICAST_EXISTS NTStatus = 0xC023000A + STATUS_NDIS_MULTICAST_NOT_FOUND NTStatus = 0xC023000B + STATUS_NDIS_REQUEST_ABORTED NTStatus = 0xC023000C + STATUS_NDIS_RESET_IN_PROGRESS NTStatus = 0xC023000D + STATUS_NDIS_NOT_SUPPORTED NTStatus = 0xC02300BB + STATUS_NDIS_INVALID_PACKET NTStatus = 0xC023000F + STATUS_NDIS_ADAPTER_NOT_READY NTStatus = 0xC0230011 + STATUS_NDIS_INVALID_LENGTH NTStatus = 0xC0230014 + STATUS_NDIS_INVALID_DATA NTStatus = 0xC0230015 + STATUS_NDIS_BUFFER_TOO_SHORT NTStatus = 0xC0230016 + STATUS_NDIS_INVALID_OID NTStatus = 0xC0230017 + STATUS_NDIS_ADAPTER_REMOVED NTStatus = 0xC0230018 + STATUS_NDIS_UNSUPPORTED_MEDIA NTStatus = 0xC0230019 + STATUS_NDIS_GROUP_ADDRESS_IN_USE NTStatus = 0xC023001A + STATUS_NDIS_FILE_NOT_FOUND NTStatus = 0xC023001B + STATUS_NDIS_ERROR_READING_FILE NTStatus = 0xC023001C + STATUS_NDIS_ALREADY_MAPPED NTStatus = 0xC023001D + STATUS_NDIS_RESOURCE_CONFLICT NTStatus = 0xC023001E + STATUS_NDIS_MEDIA_DISCONNECTED NTStatus = 0xC023001F + STATUS_NDIS_INVALID_ADDRESS NTStatus = 0xC0230022 + STATUS_NDIS_INVALID_DEVICE_REQUEST NTStatus = 0xC0230010 + STATUS_NDIS_PAUSED NTStatus = 0xC023002A + STATUS_NDIS_INTERFACE_NOT_FOUND NTStatus = 0xC023002B + STATUS_NDIS_UNSUPPORTED_REVISION NTStatus = 0xC023002C + STATUS_NDIS_INVALID_PORT NTStatus = 0xC023002D + STATUS_NDIS_INVALID_PORT_STATE NTStatus = 0xC023002E + STATUS_NDIS_LOW_POWER_STATE NTStatus = 0xC023002F + STATUS_NDIS_REINIT_REQUIRED NTStatus = 0xC0230030 + STATUS_NDIS_NO_QUEUES NTStatus = 0xC0230031 + STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED NTStatus = 0xC0232000 + STATUS_NDIS_DOT11_MEDIA_IN_USE NTStatus = 0xC0232001 + STATUS_NDIS_DOT11_POWER_STATE_INVALID NTStatus = 0xC0232002 + STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL NTStatus = 0xC0232003 + STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL NTStatus = 0xC0232004 + STATUS_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE NTStatus = 0xC0232005 + STATUS_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE NTStatus = 0xC0232006 + STATUS_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED NTStatus = 0xC0232007 + STATUS_NDIS_DOT11_AP_BAND_NOT_ALLOWED NTStatus = 0xC0232008 + STATUS_NDIS_INDICATION_REQUIRED NTStatus = 0x40230001 + STATUS_NDIS_OFFLOAD_POLICY NTStatus = 0xC023100F + STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED NTStatus = 0xC0231012 + STATUS_NDIS_OFFLOAD_PATH_REJECTED NTStatus = 0xC0231013 + STATUS_TPM_ERROR_MASK NTStatus = 0xC0290000 + STATUS_TPM_AUTHFAIL NTStatus = 0xC0290001 + STATUS_TPM_BADINDEX NTStatus = 0xC0290002 + STATUS_TPM_BAD_PARAMETER NTStatus = 0xC0290003 + STATUS_TPM_AUDITFAILURE NTStatus = 0xC0290004 + STATUS_TPM_CLEAR_DISABLED NTStatus = 0xC0290005 + STATUS_TPM_DEACTIVATED NTStatus = 0xC0290006 + STATUS_TPM_DISABLED NTStatus = 0xC0290007 + STATUS_TPM_DISABLED_CMD NTStatus = 0xC0290008 + STATUS_TPM_FAIL NTStatus = 0xC0290009 + STATUS_TPM_BAD_ORDINAL NTStatus = 0xC029000A + STATUS_TPM_INSTALL_DISABLED NTStatus = 0xC029000B + STATUS_TPM_INVALID_KEYHANDLE NTStatus = 0xC029000C + STATUS_TPM_KEYNOTFOUND NTStatus = 0xC029000D + STATUS_TPM_INAPPROPRIATE_ENC NTStatus = 0xC029000E + STATUS_TPM_MIGRATEFAIL NTStatus = 0xC029000F + STATUS_TPM_INVALID_PCR_INFO NTStatus = 0xC0290010 + STATUS_TPM_NOSPACE NTStatus = 0xC0290011 + STATUS_TPM_NOSRK NTStatus = 0xC0290012 + STATUS_TPM_NOTSEALED_BLOB NTStatus = 0xC0290013 + STATUS_TPM_OWNER_SET NTStatus = 0xC0290014 + STATUS_TPM_RESOURCES NTStatus = 0xC0290015 + STATUS_TPM_SHORTRANDOM NTStatus = 0xC0290016 + STATUS_TPM_SIZE NTStatus = 0xC0290017 + STATUS_TPM_WRONGPCRVAL NTStatus = 0xC0290018 + STATUS_TPM_BAD_PARAM_SIZE NTStatus = 0xC0290019 + STATUS_TPM_SHA_THREAD NTStatus = 0xC029001A + STATUS_TPM_SHA_ERROR NTStatus = 0xC029001B + STATUS_TPM_FAILEDSELFTEST NTStatus = 0xC029001C + STATUS_TPM_AUTH2FAIL NTStatus = 0xC029001D + STATUS_TPM_BADTAG NTStatus = 0xC029001E + STATUS_TPM_IOERROR NTStatus = 0xC029001F + STATUS_TPM_ENCRYPT_ERROR NTStatus = 0xC0290020 + STATUS_TPM_DECRYPT_ERROR NTStatus = 0xC0290021 + STATUS_TPM_INVALID_AUTHHANDLE NTStatus = 0xC0290022 + STATUS_TPM_NO_ENDORSEMENT NTStatus = 0xC0290023 + STATUS_TPM_INVALID_KEYUSAGE NTStatus = 0xC0290024 + STATUS_TPM_WRONG_ENTITYTYPE NTStatus = 0xC0290025 + STATUS_TPM_INVALID_POSTINIT NTStatus = 0xC0290026 + STATUS_TPM_INAPPROPRIATE_SIG NTStatus = 0xC0290027 + STATUS_TPM_BAD_KEY_PROPERTY NTStatus = 0xC0290028 + STATUS_TPM_BAD_MIGRATION NTStatus = 0xC0290029 + STATUS_TPM_BAD_SCHEME NTStatus = 0xC029002A + STATUS_TPM_BAD_DATASIZE NTStatus = 0xC029002B + STATUS_TPM_BAD_MODE NTStatus = 0xC029002C + STATUS_TPM_BAD_PRESENCE NTStatus = 0xC029002D + STATUS_TPM_BAD_VERSION NTStatus = 0xC029002E + STATUS_TPM_NO_WRAP_TRANSPORT NTStatus = 0xC029002F + STATUS_TPM_AUDITFAIL_UNSUCCESSFUL NTStatus = 0xC0290030 + STATUS_TPM_AUDITFAIL_SUCCESSFUL NTStatus = 0xC0290031 + STATUS_TPM_NOTRESETABLE NTStatus = 0xC0290032 + STATUS_TPM_NOTLOCAL NTStatus = 0xC0290033 + STATUS_TPM_BAD_TYPE NTStatus = 0xC0290034 + STATUS_TPM_INVALID_RESOURCE NTStatus = 0xC0290035 + STATUS_TPM_NOTFIPS NTStatus = 0xC0290036 + STATUS_TPM_INVALID_FAMILY NTStatus = 0xC0290037 + STATUS_TPM_NO_NV_PERMISSION NTStatus = 0xC0290038 + STATUS_TPM_REQUIRES_SIGN NTStatus = 0xC0290039 + STATUS_TPM_KEY_NOTSUPPORTED NTStatus = 0xC029003A + STATUS_TPM_AUTH_CONFLICT NTStatus = 0xC029003B + STATUS_TPM_AREA_LOCKED NTStatus = 0xC029003C + STATUS_TPM_BAD_LOCALITY NTStatus = 0xC029003D + STATUS_TPM_READ_ONLY NTStatus = 0xC029003E + STATUS_TPM_PER_NOWRITE NTStatus = 0xC029003F + STATUS_TPM_FAMILYCOUNT NTStatus = 0xC0290040 + STATUS_TPM_WRITE_LOCKED NTStatus = 0xC0290041 + STATUS_TPM_BAD_ATTRIBUTES NTStatus = 0xC0290042 + STATUS_TPM_INVALID_STRUCTURE NTStatus = 0xC0290043 + STATUS_TPM_KEY_OWNER_CONTROL NTStatus = 0xC0290044 + STATUS_TPM_BAD_COUNTER NTStatus = 0xC0290045 + STATUS_TPM_NOT_FULLWRITE NTStatus = 0xC0290046 + STATUS_TPM_CONTEXT_GAP NTStatus = 0xC0290047 + STATUS_TPM_MAXNVWRITES NTStatus = 0xC0290048 + STATUS_TPM_NOOPERATOR NTStatus = 0xC0290049 + STATUS_TPM_RESOURCEMISSING NTStatus = 0xC029004A + STATUS_TPM_DELEGATE_LOCK NTStatus = 0xC029004B + STATUS_TPM_DELEGATE_FAMILY NTStatus = 0xC029004C + STATUS_TPM_DELEGATE_ADMIN NTStatus = 0xC029004D + STATUS_TPM_TRANSPORT_NOTEXCLUSIVE NTStatus = 0xC029004E + STATUS_TPM_OWNER_CONTROL NTStatus = 0xC029004F + STATUS_TPM_DAA_RESOURCES NTStatus = 0xC0290050 + STATUS_TPM_DAA_INPUT_DATA0 NTStatus = 0xC0290051 + STATUS_TPM_DAA_INPUT_DATA1 NTStatus = 0xC0290052 + STATUS_TPM_DAA_ISSUER_SETTINGS NTStatus = 0xC0290053 + STATUS_TPM_DAA_TPM_SETTINGS NTStatus = 0xC0290054 + STATUS_TPM_DAA_STAGE NTStatus = 0xC0290055 + STATUS_TPM_DAA_ISSUER_VALIDITY NTStatus = 0xC0290056 + STATUS_TPM_DAA_WRONG_W NTStatus = 0xC0290057 + STATUS_TPM_BAD_HANDLE NTStatus = 0xC0290058 + STATUS_TPM_BAD_DELEGATE NTStatus = 0xC0290059 + STATUS_TPM_BADCONTEXT NTStatus = 0xC029005A + STATUS_TPM_TOOMANYCONTEXTS NTStatus = 0xC029005B + STATUS_TPM_MA_TICKET_SIGNATURE NTStatus = 0xC029005C + STATUS_TPM_MA_DESTINATION NTStatus = 0xC029005D + STATUS_TPM_MA_SOURCE NTStatus = 0xC029005E + STATUS_TPM_MA_AUTHORITY NTStatus = 0xC029005F + STATUS_TPM_PERMANENTEK NTStatus = 0xC0290061 + STATUS_TPM_BAD_SIGNATURE NTStatus = 0xC0290062 + STATUS_TPM_NOCONTEXTSPACE NTStatus = 0xC0290063 + STATUS_TPM_20_E_ASYMMETRIC NTStatus = 0xC0290081 + STATUS_TPM_20_E_ATTRIBUTES NTStatus = 0xC0290082 + STATUS_TPM_20_E_HASH NTStatus = 0xC0290083 + STATUS_TPM_20_E_VALUE NTStatus = 0xC0290084 + STATUS_TPM_20_E_HIERARCHY NTStatus = 0xC0290085 + STATUS_TPM_20_E_KEY_SIZE NTStatus = 0xC0290087 + STATUS_TPM_20_E_MGF NTStatus = 0xC0290088 + STATUS_TPM_20_E_MODE NTStatus = 0xC0290089 + STATUS_TPM_20_E_TYPE NTStatus = 0xC029008A + STATUS_TPM_20_E_HANDLE NTStatus = 0xC029008B + STATUS_TPM_20_E_KDF NTStatus = 0xC029008C + STATUS_TPM_20_E_RANGE NTStatus = 0xC029008D + STATUS_TPM_20_E_AUTH_FAIL NTStatus = 0xC029008E + STATUS_TPM_20_E_NONCE NTStatus = 0xC029008F + STATUS_TPM_20_E_PP NTStatus = 0xC0290090 + STATUS_TPM_20_E_SCHEME NTStatus = 0xC0290092 + STATUS_TPM_20_E_SIZE NTStatus = 0xC0290095 + STATUS_TPM_20_E_SYMMETRIC NTStatus = 0xC0290096 + STATUS_TPM_20_E_TAG NTStatus = 0xC0290097 + STATUS_TPM_20_E_SELECTOR NTStatus = 0xC0290098 + STATUS_TPM_20_E_INSUFFICIENT NTStatus = 0xC029009A + STATUS_TPM_20_E_SIGNATURE NTStatus = 0xC029009B + STATUS_TPM_20_E_KEY NTStatus = 0xC029009C + STATUS_TPM_20_E_POLICY_FAIL NTStatus = 0xC029009D + STATUS_TPM_20_E_INTEGRITY NTStatus = 0xC029009F + STATUS_TPM_20_E_TICKET NTStatus = 0xC02900A0 + STATUS_TPM_20_E_RESERVED_BITS NTStatus = 0xC02900A1 + STATUS_TPM_20_E_BAD_AUTH NTStatus = 0xC02900A2 + STATUS_TPM_20_E_EXPIRED NTStatus = 0xC02900A3 + STATUS_TPM_20_E_POLICY_CC NTStatus = 0xC02900A4 + STATUS_TPM_20_E_BINDING NTStatus = 0xC02900A5 + STATUS_TPM_20_E_CURVE NTStatus = 0xC02900A6 + STATUS_TPM_20_E_ECC_POINT NTStatus = 0xC02900A7 + STATUS_TPM_20_E_INITIALIZE NTStatus = 0xC0290100 + STATUS_TPM_20_E_FAILURE NTStatus = 0xC0290101 + STATUS_TPM_20_E_SEQUENCE NTStatus = 0xC0290103 + STATUS_TPM_20_E_PRIVATE NTStatus = 0xC029010B + STATUS_TPM_20_E_HMAC NTStatus = 0xC0290119 + STATUS_TPM_20_E_DISABLED NTStatus = 0xC0290120 + STATUS_TPM_20_E_EXCLUSIVE NTStatus = 0xC0290121 + STATUS_TPM_20_E_ECC_CURVE NTStatus = 0xC0290123 + STATUS_TPM_20_E_AUTH_TYPE NTStatus = 0xC0290124 + STATUS_TPM_20_E_AUTH_MISSING NTStatus = 0xC0290125 + STATUS_TPM_20_E_POLICY NTStatus = 0xC0290126 + STATUS_TPM_20_E_PCR NTStatus = 0xC0290127 + STATUS_TPM_20_E_PCR_CHANGED NTStatus = 0xC0290128 + STATUS_TPM_20_E_UPGRADE NTStatus = 0xC029012D + STATUS_TPM_20_E_TOO_MANY_CONTEXTS NTStatus = 0xC029012E + STATUS_TPM_20_E_AUTH_UNAVAILABLE NTStatus = 0xC029012F + STATUS_TPM_20_E_REBOOT NTStatus = 0xC0290130 + STATUS_TPM_20_E_UNBALANCED NTStatus = 0xC0290131 + STATUS_TPM_20_E_COMMAND_SIZE NTStatus = 0xC0290142 + STATUS_TPM_20_E_COMMAND_CODE NTStatus = 0xC0290143 + STATUS_TPM_20_E_AUTHSIZE NTStatus = 0xC0290144 + STATUS_TPM_20_E_AUTH_CONTEXT NTStatus = 0xC0290145 + STATUS_TPM_20_E_NV_RANGE NTStatus = 0xC0290146 + STATUS_TPM_20_E_NV_SIZE NTStatus = 0xC0290147 + STATUS_TPM_20_E_NV_LOCKED NTStatus = 0xC0290148 + STATUS_TPM_20_E_NV_AUTHORIZATION NTStatus = 0xC0290149 + STATUS_TPM_20_E_NV_UNINITIALIZED NTStatus = 0xC029014A + STATUS_TPM_20_E_NV_SPACE NTStatus = 0xC029014B + STATUS_TPM_20_E_NV_DEFINED NTStatus = 0xC029014C + STATUS_TPM_20_E_BAD_CONTEXT NTStatus = 0xC0290150 + STATUS_TPM_20_E_CPHASH NTStatus = 0xC0290151 + STATUS_TPM_20_E_PARENT NTStatus = 0xC0290152 + STATUS_TPM_20_E_NEEDS_TEST NTStatus = 0xC0290153 + STATUS_TPM_20_E_NO_RESULT NTStatus = 0xC0290154 + STATUS_TPM_20_E_SENSITIVE NTStatus = 0xC0290155 + STATUS_TPM_COMMAND_BLOCKED NTStatus = 0xC0290400 + STATUS_TPM_INVALID_HANDLE NTStatus = 0xC0290401 + STATUS_TPM_DUPLICATE_VHANDLE NTStatus = 0xC0290402 + STATUS_TPM_EMBEDDED_COMMAND_BLOCKED NTStatus = 0xC0290403 + STATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED NTStatus = 0xC0290404 + STATUS_TPM_RETRY NTStatus = 0xC0290800 + STATUS_TPM_NEEDS_SELFTEST NTStatus = 0xC0290801 + STATUS_TPM_DOING_SELFTEST NTStatus = 0xC0290802 + STATUS_TPM_DEFEND_LOCK_RUNNING NTStatus = 0xC0290803 + STATUS_TPM_COMMAND_CANCELED NTStatus = 0xC0291001 + STATUS_TPM_TOO_MANY_CONTEXTS NTStatus = 0xC0291002 + STATUS_TPM_NOT_FOUND NTStatus = 0xC0291003 + STATUS_TPM_ACCESS_DENIED NTStatus = 0xC0291004 + STATUS_TPM_INSUFFICIENT_BUFFER NTStatus = 0xC0291005 + STATUS_TPM_PPI_FUNCTION_UNSUPPORTED NTStatus = 0xC0291006 + STATUS_PCP_ERROR_MASK NTStatus = 0xC0292000 + STATUS_PCP_DEVICE_NOT_READY NTStatus = 0xC0292001 + STATUS_PCP_INVALID_HANDLE NTStatus = 0xC0292002 + STATUS_PCP_INVALID_PARAMETER NTStatus = 0xC0292003 + STATUS_PCP_FLAG_NOT_SUPPORTED NTStatus = 0xC0292004 + STATUS_PCP_NOT_SUPPORTED NTStatus = 0xC0292005 + STATUS_PCP_BUFFER_TOO_SMALL NTStatus = 0xC0292006 + STATUS_PCP_INTERNAL_ERROR NTStatus = 0xC0292007 + STATUS_PCP_AUTHENTICATION_FAILED NTStatus = 0xC0292008 + STATUS_PCP_AUTHENTICATION_IGNORED NTStatus = 0xC0292009 + STATUS_PCP_POLICY_NOT_FOUND NTStatus = 0xC029200A + STATUS_PCP_PROFILE_NOT_FOUND NTStatus = 0xC029200B + STATUS_PCP_VALIDATION_FAILED NTStatus = 0xC029200C + STATUS_PCP_DEVICE_NOT_FOUND NTStatus = 0xC029200D + STATUS_PCP_WRONG_PARENT NTStatus = 0xC029200E + STATUS_PCP_KEY_NOT_LOADED NTStatus = 0xC029200F + STATUS_PCP_NO_KEY_CERTIFICATION NTStatus = 0xC0292010 + STATUS_PCP_KEY_NOT_FINALIZED NTStatus = 0xC0292011 + STATUS_PCP_ATTESTATION_CHALLENGE_NOT_SET NTStatus = 0xC0292012 + STATUS_PCP_NOT_PCR_BOUND NTStatus = 0xC0292013 + STATUS_PCP_KEY_ALREADY_FINALIZED NTStatus = 0xC0292014 + STATUS_PCP_KEY_USAGE_POLICY_NOT_SUPPORTED NTStatus = 0xC0292015 + STATUS_PCP_KEY_USAGE_POLICY_INVALID NTStatus = 0xC0292016 + STATUS_PCP_SOFT_KEY_ERROR NTStatus = 0xC0292017 + STATUS_PCP_KEY_NOT_AUTHENTICATED NTStatus = 0xC0292018 + STATUS_PCP_KEY_NOT_AIK NTStatus = 0xC0292019 + STATUS_PCP_KEY_NOT_SIGNING_KEY NTStatus = 0xC029201A + STATUS_PCP_LOCKED_OUT NTStatus = 0xC029201B + STATUS_PCP_CLAIM_TYPE_NOT_SUPPORTED NTStatus = 0xC029201C + STATUS_PCP_TPM_VERSION_NOT_SUPPORTED NTStatus = 0xC029201D + STATUS_PCP_BUFFER_LENGTH_MISMATCH NTStatus = 0xC029201E + STATUS_PCP_IFX_RSA_KEY_CREATION_BLOCKED NTStatus = 0xC029201F + STATUS_PCP_TICKET_MISSING NTStatus = 0xC0292020 + STATUS_PCP_RAW_POLICY_NOT_SUPPORTED NTStatus = 0xC0292021 + STATUS_PCP_KEY_HANDLE_INVALIDATED NTStatus = 0xC0292022 + STATUS_PCP_UNSUPPORTED_PSS_SALT NTStatus = 0x40292023 + STATUS_RTPM_CONTEXT_CONTINUE NTStatus = 0x00293000 + STATUS_RTPM_CONTEXT_COMPLETE NTStatus = 0x00293001 + STATUS_RTPM_NO_RESULT NTStatus = 0xC0293002 + STATUS_RTPM_PCR_READ_INCOMPLETE NTStatus = 0xC0293003 + STATUS_RTPM_INVALID_CONTEXT NTStatus = 0xC0293004 + STATUS_RTPM_UNSUPPORTED_CMD NTStatus = 0xC0293005 + STATUS_TPM_ZERO_EXHAUST_ENABLED NTStatus = 0xC0294000 + STATUS_HV_INVALID_HYPERCALL_CODE NTStatus = 0xC0350002 + STATUS_HV_INVALID_HYPERCALL_INPUT NTStatus = 0xC0350003 + STATUS_HV_INVALID_ALIGNMENT NTStatus = 0xC0350004 + STATUS_HV_INVALID_PARAMETER NTStatus = 0xC0350005 + STATUS_HV_ACCESS_DENIED NTStatus = 0xC0350006 + STATUS_HV_INVALID_PARTITION_STATE NTStatus = 0xC0350007 + STATUS_HV_OPERATION_DENIED NTStatus = 0xC0350008 + STATUS_HV_UNKNOWN_PROPERTY NTStatus = 0xC0350009 + STATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE NTStatus = 0xC035000A + STATUS_HV_INSUFFICIENT_MEMORY NTStatus = 0xC035000B + STATUS_HV_PARTITION_TOO_DEEP NTStatus = 0xC035000C + STATUS_HV_INVALID_PARTITION_ID NTStatus = 0xC035000D + STATUS_HV_INVALID_VP_INDEX NTStatus = 0xC035000E + STATUS_HV_INVALID_PORT_ID NTStatus = 0xC0350011 + STATUS_HV_INVALID_CONNECTION_ID NTStatus = 0xC0350012 + STATUS_HV_INSUFFICIENT_BUFFERS NTStatus = 0xC0350013 + STATUS_HV_NOT_ACKNOWLEDGED NTStatus = 0xC0350014 + STATUS_HV_INVALID_VP_STATE NTStatus = 0xC0350015 + STATUS_HV_ACKNOWLEDGED NTStatus = 0xC0350016 + STATUS_HV_INVALID_SAVE_RESTORE_STATE NTStatus = 0xC0350017 + STATUS_HV_INVALID_SYNIC_STATE NTStatus = 0xC0350018 + STATUS_HV_OBJECT_IN_USE NTStatus = 0xC0350019 + STATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO NTStatus = 0xC035001A + STATUS_HV_NO_DATA NTStatus = 0xC035001B + STATUS_HV_INACTIVE NTStatus = 0xC035001C + STATUS_HV_NO_RESOURCES NTStatus = 0xC035001D + STATUS_HV_FEATURE_UNAVAILABLE NTStatus = 0xC035001E + STATUS_HV_INSUFFICIENT_BUFFER NTStatus = 0xC0350033 + STATUS_HV_INSUFFICIENT_DEVICE_DOMAINS NTStatus = 0xC0350038 + STATUS_HV_CPUID_FEATURE_VALIDATION_ERROR NTStatus = 0xC035003C + STATUS_HV_CPUID_XSAVE_FEATURE_VALIDATION_ERROR NTStatus = 0xC035003D + STATUS_HV_PROCESSOR_STARTUP_TIMEOUT NTStatus = 0xC035003E + STATUS_HV_SMX_ENABLED NTStatus = 0xC035003F + STATUS_HV_INVALID_LP_INDEX NTStatus = 0xC0350041 + STATUS_HV_INVALID_REGISTER_VALUE NTStatus = 0xC0350050 + STATUS_HV_INVALID_VTL_STATE NTStatus = 0xC0350051 + STATUS_HV_NX_NOT_DETECTED NTStatus = 0xC0350055 + STATUS_HV_INVALID_DEVICE_ID NTStatus = 0xC0350057 + STATUS_HV_INVALID_DEVICE_STATE NTStatus = 0xC0350058 + STATUS_HV_PENDING_PAGE_REQUESTS NTStatus = 0x00350059 + STATUS_HV_PAGE_REQUEST_INVALID NTStatus = 0xC0350060 + STATUS_HV_INVALID_CPU_GROUP_ID NTStatus = 0xC035006F + STATUS_HV_INVALID_CPU_GROUP_STATE NTStatus = 0xC0350070 + STATUS_HV_OPERATION_FAILED NTStatus = 0xC0350071 + STATUS_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE NTStatus = 0xC0350072 + STATUS_HV_INSUFFICIENT_ROOT_MEMORY NTStatus = 0xC0350073 + STATUS_HV_NOT_PRESENT NTStatus = 0xC0351000 + STATUS_VID_DUPLICATE_HANDLER NTStatus = 0xC0370001 + STATUS_VID_TOO_MANY_HANDLERS NTStatus = 0xC0370002 + STATUS_VID_QUEUE_FULL NTStatus = 0xC0370003 + STATUS_VID_HANDLER_NOT_PRESENT NTStatus = 0xC0370004 + STATUS_VID_INVALID_OBJECT_NAME NTStatus = 0xC0370005 + STATUS_VID_PARTITION_NAME_TOO_LONG NTStatus = 0xC0370006 + STATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG NTStatus = 0xC0370007 + STATUS_VID_PARTITION_ALREADY_EXISTS NTStatus = 0xC0370008 + STATUS_VID_PARTITION_DOES_NOT_EXIST NTStatus = 0xC0370009 + STATUS_VID_PARTITION_NAME_NOT_FOUND NTStatus = 0xC037000A + STATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS NTStatus = 0xC037000B + STATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT NTStatus = 0xC037000C + STATUS_VID_MB_STILL_REFERENCED NTStatus = 0xC037000D + STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED NTStatus = 0xC037000E + STATUS_VID_INVALID_NUMA_SETTINGS NTStatus = 0xC037000F + STATUS_VID_INVALID_NUMA_NODE_INDEX NTStatus = 0xC0370010 + STATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED NTStatus = 0xC0370011 + STATUS_VID_INVALID_MEMORY_BLOCK_HANDLE NTStatus = 0xC0370012 + STATUS_VID_PAGE_RANGE_OVERFLOW NTStatus = 0xC0370013 + STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE NTStatus = 0xC0370014 + STATUS_VID_INVALID_GPA_RANGE_HANDLE NTStatus = 0xC0370015 + STATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE NTStatus = 0xC0370016 + STATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED NTStatus = 0xC0370017 + STATUS_VID_INVALID_PPM_HANDLE NTStatus = 0xC0370018 + STATUS_VID_MBPS_ARE_LOCKED NTStatus = 0xC0370019 + STATUS_VID_MESSAGE_QUEUE_CLOSED NTStatus = 0xC037001A + STATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED NTStatus = 0xC037001B + STATUS_VID_STOP_PENDING NTStatus = 0xC037001C + STATUS_VID_INVALID_PROCESSOR_STATE NTStatus = 0xC037001D + STATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT NTStatus = 0xC037001E + STATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED NTStatus = 0xC037001F + STATUS_VID_MB_PROPERTY_ALREADY_SET_RESET NTStatus = 0xC0370020 + STATUS_VID_MMIO_RANGE_DESTROYED NTStatus = 0xC0370021 + STATUS_VID_INVALID_CHILD_GPA_PAGE_SET NTStatus = 0xC0370022 + STATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED NTStatus = 0xC0370023 + STATUS_VID_RESERVE_PAGE_SET_TOO_SMALL NTStatus = 0xC0370024 + STATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE NTStatus = 0xC0370025 + STATUS_VID_MBP_COUNT_EXCEEDED_LIMIT NTStatus = 0xC0370026 + STATUS_VID_SAVED_STATE_CORRUPT NTStatus = 0xC0370027 + STATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM NTStatus = 0xC0370028 + STATUS_VID_SAVED_STATE_INCOMPATIBLE NTStatus = 0xC0370029 + STATUS_VID_VTL_ACCESS_DENIED NTStatus = 0xC037002A + STATUS_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED NTStatus = 0x80370001 + STATUS_IPSEC_BAD_SPI NTStatus = 0xC0360001 + STATUS_IPSEC_SA_LIFETIME_EXPIRED NTStatus = 0xC0360002 + STATUS_IPSEC_WRONG_SA NTStatus = 0xC0360003 + STATUS_IPSEC_REPLAY_CHECK_FAILED NTStatus = 0xC0360004 + STATUS_IPSEC_INVALID_PACKET NTStatus = 0xC0360005 + STATUS_IPSEC_INTEGRITY_CHECK_FAILED NTStatus = 0xC0360006 + STATUS_IPSEC_CLEAR_TEXT_DROP NTStatus = 0xC0360007 + STATUS_IPSEC_AUTH_FIREWALL_DROP NTStatus = 0xC0360008 + STATUS_IPSEC_THROTTLE_DROP NTStatus = 0xC0360009 + STATUS_IPSEC_DOSP_BLOCK NTStatus = 0xC0368000 + STATUS_IPSEC_DOSP_RECEIVED_MULTICAST NTStatus = 0xC0368001 + STATUS_IPSEC_DOSP_INVALID_PACKET NTStatus = 0xC0368002 + STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED NTStatus = 0xC0368003 + STATUS_IPSEC_DOSP_MAX_ENTRIES NTStatus = 0xC0368004 + STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED NTStatus = 0xC0368005 + STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES NTStatus = 0xC0368006 + STATUS_VOLMGR_INCOMPLETE_REGENERATION NTStatus = 0x80380001 + STATUS_VOLMGR_INCOMPLETE_DISK_MIGRATION NTStatus = 0x80380002 + STATUS_VOLMGR_DATABASE_FULL NTStatus = 0xC0380001 + STATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED NTStatus = 0xC0380002 + STATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC NTStatus = 0xC0380003 + STATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED NTStatus = 0xC0380004 + STATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME NTStatus = 0xC0380005 + STATUS_VOLMGR_DISK_DUPLICATE NTStatus = 0xC0380006 + STATUS_VOLMGR_DISK_DYNAMIC NTStatus = 0xC0380007 + STATUS_VOLMGR_DISK_ID_INVALID NTStatus = 0xC0380008 + STATUS_VOLMGR_DISK_INVALID NTStatus = 0xC0380009 + STATUS_VOLMGR_DISK_LAST_VOTER NTStatus = 0xC038000A + STATUS_VOLMGR_DISK_LAYOUT_INVALID NTStatus = 0xC038000B + STATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS NTStatus = 0xC038000C + STATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED NTStatus = 0xC038000D + STATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL NTStatus = 0xC038000E + STATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS NTStatus = 0xC038000F + STATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS NTStatus = 0xC0380010 + STATUS_VOLMGR_DISK_MISSING NTStatus = 0xC0380011 + STATUS_VOLMGR_DISK_NOT_EMPTY NTStatus = 0xC0380012 + STATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE NTStatus = 0xC0380013 + STATUS_VOLMGR_DISK_REVECTORING_FAILED NTStatus = 0xC0380014 + STATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID NTStatus = 0xC0380015 + STATUS_VOLMGR_DISK_SET_NOT_CONTAINED NTStatus = 0xC0380016 + STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS NTStatus = 0xC0380017 + STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES NTStatus = 0xC0380018 + STATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED NTStatus = 0xC0380019 + STATUS_VOLMGR_EXTENT_ALREADY_USED NTStatus = 0xC038001A + STATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS NTStatus = 0xC038001B + STATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION NTStatus = 0xC038001C + STATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED NTStatus = 0xC038001D + STATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION NTStatus = 0xC038001E + STATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH NTStatus = 0xC038001F + STATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED NTStatus = 0xC0380020 + STATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID NTStatus = 0xC0380021 + STATUS_VOLMGR_MAXIMUM_REGISTERED_USERS NTStatus = 0xC0380022 + STATUS_VOLMGR_MEMBER_IN_SYNC NTStatus = 0xC0380023 + STATUS_VOLMGR_MEMBER_INDEX_DUPLICATE NTStatus = 0xC0380024 + STATUS_VOLMGR_MEMBER_INDEX_INVALID NTStatus = 0xC0380025 + STATUS_VOLMGR_MEMBER_MISSING NTStatus = 0xC0380026 + STATUS_VOLMGR_MEMBER_NOT_DETACHED NTStatus = 0xC0380027 + STATUS_VOLMGR_MEMBER_REGENERATING NTStatus = 0xC0380028 + STATUS_VOLMGR_ALL_DISKS_FAILED NTStatus = 0xC0380029 + STATUS_VOLMGR_NO_REGISTERED_USERS NTStatus = 0xC038002A + STATUS_VOLMGR_NO_SUCH_USER NTStatus = 0xC038002B + STATUS_VOLMGR_NOTIFICATION_RESET NTStatus = 0xC038002C + STATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID NTStatus = 0xC038002D + STATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID NTStatus = 0xC038002E + STATUS_VOLMGR_PACK_DUPLICATE NTStatus = 0xC038002F + STATUS_VOLMGR_PACK_ID_INVALID NTStatus = 0xC0380030 + STATUS_VOLMGR_PACK_INVALID NTStatus = 0xC0380031 + STATUS_VOLMGR_PACK_NAME_INVALID NTStatus = 0xC0380032 + STATUS_VOLMGR_PACK_OFFLINE NTStatus = 0xC0380033 + STATUS_VOLMGR_PACK_HAS_QUORUM NTStatus = 0xC0380034 + STATUS_VOLMGR_PACK_WITHOUT_QUORUM NTStatus = 0xC0380035 + STATUS_VOLMGR_PARTITION_STYLE_INVALID NTStatus = 0xC0380036 + STATUS_VOLMGR_PARTITION_UPDATE_FAILED NTStatus = 0xC0380037 + STATUS_VOLMGR_PLEX_IN_SYNC NTStatus = 0xC0380038 + STATUS_VOLMGR_PLEX_INDEX_DUPLICATE NTStatus = 0xC0380039 + STATUS_VOLMGR_PLEX_INDEX_INVALID NTStatus = 0xC038003A + STATUS_VOLMGR_PLEX_LAST_ACTIVE NTStatus = 0xC038003B + STATUS_VOLMGR_PLEX_MISSING NTStatus = 0xC038003C + STATUS_VOLMGR_PLEX_REGENERATING NTStatus = 0xC038003D + STATUS_VOLMGR_PLEX_TYPE_INVALID NTStatus = 0xC038003E + STATUS_VOLMGR_PLEX_NOT_RAID5 NTStatus = 0xC038003F + STATUS_VOLMGR_PLEX_NOT_SIMPLE NTStatus = 0xC0380040 + STATUS_VOLMGR_STRUCTURE_SIZE_INVALID NTStatus = 0xC0380041 + STATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS NTStatus = 0xC0380042 + STATUS_VOLMGR_TRANSACTION_IN_PROGRESS NTStatus = 0xC0380043 + STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE NTStatus = 0xC0380044 + STATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK NTStatus = 0xC0380045 + STATUS_VOLMGR_VOLUME_ID_INVALID NTStatus = 0xC0380046 + STATUS_VOLMGR_VOLUME_LENGTH_INVALID NTStatus = 0xC0380047 + STATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE NTStatus = 0xC0380048 + STATUS_VOLMGR_VOLUME_NOT_MIRRORED NTStatus = 0xC0380049 + STATUS_VOLMGR_VOLUME_NOT_RETAINED NTStatus = 0xC038004A + STATUS_VOLMGR_VOLUME_OFFLINE NTStatus = 0xC038004B + STATUS_VOLMGR_VOLUME_RETAINED NTStatus = 0xC038004C + STATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID NTStatus = 0xC038004D + STATUS_VOLMGR_DIFFERENT_SECTOR_SIZE NTStatus = 0xC038004E + STATUS_VOLMGR_BAD_BOOT_DISK NTStatus = 0xC038004F + STATUS_VOLMGR_PACK_CONFIG_OFFLINE NTStatus = 0xC0380050 + STATUS_VOLMGR_PACK_CONFIG_ONLINE NTStatus = 0xC0380051 + STATUS_VOLMGR_NOT_PRIMARY_PACK NTStatus = 0xC0380052 + STATUS_VOLMGR_PACK_LOG_UPDATE_FAILED NTStatus = 0xC0380053 + STATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID NTStatus = 0xC0380054 + STATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID NTStatus = 0xC0380055 + STATUS_VOLMGR_VOLUME_MIRRORED NTStatus = 0xC0380056 + STATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED NTStatus = 0xC0380057 + STATUS_VOLMGR_NO_VALID_LOG_COPIES NTStatus = 0xC0380058 + STATUS_VOLMGR_PRIMARY_PACK_PRESENT NTStatus = 0xC0380059 + STATUS_VOLMGR_NUMBER_OF_DISKS_INVALID NTStatus = 0xC038005A + STATUS_VOLMGR_MIRROR_NOT_SUPPORTED NTStatus = 0xC038005B + STATUS_VOLMGR_RAID5_NOT_SUPPORTED NTStatus = 0xC038005C + STATUS_BCD_NOT_ALL_ENTRIES_IMPORTED NTStatus = 0x80390001 + STATUS_BCD_TOO_MANY_ELEMENTS NTStatus = 0xC0390002 + STATUS_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED NTStatus = 0x80390003 + STATUS_VHD_DRIVE_FOOTER_MISSING NTStatus = 0xC03A0001 + STATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH NTStatus = 0xC03A0002 + STATUS_VHD_DRIVE_FOOTER_CORRUPT NTStatus = 0xC03A0003 + STATUS_VHD_FORMAT_UNKNOWN NTStatus = 0xC03A0004 + STATUS_VHD_FORMAT_UNSUPPORTED_VERSION NTStatus = 0xC03A0005 + STATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH NTStatus = 0xC03A0006 + STATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION NTStatus = 0xC03A0007 + STATUS_VHD_SPARSE_HEADER_CORRUPT NTStatus = 0xC03A0008 + STATUS_VHD_BLOCK_ALLOCATION_FAILURE NTStatus = 0xC03A0009 + STATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT NTStatus = 0xC03A000A + STATUS_VHD_INVALID_BLOCK_SIZE NTStatus = 0xC03A000B + STATUS_VHD_BITMAP_MISMATCH NTStatus = 0xC03A000C + STATUS_VHD_PARENT_VHD_NOT_FOUND NTStatus = 0xC03A000D + STATUS_VHD_CHILD_PARENT_ID_MISMATCH NTStatus = 0xC03A000E + STATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH NTStatus = 0xC03A000F + STATUS_VHD_METADATA_READ_FAILURE NTStatus = 0xC03A0010 + STATUS_VHD_METADATA_WRITE_FAILURE NTStatus = 0xC03A0011 + STATUS_VHD_INVALID_SIZE NTStatus = 0xC03A0012 + STATUS_VHD_INVALID_FILE_SIZE NTStatus = 0xC03A0013 + STATUS_VIRTDISK_PROVIDER_NOT_FOUND NTStatus = 0xC03A0014 + STATUS_VIRTDISK_NOT_VIRTUAL_DISK NTStatus = 0xC03A0015 + STATUS_VHD_PARENT_VHD_ACCESS_DENIED NTStatus = 0xC03A0016 + STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH NTStatus = 0xC03A0017 + STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED NTStatus = 0xC03A0018 + STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT NTStatus = 0xC03A0019 + STATUS_VIRTUAL_DISK_LIMITATION NTStatus = 0xC03A001A + STATUS_VHD_INVALID_TYPE NTStatus = 0xC03A001B + STATUS_VHD_INVALID_STATE NTStatus = 0xC03A001C + STATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE NTStatus = 0xC03A001D + STATUS_VIRTDISK_DISK_ALREADY_OWNED NTStatus = 0xC03A001E + STATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE NTStatus = 0xC03A001F + STATUS_CTLOG_TRACKING_NOT_INITIALIZED NTStatus = 0xC03A0020 + STATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE NTStatus = 0xC03A0021 + STATUS_CTLOG_VHD_CHANGED_OFFLINE NTStatus = 0xC03A0022 + STATUS_CTLOG_INVALID_TRACKING_STATE NTStatus = 0xC03A0023 + STATUS_CTLOG_INCONSISTENT_TRACKING_FILE NTStatus = 0xC03A0024 + STATUS_VHD_METADATA_FULL NTStatus = 0xC03A0028 + STATUS_VHD_INVALID_CHANGE_TRACKING_ID NTStatus = 0xC03A0029 + STATUS_VHD_CHANGE_TRACKING_DISABLED NTStatus = 0xC03A002A + STATUS_VHD_MISSING_CHANGE_TRACKING_INFORMATION NTStatus = 0xC03A0030 + STATUS_VHD_RESIZE_WOULD_TRUNCATE_DATA NTStatus = 0xC03A0031 + STATUS_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE NTStatus = 0xC03A0032 + STATUS_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE NTStatus = 0xC03A0033 + STATUS_QUERY_STORAGE_ERROR NTStatus = 0x803A0001 + STATUS_GDI_HANDLE_LEAK NTStatus = 0x803F0001 + STATUS_RKF_KEY_NOT_FOUND NTStatus = 0xC0400001 + STATUS_RKF_DUPLICATE_KEY NTStatus = 0xC0400002 + STATUS_RKF_BLOB_FULL NTStatus = 0xC0400003 + STATUS_RKF_STORE_FULL NTStatus = 0xC0400004 + STATUS_RKF_FILE_BLOCKED NTStatus = 0xC0400005 + STATUS_RKF_ACTIVE_KEY NTStatus = 0xC0400006 + STATUS_RDBSS_RESTART_OPERATION NTStatus = 0xC0410001 + STATUS_RDBSS_CONTINUE_OPERATION NTStatus = 0xC0410002 + STATUS_RDBSS_POST_OPERATION NTStatus = 0xC0410003 + STATUS_RDBSS_RETRY_LOOKUP NTStatus = 0xC0410004 + STATUS_BTH_ATT_INVALID_HANDLE NTStatus = 0xC0420001 + STATUS_BTH_ATT_READ_NOT_PERMITTED NTStatus = 0xC0420002 + STATUS_BTH_ATT_WRITE_NOT_PERMITTED NTStatus = 0xC0420003 + STATUS_BTH_ATT_INVALID_PDU NTStatus = 0xC0420004 + STATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION NTStatus = 0xC0420005 + STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED NTStatus = 0xC0420006 + STATUS_BTH_ATT_INVALID_OFFSET NTStatus = 0xC0420007 + STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION NTStatus = 0xC0420008 + STATUS_BTH_ATT_PREPARE_QUEUE_FULL NTStatus = 0xC0420009 + STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND NTStatus = 0xC042000A + STATUS_BTH_ATT_ATTRIBUTE_NOT_LONG NTStatus = 0xC042000B + STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE NTStatus = 0xC042000C + STATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH NTStatus = 0xC042000D + STATUS_BTH_ATT_UNLIKELY NTStatus = 0xC042000E + STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION NTStatus = 0xC042000F + STATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE NTStatus = 0xC0420010 + STATUS_BTH_ATT_INSUFFICIENT_RESOURCES NTStatus = 0xC0420011 + STATUS_BTH_ATT_UNKNOWN_ERROR NTStatus = 0xC0421000 + STATUS_SECUREBOOT_ROLLBACK_DETECTED NTStatus = 0xC0430001 + STATUS_SECUREBOOT_POLICY_VIOLATION NTStatus = 0xC0430002 + STATUS_SECUREBOOT_INVALID_POLICY NTStatus = 0xC0430003 + STATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND NTStatus = 0xC0430004 + STATUS_SECUREBOOT_POLICY_NOT_SIGNED NTStatus = 0xC0430005 + STATUS_SECUREBOOT_NOT_ENABLED NTStatus = 0x80430006 + STATUS_SECUREBOOT_FILE_REPLACED NTStatus = 0xC0430007 + STATUS_SECUREBOOT_POLICY_NOT_AUTHORIZED NTStatus = 0xC0430008 + STATUS_SECUREBOOT_POLICY_UNKNOWN NTStatus = 0xC0430009 + STATUS_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION NTStatus = 0xC043000A + STATUS_SECUREBOOT_PLATFORM_ID_MISMATCH NTStatus = 0xC043000B + STATUS_SECUREBOOT_POLICY_ROLLBACK_DETECTED NTStatus = 0xC043000C + STATUS_SECUREBOOT_POLICY_UPGRADE_MISMATCH NTStatus = 0xC043000D + STATUS_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING NTStatus = 0xC043000E + STATUS_SECUREBOOT_NOT_BASE_POLICY NTStatus = 0xC043000F + STATUS_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY NTStatus = 0xC0430010 + STATUS_PLATFORM_MANIFEST_NOT_AUTHORIZED NTStatus = 0xC0EB0001 + STATUS_PLATFORM_MANIFEST_INVALID NTStatus = 0xC0EB0002 + STATUS_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED NTStatus = 0xC0EB0003 + STATUS_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED NTStatus = 0xC0EB0004 + STATUS_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND NTStatus = 0xC0EB0005 + STATUS_PLATFORM_MANIFEST_NOT_ACTIVE NTStatus = 0xC0EB0006 + STATUS_PLATFORM_MANIFEST_NOT_SIGNED NTStatus = 0xC0EB0007 + STATUS_SYSTEM_INTEGRITY_ROLLBACK_DETECTED NTStatus = 0xC0E90001 + STATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION NTStatus = 0xC0E90002 + STATUS_SYSTEM_INTEGRITY_INVALID_POLICY NTStatus = 0xC0E90003 + STATUS_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED NTStatus = 0xC0E90004 + STATUS_SYSTEM_INTEGRITY_TOO_MANY_POLICIES NTStatus = 0xC0E90005 + STATUS_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED NTStatus = 0xC0E90006 + STATUS_NO_APPLICABLE_APP_LICENSES_FOUND NTStatus = 0xC0EA0001 + STATUS_CLIP_LICENSE_NOT_FOUND NTStatus = 0xC0EA0002 + STATUS_CLIP_DEVICE_LICENSE_MISSING NTStatus = 0xC0EA0003 + STATUS_CLIP_LICENSE_INVALID_SIGNATURE NTStatus = 0xC0EA0004 + STATUS_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID NTStatus = 0xC0EA0005 + STATUS_CLIP_LICENSE_EXPIRED NTStatus = 0xC0EA0006 + STATUS_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE NTStatus = 0xC0EA0007 + STATUS_CLIP_LICENSE_NOT_SIGNED NTStatus = 0xC0EA0008 + STATUS_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE NTStatus = 0xC0EA0009 + STATUS_CLIP_LICENSE_DEVICE_ID_MISMATCH NTStatus = 0xC0EA000A + STATUS_AUDIO_ENGINE_NODE_NOT_FOUND NTStatus = 0xC0440001 + STATUS_HDAUDIO_EMPTY_CONNECTION_LIST NTStatus = 0xC0440002 + STATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED NTStatus = 0xC0440003 + STATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED NTStatus = 0xC0440004 + STATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY NTStatus = 0xC0440005 + STATUS_SPACES_REPAIRED NTStatus = 0x00E70000 + STATUS_SPACES_PAUSE NTStatus = 0x00E70001 + STATUS_SPACES_COMPLETE NTStatus = 0x00E70002 + STATUS_SPACES_REDIRECT NTStatus = 0x00E70003 + STATUS_SPACES_FAULT_DOMAIN_TYPE_INVALID NTStatus = 0xC0E70001 + STATUS_SPACES_RESILIENCY_TYPE_INVALID NTStatus = 0xC0E70003 + STATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID NTStatus = 0xC0E70004 + STATUS_SPACES_DRIVE_REDUNDANCY_INVALID NTStatus = 0xC0E70006 + STATUS_SPACES_NUMBER_OF_DATA_COPIES_INVALID NTStatus = 0xC0E70007 + STATUS_SPACES_INTERLEAVE_LENGTH_INVALID NTStatus = 0xC0E70009 + STATUS_SPACES_NUMBER_OF_COLUMNS_INVALID NTStatus = 0xC0E7000A + STATUS_SPACES_NOT_ENOUGH_DRIVES NTStatus = 0xC0E7000B + STATUS_SPACES_EXTENDED_ERROR NTStatus = 0xC0E7000C + STATUS_SPACES_PROVISIONING_TYPE_INVALID NTStatus = 0xC0E7000D + STATUS_SPACES_ALLOCATION_SIZE_INVALID NTStatus = 0xC0E7000E + STATUS_SPACES_ENCLOSURE_AWARE_INVALID NTStatus = 0xC0E7000F + STATUS_SPACES_WRITE_CACHE_SIZE_INVALID NTStatus = 0xC0E70010 + STATUS_SPACES_NUMBER_OF_GROUPS_INVALID NTStatus = 0xC0E70011 + STATUS_SPACES_DRIVE_OPERATIONAL_STATE_INVALID NTStatus = 0xC0E70012 + STATUS_SPACES_UPDATE_COLUMN_STATE NTStatus = 0xC0E70013 + STATUS_SPACES_MAP_REQUIRED NTStatus = 0xC0E70014 + STATUS_SPACES_UNSUPPORTED_VERSION NTStatus = 0xC0E70015 + STATUS_SPACES_CORRUPT_METADATA NTStatus = 0xC0E70016 + STATUS_SPACES_DRT_FULL NTStatus = 0xC0E70017 + STATUS_SPACES_INCONSISTENCY NTStatus = 0xC0E70018 + STATUS_SPACES_LOG_NOT_READY NTStatus = 0xC0E70019 + STATUS_SPACES_NO_REDUNDANCY NTStatus = 0xC0E7001A + STATUS_SPACES_DRIVE_NOT_READY NTStatus = 0xC0E7001B + STATUS_SPACES_DRIVE_SPLIT NTStatus = 0xC0E7001C + STATUS_SPACES_DRIVE_LOST_DATA NTStatus = 0xC0E7001D + STATUS_SPACES_ENTRY_INCOMPLETE NTStatus = 0xC0E7001E + STATUS_SPACES_ENTRY_INVALID NTStatus = 0xC0E7001F + STATUS_SPACES_MARK_DIRTY NTStatus = 0xC0E70020 + STATUS_VOLSNAP_BOOTFILE_NOT_VALID NTStatus = 0xC0500003 + STATUS_VOLSNAP_ACTIVATION_TIMEOUT NTStatus = 0xC0500004 + STATUS_IO_PREEMPTED NTStatus = 0xC0510001 + STATUS_SVHDX_ERROR_STORED NTStatus = 0xC05C0000 + STATUS_SVHDX_ERROR_NOT_AVAILABLE NTStatus = 0xC05CFF00 + STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE NTStatus = 0xC05CFF01 + STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED NTStatus = 0xC05CFF02 + STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED NTStatus = 0xC05CFF03 + STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED NTStatus = 0xC05CFF04 + STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED NTStatus = 0xC05CFF05 + STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED NTStatus = 0xC05CFF06 + STATUS_SVHDX_RESERVATION_CONFLICT NTStatus = 0xC05CFF07 + STATUS_SVHDX_WRONG_FILE_TYPE NTStatus = 0xC05CFF08 + STATUS_SVHDX_VERSION_MISMATCH NTStatus = 0xC05CFF09 + STATUS_VHD_SHARED NTStatus = 0xC05CFF0A + STATUS_SVHDX_NO_INITIATOR NTStatus = 0xC05CFF0B + STATUS_VHDSET_BACKING_STORAGE_NOT_FOUND NTStatus = 0xC05CFF0C + STATUS_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP NTStatus = 0xC05D0000 + STATUS_SMB_BAD_CLUSTER_DIALECT NTStatus = 0xC05D0001 + STATUS_SMB_GUEST_LOGON_BLOCKED NTStatus = 0xC05D0002 + STATUS_SECCORE_INVALID_COMMAND NTStatus = 0xC0E80000 + STATUS_VSM_NOT_INITIALIZED NTStatus = 0xC0450000 + STATUS_VSM_DMA_PROTECTION_NOT_IN_USE NTStatus = 0xC0450001 + STATUS_APPEXEC_CONDITION_NOT_SATISFIED NTStatus = 0xC0EC0000 + STATUS_APPEXEC_HANDLE_INVALIDATED NTStatus = 0xC0EC0001 + STATUS_APPEXEC_INVALID_HOST_GENERATION NTStatus = 0xC0EC0002 + STATUS_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION NTStatus = 0xC0EC0003 + STATUS_APPEXEC_INVALID_HOST_STATE NTStatus = 0xC0EC0004 + STATUS_APPEXEC_NO_DONOR NTStatus = 0xC0EC0005 + STATUS_APPEXEC_HOST_ID_MISMATCH NTStatus = 0xC0EC0006 + STATUS_APPEXEC_UNKNOWN_USER NTStatus = 0xC0EC0007 +) diff --git a/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go b/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go new file mode 100644 index 000000000000..6048ac679fa5 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go @@ -0,0 +1,149 @@ +// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT. + +package windows + +type KNOWNFOLDERID GUID + +var ( + FOLDERID_NetworkFolder = &KNOWNFOLDERID{0xd20beec4, 0x5ca8, 0x4905, [8]byte{0xae, 0x3b, 0xbf, 0x25, 0x1e, 0xa0, 0x9b, 0x53}} + FOLDERID_ComputerFolder = &KNOWNFOLDERID{0x0ac0837c, 0xbbf8, 0x452a, [8]byte{0x85, 0x0d, 0x79, 0xd0, 0x8e, 0x66, 0x7c, 0xa7}} + FOLDERID_InternetFolder = &KNOWNFOLDERID{0x4d9f7874, 0x4e0c, 0x4904, [8]byte{0x96, 0x7b, 0x40, 0xb0, 0xd2, 0x0c, 0x3e, 0x4b}} + FOLDERID_ControlPanelFolder = &KNOWNFOLDERID{0x82a74aeb, 0xaeb4, 0x465c, [8]byte{0xa0, 0x14, 0xd0, 0x97, 0xee, 0x34, 0x6d, 0x63}} + FOLDERID_PrintersFolder = &KNOWNFOLDERID{0x76fc4e2d, 0xd6ad, 0x4519, [8]byte{0xa6, 0x63, 0x37, 0xbd, 0x56, 0x06, 0x81, 0x85}} + FOLDERID_SyncManagerFolder = &KNOWNFOLDERID{0x43668bf8, 0xc14e, 0x49b2, [8]byte{0x97, 0xc9, 0x74, 0x77, 0x84, 0xd7, 0x84, 0xb7}} + FOLDERID_SyncSetupFolder = &KNOWNFOLDERID{0x0f214138, 0xb1d3, 0x4a90, [8]byte{0xbb, 0xa9, 0x27, 0xcb, 0xc0, 0xc5, 0x38, 0x9a}} + FOLDERID_ConflictFolder = &KNOWNFOLDERID{0x4bfefb45, 0x347d, 0x4006, [8]byte{0xa5, 0xbe, 0xac, 0x0c, 0xb0, 0x56, 0x71, 0x92}} + FOLDERID_SyncResultsFolder = &KNOWNFOLDERID{0x289a9a43, 0xbe44, 0x4057, [8]byte{0xa4, 0x1b, 0x58, 0x7a, 0x76, 0xd7, 0xe7, 0xf9}} + FOLDERID_RecycleBinFolder = &KNOWNFOLDERID{0xb7534046, 0x3ecb, 0x4c18, [8]byte{0xbe, 0x4e, 0x64, 0xcd, 0x4c, 0xb7, 0xd6, 0xac}} + FOLDERID_ConnectionsFolder = &KNOWNFOLDERID{0x6f0cd92b, 0x2e97, 0x45d1, [8]byte{0x88, 0xff, 0xb0, 0xd1, 0x86, 0xb8, 0xde, 0xdd}} + FOLDERID_Fonts = &KNOWNFOLDERID{0xfd228cb7, 0xae11, 0x4ae3, [8]byte{0x86, 0x4c, 0x16, 0xf3, 0x91, 0x0a, 0xb8, 0xfe}} + FOLDERID_Desktop = &KNOWNFOLDERID{0xb4bfcc3a, 0xdb2c, 0x424c, [8]byte{0xb0, 0x29, 0x7f, 0xe9, 0x9a, 0x87, 0xc6, 0x41}} + FOLDERID_Startup = &KNOWNFOLDERID{0xb97d20bb, 0xf46a, 0x4c97, [8]byte{0xba, 0x10, 0x5e, 0x36, 0x08, 0x43, 0x08, 0x54}} + FOLDERID_Programs = &KNOWNFOLDERID{0xa77f5d77, 0x2e2b, 0x44c3, [8]byte{0xa6, 0xa2, 0xab, 0xa6, 0x01, 0x05, 0x4a, 0x51}} + FOLDERID_StartMenu = &KNOWNFOLDERID{0x625b53c3, 0xab48, 0x4ec1, [8]byte{0xba, 0x1f, 0xa1, 0xef, 0x41, 0x46, 0xfc, 0x19}} + FOLDERID_Recent = &KNOWNFOLDERID{0xae50c081, 0xebd2, 0x438a, [8]byte{0x86, 0x55, 0x8a, 0x09, 0x2e, 0x34, 0x98, 0x7a}} + FOLDERID_SendTo = &KNOWNFOLDERID{0x8983036c, 0x27c0, 0x404b, [8]byte{0x8f, 0x08, 0x10, 0x2d, 0x10, 0xdc, 0xfd, 0x74}} + FOLDERID_Documents = &KNOWNFOLDERID{0xfdd39ad0, 0x238f, 0x46af, [8]byte{0xad, 0xb4, 0x6c, 0x85, 0x48, 0x03, 0x69, 0xc7}} + FOLDERID_Favorites = &KNOWNFOLDERID{0x1777f761, 0x68ad, 0x4d8a, [8]byte{0x87, 0xbd, 0x30, 0xb7, 0x59, 0xfa, 0x33, 0xdd}} + FOLDERID_NetHood = &KNOWNFOLDERID{0xc5abbf53, 0xe17f, 0x4121, [8]byte{0x89, 0x00, 0x86, 0x62, 0x6f, 0xc2, 0xc9, 0x73}} + FOLDERID_PrintHood = &KNOWNFOLDERID{0x9274bd8d, 0xcfd1, 0x41c3, [8]byte{0xb3, 0x5e, 0xb1, 0x3f, 0x55, 0xa7, 0x58, 0xf4}} + FOLDERID_Templates = &KNOWNFOLDERID{0xa63293e8, 0x664e, 0x48db, [8]byte{0xa0, 0x79, 0xdf, 0x75, 0x9e, 0x05, 0x09, 0xf7}} + FOLDERID_CommonStartup = &KNOWNFOLDERID{0x82a5ea35, 0xd9cd, 0x47c5, [8]byte{0x96, 0x29, 0xe1, 0x5d, 0x2f, 0x71, 0x4e, 0x6e}} + FOLDERID_CommonPrograms = &KNOWNFOLDERID{0x0139d44e, 0x6afe, 0x49f2, [8]byte{0x86, 0x90, 0x3d, 0xaf, 0xca, 0xe6, 0xff, 0xb8}} + FOLDERID_CommonStartMenu = &KNOWNFOLDERID{0xa4115719, 0xd62e, 0x491d, [8]byte{0xaa, 0x7c, 0xe7, 0x4b, 0x8b, 0xe3, 0xb0, 0x67}} + FOLDERID_PublicDesktop = &KNOWNFOLDERID{0xc4aa340d, 0xf20f, 0x4863, [8]byte{0xaf, 0xef, 0xf8, 0x7e, 0xf2, 0xe6, 0xba, 0x25}} + FOLDERID_ProgramData = &KNOWNFOLDERID{0x62ab5d82, 0xfdc1, 0x4dc3, [8]byte{0xa9, 0xdd, 0x07, 0x0d, 0x1d, 0x49, 0x5d, 0x97}} + FOLDERID_CommonTemplates = &KNOWNFOLDERID{0xb94237e7, 0x57ac, 0x4347, [8]byte{0x91, 0x51, 0xb0, 0x8c, 0x6c, 0x32, 0xd1, 0xf7}} + FOLDERID_PublicDocuments = &KNOWNFOLDERID{0xed4824af, 0xdce4, 0x45a8, [8]byte{0x81, 0xe2, 0xfc, 0x79, 0x65, 0x08, 0x36, 0x34}} + FOLDERID_RoamingAppData = &KNOWNFOLDERID{0x3eb685db, 0x65f9, 0x4cf6, [8]byte{0xa0, 0x3a, 0xe3, 0xef, 0x65, 0x72, 0x9f, 0x3d}} + FOLDERID_LocalAppData = &KNOWNFOLDERID{0xf1b32785, 0x6fba, 0x4fcf, [8]byte{0x9d, 0x55, 0x7b, 0x8e, 0x7f, 0x15, 0x70, 0x91}} + FOLDERID_LocalAppDataLow = &KNOWNFOLDERID{0xa520a1a4, 0x1780, 0x4ff6, [8]byte{0xbd, 0x18, 0x16, 0x73, 0x43, 0xc5, 0xaf, 0x16}} + FOLDERID_InternetCache = &KNOWNFOLDERID{0x352481e8, 0x33be, 0x4251, [8]byte{0xba, 0x85, 0x60, 0x07, 0xca, 0xed, 0xcf, 0x9d}} + FOLDERID_Cookies = &KNOWNFOLDERID{0x2b0f765d, 0xc0e9, 0x4171, [8]byte{0x90, 0x8e, 0x08, 0xa6, 0x11, 0xb8, 0x4f, 0xf6}} + FOLDERID_History = &KNOWNFOLDERID{0xd9dc8a3b, 0xb784, 0x432e, [8]byte{0xa7, 0x81, 0x5a, 0x11, 0x30, 0xa7, 0x59, 0x63}} + FOLDERID_System = &KNOWNFOLDERID{0x1ac14e77, 0x02e7, 0x4e5d, [8]byte{0xb7, 0x44, 0x2e, 0xb1, 0xae, 0x51, 0x98, 0xb7}} + FOLDERID_SystemX86 = &KNOWNFOLDERID{0xd65231b0, 0xb2f1, 0x4857, [8]byte{0xa4, 0xce, 0xa8, 0xe7, 0xc6, 0xea, 0x7d, 0x27}} + FOLDERID_Windows = &KNOWNFOLDERID{0xf38bf404, 0x1d43, 0x42f2, [8]byte{0x93, 0x05, 0x67, 0xde, 0x0b, 0x28, 0xfc, 0x23}} + FOLDERID_Profile = &KNOWNFOLDERID{0x5e6c858f, 0x0e22, 0x4760, [8]byte{0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73}} + FOLDERID_Pictures = &KNOWNFOLDERID{0x33e28130, 0x4e1e, 0x4676, [8]byte{0x83, 0x5a, 0x98, 0x39, 0x5c, 0x3b, 0xc3, 0xbb}} + FOLDERID_ProgramFilesX86 = &KNOWNFOLDERID{0x7c5a40ef, 0xa0fb, 0x4bfc, [8]byte{0x87, 0x4a, 0xc0, 0xf2, 0xe0, 0xb9, 0xfa, 0x8e}} + FOLDERID_ProgramFilesCommonX86 = &KNOWNFOLDERID{0xde974d24, 0xd9c6, 0x4d3e, [8]byte{0xbf, 0x91, 0xf4, 0x45, 0x51, 0x20, 0xb9, 0x17}} + FOLDERID_ProgramFilesX64 = &KNOWNFOLDERID{0x6d809377, 0x6af0, 0x444b, [8]byte{0x89, 0x57, 0xa3, 0x77, 0x3f, 0x02, 0x20, 0x0e}} + FOLDERID_ProgramFilesCommonX64 = &KNOWNFOLDERID{0x6365d5a7, 0x0f0d, 0x45e5, [8]byte{0x87, 0xf6, 0x0d, 0xa5, 0x6b, 0x6a, 0x4f, 0x7d}} + FOLDERID_ProgramFiles = &KNOWNFOLDERID{0x905e63b6, 0xc1bf, 0x494e, [8]byte{0xb2, 0x9c, 0x65, 0xb7, 0x32, 0xd3, 0xd2, 0x1a}} + FOLDERID_ProgramFilesCommon = &KNOWNFOLDERID{0xf7f1ed05, 0x9f6d, 0x47a2, [8]byte{0xaa, 0xae, 0x29, 0xd3, 0x17, 0xc6, 0xf0, 0x66}} + FOLDERID_UserProgramFiles = &KNOWNFOLDERID{0x5cd7aee2, 0x2219, 0x4a67, [8]byte{0xb8, 0x5d, 0x6c, 0x9c, 0xe1, 0x56, 0x60, 0xcb}} + FOLDERID_UserProgramFilesCommon = &KNOWNFOLDERID{0xbcbd3057, 0xca5c, 0x4622, [8]byte{0xb4, 0x2d, 0xbc, 0x56, 0xdb, 0x0a, 0xe5, 0x16}} + FOLDERID_AdminTools = &KNOWNFOLDERID{0x724ef170, 0xa42d, 0x4fef, [8]byte{0x9f, 0x26, 0xb6, 0x0e, 0x84, 0x6f, 0xba, 0x4f}} + FOLDERID_CommonAdminTools = &KNOWNFOLDERID{0xd0384e7d, 0xbac3, 0x4797, [8]byte{0x8f, 0x14, 0xcb, 0xa2, 0x29, 0xb3, 0x92, 0xb5}} + FOLDERID_Music = &KNOWNFOLDERID{0x4bd8d571, 0x6d19, 0x48d3, [8]byte{0xbe, 0x97, 0x42, 0x22, 0x20, 0x08, 0x0e, 0x43}} + FOLDERID_Videos = &KNOWNFOLDERID{0x18989b1d, 0x99b5, 0x455b, [8]byte{0x84, 0x1c, 0xab, 0x7c, 0x74, 0xe4, 0xdd, 0xfc}} + FOLDERID_Ringtones = &KNOWNFOLDERID{0xc870044b, 0xf49e, 0x4126, [8]byte{0xa9, 0xc3, 0xb5, 0x2a, 0x1f, 0xf4, 0x11, 0xe8}} + FOLDERID_PublicPictures = &KNOWNFOLDERID{0xb6ebfb86, 0x6907, 0x413c, [8]byte{0x9a, 0xf7, 0x4f, 0xc2, 0xab, 0xf0, 0x7c, 0xc5}} + FOLDERID_PublicMusic = &KNOWNFOLDERID{0x3214fab5, 0x9757, 0x4298, [8]byte{0xbb, 0x61, 0x92, 0xa9, 0xde, 0xaa, 0x44, 0xff}} + FOLDERID_PublicVideos = &KNOWNFOLDERID{0x2400183a, 0x6185, 0x49fb, [8]byte{0xa2, 0xd8, 0x4a, 0x39, 0x2a, 0x60, 0x2b, 0xa3}} + FOLDERID_PublicRingtones = &KNOWNFOLDERID{0xe555ab60, 0x153b, 0x4d17, [8]byte{0x9f, 0x04, 0xa5, 0xfe, 0x99, 0xfc, 0x15, 0xec}} + FOLDERID_ResourceDir = &KNOWNFOLDERID{0x8ad10c31, 0x2adb, 0x4296, [8]byte{0xa8, 0xf7, 0xe4, 0x70, 0x12, 0x32, 0xc9, 0x72}} + FOLDERID_LocalizedResourcesDir = &KNOWNFOLDERID{0x2a00375e, 0x224c, 0x49de, [8]byte{0xb8, 0xd1, 0x44, 0x0d, 0xf7, 0xef, 0x3d, 0xdc}} + FOLDERID_CommonOEMLinks = &KNOWNFOLDERID{0xc1bae2d0, 0x10df, 0x4334, [8]byte{0xbe, 0xdd, 0x7a, 0xa2, 0x0b, 0x22, 0x7a, 0x9d}} + FOLDERID_CDBurning = &KNOWNFOLDERID{0x9e52ab10, 0xf80d, 0x49df, [8]byte{0xac, 0xb8, 0x43, 0x30, 0xf5, 0x68, 0x78, 0x55}} + FOLDERID_UserProfiles = &KNOWNFOLDERID{0x0762d272, 0xc50a, 0x4bb0, [8]byte{0xa3, 0x82, 0x69, 0x7d, 0xcd, 0x72, 0x9b, 0x80}} + FOLDERID_Playlists = &KNOWNFOLDERID{0xde92c1c7, 0x837f, 0x4f69, [8]byte{0xa3, 0xbb, 0x86, 0xe6, 0x31, 0x20, 0x4a, 0x23}} + FOLDERID_SamplePlaylists = &KNOWNFOLDERID{0x15ca69b3, 0x30ee, 0x49c1, [8]byte{0xac, 0xe1, 0x6b, 0x5e, 0xc3, 0x72, 0xaf, 0xb5}} + FOLDERID_SampleMusic = &KNOWNFOLDERID{0xb250c668, 0xf57d, 0x4ee1, [8]byte{0xa6, 0x3c, 0x29, 0x0e, 0xe7, 0xd1, 0xaa, 0x1f}} + FOLDERID_SamplePictures = &KNOWNFOLDERID{0xc4900540, 0x2379, 0x4c75, [8]byte{0x84, 0x4b, 0x64, 0xe6, 0xfa, 0xf8, 0x71, 0x6b}} + FOLDERID_SampleVideos = &KNOWNFOLDERID{0x859ead94, 0x2e85, 0x48ad, [8]byte{0xa7, 0x1a, 0x09, 0x69, 0xcb, 0x56, 0xa6, 0xcd}} + FOLDERID_PhotoAlbums = &KNOWNFOLDERID{0x69d2cf90, 0xfc33, 0x4fb7, [8]byte{0x9a, 0x0c, 0xeb, 0xb0, 0xf0, 0xfc, 0xb4, 0x3c}} + FOLDERID_Public = &KNOWNFOLDERID{0xdfdf76a2, 0xc82a, 0x4d63, [8]byte{0x90, 0x6a, 0x56, 0x44, 0xac, 0x45, 0x73, 0x85}} + FOLDERID_ChangeRemovePrograms = &KNOWNFOLDERID{0xdf7266ac, 0x9274, 0x4867, [8]byte{0x8d, 0x55, 0x3b, 0xd6, 0x61, 0xde, 0x87, 0x2d}} + FOLDERID_AppUpdates = &KNOWNFOLDERID{0xa305ce99, 0xf527, 0x492b, [8]byte{0x8b, 0x1a, 0x7e, 0x76, 0xfa, 0x98, 0xd6, 0xe4}} + FOLDERID_AddNewPrograms = &KNOWNFOLDERID{0xde61d971, 0x5ebc, 0x4f02, [8]byte{0xa3, 0xa9, 0x6c, 0x82, 0x89, 0x5e, 0x5c, 0x04}} + FOLDERID_Downloads = &KNOWNFOLDERID{0x374de290, 0x123f, 0x4565, [8]byte{0x91, 0x64, 0x39, 0xc4, 0x92, 0x5e, 0x46, 0x7b}} + FOLDERID_PublicDownloads = &KNOWNFOLDERID{0x3d644c9b, 0x1fb8, 0x4f30, [8]byte{0x9b, 0x45, 0xf6, 0x70, 0x23, 0x5f, 0x79, 0xc0}} + FOLDERID_SavedSearches = &KNOWNFOLDERID{0x7d1d3a04, 0xdebb, 0x4115, [8]byte{0x95, 0xcf, 0x2f, 0x29, 0xda, 0x29, 0x20, 0xda}} + FOLDERID_QuickLaunch = &KNOWNFOLDERID{0x52a4f021, 0x7b75, 0x48a9, [8]byte{0x9f, 0x6b, 0x4b, 0x87, 0xa2, 0x10, 0xbc, 0x8f}} + FOLDERID_Contacts = &KNOWNFOLDERID{0x56784854, 0xc6cb, 0x462b, [8]byte{0x81, 0x69, 0x88, 0xe3, 0x50, 0xac, 0xb8, 0x82}} + FOLDERID_SidebarParts = &KNOWNFOLDERID{0xa75d362e, 0x50fc, 0x4fb7, [8]byte{0xac, 0x2c, 0xa8, 0xbe, 0xaa, 0x31, 0x44, 0x93}} + FOLDERID_SidebarDefaultParts = &KNOWNFOLDERID{0x7b396e54, 0x9ec5, 0x4300, [8]byte{0xbe, 0x0a, 0x24, 0x82, 0xeb, 0xae, 0x1a, 0x26}} + FOLDERID_PublicGameTasks = &KNOWNFOLDERID{0xdebf2536, 0xe1a8, 0x4c59, [8]byte{0xb6, 0xa2, 0x41, 0x45, 0x86, 0x47, 0x6a, 0xea}} + FOLDERID_GameTasks = &KNOWNFOLDERID{0x054fae61, 0x4dd8, 0x4787, [8]byte{0x80, 0xb6, 0x09, 0x02, 0x20, 0xc4, 0xb7, 0x00}} + FOLDERID_SavedGames = &KNOWNFOLDERID{0x4c5c32ff, 0xbb9d, 0x43b0, [8]byte{0xb5, 0xb4, 0x2d, 0x72, 0xe5, 0x4e, 0xaa, 0xa4}} + FOLDERID_Games = &KNOWNFOLDERID{0xcac52c1a, 0xb53d, 0x4edc, [8]byte{0x92, 0xd7, 0x6b, 0x2e, 0x8a, 0xc1, 0x94, 0x34}} + FOLDERID_SEARCH_MAPI = &KNOWNFOLDERID{0x98ec0e18, 0x2098, 0x4d44, [8]byte{0x86, 0x44, 0x66, 0x97, 0x93, 0x15, 0xa2, 0x81}} + FOLDERID_SEARCH_CSC = &KNOWNFOLDERID{0xee32e446, 0x31ca, 0x4aba, [8]byte{0x81, 0x4f, 0xa5, 0xeb, 0xd2, 0xfd, 0x6d, 0x5e}} + FOLDERID_Links = &KNOWNFOLDERID{0xbfb9d5e0, 0xc6a9, 0x404c, [8]byte{0xb2, 0xb2, 0xae, 0x6d, 0xb6, 0xaf, 0x49, 0x68}} + FOLDERID_UsersFiles = &KNOWNFOLDERID{0xf3ce0f7c, 0x4901, 0x4acc, [8]byte{0x86, 0x48, 0xd5, 0xd4, 0x4b, 0x04, 0xef, 0x8f}} + FOLDERID_UsersLibraries = &KNOWNFOLDERID{0xa302545d, 0xdeff, 0x464b, [8]byte{0xab, 0xe8, 0x61, 0xc8, 0x64, 0x8d, 0x93, 0x9b}} + FOLDERID_SearchHome = &KNOWNFOLDERID{0x190337d1, 0xb8ca, 0x4121, [8]byte{0xa6, 0x39, 0x6d, 0x47, 0x2d, 0x16, 0x97, 0x2a}} + FOLDERID_OriginalImages = &KNOWNFOLDERID{0x2c36c0aa, 0x5812, 0x4b87, [8]byte{0xbf, 0xd0, 0x4c, 0xd0, 0xdf, 0xb1, 0x9b, 0x39}} + FOLDERID_DocumentsLibrary = &KNOWNFOLDERID{0x7b0db17d, 0x9cd2, 0x4a93, [8]byte{0x97, 0x33, 0x46, 0xcc, 0x89, 0x02, 0x2e, 0x7c}} + FOLDERID_MusicLibrary = &KNOWNFOLDERID{0x2112ab0a, 0xc86a, 0x4ffe, [8]byte{0xa3, 0x68, 0x0d, 0xe9, 0x6e, 0x47, 0x01, 0x2e}} + FOLDERID_PicturesLibrary = &KNOWNFOLDERID{0xa990ae9f, 0xa03b, 0x4e80, [8]byte{0x94, 0xbc, 0x99, 0x12, 0xd7, 0x50, 0x41, 0x04}} + FOLDERID_VideosLibrary = &KNOWNFOLDERID{0x491e922f, 0x5643, 0x4af4, [8]byte{0xa7, 0xeb, 0x4e, 0x7a, 0x13, 0x8d, 0x81, 0x74}} + FOLDERID_RecordedTVLibrary = &KNOWNFOLDERID{0x1a6fdba2, 0xf42d, 0x4358, [8]byte{0xa7, 0x98, 0xb7, 0x4d, 0x74, 0x59, 0x26, 0xc5}} + FOLDERID_HomeGroup = &KNOWNFOLDERID{0x52528a6b, 0xb9e3, 0x4add, [8]byte{0xb6, 0x0d, 0x58, 0x8c, 0x2d, 0xba, 0x84, 0x2d}} + FOLDERID_HomeGroupCurrentUser = &KNOWNFOLDERID{0x9b74b6a3, 0x0dfd, 0x4f11, [8]byte{0x9e, 0x78, 0x5f, 0x78, 0x00, 0xf2, 0xe7, 0x72}} + FOLDERID_DeviceMetadataStore = &KNOWNFOLDERID{0x5ce4a5e9, 0xe4eb, 0x479d, [8]byte{0xb8, 0x9f, 0x13, 0x0c, 0x02, 0x88, 0x61, 0x55}} + FOLDERID_Libraries = &KNOWNFOLDERID{0x1b3ea5dc, 0xb587, 0x4786, [8]byte{0xb4, 0xef, 0xbd, 0x1d, 0xc3, 0x32, 0xae, 0xae}} + FOLDERID_PublicLibraries = &KNOWNFOLDERID{0x48daf80b, 0xe6cf, 0x4f4e, [8]byte{0xb8, 0x00, 0x0e, 0x69, 0xd8, 0x4e, 0xe3, 0x84}} + FOLDERID_UserPinned = &KNOWNFOLDERID{0x9e3995ab, 0x1f9c, 0x4f13, [8]byte{0xb8, 0x27, 0x48, 0xb2, 0x4b, 0x6c, 0x71, 0x74}} + FOLDERID_ImplicitAppShortcuts = &KNOWNFOLDERID{0xbcb5256f, 0x79f6, 0x4cee, [8]byte{0xb7, 0x25, 0xdc, 0x34, 0xe4, 0x02, 0xfd, 0x46}} + FOLDERID_AccountPictures = &KNOWNFOLDERID{0x008ca0b1, 0x55b4, 0x4c56, [8]byte{0xb8, 0xa8, 0x4d, 0xe4, 0xb2, 0x99, 0xd3, 0xbe}} + FOLDERID_PublicUserTiles = &KNOWNFOLDERID{0x0482af6c, 0x08f1, 0x4c34, [8]byte{0x8c, 0x90, 0xe1, 0x7e, 0xc9, 0x8b, 0x1e, 0x17}} + FOLDERID_AppsFolder = &KNOWNFOLDERID{0x1e87508d, 0x89c2, 0x42f0, [8]byte{0x8a, 0x7e, 0x64, 0x5a, 0x0f, 0x50, 0xca, 0x58}} + FOLDERID_StartMenuAllPrograms = &KNOWNFOLDERID{0xf26305ef, 0x6948, 0x40b9, [8]byte{0xb2, 0x55, 0x81, 0x45, 0x3d, 0x09, 0xc7, 0x85}} + FOLDERID_CommonStartMenuPlaces = &KNOWNFOLDERID{0xa440879f, 0x87a0, 0x4f7d, [8]byte{0xb7, 0x00, 0x02, 0x07, 0xb9, 0x66, 0x19, 0x4a}} + FOLDERID_ApplicationShortcuts = &KNOWNFOLDERID{0xa3918781, 0xe5f2, 0x4890, [8]byte{0xb3, 0xd9, 0xa7, 0xe5, 0x43, 0x32, 0x32, 0x8c}} + FOLDERID_RoamingTiles = &KNOWNFOLDERID{0x00bcfc5a, 0xed94, 0x4e48, [8]byte{0x96, 0xa1, 0x3f, 0x62, 0x17, 0xf2, 0x19, 0x90}} + FOLDERID_RoamedTileImages = &KNOWNFOLDERID{0xaaa8d5a5, 0xf1d6, 0x4259, [8]byte{0xba, 0xa8, 0x78, 0xe7, 0xef, 0x60, 0x83, 0x5e}} + FOLDERID_Screenshots = &KNOWNFOLDERID{0xb7bede81, 0xdf94, 0x4682, [8]byte{0xa7, 0xd8, 0x57, 0xa5, 0x26, 0x20, 0xb8, 0x6f}} + FOLDERID_CameraRoll = &KNOWNFOLDERID{0xab5fb87b, 0x7ce2, 0x4f83, [8]byte{0x91, 0x5d, 0x55, 0x08, 0x46, 0xc9, 0x53, 0x7b}} + FOLDERID_SkyDrive = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}} + FOLDERID_OneDrive = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}} + FOLDERID_SkyDriveDocuments = &KNOWNFOLDERID{0x24d89e24, 0x2f19, 0x4534, [8]byte{0x9d, 0xde, 0x6a, 0x66, 0x71, 0xfb, 0xb8, 0xfe}} + FOLDERID_SkyDrivePictures = &KNOWNFOLDERID{0x339719b5, 0x8c47, 0x4894, [8]byte{0x94, 0xc2, 0xd8, 0xf7, 0x7a, 0xdd, 0x44, 0xa6}} + FOLDERID_SkyDriveMusic = &KNOWNFOLDERID{0xc3f2459e, 0x80d6, 0x45dc, [8]byte{0xbf, 0xef, 0x1f, 0x76, 0x9f, 0x2b, 0xe7, 0x30}} + FOLDERID_SkyDriveCameraRoll = &KNOWNFOLDERID{0x767e6811, 0x49cb, 0x4273, [8]byte{0x87, 0xc2, 0x20, 0xf3, 0x55, 0xe1, 0x08, 0x5b}} + FOLDERID_SearchHistory = &KNOWNFOLDERID{0x0d4c3db6, 0x03a3, 0x462f, [8]byte{0xa0, 0xe6, 0x08, 0x92, 0x4c, 0x41, 0xb5, 0xd4}} + FOLDERID_SearchTemplates = &KNOWNFOLDERID{0x7e636bfe, 0xdfa9, 0x4d5e, [8]byte{0xb4, 0x56, 0xd7, 0xb3, 0x98, 0x51, 0xd8, 0xa9}} + FOLDERID_CameraRollLibrary = &KNOWNFOLDERID{0x2b20df75, 0x1eda, 0x4039, [8]byte{0x80, 0x97, 0x38, 0x79, 0x82, 0x27, 0xd5, 0xb7}} + FOLDERID_SavedPictures = &KNOWNFOLDERID{0x3b193882, 0xd3ad, 0x4eab, [8]byte{0x96, 0x5a, 0x69, 0x82, 0x9d, 0x1f, 0xb5, 0x9f}} + FOLDERID_SavedPicturesLibrary = &KNOWNFOLDERID{0xe25b5812, 0xbe88, 0x4bd9, [8]byte{0x94, 0xb0, 0x29, 0x23, 0x34, 0x77, 0xb6, 0xc3}} + FOLDERID_RetailDemo = &KNOWNFOLDERID{0x12d4c69e, 0x24ad, 0x4923, [8]byte{0xbe, 0x19, 0x31, 0x32, 0x1c, 0x43, 0xa7, 0x67}} + FOLDERID_Device = &KNOWNFOLDERID{0x1c2ac1dc, 0x4358, 0x4b6c, [8]byte{0x97, 0x33, 0xaf, 0x21, 0x15, 0x65, 0x76, 0xf0}} + FOLDERID_DevelopmentFiles = &KNOWNFOLDERID{0xdbe8e08e, 0x3053, 0x4bbc, [8]byte{0xb1, 0x83, 0x2a, 0x7b, 0x2b, 0x19, 0x1e, 0x59}} + FOLDERID_Objects3D = &KNOWNFOLDERID{0x31c0dd25, 0x9439, 0x4f12, [8]byte{0xbf, 0x41, 0x7f, 0xf4, 0xed, 0xa3, 0x87, 0x22}} + FOLDERID_AppCaptures = &KNOWNFOLDERID{0xedc0fe71, 0x98d8, 0x4f4a, [8]byte{0xb9, 0x20, 0xc8, 0xdc, 0x13, 0x3c, 0xb1, 0x65}} + FOLDERID_LocalDocuments = &KNOWNFOLDERID{0xf42ee2d3, 0x909f, 0x4907, [8]byte{0x88, 0x71, 0x4c, 0x22, 0xfc, 0x0b, 0xf7, 0x56}} + FOLDERID_LocalPictures = &KNOWNFOLDERID{0x0ddd015d, 0xb06c, 0x45d5, [8]byte{0x8c, 0x4c, 0xf5, 0x97, 0x13, 0x85, 0x46, 0x39}} + FOLDERID_LocalVideos = &KNOWNFOLDERID{0x35286a68, 0x3c57, 0x41a1, [8]byte{0xbb, 0xb1, 0x0e, 0xae, 0x73, 0xd7, 0x6c, 0x95}} + FOLDERID_LocalMusic = &KNOWNFOLDERID{0xa0c69a99, 0x21c8, 0x4671, [8]byte{0x87, 0x03, 0x79, 0x34, 0x16, 0x2f, 0xcf, 0x1d}} + FOLDERID_LocalDownloads = &KNOWNFOLDERID{0x7d83ee9b, 0x2244, 0x4e70, [8]byte{0xb1, 0xf5, 0x53, 0x93, 0x04, 0x2a, 0xf1, 0xe4}} + FOLDERID_RecordedCalls = &KNOWNFOLDERID{0x2f8b40c2, 0x83ed, 0x48ee, [8]byte{0xb3, 0x83, 0xa1, 0xf1, 0x57, 0xec, 0x6f, 0x9a}} + FOLDERID_AllAppMods = &KNOWNFOLDERID{0x7ad67899, 0x66af, 0x43ba, [8]byte{0x91, 0x56, 0x6a, 0xad, 0x42, 0xe6, 0xc5, 0x96}} + FOLDERID_CurrentAppMods = &KNOWNFOLDERID{0x3db40b20, 0x2a30, 0x4dbe, [8]byte{0x91, 0x7e, 0x77, 0x1d, 0xd2, 0x1d, 0xd0, 0x99}} + FOLDERID_AppDataDesktop = &KNOWNFOLDERID{0xb2c5e279, 0x7add, 0x439f, [8]byte{0xb2, 0x8c, 0xc4, 0x1f, 0xe1, 0xbb, 0xf6, 0x72}} + FOLDERID_AppDataDocuments = &KNOWNFOLDERID{0x7be16610, 0x1f7f, 0x44ac, [8]byte{0xbf, 0xf0, 0x83, 0xe1, 0x5f, 0x2f, 0xfc, 0xa1}} + FOLDERID_AppDataFavorites = &KNOWNFOLDERID{0x7cfbefbc, 0xde1f, 0x45aa, [8]byte{0xb8, 0x43, 0xa5, 0x42, 0xac, 0x53, 0x6c, 0xc9}} + FOLDERID_AppDataProgramData = &KNOWNFOLDERID{0x559d40a3, 0xa036, 0x40fa, [8]byte{0xaf, 0x61, 0x84, 0xcb, 0x43, 0x0a, 0x4d, 0x34}} +) diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go new file mode 100644 index 000000000000..5c385580f68b --- /dev/null +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -0,0 +1,4357 @@ +// Code generated by 'go generate'; DO NOT EDIT. + +package windows + +import ( + "syscall" + "unsafe" +) + +var _ unsafe.Pointer + +// Do the interface allocations only once for common +// Errno values. +const ( + errnoERROR_IO_PENDING = 997 +) + +var ( + errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) + errERROR_EINVAL error = syscall.EINVAL +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e syscall.Errno) error { + switch e { + case 0: + return errERROR_EINVAL + case errnoERROR_IO_PENDING: + return errERROR_IO_PENDING + } + // TODO: add more here, after collecting data on the common + // error values see on Windows. (perhaps when running + // all.bat?) + return e +} + +var ( + modCfgMgr32 = NewLazySystemDLL("CfgMgr32.dll") + modadvapi32 = NewLazySystemDLL("advapi32.dll") + modcrypt32 = NewLazySystemDLL("crypt32.dll") + moddnsapi = NewLazySystemDLL("dnsapi.dll") + moddwmapi = NewLazySystemDLL("dwmapi.dll") + modiphlpapi = NewLazySystemDLL("iphlpapi.dll") + modkernel32 = NewLazySystemDLL("kernel32.dll") + modmswsock = NewLazySystemDLL("mswsock.dll") + modnetapi32 = NewLazySystemDLL("netapi32.dll") + modntdll = NewLazySystemDLL("ntdll.dll") + modole32 = NewLazySystemDLL("ole32.dll") + modpsapi = NewLazySystemDLL("psapi.dll") + modsechost = NewLazySystemDLL("sechost.dll") + modsecur32 = NewLazySystemDLL("secur32.dll") + modsetupapi = NewLazySystemDLL("setupapi.dll") + modshell32 = NewLazySystemDLL("shell32.dll") + moduser32 = NewLazySystemDLL("user32.dll") + moduserenv = NewLazySystemDLL("userenv.dll") + modversion = NewLazySystemDLL("version.dll") + modwinmm = NewLazySystemDLL("winmm.dll") + modwintrust = NewLazySystemDLL("wintrust.dll") + modws2_32 = NewLazySystemDLL("ws2_32.dll") + modwtsapi32 = NewLazySystemDLL("wtsapi32.dll") + + procCM_Get_DevNode_Status = modCfgMgr32.NewProc("CM_Get_DevNode_Status") + procCM_Get_Device_Interface_ListW = modCfgMgr32.NewProc("CM_Get_Device_Interface_ListW") + procCM_Get_Device_Interface_List_SizeW = modCfgMgr32.NewProc("CM_Get_Device_Interface_List_SizeW") + procCM_MapCrToWin32Err = modCfgMgr32.NewProc("CM_MapCrToWin32Err") + procAdjustTokenGroups = modadvapi32.NewProc("AdjustTokenGroups") + procAdjustTokenPrivileges = modadvapi32.NewProc("AdjustTokenPrivileges") + procAllocateAndInitializeSid = modadvapi32.NewProc("AllocateAndInitializeSid") + procBuildSecurityDescriptorW = modadvapi32.NewProc("BuildSecurityDescriptorW") + procChangeServiceConfig2W = modadvapi32.NewProc("ChangeServiceConfig2W") + procChangeServiceConfigW = modadvapi32.NewProc("ChangeServiceConfigW") + procCheckTokenMembership = modadvapi32.NewProc("CheckTokenMembership") + procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle") + procControlService = modadvapi32.NewProc("ControlService") + procConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc("ConvertSecurityDescriptorToStringSecurityDescriptorW") + procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW") + procConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc("ConvertStringSecurityDescriptorToSecurityDescriptorW") + procConvertStringSidToSidW = modadvapi32.NewProc("ConvertStringSidToSidW") + procCopySid = modadvapi32.NewProc("CopySid") + procCreateProcessAsUserW = modadvapi32.NewProc("CreateProcessAsUserW") + procCreateServiceW = modadvapi32.NewProc("CreateServiceW") + procCreateWellKnownSid = modadvapi32.NewProc("CreateWellKnownSid") + procCryptAcquireContextW = modadvapi32.NewProc("CryptAcquireContextW") + procCryptGenRandom = modadvapi32.NewProc("CryptGenRandom") + procCryptReleaseContext = modadvapi32.NewProc("CryptReleaseContext") + procDeleteService = modadvapi32.NewProc("DeleteService") + procDeregisterEventSource = modadvapi32.NewProc("DeregisterEventSource") + procDuplicateTokenEx = modadvapi32.NewProc("DuplicateTokenEx") + procEnumDependentServicesW = modadvapi32.NewProc("EnumDependentServicesW") + procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW") + procEqualSid = modadvapi32.NewProc("EqualSid") + procFreeSid = modadvapi32.NewProc("FreeSid") + procGetLengthSid = modadvapi32.NewProc("GetLengthSid") + procGetNamedSecurityInfoW = modadvapi32.NewProc("GetNamedSecurityInfoW") + procGetSecurityDescriptorControl = modadvapi32.NewProc("GetSecurityDescriptorControl") + procGetSecurityDescriptorDacl = modadvapi32.NewProc("GetSecurityDescriptorDacl") + procGetSecurityDescriptorGroup = modadvapi32.NewProc("GetSecurityDescriptorGroup") + procGetSecurityDescriptorLength = modadvapi32.NewProc("GetSecurityDescriptorLength") + procGetSecurityDescriptorOwner = modadvapi32.NewProc("GetSecurityDescriptorOwner") + procGetSecurityDescriptorRMControl = modadvapi32.NewProc("GetSecurityDescriptorRMControl") + procGetSecurityDescriptorSacl = modadvapi32.NewProc("GetSecurityDescriptorSacl") + procGetSecurityInfo = modadvapi32.NewProc("GetSecurityInfo") + procGetSidIdentifierAuthority = modadvapi32.NewProc("GetSidIdentifierAuthority") + procGetSidSubAuthority = modadvapi32.NewProc("GetSidSubAuthority") + procGetSidSubAuthorityCount = modadvapi32.NewProc("GetSidSubAuthorityCount") + procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation") + procImpersonateSelf = modadvapi32.NewProc("ImpersonateSelf") + procInitializeSecurityDescriptor = modadvapi32.NewProc("InitializeSecurityDescriptor") + procInitiateSystemShutdownExW = modadvapi32.NewProc("InitiateSystemShutdownExW") + procIsTokenRestricted = modadvapi32.NewProc("IsTokenRestricted") + procIsValidSecurityDescriptor = modadvapi32.NewProc("IsValidSecurityDescriptor") + procIsValidSid = modadvapi32.NewProc("IsValidSid") + procIsWellKnownSid = modadvapi32.NewProc("IsWellKnownSid") + procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW") + procLookupAccountSidW = modadvapi32.NewProc("LookupAccountSidW") + procLookupPrivilegeValueW = modadvapi32.NewProc("LookupPrivilegeValueW") + procMakeAbsoluteSD = modadvapi32.NewProc("MakeAbsoluteSD") + procMakeSelfRelativeSD = modadvapi32.NewProc("MakeSelfRelativeSD") + procNotifyServiceStatusChangeW = modadvapi32.NewProc("NotifyServiceStatusChangeW") + procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken") + procOpenSCManagerW = modadvapi32.NewProc("OpenSCManagerW") + procOpenServiceW = modadvapi32.NewProc("OpenServiceW") + procOpenThreadToken = modadvapi32.NewProc("OpenThreadToken") + procQueryServiceConfig2W = modadvapi32.NewProc("QueryServiceConfig2W") + procQueryServiceConfigW = modadvapi32.NewProc("QueryServiceConfigW") + procQueryServiceDynamicInformation = modadvapi32.NewProc("QueryServiceDynamicInformation") + procQueryServiceLockStatusW = modadvapi32.NewProc("QueryServiceLockStatusW") + procQueryServiceStatus = modadvapi32.NewProc("QueryServiceStatus") + procQueryServiceStatusEx = modadvapi32.NewProc("QueryServiceStatusEx") + procRegCloseKey = modadvapi32.NewProc("RegCloseKey") + procRegEnumKeyExW = modadvapi32.NewProc("RegEnumKeyExW") + procRegNotifyChangeKeyValue = modadvapi32.NewProc("RegNotifyChangeKeyValue") + procRegOpenKeyExW = modadvapi32.NewProc("RegOpenKeyExW") + procRegQueryInfoKeyW = modadvapi32.NewProc("RegQueryInfoKeyW") + procRegQueryValueExW = modadvapi32.NewProc("RegQueryValueExW") + procRegisterEventSourceW = modadvapi32.NewProc("RegisterEventSourceW") + procRegisterServiceCtrlHandlerExW = modadvapi32.NewProc("RegisterServiceCtrlHandlerExW") + procReportEventW = modadvapi32.NewProc("ReportEventW") + procRevertToSelf = modadvapi32.NewProc("RevertToSelf") + procSetEntriesInAclW = modadvapi32.NewProc("SetEntriesInAclW") + procSetKernelObjectSecurity = modadvapi32.NewProc("SetKernelObjectSecurity") + procSetNamedSecurityInfoW = modadvapi32.NewProc("SetNamedSecurityInfoW") + procSetSecurityDescriptorControl = modadvapi32.NewProc("SetSecurityDescriptorControl") + procSetSecurityDescriptorDacl = modadvapi32.NewProc("SetSecurityDescriptorDacl") + procSetSecurityDescriptorGroup = modadvapi32.NewProc("SetSecurityDescriptorGroup") + procSetSecurityDescriptorOwner = modadvapi32.NewProc("SetSecurityDescriptorOwner") + procSetSecurityDescriptorRMControl = modadvapi32.NewProc("SetSecurityDescriptorRMControl") + procSetSecurityDescriptorSacl = modadvapi32.NewProc("SetSecurityDescriptorSacl") + procSetSecurityInfo = modadvapi32.NewProc("SetSecurityInfo") + procSetServiceStatus = modadvapi32.NewProc("SetServiceStatus") + procSetThreadToken = modadvapi32.NewProc("SetThreadToken") + procSetTokenInformation = modadvapi32.NewProc("SetTokenInformation") + procStartServiceCtrlDispatcherW = modadvapi32.NewProc("StartServiceCtrlDispatcherW") + procStartServiceW = modadvapi32.NewProc("StartServiceW") + procCertAddCertificateContextToStore = modcrypt32.NewProc("CertAddCertificateContextToStore") + procCertCloseStore = modcrypt32.NewProc("CertCloseStore") + procCertCreateCertificateContext = modcrypt32.NewProc("CertCreateCertificateContext") + procCertDeleteCertificateFromStore = modcrypt32.NewProc("CertDeleteCertificateFromStore") + procCertDuplicateCertificateContext = modcrypt32.NewProc("CertDuplicateCertificateContext") + procCertEnumCertificatesInStore = modcrypt32.NewProc("CertEnumCertificatesInStore") + procCertFindCertificateInStore = modcrypt32.NewProc("CertFindCertificateInStore") + procCertFindChainInStore = modcrypt32.NewProc("CertFindChainInStore") + procCertFindExtension = modcrypt32.NewProc("CertFindExtension") + procCertFreeCertificateChain = modcrypt32.NewProc("CertFreeCertificateChain") + procCertFreeCertificateContext = modcrypt32.NewProc("CertFreeCertificateContext") + procCertGetCertificateChain = modcrypt32.NewProc("CertGetCertificateChain") + procCertGetNameStringW = modcrypt32.NewProc("CertGetNameStringW") + procCertOpenStore = modcrypt32.NewProc("CertOpenStore") + procCertOpenSystemStoreW = modcrypt32.NewProc("CertOpenSystemStoreW") + procCertVerifyCertificateChainPolicy = modcrypt32.NewProc("CertVerifyCertificateChainPolicy") + procCryptAcquireCertificatePrivateKey = modcrypt32.NewProc("CryptAcquireCertificatePrivateKey") + procCryptDecodeObject = modcrypt32.NewProc("CryptDecodeObject") + procCryptProtectData = modcrypt32.NewProc("CryptProtectData") + procCryptQueryObject = modcrypt32.NewProc("CryptQueryObject") + procCryptUnprotectData = modcrypt32.NewProc("CryptUnprotectData") + procPFXImportCertStore = modcrypt32.NewProc("PFXImportCertStore") + procDnsNameCompare_W = moddnsapi.NewProc("DnsNameCompare_W") + procDnsQuery_W = moddnsapi.NewProc("DnsQuery_W") + procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree") + procDwmGetWindowAttribute = moddwmapi.NewProc("DwmGetWindowAttribute") + procDwmSetWindowAttribute = moddwmapi.NewProc("DwmSetWindowAttribute") + procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") + procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") + procGetBestInterfaceEx = modiphlpapi.NewProc("GetBestInterfaceEx") + procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") + procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") + procCancelIo = modkernel32.NewProc("CancelIo") + procCancelIoEx = modkernel32.NewProc("CancelIoEx") + procCloseHandle = modkernel32.NewProc("CloseHandle") + procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe") + procCreateDirectoryW = modkernel32.NewProc("CreateDirectoryW") + procCreateEventExW = modkernel32.NewProc("CreateEventExW") + procCreateEventW = modkernel32.NewProc("CreateEventW") + procCreateFileMappingW = modkernel32.NewProc("CreateFileMappingW") + procCreateFileW = modkernel32.NewProc("CreateFileW") + procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW") + procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") + procCreateJobObjectW = modkernel32.NewProc("CreateJobObjectW") + procCreateMutexExW = modkernel32.NewProc("CreateMutexExW") + procCreateMutexW = modkernel32.NewProc("CreateMutexW") + procCreateNamedPipeW = modkernel32.NewProc("CreateNamedPipeW") + procCreatePipe = modkernel32.NewProc("CreatePipe") + procCreateProcessW = modkernel32.NewProc("CreateProcessW") + procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW") + procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot") + procDefineDosDeviceW = modkernel32.NewProc("DefineDosDeviceW") + procDeleteFileW = modkernel32.NewProc("DeleteFileW") + procDeleteProcThreadAttributeList = modkernel32.NewProc("DeleteProcThreadAttributeList") + procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW") + procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") + procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") + procExitProcess = modkernel32.NewProc("ExitProcess") + procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW") + procFindClose = modkernel32.NewProc("FindClose") + procFindCloseChangeNotification = modkernel32.NewProc("FindCloseChangeNotification") + procFindFirstChangeNotificationW = modkernel32.NewProc("FindFirstChangeNotificationW") + procFindFirstFileW = modkernel32.NewProc("FindFirstFileW") + procFindFirstVolumeMountPointW = modkernel32.NewProc("FindFirstVolumeMountPointW") + procFindFirstVolumeW = modkernel32.NewProc("FindFirstVolumeW") + procFindNextChangeNotification = modkernel32.NewProc("FindNextChangeNotification") + procFindNextFileW = modkernel32.NewProc("FindNextFileW") + procFindNextVolumeMountPointW = modkernel32.NewProc("FindNextVolumeMountPointW") + procFindNextVolumeW = modkernel32.NewProc("FindNextVolumeW") + procFindResourceW = modkernel32.NewProc("FindResourceW") + procFindVolumeClose = modkernel32.NewProc("FindVolumeClose") + procFindVolumeMountPointClose = modkernel32.NewProc("FindVolumeMountPointClose") + procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers") + procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile") + procFormatMessageW = modkernel32.NewProc("FormatMessageW") + procFreeEnvironmentStringsW = modkernel32.NewProc("FreeEnvironmentStringsW") + procFreeLibrary = modkernel32.NewProc("FreeLibrary") + procGenerateConsoleCtrlEvent = modkernel32.NewProc("GenerateConsoleCtrlEvent") + procGetACP = modkernel32.NewProc("GetACP") + procGetActiveProcessorCount = modkernel32.NewProc("GetActiveProcessorCount") + procGetCommTimeouts = modkernel32.NewProc("GetCommTimeouts") + procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") + procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") + procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") + procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") + procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo") + procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW") + procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId") + procGetCurrentThreadId = modkernel32.NewProc("GetCurrentThreadId") + procGetDiskFreeSpaceExW = modkernel32.NewProc("GetDiskFreeSpaceExW") + procGetDriveTypeW = modkernel32.NewProc("GetDriveTypeW") + procGetEnvironmentStringsW = modkernel32.NewProc("GetEnvironmentStringsW") + procGetEnvironmentVariableW = modkernel32.NewProc("GetEnvironmentVariableW") + procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess") + procGetFileAttributesExW = modkernel32.NewProc("GetFileAttributesExW") + procGetFileAttributesW = modkernel32.NewProc("GetFileAttributesW") + procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle") + procGetFileInformationByHandleEx = modkernel32.NewProc("GetFileInformationByHandleEx") + procGetFileType = modkernel32.NewProc("GetFileType") + procGetFinalPathNameByHandleW = modkernel32.NewProc("GetFinalPathNameByHandleW") + procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") + procGetLargePageMinimum = modkernel32.NewProc("GetLargePageMinimum") + procGetLastError = modkernel32.NewProc("GetLastError") + procGetLogicalDriveStringsW = modkernel32.NewProc("GetLogicalDriveStringsW") + procGetLogicalDrives = modkernel32.NewProc("GetLogicalDrives") + procGetLongPathNameW = modkernel32.NewProc("GetLongPathNameW") + procGetMaximumProcessorCount = modkernel32.NewProc("GetMaximumProcessorCount") + procGetModuleFileNameW = modkernel32.NewProc("GetModuleFileNameW") + procGetModuleHandleExW = modkernel32.NewProc("GetModuleHandleExW") + procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW") + procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo") + procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult") + procGetPriorityClass = modkernel32.NewProc("GetPriorityClass") + procGetProcAddress = modkernel32.NewProc("GetProcAddress") + procGetProcessId = modkernel32.NewProc("GetProcessId") + procGetProcessPreferredUILanguages = modkernel32.NewProc("GetProcessPreferredUILanguages") + procGetProcessShutdownParameters = modkernel32.NewProc("GetProcessShutdownParameters") + procGetProcessTimes = modkernel32.NewProc("GetProcessTimes") + procGetProcessWorkingSetSizeEx = modkernel32.NewProc("GetProcessWorkingSetSizeEx") + procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus") + procGetShortPathNameW = modkernel32.NewProc("GetShortPathNameW") + procGetStartupInfoW = modkernel32.NewProc("GetStartupInfoW") + procGetStdHandle = modkernel32.NewProc("GetStdHandle") + procGetSystemDirectoryW = modkernel32.NewProc("GetSystemDirectoryW") + procGetSystemPreferredUILanguages = modkernel32.NewProc("GetSystemPreferredUILanguages") + procGetSystemTimeAsFileTime = modkernel32.NewProc("GetSystemTimeAsFileTime") + procGetSystemTimePreciseAsFileTime = modkernel32.NewProc("GetSystemTimePreciseAsFileTime") + procGetSystemWindowsDirectoryW = modkernel32.NewProc("GetSystemWindowsDirectoryW") + procGetTempPathW = modkernel32.NewProc("GetTempPathW") + procGetThreadPreferredUILanguages = modkernel32.NewProc("GetThreadPreferredUILanguages") + procGetTickCount64 = modkernel32.NewProc("GetTickCount64") + procGetTimeZoneInformation = modkernel32.NewProc("GetTimeZoneInformation") + procGetUserPreferredUILanguages = modkernel32.NewProc("GetUserPreferredUILanguages") + procGetVersion = modkernel32.NewProc("GetVersion") + procGetVolumeInformationByHandleW = modkernel32.NewProc("GetVolumeInformationByHandleW") + procGetVolumeInformationW = modkernel32.NewProc("GetVolumeInformationW") + procGetVolumeNameForVolumeMountPointW = modkernel32.NewProc("GetVolumeNameForVolumeMountPointW") + procGetVolumePathNameW = modkernel32.NewProc("GetVolumePathNameW") + procGetVolumePathNamesForVolumeNameW = modkernel32.NewProc("GetVolumePathNamesForVolumeNameW") + procGetWindowsDirectoryW = modkernel32.NewProc("GetWindowsDirectoryW") + procInitializeProcThreadAttributeList = modkernel32.NewProc("InitializeProcThreadAttributeList") + procIsWow64Process = modkernel32.NewProc("IsWow64Process") + procIsWow64Process2 = modkernel32.NewProc("IsWow64Process2") + procLoadLibraryExW = modkernel32.NewProc("LoadLibraryExW") + procLoadLibraryW = modkernel32.NewProc("LoadLibraryW") + procLoadResource = modkernel32.NewProc("LoadResource") + procLocalAlloc = modkernel32.NewProc("LocalAlloc") + procLocalFree = modkernel32.NewProc("LocalFree") + procLockFileEx = modkernel32.NewProc("LockFileEx") + procLockResource = modkernel32.NewProc("LockResource") + procMapViewOfFile = modkernel32.NewProc("MapViewOfFile") + procModule32FirstW = modkernel32.NewProc("Module32FirstW") + procModule32NextW = modkernel32.NewProc("Module32NextW") + procMoveFileExW = modkernel32.NewProc("MoveFileExW") + procMoveFileW = modkernel32.NewProc("MoveFileW") + procMultiByteToWideChar = modkernel32.NewProc("MultiByteToWideChar") + procOpenEventW = modkernel32.NewProc("OpenEventW") + procOpenMutexW = modkernel32.NewProc("OpenMutexW") + procOpenProcess = modkernel32.NewProc("OpenProcess") + procOpenThread = modkernel32.NewProc("OpenThread") + procPostQueuedCompletionStatus = modkernel32.NewProc("PostQueuedCompletionStatus") + procProcess32FirstW = modkernel32.NewProc("Process32FirstW") + procProcess32NextW = modkernel32.NewProc("Process32NextW") + procProcessIdToSessionId = modkernel32.NewProc("ProcessIdToSessionId") + procPulseEvent = modkernel32.NewProc("PulseEvent") + procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW") + procQueryFullProcessImageNameW = modkernel32.NewProc("QueryFullProcessImageNameW") + procQueryInformationJobObject = modkernel32.NewProc("QueryInformationJobObject") + procReadConsoleW = modkernel32.NewProc("ReadConsoleW") + procReadDirectoryChangesW = modkernel32.NewProc("ReadDirectoryChangesW") + procReadFile = modkernel32.NewProc("ReadFile") + procReadProcessMemory = modkernel32.NewProc("ReadProcessMemory") + procReleaseMutex = modkernel32.NewProc("ReleaseMutex") + procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") + procResetEvent = modkernel32.NewProc("ResetEvent") + procResumeThread = modkernel32.NewProc("ResumeThread") + procSetCommTimeouts = modkernel32.NewProc("SetCommTimeouts") + procSetConsoleCursorPosition = modkernel32.NewProc("SetConsoleCursorPosition") + procSetConsoleMode = modkernel32.NewProc("SetConsoleMode") + procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW") + procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories") + procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW") + procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") + procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") + procSetErrorMode = modkernel32.NewProc("SetErrorMode") + procSetEvent = modkernel32.NewProc("SetEvent") + procSetFileAttributesW = modkernel32.NewProc("SetFileAttributesW") + procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes") + procSetFileInformationByHandle = modkernel32.NewProc("SetFileInformationByHandle") + procSetFilePointer = modkernel32.NewProc("SetFilePointer") + procSetFileTime = modkernel32.NewProc("SetFileTime") + procSetHandleInformation = modkernel32.NewProc("SetHandleInformation") + procSetInformationJobObject = modkernel32.NewProc("SetInformationJobObject") + procSetNamedPipeHandleState = modkernel32.NewProc("SetNamedPipeHandleState") + procSetPriorityClass = modkernel32.NewProc("SetPriorityClass") + procSetProcessPriorityBoost = modkernel32.NewProc("SetProcessPriorityBoost") + procSetProcessShutdownParameters = modkernel32.NewProc("SetProcessShutdownParameters") + procSetProcessWorkingSetSizeEx = modkernel32.NewProc("SetProcessWorkingSetSizeEx") + procSetStdHandle = modkernel32.NewProc("SetStdHandle") + procSetVolumeLabelW = modkernel32.NewProc("SetVolumeLabelW") + procSetVolumeMountPointW = modkernel32.NewProc("SetVolumeMountPointW") + procSizeofResource = modkernel32.NewProc("SizeofResource") + procSleepEx = modkernel32.NewProc("SleepEx") + procTerminateJobObject = modkernel32.NewProc("TerminateJobObject") + procTerminateProcess = modkernel32.NewProc("TerminateProcess") + procThread32First = modkernel32.NewProc("Thread32First") + procThread32Next = modkernel32.NewProc("Thread32Next") + procUnlockFileEx = modkernel32.NewProc("UnlockFileEx") + procUnmapViewOfFile = modkernel32.NewProc("UnmapViewOfFile") + procUpdateProcThreadAttribute = modkernel32.NewProc("UpdateProcThreadAttribute") + procVirtualAlloc = modkernel32.NewProc("VirtualAlloc") + procVirtualFree = modkernel32.NewProc("VirtualFree") + procVirtualLock = modkernel32.NewProc("VirtualLock") + procVirtualProtect = modkernel32.NewProc("VirtualProtect") + procVirtualProtectEx = modkernel32.NewProc("VirtualProtectEx") + procVirtualQuery = modkernel32.NewProc("VirtualQuery") + procVirtualQueryEx = modkernel32.NewProc("VirtualQueryEx") + procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") + procWTSGetActiveConsoleSessionId = modkernel32.NewProc("WTSGetActiveConsoleSessionId") + procWaitForMultipleObjects = modkernel32.NewProc("WaitForMultipleObjects") + procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") + procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") + procWriteFile = modkernel32.NewProc("WriteFile") + procWriteProcessMemory = modkernel32.NewProc("WriteProcessMemory") + procAcceptEx = modmswsock.NewProc("AcceptEx") + procGetAcceptExSockaddrs = modmswsock.NewProc("GetAcceptExSockaddrs") + procTransmitFile = modmswsock.NewProc("TransmitFile") + procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") + procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") + procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") + procNtCreateFile = modntdll.NewProc("NtCreateFile") + procNtCreateNamedPipeFile = modntdll.NewProc("NtCreateNamedPipeFile") + procNtQueryInformationProcess = modntdll.NewProc("NtQueryInformationProcess") + procNtQuerySystemInformation = modntdll.NewProc("NtQuerySystemInformation") + procNtSetInformationFile = modntdll.NewProc("NtSetInformationFile") + procNtSetInformationProcess = modntdll.NewProc("NtSetInformationProcess") + procNtSetSystemInformation = modntdll.NewProc("NtSetSystemInformation") + procRtlAddFunctionTable = modntdll.NewProc("RtlAddFunctionTable") + procRtlDefaultNpAcl = modntdll.NewProc("RtlDefaultNpAcl") + procRtlDeleteFunctionTable = modntdll.NewProc("RtlDeleteFunctionTable") + procRtlDosPathNameToNtPathName_U_WithStatus = modntdll.NewProc("RtlDosPathNameToNtPathName_U_WithStatus") + procRtlDosPathNameToRelativeNtPathName_U_WithStatus = modntdll.NewProc("RtlDosPathNameToRelativeNtPathName_U_WithStatus") + procRtlGetCurrentPeb = modntdll.NewProc("RtlGetCurrentPeb") + procRtlGetNtVersionNumbers = modntdll.NewProc("RtlGetNtVersionNumbers") + procRtlGetVersion = modntdll.NewProc("RtlGetVersion") + procRtlInitString = modntdll.NewProc("RtlInitString") + procRtlInitUnicodeString = modntdll.NewProc("RtlInitUnicodeString") + procRtlNtStatusToDosErrorNoTeb = modntdll.NewProc("RtlNtStatusToDosErrorNoTeb") + procCLSIDFromString = modole32.NewProc("CLSIDFromString") + procCoCreateGuid = modole32.NewProc("CoCreateGuid") + procCoGetObject = modole32.NewProc("CoGetObject") + procCoInitializeEx = modole32.NewProc("CoInitializeEx") + procCoTaskMemFree = modole32.NewProc("CoTaskMemFree") + procCoUninitialize = modole32.NewProc("CoUninitialize") + procStringFromGUID2 = modole32.NewProc("StringFromGUID2") + procEnumProcessModules = modpsapi.NewProc("EnumProcessModules") + procEnumProcessModulesEx = modpsapi.NewProc("EnumProcessModulesEx") + procEnumProcesses = modpsapi.NewProc("EnumProcesses") + procGetModuleBaseNameW = modpsapi.NewProc("GetModuleBaseNameW") + procGetModuleFileNameExW = modpsapi.NewProc("GetModuleFileNameExW") + procGetModuleInformation = modpsapi.NewProc("GetModuleInformation") + procQueryWorkingSetEx = modpsapi.NewProc("QueryWorkingSetEx") + procSubscribeServiceChangeNotifications = modsechost.NewProc("SubscribeServiceChangeNotifications") + procUnsubscribeServiceChangeNotifications = modsechost.NewProc("UnsubscribeServiceChangeNotifications") + procGetUserNameExW = modsecur32.NewProc("GetUserNameExW") + procTranslateNameW = modsecur32.NewProc("TranslateNameW") + procSetupDiBuildDriverInfoList = modsetupapi.NewProc("SetupDiBuildDriverInfoList") + procSetupDiCallClassInstaller = modsetupapi.NewProc("SetupDiCallClassInstaller") + procSetupDiCancelDriverInfoSearch = modsetupapi.NewProc("SetupDiCancelDriverInfoSearch") + procSetupDiClassGuidsFromNameExW = modsetupapi.NewProc("SetupDiClassGuidsFromNameExW") + procSetupDiClassNameFromGuidExW = modsetupapi.NewProc("SetupDiClassNameFromGuidExW") + procSetupDiCreateDeviceInfoListExW = modsetupapi.NewProc("SetupDiCreateDeviceInfoListExW") + procSetupDiCreateDeviceInfoW = modsetupapi.NewProc("SetupDiCreateDeviceInfoW") + procSetupDiDestroyDeviceInfoList = modsetupapi.NewProc("SetupDiDestroyDeviceInfoList") + procSetupDiDestroyDriverInfoList = modsetupapi.NewProc("SetupDiDestroyDriverInfoList") + procSetupDiEnumDeviceInfo = modsetupapi.NewProc("SetupDiEnumDeviceInfo") + procSetupDiEnumDriverInfoW = modsetupapi.NewProc("SetupDiEnumDriverInfoW") + procSetupDiGetClassDevsExW = modsetupapi.NewProc("SetupDiGetClassDevsExW") + procSetupDiGetClassInstallParamsW = modsetupapi.NewProc("SetupDiGetClassInstallParamsW") + procSetupDiGetDeviceInfoListDetailW = modsetupapi.NewProc("SetupDiGetDeviceInfoListDetailW") + procSetupDiGetDeviceInstallParamsW = modsetupapi.NewProc("SetupDiGetDeviceInstallParamsW") + procSetupDiGetDeviceInstanceIdW = modsetupapi.NewProc("SetupDiGetDeviceInstanceIdW") + procSetupDiGetDevicePropertyW = modsetupapi.NewProc("SetupDiGetDevicePropertyW") + procSetupDiGetDeviceRegistryPropertyW = modsetupapi.NewProc("SetupDiGetDeviceRegistryPropertyW") + procSetupDiGetDriverInfoDetailW = modsetupapi.NewProc("SetupDiGetDriverInfoDetailW") + procSetupDiGetSelectedDevice = modsetupapi.NewProc("SetupDiGetSelectedDevice") + procSetupDiGetSelectedDriverW = modsetupapi.NewProc("SetupDiGetSelectedDriverW") + procSetupDiOpenDevRegKey = modsetupapi.NewProc("SetupDiOpenDevRegKey") + procSetupDiSetClassInstallParamsW = modsetupapi.NewProc("SetupDiSetClassInstallParamsW") + procSetupDiSetDeviceInstallParamsW = modsetupapi.NewProc("SetupDiSetDeviceInstallParamsW") + procSetupDiSetDeviceRegistryPropertyW = modsetupapi.NewProc("SetupDiSetDeviceRegistryPropertyW") + procSetupDiSetSelectedDevice = modsetupapi.NewProc("SetupDiSetSelectedDevice") + procSetupDiSetSelectedDriverW = modsetupapi.NewProc("SetupDiSetSelectedDriverW") + procSetupUninstallOEMInfW = modsetupapi.NewProc("SetupUninstallOEMInfW") + procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW") + procSHGetKnownFolderPath = modshell32.NewProc("SHGetKnownFolderPath") + procShellExecuteW = modshell32.NewProc("ShellExecuteW") + procEnumChildWindows = moduser32.NewProc("EnumChildWindows") + procEnumWindows = moduser32.NewProc("EnumWindows") + procExitWindowsEx = moduser32.NewProc("ExitWindowsEx") + procGetClassNameW = moduser32.NewProc("GetClassNameW") + procGetDesktopWindow = moduser32.NewProc("GetDesktopWindow") + procGetForegroundWindow = moduser32.NewProc("GetForegroundWindow") + procGetGUIThreadInfo = moduser32.NewProc("GetGUIThreadInfo") + procGetShellWindow = moduser32.NewProc("GetShellWindow") + procGetWindowThreadProcessId = moduser32.NewProc("GetWindowThreadProcessId") + procIsWindow = moduser32.NewProc("IsWindow") + procIsWindowUnicode = moduser32.NewProc("IsWindowUnicode") + procIsWindowVisible = moduser32.NewProc("IsWindowVisible") + procMessageBoxW = moduser32.NewProc("MessageBoxW") + procCreateEnvironmentBlock = moduserenv.NewProc("CreateEnvironmentBlock") + procDestroyEnvironmentBlock = moduserenv.NewProc("DestroyEnvironmentBlock") + procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") + procGetFileVersionInfoSizeW = modversion.NewProc("GetFileVersionInfoSizeW") + procGetFileVersionInfoW = modversion.NewProc("GetFileVersionInfoW") + procVerQueryValueW = modversion.NewProc("VerQueryValueW") + proctimeBeginPeriod = modwinmm.NewProc("timeBeginPeriod") + proctimeEndPeriod = modwinmm.NewProc("timeEndPeriod") + procWinVerifyTrustEx = modwintrust.NewProc("WinVerifyTrustEx") + procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") + procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") + procWSACleanup = modws2_32.NewProc("WSACleanup") + procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") + procWSAGetOverlappedResult = modws2_32.NewProc("WSAGetOverlappedResult") + procWSAIoctl = modws2_32.NewProc("WSAIoctl") + procWSALookupServiceBeginW = modws2_32.NewProc("WSALookupServiceBeginW") + procWSALookupServiceEnd = modws2_32.NewProc("WSALookupServiceEnd") + procWSALookupServiceNextW = modws2_32.NewProc("WSALookupServiceNextW") + procWSARecv = modws2_32.NewProc("WSARecv") + procWSARecvFrom = modws2_32.NewProc("WSARecvFrom") + procWSASend = modws2_32.NewProc("WSASend") + procWSASendTo = modws2_32.NewProc("WSASendTo") + procWSASocketW = modws2_32.NewProc("WSASocketW") + procWSAStartup = modws2_32.NewProc("WSAStartup") + procbind = modws2_32.NewProc("bind") + procclosesocket = modws2_32.NewProc("closesocket") + procconnect = modws2_32.NewProc("connect") + procgethostbyname = modws2_32.NewProc("gethostbyname") + procgetpeername = modws2_32.NewProc("getpeername") + procgetprotobyname = modws2_32.NewProc("getprotobyname") + procgetservbyname = modws2_32.NewProc("getservbyname") + procgetsockname = modws2_32.NewProc("getsockname") + procgetsockopt = modws2_32.NewProc("getsockopt") + proclisten = modws2_32.NewProc("listen") + procntohs = modws2_32.NewProc("ntohs") + procrecvfrom = modws2_32.NewProc("recvfrom") + procsendto = modws2_32.NewProc("sendto") + procsetsockopt = modws2_32.NewProc("setsockopt") + procshutdown = modws2_32.NewProc("shutdown") + procsocket = modws2_32.NewProc("socket") + procWTSEnumerateSessionsW = modwtsapi32.NewProc("WTSEnumerateSessionsW") + procWTSFreeMemory = modwtsapi32.NewProc("WTSFreeMemory") + procWTSQueryUserToken = modwtsapi32.NewProc("WTSQueryUserToken") +) + +func cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) { + r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_Status.Addr(), 4, uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags), 0, 0) + ret = CONFIGRET(r0) + return +} + +func cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) { + r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_ListW.Addr(), 5, uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags), 0) + ret = CONFIGRET(r0) + return +} + +func cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) { + r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_List_SizeW.Addr(), 4, uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags), 0, 0) + ret = CONFIGRET(r0) + return +} + +func cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) { + r0, _, _ := syscall.Syscall(procCM_MapCrToWin32Err.Addr(), 2, uintptr(configRet), uintptr(defaultWin32Error), 0) + ret = Errno(r0) + return +} + +func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) { + var _p0 uint32 + if resetToDefault { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procAdjustTokenGroups.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) { + var _p0 uint32 + if disableAllPrivileges { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) { + r1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) { + r0, _, _ := syscall.Syscall9(procBuildSecurityDescriptorW.Addr(), 9, uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor))) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) { + r1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) { + r1, _, e1 := syscall.Syscall12(procChangeServiceConfigW.Addr(), 11, uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) { + r1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CloseServiceHandle(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) { + r1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) { + r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(str) + if err != nil { + return + } + return _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size) +} + +func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { + r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) { + r1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) { + var _p0 uint32 + if inheritHandles { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall12(procCreateProcessAsUserW.Addr(), 11, uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall15(procCreateServiceW.Addr(), 13, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), 0, 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procCreateWellKnownSid.Addr(), 4, uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { + r1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DeleteService(service Handle) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DeregisterEventSource(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) { + r1, _, e1 := syscall.Syscall6(procDuplicateTokenEx.Addr(), 6, uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procEnumDependentServicesW.Addr(), 6, uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) { + r1, _, e1 := syscall.Syscall12(procEnumServicesStatusExW.Addr(), 10, uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) { + r0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0) + isEqual = r0 != 0 + return +} + +func FreeSid(sid *SID) (err error) { + r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + if r1 != 0 { + err = errnoErr(e1) + } + return +} + +func GetLengthSid(sid *SID) (len uint32) { + r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + len = uint32(r0) + return +} + +func getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { + var _p0 *uint16 + _p0, ret = syscall.UTF16PtrFromString(objectName) + if ret != nil { + return + } + return _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd) +} + +func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { + r0, _, _ := syscall.Syscall9(procGetNamedSecurityInfoW.Addr(), 8, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) { + var _p0 uint32 + if *daclPresent { + _p0 = 1 + } + var _p1 uint32 + if *daclDefaulted { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) + *daclPresent = _p0 != 0 + *daclDefaulted = _p1 != 0 + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) { + var _p0 uint32 + if *groupDefaulted { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0))) + *groupDefaulted = _p0 != 0 + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) { + r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) + len = uint32(r0) + return +} + +func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) { + var _p0 uint32 + if *ownerDefaulted { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0))) + *ownerDefaulted = _p0 != 0 + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) { + r0, _, _ := syscall.Syscall(procGetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) { + var _p0 uint32 + if *saclPresent { + _p0 = 1 + } + var _p1 uint32 + if *saclDefaulted { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) + *saclPresent = _p0 != 0 + *saclDefaulted = _p1 != 0 + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { + r0, _, _ := syscall.Syscall9(procGetSecurityInfo.Addr(), 8, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) { + r0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0)) + return +} + +func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) { + r0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0) + subAuthority = (*uint32)(unsafe.Pointer(r0)) + return +} + +func getSidSubAuthorityCount(sid *SID) (count *uint8) { + r0, _, _ := syscall.Syscall(procGetSidSubAuthorityCount.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + count = (*uint8)(unsafe.Pointer(r0)) + return +} + +func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ImpersonateSelf(impersonationlevel uint32) (err error) { + r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) { + r1, _, e1 := syscall.Syscall(procInitializeSecurityDescriptor.Addr(), 2, uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) { + var _p0 uint32 + if forceAppsClosed { + _p0 = 1 + } + var _p1 uint32 + if rebootAfterShutdown { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procInitiateSystemShutdownExW.Addr(), 6, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func isTokenRestricted(tokenHandle Token) (ret bool, err error) { + r0, _, e1 := syscall.Syscall(procIsTokenRestricted.Addr(), 1, uintptr(tokenHandle), 0, 0) + ret = r0 != 0 + if !ret { + err = errnoErr(e1) + } + return +} + +func isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) { + r0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) + isValid = r0 != 0 + return +} + +func isValidSid(sid *SID) (isValid bool) { + r0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + isValid = r0 != 0 + return +} + +func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) { + r0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0) + isWellKnown = r0 != 0 + return +} + +func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) { + r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall12(procMakeAbsoluteSD.Addr(), 11, uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procMakeSelfRelativeSD.Addr(), 3, uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) { + r0, _, _ := syscall.Syscall(procNotifyServiceStatusChangeW.Addr(), 3, uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier))) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func OpenProcessToken(process Handle, access uint32, token *Token) (err error) { + r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procOpenSCManagerW.Addr(), 3, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procOpenServiceW.Addr(), 3, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) { + var _p0 uint32 + if openAsSelf { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) { + err = procQueryServiceDynamicInformation.Find() + if err != nil { + return + } + r1, _, e1 := syscall.Syscall(procQueryServiceDynamicInformation.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceLockStatusW.Addr(), 4, uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { + r1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceStatusEx.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func RegCloseKey(key Handle) (regerrno error) { + r0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) { + r0, _, _ := syscall.Syscall9(procRegEnumKeyExW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)), 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) { + var _p0 uint32 + if watchSubtree { + _p0 = 1 + } + var _p1 uint32 + if asynchronous { + _p1 = 1 + } + r0, _, _ := syscall.Syscall6(procRegNotifyChangeKeyValue.Addr(), 5, uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1), 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) { + r0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) { + r0, _, _ := syscall.Syscall12(procRegQueryInfoKeyW.Addr(), 12, uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { + r0, _, _ := syscall.Syscall6(procRegQueryValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procRegisterEventSourceW.Addr(), 2, uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)), 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procRegisterServiceCtrlHandlerExW.Addr(), 3, uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procReportEventW.Addr(), 9, uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func RevertToSelf() (err error) { + r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) { + r0, _, _ := syscall.Syscall6(procSetEntriesInAclW.Addr(), 4, uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) { + r1, _, e1 := syscall.Syscall(procSetKernelObjectSecurity.Addr(), 3, uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { + var _p0 *uint16 + _p0, ret = syscall.UTF16PtrFromString(objectName) + if ret != nil { + return + } + return _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl) +} + +func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { + r0, _, _ := syscall.Syscall9(procSetNamedSecurityInfoW.Addr(), 7, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) { + r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) { + var _p0 uint32 + if daclPresent { + _p0 = 1 + } + var _p1 uint32 + if daclDefaulted { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) { + var _p0 uint32 + if groupDefaulted { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) { + var _p0 uint32 + if ownerDefaulted { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) { + syscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) + return +} + +func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) { + var _p0 uint32 + if saclPresent { + _p0 = 1 + } + var _p1 uint32 + if saclDefaulted { + _p1 = 1 + } + r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { + r0, _, _ := syscall.Syscall9(procSetSecurityInfo.Addr(), 7, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) { + r1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetThreadToken(thread *Handle, token Token) (err error) { + r1, _, e1 := syscall.Syscall(procSetThreadToken.Addr(), 2, uintptr(unsafe.Pointer(thread)), uintptr(token), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { + r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) { + r1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) { + r1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CertCloseStore(store Handle, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) { + r0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) + context = (*CertContext)(unsafe.Pointer(r0)) + if context == nil { + err = errnoErr(e1) + } + return +} + +func CertDeleteCertificateFromStore(certContext *CertContext) (err error) { + r1, _, e1 := syscall.Syscall(procCertDeleteCertificateFromStore.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) { + r0, _, _ := syscall.Syscall(procCertDuplicateCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) + dupContext = (*CertContext)(unsafe.Pointer(r0)) + return +} + +func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) { + r0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0) + context = (*CertContext)(unsafe.Pointer(r0)) + if context == nil { + err = errnoErr(e1) + } + return +} + +func CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) { + r0, _, e1 := syscall.Syscall6(procCertFindCertificateInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext))) + cert = (*CertContext)(unsafe.Pointer(r0)) + if cert == nil { + err = errnoErr(e1) + } + return +} + +func CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) { + r0, _, e1 := syscall.Syscall6(procCertFindChainInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext))) + certchain = (*CertChainContext)(unsafe.Pointer(r0)) + if certchain == nil { + err = errnoErr(e1) + } + return +} + +func CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) { + r0, _, _ := syscall.Syscall(procCertFindExtension.Addr(), 3, uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions))) + ret = (*CertExtension)(unsafe.Pointer(r0)) + return +} + +func CertFreeCertificateChain(ctx *CertChainContext) { + syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) + return +} + +func CertFreeCertificateContext(ctx *CertContext) (err error) { + r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) { + r1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) { + r0, _, _ := syscall.Syscall6(procCertGetNameStringW.Addr(), 6, uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size)) + chars = uint32(r0) + return +} + +func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { + r0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0) + store = Handle(r0) + if store == 0 { + err = errnoErr(e1) + } + return +} + +func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) { + r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) { + var _p0 uint32 + if *callerFreeProvOrNCryptKey { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procCryptAcquireCertificatePrivateKey.Addr(), 6, uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0))) + *callerFreeProvOrNCryptKey = _p0 != 0 + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procCryptDecodeObject.Addr(), 7, uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { + r1, _, e1 := syscall.Syscall9(procCryptProtectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) { + r1, _, e1 := syscall.Syscall12(procCryptQueryObject.Addr(), 11, uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { + r1, _, e1 := syscall.Syscall9(procCryptUnprotectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) { + r0, _, e1 := syscall.Syscall(procPFXImportCertStore.Addr(), 3, uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags)) + store = Handle(r0) + if store == 0 { + err = errnoErr(e1) + } + return +} + +func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) { + r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0) + same = r0 != 0 + return +} + +func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { + var _p0 *uint16 + _p0, status = syscall.UTF16PtrFromString(name) + if status != nil { + return + } + return _DnsQuery(_p0, qtype, options, extra, qrs, pr) +} + +func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { + r0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) + if r0 != 0 { + status = syscall.Errno(r0) + } + return +} + +func DnsRecordListFree(rl *DNSRecord, freetype uint32) { + syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) + return +} + +func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { + r0, _, _ := syscall.Syscall6(procDwmGetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { + r0, _, _ := syscall.Syscall6(procDwmSetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { + r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { + r0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) { + r0, _, _ := syscall.Syscall(procGetBestInterfaceEx.Addr(), 2, uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func GetIfEntry(pIfRow *MibIfRow) (errcode error) { + r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func AssignProcessToJobObject(job Handle, process Handle) (err error) { + r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CancelIo(s Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CancelIoEx(s Handle, o *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CloseHandle(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { + r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) + } + return +} + +func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) + } + return +} + +func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) + } + return +} + +func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) + if r1&0xff == 0 { + err = errnoErr(e1) + } + return +} + +func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procCreateJobObjectW.Addr(), 2, uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)), 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateMutexExW.Addr(), 4, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) + } + return +} + +func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) { + var _p0 uint32 + if initialOwner { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 || e1 == ERROR_ALREADY_EXISTS { + err = errnoErr(e1) + } + return +} + +func CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) { + var _p0 uint32 + if inheritHandles { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) + if r1&0xff == 0 { + err = errnoErr(e1) + } + return +} + +func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DeleteFile(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) { + syscall.Syscall(procDeleteProcThreadAttributeList.Addr(), 1, uintptr(unsafe.Pointer(attrlist)), 0, 0) + return +} + +func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) { + var _p0 uint32 + if bInheritHandle { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ExitProcess(exitcode uint32) { + syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) + return +} + +func ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func FindClose(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FindCloseChangeNotification(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindCloseChangeNotification.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(path) + if err != nil { + return + } + return _FindFirstChangeNotification(_p0, watchSubtree, notifyFilter) +} + +func _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) { + var _p1 uint32 + if watchSubtree { + _p1 = 1 + } + r0, _, e1 := syscall.Syscall(procFindFirstChangeNotificationW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func FindNextChangeNotification(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextChangeNotification.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func findNextFile1(handle Handle, data *win32finddata1) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindResourceW.Addr(), 3, uintptr(module), uintptr(name), uintptr(resType)) + resInfo = Handle(r0) + if resInfo == 0 { + err = errnoErr(e1) + } + return +} + +func FindVolumeClose(findVolume Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FlushFileBuffers(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FlushViewOfFile(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) { + var _p0 *uint16 + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func FreeEnvironmentStrings(envs *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func FreeLibrary(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetACP() (acp uint32) { + r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) + acp = uint32(r0) + return +} + +func GetActiveProcessorCount(groupNumber uint16) (ret uint32) { + r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) + ret = uint32(r0) + return +} + +func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { + r1, _, e1 := syscall.Syscall(procGetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetCommandLine() (cmd *uint16) { + r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) + cmd = (*uint16)(unsafe.Pointer(r0)) + return +} + +func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetComputerName(buf *uint16, n *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetConsoleMode(console Handle, mode *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) { + r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetCurrentProcessId() (pid uint32) { + r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) + pid = uint32(r0) + return +} + +func GetCurrentThreadId() (id uint32) { + r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) + id = uint32(r0) + return +} + +func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) { + r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetDriveType(rootPathName *uint16) (driveType uint32) { + r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0) + driveType = uint32(r0) + return +} + +func GetEnvironmentStrings() (envs *uint16, err error) { + r0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0) + envs = (*uint16)(unsafe.Pointer(r0)) + if envs == nil { + err = errnoErr(e1) + } + return +} + +func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { + r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetFileAttributes(name *uint16) (attrs uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + attrs = uint32(r0) + if attrs == INVALID_FILE_ATTRIBUTES { + err = errnoErr(e1) + } + return +} + +func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) { + r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetFileType(filehandle Handle) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall6(procGetFinalPathNameByHandleW.Addr(), 4, uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetLargePageMinimum() (size uintptr) { + r0, _, _ := syscall.Syscall(procGetLargePageMinimum.Addr(), 0, 0, 0, 0) + size = uintptr(r0) + return +} + +func GetLastError() (lasterr error) { + r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) + if r0 != 0 { + lasterr = syscall.Errno(r0) + } + return +} + +func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetLogicalDrives() (drivesBitMask uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0) + drivesBitMask = uint32(r0) + if drivesBitMask == 0 { + err = errnoErr(e1) + } + return +} + +func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetMaximumProcessorCount(groupNumber uint16) (ret uint32) { + r0, _, _ := syscall.Syscall(procGetMaximumProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) + ret = uint32(r0) + return +} + +func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) { + r1, _, e1 := syscall.Syscall(procGetModuleHandleExW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetNamedPipeInfo.Addr(), 5, uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) { + var _p0 uint32 + if wait { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetPriorityClass(process Handle) (ret uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetPriorityClass.Addr(), 1, uintptr(process), 0, 0) + ret = uint32(r0) + if ret == 0 { + err = errnoErr(e1) + } + return +} + +func GetProcAddress(module Handle, procname string) (proc uintptr, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(procname) + if err != nil { + return + } + return _GetProcAddress(module, _p0) +} + +func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { + r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0) + proc = uintptr(r0) + if proc == 0 { + err = errnoErr(e1) + } + return +} + +func GetProcessId(process Handle) (id uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0) + id = uint32(r0) + if id == 0 { + err = errnoErr(e1) + } + return +} + +func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetProcessPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetProcessShutdownParameters.Addr(), 2, uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { + r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) { + syscall.Syscall6(procGetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)), 0, 0) + return +} + +func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func getStartupInfo(startupInfo *StartupInfo) { + syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) + return +} + +func GetStdHandle(stdhandle uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + len = uint32(r0) + if len == 0 { + err = errnoErr(e1) + } + return +} + +func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetSystemPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetSystemTimeAsFileTime(time *Filetime) { + syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) + return +} + +func GetSystemTimePreciseAsFileTime(time *Filetime) { + syscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) + return +} + +func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetSystemWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + len = uint32(r0) + if len == 0 { + err = errnoErr(e1) + } + return +} + +func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetThreadPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getTickCount64() (ms uint64) { + r0, _, _ := syscall.Syscall(procGetTickCount64.Addr(), 0, 0, 0, 0) + ms = uint64(r0) + return +} + +func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0) + rc = uint32(r0) + if rc == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetUserPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetVersion() (ver uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0) + ver = uint32(r0) + if ver == 0 { + err = errnoErr(e1) + } + return +} + +func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetVolumeInformationByHandleW.Addr(), 8, uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + len = uint32(r0) + if len == 0 { + err = errnoErr(e1) + } + return +} + +func initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procInitializeProcThreadAttributeList.Addr(), 4, uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func IsWow64Process(handle Handle, isWow64 *bool) (err error) { + var _p0 uint32 + if *isWow64 { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(&_p0)), 0) + *isWow64 = _p0 != 0 + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) { + err = procIsWow64Process2.Find() + if err != nil { + return + } + r1, _, e1 := syscall.Syscall(procIsWow64Process2.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(libname) + if err != nil { + return + } + return _LoadLibraryEx(_p0, zero, flags) +} + +func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadLibraryExW.Addr(), 3, uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func LoadLibrary(libname string) (handle Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(libname) + if err != nil { + return + } + return _LoadLibrary(_p0) +} + +func _LoadLibrary(libname *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func LoadResource(module Handle, resInfo Handle) (resData Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + resData = Handle(r0) + if resData == 0 { + err = errnoErr(e1) + } + return +} + +func LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) { + r0, _, e1 := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(flags), uintptr(length), 0) + ptr = uintptr(r0) + if ptr == 0 { + err = errnoErr(e1) + } + return +} + +func LocalFree(hmem Handle) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0) + handle = Handle(r0) + if handle != 0 { + err = errnoErr(e1) + } + return +} + +func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func LockResource(resData Handle) (addr uintptr, err error) { + r0, _, e1 := syscall.Syscall(procLockResource.Addr(), 1, uintptr(resData), 0, 0) + addr = uintptr(r0) + if addr == 0 { + err = errnoErr(e1) + } + return +} + +func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) { + r0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0) + addr = uintptr(r0) + if addr == 0 { + err = errnoErr(e1) + } + return +} + +func Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procModule32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procModule32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func MoveFile(from *uint16, to *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) { + r0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) + nwrite = int32(r0) + if nwrite == 0 { + err = errnoErr(e1) + } + return +} + +func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenMutexW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) + handle = Handle(r0) + if handle == 0 { + err = errnoErr(e1) + } + return +} + +func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procProcessIdToSessionId.Addr(), 2, uintptr(pid), uintptr(unsafe.Pointer(sessionid)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func PulseEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) + n = uint32(r0) + if n == 0 { + err = errnoErr(e1) + } + return +} + +func QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryFullProcessImageNameW.Addr(), 4, uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) { + r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { + var _p0 uint32 + if watchSubTree { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procReadProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ReleaseMutex(mutex Handle) (err error) { + r1, _, e1 := syscall.Syscall(procReleaseMutex.Addr(), 1, uintptr(mutex), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func RemoveDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ResetEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ResumeThread(thread Handle) (ret uint32, err error) { + r0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0) + ret = uint32(r0) + if ret == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { + r1, _, e1 := syscall.Syscall(procSetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setConsoleCursorPosition(console Handle, position uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleCursorPosition.Addr(), 2, uintptr(console), uintptr(position), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetConsoleMode(console Handle, mode uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetCurrentDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetDefaultDllDirectories(directoryFlags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetDefaultDllDirectories.Addr(), 1, uintptr(directoryFlags), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetDllDirectory(path string) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(path) + if err != nil { + return + } + return _SetDllDirectory(_p0) +} + +func _SetDllDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetDllDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetEndOfFile(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetErrorMode(mode uint32) (ret uint32) { + r0, _, _ := syscall.Syscall(procSetErrorMode.Addr(), 1, uintptr(mode), 0, 0) + ret = uint32(r0) + return +} + +func SetEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetFileAttributes(name *uint16, attrs uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetFileInformationByHandle.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { + r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0) + newlowoffset = uint32(r0) + if newlowoffset == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { + r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) { + r0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0) + ret = int(r0) + if ret == 0 { + err = errnoErr(e1) + } + return +} + +func SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetNamedPipeHandleState.Addr(), 4, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetPriorityClass(process Handle, priorityClass uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetPriorityClass.Addr(), 2, uintptr(process), uintptr(priorityClass), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetProcessPriorityBoost(process Handle, disable bool) (err error) { + var _p0 uint32 + if disable { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procSetProcessPriorityBoost.Addr(), 2, uintptr(process), uintptr(_p0), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetProcessShutdownParameters(level uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetProcessShutdownParameters.Addr(), 2, uintptr(level), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetStdHandle(stdhandle uint32, handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SizeofResource(module Handle, resInfo Handle) (size uint32, err error) { + r0, _, e1 := syscall.Syscall(procSizeofResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + size = uint32(r0) + if size == 0 { + err = errnoErr(e1) + } + return +} + +func SleepEx(milliseconds uint32, alertable bool) (ret uint32) { + var _p0 uint32 + if alertable { + _p0 = 1 + } + r0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(milliseconds), uintptr(_p0), 0) + ret = uint32(r0) + return +} + +func TerminateJobObject(job Handle, exitCode uint32) (err error) { + r1, _, e1 := syscall.Syscall(procTerminateJobObject.Addr(), 2, uintptr(job), uintptr(exitCode), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func TerminateProcess(handle Handle, exitcode uint32) (err error) { + r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func UnmapViewOfFile(addr uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) { + r1, _, e1 := syscall.Syscall9(procUpdateProcThreadAttribute.Addr(), 7, uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) { + r0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0) + value = uintptr(r0) + if value == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualLock(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procVirtualProtectEx.Addr(), 5, uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualQuery.Addr(), 3, uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procVirtualQueryEx.Addr(), 4, uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VirtualUnlock(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func WTSGetActiveConsoleSessionId() (sessionID uint32) { + r0, _, _ := syscall.Syscall(procWTSGetActiveConsoleSessionId.Addr(), 0, 0, 0, 0) + sessionID = uint32(r0) + return +} + +func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) { + var _p0 uint32 + if waitAll { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0) + event = uint32(r0) + if event == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) { + r0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0) + event = uint32(r0) + if event == 0xffffffff { + err = errnoErr(e1) + } + return +} + +func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) { + r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procWriteProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) { + syscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)), 0) + return +} + +func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func NetApiBufferFree(buf *byte) (neterr error) { + r0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0) + if r0 != 0 { + neterr = syscall.Errno(r0) + } + return +} + +func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) { + r0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) + if r0 != 0 { + neterr = syscall.Errno(r0) + } + return +} + +func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { + r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) + if r0 != 0 { + neterr = syscall.Errno(r0) + } + return +} + +func NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall12(procNtCreateFile.Addr(), 11, uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength), 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) { + r0, _, _ := syscall.Syscall15(procNtCreateNamedPipeFile.Addr(), 14, uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)), 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)), 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class), 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procNtSetInformationProcess.Addr(), 4, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) { + r0, _, _ := syscall.Syscall(procNtSetSystemInformation.Addr(), 3, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen)) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) { + r0, _, _ := syscall.Syscall(procRtlAddFunctionTable.Addr(), 3, uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress)) + ret = r0 != 0 + return +} + +func RtlDefaultNpAcl(acl **ACL) (ntstatus error) { + r0, _, _ := syscall.Syscall(procRtlDefaultNpAcl.Addr(), 1, uintptr(unsafe.Pointer(acl)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) { + r0, _, _ := syscall.Syscall(procRtlDeleteFunctionTable.Addr(), 1, uintptr(unsafe.Pointer(functionTable)), 0, 0) + ret = r0 != 0 + return +} + +func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { + r0, _, _ := syscall.Syscall6(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlGetCurrentPeb() (peb *PEB) { + r0, _, _ := syscall.Syscall(procRtlGetCurrentPeb.Addr(), 0, 0, 0, 0) + peb = (*PEB)(unsafe.Pointer(r0)) + return +} + +func rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) { + syscall.Syscall(procRtlGetNtVersionNumbers.Addr(), 3, uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber))) + return +} + +func rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) { + r0, _, _ := syscall.Syscall(procRtlGetVersion.Addr(), 1, uintptr(unsafe.Pointer(info)), 0, 0) + if r0 != 0 { + ntstatus = NTStatus(r0) + } + return +} + +func RtlInitString(destinationString *NTString, sourceString *byte) { + syscall.Syscall(procRtlInitString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) + return +} + +func RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) { + syscall.Syscall(procRtlInitUnicodeString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) + return +} + +func rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) { + r0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(ntstatus), 0, 0) + ret = syscall.Errno(r0) + return +} + +func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { + r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func coCreateGuid(pguid *GUID) (ret error) { + r0, _, _ := syscall.Syscall(procCoCreateGuid.Addr(), 1, uintptr(unsafe.Pointer(pguid)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) { + r0, _, _ := syscall.Syscall6(procCoGetObject.Addr(), 4, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func CoInitializeEx(reserved uintptr, coInit uint32) (ret error) { + r0, _, _ := syscall.Syscall(procCoInitializeEx.Addr(), 2, uintptr(reserved), uintptr(coInit), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func CoTaskMemFree(address unsafe.Pointer) { + syscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0) + return +} + +func CoUninitialize() { + syscall.Syscall(procCoUninitialize.Addr(), 0, 0, 0, 0) + return +} + +func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) { + r0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) + chars = int32(r0) + return +} + +func EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procEnumProcessModules.Addr(), 4, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procEnumProcessModulesEx.Addr(), 5, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetModuleBaseNameW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetModuleFileNameExW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetModuleInformation.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) { + r1, _, e1 := syscall.Syscall(procQueryWorkingSetEx.Addr(), 3, uintptr(process), uintptr(pv), uintptr(cb)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) { + ret = procSubscribeServiceChangeNotifications.Find() + if ret != nil { + return + } + r0, _, _ := syscall.Syscall6(procSubscribeServiceChangeNotifications.Addr(), 5, uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription)), 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func UnsubscribeServiceChangeNotifications(subscription uintptr) (err error) { + err = procUnsubscribeServiceChangeNotifications.Find() + if err != nil { + return + } + syscall.Syscall(procUnsubscribeServiceChangeNotifications.Addr(), 1, uintptr(subscription), 0, 0) + return +} + +func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) + if r1&0xff == 0 { + err = errnoErr(e1) + } + return +} + +func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0) + if r1&0xff == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiBuildDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiCallClassInstaller.Addr(), 3, uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiCancelDriverInfoSearch.Addr(), 1, uintptr(deviceInfoSet), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiClassGuidsFromNameExW.Addr(), 6, uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiClassNameFromGuidExW.Addr(), 6, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { + r0, _, e1 := syscall.Syscall6(procSetupDiCreateDeviceInfoListExW.Addr(), 4, uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) + handle = DevInfo(r0) + if handle == DevInfo(InvalidHandle) { + err = errnoErr(e1) + } + return +} + +func setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall9(procSetupDiCreateDeviceInfoW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiDestroyDeviceInfoList.Addr(), 1, uintptr(deviceInfoSet), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiDestroyDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiEnumDeviceInfo.Addr(), 3, uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiEnumDriverInfoW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { + r0, _, e1 := syscall.Syscall9(procSetupDiGetClassDevsExW.Addr(), 7, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) + handle = DevInfo(r0) + if handle == DevInfo(InvalidHandle) { + err = errnoErr(e1) + } + return +} + +func SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiGetClassInstallParamsW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInfoListDetailW.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiGetDeviceInstanceIdW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procSetupDiGetDevicePropertyW.Addr(), 8, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procSetupDiGetDeviceRegistryPropertyW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiGetDriverInfoDetailW.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) { + r0, _, e1 := syscall.Syscall6(procSetupDiOpenDevRegKey.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired)) + key = Handle(r0) + if key == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiSetClassInstallParamsW.Addr(), 4, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiSetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetupDiSetDeviceRegistryPropertyW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { + r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procSetupUninstallOEMInfW.Addr(), 3, uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { + r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) + argv = (*[8192]*[8192]uint16)(unsafe.Pointer(r0)) + if argv == nil { + err = errnoErr(e1) + } + return +} + +func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) { + r0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) { + r1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) + if r1 <= 32 { + err = errnoErr(e1) + } + return +} + +func EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) { + syscall.Syscall(procEnumChildWindows.Addr(), 3, uintptr(hwnd), uintptr(enumFunc), uintptr(param)) + return +} + +func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) { + r1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, uintptr(enumFunc), uintptr(param), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ExitWindowsEx(flags uint32, reason uint32) (err error) { + r1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) { + r0, _, e1 := syscall.Syscall(procGetClassNameW.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount)) + copied = int32(r0) + if copied == 0 { + err = errnoErr(e1) + } + return +} + +func GetDesktopWindow() (hwnd HWND) { + r0, _, _ := syscall.Syscall(procGetDesktopWindow.Addr(), 0, 0, 0, 0) + hwnd = HWND(r0) + return +} + +func GetForegroundWindow() (hwnd HWND) { + r0, _, _ := syscall.Syscall(procGetForegroundWindow.Addr(), 0, 0, 0, 0) + hwnd = HWND(r0) + return +} + +func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { + r1, _, e1 := syscall.Syscall(procGetGUIThreadInfo.Addr(), 2, uintptr(thread), uintptr(unsafe.Pointer(info)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetShellWindow() (shellWindow HWND) { + r0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0) + shellWindow = HWND(r0) + return +} + +func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetWindowThreadProcessId.Addr(), 2, uintptr(hwnd), uintptr(unsafe.Pointer(pid)), 0) + tid = uint32(r0) + if tid == 0 { + err = errnoErr(e1) + } + return +} + +func IsWindow(hwnd HWND) (isWindow bool) { + r0, _, _ := syscall.Syscall(procIsWindow.Addr(), 1, uintptr(hwnd), 0, 0) + isWindow = r0 != 0 + return +} + +func IsWindowUnicode(hwnd HWND) (isUnicode bool) { + r0, _, _ := syscall.Syscall(procIsWindowUnicode.Addr(), 1, uintptr(hwnd), 0, 0) + isUnicode = r0 != 0 + return +} + +func IsWindowVisible(hwnd HWND) (isVisible bool) { + r0, _, _ := syscall.Syscall(procIsWindowVisible.Addr(), 1, uintptr(hwnd), 0, 0) + isVisible = r0 != 0 + return +} + +func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) { + r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0) + ret = int32(r0) + if ret == 0 { + err = errnoErr(e1) + } + return +} + +func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) { + var _p0 uint32 + if inheritExisting { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall(procCreateEnvironmentBlock.Addr(), 3, uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func DestroyEnvironmentBlock(block *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDestroyEnvironmentBlock.Addr(), 1, uintptr(unsafe.Pointer(block)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(filename) + if err != nil { + return + } + return _GetFileVersionInfoSize(_p0, zeroHandle) +} + +func _GetFileVersionInfoSize(filename *uint16, zeroHandle *Handle) (bufSize uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetFileVersionInfoSizeW.Addr(), 2, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle)), 0) + bufSize = uint32(r0) + if bufSize == 0 { + err = errnoErr(e1) + } + return +} + +func GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(filename) + if err != nil { + return + } + return _GetFileVersionInfo(_p0, handle, bufSize, buffer) +} + +func _GetFileVersionInfo(filename *uint16, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { + r1, _, e1 := syscall.Syscall6(procGetFileVersionInfoW.Addr(), 4, uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(subBlock) + if err != nil { + return + } + return _VerQueryValue(block, _p0, pointerToBufferPointer, bufSize) +} + +func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procVerQueryValueW.Addr(), 4, uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func TimeBeginPeriod(period uint32) (err error) { + r1, _, e1 := syscall.Syscall(proctimeBeginPeriod.Addr(), 1, uintptr(period), 0, 0) + if r1 != 0 { + err = errnoErr(e1) + } + return +} + +func TimeEndPeriod(period uint32) (err error) { + r1, _, e1 := syscall.Syscall(proctimeEndPeriod.Addr(), 1, uintptr(period), 0, 0) + if r1 != 0 { + err = errnoErr(e1) + } + return +} + +func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) { + r0, _, _ := syscall.Syscall(procWinVerifyTrustEx.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data))) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func FreeAddrInfoW(addrinfo *AddrinfoW) { + syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0) + return +} + +func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) { + r0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0) + if r0 != 0 { + sockerr = syscall.Errno(r0) + } + return +} + +func WSACleanup() (err error) { + r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { + r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) + n = int32(r0) + if n == -1 { + err = errnoErr(e1) + } + return +} + +func WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) { + var _p0 uint32 + if wait { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procWSAGetOverlappedResult.Addr(), 5, uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { + r1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) { + r1, _, e1 := syscall.Syscall(procWSALookupServiceBeginW.Addr(), 3, uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSALookupServiceEnd(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procWSALookupServiceEnd.Addr(), 1, uintptr(handle), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) { + r1, _, e1 := syscall.Syscall6(procWSALookupServiceNextW.Addr(), 4, uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet)), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procWSASocketW.Addr(), 6, uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { + r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) + if r0 != 0 { + sockerr = syscall.Errno(r0) + } + return +} + +func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { + r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func Closesocket(s Handle) (err error) { + r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { + r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func GetHostByName(name string) (h *Hostent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return + } + return _GetHostByName(_p0) +} + +func _GetHostByName(name *byte) (h *Hostent, err error) { + r0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + h = (*Hostent)(unsafe.Pointer(r0)) + if h == nil { + err = errnoErr(e1) + } + return +} + +func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { + r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func GetProtoByName(name string) (p *Protoent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return + } + return _GetProtoByName(_p0) +} + +func _GetProtoByName(name *byte) (p *Protoent, err error) { + r0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + p = (*Protoent)(unsafe.Pointer(r0)) + if p == nil { + err = errnoErr(e1) + } + return +} + +func GetServByName(name string, proto string) (s *Servent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return + } + var _p1 *byte + _p1, err = syscall.BytePtrFromString(proto) + if err != nil { + return + } + return _GetServByName(_p0, _p1) +} + +func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { + r0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0) + s = (*Servent)(unsafe.Pointer(r0)) + if s == nil { + err = errnoErr(e1) + } + return +} + +func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { + r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) { + r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func listen(s Handle, backlog int32) (err error) { + r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func Ntohs(netshort uint16) (u uint16) { + r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0) + u = uint16(r0) + return +} + +func recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := syscall.Syscall6(procrecvfrom.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int32(r0) + if n == -1 { + err = errnoErr(e1) + } + return +} + +func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r1, _, e1 := syscall.Syscall6(procsendto.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen)) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { + r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func shutdown(s Handle, how int32) (err error) { + r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0) + if r1 == socket_error { + err = errnoErr(e1) + } + return +} + +func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol)) + handle = Handle(r0) + if handle == InvalidHandle { + err = errnoErr(e1) + } + return +} + +func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procWTSEnumerateSessionsW.Addr(), 5, uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func WTSFreeMemory(ptr uintptr) { + syscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0) + return +} + +func WTSQueryUserToken(session uint32, token *Token) (err error) { + r1, _, e1 := syscall.Syscall(procWTSQueryUserToken.Addr(), 2, uintptr(session), uintptr(unsafe.Pointer(token)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go index f248effae17b..ffadb7bebdbe 100644 --- a/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go +++ b/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go @@ -1,7 +1,7 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. -//go:build go1.16 -// +build go1.16 +//go:build go1.16 && !go1.21 +// +build go1.16,!go1.21 package bidi diff --git a/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go new file mode 100644 index 000000000000..92cce5802c6a --- /dev/null +++ b/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go @@ -0,0 +1,2043 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.21 +// +build go1.21 + +package bidi + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "15.0.0" + +// xorMasks contains masks to be xor-ed with brackets to get the reverse +// version. +var xorMasks = []int32{ // 8 elements + 0, 1, 6, 7, 3, 15, 29, 63, +} // Size: 56 bytes + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return bidiValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *bidiTrie) lookupUnsafe(s []byte) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return bidiValues[c0] + } + i := bidiIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *bidiTrie) lookupString(s string) (v uint8, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return bidiValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := bidiIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = bidiIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = bidiIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *bidiTrie) lookupStringUnsafe(s string) uint8 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return bidiValues[c0] + } + i := bidiIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = bidiIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// bidiTrie. Total size: 19904 bytes (19.44 KiB). Checksum: b1f201ed2debb6c8. +type bidiTrie struct{} + +func newBidiTrie(i int) *bidiTrie { + return &bidiTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 { + switch { + default: + return uint8(bidiValues[n<<6+uint32(b)]) + } +} + +// bidiValues: 259 blocks, 16576 entries, 16576 bytes +// The third block is the zero block. +var bidiValues = [16576]uint8{ + // Block 0x0, offset 0x0 + 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b, + 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008, + 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b, + 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b, + 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007, + 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004, + 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a, + 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006, + 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002, + 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a, + 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a, + // Block 0x1, offset 0x40 + 0x40: 0x000a, + 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a, + 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a, + 0x7b: 0x005a, + 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007, + 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b, + 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b, + 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b, + 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b, + 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004, + 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a, + 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a, + 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a, + 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a, + 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a, + // Block 0x4, offset 0x100 + 0x117: 0x000a, + 0x137: 0x000a, + // Block 0x5, offset 0x140 + 0x179: 0x000a, 0x17a: 0x000a, + // Block 0x6, offset 0x180 + 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a, + 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a, + 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a, + 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a, + 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a, + 0x19e: 0x000a, 0x19f: 0x000a, + 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a, + 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a, + 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a, + 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a, + 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c, + 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c, + 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c, + 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c, + 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c, + 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c, + 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c, + 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c, + 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c, + 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c, + 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c, + // Block 0x8, offset 0x200 + 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c, + 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c, + 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c, + 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c, + 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c, + 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c, + 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c, + 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c, + 0x234: 0x000a, 0x235: 0x000a, + 0x23e: 0x000a, + // Block 0x9, offset 0x240 + 0x244: 0x000a, 0x245: 0x000a, + 0x247: 0x000a, + // Block 0xa, offset 0x280 + 0x2b6: 0x000a, + // Block 0xb, offset 0x2c0 + 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c, + 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c, + // Block 0xc, offset 0x300 + 0x30a: 0x000a, + 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c, + 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c, + 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c, + 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c, + 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c, + 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c, + 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c, + 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c, + 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c, + // Block 0xd, offset 0x340 + 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c, + 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001, + 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001, + 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001, + 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001, + 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001, + 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001, + 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001, + 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001, + 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001, + 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001, + // Block 0xe, offset 0x380 + 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005, + 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d, + 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c, + 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c, + 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d, + 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d, + 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d, + 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d, + 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d, + 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d, + 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d, + 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c, + 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c, + 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c, + 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c, + 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005, + 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005, + 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d, + 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d, + 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d, + 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d, + // Block 0x10, offset 0x400 + 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d, + 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d, + 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d, + 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d, + 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d, + 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d, + 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d, + 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d, + 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d, + 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d, + 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d, + // Block 0x11, offset 0x440 + 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d, + 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d, + 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d, + 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c, + 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005, + 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c, + 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a, + 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d, + 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002, + 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d, + 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d, + // Block 0x12, offset 0x480 + 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d, + 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d, + 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c, + 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d, + 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d, + 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d, + 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d, + 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d, + 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c, + 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c, + 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c, + 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d, + 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d, + 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d, + 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d, + 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d, + 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d, + 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d, + 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d, + 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d, + 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d, + // Block 0x14, offset 0x500 + 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d, + 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d, + 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d, + 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d, + 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d, + 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d, + 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c, + 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c, + 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d, + 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d, + 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d, + // Block 0x15, offset 0x540 + 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001, + 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001, + 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001, + 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001, + 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001, + 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001, + 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001, + 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c, + 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001, + 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001, + 0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001, + // Block 0x16, offset 0x580 + 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001, + 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001, + 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001, + 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c, + 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c, + 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c, + 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c, + 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001, + 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001, + 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001, + 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001, + 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001, + 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001, + 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001, + 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001, + 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d, + 0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d, + 0x5ea: 0x000d, 0x5eb: 0x0001, 0x5ec: 0x0001, 0x5ed: 0x0001, 0x5ee: 0x0001, 0x5ef: 0x0001, + 0x5f0: 0x000d, 0x5f1: 0x000d, 0x5f2: 0x000d, 0x5f3: 0x000d, 0x5f4: 0x000d, 0x5f5: 0x000d, + 0x5f6: 0x000d, 0x5f7: 0x000d, 0x5f8: 0x000d, 0x5f9: 0x000d, 0x5fa: 0x000d, 0x5fb: 0x000d, + 0x5fc: 0x000d, 0x5fd: 0x000d, 0x5fe: 0x000d, 0x5ff: 0x000d, + // Block 0x18, offset 0x600 + 0x600: 0x000d, 0x601: 0x000d, 0x602: 0x000d, 0x603: 0x000d, 0x604: 0x000d, 0x605: 0x000d, + 0x606: 0x000d, 0x607: 0x000d, 0x608: 0x000d, 0x609: 0x000d, 0x60a: 0x000d, 0x60b: 0x000d, + 0x60c: 0x000d, 0x60d: 0x000d, 0x60e: 0x000d, 0x60f: 0x0001, 0x610: 0x0005, 0x611: 0x0005, + 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001, + 0x618: 0x000c, 0x619: 0x000c, 0x61a: 0x000c, 0x61b: 0x000c, 0x61c: 0x000c, 0x61d: 0x000c, + 0x61e: 0x000c, 0x61f: 0x000c, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d, + 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d, + 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d, + 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d, + 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d, + 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d, + // Block 0x19, offset 0x640 + 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d, + 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000c, 0x64b: 0x000c, + 0x64c: 0x000c, 0x64d: 0x000c, 0x64e: 0x000c, 0x64f: 0x000c, 0x650: 0x000c, 0x651: 0x000c, + 0x652: 0x000c, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c, + 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c, + 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c, + 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c, + 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c, + 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c, + 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c, + 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c, + // Block 0x1a, offset 0x680 + 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c, + 0x6ba: 0x000c, + 0x6bc: 0x000c, + // Block 0x1b, offset 0x6c0 + 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c, + 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c, + 0x6cd: 0x000c, 0x6d1: 0x000c, + 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c, + 0x6e2: 0x000c, 0x6e3: 0x000c, + // Block 0x1c, offset 0x700 + 0x701: 0x000c, + 0x73c: 0x000c, + // Block 0x1d, offset 0x740 + 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c, + 0x74d: 0x000c, + 0x762: 0x000c, 0x763: 0x000c, + 0x772: 0x0004, 0x773: 0x0004, + 0x77b: 0x0004, + 0x77e: 0x000c, + // Block 0x1e, offset 0x780 + 0x781: 0x000c, 0x782: 0x000c, + 0x7bc: 0x000c, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x000c, 0x7c2: 0x000c, + 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c, + 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c, + 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c, + // Block 0x20, offset 0x800 + 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c, + 0x807: 0x000c, 0x808: 0x000c, + 0x80d: 0x000c, + 0x822: 0x000c, 0x823: 0x000c, + 0x831: 0x0004, + 0x83a: 0x000c, 0x83b: 0x000c, + 0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c, + // Block 0x21, offset 0x840 + 0x841: 0x000c, + 0x87c: 0x000c, 0x87f: 0x000c, + // Block 0x22, offset 0x880 + 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c, + 0x88d: 0x000c, + 0x895: 0x000c, 0x896: 0x000c, + 0x8a2: 0x000c, 0x8a3: 0x000c, + // Block 0x23, offset 0x8c0 + 0x8c2: 0x000c, + // Block 0x24, offset 0x900 + 0x900: 0x000c, + 0x90d: 0x000c, + 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a, + 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a, + // Block 0x25, offset 0x940 + 0x940: 0x000c, 0x944: 0x000c, + 0x97c: 0x000c, 0x97e: 0x000c, 0x97f: 0x000c, + // Block 0x26, offset 0x980 + 0x980: 0x000c, + 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c, + 0x98c: 0x000c, 0x98d: 0x000c, + 0x995: 0x000c, 0x996: 0x000c, + 0x9a2: 0x000c, 0x9a3: 0x000c, + 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a, + 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a, + // Block 0x27, offset 0x9c0 + 0x9cc: 0x000c, 0x9cd: 0x000c, + 0x9e2: 0x000c, 0x9e3: 0x000c, + // Block 0x28, offset 0xa00 + 0xa00: 0x000c, 0xa01: 0x000c, + 0xa3b: 0x000c, + 0xa3c: 0x000c, + // Block 0x29, offset 0xa40 + 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c, + 0xa4d: 0x000c, + 0xa62: 0x000c, 0xa63: 0x000c, + // Block 0x2a, offset 0xa80 + 0xa81: 0x000c, + // Block 0x2b, offset 0xac0 + 0xaca: 0x000c, + 0xad2: 0x000c, 0xad3: 0x000c, 0xad4: 0x000c, 0xad6: 0x000c, + // Block 0x2c, offset 0xb00 + 0xb31: 0x000c, 0xb34: 0x000c, 0xb35: 0x000c, + 0xb36: 0x000c, 0xb37: 0x000c, 0xb38: 0x000c, 0xb39: 0x000c, 0xb3a: 0x000c, + 0xb3f: 0x0004, + // Block 0x2d, offset 0xb40 + 0xb47: 0x000c, 0xb48: 0x000c, 0xb49: 0x000c, 0xb4a: 0x000c, 0xb4b: 0x000c, + 0xb4c: 0x000c, 0xb4d: 0x000c, 0xb4e: 0x000c, + // Block 0x2e, offset 0xb80 + 0xbb1: 0x000c, 0xbb4: 0x000c, 0xbb5: 0x000c, + 0xbb6: 0x000c, 0xbb7: 0x000c, 0xbb8: 0x000c, 0xbb9: 0x000c, 0xbba: 0x000c, 0xbbb: 0x000c, + 0xbbc: 0x000c, + // Block 0x2f, offset 0xbc0 + 0xbc8: 0x000c, 0xbc9: 0x000c, 0xbca: 0x000c, 0xbcb: 0x000c, + 0xbcc: 0x000c, 0xbcd: 0x000c, 0xbce: 0x000c, + // Block 0x30, offset 0xc00 + 0xc18: 0x000c, 0xc19: 0x000c, + 0xc35: 0x000c, + 0xc37: 0x000c, 0xc39: 0x000c, 0xc3a: 0x003a, 0xc3b: 0x002a, + 0xc3c: 0x003a, 0xc3d: 0x002a, + // Block 0x31, offset 0xc40 + 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c, + 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c, + 0xc7c: 0x000c, 0xc7d: 0x000c, 0xc7e: 0x000c, + // Block 0x32, offset 0xc80 + 0xc80: 0x000c, 0xc81: 0x000c, 0xc82: 0x000c, 0xc83: 0x000c, 0xc84: 0x000c, + 0xc86: 0x000c, 0xc87: 0x000c, + 0xc8d: 0x000c, 0xc8e: 0x000c, 0xc8f: 0x000c, 0xc90: 0x000c, 0xc91: 0x000c, + 0xc92: 0x000c, 0xc93: 0x000c, 0xc94: 0x000c, 0xc95: 0x000c, 0xc96: 0x000c, 0xc97: 0x000c, + 0xc99: 0x000c, 0xc9a: 0x000c, 0xc9b: 0x000c, 0xc9c: 0x000c, 0xc9d: 0x000c, + 0xc9e: 0x000c, 0xc9f: 0x000c, 0xca0: 0x000c, 0xca1: 0x000c, 0xca2: 0x000c, 0xca3: 0x000c, + 0xca4: 0x000c, 0xca5: 0x000c, 0xca6: 0x000c, 0xca7: 0x000c, 0xca8: 0x000c, 0xca9: 0x000c, + 0xcaa: 0x000c, 0xcab: 0x000c, 0xcac: 0x000c, 0xcad: 0x000c, 0xcae: 0x000c, 0xcaf: 0x000c, + 0xcb0: 0x000c, 0xcb1: 0x000c, 0xcb2: 0x000c, 0xcb3: 0x000c, 0xcb4: 0x000c, 0xcb5: 0x000c, + 0xcb6: 0x000c, 0xcb7: 0x000c, 0xcb8: 0x000c, 0xcb9: 0x000c, 0xcba: 0x000c, 0xcbb: 0x000c, + 0xcbc: 0x000c, + // Block 0x33, offset 0xcc0 + 0xcc6: 0x000c, + // Block 0x34, offset 0xd00 + 0xd2d: 0x000c, 0xd2e: 0x000c, 0xd2f: 0x000c, + 0xd30: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c, 0xd35: 0x000c, + 0xd36: 0x000c, 0xd37: 0x000c, 0xd39: 0x000c, 0xd3a: 0x000c, + 0xd3d: 0x000c, 0xd3e: 0x000c, + // Block 0x35, offset 0xd40 + 0xd58: 0x000c, 0xd59: 0x000c, + 0xd5e: 0x000c, 0xd5f: 0x000c, 0xd60: 0x000c, + 0xd71: 0x000c, 0xd72: 0x000c, 0xd73: 0x000c, 0xd74: 0x000c, + // Block 0x36, offset 0xd80 + 0xd82: 0x000c, 0xd85: 0x000c, + 0xd86: 0x000c, + 0xd8d: 0x000c, + 0xd9d: 0x000c, + // Block 0x37, offset 0xdc0 + 0xddd: 0x000c, + 0xdde: 0x000c, 0xddf: 0x000c, + // Block 0x38, offset 0xe00 + 0xe10: 0x000a, 0xe11: 0x000a, + 0xe12: 0x000a, 0xe13: 0x000a, 0xe14: 0x000a, 0xe15: 0x000a, 0xe16: 0x000a, 0xe17: 0x000a, + 0xe18: 0x000a, 0xe19: 0x000a, + // Block 0x39, offset 0xe40 + 0xe40: 0x000a, + // Block 0x3a, offset 0xe80 + 0xe80: 0x0009, + 0xe9b: 0x007a, 0xe9c: 0x006a, + // Block 0x3b, offset 0xec0 + 0xed2: 0x000c, 0xed3: 0x000c, 0xed4: 0x000c, + 0xef2: 0x000c, 0xef3: 0x000c, + // Block 0x3c, offset 0xf00 + 0xf12: 0x000c, 0xf13: 0x000c, + 0xf32: 0x000c, 0xf33: 0x000c, + // Block 0x3d, offset 0xf40 + 0xf74: 0x000c, 0xf75: 0x000c, + 0xf77: 0x000c, 0xf78: 0x000c, 0xf79: 0x000c, 0xf7a: 0x000c, 0xf7b: 0x000c, + 0xf7c: 0x000c, 0xf7d: 0x000c, + // Block 0x3e, offset 0xf80 + 0xf86: 0x000c, 0xf89: 0x000c, 0xf8a: 0x000c, 0xf8b: 0x000c, + 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000c, 0xf8f: 0x000c, 0xf90: 0x000c, 0xf91: 0x000c, + 0xf92: 0x000c, 0xf93: 0x000c, + 0xf9b: 0x0004, 0xf9d: 0x000c, + 0xfb0: 0x000a, 0xfb1: 0x000a, 0xfb2: 0x000a, 0xfb3: 0x000a, 0xfb4: 0x000a, 0xfb5: 0x000a, + 0xfb6: 0x000a, 0xfb7: 0x000a, 0xfb8: 0x000a, 0xfb9: 0x000a, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x000a, 0xfc1: 0x000a, 0xfc2: 0x000a, 0xfc3: 0x000a, 0xfc4: 0x000a, 0xfc5: 0x000a, + 0xfc6: 0x000a, 0xfc7: 0x000a, 0xfc8: 0x000a, 0xfc9: 0x000a, 0xfca: 0x000a, 0xfcb: 0x000c, + 0xfcc: 0x000c, 0xfcd: 0x000c, 0xfce: 0x000b, 0xfcf: 0x000c, + // Block 0x40, offset 0x1000 + 0x1005: 0x000c, + 0x1006: 0x000c, + 0x1029: 0x000c, + // Block 0x41, offset 0x1040 + 0x1060: 0x000c, 0x1061: 0x000c, 0x1062: 0x000c, + 0x1067: 0x000c, 0x1068: 0x000c, + 0x1072: 0x000c, + 0x1079: 0x000c, 0x107a: 0x000c, 0x107b: 0x000c, + // Block 0x42, offset 0x1080 + 0x1080: 0x000a, 0x1084: 0x000a, 0x1085: 0x000a, + // Block 0x43, offset 0x10c0 + 0x10de: 0x000a, 0x10df: 0x000a, 0x10e0: 0x000a, 0x10e1: 0x000a, 0x10e2: 0x000a, 0x10e3: 0x000a, + 0x10e4: 0x000a, 0x10e5: 0x000a, 0x10e6: 0x000a, 0x10e7: 0x000a, 0x10e8: 0x000a, 0x10e9: 0x000a, + 0x10ea: 0x000a, 0x10eb: 0x000a, 0x10ec: 0x000a, 0x10ed: 0x000a, 0x10ee: 0x000a, 0x10ef: 0x000a, + 0x10f0: 0x000a, 0x10f1: 0x000a, 0x10f2: 0x000a, 0x10f3: 0x000a, 0x10f4: 0x000a, 0x10f5: 0x000a, + 0x10f6: 0x000a, 0x10f7: 0x000a, 0x10f8: 0x000a, 0x10f9: 0x000a, 0x10fa: 0x000a, 0x10fb: 0x000a, + 0x10fc: 0x000a, 0x10fd: 0x000a, 0x10fe: 0x000a, 0x10ff: 0x000a, + // Block 0x44, offset 0x1100 + 0x1117: 0x000c, + 0x1118: 0x000c, 0x111b: 0x000c, + // Block 0x45, offset 0x1140 + 0x1156: 0x000c, + 0x1158: 0x000c, 0x1159: 0x000c, 0x115a: 0x000c, 0x115b: 0x000c, 0x115c: 0x000c, 0x115d: 0x000c, + 0x115e: 0x000c, 0x1160: 0x000c, 0x1162: 0x000c, + 0x1165: 0x000c, 0x1166: 0x000c, 0x1167: 0x000c, 0x1168: 0x000c, 0x1169: 0x000c, + 0x116a: 0x000c, 0x116b: 0x000c, 0x116c: 0x000c, + 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c, + 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c, + 0x117c: 0x000c, 0x117f: 0x000c, + // Block 0x46, offset 0x1180 + 0x11b0: 0x000c, 0x11b1: 0x000c, 0x11b2: 0x000c, 0x11b3: 0x000c, 0x11b4: 0x000c, 0x11b5: 0x000c, + 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c, 0x11bb: 0x000c, + 0x11bc: 0x000c, 0x11bd: 0x000c, 0x11be: 0x000c, 0x11bf: 0x000c, + // Block 0x47, offset 0x11c0 + 0x11c0: 0x000c, 0x11c1: 0x000c, 0x11c2: 0x000c, 0x11c3: 0x000c, 0x11c4: 0x000c, 0x11c5: 0x000c, + 0x11c6: 0x000c, 0x11c7: 0x000c, 0x11c8: 0x000c, 0x11c9: 0x000c, 0x11ca: 0x000c, 0x11cb: 0x000c, + 0x11cc: 0x000c, 0x11cd: 0x000c, 0x11ce: 0x000c, + // Block 0x48, offset 0x1200 + 0x1200: 0x000c, 0x1201: 0x000c, 0x1202: 0x000c, 0x1203: 0x000c, + 0x1234: 0x000c, + 0x1236: 0x000c, 0x1237: 0x000c, 0x1238: 0x000c, 0x1239: 0x000c, 0x123a: 0x000c, + 0x123c: 0x000c, + // Block 0x49, offset 0x1240 + 0x1242: 0x000c, + 0x126b: 0x000c, 0x126c: 0x000c, 0x126d: 0x000c, 0x126e: 0x000c, 0x126f: 0x000c, + 0x1270: 0x000c, 0x1271: 0x000c, 0x1272: 0x000c, 0x1273: 0x000c, + // Block 0x4a, offset 0x1280 + 0x1280: 0x000c, 0x1281: 0x000c, + 0x12a2: 0x000c, 0x12a3: 0x000c, + 0x12a4: 0x000c, 0x12a5: 0x000c, 0x12a8: 0x000c, 0x12a9: 0x000c, + 0x12ab: 0x000c, 0x12ac: 0x000c, 0x12ad: 0x000c, + // Block 0x4b, offset 0x12c0 + 0x12e6: 0x000c, 0x12e8: 0x000c, 0x12e9: 0x000c, + 0x12ed: 0x000c, 0x12ef: 0x000c, + 0x12f0: 0x000c, 0x12f1: 0x000c, + // Block 0x4c, offset 0x1300 + 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c, + 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, + 0x1336: 0x000c, 0x1337: 0x000c, + // Block 0x4d, offset 0x1340 + 0x1350: 0x000c, 0x1351: 0x000c, + 0x1352: 0x000c, 0x1354: 0x000c, 0x1355: 0x000c, 0x1356: 0x000c, 0x1357: 0x000c, + 0x1358: 0x000c, 0x1359: 0x000c, 0x135a: 0x000c, 0x135b: 0x000c, 0x135c: 0x000c, 0x135d: 0x000c, + 0x135e: 0x000c, 0x135f: 0x000c, 0x1360: 0x000c, 0x1362: 0x000c, 0x1363: 0x000c, + 0x1364: 0x000c, 0x1365: 0x000c, 0x1366: 0x000c, 0x1367: 0x000c, 0x1368: 0x000c, + 0x136d: 0x000c, + 0x1374: 0x000c, + 0x1378: 0x000c, 0x1379: 0x000c, + // Block 0x4e, offset 0x1380 + 0x13bd: 0x000a, 0x13bf: 0x000a, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x000a, 0x13c1: 0x000a, + 0x13cd: 0x000a, 0x13ce: 0x000a, 0x13cf: 0x000a, + 0x13dd: 0x000a, + 0x13de: 0x000a, 0x13df: 0x000a, + 0x13ed: 0x000a, 0x13ee: 0x000a, 0x13ef: 0x000a, + 0x13fd: 0x000a, 0x13fe: 0x000a, + // Block 0x50, offset 0x1400 + 0x1400: 0x0009, 0x1401: 0x0009, 0x1402: 0x0009, 0x1403: 0x0009, 0x1404: 0x0009, 0x1405: 0x0009, + 0x1406: 0x0009, 0x1407: 0x0009, 0x1408: 0x0009, 0x1409: 0x0009, 0x140a: 0x0009, 0x140b: 0x000b, + 0x140c: 0x000b, 0x140d: 0x000b, 0x140f: 0x0001, 0x1410: 0x000a, 0x1411: 0x000a, + 0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a, + 0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a, + 0x141e: 0x000a, 0x141f: 0x000a, 0x1420: 0x000a, 0x1421: 0x000a, 0x1422: 0x000a, 0x1423: 0x000a, + 0x1424: 0x000a, 0x1425: 0x000a, 0x1426: 0x000a, 0x1427: 0x000a, 0x1428: 0x0009, 0x1429: 0x0007, + 0x142a: 0x000e, 0x142b: 0x000e, 0x142c: 0x000e, 0x142d: 0x000e, 0x142e: 0x000e, 0x142f: 0x0006, + 0x1430: 0x0004, 0x1431: 0x0004, 0x1432: 0x0004, 0x1433: 0x0004, 0x1434: 0x0004, 0x1435: 0x000a, + 0x1436: 0x000a, 0x1437: 0x000a, 0x1438: 0x000a, 0x1439: 0x000a, 0x143a: 0x000a, 0x143b: 0x000a, + 0x143c: 0x000a, 0x143d: 0x000a, 0x143e: 0x000a, 0x143f: 0x000a, + // Block 0x51, offset 0x1440 + 0x1440: 0x000a, 0x1441: 0x000a, 0x1442: 0x000a, 0x1443: 0x000a, 0x1444: 0x0006, 0x1445: 0x009a, + 0x1446: 0x008a, 0x1447: 0x000a, 0x1448: 0x000a, 0x1449: 0x000a, 0x144a: 0x000a, 0x144b: 0x000a, + 0x144c: 0x000a, 0x144d: 0x000a, 0x144e: 0x000a, 0x144f: 0x000a, 0x1450: 0x000a, 0x1451: 0x000a, + 0x1452: 0x000a, 0x1453: 0x000a, 0x1454: 0x000a, 0x1455: 0x000a, 0x1456: 0x000a, 0x1457: 0x000a, + 0x1458: 0x000a, 0x1459: 0x000a, 0x145a: 0x000a, 0x145b: 0x000a, 0x145c: 0x000a, 0x145d: 0x000a, + 0x145e: 0x000a, 0x145f: 0x0009, 0x1460: 0x000b, 0x1461: 0x000b, 0x1462: 0x000b, 0x1463: 0x000b, + 0x1464: 0x000b, 0x1465: 0x000b, 0x1466: 0x000e, 0x1467: 0x000e, 0x1468: 0x000e, 0x1469: 0x000e, + 0x146a: 0x000b, 0x146b: 0x000b, 0x146c: 0x000b, 0x146d: 0x000b, 0x146e: 0x000b, 0x146f: 0x000b, + 0x1470: 0x0002, 0x1474: 0x0002, 0x1475: 0x0002, + 0x1476: 0x0002, 0x1477: 0x0002, 0x1478: 0x0002, 0x1479: 0x0002, 0x147a: 0x0003, 0x147b: 0x0003, + 0x147c: 0x000a, 0x147d: 0x009a, 0x147e: 0x008a, + // Block 0x52, offset 0x1480 + 0x1480: 0x0002, 0x1481: 0x0002, 0x1482: 0x0002, 0x1483: 0x0002, 0x1484: 0x0002, 0x1485: 0x0002, + 0x1486: 0x0002, 0x1487: 0x0002, 0x1488: 0x0002, 0x1489: 0x0002, 0x148a: 0x0003, 0x148b: 0x0003, + 0x148c: 0x000a, 0x148d: 0x009a, 0x148e: 0x008a, + 0x14a0: 0x0004, 0x14a1: 0x0004, 0x14a2: 0x0004, 0x14a3: 0x0004, + 0x14a4: 0x0004, 0x14a5: 0x0004, 0x14a6: 0x0004, 0x14a7: 0x0004, 0x14a8: 0x0004, 0x14a9: 0x0004, + 0x14aa: 0x0004, 0x14ab: 0x0004, 0x14ac: 0x0004, 0x14ad: 0x0004, 0x14ae: 0x0004, 0x14af: 0x0004, + 0x14b0: 0x0004, 0x14b1: 0x0004, 0x14b2: 0x0004, 0x14b3: 0x0004, 0x14b4: 0x0004, 0x14b5: 0x0004, + 0x14b6: 0x0004, 0x14b7: 0x0004, 0x14b8: 0x0004, 0x14b9: 0x0004, 0x14ba: 0x0004, 0x14bb: 0x0004, + 0x14bc: 0x0004, 0x14bd: 0x0004, 0x14be: 0x0004, 0x14bf: 0x0004, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x0004, 0x14c1: 0x0004, 0x14c2: 0x0004, 0x14c3: 0x0004, 0x14c4: 0x0004, 0x14c5: 0x0004, + 0x14c6: 0x0004, 0x14c7: 0x0004, 0x14c8: 0x0004, 0x14c9: 0x0004, 0x14ca: 0x0004, 0x14cb: 0x0004, + 0x14cc: 0x0004, 0x14cd: 0x0004, 0x14ce: 0x0004, 0x14cf: 0x0004, 0x14d0: 0x000c, 0x14d1: 0x000c, + 0x14d2: 0x000c, 0x14d3: 0x000c, 0x14d4: 0x000c, 0x14d5: 0x000c, 0x14d6: 0x000c, 0x14d7: 0x000c, + 0x14d8: 0x000c, 0x14d9: 0x000c, 0x14da: 0x000c, 0x14db: 0x000c, 0x14dc: 0x000c, 0x14dd: 0x000c, + 0x14de: 0x000c, 0x14df: 0x000c, 0x14e0: 0x000c, 0x14e1: 0x000c, 0x14e2: 0x000c, 0x14e3: 0x000c, + 0x14e4: 0x000c, 0x14e5: 0x000c, 0x14e6: 0x000c, 0x14e7: 0x000c, 0x14e8: 0x000c, 0x14e9: 0x000c, + 0x14ea: 0x000c, 0x14eb: 0x000c, 0x14ec: 0x000c, 0x14ed: 0x000c, 0x14ee: 0x000c, 0x14ef: 0x000c, + 0x14f0: 0x000c, + // Block 0x54, offset 0x1500 + 0x1500: 0x000a, 0x1501: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a, 0x1505: 0x000a, + 0x1506: 0x000a, 0x1508: 0x000a, 0x1509: 0x000a, + 0x1514: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a, + 0x1518: 0x000a, + 0x151e: 0x000a, 0x151f: 0x000a, 0x1520: 0x000a, 0x1521: 0x000a, 0x1522: 0x000a, 0x1523: 0x000a, + 0x1525: 0x000a, 0x1527: 0x000a, 0x1529: 0x000a, + 0x152e: 0x0004, + 0x153a: 0x000a, 0x153b: 0x000a, + // Block 0x55, offset 0x1540 + 0x1540: 0x000a, 0x1541: 0x000a, 0x1542: 0x000a, 0x1543: 0x000a, 0x1544: 0x000a, + 0x154a: 0x000a, 0x154b: 0x000a, + 0x154c: 0x000a, 0x154d: 0x000a, 0x1550: 0x000a, 0x1551: 0x000a, + 0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a, + 0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a, + 0x155e: 0x000a, 0x155f: 0x000a, + // Block 0x56, offset 0x1580 + 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a, + 0x1590: 0x000a, 0x1591: 0x000a, + 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a, + 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a, + 0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a, + 0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a, + 0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a, + 0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a, + 0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a, + 0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a, + 0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a, + 0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a, + 0x15d2: 0x000a, 0x15d3: 0x000a, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a, + 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a, + 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a, + 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a, + 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a, + 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a, + 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a, + 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a, + // Block 0x58, offset 0x1600 + 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a, + 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x000a, 0x1609: 0x000a, 0x160a: 0x000a, 0x160b: 0x000a, + 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a, + 0x1612: 0x0003, 0x1613: 0x0004, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a, + 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a, + 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a, + 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x000a, + 0x162a: 0x000a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a, + 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a, + 0x1636: 0x000a, 0x1637: 0x000a, 0x1638: 0x000a, 0x1639: 0x000a, 0x163a: 0x000a, 0x163b: 0x000a, + 0x163c: 0x000a, 0x163d: 0x000a, 0x163e: 0x000a, 0x163f: 0x000a, + // Block 0x59, offset 0x1640 + 0x1640: 0x000a, 0x1641: 0x000a, 0x1642: 0x000a, 0x1643: 0x000a, 0x1644: 0x000a, 0x1645: 0x000a, + 0x1646: 0x000a, 0x1647: 0x000a, 0x1648: 0x003a, 0x1649: 0x002a, 0x164a: 0x003a, 0x164b: 0x002a, + 0x164c: 0x000a, 0x164d: 0x000a, 0x164e: 0x000a, 0x164f: 0x000a, 0x1650: 0x000a, 0x1651: 0x000a, + 0x1652: 0x000a, 0x1653: 0x000a, 0x1654: 0x000a, 0x1655: 0x000a, 0x1656: 0x000a, 0x1657: 0x000a, + 0x1658: 0x000a, 0x1659: 0x000a, 0x165a: 0x000a, 0x165b: 0x000a, 0x165c: 0x000a, 0x165d: 0x000a, + 0x165e: 0x000a, 0x165f: 0x000a, 0x1660: 0x000a, 0x1661: 0x000a, 0x1662: 0x000a, 0x1663: 0x000a, + 0x1664: 0x000a, 0x1665: 0x000a, 0x1666: 0x000a, 0x1667: 0x000a, 0x1668: 0x000a, 0x1669: 0x009a, + 0x166a: 0x008a, 0x166b: 0x000a, 0x166c: 0x000a, 0x166d: 0x000a, 0x166e: 0x000a, 0x166f: 0x000a, + 0x1670: 0x000a, 0x1671: 0x000a, 0x1672: 0x000a, 0x1673: 0x000a, 0x1674: 0x000a, 0x1675: 0x000a, + // Block 0x5a, offset 0x1680 + 0x16bb: 0x000a, + 0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a, + 0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a, + 0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a, + 0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a, + 0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a, + 0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a, + 0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, 0x16e7: 0x000a, 0x16e8: 0x000a, 0x16e9: 0x000a, + 0x16ea: 0x000a, 0x16eb: 0x000a, 0x16ec: 0x000a, 0x16ed: 0x000a, 0x16ee: 0x000a, 0x16ef: 0x000a, + 0x16f0: 0x000a, 0x16f1: 0x000a, 0x16f2: 0x000a, 0x16f3: 0x000a, 0x16f4: 0x000a, 0x16f5: 0x000a, + 0x16f6: 0x000a, 0x16f7: 0x000a, 0x16f8: 0x000a, 0x16f9: 0x000a, 0x16fa: 0x000a, 0x16fb: 0x000a, + 0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a, 0x16ff: 0x000a, + // Block 0x5c, offset 0x1700 + 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a, + 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a, + 0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a, + 0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1715: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a, + 0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a, + 0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a, + 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, + // Block 0x5d, offset 0x1740 + 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a, + 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a, + 0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a, + 0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a, 0x1767: 0x000a, 0x1768: 0x000a, 0x1769: 0x000a, + 0x176a: 0x000a, 0x176b: 0x000a, 0x176c: 0x000a, 0x176d: 0x000a, 0x176e: 0x000a, 0x176f: 0x000a, + 0x1770: 0x000a, 0x1771: 0x000a, 0x1772: 0x000a, 0x1773: 0x000a, 0x1774: 0x000a, 0x1775: 0x000a, + 0x1776: 0x000a, 0x1777: 0x000a, 0x1778: 0x000a, 0x1779: 0x000a, 0x177a: 0x000a, 0x177b: 0x000a, + 0x177c: 0x000a, 0x177d: 0x000a, 0x177e: 0x000a, 0x177f: 0x000a, + // Block 0x5e, offset 0x1780 + 0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a, + 0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x0002, 0x1789: 0x0002, 0x178a: 0x0002, 0x178b: 0x0002, + 0x178c: 0x0002, 0x178d: 0x0002, 0x178e: 0x0002, 0x178f: 0x0002, 0x1790: 0x0002, 0x1791: 0x0002, + 0x1792: 0x0002, 0x1793: 0x0002, 0x1794: 0x0002, 0x1795: 0x0002, 0x1796: 0x0002, 0x1797: 0x0002, + 0x1798: 0x0002, 0x1799: 0x0002, 0x179a: 0x0002, 0x179b: 0x0002, + // Block 0x5f, offset 0x17c0 + 0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ec: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a, + 0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a, + 0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a, + 0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a, + // Block 0x60, offset 0x1800 + 0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a, + 0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a, + 0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a, + 0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a, + 0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a, + 0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a, + 0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x000a, 0x1829: 0x000a, + 0x182a: 0x000a, 0x182b: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a, + 0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a, + 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a, + 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a, + // Block 0x61, offset 0x1840 + 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a, + 0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a, + 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a, + 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a, + 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a, + 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a, + 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x003a, 0x1869: 0x002a, + 0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a, + 0x1870: 0x003a, 0x1871: 0x002a, 0x1872: 0x003a, 0x1873: 0x002a, 0x1874: 0x003a, 0x1875: 0x002a, + 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a, + 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a, + // Block 0x62, offset 0x1880 + 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x009a, + 0x1886: 0x008a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a, + 0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a, + 0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a, + 0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a, + 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a, + 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x003a, 0x18a7: 0x002a, 0x18a8: 0x003a, 0x18a9: 0x002a, + 0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a, + 0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a, + 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a, + 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x007a, 0x18c4: 0x006a, 0x18c5: 0x009a, + 0x18c6: 0x008a, 0x18c7: 0x00ba, 0x18c8: 0x00aa, 0x18c9: 0x009a, 0x18ca: 0x008a, 0x18cb: 0x007a, + 0x18cc: 0x006a, 0x18cd: 0x00da, 0x18ce: 0x002a, 0x18cf: 0x003a, 0x18d0: 0x00ca, 0x18d1: 0x009a, + 0x18d2: 0x008a, 0x18d3: 0x007a, 0x18d4: 0x006a, 0x18d5: 0x009a, 0x18d6: 0x008a, 0x18d7: 0x00ba, + 0x18d8: 0x00aa, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a, + 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a, + 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a, + 0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a, + 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a, + 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a, + 0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a, + // Block 0x64, offset 0x1900 + 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a, + 0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a, + 0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a, + 0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a, + 0x1918: 0x003a, 0x1919: 0x002a, 0x191a: 0x003a, 0x191b: 0x002a, 0x191c: 0x000a, 0x191d: 0x000a, + 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a, + 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a, + 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a, + 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a, + 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a, + 0x193c: 0x003a, 0x193d: 0x002a, 0x193e: 0x000a, 0x193f: 0x000a, + // Block 0x65, offset 0x1940 + 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a, + 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a, + 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a, + 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a, + 0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a, + 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a, + 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a, + 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a, + 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, + 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a, + 0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a, + // Block 0x66, offset 0x1980 + 0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a, + 0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a, + 0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a, + 0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, 0x1997: 0x000a, + 0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a, + 0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a, + 0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a, + 0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a, + 0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a, + 0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a, + 0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a, + // Block 0x67, offset 0x19c0 + 0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a, + 0x19ea: 0x000a, 0x19ef: 0x000c, + 0x19f0: 0x000c, 0x19f1: 0x000c, + 0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a, + 0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a, + // Block 0x68, offset 0x1a00 + 0x1a3f: 0x000c, + // Block 0x69, offset 0x1a40 + 0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c, + 0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c, + 0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c, + 0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c, + 0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c, + 0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a, + 0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a, + 0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a, + 0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a, + 0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a, + 0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a, + 0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a, + 0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a, + 0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a, + 0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a, + 0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a, + 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a, + 0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a, + 0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x009a, 0x1ad6: 0x008a, 0x1ad7: 0x00ba, + 0x1ad8: 0x00aa, 0x1ad9: 0x009a, 0x1ada: 0x008a, 0x1adb: 0x007a, 0x1adc: 0x006a, 0x1add: 0x000a, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a, + 0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a, + 0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a, + 0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a, + 0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a, + 0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a, + 0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a, + 0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a, + 0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a, + 0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a, + 0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a, + 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a, + 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a, + 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a, + 0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a, + 0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a, + 0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a, + 0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a, + 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a, + 0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a, + 0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a, + 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, + 0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a, + 0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, + 0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a, + 0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a, + 0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a, + 0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a, + 0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a, + 0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c, + 0x1bf0: 0x000a, + 0x1bf6: 0x000a, 0x1bf7: 0x000a, + 0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a, + // Block 0x70, offset 0x1c00 + 0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a, + 0x1c20: 0x000a, + // Block 0x71, offset 0x1c40 + 0x1c7b: 0x000a, + // Block 0x72, offset 0x1c80 + 0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a, + 0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a, + 0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a, + 0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a, + 0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a, + 0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a, + // Block 0x73, offset 0x1cc0 + 0x1cdd: 0x000a, + 0x1cde: 0x000a, + // Block 0x74, offset 0x1d00 + 0x1d10: 0x000a, 0x1d11: 0x000a, + 0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a, + 0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a, + 0x1d1e: 0x000a, 0x1d1f: 0x000a, + 0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a, + // Block 0x75, offset 0x1d40 + 0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a, + 0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a, + 0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a, + // Block 0x76, offset 0x1d80 + 0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a, + // Block 0x77, offset 0x1dc0 + 0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a, + // Block 0x78, offset 0x1e00 + 0x1e1e: 0x000a, 0x1e1f: 0x000a, + 0x1e3f: 0x000a, + // Block 0x79, offset 0x1e40 + 0x1e50: 0x000a, 0x1e51: 0x000a, + 0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a, + 0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a, + 0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a, + 0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a, + 0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a, + 0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a, + 0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a, + 0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a, + // Block 0x7a, offset 0x1e80 + 0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a, + 0x1e86: 0x000a, + // Block 0x7b, offset 0x1ec0 + 0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a, + // Block 0x7c, offset 0x1f00 + 0x1f2f: 0x000c, + 0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c, + 0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c, + 0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a, + // Block 0x7d, offset 0x1f40 + 0x1f5e: 0x000c, 0x1f5f: 0x000c, + // Block 0x7e, offset 0x1f80 + 0x1fb0: 0x000c, 0x1fb1: 0x000c, + // Block 0x7f, offset 0x1fc0 + 0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a, + 0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a, + 0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a, + 0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a, + 0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a, + 0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a, + // Block 0x80, offset 0x2000 + 0x2008: 0x000a, + // Block 0x81, offset 0x2040 + 0x2042: 0x000c, + 0x2046: 0x000c, 0x204b: 0x000c, + 0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a, + 0x206a: 0x000a, 0x206b: 0x000a, 0x206c: 0x000c, + 0x2078: 0x0004, 0x2079: 0x0004, + // Block 0x82, offset 0x2080 + 0x20b4: 0x000a, 0x20b5: 0x000a, + 0x20b6: 0x000a, 0x20b7: 0x000a, + // Block 0x83, offset 0x20c0 + 0x20c4: 0x000c, 0x20c5: 0x000c, + 0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c, + 0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c, + 0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c, + 0x20f0: 0x000c, 0x20f1: 0x000c, + 0x20ff: 0x000c, + // Block 0x84, offset 0x2100 + 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c, + 0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, + // Block 0x85, offset 0x2140 + 0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c, + 0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c, + // Block 0x86, offset 0x2180 + 0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c, + 0x21b3: 0x000c, + 0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c, + 0x21bc: 0x000c, 0x21bd: 0x000c, + // Block 0x87, offset 0x21c0 + 0x21e5: 0x000c, + // Block 0x88, offset 0x2200 + 0x2229: 0x000c, + 0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c, + 0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c, + 0x2236: 0x000c, + // Block 0x89, offset 0x2240 + 0x2243: 0x000c, + 0x224c: 0x000c, + 0x227c: 0x000c, + // Block 0x8a, offset 0x2280 + 0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c, + 0x22b7: 0x000c, 0x22b8: 0x000c, + 0x22be: 0x000c, 0x22bf: 0x000c, + // Block 0x8b, offset 0x22c0 + 0x22c1: 0x000c, + 0x22ec: 0x000c, 0x22ed: 0x000c, + 0x22f6: 0x000c, + // Block 0x8c, offset 0x2300 + 0x232a: 0x000a, 0x232b: 0x000a, + // Block 0x8d, offset 0x2340 + 0x2365: 0x000c, 0x2368: 0x000c, + 0x236d: 0x000c, + // Block 0x8e, offset 0x2380 + 0x239d: 0x0001, + 0x239e: 0x000c, 0x239f: 0x0001, 0x23a0: 0x0001, 0x23a1: 0x0001, 0x23a2: 0x0001, 0x23a3: 0x0001, + 0x23a4: 0x0001, 0x23a5: 0x0001, 0x23a6: 0x0001, 0x23a7: 0x0001, 0x23a8: 0x0001, 0x23a9: 0x0003, + 0x23aa: 0x0001, 0x23ab: 0x0001, 0x23ac: 0x0001, 0x23ad: 0x0001, 0x23ae: 0x0001, 0x23af: 0x0001, + 0x23b0: 0x0001, 0x23b1: 0x0001, 0x23b2: 0x0001, 0x23b3: 0x0001, 0x23b4: 0x0001, 0x23b5: 0x0001, + 0x23b6: 0x0001, 0x23b7: 0x0001, 0x23b8: 0x0001, 0x23b9: 0x0001, 0x23ba: 0x0001, 0x23bb: 0x0001, + 0x23bc: 0x0001, 0x23bd: 0x0001, 0x23be: 0x0001, 0x23bf: 0x0001, + // Block 0x8f, offset 0x23c0 + 0x23c0: 0x0001, 0x23c1: 0x0001, 0x23c2: 0x0001, 0x23c3: 0x0001, 0x23c4: 0x0001, 0x23c5: 0x0001, + 0x23c6: 0x0001, 0x23c7: 0x0001, 0x23c8: 0x0001, 0x23c9: 0x0001, 0x23ca: 0x0001, 0x23cb: 0x0001, + 0x23cc: 0x0001, 0x23cd: 0x0001, 0x23ce: 0x0001, 0x23cf: 0x0001, 0x23d0: 0x000d, 0x23d1: 0x000d, + 0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d, + 0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d, + 0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d, + 0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d, + 0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d, + 0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d, + 0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d, + 0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000d, 0x23ff: 0x000d, + // Block 0x90, offset 0x2400 + 0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d, + 0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d, + 0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000d, 0x2411: 0x000d, + 0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d, + 0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d, + 0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d, + 0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d, + 0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d, + 0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d, + 0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d, + 0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000a, 0x243f: 0x000a, + // Block 0x91, offset 0x2440 + 0x2440: 0x000a, 0x2441: 0x000a, 0x2442: 0x000a, 0x2443: 0x000a, 0x2444: 0x000a, 0x2445: 0x000a, + 0x2446: 0x000a, 0x2447: 0x000a, 0x2448: 0x000a, 0x2449: 0x000a, 0x244a: 0x000a, 0x244b: 0x000a, + 0x244c: 0x000a, 0x244d: 0x000a, 0x244e: 0x000a, 0x244f: 0x000a, 0x2450: 0x000d, 0x2451: 0x000d, + 0x2452: 0x000d, 0x2453: 0x000d, 0x2454: 0x000d, 0x2455: 0x000d, 0x2456: 0x000d, 0x2457: 0x000d, + 0x2458: 0x000d, 0x2459: 0x000d, 0x245a: 0x000d, 0x245b: 0x000d, 0x245c: 0x000d, 0x245d: 0x000d, + 0x245e: 0x000d, 0x245f: 0x000d, 0x2460: 0x000d, 0x2461: 0x000d, 0x2462: 0x000d, 0x2463: 0x000d, + 0x2464: 0x000d, 0x2465: 0x000d, 0x2466: 0x000d, 0x2467: 0x000d, 0x2468: 0x000d, 0x2469: 0x000d, + 0x246a: 0x000d, 0x246b: 0x000d, 0x246c: 0x000d, 0x246d: 0x000d, 0x246e: 0x000d, 0x246f: 0x000d, + 0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d, + 0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d, + 0x247c: 0x000d, 0x247d: 0x000d, 0x247e: 0x000d, 0x247f: 0x000d, + // Block 0x92, offset 0x2480 + 0x2480: 0x000d, 0x2481: 0x000d, 0x2482: 0x000d, 0x2483: 0x000d, 0x2484: 0x000d, 0x2485: 0x000d, + 0x2486: 0x000d, 0x2487: 0x000d, 0x2488: 0x000d, 0x2489: 0x000d, 0x248a: 0x000d, 0x248b: 0x000d, + 0x248c: 0x000d, 0x248d: 0x000d, 0x248e: 0x000d, 0x248f: 0x000a, 0x2490: 0x000b, 0x2491: 0x000b, + 0x2492: 0x000b, 0x2493: 0x000b, 0x2494: 0x000b, 0x2495: 0x000b, 0x2496: 0x000b, 0x2497: 0x000b, + 0x2498: 0x000b, 0x2499: 0x000b, 0x249a: 0x000b, 0x249b: 0x000b, 0x249c: 0x000b, 0x249d: 0x000b, + 0x249e: 0x000b, 0x249f: 0x000b, 0x24a0: 0x000b, 0x24a1: 0x000b, 0x24a2: 0x000b, 0x24a3: 0x000b, + 0x24a4: 0x000b, 0x24a5: 0x000b, 0x24a6: 0x000b, 0x24a7: 0x000b, 0x24a8: 0x000b, 0x24a9: 0x000b, + 0x24aa: 0x000b, 0x24ab: 0x000b, 0x24ac: 0x000b, 0x24ad: 0x000b, 0x24ae: 0x000b, 0x24af: 0x000b, + 0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d, + 0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d, + 0x24bc: 0x000d, 0x24bd: 0x000a, 0x24be: 0x000a, 0x24bf: 0x000a, + // Block 0x93, offset 0x24c0 + 0x24c0: 0x000c, 0x24c1: 0x000c, 0x24c2: 0x000c, 0x24c3: 0x000c, 0x24c4: 0x000c, 0x24c5: 0x000c, + 0x24c6: 0x000c, 0x24c7: 0x000c, 0x24c8: 0x000c, 0x24c9: 0x000c, 0x24ca: 0x000c, 0x24cb: 0x000c, + 0x24cc: 0x000c, 0x24cd: 0x000c, 0x24ce: 0x000c, 0x24cf: 0x000c, 0x24d0: 0x000a, 0x24d1: 0x000a, + 0x24d2: 0x000a, 0x24d3: 0x000a, 0x24d4: 0x000a, 0x24d5: 0x000a, 0x24d6: 0x000a, 0x24d7: 0x000a, + 0x24d8: 0x000a, 0x24d9: 0x000a, + 0x24e0: 0x000c, 0x24e1: 0x000c, 0x24e2: 0x000c, 0x24e3: 0x000c, + 0x24e4: 0x000c, 0x24e5: 0x000c, 0x24e6: 0x000c, 0x24e7: 0x000c, 0x24e8: 0x000c, 0x24e9: 0x000c, + 0x24ea: 0x000c, 0x24eb: 0x000c, 0x24ec: 0x000c, 0x24ed: 0x000c, 0x24ee: 0x000c, 0x24ef: 0x000c, + 0x24f0: 0x000a, 0x24f1: 0x000a, 0x24f2: 0x000a, 0x24f3: 0x000a, 0x24f4: 0x000a, 0x24f5: 0x000a, + 0x24f6: 0x000a, 0x24f7: 0x000a, 0x24f8: 0x000a, 0x24f9: 0x000a, 0x24fa: 0x000a, 0x24fb: 0x000a, + 0x24fc: 0x000a, 0x24fd: 0x000a, 0x24fe: 0x000a, 0x24ff: 0x000a, + // Block 0x94, offset 0x2500 + 0x2500: 0x000a, 0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x000a, 0x2504: 0x000a, 0x2505: 0x000a, + 0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x000a, 0x2509: 0x000a, 0x250a: 0x000a, 0x250b: 0x000a, + 0x250c: 0x000a, 0x250d: 0x000a, 0x250e: 0x000a, 0x250f: 0x000a, 0x2510: 0x0006, 0x2511: 0x000a, + 0x2512: 0x0006, 0x2514: 0x000a, 0x2515: 0x0006, 0x2516: 0x000a, 0x2517: 0x000a, + 0x2518: 0x000a, 0x2519: 0x009a, 0x251a: 0x008a, 0x251b: 0x007a, 0x251c: 0x006a, 0x251d: 0x009a, + 0x251e: 0x008a, 0x251f: 0x0004, 0x2520: 0x000a, 0x2521: 0x000a, 0x2522: 0x0003, 0x2523: 0x0003, + 0x2524: 0x000a, 0x2525: 0x000a, 0x2526: 0x000a, 0x2528: 0x000a, 0x2529: 0x0004, + 0x252a: 0x0004, 0x252b: 0x000a, + 0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d, + 0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d, + 0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000d, + // Block 0x95, offset 0x2540 + 0x2540: 0x000d, 0x2541: 0x000d, 0x2542: 0x000d, 0x2543: 0x000d, 0x2544: 0x000d, 0x2545: 0x000d, + 0x2546: 0x000d, 0x2547: 0x000d, 0x2548: 0x000d, 0x2549: 0x000d, 0x254a: 0x000d, 0x254b: 0x000d, + 0x254c: 0x000d, 0x254d: 0x000d, 0x254e: 0x000d, 0x254f: 0x000d, 0x2550: 0x000d, 0x2551: 0x000d, + 0x2552: 0x000d, 0x2553: 0x000d, 0x2554: 0x000d, 0x2555: 0x000d, 0x2556: 0x000d, 0x2557: 0x000d, + 0x2558: 0x000d, 0x2559: 0x000d, 0x255a: 0x000d, 0x255b: 0x000d, 0x255c: 0x000d, 0x255d: 0x000d, + 0x255e: 0x000d, 0x255f: 0x000d, 0x2560: 0x000d, 0x2561: 0x000d, 0x2562: 0x000d, 0x2563: 0x000d, + 0x2564: 0x000d, 0x2565: 0x000d, 0x2566: 0x000d, 0x2567: 0x000d, 0x2568: 0x000d, 0x2569: 0x000d, + 0x256a: 0x000d, 0x256b: 0x000d, 0x256c: 0x000d, 0x256d: 0x000d, 0x256e: 0x000d, 0x256f: 0x000d, + 0x2570: 0x000d, 0x2571: 0x000d, 0x2572: 0x000d, 0x2573: 0x000d, 0x2574: 0x000d, 0x2575: 0x000d, + 0x2576: 0x000d, 0x2577: 0x000d, 0x2578: 0x000d, 0x2579: 0x000d, 0x257a: 0x000d, 0x257b: 0x000d, + 0x257c: 0x000d, 0x257d: 0x000d, 0x257e: 0x000d, 0x257f: 0x000b, + // Block 0x96, offset 0x2580 + 0x2581: 0x000a, 0x2582: 0x000a, 0x2583: 0x0004, 0x2584: 0x0004, 0x2585: 0x0004, + 0x2586: 0x000a, 0x2587: 0x000a, 0x2588: 0x003a, 0x2589: 0x002a, 0x258a: 0x000a, 0x258b: 0x0003, + 0x258c: 0x0006, 0x258d: 0x0003, 0x258e: 0x0006, 0x258f: 0x0006, 0x2590: 0x0002, 0x2591: 0x0002, + 0x2592: 0x0002, 0x2593: 0x0002, 0x2594: 0x0002, 0x2595: 0x0002, 0x2596: 0x0002, 0x2597: 0x0002, + 0x2598: 0x0002, 0x2599: 0x0002, 0x259a: 0x0006, 0x259b: 0x000a, 0x259c: 0x000a, 0x259d: 0x000a, + 0x259e: 0x000a, 0x259f: 0x000a, 0x25a0: 0x000a, + 0x25bb: 0x005a, + 0x25bc: 0x000a, 0x25bd: 0x004a, 0x25be: 0x000a, 0x25bf: 0x000a, + // Block 0x97, offset 0x25c0 + 0x25c0: 0x000a, + 0x25db: 0x005a, 0x25dc: 0x000a, 0x25dd: 0x004a, + 0x25de: 0x000a, 0x25df: 0x00fa, 0x25e0: 0x00ea, 0x25e1: 0x000a, 0x25e2: 0x003a, 0x25e3: 0x002a, + 0x25e4: 0x000a, 0x25e5: 0x000a, + // Block 0x98, offset 0x2600 + 0x2620: 0x0004, 0x2621: 0x0004, 0x2622: 0x000a, 0x2623: 0x000a, + 0x2624: 0x000a, 0x2625: 0x0004, 0x2626: 0x0004, 0x2628: 0x000a, 0x2629: 0x000a, + 0x262a: 0x000a, 0x262b: 0x000a, 0x262c: 0x000a, 0x262d: 0x000a, 0x262e: 0x000a, + 0x2630: 0x000b, 0x2631: 0x000b, 0x2632: 0x000b, 0x2633: 0x000b, 0x2634: 0x000b, 0x2635: 0x000b, + 0x2636: 0x000b, 0x2637: 0x000b, 0x2638: 0x000b, 0x2639: 0x000a, 0x263a: 0x000a, 0x263b: 0x000a, + 0x263c: 0x000a, 0x263d: 0x000a, 0x263e: 0x000b, 0x263f: 0x000b, + // Block 0x99, offset 0x2640 + 0x2641: 0x000a, + // Block 0x9a, offset 0x2680 + 0x2680: 0x000a, 0x2681: 0x000a, 0x2682: 0x000a, 0x2683: 0x000a, 0x2684: 0x000a, 0x2685: 0x000a, + 0x2686: 0x000a, 0x2687: 0x000a, 0x2688: 0x000a, 0x2689: 0x000a, 0x268a: 0x000a, 0x268b: 0x000a, + 0x268c: 0x000a, 0x2690: 0x000a, 0x2691: 0x000a, + 0x2692: 0x000a, 0x2693: 0x000a, 0x2694: 0x000a, 0x2695: 0x000a, 0x2696: 0x000a, 0x2697: 0x000a, + 0x2698: 0x000a, 0x2699: 0x000a, 0x269a: 0x000a, 0x269b: 0x000a, 0x269c: 0x000a, + 0x26a0: 0x000a, + // Block 0x9b, offset 0x26c0 + 0x26fd: 0x000c, + // Block 0x9c, offset 0x2700 + 0x2720: 0x000c, 0x2721: 0x0002, 0x2722: 0x0002, 0x2723: 0x0002, + 0x2724: 0x0002, 0x2725: 0x0002, 0x2726: 0x0002, 0x2727: 0x0002, 0x2728: 0x0002, 0x2729: 0x0002, + 0x272a: 0x0002, 0x272b: 0x0002, 0x272c: 0x0002, 0x272d: 0x0002, 0x272e: 0x0002, 0x272f: 0x0002, + 0x2730: 0x0002, 0x2731: 0x0002, 0x2732: 0x0002, 0x2733: 0x0002, 0x2734: 0x0002, 0x2735: 0x0002, + 0x2736: 0x0002, 0x2737: 0x0002, 0x2738: 0x0002, 0x2739: 0x0002, 0x273a: 0x0002, 0x273b: 0x0002, + // Block 0x9d, offset 0x2740 + 0x2776: 0x000c, 0x2777: 0x000c, 0x2778: 0x000c, 0x2779: 0x000c, 0x277a: 0x000c, + // Block 0x9e, offset 0x2780 + 0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001, + 0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001, + 0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001, + 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001, + 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001, + 0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001, + 0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001, + 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001, + 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001, + 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001, + 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001, + // Block 0x9f, offset 0x27c0 + 0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001, + 0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001, + 0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001, + 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001, + 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001, + 0x27de: 0x0001, 0x27df: 0x000a, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001, + 0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001, + 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001, + 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001, + 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001, + 0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001, + // Block 0xa0, offset 0x2800 + 0x2800: 0x0001, 0x2801: 0x000c, 0x2802: 0x000c, 0x2803: 0x000c, 0x2804: 0x0001, 0x2805: 0x000c, + 0x2806: 0x000c, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001, + 0x280c: 0x000c, 0x280d: 0x000c, 0x280e: 0x000c, 0x280f: 0x000c, 0x2810: 0x0001, 0x2811: 0x0001, + 0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001, + 0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001, + 0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001, + 0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001, + 0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001, + 0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001, + 0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x000c, 0x2839: 0x000c, 0x283a: 0x000c, 0x283b: 0x0001, + 0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x000c, + // Block 0xa1, offset 0x2840 + 0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001, + 0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001, + 0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001, + 0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001, + 0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001, + 0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001, + 0x2864: 0x0001, 0x2865: 0x000c, 0x2866: 0x000c, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001, + 0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001, + 0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001, + 0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x0001, 0x287a: 0x0001, 0x287b: 0x0001, + 0x287c: 0x0001, 0x287d: 0x0001, 0x287e: 0x0001, 0x287f: 0x0001, + // Block 0xa2, offset 0x2880 + 0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001, + 0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001, + 0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001, + 0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001, + 0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001, + 0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0001, 0x28a1: 0x0001, 0x28a2: 0x0001, 0x28a3: 0x0001, + 0x28a4: 0x0001, 0x28a5: 0x0001, 0x28a6: 0x0001, 0x28a7: 0x0001, 0x28a8: 0x0001, 0x28a9: 0x0001, + 0x28aa: 0x0001, 0x28ab: 0x0001, 0x28ac: 0x0001, 0x28ad: 0x0001, 0x28ae: 0x0001, 0x28af: 0x0001, + 0x28b0: 0x0001, 0x28b1: 0x0001, 0x28b2: 0x0001, 0x28b3: 0x0001, 0x28b4: 0x0001, 0x28b5: 0x0001, + 0x28b6: 0x0001, 0x28b7: 0x0001, 0x28b8: 0x0001, 0x28b9: 0x000a, 0x28ba: 0x000a, 0x28bb: 0x000a, + 0x28bc: 0x000a, 0x28bd: 0x000a, 0x28be: 0x000a, 0x28bf: 0x000a, + // Block 0xa3, offset 0x28c0 + 0x28c0: 0x000d, 0x28c1: 0x000d, 0x28c2: 0x000d, 0x28c3: 0x000d, 0x28c4: 0x000d, 0x28c5: 0x000d, + 0x28c6: 0x000d, 0x28c7: 0x000d, 0x28c8: 0x000d, 0x28c9: 0x000d, 0x28ca: 0x000d, 0x28cb: 0x000d, + 0x28cc: 0x000d, 0x28cd: 0x000d, 0x28ce: 0x000d, 0x28cf: 0x000d, 0x28d0: 0x000d, 0x28d1: 0x000d, + 0x28d2: 0x000d, 0x28d3: 0x000d, 0x28d4: 0x000d, 0x28d5: 0x000d, 0x28d6: 0x000d, 0x28d7: 0x000d, + 0x28d8: 0x000d, 0x28d9: 0x000d, 0x28da: 0x000d, 0x28db: 0x000d, 0x28dc: 0x000d, 0x28dd: 0x000d, + 0x28de: 0x000d, 0x28df: 0x000d, 0x28e0: 0x000d, 0x28e1: 0x000d, 0x28e2: 0x000d, 0x28e3: 0x000d, + 0x28e4: 0x000c, 0x28e5: 0x000c, 0x28e6: 0x000c, 0x28e7: 0x000c, 0x28e8: 0x0001, 0x28e9: 0x0001, + 0x28ea: 0x0001, 0x28eb: 0x0001, 0x28ec: 0x0001, 0x28ed: 0x0001, 0x28ee: 0x0001, 0x28ef: 0x0001, + 0x28f0: 0x0005, 0x28f1: 0x0005, 0x28f2: 0x0005, 0x28f3: 0x0005, 0x28f4: 0x0005, 0x28f5: 0x0005, + 0x28f6: 0x0005, 0x28f7: 0x0005, 0x28f8: 0x0005, 0x28f9: 0x0005, 0x28fa: 0x0001, 0x28fb: 0x0001, + 0x28fc: 0x0001, 0x28fd: 0x0001, 0x28fe: 0x0001, 0x28ff: 0x0001, + // Block 0xa4, offset 0x2900 + 0x2900: 0x0001, 0x2901: 0x0001, 0x2902: 0x0001, 0x2903: 0x0001, 0x2904: 0x0001, 0x2905: 0x0001, + 0x2906: 0x0001, 0x2907: 0x0001, 0x2908: 0x0001, 0x2909: 0x0001, 0x290a: 0x0001, 0x290b: 0x0001, + 0x290c: 0x0001, 0x290d: 0x0001, 0x290e: 0x0001, 0x290f: 0x0001, 0x2910: 0x0001, 0x2911: 0x0001, + 0x2912: 0x0001, 0x2913: 0x0001, 0x2914: 0x0001, 0x2915: 0x0001, 0x2916: 0x0001, 0x2917: 0x0001, + 0x2918: 0x0001, 0x2919: 0x0001, 0x291a: 0x0001, 0x291b: 0x0001, 0x291c: 0x0001, 0x291d: 0x0001, + 0x291e: 0x0001, 0x291f: 0x0001, 0x2920: 0x0005, 0x2921: 0x0005, 0x2922: 0x0005, 0x2923: 0x0005, + 0x2924: 0x0005, 0x2925: 0x0005, 0x2926: 0x0005, 0x2927: 0x0005, 0x2928: 0x0005, 0x2929: 0x0005, + 0x292a: 0x0005, 0x292b: 0x0005, 0x292c: 0x0005, 0x292d: 0x0005, 0x292e: 0x0005, 0x292f: 0x0005, + 0x2930: 0x0005, 0x2931: 0x0005, 0x2932: 0x0005, 0x2933: 0x0005, 0x2934: 0x0005, 0x2935: 0x0005, + 0x2936: 0x0005, 0x2937: 0x0005, 0x2938: 0x0005, 0x2939: 0x0005, 0x293a: 0x0005, 0x293b: 0x0005, + 0x293c: 0x0005, 0x293d: 0x0005, 0x293e: 0x0005, 0x293f: 0x0001, + // Block 0xa5, offset 0x2940 + 0x2940: 0x0001, 0x2941: 0x0001, 0x2942: 0x0001, 0x2943: 0x0001, 0x2944: 0x0001, 0x2945: 0x0001, + 0x2946: 0x0001, 0x2947: 0x0001, 0x2948: 0x0001, 0x2949: 0x0001, 0x294a: 0x0001, 0x294b: 0x0001, + 0x294c: 0x0001, 0x294d: 0x0001, 0x294e: 0x0001, 0x294f: 0x0001, 0x2950: 0x0001, 0x2951: 0x0001, + 0x2952: 0x0001, 0x2953: 0x0001, 0x2954: 0x0001, 0x2955: 0x0001, 0x2956: 0x0001, 0x2957: 0x0001, + 0x2958: 0x0001, 0x2959: 0x0001, 0x295a: 0x0001, 0x295b: 0x0001, 0x295c: 0x0001, 0x295d: 0x0001, + 0x295e: 0x0001, 0x295f: 0x0001, 0x2960: 0x0001, 0x2961: 0x0001, 0x2962: 0x0001, 0x2963: 0x0001, + 0x2964: 0x0001, 0x2965: 0x0001, 0x2966: 0x0001, 0x2967: 0x0001, 0x2968: 0x0001, 0x2969: 0x0001, + 0x296a: 0x0001, 0x296b: 0x000c, 0x296c: 0x000c, 0x296d: 0x0001, 0x296e: 0x0001, 0x296f: 0x0001, + 0x2970: 0x0001, 0x2971: 0x0001, 0x2972: 0x0001, 0x2973: 0x0001, 0x2974: 0x0001, 0x2975: 0x0001, + 0x2976: 0x0001, 0x2977: 0x0001, 0x2978: 0x0001, 0x2979: 0x0001, 0x297a: 0x0001, 0x297b: 0x0001, + 0x297c: 0x0001, 0x297d: 0x0001, 0x297e: 0x0001, 0x297f: 0x0001, + // Block 0xa6, offset 0x2980 + 0x2980: 0x0001, 0x2981: 0x0001, 0x2982: 0x0001, 0x2983: 0x0001, 0x2984: 0x0001, 0x2985: 0x0001, + 0x2986: 0x0001, 0x2987: 0x0001, 0x2988: 0x0001, 0x2989: 0x0001, 0x298a: 0x0001, 0x298b: 0x0001, + 0x298c: 0x0001, 0x298d: 0x0001, 0x298e: 0x0001, 0x298f: 0x0001, 0x2990: 0x0001, 0x2991: 0x0001, + 0x2992: 0x0001, 0x2993: 0x0001, 0x2994: 0x0001, 0x2995: 0x0001, 0x2996: 0x0001, 0x2997: 0x0001, + 0x2998: 0x0001, 0x2999: 0x0001, 0x299a: 0x0001, 0x299b: 0x0001, 0x299c: 0x0001, 0x299d: 0x0001, + 0x299e: 0x0001, 0x299f: 0x0001, 0x29a0: 0x0001, 0x29a1: 0x0001, 0x29a2: 0x0001, 0x29a3: 0x0001, + 0x29a4: 0x0001, 0x29a5: 0x0001, 0x29a6: 0x0001, 0x29a7: 0x0001, 0x29a8: 0x0001, 0x29a9: 0x0001, + 0x29aa: 0x0001, 0x29ab: 0x0001, 0x29ac: 0x0001, 0x29ad: 0x0001, 0x29ae: 0x0001, 0x29af: 0x0001, + 0x29b0: 0x0001, 0x29b1: 0x0001, 0x29b2: 0x0001, 0x29b3: 0x0001, 0x29b4: 0x0001, 0x29b5: 0x0001, + 0x29b6: 0x0001, 0x29b7: 0x0001, 0x29b8: 0x0001, 0x29b9: 0x0001, 0x29ba: 0x0001, 0x29bb: 0x0001, + 0x29bc: 0x0001, 0x29bd: 0x000c, 0x29be: 0x000c, 0x29bf: 0x000c, + // Block 0xa7, offset 0x29c0 + 0x29c0: 0x0001, 0x29c1: 0x0001, 0x29c2: 0x0001, 0x29c3: 0x0001, 0x29c4: 0x0001, 0x29c5: 0x0001, + 0x29c6: 0x0001, 0x29c7: 0x0001, 0x29c8: 0x0001, 0x29c9: 0x0001, 0x29ca: 0x0001, 0x29cb: 0x0001, + 0x29cc: 0x0001, 0x29cd: 0x0001, 0x29ce: 0x0001, 0x29cf: 0x0001, 0x29d0: 0x0001, 0x29d1: 0x0001, + 0x29d2: 0x0001, 0x29d3: 0x0001, 0x29d4: 0x0001, 0x29d5: 0x0001, 0x29d6: 0x0001, 0x29d7: 0x0001, + 0x29d8: 0x0001, 0x29d9: 0x0001, 0x29da: 0x0001, 0x29db: 0x0001, 0x29dc: 0x0001, 0x29dd: 0x0001, + 0x29de: 0x0001, 0x29df: 0x0001, 0x29e0: 0x0001, 0x29e1: 0x0001, 0x29e2: 0x0001, 0x29e3: 0x0001, + 0x29e4: 0x0001, 0x29e5: 0x0001, 0x29e6: 0x0001, 0x29e7: 0x0001, 0x29e8: 0x0001, 0x29e9: 0x0001, + 0x29ea: 0x0001, 0x29eb: 0x0001, 0x29ec: 0x0001, 0x29ed: 0x0001, 0x29ee: 0x0001, 0x29ef: 0x0001, + 0x29f0: 0x000d, 0x29f1: 0x000d, 0x29f2: 0x000d, 0x29f3: 0x000d, 0x29f4: 0x000d, 0x29f5: 0x000d, + 0x29f6: 0x000d, 0x29f7: 0x000d, 0x29f8: 0x000d, 0x29f9: 0x000d, 0x29fa: 0x000d, 0x29fb: 0x000d, + 0x29fc: 0x000d, 0x29fd: 0x000d, 0x29fe: 0x000d, 0x29ff: 0x000d, + // Block 0xa8, offset 0x2a00 + 0x2a00: 0x000d, 0x2a01: 0x000d, 0x2a02: 0x000d, 0x2a03: 0x000d, 0x2a04: 0x000d, 0x2a05: 0x000d, + 0x2a06: 0x000c, 0x2a07: 0x000c, 0x2a08: 0x000c, 0x2a09: 0x000c, 0x2a0a: 0x000c, 0x2a0b: 0x000c, + 0x2a0c: 0x000c, 0x2a0d: 0x000c, 0x2a0e: 0x000c, 0x2a0f: 0x000c, 0x2a10: 0x000c, 0x2a11: 0x000d, + 0x2a12: 0x000d, 0x2a13: 0x000d, 0x2a14: 0x000d, 0x2a15: 0x000d, 0x2a16: 0x000d, 0x2a17: 0x000d, + 0x2a18: 0x000d, 0x2a19: 0x000d, 0x2a1a: 0x0001, 0x2a1b: 0x0001, 0x2a1c: 0x0001, 0x2a1d: 0x0001, + 0x2a1e: 0x0001, 0x2a1f: 0x0001, 0x2a20: 0x0001, 0x2a21: 0x0001, 0x2a22: 0x0001, 0x2a23: 0x0001, + 0x2a24: 0x0001, 0x2a25: 0x0001, 0x2a26: 0x0001, 0x2a27: 0x0001, 0x2a28: 0x0001, 0x2a29: 0x0001, + 0x2a2a: 0x0001, 0x2a2b: 0x0001, 0x2a2c: 0x0001, 0x2a2d: 0x0001, 0x2a2e: 0x0001, 0x2a2f: 0x0001, + 0x2a30: 0x0001, 0x2a31: 0x0001, 0x2a32: 0x0001, 0x2a33: 0x0001, 0x2a34: 0x0001, 0x2a35: 0x0001, + 0x2a36: 0x0001, 0x2a37: 0x0001, 0x2a38: 0x0001, 0x2a39: 0x0001, 0x2a3a: 0x0001, 0x2a3b: 0x0001, + 0x2a3c: 0x0001, 0x2a3d: 0x0001, 0x2a3e: 0x0001, 0x2a3f: 0x0001, + // Block 0xa9, offset 0x2a40 + 0x2a40: 0x0001, 0x2a41: 0x0001, 0x2a42: 0x000c, 0x2a43: 0x000c, 0x2a44: 0x000c, 0x2a45: 0x000c, + 0x2a46: 0x0001, 0x2a47: 0x0001, 0x2a48: 0x0001, 0x2a49: 0x0001, 0x2a4a: 0x0001, 0x2a4b: 0x0001, + 0x2a4c: 0x0001, 0x2a4d: 0x0001, 0x2a4e: 0x0001, 0x2a4f: 0x0001, 0x2a50: 0x0001, 0x2a51: 0x0001, + 0x2a52: 0x0001, 0x2a53: 0x0001, 0x2a54: 0x0001, 0x2a55: 0x0001, 0x2a56: 0x0001, 0x2a57: 0x0001, + 0x2a58: 0x0001, 0x2a59: 0x0001, 0x2a5a: 0x0001, 0x2a5b: 0x0001, 0x2a5c: 0x0001, 0x2a5d: 0x0001, + 0x2a5e: 0x0001, 0x2a5f: 0x0001, 0x2a60: 0x0001, 0x2a61: 0x0001, 0x2a62: 0x0001, 0x2a63: 0x0001, + 0x2a64: 0x0001, 0x2a65: 0x0001, 0x2a66: 0x0001, 0x2a67: 0x0001, 0x2a68: 0x0001, 0x2a69: 0x0001, + 0x2a6a: 0x0001, 0x2a6b: 0x0001, 0x2a6c: 0x0001, 0x2a6d: 0x0001, 0x2a6e: 0x0001, 0x2a6f: 0x0001, + 0x2a70: 0x0001, 0x2a71: 0x0001, 0x2a72: 0x0001, 0x2a73: 0x0001, 0x2a74: 0x0001, 0x2a75: 0x0001, + 0x2a76: 0x0001, 0x2a77: 0x0001, 0x2a78: 0x0001, 0x2a79: 0x0001, 0x2a7a: 0x0001, 0x2a7b: 0x0001, + 0x2a7c: 0x0001, 0x2a7d: 0x0001, 0x2a7e: 0x0001, 0x2a7f: 0x0001, + // Block 0xaa, offset 0x2a80 + 0x2a81: 0x000c, + 0x2ab8: 0x000c, 0x2ab9: 0x000c, 0x2aba: 0x000c, 0x2abb: 0x000c, + 0x2abc: 0x000c, 0x2abd: 0x000c, 0x2abe: 0x000c, 0x2abf: 0x000c, + // Block 0xab, offset 0x2ac0 + 0x2ac0: 0x000c, 0x2ac1: 0x000c, 0x2ac2: 0x000c, 0x2ac3: 0x000c, 0x2ac4: 0x000c, 0x2ac5: 0x000c, + 0x2ac6: 0x000c, + 0x2ad2: 0x000a, 0x2ad3: 0x000a, 0x2ad4: 0x000a, 0x2ad5: 0x000a, 0x2ad6: 0x000a, 0x2ad7: 0x000a, + 0x2ad8: 0x000a, 0x2ad9: 0x000a, 0x2ada: 0x000a, 0x2adb: 0x000a, 0x2adc: 0x000a, 0x2add: 0x000a, + 0x2ade: 0x000a, 0x2adf: 0x000a, 0x2ae0: 0x000a, 0x2ae1: 0x000a, 0x2ae2: 0x000a, 0x2ae3: 0x000a, + 0x2ae4: 0x000a, 0x2ae5: 0x000a, + 0x2af0: 0x000c, 0x2af3: 0x000c, 0x2af4: 0x000c, + 0x2aff: 0x000c, + // Block 0xac, offset 0x2b00 + 0x2b00: 0x000c, 0x2b01: 0x000c, + 0x2b33: 0x000c, 0x2b34: 0x000c, 0x2b35: 0x000c, + 0x2b36: 0x000c, 0x2b39: 0x000c, 0x2b3a: 0x000c, + // Block 0xad, offset 0x2b40 + 0x2b40: 0x000c, 0x2b41: 0x000c, 0x2b42: 0x000c, + 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c, + 0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6d: 0x000c, 0x2b6e: 0x000c, 0x2b6f: 0x000c, + 0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c, + // Block 0xae, offset 0x2b80 + 0x2bb3: 0x000c, + // Block 0xaf, offset 0x2bc0 + 0x2bc0: 0x000c, 0x2bc1: 0x000c, + 0x2bf6: 0x000c, 0x2bf7: 0x000c, 0x2bf8: 0x000c, 0x2bf9: 0x000c, 0x2bfa: 0x000c, 0x2bfb: 0x000c, + 0x2bfc: 0x000c, 0x2bfd: 0x000c, 0x2bfe: 0x000c, + // Block 0xb0, offset 0x2c00 + 0x2c09: 0x000c, 0x2c0a: 0x000c, 0x2c0b: 0x000c, + 0x2c0c: 0x000c, 0x2c0f: 0x000c, + // Block 0xb1, offset 0x2c40 + 0x2c6f: 0x000c, + 0x2c70: 0x000c, 0x2c71: 0x000c, 0x2c74: 0x000c, + 0x2c76: 0x000c, 0x2c77: 0x000c, + 0x2c7e: 0x000c, + // Block 0xb2, offset 0x2c80 + 0x2c9f: 0x000c, 0x2ca3: 0x000c, + 0x2ca4: 0x000c, 0x2ca5: 0x000c, 0x2ca6: 0x000c, 0x2ca7: 0x000c, 0x2ca8: 0x000c, 0x2ca9: 0x000c, + 0x2caa: 0x000c, + // Block 0xb3, offset 0x2cc0 + 0x2cc0: 0x000c, + 0x2ce6: 0x000c, 0x2ce7: 0x000c, 0x2ce8: 0x000c, 0x2ce9: 0x000c, + 0x2cea: 0x000c, 0x2ceb: 0x000c, 0x2cec: 0x000c, + 0x2cf0: 0x000c, 0x2cf1: 0x000c, 0x2cf2: 0x000c, 0x2cf3: 0x000c, 0x2cf4: 0x000c, + // Block 0xb4, offset 0x2d00 + 0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c, 0x2d3b: 0x000c, + 0x2d3c: 0x000c, 0x2d3d: 0x000c, 0x2d3e: 0x000c, 0x2d3f: 0x000c, + // Block 0xb5, offset 0x2d40 + 0x2d42: 0x000c, 0x2d43: 0x000c, 0x2d44: 0x000c, + 0x2d46: 0x000c, + 0x2d5e: 0x000c, + // Block 0xb6, offset 0x2d80 + 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c, + 0x2db6: 0x000c, 0x2db7: 0x000c, 0x2db8: 0x000c, 0x2dba: 0x000c, + 0x2dbf: 0x000c, + // Block 0xb7, offset 0x2dc0 + 0x2dc0: 0x000c, 0x2dc2: 0x000c, 0x2dc3: 0x000c, + // Block 0xb8, offset 0x2e00 + 0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c, + 0x2e3c: 0x000c, 0x2e3d: 0x000c, 0x2e3f: 0x000c, + // Block 0xb9, offset 0x2e40 + 0x2e40: 0x000c, + 0x2e5c: 0x000c, 0x2e5d: 0x000c, + // Block 0xba, offset 0x2e80 + 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c, + 0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2eb9: 0x000c, 0x2eba: 0x000c, + 0x2ebd: 0x000c, 0x2ebf: 0x000c, + // Block 0xbb, offset 0x2ec0 + 0x2ec0: 0x000c, + 0x2ee0: 0x000a, 0x2ee1: 0x000a, 0x2ee2: 0x000a, 0x2ee3: 0x000a, + 0x2ee4: 0x000a, 0x2ee5: 0x000a, 0x2ee6: 0x000a, 0x2ee7: 0x000a, 0x2ee8: 0x000a, 0x2ee9: 0x000a, + 0x2eea: 0x000a, 0x2eeb: 0x000a, 0x2eec: 0x000a, + // Block 0xbc, offset 0x2f00 + 0x2f2b: 0x000c, 0x2f2d: 0x000c, + 0x2f30: 0x000c, 0x2f31: 0x000c, 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c, + 0x2f37: 0x000c, + // Block 0xbd, offset 0x2f40 + 0x2f5d: 0x000c, + 0x2f5e: 0x000c, 0x2f5f: 0x000c, 0x2f62: 0x000c, 0x2f63: 0x000c, + 0x2f64: 0x000c, 0x2f65: 0x000c, 0x2f67: 0x000c, 0x2f68: 0x000c, 0x2f69: 0x000c, + 0x2f6a: 0x000c, 0x2f6b: 0x000c, + // Block 0xbe, offset 0x2f80 + 0x2faf: 0x000c, + 0x2fb0: 0x000c, 0x2fb1: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb4: 0x000c, 0x2fb5: 0x000c, + 0x2fb6: 0x000c, 0x2fb7: 0x000c, 0x2fb9: 0x000c, 0x2fba: 0x000c, + // Block 0xbf, offset 0x2fc0 + 0x2ffb: 0x000c, + 0x2ffc: 0x000c, 0x2ffe: 0x000c, + // Block 0xc0, offset 0x3000 + 0x3003: 0x000c, + // Block 0xc1, offset 0x3040 + 0x3054: 0x000c, 0x3055: 0x000c, 0x3056: 0x000c, 0x3057: 0x000c, + 0x305a: 0x000c, 0x305b: 0x000c, + 0x3060: 0x000c, + // Block 0xc2, offset 0x3080 + 0x3081: 0x000c, 0x3082: 0x000c, 0x3083: 0x000c, 0x3084: 0x000c, 0x3085: 0x000c, + 0x3086: 0x000c, 0x3089: 0x000c, 0x308a: 0x000c, + 0x30b3: 0x000c, 0x30b4: 0x000c, 0x30b5: 0x000c, + 0x30b6: 0x000c, 0x30b7: 0x000c, 0x30b8: 0x000c, 0x30bb: 0x000c, + 0x30bc: 0x000c, 0x30bd: 0x000c, 0x30be: 0x000c, + // Block 0xc3, offset 0x30c0 + 0x30c7: 0x000c, + 0x30d1: 0x000c, + 0x30d2: 0x000c, 0x30d3: 0x000c, 0x30d4: 0x000c, 0x30d5: 0x000c, 0x30d6: 0x000c, + 0x30d9: 0x000c, 0x30da: 0x000c, 0x30db: 0x000c, + // Block 0xc4, offset 0x3100 + 0x310a: 0x000c, 0x310b: 0x000c, + 0x310c: 0x000c, 0x310d: 0x000c, 0x310e: 0x000c, 0x310f: 0x000c, 0x3110: 0x000c, 0x3111: 0x000c, + 0x3112: 0x000c, 0x3113: 0x000c, 0x3114: 0x000c, 0x3115: 0x000c, 0x3116: 0x000c, + 0x3118: 0x000c, 0x3119: 0x000c, + // Block 0xc5, offset 0x3140 + 0x3170: 0x000c, 0x3171: 0x000c, 0x3172: 0x000c, 0x3173: 0x000c, 0x3174: 0x000c, 0x3175: 0x000c, + 0x3176: 0x000c, 0x3178: 0x000c, 0x3179: 0x000c, 0x317a: 0x000c, 0x317b: 0x000c, + 0x317c: 0x000c, 0x317d: 0x000c, + // Block 0xc6, offset 0x3180 + 0x3192: 0x000c, 0x3193: 0x000c, 0x3194: 0x000c, 0x3195: 0x000c, 0x3196: 0x000c, 0x3197: 0x000c, + 0x3198: 0x000c, 0x3199: 0x000c, 0x319a: 0x000c, 0x319b: 0x000c, 0x319c: 0x000c, 0x319d: 0x000c, + 0x319e: 0x000c, 0x319f: 0x000c, 0x31a0: 0x000c, 0x31a1: 0x000c, 0x31a2: 0x000c, 0x31a3: 0x000c, + 0x31a4: 0x000c, 0x31a5: 0x000c, 0x31a6: 0x000c, 0x31a7: 0x000c, + 0x31aa: 0x000c, 0x31ab: 0x000c, 0x31ac: 0x000c, 0x31ad: 0x000c, 0x31ae: 0x000c, 0x31af: 0x000c, + 0x31b0: 0x000c, 0x31b2: 0x000c, 0x31b3: 0x000c, 0x31b5: 0x000c, + 0x31b6: 0x000c, + // Block 0xc7, offset 0x31c0 + 0x31f1: 0x000c, 0x31f2: 0x000c, 0x31f3: 0x000c, 0x31f4: 0x000c, 0x31f5: 0x000c, + 0x31f6: 0x000c, 0x31fa: 0x000c, + 0x31fc: 0x000c, 0x31fd: 0x000c, 0x31ff: 0x000c, + // Block 0xc8, offset 0x3200 + 0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3203: 0x000c, 0x3204: 0x000c, 0x3205: 0x000c, + 0x3207: 0x000c, + // Block 0xc9, offset 0x3240 + 0x3250: 0x000c, 0x3251: 0x000c, + 0x3255: 0x000c, 0x3257: 0x000c, + // Block 0xca, offset 0x3280 + 0x32b3: 0x000c, 0x32b4: 0x000c, + // Block 0xcb, offset 0x32c0 + 0x32c0: 0x000c, 0x32c1: 0x000c, + 0x32f6: 0x000c, 0x32f7: 0x000c, 0x32f8: 0x000c, 0x32f9: 0x000c, 0x32fa: 0x000c, + // Block 0xcc, offset 0x3300 + 0x3300: 0x000c, 0x3302: 0x000c, + // Block 0xcd, offset 0x3340 + 0x3355: 0x000a, 0x3356: 0x000a, 0x3357: 0x000a, + 0x3358: 0x000a, 0x3359: 0x000a, 0x335a: 0x000a, 0x335b: 0x000a, 0x335c: 0x000a, 0x335d: 0x0004, + 0x335e: 0x0004, 0x335f: 0x0004, 0x3360: 0x0004, 0x3361: 0x000a, 0x3362: 0x000a, 0x3363: 0x000a, + 0x3364: 0x000a, 0x3365: 0x000a, 0x3366: 0x000a, 0x3367: 0x000a, 0x3368: 0x000a, 0x3369: 0x000a, + 0x336a: 0x000a, 0x336b: 0x000a, 0x336c: 0x000a, 0x336d: 0x000a, 0x336e: 0x000a, 0x336f: 0x000a, + 0x3370: 0x000a, 0x3371: 0x000a, + // Block 0xce, offset 0x3380 + 0x3380: 0x000c, + 0x3387: 0x000c, 0x3388: 0x000c, 0x3389: 0x000c, 0x338a: 0x000c, 0x338b: 0x000c, + 0x338c: 0x000c, 0x338d: 0x000c, 0x338e: 0x000c, 0x338f: 0x000c, 0x3390: 0x000c, 0x3391: 0x000c, + 0x3392: 0x000c, 0x3393: 0x000c, 0x3394: 0x000c, 0x3395: 0x000c, + // Block 0xcf, offset 0x33c0 + 0x33f0: 0x000c, 0x33f1: 0x000c, 0x33f2: 0x000c, 0x33f3: 0x000c, 0x33f4: 0x000c, + // Block 0xd0, offset 0x3400 + 0x3430: 0x000c, 0x3431: 0x000c, 0x3432: 0x000c, 0x3433: 0x000c, 0x3434: 0x000c, 0x3435: 0x000c, + 0x3436: 0x000c, + // Block 0xd1, offset 0x3440 + 0x344f: 0x000c, + // Block 0xd2, offset 0x3480 + 0x348f: 0x000c, 0x3490: 0x000c, 0x3491: 0x000c, + 0x3492: 0x000c, + // Block 0xd3, offset 0x34c0 + 0x34e2: 0x000a, + 0x34e4: 0x000c, + // Block 0xd4, offset 0x3500 + 0x351d: 0x000c, + 0x351e: 0x000c, 0x3520: 0x000b, 0x3521: 0x000b, 0x3522: 0x000b, 0x3523: 0x000b, + // Block 0xd5, offset 0x3540 + 0x3540: 0x000c, 0x3541: 0x000c, 0x3542: 0x000c, 0x3543: 0x000c, 0x3544: 0x000c, 0x3545: 0x000c, + 0x3546: 0x000c, 0x3547: 0x000c, 0x3548: 0x000c, 0x3549: 0x000c, 0x354a: 0x000c, 0x354b: 0x000c, + 0x354c: 0x000c, 0x354d: 0x000c, 0x354e: 0x000c, 0x354f: 0x000c, 0x3550: 0x000c, 0x3551: 0x000c, + 0x3552: 0x000c, 0x3553: 0x000c, 0x3554: 0x000c, 0x3555: 0x000c, 0x3556: 0x000c, 0x3557: 0x000c, + 0x3558: 0x000c, 0x3559: 0x000c, 0x355a: 0x000c, 0x355b: 0x000c, 0x355c: 0x000c, 0x355d: 0x000c, + 0x355e: 0x000c, 0x355f: 0x000c, 0x3560: 0x000c, 0x3561: 0x000c, 0x3562: 0x000c, 0x3563: 0x000c, + 0x3564: 0x000c, 0x3565: 0x000c, 0x3566: 0x000c, 0x3567: 0x000c, 0x3568: 0x000c, 0x3569: 0x000c, + 0x356a: 0x000c, 0x356b: 0x000c, 0x356c: 0x000c, 0x356d: 0x000c, + 0x3570: 0x000c, 0x3571: 0x000c, 0x3572: 0x000c, 0x3573: 0x000c, 0x3574: 0x000c, 0x3575: 0x000c, + 0x3576: 0x000c, 0x3577: 0x000c, 0x3578: 0x000c, 0x3579: 0x000c, 0x357a: 0x000c, 0x357b: 0x000c, + 0x357c: 0x000c, 0x357d: 0x000c, 0x357e: 0x000c, 0x357f: 0x000c, + // Block 0xd6, offset 0x3580 + 0x3580: 0x000c, 0x3581: 0x000c, 0x3582: 0x000c, 0x3583: 0x000c, 0x3584: 0x000c, 0x3585: 0x000c, + 0x3586: 0x000c, + // Block 0xd7, offset 0x35c0 + 0x35e7: 0x000c, 0x35e8: 0x000c, 0x35e9: 0x000c, + 0x35f3: 0x000b, 0x35f4: 0x000b, 0x35f5: 0x000b, + 0x35f6: 0x000b, 0x35f7: 0x000b, 0x35f8: 0x000b, 0x35f9: 0x000b, 0x35fa: 0x000b, 0x35fb: 0x000c, + 0x35fc: 0x000c, 0x35fd: 0x000c, 0x35fe: 0x000c, 0x35ff: 0x000c, + // Block 0xd8, offset 0x3600 + 0x3600: 0x000c, 0x3601: 0x000c, 0x3602: 0x000c, 0x3605: 0x000c, + 0x3606: 0x000c, 0x3607: 0x000c, 0x3608: 0x000c, 0x3609: 0x000c, 0x360a: 0x000c, 0x360b: 0x000c, + 0x362a: 0x000c, 0x362b: 0x000c, 0x362c: 0x000c, 0x362d: 0x000c, + // Block 0xd9, offset 0x3640 + 0x3669: 0x000a, + 0x366a: 0x000a, + // Block 0xda, offset 0x3680 + 0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000c, 0x3683: 0x000c, 0x3684: 0x000c, 0x3685: 0x000a, + // Block 0xdb, offset 0x36c0 + 0x36c0: 0x000a, 0x36c1: 0x000a, 0x36c2: 0x000a, 0x36c3: 0x000a, 0x36c4: 0x000a, 0x36c5: 0x000a, + 0x36c6: 0x000a, 0x36c7: 0x000a, 0x36c8: 0x000a, 0x36c9: 0x000a, 0x36ca: 0x000a, 0x36cb: 0x000a, + 0x36cc: 0x000a, 0x36cd: 0x000a, 0x36ce: 0x000a, 0x36cf: 0x000a, 0x36d0: 0x000a, 0x36d1: 0x000a, + 0x36d2: 0x000a, 0x36d3: 0x000a, 0x36d4: 0x000a, 0x36d5: 0x000a, 0x36d6: 0x000a, + // Block 0xdc, offset 0x3700 + 0x371b: 0x000a, + // Block 0xdd, offset 0x3740 + 0x3755: 0x000a, + // Block 0xde, offset 0x3780 + 0x378f: 0x000a, + // Block 0xdf, offset 0x37c0 + 0x37c9: 0x000a, + // Block 0xe0, offset 0x3800 + 0x3803: 0x000a, + 0x380e: 0x0002, 0x380f: 0x0002, 0x3810: 0x0002, 0x3811: 0x0002, + 0x3812: 0x0002, 0x3813: 0x0002, 0x3814: 0x0002, 0x3815: 0x0002, 0x3816: 0x0002, 0x3817: 0x0002, + 0x3818: 0x0002, 0x3819: 0x0002, 0x381a: 0x0002, 0x381b: 0x0002, 0x381c: 0x0002, 0x381d: 0x0002, + 0x381e: 0x0002, 0x381f: 0x0002, 0x3820: 0x0002, 0x3821: 0x0002, 0x3822: 0x0002, 0x3823: 0x0002, + 0x3824: 0x0002, 0x3825: 0x0002, 0x3826: 0x0002, 0x3827: 0x0002, 0x3828: 0x0002, 0x3829: 0x0002, + 0x382a: 0x0002, 0x382b: 0x0002, 0x382c: 0x0002, 0x382d: 0x0002, 0x382e: 0x0002, 0x382f: 0x0002, + 0x3830: 0x0002, 0x3831: 0x0002, 0x3832: 0x0002, 0x3833: 0x0002, 0x3834: 0x0002, 0x3835: 0x0002, + 0x3836: 0x0002, 0x3837: 0x0002, 0x3838: 0x0002, 0x3839: 0x0002, 0x383a: 0x0002, 0x383b: 0x0002, + 0x383c: 0x0002, 0x383d: 0x0002, 0x383e: 0x0002, 0x383f: 0x0002, + // Block 0xe1, offset 0x3840 + 0x3840: 0x000c, 0x3841: 0x000c, 0x3842: 0x000c, 0x3843: 0x000c, 0x3844: 0x000c, 0x3845: 0x000c, + 0x3846: 0x000c, 0x3847: 0x000c, 0x3848: 0x000c, 0x3849: 0x000c, 0x384a: 0x000c, 0x384b: 0x000c, + 0x384c: 0x000c, 0x384d: 0x000c, 0x384e: 0x000c, 0x384f: 0x000c, 0x3850: 0x000c, 0x3851: 0x000c, + 0x3852: 0x000c, 0x3853: 0x000c, 0x3854: 0x000c, 0x3855: 0x000c, 0x3856: 0x000c, 0x3857: 0x000c, + 0x3858: 0x000c, 0x3859: 0x000c, 0x385a: 0x000c, 0x385b: 0x000c, 0x385c: 0x000c, 0x385d: 0x000c, + 0x385e: 0x000c, 0x385f: 0x000c, 0x3860: 0x000c, 0x3861: 0x000c, 0x3862: 0x000c, 0x3863: 0x000c, + 0x3864: 0x000c, 0x3865: 0x000c, 0x3866: 0x000c, 0x3867: 0x000c, 0x3868: 0x000c, 0x3869: 0x000c, + 0x386a: 0x000c, 0x386b: 0x000c, 0x386c: 0x000c, 0x386d: 0x000c, 0x386e: 0x000c, 0x386f: 0x000c, + 0x3870: 0x000c, 0x3871: 0x000c, 0x3872: 0x000c, 0x3873: 0x000c, 0x3874: 0x000c, 0x3875: 0x000c, + 0x3876: 0x000c, 0x387b: 0x000c, + 0x387c: 0x000c, 0x387d: 0x000c, 0x387e: 0x000c, 0x387f: 0x000c, + // Block 0xe2, offset 0x3880 + 0x3880: 0x000c, 0x3881: 0x000c, 0x3882: 0x000c, 0x3883: 0x000c, 0x3884: 0x000c, 0x3885: 0x000c, + 0x3886: 0x000c, 0x3887: 0x000c, 0x3888: 0x000c, 0x3889: 0x000c, 0x388a: 0x000c, 0x388b: 0x000c, + 0x388c: 0x000c, 0x388d: 0x000c, 0x388e: 0x000c, 0x388f: 0x000c, 0x3890: 0x000c, 0x3891: 0x000c, + 0x3892: 0x000c, 0x3893: 0x000c, 0x3894: 0x000c, 0x3895: 0x000c, 0x3896: 0x000c, 0x3897: 0x000c, + 0x3898: 0x000c, 0x3899: 0x000c, 0x389a: 0x000c, 0x389b: 0x000c, 0x389c: 0x000c, 0x389d: 0x000c, + 0x389e: 0x000c, 0x389f: 0x000c, 0x38a0: 0x000c, 0x38a1: 0x000c, 0x38a2: 0x000c, 0x38a3: 0x000c, + 0x38a4: 0x000c, 0x38a5: 0x000c, 0x38a6: 0x000c, 0x38a7: 0x000c, 0x38a8: 0x000c, 0x38a9: 0x000c, + 0x38aa: 0x000c, 0x38ab: 0x000c, 0x38ac: 0x000c, + 0x38b5: 0x000c, + // Block 0xe3, offset 0x38c0 + 0x38c4: 0x000c, + 0x38db: 0x000c, 0x38dc: 0x000c, 0x38dd: 0x000c, + 0x38de: 0x000c, 0x38df: 0x000c, 0x38e1: 0x000c, 0x38e2: 0x000c, 0x38e3: 0x000c, + 0x38e4: 0x000c, 0x38e5: 0x000c, 0x38e6: 0x000c, 0x38e7: 0x000c, 0x38e8: 0x000c, 0x38e9: 0x000c, + 0x38ea: 0x000c, 0x38eb: 0x000c, 0x38ec: 0x000c, 0x38ed: 0x000c, 0x38ee: 0x000c, 0x38ef: 0x000c, + // Block 0xe4, offset 0x3900 + 0x3900: 0x000c, 0x3901: 0x000c, 0x3902: 0x000c, 0x3903: 0x000c, 0x3904: 0x000c, 0x3905: 0x000c, + 0x3906: 0x000c, 0x3908: 0x000c, 0x3909: 0x000c, 0x390a: 0x000c, 0x390b: 0x000c, + 0x390c: 0x000c, 0x390d: 0x000c, 0x390e: 0x000c, 0x390f: 0x000c, 0x3910: 0x000c, 0x3911: 0x000c, + 0x3912: 0x000c, 0x3913: 0x000c, 0x3914: 0x000c, 0x3915: 0x000c, 0x3916: 0x000c, 0x3917: 0x000c, + 0x3918: 0x000c, 0x391b: 0x000c, 0x391c: 0x000c, 0x391d: 0x000c, + 0x391e: 0x000c, 0x391f: 0x000c, 0x3920: 0x000c, 0x3921: 0x000c, 0x3923: 0x000c, + 0x3924: 0x000c, 0x3926: 0x000c, 0x3927: 0x000c, 0x3928: 0x000c, 0x3929: 0x000c, + 0x392a: 0x000c, + // Block 0xe5, offset 0x3940 + 0x396e: 0x000c, + // Block 0xe6, offset 0x3980 + 0x39ac: 0x000c, 0x39ad: 0x000c, 0x39ae: 0x000c, 0x39af: 0x000c, + 0x39bf: 0x0004, + // Block 0xe7, offset 0x39c0 + 0x39ec: 0x000c, 0x39ed: 0x000c, 0x39ee: 0x000c, 0x39ef: 0x000c, + // Block 0xe8, offset 0x3a00 + 0x3a00: 0x0001, 0x3a01: 0x0001, 0x3a02: 0x0001, 0x3a03: 0x0001, 0x3a04: 0x0001, 0x3a05: 0x0001, + 0x3a06: 0x0001, 0x3a07: 0x0001, 0x3a08: 0x0001, 0x3a09: 0x0001, 0x3a0a: 0x0001, 0x3a0b: 0x0001, + 0x3a0c: 0x0001, 0x3a0d: 0x0001, 0x3a0e: 0x0001, 0x3a0f: 0x0001, 0x3a10: 0x000c, 0x3a11: 0x000c, + 0x3a12: 0x000c, 0x3a13: 0x000c, 0x3a14: 0x000c, 0x3a15: 0x000c, 0x3a16: 0x000c, 0x3a17: 0x0001, + 0x3a18: 0x0001, 0x3a19: 0x0001, 0x3a1a: 0x0001, 0x3a1b: 0x0001, 0x3a1c: 0x0001, 0x3a1d: 0x0001, + 0x3a1e: 0x0001, 0x3a1f: 0x0001, 0x3a20: 0x0001, 0x3a21: 0x0001, 0x3a22: 0x0001, 0x3a23: 0x0001, + 0x3a24: 0x0001, 0x3a25: 0x0001, 0x3a26: 0x0001, 0x3a27: 0x0001, 0x3a28: 0x0001, 0x3a29: 0x0001, + 0x3a2a: 0x0001, 0x3a2b: 0x0001, 0x3a2c: 0x0001, 0x3a2d: 0x0001, 0x3a2e: 0x0001, 0x3a2f: 0x0001, + 0x3a30: 0x0001, 0x3a31: 0x0001, 0x3a32: 0x0001, 0x3a33: 0x0001, 0x3a34: 0x0001, 0x3a35: 0x0001, + 0x3a36: 0x0001, 0x3a37: 0x0001, 0x3a38: 0x0001, 0x3a39: 0x0001, 0x3a3a: 0x0001, 0x3a3b: 0x0001, + 0x3a3c: 0x0001, 0x3a3d: 0x0001, 0x3a3e: 0x0001, 0x3a3f: 0x0001, + // Block 0xe9, offset 0x3a40 + 0x3a40: 0x0001, 0x3a41: 0x0001, 0x3a42: 0x0001, 0x3a43: 0x0001, 0x3a44: 0x000c, 0x3a45: 0x000c, + 0x3a46: 0x000c, 0x3a47: 0x000c, 0x3a48: 0x000c, 0x3a49: 0x000c, 0x3a4a: 0x000c, 0x3a4b: 0x0001, + 0x3a4c: 0x0001, 0x3a4d: 0x0001, 0x3a4e: 0x0001, 0x3a4f: 0x0001, 0x3a50: 0x0001, 0x3a51: 0x0001, + 0x3a52: 0x0001, 0x3a53: 0x0001, 0x3a54: 0x0001, 0x3a55: 0x0001, 0x3a56: 0x0001, 0x3a57: 0x0001, + 0x3a58: 0x0001, 0x3a59: 0x0001, 0x3a5a: 0x0001, 0x3a5b: 0x0001, 0x3a5c: 0x0001, 0x3a5d: 0x0001, + 0x3a5e: 0x0001, 0x3a5f: 0x0001, 0x3a60: 0x0001, 0x3a61: 0x0001, 0x3a62: 0x0001, 0x3a63: 0x0001, + 0x3a64: 0x0001, 0x3a65: 0x0001, 0x3a66: 0x0001, 0x3a67: 0x0001, 0x3a68: 0x0001, 0x3a69: 0x0001, + 0x3a6a: 0x0001, 0x3a6b: 0x0001, 0x3a6c: 0x0001, 0x3a6d: 0x0001, 0x3a6e: 0x0001, 0x3a6f: 0x0001, + 0x3a70: 0x0001, 0x3a71: 0x0001, 0x3a72: 0x0001, 0x3a73: 0x0001, 0x3a74: 0x0001, 0x3a75: 0x0001, + 0x3a76: 0x0001, 0x3a77: 0x0001, 0x3a78: 0x0001, 0x3a79: 0x0001, 0x3a7a: 0x0001, 0x3a7b: 0x0001, + 0x3a7c: 0x0001, 0x3a7d: 0x0001, 0x3a7e: 0x0001, 0x3a7f: 0x0001, + // Block 0xea, offset 0x3a80 + 0x3a80: 0x0001, 0x3a81: 0x0001, 0x3a82: 0x0001, 0x3a83: 0x0001, 0x3a84: 0x0001, 0x3a85: 0x0001, + 0x3a86: 0x0001, 0x3a87: 0x0001, 0x3a88: 0x0001, 0x3a89: 0x0001, 0x3a8a: 0x0001, 0x3a8b: 0x0001, + 0x3a8c: 0x0001, 0x3a8d: 0x0001, 0x3a8e: 0x0001, 0x3a8f: 0x0001, 0x3a90: 0x0001, 0x3a91: 0x0001, + 0x3a92: 0x0001, 0x3a93: 0x0001, 0x3a94: 0x0001, 0x3a95: 0x0001, 0x3a96: 0x0001, 0x3a97: 0x0001, + 0x3a98: 0x0001, 0x3a99: 0x0001, 0x3a9a: 0x0001, 0x3a9b: 0x0001, 0x3a9c: 0x0001, 0x3a9d: 0x0001, + 0x3a9e: 0x0001, 0x3a9f: 0x0001, 0x3aa0: 0x0001, 0x3aa1: 0x0001, 0x3aa2: 0x0001, 0x3aa3: 0x0001, + 0x3aa4: 0x0001, 0x3aa5: 0x0001, 0x3aa6: 0x0001, 0x3aa7: 0x0001, 0x3aa8: 0x0001, 0x3aa9: 0x0001, + 0x3aaa: 0x0001, 0x3aab: 0x0001, 0x3aac: 0x0001, 0x3aad: 0x0001, 0x3aae: 0x0001, 0x3aaf: 0x0001, + 0x3ab0: 0x0001, 0x3ab1: 0x000d, 0x3ab2: 0x000d, 0x3ab3: 0x000d, 0x3ab4: 0x000d, 0x3ab5: 0x000d, + 0x3ab6: 0x000d, 0x3ab7: 0x000d, 0x3ab8: 0x000d, 0x3ab9: 0x000d, 0x3aba: 0x000d, 0x3abb: 0x000d, + 0x3abc: 0x000d, 0x3abd: 0x000d, 0x3abe: 0x000d, 0x3abf: 0x000d, + // Block 0xeb, offset 0x3ac0 + 0x3ac0: 0x000d, 0x3ac1: 0x000d, 0x3ac2: 0x000d, 0x3ac3: 0x000d, 0x3ac4: 0x000d, 0x3ac5: 0x000d, + 0x3ac6: 0x000d, 0x3ac7: 0x000d, 0x3ac8: 0x000d, 0x3ac9: 0x000d, 0x3aca: 0x000d, 0x3acb: 0x000d, + 0x3acc: 0x000d, 0x3acd: 0x000d, 0x3ace: 0x000d, 0x3acf: 0x000d, 0x3ad0: 0x000d, 0x3ad1: 0x000d, + 0x3ad2: 0x000d, 0x3ad3: 0x000d, 0x3ad4: 0x000d, 0x3ad5: 0x000d, 0x3ad6: 0x000d, 0x3ad7: 0x000d, + 0x3ad8: 0x000d, 0x3ad9: 0x000d, 0x3ada: 0x000d, 0x3adb: 0x000d, 0x3adc: 0x000d, 0x3add: 0x000d, + 0x3ade: 0x000d, 0x3adf: 0x000d, 0x3ae0: 0x000d, 0x3ae1: 0x000d, 0x3ae2: 0x000d, 0x3ae3: 0x000d, + 0x3ae4: 0x000d, 0x3ae5: 0x000d, 0x3ae6: 0x000d, 0x3ae7: 0x000d, 0x3ae8: 0x000d, 0x3ae9: 0x000d, + 0x3aea: 0x000d, 0x3aeb: 0x000d, 0x3aec: 0x000d, 0x3aed: 0x000d, 0x3aee: 0x000d, 0x3aef: 0x000d, + 0x3af0: 0x000d, 0x3af1: 0x000d, 0x3af2: 0x000d, 0x3af3: 0x000d, 0x3af4: 0x000d, 0x3af5: 0x0001, + 0x3af6: 0x0001, 0x3af7: 0x0001, 0x3af8: 0x0001, 0x3af9: 0x0001, 0x3afa: 0x0001, 0x3afb: 0x0001, + 0x3afc: 0x0001, 0x3afd: 0x0001, 0x3afe: 0x0001, 0x3aff: 0x0001, + // Block 0xec, offset 0x3b00 + 0x3b00: 0x0001, 0x3b01: 0x000d, 0x3b02: 0x000d, 0x3b03: 0x000d, 0x3b04: 0x000d, 0x3b05: 0x000d, + 0x3b06: 0x000d, 0x3b07: 0x000d, 0x3b08: 0x000d, 0x3b09: 0x000d, 0x3b0a: 0x000d, 0x3b0b: 0x000d, + 0x3b0c: 0x000d, 0x3b0d: 0x000d, 0x3b0e: 0x000d, 0x3b0f: 0x000d, 0x3b10: 0x000d, 0x3b11: 0x000d, + 0x3b12: 0x000d, 0x3b13: 0x000d, 0x3b14: 0x000d, 0x3b15: 0x000d, 0x3b16: 0x000d, 0x3b17: 0x000d, + 0x3b18: 0x000d, 0x3b19: 0x000d, 0x3b1a: 0x000d, 0x3b1b: 0x000d, 0x3b1c: 0x000d, 0x3b1d: 0x000d, + 0x3b1e: 0x000d, 0x3b1f: 0x000d, 0x3b20: 0x000d, 0x3b21: 0x000d, 0x3b22: 0x000d, 0x3b23: 0x000d, + 0x3b24: 0x000d, 0x3b25: 0x000d, 0x3b26: 0x000d, 0x3b27: 0x000d, 0x3b28: 0x000d, 0x3b29: 0x000d, + 0x3b2a: 0x000d, 0x3b2b: 0x000d, 0x3b2c: 0x000d, 0x3b2d: 0x000d, 0x3b2e: 0x000d, 0x3b2f: 0x000d, + 0x3b30: 0x000d, 0x3b31: 0x000d, 0x3b32: 0x000d, 0x3b33: 0x000d, 0x3b34: 0x000d, 0x3b35: 0x000d, + 0x3b36: 0x000d, 0x3b37: 0x000d, 0x3b38: 0x000d, 0x3b39: 0x000d, 0x3b3a: 0x000d, 0x3b3b: 0x000d, + 0x3b3c: 0x000d, 0x3b3d: 0x000d, 0x3b3e: 0x0001, 0x3b3f: 0x0001, + // Block 0xed, offset 0x3b40 + 0x3b40: 0x000d, 0x3b41: 0x000d, 0x3b42: 0x000d, 0x3b43: 0x000d, 0x3b44: 0x000d, 0x3b45: 0x000d, + 0x3b46: 0x000d, 0x3b47: 0x000d, 0x3b48: 0x000d, 0x3b49: 0x000d, 0x3b4a: 0x000d, 0x3b4b: 0x000d, + 0x3b4c: 0x000d, 0x3b4d: 0x000d, 0x3b4e: 0x000d, 0x3b4f: 0x000d, 0x3b50: 0x000d, 0x3b51: 0x000d, + 0x3b52: 0x000d, 0x3b53: 0x000d, 0x3b54: 0x000d, 0x3b55: 0x000d, 0x3b56: 0x000d, 0x3b57: 0x000d, + 0x3b58: 0x000d, 0x3b59: 0x000d, 0x3b5a: 0x000d, 0x3b5b: 0x000d, 0x3b5c: 0x000d, 0x3b5d: 0x000d, + 0x3b5e: 0x000d, 0x3b5f: 0x000d, 0x3b60: 0x000d, 0x3b61: 0x000d, 0x3b62: 0x000d, 0x3b63: 0x000d, + 0x3b64: 0x000d, 0x3b65: 0x000d, 0x3b66: 0x000d, 0x3b67: 0x000d, 0x3b68: 0x000d, 0x3b69: 0x000d, + 0x3b6a: 0x000d, 0x3b6b: 0x000d, 0x3b6c: 0x000d, 0x3b6d: 0x000d, 0x3b6e: 0x000d, 0x3b6f: 0x000d, + 0x3b70: 0x000a, 0x3b71: 0x000a, 0x3b72: 0x000d, 0x3b73: 0x000d, 0x3b74: 0x000d, 0x3b75: 0x000d, + 0x3b76: 0x000d, 0x3b77: 0x000d, 0x3b78: 0x000d, 0x3b79: 0x000d, 0x3b7a: 0x000d, 0x3b7b: 0x000d, + 0x3b7c: 0x000d, 0x3b7d: 0x000d, 0x3b7e: 0x000d, 0x3b7f: 0x000d, + // Block 0xee, offset 0x3b80 + 0x3b80: 0x000a, 0x3b81: 0x000a, 0x3b82: 0x000a, 0x3b83: 0x000a, 0x3b84: 0x000a, 0x3b85: 0x000a, + 0x3b86: 0x000a, 0x3b87: 0x000a, 0x3b88: 0x000a, 0x3b89: 0x000a, 0x3b8a: 0x000a, 0x3b8b: 0x000a, + 0x3b8c: 0x000a, 0x3b8d: 0x000a, 0x3b8e: 0x000a, 0x3b8f: 0x000a, 0x3b90: 0x000a, 0x3b91: 0x000a, + 0x3b92: 0x000a, 0x3b93: 0x000a, 0x3b94: 0x000a, 0x3b95: 0x000a, 0x3b96: 0x000a, 0x3b97: 0x000a, + 0x3b98: 0x000a, 0x3b99: 0x000a, 0x3b9a: 0x000a, 0x3b9b: 0x000a, 0x3b9c: 0x000a, 0x3b9d: 0x000a, + 0x3b9e: 0x000a, 0x3b9f: 0x000a, 0x3ba0: 0x000a, 0x3ba1: 0x000a, 0x3ba2: 0x000a, 0x3ba3: 0x000a, + 0x3ba4: 0x000a, 0x3ba5: 0x000a, 0x3ba6: 0x000a, 0x3ba7: 0x000a, 0x3ba8: 0x000a, 0x3ba9: 0x000a, + 0x3baa: 0x000a, 0x3bab: 0x000a, + 0x3bb0: 0x000a, 0x3bb1: 0x000a, 0x3bb2: 0x000a, 0x3bb3: 0x000a, 0x3bb4: 0x000a, 0x3bb5: 0x000a, + 0x3bb6: 0x000a, 0x3bb7: 0x000a, 0x3bb8: 0x000a, 0x3bb9: 0x000a, 0x3bba: 0x000a, 0x3bbb: 0x000a, + 0x3bbc: 0x000a, 0x3bbd: 0x000a, 0x3bbe: 0x000a, 0x3bbf: 0x000a, + // Block 0xef, offset 0x3bc0 + 0x3bc0: 0x000a, 0x3bc1: 0x000a, 0x3bc2: 0x000a, 0x3bc3: 0x000a, 0x3bc4: 0x000a, 0x3bc5: 0x000a, + 0x3bc6: 0x000a, 0x3bc7: 0x000a, 0x3bc8: 0x000a, 0x3bc9: 0x000a, 0x3bca: 0x000a, 0x3bcb: 0x000a, + 0x3bcc: 0x000a, 0x3bcd: 0x000a, 0x3bce: 0x000a, 0x3bcf: 0x000a, 0x3bd0: 0x000a, 0x3bd1: 0x000a, + 0x3bd2: 0x000a, 0x3bd3: 0x000a, + 0x3be0: 0x000a, 0x3be1: 0x000a, 0x3be2: 0x000a, 0x3be3: 0x000a, + 0x3be4: 0x000a, 0x3be5: 0x000a, 0x3be6: 0x000a, 0x3be7: 0x000a, 0x3be8: 0x000a, 0x3be9: 0x000a, + 0x3bea: 0x000a, 0x3beb: 0x000a, 0x3bec: 0x000a, 0x3bed: 0x000a, 0x3bee: 0x000a, + 0x3bf1: 0x000a, 0x3bf2: 0x000a, 0x3bf3: 0x000a, 0x3bf4: 0x000a, 0x3bf5: 0x000a, + 0x3bf6: 0x000a, 0x3bf7: 0x000a, 0x3bf8: 0x000a, 0x3bf9: 0x000a, 0x3bfa: 0x000a, 0x3bfb: 0x000a, + 0x3bfc: 0x000a, 0x3bfd: 0x000a, 0x3bfe: 0x000a, 0x3bff: 0x000a, + // Block 0xf0, offset 0x3c00 + 0x3c01: 0x000a, 0x3c02: 0x000a, 0x3c03: 0x000a, 0x3c04: 0x000a, 0x3c05: 0x000a, + 0x3c06: 0x000a, 0x3c07: 0x000a, 0x3c08: 0x000a, 0x3c09: 0x000a, 0x3c0a: 0x000a, 0x3c0b: 0x000a, + 0x3c0c: 0x000a, 0x3c0d: 0x000a, 0x3c0e: 0x000a, 0x3c0f: 0x000a, 0x3c11: 0x000a, + 0x3c12: 0x000a, 0x3c13: 0x000a, 0x3c14: 0x000a, 0x3c15: 0x000a, 0x3c16: 0x000a, 0x3c17: 0x000a, + 0x3c18: 0x000a, 0x3c19: 0x000a, 0x3c1a: 0x000a, 0x3c1b: 0x000a, 0x3c1c: 0x000a, 0x3c1d: 0x000a, + 0x3c1e: 0x000a, 0x3c1f: 0x000a, 0x3c20: 0x000a, 0x3c21: 0x000a, 0x3c22: 0x000a, 0x3c23: 0x000a, + 0x3c24: 0x000a, 0x3c25: 0x000a, 0x3c26: 0x000a, 0x3c27: 0x000a, 0x3c28: 0x000a, 0x3c29: 0x000a, + 0x3c2a: 0x000a, 0x3c2b: 0x000a, 0x3c2c: 0x000a, 0x3c2d: 0x000a, 0x3c2e: 0x000a, 0x3c2f: 0x000a, + 0x3c30: 0x000a, 0x3c31: 0x000a, 0x3c32: 0x000a, 0x3c33: 0x000a, 0x3c34: 0x000a, 0x3c35: 0x000a, + // Block 0xf1, offset 0x3c40 + 0x3c40: 0x0002, 0x3c41: 0x0002, 0x3c42: 0x0002, 0x3c43: 0x0002, 0x3c44: 0x0002, 0x3c45: 0x0002, + 0x3c46: 0x0002, 0x3c47: 0x0002, 0x3c48: 0x0002, 0x3c49: 0x0002, 0x3c4a: 0x0002, 0x3c4b: 0x000a, + 0x3c4c: 0x000a, 0x3c4d: 0x000a, 0x3c4e: 0x000a, 0x3c4f: 0x000a, + 0x3c6f: 0x000a, + // Block 0xf2, offset 0x3c80 + 0x3caa: 0x000a, 0x3cab: 0x000a, 0x3cac: 0x000a, 0x3cad: 0x000a, 0x3cae: 0x000a, 0x3caf: 0x000a, + // Block 0xf3, offset 0x3cc0 + 0x3ced: 0x000a, + // Block 0xf4, offset 0x3d00 + 0x3d20: 0x000a, 0x3d21: 0x000a, 0x3d22: 0x000a, 0x3d23: 0x000a, + 0x3d24: 0x000a, 0x3d25: 0x000a, + // Block 0xf5, offset 0x3d40 + 0x3d40: 0x000a, 0x3d41: 0x000a, 0x3d42: 0x000a, 0x3d43: 0x000a, 0x3d44: 0x000a, 0x3d45: 0x000a, + 0x3d46: 0x000a, 0x3d47: 0x000a, 0x3d48: 0x000a, 0x3d49: 0x000a, 0x3d4a: 0x000a, 0x3d4b: 0x000a, + 0x3d4c: 0x000a, 0x3d4d: 0x000a, 0x3d4e: 0x000a, 0x3d4f: 0x000a, 0x3d50: 0x000a, 0x3d51: 0x000a, + 0x3d52: 0x000a, 0x3d53: 0x000a, 0x3d54: 0x000a, 0x3d55: 0x000a, 0x3d56: 0x000a, 0x3d57: 0x000a, + 0x3d5c: 0x000a, 0x3d5d: 0x000a, + 0x3d5e: 0x000a, 0x3d5f: 0x000a, 0x3d60: 0x000a, 0x3d61: 0x000a, 0x3d62: 0x000a, 0x3d63: 0x000a, + 0x3d64: 0x000a, 0x3d65: 0x000a, 0x3d66: 0x000a, 0x3d67: 0x000a, 0x3d68: 0x000a, 0x3d69: 0x000a, + 0x3d6a: 0x000a, 0x3d6b: 0x000a, 0x3d6c: 0x000a, + 0x3d70: 0x000a, 0x3d71: 0x000a, 0x3d72: 0x000a, 0x3d73: 0x000a, 0x3d74: 0x000a, 0x3d75: 0x000a, + 0x3d76: 0x000a, 0x3d77: 0x000a, 0x3d78: 0x000a, 0x3d79: 0x000a, 0x3d7a: 0x000a, 0x3d7b: 0x000a, + 0x3d7c: 0x000a, + // Block 0xf6, offset 0x3d80 + 0x3d80: 0x000a, 0x3d81: 0x000a, 0x3d82: 0x000a, 0x3d83: 0x000a, 0x3d84: 0x000a, 0x3d85: 0x000a, + 0x3d86: 0x000a, 0x3d87: 0x000a, 0x3d88: 0x000a, 0x3d89: 0x000a, 0x3d8a: 0x000a, 0x3d8b: 0x000a, + 0x3d8c: 0x000a, 0x3d8d: 0x000a, 0x3d8e: 0x000a, 0x3d8f: 0x000a, 0x3d90: 0x000a, 0x3d91: 0x000a, + 0x3d92: 0x000a, 0x3d93: 0x000a, 0x3d94: 0x000a, 0x3d95: 0x000a, 0x3d96: 0x000a, 0x3d97: 0x000a, + 0x3d98: 0x000a, 0x3d99: 0x000a, 0x3d9a: 0x000a, 0x3d9b: 0x000a, 0x3d9c: 0x000a, 0x3d9d: 0x000a, + 0x3d9e: 0x000a, 0x3d9f: 0x000a, 0x3da0: 0x000a, 0x3da1: 0x000a, 0x3da2: 0x000a, 0x3da3: 0x000a, + 0x3da4: 0x000a, 0x3da5: 0x000a, 0x3da6: 0x000a, 0x3da7: 0x000a, 0x3da8: 0x000a, 0x3da9: 0x000a, + 0x3daa: 0x000a, 0x3dab: 0x000a, 0x3dac: 0x000a, 0x3dad: 0x000a, 0x3dae: 0x000a, 0x3daf: 0x000a, + 0x3db0: 0x000a, 0x3db1: 0x000a, 0x3db2: 0x000a, 0x3db3: 0x000a, 0x3db4: 0x000a, 0x3db5: 0x000a, + 0x3db6: 0x000a, 0x3dbb: 0x000a, + 0x3dbc: 0x000a, 0x3dbd: 0x000a, 0x3dbe: 0x000a, 0x3dbf: 0x000a, + // Block 0xf7, offset 0x3dc0 + 0x3dc0: 0x000a, 0x3dc1: 0x000a, 0x3dc2: 0x000a, 0x3dc3: 0x000a, 0x3dc4: 0x000a, 0x3dc5: 0x000a, + 0x3dc6: 0x000a, 0x3dc7: 0x000a, 0x3dc8: 0x000a, 0x3dc9: 0x000a, 0x3dca: 0x000a, 0x3dcb: 0x000a, + 0x3dcc: 0x000a, 0x3dcd: 0x000a, 0x3dce: 0x000a, 0x3dcf: 0x000a, 0x3dd0: 0x000a, 0x3dd1: 0x000a, + 0x3dd2: 0x000a, 0x3dd3: 0x000a, 0x3dd4: 0x000a, 0x3dd5: 0x000a, 0x3dd6: 0x000a, 0x3dd7: 0x000a, + 0x3dd8: 0x000a, 0x3dd9: 0x000a, + 0x3de0: 0x000a, 0x3de1: 0x000a, 0x3de2: 0x000a, 0x3de3: 0x000a, + 0x3de4: 0x000a, 0x3de5: 0x000a, 0x3de6: 0x000a, 0x3de7: 0x000a, 0x3de8: 0x000a, 0x3de9: 0x000a, + 0x3dea: 0x000a, 0x3deb: 0x000a, + 0x3df0: 0x000a, + // Block 0xf8, offset 0x3e00 + 0x3e00: 0x000a, 0x3e01: 0x000a, 0x3e02: 0x000a, 0x3e03: 0x000a, 0x3e04: 0x000a, 0x3e05: 0x000a, + 0x3e06: 0x000a, 0x3e07: 0x000a, 0x3e08: 0x000a, 0x3e09: 0x000a, 0x3e0a: 0x000a, 0x3e0b: 0x000a, + 0x3e10: 0x000a, 0x3e11: 0x000a, + 0x3e12: 0x000a, 0x3e13: 0x000a, 0x3e14: 0x000a, 0x3e15: 0x000a, 0x3e16: 0x000a, 0x3e17: 0x000a, + 0x3e18: 0x000a, 0x3e19: 0x000a, 0x3e1a: 0x000a, 0x3e1b: 0x000a, 0x3e1c: 0x000a, 0x3e1d: 0x000a, + 0x3e1e: 0x000a, 0x3e1f: 0x000a, 0x3e20: 0x000a, 0x3e21: 0x000a, 0x3e22: 0x000a, 0x3e23: 0x000a, + 0x3e24: 0x000a, 0x3e25: 0x000a, 0x3e26: 0x000a, 0x3e27: 0x000a, 0x3e28: 0x000a, 0x3e29: 0x000a, + 0x3e2a: 0x000a, 0x3e2b: 0x000a, 0x3e2c: 0x000a, 0x3e2d: 0x000a, 0x3e2e: 0x000a, 0x3e2f: 0x000a, + 0x3e30: 0x000a, 0x3e31: 0x000a, 0x3e32: 0x000a, 0x3e33: 0x000a, 0x3e34: 0x000a, 0x3e35: 0x000a, + 0x3e36: 0x000a, 0x3e37: 0x000a, 0x3e38: 0x000a, 0x3e39: 0x000a, 0x3e3a: 0x000a, 0x3e3b: 0x000a, + 0x3e3c: 0x000a, 0x3e3d: 0x000a, 0x3e3e: 0x000a, 0x3e3f: 0x000a, + // Block 0xf9, offset 0x3e40 + 0x3e40: 0x000a, 0x3e41: 0x000a, 0x3e42: 0x000a, 0x3e43: 0x000a, 0x3e44: 0x000a, 0x3e45: 0x000a, + 0x3e46: 0x000a, 0x3e47: 0x000a, + 0x3e50: 0x000a, 0x3e51: 0x000a, + 0x3e52: 0x000a, 0x3e53: 0x000a, 0x3e54: 0x000a, 0x3e55: 0x000a, 0x3e56: 0x000a, 0x3e57: 0x000a, + 0x3e58: 0x000a, 0x3e59: 0x000a, + 0x3e60: 0x000a, 0x3e61: 0x000a, 0x3e62: 0x000a, 0x3e63: 0x000a, + 0x3e64: 0x000a, 0x3e65: 0x000a, 0x3e66: 0x000a, 0x3e67: 0x000a, 0x3e68: 0x000a, 0x3e69: 0x000a, + 0x3e6a: 0x000a, 0x3e6b: 0x000a, 0x3e6c: 0x000a, 0x3e6d: 0x000a, 0x3e6e: 0x000a, 0x3e6f: 0x000a, + 0x3e70: 0x000a, 0x3e71: 0x000a, 0x3e72: 0x000a, 0x3e73: 0x000a, 0x3e74: 0x000a, 0x3e75: 0x000a, + 0x3e76: 0x000a, 0x3e77: 0x000a, 0x3e78: 0x000a, 0x3e79: 0x000a, 0x3e7a: 0x000a, 0x3e7b: 0x000a, + 0x3e7c: 0x000a, 0x3e7d: 0x000a, 0x3e7e: 0x000a, 0x3e7f: 0x000a, + // Block 0xfa, offset 0x3e80 + 0x3e80: 0x000a, 0x3e81: 0x000a, 0x3e82: 0x000a, 0x3e83: 0x000a, 0x3e84: 0x000a, 0x3e85: 0x000a, + 0x3e86: 0x000a, 0x3e87: 0x000a, + 0x3e90: 0x000a, 0x3e91: 0x000a, + 0x3e92: 0x000a, 0x3e93: 0x000a, 0x3e94: 0x000a, 0x3e95: 0x000a, 0x3e96: 0x000a, 0x3e97: 0x000a, + 0x3e98: 0x000a, 0x3e99: 0x000a, 0x3e9a: 0x000a, 0x3e9b: 0x000a, 0x3e9c: 0x000a, 0x3e9d: 0x000a, + 0x3e9e: 0x000a, 0x3e9f: 0x000a, 0x3ea0: 0x000a, 0x3ea1: 0x000a, 0x3ea2: 0x000a, 0x3ea3: 0x000a, + 0x3ea4: 0x000a, 0x3ea5: 0x000a, 0x3ea6: 0x000a, 0x3ea7: 0x000a, 0x3ea8: 0x000a, 0x3ea9: 0x000a, + 0x3eaa: 0x000a, 0x3eab: 0x000a, 0x3eac: 0x000a, 0x3ead: 0x000a, + 0x3eb0: 0x000a, 0x3eb1: 0x000a, + // Block 0xfb, offset 0x3ec0 + 0x3ec0: 0x000a, 0x3ec1: 0x000a, 0x3ec2: 0x000a, 0x3ec3: 0x000a, 0x3ec4: 0x000a, 0x3ec5: 0x000a, + 0x3ec6: 0x000a, 0x3ec7: 0x000a, 0x3ec8: 0x000a, 0x3ec9: 0x000a, 0x3eca: 0x000a, 0x3ecb: 0x000a, + 0x3ecc: 0x000a, 0x3ecd: 0x000a, 0x3ece: 0x000a, 0x3ecf: 0x000a, 0x3ed0: 0x000a, 0x3ed1: 0x000a, + 0x3ed2: 0x000a, 0x3ed3: 0x000a, + 0x3ee0: 0x000a, 0x3ee1: 0x000a, 0x3ee2: 0x000a, 0x3ee3: 0x000a, + 0x3ee4: 0x000a, 0x3ee5: 0x000a, 0x3ee6: 0x000a, 0x3ee7: 0x000a, 0x3ee8: 0x000a, 0x3ee9: 0x000a, + 0x3eea: 0x000a, 0x3eeb: 0x000a, 0x3eec: 0x000a, 0x3eed: 0x000a, + 0x3ef0: 0x000a, 0x3ef1: 0x000a, 0x3ef2: 0x000a, 0x3ef3: 0x000a, 0x3ef4: 0x000a, 0x3ef5: 0x000a, + 0x3ef6: 0x000a, 0x3ef7: 0x000a, 0x3ef8: 0x000a, 0x3ef9: 0x000a, 0x3efa: 0x000a, 0x3efb: 0x000a, + 0x3efc: 0x000a, + // Block 0xfc, offset 0x3f00 + 0x3f00: 0x000a, 0x3f01: 0x000a, 0x3f02: 0x000a, 0x3f03: 0x000a, 0x3f04: 0x000a, 0x3f05: 0x000a, + 0x3f06: 0x000a, 0x3f07: 0x000a, 0x3f08: 0x000a, + 0x3f10: 0x000a, 0x3f11: 0x000a, + 0x3f12: 0x000a, 0x3f13: 0x000a, 0x3f14: 0x000a, 0x3f15: 0x000a, 0x3f16: 0x000a, 0x3f17: 0x000a, + 0x3f18: 0x000a, 0x3f19: 0x000a, 0x3f1a: 0x000a, 0x3f1b: 0x000a, 0x3f1c: 0x000a, 0x3f1d: 0x000a, + 0x3f1e: 0x000a, 0x3f1f: 0x000a, 0x3f20: 0x000a, 0x3f21: 0x000a, 0x3f22: 0x000a, 0x3f23: 0x000a, + 0x3f24: 0x000a, 0x3f25: 0x000a, 0x3f26: 0x000a, 0x3f27: 0x000a, 0x3f28: 0x000a, 0x3f29: 0x000a, + 0x3f2a: 0x000a, 0x3f2b: 0x000a, 0x3f2c: 0x000a, 0x3f2d: 0x000a, 0x3f2e: 0x000a, 0x3f2f: 0x000a, + 0x3f30: 0x000a, 0x3f31: 0x000a, 0x3f32: 0x000a, 0x3f33: 0x000a, 0x3f34: 0x000a, 0x3f35: 0x000a, + 0x3f36: 0x000a, 0x3f37: 0x000a, 0x3f38: 0x000a, 0x3f39: 0x000a, 0x3f3a: 0x000a, 0x3f3b: 0x000a, + 0x3f3c: 0x000a, 0x3f3d: 0x000a, 0x3f3f: 0x000a, + // Block 0xfd, offset 0x3f40 + 0x3f40: 0x000a, 0x3f41: 0x000a, 0x3f42: 0x000a, 0x3f43: 0x000a, 0x3f44: 0x000a, 0x3f45: 0x000a, + 0x3f4e: 0x000a, 0x3f4f: 0x000a, 0x3f50: 0x000a, 0x3f51: 0x000a, + 0x3f52: 0x000a, 0x3f53: 0x000a, 0x3f54: 0x000a, 0x3f55: 0x000a, 0x3f56: 0x000a, 0x3f57: 0x000a, + 0x3f58: 0x000a, 0x3f59: 0x000a, 0x3f5a: 0x000a, 0x3f5b: 0x000a, + 0x3f60: 0x000a, 0x3f61: 0x000a, 0x3f62: 0x000a, 0x3f63: 0x000a, + 0x3f64: 0x000a, 0x3f65: 0x000a, 0x3f66: 0x000a, 0x3f67: 0x000a, 0x3f68: 0x000a, + 0x3f70: 0x000a, 0x3f71: 0x000a, 0x3f72: 0x000a, 0x3f73: 0x000a, 0x3f74: 0x000a, 0x3f75: 0x000a, + 0x3f76: 0x000a, 0x3f77: 0x000a, 0x3f78: 0x000a, + // Block 0xfe, offset 0x3f80 + 0x3f80: 0x000a, 0x3f81: 0x000a, 0x3f82: 0x000a, 0x3f83: 0x000a, 0x3f84: 0x000a, 0x3f85: 0x000a, + 0x3f86: 0x000a, 0x3f87: 0x000a, 0x3f88: 0x000a, 0x3f89: 0x000a, 0x3f8a: 0x000a, 0x3f8b: 0x000a, + 0x3f8c: 0x000a, 0x3f8d: 0x000a, 0x3f8e: 0x000a, 0x3f8f: 0x000a, 0x3f90: 0x000a, 0x3f91: 0x000a, + 0x3f92: 0x000a, 0x3f94: 0x000a, 0x3f95: 0x000a, 0x3f96: 0x000a, 0x3f97: 0x000a, + 0x3f98: 0x000a, 0x3f99: 0x000a, 0x3f9a: 0x000a, 0x3f9b: 0x000a, 0x3f9c: 0x000a, 0x3f9d: 0x000a, + 0x3f9e: 0x000a, 0x3f9f: 0x000a, 0x3fa0: 0x000a, 0x3fa1: 0x000a, 0x3fa2: 0x000a, 0x3fa3: 0x000a, + 0x3fa4: 0x000a, 0x3fa5: 0x000a, 0x3fa6: 0x000a, 0x3fa7: 0x000a, 0x3fa8: 0x000a, 0x3fa9: 0x000a, + 0x3faa: 0x000a, 0x3fab: 0x000a, 0x3fac: 0x000a, 0x3fad: 0x000a, 0x3fae: 0x000a, 0x3faf: 0x000a, + 0x3fb0: 0x000a, 0x3fb1: 0x000a, 0x3fb2: 0x000a, 0x3fb3: 0x000a, 0x3fb4: 0x000a, 0x3fb5: 0x000a, + 0x3fb6: 0x000a, 0x3fb7: 0x000a, 0x3fb8: 0x000a, 0x3fb9: 0x000a, 0x3fba: 0x000a, 0x3fbb: 0x000a, + 0x3fbc: 0x000a, 0x3fbd: 0x000a, 0x3fbe: 0x000a, 0x3fbf: 0x000a, + // Block 0xff, offset 0x3fc0 + 0x3fc0: 0x000a, 0x3fc1: 0x000a, 0x3fc2: 0x000a, 0x3fc3: 0x000a, 0x3fc4: 0x000a, 0x3fc5: 0x000a, + 0x3fc6: 0x000a, 0x3fc7: 0x000a, 0x3fc8: 0x000a, 0x3fc9: 0x000a, 0x3fca: 0x000a, + 0x3ff0: 0x0002, 0x3ff1: 0x0002, 0x3ff2: 0x0002, 0x3ff3: 0x0002, 0x3ff4: 0x0002, 0x3ff5: 0x0002, + 0x3ff6: 0x0002, 0x3ff7: 0x0002, 0x3ff8: 0x0002, 0x3ff9: 0x0002, + // Block 0x100, offset 0x4000 + 0x403e: 0x000b, 0x403f: 0x000b, + // Block 0x101, offset 0x4040 + 0x4040: 0x000b, 0x4041: 0x000b, 0x4042: 0x000b, 0x4043: 0x000b, 0x4044: 0x000b, 0x4045: 0x000b, + 0x4046: 0x000b, 0x4047: 0x000b, 0x4048: 0x000b, 0x4049: 0x000b, 0x404a: 0x000b, 0x404b: 0x000b, + 0x404c: 0x000b, 0x404d: 0x000b, 0x404e: 0x000b, 0x404f: 0x000b, 0x4050: 0x000b, 0x4051: 0x000b, + 0x4052: 0x000b, 0x4053: 0x000b, 0x4054: 0x000b, 0x4055: 0x000b, 0x4056: 0x000b, 0x4057: 0x000b, + 0x4058: 0x000b, 0x4059: 0x000b, 0x405a: 0x000b, 0x405b: 0x000b, 0x405c: 0x000b, 0x405d: 0x000b, + 0x405e: 0x000b, 0x405f: 0x000b, 0x4060: 0x000b, 0x4061: 0x000b, 0x4062: 0x000b, 0x4063: 0x000b, + 0x4064: 0x000b, 0x4065: 0x000b, 0x4066: 0x000b, 0x4067: 0x000b, 0x4068: 0x000b, 0x4069: 0x000b, + 0x406a: 0x000b, 0x406b: 0x000b, 0x406c: 0x000b, 0x406d: 0x000b, 0x406e: 0x000b, 0x406f: 0x000b, + 0x4070: 0x000b, 0x4071: 0x000b, 0x4072: 0x000b, 0x4073: 0x000b, 0x4074: 0x000b, 0x4075: 0x000b, + 0x4076: 0x000b, 0x4077: 0x000b, 0x4078: 0x000b, 0x4079: 0x000b, 0x407a: 0x000b, 0x407b: 0x000b, + 0x407c: 0x000b, 0x407d: 0x000b, 0x407e: 0x000b, 0x407f: 0x000b, + // Block 0x102, offset 0x4080 + 0x4080: 0x000c, 0x4081: 0x000c, 0x4082: 0x000c, 0x4083: 0x000c, 0x4084: 0x000c, 0x4085: 0x000c, + 0x4086: 0x000c, 0x4087: 0x000c, 0x4088: 0x000c, 0x4089: 0x000c, 0x408a: 0x000c, 0x408b: 0x000c, + 0x408c: 0x000c, 0x408d: 0x000c, 0x408e: 0x000c, 0x408f: 0x000c, 0x4090: 0x000c, 0x4091: 0x000c, + 0x4092: 0x000c, 0x4093: 0x000c, 0x4094: 0x000c, 0x4095: 0x000c, 0x4096: 0x000c, 0x4097: 0x000c, + 0x4098: 0x000c, 0x4099: 0x000c, 0x409a: 0x000c, 0x409b: 0x000c, 0x409c: 0x000c, 0x409d: 0x000c, + 0x409e: 0x000c, 0x409f: 0x000c, 0x40a0: 0x000c, 0x40a1: 0x000c, 0x40a2: 0x000c, 0x40a3: 0x000c, + 0x40a4: 0x000c, 0x40a5: 0x000c, 0x40a6: 0x000c, 0x40a7: 0x000c, 0x40a8: 0x000c, 0x40a9: 0x000c, + 0x40aa: 0x000c, 0x40ab: 0x000c, 0x40ac: 0x000c, 0x40ad: 0x000c, 0x40ae: 0x000c, 0x40af: 0x000c, + 0x40b0: 0x000b, 0x40b1: 0x000b, 0x40b2: 0x000b, 0x40b3: 0x000b, 0x40b4: 0x000b, 0x40b5: 0x000b, + 0x40b6: 0x000b, 0x40b7: 0x000b, 0x40b8: 0x000b, 0x40b9: 0x000b, 0x40ba: 0x000b, 0x40bb: 0x000b, + 0x40bc: 0x000b, 0x40bd: 0x000b, 0x40be: 0x000b, 0x40bf: 0x000b, +} + +// bidiIndex: 26 blocks, 1664 entries, 3328 bytes +// Block 0 is the zero block. +var bidiIndex = [1664]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x01, 0xc3: 0x02, + 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08, + 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b, + 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, + 0xea: 0x07, 0xef: 0x08, + 0xf0: 0x13, 0xf1: 0x14, 0xf2: 0x14, 0xf3: 0x16, 0xf4: 0x17, + // Block 0x4, offset 0x100 + 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b, + 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22, + 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x136: 0x28, 0x137: 0x29, + 0x138: 0x2a, 0x139: 0x2b, 0x13a: 0x2c, 0x13b: 0x2d, 0x13c: 0x2e, 0x13d: 0x2f, 0x13e: 0x30, 0x13f: 0x31, + // Block 0x5, offset 0x140 + 0x140: 0x32, 0x141: 0x33, 0x142: 0x34, + 0x14d: 0x35, 0x14e: 0x36, + 0x150: 0x37, + 0x15a: 0x38, 0x15c: 0x39, 0x15d: 0x3a, 0x15e: 0x3b, 0x15f: 0x3c, + 0x160: 0x3d, 0x162: 0x3e, 0x164: 0x3f, 0x165: 0x40, 0x167: 0x41, + 0x168: 0x42, 0x169: 0x43, 0x16a: 0x44, 0x16b: 0x45, 0x16c: 0x46, 0x16d: 0x47, 0x16e: 0x48, 0x16f: 0x49, + 0x170: 0x4a, 0x173: 0x4b, 0x177: 0x05, + 0x17e: 0x4c, 0x17f: 0x4d, + // Block 0x6, offset 0x180 + 0x180: 0x4e, 0x181: 0x4f, 0x182: 0x50, 0x183: 0x51, 0x184: 0x52, 0x185: 0x53, 0x186: 0x54, 0x187: 0x55, + 0x188: 0x56, 0x189: 0x55, 0x18a: 0x55, 0x18b: 0x55, 0x18c: 0x57, 0x18d: 0x58, 0x18e: 0x59, 0x18f: 0x55, + 0x190: 0x5a, 0x191: 0x5b, 0x192: 0x5c, 0x193: 0x5d, 0x194: 0x55, 0x195: 0x55, 0x196: 0x55, 0x197: 0x55, + 0x198: 0x55, 0x199: 0x55, 0x19a: 0x5e, 0x19b: 0x55, 0x19c: 0x55, 0x19d: 0x5f, 0x19e: 0x55, 0x19f: 0x60, + 0x1a4: 0x55, 0x1a5: 0x55, 0x1a6: 0x61, 0x1a7: 0x62, + 0x1a8: 0x55, 0x1a9: 0x55, 0x1aa: 0x55, 0x1ab: 0x55, 0x1ac: 0x55, 0x1ad: 0x63, 0x1ae: 0x64, 0x1af: 0x55, + 0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67, + 0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x55, 0x1bd: 0x55, 0x1be: 0x55, 0x1bf: 0x6c, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70, + 0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76, + // Block 0x8, offset 0x200 + 0x237: 0x55, + // Block 0x9, offset 0x240 + 0x252: 0x77, 0x253: 0x78, + 0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e, + 0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85, + 0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26d: 0x8a, 0x26f: 0x8b, + // Block 0xa, offset 0x280 + 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x0e, 0x2af: 0x0e, + 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8e, 0x2b5: 0x8f, 0x2b6: 0x0e, 0x2b7: 0x90, + 0x2b8: 0x91, 0x2b9: 0x92, 0x2ba: 0x0e, 0x2bb: 0x93, 0x2bc: 0x94, 0x2bd: 0x95, 0x2bf: 0x96, + // Block 0xb, offset 0x2c0 + 0x2c4: 0x97, 0x2c5: 0x55, 0x2c6: 0x98, 0x2c7: 0x99, + 0x2cb: 0x9a, 0x2cd: 0x9b, + 0x2e0: 0x9c, 0x2e1: 0x9c, 0x2e2: 0x9c, 0x2e3: 0x9c, 0x2e4: 0x9d, 0x2e5: 0x9c, 0x2e6: 0x9c, 0x2e7: 0x9c, + 0x2e8: 0x9e, 0x2e9: 0x9c, 0x2ea: 0x9c, 0x2eb: 0x9f, 0x2ec: 0xa0, 0x2ed: 0x9c, 0x2ee: 0x9c, 0x2ef: 0x9c, + 0x2f0: 0x9c, 0x2f1: 0x9c, 0x2f2: 0x9c, 0x2f3: 0x9c, 0x2f4: 0xa1, 0x2f5: 0x9c, 0x2f6: 0x9c, 0x2f7: 0x9c, + 0x2f8: 0x9c, 0x2f9: 0xa2, 0x2fa: 0xa3, 0x2fb: 0xa4, 0x2fc: 0xa5, 0x2fd: 0xa6, 0x2fe: 0xa7, 0x2ff: 0x9c, + // Block 0xc, offset 0x300 + 0x300: 0xa8, 0x301: 0xa9, 0x302: 0xaa, 0x303: 0x21, 0x304: 0xab, 0x305: 0xac, 0x306: 0xad, 0x307: 0xae, + 0x308: 0xaf, 0x309: 0x28, 0x30b: 0xb0, 0x30c: 0x26, 0x30d: 0xb1, + 0x310: 0xb2, 0x311: 0xb3, 0x312: 0xb4, 0x313: 0xb5, 0x316: 0xb6, 0x317: 0xb7, + 0x318: 0xb8, 0x319: 0xb9, 0x31a: 0xba, 0x31c: 0xbb, + 0x320: 0xbc, 0x324: 0xbd, 0x325: 0xbe, 0x327: 0xbf, + 0x328: 0xc0, 0x329: 0xc1, 0x32a: 0xc2, + 0x330: 0xc3, 0x332: 0xc4, 0x334: 0xc5, 0x335: 0xc6, 0x336: 0xc7, + 0x33b: 0xc8, 0x33c: 0xc9, 0x33d: 0xca, 0x33f: 0xcb, + // Block 0xd, offset 0x340 + 0x351: 0xcc, + // Block 0xe, offset 0x380 + 0x3ab: 0xcd, 0x3ac: 0xce, + 0x3bd: 0xcf, 0x3be: 0xd0, 0x3bf: 0xd1, + // Block 0xf, offset 0x3c0 + 0x3f2: 0xd2, + // Block 0x10, offset 0x400 + 0x43c: 0xd3, 0x43d: 0xd4, + // Block 0x11, offset 0x440 + 0x445: 0xd5, 0x446: 0xd6, 0x447: 0xd7, + 0x448: 0x55, 0x449: 0xd8, 0x44c: 0x55, 0x44d: 0xd9, + 0x45b: 0xda, 0x45c: 0xdb, 0x45d: 0xdc, 0x45e: 0xdd, 0x45f: 0xde, + 0x468: 0xdf, 0x469: 0xe0, 0x46a: 0xe1, + // Block 0x12, offset 0x480 + 0x480: 0xe2, 0x482: 0xcf, 0x484: 0xce, + 0x48a: 0xe3, 0x48b: 0xe4, + 0x493: 0xe5, + 0x4a0: 0x9c, 0x4a1: 0x9c, 0x4a2: 0x9c, 0x4a3: 0xe6, 0x4a4: 0x9c, 0x4a5: 0xe7, 0x4a6: 0x9c, 0x4a7: 0x9c, + 0x4a8: 0x9c, 0x4a9: 0x9c, 0x4aa: 0x9c, 0x4ab: 0x9c, 0x4ac: 0x9c, 0x4ad: 0x9c, 0x4ae: 0x9c, 0x4af: 0x9c, + 0x4b0: 0x9c, 0x4b1: 0xe8, 0x4b2: 0xe9, 0x4b3: 0x9c, 0x4b4: 0xea, 0x4b5: 0x9c, 0x4b6: 0x9c, 0x4b7: 0x9c, + 0x4b8: 0x0e, 0x4b9: 0x0e, 0x4ba: 0x0e, 0x4bb: 0xeb, 0x4bc: 0x9c, 0x4bd: 0x9c, 0x4be: 0x9c, 0x4bf: 0x9c, + // Block 0x13, offset 0x4c0 + 0x4c0: 0xec, 0x4c1: 0x55, 0x4c2: 0xed, 0x4c3: 0xee, 0x4c4: 0xef, 0x4c5: 0xf0, 0x4c6: 0xf1, + 0x4c9: 0xf2, 0x4cc: 0x55, 0x4cd: 0x55, 0x4ce: 0x55, 0x4cf: 0x55, + 0x4d0: 0x55, 0x4d1: 0x55, 0x4d2: 0x55, 0x4d3: 0x55, 0x4d4: 0x55, 0x4d5: 0x55, 0x4d6: 0x55, 0x4d7: 0x55, + 0x4d8: 0x55, 0x4d9: 0x55, 0x4da: 0x55, 0x4db: 0xf3, 0x4dc: 0x55, 0x4dd: 0xf4, 0x4de: 0x55, 0x4df: 0xf5, + 0x4e0: 0xf6, 0x4e1: 0xf7, 0x4e2: 0xf8, 0x4e4: 0x55, 0x4e5: 0x55, 0x4e6: 0x55, 0x4e7: 0x55, + 0x4e8: 0x55, 0x4e9: 0xf9, 0x4ea: 0xfa, 0x4eb: 0xfb, 0x4ec: 0x55, 0x4ed: 0x55, 0x4ee: 0xfc, 0x4ef: 0xfd, + 0x4ff: 0xfe, + // Block 0x14, offset 0x500 + 0x53f: 0xfe, + // Block 0x15, offset 0x540 + 0x550: 0x09, 0x551: 0x0a, 0x553: 0x0b, 0x556: 0x0c, + 0x55b: 0x0d, 0x55c: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, + 0x57f: 0x12, + // Block 0x16, offset 0x580 + 0x58f: 0x12, + 0x59f: 0x12, + 0x5af: 0x12, + 0x5bf: 0x12, + // Block 0x17, offset 0x5c0 + 0x5c0: 0xff, 0x5c1: 0xff, 0x5c2: 0xff, 0x5c3: 0xff, 0x5c4: 0x05, 0x5c5: 0x05, 0x5c6: 0x05, 0x5c7: 0x100, + 0x5c8: 0xff, 0x5c9: 0xff, 0x5ca: 0xff, 0x5cb: 0xff, 0x5cc: 0xff, 0x5cd: 0xff, 0x5ce: 0xff, 0x5cf: 0xff, + 0x5d0: 0xff, 0x5d1: 0xff, 0x5d2: 0xff, 0x5d3: 0xff, 0x5d4: 0xff, 0x5d5: 0xff, 0x5d6: 0xff, 0x5d7: 0xff, + 0x5d8: 0xff, 0x5d9: 0xff, 0x5da: 0xff, 0x5db: 0xff, 0x5dc: 0xff, 0x5dd: 0xff, 0x5de: 0xff, 0x5df: 0xff, + 0x5e0: 0xff, 0x5e1: 0xff, 0x5e2: 0xff, 0x5e3: 0xff, 0x5e4: 0xff, 0x5e5: 0xff, 0x5e6: 0xff, 0x5e7: 0xff, + 0x5e8: 0xff, 0x5e9: 0xff, 0x5ea: 0xff, 0x5eb: 0xff, 0x5ec: 0xff, 0x5ed: 0xff, 0x5ee: 0xff, 0x5ef: 0xff, + 0x5f0: 0xff, 0x5f1: 0xff, 0x5f2: 0xff, 0x5f3: 0xff, 0x5f4: 0xff, 0x5f5: 0xff, 0x5f6: 0xff, 0x5f7: 0xff, + 0x5f8: 0xff, 0x5f9: 0xff, 0x5fa: 0xff, 0x5fb: 0xff, 0x5fc: 0xff, 0x5fd: 0xff, 0x5fe: 0xff, 0x5ff: 0xff, + // Block 0x18, offset 0x600 + 0x60f: 0x12, + 0x61f: 0x12, + 0x620: 0x15, + 0x62f: 0x12, + 0x63f: 0x12, + // Block 0x19, offset 0x640 + 0x64f: 0x12, +} + +// Total table size 19960 bytes (19KiB); checksum: F50EF68C diff --git a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go index 9115ef257e83..f65785e8ac7f 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go @@ -1,7 +1,7 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. -//go:build go1.16 -// +build go1.16 +//go:build go1.16 && !go1.21 +// +build go1.16,!go1.21 package norm diff --git a/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go new file mode 100644 index 000000000000..e1858b879db7 --- /dev/null +++ b/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go @@ -0,0 +1,7908 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +//go:build go1.21 +// +build go1.21 + +package norm + +import "sync" + +const ( + // Version is the Unicode edition from which the tables are derived. + Version = "15.0.0" + + // MaxTransformChunkSize indicates the maximum number of bytes that Transform + // may need to write atomically for any Form. Making a destination buffer at + // least this size ensures that Transform can always make progress and that + // the user does not need to grow the buffer on an ErrShortDst. + MaxTransformChunkSize = 35 + maxNonStarters*4 +) + +var ccc = [56]uint8{ + 0, 1, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, + 36, 84, 91, 103, 107, 118, 122, 129, + 130, 132, 202, 214, 216, 218, 220, 222, + 224, 226, 228, 230, 232, 233, 234, 240, +} + +const ( + firstMulti = 0x199A + firstCCC = 0x2DD5 + endMulti = 0x30A1 + firstLeadingCCC = 0x4AEF + firstCCCZeroExcept = 0x4BB9 + firstStarterWithNLead = 0x4BE0 + lastDecomp = 0x4BE2 + maxDecomp = 0x8000 +) + +// decomps: 19426 bytes +var decomps = [...]byte{ + // Bytes 0 - 3f + 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41, + 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41, + 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41, + 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41, + 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41, + 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41, + 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41, + 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41, + // Bytes 40 - 7f + 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41, + 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41, + 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41, + 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41, + 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41, + 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, + 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41, + 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41, + // Bytes 80 - bf + 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41, + 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41, + 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41, + 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41, + 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41, + 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41, + 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41, + 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42, + // Bytes c0 - ff + 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5, + 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2, + 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xA6, 0x42, + 0xC3, 0xB0, 0x42, 0xC3, 0xB8, 0x42, 0xC4, 0xA6, + 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, 0x42, 0xC5, + 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, 0x8E, 0x42, + 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, 0xC7, 0x80, + 0x42, 0xC7, 0x81, 0x42, 0xC7, 0x82, 0x42, 0xC8, + // Bytes 100 - 13f + 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, 0x42, + 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, 0x93, + 0x42, 0xC9, 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, + 0x96, 0x42, 0xC9, 0x97, 0x42, 0xC9, 0x98, 0x42, + 0xC9, 0x99, 0x42, 0xC9, 0x9B, 0x42, 0xC9, 0x9C, + 0x42, 0xC9, 0x9E, 0x42, 0xC9, 0x9F, 0x42, 0xC9, + 0xA0, 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA2, 0x42, + 0xC9, 0xA3, 0x42, 0xC9, 0xA4, 0x42, 0xC9, 0xA5, + // Bytes 140 - 17f + 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA7, 0x42, 0xC9, + 0xA8, 0x42, 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, + 0xC9, 0xAB, 0x42, 0xC9, 0xAC, 0x42, 0xC9, 0xAD, + 0x42, 0xC9, 0xAE, 0x42, 0xC9, 0xAF, 0x42, 0xC9, + 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42, + 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5, + 0x42, 0xC9, 0xB6, 0x42, 0xC9, 0xB7, 0x42, 0xC9, + 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, 0xBA, 0x42, + // Bytes 180 - 1bf + 0xC9, 0xBB, 0x42, 0xC9, 0xBD, 0x42, 0xC9, 0xBE, + 0x42, 0xCA, 0x80, 0x42, 0xCA, 0x81, 0x42, 0xCA, + 0x82, 0x42, 0xCA, 0x83, 0x42, 0xCA, 0x84, 0x42, + 0xCA, 0x88, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A, + 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA, + 0x8D, 0x42, 0xCA, 0x8E, 0x42, 0xCA, 0x8F, 0x42, + 0xCA, 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, + 0x42, 0xCA, 0x95, 0x42, 0xCA, 0x98, 0x42, 0xCA, + // Bytes 1c0 - 1ff + 0x99, 0x42, 0xCA, 0x9B, 0x42, 0xCA, 0x9C, 0x42, + 0xCA, 0x9D, 0x42, 0xCA, 0x9F, 0x42, 0xCA, 0xA1, + 0x42, 0xCA, 0xA2, 0x42, 0xCA, 0xA3, 0x42, 0xCA, + 0xA4, 0x42, 0xCA, 0xA5, 0x42, 0xCA, 0xA6, 0x42, + 0xCA, 0xA7, 0x42, 0xCA, 0xA8, 0x42, 0xCA, 0xA9, + 0x42, 0xCA, 0xAA, 0x42, 0xCA, 0xAB, 0x42, 0xCA, + 0xB9, 0x42, 0xCB, 0x90, 0x42, 0xCB, 0x91, 0x42, + 0xCE, 0x91, 0x42, 0xCE, 0x92, 0x42, 0xCE, 0x93, + // Bytes 200 - 23f + 0x42, 0xCE, 0x94, 0x42, 0xCE, 0x95, 0x42, 0xCE, + 0x96, 0x42, 0xCE, 0x97, 0x42, 0xCE, 0x98, 0x42, + 0xCE, 0x99, 0x42, 0xCE, 0x9A, 0x42, 0xCE, 0x9B, + 0x42, 0xCE, 0x9C, 0x42, 0xCE, 0x9D, 0x42, 0xCE, + 0x9E, 0x42, 0xCE, 0x9F, 0x42, 0xCE, 0xA0, 0x42, + 0xCE, 0xA1, 0x42, 0xCE, 0xA3, 0x42, 0xCE, 0xA4, + 0x42, 0xCE, 0xA5, 0x42, 0xCE, 0xA6, 0x42, 0xCE, + 0xA7, 0x42, 0xCE, 0xA8, 0x42, 0xCE, 0xA9, 0x42, + // Bytes 240 - 27f + 0xCE, 0xB1, 0x42, 0xCE, 0xB2, 0x42, 0xCE, 0xB3, + 0x42, 0xCE, 0xB4, 0x42, 0xCE, 0xB5, 0x42, 0xCE, + 0xB6, 0x42, 0xCE, 0xB7, 0x42, 0xCE, 0xB8, 0x42, + 0xCE, 0xB9, 0x42, 0xCE, 0xBA, 0x42, 0xCE, 0xBB, + 0x42, 0xCE, 0xBC, 0x42, 0xCE, 0xBD, 0x42, 0xCE, + 0xBE, 0x42, 0xCE, 0xBF, 0x42, 0xCF, 0x80, 0x42, + 0xCF, 0x81, 0x42, 0xCF, 0x82, 0x42, 0xCF, 0x83, + 0x42, 0xCF, 0x84, 0x42, 0xCF, 0x85, 0x42, 0xCF, + // Bytes 280 - 2bf + 0x86, 0x42, 0xCF, 0x87, 0x42, 0xCF, 0x88, 0x42, + 0xCF, 0x89, 0x42, 0xCF, 0x9C, 0x42, 0xCF, 0x9D, + 0x42, 0xD0, 0xB0, 0x42, 0xD0, 0xB1, 0x42, 0xD0, + 0xB2, 0x42, 0xD0, 0xB3, 0x42, 0xD0, 0xB4, 0x42, + 0xD0, 0xB5, 0x42, 0xD0, 0xB6, 0x42, 0xD0, 0xB7, + 0x42, 0xD0, 0xB8, 0x42, 0xD0, 0xBA, 0x42, 0xD0, + 0xBB, 0x42, 0xD0, 0xBC, 0x42, 0xD0, 0xBD, 0x42, + 0xD0, 0xBE, 0x42, 0xD0, 0xBF, 0x42, 0xD1, 0x80, + // Bytes 2c0 - 2ff + 0x42, 0xD1, 0x81, 0x42, 0xD1, 0x82, 0x42, 0xD1, + 0x83, 0x42, 0xD1, 0x84, 0x42, 0xD1, 0x85, 0x42, + 0xD1, 0x86, 0x42, 0xD1, 0x87, 0x42, 0xD1, 0x88, + 0x42, 0xD1, 0x8A, 0x42, 0xD1, 0x8B, 0x42, 0xD1, + 0x8C, 0x42, 0xD1, 0x8D, 0x42, 0xD1, 0x8E, 0x42, + 0xD1, 0x95, 0x42, 0xD1, 0x96, 0x42, 0xD1, 0x98, + 0x42, 0xD1, 0x9F, 0x42, 0xD2, 0x91, 0x42, 0xD2, + 0xAB, 0x42, 0xD2, 0xAF, 0x42, 0xD2, 0xB1, 0x42, + // Bytes 300 - 33f + 0xD3, 0x8F, 0x42, 0xD3, 0x99, 0x42, 0xD3, 0xA9, + 0x42, 0xD7, 0x90, 0x42, 0xD7, 0x91, 0x42, 0xD7, + 0x92, 0x42, 0xD7, 0x93, 0x42, 0xD7, 0x94, 0x42, + 0xD7, 0x9B, 0x42, 0xD7, 0x9C, 0x42, 0xD7, 0x9D, + 0x42, 0xD7, 0xA2, 0x42, 0xD7, 0xA8, 0x42, 0xD7, + 0xAA, 0x42, 0xD8, 0xA1, 0x42, 0xD8, 0xA7, 0x42, + 0xD8, 0xA8, 0x42, 0xD8, 0xA9, 0x42, 0xD8, 0xAA, + 0x42, 0xD8, 0xAB, 0x42, 0xD8, 0xAC, 0x42, 0xD8, + // Bytes 340 - 37f + 0xAD, 0x42, 0xD8, 0xAE, 0x42, 0xD8, 0xAF, 0x42, + 0xD8, 0xB0, 0x42, 0xD8, 0xB1, 0x42, 0xD8, 0xB2, + 0x42, 0xD8, 0xB3, 0x42, 0xD8, 0xB4, 0x42, 0xD8, + 0xB5, 0x42, 0xD8, 0xB6, 0x42, 0xD8, 0xB7, 0x42, + 0xD8, 0xB8, 0x42, 0xD8, 0xB9, 0x42, 0xD8, 0xBA, + 0x42, 0xD9, 0x81, 0x42, 0xD9, 0x82, 0x42, 0xD9, + 0x83, 0x42, 0xD9, 0x84, 0x42, 0xD9, 0x85, 0x42, + 0xD9, 0x86, 0x42, 0xD9, 0x87, 0x42, 0xD9, 0x88, + // Bytes 380 - 3bf + 0x42, 0xD9, 0x89, 0x42, 0xD9, 0x8A, 0x42, 0xD9, + 0xAE, 0x42, 0xD9, 0xAF, 0x42, 0xD9, 0xB1, 0x42, + 0xD9, 0xB9, 0x42, 0xD9, 0xBA, 0x42, 0xD9, 0xBB, + 0x42, 0xD9, 0xBE, 0x42, 0xD9, 0xBF, 0x42, 0xDA, + 0x80, 0x42, 0xDA, 0x83, 0x42, 0xDA, 0x84, 0x42, + 0xDA, 0x86, 0x42, 0xDA, 0x87, 0x42, 0xDA, 0x88, + 0x42, 0xDA, 0x8C, 0x42, 0xDA, 0x8D, 0x42, 0xDA, + 0x8E, 0x42, 0xDA, 0x91, 0x42, 0xDA, 0x98, 0x42, + // Bytes 3c0 - 3ff + 0xDA, 0xA1, 0x42, 0xDA, 0xA4, 0x42, 0xDA, 0xA6, + 0x42, 0xDA, 0xA9, 0x42, 0xDA, 0xAD, 0x42, 0xDA, + 0xAF, 0x42, 0xDA, 0xB1, 0x42, 0xDA, 0xB3, 0x42, + 0xDA, 0xBA, 0x42, 0xDA, 0xBB, 0x42, 0xDA, 0xBE, + 0x42, 0xDB, 0x81, 0x42, 0xDB, 0x85, 0x42, 0xDB, + 0x86, 0x42, 0xDB, 0x87, 0x42, 0xDB, 0x88, 0x42, + 0xDB, 0x89, 0x42, 0xDB, 0x8B, 0x42, 0xDB, 0x8C, + 0x42, 0xDB, 0x90, 0x42, 0xDB, 0x92, 0x43, 0xE0, + // Bytes 400 - 43f + 0xBC, 0x8B, 0x43, 0xE1, 0x83, 0x9C, 0x43, 0xE1, + 0x84, 0x80, 0x43, 0xE1, 0x84, 0x81, 0x43, 0xE1, + 0x84, 0x82, 0x43, 0xE1, 0x84, 0x83, 0x43, 0xE1, + 0x84, 0x84, 0x43, 0xE1, 0x84, 0x85, 0x43, 0xE1, + 0x84, 0x86, 0x43, 0xE1, 0x84, 0x87, 0x43, 0xE1, + 0x84, 0x88, 0x43, 0xE1, 0x84, 0x89, 0x43, 0xE1, + 0x84, 0x8A, 0x43, 0xE1, 0x84, 0x8B, 0x43, 0xE1, + 0x84, 0x8C, 0x43, 0xE1, 0x84, 0x8D, 0x43, 0xE1, + // Bytes 440 - 47f + 0x84, 0x8E, 0x43, 0xE1, 0x84, 0x8F, 0x43, 0xE1, + 0x84, 0x90, 0x43, 0xE1, 0x84, 0x91, 0x43, 0xE1, + 0x84, 0x92, 0x43, 0xE1, 0x84, 0x94, 0x43, 0xE1, + 0x84, 0x95, 0x43, 0xE1, 0x84, 0x9A, 0x43, 0xE1, + 0x84, 0x9C, 0x43, 0xE1, 0x84, 0x9D, 0x43, 0xE1, + 0x84, 0x9E, 0x43, 0xE1, 0x84, 0xA0, 0x43, 0xE1, + 0x84, 0xA1, 0x43, 0xE1, 0x84, 0xA2, 0x43, 0xE1, + 0x84, 0xA3, 0x43, 0xE1, 0x84, 0xA7, 0x43, 0xE1, + // Bytes 480 - 4bf + 0x84, 0xA9, 0x43, 0xE1, 0x84, 0xAB, 0x43, 0xE1, + 0x84, 0xAC, 0x43, 0xE1, 0x84, 0xAD, 0x43, 0xE1, + 0x84, 0xAE, 0x43, 0xE1, 0x84, 0xAF, 0x43, 0xE1, + 0x84, 0xB2, 0x43, 0xE1, 0x84, 0xB6, 0x43, 0xE1, + 0x85, 0x80, 0x43, 0xE1, 0x85, 0x87, 0x43, 0xE1, + 0x85, 0x8C, 0x43, 0xE1, 0x85, 0x97, 0x43, 0xE1, + 0x85, 0x98, 0x43, 0xE1, 0x85, 0x99, 0x43, 0xE1, + 0x85, 0xA0, 0x43, 0xE1, 0x86, 0x84, 0x43, 0xE1, + // Bytes 4c0 - 4ff + 0x86, 0x85, 0x43, 0xE1, 0x86, 0x88, 0x43, 0xE1, + 0x86, 0x91, 0x43, 0xE1, 0x86, 0x92, 0x43, 0xE1, + 0x86, 0x94, 0x43, 0xE1, 0x86, 0x9E, 0x43, 0xE1, + 0x86, 0xA1, 0x43, 0xE1, 0x87, 0x87, 0x43, 0xE1, + 0x87, 0x88, 0x43, 0xE1, 0x87, 0x8C, 0x43, 0xE1, + 0x87, 0x8E, 0x43, 0xE1, 0x87, 0x93, 0x43, 0xE1, + 0x87, 0x97, 0x43, 0xE1, 0x87, 0x99, 0x43, 0xE1, + 0x87, 0x9D, 0x43, 0xE1, 0x87, 0x9F, 0x43, 0xE1, + // Bytes 500 - 53f + 0x87, 0xB1, 0x43, 0xE1, 0x87, 0xB2, 0x43, 0xE1, + 0xB4, 0x82, 0x43, 0xE1, 0xB4, 0x96, 0x43, 0xE1, + 0xB4, 0x97, 0x43, 0xE1, 0xB4, 0x9C, 0x43, 0xE1, + 0xB4, 0x9D, 0x43, 0xE1, 0xB4, 0xA5, 0x43, 0xE1, + 0xB5, 0xBB, 0x43, 0xE1, 0xB6, 0x85, 0x43, 0xE1, + 0xB6, 0x91, 0x43, 0xE2, 0x80, 0x82, 0x43, 0xE2, + 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, 0xE2, + 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, 0xE2, + // Bytes 540 - 57f + 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, 0xE2, + 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, 0xE2, + 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, 0xE2, + 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, 0xE2, + 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, 0xE2, + 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, 0xE2, + 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, 0xE2, + 0xB1, 0xB1, 0x43, 0xE2, 0xB5, 0xA1, 0x43, 0xE3, + // Bytes 580 - 5bf + 0x80, 0x81, 0x43, 0xE3, 0x80, 0x82, 0x43, 0xE3, + 0x80, 0x88, 0x43, 0xE3, 0x80, 0x89, 0x43, 0xE3, + 0x80, 0x8A, 0x43, 0xE3, 0x80, 0x8B, 0x43, 0xE3, + 0x80, 0x8C, 0x43, 0xE3, 0x80, 0x8D, 0x43, 0xE3, + 0x80, 0x8E, 0x43, 0xE3, 0x80, 0x8F, 0x43, 0xE3, + 0x80, 0x90, 0x43, 0xE3, 0x80, 0x91, 0x43, 0xE3, + 0x80, 0x92, 0x43, 0xE3, 0x80, 0x94, 0x43, 0xE3, + 0x80, 0x95, 0x43, 0xE3, 0x80, 0x96, 0x43, 0xE3, + // Bytes 5c0 - 5ff + 0x80, 0x97, 0x43, 0xE3, 0x82, 0xA1, 0x43, 0xE3, + 0x82, 0xA2, 0x43, 0xE3, 0x82, 0xA3, 0x43, 0xE3, + 0x82, 0xA4, 0x43, 0xE3, 0x82, 0xA5, 0x43, 0xE3, + 0x82, 0xA6, 0x43, 0xE3, 0x82, 0xA7, 0x43, 0xE3, + 0x82, 0xA8, 0x43, 0xE3, 0x82, 0xA9, 0x43, 0xE3, + 0x82, 0xAA, 0x43, 0xE3, 0x82, 0xAB, 0x43, 0xE3, + 0x82, 0xAD, 0x43, 0xE3, 0x82, 0xAF, 0x43, 0xE3, + 0x82, 0xB1, 0x43, 0xE3, 0x82, 0xB3, 0x43, 0xE3, + // Bytes 600 - 63f + 0x82, 0xB5, 0x43, 0xE3, 0x82, 0xB7, 0x43, 0xE3, + 0x82, 0xB9, 0x43, 0xE3, 0x82, 0xBB, 0x43, 0xE3, + 0x82, 0xBD, 0x43, 0xE3, 0x82, 0xBF, 0x43, 0xE3, + 0x83, 0x81, 0x43, 0xE3, 0x83, 0x83, 0x43, 0xE3, + 0x83, 0x84, 0x43, 0xE3, 0x83, 0x86, 0x43, 0xE3, + 0x83, 0x88, 0x43, 0xE3, 0x83, 0x8A, 0x43, 0xE3, + 0x83, 0x8B, 0x43, 0xE3, 0x83, 0x8C, 0x43, 0xE3, + 0x83, 0x8D, 0x43, 0xE3, 0x83, 0x8E, 0x43, 0xE3, + // Bytes 640 - 67f + 0x83, 0x8F, 0x43, 0xE3, 0x83, 0x92, 0x43, 0xE3, + 0x83, 0x95, 0x43, 0xE3, 0x83, 0x98, 0x43, 0xE3, + 0x83, 0x9B, 0x43, 0xE3, 0x83, 0x9E, 0x43, 0xE3, + 0x83, 0x9F, 0x43, 0xE3, 0x83, 0xA0, 0x43, 0xE3, + 0x83, 0xA1, 0x43, 0xE3, 0x83, 0xA2, 0x43, 0xE3, + 0x83, 0xA3, 0x43, 0xE3, 0x83, 0xA4, 0x43, 0xE3, + 0x83, 0xA5, 0x43, 0xE3, 0x83, 0xA6, 0x43, 0xE3, + 0x83, 0xA7, 0x43, 0xE3, 0x83, 0xA8, 0x43, 0xE3, + // Bytes 680 - 6bf + 0x83, 0xA9, 0x43, 0xE3, 0x83, 0xAA, 0x43, 0xE3, + 0x83, 0xAB, 0x43, 0xE3, 0x83, 0xAC, 0x43, 0xE3, + 0x83, 0xAD, 0x43, 0xE3, 0x83, 0xAF, 0x43, 0xE3, + 0x83, 0xB0, 0x43, 0xE3, 0x83, 0xB1, 0x43, 0xE3, + 0x83, 0xB2, 0x43, 0xE3, 0x83, 0xB3, 0x43, 0xE3, + 0x83, 0xBB, 0x43, 0xE3, 0x83, 0xBC, 0x43, 0xE3, + 0x92, 0x9E, 0x43, 0xE3, 0x92, 0xB9, 0x43, 0xE3, + 0x92, 0xBB, 0x43, 0xE3, 0x93, 0x9F, 0x43, 0xE3, + // Bytes 6c0 - 6ff + 0x94, 0x95, 0x43, 0xE3, 0x9B, 0xAE, 0x43, 0xE3, + 0x9B, 0xBC, 0x43, 0xE3, 0x9E, 0x81, 0x43, 0xE3, + 0xA0, 0xAF, 0x43, 0xE3, 0xA1, 0xA2, 0x43, 0xE3, + 0xA1, 0xBC, 0x43, 0xE3, 0xA3, 0x87, 0x43, 0xE3, + 0xA3, 0xA3, 0x43, 0xE3, 0xA4, 0x9C, 0x43, 0xE3, + 0xA4, 0xBA, 0x43, 0xE3, 0xA8, 0xAE, 0x43, 0xE3, + 0xA9, 0xAC, 0x43, 0xE3, 0xAB, 0xA4, 0x43, 0xE3, + 0xAC, 0x88, 0x43, 0xE3, 0xAC, 0x99, 0x43, 0xE3, + // Bytes 700 - 73f + 0xAD, 0x89, 0x43, 0xE3, 0xAE, 0x9D, 0x43, 0xE3, + 0xB0, 0x98, 0x43, 0xE3, 0xB1, 0x8E, 0x43, 0xE3, + 0xB4, 0xB3, 0x43, 0xE3, 0xB6, 0x96, 0x43, 0xE3, + 0xBA, 0xAC, 0x43, 0xE3, 0xBA, 0xB8, 0x43, 0xE3, + 0xBC, 0x9B, 0x43, 0xE3, 0xBF, 0xBC, 0x43, 0xE4, + 0x80, 0x88, 0x43, 0xE4, 0x80, 0x98, 0x43, 0xE4, + 0x80, 0xB9, 0x43, 0xE4, 0x81, 0x86, 0x43, 0xE4, + 0x82, 0x96, 0x43, 0xE4, 0x83, 0xA3, 0x43, 0xE4, + // Bytes 740 - 77f + 0x84, 0xAF, 0x43, 0xE4, 0x88, 0x82, 0x43, 0xE4, + 0x88, 0xA7, 0x43, 0xE4, 0x8A, 0xA0, 0x43, 0xE4, + 0x8C, 0x81, 0x43, 0xE4, 0x8C, 0xB4, 0x43, 0xE4, + 0x8D, 0x99, 0x43, 0xE4, 0x8F, 0x95, 0x43, 0xE4, + 0x8F, 0x99, 0x43, 0xE4, 0x90, 0x8B, 0x43, 0xE4, + 0x91, 0xAB, 0x43, 0xE4, 0x94, 0xAB, 0x43, 0xE4, + 0x95, 0x9D, 0x43, 0xE4, 0x95, 0xA1, 0x43, 0xE4, + 0x95, 0xAB, 0x43, 0xE4, 0x97, 0x97, 0x43, 0xE4, + // Bytes 780 - 7bf + 0x97, 0xB9, 0x43, 0xE4, 0x98, 0xB5, 0x43, 0xE4, + 0x9A, 0xBE, 0x43, 0xE4, 0x9B, 0x87, 0x43, 0xE4, + 0xA6, 0x95, 0x43, 0xE4, 0xA7, 0xA6, 0x43, 0xE4, + 0xA9, 0xAE, 0x43, 0xE4, 0xA9, 0xB6, 0x43, 0xE4, + 0xAA, 0xB2, 0x43, 0xE4, 0xAC, 0xB3, 0x43, 0xE4, + 0xAF, 0x8E, 0x43, 0xE4, 0xB3, 0x8E, 0x43, 0xE4, + 0xB3, 0xAD, 0x43, 0xE4, 0xB3, 0xB8, 0x43, 0xE4, + 0xB5, 0x96, 0x43, 0xE4, 0xB8, 0x80, 0x43, 0xE4, + // Bytes 7c0 - 7ff + 0xB8, 0x81, 0x43, 0xE4, 0xB8, 0x83, 0x43, 0xE4, + 0xB8, 0x89, 0x43, 0xE4, 0xB8, 0x8A, 0x43, 0xE4, + 0xB8, 0x8B, 0x43, 0xE4, 0xB8, 0x8D, 0x43, 0xE4, + 0xB8, 0x99, 0x43, 0xE4, 0xB8, 0xA6, 0x43, 0xE4, + 0xB8, 0xA8, 0x43, 0xE4, 0xB8, 0xAD, 0x43, 0xE4, + 0xB8, 0xB2, 0x43, 0xE4, 0xB8, 0xB6, 0x43, 0xE4, + 0xB8, 0xB8, 0x43, 0xE4, 0xB8, 0xB9, 0x43, 0xE4, + 0xB8, 0xBD, 0x43, 0xE4, 0xB8, 0xBF, 0x43, 0xE4, + // Bytes 800 - 83f + 0xB9, 0x81, 0x43, 0xE4, 0xB9, 0x99, 0x43, 0xE4, + 0xB9, 0x9D, 0x43, 0xE4, 0xBA, 0x82, 0x43, 0xE4, + 0xBA, 0x85, 0x43, 0xE4, 0xBA, 0x86, 0x43, 0xE4, + 0xBA, 0x8C, 0x43, 0xE4, 0xBA, 0x94, 0x43, 0xE4, + 0xBA, 0xA0, 0x43, 0xE4, 0xBA, 0xA4, 0x43, 0xE4, + 0xBA, 0xAE, 0x43, 0xE4, 0xBA, 0xBA, 0x43, 0xE4, + 0xBB, 0x80, 0x43, 0xE4, 0xBB, 0x8C, 0x43, 0xE4, + 0xBB, 0xA4, 0x43, 0xE4, 0xBC, 0x81, 0x43, 0xE4, + // Bytes 840 - 87f + 0xBC, 0x91, 0x43, 0xE4, 0xBD, 0xA0, 0x43, 0xE4, + 0xBE, 0x80, 0x43, 0xE4, 0xBE, 0x86, 0x43, 0xE4, + 0xBE, 0x8B, 0x43, 0xE4, 0xBE, 0xAE, 0x43, 0xE4, + 0xBE, 0xBB, 0x43, 0xE4, 0xBE, 0xBF, 0x43, 0xE5, + 0x80, 0x82, 0x43, 0xE5, 0x80, 0xAB, 0x43, 0xE5, + 0x81, 0xBA, 0x43, 0xE5, 0x82, 0x99, 0x43, 0xE5, + 0x83, 0x8F, 0x43, 0xE5, 0x83, 0x9A, 0x43, 0xE5, + 0x83, 0xA7, 0x43, 0xE5, 0x84, 0xAA, 0x43, 0xE5, + // Bytes 880 - 8bf + 0x84, 0xBF, 0x43, 0xE5, 0x85, 0x80, 0x43, 0xE5, + 0x85, 0x85, 0x43, 0xE5, 0x85, 0x8D, 0x43, 0xE5, + 0x85, 0x94, 0x43, 0xE5, 0x85, 0xA4, 0x43, 0xE5, + 0x85, 0xA5, 0x43, 0xE5, 0x85, 0xA7, 0x43, 0xE5, + 0x85, 0xA8, 0x43, 0xE5, 0x85, 0xA9, 0x43, 0xE5, + 0x85, 0xAB, 0x43, 0xE5, 0x85, 0xAD, 0x43, 0xE5, + 0x85, 0xB7, 0x43, 0xE5, 0x86, 0x80, 0x43, 0xE5, + 0x86, 0x82, 0x43, 0xE5, 0x86, 0x8D, 0x43, 0xE5, + // Bytes 8c0 - 8ff + 0x86, 0x92, 0x43, 0xE5, 0x86, 0x95, 0x43, 0xE5, + 0x86, 0x96, 0x43, 0xE5, 0x86, 0x97, 0x43, 0xE5, + 0x86, 0x99, 0x43, 0xE5, 0x86, 0xA4, 0x43, 0xE5, + 0x86, 0xAB, 0x43, 0xE5, 0x86, 0xAC, 0x43, 0xE5, + 0x86, 0xB5, 0x43, 0xE5, 0x86, 0xB7, 0x43, 0xE5, + 0x87, 0x89, 0x43, 0xE5, 0x87, 0x8C, 0x43, 0xE5, + 0x87, 0x9C, 0x43, 0xE5, 0x87, 0x9E, 0x43, 0xE5, + 0x87, 0xA0, 0x43, 0xE5, 0x87, 0xB5, 0x43, 0xE5, + // Bytes 900 - 93f + 0x88, 0x80, 0x43, 0xE5, 0x88, 0x83, 0x43, 0xE5, + 0x88, 0x87, 0x43, 0xE5, 0x88, 0x97, 0x43, 0xE5, + 0x88, 0x9D, 0x43, 0xE5, 0x88, 0xA9, 0x43, 0xE5, + 0x88, 0xBA, 0x43, 0xE5, 0x88, 0xBB, 0x43, 0xE5, + 0x89, 0x86, 0x43, 0xE5, 0x89, 0x8D, 0x43, 0xE5, + 0x89, 0xB2, 0x43, 0xE5, 0x89, 0xB7, 0x43, 0xE5, + 0x8A, 0x89, 0x43, 0xE5, 0x8A, 0x9B, 0x43, 0xE5, + 0x8A, 0xA3, 0x43, 0xE5, 0x8A, 0xB3, 0x43, 0xE5, + // Bytes 940 - 97f + 0x8A, 0xB4, 0x43, 0xE5, 0x8B, 0x87, 0x43, 0xE5, + 0x8B, 0x89, 0x43, 0xE5, 0x8B, 0x92, 0x43, 0xE5, + 0x8B, 0x9E, 0x43, 0xE5, 0x8B, 0xA4, 0x43, 0xE5, + 0x8B, 0xB5, 0x43, 0xE5, 0x8B, 0xB9, 0x43, 0xE5, + 0x8B, 0xBA, 0x43, 0xE5, 0x8C, 0x85, 0x43, 0xE5, + 0x8C, 0x86, 0x43, 0xE5, 0x8C, 0x95, 0x43, 0xE5, + 0x8C, 0x97, 0x43, 0xE5, 0x8C, 0x9A, 0x43, 0xE5, + 0x8C, 0xB8, 0x43, 0xE5, 0x8C, 0xBB, 0x43, 0xE5, + // Bytes 980 - 9bf + 0x8C, 0xBF, 0x43, 0xE5, 0x8D, 0x81, 0x43, 0xE5, + 0x8D, 0x84, 0x43, 0xE5, 0x8D, 0x85, 0x43, 0xE5, + 0x8D, 0x89, 0x43, 0xE5, 0x8D, 0x91, 0x43, 0xE5, + 0x8D, 0x94, 0x43, 0xE5, 0x8D, 0x9A, 0x43, 0xE5, + 0x8D, 0x9C, 0x43, 0xE5, 0x8D, 0xA9, 0x43, 0xE5, + 0x8D, 0xB0, 0x43, 0xE5, 0x8D, 0xB3, 0x43, 0xE5, + 0x8D, 0xB5, 0x43, 0xE5, 0x8D, 0xBD, 0x43, 0xE5, + 0x8D, 0xBF, 0x43, 0xE5, 0x8E, 0x82, 0x43, 0xE5, + // Bytes 9c0 - 9ff + 0x8E, 0xB6, 0x43, 0xE5, 0x8F, 0x83, 0x43, 0xE5, + 0x8F, 0x88, 0x43, 0xE5, 0x8F, 0x8A, 0x43, 0xE5, + 0x8F, 0x8C, 0x43, 0xE5, 0x8F, 0x9F, 0x43, 0xE5, + 0x8F, 0xA3, 0x43, 0xE5, 0x8F, 0xA5, 0x43, 0xE5, + 0x8F, 0xAB, 0x43, 0xE5, 0x8F, 0xAF, 0x43, 0xE5, + 0x8F, 0xB1, 0x43, 0xE5, 0x8F, 0xB3, 0x43, 0xE5, + 0x90, 0x86, 0x43, 0xE5, 0x90, 0x88, 0x43, 0xE5, + 0x90, 0x8D, 0x43, 0xE5, 0x90, 0x8F, 0x43, 0xE5, + // Bytes a00 - a3f + 0x90, 0x9D, 0x43, 0xE5, 0x90, 0xB8, 0x43, 0xE5, + 0x90, 0xB9, 0x43, 0xE5, 0x91, 0x82, 0x43, 0xE5, + 0x91, 0x88, 0x43, 0xE5, 0x91, 0xA8, 0x43, 0xE5, + 0x92, 0x9E, 0x43, 0xE5, 0x92, 0xA2, 0x43, 0xE5, + 0x92, 0xBD, 0x43, 0xE5, 0x93, 0xB6, 0x43, 0xE5, + 0x94, 0x90, 0x43, 0xE5, 0x95, 0x8F, 0x43, 0xE5, + 0x95, 0x93, 0x43, 0xE5, 0x95, 0x95, 0x43, 0xE5, + 0x95, 0xA3, 0x43, 0xE5, 0x96, 0x84, 0x43, 0xE5, + // Bytes a40 - a7f + 0x96, 0x87, 0x43, 0xE5, 0x96, 0x99, 0x43, 0xE5, + 0x96, 0x9D, 0x43, 0xE5, 0x96, 0xAB, 0x43, 0xE5, + 0x96, 0xB3, 0x43, 0xE5, 0x96, 0xB6, 0x43, 0xE5, + 0x97, 0x80, 0x43, 0xE5, 0x97, 0x82, 0x43, 0xE5, + 0x97, 0xA2, 0x43, 0xE5, 0x98, 0x86, 0x43, 0xE5, + 0x99, 0x91, 0x43, 0xE5, 0x99, 0xA8, 0x43, 0xE5, + 0x99, 0xB4, 0x43, 0xE5, 0x9B, 0x97, 0x43, 0xE5, + 0x9B, 0x9B, 0x43, 0xE5, 0x9B, 0xB9, 0x43, 0xE5, + // Bytes a80 - abf + 0x9C, 0x96, 0x43, 0xE5, 0x9C, 0x97, 0x43, 0xE5, + 0x9C, 0x9F, 0x43, 0xE5, 0x9C, 0xB0, 0x43, 0xE5, + 0x9E, 0x8B, 0x43, 0xE5, 0x9F, 0x8E, 0x43, 0xE5, + 0x9F, 0xB4, 0x43, 0xE5, 0xA0, 0x8D, 0x43, 0xE5, + 0xA0, 0xB1, 0x43, 0xE5, 0xA0, 0xB2, 0x43, 0xE5, + 0xA1, 0x80, 0x43, 0xE5, 0xA1, 0x9A, 0x43, 0xE5, + 0xA1, 0x9E, 0x43, 0xE5, 0xA2, 0xA8, 0x43, 0xE5, + 0xA2, 0xAC, 0x43, 0xE5, 0xA2, 0xB3, 0x43, 0xE5, + // Bytes ac0 - aff + 0xA3, 0x98, 0x43, 0xE5, 0xA3, 0x9F, 0x43, 0xE5, + 0xA3, 0xAB, 0x43, 0xE5, 0xA3, 0xAE, 0x43, 0xE5, + 0xA3, 0xB0, 0x43, 0xE5, 0xA3, 0xB2, 0x43, 0xE5, + 0xA3, 0xB7, 0x43, 0xE5, 0xA4, 0x82, 0x43, 0xE5, + 0xA4, 0x86, 0x43, 0xE5, 0xA4, 0x8A, 0x43, 0xE5, + 0xA4, 0x95, 0x43, 0xE5, 0xA4, 0x9A, 0x43, 0xE5, + 0xA4, 0x9C, 0x43, 0xE5, 0xA4, 0xA2, 0x43, 0xE5, + 0xA4, 0xA7, 0x43, 0xE5, 0xA4, 0xA9, 0x43, 0xE5, + // Bytes b00 - b3f + 0xA5, 0x84, 0x43, 0xE5, 0xA5, 0x88, 0x43, 0xE5, + 0xA5, 0x91, 0x43, 0xE5, 0xA5, 0x94, 0x43, 0xE5, + 0xA5, 0xA2, 0x43, 0xE5, 0xA5, 0xB3, 0x43, 0xE5, + 0xA7, 0x98, 0x43, 0xE5, 0xA7, 0xAC, 0x43, 0xE5, + 0xA8, 0x9B, 0x43, 0xE5, 0xA8, 0xA7, 0x43, 0xE5, + 0xA9, 0xA2, 0x43, 0xE5, 0xA9, 0xA6, 0x43, 0xE5, + 0xAA, 0xB5, 0x43, 0xE5, 0xAC, 0x88, 0x43, 0xE5, + 0xAC, 0xA8, 0x43, 0xE5, 0xAC, 0xBE, 0x43, 0xE5, + // Bytes b40 - b7f + 0xAD, 0x90, 0x43, 0xE5, 0xAD, 0x97, 0x43, 0xE5, + 0xAD, 0xA6, 0x43, 0xE5, 0xAE, 0x80, 0x43, 0xE5, + 0xAE, 0x85, 0x43, 0xE5, 0xAE, 0x97, 0x43, 0xE5, + 0xAF, 0x83, 0x43, 0xE5, 0xAF, 0x98, 0x43, 0xE5, + 0xAF, 0xA7, 0x43, 0xE5, 0xAF, 0xAE, 0x43, 0xE5, + 0xAF, 0xB3, 0x43, 0xE5, 0xAF, 0xB8, 0x43, 0xE5, + 0xAF, 0xBF, 0x43, 0xE5, 0xB0, 0x86, 0x43, 0xE5, + 0xB0, 0x8F, 0x43, 0xE5, 0xB0, 0xA2, 0x43, 0xE5, + // Bytes b80 - bbf + 0xB0, 0xB8, 0x43, 0xE5, 0xB0, 0xBF, 0x43, 0xE5, + 0xB1, 0xA0, 0x43, 0xE5, 0xB1, 0xA2, 0x43, 0xE5, + 0xB1, 0xA4, 0x43, 0xE5, 0xB1, 0xA5, 0x43, 0xE5, + 0xB1, 0xAE, 0x43, 0xE5, 0xB1, 0xB1, 0x43, 0xE5, + 0xB2, 0x8D, 0x43, 0xE5, 0xB3, 0x80, 0x43, 0xE5, + 0xB4, 0x99, 0x43, 0xE5, 0xB5, 0x83, 0x43, 0xE5, + 0xB5, 0x90, 0x43, 0xE5, 0xB5, 0xAB, 0x43, 0xE5, + 0xB5, 0xAE, 0x43, 0xE5, 0xB5, 0xBC, 0x43, 0xE5, + // Bytes bc0 - bff + 0xB6, 0xB2, 0x43, 0xE5, 0xB6, 0xBA, 0x43, 0xE5, + 0xB7, 0x9B, 0x43, 0xE5, 0xB7, 0xA1, 0x43, 0xE5, + 0xB7, 0xA2, 0x43, 0xE5, 0xB7, 0xA5, 0x43, 0xE5, + 0xB7, 0xA6, 0x43, 0xE5, 0xB7, 0xB1, 0x43, 0xE5, + 0xB7, 0xBD, 0x43, 0xE5, 0xB7, 0xBE, 0x43, 0xE5, + 0xB8, 0xA8, 0x43, 0xE5, 0xB8, 0xBD, 0x43, 0xE5, + 0xB9, 0xA9, 0x43, 0xE5, 0xB9, 0xB2, 0x43, 0xE5, + 0xB9, 0xB4, 0x43, 0xE5, 0xB9, 0xBA, 0x43, 0xE5, + // Bytes c00 - c3f + 0xB9, 0xBC, 0x43, 0xE5, 0xB9, 0xBF, 0x43, 0xE5, + 0xBA, 0xA6, 0x43, 0xE5, 0xBA, 0xB0, 0x43, 0xE5, + 0xBA, 0xB3, 0x43, 0xE5, 0xBA, 0xB6, 0x43, 0xE5, + 0xBB, 0x89, 0x43, 0xE5, 0xBB, 0x8A, 0x43, 0xE5, + 0xBB, 0x92, 0x43, 0xE5, 0xBB, 0x93, 0x43, 0xE5, + 0xBB, 0x99, 0x43, 0xE5, 0xBB, 0xAC, 0x43, 0xE5, + 0xBB, 0xB4, 0x43, 0xE5, 0xBB, 0xBE, 0x43, 0xE5, + 0xBC, 0x84, 0x43, 0xE5, 0xBC, 0x8B, 0x43, 0xE5, + // Bytes c40 - c7f + 0xBC, 0x93, 0x43, 0xE5, 0xBC, 0xA2, 0x43, 0xE5, + 0xBD, 0x90, 0x43, 0xE5, 0xBD, 0x93, 0x43, 0xE5, + 0xBD, 0xA1, 0x43, 0xE5, 0xBD, 0xA2, 0x43, 0xE5, + 0xBD, 0xA9, 0x43, 0xE5, 0xBD, 0xAB, 0x43, 0xE5, + 0xBD, 0xB3, 0x43, 0xE5, 0xBE, 0x8B, 0x43, 0xE5, + 0xBE, 0x8C, 0x43, 0xE5, 0xBE, 0x97, 0x43, 0xE5, + 0xBE, 0x9A, 0x43, 0xE5, 0xBE, 0xA9, 0x43, 0xE5, + 0xBE, 0xAD, 0x43, 0xE5, 0xBF, 0x83, 0x43, 0xE5, + // Bytes c80 - cbf + 0xBF, 0x8D, 0x43, 0xE5, 0xBF, 0x97, 0x43, 0xE5, + 0xBF, 0xB5, 0x43, 0xE5, 0xBF, 0xB9, 0x43, 0xE6, + 0x80, 0x92, 0x43, 0xE6, 0x80, 0x9C, 0x43, 0xE6, + 0x81, 0xB5, 0x43, 0xE6, 0x82, 0x81, 0x43, 0xE6, + 0x82, 0x94, 0x43, 0xE6, 0x83, 0x87, 0x43, 0xE6, + 0x83, 0x98, 0x43, 0xE6, 0x83, 0xA1, 0x43, 0xE6, + 0x84, 0x88, 0x43, 0xE6, 0x85, 0x84, 0x43, 0xE6, + 0x85, 0x88, 0x43, 0xE6, 0x85, 0x8C, 0x43, 0xE6, + // Bytes cc0 - cff + 0x85, 0x8E, 0x43, 0xE6, 0x85, 0xA0, 0x43, 0xE6, + 0x85, 0xA8, 0x43, 0xE6, 0x85, 0xBA, 0x43, 0xE6, + 0x86, 0x8E, 0x43, 0xE6, 0x86, 0x90, 0x43, 0xE6, + 0x86, 0xA4, 0x43, 0xE6, 0x86, 0xAF, 0x43, 0xE6, + 0x86, 0xB2, 0x43, 0xE6, 0x87, 0x9E, 0x43, 0xE6, + 0x87, 0xB2, 0x43, 0xE6, 0x87, 0xB6, 0x43, 0xE6, + 0x88, 0x80, 0x43, 0xE6, 0x88, 0x88, 0x43, 0xE6, + 0x88, 0x90, 0x43, 0xE6, 0x88, 0x9B, 0x43, 0xE6, + // Bytes d00 - d3f + 0x88, 0xAE, 0x43, 0xE6, 0x88, 0xB4, 0x43, 0xE6, + 0x88, 0xB6, 0x43, 0xE6, 0x89, 0x8B, 0x43, 0xE6, + 0x89, 0x93, 0x43, 0xE6, 0x89, 0x9D, 0x43, 0xE6, + 0x8A, 0x95, 0x43, 0xE6, 0x8A, 0xB1, 0x43, 0xE6, + 0x8B, 0x89, 0x43, 0xE6, 0x8B, 0x8F, 0x43, 0xE6, + 0x8B, 0x93, 0x43, 0xE6, 0x8B, 0x94, 0x43, 0xE6, + 0x8B, 0xBC, 0x43, 0xE6, 0x8B, 0xBE, 0x43, 0xE6, + 0x8C, 0x87, 0x43, 0xE6, 0x8C, 0xBD, 0x43, 0xE6, + // Bytes d40 - d7f + 0x8D, 0x90, 0x43, 0xE6, 0x8D, 0x95, 0x43, 0xE6, + 0x8D, 0xA8, 0x43, 0xE6, 0x8D, 0xBB, 0x43, 0xE6, + 0x8E, 0x83, 0x43, 0xE6, 0x8E, 0xA0, 0x43, 0xE6, + 0x8E, 0xA9, 0x43, 0xE6, 0x8F, 0x84, 0x43, 0xE6, + 0x8F, 0x85, 0x43, 0xE6, 0x8F, 0xA4, 0x43, 0xE6, + 0x90, 0x9C, 0x43, 0xE6, 0x90, 0xA2, 0x43, 0xE6, + 0x91, 0x92, 0x43, 0xE6, 0x91, 0xA9, 0x43, 0xE6, + 0x91, 0xB7, 0x43, 0xE6, 0x91, 0xBE, 0x43, 0xE6, + // Bytes d80 - dbf + 0x92, 0x9A, 0x43, 0xE6, 0x92, 0x9D, 0x43, 0xE6, + 0x93, 0x84, 0x43, 0xE6, 0x94, 0xAF, 0x43, 0xE6, + 0x94, 0xB4, 0x43, 0xE6, 0x95, 0x8F, 0x43, 0xE6, + 0x95, 0x96, 0x43, 0xE6, 0x95, 0xAC, 0x43, 0xE6, + 0x95, 0xB8, 0x43, 0xE6, 0x96, 0x87, 0x43, 0xE6, + 0x96, 0x97, 0x43, 0xE6, 0x96, 0x99, 0x43, 0xE6, + 0x96, 0xA4, 0x43, 0xE6, 0x96, 0xB0, 0x43, 0xE6, + 0x96, 0xB9, 0x43, 0xE6, 0x97, 0x85, 0x43, 0xE6, + // Bytes dc0 - dff + 0x97, 0xA0, 0x43, 0xE6, 0x97, 0xA2, 0x43, 0xE6, + 0x97, 0xA3, 0x43, 0xE6, 0x97, 0xA5, 0x43, 0xE6, + 0x98, 0x93, 0x43, 0xE6, 0x98, 0xA0, 0x43, 0xE6, + 0x99, 0x89, 0x43, 0xE6, 0x99, 0xB4, 0x43, 0xE6, + 0x9A, 0x88, 0x43, 0xE6, 0x9A, 0x91, 0x43, 0xE6, + 0x9A, 0x9C, 0x43, 0xE6, 0x9A, 0xB4, 0x43, 0xE6, + 0x9B, 0x86, 0x43, 0xE6, 0x9B, 0xB0, 0x43, 0xE6, + 0x9B, 0xB4, 0x43, 0xE6, 0x9B, 0xB8, 0x43, 0xE6, + // Bytes e00 - e3f + 0x9C, 0x80, 0x43, 0xE6, 0x9C, 0x88, 0x43, 0xE6, + 0x9C, 0x89, 0x43, 0xE6, 0x9C, 0x97, 0x43, 0xE6, + 0x9C, 0x9B, 0x43, 0xE6, 0x9C, 0xA1, 0x43, 0xE6, + 0x9C, 0xA8, 0x43, 0xE6, 0x9D, 0x8E, 0x43, 0xE6, + 0x9D, 0x93, 0x43, 0xE6, 0x9D, 0x96, 0x43, 0xE6, + 0x9D, 0x9E, 0x43, 0xE6, 0x9D, 0xBB, 0x43, 0xE6, + 0x9E, 0x85, 0x43, 0xE6, 0x9E, 0x97, 0x43, 0xE6, + 0x9F, 0xB3, 0x43, 0xE6, 0x9F, 0xBA, 0x43, 0xE6, + // Bytes e40 - e7f + 0xA0, 0x97, 0x43, 0xE6, 0xA0, 0x9F, 0x43, 0xE6, + 0xA0, 0xAA, 0x43, 0xE6, 0xA1, 0x92, 0x43, 0xE6, + 0xA2, 0x81, 0x43, 0xE6, 0xA2, 0x85, 0x43, 0xE6, + 0xA2, 0x8E, 0x43, 0xE6, 0xA2, 0xA8, 0x43, 0xE6, + 0xA4, 0x94, 0x43, 0xE6, 0xA5, 0x82, 0x43, 0xE6, + 0xA6, 0xA3, 0x43, 0xE6, 0xA7, 0xAA, 0x43, 0xE6, + 0xA8, 0x82, 0x43, 0xE6, 0xA8, 0x93, 0x43, 0xE6, + 0xAA, 0xA8, 0x43, 0xE6, 0xAB, 0x93, 0x43, 0xE6, + // Bytes e80 - ebf + 0xAB, 0x9B, 0x43, 0xE6, 0xAC, 0x84, 0x43, 0xE6, + 0xAC, 0xA0, 0x43, 0xE6, 0xAC, 0xA1, 0x43, 0xE6, + 0xAD, 0x94, 0x43, 0xE6, 0xAD, 0xA2, 0x43, 0xE6, + 0xAD, 0xA3, 0x43, 0xE6, 0xAD, 0xB2, 0x43, 0xE6, + 0xAD, 0xB7, 0x43, 0xE6, 0xAD, 0xB9, 0x43, 0xE6, + 0xAE, 0x9F, 0x43, 0xE6, 0xAE, 0xAE, 0x43, 0xE6, + 0xAE, 0xB3, 0x43, 0xE6, 0xAE, 0xBA, 0x43, 0xE6, + 0xAE, 0xBB, 0x43, 0xE6, 0xAF, 0x8B, 0x43, 0xE6, + // Bytes ec0 - eff + 0xAF, 0x8D, 0x43, 0xE6, 0xAF, 0x94, 0x43, 0xE6, + 0xAF, 0x9B, 0x43, 0xE6, 0xB0, 0x8F, 0x43, 0xE6, + 0xB0, 0x94, 0x43, 0xE6, 0xB0, 0xB4, 0x43, 0xE6, + 0xB1, 0x8E, 0x43, 0xE6, 0xB1, 0xA7, 0x43, 0xE6, + 0xB2, 0x88, 0x43, 0xE6, 0xB2, 0xBF, 0x43, 0xE6, + 0xB3, 0x8C, 0x43, 0xE6, 0xB3, 0x8D, 0x43, 0xE6, + 0xB3, 0xA5, 0x43, 0xE6, 0xB3, 0xA8, 0x43, 0xE6, + 0xB4, 0x96, 0x43, 0xE6, 0xB4, 0x9B, 0x43, 0xE6, + // Bytes f00 - f3f + 0xB4, 0x9E, 0x43, 0xE6, 0xB4, 0xB4, 0x43, 0xE6, + 0xB4, 0xBE, 0x43, 0xE6, 0xB5, 0x81, 0x43, 0xE6, + 0xB5, 0xA9, 0x43, 0xE6, 0xB5, 0xAA, 0x43, 0xE6, + 0xB5, 0xB7, 0x43, 0xE6, 0xB5, 0xB8, 0x43, 0xE6, + 0xB6, 0x85, 0x43, 0xE6, 0xB7, 0x8B, 0x43, 0xE6, + 0xB7, 0x9A, 0x43, 0xE6, 0xB7, 0xAA, 0x43, 0xE6, + 0xB7, 0xB9, 0x43, 0xE6, 0xB8, 0x9A, 0x43, 0xE6, + 0xB8, 0xAF, 0x43, 0xE6, 0xB9, 0xAE, 0x43, 0xE6, + // Bytes f40 - f7f + 0xBA, 0x80, 0x43, 0xE6, 0xBA, 0x9C, 0x43, 0xE6, + 0xBA, 0xBA, 0x43, 0xE6, 0xBB, 0x87, 0x43, 0xE6, + 0xBB, 0x8B, 0x43, 0xE6, 0xBB, 0x91, 0x43, 0xE6, + 0xBB, 0x9B, 0x43, 0xE6, 0xBC, 0x8F, 0x43, 0xE6, + 0xBC, 0x94, 0x43, 0xE6, 0xBC, 0xA2, 0x43, 0xE6, + 0xBC, 0xA3, 0x43, 0xE6, 0xBD, 0xAE, 0x43, 0xE6, + 0xBF, 0x86, 0x43, 0xE6, 0xBF, 0xAB, 0x43, 0xE6, + 0xBF, 0xBE, 0x43, 0xE7, 0x80, 0x9B, 0x43, 0xE7, + // Bytes f80 - fbf + 0x80, 0x9E, 0x43, 0xE7, 0x80, 0xB9, 0x43, 0xE7, + 0x81, 0x8A, 0x43, 0xE7, 0x81, 0xAB, 0x43, 0xE7, + 0x81, 0xB0, 0x43, 0xE7, 0x81, 0xB7, 0x43, 0xE7, + 0x81, 0xBD, 0x43, 0xE7, 0x82, 0x99, 0x43, 0xE7, + 0x82, 0xAD, 0x43, 0xE7, 0x83, 0x88, 0x43, 0xE7, + 0x83, 0x99, 0x43, 0xE7, 0x84, 0xA1, 0x43, 0xE7, + 0x85, 0x85, 0x43, 0xE7, 0x85, 0x89, 0x43, 0xE7, + 0x85, 0xAE, 0x43, 0xE7, 0x86, 0x9C, 0x43, 0xE7, + // Bytes fc0 - fff + 0x87, 0x8E, 0x43, 0xE7, 0x87, 0x90, 0x43, 0xE7, + 0x88, 0x90, 0x43, 0xE7, 0x88, 0x9B, 0x43, 0xE7, + 0x88, 0xA8, 0x43, 0xE7, 0x88, 0xAA, 0x43, 0xE7, + 0x88, 0xAB, 0x43, 0xE7, 0x88, 0xB5, 0x43, 0xE7, + 0x88, 0xB6, 0x43, 0xE7, 0x88, 0xBB, 0x43, 0xE7, + 0x88, 0xBF, 0x43, 0xE7, 0x89, 0x87, 0x43, 0xE7, + 0x89, 0x90, 0x43, 0xE7, 0x89, 0x99, 0x43, 0xE7, + 0x89, 0x9B, 0x43, 0xE7, 0x89, 0xA2, 0x43, 0xE7, + // Bytes 1000 - 103f + 0x89, 0xB9, 0x43, 0xE7, 0x8A, 0x80, 0x43, 0xE7, + 0x8A, 0x95, 0x43, 0xE7, 0x8A, 0xAC, 0x43, 0xE7, + 0x8A, 0xAF, 0x43, 0xE7, 0x8B, 0x80, 0x43, 0xE7, + 0x8B, 0xBC, 0x43, 0xE7, 0x8C, 0xAA, 0x43, 0xE7, + 0x8D, 0xB5, 0x43, 0xE7, 0x8D, 0xBA, 0x43, 0xE7, + 0x8E, 0x84, 0x43, 0xE7, 0x8E, 0x87, 0x43, 0xE7, + 0x8E, 0x89, 0x43, 0xE7, 0x8E, 0x8B, 0x43, 0xE7, + 0x8E, 0xA5, 0x43, 0xE7, 0x8E, 0xB2, 0x43, 0xE7, + // Bytes 1040 - 107f + 0x8F, 0x9E, 0x43, 0xE7, 0x90, 0x86, 0x43, 0xE7, + 0x90, 0x89, 0x43, 0xE7, 0x90, 0xA2, 0x43, 0xE7, + 0x91, 0x87, 0x43, 0xE7, 0x91, 0x9C, 0x43, 0xE7, + 0x91, 0xA9, 0x43, 0xE7, 0x91, 0xB1, 0x43, 0xE7, + 0x92, 0x85, 0x43, 0xE7, 0x92, 0x89, 0x43, 0xE7, + 0x92, 0x98, 0x43, 0xE7, 0x93, 0x8A, 0x43, 0xE7, + 0x93, 0x9C, 0x43, 0xE7, 0x93, 0xA6, 0x43, 0xE7, + 0x94, 0x86, 0x43, 0xE7, 0x94, 0x98, 0x43, 0xE7, + // Bytes 1080 - 10bf + 0x94, 0x9F, 0x43, 0xE7, 0x94, 0xA4, 0x43, 0xE7, + 0x94, 0xA8, 0x43, 0xE7, 0x94, 0xB0, 0x43, 0xE7, + 0x94, 0xB2, 0x43, 0xE7, 0x94, 0xB3, 0x43, 0xE7, + 0x94, 0xB7, 0x43, 0xE7, 0x94, 0xBB, 0x43, 0xE7, + 0x94, 0xBE, 0x43, 0xE7, 0x95, 0x99, 0x43, 0xE7, + 0x95, 0xA5, 0x43, 0xE7, 0x95, 0xB0, 0x43, 0xE7, + 0x96, 0x8B, 0x43, 0xE7, 0x96, 0x92, 0x43, 0xE7, + 0x97, 0xA2, 0x43, 0xE7, 0x98, 0x90, 0x43, 0xE7, + // Bytes 10c0 - 10ff + 0x98, 0x9D, 0x43, 0xE7, 0x98, 0x9F, 0x43, 0xE7, + 0x99, 0x82, 0x43, 0xE7, 0x99, 0xA9, 0x43, 0xE7, + 0x99, 0xB6, 0x43, 0xE7, 0x99, 0xBD, 0x43, 0xE7, + 0x9A, 0xAE, 0x43, 0xE7, 0x9A, 0xBF, 0x43, 0xE7, + 0x9B, 0x8A, 0x43, 0xE7, 0x9B, 0x9B, 0x43, 0xE7, + 0x9B, 0xA3, 0x43, 0xE7, 0x9B, 0xA7, 0x43, 0xE7, + 0x9B, 0xAE, 0x43, 0xE7, 0x9B, 0xB4, 0x43, 0xE7, + 0x9C, 0x81, 0x43, 0xE7, 0x9C, 0x9E, 0x43, 0xE7, + // Bytes 1100 - 113f + 0x9C, 0x9F, 0x43, 0xE7, 0x9D, 0x80, 0x43, 0xE7, + 0x9D, 0x8A, 0x43, 0xE7, 0x9E, 0x8B, 0x43, 0xE7, + 0x9E, 0xA7, 0x43, 0xE7, 0x9F, 0x9B, 0x43, 0xE7, + 0x9F, 0xA2, 0x43, 0xE7, 0x9F, 0xB3, 0x43, 0xE7, + 0xA1, 0x8E, 0x43, 0xE7, 0xA1, 0xAB, 0x43, 0xE7, + 0xA2, 0x8C, 0x43, 0xE7, 0xA2, 0x91, 0x43, 0xE7, + 0xA3, 0x8A, 0x43, 0xE7, 0xA3, 0x8C, 0x43, 0xE7, + 0xA3, 0xBB, 0x43, 0xE7, 0xA4, 0xAA, 0x43, 0xE7, + // Bytes 1140 - 117f + 0xA4, 0xBA, 0x43, 0xE7, 0xA4, 0xBC, 0x43, 0xE7, + 0xA4, 0xBE, 0x43, 0xE7, 0xA5, 0x88, 0x43, 0xE7, + 0xA5, 0x89, 0x43, 0xE7, 0xA5, 0x90, 0x43, 0xE7, + 0xA5, 0x96, 0x43, 0xE7, 0xA5, 0x9D, 0x43, 0xE7, + 0xA5, 0x9E, 0x43, 0xE7, 0xA5, 0xA5, 0x43, 0xE7, + 0xA5, 0xBF, 0x43, 0xE7, 0xA6, 0x81, 0x43, 0xE7, + 0xA6, 0x8D, 0x43, 0xE7, 0xA6, 0x8E, 0x43, 0xE7, + 0xA6, 0x8F, 0x43, 0xE7, 0xA6, 0xAE, 0x43, 0xE7, + // Bytes 1180 - 11bf + 0xA6, 0xB8, 0x43, 0xE7, 0xA6, 0xBE, 0x43, 0xE7, + 0xA7, 0x8A, 0x43, 0xE7, 0xA7, 0x98, 0x43, 0xE7, + 0xA7, 0xAB, 0x43, 0xE7, 0xA8, 0x9C, 0x43, 0xE7, + 0xA9, 0x80, 0x43, 0xE7, 0xA9, 0x8A, 0x43, 0xE7, + 0xA9, 0x8F, 0x43, 0xE7, 0xA9, 0xB4, 0x43, 0xE7, + 0xA9, 0xBA, 0x43, 0xE7, 0xAA, 0x81, 0x43, 0xE7, + 0xAA, 0xB1, 0x43, 0xE7, 0xAB, 0x8B, 0x43, 0xE7, + 0xAB, 0xAE, 0x43, 0xE7, 0xAB, 0xB9, 0x43, 0xE7, + // Bytes 11c0 - 11ff + 0xAC, 0xA0, 0x43, 0xE7, 0xAE, 0x8F, 0x43, 0xE7, + 0xAF, 0x80, 0x43, 0xE7, 0xAF, 0x86, 0x43, 0xE7, + 0xAF, 0x89, 0x43, 0xE7, 0xB0, 0xBE, 0x43, 0xE7, + 0xB1, 0xA0, 0x43, 0xE7, 0xB1, 0xB3, 0x43, 0xE7, + 0xB1, 0xBB, 0x43, 0xE7, 0xB2, 0x92, 0x43, 0xE7, + 0xB2, 0xBE, 0x43, 0xE7, 0xB3, 0x92, 0x43, 0xE7, + 0xB3, 0x96, 0x43, 0xE7, 0xB3, 0xA3, 0x43, 0xE7, + 0xB3, 0xA7, 0x43, 0xE7, 0xB3, 0xA8, 0x43, 0xE7, + // Bytes 1200 - 123f + 0xB3, 0xB8, 0x43, 0xE7, 0xB4, 0x80, 0x43, 0xE7, + 0xB4, 0x90, 0x43, 0xE7, 0xB4, 0xA2, 0x43, 0xE7, + 0xB4, 0xAF, 0x43, 0xE7, 0xB5, 0x82, 0x43, 0xE7, + 0xB5, 0x9B, 0x43, 0xE7, 0xB5, 0xA3, 0x43, 0xE7, + 0xB6, 0xA0, 0x43, 0xE7, 0xB6, 0xBE, 0x43, 0xE7, + 0xB7, 0x87, 0x43, 0xE7, 0xB7, 0xB4, 0x43, 0xE7, + 0xB8, 0x82, 0x43, 0xE7, 0xB8, 0x89, 0x43, 0xE7, + 0xB8, 0xB7, 0x43, 0xE7, 0xB9, 0x81, 0x43, 0xE7, + // Bytes 1240 - 127f + 0xB9, 0x85, 0x43, 0xE7, 0xBC, 0xB6, 0x43, 0xE7, + 0xBC, 0xBE, 0x43, 0xE7, 0xBD, 0x91, 0x43, 0xE7, + 0xBD, 0xB2, 0x43, 0xE7, 0xBD, 0xB9, 0x43, 0xE7, + 0xBD, 0xBA, 0x43, 0xE7, 0xBE, 0x85, 0x43, 0xE7, + 0xBE, 0x8A, 0x43, 0xE7, 0xBE, 0x95, 0x43, 0xE7, + 0xBE, 0x9A, 0x43, 0xE7, 0xBE, 0xBD, 0x43, 0xE7, + 0xBF, 0xBA, 0x43, 0xE8, 0x80, 0x81, 0x43, 0xE8, + 0x80, 0x85, 0x43, 0xE8, 0x80, 0x8C, 0x43, 0xE8, + // Bytes 1280 - 12bf + 0x80, 0x92, 0x43, 0xE8, 0x80, 0xB3, 0x43, 0xE8, + 0x81, 0x86, 0x43, 0xE8, 0x81, 0xA0, 0x43, 0xE8, + 0x81, 0xAF, 0x43, 0xE8, 0x81, 0xB0, 0x43, 0xE8, + 0x81, 0xBE, 0x43, 0xE8, 0x81, 0xBF, 0x43, 0xE8, + 0x82, 0x89, 0x43, 0xE8, 0x82, 0x8B, 0x43, 0xE8, + 0x82, 0xAD, 0x43, 0xE8, 0x82, 0xB2, 0x43, 0xE8, + 0x84, 0x83, 0x43, 0xE8, 0x84, 0xBE, 0x43, 0xE8, + 0x87, 0x98, 0x43, 0xE8, 0x87, 0xA3, 0x43, 0xE8, + // Bytes 12c0 - 12ff + 0x87, 0xA8, 0x43, 0xE8, 0x87, 0xAA, 0x43, 0xE8, + 0x87, 0xAD, 0x43, 0xE8, 0x87, 0xB3, 0x43, 0xE8, + 0x87, 0xBC, 0x43, 0xE8, 0x88, 0x81, 0x43, 0xE8, + 0x88, 0x84, 0x43, 0xE8, 0x88, 0x8C, 0x43, 0xE8, + 0x88, 0x98, 0x43, 0xE8, 0x88, 0x9B, 0x43, 0xE8, + 0x88, 0x9F, 0x43, 0xE8, 0x89, 0xAE, 0x43, 0xE8, + 0x89, 0xAF, 0x43, 0xE8, 0x89, 0xB2, 0x43, 0xE8, + 0x89, 0xB8, 0x43, 0xE8, 0x89, 0xB9, 0x43, 0xE8, + // Bytes 1300 - 133f + 0x8A, 0x8B, 0x43, 0xE8, 0x8A, 0x91, 0x43, 0xE8, + 0x8A, 0x9D, 0x43, 0xE8, 0x8A, 0xB1, 0x43, 0xE8, + 0x8A, 0xB3, 0x43, 0xE8, 0x8A, 0xBD, 0x43, 0xE8, + 0x8B, 0xA5, 0x43, 0xE8, 0x8B, 0xA6, 0x43, 0xE8, + 0x8C, 0x9D, 0x43, 0xE8, 0x8C, 0xA3, 0x43, 0xE8, + 0x8C, 0xB6, 0x43, 0xE8, 0x8D, 0x92, 0x43, 0xE8, + 0x8D, 0x93, 0x43, 0xE8, 0x8D, 0xA3, 0x43, 0xE8, + 0x8E, 0xAD, 0x43, 0xE8, 0x8E, 0xBD, 0x43, 0xE8, + // Bytes 1340 - 137f + 0x8F, 0x89, 0x43, 0xE8, 0x8F, 0x8A, 0x43, 0xE8, + 0x8F, 0x8C, 0x43, 0xE8, 0x8F, 0x9C, 0x43, 0xE8, + 0x8F, 0xA7, 0x43, 0xE8, 0x8F, 0xAF, 0x43, 0xE8, + 0x8F, 0xB1, 0x43, 0xE8, 0x90, 0xBD, 0x43, 0xE8, + 0x91, 0x89, 0x43, 0xE8, 0x91, 0x97, 0x43, 0xE8, + 0x93, 0xAE, 0x43, 0xE8, 0x93, 0xB1, 0x43, 0xE8, + 0x93, 0xB3, 0x43, 0xE8, 0x93, 0xBC, 0x43, 0xE8, + 0x94, 0x96, 0x43, 0xE8, 0x95, 0xA4, 0x43, 0xE8, + // Bytes 1380 - 13bf + 0x97, 0x8D, 0x43, 0xE8, 0x97, 0xBA, 0x43, 0xE8, + 0x98, 0x86, 0x43, 0xE8, 0x98, 0x92, 0x43, 0xE8, + 0x98, 0xAD, 0x43, 0xE8, 0x98, 0xBF, 0x43, 0xE8, + 0x99, 0x8D, 0x43, 0xE8, 0x99, 0x90, 0x43, 0xE8, + 0x99, 0x9C, 0x43, 0xE8, 0x99, 0xA7, 0x43, 0xE8, + 0x99, 0xA9, 0x43, 0xE8, 0x99, 0xAB, 0x43, 0xE8, + 0x9A, 0x88, 0x43, 0xE8, 0x9A, 0xA9, 0x43, 0xE8, + 0x9B, 0xA2, 0x43, 0xE8, 0x9C, 0x8E, 0x43, 0xE8, + // Bytes 13c0 - 13ff + 0x9C, 0xA8, 0x43, 0xE8, 0x9D, 0xAB, 0x43, 0xE8, + 0x9D, 0xB9, 0x43, 0xE8, 0x9E, 0x86, 0x43, 0xE8, + 0x9E, 0xBA, 0x43, 0xE8, 0x9F, 0xA1, 0x43, 0xE8, + 0xA0, 0x81, 0x43, 0xE8, 0xA0, 0x9F, 0x43, 0xE8, + 0xA1, 0x80, 0x43, 0xE8, 0xA1, 0x8C, 0x43, 0xE8, + 0xA1, 0xA0, 0x43, 0xE8, 0xA1, 0xA3, 0x43, 0xE8, + 0xA3, 0x82, 0x43, 0xE8, 0xA3, 0x8F, 0x43, 0xE8, + 0xA3, 0x97, 0x43, 0xE8, 0xA3, 0x9E, 0x43, 0xE8, + // Bytes 1400 - 143f + 0xA3, 0xA1, 0x43, 0xE8, 0xA3, 0xB8, 0x43, 0xE8, + 0xA3, 0xBA, 0x43, 0xE8, 0xA4, 0x90, 0x43, 0xE8, + 0xA5, 0x81, 0x43, 0xE8, 0xA5, 0xA4, 0x43, 0xE8, + 0xA5, 0xBE, 0x43, 0xE8, 0xA6, 0x86, 0x43, 0xE8, + 0xA6, 0x8B, 0x43, 0xE8, 0xA6, 0x96, 0x43, 0xE8, + 0xA7, 0x92, 0x43, 0xE8, 0xA7, 0xA3, 0x43, 0xE8, + 0xA8, 0x80, 0x43, 0xE8, 0xAA, 0xA0, 0x43, 0xE8, + 0xAA, 0xAA, 0x43, 0xE8, 0xAA, 0xBF, 0x43, 0xE8, + // Bytes 1440 - 147f + 0xAB, 0x8B, 0x43, 0xE8, 0xAB, 0x92, 0x43, 0xE8, + 0xAB, 0x96, 0x43, 0xE8, 0xAB, 0xAD, 0x43, 0xE8, + 0xAB, 0xB8, 0x43, 0xE8, 0xAB, 0xBE, 0x43, 0xE8, + 0xAC, 0x81, 0x43, 0xE8, 0xAC, 0xB9, 0x43, 0xE8, + 0xAD, 0x98, 0x43, 0xE8, 0xAE, 0x80, 0x43, 0xE8, + 0xAE, 0x8A, 0x43, 0xE8, 0xB0, 0xB7, 0x43, 0xE8, + 0xB1, 0x86, 0x43, 0xE8, 0xB1, 0x88, 0x43, 0xE8, + 0xB1, 0x95, 0x43, 0xE8, 0xB1, 0xB8, 0x43, 0xE8, + // Bytes 1480 - 14bf + 0xB2, 0x9D, 0x43, 0xE8, 0xB2, 0xA1, 0x43, 0xE8, + 0xB2, 0xA9, 0x43, 0xE8, 0xB2, 0xAB, 0x43, 0xE8, + 0xB3, 0x81, 0x43, 0xE8, 0xB3, 0x82, 0x43, 0xE8, + 0xB3, 0x87, 0x43, 0xE8, 0xB3, 0x88, 0x43, 0xE8, + 0xB3, 0x93, 0x43, 0xE8, 0xB4, 0x88, 0x43, 0xE8, + 0xB4, 0x9B, 0x43, 0xE8, 0xB5, 0xA4, 0x43, 0xE8, + 0xB5, 0xB0, 0x43, 0xE8, 0xB5, 0xB7, 0x43, 0xE8, + 0xB6, 0xB3, 0x43, 0xE8, 0xB6, 0xBC, 0x43, 0xE8, + // Bytes 14c0 - 14ff + 0xB7, 0x8B, 0x43, 0xE8, 0xB7, 0xAF, 0x43, 0xE8, + 0xB7, 0xB0, 0x43, 0xE8, 0xBA, 0xAB, 0x43, 0xE8, + 0xBB, 0x8A, 0x43, 0xE8, 0xBB, 0x94, 0x43, 0xE8, + 0xBC, 0xA6, 0x43, 0xE8, 0xBC, 0xAA, 0x43, 0xE8, + 0xBC, 0xB8, 0x43, 0xE8, 0xBC, 0xBB, 0x43, 0xE8, + 0xBD, 0xA2, 0x43, 0xE8, 0xBE, 0x9B, 0x43, 0xE8, + 0xBE, 0x9E, 0x43, 0xE8, 0xBE, 0xB0, 0x43, 0xE8, + 0xBE, 0xB5, 0x43, 0xE8, 0xBE, 0xB6, 0x43, 0xE9, + // Bytes 1500 - 153f + 0x80, 0xA3, 0x43, 0xE9, 0x80, 0xB8, 0x43, 0xE9, + 0x81, 0x8A, 0x43, 0xE9, 0x81, 0xA9, 0x43, 0xE9, + 0x81, 0xB2, 0x43, 0xE9, 0x81, 0xBC, 0x43, 0xE9, + 0x82, 0x8F, 0x43, 0xE9, 0x82, 0x91, 0x43, 0xE9, + 0x82, 0x94, 0x43, 0xE9, 0x83, 0x8E, 0x43, 0xE9, + 0x83, 0x9E, 0x43, 0xE9, 0x83, 0xB1, 0x43, 0xE9, + 0x83, 0xBD, 0x43, 0xE9, 0x84, 0x91, 0x43, 0xE9, + 0x84, 0x9B, 0x43, 0xE9, 0x85, 0x89, 0x43, 0xE9, + // Bytes 1540 - 157f + 0x85, 0x8D, 0x43, 0xE9, 0x85, 0xAA, 0x43, 0xE9, + 0x86, 0x99, 0x43, 0xE9, 0x86, 0xB4, 0x43, 0xE9, + 0x87, 0x86, 0x43, 0xE9, 0x87, 0x8C, 0x43, 0xE9, + 0x87, 0x8F, 0x43, 0xE9, 0x87, 0x91, 0x43, 0xE9, + 0x88, 0xB4, 0x43, 0xE9, 0x88, 0xB8, 0x43, 0xE9, + 0x89, 0xB6, 0x43, 0xE9, 0x89, 0xBC, 0x43, 0xE9, + 0x8B, 0x97, 0x43, 0xE9, 0x8B, 0x98, 0x43, 0xE9, + 0x8C, 0x84, 0x43, 0xE9, 0x8D, 0x8A, 0x43, 0xE9, + // Bytes 1580 - 15bf + 0x8F, 0xB9, 0x43, 0xE9, 0x90, 0x95, 0x43, 0xE9, + 0x95, 0xB7, 0x43, 0xE9, 0x96, 0x80, 0x43, 0xE9, + 0x96, 0x8B, 0x43, 0xE9, 0x96, 0xAD, 0x43, 0xE9, + 0x96, 0xB7, 0x43, 0xE9, 0x98, 0x9C, 0x43, 0xE9, + 0x98, 0xAE, 0x43, 0xE9, 0x99, 0x8B, 0x43, 0xE9, + 0x99, 0x8D, 0x43, 0xE9, 0x99, 0xB5, 0x43, 0xE9, + 0x99, 0xB8, 0x43, 0xE9, 0x99, 0xBC, 0x43, 0xE9, + 0x9A, 0x86, 0x43, 0xE9, 0x9A, 0xA3, 0x43, 0xE9, + // Bytes 15c0 - 15ff + 0x9A, 0xB6, 0x43, 0xE9, 0x9A, 0xB7, 0x43, 0xE9, + 0x9A, 0xB8, 0x43, 0xE9, 0x9A, 0xB9, 0x43, 0xE9, + 0x9B, 0x83, 0x43, 0xE9, 0x9B, 0xA2, 0x43, 0xE9, + 0x9B, 0xA3, 0x43, 0xE9, 0x9B, 0xA8, 0x43, 0xE9, + 0x9B, 0xB6, 0x43, 0xE9, 0x9B, 0xB7, 0x43, 0xE9, + 0x9C, 0xA3, 0x43, 0xE9, 0x9C, 0xB2, 0x43, 0xE9, + 0x9D, 0x88, 0x43, 0xE9, 0x9D, 0x91, 0x43, 0xE9, + 0x9D, 0x96, 0x43, 0xE9, 0x9D, 0x9E, 0x43, 0xE9, + // Bytes 1600 - 163f + 0x9D, 0xA2, 0x43, 0xE9, 0x9D, 0xA9, 0x43, 0xE9, + 0x9F, 0x8B, 0x43, 0xE9, 0x9F, 0x9B, 0x43, 0xE9, + 0x9F, 0xA0, 0x43, 0xE9, 0x9F, 0xAD, 0x43, 0xE9, + 0x9F, 0xB3, 0x43, 0xE9, 0x9F, 0xBF, 0x43, 0xE9, + 0xA0, 0x81, 0x43, 0xE9, 0xA0, 0x85, 0x43, 0xE9, + 0xA0, 0x8B, 0x43, 0xE9, 0xA0, 0x98, 0x43, 0xE9, + 0xA0, 0xA9, 0x43, 0xE9, 0xA0, 0xBB, 0x43, 0xE9, + 0xA1, 0x9E, 0x43, 0xE9, 0xA2, 0xA8, 0x43, 0xE9, + // Bytes 1640 - 167f + 0xA3, 0x9B, 0x43, 0xE9, 0xA3, 0x9F, 0x43, 0xE9, + 0xA3, 0xA2, 0x43, 0xE9, 0xA3, 0xAF, 0x43, 0xE9, + 0xA3, 0xBC, 0x43, 0xE9, 0xA4, 0xA8, 0x43, 0xE9, + 0xA4, 0xA9, 0x43, 0xE9, 0xA6, 0x96, 0x43, 0xE9, + 0xA6, 0x99, 0x43, 0xE9, 0xA6, 0xA7, 0x43, 0xE9, + 0xA6, 0xAC, 0x43, 0xE9, 0xA7, 0x82, 0x43, 0xE9, + 0xA7, 0xB1, 0x43, 0xE9, 0xA7, 0xBE, 0x43, 0xE9, + 0xA9, 0xAA, 0x43, 0xE9, 0xAA, 0xA8, 0x43, 0xE9, + // Bytes 1680 - 16bf + 0xAB, 0x98, 0x43, 0xE9, 0xAB, 0x9F, 0x43, 0xE9, + 0xAC, 0x92, 0x43, 0xE9, 0xAC, 0xA5, 0x43, 0xE9, + 0xAC, 0xAF, 0x43, 0xE9, 0xAC, 0xB2, 0x43, 0xE9, + 0xAC, 0xBC, 0x43, 0xE9, 0xAD, 0x9A, 0x43, 0xE9, + 0xAD, 0xAF, 0x43, 0xE9, 0xB1, 0x80, 0x43, 0xE9, + 0xB1, 0x97, 0x43, 0xE9, 0xB3, 0xA5, 0x43, 0xE9, + 0xB3, 0xBD, 0x43, 0xE9, 0xB5, 0xA7, 0x43, 0xE9, + 0xB6, 0xB4, 0x43, 0xE9, 0xB7, 0xBA, 0x43, 0xE9, + // Bytes 16c0 - 16ff + 0xB8, 0x9E, 0x43, 0xE9, 0xB9, 0xB5, 0x43, 0xE9, + 0xB9, 0xBF, 0x43, 0xE9, 0xBA, 0x97, 0x43, 0xE9, + 0xBA, 0x9F, 0x43, 0xE9, 0xBA, 0xA5, 0x43, 0xE9, + 0xBA, 0xBB, 0x43, 0xE9, 0xBB, 0x83, 0x43, 0xE9, + 0xBB, 0x8D, 0x43, 0xE9, 0xBB, 0x8E, 0x43, 0xE9, + 0xBB, 0x91, 0x43, 0xE9, 0xBB, 0xB9, 0x43, 0xE9, + 0xBB, 0xBD, 0x43, 0xE9, 0xBB, 0xBE, 0x43, 0xE9, + 0xBC, 0x85, 0x43, 0xE9, 0xBC, 0x8E, 0x43, 0xE9, + // Bytes 1700 - 173f + 0xBC, 0x8F, 0x43, 0xE9, 0xBC, 0x93, 0x43, 0xE9, + 0xBC, 0x96, 0x43, 0xE9, 0xBC, 0xA0, 0x43, 0xE9, + 0xBC, 0xBB, 0x43, 0xE9, 0xBD, 0x83, 0x43, 0xE9, + 0xBD, 0x8A, 0x43, 0xE9, 0xBD, 0x92, 0x43, 0xE9, + 0xBE, 0x8D, 0x43, 0xE9, 0xBE, 0x8E, 0x43, 0xE9, + 0xBE, 0x9C, 0x43, 0xE9, 0xBE, 0x9F, 0x43, 0xE9, + 0xBE, 0xA0, 0x43, 0xEA, 0x99, 0x91, 0x43, 0xEA, + 0x9A, 0x89, 0x43, 0xEA, 0x9C, 0xA7, 0x43, 0xEA, + // Bytes 1740 - 177f + 0x9D, 0xAF, 0x43, 0xEA, 0x9E, 0x8E, 0x43, 0xEA, + 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x43, 0xEA, + 0xAD, 0xA6, 0x43, 0xEA, 0xAD, 0xA7, 0x44, 0xF0, + 0x9D, 0xBC, 0x84, 0x44, 0xF0, 0x9D, 0xBC, 0x85, + 0x44, 0xF0, 0x9D, 0xBC, 0x86, 0x44, 0xF0, 0x9D, + 0xBC, 0x88, 0x44, 0xF0, 0x9D, 0xBC, 0x8A, 0x44, + 0xF0, 0x9D, 0xBC, 0x9E, 0x44, 0xF0, 0xA0, 0x84, + 0xA2, 0x44, 0xF0, 0xA0, 0x94, 0x9C, 0x44, 0xF0, + // Bytes 1780 - 17bf + 0xA0, 0x94, 0xA5, 0x44, 0xF0, 0xA0, 0x95, 0x8B, + 0x44, 0xF0, 0xA0, 0x98, 0xBA, 0x44, 0xF0, 0xA0, + 0xA0, 0x84, 0x44, 0xF0, 0xA0, 0xA3, 0x9E, 0x44, + 0xF0, 0xA0, 0xA8, 0xAC, 0x44, 0xF0, 0xA0, 0xAD, + 0xA3, 0x44, 0xF0, 0xA1, 0x93, 0xA4, 0x44, 0xF0, + 0xA1, 0x9A, 0xA8, 0x44, 0xF0, 0xA1, 0x9B, 0xAA, + 0x44, 0xF0, 0xA1, 0xA7, 0x88, 0x44, 0xF0, 0xA1, + 0xAC, 0x98, 0x44, 0xF0, 0xA1, 0xB4, 0x8B, 0x44, + // Bytes 17c0 - 17ff + 0xF0, 0xA1, 0xB7, 0xA4, 0x44, 0xF0, 0xA1, 0xB7, + 0xA6, 0x44, 0xF0, 0xA2, 0x86, 0x83, 0x44, 0xF0, + 0xA2, 0x86, 0x9F, 0x44, 0xF0, 0xA2, 0x8C, 0xB1, + 0x44, 0xF0, 0xA2, 0x9B, 0x94, 0x44, 0xF0, 0xA2, + 0xA1, 0x84, 0x44, 0xF0, 0xA2, 0xA1, 0x8A, 0x44, + 0xF0, 0xA2, 0xAC, 0x8C, 0x44, 0xF0, 0xA2, 0xAF, + 0xB1, 0x44, 0xF0, 0xA3, 0x80, 0x8A, 0x44, 0xF0, + 0xA3, 0x8A, 0xB8, 0x44, 0xF0, 0xA3, 0x8D, 0x9F, + // Bytes 1800 - 183f + 0x44, 0xF0, 0xA3, 0x8E, 0x93, 0x44, 0xF0, 0xA3, + 0x8E, 0x9C, 0x44, 0xF0, 0xA3, 0x8F, 0x83, 0x44, + 0xF0, 0xA3, 0x8F, 0x95, 0x44, 0xF0, 0xA3, 0x91, + 0xAD, 0x44, 0xF0, 0xA3, 0x9A, 0xA3, 0x44, 0xF0, + 0xA3, 0xA2, 0xA7, 0x44, 0xF0, 0xA3, 0xAA, 0x8D, + 0x44, 0xF0, 0xA3, 0xAB, 0xBA, 0x44, 0xF0, 0xA3, + 0xB2, 0xBC, 0x44, 0xF0, 0xA3, 0xB4, 0x9E, 0x44, + 0xF0, 0xA3, 0xBB, 0x91, 0x44, 0xF0, 0xA3, 0xBD, + // Bytes 1840 - 187f + 0x9E, 0x44, 0xF0, 0xA3, 0xBE, 0x8E, 0x44, 0xF0, + 0xA4, 0x89, 0xA3, 0x44, 0xF0, 0xA4, 0x8B, 0xAE, + 0x44, 0xF0, 0xA4, 0x8E, 0xAB, 0x44, 0xF0, 0xA4, + 0x98, 0x88, 0x44, 0xF0, 0xA4, 0x9C, 0xB5, 0x44, + 0xF0, 0xA4, 0xA0, 0x94, 0x44, 0xF0, 0xA4, 0xB0, + 0xB6, 0x44, 0xF0, 0xA4, 0xB2, 0x92, 0x44, 0xF0, + 0xA4, 0xBE, 0xA1, 0x44, 0xF0, 0xA4, 0xBE, 0xB8, + 0x44, 0xF0, 0xA5, 0x81, 0x84, 0x44, 0xF0, 0xA5, + // Bytes 1880 - 18bf + 0x83, 0xB2, 0x44, 0xF0, 0xA5, 0x83, 0xB3, 0x44, + 0xF0, 0xA5, 0x84, 0x99, 0x44, 0xF0, 0xA5, 0x84, + 0xB3, 0x44, 0xF0, 0xA5, 0x89, 0x89, 0x44, 0xF0, + 0xA5, 0x90, 0x9D, 0x44, 0xF0, 0xA5, 0x98, 0xA6, + 0x44, 0xF0, 0xA5, 0x9A, 0x9A, 0x44, 0xF0, 0xA5, + 0x9B, 0x85, 0x44, 0xF0, 0xA5, 0xA5, 0xBC, 0x44, + 0xF0, 0xA5, 0xAA, 0xA7, 0x44, 0xF0, 0xA5, 0xAE, + 0xAB, 0x44, 0xF0, 0xA5, 0xB2, 0x80, 0x44, 0xF0, + // Bytes 18c0 - 18ff + 0xA5, 0xB3, 0x90, 0x44, 0xF0, 0xA5, 0xBE, 0x86, + 0x44, 0xF0, 0xA6, 0x87, 0x9A, 0x44, 0xF0, 0xA6, + 0x88, 0xA8, 0x44, 0xF0, 0xA6, 0x89, 0x87, 0x44, + 0xF0, 0xA6, 0x8B, 0x99, 0x44, 0xF0, 0xA6, 0x8C, + 0xBE, 0x44, 0xF0, 0xA6, 0x93, 0x9A, 0x44, 0xF0, + 0xA6, 0x94, 0xA3, 0x44, 0xF0, 0xA6, 0x96, 0xA8, + 0x44, 0xF0, 0xA6, 0x9E, 0xA7, 0x44, 0xF0, 0xA6, + 0x9E, 0xB5, 0x44, 0xF0, 0xA6, 0xAC, 0xBC, 0x44, + // Bytes 1900 - 193f + 0xF0, 0xA6, 0xB0, 0xB6, 0x44, 0xF0, 0xA6, 0xB3, + 0x95, 0x44, 0xF0, 0xA6, 0xB5, 0xAB, 0x44, 0xF0, + 0xA6, 0xBC, 0xAC, 0x44, 0xF0, 0xA6, 0xBE, 0xB1, + 0x44, 0xF0, 0xA7, 0x83, 0x92, 0x44, 0xF0, 0xA7, + 0x8F, 0x8A, 0x44, 0xF0, 0xA7, 0x99, 0xA7, 0x44, + 0xF0, 0xA7, 0xA2, 0xAE, 0x44, 0xF0, 0xA7, 0xA5, + 0xA6, 0x44, 0xF0, 0xA7, 0xB2, 0xA8, 0x44, 0xF0, + 0xA7, 0xBB, 0x93, 0x44, 0xF0, 0xA7, 0xBC, 0xAF, + // Bytes 1940 - 197f + 0x44, 0xF0, 0xA8, 0x97, 0x92, 0x44, 0xF0, 0xA8, + 0x97, 0xAD, 0x44, 0xF0, 0xA8, 0x9C, 0xAE, 0x44, + 0xF0, 0xA8, 0xAF, 0xBA, 0x44, 0xF0, 0xA8, 0xB5, + 0xB7, 0x44, 0xF0, 0xA9, 0x85, 0x85, 0x44, 0xF0, + 0xA9, 0x87, 0x9F, 0x44, 0xF0, 0xA9, 0x88, 0x9A, + 0x44, 0xF0, 0xA9, 0x90, 0x8A, 0x44, 0xF0, 0xA9, + 0x92, 0x96, 0x44, 0xF0, 0xA9, 0x96, 0xB6, 0x44, + 0xF0, 0xA9, 0xAC, 0xB0, 0x44, 0xF0, 0xAA, 0x83, + // Bytes 1980 - 19bf + 0x8E, 0x44, 0xF0, 0xAA, 0x84, 0x85, 0x44, 0xF0, + 0xAA, 0x88, 0x8E, 0x44, 0xF0, 0xAA, 0x8A, 0x91, + 0x44, 0xF0, 0xAA, 0x8E, 0x92, 0x44, 0xF0, 0xAA, + 0x98, 0x80, 0x42, 0x21, 0x21, 0x42, 0x21, 0x3F, + 0x42, 0x2E, 0x2E, 0x42, 0x30, 0x2C, 0x42, 0x30, + 0x2E, 0x42, 0x31, 0x2C, 0x42, 0x31, 0x2E, 0x42, + 0x31, 0x30, 0x42, 0x31, 0x31, 0x42, 0x31, 0x32, + 0x42, 0x31, 0x33, 0x42, 0x31, 0x34, 0x42, 0x31, + // Bytes 19c0 - 19ff + 0x35, 0x42, 0x31, 0x36, 0x42, 0x31, 0x37, 0x42, + 0x31, 0x38, 0x42, 0x31, 0x39, 0x42, 0x32, 0x2C, + 0x42, 0x32, 0x2E, 0x42, 0x32, 0x30, 0x42, 0x32, + 0x31, 0x42, 0x32, 0x32, 0x42, 0x32, 0x33, 0x42, + 0x32, 0x34, 0x42, 0x32, 0x35, 0x42, 0x32, 0x36, + 0x42, 0x32, 0x37, 0x42, 0x32, 0x38, 0x42, 0x32, + 0x39, 0x42, 0x33, 0x2C, 0x42, 0x33, 0x2E, 0x42, + 0x33, 0x30, 0x42, 0x33, 0x31, 0x42, 0x33, 0x32, + // Bytes 1a00 - 1a3f + 0x42, 0x33, 0x33, 0x42, 0x33, 0x34, 0x42, 0x33, + 0x35, 0x42, 0x33, 0x36, 0x42, 0x33, 0x37, 0x42, + 0x33, 0x38, 0x42, 0x33, 0x39, 0x42, 0x34, 0x2C, + 0x42, 0x34, 0x2E, 0x42, 0x34, 0x30, 0x42, 0x34, + 0x31, 0x42, 0x34, 0x32, 0x42, 0x34, 0x33, 0x42, + 0x34, 0x34, 0x42, 0x34, 0x35, 0x42, 0x34, 0x36, + 0x42, 0x34, 0x37, 0x42, 0x34, 0x38, 0x42, 0x34, + 0x39, 0x42, 0x35, 0x2C, 0x42, 0x35, 0x2E, 0x42, + // Bytes 1a40 - 1a7f + 0x35, 0x30, 0x42, 0x36, 0x2C, 0x42, 0x36, 0x2E, + 0x42, 0x37, 0x2C, 0x42, 0x37, 0x2E, 0x42, 0x38, + 0x2C, 0x42, 0x38, 0x2E, 0x42, 0x39, 0x2C, 0x42, + 0x39, 0x2E, 0x42, 0x3D, 0x3D, 0x42, 0x3F, 0x21, + 0x42, 0x3F, 0x3F, 0x42, 0x41, 0x55, 0x42, 0x42, + 0x71, 0x42, 0x43, 0x44, 0x42, 0x44, 0x4A, 0x42, + 0x44, 0x5A, 0x42, 0x44, 0x7A, 0x42, 0x47, 0x42, + 0x42, 0x47, 0x79, 0x42, 0x48, 0x50, 0x42, 0x48, + // Bytes 1a80 - 1abf + 0x56, 0x42, 0x48, 0x67, 0x42, 0x48, 0x7A, 0x42, + 0x49, 0x49, 0x42, 0x49, 0x4A, 0x42, 0x49, 0x55, + 0x42, 0x49, 0x56, 0x42, 0x49, 0x58, 0x42, 0x4B, + 0x42, 0x42, 0x4B, 0x4B, 0x42, 0x4B, 0x4D, 0x42, + 0x4C, 0x4A, 0x42, 0x4C, 0x6A, 0x42, 0x4D, 0x42, + 0x42, 0x4D, 0x43, 0x42, 0x4D, 0x44, 0x42, 0x4D, + 0x52, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, + 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, + // Bytes 1ac0 - 1aff + 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, + 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, + 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, + 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, + 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, + 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, + 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, + 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, + // Bytes 1b00 - 1b3f + 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, + 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, + 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, + 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, + 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, + 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, + 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, + 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, + // Bytes 1b40 - 1b7f + 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, + 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, + 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, + 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, + 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, + 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, + 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, + 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, + // Bytes 1b80 - 1bbf + 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, + 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, + 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, + 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, + 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, + 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, + 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, + 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, + // Bytes 1bc0 - 1bff + 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, + 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, + 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, + 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, + 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, + 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, + 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, + 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, + // Bytes 1c00 - 1c3f + 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, + 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, + 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, + 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, + 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, + 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, + 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, + 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, + // Bytes 1c40 - 1c7f + 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, + 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, + 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, + 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, + 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, + 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, + 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, + 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, + // Bytes 1c80 - 1cbf + 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, + 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, + 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, + 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, + 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, + 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, + 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, + 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, + // Bytes 1cc0 - 1cff + 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, + 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, + 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, + 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, + 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, + 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, + 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, + 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, + // Bytes 1d00 - 1d3f + 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, + 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, + 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, + 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, + 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, + 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, + 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, + 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, + // Bytes 1d40 - 1d7f + 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, + 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, + 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, + 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, + 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, + 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, + 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, + 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, + // Bytes 1d80 - 1dbf + 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, + 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, + 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, + 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, + 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, + 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, + 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, + 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, + // Bytes 1dc0 - 1dff + 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, + 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, + 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, + 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, + 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, + 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, + 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, + 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, + // Bytes 1e00 - 1e3f + 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, + 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, + 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, + 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, + 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, + 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, + 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, + 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, + // Bytes 1e40 - 1e7f + 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, + 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, + 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, + 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, + 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, + 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, + 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, + 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, + // Bytes 1e80 - 1ebf + 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, + 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, + 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, + 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, + 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, + 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, + 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, + 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, + // Bytes 1ec0 - 1eff + 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, + 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, + 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, + 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, + 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, + 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, + 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, + 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, + // Bytes 1f00 - 1f3f + 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, + 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, + 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, + 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, + 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, + 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, + 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, + 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, + // Bytes 1f40 - 1f7f + 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, + 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, + 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, + 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, + 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, + 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, + 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, + 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, + // Bytes 1f80 - 1fbf + 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, + 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, + 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, + 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, + 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, + 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, + 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, + 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, + // Bytes 1fc0 - 1fff + 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, + 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, + 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, + 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, + 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, + 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, + 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, + 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, + // Bytes 2000 - 203f + 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, + 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, + 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, + 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, + 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, + 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, + 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, + 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, + // Bytes 2040 - 207f + 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, + 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, + 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, + 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, + 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, + 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, + 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, + 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, + // Bytes 2080 - 20bf + 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, + 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, + 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, + 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, + 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, + 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, + 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, + 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, + // Bytes 20c0 - 20ff + 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, + 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, + 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, + 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, + 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, + 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, + 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, + 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, + // Bytes 2100 - 213f + 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, + 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, + 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, + 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, + 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, + 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, + 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, + 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, + // Bytes 2140 - 217f + 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, + 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, + 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, + 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, + 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, + 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, + 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, + 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, + // Bytes 2180 - 21bf + 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, + 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, + 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, + // Bytes 21c0 - 21ff + 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, + 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, + 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, + 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, + 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, + 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, + 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, + 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, + // Bytes 2200 - 223f + 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, + 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, + 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, + 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, + 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, + 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, + 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, + 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, + // Bytes 2240 - 227f + 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, + 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, + 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, + 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, + 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, + 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, + 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, + 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, + // Bytes 2280 - 22bf + 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, + 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, + 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, + 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, + 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, + 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, + 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, + // Bytes 22c0 - 22ff + 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, + 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, + 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, + // Bytes 2300 - 233f + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, + 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, + 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, + // Bytes 2340 - 237f + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, + 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, + 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, + 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, + 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, + // Bytes 2380 - 23bf + 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, + 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, + 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, + 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, + // Bytes 23c0 - 23ff + 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, + 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, + 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, + 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, + 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, + 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, + // Bytes 2400 - 243f + 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, + 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, + 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, + 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, + 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, + 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, + 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, + // Bytes 2440 - 247f + 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, + 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, + 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, + 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, + 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, + // Bytes 2480 - 24bf + 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, + 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, + 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, + 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, + 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + // Bytes 24c0 - 24ff + 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, + 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, + 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, + 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, + 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, + 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, + // Bytes 2500 - 253f + 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, + 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, + 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, + 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, + 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, + 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, + 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, + 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, + // Bytes 2540 - 257f + 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, + 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, + 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, + 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, + 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, + 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, + // Bytes 2580 - 25bf + 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, + 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, + 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, + 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, + 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, + 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, + 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, + // Bytes 25c0 - 25ff + 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, + 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, + 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, + 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, + 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, + 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, + 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, + // Bytes 2600 - 263f + 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, + 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, + 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, + 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, + 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, + 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, + 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, + 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, + // Bytes 2640 - 267f + 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, + 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, + 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, + 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, + 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, + 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, + 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, + 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, + // Bytes 2680 - 26bf + 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, + 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, + 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, + 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, + 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, + 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, + 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, + 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, + // Bytes 26c0 - 26ff + 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, + 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, + 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, + 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, + 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, + // Bytes 2700 - 273f + 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, + 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, + 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, + 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, + 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, + 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, + 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, + // Bytes 2740 - 277f + 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, + 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, + 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, + 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, + 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, + 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, + 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, + // Bytes 2780 - 27bf + 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, + 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, + 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, + 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, + 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, + 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, + 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, + 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, + // Bytes 27c0 - 27ff + 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, + 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, + 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, + 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, + 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, + 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, + 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, + 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, + // Bytes 2800 - 283f + 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, + 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, + 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, + 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, + 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, + 0x83, 0xA0, 0x46, 0xE4, 0xBB, 0xA4, 0xE5, 0x92, + 0x8C, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, 0xA3, + 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, 0x46, + // Bytes 2840 - 287f + 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, 0xE6, + 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, 0x61, + 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, 0x80, + 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, 0xE1, + 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x29, + 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, + // Bytes 2880 - 28bf + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x89, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, + 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, + 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, + 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, 0x48, + 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x29, + // Bytes 28c0 - 28ff + 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, + 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, 0x85, + 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, 0xE1, + 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x92, + 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, 0x64, + 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, 0xA7, + 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, 0xD8, + 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, 0x48, + // Bytes 2900 - 293f + 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, 0x84, + 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, 0xD9, + 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, 0xB9, + 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, + 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, 0xAD, + 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, 0xD8, + 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, 0x80, + 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x49, + // Bytes 2940 - 297f + 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80, + 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, + 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, 0xE2, + 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, 0x80, + 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, 0x49, + 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, 0x80, + 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, 0x9D, + 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, + // Bytes 2980 - 29bf + 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, + 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, 0x49, + 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, 0x80, + 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, 0xAC, + 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, + 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, + 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, 0x49, + 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + // Bytes 29c0 - 29ff + 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, 0xE3, + 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x82, + 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x49, + 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xA4, + 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, 0xE3, + 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, + // Bytes 2a00 - 2a3f + 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, 0x49, + 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, + 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, 0xE3, + 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, 0x83, + 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, + 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, 0x83, + 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0xA4, + // Bytes 2a40 - 2a7f + 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, + 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, 0x49, + 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, 0x83, + 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, + 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, 0xE3, + 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, + 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, + // Bytes 2a80 - 2abf + 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, + 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, 0xE3, + 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, 0x83, + 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, 0x49, + 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, 0xA2, + 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, 0xE3, + // Bytes 2ac0 - 2aff + 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, 0x80, + 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, + 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, 0x88, + 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x4C, + 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, 0x83, + 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, 0xA8, + 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x83, + 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, + // Bytes 2b00 - 2b3f + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, + 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, + 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, + 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, 0xE3, + 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, + 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, 0xE3, + 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x83, + // Bytes 2b40 - 2b7f + 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, + 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, 0xAF, + 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0xA4, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, + 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, + 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, 0xE3, + // Bytes 2b80 - 2bbf + 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x84, + 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, + 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, + 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, + 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, 0x4C, + 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, 0x98, + // Bytes 2bc0 - 2bff + 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x82, + 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, + 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, 0xE3, + 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF, + 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, 0xE3, + 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, + 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3, + 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, + // Bytes 2c00 - 2c3f + 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, 0x83, + 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0x4C, + 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, 0xBC, + 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, 0x84, + 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, 0xE1, + 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, 0x84, + 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, + // Bytes 2c40 - 2c7f + 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, 0xE3, + 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, 0xE3, + 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, + 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, 0xE3, + 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, + 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, 0xE3, + 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, 0xBC, + // Bytes 2c80 - 2cbf + 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAC, + 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, 0xE3, + 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, + 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, + 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, 0xE3, + 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xA7, + // Bytes 2cc0 - 2cff + 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, 0xE3, + 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x88, + 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, 0xE3, + 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, + 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, 0x8B, + 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, 0x85, + 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, 0x82, + 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, + // Bytes 2d00 - 2d3f + 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, + 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, + 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, + 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, 0xE3, + 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, + 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3, + 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, + 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, 0x83, + // Bytes 2d40 - 2d7f + 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, + 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, 0x8F, + 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82, + 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x52, + 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, + 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, 0xE3, + 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, 0x82, + // Bytes 2d80 - 2dbf + 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, 0xE3, + 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, + 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, 0xE3, + 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, + 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, 0xE3, + 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, + 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, 0x84, + 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, + // Bytes 2dc0 - 2dff + 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84, + 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8, + 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, 0xA7, + 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, 0xA7, + 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, 0xAD, + 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, 0xAD, + 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, 0xAD, + 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, 0xAE, + // Bytes 2e00 - 2e3f + 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF, + 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xAF, + 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF, + 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xB2, + 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3, + 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3, + 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, 0xB5, + 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB5, + // Bytes 2e40 - 2e7f + 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, 0xB5, + 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB7, + 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, 0x80, + 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, 0xAC, + 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, + 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, + 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, + 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, + // Bytes 2e80 - 2ebf + 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, + 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, + 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, + 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, + 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, + 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAD, + 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, 0x91, + 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, + // Bytes 2ec0 - 2eff + 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, 0xA7, + 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, + 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, + 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, 0x91, + 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, 0x08, + 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBA, + 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, + 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB8, + // Bytes 2f00 - 2f3f + 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91, + 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, + 0xF0, 0x91, 0xA4, 0xB5, 0xF0, 0x91, 0xA4, 0xB0, + 0x01, 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, + 0xE0, 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, + 0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x16, 0x44, + 0x44, 0x5A, 0xCC, 0x8C, 0xCD, 0x44, 0x44, 0x7A, + 0xCC, 0x8C, 0xCD, 0x44, 0x64, 0x7A, 0xCC, 0x8C, + // Bytes 2f40 - 2f7f + 0xCD, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, + 0xCD, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, + 0xCD, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, + 0xB9, 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, + 0x01, 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, + 0x01, 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, + 0x01, 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, + 0x01, 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, + // Bytes 2f80 - 2fbf + 0x01, 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, + 0x01, 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, + 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, + 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, + 0x01, 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, + 0x01, 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, + 0x01, 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, + 0x01, 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, + // Bytes 2fc0 - 2fff + 0x01, 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, + 0x01, 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, + 0x01, 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, + 0xE3, 0x82, 0x99, 0x11, 0x4C, 0xE1, 0x84, 0x8C, + 0xE1, 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, + 0xB4, 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, + 0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11, + 0x4C, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, + // Bytes 3000 - 303f + 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x11, 0x4C, 0xE3, + 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, + 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE1, 0x84, 0x8E, + 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, + 0x80, 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, + 0xA4, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, + 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, + 0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, + // Bytes 3040 - 307f + 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x4F, + 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, + 0xBC, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11, + 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, + 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, + 0x11, 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, + 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, + 0x88, 0xE3, 0x82, 0x99, 0x11, 0x52, 0xE3, 0x83, + // Bytes 3080 - 30bf + 0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, + 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, + 0x11, 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, + 0x01, 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, + 0x01, 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, + 0xCC, 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, + 0x03, 0x41, 0xCC, 0x80, 0xCD, 0x03, 0x41, 0xCC, + 0x81, 0xCD, 0x03, 0x41, 0xCC, 0x83, 0xCD, 0x03, + // Bytes 30c0 - 30ff + 0x41, 0xCC, 0x84, 0xCD, 0x03, 0x41, 0xCC, 0x89, + 0xCD, 0x03, 0x41, 0xCC, 0x8C, 0xCD, 0x03, 0x41, + 0xCC, 0x8F, 0xCD, 0x03, 0x41, 0xCC, 0x91, 0xCD, + 0x03, 0x41, 0xCC, 0xA5, 0xB9, 0x03, 0x41, 0xCC, + 0xA8, 0xA9, 0x03, 0x42, 0xCC, 0x87, 0xCD, 0x03, + 0x42, 0xCC, 0xA3, 0xB9, 0x03, 0x42, 0xCC, 0xB1, + 0xB9, 0x03, 0x43, 0xCC, 0x81, 0xCD, 0x03, 0x43, + 0xCC, 0x82, 0xCD, 0x03, 0x43, 0xCC, 0x87, 0xCD, + // Bytes 3100 - 313f + 0x03, 0x43, 0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC, + 0x87, 0xCD, 0x03, 0x44, 0xCC, 0x8C, 0xCD, 0x03, + 0x44, 0xCC, 0xA3, 0xB9, 0x03, 0x44, 0xCC, 0xA7, + 0xA9, 0x03, 0x44, 0xCC, 0xAD, 0xB9, 0x03, 0x44, + 0xCC, 0xB1, 0xB9, 0x03, 0x45, 0xCC, 0x80, 0xCD, + 0x03, 0x45, 0xCC, 0x81, 0xCD, 0x03, 0x45, 0xCC, + 0x83, 0xCD, 0x03, 0x45, 0xCC, 0x86, 0xCD, 0x03, + 0x45, 0xCC, 0x87, 0xCD, 0x03, 0x45, 0xCC, 0x88, + // Bytes 3140 - 317f + 0xCD, 0x03, 0x45, 0xCC, 0x89, 0xCD, 0x03, 0x45, + 0xCC, 0x8C, 0xCD, 0x03, 0x45, 0xCC, 0x8F, 0xCD, + 0x03, 0x45, 0xCC, 0x91, 0xCD, 0x03, 0x45, 0xCC, + 0xA8, 0xA9, 0x03, 0x45, 0xCC, 0xAD, 0xB9, 0x03, + 0x45, 0xCC, 0xB0, 0xB9, 0x03, 0x46, 0xCC, 0x87, + 0xCD, 0x03, 0x47, 0xCC, 0x81, 0xCD, 0x03, 0x47, + 0xCC, 0x82, 0xCD, 0x03, 0x47, 0xCC, 0x84, 0xCD, + 0x03, 0x47, 0xCC, 0x86, 0xCD, 0x03, 0x47, 0xCC, + // Bytes 3180 - 31bf + 0x87, 0xCD, 0x03, 0x47, 0xCC, 0x8C, 0xCD, 0x03, + 0x47, 0xCC, 0xA7, 0xA9, 0x03, 0x48, 0xCC, 0x82, + 0xCD, 0x03, 0x48, 0xCC, 0x87, 0xCD, 0x03, 0x48, + 0xCC, 0x88, 0xCD, 0x03, 0x48, 0xCC, 0x8C, 0xCD, + 0x03, 0x48, 0xCC, 0xA3, 0xB9, 0x03, 0x48, 0xCC, + 0xA7, 0xA9, 0x03, 0x48, 0xCC, 0xAE, 0xB9, 0x03, + 0x49, 0xCC, 0x80, 0xCD, 0x03, 0x49, 0xCC, 0x81, + 0xCD, 0x03, 0x49, 0xCC, 0x82, 0xCD, 0x03, 0x49, + // Bytes 31c0 - 31ff + 0xCC, 0x83, 0xCD, 0x03, 0x49, 0xCC, 0x84, 0xCD, + 0x03, 0x49, 0xCC, 0x86, 0xCD, 0x03, 0x49, 0xCC, + 0x87, 0xCD, 0x03, 0x49, 0xCC, 0x89, 0xCD, 0x03, + 0x49, 0xCC, 0x8C, 0xCD, 0x03, 0x49, 0xCC, 0x8F, + 0xCD, 0x03, 0x49, 0xCC, 0x91, 0xCD, 0x03, 0x49, + 0xCC, 0xA3, 0xB9, 0x03, 0x49, 0xCC, 0xA8, 0xA9, + 0x03, 0x49, 0xCC, 0xB0, 0xB9, 0x03, 0x4A, 0xCC, + 0x82, 0xCD, 0x03, 0x4B, 0xCC, 0x81, 0xCD, 0x03, + // Bytes 3200 - 323f + 0x4B, 0xCC, 0x8C, 0xCD, 0x03, 0x4B, 0xCC, 0xA3, + 0xB9, 0x03, 0x4B, 0xCC, 0xA7, 0xA9, 0x03, 0x4B, + 0xCC, 0xB1, 0xB9, 0x03, 0x4C, 0xCC, 0x81, 0xCD, + 0x03, 0x4C, 0xCC, 0x8C, 0xCD, 0x03, 0x4C, 0xCC, + 0xA7, 0xA9, 0x03, 0x4C, 0xCC, 0xAD, 0xB9, 0x03, + 0x4C, 0xCC, 0xB1, 0xB9, 0x03, 0x4D, 0xCC, 0x81, + 0xCD, 0x03, 0x4D, 0xCC, 0x87, 0xCD, 0x03, 0x4D, + 0xCC, 0xA3, 0xB9, 0x03, 0x4E, 0xCC, 0x80, 0xCD, + // Bytes 3240 - 327f + 0x03, 0x4E, 0xCC, 0x81, 0xCD, 0x03, 0x4E, 0xCC, + 0x83, 0xCD, 0x03, 0x4E, 0xCC, 0x87, 0xCD, 0x03, + 0x4E, 0xCC, 0x8C, 0xCD, 0x03, 0x4E, 0xCC, 0xA3, + 0xB9, 0x03, 0x4E, 0xCC, 0xA7, 0xA9, 0x03, 0x4E, + 0xCC, 0xAD, 0xB9, 0x03, 0x4E, 0xCC, 0xB1, 0xB9, + 0x03, 0x4F, 0xCC, 0x80, 0xCD, 0x03, 0x4F, 0xCC, + 0x81, 0xCD, 0x03, 0x4F, 0xCC, 0x86, 0xCD, 0x03, + 0x4F, 0xCC, 0x89, 0xCD, 0x03, 0x4F, 0xCC, 0x8B, + // Bytes 3280 - 32bf + 0xCD, 0x03, 0x4F, 0xCC, 0x8C, 0xCD, 0x03, 0x4F, + 0xCC, 0x8F, 0xCD, 0x03, 0x4F, 0xCC, 0x91, 0xCD, + 0x03, 0x50, 0xCC, 0x81, 0xCD, 0x03, 0x50, 0xCC, + 0x87, 0xCD, 0x03, 0x52, 0xCC, 0x81, 0xCD, 0x03, + 0x52, 0xCC, 0x87, 0xCD, 0x03, 0x52, 0xCC, 0x8C, + 0xCD, 0x03, 0x52, 0xCC, 0x8F, 0xCD, 0x03, 0x52, + 0xCC, 0x91, 0xCD, 0x03, 0x52, 0xCC, 0xA7, 0xA9, + 0x03, 0x52, 0xCC, 0xB1, 0xB9, 0x03, 0x53, 0xCC, + // Bytes 32c0 - 32ff + 0x82, 0xCD, 0x03, 0x53, 0xCC, 0x87, 0xCD, 0x03, + 0x53, 0xCC, 0xA6, 0xB9, 0x03, 0x53, 0xCC, 0xA7, + 0xA9, 0x03, 0x54, 0xCC, 0x87, 0xCD, 0x03, 0x54, + 0xCC, 0x8C, 0xCD, 0x03, 0x54, 0xCC, 0xA3, 0xB9, + 0x03, 0x54, 0xCC, 0xA6, 0xB9, 0x03, 0x54, 0xCC, + 0xA7, 0xA9, 0x03, 0x54, 0xCC, 0xAD, 0xB9, 0x03, + 0x54, 0xCC, 0xB1, 0xB9, 0x03, 0x55, 0xCC, 0x80, + 0xCD, 0x03, 0x55, 0xCC, 0x81, 0xCD, 0x03, 0x55, + // Bytes 3300 - 333f + 0xCC, 0x82, 0xCD, 0x03, 0x55, 0xCC, 0x86, 0xCD, + 0x03, 0x55, 0xCC, 0x89, 0xCD, 0x03, 0x55, 0xCC, + 0x8A, 0xCD, 0x03, 0x55, 0xCC, 0x8B, 0xCD, 0x03, + 0x55, 0xCC, 0x8C, 0xCD, 0x03, 0x55, 0xCC, 0x8F, + 0xCD, 0x03, 0x55, 0xCC, 0x91, 0xCD, 0x03, 0x55, + 0xCC, 0xA3, 0xB9, 0x03, 0x55, 0xCC, 0xA4, 0xB9, + 0x03, 0x55, 0xCC, 0xA8, 0xA9, 0x03, 0x55, 0xCC, + 0xAD, 0xB9, 0x03, 0x55, 0xCC, 0xB0, 0xB9, 0x03, + // Bytes 3340 - 337f + 0x56, 0xCC, 0x83, 0xCD, 0x03, 0x56, 0xCC, 0xA3, + 0xB9, 0x03, 0x57, 0xCC, 0x80, 0xCD, 0x03, 0x57, + 0xCC, 0x81, 0xCD, 0x03, 0x57, 0xCC, 0x82, 0xCD, + 0x03, 0x57, 0xCC, 0x87, 0xCD, 0x03, 0x57, 0xCC, + 0x88, 0xCD, 0x03, 0x57, 0xCC, 0xA3, 0xB9, 0x03, + 0x58, 0xCC, 0x87, 0xCD, 0x03, 0x58, 0xCC, 0x88, + 0xCD, 0x03, 0x59, 0xCC, 0x80, 0xCD, 0x03, 0x59, + 0xCC, 0x81, 0xCD, 0x03, 0x59, 0xCC, 0x82, 0xCD, + // Bytes 3380 - 33bf + 0x03, 0x59, 0xCC, 0x83, 0xCD, 0x03, 0x59, 0xCC, + 0x84, 0xCD, 0x03, 0x59, 0xCC, 0x87, 0xCD, 0x03, + 0x59, 0xCC, 0x88, 0xCD, 0x03, 0x59, 0xCC, 0x89, + 0xCD, 0x03, 0x59, 0xCC, 0xA3, 0xB9, 0x03, 0x5A, + 0xCC, 0x81, 0xCD, 0x03, 0x5A, 0xCC, 0x82, 0xCD, + 0x03, 0x5A, 0xCC, 0x87, 0xCD, 0x03, 0x5A, 0xCC, + 0x8C, 0xCD, 0x03, 0x5A, 0xCC, 0xA3, 0xB9, 0x03, + 0x5A, 0xCC, 0xB1, 0xB9, 0x03, 0x61, 0xCC, 0x80, + // Bytes 33c0 - 33ff + 0xCD, 0x03, 0x61, 0xCC, 0x81, 0xCD, 0x03, 0x61, + 0xCC, 0x83, 0xCD, 0x03, 0x61, 0xCC, 0x84, 0xCD, + 0x03, 0x61, 0xCC, 0x89, 0xCD, 0x03, 0x61, 0xCC, + 0x8C, 0xCD, 0x03, 0x61, 0xCC, 0x8F, 0xCD, 0x03, + 0x61, 0xCC, 0x91, 0xCD, 0x03, 0x61, 0xCC, 0xA5, + 0xB9, 0x03, 0x61, 0xCC, 0xA8, 0xA9, 0x03, 0x62, + 0xCC, 0x87, 0xCD, 0x03, 0x62, 0xCC, 0xA3, 0xB9, + 0x03, 0x62, 0xCC, 0xB1, 0xB9, 0x03, 0x63, 0xCC, + // Bytes 3400 - 343f + 0x81, 0xCD, 0x03, 0x63, 0xCC, 0x82, 0xCD, 0x03, + 0x63, 0xCC, 0x87, 0xCD, 0x03, 0x63, 0xCC, 0x8C, + 0xCD, 0x03, 0x64, 0xCC, 0x87, 0xCD, 0x03, 0x64, + 0xCC, 0x8C, 0xCD, 0x03, 0x64, 0xCC, 0xA3, 0xB9, + 0x03, 0x64, 0xCC, 0xA7, 0xA9, 0x03, 0x64, 0xCC, + 0xAD, 0xB9, 0x03, 0x64, 0xCC, 0xB1, 0xB9, 0x03, + 0x65, 0xCC, 0x80, 0xCD, 0x03, 0x65, 0xCC, 0x81, + 0xCD, 0x03, 0x65, 0xCC, 0x83, 0xCD, 0x03, 0x65, + // Bytes 3440 - 347f + 0xCC, 0x86, 0xCD, 0x03, 0x65, 0xCC, 0x87, 0xCD, + 0x03, 0x65, 0xCC, 0x88, 0xCD, 0x03, 0x65, 0xCC, + 0x89, 0xCD, 0x03, 0x65, 0xCC, 0x8C, 0xCD, 0x03, + 0x65, 0xCC, 0x8F, 0xCD, 0x03, 0x65, 0xCC, 0x91, + 0xCD, 0x03, 0x65, 0xCC, 0xA8, 0xA9, 0x03, 0x65, + 0xCC, 0xAD, 0xB9, 0x03, 0x65, 0xCC, 0xB0, 0xB9, + 0x03, 0x66, 0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC, + 0x81, 0xCD, 0x03, 0x67, 0xCC, 0x82, 0xCD, 0x03, + // Bytes 3480 - 34bf + 0x67, 0xCC, 0x84, 0xCD, 0x03, 0x67, 0xCC, 0x86, + 0xCD, 0x03, 0x67, 0xCC, 0x87, 0xCD, 0x03, 0x67, + 0xCC, 0x8C, 0xCD, 0x03, 0x67, 0xCC, 0xA7, 0xA9, + 0x03, 0x68, 0xCC, 0x82, 0xCD, 0x03, 0x68, 0xCC, + 0x87, 0xCD, 0x03, 0x68, 0xCC, 0x88, 0xCD, 0x03, + 0x68, 0xCC, 0x8C, 0xCD, 0x03, 0x68, 0xCC, 0xA3, + 0xB9, 0x03, 0x68, 0xCC, 0xA7, 0xA9, 0x03, 0x68, + 0xCC, 0xAE, 0xB9, 0x03, 0x68, 0xCC, 0xB1, 0xB9, + // Bytes 34c0 - 34ff + 0x03, 0x69, 0xCC, 0x80, 0xCD, 0x03, 0x69, 0xCC, + 0x81, 0xCD, 0x03, 0x69, 0xCC, 0x82, 0xCD, 0x03, + 0x69, 0xCC, 0x83, 0xCD, 0x03, 0x69, 0xCC, 0x84, + 0xCD, 0x03, 0x69, 0xCC, 0x86, 0xCD, 0x03, 0x69, + 0xCC, 0x89, 0xCD, 0x03, 0x69, 0xCC, 0x8C, 0xCD, + 0x03, 0x69, 0xCC, 0x8F, 0xCD, 0x03, 0x69, 0xCC, + 0x91, 0xCD, 0x03, 0x69, 0xCC, 0xA3, 0xB9, 0x03, + 0x69, 0xCC, 0xA8, 0xA9, 0x03, 0x69, 0xCC, 0xB0, + // Bytes 3500 - 353f + 0xB9, 0x03, 0x6A, 0xCC, 0x82, 0xCD, 0x03, 0x6A, + 0xCC, 0x8C, 0xCD, 0x03, 0x6B, 0xCC, 0x81, 0xCD, + 0x03, 0x6B, 0xCC, 0x8C, 0xCD, 0x03, 0x6B, 0xCC, + 0xA3, 0xB9, 0x03, 0x6B, 0xCC, 0xA7, 0xA9, 0x03, + 0x6B, 0xCC, 0xB1, 0xB9, 0x03, 0x6C, 0xCC, 0x81, + 0xCD, 0x03, 0x6C, 0xCC, 0x8C, 0xCD, 0x03, 0x6C, + 0xCC, 0xA7, 0xA9, 0x03, 0x6C, 0xCC, 0xAD, 0xB9, + 0x03, 0x6C, 0xCC, 0xB1, 0xB9, 0x03, 0x6D, 0xCC, + // Bytes 3540 - 357f + 0x81, 0xCD, 0x03, 0x6D, 0xCC, 0x87, 0xCD, 0x03, + 0x6D, 0xCC, 0xA3, 0xB9, 0x03, 0x6E, 0xCC, 0x80, + 0xCD, 0x03, 0x6E, 0xCC, 0x81, 0xCD, 0x03, 0x6E, + 0xCC, 0x83, 0xCD, 0x03, 0x6E, 0xCC, 0x87, 0xCD, + 0x03, 0x6E, 0xCC, 0x8C, 0xCD, 0x03, 0x6E, 0xCC, + 0xA3, 0xB9, 0x03, 0x6E, 0xCC, 0xA7, 0xA9, 0x03, + 0x6E, 0xCC, 0xAD, 0xB9, 0x03, 0x6E, 0xCC, 0xB1, + 0xB9, 0x03, 0x6F, 0xCC, 0x80, 0xCD, 0x03, 0x6F, + // Bytes 3580 - 35bf + 0xCC, 0x81, 0xCD, 0x03, 0x6F, 0xCC, 0x86, 0xCD, + 0x03, 0x6F, 0xCC, 0x89, 0xCD, 0x03, 0x6F, 0xCC, + 0x8B, 0xCD, 0x03, 0x6F, 0xCC, 0x8C, 0xCD, 0x03, + 0x6F, 0xCC, 0x8F, 0xCD, 0x03, 0x6F, 0xCC, 0x91, + 0xCD, 0x03, 0x70, 0xCC, 0x81, 0xCD, 0x03, 0x70, + 0xCC, 0x87, 0xCD, 0x03, 0x72, 0xCC, 0x81, 0xCD, + 0x03, 0x72, 0xCC, 0x87, 0xCD, 0x03, 0x72, 0xCC, + 0x8C, 0xCD, 0x03, 0x72, 0xCC, 0x8F, 0xCD, 0x03, + // Bytes 35c0 - 35ff + 0x72, 0xCC, 0x91, 0xCD, 0x03, 0x72, 0xCC, 0xA7, + 0xA9, 0x03, 0x72, 0xCC, 0xB1, 0xB9, 0x03, 0x73, + 0xCC, 0x82, 0xCD, 0x03, 0x73, 0xCC, 0x87, 0xCD, + 0x03, 0x73, 0xCC, 0xA6, 0xB9, 0x03, 0x73, 0xCC, + 0xA7, 0xA9, 0x03, 0x74, 0xCC, 0x87, 0xCD, 0x03, + 0x74, 0xCC, 0x88, 0xCD, 0x03, 0x74, 0xCC, 0x8C, + 0xCD, 0x03, 0x74, 0xCC, 0xA3, 0xB9, 0x03, 0x74, + 0xCC, 0xA6, 0xB9, 0x03, 0x74, 0xCC, 0xA7, 0xA9, + // Bytes 3600 - 363f + 0x03, 0x74, 0xCC, 0xAD, 0xB9, 0x03, 0x74, 0xCC, + 0xB1, 0xB9, 0x03, 0x75, 0xCC, 0x80, 0xCD, 0x03, + 0x75, 0xCC, 0x81, 0xCD, 0x03, 0x75, 0xCC, 0x82, + 0xCD, 0x03, 0x75, 0xCC, 0x86, 0xCD, 0x03, 0x75, + 0xCC, 0x89, 0xCD, 0x03, 0x75, 0xCC, 0x8A, 0xCD, + 0x03, 0x75, 0xCC, 0x8B, 0xCD, 0x03, 0x75, 0xCC, + 0x8C, 0xCD, 0x03, 0x75, 0xCC, 0x8F, 0xCD, 0x03, + 0x75, 0xCC, 0x91, 0xCD, 0x03, 0x75, 0xCC, 0xA3, + // Bytes 3640 - 367f + 0xB9, 0x03, 0x75, 0xCC, 0xA4, 0xB9, 0x03, 0x75, + 0xCC, 0xA8, 0xA9, 0x03, 0x75, 0xCC, 0xAD, 0xB9, + 0x03, 0x75, 0xCC, 0xB0, 0xB9, 0x03, 0x76, 0xCC, + 0x83, 0xCD, 0x03, 0x76, 0xCC, 0xA3, 0xB9, 0x03, + 0x77, 0xCC, 0x80, 0xCD, 0x03, 0x77, 0xCC, 0x81, + 0xCD, 0x03, 0x77, 0xCC, 0x82, 0xCD, 0x03, 0x77, + 0xCC, 0x87, 0xCD, 0x03, 0x77, 0xCC, 0x88, 0xCD, + 0x03, 0x77, 0xCC, 0x8A, 0xCD, 0x03, 0x77, 0xCC, + // Bytes 3680 - 36bf + 0xA3, 0xB9, 0x03, 0x78, 0xCC, 0x87, 0xCD, 0x03, + 0x78, 0xCC, 0x88, 0xCD, 0x03, 0x79, 0xCC, 0x80, + 0xCD, 0x03, 0x79, 0xCC, 0x81, 0xCD, 0x03, 0x79, + 0xCC, 0x82, 0xCD, 0x03, 0x79, 0xCC, 0x83, 0xCD, + 0x03, 0x79, 0xCC, 0x84, 0xCD, 0x03, 0x79, 0xCC, + 0x87, 0xCD, 0x03, 0x79, 0xCC, 0x88, 0xCD, 0x03, + 0x79, 0xCC, 0x89, 0xCD, 0x03, 0x79, 0xCC, 0x8A, + 0xCD, 0x03, 0x79, 0xCC, 0xA3, 0xB9, 0x03, 0x7A, + // Bytes 36c0 - 36ff + 0xCC, 0x81, 0xCD, 0x03, 0x7A, 0xCC, 0x82, 0xCD, + 0x03, 0x7A, 0xCC, 0x87, 0xCD, 0x03, 0x7A, 0xCC, + 0x8C, 0xCD, 0x03, 0x7A, 0xCC, 0xA3, 0xB9, 0x03, + 0x7A, 0xCC, 0xB1, 0xB9, 0x04, 0xC2, 0xA8, 0xCC, + 0x80, 0xCE, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCE, + 0x04, 0xC2, 0xA8, 0xCD, 0x82, 0xCE, 0x04, 0xC3, + 0x86, 0xCC, 0x81, 0xCD, 0x04, 0xC3, 0x86, 0xCC, + 0x84, 0xCD, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xCD, + // Bytes 3700 - 373f + 0x04, 0xC3, 0xA6, 0xCC, 0x81, 0xCD, 0x04, 0xC3, + 0xA6, 0xCC, 0x84, 0xCD, 0x04, 0xC3, 0xB8, 0xCC, + 0x81, 0xCD, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xCD, + 0x04, 0xC6, 0xB7, 0xCC, 0x8C, 0xCD, 0x04, 0xCA, + 0x92, 0xCC, 0x8C, 0xCD, 0x04, 0xCE, 0x91, 0xCC, + 0x80, 0xCD, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xCD, + 0x04, 0xCE, 0x91, 0xCC, 0x84, 0xCD, 0x04, 0xCE, + 0x91, 0xCC, 0x86, 0xCD, 0x04, 0xCE, 0x91, 0xCD, + // Bytes 3740 - 377f + 0x85, 0xDD, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xCD, + 0x04, 0xCE, 0x95, 0xCC, 0x81, 0xCD, 0x04, 0xCE, + 0x97, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0x97, 0xCC, + 0x81, 0xCD, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xDD, + 0x04, 0xCE, 0x99, 0xCC, 0x80, 0xCD, 0x04, 0xCE, + 0x99, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0x99, 0xCC, + 0x84, 0xCD, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xCD, + 0x04, 0xCE, 0x99, 0xCC, 0x88, 0xCD, 0x04, 0xCE, + // Bytes 3780 - 37bf + 0x9F, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0x9F, 0xCC, + 0x81, 0xCD, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xCD, + 0x04, 0xCE, 0xA5, 0xCC, 0x80, 0xCD, 0x04, 0xCE, + 0xA5, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0xA5, 0xCC, + 0x84, 0xCD, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xCD, + 0x04, 0xCE, 0xA5, 0xCC, 0x88, 0xCD, 0x04, 0xCE, + 0xA9, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0xA9, 0xCC, + 0x81, 0xCD, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xDD, + // Bytes 37c0 - 37ff + 0x04, 0xCE, 0xB1, 0xCC, 0x84, 0xCD, 0x04, 0xCE, + 0xB1, 0xCC, 0x86, 0xCD, 0x04, 0xCE, 0xB1, 0xCD, + 0x85, 0xDD, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xCD, + 0x04, 0xCE, 0xB5, 0xCC, 0x81, 0xCD, 0x04, 0xCE, + 0xB7, 0xCD, 0x85, 0xDD, 0x04, 0xCE, 0xB9, 0xCC, + 0x80, 0xCD, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xCD, + 0x04, 0xCE, 0xB9, 0xCC, 0x84, 0xCD, 0x04, 0xCE, + 0xB9, 0xCC, 0x86, 0xCD, 0x04, 0xCE, 0xB9, 0xCD, + // Bytes 3800 - 383f + 0x82, 0xCD, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xCD, + 0x04, 0xCE, 0xBF, 0xCC, 0x81, 0xCD, 0x04, 0xCF, + 0x81, 0xCC, 0x93, 0xCD, 0x04, 0xCF, 0x81, 0xCC, + 0x94, 0xCD, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xCD, + 0x04, 0xCF, 0x85, 0xCC, 0x81, 0xCD, 0x04, 0xCF, + 0x85, 0xCC, 0x84, 0xCD, 0x04, 0xCF, 0x85, 0xCC, + 0x86, 0xCD, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xCD, + 0x04, 0xCF, 0x89, 0xCD, 0x85, 0xDD, 0x04, 0xCF, + // Bytes 3840 - 387f + 0x92, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x92, 0xCC, + 0x88, 0xCD, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xCD, + 0x04, 0xD0, 0x90, 0xCC, 0x86, 0xCD, 0x04, 0xD0, + 0x90, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x93, 0xCC, + 0x81, 0xCD, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xCD, + 0x04, 0xD0, 0x95, 0xCC, 0x86, 0xCD, 0x04, 0xD0, + 0x95, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x96, 0xCC, + 0x86, 0xCD, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xCD, + // Bytes 3880 - 38bf + 0x04, 0xD0, 0x97, 0xCC, 0x88, 0xCD, 0x04, 0xD0, + 0x98, 0xCC, 0x80, 0xCD, 0x04, 0xD0, 0x98, 0xCC, + 0x84, 0xCD, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xCD, + 0x04, 0xD0, 0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD0, + 0x9A, 0xCC, 0x81, 0xCD, 0x04, 0xD0, 0x9E, 0xCC, + 0x88, 0xCD, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xCD, + 0x04, 0xD0, 0xA3, 0xCC, 0x86, 0xCD, 0x04, 0xD0, + 0xA3, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xA3, 0xCC, + // Bytes 38c0 - 38ff + 0x8B, 0xCD, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xCD, + 0x04, 0xD0, 0xAB, 0xCC, 0x88, 0xCD, 0x04, 0xD0, + 0xAD, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xB0, 0xCC, + 0x86, 0xCD, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xCD, + 0x04, 0xD0, 0xB3, 0xCC, 0x81, 0xCD, 0x04, 0xD0, + 0xB5, 0xCC, 0x80, 0xCD, 0x04, 0xD0, 0xB5, 0xCC, + 0x86, 0xCD, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xCD, + 0x04, 0xD0, 0xB6, 0xCC, 0x86, 0xCD, 0x04, 0xD0, + // Bytes 3900 - 393f + 0xB6, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xB7, 0xCC, + 0x88, 0xCD, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xCD, + 0x04, 0xD0, 0xB8, 0xCC, 0x84, 0xCD, 0x04, 0xD0, + 0xB8, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xB8, 0xCC, + 0x88, 0xCD, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xCD, + 0x04, 0xD0, 0xBE, 0xCC, 0x88, 0xCD, 0x04, 0xD1, + 0x83, 0xCC, 0x84, 0xCD, 0x04, 0xD1, 0x83, 0xCC, + 0x86, 0xCD, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xCD, + // Bytes 3940 - 397f + 0x04, 0xD1, 0x83, 0xCC, 0x8B, 0xCD, 0x04, 0xD1, + 0x87, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0x8B, 0xCC, + 0x88, 0xCD, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xCD, + 0x04, 0xD1, 0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD1, + 0xB4, 0xCC, 0x8F, 0xCD, 0x04, 0xD1, 0xB5, 0xCC, + 0x8F, 0xCD, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xCD, + 0x04, 0xD3, 0x99, 0xCC, 0x88, 0xCD, 0x04, 0xD3, + 0xA8, 0xCC, 0x88, 0xCD, 0x04, 0xD3, 0xA9, 0xCC, + // Bytes 3980 - 39bf + 0x88, 0xCD, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xCD, + 0x04, 0xD8, 0xA7, 0xD9, 0x94, 0xCD, 0x04, 0xD8, + 0xA7, 0xD9, 0x95, 0xB9, 0x04, 0xD9, 0x88, 0xD9, + 0x94, 0xCD, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xCD, + 0x04, 0xDB, 0x81, 0xD9, 0x94, 0xCD, 0x04, 0xDB, + 0x92, 0xD9, 0x94, 0xCD, 0x04, 0xDB, 0x95, 0xD9, + 0x94, 0xCD, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, + 0xCE, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCE, + // Bytes 39c0 - 39ff + 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, + 0x41, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x41, + 0xCC, 0x86, 0xCC, 0x80, 0xCE, 0x05, 0x41, 0xCC, + 0x86, 0xCC, 0x81, 0xCE, 0x05, 0x41, 0xCC, 0x86, + 0xCC, 0x83, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, + 0x89, 0xCE, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, + 0xCE, 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCE, + 0x05, 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCE, 0x05, + // Bytes 3a00 - 3a3f + 0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x41, + 0xCC, 0xA3, 0xCC, 0x86, 0xCE, 0x05, 0x43, 0xCC, + 0xA7, 0xCC, 0x81, 0xCE, 0x05, 0x45, 0xCC, 0x82, + 0xCC, 0x80, 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, + 0x81, 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, + 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCE, + 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05, + 0x45, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x45, + // Bytes 3a40 - 3a7f + 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x45, 0xCC, + 0xA7, 0xCC, 0x86, 0xCE, 0x05, 0x49, 0xCC, 0x88, + 0xCC, 0x81, 0xCE, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, + 0x84, 0xCE, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, + 0xCE, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCE, + 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, + 0x4F, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x4F, + 0xCC, 0x83, 0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC, + // Bytes 3a80 - 3abf + 0x83, 0xCC, 0x84, 0xCE, 0x05, 0x4F, 0xCC, 0x83, + 0xCC, 0x88, 0xCE, 0x05, 0x4F, 0xCC, 0x84, 0xCC, + 0x80, 0xCE, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, + 0xCE, 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCE, + 0x05, 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, + 0x4F, 0xCC, 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x4F, + 0xCC, 0x9B, 0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC, + 0x9B, 0xCC, 0x83, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, + // Bytes 3ac0 - 3aff + 0xCC, 0x89, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, + 0xA3, 0xBA, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, + 0xCE, 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCE, + 0x05, 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05, + 0x53, 0xCC, 0x81, 0xCC, 0x87, 0xCE, 0x05, 0x53, + 0xCC, 0x8C, 0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC, + 0xA3, 0xCC, 0x87, 0xCE, 0x05, 0x55, 0xCC, 0x83, + 0xCC, 0x81, 0xCE, 0x05, 0x55, 0xCC, 0x84, 0xCC, + // Bytes 3b00 - 3b3f + 0x88, 0xCE, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, + 0xCE, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCE, + 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, + 0x55, 0xCC, 0x88, 0xCC, 0x8C, 0xCE, 0x05, 0x55, + 0xCC, 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x55, 0xCC, + 0x9B, 0xCC, 0x81, 0xCE, 0x05, 0x55, 0xCC, 0x9B, + 0xCC, 0x83, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, + 0x89, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, + // Bytes 3b40 - 3b7f + 0xBA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCE, + 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, + 0x61, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x61, + 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x61, 0xCC, + 0x86, 0xCC, 0x80, 0xCE, 0x05, 0x61, 0xCC, 0x86, + 0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, + 0x83, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, + 0xCE, 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCE, + // Bytes 3b80 - 3bbf + 0x05, 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, + 0x61, 0xCC, 0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x61, + 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x61, 0xCC, + 0xA3, 0xCC, 0x86, 0xCE, 0x05, 0x63, 0xCC, 0xA7, + 0xCC, 0x81, 0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, + 0x80, 0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, + 0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCE, + 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, + // Bytes 3bc0 - 3bff + 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05, 0x65, + 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x65, 0xCC, + 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x65, 0xCC, 0xA7, + 0xCC, 0x86, 0xCE, 0x05, 0x69, 0xCC, 0x88, 0xCC, + 0x81, 0xCE, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, + 0xCE, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCE, + 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, + 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x6F, + // Bytes 3c00 - 3c3f + 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x6F, 0xCC, + 0x83, 0xCC, 0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x83, + 0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, + 0x88, 0xCE, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, + 0xCE, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCE, + 0x05, 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, + 0x6F, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x6F, + 0xCC, 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x6F, 0xCC, + // Bytes 3c40 - 3c7f + 0x9B, 0xCC, 0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, + 0xCC, 0x83, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, + 0x89, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, + 0xBA, 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, + 0x05, 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05, + 0x72, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x73, + 0xCC, 0x81, 0xCC, 0x87, 0xCE, 0x05, 0x73, 0xCC, + 0x8C, 0xCC, 0x87, 0xCE, 0x05, 0x73, 0xCC, 0xA3, + // Bytes 3c80 - 3cbf + 0xCC, 0x87, 0xCE, 0x05, 0x75, 0xCC, 0x83, 0xCC, + 0x81, 0xCE, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, + 0xCE, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCE, + 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05, + 0x75, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x75, + 0xCC, 0x88, 0xCC, 0x8C, 0xCE, 0x05, 0x75, 0xCC, + 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x75, 0xCC, 0x9B, + 0xCC, 0x81, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, + // Bytes 3cc0 - 3cff + 0x83, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, + 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, + 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCE, 0x05, + 0xE1, 0xBE, 0xBF, 0xCC, 0x81, 0xCE, 0x05, 0xE1, + 0xBE, 0xBF, 0xCD, 0x82, 0xCE, 0x05, 0xE1, 0xBF, + 0xBE, 0xCC, 0x80, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, + 0xCC, 0x81, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, + 0x82, 0xCE, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, + // Bytes 3d00 - 3d3f + 0x05, 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x87, 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, + 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, + // Bytes 3d40 - 3d7f + 0x05, 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x89, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0x85, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, + // Bytes 3d80 - 3dbf + 0xE2, 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x89, 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, + 0xB6, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + // Bytes 3dc0 - 3dff + 0x8A, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + 0x86, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, + 0x05, 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, + 0x05, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, + 0xE2, 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, + 0x8A, 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, + // Bytes 3e00 - 3e3f + 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, + 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, + 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, + 0x05, 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, + 0xCE, 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, + 0xCE, 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, + // Bytes 3e40 - 3e7f + 0xCE, 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, + 0xCE, 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, + 0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, + 0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, + 0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, + 0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, + // Bytes 3e80 - 3ebf + 0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, + 0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, + 0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, + 0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, + 0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, + 0xCE, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, + 0xCE, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, + 0xCE, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, + // Bytes 3ec0 - 3eff + 0xCE, 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, + // Bytes 3f00 - 3f3f + 0xCE, 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, + 0xCE, 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, + 0xCE, 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, + 0xCE, 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, + 0xDE, 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, + // Bytes 3f40 - 3f7f + 0xDE, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, + 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, + 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, + 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, + 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, + 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, + 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, + 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, + // Bytes 3f80 - 3fbf + 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, + 0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, + 0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, + 0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, + 0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, + 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, + 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, + 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, + // Bytes 3fc0 - 3fff + 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, + 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, + 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, + 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, + 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, + 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, + 0xCE, 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, + 0xDE, 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, + // Bytes 4000 - 403f + 0xDE, 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, + 0xDE, 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, + 0xDE, 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, + 0xDE, 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, + 0x0D, 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, + 0x0D, 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, + 0x0D, 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, + 0x89, 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, + // Bytes 4040 - 407f + 0x15, 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, + // Bytes 4080 - 40bf + 0x11, 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, + // Bytes 40c0 - 40ff + 0x11, 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, + 0x11, 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, + 0x11, 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, + 0x11, 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, + // Bytes 4100 - 413f + 0x11, 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, + 0x11, 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, + // Bytes 4140 - 417f + 0x11, 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, + // Bytes 4180 - 41bf + 0x11, 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, + 0x11, 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, + 0x11, 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, + // Bytes 41c0 - 41ff + 0x11, 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, + 0x11, 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, + 0x11, 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, + 0x11, 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, + // Bytes 4200 - 423f + 0x11, 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, + 0x11, 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, + 0x11, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93, + 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, + 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, + 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, + 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, + // Bytes 4240 - 427f + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x94, + 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, + 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, + 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, + 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94, + 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, + 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, + // Bytes 4280 - 42bf + 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, + 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93, + 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, + 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, + 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, + 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x94, + // Bytes 42c0 - 42ff + 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, + 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, + 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, + 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94, + 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, + 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, + 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, + // Bytes 4300 - 433f + 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93, + 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, + 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, + 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, + 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, + 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x94, + 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, + // Bytes 4340 - 437f + 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, + 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, + 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, + 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94, + 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, + 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, + 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, + 0xDF, 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, + // Bytes 4380 - 43bf + 0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91, 0x82, 0x9B, + 0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91, + 0x82, 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x42, + 0xC2, 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xCD, + 0x43, 0x20, 0xCC, 0x83, 0xCD, 0x43, 0x20, 0xCC, + 0x84, 0xCD, 0x43, 0x20, 0xCC, 0x85, 0xCD, 0x43, + 0x20, 0xCC, 0x86, 0xCD, 0x43, 0x20, 0xCC, 0x87, + 0xCD, 0x43, 0x20, 0xCC, 0x88, 0xCD, 0x43, 0x20, + // Bytes 43c0 - 43ff + 0xCC, 0x8A, 0xCD, 0x43, 0x20, 0xCC, 0x8B, 0xCD, + 0x43, 0x20, 0xCC, 0x93, 0xCD, 0x43, 0x20, 0xCC, + 0x94, 0xCD, 0x43, 0x20, 0xCC, 0xA7, 0xA9, 0x43, + 0x20, 0xCC, 0xA8, 0xA9, 0x43, 0x20, 0xCC, 0xB3, + 0xB9, 0x43, 0x20, 0xCD, 0x82, 0xCD, 0x43, 0x20, + 0xCD, 0x85, 0xDD, 0x43, 0x20, 0xD9, 0x8B, 0x5D, + 0x43, 0x20, 0xD9, 0x8C, 0x61, 0x43, 0x20, 0xD9, + 0x8D, 0x65, 0x43, 0x20, 0xD9, 0x8E, 0x69, 0x43, + // Bytes 4400 - 443f + 0x20, 0xD9, 0x8F, 0x6D, 0x43, 0x20, 0xD9, 0x90, + 0x71, 0x43, 0x20, 0xD9, 0x91, 0x75, 0x43, 0x20, + 0xD9, 0x92, 0x79, 0x43, 0x41, 0xCC, 0x8A, 0xCD, + 0x43, 0x73, 0xCC, 0x87, 0xCD, 0x44, 0x20, 0xE3, + 0x82, 0x99, 0x11, 0x44, 0x20, 0xE3, 0x82, 0x9A, + 0x11, 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x44, + 0xCE, 0x91, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x95, + 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x97, 0xCC, 0x81, + // Bytes 4440 - 447f + 0xCD, 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xCD, 0x44, + 0xCE, 0x9F, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xA5, + 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xA5, 0xCC, 0x88, + 0xCD, 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xCD, 0x44, + 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB5, + 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB7, 0xCC, 0x81, + 0xCD, 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x44, + 0xCE, 0xBF, 0xCC, 0x81, 0xCD, 0x44, 0xCF, 0x85, + // Bytes 4480 - 44bf + 0xCC, 0x81, 0xCD, 0x44, 0xCF, 0x89, 0xCC, 0x81, + 0xCD, 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x35, 0x44, + 0xD7, 0x90, 0xD6, 0xB8, 0x39, 0x44, 0xD7, 0x90, + 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x91, 0xD6, 0xBC, + 0x45, 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x4D, 0x44, + 0xD7, 0x92, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x93, + 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x94, 0xD6, 0xBC, + 0x45, 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x3D, 0x44, + // Bytes 44c0 - 44ff + 0xD7, 0x95, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x96, + 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x98, 0xD6, 0xBC, + 0x45, 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x29, 0x44, + 0xD7, 0x99, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9A, + 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, + 0x45, 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x4D, 0x44, + 0xD7, 0x9C, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9E, + 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, + // Bytes 4500 - 453f + 0x45, 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x45, 0x44, + 0xD7, 0xA3, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA4, + 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, + 0x4D, 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x45, 0x44, + 0xD7, 0xA7, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA8, + 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, + 0x45, 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x51, 0x44, + 0xD7, 0xA9, 0xD7, 0x82, 0x55, 0x44, 0xD7, 0xAA, + // Bytes 4540 - 457f + 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, + 0x35, 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x5D, 0x44, + 0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x44, 0xD8, 0xA7, + 0xD9, 0x94, 0xCD, 0x44, 0xD8, 0xA7, 0xD9, 0x95, + 0xB9, 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x7D, 0x44, + 0xD8, 0xB1, 0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x80, + 0xD9, 0x8B, 0x5D, 0x44, 0xD9, 0x80, 0xD9, 0x8E, + 0x69, 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x6D, 0x44, + // Bytes 4580 - 45bf + 0xD9, 0x80, 0xD9, 0x90, 0x71, 0x44, 0xD9, 0x80, + 0xD9, 0x91, 0x75, 0x44, 0xD9, 0x80, 0xD9, 0x92, + 0x79, 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x7D, 0x44, + 0xD9, 0x88, 0xD9, 0x94, 0xCD, 0x44, 0xD9, 0x89, + 0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x8A, 0xD9, 0x94, + 0xCD, 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xCD, 0x44, + 0xDB, 0x95, 0xD9, 0x94, 0xCD, 0x45, 0x20, 0xCC, + 0x88, 0xCC, 0x80, 0xCE, 0x45, 0x20, 0xCC, 0x88, + // Bytes 45c0 - 45ff + 0xCC, 0x81, 0xCE, 0x45, 0x20, 0xCC, 0x88, 0xCD, + 0x82, 0xCE, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, + 0xCE, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCE, + 0x45, 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x45, + 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x45, 0x20, + 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x45, 0x20, 0xCC, + 0x94, 0xCD, 0x82, 0xCE, 0x45, 0x20, 0xD9, 0x8C, + 0xD9, 0x91, 0x76, 0x45, 0x20, 0xD9, 0x8D, 0xD9, + // Bytes 4600 - 463f + 0x91, 0x76, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, + 0x76, 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x76, + 0x45, 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x76, 0x45, + 0x20, 0xD9, 0x91, 0xD9, 0xB0, 0x7E, 0x45, 0xE2, + 0xAB, 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, + 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x46, 0xCF, 0x85, + 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x46, 0xD7, 0xA9, + 0xD6, 0xBC, 0xD7, 0x81, 0x52, 0x46, 0xD7, 0xA9, + // Bytes 4640 - 467f + 0xD6, 0xBC, 0xD7, 0x82, 0x56, 0x46, 0xD9, 0x80, + 0xD9, 0x8E, 0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80, + 0xD9, 0x8F, 0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80, + 0xD9, 0x90, 0xD9, 0x91, 0x76, 0x46, 0xE0, 0xA4, + 0x95, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, + 0x96, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, + 0x97, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, + 0x9C, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, + // Bytes 4680 - 46bf + 0xA1, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, + 0xA2, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, + 0xAB, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, + 0xAF, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, + 0xA1, 0xE0, 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, + 0xA2, 0xE0, 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, + 0xAF, 0xE0, 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, + 0x96, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, + // Bytes 46c0 - 46ff + 0x97, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, + 0x9C, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, + 0xAB, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, + 0xB2, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, + 0xB8, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xAC, + 0xA1, 0xE0, 0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xAC, + 0xA2, 0xE0, 0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xBE, + 0xB2, 0xE0, 0xBE, 0x80, 0xA1, 0x46, 0xE0, 0xBE, + // Bytes 4700 - 473f + 0xB3, 0xE0, 0xBE, 0x80, 0xA1, 0x46, 0xE3, 0x83, + 0x86, 0xE3, 0x82, 0x99, 0x11, 0x48, 0xF0, 0x9D, + 0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x48, + 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, + 0xB1, 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, + 0x85, 0xA5, 0xB1, 0x48, 0xF0, 0x9D, 0x86, 0xBA, + 0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x49, 0xE0, 0xBE, + 0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xA2, + // Bytes 4740 - 477f + 0x49, 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, + 0xBE, 0x80, 0xA2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, + 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, + 0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, + 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x4C, + 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, + 0xF0, 0x9D, 0x85, 0xB0, 0xB2, 0x4C, 0xF0, 0x9D, + 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, + // Bytes 4780 - 47bf + 0x85, 0xB1, 0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, + 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, + 0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, + 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xB2, 0x4C, + 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, + 0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x4C, 0xF0, 0x9D, + 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, + 0x85, 0xAE, 0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, + // Bytes 47c0 - 47ff + 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, + 0xB2, 0x83, 0x41, 0xCC, 0x82, 0xCD, 0x83, 0x41, + 0xCC, 0x86, 0xCD, 0x83, 0x41, 0xCC, 0x87, 0xCD, + 0x83, 0x41, 0xCC, 0x88, 0xCD, 0x83, 0x41, 0xCC, + 0x8A, 0xCD, 0x83, 0x41, 0xCC, 0xA3, 0xB9, 0x83, + 0x43, 0xCC, 0xA7, 0xA9, 0x83, 0x45, 0xCC, 0x82, + 0xCD, 0x83, 0x45, 0xCC, 0x84, 0xCD, 0x83, 0x45, + 0xCC, 0xA3, 0xB9, 0x83, 0x45, 0xCC, 0xA7, 0xA9, + // Bytes 4800 - 483f + 0x83, 0x49, 0xCC, 0x88, 0xCD, 0x83, 0x4C, 0xCC, + 0xA3, 0xB9, 0x83, 0x4F, 0xCC, 0x82, 0xCD, 0x83, + 0x4F, 0xCC, 0x83, 0xCD, 0x83, 0x4F, 0xCC, 0x84, + 0xCD, 0x83, 0x4F, 0xCC, 0x87, 0xCD, 0x83, 0x4F, + 0xCC, 0x88, 0xCD, 0x83, 0x4F, 0xCC, 0x9B, 0xB1, + 0x83, 0x4F, 0xCC, 0xA3, 0xB9, 0x83, 0x4F, 0xCC, + 0xA8, 0xA9, 0x83, 0x52, 0xCC, 0xA3, 0xB9, 0x83, + 0x53, 0xCC, 0x81, 0xCD, 0x83, 0x53, 0xCC, 0x8C, + // Bytes 4840 - 487f + 0xCD, 0x83, 0x53, 0xCC, 0xA3, 0xB9, 0x83, 0x55, + 0xCC, 0x83, 0xCD, 0x83, 0x55, 0xCC, 0x84, 0xCD, + 0x83, 0x55, 0xCC, 0x88, 0xCD, 0x83, 0x55, 0xCC, + 0x9B, 0xB1, 0x83, 0x61, 0xCC, 0x82, 0xCD, 0x83, + 0x61, 0xCC, 0x86, 0xCD, 0x83, 0x61, 0xCC, 0x87, + 0xCD, 0x83, 0x61, 0xCC, 0x88, 0xCD, 0x83, 0x61, + 0xCC, 0x8A, 0xCD, 0x83, 0x61, 0xCC, 0xA3, 0xB9, + 0x83, 0x63, 0xCC, 0xA7, 0xA9, 0x83, 0x65, 0xCC, + // Bytes 4880 - 48bf + 0x82, 0xCD, 0x83, 0x65, 0xCC, 0x84, 0xCD, 0x83, + 0x65, 0xCC, 0xA3, 0xB9, 0x83, 0x65, 0xCC, 0xA7, + 0xA9, 0x83, 0x69, 0xCC, 0x88, 0xCD, 0x83, 0x6C, + 0xCC, 0xA3, 0xB9, 0x83, 0x6F, 0xCC, 0x82, 0xCD, + 0x83, 0x6F, 0xCC, 0x83, 0xCD, 0x83, 0x6F, 0xCC, + 0x84, 0xCD, 0x83, 0x6F, 0xCC, 0x87, 0xCD, 0x83, + 0x6F, 0xCC, 0x88, 0xCD, 0x83, 0x6F, 0xCC, 0x9B, + 0xB1, 0x83, 0x6F, 0xCC, 0xA3, 0xB9, 0x83, 0x6F, + // Bytes 48c0 - 48ff + 0xCC, 0xA8, 0xA9, 0x83, 0x72, 0xCC, 0xA3, 0xB9, + 0x83, 0x73, 0xCC, 0x81, 0xCD, 0x83, 0x73, 0xCC, + 0x8C, 0xCD, 0x83, 0x73, 0xCC, 0xA3, 0xB9, 0x83, + 0x75, 0xCC, 0x83, 0xCD, 0x83, 0x75, 0xCC, 0x84, + 0xCD, 0x83, 0x75, 0xCC, 0x88, 0xCD, 0x83, 0x75, + 0xCC, 0x9B, 0xB1, 0x84, 0xCE, 0x91, 0xCC, 0x93, + 0xCD, 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x84, + 0xCE, 0x95, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x95, + // Bytes 4900 - 493f + 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x97, 0xCC, 0x93, + 0xCD, 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x84, + 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x99, + 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x9F, 0xCC, 0x93, + 0xCD, 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xCD, 0x84, + 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xA9, + 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xA9, 0xCC, 0x94, + 0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x84, + // Bytes 4940 - 497f + 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x84, 0xCE, 0xB1, + 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x94, + 0xCD, 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x84, + 0xCE, 0xB5, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB5, + 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x80, + 0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x84, + 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB7, + 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xB7, 0xCD, 0x82, + // Bytes 4980 - 49bf + 0xCD, 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x84, + 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB9, + 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xBF, 0xCC, 0x93, + 0xCD, 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xCD, 0x84, + 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x84, 0xCF, 0x85, + 0xCC, 0x93, 0xCD, 0x84, 0xCF, 0x85, 0xCC, 0x94, + 0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x84, + 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x84, 0xCF, 0x89, + // Bytes 49c0 - 49ff + 0xCC, 0x93, 0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x94, + 0xCD, 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x86, + 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, + 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, + 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, + 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, + 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, + 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, + // Bytes 4a00 - 4a3f + 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, + 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, + 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, + 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, + 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, + 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, + 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, + 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, + // Bytes 4a40 - 4a7f + 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, + 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, + 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, + 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, + 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, + 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, + 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, + 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, + // Bytes 4a80 - 4abf + 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, + 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, + 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, + 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, + 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, + 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, + 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, + 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, + // Bytes 4ac0 - 4aff + 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, + 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, + 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, + 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, + 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, + 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x42, + 0xCC, 0x80, 0xCD, 0x33, 0x42, 0xCC, 0x81, 0xCD, + 0x33, 0x42, 0xCC, 0x93, 0xCD, 0x33, 0x43, 0xE1, + // Bytes 4b00 - 4b3f + 0x85, 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, + // Bytes 4b40 - 4b7f + 0x43, 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, + 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, + 0x43, 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, + 0x85, 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, + // Bytes 4b80 - 4bbf + 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, + 0x43, 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, + 0x86, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, + 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, + 0x43, 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, + 0x86, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, + 0x01, 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCE, + 0x33, 0x43, 0xE3, 0x82, 0x99, 0x11, 0x04, 0x43, + // Bytes 4bc0 - 4bff + 0xE3, 0x82, 0x9A, 0x11, 0x04, 0x46, 0xE0, 0xBD, + 0xB1, 0xE0, 0xBD, 0xB2, 0xA2, 0x27, 0x46, 0xE0, + 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xA6, 0x27, 0x46, + 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xA2, 0x27, + 0x00, 0x01, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfcValues[c0] + } + i := nfcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfcTrie. Total size: 10798 bytes (10.54 KiB). Checksum: b5981cc85e3bd14. +type nfcTrie struct{} + +func newNfcTrie(i int) *nfcTrie { + return &nfcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 46: + return uint16(nfcValues[n<<6+uint32(b)]) + default: + n -= 46 + return uint16(nfcSparse.lookup(n, b)) + } +} + +// nfcValues: 48 blocks, 3072 entries, 6144 bytes +// The third block is the zero block. +var nfcValues = [3072]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x30b0, 0xc1: 0x30b5, 0xc2: 0x47c9, 0xc3: 0x30ba, 0xc4: 0x47d8, 0xc5: 0x47dd, + 0xc6: 0xa000, 0xc7: 0x47e7, 0xc8: 0x3123, 0xc9: 0x3128, 0xca: 0x47ec, 0xcb: 0x313c, + 0xcc: 0x31af, 0xcd: 0x31b4, 0xce: 0x31b9, 0xcf: 0x4800, 0xd1: 0x3245, + 0xd2: 0x3268, 0xd3: 0x326d, 0xd4: 0x480a, 0xd5: 0x480f, 0xd6: 0x481e, + 0xd8: 0xa000, 0xd9: 0x32f4, 0xda: 0x32f9, 0xdb: 0x32fe, 0xdc: 0x4850, 0xdd: 0x3376, + 0xe0: 0x33bc, 0xe1: 0x33c1, 0xe2: 0x485a, 0xe3: 0x33c6, + 0xe4: 0x4869, 0xe5: 0x486e, 0xe6: 0xa000, 0xe7: 0x4878, 0xe8: 0x342f, 0xe9: 0x3434, + 0xea: 0x487d, 0xeb: 0x3448, 0xec: 0x34c0, 0xed: 0x34c5, 0xee: 0x34ca, 0xef: 0x4891, + 0xf1: 0x3556, 0xf2: 0x3579, 0xf3: 0x357e, 0xf4: 0x489b, 0xf5: 0x48a0, + 0xf6: 0x48af, 0xf8: 0xa000, 0xf9: 0x360a, 0xfa: 0x360f, 0xfb: 0x3614, + 0xfc: 0x48e1, 0xfd: 0x3691, 0xff: 0x36aa, + // Block 0x4, offset 0x100 + 0x100: 0x30bf, 0x101: 0x33cb, 0x102: 0x47ce, 0x103: 0x485f, 0x104: 0x30dd, 0x105: 0x33e9, + 0x106: 0x30f1, 0x107: 0x33fd, 0x108: 0x30f6, 0x109: 0x3402, 0x10a: 0x30fb, 0x10b: 0x3407, + 0x10c: 0x3100, 0x10d: 0x340c, 0x10e: 0x310a, 0x10f: 0x3416, + 0x112: 0x47f1, 0x113: 0x4882, 0x114: 0x3132, 0x115: 0x343e, 0x116: 0x3137, 0x117: 0x3443, + 0x118: 0x3155, 0x119: 0x3461, 0x11a: 0x3146, 0x11b: 0x3452, 0x11c: 0x316e, 0x11d: 0x347a, + 0x11e: 0x3178, 0x11f: 0x3484, 0x120: 0x317d, 0x121: 0x3489, 0x122: 0x3187, 0x123: 0x3493, + 0x124: 0x318c, 0x125: 0x3498, 0x128: 0x31be, 0x129: 0x34cf, + 0x12a: 0x31c3, 0x12b: 0x34d4, 0x12c: 0x31c8, 0x12d: 0x34d9, 0x12e: 0x31eb, 0x12f: 0x34f7, + 0x130: 0x31cd, 0x134: 0x31f5, 0x135: 0x3501, + 0x136: 0x3209, 0x137: 0x351a, 0x139: 0x3213, 0x13a: 0x3524, 0x13b: 0x321d, + 0x13c: 0x352e, 0x13d: 0x3218, 0x13e: 0x3529, + // Block 0x5, offset 0x140 + 0x143: 0x3240, 0x144: 0x3551, 0x145: 0x3259, + 0x146: 0x356a, 0x147: 0x324f, 0x148: 0x3560, + 0x14c: 0x4814, 0x14d: 0x48a5, 0x14e: 0x3272, 0x14f: 0x3583, 0x150: 0x327c, 0x151: 0x358d, + 0x154: 0x329a, 0x155: 0x35ab, 0x156: 0x32b3, 0x157: 0x35c4, + 0x158: 0x32a4, 0x159: 0x35b5, 0x15a: 0x4837, 0x15b: 0x48c8, 0x15c: 0x32bd, 0x15d: 0x35ce, + 0x15e: 0x32cc, 0x15f: 0x35dd, 0x160: 0x483c, 0x161: 0x48cd, 0x162: 0x32e5, 0x163: 0x35fb, + 0x164: 0x32d6, 0x165: 0x35ec, 0x168: 0x4846, 0x169: 0x48d7, + 0x16a: 0x484b, 0x16b: 0x48dc, 0x16c: 0x3303, 0x16d: 0x3619, 0x16e: 0x330d, 0x16f: 0x3623, + 0x170: 0x3312, 0x171: 0x3628, 0x172: 0x3330, 0x173: 0x3646, 0x174: 0x3353, 0x175: 0x3669, + 0x176: 0x337b, 0x177: 0x3696, 0x178: 0x338f, 0x179: 0x339e, 0x17a: 0x36be, 0x17b: 0x33a8, + 0x17c: 0x36c8, 0x17d: 0x33ad, 0x17e: 0x36cd, 0x17f: 0xa000, + // Block 0x6, offset 0x180 + 0x184: 0x8100, 0x185: 0x8100, + 0x186: 0x8100, + 0x18d: 0x30c9, 0x18e: 0x33d5, 0x18f: 0x31d7, 0x190: 0x34e3, 0x191: 0x3281, + 0x192: 0x3592, 0x193: 0x3317, 0x194: 0x362d, 0x195: 0x3b10, 0x196: 0x3c9f, 0x197: 0x3b09, + 0x198: 0x3c98, 0x199: 0x3b17, 0x19a: 0x3ca6, 0x19b: 0x3b02, 0x19c: 0x3c91, + 0x19e: 0x39f1, 0x19f: 0x3b80, 0x1a0: 0x39ea, 0x1a1: 0x3b79, 0x1a2: 0x36f4, 0x1a3: 0x3706, + 0x1a6: 0x3182, 0x1a7: 0x348e, 0x1a8: 0x31ff, 0x1a9: 0x3510, + 0x1aa: 0x482d, 0x1ab: 0x48be, 0x1ac: 0x3ad1, 0x1ad: 0x3c60, 0x1ae: 0x3718, 0x1af: 0x371e, + 0x1b0: 0x3506, 0x1b4: 0x3169, 0x1b5: 0x3475, + 0x1b8: 0x323b, 0x1b9: 0x354c, 0x1ba: 0x39f8, 0x1bb: 0x3b87, + 0x1bc: 0x36ee, 0x1bd: 0x3700, 0x1be: 0x36fa, 0x1bf: 0x370c, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x30ce, 0x1c1: 0x33da, 0x1c2: 0x30d3, 0x1c3: 0x33df, 0x1c4: 0x314b, 0x1c5: 0x3457, + 0x1c6: 0x3150, 0x1c7: 0x345c, 0x1c8: 0x31dc, 0x1c9: 0x34e8, 0x1ca: 0x31e1, 0x1cb: 0x34ed, + 0x1cc: 0x3286, 0x1cd: 0x3597, 0x1ce: 0x328b, 0x1cf: 0x359c, 0x1d0: 0x32a9, 0x1d1: 0x35ba, + 0x1d2: 0x32ae, 0x1d3: 0x35bf, 0x1d4: 0x331c, 0x1d5: 0x3632, 0x1d6: 0x3321, 0x1d7: 0x3637, + 0x1d8: 0x32c7, 0x1d9: 0x35d8, 0x1da: 0x32e0, 0x1db: 0x35f6, + 0x1de: 0x319b, 0x1df: 0x34a7, + 0x1e6: 0x47d3, 0x1e7: 0x4864, 0x1e8: 0x47fb, 0x1e9: 0x488c, + 0x1ea: 0x3aa0, 0x1eb: 0x3c2f, 0x1ec: 0x3a7d, 0x1ed: 0x3c0c, 0x1ee: 0x4819, 0x1ef: 0x48aa, + 0x1f0: 0x3a99, 0x1f1: 0x3c28, 0x1f2: 0x3385, 0x1f3: 0x36a0, + // Block 0x8, offset 0x200 + 0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133, + 0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933, + 0x20c: 0x9933, 0x20d: 0x8133, 0x20e: 0x8133, 0x20f: 0x9933, 0x210: 0x8133, 0x211: 0x9933, + 0x212: 0x8133, 0x213: 0x9933, 0x214: 0x9933, 0x215: 0x8134, 0x216: 0x812e, 0x217: 0x812e, + 0x218: 0x812e, 0x219: 0x812e, 0x21a: 0x8134, 0x21b: 0x992c, 0x21c: 0x812e, 0x21d: 0x812e, + 0x21e: 0x812e, 0x21f: 0x812e, 0x220: 0x812e, 0x221: 0x812a, 0x222: 0x812a, 0x223: 0x992e, + 0x224: 0x992e, 0x225: 0x992e, 0x226: 0x992e, 0x227: 0x992a, 0x228: 0x992a, 0x229: 0x812e, + 0x22a: 0x812e, 0x22b: 0x812e, 0x22c: 0x812e, 0x22d: 0x992e, 0x22e: 0x992e, 0x22f: 0x812e, + 0x230: 0x992e, 0x231: 0x992e, 0x232: 0x812e, 0x233: 0x812e, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e, + 0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133, + // Block 0x9, offset 0x240 + 0x240: 0x4aef, 0x241: 0x4af4, 0x242: 0x9933, 0x243: 0x4af9, 0x244: 0x4bb2, 0x245: 0x9937, + 0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133, + 0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133, + 0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133, + 0x258: 0x8134, 0x259: 0x812e, 0x25a: 0x812e, 0x25b: 0x8133, 0x25c: 0x8135, 0x25d: 0x8136, + 0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133, + 0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133, + 0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133, + 0x274: 0x01ee, + 0x27a: 0x8100, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x8100, 0x285: 0x36e2, + 0x286: 0x372a, 0x287: 0x00ce, 0x288: 0x3748, 0x289: 0x3754, 0x28a: 0x3766, + 0x28c: 0x3784, 0x28e: 0x3796, 0x28f: 0x37b4, 0x290: 0x3f49, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3778, 0x2ab: 0x37a8, 0x2ac: 0x493f, 0x2ad: 0x37d8, 0x2ae: 0x4969, 0x2af: 0x37ea, + 0x2b0: 0x3fb1, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3862, 0x2c1: 0x386e, 0x2c3: 0x385c, + 0x2c6: 0xa000, 0x2c7: 0x384a, + 0x2cc: 0x389e, 0x2cd: 0x3886, 0x2ce: 0x38b0, 0x2d0: 0xa000, + 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000, + 0x2d8: 0xa000, 0x2d9: 0x3892, 0x2da: 0xa000, + 0x2de: 0xa000, 0x2e3: 0xa000, + 0x2e7: 0xa000, + 0x2eb: 0xa000, 0x2ed: 0xa000, + 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000, + 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x3916, 0x2fa: 0xa000, + 0x2fe: 0xa000, + // Block 0xc, offset 0x300 + 0x301: 0x3874, 0x302: 0x38f8, + 0x310: 0x3850, 0x311: 0x38d4, + 0x312: 0x3856, 0x313: 0x38da, 0x316: 0x3868, 0x317: 0x38ec, + 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x396a, 0x31b: 0x3970, 0x31c: 0x387a, 0x31d: 0x38fe, + 0x31e: 0x3880, 0x31f: 0x3904, 0x322: 0x388c, 0x323: 0x3910, + 0x324: 0x3898, 0x325: 0x391c, 0x326: 0x38a4, 0x327: 0x3928, 0x328: 0xa000, 0x329: 0xa000, + 0x32a: 0x3976, 0x32b: 0x397c, 0x32c: 0x38ce, 0x32d: 0x3952, 0x32e: 0x38aa, 0x32f: 0x392e, + 0x330: 0x38b6, 0x331: 0x393a, 0x332: 0x38bc, 0x333: 0x3940, 0x334: 0x38c2, 0x335: 0x3946, + 0x338: 0x38c8, 0x339: 0x394c, + // Block 0xd, offset 0x340 + 0x351: 0x812e, + 0x352: 0x8133, 0x353: 0x8133, 0x354: 0x8133, 0x355: 0x8133, 0x356: 0x812e, 0x357: 0x8133, + 0x358: 0x8133, 0x359: 0x8133, 0x35a: 0x812f, 0x35b: 0x812e, 0x35c: 0x8133, 0x35d: 0x8133, + 0x35e: 0x8133, 0x35f: 0x8133, 0x360: 0x8133, 0x361: 0x8133, 0x362: 0x812e, 0x363: 0x812e, + 0x364: 0x812e, 0x365: 0x812e, 0x366: 0x812e, 0x367: 0x812e, 0x368: 0x8133, 0x369: 0x8133, + 0x36a: 0x812e, 0x36b: 0x8133, 0x36c: 0x8133, 0x36d: 0x812f, 0x36e: 0x8132, 0x36f: 0x8133, + 0x370: 0x8106, 0x371: 0x8107, 0x372: 0x8108, 0x373: 0x8109, 0x374: 0x810a, 0x375: 0x810b, + 0x376: 0x810c, 0x377: 0x810d, 0x378: 0x810e, 0x379: 0x810f, 0x37a: 0x810f, 0x37b: 0x8110, + 0x37c: 0x8111, 0x37d: 0x8112, 0x37f: 0x8113, + // Block 0xe, offset 0x380 + 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8117, + 0x38c: 0x8118, 0x38d: 0x8119, 0x38e: 0x811a, 0x38f: 0x811b, 0x390: 0x811c, 0x391: 0x811d, + 0x392: 0x811e, 0x393: 0x9933, 0x394: 0x9933, 0x395: 0x992e, 0x396: 0x812e, 0x397: 0x8133, + 0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x8133, 0x39b: 0x8133, 0x39c: 0x812e, 0x39d: 0x8133, + 0x39e: 0x8133, 0x39f: 0x812e, + 0x3b0: 0x811f, + // Block 0xf, offset 0x3c0 + 0x3ca: 0x8133, 0x3cb: 0x8133, + 0x3cc: 0x8133, 0x3cd: 0x8133, 0x3ce: 0x8133, 0x3cf: 0x812e, 0x3d0: 0x812e, 0x3d1: 0x812e, + 0x3d2: 0x812e, 0x3d3: 0x812e, 0x3d4: 0x8133, 0x3d5: 0x8133, 0x3d6: 0x8133, 0x3d7: 0x8133, + 0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x8133, 0x3dd: 0x8133, + 0x3de: 0x8133, 0x3df: 0x8133, 0x3e0: 0x8133, 0x3e1: 0x8133, 0x3e3: 0x812e, + 0x3e4: 0x8133, 0x3e5: 0x8133, 0x3e6: 0x812e, 0x3e7: 0x8133, 0x3e8: 0x8133, 0x3e9: 0x812e, + 0x3ea: 0x8133, 0x3eb: 0x8133, 0x3ec: 0x8133, 0x3ed: 0x812e, 0x3ee: 0x812e, 0x3ef: 0x812e, + 0x3f0: 0x8117, 0x3f1: 0x8118, 0x3f2: 0x8119, 0x3f3: 0x8133, 0x3f4: 0x8133, 0x3f5: 0x8133, + 0x3f6: 0x812e, 0x3f7: 0x8133, 0x3f8: 0x8133, 0x3f9: 0x812e, 0x3fa: 0x812e, 0x3fb: 0x8133, + 0x3fc: 0x8133, 0x3fd: 0x8133, 0x3fe: 0x8133, 0x3ff: 0x8133, + // Block 0x10, offset 0x400 + 0x405: 0xa000, + 0x406: 0x2e5d, 0x407: 0xa000, 0x408: 0x2e65, 0x409: 0xa000, 0x40a: 0x2e6d, 0x40b: 0xa000, + 0x40c: 0x2e75, 0x40d: 0xa000, 0x40e: 0x2e7d, 0x411: 0xa000, + 0x412: 0x2e85, + 0x434: 0x8103, 0x435: 0x9900, + 0x43a: 0xa000, 0x43b: 0x2e8d, + 0x43c: 0xa000, 0x43d: 0x2e95, 0x43e: 0xa000, 0x43f: 0xa000, + // Block 0x11, offset 0x440 + 0x440: 0x8133, 0x441: 0x8133, 0x442: 0x812e, 0x443: 0x8133, 0x444: 0x8133, 0x445: 0x8133, + 0x446: 0x8133, 0x447: 0x8133, 0x448: 0x8133, 0x449: 0x8133, 0x44a: 0x812e, 0x44b: 0x8133, + 0x44c: 0x8133, 0x44d: 0x8136, 0x44e: 0x812b, 0x44f: 0x812e, 0x450: 0x812a, 0x451: 0x8133, + 0x452: 0x8133, 0x453: 0x8133, 0x454: 0x8133, 0x455: 0x8133, 0x456: 0x8133, 0x457: 0x8133, + 0x458: 0x8133, 0x459: 0x8133, 0x45a: 0x8133, 0x45b: 0x8133, 0x45c: 0x8133, 0x45d: 0x8133, + 0x45e: 0x8133, 0x45f: 0x8133, 0x460: 0x8133, 0x461: 0x8133, 0x462: 0x8133, 0x463: 0x8133, + 0x464: 0x8133, 0x465: 0x8133, 0x466: 0x8133, 0x467: 0x8133, 0x468: 0x8133, 0x469: 0x8133, + 0x46a: 0x8133, 0x46b: 0x8133, 0x46c: 0x8133, 0x46d: 0x8133, 0x46e: 0x8133, 0x46f: 0x8133, + 0x470: 0x8133, 0x471: 0x8133, 0x472: 0x8133, 0x473: 0x8133, 0x474: 0x8133, 0x475: 0x8133, + 0x476: 0x8134, 0x477: 0x8132, 0x478: 0x8132, 0x479: 0x812e, 0x47a: 0x812d, 0x47b: 0x8133, + 0x47c: 0x8135, 0x47d: 0x812e, 0x47e: 0x8133, 0x47f: 0x812e, + // Block 0x12, offset 0x480 + 0x480: 0x30d8, 0x481: 0x33e4, 0x482: 0x30e2, 0x483: 0x33ee, 0x484: 0x30e7, 0x485: 0x33f3, + 0x486: 0x30ec, 0x487: 0x33f8, 0x488: 0x3a0d, 0x489: 0x3b9c, 0x48a: 0x3105, 0x48b: 0x3411, + 0x48c: 0x310f, 0x48d: 0x341b, 0x48e: 0x311e, 0x48f: 0x342a, 0x490: 0x3114, 0x491: 0x3420, + 0x492: 0x3119, 0x493: 0x3425, 0x494: 0x3a30, 0x495: 0x3bbf, 0x496: 0x3a37, 0x497: 0x3bc6, + 0x498: 0x315a, 0x499: 0x3466, 0x49a: 0x315f, 0x49b: 0x346b, 0x49c: 0x3a45, 0x49d: 0x3bd4, + 0x49e: 0x3164, 0x49f: 0x3470, 0x4a0: 0x3173, 0x4a1: 0x347f, 0x4a2: 0x3191, 0x4a3: 0x349d, + 0x4a4: 0x31a0, 0x4a5: 0x34ac, 0x4a6: 0x3196, 0x4a7: 0x34a2, 0x4a8: 0x31a5, 0x4a9: 0x34b1, + 0x4aa: 0x31aa, 0x4ab: 0x34b6, 0x4ac: 0x31f0, 0x4ad: 0x34fc, 0x4ae: 0x3a4c, 0x4af: 0x3bdb, + 0x4b0: 0x31fa, 0x4b1: 0x350b, 0x4b2: 0x3204, 0x4b3: 0x3515, 0x4b4: 0x320e, 0x4b5: 0x351f, + 0x4b6: 0x4805, 0x4b7: 0x4896, 0x4b8: 0x3a53, 0x4b9: 0x3be2, 0x4ba: 0x3227, 0x4bb: 0x3538, + 0x4bc: 0x3222, 0x4bd: 0x3533, 0x4be: 0x322c, 0x4bf: 0x353d, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x3231, 0x4c1: 0x3542, 0x4c2: 0x3236, 0x4c3: 0x3547, 0x4c4: 0x324a, 0x4c5: 0x355b, + 0x4c6: 0x3254, 0x4c7: 0x3565, 0x4c8: 0x3263, 0x4c9: 0x3574, 0x4ca: 0x325e, 0x4cb: 0x356f, + 0x4cc: 0x3a76, 0x4cd: 0x3c05, 0x4ce: 0x3a84, 0x4cf: 0x3c13, 0x4d0: 0x3a8b, 0x4d1: 0x3c1a, + 0x4d2: 0x3a92, 0x4d3: 0x3c21, 0x4d4: 0x3290, 0x4d5: 0x35a1, 0x4d6: 0x3295, 0x4d7: 0x35a6, + 0x4d8: 0x329f, 0x4d9: 0x35b0, 0x4da: 0x4832, 0x4db: 0x48c3, 0x4dc: 0x3ad8, 0x4dd: 0x3c67, + 0x4de: 0x32b8, 0x4df: 0x35c9, 0x4e0: 0x32c2, 0x4e1: 0x35d3, 0x4e2: 0x4841, 0x4e3: 0x48d2, + 0x4e4: 0x3adf, 0x4e5: 0x3c6e, 0x4e6: 0x3ae6, 0x4e7: 0x3c75, 0x4e8: 0x3aed, 0x4e9: 0x3c7c, + 0x4ea: 0x32d1, 0x4eb: 0x35e2, 0x4ec: 0x32db, 0x4ed: 0x35f1, 0x4ee: 0x32ef, 0x4ef: 0x3605, + 0x4f0: 0x32ea, 0x4f1: 0x3600, 0x4f2: 0x332b, 0x4f3: 0x3641, 0x4f4: 0x333a, 0x4f5: 0x3650, + 0x4f6: 0x3335, 0x4f7: 0x364b, 0x4f8: 0x3af4, 0x4f9: 0x3c83, 0x4fa: 0x3afb, 0x4fb: 0x3c8a, + 0x4fc: 0x333f, 0x4fd: 0x3655, 0x4fe: 0x3344, 0x4ff: 0x365a, + // Block 0x14, offset 0x500 + 0x500: 0x3349, 0x501: 0x365f, 0x502: 0x334e, 0x503: 0x3664, 0x504: 0x335d, 0x505: 0x3673, + 0x506: 0x3358, 0x507: 0x366e, 0x508: 0x3362, 0x509: 0x367d, 0x50a: 0x3367, 0x50b: 0x3682, + 0x50c: 0x336c, 0x50d: 0x3687, 0x50e: 0x338a, 0x50f: 0x36a5, 0x510: 0x33a3, 0x511: 0x36c3, + 0x512: 0x33b2, 0x513: 0x36d2, 0x514: 0x33b7, 0x515: 0x36d7, 0x516: 0x34bb, 0x517: 0x35e7, + 0x518: 0x3678, 0x519: 0x36b4, 0x51b: 0x3712, + 0x520: 0x47e2, 0x521: 0x4873, 0x522: 0x30c4, 0x523: 0x33d0, + 0x524: 0x39b9, 0x525: 0x3b48, 0x526: 0x39b2, 0x527: 0x3b41, 0x528: 0x39c7, 0x529: 0x3b56, + 0x52a: 0x39c0, 0x52b: 0x3b4f, 0x52c: 0x39ff, 0x52d: 0x3b8e, 0x52e: 0x39d5, 0x52f: 0x3b64, + 0x530: 0x39ce, 0x531: 0x3b5d, 0x532: 0x39e3, 0x533: 0x3b72, 0x534: 0x39dc, 0x535: 0x3b6b, + 0x536: 0x3a06, 0x537: 0x3b95, 0x538: 0x47f6, 0x539: 0x4887, 0x53a: 0x3141, 0x53b: 0x344d, + 0x53c: 0x312d, 0x53d: 0x3439, 0x53e: 0x3a1b, 0x53f: 0x3baa, + // Block 0x15, offset 0x540 + 0x540: 0x3a14, 0x541: 0x3ba3, 0x542: 0x3a29, 0x543: 0x3bb8, 0x544: 0x3a22, 0x545: 0x3bb1, + 0x546: 0x3a3e, 0x547: 0x3bcd, 0x548: 0x31d2, 0x549: 0x34de, 0x54a: 0x31e6, 0x54b: 0x34f2, + 0x54c: 0x4828, 0x54d: 0x48b9, 0x54e: 0x3277, 0x54f: 0x3588, 0x550: 0x3a61, 0x551: 0x3bf0, + 0x552: 0x3a5a, 0x553: 0x3be9, 0x554: 0x3a6f, 0x555: 0x3bfe, 0x556: 0x3a68, 0x557: 0x3bf7, + 0x558: 0x3aca, 0x559: 0x3c59, 0x55a: 0x3aae, 0x55b: 0x3c3d, 0x55c: 0x3aa7, 0x55d: 0x3c36, + 0x55e: 0x3abc, 0x55f: 0x3c4b, 0x560: 0x3ab5, 0x561: 0x3c44, 0x562: 0x3ac3, 0x563: 0x3c52, + 0x564: 0x3326, 0x565: 0x363c, 0x566: 0x3308, 0x567: 0x361e, 0x568: 0x3b25, 0x569: 0x3cb4, + 0x56a: 0x3b1e, 0x56b: 0x3cad, 0x56c: 0x3b33, 0x56d: 0x3cc2, 0x56e: 0x3b2c, 0x56f: 0x3cbb, + 0x570: 0x3b3a, 0x571: 0x3cc9, 0x572: 0x3371, 0x573: 0x368c, 0x574: 0x3399, 0x575: 0x36b9, + 0x576: 0x3394, 0x577: 0x36af, 0x578: 0x3380, 0x579: 0x369b, + // Block 0x16, offset 0x580 + 0x580: 0x4945, 0x581: 0x494b, 0x582: 0x4a5f, 0x583: 0x4a77, 0x584: 0x4a67, 0x585: 0x4a7f, + 0x586: 0x4a6f, 0x587: 0x4a87, 0x588: 0x48eb, 0x589: 0x48f1, 0x58a: 0x49cf, 0x58b: 0x49e7, + 0x58c: 0x49d7, 0x58d: 0x49ef, 0x58e: 0x49df, 0x58f: 0x49f7, 0x590: 0x4957, 0x591: 0x495d, + 0x592: 0x3ef9, 0x593: 0x3f09, 0x594: 0x3f01, 0x595: 0x3f11, + 0x598: 0x48f7, 0x599: 0x48fd, 0x59a: 0x3e29, 0x59b: 0x3e39, 0x59c: 0x3e31, 0x59d: 0x3e41, + 0x5a0: 0x496f, 0x5a1: 0x4975, 0x5a2: 0x4a8f, 0x5a3: 0x4aa7, + 0x5a4: 0x4a97, 0x5a5: 0x4aaf, 0x5a6: 0x4a9f, 0x5a7: 0x4ab7, 0x5a8: 0x4903, 0x5a9: 0x4909, + 0x5aa: 0x49ff, 0x5ab: 0x4a17, 0x5ac: 0x4a07, 0x5ad: 0x4a1f, 0x5ae: 0x4a0f, 0x5af: 0x4a27, + 0x5b0: 0x4987, 0x5b1: 0x498d, 0x5b2: 0x3f59, 0x5b3: 0x3f71, 0x5b4: 0x3f61, 0x5b5: 0x3f79, + 0x5b6: 0x3f69, 0x5b7: 0x3f81, 0x5b8: 0x490f, 0x5b9: 0x4915, 0x5ba: 0x3e59, 0x5bb: 0x3e71, + 0x5bc: 0x3e61, 0x5bd: 0x3e79, 0x5be: 0x3e69, 0x5bf: 0x3e81, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x4993, 0x5c1: 0x4999, 0x5c2: 0x3f89, 0x5c3: 0x3f99, 0x5c4: 0x3f91, 0x5c5: 0x3fa1, + 0x5c8: 0x491b, 0x5c9: 0x4921, 0x5ca: 0x3e89, 0x5cb: 0x3e99, + 0x5cc: 0x3e91, 0x5cd: 0x3ea1, 0x5d0: 0x49a5, 0x5d1: 0x49ab, + 0x5d2: 0x3fc1, 0x5d3: 0x3fd9, 0x5d4: 0x3fc9, 0x5d5: 0x3fe1, 0x5d6: 0x3fd1, 0x5d7: 0x3fe9, + 0x5d9: 0x4927, 0x5db: 0x3ea9, 0x5dd: 0x3eb1, + 0x5df: 0x3eb9, 0x5e0: 0x49bd, 0x5e1: 0x49c3, 0x5e2: 0x4abf, 0x5e3: 0x4ad7, + 0x5e4: 0x4ac7, 0x5e5: 0x4adf, 0x5e6: 0x4acf, 0x5e7: 0x4ae7, 0x5e8: 0x492d, 0x5e9: 0x4933, + 0x5ea: 0x4a2f, 0x5eb: 0x4a47, 0x5ec: 0x4a37, 0x5ed: 0x4a4f, 0x5ee: 0x4a3f, 0x5ef: 0x4a57, + 0x5f0: 0x4939, 0x5f1: 0x445f, 0x5f2: 0x37d2, 0x5f3: 0x4465, 0x5f4: 0x4963, 0x5f5: 0x446b, + 0x5f6: 0x37e4, 0x5f7: 0x4471, 0x5f8: 0x3802, 0x5f9: 0x4477, 0x5fa: 0x381a, 0x5fb: 0x447d, + 0x5fc: 0x49b1, 0x5fd: 0x4483, + // Block 0x18, offset 0x600 + 0x600: 0x3ee1, 0x601: 0x3ee9, 0x602: 0x42c5, 0x603: 0x42e3, 0x604: 0x42cf, 0x605: 0x42ed, + 0x606: 0x42d9, 0x607: 0x42f7, 0x608: 0x3e19, 0x609: 0x3e21, 0x60a: 0x4211, 0x60b: 0x422f, + 0x60c: 0x421b, 0x60d: 0x4239, 0x60e: 0x4225, 0x60f: 0x4243, 0x610: 0x3f29, 0x611: 0x3f31, + 0x612: 0x4301, 0x613: 0x431f, 0x614: 0x430b, 0x615: 0x4329, 0x616: 0x4315, 0x617: 0x4333, + 0x618: 0x3e49, 0x619: 0x3e51, 0x61a: 0x424d, 0x61b: 0x426b, 0x61c: 0x4257, 0x61d: 0x4275, + 0x61e: 0x4261, 0x61f: 0x427f, 0x620: 0x4001, 0x621: 0x4009, 0x622: 0x433d, 0x623: 0x435b, + 0x624: 0x4347, 0x625: 0x4365, 0x626: 0x4351, 0x627: 0x436f, 0x628: 0x3ec1, 0x629: 0x3ec9, + 0x62a: 0x4289, 0x62b: 0x42a7, 0x62c: 0x4293, 0x62d: 0x42b1, 0x62e: 0x429d, 0x62f: 0x42bb, + 0x630: 0x37c6, 0x631: 0x37c0, 0x632: 0x3ed1, 0x633: 0x37cc, 0x634: 0x3ed9, + 0x636: 0x4951, 0x637: 0x3ef1, 0x638: 0x3736, 0x639: 0x3730, 0x63a: 0x3724, 0x63b: 0x442f, + 0x63c: 0x373c, 0x63d: 0x8100, 0x63e: 0x0257, 0x63f: 0xa100, + // Block 0x19, offset 0x640 + 0x640: 0x8100, 0x641: 0x36e8, 0x642: 0x3f19, 0x643: 0x37de, 0x644: 0x3f21, + 0x646: 0x497b, 0x647: 0x3f39, 0x648: 0x3742, 0x649: 0x4435, 0x64a: 0x374e, 0x64b: 0x443b, + 0x64c: 0x375a, 0x64d: 0x3cd0, 0x64e: 0x3cd7, 0x64f: 0x3cde, 0x650: 0x37f6, 0x651: 0x37f0, + 0x652: 0x3f41, 0x653: 0x4625, 0x656: 0x37fc, 0x657: 0x3f51, + 0x658: 0x3772, 0x659: 0x376c, 0x65a: 0x3760, 0x65b: 0x4441, 0x65d: 0x3ce5, + 0x65e: 0x3cec, 0x65f: 0x3cf3, 0x660: 0x382c, 0x661: 0x3826, 0x662: 0x3fa9, 0x663: 0x462d, + 0x664: 0x380e, 0x665: 0x3814, 0x666: 0x3832, 0x667: 0x3fb9, 0x668: 0x37a2, 0x669: 0x379c, + 0x66a: 0x3790, 0x66b: 0x444d, 0x66c: 0x378a, 0x66d: 0x36dc, 0x66e: 0x4429, 0x66f: 0x0081, + 0x672: 0x3ff1, 0x673: 0x3838, 0x674: 0x3ff9, + 0x676: 0x49c9, 0x677: 0x4011, 0x678: 0x377e, 0x679: 0x4447, 0x67a: 0x37ae, 0x67b: 0x4459, + 0x67c: 0x37ba, 0x67d: 0x4397, 0x67e: 0xa100, + // Block 0x1a, offset 0x680 + 0x681: 0x3d47, 0x683: 0xa000, 0x684: 0x3d4e, 0x685: 0xa000, + 0x687: 0x3d55, 0x688: 0xa000, 0x689: 0x3d5c, + 0x68d: 0xa000, + 0x6a0: 0x30a6, 0x6a1: 0xa000, 0x6a2: 0x3d6a, + 0x6a4: 0xa000, 0x6a5: 0xa000, + 0x6ad: 0x3d63, 0x6ae: 0x30a1, 0x6af: 0x30ab, + 0x6b0: 0x3d71, 0x6b1: 0x3d78, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3d7f, 0x6b5: 0x3d86, + 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3d8d, 0x6b9: 0x3d94, 0x6ba: 0xa000, 0x6bb: 0xa000, + 0x6bc: 0xa000, 0x6bd: 0xa000, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3d9b, 0x6c1: 0x3da2, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3db7, 0x6c5: 0x3dbe, + 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3dc5, 0x6c9: 0x3dcc, + 0x6d1: 0xa000, + 0x6d2: 0xa000, + 0x6e2: 0xa000, + 0x6e8: 0xa000, 0x6e9: 0xa000, + 0x6eb: 0xa000, 0x6ec: 0x3de1, 0x6ed: 0x3de8, 0x6ee: 0x3def, 0x6ef: 0x3df6, + 0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000, + // Block 0x1c, offset 0x700 + 0x706: 0xa000, 0x70b: 0xa000, + 0x70c: 0x4049, 0x70d: 0xa000, 0x70e: 0x4051, 0x70f: 0xa000, 0x710: 0x4059, 0x711: 0xa000, + 0x712: 0x4061, 0x713: 0xa000, 0x714: 0x4069, 0x715: 0xa000, 0x716: 0x4071, 0x717: 0xa000, + 0x718: 0x4079, 0x719: 0xa000, 0x71a: 0x4081, 0x71b: 0xa000, 0x71c: 0x4089, 0x71d: 0xa000, + 0x71e: 0x4091, 0x71f: 0xa000, 0x720: 0x4099, 0x721: 0xa000, 0x722: 0x40a1, + 0x724: 0xa000, 0x725: 0x40a9, 0x726: 0xa000, 0x727: 0x40b1, 0x728: 0xa000, 0x729: 0x40b9, + 0x72f: 0xa000, + 0x730: 0x40c1, 0x731: 0x40c9, 0x732: 0xa000, 0x733: 0x40d1, 0x734: 0x40d9, 0x735: 0xa000, + 0x736: 0x40e1, 0x737: 0x40e9, 0x738: 0xa000, 0x739: 0x40f1, 0x73a: 0x40f9, 0x73b: 0xa000, + 0x73c: 0x4101, 0x73d: 0x4109, + // Block 0x1d, offset 0x740 + 0x754: 0x4041, + 0x759: 0x9904, 0x75a: 0x9904, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000, + 0x75e: 0x4111, + 0x766: 0xa000, + 0x76b: 0xa000, 0x76c: 0x4121, 0x76d: 0xa000, 0x76e: 0x4129, 0x76f: 0xa000, + 0x770: 0x4131, 0x771: 0xa000, 0x772: 0x4139, 0x773: 0xa000, 0x774: 0x4141, 0x775: 0xa000, + 0x776: 0x4149, 0x777: 0xa000, 0x778: 0x4151, 0x779: 0xa000, 0x77a: 0x4159, 0x77b: 0xa000, + 0x77c: 0x4161, 0x77d: 0xa000, 0x77e: 0x4169, 0x77f: 0xa000, + // Block 0x1e, offset 0x780 + 0x780: 0x4171, 0x781: 0xa000, 0x782: 0x4179, 0x784: 0xa000, 0x785: 0x4181, + 0x786: 0xa000, 0x787: 0x4189, 0x788: 0xa000, 0x789: 0x4191, + 0x78f: 0xa000, 0x790: 0x4199, 0x791: 0x41a1, + 0x792: 0xa000, 0x793: 0x41a9, 0x794: 0x41b1, 0x795: 0xa000, 0x796: 0x41b9, 0x797: 0x41c1, + 0x798: 0xa000, 0x799: 0x41c9, 0x79a: 0x41d1, 0x79b: 0xa000, 0x79c: 0x41d9, 0x79d: 0x41e1, + 0x7af: 0xa000, + 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x4119, + 0x7b7: 0x41e9, 0x7b8: 0x41f1, 0x7b9: 0x41f9, 0x7ba: 0x4201, + 0x7bd: 0xa000, 0x7be: 0x4209, + // Block 0x1f, offset 0x7c0 + 0x7c0: 0x1472, 0x7c1: 0x0df6, 0x7c2: 0x14ce, 0x7c3: 0x149a, 0x7c4: 0x0f52, 0x7c5: 0x07e6, + 0x7c6: 0x09da, 0x7c7: 0x1726, 0x7c8: 0x1726, 0x7c9: 0x0b06, 0x7ca: 0x155a, 0x7cb: 0x0a3e, + 0x7cc: 0x0b02, 0x7cd: 0x0cea, 0x7ce: 0x10ca, 0x7cf: 0x125a, 0x7d0: 0x1392, 0x7d1: 0x13ce, + 0x7d2: 0x1402, 0x7d3: 0x1516, 0x7d4: 0x0e6e, 0x7d5: 0x0efa, 0x7d6: 0x0fa6, 0x7d7: 0x103e, + 0x7d8: 0x135a, 0x7d9: 0x1542, 0x7da: 0x166e, 0x7db: 0x080a, 0x7dc: 0x09ae, 0x7dd: 0x0e82, + 0x7de: 0x0fca, 0x7df: 0x138e, 0x7e0: 0x16be, 0x7e1: 0x0bae, 0x7e2: 0x0f72, 0x7e3: 0x137e, + 0x7e4: 0x1412, 0x7e5: 0x0d1e, 0x7e6: 0x12b6, 0x7e7: 0x13da, 0x7e8: 0x0c1a, 0x7e9: 0x0e0a, + 0x7ea: 0x0f12, 0x7eb: 0x1016, 0x7ec: 0x1522, 0x7ed: 0x084a, 0x7ee: 0x08e2, 0x7ef: 0x094e, + 0x7f0: 0x0d86, 0x7f1: 0x0e7a, 0x7f2: 0x0fc6, 0x7f3: 0x10ea, 0x7f4: 0x1272, 0x7f5: 0x1386, + 0x7f6: 0x139e, 0x7f7: 0x14c2, 0x7f8: 0x15ea, 0x7f9: 0x169e, 0x7fa: 0x16ba, 0x7fb: 0x1126, + 0x7fc: 0x1166, 0x7fd: 0x121e, 0x7fe: 0x133e, 0x7ff: 0x1576, + // Block 0x20, offset 0x800 + 0x800: 0x16c6, 0x801: 0x1446, 0x802: 0x0ac2, 0x803: 0x0c36, 0x804: 0x11d6, 0x805: 0x1296, + 0x806: 0x0ffa, 0x807: 0x112e, 0x808: 0x1492, 0x809: 0x15e2, 0x80a: 0x0abe, 0x80b: 0x0b8a, + 0x80c: 0x0e72, 0x80d: 0x0f26, 0x80e: 0x0f5a, 0x80f: 0x120e, 0x810: 0x1236, 0x811: 0x15a2, + 0x812: 0x094a, 0x813: 0x12a2, 0x814: 0x08ee, 0x815: 0x08ea, 0x816: 0x1192, 0x817: 0x1222, + 0x818: 0x1356, 0x819: 0x15aa, 0x81a: 0x1462, 0x81b: 0x0d22, 0x81c: 0x0e6e, 0x81d: 0x1452, + 0x81e: 0x07f2, 0x81f: 0x0b5e, 0x820: 0x0c8e, 0x821: 0x102a, 0x822: 0x10aa, 0x823: 0x096e, + 0x824: 0x1136, 0x825: 0x085a, 0x826: 0x0c72, 0x827: 0x07d2, 0x828: 0x0ee6, 0x829: 0x0d9e, + 0x82a: 0x120a, 0x82b: 0x09c2, 0x82c: 0x0aae, 0x82d: 0x10f6, 0x82e: 0x135e, 0x82f: 0x1436, + 0x830: 0x0eb2, 0x831: 0x14f2, 0x832: 0x0ede, 0x833: 0x0d32, 0x834: 0x1316, 0x835: 0x0d52, + 0x836: 0x10a6, 0x837: 0x0826, 0x838: 0x08a2, 0x839: 0x08e6, 0x83a: 0x0e4e, 0x83b: 0x11f6, + 0x83c: 0x12ee, 0x83d: 0x1442, 0x83e: 0x1556, 0x83f: 0x0956, + // Block 0x21, offset 0x840 + 0x840: 0x0a0a, 0x841: 0x0b12, 0x842: 0x0c2a, 0x843: 0x0dba, 0x844: 0x0f76, 0x845: 0x113a, + 0x846: 0x1592, 0x847: 0x1676, 0x848: 0x16ca, 0x849: 0x16e2, 0x84a: 0x0932, 0x84b: 0x0dee, + 0x84c: 0x0e9e, 0x84d: 0x14e6, 0x84e: 0x0bf6, 0x84f: 0x0cd2, 0x850: 0x0cee, 0x851: 0x0d7e, + 0x852: 0x0f66, 0x853: 0x0fb2, 0x854: 0x1062, 0x855: 0x1186, 0x856: 0x122a, 0x857: 0x128e, + 0x858: 0x14d6, 0x859: 0x1366, 0x85a: 0x14fe, 0x85b: 0x157a, 0x85c: 0x090a, 0x85d: 0x0936, + 0x85e: 0x0a1e, 0x85f: 0x0fa2, 0x860: 0x13ee, 0x861: 0x1436, 0x862: 0x0c16, 0x863: 0x0c86, + 0x864: 0x0d4a, 0x865: 0x0eaa, 0x866: 0x11d2, 0x867: 0x101e, 0x868: 0x0836, 0x869: 0x0a7a, + 0x86a: 0x0b5e, 0x86b: 0x0bc2, 0x86c: 0x0c92, 0x86d: 0x103a, 0x86e: 0x1056, 0x86f: 0x1266, + 0x870: 0x1286, 0x871: 0x155e, 0x872: 0x15de, 0x873: 0x15ee, 0x874: 0x162a, 0x875: 0x084e, + 0x876: 0x117a, 0x877: 0x154a, 0x878: 0x15c6, 0x879: 0x0caa, 0x87a: 0x0812, 0x87b: 0x0872, + 0x87c: 0x0b62, 0x87d: 0x0b82, 0x87e: 0x0daa, 0x87f: 0x0e6e, + // Block 0x22, offset 0x880 + 0x880: 0x0fbe, 0x881: 0x10c6, 0x882: 0x1372, 0x883: 0x1512, 0x884: 0x171e, 0x885: 0x0dde, + 0x886: 0x159e, 0x887: 0x092e, 0x888: 0x0e2a, 0x889: 0x0e36, 0x88a: 0x0f0a, 0x88b: 0x0f42, + 0x88c: 0x1046, 0x88d: 0x10a2, 0x88e: 0x1122, 0x88f: 0x1206, 0x890: 0x1636, 0x891: 0x08aa, + 0x892: 0x0cfe, 0x893: 0x15ae, 0x894: 0x0862, 0x895: 0x0ba6, 0x896: 0x0f2a, 0x897: 0x14da, + 0x898: 0x0c62, 0x899: 0x0cb2, 0x89a: 0x0e3e, 0x89b: 0x102a, 0x89c: 0x15b6, 0x89d: 0x0912, + 0x89e: 0x09fa, 0x89f: 0x0b92, 0x8a0: 0x0dce, 0x8a1: 0x0e1a, 0x8a2: 0x0e5a, 0x8a3: 0x0eee, + 0x8a4: 0x1042, 0x8a5: 0x10b6, 0x8a6: 0x1252, 0x8a7: 0x13f2, 0x8a8: 0x13fe, 0x8a9: 0x1552, + 0x8aa: 0x15d2, 0x8ab: 0x097e, 0x8ac: 0x0f46, 0x8ad: 0x09fe, 0x8ae: 0x0fc2, 0x8af: 0x1066, + 0x8b0: 0x1382, 0x8b1: 0x15ba, 0x8b2: 0x16a6, 0x8b3: 0x16ce, 0x8b4: 0x0e32, 0x8b5: 0x0f22, + 0x8b6: 0x12be, 0x8b7: 0x11b2, 0x8b8: 0x11be, 0x8b9: 0x11e2, 0x8ba: 0x1012, 0x8bb: 0x0f9a, + 0x8bc: 0x145e, 0x8bd: 0x082e, 0x8be: 0x1326, 0x8bf: 0x0916, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x0906, 0x8c1: 0x0c06, 0x8c2: 0x0d26, 0x8c3: 0x11ee, 0x8c4: 0x0b4e, 0x8c5: 0x0efe, + 0x8c6: 0x0dea, 0x8c7: 0x14e2, 0x8c8: 0x13e2, 0x8c9: 0x15a6, 0x8ca: 0x141e, 0x8cb: 0x0c22, + 0x8cc: 0x0882, 0x8cd: 0x0a56, 0x8d0: 0x0aaa, + 0x8d2: 0x0dda, 0x8d5: 0x08f2, 0x8d6: 0x101a, 0x8d7: 0x10de, + 0x8d8: 0x1142, 0x8d9: 0x115e, 0x8da: 0x1162, 0x8db: 0x1176, 0x8dc: 0x15f6, 0x8dd: 0x11e6, + 0x8de: 0x126a, 0x8e0: 0x138a, 0x8e2: 0x144e, + 0x8e5: 0x1502, 0x8e6: 0x152e, + 0x8ea: 0x164a, 0x8eb: 0x164e, 0x8ec: 0x1652, 0x8ed: 0x16b6, 0x8ee: 0x1526, 0x8ef: 0x15c2, + 0x8f0: 0x0852, 0x8f1: 0x0876, 0x8f2: 0x088a, 0x8f3: 0x0946, 0x8f4: 0x0952, 0x8f5: 0x0992, + 0x8f6: 0x0a46, 0x8f7: 0x0a62, 0x8f8: 0x0a6a, 0x8f9: 0x0aa6, 0x8fa: 0x0ab2, 0x8fb: 0x0b8e, + 0x8fc: 0x0b96, 0x8fd: 0x0c9e, 0x8fe: 0x0cc6, 0x8ff: 0x0cce, + // Block 0x24, offset 0x900 + 0x900: 0x0ce6, 0x901: 0x0d92, 0x902: 0x0dc2, 0x903: 0x0de2, 0x904: 0x0e52, 0x905: 0x0f16, + 0x906: 0x0f32, 0x907: 0x0f62, 0x908: 0x0fb6, 0x909: 0x0fd6, 0x90a: 0x104a, 0x90b: 0x112a, + 0x90c: 0x1146, 0x90d: 0x114e, 0x90e: 0x114a, 0x90f: 0x1152, 0x910: 0x1156, 0x911: 0x115a, + 0x912: 0x116e, 0x913: 0x1172, 0x914: 0x1196, 0x915: 0x11aa, 0x916: 0x11c6, 0x917: 0x122a, + 0x918: 0x1232, 0x919: 0x123a, 0x91a: 0x124e, 0x91b: 0x1276, 0x91c: 0x12c6, 0x91d: 0x12fa, + 0x91e: 0x12fa, 0x91f: 0x1362, 0x920: 0x140a, 0x921: 0x1422, 0x922: 0x1456, 0x923: 0x145a, + 0x924: 0x149e, 0x925: 0x14a2, 0x926: 0x14fa, 0x927: 0x1502, 0x928: 0x15d6, 0x929: 0x161a, + 0x92a: 0x1632, 0x92b: 0x0c96, 0x92c: 0x184b, 0x92d: 0x12de, + 0x930: 0x07da, 0x931: 0x08de, 0x932: 0x089e, 0x933: 0x0846, 0x934: 0x0886, 0x935: 0x08b2, + 0x936: 0x0942, 0x937: 0x095e, 0x938: 0x0a46, 0x939: 0x0a32, 0x93a: 0x0a42, 0x93b: 0x0a5e, + 0x93c: 0x0aaa, 0x93d: 0x0aba, 0x93e: 0x0afe, 0x93f: 0x0b0a, + // Block 0x25, offset 0x940 + 0x940: 0x0b26, 0x941: 0x0b36, 0x942: 0x0c1e, 0x943: 0x0c26, 0x944: 0x0c56, 0x945: 0x0c76, + 0x946: 0x0ca6, 0x947: 0x0cbe, 0x948: 0x0cae, 0x949: 0x0cce, 0x94a: 0x0cc2, 0x94b: 0x0ce6, + 0x94c: 0x0d02, 0x94d: 0x0d5a, 0x94e: 0x0d66, 0x94f: 0x0d6e, 0x950: 0x0d96, 0x951: 0x0dda, + 0x952: 0x0e0a, 0x953: 0x0e0e, 0x954: 0x0e22, 0x955: 0x0ea2, 0x956: 0x0eb2, 0x957: 0x0f0a, + 0x958: 0x0f56, 0x959: 0x0f4e, 0x95a: 0x0f62, 0x95b: 0x0f7e, 0x95c: 0x0fb6, 0x95d: 0x110e, + 0x95e: 0x0fda, 0x95f: 0x100e, 0x960: 0x101a, 0x961: 0x105a, 0x962: 0x1076, 0x963: 0x109a, + 0x964: 0x10be, 0x965: 0x10c2, 0x966: 0x10de, 0x967: 0x10e2, 0x968: 0x10f2, 0x969: 0x1106, + 0x96a: 0x1102, 0x96b: 0x1132, 0x96c: 0x11ae, 0x96d: 0x11c6, 0x96e: 0x11de, 0x96f: 0x1216, + 0x970: 0x122a, 0x971: 0x1246, 0x972: 0x1276, 0x973: 0x132a, 0x974: 0x1352, 0x975: 0x13c6, + 0x976: 0x140e, 0x977: 0x141a, 0x978: 0x1422, 0x979: 0x143a, 0x97a: 0x144e, 0x97b: 0x143e, + 0x97c: 0x1456, 0x97d: 0x1452, 0x97e: 0x144a, 0x97f: 0x145a, + // Block 0x26, offset 0x980 + 0x980: 0x1466, 0x981: 0x14a2, 0x982: 0x14de, 0x983: 0x150e, 0x984: 0x1546, 0x985: 0x1566, + 0x986: 0x15b2, 0x987: 0x15d6, 0x988: 0x15f6, 0x989: 0x160a, 0x98a: 0x161a, 0x98b: 0x1626, + 0x98c: 0x1632, 0x98d: 0x1686, 0x98e: 0x1726, 0x98f: 0x17e2, 0x990: 0x17dd, 0x991: 0x180f, + 0x992: 0x0702, 0x993: 0x072a, 0x994: 0x072e, 0x995: 0x1891, 0x996: 0x18be, 0x997: 0x1936, + 0x998: 0x1712, 0x999: 0x1722, + // Block 0x27, offset 0x9c0 + 0x9c0: 0x07f6, 0x9c1: 0x07ee, 0x9c2: 0x07fe, 0x9c3: 0x1774, 0x9c4: 0x0842, 0x9c5: 0x0852, + 0x9c6: 0x0856, 0x9c7: 0x085e, 0x9c8: 0x0866, 0x9c9: 0x086a, 0x9ca: 0x0876, 0x9cb: 0x086e, + 0x9cc: 0x06ae, 0x9cd: 0x1788, 0x9ce: 0x088a, 0x9cf: 0x088e, 0x9d0: 0x0892, 0x9d1: 0x08ae, + 0x9d2: 0x1779, 0x9d3: 0x06b2, 0x9d4: 0x089a, 0x9d5: 0x08ba, 0x9d6: 0x1783, 0x9d7: 0x08ca, + 0x9d8: 0x08d2, 0x9d9: 0x0832, 0x9da: 0x08da, 0x9db: 0x08de, 0x9dc: 0x195e, 0x9dd: 0x08fa, + 0x9de: 0x0902, 0x9df: 0x06ba, 0x9e0: 0x091a, 0x9e1: 0x091e, 0x9e2: 0x0926, 0x9e3: 0x092a, + 0x9e4: 0x06be, 0x9e5: 0x0942, 0x9e6: 0x0946, 0x9e7: 0x0952, 0x9e8: 0x095e, 0x9e9: 0x0962, + 0x9ea: 0x0966, 0x9eb: 0x096e, 0x9ec: 0x098e, 0x9ed: 0x0992, 0x9ee: 0x099a, 0x9ef: 0x09aa, + 0x9f0: 0x09b2, 0x9f1: 0x09b6, 0x9f2: 0x09b6, 0x9f3: 0x09b6, 0x9f4: 0x1797, 0x9f5: 0x0f8e, + 0x9f6: 0x09ca, 0x9f7: 0x09d2, 0x9f8: 0x179c, 0x9f9: 0x09de, 0x9fa: 0x09e6, 0x9fb: 0x09ee, + 0x9fc: 0x0a16, 0x9fd: 0x0a02, 0x9fe: 0x0a0e, 0x9ff: 0x0a12, + // Block 0x28, offset 0xa00 + 0xa00: 0x0a1a, 0xa01: 0x0a22, 0xa02: 0x0a26, 0xa03: 0x0a2e, 0xa04: 0x0a36, 0xa05: 0x0a3a, + 0xa06: 0x0a3a, 0xa07: 0x0a42, 0xa08: 0x0a4a, 0xa09: 0x0a4e, 0xa0a: 0x0a5a, 0xa0b: 0x0a7e, + 0xa0c: 0x0a62, 0xa0d: 0x0a82, 0xa0e: 0x0a66, 0xa0f: 0x0a6e, 0xa10: 0x0906, 0xa11: 0x0aca, + 0xa12: 0x0a92, 0xa13: 0x0a96, 0xa14: 0x0a9a, 0xa15: 0x0a8e, 0xa16: 0x0aa2, 0xa17: 0x0a9e, + 0xa18: 0x0ab6, 0xa19: 0x17a1, 0xa1a: 0x0ad2, 0xa1b: 0x0ad6, 0xa1c: 0x0ade, 0xa1d: 0x0aea, + 0xa1e: 0x0af2, 0xa1f: 0x0b0e, 0xa20: 0x17a6, 0xa21: 0x17ab, 0xa22: 0x0b1a, 0xa23: 0x0b1e, + 0xa24: 0x0b22, 0xa25: 0x0b16, 0xa26: 0x0b2a, 0xa27: 0x06c2, 0xa28: 0x06c6, 0xa29: 0x0b32, + 0xa2a: 0x0b3a, 0xa2b: 0x0b3a, 0xa2c: 0x17b0, 0xa2d: 0x0b56, 0xa2e: 0x0b5a, 0xa2f: 0x0b5e, + 0xa30: 0x0b66, 0xa31: 0x17b5, 0xa32: 0x0b6e, 0xa33: 0x0b72, 0xa34: 0x0c4a, 0xa35: 0x0b7a, + 0xa36: 0x06ca, 0xa37: 0x0b86, 0xa38: 0x0b96, 0xa39: 0x0ba2, 0xa3a: 0x0b9e, 0xa3b: 0x17bf, + 0xa3c: 0x0baa, 0xa3d: 0x17c4, 0xa3e: 0x0bb6, 0xa3f: 0x0bb2, + // Block 0x29, offset 0xa40 + 0xa40: 0x0bba, 0xa41: 0x0bca, 0xa42: 0x0bce, 0xa43: 0x06ce, 0xa44: 0x0bde, 0xa45: 0x0be6, + 0xa46: 0x0bea, 0xa47: 0x0bee, 0xa48: 0x06d2, 0xa49: 0x17c9, 0xa4a: 0x06d6, 0xa4b: 0x0c0a, + 0xa4c: 0x0c0e, 0xa4d: 0x0c12, 0xa4e: 0x0c1a, 0xa4f: 0x1990, 0xa50: 0x0c32, 0xa51: 0x17d3, + 0xa52: 0x17d3, 0xa53: 0x12d2, 0xa54: 0x0c42, 0xa55: 0x0c42, 0xa56: 0x06da, 0xa57: 0x17f6, + 0xa58: 0x18c8, 0xa59: 0x0c52, 0xa5a: 0x0c5a, 0xa5b: 0x06de, 0xa5c: 0x0c6e, 0xa5d: 0x0c7e, + 0xa5e: 0x0c82, 0xa5f: 0x0c8a, 0xa60: 0x0c9a, 0xa61: 0x06e6, 0xa62: 0x06e2, 0xa63: 0x0c9e, + 0xa64: 0x17d8, 0xa65: 0x0ca2, 0xa66: 0x0cb6, 0xa67: 0x0cba, 0xa68: 0x0cbe, 0xa69: 0x0cba, + 0xa6a: 0x0cca, 0xa6b: 0x0cce, 0xa6c: 0x0cde, 0xa6d: 0x0cd6, 0xa6e: 0x0cda, 0xa6f: 0x0ce2, + 0xa70: 0x0ce6, 0xa71: 0x0cea, 0xa72: 0x0cf6, 0xa73: 0x0cfa, 0xa74: 0x0d12, 0xa75: 0x0d1a, + 0xa76: 0x0d2a, 0xa77: 0x0d3e, 0xa78: 0x17e7, 0xa79: 0x0d3a, 0xa7a: 0x0d2e, 0xa7b: 0x0d46, + 0xa7c: 0x0d4e, 0xa7d: 0x0d62, 0xa7e: 0x17ec, 0xa7f: 0x0d6a, + // Block 0x2a, offset 0xa80 + 0xa80: 0x0d5e, 0xa81: 0x0d56, 0xa82: 0x06ea, 0xa83: 0x0d72, 0xa84: 0x0d7a, 0xa85: 0x0d82, + 0xa86: 0x0d76, 0xa87: 0x06ee, 0xa88: 0x0d92, 0xa89: 0x0d9a, 0xa8a: 0x17f1, 0xa8b: 0x0dc6, + 0xa8c: 0x0dfa, 0xa8d: 0x0dd6, 0xa8e: 0x06fa, 0xa8f: 0x0de2, 0xa90: 0x06f6, 0xa91: 0x06f2, + 0xa92: 0x08be, 0xa93: 0x08c2, 0xa94: 0x0dfe, 0xa95: 0x0de6, 0xa96: 0x12a6, 0xa97: 0x075e, + 0xa98: 0x0e0a, 0xa99: 0x0e0e, 0xa9a: 0x0e12, 0xa9b: 0x0e26, 0xa9c: 0x0e1e, 0xa9d: 0x180a, + 0xa9e: 0x06fe, 0xa9f: 0x0e3a, 0xaa0: 0x0e2e, 0xaa1: 0x0e4a, 0xaa2: 0x0e52, 0xaa3: 0x1814, + 0xaa4: 0x0e56, 0xaa5: 0x0e42, 0xaa6: 0x0e5e, 0xaa7: 0x0702, 0xaa8: 0x0e62, 0xaa9: 0x0e66, + 0xaaa: 0x0e6a, 0xaab: 0x0e76, 0xaac: 0x1819, 0xaad: 0x0e7e, 0xaae: 0x0706, 0xaaf: 0x0e8a, + 0xab0: 0x181e, 0xab1: 0x0e8e, 0xab2: 0x070a, 0xab3: 0x0e9a, 0xab4: 0x0ea6, 0xab5: 0x0eb2, + 0xab6: 0x0eb6, 0xab7: 0x1823, 0xab8: 0x17ba, 0xab9: 0x1828, 0xaba: 0x0ed6, 0xabb: 0x182d, + 0xabc: 0x0ee2, 0xabd: 0x0eea, 0xabe: 0x0eda, 0xabf: 0x0ef6, + // Block 0x2b, offset 0xac0 + 0xac0: 0x0f06, 0xac1: 0x0f16, 0xac2: 0x0f0a, 0xac3: 0x0f0e, 0xac4: 0x0f1a, 0xac5: 0x0f1e, + 0xac6: 0x1832, 0xac7: 0x0f02, 0xac8: 0x0f36, 0xac9: 0x0f3a, 0xaca: 0x070e, 0xacb: 0x0f4e, + 0xacc: 0x0f4a, 0xacd: 0x1837, 0xace: 0x0f2e, 0xacf: 0x0f6a, 0xad0: 0x183c, 0xad1: 0x1841, + 0xad2: 0x0f6e, 0xad3: 0x0f82, 0xad4: 0x0f7e, 0xad5: 0x0f7a, 0xad6: 0x0712, 0xad7: 0x0f86, + 0xad8: 0x0f96, 0xad9: 0x0f92, 0xada: 0x0f9e, 0xadb: 0x177e, 0xadc: 0x0fae, 0xadd: 0x1846, + 0xade: 0x0fba, 0xadf: 0x1850, 0xae0: 0x0fce, 0xae1: 0x0fda, 0xae2: 0x0fee, 0xae3: 0x1855, + 0xae4: 0x1002, 0xae5: 0x1006, 0xae6: 0x185a, 0xae7: 0x185f, 0xae8: 0x1022, 0xae9: 0x1032, + 0xaea: 0x0716, 0xaeb: 0x1036, 0xaec: 0x071a, 0xaed: 0x071a, 0xaee: 0x104e, 0xaef: 0x1052, + 0xaf0: 0x105a, 0xaf1: 0x105e, 0xaf2: 0x106a, 0xaf3: 0x071e, 0xaf4: 0x1082, 0xaf5: 0x1864, + 0xaf6: 0x109e, 0xaf7: 0x1869, 0xaf8: 0x10aa, 0xaf9: 0x17ce, 0xafa: 0x10ba, 0xafb: 0x186e, + 0xafc: 0x1873, 0xafd: 0x1878, 0xafe: 0x0722, 0xaff: 0x0726, + // Block 0x2c, offset 0xb00 + 0xb00: 0x10f2, 0xb01: 0x1882, 0xb02: 0x187d, 0xb03: 0x1887, 0xb04: 0x188c, 0xb05: 0x10fa, + 0xb06: 0x10fe, 0xb07: 0x10fe, 0xb08: 0x1106, 0xb09: 0x072e, 0xb0a: 0x110a, 0xb0b: 0x0732, + 0xb0c: 0x0736, 0xb0d: 0x1896, 0xb0e: 0x111e, 0xb0f: 0x1126, 0xb10: 0x1132, 0xb11: 0x073a, + 0xb12: 0x189b, 0xb13: 0x1156, 0xb14: 0x18a0, 0xb15: 0x18a5, 0xb16: 0x1176, 0xb17: 0x118e, + 0xb18: 0x073e, 0xb19: 0x1196, 0xb1a: 0x119a, 0xb1b: 0x119e, 0xb1c: 0x18aa, 0xb1d: 0x18af, + 0xb1e: 0x18af, 0xb1f: 0x11b6, 0xb20: 0x0742, 0xb21: 0x18b4, 0xb22: 0x11ca, 0xb23: 0x11ce, + 0xb24: 0x0746, 0xb25: 0x18b9, 0xb26: 0x11ea, 0xb27: 0x074a, 0xb28: 0x11fa, 0xb29: 0x11f2, + 0xb2a: 0x1202, 0xb2b: 0x18c3, 0xb2c: 0x121a, 0xb2d: 0x074e, 0xb2e: 0x1226, 0xb2f: 0x122e, + 0xb30: 0x123e, 0xb31: 0x0752, 0xb32: 0x18cd, 0xb33: 0x18d2, 0xb34: 0x0756, 0xb35: 0x18d7, + 0xb36: 0x1256, 0xb37: 0x18dc, 0xb38: 0x1262, 0xb39: 0x126e, 0xb3a: 0x1276, 0xb3b: 0x18e1, + 0xb3c: 0x18e6, 0xb3d: 0x128a, 0xb3e: 0x18eb, 0xb3f: 0x1292, + // Block 0x2d, offset 0xb40 + 0xb40: 0x17fb, 0xb41: 0x075a, 0xb42: 0x12aa, 0xb43: 0x12ae, 0xb44: 0x0762, 0xb45: 0x12b2, + 0xb46: 0x0b2e, 0xb47: 0x18f0, 0xb48: 0x18f5, 0xb49: 0x1800, 0xb4a: 0x1805, 0xb4b: 0x12d2, + 0xb4c: 0x12d6, 0xb4d: 0x14ee, 0xb4e: 0x0766, 0xb4f: 0x1302, 0xb50: 0x12fe, 0xb51: 0x1306, + 0xb52: 0x093a, 0xb53: 0x130a, 0xb54: 0x130e, 0xb55: 0x1312, 0xb56: 0x131a, 0xb57: 0x18fa, + 0xb58: 0x1316, 0xb59: 0x131e, 0xb5a: 0x1332, 0xb5b: 0x1336, 0xb5c: 0x1322, 0xb5d: 0x133a, + 0xb5e: 0x134e, 0xb5f: 0x1362, 0xb60: 0x132e, 0xb61: 0x1342, 0xb62: 0x1346, 0xb63: 0x134a, + 0xb64: 0x18ff, 0xb65: 0x1909, 0xb66: 0x1904, 0xb67: 0x076a, 0xb68: 0x136a, 0xb69: 0x136e, + 0xb6a: 0x1376, 0xb6b: 0x191d, 0xb6c: 0x137a, 0xb6d: 0x190e, 0xb6e: 0x076e, 0xb6f: 0x0772, + 0xb70: 0x1913, 0xb71: 0x1918, 0xb72: 0x0776, 0xb73: 0x139a, 0xb74: 0x139e, 0xb75: 0x13a2, + 0xb76: 0x13a6, 0xb77: 0x13b2, 0xb78: 0x13ae, 0xb79: 0x13ba, 0xb7a: 0x13b6, 0xb7b: 0x13c6, + 0xb7c: 0x13be, 0xb7d: 0x13c2, 0xb7e: 0x13ca, 0xb7f: 0x077a, + // Block 0x2e, offset 0xb80 + 0xb80: 0x13d2, 0xb81: 0x13d6, 0xb82: 0x077e, 0xb83: 0x13e6, 0xb84: 0x13ea, 0xb85: 0x1922, + 0xb86: 0x13f6, 0xb87: 0x13fa, 0xb88: 0x0782, 0xb89: 0x1406, 0xb8a: 0x06b6, 0xb8b: 0x1927, + 0xb8c: 0x192c, 0xb8d: 0x0786, 0xb8e: 0x078a, 0xb8f: 0x1432, 0xb90: 0x144a, 0xb91: 0x1466, + 0xb92: 0x1476, 0xb93: 0x1931, 0xb94: 0x148a, 0xb95: 0x148e, 0xb96: 0x14a6, 0xb97: 0x14b2, + 0xb98: 0x193b, 0xb99: 0x178d, 0xb9a: 0x14be, 0xb9b: 0x14ba, 0xb9c: 0x14c6, 0xb9d: 0x1792, + 0xb9e: 0x14d2, 0xb9f: 0x14de, 0xba0: 0x1940, 0xba1: 0x1945, 0xba2: 0x151e, 0xba3: 0x152a, + 0xba4: 0x1532, 0xba5: 0x194a, 0xba6: 0x1536, 0xba7: 0x1562, 0xba8: 0x156e, 0xba9: 0x1572, + 0xbaa: 0x156a, 0xbab: 0x157e, 0xbac: 0x1582, 0xbad: 0x194f, 0xbae: 0x158e, 0xbaf: 0x078e, + 0xbb0: 0x1596, 0xbb1: 0x1954, 0xbb2: 0x0792, 0xbb3: 0x15ce, 0xbb4: 0x0bbe, 0xbb5: 0x15e6, + 0xbb6: 0x1959, 0xbb7: 0x1963, 0xbb8: 0x0796, 0xbb9: 0x079a, 0xbba: 0x160e, 0xbbb: 0x1968, + 0xbbc: 0x079e, 0xbbd: 0x196d, 0xbbe: 0x1626, 0xbbf: 0x1626, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x162e, 0xbc1: 0x1972, 0xbc2: 0x1646, 0xbc3: 0x07a2, 0xbc4: 0x1656, 0xbc5: 0x1662, + 0xbc6: 0x166a, 0xbc7: 0x1672, 0xbc8: 0x07a6, 0xbc9: 0x1977, 0xbca: 0x1686, 0xbcb: 0x16a2, + 0xbcc: 0x16ae, 0xbcd: 0x07aa, 0xbce: 0x07ae, 0xbcf: 0x16b2, 0xbd0: 0x197c, 0xbd1: 0x07b2, + 0xbd2: 0x1981, 0xbd3: 0x1986, 0xbd4: 0x198b, 0xbd5: 0x16d6, 0xbd6: 0x07b6, 0xbd7: 0x16ea, + 0xbd8: 0x16f2, 0xbd9: 0x16f6, 0xbda: 0x16fe, 0xbdb: 0x1706, 0xbdc: 0x170e, 0xbdd: 0x1995, +} + +// nfcIndex: 22 blocks, 1408 entries, 1408 bytes +// Block 0 is the zero block. +var nfcIndex = [1408]uint8{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32, + 0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35, + 0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x3b, 0x121: 0x3c, 0x122: 0x3d, 0x123: 0x0d, 0x124: 0x3e, 0x125: 0x3f, 0x126: 0x40, 0x127: 0x41, + 0x128: 0x42, 0x129: 0x43, 0x12a: 0x44, 0x12b: 0x45, 0x12c: 0x40, 0x12d: 0x46, 0x12e: 0x47, 0x12f: 0x48, + 0x130: 0x44, 0x131: 0x49, 0x132: 0x4a, 0x133: 0x4b, 0x134: 0x4c, 0x135: 0x4d, 0x137: 0x4e, + 0x138: 0x4f, 0x139: 0x50, 0x13a: 0x51, 0x13b: 0x52, 0x13c: 0x53, 0x13d: 0x54, 0x13e: 0x55, 0x13f: 0x56, + // Block 0x5, offset 0x140 + 0x140: 0x57, 0x142: 0x58, 0x144: 0x59, 0x145: 0x5a, 0x146: 0x5b, 0x147: 0x5c, + 0x14d: 0x5d, + 0x15c: 0x5e, 0x15f: 0x5f, + 0x162: 0x60, 0x164: 0x61, + 0x168: 0x62, 0x169: 0x63, 0x16a: 0x64, 0x16b: 0x65, 0x16c: 0x0e, 0x16d: 0x66, 0x16e: 0x67, 0x16f: 0x68, + 0x170: 0x69, 0x173: 0x6a, 0x177: 0x0f, + 0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17, + // Block 0x6, offset 0x180 + 0x180: 0x6b, 0x183: 0x6c, 0x184: 0x6d, 0x186: 0x6e, 0x187: 0x6f, + 0x188: 0x70, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x71, 0x18c: 0x72, + 0x1ab: 0x73, + 0x1b3: 0x74, 0x1b5: 0x75, 0x1b7: 0x76, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x77, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x78, 0x1c5: 0x79, + 0x1c9: 0x7a, 0x1cc: 0x7b, 0x1cd: 0x7c, + // Block 0x8, offset 0x200 + 0x219: 0x7d, 0x21a: 0x7e, 0x21b: 0x7f, + 0x220: 0x80, 0x223: 0x81, 0x224: 0x82, 0x225: 0x83, 0x226: 0x84, 0x227: 0x85, + 0x22a: 0x86, 0x22b: 0x87, 0x22f: 0x88, + 0x230: 0x89, 0x231: 0x8a, 0x232: 0x8b, 0x233: 0x8c, 0x234: 0x8d, 0x235: 0x8e, 0x236: 0x8f, 0x237: 0x89, + 0x238: 0x8a, 0x239: 0x8b, 0x23a: 0x8c, 0x23b: 0x8d, 0x23c: 0x8e, 0x23d: 0x8f, 0x23e: 0x89, 0x23f: 0x8a, + // Block 0x9, offset 0x240 + 0x240: 0x8b, 0x241: 0x8c, 0x242: 0x8d, 0x243: 0x8e, 0x244: 0x8f, 0x245: 0x89, 0x246: 0x8a, 0x247: 0x8b, + 0x248: 0x8c, 0x249: 0x8d, 0x24a: 0x8e, 0x24b: 0x8f, 0x24c: 0x89, 0x24d: 0x8a, 0x24e: 0x8b, 0x24f: 0x8c, + 0x250: 0x8d, 0x251: 0x8e, 0x252: 0x8f, 0x253: 0x89, 0x254: 0x8a, 0x255: 0x8b, 0x256: 0x8c, 0x257: 0x8d, + 0x258: 0x8e, 0x259: 0x8f, 0x25a: 0x89, 0x25b: 0x8a, 0x25c: 0x8b, 0x25d: 0x8c, 0x25e: 0x8d, 0x25f: 0x8e, + 0x260: 0x8f, 0x261: 0x89, 0x262: 0x8a, 0x263: 0x8b, 0x264: 0x8c, 0x265: 0x8d, 0x266: 0x8e, 0x267: 0x8f, + 0x268: 0x89, 0x269: 0x8a, 0x26a: 0x8b, 0x26b: 0x8c, 0x26c: 0x8d, 0x26d: 0x8e, 0x26e: 0x8f, 0x26f: 0x89, + 0x270: 0x8a, 0x271: 0x8b, 0x272: 0x8c, 0x273: 0x8d, 0x274: 0x8e, 0x275: 0x8f, 0x276: 0x89, 0x277: 0x8a, + 0x278: 0x8b, 0x279: 0x8c, 0x27a: 0x8d, 0x27b: 0x8e, 0x27c: 0x8f, 0x27d: 0x89, 0x27e: 0x8a, 0x27f: 0x8b, + // Block 0xa, offset 0x280 + 0x280: 0x8c, 0x281: 0x8d, 0x282: 0x8e, 0x283: 0x8f, 0x284: 0x89, 0x285: 0x8a, 0x286: 0x8b, 0x287: 0x8c, + 0x288: 0x8d, 0x289: 0x8e, 0x28a: 0x8f, 0x28b: 0x89, 0x28c: 0x8a, 0x28d: 0x8b, 0x28e: 0x8c, 0x28f: 0x8d, + 0x290: 0x8e, 0x291: 0x8f, 0x292: 0x89, 0x293: 0x8a, 0x294: 0x8b, 0x295: 0x8c, 0x296: 0x8d, 0x297: 0x8e, + 0x298: 0x8f, 0x299: 0x89, 0x29a: 0x8a, 0x29b: 0x8b, 0x29c: 0x8c, 0x29d: 0x8d, 0x29e: 0x8e, 0x29f: 0x8f, + 0x2a0: 0x89, 0x2a1: 0x8a, 0x2a2: 0x8b, 0x2a3: 0x8c, 0x2a4: 0x8d, 0x2a5: 0x8e, 0x2a6: 0x8f, 0x2a7: 0x89, + 0x2a8: 0x8a, 0x2a9: 0x8b, 0x2aa: 0x8c, 0x2ab: 0x8d, 0x2ac: 0x8e, 0x2ad: 0x8f, 0x2ae: 0x89, 0x2af: 0x8a, + 0x2b0: 0x8b, 0x2b1: 0x8c, 0x2b2: 0x8d, 0x2b3: 0x8e, 0x2b4: 0x8f, 0x2b5: 0x89, 0x2b6: 0x8a, 0x2b7: 0x8b, + 0x2b8: 0x8c, 0x2b9: 0x8d, 0x2ba: 0x8e, 0x2bb: 0x8f, 0x2bc: 0x89, 0x2bd: 0x8a, 0x2be: 0x8b, 0x2bf: 0x8c, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x8d, 0x2c1: 0x8e, 0x2c2: 0x8f, 0x2c3: 0x89, 0x2c4: 0x8a, 0x2c5: 0x8b, 0x2c6: 0x8c, 0x2c7: 0x8d, + 0x2c8: 0x8e, 0x2c9: 0x8f, 0x2ca: 0x89, 0x2cb: 0x8a, 0x2cc: 0x8b, 0x2cd: 0x8c, 0x2ce: 0x8d, 0x2cf: 0x8e, + 0x2d0: 0x8f, 0x2d1: 0x89, 0x2d2: 0x8a, 0x2d3: 0x8b, 0x2d4: 0x8c, 0x2d5: 0x8d, 0x2d6: 0x8e, 0x2d7: 0x8f, + 0x2d8: 0x89, 0x2d9: 0x8a, 0x2da: 0x8b, 0x2db: 0x8c, 0x2dc: 0x8d, 0x2dd: 0x8e, 0x2de: 0x90, + // Block 0xc, offset 0x300 + 0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20, + 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x91, 0x32d: 0x92, 0x32e: 0x93, + 0x331: 0x94, 0x332: 0x95, 0x333: 0x96, 0x334: 0x97, + 0x338: 0x98, 0x339: 0x99, 0x33a: 0x9a, 0x33b: 0x9b, 0x33e: 0x9c, 0x33f: 0x9d, + // Block 0xd, offset 0x340 + 0x347: 0x9e, + 0x34b: 0x9f, 0x34d: 0xa0, + 0x368: 0xa1, 0x36b: 0xa2, + 0x374: 0xa3, + 0x37a: 0xa4, 0x37b: 0xa5, 0x37d: 0xa6, 0x37e: 0xa7, + // Block 0xe, offset 0x380 + 0x381: 0xa8, 0x382: 0xa9, 0x384: 0xaa, 0x385: 0x84, 0x387: 0xab, + 0x388: 0xac, 0x38b: 0xad, 0x38c: 0xae, 0x38d: 0xaf, + 0x391: 0xb0, 0x392: 0xb1, 0x393: 0xb2, 0x396: 0xb3, 0x397: 0xb4, + 0x398: 0x75, 0x39a: 0xb5, 0x39c: 0xb6, + 0x3a0: 0xb7, 0x3a4: 0xb8, 0x3a5: 0xb9, 0x3a7: 0xba, + 0x3a8: 0xbb, 0x3a9: 0xbc, 0x3aa: 0xbd, + 0x3b0: 0x75, 0x3b5: 0xbe, 0x3b6: 0xbf, + 0x3bd: 0xc0, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xc1, 0x3ec: 0xc2, + 0x3ff: 0xc3, + // Block 0x10, offset 0x400 + 0x432: 0xc4, + // Block 0x11, offset 0x440 + 0x445: 0xc5, 0x446: 0xc6, 0x447: 0xc7, + 0x449: 0xc8, + // Block 0x12, offset 0x480 + 0x480: 0xc9, 0x482: 0xca, 0x484: 0xc2, + 0x48a: 0xcb, 0x48b: 0xcc, + 0x493: 0xcd, + 0x4a3: 0xce, 0x4a5: 0xcf, + // Block 0x13, offset 0x4c0 + 0x4c8: 0xd0, + // Block 0x14, offset 0x500 + 0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c, + 0x528: 0x2d, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfcSparseOffset: 163 entries, 326 bytes +var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x6e, 0x76, 0x7d, 0x80, 0x88, 0x8c, 0x90, 0x92, 0x94, 0x9d, 0xa1, 0xa8, 0xad, 0xb0, 0xba, 0xbd, 0xc4, 0xcc, 0xcf, 0xd1, 0xd4, 0xd6, 0xdb, 0xec, 0xf8, 0xfa, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10a, 0x10c, 0x10f, 0x112, 0x114, 0x117, 0x11a, 0x11e, 0x124, 0x12b, 0x134, 0x136, 0x139, 0x13b, 0x146, 0x14a, 0x158, 0x15b, 0x161, 0x167, 0x172, 0x176, 0x178, 0x17a, 0x17c, 0x17e, 0x180, 0x186, 0x18a, 0x18c, 0x18e, 0x196, 0x19a, 0x19d, 0x19f, 0x1a1, 0x1a4, 0x1a7, 0x1a9, 0x1ab, 0x1ad, 0x1af, 0x1b5, 0x1b8, 0x1ba, 0x1c1, 0x1c7, 0x1cd, 0x1d5, 0x1db, 0x1e1, 0x1e7, 0x1eb, 0x1f9, 0x202, 0x205, 0x208, 0x20a, 0x20d, 0x20f, 0x213, 0x218, 0x21a, 0x21c, 0x221, 0x227, 0x229, 0x22b, 0x22d, 0x233, 0x236, 0x238, 0x23a, 0x23c, 0x242, 0x246, 0x24a, 0x252, 0x259, 0x25c, 0x25f, 0x261, 0x264, 0x26c, 0x270, 0x277, 0x27a, 0x280, 0x282, 0x285, 0x287, 0x28a, 0x28f, 0x291, 0x293, 0x295, 0x297, 0x299, 0x29c, 0x29e, 0x2a0, 0x2a2, 0x2a4, 0x2a6, 0x2a8, 0x2b5, 0x2bf, 0x2c1, 0x2c3, 0x2c9, 0x2cb, 0x2cd, 0x2cf, 0x2d3, 0x2d5, 0x2d8} + +// nfcSparseValues: 730 entries, 2920 bytes +var nfcSparseValues = [730]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0000, lo: 0x04}, + {value: 0xa100, lo: 0xa8, hi: 0xa8}, + {value: 0x8100, lo: 0xaf, hi: 0xaf}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb8, hi: 0xb8}, + // Block 0x1, offset 0x5 + {value: 0x0091, lo: 0x03}, + {value: 0x4823, lo: 0xa0, hi: 0xa1}, + {value: 0x4855, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x9 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + // Block 0x3, offset 0xb + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x98, hi: 0x9d}, + // Block 0x4, offset 0xd + {value: 0x0006, lo: 0x0a}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x85, hi: 0x85}, + {value: 0xa000, lo: 0x89, hi: 0x89}, + {value: 0x4981, lo: 0x8a, hi: 0x8a}, + {value: 0x499f, lo: 0x8b, hi: 0x8b}, + {value: 0x3808, lo: 0x8c, hi: 0x8c}, + {value: 0x3820, lo: 0x8d, hi: 0x8d}, + {value: 0x49b7, lo: 0x8e, hi: 0x8e}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x383e, lo: 0x93, hi: 0x94}, + // Block 0x5, offset 0x18 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x38e6, lo: 0x90, hi: 0x90}, + {value: 0x38f2, lo: 0x91, hi: 0x91}, + {value: 0x38e0, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3958, lo: 0x97, hi: 0x97}, + {value: 0x3922, lo: 0x9c, hi: 0x9c}, + {value: 0x390a, lo: 0x9d, hi: 0x9d}, + {value: 0x3934, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x395e, lo: 0xb6, hi: 0xb6}, + {value: 0x3964, lo: 0xb7, hi: 0xb7}, + // Block 0x6, offset 0x28 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x83, hi: 0x87}, + // Block 0x7, offset 0x2a + {value: 0x0001, lo: 0x04}, + {value: 0x8114, lo: 0x81, hi: 0x82}, + {value: 0x8133, lo: 0x84, hi: 0x84}, + {value: 0x812e, lo: 0x85, hi: 0x85}, + {value: 0x810e, lo: 0x87, hi: 0x87}, + // Block 0x8, offset 0x2f + {value: 0x0000, lo: 0x0a}, + {value: 0x8133, lo: 0x90, hi: 0x97}, + {value: 0x811a, lo: 0x98, hi: 0x98}, + {value: 0x811b, lo: 0x99, hi: 0x99}, + {value: 0x811c, lo: 0x9a, hi: 0x9a}, + {value: 0x3982, lo: 0xa2, hi: 0xa2}, + {value: 0x3988, lo: 0xa3, hi: 0xa3}, + {value: 0x3994, lo: 0xa4, hi: 0xa4}, + {value: 0x398e, lo: 0xa5, hi: 0xa5}, + {value: 0x399a, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x9, offset 0x3a + {value: 0x0000, lo: 0x0e}, + {value: 0x39ac, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x39a0, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x39a6, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8133, lo: 0x96, hi: 0x9c}, + {value: 0x8133, lo: 0x9f, hi: 0xa2}, + {value: 0x812e, lo: 0xa3, hi: 0xa3}, + {value: 0x8133, lo: 0xa4, hi: 0xa4}, + {value: 0x8133, lo: 0xa7, hi: 0xa8}, + {value: 0x812e, lo: 0xaa, hi: 0xaa}, + {value: 0x8133, lo: 0xab, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + // Block 0xa, offset 0x49 + {value: 0x0000, lo: 0x0c}, + {value: 0x8120, lo: 0x91, hi: 0x91}, + {value: 0x8133, lo: 0xb0, hi: 0xb0}, + {value: 0x812e, lo: 0xb1, hi: 0xb1}, + {value: 0x8133, lo: 0xb2, hi: 0xb3}, + {value: 0x812e, lo: 0xb4, hi: 0xb4}, + {value: 0x8133, lo: 0xb5, hi: 0xb6}, + {value: 0x812e, lo: 0xb7, hi: 0xb9}, + {value: 0x8133, lo: 0xba, hi: 0xba}, + {value: 0x812e, lo: 0xbb, hi: 0xbc}, + {value: 0x8133, lo: 0xbd, hi: 0xbd}, + {value: 0x812e, lo: 0xbe, hi: 0xbe}, + {value: 0x8133, lo: 0xbf, hi: 0xbf}, + // Block 0xb, offset 0x56 + {value: 0x0005, lo: 0x07}, + {value: 0x8133, lo: 0x80, hi: 0x80}, + {value: 0x8133, lo: 0x81, hi: 0x81}, + {value: 0x812e, lo: 0x82, hi: 0x83}, + {value: 0x812e, lo: 0x84, hi: 0x85}, + {value: 0x812e, lo: 0x86, hi: 0x87}, + {value: 0x812e, lo: 0x88, hi: 0x89}, + {value: 0x8133, lo: 0x8a, hi: 0x8a}, + // Block 0xc, offset 0x5e + {value: 0x0000, lo: 0x04}, + {value: 0x8133, lo: 0xab, hi: 0xb1}, + {value: 0x812e, lo: 0xb2, hi: 0xb2}, + {value: 0x8133, lo: 0xb3, hi: 0xb3}, + {value: 0x812e, lo: 0xbd, hi: 0xbd}, + // Block 0xd, offset 0x63 + {value: 0x0000, lo: 0x04}, + {value: 0x8133, lo: 0x96, hi: 0x99}, + {value: 0x8133, lo: 0x9b, hi: 0xa3}, + {value: 0x8133, lo: 0xa5, hi: 0xa7}, + {value: 0x8133, lo: 0xa9, hi: 0xad}, + // Block 0xe, offset 0x68 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x99, hi: 0x9b}, + // Block 0xf, offset 0x6a + {value: 0x0000, lo: 0x03}, + {value: 0x8133, lo: 0x98, hi: 0x98}, + {value: 0x812e, lo: 0x99, hi: 0x9b}, + {value: 0x8133, lo: 0x9c, hi: 0x9f}, + // Block 0x10, offset 0x6e + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x4019, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x4021, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x4029, lo: 0xb4, hi: 0xb4}, + {value: 0x9903, lo: 0xbc, hi: 0xbc}, + // Block 0x11, offset 0x76 + {value: 0x0008, lo: 0x06}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x8133, lo: 0x91, hi: 0x91}, + {value: 0x812e, lo: 0x92, hi: 0x92}, + {value: 0x8133, lo: 0x93, hi: 0x93}, + {value: 0x8133, lo: 0x94, hi: 0x94}, + {value: 0x465d, lo: 0x98, hi: 0x9f}, + // Block 0x12, offset 0x7d + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x13, offset 0x80 + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2dd5, lo: 0x8b, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x469d, lo: 0x9c, hi: 0x9d}, + {value: 0x46ad, lo: 0x9f, hi: 0x9f}, + {value: 0x8133, lo: 0xbe, hi: 0xbe}, + // Block 0x14, offset 0x88 + {value: 0x0000, lo: 0x03}, + {value: 0x46d5, lo: 0xb3, hi: 0xb3}, + {value: 0x46dd, lo: 0xb6, hi: 0xb6}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + // Block 0x15, offset 0x8c + {value: 0x0008, lo: 0x03}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x46b5, lo: 0x99, hi: 0x9b}, + {value: 0x46cd, lo: 0x9e, hi: 0x9e}, + // Block 0x16, offset 0x90 + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + // Block 0x17, offset 0x92 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + // Block 0x18, offset 0x94 + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2ded, lo: 0x88, hi: 0x88}, + {value: 0x2de5, lo: 0x8b, hi: 0x8b}, + {value: 0x2df5, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x46e5, lo: 0x9c, hi: 0x9c}, + {value: 0x46ed, lo: 0x9d, hi: 0x9d}, + // Block 0x19, offset 0x9d + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2dfd, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1a, offset 0xa1 + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2e05, lo: 0x8a, hi: 0x8a}, + {value: 0x2e15, lo: 0x8b, hi: 0x8b}, + {value: 0x2e0d, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1b, offset 0xa8 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x4031, lo: 0x88, hi: 0x88}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x8121, lo: 0x95, hi: 0x96}, + // Block 0x1c, offset 0xad + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1d, offset 0xb0 + {value: 0x0000, lo: 0x09}, + {value: 0x2e1d, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2e25, lo: 0x87, hi: 0x87}, + {value: 0x2e2d, lo: 0x88, hi: 0x88}, + {value: 0x3091, lo: 0x8a, hi: 0x8a}, + {value: 0x2f19, lo: 0x8b, hi: 0x8b}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1e, offset 0xba + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1f, offset 0xbd + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2e35, lo: 0x8a, hi: 0x8a}, + {value: 0x2e45, lo: 0x8b, hi: 0x8b}, + {value: 0x2e3d, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x20, offset 0xc4 + {value: 0x6ab3, lo: 0x07}, + {value: 0x9905, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4039, lo: 0x9a, hi: 0x9a}, + {value: 0x3099, lo: 0x9c, hi: 0x9c}, + {value: 0x2f24, lo: 0x9d, hi: 0x9d}, + {value: 0x2e4d, lo: 0x9e, hi: 0x9f}, + // Block 0x21, offset 0xcc + {value: 0x0000, lo: 0x02}, + {value: 0x8123, lo: 0xb8, hi: 0xb9}, + {value: 0x8105, lo: 0xba, hi: 0xba}, + // Block 0x22, offset 0xcf + {value: 0x0000, lo: 0x01}, + {value: 0x8124, lo: 0x88, hi: 0x8b}, + // Block 0x23, offset 0xd1 + {value: 0x0000, lo: 0x02}, + {value: 0x8125, lo: 0xb8, hi: 0xb9}, + {value: 0x8105, lo: 0xba, hi: 0xba}, + // Block 0x24, offset 0xd4 + {value: 0x0000, lo: 0x01}, + {value: 0x8126, lo: 0x88, hi: 0x8b}, + // Block 0x25, offset 0xd6 + {value: 0x0000, lo: 0x04}, + {value: 0x812e, lo: 0x98, hi: 0x99}, + {value: 0x812e, lo: 0xb5, hi: 0xb5}, + {value: 0x812e, lo: 0xb7, hi: 0xb7}, + {value: 0x812c, lo: 0xb9, hi: 0xb9}, + // Block 0x26, offset 0xdb + {value: 0x0000, lo: 0x10}, + {value: 0x2774, lo: 0x83, hi: 0x83}, + {value: 0x277b, lo: 0x8d, hi: 0x8d}, + {value: 0x2782, lo: 0x92, hi: 0x92}, + {value: 0x2789, lo: 0x97, hi: 0x97}, + {value: 0x2790, lo: 0x9c, hi: 0x9c}, + {value: 0x276d, lo: 0xa9, hi: 0xa9}, + {value: 0x8127, lo: 0xb1, hi: 0xb1}, + {value: 0x8128, lo: 0xb2, hi: 0xb2}, + {value: 0x4bc5, lo: 0xb3, hi: 0xb3}, + {value: 0x8129, lo: 0xb4, hi: 0xb4}, + {value: 0x4bce, lo: 0xb5, hi: 0xb5}, + {value: 0x46f5, lo: 0xb6, hi: 0xb6}, + {value: 0x8200, lo: 0xb7, hi: 0xb7}, + {value: 0x46fd, lo: 0xb8, hi: 0xb8}, + {value: 0x8200, lo: 0xb9, hi: 0xb9}, + {value: 0x8128, lo: 0xba, hi: 0xbd}, + // Block 0x27, offset 0xec + {value: 0x0000, lo: 0x0b}, + {value: 0x8128, lo: 0x80, hi: 0x80}, + {value: 0x4bd7, lo: 0x81, hi: 0x81}, + {value: 0x8133, lo: 0x82, hi: 0x83}, + {value: 0x8105, lo: 0x84, hi: 0x84}, + {value: 0x8133, lo: 0x86, hi: 0x87}, + {value: 0x279e, lo: 0x93, hi: 0x93}, + {value: 0x27a5, lo: 0x9d, hi: 0x9d}, + {value: 0x27ac, lo: 0xa2, hi: 0xa2}, + {value: 0x27b3, lo: 0xa7, hi: 0xa7}, + {value: 0x27ba, lo: 0xac, hi: 0xac}, + {value: 0x2797, lo: 0xb9, hi: 0xb9}, + // Block 0x28, offset 0xf8 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x86, hi: 0x86}, + // Block 0x29, offset 0xfa + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2e55, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8103, lo: 0xb7, hi: 0xb7}, + {value: 0x8105, lo: 0xb9, hi: 0xba}, + // Block 0x2a, offset 0x100 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x8d, hi: 0x8d}, + // Block 0x2b, offset 0x102 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2c, offset 0x104 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2d, offset 0x106 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2e, offset 0x108 + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2f, offset 0x10a + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x9d, hi: 0x9f}, + // Block 0x30, offset 0x10c + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x94, hi: 0x95}, + {value: 0x8105, lo: 0xb4, hi: 0xb4}, + // Block 0x31, offset 0x10f + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x92, hi: 0x92}, + {value: 0x8133, lo: 0x9d, hi: 0x9d}, + // Block 0x32, offset 0x112 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + // Block 0x33, offset 0x114 + {value: 0x0004, lo: 0x02}, + {value: 0x812f, lo: 0xb9, hi: 0xba}, + {value: 0x812e, lo: 0xbb, hi: 0xbb}, + // Block 0x34, offset 0x117 + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0x97, hi: 0x97}, + {value: 0x812e, lo: 0x98, hi: 0x98}, + // Block 0x35, offset 0x11a + {value: 0x0000, lo: 0x03}, + {value: 0x8105, lo: 0xa0, hi: 0xa0}, + {value: 0x8133, lo: 0xb5, hi: 0xbc}, + {value: 0x812e, lo: 0xbf, hi: 0xbf}, + // Block 0x36, offset 0x11e + {value: 0x0000, lo: 0x05}, + {value: 0x8133, lo: 0xb0, hi: 0xb4}, + {value: 0x812e, lo: 0xb5, hi: 0xba}, + {value: 0x8133, lo: 0xbb, hi: 0xbc}, + {value: 0x812e, lo: 0xbd, hi: 0xbd}, + {value: 0x812e, lo: 0xbf, hi: 0xbf}, + // Block 0x37, offset 0x124 + {value: 0x0000, lo: 0x06}, + {value: 0x812e, lo: 0x80, hi: 0x80}, + {value: 0x8133, lo: 0x81, hi: 0x82}, + {value: 0x812e, lo: 0x83, hi: 0x84}, + {value: 0x8133, lo: 0x85, hi: 0x89}, + {value: 0x812e, lo: 0x8a, hi: 0x8a}, + {value: 0x8133, lo: 0x8b, hi: 0x8e}, + // Block 0x38, offset 0x12b + {value: 0x0000, lo: 0x08}, + {value: 0x2e9d, lo: 0x80, hi: 0x80}, + {value: 0x2ea5, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2ead, lo: 0x83, hi: 0x83}, + {value: 0x8105, lo: 0x84, hi: 0x84}, + {value: 0x8133, lo: 0xab, hi: 0xab}, + {value: 0x812e, lo: 0xac, hi: 0xac}, + {value: 0x8133, lo: 0xad, hi: 0xb3}, + // Block 0x39, offset 0x134 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xaa, hi: 0xab}, + // Block 0x3a, offset 0x136 + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xa6, hi: 0xa6}, + {value: 0x8105, lo: 0xb2, hi: 0xb3}, + // Block 0x3b, offset 0x139 + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0xb7, hi: 0xb7}, + // Block 0x3c, offset 0x13b + {value: 0x0000, lo: 0x0a}, + {value: 0x8133, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812e, lo: 0x95, hi: 0x99}, + {value: 0x8133, lo: 0x9a, hi: 0x9b}, + {value: 0x812e, lo: 0x9c, hi: 0x9f}, + {value: 0x8133, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x8133, lo: 0xb4, hi: 0xb4}, + {value: 0x8133, lo: 0xb8, hi: 0xb9}, + // Block 0x3d, offset 0x146 + {value: 0x0004, lo: 0x03}, + {value: 0x052a, lo: 0x80, hi: 0x81}, + {value: 0x8100, lo: 0x97, hi: 0x97}, + {value: 0x8100, lo: 0xbe, hi: 0xbe}, + // Block 0x3e, offset 0x14a + {value: 0x0000, lo: 0x0d}, + {value: 0x8133, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8133, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8133, lo: 0x9b, hi: 0x9c}, + {value: 0x8133, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8133, lo: 0xa7, hi: 0xa7}, + {value: 0x812e, lo: 0xa8, hi: 0xa8}, + {value: 0x8133, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812e, lo: 0xac, hi: 0xaf}, + {value: 0x8133, lo: 0xb0, hi: 0xb0}, + // Block 0x3f, offset 0x158 + {value: 0x43bc, lo: 0x02}, + {value: 0x023c, lo: 0xa6, hi: 0xa6}, + {value: 0x0057, lo: 0xaa, hi: 0xab}, + // Block 0x40, offset 0x15b + {value: 0x0007, lo: 0x05}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3cfa, lo: 0x9a, hi: 0x9b}, + {value: 0x3d08, lo: 0xae, hi: 0xae}, + // Block 0x41, offset 0x161 + {value: 0x000e, lo: 0x05}, + {value: 0x3d0f, lo: 0x8d, hi: 0x8e}, + {value: 0x3d16, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x42, offset 0x167 + {value: 0x62c7, lo: 0x0a}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3d24, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3d2b, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3d32, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3d39, lo: 0xa4, hi: 0xa5}, + {value: 0x3d40, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x43, offset 0x172 + {value: 0x0007, lo: 0x03}, + {value: 0x3da9, lo: 0xa0, hi: 0xa1}, + {value: 0x3dd3, lo: 0xa2, hi: 0xa3}, + {value: 0x3dfd, lo: 0xaa, hi: 0xad}, + // Block 0x44, offset 0x176 + {value: 0x0004, lo: 0x01}, + {value: 0x0586, lo: 0xa9, hi: 0xaa}, + // Block 0x45, offset 0x178 + {value: 0x0000, lo: 0x01}, + {value: 0x461e, lo: 0x9c, hi: 0x9c}, + // Block 0x46, offset 0x17a + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xaf, hi: 0xb1}, + // Block 0x47, offset 0x17c + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x48, offset 0x17e + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xa0, hi: 0xbf}, + // Block 0x49, offset 0x180 + {value: 0x0000, lo: 0x05}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x8134, lo: 0xac, hi: 0xac}, + {value: 0x812f, lo: 0xad, hi: 0xad}, + {value: 0x8130, lo: 0xae, hi: 0xaf}, + // Block 0x4a, offset 0x186 + {value: 0x0000, lo: 0x03}, + {value: 0x4be0, lo: 0xb3, hi: 0xb3}, + {value: 0x4be0, lo: 0xb5, hi: 0xb6}, + {value: 0x4be0, lo: 0xba, hi: 0xbf}, + // Block 0x4b, offset 0x18a + {value: 0x0000, lo: 0x01}, + {value: 0x4be0, lo: 0x8f, hi: 0xa3}, + // Block 0x4c, offset 0x18c + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xae, hi: 0xbe}, + // Block 0x4d, offset 0x18e + {value: 0x0000, lo: 0x07}, + {value: 0x8100, lo: 0x84, hi: 0x84}, + {value: 0x8100, lo: 0x87, hi: 0x87}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + {value: 0x8100, lo: 0x9e, hi: 0x9e}, + {value: 0x8100, lo: 0xa1, hi: 0xa1}, + {value: 0x8100, lo: 0xb2, hi: 0xb2}, + {value: 0x8100, lo: 0xbb, hi: 0xbb}, + // Block 0x4e, offset 0x196 + {value: 0x0000, lo: 0x03}, + {value: 0x8100, lo: 0x80, hi: 0x80}, + {value: 0x8100, lo: 0x8b, hi: 0x8b}, + {value: 0x8100, lo: 0x8e, hi: 0x8e}, + // Block 0x4f, offset 0x19a + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0xaf, hi: 0xaf}, + {value: 0x8133, lo: 0xb4, hi: 0xbd}, + // Block 0x50, offset 0x19d + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x9e, hi: 0x9f}, + // Block 0x51, offset 0x19f + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xb0, hi: 0xb1}, + // Block 0x52, offset 0x1a1 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x86, hi: 0x86}, + {value: 0x8105, lo: 0xac, hi: 0xac}, + // Block 0x53, offset 0x1a4 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x84, hi: 0x84}, + {value: 0x8133, lo: 0xa0, hi: 0xb1}, + // Block 0x54, offset 0x1a7 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0xab, hi: 0xad}, + // Block 0x55, offset 0x1a9 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x93, hi: 0x93}, + // Block 0x56, offset 0x1ab + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0xb3, hi: 0xb3}, + // Block 0x57, offset 0x1ad + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x80, hi: 0x80}, + // Block 0x58, offset 0x1af + {value: 0x0000, lo: 0x05}, + {value: 0x8133, lo: 0xb0, hi: 0xb0}, + {value: 0x8133, lo: 0xb2, hi: 0xb3}, + {value: 0x812e, lo: 0xb4, hi: 0xb4}, + {value: 0x8133, lo: 0xb7, hi: 0xb8}, + {value: 0x8133, lo: 0xbe, hi: 0xbf}, + // Block 0x59, offset 0x1b5 + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0x81, hi: 0x81}, + {value: 0x8105, lo: 0xb6, hi: 0xb6}, + // Block 0x5a, offset 0x1b8 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xad, hi: 0xad}, + // Block 0x5b, offset 0x1ba + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x5c, offset 0x1c1 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x5d, offset 0x1c7 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x5e, offset 0x1cd + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x5f, offset 0x1d5 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x60, offset 0x1db + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x61, offset 0x1e1 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x62, offset 0x1e7 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x63, offset 0x1eb + {value: 0x0006, lo: 0x0d}, + {value: 0x44d1, lo: 0x9d, hi: 0x9d}, + {value: 0x8116, lo: 0x9e, hi: 0x9e}, + {value: 0x4543, lo: 0x9f, hi: 0x9f}, + {value: 0x4531, lo: 0xaa, hi: 0xab}, + {value: 0x4635, lo: 0xac, hi: 0xac}, + {value: 0x463d, lo: 0xad, hi: 0xad}, + {value: 0x4489, lo: 0xae, hi: 0xb1}, + {value: 0x44a7, lo: 0xb2, hi: 0xb4}, + {value: 0x44bf, lo: 0xb5, hi: 0xb6}, + {value: 0x44cb, lo: 0xb8, hi: 0xb8}, + {value: 0x44d7, lo: 0xb9, hi: 0xbb}, + {value: 0x44ef, lo: 0xbc, hi: 0xbc}, + {value: 0x44f5, lo: 0xbe, hi: 0xbe}, + // Block 0x64, offset 0x1f9 + {value: 0x0006, lo: 0x08}, + {value: 0x44fb, lo: 0x80, hi: 0x81}, + {value: 0x4507, lo: 0x83, hi: 0x84}, + {value: 0x4519, lo: 0x86, hi: 0x89}, + {value: 0x453d, lo: 0x8a, hi: 0x8a}, + {value: 0x44b9, lo: 0x8b, hi: 0x8b}, + {value: 0x44a1, lo: 0x8c, hi: 0x8c}, + {value: 0x44e9, lo: 0x8d, hi: 0x8d}, + {value: 0x4513, lo: 0x8e, hi: 0x8e}, + // Block 0x65, offset 0x202 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0xa4, hi: 0xa5}, + {value: 0x8100, lo: 0xb0, hi: 0xb1}, + // Block 0x66, offset 0x205 + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x9b, hi: 0x9d}, + {value: 0x8200, lo: 0x9e, hi: 0xa3}, + // Block 0x67, offset 0x208 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x90, hi: 0x90}, + // Block 0x68, offset 0x20a + {value: 0x0000, lo: 0x02}, + {value: 0x8100, lo: 0x99, hi: 0x99}, + {value: 0x8200, lo: 0xb2, hi: 0xb4}, + // Block 0x69, offset 0x20d + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xbc, hi: 0xbd}, + // Block 0x6a, offset 0x20f + {value: 0x0000, lo: 0x03}, + {value: 0x8133, lo: 0xa0, hi: 0xa6}, + {value: 0x812e, lo: 0xa7, hi: 0xad}, + {value: 0x8133, lo: 0xae, hi: 0xaf}, + // Block 0x6b, offset 0x213 + {value: 0x0000, lo: 0x04}, + {value: 0x8100, lo: 0x89, hi: 0x8c}, + {value: 0x8100, lo: 0xb0, hi: 0xb2}, + {value: 0x8100, lo: 0xb4, hi: 0xb4}, + {value: 0x8100, lo: 0xb6, hi: 0xbf}, + // Block 0x6c, offset 0x218 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x81, hi: 0x8c}, + // Block 0x6d, offset 0x21a + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0xb5, hi: 0xba}, + // Block 0x6e, offset 0x21c + {value: 0x0000, lo: 0x04}, + {value: 0x4be0, lo: 0x9e, hi: 0x9f}, + {value: 0x4be0, lo: 0xa3, hi: 0xa3}, + {value: 0x4be0, lo: 0xa5, hi: 0xa6}, + {value: 0x4be0, lo: 0xaa, hi: 0xaf}, + // Block 0x6f, offset 0x221 + {value: 0x0000, lo: 0x05}, + {value: 0x4be0, lo: 0x82, hi: 0x87}, + {value: 0x4be0, lo: 0x8a, hi: 0x8f}, + {value: 0x4be0, lo: 0x92, hi: 0x97}, + {value: 0x4be0, lo: 0x9a, hi: 0x9c}, + {value: 0x8100, lo: 0xa3, hi: 0xa3}, + // Block 0x70, offset 0x227 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0xbd, hi: 0xbd}, + // Block 0x71, offset 0x229 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0xa0, hi: 0xa0}, + // Block 0x72, offset 0x22b + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xb6, hi: 0xba}, + // Block 0x73, offset 0x22d + {value: 0x002d, lo: 0x05}, + {value: 0x812e, lo: 0x8d, hi: 0x8d}, + {value: 0x8133, lo: 0x8f, hi: 0x8f}, + {value: 0x8133, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x74, offset 0x233 + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0xa5, hi: 0xa5}, + {value: 0x812e, lo: 0xa6, hi: 0xa6}, + // Block 0x75, offset 0x236 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xa4, hi: 0xa7}, + // Block 0x76, offset 0x238 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xab, hi: 0xac}, + // Block 0x77, offset 0x23a + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0xbd, hi: 0xbf}, + // Block 0x78, offset 0x23c + {value: 0x0000, lo: 0x05}, + {value: 0x812e, lo: 0x86, hi: 0x87}, + {value: 0x8133, lo: 0x88, hi: 0x8a}, + {value: 0x812e, lo: 0x8b, hi: 0x8b}, + {value: 0x8133, lo: 0x8c, hi: 0x8c}, + {value: 0x812e, lo: 0x8d, hi: 0x90}, + // Block 0x79, offset 0x242 + {value: 0x0005, lo: 0x03}, + {value: 0x8133, lo: 0x82, hi: 0x82}, + {value: 0x812e, lo: 0x83, hi: 0x84}, + {value: 0x812e, lo: 0x85, hi: 0x85}, + // Block 0x7a, offset 0x246 + {value: 0x0000, lo: 0x03}, + {value: 0x8105, lo: 0x86, hi: 0x86}, + {value: 0x8105, lo: 0xb0, hi: 0xb0}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x7b, offset 0x24a + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4379, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4383, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x438d, lo: 0xab, hi: 0xab}, + {value: 0x8105, lo: 0xb9, hi: 0xba}, + // Block 0x7c, offset 0x252 + {value: 0x0000, lo: 0x06}, + {value: 0x8133, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2eb5, lo: 0xae, hi: 0xae}, + {value: 0x2ebf, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8105, lo: 0xb3, hi: 0xb4}, + // Block 0x7d, offset 0x259 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x80, hi: 0x80}, + {value: 0x8103, lo: 0x8a, hi: 0x8a}, + // Block 0x7e, offset 0x25c + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xb5, hi: 0xb5}, + {value: 0x8103, lo: 0xb6, hi: 0xb6}, + // Block 0x7f, offset 0x25f + {value: 0x0002, lo: 0x01}, + {value: 0x8103, lo: 0xa9, hi: 0xaa}, + // Block 0x80, offset 0x261 + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x81, offset 0x264 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2ec9, lo: 0x8b, hi: 0x8b}, + {value: 0x2ed3, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8133, lo: 0xa6, hi: 0xac}, + {value: 0x8133, lo: 0xb0, hi: 0xb4}, + // Block 0x82, offset 0x26c + {value: 0x0000, lo: 0x03}, + {value: 0x8105, lo: 0x82, hi: 0x82}, + {value: 0x8103, lo: 0x86, hi: 0x86}, + {value: 0x8133, lo: 0x9e, hi: 0x9e}, + // Block 0x83, offset 0x270 + {value: 0x6a23, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2ee7, lo: 0xbb, hi: 0xbb}, + {value: 0x2edd, lo: 0xbc, hi: 0xbd}, + {value: 0x2ef1, lo: 0xbe, hi: 0xbe}, + // Block 0x84, offset 0x277 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x82, hi: 0x82}, + {value: 0x8103, lo: 0x83, hi: 0x83}, + // Block 0x85, offset 0x27a + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2efb, lo: 0xba, hi: 0xba}, + {value: 0x2f05, lo: 0xbb, hi: 0xbb}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x86, offset 0x280 + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0x80, hi: 0x80}, + // Block 0x87, offset 0x282 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xb6, hi: 0xb6}, + {value: 0x8103, lo: 0xb7, hi: 0xb7}, + // Block 0x88, offset 0x285 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xab, hi: 0xab}, + // Block 0x89, offset 0x287 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xb9, hi: 0xb9}, + {value: 0x8103, lo: 0xba, hi: 0xba}, + // Block 0x8a, offset 0x28a + {value: 0x0000, lo: 0x04}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb5, hi: 0xb5}, + {value: 0x2f0f, lo: 0xb8, hi: 0xb8}, + {value: 0x8105, lo: 0xbd, hi: 0xbe}, + // Block 0x8b, offset 0x28f + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0x83, hi: 0x83}, + // Block 0x8c, offset 0x291 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xa0, hi: 0xa0}, + // Block 0x8d, offset 0x293 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xb4, hi: 0xb4}, + // Block 0x8e, offset 0x295 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x87, hi: 0x87}, + // Block 0x8f, offset 0x297 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x99, hi: 0x99}, + // Block 0x90, offset 0x299 + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0x82, hi: 0x82}, + {value: 0x8105, lo: 0x84, hi: 0x85}, + // Block 0x91, offset 0x29c + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x97, hi: 0x97}, + // Block 0x92, offset 0x29e + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x81, hi: 0x82}, + // Block 0x93, offset 0x2a0 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x94, offset 0x2a2 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xb0, hi: 0xb6}, + // Block 0x95, offset 0x2a4 + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb0, hi: 0xb1}, + // Block 0x96, offset 0x2a6 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x97, offset 0x2a8 + {value: 0x0000, lo: 0x0c}, + {value: 0x470d, lo: 0x9e, hi: 0x9e}, + {value: 0x4717, lo: 0x9f, hi: 0x9f}, + {value: 0x474b, lo: 0xa0, hi: 0xa0}, + {value: 0x4759, lo: 0xa1, hi: 0xa1}, + {value: 0x4767, lo: 0xa2, hi: 0xa2}, + {value: 0x4775, lo: 0xa3, hi: 0xa3}, + {value: 0x4783, lo: 0xa4, hi: 0xa4}, + {value: 0x812c, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8131, lo: 0xad, hi: 0xad}, + {value: 0x812c, lo: 0xae, hi: 0xb2}, + {value: 0x812e, lo: 0xbb, hi: 0xbf}, + // Block 0x98, offset 0x2b5 + {value: 0x0000, lo: 0x09}, + {value: 0x812e, lo: 0x80, hi: 0x82}, + {value: 0x8133, lo: 0x85, hi: 0x89}, + {value: 0x812e, lo: 0x8a, hi: 0x8b}, + {value: 0x8133, lo: 0xaa, hi: 0xad}, + {value: 0x4721, lo: 0xbb, hi: 0xbb}, + {value: 0x472b, lo: 0xbc, hi: 0xbc}, + {value: 0x4791, lo: 0xbd, hi: 0xbd}, + {value: 0x47ad, lo: 0xbe, hi: 0xbe}, + {value: 0x479f, lo: 0xbf, hi: 0xbf}, + // Block 0x99, offset 0x2bf + {value: 0x0000, lo: 0x01}, + {value: 0x47bb, lo: 0x80, hi: 0x80}, + // Block 0x9a, offset 0x2c1 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x82, hi: 0x84}, + // Block 0x9b, offset 0x2c3 + {value: 0x0000, lo: 0x05}, + {value: 0x8133, lo: 0x80, hi: 0x86}, + {value: 0x8133, lo: 0x88, hi: 0x98}, + {value: 0x8133, lo: 0x9b, hi: 0xa1}, + {value: 0x8133, lo: 0xa3, hi: 0xa4}, + {value: 0x8133, lo: 0xa6, hi: 0xaa}, + // Block 0x9c, offset 0x2c9 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x8f, hi: 0x8f}, + // Block 0x9d, offset 0x2cb + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xae, hi: 0xae}, + // Block 0x9e, offset 0x2cd + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xac, hi: 0xaf}, + // Block 0x9f, offset 0x2cf + {value: 0x0000, lo: 0x03}, + {value: 0x8134, lo: 0xac, hi: 0xad}, + {value: 0x812e, lo: 0xae, hi: 0xae}, + {value: 0x8133, lo: 0xaf, hi: 0xaf}, + // Block 0xa0, offset 0x2d3 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x90, hi: 0x96}, + // Block 0xa1, offset 0x2d5 + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0x84, hi: 0x89}, + {value: 0x8103, lo: 0x8a, hi: 0x8a}, + // Block 0xa2, offset 0x2d8 + {value: 0x0000, lo: 0x01}, + {value: 0x8100, lo: 0x93, hi: 0x93}, +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return nfkcValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := nfkcIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = nfkcIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = nfkcIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return nfkcValues[c0] + } + i := nfkcIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = nfkcIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// nfkcTrie. Total size: 19260 bytes (18.81 KiB). Checksum: 1a0bbc4c8c24da49. +type nfkcTrie struct{} + +func newNfkcTrie(i int) *nfkcTrie { + return &nfkcTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 95: + return uint16(nfkcValues[n<<6+uint32(b)]) + default: + n -= 95 + return uint16(nfkcSparse.lookup(n, b)) + } +} + +// nfkcValues: 97 blocks, 6208 entries, 12416 bytes +// The third block is the zero block. +var nfkcValues = [6208]uint16{ + // Block 0x0, offset 0x0 + 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000, + // Block 0x1, offset 0x40 + 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000, + 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000, + 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000, + 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000, + 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000, + 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000, + 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000, + 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000, + 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000, + 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x30b0, 0xc1: 0x30b5, 0xc2: 0x47c9, 0xc3: 0x30ba, 0xc4: 0x47d8, 0xc5: 0x47dd, + 0xc6: 0xa000, 0xc7: 0x47e7, 0xc8: 0x3123, 0xc9: 0x3128, 0xca: 0x47ec, 0xcb: 0x313c, + 0xcc: 0x31af, 0xcd: 0x31b4, 0xce: 0x31b9, 0xcf: 0x4800, 0xd1: 0x3245, + 0xd2: 0x3268, 0xd3: 0x326d, 0xd4: 0x480a, 0xd5: 0x480f, 0xd6: 0x481e, + 0xd8: 0xa000, 0xd9: 0x32f4, 0xda: 0x32f9, 0xdb: 0x32fe, 0xdc: 0x4850, 0xdd: 0x3376, + 0xe0: 0x33bc, 0xe1: 0x33c1, 0xe2: 0x485a, 0xe3: 0x33c6, + 0xe4: 0x4869, 0xe5: 0x486e, 0xe6: 0xa000, 0xe7: 0x4878, 0xe8: 0x342f, 0xe9: 0x3434, + 0xea: 0x487d, 0xeb: 0x3448, 0xec: 0x34c0, 0xed: 0x34c5, 0xee: 0x34ca, 0xef: 0x4891, + 0xf1: 0x3556, 0xf2: 0x3579, 0xf3: 0x357e, 0xf4: 0x489b, 0xf5: 0x48a0, + 0xf6: 0x48af, 0xf8: 0xa000, 0xf9: 0x360a, 0xfa: 0x360f, 0xfb: 0x3614, + 0xfc: 0x48e1, 0xfd: 0x3691, 0xff: 0x36aa, + // Block 0x4, offset 0x100 + 0x100: 0x30bf, 0x101: 0x33cb, 0x102: 0x47ce, 0x103: 0x485f, 0x104: 0x30dd, 0x105: 0x33e9, + 0x106: 0x30f1, 0x107: 0x33fd, 0x108: 0x30f6, 0x109: 0x3402, 0x10a: 0x30fb, 0x10b: 0x3407, + 0x10c: 0x3100, 0x10d: 0x340c, 0x10e: 0x310a, 0x10f: 0x3416, + 0x112: 0x47f1, 0x113: 0x4882, 0x114: 0x3132, 0x115: 0x343e, 0x116: 0x3137, 0x117: 0x3443, + 0x118: 0x3155, 0x119: 0x3461, 0x11a: 0x3146, 0x11b: 0x3452, 0x11c: 0x316e, 0x11d: 0x347a, + 0x11e: 0x3178, 0x11f: 0x3484, 0x120: 0x317d, 0x121: 0x3489, 0x122: 0x3187, 0x123: 0x3493, + 0x124: 0x318c, 0x125: 0x3498, 0x128: 0x31be, 0x129: 0x34cf, + 0x12a: 0x31c3, 0x12b: 0x34d4, 0x12c: 0x31c8, 0x12d: 0x34d9, 0x12e: 0x31eb, 0x12f: 0x34f7, + 0x130: 0x31cd, 0x132: 0x1a8a, 0x133: 0x1b17, 0x134: 0x31f5, 0x135: 0x3501, + 0x136: 0x3209, 0x137: 0x351a, 0x139: 0x3213, 0x13a: 0x3524, 0x13b: 0x321d, + 0x13c: 0x352e, 0x13d: 0x3218, 0x13e: 0x3529, 0x13f: 0x1cdc, + // Block 0x5, offset 0x140 + 0x140: 0x1d64, 0x143: 0x3240, 0x144: 0x3551, 0x145: 0x3259, + 0x146: 0x356a, 0x147: 0x324f, 0x148: 0x3560, 0x149: 0x1d8c, + 0x14c: 0x4814, 0x14d: 0x48a5, 0x14e: 0x3272, 0x14f: 0x3583, 0x150: 0x327c, 0x151: 0x358d, + 0x154: 0x329a, 0x155: 0x35ab, 0x156: 0x32b3, 0x157: 0x35c4, + 0x158: 0x32a4, 0x159: 0x35b5, 0x15a: 0x4837, 0x15b: 0x48c8, 0x15c: 0x32bd, 0x15d: 0x35ce, + 0x15e: 0x32cc, 0x15f: 0x35dd, 0x160: 0x483c, 0x161: 0x48cd, 0x162: 0x32e5, 0x163: 0x35fb, + 0x164: 0x32d6, 0x165: 0x35ec, 0x168: 0x4846, 0x169: 0x48d7, + 0x16a: 0x484b, 0x16b: 0x48dc, 0x16c: 0x3303, 0x16d: 0x3619, 0x16e: 0x330d, 0x16f: 0x3623, + 0x170: 0x3312, 0x171: 0x3628, 0x172: 0x3330, 0x173: 0x3646, 0x174: 0x3353, 0x175: 0x3669, + 0x176: 0x337b, 0x177: 0x3696, 0x178: 0x338f, 0x179: 0x339e, 0x17a: 0x36be, 0x17b: 0x33a8, + 0x17c: 0x36c8, 0x17d: 0x33ad, 0x17e: 0x36cd, 0x17f: 0x00a7, + // Block 0x6, offset 0x180 + 0x184: 0x2f2f, 0x185: 0x2f35, + 0x186: 0x2f3b, 0x187: 0x1a9f, 0x188: 0x1aa2, 0x189: 0x1b38, 0x18a: 0x1ab7, 0x18b: 0x1aba, + 0x18c: 0x1b6e, 0x18d: 0x30c9, 0x18e: 0x33d5, 0x18f: 0x31d7, 0x190: 0x34e3, 0x191: 0x3281, + 0x192: 0x3592, 0x193: 0x3317, 0x194: 0x362d, 0x195: 0x3b10, 0x196: 0x3c9f, 0x197: 0x3b09, + 0x198: 0x3c98, 0x199: 0x3b17, 0x19a: 0x3ca6, 0x19b: 0x3b02, 0x19c: 0x3c91, + 0x19e: 0x39f1, 0x19f: 0x3b80, 0x1a0: 0x39ea, 0x1a1: 0x3b79, 0x1a2: 0x36f4, 0x1a3: 0x3706, + 0x1a6: 0x3182, 0x1a7: 0x348e, 0x1a8: 0x31ff, 0x1a9: 0x3510, + 0x1aa: 0x482d, 0x1ab: 0x48be, 0x1ac: 0x3ad1, 0x1ad: 0x3c60, 0x1ae: 0x3718, 0x1af: 0x371e, + 0x1b0: 0x3506, 0x1b1: 0x1a6f, 0x1b2: 0x1a72, 0x1b3: 0x1aff, 0x1b4: 0x3169, 0x1b5: 0x3475, + 0x1b8: 0x323b, 0x1b9: 0x354c, 0x1ba: 0x39f8, 0x1bb: 0x3b87, + 0x1bc: 0x36ee, 0x1bd: 0x3700, 0x1be: 0x36fa, 0x1bf: 0x370c, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x30ce, 0x1c1: 0x33da, 0x1c2: 0x30d3, 0x1c3: 0x33df, 0x1c4: 0x314b, 0x1c5: 0x3457, + 0x1c6: 0x3150, 0x1c7: 0x345c, 0x1c8: 0x31dc, 0x1c9: 0x34e8, 0x1ca: 0x31e1, 0x1cb: 0x34ed, + 0x1cc: 0x3286, 0x1cd: 0x3597, 0x1ce: 0x328b, 0x1cf: 0x359c, 0x1d0: 0x32a9, 0x1d1: 0x35ba, + 0x1d2: 0x32ae, 0x1d3: 0x35bf, 0x1d4: 0x331c, 0x1d5: 0x3632, 0x1d6: 0x3321, 0x1d7: 0x3637, + 0x1d8: 0x32c7, 0x1d9: 0x35d8, 0x1da: 0x32e0, 0x1db: 0x35f6, + 0x1de: 0x319b, 0x1df: 0x34a7, + 0x1e6: 0x47d3, 0x1e7: 0x4864, 0x1e8: 0x47fb, 0x1e9: 0x488c, + 0x1ea: 0x3aa0, 0x1eb: 0x3c2f, 0x1ec: 0x3a7d, 0x1ed: 0x3c0c, 0x1ee: 0x4819, 0x1ef: 0x48aa, + 0x1f0: 0x3a99, 0x1f1: 0x3c28, 0x1f2: 0x3385, 0x1f3: 0x36a0, + // Block 0x8, offset 0x200 + 0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133, + 0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933, + 0x20c: 0x9933, 0x20d: 0x8133, 0x20e: 0x8133, 0x20f: 0x9933, 0x210: 0x8133, 0x211: 0x9933, + 0x212: 0x8133, 0x213: 0x9933, 0x214: 0x9933, 0x215: 0x8134, 0x216: 0x812e, 0x217: 0x812e, + 0x218: 0x812e, 0x219: 0x812e, 0x21a: 0x8134, 0x21b: 0x992c, 0x21c: 0x812e, 0x21d: 0x812e, + 0x21e: 0x812e, 0x21f: 0x812e, 0x220: 0x812e, 0x221: 0x812a, 0x222: 0x812a, 0x223: 0x992e, + 0x224: 0x992e, 0x225: 0x992e, 0x226: 0x992e, 0x227: 0x992a, 0x228: 0x992a, 0x229: 0x812e, + 0x22a: 0x812e, 0x22b: 0x812e, 0x22c: 0x812e, 0x22d: 0x992e, 0x22e: 0x992e, 0x22f: 0x812e, + 0x230: 0x992e, 0x231: 0x992e, 0x232: 0x812e, 0x233: 0x812e, 0x234: 0x8101, 0x235: 0x8101, + 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e, + 0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133, + // Block 0x9, offset 0x240 + 0x240: 0x4aef, 0x241: 0x4af4, 0x242: 0x9933, 0x243: 0x4af9, 0x244: 0x4bb2, 0x245: 0x9937, + 0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133, + 0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133, + 0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133, + 0x258: 0x8134, 0x259: 0x812e, 0x25a: 0x812e, 0x25b: 0x8133, 0x25c: 0x8135, 0x25d: 0x8136, + 0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133, + 0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133, + 0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133, + 0x274: 0x01ee, + 0x27a: 0x43e6, + 0x27e: 0x0037, + // Block 0xa, offset 0x280 + 0x284: 0x439b, 0x285: 0x45bc, + 0x286: 0x372a, 0x287: 0x00ce, 0x288: 0x3748, 0x289: 0x3754, 0x28a: 0x3766, + 0x28c: 0x3784, 0x28e: 0x3796, 0x28f: 0x37b4, 0x290: 0x3f49, 0x291: 0xa000, + 0x295: 0xa000, 0x297: 0xa000, + 0x299: 0xa000, + 0x29f: 0xa000, 0x2a1: 0xa000, + 0x2a5: 0xa000, 0x2a9: 0xa000, + 0x2aa: 0x3778, 0x2ab: 0x37a8, 0x2ac: 0x493f, 0x2ad: 0x37d8, 0x2ae: 0x4969, 0x2af: 0x37ea, + 0x2b0: 0x3fb1, 0x2b1: 0xa000, 0x2b5: 0xa000, + 0x2b7: 0xa000, 0x2b9: 0xa000, + 0x2bf: 0xa000, + // Block 0xb, offset 0x2c0 + 0x2c1: 0xa000, 0x2c5: 0xa000, + 0x2c9: 0xa000, 0x2ca: 0x4981, 0x2cb: 0x499f, + 0x2cc: 0x3808, 0x2cd: 0x3820, 0x2ce: 0x49b7, 0x2d0: 0x0242, 0x2d1: 0x0254, + 0x2d2: 0x0230, 0x2d3: 0x444d, 0x2d4: 0x4453, 0x2d5: 0x027e, 0x2d6: 0x026c, + 0x2f0: 0x025a, 0x2f1: 0x026f, 0x2f2: 0x0272, 0x2f4: 0x020c, 0x2f5: 0x024b, + 0x2f9: 0x022a, + // Block 0xc, offset 0x300 + 0x300: 0x3862, 0x301: 0x386e, 0x303: 0x385c, + 0x306: 0xa000, 0x307: 0x384a, + 0x30c: 0x389e, 0x30d: 0x3886, 0x30e: 0x38b0, 0x310: 0xa000, + 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000, + 0x318: 0xa000, 0x319: 0x3892, 0x31a: 0xa000, + 0x31e: 0xa000, 0x323: 0xa000, + 0x327: 0xa000, + 0x32b: 0xa000, 0x32d: 0xa000, + 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000, + 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x3916, 0x33a: 0xa000, + 0x33e: 0xa000, + // Block 0xd, offset 0x340 + 0x341: 0x3874, 0x342: 0x38f8, + 0x350: 0x3850, 0x351: 0x38d4, + 0x352: 0x3856, 0x353: 0x38da, 0x356: 0x3868, 0x357: 0x38ec, + 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x396a, 0x35b: 0x3970, 0x35c: 0x387a, 0x35d: 0x38fe, + 0x35e: 0x3880, 0x35f: 0x3904, 0x362: 0x388c, 0x363: 0x3910, + 0x364: 0x3898, 0x365: 0x391c, 0x366: 0x38a4, 0x367: 0x3928, 0x368: 0xa000, 0x369: 0xa000, + 0x36a: 0x3976, 0x36b: 0x397c, 0x36c: 0x38ce, 0x36d: 0x3952, 0x36e: 0x38aa, 0x36f: 0x392e, + 0x370: 0x38b6, 0x371: 0x393a, 0x372: 0x38bc, 0x373: 0x3940, 0x374: 0x38c2, 0x375: 0x3946, + 0x378: 0x38c8, 0x379: 0x394c, + // Block 0xe, offset 0x380 + 0x387: 0x1e91, + 0x391: 0x812e, + 0x392: 0x8133, 0x393: 0x8133, 0x394: 0x8133, 0x395: 0x8133, 0x396: 0x812e, 0x397: 0x8133, + 0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x812f, 0x39b: 0x812e, 0x39c: 0x8133, 0x39d: 0x8133, + 0x39e: 0x8133, 0x39f: 0x8133, 0x3a0: 0x8133, 0x3a1: 0x8133, 0x3a2: 0x812e, 0x3a3: 0x812e, + 0x3a4: 0x812e, 0x3a5: 0x812e, 0x3a6: 0x812e, 0x3a7: 0x812e, 0x3a8: 0x8133, 0x3a9: 0x8133, + 0x3aa: 0x812e, 0x3ab: 0x8133, 0x3ac: 0x8133, 0x3ad: 0x812f, 0x3ae: 0x8132, 0x3af: 0x8133, + 0x3b0: 0x8106, 0x3b1: 0x8107, 0x3b2: 0x8108, 0x3b3: 0x8109, 0x3b4: 0x810a, 0x3b5: 0x810b, + 0x3b6: 0x810c, 0x3b7: 0x810d, 0x3b8: 0x810e, 0x3b9: 0x810f, 0x3ba: 0x810f, 0x3bb: 0x8110, + 0x3bc: 0x8111, 0x3bd: 0x8112, 0x3bf: 0x8113, + // Block 0xf, offset 0x3c0 + 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8117, + 0x3cc: 0x8118, 0x3cd: 0x8119, 0x3ce: 0x811a, 0x3cf: 0x811b, 0x3d0: 0x811c, 0x3d1: 0x811d, + 0x3d2: 0x811e, 0x3d3: 0x9933, 0x3d4: 0x9933, 0x3d5: 0x992e, 0x3d6: 0x812e, 0x3d7: 0x8133, + 0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x812e, 0x3dd: 0x8133, + 0x3de: 0x8133, 0x3df: 0x812e, + 0x3f0: 0x811f, 0x3f5: 0x1eb4, + 0x3f6: 0x2143, 0x3f7: 0x217f, 0x3f8: 0x217a, + // Block 0x10, offset 0x400 + 0x40a: 0x8133, 0x40b: 0x8133, + 0x40c: 0x8133, 0x40d: 0x8133, 0x40e: 0x8133, 0x40f: 0x812e, 0x410: 0x812e, 0x411: 0x812e, + 0x412: 0x812e, 0x413: 0x812e, 0x414: 0x8133, 0x415: 0x8133, 0x416: 0x8133, 0x417: 0x8133, + 0x418: 0x8133, 0x419: 0x8133, 0x41a: 0x8133, 0x41b: 0x8133, 0x41c: 0x8133, 0x41d: 0x8133, + 0x41e: 0x8133, 0x41f: 0x8133, 0x420: 0x8133, 0x421: 0x8133, 0x423: 0x812e, + 0x424: 0x8133, 0x425: 0x8133, 0x426: 0x812e, 0x427: 0x8133, 0x428: 0x8133, 0x429: 0x812e, + 0x42a: 0x8133, 0x42b: 0x8133, 0x42c: 0x8133, 0x42d: 0x812e, 0x42e: 0x812e, 0x42f: 0x812e, + 0x430: 0x8117, 0x431: 0x8118, 0x432: 0x8119, 0x433: 0x8133, 0x434: 0x8133, 0x435: 0x8133, + 0x436: 0x812e, 0x437: 0x8133, 0x438: 0x8133, 0x439: 0x812e, 0x43a: 0x812e, 0x43b: 0x8133, + 0x43c: 0x8133, 0x43d: 0x8133, 0x43e: 0x8133, 0x43f: 0x8133, + // Block 0x11, offset 0x440 + 0x445: 0xa000, + 0x446: 0x2e5d, 0x447: 0xa000, 0x448: 0x2e65, 0x449: 0xa000, 0x44a: 0x2e6d, 0x44b: 0xa000, + 0x44c: 0x2e75, 0x44d: 0xa000, 0x44e: 0x2e7d, 0x451: 0xa000, + 0x452: 0x2e85, + 0x474: 0x8103, 0x475: 0x9900, + 0x47a: 0xa000, 0x47b: 0x2e8d, + 0x47c: 0xa000, 0x47d: 0x2e95, 0x47e: 0xa000, 0x47f: 0xa000, + // Block 0x12, offset 0x480 + 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x0104, 0x485: 0x0107, + 0x486: 0x0506, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x011f, 0x48b: 0x0122, + 0x48c: 0x0125, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e6, + 0x492: 0x009f, 0x493: 0x0110, 0x494: 0x050a, 0x495: 0x050e, 0x496: 0x00a1, 0x497: 0x00a9, + 0x498: 0x00ab, 0x499: 0x0516, 0x49a: 0x015b, 0x49b: 0x00ad, 0x49c: 0x051a, 0x49d: 0x0242, + 0x49e: 0x0245, 0x49f: 0x0248, 0x4a0: 0x027e, 0x4a1: 0x0281, 0x4a2: 0x0093, 0x4a3: 0x00a5, + 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x0242, 0x4a7: 0x0245, 0x4a8: 0x026f, 0x4a9: 0x027e, + 0x4aa: 0x0281, + 0x4b8: 0x02b4, + // Block 0x13, offset 0x4c0 + 0x4db: 0x010a, 0x4dc: 0x0087, 0x4dd: 0x0113, + 0x4de: 0x00d7, 0x4df: 0x0125, 0x4e0: 0x008d, 0x4e1: 0x012b, 0x4e2: 0x0131, 0x4e3: 0x013d, + 0x4e4: 0x0146, 0x4e5: 0x0149, 0x4e6: 0x014c, 0x4e7: 0x051e, 0x4e8: 0x01c7, 0x4e9: 0x0155, + 0x4ea: 0x0522, 0x4eb: 0x01ca, 0x4ec: 0x0161, 0x4ed: 0x015e, 0x4ee: 0x0164, 0x4ef: 0x0167, + 0x4f0: 0x016a, 0x4f1: 0x016d, 0x4f2: 0x0176, 0x4f3: 0x018e, 0x4f4: 0x0191, 0x4f5: 0x00f2, + 0x4f6: 0x019a, 0x4f7: 0x019d, 0x4f8: 0x0512, 0x4f9: 0x01a0, 0x4fa: 0x01a3, 0x4fb: 0x00b5, + 0x4fc: 0x01af, 0x4fd: 0x01b2, 0x4fe: 0x01b5, 0x4ff: 0x0254, + // Block 0x14, offset 0x500 + 0x500: 0x8133, 0x501: 0x8133, 0x502: 0x812e, 0x503: 0x8133, 0x504: 0x8133, 0x505: 0x8133, + 0x506: 0x8133, 0x507: 0x8133, 0x508: 0x8133, 0x509: 0x8133, 0x50a: 0x812e, 0x50b: 0x8133, + 0x50c: 0x8133, 0x50d: 0x8136, 0x50e: 0x812b, 0x50f: 0x812e, 0x510: 0x812a, 0x511: 0x8133, + 0x512: 0x8133, 0x513: 0x8133, 0x514: 0x8133, 0x515: 0x8133, 0x516: 0x8133, 0x517: 0x8133, + 0x518: 0x8133, 0x519: 0x8133, 0x51a: 0x8133, 0x51b: 0x8133, 0x51c: 0x8133, 0x51d: 0x8133, + 0x51e: 0x8133, 0x51f: 0x8133, 0x520: 0x8133, 0x521: 0x8133, 0x522: 0x8133, 0x523: 0x8133, + 0x524: 0x8133, 0x525: 0x8133, 0x526: 0x8133, 0x527: 0x8133, 0x528: 0x8133, 0x529: 0x8133, + 0x52a: 0x8133, 0x52b: 0x8133, 0x52c: 0x8133, 0x52d: 0x8133, 0x52e: 0x8133, 0x52f: 0x8133, + 0x530: 0x8133, 0x531: 0x8133, 0x532: 0x8133, 0x533: 0x8133, 0x534: 0x8133, 0x535: 0x8133, + 0x536: 0x8134, 0x537: 0x8132, 0x538: 0x8132, 0x539: 0x812e, 0x53a: 0x812d, 0x53b: 0x8133, + 0x53c: 0x8135, 0x53d: 0x812e, 0x53e: 0x8133, 0x53f: 0x812e, + // Block 0x15, offset 0x540 + 0x540: 0x30d8, 0x541: 0x33e4, 0x542: 0x30e2, 0x543: 0x33ee, 0x544: 0x30e7, 0x545: 0x33f3, + 0x546: 0x30ec, 0x547: 0x33f8, 0x548: 0x3a0d, 0x549: 0x3b9c, 0x54a: 0x3105, 0x54b: 0x3411, + 0x54c: 0x310f, 0x54d: 0x341b, 0x54e: 0x311e, 0x54f: 0x342a, 0x550: 0x3114, 0x551: 0x3420, + 0x552: 0x3119, 0x553: 0x3425, 0x554: 0x3a30, 0x555: 0x3bbf, 0x556: 0x3a37, 0x557: 0x3bc6, + 0x558: 0x315a, 0x559: 0x3466, 0x55a: 0x315f, 0x55b: 0x346b, 0x55c: 0x3a45, 0x55d: 0x3bd4, + 0x55e: 0x3164, 0x55f: 0x3470, 0x560: 0x3173, 0x561: 0x347f, 0x562: 0x3191, 0x563: 0x349d, + 0x564: 0x31a0, 0x565: 0x34ac, 0x566: 0x3196, 0x567: 0x34a2, 0x568: 0x31a5, 0x569: 0x34b1, + 0x56a: 0x31aa, 0x56b: 0x34b6, 0x56c: 0x31f0, 0x56d: 0x34fc, 0x56e: 0x3a4c, 0x56f: 0x3bdb, + 0x570: 0x31fa, 0x571: 0x350b, 0x572: 0x3204, 0x573: 0x3515, 0x574: 0x320e, 0x575: 0x351f, + 0x576: 0x4805, 0x577: 0x4896, 0x578: 0x3a53, 0x579: 0x3be2, 0x57a: 0x3227, 0x57b: 0x3538, + 0x57c: 0x3222, 0x57d: 0x3533, 0x57e: 0x322c, 0x57f: 0x353d, + // Block 0x16, offset 0x580 + 0x580: 0x3231, 0x581: 0x3542, 0x582: 0x3236, 0x583: 0x3547, 0x584: 0x324a, 0x585: 0x355b, + 0x586: 0x3254, 0x587: 0x3565, 0x588: 0x3263, 0x589: 0x3574, 0x58a: 0x325e, 0x58b: 0x356f, + 0x58c: 0x3a76, 0x58d: 0x3c05, 0x58e: 0x3a84, 0x58f: 0x3c13, 0x590: 0x3a8b, 0x591: 0x3c1a, + 0x592: 0x3a92, 0x593: 0x3c21, 0x594: 0x3290, 0x595: 0x35a1, 0x596: 0x3295, 0x597: 0x35a6, + 0x598: 0x329f, 0x599: 0x35b0, 0x59a: 0x4832, 0x59b: 0x48c3, 0x59c: 0x3ad8, 0x59d: 0x3c67, + 0x59e: 0x32b8, 0x59f: 0x35c9, 0x5a0: 0x32c2, 0x5a1: 0x35d3, 0x5a2: 0x4841, 0x5a3: 0x48d2, + 0x5a4: 0x3adf, 0x5a5: 0x3c6e, 0x5a6: 0x3ae6, 0x5a7: 0x3c75, 0x5a8: 0x3aed, 0x5a9: 0x3c7c, + 0x5aa: 0x32d1, 0x5ab: 0x35e2, 0x5ac: 0x32db, 0x5ad: 0x35f1, 0x5ae: 0x32ef, 0x5af: 0x3605, + 0x5b0: 0x32ea, 0x5b1: 0x3600, 0x5b2: 0x332b, 0x5b3: 0x3641, 0x5b4: 0x333a, 0x5b5: 0x3650, + 0x5b6: 0x3335, 0x5b7: 0x364b, 0x5b8: 0x3af4, 0x5b9: 0x3c83, 0x5ba: 0x3afb, 0x5bb: 0x3c8a, + 0x5bc: 0x333f, 0x5bd: 0x3655, 0x5be: 0x3344, 0x5bf: 0x365a, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x3349, 0x5c1: 0x365f, 0x5c2: 0x334e, 0x5c3: 0x3664, 0x5c4: 0x335d, 0x5c5: 0x3673, + 0x5c6: 0x3358, 0x5c7: 0x366e, 0x5c8: 0x3362, 0x5c9: 0x367d, 0x5ca: 0x3367, 0x5cb: 0x3682, + 0x5cc: 0x336c, 0x5cd: 0x3687, 0x5ce: 0x338a, 0x5cf: 0x36a5, 0x5d0: 0x33a3, 0x5d1: 0x36c3, + 0x5d2: 0x33b2, 0x5d3: 0x36d2, 0x5d4: 0x33b7, 0x5d5: 0x36d7, 0x5d6: 0x34bb, 0x5d7: 0x35e7, + 0x5d8: 0x3678, 0x5d9: 0x36b4, 0x5da: 0x1d10, 0x5db: 0x4418, + 0x5e0: 0x47e2, 0x5e1: 0x4873, 0x5e2: 0x30c4, 0x5e3: 0x33d0, + 0x5e4: 0x39b9, 0x5e5: 0x3b48, 0x5e6: 0x39b2, 0x5e7: 0x3b41, 0x5e8: 0x39c7, 0x5e9: 0x3b56, + 0x5ea: 0x39c0, 0x5eb: 0x3b4f, 0x5ec: 0x39ff, 0x5ed: 0x3b8e, 0x5ee: 0x39d5, 0x5ef: 0x3b64, + 0x5f0: 0x39ce, 0x5f1: 0x3b5d, 0x5f2: 0x39e3, 0x5f3: 0x3b72, 0x5f4: 0x39dc, 0x5f5: 0x3b6b, + 0x5f6: 0x3a06, 0x5f7: 0x3b95, 0x5f8: 0x47f6, 0x5f9: 0x4887, 0x5fa: 0x3141, 0x5fb: 0x344d, + 0x5fc: 0x312d, 0x5fd: 0x3439, 0x5fe: 0x3a1b, 0x5ff: 0x3baa, + // Block 0x18, offset 0x600 + 0x600: 0x3a14, 0x601: 0x3ba3, 0x602: 0x3a29, 0x603: 0x3bb8, 0x604: 0x3a22, 0x605: 0x3bb1, + 0x606: 0x3a3e, 0x607: 0x3bcd, 0x608: 0x31d2, 0x609: 0x34de, 0x60a: 0x31e6, 0x60b: 0x34f2, + 0x60c: 0x4828, 0x60d: 0x48b9, 0x60e: 0x3277, 0x60f: 0x3588, 0x610: 0x3a61, 0x611: 0x3bf0, + 0x612: 0x3a5a, 0x613: 0x3be9, 0x614: 0x3a6f, 0x615: 0x3bfe, 0x616: 0x3a68, 0x617: 0x3bf7, + 0x618: 0x3aca, 0x619: 0x3c59, 0x61a: 0x3aae, 0x61b: 0x3c3d, 0x61c: 0x3aa7, 0x61d: 0x3c36, + 0x61e: 0x3abc, 0x61f: 0x3c4b, 0x620: 0x3ab5, 0x621: 0x3c44, 0x622: 0x3ac3, 0x623: 0x3c52, + 0x624: 0x3326, 0x625: 0x363c, 0x626: 0x3308, 0x627: 0x361e, 0x628: 0x3b25, 0x629: 0x3cb4, + 0x62a: 0x3b1e, 0x62b: 0x3cad, 0x62c: 0x3b33, 0x62d: 0x3cc2, 0x62e: 0x3b2c, 0x62f: 0x3cbb, + 0x630: 0x3b3a, 0x631: 0x3cc9, 0x632: 0x3371, 0x633: 0x368c, 0x634: 0x3399, 0x635: 0x36b9, + 0x636: 0x3394, 0x637: 0x36af, 0x638: 0x3380, 0x639: 0x369b, + // Block 0x19, offset 0x640 + 0x640: 0x4945, 0x641: 0x494b, 0x642: 0x4a5f, 0x643: 0x4a77, 0x644: 0x4a67, 0x645: 0x4a7f, + 0x646: 0x4a6f, 0x647: 0x4a87, 0x648: 0x48eb, 0x649: 0x48f1, 0x64a: 0x49cf, 0x64b: 0x49e7, + 0x64c: 0x49d7, 0x64d: 0x49ef, 0x64e: 0x49df, 0x64f: 0x49f7, 0x650: 0x4957, 0x651: 0x495d, + 0x652: 0x3ef9, 0x653: 0x3f09, 0x654: 0x3f01, 0x655: 0x3f11, + 0x658: 0x48f7, 0x659: 0x48fd, 0x65a: 0x3e29, 0x65b: 0x3e39, 0x65c: 0x3e31, 0x65d: 0x3e41, + 0x660: 0x496f, 0x661: 0x4975, 0x662: 0x4a8f, 0x663: 0x4aa7, + 0x664: 0x4a97, 0x665: 0x4aaf, 0x666: 0x4a9f, 0x667: 0x4ab7, 0x668: 0x4903, 0x669: 0x4909, + 0x66a: 0x49ff, 0x66b: 0x4a17, 0x66c: 0x4a07, 0x66d: 0x4a1f, 0x66e: 0x4a0f, 0x66f: 0x4a27, + 0x670: 0x4987, 0x671: 0x498d, 0x672: 0x3f59, 0x673: 0x3f71, 0x674: 0x3f61, 0x675: 0x3f79, + 0x676: 0x3f69, 0x677: 0x3f81, 0x678: 0x490f, 0x679: 0x4915, 0x67a: 0x3e59, 0x67b: 0x3e71, + 0x67c: 0x3e61, 0x67d: 0x3e79, 0x67e: 0x3e69, 0x67f: 0x3e81, + // Block 0x1a, offset 0x680 + 0x680: 0x4993, 0x681: 0x4999, 0x682: 0x3f89, 0x683: 0x3f99, 0x684: 0x3f91, 0x685: 0x3fa1, + 0x688: 0x491b, 0x689: 0x4921, 0x68a: 0x3e89, 0x68b: 0x3e99, + 0x68c: 0x3e91, 0x68d: 0x3ea1, 0x690: 0x49a5, 0x691: 0x49ab, + 0x692: 0x3fc1, 0x693: 0x3fd9, 0x694: 0x3fc9, 0x695: 0x3fe1, 0x696: 0x3fd1, 0x697: 0x3fe9, + 0x699: 0x4927, 0x69b: 0x3ea9, 0x69d: 0x3eb1, + 0x69f: 0x3eb9, 0x6a0: 0x49bd, 0x6a1: 0x49c3, 0x6a2: 0x4abf, 0x6a3: 0x4ad7, + 0x6a4: 0x4ac7, 0x6a5: 0x4adf, 0x6a6: 0x4acf, 0x6a7: 0x4ae7, 0x6a8: 0x492d, 0x6a9: 0x4933, + 0x6aa: 0x4a2f, 0x6ab: 0x4a47, 0x6ac: 0x4a37, 0x6ad: 0x4a4f, 0x6ae: 0x4a3f, 0x6af: 0x4a57, + 0x6b0: 0x4939, 0x6b1: 0x445f, 0x6b2: 0x37d2, 0x6b3: 0x4465, 0x6b4: 0x4963, 0x6b5: 0x446b, + 0x6b6: 0x37e4, 0x6b7: 0x4471, 0x6b8: 0x3802, 0x6b9: 0x4477, 0x6ba: 0x381a, 0x6bb: 0x447d, + 0x6bc: 0x49b1, 0x6bd: 0x4483, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0x3ee1, 0x6c1: 0x3ee9, 0x6c2: 0x42c5, 0x6c3: 0x42e3, 0x6c4: 0x42cf, 0x6c5: 0x42ed, + 0x6c6: 0x42d9, 0x6c7: 0x42f7, 0x6c8: 0x3e19, 0x6c9: 0x3e21, 0x6ca: 0x4211, 0x6cb: 0x422f, + 0x6cc: 0x421b, 0x6cd: 0x4239, 0x6ce: 0x4225, 0x6cf: 0x4243, 0x6d0: 0x3f29, 0x6d1: 0x3f31, + 0x6d2: 0x4301, 0x6d3: 0x431f, 0x6d4: 0x430b, 0x6d5: 0x4329, 0x6d6: 0x4315, 0x6d7: 0x4333, + 0x6d8: 0x3e49, 0x6d9: 0x3e51, 0x6da: 0x424d, 0x6db: 0x426b, 0x6dc: 0x4257, 0x6dd: 0x4275, + 0x6de: 0x4261, 0x6df: 0x427f, 0x6e0: 0x4001, 0x6e1: 0x4009, 0x6e2: 0x433d, 0x6e3: 0x435b, + 0x6e4: 0x4347, 0x6e5: 0x4365, 0x6e6: 0x4351, 0x6e7: 0x436f, 0x6e8: 0x3ec1, 0x6e9: 0x3ec9, + 0x6ea: 0x4289, 0x6eb: 0x42a7, 0x6ec: 0x4293, 0x6ed: 0x42b1, 0x6ee: 0x429d, 0x6ef: 0x42bb, + 0x6f0: 0x37c6, 0x6f1: 0x37c0, 0x6f2: 0x3ed1, 0x6f3: 0x37cc, 0x6f4: 0x3ed9, + 0x6f6: 0x4951, 0x6f7: 0x3ef1, 0x6f8: 0x3736, 0x6f9: 0x3730, 0x6fa: 0x3724, 0x6fb: 0x442f, + 0x6fc: 0x373c, 0x6fd: 0x43c8, 0x6fe: 0x0257, 0x6ff: 0x43c8, + // Block 0x1c, offset 0x700 + 0x700: 0x43e1, 0x701: 0x45c3, 0x702: 0x3f19, 0x703: 0x37de, 0x704: 0x3f21, + 0x706: 0x497b, 0x707: 0x3f39, 0x708: 0x3742, 0x709: 0x4435, 0x70a: 0x374e, 0x70b: 0x443b, + 0x70c: 0x375a, 0x70d: 0x45ca, 0x70e: 0x45d1, 0x70f: 0x45d8, 0x710: 0x37f6, 0x711: 0x37f0, + 0x712: 0x3f41, 0x713: 0x4625, 0x716: 0x37fc, 0x717: 0x3f51, + 0x718: 0x3772, 0x719: 0x376c, 0x71a: 0x3760, 0x71b: 0x4441, 0x71d: 0x45df, + 0x71e: 0x45e6, 0x71f: 0x45ed, 0x720: 0x382c, 0x721: 0x3826, 0x722: 0x3fa9, 0x723: 0x462d, + 0x724: 0x380e, 0x725: 0x3814, 0x726: 0x3832, 0x727: 0x3fb9, 0x728: 0x37a2, 0x729: 0x379c, + 0x72a: 0x3790, 0x72b: 0x444d, 0x72c: 0x378a, 0x72d: 0x45b5, 0x72e: 0x45bc, 0x72f: 0x0081, + 0x732: 0x3ff1, 0x733: 0x3838, 0x734: 0x3ff9, + 0x736: 0x49c9, 0x737: 0x4011, 0x738: 0x377e, 0x739: 0x4447, 0x73a: 0x37ae, 0x73b: 0x4459, + 0x73c: 0x37ba, 0x73d: 0x439b, 0x73e: 0x43cd, + // Block 0x1d, offset 0x740 + 0x740: 0x1d08, 0x741: 0x1d0c, 0x742: 0x0047, 0x743: 0x1d84, 0x745: 0x1d18, + 0x746: 0x1d1c, 0x747: 0x00ef, 0x749: 0x1d88, 0x74a: 0x008f, 0x74b: 0x0051, + 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00e0, 0x750: 0x0053, 0x751: 0x0053, + 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1abd, + 0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065, + 0x760: 0x1acf, 0x761: 0x1cf8, 0x762: 0x1ad8, + 0x764: 0x0075, 0x766: 0x023c, 0x768: 0x0075, + 0x76a: 0x0057, 0x76b: 0x4413, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b, + 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0308, + 0x776: 0x030b, 0x777: 0x030e, 0x778: 0x0311, 0x779: 0x0093, 0x77b: 0x1cc8, + 0x77c: 0x026c, 0x77d: 0x0245, 0x77e: 0x01fd, 0x77f: 0x0224, + // Block 0x1e, offset 0x780 + 0x780: 0x055a, 0x785: 0x0049, + 0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095, + 0x790: 0x235e, 0x791: 0x236a, + 0x792: 0x241e, 0x793: 0x2346, 0x794: 0x23ca, 0x795: 0x2352, 0x796: 0x23d0, 0x797: 0x23e8, + 0x798: 0x23f4, 0x799: 0x2358, 0x79a: 0x23fa, 0x79b: 0x2364, 0x79c: 0x23ee, 0x79d: 0x2400, + 0x79e: 0x2406, 0x79f: 0x1dec, 0x7a0: 0x0053, 0x7a1: 0x1a87, 0x7a2: 0x1cd4, 0x7a3: 0x1a90, + 0x7a4: 0x006d, 0x7a5: 0x1adb, 0x7a6: 0x1d00, 0x7a7: 0x1e78, 0x7a8: 0x1a93, 0x7a9: 0x0071, + 0x7aa: 0x1ae7, 0x7ab: 0x1d04, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b, + 0x7b0: 0x0093, 0x7b1: 0x1b14, 0x7b2: 0x1d48, 0x7b3: 0x1b1d, 0x7b4: 0x00ad, 0x7b5: 0x1b92, + 0x7b6: 0x1d7c, 0x7b7: 0x1e8c, 0x7b8: 0x1b20, 0x7b9: 0x00b1, 0x7ba: 0x1b95, 0x7bb: 0x1d80, + 0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b, + // Block 0x1f, offset 0x7c0 + 0x7c1: 0x3d47, 0x7c3: 0xa000, 0x7c4: 0x3d4e, 0x7c5: 0xa000, + 0x7c7: 0x3d55, 0x7c8: 0xa000, 0x7c9: 0x3d5c, + 0x7cd: 0xa000, + 0x7e0: 0x30a6, 0x7e1: 0xa000, 0x7e2: 0x3d6a, + 0x7e4: 0xa000, 0x7e5: 0xa000, + 0x7ed: 0x3d63, 0x7ee: 0x30a1, 0x7ef: 0x30ab, + 0x7f0: 0x3d71, 0x7f1: 0x3d78, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3d7f, 0x7f5: 0x3d86, + 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3d8d, 0x7f9: 0x3d94, 0x7fa: 0xa000, 0x7fb: 0xa000, + 0x7fc: 0xa000, 0x7fd: 0xa000, + // Block 0x20, offset 0x800 + 0x800: 0x3d9b, 0x801: 0x3da2, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3db7, 0x805: 0x3dbe, + 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3dc5, 0x809: 0x3dcc, + 0x811: 0xa000, + 0x812: 0xa000, + 0x822: 0xa000, + 0x828: 0xa000, 0x829: 0xa000, + 0x82b: 0xa000, 0x82c: 0x3de1, 0x82d: 0x3de8, 0x82e: 0x3def, 0x82f: 0x3df6, + 0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000, + // Block 0x21, offset 0x840 + 0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029, + 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x19af, + 0x86a: 0x19b2, 0x86b: 0x19b5, 0x86c: 0x19b8, 0x86d: 0x19bb, 0x86e: 0x19be, 0x86f: 0x19c1, + 0x870: 0x19c4, 0x871: 0x19c7, 0x872: 0x19ca, 0x873: 0x19d3, 0x874: 0x1b98, 0x875: 0x1b9c, + 0x876: 0x1ba0, 0x877: 0x1ba4, 0x878: 0x1ba8, 0x879: 0x1bac, 0x87a: 0x1bb0, 0x87b: 0x1bb4, + 0x87c: 0x1bb8, 0x87d: 0x1db0, 0x87e: 0x1db5, 0x87f: 0x1dba, + // Block 0x22, offset 0x880 + 0x880: 0x1dbf, 0x881: 0x1dc4, 0x882: 0x1dc9, 0x883: 0x1dce, 0x884: 0x1dd3, 0x885: 0x1dd8, + 0x886: 0x1ddd, 0x887: 0x1de2, 0x888: 0x19ac, 0x889: 0x19d0, 0x88a: 0x19f4, 0x88b: 0x1a18, + 0x88c: 0x1a3c, 0x88d: 0x1a45, 0x88e: 0x1a4b, 0x88f: 0x1a51, 0x890: 0x1a57, 0x891: 0x1c90, + 0x892: 0x1c94, 0x893: 0x1c98, 0x894: 0x1c9c, 0x895: 0x1ca0, 0x896: 0x1ca4, 0x897: 0x1ca8, + 0x898: 0x1cac, 0x899: 0x1cb0, 0x89a: 0x1cb4, 0x89b: 0x1cb8, 0x89c: 0x1c24, 0x89d: 0x1c28, + 0x89e: 0x1c2c, 0x89f: 0x1c30, 0x8a0: 0x1c34, 0x8a1: 0x1c38, 0x8a2: 0x1c3c, 0x8a3: 0x1c40, + 0x8a4: 0x1c44, 0x8a5: 0x1c48, 0x8a6: 0x1c4c, 0x8a7: 0x1c50, 0x8a8: 0x1c54, 0x8a9: 0x1c58, + 0x8aa: 0x1c5c, 0x8ab: 0x1c60, 0x8ac: 0x1c64, 0x8ad: 0x1c68, 0x8ae: 0x1c6c, 0x8af: 0x1c70, + 0x8b0: 0x1c74, 0x8b1: 0x1c78, 0x8b2: 0x1c7c, 0x8b3: 0x1c80, 0x8b4: 0x1c84, 0x8b5: 0x1c88, + 0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d, + 0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055, + // Block 0x23, offset 0x8c0 + 0x8c0: 0x07ba, 0x8c1: 0x07de, 0x8c2: 0x07ea, 0x8c3: 0x07fa, 0x8c4: 0x0802, 0x8c5: 0x080e, + 0x8c6: 0x0816, 0x8c7: 0x081e, 0x8c8: 0x082a, 0x8c9: 0x087e, 0x8ca: 0x0896, 0x8cb: 0x08a6, + 0x8cc: 0x08b6, 0x8cd: 0x08c6, 0x8ce: 0x08d6, 0x8cf: 0x08f6, 0x8d0: 0x08fa, 0x8d1: 0x08fe, + 0x8d2: 0x0932, 0x8d3: 0x095a, 0x8d4: 0x096a, 0x8d5: 0x0972, 0x8d6: 0x0976, 0x8d7: 0x0982, + 0x8d8: 0x099e, 0x8d9: 0x09a2, 0x8da: 0x09ba, 0x8db: 0x09be, 0x8dc: 0x09c6, 0x8dd: 0x09d6, + 0x8de: 0x0a72, 0x8df: 0x0a86, 0x8e0: 0x0ac6, 0x8e1: 0x0ada, 0x8e2: 0x0ae2, 0x8e3: 0x0ae6, + 0x8e4: 0x0af6, 0x8e5: 0x0b12, 0x8e6: 0x0b3e, 0x8e7: 0x0b4a, 0x8e8: 0x0b6a, 0x8e9: 0x0b76, + 0x8ea: 0x0b7a, 0x8eb: 0x0b7e, 0x8ec: 0x0b96, 0x8ed: 0x0b9a, 0x8ee: 0x0bc6, 0x8ef: 0x0bd2, + 0x8f0: 0x0bda, 0x8f1: 0x0be2, 0x8f2: 0x0bf2, 0x8f3: 0x0bfa, 0x8f4: 0x0c02, 0x8f5: 0x0c2e, + 0x8f6: 0x0c32, 0x8f7: 0x0c3a, 0x8f8: 0x0c3e, 0x8f9: 0x0c46, 0x8fa: 0x0c4e, 0x8fb: 0x0c5e, + 0x8fc: 0x0c7a, 0x8fd: 0x0cf2, 0x8fe: 0x0d06, 0x8ff: 0x0d0a, + // Block 0x24, offset 0x900 + 0x900: 0x0d8a, 0x901: 0x0d8e, 0x902: 0x0da2, 0x903: 0x0da6, 0x904: 0x0dae, 0x905: 0x0db6, + 0x906: 0x0dbe, 0x907: 0x0dca, 0x908: 0x0df2, 0x909: 0x0e02, 0x90a: 0x0e16, 0x90b: 0x0e86, + 0x90c: 0x0e92, 0x90d: 0x0ea2, 0x90e: 0x0eae, 0x90f: 0x0eba, 0x910: 0x0ec2, 0x911: 0x0ec6, + 0x912: 0x0eca, 0x913: 0x0ece, 0x914: 0x0ed2, 0x915: 0x0f8a, 0x916: 0x0fd2, 0x917: 0x0fde, + 0x918: 0x0fe2, 0x919: 0x0fe6, 0x91a: 0x0fea, 0x91b: 0x0ff2, 0x91c: 0x0ff6, 0x91d: 0x100a, + 0x91e: 0x1026, 0x91f: 0x102e, 0x920: 0x106e, 0x921: 0x1072, 0x922: 0x107a, 0x923: 0x107e, + 0x924: 0x1086, 0x925: 0x108a, 0x926: 0x10ae, 0x927: 0x10b2, 0x928: 0x10ce, 0x929: 0x10d2, + 0x92a: 0x10d6, 0x92b: 0x10da, 0x92c: 0x10ee, 0x92d: 0x1112, 0x92e: 0x1116, 0x92f: 0x111a, + 0x930: 0x113e, 0x931: 0x117e, 0x932: 0x1182, 0x933: 0x11a2, 0x934: 0x11b2, 0x935: 0x11ba, + 0x936: 0x11da, 0x937: 0x11fe, 0x938: 0x1242, 0x939: 0x124a, 0x93a: 0x125e, 0x93b: 0x126a, + 0x93c: 0x1272, 0x93d: 0x127a, 0x93e: 0x127e, 0x93f: 0x1282, + // Block 0x25, offset 0x940 + 0x940: 0x129a, 0x941: 0x129e, 0x942: 0x12ba, 0x943: 0x12c2, 0x944: 0x12ca, 0x945: 0x12ce, + 0x946: 0x12da, 0x947: 0x12e2, 0x948: 0x12e6, 0x949: 0x12ea, 0x94a: 0x12f2, 0x94b: 0x12f6, + 0x94c: 0x1396, 0x94d: 0x13aa, 0x94e: 0x13de, 0x94f: 0x13e2, 0x950: 0x13ea, 0x951: 0x1416, + 0x952: 0x141e, 0x953: 0x1426, 0x954: 0x142e, 0x955: 0x146a, 0x956: 0x146e, 0x957: 0x1476, + 0x958: 0x147a, 0x959: 0x147e, 0x95a: 0x14aa, 0x95b: 0x14ae, 0x95c: 0x14b6, 0x95d: 0x14ca, + 0x95e: 0x14ce, 0x95f: 0x14ea, 0x960: 0x14f2, 0x961: 0x14f6, 0x962: 0x151a, 0x963: 0x153a, + 0x964: 0x154e, 0x965: 0x1552, 0x966: 0x155a, 0x967: 0x1586, 0x968: 0x158a, 0x969: 0x159a, + 0x96a: 0x15be, 0x96b: 0x15ca, 0x96c: 0x15da, 0x96d: 0x15f2, 0x96e: 0x15fa, 0x96f: 0x15fe, + 0x970: 0x1602, 0x971: 0x1606, 0x972: 0x1612, 0x973: 0x1616, 0x974: 0x161e, 0x975: 0x163a, + 0x976: 0x163e, 0x977: 0x1642, 0x978: 0x165a, 0x979: 0x165e, 0x97a: 0x1666, 0x97b: 0x167a, + 0x97c: 0x167e, 0x97d: 0x1682, 0x97e: 0x168a, 0x97f: 0x168e, + // Block 0x26, offset 0x980 + 0x986: 0xa000, 0x98b: 0xa000, + 0x98c: 0x4049, 0x98d: 0xa000, 0x98e: 0x4051, 0x98f: 0xa000, 0x990: 0x4059, 0x991: 0xa000, + 0x992: 0x4061, 0x993: 0xa000, 0x994: 0x4069, 0x995: 0xa000, 0x996: 0x4071, 0x997: 0xa000, + 0x998: 0x4079, 0x999: 0xa000, 0x99a: 0x4081, 0x99b: 0xa000, 0x99c: 0x4089, 0x99d: 0xa000, + 0x99e: 0x4091, 0x99f: 0xa000, 0x9a0: 0x4099, 0x9a1: 0xa000, 0x9a2: 0x40a1, + 0x9a4: 0xa000, 0x9a5: 0x40a9, 0x9a6: 0xa000, 0x9a7: 0x40b1, 0x9a8: 0xa000, 0x9a9: 0x40b9, + 0x9af: 0xa000, + 0x9b0: 0x40c1, 0x9b1: 0x40c9, 0x9b2: 0xa000, 0x9b3: 0x40d1, 0x9b4: 0x40d9, 0x9b5: 0xa000, + 0x9b6: 0x40e1, 0x9b7: 0x40e9, 0x9b8: 0xa000, 0x9b9: 0x40f1, 0x9ba: 0x40f9, 0x9bb: 0xa000, + 0x9bc: 0x4101, 0x9bd: 0x4109, + // Block 0x27, offset 0x9c0 + 0x9d4: 0x4041, + 0x9d9: 0x9904, 0x9da: 0x9904, 0x9db: 0x441d, 0x9dc: 0x4423, 0x9dd: 0xa000, + 0x9de: 0x4111, 0x9df: 0x27e4, + 0x9e6: 0xa000, + 0x9eb: 0xa000, 0x9ec: 0x4121, 0x9ed: 0xa000, 0x9ee: 0x4129, 0x9ef: 0xa000, + 0x9f0: 0x4131, 0x9f1: 0xa000, 0x9f2: 0x4139, 0x9f3: 0xa000, 0x9f4: 0x4141, 0x9f5: 0xa000, + 0x9f6: 0x4149, 0x9f7: 0xa000, 0x9f8: 0x4151, 0x9f9: 0xa000, 0x9fa: 0x4159, 0x9fb: 0xa000, + 0x9fc: 0x4161, 0x9fd: 0xa000, 0x9fe: 0x4169, 0x9ff: 0xa000, + // Block 0x28, offset 0xa00 + 0xa00: 0x4171, 0xa01: 0xa000, 0xa02: 0x4179, 0xa04: 0xa000, 0xa05: 0x4181, + 0xa06: 0xa000, 0xa07: 0x4189, 0xa08: 0xa000, 0xa09: 0x4191, + 0xa0f: 0xa000, 0xa10: 0x4199, 0xa11: 0x41a1, + 0xa12: 0xa000, 0xa13: 0x41a9, 0xa14: 0x41b1, 0xa15: 0xa000, 0xa16: 0x41b9, 0xa17: 0x41c1, + 0xa18: 0xa000, 0xa19: 0x41c9, 0xa1a: 0x41d1, 0xa1b: 0xa000, 0xa1c: 0x41d9, 0xa1d: 0x41e1, + 0xa2f: 0xa000, + 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x4119, + 0xa37: 0x41e9, 0xa38: 0x41f1, 0xa39: 0x41f9, 0xa3a: 0x4201, + 0xa3d: 0xa000, 0xa3e: 0x4209, 0xa3f: 0x27f9, + // Block 0x29, offset 0xa40 + 0xa40: 0x045a, 0xa41: 0x041e, 0xa42: 0x0422, 0xa43: 0x0426, 0xa44: 0x046e, 0xa45: 0x042a, + 0xa46: 0x042e, 0xa47: 0x0432, 0xa48: 0x0436, 0xa49: 0x043a, 0xa4a: 0x043e, 0xa4b: 0x0442, + 0xa4c: 0x0446, 0xa4d: 0x044a, 0xa4e: 0x044e, 0xa4f: 0x4afe, 0xa50: 0x4b04, 0xa51: 0x4b0a, + 0xa52: 0x4b10, 0xa53: 0x4b16, 0xa54: 0x4b1c, 0xa55: 0x4b22, 0xa56: 0x4b28, 0xa57: 0x4b2e, + 0xa58: 0x4b34, 0xa59: 0x4b3a, 0xa5a: 0x4b40, 0xa5b: 0x4b46, 0xa5c: 0x4b4c, 0xa5d: 0x4b52, + 0xa5e: 0x4b58, 0xa5f: 0x4b5e, 0xa60: 0x4b64, 0xa61: 0x4b6a, 0xa62: 0x4b70, 0xa63: 0x4b76, + 0xa64: 0x04b6, 0xa65: 0x0452, 0xa66: 0x0456, 0xa67: 0x04da, 0xa68: 0x04de, 0xa69: 0x04e2, + 0xa6a: 0x04e6, 0xa6b: 0x04ea, 0xa6c: 0x04ee, 0xa6d: 0x04f2, 0xa6e: 0x045e, 0xa6f: 0x04f6, + 0xa70: 0x04fa, 0xa71: 0x0462, 0xa72: 0x0466, 0xa73: 0x046a, 0xa74: 0x0472, 0xa75: 0x0476, + 0xa76: 0x047a, 0xa77: 0x047e, 0xa78: 0x0482, 0xa79: 0x0486, 0xa7a: 0x048a, 0xa7b: 0x048e, + 0xa7c: 0x0492, 0xa7d: 0x0496, 0xa7e: 0x049a, 0xa7f: 0x049e, + // Block 0x2a, offset 0xa80 + 0xa80: 0x04a2, 0xa81: 0x04a6, 0xa82: 0x04fe, 0xa83: 0x0502, 0xa84: 0x04aa, 0xa85: 0x04ae, + 0xa86: 0x04b2, 0xa87: 0x04ba, 0xa88: 0x04be, 0xa89: 0x04c2, 0xa8a: 0x04c6, 0xa8b: 0x04ca, + 0xa8c: 0x04ce, 0xa8d: 0x04d2, 0xa8e: 0x04d6, + 0xa92: 0x07ba, 0xa93: 0x0816, 0xa94: 0x07c6, 0xa95: 0x0a76, 0xa96: 0x07ca, 0xa97: 0x07e2, + 0xa98: 0x07ce, 0xa99: 0x108e, 0xa9a: 0x0802, 0xa9b: 0x07d6, 0xa9c: 0x07be, 0xa9d: 0x0afa, + 0xa9e: 0x0a8a, 0xa9f: 0x082a, + // Block 0x2b, offset 0xac0 + 0xac0: 0x2184, 0xac1: 0x218a, 0xac2: 0x2190, 0xac3: 0x2196, 0xac4: 0x219c, 0xac5: 0x21a2, + 0xac6: 0x21a8, 0xac7: 0x21ae, 0xac8: 0x21b4, 0xac9: 0x21ba, 0xaca: 0x21c0, 0xacb: 0x21c6, + 0xacc: 0x21cc, 0xacd: 0x21d2, 0xace: 0x285d, 0xacf: 0x2866, 0xad0: 0x286f, 0xad1: 0x2878, + 0xad2: 0x2881, 0xad3: 0x288a, 0xad4: 0x2893, 0xad5: 0x289c, 0xad6: 0x28a5, 0xad7: 0x28b7, + 0xad8: 0x28c0, 0xad9: 0x28c9, 0xada: 0x28d2, 0xadb: 0x28db, 0xadc: 0x28ae, 0xadd: 0x2ce3, + 0xade: 0x2c24, 0xae0: 0x21d8, 0xae1: 0x21f0, 0xae2: 0x21e4, 0xae3: 0x2238, + 0xae4: 0x21f6, 0xae5: 0x2214, 0xae6: 0x21de, 0xae7: 0x220e, 0xae8: 0x21ea, 0xae9: 0x2220, + 0xaea: 0x2250, 0xaeb: 0x226e, 0xaec: 0x2268, 0xaed: 0x225c, 0xaee: 0x22aa, 0xaef: 0x223e, + 0xaf0: 0x224a, 0xaf1: 0x2262, 0xaf2: 0x2256, 0xaf3: 0x2280, 0xaf4: 0x222c, 0xaf5: 0x2274, + 0xaf6: 0x229e, 0xaf7: 0x2286, 0xaf8: 0x221a, 0xaf9: 0x21fc, 0xafa: 0x2232, 0xafb: 0x2244, + 0xafc: 0x227a, 0xafd: 0x2202, 0xafe: 0x22a4, 0xaff: 0x2226, + // Block 0x2c, offset 0xb00 + 0xb00: 0x228c, 0xb01: 0x2208, 0xb02: 0x2292, 0xb03: 0x2298, 0xb04: 0x0a2a, 0xb05: 0x0bfe, + 0xb06: 0x0da2, 0xb07: 0x11c2, + 0xb10: 0x1cf4, 0xb11: 0x19d6, + 0xb12: 0x19d9, 0xb13: 0x19dc, 0xb14: 0x19df, 0xb15: 0x19e2, 0xb16: 0x19e5, 0xb17: 0x19e8, + 0xb18: 0x19eb, 0xb19: 0x19ee, 0xb1a: 0x19f7, 0xb1b: 0x19fa, 0xb1c: 0x19fd, 0xb1d: 0x1a00, + 0xb1e: 0x1a03, 0xb1f: 0x1a06, 0xb20: 0x0406, 0xb21: 0x040e, 0xb22: 0x0412, 0xb23: 0x041a, + 0xb24: 0x041e, 0xb25: 0x0422, 0xb26: 0x042a, 0xb27: 0x0432, 0xb28: 0x0436, 0xb29: 0x043e, + 0xb2a: 0x0442, 0xb2b: 0x0446, 0xb2c: 0x044a, 0xb2d: 0x044e, 0xb2e: 0x2f59, 0xb2f: 0x2f61, + 0xb30: 0x2f69, 0xb31: 0x2f71, 0xb32: 0x2f79, 0xb33: 0x2f81, 0xb34: 0x2f89, 0xb35: 0x2f91, + 0xb36: 0x2fa1, 0xb37: 0x2fa9, 0xb38: 0x2fb1, 0xb39: 0x2fb9, 0xb3a: 0x2fc1, 0xb3b: 0x2fc9, + 0xb3c: 0x3014, 0xb3d: 0x2fdc, 0xb3e: 0x2f99, + // Block 0x2d, offset 0xb40 + 0xb40: 0x07ba, 0xb41: 0x0816, 0xb42: 0x07c6, 0xb43: 0x0a76, 0xb44: 0x081a, 0xb45: 0x08aa, + 0xb46: 0x07c2, 0xb47: 0x08a6, 0xb48: 0x0806, 0xb49: 0x0982, 0xb4a: 0x0e02, 0xb4b: 0x0f8a, + 0xb4c: 0x0ed2, 0xb4d: 0x0e16, 0xb4e: 0x155a, 0xb4f: 0x0a86, 0xb50: 0x0dca, 0xb51: 0x0e46, + 0xb52: 0x0e06, 0xb53: 0x1146, 0xb54: 0x09f6, 0xb55: 0x0ffe, 0xb56: 0x1482, 0xb57: 0x115a, + 0xb58: 0x093e, 0xb59: 0x118a, 0xb5a: 0x1096, 0xb5b: 0x0b12, 0xb5c: 0x150a, 0xb5d: 0x087a, + 0xb5e: 0x09a6, 0xb5f: 0x0ef2, 0xb60: 0x1622, 0xb61: 0x083e, 0xb62: 0x08ce, 0xb63: 0x0e96, + 0xb64: 0x07ca, 0xb65: 0x07e2, 0xb66: 0x07ce, 0xb67: 0x0bd6, 0xb68: 0x09ea, 0xb69: 0x097a, + 0xb6a: 0x0b52, 0xb6b: 0x0b46, 0xb6c: 0x10e6, 0xb6d: 0x083a, 0xb6e: 0x1496, 0xb6f: 0x0996, + 0xb70: 0x0aee, 0xb71: 0x1a09, 0xb72: 0x1a0c, 0xb73: 0x1a0f, 0xb74: 0x1a12, 0xb75: 0x1a1b, + 0xb76: 0x1a1e, 0xb77: 0x1a21, 0xb78: 0x1a24, 0xb79: 0x1a27, 0xb7a: 0x1a2a, 0xb7b: 0x1a2d, + 0xb7c: 0x1a30, 0xb7d: 0x1a33, 0xb7e: 0x1a36, 0xb7f: 0x1a3f, + // Block 0x2e, offset 0xb80 + 0xb80: 0x1df6, 0xb81: 0x1e05, 0xb82: 0x1e14, 0xb83: 0x1e23, 0xb84: 0x1e32, 0xb85: 0x1e41, + 0xb86: 0x1e50, 0xb87: 0x1e5f, 0xb88: 0x1e6e, 0xb89: 0x22bc, 0xb8a: 0x22ce, 0xb8b: 0x22e0, + 0xb8c: 0x1a81, 0xb8d: 0x1d34, 0xb8e: 0x1b02, 0xb8f: 0x1cd8, 0xb90: 0x05c6, 0xb91: 0x05ce, + 0xb92: 0x05d6, 0xb93: 0x05de, 0xb94: 0x05e6, 0xb95: 0x05ea, 0xb96: 0x05ee, 0xb97: 0x05f2, + 0xb98: 0x05f6, 0xb99: 0x05fa, 0xb9a: 0x05fe, 0xb9b: 0x0602, 0xb9c: 0x0606, 0xb9d: 0x060a, + 0xb9e: 0x060e, 0xb9f: 0x0612, 0xba0: 0x0616, 0xba1: 0x061e, 0xba2: 0x0622, 0xba3: 0x0626, + 0xba4: 0x062a, 0xba5: 0x062e, 0xba6: 0x0632, 0xba7: 0x0636, 0xba8: 0x063a, 0xba9: 0x063e, + 0xbaa: 0x0642, 0xbab: 0x0646, 0xbac: 0x064a, 0xbad: 0x064e, 0xbae: 0x0652, 0xbaf: 0x0656, + 0xbb0: 0x065a, 0xbb1: 0x065e, 0xbb2: 0x0662, 0xbb3: 0x066a, 0xbb4: 0x0672, 0xbb5: 0x067a, + 0xbb6: 0x067e, 0xbb7: 0x0682, 0xbb8: 0x0686, 0xbb9: 0x068a, 0xbba: 0x068e, 0xbbb: 0x0692, + 0xbbc: 0x0696, 0xbbd: 0x069a, 0xbbe: 0x069e, 0xbbf: 0x282a, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x2c43, 0xbc1: 0x2adf, 0xbc2: 0x2c53, 0xbc3: 0x29b7, 0xbc4: 0x3025, 0xbc5: 0x29c1, + 0xbc6: 0x29cb, 0xbc7: 0x3069, 0xbc8: 0x2aec, 0xbc9: 0x29d5, 0xbca: 0x29df, 0xbcb: 0x29e9, + 0xbcc: 0x2b13, 0xbcd: 0x2b20, 0xbce: 0x2af9, 0xbcf: 0x2b06, 0xbd0: 0x2fea, 0xbd1: 0x2b2d, + 0xbd2: 0x2b3a, 0xbd3: 0x2cf5, 0xbd4: 0x27eb, 0xbd5: 0x2d08, 0xbd6: 0x2d1b, 0xbd7: 0x2c63, + 0xbd8: 0x2b47, 0xbd9: 0x2d2e, 0xbda: 0x2d41, 0xbdb: 0x2b54, 0xbdc: 0x29f3, 0xbdd: 0x29fd, + 0xbde: 0x2ff8, 0xbdf: 0x2b61, 0xbe0: 0x2c73, 0xbe1: 0x3036, 0xbe2: 0x2a07, 0xbe3: 0x2a11, + 0xbe4: 0x2b6e, 0xbe5: 0x2a1b, 0xbe6: 0x2a25, 0xbe7: 0x2800, 0xbe8: 0x2807, 0xbe9: 0x2a2f, + 0xbea: 0x2a39, 0xbeb: 0x2d54, 0xbec: 0x2b7b, 0xbed: 0x2c83, 0xbee: 0x2d67, 0xbef: 0x2b88, + 0xbf0: 0x2a4d, 0xbf1: 0x2a43, 0xbf2: 0x307d, 0xbf3: 0x2b95, 0xbf4: 0x2d7a, 0xbf5: 0x2a57, + 0xbf6: 0x2c93, 0xbf7: 0x2a61, 0xbf8: 0x2baf, 0xbf9: 0x2a6b, 0xbfa: 0x2bbc, 0xbfb: 0x3047, + 0xbfc: 0x2ba2, 0xbfd: 0x2ca3, 0xbfe: 0x2bc9, 0xbff: 0x280e, + // Block 0x30, offset 0xc00 + 0xc00: 0x3058, 0xc01: 0x2a75, 0xc02: 0x2a7f, 0xc03: 0x2bd6, 0xc04: 0x2a89, 0xc05: 0x2a93, + 0xc06: 0x2a9d, 0xc07: 0x2cb3, 0xc08: 0x2be3, 0xc09: 0x2815, 0xc0a: 0x2d8d, 0xc0b: 0x2fd1, + 0xc0c: 0x2cc3, 0xc0d: 0x2bf0, 0xc0e: 0x3006, 0xc0f: 0x2aa7, 0xc10: 0x2ab1, 0xc11: 0x2bfd, + 0xc12: 0x281c, 0xc13: 0x2c0a, 0xc14: 0x2cd3, 0xc15: 0x2823, 0xc16: 0x2da0, 0xc17: 0x2abb, + 0xc18: 0x1de7, 0xc19: 0x1dfb, 0xc1a: 0x1e0a, 0xc1b: 0x1e19, 0xc1c: 0x1e28, 0xc1d: 0x1e37, + 0xc1e: 0x1e46, 0xc1f: 0x1e55, 0xc20: 0x1e64, 0xc21: 0x1e73, 0xc22: 0x22c2, 0xc23: 0x22d4, + 0xc24: 0x22e6, 0xc25: 0x22f2, 0xc26: 0x22fe, 0xc27: 0x230a, 0xc28: 0x2316, 0xc29: 0x2322, + 0xc2a: 0x232e, 0xc2b: 0x233a, 0xc2c: 0x2376, 0xc2d: 0x2382, 0xc2e: 0x238e, 0xc2f: 0x239a, + 0xc30: 0x23a6, 0xc31: 0x1d44, 0xc32: 0x1af6, 0xc33: 0x1a63, 0xc34: 0x1d14, 0xc35: 0x1b77, + 0xc36: 0x1b86, 0xc37: 0x1afc, 0xc38: 0x1d2c, 0xc39: 0x1d30, 0xc3a: 0x1a8d, 0xc3b: 0x2838, + 0xc3c: 0x2846, 0xc3d: 0x2831, 0xc3e: 0x283f, 0xc3f: 0x2c17, + // Block 0x31, offset 0xc40 + 0xc40: 0x1b7a, 0xc41: 0x1b62, 0xc42: 0x1d90, 0xc43: 0x1b4a, 0xc44: 0x1b23, 0xc45: 0x1a96, + 0xc46: 0x1aa5, 0xc47: 0x1a75, 0xc48: 0x1d20, 0xc49: 0x1e82, 0xc4a: 0x1b7d, 0xc4b: 0x1b65, + 0xc4c: 0x1d94, 0xc4d: 0x1da0, 0xc4e: 0x1b56, 0xc4f: 0x1b2c, 0xc50: 0x1a84, 0xc51: 0x1d4c, + 0xc52: 0x1ce0, 0xc53: 0x1ccc, 0xc54: 0x1cfc, 0xc55: 0x1da4, 0xc56: 0x1b59, 0xc57: 0x1af9, + 0xc58: 0x1b2f, 0xc59: 0x1b0e, 0xc5a: 0x1b71, 0xc5b: 0x1da8, 0xc5c: 0x1b5c, 0xc5d: 0x1af0, + 0xc5e: 0x1b32, 0xc5f: 0x1d6c, 0xc60: 0x1d24, 0xc61: 0x1b44, 0xc62: 0x1d54, 0xc63: 0x1d70, + 0xc64: 0x1d28, 0xc65: 0x1b47, 0xc66: 0x1d58, 0xc67: 0x2418, 0xc68: 0x242c, 0xc69: 0x1ac6, + 0xc6a: 0x1d50, 0xc6b: 0x1ce4, 0xc6c: 0x1cd0, 0xc6d: 0x1d78, 0xc6e: 0x284d, 0xc6f: 0x28e4, + 0xc70: 0x1b89, 0xc71: 0x1b74, 0xc72: 0x1dac, 0xc73: 0x1b5f, 0xc74: 0x1b80, 0xc75: 0x1b68, + 0xc76: 0x1d98, 0xc77: 0x1b4d, 0xc78: 0x1b26, 0xc79: 0x1ab1, 0xc7a: 0x1b83, 0xc7b: 0x1b6b, + 0xc7c: 0x1d9c, 0xc7d: 0x1b50, 0xc7e: 0x1b29, 0xc7f: 0x1ab4, + // Block 0x32, offset 0xc80 + 0xc80: 0x1d5c, 0xc81: 0x1ce8, 0xc82: 0x1e7d, 0xc83: 0x1a66, 0xc84: 0x1aea, 0xc85: 0x1aed, + 0xc86: 0x2425, 0xc87: 0x1cc4, 0xc88: 0x1af3, 0xc89: 0x1a78, 0xc8a: 0x1b11, 0xc8b: 0x1a7b, + 0xc8c: 0x1b1a, 0xc8d: 0x1a99, 0xc8e: 0x1a9c, 0xc8f: 0x1b35, 0xc90: 0x1b3b, 0xc91: 0x1b3e, + 0xc92: 0x1d60, 0xc93: 0x1b41, 0xc94: 0x1b53, 0xc95: 0x1d68, 0xc96: 0x1d74, 0xc97: 0x1ac0, + 0xc98: 0x1e87, 0xc99: 0x1cec, 0xc9a: 0x1ac3, 0xc9b: 0x1b8c, 0xc9c: 0x1ad5, 0xc9d: 0x1ae4, + 0xc9e: 0x2412, 0xc9f: 0x240c, 0xca0: 0x1df1, 0xca1: 0x1e00, 0xca2: 0x1e0f, 0xca3: 0x1e1e, + 0xca4: 0x1e2d, 0xca5: 0x1e3c, 0xca6: 0x1e4b, 0xca7: 0x1e5a, 0xca8: 0x1e69, 0xca9: 0x22b6, + 0xcaa: 0x22c8, 0xcab: 0x22da, 0xcac: 0x22ec, 0xcad: 0x22f8, 0xcae: 0x2304, 0xcaf: 0x2310, + 0xcb0: 0x231c, 0xcb1: 0x2328, 0xcb2: 0x2334, 0xcb3: 0x2370, 0xcb4: 0x237c, 0xcb5: 0x2388, + 0xcb6: 0x2394, 0xcb7: 0x23a0, 0xcb8: 0x23ac, 0xcb9: 0x23b2, 0xcba: 0x23b8, 0xcbb: 0x23be, + 0xcbc: 0x23c4, 0xcbd: 0x23d6, 0xcbe: 0x23dc, 0xcbf: 0x1d40, + // Block 0x33, offset 0xcc0 + 0xcc0: 0x1472, 0xcc1: 0x0df6, 0xcc2: 0x14ce, 0xcc3: 0x149a, 0xcc4: 0x0f52, 0xcc5: 0x07e6, + 0xcc6: 0x09da, 0xcc7: 0x1726, 0xcc8: 0x1726, 0xcc9: 0x0b06, 0xcca: 0x155a, 0xccb: 0x0a3e, + 0xccc: 0x0b02, 0xccd: 0x0cea, 0xcce: 0x10ca, 0xccf: 0x125a, 0xcd0: 0x1392, 0xcd1: 0x13ce, + 0xcd2: 0x1402, 0xcd3: 0x1516, 0xcd4: 0x0e6e, 0xcd5: 0x0efa, 0xcd6: 0x0fa6, 0xcd7: 0x103e, + 0xcd8: 0x135a, 0xcd9: 0x1542, 0xcda: 0x166e, 0xcdb: 0x080a, 0xcdc: 0x09ae, 0xcdd: 0x0e82, + 0xcde: 0x0fca, 0xcdf: 0x138e, 0xce0: 0x16be, 0xce1: 0x0bae, 0xce2: 0x0f72, 0xce3: 0x137e, + 0xce4: 0x1412, 0xce5: 0x0d1e, 0xce6: 0x12b6, 0xce7: 0x13da, 0xce8: 0x0c1a, 0xce9: 0x0e0a, + 0xcea: 0x0f12, 0xceb: 0x1016, 0xcec: 0x1522, 0xced: 0x084a, 0xcee: 0x08e2, 0xcef: 0x094e, + 0xcf0: 0x0d86, 0xcf1: 0x0e7a, 0xcf2: 0x0fc6, 0xcf3: 0x10ea, 0xcf4: 0x1272, 0xcf5: 0x1386, + 0xcf6: 0x139e, 0xcf7: 0x14c2, 0xcf8: 0x15ea, 0xcf9: 0x169e, 0xcfa: 0x16ba, 0xcfb: 0x1126, + 0xcfc: 0x1166, 0xcfd: 0x121e, 0xcfe: 0x133e, 0xcff: 0x1576, + // Block 0x34, offset 0xd00 + 0xd00: 0x16c6, 0xd01: 0x1446, 0xd02: 0x0ac2, 0xd03: 0x0c36, 0xd04: 0x11d6, 0xd05: 0x1296, + 0xd06: 0x0ffa, 0xd07: 0x112e, 0xd08: 0x1492, 0xd09: 0x15e2, 0xd0a: 0x0abe, 0xd0b: 0x0b8a, + 0xd0c: 0x0e72, 0xd0d: 0x0f26, 0xd0e: 0x0f5a, 0xd0f: 0x120e, 0xd10: 0x1236, 0xd11: 0x15a2, + 0xd12: 0x094a, 0xd13: 0x12a2, 0xd14: 0x08ee, 0xd15: 0x08ea, 0xd16: 0x1192, 0xd17: 0x1222, + 0xd18: 0x1356, 0xd19: 0x15aa, 0xd1a: 0x1462, 0xd1b: 0x0d22, 0xd1c: 0x0e6e, 0xd1d: 0x1452, + 0xd1e: 0x07f2, 0xd1f: 0x0b5e, 0xd20: 0x0c8e, 0xd21: 0x102a, 0xd22: 0x10aa, 0xd23: 0x096e, + 0xd24: 0x1136, 0xd25: 0x085a, 0xd26: 0x0c72, 0xd27: 0x07d2, 0xd28: 0x0ee6, 0xd29: 0x0d9e, + 0xd2a: 0x120a, 0xd2b: 0x09c2, 0xd2c: 0x0aae, 0xd2d: 0x10f6, 0xd2e: 0x135e, 0xd2f: 0x1436, + 0xd30: 0x0eb2, 0xd31: 0x14f2, 0xd32: 0x0ede, 0xd33: 0x0d32, 0xd34: 0x1316, 0xd35: 0x0d52, + 0xd36: 0x10a6, 0xd37: 0x0826, 0xd38: 0x08a2, 0xd39: 0x08e6, 0xd3a: 0x0e4e, 0xd3b: 0x11f6, + 0xd3c: 0x12ee, 0xd3d: 0x1442, 0xd3e: 0x1556, 0xd3f: 0x0956, + // Block 0x35, offset 0xd40 + 0xd40: 0x0a0a, 0xd41: 0x0b12, 0xd42: 0x0c2a, 0xd43: 0x0dba, 0xd44: 0x0f76, 0xd45: 0x113a, + 0xd46: 0x1592, 0xd47: 0x1676, 0xd48: 0x16ca, 0xd49: 0x16e2, 0xd4a: 0x0932, 0xd4b: 0x0dee, + 0xd4c: 0x0e9e, 0xd4d: 0x14e6, 0xd4e: 0x0bf6, 0xd4f: 0x0cd2, 0xd50: 0x0cee, 0xd51: 0x0d7e, + 0xd52: 0x0f66, 0xd53: 0x0fb2, 0xd54: 0x1062, 0xd55: 0x1186, 0xd56: 0x122a, 0xd57: 0x128e, + 0xd58: 0x14d6, 0xd59: 0x1366, 0xd5a: 0x14fe, 0xd5b: 0x157a, 0xd5c: 0x090a, 0xd5d: 0x0936, + 0xd5e: 0x0a1e, 0xd5f: 0x0fa2, 0xd60: 0x13ee, 0xd61: 0x1436, 0xd62: 0x0c16, 0xd63: 0x0c86, + 0xd64: 0x0d4a, 0xd65: 0x0eaa, 0xd66: 0x11d2, 0xd67: 0x101e, 0xd68: 0x0836, 0xd69: 0x0a7a, + 0xd6a: 0x0b5e, 0xd6b: 0x0bc2, 0xd6c: 0x0c92, 0xd6d: 0x103a, 0xd6e: 0x1056, 0xd6f: 0x1266, + 0xd70: 0x1286, 0xd71: 0x155e, 0xd72: 0x15de, 0xd73: 0x15ee, 0xd74: 0x162a, 0xd75: 0x084e, + 0xd76: 0x117a, 0xd77: 0x154a, 0xd78: 0x15c6, 0xd79: 0x0caa, 0xd7a: 0x0812, 0xd7b: 0x0872, + 0xd7c: 0x0b62, 0xd7d: 0x0b82, 0xd7e: 0x0daa, 0xd7f: 0x0e6e, + // Block 0x36, offset 0xd80 + 0xd80: 0x0fbe, 0xd81: 0x10c6, 0xd82: 0x1372, 0xd83: 0x1512, 0xd84: 0x171e, 0xd85: 0x0dde, + 0xd86: 0x159e, 0xd87: 0x092e, 0xd88: 0x0e2a, 0xd89: 0x0e36, 0xd8a: 0x0f0a, 0xd8b: 0x0f42, + 0xd8c: 0x1046, 0xd8d: 0x10a2, 0xd8e: 0x1122, 0xd8f: 0x1206, 0xd90: 0x1636, 0xd91: 0x08aa, + 0xd92: 0x0cfe, 0xd93: 0x15ae, 0xd94: 0x0862, 0xd95: 0x0ba6, 0xd96: 0x0f2a, 0xd97: 0x14da, + 0xd98: 0x0c62, 0xd99: 0x0cb2, 0xd9a: 0x0e3e, 0xd9b: 0x102a, 0xd9c: 0x15b6, 0xd9d: 0x0912, + 0xd9e: 0x09fa, 0xd9f: 0x0b92, 0xda0: 0x0dce, 0xda1: 0x0e1a, 0xda2: 0x0e5a, 0xda3: 0x0eee, + 0xda4: 0x1042, 0xda5: 0x10b6, 0xda6: 0x1252, 0xda7: 0x13f2, 0xda8: 0x13fe, 0xda9: 0x1552, + 0xdaa: 0x15d2, 0xdab: 0x097e, 0xdac: 0x0f46, 0xdad: 0x09fe, 0xdae: 0x0fc2, 0xdaf: 0x1066, + 0xdb0: 0x1382, 0xdb1: 0x15ba, 0xdb2: 0x16a6, 0xdb3: 0x16ce, 0xdb4: 0x0e32, 0xdb5: 0x0f22, + 0xdb6: 0x12be, 0xdb7: 0x11b2, 0xdb8: 0x11be, 0xdb9: 0x11e2, 0xdba: 0x1012, 0xdbb: 0x0f9a, + 0xdbc: 0x145e, 0xdbd: 0x082e, 0xdbe: 0x1326, 0xdbf: 0x0916, + // Block 0x37, offset 0xdc0 + 0xdc0: 0x0906, 0xdc1: 0x0c06, 0xdc2: 0x0d26, 0xdc3: 0x11ee, 0xdc4: 0x0b4e, 0xdc5: 0x0efe, + 0xdc6: 0x0dea, 0xdc7: 0x14e2, 0xdc8: 0x13e2, 0xdc9: 0x15a6, 0xdca: 0x141e, 0xdcb: 0x0c22, + 0xdcc: 0x0882, 0xdcd: 0x0a56, 0xdd0: 0x0aaa, + 0xdd2: 0x0dda, 0xdd5: 0x08f2, 0xdd6: 0x101a, 0xdd7: 0x10de, + 0xdd8: 0x1142, 0xdd9: 0x115e, 0xdda: 0x1162, 0xddb: 0x1176, 0xddc: 0x15f6, 0xddd: 0x11e6, + 0xdde: 0x126a, 0xde0: 0x138a, 0xde2: 0x144e, + 0xde5: 0x1502, 0xde6: 0x152e, + 0xdea: 0x164a, 0xdeb: 0x164e, 0xdec: 0x1652, 0xded: 0x16b6, 0xdee: 0x1526, 0xdef: 0x15c2, + 0xdf0: 0x0852, 0xdf1: 0x0876, 0xdf2: 0x088a, 0xdf3: 0x0946, 0xdf4: 0x0952, 0xdf5: 0x0992, + 0xdf6: 0x0a46, 0xdf7: 0x0a62, 0xdf8: 0x0a6a, 0xdf9: 0x0aa6, 0xdfa: 0x0ab2, 0xdfb: 0x0b8e, + 0xdfc: 0x0b96, 0xdfd: 0x0c9e, 0xdfe: 0x0cc6, 0xdff: 0x0cce, + // Block 0x38, offset 0xe00 + 0xe00: 0x0ce6, 0xe01: 0x0d92, 0xe02: 0x0dc2, 0xe03: 0x0de2, 0xe04: 0x0e52, 0xe05: 0x0f16, + 0xe06: 0x0f32, 0xe07: 0x0f62, 0xe08: 0x0fb6, 0xe09: 0x0fd6, 0xe0a: 0x104a, 0xe0b: 0x112a, + 0xe0c: 0x1146, 0xe0d: 0x114e, 0xe0e: 0x114a, 0xe0f: 0x1152, 0xe10: 0x1156, 0xe11: 0x115a, + 0xe12: 0x116e, 0xe13: 0x1172, 0xe14: 0x1196, 0xe15: 0x11aa, 0xe16: 0x11c6, 0xe17: 0x122a, + 0xe18: 0x1232, 0xe19: 0x123a, 0xe1a: 0x124e, 0xe1b: 0x1276, 0xe1c: 0x12c6, 0xe1d: 0x12fa, + 0xe1e: 0x12fa, 0xe1f: 0x1362, 0xe20: 0x140a, 0xe21: 0x1422, 0xe22: 0x1456, 0xe23: 0x145a, + 0xe24: 0x149e, 0xe25: 0x14a2, 0xe26: 0x14fa, 0xe27: 0x1502, 0xe28: 0x15d6, 0xe29: 0x161a, + 0xe2a: 0x1632, 0xe2b: 0x0c96, 0xe2c: 0x184b, 0xe2d: 0x12de, + 0xe30: 0x07da, 0xe31: 0x08de, 0xe32: 0x089e, 0xe33: 0x0846, 0xe34: 0x0886, 0xe35: 0x08b2, + 0xe36: 0x0942, 0xe37: 0x095e, 0xe38: 0x0a46, 0xe39: 0x0a32, 0xe3a: 0x0a42, 0xe3b: 0x0a5e, + 0xe3c: 0x0aaa, 0xe3d: 0x0aba, 0xe3e: 0x0afe, 0xe3f: 0x0b0a, + // Block 0x39, offset 0xe40 + 0xe40: 0x0b26, 0xe41: 0x0b36, 0xe42: 0x0c1e, 0xe43: 0x0c26, 0xe44: 0x0c56, 0xe45: 0x0c76, + 0xe46: 0x0ca6, 0xe47: 0x0cbe, 0xe48: 0x0cae, 0xe49: 0x0cce, 0xe4a: 0x0cc2, 0xe4b: 0x0ce6, + 0xe4c: 0x0d02, 0xe4d: 0x0d5a, 0xe4e: 0x0d66, 0xe4f: 0x0d6e, 0xe50: 0x0d96, 0xe51: 0x0dda, + 0xe52: 0x0e0a, 0xe53: 0x0e0e, 0xe54: 0x0e22, 0xe55: 0x0ea2, 0xe56: 0x0eb2, 0xe57: 0x0f0a, + 0xe58: 0x0f56, 0xe59: 0x0f4e, 0xe5a: 0x0f62, 0xe5b: 0x0f7e, 0xe5c: 0x0fb6, 0xe5d: 0x110e, + 0xe5e: 0x0fda, 0xe5f: 0x100e, 0xe60: 0x101a, 0xe61: 0x105a, 0xe62: 0x1076, 0xe63: 0x109a, + 0xe64: 0x10be, 0xe65: 0x10c2, 0xe66: 0x10de, 0xe67: 0x10e2, 0xe68: 0x10f2, 0xe69: 0x1106, + 0xe6a: 0x1102, 0xe6b: 0x1132, 0xe6c: 0x11ae, 0xe6d: 0x11c6, 0xe6e: 0x11de, 0xe6f: 0x1216, + 0xe70: 0x122a, 0xe71: 0x1246, 0xe72: 0x1276, 0xe73: 0x132a, 0xe74: 0x1352, 0xe75: 0x13c6, + 0xe76: 0x140e, 0xe77: 0x141a, 0xe78: 0x1422, 0xe79: 0x143a, 0xe7a: 0x144e, 0xe7b: 0x143e, + 0xe7c: 0x1456, 0xe7d: 0x1452, 0xe7e: 0x144a, 0xe7f: 0x145a, + // Block 0x3a, offset 0xe80 + 0xe80: 0x1466, 0xe81: 0x14a2, 0xe82: 0x14de, 0xe83: 0x150e, 0xe84: 0x1546, 0xe85: 0x1566, + 0xe86: 0x15b2, 0xe87: 0x15d6, 0xe88: 0x15f6, 0xe89: 0x160a, 0xe8a: 0x161a, 0xe8b: 0x1626, + 0xe8c: 0x1632, 0xe8d: 0x1686, 0xe8e: 0x1726, 0xe8f: 0x17e2, 0xe90: 0x17dd, 0xe91: 0x180f, + 0xe92: 0x0702, 0xe93: 0x072a, 0xe94: 0x072e, 0xe95: 0x1891, 0xe96: 0x18be, 0xe97: 0x1936, + 0xe98: 0x1712, 0xe99: 0x1722, + // Block 0x3b, offset 0xec0 + 0xec0: 0x1b05, 0xec1: 0x1b08, 0xec2: 0x1b0b, 0xec3: 0x1d38, 0xec4: 0x1d3c, 0xec5: 0x1b8f, + 0xec6: 0x1b8f, + 0xed3: 0x1ea5, 0xed4: 0x1e96, 0xed5: 0x1e9b, 0xed6: 0x1eaa, 0xed7: 0x1ea0, + 0xedd: 0x44d1, + 0xede: 0x8116, 0xedf: 0x4543, 0xee0: 0x0320, 0xee1: 0x0308, 0xee2: 0x0311, 0xee3: 0x0314, + 0xee4: 0x0317, 0xee5: 0x031a, 0xee6: 0x031d, 0xee7: 0x0323, 0xee8: 0x0326, 0xee9: 0x0017, + 0xeea: 0x4531, 0xeeb: 0x4537, 0xeec: 0x4635, 0xeed: 0x463d, 0xeee: 0x4489, 0xeef: 0x448f, + 0xef0: 0x4495, 0xef1: 0x449b, 0xef2: 0x44a7, 0xef3: 0x44ad, 0xef4: 0x44b3, 0xef5: 0x44bf, + 0xef6: 0x44c5, 0xef8: 0x44cb, 0xef9: 0x44d7, 0xefa: 0x44dd, 0xefb: 0x44e3, + 0xefc: 0x44ef, 0xefe: 0x44f5, + // Block 0x3c, offset 0xf00 + 0xf00: 0x44fb, 0xf01: 0x4501, 0xf03: 0x4507, 0xf04: 0x450d, + 0xf06: 0x4519, 0xf07: 0x451f, 0xf08: 0x4525, 0xf09: 0x452b, 0xf0a: 0x453d, 0xf0b: 0x44b9, + 0xf0c: 0x44a1, 0xf0d: 0x44e9, 0xf0e: 0x4513, 0xf0f: 0x1eaf, 0xf10: 0x038c, 0xf11: 0x038c, + 0xf12: 0x0395, 0xf13: 0x0395, 0xf14: 0x0395, 0xf15: 0x0395, 0xf16: 0x0398, 0xf17: 0x0398, + 0xf18: 0x0398, 0xf19: 0x0398, 0xf1a: 0x039e, 0xf1b: 0x039e, 0xf1c: 0x039e, 0xf1d: 0x039e, + 0xf1e: 0x0392, 0xf1f: 0x0392, 0xf20: 0x0392, 0xf21: 0x0392, 0xf22: 0x039b, 0xf23: 0x039b, + 0xf24: 0x039b, 0xf25: 0x039b, 0xf26: 0x038f, 0xf27: 0x038f, 0xf28: 0x038f, 0xf29: 0x038f, + 0xf2a: 0x03c2, 0xf2b: 0x03c2, 0xf2c: 0x03c2, 0xf2d: 0x03c2, 0xf2e: 0x03c5, 0xf2f: 0x03c5, + 0xf30: 0x03c5, 0xf31: 0x03c5, 0xf32: 0x03a4, 0xf33: 0x03a4, 0xf34: 0x03a4, 0xf35: 0x03a4, + 0xf36: 0x03a1, 0xf37: 0x03a1, 0xf38: 0x03a1, 0xf39: 0x03a1, 0xf3a: 0x03a7, 0xf3b: 0x03a7, + 0xf3c: 0x03a7, 0xf3d: 0x03a7, 0xf3e: 0x03aa, 0xf3f: 0x03aa, + // Block 0x3d, offset 0xf40 + 0xf40: 0x03aa, 0xf41: 0x03aa, 0xf42: 0x03b3, 0xf43: 0x03b3, 0xf44: 0x03b0, 0xf45: 0x03b0, + 0xf46: 0x03b6, 0xf47: 0x03b6, 0xf48: 0x03ad, 0xf49: 0x03ad, 0xf4a: 0x03bc, 0xf4b: 0x03bc, + 0xf4c: 0x03b9, 0xf4d: 0x03b9, 0xf4e: 0x03c8, 0xf4f: 0x03c8, 0xf50: 0x03c8, 0xf51: 0x03c8, + 0xf52: 0x03ce, 0xf53: 0x03ce, 0xf54: 0x03ce, 0xf55: 0x03ce, 0xf56: 0x03d4, 0xf57: 0x03d4, + 0xf58: 0x03d4, 0xf59: 0x03d4, 0xf5a: 0x03d1, 0xf5b: 0x03d1, 0xf5c: 0x03d1, 0xf5d: 0x03d1, + 0xf5e: 0x03d7, 0xf5f: 0x03d7, 0xf60: 0x03da, 0xf61: 0x03da, 0xf62: 0x03da, 0xf63: 0x03da, + 0xf64: 0x45af, 0xf65: 0x45af, 0xf66: 0x03e0, 0xf67: 0x03e0, 0xf68: 0x03e0, 0xf69: 0x03e0, + 0xf6a: 0x03dd, 0xf6b: 0x03dd, 0xf6c: 0x03dd, 0xf6d: 0x03dd, 0xf6e: 0x03fb, 0xf6f: 0x03fb, + 0xf70: 0x45a9, 0xf71: 0x45a9, + // Block 0x3e, offset 0xf80 + 0xf93: 0x03cb, 0xf94: 0x03cb, 0xf95: 0x03cb, 0xf96: 0x03cb, 0xf97: 0x03e9, + 0xf98: 0x03e9, 0xf99: 0x03e6, 0xf9a: 0x03e6, 0xf9b: 0x03ec, 0xf9c: 0x03ec, 0xf9d: 0x217f, + 0xf9e: 0x03f2, 0xf9f: 0x03f2, 0xfa0: 0x03e3, 0xfa1: 0x03e3, 0xfa2: 0x03ef, 0xfa3: 0x03ef, + 0xfa4: 0x03f8, 0xfa5: 0x03f8, 0xfa6: 0x03f8, 0xfa7: 0x03f8, 0xfa8: 0x0380, 0xfa9: 0x0380, + 0xfaa: 0x26da, 0xfab: 0x26da, 0xfac: 0x274a, 0xfad: 0x274a, 0xfae: 0x2719, 0xfaf: 0x2719, + 0xfb0: 0x2735, 0xfb1: 0x2735, 0xfb2: 0x272e, 0xfb3: 0x272e, 0xfb4: 0x273c, 0xfb5: 0x273c, + 0xfb6: 0x2743, 0xfb7: 0x2743, 0xfb8: 0x2743, 0xfb9: 0x2720, 0xfba: 0x2720, 0xfbb: 0x2720, + 0xfbc: 0x03f5, 0xfbd: 0x03f5, 0xfbe: 0x03f5, 0xfbf: 0x03f5, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x26e1, 0xfc1: 0x26e8, 0xfc2: 0x2704, 0xfc3: 0x2720, 0xfc4: 0x2727, 0xfc5: 0x1eb9, + 0xfc6: 0x1ebe, 0xfc7: 0x1ec3, 0xfc8: 0x1ed2, 0xfc9: 0x1ee1, 0xfca: 0x1ee6, 0xfcb: 0x1eeb, + 0xfcc: 0x1ef0, 0xfcd: 0x1ef5, 0xfce: 0x1f04, 0xfcf: 0x1f13, 0xfd0: 0x1f18, 0xfd1: 0x1f1d, + 0xfd2: 0x1f2c, 0xfd3: 0x1f3b, 0xfd4: 0x1f40, 0xfd5: 0x1f45, 0xfd6: 0x1f4a, 0xfd7: 0x1f59, + 0xfd8: 0x1f5e, 0xfd9: 0x1f6d, 0xfda: 0x1f72, 0xfdb: 0x1f77, 0xfdc: 0x1f86, 0xfdd: 0x1f8b, + 0xfde: 0x1f90, 0xfdf: 0x1f9a, 0xfe0: 0x1fd6, 0xfe1: 0x1fe5, 0xfe2: 0x1ff4, 0xfe3: 0x1ff9, + 0xfe4: 0x1ffe, 0xfe5: 0x2008, 0xfe6: 0x2017, 0xfe7: 0x201c, 0xfe8: 0x202b, 0xfe9: 0x2030, + 0xfea: 0x2035, 0xfeb: 0x2044, 0xfec: 0x2049, 0xfed: 0x2058, 0xfee: 0x205d, 0xfef: 0x2062, + 0xff0: 0x2067, 0xff1: 0x206c, 0xff2: 0x2071, 0xff3: 0x2076, 0xff4: 0x207b, 0xff5: 0x2080, + 0xff6: 0x2085, 0xff7: 0x208a, 0xff8: 0x208f, 0xff9: 0x2094, 0xffa: 0x2099, 0xffb: 0x209e, + 0xffc: 0x20a3, 0xffd: 0x20a8, 0xffe: 0x20ad, 0xfff: 0x20b7, + // Block 0x40, offset 0x1000 + 0x1000: 0x20bc, 0x1001: 0x20c1, 0x1002: 0x20c6, 0x1003: 0x20d0, 0x1004: 0x20d5, 0x1005: 0x20df, + 0x1006: 0x20e4, 0x1007: 0x20e9, 0x1008: 0x20ee, 0x1009: 0x20f3, 0x100a: 0x20f8, 0x100b: 0x20fd, + 0x100c: 0x2102, 0x100d: 0x2107, 0x100e: 0x2116, 0x100f: 0x2125, 0x1010: 0x212a, 0x1011: 0x212f, + 0x1012: 0x2134, 0x1013: 0x2139, 0x1014: 0x213e, 0x1015: 0x2148, 0x1016: 0x214d, 0x1017: 0x2152, + 0x1018: 0x2161, 0x1019: 0x2170, 0x101a: 0x2175, 0x101b: 0x4561, 0x101c: 0x4567, 0x101d: 0x459d, + 0x101e: 0x45f4, 0x101f: 0x45fb, 0x1020: 0x4602, 0x1021: 0x4609, 0x1022: 0x4610, 0x1023: 0x4617, + 0x1024: 0x26f6, 0x1025: 0x26fd, 0x1026: 0x2704, 0x1027: 0x270b, 0x1028: 0x2720, 0x1029: 0x2727, + 0x102a: 0x1ec8, 0x102b: 0x1ecd, 0x102c: 0x1ed2, 0x102d: 0x1ed7, 0x102e: 0x1ee1, 0x102f: 0x1ee6, + 0x1030: 0x1efa, 0x1031: 0x1eff, 0x1032: 0x1f04, 0x1033: 0x1f09, 0x1034: 0x1f13, 0x1035: 0x1f18, + 0x1036: 0x1f22, 0x1037: 0x1f27, 0x1038: 0x1f2c, 0x1039: 0x1f31, 0x103a: 0x1f3b, 0x103b: 0x1f40, + 0x103c: 0x206c, 0x103d: 0x2071, 0x103e: 0x2080, 0x103f: 0x2085, + // Block 0x41, offset 0x1040 + 0x1040: 0x208a, 0x1041: 0x209e, 0x1042: 0x20a3, 0x1043: 0x20a8, 0x1044: 0x20ad, 0x1045: 0x20c6, + 0x1046: 0x20d0, 0x1047: 0x20d5, 0x1048: 0x20da, 0x1049: 0x20ee, 0x104a: 0x210c, 0x104b: 0x2111, + 0x104c: 0x2116, 0x104d: 0x211b, 0x104e: 0x2125, 0x104f: 0x212a, 0x1050: 0x459d, 0x1051: 0x2157, + 0x1052: 0x215c, 0x1053: 0x2161, 0x1054: 0x2166, 0x1055: 0x2170, 0x1056: 0x2175, 0x1057: 0x26e1, + 0x1058: 0x26e8, 0x1059: 0x26ef, 0x105a: 0x2704, 0x105b: 0x2712, 0x105c: 0x1eb9, 0x105d: 0x1ebe, + 0x105e: 0x1ec3, 0x105f: 0x1ed2, 0x1060: 0x1edc, 0x1061: 0x1eeb, 0x1062: 0x1ef0, 0x1063: 0x1ef5, + 0x1064: 0x1f04, 0x1065: 0x1f0e, 0x1066: 0x1f2c, 0x1067: 0x1f45, 0x1068: 0x1f4a, 0x1069: 0x1f59, + 0x106a: 0x1f5e, 0x106b: 0x1f6d, 0x106c: 0x1f77, 0x106d: 0x1f86, 0x106e: 0x1f8b, 0x106f: 0x1f90, + 0x1070: 0x1f9a, 0x1071: 0x1fd6, 0x1072: 0x1fdb, 0x1073: 0x1fe5, 0x1074: 0x1ff4, 0x1075: 0x1ff9, + 0x1076: 0x1ffe, 0x1077: 0x2008, 0x1078: 0x2017, 0x1079: 0x202b, 0x107a: 0x2030, 0x107b: 0x2035, + 0x107c: 0x2044, 0x107d: 0x2049, 0x107e: 0x2058, 0x107f: 0x205d, + // Block 0x42, offset 0x1080 + 0x1080: 0x2062, 0x1081: 0x2067, 0x1082: 0x2076, 0x1083: 0x207b, 0x1084: 0x208f, 0x1085: 0x2094, + 0x1086: 0x2099, 0x1087: 0x209e, 0x1088: 0x20a3, 0x1089: 0x20b7, 0x108a: 0x20bc, 0x108b: 0x20c1, + 0x108c: 0x20c6, 0x108d: 0x20cb, 0x108e: 0x20df, 0x108f: 0x20e4, 0x1090: 0x20e9, 0x1091: 0x20ee, + 0x1092: 0x20fd, 0x1093: 0x2102, 0x1094: 0x2107, 0x1095: 0x2116, 0x1096: 0x2120, 0x1097: 0x212f, + 0x1098: 0x2134, 0x1099: 0x4591, 0x109a: 0x2148, 0x109b: 0x214d, 0x109c: 0x2152, 0x109d: 0x2161, + 0x109e: 0x216b, 0x109f: 0x2704, 0x10a0: 0x2712, 0x10a1: 0x1ed2, 0x10a2: 0x1edc, 0x10a3: 0x1f04, + 0x10a4: 0x1f0e, 0x10a5: 0x1f2c, 0x10a6: 0x1f36, 0x10a7: 0x1f9a, 0x10a8: 0x1f9f, 0x10a9: 0x1fc2, + 0x10aa: 0x1fc7, 0x10ab: 0x209e, 0x10ac: 0x20a3, 0x10ad: 0x20c6, 0x10ae: 0x2116, 0x10af: 0x2120, + 0x10b0: 0x2161, 0x10b1: 0x216b, 0x10b2: 0x4645, 0x10b3: 0x464d, 0x10b4: 0x4655, 0x10b5: 0x2021, + 0x10b6: 0x2026, 0x10b7: 0x203a, 0x10b8: 0x203f, 0x10b9: 0x204e, 0x10ba: 0x2053, 0x10bb: 0x1fa4, + 0x10bc: 0x1fa9, 0x10bd: 0x1fcc, 0x10be: 0x1fd1, 0x10bf: 0x1f63, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x1f68, 0x10c1: 0x1f4f, 0x10c2: 0x1f54, 0x10c3: 0x1f7c, 0x10c4: 0x1f81, 0x10c5: 0x1fea, + 0x10c6: 0x1fef, 0x10c7: 0x200d, 0x10c8: 0x2012, 0x10c9: 0x1fae, 0x10ca: 0x1fb3, 0x10cb: 0x1fb8, + 0x10cc: 0x1fc2, 0x10cd: 0x1fbd, 0x10ce: 0x1f95, 0x10cf: 0x1fe0, 0x10d0: 0x2003, 0x10d1: 0x2021, + 0x10d2: 0x2026, 0x10d3: 0x203a, 0x10d4: 0x203f, 0x10d5: 0x204e, 0x10d6: 0x2053, 0x10d7: 0x1fa4, + 0x10d8: 0x1fa9, 0x10d9: 0x1fcc, 0x10da: 0x1fd1, 0x10db: 0x1f63, 0x10dc: 0x1f68, 0x10dd: 0x1f4f, + 0x10de: 0x1f54, 0x10df: 0x1f7c, 0x10e0: 0x1f81, 0x10e1: 0x1fea, 0x10e2: 0x1fef, 0x10e3: 0x200d, + 0x10e4: 0x2012, 0x10e5: 0x1fae, 0x10e6: 0x1fb3, 0x10e7: 0x1fb8, 0x10e8: 0x1fc2, 0x10e9: 0x1fbd, + 0x10ea: 0x1f95, 0x10eb: 0x1fe0, 0x10ec: 0x2003, 0x10ed: 0x1fae, 0x10ee: 0x1fb3, 0x10ef: 0x1fb8, + 0x10f0: 0x1fc2, 0x10f1: 0x1f9f, 0x10f2: 0x1fc7, 0x10f3: 0x201c, 0x10f4: 0x1f86, 0x10f5: 0x1f8b, + 0x10f6: 0x1f90, 0x10f7: 0x1fae, 0x10f8: 0x1fb3, 0x10f9: 0x1fb8, 0x10fa: 0x201c, 0x10fb: 0x202b, + 0x10fc: 0x4549, 0x10fd: 0x4549, + // Block 0x44, offset 0x1100 + 0x1110: 0x2441, 0x1111: 0x2456, + 0x1112: 0x2456, 0x1113: 0x245d, 0x1114: 0x2464, 0x1115: 0x2479, 0x1116: 0x2480, 0x1117: 0x2487, + 0x1118: 0x24aa, 0x1119: 0x24aa, 0x111a: 0x24cd, 0x111b: 0x24c6, 0x111c: 0x24e2, 0x111d: 0x24d4, + 0x111e: 0x24db, 0x111f: 0x24fe, 0x1120: 0x24fe, 0x1121: 0x24f7, 0x1122: 0x2505, 0x1123: 0x2505, + 0x1124: 0x252f, 0x1125: 0x252f, 0x1126: 0x254b, 0x1127: 0x2513, 0x1128: 0x2513, 0x1129: 0x250c, + 0x112a: 0x2521, 0x112b: 0x2521, 0x112c: 0x2528, 0x112d: 0x2528, 0x112e: 0x2552, 0x112f: 0x2560, + 0x1130: 0x2560, 0x1131: 0x2567, 0x1132: 0x2567, 0x1133: 0x256e, 0x1134: 0x2575, 0x1135: 0x257c, + 0x1136: 0x2583, 0x1137: 0x2583, 0x1138: 0x258a, 0x1139: 0x2598, 0x113a: 0x25a6, 0x113b: 0x259f, + 0x113c: 0x25ad, 0x113d: 0x25ad, 0x113e: 0x25c2, 0x113f: 0x25c9, + // Block 0x45, offset 0x1140 + 0x1140: 0x25fa, 0x1141: 0x2608, 0x1142: 0x2601, 0x1143: 0x25e5, 0x1144: 0x25e5, 0x1145: 0x260f, + 0x1146: 0x260f, 0x1147: 0x2616, 0x1148: 0x2616, 0x1149: 0x2640, 0x114a: 0x2647, 0x114b: 0x264e, + 0x114c: 0x2624, 0x114d: 0x2632, 0x114e: 0x2655, 0x114f: 0x265c, + 0x1152: 0x262b, 0x1153: 0x26b0, 0x1154: 0x26b7, 0x1155: 0x268d, 0x1156: 0x2694, 0x1157: 0x2678, + 0x1158: 0x2678, 0x1159: 0x267f, 0x115a: 0x26a9, 0x115b: 0x26a2, 0x115c: 0x26cc, 0x115d: 0x26cc, + 0x115e: 0x243a, 0x115f: 0x244f, 0x1160: 0x2448, 0x1161: 0x2472, 0x1162: 0x246b, 0x1163: 0x2495, + 0x1164: 0x248e, 0x1165: 0x24b8, 0x1166: 0x249c, 0x1167: 0x24b1, 0x1168: 0x24e9, 0x1169: 0x2536, + 0x116a: 0x251a, 0x116b: 0x2559, 0x116c: 0x25f3, 0x116d: 0x261d, 0x116e: 0x26c5, 0x116f: 0x26be, + 0x1170: 0x26d3, 0x1171: 0x266a, 0x1172: 0x25d0, 0x1173: 0x269b, 0x1174: 0x25c2, 0x1175: 0x25fa, + 0x1176: 0x2591, 0x1177: 0x25de, 0x1178: 0x2671, 0x1179: 0x2663, 0x117a: 0x25ec, 0x117b: 0x25d7, + 0x117c: 0x25ec, 0x117d: 0x2671, 0x117e: 0x24a3, 0x117f: 0x24bf, + // Block 0x46, offset 0x1180 + 0x1180: 0x2639, 0x1181: 0x25b4, 0x1182: 0x2433, 0x1183: 0x25d7, 0x1184: 0x257c, 0x1185: 0x254b, + 0x1186: 0x24f0, 0x1187: 0x2686, + 0x11b0: 0x2544, 0x11b1: 0x25bb, 0x11b2: 0x28f6, 0x11b3: 0x28ed, 0x11b4: 0x2923, 0x11b5: 0x2911, + 0x11b6: 0x28ff, 0x11b7: 0x291a, 0x11b8: 0x292c, 0x11b9: 0x253d, 0x11ba: 0x2db3, 0x11bb: 0x2c33, + 0x11bc: 0x2908, + // Block 0x47, offset 0x11c0 + 0x11d0: 0x0019, 0x11d1: 0x057e, + 0x11d2: 0x0582, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x05ba, + 0x11d8: 0x05be, 0x11d9: 0x1c8c, + 0x11e0: 0x8133, 0x11e1: 0x8133, 0x11e2: 0x8133, 0x11e3: 0x8133, + 0x11e4: 0x8133, 0x11e5: 0x8133, 0x11e6: 0x8133, 0x11e7: 0x812e, 0x11e8: 0x812e, 0x11e9: 0x812e, + 0x11ea: 0x812e, 0x11eb: 0x812e, 0x11ec: 0x812e, 0x11ed: 0x812e, 0x11ee: 0x8133, 0x11ef: 0x8133, + 0x11f0: 0x19a0, 0x11f1: 0x053a, 0x11f2: 0x0536, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011, + 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x05b2, 0x11fa: 0x05b6, 0x11fb: 0x05a6, + 0x11fc: 0x05aa, 0x11fd: 0x058e, 0x11fe: 0x0592, 0x11ff: 0x0586, + // Block 0x48, offset 0x1200 + 0x1200: 0x058a, 0x1201: 0x0596, 0x1202: 0x059a, 0x1203: 0x059e, 0x1204: 0x05a2, + 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x43aa, 0x120a: 0x43aa, 0x120b: 0x43aa, + 0x120c: 0x43aa, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x057e, + 0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003, + 0x1218: 0x053a, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x05b2, + 0x121e: 0x05b6, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b, + 0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009, + 0x122a: 0x000b, 0x122b: 0x0041, + 0x1230: 0x43eb, 0x1231: 0x456d, 0x1232: 0x43f0, 0x1234: 0x43f5, + 0x1236: 0x43fa, 0x1237: 0x4573, 0x1238: 0x43ff, 0x1239: 0x4579, 0x123a: 0x4404, 0x123b: 0x457f, + 0x123c: 0x4409, 0x123d: 0x4585, 0x123e: 0x440e, 0x123f: 0x458b, + // Block 0x49, offset 0x1240 + 0x1240: 0x0329, 0x1241: 0x454f, 0x1242: 0x454f, 0x1243: 0x4555, 0x1244: 0x4555, 0x1245: 0x4597, + 0x1246: 0x4597, 0x1247: 0x455b, 0x1248: 0x455b, 0x1249: 0x45a3, 0x124a: 0x45a3, 0x124b: 0x45a3, + 0x124c: 0x45a3, 0x124d: 0x032c, 0x124e: 0x032c, 0x124f: 0x032f, 0x1250: 0x032f, 0x1251: 0x032f, + 0x1252: 0x032f, 0x1253: 0x0332, 0x1254: 0x0332, 0x1255: 0x0335, 0x1256: 0x0335, 0x1257: 0x0335, + 0x1258: 0x0335, 0x1259: 0x0338, 0x125a: 0x0338, 0x125b: 0x0338, 0x125c: 0x0338, 0x125d: 0x033b, + 0x125e: 0x033b, 0x125f: 0x033b, 0x1260: 0x033b, 0x1261: 0x033e, 0x1262: 0x033e, 0x1263: 0x033e, + 0x1264: 0x033e, 0x1265: 0x0341, 0x1266: 0x0341, 0x1267: 0x0341, 0x1268: 0x0341, 0x1269: 0x0344, + 0x126a: 0x0344, 0x126b: 0x0347, 0x126c: 0x0347, 0x126d: 0x034a, 0x126e: 0x034a, 0x126f: 0x034d, + 0x1270: 0x034d, 0x1271: 0x0350, 0x1272: 0x0350, 0x1273: 0x0350, 0x1274: 0x0350, 0x1275: 0x0353, + 0x1276: 0x0353, 0x1277: 0x0353, 0x1278: 0x0353, 0x1279: 0x0356, 0x127a: 0x0356, 0x127b: 0x0356, + 0x127c: 0x0356, 0x127d: 0x0359, 0x127e: 0x0359, 0x127f: 0x0359, + // Block 0x4a, offset 0x1280 + 0x1280: 0x0359, 0x1281: 0x035c, 0x1282: 0x035c, 0x1283: 0x035c, 0x1284: 0x035c, 0x1285: 0x035f, + 0x1286: 0x035f, 0x1287: 0x035f, 0x1288: 0x035f, 0x1289: 0x0362, 0x128a: 0x0362, 0x128b: 0x0362, + 0x128c: 0x0362, 0x128d: 0x0365, 0x128e: 0x0365, 0x128f: 0x0365, 0x1290: 0x0365, 0x1291: 0x0368, + 0x1292: 0x0368, 0x1293: 0x0368, 0x1294: 0x0368, 0x1295: 0x036b, 0x1296: 0x036b, 0x1297: 0x036b, + 0x1298: 0x036b, 0x1299: 0x036e, 0x129a: 0x036e, 0x129b: 0x036e, 0x129c: 0x036e, 0x129d: 0x0371, + 0x129e: 0x0371, 0x129f: 0x0371, 0x12a0: 0x0371, 0x12a1: 0x0374, 0x12a2: 0x0374, 0x12a3: 0x0374, + 0x12a4: 0x0374, 0x12a5: 0x0377, 0x12a6: 0x0377, 0x12a7: 0x0377, 0x12a8: 0x0377, 0x12a9: 0x037a, + 0x12aa: 0x037a, 0x12ab: 0x037a, 0x12ac: 0x037a, 0x12ad: 0x037d, 0x12ae: 0x037d, 0x12af: 0x0380, + 0x12b0: 0x0380, 0x12b1: 0x0383, 0x12b2: 0x0383, 0x12b3: 0x0383, 0x12b4: 0x0383, 0x12b5: 0x2f41, + 0x12b6: 0x2f41, 0x12b7: 0x2f49, 0x12b8: 0x2f49, 0x12b9: 0x2f51, 0x12ba: 0x2f51, 0x12bb: 0x20b2, + 0x12bc: 0x20b2, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b, + 0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097, + 0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3, + 0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af, + 0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb, + 0x12de: 0x00bd, 0x12df: 0x056e, 0x12e0: 0x0572, 0x12e1: 0x0582, 0x12e2: 0x0596, 0x12e3: 0x059a, + 0x12e4: 0x057e, 0x12e5: 0x06a6, 0x12e6: 0x069e, 0x12e7: 0x05c2, 0x12e8: 0x05ca, 0x12e9: 0x05d2, + 0x12ea: 0x05da, 0x12eb: 0x05e2, 0x12ec: 0x0666, 0x12ed: 0x066e, 0x12ee: 0x0676, 0x12ef: 0x061a, + 0x12f0: 0x06aa, 0x12f1: 0x05c6, 0x12f2: 0x05ce, 0x12f3: 0x05d6, 0x12f4: 0x05de, 0x12f5: 0x05e6, + 0x12f6: 0x05ea, 0x12f7: 0x05ee, 0x12f8: 0x05f2, 0x12f9: 0x05f6, 0x12fa: 0x05fa, 0x12fb: 0x05fe, + 0x12fc: 0x0602, 0x12fd: 0x0606, 0x12fe: 0x060a, 0x12ff: 0x060e, + // Block 0x4c, offset 0x1300 + 0x1300: 0x0612, 0x1301: 0x0616, 0x1302: 0x061e, 0x1303: 0x0622, 0x1304: 0x0626, 0x1305: 0x062a, + 0x1306: 0x062e, 0x1307: 0x0632, 0x1308: 0x0636, 0x1309: 0x063a, 0x130a: 0x063e, 0x130b: 0x0642, + 0x130c: 0x0646, 0x130d: 0x064a, 0x130e: 0x064e, 0x130f: 0x0652, 0x1310: 0x0656, 0x1311: 0x065a, + 0x1312: 0x065e, 0x1313: 0x0662, 0x1314: 0x066a, 0x1315: 0x0672, 0x1316: 0x067a, 0x1317: 0x067e, + 0x1318: 0x0682, 0x1319: 0x0686, 0x131a: 0x068a, 0x131b: 0x068e, 0x131c: 0x0692, 0x131d: 0x06a2, + 0x131e: 0x4bb9, 0x131f: 0x4bbf, 0x1320: 0x04b6, 0x1321: 0x0406, 0x1322: 0x040a, 0x1323: 0x4b7c, + 0x1324: 0x040e, 0x1325: 0x4b82, 0x1326: 0x4b88, 0x1327: 0x0412, 0x1328: 0x0416, 0x1329: 0x041a, + 0x132a: 0x4b8e, 0x132b: 0x4b94, 0x132c: 0x4b9a, 0x132d: 0x4ba0, 0x132e: 0x4ba6, 0x132f: 0x4bac, + 0x1330: 0x045a, 0x1331: 0x041e, 0x1332: 0x0422, 0x1333: 0x0426, 0x1334: 0x046e, 0x1335: 0x042a, + 0x1336: 0x042e, 0x1337: 0x0432, 0x1338: 0x0436, 0x1339: 0x043a, 0x133a: 0x043e, 0x133b: 0x0442, + 0x133c: 0x0446, 0x133d: 0x044a, 0x133e: 0x044e, + // Block 0x4d, offset 0x1340 + 0x1342: 0x4afe, 0x1343: 0x4b04, 0x1344: 0x4b0a, 0x1345: 0x4b10, + 0x1346: 0x4b16, 0x1347: 0x4b1c, 0x134a: 0x4b22, 0x134b: 0x4b28, + 0x134c: 0x4b2e, 0x134d: 0x4b34, 0x134e: 0x4b3a, 0x134f: 0x4b40, + 0x1352: 0x4b46, 0x1353: 0x4b4c, 0x1354: 0x4b52, 0x1355: 0x4b58, 0x1356: 0x4b5e, 0x1357: 0x4b64, + 0x135a: 0x4b6a, 0x135b: 0x4b70, 0x135c: 0x4b76, + 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x43a5, + 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x053e, 0x1368: 0x0562, 0x1369: 0x0542, + 0x136a: 0x0546, 0x136b: 0x054a, 0x136c: 0x054e, 0x136d: 0x0566, 0x136e: 0x056a, + // Block 0x4e, offset 0x1380 + 0x1381: 0x01f1, 0x1382: 0x01f4, 0x1383: 0x00d4, 0x1384: 0x01be, 0x1385: 0x010d, + 0x1387: 0x01d3, 0x1388: 0x174e, 0x1389: 0x01d9, 0x138a: 0x01d6, 0x138b: 0x0116, + 0x138c: 0x0119, 0x138d: 0x0526, 0x138e: 0x011c, 0x138f: 0x0128, 0x1390: 0x01e5, 0x1391: 0x013a, + 0x1392: 0x0134, 0x1393: 0x012e, 0x1394: 0x01c1, 0x1395: 0x00e0, 0x1396: 0x01c4, 0x1397: 0x0143, + 0x1398: 0x0194, 0x1399: 0x01e8, 0x139a: 0x01eb, 0x139b: 0x0152, 0x139c: 0x1756, 0x139d: 0x1742, + 0x139e: 0x0158, 0x139f: 0x175b, 0x13a0: 0x01a9, 0x13a1: 0x1760, 0x13a2: 0x00da, 0x13a3: 0x0170, + 0x13a4: 0x0173, 0x13a5: 0x00a3, 0x13a6: 0x017c, 0x13a7: 0x1765, 0x13a8: 0x0182, 0x13a9: 0x0185, + 0x13aa: 0x0188, 0x13ab: 0x01e2, 0x13ac: 0x01dc, 0x13ad: 0x1752, 0x13ae: 0x01df, 0x13af: 0x0197, + 0x13b0: 0x0576, 0x13b2: 0x01ac, 0x13b3: 0x01cd, 0x13b4: 0x01d0, 0x13b5: 0x01bb, + 0x13b6: 0x00f5, 0x13b7: 0x00f8, 0x13b8: 0x00fb, 0x13b9: 0x176a, 0x13ba: 0x176f, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x0063, 0x13c1: 0x0065, 0x13c2: 0x0067, 0x13c3: 0x0069, 0x13c4: 0x006b, 0x13c5: 0x006d, + 0x13c6: 0x006f, 0x13c7: 0x0071, 0x13c8: 0x0073, 0x13c9: 0x0075, 0x13ca: 0x0083, 0x13cb: 0x0085, + 0x13cc: 0x0087, 0x13cd: 0x0089, 0x13ce: 0x008b, 0x13cf: 0x008d, 0x13d0: 0x008f, 0x13d1: 0x0091, + 0x13d2: 0x0093, 0x13d3: 0x0095, 0x13d4: 0x0097, 0x13d5: 0x0099, 0x13d6: 0x009b, 0x13d7: 0x009d, + 0x13d8: 0x009f, 0x13d9: 0x00a1, 0x13da: 0x00a3, 0x13db: 0x00a5, 0x13dc: 0x00a7, 0x13dd: 0x00a9, + 0x13de: 0x00ab, 0x13df: 0x00ad, 0x13e0: 0x00af, 0x13e1: 0x00b1, 0x13e2: 0x00b3, 0x13e3: 0x00b5, + 0x13e4: 0x00e3, 0x13e5: 0x0101, 0x13e8: 0x01f7, 0x13e9: 0x01fa, + 0x13ea: 0x01fd, 0x13eb: 0x0200, 0x13ec: 0x0203, 0x13ed: 0x0206, 0x13ee: 0x0209, 0x13ef: 0x020c, + 0x13f0: 0x020f, 0x13f1: 0x0212, 0x13f2: 0x0215, 0x13f3: 0x0218, 0x13f4: 0x021b, 0x13f5: 0x021e, + 0x13f6: 0x0221, 0x13f7: 0x0224, 0x13f8: 0x0227, 0x13f9: 0x020c, 0x13fa: 0x022a, 0x13fb: 0x022d, + 0x13fc: 0x0230, 0x13fd: 0x0233, 0x13fe: 0x0236, 0x13ff: 0x0239, + // Block 0x50, offset 0x1400 + 0x1400: 0x0281, 0x1401: 0x0284, 0x1402: 0x0287, 0x1403: 0x0552, 0x1404: 0x024b, 0x1405: 0x0254, + 0x1406: 0x025a, 0x1407: 0x027e, 0x1408: 0x026f, 0x1409: 0x026c, 0x140a: 0x028a, 0x140b: 0x028d, + 0x140e: 0x0021, 0x140f: 0x0023, 0x1410: 0x0025, 0x1411: 0x0027, + 0x1412: 0x0029, 0x1413: 0x002b, 0x1414: 0x002d, 0x1415: 0x002f, 0x1416: 0x0031, 0x1417: 0x0033, + 0x1418: 0x0021, 0x1419: 0x0023, 0x141a: 0x0025, 0x141b: 0x0027, 0x141c: 0x0029, 0x141d: 0x002b, + 0x141e: 0x002d, 0x141f: 0x002f, 0x1420: 0x0031, 0x1421: 0x0033, 0x1422: 0x0021, 0x1423: 0x0023, + 0x1424: 0x0025, 0x1425: 0x0027, 0x1426: 0x0029, 0x1427: 0x002b, 0x1428: 0x002d, 0x1429: 0x002f, + 0x142a: 0x0031, 0x142b: 0x0033, 0x142c: 0x0021, 0x142d: 0x0023, 0x142e: 0x0025, 0x142f: 0x0027, + 0x1430: 0x0029, 0x1431: 0x002b, 0x1432: 0x002d, 0x1433: 0x002f, 0x1434: 0x0031, 0x1435: 0x0033, + 0x1436: 0x0021, 0x1437: 0x0023, 0x1438: 0x0025, 0x1439: 0x0027, 0x143a: 0x0029, 0x143b: 0x002b, + 0x143c: 0x002d, 0x143d: 0x002f, 0x143e: 0x0031, 0x143f: 0x0033, + // Block 0x51, offset 0x1440 + 0x1440: 0x8133, 0x1441: 0x8133, 0x1442: 0x8133, 0x1443: 0x8133, 0x1444: 0x8133, 0x1445: 0x8133, + 0x1446: 0x8133, 0x1448: 0x8133, 0x1449: 0x8133, 0x144a: 0x8133, 0x144b: 0x8133, + 0x144c: 0x8133, 0x144d: 0x8133, 0x144e: 0x8133, 0x144f: 0x8133, 0x1450: 0x8133, 0x1451: 0x8133, + 0x1452: 0x8133, 0x1453: 0x8133, 0x1454: 0x8133, 0x1455: 0x8133, 0x1456: 0x8133, 0x1457: 0x8133, + 0x1458: 0x8133, 0x145b: 0x8133, 0x145c: 0x8133, 0x145d: 0x8133, + 0x145e: 0x8133, 0x145f: 0x8133, 0x1460: 0x8133, 0x1461: 0x8133, 0x1463: 0x8133, + 0x1464: 0x8133, 0x1466: 0x8133, 0x1467: 0x8133, 0x1468: 0x8133, 0x1469: 0x8133, + 0x146a: 0x8133, + 0x1470: 0x0290, 0x1471: 0x0293, 0x1472: 0x0296, 0x1473: 0x0299, 0x1474: 0x029c, 0x1475: 0x029f, + 0x1476: 0x02a2, 0x1477: 0x02a5, 0x1478: 0x02a8, 0x1479: 0x02ab, 0x147a: 0x02ae, 0x147b: 0x02b1, + 0x147c: 0x02b7, 0x147d: 0x02ba, 0x147e: 0x02bd, 0x147f: 0x02c0, + // Block 0x52, offset 0x1480 + 0x1480: 0x02c3, 0x1481: 0x02c6, 0x1482: 0x02c9, 0x1483: 0x02cc, 0x1484: 0x02cf, 0x1485: 0x02d2, + 0x1486: 0x02d5, 0x1487: 0x02db, 0x1488: 0x02e1, 0x1489: 0x02e4, 0x148a: 0x1736, 0x148b: 0x0302, + 0x148c: 0x02ea, 0x148d: 0x02ed, 0x148e: 0x0305, 0x148f: 0x02f9, 0x1490: 0x02ff, 0x1491: 0x0290, + 0x1492: 0x0293, 0x1493: 0x0296, 0x1494: 0x0299, 0x1495: 0x029c, 0x1496: 0x029f, 0x1497: 0x02a2, + 0x1498: 0x02a5, 0x1499: 0x02a8, 0x149a: 0x02ab, 0x149b: 0x02ae, 0x149c: 0x02b7, 0x149d: 0x02ba, + 0x149e: 0x02c0, 0x149f: 0x02c6, 0x14a0: 0x02c9, 0x14a1: 0x02cc, 0x14a2: 0x02cf, 0x14a3: 0x02d2, + 0x14a4: 0x02d5, 0x14a5: 0x02d8, 0x14a6: 0x02db, 0x14a7: 0x02f3, 0x14a8: 0x02ea, 0x14a9: 0x02e7, + 0x14aa: 0x02f0, 0x14ab: 0x02f6, 0x14ac: 0x1732, 0x14ad: 0x02fc, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x032c, 0x14c1: 0x032f, 0x14c2: 0x033b, 0x14c3: 0x0344, 0x14c5: 0x037d, + 0x14c6: 0x034d, 0x14c7: 0x033e, 0x14c8: 0x035c, 0x14c9: 0x0383, 0x14ca: 0x036e, 0x14cb: 0x0371, + 0x14cc: 0x0374, 0x14cd: 0x0377, 0x14ce: 0x0350, 0x14cf: 0x0362, 0x14d0: 0x0368, 0x14d1: 0x0356, + 0x14d2: 0x036b, 0x14d3: 0x034a, 0x14d4: 0x0353, 0x14d5: 0x0335, 0x14d6: 0x0338, 0x14d7: 0x0341, + 0x14d8: 0x0347, 0x14d9: 0x0359, 0x14da: 0x035f, 0x14db: 0x0365, 0x14dc: 0x0386, 0x14dd: 0x03d7, + 0x14de: 0x03bf, 0x14df: 0x0389, 0x14e1: 0x032f, 0x14e2: 0x033b, + 0x14e4: 0x037a, 0x14e7: 0x033e, 0x14e9: 0x0383, + 0x14ea: 0x036e, 0x14eb: 0x0371, 0x14ec: 0x0374, 0x14ed: 0x0377, 0x14ee: 0x0350, 0x14ef: 0x0362, + 0x14f0: 0x0368, 0x14f1: 0x0356, 0x14f2: 0x036b, 0x14f4: 0x0353, 0x14f5: 0x0335, + 0x14f6: 0x0338, 0x14f7: 0x0341, 0x14f9: 0x0359, 0x14fb: 0x0365, + // Block 0x54, offset 0x1500 + 0x1502: 0x033b, + 0x1507: 0x033e, 0x1509: 0x0383, 0x150b: 0x0371, + 0x150d: 0x0377, 0x150e: 0x0350, 0x150f: 0x0362, 0x1511: 0x0356, + 0x1512: 0x036b, 0x1514: 0x0353, 0x1517: 0x0341, + 0x1519: 0x0359, 0x151b: 0x0365, 0x151d: 0x03d7, + 0x151f: 0x0389, 0x1521: 0x032f, 0x1522: 0x033b, + 0x1524: 0x037a, 0x1527: 0x033e, 0x1528: 0x035c, 0x1529: 0x0383, + 0x152a: 0x036e, 0x152c: 0x0374, 0x152d: 0x0377, 0x152e: 0x0350, 0x152f: 0x0362, + 0x1530: 0x0368, 0x1531: 0x0356, 0x1532: 0x036b, 0x1534: 0x0353, 0x1535: 0x0335, + 0x1536: 0x0338, 0x1537: 0x0341, 0x1539: 0x0359, 0x153a: 0x035f, 0x153b: 0x0365, + 0x153c: 0x0386, 0x153e: 0x03bf, + // Block 0x55, offset 0x1540 + 0x1540: 0x032c, 0x1541: 0x032f, 0x1542: 0x033b, 0x1543: 0x0344, 0x1544: 0x037a, 0x1545: 0x037d, + 0x1546: 0x034d, 0x1547: 0x033e, 0x1548: 0x035c, 0x1549: 0x0383, 0x154b: 0x0371, + 0x154c: 0x0374, 0x154d: 0x0377, 0x154e: 0x0350, 0x154f: 0x0362, 0x1550: 0x0368, 0x1551: 0x0356, + 0x1552: 0x036b, 0x1553: 0x034a, 0x1554: 0x0353, 0x1555: 0x0335, 0x1556: 0x0338, 0x1557: 0x0341, + 0x1558: 0x0347, 0x1559: 0x0359, 0x155a: 0x035f, 0x155b: 0x0365, + 0x1561: 0x032f, 0x1562: 0x033b, 0x1563: 0x0344, + 0x1565: 0x037d, 0x1566: 0x034d, 0x1567: 0x033e, 0x1568: 0x035c, 0x1569: 0x0383, + 0x156b: 0x0371, 0x156c: 0x0374, 0x156d: 0x0377, 0x156e: 0x0350, 0x156f: 0x0362, + 0x1570: 0x0368, 0x1571: 0x0356, 0x1572: 0x036b, 0x1573: 0x034a, 0x1574: 0x0353, 0x1575: 0x0335, + 0x1576: 0x0338, 0x1577: 0x0341, 0x1578: 0x0347, 0x1579: 0x0359, 0x157a: 0x035f, 0x157b: 0x0365, + // Block 0x56, offset 0x1580 + 0x1580: 0x19a6, 0x1581: 0x19a3, 0x1582: 0x19a9, 0x1583: 0x19cd, 0x1584: 0x19f1, 0x1585: 0x1a15, + 0x1586: 0x1a39, 0x1587: 0x1a42, 0x1588: 0x1a48, 0x1589: 0x1a4e, 0x158a: 0x1a54, + 0x1590: 0x1bbc, 0x1591: 0x1bc0, + 0x1592: 0x1bc4, 0x1593: 0x1bc8, 0x1594: 0x1bcc, 0x1595: 0x1bd0, 0x1596: 0x1bd4, 0x1597: 0x1bd8, + 0x1598: 0x1bdc, 0x1599: 0x1be0, 0x159a: 0x1be4, 0x159b: 0x1be8, 0x159c: 0x1bec, 0x159d: 0x1bf0, + 0x159e: 0x1bf4, 0x159f: 0x1bf8, 0x15a0: 0x1bfc, 0x15a1: 0x1c00, 0x15a2: 0x1c04, 0x15a3: 0x1c08, + 0x15a4: 0x1c0c, 0x15a5: 0x1c10, 0x15a6: 0x1c14, 0x15a7: 0x1c18, 0x15a8: 0x1c1c, 0x15a9: 0x1c20, + 0x15aa: 0x2855, 0x15ab: 0x0047, 0x15ac: 0x0065, 0x15ad: 0x1a69, 0x15ae: 0x1ae1, + 0x15b0: 0x0043, 0x15b1: 0x0045, 0x15b2: 0x0047, 0x15b3: 0x0049, 0x15b4: 0x004b, 0x15b5: 0x004d, + 0x15b6: 0x004f, 0x15b7: 0x0051, 0x15b8: 0x0053, 0x15b9: 0x0055, 0x15ba: 0x0057, 0x15bb: 0x0059, + 0x15bc: 0x005b, 0x15bd: 0x005d, 0x15be: 0x005f, 0x15bf: 0x0061, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x27dd, 0x15c1: 0x27f2, 0x15c2: 0x05fe, + 0x15d0: 0x0d0a, 0x15d1: 0x0b42, + 0x15d2: 0x09ce, 0x15d3: 0x4705, 0x15d4: 0x0816, 0x15d5: 0x0aea, 0x15d6: 0x142a, 0x15d7: 0x0afa, + 0x15d8: 0x0822, 0x15d9: 0x0dd2, 0x15da: 0x0faa, 0x15db: 0x0daa, 0x15dc: 0x0922, 0x15dd: 0x0c66, + 0x15de: 0x08ba, 0x15df: 0x0db2, 0x15e0: 0x090e, 0x15e1: 0x1212, 0x15e2: 0x107e, 0x15e3: 0x1486, + 0x15e4: 0x0ace, 0x15e5: 0x0a06, 0x15e6: 0x0f5e, 0x15e7: 0x0d16, 0x15e8: 0x0d42, 0x15e9: 0x07ba, + 0x15ea: 0x07c6, 0x15eb: 0x1506, 0x15ec: 0x0bd6, 0x15ed: 0x07e2, 0x15ee: 0x09ea, 0x15ef: 0x0d36, + 0x15f0: 0x14ae, 0x15f1: 0x0d0e, 0x15f2: 0x116a, 0x15f3: 0x11a6, 0x15f4: 0x09f2, 0x15f5: 0x0f3e, + 0x15f6: 0x0e06, 0x15f7: 0x0e02, 0x15f8: 0x1092, 0x15f9: 0x0926, 0x15fa: 0x0a52, 0x15fb: 0x153e, + // Block 0x58, offset 0x1600 + 0x1600: 0x07f6, 0x1601: 0x07ee, 0x1602: 0x07fe, 0x1603: 0x1774, 0x1604: 0x0842, 0x1605: 0x0852, + 0x1606: 0x0856, 0x1607: 0x085e, 0x1608: 0x0866, 0x1609: 0x086a, 0x160a: 0x0876, 0x160b: 0x086e, + 0x160c: 0x06ae, 0x160d: 0x1788, 0x160e: 0x088a, 0x160f: 0x088e, 0x1610: 0x0892, 0x1611: 0x08ae, + 0x1612: 0x1779, 0x1613: 0x06b2, 0x1614: 0x089a, 0x1615: 0x08ba, 0x1616: 0x1783, 0x1617: 0x08ca, + 0x1618: 0x08d2, 0x1619: 0x0832, 0x161a: 0x08da, 0x161b: 0x08de, 0x161c: 0x195e, 0x161d: 0x08fa, + 0x161e: 0x0902, 0x161f: 0x06ba, 0x1620: 0x091a, 0x1621: 0x091e, 0x1622: 0x0926, 0x1623: 0x092a, + 0x1624: 0x06be, 0x1625: 0x0942, 0x1626: 0x0946, 0x1627: 0x0952, 0x1628: 0x095e, 0x1629: 0x0962, + 0x162a: 0x0966, 0x162b: 0x096e, 0x162c: 0x098e, 0x162d: 0x0992, 0x162e: 0x099a, 0x162f: 0x09aa, + 0x1630: 0x09b2, 0x1631: 0x09b6, 0x1632: 0x09b6, 0x1633: 0x09b6, 0x1634: 0x1797, 0x1635: 0x0f8e, + 0x1636: 0x09ca, 0x1637: 0x09d2, 0x1638: 0x179c, 0x1639: 0x09de, 0x163a: 0x09e6, 0x163b: 0x09ee, + 0x163c: 0x0a16, 0x163d: 0x0a02, 0x163e: 0x0a0e, 0x163f: 0x0a12, + // Block 0x59, offset 0x1640 + 0x1640: 0x0a1a, 0x1641: 0x0a22, 0x1642: 0x0a26, 0x1643: 0x0a2e, 0x1644: 0x0a36, 0x1645: 0x0a3a, + 0x1646: 0x0a3a, 0x1647: 0x0a42, 0x1648: 0x0a4a, 0x1649: 0x0a4e, 0x164a: 0x0a5a, 0x164b: 0x0a7e, + 0x164c: 0x0a62, 0x164d: 0x0a82, 0x164e: 0x0a66, 0x164f: 0x0a6e, 0x1650: 0x0906, 0x1651: 0x0aca, + 0x1652: 0x0a92, 0x1653: 0x0a96, 0x1654: 0x0a9a, 0x1655: 0x0a8e, 0x1656: 0x0aa2, 0x1657: 0x0a9e, + 0x1658: 0x0ab6, 0x1659: 0x17a1, 0x165a: 0x0ad2, 0x165b: 0x0ad6, 0x165c: 0x0ade, 0x165d: 0x0aea, + 0x165e: 0x0af2, 0x165f: 0x0b0e, 0x1660: 0x17a6, 0x1661: 0x17ab, 0x1662: 0x0b1a, 0x1663: 0x0b1e, + 0x1664: 0x0b22, 0x1665: 0x0b16, 0x1666: 0x0b2a, 0x1667: 0x06c2, 0x1668: 0x06c6, 0x1669: 0x0b32, + 0x166a: 0x0b3a, 0x166b: 0x0b3a, 0x166c: 0x17b0, 0x166d: 0x0b56, 0x166e: 0x0b5a, 0x166f: 0x0b5e, + 0x1670: 0x0b66, 0x1671: 0x17b5, 0x1672: 0x0b6e, 0x1673: 0x0b72, 0x1674: 0x0c4a, 0x1675: 0x0b7a, + 0x1676: 0x06ca, 0x1677: 0x0b86, 0x1678: 0x0b96, 0x1679: 0x0ba2, 0x167a: 0x0b9e, 0x167b: 0x17bf, + 0x167c: 0x0baa, 0x167d: 0x17c4, 0x167e: 0x0bb6, 0x167f: 0x0bb2, + // Block 0x5a, offset 0x1680 + 0x1680: 0x0bba, 0x1681: 0x0bca, 0x1682: 0x0bce, 0x1683: 0x06ce, 0x1684: 0x0bde, 0x1685: 0x0be6, + 0x1686: 0x0bea, 0x1687: 0x0bee, 0x1688: 0x06d2, 0x1689: 0x17c9, 0x168a: 0x06d6, 0x168b: 0x0c0a, + 0x168c: 0x0c0e, 0x168d: 0x0c12, 0x168e: 0x0c1a, 0x168f: 0x1990, 0x1690: 0x0c32, 0x1691: 0x17d3, + 0x1692: 0x17d3, 0x1693: 0x12d2, 0x1694: 0x0c42, 0x1695: 0x0c42, 0x1696: 0x06da, 0x1697: 0x17f6, + 0x1698: 0x18c8, 0x1699: 0x0c52, 0x169a: 0x0c5a, 0x169b: 0x06de, 0x169c: 0x0c6e, 0x169d: 0x0c7e, + 0x169e: 0x0c82, 0x169f: 0x0c8a, 0x16a0: 0x0c9a, 0x16a1: 0x06e6, 0x16a2: 0x06e2, 0x16a3: 0x0c9e, + 0x16a4: 0x17d8, 0x16a5: 0x0ca2, 0x16a6: 0x0cb6, 0x16a7: 0x0cba, 0x16a8: 0x0cbe, 0x16a9: 0x0cba, + 0x16aa: 0x0cca, 0x16ab: 0x0cce, 0x16ac: 0x0cde, 0x16ad: 0x0cd6, 0x16ae: 0x0cda, 0x16af: 0x0ce2, + 0x16b0: 0x0ce6, 0x16b1: 0x0cea, 0x16b2: 0x0cf6, 0x16b3: 0x0cfa, 0x16b4: 0x0d12, 0x16b5: 0x0d1a, + 0x16b6: 0x0d2a, 0x16b7: 0x0d3e, 0x16b8: 0x17e7, 0x16b9: 0x0d3a, 0x16ba: 0x0d2e, 0x16bb: 0x0d46, + 0x16bc: 0x0d4e, 0x16bd: 0x0d62, 0x16be: 0x17ec, 0x16bf: 0x0d6a, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x0d5e, 0x16c1: 0x0d56, 0x16c2: 0x06ea, 0x16c3: 0x0d72, 0x16c4: 0x0d7a, 0x16c5: 0x0d82, + 0x16c6: 0x0d76, 0x16c7: 0x06ee, 0x16c8: 0x0d92, 0x16c9: 0x0d9a, 0x16ca: 0x17f1, 0x16cb: 0x0dc6, + 0x16cc: 0x0dfa, 0x16cd: 0x0dd6, 0x16ce: 0x06fa, 0x16cf: 0x0de2, 0x16d0: 0x06f6, 0x16d1: 0x06f2, + 0x16d2: 0x08be, 0x16d3: 0x08c2, 0x16d4: 0x0dfe, 0x16d5: 0x0de6, 0x16d6: 0x12a6, 0x16d7: 0x075e, + 0x16d8: 0x0e0a, 0x16d9: 0x0e0e, 0x16da: 0x0e12, 0x16db: 0x0e26, 0x16dc: 0x0e1e, 0x16dd: 0x180a, + 0x16de: 0x06fe, 0x16df: 0x0e3a, 0x16e0: 0x0e2e, 0x16e1: 0x0e4a, 0x16e2: 0x0e52, 0x16e3: 0x1814, + 0x16e4: 0x0e56, 0x16e5: 0x0e42, 0x16e6: 0x0e5e, 0x16e7: 0x0702, 0x16e8: 0x0e62, 0x16e9: 0x0e66, + 0x16ea: 0x0e6a, 0x16eb: 0x0e76, 0x16ec: 0x1819, 0x16ed: 0x0e7e, 0x16ee: 0x0706, 0x16ef: 0x0e8a, + 0x16f0: 0x181e, 0x16f1: 0x0e8e, 0x16f2: 0x070a, 0x16f3: 0x0e9a, 0x16f4: 0x0ea6, 0x16f5: 0x0eb2, + 0x16f6: 0x0eb6, 0x16f7: 0x1823, 0x16f8: 0x17ba, 0x16f9: 0x1828, 0x16fa: 0x0ed6, 0x16fb: 0x182d, + 0x16fc: 0x0ee2, 0x16fd: 0x0eea, 0x16fe: 0x0eda, 0x16ff: 0x0ef6, + // Block 0x5c, offset 0x1700 + 0x1700: 0x0f06, 0x1701: 0x0f16, 0x1702: 0x0f0a, 0x1703: 0x0f0e, 0x1704: 0x0f1a, 0x1705: 0x0f1e, + 0x1706: 0x1832, 0x1707: 0x0f02, 0x1708: 0x0f36, 0x1709: 0x0f3a, 0x170a: 0x070e, 0x170b: 0x0f4e, + 0x170c: 0x0f4a, 0x170d: 0x1837, 0x170e: 0x0f2e, 0x170f: 0x0f6a, 0x1710: 0x183c, 0x1711: 0x1841, + 0x1712: 0x0f6e, 0x1713: 0x0f82, 0x1714: 0x0f7e, 0x1715: 0x0f7a, 0x1716: 0x0712, 0x1717: 0x0f86, + 0x1718: 0x0f96, 0x1719: 0x0f92, 0x171a: 0x0f9e, 0x171b: 0x177e, 0x171c: 0x0fae, 0x171d: 0x1846, + 0x171e: 0x0fba, 0x171f: 0x1850, 0x1720: 0x0fce, 0x1721: 0x0fda, 0x1722: 0x0fee, 0x1723: 0x1855, + 0x1724: 0x1002, 0x1725: 0x1006, 0x1726: 0x185a, 0x1727: 0x185f, 0x1728: 0x1022, 0x1729: 0x1032, + 0x172a: 0x0716, 0x172b: 0x1036, 0x172c: 0x071a, 0x172d: 0x071a, 0x172e: 0x104e, 0x172f: 0x1052, + 0x1730: 0x105a, 0x1731: 0x105e, 0x1732: 0x106a, 0x1733: 0x071e, 0x1734: 0x1082, 0x1735: 0x1864, + 0x1736: 0x109e, 0x1737: 0x1869, 0x1738: 0x10aa, 0x1739: 0x17ce, 0x173a: 0x10ba, 0x173b: 0x186e, + 0x173c: 0x1873, 0x173d: 0x1878, 0x173e: 0x0722, 0x173f: 0x0726, + // Block 0x5d, offset 0x1740 + 0x1740: 0x10f2, 0x1741: 0x1882, 0x1742: 0x187d, 0x1743: 0x1887, 0x1744: 0x188c, 0x1745: 0x10fa, + 0x1746: 0x10fe, 0x1747: 0x10fe, 0x1748: 0x1106, 0x1749: 0x072e, 0x174a: 0x110a, 0x174b: 0x0732, + 0x174c: 0x0736, 0x174d: 0x1896, 0x174e: 0x111e, 0x174f: 0x1126, 0x1750: 0x1132, 0x1751: 0x073a, + 0x1752: 0x189b, 0x1753: 0x1156, 0x1754: 0x18a0, 0x1755: 0x18a5, 0x1756: 0x1176, 0x1757: 0x118e, + 0x1758: 0x073e, 0x1759: 0x1196, 0x175a: 0x119a, 0x175b: 0x119e, 0x175c: 0x18aa, 0x175d: 0x18af, + 0x175e: 0x18af, 0x175f: 0x11b6, 0x1760: 0x0742, 0x1761: 0x18b4, 0x1762: 0x11ca, 0x1763: 0x11ce, + 0x1764: 0x0746, 0x1765: 0x18b9, 0x1766: 0x11ea, 0x1767: 0x074a, 0x1768: 0x11fa, 0x1769: 0x11f2, + 0x176a: 0x1202, 0x176b: 0x18c3, 0x176c: 0x121a, 0x176d: 0x074e, 0x176e: 0x1226, 0x176f: 0x122e, + 0x1770: 0x123e, 0x1771: 0x0752, 0x1772: 0x18cd, 0x1773: 0x18d2, 0x1774: 0x0756, 0x1775: 0x18d7, + 0x1776: 0x1256, 0x1777: 0x18dc, 0x1778: 0x1262, 0x1779: 0x126e, 0x177a: 0x1276, 0x177b: 0x18e1, + 0x177c: 0x18e6, 0x177d: 0x128a, 0x177e: 0x18eb, 0x177f: 0x1292, + // Block 0x5e, offset 0x1780 + 0x1780: 0x17fb, 0x1781: 0x075a, 0x1782: 0x12aa, 0x1783: 0x12ae, 0x1784: 0x0762, 0x1785: 0x12b2, + 0x1786: 0x0b2e, 0x1787: 0x18f0, 0x1788: 0x18f5, 0x1789: 0x1800, 0x178a: 0x1805, 0x178b: 0x12d2, + 0x178c: 0x12d6, 0x178d: 0x14ee, 0x178e: 0x0766, 0x178f: 0x1302, 0x1790: 0x12fe, 0x1791: 0x1306, + 0x1792: 0x093a, 0x1793: 0x130a, 0x1794: 0x130e, 0x1795: 0x1312, 0x1796: 0x131a, 0x1797: 0x18fa, + 0x1798: 0x1316, 0x1799: 0x131e, 0x179a: 0x1332, 0x179b: 0x1336, 0x179c: 0x1322, 0x179d: 0x133a, + 0x179e: 0x134e, 0x179f: 0x1362, 0x17a0: 0x132e, 0x17a1: 0x1342, 0x17a2: 0x1346, 0x17a3: 0x134a, + 0x17a4: 0x18ff, 0x17a5: 0x1909, 0x17a6: 0x1904, 0x17a7: 0x076a, 0x17a8: 0x136a, 0x17a9: 0x136e, + 0x17aa: 0x1376, 0x17ab: 0x191d, 0x17ac: 0x137a, 0x17ad: 0x190e, 0x17ae: 0x076e, 0x17af: 0x0772, + 0x17b0: 0x1913, 0x17b1: 0x1918, 0x17b2: 0x0776, 0x17b3: 0x139a, 0x17b4: 0x139e, 0x17b5: 0x13a2, + 0x17b6: 0x13a6, 0x17b7: 0x13b2, 0x17b8: 0x13ae, 0x17b9: 0x13ba, 0x17ba: 0x13b6, 0x17bb: 0x13c6, + 0x17bc: 0x13be, 0x17bd: 0x13c2, 0x17be: 0x13ca, 0x17bf: 0x077a, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x13d2, 0x17c1: 0x13d6, 0x17c2: 0x077e, 0x17c3: 0x13e6, 0x17c4: 0x13ea, 0x17c5: 0x1922, + 0x17c6: 0x13f6, 0x17c7: 0x13fa, 0x17c8: 0x0782, 0x17c9: 0x1406, 0x17ca: 0x06b6, 0x17cb: 0x1927, + 0x17cc: 0x192c, 0x17cd: 0x0786, 0x17ce: 0x078a, 0x17cf: 0x1432, 0x17d0: 0x144a, 0x17d1: 0x1466, + 0x17d2: 0x1476, 0x17d3: 0x1931, 0x17d4: 0x148a, 0x17d5: 0x148e, 0x17d6: 0x14a6, 0x17d7: 0x14b2, + 0x17d8: 0x193b, 0x17d9: 0x178d, 0x17da: 0x14be, 0x17db: 0x14ba, 0x17dc: 0x14c6, 0x17dd: 0x1792, + 0x17de: 0x14d2, 0x17df: 0x14de, 0x17e0: 0x1940, 0x17e1: 0x1945, 0x17e2: 0x151e, 0x17e3: 0x152a, + 0x17e4: 0x1532, 0x17e5: 0x194a, 0x17e6: 0x1536, 0x17e7: 0x1562, 0x17e8: 0x156e, 0x17e9: 0x1572, + 0x17ea: 0x156a, 0x17eb: 0x157e, 0x17ec: 0x1582, 0x17ed: 0x194f, 0x17ee: 0x158e, 0x17ef: 0x078e, + 0x17f0: 0x1596, 0x17f1: 0x1954, 0x17f2: 0x0792, 0x17f3: 0x15ce, 0x17f4: 0x0bbe, 0x17f5: 0x15e6, + 0x17f6: 0x1959, 0x17f7: 0x1963, 0x17f8: 0x0796, 0x17f9: 0x079a, 0x17fa: 0x160e, 0x17fb: 0x1968, + 0x17fc: 0x079e, 0x17fd: 0x196d, 0x17fe: 0x1626, 0x17ff: 0x1626, + // Block 0x60, offset 0x1800 + 0x1800: 0x162e, 0x1801: 0x1972, 0x1802: 0x1646, 0x1803: 0x07a2, 0x1804: 0x1656, 0x1805: 0x1662, + 0x1806: 0x166a, 0x1807: 0x1672, 0x1808: 0x07a6, 0x1809: 0x1977, 0x180a: 0x1686, 0x180b: 0x16a2, + 0x180c: 0x16ae, 0x180d: 0x07aa, 0x180e: 0x07ae, 0x180f: 0x16b2, 0x1810: 0x197c, 0x1811: 0x07b2, + 0x1812: 0x1981, 0x1813: 0x1986, 0x1814: 0x198b, 0x1815: 0x16d6, 0x1816: 0x07b6, 0x1817: 0x16ea, + 0x1818: 0x16f2, 0x1819: 0x16f6, 0x181a: 0x16fe, 0x181b: 0x1706, 0x181c: 0x170e, 0x181d: 0x1995, +} + +// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes +// Block 0 is the zero block. +var nfkcIndex = [1408]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x5f, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x60, 0xc7: 0x04, + 0xc8: 0x05, 0xca: 0x61, 0xcb: 0x62, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09, + 0xd0: 0x0a, 0xd1: 0x63, 0xd2: 0x64, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x65, + 0xd8: 0x66, 0xd9: 0x0d, 0xdb: 0x67, 0xdc: 0x68, 0xdd: 0x69, 0xdf: 0x6a, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a, + 0xf0: 0x13, + // Block 0x4, offset 0x100 + 0x120: 0x6b, 0x121: 0x6c, 0x122: 0x6d, 0x123: 0x0e, 0x124: 0x6e, 0x125: 0x6f, 0x126: 0x70, 0x127: 0x71, + 0x128: 0x72, 0x129: 0x73, 0x12a: 0x74, 0x12b: 0x75, 0x12c: 0x70, 0x12d: 0x76, 0x12e: 0x77, 0x12f: 0x78, + 0x130: 0x74, 0x131: 0x79, 0x132: 0x7a, 0x133: 0x7b, 0x134: 0x7c, 0x135: 0x7d, 0x137: 0x7e, + 0x138: 0x7f, 0x139: 0x80, 0x13a: 0x81, 0x13b: 0x82, 0x13c: 0x83, 0x13d: 0x84, 0x13e: 0x85, 0x13f: 0x86, + // Block 0x5, offset 0x140 + 0x140: 0x87, 0x142: 0x88, 0x143: 0x89, 0x144: 0x8a, 0x145: 0x8b, 0x146: 0x8c, 0x147: 0x8d, + 0x14d: 0x8e, + 0x15c: 0x8f, 0x15f: 0x90, + 0x162: 0x91, 0x164: 0x92, + 0x168: 0x93, 0x169: 0x94, 0x16a: 0x95, 0x16b: 0x96, 0x16c: 0x0f, 0x16d: 0x97, 0x16e: 0x98, 0x16f: 0x99, + 0x170: 0x9a, 0x173: 0x9b, 0x174: 0x9c, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12, + 0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a, + // Block 0x6, offset 0x180 + 0x180: 0x9d, 0x181: 0x9e, 0x182: 0x9f, 0x183: 0xa0, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0xa1, 0x187: 0xa2, + 0x188: 0xa3, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0xa4, 0x18c: 0xa5, + 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa6, + 0x1a8: 0xa7, 0x1a9: 0xa8, 0x1ab: 0xa9, + 0x1b1: 0xaa, 0x1b3: 0xab, 0x1b5: 0xac, 0x1b7: 0xad, + 0x1ba: 0xae, 0x1bb: 0xaf, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xb0, + // Block 0x7, offset 0x1c0 + 0x1c0: 0xb1, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xb2, 0x1c5: 0x27, 0x1c6: 0x28, + 0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30, + // Block 0x8, offset 0x200 + 0x219: 0xb3, 0x21a: 0xb4, 0x21b: 0xb5, 0x21d: 0xb6, 0x21f: 0xb7, + 0x220: 0xb8, 0x223: 0xb9, 0x224: 0xba, 0x225: 0xbb, 0x226: 0xbc, 0x227: 0xbd, + 0x22a: 0xbe, 0x22b: 0xbf, 0x22d: 0xc0, 0x22f: 0xc1, + 0x230: 0xc2, 0x231: 0xc3, 0x232: 0xc4, 0x233: 0xc5, 0x234: 0xc6, 0x235: 0xc7, 0x236: 0xc8, 0x237: 0xc2, + 0x238: 0xc3, 0x239: 0xc4, 0x23a: 0xc5, 0x23b: 0xc6, 0x23c: 0xc7, 0x23d: 0xc8, 0x23e: 0xc2, 0x23f: 0xc3, + // Block 0x9, offset 0x240 + 0x240: 0xc4, 0x241: 0xc5, 0x242: 0xc6, 0x243: 0xc7, 0x244: 0xc8, 0x245: 0xc2, 0x246: 0xc3, 0x247: 0xc4, + 0x248: 0xc5, 0x249: 0xc6, 0x24a: 0xc7, 0x24b: 0xc8, 0x24c: 0xc2, 0x24d: 0xc3, 0x24e: 0xc4, 0x24f: 0xc5, + 0x250: 0xc6, 0x251: 0xc7, 0x252: 0xc8, 0x253: 0xc2, 0x254: 0xc3, 0x255: 0xc4, 0x256: 0xc5, 0x257: 0xc6, + 0x258: 0xc7, 0x259: 0xc8, 0x25a: 0xc2, 0x25b: 0xc3, 0x25c: 0xc4, 0x25d: 0xc5, 0x25e: 0xc6, 0x25f: 0xc7, + 0x260: 0xc8, 0x261: 0xc2, 0x262: 0xc3, 0x263: 0xc4, 0x264: 0xc5, 0x265: 0xc6, 0x266: 0xc7, 0x267: 0xc8, + 0x268: 0xc2, 0x269: 0xc3, 0x26a: 0xc4, 0x26b: 0xc5, 0x26c: 0xc6, 0x26d: 0xc7, 0x26e: 0xc8, 0x26f: 0xc2, + 0x270: 0xc3, 0x271: 0xc4, 0x272: 0xc5, 0x273: 0xc6, 0x274: 0xc7, 0x275: 0xc8, 0x276: 0xc2, 0x277: 0xc3, + 0x278: 0xc4, 0x279: 0xc5, 0x27a: 0xc6, 0x27b: 0xc7, 0x27c: 0xc8, 0x27d: 0xc2, 0x27e: 0xc3, 0x27f: 0xc4, + // Block 0xa, offset 0x280 + 0x280: 0xc5, 0x281: 0xc6, 0x282: 0xc7, 0x283: 0xc8, 0x284: 0xc2, 0x285: 0xc3, 0x286: 0xc4, 0x287: 0xc5, + 0x288: 0xc6, 0x289: 0xc7, 0x28a: 0xc8, 0x28b: 0xc2, 0x28c: 0xc3, 0x28d: 0xc4, 0x28e: 0xc5, 0x28f: 0xc6, + 0x290: 0xc7, 0x291: 0xc8, 0x292: 0xc2, 0x293: 0xc3, 0x294: 0xc4, 0x295: 0xc5, 0x296: 0xc6, 0x297: 0xc7, + 0x298: 0xc8, 0x299: 0xc2, 0x29a: 0xc3, 0x29b: 0xc4, 0x29c: 0xc5, 0x29d: 0xc6, 0x29e: 0xc7, 0x29f: 0xc8, + 0x2a0: 0xc2, 0x2a1: 0xc3, 0x2a2: 0xc4, 0x2a3: 0xc5, 0x2a4: 0xc6, 0x2a5: 0xc7, 0x2a6: 0xc8, 0x2a7: 0xc2, + 0x2a8: 0xc3, 0x2a9: 0xc4, 0x2aa: 0xc5, 0x2ab: 0xc6, 0x2ac: 0xc7, 0x2ad: 0xc8, 0x2ae: 0xc2, 0x2af: 0xc3, + 0x2b0: 0xc4, 0x2b1: 0xc5, 0x2b2: 0xc6, 0x2b3: 0xc7, 0x2b4: 0xc8, 0x2b5: 0xc2, 0x2b6: 0xc3, 0x2b7: 0xc4, + 0x2b8: 0xc5, 0x2b9: 0xc6, 0x2ba: 0xc7, 0x2bb: 0xc8, 0x2bc: 0xc2, 0x2bd: 0xc3, 0x2be: 0xc4, 0x2bf: 0xc5, + // Block 0xb, offset 0x2c0 + 0x2c0: 0xc6, 0x2c1: 0xc7, 0x2c2: 0xc8, 0x2c3: 0xc2, 0x2c4: 0xc3, 0x2c5: 0xc4, 0x2c6: 0xc5, 0x2c7: 0xc6, + 0x2c8: 0xc7, 0x2c9: 0xc8, 0x2ca: 0xc2, 0x2cb: 0xc3, 0x2cc: 0xc4, 0x2cd: 0xc5, 0x2ce: 0xc6, 0x2cf: 0xc7, + 0x2d0: 0xc8, 0x2d1: 0xc2, 0x2d2: 0xc3, 0x2d3: 0xc4, 0x2d4: 0xc5, 0x2d5: 0xc6, 0x2d6: 0xc7, 0x2d7: 0xc8, + 0x2d8: 0xc2, 0x2d9: 0xc3, 0x2da: 0xc4, 0x2db: 0xc5, 0x2dc: 0xc6, 0x2dd: 0xc7, 0x2de: 0xc9, + // Block 0xc, offset 0x300 + 0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34, + 0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c, + 0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44, + 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xca, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b, + // Block 0xd, offset 0x340 + 0x347: 0xcb, + 0x34b: 0xcc, 0x34d: 0xcd, + 0x35e: 0x4c, + 0x368: 0xce, 0x36b: 0xcf, + 0x374: 0xd0, + 0x37a: 0xd1, 0x37b: 0xd2, 0x37d: 0xd3, 0x37e: 0xd4, + // Block 0xe, offset 0x380 + 0x381: 0xd5, 0x382: 0xd6, 0x384: 0xd7, 0x385: 0xbc, 0x387: 0xd8, + 0x388: 0xd9, 0x38b: 0xda, 0x38c: 0xdb, 0x38d: 0xdc, + 0x391: 0xdd, 0x392: 0xde, 0x393: 0xdf, 0x396: 0xe0, 0x397: 0xe1, + 0x398: 0xe2, 0x39a: 0xe3, 0x39c: 0xe4, + 0x3a0: 0xe5, 0x3a4: 0xe6, 0x3a5: 0xe7, 0x3a7: 0xe8, + 0x3a8: 0xe9, 0x3a9: 0xea, 0x3aa: 0xeb, + 0x3b0: 0xe2, 0x3b5: 0xec, 0x3b6: 0xed, + 0x3bd: 0xee, + // Block 0xf, offset 0x3c0 + 0x3eb: 0xef, 0x3ec: 0xf0, + 0x3ff: 0xf1, + // Block 0x10, offset 0x400 + 0x432: 0xf2, + // Block 0x11, offset 0x440 + 0x445: 0xf3, 0x446: 0xf4, 0x447: 0xf5, + 0x449: 0xf6, + 0x450: 0xf7, 0x451: 0xf8, 0x452: 0xf9, 0x453: 0xfa, 0x454: 0xfb, 0x455: 0xfc, 0x456: 0xfd, 0x457: 0xfe, + 0x458: 0xff, 0x459: 0x100, 0x45a: 0x4d, 0x45b: 0x101, 0x45c: 0x102, 0x45d: 0x103, 0x45e: 0x104, 0x45f: 0x4e, + // Block 0x12, offset 0x480 + 0x480: 0x4f, 0x481: 0x50, 0x482: 0x105, 0x484: 0xf0, + 0x48a: 0x106, 0x48b: 0x107, + 0x493: 0x108, + 0x4a3: 0x109, 0x4a5: 0x10a, + 0x4b8: 0x51, 0x4b9: 0x52, 0x4ba: 0x53, + // Block 0x13, offset 0x4c0 + 0x4c4: 0x54, 0x4c5: 0x10b, 0x4c6: 0x10c, + 0x4c8: 0x55, 0x4c9: 0x10d, + 0x4ef: 0x10e, + // Block 0x14, offset 0x500 + 0x520: 0x56, 0x521: 0x57, 0x522: 0x58, 0x523: 0x59, 0x524: 0x5a, 0x525: 0x5b, 0x526: 0x5c, 0x527: 0x5d, + 0x528: 0x5e, + // Block 0x15, offset 0x540 + 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, +} + +// nfkcSparseOffset: 176 entries, 352 bytes +var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1c, 0x26, 0x36, 0x38, 0x3d, 0x48, 0x57, 0x64, 0x6c, 0x71, 0x76, 0x78, 0x7c, 0x84, 0x8b, 0x8e, 0x96, 0x9a, 0x9e, 0xa0, 0xa2, 0xab, 0xaf, 0xb6, 0xbb, 0xbe, 0xc8, 0xcb, 0xd2, 0xda, 0xde, 0xe0, 0xe4, 0xe8, 0xee, 0xff, 0x10b, 0x10d, 0x113, 0x115, 0x117, 0x119, 0x11b, 0x11d, 0x11f, 0x121, 0x124, 0x127, 0x129, 0x12c, 0x12f, 0x133, 0x139, 0x140, 0x149, 0x14b, 0x14e, 0x150, 0x15b, 0x166, 0x174, 0x182, 0x192, 0x1a0, 0x1a7, 0x1ad, 0x1bc, 0x1c0, 0x1c2, 0x1c6, 0x1c8, 0x1cb, 0x1cd, 0x1d0, 0x1d2, 0x1d5, 0x1d7, 0x1d9, 0x1db, 0x1e7, 0x1f1, 0x1fb, 0x1fe, 0x202, 0x204, 0x206, 0x20b, 0x20e, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21f, 0x222, 0x227, 0x229, 0x230, 0x236, 0x23c, 0x244, 0x24a, 0x250, 0x256, 0x25a, 0x25c, 0x25e, 0x260, 0x262, 0x268, 0x26b, 0x26d, 0x26f, 0x271, 0x277, 0x27b, 0x27f, 0x287, 0x28e, 0x291, 0x294, 0x296, 0x299, 0x2a1, 0x2a5, 0x2ac, 0x2af, 0x2b5, 0x2b7, 0x2b9, 0x2bc, 0x2be, 0x2c1, 0x2c6, 0x2c8, 0x2ca, 0x2cc, 0x2ce, 0x2d0, 0x2d3, 0x2d5, 0x2d7, 0x2d9, 0x2db, 0x2dd, 0x2df, 0x2ec, 0x2f6, 0x2f8, 0x2fa, 0x2fe, 0x303, 0x30f, 0x314, 0x31d, 0x323, 0x328, 0x32c, 0x331, 0x335, 0x345, 0x353, 0x361, 0x36f, 0x371, 0x373, 0x375, 0x379, 0x37b, 0x37e, 0x389, 0x38b, 0x395} + +// nfkcSparseValues: 919 entries, 3676 bytes +var nfkcSparseValues = [919]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0002, lo: 0x0d}, + {value: 0x0001, lo: 0xa0, hi: 0xa0}, + {value: 0x43b9, lo: 0xa8, hi: 0xa8}, + {value: 0x0083, lo: 0xaa, hi: 0xaa}, + {value: 0x43a5, lo: 0xaf, hi: 0xaf}, + {value: 0x0025, lo: 0xb2, hi: 0xb3}, + {value: 0x439b, lo: 0xb4, hi: 0xb4}, + {value: 0x0260, lo: 0xb5, hi: 0xb5}, + {value: 0x43d2, lo: 0xb8, hi: 0xb8}, + {value: 0x0023, lo: 0xb9, hi: 0xb9}, + {value: 0x009f, lo: 0xba, hi: 0xba}, + {value: 0x234c, lo: 0xbc, hi: 0xbc}, + {value: 0x2340, lo: 0xbd, hi: 0xbd}, + {value: 0x23e2, lo: 0xbe, hi: 0xbe}, + // Block 0x1, offset 0xe + {value: 0x0091, lo: 0x03}, + {value: 0x4823, lo: 0xa0, hi: 0xa1}, + {value: 0x4855, lo: 0xaf, hi: 0xb0}, + {value: 0xa000, lo: 0xb7, hi: 0xb7}, + // Block 0x2, offset 0x12 + {value: 0x0004, lo: 0x09}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x0091, lo: 0xb0, hi: 0xb0}, + {value: 0x0140, lo: 0xb1, hi: 0xb1}, + {value: 0x0095, lo: 0xb2, hi: 0xb2}, + {value: 0x00a5, lo: 0xb3, hi: 0xb3}, + {value: 0x0179, lo: 0xb4, hi: 0xb4}, + {value: 0x017f, lo: 0xb5, hi: 0xb5}, + {value: 0x018b, lo: 0xb6, hi: 0xb6}, + {value: 0x00af, lo: 0xb7, hi: 0xb8}, + // Block 0x3, offset 0x1c + {value: 0x000a, lo: 0x09}, + {value: 0x43af, lo: 0x98, hi: 0x98}, + {value: 0x43b4, lo: 0x99, hi: 0x9a}, + {value: 0x43d7, lo: 0x9b, hi: 0x9b}, + {value: 0x43a0, lo: 0x9c, hi: 0x9c}, + {value: 0x43c3, lo: 0x9d, hi: 0x9d}, + {value: 0x0137, lo: 0xa0, hi: 0xa0}, + {value: 0x0099, lo: 0xa1, hi: 0xa1}, + {value: 0x00a7, lo: 0xa2, hi: 0xa3}, + {value: 0x01b8, lo: 0xa4, hi: 0xa4}, + // Block 0x4, offset 0x26 + {value: 0x0000, lo: 0x0f}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0xa000, lo: 0x8d, hi: 0x8d}, + {value: 0x38e6, lo: 0x90, hi: 0x90}, + {value: 0x38f2, lo: 0x91, hi: 0x91}, + {value: 0x38e0, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x96, hi: 0x96}, + {value: 0x3958, lo: 0x97, hi: 0x97}, + {value: 0x3922, lo: 0x9c, hi: 0x9c}, + {value: 0x390a, lo: 0x9d, hi: 0x9d}, + {value: 0x3934, lo: 0x9e, hi: 0x9e}, + {value: 0xa000, lo: 0xb4, hi: 0xb5}, + {value: 0x395e, lo: 0xb6, hi: 0xb6}, + {value: 0x3964, lo: 0xb7, hi: 0xb7}, + // Block 0x5, offset 0x36 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x83, hi: 0x87}, + // Block 0x6, offset 0x38 + {value: 0x0001, lo: 0x04}, + {value: 0x8114, lo: 0x81, hi: 0x82}, + {value: 0x8133, lo: 0x84, hi: 0x84}, + {value: 0x812e, lo: 0x85, hi: 0x85}, + {value: 0x810e, lo: 0x87, hi: 0x87}, + // Block 0x7, offset 0x3d + {value: 0x0000, lo: 0x0a}, + {value: 0x8133, lo: 0x90, hi: 0x97}, + {value: 0x811a, lo: 0x98, hi: 0x98}, + {value: 0x811b, lo: 0x99, hi: 0x99}, + {value: 0x811c, lo: 0x9a, hi: 0x9a}, + {value: 0x3982, lo: 0xa2, hi: 0xa2}, + {value: 0x3988, lo: 0xa3, hi: 0xa3}, + {value: 0x3994, lo: 0xa4, hi: 0xa4}, + {value: 0x398e, lo: 0xa5, hi: 0xa5}, + {value: 0x399a, lo: 0xa6, hi: 0xa6}, + {value: 0xa000, lo: 0xa7, hi: 0xa7}, + // Block 0x8, offset 0x48 + {value: 0x0000, lo: 0x0e}, + {value: 0x39ac, lo: 0x80, hi: 0x80}, + {value: 0xa000, lo: 0x81, hi: 0x81}, + {value: 0x39a0, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x39a6, lo: 0x93, hi: 0x93}, + {value: 0xa000, lo: 0x95, hi: 0x95}, + {value: 0x8133, lo: 0x96, hi: 0x9c}, + {value: 0x8133, lo: 0x9f, hi: 0xa2}, + {value: 0x812e, lo: 0xa3, hi: 0xa3}, + {value: 0x8133, lo: 0xa4, hi: 0xa4}, + {value: 0x8133, lo: 0xa7, hi: 0xa8}, + {value: 0x812e, lo: 0xaa, hi: 0xaa}, + {value: 0x8133, lo: 0xab, hi: 0xac}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + // Block 0x9, offset 0x57 + {value: 0x0000, lo: 0x0c}, + {value: 0x8120, lo: 0x91, hi: 0x91}, + {value: 0x8133, lo: 0xb0, hi: 0xb0}, + {value: 0x812e, lo: 0xb1, hi: 0xb1}, + {value: 0x8133, lo: 0xb2, hi: 0xb3}, + {value: 0x812e, lo: 0xb4, hi: 0xb4}, + {value: 0x8133, lo: 0xb5, hi: 0xb6}, + {value: 0x812e, lo: 0xb7, hi: 0xb9}, + {value: 0x8133, lo: 0xba, hi: 0xba}, + {value: 0x812e, lo: 0xbb, hi: 0xbc}, + {value: 0x8133, lo: 0xbd, hi: 0xbd}, + {value: 0x812e, lo: 0xbe, hi: 0xbe}, + {value: 0x8133, lo: 0xbf, hi: 0xbf}, + // Block 0xa, offset 0x64 + {value: 0x0005, lo: 0x07}, + {value: 0x8133, lo: 0x80, hi: 0x80}, + {value: 0x8133, lo: 0x81, hi: 0x81}, + {value: 0x812e, lo: 0x82, hi: 0x83}, + {value: 0x812e, lo: 0x84, hi: 0x85}, + {value: 0x812e, lo: 0x86, hi: 0x87}, + {value: 0x812e, lo: 0x88, hi: 0x89}, + {value: 0x8133, lo: 0x8a, hi: 0x8a}, + // Block 0xb, offset 0x6c + {value: 0x0000, lo: 0x04}, + {value: 0x8133, lo: 0xab, hi: 0xb1}, + {value: 0x812e, lo: 0xb2, hi: 0xb2}, + {value: 0x8133, lo: 0xb3, hi: 0xb3}, + {value: 0x812e, lo: 0xbd, hi: 0xbd}, + // Block 0xc, offset 0x71 + {value: 0x0000, lo: 0x04}, + {value: 0x8133, lo: 0x96, hi: 0x99}, + {value: 0x8133, lo: 0x9b, hi: 0xa3}, + {value: 0x8133, lo: 0xa5, hi: 0xa7}, + {value: 0x8133, lo: 0xa9, hi: 0xad}, + // Block 0xd, offset 0x76 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x99, hi: 0x9b}, + // Block 0xe, offset 0x78 + {value: 0x0000, lo: 0x03}, + {value: 0x8133, lo: 0x98, hi: 0x98}, + {value: 0x812e, lo: 0x99, hi: 0x9b}, + {value: 0x8133, lo: 0x9c, hi: 0x9f}, + // Block 0xf, offset 0x7c + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0xa8, hi: 0xa8}, + {value: 0x4019, lo: 0xa9, hi: 0xa9}, + {value: 0xa000, lo: 0xb0, hi: 0xb0}, + {value: 0x4021, lo: 0xb1, hi: 0xb1}, + {value: 0xa000, lo: 0xb3, hi: 0xb3}, + {value: 0x4029, lo: 0xb4, hi: 0xb4}, + {value: 0x9903, lo: 0xbc, hi: 0xbc}, + // Block 0x10, offset 0x84 + {value: 0x0008, lo: 0x06}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x8133, lo: 0x91, hi: 0x91}, + {value: 0x812e, lo: 0x92, hi: 0x92}, + {value: 0x8133, lo: 0x93, hi: 0x93}, + {value: 0x8133, lo: 0x94, hi: 0x94}, + {value: 0x465d, lo: 0x98, hi: 0x9f}, + // Block 0x11, offset 0x8b + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x12, offset 0x8e + {value: 0x0008, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2dd5, lo: 0x8b, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x469d, lo: 0x9c, hi: 0x9d}, + {value: 0x46ad, lo: 0x9f, hi: 0x9f}, + {value: 0x8133, lo: 0xbe, hi: 0xbe}, + // Block 0x13, offset 0x96 + {value: 0x0000, lo: 0x03}, + {value: 0x46d5, lo: 0xb3, hi: 0xb3}, + {value: 0x46dd, lo: 0xb6, hi: 0xb6}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + // Block 0x14, offset 0x9a + {value: 0x0008, lo: 0x03}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x46b5, lo: 0x99, hi: 0x9b}, + {value: 0x46cd, lo: 0x9e, hi: 0x9e}, + // Block 0x15, offset 0x9e + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + // Block 0x16, offset 0xa0 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + // Block 0x17, offset 0xa2 + {value: 0x0000, lo: 0x08}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2ded, lo: 0x88, hi: 0x88}, + {value: 0x2de5, lo: 0x8b, hi: 0x8b}, + {value: 0x2df5, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x96, hi: 0x97}, + {value: 0x46e5, lo: 0x9c, hi: 0x9c}, + {value: 0x46ed, lo: 0x9d, hi: 0x9d}, + // Block 0x18, offset 0xab + {value: 0x0000, lo: 0x03}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0x2dfd, lo: 0x94, hi: 0x94}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x19, offset 0xaf + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2e05, lo: 0x8a, hi: 0x8a}, + {value: 0x2e15, lo: 0x8b, hi: 0x8b}, + {value: 0x2e0d, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1a, offset 0xb6 + {value: 0x1801, lo: 0x04}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x4031, lo: 0x88, hi: 0x88}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x8121, lo: 0x95, hi: 0x96}, + // Block 0x1b, offset 0xbb + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xbc, hi: 0xbc}, + {value: 0xa000, lo: 0xbf, hi: 0xbf}, + // Block 0x1c, offset 0xbe + {value: 0x0000, lo: 0x09}, + {value: 0x2e1d, lo: 0x80, hi: 0x80}, + {value: 0x9900, lo: 0x82, hi: 0x82}, + {value: 0xa000, lo: 0x86, hi: 0x86}, + {value: 0x2e25, lo: 0x87, hi: 0x87}, + {value: 0x2e2d, lo: 0x88, hi: 0x88}, + {value: 0x3091, lo: 0x8a, hi: 0x8a}, + {value: 0x2f19, lo: 0x8b, hi: 0x8b}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x95, hi: 0x96}, + // Block 0x1d, offset 0xc8 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x1e, offset 0xcb + {value: 0x0000, lo: 0x06}, + {value: 0xa000, lo: 0x86, hi: 0x87}, + {value: 0x2e35, lo: 0x8a, hi: 0x8a}, + {value: 0x2e45, lo: 0x8b, hi: 0x8b}, + {value: 0x2e3d, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + // Block 0x1f, offset 0xd2 + {value: 0x6ab3, lo: 0x07}, + {value: 0x9905, lo: 0x8a, hi: 0x8a}, + {value: 0x9900, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4039, lo: 0x9a, hi: 0x9a}, + {value: 0x3099, lo: 0x9c, hi: 0x9c}, + {value: 0x2f24, lo: 0x9d, hi: 0x9d}, + {value: 0x2e4d, lo: 0x9e, hi: 0x9f}, + // Block 0x20, offset 0xda + {value: 0x0000, lo: 0x03}, + {value: 0x2751, lo: 0xb3, hi: 0xb3}, + {value: 0x8123, lo: 0xb8, hi: 0xb9}, + {value: 0x8105, lo: 0xba, hi: 0xba}, + // Block 0x21, offset 0xde + {value: 0x0000, lo: 0x01}, + {value: 0x8124, lo: 0x88, hi: 0x8b}, + // Block 0x22, offset 0xe0 + {value: 0x0000, lo: 0x03}, + {value: 0x2766, lo: 0xb3, hi: 0xb3}, + {value: 0x8125, lo: 0xb8, hi: 0xb9}, + {value: 0x8105, lo: 0xba, hi: 0xba}, + // Block 0x23, offset 0xe4 + {value: 0x0000, lo: 0x03}, + {value: 0x8126, lo: 0x88, hi: 0x8b}, + {value: 0x2758, lo: 0x9c, hi: 0x9c}, + {value: 0x275f, lo: 0x9d, hi: 0x9d}, + // Block 0x24, offset 0xe8 + {value: 0x0000, lo: 0x05}, + {value: 0x03fe, lo: 0x8c, hi: 0x8c}, + {value: 0x812e, lo: 0x98, hi: 0x99}, + {value: 0x812e, lo: 0xb5, hi: 0xb5}, + {value: 0x812e, lo: 0xb7, hi: 0xb7}, + {value: 0x812c, lo: 0xb9, hi: 0xb9}, + // Block 0x25, offset 0xee + {value: 0x0000, lo: 0x10}, + {value: 0x2774, lo: 0x83, hi: 0x83}, + {value: 0x277b, lo: 0x8d, hi: 0x8d}, + {value: 0x2782, lo: 0x92, hi: 0x92}, + {value: 0x2789, lo: 0x97, hi: 0x97}, + {value: 0x2790, lo: 0x9c, hi: 0x9c}, + {value: 0x276d, lo: 0xa9, hi: 0xa9}, + {value: 0x8127, lo: 0xb1, hi: 0xb1}, + {value: 0x8128, lo: 0xb2, hi: 0xb2}, + {value: 0x4bc5, lo: 0xb3, hi: 0xb3}, + {value: 0x8129, lo: 0xb4, hi: 0xb4}, + {value: 0x4bce, lo: 0xb5, hi: 0xb5}, + {value: 0x46f5, lo: 0xb6, hi: 0xb6}, + {value: 0x4735, lo: 0xb7, hi: 0xb7}, + {value: 0x46fd, lo: 0xb8, hi: 0xb8}, + {value: 0x4740, lo: 0xb9, hi: 0xb9}, + {value: 0x8128, lo: 0xba, hi: 0xbd}, + // Block 0x26, offset 0xff + {value: 0x0000, lo: 0x0b}, + {value: 0x8128, lo: 0x80, hi: 0x80}, + {value: 0x4bd7, lo: 0x81, hi: 0x81}, + {value: 0x8133, lo: 0x82, hi: 0x83}, + {value: 0x8105, lo: 0x84, hi: 0x84}, + {value: 0x8133, lo: 0x86, hi: 0x87}, + {value: 0x279e, lo: 0x93, hi: 0x93}, + {value: 0x27a5, lo: 0x9d, hi: 0x9d}, + {value: 0x27ac, lo: 0xa2, hi: 0xa2}, + {value: 0x27b3, lo: 0xa7, hi: 0xa7}, + {value: 0x27ba, lo: 0xac, hi: 0xac}, + {value: 0x2797, lo: 0xb9, hi: 0xb9}, + // Block 0x27, offset 0x10b + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x86, hi: 0x86}, + // Block 0x28, offset 0x10d + {value: 0x0000, lo: 0x05}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x2e55, lo: 0xa6, hi: 0xa6}, + {value: 0x9900, lo: 0xae, hi: 0xae}, + {value: 0x8103, lo: 0xb7, hi: 0xb7}, + {value: 0x8105, lo: 0xb9, hi: 0xba}, + // Block 0x29, offset 0x113 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x8d, hi: 0x8d}, + // Block 0x2a, offset 0x115 + {value: 0x0000, lo: 0x01}, + {value: 0x0402, lo: 0xbc, hi: 0xbc}, + // Block 0x2b, offset 0x117 + {value: 0x0000, lo: 0x01}, + {value: 0xa000, lo: 0x80, hi: 0x92}, + // Block 0x2c, offset 0x119 + {value: 0x0000, lo: 0x01}, + {value: 0xb900, lo: 0xa1, hi: 0xb5}, + // Block 0x2d, offset 0x11b + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0xa8, hi: 0xbf}, + // Block 0x2e, offset 0x11d + {value: 0x0000, lo: 0x01}, + {value: 0x9900, lo: 0x80, hi: 0x82}, + // Block 0x2f, offset 0x11f + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x9d, hi: 0x9f}, + // Block 0x30, offset 0x121 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x94, hi: 0x95}, + {value: 0x8105, lo: 0xb4, hi: 0xb4}, + // Block 0x31, offset 0x124 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x92, hi: 0x92}, + {value: 0x8133, lo: 0x9d, hi: 0x9d}, + // Block 0x32, offset 0x127 + {value: 0x0000, lo: 0x01}, + {value: 0x8132, lo: 0xa9, hi: 0xa9}, + // Block 0x33, offset 0x129 + {value: 0x0004, lo: 0x02}, + {value: 0x812f, lo: 0xb9, hi: 0xba}, + {value: 0x812e, lo: 0xbb, hi: 0xbb}, + // Block 0x34, offset 0x12c + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0x97, hi: 0x97}, + {value: 0x812e, lo: 0x98, hi: 0x98}, + // Block 0x35, offset 0x12f + {value: 0x0000, lo: 0x03}, + {value: 0x8105, lo: 0xa0, hi: 0xa0}, + {value: 0x8133, lo: 0xb5, hi: 0xbc}, + {value: 0x812e, lo: 0xbf, hi: 0xbf}, + // Block 0x36, offset 0x133 + {value: 0x0000, lo: 0x05}, + {value: 0x8133, lo: 0xb0, hi: 0xb4}, + {value: 0x812e, lo: 0xb5, hi: 0xba}, + {value: 0x8133, lo: 0xbb, hi: 0xbc}, + {value: 0x812e, lo: 0xbd, hi: 0xbd}, + {value: 0x812e, lo: 0xbf, hi: 0xbf}, + // Block 0x37, offset 0x139 + {value: 0x0000, lo: 0x06}, + {value: 0x812e, lo: 0x80, hi: 0x80}, + {value: 0x8133, lo: 0x81, hi: 0x82}, + {value: 0x812e, lo: 0x83, hi: 0x84}, + {value: 0x8133, lo: 0x85, hi: 0x89}, + {value: 0x812e, lo: 0x8a, hi: 0x8a}, + {value: 0x8133, lo: 0x8b, hi: 0x8e}, + // Block 0x38, offset 0x140 + {value: 0x0000, lo: 0x08}, + {value: 0x2e9d, lo: 0x80, hi: 0x80}, + {value: 0x2ea5, lo: 0x81, hi: 0x81}, + {value: 0xa000, lo: 0x82, hi: 0x82}, + {value: 0x2ead, lo: 0x83, hi: 0x83}, + {value: 0x8105, lo: 0x84, hi: 0x84}, + {value: 0x8133, lo: 0xab, hi: 0xab}, + {value: 0x812e, lo: 0xac, hi: 0xac}, + {value: 0x8133, lo: 0xad, hi: 0xb3}, + // Block 0x39, offset 0x149 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xaa, hi: 0xab}, + // Block 0x3a, offset 0x14b + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xa6, hi: 0xa6}, + {value: 0x8105, lo: 0xb2, hi: 0xb3}, + // Block 0x3b, offset 0x14e + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0xb7, hi: 0xb7}, + // Block 0x3c, offset 0x150 + {value: 0x0000, lo: 0x0a}, + {value: 0x8133, lo: 0x90, hi: 0x92}, + {value: 0x8101, lo: 0x94, hi: 0x94}, + {value: 0x812e, lo: 0x95, hi: 0x99}, + {value: 0x8133, lo: 0x9a, hi: 0x9b}, + {value: 0x812e, lo: 0x9c, hi: 0x9f}, + {value: 0x8133, lo: 0xa0, hi: 0xa0}, + {value: 0x8101, lo: 0xa2, hi: 0xa8}, + {value: 0x812e, lo: 0xad, hi: 0xad}, + {value: 0x8133, lo: 0xb4, hi: 0xb4}, + {value: 0x8133, lo: 0xb8, hi: 0xb9}, + // Block 0x3d, offset 0x15b + {value: 0x0002, lo: 0x0a}, + {value: 0x0043, lo: 0xac, hi: 0xac}, + {value: 0x00d1, lo: 0xad, hi: 0xad}, + {value: 0x0045, lo: 0xae, hi: 0xae}, + {value: 0x0049, lo: 0xb0, hi: 0xb1}, + {value: 0x00ec, lo: 0xb2, hi: 0xb2}, + {value: 0x004f, lo: 0xb3, hi: 0xba}, + {value: 0x005f, lo: 0xbc, hi: 0xbc}, + {value: 0x00fe, lo: 0xbd, hi: 0xbd}, + {value: 0x0061, lo: 0xbe, hi: 0xbe}, + {value: 0x0065, lo: 0xbf, hi: 0xbf}, + // Block 0x3e, offset 0x166 + {value: 0x0000, lo: 0x0d}, + {value: 0x0001, lo: 0x80, hi: 0x8a}, + {value: 0x0532, lo: 0x91, hi: 0x91}, + {value: 0x43dc, lo: 0x97, hi: 0x97}, + {value: 0x001d, lo: 0xa4, hi: 0xa4}, + {value: 0x19a0, lo: 0xa5, hi: 0xa5}, + {value: 0x1c8c, lo: 0xa6, hi: 0xa6}, + {value: 0x0001, lo: 0xaf, hi: 0xaf}, + {value: 0x27c1, lo: 0xb3, hi: 0xb3}, + {value: 0x2935, lo: 0xb4, hi: 0xb4}, + {value: 0x27c8, lo: 0xb6, hi: 0xb6}, + {value: 0x293f, lo: 0xb7, hi: 0xb7}, + {value: 0x199a, lo: 0xbc, hi: 0xbc}, + {value: 0x43aa, lo: 0xbe, hi: 0xbe}, + // Block 0x3f, offset 0x174 + {value: 0x0002, lo: 0x0d}, + {value: 0x1a60, lo: 0x87, hi: 0x87}, + {value: 0x1a5d, lo: 0x88, hi: 0x88}, + {value: 0x199d, lo: 0x89, hi: 0x89}, + {value: 0x2ac5, lo: 0x97, hi: 0x97}, + {value: 0x0001, lo: 0x9f, hi: 0x9f}, + {value: 0x0021, lo: 0xb0, hi: 0xb0}, + {value: 0x0093, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb4, hi: 0xb9}, + {value: 0x0017, lo: 0xba, hi: 0xba}, + {value: 0x055e, lo: 0xbb, hi: 0xbb}, + {value: 0x003b, lo: 0xbc, hi: 0xbc}, + {value: 0x0011, lo: 0xbd, hi: 0xbe}, + {value: 0x009d, lo: 0xbf, hi: 0xbf}, + // Block 0x40, offset 0x182 + {value: 0x0002, lo: 0x0f}, + {value: 0x0021, lo: 0x80, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8a}, + {value: 0x055e, lo: 0x8b, hi: 0x8b}, + {value: 0x003b, lo: 0x8c, hi: 0x8c}, + {value: 0x0011, lo: 0x8d, hi: 0x8e}, + {value: 0x0083, lo: 0x90, hi: 0x90}, + {value: 0x008b, lo: 0x91, hi: 0x91}, + {value: 0x009f, lo: 0x92, hi: 0x92}, + {value: 0x00b1, lo: 0x93, hi: 0x93}, + {value: 0x011f, lo: 0x94, hi: 0x94}, + {value: 0x0091, lo: 0x95, hi: 0x95}, + {value: 0x0097, lo: 0x96, hi: 0x99}, + {value: 0x00a1, lo: 0x9a, hi: 0x9a}, + {value: 0x00a7, lo: 0x9b, hi: 0x9c}, + {value: 0x1ac9, lo: 0xa8, hi: 0xa8}, + // Block 0x41, offset 0x192 + {value: 0x0000, lo: 0x0d}, + {value: 0x8133, lo: 0x90, hi: 0x91}, + {value: 0x8101, lo: 0x92, hi: 0x93}, + {value: 0x8133, lo: 0x94, hi: 0x97}, + {value: 0x8101, lo: 0x98, hi: 0x9a}, + {value: 0x8133, lo: 0x9b, hi: 0x9c}, + {value: 0x8133, lo: 0xa1, hi: 0xa1}, + {value: 0x8101, lo: 0xa5, hi: 0xa6}, + {value: 0x8133, lo: 0xa7, hi: 0xa7}, + {value: 0x812e, lo: 0xa8, hi: 0xa8}, + {value: 0x8133, lo: 0xa9, hi: 0xa9}, + {value: 0x8101, lo: 0xaa, hi: 0xab}, + {value: 0x812e, lo: 0xac, hi: 0xaf}, + {value: 0x8133, lo: 0xb0, hi: 0xb0}, + // Block 0x42, offset 0x1a0 + {value: 0x0007, lo: 0x06}, + {value: 0x22b0, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + {value: 0x3cfa, lo: 0x9a, hi: 0x9b}, + {value: 0x3d08, lo: 0xae, hi: 0xae}, + // Block 0x43, offset 0x1a7 + {value: 0x000e, lo: 0x05}, + {value: 0x3d0f, lo: 0x8d, hi: 0x8e}, + {value: 0x3d16, lo: 0x8f, hi: 0x8f}, + {value: 0xa000, lo: 0x90, hi: 0x90}, + {value: 0xa000, lo: 0x92, hi: 0x92}, + {value: 0xa000, lo: 0x94, hi: 0x94}, + // Block 0x44, offset 0x1ad + {value: 0x017a, lo: 0x0e}, + {value: 0xa000, lo: 0x83, hi: 0x83}, + {value: 0x3d24, lo: 0x84, hi: 0x84}, + {value: 0xa000, lo: 0x88, hi: 0x88}, + {value: 0x3d2b, lo: 0x89, hi: 0x89}, + {value: 0xa000, lo: 0x8b, hi: 0x8b}, + {value: 0x3d32, lo: 0x8c, hi: 0x8c}, + {value: 0xa000, lo: 0xa3, hi: 0xa3}, + {value: 0x3d39, lo: 0xa4, hi: 0xa4}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x3d40, lo: 0xa6, hi: 0xa6}, + {value: 0x27cf, lo: 0xac, hi: 0xad}, + {value: 0x27d6, lo: 0xaf, hi: 0xaf}, + {value: 0x2953, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xbc, hi: 0xbc}, + // Block 0x45, offset 0x1bc + {value: 0x0007, lo: 0x03}, + {value: 0x3da9, lo: 0xa0, hi: 0xa1}, + {value: 0x3dd3, lo: 0xa2, hi: 0xa3}, + {value: 0x3dfd, lo: 0xaa, hi: 0xad}, + // Block 0x46, offset 0x1c0 + {value: 0x0004, lo: 0x01}, + {value: 0x0586, lo: 0xa9, hi: 0xaa}, + // Block 0x47, offset 0x1c2 + {value: 0x0002, lo: 0x03}, + {value: 0x0057, lo: 0x80, hi: 0x8f}, + {value: 0x0083, lo: 0x90, hi: 0xa9}, + {value: 0x0021, lo: 0xaa, hi: 0xaa}, + // Block 0x48, offset 0x1c6 + {value: 0x0000, lo: 0x01}, + {value: 0x2ad2, lo: 0x8c, hi: 0x8c}, + // Block 0x49, offset 0x1c8 + {value: 0x0266, lo: 0x02}, + {value: 0x1cbc, lo: 0xb4, hi: 0xb4}, + {value: 0x1a5a, lo: 0xb5, hi: 0xb6}, + // Block 0x4a, offset 0x1cb + {value: 0x0000, lo: 0x01}, + {value: 0x461e, lo: 0x9c, hi: 0x9c}, + // Block 0x4b, offset 0x1cd + {value: 0x0000, lo: 0x02}, + {value: 0x0095, lo: 0xbc, hi: 0xbc}, + {value: 0x006d, lo: 0xbd, hi: 0xbd}, + // Block 0x4c, offset 0x1d0 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xaf, hi: 0xb1}, + // Block 0x4d, offset 0x1d2 + {value: 0x0000, lo: 0x02}, + {value: 0x057a, lo: 0xaf, hi: 0xaf}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x4e, offset 0x1d5 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xa0, hi: 0xbf}, + // Block 0x4f, offset 0x1d7 + {value: 0x0000, lo: 0x01}, + {value: 0x0ebe, lo: 0x9f, hi: 0x9f}, + // Block 0x50, offset 0x1d9 + {value: 0x0000, lo: 0x01}, + {value: 0x172a, lo: 0xb3, hi: 0xb3}, + // Block 0x51, offset 0x1db + {value: 0x0004, lo: 0x0b}, + {value: 0x1692, lo: 0x80, hi: 0x82}, + {value: 0x16aa, lo: 0x83, hi: 0x83}, + {value: 0x16c2, lo: 0x84, hi: 0x85}, + {value: 0x16d2, lo: 0x86, hi: 0x89}, + {value: 0x16e6, lo: 0x8a, hi: 0x8c}, + {value: 0x16fa, lo: 0x8d, hi: 0x8d}, + {value: 0x1702, lo: 0x8e, hi: 0x8e}, + {value: 0x170a, lo: 0x8f, hi: 0x90}, + {value: 0x1716, lo: 0x91, hi: 0x93}, + {value: 0x1726, lo: 0x94, hi: 0x94}, + {value: 0x172e, lo: 0x95, hi: 0x95}, + // Block 0x52, offset 0x1e7 + {value: 0x0004, lo: 0x09}, + {value: 0x0001, lo: 0x80, hi: 0x80}, + {value: 0x812d, lo: 0xaa, hi: 0xaa}, + {value: 0x8132, lo: 0xab, hi: 0xab}, + {value: 0x8134, lo: 0xac, hi: 0xac}, + {value: 0x812f, lo: 0xad, hi: 0xad}, + {value: 0x8130, lo: 0xae, hi: 0xae}, + {value: 0x8130, lo: 0xaf, hi: 0xaf}, + {value: 0x05ae, lo: 0xb6, hi: 0xb6}, + {value: 0x0982, lo: 0xb8, hi: 0xba}, + // Block 0x53, offset 0x1f1 + {value: 0x0006, lo: 0x09}, + {value: 0x0406, lo: 0xb1, hi: 0xb1}, + {value: 0x040a, lo: 0xb2, hi: 0xb2}, + {value: 0x4b7c, lo: 0xb3, hi: 0xb3}, + {value: 0x040e, lo: 0xb4, hi: 0xb4}, + {value: 0x4b82, lo: 0xb5, hi: 0xb6}, + {value: 0x0412, lo: 0xb7, hi: 0xb7}, + {value: 0x0416, lo: 0xb8, hi: 0xb8}, + {value: 0x041a, lo: 0xb9, hi: 0xb9}, + {value: 0x4b8e, lo: 0xba, hi: 0xbf}, + // Block 0x54, offset 0x1fb + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0xaf, hi: 0xaf}, + {value: 0x8133, lo: 0xb4, hi: 0xbd}, + // Block 0x55, offset 0x1fe + {value: 0x0000, lo: 0x03}, + {value: 0x02d8, lo: 0x9c, hi: 0x9c}, + {value: 0x02de, lo: 0x9d, hi: 0x9d}, + {value: 0x8133, lo: 0x9e, hi: 0x9f}, + // Block 0x56, offset 0x202 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xb0, hi: 0xb1}, + // Block 0x57, offset 0x204 + {value: 0x0000, lo: 0x01}, + {value: 0x173e, lo: 0xb0, hi: 0xb0}, + // Block 0x58, offset 0x206 + {value: 0x0006, lo: 0x04}, + {value: 0x0047, lo: 0xb2, hi: 0xb3}, + {value: 0x0063, lo: 0xb4, hi: 0xb4}, + {value: 0x00dd, lo: 0xb8, hi: 0xb8}, + {value: 0x00e9, lo: 0xb9, hi: 0xb9}, + // Block 0x59, offset 0x20b + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x86, hi: 0x86}, + {value: 0x8105, lo: 0xac, hi: 0xac}, + // Block 0x5a, offset 0x20e + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x84, hi: 0x84}, + {value: 0x8133, lo: 0xa0, hi: 0xb1}, + // Block 0x5b, offset 0x211 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0xab, hi: 0xad}, + // Block 0x5c, offset 0x213 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x93, hi: 0x93}, + // Block 0x5d, offset 0x215 + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0xb3, hi: 0xb3}, + // Block 0x5e, offset 0x217 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x80, hi: 0x80}, + // Block 0x5f, offset 0x219 + {value: 0x0000, lo: 0x05}, + {value: 0x8133, lo: 0xb0, hi: 0xb0}, + {value: 0x8133, lo: 0xb2, hi: 0xb3}, + {value: 0x812e, lo: 0xb4, hi: 0xb4}, + {value: 0x8133, lo: 0xb7, hi: 0xb8}, + {value: 0x8133, lo: 0xbe, hi: 0xbf}, + // Block 0x60, offset 0x21f + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0x81, hi: 0x81}, + {value: 0x8105, lo: 0xb6, hi: 0xb6}, + // Block 0x61, offset 0x222 + {value: 0x000c, lo: 0x04}, + {value: 0x173a, lo: 0x9c, hi: 0x9d}, + {value: 0x014f, lo: 0x9e, hi: 0x9e}, + {value: 0x174a, lo: 0x9f, hi: 0x9f}, + {value: 0x01a6, lo: 0xa9, hi: 0xa9}, + // Block 0x62, offset 0x227 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xad, hi: 0xad}, + // Block 0x63, offset 0x229 + {value: 0x0000, lo: 0x06}, + {value: 0xe500, lo: 0x80, hi: 0x80}, + {value: 0xc600, lo: 0x81, hi: 0x9b}, + {value: 0xe500, lo: 0x9c, hi: 0x9c}, + {value: 0xc600, lo: 0x9d, hi: 0xb7}, + {value: 0xe500, lo: 0xb8, hi: 0xb8}, + {value: 0xc600, lo: 0xb9, hi: 0xbf}, + // Block 0x64, offset 0x230 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x93}, + {value: 0xe500, lo: 0x94, hi: 0x94}, + {value: 0xc600, lo: 0x95, hi: 0xaf}, + {value: 0xe500, lo: 0xb0, hi: 0xb0}, + {value: 0xc600, lo: 0xb1, hi: 0xbf}, + // Block 0x65, offset 0x236 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8b}, + {value: 0xe500, lo: 0x8c, hi: 0x8c}, + {value: 0xc600, lo: 0x8d, hi: 0xa7}, + {value: 0xe500, lo: 0xa8, hi: 0xa8}, + {value: 0xc600, lo: 0xa9, hi: 0xbf}, + // Block 0x66, offset 0x23c + {value: 0x0000, lo: 0x07}, + {value: 0xc600, lo: 0x80, hi: 0x83}, + {value: 0xe500, lo: 0x84, hi: 0x84}, + {value: 0xc600, lo: 0x85, hi: 0x9f}, + {value: 0xe500, lo: 0xa0, hi: 0xa0}, + {value: 0xc600, lo: 0xa1, hi: 0xbb}, + {value: 0xe500, lo: 0xbc, hi: 0xbc}, + {value: 0xc600, lo: 0xbd, hi: 0xbf}, + // Block 0x67, offset 0x244 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x97}, + {value: 0xe500, lo: 0x98, hi: 0x98}, + {value: 0xc600, lo: 0x99, hi: 0xb3}, + {value: 0xe500, lo: 0xb4, hi: 0xb4}, + {value: 0xc600, lo: 0xb5, hi: 0xbf}, + // Block 0x68, offset 0x24a + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x8f}, + {value: 0xe500, lo: 0x90, hi: 0x90}, + {value: 0xc600, lo: 0x91, hi: 0xab}, + {value: 0xe500, lo: 0xac, hi: 0xac}, + {value: 0xc600, lo: 0xad, hi: 0xbf}, + // Block 0x69, offset 0x250 + {value: 0x0000, lo: 0x05}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + {value: 0xe500, lo: 0xa4, hi: 0xa4}, + {value: 0xc600, lo: 0xa5, hi: 0xbf}, + // Block 0x6a, offset 0x256 + {value: 0x0000, lo: 0x03}, + {value: 0xc600, lo: 0x80, hi: 0x87}, + {value: 0xe500, lo: 0x88, hi: 0x88}, + {value: 0xc600, lo: 0x89, hi: 0xa3}, + // Block 0x6b, offset 0x25a + {value: 0x0002, lo: 0x01}, + {value: 0x0003, lo: 0x81, hi: 0xbf}, + // Block 0x6c, offset 0x25c + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0xbd, hi: 0xbd}, + // Block 0x6d, offset 0x25e + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0xa0, hi: 0xa0}, + // Block 0x6e, offset 0x260 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xb6, hi: 0xba}, + // Block 0x6f, offset 0x262 + {value: 0x002d, lo: 0x05}, + {value: 0x812e, lo: 0x8d, hi: 0x8d}, + {value: 0x8133, lo: 0x8f, hi: 0x8f}, + {value: 0x8133, lo: 0xb8, hi: 0xb8}, + {value: 0x8101, lo: 0xb9, hi: 0xba}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x70, offset 0x268 + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0xa5, hi: 0xa5}, + {value: 0x812e, lo: 0xa6, hi: 0xa6}, + // Block 0x71, offset 0x26b + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xa4, hi: 0xa7}, + // Block 0x72, offset 0x26d + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xab, hi: 0xac}, + // Block 0x73, offset 0x26f + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0xbd, hi: 0xbf}, + // Block 0x74, offset 0x271 + {value: 0x0000, lo: 0x05}, + {value: 0x812e, lo: 0x86, hi: 0x87}, + {value: 0x8133, lo: 0x88, hi: 0x8a}, + {value: 0x812e, lo: 0x8b, hi: 0x8b}, + {value: 0x8133, lo: 0x8c, hi: 0x8c}, + {value: 0x812e, lo: 0x8d, hi: 0x90}, + // Block 0x75, offset 0x277 + {value: 0x0005, lo: 0x03}, + {value: 0x8133, lo: 0x82, hi: 0x82}, + {value: 0x812e, lo: 0x83, hi: 0x84}, + {value: 0x812e, lo: 0x85, hi: 0x85}, + // Block 0x76, offset 0x27b + {value: 0x0000, lo: 0x03}, + {value: 0x8105, lo: 0x86, hi: 0x86}, + {value: 0x8105, lo: 0xb0, hi: 0xb0}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x77, offset 0x27f + {value: 0x17fe, lo: 0x07}, + {value: 0xa000, lo: 0x99, hi: 0x99}, + {value: 0x4379, lo: 0x9a, hi: 0x9a}, + {value: 0xa000, lo: 0x9b, hi: 0x9b}, + {value: 0x4383, lo: 0x9c, hi: 0x9c}, + {value: 0xa000, lo: 0xa5, hi: 0xa5}, + {value: 0x438d, lo: 0xab, hi: 0xab}, + {value: 0x8105, lo: 0xb9, hi: 0xba}, + // Block 0x78, offset 0x287 + {value: 0x0000, lo: 0x06}, + {value: 0x8133, lo: 0x80, hi: 0x82}, + {value: 0x9900, lo: 0xa7, hi: 0xa7}, + {value: 0x2eb5, lo: 0xae, hi: 0xae}, + {value: 0x2ebf, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb1, hi: 0xb2}, + {value: 0x8105, lo: 0xb3, hi: 0xb4}, + // Block 0x79, offset 0x28e + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x80, hi: 0x80}, + {value: 0x8103, lo: 0x8a, hi: 0x8a}, + // Block 0x7a, offset 0x291 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xb5, hi: 0xb5}, + {value: 0x8103, lo: 0xb6, hi: 0xb6}, + // Block 0x7b, offset 0x294 + {value: 0x0002, lo: 0x01}, + {value: 0x8103, lo: 0xa9, hi: 0xaa}, + // Block 0x7c, offset 0x296 + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0xbb, hi: 0xbc}, + {value: 0x9900, lo: 0xbe, hi: 0xbe}, + // Block 0x7d, offset 0x299 + {value: 0x0000, lo: 0x07}, + {value: 0xa000, lo: 0x87, hi: 0x87}, + {value: 0x2ec9, lo: 0x8b, hi: 0x8b}, + {value: 0x2ed3, lo: 0x8c, hi: 0x8c}, + {value: 0x8105, lo: 0x8d, hi: 0x8d}, + {value: 0x9900, lo: 0x97, hi: 0x97}, + {value: 0x8133, lo: 0xa6, hi: 0xac}, + {value: 0x8133, lo: 0xb0, hi: 0xb4}, + // Block 0x7e, offset 0x2a1 + {value: 0x0000, lo: 0x03}, + {value: 0x8105, lo: 0x82, hi: 0x82}, + {value: 0x8103, lo: 0x86, hi: 0x86}, + {value: 0x8133, lo: 0x9e, hi: 0x9e}, + // Block 0x7f, offset 0x2a5 + {value: 0x6a23, lo: 0x06}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb9, hi: 0xb9}, + {value: 0x9900, lo: 0xba, hi: 0xba}, + {value: 0x2ee7, lo: 0xbb, hi: 0xbb}, + {value: 0x2edd, lo: 0xbc, hi: 0xbd}, + {value: 0x2ef1, lo: 0xbe, hi: 0xbe}, + // Block 0x80, offset 0x2ac + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0x82, hi: 0x82}, + {value: 0x8103, lo: 0x83, hi: 0x83}, + // Block 0x81, offset 0x2af + {value: 0x0000, lo: 0x05}, + {value: 0x9900, lo: 0xaf, hi: 0xaf}, + {value: 0xa000, lo: 0xb8, hi: 0xb9}, + {value: 0x2efb, lo: 0xba, hi: 0xba}, + {value: 0x2f05, lo: 0xbb, hi: 0xbb}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x82, offset 0x2b5 + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0x80, hi: 0x80}, + // Block 0x83, offset 0x2b7 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xbf, hi: 0xbf}, + // Block 0x84, offset 0x2b9 + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xb6, hi: 0xb6}, + {value: 0x8103, lo: 0xb7, hi: 0xb7}, + // Block 0x85, offset 0x2bc + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xab, hi: 0xab}, + // Block 0x86, offset 0x2be + {value: 0x0000, lo: 0x02}, + {value: 0x8105, lo: 0xb9, hi: 0xb9}, + {value: 0x8103, lo: 0xba, hi: 0xba}, + // Block 0x87, offset 0x2c1 + {value: 0x0000, lo: 0x04}, + {value: 0x9900, lo: 0xb0, hi: 0xb0}, + {value: 0xa000, lo: 0xb5, hi: 0xb5}, + {value: 0x2f0f, lo: 0xb8, hi: 0xb8}, + {value: 0x8105, lo: 0xbd, hi: 0xbe}, + // Block 0x88, offset 0x2c6 + {value: 0x0000, lo: 0x01}, + {value: 0x8103, lo: 0x83, hi: 0x83}, + // Block 0x89, offset 0x2c8 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xa0, hi: 0xa0}, + // Block 0x8a, offset 0x2ca + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0xb4, hi: 0xb4}, + // Block 0x8b, offset 0x2cc + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x87, hi: 0x87}, + // Block 0x8c, offset 0x2ce + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x99, hi: 0x99}, + // Block 0x8d, offset 0x2d0 + {value: 0x0000, lo: 0x02}, + {value: 0x8103, lo: 0x82, hi: 0x82}, + {value: 0x8105, lo: 0x84, hi: 0x85}, + // Block 0x8e, offset 0x2d3 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x97, hi: 0x97}, + // Block 0x8f, offset 0x2d5 + {value: 0x0000, lo: 0x01}, + {value: 0x8105, lo: 0x81, hi: 0x82}, + // Block 0x90, offset 0x2d7 + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0xb0, hi: 0xb4}, + // Block 0x91, offset 0x2d9 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xb0, hi: 0xb6}, + // Block 0x92, offset 0x2db + {value: 0x0000, lo: 0x01}, + {value: 0x8102, lo: 0xb0, hi: 0xb1}, + // Block 0x93, offset 0x2dd + {value: 0x0000, lo: 0x01}, + {value: 0x8101, lo: 0x9e, hi: 0x9e}, + // Block 0x94, offset 0x2df + {value: 0x0000, lo: 0x0c}, + {value: 0x470d, lo: 0x9e, hi: 0x9e}, + {value: 0x4717, lo: 0x9f, hi: 0x9f}, + {value: 0x474b, lo: 0xa0, hi: 0xa0}, + {value: 0x4759, lo: 0xa1, hi: 0xa1}, + {value: 0x4767, lo: 0xa2, hi: 0xa2}, + {value: 0x4775, lo: 0xa3, hi: 0xa3}, + {value: 0x4783, lo: 0xa4, hi: 0xa4}, + {value: 0x812c, lo: 0xa5, hi: 0xa6}, + {value: 0x8101, lo: 0xa7, hi: 0xa9}, + {value: 0x8131, lo: 0xad, hi: 0xad}, + {value: 0x812c, lo: 0xae, hi: 0xb2}, + {value: 0x812e, lo: 0xbb, hi: 0xbf}, + // Block 0x95, offset 0x2ec + {value: 0x0000, lo: 0x09}, + {value: 0x812e, lo: 0x80, hi: 0x82}, + {value: 0x8133, lo: 0x85, hi: 0x89}, + {value: 0x812e, lo: 0x8a, hi: 0x8b}, + {value: 0x8133, lo: 0xaa, hi: 0xad}, + {value: 0x4721, lo: 0xbb, hi: 0xbb}, + {value: 0x472b, lo: 0xbc, hi: 0xbc}, + {value: 0x4791, lo: 0xbd, hi: 0xbd}, + {value: 0x47ad, lo: 0xbe, hi: 0xbe}, + {value: 0x479f, lo: 0xbf, hi: 0xbf}, + // Block 0x96, offset 0x2f6 + {value: 0x0000, lo: 0x01}, + {value: 0x47bb, lo: 0x80, hi: 0x80}, + // Block 0x97, offset 0x2f8 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x82, hi: 0x84}, + // Block 0x98, offset 0x2fa + {value: 0x0002, lo: 0x03}, + {value: 0x0043, lo: 0x80, hi: 0x99}, + {value: 0x0083, lo: 0x9a, hi: 0xb3}, + {value: 0x0043, lo: 0xb4, hi: 0xbf}, + // Block 0x99, offset 0x2fe + {value: 0x0002, lo: 0x04}, + {value: 0x005b, lo: 0x80, hi: 0x8d}, + {value: 0x0083, lo: 0x8e, hi: 0x94}, + {value: 0x0093, lo: 0x96, hi: 0xa7}, + {value: 0x0043, lo: 0xa8, hi: 0xbf}, + // Block 0x9a, offset 0x303 + {value: 0x0002, lo: 0x0b}, + {value: 0x0073, lo: 0x80, hi: 0x81}, + {value: 0x0083, lo: 0x82, hi: 0x9b}, + {value: 0x0043, lo: 0x9c, hi: 0x9c}, + {value: 0x0047, lo: 0x9e, hi: 0x9f}, + {value: 0x004f, lo: 0xa2, hi: 0xa2}, + {value: 0x0055, lo: 0xa5, hi: 0xa6}, + {value: 0x005d, lo: 0xa9, hi: 0xac}, + {value: 0x0067, lo: 0xae, hi: 0xb5}, + {value: 0x0083, lo: 0xb6, hi: 0xb9}, + {value: 0x008d, lo: 0xbb, hi: 0xbb}, + {value: 0x0091, lo: 0xbd, hi: 0xbf}, + // Block 0x9b, offset 0x30f + {value: 0x0002, lo: 0x04}, + {value: 0x0097, lo: 0x80, hi: 0x83}, + {value: 0x00a1, lo: 0x85, hi: 0x8f}, + {value: 0x0043, lo: 0x90, hi: 0xa9}, + {value: 0x0083, lo: 0xaa, hi: 0xbf}, + // Block 0x9c, offset 0x314 + {value: 0x0002, lo: 0x08}, + {value: 0x00af, lo: 0x80, hi: 0x83}, + {value: 0x0043, lo: 0x84, hi: 0x85}, + {value: 0x0049, lo: 0x87, hi: 0x8a}, + {value: 0x0055, lo: 0x8d, hi: 0x94}, + {value: 0x0067, lo: 0x96, hi: 0x9c}, + {value: 0x0083, lo: 0x9e, hi: 0xb7}, + {value: 0x0043, lo: 0xb8, hi: 0xb9}, + {value: 0x0049, lo: 0xbb, hi: 0xbe}, + // Block 0x9d, offset 0x31d + {value: 0x0002, lo: 0x05}, + {value: 0x0053, lo: 0x80, hi: 0x84}, + {value: 0x005f, lo: 0x86, hi: 0x86}, + {value: 0x0067, lo: 0x8a, hi: 0x90}, + {value: 0x0083, lo: 0x92, hi: 0xab}, + {value: 0x0043, lo: 0xac, hi: 0xbf}, + // Block 0x9e, offset 0x323 + {value: 0x0002, lo: 0x04}, + {value: 0x006b, lo: 0x80, hi: 0x85}, + {value: 0x0083, lo: 0x86, hi: 0x9f}, + {value: 0x0043, lo: 0xa0, hi: 0xb9}, + {value: 0x0083, lo: 0xba, hi: 0xbf}, + // Block 0x9f, offset 0x328 + {value: 0x0002, lo: 0x03}, + {value: 0x008f, lo: 0x80, hi: 0x93}, + {value: 0x0043, lo: 0x94, hi: 0xad}, + {value: 0x0083, lo: 0xae, hi: 0xbf}, + // Block 0xa0, offset 0x32c + {value: 0x0002, lo: 0x04}, + {value: 0x00a7, lo: 0x80, hi: 0x87}, + {value: 0x0043, lo: 0x88, hi: 0xa1}, + {value: 0x0083, lo: 0xa2, hi: 0xbb}, + {value: 0x0043, lo: 0xbc, hi: 0xbf}, + // Block 0xa1, offset 0x331 + {value: 0x0002, lo: 0x03}, + {value: 0x004b, lo: 0x80, hi: 0x95}, + {value: 0x0083, lo: 0x96, hi: 0xaf}, + {value: 0x0043, lo: 0xb0, hi: 0xbf}, + // Block 0xa2, offset 0x335 + {value: 0x0003, lo: 0x0f}, + {value: 0x023c, lo: 0x80, hi: 0x80}, + {value: 0x0556, lo: 0x81, hi: 0x81}, + {value: 0x023f, lo: 0x82, hi: 0x9a}, + {value: 0x0552, lo: 0x9b, hi: 0x9b}, + {value: 0x024b, lo: 0x9c, hi: 0x9c}, + {value: 0x0254, lo: 0x9d, hi: 0x9d}, + {value: 0x025a, lo: 0x9e, hi: 0x9e}, + {value: 0x027e, lo: 0x9f, hi: 0x9f}, + {value: 0x026f, lo: 0xa0, hi: 0xa0}, + {value: 0x026c, lo: 0xa1, hi: 0xa1}, + {value: 0x01f7, lo: 0xa2, hi: 0xb2}, + {value: 0x020c, lo: 0xb3, hi: 0xb3}, + {value: 0x022a, lo: 0xb4, hi: 0xba}, + {value: 0x0556, lo: 0xbb, hi: 0xbb}, + {value: 0x023f, lo: 0xbc, hi: 0xbf}, + // Block 0xa3, offset 0x345 + {value: 0x0003, lo: 0x0d}, + {value: 0x024b, lo: 0x80, hi: 0x94}, + {value: 0x0552, lo: 0x95, hi: 0x95}, + {value: 0x024b, lo: 0x96, hi: 0x96}, + {value: 0x0254, lo: 0x97, hi: 0x97}, + {value: 0x025a, lo: 0x98, hi: 0x98}, + {value: 0x027e, lo: 0x99, hi: 0x99}, + {value: 0x026f, lo: 0x9a, hi: 0x9a}, + {value: 0x026c, lo: 0x9b, hi: 0x9b}, + {value: 0x01f7, lo: 0x9c, hi: 0xac}, + {value: 0x020c, lo: 0xad, hi: 0xad}, + {value: 0x022a, lo: 0xae, hi: 0xb4}, + {value: 0x0556, lo: 0xb5, hi: 0xb5}, + {value: 0x023f, lo: 0xb6, hi: 0xbf}, + // Block 0xa4, offset 0x353 + {value: 0x0003, lo: 0x0d}, + {value: 0x025d, lo: 0x80, hi: 0x8e}, + {value: 0x0552, lo: 0x8f, hi: 0x8f}, + {value: 0x024b, lo: 0x90, hi: 0x90}, + {value: 0x0254, lo: 0x91, hi: 0x91}, + {value: 0x025a, lo: 0x92, hi: 0x92}, + {value: 0x027e, lo: 0x93, hi: 0x93}, + {value: 0x026f, lo: 0x94, hi: 0x94}, + {value: 0x026c, lo: 0x95, hi: 0x95}, + {value: 0x01f7, lo: 0x96, hi: 0xa6}, + {value: 0x020c, lo: 0xa7, hi: 0xa7}, + {value: 0x022a, lo: 0xa8, hi: 0xae}, + {value: 0x0556, lo: 0xaf, hi: 0xaf}, + {value: 0x023f, lo: 0xb0, hi: 0xbf}, + // Block 0xa5, offset 0x361 + {value: 0x0003, lo: 0x0d}, + {value: 0x026f, lo: 0x80, hi: 0x88}, + {value: 0x0552, lo: 0x89, hi: 0x89}, + {value: 0x024b, lo: 0x8a, hi: 0x8a}, + {value: 0x0254, lo: 0x8b, hi: 0x8b}, + {value: 0x025a, lo: 0x8c, hi: 0x8c}, + {value: 0x027e, lo: 0x8d, hi: 0x8d}, + {value: 0x026f, lo: 0x8e, hi: 0x8e}, + {value: 0x026c, lo: 0x8f, hi: 0x8f}, + {value: 0x01f7, lo: 0x90, hi: 0xa0}, + {value: 0x020c, lo: 0xa1, hi: 0xa1}, + {value: 0x022a, lo: 0xa2, hi: 0xa8}, + {value: 0x0556, lo: 0xa9, hi: 0xa9}, + {value: 0x023f, lo: 0xaa, hi: 0xbf}, + // Block 0xa6, offset 0x36f + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0x8f, hi: 0x8f}, + // Block 0xa7, offset 0x371 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xae, hi: 0xae}, + // Block 0xa8, offset 0x373 + {value: 0x0000, lo: 0x01}, + {value: 0x8133, lo: 0xac, hi: 0xaf}, + // Block 0xa9, offset 0x375 + {value: 0x0000, lo: 0x03}, + {value: 0x8134, lo: 0xac, hi: 0xad}, + {value: 0x812e, lo: 0xae, hi: 0xae}, + {value: 0x8133, lo: 0xaf, hi: 0xaf}, + // Block 0xaa, offset 0x379 + {value: 0x0000, lo: 0x01}, + {value: 0x812e, lo: 0x90, hi: 0x96}, + // Block 0xab, offset 0x37b + {value: 0x0000, lo: 0x02}, + {value: 0x8133, lo: 0x84, hi: 0x89}, + {value: 0x8103, lo: 0x8a, hi: 0x8a}, + // Block 0xac, offset 0x37e + {value: 0x0002, lo: 0x0a}, + {value: 0x0063, lo: 0x80, hi: 0x89}, + {value: 0x1a7e, lo: 0x8a, hi: 0x8a}, + {value: 0x1ab1, lo: 0x8b, hi: 0x8b}, + {value: 0x1acc, lo: 0x8c, hi: 0x8c}, + {value: 0x1ad2, lo: 0x8d, hi: 0x8d}, + {value: 0x1cf0, lo: 0x8e, hi: 0x8e}, + {value: 0x1ade, lo: 0x8f, hi: 0x8f}, + {value: 0x1aa8, lo: 0xaa, hi: 0xaa}, + {value: 0x1aab, lo: 0xab, hi: 0xab}, + {value: 0x1aae, lo: 0xac, hi: 0xac}, + // Block 0xad, offset 0x389 + {value: 0x0000, lo: 0x01}, + {value: 0x1a6c, lo: 0x90, hi: 0x90}, + // Block 0xae, offset 0x38b + {value: 0x0028, lo: 0x09}, + {value: 0x2999, lo: 0x80, hi: 0x80}, + {value: 0x295d, lo: 0x81, hi: 0x81}, + {value: 0x2967, lo: 0x82, hi: 0x82}, + {value: 0x297b, lo: 0x83, hi: 0x84}, + {value: 0x2985, lo: 0x85, hi: 0x86}, + {value: 0x2971, lo: 0x87, hi: 0x87}, + {value: 0x298f, lo: 0x88, hi: 0x88}, + {value: 0x0c6a, lo: 0x90, hi: 0x90}, + {value: 0x09e2, lo: 0x91, hi: 0x91}, + // Block 0xaf, offset 0x395 + {value: 0x0002, lo: 0x01}, + {value: 0x0021, lo: 0xb0, hi: 0xb9}, +} + +// recompMap: 7528 bytes (entries only) +var recompMap map[uint32]rune +var recompMapOnce sync.Once + +const recompMapPacked = "" + + "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0 + "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1 + "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2 + "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3 + "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4 + "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5 + "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7 + "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8 + "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9 + "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA + "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB + "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC + "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD + "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE + "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF + "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1 + "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2 + "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3 + "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4 + "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5 + "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6 + "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9 + "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA + "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB + "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC + "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD + "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0 + "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1 + "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2 + "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3 + "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4 + "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5 + "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7 + "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8 + "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9 + "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA + "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB + "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC + "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED + "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE + "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF + "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1 + "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2 + "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3 + "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4 + "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5 + "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6 + "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9 + "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA + "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB + "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC + "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD + "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF + "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100 + "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101 + "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102 + "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103 + "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104 + "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105 + "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106 + "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107 + "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108 + "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109 + "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A + "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B + "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C + "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D + "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E + "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F + "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112 + "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113 + "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114 + "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115 + "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116 + "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117 + "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118 + "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119 + "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A + "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B + "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C + "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D + "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E + "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F + "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120 + "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121 + "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122 + "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123 + "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124 + "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125 + "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128 + "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129 + "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A + "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B + "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C + "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D + "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E + "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F + "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130 + "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134 + "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135 + "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136 + "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137 + "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139 + "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A + "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B + "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C + "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D + "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E + "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143 + "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144 + "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145 + "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146 + "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147 + "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148 + "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C + "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D + "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E + "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F + "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150 + "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151 + "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154 + "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155 + "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156 + "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157 + "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158 + "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159 + "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A + "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B + "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C + "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D + "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E + "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F + "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160 + "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161 + "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162 + "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163 + "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164 + "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165 + "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168 + "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169 + "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A + "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B + "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C + "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D + "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E + "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F + "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170 + "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171 + "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172 + "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173 + "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174 + "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175 + "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176 + "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177 + "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178 + "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179 + "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A + "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B + "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C + "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D + "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E + "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0 + "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1 + "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF + "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0 + "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD + "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE + "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF + "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0 + "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1 + "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2 + "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3 + "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4 + "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5 + "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6 + "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7 + "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8 + "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9 + "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA + "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB + "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC + "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE + "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF + "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0 + "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1 + "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2 + "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3 + "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6 + "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7 + "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8 + "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9 + "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA + "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB + "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC + "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED + "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE + "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF + "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0 + "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4 + "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5 + "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8 + "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9 + "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA + "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB + "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC + "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD + "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE + "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF + "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200 + "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201 + "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202 + "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203 + "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204 + "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205 + "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206 + "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207 + "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208 + "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209 + "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A + "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B + "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C + "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D + "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E + "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F + "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210 + "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211 + "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212 + "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213 + "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214 + "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215 + "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216 + "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217 + "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218 + "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219 + "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A + "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B + "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E + "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F + "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226 + "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227 + "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228 + "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229 + "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A + "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B + "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C + "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D + "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E + "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F + "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230 + "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231 + "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232 + "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233 + "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385 + "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386 + "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388 + "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389 + "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A + "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C + "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E + "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F + "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390 + "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA + "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB + "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC + "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD + "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE + "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF + "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0 + "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA + "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB + "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC + "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD + "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE + "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3 + "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4 + "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400 + "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401 + "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403 + "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407 + "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C + "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D + "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E + "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419 + "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439 + "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450 + "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451 + "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453 + "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457 + "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C + "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D + "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E + "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476 + "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477 + "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1 + "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2 + "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0 + "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1 + "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2 + "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3 + "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6 + "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7 + "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA + "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB + "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC + "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD + "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE + "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF + "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2 + "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3 + "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4 + "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5 + "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6 + "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7 + "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA + "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB + "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC + "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED + "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE + "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF + "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0 + "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1 + "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2 + "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3 + "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4 + "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5 + "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8 + "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9 + "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622 + "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623 + "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624 + "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625 + "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626 + "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0 + "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2 + "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3 + "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929 + "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931 + "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934 + "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB + "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC + "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48 + "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B + "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C + "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94 + "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA + "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB + "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC + "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48 + "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0 + "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7 + "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8 + "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA + "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB + "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A + "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B + "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C + "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA + "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC + "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD + "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE + "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026 + "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06 + "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08 + "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A + "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C + "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E + "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12 + "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B + "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D + "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40 + "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41 + "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43 + "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00 + "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01 + "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02 + "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03 + "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04 + "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05 + "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06 + "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07 + "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08 + "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09 + "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A + "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B + "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C + "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D + "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E + "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F + "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10 + "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11 + "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12 + "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13 + "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14 + "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15 + "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16 + "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17 + "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18 + "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19 + "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A + "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B + "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C + "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D + "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E + "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F + "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20 + "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21 + "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22 + "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23 + "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24 + "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25 + "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26 + "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27 + "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28 + "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29 + "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A + "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B + "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C + "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D + "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E + "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F + "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30 + "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31 + "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32 + "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33 + "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34 + "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35 + "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36 + "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37 + "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38 + "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39 + "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A + "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B + "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C + "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D + "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E + "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F + "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40 + "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41 + "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42 + "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43 + "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44 + "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45 + "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46 + "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47 + "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48 + "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49 + "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A + "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B + "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C + "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D + "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E + "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F + "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50 + "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51 + "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52 + "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53 + "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54 + "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55 + "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56 + "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57 + "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58 + "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59 + "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A + "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B + "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C + "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D + "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E + "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F + "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60 + "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61 + "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62 + "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63 + "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64 + "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65 + "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66 + "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67 + "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68 + "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69 + "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A + "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B + "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C + "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D + "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E + "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F + "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70 + "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71 + "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72 + "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73 + "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74 + "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75 + "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76 + "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77 + "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78 + "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79 + "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A + "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C + "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D + "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E + "\x00v\x03#\x00\x00\x1e\x7f" + // 0x00760323: 0x00001E7F + "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 + "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 + "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 + "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83 + "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84 + "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85 + "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86 + "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87 + "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88 + "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89 + "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A + "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B + "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C + "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D + "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E + "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F + "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90 + "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91 + "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92 + "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93 + "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94 + "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95 + "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96 + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 + "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 + "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 + "\x01\x7f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 + "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 + "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 + "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3 + "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4 + "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5 + "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6 + "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7 + "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8 + "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9 + "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA + "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB + "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC + "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD + "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE + "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF + "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0 + "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1 + "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2 + "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3 + "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4 + "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5 + "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6 + "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7 + "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8 + "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9 + "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA + "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB + "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC + "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD + "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE + "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF + "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0 + "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1 + "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2 + "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3 + "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4 + "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5 + "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6 + "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7 + "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8 + "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9 + "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA + "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB + "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC + "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD + "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE + "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF + "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0 + "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1 + "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2 + "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3 + "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4 + "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5 + "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6 + "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7 + "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8 + "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9 + "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA + "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB + "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC + "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD + "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE + "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF + "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0 + "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1 + "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2 + "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3 + "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4 + "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5 + "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6 + "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7 + "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8 + "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9 + "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA + "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB + "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC + "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED + "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE + "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF + "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0 + "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1 + "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2 + "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3 + "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4 + "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5 + "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6 + "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7 + "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8 + "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9 + "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00 + "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01 + "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02 + "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03 + "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04 + "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05 + "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06 + "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07 + "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08 + "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09 + "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A + "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B + "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C + "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D + "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E + "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F + "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10 + "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11 + "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12 + "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13 + "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14 + "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15 + "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18 + "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19 + "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A + "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B + "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C + "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D + "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20 + "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21 + "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22 + "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23 + "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24 + "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25 + "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26 + "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27 + "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28 + "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29 + "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A + "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B + "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C + "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D + "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E + "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F + "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30 + "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31 + "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32 + "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33 + "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34 + "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35 + "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36 + "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37 + "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38 + "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39 + "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A + "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B + "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C + "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D + "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E + "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F + "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40 + "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41 + "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42 + "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43 + "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44 + "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45 + "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48 + "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49 + "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A + "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B + "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C + "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D + "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50 + "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51 + "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52 + "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53 + "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54 + "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55 + "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56 + "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57 + "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59 + "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B + "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D + "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F + "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60 + "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61 + "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62 + "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63 + "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64 + "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65 + "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66 + "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67 + "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68 + "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69 + "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A + "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B + "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C + "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D + "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E + "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F + "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70 + "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72 + "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74 + "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76 + "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78 + "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A + "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C + "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80 + "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81 + "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82 + "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83 + "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84 + "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85 + "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86 + "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87 + "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88 + "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89 + "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A + "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B + "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C + "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D + "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E + "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F + "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90 + "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91 + "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92 + "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93 + "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94 + "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95 + "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96 + "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97 + "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98 + "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99 + "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A + "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B + "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C + "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D + "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E + "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F + "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0 + "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1 + "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2 + "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3 + "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4 + "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5 + "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6 + "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7 + "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8 + "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9 + "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA + "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB + "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC + "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD + "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE + "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF + "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0 + "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1 + "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2 + "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3 + "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4 + "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6 + "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7 + "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8 + "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9 + "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA + "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC + "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1 + "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2 + "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3 + "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4 + "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6 + "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7 + "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8 + "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA + "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC + "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD + "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE + "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF + "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0 + "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1 + "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2 + "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6 + "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7 + "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8 + "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9 + "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA + "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD + "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE + "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF + "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0 + "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1 + "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2 + "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4 + "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5 + "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6 + "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7 + "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8 + "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9 + "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA + "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC + "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED + "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2 + "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3 + "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4 + "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6 + "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7 + "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8 + "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA + "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC + "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A + "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B + "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE + "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD + "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE + "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF + "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204 + "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209 + "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C + "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224 + "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226 + "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241 + "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244 + "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247 + "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249 + "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260 + "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262 + "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D + "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E + "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F + "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270 + "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271 + "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274 + "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275 + "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278 + "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279 + "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280 + "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281 + "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284 + "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285 + "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288 + "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289 + "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC + "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD + "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE + "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF + "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0 + "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1 + "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2 + "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3 + "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA + "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB + "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC + "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED + "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C + "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E + "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050 + "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052 + "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054 + "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056 + "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058 + "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A + "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C + "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E + "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060 + "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062 + "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065 + "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067 + "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069 + "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070 + "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071 + "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073 + "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074 + "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076 + "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077 + "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079 + "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A + "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C + "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D + "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094 + "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E + "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC + "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE + "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0 + "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2 + "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4 + "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6 + "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8 + "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA + "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC + "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE + "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0 + "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2 + "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5 + "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7 + "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9 + "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0 + "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1 + "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3 + "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4 + "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6 + "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7 + "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9 + "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA + "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC + "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD + "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4 + "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7 + "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8 + "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9 + "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA + "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE + "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A + "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C + "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB + "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E + "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F + "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B + "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C + "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB + "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC + "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE + "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA + "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB + "\x195\x190\x00\x01\x198" + // 0x19351930: 0x00011938 + "" + // Total size of tables: 56KB (57068 bytes) diff --git a/vendor/golang.org/x/text/unicode/norm/trie.go b/vendor/golang.org/x/text/unicode/norm/trie.go index 423386bf4369..e4250ae22ce0 100644 --- a/vendor/golang.org/x/text/unicode/norm/trie.go +++ b/vendor/golang.org/x/text/unicode/norm/trie.go @@ -29,7 +29,7 @@ var ( nfkcData = newNfkcTrie(0) ) -// lookupValue determines the type of block n and looks up the value for b. +// lookup determines the type of block n and looks up the value for b. // For n < t.cutoff, the block is a simple lookup table. Otherwise, the block // is a list of ranges with an accompanying value. Given a matching range r, // the value for b is by r.value + (b - r.lo) * stride. diff --git a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go index 165ede0f8f38..03543bd4bb8f 100644 --- a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go +++ b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go @@ -128,15 +128,14 @@ func Read(in io.Reader, fset *token.FileSet, imports map[string]*types.Package, // (from "version"). Select appropriate importer. if len(data) > 0 { switch data[0] { - case 'i': - _, pkg, err := gcimporter.IImportData(fset, imports, data[1:], path) - return pkg, err + case 'v', 'c', 'd': // binary, till go1.10 + return nil, fmt.Errorf("binary (%c) import format is no longer supported", data[0]) - case 'v', 'c', 'd': - _, pkg, err := gcimporter.BImportData(fset, imports, data, path) + case 'i': // indexed, till go1.19 + _, pkg, err := gcimporter.IImportData(fset, imports, data[1:], path) return pkg, err - case 'u': + case 'u': // unified, from go1.20 _, pkg, err := gcimporter.UImportData(fset, imports, data[1:], path) return pkg, err diff --git a/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go b/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go index 18a002f82a1f..0454cdd78e55 100644 --- a/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go +++ b/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go @@ -8,7 +8,6 @@ package packagesdriver import ( "context" "fmt" - "go/types" "strings" "golang.org/x/tools/internal/gocommand" @@ -16,7 +15,7 @@ import ( var debug = false -func GetSizesGolist(ctx context.Context, inv gocommand.Invocation, gocmdRunner *gocommand.Runner) (types.Sizes, error) { +func GetSizesForArgsGolist(ctx context.Context, inv gocommand.Invocation, gocmdRunner *gocommand.Runner) (string, string, error) { inv.Verb = "list" inv.Args = []string{"-f", "{{context.GOARCH}} {{context.Compiler}}", "--", "unsafe"} stdout, stderr, friendlyErr, rawErr := gocmdRunner.RunRaw(ctx, inv) @@ -29,21 +28,21 @@ func GetSizesGolist(ctx context.Context, inv gocommand.Invocation, gocmdRunner * inv.Args = []string{"GOARCH"} envout, enverr := gocmdRunner.Run(ctx, inv) if enverr != nil { - return nil, enverr + return "", "", enverr } goarch = strings.TrimSpace(envout.String()) compiler = "gc" } else { - return nil, friendlyErr + return "", "", friendlyErr } } else { fields := strings.Fields(stdout.String()) if len(fields) < 2 { - return nil, fmt.Errorf("could not parse GOARCH and Go compiler in format \" \":\nstdout: <<%s>>\nstderr: <<%s>>", + return "", "", fmt.Errorf("could not parse GOARCH and Go compiler in format \" \":\nstdout: <<%s>>\nstderr: <<%s>>", stdout.String(), stderr.String()) } goarch = fields[0] compiler = fields[1] } - return types.SizesFor(compiler, goarch), nil + return compiler, goarch, nil } diff --git a/vendor/golang.org/x/tools/go/packages/golist.go b/vendor/golang.org/x/tools/go/packages/golist.go index 6bb7168d2e34..b5de9cf9f210 100644 --- a/vendor/golang.org/x/tools/go/packages/golist.go +++ b/vendor/golang.org/x/tools/go/packages/golist.go @@ -9,7 +9,6 @@ import ( "context" "encoding/json" "fmt" - "go/types" "io/ioutil" "log" "os" @@ -153,10 +152,10 @@ func goListDriver(cfg *Config, patterns ...string) (*driverResponse, error) { if cfg.Mode&NeedTypesSizes != 0 || cfg.Mode&NeedTypes != 0 { sizeswg.Add(1) go func() { - var sizes types.Sizes - sizes, sizeserr = packagesdriver.GetSizesGolist(ctx, state.cfgInvocation(), cfg.gocmdRunner) - // types.SizesFor always returns nil or a *types.StdSizes. - response.dr.Sizes, _ = sizes.(*types.StdSizes) + compiler, arch, err := packagesdriver.GetSizesForArgsGolist(ctx, state.cfgInvocation(), cfg.gocmdRunner) + sizeserr = err + response.dr.Compiler = compiler + response.dr.Arch = arch sizeswg.Done() }() } @@ -625,7 +624,12 @@ func (state *golistState) createDriverResponse(words ...string) (*driverResponse } if pkg.PkgPath == "unsafe" { - pkg.GoFiles = nil // ignore fake unsafe.go file + pkg.CompiledGoFiles = nil // ignore fake unsafe.go file (#59929) + } else if len(pkg.CompiledGoFiles) == 0 { + // Work around for pre-go.1.11 versions of go list. + // TODO(matloob): they should be handled by the fallback. + // Can we delete this? + pkg.CompiledGoFiles = pkg.GoFiles } // Assume go list emits only absolute paths for Dir. @@ -663,16 +667,12 @@ func (state *golistState) createDriverResponse(words ...string) (*driverResponse response.Roots = append(response.Roots, pkg.ID) } - // Work around for pre-go.1.11 versions of go list. - // TODO(matloob): they should be handled by the fallback. - // Can we delete this? - if len(pkg.CompiledGoFiles) == 0 { - pkg.CompiledGoFiles = pkg.GoFiles - } - // Temporary work-around for golang/go#39986. Parse filenames out of // error messages. This happens if there are unrecoverable syntax // errors in the source, so we can't match on a specific error message. + // + // TODO(rfindley): remove this heuristic, in favor of considering + // InvalidGoFiles from the list driver. if err := p.Error; err != nil && state.shouldAddFilenameFromError(p) { addFilenameFromPos := func(pos string) bool { split := strings.Split(pos, ":") @@ -891,6 +891,15 @@ func golistargs(cfg *Config, words []string, goVersion int) []string { // probably because you'd just get the TestMain. fmt.Sprintf("-find=%t", !cfg.Tests && cfg.Mode&findFlags == 0 && !usesExportData(cfg)), } + + // golang/go#60456: with go1.21 and later, go list serves pgo variants, which + // can be costly to compute and may result in redundant processing for the + // caller. Disable these variants. If someone wants to add e.g. a NeedPGO + // mode flag, that should be a separate proposal. + if goVersion >= 21 { + fullargs = append(fullargs, "-pgo=off") + } + fullargs = append(fullargs, cfg.BuildFlags...) fullargs = append(fullargs, "--") fullargs = append(fullargs, words...) diff --git a/vendor/golang.org/x/tools/go/packages/packages.go b/vendor/golang.org/x/tools/go/packages/packages.go index 0f1505b808a6..124a6fe143b1 100644 --- a/vendor/golang.org/x/tools/go/packages/packages.go +++ b/vendor/golang.org/x/tools/go/packages/packages.go @@ -220,8 +220,10 @@ type driverResponse struct { // lists of multiple drivers, go/packages will fall back to the next driver. NotHandled bool - // Sizes, if not nil, is the types.Sizes to use when type checking. - Sizes *types.StdSizes + // Compiler and Arch are the arguments pass of types.SizesFor + // to get a types.Sizes to use when type checking. + Compiler string + Arch string // Roots is the set of package IDs that make up the root packages. // We have to encode this separately because when we encode a single package @@ -262,7 +264,7 @@ func Load(cfg *Config, patterns ...string) ([]*Package, error) { if err != nil { return nil, err } - l.sizes = response.Sizes + l.sizes = types.SizesFor(response.Compiler, response.Arch) return l.refine(response) } @@ -308,6 +310,9 @@ type Package struct { TypeErrors []types.Error // GoFiles lists the absolute file paths of the package's Go source files. + // It may include files that should not be compiled, for example because + // they contain non-matching build tags, are documentary pseudo-files such as + // unsafe/unsafe.go or builtin/builtin.go, or are subject to cgo preprocessing. GoFiles []string // CompiledGoFiles lists the absolute file paths of the package's source @@ -627,7 +632,7 @@ func newLoader(cfg *Config) *loader { return ld } -// refine connects the supplied packages into a graph and then adds type and +// refine connects the supplied packages into a graph and then adds type // and syntax information as requested by the LoadMode. func (ld *loader) refine(response *driverResponse) ([]*Package, error) { roots := response.Roots @@ -1040,6 +1045,9 @@ func (ld *loader) loadPackage(lpkg *loaderPackage) { Error: appendError, Sizes: ld.sizes, } + if lpkg.Module != nil && lpkg.Module.GoVersion != "" { + typesinternal.SetGoVersion(tc, "go"+lpkg.Module.GoVersion) + } if (ld.Mode & typecheckCgo) != 0 { if !typesinternal.SetUsesCgo(tc) { appendError(Error{ diff --git a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go new file mode 100644 index 000000000000..fa5834baf72b --- /dev/null +++ b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go @@ -0,0 +1,827 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package objectpath defines a naming scheme for types.Objects +// (that is, named entities in Go programs) relative to their enclosing +// package. +// +// Type-checker objects are canonical, so they are usually identified by +// their address in memory (a pointer), but a pointer has meaning only +// within one address space. By contrast, objectpath names allow the +// identity of an object to be sent from one program to another, +// establishing a correspondence between types.Object variables that are +// distinct but logically equivalent. +// +// A single object may have multiple paths. In this example, +// +// type A struct{ X int } +// type B A +// +// the field X has two paths due to its membership of both A and B. +// The For(obj) function always returns one of these paths, arbitrarily +// but consistently. +package objectpath + +import ( + "fmt" + "go/types" + "sort" + "strconv" + "strings" + _ "unsafe" + + "golang.org/x/tools/internal/typeparams" + "golang.org/x/tools/internal/typesinternal" +) + +// A Path is an opaque name that identifies a types.Object +// relative to its package. Conceptually, the name consists of a +// sequence of destructuring operations applied to the package scope +// to obtain the original object. +// The name does not include the package itself. +type Path string + +// Encoding +// +// An object path is a textual and (with training) human-readable encoding +// of a sequence of destructuring operators, starting from a types.Package. +// The sequences represent a path through the package/object/type graph. +// We classify these operators by their type: +// +// PO package->object Package.Scope.Lookup +// OT object->type Object.Type +// TT type->type Type.{Elem,Key,Params,Results,Underlying} [EKPRU] +// TO type->object Type.{At,Field,Method,Obj} [AFMO] +// +// All valid paths start with a package and end at an object +// and thus may be defined by the regular language: +// +// objectpath = PO (OT TT* TO)* +// +// The concrete encoding follows directly: +// - The only PO operator is Package.Scope.Lookup, which requires an identifier. +// - The only OT operator is Object.Type, +// which we encode as '.' because dot cannot appear in an identifier. +// - The TT operators are encoded as [EKPRUTC]; +// one of these (TypeParam) requires an integer operand, +// which is encoded as a string of decimal digits. +// - The TO operators are encoded as [AFMO]; +// three of these (At,Field,Method) require an integer operand, +// which is encoded as a string of decimal digits. +// These indices are stable across different representations +// of the same package, even source and export data. +// The indices used are implementation specific and may not correspond to +// the argument to the go/types function. +// +// In the example below, +// +// package p +// +// type T interface { +// f() (a string, b struct{ X int }) +// } +// +// field X has the path "T.UM0.RA1.F0", +// representing the following sequence of operations: +// +// p.Lookup("T") T +// .Type().Underlying().Method(0). f +// .Type().Results().At(1) b +// .Type().Field(0) X +// +// The encoding is not maximally compact---every R or P is +// followed by an A, for example---but this simplifies the +// encoder and decoder. +const ( + // object->type operators + opType = '.' // .Type() (Object) + + // type->type operators + opElem = 'E' // .Elem() (Pointer, Slice, Array, Chan, Map) + opKey = 'K' // .Key() (Map) + opParams = 'P' // .Params() (Signature) + opResults = 'R' // .Results() (Signature) + opUnderlying = 'U' // .Underlying() (Named) + opTypeParam = 'T' // .TypeParams.At(i) (Named, Signature) + opConstraint = 'C' // .Constraint() (TypeParam) + + // type->object operators + opAt = 'A' // .At(i) (Tuple) + opField = 'F' // .Field(i) (Struct) + opMethod = 'M' // .Method(i) (Named or Interface; not Struct: "promoted" names are ignored) + opObj = 'O' // .Obj() (Named, TypeParam) +) + +// For is equivalent to new(Encoder).For(obj). +// +// It may be more efficient to reuse a single Encoder across several calls. +func For(obj types.Object) (Path, error) { + return new(Encoder).For(obj) +} + +// An Encoder amortizes the cost of encoding the paths of multiple objects. +// The zero value of an Encoder is ready to use. +type Encoder struct { + scopeMemo map[*types.Scope][]types.Object // memoization of scopeObjects + namedMethodsMemo map[*types.Named][]*types.Func // memoization of namedMethods() + skipMethodSorting bool +} + +// Expose back doors so that gopls can avoid method sorting, which can dominate +// analysis on certain repositories. +// +// TODO(golang/go#61443): remove this. +func init() { + typesinternal.SkipEncoderMethodSorting = func(enc interface{}) { + enc.(*Encoder).skipMethodSorting = true + } + typesinternal.ObjectpathObject = object +} + +// For returns the path to an object relative to its package, +// or an error if the object is not accessible from the package's Scope. +// +// The For function guarantees to return a path only for the following objects: +// - package-level types +// - exported package-level non-types +// - methods +// - parameter and result variables +// - struct fields +// These objects are sufficient to define the API of their package. +// The objects described by a package's export data are drawn from this set. +// +// The set of objects accessible from a package's Scope depends on +// whether the package was produced by type-checking syntax, or +// reading export data; the latter may have a smaller Scope since +// export data trims objects that are not reachable from an exported +// declaration. For example, the For function will return a path for +// an exported method of an unexported type that is not reachable +// from any public declaration; this path will cause the Object +// function to fail if called on a package loaded from export data. +// TODO(adonovan): is this a bug or feature? Should this package +// compute accessibility in the same way? +// +// For does not return a path for predeclared names, imported package +// names, local names, and unexported package-level names (except +// types). +// +// Example: given this definition, +// +// package p +// +// type T interface { +// f() (a string, b struct{ X int }) +// } +// +// For(X) would return a path that denotes the following sequence of operations: +// +// p.Scope().Lookup("T") (TypeName T) +// .Type().Underlying().Method(0). (method Func f) +// .Type().Results().At(1) (field Var b) +// .Type().Field(0) (field Var X) +// +// where p is the package (*types.Package) to which X belongs. +func (enc *Encoder) For(obj types.Object) (Path, error) { + pkg := obj.Pkg() + + // This table lists the cases of interest. + // + // Object Action + // ------ ------ + // nil reject + // builtin reject + // pkgname reject + // label reject + // var + // package-level accept + // func param/result accept + // local reject + // struct field accept + // const + // package-level accept + // local reject + // func + // package-level accept + // init functions reject + // concrete method accept + // interface method accept + // type + // package-level accept + // local reject + // + // The only accessible package-level objects are members of pkg itself. + // + // The cases are handled in four steps: + // + // 1. reject nil and builtin + // 2. accept package-level objects + // 3. reject obviously invalid objects + // 4. search the API for the path to the param/result/field/method. + + // 1. reference to nil or builtin? + if pkg == nil { + return "", fmt.Errorf("predeclared %s has no path", obj) + } + scope := pkg.Scope() + + // 2. package-level object? + if scope.Lookup(obj.Name()) == obj { + // Only exported objects (and non-exported types) have a path. + // Non-exported types may be referenced by other objects. + if _, ok := obj.(*types.TypeName); !ok && !obj.Exported() { + return "", fmt.Errorf("no path for non-exported %v", obj) + } + return Path(obj.Name()), nil + } + + // 3. Not a package-level object. + // Reject obviously non-viable cases. + switch obj := obj.(type) { + case *types.TypeName: + if _, ok := obj.Type().(*typeparams.TypeParam); !ok { + // With the exception of type parameters, only package-level type names + // have a path. + return "", fmt.Errorf("no path for %v", obj) + } + case *types.Const, // Only package-level constants have a path. + *types.Label, // Labels are function-local. + *types.PkgName: // PkgNames are file-local. + return "", fmt.Errorf("no path for %v", obj) + + case *types.Var: + // Could be: + // - a field (obj.IsField()) + // - a func parameter or result + // - a local var. + // Sadly there is no way to distinguish + // a param/result from a local + // so we must proceed to the find. + + case *types.Func: + // A func, if not package-level, must be a method. + if recv := obj.Type().(*types.Signature).Recv(); recv == nil { + return "", fmt.Errorf("func is not a method: %v", obj) + } + + if path, ok := enc.concreteMethod(obj); ok { + // Fast path for concrete methods that avoids looping over scope. + return path, nil + } + + default: + panic(obj) + } + + // 4. Search the API for the path to the var (field/param/result) or method. + + // First inspect package-level named types. + // In the presence of path aliases, these give + // the best paths because non-types may + // refer to types, but not the reverse. + empty := make([]byte, 0, 48) // initial space + objs := enc.scopeObjects(scope) + for _, o := range objs { + tname, ok := o.(*types.TypeName) + if !ok { + continue // handle non-types in second pass + } + + path := append(empty, o.Name()...) + path = append(path, opType) + + T := o.Type() + + if tname.IsAlias() { + // type alias + if r := find(obj, T, path, nil); r != nil { + return Path(r), nil + } + } else { + if named, _ := T.(*types.Named); named != nil { + if r := findTypeParam(obj, typeparams.ForNamed(named), path, nil); r != nil { + // generic named type + return Path(r), nil + } + } + // defined (named) type + if r := find(obj, T.Underlying(), append(path, opUnderlying), nil); r != nil { + return Path(r), nil + } + } + } + + // Then inspect everything else: + // non-types, and declared methods of defined types. + for _, o := range objs { + path := append(empty, o.Name()...) + if _, ok := o.(*types.TypeName); !ok { + if o.Exported() { + // exported non-type (const, var, func) + if r := find(obj, o.Type(), append(path, opType), nil); r != nil { + return Path(r), nil + } + } + continue + } + + // Inspect declared methods of defined types. + if T, ok := o.Type().(*types.Named); ok { + path = append(path, opType) + if !enc.skipMethodSorting { + // Note that method index here is always with respect + // to canonical ordering of methods, regardless of how + // they appear in the underlying type. + for i, m := range enc.namedMethods(T) { + path2 := appendOpArg(path, opMethod, i) + if m == obj { + return Path(path2), nil // found declared method + } + if r := find(obj, m.Type(), append(path2, opType), nil); r != nil { + return Path(r), nil + } + } + } else { + // This branch must match the logic in the branch above, using go/types + // APIs without sorting. + for i := 0; i < T.NumMethods(); i++ { + m := T.Method(i) + path2 := appendOpArg(path, opMethod, i) + if m == obj { + return Path(path2), nil // found declared method + } + if r := find(obj, m.Type(), append(path2, opType), nil); r != nil { + return Path(r), nil + } + } + } + } + } + + return "", fmt.Errorf("can't find path for %v in %s", obj, pkg.Path()) +} + +func appendOpArg(path []byte, op byte, arg int) []byte { + path = append(path, op) + path = strconv.AppendInt(path, int64(arg), 10) + return path +} + +// concreteMethod returns the path for meth, which must have a non-nil receiver. +// The second return value indicates success and may be false if the method is +// an interface method or if it is an instantiated method. +// +// This function is just an optimization that avoids the general scope walking +// approach. You are expected to fall back to the general approach if this +// function fails. +func (enc *Encoder) concreteMethod(meth *types.Func) (Path, bool) { + // Concrete methods can only be declared on package-scoped named types. For + // that reason we can skip the expensive walk over the package scope: the + // path will always be package -> named type -> method. We can trivially get + // the type name from the receiver, and only have to look over the type's + // methods to find the method index. + // + // Methods on generic types require special consideration, however. Consider + // the following package: + // + // L1: type S[T any] struct{} + // L2: func (recv S[A]) Foo() { recv.Bar() } + // L3: func (recv S[B]) Bar() { } + // L4: type Alias = S[int] + // L5: func _[T any]() { var s S[int]; s.Foo() } + // + // The receivers of methods on generic types are instantiations. L2 and L3 + // instantiate S with the type-parameters A and B, which are scoped to the + // respective methods. L4 and L5 each instantiate S with int. Each of these + // instantiations has its own method set, full of methods (and thus objects) + // with receivers whose types are the respective instantiations. In other + // words, we have + // + // S[A].Foo, S[A].Bar + // S[B].Foo, S[B].Bar + // S[int].Foo, S[int].Bar + // + // We may thus be trying to produce object paths for any of these objects. + // + // S[A].Foo and S[B].Bar are the origin methods, and their paths are S.Foo + // and S.Bar, which are the paths that this function naturally produces. + // + // S[A].Bar, S[B].Foo, and both methods on S[int] are instantiations that + // don't correspond to the origin methods. For S[int], this is significant. + // The most precise object path for S[int].Foo, for example, is Alias.Foo, + // not S.Foo. Our function, however, would produce S.Foo, which would + // resolve to a different object. + // + // For S[A].Bar and S[B].Foo it could be argued that S.Bar and S.Foo are + // still the correct paths, since only the origin methods have meaningful + // paths. But this is likely only true for trivial cases and has edge cases. + // Since this function is only an optimization, we err on the side of giving + // up, deferring to the slower but definitely correct algorithm. Most users + // of objectpath will only be giving us origin methods, anyway, as referring + // to instantiated methods is usually not useful. + + if typeparams.OriginMethod(meth) != meth { + return "", false + } + + recvT := meth.Type().(*types.Signature).Recv().Type() + if ptr, ok := recvT.(*types.Pointer); ok { + recvT = ptr.Elem() + } + + named, ok := recvT.(*types.Named) + if !ok { + return "", false + } + + if types.IsInterface(named) { + // Named interfaces don't have to be package-scoped + // + // TODO(dominikh): opt: if scope.Lookup(name) == named, then we can apply this optimization to interface + // methods, too, I think. + return "", false + } + + // Preallocate space for the name, opType, opMethod, and some digits. + name := named.Obj().Name() + path := make([]byte, 0, len(name)+8) + path = append(path, name...) + path = append(path, opType) + + if !enc.skipMethodSorting { + for i, m := range enc.namedMethods(named) { + if m == meth { + path = appendOpArg(path, opMethod, i) + return Path(path), true + } + } + } else { + // This branch must match the logic of the branch above, using go/types + // APIs without sorting. + for i := 0; i < named.NumMethods(); i++ { + m := named.Method(i) + if m == meth { + path = appendOpArg(path, opMethod, i) + return Path(path), true + } + } + } + + // Due to golang/go#59944, go/types fails to associate the receiver with + // certain methods on cgo types. + // + // TODO(rfindley): replace this panic once golang/go#59944 is fixed in all Go + // versions gopls supports. + return "", false + // panic(fmt.Sprintf("couldn't find method %s on type %s; methods: %#v", meth, named, enc.namedMethods(named))) +} + +// find finds obj within type T, returning the path to it, or nil if not found. +// +// The seen map is used to short circuit cycles through type parameters. If +// nil, it will be allocated as necessary. +func find(obj types.Object, T types.Type, path []byte, seen map[*types.TypeName]bool) []byte { + switch T := T.(type) { + case *types.Basic, *types.Named: + // Named types belonging to pkg were handled already, + // so T must belong to another package. No path. + return nil + case *types.Pointer: + return find(obj, T.Elem(), append(path, opElem), seen) + case *types.Slice: + return find(obj, T.Elem(), append(path, opElem), seen) + case *types.Array: + return find(obj, T.Elem(), append(path, opElem), seen) + case *types.Chan: + return find(obj, T.Elem(), append(path, opElem), seen) + case *types.Map: + if r := find(obj, T.Key(), append(path, opKey), seen); r != nil { + return r + } + return find(obj, T.Elem(), append(path, opElem), seen) + case *types.Signature: + if r := findTypeParam(obj, typeparams.ForSignature(T), path, seen); r != nil { + return r + } + if r := find(obj, T.Params(), append(path, opParams), seen); r != nil { + return r + } + return find(obj, T.Results(), append(path, opResults), seen) + case *types.Struct: + for i := 0; i < T.NumFields(); i++ { + fld := T.Field(i) + path2 := appendOpArg(path, opField, i) + if fld == obj { + return path2 // found field var + } + if r := find(obj, fld.Type(), append(path2, opType), seen); r != nil { + return r + } + } + return nil + case *types.Tuple: + for i := 0; i < T.Len(); i++ { + v := T.At(i) + path2 := appendOpArg(path, opAt, i) + if v == obj { + return path2 // found param/result var + } + if r := find(obj, v.Type(), append(path2, opType), seen); r != nil { + return r + } + } + return nil + case *types.Interface: + for i := 0; i < T.NumMethods(); i++ { + m := T.Method(i) + path2 := appendOpArg(path, opMethod, i) + if m == obj { + return path2 // found interface method + } + if r := find(obj, m.Type(), append(path2, opType), seen); r != nil { + return r + } + } + return nil + case *typeparams.TypeParam: + name := T.Obj() + if name == obj { + return append(path, opObj) + } + if seen[name] { + return nil + } + if seen == nil { + seen = make(map[*types.TypeName]bool) + } + seen[name] = true + if r := find(obj, T.Constraint(), append(path, opConstraint), seen); r != nil { + return r + } + return nil + } + panic(T) +} + +func findTypeParam(obj types.Object, list *typeparams.TypeParamList, path []byte, seen map[*types.TypeName]bool) []byte { + for i := 0; i < list.Len(); i++ { + tparam := list.At(i) + path2 := appendOpArg(path, opTypeParam, i) + if r := find(obj, tparam, path2, seen); r != nil { + return r + } + } + return nil +} + +// Object returns the object denoted by path p within the package pkg. +func Object(pkg *types.Package, p Path) (types.Object, error) { + return object(pkg, string(p), false) +} + +// Note: the skipMethodSorting parameter must match the value of +// Encoder.skipMethodSorting used during encoding. +func object(pkg *types.Package, pathstr string, skipMethodSorting bool) (types.Object, error) { + if pathstr == "" { + return nil, fmt.Errorf("empty path") + } + + var pkgobj, suffix string + if dot := strings.IndexByte(pathstr, opType); dot < 0 { + pkgobj = pathstr + } else { + pkgobj = pathstr[:dot] + suffix = pathstr[dot:] // suffix starts with "." + } + + obj := pkg.Scope().Lookup(pkgobj) + if obj == nil { + return nil, fmt.Errorf("package %s does not contain %q", pkg.Path(), pkgobj) + } + + // abstraction of *types.{Pointer,Slice,Array,Chan,Map} + type hasElem interface { + Elem() types.Type + } + // abstraction of *types.{Named,Signature} + type hasTypeParams interface { + TypeParams() *typeparams.TypeParamList + } + // abstraction of *types.{Named,TypeParam} + type hasObj interface { + Obj() *types.TypeName + } + + // The loop state is the pair (t, obj), + // exactly one of which is non-nil, initially obj. + // All suffixes start with '.' (the only object->type operation), + // followed by optional type->type operations, + // then a type->object operation. + // The cycle then repeats. + var t types.Type + for suffix != "" { + code := suffix[0] + suffix = suffix[1:] + + // Codes [AFM] have an integer operand. + var index int + switch code { + case opAt, opField, opMethod, opTypeParam: + rest := strings.TrimLeft(suffix, "0123456789") + numerals := suffix[:len(suffix)-len(rest)] + suffix = rest + i, err := strconv.Atoi(numerals) + if err != nil { + return nil, fmt.Errorf("invalid path: bad numeric operand %q for code %q", numerals, code) + } + index = int(i) + case opObj: + // no operand + default: + // The suffix must end with a type->object operation. + if suffix == "" { + return nil, fmt.Errorf("invalid path: ends with %q, want [AFMO]", code) + } + } + + if code == opType { + if t != nil { + return nil, fmt.Errorf("invalid path: unexpected %q in type context", opType) + } + t = obj.Type() + obj = nil + continue + } + + if t == nil { + return nil, fmt.Errorf("invalid path: code %q in object context", code) + } + + // Inv: t != nil, obj == nil + + switch code { + case opElem: + hasElem, ok := t.(hasElem) // Pointer, Slice, Array, Chan, Map + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want pointer, slice, array, chan or map)", code, t, t) + } + t = hasElem.Elem() + + case opKey: + mapType, ok := t.(*types.Map) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want map)", code, t, t) + } + t = mapType.Key() + + case opParams: + sig, ok := t.(*types.Signature) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t) + } + t = sig.Params() + + case opResults: + sig, ok := t.(*types.Signature) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t) + } + t = sig.Results() + + case opUnderlying: + named, ok := t.(*types.Named) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named)", code, t, t) + } + t = named.Underlying() + + case opTypeParam: + hasTypeParams, ok := t.(hasTypeParams) // Named, Signature + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named or signature)", code, t, t) + } + tparams := hasTypeParams.TypeParams() + if n := tparams.Len(); index >= n { + return nil, fmt.Errorf("tuple index %d out of range [0-%d)", index, n) + } + t = tparams.At(index) + + case opConstraint: + tparam, ok := t.(*typeparams.TypeParam) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want type parameter)", code, t, t) + } + t = tparam.Constraint() + + case opAt: + tuple, ok := t.(*types.Tuple) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want tuple)", code, t, t) + } + if n := tuple.Len(); index >= n { + return nil, fmt.Errorf("tuple index %d out of range [0-%d)", index, n) + } + obj = tuple.At(index) + t = nil + + case opField: + structType, ok := t.(*types.Struct) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want struct)", code, t, t) + } + if n := structType.NumFields(); index >= n { + return nil, fmt.Errorf("field index %d out of range [0-%d)", index, n) + } + obj = structType.Field(index) + t = nil + + case opMethod: + switch t := t.(type) { + case *types.Interface: + if index >= t.NumMethods() { + return nil, fmt.Errorf("method index %d out of range [0-%d)", index, t.NumMethods()) + } + obj = t.Method(index) // Id-ordered + + case *types.Named: + if index >= t.NumMethods() { + return nil, fmt.Errorf("method index %d out of range [0-%d)", index, t.NumMethods()) + } + if skipMethodSorting { + obj = t.Method(index) + } else { + methods := namedMethods(t) // (unmemoized) + obj = methods[index] // Id-ordered + } + + default: + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want interface or named)", code, t, t) + } + t = nil + + case opObj: + hasObj, ok := t.(hasObj) + if !ok { + return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named or type param)", code, t, t) + } + obj = hasObj.Obj() + t = nil + + default: + return nil, fmt.Errorf("invalid path: unknown code %q", code) + } + } + + if obj.Pkg() != pkg { + return nil, fmt.Errorf("path denotes %s, which belongs to a different package", obj) + } + + return obj, nil // success +} + +// namedMethods returns the methods of a Named type in ascending Id order. +func namedMethods(named *types.Named) []*types.Func { + methods := make([]*types.Func, named.NumMethods()) + for i := range methods { + methods[i] = named.Method(i) + } + sort.Slice(methods, func(i, j int) bool { + return methods[i].Id() < methods[j].Id() + }) + return methods +} + +// namedMethods is a memoization of the namedMethods function. Callers must not modify the result. +func (enc *Encoder) namedMethods(named *types.Named) []*types.Func { + m := enc.namedMethodsMemo + if m == nil { + m = make(map[*types.Named][]*types.Func) + enc.namedMethodsMemo = m + } + methods, ok := m[named] + if !ok { + methods = namedMethods(named) // allocates and sorts + m[named] = methods + } + return methods +} + +// scopeObjects is a memoization of scope objects. +// Callers must not modify the result. +func (enc *Encoder) scopeObjects(scope *types.Scope) []types.Object { + m := enc.scopeMemo + if m == nil { + m = make(map[*types.Scope][]types.Object) + enc.scopeMemo = m + } + objs, ok := m[scope] + if !ok { + names := scope.Names() // allocates and sorts + objs = make([]types.Object, len(names)) + for i, name := range names { + objs[i] = scope.Lookup(name) + } + m[scope] = objs + } + return objs +} diff --git a/vendor/golang.org/x/tools/internal/event/tag/tag.go b/vendor/golang.org/x/tools/internal/event/tag/tag.go new file mode 100644 index 000000000000..581b26c2041f --- /dev/null +++ b/vendor/golang.org/x/tools/internal/event/tag/tag.go @@ -0,0 +1,59 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package tag provides the labels used for telemetry throughout gopls. +package tag + +import ( + "golang.org/x/tools/internal/event/keys" +) + +var ( + // create the label keys we use + Method = keys.NewString("method", "") + StatusCode = keys.NewString("status.code", "") + StatusMessage = keys.NewString("status.message", "") + RPCID = keys.NewString("id", "") + RPCDirection = keys.NewString("direction", "") + File = keys.NewString("file", "") + Directory = keys.New("directory", "") + URI = keys.New("URI", "") + Package = keys.NewString("package", "") // sorted comma-separated list of Package IDs + PackagePath = keys.NewString("package_path", "") + Query = keys.New("query", "") + Snapshot = keys.NewUInt64("snapshot", "") + Operation = keys.NewString("operation", "") + + Position = keys.New("position", "") + Category = keys.NewString("category", "") + PackageCount = keys.NewInt("packages", "") + Files = keys.New("files", "") + Port = keys.NewInt("port", "") + Type = keys.New("type", "") + HoverKind = keys.NewString("hoverkind", "") + + NewServer = keys.NewString("new_server", "A new server was added") + EndServer = keys.NewString("end_server", "A server was shut down") + + ServerID = keys.NewString("server", "The server ID an event is related to") + Logfile = keys.NewString("logfile", "") + DebugAddress = keys.NewString("debug_address", "") + GoplsPath = keys.NewString("gopls_path", "") + ClientID = keys.NewString("client_id", "") + + Level = keys.NewInt("level", "The logging level") +) + +var ( + // create the stats we measure + Started = keys.NewInt64("started", "Count of started RPCs.") + ReceivedBytes = keys.NewInt64("received_bytes", "Bytes received.") //, unit.Bytes) + SentBytes = keys.NewInt64("sent_bytes", "Bytes sent.") //, unit.Bytes) + Latency = keys.NewFloat64("latency_ms", "Elapsed time in milliseconds") //, unit.Milliseconds) +) + +const ( + Inbound = "in" + Outbound = "out" +) diff --git a/vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go index 798fe599be4c..c40c7e931066 100644 --- a/vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go +++ b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Package fastwalk provides a faster version of filepath.Walk for file system +// Package fastwalk provides a faster version of [filepath.Walk] for file system // scanning tools. package fastwalk @@ -23,31 +23,31 @@ var ErrTraverseLink = errors.New("fastwalk: traverse symlink, assuming target is // Child directories will still be traversed. var ErrSkipFiles = errors.New("fastwalk: skip remaining files in directory") -// Walk is a faster implementation of filepath.Walk. +// Walk is a faster implementation of [filepath.Walk]. // -// filepath.Walk's design necessarily calls os.Lstat on each file, +// [filepath.Walk]'s design necessarily calls [os.Lstat] on each file, // even if the caller needs less info. // Many tools need only the type of each file. // On some platforms, this information is provided directly by the readdir // system call, avoiding the need to stat each file individually. // fastwalk_unix.go contains a fork of the syscall routines. // -// See golang.org/issue/16399 +// See golang.org/issue/16399. // // Walk walks the file tree rooted at root, calling walkFn for // each file or directory in the tree, including root. // -// If fastWalk returns filepath.SkipDir, the directory is skipped. +// If Walk returns [filepath.SkipDir], the directory is skipped. // -// Unlike filepath.Walk: +// Unlike [filepath.Walk]: // - file stat calls must be done by the user. // The only provided metadata is the file type, which does not include // any permission bits. // - multiple goroutines stat the filesystem concurrently. The provided // walkFn must be safe for concurrent use. -// - fastWalk can follow symlinks if walkFn returns the TraverseLink +// - Walk can follow symlinks if walkFn returns the TraverseLink // sentinel error. It is the walkFn's responsibility to prevent -// fastWalk from going into symlink cycles. +// Walk from going into symlink cycles. func Walk(root string, walkFn func(path string, typ os.FileMode) error) error { // TODO(bradfitz): make numWorkers configurable? We used a // minimum of 4 to give the kernel more info about multiple diff --git a/vendor/golang.org/x/tools/internal/gcimporter/bexport.go b/vendor/golang.org/x/tools/internal/gcimporter/bexport.go deleted file mode 100644 index 30582ed6d3d7..000000000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/bexport.go +++ /dev/null @@ -1,852 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Binary package export. -// This file was derived from $GOROOT/src/cmd/compile/internal/gc/bexport.go; -// see that file for specification of the format. - -package gcimporter - -import ( - "bytes" - "encoding/binary" - "fmt" - "go/constant" - "go/token" - "go/types" - "math" - "math/big" - "sort" - "strings" -) - -// If debugFormat is set, each integer and string value is preceded by a marker -// and position information in the encoding. This mechanism permits an importer -// to recognize immediately when it is out of sync. The importer recognizes this -// mode automatically (i.e., it can import export data produced with debugging -// support even if debugFormat is not set at the time of import). This mode will -// lead to massively larger export data (by a factor of 2 to 3) and should only -// be enabled during development and debugging. -// -// NOTE: This flag is the first flag to enable if importing dies because of -// (suspected) format errors, and whenever a change is made to the format. -const debugFormat = false // default: false - -// Current export format version. Increase with each format change. -// -// Note: The latest binary (non-indexed) export format is at version 6. -// This exporter is still at level 4, but it doesn't matter since -// the binary importer can handle older versions just fine. -// -// 6: package height (CL 105038) -- NOT IMPLEMENTED HERE -// 5: improved position encoding efficiency (issue 20080, CL 41619) -- NOT IMPLEMENTED HERE -// 4: type name objects support type aliases, uses aliasTag -// 3: Go1.8 encoding (same as version 2, aliasTag defined but never used) -// 2: removed unused bool in ODCL export (compiler only) -// 1: header format change (more regular), export package for _ struct fields -// 0: Go1.7 encoding -const exportVersion = 4 - -// trackAllTypes enables cycle tracking for all types, not just named -// types. The existing compiler invariants assume that unnamed types -// that are not completely set up are not used, or else there are spurious -// errors. -// If disabled, only named types are tracked, possibly leading to slightly -// less efficient encoding in rare cases. It also prevents the export of -// some corner-case type declarations (but those are not handled correctly -// with with the textual export format either). -// TODO(gri) enable and remove once issues caused by it are fixed -const trackAllTypes = false - -type exporter struct { - fset *token.FileSet - out bytes.Buffer - - // object -> index maps, indexed in order of serialization - strIndex map[string]int - pkgIndex map[*types.Package]int - typIndex map[types.Type]int - - // position encoding - posInfoFormat bool - prevFile string - prevLine int - - // debugging support - written int // bytes written - indent int // for trace -} - -// internalError represents an error generated inside this package. -type internalError string - -func (e internalError) Error() string { return "gcimporter: " + string(e) } - -func internalErrorf(format string, args ...interface{}) error { - return internalError(fmt.Sprintf(format, args...)) -} - -// BExportData returns binary export data for pkg. -// If no file set is provided, position info will be missing. -func BExportData(fset *token.FileSet, pkg *types.Package) (b []byte, err error) { - if !debug { - defer func() { - if e := recover(); e != nil { - if ierr, ok := e.(internalError); ok { - err = ierr - return - } - // Not an internal error; panic again. - panic(e) - } - }() - } - - p := exporter{ - fset: fset, - strIndex: map[string]int{"": 0}, // empty string is mapped to 0 - pkgIndex: make(map[*types.Package]int), - typIndex: make(map[types.Type]int), - posInfoFormat: true, // TODO(gri) might become a flag, eventually - } - - // write version info - // The version string must start with "version %d" where %d is the version - // number. Additional debugging information may follow after a blank; that - // text is ignored by the importer. - p.rawStringln(fmt.Sprintf("version %d", exportVersion)) - var debug string - if debugFormat { - debug = "debug" - } - p.rawStringln(debug) // cannot use p.bool since it's affected by debugFormat; also want to see this clearly - p.bool(trackAllTypes) - p.bool(p.posInfoFormat) - - // --- generic export data --- - - // populate type map with predeclared "known" types - for index, typ := range predeclared() { - p.typIndex[typ] = index - } - if len(p.typIndex) != len(predeclared()) { - return nil, internalError("duplicate entries in type map?") - } - - // write package data - p.pkg(pkg, true) - if trace { - p.tracef("\n") - } - - // write objects - objcount := 0 - scope := pkg.Scope() - for _, name := range scope.Names() { - if !token.IsExported(name) { - continue - } - if trace { - p.tracef("\n") - } - p.obj(scope.Lookup(name)) - objcount++ - } - - // indicate end of list - if trace { - p.tracef("\n") - } - p.tag(endTag) - - // for self-verification only (redundant) - p.int(objcount) - - if trace { - p.tracef("\n") - } - - // --- end of export data --- - - return p.out.Bytes(), nil -} - -func (p *exporter) pkg(pkg *types.Package, emptypath bool) { - if pkg == nil { - panic(internalError("unexpected nil pkg")) - } - - // if we saw the package before, write its index (>= 0) - if i, ok := p.pkgIndex[pkg]; ok { - p.index('P', i) - return - } - - // otherwise, remember the package, write the package tag (< 0) and package data - if trace { - p.tracef("P%d = { ", len(p.pkgIndex)) - defer p.tracef("} ") - } - p.pkgIndex[pkg] = len(p.pkgIndex) - - p.tag(packageTag) - p.string(pkg.Name()) - if emptypath { - p.string("") - } else { - p.string(pkg.Path()) - } -} - -func (p *exporter) obj(obj types.Object) { - switch obj := obj.(type) { - case *types.Const: - p.tag(constTag) - p.pos(obj) - p.qualifiedName(obj) - p.typ(obj.Type()) - p.value(obj.Val()) - - case *types.TypeName: - if obj.IsAlias() { - p.tag(aliasTag) - p.pos(obj) - p.qualifiedName(obj) - } else { - p.tag(typeTag) - } - p.typ(obj.Type()) - - case *types.Var: - p.tag(varTag) - p.pos(obj) - p.qualifiedName(obj) - p.typ(obj.Type()) - - case *types.Func: - p.tag(funcTag) - p.pos(obj) - p.qualifiedName(obj) - sig := obj.Type().(*types.Signature) - p.paramList(sig.Params(), sig.Variadic()) - p.paramList(sig.Results(), false) - - default: - panic(internalErrorf("unexpected object %v (%T)", obj, obj)) - } -} - -func (p *exporter) pos(obj types.Object) { - if !p.posInfoFormat { - return - } - - file, line := p.fileLine(obj) - if file == p.prevFile { - // common case: write line delta - // delta == 0 means different file or no line change - delta := line - p.prevLine - p.int(delta) - if delta == 0 { - p.int(-1) // -1 means no file change - } - } else { - // different file - p.int(0) - // Encode filename as length of common prefix with previous - // filename, followed by (possibly empty) suffix. Filenames - // frequently share path prefixes, so this can save a lot - // of space and make export data size less dependent on file - // path length. The suffix is unlikely to be empty because - // file names tend to end in ".go". - n := commonPrefixLen(p.prevFile, file) - p.int(n) // n >= 0 - p.string(file[n:]) // write suffix only - p.prevFile = file - p.int(line) - } - p.prevLine = line -} - -func (p *exporter) fileLine(obj types.Object) (file string, line int) { - if p.fset != nil { - pos := p.fset.Position(obj.Pos()) - file = pos.Filename - line = pos.Line - } - return -} - -func commonPrefixLen(a, b string) int { - if len(a) > len(b) { - a, b = b, a - } - // len(a) <= len(b) - i := 0 - for i < len(a) && a[i] == b[i] { - i++ - } - return i -} - -func (p *exporter) qualifiedName(obj types.Object) { - p.string(obj.Name()) - p.pkg(obj.Pkg(), false) -} - -func (p *exporter) typ(t types.Type) { - if t == nil { - panic(internalError("nil type")) - } - - // Possible optimization: Anonymous pointer types *T where - // T is a named type are common. We could canonicalize all - // such types *T to a single type PT = *T. This would lead - // to at most one *T entry in typIndex, and all future *T's - // would be encoded as the respective index directly. Would - // save 1 byte (pointerTag) per *T and reduce the typIndex - // size (at the cost of a canonicalization map). We can do - // this later, without encoding format change. - - // if we saw the type before, write its index (>= 0) - if i, ok := p.typIndex[t]; ok { - p.index('T', i) - return - } - - // otherwise, remember the type, write the type tag (< 0) and type data - if trackAllTypes { - if trace { - p.tracef("T%d = {>\n", len(p.typIndex)) - defer p.tracef("<\n} ") - } - p.typIndex[t] = len(p.typIndex) - } - - switch t := t.(type) { - case *types.Named: - if !trackAllTypes { - // if we don't track all types, track named types now - p.typIndex[t] = len(p.typIndex) - } - - p.tag(namedTag) - p.pos(t.Obj()) - p.qualifiedName(t.Obj()) - p.typ(t.Underlying()) - if !types.IsInterface(t) { - p.assocMethods(t) - } - - case *types.Array: - p.tag(arrayTag) - p.int64(t.Len()) - p.typ(t.Elem()) - - case *types.Slice: - p.tag(sliceTag) - p.typ(t.Elem()) - - case *dddSlice: - p.tag(dddTag) - p.typ(t.elem) - - case *types.Struct: - p.tag(structTag) - p.fieldList(t) - - case *types.Pointer: - p.tag(pointerTag) - p.typ(t.Elem()) - - case *types.Signature: - p.tag(signatureTag) - p.paramList(t.Params(), t.Variadic()) - p.paramList(t.Results(), false) - - case *types.Interface: - p.tag(interfaceTag) - p.iface(t) - - case *types.Map: - p.tag(mapTag) - p.typ(t.Key()) - p.typ(t.Elem()) - - case *types.Chan: - p.tag(chanTag) - p.int(int(3 - t.Dir())) // hack - p.typ(t.Elem()) - - default: - panic(internalErrorf("unexpected type %T: %s", t, t)) - } -} - -func (p *exporter) assocMethods(named *types.Named) { - // Sort methods (for determinism). - var methods []*types.Func - for i := 0; i < named.NumMethods(); i++ { - methods = append(methods, named.Method(i)) - } - sort.Sort(methodsByName(methods)) - - p.int(len(methods)) - - if trace && methods != nil { - p.tracef("associated methods {>\n") - } - - for i, m := range methods { - if trace && i > 0 { - p.tracef("\n") - } - - p.pos(m) - name := m.Name() - p.string(name) - if !exported(name) { - p.pkg(m.Pkg(), false) - } - - sig := m.Type().(*types.Signature) - p.paramList(types.NewTuple(sig.Recv()), false) - p.paramList(sig.Params(), sig.Variadic()) - p.paramList(sig.Results(), false) - p.int(0) // dummy value for go:nointerface pragma - ignored by importer - } - - if trace && methods != nil { - p.tracef("<\n} ") - } -} - -type methodsByName []*types.Func - -func (x methodsByName) Len() int { return len(x) } -func (x methodsByName) Swap(i, j int) { x[i], x[j] = x[j], x[i] } -func (x methodsByName) Less(i, j int) bool { return x[i].Name() < x[j].Name() } - -func (p *exporter) fieldList(t *types.Struct) { - if trace && t.NumFields() > 0 { - p.tracef("fields {>\n") - defer p.tracef("<\n} ") - } - - p.int(t.NumFields()) - for i := 0; i < t.NumFields(); i++ { - if trace && i > 0 { - p.tracef("\n") - } - p.field(t.Field(i)) - p.string(t.Tag(i)) - } -} - -func (p *exporter) field(f *types.Var) { - if !f.IsField() { - panic(internalError("field expected")) - } - - p.pos(f) - p.fieldName(f) - p.typ(f.Type()) -} - -func (p *exporter) iface(t *types.Interface) { - // TODO(gri): enable importer to load embedded interfaces, - // then emit Embeddeds and ExplicitMethods separately here. - p.int(0) - - n := t.NumMethods() - if trace && n > 0 { - p.tracef("methods {>\n") - defer p.tracef("<\n} ") - } - p.int(n) - for i := 0; i < n; i++ { - if trace && i > 0 { - p.tracef("\n") - } - p.method(t.Method(i)) - } -} - -func (p *exporter) method(m *types.Func) { - sig := m.Type().(*types.Signature) - if sig.Recv() == nil { - panic(internalError("method expected")) - } - - p.pos(m) - p.string(m.Name()) - if m.Name() != "_" && !token.IsExported(m.Name()) { - p.pkg(m.Pkg(), false) - } - - // interface method; no need to encode receiver. - p.paramList(sig.Params(), sig.Variadic()) - p.paramList(sig.Results(), false) -} - -func (p *exporter) fieldName(f *types.Var) { - name := f.Name() - - if f.Anonymous() { - // anonymous field - we distinguish between 3 cases: - // 1) field name matches base type name and is exported - // 2) field name matches base type name and is not exported - // 3) field name doesn't match base type name (alias name) - bname := basetypeName(f.Type()) - if name == bname { - if token.IsExported(name) { - name = "" // 1) we don't need to know the field name or package - } else { - name = "?" // 2) use unexported name "?" to force package export - } - } else { - // 3) indicate alias and export name as is - // (this requires an extra "@" but this is a rare case) - p.string("@") - } - } - - p.string(name) - if name != "" && !token.IsExported(name) { - p.pkg(f.Pkg(), false) - } -} - -func basetypeName(typ types.Type) string { - switch typ := deref(typ).(type) { - case *types.Basic: - return typ.Name() - case *types.Named: - return typ.Obj().Name() - default: - return "" // unnamed type - } -} - -func (p *exporter) paramList(params *types.Tuple, variadic bool) { - // use negative length to indicate unnamed parameters - // (look at the first parameter only since either all - // names are present or all are absent) - n := params.Len() - if n > 0 && params.At(0).Name() == "" { - n = -n - } - p.int(n) - for i := 0; i < params.Len(); i++ { - q := params.At(i) - t := q.Type() - if variadic && i == params.Len()-1 { - t = &dddSlice{t.(*types.Slice).Elem()} - } - p.typ(t) - if n > 0 { - name := q.Name() - p.string(name) - if name != "_" { - p.pkg(q.Pkg(), false) - } - } - p.string("") // no compiler-specific info - } -} - -func (p *exporter) value(x constant.Value) { - if trace { - p.tracef("= ") - } - - switch x.Kind() { - case constant.Bool: - tag := falseTag - if constant.BoolVal(x) { - tag = trueTag - } - p.tag(tag) - - case constant.Int: - if v, exact := constant.Int64Val(x); exact { - // common case: x fits into an int64 - use compact encoding - p.tag(int64Tag) - p.int64(v) - return - } - // uncommon case: large x - use float encoding - // (powers of 2 will be encoded efficiently with exponent) - p.tag(floatTag) - p.float(constant.ToFloat(x)) - - case constant.Float: - p.tag(floatTag) - p.float(x) - - case constant.Complex: - p.tag(complexTag) - p.float(constant.Real(x)) - p.float(constant.Imag(x)) - - case constant.String: - p.tag(stringTag) - p.string(constant.StringVal(x)) - - case constant.Unknown: - // package contains type errors - p.tag(unknownTag) - - default: - panic(internalErrorf("unexpected value %v (%T)", x, x)) - } -} - -func (p *exporter) float(x constant.Value) { - if x.Kind() != constant.Float { - panic(internalErrorf("unexpected constant %v, want float", x)) - } - // extract sign (there is no -0) - sign := constant.Sign(x) - if sign == 0 { - // x == 0 - p.int(0) - return - } - // x != 0 - - var f big.Float - if v, exact := constant.Float64Val(x); exact { - // float64 - f.SetFloat64(v) - } else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int { - // TODO(gri): add big.Rat accessor to constant.Value. - r := valueToRat(num) - f.SetRat(r.Quo(r, valueToRat(denom))) - } else { - // Value too large to represent as a fraction => inaccessible. - // TODO(gri): add big.Float accessor to constant.Value. - f.SetFloat64(math.MaxFloat64) // FIXME - } - - // extract exponent such that 0.5 <= m < 1.0 - var m big.Float - exp := f.MantExp(&m) - - // extract mantissa as *big.Int - // - set exponent large enough so mant satisfies mant.IsInt() - // - get *big.Int from mant - m.SetMantExp(&m, int(m.MinPrec())) - mant, acc := m.Int(nil) - if acc != big.Exact { - panic(internalError("internal error")) - } - - p.int(sign) - p.int(exp) - p.string(string(mant.Bytes())) -} - -func valueToRat(x constant.Value) *big.Rat { - // Convert little-endian to big-endian. - // I can't believe this is necessary. - bytes := constant.Bytes(x) - for i := 0; i < len(bytes)/2; i++ { - bytes[i], bytes[len(bytes)-1-i] = bytes[len(bytes)-1-i], bytes[i] - } - return new(big.Rat).SetInt(new(big.Int).SetBytes(bytes)) -} - -func (p *exporter) bool(b bool) bool { - if trace { - p.tracef("[") - defer p.tracef("= %v] ", b) - } - - x := 0 - if b { - x = 1 - } - p.int(x) - return b -} - -// ---------------------------------------------------------------------------- -// Low-level encoders - -func (p *exporter) index(marker byte, index int) { - if index < 0 { - panic(internalError("invalid index < 0")) - } - if debugFormat { - p.marker('t') - } - if trace { - p.tracef("%c%d ", marker, index) - } - p.rawInt64(int64(index)) -} - -func (p *exporter) tag(tag int) { - if tag >= 0 { - panic(internalError("invalid tag >= 0")) - } - if debugFormat { - p.marker('t') - } - if trace { - p.tracef("%s ", tagString[-tag]) - } - p.rawInt64(int64(tag)) -} - -func (p *exporter) int(x int) { - p.int64(int64(x)) -} - -func (p *exporter) int64(x int64) { - if debugFormat { - p.marker('i') - } - if trace { - p.tracef("%d ", x) - } - p.rawInt64(x) -} - -func (p *exporter) string(s string) { - if debugFormat { - p.marker('s') - } - if trace { - p.tracef("%q ", s) - } - // if we saw the string before, write its index (>= 0) - // (the empty string is mapped to 0) - if i, ok := p.strIndex[s]; ok { - p.rawInt64(int64(i)) - return - } - // otherwise, remember string and write its negative length and bytes - p.strIndex[s] = len(p.strIndex) - p.rawInt64(-int64(len(s))) - for i := 0; i < len(s); i++ { - p.rawByte(s[i]) - } -} - -// marker emits a marker byte and position information which makes -// it easy for a reader to detect if it is "out of sync". Used for -// debugFormat format only. -func (p *exporter) marker(m byte) { - p.rawByte(m) - // Enable this for help tracking down the location - // of an incorrect marker when running in debugFormat. - if false && trace { - p.tracef("#%d ", p.written) - } - p.rawInt64(int64(p.written)) -} - -// rawInt64 should only be used by low-level encoders. -func (p *exporter) rawInt64(x int64) { - var tmp [binary.MaxVarintLen64]byte - n := binary.PutVarint(tmp[:], x) - for i := 0; i < n; i++ { - p.rawByte(tmp[i]) - } -} - -// rawStringln should only be used to emit the initial version string. -func (p *exporter) rawStringln(s string) { - for i := 0; i < len(s); i++ { - p.rawByte(s[i]) - } - p.rawByte('\n') -} - -// rawByte is the bottleneck interface to write to p.out. -// rawByte escapes b as follows (any encoding does that -// hides '$'): -// -// '$' => '|' 'S' -// '|' => '|' '|' -// -// Necessary so other tools can find the end of the -// export data by searching for "$$". -// rawByte should only be used by low-level encoders. -func (p *exporter) rawByte(b byte) { - switch b { - case '$': - // write '$' as '|' 'S' - b = 'S' - fallthrough - case '|': - // write '|' as '|' '|' - p.out.WriteByte('|') - p.written++ - } - p.out.WriteByte(b) - p.written++ -} - -// tracef is like fmt.Printf but it rewrites the format string -// to take care of indentation. -func (p *exporter) tracef(format string, args ...interface{}) { - if strings.ContainsAny(format, "<>\n") { - var buf bytes.Buffer - for i := 0; i < len(format); i++ { - // no need to deal with runes - ch := format[i] - switch ch { - case '>': - p.indent++ - continue - case '<': - p.indent-- - continue - } - buf.WriteByte(ch) - if ch == '\n' { - for j := p.indent; j > 0; j-- { - buf.WriteString(". ") - } - } - } - format = buf.String() - } - fmt.Printf(format, args...) -} - -// Debugging support. -// (tagString is only used when tracing is enabled) -var tagString = [...]string{ - // Packages - -packageTag: "package", - - // Types - -namedTag: "named type", - -arrayTag: "array", - -sliceTag: "slice", - -dddTag: "ddd", - -structTag: "struct", - -pointerTag: "pointer", - -signatureTag: "signature", - -interfaceTag: "interface", - -mapTag: "map", - -chanTag: "chan", - - // Values - -falseTag: "false", - -trueTag: "true", - -int64Tag: "int64", - -floatTag: "float", - -fractionTag: "fraction", - -complexTag: "complex", - -stringTag: "string", - -unknownTag: "unknown", - - // Type aliases - -aliasTag: "alias", -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/bimport.go b/vendor/golang.org/x/tools/internal/gcimporter/bimport.go index b85de0147001..d98b0db2a9a9 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/bimport.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/bimport.go @@ -2,340 +2,24 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// This file is a copy of $GOROOT/src/go/internal/gcimporter/bimport.go. +// This file contains the remaining vestiges of +// $GOROOT/src/go/internal/gcimporter/bimport.go. package gcimporter import ( - "encoding/binary" "fmt" - "go/constant" "go/token" "go/types" - "sort" - "strconv" - "strings" "sync" - "unicode" - "unicode/utf8" ) -type importer struct { - imports map[string]*types.Package - data []byte - importpath string - buf []byte // for reading strings - version int // export format version - - // object lists - strList []string // in order of appearance - pathList []string // in order of appearance - pkgList []*types.Package // in order of appearance - typList []types.Type // in order of appearance - interfaceList []*types.Interface // for delayed completion only - trackAllTypes bool - - // position encoding - posInfoFormat bool - prevFile string - prevLine int - fake fakeFileSet - - // debugging support - debugFormat bool - read int // bytes read -} - -// BImportData imports a package from the serialized package data -// and returns the number of bytes consumed and a reference to the package. -// If the export data version is not recognized or the format is otherwise -// compromised, an error is returned. -func BImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { - // catch panics and return them as errors - const currentVersion = 6 - version := -1 // unknown version - defer func() { - if e := recover(); e != nil { - // Return a (possibly nil or incomplete) package unchanged (see #16088). - if version > currentVersion { - err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e) - } else { - err = fmt.Errorf("cannot import %q (%v), possibly version skew - reinstall package", path, e) - } - } - }() - - p := importer{ - imports: imports, - data: data, - importpath: path, - version: version, - strList: []string{""}, // empty string is mapped to 0 - pathList: []string{""}, // empty string is mapped to 0 - fake: fakeFileSet{ - fset: fset, - files: make(map[string]*fileInfo), - }, - } - defer p.fake.setLines() // set lines for files in fset - - // read version info - var versionstr string - if b := p.rawByte(); b == 'c' || b == 'd' { - // Go1.7 encoding; first byte encodes low-level - // encoding format (compact vs debug). - // For backward-compatibility only (avoid problems with - // old installed packages). Newly compiled packages use - // the extensible format string. - // TODO(gri) Remove this support eventually; after Go1.8. - if b == 'd' { - p.debugFormat = true - } - p.trackAllTypes = p.rawByte() == 'a' - p.posInfoFormat = p.int() != 0 - versionstr = p.string() - if versionstr == "v1" { - version = 0 - } - } else { - // Go1.8 extensible encoding - // read version string and extract version number (ignore anything after the version number) - versionstr = p.rawStringln(b) - if s := strings.SplitN(versionstr, " ", 3); len(s) >= 2 && s[0] == "version" { - if v, err := strconv.Atoi(s[1]); err == nil && v > 0 { - version = v - } - } - } - p.version = version - - // read version specific flags - extend as necessary - switch p.version { - // case currentVersion: - // ... - // fallthrough - case currentVersion, 5, 4, 3, 2, 1: - p.debugFormat = p.rawStringln(p.rawByte()) == "debug" - p.trackAllTypes = p.int() != 0 - p.posInfoFormat = p.int() != 0 - case 0: - // Go1.7 encoding format - nothing to do here - default: - errorf("unknown bexport format version %d (%q)", p.version, versionstr) - } - - // --- generic export data --- - - // populate typList with predeclared "known" types - p.typList = append(p.typList, predeclared()...) - - // read package data - pkg = p.pkg() - - // read objects of phase 1 only (see cmd/compile/internal/gc/bexport.go) - objcount := 0 - for { - tag := p.tagOrIndex() - if tag == endTag { - break - } - p.obj(tag) - objcount++ - } - - // self-verification - if count := p.int(); count != objcount { - errorf("got %d objects; want %d", objcount, count) - } - - // ignore compiler-specific import data - - // complete interfaces - // TODO(gri) re-investigate if we still need to do this in a delayed fashion - for _, typ := range p.interfaceList { - typ.Complete() - } - - // record all referenced packages as imports - list := append(([]*types.Package)(nil), p.pkgList[1:]...) - sort.Sort(byPath(list)) - pkg.SetImports(list) - - // package was imported completely and without errors - pkg.MarkComplete() - - return p.read, pkg, nil -} - func errorf(format string, args ...interface{}) { panic(fmt.Sprintf(format, args...)) } -func (p *importer) pkg() *types.Package { - // if the package was seen before, i is its index (>= 0) - i := p.tagOrIndex() - if i >= 0 { - return p.pkgList[i] - } - - // otherwise, i is the package tag (< 0) - if i != packageTag { - errorf("unexpected package tag %d version %d", i, p.version) - } - - // read package data - name := p.string() - var path string - if p.version >= 5 { - path = p.path() - } else { - path = p.string() - } - if p.version >= 6 { - p.int() // package height; unused by go/types - } - - // we should never see an empty package name - if name == "" { - errorf("empty package name in import") - } - - // an empty path denotes the package we are currently importing; - // it must be the first package we see - if (path == "") != (len(p.pkgList) == 0) { - errorf("package path %q for pkg index %d", path, len(p.pkgList)) - } - - // if the package was imported before, use that one; otherwise create a new one - if path == "" { - path = p.importpath - } - pkg := p.imports[path] - if pkg == nil { - pkg = types.NewPackage(path, name) - p.imports[path] = pkg - } else if pkg.Name() != name { - errorf("conflicting names %s and %s for package %q", pkg.Name(), name, path) - } - p.pkgList = append(p.pkgList, pkg) - - return pkg -} - -// objTag returns the tag value for each object kind. -func objTag(obj types.Object) int { - switch obj.(type) { - case *types.Const: - return constTag - case *types.TypeName: - return typeTag - case *types.Var: - return varTag - case *types.Func: - return funcTag - default: - errorf("unexpected object: %v (%T)", obj, obj) // panics - panic("unreachable") - } -} - -func sameObj(a, b types.Object) bool { - // Because unnamed types are not canonicalized, we cannot simply compare types for - // (pointer) identity. - // Ideally we'd check equality of constant values as well, but this is good enough. - return objTag(a) == objTag(b) && types.Identical(a.Type(), b.Type()) -} - -func (p *importer) declare(obj types.Object) { - pkg := obj.Pkg() - if alt := pkg.Scope().Insert(obj); alt != nil { - // This can only trigger if we import a (non-type) object a second time. - // Excluding type aliases, this cannot happen because 1) we only import a package - // once; and b) we ignore compiler-specific export data which may contain - // functions whose inlined function bodies refer to other functions that - // were already imported. - // However, type aliases require reexporting the original type, so we need - // to allow it (see also the comment in cmd/compile/internal/gc/bimport.go, - // method importer.obj, switch case importing functions). - // TODO(gri) review/update this comment once the gc compiler handles type aliases. - if !sameObj(obj, alt) { - errorf("inconsistent import:\n\t%v\npreviously imported as:\n\t%v\n", obj, alt) - } - } -} - -func (p *importer) obj(tag int) { - switch tag { - case constTag: - pos := p.pos() - pkg, name := p.qualifiedName() - typ := p.typ(nil, nil) - val := p.value() - p.declare(types.NewConst(pos, pkg, name, typ, val)) - - case aliasTag: - // TODO(gri) verify type alias hookup is correct - pos := p.pos() - pkg, name := p.qualifiedName() - typ := p.typ(nil, nil) - p.declare(types.NewTypeName(pos, pkg, name, typ)) - - case typeTag: - p.typ(nil, nil) - - case varTag: - pos := p.pos() - pkg, name := p.qualifiedName() - typ := p.typ(nil, nil) - p.declare(types.NewVar(pos, pkg, name, typ)) - - case funcTag: - pos := p.pos() - pkg, name := p.qualifiedName() - params, isddd := p.paramList() - result, _ := p.paramList() - sig := types.NewSignature(nil, params, result, isddd) - p.declare(types.NewFunc(pos, pkg, name, sig)) - - default: - errorf("unexpected object tag %d", tag) - } -} - const deltaNewFile = -64 // see cmd/compile/internal/gc/bexport.go -func (p *importer) pos() token.Pos { - if !p.posInfoFormat { - return token.NoPos - } - - file := p.prevFile - line := p.prevLine - delta := p.int() - line += delta - if p.version >= 5 { - if delta == deltaNewFile { - if n := p.int(); n >= 0 { - // file changed - file = p.path() - line = n - } - } - } else { - if delta == 0 { - if n := p.int(); n >= 0 { - // file changed - file = p.prevFile[:n] + p.string() - line = p.int() - } - } - } - p.prevFile = file - p.prevLine = line - - return p.fake.pos(file, line, 0) -} - // Synthesize a token.Pos type fakeFileSet struct { fset *token.FileSet @@ -389,205 +73,6 @@ var ( fakeLinesOnce sync.Once ) -func (p *importer) qualifiedName() (pkg *types.Package, name string) { - name = p.string() - pkg = p.pkg() - return -} - -func (p *importer) record(t types.Type) { - p.typList = append(p.typList, t) -} - -// A dddSlice is a types.Type representing ...T parameters. -// It only appears for parameter types and does not escape -// the importer. -type dddSlice struct { - elem types.Type -} - -func (t *dddSlice) Underlying() types.Type { return t } -func (t *dddSlice) String() string { return "..." + t.elem.String() } - -// parent is the package which declared the type; parent == nil means -// the package currently imported. The parent package is needed for -// exported struct fields and interface methods which don't contain -// explicit package information in the export data. -// -// A non-nil tname is used as the "owner" of the result type; i.e., -// the result type is the underlying type of tname. tname is used -// to give interface methods a named receiver type where possible. -func (p *importer) typ(parent *types.Package, tname *types.Named) types.Type { - // if the type was seen before, i is its index (>= 0) - i := p.tagOrIndex() - if i >= 0 { - return p.typList[i] - } - - // otherwise, i is the type tag (< 0) - switch i { - case namedTag: - // read type object - pos := p.pos() - parent, name := p.qualifiedName() - scope := parent.Scope() - obj := scope.Lookup(name) - - // if the object doesn't exist yet, create and insert it - if obj == nil { - obj = types.NewTypeName(pos, parent, name, nil) - scope.Insert(obj) - } - - if _, ok := obj.(*types.TypeName); !ok { - errorf("pkg = %s, name = %s => %s", parent, name, obj) - } - - // associate new named type with obj if it doesn't exist yet - t0 := types.NewNamed(obj.(*types.TypeName), nil, nil) - - // but record the existing type, if any - tname := obj.Type().(*types.Named) // tname is either t0 or the existing type - p.record(tname) - - // read underlying type - t0.SetUnderlying(p.typ(parent, t0)) - - // interfaces don't have associated methods - if types.IsInterface(t0) { - return tname - } - - // read associated methods - for i := p.int(); i > 0; i-- { - // TODO(gri) replace this with something closer to fieldName - pos := p.pos() - name := p.string() - if !exported(name) { - p.pkg() - } - - recv, _ := p.paramList() // TODO(gri) do we need a full param list for the receiver? - params, isddd := p.paramList() - result, _ := p.paramList() - p.int() // go:nointerface pragma - discarded - - sig := types.NewSignature(recv.At(0), params, result, isddd) - t0.AddMethod(types.NewFunc(pos, parent, name, sig)) - } - - return tname - - case arrayTag: - t := new(types.Array) - if p.trackAllTypes { - p.record(t) - } - - n := p.int64() - *t = *types.NewArray(p.typ(parent, nil), n) - return t - - case sliceTag: - t := new(types.Slice) - if p.trackAllTypes { - p.record(t) - } - - *t = *types.NewSlice(p.typ(parent, nil)) - return t - - case dddTag: - t := new(dddSlice) - if p.trackAllTypes { - p.record(t) - } - - t.elem = p.typ(parent, nil) - return t - - case structTag: - t := new(types.Struct) - if p.trackAllTypes { - p.record(t) - } - - *t = *types.NewStruct(p.fieldList(parent)) - return t - - case pointerTag: - t := new(types.Pointer) - if p.trackAllTypes { - p.record(t) - } - - *t = *types.NewPointer(p.typ(parent, nil)) - return t - - case signatureTag: - t := new(types.Signature) - if p.trackAllTypes { - p.record(t) - } - - params, isddd := p.paramList() - result, _ := p.paramList() - *t = *types.NewSignature(nil, params, result, isddd) - return t - - case interfaceTag: - // Create a dummy entry in the type list. This is safe because we - // cannot expect the interface type to appear in a cycle, as any - // such cycle must contain a named type which would have been - // first defined earlier. - // TODO(gri) Is this still true now that we have type aliases? - // See issue #23225. - n := len(p.typList) - if p.trackAllTypes { - p.record(nil) - } - - var embeddeds []types.Type - for n := p.int(); n > 0; n-- { - p.pos() - embeddeds = append(embeddeds, p.typ(parent, nil)) - } - - t := newInterface(p.methodList(parent, tname), embeddeds) - p.interfaceList = append(p.interfaceList, t) - if p.trackAllTypes { - p.typList[n] = t - } - return t - - case mapTag: - t := new(types.Map) - if p.trackAllTypes { - p.record(t) - } - - key := p.typ(parent, nil) - val := p.typ(parent, nil) - *t = *types.NewMap(key, val) - return t - - case chanTag: - t := new(types.Chan) - if p.trackAllTypes { - p.record(t) - } - - dir := chanDir(p.int()) - val := p.typ(parent, nil) - *t = *types.NewChan(dir, val) - return t - - default: - errorf("unexpected type tag %d", i) // panics - panic("unreachable") - } -} - func chanDir(d int) types.ChanDir { // tag values must match the constants in cmd/compile/internal/gc/go.go switch d { @@ -603,394 +88,6 @@ func chanDir(d int) types.ChanDir { } } -func (p *importer) fieldList(parent *types.Package) (fields []*types.Var, tags []string) { - if n := p.int(); n > 0 { - fields = make([]*types.Var, n) - tags = make([]string, n) - for i := range fields { - fields[i], tags[i] = p.field(parent) - } - } - return -} - -func (p *importer) field(parent *types.Package) (*types.Var, string) { - pos := p.pos() - pkg, name, alias := p.fieldName(parent) - typ := p.typ(parent, nil) - tag := p.string() - - anonymous := false - if name == "" { - // anonymous field - typ must be T or *T and T must be a type name - switch typ := deref(typ).(type) { - case *types.Basic: // basic types are named types - pkg = nil // // objects defined in Universe scope have no package - name = typ.Name() - case *types.Named: - name = typ.Obj().Name() - default: - errorf("named base type expected") - } - anonymous = true - } else if alias { - // anonymous field: we have an explicit name because it's an alias - anonymous = true - } - - return types.NewField(pos, pkg, name, typ, anonymous), tag -} - -func (p *importer) methodList(parent *types.Package, baseType *types.Named) (methods []*types.Func) { - if n := p.int(); n > 0 { - methods = make([]*types.Func, n) - for i := range methods { - methods[i] = p.method(parent, baseType) - } - } - return -} - -func (p *importer) method(parent *types.Package, baseType *types.Named) *types.Func { - pos := p.pos() - pkg, name, _ := p.fieldName(parent) - // If we don't have a baseType, use a nil receiver. - // A receiver using the actual interface type (which - // we don't know yet) will be filled in when we call - // types.Interface.Complete. - var recv *types.Var - if baseType != nil { - recv = types.NewVar(token.NoPos, parent, "", baseType) - } - params, isddd := p.paramList() - result, _ := p.paramList() - sig := types.NewSignature(recv, params, result, isddd) - return types.NewFunc(pos, pkg, name, sig) -} - -func (p *importer) fieldName(parent *types.Package) (pkg *types.Package, name string, alias bool) { - name = p.string() - pkg = parent - if pkg == nil { - // use the imported package instead - pkg = p.pkgList[0] - } - if p.version == 0 && name == "_" { - // version 0 didn't export a package for _ fields - return - } - switch name { - case "": - // 1) field name matches base type name and is exported: nothing to do - case "?": - // 2) field name matches base type name and is not exported: need package - name = "" - pkg = p.pkg() - case "@": - // 3) field name doesn't match type name (alias) - name = p.string() - alias = true - fallthrough - default: - if !exported(name) { - pkg = p.pkg() - } - } - return -} - -func (p *importer) paramList() (*types.Tuple, bool) { - n := p.int() - if n == 0 { - return nil, false - } - // negative length indicates unnamed parameters - named := true - if n < 0 { - n = -n - named = false - } - // n > 0 - params := make([]*types.Var, n) - isddd := false - for i := range params { - params[i], isddd = p.param(named) - } - return types.NewTuple(params...), isddd -} - -func (p *importer) param(named bool) (*types.Var, bool) { - t := p.typ(nil, nil) - td, isddd := t.(*dddSlice) - if isddd { - t = types.NewSlice(td.elem) - } - - var pkg *types.Package - var name string - if named { - name = p.string() - if name == "" { - errorf("expected named parameter") - } - if name != "_" { - pkg = p.pkg() - } - if i := strings.Index(name, "·"); i > 0 { - name = name[:i] // cut off gc-specific parameter numbering - } - } - - // read and discard compiler-specific info - p.string() - - return types.NewVar(token.NoPos, pkg, name, t), isddd -} - -func exported(name string) bool { - ch, _ := utf8.DecodeRuneInString(name) - return unicode.IsUpper(ch) -} - -func (p *importer) value() constant.Value { - switch tag := p.tagOrIndex(); tag { - case falseTag: - return constant.MakeBool(false) - case trueTag: - return constant.MakeBool(true) - case int64Tag: - return constant.MakeInt64(p.int64()) - case floatTag: - return p.float() - case complexTag: - re := p.float() - im := p.float() - return constant.BinaryOp(re, token.ADD, constant.MakeImag(im)) - case stringTag: - return constant.MakeString(p.string()) - case unknownTag: - return constant.MakeUnknown() - default: - errorf("unexpected value tag %d", tag) // panics - panic("unreachable") - } -} - -func (p *importer) float() constant.Value { - sign := p.int() - if sign == 0 { - return constant.MakeInt64(0) - } - - exp := p.int() - mant := []byte(p.string()) // big endian - - // remove leading 0's if any - for len(mant) > 0 && mant[0] == 0 { - mant = mant[1:] - } - - // convert to little endian - // TODO(gri) go/constant should have a more direct conversion function - // (e.g., once it supports a big.Float based implementation) - for i, j := 0, len(mant)-1; i < j; i, j = i+1, j-1 { - mant[i], mant[j] = mant[j], mant[i] - } - - // adjust exponent (constant.MakeFromBytes creates an integer value, - // but mant represents the mantissa bits such that 0.5 <= mant < 1.0) - exp -= len(mant) << 3 - if len(mant) > 0 { - for msd := mant[len(mant)-1]; msd&0x80 == 0; msd <<= 1 { - exp++ - } - } - - x := constant.MakeFromBytes(mant) - switch { - case exp < 0: - d := constant.Shift(constant.MakeInt64(1), token.SHL, uint(-exp)) - x = constant.BinaryOp(x, token.QUO, d) - case exp > 0: - x = constant.Shift(x, token.SHL, uint(exp)) - } - - if sign < 0 { - x = constant.UnaryOp(token.SUB, x, 0) - } - return x -} - -// ---------------------------------------------------------------------------- -// Low-level decoders - -func (p *importer) tagOrIndex() int { - if p.debugFormat { - p.marker('t') - } - - return int(p.rawInt64()) -} - -func (p *importer) int() int { - x := p.int64() - if int64(int(x)) != x { - errorf("exported integer too large") - } - return int(x) -} - -func (p *importer) int64() int64 { - if p.debugFormat { - p.marker('i') - } - - return p.rawInt64() -} - -func (p *importer) path() string { - if p.debugFormat { - p.marker('p') - } - // if the path was seen before, i is its index (>= 0) - // (the empty string is at index 0) - i := p.rawInt64() - if i >= 0 { - return p.pathList[i] - } - // otherwise, i is the negative path length (< 0) - a := make([]string, -i) - for n := range a { - a[n] = p.string() - } - s := strings.Join(a, "/") - p.pathList = append(p.pathList, s) - return s -} - -func (p *importer) string() string { - if p.debugFormat { - p.marker('s') - } - // if the string was seen before, i is its index (>= 0) - // (the empty string is at index 0) - i := p.rawInt64() - if i >= 0 { - return p.strList[i] - } - // otherwise, i is the negative string length (< 0) - if n := int(-i); n <= cap(p.buf) { - p.buf = p.buf[:n] - } else { - p.buf = make([]byte, n) - } - for i := range p.buf { - p.buf[i] = p.rawByte() - } - s := string(p.buf) - p.strList = append(p.strList, s) - return s -} - -func (p *importer) marker(want byte) { - if got := p.rawByte(); got != want { - errorf("incorrect marker: got %c; want %c (pos = %d)", got, want, p.read) - } - - pos := p.read - if n := int(p.rawInt64()); n != pos { - errorf("incorrect position: got %d; want %d", n, pos) - } -} - -// rawInt64 should only be used by low-level decoders. -func (p *importer) rawInt64() int64 { - i, err := binary.ReadVarint(p) - if err != nil { - errorf("read error: %v", err) - } - return i -} - -// rawStringln should only be used to read the initial version string. -func (p *importer) rawStringln(b byte) string { - p.buf = p.buf[:0] - for b != '\n' { - p.buf = append(p.buf, b) - b = p.rawByte() - } - return string(p.buf) -} - -// needed for binary.ReadVarint in rawInt64 -func (p *importer) ReadByte() (byte, error) { - return p.rawByte(), nil -} - -// byte is the bottleneck interface for reading p.data. -// It unescapes '|' 'S' to '$' and '|' '|' to '|'. -// rawByte should only be used by low-level decoders. -func (p *importer) rawByte() byte { - b := p.data[0] - r := 1 - if b == '|' { - b = p.data[1] - r = 2 - switch b { - case 'S': - b = '$' - case '|': - // nothing to do - default: - errorf("unexpected escape sequence in export data") - } - } - p.data = p.data[r:] - p.read += r - return b - -} - -// ---------------------------------------------------------------------------- -// Export format - -// Tags. Must be < 0. -const ( - // Objects - packageTag = -(iota + 1) - constTag - typeTag - varTag - funcTag - endTag - - // Types - namedTag - arrayTag - sliceTag - dddTag - structTag - pointerTag - signatureTag - interfaceTag - mapTag - chanTag - - // Values - falseTag - trueTag - int64Tag - floatTag - fractionTag // not used by gc - complexTag - stringTag - nilTag // only used by gc (appears in exported inlined function bodies) - unknownTag // not used by gc (only appears in packages with errors) - - // Type aliases - aliasTag -) - var predeclOnce sync.Once var predecl []types.Type // initialized lazily diff --git a/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go b/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go index 0372fb3a6469..b1223713b940 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go @@ -7,6 +7,18 @@ // Package gcimporter provides various functions for reading // gc-generated object files that can be used to implement the // Importer interface defined by the Go 1.5 standard library package. +// +// The encoding is deterministic: if the encoder is applied twice to +// the same types.Package data structure, both encodings are equal. +// This property may be important to avoid spurious changes in +// applications such as build systems. +// +// However, the encoder is not necessarily idempotent. Importing an +// exported package may yield a types.Package that, while it +// represents the same set of Go types as the original, may differ in +// the details of its internal representation. Because of these +// differences, re-encoding the imported package may yield a +// different, but equally valid, encoding of the package. package gcimporter // import "golang.org/x/tools/internal/gcimporter" import ( @@ -218,20 +230,17 @@ func Import(packages map[string]*types.Package, path, srcDir string, lookup func // Or, define a new standard go/types/gcexportdata package. fset := token.NewFileSet() - // The indexed export format starts with an 'i'; the older - // binary export format starts with a 'c', 'd', or 'v' - // (from "version"). Select appropriate importer. + // Select appropriate importer. if len(data) > 0 { switch data[0] { - case 'i': - _, pkg, err := IImportData(fset, packages, data[1:], id) - return pkg, err + case 'v', 'c', 'd': // binary, till go1.10 + return nil, fmt.Errorf("binary (%c) import format is no longer supported", data[0]) - case 'v', 'c', 'd': - _, pkg, err := BImportData(fset, packages, data, id) + case 'i': // indexed, till go1.19 + _, pkg, err := IImportData(fset, packages, data[1:], id) return pkg, err - case 'u': + case 'u': // unified, from go1.20 _, pkg, err := UImportData(fset, packages, data[1:size], id) return pkg, err diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go index ba53cdcdd107..6103dd7102b3 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go @@ -22,17 +22,23 @@ import ( "strconv" "strings" + "golang.org/x/tools/go/types/objectpath" "golang.org/x/tools/internal/tokeninternal" "golang.org/x/tools/internal/typeparams" ) // IExportShallow encodes "shallow" export data for the specified package. // -// No promises are made about the encoding other than that it can be -// decoded by the same version of IIExportShallow. If you plan to save -// export data in the file system, be sure to include a cryptographic -// digest of the executable in the key to avoid version skew. -func IExportShallow(fset *token.FileSet, pkg *types.Package) ([]byte, error) { +// No promises are made about the encoding other than that it can be decoded by +// the same version of IIExportShallow. If you plan to save export data in the +// file system, be sure to include a cryptographic digest of the executable in +// the key to avoid version skew. +// +// If the provided reportf func is non-nil, it will be used for reporting bugs +// encountered during export. +// TODO(rfindley): remove reportf when we are confident enough in the new +// objectpath encoding. +func IExportShallow(fset *token.FileSet, pkg *types.Package, reportf ReportFunc) ([]byte, error) { // In principle this operation can only fail if out.Write fails, // but that's impossible for bytes.Buffer---and as a matter of // fact iexportCommon doesn't even check for I/O errors. @@ -44,22 +50,30 @@ func IExportShallow(fset *token.FileSet, pkg *types.Package) ([]byte, error) { return out.Bytes(), err } -// IImportShallow decodes "shallow" types.Package data encoded by IExportShallow -// in the same executable. This function cannot import data from +// IImportShallow decodes "shallow" types.Package data encoded by +// IExportShallow in the same executable. This function cannot import data from // cmd/compile or gcexportdata.Write. -func IImportShallow(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string, insert InsertType) (*types.Package, error) { +// +// The importer calls getPackages to obtain package symbols for all +// packages mentioned in the export data, including the one being +// decoded. +// +// If the provided reportf func is non-nil, it will be used for reporting bugs +// encountered during import. +// TODO(rfindley): remove reportf when we are confident enough in the new +// objectpath encoding. +func IImportShallow(fset *token.FileSet, getPackages GetPackagesFunc, data []byte, path string, reportf ReportFunc) (*types.Package, error) { const bundle = false - pkgs, err := iimportCommon(fset, imports, data, bundle, path, insert) + const shallow = true + pkgs, err := iimportCommon(fset, getPackages, data, bundle, path, shallow, reportf) if err != nil { return nil, err } return pkgs[0], nil } -// InsertType is the type of a function that creates a types.TypeName -// object for a named type and inserts it into the scope of the -// specified Package. -type InsertType = func(pkg *types.Package, name string) +// ReportFunc is the type of a function used to report formatted bugs. +type ReportFunc = func(string, ...interface{}) // Current bundled export format version. Increase with each format change. // 0: initial implementation @@ -313,8 +327,9 @@ type iexporter struct { out *bytes.Buffer version int - shallow bool // don't put types from other packages in the index - localpkg *types.Package // (nil in bundle mode) + shallow bool // don't put types from other packages in the index + objEncoder *objectpath.Encoder // encodes objects from other packages in shallow mode; lazily allocated + localpkg *types.Package // (nil in bundle mode) // allPkgs tracks all packages that have been referenced by // the export data, so we can ensure to include them in the @@ -354,6 +369,17 @@ func (p *iexporter) trace(format string, args ...interface{}) { fmt.Printf(strings.Repeat("..", p.indent)+format+"\n", args...) } +// objectpathEncoder returns the lazily allocated objectpath.Encoder to use +// when encoding objects in other packages during shallow export. +// +// Using a shared Encoder amortizes some of cost of objectpath search. +func (p *iexporter) objectpathEncoder() *objectpath.Encoder { + if p.objEncoder == nil { + p.objEncoder = new(objectpath.Encoder) + } + return p.objEncoder +} + // stringOff returns the offset of s within the string section. // If not already present, it's added to the end. func (p *iexporter) stringOff(s string) uint64 { @@ -413,7 +439,6 @@ type exportWriter struct { p *iexporter data intWriter - currPkg *types.Package prevFile string prevLine int64 prevColumn int64 @@ -436,7 +461,6 @@ func (p *iexporter) doDecl(obj types.Object) { }() } w := p.newWriter() - w.setPkg(obj.Pkg(), false) switch obj := obj.(type) { case *types.Var: @@ -673,6 +697,9 @@ func (w *exportWriter) qualifiedType(obj *types.TypeName) { w.pkg(obj.Pkg()) } +// TODO(rfindley): what does 'pkg' even mean here? It would be better to pass +// it in explicitly into signatures and structs that may use it for +// constructing fields. func (w *exportWriter) typ(t types.Type, pkg *types.Package) { w.data.uint64(w.p.typOff(t, pkg)) } @@ -764,30 +791,53 @@ func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { case *types.Signature: w.startType(signatureType) - w.setPkg(pkg, true) + w.pkg(pkg) w.signature(t) case *types.Struct: w.startType(structType) n := t.NumFields() + // Even for struct{} we must emit some qualifying package, because that's + // what the compiler does, and thus that's what the importer expects. + fieldPkg := pkg if n > 0 { - w.setPkg(t.Field(0).Pkg(), true) // qualifying package for field objects - } else { - w.setPkg(pkg, true) + fieldPkg = t.Field(0).Pkg() + } + if fieldPkg == nil { + // TODO(rfindley): improve this very hacky logic. + // + // The importer expects a package to be set for all struct types, even + // those with no fields. A better encoding might be to set NumFields + // before pkg. setPkg panics with a nil package, which may be possible + // to reach with invalid packages (and perhaps valid packages, too?), so + // (arbitrarily) set the localpkg if available. + // + // Alternatively, we may be able to simply guarantee that pkg != nil, by + // reconsidering the encoding of constant values. + if w.p.shallow { + fieldPkg = w.p.localpkg + } else { + panic(internalErrorf("no package to set for empty struct")) + } } + w.pkg(fieldPkg) w.uint64(uint64(n)) + for i := 0; i < n; i++ { f := t.Field(i) + if w.p.shallow { + w.objectPath(f) + } w.pos(f.Pos()) w.string(f.Name()) // unexported fields implicitly qualified by prior setPkg - w.typ(f.Type(), pkg) + w.typ(f.Type(), fieldPkg) w.bool(f.Anonymous()) w.string(t.Tag(i)) // note (or tag) } case *types.Interface: w.startType(interfaceType) - w.setPkg(pkg, true) + w.pkg(pkg) n := t.NumEmbeddeds() w.uint64(uint64(n)) @@ -802,10 +852,16 @@ func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { w.typ(ft, tPkg) } + // See comment for struct fields. In shallow mode we change the encoding + // for interface methods that are promoted from other packages. + n = t.NumExplicitMethods() w.uint64(uint64(n)) for i := 0; i < n; i++ { m := t.ExplicitMethod(i) + if w.p.shallow { + w.objectPath(m) + } w.pos(m.Pos()) w.string(m.Name()) sig, _ := m.Type().(*types.Signature) @@ -827,12 +883,61 @@ func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { } } -func (w *exportWriter) setPkg(pkg *types.Package, write bool) { - if write { - w.pkg(pkg) +// objectPath writes the package and objectPath to use to look up obj in a +// different package, when encoding in "shallow" mode. +// +// When doing a shallow import, the importer creates only the local package, +// and requests package symbols for dependencies from the client. +// However, certain types defined in the local package may hold objects defined +// (perhaps deeply) within another package. +// +// For example, consider the following: +// +// package a +// func F() chan * map[string] struct { X int } +// +// package b +// import "a" +// var B = a.F() +// +// In this example, the type of b.B holds fields defined in package a. +// In order to have the correct canonical objects for the field defined in the +// type of B, they are encoded as objectPaths and later looked up in the +// importer. The same problem applies to interface methods. +func (w *exportWriter) objectPath(obj types.Object) { + if obj.Pkg() == nil || obj.Pkg() == w.p.localpkg { + // obj.Pkg() may be nil for the builtin error.Error. + // In this case, or if obj is declared in the local package, no need to + // encode. + w.string("") + return } - - w.currPkg = pkg + objectPath, err := w.p.objectpathEncoder().For(obj) + if err != nil { + // Fall back to the empty string, which will cause the importer to create a + // new object, which matches earlier behavior. Creating a new object is + // sufficient for many purposes (such as type checking), but causes certain + // references algorithms to fail (golang/go#60819). However, we didn't + // notice this problem during months of gopls@v0.12.0 testing. + // + // TODO(golang/go#61674): this workaround is insufficient, as in the case + // where the field forwarded from an instantiated type that may not appear + // in the export data of the original package: + // + // // package a + // type A[P any] struct{ F P } + // + // // package b + // type B a.A[int] + // + // We need to update references algorithms not to depend on this + // de-duplication, at which point we may want to simply remove the + // workaround here. + w.string("") + return + } + w.string(string(objectPath)) + w.pkg(obj.Pkg()) } func (w *exportWriter) signature(sig *types.Signature) { @@ -913,6 +1018,17 @@ func (w *exportWriter) value(typ types.Type, v constant.Value) { w.int64(int64(v.Kind())) } + if v.Kind() == constant.Unknown { + // golang/go#60605: treat unknown constant values as if they have invalid type + // + // This loses some fidelity over the package type-checked from source, but that + // is acceptable. + // + // TODO(rfindley): we should switch on the recorded constant kind rather + // than the constant type + return + } + switch b := typ.Underlying().(*types.Basic); b.Info() & types.IsConstType { case types.IsBoolean: w.bool(constant.BoolVal(v)) @@ -969,6 +1085,16 @@ func constantToFloat(x constant.Value) *big.Float { return &f } +func valueToRat(x constant.Value) *big.Rat { + // Convert little-endian to big-endian. + // I can't believe this is necessary. + bytes := constant.Bytes(x) + for i := 0; i < len(bytes)/2; i++ { + bytes[i], bytes[len(bytes)-1-i] = bytes[len(bytes)-1-i], bytes[i] + } + return new(big.Rat).SetInt(new(big.Int).SetBytes(bytes)) +} + // mpint exports a multi-precision integer. // // For unsigned types, small values are written out as a single @@ -1178,3 +1304,19 @@ func (q *objQueue) popHead() types.Object { q.head++ return obj } + +// internalError represents an error generated inside this package. +type internalError string + +func (e internalError) Error() string { return "gcimporter: " + string(e) } + +// TODO(adonovan): make this call panic, so that it's symmetric with errorf. +// Otherwise it's easy to forget to do anything with the error. +// +// TODO(adonovan): also, consider switching the names "errorf" and +// "internalErrorf" as the former is used for bugs, whose cause is +// internal inconsistency, whereas the latter is used for ordinary +// situations like bad input, whose cause is external. +func internalErrorf(format string, args ...interface{}) error { + return internalError(fmt.Sprintf(format, args...)) +} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go index 448f903e86a7..8e64cf644fce 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go @@ -21,6 +21,7 @@ import ( "sort" "strings" + "golang.org/x/tools/go/types/objectpath" "golang.org/x/tools/internal/typeparams" ) @@ -85,7 +86,7 @@ const ( // If the export data version is not recognized or the format is otherwise // compromised, an error is returned. func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (int, *types.Package, error) { - pkgs, err := iimportCommon(fset, imports, data, false, path, nil) + pkgs, err := iimportCommon(fset, GetPackagesFromMap(imports), data, false, path, false, nil) if err != nil { return 0, nil, err } @@ -94,10 +95,49 @@ func IImportData(fset *token.FileSet, imports map[string]*types.Package, data [] // IImportBundle imports a set of packages from the serialized package bundle. func IImportBundle(fset *token.FileSet, imports map[string]*types.Package, data []byte) ([]*types.Package, error) { - return iimportCommon(fset, imports, data, true, "", nil) + return iimportCommon(fset, GetPackagesFromMap(imports), data, true, "", false, nil) } -func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data []byte, bundle bool, path string, insert InsertType) (pkgs []*types.Package, err error) { +// A GetPackagesFunc function obtains the non-nil symbols for a set of +// packages, creating and recursively importing them as needed. An +// implementation should store each package symbol is in the Pkg +// field of the items array. +// +// Any error causes importing to fail. This can be used to quickly read +// the import manifest of an export data file without fully decoding it. +type GetPackagesFunc = func(items []GetPackagesItem) error + +// A GetPackagesItem is a request from the importer for the package +// symbol of the specified name and path. +type GetPackagesItem struct { + Name, Path string + Pkg *types.Package // to be filled in by GetPackagesFunc call + + // private importer state + pathOffset uint64 + nameIndex map[string]uint64 +} + +// GetPackagesFromMap returns a GetPackagesFunc that retrieves +// packages from the given map of package path to package. +// +// The returned function may mutate m: each requested package that is not +// found is created with types.NewPackage and inserted into m. +func GetPackagesFromMap(m map[string]*types.Package) GetPackagesFunc { + return func(items []GetPackagesItem) error { + for i, item := range items { + pkg, ok := m[item.Path] + if !ok { + pkg = types.NewPackage(item.Path, item.Name) + m[item.Path] = pkg + } + items[i].Pkg = pkg + } + return nil + } +} + +func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte, bundle bool, path string, shallow bool, reportf ReportFunc) (pkgs []*types.Package, err error) { const currentVersion = iexportVersionCurrent version := int64(-1) if !debug { @@ -108,7 +148,7 @@ func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data } else if version > currentVersion { err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e) } else { - err = fmt.Errorf("cannot import %q (%v), possibly version skew - reinstall package", path, e) + err = fmt.Errorf("internal error while importing %q (%v); please report an issue", path, e) } } }() @@ -117,11 +157,8 @@ func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data r := &intReader{bytes.NewReader(data), path} if bundle { - bundleVersion := r.uint64() - switch bundleVersion { - case bundleVersion: - default: - errorf("unknown bundle format version %d", bundleVersion) + if v := r.uint64(); v != bundleVersion { + errorf("unknown bundle format version %d", v) } } @@ -139,7 +176,7 @@ func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data sLen := int64(r.uint64()) var fLen int64 var fileOffset []uint64 - if insert != nil { + if shallow { // Shallow mode uses a different position encoding. fLen = int64(r.uint64()) fileOffset = make([]uint64, r.uint64()) @@ -158,7 +195,8 @@ func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data p := iimporter{ version: int(version), ipath: path, - insert: insert, + shallow: shallow, + reportf: reportf, stringData: stringData, stringCache: make(map[uint64]string), @@ -185,8 +223,9 @@ func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data p.typCache[uint64(i)] = pt } - pkgList := make([]*types.Package, r.uint64()) - for i := range pkgList { + // Gather the relevant packages from the manifest. + items := make([]GetPackagesItem, r.uint64()) + for i := range items { pkgPathOff := r.uint64() pkgPath := p.stringAt(pkgPathOff) pkgName := p.stringAt(r.uint64()) @@ -195,30 +234,42 @@ func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data if pkgPath == "" { pkgPath = path } - pkg := imports[pkgPath] - if pkg == nil { - pkg = types.NewPackage(pkgPath, pkgName) - imports[pkgPath] = pkg - } else if pkg.Name() != pkgName { - errorf("conflicting names %s and %s for package %q", pkg.Name(), pkgName, path) - } - if i == 0 && !bundle { - p.localpkg = pkg - } - - p.pkgCache[pkgPathOff] = pkg + items[i].Name = pkgName + items[i].Path = pkgPath + items[i].pathOffset = pkgPathOff // Read index for package. nameIndex := make(map[string]uint64) nSyms := r.uint64() - // In shallow mode we don't expect an index for other packages. - assert(nSyms == 0 || p.localpkg == pkg || p.insert == nil) + // In shallow mode, only the current package (i=0) has an index. + assert(!(shallow && i > 0 && nSyms != 0)) for ; nSyms > 0; nSyms-- { name := p.stringAt(r.uint64()) nameIndex[name] = r.uint64() } - p.pkgIndex[pkg] = nameIndex + items[i].nameIndex = nameIndex + } + + // Request packages all at once from the client, + // enabling a parallel implementation. + if err := getPackages(items); err != nil { + return nil, err // don't wrap this error + } + + // Check the results and complete the index. + pkgList := make([]*types.Package, len(items)) + for i, item := range items { + pkg := item.Pkg + if pkg == nil { + errorf("internal error: getPackages returned nil package for %q", item.Path) + } else if pkg.Path() != item.Path { + errorf("internal error: getPackages returned wrong path %q, want %q", pkg.Path(), item.Path) + } else if pkg.Name() != item.Name { + errorf("internal error: getPackages returned wrong name %s for package %q, want %s", pkg.Name(), item.Path, item.Name) + } + p.pkgCache[item.pathOffset] = pkg + p.pkgIndex[pkg] = item.nameIndex pkgList[i] = pkg } @@ -277,6 +328,13 @@ func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data typ.Complete() } + // Workaround for golang/go#61561. See the doc for instanceList for details. + for _, typ := range p.instanceList { + if iface, _ := typ.Underlying().(*types.Interface); iface != nil { + iface.Complete() + } + } + return pkgs, nil } @@ -289,8 +347,8 @@ type iimporter struct { version int ipath string - localpkg *types.Package - insert func(pkg *types.Package, name string) // "shallow" mode only + shallow bool + reportf ReportFunc // if non-nil, used to report bugs stringData []byte stringCache map[uint64]string @@ -307,6 +365,12 @@ type iimporter struct { fake fakeFileSet interfaceList []*types.Interface + // Workaround for the go/types bug golang/go#61561: instances produced during + // instantiation may contain incomplete interfaces. Here we only complete the + // underlying type of the instance, which is the most common case but doesn't + // handle parameterized interface literals defined deeper in the type. + instanceList []types.Type // instances for later completion (see golang/go#61561) + // Arguments for calls to SetConstraint that are deferred due to recursive types later []setConstraintArgs @@ -338,13 +402,9 @@ func (p *iimporter) doDecl(pkg *types.Package, name string) { off, ok := p.pkgIndex[pkg][name] if !ok { - // In "shallow" mode, call back to the application to - // find the object and insert it into the package scope. - if p.insert != nil { - assert(pkg != p.localpkg) - p.insert(pkg, name) // "can't fail" - return - } + // In deep mode, the index should be complete. In shallow + // mode, we should have already recursively loaded necessary + // dependencies so the above Lookup succeeds. errorf("%v.%v not in index", pkg, name) } @@ -711,7 +771,8 @@ func (r *importReader) qualifiedIdent() (*types.Package, string) { } func (r *importReader) pos() token.Pos { - if r.p.insert != nil { // shallow mode + if r.p.shallow { + // precise offsets are encoded only in shallow mode return r.posv2() } if r.p.version >= iexportVersionPosCol { @@ -812,13 +873,28 @@ func (r *importReader) doType(base *types.Named) (res types.Type) { fields := make([]*types.Var, r.uint64()) tags := make([]string, len(fields)) for i := range fields { + var field *types.Var + if r.p.shallow { + field, _ = r.objectPathObject().(*types.Var) + } + fpos := r.pos() fname := r.ident() ftyp := r.typ() emb := r.bool() tag := r.string() - fields[i] = types.NewField(fpos, r.currPkg, fname, ftyp, emb) + // Either this is not a shallow import, the field is local, or the + // encoded objectPath failed to produce an object (a bug). + // + // Even in this last, buggy case, fall back on creating a new field. As + // discussed in iexport.go, this is not correct, but mostly works and is + // preferable to failing (for now at least). + if field == nil { + field = types.NewField(fpos, r.currPkg, fname, ftyp, emb) + } + + fields[i] = field tags[i] = tag } return types.NewStruct(fields, tags) @@ -834,6 +910,11 @@ func (r *importReader) doType(base *types.Named) (res types.Type) { methods := make([]*types.Func, r.uint64()) for i := range methods { + var method *types.Func + if r.p.shallow { + method, _ = r.objectPathObject().(*types.Func) + } + mpos := r.pos() mname := r.ident() @@ -843,9 +924,12 @@ func (r *importReader) doType(base *types.Named) (res types.Type) { if base != nil { recv = types.NewVar(token.NoPos, r.currPkg, "", base) } - msig := r.signature(recv, nil, nil) - methods[i] = types.NewFunc(mpos, r.currPkg, mname, msig) + + if method == nil { + method = types.NewFunc(mpos, r.currPkg, mname, msig) + } + methods[i] = method } typ := newInterface(methods, embeddeds) @@ -883,6 +967,9 @@ func (r *importReader) doType(base *types.Named) (res types.Type) { // we must always use the methods of the base (orig) type. // TODO provide a non-nil *Environment t, _ := typeparams.Instantiate(nil, baseType, targs, false) + + // Workaround for golang/go#61561. See the doc for instanceList for details. + r.p.instanceList = append(r.p.instanceList, t) return t case unionType: @@ -901,6 +988,26 @@ func (r *importReader) kind() itag { return itag(r.uint64()) } +// objectPathObject is the inverse of exportWriter.objectPath. +// +// In shallow mode, certain fields and methods may need to be looked up in an +// imported package. See the doc for exportWriter.objectPath for a full +// explanation. +func (r *importReader) objectPathObject() types.Object { + objPath := objectpath.Path(r.string()) + if objPath == "" { + return nil + } + pkg := r.pkg() + obj, err := objectpath.Object(pkg, objPath) + if err != nil { + if r.p.reportf != nil { + r.p.reportf("failed to find object for objectPath %q: %v", objPath, err) + } + } + return obj +} + func (r *importReader) signature(recv *types.Var, rparams []*typeparams.TypeParam, tparams []*typeparams.TypeParam) *types.Signature { params := r.paramList() results := r.paramList() diff --git a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go index b285a11ce25a..b977435f626d 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go @@ -10,8 +10,10 @@ package gcimporter import ( + "fmt" "go/token" "go/types" + "sort" "strings" "golang.org/x/tools/internal/pkgbits" @@ -62,6 +64,14 @@ type typeInfo struct { } func UImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { + if !debug { + defer func() { + if x := recover(); x != nil { + err = fmt.Errorf("internal error in importing %q (%v); please report an issue", path, x) + } + }() + } + s := string(data) s = s[:strings.LastIndex(s, "\n$$\n")] input := pkgbits.NewPkgDecoder(path, s) @@ -121,6 +131,16 @@ func readUnifiedPackage(fset *token.FileSet, ctxt *types.Context, imports map[st iface.Complete() } + // Imports() of pkg are all of the transitive packages that were loaded. + var imps []*types.Package + for _, imp := range pr.pkgs { + if imp != nil && imp != pkg { + imps = append(imps, imp) + } + } + sort.Sort(byPath(imps)) + pkg.SetImports(imps) + pkg.MarkComplete() return pkg } @@ -260,39 +280,9 @@ func (r *reader) doPkg() *types.Package { pkg := types.NewPackage(path, name) r.p.imports[path] = pkg - imports := make([]*types.Package, r.Len()) - for i := range imports { - imports[i] = r.pkg() - } - pkg.SetImports(flattenImports(imports)) - return pkg } -// flattenImports returns the transitive closure of all imported -// packages rooted from pkgs. -func flattenImports(pkgs []*types.Package) []*types.Package { - var res []*types.Package - seen := make(map[*types.Package]struct{}) - for _, pkg := range pkgs { - if _, ok := seen[pkg]; ok { - continue - } - seen[pkg] = struct{}{} - res = append(res, pkg) - - // pkg.Imports() is already flattened. - for _, pkg := range pkg.Imports() { - if _, ok := seen[pkg]; ok { - continue - } - seen[pkg] = struct{}{} - res = append(res, pkg) - } - } - return res -} - // @@@ Types func (r *reader) typ() types.Type { diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke.go b/vendor/golang.org/x/tools/internal/gocommand/invoke.go index d50551693f3d..53cf66da0193 100644 --- a/vendor/golang.org/x/tools/internal/gocommand/invoke.go +++ b/vendor/golang.org/x/tools/internal/gocommand/invoke.go @@ -8,10 +8,12 @@ package gocommand import ( "bytes" "context" + "errors" "fmt" "io" "log" "os" + "reflect" "regexp" "runtime" "strconv" @@ -22,6 +24,9 @@ import ( exec "golang.org/x/sys/execabs" "golang.org/x/tools/internal/event" + "golang.org/x/tools/internal/event/keys" + "golang.org/x/tools/internal/event/label" + "golang.org/x/tools/internal/event/tag" ) // An Runner will run go command invocations and serialize @@ -51,9 +56,19 @@ func (runner *Runner) initialize() { // 1.14: go: updating go.mod: existing contents have changed since last read var modConcurrencyError = regexp.MustCompile(`go:.*go.mod.*contents have changed`) +// verb is an event label for the go command verb. +var verb = keys.NewString("verb", "go command verb") + +func invLabels(inv Invocation) []label.Label { + return []label.Label{verb.Of(inv.Verb), tag.Directory.Of(inv.WorkingDir)} +} + // Run is a convenience wrapper around RunRaw. // It returns only stdout and a "friendly" error. func (runner *Runner) Run(ctx context.Context, inv Invocation) (*bytes.Buffer, error) { + ctx, done := event.Start(ctx, "gocommand.Runner.Run", invLabels(inv)...) + defer done() + stdout, _, friendly, _ := runner.RunRaw(ctx, inv) return stdout, friendly } @@ -61,6 +76,9 @@ func (runner *Runner) Run(ctx context.Context, inv Invocation) (*bytes.Buffer, e // RunPiped runs the invocation serially, always waiting for any concurrent // invocations to complete first. func (runner *Runner) RunPiped(ctx context.Context, inv Invocation, stdout, stderr io.Writer) error { + ctx, done := event.Start(ctx, "gocommand.Runner.RunPiped", invLabels(inv)...) + defer done() + _, err := runner.runPiped(ctx, inv, stdout, stderr) return err } @@ -68,6 +86,8 @@ func (runner *Runner) RunPiped(ctx context.Context, inv Invocation, stdout, stde // RunRaw runs the invocation, serializing requests only if they fight over // go.mod changes. func (runner *Runner) RunRaw(ctx context.Context, inv Invocation) (*bytes.Buffer, *bytes.Buffer, error, error) { + ctx, done := event.Start(ctx, "gocommand.Runner.RunRaw", invLabels(inv)...) + defer done() // Make sure the runner is always initialized. runner.initialize() @@ -215,6 +235,18 @@ func (i *Invocation) run(ctx context.Context, stdout, stderr io.Writer) error { cmd := exec.Command("go", goArgs...) cmd.Stdout = stdout cmd.Stderr = stderr + + // cmd.WaitDelay was added only in go1.20 (see #50436). + if waitDelay := reflect.ValueOf(cmd).Elem().FieldByName("WaitDelay"); waitDelay.IsValid() { + // https://go.dev/issue/59541: don't wait forever copying stderr + // after the command has exited. + // After CL 484741 we copy stdout manually, so we we'll stop reading that as + // soon as ctx is done. However, we also don't want to wait around forever + // for stderr. Give a much-longer-than-reasonable delay and then assume that + // something has wedged in the kernel or runtime. + waitDelay.Set(reflect.ValueOf(30 * time.Second)) + } + // On darwin the cwd gets resolved to the real path, which breaks anything that // expects the working directory to keep the original path, including the // go command when dealing with modules. @@ -229,6 +261,7 @@ func (i *Invocation) run(ctx context.Context, stdout, stderr io.Writer) error { cmd.Env = append(cmd.Env, "PWD="+i.WorkingDir) cmd.Dir = i.WorkingDir } + defer func(start time.Time) { log("%s for %v", time.Since(start), cmdDebugStr(cmd)) }(time.Now()) return runCmdContext(ctx, cmd) @@ -242,10 +275,85 @@ var DebugHangingGoCommands = false // runCmdContext is like exec.CommandContext except it sends os.Interrupt // before os.Kill. -func runCmdContext(ctx context.Context, cmd *exec.Cmd) error { - if err := cmd.Start(); err != nil { +func runCmdContext(ctx context.Context, cmd *exec.Cmd) (err error) { + // If cmd.Stdout is not an *os.File, the exec package will create a pipe and + // copy it to the Writer in a goroutine until the process has finished and + // either the pipe reaches EOF or command's WaitDelay expires. + // + // However, the output from 'go list' can be quite large, and we don't want to + // keep reading (and allocating buffers) if we've already decided we don't + // care about the output. We don't want to wait for the process to finish, and + // we don't wait to wait for the WaitDelay to expire either. + // + // Instead, if cmd.Stdout requires a copying goroutine we explicitly replace + // it with a pipe (which is an *os.File), which we can close in order to stop + // copying output as soon as we realize we don't care about it. + var stdoutW *os.File + if cmd.Stdout != nil { + if _, ok := cmd.Stdout.(*os.File); !ok { + var stdoutR *os.File + stdoutR, stdoutW, err = os.Pipe() + if err != nil { + return err + } + prevStdout := cmd.Stdout + cmd.Stdout = stdoutW + + stdoutErr := make(chan error, 1) + go func() { + _, err := io.Copy(prevStdout, stdoutR) + if err != nil { + err = fmt.Errorf("copying stdout: %w", err) + } + stdoutErr <- err + }() + defer func() { + // We started a goroutine to copy a stdout pipe. + // Wait for it to finish, or terminate it if need be. + var err2 error + select { + case err2 = <-stdoutErr: + stdoutR.Close() + case <-ctx.Done(): + stdoutR.Close() + // Per https://pkg.go.dev/os#File.Close, the call to stdoutR.Close + // should cause the Read call in io.Copy to unblock and return + // immediately, but we still need to receive from stdoutErr to confirm + // that it has happened. + <-stdoutErr + err2 = ctx.Err() + } + if err == nil { + err = err2 + } + }() + + // Per https://pkg.go.dev/os/exec#Cmd, “If Stdout and Stderr are the + // same writer, and have a type that can be compared with ==, at most + // one goroutine at a time will call Write.” + // + // Since we're starting a goroutine that writes to cmd.Stdout, we must + // also update cmd.Stderr so that it still holds. + func() { + defer func() { recover() }() + if cmd.Stderr == prevStdout { + cmd.Stderr = cmd.Stdout + } + }() + } + } + + err = cmd.Start() + if stdoutW != nil { + // The child process has inherited the pipe file, + // so close the copy held in this process. + stdoutW.Close() + stdoutW = nil + } + if err != nil { return err } + resChan := make(chan error, 1) go func() { resChan <- cmd.Wait() @@ -253,11 +361,14 @@ func runCmdContext(ctx context.Context, cmd *exec.Cmd) error { // If we're interested in debugging hanging Go commands, stop waiting after a // minute and panic with interesting information. - if DebugHangingGoCommands { + debug := DebugHangingGoCommands + if debug { + timer := time.NewTimer(1 * time.Minute) + defer timer.Stop() select { case err := <-resChan: return err - case <-time.After(1 * time.Minute): + case <-timer.C: HandleHangingGoCommand(cmd.Process) case <-ctx.Done(): } @@ -270,30 +381,25 @@ func runCmdContext(ctx context.Context, cmd *exec.Cmd) error { } // Cancelled. Interrupt and see if it ends voluntarily. - cmd.Process.Signal(os.Interrupt) - select { - case err := <-resChan: - return err - case <-time.After(time.Second): + if err := cmd.Process.Signal(os.Interrupt); err == nil { + // (We used to wait only 1s but this proved + // fragile on loaded builder machines.) + timer := time.NewTimer(5 * time.Second) + defer timer.Stop() + select { + case err := <-resChan: + return err + case <-timer.C: + } } // Didn't shut down in response to interrupt. Kill it hard. // TODO(rfindley): per advice from bcmills@, it may be better to send SIGQUIT // on certain platforms, such as unix. - if err := cmd.Process.Kill(); err != nil && DebugHangingGoCommands { - // Don't panic here as this reliably fails on windows with EINVAL. + if err := cmd.Process.Kill(); err != nil && !errors.Is(err, os.ErrProcessDone) && debug { log.Printf("error killing the Go command: %v", err) } - // See above: don't wait indefinitely if we're debugging hanging Go commands. - if DebugHangingGoCommands { - select { - case err := <-resChan: - return err - case <-time.After(10 * time.Second): // a shorter wait as resChan should return quickly following Kill - HandleHangingGoCommand(cmd.Process) - } - } return <-resChan } diff --git a/vendor/golang.org/x/tools/internal/gocommand/version.go b/vendor/golang.org/x/tools/internal/gocommand/version.go index 307a76d474ad..446c5846a60f 100644 --- a/vendor/golang.org/x/tools/internal/gocommand/version.go +++ b/vendor/golang.org/x/tools/internal/gocommand/version.go @@ -23,21 +23,11 @@ import ( func GoVersion(ctx context.Context, inv Invocation, r *Runner) (int, error) { inv.Verb = "list" inv.Args = []string{"-e", "-f", `{{context.ReleaseTags}}`, `--`, `unsafe`} - inv.Env = append(append([]string{}, inv.Env...), "GO111MODULE=off") - // Unset any unneeded flags, and remove them from BuildFlags, if they're - // present. - inv.ModFile = "" + inv.BuildFlags = nil // This is not a build command. inv.ModFlag = "" - var buildFlags []string - for _, flag := range inv.BuildFlags { - // Flags can be prefixed by one or two dashes. - f := strings.TrimPrefix(strings.TrimPrefix(flag, "-"), "-") - if strings.HasPrefix(f, "mod=") || strings.HasPrefix(f, "modfile=") { - continue - } - buildFlags = append(buildFlags, flag) - } - inv.BuildFlags = buildFlags + inv.ModFile = "" + inv.Env = append(inv.Env[:len(inv.Env):len(inv.Env)], "GO111MODULE=off") + stdoutBytes, err := r.Run(ctx, inv) if err != nil { return 0, err diff --git a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go index 168405322683..452e342c559c 100644 --- a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go +++ b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go @@ -9,8 +9,6 @@ package gopathwalk import ( "bufio" "bytes" - "fmt" - "io/ioutil" "log" "os" "path/filepath" @@ -78,7 +76,7 @@ func walkDir(root Root, add func(Root, string), skip func(root Root, dir string) } start := time.Now() if opts.Logf != nil { - opts.Logf("gopathwalk: scanning %s", root.Path) + opts.Logf("scanning %s", root.Path) } w := &walker{ root: root, @@ -88,11 +86,15 @@ func walkDir(root Root, add func(Root, string), skip func(root Root, dir string) } w.init() if err := fastwalk.Walk(root.Path, w.walk); err != nil { - log.Printf("gopathwalk: scanning directory %v: %v", root.Path, err) + logf := opts.Logf + if logf == nil { + logf = log.Printf + } + logf("scanning directory %v: %v", root.Path, err) } if opts.Logf != nil { - opts.Logf("gopathwalk: scanned %s in %v", root.Path, time.Since(start)) + opts.Logf("scanned %s in %v", root.Path, time.Since(start)) } } @@ -135,7 +137,7 @@ func (w *walker) init() { // The provided path is one of the $GOPATH entries with "src" appended. func (w *walker) getIgnoredDirs(path string) []string { file := filepath.Join(path, ".goimportsignore") - slurp, err := ioutil.ReadFile(file) + slurp, err := os.ReadFile(file) if w.opts.Logf != nil { if err != nil { w.opts.Logf("%v", err) @@ -222,7 +224,11 @@ func (w *walker) walk(path string, typ os.FileMode) error { func (w *walker) shouldTraverse(path string) bool { ts, err := os.Stat(path) if err != nil { - fmt.Fprintln(os.Stderr, err) + logf := w.opts.Logf + if logf == nil { + logf = log.Printf + } + logf("%v", err) return false } if !ts.IsDir() { diff --git a/vendor/golang.org/x/tools/internal/imports/fix.go b/vendor/golang.org/x/tools/internal/imports/fix.go index 642a5ac2d757..d4f1b4e8a0f2 100644 --- a/vendor/golang.org/x/tools/internal/imports/fix.go +++ b/vendor/golang.org/x/tools/internal/imports/fix.go @@ -26,6 +26,7 @@ import ( "unicode/utf8" "golang.org/x/tools/go/ast/astutil" + "golang.org/x/tools/internal/event" "golang.org/x/tools/internal/gocommand" "golang.org/x/tools/internal/gopathwalk" ) @@ -414,9 +415,16 @@ func (p *pass) fix() ([]*ImportFix, bool) { }) } } + // Collecting fixes involved map iteration, so sort for stability. See + // golang/go#59976. + sortFixes(fixes) + // collect selected fixes in a separate slice, so that it can be sorted + // separately. Note that these fixes must occur after fixes to existing + // imports. TODO(rfindley): figure out why. + var selectedFixes []*ImportFix for _, imp := range selected { - fixes = append(fixes, &ImportFix{ + selectedFixes = append(selectedFixes, &ImportFix{ StmtInfo: ImportInfo{ Name: p.importSpecName(imp), ImportPath: imp.ImportPath, @@ -425,8 +433,25 @@ func (p *pass) fix() ([]*ImportFix, bool) { FixType: AddImport, }) } + sortFixes(selectedFixes) - return fixes, true + return append(fixes, selectedFixes...), true +} + +func sortFixes(fixes []*ImportFix) { + sort.Slice(fixes, func(i, j int) bool { + fi, fj := fixes[i], fixes[j] + if fi.StmtInfo.ImportPath != fj.StmtInfo.ImportPath { + return fi.StmtInfo.ImportPath < fj.StmtInfo.ImportPath + } + if fi.StmtInfo.Name != fj.StmtInfo.Name { + return fi.StmtInfo.Name < fj.StmtInfo.Name + } + if fi.IdentName != fj.IdentName { + return fi.IdentName < fj.IdentName + } + return fi.FixType < fj.FixType + }) } // importSpecName gets the import name of imp in the import spec. @@ -519,7 +544,7 @@ func (p *pass) addCandidate(imp *ImportInfo, pkg *packageInfo) { var fixImports = fixImportsDefault func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv) error { - fixes, err := getFixes(fset, f, filename, env) + fixes, err := getFixes(context.Background(), fset, f, filename, env) if err != nil { return err } @@ -529,7 +554,7 @@ func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *P // getFixes gets the import fixes that need to be made to f in order to fix the imports. // It does not modify the ast. -func getFixes(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv) ([]*ImportFix, error) { +func getFixes(ctx context.Context, fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv) ([]*ImportFix, error) { abs, err := filepath.Abs(filename) if err != nil { return nil, err @@ -583,7 +608,7 @@ func getFixes(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv // Go look for candidates in $GOPATH, etc. We don't necessarily load // the real exports of sibling imports, so keep assuming their contents. - if err := addExternalCandidates(p, p.missingRefs, filename); err != nil { + if err := addExternalCandidates(ctx, p, p.missingRefs, filename); err != nil { return nil, err } @@ -1031,7 +1056,10 @@ type scanCallback struct { exportsLoaded func(pkg *pkg, exports []string) } -func addExternalCandidates(pass *pass, refs references, filename string) error { +func addExternalCandidates(ctx context.Context, pass *pass, refs references, filename string) error { + ctx, done := event.Start(ctx, "imports.addExternalCandidates") + defer done() + var mu sync.Mutex found := make(map[string][]pkgDistance) callback := &scanCallback{ diff --git a/vendor/golang.org/x/tools/internal/imports/imports.go b/vendor/golang.org/x/tools/internal/imports/imports.go index 95a88383a792..58e637b90f24 100644 --- a/vendor/golang.org/x/tools/internal/imports/imports.go +++ b/vendor/golang.org/x/tools/internal/imports/imports.go @@ -11,6 +11,7 @@ package imports import ( "bufio" "bytes" + "context" "fmt" "go/ast" "go/format" @@ -23,6 +24,7 @@ import ( "strings" "golang.org/x/tools/go/ast/astutil" + "golang.org/x/tools/internal/event" ) // Options is golang.org/x/tools/imports.Options with extra internal-only options. @@ -66,14 +68,17 @@ func Process(filename string, src []byte, opt *Options) (formatted []byte, err e // // Note that filename's directory influences which imports can be chosen, // so it is important that filename be accurate. -func FixImports(filename string, src []byte, opt *Options) (fixes []*ImportFix, err error) { +func FixImports(ctx context.Context, filename string, src []byte, opt *Options) (fixes []*ImportFix, err error) { + ctx, done := event.Start(ctx, "imports.FixImports") + defer done() + fileSet := token.NewFileSet() file, _, err := parse(fileSet, filename, src, opt) if err != nil { return nil, err } - return getFixes(fileSet, file, filename, opt.Env) + return getFixes(ctx, fileSet, file, filename, opt.Env) } // ApplyFixes applies all of the fixes to the file and formats it. extraMode diff --git a/vendor/golang.org/x/tools/internal/imports/mod.go b/vendor/golang.org/x/tools/internal/imports/mod.go index 7d99d04ca8ad..977d2389da12 100644 --- a/vendor/golang.org/x/tools/internal/imports/mod.go +++ b/vendor/golang.org/x/tools/internal/imports/mod.go @@ -19,6 +19,7 @@ import ( "strings" "golang.org/x/mod/module" + "golang.org/x/tools/internal/event" "golang.org/x/tools/internal/gocommand" "golang.org/x/tools/internal/gopathwalk" ) @@ -37,7 +38,7 @@ type ModuleResolver struct { mains []*gocommand.ModuleJSON mainByDir map[string]*gocommand.ModuleJSON modsByModPath []*gocommand.ModuleJSON // All modules, ordered by # of path components in module Path... - modsByDir []*gocommand.ModuleJSON // ...or Dir. + modsByDir []*gocommand.ModuleJSON // ...or number of path components in their Dir. // moduleCacheCache stores information about the module cache. moduleCacheCache *dirInfoCache @@ -123,7 +124,7 @@ func (r *ModuleResolver) init() error { }) sort.Slice(r.modsByDir, func(i, j int) bool { count := func(x int) int { - return strings.Count(r.modsByDir[x].Dir, "/") + return strings.Count(r.modsByDir[x].Dir, string(filepath.Separator)) } return count(j) < count(i) // descending order }) @@ -327,6 +328,10 @@ func (r *ModuleResolver) findModuleByDir(dir string) *gocommand.ModuleJSON { // - in /vendor/ in -mod=vendor mode. // - nested module? Dunno. // Rumor has it that replace targets cannot contain other replace targets. + // + // Note that it is critical here that modsByDir is sorted to have deeper dirs + // first. This ensures that findModuleByDir finds the innermost module. + // See also golang/go#56291. for _, m := range r.modsByDir { if !strings.HasPrefix(dir, m.Dir) { continue @@ -424,6 +429,9 @@ func (r *ModuleResolver) loadPackageNames(importPaths []string, srcDir string) ( } func (r *ModuleResolver) scan(ctx context.Context, callback *scanCallback) error { + ctx, done := event.Start(ctx, "imports.ModuleResolver.scan") + defer done() + if err := r.init(); err != nil { return err } diff --git a/vendor/golang.org/x/tools/internal/imports/mod_cache.go b/vendor/golang.org/x/tools/internal/imports/mod_cache.go index 18dada495ca8..45690abbb4f1 100644 --- a/vendor/golang.org/x/tools/internal/imports/mod_cache.go +++ b/vendor/golang.org/x/tools/internal/imports/mod_cache.go @@ -12,7 +12,7 @@ import ( "golang.org/x/tools/internal/gopathwalk" ) -// To find packages to import, the resolver needs to know about all of the +// To find packages to import, the resolver needs to know about all of // the packages that could be imported. This includes packages that are // already in modules that are in (1) the current module, (2) replace targets, // and (3) packages in the module cache. Packages in (1) and (2) may change over diff --git a/vendor/golang.org/x/tools/internal/imports/zstdlib.go b/vendor/golang.org/x/tools/internal/imports/zstdlib.go index 31a75949cdc5..9f992c2bec8e 100644 --- a/vendor/golang.org/x/tools/internal/imports/zstdlib.go +++ b/vendor/golang.org/x/tools/internal/imports/zstdlib.go @@ -93,6 +93,7 @@ var stdlib = map[string][]string{ "Compare", "Contains", "ContainsAny", + "ContainsFunc", "ContainsRune", "Count", "Cut", @@ -147,6 +148,11 @@ var stdlib = map[string][]string{ "TrimSpace", "TrimSuffix", }, + "cmp": { + "Compare", + "Less", + "Ordered", + }, "compress/bzip2": { "NewReader", "StructuralError", @@ -228,6 +234,7 @@ var stdlib = map[string][]string{ "Ring", }, "context": { + "AfterFunc", "Background", "CancelCauseFunc", "CancelFunc", @@ -239,8 +246,11 @@ var stdlib = map[string][]string{ "WithCancel", "WithCancelCause", "WithDeadline", + "WithDeadlineCause", "WithTimeout", + "WithTimeoutCause", "WithValue", + "WithoutCancel", }, "crypto": { "BLAKE2b_256", @@ -445,6 +455,7 @@ var stdlib = map[string][]string{ "XORBytes", }, "crypto/tls": { + "AlertError", "Certificate", "CertificateRequestInfo", "CertificateVerificationError", @@ -476,6 +487,7 @@ var stdlib = map[string][]string{ "LoadX509KeyPair", "NewLRUClientSessionCache", "NewListener", + "NewResumptionState", "NoClientCert", "PKCS1WithSHA1", "PKCS1WithSHA256", @@ -484,6 +496,27 @@ var stdlib = map[string][]string{ "PSSWithSHA256", "PSSWithSHA384", "PSSWithSHA512", + "ParseSessionState", + "QUICClient", + "QUICConfig", + "QUICConn", + "QUICEncryptionLevel", + "QUICEncryptionLevelApplication", + "QUICEncryptionLevelEarly", + "QUICEncryptionLevelHandshake", + "QUICEncryptionLevelInitial", + "QUICEvent", + "QUICEventKind", + "QUICHandshakeDone", + "QUICNoEvent", + "QUICRejectedEarlyData", + "QUICServer", + "QUICSessionTicketOptions", + "QUICSetReadSecret", + "QUICSetWriteSecret", + "QUICTransportParameters", + "QUICTransportParametersRequired", + "QUICWriteData", "RecordHeaderError", "RenegotiateFreelyAsClient", "RenegotiateNever", @@ -493,6 +526,7 @@ var stdlib = map[string][]string{ "RequireAndVerifyClientCert", "RequireAnyClientCert", "Server", + "SessionState", "SignatureScheme", "TLS_AES_128_GCM_SHA256", "TLS_AES_256_GCM_SHA384", @@ -523,6 +557,7 @@ var stdlib = map[string][]string{ "TLS_RSA_WITH_AES_256_GCM_SHA384", "TLS_RSA_WITH_RC4_128_SHA", "VerifyClientCertIfGiven", + "VersionName", "VersionSSL30", "VersionTLS10", "VersionTLS11", @@ -618,6 +653,7 @@ var stdlib = map[string][]string{ "PureEd25519", "RSA", "RevocationList", + "RevocationListEntry", "SHA1WithRSA", "SHA256WithRSA", "SHA256WithRSAPSS", @@ -1002,10 +1038,42 @@ var stdlib = map[string][]string{ "COMPRESS_LOOS", "COMPRESS_LOPROC", "COMPRESS_ZLIB", + "COMPRESS_ZSTD", "Chdr32", "Chdr64", "Class", "CompressionType", + "DF_1_CONFALT", + "DF_1_DIRECT", + "DF_1_DISPRELDNE", + "DF_1_DISPRELPND", + "DF_1_EDITED", + "DF_1_ENDFILTEE", + "DF_1_GLOBAL", + "DF_1_GLOBAUDIT", + "DF_1_GROUP", + "DF_1_IGNMULDEF", + "DF_1_INITFIRST", + "DF_1_INTERPOSE", + "DF_1_KMOD", + "DF_1_LOADFLTR", + "DF_1_NOCOMMON", + "DF_1_NODEFLIB", + "DF_1_NODELETE", + "DF_1_NODIRECT", + "DF_1_NODUMP", + "DF_1_NOHDR", + "DF_1_NOKSYMS", + "DF_1_NOOPEN", + "DF_1_NORELOC", + "DF_1_NOW", + "DF_1_ORIGIN", + "DF_1_PIE", + "DF_1_SINGLETON", + "DF_1_STUB", + "DF_1_SYMINTPOSE", + "DF_1_TRANS", + "DF_1_WEAKFILTER", "DF_BIND_NOW", "DF_ORIGIN", "DF_STATIC_TLS", @@ -1144,6 +1212,7 @@ var stdlib = map[string][]string{ "Dyn32", "Dyn64", "DynFlag", + "DynFlag1", "DynTag", "EI_ABIVERSION", "EI_CLASS", @@ -2111,6 +2180,7 @@ var stdlib = map[string][]string{ "R_PPC64_REL16_LO", "R_PPC64_REL24", "R_PPC64_REL24_NOTOC", + "R_PPC64_REL24_P9NOTOC", "R_PPC64_REL30", "R_PPC64_REL32", "R_PPC64_REL64", @@ -2848,6 +2918,7 @@ var stdlib = map[string][]string{ "MaxVarintLen16", "MaxVarintLen32", "MaxVarintLen64", + "NativeEndian", "PutUvarint", "PutVarint", "Read", @@ -2963,6 +3034,7 @@ var stdlib = map[string][]string{ }, "errors": { "As", + "ErrUnsupported", "Is", "Join", "New", @@ -2989,6 +3061,7 @@ var stdlib = map[string][]string{ "Arg", "Args", "Bool", + "BoolFunc", "BoolVar", "CommandLine", "ContinueOnError", @@ -3119,6 +3192,7 @@ var stdlib = map[string][]string{ "Inspect", "InterfaceType", "IsExported", + "IsGenerated", "KeyValueExpr", "LabeledStmt", "Lbl", @@ -3169,6 +3243,7 @@ var stdlib = map[string][]string{ "ArchChar", "Context", "Default", + "Directive", "FindOnly", "IgnoreVendor", "Import", @@ -3184,6 +3259,7 @@ var stdlib = map[string][]string{ "go/build/constraint": { "AndExpr", "Expr", + "GoVersion", "IsGoBuild", "IsPlusBuild", "NotExpr", @@ -3626,6 +3702,7 @@ var stdlib = map[string][]string{ "ErrBadHTML", "ErrBranchEnd", "ErrEndContext", + "ErrJSTemplate", "ErrNoSuchTemplate", "ErrOutputContext", "ErrPartialCharset", @@ -3870,6 +3947,8 @@ var stdlib = map[string][]string{ "FileInfo", "FileInfoToDirEntry", "FileMode", + "FormatDirEntry", + "FormatFileInfo", "Glob", "GlobFS", "ModeAppend", @@ -3942,6 +4021,78 @@ var stdlib = map[string][]string{ "SetPrefix", "Writer", }, + "log/slog": { + "Any", + "AnyValue", + "Attr", + "Bool", + "BoolValue", + "Debug", + "DebugContext", + "Default", + "Duration", + "DurationValue", + "Error", + "ErrorContext", + "Float64", + "Float64Value", + "Group", + "GroupValue", + "Handler", + "HandlerOptions", + "Info", + "InfoContext", + "Int", + "Int64", + "Int64Value", + "IntValue", + "JSONHandler", + "Kind", + "KindAny", + "KindBool", + "KindDuration", + "KindFloat64", + "KindGroup", + "KindInt64", + "KindLogValuer", + "KindString", + "KindTime", + "KindUint64", + "Level", + "LevelDebug", + "LevelError", + "LevelInfo", + "LevelKey", + "LevelVar", + "LevelWarn", + "Leveler", + "Log", + "LogAttrs", + "LogValuer", + "Logger", + "MessageKey", + "New", + "NewJSONHandler", + "NewLogLogger", + "NewRecord", + "NewTextHandler", + "Record", + "SetDefault", + "Source", + "SourceKey", + "String", + "StringValue", + "TextHandler", + "Time", + "TimeKey", + "TimeValue", + "Uint64", + "Uint64Value", + "Value", + "Warn", + "WarnContext", + "With", + }, "log/syslog": { "Dial", "LOG_ALERT", @@ -3977,6 +4128,13 @@ var stdlib = map[string][]string{ "Priority", "Writer", }, + "maps": { + "Clone", + "Copy", + "DeleteFunc", + "Equal", + "EqualFunc", + }, "math": { "Abs", "Acos", @@ -4371,6 +4529,7 @@ var stdlib = map[string][]string{ "ErrNoLocation", "ErrNotMultipart", "ErrNotSupported", + "ErrSchemeMismatch", "ErrServerClosed", "ErrShortBody", "ErrSkipAltProtocol", @@ -5084,6 +5243,8 @@ var stdlib = map[string][]string{ "NumCPU", "NumCgoCall", "NumGoroutine", + "PanicNilError", + "Pinner", "ReadMemStats", "ReadTrace", "SetBlockProfileRate", @@ -5172,6 +5333,37 @@ var stdlib = map[string][]string{ "Task", "WithRegion", }, + "slices": { + "BinarySearch", + "BinarySearchFunc", + "Clip", + "Clone", + "Compact", + "CompactFunc", + "Compare", + "CompareFunc", + "Contains", + "ContainsFunc", + "Delete", + "DeleteFunc", + "Equal", + "EqualFunc", + "Grow", + "Index", + "IndexFunc", + "Insert", + "IsSorted", + "IsSortedFunc", + "Max", + "MaxFunc", + "Min", + "MinFunc", + "Replace", + "Reverse", + "Sort", + "SortFunc", + "SortStableFunc", + }, "sort": { "Find", "Float64Slice", @@ -5242,6 +5434,7 @@ var stdlib = map[string][]string{ "Compare", "Contains", "ContainsAny", + "ContainsFunc", "ContainsRune", "Count", "Cut", @@ -5299,6 +5492,9 @@ var stdlib = map[string][]string{ "Mutex", "NewCond", "Once", + "OnceFunc", + "OnceValue", + "OnceValues", "Pool", "RWMutex", "WaitGroup", @@ -9135,10 +9331,12 @@ var stdlib = map[string][]string{ "SYS_AIO_CANCEL", "SYS_AIO_ERROR", "SYS_AIO_FSYNC", + "SYS_AIO_MLOCK", "SYS_AIO_READ", "SYS_AIO_RETURN", "SYS_AIO_SUSPEND", "SYS_AIO_SUSPEND_NOCANCEL", + "SYS_AIO_WAITCOMPLETE", "SYS_AIO_WRITE", "SYS_ALARM", "SYS_ARCH_PRCTL", @@ -9368,6 +9566,7 @@ var stdlib = map[string][]string{ "SYS_GET_MEMPOLICY", "SYS_GET_ROBUST_LIST", "SYS_GET_THREAD_AREA", + "SYS_GSSD_SYSCALL", "SYS_GTTY", "SYS_IDENTITYSVC", "SYS_IDLE", @@ -9411,8 +9610,24 @@ var stdlib = map[string][]string{ "SYS_KLDSYM", "SYS_KLDUNLOAD", "SYS_KLDUNLOADF", + "SYS_KMQ_NOTIFY", + "SYS_KMQ_OPEN", + "SYS_KMQ_SETATTR", + "SYS_KMQ_TIMEDRECEIVE", + "SYS_KMQ_TIMEDSEND", + "SYS_KMQ_UNLINK", "SYS_KQUEUE", "SYS_KQUEUE1", + "SYS_KSEM_CLOSE", + "SYS_KSEM_DESTROY", + "SYS_KSEM_GETVALUE", + "SYS_KSEM_INIT", + "SYS_KSEM_OPEN", + "SYS_KSEM_POST", + "SYS_KSEM_TIMEDWAIT", + "SYS_KSEM_TRYWAIT", + "SYS_KSEM_UNLINK", + "SYS_KSEM_WAIT", "SYS_KTIMER_CREATE", "SYS_KTIMER_DELETE", "SYS_KTIMER_GETOVERRUN", @@ -9504,11 +9719,14 @@ var stdlib = map[string][]string{ "SYS_NFSSVC", "SYS_NFSTAT", "SYS_NICE", + "SYS_NLM_SYSCALL", "SYS_NLSTAT", "SYS_NMOUNT", "SYS_NSTAT", "SYS_NTP_ADJTIME", "SYS_NTP_GETTIME", + "SYS_NUMA_GETAFFINITY", + "SYS_NUMA_SETAFFINITY", "SYS_OABI_SYSCALL_BASE", "SYS_OBREAK", "SYS_OLDFSTAT", @@ -9891,6 +10109,7 @@ var stdlib = map[string][]string{ "SYS___ACL_SET_FD", "SYS___ACL_SET_FILE", "SYS___ACL_SET_LINK", + "SYS___CAP_RIGHTS_GET", "SYS___CLONE", "SYS___DISABLE_THREADSIGNAL", "SYS___GETCWD", @@ -10574,6 +10793,7 @@ var stdlib = map[string][]string{ "Short", "T", "TB", + "Testing", "Verbose", }, "testing/fstest": { @@ -10603,6 +10823,9 @@ var stdlib = map[string][]string{ "SetupError", "Value", }, + "testing/slogtest": { + "TestHandler", + }, "text/scanner": { "Char", "Comment", @@ -10826,6 +11049,7 @@ var stdlib = map[string][]string{ "Cs", "Cuneiform", "Cypriot", + "Cypro_Minoan", "Cyrillic", "Dash", "Deprecated", @@ -10889,6 +11113,7 @@ var stdlib = map[string][]string{ "Kaithi", "Kannada", "Katakana", + "Kawi", "Kayah_Li", "Kharoshthi", "Khitan_Small_Script", @@ -10943,6 +11168,7 @@ var stdlib = map[string][]string{ "Myanmar", "N", "Nabataean", + "Nag_Mundari", "Nandinagari", "Nd", "New_Tai_Lue", @@ -10964,6 +11190,7 @@ var stdlib = map[string][]string{ "Old_Sogdian", "Old_South_Arabian", "Old_Turkic", + "Old_Uyghur", "Oriya", "Osage", "Osmanya", @@ -11038,6 +11265,7 @@ var stdlib = map[string][]string{ "Tai_Viet", "Takri", "Tamil", + "Tangsa", "Tangut", "Telugu", "Terminal_Punctuation", @@ -11052,6 +11280,7 @@ var stdlib = map[string][]string{ "ToLower", "ToTitle", "ToUpper", + "Toto", "TurkishCase", "Ugaritic", "Unified_Ideograph", @@ -11061,6 +11290,7 @@ var stdlib = map[string][]string{ "Vai", "Variation_Selector", "Version", + "Vithkuqi", "Wancho", "Warang_Citi", "White_Space", diff --git a/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go b/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go index a3fb2d4f29d0..7e638ec24fcb 100644 --- a/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go +++ b/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go @@ -7,7 +7,9 @@ package tokeninternal import ( + "fmt" "go/token" + "sort" "sync" "unsafe" ) @@ -57,3 +59,93 @@ func GetLines(file *token.File) []int { panic("unexpected token.File size") } } + +// AddExistingFiles adds the specified files to the FileSet if they +// are not already present. It panics if any pair of files in the +// resulting FileSet would overlap. +func AddExistingFiles(fset *token.FileSet, files []*token.File) { + // Punch through the FileSet encapsulation. + type tokenFileSet struct { + // This type remained essentially consistent from go1.16 to go1.21. + mutex sync.RWMutex + base int + files []*token.File + _ *token.File // changed to atomic.Pointer[token.File] in go1.19 + } + + // If the size of token.FileSet changes, this will fail to compile. + const delta = int64(unsafe.Sizeof(tokenFileSet{})) - int64(unsafe.Sizeof(token.FileSet{})) + var _ [-delta * delta]int + + type uP = unsafe.Pointer + var ptr *tokenFileSet + *(*uP)(uP(&ptr)) = uP(fset) + ptr.mutex.Lock() + defer ptr.mutex.Unlock() + + // Merge and sort. + newFiles := append(ptr.files, files...) + sort.Slice(newFiles, func(i, j int) bool { + return newFiles[i].Base() < newFiles[j].Base() + }) + + // Reject overlapping files. + // Discard adjacent identical files. + out := newFiles[:0] + for i, file := range newFiles { + if i > 0 { + prev := newFiles[i-1] + if file == prev { + continue + } + if prev.Base()+prev.Size()+1 > file.Base() { + panic(fmt.Sprintf("file %s (%d-%d) overlaps with file %s (%d-%d)", + prev.Name(), prev.Base(), prev.Base()+prev.Size(), + file.Name(), file.Base(), file.Base()+file.Size())) + } + } + out = append(out, file) + } + newFiles = out + + ptr.files = newFiles + + // Advance FileSet.Base(). + if len(newFiles) > 0 { + last := newFiles[len(newFiles)-1] + newBase := last.Base() + last.Size() + 1 + if ptr.base < newBase { + ptr.base = newBase + } + } +} + +// FileSetFor returns a new FileSet containing a sequence of new Files with +// the same base, size, and line as the input files, for use in APIs that +// require a FileSet. +// +// Precondition: the input files must be non-overlapping, and sorted in order +// of their Base. +func FileSetFor(files ...*token.File) *token.FileSet { + fset := token.NewFileSet() + for _, f := range files { + f2 := fset.AddFile(f.Name(), f.Base(), f.Size()) + lines := GetLines(f) + f2.SetLines(lines) + } + return fset +} + +// CloneFileSet creates a new FileSet holding all files in fset. It does not +// create copies of the token.Files in fset: they are added to the resulting +// FileSet unmodified. +func CloneFileSet(fset *token.FileSet) *token.FileSet { + var files []*token.File + fset.Iterate(func(f *token.File) bool { + files = append(files, f) + return true + }) + newFileSet := token.NewFileSet() + AddExistingFiles(newFileSet, files) + return newFileSet +} diff --git a/vendor/golang.org/x/tools/internal/typeparams/common.go b/vendor/golang.org/x/tools/internal/typeparams/common.go index 25a1426d30ec..d0d0649fe2ac 100644 --- a/vendor/golang.org/x/tools/internal/typeparams/common.go +++ b/vendor/golang.org/x/tools/internal/typeparams/common.go @@ -23,6 +23,7 @@ package typeparams import ( + "fmt" "go/ast" "go/token" "go/types" @@ -87,7 +88,6 @@ func IsTypeParam(t types.Type) bool { func OriginMethod(fn *types.Func) *types.Func { recv := fn.Type().(*types.Signature).Recv() if recv == nil { - return fn } base := recv.Type() @@ -106,6 +106,31 @@ func OriginMethod(fn *types.Func) *types.Func { } orig := NamedTypeOrigin(named) gfn, _, _ := types.LookupFieldOrMethod(orig, true, fn.Pkg(), fn.Name()) + + // This is a fix for a gopls crash (#60628) due to a go/types bug (#60634). In: + // package p + // type T *int + // func (*T) f() {} + // LookupFieldOrMethod(T, true, p, f)=nil, but NewMethodSet(*T)={(*T).f}. + // Here we make them consistent by force. + // (The go/types bug is general, but this workaround is reached only + // for generic T thanks to the early return above.) + if gfn == nil { + mset := types.NewMethodSet(types.NewPointer(orig)) + for i := 0; i < mset.Len(); i++ { + m := mset.At(i) + if m.Obj().Id() == fn.Id() { + gfn = m.Obj() + break + } + } + } + + // In golang/go#61196, we observe another crash, this time inexplicable. + if gfn == nil { + panic(fmt.Sprintf("missing origin method for %s.%s; named == origin: %t, named.NumMethods(): %d, origin.NumMethods(): %d", named, fn, named == orig, named.NumMethods(), orig.NumMethods())) + } + return gfn.(*types.Func) } diff --git a/vendor/golang.org/x/tools/internal/typeparams/coretype.go b/vendor/golang.org/x/tools/internal/typeparams/coretype.go index 993135ec90e8..71248209ee5e 100644 --- a/vendor/golang.org/x/tools/internal/typeparams/coretype.go +++ b/vendor/golang.org/x/tools/internal/typeparams/coretype.go @@ -81,13 +81,13 @@ func CoreType(T types.Type) types.Type { // restrictions may be arbitrarily complex. For example, consider the // following: // -// type A interface{ ~string|~[]byte } +// type A interface{ ~string|~[]byte } // -// type B interface{ int|string } +// type B interface{ int|string } // -// type C interface { ~string|~int } +// type C interface { ~string|~int } // -// type T[P interface{ A|B; C }] int +// type T[P interface{ A|B; C }] int // // In this example, the structural type restriction of P is ~string|int: A|B // expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, diff --git a/vendor/golang.org/x/tools/internal/typeparams/termlist.go b/vendor/golang.org/x/tools/internal/typeparams/termlist.go index 933106a23dd4..cbd12f801314 100644 --- a/vendor/golang.org/x/tools/internal/typeparams/termlist.go +++ b/vendor/golang.org/x/tools/internal/typeparams/termlist.go @@ -30,7 +30,7 @@ func (xl termlist) String() string { var buf bytes.Buffer for i, x := range xl { if i > 0 { - buf.WriteString(" ∪ ") + buf.WriteString(" | ") } buf.WriteString(x.String()) } diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go b/vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go index b4788978ff4b..7ed86e1711b9 100644 --- a/vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go +++ b/vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go @@ -129,7 +129,7 @@ func NamedTypeArgs(*types.Named) *TypeList { } // NamedTypeOrigin is the identity method at this Go version. -func NamedTypeOrigin(named *types.Named) types.Type { +func NamedTypeOrigin(named *types.Named) *types.Named { return named } diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go b/vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go index 114a36b866bc..cf301af1dbe8 100644 --- a/vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go +++ b/vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go @@ -103,7 +103,7 @@ func NamedTypeArgs(named *types.Named) *TypeList { } // NamedTypeOrigin returns named.Orig(). -func NamedTypeOrigin(named *types.Named) types.Type { +func NamedTypeOrigin(named *types.Named) *types.Named { return named.Origin() } diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go index 7ddee28d9875..7350bb702a17 100644 --- a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go +++ b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go @@ -10,11 +10,10 @@ import "go/types" // A term describes elementary type sets: // -// ∅: (*term)(nil) == ∅ // set of no types (empty set) -// 𝓤: &term{} == 𝓤 // set of all types (𝓤niverse) -// T: &term{false, T} == {T} // set of type T -// ~t: &term{true, t} == {t' | under(t') == t} // set of types with underlying type t -// +// ∅: (*term)(nil) == ∅ // set of no types (empty set) +// 𝓤: &term{} == 𝓤 // set of all types (𝓤niverse) +// T: &term{false, T} == {T} // set of type T +// ~t: &term{true, t} == {t' | under(t') == t} // set of types with underlying type t type term struct { tilde bool // valid if typ != nil typ types.Type diff --git a/vendor/golang.org/x/tools/internal/typesinternal/objectpath.go b/vendor/golang.org/x/tools/internal/typesinternal/objectpath.go new file mode 100644 index 000000000000..5e96e8955737 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/objectpath.go @@ -0,0 +1,24 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typesinternal + +import "go/types" + +// This file contains back doors that allow gopls to avoid method sorting when +// using the objectpath package. +// +// This is performance-critical in certain repositories, but changing the +// behavior of the objectpath package is still being discussed in +// golang/go#61443. If we decide to remove the sorting in objectpath we can +// simply delete these back doors. Otherwise, we should add a new API to +// objectpath that allows controlling the sorting. + +// SkipEncoderMethodSorting marks enc (which must be an *objectpath.Encoder) as +// not requiring sorted methods. +var SkipEncoderMethodSorting func(enc interface{}) + +// ObjectpathObject is like objectpath.Object, but allows suppressing method +// sorting. +var ObjectpathObject func(pkg *types.Package, p string, skipMethodSorting bool) (types.Object, error) diff --git a/vendor/google.golang.org/appengine/.travis.yml b/vendor/google.golang.org/appengine/.travis.yml deleted file mode 100644 index 6d03f4d36e8c..000000000000 --- a/vendor/google.golang.org/appengine/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -language: go - -go_import_path: google.golang.org/appengine - -install: - - ./travis_install.sh - -script: - - ./travis_test.sh - -matrix: - include: - - go: 1.9.x - env: GOAPP=true - - go: 1.10.x - env: GOAPP=false - - go: 1.11.x - env: GO111MODULE=on diff --git a/vendor/google.golang.org/appengine/CONTRIBUTING.md b/vendor/google.golang.org/appengine/CONTRIBUTING.md index ffc298520856..289693613ccc 100644 --- a/vendor/google.golang.org/appengine/CONTRIBUTING.md +++ b/vendor/google.golang.org/appengine/CONTRIBUTING.md @@ -19,14 +19,12 @@ ## Running system tests -Download and install the [Go App Engine SDK](https://cloud.google.com/appengine/docs/go/download). Make sure the `go_appengine` dir is in your `PATH`. - Set the `APPENGINE_DEV_APPSERVER` environment variable to `/path/to/go_appengine/dev_appserver.py`. -Run tests with `goapp test`: +Run tests with `go test`: ``` -goapp test -v google.golang.org/appengine/... +go test -v google.golang.org/appengine/... ``` ## Contributor License Agreements diff --git a/vendor/google.golang.org/appengine/README.md b/vendor/google.golang.org/appengine/README.md index 9fdbacd3c601..5ccddd9990dd 100644 --- a/vendor/google.golang.org/appengine/README.md +++ b/vendor/google.golang.org/appengine/README.md @@ -1,6 +1,6 @@ # Go App Engine packages -[![Build Status](https://travis-ci.org/golang/appengine.svg)](https://travis-ci.org/golang/appengine) +[![CI Status](https://github.com/golang/appengine/actions/workflows/ci.yml/badge.svg)](https://github.com/golang/appengine/actions/workflows/ci.yml) This repository supports the Go runtime on *App Engine standard*. It provides APIs for interacting with App Engine services. @@ -51,7 +51,7 @@ code importing `appengine/datastore` will now need to import `google.golang.org/ Most App Engine services are available with exactly the same API. A few APIs were cleaned up, and there are some differences: -* `appengine.Context` has been replaced with the `Context` type from `golang.org/x/net/context`. +* `appengine.Context` has been replaced with the `Context` type from `context`. * Logging methods that were on `appengine.Context` are now functions in `google.golang.org/appengine/log`. * `appengine.Timeout` has been removed. Use `context.WithTimeout` instead. * `appengine.Datacenter` now takes a `context.Context` argument. @@ -72,7 +72,7 @@ A few APIs were cleaned up, and there are some differences: * `appengine/socket` is not required on App Engine flexible environment / Managed VMs. Use the standard `net` package instead. -## Key Encode/Decode compatibiltiy to help with datastore library migrations +## Key Encode/Decode compatibility to help with datastore library migrations Key compatibility updates have been added to help customers transition from google.golang.org/appengine/datastore to cloud.google.com/go/datastore. The `EnableKeyConversion` enables automatic conversion from a key encoded with cloud.google.com/go/datastore to google.golang.org/appengine/datastore key type. diff --git a/vendor/google.golang.org/appengine/appengine.go b/vendor/google.golang.org/appengine/appengine.go index 8c9697674f20..35ba9c896766 100644 --- a/vendor/google.golang.org/appengine/appengine.go +++ b/vendor/google.golang.org/appengine/appengine.go @@ -9,10 +9,10 @@ package appengine // import "google.golang.org/appengine" import ( + "context" "net/http" "github.com/golang/protobuf/proto" - "golang.org/x/net/context" "google.golang.org/appengine/internal" ) @@ -35,18 +35,18 @@ import ( // // Main is designed so that the app's main package looks like this: // -// package main +// package main // -// import ( -// "google.golang.org/appengine" +// import ( +// "google.golang.org/appengine" // -// _ "myapp/package0" -// _ "myapp/package1" -// ) +// _ "myapp/package0" +// _ "myapp/package1" +// ) // -// func main() { -// appengine.Main() -// } +// func main() { +// appengine.Main() +// } // // The "myapp/packageX" packages are expected to register HTTP handlers // in their init functions. @@ -54,6 +54,9 @@ func Main() { internal.Main() } +// Middleware wraps an http handler so that it can make GAE API calls +var Middleware func(http.Handler) http.Handler = internal.Middleware + // IsDevAppServer reports whether the App Engine app is running in the // development App Server. func IsDevAppServer() bool { diff --git a/vendor/google.golang.org/appengine/appengine_vm.go b/vendor/google.golang.org/appengine/appengine_vm.go index f4b645aad3be..6e1d041cd95b 100644 --- a/vendor/google.golang.org/appengine/appengine_vm.go +++ b/vendor/google.golang.org/appengine/appengine_vm.go @@ -2,19 +2,19 @@ // Use of this source code is governed by the Apache 2.0 // license that can be found in the LICENSE file. +//go:build !appengine // +build !appengine package appengine import ( - "golang.org/x/net/context" - - "google.golang.org/appengine/internal" + "context" ) // BackgroundContext returns a context not associated with a request. -// This should only be used when not servicing a request. -// This only works in App Engine "flexible environment". +// +// Deprecated: App Engine no longer has a special background context. +// Just use context.Background(). func BackgroundContext() context.Context { - return internal.BackgroundContext() + return context.Background() } diff --git a/vendor/google.golang.org/appengine/datastore/datastore.go b/vendor/google.golang.org/appengine/datastore/datastore.go index 576bc50132aa..790fca771f1c 100644 --- a/vendor/google.golang.org/appengine/datastore/datastore.go +++ b/vendor/google.golang.org/appengine/datastore/datastore.go @@ -5,12 +5,12 @@ package datastore import ( + "context" "errors" "fmt" "reflect" "github.com/golang/protobuf/proto" - "golang.org/x/net/context" "google.golang.org/appengine" "google.golang.org/appengine/internal" diff --git a/vendor/google.golang.org/appengine/datastore/doc.go b/vendor/google.golang.org/appengine/datastore/doc.go index 85616cf27410..1ecf51885fa2 100644 --- a/vendor/google.golang.org/appengine/datastore/doc.go +++ b/vendor/google.golang.org/appengine/datastore/doc.go @@ -5,8 +5,7 @@ /* Package datastore provides a client for App Engine's datastore service. - -Basic Operations +# Basic Operations Entities are the unit of storage and are associated with a key. A key consists of an optional parent key, a string application ID, a string kind @@ -74,8 +73,7 @@ GetMulti, PutMulti and DeleteMulti are batch versions of the Get, Put and Delete functions. They take a []*Key instead of a *Key, and may return an appengine.MultiError when encountering partial failure. - -Properties +# Properties An entity's contents can be represented by a variety of types. These are typically struct pointers, but can also be any type that implements the @@ -137,8 +135,7 @@ Example code: J int `datastore:",noindex" json:"j"` } - -Structured Properties +# Structured Properties If the struct pointed to contains other structs, then the nested or embedded structs are flattened. For example, given these definitions: @@ -179,8 +176,7 @@ equivalent field would instead be: FooDotZ bool `datastore:"Foo.Z"`. If an outer struct is tagged "noindex" then all of its implicit flattened fields are effectively "noindex". - -The PropertyLoadSaver Interface +# The PropertyLoadSaver Interface An entity's contents can also be represented by any type that implements the PropertyLoadSaver interface. This type may be a struct pointer, but it does @@ -230,8 +226,7 @@ Example code: The *PropertyList type implements PropertyLoadSaver, and can therefore hold an arbitrary entity's contents. - -Queries +# Queries Queries retrieve entities based on their properties or key's ancestry. Running a query yields an iterator of results: either keys or (key, entity) pairs. @@ -284,8 +279,7 @@ Example code: io.Copy(w, b) } - -Transactions +# Transactions RunInTransaction runs a function in a transaction. @@ -323,8 +317,7 @@ Example code: fmt.Fprintf(w, "Count=%d", count) } - -Metadata +# Metadata The datastore package provides access to some of App Engine's datastore metadata. This metadata includes information about the entity groups, diff --git a/vendor/google.golang.org/appengine/datastore/key.go b/vendor/google.golang.org/appengine/datastore/key.go index fd598dc9657f..e312df519db5 100644 --- a/vendor/google.golang.org/appengine/datastore/key.go +++ b/vendor/google.golang.org/appengine/datastore/key.go @@ -6,6 +6,7 @@ package datastore import ( "bytes" + "context" "encoding/base64" "encoding/gob" "errors" @@ -14,7 +15,6 @@ import ( "strings" "github.com/golang/protobuf/proto" - "golang.org/x/net/context" "google.golang.org/appengine/internal" pb "google.golang.org/appengine/internal/datastore" diff --git a/vendor/google.golang.org/appengine/datastore/keycompat.go b/vendor/google.golang.org/appengine/datastore/keycompat.go index 371a64eeefe8..e852f29cf7b7 100644 --- a/vendor/google.golang.org/appengine/datastore/keycompat.go +++ b/vendor/google.golang.org/appengine/datastore/keycompat.go @@ -5,10 +5,9 @@ package datastore import ( + "context" "sync" - "golang.org/x/net/context" - "google.golang.org/appengine/datastore/internal/cloudkey" "google.golang.org/appengine/internal" ) diff --git a/vendor/google.golang.org/appengine/datastore/metadata.go b/vendor/google.golang.org/appengine/datastore/metadata.go index 6acacc3db9aa..e1b2d2259bd8 100644 --- a/vendor/google.golang.org/appengine/datastore/metadata.go +++ b/vendor/google.golang.org/appengine/datastore/metadata.go @@ -4,7 +4,7 @@ package datastore -import "golang.org/x/net/context" +import "context" // Datastore kinds for the metadata entities. const ( @@ -50,13 +50,14 @@ func keyNames(keys []*Key) []string { // The properties are returned as a map of property names to a slice of the // representation types. The representation types for the supported Go property // types are: -// "INT64": signed integers and time.Time -// "DOUBLE": float32 and float64 -// "BOOLEAN": bool -// "STRING": string, []byte and ByteString -// "POINT": appengine.GeoPoint -// "REFERENCE": *Key -// "USER": (not used in the Go runtime) +// +// "INT64": signed integers and time.Time +// "DOUBLE": float32 and float64 +// "BOOLEAN": bool +// "STRING": string, []byte and ByteString +// "POINT": appengine.GeoPoint +// "REFERENCE": *Key +// "USER": (not used in the Go runtime) func KindProperties(ctx context.Context, kind string) (map[string][]string, error) { // TODO(djd): Support range queries. kindKey := NewKey(ctx, kindKind, kind, 0, nil) diff --git a/vendor/google.golang.org/appengine/datastore/query.go b/vendor/google.golang.org/appengine/datastore/query.go index 4124534b22f3..b1b80bf7b6c1 100644 --- a/vendor/google.golang.org/appengine/datastore/query.go +++ b/vendor/google.golang.org/appengine/datastore/query.go @@ -5,6 +5,7 @@ package datastore import ( + "context" "encoding/base64" "errors" "fmt" @@ -13,7 +14,6 @@ import ( "strings" "github.com/golang/protobuf/proto" - "golang.org/x/net/context" "google.golang.org/appengine/internal" pb "google.golang.org/appengine/internal/datastore" @@ -476,7 +476,7 @@ func callNext(c context.Context, res *pb.QueryResult, offset, count int32) error // The keys returned by GetAll will be in a 1-1 correspondence with the entities // added to dst. // -// If q is a ``keys-only'' query, GetAll ignores dst and only returns the keys. +// If q is a “keys-only” query, GetAll ignores dst and only returns the keys. // // The running time and number of API calls made by GetAll scale linearly with // the sum of the query's offset and limit. Unless the result count is @@ -754,7 +754,7 @@ func (c Cursor) String() string { return strings.TrimRight(base64.URLEncoding.EncodeToString(b), "=") } -// Decode decodes a cursor from its base-64 string representation. +// DecodeCursor decodes a cursor from its base-64 string representation. func DecodeCursor(s string) (Cursor, error) { if s == "" { return Cursor{&zeroCC}, nil diff --git a/vendor/google.golang.org/appengine/datastore/transaction.go b/vendor/google.golang.org/appengine/datastore/transaction.go index 2ae8428f856a..06deeb43e774 100644 --- a/vendor/google.golang.org/appengine/datastore/transaction.go +++ b/vendor/google.golang.org/appengine/datastore/transaction.go @@ -5,10 +5,9 @@ package datastore import ( + "context" "errors" - "golang.org/x/net/context" - "google.golang.org/appengine/internal" pb "google.golang.org/appengine/internal/datastore" ) diff --git a/vendor/google.golang.org/appengine/identity.go b/vendor/google.golang.org/appengine/identity.go index b8dcf8f36198..1202fc1a5317 100644 --- a/vendor/google.golang.org/appengine/identity.go +++ b/vendor/google.golang.org/appengine/identity.go @@ -5,10 +5,9 @@ package appengine import ( + "context" "time" - "golang.org/x/net/context" - "google.golang.org/appengine/internal" pb "google.golang.org/appengine/internal/app_identity" modpb "google.golang.org/appengine/internal/modules" diff --git a/vendor/google.golang.org/appengine/internal/api.go b/vendor/google.golang.org/appengine/internal/api.go index 721053c20a1b..0569f5dd43e4 100644 --- a/vendor/google.golang.org/appengine/internal/api.go +++ b/vendor/google.golang.org/appengine/internal/api.go @@ -2,12 +2,14 @@ // Use of this source code is governed by the Apache 2.0 // license that can be found in the LICENSE file. +//go:build !appengine // +build !appengine package internal import ( "bytes" + "context" "errors" "fmt" "io/ioutil" @@ -24,7 +26,6 @@ import ( "time" "github.com/golang/protobuf/proto" - netcontext "golang.org/x/net/context" basepb "google.golang.org/appengine/internal/base" logpb "google.golang.org/appengine/internal/log" @@ -32,8 +33,7 @@ import ( ) const ( - apiPath = "/rpc_http" - defaultTicketSuffix = "/default.20150612t184001.0" + apiPath = "/rpc_http" ) var ( @@ -65,21 +65,22 @@ var ( IdleConnTimeout: 90 * time.Second, }, } - - defaultTicketOnce sync.Once - defaultTicket string - backgroundContextOnce sync.Once - backgroundContext netcontext.Context ) -func apiURL() *url.URL { +func apiURL(ctx context.Context) *url.URL { host, port := "appengine.googleapis.internal", "10001" if h := os.Getenv("API_HOST"); h != "" { host = h } + if hostOverride := ctx.Value(apiHostOverrideKey); hostOverride != nil { + host = hostOverride.(string) + } if p := os.Getenv("API_PORT"); p != "" { port = p } + if portOverride := ctx.Value(apiPortOverrideKey); portOverride != nil { + port = portOverride.(string) + } return &url.URL{ Scheme: "http", Host: host + ":" + port, @@ -87,82 +88,97 @@ func apiURL() *url.URL { } } -func handleHTTP(w http.ResponseWriter, r *http.Request) { - c := &context{ - req: r, - outHeader: w.Header(), - apiURL: apiURL(), - } - r = r.WithContext(withContext(r.Context(), c)) - c.req = r - - stopFlushing := make(chan int) +// Middleware wraps an http handler so that it can make GAE API calls +func Middleware(next http.Handler) http.Handler { + return handleHTTPMiddleware(executeRequestSafelyMiddleware(next)) +} - // Patch up RemoteAddr so it looks reasonable. - if addr := r.Header.Get(userIPHeader); addr != "" { - r.RemoteAddr = addr - } else if addr = r.Header.Get(remoteAddrHeader); addr != "" { - r.RemoteAddr = addr - } else { - // Should not normally reach here, but pick a sensible default anyway. - r.RemoteAddr = "127.0.0.1" - } - // The address in the headers will most likely be of these forms: - // 123.123.123.123 - // 2001:db8::1 - // net/http.Request.RemoteAddr is specified to be in "IP:port" form. - if _, _, err := net.SplitHostPort(r.RemoteAddr); err != nil { - // Assume the remote address is only a host; add a default port. - r.RemoteAddr = net.JoinHostPort(r.RemoteAddr, "80") - } +func handleHTTPMiddleware(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + c := &aeContext{ + req: r, + outHeader: w.Header(), + } + r = r.WithContext(withContext(r.Context(), c)) + c.req = r + + stopFlushing := make(chan int) + + // Patch up RemoteAddr so it looks reasonable. + if addr := r.Header.Get(userIPHeader); addr != "" { + r.RemoteAddr = addr + } else if addr = r.Header.Get(remoteAddrHeader); addr != "" { + r.RemoteAddr = addr + } else { + // Should not normally reach here, but pick a sensible default anyway. + r.RemoteAddr = "127.0.0.1" + } + // The address in the headers will most likely be of these forms: + // 123.123.123.123 + // 2001:db8::1 + // net/http.Request.RemoteAddr is specified to be in "IP:port" form. + if _, _, err := net.SplitHostPort(r.RemoteAddr); err != nil { + // Assume the remote address is only a host; add a default port. + r.RemoteAddr = net.JoinHostPort(r.RemoteAddr, "80") + } - // Start goroutine responsible for flushing app logs. - // This is done after adding c to ctx.m (and stopped before removing it) - // because flushing logs requires making an API call. - go c.logFlusher(stopFlushing) + if logToLogservice() { + // Start goroutine responsible for flushing app logs. + // This is done after adding c to ctx.m (and stopped before removing it) + // because flushing logs requires making an API call. + go c.logFlusher(stopFlushing) + } - executeRequestSafely(c, r) - c.outHeader = nil // make sure header changes aren't respected any more + next.ServeHTTP(c, r) + c.outHeader = nil // make sure header changes aren't respected any more - stopFlushing <- 1 // any logging beyond this point will be dropped + flushed := make(chan struct{}) + if logToLogservice() { + stopFlushing <- 1 // any logging beyond this point will be dropped - // Flush any pending logs asynchronously. - c.pendingLogs.Lock() - flushes := c.pendingLogs.flushes - if len(c.pendingLogs.lines) > 0 { - flushes++ - } - c.pendingLogs.Unlock() - flushed := make(chan struct{}) - go func() { - defer close(flushed) - // Force a log flush, because with very short requests we - // may not ever flush logs. - c.flushLog(true) - }() - w.Header().Set(logFlushHeader, strconv.Itoa(flushes)) + // Flush any pending logs asynchronously. + c.pendingLogs.Lock() + flushes := c.pendingLogs.flushes + if len(c.pendingLogs.lines) > 0 { + flushes++ + } + c.pendingLogs.Unlock() + go func() { + defer close(flushed) + // Force a log flush, because with very short requests we + // may not ever flush logs. + c.flushLog(true) + }() + w.Header().Set(logFlushHeader, strconv.Itoa(flushes)) + } - // Avoid nil Write call if c.Write is never called. - if c.outCode != 0 { - w.WriteHeader(c.outCode) - } - if c.outBody != nil { - w.Write(c.outBody) - } - // Wait for the last flush to complete before returning, - // otherwise the security ticket will not be valid. - <-flushed + // Avoid nil Write call if c.Write is never called. + if c.outCode != 0 { + w.WriteHeader(c.outCode) + } + if c.outBody != nil { + w.Write(c.outBody) + } + if logToLogservice() { + // Wait for the last flush to complete before returning, + // otherwise the security ticket will not be valid. + <-flushed + } + }) } -func executeRequestSafely(c *context, r *http.Request) { - defer func() { - if x := recover(); x != nil { - logf(c, 4, "%s", renderPanic(x)) // 4 == critical - c.outCode = 500 - } - }() +func executeRequestSafelyMiddleware(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + defer func() { + if x := recover(); x != nil { + c := w.(*aeContext) + logf(c, 4, "%s", renderPanic(x)) // 4 == critical + c.outCode = 500 + } + }() - http.DefaultServeMux.ServeHTTP(c, r) + next.ServeHTTP(w, r) + }) } func renderPanic(x interface{}) string { @@ -204,9 +220,9 @@ func renderPanic(x interface{}) string { return string(buf) } -// context represents the context of an in-flight HTTP request. +// aeContext represents the aeContext of an in-flight HTTP request. // It implements the appengine.Context and http.ResponseWriter interfaces. -type context struct { +type aeContext struct { req *http.Request outCode int @@ -218,8 +234,6 @@ type context struct { lines []*logpb.UserAppLogLine flushes int } - - apiURL *url.URL } var contextKey = "holds a *context" @@ -227,8 +241,8 @@ var contextKey = "holds a *context" // jointContext joins two contexts in a superficial way. // It takes values and timeouts from a base context, and only values from another context. type jointContext struct { - base netcontext.Context - valuesOnly netcontext.Context + base context.Context + valuesOnly context.Context } func (c jointContext) Deadline() (time.Time, bool) { @@ -252,94 +266,54 @@ func (c jointContext) Value(key interface{}) interface{} { // fromContext returns the App Engine context or nil if ctx is not // derived from an App Engine context. -func fromContext(ctx netcontext.Context) *context { - c, _ := ctx.Value(&contextKey).(*context) +func fromContext(ctx context.Context) *aeContext { + c, _ := ctx.Value(&contextKey).(*aeContext) return c } -func withContext(parent netcontext.Context, c *context) netcontext.Context { - ctx := netcontext.WithValue(parent, &contextKey, c) +func withContext(parent context.Context, c *aeContext) context.Context { + ctx := context.WithValue(parent, &contextKey, c) if ns := c.req.Header.Get(curNamespaceHeader); ns != "" { ctx = withNamespace(ctx, ns) } return ctx } -func toContext(c *context) netcontext.Context { - return withContext(netcontext.Background(), c) +func toContext(c *aeContext) context.Context { + return withContext(context.Background(), c) } -func IncomingHeaders(ctx netcontext.Context) http.Header { +func IncomingHeaders(ctx context.Context) http.Header { if c := fromContext(ctx); c != nil { return c.req.Header } return nil } -func ReqContext(req *http.Request) netcontext.Context { +func ReqContext(req *http.Request) context.Context { return req.Context() } -func WithContext(parent netcontext.Context, req *http.Request) netcontext.Context { +func WithContext(parent context.Context, req *http.Request) context.Context { return jointContext{ base: parent, valuesOnly: req.Context(), } } -// DefaultTicket returns a ticket used for background context or dev_appserver. -func DefaultTicket() string { - defaultTicketOnce.Do(func() { - if IsDevAppServer() { - defaultTicket = "testapp" + defaultTicketSuffix - return - } - appID := partitionlessAppID() - escAppID := strings.Replace(strings.Replace(appID, ":", "_", -1), ".", "_", -1) - majVersion := VersionID(nil) - if i := strings.Index(majVersion, "."); i > 0 { - majVersion = majVersion[:i] - } - defaultTicket = fmt.Sprintf("%s/%s.%s.%s", escAppID, ModuleName(nil), majVersion, InstanceID()) - }) - return defaultTicket -} - -func BackgroundContext() netcontext.Context { - backgroundContextOnce.Do(func() { - // Compute background security ticket. - ticket := DefaultTicket() - - c := &context{ - req: &http.Request{ - Header: http.Header{ - ticketHeader: []string{ticket}, - }, - }, - apiURL: apiURL(), - } - backgroundContext = toContext(c) - - // TODO(dsymonds): Wire up the shutdown handler to do a final flush. - go c.logFlusher(make(chan int)) - }) - - return backgroundContext -} - // RegisterTestRequest registers the HTTP request req for testing, such that -// any API calls are sent to the provided URL. It returns a closure to delete -// the registration. +// any API calls are sent to the provided URL. // It should only be used by aetest package. -func RegisterTestRequest(req *http.Request, apiURL *url.URL, decorate func(netcontext.Context) netcontext.Context) (*http.Request, func()) { - c := &context{ - req: req, - apiURL: apiURL, - } - ctx := withContext(decorate(req.Context()), c) - req = req.WithContext(ctx) - c.req = req - return req, func() {} +func RegisterTestRequest(req *http.Request, apiURL *url.URL, appID string) *http.Request { + ctx := req.Context() + ctx = withAPIHostOverride(ctx, apiURL.Hostname()) + ctx = withAPIPortOverride(ctx, apiURL.Port()) + ctx = WithAppIDOverride(ctx, appID) + + // use the unregistered request as a placeholder so that withContext can read the headers + c := &aeContext{req: req} + c.req = req.WithContext(withContext(ctx, c)) + return c.req } var errTimeout = &CallError{ @@ -348,7 +322,7 @@ var errTimeout = &CallError{ Timeout: true, } -func (c *context) Header() http.Header { return c.outHeader } +func (c *aeContext) Header() http.Header { return c.outHeader } // Copied from $GOROOT/src/pkg/net/http/transfer.go. Some response status // codes do not permit a response body (nor response entity headers such as @@ -365,7 +339,7 @@ func bodyAllowedForStatus(status int) bool { return true } -func (c *context) Write(b []byte) (int, error) { +func (c *aeContext) Write(b []byte) (int, error) { if c.outCode == 0 { c.WriteHeader(http.StatusOK) } @@ -376,7 +350,7 @@ func (c *context) Write(b []byte) (int, error) { return len(b), nil } -func (c *context) WriteHeader(code int) { +func (c *aeContext) WriteHeader(code int) { if c.outCode != 0 { logf(c, 3, "WriteHeader called multiple times on request.") // error level return @@ -384,10 +358,11 @@ func (c *context) WriteHeader(code int) { c.outCode = code } -func (c *context) post(body []byte, timeout time.Duration) (b []byte, err error) { +func post(ctx context.Context, body []byte, timeout time.Duration) (b []byte, err error) { + apiURL := apiURL(ctx) hreq := &http.Request{ Method: "POST", - URL: c.apiURL, + URL: apiURL, Header: http.Header{ apiEndpointHeader: apiEndpointHeaderValue, apiMethodHeader: apiMethodHeaderValue, @@ -396,13 +371,16 @@ func (c *context) post(body []byte, timeout time.Duration) (b []byte, err error) }, Body: ioutil.NopCloser(bytes.NewReader(body)), ContentLength: int64(len(body)), - Host: c.apiURL.Host, - } - if info := c.req.Header.Get(dapperHeader); info != "" { - hreq.Header.Set(dapperHeader, info) + Host: apiURL.Host, } - if info := c.req.Header.Get(traceHeader); info != "" { - hreq.Header.Set(traceHeader, info) + c := fromContext(ctx) + if c != nil { + if info := c.req.Header.Get(dapperHeader); info != "" { + hreq.Header.Set(dapperHeader, info) + } + if info := c.req.Header.Get(traceHeader); info != "" { + hreq.Header.Set(traceHeader, info) + } } tr := apiHTTPClient.Transport.(*http.Transport) @@ -444,7 +422,7 @@ func (c *context) post(body []byte, timeout time.Duration) (b []byte, err error) return hrespBody, nil } -func Call(ctx netcontext.Context, service, method string, in, out proto.Message) error { +func Call(ctx context.Context, service, method string, in, out proto.Message) error { if ns := NamespaceFromContext(ctx); ns != "" { if fn, ok := NamespaceMods[service]; ok { fn(in, ns) @@ -463,15 +441,11 @@ func Call(ctx netcontext.Context, service, method string, in, out proto.Message) } c := fromContext(ctx) - if c == nil { - // Give a good error message rather than a panic lower down. - return errNotAppEngineContext - } // Apply transaction modifications if we're in a transaction. if t := transactionFromContext(ctx); t != nil { if t.finished { - return errors.New("transaction context has expired") + return errors.New("transaction aeContext has expired") } applyTransaction(in, &t.transaction) } @@ -487,20 +461,13 @@ func Call(ctx netcontext.Context, service, method string, in, out proto.Message) return err } - ticket := c.req.Header.Get(ticketHeader) - // Use a test ticket under test environment. - if ticket == "" { - if appid := ctx.Value(&appIDOverrideKey); appid != nil { - ticket = appid.(string) + defaultTicketSuffix + ticket := "" + if c != nil { + ticket = c.req.Header.Get(ticketHeader) + if dri := c.req.Header.Get(devRequestIdHeader); IsDevAppServer() && dri != "" { + ticket = dri } } - // Fall back to use background ticket when the request ticket is not available in Flex or dev_appserver. - if ticket == "" { - ticket = DefaultTicket() - } - if dri := c.req.Header.Get(devRequestIdHeader); IsDevAppServer() && dri != "" { - ticket = dri - } req := &remotepb.Request{ ServiceName: &service, Method: &method, @@ -512,7 +479,7 @@ func Call(ctx netcontext.Context, service, method string, in, out proto.Message) return err } - hrespBody, err := c.post(hreqBody, timeout) + hrespBody, err := post(ctx, hreqBody, timeout) if err != nil { return err } @@ -549,11 +516,11 @@ func Call(ctx netcontext.Context, service, method string, in, out proto.Message) return proto.Unmarshal(res.Response, out) } -func (c *context) Request() *http.Request { +func (c *aeContext) Request() *http.Request { return c.req } -func (c *context) addLogLine(ll *logpb.UserAppLogLine) { +func (c *aeContext) addLogLine(ll *logpb.UserAppLogLine) { // Truncate long log lines. // TODO(dsymonds): Check if this is still necessary. const lim = 8 << 10 @@ -575,18 +542,20 @@ var logLevelName = map[int64]string{ 4: "CRITICAL", } -func logf(c *context, level int64, format string, args ...interface{}) { +func logf(c *aeContext, level int64, format string, args ...interface{}) { if c == nil { - panic("not an App Engine context") + panic("not an App Engine aeContext") } s := fmt.Sprintf(format, args...) s = strings.TrimRight(s, "\n") // Remove any trailing newline characters. - c.addLogLine(&logpb.UserAppLogLine{ - TimestampUsec: proto.Int64(time.Now().UnixNano() / 1e3), - Level: &level, - Message: &s, - }) - // Only duplicate log to stderr if not running on App Engine second generation + if logToLogservice() { + c.addLogLine(&logpb.UserAppLogLine{ + TimestampUsec: proto.Int64(time.Now().UnixNano() / 1e3), + Level: &level, + Message: &s, + }) + } + // Log to stdout if not deployed if !IsSecondGen() { log.Print(logLevelName[level] + ": " + s) } @@ -594,7 +563,7 @@ func logf(c *context, level int64, format string, args ...interface{}) { // flushLog attempts to flush any pending logs to the appserver. // It should not be called concurrently. -func (c *context) flushLog(force bool) (flushed bool) { +func (c *aeContext) flushLog(force bool) (flushed bool) { c.pendingLogs.Lock() // Grab up to 30 MB. We can get away with up to 32 MB, but let's be cautious. n, rem := 0, 30<<20 @@ -655,7 +624,7 @@ const ( forceFlushInterval = 60 * time.Second ) -func (c *context) logFlusher(stop <-chan int) { +func (c *aeContext) logFlusher(stop <-chan int) { lastFlush := time.Now() tick := time.NewTicker(flushInterval) for { @@ -673,6 +642,12 @@ func (c *context) logFlusher(stop <-chan int) { } } -func ContextForTesting(req *http.Request) netcontext.Context { - return toContext(&context{req: req}) +func ContextForTesting(req *http.Request) context.Context { + return toContext(&aeContext{req: req}) +} + +func logToLogservice() bool { + // TODO: replace logservice with json structured logs to $LOG_DIR/app.log.json + // where $LOG_DIR is /var/log in prod and some tmpdir in dev + return os.Getenv("LOG_TO_LOGSERVICE") != "0" } diff --git a/vendor/google.golang.org/appengine/internal/api_classic.go b/vendor/google.golang.org/appengine/internal/api_classic.go index f0f40b2e35c2..87c33c798e87 100644 --- a/vendor/google.golang.org/appengine/internal/api_classic.go +++ b/vendor/google.golang.org/appengine/internal/api_classic.go @@ -2,11 +2,13 @@ // Use of this source code is governed by the Apache 2.0 // license that can be found in the LICENSE file. +//go:build appengine // +build appengine package internal import ( + "context" "errors" "fmt" "net/http" @@ -17,20 +19,19 @@ import ( basepb "appengine_internal/base" "github.com/golang/protobuf/proto" - netcontext "golang.org/x/net/context" ) var contextKey = "holds an appengine.Context" // fromContext returns the App Engine context or nil if ctx is not // derived from an App Engine context. -func fromContext(ctx netcontext.Context) appengine.Context { +func fromContext(ctx context.Context) appengine.Context { c, _ := ctx.Value(&contextKey).(appengine.Context) return c } // This is only for classic App Engine adapters. -func ClassicContextFromContext(ctx netcontext.Context) (appengine.Context, error) { +func ClassicContextFromContext(ctx context.Context) (appengine.Context, error) { c := fromContext(ctx) if c == nil { return nil, errNotAppEngineContext @@ -38,8 +39,8 @@ func ClassicContextFromContext(ctx netcontext.Context) (appengine.Context, error return c, nil } -func withContext(parent netcontext.Context, c appengine.Context) netcontext.Context { - ctx := netcontext.WithValue(parent, &contextKey, c) +func withContext(parent context.Context, c appengine.Context) context.Context { + ctx := context.WithValue(parent, &contextKey, c) s := &basepb.StringProto{} c.Call("__go__", "GetNamespace", &basepb.VoidProto{}, s, nil) @@ -50,7 +51,7 @@ func withContext(parent netcontext.Context, c appengine.Context) netcontext.Cont return ctx } -func IncomingHeaders(ctx netcontext.Context) http.Header { +func IncomingHeaders(ctx context.Context) http.Header { if c := fromContext(ctx); c != nil { if req, ok := c.Request().(*http.Request); ok { return req.Header @@ -59,11 +60,11 @@ func IncomingHeaders(ctx netcontext.Context) http.Header { return nil } -func ReqContext(req *http.Request) netcontext.Context { - return WithContext(netcontext.Background(), req) +func ReqContext(req *http.Request) context.Context { + return WithContext(context.Background(), req) } -func WithContext(parent netcontext.Context, req *http.Request) netcontext.Context { +func WithContext(parent context.Context, req *http.Request) context.Context { c := appengine.NewContext(req) return withContext(parent, c) } @@ -83,11 +84,11 @@ func (t *testingContext) Call(service, method string, _, _ appengine_internal.Pr } func (t *testingContext) Request() interface{} { return t.req } -func ContextForTesting(req *http.Request) netcontext.Context { - return withContext(netcontext.Background(), &testingContext{req: req}) +func ContextForTesting(req *http.Request) context.Context { + return withContext(context.Background(), &testingContext{req: req}) } -func Call(ctx netcontext.Context, service, method string, in, out proto.Message) error { +func Call(ctx context.Context, service, method string, in, out proto.Message) error { if ns := NamespaceFromContext(ctx); ns != "" { if fn, ok := NamespaceMods[service]; ok { fn(in, ns) @@ -144,8 +145,8 @@ func Call(ctx netcontext.Context, service, method string, in, out proto.Message) return err } -func handleHTTP(w http.ResponseWriter, r *http.Request) { - panic("handleHTTP called; this should be impossible") +func Middleware(next http.Handler) http.Handler { + panic("Middleware called; this should be impossible") } func logf(c appengine.Context, level int64, format string, args ...interface{}) { diff --git a/vendor/google.golang.org/appengine/internal/api_common.go b/vendor/google.golang.org/appengine/internal/api_common.go index e0c0b214b724..5b95c13d9266 100644 --- a/vendor/google.golang.org/appengine/internal/api_common.go +++ b/vendor/google.golang.org/appengine/internal/api_common.go @@ -5,20 +5,26 @@ package internal import ( + "context" "errors" "os" "github.com/golang/protobuf/proto" - netcontext "golang.org/x/net/context" ) +type ctxKey string + +func (c ctxKey) String() string { + return "appengine context key: " + string(c) +} + var errNotAppEngineContext = errors.New("not an App Engine context") -type CallOverrideFunc func(ctx netcontext.Context, service, method string, in, out proto.Message) error +type CallOverrideFunc func(ctx context.Context, service, method string, in, out proto.Message) error var callOverrideKey = "holds []CallOverrideFunc" -func WithCallOverride(ctx netcontext.Context, f CallOverrideFunc) netcontext.Context { +func WithCallOverride(ctx context.Context, f CallOverrideFunc) context.Context { // We avoid appending to any existing call override // so we don't risk overwriting a popped stack below. var cofs []CallOverrideFunc @@ -26,10 +32,10 @@ func WithCallOverride(ctx netcontext.Context, f CallOverrideFunc) netcontext.Con cofs = append(cofs, uf...) } cofs = append(cofs, f) - return netcontext.WithValue(ctx, &callOverrideKey, cofs) + return context.WithValue(ctx, &callOverrideKey, cofs) } -func callOverrideFromContext(ctx netcontext.Context) (CallOverrideFunc, netcontext.Context, bool) { +func callOverrideFromContext(ctx context.Context) (CallOverrideFunc, context.Context, bool) { cofs, _ := ctx.Value(&callOverrideKey).([]CallOverrideFunc) if len(cofs) == 0 { return nil, nil, false @@ -37,7 +43,7 @@ func callOverrideFromContext(ctx netcontext.Context) (CallOverrideFunc, netconte // We found a list of overrides; grab the last, and reconstitute a // context that will hide it. f := cofs[len(cofs)-1] - ctx = netcontext.WithValue(ctx, &callOverrideKey, cofs[:len(cofs)-1]) + ctx = context.WithValue(ctx, &callOverrideKey, cofs[:len(cofs)-1]) return f, ctx, true } @@ -45,23 +51,35 @@ type logOverrideFunc func(level int64, format string, args ...interface{}) var logOverrideKey = "holds a logOverrideFunc" -func WithLogOverride(ctx netcontext.Context, f logOverrideFunc) netcontext.Context { - return netcontext.WithValue(ctx, &logOverrideKey, f) +func WithLogOverride(ctx context.Context, f logOverrideFunc) context.Context { + return context.WithValue(ctx, &logOverrideKey, f) } var appIDOverrideKey = "holds a string, being the full app ID" -func WithAppIDOverride(ctx netcontext.Context, appID string) netcontext.Context { - return netcontext.WithValue(ctx, &appIDOverrideKey, appID) +func WithAppIDOverride(ctx context.Context, appID string) context.Context { + return context.WithValue(ctx, &appIDOverrideKey, appID) +} + +var apiHostOverrideKey = ctxKey("holds a string, being the alternate API_HOST") + +func withAPIHostOverride(ctx context.Context, apiHost string) context.Context { + return context.WithValue(ctx, apiHostOverrideKey, apiHost) +} + +var apiPortOverrideKey = ctxKey("holds a string, being the alternate API_PORT") + +func withAPIPortOverride(ctx context.Context, apiPort string) context.Context { + return context.WithValue(ctx, apiPortOverrideKey, apiPort) } var namespaceKey = "holds the namespace string" -func withNamespace(ctx netcontext.Context, ns string) netcontext.Context { - return netcontext.WithValue(ctx, &namespaceKey, ns) +func withNamespace(ctx context.Context, ns string) context.Context { + return context.WithValue(ctx, &namespaceKey, ns) } -func NamespaceFromContext(ctx netcontext.Context) string { +func NamespaceFromContext(ctx context.Context) string { // If there's no namespace, return the empty string. ns, _ := ctx.Value(&namespaceKey).(string) return ns @@ -70,14 +88,14 @@ func NamespaceFromContext(ctx netcontext.Context) string { // FullyQualifiedAppID returns the fully-qualified application ID. // This may contain a partition prefix (e.g. "s~" for High Replication apps), // or a domain prefix (e.g. "example.com:"). -func FullyQualifiedAppID(ctx netcontext.Context) string { +func FullyQualifiedAppID(ctx context.Context) string { if id, ok := ctx.Value(&appIDOverrideKey).(string); ok { return id } return fullyQualifiedAppID(ctx) } -func Logf(ctx netcontext.Context, level int64, format string, args ...interface{}) { +func Logf(ctx context.Context, level int64, format string, args ...interface{}) { if f, ok := ctx.Value(&logOverrideKey).(logOverrideFunc); ok { f(level, format, args...) return @@ -90,7 +108,7 @@ func Logf(ctx netcontext.Context, level int64, format string, args ...interface{ } // NamespacedContext wraps a Context to support namespaces. -func NamespacedContext(ctx netcontext.Context, namespace string) netcontext.Context { +func NamespacedContext(ctx context.Context, namespace string) context.Context { return withNamespace(ctx, namespace) } diff --git a/vendor/google.golang.org/appengine/internal/identity.go b/vendor/google.golang.org/appengine/internal/identity.go index 9b4134e42573..0f95aa91d5bc 100644 --- a/vendor/google.golang.org/appengine/internal/identity.go +++ b/vendor/google.golang.org/appengine/internal/identity.go @@ -5,9 +5,8 @@ package internal import ( + "context" "os" - - netcontext "golang.org/x/net/context" ) var ( @@ -23,7 +22,7 @@ var ( // AppID is the implementation of the wrapper function of the same name in // ../identity.go. See that file for commentary. -func AppID(c netcontext.Context) string { +func AppID(c context.Context) string { return appID(FullyQualifiedAppID(c)) } @@ -35,7 +34,7 @@ func IsStandard() bool { return appengineStandard || IsSecondGen() } -// IsStandard is the implementation of the wrapper function of the same name in +// IsSecondGen is the implementation of the wrapper function of the same name in // ../appengine.go. See that file for commentary. func IsSecondGen() bool { // Second-gen runtimes set $GAE_ENV so we use that to check if we're on a second-gen runtime. diff --git a/vendor/google.golang.org/appengine/internal/identity_classic.go b/vendor/google.golang.org/appengine/internal/identity_classic.go index 4e979f45e34d..5ad3548bf741 100644 --- a/vendor/google.golang.org/appengine/internal/identity_classic.go +++ b/vendor/google.golang.org/appengine/internal/identity_classic.go @@ -2,21 +2,22 @@ // Use of this source code is governed by the Apache 2.0 // license that can be found in the LICENSE file. +//go:build appengine // +build appengine package internal import ( - "appengine" + "context" - netcontext "golang.org/x/net/context" + "appengine" ) func init() { appengineStandard = true } -func DefaultVersionHostname(ctx netcontext.Context) string { +func DefaultVersionHostname(ctx context.Context) string { c := fromContext(ctx) if c == nil { panic(errNotAppEngineContext) @@ -24,12 +25,12 @@ func DefaultVersionHostname(ctx netcontext.Context) string { return appengine.DefaultVersionHostname(c) } -func Datacenter(_ netcontext.Context) string { return appengine.Datacenter() } -func ServerSoftware() string { return appengine.ServerSoftware() } -func InstanceID() string { return appengine.InstanceID() } -func IsDevAppServer() bool { return appengine.IsDevAppServer() } +func Datacenter(_ context.Context) string { return appengine.Datacenter() } +func ServerSoftware() string { return appengine.ServerSoftware() } +func InstanceID() string { return appengine.InstanceID() } +func IsDevAppServer() bool { return appengine.IsDevAppServer() } -func RequestID(ctx netcontext.Context) string { +func RequestID(ctx context.Context) string { c := fromContext(ctx) if c == nil { panic(errNotAppEngineContext) @@ -37,14 +38,14 @@ func RequestID(ctx netcontext.Context) string { return appengine.RequestID(c) } -func ModuleName(ctx netcontext.Context) string { +func ModuleName(ctx context.Context) string { c := fromContext(ctx) if c == nil { panic(errNotAppEngineContext) } return appengine.ModuleName(c) } -func VersionID(ctx netcontext.Context) string { +func VersionID(ctx context.Context) string { c := fromContext(ctx) if c == nil { panic(errNotAppEngineContext) @@ -52,7 +53,7 @@ func VersionID(ctx netcontext.Context) string { return appengine.VersionID(c) } -func fullyQualifiedAppID(ctx netcontext.Context) string { +func fullyQualifiedAppID(ctx context.Context) string { c := fromContext(ctx) if c == nil { panic(errNotAppEngineContext) diff --git a/vendor/google.golang.org/appengine/internal/identity_flex.go b/vendor/google.golang.org/appengine/internal/identity_flex.go index d5e2e7b5e3f8..4201b6b585a6 100644 --- a/vendor/google.golang.org/appengine/internal/identity_flex.go +++ b/vendor/google.golang.org/appengine/internal/identity_flex.go @@ -2,6 +2,7 @@ // Use of this source code is governed by the Apache 2.0 // license that can be found in the LICENSE file. +//go:build appenginevm // +build appenginevm package internal diff --git a/vendor/google.golang.org/appengine/internal/identity_vm.go b/vendor/google.golang.org/appengine/internal/identity_vm.go index 5d8067263556..18ddda3a4235 100644 --- a/vendor/google.golang.org/appengine/internal/identity_vm.go +++ b/vendor/google.golang.org/appengine/internal/identity_vm.go @@ -2,17 +2,17 @@ // Use of this source code is governed by the Apache 2.0 // license that can be found in the LICENSE file. +//go:build !appengine // +build !appengine package internal import ( + "context" "log" "net/http" "os" "strings" - - netcontext "golang.org/x/net/context" ) // These functions are implementations of the wrapper functions @@ -24,7 +24,7 @@ const ( hDatacenter = "X-AppEngine-Datacenter" ) -func ctxHeaders(ctx netcontext.Context) http.Header { +func ctxHeaders(ctx context.Context) http.Header { c := fromContext(ctx) if c == nil { return nil @@ -32,15 +32,15 @@ func ctxHeaders(ctx netcontext.Context) http.Header { return c.Request().Header } -func DefaultVersionHostname(ctx netcontext.Context) string { +func DefaultVersionHostname(ctx context.Context) string { return ctxHeaders(ctx).Get(hDefaultVersionHostname) } -func RequestID(ctx netcontext.Context) string { +func RequestID(ctx context.Context) string { return ctxHeaders(ctx).Get(hRequestLogId) } -func Datacenter(ctx netcontext.Context) string { +func Datacenter(ctx context.Context) string { if dc := ctxHeaders(ctx).Get(hDatacenter); dc != "" { return dc } @@ -71,7 +71,7 @@ func ServerSoftware() string { // TODO(dsymonds): Remove the metadata fetches. -func ModuleName(_ netcontext.Context) string { +func ModuleName(_ context.Context) string { if s := os.Getenv("GAE_MODULE_NAME"); s != "" { return s } @@ -81,7 +81,7 @@ func ModuleName(_ netcontext.Context) string { return string(mustGetMetadata("instance/attributes/gae_backend_name")) } -func VersionID(_ netcontext.Context) string { +func VersionID(_ context.Context) string { if s1, s2 := os.Getenv("GAE_MODULE_VERSION"), os.Getenv("GAE_MINOR_VERSION"); s1 != "" && s2 != "" { return s1 + "." + s2 } @@ -112,7 +112,7 @@ func partitionlessAppID() string { return string(mustGetMetadata("instance/attributes/gae_project")) } -func fullyQualifiedAppID(_ netcontext.Context) string { +func fullyQualifiedAppID(_ context.Context) string { if s := os.Getenv("GAE_APPLICATION"); s != "" { return s } @@ -130,5 +130,5 @@ func fullyQualifiedAppID(_ netcontext.Context) string { } func IsDevAppServer() bool { - return os.Getenv("RUN_WITH_DEVAPPSERVER") != "" + return os.Getenv("RUN_WITH_DEVAPPSERVER") != "" || os.Getenv("GAE_ENV") == "localdev" } diff --git a/vendor/google.golang.org/appengine/internal/main.go b/vendor/google.golang.org/appengine/internal/main.go index 1e765312fd18..afd0ae84fdfb 100644 --- a/vendor/google.golang.org/appengine/internal/main.go +++ b/vendor/google.golang.org/appengine/internal/main.go @@ -2,6 +2,7 @@ // Use of this source code is governed by the Apache 2.0 // license that can be found in the LICENSE file. +//go:build appengine // +build appengine package internal diff --git a/vendor/google.golang.org/appengine/internal/main_vm.go b/vendor/google.golang.org/appengine/internal/main_vm.go index ddb79a333879..86a8caf06f31 100644 --- a/vendor/google.golang.org/appengine/internal/main_vm.go +++ b/vendor/google.golang.org/appengine/internal/main_vm.go @@ -2,6 +2,7 @@ // Use of this source code is governed by the Apache 2.0 // license that can be found in the LICENSE file. +//go:build !appengine // +build !appengine package internal @@ -29,7 +30,7 @@ func Main() { if IsDevAppServer() { host = "127.0.0.1" } - if err := http.ListenAndServe(host+":"+port, http.HandlerFunc(handleHTTP)); err != nil { + if err := http.ListenAndServe(host+":"+port, Middleware(http.DefaultServeMux)); err != nil { log.Fatalf("http.ListenAndServe: %v", err) } } diff --git a/vendor/google.golang.org/appengine/internal/transaction.go b/vendor/google.golang.org/appengine/internal/transaction.go index 9006ae65380a..2ae8ab9fa421 100644 --- a/vendor/google.golang.org/appengine/internal/transaction.go +++ b/vendor/google.golang.org/appengine/internal/transaction.go @@ -7,11 +7,11 @@ package internal // This file implements hooks for applying datastore transactions. import ( + "context" "errors" "reflect" "github.com/golang/protobuf/proto" - netcontext "golang.org/x/net/context" basepb "google.golang.org/appengine/internal/base" pb "google.golang.org/appengine/internal/datastore" @@ -38,13 +38,13 @@ func applyTransaction(pb proto.Message, t *pb.Transaction) { var transactionKey = "used for *Transaction" -func transactionFromContext(ctx netcontext.Context) *transaction { +func transactionFromContext(ctx context.Context) *transaction { t, _ := ctx.Value(&transactionKey).(*transaction) return t } -func withTransaction(ctx netcontext.Context, t *transaction) netcontext.Context { - return netcontext.WithValue(ctx, &transactionKey, t) +func withTransaction(ctx context.Context, t *transaction) context.Context { + return context.WithValue(ctx, &transactionKey, t) } type transaction struct { @@ -54,7 +54,7 @@ type transaction struct { var ErrConcurrentTransaction = errors.New("internal: concurrent transaction") -func RunTransactionOnce(c netcontext.Context, f func(netcontext.Context) error, xg bool, readOnly bool, previousTransaction *pb.Transaction) (*pb.Transaction, error) { +func RunTransactionOnce(c context.Context, f func(context.Context) error, xg bool, readOnly bool, previousTransaction *pb.Transaction) (*pb.Transaction, error) { if transactionFromContext(c) != nil { return nil, errors.New("nested transactions are not supported") } diff --git a/vendor/google.golang.org/appengine/namespace.go b/vendor/google.golang.org/appengine/namespace.go index 21860ca08227..6f169be487d6 100644 --- a/vendor/google.golang.org/appengine/namespace.go +++ b/vendor/google.golang.org/appengine/namespace.go @@ -5,11 +5,10 @@ package appengine import ( + "context" "fmt" "regexp" - "golang.org/x/net/context" - "google.golang.org/appengine/internal" ) diff --git a/vendor/google.golang.org/appengine/timeout.go b/vendor/google.golang.org/appengine/timeout.go index 05642a992a39..fcf3ad0a58f1 100644 --- a/vendor/google.golang.org/appengine/timeout.go +++ b/vendor/google.golang.org/appengine/timeout.go @@ -4,7 +4,7 @@ package appengine -import "golang.org/x/net/context" +import "context" // IsTimeoutError reports whether err is a timeout error. func IsTimeoutError(err error) bool { diff --git a/vendor/google.golang.org/appengine/travis_install.sh b/vendor/google.golang.org/appengine/travis_install.sh deleted file mode 100644 index 785b62f46e8e..000000000000 --- a/vendor/google.golang.org/appengine/travis_install.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -set -e - -if [[ $GO111MODULE == "on" ]]; then - go get . -else - go get -u -v $(go list -f '{{join .Imports "\n"}}{{"\n"}}{{join .TestImports "\n"}}' ./... | sort | uniq | grep -v appengine) -fi - -if [[ $GOAPP == "true" ]]; then - mkdir /tmp/sdk - curl -o /tmp/sdk.zip "https://storage.googleapis.com/appengine-sdks/featured/go_appengine_sdk_linux_amd64-1.9.68.zip" - unzip -q /tmp/sdk.zip -d /tmp/sdk - # NOTE: Set the following env vars in the test script: - # export PATH="$PATH:/tmp/sdk/go_appengine" - # export APPENGINE_DEV_APPSERVER=/tmp/sdk/go_appengine/dev_appserver.py -fi - diff --git a/vendor/google.golang.org/appengine/travis_test.sh b/vendor/google.golang.org/appengine/travis_test.sh deleted file mode 100644 index d4390f045b6a..000000000000 --- a/vendor/google.golang.org/appengine/travis_test.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -set -e - -go version -go test -v google.golang.org/appengine/... -go test -v -race google.golang.org/appengine/... -if [[ $GOAPP == "true" ]]; then - export PATH="$PATH:/tmp/sdk/go_appengine" - export APPENGINE_DEV_APPSERVER=/tmp/sdk/go_appengine/dev_appserver.py - goapp version - goapp test -v google.golang.org/appengine/... -fi diff --git a/vendor/google.golang.org/appengine/urlfetch/urlfetch.go b/vendor/google.golang.org/appengine/urlfetch/urlfetch.go index 6ffe1e6d901a..6c0d72418d89 100644 --- a/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +++ b/vendor/google.golang.org/appengine/urlfetch/urlfetch.go @@ -7,6 +7,7 @@ package urlfetch // import "google.golang.org/appengine/urlfetch" import ( + "context" "errors" "fmt" "io" @@ -18,7 +19,6 @@ import ( "time" "github.com/golang/protobuf/proto" - "golang.org/x/net/context" "google.golang.org/appengine/internal" pb "google.golang.org/appengine/internal/urlfetch" @@ -44,11 +44,10 @@ type Transport struct { var _ http.RoundTripper = (*Transport)(nil) // Client returns an *http.Client using a default urlfetch Transport. This -// client will have the default deadline of 5 seconds, and will check the -// validity of SSL certificates. +// client will check the validity of SSL certificates. // -// Any deadline of the provided context will be used for requests through this client; -// if the client does not have a deadline then a 5 second default is used. +// Any deadline of the provided context will be used for requests through this client. +// If the client does not have a deadline, then an App Engine default of 60 second is used. func Client(ctx context.Context) *http.Client { return &http.Client{ Transport: &Transport{ diff --git a/vendor/google.golang.org/genproto/LICENSE b/vendor/google.golang.org/genproto/googleapis/rpc/LICENSE similarity index 100% rename from vendor/google.golang.org/genproto/LICENSE rename to vendor/google.golang.org/genproto/googleapis/rpc/LICENSE diff --git a/vendor/google.golang.org/grpc/CONTRIBUTING.md b/vendor/google.golang.org/grpc/CONTRIBUTING.md index 52338d004ce3..608aa6e1ac5e 100644 --- a/vendor/google.golang.org/grpc/CONTRIBUTING.md +++ b/vendor/google.golang.org/grpc/CONTRIBUTING.md @@ -20,6 +20,15 @@ How to get your contributions merged smoothly and quickly. both author's & review's time is wasted. Create more PRs to address different concerns and everyone will be happy. +- If you are searching for features to work on, issues labeled [Status: Help + Wanted](https://github.com/grpc/grpc-go/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22Status%3A+Help+Wanted%22) + is a great place to start. These issues are well-documented and usually can be + resolved with a single pull request. + +- If you are adding a new file, make sure it has the copyright message template + at the top as a comment. You can copy over the message from an existing file + and update the year. + - The grpc package should only depend on standard Go packages and a small number of exceptions. If your contribution introduces new dependencies which are NOT in the [list](https://godoc.org/google.golang.org/grpc?imports), you need a @@ -32,14 +41,18 @@ How to get your contributions merged smoothly and quickly. - Provide a good **PR description** as a record of **what** change is being made and **why** it was made. Link to a github issue if it exists. -- Don't fix code style and formatting unless you are already changing that line - to address an issue. PRs with irrelevant changes won't be merged. If you do - want to fix formatting or style, do that in a separate PR. +- If you want to fix formatting or style, consider whether your changes are an + obvious improvement or might be considered a personal preference. If a style + change is based on preference, it likely will not be accepted. If it corrects + widely agreed-upon anti-patterns, then please do create a PR and explain the + benefits of the change. - Unless your PR is trivial, you should expect there will be reviewer comments - that you'll need to address before merging. We expect you to be reasonably - responsive to those comments, otherwise the PR will be closed after 2-3 weeks - of inactivity. + that you'll need to address before merging. We'll mark it as `Status: Requires + Reporter Clarification` if we expect you to respond to these comments in a + timely manner. If the PR remains inactive for 6 days, it will be marked as + `stale` and automatically close 7 days after that if we don't hear back from + you. - Maintain **clean commit history** and use **meaningful commit messages**. PRs with messy commit history are difficult to review and won't be merged. Use diff --git a/vendor/google.golang.org/grpc/README.md b/vendor/google.golang.org/grpc/README.md index 0e6ae69a5846..1bc92248cb47 100644 --- a/vendor/google.golang.org/grpc/README.md +++ b/vendor/google.golang.org/grpc/README.md @@ -14,21 +14,14 @@ RPC framework that puts mobile and HTTP/2 first. For more information see the ## Installation -With [Go module][] support (Go 1.11+), simply add the following import +Simply add the following import to your code, and then `go [build|run|test]` +will automatically fetch the necessary dependencies: + ```go import "google.golang.org/grpc" ``` -to your code, and then `go [build|run|test]` will automatically fetch the -necessary dependencies. - -Otherwise, to install the `grpc-go` package, run the following command: - -```console -$ go get -u google.golang.org/grpc -``` - > **Note:** If you are trying to access `grpc-go` from **China**, see the > [FAQ](#FAQ) below. @@ -56,15 +49,6 @@ To build Go code, there are several options: - Set up a VPN and access google.golang.org through that. -- Without Go module support: `git clone` the repo manually: - - ```sh - git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc - ``` - - You will need to do the same for all of grpc's dependencies in `golang.org`, - e.g. `golang.org/x/net`. - - With Go module support: it is possible to use the `replace` feature of `go mod` to create aliases for golang.org packages. In your project's directory: @@ -76,33 +60,13 @@ To build Go code, there are several options: ``` Again, this will need to be done for all transitive dependencies hosted on - golang.org as well. For details, refer to [golang/go issue #28652](https://github.com/golang/go/issues/28652). + golang.org as well. For details, refer to [golang/go issue + #28652](https://github.com/golang/go/issues/28652). ### Compiling error, undefined: grpc.SupportPackageIsVersion -#### If you are using Go modules: - -Ensure your gRPC-Go version is `require`d at the appropriate version in -the same module containing the generated `.pb.go` files. For example, -`SupportPackageIsVersion6` needs `v1.27.0`, so in your `go.mod` file: - -```go -module - -require ( - google.golang.org/grpc v1.27.0 -) -``` - -#### If you are *not* using Go modules: - -Update the `proto` package, gRPC package, and rebuild the `.proto` files: - -```sh -go get -u github.com/golang/protobuf/{proto,protoc-gen-go} -go get -u google.golang.org/grpc -protoc --go_out=plugins=grpc:. *.proto -``` +Please update to the latest version of gRPC-Go using +`go get google.golang.org/grpc`. ### How to turn on logging @@ -121,9 +85,11 @@ possible reasons, including: 1. mis-configured transport credentials, connection failed on handshaking 1. bytes disrupted, possibly by a proxy in between 1. server shutdown - 1. Keepalive parameters caused connection shutdown, for example if you have configured - your server to terminate connections regularly to [trigger DNS lookups](https://github.com/grpc/grpc-go/issues/3170#issuecomment-552517779). - If this is the case, you may want to increase your [MaxConnectionAgeGrace](https://pkg.go.dev/google.golang.org/grpc/keepalive?tab=doc#ServerParameters), + 1. Keepalive parameters caused connection shutdown, for example if you have + configured your server to terminate connections regularly to [trigger DNS + lookups](https://github.com/grpc/grpc-go/issues/3170#issuecomment-552517779). + If this is the case, you may want to increase your + [MaxConnectionAgeGrace](https://pkg.go.dev/google.golang.org/grpc/keepalive?tab=doc#ServerParameters), to allow longer RPC calls to finish. It can be tricky to debug this because the error happens on the client side but diff --git a/vendor/google.golang.org/grpc/attributes/attributes.go b/vendor/google.golang.org/grpc/attributes/attributes.go index 02f5dc531891..712fef4d0fb9 100644 --- a/vendor/google.golang.org/grpc/attributes/attributes.go +++ b/vendor/google.golang.org/grpc/attributes/attributes.go @@ -25,30 +25,35 @@ // later release. package attributes +import ( + "fmt" + "strings" +) + // Attributes is an immutable struct for storing and retrieving generic // key/value pairs. Keys must be hashable, and users should define their own // types for keys. Values should not be modified after they are added to an // Attributes or if they were received from one. If values implement 'Equal(o -// interface{}) bool', it will be called by (*Attributes).Equal to determine -// whether two values with the same key should be considered equal. +// any) bool', it will be called by (*Attributes).Equal to determine whether +// two values with the same key should be considered equal. type Attributes struct { - m map[interface{}]interface{} + m map[any]any } // New returns a new Attributes containing the key/value pair. -func New(key, value interface{}) *Attributes { - return &Attributes{m: map[interface{}]interface{}{key: value}} +func New(key, value any) *Attributes { + return &Attributes{m: map[any]any{key: value}} } // WithValue returns a new Attributes containing the previous keys and values // and the new key/value pair. If the same key appears multiple times, the // last value overwrites all previous values for that key. To remove an // existing key, use a nil value. value should not be modified later. -func (a *Attributes) WithValue(key, value interface{}) *Attributes { +func (a *Attributes) WithValue(key, value any) *Attributes { if a == nil { return New(key, value) } - n := &Attributes{m: make(map[interface{}]interface{}, len(a.m)+1)} + n := &Attributes{m: make(map[any]any, len(a.m)+1)} for k, v := range a.m { n.m[k] = v } @@ -58,20 +63,19 @@ func (a *Attributes) WithValue(key, value interface{}) *Attributes { // Value returns the value associated with these attributes for key, or nil if // no value is associated with key. The returned value should not be modified. -func (a *Attributes) Value(key interface{}) interface{} { +func (a *Attributes) Value(key any) any { if a == nil { return nil } return a.m[key] } -// Equal returns whether a and o are equivalent. If 'Equal(o interface{}) -// bool' is implemented for a value in the attributes, it is called to -// determine if the value matches the one stored in the other attributes. If -// Equal is not implemented, standard equality is used to determine if the two -// values are equal. Note that some types (e.g. maps) aren't comparable by -// default, so they must be wrapped in a struct, or in an alias type, with Equal -// defined. +// Equal returns whether a and o are equivalent. If 'Equal(o any) bool' is +// implemented for a value in the attributes, it is called to determine if the +// value matches the one stored in the other attributes. If Equal is not +// implemented, standard equality is used to determine if the two values are +// equal. Note that some types (e.g. maps) aren't comparable by default, so +// they must be wrapped in a struct, or in an alias type, with Equal defined. func (a *Attributes) Equal(o *Attributes) bool { if a == nil && o == nil { return true @@ -88,7 +92,7 @@ func (a *Attributes) Equal(o *Attributes) bool { // o missing element of a return false } - if eq, ok := v.(interface{ Equal(o interface{}) bool }); ok { + if eq, ok := v.(interface{ Equal(o any) bool }); ok { if !eq.Equal(ov) { return false } @@ -99,3 +103,39 @@ func (a *Attributes) Equal(o *Attributes) bool { } return true } + +// String prints the attribute map. If any key or values throughout the map +// implement fmt.Stringer, it calls that method and appends. +func (a *Attributes) String() string { + var sb strings.Builder + sb.WriteString("{") + first := true + for k, v := range a.m { + if !first { + sb.WriteString(", ") + } + sb.WriteString(fmt.Sprintf("%q: %q ", str(k), str(v))) + first = false + } + sb.WriteString("}") + return sb.String() +} + +func str(x any) string { + if v, ok := x.(fmt.Stringer); ok { + return v.String() + } else if v, ok := x.(string); ok { + return v + } + return fmt.Sprintf("<%p>", x) +} + +// MarshalJSON helps implement the json.Marshaler interface, thereby rendering +// the Attributes correctly when printing (via pretty.JSON) structs containing +// Attributes as fields. +// +// Is it impossible to unmarshal attributes from a JSON representation and this +// method is meant only for debugging purposes. +func (a *Attributes) MarshalJSON() ([]byte, error) { + return []byte(a.String()), nil +} diff --git a/vendor/google.golang.org/grpc/balancer/balancer.go b/vendor/google.golang.org/grpc/balancer/balancer.go index 09d61dd1b55b..b6377f445ad2 100644 --- a/vendor/google.golang.org/grpc/balancer/balancer.go +++ b/vendor/google.golang.org/grpc/balancer/balancer.go @@ -105,8 +105,8 @@ type SubConn interface { // // This will trigger a state transition for the SubConn. // - // Deprecated: This method is now part of the ClientConn interface and will - // eventually be removed from here. + // Deprecated: this method will be removed. Create new SubConns for new + // addresses instead. UpdateAddresses([]resolver.Address) // Connect starts the connecting for this SubConn. Connect() @@ -115,6 +115,13 @@ type SubConn interface { // creates a new one and returns it. Returns a close function which must // be called when the Producer is no longer needed. GetOrBuildProducer(ProducerBuilder) (p Producer, close func()) + // Shutdown shuts down the SubConn gracefully. Any started RPCs will be + // allowed to complete. No future calls should be made on the SubConn. + // One final state update will be delivered to the StateListener (or + // UpdateSubConnState; deprecated) with ConnectivityState of Shutdown to + // indicate the shutdown operation. This may be delivered before + // in-progress RPCs are complete and the actual connection is closed. + Shutdown() } // NewSubConnOptions contains options to create new SubConn. @@ -129,6 +136,11 @@ type NewSubConnOptions struct { // HealthCheckEnabled indicates whether health check service should be // enabled on this SubConn HealthCheckEnabled bool + // StateListener is called when the state of the subconn changes. If nil, + // Balancer.UpdateSubConnState will be called instead. Will never be + // invoked until after Connect() is called on the SubConn created with + // these options. + StateListener func(SubConnState) } // State contains the balancer's state relevant to the gRPC ClientConn. @@ -150,16 +162,24 @@ type ClientConn interface { // NewSubConn is called by balancer to create a new SubConn. // It doesn't block and wait for the connections to be established. // Behaviors of the SubConn can be controlled by options. + // + // Deprecated: please be aware that in a future version, SubConns will only + // support one address per SubConn. NewSubConn([]resolver.Address, NewSubConnOptions) (SubConn, error) // RemoveSubConn removes the SubConn from ClientConn. // The SubConn will be shutdown. + // + // Deprecated: use SubConn.Shutdown instead. RemoveSubConn(SubConn) // UpdateAddresses updates the addresses used in the passed in SubConn. // gRPC checks if the currently connected address is still in the new list. // If so, the connection will be kept. Else, the connection will be // gracefully closed, and a new connection will be created. // - // This will trigger a state transition for the SubConn. + // This may trigger a state transition for the SubConn. + // + // Deprecated: this method will be removed. Create new SubConns for new + // addresses instead. UpdateAddresses(SubConn, []resolver.Address) // UpdateState notifies gRPC that the balancer's internal state has @@ -250,7 +270,7 @@ type DoneInfo struct { // trailing metadata. // // The only supported type now is *orca_v3.LoadReport. - ServerLoad interface{} + ServerLoad any } var ( @@ -286,7 +306,7 @@ type PickResult struct { // // LB policies with child policies are responsible for propagating metadata // injected by their children to the ClientConn, as part of Pick(). - Metatada metadata.MD + Metadata metadata.MD } // TransientFailureError returns e. It exists for backward compatibility and @@ -343,9 +363,13 @@ type Balancer interface { ResolverError(error) // UpdateSubConnState is called by gRPC when the state of a SubConn // changes. + // + // Deprecated: Use NewSubConnOptions.StateListener when creating the + // SubConn instead. UpdateSubConnState(SubConn, SubConnState) - // Close closes the balancer. The balancer is not required to call - // ClientConn.RemoveSubConn for its existing SubConns. + // Close closes the balancer. The balancer is not currently required to + // call SubConn.Shutdown for its existing SubConns; however, this will be + // required in a future release, so it is recommended. Close() } @@ -390,15 +414,14 @@ var ErrBadResolverState = errors.New("bad resolver state") type ProducerBuilder interface { // Build creates a Producer. The first parameter is always a // grpc.ClientConnInterface (a type to allow creating RPCs/streams on the - // associated SubConn), but is declared as interface{} to avoid a - // dependency cycle. Should also return a close function that will be - // called when all references to the Producer have been given up. - Build(grpcClientConnInterface interface{}) (p Producer, close func()) + // associated SubConn), but is declared as `any` to avoid a dependency + // cycle. Should also return a close function that will be called when all + // references to the Producer have been given up. + Build(grpcClientConnInterface any) (p Producer, close func()) } // A Producer is a type shared among potentially many consumers. It is // associated with a SubConn, and an implementation will typically contain // other methods to provide additional functionality, e.g. configuration or // subscription registration. -type Producer interface { -} +type Producer any diff --git a/vendor/google.golang.org/grpc/balancer/base/balancer.go b/vendor/google.golang.org/grpc/balancer/base/balancer.go index 3929c26d31e1..a7f1eeec8e6a 100644 --- a/vendor/google.golang.org/grpc/balancer/base/balancer.go +++ b/vendor/google.golang.org/grpc/balancer/base/balancer.go @@ -105,7 +105,12 @@ func (b *baseBalancer) UpdateClientConnState(s balancer.ClientConnState) error { addrsSet.Set(a, nil) if _, ok := b.subConns.Get(a); !ok { // a is a new address (not existing in b.subConns). - sc, err := b.cc.NewSubConn([]resolver.Address{a}, balancer.NewSubConnOptions{HealthCheckEnabled: b.config.HealthCheck}) + var sc balancer.SubConn + opts := balancer.NewSubConnOptions{ + HealthCheckEnabled: b.config.HealthCheck, + StateListener: func(scs balancer.SubConnState) { b.updateSubConnState(sc, scs) }, + } + sc, err := b.cc.NewSubConn([]resolver.Address{a}, opts) if err != nil { logger.Warningf("base.baseBalancer: failed to create new SubConn: %v", err) continue @@ -121,10 +126,10 @@ func (b *baseBalancer) UpdateClientConnState(s balancer.ClientConnState) error { sc := sci.(balancer.SubConn) // a was removed by resolver. if _, ok := addrsSet.Get(a); !ok { - b.cc.RemoveSubConn(sc) + sc.Shutdown() b.subConns.Delete(a) // Keep the state of this sc in b.scStates until sc's state becomes Shutdown. - // The entry will be deleted in UpdateSubConnState. + // The entry will be deleted in updateSubConnState. } } // If resolver state contains no addresses, return an error so ClientConn @@ -177,7 +182,12 @@ func (b *baseBalancer) regeneratePicker() { b.picker = b.pickerBuilder.Build(PickerBuildInfo{ReadySCs: readySCs}) } +// UpdateSubConnState is a nop because a StateListener is always set in NewSubConn. func (b *baseBalancer) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) { + logger.Errorf("base.baseBalancer: UpdateSubConnState(%v, %+v) called unexpectedly", sc, state) +} + +func (b *baseBalancer) updateSubConnState(sc balancer.SubConn, state balancer.SubConnState) { s := state.ConnectivityState if logger.V(2) { logger.Infof("base.baseBalancer: handle SubConn state change: %p, %v", sc, s) @@ -204,8 +214,8 @@ func (b *baseBalancer) UpdateSubConnState(sc balancer.SubConn, state balancer.Su case connectivity.Idle: sc.Connect() case connectivity.Shutdown: - // When an address was removed by resolver, b called RemoveSubConn but - // kept the sc's state in scStates. Remove state for this sc here. + // When an address was removed by resolver, b called Shutdown but kept + // the sc's state in scStates. Remove state for this sc here. delete(b.scStates, sc) case connectivity.TransientFailure: // Save error to be reported via picker. @@ -226,7 +236,7 @@ func (b *baseBalancer) UpdateSubConnState(sc balancer.SubConn, state balancer.Su } // Close is a nop because base balancer doesn't have internal state to clean up, -// and it doesn't need to call RemoveSubConn for the SubConns. +// and it doesn't need to call Shutdown for the SubConns. func (b *baseBalancer) Close() { } diff --git a/vendor/google.golang.org/grpc/balancer_conn_wrappers.go b/vendor/google.golang.org/grpc/balancer_conn_wrappers.go index 0359956d36fa..a4411c22bfc8 100644 --- a/vendor/google.golang.org/grpc/balancer_conn_wrappers.go +++ b/vendor/google.golang.org/grpc/balancer_conn_wrappers.go @@ -25,14 +25,20 @@ import ( "sync" "google.golang.org/grpc/balancer" - "google.golang.org/grpc/codes" "google.golang.org/grpc/connectivity" "google.golang.org/grpc/internal/balancer/gracefulswitch" - "google.golang.org/grpc/internal/buffer" "google.golang.org/grpc/internal/channelz" "google.golang.org/grpc/internal/grpcsync" "google.golang.org/grpc/resolver" - "google.golang.org/grpc/status" +) + +type ccbMode int + +const ( + ccbModeActive = iota + ccbModeIdle + ccbModeClosed + ccbModeExitingIdle ) // ccBalancerWrapper sits between the ClientConn and the Balancer. @@ -49,192 +55,89 @@ import ( // It uses the gracefulswitch.Balancer internally to ensure that balancer // switches happen in a graceful manner. type ccBalancerWrapper struct { - cc *ClientConn - - // Since these fields are accessed only from handleXxx() methods which are - // synchronized by the watcher goroutine, we do not need a mutex to protect - // these fields. + // The following fields are initialized when the wrapper is created and are + // read-only afterwards, and therefore can be accessed without a mutex. + cc *ClientConn + opts balancer.BuildOptions + + // Outgoing (gRPC --> balancer) calls are guaranteed to execute in a + // mutually exclusive manner as they are scheduled in the serializer. Fields + // accessed *only* in these serializer callbacks, can therefore be accessed + // without a mutex. balancer *gracefulswitch.Balancer curBalancerName string - updateCh *buffer.Unbounded // Updates written on this channel are processed by watcher(). - resultCh *buffer.Unbounded // Results of calls to UpdateClientConnState() are pushed here. - closed *grpcsync.Event // Indicates if close has been called. - done *grpcsync.Event // Indicates if close has completed its work. + // mu guards access to the below fields. Access to the serializer and its + // cancel function needs to be mutex protected because they are overwritten + // when the wrapper exits idle mode. + mu sync.Mutex + serializer *grpcsync.CallbackSerializer // To serialize all outoing calls. + serializerCancel context.CancelFunc // To close the seralizer at close/enterIdle time. + mode ccbMode // Tracks the current mode of the wrapper. } // newCCBalancerWrapper creates a new balancer wrapper. The underlying balancer // is not created until the switchTo() method is invoked. func newCCBalancerWrapper(cc *ClientConn, bopts balancer.BuildOptions) *ccBalancerWrapper { + ctx, cancel := context.WithCancel(context.Background()) ccb := &ccBalancerWrapper{ - cc: cc, - updateCh: buffer.NewUnbounded(), - resultCh: buffer.NewUnbounded(), - closed: grpcsync.NewEvent(), - done: grpcsync.NewEvent(), + cc: cc, + opts: bopts, + serializer: grpcsync.NewCallbackSerializer(ctx), + serializerCancel: cancel, } - go ccb.watcher() ccb.balancer = gracefulswitch.NewBalancer(ccb, bopts) return ccb } -// The following xxxUpdate structs wrap the arguments received as part of the -// corresponding update. The watcher goroutine uses the 'type' of the update to -// invoke the appropriate handler routine to handle the update. - -type ccStateUpdate struct { - ccs *balancer.ClientConnState -} - -type scStateUpdate struct { - sc balancer.SubConn - state connectivity.State - err error -} - -type exitIdleUpdate struct{} - -type resolverErrorUpdate struct { - err error -} - -type switchToUpdate struct { - name string -} - -type subConnUpdate struct { - acbw *acBalancerWrapper -} - -// watcher is a long-running goroutine which reads updates from a channel and -// invokes corresponding methods on the underlying balancer. It ensures that -// these methods are invoked in a synchronous fashion. It also ensures that -// these methods are invoked in the order in which the updates were received. -func (ccb *ccBalancerWrapper) watcher() { - for { - select { - case u := <-ccb.updateCh.Get(): - ccb.updateCh.Load() - if ccb.closed.HasFired() { - break - } - switch update := u.(type) { - case *ccStateUpdate: - ccb.handleClientConnStateChange(update.ccs) - case *scStateUpdate: - ccb.handleSubConnStateChange(update) - case *exitIdleUpdate: - ccb.handleExitIdle() - case *resolverErrorUpdate: - ccb.handleResolverError(update.err) - case *switchToUpdate: - ccb.handleSwitchTo(update.name) - case *subConnUpdate: - ccb.handleRemoveSubConn(update.acbw) - default: - logger.Errorf("ccBalancerWrapper.watcher: unknown update %+v, type %T", update, update) - } - case <-ccb.closed.Done(): - } - - if ccb.closed.HasFired() { - ccb.handleClose() - return - } - } -} - // updateClientConnState is invoked by grpc to push a ClientConnState update to // the underlying balancer. -// -// Unlike other methods invoked by grpc to push updates to the underlying -// balancer, this method cannot simply push the update onto the update channel -// and return. It needs to return the error returned by the underlying balancer -// back to grpc which propagates that to the resolver. func (ccb *ccBalancerWrapper) updateClientConnState(ccs *balancer.ClientConnState) error { - ccb.updateCh.Put(&ccStateUpdate{ccs: ccs}) - - var res interface{} - select { - case res = <-ccb.resultCh.Get(): - ccb.resultCh.Load() - case <-ccb.closed.Done(): - // Return early if the balancer wrapper is closed while we are waiting for - // the underlying balancer to process a ClientConnState update. - return nil - } - // If the returned error is nil, attempting to type assert to error leads to - // panic. So, this needs to handled separately. - if res == nil { - return nil + ccb.mu.Lock() + errCh := make(chan error, 1) + // Here and everywhere else where Schedule() is called, it is done with the + // lock held. But the lock guards only the scheduling part. The actual + // callback is called asynchronously without the lock being held. + ok := ccb.serializer.Schedule(func(_ context.Context) { + errCh <- ccb.balancer.UpdateClientConnState(*ccs) + }) + if !ok { + // If we are unable to schedule a function with the serializer, it + // indicates that it has been closed. A serializer is only closed when + // the wrapper is closed or is in idle. + ccb.mu.Unlock() + return fmt.Errorf("grpc: cannot send state update to a closed or idle balancer") } - return res.(error) -} - -// handleClientConnStateChange handles a ClientConnState update from the update -// channel and invokes the appropriate method on the underlying balancer. -// -// If the addresses specified in the update contain addresses of type "grpclb" -// and the selected LB policy is not "grpclb", these addresses will be filtered -// out and ccs will be modified with the updated address list. -func (ccb *ccBalancerWrapper) handleClientConnStateChange(ccs *balancer.ClientConnState) { - if ccb.curBalancerName != grpclbName { - // Filter any grpclb addresses since we don't have the grpclb balancer. - var addrs []resolver.Address - for _, addr := range ccs.ResolverState.Addresses { - if addr.Type == resolver.GRPCLB { - continue - } - addrs = append(addrs, addr) - } - ccs.ResolverState.Addresses = addrs + ccb.mu.Unlock() + + // We get here only if the above call to Schedule succeeds, in which case it + // is guaranteed that the scheduled function will run. Therefore it is safe + // to block on this channel. + err := <-errCh + if logger.V(2) && err != nil { + logger.Infof("error from balancer.UpdateClientConnState: %v", err) } - ccb.resultCh.Put(ccb.balancer.UpdateClientConnState(*ccs)) + return err } // updateSubConnState is invoked by grpc to push a subConn state update to the // underlying balancer. func (ccb *ccBalancerWrapper) updateSubConnState(sc balancer.SubConn, s connectivity.State, err error) { - // When updating addresses for a SubConn, if the address in use is not in - // the new addresses, the old ac will be tearDown() and a new ac will be - // created. tearDown() generates a state change with Shutdown state, we - // don't want the balancer to receive this state change. So before - // tearDown() on the old ac, ac.acbw (acWrapper) will be set to nil, and - // this function will be called with (nil, Shutdown). We don't need to call - // balancer method in this case. - if sc == nil { - return - } - ccb.updateCh.Put(&scStateUpdate{ - sc: sc, - state: s, - err: err, + ccb.mu.Lock() + ccb.serializer.Schedule(func(_ context.Context) { + // Even though it is optional for balancers, gracefulswitch ensures + // opts.StateListener is set, so this cannot ever be nil. + sc.(*acBalancerWrapper).stateListener(balancer.SubConnState{ConnectivityState: s, ConnectionError: err}) }) -} - -// handleSubConnStateChange handles a SubConnState update from the update -// channel and invokes the appropriate method on the underlying balancer. -func (ccb *ccBalancerWrapper) handleSubConnStateChange(update *scStateUpdate) { - ccb.balancer.UpdateSubConnState(update.sc, balancer.SubConnState{ConnectivityState: update.state, ConnectionError: update.err}) -} - -func (ccb *ccBalancerWrapper) exitIdle() { - ccb.updateCh.Put(&exitIdleUpdate{}) -} - -func (ccb *ccBalancerWrapper) handleExitIdle() { - if ccb.cc.GetState() != connectivity.Idle { - return - } - ccb.balancer.ExitIdle() + ccb.mu.Unlock() } func (ccb *ccBalancerWrapper) resolverError(err error) { - ccb.updateCh.Put(&resolverErrorUpdate{err: err}) -} - -func (ccb *ccBalancerWrapper) handleResolverError(err error) { - ccb.balancer.ResolverError(err) + ccb.mu.Lock() + ccb.serializer.Schedule(func(_ context.Context) { + ccb.balancer.ResolverError(err) + }) + ccb.mu.Unlock() } // switchTo is invoked by grpc to instruct the balancer wrapper to switch to the @@ -248,24 +151,27 @@ func (ccb *ccBalancerWrapper) handleResolverError(err error) { // the ccBalancerWrapper keeps track of the current LB policy name, and skips // the graceful balancer switching process if the name does not change. func (ccb *ccBalancerWrapper) switchTo(name string) { - ccb.updateCh.Put(&switchToUpdate{name: name}) + ccb.mu.Lock() + ccb.serializer.Schedule(func(_ context.Context) { + // TODO: Other languages use case-sensitive balancer registries. We should + // switch as well. See: https://github.com/grpc/grpc-go/issues/5288. + if strings.EqualFold(ccb.curBalancerName, name) { + return + } + ccb.buildLoadBalancingPolicy(name) + }) + ccb.mu.Unlock() } -// handleSwitchTo handles a balancer switch update from the update channel. It -// calls the SwitchTo() method on the gracefulswitch.Balancer with a -// balancer.Builder corresponding to name. If no balancer.Builder is registered -// for the given name, it uses the default LB policy which is "pick_first". -func (ccb *ccBalancerWrapper) handleSwitchTo(name string) { - // TODO: Other languages use case-insensitive balancer registries. We should - // switch as well. See: https://github.com/grpc/grpc-go/issues/5288. - if strings.EqualFold(ccb.curBalancerName, name) { - return - } - - // TODO: Ensure that name is a registered LB policy when we get here. - // We currently only validate the `loadBalancingConfig` field. We need to do - // the same for the `loadBalancingPolicy` field and reject the service config - // if the specified policy is not registered. +// buildLoadBalancingPolicy performs the following: +// - retrieve a balancer builder for the given name. Use the default LB +// policy, pick_first, if no LB policy with name is found in the registry. +// - instruct the gracefulswitch balancer to switch to the above builder. This +// will actually build the new balancer. +// - update the `curBalancerName` field +// +// Must be called from a serializer callback. +func (ccb *ccBalancerWrapper) buildLoadBalancingPolicy(name string) { builder := balancer.Get(name) if builder == nil { channelz.Warningf(logger, ccb.cc.channelzID, "Channel switches to new LB policy %q, since the specified LB policy %q was not registered", PickFirstBalancerName, name) @@ -281,26 +187,112 @@ func (ccb *ccBalancerWrapper) handleSwitchTo(name string) { ccb.curBalancerName = builder.Name() } -// handleRemoveSucConn handles a request from the underlying balancer to remove -// a subConn. -// -// See comments in RemoveSubConn() for more details. -func (ccb *ccBalancerWrapper) handleRemoveSubConn(acbw *acBalancerWrapper) { - ccb.cc.removeAddrConn(acbw.getAddrConn(), errConnDrain) +func (ccb *ccBalancerWrapper) close() { + channelz.Info(logger, ccb.cc.channelzID, "ccBalancerWrapper: closing") + ccb.closeBalancer(ccbModeClosed) } -func (ccb *ccBalancerWrapper) close() { - ccb.closed.Fire() - <-ccb.done.Done() +// enterIdleMode is invoked by grpc when the channel enters idle mode upon +// expiry of idle_timeout. This call blocks until the balancer is closed. +func (ccb *ccBalancerWrapper) enterIdleMode() { + channelz.Info(logger, ccb.cc.channelzID, "ccBalancerWrapper: entering idle mode") + ccb.closeBalancer(ccbModeIdle) +} + +// closeBalancer is invoked when the channel is being closed or when it enters +// idle mode upon expiry of idle_timeout. +func (ccb *ccBalancerWrapper) closeBalancer(m ccbMode) { + ccb.mu.Lock() + if ccb.mode == ccbModeClosed || ccb.mode == ccbModeIdle { + ccb.mu.Unlock() + return + } + + ccb.mode = m + done := ccb.serializer.Done() + b := ccb.balancer + ok := ccb.serializer.Schedule(func(_ context.Context) { + // Close the serializer to ensure that no more calls from gRPC are sent + // to the balancer. + ccb.serializerCancel() + // Empty the current balancer name because we don't have a balancer + // anymore and also so that we act on the next call to switchTo by + // creating a new balancer specified by the new resolver. + ccb.curBalancerName = "" + }) + if !ok { + ccb.mu.Unlock() + return + } + ccb.mu.Unlock() + + // Give enqueued callbacks a chance to finish before closing the balancer. + <-done + b.Close() } -func (ccb *ccBalancerWrapper) handleClose() { - ccb.balancer.Close() - ccb.done.Fire() +// exitIdleMode is invoked by grpc when the channel exits idle mode either +// because of an RPC or because of an invocation of the Connect() API. This +// recreates the balancer that was closed previously when entering idle mode. +// +// If the channel is not in idle mode, we know for a fact that we are here as a +// result of the user calling the Connect() method on the ClientConn. In this +// case, we can simply forward the call to the underlying balancer, instructing +// it to reconnect to the backends. +func (ccb *ccBalancerWrapper) exitIdleMode() { + ccb.mu.Lock() + if ccb.mode == ccbModeClosed { + // Request to exit idle is a no-op when wrapper is already closed. + ccb.mu.Unlock() + return + } + + if ccb.mode == ccbModeIdle { + // Recreate the serializer which was closed when we entered idle. + ctx, cancel := context.WithCancel(context.Background()) + ccb.serializer = grpcsync.NewCallbackSerializer(ctx) + ccb.serializerCancel = cancel + } + + // The ClientConn guarantees that mutual exclusion between close() and + // exitIdleMode(), and since we just created a new serializer, we can be + // sure that the below function will be scheduled. + done := make(chan struct{}) + ccb.serializer.Schedule(func(_ context.Context) { + defer close(done) + + ccb.mu.Lock() + defer ccb.mu.Unlock() + + if ccb.mode != ccbModeIdle { + ccb.balancer.ExitIdle() + return + } + + // Gracefulswitch balancer does not support a switchTo operation after + // being closed. Hence we need to create a new one here. + ccb.balancer = gracefulswitch.NewBalancer(ccb, ccb.opts) + ccb.mode = ccbModeActive + channelz.Info(logger, ccb.cc.channelzID, "ccBalancerWrapper: exiting idle mode") + + }) + ccb.mu.Unlock() + + <-done +} + +func (ccb *ccBalancerWrapper) isIdleOrClosed() bool { + ccb.mu.Lock() + defer ccb.mu.Unlock() + return ccb.mode == ccbModeIdle || ccb.mode == ccbModeClosed } func (ccb *ccBalancerWrapper) NewSubConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (balancer.SubConn, error) { - if len(addrs) <= 0 { + if ccb.isIdleOrClosed() { + return nil, fmt.Errorf("grpc: cannot create SubConn when balancer is closed or idle") + } + + if len(addrs) == 0 { return nil, fmt.Errorf("grpc: cannot create SubConn with empty address list") } ac, err := ccb.cc.newAddrConn(addrs, opts) @@ -308,32 +300,26 @@ func (ccb *ccBalancerWrapper) NewSubConn(addrs []resolver.Address, opts balancer channelz.Warningf(logger, ccb.cc.channelzID, "acBalancerWrapper: NewSubConn: failed to newAddrConn: %v", err) return nil, err } - acbw := &acBalancerWrapper{ac: ac, producers: make(map[balancer.ProducerBuilder]*refCountedProducer)} - acbw.ac.mu.Lock() + acbw := &acBalancerWrapper{ + ccb: ccb, + ac: ac, + producers: make(map[balancer.ProducerBuilder]*refCountedProducer), + stateListener: opts.StateListener, + } ac.acbw = acbw - acbw.ac.mu.Unlock() return acbw, nil } func (ccb *ccBalancerWrapper) RemoveSubConn(sc balancer.SubConn) { - // Before we switched the ccBalancerWrapper to use gracefulswitch.Balancer, it - // was required to handle the RemoveSubConn() method asynchronously by pushing - // the update onto the update channel. This was done to avoid a deadlock as - // switchBalancer() was holding cc.mu when calling Close() on the old - // balancer, which would in turn call RemoveSubConn(). - // - // With the use of gracefulswitch.Balancer in ccBalancerWrapper, handling this - // asynchronously is probably not required anymore since the switchTo() method - // handles the balancer switch by pushing the update onto the channel. - // TODO(easwars): Handle this inline. - acbw, ok := sc.(*acBalancerWrapper) - if !ok { - return - } - ccb.updateCh.Put(&subConnUpdate{acbw: acbw}) + // The graceful switch balancer will never call this. + logger.Errorf("ccb RemoveSubConn(%v) called unexpectedly, sc") } func (ccb *ccBalancerWrapper) UpdateAddresses(sc balancer.SubConn, addrs []resolver.Address) { + if ccb.isIdleOrClosed() { + return + } + acbw, ok := sc.(*acBalancerWrapper) if !ok { return @@ -342,6 +328,10 @@ func (ccb *ccBalancerWrapper) UpdateAddresses(sc balancer.SubConn, addrs []resol } func (ccb *ccBalancerWrapper) UpdateState(s balancer.State) { + if ccb.isIdleOrClosed() { + return + } + // Update picker before updating state. Even though the ordering here does // not matter, it can lead to multiple calls of Pick in the common start-up // case where we wait for ready and then perform an RPC. If the picker is @@ -352,6 +342,10 @@ func (ccb *ccBalancerWrapper) UpdateState(s balancer.State) { } func (ccb *ccBalancerWrapper) ResolveNow(o resolver.ResolveNowOptions) { + if ccb.isIdleOrClosed() { + return + } + ccb.cc.resolveNow(o) } @@ -362,78 +356,57 @@ func (ccb *ccBalancerWrapper) Target() string { // acBalancerWrapper is a wrapper on top of ac for balancers. // It implements balancer.SubConn interface. type acBalancerWrapper struct { + ac *addrConn // read-only + ccb *ccBalancerWrapper // read-only + stateListener func(balancer.SubConnState) + mu sync.Mutex - ac *addrConn producers map[balancer.ProducerBuilder]*refCountedProducer } -func (acbw *acBalancerWrapper) UpdateAddresses(addrs []resolver.Address) { - acbw.mu.Lock() - defer acbw.mu.Unlock() - if len(addrs) <= 0 { - acbw.ac.cc.removeAddrConn(acbw.ac, errConnDrain) - return - } - if !acbw.ac.tryUpdateAddrs(addrs) { - cc := acbw.ac.cc - opts := acbw.ac.scopts - acbw.ac.mu.Lock() - // Set old ac.acbw to nil so the Shutdown state update will be ignored - // by balancer. - // - // TODO(bar) the state transition could be wrong when tearDown() old ac - // and creating new ac, fix the transition. - acbw.ac.acbw = nil - acbw.ac.mu.Unlock() - acState := acbw.ac.getState() - acbw.ac.cc.removeAddrConn(acbw.ac, errConnDrain) - - if acState == connectivity.Shutdown { - return - } +func (acbw *acBalancerWrapper) String() string { + return fmt.Sprintf("SubConn(id:%d)", acbw.ac.channelzID.Int()) +} - newAC, err := cc.newAddrConn(addrs, opts) - if err != nil { - channelz.Warningf(logger, acbw.ac.channelzID, "acBalancerWrapper: UpdateAddresses: failed to newAddrConn: %v", err) - return - } - acbw.ac = newAC - newAC.mu.Lock() - newAC.acbw = acbw - newAC.mu.Unlock() - if acState != connectivity.Idle { - go newAC.connect() - } - } +func (acbw *acBalancerWrapper) UpdateAddresses(addrs []resolver.Address) { + acbw.ac.updateAddrs(addrs) } func (acbw *acBalancerWrapper) Connect() { - acbw.mu.Lock() - defer acbw.mu.Unlock() go acbw.ac.connect() } -func (acbw *acBalancerWrapper) getAddrConn() *addrConn { - acbw.mu.Lock() - defer acbw.mu.Unlock() - return acbw.ac -} +func (acbw *acBalancerWrapper) Shutdown() { + ccb := acbw.ccb + if ccb.isIdleOrClosed() { + // It it safe to ignore this call when the balancer is closed or in idle + // because the ClientConn takes care of closing the connections. + // + // Not returning early from here when the balancer is closed or in idle + // leads to a deadlock though, because of the following sequence of + // calls when holding cc.mu: + // cc.exitIdleMode --> ccb.enterIdleMode --> gsw.Close --> + // ccb.RemoveAddrConn --> cc.removeAddrConn + return + } -var errSubConnNotReady = status.Error(codes.Unavailable, "SubConn not currently connected") + ccb.cc.removeAddrConn(acbw.ac, errConnDrain) +} // NewStream begins a streaming RPC on the addrConn. If the addrConn is not -// ready, returns errSubConnNotReady. +// ready, blocks until it is or ctx expires. Returns an error when the context +// expires or the addrConn is shut down. func (acbw *acBalancerWrapper) NewStream(ctx context.Context, desc *StreamDesc, method string, opts ...CallOption) (ClientStream, error) { - transport := acbw.ac.getReadyTransport() - if transport == nil { - return nil, errSubConnNotReady + transport, err := acbw.ac.getTransport(ctx) + if err != nil { + return nil, err } return newNonRetryClientStream(ctx, desc, method, transport, acbw.ac, opts...) } // Invoke performs a unary RPC. If the addrConn is not ready, returns // errSubConnNotReady. -func (acbw *acBalancerWrapper) Invoke(ctx context.Context, method string, args interface{}, reply interface{}, opts ...CallOption) error { +func (acbw *acBalancerWrapper) Invoke(ctx context.Context, method string, args any, reply any, opts ...CallOption) error { cs, err := acbw.NewStream(ctx, unaryStreamDesc, method, opts...) if err != nil { return err diff --git a/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go b/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go index 66d141fce707..5954801122ad 100644 --- a/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go +++ b/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.14.0 +// protoc-gen-go v1.31.0 +// protoc v4.22.0 // source: grpc/binlog/v1/binarylog.proto package grpc_binarylog_v1 diff --git a/vendor/google.golang.org/grpc/call.go b/vendor/google.golang.org/grpc/call.go index 9e20e4d385f9..a67a3db02eb4 100644 --- a/vendor/google.golang.org/grpc/call.go +++ b/vendor/google.golang.org/grpc/call.go @@ -26,7 +26,12 @@ import ( // received. This is typically called by generated code. // // All errors returned by Invoke are compatible with the status package. -func (cc *ClientConn) Invoke(ctx context.Context, method string, args, reply interface{}, opts ...CallOption) error { +func (cc *ClientConn) Invoke(ctx context.Context, method string, args, reply any, opts ...CallOption) error { + if err := cc.idlenessMgr.OnCallBegin(); err != nil { + return err + } + defer cc.idlenessMgr.OnCallEnd() + // allow interceptor to see all applicable call options, which means those // configured as defaults from dial option as well as per-call options opts = combine(cc.dopts.callOptions, opts) @@ -56,13 +61,13 @@ func combine(o1 []CallOption, o2 []CallOption) []CallOption { // received. This is typically called by generated code. // // DEPRECATED: Use ClientConn.Invoke instead. -func Invoke(ctx context.Context, method string, args, reply interface{}, cc *ClientConn, opts ...CallOption) error { +func Invoke(ctx context.Context, method string, args, reply any, cc *ClientConn, opts ...CallOption) error { return cc.Invoke(ctx, method, args, reply, opts...) } var unaryStreamDesc = &StreamDesc{ServerStreams: false, ClientStreams: false} -func invoke(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, opts ...CallOption) error { +func invoke(ctx context.Context, method string, req, reply any, cc *ClientConn, opts ...CallOption) error { cs, err := newClientStream(ctx, unaryStreamDesc, cc, method, opts...) if err != nil { return err diff --git a/vendor/google.golang.org/grpc/clientconn.go b/vendor/google.golang.org/grpc/clientconn.go index d607d4e9e243..d53d91d5d9f3 100644 --- a/vendor/google.golang.org/grpc/clientconn.go +++ b/vendor/google.golang.org/grpc/clientconn.go @@ -24,7 +24,6 @@ import ( "fmt" "math" "net/url" - "reflect" "strings" "sync" "sync/atomic" @@ -35,9 +34,12 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/connectivity" "google.golang.org/grpc/credentials" + "google.golang.org/grpc/internal" "google.golang.org/grpc/internal/backoff" "google.golang.org/grpc/internal/channelz" "google.golang.org/grpc/internal/grpcsync" + "google.golang.org/grpc/internal/idle" + "google.golang.org/grpc/internal/pretty" iresolver "google.golang.org/grpc/internal/resolver" "google.golang.org/grpc/internal/transport" "google.golang.org/grpc/keepalive" @@ -54,8 +56,6 @@ import ( const ( // minimum time to give a connection to complete minConnectTimeout = 20 * time.Second - // must match grpclbName in grpclb/grpclb.go - grpclbName = "grpclb" ) var ( @@ -69,6 +69,9 @@ var ( errConnDrain = errors.New("grpc: the connection is drained") // errConnClosing indicates that the connection is closing. errConnClosing = errors.New("grpc: the connection is closing") + // errConnIdling indicates the the connection is being closed as the channel + // is moving to an idle mode due to inactivity. + errConnIdling = errors.New("grpc: the connection is closing due to channel idleness") // invalidDefaultServiceConfigErrPrefix is used to prefix the json parsing error for the default // service config. invalidDefaultServiceConfigErrPrefix = "grpc: the provided default service config is invalid" @@ -134,20 +137,41 @@ func (dcs *defaultConfigSelector) SelectConfig(rpcInfo iresolver.RPCInfo) (*ires // e.g. to use dns resolver, a "dns:///" prefix should be applied to the target. func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *ClientConn, err error) { cc := &ClientConn{ - target: target, - csMgr: &connectivityStateManager{}, - conns: make(map[*addrConn]struct{}), - dopts: defaultDialOptions(), - blockingpicker: newPickerWrapper(), - czData: new(channelzData), - firstResolveEvent: grpcsync.NewEvent(), + target: target, + conns: make(map[*addrConn]struct{}), + dopts: defaultDialOptions(), + czData: new(channelzData), } + + // We start the channel off in idle mode, but kick it out of idle at the end + // of this method, instead of waiting for the first RPC. Other gRPC + // implementations do wait for the first RPC to kick the channel out of + // idle. But doing so would be a major behavior change for our users who are + // used to seeing the channel active after Dial. + // + // Taking this approach of kicking it out of idle at the end of this method + // allows us to share the code between channel creation and exiting idle + // mode. This will also make it easy for us to switch to starting the + // channel off in idle, if at all we ever get to do that. + cc.idlenessState = ccIdlenessStateIdle + cc.retryThrottler.Store((*retryThrottler)(nil)) cc.safeConfigSelector.UpdateConfigSelector(&defaultConfigSelector{nil}) cc.ctx, cc.cancel = context.WithCancel(context.Background()) + cc.exitIdleCond = sync.NewCond(&cc.mu) - for _, opt := range extraDialOptions { - opt.apply(&cc.dopts) + disableGlobalOpts := false + for _, opt := range opts { + if _, ok := opt.(*disableGlobalDialOptions); ok { + disableGlobalOpts = true + break + } + } + + if !disableGlobalOpts { + for _, opt := range globalDialOptions { + opt.apply(&cc.dopts) + } } for _, opt := range opts { @@ -163,40 +187,13 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn * } }() - pid := cc.dopts.channelzParentID - cc.channelzID = channelz.RegisterChannel(&channelzChannel{cc}, pid, target) - ted := &channelz.TraceEventDesc{ - Desc: "Channel created", - Severity: channelz.CtInfo, - } - if cc.dopts.channelzParentID != nil { - ted.Parent = &channelz.TraceEventDesc{ - Desc: fmt.Sprintf("Nested Channel(id:%d) created", cc.channelzID.Int()), - Severity: channelz.CtInfo, - } - } - channelz.AddTraceEvent(logger, cc.channelzID, 1, ted) - cc.csMgr.channelzID = cc.channelzID + // Register ClientConn with channelz. + cc.channelzRegistration(target) - if cc.dopts.copts.TransportCredentials == nil && cc.dopts.copts.CredsBundle == nil { - return nil, errNoTransportSecurity - } - if cc.dopts.copts.TransportCredentials != nil && cc.dopts.copts.CredsBundle != nil { - return nil, errTransportCredsAndBundle - } - if cc.dopts.copts.CredsBundle != nil && cc.dopts.copts.CredsBundle.TransportCredentials() == nil { - return nil, errNoTransportCredsInBundle - } - transportCreds := cc.dopts.copts.TransportCredentials - if transportCreds == nil { - transportCreds = cc.dopts.copts.CredsBundle.TransportCredentials() - } - if transportCreds.Info().SecurityProtocol == "insecure" { - for _, cd := range cc.dopts.copts.PerRPCCredentials { - if cd.RequireTransportSecurity() { - return nil, errTransportCredentialsMissing - } - } + cc.csMgr = newConnectivityStateManager(cc.ctx, cc.channelzID) + + if err := cc.validateTransportCredentials(); err != nil { + return nil, err } if cc.dopts.defaultServiceConfigRawJSON != nil { @@ -234,35 +231,19 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn * } }() - scSet := false - if cc.dopts.scChan != nil { - // Try to get an initial service config. - select { - case sc, ok := <-cc.dopts.scChan: - if ok { - cc.sc = &sc - cc.safeConfigSelector.UpdateConfigSelector(&defaultConfigSelector{&sc}) - scSet = true - } - default: - } - } if cc.dopts.bs == nil { cc.dopts.bs = backoff.DefaultExponential } // Determine the resolver to use. - resolverBuilder, err := cc.parseTargetAndFindResolver() - if err != nil { + if err := cc.parseTargetAndFindResolver(); err != nil { return nil, err } - cc.authority, err = determineAuthority(cc.parsedTarget.Endpoint(), cc.target, cc.dopts) - if err != nil { + if err = cc.determineAuthority(); err != nil { return nil, err } - channelz.Infof(logger, cc.channelzID, "Channel authority set to %q", cc.authority) - if cc.dopts.scChan != nil && !scSet { + if cc.dopts.scChan != nil { // Blocking wait for the initial service config. select { case sc, ok := <-cc.dopts.scChan: @@ -278,57 +259,234 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn * go cc.scWatcher() } + // This creates the name resolver, load balancer, blocking picker etc. + if err := cc.exitIdleMode(); err != nil { + return nil, err + } + + // Configure idleness support with configured idle timeout or default idle + // timeout duration. Idleness can be explicitly disabled by the user, by + // setting the dial option to 0. + cc.idlenessMgr = idle.NewManager(idle.ManagerOptions{Enforcer: (*idler)(cc), Timeout: cc.dopts.idleTimeout, Logger: logger}) + + // Return early for non-blocking dials. + if !cc.dopts.block { + return cc, nil + } + + // A blocking dial blocks until the clientConn is ready. + for { + s := cc.GetState() + if s == connectivity.Idle { + cc.Connect() + } + if s == connectivity.Ready { + return cc, nil + } else if cc.dopts.copts.FailOnNonTempDialError && s == connectivity.TransientFailure { + if err = cc.connectionError(); err != nil { + terr, ok := err.(interface { + Temporary() bool + }) + if ok && !terr.Temporary() { + return nil, err + } + } + } + if !cc.WaitForStateChange(ctx, s) { + // ctx got timeout or canceled. + if err = cc.connectionError(); err != nil && cc.dopts.returnLastError { + return nil, err + } + return nil, ctx.Err() + } + } +} + +// addTraceEvent is a helper method to add a trace event on the channel. If the +// channel is a nested one, the same event is also added on the parent channel. +func (cc *ClientConn) addTraceEvent(msg string) { + ted := &channelz.TraceEventDesc{ + Desc: fmt.Sprintf("Channel %s", msg), + Severity: channelz.CtInfo, + } + if cc.dopts.channelzParentID != nil { + ted.Parent = &channelz.TraceEventDesc{ + Desc: fmt.Sprintf("Nested channel(id:%d) %s", cc.channelzID.Int(), msg), + Severity: channelz.CtInfo, + } + } + channelz.AddTraceEvent(logger, cc.channelzID, 0, ted) +} + +type idler ClientConn + +func (i *idler) EnterIdleMode() error { + return (*ClientConn)(i).enterIdleMode() +} + +func (i *idler) ExitIdleMode() error { + return (*ClientConn)(i).exitIdleMode() +} + +// exitIdleMode moves the channel out of idle mode by recreating the name +// resolver and load balancer. +func (cc *ClientConn) exitIdleMode() error { + cc.mu.Lock() + if cc.conns == nil { + cc.mu.Unlock() + return errConnClosing + } + if cc.idlenessState != ccIdlenessStateIdle { + cc.mu.Unlock() + channelz.Infof(logger, cc.channelzID, "ClientConn asked to exit idle mode, current mode is %v", cc.idlenessState) + return nil + } + + defer func() { + // When Close() and exitIdleMode() race against each other, one of the + // following two can happen: + // - Close() wins the race and runs first. exitIdleMode() runs after, and + // sees that the ClientConn is already closed and hence returns early. + // - exitIdleMode() wins the race and runs first and recreates the balancer + // and releases the lock before recreating the resolver. If Close() runs + // in this window, it will wait for exitIdleMode to complete. + // + // We achieve this synchronization using the below condition variable. + cc.mu.Lock() + cc.idlenessState = ccIdlenessStateActive + cc.exitIdleCond.Signal() + cc.mu.Unlock() + }() + + cc.idlenessState = ccIdlenessStateExitingIdle + exitedIdle := false + if cc.blockingpicker == nil { + cc.blockingpicker = newPickerWrapper(cc.dopts.copts.StatsHandlers) + } else { + cc.blockingpicker.exitIdleMode() + exitedIdle = true + } + var credsClone credentials.TransportCredentials if creds := cc.dopts.copts.TransportCredentials; creds != nil { credsClone = creds.Clone() } - cc.balancerWrapper = newCCBalancerWrapper(cc, balancer.BuildOptions{ - DialCreds: credsClone, - CredsBundle: cc.dopts.copts.CredsBundle, - Dialer: cc.dopts.copts.Dialer, - Authority: cc.authority, - CustomUserAgent: cc.dopts.copts.UserAgent, - ChannelzParentID: cc.channelzID, - Target: cc.parsedTarget, - }) + if cc.balancerWrapper == nil { + cc.balancerWrapper = newCCBalancerWrapper(cc, balancer.BuildOptions{ + DialCreds: credsClone, + CredsBundle: cc.dopts.copts.CredsBundle, + Dialer: cc.dopts.copts.Dialer, + Authority: cc.authority, + CustomUserAgent: cc.dopts.copts.UserAgent, + ChannelzParentID: cc.channelzID, + Target: cc.parsedTarget, + }) + } else { + cc.balancerWrapper.exitIdleMode() + } + cc.firstResolveEvent = grpcsync.NewEvent() + cc.mu.Unlock() - // Build the resolver. - rWrapper, err := newCCResolverWrapper(cc, resolverBuilder) - if err != nil { - return nil, fmt.Errorf("failed to build resolver: %v", err) + // This needs to be called without cc.mu because this builds a new resolver + // which might update state or report error inline which needs to be handled + // by cc.updateResolverState() which also grabs cc.mu. + if err := cc.initResolverWrapper(credsClone); err != nil { + return err + } + + if exitedIdle { + cc.addTraceEvent("exiting idle mode") } + return nil +} + +// enterIdleMode puts the channel in idle mode, and as part of it shuts down the +// name resolver, load balancer and any subchannels. +func (cc *ClientConn) enterIdleMode() error { cc.mu.Lock() - cc.resolverWrapper = rWrapper + if cc.conns == nil { + cc.mu.Unlock() + return ErrClientConnClosing + } + if cc.idlenessState != ccIdlenessStateActive { + channelz.Errorf(logger, cc.channelzID, "ClientConn asked to enter idle mode, current mode is %v", cc.idlenessState) + cc.mu.Unlock() + return nil + } + + // cc.conns == nil is a proxy for the ClientConn being closed. So, instead + // of setting it to nil here, we recreate the map. This also means that we + // don't have to do this when exiting idle mode. + conns := cc.conns + cc.conns = make(map[*addrConn]struct{}) + + // TODO: Currently, we close the resolver wrapper upon entering idle mode + // and create a new one upon exiting idle mode. This means that the + // `cc.resolverWrapper` field would be overwritten everytime we exit idle + // mode. While this means that we need to hold `cc.mu` when accessing + // `cc.resolverWrapper`, it makes the code simpler in the wrapper. We should + // try to do the same for the balancer and picker wrappers too. + cc.resolverWrapper.close() + cc.blockingpicker.enterIdleMode() + cc.balancerWrapper.enterIdleMode() + cc.csMgr.updateState(connectivity.Idle) + cc.idlenessState = ccIdlenessStateIdle cc.mu.Unlock() - // A blocking dial blocks until the clientConn is ready. - if cc.dopts.block { - for { - cc.Connect() - s := cc.GetState() - if s == connectivity.Ready { - break - } else if cc.dopts.copts.FailOnNonTempDialError && s == connectivity.TransientFailure { - if err = cc.connectionError(); err != nil { - terr, ok := err.(interface { - Temporary() bool - }) - if ok && !terr.Temporary() { - return nil, err - } - } - } - if !cc.WaitForStateChange(ctx, s) { - // ctx got timeout or canceled. - if err = cc.connectionError(); err != nil && cc.dopts.returnLastError { - return nil, err - } - return nil, ctx.Err() + go func() { + cc.addTraceEvent("entering idle mode") + for ac := range conns { + ac.tearDown(errConnIdling) + } + }() + return nil +} + +// validateTransportCredentials performs a series of checks on the configured +// transport credentials. It returns a non-nil error if any of these conditions +// are met: +// - no transport creds and no creds bundle is configured +// - both transport creds and creds bundle are configured +// - creds bundle is configured, but it lacks a transport credentials +// - insecure transport creds configured alongside call creds that require +// transport level security +// +// If none of the above conditions are met, the configured credentials are +// deemed valid and a nil error is returned. +func (cc *ClientConn) validateTransportCredentials() error { + if cc.dopts.copts.TransportCredentials == nil && cc.dopts.copts.CredsBundle == nil { + return errNoTransportSecurity + } + if cc.dopts.copts.TransportCredentials != nil && cc.dopts.copts.CredsBundle != nil { + return errTransportCredsAndBundle + } + if cc.dopts.copts.CredsBundle != nil && cc.dopts.copts.CredsBundle.TransportCredentials() == nil { + return errNoTransportCredsInBundle + } + transportCreds := cc.dopts.copts.TransportCredentials + if transportCreds == nil { + transportCreds = cc.dopts.copts.CredsBundle.TransportCredentials() + } + if transportCreds.Info().SecurityProtocol == "insecure" { + for _, cd := range cc.dopts.copts.PerRPCCredentials { + if cd.RequireTransportSecurity() { + return errTransportCredentialsMissing } } } + return nil +} - return cc, nil +// channelzRegistration registers the newly created ClientConn with channelz and +// stores the returned identifier in `cc.channelzID` and `cc.csMgr.channelzID`. +// A channelz trace event is emitted for ClientConn creation. If the newly +// created ClientConn is a nested one, i.e a valid parent ClientConn ID is +// specified via a dial option, the trace event is also added to the parent. +// +// Doesn't grab cc.mu as this method is expected to be called only at Dial time. +func (cc *ClientConn) channelzRegistration(target string) { + cc.channelzID = channelz.RegisterChannel(&channelzChannel{cc}, cc.dopts.channelzParentID, target) + cc.addTraceEvent("created") } // chainUnaryClientInterceptors chains all unary client interceptors into one. @@ -345,7 +503,7 @@ func chainUnaryClientInterceptors(cc *ClientConn) { } else if len(interceptors) == 1 { chainedInt = interceptors[0] } else { - chainedInt = func(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, invoker UnaryInvoker, opts ...CallOption) error { + chainedInt = func(ctx context.Context, method string, req, reply any, cc *ClientConn, invoker UnaryInvoker, opts ...CallOption) error { return interceptors[0](ctx, method, req, reply, cc, getChainUnaryInvoker(interceptors, 0, invoker), opts...) } } @@ -357,7 +515,7 @@ func getChainUnaryInvoker(interceptors []UnaryClientInterceptor, curr int, final if curr == len(interceptors)-1 { return finalInvoker } - return func(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, opts ...CallOption) error { + return func(ctx context.Context, method string, req, reply any, cc *ClientConn, opts ...CallOption) error { return interceptors[curr+1](ctx, method, req, reply, cc, getChainUnaryInvoker(interceptors, curr+1, finalInvoker), opts...) } } @@ -393,13 +551,27 @@ func getChainStreamer(interceptors []StreamClientInterceptor, curr int, finalStr } } +// newConnectivityStateManager creates an connectivityStateManager with +// the specified id. +func newConnectivityStateManager(ctx context.Context, id *channelz.Identifier) *connectivityStateManager { + return &connectivityStateManager{ + channelzID: id, + pubSub: grpcsync.NewPubSub(ctx), + } +} + // connectivityStateManager keeps the connectivity.State of ClientConn. // This struct will eventually be exported so the balancers can access it. +// +// TODO: If possible, get rid of the `connectivityStateManager` type, and +// provide this functionality using the `PubSub`, to avoid keeping track of +// the connectivity state at two places. type connectivityStateManager struct { mu sync.Mutex state connectivity.State notifyChan chan struct{} channelzID *channelz.Identifier + pubSub *grpcsync.PubSub } // updateState updates the connectivity.State of ClientConn. @@ -415,6 +587,8 @@ func (csm *connectivityStateManager) updateState(state connectivity.State) { return } csm.state = state + csm.pubSub.Publish(state) + channelz.Infof(logger, csm.channelzID, "Channel Connectivity change to %v", state) if csm.notifyChan != nil { // There are other goroutines waiting on this channel. @@ -444,7 +618,7 @@ func (csm *connectivityStateManager) getNotifyChan() <-chan struct{} { type ClientConnInterface interface { // Invoke performs a unary RPC and returns after the response is received // into reply. - Invoke(ctx context.Context, method string, args interface{}, reply interface{}, opts ...CallOption) error + Invoke(ctx context.Context, method string, args any, reply any, opts ...CallOption) error // NewStream begins a streaming RPC. NewStream(ctx context.Context, desc *StreamDesc, method string, opts ...CallOption) (ClientStream, error) } @@ -474,7 +648,9 @@ type ClientConn struct { authority string // See determineAuthority(). dopts dialOptions // Default and user specified dial options. channelzID *channelz.Identifier // Channelz identifier for the channel. + resolverBuilder resolver.Builder // See parseTargetAndFindResolver(). balancerWrapper *ccBalancerWrapper // Uses gracefulswitch.balancer underneath. + idlenessMgr idle.Manager // The following provide their own synchronization, and therefore don't // require cc.mu to be held to access them. @@ -495,11 +671,44 @@ type ClientConn struct { sc *ServiceConfig // Latest service config received from the resolver. conns map[*addrConn]struct{} // Set to nil on close. mkp keepalive.ClientParameters // May be updated upon receipt of a GoAway. + idlenessState ccIdlenessState // Tracks idleness state of the channel. + exitIdleCond *sync.Cond // Signalled when channel exits idle. lceMu sync.Mutex // protects lastConnectionError lastConnectionError error } +// ccIdlenessState tracks the idleness state of the channel. +// +// Channels start off in `active` and move to `idle` after a period of +// inactivity. When moving back to `active` upon an incoming RPC, they +// transition through `exiting_idle`. This state is useful for synchronization +// with Close(). +// +// This state tracking is mostly for self-protection. The idlenessManager is +// expected to keep track of the state as well, and is expected not to call into +// the ClientConn unnecessarily. +type ccIdlenessState int8 + +const ( + ccIdlenessStateActive ccIdlenessState = iota + ccIdlenessStateIdle + ccIdlenessStateExitingIdle +) + +func (s ccIdlenessState) String() string { + switch s { + case ccIdlenessStateActive: + return "active" + case ccIdlenessStateIdle: + return "idle" + case ccIdlenessStateExitingIdle: + return "exitingIdle" + default: + return "unknown" + } +} + // WaitForStateChange waits until the connectivity.State of ClientConn changes from sourceState or // ctx expires. A true value is returned in former case and false in latter. // @@ -539,7 +748,10 @@ func (cc *ClientConn) GetState() connectivity.State { // Notice: This API is EXPERIMENTAL and may be changed or removed in a later // release. func (cc *ClientConn) Connect() { - cc.balancerWrapper.exitIdle() + cc.exitIdleMode() + // If the ClientConn was not in idle mode, we need to call ExitIdle on the + // LB policy so that connections can be created. + cc.balancerWrapper.exitIdleMode() } func (cc *ClientConn) scWatcher() { @@ -588,6 +800,10 @@ func init() { panic(fmt.Sprintf("impossible error parsing empty service config: %v", cfg.Err)) } emptyServiceConfig = cfg.Config.(*ServiceConfig) + + internal.SubscribeToConnectivityStateChanges = func(cc *ClientConn, s grpcsync.Subscriber) func() { + return cc.csMgr.pubSub.Subscribe(s) + } } func (cc *ClientConn) maybeApplyDefaultServiceConfig(addrs []resolver.Address) { @@ -696,6 +912,20 @@ func (cc *ClientConn) handleSubConnStateChange(sc balancer.SubConn, s connectivi cc.balancerWrapper.updateSubConnState(sc, s, err) } +// Makes a copy of the input addresses slice and clears out the balancer +// attributes field. Addresses are passed during subconn creation and address +// update operations. In both cases, we will clear the balancer attributes by +// calling this function, and therefore we will be able to use the Equal method +// provided by the resolver.Address type for comparison. +func copyAddressesWithoutBalancerAttributes(in []resolver.Address) []resolver.Address { + out := make([]resolver.Address, len(in)) + for i := range in { + out[i] = in[i] + out[i].BalancerAttributes = nil + } + return out +} + // newAddrConn creates an addrConn for addrs and adds it to cc.conns. // // Caller needs to make sure len(addrs) > 0. @@ -703,11 +933,12 @@ func (cc *ClientConn) newAddrConn(addrs []resolver.Address, opts balancer.NewSub ac := &addrConn{ state: connectivity.Idle, cc: cc, - addrs: addrs, + addrs: copyAddressesWithoutBalancerAttributes(addrs), scopts: opts, dopts: cc.dopts, czData: new(channelzData), resetBackoff: make(chan struct{}), + stateChan: make(chan struct{}), } ac.ctx, ac.cancel = context.WithCancel(cc.ctx) // Track ac in cc. This needs to be done before any getTransport(...) is called. @@ -801,9 +1032,6 @@ func (ac *addrConn) connect() error { ac.mu.Unlock() return nil } - // Update connectivity state within the lock to prevent subsequent or - // concurrent calls from resetting the transport more than once. - ac.updateConnectivityState(connectivity.Connecting, nil) ac.mu.Unlock() ac.resetTransport() @@ -822,58 +1050,63 @@ func equalAddresses(a, b []resolver.Address) bool { return true } -// tryUpdateAddrs tries to update ac.addrs with the new addresses list. -// -// If ac is TransientFailure, it updates ac.addrs and returns true. The updated -// addresses will be picked up by retry in the next iteration after backoff. -// -// If ac is Shutdown or Idle, it updates ac.addrs and returns true. -// -// If the addresses is the same as the old list, it does nothing and returns -// true. -// -// If ac is Connecting, it returns false. The caller should tear down the ac and -// create a new one. Note that the backoff will be reset when this happens. -// -// If ac is Ready, it checks whether current connected address of ac is in the -// new addrs list. -// - If true, it updates ac.addrs and returns true. The ac will keep using -// the existing connection. -// - If false, it does nothing and returns false. -func (ac *addrConn) tryUpdateAddrs(addrs []resolver.Address) bool { +// updateAddrs updates ac.addrs with the new addresses list and handles active +// connections or connection attempts. +func (ac *addrConn) updateAddrs(addrs []resolver.Address) { ac.mu.Lock() - defer ac.mu.Unlock() - channelz.Infof(logger, ac.channelzID, "addrConn: tryUpdateAddrs curAddr: %v, addrs: %v", ac.curAddr, addrs) + channelz.Infof(logger, ac.channelzID, "addrConn: updateAddrs curAddr: %v, addrs: %v", pretty.ToJSON(ac.curAddr), pretty.ToJSON(addrs)) + + addrs = copyAddressesWithoutBalancerAttributes(addrs) + if equalAddresses(ac.addrs, addrs) { + ac.mu.Unlock() + return + } + + ac.addrs = addrs + if ac.state == connectivity.Shutdown || ac.state == connectivity.TransientFailure || ac.state == connectivity.Idle { - ac.addrs = addrs - return true + // We were not connecting, so do nothing but update the addresses. + ac.mu.Unlock() + return } - if equalAddresses(ac.addrs, addrs) { - return true + if ac.state == connectivity.Ready { + // Try to find the connected address. + for _, a := range addrs { + a.ServerName = ac.cc.getServerName(a) + if a.Equal(ac.curAddr) { + // We are connected to a valid address, so do nothing but + // update the addresses. + ac.mu.Unlock() + return + } + } } - if ac.state == connectivity.Connecting { - return false - } + // We are either connected to the wrong address or currently connecting. + // Stop the current iteration and restart. - // ac.state is Ready, try to find the connected address. - var curAddrFound bool - for _, a := range addrs { - a.ServerName = ac.cc.getServerName(a) - if reflect.DeepEqual(ac.curAddr, a) { - curAddrFound = true - break - } + ac.cancel() + ac.ctx, ac.cancel = context.WithCancel(ac.cc.ctx) + + // We have to defer here because GracefulClose => Close => onClose, which + // requires locking ac.mu. + if ac.transport != nil { + defer ac.transport.GracefulClose() + ac.transport = nil } - channelz.Infof(logger, ac.channelzID, "addrConn: tryUpdateAddrs curAddrFound: %v", curAddrFound) - if curAddrFound { - ac.addrs = addrs + + if len(addrs) == 0 { + ac.updateConnectivityState(connectivity.Idle, nil) } - return curAddrFound + ac.mu.Unlock() + + // Since we were connecting/connected, we should start a new connection + // attempt. + go ac.resetTransport() } // getServerName determines the serverName to be used in the connection @@ -964,23 +1197,13 @@ func (cc *ClientConn) applyServiceConfigAndBalancer(sc *ServiceConfig, configSel } var newBalancerName string - if cc.sc != nil && cc.sc.lbConfig != nil { + if cc.sc == nil || (cc.sc.lbConfig == nil && cc.sc.LB == nil) { + // No service config or no LB policy specified in config. + newBalancerName = PickFirstBalancerName + } else if cc.sc.lbConfig != nil { newBalancerName = cc.sc.lbConfig.name - } else { - var isGRPCLB bool - for _, a := range addrs { - if a.Type == resolver.GRPCLB { - isGRPCLB = true - break - } - } - if isGRPCLB { - newBalancerName = grpclbName - } else if cc.sc != nil && cc.sc.LB != nil { - newBalancerName = *cc.sc.LB - } else { - newBalancerName = PickFirstBalancerName - } + } else { // cc.sc.LB != nil + newBalancerName = *cc.sc.LB } cc.balancerWrapper.switchTo(newBalancerName) } @@ -1019,46 +1242,50 @@ func (cc *ClientConn) ResetConnectBackoff() { // Close tears down the ClientConn and all underlying connections. func (cc *ClientConn) Close() error { - defer cc.cancel() + defer func() { + cc.cancel() + <-cc.csMgr.pubSub.Done() + }() cc.mu.Lock() if cc.conns == nil { cc.mu.Unlock() return ErrClientConnClosing } + + for cc.idlenessState == ccIdlenessStateExitingIdle { + cc.exitIdleCond.Wait() + } + conns := cc.conns cc.conns = nil cc.csMgr.updateState(connectivity.Shutdown) + pWrapper := cc.blockingpicker rWrapper := cc.resolverWrapper - cc.resolverWrapper = nil bWrapper := cc.balancerWrapper + idlenessMgr := cc.idlenessMgr cc.mu.Unlock() // The order of closing matters here since the balancer wrapper assumes the // picker is closed before it is closed. - cc.blockingpicker.close() + if pWrapper != nil { + pWrapper.close() + } if bWrapper != nil { bWrapper.close() } if rWrapper != nil { rWrapper.close() } + if idlenessMgr != nil { + idlenessMgr.Close() + } for ac := range conns { ac.tearDown(ErrClientConnClosing) } - ted := &channelz.TraceEventDesc{ - Desc: "Channel deleted", - Severity: channelz.CtInfo, - } - if cc.dopts.channelzParentID != nil { - ted.Parent = &channelz.TraceEventDesc{ - Desc: fmt.Sprintf("Nested channel(id:%d) deleted", cc.channelzID.Int()), - Severity: channelz.CtInfo, - } - } - channelz.AddTraceEvent(logger, cc.channelzID, 0, ted) + cc.addTraceEvent("deleted") // TraceEvent needs to be called before RemoveEntry, as TraceEvent may add // trace reference to the entity being deleted, and thus prevent it from being // deleted right away. @@ -1088,7 +1315,8 @@ type addrConn struct { addrs []resolver.Address // All addresses that the resolver resolved to. // Use updateConnectivityState for updating addrConn's connectivity state. - state connectivity.State + state connectivity.State + stateChan chan struct{} // closed and recreated on every state change. backoffIdx int // Needs to be stateful for resetConnectBackoff. resetBackoff chan struct{} @@ -1102,8 +1330,15 @@ func (ac *addrConn) updateConnectivityState(s connectivity.State, lastErr error) if ac.state == s { return } + // When changing states, reset the state change channel. + close(ac.stateChan) + ac.stateChan = make(chan struct{}) ac.state = s - channelz.Infof(logger, ac.channelzID, "Subchannel Connectivity change to %v", s) + if lastErr == nil { + channelz.Infof(logger, ac.channelzID, "Subchannel Connectivity change to %v", s) + } else { + channelz.Infof(logger, ac.channelzID, "Subchannel Connectivity change to %v, last error: %s", s, lastErr) + } ac.cc.handleSubConnStateChange(ac.acbw, s, lastErr) } @@ -1123,7 +1358,8 @@ func (ac *addrConn) adjustParams(r transport.GoAwayReason) { func (ac *addrConn) resetTransport() { ac.mu.Lock() - if ac.state == connectivity.Shutdown { + acCtx := ac.ctx + if acCtx.Err() != nil { ac.mu.Unlock() return } @@ -1151,15 +1387,16 @@ func (ac *addrConn) resetTransport() { ac.updateConnectivityState(connectivity.Connecting, nil) ac.mu.Unlock() - if err := ac.tryAllAddrs(addrs, connectDeadline); err != nil { + if err := ac.tryAllAddrs(acCtx, addrs, connectDeadline); err != nil { ac.cc.resolveNow(resolver.ResolveNowOptions{}) - // After exhausting all addresses, the addrConn enters - // TRANSIENT_FAILURE. ac.mu.Lock() - if ac.state == connectivity.Shutdown { + if acCtx.Err() != nil { + // addrConn was torn down. ac.mu.Unlock() return } + // After exhausting all addresses, the addrConn enters + // TRANSIENT_FAILURE. ac.updateConnectivityState(connectivity.TransientFailure, err) // Backoff. @@ -1174,13 +1411,13 @@ func (ac *addrConn) resetTransport() { ac.mu.Unlock() case <-b: timer.Stop() - case <-ac.ctx.Done(): + case <-acCtx.Done(): timer.Stop() return } ac.mu.Lock() - if ac.state != connectivity.Shutdown { + if acCtx.Err() == nil { ac.updateConnectivityState(connectivity.Idle, err) } ac.mu.Unlock() @@ -1195,14 +1432,13 @@ func (ac *addrConn) resetTransport() { // tryAllAddrs tries to creates a connection to the addresses, and stop when at // the first successful one. It returns an error if no address was successfully // connected, or updates ac appropriately with the new transport. -func (ac *addrConn) tryAllAddrs(addrs []resolver.Address, connectDeadline time.Time) error { +func (ac *addrConn) tryAllAddrs(ctx context.Context, addrs []resolver.Address, connectDeadline time.Time) error { var firstConnErr error for _, addr := range addrs { - ac.mu.Lock() - if ac.state == connectivity.Shutdown { - ac.mu.Unlock() + if ctx.Err() != nil { return errConnClosing } + ac.mu.Lock() ac.cc.mu.RLock() ac.dopts.copts.KeepaliveParams = ac.cc.mkp @@ -1216,7 +1452,7 @@ func (ac *addrConn) tryAllAddrs(addrs []resolver.Address, connectDeadline time.T channelz.Infof(logger, ac.channelzID, "Subchannel picks a new address %q to connect", addr.Addr) - err := ac.createTransport(addr, copts, connectDeadline) + err := ac.createTransport(ctx, addr, copts, connectDeadline) if err == nil { return nil } @@ -1233,19 +1469,20 @@ func (ac *addrConn) tryAllAddrs(addrs []resolver.Address, connectDeadline time.T // createTransport creates a connection to addr. It returns an error if the // address was not successfully connected, or updates ac appropriately with the // new transport. -func (ac *addrConn) createTransport(addr resolver.Address, copts transport.ConnectOptions, connectDeadline time.Time) error { +func (ac *addrConn) createTransport(ctx context.Context, addr resolver.Address, copts transport.ConnectOptions, connectDeadline time.Time) error { addr.ServerName = ac.cc.getServerName(addr) - hctx, hcancel := context.WithCancel(ac.ctx) + hctx, hcancel := context.WithCancel(ctx) onClose := func(r transport.GoAwayReason) { ac.mu.Lock() defer ac.mu.Unlock() // adjust params based on GoAwayReason ac.adjustParams(r) - if ac.state == connectivity.Shutdown { - // Already shut down. tearDown() already cleared the transport and - // canceled hctx via ac.ctx, and we expected this connection to be - // closed, so do nothing here. + if ctx.Err() != nil { + // Already shut down or connection attempt canceled. tearDown() or + // updateAddrs() already cleared the transport and canceled hctx + // via ac.ctx, and we expected this connection to be closed, so do + // nothing here. return } hcancel() @@ -1264,7 +1501,7 @@ func (ac *addrConn) createTransport(addr resolver.Address, copts transport.Conne ac.updateConnectivityState(connectivity.Idle, nil) } - connectCtx, cancel := context.WithDeadline(ac.ctx, connectDeadline) + connectCtx, cancel := context.WithDeadline(ctx, connectDeadline) defer cancel() copts.ChannelzParentID = ac.channelzID @@ -1281,7 +1518,7 @@ func (ac *addrConn) createTransport(addr resolver.Address, copts transport.Conne ac.mu.Lock() defer ac.mu.Unlock() - if ac.state == connectivity.Shutdown { + if ctx.Err() != nil { // This can happen if the subConn was removed while in `Connecting` // state. tearDown() would have set the state to `Shutdown`, but // would not have closed the transport since ac.transport would not @@ -1293,6 +1530,9 @@ func (ac *addrConn) createTransport(addr resolver.Address, copts transport.Conne // The error we pass to Close() is immaterial since there are no open // streams at this point, so no trailers with error details will be sent // out. We just need to pass a non-nil error. + // + // This can also happen when updateAddrs is called during a connection + // attempt. go newTr.Close(transport.ErrConnClosing) return nil } @@ -1352,7 +1592,7 @@ func (ac *addrConn) startHealthCheck(ctx context.Context) { // Set up the health check helper functions. currentTr := ac.transport - newStream := func(method string) (interface{}, error) { + newStream := func(method string) (any, error) { ac.mu.Lock() if ac.transport != currentTr { ac.mu.Unlock() @@ -1400,6 +1640,29 @@ func (ac *addrConn) getReadyTransport() transport.ClientTransport { return nil } +// getTransport waits until the addrconn is ready and returns the transport. +// If the context expires first, returns an appropriate status. If the +// addrConn is stopped first, returns an Unavailable status error. +func (ac *addrConn) getTransport(ctx context.Context) (transport.ClientTransport, error) { + for ctx.Err() == nil { + ac.mu.Lock() + t, state, sc := ac.transport, ac.state, ac.stateChan + ac.mu.Unlock() + if state == connectivity.Ready { + return t, nil + } + if state == connectivity.Shutdown { + return nil, status.Errorf(codes.Unavailable, "SubConn shutting down") + } + + select { + case <-ctx.Done(): + case <-sc: + } + } + return nil, status.FromContextError(ctx.Err()).Err() +} + // tearDown starts to tear down the addrConn. // // Note that tearDown doesn't remove ac from ac.cc.conns, so the addrConn struct @@ -1527,6 +1790,9 @@ func (c *channelzChannel) ChannelzMetric() *channelz.ChannelInternalMetric { // referenced by users. var ErrClientConnTimeout = errors.New("grpc: timed out when dialing") +// getResolver finds the scheme in the cc's resolvers or the global registry. +// scheme should always be lowercase (typically by virtue of url.Parse() +// performing proper RFC3986 behavior). func (cc *ClientConn) getResolver(scheme string) resolver.Builder { for _, rb := range cc.dopts.resolvers { if scheme == rb.Scheme() { @@ -1548,7 +1814,14 @@ func (cc *ClientConn) connectionError() error { return cc.lastConnectionError } -func (cc *ClientConn) parseTargetAndFindResolver() (resolver.Builder, error) { +// parseTargetAndFindResolver parses the user's dial target and stores the +// parsed target in `cc.parsedTarget`. +// +// The resolver to use is determined based on the scheme in the parsed target +// and the same is stored in `cc.resolverBuilder`. +// +// Doesn't grab cc.mu as this method is expected to be called only at Dial time. +func (cc *ClientConn) parseTargetAndFindResolver() error { channelz.Infof(logger, cc.channelzID, "original dial target is: %q", cc.target) var rb resolver.Builder @@ -1560,7 +1833,8 @@ func (cc *ClientConn) parseTargetAndFindResolver() (resolver.Builder, error) { rb = cc.getResolver(parsedTarget.URL.Scheme) if rb != nil { cc.parsedTarget = parsedTarget - return rb, nil + cc.resolverBuilder = rb + return nil } } @@ -1575,38 +1849,98 @@ func (cc *ClientConn) parseTargetAndFindResolver() (resolver.Builder, error) { parsedTarget, err = parseTarget(canonicalTarget) if err != nil { channelz.Infof(logger, cc.channelzID, "dial target %q parse failed: %v", canonicalTarget, err) - return nil, err + return err } channelz.Infof(logger, cc.channelzID, "parsed dial target is: %+v", parsedTarget) rb = cc.getResolver(parsedTarget.URL.Scheme) if rb == nil { - return nil, fmt.Errorf("could not get resolver for default scheme: %q", parsedTarget.URL.Scheme) + return fmt.Errorf("could not get resolver for default scheme: %q", parsedTarget.URL.Scheme) } cc.parsedTarget = parsedTarget - return rb, nil + cc.resolverBuilder = rb + return nil } // parseTarget uses RFC 3986 semantics to parse the given target into a -// resolver.Target struct containing scheme, authority and url. Query -// params are stripped from the endpoint. +// resolver.Target struct containing url. Query params are stripped from the +// endpoint. func parseTarget(target string) (resolver.Target, error) { u, err := url.Parse(target) if err != nil { return resolver.Target{}, err } - return resolver.Target{ - Scheme: u.Scheme, - Authority: u.Host, - URL: *u, - }, nil + return resolver.Target{URL: *u}, nil +} + +func encodeAuthority(authority string) string { + const upperhex = "0123456789ABCDEF" + + // Return for characters that must be escaped as per + // Valid chars are mentioned here: + // https://datatracker.ietf.org/doc/html/rfc3986#section-3.2 + shouldEscape := func(c byte) bool { + // Alphanum are always allowed. + if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9' { + return false + } + switch c { + case '-', '_', '.', '~': // Unreserved characters + return false + case '!', '$', '&', '\'', '(', ')', '*', '+', ',', ';', '=': // Subdelim characters + return false + case ':', '[', ']', '@': // Authority related delimeters + return false + } + // Everything else must be escaped. + return true + } + + hexCount := 0 + for i := 0; i < len(authority); i++ { + c := authority[i] + if shouldEscape(c) { + hexCount++ + } + } + + if hexCount == 0 { + return authority + } + + required := len(authority) + 2*hexCount + t := make([]byte, required) + + j := 0 + // This logic is a barebones version of escape in the go net/url library. + for i := 0; i < len(authority); i++ { + switch c := authority[i]; { + case shouldEscape(c): + t[j] = '%' + t[j+1] = upperhex[c>>4] + t[j+2] = upperhex[c&15] + j += 3 + default: + t[j] = authority[i] + j++ + } + } + return string(t) } // Determine channel authority. The order of precedence is as follows: // - user specified authority override using `WithAuthority` dial option // - creds' notion of server name for the authentication handshake // - endpoint from dial target of the form "scheme://[authority]/endpoint" -func determineAuthority(endpoint, target string, dopts dialOptions) (string, error) { +// +// Stores the determined authority in `cc.authority`. +// +// Returns a non-nil error if the authority returned by the transport +// credentials do not match the authority configured through the dial option. +// +// Doesn't grab cc.mu as this method is expected to be called only at Dial time. +func (cc *ClientConn) determineAuthority() error { + dopts := cc.dopts // Historically, we had two options for users to specify the serverName or // authority for a channel. One was through the transport credentials // (either in its constructor, or through the OverrideServerName() method). @@ -1623,25 +1957,62 @@ func determineAuthority(endpoint, target string, dopts dialOptions) (string, err } authorityFromDialOption := dopts.authority if (authorityFromCreds != "" && authorityFromDialOption != "") && authorityFromCreds != authorityFromDialOption { - return "", fmt.Errorf("ClientConn's authority from transport creds %q and dial option %q don't match", authorityFromCreds, authorityFromDialOption) + return fmt.Errorf("ClientConn's authority from transport creds %q and dial option %q don't match", authorityFromCreds, authorityFromDialOption) } + endpoint := cc.parsedTarget.Endpoint() + target := cc.target switch { case authorityFromDialOption != "": - return authorityFromDialOption, nil + cc.authority = authorityFromDialOption case authorityFromCreds != "": - return authorityFromCreds, nil + cc.authority = authorityFromCreds case strings.HasPrefix(target, "unix:") || strings.HasPrefix(target, "unix-abstract:"): // TODO: remove when the unix resolver implements optional interface to // return channel authority. - return "localhost", nil + cc.authority = "localhost" case strings.HasPrefix(endpoint, ":"): - return "localhost" + endpoint, nil + cc.authority = "localhost" + endpoint default: // TODO: Define an optional interface on the resolver builder to return // the channel authority given the user's dial target. For resolvers // which don't implement this interface, we will use the endpoint from // "scheme://authority/endpoint" as the default authority. - return endpoint, nil + // Escape the endpoint to handle use cases where the endpoint + // might not be a valid authority by default. + // For example an endpoint which has multiple paths like + // 'a/b/c', which is not a valid authority by default. + cc.authority = encodeAuthority(endpoint) + } + channelz.Infof(logger, cc.channelzID, "Channel authority set to %q", cc.authority) + return nil +} + +// initResolverWrapper creates a ccResolverWrapper, which builds the name +// resolver. This method grabs the lock to assign the newly built resolver +// wrapper to the cc.resolverWrapper field. +func (cc *ClientConn) initResolverWrapper(creds credentials.TransportCredentials) error { + rw, err := newCCResolverWrapper(cc, ccResolverWrapperOpts{ + target: cc.parsedTarget, + builder: cc.resolverBuilder, + bOpts: resolver.BuildOptions{ + DisableServiceConfig: cc.dopts.disableServiceConfig, + DialCreds: creds, + CredsBundle: cc.dopts.copts.CredsBundle, + Dialer: cc.dopts.copts.Dialer, + }, + channelzID: cc.channelzID, + }) + if err != nil { + return fmt.Errorf("failed to build resolver: %v", err) } + // Resolver implementations may report state update or error inline when + // built (or right after), and this is handled in cc.updateResolverState. + // Also, an error from the resolver might lead to a re-resolution request + // from the balancer, which is handled in resolveNow() where + // `cc.resolverWrapper` is accessed. Hence, we need to hold the lock here. + cc.mu.Lock() + cc.resolverWrapper = rw + cc.mu.Unlock() + return nil } diff --git a/vendor/google.golang.org/grpc/codec.go b/vendor/google.golang.org/grpc/codec.go index 129776547811..411e3dfd47cc 100644 --- a/vendor/google.golang.org/grpc/codec.go +++ b/vendor/google.golang.org/grpc/codec.go @@ -27,8 +27,8 @@ import ( // omits the name/string, which vary between the two and are not needed for // anything besides the registry in the encoding package. type baseCodec interface { - Marshal(v interface{}) ([]byte, error) - Unmarshal(data []byte, v interface{}) error + Marshal(v any) ([]byte, error) + Unmarshal(data []byte, v any) error } var _ baseCodec = Codec(nil) @@ -41,9 +41,9 @@ var _ baseCodec = encoding.Codec(nil) // Deprecated: use encoding.Codec instead. type Codec interface { // Marshal returns the wire format of v. - Marshal(v interface{}) ([]byte, error) + Marshal(v any) ([]byte, error) // Unmarshal parses the wire format into v. - Unmarshal(data []byte, v interface{}) error + Unmarshal(data []byte, v any) error // String returns the name of the Codec implementation. This is unused by // gRPC. String() string diff --git a/vendor/google.golang.org/grpc/codes/code_string.go b/vendor/google.golang.org/grpc/codes/code_string.go index 0b206a57822a..934fac2b090a 100644 --- a/vendor/google.golang.org/grpc/codes/code_string.go +++ b/vendor/google.golang.org/grpc/codes/code_string.go @@ -18,7 +18,15 @@ package codes -import "strconv" +import ( + "strconv" + + "google.golang.org/grpc/internal" +) + +func init() { + internal.CanonicalString = canonicalString +} func (c Code) String() string { switch c { @@ -60,3 +68,44 @@ func (c Code) String() string { return "Code(" + strconv.FormatInt(int64(c), 10) + ")" } } + +func canonicalString(c Code) string { + switch c { + case OK: + return "OK" + case Canceled: + return "CANCELLED" + case Unknown: + return "UNKNOWN" + case InvalidArgument: + return "INVALID_ARGUMENT" + case DeadlineExceeded: + return "DEADLINE_EXCEEDED" + case NotFound: + return "NOT_FOUND" + case AlreadyExists: + return "ALREADY_EXISTS" + case PermissionDenied: + return "PERMISSION_DENIED" + case ResourceExhausted: + return "RESOURCE_EXHAUSTED" + case FailedPrecondition: + return "FAILED_PRECONDITION" + case Aborted: + return "ABORTED" + case OutOfRange: + return "OUT_OF_RANGE" + case Unimplemented: + return "UNIMPLEMENTED" + case Internal: + return "INTERNAL" + case Unavailable: + return "UNAVAILABLE" + case DataLoss: + return "DATA_LOSS" + case Unauthenticated: + return "UNAUTHENTICATED" + default: + return "CODE(" + strconv.FormatInt(int64(c), 10) + ")" + } +} diff --git a/vendor/google.golang.org/grpc/dialoptions.go b/vendor/google.golang.org/grpc/dialoptions.go index 4866da101c60..1fd0d5c127f4 100644 --- a/vendor/google.golang.org/grpc/dialoptions.go +++ b/vendor/google.golang.org/grpc/dialoptions.go @@ -38,13 +38,14 @@ import ( func init() { internal.AddGlobalDialOptions = func(opt ...DialOption) { - extraDialOptions = append(extraDialOptions, opt...) + globalDialOptions = append(globalDialOptions, opt...) } internal.ClearGlobalDialOptions = func() { - extraDialOptions = nil + globalDialOptions = nil } internal.WithBinaryLogger = withBinaryLogger internal.JoinDialOptions = newJoinDialOption + internal.DisableGlobalDialOptions = newDisableGlobalDialOptions } // dialOptions configure a Dial call. dialOptions are set by the DialOption @@ -76,6 +77,8 @@ type dialOptions struct { defaultServiceConfig *ServiceConfig // defaultServiceConfig is parsed from defaultServiceConfigRawJSON. defaultServiceConfigRawJSON *string resolvers []resolver.Builder + idleTimeout time.Duration + recvBufferPool SharedBufferPool } // DialOption configures how we set up the connection. @@ -83,7 +86,7 @@ type DialOption interface { apply(*dialOptions) } -var extraDialOptions []DialOption +var globalDialOptions []DialOption // EmptyDialOption does not alter the dial configuration. It can be embedded in // another structure to build custom dial options. @@ -96,6 +99,16 @@ type EmptyDialOption struct{} func (EmptyDialOption) apply(*dialOptions) {} +type disableGlobalDialOptions struct{} + +func (disableGlobalDialOptions) apply(*dialOptions) {} + +// newDisableGlobalDialOptions returns a DialOption that prevents the ClientConn +// from applying the global DialOptions (set via AddGlobalDialOptions). +func newDisableGlobalDialOptions() DialOption { + return &disableGlobalDialOptions{} +} + // funcDialOption wraps a function that modifies dialOptions into an // implementation of the DialOption interface. type funcDialOption struct { @@ -126,6 +139,20 @@ func newJoinDialOption(opts ...DialOption) DialOption { return &joinDialOption{opts: opts} } +// WithSharedWriteBuffer allows reusing per-connection transport write buffer. +// If this option is set to true every connection will release the buffer after +// flushing the data on the wire. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func WithSharedWriteBuffer(val bool) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.copts.SharedWriteBuffer = val + }) +} + // WithWriteBufferSize determines how much data can be batched before doing a // write on the wire. The corresponding memory allocation for this buffer will // be twice the size to keep syscalls low. The default value for this buffer is @@ -284,6 +311,9 @@ func withBackoff(bs internalbackoff.Strategy) DialOption { // WithBlock returns a DialOption which makes callers of Dial block until the // underlying connection is up. Without this, Dial returns immediately and // connecting the server happens in background. +// +// Use of this feature is not recommended. For more information, please see: +// https://github.com/grpc/grpc-go/blob/master/Documentation/anti-patterns.md func WithBlock() DialOption { return newFuncDialOption(func(o *dialOptions) { o.block = true @@ -295,6 +325,9 @@ func WithBlock() DialOption { // the context.DeadlineExceeded error. // Implies WithBlock() // +// Use of this feature is not recommended. For more information, please see: +// https://github.com/grpc/grpc-go/blob/master/Documentation/anti-patterns.md +// // # Experimental // // Notice: This API is EXPERIMENTAL and may be changed or removed in a @@ -437,6 +470,9 @@ func withBinaryLogger(bl binarylog.Logger) DialOption { // FailOnNonTempDialError only affects the initial dial, and does not do // anything useful unless you are also using WithBlock(). // +// Use of this feature is not recommended. For more information, please see: +// https://github.com/grpc/grpc-go/blob/master/Documentation/anti-patterns.md +// // # Experimental // // Notice: This API is EXPERIMENTAL and may be changed or removed in a @@ -607,6 +643,7 @@ func defaultDialOptions() dialOptions { ReadBufferSize: defaultReadBufSize, UseProxy: true, }, + recvBufferPool: nopBufferPool{}, } } @@ -635,3 +672,44 @@ func WithResolvers(rs ...resolver.Builder) DialOption { o.resolvers = append(o.resolvers, rs...) }) } + +// WithIdleTimeout returns a DialOption that configures an idle timeout for the +// channel. If the channel is idle for the configured timeout, i.e there are no +// ongoing RPCs and no new RPCs are initiated, the channel will enter idle mode +// and as a result the name resolver and load balancer will be shut down. The +// channel will exit idle mode when the Connect() method is called or when an +// RPC is initiated. +// +// By default this feature is disabled, which can also be explicitly configured +// by passing zero to this function. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func WithIdleTimeout(d time.Duration) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.idleTimeout = d + }) +} + +// WithRecvBufferPool returns a DialOption that configures the ClientConn +// to use the provided shared buffer pool for parsing incoming messages. Depending +// on the application's workload, this could result in reduced memory allocation. +// +// If you are unsure about how to implement a memory pool but want to utilize one, +// begin with grpc.NewSharedBufferPool. +// +// Note: The shared buffer pool feature will not be active if any of the following +// options are used: WithStatsHandler, EnableTracing, or binary logging. In such +// cases, the shared buffer pool will be ignored. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func WithRecvBufferPool(bufferPool SharedBufferPool) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.recvBufferPool = bufferPool + }) +} diff --git a/vendor/google.golang.org/grpc/encoding/encoding.go b/vendor/google.golang.org/grpc/encoding/encoding.go index 07a5861352a6..69d5580b6adf 100644 --- a/vendor/google.golang.org/grpc/encoding/encoding.go +++ b/vendor/google.golang.org/grpc/encoding/encoding.go @@ -90,9 +90,9 @@ func GetCompressor(name string) Compressor { // methods can be called from concurrent goroutines. type Codec interface { // Marshal returns the wire format of v. - Marshal(v interface{}) ([]byte, error) + Marshal(v any) ([]byte, error) // Unmarshal parses the wire format into v. - Unmarshal(data []byte, v interface{}) error + Unmarshal(data []byte, v any) error // Name returns the name of the Codec implementation. The returned string // will be used as part of content type in transmission. The result must be // static; the result cannot change between calls. diff --git a/vendor/google.golang.org/grpc/encoding/proto/proto.go b/vendor/google.golang.org/grpc/encoding/proto/proto.go index 3009b35afe7d..0ee3d3bae973 100644 --- a/vendor/google.golang.org/grpc/encoding/proto/proto.go +++ b/vendor/google.golang.org/grpc/encoding/proto/proto.go @@ -37,7 +37,7 @@ func init() { // codec is a Codec implementation with protobuf. It is the default codec for gRPC. type codec struct{} -func (codec) Marshal(v interface{}) ([]byte, error) { +func (codec) Marshal(v any) ([]byte, error) { vv, ok := v.(proto.Message) if !ok { return nil, fmt.Errorf("failed to marshal, message is %T, want proto.Message", v) @@ -45,7 +45,7 @@ func (codec) Marshal(v interface{}) ([]byte, error) { return proto.Marshal(vv) } -func (codec) Unmarshal(data []byte, v interface{}) error { +func (codec) Unmarshal(data []byte, v any) error { vv, ok := v.(proto.Message) if !ok { return fmt.Errorf("failed to unmarshal, message is %T, want proto.Message", v) diff --git a/vendor/google.golang.org/grpc/grpclog/component.go b/vendor/google.golang.org/grpc/grpclog/component.go index 8358dd6e2abb..ac73c9ced255 100644 --- a/vendor/google.golang.org/grpc/grpclog/component.go +++ b/vendor/google.golang.org/grpc/grpclog/component.go @@ -31,71 +31,71 @@ type componentData struct { var cache = map[string]*componentData{} -func (c *componentData) InfoDepth(depth int, args ...interface{}) { - args = append([]interface{}{"[" + string(c.name) + "]"}, args...) +func (c *componentData) InfoDepth(depth int, args ...any) { + args = append([]any{"[" + string(c.name) + "]"}, args...) grpclog.InfoDepth(depth+1, args...) } -func (c *componentData) WarningDepth(depth int, args ...interface{}) { - args = append([]interface{}{"[" + string(c.name) + "]"}, args...) +func (c *componentData) WarningDepth(depth int, args ...any) { + args = append([]any{"[" + string(c.name) + "]"}, args...) grpclog.WarningDepth(depth+1, args...) } -func (c *componentData) ErrorDepth(depth int, args ...interface{}) { - args = append([]interface{}{"[" + string(c.name) + "]"}, args...) +func (c *componentData) ErrorDepth(depth int, args ...any) { + args = append([]any{"[" + string(c.name) + "]"}, args...) grpclog.ErrorDepth(depth+1, args...) } -func (c *componentData) FatalDepth(depth int, args ...interface{}) { - args = append([]interface{}{"[" + string(c.name) + "]"}, args...) +func (c *componentData) FatalDepth(depth int, args ...any) { + args = append([]any{"[" + string(c.name) + "]"}, args...) grpclog.FatalDepth(depth+1, args...) } -func (c *componentData) Info(args ...interface{}) { +func (c *componentData) Info(args ...any) { c.InfoDepth(1, args...) } -func (c *componentData) Warning(args ...interface{}) { +func (c *componentData) Warning(args ...any) { c.WarningDepth(1, args...) } -func (c *componentData) Error(args ...interface{}) { +func (c *componentData) Error(args ...any) { c.ErrorDepth(1, args...) } -func (c *componentData) Fatal(args ...interface{}) { +func (c *componentData) Fatal(args ...any) { c.FatalDepth(1, args...) } -func (c *componentData) Infof(format string, args ...interface{}) { +func (c *componentData) Infof(format string, args ...any) { c.InfoDepth(1, fmt.Sprintf(format, args...)) } -func (c *componentData) Warningf(format string, args ...interface{}) { +func (c *componentData) Warningf(format string, args ...any) { c.WarningDepth(1, fmt.Sprintf(format, args...)) } -func (c *componentData) Errorf(format string, args ...interface{}) { +func (c *componentData) Errorf(format string, args ...any) { c.ErrorDepth(1, fmt.Sprintf(format, args...)) } -func (c *componentData) Fatalf(format string, args ...interface{}) { +func (c *componentData) Fatalf(format string, args ...any) { c.FatalDepth(1, fmt.Sprintf(format, args...)) } -func (c *componentData) Infoln(args ...interface{}) { +func (c *componentData) Infoln(args ...any) { c.InfoDepth(1, args...) } -func (c *componentData) Warningln(args ...interface{}) { +func (c *componentData) Warningln(args ...any) { c.WarningDepth(1, args...) } -func (c *componentData) Errorln(args ...interface{}) { +func (c *componentData) Errorln(args ...any) { c.ErrorDepth(1, args...) } -func (c *componentData) Fatalln(args ...interface{}) { +func (c *componentData) Fatalln(args ...any) { c.FatalDepth(1, args...) } diff --git a/vendor/google.golang.org/grpc/grpclog/grpclog.go b/vendor/google.golang.org/grpc/grpclog/grpclog.go index c8bb2be34bf5..16928c9cb993 100644 --- a/vendor/google.golang.org/grpc/grpclog/grpclog.go +++ b/vendor/google.golang.org/grpc/grpclog/grpclog.go @@ -42,53 +42,53 @@ func V(l int) bool { } // Info logs to the INFO log. -func Info(args ...interface{}) { +func Info(args ...any) { grpclog.Logger.Info(args...) } // Infof logs to the INFO log. Arguments are handled in the manner of fmt.Printf. -func Infof(format string, args ...interface{}) { +func Infof(format string, args ...any) { grpclog.Logger.Infof(format, args...) } // Infoln logs to the INFO log. Arguments are handled in the manner of fmt.Println. -func Infoln(args ...interface{}) { +func Infoln(args ...any) { grpclog.Logger.Infoln(args...) } // Warning logs to the WARNING log. -func Warning(args ...interface{}) { +func Warning(args ...any) { grpclog.Logger.Warning(args...) } // Warningf logs to the WARNING log. Arguments are handled in the manner of fmt.Printf. -func Warningf(format string, args ...interface{}) { +func Warningf(format string, args ...any) { grpclog.Logger.Warningf(format, args...) } // Warningln logs to the WARNING log. Arguments are handled in the manner of fmt.Println. -func Warningln(args ...interface{}) { +func Warningln(args ...any) { grpclog.Logger.Warningln(args...) } // Error logs to the ERROR log. -func Error(args ...interface{}) { +func Error(args ...any) { grpclog.Logger.Error(args...) } // Errorf logs to the ERROR log. Arguments are handled in the manner of fmt.Printf. -func Errorf(format string, args ...interface{}) { +func Errorf(format string, args ...any) { grpclog.Logger.Errorf(format, args...) } // Errorln logs to the ERROR log. Arguments are handled in the manner of fmt.Println. -func Errorln(args ...interface{}) { +func Errorln(args ...any) { grpclog.Logger.Errorln(args...) } // Fatal logs to the FATAL log. Arguments are handled in the manner of fmt.Print. // It calls os.Exit() with exit code 1. -func Fatal(args ...interface{}) { +func Fatal(args ...any) { grpclog.Logger.Fatal(args...) // Make sure fatal logs will exit. os.Exit(1) @@ -96,7 +96,7 @@ func Fatal(args ...interface{}) { // Fatalf logs to the FATAL log. Arguments are handled in the manner of fmt.Printf. // It calls os.Exit() with exit code 1. -func Fatalf(format string, args ...interface{}) { +func Fatalf(format string, args ...any) { grpclog.Logger.Fatalf(format, args...) // Make sure fatal logs will exit. os.Exit(1) @@ -104,7 +104,7 @@ func Fatalf(format string, args ...interface{}) { // Fatalln logs to the FATAL log. Arguments are handled in the manner of fmt.Println. // It calle os.Exit()) with exit code 1. -func Fatalln(args ...interface{}) { +func Fatalln(args ...any) { grpclog.Logger.Fatalln(args...) // Make sure fatal logs will exit. os.Exit(1) @@ -113,20 +113,20 @@ func Fatalln(args ...interface{}) { // Print prints to the logger. Arguments are handled in the manner of fmt.Print. // // Deprecated: use Info. -func Print(args ...interface{}) { +func Print(args ...any) { grpclog.Logger.Info(args...) } // Printf prints to the logger. Arguments are handled in the manner of fmt.Printf. // // Deprecated: use Infof. -func Printf(format string, args ...interface{}) { +func Printf(format string, args ...any) { grpclog.Logger.Infof(format, args...) } // Println prints to the logger. Arguments are handled in the manner of fmt.Println. // // Deprecated: use Infoln. -func Println(args ...interface{}) { +func Println(args ...any) { grpclog.Logger.Infoln(args...) } diff --git a/vendor/google.golang.org/grpc/grpclog/logger.go b/vendor/google.golang.org/grpc/grpclog/logger.go index ef06a4822b70..b1674d8267ca 100644 --- a/vendor/google.golang.org/grpc/grpclog/logger.go +++ b/vendor/google.golang.org/grpc/grpclog/logger.go @@ -24,12 +24,12 @@ import "google.golang.org/grpc/internal/grpclog" // // Deprecated: use LoggerV2. type Logger interface { - Fatal(args ...interface{}) - Fatalf(format string, args ...interface{}) - Fatalln(args ...interface{}) - Print(args ...interface{}) - Printf(format string, args ...interface{}) - Println(args ...interface{}) + Fatal(args ...any) + Fatalf(format string, args ...any) + Fatalln(args ...any) + Print(args ...any) + Printf(format string, args ...any) + Println(args ...any) } // SetLogger sets the logger that is used in grpc. Call only from @@ -45,39 +45,39 @@ type loggerWrapper struct { Logger } -func (g *loggerWrapper) Info(args ...interface{}) { +func (g *loggerWrapper) Info(args ...any) { g.Logger.Print(args...) } -func (g *loggerWrapper) Infoln(args ...interface{}) { +func (g *loggerWrapper) Infoln(args ...any) { g.Logger.Println(args...) } -func (g *loggerWrapper) Infof(format string, args ...interface{}) { +func (g *loggerWrapper) Infof(format string, args ...any) { g.Logger.Printf(format, args...) } -func (g *loggerWrapper) Warning(args ...interface{}) { +func (g *loggerWrapper) Warning(args ...any) { g.Logger.Print(args...) } -func (g *loggerWrapper) Warningln(args ...interface{}) { +func (g *loggerWrapper) Warningln(args ...any) { g.Logger.Println(args...) } -func (g *loggerWrapper) Warningf(format string, args ...interface{}) { +func (g *loggerWrapper) Warningf(format string, args ...any) { g.Logger.Printf(format, args...) } -func (g *loggerWrapper) Error(args ...interface{}) { +func (g *loggerWrapper) Error(args ...any) { g.Logger.Print(args...) } -func (g *loggerWrapper) Errorln(args ...interface{}) { +func (g *loggerWrapper) Errorln(args ...any) { g.Logger.Println(args...) } -func (g *loggerWrapper) Errorf(format string, args ...interface{}) { +func (g *loggerWrapper) Errorf(format string, args ...any) { g.Logger.Printf(format, args...) } diff --git a/vendor/google.golang.org/grpc/grpclog/loggerv2.go b/vendor/google.golang.org/grpc/grpclog/loggerv2.go index 5de66e40d365..ecfd36d71303 100644 --- a/vendor/google.golang.org/grpc/grpclog/loggerv2.go +++ b/vendor/google.golang.org/grpc/grpclog/loggerv2.go @@ -33,35 +33,35 @@ import ( // LoggerV2 does underlying logging work for grpclog. type LoggerV2 interface { // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. - Info(args ...interface{}) + Info(args ...any) // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. - Infoln(args ...interface{}) + Infoln(args ...any) // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. - Infof(format string, args ...interface{}) + Infof(format string, args ...any) // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. - Warning(args ...interface{}) + Warning(args ...any) // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. - Warningln(args ...interface{}) + Warningln(args ...any) // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. - Warningf(format string, args ...interface{}) + Warningf(format string, args ...any) // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. - Error(args ...interface{}) + Error(args ...any) // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. - Errorln(args ...interface{}) + Errorln(args ...any) // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. - Errorf(format string, args ...interface{}) + Errorf(format string, args ...any) // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. // gRPC ensures that all Fatal logs will exit with os.Exit(1). // Implementations may also call os.Exit() with a non-zero exit code. - Fatal(args ...interface{}) + Fatal(args ...any) // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. // gRPC ensures that all Fatal logs will exit with os.Exit(1). // Implementations may also call os.Exit() with a non-zero exit code. - Fatalln(args ...interface{}) + Fatalln(args ...any) // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. // gRPC ensures that all Fatal logs will exit with os.Exit(1). // Implementations may also call os.Exit() with a non-zero exit code. - Fatalf(format string, args ...interface{}) + Fatalf(format string, args ...any) // V reports whether verbosity level l is at least the requested verbose level. V(l int) bool } @@ -182,53 +182,53 @@ func (g *loggerT) output(severity int, s string) { g.m[severity].Output(2, string(b)) } -func (g *loggerT) Info(args ...interface{}) { +func (g *loggerT) Info(args ...any) { g.output(infoLog, fmt.Sprint(args...)) } -func (g *loggerT) Infoln(args ...interface{}) { +func (g *loggerT) Infoln(args ...any) { g.output(infoLog, fmt.Sprintln(args...)) } -func (g *loggerT) Infof(format string, args ...interface{}) { +func (g *loggerT) Infof(format string, args ...any) { g.output(infoLog, fmt.Sprintf(format, args...)) } -func (g *loggerT) Warning(args ...interface{}) { +func (g *loggerT) Warning(args ...any) { g.output(warningLog, fmt.Sprint(args...)) } -func (g *loggerT) Warningln(args ...interface{}) { +func (g *loggerT) Warningln(args ...any) { g.output(warningLog, fmt.Sprintln(args...)) } -func (g *loggerT) Warningf(format string, args ...interface{}) { +func (g *loggerT) Warningf(format string, args ...any) { g.output(warningLog, fmt.Sprintf(format, args...)) } -func (g *loggerT) Error(args ...interface{}) { +func (g *loggerT) Error(args ...any) { g.output(errorLog, fmt.Sprint(args...)) } -func (g *loggerT) Errorln(args ...interface{}) { +func (g *loggerT) Errorln(args ...any) { g.output(errorLog, fmt.Sprintln(args...)) } -func (g *loggerT) Errorf(format string, args ...interface{}) { +func (g *loggerT) Errorf(format string, args ...any) { g.output(errorLog, fmt.Sprintf(format, args...)) } -func (g *loggerT) Fatal(args ...interface{}) { +func (g *loggerT) Fatal(args ...any) { g.output(fatalLog, fmt.Sprint(args...)) os.Exit(1) } -func (g *loggerT) Fatalln(args ...interface{}) { +func (g *loggerT) Fatalln(args ...any) { g.output(fatalLog, fmt.Sprintln(args...)) os.Exit(1) } -func (g *loggerT) Fatalf(format string, args ...interface{}) { +func (g *loggerT) Fatalf(format string, args ...any) { g.output(fatalLog, fmt.Sprintf(format, args...)) os.Exit(1) } @@ -248,11 +248,11 @@ func (g *loggerT) V(l int) bool { type DepthLoggerV2 interface { LoggerV2 // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. - InfoDepth(depth int, args ...interface{}) + InfoDepth(depth int, args ...any) // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. - WarningDepth(depth int, args ...interface{}) + WarningDepth(depth int, args ...any) // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. - ErrorDepth(depth int, args ...interface{}) + ErrorDepth(depth int, args ...any) // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. - FatalDepth(depth int, args ...interface{}) + FatalDepth(depth int, args ...any) } diff --git a/vendor/google.golang.org/grpc/health/client.go b/vendor/google.golang.org/grpc/health/client.go index b5bee4838024..740745c45f63 100644 --- a/vendor/google.golang.org/grpc/health/client.go +++ b/vendor/google.golang.org/grpc/health/client.go @@ -56,7 +56,7 @@ const healthCheckMethod = "/grpc.health.v1.Health/Watch" // This function implements the protocol defined at: // https://github.com/grpc/grpc/blob/master/doc/health-checking.md -func clientHealthCheck(ctx context.Context, newStream func(string) (interface{}, error), setConnectivityState func(connectivity.State, error), service string) error { +func clientHealthCheck(ctx context.Context, newStream func(string) (any, error), setConnectivityState func(connectivity.State, error), service string) error { tryCnt := 0 retryConnection: diff --git a/vendor/google.golang.org/grpc/health/grpc_health_v1/health.pb.go b/vendor/google.golang.org/grpc/health/grpc_health_v1/health.pb.go index 8e29a62f164f..24299efd63f7 100644 --- a/vendor/google.golang.org/grpc/health/grpc_health_v1/health.pb.go +++ b/vendor/google.golang.org/grpc/health/grpc_health_v1/health.pb.go @@ -17,8 +17,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.14.0 +// protoc-gen-go v1.31.0 +// protoc v4.22.0 // source: grpc/health/v1/health.proto package grpc_health_v1 diff --git a/vendor/google.golang.org/grpc/health/grpc_health_v1/health_grpc.pb.go b/vendor/google.golang.org/grpc/health/grpc_health_v1/health_grpc.pb.go index a332dfd7b54e..a01a1b4d54bd 100644 --- a/vendor/google.golang.org/grpc/health/grpc_health_v1/health_grpc.pb.go +++ b/vendor/google.golang.org/grpc/health/grpc_health_v1/health_grpc.pb.go @@ -17,8 +17,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.14.0 +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.22.0 // source: grpc/health/v1/health.proto package grpc_health_v1 @@ -35,6 +35,11 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + Health_Check_FullMethodName = "/grpc.health.v1.Health/Check" + Health_Watch_FullMethodName = "/grpc.health.v1.Health/Watch" +) + // HealthClient is the client API for Health service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -70,7 +75,7 @@ func NewHealthClient(cc grpc.ClientConnInterface) HealthClient { func (c *healthClient) Check(ctx context.Context, in *HealthCheckRequest, opts ...grpc.CallOption) (*HealthCheckResponse, error) { out := new(HealthCheckResponse) - err := c.cc.Invoke(ctx, "/grpc.health.v1.Health/Check", in, out, opts...) + err := c.cc.Invoke(ctx, Health_Check_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -78,7 +83,7 @@ func (c *healthClient) Check(ctx context.Context, in *HealthCheckRequest, opts . } func (c *healthClient) Watch(ctx context.Context, in *HealthCheckRequest, opts ...grpc.CallOption) (Health_WatchClient, error) { - stream, err := c.cc.NewStream(ctx, &Health_ServiceDesc.Streams[0], "/grpc.health.v1.Health/Watch", opts...) + stream, err := c.cc.NewStream(ctx, &Health_ServiceDesc.Streams[0], Health_Watch_FullMethodName, opts...) if err != nil { return nil, err } @@ -166,7 +171,7 @@ func _Health_Check_Handler(srv interface{}, ctx context.Context, dec func(interf } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/grpc.health.v1.Health/Check", + FullMethod: Health_Check_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HealthServer).Check(ctx, req.(*HealthCheckRequest)) diff --git a/vendor/google.golang.org/grpc/interceptor.go b/vendor/google.golang.org/grpc/interceptor.go index bb96ef57be89..877d78fc3d00 100644 --- a/vendor/google.golang.org/grpc/interceptor.go +++ b/vendor/google.golang.org/grpc/interceptor.go @@ -23,7 +23,7 @@ import ( ) // UnaryInvoker is called by UnaryClientInterceptor to complete RPCs. -type UnaryInvoker func(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, opts ...CallOption) error +type UnaryInvoker func(ctx context.Context, method string, req, reply any, cc *ClientConn, opts ...CallOption) error // UnaryClientInterceptor intercepts the execution of a unary RPC on the client. // Unary interceptors can be specified as a DialOption, using @@ -40,7 +40,7 @@ type UnaryInvoker func(ctx context.Context, method string, req, reply interface{ // defaults from the ClientConn as well as per-call options. // // The returned error must be compatible with the status package. -type UnaryClientInterceptor func(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, invoker UnaryInvoker, opts ...CallOption) error +type UnaryClientInterceptor func(ctx context.Context, method string, req, reply any, cc *ClientConn, invoker UnaryInvoker, opts ...CallOption) error // Streamer is called by StreamClientInterceptor to create a ClientStream. type Streamer func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (ClientStream, error) @@ -66,7 +66,7 @@ type StreamClientInterceptor func(ctx context.Context, desc *StreamDesc, cc *Cli // server side. All per-rpc information may be mutated by the interceptor. type UnaryServerInfo struct { // Server is the service implementation the user provides. This is read-only. - Server interface{} + Server any // FullMethod is the full RPC method string, i.e., /package.service/method. FullMethod string } @@ -78,13 +78,13 @@ type UnaryServerInfo struct { // status package, or be one of the context errors. Otherwise, gRPC will use // codes.Unknown as the status code and err.Error() as the status message of the // RPC. -type UnaryHandler func(ctx context.Context, req interface{}) (interface{}, error) +type UnaryHandler func(ctx context.Context, req any) (any, error) // UnaryServerInterceptor provides a hook to intercept the execution of a unary RPC on the server. info // contains all the information of this RPC the interceptor can operate on. And handler is the wrapper // of the service method implementation. It is the responsibility of the interceptor to invoke handler // to complete the RPC. -type UnaryServerInterceptor func(ctx context.Context, req interface{}, info *UnaryServerInfo, handler UnaryHandler) (resp interface{}, err error) +type UnaryServerInterceptor func(ctx context.Context, req any, info *UnaryServerInfo, handler UnaryHandler) (resp any, err error) // StreamServerInfo consists of various information about a streaming RPC on // server side. All per-rpc information may be mutated by the interceptor. @@ -101,4 +101,4 @@ type StreamServerInfo struct { // info contains all the information of this RPC the interceptor can operate on. And handler is the // service method implementation. It is the responsibility of the interceptor to invoke handler to // complete the RPC. -type StreamServerInterceptor func(srv interface{}, ss ServerStream, info *StreamServerInfo, handler StreamHandler) error +type StreamServerInterceptor func(srv any, ss ServerStream, info *StreamServerInfo, handler StreamHandler) error diff --git a/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go b/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go index 08666f62a7cb..3c594e6e4e55 100644 --- a/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go +++ b/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go @@ -200,8 +200,8 @@ func (gsb *Balancer) ExitIdle() { } } -// UpdateSubConnState forwards the update to the appropriate child. -func (gsb *Balancer) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) { +// updateSubConnState forwards the update to the appropriate child. +func (gsb *Balancer) updateSubConnState(sc balancer.SubConn, state balancer.SubConnState, cb func(balancer.SubConnState)) { gsb.currentMu.Lock() defer gsb.currentMu.Unlock() gsb.mu.Lock() @@ -214,13 +214,26 @@ func (gsb *Balancer) UpdateSubConnState(sc balancer.SubConn, state balancer.SubC } else if gsb.balancerPending != nil && gsb.balancerPending.subconns[sc] { balToUpdate = gsb.balancerPending } - gsb.mu.Unlock() if balToUpdate == nil { // SubConn belonged to a stale lb policy that has not yet fully closed, // or the balancer was already closed. + gsb.mu.Unlock() return } - balToUpdate.UpdateSubConnState(sc, state) + if state.ConnectivityState == connectivity.Shutdown { + delete(balToUpdate.subconns, sc) + } + gsb.mu.Unlock() + if cb != nil { + cb(state) + } else { + balToUpdate.UpdateSubConnState(sc, state) + } +} + +// UpdateSubConnState forwards the update to the appropriate child. +func (gsb *Balancer) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) { + gsb.updateSubConnState(sc, state, nil) } // Close closes any active child balancers. @@ -242,7 +255,7 @@ func (gsb *Balancer) Close() { // // It implements the balancer.ClientConn interface and is passed down in that // capacity to the wrapped balancer. It maintains a set of subConns created by -// the wrapped balancer and calls from the latter to create/update/remove +// the wrapped balancer and calls from the latter to create/update/shutdown // SubConns update this set before being forwarded to the parent ClientConn. // State updates from the wrapped balancer can result in invocation of the // graceful switch logic. @@ -254,21 +267,10 @@ type balancerWrapper struct { subconns map[balancer.SubConn]bool // subconns created by this balancer } -func (bw *balancerWrapper) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) { - if state.ConnectivityState == connectivity.Shutdown { - bw.gsb.mu.Lock() - delete(bw.subconns, sc) - bw.gsb.mu.Unlock() - } - // There is no need to protect this read with a mutex, as the write to the - // Balancer field happens in SwitchTo, which completes before this can be - // called. - bw.Balancer.UpdateSubConnState(sc, state) -} - -// Close closes the underlying LB policy and removes the subconns it created. bw -// must not be referenced via balancerCurrent or balancerPending in gsb when -// called. gsb.mu must not be held. Does not panic with a nil receiver. +// Close closes the underlying LB policy and shuts down the subconns it +// created. bw must not be referenced via balancerCurrent or balancerPending in +// gsb when called. gsb.mu must not be held. Does not panic with a nil +// receiver. func (bw *balancerWrapper) Close() { // before Close is called. if bw == nil { @@ -281,7 +283,7 @@ func (bw *balancerWrapper) Close() { bw.Balancer.Close() bw.gsb.mu.Lock() for sc := range bw.subconns { - bw.gsb.cc.RemoveSubConn(sc) + sc.Shutdown() } bw.gsb.mu.Unlock() } @@ -335,13 +337,16 @@ func (bw *balancerWrapper) NewSubConn(addrs []resolver.Address, opts balancer.Ne } bw.gsb.mu.Unlock() + var sc balancer.SubConn + oldListener := opts.StateListener + opts.StateListener = func(state balancer.SubConnState) { bw.gsb.updateSubConnState(sc, state, oldListener) } sc, err := bw.gsb.cc.NewSubConn(addrs, opts) if err != nil { return nil, err } bw.gsb.mu.Lock() if !bw.gsb.balancerCurrentOrPending(bw) { // balancer was closed during this call - bw.gsb.cc.RemoveSubConn(sc) + sc.Shutdown() bw.gsb.mu.Unlock() return nil, fmt.Errorf("%T at address %p that called NewSubConn is deleted", bw, bw) } @@ -360,13 +365,9 @@ func (bw *balancerWrapper) ResolveNow(opts resolver.ResolveNowOptions) { } func (bw *balancerWrapper) RemoveSubConn(sc balancer.SubConn) { - bw.gsb.mu.Lock() - if !bw.gsb.balancerCurrentOrPending(bw) { - bw.gsb.mu.Unlock() - return - } - bw.gsb.mu.Unlock() - bw.gsb.cc.RemoveSubConn(sc) + // Note: existing third party balancers may call this, so it must remain + // until RemoveSubConn is fully removed. + sc.Shutdown() } func (bw *balancerWrapper) UpdateAddresses(sc balancer.SubConn, addrs []resolver.Address) { diff --git a/vendor/google.golang.org/grpc/internal/balancerload/load.go b/vendor/google.golang.org/grpc/internal/balancerload/load.go index 3a905d96657e..94a08d6875a9 100644 --- a/vendor/google.golang.org/grpc/internal/balancerload/load.go +++ b/vendor/google.golang.org/grpc/internal/balancerload/load.go @@ -25,7 +25,7 @@ import ( // Parser converts loads from metadata into a concrete type. type Parser interface { // Parse parses loads from metadata. - Parse(md metadata.MD) interface{} + Parse(md metadata.MD) any } var parser Parser @@ -38,7 +38,7 @@ func SetParser(lr Parser) { } // Parse calls parser.Read(). -func Parse(md metadata.MD) interface{} { +func Parse(md metadata.MD) any { if parser == nil { return nil } diff --git a/vendor/google.golang.org/grpc/internal/binarylog/binarylog.go b/vendor/google.golang.org/grpc/internal/binarylog/binarylog.go index 809d73ccafb0..755fdebc1b15 100644 --- a/vendor/google.golang.org/grpc/internal/binarylog/binarylog.go +++ b/vendor/google.golang.org/grpc/internal/binarylog/binarylog.go @@ -28,8 +28,13 @@ import ( "google.golang.org/grpc/internal/grpcutil" ) -// Logger is the global binary logger. It can be used to get binary logger for -// each method. +var grpclogLogger = grpclog.Component("binarylog") + +// Logger specifies MethodLoggers for method names with a Log call that +// takes a context. +// +// This is used in the 1.0 release of gcp/observability, and thus must not be +// deleted or changed. type Logger interface { GetMethodLogger(methodName string) MethodLogger } @@ -40,8 +45,6 @@ type Logger interface { // It is used to get a MethodLogger for each individual method. var binLogger Logger -var grpclogLogger = grpclog.Component("binarylog") - // SetLogger sets the binary logger. // // Only call this at init time. diff --git a/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go b/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go index d71e441778f4..0f31274a3ccc 100644 --- a/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go +++ b/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go @@ -19,6 +19,7 @@ package binarylog import ( + "context" "net" "strings" "sync/atomic" @@ -48,8 +49,11 @@ func (g *callIDGenerator) reset() { var idGen callIDGenerator // MethodLogger is the sub-logger for each method. +// +// This is used in the 1.0 release of gcp/observability, and thus must not be +// deleted or changed. type MethodLogger interface { - Log(LogEntryConfig) + Log(context.Context, LogEntryConfig) } // TruncatingMethodLogger is a method logger that truncates headers and messages @@ -64,6 +68,9 @@ type TruncatingMethodLogger struct { } // NewTruncatingMethodLogger returns a new truncating method logger. +// +// This is used in the 1.0 release of gcp/observability, and thus must not be +// deleted or changed. func NewTruncatingMethodLogger(h, m uint64) *TruncatingMethodLogger { return &TruncatingMethodLogger{ headerMaxLen: h, @@ -98,7 +105,7 @@ func (ml *TruncatingMethodLogger) Build(c LogEntryConfig) *binlogpb.GrpcLogEntry } // Log creates a proto binary log entry, and logs it to the sink. -func (ml *TruncatingMethodLogger) Log(c LogEntryConfig) { +func (ml *TruncatingMethodLogger) Log(ctx context.Context, c LogEntryConfig) { ml.sink.Write(ml.Build(c)) } @@ -144,6 +151,9 @@ func (ml *TruncatingMethodLogger) truncateMessage(msgPb *binlogpb.Message) (trun } // LogEntryConfig represents the configuration for binary log entry. +// +// This is used in the 1.0 release of gcp/observability, and thus must not be +// deleted or changed. type LogEntryConfig interface { toProto() *binlogpb.GrpcLogEntry } @@ -220,7 +230,7 @@ type ClientMessage struct { OnClientSide bool // Message can be a proto.Message or []byte. Other messages formats are not // supported. - Message interface{} + Message any } func (c *ClientMessage) toProto() *binlogpb.GrpcLogEntry { @@ -260,7 +270,7 @@ type ServerMessage struct { OnClientSide bool // Message can be a proto.Message or []byte. Other messages formats are not // supported. - Message interface{} + Message any } func (c *ServerMessage) toProto() *binlogpb.GrpcLogEntry { diff --git a/vendor/google.golang.org/grpc/internal/buffer/unbounded.go b/vendor/google.golang.org/grpc/internal/buffer/unbounded.go index 9f6a0c1200db..4399c3df4959 100644 --- a/vendor/google.golang.org/grpc/internal/buffer/unbounded.go +++ b/vendor/google.golang.org/grpc/internal/buffer/unbounded.go @@ -28,35 +28,38 @@ import "sync" // the underlying mutex used for synchronization. // // Unbounded supports values of any type to be stored in it by using a channel -// of `interface{}`. This means that a call to Put() incurs an extra memory -// allocation, and also that users need a type assertion while reading. For -// performance critical code paths, using Unbounded is strongly discouraged and -// defining a new type specific implementation of this buffer is preferred. See +// of `any`. This means that a call to Put() incurs an extra memory allocation, +// and also that users need a type assertion while reading. For performance +// critical code paths, using Unbounded is strongly discouraged and defining a +// new type specific implementation of this buffer is preferred. See // internal/transport/transport.go for an example of this. type Unbounded struct { - c chan interface{} + c chan any + closed bool mu sync.Mutex - backlog []interface{} + backlog []any } // NewUnbounded returns a new instance of Unbounded. func NewUnbounded() *Unbounded { - return &Unbounded{c: make(chan interface{}, 1)} + return &Unbounded{c: make(chan any, 1)} } // Put adds t to the unbounded buffer. -func (b *Unbounded) Put(t interface{}) { +func (b *Unbounded) Put(t any) { b.mu.Lock() + defer b.mu.Unlock() + if b.closed { + return + } if len(b.backlog) == 0 { select { case b.c <- t: - b.mu.Unlock() return default: } } b.backlog = append(b.backlog, t) - b.mu.Unlock() } // Load sends the earliest buffered data, if any, onto the read channel @@ -64,6 +67,10 @@ func (b *Unbounded) Put(t interface{}) { // value from the read channel. func (b *Unbounded) Load() { b.mu.Lock() + defer b.mu.Unlock() + if b.closed { + return + } if len(b.backlog) > 0 { select { case b.c <- b.backlog[0]: @@ -72,7 +79,6 @@ func (b *Unbounded) Load() { default: } } - b.mu.Unlock() } // Get returns a read channel on which values added to the buffer, via Put(), @@ -80,6 +86,20 @@ func (b *Unbounded) Load() { // // Upon reading a value from this channel, users are expected to call Load() to // send the next buffered value onto the channel if there is any. -func (b *Unbounded) Get() <-chan interface{} { +// +// If the unbounded buffer is closed, the read channel returned by this method +// is closed. +func (b *Unbounded) Get() <-chan any { return b.c } + +// Close closes the unbounded buffer. +func (b *Unbounded) Close() { + b.mu.Lock() + defer b.mu.Unlock() + if b.closed { + return + } + b.closed = true + close(b.c) +} diff --git a/vendor/google.golang.org/grpc/internal/channelz/funcs.go b/vendor/google.golang.org/grpc/internal/channelz/funcs.go index 777cbcd7921d..5395e77529cd 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/funcs.go +++ b/vendor/google.golang.org/grpc/internal/channelz/funcs.go @@ -24,9 +24,7 @@ package channelz import ( - "context" "errors" - "fmt" "sort" "sync" "sync/atomic" @@ -40,8 +38,11 @@ const ( ) var ( - db dbWrapper - idGen idGenerator + // IDGen is the global channelz entity ID generator. It should not be used + // outside this package except by tests. + IDGen IDGenerator + + db dbWrapper // EntryPerPage defines the number of channelz entries to be shown on a web page. EntryPerPage = int64(50) curState int32 @@ -52,14 +53,14 @@ var ( func TurnOn() { if !IsOn() { db.set(newChannelMap()) - idGen.reset() + IDGen.Reset() atomic.StoreInt32(&curState, 1) } } // IsOn returns whether channelz data collection is on. func IsOn() bool { - return atomic.CompareAndSwapInt32(&curState, 1, 1) + return atomic.LoadInt32(&curState) == 1 } // SetMaxTraceEntry sets maximum number of trace entry per entity (i.e. channel/subchannel). @@ -97,43 +98,6 @@ func (d *dbWrapper) get() *channelMap { return d.DB } -// NewChannelzStorageForTesting initializes channelz data storage and id -// generator for testing purposes. -// -// Returns a cleanup function to be invoked by the test, which waits for up to -// 10s for all channelz state to be reset by the grpc goroutines when those -// entities get closed. This cleanup function helps with ensuring that tests -// don't mess up each other. -func NewChannelzStorageForTesting() (cleanup func() error) { - db.set(newChannelMap()) - idGen.reset() - - return func() error { - cm := db.get() - if cm == nil { - return nil - } - - ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) - defer cancel() - ticker := time.NewTicker(10 * time.Millisecond) - defer ticker.Stop() - for { - cm.mu.RLock() - topLevelChannels, servers, channels, subChannels, listenSockets, normalSockets := len(cm.topLevelChannels), len(cm.servers), len(cm.channels), len(cm.subChannels), len(cm.listenSockets), len(cm.normalSockets) - cm.mu.RUnlock() - - if err := ctx.Err(); err != nil { - return fmt.Errorf("after 10s the channelz map has not been cleaned up yet, topchannels: %d, servers: %d, channels: %d, subchannels: %d, listen sockets: %d, normal sockets: %d", topLevelChannels, servers, channels, subChannels, listenSockets, normalSockets) - } - if topLevelChannels == 0 && servers == 0 && channels == 0 && subChannels == 0 && listenSockets == 0 && normalSockets == 0 { - return nil - } - <-ticker.C - } - } -} - // GetTopChannels returns a slice of top channel's ChannelMetric, along with a // boolean indicating whether there's more top channels to be queried for. // @@ -193,7 +157,7 @@ func GetServer(id int64) *ServerMetric { // // If channelz is not turned ON, the channelz database is not mutated. func RegisterChannel(c Channel, pid *Identifier, ref string) *Identifier { - id := idGen.genID() + id := IDGen.genID() var parent int64 isTopChannel := true if pid != nil { @@ -229,7 +193,7 @@ func RegisterSubChannel(c Channel, pid *Identifier, ref string) (*Identifier, er if pid == nil { return nil, errors.New("a SubChannel's parent id cannot be nil") } - id := idGen.genID() + id := IDGen.genID() if !IsOn() { return newIdentifer(RefSubChannel, id, pid), nil } @@ -251,7 +215,7 @@ func RegisterSubChannel(c Channel, pid *Identifier, ref string) (*Identifier, er // // If channelz is not turned ON, the channelz database is not mutated. func RegisterServer(s Server, ref string) *Identifier { - id := idGen.genID() + id := IDGen.genID() if !IsOn() { return newIdentifer(RefServer, id, nil) } @@ -277,7 +241,7 @@ func RegisterListenSocket(s Socket, pid *Identifier, ref string) (*Identifier, e if pid == nil { return nil, errors.New("a ListenSocket's parent id cannot be 0") } - id := idGen.genID() + id := IDGen.genID() if !IsOn() { return newIdentifer(RefListenSocket, id, pid), nil } @@ -297,7 +261,7 @@ func RegisterNormalSocket(s Socket, pid *Identifier, ref string) (*Identifier, e if pid == nil { return nil, errors.New("a NormalSocket's parent id cannot be 0") } - id := idGen.genID() + id := IDGen.genID() if !IsOn() { return newIdentifer(RefNormalSocket, id, pid), nil } @@ -776,14 +740,17 @@ func (c *channelMap) GetServer(id int64) *ServerMetric { return sm } -type idGenerator struct { +// IDGenerator is an incrementing atomic that tracks IDs for channelz entities. +type IDGenerator struct { id int64 } -func (i *idGenerator) reset() { +// Reset resets the generated ID back to zero. Should only be used at +// initialization or by tests sensitive to the ID number. +func (i *IDGenerator) Reset() { atomic.StoreInt64(&i.id, 0) } -func (i *idGenerator) genID() int64 { +func (i *IDGenerator) genID() int64 { return atomic.AddInt64(&i.id, 1) } diff --git a/vendor/google.golang.org/grpc/internal/channelz/logging.go b/vendor/google.golang.org/grpc/internal/channelz/logging.go index 8e13a3d2ce7b..f89e6f77bbd0 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/logging.go +++ b/vendor/google.golang.org/grpc/internal/channelz/logging.go @@ -31,7 +31,7 @@ func withParens(id *Identifier) string { } // Info logs and adds a trace event if channelz is on. -func Info(l grpclog.DepthLoggerV2, id *Identifier, args ...interface{}) { +func Info(l grpclog.DepthLoggerV2, id *Identifier, args ...any) { AddTraceEvent(l, id, 1, &TraceEventDesc{ Desc: fmt.Sprint(args...), Severity: CtInfo, @@ -39,7 +39,7 @@ func Info(l grpclog.DepthLoggerV2, id *Identifier, args ...interface{}) { } // Infof logs and adds a trace event if channelz is on. -func Infof(l grpclog.DepthLoggerV2, id *Identifier, format string, args ...interface{}) { +func Infof(l grpclog.DepthLoggerV2, id *Identifier, format string, args ...any) { AddTraceEvent(l, id, 1, &TraceEventDesc{ Desc: fmt.Sprintf(format, args...), Severity: CtInfo, @@ -47,7 +47,7 @@ func Infof(l grpclog.DepthLoggerV2, id *Identifier, format string, args ...inter } // Warning logs and adds a trace event if channelz is on. -func Warning(l grpclog.DepthLoggerV2, id *Identifier, args ...interface{}) { +func Warning(l grpclog.DepthLoggerV2, id *Identifier, args ...any) { AddTraceEvent(l, id, 1, &TraceEventDesc{ Desc: fmt.Sprint(args...), Severity: CtWarning, @@ -55,7 +55,7 @@ func Warning(l grpclog.DepthLoggerV2, id *Identifier, args ...interface{}) { } // Warningf logs and adds a trace event if channelz is on. -func Warningf(l grpclog.DepthLoggerV2, id *Identifier, format string, args ...interface{}) { +func Warningf(l grpclog.DepthLoggerV2, id *Identifier, format string, args ...any) { AddTraceEvent(l, id, 1, &TraceEventDesc{ Desc: fmt.Sprintf(format, args...), Severity: CtWarning, @@ -63,7 +63,7 @@ func Warningf(l grpclog.DepthLoggerV2, id *Identifier, format string, args ...in } // Error logs and adds a trace event if channelz is on. -func Error(l grpclog.DepthLoggerV2, id *Identifier, args ...interface{}) { +func Error(l grpclog.DepthLoggerV2, id *Identifier, args ...any) { AddTraceEvent(l, id, 1, &TraceEventDesc{ Desc: fmt.Sprint(args...), Severity: CtError, @@ -71,7 +71,7 @@ func Error(l grpclog.DepthLoggerV2, id *Identifier, args ...interface{}) { } // Errorf logs and adds a trace event if channelz is on. -func Errorf(l grpclog.DepthLoggerV2, id *Identifier, format string, args ...interface{}) { +func Errorf(l grpclog.DepthLoggerV2, id *Identifier, format string, args ...any) { AddTraceEvent(l, id, 1, &TraceEventDesc{ Desc: fmt.Sprintf(format, args...), Severity: CtError, diff --git a/vendor/google.golang.org/grpc/internal/channelz/types.go b/vendor/google.golang.org/grpc/internal/channelz/types.go index 7b2f350e2e64..1d4020f53795 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/types.go +++ b/vendor/google.golang.org/grpc/internal/channelz/types.go @@ -628,6 +628,7 @@ type tracedChannel interface { type channelTrace struct { cm *channelMap + clearCalled bool createdTime time.Time eventCount int64 mu sync.Mutex @@ -656,6 +657,10 @@ func (c *channelTrace) append(e *TraceEvent) { } func (c *channelTrace) clear() { + if c.clearCalled { + return + } + c.clearCalled = true c.mu.Lock() for _, e := range c.events { if e.RefID != 0 { diff --git a/vendor/google.golang.org/grpc/internal/channelz/util_linux.go b/vendor/google.golang.org/grpc/internal/channelz/util_linux.go index 8d194e44e1dc..98288c3f866f 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/util_linux.go +++ b/vendor/google.golang.org/grpc/internal/channelz/util_linux.go @@ -23,7 +23,7 @@ import ( ) // GetSocketOption gets the socket option info of the conn. -func GetSocketOption(socket interface{}) *SocketOptionData { +func GetSocketOption(socket any) *SocketOptionData { c, ok := socket.(syscall.Conn) if !ok { return nil diff --git a/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go b/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go index 837ddc402400..b5568b22e208 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go +++ b/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go @@ -22,6 +22,6 @@ package channelz // GetSocketOption gets the socket option info of the conn. -func GetSocketOption(c interface{}) *SocketOptionData { +func GetSocketOption(c any) *SocketOptionData { return nil } diff --git a/vendor/google.golang.org/grpc/internal/credentials/credentials.go b/vendor/google.golang.org/grpc/internal/credentials/credentials.go index 32c9b59033cd..9deee7f6513e 100644 --- a/vendor/google.golang.org/grpc/internal/credentials/credentials.go +++ b/vendor/google.golang.org/grpc/internal/credentials/credentials.go @@ -25,12 +25,12 @@ import ( type requestInfoKey struct{} // NewRequestInfoContext creates a context with ri. -func NewRequestInfoContext(ctx context.Context, ri interface{}) context.Context { +func NewRequestInfoContext(ctx context.Context, ri any) context.Context { return context.WithValue(ctx, requestInfoKey{}, ri) } // RequestInfoFromContext extracts the RequestInfo from ctx. -func RequestInfoFromContext(ctx context.Context) interface{} { +func RequestInfoFromContext(ctx context.Context) any { return ctx.Value(requestInfoKey{}) } @@ -39,11 +39,11 @@ func RequestInfoFromContext(ctx context.Context) interface{} { type clientHandshakeInfoKey struct{} // ClientHandshakeInfoFromContext extracts the ClientHandshakeInfo from ctx. -func ClientHandshakeInfoFromContext(ctx context.Context) interface{} { +func ClientHandshakeInfoFromContext(ctx context.Context) any { return ctx.Value(clientHandshakeInfoKey{}) } // NewClientHandshakeInfoContext creates a context with chi. -func NewClientHandshakeInfoContext(ctx context.Context, chi interface{}) context.Context { +func NewClientHandshakeInfoContext(ctx context.Context, chi any) context.Context { return context.WithValue(ctx, clientHandshakeInfoKey{}, chi) } diff --git a/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go b/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go index 5ba9d94d49c2..3cf10ddfbd4c 100644 --- a/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go +++ b/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go @@ -36,6 +36,16 @@ var ( // "GRPC_RING_HASH_CAP". This does not override the default bounds // checking which NACKs configs specifying ring sizes > 8*1024*1024 (~8M). RingHashCap = uint64FromEnv("GRPC_RING_HASH_CAP", 4096, 1, 8*1024*1024) + // PickFirstLBConfig is set if we should support configuration of the + // pick_first LB policy. + PickFirstLBConfig = boolFromEnv("GRPC_EXPERIMENTAL_PICKFIRST_LB_CONFIG", true) + // LeastRequestLB is set if we should support the least_request_experimental + // LB policy, which can be enabled by setting the environment variable + // "GRPC_EXPERIMENTAL_ENABLE_LEAST_REQUEST" to "true". + LeastRequestLB = boolFromEnv("GRPC_EXPERIMENTAL_ENABLE_LEAST_REQUEST", false) + // ALTSMaxConcurrentHandshakes is the maximum number of concurrent ALTS + // handshakes that can be performed. + ALTSMaxConcurrentHandshakes = uint64FromEnv("GRPC_ALTS_MAX_CONCURRENT_HANDSHAKES", 100, 1, 100) ) func boolFromEnv(envVar string, def bool) bool { diff --git a/vendor/google.golang.org/grpc/internal/envconfig/observability.go b/vendor/google.golang.org/grpc/internal/envconfig/observability.go index 821dd0a7c198..dd314cfb18f4 100644 --- a/vendor/google.golang.org/grpc/internal/envconfig/observability.go +++ b/vendor/google.golang.org/grpc/internal/envconfig/observability.go @@ -28,9 +28,15 @@ const ( var ( // ObservabilityConfig is the json configuration for the gcp/observability // package specified directly in the envObservabilityConfig env var. + // + // This is used in the 1.0 release of gcp/observability, and thus must not be + // deleted or changed. ObservabilityConfig = os.Getenv(envObservabilityConfig) // ObservabilityConfigFile is the json configuration for the // gcp/observability specified in a file with the location specified in // envObservabilityConfigFile env var. + // + // This is used in the 1.0 release of gcp/observability, and thus must not be + // deleted or changed. ObservabilityConfigFile = os.Getenv(envObservabilityConfigFile) ) diff --git a/vendor/google.golang.org/grpc/internal/envconfig/xds.go b/vendor/google.golang.org/grpc/internal/envconfig/xds.go index 04136882c7bc..02b4b6a1c109 100644 --- a/vendor/google.golang.org/grpc/internal/envconfig/xds.go +++ b/vendor/google.golang.org/grpc/internal/envconfig/xds.go @@ -61,11 +61,10 @@ var ( // have a brand new API on the server-side and users explicitly need to use // the new API to get security integration on the server. XDSClientSideSecurity = boolFromEnv("GRPC_XDS_EXPERIMENTAL_SECURITY_SUPPORT", true) - // XDSAggregateAndDNS indicates whether processing of aggregated cluster - // and DNS cluster is enabled, which can be enabled by setting the - // environment variable - // "GRPC_XDS_EXPERIMENTAL_ENABLE_AGGREGATE_AND_LOGICAL_DNS_CLUSTER" to - // "true". + // XDSAggregateAndDNS indicates whether processing of aggregated cluster and + // DNS cluster is enabled, which can be disabled by setting the environment + // variable "GRPC_XDS_EXPERIMENTAL_ENABLE_AGGREGATE_AND_LOGICAL_DNS_CLUSTER" + // to "false". XDSAggregateAndDNS = boolFromEnv("GRPC_XDS_EXPERIMENTAL_ENABLE_AGGREGATE_AND_LOGICAL_DNS_CLUSTER", true) // XDSRBAC indicates whether xDS configured RBAC HTTP Filter is enabled, @@ -79,14 +78,18 @@ var ( // XDSFederation indicates whether federation support is enabled, which can // be enabled by setting the environment variable // "GRPC_EXPERIMENTAL_XDS_FEDERATION" to "true". - XDSFederation = boolFromEnv("GRPC_EXPERIMENTAL_XDS_FEDERATION", false) + XDSFederation = boolFromEnv("GRPC_EXPERIMENTAL_XDS_FEDERATION", true) // XDSRLS indicates whether processing of Cluster Specifier plugins and - // support for the RLS CLuster Specifier is enabled, which can be enabled by + // support for the RLS CLuster Specifier is enabled, which can be disabled by // setting the environment variable "GRPC_EXPERIMENTAL_XDS_RLS_LB" to - // "true". - XDSRLS = boolFromEnv("GRPC_EXPERIMENTAL_XDS_RLS_LB", false) + // "false". + XDSRLS = boolFromEnv("GRPC_EXPERIMENTAL_XDS_RLS_LB", true) // C2PResolverTestOnlyTrafficDirectorURI is the TD URI for testing. C2PResolverTestOnlyTrafficDirectorURI = os.Getenv("GRPC_TEST_ONLY_GOOGLE_C2P_RESOLVER_TRAFFIC_DIRECTOR_URI") + // XDSCustomLBPolicy indicates whether Custom LB Policies are enabled, which + // can be disabled by setting the environment variable + // "GRPC_EXPERIMENTAL_XDS_CUSTOM_LB_CONFIG" to "false". + XDSCustomLBPolicy = boolFromEnv("GRPC_EXPERIMENTAL_XDS_CUSTOM_LB_CONFIG", true) ) diff --git a/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go b/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go index b68e26a36493..bfc45102ab24 100644 --- a/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go +++ b/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go @@ -30,7 +30,7 @@ var Logger LoggerV2 var DepthLogger DepthLoggerV2 // InfoDepth logs to the INFO log at the specified depth. -func InfoDepth(depth int, args ...interface{}) { +func InfoDepth(depth int, args ...any) { if DepthLogger != nil { DepthLogger.InfoDepth(depth, args...) } else { @@ -39,7 +39,7 @@ func InfoDepth(depth int, args ...interface{}) { } // WarningDepth logs to the WARNING log at the specified depth. -func WarningDepth(depth int, args ...interface{}) { +func WarningDepth(depth int, args ...any) { if DepthLogger != nil { DepthLogger.WarningDepth(depth, args...) } else { @@ -48,7 +48,7 @@ func WarningDepth(depth int, args ...interface{}) { } // ErrorDepth logs to the ERROR log at the specified depth. -func ErrorDepth(depth int, args ...interface{}) { +func ErrorDepth(depth int, args ...any) { if DepthLogger != nil { DepthLogger.ErrorDepth(depth, args...) } else { @@ -57,7 +57,7 @@ func ErrorDepth(depth int, args ...interface{}) { } // FatalDepth logs to the FATAL log at the specified depth. -func FatalDepth(depth int, args ...interface{}) { +func FatalDepth(depth int, args ...any) { if DepthLogger != nil { DepthLogger.FatalDepth(depth, args...) } else { @@ -71,35 +71,35 @@ func FatalDepth(depth int, args ...interface{}) { // is defined here to avoid a circular dependency. type LoggerV2 interface { // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. - Info(args ...interface{}) + Info(args ...any) // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. - Infoln(args ...interface{}) + Infoln(args ...any) // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. - Infof(format string, args ...interface{}) + Infof(format string, args ...any) // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. - Warning(args ...interface{}) + Warning(args ...any) // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. - Warningln(args ...interface{}) + Warningln(args ...any) // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. - Warningf(format string, args ...interface{}) + Warningf(format string, args ...any) // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. - Error(args ...interface{}) + Error(args ...any) // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. - Errorln(args ...interface{}) + Errorln(args ...any) // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. - Errorf(format string, args ...interface{}) + Errorf(format string, args ...any) // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. // gRPC ensures that all Fatal logs will exit with os.Exit(1). // Implementations may also call os.Exit() with a non-zero exit code. - Fatal(args ...interface{}) + Fatal(args ...any) // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. // gRPC ensures that all Fatal logs will exit with os.Exit(1). // Implementations may also call os.Exit() with a non-zero exit code. - Fatalln(args ...interface{}) + Fatalln(args ...any) // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. // gRPC ensures that all Fatal logs will exit with os.Exit(1). // Implementations may also call os.Exit() with a non-zero exit code. - Fatalf(format string, args ...interface{}) + Fatalf(format string, args ...any) // V reports whether verbosity level l is at least the requested verbose level. V(l int) bool } @@ -116,11 +116,11 @@ type LoggerV2 interface { // later release. type DepthLoggerV2 interface { // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. - InfoDepth(depth int, args ...interface{}) + InfoDepth(depth int, args ...any) // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. - WarningDepth(depth int, args ...interface{}) + WarningDepth(depth int, args ...any) // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. - ErrorDepth(depth int, args ...interface{}) + ErrorDepth(depth int, args ...any) // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. - FatalDepth(depth int, args ...interface{}) + FatalDepth(depth int, args ...any) } diff --git a/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go b/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go index 82af70e96f15..faa998de7632 100644 --- a/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go +++ b/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go @@ -31,7 +31,7 @@ type PrefixLogger struct { } // Infof does info logging. -func (pl *PrefixLogger) Infof(format string, args ...interface{}) { +func (pl *PrefixLogger) Infof(format string, args ...any) { if pl != nil { // Handle nil, so the tests can pass in a nil logger. format = pl.prefix + format @@ -42,7 +42,7 @@ func (pl *PrefixLogger) Infof(format string, args ...interface{}) { } // Warningf does warning logging. -func (pl *PrefixLogger) Warningf(format string, args ...interface{}) { +func (pl *PrefixLogger) Warningf(format string, args ...any) { if pl != nil { format = pl.prefix + format pl.logger.WarningDepth(1, fmt.Sprintf(format, args...)) @@ -52,7 +52,7 @@ func (pl *PrefixLogger) Warningf(format string, args ...interface{}) { } // Errorf does error logging. -func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { +func (pl *PrefixLogger) Errorf(format string, args ...any) { if pl != nil { format = pl.prefix + format pl.logger.ErrorDepth(1, fmt.Sprintf(format, args...)) @@ -62,7 +62,10 @@ func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { } // Debugf does info logging at verbose level 2. -func (pl *PrefixLogger) Debugf(format string, args ...interface{}) { +func (pl *PrefixLogger) Debugf(format string, args ...any) { + // TODO(6044): Refactor interfaces LoggerV2 and DepthLogger, and maybe + // rewrite PrefixLogger a little to ensure that we don't use the global + // `Logger` here, and instead use the `logger` field. if !Logger.V(2) { return } @@ -73,6 +76,15 @@ func (pl *PrefixLogger) Debugf(format string, args ...interface{}) { return } InfoDepth(1, fmt.Sprintf(format, args...)) + +} + +// V reports whether verbosity level l is at least the requested verbose level. +func (pl *PrefixLogger) V(l int) bool { + // TODO(6044): Refactor interfaces LoggerV2 and DepthLogger, and maybe + // rewrite PrefixLogger a little to ensure that we don't use the global + // `Logger` here, and instead use the `logger` field. + return Logger.V(l) } // NewPrefixLogger creates a prefix logger with the given prefix. diff --git a/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand.go b/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand.go index 517ea70642a1..aa97273e7d13 100644 --- a/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand.go +++ b/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand.go @@ -72,3 +72,24 @@ func Uint64() uint64 { defer mu.Unlock() return r.Uint64() } + +// Uint32 implements rand.Uint32 on the grpcrand global source. +func Uint32() uint32 { + mu.Lock() + defer mu.Unlock() + return r.Uint32() +} + +// ExpFloat64 implements rand.ExpFloat64 on the grpcrand global source. +func ExpFloat64() float64 { + mu.Lock() + defer mu.Unlock() + return r.ExpFloat64() +} + +// Shuffle implements rand.Shuffle on the grpcrand global source. +var Shuffle = func(n int, f func(int, int)) { + mu.Lock() + defer mu.Unlock() + r.Shuffle(n, f) +} diff --git a/vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go b/vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go new file mode 100644 index 000000000000..900917dbe6c1 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go @@ -0,0 +1,125 @@ +/* + * + * Copyright 2022 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpcsync + +import ( + "context" + "sync" + + "google.golang.org/grpc/internal/buffer" +) + +// CallbackSerializer provides a mechanism to schedule callbacks in a +// synchronized manner. It provides a FIFO guarantee on the order of execution +// of scheduled callbacks. New callbacks can be scheduled by invoking the +// Schedule() method. +// +// This type is safe for concurrent access. +type CallbackSerializer struct { + // done is closed once the serializer is shut down completely, i.e all + // scheduled callbacks are executed and the serializer has deallocated all + // its resources. + done chan struct{} + + callbacks *buffer.Unbounded + closedMu sync.Mutex + closed bool +} + +// NewCallbackSerializer returns a new CallbackSerializer instance. The provided +// context will be passed to the scheduled callbacks. Users should cancel the +// provided context to shutdown the CallbackSerializer. It is guaranteed that no +// callbacks will be added once this context is canceled, and any pending un-run +// callbacks will be executed before the serializer is shut down. +func NewCallbackSerializer(ctx context.Context) *CallbackSerializer { + cs := &CallbackSerializer{ + done: make(chan struct{}), + callbacks: buffer.NewUnbounded(), + } + go cs.run(ctx) + return cs +} + +// Schedule adds a callback to be scheduled after existing callbacks are run. +// +// Callbacks are expected to honor the context when performing any blocking +// operations, and should return early when the context is canceled. +// +// Return value indicates if the callback was successfully added to the list of +// callbacks to be executed by the serializer. It is not possible to add +// callbacks once the context passed to NewCallbackSerializer is cancelled. +func (cs *CallbackSerializer) Schedule(f func(ctx context.Context)) bool { + cs.closedMu.Lock() + defer cs.closedMu.Unlock() + + if cs.closed { + return false + } + cs.callbacks.Put(f) + return true +} + +func (cs *CallbackSerializer) run(ctx context.Context) { + var backlog []func(context.Context) + + defer close(cs.done) + for ctx.Err() == nil { + select { + case <-ctx.Done(): + // Do nothing here. Next iteration of the for loop will not happen, + // since ctx.Err() would be non-nil. + case callback, ok := <-cs.callbacks.Get(): + if !ok { + return + } + cs.callbacks.Load() + callback.(func(ctx context.Context))(ctx) + } + } + + // Fetch pending callbacks if any, and execute them before returning from + // this method and closing cs.done. + cs.closedMu.Lock() + cs.closed = true + backlog = cs.fetchPendingCallbacks() + cs.callbacks.Close() + cs.closedMu.Unlock() + for _, b := range backlog { + b(ctx) + } +} + +func (cs *CallbackSerializer) fetchPendingCallbacks() []func(context.Context) { + var backlog []func(context.Context) + for { + select { + case b := <-cs.callbacks.Get(): + backlog = append(backlog, b.(func(context.Context))) + cs.callbacks.Load() + default: + return backlog + } + } +} + +// Done returns a channel that is closed after the context passed to +// NewCallbackSerializer is canceled and all callbacks have been executed. +func (cs *CallbackSerializer) Done() <-chan struct{} { + return cs.done +} diff --git a/vendor/google.golang.org/grpc/internal/grpcsync/pubsub.go b/vendor/google.golang.org/grpc/internal/grpcsync/pubsub.go new file mode 100644 index 000000000000..aef8cec1ab0c --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/grpcsync/pubsub.go @@ -0,0 +1,121 @@ +/* + * + * Copyright 2023 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpcsync + +import ( + "context" + "sync" +) + +// Subscriber represents an entity that is subscribed to messages published on +// a PubSub. It wraps the callback to be invoked by the PubSub when a new +// message is published. +type Subscriber interface { + // OnMessage is invoked when a new message is published. Implementations + // must not block in this method. + OnMessage(msg any) +} + +// PubSub is a simple one-to-many publish-subscribe system that supports +// messages of arbitrary type. It guarantees that messages are delivered in +// the same order in which they were published. +// +// Publisher invokes the Publish() method to publish new messages, while +// subscribers interested in receiving these messages register a callback +// via the Subscribe() method. +// +// Once a PubSub is stopped, no more messages can be published, but any pending +// published messages will be delivered to the subscribers. Done may be used +// to determine when all published messages have been delivered. +type PubSub struct { + cs *CallbackSerializer + + // Access to the below fields are guarded by this mutex. + mu sync.Mutex + msg any + subscribers map[Subscriber]bool +} + +// NewPubSub returns a new PubSub instance. Users should cancel the +// provided context to shutdown the PubSub. +func NewPubSub(ctx context.Context) *PubSub { + return &PubSub{ + cs: NewCallbackSerializer(ctx), + subscribers: map[Subscriber]bool{}, + } +} + +// Subscribe registers the provided Subscriber to the PubSub. +// +// If the PubSub contains a previously published message, the Subscriber's +// OnMessage() callback will be invoked asynchronously with the existing +// message to begin with, and subsequently for every newly published message. +// +// The caller is responsible for invoking the returned cancel function to +// unsubscribe itself from the PubSub. +func (ps *PubSub) Subscribe(sub Subscriber) (cancel func()) { + ps.mu.Lock() + defer ps.mu.Unlock() + + ps.subscribers[sub] = true + + if ps.msg != nil { + msg := ps.msg + ps.cs.Schedule(func(context.Context) { + ps.mu.Lock() + defer ps.mu.Unlock() + if !ps.subscribers[sub] { + return + } + sub.OnMessage(msg) + }) + } + + return func() { + ps.mu.Lock() + defer ps.mu.Unlock() + delete(ps.subscribers, sub) + } +} + +// Publish publishes the provided message to the PubSub, and invokes +// callbacks registered by subscribers asynchronously. +func (ps *PubSub) Publish(msg any) { + ps.mu.Lock() + defer ps.mu.Unlock() + + ps.msg = msg + for sub := range ps.subscribers { + s := sub + ps.cs.Schedule(func(context.Context) { + ps.mu.Lock() + defer ps.mu.Unlock() + if !ps.subscribers[s] { + return + } + s.OnMessage(msg) + }) + } +} + +// Done returns a channel that is closed after the context passed to NewPubSub +// is canceled and all updates have been sent to subscribers. +func (ps *PubSub) Done() <-chan struct{} { + return ps.cs.Done() +} diff --git a/vendor/google.golang.org/grpc/internal/idle/idle.go b/vendor/google.golang.org/grpc/internal/idle/idle.go new file mode 100644 index 000000000000..6c272476e5ef --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/idle/idle.go @@ -0,0 +1,301 @@ +/* + * + * Copyright 2023 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package idle contains a component for managing idleness (entering and exiting) +// based on RPC activity. +package idle + +import ( + "fmt" + "math" + "sync" + "sync/atomic" + "time" + + "google.golang.org/grpc/grpclog" +) + +// For overriding in unit tests. +var timeAfterFunc = func(d time.Duration, f func()) *time.Timer { + return time.AfterFunc(d, f) +} + +// Enforcer is the functionality provided by grpc.ClientConn to enter +// and exit from idle mode. +type Enforcer interface { + ExitIdleMode() error + EnterIdleMode() error +} + +// Manager defines the functionality required to track RPC activity on a +// channel. +type Manager interface { + OnCallBegin() error + OnCallEnd() + Close() +} + +type noopManager struct{} + +func (noopManager) OnCallBegin() error { return nil } +func (noopManager) OnCallEnd() {} +func (noopManager) Close() {} + +// manager implements the Manager interface. It uses atomic operations to +// synchronize access to shared state and a mutex to guarantee mutual exclusion +// in a critical section. +type manager struct { + // State accessed atomically. + lastCallEndTime int64 // Unix timestamp in nanos; time when the most recent RPC completed. + activeCallsCount int32 // Count of active RPCs; -math.MaxInt32 means channel is idle or is trying to get there. + activeSinceLastTimerCheck int32 // Boolean; True if there was an RPC since the last timer callback. + closed int32 // Boolean; True when the manager is closed. + + // Can be accessed without atomics or mutex since these are set at creation + // time and read-only after that. + enforcer Enforcer // Functionality provided by grpc.ClientConn. + timeout int64 // Idle timeout duration nanos stored as an int64. + logger grpclog.LoggerV2 + + // idleMu is used to guarantee mutual exclusion in two scenarios: + // - Opposing intentions: + // - a: Idle timeout has fired and handleIdleTimeout() is trying to put + // the channel in idle mode because the channel has been inactive. + // - b: At the same time an RPC is made on the channel, and OnCallBegin() + // is trying to prevent the channel from going idle. + // - Competing intentions: + // - The channel is in idle mode and there are multiple RPCs starting at + // the same time, all trying to move the channel out of idle. Only one + // of them should succeed in doing so, while the other RPCs should + // piggyback on the first one and be successfully handled. + idleMu sync.RWMutex + actuallyIdle bool + timer *time.Timer +} + +// ManagerOptions is a collection of options used by +// NewManager. +type ManagerOptions struct { + Enforcer Enforcer + Timeout time.Duration + Logger grpclog.LoggerV2 +} + +// NewManager creates a new idleness manager implementation for the +// given idle timeout. +func NewManager(opts ManagerOptions) Manager { + if opts.Timeout == 0 { + return noopManager{} + } + + m := &manager{ + enforcer: opts.Enforcer, + timeout: int64(opts.Timeout), + logger: opts.Logger, + } + m.timer = timeAfterFunc(opts.Timeout, m.handleIdleTimeout) + return m +} + +// resetIdleTimer resets the idle timer to the given duration. This method +// should only be called from the timer callback. +func (m *manager) resetIdleTimer(d time.Duration) { + m.idleMu.Lock() + defer m.idleMu.Unlock() + + if m.timer == nil { + // Only close sets timer to nil. We are done. + return + } + + // It is safe to ignore the return value from Reset() because this method is + // only ever called from the timer callback, which means the timer has + // already fired. + m.timer.Reset(d) +} + +// handleIdleTimeout is the timer callback that is invoked upon expiry of the +// configured idle timeout. The channel is considered inactive if there are no +// ongoing calls and no RPC activity since the last time the timer fired. +func (m *manager) handleIdleTimeout() { + if m.isClosed() { + return + } + + if atomic.LoadInt32(&m.activeCallsCount) > 0 { + m.resetIdleTimer(time.Duration(m.timeout)) + return + } + + // There has been activity on the channel since we last got here. Reset the + // timer and return. + if atomic.LoadInt32(&m.activeSinceLastTimerCheck) == 1 { + // Set the timer to fire after a duration of idle timeout, calculated + // from the time the most recent RPC completed. + atomic.StoreInt32(&m.activeSinceLastTimerCheck, 0) + m.resetIdleTimer(time.Duration(atomic.LoadInt64(&m.lastCallEndTime) + m.timeout - time.Now().UnixNano())) + return + } + + // This CAS operation is extremely likely to succeed given that there has + // been no activity since the last time we were here. Setting the + // activeCallsCount to -math.MaxInt32 indicates to OnCallBegin() that the + // channel is either in idle mode or is trying to get there. + if !atomic.CompareAndSwapInt32(&m.activeCallsCount, 0, -math.MaxInt32) { + // This CAS operation can fail if an RPC started after we checked for + // activity at the top of this method, or one was ongoing from before + // the last time we were here. In both case, reset the timer and return. + m.resetIdleTimer(time.Duration(m.timeout)) + return + } + + // Now that we've set the active calls count to -math.MaxInt32, it's time to + // actually move to idle mode. + if m.tryEnterIdleMode() { + // Successfully entered idle mode. No timer needed until we exit idle. + return + } + + // Failed to enter idle mode due to a concurrent RPC that kept the channel + // active, or because of an error from the channel. Undo the attempt to + // enter idle, and reset the timer to try again later. + atomic.AddInt32(&m.activeCallsCount, math.MaxInt32) + m.resetIdleTimer(time.Duration(m.timeout)) +} + +// tryEnterIdleMode instructs the channel to enter idle mode. But before +// that, it performs a last minute check to ensure that no new RPC has come in, +// making the channel active. +// +// Return value indicates whether or not the channel moved to idle mode. +// +// Holds idleMu which ensures mutual exclusion with exitIdleMode. +func (m *manager) tryEnterIdleMode() bool { + m.idleMu.Lock() + defer m.idleMu.Unlock() + + if atomic.LoadInt32(&m.activeCallsCount) != -math.MaxInt32 { + // We raced and lost to a new RPC. Very rare, but stop entering idle. + return false + } + if atomic.LoadInt32(&m.activeSinceLastTimerCheck) == 1 { + // An very short RPC could have come in (and also finished) after we + // checked for calls count and activity in handleIdleTimeout(), but + // before the CAS operation. So, we need to check for activity again. + return false + } + + // No new RPCs have come in since we last set the active calls count value + // -math.MaxInt32 in the timer callback. And since we have the lock, it is + // safe to enter idle mode now. + if err := m.enforcer.EnterIdleMode(); err != nil { + m.logger.Errorf("Failed to enter idle mode: %v", err) + return false + } + + // Successfully entered idle mode. + m.actuallyIdle = true + return true +} + +// OnCallBegin is invoked at the start of every RPC. +func (m *manager) OnCallBegin() error { + if m.isClosed() { + return nil + } + + if atomic.AddInt32(&m.activeCallsCount, 1) > 0 { + // Channel is not idle now. Set the activity bit and allow the call. + atomic.StoreInt32(&m.activeSinceLastTimerCheck, 1) + return nil + } + + // Channel is either in idle mode or is in the process of moving to idle + // mode. Attempt to exit idle mode to allow this RPC. + if err := m.exitIdleMode(); err != nil { + // Undo the increment to calls count, and return an error causing the + // RPC to fail. + atomic.AddInt32(&m.activeCallsCount, -1) + return err + } + + atomic.StoreInt32(&m.activeSinceLastTimerCheck, 1) + return nil +} + +// exitIdleMode instructs the channel to exit idle mode. +// +// Holds idleMu which ensures mutual exclusion with tryEnterIdleMode. +func (m *manager) exitIdleMode() error { + m.idleMu.Lock() + defer m.idleMu.Unlock() + + if !m.actuallyIdle { + // This can happen in two scenarios: + // - handleIdleTimeout() set the calls count to -math.MaxInt32 and called + // tryEnterIdleMode(). But before the latter could grab the lock, an RPC + // came in and OnCallBegin() noticed that the calls count is negative. + // - Channel is in idle mode, and multiple new RPCs come in at the same + // time, all of them notice a negative calls count in OnCallBegin and get + // here. The first one to get the lock would got the channel to exit idle. + // + // Either way, nothing to do here. + return nil + } + + if err := m.enforcer.ExitIdleMode(); err != nil { + return fmt.Errorf("channel failed to exit idle mode: %v", err) + } + + // Undo the idle entry process. This also respects any new RPC attempts. + atomic.AddInt32(&m.activeCallsCount, math.MaxInt32) + m.actuallyIdle = false + + // Start a new timer to fire after the configured idle timeout. + m.timer = timeAfterFunc(time.Duration(m.timeout), m.handleIdleTimeout) + return nil +} + +// OnCallEnd is invoked at the end of every RPC. +func (m *manager) OnCallEnd() { + if m.isClosed() { + return + } + + // Record the time at which the most recent call finished. + atomic.StoreInt64(&m.lastCallEndTime, time.Now().UnixNano()) + + // Decrement the active calls count. This count can temporarily go negative + // when the timer callback is in the process of moving the channel to idle + // mode, but one or more RPCs come in and complete before the timer callback + // can get done with the process of moving to idle mode. + atomic.AddInt32(&m.activeCallsCount, -1) +} + +func (m *manager) isClosed() bool { + return atomic.LoadInt32(&m.closed) == 1 +} + +func (m *manager) Close() { + atomic.StoreInt32(&m.closed, 1) + + m.idleMu.Lock() + m.timer.Stop() + m.timer = nil + m.idleMu.Unlock() +} diff --git a/vendor/google.golang.org/grpc/internal/internal.go b/vendor/google.golang.org/grpc/internal/internal.go index 0a76d9de6e02..c8a8c76d628c 100644 --- a/vendor/google.golang.org/grpc/internal/internal.go +++ b/vendor/google.golang.org/grpc/internal/internal.go @@ -30,7 +30,7 @@ import ( var ( // WithHealthCheckFunc is set by dialoptions.go - WithHealthCheckFunc interface{} // func (HealthChecker) DialOption + WithHealthCheckFunc any // func (HealthChecker) DialOption // HealthCheckFunc is used to provide client-side LB channel health checking HealthCheckFunc HealthChecker // BalancerUnregister is exported by package balancer to unregister a balancer. @@ -38,8 +38,12 @@ var ( // KeepaliveMinPingTime is the minimum ping interval. This must be 10s by // default, but tests may wish to set it lower for convenience. KeepaliveMinPingTime = 10 * time.Second + // KeepaliveMinServerPingTime is the minimum ping interval for servers. + // This must be 1s by default, but tests may wish to set it lower for + // convenience. + KeepaliveMinServerPingTime = time.Second // ParseServiceConfig parses a JSON representation of the service config. - ParseServiceConfig interface{} // func(string) *serviceconfig.ParseResult + ParseServiceConfig any // func(string) *serviceconfig.ParseResult // EqualServiceConfigForTesting is for testing service config generation and // parsing. Both a and b should be returned by ParseServiceConfig. // This function compares the config without rawJSON stripped, in case the @@ -49,47 +53,81 @@ var ( // given name. This is set by package certprovider for use from xDS // bootstrap code while parsing certificate provider configs in the // bootstrap file. - GetCertificateProviderBuilder interface{} // func(string) certprovider.Builder + GetCertificateProviderBuilder any // func(string) certprovider.Builder // GetXDSHandshakeInfoForTesting returns a pointer to the xds.HandshakeInfo // stored in the passed in attributes. This is set by // credentials/xds/xds.go. - GetXDSHandshakeInfoForTesting interface{} // func (*attributes.Attributes) *xds.HandshakeInfo + GetXDSHandshakeInfoForTesting any // func (*attributes.Attributes) *xds.HandshakeInfo // GetServerCredentials returns the transport credentials configured on a // gRPC server. An xDS-enabled server needs to know what type of credentials // is configured on the underlying gRPC server. This is set by server.go. - GetServerCredentials interface{} // func (*grpc.Server) credentials.TransportCredentials + GetServerCredentials any // func (*grpc.Server) credentials.TransportCredentials + // CanonicalString returns the canonical string of the code defined here: + // https://github.com/grpc/grpc/blob/master/doc/statuscodes.md. + // + // This is used in the 1.0 release of gcp/observability, and thus must not be + // deleted or changed. + CanonicalString any // func (codes.Code) string // DrainServerTransports initiates a graceful close of existing connections // on a gRPC server accepted on the provided listener address. An // xDS-enabled server invokes this method on a grpc.Server when a particular // listener moves to "not-serving" mode. - DrainServerTransports interface{} // func(*grpc.Server, string) + DrainServerTransports any // func(*grpc.Server, string) // AddGlobalServerOptions adds an array of ServerOption that will be // effective globally for newly created servers. The priority will be: 1. // user-provided; 2. this method; 3. default values. - AddGlobalServerOptions interface{} // func(opt ...ServerOption) + // + // This is used in the 1.0 release of gcp/observability, and thus must not be + // deleted or changed. + AddGlobalServerOptions any // func(opt ...ServerOption) // ClearGlobalServerOptions clears the array of extra ServerOption. This // method is useful in testing and benchmarking. + // + // This is used in the 1.0 release of gcp/observability, and thus must not be + // deleted or changed. ClearGlobalServerOptions func() // AddGlobalDialOptions adds an array of DialOption that will be effective // globally for newly created client channels. The priority will be: 1. // user-provided; 2. this method; 3. default values. - AddGlobalDialOptions interface{} // func(opt ...DialOption) + // + // This is used in the 1.0 release of gcp/observability, and thus must not be + // deleted or changed. + AddGlobalDialOptions any // func(opt ...DialOption) + // DisableGlobalDialOptions returns a DialOption that prevents the + // ClientConn from applying the global DialOptions (set via + // AddGlobalDialOptions). + // + // This is used in the 1.0 release of gcp/observability, and thus must not be + // deleted or changed. + DisableGlobalDialOptions any // func() grpc.DialOption // ClearGlobalDialOptions clears the array of extra DialOption. This // method is useful in testing and benchmarking. + // + // This is used in the 1.0 release of gcp/observability, and thus must not be + // deleted or changed. ClearGlobalDialOptions func() // JoinDialOptions combines the dial options passed as arguments into a // single dial option. - JoinDialOptions interface{} // func(...grpc.DialOption) grpc.DialOption + JoinDialOptions any // func(...grpc.DialOption) grpc.DialOption // JoinServerOptions combines the server options passed as arguments into a // single server option. - JoinServerOptions interface{} // func(...grpc.ServerOption) grpc.ServerOption + JoinServerOptions any // func(...grpc.ServerOption) grpc.ServerOption // WithBinaryLogger returns a DialOption that specifies the binary logger // for a ClientConn. - WithBinaryLogger interface{} // func(binarylog.Logger) grpc.DialOption + // + // This is used in the 1.0 release of gcp/observability, and thus must not be + // deleted or changed. + WithBinaryLogger any // func(binarylog.Logger) grpc.DialOption // BinaryLogger returns a ServerOption that can set the binary logger for a // server. - BinaryLogger interface{} // func(binarylog.Logger) grpc.ServerOption + // + // This is used in the 1.0 release of gcp/observability, and thus must not be + // deleted or changed. + BinaryLogger any // func(binarylog.Logger) grpc.ServerOption + + // SubscribeToConnectivityStateChanges adds a grpcsync.Subscriber to a provided grpc.ClientConn + SubscribeToConnectivityStateChanges any // func(*grpc.ClientConn, grpcsync.Subscriber) // NewXDSResolverWithConfigForTesting creates a new xds resolver builder using // the provided xds bootstrap config instead of the global configuration from @@ -100,7 +138,7 @@ var ( // // This function should ONLY be used for testing and may not work with some // other features, including the CSDS service. - NewXDSResolverWithConfigForTesting interface{} // func([]byte) (resolver.Builder, error) + NewXDSResolverWithConfigForTesting any // func([]byte) (resolver.Builder, error) // RegisterRLSClusterSpecifierPluginForTesting registers the RLS Cluster // Specifier Plugin for testing purposes, regardless of the XDSRLS environment @@ -130,6 +168,13 @@ var ( // // TODO: Remove this function once the RBAC env var is removed. UnregisterRBACHTTPFilterForTesting func() + + // ORCAAllowAnyMinReportingInterval is for examples/orca use ONLY. + ORCAAllowAnyMinReportingInterval any // func(so *orca.ServiceOptions) + + // GRPCResolverSchemeExtraMetadata determines when gRPC will add extra + // metadata to RPCs. + GRPCResolverSchemeExtraMetadata string = "xds" ) // HealthChecker defines the signature of the client-side LB channel health checking function. @@ -140,7 +185,7 @@ var ( // // The health checking protocol is defined at: // https://github.com/grpc/grpc/blob/master/doc/health-checking.md -type HealthChecker func(ctx context.Context, newStream func(string) (interface{}, error), setConnectivityState func(connectivity.State, error), serviceName string) error +type HealthChecker func(ctx context.Context, newStream func(string) (any, error), setConnectivityState func(connectivity.State, error), serviceName string) error const ( // CredsBundleModeFallback switches GoogleDefaultCreds to fallback mode. diff --git a/vendor/google.golang.org/grpc/internal/metadata/metadata.go b/vendor/google.golang.org/grpc/internal/metadata/metadata.go index b2980f8ac44a..900bfb716080 100644 --- a/vendor/google.golang.org/grpc/internal/metadata/metadata.go +++ b/vendor/google.golang.org/grpc/internal/metadata/metadata.go @@ -35,7 +35,7 @@ const mdKey = mdKeyType("grpc.internal.address.metadata") type mdValue metadata.MD -func (m mdValue) Equal(o interface{}) bool { +func (m mdValue) Equal(o any) bool { om, ok := o.(mdValue) if !ok { return false @@ -76,33 +76,11 @@ func Set(addr resolver.Address, md metadata.MD) resolver.Address { return addr } -// Validate returns an error if the input md contains invalid keys or values. -// -// If the header is not a pseudo-header, the following items are checked: -// - header names must contain one or more characters from this set [0-9 a-z _ - .]. -// - if the header-name ends with a "-bin" suffix, no validation of the header value is performed. -// - otherwise, the header value must contain one or more characters from the set [%x20-%x7E]. +// Validate validates every pair in md with ValidatePair. func Validate(md metadata.MD) error { for k, vals := range md { - // pseudo-header will be ignored - if k[0] == ':' { - continue - } - // check key, for i that saving a conversion if not using for range - for i := 0; i < len(k); i++ { - r := k[i] - if !(r >= 'a' && r <= 'z') && !(r >= '0' && r <= '9') && r != '.' && r != '-' && r != '_' { - return fmt.Errorf("header key %q contains illegal characters not in [0-9a-z-_.]", k) - } - } - if strings.HasSuffix(k, "-bin") { - continue - } - // check value - for _, val := range vals { - if hasNotPrintable(val) { - return fmt.Errorf("header key %q contains value with non-printable ASCII characters", k) - } + if err := ValidatePair(k, vals...); err != nil { + return err } } return nil @@ -118,3 +96,37 @@ func hasNotPrintable(msg string) bool { } return false } + +// ValidatePair validate a key-value pair with the following rules (the pseudo-header will be skipped) : +// +// - key must contain one or more characters. +// - the characters in the key must be contained in [0-9 a-z _ - .]. +// - if the key ends with a "-bin" suffix, no validation of the corresponding value is performed. +// - the characters in the every value must be printable (in [%x20-%x7E]). +func ValidatePair(key string, vals ...string) error { + // key should not be empty + if key == "" { + return fmt.Errorf("there is an empty key in the header") + } + // pseudo-header will be ignored + if key[0] == ':' { + return nil + } + // check key, for i that saving a conversion if not using for range + for i := 0; i < len(key); i++ { + r := key[i] + if !(r >= 'a' && r <= 'z') && !(r >= '0' && r <= '9') && r != '.' && r != '-' && r != '_' { + return fmt.Errorf("header key %q contains illegal characters not in [0-9a-z-_.]", key) + } + } + if strings.HasSuffix(key, "-bin") { + return nil + } + // check value + for _, val := range vals { + if hasNotPrintable(val) { + return fmt.Errorf("header key %q contains value with non-printable ASCII characters", key) + } + } + return nil +} diff --git a/vendor/google.golang.org/grpc/internal/pretty/pretty.go b/vendor/google.golang.org/grpc/internal/pretty/pretty.go index 0177af4b5114..7033191375de 100644 --- a/vendor/google.golang.org/grpc/internal/pretty/pretty.go +++ b/vendor/google.golang.org/grpc/internal/pretty/pretty.go @@ -35,7 +35,7 @@ const jsonIndent = " " // ToJSON marshals the input into a json string. // // If marshal fails, it falls back to fmt.Sprintf("%+v"). -func ToJSON(e interface{}) string { +func ToJSON(e any) string { switch ee := e.(type) { case protov1.Message: mm := jsonpb.Marshaler{Indent: jsonIndent} diff --git a/vendor/google.golang.org/grpc/internal/resolver/config_selector.go b/vendor/google.golang.org/grpc/internal/resolver/config_selector.go index c7a18a948adb..f0603871c93a 100644 --- a/vendor/google.golang.org/grpc/internal/resolver/config_selector.go +++ b/vendor/google.golang.org/grpc/internal/resolver/config_selector.go @@ -92,7 +92,7 @@ type ClientStream interface { // calling RecvMsg on the same stream at the same time, but it is not safe // to call SendMsg on the same stream in different goroutines. It is also // not safe to call CloseSend concurrently with SendMsg. - SendMsg(m interface{}) error + SendMsg(m any) error // RecvMsg blocks until it receives a message into m or the stream is // done. It returns io.EOF when the stream completes successfully. On // any other error, the stream is aborted and the error contains the RPC @@ -101,7 +101,7 @@ type ClientStream interface { // It is safe to have a goroutine calling SendMsg and another goroutine // calling RecvMsg on the same stream at the same time, but it is not // safe to call RecvMsg on the same stream in different goroutines. - RecvMsg(m interface{}) error + RecvMsg(m any) error } // ClientInterceptor is an interceptor for gRPC client streams. diff --git a/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go b/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go index 09a667f33cb0..99e1e5b36c89 100644 --- a/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go +++ b/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go @@ -62,7 +62,8 @@ const ( defaultPort = "443" defaultDNSSvrPort = "53" golang = "GO" - // txtPrefix is the prefix string to be prepended to the host name for txt record lookup. + // txtPrefix is the prefix string to be prepended to the host name for txt + // record lookup. txtPrefix = "_grpc_config." // In DNS, service config is encoded in a TXT record via the mechanism // described in RFC-1464 using the attribute name grpc_config. @@ -86,14 +87,14 @@ var ( minDNSResRate = 30 * time.Second ) -var customAuthorityDialler = func(authority string) func(ctx context.Context, network, address string) (net.Conn, error) { - return func(ctx context.Context, network, address string) (net.Conn, error) { +var addressDialer = func(address string) func(context.Context, string, string) (net.Conn, error) { + return func(ctx context.Context, network, _ string) (net.Conn, error) { var dialer net.Dialer - return dialer.DialContext(ctx, network, authority) + return dialer.DialContext(ctx, network, address) } } -var customAuthorityResolver = func(authority string) (netResolver, error) { +var newNetResolver = func(authority string) (netResolver, error) { host, port, err := parseTarget(authority, defaultDNSSvrPort) if err != nil { return nil, err @@ -103,7 +104,7 @@ var customAuthorityResolver = func(authority string) (netResolver, error) { return &net.Resolver{ PreferGo: true, - Dial: customAuthorityDialler(authorityWithPort), + Dial: addressDialer(authorityWithPort), }, nil } @@ -114,7 +115,8 @@ func NewBuilder() resolver.Builder { type dnsBuilder struct{} -// Build creates and starts a DNS resolver that watches the name resolution of the target. +// Build creates and starts a DNS resolver that watches the name resolution of +// the target. func (b *dnsBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) { host, port, err := parseTarget(target.Endpoint(), defaultPort) if err != nil { @@ -143,7 +145,7 @@ func (b *dnsBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts if target.URL.Host == "" { d.resolver = defaultResolver } else { - d.resolver, err = customAuthorityResolver(target.URL.Host) + d.resolver, err = newNetResolver(target.URL.Host) if err != nil { return nil, err } @@ -180,19 +182,22 @@ type dnsResolver struct { ctx context.Context cancel context.CancelFunc cc resolver.ClientConn - // rn channel is used by ResolveNow() to force an immediate resolution of the target. + // rn channel is used by ResolveNow() to force an immediate resolution of the + // target. rn chan struct{} - // wg is used to enforce Close() to return after the watcher() goroutine has finished. - // Otherwise, data race will be possible. [Race Example] in dns_resolver_test we - // replace the real lookup functions with mocked ones to facilitate testing. - // If Close() doesn't wait for watcher() goroutine finishes, race detector sometimes - // will warns lookup (READ the lookup function pointers) inside watcher() goroutine - // has data race with replaceNetFunc (WRITE the lookup function pointers). + // wg is used to enforce Close() to return after the watcher() goroutine has + // finished. Otherwise, data race will be possible. [Race Example] in + // dns_resolver_test we replace the real lookup functions with mocked ones to + // facilitate testing. If Close() doesn't wait for watcher() goroutine + // finishes, race detector sometimes will warns lookup (READ the lookup + // function pointers) inside watcher() goroutine has data race with + // replaceNetFunc (WRITE the lookup function pointers). wg sync.WaitGroup disableServiceConfig bool } -// ResolveNow invoke an immediate resolution of the target that this dnsResolver watches. +// ResolveNow invoke an immediate resolution of the target that this +// dnsResolver watches. func (d *dnsResolver) ResolveNow(resolver.ResolveNowOptions) { select { case d.rn <- struct{}{}: @@ -220,8 +225,8 @@ func (d *dnsResolver) watcher() { var timer *time.Timer if err == nil { - // Success resolving, wait for the next ResolveNow. However, also wait 30 seconds at the very least - // to prevent constantly re-resolving. + // Success resolving, wait for the next ResolveNow. However, also wait 30 + // seconds at the very least to prevent constantly re-resolving. backoffIndex = 1 timer = newTimerDNSResRate(minDNSResRate) select { @@ -231,7 +236,8 @@ func (d *dnsResolver) watcher() { case <-d.rn: } } else { - // Poll on an error found in DNS Resolver or an error received from ClientConn. + // Poll on an error found in DNS Resolver or an error received from + // ClientConn. timer = newTimer(backoff.DefaultExponential.Backoff(backoffIndex)) backoffIndex++ } @@ -278,7 +284,8 @@ func (d *dnsResolver) lookupSRV() ([]resolver.Address, error) { } func handleDNSError(err error, lookupType string) error { - if dnsErr, ok := err.(*net.DNSError); ok && !dnsErr.IsTimeout && !dnsErr.IsTemporary { + dnsErr, ok := err.(*net.DNSError) + if ok && !dnsErr.IsTimeout && !dnsErr.IsTemporary { // Timeouts and temporary errors should be communicated to gRPC to // attempt another DNS query (with backoff). Other errors should be // suppressed (they may represent the absence of a TXT record). @@ -307,10 +314,12 @@ func (d *dnsResolver) lookupTXT() *serviceconfig.ParseResult { res += s } - // TXT record must have "grpc_config=" attribute in order to be used as service config. + // TXT record must have "grpc_config=" attribute in order to be used as + // service config. if !strings.HasPrefix(res, txtAttribute) { logger.Warningf("dns: TXT record %v missing %v attribute", res, txtAttribute) - // This is not an error; it is the equivalent of not having a service config. + // This is not an error; it is the equivalent of not having a service + // config. return nil } sc := canaryingSC(strings.TrimPrefix(res, txtAttribute)) @@ -352,9 +361,10 @@ func (d *dnsResolver) lookup() (*resolver.State, error) { return &state, nil } -// formatIP returns ok = false if addr is not a valid textual representation of an IP address. -// If addr is an IPv4 address, return the addr and ok = true. -// If addr is an IPv6 address, return the addr enclosed in square brackets and ok = true. +// formatIP returns ok = false if addr is not a valid textual representation of +// an IP address. If addr is an IPv4 address, return the addr and ok = true. +// If addr is an IPv6 address, return the addr enclosed in square brackets and +// ok = true. func formatIP(addr string) (addrIP string, ok bool) { ip := net.ParseIP(addr) if ip == nil { @@ -366,10 +376,10 @@ func formatIP(addr string) (addrIP string, ok bool) { return "[" + addr + "]", true } -// parseTarget takes the user input target string and default port, returns formatted host and port info. -// If target doesn't specify a port, set the port to be the defaultPort. -// If target is in IPv6 format and host-name is enclosed in square brackets, brackets -// are stripped when setting the host. +// parseTarget takes the user input target string and default port, returns +// formatted host and port info. If target doesn't specify a port, set the port +// to be the defaultPort. If target is in IPv6 format and host-name is enclosed +// in square brackets, brackets are stripped when setting the host. // examples: // target: "www.google.com" defaultPort: "443" returns host: "www.google.com", port: "443" // target: "ipv4-host:80" defaultPort: "443" returns host: "ipv4-host", port: "80" @@ -385,12 +395,14 @@ func parseTarget(target, defaultPort string) (host, port string, err error) { } if host, port, err = net.SplitHostPort(target); err == nil { if port == "" { - // If the port field is empty (target ends with colon), e.g. "[::1]:", this is an error. + // If the port field is empty (target ends with colon), e.g. "[::1]:", + // this is an error. return "", "", errEndsWithColon } // target has port, i.e ipv4-host:port, [ipv6-host]:port, host-name:port if host == "" { - // Keep consistent with net.Dial(): If the host is empty, as in ":80", the local system is assumed. + // Keep consistent with net.Dial(): If the host is empty, as in ":80", + // the local system is assumed. host = "localhost" } return host, port, nil diff --git a/vendor/google.golang.org/grpc/internal/serviceconfig/duration.go b/vendor/google.golang.org/grpc/internal/serviceconfig/duration.go new file mode 100644 index 000000000000..11d82afcc7ec --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/serviceconfig/duration.go @@ -0,0 +1,130 @@ +/* + * + * Copyright 2023 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package serviceconfig + +import ( + "encoding/json" + "fmt" + "math" + "strconv" + "strings" + "time" +) + +// Duration defines JSON marshal and unmarshal methods to conform to the +// protobuf JSON spec defined [here]. +// +// [here]: https://protobuf.dev/reference/protobuf/google.protobuf/#duration +type Duration time.Duration + +func (d Duration) String() string { + return fmt.Sprint(time.Duration(d)) +} + +// MarshalJSON converts from d to a JSON string output. +func (d Duration) MarshalJSON() ([]byte, error) { + ns := time.Duration(d).Nanoseconds() + sec := ns / int64(time.Second) + ns = ns % int64(time.Second) + + var sign string + if sec < 0 || ns < 0 { + sign, sec, ns = "-", -1*sec, -1*ns + } + + // Generated output always contains 0, 3, 6, or 9 fractional digits, + // depending on required precision. + str := fmt.Sprintf("%s%d.%09d", sign, sec, ns) + str = strings.TrimSuffix(str, "000") + str = strings.TrimSuffix(str, "000") + str = strings.TrimSuffix(str, ".000") + return []byte(fmt.Sprintf("\"%ss\"", str)), nil +} + +// UnmarshalJSON unmarshals b as a duration JSON string into d. +func (d *Duration) UnmarshalJSON(b []byte) error { + var s string + if err := json.Unmarshal(b, &s); err != nil { + return err + } + if !strings.HasSuffix(s, "s") { + return fmt.Errorf("malformed duration %q: missing seconds unit", s) + } + neg := false + if s[0] == '-' { + neg = true + s = s[1:] + } + ss := strings.SplitN(s[:len(s)-1], ".", 3) + if len(ss) > 2 { + return fmt.Errorf("malformed duration %q: too many decimals", s) + } + // hasDigits is set if either the whole or fractional part of the number is + // present, since both are optional but one is required. + hasDigits := false + var sec, ns int64 + if len(ss[0]) > 0 { + var err error + if sec, err = strconv.ParseInt(ss[0], 10, 64); err != nil { + return fmt.Errorf("malformed duration %q: %v", s, err) + } + // Maximum seconds value per the durationpb spec. + const maxProtoSeconds = 315_576_000_000 + if sec > maxProtoSeconds { + return fmt.Errorf("out of range: %q", s) + } + hasDigits = true + } + if len(ss) == 2 && len(ss[1]) > 0 { + if len(ss[1]) > 9 { + return fmt.Errorf("malformed duration %q: too many digits after decimal", s) + } + var err error + if ns, err = strconv.ParseInt(ss[1], 10, 64); err != nil { + return fmt.Errorf("malformed duration %q: %v", s, err) + } + for i := 9; i > len(ss[1]); i-- { + ns *= 10 + } + hasDigits = true + } + if !hasDigits { + return fmt.Errorf("malformed duration %q: contains no numbers", s) + } + + if neg { + sec *= -1 + ns *= -1 + } + + // Maximum/minimum seconds/nanoseconds representable by Go's time.Duration. + const maxSeconds = math.MaxInt64 / int64(time.Second) + const maxNanosAtMaxSeconds = math.MaxInt64 % int64(time.Second) + const minSeconds = math.MinInt64 / int64(time.Second) + const minNanosAtMinSeconds = math.MinInt64 % int64(time.Second) + + if sec > maxSeconds || (sec == maxSeconds && ns >= maxNanosAtMaxSeconds) { + *d = Duration(math.MaxInt64) + } else if sec < minSeconds || (sec == minSeconds && ns <= minNanosAtMinSeconds) { + *d = Duration(math.MinInt64) + } else { + *d = Duration(sec*int64(time.Second) + ns) + } + return nil +} diff --git a/vendor/google.golang.org/grpc/internal/status/status.go b/vendor/google.golang.org/grpc/internal/status/status.go index b0ead4f54f82..4cf85cad9f81 100644 --- a/vendor/google.golang.org/grpc/internal/status/status.go +++ b/vendor/google.golang.org/grpc/internal/status/status.go @@ -49,7 +49,7 @@ func New(c codes.Code, msg string) *Status { } // Newf returns New(c, fmt.Sprintf(format, a...)). -func Newf(c codes.Code, format string, a ...interface{}) *Status { +func Newf(c codes.Code, format string, a ...any) *Status { return New(c, fmt.Sprintf(format, a...)) } @@ -64,7 +64,7 @@ func Err(c codes.Code, msg string) error { } // Errorf returns Error(c, fmt.Sprintf(format, a...)). -func Errorf(c codes.Code, format string, a ...interface{}) error { +func Errorf(c codes.Code, format string, a ...any) error { return Err(c, fmt.Sprintf(format, a...)) } @@ -120,11 +120,11 @@ func (s *Status) WithDetails(details ...proto.Message) (*Status, error) { // Details returns a slice of details messages attached to the status. // If a detail cannot be decoded, the error is returned in place of the detail. -func (s *Status) Details() []interface{} { +func (s *Status) Details() []any { if s == nil || s.s == nil { return nil } - details := make([]interface{}, 0, len(s.s.Details)) + details := make([]any, 0, len(s.s.Details)) for _, any := range s.s.Details { detail := &ptypes.DynamicAny{} if err := ptypes.UnmarshalAny(any, detail); err != nil { diff --git a/vendor/google.golang.org/grpc/internal/transport/controlbuf.go b/vendor/google.golang.org/grpc/internal/transport/controlbuf.go index 9097385e1a6a..b330ccedc8ab 100644 --- a/vendor/google.golang.org/grpc/internal/transport/controlbuf.go +++ b/vendor/google.golang.org/grpc/internal/transport/controlbuf.go @@ -22,6 +22,7 @@ import ( "bytes" "errors" "fmt" + "net" "runtime" "strconv" "sync" @@ -29,6 +30,7 @@ import ( "golang.org/x/net/http2" "golang.org/x/net/http2/hpack" + "google.golang.org/grpc/internal/grpclog" "google.golang.org/grpc/internal/grpcutil" "google.golang.org/grpc/status" ) @@ -38,7 +40,7 @@ var updateHeaderTblSize = func(e *hpack.Encoder, v uint32) { } type itemNode struct { - it interface{} + it any next *itemNode } @@ -47,7 +49,7 @@ type itemList struct { tail *itemNode } -func (il *itemList) enqueue(i interface{}) { +func (il *itemList) enqueue(i any) { n := &itemNode{it: i} if il.tail == nil { il.head, il.tail = n, n @@ -59,11 +61,11 @@ func (il *itemList) enqueue(i interface{}) { // peek returns the first item in the list without removing it from the // list. -func (il *itemList) peek() interface{} { +func (il *itemList) peek() any { return il.head.it } -func (il *itemList) dequeue() interface{} { +func (il *itemList) dequeue() any { if il.head == nil { return nil } @@ -334,7 +336,7 @@ func (c *controlBuffer) put(it cbItem) error { return err } -func (c *controlBuffer) executeAndPut(f func(it interface{}) bool, it cbItem) (bool, error) { +func (c *controlBuffer) executeAndPut(f func(it any) bool, it cbItem) (bool, error) { var wakeUp bool c.mu.Lock() if c.err != nil { @@ -371,7 +373,7 @@ func (c *controlBuffer) executeAndPut(f func(it interface{}) bool, it cbItem) (b } // Note argument f should never be nil. -func (c *controlBuffer) execute(f func(it interface{}) bool, it interface{}) (bool, error) { +func (c *controlBuffer) execute(f func(it any) bool, it any) (bool, error) { c.mu.Lock() if c.err != nil { c.mu.Unlock() @@ -385,7 +387,7 @@ func (c *controlBuffer) execute(f func(it interface{}) bool, it interface{}) (bo return true, nil } -func (c *controlBuffer) get(block bool) (interface{}, error) { +func (c *controlBuffer) get(block bool) (any, error) { for { c.mu.Lock() if c.err != nil { @@ -486,12 +488,14 @@ type loopyWriter struct { hEnc *hpack.Encoder // HPACK encoder. bdpEst *bdpEstimator draining bool + conn net.Conn + logger *grpclog.PrefixLogger // Side-specific handlers ssGoAwayHandler func(*goAway) (bool, error) } -func newLoopyWriter(s side, fr *framer, cbuf *controlBuffer, bdpEst *bdpEstimator) *loopyWriter { +func newLoopyWriter(s side, fr *framer, cbuf *controlBuffer, bdpEst *bdpEstimator, conn net.Conn, logger *grpclog.PrefixLogger) *loopyWriter { var buf bytes.Buffer l := &loopyWriter{ side: s, @@ -504,6 +508,8 @@ func newLoopyWriter(s side, fr *framer, cbuf *controlBuffer, bdpEst *bdpEstimato hBuf: &buf, hEnc: hpack.NewEncoder(&buf), bdpEst: bdpEst, + conn: conn, + logger: logger, } return l } @@ -521,15 +527,27 @@ const minBatchSize = 1000 // 2. Stream level flow control quota available. // // In each iteration of run loop, other than processing the incoming control -// frame, loopy calls processData, which processes one node from the activeStreams linked-list. -// This results in writing of HTTP2 frames into an underlying write buffer. -// When there's no more control frames to read from controlBuf, loopy flushes the write buffer. -// As an optimization, to increase the batch size for each flush, loopy yields the processor, once -// if the batch size is too low to give stream goroutines a chance to fill it up. +// frame, loopy calls processData, which processes one node from the +// activeStreams linked-list. This results in writing of HTTP2 frames into an +// underlying write buffer. When there's no more control frames to read from +// controlBuf, loopy flushes the write buffer. As an optimization, to increase +// the batch size for each flush, loopy yields the processor, once if the batch +// size is too low to give stream goroutines a chance to fill it up. +// +// Upon exiting, if the error causing the exit is not an I/O error, run() +// flushes and closes the underlying connection. Otherwise, the connection is +// left open to allow the I/O error to be encountered by the reader instead. func (l *loopyWriter) run() (err error) { - // Always flush the writer before exiting in case there are pending frames - // to be sent. - defer l.framer.writer.Flush() + defer func() { + if l.logger.V(logLevel) { + l.logger.Infof("loopyWriter exiting with error: %v", err) + } + if !isIOError(err) { + l.framer.writer.Flush() + l.conn.Close() + } + l.cbuf.finish() + }() for { it, err := l.cbuf.get(true) if err != nil { @@ -581,11 +599,11 @@ func (l *loopyWriter) outgoingWindowUpdateHandler(w *outgoingWindowUpdate) error return l.framer.fr.WriteWindowUpdate(w.streamID, w.increment) } -func (l *loopyWriter) incomingWindowUpdateHandler(w *incomingWindowUpdate) error { +func (l *loopyWriter) incomingWindowUpdateHandler(w *incomingWindowUpdate) { // Otherwise update the quota. if w.streamID == 0 { l.sendQuota += w.increment - return nil + return } // Find the stream and update it. if str, ok := l.estdStreams[w.streamID]; ok { @@ -593,10 +611,9 @@ func (l *loopyWriter) incomingWindowUpdateHandler(w *incomingWindowUpdate) error if strQuota := int(l.oiws) - str.bytesOutStanding; strQuota > 0 && str.state == waitingOnStreamQuota { str.state = active l.activeStreams.enqueue(str) - return nil + return } } - return nil } func (l *loopyWriter) outgoingSettingsHandler(s *outgoingSettings) error { @@ -604,13 +621,11 @@ func (l *loopyWriter) outgoingSettingsHandler(s *outgoingSettings) error { } func (l *loopyWriter) incomingSettingsHandler(s *incomingSettings) error { - if err := l.applySettings(s.ss); err != nil { - return err - } + l.applySettings(s.ss) return l.framer.fr.WriteSettingsAck() } -func (l *loopyWriter) registerStreamHandler(h *registerStream) error { +func (l *loopyWriter) registerStreamHandler(h *registerStream) { str := &outStream{ id: h.streamID, state: empty, @@ -618,15 +633,14 @@ func (l *loopyWriter) registerStreamHandler(h *registerStream) error { wq: h.wq, } l.estdStreams[h.streamID] = str - return nil } func (l *loopyWriter) headerHandler(h *headerFrame) error { if l.side == serverSide { str, ok := l.estdStreams[h.streamID] if !ok { - if logger.V(logLevel) { - logger.Warningf("transport: loopy doesn't recognize the stream: %d", h.streamID) + if l.logger.V(logLevel) { + l.logger.Infof("Unrecognized streamID %d in loopyWriter", h.streamID) } return nil } @@ -681,8 +695,8 @@ func (l *loopyWriter) writeHeader(streamID uint32, endStream bool, hf []hpack.He l.hBuf.Reset() for _, f := range hf { if err := l.hEnc.WriteField(f); err != nil { - if logger.V(logLevel) { - logger.Warningf("transport: loopyWriter.writeHeader encountered error while encoding headers: %v", err) + if l.logger.V(logLevel) { + l.logger.Warningf("Encountered error while encoding headers: %v", err) } } } @@ -720,10 +734,10 @@ func (l *loopyWriter) writeHeader(streamID uint32, endStream bool, hf []hpack.He return nil } -func (l *loopyWriter) preprocessData(df *dataFrame) error { +func (l *loopyWriter) preprocessData(df *dataFrame) { str, ok := l.estdStreams[df.streamID] if !ok { - return nil + return } // If we got data for a stream it means that // stream was originated and the headers were sent out. @@ -732,7 +746,6 @@ func (l *loopyWriter) preprocessData(df *dataFrame) error { str.state = active l.activeStreams.enqueue(str) } - return nil } func (l *loopyWriter) pingHandler(p *ping) error { @@ -743,9 +756,8 @@ func (l *loopyWriter) pingHandler(p *ping) error { } -func (l *loopyWriter) outFlowControlSizeRequestHandler(o *outFlowControlSizeRequest) error { +func (l *loopyWriter) outFlowControlSizeRequestHandler(o *outFlowControlSizeRequest) { o.resp <- l.sendQuota - return nil } func (l *loopyWriter) cleanupStreamHandler(c *cleanupStream) error { @@ -763,6 +775,7 @@ func (l *loopyWriter) cleanupStreamHandler(c *cleanupStream) error { } } if l.draining && len(l.estdStreams) == 0 { + // Flush and close the connection; we are done with it. return errors.New("finished processing active streams while in draining mode") } return nil @@ -798,6 +811,7 @@ func (l *loopyWriter) incomingGoAwayHandler(*incomingGoAway) error { if l.side == clientSide { l.draining = true if len(l.estdStreams) == 0 { + // Flush and close the connection; we are done with it. return errors.New("received GOAWAY with no active streams") } } @@ -816,17 +830,10 @@ func (l *loopyWriter) goAwayHandler(g *goAway) error { return nil } -func (l *loopyWriter) closeConnectionHandler() error { - // Exit loopyWriter entirely by returning an error here. This will lead to - // the transport closing the connection, and, ultimately, transport - // closure. - return ErrConnClosing -} - -func (l *loopyWriter) handle(i interface{}) error { +func (l *loopyWriter) handle(i any) error { switch i := i.(type) { case *incomingWindowUpdate: - return l.incomingWindowUpdateHandler(i) + l.incomingWindowUpdateHandler(i) case *outgoingWindowUpdate: return l.outgoingWindowUpdateHandler(i) case *incomingSettings: @@ -836,7 +843,7 @@ func (l *loopyWriter) handle(i interface{}) error { case *headerFrame: return l.headerHandler(i) case *registerStream: - return l.registerStreamHandler(i) + l.registerStreamHandler(i) case *cleanupStream: return l.cleanupStreamHandler(i) case *earlyAbortStream: @@ -844,21 +851,24 @@ func (l *loopyWriter) handle(i interface{}) error { case *incomingGoAway: return l.incomingGoAwayHandler(i) case *dataFrame: - return l.preprocessData(i) + l.preprocessData(i) case *ping: return l.pingHandler(i) case *goAway: return l.goAwayHandler(i) case *outFlowControlSizeRequest: - return l.outFlowControlSizeRequestHandler(i) + l.outFlowControlSizeRequestHandler(i) case closeConnection: - return l.closeConnectionHandler() + // Just return a non-I/O error and run() will flush and close the + // connection. + return ErrConnClosing default: return fmt.Errorf("transport: unknown control message type %T", i) } + return nil } -func (l *loopyWriter) applySettings(ss []http2.Setting) error { +func (l *loopyWriter) applySettings(ss []http2.Setting) { for _, s := range ss { switch s.ID { case http2.SettingInitialWindowSize: @@ -877,7 +887,6 @@ func (l *loopyWriter) applySettings(ss []http2.Setting) error { updateHeaderTblSize(l.hEnc, s.Val) } } - return nil } // processData removes the first stream from active streams, writes out at most 16KB @@ -911,7 +920,7 @@ func (l *loopyWriter) processData() (bool, error) { return false, err } if err := l.cleanupStreamHandler(trailer.cleanup); err != nil { - return false, nil + return false, err } } else { l.activeStreams.enqueue(str) diff --git a/vendor/google.golang.org/grpc/internal/transport/handler_server.go b/vendor/google.golang.org/grpc/internal/transport/handler_server.go index e6626bf96e7c..98f80e3fa00a 100644 --- a/vendor/google.golang.org/grpc/internal/transport/handler_server.go +++ b/vendor/google.golang.org/grpc/internal/transport/handler_server.go @@ -39,6 +39,7 @@ import ( "golang.org/x/net/http2" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" + "google.golang.org/grpc/internal/grpclog" "google.golang.org/grpc/internal/grpcutil" "google.golang.org/grpc/metadata" "google.golang.org/grpc/peer" @@ -83,6 +84,7 @@ func NewServerHandlerTransport(w http.ResponseWriter, r *http.Request, stats []s contentSubtype: contentSubtype, stats: stats, } + st.logger = prefixLoggerForServerHandlerTransport(st) if v := r.Header.Get("grpc-timeout"); v != "" { to, err := decodeTimeout(v) @@ -150,13 +152,14 @@ type serverHandlerTransport struct { // TODO make sure this is consistent across handler_server and http2_server contentSubtype string - stats []stats.Handler + stats []stats.Handler + logger *grpclog.PrefixLogger } func (ht *serverHandlerTransport) Close(err error) { ht.closeOnce.Do(func() { - if logger.V(logLevel) { - logger.Infof("Closing serverHandlerTransport: %v", err) + if ht.logger.V(logLevel) { + ht.logger.Infof("Closing: %v", err) } close(ht.closedCh) }) @@ -450,7 +453,7 @@ func (ht *serverHandlerTransport) IncrMsgSent() {} func (ht *serverHandlerTransport) IncrMsgRecv() {} -func (ht *serverHandlerTransport) Drain() { +func (ht *serverHandlerTransport) Drain(debugData string) { panic("Drain() is not implemented") } diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_client.go b/vendor/google.golang.org/grpc/internal/transport/http2_client.go index 79ee8aea0a21..badab8acf3b1 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_client.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_client.go @@ -38,6 +38,7 @@ import ( "google.golang.org/grpc/credentials" "google.golang.org/grpc/internal/channelz" icredentials "google.golang.org/grpc/internal/credentials" + "google.golang.org/grpc/internal/grpclog" "google.golang.org/grpc/internal/grpcsync" "google.golang.org/grpc/internal/grpcutil" imetadata "google.golang.org/grpc/internal/metadata" @@ -145,6 +146,7 @@ type http2Client struct { bufferPool *bufferPool connectionID uint64 + logger *grpclog.PrefixLogger } func dial(ctx context.Context, fn func(context.Context, string) (net.Conn, error), addr resolver.Address, useProxy bool, grpcUA string) (net.Conn, error) { @@ -244,7 +246,7 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts if err := connectCtx.Err(); err != nil { // connectCtx expired before exiting the function. Hard close the connection. if logger.V(logLevel) { - logger.Infof("newClientTransport: aborting due to connectCtx: %v", err) + logger.Infof("Aborting due to connect deadline expiring: %v", err) } conn.Close() } @@ -328,7 +330,7 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts readerDone: make(chan struct{}), writerDone: make(chan struct{}), goAway: make(chan struct{}), - framer: newFramer(conn, writeBufSize, readBufSize, maxHeaderListSize), + framer: newFramer(conn, writeBufSize, readBufSize, opts.SharedWriteBuffer, maxHeaderListSize), fc: &trInFlow{limit: uint32(icwz)}, scheme: scheme, activeStreams: make(map[uint32]*Stream), @@ -346,6 +348,7 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts bufferPool: newBufferPool(), onClose: onClose, } + t.logger = prefixLoggerForClientTransport(t) // Add peer information to the http2client context. t.ctx = peer.NewContext(t.ctx, t.getPeer()) @@ -444,15 +447,8 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts return nil, err } go func() { - t.loopy = newLoopyWriter(clientSide, t.framer, t.controlBuf, t.bdpEst) - err := t.loopy.run() - if logger.V(logLevel) { - logger.Infof("transport: loopyWriter exited. Closing connection. Err: %v", err) - } - // Do not close the transport. Let reader goroutine handle it since - // there might be data in the buffers. - t.conn.Close() - t.controlBuf.finish() + t.loopy = newLoopyWriter(clientSide, t.framer, t.controlBuf, t.bdpEst, t.conn, t.logger) + t.loopy.run() close(t.writerDone) }() return t, nil @@ -766,7 +762,7 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*Stream, firstTry := true var ch chan struct{} transportDrainRequired := false - checkForStreamQuota := func(it interface{}) bool { + checkForStreamQuota := func(it any) bool { if t.streamQuota <= 0 { // Can go negative if server decreases it. if firstTry { t.waitingStreams++ @@ -789,7 +785,7 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*Stream, s.id = h.streamID s.fc = &inFlow{limit: uint32(t.initialWindowSize)} t.mu.Lock() - if t.activeStreams == nil { // Can be niled from Close(). + if t.state == draining || t.activeStreams == nil { // Can be niled from Close(). t.mu.Unlock() return false // Don't create a stream if the transport is already closed. } @@ -804,7 +800,7 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*Stream, return true } var hdrListSizeErr error - checkForHeaderListSize := func(it interface{}) bool { + checkForHeaderListSize := func(it any) bool { if t.maxSendHeaderListSize == nil { return true } @@ -819,7 +815,7 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*Stream, return true } for { - success, err := t.controlBuf.executeAndPut(func(it interface{}) bool { + success, err := t.controlBuf.executeAndPut(func(it any) bool { return checkForHeaderListSize(it) && checkForStreamQuota(it) }, hdr) if err != nil { @@ -866,8 +862,8 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*Stream, } } if transportDrainRequired { - if logger.V(logLevel) { - logger.Infof("transport: t.nextID > MaxStreamID. Draining") + if t.logger.V(logLevel) { + t.logger.Infof("Draining transport: t.nextID > MaxStreamID") } t.GracefulClose() } @@ -931,7 +927,7 @@ func (t *http2Client) closeStream(s *Stream, err error, rst bool, rstCode http2. rst: rst, rstCode: rstCode, } - addBackStreamQuota := func(interface{}) bool { + addBackStreamQuota := func(any) bool { t.streamQuota++ if t.streamQuota > 0 && t.waitingStreams > 0 { select { @@ -959,8 +955,8 @@ func (t *http2Client) Close(err error) { t.mu.Unlock() return } - if logger.V(logLevel) { - logger.Infof("transport: closing: %v", err) + if t.logger.V(logLevel) { + t.logger.Infof("Closing: %v", err) } // Call t.onClose ASAP to prevent the client from attempting to create new // streams. @@ -1016,8 +1012,8 @@ func (t *http2Client) GracefulClose() { t.mu.Unlock() return } - if logger.V(logLevel) { - logger.Infof("transport: GracefulClose called") + if t.logger.V(logLevel) { + t.logger.Infof("GracefulClose called") } t.onClose(GoAwayInvalid) t.state = draining @@ -1084,7 +1080,7 @@ func (t *http2Client) updateWindow(s *Stream, n uint32) { // for the transport and the stream based on the current bdp // estimation. func (t *http2Client) updateFlowControl(n uint32) { - updateIWS := func(interface{}) bool { + updateIWS := func(any) bool { t.initialWindowSize = int32(n) t.mu.Lock() for _, s := range t.activeStreams { @@ -1181,8 +1177,8 @@ func (t *http2Client) handleRSTStream(f *http2.RSTStreamFrame) { } statusCode, ok := http2ErrConvTab[f.ErrCode] if !ok { - if logger.V(logLevel) { - logger.Warningf("transport: http2Client.handleRSTStream found no mapped gRPC status for the received http2 error: %v", f.ErrCode) + if t.logger.V(logLevel) { + t.logger.Infof("Received a RST_STREAM frame with code %q, but found no mapped gRPC status", f.ErrCode) } statusCode = codes.Unknown } @@ -1237,7 +1233,7 @@ func (t *http2Client) handleSettings(f *http2.SettingsFrame, isFirst bool) { } updateFuncs = append(updateFuncs, updateStreamQuota) } - t.controlBuf.executeAndPut(func(interface{}) bool { + t.controlBuf.executeAndPut(func(any) bool { for _, f := range updateFuncs { f() } @@ -1264,10 +1260,12 @@ func (t *http2Client) handleGoAway(f *http2.GoAwayFrame) { t.mu.Unlock() return } - if f.ErrCode == http2.ErrCodeEnhanceYourCalm { - if logger.V(logLevel) { - logger.Infof("Client received GoAway with http2.ErrCodeEnhanceYourCalm.") - } + if f.ErrCode == http2.ErrCodeEnhanceYourCalm && string(f.DebugData()) == "too_many_pings" { + // When a client receives a GOAWAY with error code ENHANCE_YOUR_CALM and debug + // data equal to ASCII "too_many_pings", it should log the occurrence at a log level that is + // enabled by default and double the configure KEEPALIVE_TIME used for new connections + // on that channel. + logger.Errorf("Client received GoAway with error code ENHANCE_YOUR_CALM and debug data equal to ASCII \"too_many_pings\".") } id := f.LastStreamID if id > 0 && id%2 == 0 { @@ -1339,7 +1337,7 @@ func (t *http2Client) handleGoAway(f *http2.GoAwayFrame) { // setGoAwayReason sets the value of t.goAwayReason based // on the GoAway frame received. -// It expects a lock on transport's mutext to be held by +// It expects a lock on transport's mutex to be held by // the caller. func (t *http2Client) setGoAwayReason(f *http2.GoAwayFrame) { t.goAwayReason = GoAwayNoReason @@ -1507,14 +1505,15 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) { return } - isHeader := false - - // If headerChan hasn't been closed yet - if atomic.CompareAndSwapUint32(&s.headerChanClosed, 0, 1) { - s.headerValid = true - if !endStream { - // HEADERS frame block carries a Response-Headers. - isHeader = true + // For headers, set them in s.header and close headerChan. For trailers or + // trailers-only, closeStream will set the trailers and close headerChan as + // needed. + if !endStream { + // If headerChan hasn't been closed yet (expected, given we checked it + // above, but something else could have potentially closed the whole + // stream). + if atomic.CompareAndSwapUint32(&s.headerChanClosed, 0, 1) { + s.headerValid = true // These values can be set without any synchronization because // stream goroutine will read it only after seeing a closed // headerChan which we'll close after setting this. @@ -1522,15 +1521,12 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) { if len(mdata) > 0 { s.header = mdata } - } else { - // HEADERS frame block carries a Trailers-Only. - s.noHeaders = true + close(s.headerChan) } - close(s.headerChan) } for _, sh := range t.statsHandlers { - if isHeader { + if !endStream { inHeader := &stats.InHeader{ Client: true, WireLength: int(frame.Header().Length), @@ -1556,9 +1552,10 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) { statusGen = status.New(rawStatusCode, grpcMessage) } - // if client received END_STREAM from server while stream was still active, send RST_STREAM - rst := s.getState() == streamActive - t.closeStream(s, io.EOF, rst, http2.ErrCodeNo, statusGen, mdata, true) + // If client received END_STREAM from server while stream was still active, + // send RST_STREAM. + rstStream := s.getState() == streamActive + t.closeStream(s, io.EOF, rstStream, http2.ErrCodeNo, statusGen, mdata, true) } // readServerPreface reads and handles the initial settings frame from the diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_server.go b/vendor/google.golang.org/grpc/internal/transport/http2_server.go index bc3da706726d..8d3a353c1d58 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_server.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_server.go @@ -35,7 +35,9 @@ import ( "github.com/golang/protobuf/proto" "golang.org/x/net/http2" "golang.org/x/net/http2/hpack" + "google.golang.org/grpc/internal/grpclog" "google.golang.org/grpc/internal/grpcutil" + "google.golang.org/grpc/internal/pretty" "google.golang.org/grpc/internal/syscall" "google.golang.org/grpc/codes" @@ -129,6 +131,8 @@ type http2Server struct { // This lock may not be taken if mu is already held. maxStreamMu sync.Mutex maxStreamID uint32 // max stream ID ever seen + + logger *grpclog.PrefixLogger } // NewServerTransport creates a http2 transport with conn and configuration @@ -161,7 +165,7 @@ func NewServerTransport(conn net.Conn, config *ServerConfig) (_ ServerTransport, if config.MaxHeaderListSize != nil { maxHeaderListSize = *config.MaxHeaderListSize } - framer := newFramer(conn, writeBufSize, readBufSize, maxHeaderListSize) + framer := newFramer(conn, writeBufSize, readBufSize, config.SharedWriteBuffer, maxHeaderListSize) // Send initial settings as connection preface to client. isettings := []http2.Setting{{ ID: http2.SettingMaxFrameSize, @@ -234,7 +238,7 @@ func NewServerTransport(conn net.Conn, config *ServerConfig) (_ ServerTransport, kp.Timeout = defaultServerKeepaliveTimeout } if kp.Time != infinity { - if err = syscall.SetTCPUserTimeout(conn, kp.Timeout); err != nil { + if err = syscall.SetTCPUserTimeout(rawConn, kp.Timeout); err != nil { return nil, connectionErrorf(false, err, "transport: failed to set TCP_USER_TIMEOUT: %v", err) } } @@ -267,6 +271,7 @@ func NewServerTransport(conn net.Conn, config *ServerConfig) (_ ServerTransport, czData: new(channelzData), bufferPool: newBufferPool(), } + t.logger = prefixLoggerForServerTransport(t) // Add peer information to the http2server context. t.ctx = peer.NewContext(t.ctx, t.getPeer()) @@ -331,14 +336,9 @@ func NewServerTransport(conn net.Conn, config *ServerConfig) (_ ServerTransport, t.handleSettings(sf) go func() { - t.loopy = newLoopyWriter(serverSide, t.framer, t.controlBuf, t.bdpEst) + t.loopy = newLoopyWriter(serverSide, t.framer, t.controlBuf, t.bdpEst, t.conn, t.logger) t.loopy.ssGoAwayHandler = t.outgoingGoAwayHandler - err := t.loopy.run() - if logger.V(logLevel) { - logger.Infof("transport: loopyWriter exited. Closing connection. Err: %v", err) - } - t.conn.Close() - t.controlBuf.finish() + t.loopy.run() close(t.writerDone) }() go t.keepalive() @@ -383,7 +383,7 @@ func (t *http2Server) operateHeaders(frame *http2.MetaHeadersFrame, handle func( // if false, content-type was missing or invalid isGRPC = false contentType = "" - mdata = make(map[string][]string) + mdata = make(metadata.MD, len(frame.Fields)) httpMethod string // these are set if an error is encountered while parsing the headers protocolError bool @@ -404,6 +404,17 @@ func (t *http2Server) operateHeaders(frame *http2.MetaHeadersFrame, handle func( mdata[hf.Name] = append(mdata[hf.Name], hf.Value) s.contentSubtype = contentSubtype isGRPC = true + + case "grpc-accept-encoding": + mdata[hf.Name] = append(mdata[hf.Name], hf.Value) + if hf.Value == "" { + continue + } + compressors := hf.Value + if s.clientAdvertisedCompressors != "" { + compressors = s.clientAdvertisedCompressors + "," + compressors + } + s.clientAdvertisedCompressors = compressors case "grpc-encoding": s.recvCompress = hf.Value case ":method": @@ -419,8 +430,8 @@ func (t *http2Server) operateHeaders(frame *http2.MetaHeadersFrame, handle func( // "Transports must consider requests containing the Connection header // as malformed." - A41 case "connection": - if logger.V(logLevel) { - logger.Errorf("transport: http2Server.operateHeaders parsed a :connection header which makes a request malformed as per the HTTP/2 spec") + if t.logger.V(logLevel) { + t.logger.Infof("Received a HEADERS frame with a :connection header which makes the request malformed, as per the HTTP/2 spec") } protocolError = true default: @@ -430,7 +441,7 @@ func (t *http2Server) operateHeaders(frame *http2.MetaHeadersFrame, handle func( v, err := decodeMetadataHeader(hf.Name, hf.Value) if err != nil { headerError = status.Newf(codes.Internal, "malformed binary metadata %q in header %q: %v", hf.Value, hf.Name, err) - logger.Warningf("Failed to decode metadata header (%q, %q): %v", hf.Name, hf.Value, err) + t.logger.Warningf("Failed to decode metadata header (%q, %q): %v", hf.Name, hf.Value, err) break } mdata[hf.Name] = append(mdata[hf.Name], v) @@ -444,8 +455,8 @@ func (t *http2Server) operateHeaders(frame *http2.MetaHeadersFrame, handle func( // error, this takes precedence over a client not speaking gRPC. if len(mdata[":authority"]) > 1 || len(mdata["host"]) > 1 { errMsg := fmt.Sprintf("num values of :authority: %v, num values of host: %v, both must only have 1 value as per HTTP/2 spec", len(mdata[":authority"]), len(mdata["host"])) - if logger.V(logLevel) { - logger.Errorf("transport: %v", errMsg) + if t.logger.V(logLevel) { + t.logger.Infof("Aborting the stream early: %v", errMsg) } t.controlBuf.put(&earlyAbortStream{ httpStatus: http.StatusBadRequest, @@ -539,9 +550,9 @@ func (t *http2Server) operateHeaders(frame *http2.MetaHeadersFrame, handle func( } if httpMethod != http.MethodPost { t.mu.Unlock() - errMsg := fmt.Sprintf("http2Server.operateHeaders parsed a :method field: %v which should be POST", httpMethod) - if logger.V(logLevel) { - logger.Infof("transport: %v", errMsg) + errMsg := fmt.Sprintf("Received a HEADERS frame with :method %q which should be POST", httpMethod) + if t.logger.V(logLevel) { + t.logger.Infof("Aborting the stream early: %v", errMsg) } t.controlBuf.put(&earlyAbortStream{ httpStatus: 405, @@ -557,8 +568,8 @@ func (t *http2Server) operateHeaders(frame *http2.MetaHeadersFrame, handle func( var err error if s.ctx, err = t.inTapHandle(s.ctx, &tap.Info{FullMethodName: s.method}); err != nil { t.mu.Unlock() - if logger.V(logLevel) { - logger.Infof("transport: http2Server.operateHeaders got an error from InTapHandle: %v", err) + if t.logger.V(logLevel) { + t.logger.Infof("Aborting the stream early due to InTapHandle failure: %v", err) } stat, ok := status.FromError(err) if !ok { @@ -595,7 +606,7 @@ func (t *http2Server) operateHeaders(frame *http2.MetaHeadersFrame, handle func( LocalAddr: t.localAddr, Compression: s.recvCompress, WireLength: int(frame.Header().Length), - Header: metadata.MD(mdata).Copy(), + Header: mdata.Copy(), } sh.HandleRPC(s.ctx, inHeader) } @@ -632,8 +643,8 @@ func (t *http2Server) HandleStreams(handle func(*Stream), traceCtx func(context. atomic.StoreInt64(&t.lastRead, time.Now().UnixNano()) if err != nil { if se, ok := err.(http2.StreamError); ok { - if logger.V(logLevel) { - logger.Warningf("transport: http2Server.HandleStreams encountered http2.StreamError: %v", se) + if t.logger.V(logLevel) { + t.logger.Warningf("Encountered http2.StreamError: %v", se) } t.mu.Lock() s := t.activeStreams[se.StreamID] @@ -676,8 +687,8 @@ func (t *http2Server) HandleStreams(handle func(*Stream), traceCtx func(context. case *http2.GoAwayFrame: // TODO: Handle GoAway from the client appropriately. default: - if logger.V(logLevel) { - logger.Errorf("transport: http2Server.HandleStreams found unhandled frame type %v.", frame) + if t.logger.V(logLevel) { + t.logger.Infof("Received unsupported frame type %T", frame) } } } @@ -844,7 +855,7 @@ func (t *http2Server) handleSettings(f *http2.SettingsFrame) { } return nil }) - t.controlBuf.executeAndPut(func(interface{}) bool { + t.controlBuf.executeAndPut(func(any) bool { for _, f := range updateFuncs { f() } @@ -928,7 +939,7 @@ func appendHeaderFieldsFromMD(headerFields []hpack.HeaderField, md metadata.MD) return headerFields } -func (t *http2Server) checkForHeaderListSize(it interface{}) bool { +func (t *http2Server) checkForHeaderListSize(it any) bool { if t.maxSendHeaderListSize == nil { return true } @@ -936,8 +947,8 @@ func (t *http2Server) checkForHeaderListSize(it interface{}) bool { var sz int64 for _, f := range hdrFrame.hf { if sz += int64(f.Size()); sz > int64(*t.maxSendHeaderListSize) { - if logger.V(logLevel) { - logger.Errorf("header list size to send violates the maximum size (%d bytes) set by client", *t.maxSendHeaderListSize) + if t.logger.V(logLevel) { + t.logger.Infof("Header list size to send violates the maximum size (%d bytes) set by client", *t.maxSendHeaderListSize) } return false } @@ -1050,7 +1061,7 @@ func (t *http2Server) WriteStatus(s *Stream, st *status.Status) error { stBytes, err := proto.Marshal(p) if err != nil { // TODO: return error instead, when callers are able to handle it. - logger.Errorf("transport: failed to marshal rpc status: %v, error: %v", p, err) + t.logger.Errorf("Failed to marshal rpc status: %s, error: %v", pretty.ToJSON(p), err) } else { headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-status-details-bin", Value: encodeBinHeader(stBytes)}) } @@ -1155,18 +1166,18 @@ func (t *http2Server) keepalive() { if val <= 0 { // The connection has been idle for a duration of keepalive.MaxConnectionIdle or more. // Gracefully close the connection. - t.Drain() + t.Drain("max_idle") return } idleTimer.Reset(val) case <-ageTimer.C: - t.Drain() + t.Drain("max_age") ageTimer.Reset(t.kp.MaxConnectionAgeGrace) select { case <-ageTimer.C: // Close the connection after grace period. - if logger.V(logLevel) { - logger.Infof("transport: closing server transport due to maximum connection age.") + if t.logger.V(logLevel) { + t.logger.Infof("Closing server transport due to maximum connection age") } t.controlBuf.put(closeConnection{}) case <-t.done: @@ -1217,8 +1228,8 @@ func (t *http2Server) Close(err error) { t.mu.Unlock() return } - if logger.V(logLevel) { - logger.Infof("transport: closing: %v", err) + if t.logger.V(logLevel) { + t.logger.Infof("Closing: %v", err) } t.state = closing streams := t.activeStreams @@ -1226,8 +1237,8 @@ func (t *http2Server) Close(err error) { t.mu.Unlock() t.controlBuf.finish() close(t.done) - if err := t.conn.Close(); err != nil && logger.V(logLevel) { - logger.Infof("transport: error closing conn during Close: %v", err) + if err := t.conn.Close(); err != nil && t.logger.V(logLevel) { + t.logger.Infof("Error closing underlying net.Conn during Close: %v", err) } channelz.RemoveEntry(t.channelzID) // Cancel all active streams. @@ -1307,14 +1318,14 @@ func (t *http2Server) RemoteAddr() net.Addr { return t.remoteAddr } -func (t *http2Server) Drain() { +func (t *http2Server) Drain(debugData string) { t.mu.Lock() defer t.mu.Unlock() if t.drainEvent != nil { return } t.drainEvent = grpcsync.NewEvent() - t.controlBuf.put(&goAway{code: http2.ErrCodeNo, debugData: []byte{}, headsUp: true}) + t.controlBuf.put(&goAway{code: http2.ErrCodeNo, debugData: []byte(debugData), headsUp: true}) } var goAwayPing = &ping{data: [8]byte{1, 6, 1, 8, 0, 3, 3, 9}} @@ -1344,9 +1355,6 @@ func (t *http2Server) outgoingGoAwayHandler(g *goAway) (bool, error) { return false, err } if retErr != nil { - // Abruptly close the connection following the GoAway (via - // loopywriter). But flush out what's inside the buffer first. - t.framer.writer.Flush() return false, retErr } return true, nil @@ -1359,7 +1367,7 @@ func (t *http2Server) outgoingGoAwayHandler(g *goAway) (bool, error) { // originated before the GoAway reaches the client. // After getting the ack or timer expiration send out another GoAway this // time with an ID of the max stream server intends to process. - if err := t.framer.fr.WriteGoAway(math.MaxUint32, http2.ErrCodeNo, []byte{}); err != nil { + if err := t.framer.fr.WriteGoAway(math.MaxUint32, http2.ErrCodeNo, g.debugData); err != nil { return false, err } if err := t.framer.fr.WritePing(false, goAwayPing.data); err != nil { diff --git a/vendor/google.golang.org/grpc/internal/transport/http_util.go b/vendor/google.golang.org/grpc/internal/transport/http_util.go index 2c601a864d99..1958140082b3 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http_util.go +++ b/vendor/google.golang.org/grpc/internal/transport/http_util.go @@ -21,6 +21,7 @@ package transport import ( "bufio" "encoding/base64" + "errors" "fmt" "io" "math" @@ -29,6 +30,7 @@ import ( "net/url" "strconv" "strings" + "sync" "time" "unicode/utf8" @@ -37,7 +39,6 @@ import ( "golang.org/x/net/http2/hpack" spb "google.golang.org/genproto/googleapis/rpc/status" "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" "google.golang.org/grpc/status" ) @@ -85,7 +86,6 @@ var ( // 504 Gateway timeout - UNAVAILABLE. http.StatusGatewayTimeout: codes.Unavailable, } - logger = grpclog.Component("transport") ) // isReservedHeader checks whether hdr belongs to HTTP2 headers @@ -310,6 +310,7 @@ func decodeGrpcMessageUnchecked(msg string) string { } type bufWriter struct { + pool *sync.Pool buf []byte offset int batchSize int @@ -317,12 +318,17 @@ type bufWriter struct { err error } -func newBufWriter(conn net.Conn, batchSize int) *bufWriter { - return &bufWriter{ - buf: make([]byte, batchSize*2), +func newBufWriter(conn net.Conn, batchSize int, pool *sync.Pool) *bufWriter { + w := &bufWriter{ batchSize: batchSize, conn: conn, + pool: pool, } + // this indicates that we should use non shared buf + if pool == nil { + w.buf = make([]byte, batchSize) + } + return w } func (w *bufWriter) Write(b []byte) (n int, err error) { @@ -330,7 +336,12 @@ func (w *bufWriter) Write(b []byte) (n int, err error) { return 0, w.err } if w.batchSize == 0 { // Buffer has been disabled. - return w.conn.Write(b) + n, err = w.conn.Write(b) + return n, toIOError(err) + } + if w.buf == nil { + b := w.pool.Get().(*[]byte) + w.buf = *b } for len(b) > 0 { nn := copy(w.buf[w.offset:], b) @@ -338,13 +349,24 @@ func (w *bufWriter) Write(b []byte) (n int, err error) { w.offset += nn n += nn if w.offset >= w.batchSize { - err = w.Flush() + err = w.flushKeepBuffer() } } return n, err } func (w *bufWriter) Flush() error { + err := w.flushKeepBuffer() + // Only release the buffer if we are in a "shared" mode + if w.buf != nil && w.pool != nil { + b := w.buf + w.pool.Put(&b) + w.buf = nil + } + return err +} + +func (w *bufWriter) flushKeepBuffer() error { if w.err != nil { return w.err } @@ -352,16 +374,39 @@ func (w *bufWriter) Flush() error { return nil } _, w.err = w.conn.Write(w.buf[:w.offset]) + w.err = toIOError(w.err) w.offset = 0 return w.err } +type ioError struct { + error +} + +func (i ioError) Unwrap() error { + return i.error +} + +func isIOError(err error) bool { + return errors.As(err, &ioError{}) +} + +func toIOError(err error) error { + if err == nil { + return nil + } + return ioError{error: err} +} + type framer struct { writer *bufWriter fr *http2.Framer } -func newFramer(conn net.Conn, writeBufferSize, readBufferSize int, maxHeaderListSize uint32) *framer { +var writeBufferPoolMap map[int]*sync.Pool = make(map[int]*sync.Pool) +var writeBufferMutex sync.Mutex + +func newFramer(conn net.Conn, writeBufferSize, readBufferSize int, sharedWriteBuffer bool, maxHeaderListSize uint32) *framer { if writeBufferSize < 0 { writeBufferSize = 0 } @@ -369,7 +414,11 @@ func newFramer(conn net.Conn, writeBufferSize, readBufferSize int, maxHeaderList if readBufferSize > 0 { r = bufio.NewReaderSize(r, readBufferSize) } - w := newBufWriter(conn, writeBufferSize) + var pool *sync.Pool + if sharedWriteBuffer { + pool = getWriteBufferPool(writeBufferSize) + } + w := newBufWriter(conn, writeBufferSize, pool) f := &framer{ writer: w, fr: http2.NewFramer(w, r), @@ -383,6 +432,24 @@ func newFramer(conn net.Conn, writeBufferSize, readBufferSize int, maxHeaderList return f } +func getWriteBufferPool(writeBufferSize int) *sync.Pool { + writeBufferMutex.Lock() + defer writeBufferMutex.Unlock() + size := writeBufferSize * 2 + pool, ok := writeBufferPoolMap[size] + if ok { + return pool + } + pool = &sync.Pool{ + New: func() any { + b := make([]byte, size) + return &b + }, + } + writeBufferPoolMap[size] = pool + return pool +} + // parseDialTarget returns the network and address to pass to dialer. func parseDialTarget(target string) (string, string) { net := "tcp" diff --git a/vendor/google.golang.org/grpc/internal/transport/logging.go b/vendor/google.golang.org/grpc/internal/transport/logging.go new file mode 100644 index 000000000000..42ed2b07af66 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/transport/logging.go @@ -0,0 +1,40 @@ +/* + * + * Copyright 2023 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "fmt" + + "google.golang.org/grpc/grpclog" + internalgrpclog "google.golang.org/grpc/internal/grpclog" +) + +var logger = grpclog.Component("transport") + +func prefixLoggerForServerTransport(p *http2Server) *internalgrpclog.PrefixLogger { + return internalgrpclog.NewPrefixLogger(logger, fmt.Sprintf("[server-transport %p] ", p)) +} + +func prefixLoggerForServerHandlerTransport(p *serverHandlerTransport) *internalgrpclog.PrefixLogger { + return internalgrpclog.NewPrefixLogger(logger, fmt.Sprintf("[server-handler-transport %p] ", p)) +} + +func prefixLoggerForClientTransport(p *http2Client) *internalgrpclog.PrefixLogger { + return internalgrpclog.NewPrefixLogger(logger, fmt.Sprintf("[client-transport %p] ", p)) +} diff --git a/vendor/google.golang.org/grpc/internal/transport/transport.go b/vendor/google.golang.org/grpc/internal/transport/transport.go index 0ac77ea4f8c7..74a811fc0590 100644 --- a/vendor/google.golang.org/grpc/internal/transport/transport.go +++ b/vendor/google.golang.org/grpc/internal/transport/transport.go @@ -43,10 +43,6 @@ import ( "google.golang.org/grpc/tap" ) -// ErrNoHeaders is used as a signal that a trailers only response was received, -// and is not a real error. -var ErrNoHeaders = errors.New("stream has no headers") - const logLevel = 2 type bufferPool struct { @@ -56,7 +52,7 @@ type bufferPool struct { func newBufferPool() *bufferPool { return &bufferPool{ pool: sync.Pool{ - New: func() interface{} { + New: func() any { return new(bytes.Buffer) }, }, @@ -257,6 +253,9 @@ type Stream struct { fc *inFlow wq *writeQuota + // Holds compressor names passed in grpc-accept-encoding metadata from the + // client. This is empty for the client side stream. + clientAdvertisedCompressors string // Callback to state application's intentions to read data. This // is used to adjust flow control, if needed. requestRead func(int) @@ -345,8 +344,24 @@ func (s *Stream) RecvCompress() string { } // SetSendCompress sets the compression algorithm to the stream. -func (s *Stream) SetSendCompress(str string) { - s.sendCompress = str +func (s *Stream) SetSendCompress(name string) error { + if s.isHeaderSent() || s.getState() == streamDone { + return errors.New("transport: set send compressor called after headers sent or stream done") + } + + s.sendCompress = name + return nil +} + +// SendCompress returns the send compressor name. +func (s *Stream) SendCompress() string { + return s.sendCompress +} + +// ClientAdvertisedCompressors returns the compressor names advertised by the +// client via grpc-accept-encoding header. +func (s *Stream) ClientAdvertisedCompressors() string { + return s.clientAdvertisedCompressors } // Done returns a channel which is closed when it receives the final status @@ -371,14 +386,10 @@ func (s *Stream) Header() (metadata.MD, error) { } s.waitOnHeader() - if !s.headerValid { + if !s.headerValid || s.noHeaders { return nil, s.status.Err() } - if s.noHeaders { - return nil, ErrNoHeaders - } - return s.header.Copy(), nil } @@ -540,6 +551,7 @@ type ServerConfig struct { InitialConnWindowSize int32 WriteBufferSize int ReadBufferSize int + SharedWriteBuffer bool ChannelzParentID *channelz.Identifier MaxHeaderListSize *uint32 HeaderTableSize *uint32 @@ -573,6 +585,8 @@ type ConnectOptions struct { WriteBufferSize int // ReadBufferSize sets the size of read buffer, which in turn determines how much data can be read at most for one read syscall. ReadBufferSize int + // SharedWriteBuffer indicates whether connections should reuse write buffer + SharedWriteBuffer bool // ChannelzParentID sets the addrConn id which initiate the creation of this client transport. ChannelzParentID *channelz.Identifier // MaxHeaderListSize sets the max (uncompressed) size of header list that is prepared to be received. @@ -707,7 +721,7 @@ type ServerTransport interface { RemoteAddr() net.Addr // Drain notifies the client this ServerTransport stops accepting new RPCs. - Drain() + Drain(debugData string) // IncrMsgSent increments the number of message sent through this transport. IncrMsgSent() @@ -717,7 +731,7 @@ type ServerTransport interface { } // connectionErrorf creates an ConnectionError with the specified error description. -func connectionErrorf(temp bool, e error, format string, a ...interface{}) ConnectionError { +func connectionErrorf(temp bool, e error, format string, a ...any) ConnectionError { return ConnectionError{ Desc: fmt.Sprintf(format, a...), temp: temp, diff --git a/vendor/google.golang.org/grpc/metadata/metadata.go b/vendor/google.golang.org/grpc/metadata/metadata.go index fb4a88f59bd3..a2cdcaf12a87 100644 --- a/vendor/google.golang.org/grpc/metadata/metadata.go +++ b/vendor/google.golang.org/grpc/metadata/metadata.go @@ -91,7 +91,11 @@ func (md MD) Len() int { // Copy returns a copy of md. func (md MD) Copy() MD { - return Join(md) + out := make(MD, len(md)) + for k, v := range md { + out[k] = copyOf(v) + } + return out } // Get obtains the values for a given key. @@ -171,8 +175,11 @@ func AppendToOutgoingContext(ctx context.Context, kv ...string) context.Context md, _ := ctx.Value(mdOutgoingKey{}).(rawMD) added := make([][]string, len(md.added)+1) copy(added, md.added) - added[len(added)-1] = make([]string, len(kv)) - copy(added[len(added)-1], kv) + kvCopy := make([]string, 0, len(kv)) + for i := 0; i < len(kv); i += 2 { + kvCopy = append(kvCopy, strings.ToLower(kv[i]), kv[i+1]) + } + added[len(added)-1] = kvCopy return context.WithValue(ctx, mdOutgoingKey{}, rawMD{md: md.md, added: added}) } diff --git a/vendor/google.golang.org/grpc/picker_wrapper.go b/vendor/google.golang.org/grpc/picker_wrapper.go index c525dc070fc6..236837f4157c 100644 --- a/vendor/google.golang.org/grpc/picker_wrapper.go +++ b/vendor/google.golang.org/grpc/picker_wrapper.go @@ -28,26 +28,36 @@ import ( "google.golang.org/grpc/internal/channelz" istatus "google.golang.org/grpc/internal/status" "google.golang.org/grpc/internal/transport" + "google.golang.org/grpc/stats" "google.golang.org/grpc/status" ) // pickerWrapper is a wrapper of balancer.Picker. It blocks on certain pick // actions and unblock when there's a picker update. type pickerWrapper struct { - mu sync.Mutex - done bool - blockingCh chan struct{} - picker balancer.Picker + mu sync.Mutex + done bool + idle bool + blockingCh chan struct{} + picker balancer.Picker + statsHandlers []stats.Handler // to record blocking picker calls } -func newPickerWrapper() *pickerWrapper { - return &pickerWrapper{blockingCh: make(chan struct{})} +func newPickerWrapper(statsHandlers []stats.Handler) *pickerWrapper { + return &pickerWrapper{ + blockingCh: make(chan struct{}), + statsHandlers: statsHandlers, + } } // updatePicker is called by UpdateBalancerState. It unblocks all blocked pick. func (pw *pickerWrapper) updatePicker(p balancer.Picker) { pw.mu.Lock() - if pw.done { + if pw.done || pw.idle { + // There is a small window where a picker update from the LB policy can + // race with the channel going to idle mode. If the picker is idle here, + // it is because the channel asked it to do so, and therefore it is sage + // to ignore the update from the LB policy. pw.mu.Unlock() return } @@ -63,10 +73,8 @@ func (pw *pickerWrapper) updatePicker(p balancer.Picker) { // - wraps the done function in the passed in result to increment the calls // failed or calls succeeded channelz counter before invoking the actual // done function. -func doneChannelzWrapper(acw *acBalancerWrapper, result *balancer.PickResult) { - acw.mu.Lock() - ac := acw.ac - acw.mu.Unlock() +func doneChannelzWrapper(acbw *acBalancerWrapper, result *balancer.PickResult) { + ac := acbw.ac ac.incrCallsStarted() done := result.Done result.Done = func(b balancer.DoneInfo) { @@ -92,6 +100,7 @@ func (pw *pickerWrapper) pick(ctx context.Context, failfast bool, info balancer. var ch chan struct{} var lastPickErr error + for { pw.mu.Lock() if pw.done { @@ -126,6 +135,20 @@ func (pw *pickerWrapper) pick(ctx context.Context, failfast bool, info balancer. continue } + // If the channel is set, it means that the pick call had to wait for a + // new picker at some point. Either it's the first iteration and this + // function received the first picker, or a picker errored with + // ErrNoSubConnAvailable or errored with failfast set to false, which + // will trigger a continue to the next iteration. In the first case this + // conditional will hit if this call had to block (the channel is set). + // In the second case, the only way it will get to this conditional is + // if there is a new picker. + if ch != nil { + for _, sh := range pw.statsHandlers { + sh.HandleRPC(ctx, &stats.PickerUpdated{}) + } + } + ch = pw.blockingCh p := pw.picker pw.mu.Unlock() @@ -152,14 +175,14 @@ func (pw *pickerWrapper) pick(ctx context.Context, failfast bool, info balancer. return nil, balancer.PickResult{}, status.Error(codes.Unavailable, err.Error()) } - acw, ok := pickResult.SubConn.(*acBalancerWrapper) + acbw, ok := pickResult.SubConn.(*acBalancerWrapper) if !ok { logger.Errorf("subconn returned from pick is type %T, not *acBalancerWrapper", pickResult.SubConn) continue } - if t := acw.getAddrConn().getReadyTransport(); t != nil { + if t := acbw.ac.getReadyTransport(); t != nil { if channelz.IsOn() { - doneChannelzWrapper(acw, &pickResult) + doneChannelzWrapper(acbw, &pickResult) return t, pickResult, nil } return t, pickResult, nil @@ -187,6 +210,25 @@ func (pw *pickerWrapper) close() { close(pw.blockingCh) } +func (pw *pickerWrapper) enterIdleMode() { + pw.mu.Lock() + defer pw.mu.Unlock() + if pw.done { + return + } + pw.idle = true +} + +func (pw *pickerWrapper) exitIdleMode() { + pw.mu.Lock() + defer pw.mu.Unlock() + if pw.done { + return + } + pw.blockingCh = make(chan struct{}) + pw.idle = false +} + // dropError is a wrapper error that indicates the LB policy wishes to drop the // RPC and not retry it. type dropError struct { diff --git a/vendor/google.golang.org/grpc/pickfirst.go b/vendor/google.golang.org/grpc/pickfirst.go index fc91b4d266de..2e9cf66b4afc 100644 --- a/vendor/google.golang.org/grpc/pickfirst.go +++ b/vendor/google.golang.org/grpc/pickfirst.go @@ -19,15 +19,25 @@ package grpc import ( + "encoding/json" "errors" "fmt" "google.golang.org/grpc/balancer" "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/internal/envconfig" + internalgrpclog "google.golang.org/grpc/internal/grpclog" + "google.golang.org/grpc/internal/grpcrand" + "google.golang.org/grpc/internal/pretty" + "google.golang.org/grpc/resolver" + "google.golang.org/grpc/serviceconfig" ) -// PickFirstBalancerName is the name of the pick_first balancer. -const PickFirstBalancerName = "pick_first" +const ( + // PickFirstBalancerName is the name of the pick_first balancer. + PickFirstBalancerName = "pick_first" + logPrefix = "[pick-first-lb %p] " +) func newPickfirstBuilder() balancer.Builder { return &pickfirstBuilder{} @@ -36,22 +46,55 @@ func newPickfirstBuilder() balancer.Builder { type pickfirstBuilder struct{} func (*pickfirstBuilder) Build(cc balancer.ClientConn, opt balancer.BuildOptions) balancer.Balancer { - return &pickfirstBalancer{cc: cc} + b := &pickfirstBalancer{cc: cc} + b.logger = internalgrpclog.NewPrefixLogger(logger, fmt.Sprintf(logPrefix, b)) + return b } func (*pickfirstBuilder) Name() string { return PickFirstBalancerName } +type pfConfig struct { + serviceconfig.LoadBalancingConfig `json:"-"` + + // If set to true, instructs the LB policy to shuffle the order of the list + // of addresses received from the name resolver before attempting to + // connect to them. + ShuffleAddressList bool `json:"shuffleAddressList"` +} + +func (*pickfirstBuilder) ParseConfig(js json.RawMessage) (serviceconfig.LoadBalancingConfig, error) { + if !envconfig.PickFirstLBConfig { + // Prior to supporting loadbalancing configuration, the pick_first LB + // policy did not implement the balancer.ConfigParser interface. This + // meant that if a non-empty configuration was passed to it, the service + // config unmarshaling code would throw a warning log, but would + // continue using the pick_first LB policy. The code below ensures the + // same behavior is retained if the env var is not set. + if string(js) != "{}" { + logger.Warningf("Ignoring non-empty balancer configuration %q for the pick_first LB policy", string(js)) + } + return nil, nil + } + + var cfg pfConfig + if err := json.Unmarshal(js, &cfg); err != nil { + return nil, fmt.Errorf("pickfirst: unable to unmarshal LB policy config: %s, error: %v", string(js), err) + } + return cfg, nil +} + type pickfirstBalancer struct { + logger *internalgrpclog.PrefixLogger state connectivity.State cc balancer.ClientConn subConn balancer.SubConn } func (b *pickfirstBalancer) ResolverError(err error) { - if logger.V(2) { - logger.Infof("pickfirstBalancer: ResolverError called with error: %v", err) + if b.logger.V(2) { + b.logger.Infof("Received error from the name resolver: %v", err) } if b.subConn == nil { b.state = connectivity.TransientFailure @@ -69,28 +112,49 @@ func (b *pickfirstBalancer) ResolverError(err error) { } func (b *pickfirstBalancer) UpdateClientConnState(state balancer.ClientConnState) error { - if len(state.ResolverState.Addresses) == 0 { + addrs := state.ResolverState.Addresses + if len(addrs) == 0 { // The resolver reported an empty address list. Treat it like an error by // calling b.ResolverError. if b.subConn != nil { - // Remove the old subConn. All addresses were removed, so it is no longer - // valid. - b.cc.RemoveSubConn(b.subConn) + // Shut down the old subConn. All addresses were removed, so it is + // no longer valid. + b.subConn.Shutdown() b.subConn = nil } b.ResolverError(errors.New("produced zero addresses")) return balancer.ErrBadResolverState } + // We don't have to guard this block with the env var because ParseConfig + // already does so. + cfg, ok := state.BalancerConfig.(pfConfig) + if state.BalancerConfig != nil && !ok { + return fmt.Errorf("pickfirst: received illegal BalancerConfig (type %T): %v", state.BalancerConfig, state.BalancerConfig) + } + if cfg.ShuffleAddressList { + addrs = append([]resolver.Address{}, addrs...) + grpcrand.Shuffle(len(addrs), func(i, j int) { addrs[i], addrs[j] = addrs[j], addrs[i] }) + } + + if b.logger.V(2) { + b.logger.Infof("Received new config %s, resolver state %s", pretty.ToJSON(cfg), pretty.ToJSON(state.ResolverState)) + } + if b.subConn != nil { - b.cc.UpdateAddresses(b.subConn, state.ResolverState.Addresses) + b.cc.UpdateAddresses(b.subConn, addrs) return nil } - subConn, err := b.cc.NewSubConn(state.ResolverState.Addresses, balancer.NewSubConnOptions{}) + var subConn balancer.SubConn + subConn, err := b.cc.NewSubConn(addrs, balancer.NewSubConnOptions{ + StateListener: func(state balancer.SubConnState) { + b.updateSubConnState(subConn, state) + }, + }) if err != nil { - if logger.V(2) { - logger.Errorf("pickfirstBalancer: failed to NewSubConn: %v", err) + if b.logger.V(2) { + b.logger.Infof("Failed to create new SubConn: %v", err) } b.state = connectivity.TransientFailure b.cc.UpdateState(balancer.State{ @@ -109,17 +173,22 @@ func (b *pickfirstBalancer) UpdateClientConnState(state balancer.ClientConnState return nil } +// UpdateSubConnState is unused as a StateListener is always registered when +// creating SubConns. func (b *pickfirstBalancer) UpdateSubConnState(subConn balancer.SubConn, state balancer.SubConnState) { - if logger.V(2) { - logger.Infof("pickfirstBalancer: UpdateSubConnState: %p, %v", subConn, state) + b.logger.Errorf("UpdateSubConnState(%v, %+v) called unexpectedly", subConn, state) +} + +func (b *pickfirstBalancer) updateSubConnState(subConn balancer.SubConn, state balancer.SubConnState) { + if b.logger.V(2) { + b.logger.Infof("Received SubConn state update: %p, %+v", subConn, state) } if b.subConn != subConn { - if logger.V(2) { - logger.Infof("pickfirstBalancer: ignored state change because subConn is not recognized") + if b.logger.V(2) { + b.logger.Infof("Ignored state change because subConn is not recognized") } return } - b.state = state.ConnectivityState if state.ConnectivityState == connectivity.Shutdown { b.subConn = nil return @@ -132,11 +201,21 @@ func (b *pickfirstBalancer) UpdateSubConnState(subConn balancer.SubConn, state b Picker: &picker{result: balancer.PickResult{SubConn: subConn}}, }) case connectivity.Connecting: + if b.state == connectivity.TransientFailure { + // We stay in TransientFailure until we are Ready. See A62. + return + } b.cc.UpdateState(balancer.State{ ConnectivityState: state.ConnectivityState, Picker: &picker{err: balancer.ErrNoSubConnAvailable}, }) case connectivity.Idle: + if b.state == connectivity.TransientFailure { + // We stay in TransientFailure until we are Ready. Also kick the + // subConn out of Idle into Connecting. See A62. + b.subConn.Connect() + return + } b.cc.UpdateState(balancer.State{ ConnectivityState: state.ConnectivityState, Picker: &idlePicker{subConn: subConn}, @@ -147,6 +226,7 @@ func (b *pickfirstBalancer) UpdateSubConnState(subConn balancer.SubConn, state b Picker: &picker{err: state.ConnectionError}, }) } + b.state = state.ConnectivityState } func (b *pickfirstBalancer) Close() { diff --git a/vendor/google.golang.org/grpc/preloader.go b/vendor/google.golang.org/grpc/preloader.go index cd45547854f0..73bd63364335 100644 --- a/vendor/google.golang.org/grpc/preloader.go +++ b/vendor/google.golang.org/grpc/preloader.go @@ -37,7 +37,7 @@ type PreparedMsg struct { } // Encode marshalls and compresses the message using the codec and compressor for the stream. -func (p *PreparedMsg) Encode(s Stream, msg interface{}) error { +func (p *PreparedMsg) Encode(s Stream, msg any) error { ctx := s.Context() rpcInfo, ok := rpcInfoFromContext(ctx) if !ok { diff --git a/vendor/google.golang.org/grpc/reflection/adapt.go b/vendor/google.golang.org/grpc/reflection/adapt.go new file mode 100644 index 000000000000..33b907a36da4 --- /dev/null +++ b/vendor/google.golang.org/grpc/reflection/adapt.go @@ -0,0 +1,187 @@ +/* + * + * Copyright 2023 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package reflection + +import ( + v1reflectiongrpc "google.golang.org/grpc/reflection/grpc_reflection_v1" + v1reflectionpb "google.golang.org/grpc/reflection/grpc_reflection_v1" + v1alphareflectiongrpc "google.golang.org/grpc/reflection/grpc_reflection_v1alpha" + v1alphareflectionpb "google.golang.org/grpc/reflection/grpc_reflection_v1alpha" +) + +// asV1Alpha returns an implementation of the v1alpha version of the reflection +// interface that delegates all calls to the given v1 version. +func asV1Alpha(svr v1reflectiongrpc.ServerReflectionServer) v1alphareflectiongrpc.ServerReflectionServer { + return v1AlphaServerImpl{svr: svr} +} + +type v1AlphaServerImpl struct { + svr v1reflectiongrpc.ServerReflectionServer +} + +func (s v1AlphaServerImpl) ServerReflectionInfo(stream v1alphareflectiongrpc.ServerReflection_ServerReflectionInfoServer) error { + return s.svr.ServerReflectionInfo(v1AlphaServerStreamAdapter{stream}) +} + +type v1AlphaServerStreamAdapter struct { + v1alphareflectiongrpc.ServerReflection_ServerReflectionInfoServer +} + +func (s v1AlphaServerStreamAdapter) Send(response *v1reflectionpb.ServerReflectionResponse) error { + return s.ServerReflection_ServerReflectionInfoServer.Send(v1ToV1AlphaResponse(response)) +} + +func (s v1AlphaServerStreamAdapter) Recv() (*v1reflectionpb.ServerReflectionRequest, error) { + resp, err := s.ServerReflection_ServerReflectionInfoServer.Recv() + if err != nil { + return nil, err + } + return v1AlphaToV1Request(resp), nil +} + +func v1ToV1AlphaResponse(v1 *v1reflectionpb.ServerReflectionResponse) *v1alphareflectionpb.ServerReflectionResponse { + var v1alpha v1alphareflectionpb.ServerReflectionResponse + v1alpha.ValidHost = v1.ValidHost + if v1.OriginalRequest != nil { + v1alpha.OriginalRequest = v1ToV1AlphaRequest(v1.OriginalRequest) + } + switch mr := v1.MessageResponse.(type) { + case *v1reflectionpb.ServerReflectionResponse_FileDescriptorResponse: + if mr != nil { + v1alpha.MessageResponse = &v1alphareflectionpb.ServerReflectionResponse_FileDescriptorResponse{ + FileDescriptorResponse: &v1alphareflectionpb.FileDescriptorResponse{ + FileDescriptorProto: mr.FileDescriptorResponse.GetFileDescriptorProto(), + }, + } + } + case *v1reflectionpb.ServerReflectionResponse_AllExtensionNumbersResponse: + if mr != nil { + v1alpha.MessageResponse = &v1alphareflectionpb.ServerReflectionResponse_AllExtensionNumbersResponse{ + AllExtensionNumbersResponse: &v1alphareflectionpb.ExtensionNumberResponse{ + BaseTypeName: mr.AllExtensionNumbersResponse.GetBaseTypeName(), + ExtensionNumber: mr.AllExtensionNumbersResponse.GetExtensionNumber(), + }, + } + } + case *v1reflectionpb.ServerReflectionResponse_ListServicesResponse: + if mr != nil { + svcs := make([]*v1alphareflectionpb.ServiceResponse, len(mr.ListServicesResponse.GetService())) + for i, svc := range mr.ListServicesResponse.GetService() { + svcs[i] = &v1alphareflectionpb.ServiceResponse{ + Name: svc.GetName(), + } + } + v1alpha.MessageResponse = &v1alphareflectionpb.ServerReflectionResponse_ListServicesResponse{ + ListServicesResponse: &v1alphareflectionpb.ListServiceResponse{ + Service: svcs, + }, + } + } + case *v1reflectionpb.ServerReflectionResponse_ErrorResponse: + if mr != nil { + v1alpha.MessageResponse = &v1alphareflectionpb.ServerReflectionResponse_ErrorResponse{ + ErrorResponse: &v1alphareflectionpb.ErrorResponse{ + ErrorCode: mr.ErrorResponse.GetErrorCode(), + ErrorMessage: mr.ErrorResponse.GetErrorMessage(), + }, + } + } + default: + // no value set + } + return &v1alpha +} + +func v1AlphaToV1Request(v1alpha *v1alphareflectionpb.ServerReflectionRequest) *v1reflectionpb.ServerReflectionRequest { + var v1 v1reflectionpb.ServerReflectionRequest + v1.Host = v1alpha.Host + switch mr := v1alpha.MessageRequest.(type) { + case *v1alphareflectionpb.ServerReflectionRequest_FileByFilename: + v1.MessageRequest = &v1reflectionpb.ServerReflectionRequest_FileByFilename{ + FileByFilename: mr.FileByFilename, + } + case *v1alphareflectionpb.ServerReflectionRequest_FileContainingSymbol: + v1.MessageRequest = &v1reflectionpb.ServerReflectionRequest_FileContainingSymbol{ + FileContainingSymbol: mr.FileContainingSymbol, + } + case *v1alphareflectionpb.ServerReflectionRequest_FileContainingExtension: + if mr.FileContainingExtension != nil { + v1.MessageRequest = &v1reflectionpb.ServerReflectionRequest_FileContainingExtension{ + FileContainingExtension: &v1reflectionpb.ExtensionRequest{ + ContainingType: mr.FileContainingExtension.GetContainingType(), + ExtensionNumber: mr.FileContainingExtension.GetExtensionNumber(), + }, + } + } + case *v1alphareflectionpb.ServerReflectionRequest_AllExtensionNumbersOfType: + v1.MessageRequest = &v1reflectionpb.ServerReflectionRequest_AllExtensionNumbersOfType{ + AllExtensionNumbersOfType: mr.AllExtensionNumbersOfType, + } + case *v1alphareflectionpb.ServerReflectionRequest_ListServices: + v1.MessageRequest = &v1reflectionpb.ServerReflectionRequest_ListServices{ + ListServices: mr.ListServices, + } + default: + // no value set + } + return &v1 +} + +func v1ToV1AlphaRequest(v1 *v1reflectionpb.ServerReflectionRequest) *v1alphareflectionpb.ServerReflectionRequest { + var v1alpha v1alphareflectionpb.ServerReflectionRequest + v1alpha.Host = v1.Host + switch mr := v1.MessageRequest.(type) { + case *v1reflectionpb.ServerReflectionRequest_FileByFilename: + if mr != nil { + v1alpha.MessageRequest = &v1alphareflectionpb.ServerReflectionRequest_FileByFilename{ + FileByFilename: mr.FileByFilename, + } + } + case *v1reflectionpb.ServerReflectionRequest_FileContainingSymbol: + if mr != nil { + v1alpha.MessageRequest = &v1alphareflectionpb.ServerReflectionRequest_FileContainingSymbol{ + FileContainingSymbol: mr.FileContainingSymbol, + } + } + case *v1reflectionpb.ServerReflectionRequest_FileContainingExtension: + if mr != nil { + v1alpha.MessageRequest = &v1alphareflectionpb.ServerReflectionRequest_FileContainingExtension{ + FileContainingExtension: &v1alphareflectionpb.ExtensionRequest{ + ContainingType: mr.FileContainingExtension.GetContainingType(), + ExtensionNumber: mr.FileContainingExtension.GetExtensionNumber(), + }, + } + } + case *v1reflectionpb.ServerReflectionRequest_AllExtensionNumbersOfType: + if mr != nil { + v1alpha.MessageRequest = &v1alphareflectionpb.ServerReflectionRequest_AllExtensionNumbersOfType{ + AllExtensionNumbersOfType: mr.AllExtensionNumbersOfType, + } + } + case *v1reflectionpb.ServerReflectionRequest_ListServices: + if mr != nil { + v1alpha.MessageRequest = &v1alphareflectionpb.ServerReflectionRequest_ListServices{ + ListServices: mr.ListServices, + } + } + default: + // no value set + } + return &v1alpha +} diff --git a/vendor/google.golang.org/grpc/reflection/grpc_reflection_v1/reflection.pb.go b/vendor/google.golang.org/grpc/reflection/grpc_reflection_v1/reflection.pb.go new file mode 100644 index 000000000000..6f5c786b211c --- /dev/null +++ b/vendor/google.golang.org/grpc/reflection/grpc_reflection_v1/reflection.pb.go @@ -0,0 +1,953 @@ +// Copyright 2016 The gRPC Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Service exported by server reflection. A more complete description of how +// server reflection works can be found at +// https://github.com/grpc/grpc/blob/master/doc/server-reflection.md +// +// The canonical version of this proto can be found at +// https://github.com/grpc/grpc-proto/blob/master/grpc/reflection/v1/reflection.proto + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.22.0 +// source: grpc/reflection/v1/reflection.proto + +package grpc_reflection_v1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The message sent by the client when calling ServerReflectionInfo method. +type ServerReflectionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` + // To use reflection service, the client should set one of the following + // fields in message_request. The server distinguishes requests by their + // defined field and then handles them using corresponding methods. + // + // Types that are assignable to MessageRequest: + // + // *ServerReflectionRequest_FileByFilename + // *ServerReflectionRequest_FileContainingSymbol + // *ServerReflectionRequest_FileContainingExtension + // *ServerReflectionRequest_AllExtensionNumbersOfType + // *ServerReflectionRequest_ListServices + MessageRequest isServerReflectionRequest_MessageRequest `protobuf_oneof:"message_request"` +} + +func (x *ServerReflectionRequest) Reset() { + *x = ServerReflectionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerReflectionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerReflectionRequest) ProtoMessage() {} + +func (x *ServerReflectionRequest) ProtoReflect() protoreflect.Message { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServerReflectionRequest.ProtoReflect.Descriptor instead. +func (*ServerReflectionRequest) Descriptor() ([]byte, []int) { + return file_grpc_reflection_v1_reflection_proto_rawDescGZIP(), []int{0} +} + +func (x *ServerReflectionRequest) GetHost() string { + if x != nil { + return x.Host + } + return "" +} + +func (m *ServerReflectionRequest) GetMessageRequest() isServerReflectionRequest_MessageRequest { + if m != nil { + return m.MessageRequest + } + return nil +} + +func (x *ServerReflectionRequest) GetFileByFilename() string { + if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_FileByFilename); ok { + return x.FileByFilename + } + return "" +} + +func (x *ServerReflectionRequest) GetFileContainingSymbol() string { + if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_FileContainingSymbol); ok { + return x.FileContainingSymbol + } + return "" +} + +func (x *ServerReflectionRequest) GetFileContainingExtension() *ExtensionRequest { + if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_FileContainingExtension); ok { + return x.FileContainingExtension + } + return nil +} + +func (x *ServerReflectionRequest) GetAllExtensionNumbersOfType() string { + if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_AllExtensionNumbersOfType); ok { + return x.AllExtensionNumbersOfType + } + return "" +} + +func (x *ServerReflectionRequest) GetListServices() string { + if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_ListServices); ok { + return x.ListServices + } + return "" +} + +type isServerReflectionRequest_MessageRequest interface { + isServerReflectionRequest_MessageRequest() +} + +type ServerReflectionRequest_FileByFilename struct { + // Find a proto file by the file name. + FileByFilename string `protobuf:"bytes,3,opt,name=file_by_filename,json=fileByFilename,proto3,oneof"` +} + +type ServerReflectionRequest_FileContainingSymbol struct { + // Find the proto file that declares the given fully-qualified symbol name. + // This field should be a fully-qualified symbol name + // (e.g. .[.] or .). + FileContainingSymbol string `protobuf:"bytes,4,opt,name=file_containing_symbol,json=fileContainingSymbol,proto3,oneof"` +} + +type ServerReflectionRequest_FileContainingExtension struct { + // Find the proto file which defines an extension extending the given + // message type with the given field number. + FileContainingExtension *ExtensionRequest `protobuf:"bytes,5,opt,name=file_containing_extension,json=fileContainingExtension,proto3,oneof"` +} + +type ServerReflectionRequest_AllExtensionNumbersOfType struct { + // Finds the tag numbers used by all known extensions of the given message + // type, and appends them to ExtensionNumberResponse in an undefined order. + // Its corresponding method is best-effort: it's not guaranteed that the + // reflection service will implement this method, and it's not guaranteed + // that this method will provide all extensions. Returns + // StatusCode::UNIMPLEMENTED if it's not implemented. + // This field should be a fully-qualified type name. The format is + // . + AllExtensionNumbersOfType string `protobuf:"bytes,6,opt,name=all_extension_numbers_of_type,json=allExtensionNumbersOfType,proto3,oneof"` +} + +type ServerReflectionRequest_ListServices struct { + // List the full names of registered services. The content will not be + // checked. + ListServices string `protobuf:"bytes,7,opt,name=list_services,json=listServices,proto3,oneof"` +} + +func (*ServerReflectionRequest_FileByFilename) isServerReflectionRequest_MessageRequest() {} + +func (*ServerReflectionRequest_FileContainingSymbol) isServerReflectionRequest_MessageRequest() {} + +func (*ServerReflectionRequest_FileContainingExtension) isServerReflectionRequest_MessageRequest() {} + +func (*ServerReflectionRequest_AllExtensionNumbersOfType) isServerReflectionRequest_MessageRequest() { +} + +func (*ServerReflectionRequest_ListServices) isServerReflectionRequest_MessageRequest() {} + +// The type name and extension number sent by the client when requesting +// file_containing_extension. +type ExtensionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Fully-qualified type name. The format should be . + ContainingType string `protobuf:"bytes,1,opt,name=containing_type,json=containingType,proto3" json:"containing_type,omitempty"` + ExtensionNumber int32 `protobuf:"varint,2,opt,name=extension_number,json=extensionNumber,proto3" json:"extension_number,omitempty"` +} + +func (x *ExtensionRequest) Reset() { + *x = ExtensionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExtensionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExtensionRequest) ProtoMessage() {} + +func (x *ExtensionRequest) ProtoReflect() protoreflect.Message { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExtensionRequest.ProtoReflect.Descriptor instead. +func (*ExtensionRequest) Descriptor() ([]byte, []int) { + return file_grpc_reflection_v1_reflection_proto_rawDescGZIP(), []int{1} +} + +func (x *ExtensionRequest) GetContainingType() string { + if x != nil { + return x.ContainingType + } + return "" +} + +func (x *ExtensionRequest) GetExtensionNumber() int32 { + if x != nil { + return x.ExtensionNumber + } + return 0 +} + +// The message sent by the server to answer ServerReflectionInfo method. +type ServerReflectionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ValidHost string `protobuf:"bytes,1,opt,name=valid_host,json=validHost,proto3" json:"valid_host,omitempty"` + OriginalRequest *ServerReflectionRequest `protobuf:"bytes,2,opt,name=original_request,json=originalRequest,proto3" json:"original_request,omitempty"` + // The server sets one of the following fields according to the message_request + // in the request. + // + // Types that are assignable to MessageResponse: + // + // *ServerReflectionResponse_FileDescriptorResponse + // *ServerReflectionResponse_AllExtensionNumbersResponse + // *ServerReflectionResponse_ListServicesResponse + // *ServerReflectionResponse_ErrorResponse + MessageResponse isServerReflectionResponse_MessageResponse `protobuf_oneof:"message_response"` +} + +func (x *ServerReflectionResponse) Reset() { + *x = ServerReflectionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerReflectionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerReflectionResponse) ProtoMessage() {} + +func (x *ServerReflectionResponse) ProtoReflect() protoreflect.Message { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServerReflectionResponse.ProtoReflect.Descriptor instead. +func (*ServerReflectionResponse) Descriptor() ([]byte, []int) { + return file_grpc_reflection_v1_reflection_proto_rawDescGZIP(), []int{2} +} + +func (x *ServerReflectionResponse) GetValidHost() string { + if x != nil { + return x.ValidHost + } + return "" +} + +func (x *ServerReflectionResponse) GetOriginalRequest() *ServerReflectionRequest { + if x != nil { + return x.OriginalRequest + } + return nil +} + +func (m *ServerReflectionResponse) GetMessageResponse() isServerReflectionResponse_MessageResponse { + if m != nil { + return m.MessageResponse + } + return nil +} + +func (x *ServerReflectionResponse) GetFileDescriptorResponse() *FileDescriptorResponse { + if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_FileDescriptorResponse); ok { + return x.FileDescriptorResponse + } + return nil +} + +func (x *ServerReflectionResponse) GetAllExtensionNumbersResponse() *ExtensionNumberResponse { + if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_AllExtensionNumbersResponse); ok { + return x.AllExtensionNumbersResponse + } + return nil +} + +func (x *ServerReflectionResponse) GetListServicesResponse() *ListServiceResponse { + if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_ListServicesResponse); ok { + return x.ListServicesResponse + } + return nil +} + +func (x *ServerReflectionResponse) GetErrorResponse() *ErrorResponse { + if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_ErrorResponse); ok { + return x.ErrorResponse + } + return nil +} + +type isServerReflectionResponse_MessageResponse interface { + isServerReflectionResponse_MessageResponse() +} + +type ServerReflectionResponse_FileDescriptorResponse struct { + // This message is used to answer file_by_filename, file_containing_symbol, + // file_containing_extension requests with transitive dependencies. + // As the repeated label is not allowed in oneof fields, we use a + // FileDescriptorResponse message to encapsulate the repeated fields. + // The reflection service is allowed to avoid sending FileDescriptorProtos + // that were previously sent in response to earlier requests in the stream. + FileDescriptorResponse *FileDescriptorResponse `protobuf:"bytes,4,opt,name=file_descriptor_response,json=fileDescriptorResponse,proto3,oneof"` +} + +type ServerReflectionResponse_AllExtensionNumbersResponse struct { + // This message is used to answer all_extension_numbers_of_type requests. + AllExtensionNumbersResponse *ExtensionNumberResponse `protobuf:"bytes,5,opt,name=all_extension_numbers_response,json=allExtensionNumbersResponse,proto3,oneof"` +} + +type ServerReflectionResponse_ListServicesResponse struct { + // This message is used to answer list_services requests. + ListServicesResponse *ListServiceResponse `protobuf:"bytes,6,opt,name=list_services_response,json=listServicesResponse,proto3,oneof"` +} + +type ServerReflectionResponse_ErrorResponse struct { + // This message is used when an error occurs. + ErrorResponse *ErrorResponse `protobuf:"bytes,7,opt,name=error_response,json=errorResponse,proto3,oneof"` +} + +func (*ServerReflectionResponse_FileDescriptorResponse) isServerReflectionResponse_MessageResponse() { +} + +func (*ServerReflectionResponse_AllExtensionNumbersResponse) isServerReflectionResponse_MessageResponse() { +} + +func (*ServerReflectionResponse_ListServicesResponse) isServerReflectionResponse_MessageResponse() {} + +func (*ServerReflectionResponse_ErrorResponse) isServerReflectionResponse_MessageResponse() {} + +// Serialized FileDescriptorProto messages sent by the server answering +// a file_by_filename, file_containing_symbol, or file_containing_extension +// request. +type FileDescriptorResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Serialized FileDescriptorProto messages. We avoid taking a dependency on + // descriptor.proto, which uses proto2 only features, by making them opaque + // bytes instead. + FileDescriptorProto [][]byte `protobuf:"bytes,1,rep,name=file_descriptor_proto,json=fileDescriptorProto,proto3" json:"file_descriptor_proto,omitempty"` +} + +func (x *FileDescriptorResponse) Reset() { + *x = FileDescriptorResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FileDescriptorResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FileDescriptorResponse) ProtoMessage() {} + +func (x *FileDescriptorResponse) ProtoReflect() protoreflect.Message { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FileDescriptorResponse.ProtoReflect.Descriptor instead. +func (*FileDescriptorResponse) Descriptor() ([]byte, []int) { + return file_grpc_reflection_v1_reflection_proto_rawDescGZIP(), []int{3} +} + +func (x *FileDescriptorResponse) GetFileDescriptorProto() [][]byte { + if x != nil { + return x.FileDescriptorProto + } + return nil +} + +// A list of extension numbers sent by the server answering +// all_extension_numbers_of_type request. +type ExtensionNumberResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Full name of the base type, including the package name. The format + // is . + BaseTypeName string `protobuf:"bytes,1,opt,name=base_type_name,json=baseTypeName,proto3" json:"base_type_name,omitempty"` + ExtensionNumber []int32 `protobuf:"varint,2,rep,packed,name=extension_number,json=extensionNumber,proto3" json:"extension_number,omitempty"` +} + +func (x *ExtensionNumberResponse) Reset() { + *x = ExtensionNumberResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExtensionNumberResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExtensionNumberResponse) ProtoMessage() {} + +func (x *ExtensionNumberResponse) ProtoReflect() protoreflect.Message { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExtensionNumberResponse.ProtoReflect.Descriptor instead. +func (*ExtensionNumberResponse) Descriptor() ([]byte, []int) { + return file_grpc_reflection_v1_reflection_proto_rawDescGZIP(), []int{4} +} + +func (x *ExtensionNumberResponse) GetBaseTypeName() string { + if x != nil { + return x.BaseTypeName + } + return "" +} + +func (x *ExtensionNumberResponse) GetExtensionNumber() []int32 { + if x != nil { + return x.ExtensionNumber + } + return nil +} + +// A list of ServiceResponse sent by the server answering list_services request. +type ListServiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The information of each service may be expanded in the future, so we use + // ServiceResponse message to encapsulate it. + Service []*ServiceResponse `protobuf:"bytes,1,rep,name=service,proto3" json:"service,omitempty"` +} + +func (x *ListServiceResponse) Reset() { + *x = ListServiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListServiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListServiceResponse) ProtoMessage() {} + +func (x *ListServiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListServiceResponse.ProtoReflect.Descriptor instead. +func (*ListServiceResponse) Descriptor() ([]byte, []int) { + return file_grpc_reflection_v1_reflection_proto_rawDescGZIP(), []int{5} +} + +func (x *ListServiceResponse) GetService() []*ServiceResponse { + if x != nil { + return x.Service + } + return nil +} + +// The information of a single service used by ListServiceResponse to answer +// list_services request. +type ServiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Full name of a registered service, including its package name. The format + // is . + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *ServiceResponse) Reset() { + *x = ServiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServiceResponse) ProtoMessage() {} + +func (x *ServiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServiceResponse.ProtoReflect.Descriptor instead. +func (*ServiceResponse) Descriptor() ([]byte, []int) { + return file_grpc_reflection_v1_reflection_proto_rawDescGZIP(), []int{6} +} + +func (x *ServiceResponse) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The error code and error message sent by the server when an error occurs. +type ErrorResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // This field uses the error codes defined in grpc::StatusCode. + ErrorCode int32 `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` + ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` +} + +func (x *ErrorResponse) Reset() { + *x = ErrorResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ErrorResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ErrorResponse) ProtoMessage() {} + +func (x *ErrorResponse) ProtoReflect() protoreflect.Message { + mi := &file_grpc_reflection_v1_reflection_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ErrorResponse.ProtoReflect.Descriptor instead. +func (*ErrorResponse) Descriptor() ([]byte, []int) { + return file_grpc_reflection_v1_reflection_proto_rawDescGZIP(), []int{7} +} + +func (x *ErrorResponse) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode + } + return 0 +} + +func (x *ErrorResponse) GetErrorMessage() string { + if x != nil { + return x.ErrorMessage + } + return "" +} + +var File_grpc_reflection_v1_reflection_proto protoreflect.FileDescriptor + +var file_grpc_reflection_v1_reflection_proto_rawDesc = []byte{ + 0x0a, 0x23, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x22, 0xf3, 0x02, 0x0a, 0x17, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x66, 0x69, 0x6c, + 0x65, 0x5f, 0x62, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x46, 0x69, 0x6c, + 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x14, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x62, 0x0a, + 0x19, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x17, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x42, 0x0a, 0x1d, 0x61, 0x6c, 0x6c, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x19, 0x61, 0x6c, 0x6c, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x4f, + 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, + 0x6c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x42, 0x11, 0x0a, 0x0f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x66, 0x0a, 0x10, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xae, 0x04, 0x0a, 0x18, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x6f, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x48, + 0x6f, 0x73, 0x74, 0x12, 0x56, 0x0a, 0x10, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x67, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x66, 0x0a, 0x18, 0x66, + 0x69, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x67, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x16, 0x66, 0x69, 0x6c, + 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x1e, 0x61, 0x6c, 0x6c, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x72, + 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x1b, 0x61, 0x6c, 0x6c, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x6c, 0x69, 0x73, 0x74, 0x5f, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x72, + 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x48, 0x00, 0x52, 0x14, 0x6c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x0a, 0x16, 0x46, 0x69, 0x6c, 0x65, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0c, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6a, 0x0a, 0x17, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x54, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x72, 0x70, + 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x53, 0x0a, 0x0d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x32, 0x89, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x75, 0x0a, 0x14, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x2b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x66, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, + 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, + 0x42, 0x66, 0x0a, 0x15, 0x69, 0x6f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x72, 0x65, 0x66, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x15, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, + 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x72, 0x65, 0x66, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_grpc_reflection_v1_reflection_proto_rawDescOnce sync.Once + file_grpc_reflection_v1_reflection_proto_rawDescData = file_grpc_reflection_v1_reflection_proto_rawDesc +) + +func file_grpc_reflection_v1_reflection_proto_rawDescGZIP() []byte { + file_grpc_reflection_v1_reflection_proto_rawDescOnce.Do(func() { + file_grpc_reflection_v1_reflection_proto_rawDescData = protoimpl.X.CompressGZIP(file_grpc_reflection_v1_reflection_proto_rawDescData) + }) + return file_grpc_reflection_v1_reflection_proto_rawDescData +} + +var file_grpc_reflection_v1_reflection_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_grpc_reflection_v1_reflection_proto_goTypes = []interface{}{ + (*ServerReflectionRequest)(nil), // 0: grpc.reflection.v1.ServerReflectionRequest + (*ExtensionRequest)(nil), // 1: grpc.reflection.v1.ExtensionRequest + (*ServerReflectionResponse)(nil), // 2: grpc.reflection.v1.ServerReflectionResponse + (*FileDescriptorResponse)(nil), // 3: grpc.reflection.v1.FileDescriptorResponse + (*ExtensionNumberResponse)(nil), // 4: grpc.reflection.v1.ExtensionNumberResponse + (*ListServiceResponse)(nil), // 5: grpc.reflection.v1.ListServiceResponse + (*ServiceResponse)(nil), // 6: grpc.reflection.v1.ServiceResponse + (*ErrorResponse)(nil), // 7: grpc.reflection.v1.ErrorResponse +} +var file_grpc_reflection_v1_reflection_proto_depIdxs = []int32{ + 1, // 0: grpc.reflection.v1.ServerReflectionRequest.file_containing_extension:type_name -> grpc.reflection.v1.ExtensionRequest + 0, // 1: grpc.reflection.v1.ServerReflectionResponse.original_request:type_name -> grpc.reflection.v1.ServerReflectionRequest + 3, // 2: grpc.reflection.v1.ServerReflectionResponse.file_descriptor_response:type_name -> grpc.reflection.v1.FileDescriptorResponse + 4, // 3: grpc.reflection.v1.ServerReflectionResponse.all_extension_numbers_response:type_name -> grpc.reflection.v1.ExtensionNumberResponse + 5, // 4: grpc.reflection.v1.ServerReflectionResponse.list_services_response:type_name -> grpc.reflection.v1.ListServiceResponse + 7, // 5: grpc.reflection.v1.ServerReflectionResponse.error_response:type_name -> grpc.reflection.v1.ErrorResponse + 6, // 6: grpc.reflection.v1.ListServiceResponse.service:type_name -> grpc.reflection.v1.ServiceResponse + 0, // 7: grpc.reflection.v1.ServerReflection.ServerReflectionInfo:input_type -> grpc.reflection.v1.ServerReflectionRequest + 2, // 8: grpc.reflection.v1.ServerReflection.ServerReflectionInfo:output_type -> grpc.reflection.v1.ServerReflectionResponse + 8, // [8:9] is the sub-list for method output_type + 7, // [7:8] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name +} + +func init() { file_grpc_reflection_v1_reflection_proto_init() } +func file_grpc_reflection_v1_reflection_proto_init() { + if File_grpc_reflection_v1_reflection_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_grpc_reflection_v1_reflection_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServerReflectionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpc_reflection_v1_reflection_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExtensionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpc_reflection_v1_reflection_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServerReflectionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpc_reflection_v1_reflection_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FileDescriptorResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpc_reflection_v1_reflection_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExtensionNumberResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpc_reflection_v1_reflection_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListServiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpc_reflection_v1_reflection_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpc_reflection_v1_reflection_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ErrorResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_grpc_reflection_v1_reflection_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*ServerReflectionRequest_FileByFilename)(nil), + (*ServerReflectionRequest_FileContainingSymbol)(nil), + (*ServerReflectionRequest_FileContainingExtension)(nil), + (*ServerReflectionRequest_AllExtensionNumbersOfType)(nil), + (*ServerReflectionRequest_ListServices)(nil), + } + file_grpc_reflection_v1_reflection_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*ServerReflectionResponse_FileDescriptorResponse)(nil), + (*ServerReflectionResponse_AllExtensionNumbersResponse)(nil), + (*ServerReflectionResponse_ListServicesResponse)(nil), + (*ServerReflectionResponse_ErrorResponse)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_grpc_reflection_v1_reflection_proto_rawDesc, + NumEnums: 0, + NumMessages: 8, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_grpc_reflection_v1_reflection_proto_goTypes, + DependencyIndexes: file_grpc_reflection_v1_reflection_proto_depIdxs, + MessageInfos: file_grpc_reflection_v1_reflection_proto_msgTypes, + }.Build() + File_grpc_reflection_v1_reflection_proto = out.File + file_grpc_reflection_v1_reflection_proto_rawDesc = nil + file_grpc_reflection_v1_reflection_proto_goTypes = nil + file_grpc_reflection_v1_reflection_proto_depIdxs = nil +} diff --git a/vendor/google.golang.org/grpc/reflection/grpc_reflection_v1/reflection_grpc.pb.go b/vendor/google.golang.org/grpc/reflection/grpc_reflection_v1/reflection_grpc.pb.go new file mode 100644 index 000000000000..62b56a8be0e6 --- /dev/null +++ b/vendor/google.golang.org/grpc/reflection/grpc_reflection_v1/reflection_grpc.pb.go @@ -0,0 +1,164 @@ +// Copyright 2016 The gRPC Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Service exported by server reflection. A more complete description of how +// server reflection works can be found at +// https://github.com/grpc/grpc/blob/master/doc/server-reflection.md +// +// The canonical version of this proto can be found at +// https://github.com/grpc/grpc-proto/blob/master/grpc/reflection/v1/reflection.proto + +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.22.0 +// source: grpc/reflection/v1/reflection.proto + +package grpc_reflection_v1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + ServerReflection_ServerReflectionInfo_FullMethodName = "/grpc.reflection.v1.ServerReflection/ServerReflectionInfo" +) + +// ServerReflectionClient is the client API for ServerReflection service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ServerReflectionClient interface { + // The reflection service is structured as a bidirectional stream, ensuring + // all related requests go to a single server. + ServerReflectionInfo(ctx context.Context, opts ...grpc.CallOption) (ServerReflection_ServerReflectionInfoClient, error) +} + +type serverReflectionClient struct { + cc grpc.ClientConnInterface +} + +func NewServerReflectionClient(cc grpc.ClientConnInterface) ServerReflectionClient { + return &serverReflectionClient{cc} +} + +func (c *serverReflectionClient) ServerReflectionInfo(ctx context.Context, opts ...grpc.CallOption) (ServerReflection_ServerReflectionInfoClient, error) { + stream, err := c.cc.NewStream(ctx, &ServerReflection_ServiceDesc.Streams[0], ServerReflection_ServerReflectionInfo_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &serverReflectionServerReflectionInfoClient{stream} + return x, nil +} + +type ServerReflection_ServerReflectionInfoClient interface { + Send(*ServerReflectionRequest) error + Recv() (*ServerReflectionResponse, error) + grpc.ClientStream +} + +type serverReflectionServerReflectionInfoClient struct { + grpc.ClientStream +} + +func (x *serverReflectionServerReflectionInfoClient) Send(m *ServerReflectionRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *serverReflectionServerReflectionInfoClient) Recv() (*ServerReflectionResponse, error) { + m := new(ServerReflectionResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// ServerReflectionServer is the server API for ServerReflection service. +// All implementations should embed UnimplementedServerReflectionServer +// for forward compatibility +type ServerReflectionServer interface { + // The reflection service is structured as a bidirectional stream, ensuring + // all related requests go to a single server. + ServerReflectionInfo(ServerReflection_ServerReflectionInfoServer) error +} + +// UnimplementedServerReflectionServer should be embedded to have forward compatible implementations. +type UnimplementedServerReflectionServer struct { +} + +func (UnimplementedServerReflectionServer) ServerReflectionInfo(ServerReflection_ServerReflectionInfoServer) error { + return status.Errorf(codes.Unimplemented, "method ServerReflectionInfo not implemented") +} + +// UnsafeServerReflectionServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ServerReflectionServer will +// result in compilation errors. +type UnsafeServerReflectionServer interface { + mustEmbedUnimplementedServerReflectionServer() +} + +func RegisterServerReflectionServer(s grpc.ServiceRegistrar, srv ServerReflectionServer) { + s.RegisterService(&ServerReflection_ServiceDesc, srv) +} + +func _ServerReflection_ServerReflectionInfo_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(ServerReflectionServer).ServerReflectionInfo(&serverReflectionServerReflectionInfoServer{stream}) +} + +type ServerReflection_ServerReflectionInfoServer interface { + Send(*ServerReflectionResponse) error + Recv() (*ServerReflectionRequest, error) + grpc.ServerStream +} + +type serverReflectionServerReflectionInfoServer struct { + grpc.ServerStream +} + +func (x *serverReflectionServerReflectionInfoServer) Send(m *ServerReflectionResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *serverReflectionServerReflectionInfoServer) Recv() (*ServerReflectionRequest, error) { + m := new(ServerReflectionRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// ServerReflection_ServiceDesc is the grpc.ServiceDesc for ServerReflection service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var ServerReflection_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "grpc.reflection.v1.ServerReflection", + HandlerType: (*ServerReflectionServer)(nil), + Methods: []grpc.MethodDesc{}, + Streams: []grpc.StreamDesc{ + { + StreamName: "ServerReflectionInfo", + Handler: _ServerReflection_ServerReflectionInfo_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "grpc/reflection/v1/reflection.proto", +} diff --git a/vendor/google.golang.org/grpc/reflection/grpc_reflection_v1alpha/reflection.pb.go b/vendor/google.golang.org/grpc/reflection/grpc_reflection_v1alpha/reflection.pb.go index ee4b04caf0da..69fbfb621ec0 100644 --- a/vendor/google.golang.org/grpc/reflection/grpc_reflection_v1alpha/reflection.pb.go +++ b/vendor/google.golang.org/grpc/reflection/grpc_reflection_v1alpha/reflection.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.14.0 +// protoc-gen-go v1.31.0 +// protoc v4.22.0 // grpc/reflection/v1alpha/reflection.proto is a deprecated file. package grpc_reflection_v1alpha @@ -39,11 +39,14 @@ const ( ) // The message sent by the client when calling ServerReflectionInfo method. +// +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. type ServerReflectionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` // To use reflection service, the client should set one of the following // fields in message_request. The server distinguishes requests by their @@ -91,6 +94,7 @@ func (*ServerReflectionRequest) Descriptor() ([]byte, []int) { return file_grpc_reflection_v1alpha_reflection_proto_rawDescGZIP(), []int{0} } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ServerReflectionRequest) GetHost() string { if x != nil { return x.Host @@ -105,6 +109,7 @@ func (m *ServerReflectionRequest) GetMessageRequest() isServerReflectionRequest_ return nil } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ServerReflectionRequest) GetFileByFilename() string { if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_FileByFilename); ok { return x.FileByFilename @@ -112,6 +117,7 @@ func (x *ServerReflectionRequest) GetFileByFilename() string { return "" } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ServerReflectionRequest) GetFileContainingSymbol() string { if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_FileContainingSymbol); ok { return x.FileContainingSymbol @@ -119,6 +125,7 @@ func (x *ServerReflectionRequest) GetFileContainingSymbol() string { return "" } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ServerReflectionRequest) GetFileContainingExtension() *ExtensionRequest { if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_FileContainingExtension); ok { return x.FileContainingExtension @@ -126,6 +133,7 @@ func (x *ServerReflectionRequest) GetFileContainingExtension() *ExtensionRequest return nil } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ServerReflectionRequest) GetAllExtensionNumbersOfType() string { if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_AllExtensionNumbersOfType); ok { return x.AllExtensionNumbersOfType @@ -133,6 +141,7 @@ func (x *ServerReflectionRequest) GetAllExtensionNumbersOfType() string { return "" } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ServerReflectionRequest) GetListServices() string { if x, ok := x.GetMessageRequest().(*ServerReflectionRequest_ListServices); ok { return x.ListServices @@ -146,6 +155,8 @@ type isServerReflectionRequest_MessageRequest interface { type ServerReflectionRequest_FileByFilename struct { // Find a proto file by the file name. + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. FileByFilename string `protobuf:"bytes,3,opt,name=file_by_filename,json=fileByFilename,proto3,oneof"` } @@ -153,12 +164,16 @@ type ServerReflectionRequest_FileContainingSymbol struct { // Find the proto file that declares the given fully-qualified symbol name. // This field should be a fully-qualified symbol name // (e.g. .[.] or .). + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. FileContainingSymbol string `protobuf:"bytes,4,opt,name=file_containing_symbol,json=fileContainingSymbol,proto3,oneof"` } type ServerReflectionRequest_FileContainingExtension struct { // Find the proto file which defines an extension extending the given // message type with the given field number. + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. FileContainingExtension *ExtensionRequest `protobuf:"bytes,5,opt,name=file_containing_extension,json=fileContainingExtension,proto3,oneof"` } @@ -171,12 +186,16 @@ type ServerReflectionRequest_AllExtensionNumbersOfType struct { // StatusCode::UNIMPLEMENTED if it's not implemented. // This field should be a fully-qualified type name. The format is // . + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. AllExtensionNumbersOfType string `protobuf:"bytes,6,opt,name=all_extension_numbers_of_type,json=allExtensionNumbersOfType,proto3,oneof"` } type ServerReflectionRequest_ListServices struct { // List the full names of registered services. The content will not be // checked. + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. ListServices string `protobuf:"bytes,7,opt,name=list_services,json=listServices,proto3,oneof"` } @@ -193,14 +212,19 @@ func (*ServerReflectionRequest_ListServices) isServerReflectionRequest_MessageRe // The type name and extension number sent by the client when requesting // file_containing_extension. +// +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. type ExtensionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Fully-qualified type name. The format should be . - ContainingType string `protobuf:"bytes,1,opt,name=containing_type,json=containingType,proto3" json:"containing_type,omitempty"` - ExtensionNumber int32 `protobuf:"varint,2,opt,name=extension_number,json=extensionNumber,proto3" json:"extension_number,omitempty"` + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. + ContainingType string `protobuf:"bytes,1,opt,name=containing_type,json=containingType,proto3" json:"containing_type,omitempty"` + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. + ExtensionNumber int32 `protobuf:"varint,2,opt,name=extension_number,json=extensionNumber,proto3" json:"extension_number,omitempty"` } func (x *ExtensionRequest) Reset() { @@ -235,6 +259,7 @@ func (*ExtensionRequest) Descriptor() ([]byte, []int) { return file_grpc_reflection_v1alpha_reflection_proto_rawDescGZIP(), []int{1} } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ExtensionRequest) GetContainingType() string { if x != nil { return x.ContainingType @@ -242,6 +267,7 @@ func (x *ExtensionRequest) GetContainingType() string { return "" } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ExtensionRequest) GetExtensionNumber() int32 { if x != nil { return x.ExtensionNumber @@ -250,12 +276,16 @@ func (x *ExtensionRequest) GetExtensionNumber() int32 { } // The message sent by the server to answer ServerReflectionInfo method. +// +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. type ServerReflectionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ValidHost string `protobuf:"bytes,1,opt,name=valid_host,json=validHost,proto3" json:"valid_host,omitempty"` + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. + ValidHost string `protobuf:"bytes,1,opt,name=valid_host,json=validHost,proto3" json:"valid_host,omitempty"` + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. OriginalRequest *ServerReflectionRequest `protobuf:"bytes,2,opt,name=original_request,json=originalRequest,proto3" json:"original_request,omitempty"` // The server set one of the following fields according to the message_request // in the request. @@ -301,6 +331,7 @@ func (*ServerReflectionResponse) Descriptor() ([]byte, []int) { return file_grpc_reflection_v1alpha_reflection_proto_rawDescGZIP(), []int{2} } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ServerReflectionResponse) GetValidHost() string { if x != nil { return x.ValidHost @@ -308,6 +339,7 @@ func (x *ServerReflectionResponse) GetValidHost() string { return "" } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ServerReflectionResponse) GetOriginalRequest() *ServerReflectionRequest { if x != nil { return x.OriginalRequest @@ -322,6 +354,7 @@ func (m *ServerReflectionResponse) GetMessageResponse() isServerReflectionRespon return nil } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ServerReflectionResponse) GetFileDescriptorResponse() *FileDescriptorResponse { if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_FileDescriptorResponse); ok { return x.FileDescriptorResponse @@ -329,6 +362,7 @@ func (x *ServerReflectionResponse) GetFileDescriptorResponse() *FileDescriptorRe return nil } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ServerReflectionResponse) GetAllExtensionNumbersResponse() *ExtensionNumberResponse { if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_AllExtensionNumbersResponse); ok { return x.AllExtensionNumbersResponse @@ -336,6 +370,7 @@ func (x *ServerReflectionResponse) GetAllExtensionNumbersResponse() *ExtensionNu return nil } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ServerReflectionResponse) GetListServicesResponse() *ListServiceResponse { if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_ListServicesResponse); ok { return x.ListServicesResponse @@ -343,6 +378,7 @@ func (x *ServerReflectionResponse) GetListServicesResponse() *ListServiceRespons return nil } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ServerReflectionResponse) GetErrorResponse() *ErrorResponse { if x, ok := x.GetMessageResponse().(*ServerReflectionResponse_ErrorResponse); ok { return x.ErrorResponse @@ -361,21 +397,29 @@ type ServerReflectionResponse_FileDescriptorResponse struct { // FileDescriptorResponse message to encapsulate the repeated fields. // The reflection service is allowed to avoid sending FileDescriptorProtos // that were previously sent in response to earlier requests in the stream. + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. FileDescriptorResponse *FileDescriptorResponse `protobuf:"bytes,4,opt,name=file_descriptor_response,json=fileDescriptorResponse,proto3,oneof"` } type ServerReflectionResponse_AllExtensionNumbersResponse struct { // This message is used to answer all_extension_numbers_of_type requst. + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. AllExtensionNumbersResponse *ExtensionNumberResponse `protobuf:"bytes,5,opt,name=all_extension_numbers_response,json=allExtensionNumbersResponse,proto3,oneof"` } type ServerReflectionResponse_ListServicesResponse struct { // This message is used to answer list_services request. + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. ListServicesResponse *ListServiceResponse `protobuf:"bytes,6,opt,name=list_services_response,json=listServicesResponse,proto3,oneof"` } type ServerReflectionResponse_ErrorResponse struct { // This message is used when an error occurs. + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. ErrorResponse *ErrorResponse `protobuf:"bytes,7,opt,name=error_response,json=errorResponse,proto3,oneof"` } @@ -392,6 +436,8 @@ func (*ServerReflectionResponse_ErrorResponse) isServerReflectionResponse_Messag // Serialized FileDescriptorProto messages sent by the server answering // a file_by_filename, file_containing_symbol, or file_containing_extension // request. +// +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. type FileDescriptorResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -400,6 +446,8 @@ type FileDescriptorResponse struct { // Serialized FileDescriptorProto messages. We avoid taking a dependency on // descriptor.proto, which uses proto2 only features, by making them opaque // bytes instead. + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. FileDescriptorProto [][]byte `protobuf:"bytes,1,rep,name=file_descriptor_proto,json=fileDescriptorProto,proto3" json:"file_descriptor_proto,omitempty"` } @@ -435,6 +483,7 @@ func (*FileDescriptorResponse) Descriptor() ([]byte, []int) { return file_grpc_reflection_v1alpha_reflection_proto_rawDescGZIP(), []int{3} } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *FileDescriptorResponse) GetFileDescriptorProto() [][]byte { if x != nil { return x.FileDescriptorProto @@ -444,6 +493,8 @@ func (x *FileDescriptorResponse) GetFileDescriptorProto() [][]byte { // A list of extension numbers sent by the server answering // all_extension_numbers_of_type request. +// +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. type ExtensionNumberResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -451,7 +502,10 @@ type ExtensionNumberResponse struct { // Full name of the base type, including the package name. The format // is . - BaseTypeName string `protobuf:"bytes,1,opt,name=base_type_name,json=baseTypeName,proto3" json:"base_type_name,omitempty"` + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. + BaseTypeName string `protobuf:"bytes,1,opt,name=base_type_name,json=baseTypeName,proto3" json:"base_type_name,omitempty"` + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. ExtensionNumber []int32 `protobuf:"varint,2,rep,packed,name=extension_number,json=extensionNumber,proto3" json:"extension_number,omitempty"` } @@ -487,6 +541,7 @@ func (*ExtensionNumberResponse) Descriptor() ([]byte, []int) { return file_grpc_reflection_v1alpha_reflection_proto_rawDescGZIP(), []int{4} } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ExtensionNumberResponse) GetBaseTypeName() string { if x != nil { return x.BaseTypeName @@ -494,6 +549,7 @@ func (x *ExtensionNumberResponse) GetBaseTypeName() string { return "" } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ExtensionNumberResponse) GetExtensionNumber() []int32 { if x != nil { return x.ExtensionNumber @@ -502,6 +558,8 @@ func (x *ExtensionNumberResponse) GetExtensionNumber() []int32 { } // A list of ServiceResponse sent by the server answering list_services request. +// +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. type ListServiceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -509,6 +567,8 @@ type ListServiceResponse struct { // The information of each service may be expanded in the future, so we use // ServiceResponse message to encapsulate it. + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. Service []*ServiceResponse `protobuf:"bytes,1,rep,name=service,proto3" json:"service,omitempty"` } @@ -544,6 +604,7 @@ func (*ListServiceResponse) Descriptor() ([]byte, []int) { return file_grpc_reflection_v1alpha_reflection_proto_rawDescGZIP(), []int{5} } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ListServiceResponse) GetService() []*ServiceResponse { if x != nil { return x.Service @@ -553,6 +614,8 @@ func (x *ListServiceResponse) GetService() []*ServiceResponse { // The information of a single service used by ListServiceResponse to answer // list_services request. +// +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. type ServiceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -560,6 +623,8 @@ type ServiceResponse struct { // Full name of a registered service, including its package name. The format // is . + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } @@ -595,6 +660,7 @@ func (*ServiceResponse) Descriptor() ([]byte, []int) { return file_grpc_reflection_v1alpha_reflection_proto_rawDescGZIP(), []int{6} } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ServiceResponse) GetName() string { if x != nil { return x.Name @@ -603,13 +669,18 @@ func (x *ServiceResponse) GetName() string { } // The error code and error message sent by the server when an error occurs. +// +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. type ErrorResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // This field uses the error codes defined in grpc::StatusCode. - ErrorCode int32 `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` + // + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. + ErrorCode int32 `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` + // Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` } @@ -645,6 +716,7 @@ func (*ErrorResponse) Descriptor() ([]byte, []int) { return file_grpc_reflection_v1alpha_reflection_proto_rawDescGZIP(), []int{7} } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ErrorResponse) GetErrorCode() int32 { if x != nil { return x.ErrorCode @@ -652,6 +724,7 @@ func (x *ErrorResponse) GetErrorCode() int32 { return 0 } +// Deprecated: The entire proto file grpc/reflection/v1alpha/reflection.proto is marked as deprecated. func (x *ErrorResponse) GetErrorMessage() string { if x != nil { return x.ErrorMessage diff --git a/vendor/google.golang.org/grpc/reflection/grpc_reflection_v1alpha/reflection_grpc.pb.go b/vendor/google.golang.org/grpc/reflection/grpc_reflection_v1alpha/reflection_grpc.pb.go index ed54ab1378eb..367a029be6b3 100644 --- a/vendor/google.golang.org/grpc/reflection/grpc_reflection_v1alpha/reflection_grpc.pb.go +++ b/vendor/google.golang.org/grpc/reflection/grpc_reflection_v1alpha/reflection_grpc.pb.go @@ -18,8 +18,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.14.0 +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.22.0 // grpc/reflection/v1alpha/reflection.proto is a deprecated file. package grpc_reflection_v1alpha @@ -36,6 +36,10 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + ServerReflection_ServerReflectionInfo_FullMethodName = "/grpc.reflection.v1alpha.ServerReflection/ServerReflectionInfo" +) + // ServerReflectionClient is the client API for ServerReflection service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -54,7 +58,7 @@ func NewServerReflectionClient(cc grpc.ClientConnInterface) ServerReflectionClie } func (c *serverReflectionClient) ServerReflectionInfo(ctx context.Context, opts ...grpc.CallOption) (ServerReflection_ServerReflectionInfoClient, error) { - stream, err := c.cc.NewStream(ctx, &ServerReflection_ServiceDesc.Streams[0], "/grpc.reflection.v1alpha.ServerReflection/ServerReflectionInfo", opts...) + stream, err := c.cc.NewStream(ctx, &ServerReflection_ServiceDesc.Streams[0], ServerReflection_ServerReflectionInfo_FullMethodName, opts...) if err != nil { return nil, err } diff --git a/vendor/google.golang.org/grpc/reflection/serverreflection.go b/vendor/google.golang.org/grpc/reflection/serverreflection.go index e2f9ebfbbce8..76dae09d8886 100644 --- a/vendor/google.golang.org/grpc/reflection/serverreflection.go +++ b/vendor/google.golang.org/grpc/reflection/serverreflection.go @@ -48,8 +48,9 @@ import ( "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" - v1alphagrpc "google.golang.org/grpc/reflection/grpc_reflection_v1alpha" - v1alphapb "google.golang.org/grpc/reflection/grpc_reflection_v1alpha" + v1reflectiongrpc "google.golang.org/grpc/reflection/grpc_reflection_v1" + v1reflectionpb "google.golang.org/grpc/reflection/grpc_reflection_v1" + v1alphareflectiongrpc "google.golang.org/grpc/reflection/grpc_reflection_v1alpha" ) // GRPCServer is the interface provided by a gRPC server. It is implemented by @@ -63,9 +64,19 @@ type GRPCServer interface { var _ GRPCServer = (*grpc.Server)(nil) // Register registers the server reflection service on the given gRPC server. +// Both the v1 and v1alpha versions are registered. func Register(s GRPCServer) { - svr := NewServer(ServerOptions{Services: s}) - v1alphagrpc.RegisterServerReflectionServer(s, svr) + svr := NewServerV1(ServerOptions{Services: s}) + v1alphareflectiongrpc.RegisterServerReflectionServer(s, asV1Alpha(svr)) + v1reflectiongrpc.RegisterServerReflectionServer(s, svr) +} + +// RegisterV1 registers only the v1 version of the server reflection service +// on the given gRPC server. Many clients may only support v1alpha so most +// users should use Register instead, at least until clients have upgraded. +func RegisterV1(s GRPCServer) { + svr := NewServerV1(ServerOptions{Services: s}) + v1reflectiongrpc.RegisterServerReflectionServer(s, svr) } // ServiceInfoProvider is an interface used to retrieve metadata about the @@ -120,13 +131,27 @@ type ServerOptions struct { // NewServer returns a reflection server implementation using the given options. // This can be used to customize behavior of the reflection service. Most usages +// should prefer to use Register instead. For backwards compatibility reasons, +// this returns the v1alpha version of the reflection server. For a v1 version +// of the reflection server, see NewServerV1. +// +// # Experimental +// +// Notice: This function is EXPERIMENTAL and may be changed or removed in a +// later release. +func NewServer(opts ServerOptions) v1alphareflectiongrpc.ServerReflectionServer { + return asV1Alpha(NewServerV1(opts)) +} + +// NewServerV1 returns a reflection server implementation using the given options. +// This can be used to customize behavior of the reflection service. Most usages // should prefer to use Register instead. // // # Experimental // // Notice: This function is EXPERIMENTAL and may be changed or removed in a // later release. -func NewServer(opts ServerOptions) v1alphagrpc.ServerReflectionServer { +func NewServerV1(opts ServerOptions) v1reflectiongrpc.ServerReflectionServer { if opts.DescriptorResolver == nil { opts.DescriptorResolver = protoregistry.GlobalFiles } @@ -141,7 +166,7 @@ func NewServer(opts ServerOptions) v1alphagrpc.ServerReflectionServer { } type serverReflectionServer struct { - v1alphagrpc.UnimplementedServerReflectionServer + v1alphareflectiongrpc.UnimplementedServerReflectionServer s ServiceInfoProvider descResolver protodesc.Resolver extResolver ExtensionResolver @@ -215,11 +240,11 @@ func (s *serverReflectionServer) allExtensionNumbersForTypeName(name string) ([] } // listServices returns the names of services this server exposes. -func (s *serverReflectionServer) listServices() []*v1alphapb.ServiceResponse { +func (s *serverReflectionServer) listServices() []*v1reflectionpb.ServiceResponse { serviceInfo := s.s.GetServiceInfo() - resp := make([]*v1alphapb.ServiceResponse, 0, len(serviceInfo)) + resp := make([]*v1reflectionpb.ServiceResponse, 0, len(serviceInfo)) for svc := range serviceInfo { - resp = append(resp, &v1alphapb.ServiceResponse{Name: svc}) + resp = append(resp, &v1reflectionpb.ServiceResponse{Name: svc}) } sort.Slice(resp, func(i, j int) bool { return resp[i].Name < resp[j].Name @@ -228,7 +253,7 @@ func (s *serverReflectionServer) listServices() []*v1alphapb.ServiceResponse { } // ServerReflectionInfo is the reflection service handler. -func (s *serverReflectionServer) ServerReflectionInfo(stream v1alphagrpc.ServerReflection_ServerReflectionInfoServer) error { +func (s *serverReflectionServer) ServerReflectionInfo(stream v1reflectiongrpc.ServerReflection_ServerReflectionInfoServer) error { sentFileDescriptors := make(map[string]bool) for { in, err := stream.Recv() @@ -239,79 +264,79 @@ func (s *serverReflectionServer) ServerReflectionInfo(stream v1alphagrpc.ServerR return err } - out := &v1alphapb.ServerReflectionResponse{ + out := &v1reflectionpb.ServerReflectionResponse{ ValidHost: in.Host, OriginalRequest: in, } switch req := in.MessageRequest.(type) { - case *v1alphapb.ServerReflectionRequest_FileByFilename: + case *v1reflectionpb.ServerReflectionRequest_FileByFilename: var b [][]byte fd, err := s.descResolver.FindFileByPath(req.FileByFilename) if err == nil { b, err = s.fileDescWithDependencies(fd, sentFileDescriptors) } if err != nil { - out.MessageResponse = &v1alphapb.ServerReflectionResponse_ErrorResponse{ - ErrorResponse: &v1alphapb.ErrorResponse{ + out.MessageResponse = &v1reflectionpb.ServerReflectionResponse_ErrorResponse{ + ErrorResponse: &v1reflectionpb.ErrorResponse{ ErrorCode: int32(codes.NotFound), ErrorMessage: err.Error(), }, } } else { - out.MessageResponse = &v1alphapb.ServerReflectionResponse_FileDescriptorResponse{ - FileDescriptorResponse: &v1alphapb.FileDescriptorResponse{FileDescriptorProto: b}, + out.MessageResponse = &v1reflectionpb.ServerReflectionResponse_FileDescriptorResponse{ + FileDescriptorResponse: &v1reflectionpb.FileDescriptorResponse{FileDescriptorProto: b}, } } - case *v1alphapb.ServerReflectionRequest_FileContainingSymbol: + case *v1reflectionpb.ServerReflectionRequest_FileContainingSymbol: b, err := s.fileDescEncodingContainingSymbol(req.FileContainingSymbol, sentFileDescriptors) if err != nil { - out.MessageResponse = &v1alphapb.ServerReflectionResponse_ErrorResponse{ - ErrorResponse: &v1alphapb.ErrorResponse{ + out.MessageResponse = &v1reflectionpb.ServerReflectionResponse_ErrorResponse{ + ErrorResponse: &v1reflectionpb.ErrorResponse{ ErrorCode: int32(codes.NotFound), ErrorMessage: err.Error(), }, } } else { - out.MessageResponse = &v1alphapb.ServerReflectionResponse_FileDescriptorResponse{ - FileDescriptorResponse: &v1alphapb.FileDescriptorResponse{FileDescriptorProto: b}, + out.MessageResponse = &v1reflectionpb.ServerReflectionResponse_FileDescriptorResponse{ + FileDescriptorResponse: &v1reflectionpb.FileDescriptorResponse{FileDescriptorProto: b}, } } - case *v1alphapb.ServerReflectionRequest_FileContainingExtension: + case *v1reflectionpb.ServerReflectionRequest_FileContainingExtension: typeName := req.FileContainingExtension.ContainingType extNum := req.FileContainingExtension.ExtensionNumber b, err := s.fileDescEncodingContainingExtension(typeName, extNum, sentFileDescriptors) if err != nil { - out.MessageResponse = &v1alphapb.ServerReflectionResponse_ErrorResponse{ - ErrorResponse: &v1alphapb.ErrorResponse{ + out.MessageResponse = &v1reflectionpb.ServerReflectionResponse_ErrorResponse{ + ErrorResponse: &v1reflectionpb.ErrorResponse{ ErrorCode: int32(codes.NotFound), ErrorMessage: err.Error(), }, } } else { - out.MessageResponse = &v1alphapb.ServerReflectionResponse_FileDescriptorResponse{ - FileDescriptorResponse: &v1alphapb.FileDescriptorResponse{FileDescriptorProto: b}, + out.MessageResponse = &v1reflectionpb.ServerReflectionResponse_FileDescriptorResponse{ + FileDescriptorResponse: &v1reflectionpb.FileDescriptorResponse{FileDescriptorProto: b}, } } - case *v1alphapb.ServerReflectionRequest_AllExtensionNumbersOfType: + case *v1reflectionpb.ServerReflectionRequest_AllExtensionNumbersOfType: extNums, err := s.allExtensionNumbersForTypeName(req.AllExtensionNumbersOfType) if err != nil { - out.MessageResponse = &v1alphapb.ServerReflectionResponse_ErrorResponse{ - ErrorResponse: &v1alphapb.ErrorResponse{ + out.MessageResponse = &v1reflectionpb.ServerReflectionResponse_ErrorResponse{ + ErrorResponse: &v1reflectionpb.ErrorResponse{ ErrorCode: int32(codes.NotFound), ErrorMessage: err.Error(), }, } } else { - out.MessageResponse = &v1alphapb.ServerReflectionResponse_AllExtensionNumbersResponse{ - AllExtensionNumbersResponse: &v1alphapb.ExtensionNumberResponse{ + out.MessageResponse = &v1reflectionpb.ServerReflectionResponse_AllExtensionNumbersResponse{ + AllExtensionNumbersResponse: &v1reflectionpb.ExtensionNumberResponse{ BaseTypeName: req.AllExtensionNumbersOfType, ExtensionNumber: extNums, }, } } - case *v1alphapb.ServerReflectionRequest_ListServices: - out.MessageResponse = &v1alphapb.ServerReflectionResponse_ListServicesResponse{ - ListServicesResponse: &v1alphapb.ListServiceResponse{ + case *v1reflectionpb.ServerReflectionRequest_ListServices: + out.MessageResponse = &v1reflectionpb.ServerReflectionResponse_ListServicesResponse{ + ListServicesResponse: &v1reflectionpb.ListServiceResponse{ Service: s.listServices(), }, } diff --git a/vendor/google.golang.org/grpc/resolver/map.go b/vendor/google.golang.org/grpc/resolver/map.go index efcb7f3efd82..804be887de0a 100644 --- a/vendor/google.golang.org/grpc/resolver/map.go +++ b/vendor/google.golang.org/grpc/resolver/map.go @@ -20,7 +20,7 @@ package resolver type addressMapEntry struct { addr Address - value interface{} + value any } // AddressMap is a map of addresses to arbitrary values taking into account @@ -69,7 +69,7 @@ func (l addressMapEntryList) find(addr Address) int { } // Get returns the value for the address in the map, if present. -func (a *AddressMap) Get(addr Address) (value interface{}, ok bool) { +func (a *AddressMap) Get(addr Address) (value any, ok bool) { addrKey := toMapKey(&addr) entryList := a.m[addrKey] if entry := entryList.find(addr); entry != -1 { @@ -79,7 +79,7 @@ func (a *AddressMap) Get(addr Address) (value interface{}, ok bool) { } // Set updates or adds the value to the address in the map. -func (a *AddressMap) Set(addr Address, value interface{}) { +func (a *AddressMap) Set(addr Address, value any) { addrKey := toMapKey(&addr) entryList := a.m[addrKey] if entry := entryList.find(addr); entry != -1 { @@ -127,8 +127,8 @@ func (a *AddressMap) Keys() []Address { } // Values returns a slice of all current map values. -func (a *AddressMap) Values() []interface{} { - ret := make([]interface{}, 0, a.Len()) +func (a *AddressMap) Values() []any { + ret := make([]any, 0, a.Len()) for _, entryList := range a.m { for _, entry := range entryList { ret = append(ret, entry.value) diff --git a/vendor/google.golang.org/grpc/resolver/resolver.go b/vendor/google.golang.org/grpc/resolver/resolver.go index 654e9ce69f4a..11384e228e54 100644 --- a/vendor/google.golang.org/grpc/resolver/resolver.go +++ b/vendor/google.golang.org/grpc/resolver/resolver.go @@ -22,13 +22,13 @@ package resolver import ( "context" + "fmt" "net" "net/url" "strings" "google.golang.org/grpc/attributes" "google.golang.org/grpc/credentials" - "google.golang.org/grpc/internal/pretty" "google.golang.org/grpc/serviceconfig" ) @@ -41,8 +41,9 @@ var ( // TODO(bar) install dns resolver in init(){}. -// Register registers the resolver builder to the resolver map. b.Scheme will be -// used as the scheme registered with this builder. +// Register registers the resolver builder to the resolver map. b.Scheme will +// be used as the scheme registered with this builder. The registry is case +// sensitive, and schemes should not contain any uppercase characters. // // NOTE: this function must only be called during initialization time (i.e. in // an init() function), and is not thread-safe. If multiple Resolvers are @@ -76,25 +77,6 @@ func GetDefaultScheme() string { return defaultScheme } -// AddressType indicates the address type returned by name resolution. -// -// Deprecated: use Attributes in Address instead. -type AddressType uint8 - -const ( - // Backend indicates the address is for a backend server. - // - // Deprecated: use Attributes in Address instead. - Backend AddressType = iota - // GRPCLB indicates the address is for a grpclb load balancer. - // - // Deprecated: to select the GRPCLB load balancing policy, use a service - // config with a corresponding loadBalancingConfig. To supply balancer - // addresses to the GRPCLB load balancing policy, set State.Attributes - // using balancer/grpclb/state.Set. - GRPCLB -) - // Address represents a server the client connects to. // // # Experimental @@ -110,9 +92,6 @@ type Address struct { // the address, instead of the hostname from the Dial target string. In most cases, // this should not be set. // - // If Type is GRPCLB, ServerName should be the name of the remote load - // balancer, not the name of the backend. - // // WARNING: ServerName must only be populated with trusted values. It // is insecure to populate it with data from untrusted inputs since untrusted // values could be used to bypass the authority checks performed by TLS. @@ -123,34 +102,46 @@ type Address struct { Attributes *attributes.Attributes // BalancerAttributes contains arbitrary data about this address intended - // for consumption by the LB policy. These attribes do not affect SubConn + // for consumption by the LB policy. These attributes do not affect SubConn // creation, connection establishment, handshaking, etc. - BalancerAttributes *attributes.Attributes - - // Type is the type of this address. // - // Deprecated: use Attributes instead. - Type AddressType + // Deprecated: when an Address is inside an Endpoint, this field should not + // be used, and it will eventually be removed entirely. + BalancerAttributes *attributes.Attributes // Metadata is the information associated with Addr, which may be used // to make load balancing decision. // // Deprecated: use Attributes instead. - Metadata interface{} + Metadata any } // Equal returns whether a and o are identical. Metadata is compared directly, // not with any recursive introspection. +// +// This method compares all fields of the address. When used to tell apart +// addresses during subchannel creation or connection establishment, it might be +// more appropriate for the caller to implement custom equality logic. func (a Address) Equal(o Address) bool { return a.Addr == o.Addr && a.ServerName == o.ServerName && a.Attributes.Equal(o.Attributes) && a.BalancerAttributes.Equal(o.BalancerAttributes) && - a.Type == o.Type && a.Metadata == o.Metadata + a.Metadata == o.Metadata } // String returns JSON formatted string representation of the address. func (a Address) String() string { - return pretty.ToJSON(a) + var sb strings.Builder + sb.WriteString(fmt.Sprintf("{Addr: %q, ", a.Addr)) + sb.WriteString(fmt.Sprintf("ServerName: %q, ", a.ServerName)) + if a.Attributes != nil { + sb.WriteString(fmt.Sprintf("Attributes: %v, ", a.Attributes.String())) + } + if a.BalancerAttributes != nil { + sb.WriteString(fmt.Sprintf("BalancerAttributes: %v", a.BalancerAttributes.String())) + } + sb.WriteString("}") + return sb.String() } // BuildOptions includes additional information for the builder to create @@ -179,11 +170,37 @@ type BuildOptions struct { Dialer func(context.Context, string) (net.Conn, error) } +// An Endpoint is one network endpoint, or server, which may have multiple +// addresses with which it can be accessed. +type Endpoint struct { + // Addresses contains a list of addresses used to access this endpoint. + Addresses []Address + + // Attributes contains arbitrary data about this endpoint intended for + // consumption by the LB policy. + Attributes *attributes.Attributes +} + // State contains the current Resolver state relevant to the ClientConn. type State struct { // Addresses is the latest set of resolved addresses for the target. + // + // If a resolver sets Addresses but does not set Endpoints, one Endpoint + // will be created for each Address before the State is passed to the LB + // policy. The BalancerAttributes of each entry in Addresses will be set + // in Endpoints.Attributes, and be cleared in the Endpoint's Address's + // BalancerAttributes. + // + // Soon, Addresses will be deprecated and replaced fully by Endpoints. Addresses []Address + // Endpoints is the latest set of resolved endpoints for the target. + // + // If a resolver produces a State containing Endpoints but not Addresses, + // it must take care to ensure the LB policies it selects will support + // Endpoints. + Endpoints []Endpoint + // ServiceConfig contains the result from parsing the latest service // config. If it is nil, it indicates no service config is present or the // resolver does not provide service configs. @@ -203,6 +220,15 @@ type State struct { // gRPC to add new methods to this interface. type ClientConn interface { // UpdateState updates the state of the ClientConn appropriately. + // + // If an error is returned, the resolver should try to resolve the + // target again. The resolver should use a backoff timer to prevent + // overloading the server with requests. If a resolver is certain that + // reresolving will not change the result, e.g. because it is + // a watch-based resolver, returned errors can be ignored. + // + // If the resolved State is the same as the last reported one, calling + // UpdateState can be omitted. UpdateState(State) error // ReportError notifies the ClientConn that the Resolver encountered an // error. The ClientConn will notify the load balancer and begin calling @@ -234,20 +260,7 @@ type ClientConn interface { // target does not contain a scheme or if the parsed scheme is not registered // (i.e. no corresponding resolver available to resolve the endpoint), we will // apply the default scheme, and will attempt to reparse it. -// -// Examples: -// -// - "dns://some_authority/foo.bar" -// Target{Scheme: "dns", Authority: "some_authority", Endpoint: "foo.bar"} -// - "foo.bar" -// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "foo.bar"} -// - "unknown_scheme://authority/endpoint" -// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "unknown_scheme://authority/endpoint"} type Target struct { - // Deprecated: use URL.Scheme instead. - Scheme string - // Deprecated: use URL.Host instead. - Authority string // URL contains the parsed dial target with an optional default scheme added // to it if the original dial target contained no scheme or contained an // unregistered scheme. Any query params specified in the original dial @@ -280,8 +293,10 @@ type Builder interface { // gRPC dial calls Build synchronously, and fails if the returned error is // not nil. Build(target Target, cc ClientConn, opts BuildOptions) (Resolver, error) - // Scheme returns the scheme supported by this resolver. - // Scheme is defined at https://github.com/grpc/grpc/blob/master/doc/naming.md. + // Scheme returns the scheme supported by this resolver. Scheme is defined + // at https://github.com/grpc/grpc/blob/master/doc/naming.md. The returned + // string should not contain uppercase characters, as they will not match + // the parsed target's scheme as defined in RFC 3986. Scheme() string } @@ -299,10 +314,3 @@ type Resolver interface { // Close closes the resolver. Close() } - -// UnregisterForTesting removes the resolver builder with the given scheme from the -// resolver map. -// This function is for testing only. -func UnregisterForTesting(scheme string) { - delete(m, scheme) -} diff --git a/vendor/google.golang.org/grpc/resolver_conn_wrapper.go b/vendor/google.golang.org/grpc/resolver_conn_wrapper.go index 05a9d4e0bac0..d68330560848 100644 --- a/vendor/google.golang.org/grpc/resolver_conn_wrapper.go +++ b/vendor/google.golang.org/grpc/resolver_conn_wrapper.go @@ -19,11 +19,11 @@ package grpc import ( + "context" "strings" "sync" "google.golang.org/grpc/balancer" - "google.golang.org/grpc/credentials" "google.golang.org/grpc/internal/channelz" "google.golang.org/grpc/internal/grpcsync" "google.golang.org/grpc/internal/pretty" @@ -31,129 +31,200 @@ import ( "google.golang.org/grpc/serviceconfig" ) +// resolverStateUpdater wraps the single method used by ccResolverWrapper to +// report a state update from the actual resolver implementation. +type resolverStateUpdater interface { + updateResolverState(s resolver.State, err error) error +} + // ccResolverWrapper is a wrapper on top of cc for resolvers. // It implements resolver.ClientConn interface. type ccResolverWrapper struct { - cc *ClientConn - resolverMu sync.Mutex - resolver resolver.Resolver - done *grpcsync.Event - curState resolver.State + // The following fields are initialized when the wrapper is created and are + // read-only afterwards, and therefore can be accessed without a mutex. + cc resolverStateUpdater + channelzID *channelz.Identifier + ignoreServiceConfig bool + opts ccResolverWrapperOpts + serializer *grpcsync.CallbackSerializer // To serialize all incoming calls. + serializerCancel context.CancelFunc // To close the serializer, accessed only from close(). + + // All incoming (resolver --> gRPC) calls are guaranteed to execute in a + // mutually exclusive manner as they are scheduled on the serializer. + // Fields accessed *only* in these serializer callbacks, can therefore be + // accessed without a mutex. + curState resolver.State + + // mu guards access to the below fields. + mu sync.Mutex + closed bool + resolver resolver.Resolver // Accessed only from outgoing calls. +} - incomingMu sync.Mutex // Synchronizes all the incoming calls. +// ccResolverWrapperOpts wraps the arguments to be passed when creating a new +// ccResolverWrapper. +type ccResolverWrapperOpts struct { + target resolver.Target // User specified dial target to resolve. + builder resolver.Builder // Resolver builder to use. + bOpts resolver.BuildOptions // Resolver build options to use. + channelzID *channelz.Identifier // Channelz identifier for the channel. } // newCCResolverWrapper uses the resolver.Builder to build a Resolver and // returns a ccResolverWrapper object which wraps the newly built resolver. -func newCCResolverWrapper(cc *ClientConn, rb resolver.Builder) (*ccResolverWrapper, error) { +func newCCResolverWrapper(cc resolverStateUpdater, opts ccResolverWrapperOpts) (*ccResolverWrapper, error) { + ctx, cancel := context.WithCancel(context.Background()) ccr := &ccResolverWrapper{ - cc: cc, - done: grpcsync.NewEvent(), - } - - var credsClone credentials.TransportCredentials - if creds := cc.dopts.copts.TransportCredentials; creds != nil { - credsClone = creds.Clone() - } - rbo := resolver.BuildOptions{ - DisableServiceConfig: cc.dopts.disableServiceConfig, - DialCreds: credsClone, - CredsBundle: cc.dopts.copts.CredsBundle, - Dialer: cc.dopts.copts.Dialer, - } - - var err error - // We need to hold the lock here while we assign to the ccr.resolver field - // to guard against a data race caused by the following code path, - // rb.Build-->ccr.ReportError-->ccr.poll-->ccr.resolveNow, would end up - // accessing ccr.resolver which is being assigned here. - ccr.resolverMu.Lock() - defer ccr.resolverMu.Unlock() - ccr.resolver, err = rb.Build(cc.parsedTarget, ccr, rbo) + cc: cc, + channelzID: opts.channelzID, + ignoreServiceConfig: opts.bOpts.DisableServiceConfig, + opts: opts, + serializer: grpcsync.NewCallbackSerializer(ctx), + serializerCancel: cancel, + } + + // Cannot hold the lock at build time because the resolver can send an + // update or error inline and these incoming calls grab the lock to schedule + // a callback in the serializer. + r, err := opts.builder.Build(opts.target, ccr, opts.bOpts) if err != nil { + cancel() return nil, err } + + // Any error reported by the resolver at build time that leads to a + // re-resolution request from the balancer is dropped by grpc until we + // return from this function. So, we don't have to handle pending resolveNow + // requests here. + ccr.mu.Lock() + ccr.resolver = r + ccr.mu.Unlock() + return ccr, nil } func (ccr *ccResolverWrapper) resolveNow(o resolver.ResolveNowOptions) { - ccr.resolverMu.Lock() - if !ccr.done.HasFired() { - ccr.resolver.ResolveNow(o) + ccr.mu.Lock() + defer ccr.mu.Unlock() + + // ccr.resolver field is set only after the call to Build() returns. But in + // the process of building, the resolver may send an error update which when + // propagated to the balancer may result in a re-resolution request. + if ccr.closed || ccr.resolver == nil { + return } - ccr.resolverMu.Unlock() + ccr.resolver.ResolveNow(o) } func (ccr *ccResolverWrapper) close() { - ccr.resolverMu.Lock() - ccr.resolver.Close() - ccr.done.Fire() - ccr.resolverMu.Unlock() + ccr.mu.Lock() + if ccr.closed { + ccr.mu.Unlock() + return + } + + channelz.Info(logger, ccr.channelzID, "Closing the name resolver") + + // Close the serializer to ensure that no more calls from the resolver are + // handled, before actually closing the resolver. + ccr.serializerCancel() + ccr.closed = true + r := ccr.resolver + ccr.mu.Unlock() + + // Give enqueued callbacks a chance to finish. + <-ccr.serializer.Done() + + // Spawn a goroutine to close the resolver (since it may block trying to + // cleanup all allocated resources) and return early. + go r.Close() +} + +// serializerScheduleLocked is a convenience method to schedule a function to be +// run on the serializer while holding ccr.mu. +func (ccr *ccResolverWrapper) serializerScheduleLocked(f func(context.Context)) { + ccr.mu.Lock() + ccr.serializer.Schedule(f) + ccr.mu.Unlock() } +// UpdateState is called by resolver implementations to report new state to gRPC +// which includes addresses and service config. func (ccr *ccResolverWrapper) UpdateState(s resolver.State) error { - ccr.incomingMu.Lock() - defer ccr.incomingMu.Unlock() - if ccr.done.HasFired() { + errCh := make(chan error, 1) + if s.Endpoints == nil { + s.Endpoints = make([]resolver.Endpoint, 0, len(s.Addresses)) + for _, a := range s.Addresses { + ep := resolver.Endpoint{Addresses: []resolver.Address{a}, Attributes: a.BalancerAttributes} + ep.Addresses[0].BalancerAttributes = nil + s.Endpoints = append(s.Endpoints, ep) + } + } + ok := ccr.serializer.Schedule(func(context.Context) { + ccr.addChannelzTraceEvent(s) + ccr.curState = s + if err := ccr.cc.updateResolverState(ccr.curState, nil); err == balancer.ErrBadResolverState { + errCh <- balancer.ErrBadResolverState + return + } + errCh <- nil + }) + if !ok { + // The only time when Schedule() fail to add the callback to the + // serializer is when the serializer is closed, and this happens only + // when the resolver wrapper is closed. return nil } - ccr.addChannelzTraceEvent(s) - ccr.curState = s - if err := ccr.cc.updateResolverState(ccr.curState, nil); err == balancer.ErrBadResolverState { - return balancer.ErrBadResolverState - } - return nil + return <-errCh } +// ReportError is called by resolver implementations to report errors +// encountered during name resolution to gRPC. func (ccr *ccResolverWrapper) ReportError(err error) { - ccr.incomingMu.Lock() - defer ccr.incomingMu.Unlock() - if ccr.done.HasFired() { - return - } - channelz.Warningf(logger, ccr.cc.channelzID, "ccResolverWrapper: reporting error to cc: %v", err) - ccr.cc.updateResolverState(resolver.State{}, err) + ccr.serializerScheduleLocked(func(_ context.Context) { + channelz.Warningf(logger, ccr.channelzID, "ccResolverWrapper: reporting error to cc: %v", err) + ccr.cc.updateResolverState(resolver.State{}, err) + }) } -// NewAddress is called by the resolver implementation to send addresses to gRPC. +// NewAddress is called by the resolver implementation to send addresses to +// gRPC. func (ccr *ccResolverWrapper) NewAddress(addrs []resolver.Address) { - ccr.incomingMu.Lock() - defer ccr.incomingMu.Unlock() - if ccr.done.HasFired() { - return - } - ccr.addChannelzTraceEvent(resolver.State{Addresses: addrs, ServiceConfig: ccr.curState.ServiceConfig}) - ccr.curState.Addresses = addrs - ccr.cc.updateResolverState(ccr.curState, nil) + ccr.serializerScheduleLocked(func(_ context.Context) { + ccr.addChannelzTraceEvent(resolver.State{Addresses: addrs, ServiceConfig: ccr.curState.ServiceConfig}) + ccr.curState.Addresses = addrs + ccr.cc.updateResolverState(ccr.curState, nil) + }) } // NewServiceConfig is called by the resolver implementation to send service // configs to gRPC. func (ccr *ccResolverWrapper) NewServiceConfig(sc string) { - ccr.incomingMu.Lock() - defer ccr.incomingMu.Unlock() - if ccr.done.HasFired() { - return - } - channelz.Infof(logger, ccr.cc.channelzID, "ccResolverWrapper: got new service config: %s", sc) - if ccr.cc.dopts.disableServiceConfig { - channelz.Info(logger, ccr.cc.channelzID, "Service config lookups disabled; ignoring config") - return - } - scpr := parseServiceConfig(sc) - if scpr.Err != nil { - channelz.Warningf(logger, ccr.cc.channelzID, "ccResolverWrapper: error parsing service config: %v", scpr.Err) - return - } - ccr.addChannelzTraceEvent(resolver.State{Addresses: ccr.curState.Addresses, ServiceConfig: scpr}) - ccr.curState.ServiceConfig = scpr - ccr.cc.updateResolverState(ccr.curState, nil) + ccr.serializerScheduleLocked(func(_ context.Context) { + channelz.Infof(logger, ccr.channelzID, "ccResolverWrapper: got new service config: %s", sc) + if ccr.ignoreServiceConfig { + channelz.Info(logger, ccr.channelzID, "Service config lookups disabled; ignoring config") + return + } + scpr := parseServiceConfig(sc) + if scpr.Err != nil { + channelz.Warningf(logger, ccr.channelzID, "ccResolverWrapper: error parsing service config: %v", scpr.Err) + return + } + ccr.addChannelzTraceEvent(resolver.State{Addresses: ccr.curState.Addresses, ServiceConfig: scpr}) + ccr.curState.ServiceConfig = scpr + ccr.cc.updateResolverState(ccr.curState, nil) + }) } +// ParseServiceConfig is called by resolver implementations to parse a JSON +// representation of the service config. func (ccr *ccResolverWrapper) ParseServiceConfig(scJSON string) *serviceconfig.ParseResult { return parseServiceConfig(scJSON) } +// addChannelzTraceEvent adds a channelz trace event containing the new +// state received from resolver implementations. func (ccr *ccResolverWrapper) addChannelzTraceEvent(s resolver.State) { var updates []string var oldSC, newSC *ServiceConfig @@ -172,5 +243,5 @@ func (ccr *ccResolverWrapper) addChannelzTraceEvent(s resolver.State) { } else if len(ccr.curState.Addresses) == 0 && len(s.Addresses) > 0 { updates = append(updates, "resolver returned new addresses") } - channelz.Infof(logger, ccr.cc.channelzID, "Resolver state updated: %s (%v)", pretty.ToJSON(s), strings.Join(updates, "; ")) + channelz.Infof(logger, ccr.channelzID, "Resolver state updated: %s (%v)", pretty.ToJSON(s), strings.Join(updates, "; ")) } diff --git a/vendor/google.golang.org/grpc/rpc_util.go b/vendor/google.golang.org/grpc/rpc_util.go index cb7020ebecd7..b7723aa09cbb 100644 --- a/vendor/google.golang.org/grpc/rpc_util.go +++ b/vendor/google.golang.org/grpc/rpc_util.go @@ -75,7 +75,7 @@ func NewGZIPCompressorWithLevel(level int) (Compressor, error) { } return &gzipCompressor{ pool: sync.Pool{ - New: func() interface{} { + New: func() any { w, err := gzip.NewWriterLevel(io.Discard, level) if err != nil { panic(err) @@ -159,6 +159,7 @@ type callInfo struct { contentSubtype string codec baseCodec maxRetryRPCBufferSize int + onFinish []func(err error) } func defaultCallInfo() *callInfo { @@ -295,6 +296,41 @@ func (o FailFastCallOption) before(c *callInfo) error { } func (o FailFastCallOption) after(c *callInfo, attempt *csAttempt) {} +// OnFinish returns a CallOption that configures a callback to be called when +// the call completes. The error passed to the callback is the status of the +// RPC, and may be nil. The onFinish callback provided will only be called once +// by gRPC. This is mainly used to be used by streaming interceptors, to be +// notified when the RPC completes along with information about the status of +// the RPC. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func OnFinish(onFinish func(err error)) CallOption { + return OnFinishCallOption{ + OnFinish: onFinish, + } +} + +// OnFinishCallOption is CallOption that indicates a callback to be called when +// the call completes. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type OnFinishCallOption struct { + OnFinish func(error) +} + +func (o OnFinishCallOption) before(c *callInfo) error { + c.onFinish = append(c.onFinish, o.OnFinish) + return nil +} + +func (o OnFinishCallOption) after(c *callInfo, attempt *csAttempt) {} + // MaxCallRecvMsgSize returns a CallOption which sets the maximum message size // in bytes the client can receive. If this is not set, gRPC uses the default // 4MB. @@ -541,6 +577,9 @@ type parser struct { // The header of a gRPC message. Find more detail at // https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md header [5]byte + + // recvBufferPool is the pool of shared receive buffers. + recvBufferPool SharedBufferPool } // recvMsg reads a complete gRPC message from the stream. @@ -574,9 +613,7 @@ func (p *parser) recvMsg(maxReceiveMessageSize int) (pf payloadFormat, msg []byt if int(length) > maxReceiveMessageSize { return 0, nil, status.Errorf(codes.ResourceExhausted, "grpc: received message larger than max (%d vs. %d)", length, maxReceiveMessageSize) } - // TODO(bradfitz,zhaoq): garbage. reuse buffer after proto decoding instead - // of making it for each message: - msg = make([]byte, int(length)) + msg = p.recvBufferPool.Get(int(length)) if _, err := p.r.Read(msg); err != nil { if err == io.EOF { err = io.ErrUnexpectedEOF @@ -589,7 +626,7 @@ func (p *parser) recvMsg(maxReceiveMessageSize int) (pf payloadFormat, msg []byt // encode serializes msg and returns a buffer containing the message, or an // error if it is too large to be transmitted by grpc. If msg is nil, it // generates an empty message. -func encode(c baseCodec, msg interface{}) ([]byte, error) { +func encode(c baseCodec, msg any) ([]byte, error) { if msg == nil { // NOTE: typed nils will not be caught by this check return nil, nil } @@ -656,14 +693,15 @@ func msgHeader(data, compData []byte) (hdr []byte, payload []byte) { return hdr, data } -func outPayload(client bool, msg interface{}, data, payload []byte, t time.Time) *stats.OutPayload { +func outPayload(client bool, msg any, data, payload []byte, t time.Time) *stats.OutPayload { return &stats.OutPayload{ - Client: client, - Payload: msg, - Data: data, - Length: len(data), - WireLength: len(payload) + headerLen, - SentTime: t, + Client: client, + Payload: msg, + Data: data, + Length: len(data), + WireLength: len(payload) + headerLen, + CompressedLength: len(payload), + SentTime: t, } } @@ -684,17 +722,17 @@ func checkRecvPayload(pf payloadFormat, recvCompress string, haveCompressor bool } type payloadInfo struct { - wireLength int // The compressed length got from wire. + compressedLength int // The compressed length got from wire. uncompressedBytes []byte } func recvAndDecompress(p *parser, s *transport.Stream, dc Decompressor, maxReceiveMessageSize int, payInfo *payloadInfo, compressor encoding.Compressor) ([]byte, error) { - pf, d, err := p.recvMsg(maxReceiveMessageSize) + pf, buf, err := p.recvMsg(maxReceiveMessageSize) if err != nil { return nil, err } if payInfo != nil { - payInfo.wireLength = len(d) + payInfo.compressedLength = len(buf) } if st := checkRecvPayload(pf, s.RecvCompress(), compressor != nil || dc != nil); st != nil { @@ -706,10 +744,10 @@ func recvAndDecompress(p *parser, s *transport.Stream, dc Decompressor, maxRecei // To match legacy behavior, if the decompressor is set by WithDecompressor or RPCDecompressor, // use this decompressor as the default. if dc != nil { - d, err = dc.Do(bytes.NewReader(d)) - size = len(d) + buf, err = dc.Do(bytes.NewReader(buf)) + size = len(buf) } else { - d, size, err = decompress(compressor, d, maxReceiveMessageSize) + buf, size, err = decompress(compressor, buf, maxReceiveMessageSize) } if err != nil { return nil, status.Errorf(codes.Internal, "grpc: failed to decompress the received message: %v", err) @@ -720,7 +758,7 @@ func recvAndDecompress(p *parser, s *transport.Stream, dc Decompressor, maxRecei return nil, status.Errorf(codes.ResourceExhausted, "grpc: received message after decompression larger than max (%d vs. %d)", size, maxReceiveMessageSize) } } - return d, nil + return buf, nil } // Using compressor, decompress d, returning data and size. @@ -754,16 +792,18 @@ func decompress(compressor encoding.Compressor, d []byte, maxReceiveMessageSize // For the two compressor parameters, both should not be set, but if they are, // dc takes precedence over compressor. // TODO(dfawley): wrap the old compressor/decompressor using the new API? -func recv(p *parser, c baseCodec, s *transport.Stream, dc Decompressor, m interface{}, maxReceiveMessageSize int, payInfo *payloadInfo, compressor encoding.Compressor) error { - d, err := recvAndDecompress(p, s, dc, maxReceiveMessageSize, payInfo, compressor) +func recv(p *parser, c baseCodec, s *transport.Stream, dc Decompressor, m any, maxReceiveMessageSize int, payInfo *payloadInfo, compressor encoding.Compressor) error { + buf, err := recvAndDecompress(p, s, dc, maxReceiveMessageSize, payInfo, compressor) if err != nil { return err } - if err := c.Unmarshal(d, m); err != nil { + if err := c.Unmarshal(buf, m); err != nil { return status.Errorf(codes.Internal, "grpc: failed to unmarshal the received message: %v", err) } if payInfo != nil { - payInfo.uncompressedBytes = d + payInfo.uncompressedBytes = buf + } else { + p.recvBufferPool.Put(&buf) } return nil } @@ -823,19 +863,22 @@ func ErrorDesc(err error) string { // Errorf returns nil if c is OK. // // Deprecated: use status.Errorf instead. -func Errorf(c codes.Code, format string, a ...interface{}) error { +func Errorf(c codes.Code, format string, a ...any) error { return status.Errorf(c, format, a...) } +var errContextCanceled = status.Error(codes.Canceled, context.Canceled.Error()) +var errContextDeadline = status.Error(codes.DeadlineExceeded, context.DeadlineExceeded.Error()) + // toRPCErr converts an error into an error from the status package. func toRPCErr(err error) error { switch err { case nil, io.EOF: return err case context.DeadlineExceeded: - return status.Error(codes.DeadlineExceeded, err.Error()) + return errContextDeadline case context.Canceled: - return status.Error(codes.Canceled, err.Error()) + return errContextCanceled case io.ErrUnexpectedEOF: return status.Error(codes.Internal, err.Error()) } diff --git a/vendor/google.golang.org/grpc/server.go b/vendor/google.golang.org/grpc/server.go index d5a6e78be44d..244123c6c5a8 100644 --- a/vendor/google.golang.org/grpc/server.go +++ b/vendor/google.golang.org/grpc/server.go @@ -43,8 +43,8 @@ import ( "google.golang.org/grpc/internal" "google.golang.org/grpc/internal/binarylog" "google.golang.org/grpc/internal/channelz" - "google.golang.org/grpc/internal/grpcrand" "google.golang.org/grpc/internal/grpcsync" + "google.golang.org/grpc/internal/grpcutil" "google.golang.org/grpc/internal/transport" "google.golang.org/grpc/keepalive" "google.golang.org/grpc/metadata" @@ -74,10 +74,10 @@ func init() { srv.drainServerTransports(addr) } internal.AddGlobalServerOptions = func(opt ...ServerOption) { - extraServerOptions = append(extraServerOptions, opt...) + globalServerOptions = append(globalServerOptions, opt...) } internal.ClearGlobalServerOptions = func() { - extraServerOptions = nil + globalServerOptions = nil } internal.BinaryLogger = binaryLogger internal.JoinServerOptions = newJoinServerOption @@ -86,7 +86,7 @@ func init() { var statusOK = status.New(codes.OK, "") var logger = grpclog.Component("core") -type methodHandler func(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor UnaryServerInterceptor) (interface{}, error) +type methodHandler func(srv any, ctx context.Context, dec func(any) error, interceptor UnaryServerInterceptor) (any, error) // MethodDesc represents an RPC service's method specification. type MethodDesc struct { @@ -99,20 +99,20 @@ type ServiceDesc struct { ServiceName string // The pointer to the service interface. Used to check whether the user // provided implementation satisfies the interface requirements. - HandlerType interface{} + HandlerType any Methods []MethodDesc Streams []StreamDesc - Metadata interface{} + Metadata any } // serviceInfo wraps information about a service. It is very similar to // ServiceDesc and is constructed from it for internal purposes. type serviceInfo struct { // Contains the implementation for the methods in this service. - serviceImpl interface{} + serviceImpl any methods map[string]*MethodDesc streams map[string]*StreamDesc - mdata interface{} + mdata any } type serverWorkerData struct { @@ -145,7 +145,7 @@ type Server struct { channelzID *channelz.Identifier czData *channelzData - serverWorkerChannels []chan *serverWorkerData + serverWorkerChannel chan *serverWorkerData } type serverOptions struct { @@ -170,10 +170,12 @@ type serverOptions struct { initialConnWindowSize int32 writeBufferSize int readBufferSize int + sharedWriteBuffer bool connectionTimeout time.Duration maxHeaderListSize *uint32 headerTableSize *uint32 numServerWorkers uint32 + recvBufferPool SharedBufferPool } var defaultServerOptions = serverOptions{ @@ -182,8 +184,9 @@ var defaultServerOptions = serverOptions{ connectionTimeout: 120 * time.Second, writeBufferSize: defaultWriteBufSize, readBufferSize: defaultReadBufSize, + recvBufferPool: nopBufferPool{}, } -var extraServerOptions []ServerOption +var globalServerOptions []ServerOption // A ServerOption sets options such as credentials, codec and keepalive parameters, etc. type ServerOption interface { @@ -233,6 +236,20 @@ func newJoinServerOption(opts ...ServerOption) ServerOption { return &joinServerOption{opts: opts} } +// SharedWriteBuffer allows reusing per-connection transport write buffer. +// If this option is set to true every connection will release the buffer after +// flushing the data on the wire. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func SharedWriteBuffer(val bool) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.sharedWriteBuffer = val + }) +} + // WriteBufferSize determines how much data can be batched before doing a write // on the wire. The corresponding memory allocation for this buffer will be // twice the size to keep syscalls low. The default value for this buffer is @@ -273,9 +290,9 @@ func InitialConnWindowSize(s int32) ServerOption { // KeepaliveParams returns a ServerOption that sets keepalive and max-age parameters for the server. func KeepaliveParams(kp keepalive.ServerParameters) ServerOption { - if kp.Time > 0 && kp.Time < time.Second { + if kp.Time > 0 && kp.Time < internal.KeepaliveMinServerPingTime { logger.Warning("Adjusting keepalive ping interval to minimum period of 1s") - kp.Time = time.Second + kp.Time = internal.KeepaliveMinServerPingTime } return newFuncServerOption(func(o *serverOptions) { @@ -552,6 +569,27 @@ func NumStreamWorkers(numServerWorkers uint32) ServerOption { }) } +// RecvBufferPool returns a ServerOption that configures the server +// to use the provided shared buffer pool for parsing incoming messages. Depending +// on the application's workload, this could result in reduced memory allocation. +// +// If you are unsure about how to implement a memory pool but want to utilize one, +// begin with grpc.NewSharedBufferPool. +// +// Note: The shared buffer pool feature will not be active if any of the following +// options are used: StatsHandler, EnableTracing, or binary logging. In such +// cases, the shared buffer pool will be ignored. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func RecvBufferPool(bufferPool SharedBufferPool) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.recvBufferPool = bufferPool + }) +} + // serverWorkerResetThreshold defines how often the stack must be reset. Every // N requests, by spawning a new goroutine in its place, a worker can reset its // stack so that large stacks don't live in memory forever. 2^16 should allow @@ -560,47 +598,45 @@ func NumStreamWorkers(numServerWorkers uint32) ServerOption { const serverWorkerResetThreshold = 1 << 16 // serverWorkers blocks on a *transport.Stream channel forever and waits for -// data to be fed by serveStreams. This allows different requests to be +// data to be fed by serveStreams. This allows multiple requests to be // processed by the same goroutine, removing the need for expensive stack // re-allocations (see the runtime.morestack problem [1]). // // [1] https://github.com/golang/go/issues/18138 -func (s *Server) serverWorker(ch chan *serverWorkerData) { - // To make sure all server workers don't reset at the same time, choose a - // random number of iterations before resetting. - threshold := serverWorkerResetThreshold + grpcrand.Intn(serverWorkerResetThreshold) - for completed := 0; completed < threshold; completed++ { - data, ok := <-ch +func (s *Server) serverWorker() { + for completed := 0; completed < serverWorkerResetThreshold; completed++ { + data, ok := <-s.serverWorkerChannel if !ok { return } - s.handleStream(data.st, data.stream, s.traceInfo(data.st, data.stream)) - data.wg.Done() + s.handleSingleStream(data) } - go s.serverWorker(ch) + go s.serverWorker() } -// initServerWorkers creates worker goroutines and channels to process incoming +func (s *Server) handleSingleStream(data *serverWorkerData) { + defer data.wg.Done() + s.handleStream(data.st, data.stream, s.traceInfo(data.st, data.stream)) +} + +// initServerWorkers creates worker goroutines and a channel to process incoming // connections to reduce the time spent overall on runtime.morestack. func (s *Server) initServerWorkers() { - s.serverWorkerChannels = make([]chan *serverWorkerData, s.opts.numServerWorkers) + s.serverWorkerChannel = make(chan *serverWorkerData) for i := uint32(0); i < s.opts.numServerWorkers; i++ { - s.serverWorkerChannels[i] = make(chan *serverWorkerData) - go s.serverWorker(s.serverWorkerChannels[i]) + go s.serverWorker() } } func (s *Server) stopServerWorkers() { - for i := uint32(0); i < s.opts.numServerWorkers; i++ { - close(s.serverWorkerChannels[i]) - } + close(s.serverWorkerChannel) } // NewServer creates a gRPC server which has no service registered and has not // started to accept requests yet. func NewServer(opt ...ServerOption) *Server { opts := defaultServerOptions - for _, o := range extraServerOptions { + for _, o := range globalServerOptions { o.apply(&opts) } for _, o := range opt { @@ -634,7 +670,7 @@ func NewServer(opt ...ServerOption) *Server { // printf records an event in s's event log, unless s has been stopped. // REQUIRES s.mu is held. -func (s *Server) printf(format string, a ...interface{}) { +func (s *Server) printf(format string, a ...any) { if s.events != nil { s.events.Printf(format, a...) } @@ -642,7 +678,7 @@ func (s *Server) printf(format string, a ...interface{}) { // errorf records an error in s's event log, unless s has been stopped. // REQUIRES s.mu is held. -func (s *Server) errorf(format string, a ...interface{}) { +func (s *Server) errorf(format string, a ...any) { if s.events != nil { s.events.Errorf(format, a...) } @@ -657,14 +693,14 @@ type ServiceRegistrar interface { // once the server has started serving. // desc describes the service and its methods and handlers. impl is the // service implementation which is passed to the method handlers. - RegisterService(desc *ServiceDesc, impl interface{}) + RegisterService(desc *ServiceDesc, impl any) } // RegisterService registers a service and its implementation to the gRPC // server. It is called from the IDL generated code. This must be called before // invoking Serve. If ss is non-nil (for legacy code), its type is checked to // ensure it implements sd.HandlerType. -func (s *Server) RegisterService(sd *ServiceDesc, ss interface{}) { +func (s *Server) RegisterService(sd *ServiceDesc, ss any) { if ss != nil { ht := reflect.TypeOf(sd.HandlerType).Elem() st := reflect.TypeOf(ss) @@ -675,7 +711,7 @@ func (s *Server) RegisterService(sd *ServiceDesc, ss interface{}) { s.register(sd, ss) } -func (s *Server) register(sd *ServiceDesc, ss interface{}) { +func (s *Server) register(sd *ServiceDesc, ss any) { s.mu.Lock() defer s.mu.Unlock() s.printf("RegisterService(%q)", sd.ServiceName) @@ -716,7 +752,7 @@ type MethodInfo struct { type ServiceInfo struct { Methods []MethodInfo // Metadata is the metadata specified in ServiceDesc when registering service. - Metadata interface{} + Metadata any } // GetServiceInfo returns a map from service names to ServiceInfo. @@ -897,7 +933,7 @@ func (s *Server) drainServerTransports(addr string) { s.mu.Lock() conns := s.conns[addr] for st := range conns { - st.Drain() + st.Drain("") } s.mu.Unlock() } @@ -917,6 +953,7 @@ func (s *Server) newHTTP2Transport(c net.Conn) transport.ServerTransport { InitialConnWindowSize: s.opts.initialConnWindowSize, WriteBufferSize: s.opts.writeBufferSize, ReadBufferSize: s.opts.readBufferSize, + SharedWriteBuffer: s.opts.sharedWriteBuffer, ChannelzParentID: s.channelzID, MaxHeaderListSize: s.opts.maxHeaderListSize, HeaderTableSize: s.opts.headerTableSize, @@ -945,26 +982,21 @@ func (s *Server) serveStreams(st transport.ServerTransport) { defer st.Close(errors.New("finished serving streams for the server transport")) var wg sync.WaitGroup - var roundRobinCounter uint32 st.HandleStreams(func(stream *transport.Stream) { wg.Add(1) if s.opts.numServerWorkers > 0 { data := &serverWorkerData{st: st, wg: &wg, stream: stream} select { - case s.serverWorkerChannels[atomic.AddUint32(&roundRobinCounter, 1)%s.opts.numServerWorkers] <- data: + case s.serverWorkerChannel <- data: + return default: // If all stream workers are busy, fallback to the default code path. - go func() { - s.handleStream(st, stream, s.traceInfo(st, stream)) - wg.Done() - }() } - } else { - go func() { - defer wg.Done() - s.handleStream(st, stream, s.traceInfo(st, stream)) - }() } + go func() { + defer wg.Done() + s.handleStream(st, stream, s.traceInfo(st, stream)) + }() }, func(ctx context.Context, method string) context.Context { if !EnableTracing { return ctx @@ -1053,7 +1085,7 @@ func (s *Server) addConn(addr string, st transport.ServerTransport) bool { if s.drain { // Transport added after we drained our existing conns: drain it // immediately. - st.Drain() + st.Drain("") } if s.conns[addr] == nil { @@ -1103,7 +1135,7 @@ func (s *Server) incrCallsFailed() { atomic.AddInt64(&s.czData.callsFailed, 1) } -func (s *Server) sendResponse(t transport.ServerTransport, stream *transport.Stream, msg interface{}, cp Compressor, opts *transport.Options, comp encoding.Compressor) error { +func (s *Server) sendResponse(t transport.ServerTransport, stream *transport.Stream, msg any, cp Compressor, opts *transport.Options, comp encoding.Compressor) error { data, err := encode(s.getCodec(stream.ContentSubtype()), msg) if err != nil { channelz.Error(logger, s.channelzID, "grpc: server failed to encode response: ", err) @@ -1150,7 +1182,7 @@ func chainUnaryServerInterceptors(s *Server) { } func chainUnaryInterceptors(interceptors []UnaryServerInterceptor) UnaryServerInterceptor { - return func(ctx context.Context, req interface{}, info *UnaryServerInfo, handler UnaryHandler) (interface{}, error) { + return func(ctx context.Context, req any, info *UnaryServerInfo, handler UnaryHandler) (any, error) { return interceptors[0](ctx, req, info, getChainUnaryHandler(interceptors, 0, info, handler)) } } @@ -1159,7 +1191,7 @@ func getChainUnaryHandler(interceptors []UnaryServerInterceptor, curr int, info if curr == len(interceptors)-1 { return finalHandler } - return func(ctx context.Context, req interface{}) (interface{}, error) { + return func(ctx context.Context, req any) (any, error) { return interceptors[curr+1](ctx, req, info, getChainUnaryHandler(interceptors, curr+1, info, finalHandler)) } } @@ -1196,7 +1228,7 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. defer func() { if trInfo != nil { if err != nil && err != io.EOF { - trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + trInfo.tr.LazyLog(&fmtStringer{"%v", []any{err}}, true) trInfo.tr.SetError() } trInfo.tr.Finish() @@ -1252,7 +1284,7 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. logEntry.PeerAddr = peer.Addr } for _, binlog := range binlogs { - binlog.Log(logEntry) + binlog.Log(ctx, logEntry) } } @@ -1263,6 +1295,7 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. var comp, decomp encoding.Compressor var cp Compressor var dc Decompressor + var sendCompressorName string // If dc is set and matches the stream's compression, use it. Otherwise, try // to find a matching registered compressor for decomp. @@ -1283,12 +1316,18 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. // NOTE: this needs to be ahead of all handling, https://github.com/grpc/grpc-go/issues/686. if s.opts.cp != nil { cp = s.opts.cp - stream.SetSendCompress(cp.Type()) + sendCompressorName = cp.Type() } else if rc := stream.RecvCompress(); rc != "" && rc != encoding.Identity { // Legacy compressor not specified; attempt to respond with same encoding. comp = encoding.GetCompressor(rc) if comp != nil { - stream.SetSendCompress(rc) + sendCompressorName = comp.Name() + } + } + + if sendCompressorName != "" { + if err := stream.SetSendCompress(sendCompressorName); err != nil { + return status.Errorf(codes.Internal, "grpc: failed to set send compressor: %v", err) } } @@ -1296,7 +1335,7 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. if len(shs) != 0 || len(binlogs) != 0 { payInfo = &payloadInfo{} } - d, err := recvAndDecompress(&parser{r: stream}, stream, dc, s.opts.maxReceiveMessageSize, payInfo, decomp) + d, err := recvAndDecompress(&parser{r: stream, recvBufferPool: s.opts.recvBufferPool}, stream, dc, s.opts.maxReceiveMessageSize, payInfo, decomp) if err != nil { if e := t.WriteStatus(stream, status.Convert(err)); e != nil { channelz.Warningf(logger, s.channelzID, "grpc: Server.processUnaryRPC failed to write status: %v", e) @@ -1306,17 +1345,18 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. if channelz.IsOn() { t.IncrMsgRecv() } - df := func(v interface{}) error { + df := func(v any) error { if err := s.getCodec(stream.ContentSubtype()).Unmarshal(d, v); err != nil { return status.Errorf(codes.Internal, "grpc: error unmarshalling request: %v", err) } for _, sh := range shs { sh.HandleRPC(stream.Context(), &stats.InPayload{ - RecvTime: time.Now(), - Payload: v, - WireLength: payInfo.wireLength + headerLen, - Data: d, - Length: len(d), + RecvTime: time.Now(), + Payload: v, + Length: len(d), + WireLength: payInfo.compressedLength + headerLen, + CompressedLength: payInfo.compressedLength, + Data: d, }) } if len(binlogs) != 0 { @@ -1324,7 +1364,7 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. Message: d, } for _, binlog := range binlogs { - binlog.Log(cm) + binlog.Log(stream.Context(), cm) } } if trInfo != nil { @@ -1357,7 +1397,7 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. Header: h, } for _, binlog := range binlogs { - binlog.Log(sh) + binlog.Log(stream.Context(), sh) } } st := &binarylog.ServerTrailer{ @@ -1365,7 +1405,7 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. Err: appErr, } for _, binlog := range binlogs { - binlog.Log(st) + binlog.Log(stream.Context(), st) } } return appErr @@ -1375,6 +1415,11 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. } opts := &transport.Options{Last: true} + // Server handler could have set new compressor by calling SetSendCompressor. + // In case it is set, we need to use it for compressing outbound message. + if stream.SendCompress() != sendCompressorName { + comp = encoding.GetCompressor(stream.SendCompress()) + } if err := s.sendResponse(t, stream, reply, cp, opts, comp); err != nil { if err == io.EOF { // The entire stream is done (for unary RPC only). @@ -1402,8 +1447,8 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. Err: appErr, } for _, binlog := range binlogs { - binlog.Log(sh) - binlog.Log(st) + binlog.Log(stream.Context(), sh) + binlog.Log(stream.Context(), st) } } return err @@ -1417,8 +1462,8 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. Message: reply, } for _, binlog := range binlogs { - binlog.Log(sh) - binlog.Log(sm) + binlog.Log(stream.Context(), sh) + binlog.Log(stream.Context(), sm) } } if channelz.IsOn() { @@ -1430,17 +1475,16 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. // TODO: Should we be logging if writing status failed here, like above? // Should the logging be in WriteStatus? Should we ignore the WriteStatus // error or allow the stats handler to see it? - err = t.WriteStatus(stream, statusOK) if len(binlogs) != 0 { st := &binarylog.ServerTrailer{ Trailer: stream.Trailer(), Err: appErr, } for _, binlog := range binlogs { - binlog.Log(st) + binlog.Log(stream.Context(), st) } } - return err + return t.WriteStatus(stream, statusOK) } // chainStreamServerInterceptors chains all stream server interceptors into one. @@ -1465,7 +1509,7 @@ func chainStreamServerInterceptors(s *Server) { } func chainStreamInterceptors(interceptors []StreamServerInterceptor) StreamServerInterceptor { - return func(srv interface{}, ss ServerStream, info *StreamServerInfo, handler StreamHandler) error { + return func(srv any, ss ServerStream, info *StreamServerInfo, handler StreamHandler) error { return interceptors[0](srv, ss, info, getChainStreamHandler(interceptors, 0, info, handler)) } } @@ -1474,7 +1518,7 @@ func getChainStreamHandler(interceptors []StreamServerInterceptor, curr int, inf if curr == len(interceptors)-1 { return finalHandler } - return func(srv interface{}, stream ServerStream) error { + return func(srv any, stream ServerStream) error { return interceptors[curr+1](srv, stream, info, getChainStreamHandler(interceptors, curr+1, info, finalHandler)) } } @@ -1501,7 +1545,7 @@ func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transp ctx: ctx, t: t, s: stream, - p: &parser{r: stream}, + p: &parser{r: stream, recvBufferPool: s.opts.recvBufferPool}, codec: s.getCodec(stream.ContentSubtype()), maxReceiveMessageSize: s.opts.maxReceiveMessageSize, maxSendMessageSize: s.opts.maxSendMessageSize, @@ -1515,7 +1559,7 @@ func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transp if trInfo != nil { ss.mu.Lock() if err != nil && err != io.EOF { - ss.trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + ss.trInfo.tr.LazyLog(&fmtStringer{"%v", []any{err}}, true) ss.trInfo.tr.SetError() } ss.trInfo.tr.Finish() @@ -1574,7 +1618,7 @@ func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transp logEntry.PeerAddr = peer.Addr } for _, binlog := range ss.binlogs { - binlog.Log(logEntry) + binlog.Log(stream.Context(), logEntry) } } @@ -1597,12 +1641,18 @@ func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transp // NOTE: this needs to be ahead of all handling, https://github.com/grpc/grpc-go/issues/686. if s.opts.cp != nil { ss.cp = s.opts.cp - stream.SetSendCompress(s.opts.cp.Type()) + ss.sendCompressorName = s.opts.cp.Type() } else if rc := stream.RecvCompress(); rc != "" && rc != encoding.Identity { // Legacy compressor not specified; attempt to respond with same encoding. ss.comp = encoding.GetCompressor(rc) if ss.comp != nil { - stream.SetSendCompress(rc) + ss.sendCompressorName = rc + } + } + + if ss.sendCompressorName != "" { + if err := stream.SetSendCompress(ss.sendCompressorName); err != nil { + return status.Errorf(codes.Internal, "grpc: failed to set send compressor: %v", err) } } @@ -1612,7 +1662,7 @@ func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transp trInfo.tr.LazyLog(&trInfo.firstLine, false) } var appErr error - var server interface{} + var server any if info != nil { server = info.serviceImpl } @@ -1640,16 +1690,16 @@ func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transp ss.trInfo.tr.SetError() ss.mu.Unlock() } - t.WriteStatus(ss.s, appStatus) if len(ss.binlogs) != 0 { st := &binarylog.ServerTrailer{ Trailer: ss.s.Trailer(), Err: appErr, } for _, binlog := range ss.binlogs { - binlog.Log(st) + binlog.Log(stream.Context(), st) } } + t.WriteStatus(ss.s, appStatus) // TODO: Should we log an error from WriteStatus here and below? return appErr } @@ -1658,17 +1708,16 @@ func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transp ss.trInfo.tr.LazyLog(stringer("OK"), false) ss.mu.Unlock() } - err = t.WriteStatus(ss.s, statusOK) if len(ss.binlogs) != 0 { st := &binarylog.ServerTrailer{ Trailer: ss.s.Trailer(), Err: appErr, } for _, binlog := range ss.binlogs { - binlog.Log(st) + binlog.Log(stream.Context(), st) } } - return err + return t.WriteStatus(ss.s, statusOK) } func (s *Server) handleStream(t transport.ServerTransport, stream *transport.Stream, trInfo *traceInfo) { @@ -1679,13 +1728,13 @@ func (s *Server) handleStream(t transport.ServerTransport, stream *transport.Str pos := strings.LastIndex(sm, "/") if pos == -1 { if trInfo != nil { - trInfo.tr.LazyLog(&fmtStringer{"Malformed method name %q", []interface{}{sm}}, true) + trInfo.tr.LazyLog(&fmtStringer{"Malformed method name %q", []any{sm}}, true) trInfo.tr.SetError() } errDesc := fmt.Sprintf("malformed method name: %q", stream.Method()) if err := t.WriteStatus(stream, status.New(codes.Unimplemented, errDesc)); err != nil { if trInfo != nil { - trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + trInfo.tr.LazyLog(&fmtStringer{"%v", []any{err}}, true) trInfo.tr.SetError() } channelz.Warningf(logger, s.channelzID, "grpc: Server.handleStream failed to write status: %v", err) @@ -1726,7 +1775,7 @@ func (s *Server) handleStream(t transport.ServerTransport, stream *transport.Str } if err := t.WriteStatus(stream, status.New(codes.Unimplemented, errDesc)); err != nil { if trInfo != nil { - trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + trInfo.tr.LazyLog(&fmtStringer{"%v", []any{err}}, true) trInfo.tr.SetError() } channelz.Warningf(logger, s.channelzID, "grpc: Server.handleStream failed to write status: %v", err) @@ -1846,7 +1895,7 @@ func (s *Server) GracefulStop() { if !s.drain { for _, conns := range s.conns { for st := range conns { - st.Drain() + st.Drain("graceful_stop") } } s.drain = true @@ -1935,6 +1984,60 @@ func SendHeader(ctx context.Context, md metadata.MD) error { return nil } +// SetSendCompressor sets a compressor for outbound messages from the server. +// It must not be called after any event that causes headers to be sent +// (see ServerStream.SetHeader for the complete list). Provided compressor is +// used when below conditions are met: +// +// - compressor is registered via encoding.RegisterCompressor +// - compressor name must exist in the client advertised compressor names +// sent in grpc-accept-encoding header. Use ClientSupportedCompressors to +// get client supported compressor names. +// +// The context provided must be the context passed to the server's handler. +// It must be noted that compressor name encoding.Identity disables the +// outbound compression. +// By default, server messages will be sent using the same compressor with +// which request messages were sent. +// +// It is not safe to call SetSendCompressor concurrently with SendHeader and +// SendMsg. +// +// # Experimental +// +// Notice: This function is EXPERIMENTAL and may be changed or removed in a +// later release. +func SetSendCompressor(ctx context.Context, name string) error { + stream, ok := ServerTransportStreamFromContext(ctx).(*transport.Stream) + if !ok || stream == nil { + return fmt.Errorf("failed to fetch the stream from the given context") + } + + if err := validateSendCompressor(name, stream.ClientAdvertisedCompressors()); err != nil { + return fmt.Errorf("unable to set send compressor: %w", err) + } + + return stream.SetSendCompress(name) +} + +// ClientSupportedCompressors returns compressor names advertised by the client +// via grpc-accept-encoding header. +// +// The context provided must be the context passed to the server's handler. +// +// # Experimental +// +// Notice: This function is EXPERIMENTAL and may be changed or removed in a +// later release. +func ClientSupportedCompressors(ctx context.Context) ([]string, error) { + stream, ok := ServerTransportStreamFromContext(ctx).(*transport.Stream) + if !ok || stream == nil { + return nil, fmt.Errorf("failed to fetch the stream from the given context %v", ctx) + } + + return strings.Split(stream.ClientAdvertisedCompressors(), ","), nil +} + // SetTrailer sets the trailer metadata that will be sent when an RPC returns. // When called more than once, all the provided metadata will be merged. // @@ -1969,3 +2072,22 @@ type channelzServer struct { func (c *channelzServer) ChannelzMetric() *channelz.ServerInternalMetric { return c.s.channelzMetric() } + +// validateSendCompressor returns an error when given compressor name cannot be +// handled by the server or the client based on the advertised compressors. +func validateSendCompressor(name, clientCompressors string) error { + if name == encoding.Identity { + return nil + } + + if !grpcutil.IsCompressorNameRegistered(name) { + return fmt.Errorf("compressor not registered %q", name) + } + + for _, c := range strings.Split(clientCompressors, ",") { + if c == name { + return nil // found match + } + } + return fmt.Errorf("client does not support compressor %q", name) +} diff --git a/vendor/google.golang.org/grpc/service_config.go b/vendor/google.golang.org/grpc/service_config.go index f22acace4253..0df11fc09882 100644 --- a/vendor/google.golang.org/grpc/service_config.go +++ b/vendor/google.golang.org/grpc/service_config.go @@ -23,8 +23,6 @@ import ( "errors" "fmt" "reflect" - "strconv" - "strings" "time" "google.golang.org/grpc/codes" @@ -106,8 +104,8 @@ type healthCheckConfig struct { type jsonRetryPolicy struct { MaxAttempts int - InitialBackoff string - MaxBackoff string + InitialBackoff internalserviceconfig.Duration + MaxBackoff internalserviceconfig.Duration BackoffMultiplier float64 RetryableStatusCodes []codes.Code } @@ -129,50 +127,6 @@ type retryThrottlingPolicy struct { TokenRatio float64 } -func parseDuration(s *string) (*time.Duration, error) { - if s == nil { - return nil, nil - } - if !strings.HasSuffix(*s, "s") { - return nil, fmt.Errorf("malformed duration %q", *s) - } - ss := strings.SplitN((*s)[:len(*s)-1], ".", 3) - if len(ss) > 2 { - return nil, fmt.Errorf("malformed duration %q", *s) - } - // hasDigits is set if either the whole or fractional part of the number is - // present, since both are optional but one is required. - hasDigits := false - var d time.Duration - if len(ss[0]) > 0 { - i, err := strconv.ParseInt(ss[0], 10, 32) - if err != nil { - return nil, fmt.Errorf("malformed duration %q: %v", *s, err) - } - d = time.Duration(i) * time.Second - hasDigits = true - } - if len(ss) == 2 && len(ss[1]) > 0 { - if len(ss[1]) > 9 { - return nil, fmt.Errorf("malformed duration %q", *s) - } - f, err := strconv.ParseInt(ss[1], 10, 64) - if err != nil { - return nil, fmt.Errorf("malformed duration %q: %v", *s, err) - } - for i := 9; i > len(ss[1]); i-- { - f *= 10 - } - d += time.Duration(f) - hasDigits = true - } - if !hasDigits { - return nil, fmt.Errorf("malformed duration %q", *s) - } - - return &d, nil -} - type jsonName struct { Service string Method string @@ -201,7 +155,7 @@ func (j jsonName) generatePath() (string, error) { type jsonMC struct { Name *[]jsonName WaitForReady *bool - Timeout *string + Timeout *internalserviceconfig.Duration MaxRequestMessageBytes *int64 MaxResponseMessageBytes *int64 RetryPolicy *jsonRetryPolicy @@ -252,15 +206,10 @@ func parseServiceConfig(js string) *serviceconfig.ParseResult { if m.Name == nil { continue } - d, err := parseDuration(m.Timeout) - if err != nil { - logger.Warningf("grpc: unmarshaling service config %s: %v", js, err) - return &serviceconfig.ParseResult{Err: err} - } mc := MethodConfig{ WaitForReady: m.WaitForReady, - Timeout: d, + Timeout: (*time.Duration)(m.Timeout), } if mc.RetryPolicy, err = convertRetryPolicy(m.RetryPolicy); err != nil { logger.Warningf("grpc: unmarshaling service config %s: %v", js, err) @@ -312,18 +261,10 @@ func convertRetryPolicy(jrp *jsonRetryPolicy) (p *internalserviceconfig.RetryPol if jrp == nil { return nil, nil } - ib, err := parseDuration(&jrp.InitialBackoff) - if err != nil { - return nil, err - } - mb, err := parseDuration(&jrp.MaxBackoff) - if err != nil { - return nil, err - } if jrp.MaxAttempts <= 1 || - *ib <= 0 || - *mb <= 0 || + jrp.InitialBackoff <= 0 || + jrp.MaxBackoff <= 0 || jrp.BackoffMultiplier <= 0 || len(jrp.RetryableStatusCodes) == 0 { logger.Warningf("grpc: ignoring retry policy %v due to illegal configuration", jrp) @@ -332,8 +273,8 @@ func convertRetryPolicy(jrp *jsonRetryPolicy) (p *internalserviceconfig.RetryPol rp := &internalserviceconfig.RetryPolicy{ MaxAttempts: jrp.MaxAttempts, - InitialBackoff: *ib, - MaxBackoff: *mb, + InitialBackoff: time.Duration(jrp.InitialBackoff), + MaxBackoff: time.Duration(jrp.MaxBackoff), BackoffMultiplier: jrp.BackoffMultiplier, RetryableStatusCodes: make(map[codes.Code]bool), } diff --git a/vendor/google.golang.org/grpc/shared_buffer_pool.go b/vendor/google.golang.org/grpc/shared_buffer_pool.go new file mode 100644 index 000000000000..48a64cfe8e25 --- /dev/null +++ b/vendor/google.golang.org/grpc/shared_buffer_pool.go @@ -0,0 +1,154 @@ +/* + * + * Copyright 2023 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import "sync" + +// SharedBufferPool is a pool of buffers that can be shared, resulting in +// decreased memory allocation. Currently, in gRPC-go, it is only utilized +// for parsing incoming messages. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +type SharedBufferPool interface { + // Get returns a buffer with specified length from the pool. + // + // The returned byte slice may be not zero initialized. + Get(length int) []byte + + // Put returns a buffer to the pool. + Put(*[]byte) +} + +// NewSharedBufferPool creates a simple SharedBufferPool with buckets +// of different sizes to optimize memory usage. This prevents the pool from +// wasting large amounts of memory, even when handling messages of varying sizes. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func NewSharedBufferPool() SharedBufferPool { + return &simpleSharedBufferPool{ + pools: [poolArraySize]simpleSharedBufferChildPool{ + newBytesPool(level0PoolMaxSize), + newBytesPool(level1PoolMaxSize), + newBytesPool(level2PoolMaxSize), + newBytesPool(level3PoolMaxSize), + newBytesPool(level4PoolMaxSize), + newBytesPool(0), + }, + } +} + +// simpleSharedBufferPool is a simple implementation of SharedBufferPool. +type simpleSharedBufferPool struct { + pools [poolArraySize]simpleSharedBufferChildPool +} + +func (p *simpleSharedBufferPool) Get(size int) []byte { + return p.pools[p.poolIdx(size)].Get(size) +} + +func (p *simpleSharedBufferPool) Put(bs *[]byte) { + p.pools[p.poolIdx(cap(*bs))].Put(bs) +} + +func (p *simpleSharedBufferPool) poolIdx(size int) int { + switch { + case size <= level0PoolMaxSize: + return level0PoolIdx + case size <= level1PoolMaxSize: + return level1PoolIdx + case size <= level2PoolMaxSize: + return level2PoolIdx + case size <= level3PoolMaxSize: + return level3PoolIdx + case size <= level4PoolMaxSize: + return level4PoolIdx + default: + return levelMaxPoolIdx + } +} + +const ( + level0PoolMaxSize = 16 // 16 B + level1PoolMaxSize = level0PoolMaxSize * 16 // 256 B + level2PoolMaxSize = level1PoolMaxSize * 16 // 4 KB + level3PoolMaxSize = level2PoolMaxSize * 16 // 64 KB + level4PoolMaxSize = level3PoolMaxSize * 16 // 1 MB +) + +const ( + level0PoolIdx = iota + level1PoolIdx + level2PoolIdx + level3PoolIdx + level4PoolIdx + levelMaxPoolIdx + poolArraySize +) + +type simpleSharedBufferChildPool interface { + Get(size int) []byte + Put(any) +} + +type bufferPool struct { + sync.Pool + + defaultSize int +} + +func (p *bufferPool) Get(size int) []byte { + bs := p.Pool.Get().(*[]byte) + + if cap(*bs) < size { + p.Pool.Put(bs) + + return make([]byte, size) + } + + return (*bs)[:size] +} + +func newBytesPool(size int) simpleSharedBufferChildPool { + return &bufferPool{ + Pool: sync.Pool{ + New: func() any { + bs := make([]byte, size) + return &bs + }, + }, + defaultSize: size, + } +} + +// nopBufferPool is a buffer pool just makes new buffer without pooling. +type nopBufferPool struct { +} + +func (nopBufferPool) Get(length int) []byte { + return make([]byte, length) +} + +func (nopBufferPool) Put(*[]byte) { +} diff --git a/vendor/google.golang.org/grpc/stats/stats.go b/vendor/google.golang.org/grpc/stats/stats.go index 0285dcc6a268..4ab70e2d462a 100644 --- a/vendor/google.golang.org/grpc/stats/stats.go +++ b/vendor/google.golang.org/grpc/stats/stats.go @@ -59,18 +59,36 @@ func (s *Begin) IsClient() bool { return s.Client } func (s *Begin) isRPCStats() {} +// PickerUpdated indicates that the LB policy provided a new picker while the +// RPC was waiting for one. +type PickerUpdated struct{} + +// IsClient indicates if the stats information is from client side. Only Client +// Side interfaces with a Picker, thus always returns true. +func (*PickerUpdated) IsClient() bool { return true } + +func (*PickerUpdated) isRPCStats() {} + // InPayload contains the information for an incoming payload. type InPayload struct { // Client is true if this InPayload is from client side. Client bool // Payload is the payload with original type. - Payload interface{} + Payload any // Data is the serialized message payload. Data []byte - // Length is the length of uncompressed data. + + // Length is the size of the uncompressed payload data. Does not include any + // framing (gRPC or HTTP/2). Length int - // WireLength is the length of data on wire (compressed, signed, encrypted). + // CompressedLength is the size of the compressed payload data. Does not + // include any framing (gRPC or HTTP/2). Same as Length if compression not + // enabled. + CompressedLength int + // WireLength is the size of the compressed payload data plus gRPC framing. + // Does not include HTTP/2 framing. WireLength int + // RecvTime is the time when the payload is received. RecvTime time.Time } @@ -126,12 +144,18 @@ type OutPayload struct { // Client is true if this OutPayload is from client side. Client bool // Payload is the payload with original type. - Payload interface{} + Payload any // Data is the serialized message payload. Data []byte - // Length is the length of uncompressed data. + // Length is the size of the uncompressed payload data. Does not include any + // framing (gRPC or HTTP/2). Length int - // WireLength is the length of data on wire (compressed, signed, encrypted). + // CompressedLength is the size of the compressed payload data. Does not + // include any framing (gRPC or HTTP/2). Same as Length if compression not + // enabled. + CompressedLength int + // WireLength is the size of the compressed payload data plus gRPC framing. + // Does not include HTTP/2 framing. WireLength int // SentTime is the time when the payload is sent. SentTime time.Time diff --git a/vendor/google.golang.org/grpc/status/status.go b/vendor/google.golang.org/grpc/status/status.go index 623be39f26ba..a93360efb847 100644 --- a/vendor/google.golang.org/grpc/status/status.go +++ b/vendor/google.golang.org/grpc/status/status.go @@ -50,7 +50,7 @@ func New(c codes.Code, msg string) *Status { } // Newf returns New(c, fmt.Sprintf(format, a...)). -func Newf(c codes.Code, format string, a ...interface{}) *Status { +func Newf(c codes.Code, format string, a ...any) *Status { return New(c, fmt.Sprintf(format, a...)) } @@ -60,7 +60,7 @@ func Error(c codes.Code, msg string) error { } // Errorf returns Error(c, fmt.Sprintf(format, a...)). -func Errorf(c codes.Code, format string, a ...interface{}) error { +func Errorf(c codes.Code, format string, a ...any) error { return Error(c, fmt.Sprintf(format, a...)) } @@ -77,9 +77,18 @@ func FromProto(s *spb.Status) *Status { // FromError returns a Status representation of err. // // - If err was produced by this package or implements the method `GRPCStatus() -// *Status`, the appropriate Status is returned. +// *Status` and `GRPCStatus()` does not return nil, or if err wraps a type +// satisfying this, the Status from `GRPCStatus()` is returned. For wrapped +// errors, the message returned contains the entire err.Error() text and not +// just the wrapped status. In that case, ok is true. // -// - If err is nil, a Status is returned with codes.OK and no message. +// - If err is nil, a Status is returned with codes.OK and no message, and ok +// is true. +// +// - If err implements the method `GRPCStatus() *Status` and `GRPCStatus()` +// returns nil (which maps to Codes.OK), or if err wraps a type +// satisfying this, a Status is returned with codes.Unknown and err's +// Error() message, and ok is false. // // - Otherwise, err is an error not compatible with this package. In this // case, a Status is returned with codes.Unknown and err's Error() message, @@ -88,10 +97,31 @@ func FromError(err error) (s *Status, ok bool) { if err == nil { return nil, true } - if se, ok := err.(interface { - GRPCStatus() *Status - }); ok { - return se.GRPCStatus(), true + type grpcstatus interface{ GRPCStatus() *Status } + if gs, ok := err.(grpcstatus); ok { + grpcStatus := gs.GRPCStatus() + if grpcStatus == nil { + // Error has status nil, which maps to codes.OK. There + // is no sensible behavior for this, so we turn it into + // an error with codes.Unknown and discard the existing + // status. + return New(codes.Unknown, err.Error()), false + } + return grpcStatus, true + } + var gs grpcstatus + if errors.As(err, &gs) { + grpcStatus := gs.GRPCStatus() + if grpcStatus == nil { + // Error wraps an error that has status nil, which maps + // to codes.OK. There is no sensible behavior for this, + // so we turn it into an error with codes.Unknown and + // discard the existing status. + return New(codes.Unknown, err.Error()), false + } + p := grpcStatus.Proto() + p.Message = err.Error() + return status.FromProto(p), true } return New(codes.Unknown, err.Error()), false } @@ -103,19 +133,16 @@ func Convert(err error) *Status { return s } -// Code returns the Code of the error if it is a Status error, codes.OK if err -// is nil, or codes.Unknown otherwise. +// Code returns the Code of the error if it is a Status error or if it wraps a +// Status error. If that is not the case, it returns codes.OK if err is nil, or +// codes.Unknown otherwise. func Code(err error) codes.Code { // Don't use FromError to avoid allocation of OK status. if err == nil { return codes.OK } - if se, ok := err.(interface { - GRPCStatus() *Status - }); ok { - return se.GRPCStatus().Code() - } - return codes.Unknown + + return Convert(err).Code() } // FromContextError converts a context error or wrapped context error into a diff --git a/vendor/google.golang.org/grpc/stream.go b/vendor/google.golang.org/grpc/stream.go index 93231af2ac56..421a41f8854f 100644 --- a/vendor/google.golang.org/grpc/stream.go +++ b/vendor/google.golang.org/grpc/stream.go @@ -31,6 +31,7 @@ import ( "google.golang.org/grpc/balancer" "google.golang.org/grpc/codes" "google.golang.org/grpc/encoding" + "google.golang.org/grpc/internal" "google.golang.org/grpc/internal/balancerload" "google.golang.org/grpc/internal/binarylog" "google.golang.org/grpc/internal/channelz" @@ -54,7 +55,7 @@ import ( // status package, or be one of the context errors. Otherwise, gRPC will use // codes.Unknown as the status code and err.Error() as the status message of the // RPC. -type StreamHandler func(srv interface{}, stream ServerStream) error +type StreamHandler func(srv any, stream ServerStream) error // StreamDesc represents a streaming RPC service's method specification. Used // on the server when registering services and on the client when initiating @@ -79,9 +80,9 @@ type Stream interface { // Deprecated: See ClientStream and ServerStream documentation instead. Context() context.Context // Deprecated: See ClientStream and ServerStream documentation instead. - SendMsg(m interface{}) error + SendMsg(m any) error // Deprecated: See ClientStream and ServerStream documentation instead. - RecvMsg(m interface{}) error + RecvMsg(m any) error } // ClientStream defines the client-side behavior of a streaming RPC. @@ -90,7 +91,9 @@ type Stream interface { // status package. type ClientStream interface { // Header returns the header metadata received from the server if there - // is any. It blocks if the metadata is not ready to read. + // is any. It blocks if the metadata is not ready to read. If the metadata + // is nil and the error is also nil, then the stream was terminated without + // headers, and the status can be discovered by calling RecvMsg. Header() (metadata.MD, error) // Trailer returns the trailer metadata from the server, if there is any. // It must only be called after stream.CloseAndRecv has returned, or @@ -123,7 +126,10 @@ type ClientStream interface { // calling RecvMsg on the same stream at the same time, but it is not safe // to call SendMsg on the same stream in different goroutines. It is also // not safe to call CloseSend concurrently with SendMsg. - SendMsg(m interface{}) error + // + // It is not safe to modify the message after calling SendMsg. Tracing + // libraries and stats handlers may use the message lazily. + SendMsg(m any) error // RecvMsg blocks until it receives a message into m or the stream is // done. It returns io.EOF when the stream completes successfully. On // any other error, the stream is aborted and the error contains the RPC @@ -132,7 +138,7 @@ type ClientStream interface { // It is safe to have a goroutine calling SendMsg and another goroutine // calling RecvMsg on the same stream at the same time, but it is not // safe to call RecvMsg on the same stream in different goroutines. - RecvMsg(m interface{}) error + RecvMsg(m any) error } // NewStream creates a new Stream for the client side. This is typically @@ -152,6 +158,11 @@ type ClientStream interface { // If none of the above happen, a goroutine and a context will be leaked, and grpc // will not call the optionally-configured stats handler with a stats.End message. func (cc *ClientConn) NewStream(ctx context.Context, desc *StreamDesc, method string, opts ...CallOption) (ClientStream, error) { + if err := cc.idlenessMgr.OnCallBegin(); err != nil { + return nil, err + } + defer cc.idlenessMgr.OnCallEnd() + // allow interceptor to see all applicable call options, which means those // configured as defaults from dial option as well as per-call options opts = combine(cc.dopts.callOptions, opts) @@ -168,10 +179,19 @@ func NewClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, meth } func newClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (_ ClientStream, err error) { - if md, _, ok := metadata.FromOutgoingContextRaw(ctx); ok { + if md, added, ok := metadata.FromOutgoingContextRaw(ctx); ok { + // validate md if err := imetadata.Validate(md); err != nil { return nil, status.Error(codes.Internal, err.Error()) } + // validate added + for _, kvs := range added { + for i := 0; i < len(kvs); i += 2 { + if err := imetadata.ValidatePair(kvs[i], kvs[i+1]); err != nil { + return nil, status.Error(codes.Internal, err.Error()) + } + } + } } if channelz.IsOn() { cc.incrCallsStarted() @@ -352,7 +372,7 @@ func newClientStreamWithParams(ctx context.Context, desc *StreamDesc, cc *Client } } for _, binlog := range cs.binlogs { - binlog.Log(logEntry) + binlog.Log(cs.ctx, logEntry) } } @@ -416,7 +436,7 @@ func (cs *clientStream) newAttemptLocked(isTransparent bool) (*csAttempt, error) ctx = trace.NewContext(ctx, trInfo.tr) } - if cs.cc.parsedTarget.URL.Scheme == "xds" { + if cs.cc.parsedTarget.URL.Scheme == internal.GRPCResolverSchemeExtraMetadata { // Add extra metadata (metadata that will be added by transport) to context // so the balancer can see them. ctx = grpcutil.WithExtraMetadata(ctx, metadata.Pairs( @@ -460,7 +480,7 @@ func (a *csAttempt) newStream() error { // It is safe to overwrite the csAttempt's context here, since all state // maintained in it are local to the attempt. When the attempt has to be // retried, a new instance of csAttempt will be created. - if a.pickResult.Metatada != nil { + if a.pickResult.Metadata != nil { // We currently do not have a function it the metadata package which // merges given metadata with existing metadata in a context. Existing // function `AppendToOutgoingContext()` takes a variadic argument of key @@ -470,7 +490,7 @@ func (a *csAttempt) newStream() error { // in a form passable to AppendToOutgoingContext(), or create a version // of AppendToOutgoingContext() that accepts a metadata.MD. md, _ := metadata.FromOutgoingContext(a.ctx) - md = metadata.Join(md, a.pickResult.Metatada) + md = metadata.Join(md, a.pickResult.Metadata) a.ctx = metadata.NewOutgoingContext(a.ctx, md) } @@ -490,7 +510,7 @@ func (a *csAttempt) newStream() error { return toRPCErr(nse.Err) } a.s = s - a.p = &parser{r: s} + a.p = &parser{r: s, recvBufferPool: a.cs.cc.dopts.recvBufferPool} return nil } @@ -771,23 +791,24 @@ func (cs *clientStream) withRetry(op func(a *csAttempt) error, onSuccess func()) func (cs *clientStream) Header() (metadata.MD, error) { var m metadata.MD - noHeader := false err := cs.withRetry(func(a *csAttempt) error { var err error m, err = a.s.Header() - if err == transport.ErrNoHeaders { - noHeader = true - return nil - } return toRPCErr(err) }, cs.commitAttemptLocked) + if m == nil && err == nil { + // The stream ended with success. Finish the clientStream. + err = io.EOF + } + if err != nil { cs.finish(err) - return nil, err + // Do not return the error. The user should get it by calling Recv(). + return nil, nil } - if len(cs.binlogs) != 0 && !cs.serverHeaderBinlogged && !noHeader { + if len(cs.binlogs) != 0 && !cs.serverHeaderBinlogged && m != nil { // Only log if binary log is on and header has not been logged, and // there is actually headers to log. logEntry := &binarylog.ServerHeader{ @@ -800,9 +821,10 @@ func (cs *clientStream) Header() (metadata.MD, error) { } cs.serverHeaderBinlogged = true for _, binlog := range cs.binlogs { - binlog.Log(logEntry) + binlog.Log(cs.ctx, logEntry) } } + return m, nil } @@ -843,7 +865,7 @@ func (cs *clientStream) bufferForRetryLocked(sz int, op func(a *csAttempt) error cs.buffer = append(cs.buffer, op) } -func (cs *clientStream) SendMsg(m interface{}) (err error) { +func (cs *clientStream) SendMsg(m any) (err error) { defer func() { if err != nil && err != io.EOF { // Call finish on the client stream for errors generated by this SendMsg @@ -881,13 +903,13 @@ func (cs *clientStream) SendMsg(m interface{}) (err error) { Message: data, } for _, binlog := range cs.binlogs { - binlog.Log(cm) + binlog.Log(cs.ctx, cm) } } return err } -func (cs *clientStream) RecvMsg(m interface{}) error { +func (cs *clientStream) RecvMsg(m any) error { if len(cs.binlogs) != 0 && !cs.serverHeaderBinlogged { // Call Header() to binary log header if it's not already logged. cs.Header() @@ -905,30 +927,12 @@ func (cs *clientStream) RecvMsg(m interface{}) error { Message: recvInfo.uncompressedBytes, } for _, binlog := range cs.binlogs { - binlog.Log(sm) + binlog.Log(cs.ctx, sm) } } if err != nil || !cs.desc.ServerStreams { // err != nil or non-server-streaming indicates end of stream. cs.finish(err) - - if len(cs.binlogs) != 0 { - // finish will not log Trailer. Log Trailer here. - logEntry := &binarylog.ServerTrailer{ - OnClientSide: true, - Trailer: cs.Trailer(), - Err: err, - } - if logEntry.Err == io.EOF { - logEntry.Err = nil - } - if peer, ok := peer.FromContext(cs.Context()); ok { - logEntry.PeerAddr = peer.Addr - } - for _, binlog := range cs.binlogs { - binlog.Log(logEntry) - } - } } return err } @@ -953,7 +957,7 @@ func (cs *clientStream) CloseSend() error { OnClientSide: true, } for _, binlog := range cs.binlogs { - binlog.Log(chc) + binlog.Log(cs.ctx, chc) } } // We never returned an error here for reasons. @@ -971,6 +975,9 @@ func (cs *clientStream) finish(err error) { return } cs.finished = true + for _, onFinish := range cs.callInfo.onFinish { + onFinish(err) + } cs.commitAttemptLocked() if cs.attempt != nil { cs.attempt.finish(err) @@ -981,18 +988,30 @@ func (cs *clientStream) finish(err error) { } } } + cs.mu.Unlock() - // For binary logging. only log cancel in finish (could be caused by RPC ctx - // canceled or ClientConn closed). Trailer will be logged in RecvMsg. - // - // Only one of cancel or trailer needs to be logged. In the cases where - // users don't call RecvMsg, users must have already canceled the RPC. - if len(cs.binlogs) != 0 && status.Code(err) == codes.Canceled { - c := &binarylog.Cancel{ - OnClientSide: true, - } - for _, binlog := range cs.binlogs { - binlog.Log(c) + // Only one of cancel or trailer needs to be logged. + if len(cs.binlogs) != 0 { + switch err { + case errContextCanceled, errContextDeadline, ErrClientConnClosing: + c := &binarylog.Cancel{ + OnClientSide: true, + } + for _, binlog := range cs.binlogs { + binlog.Log(cs.ctx, c) + } + default: + logEntry := &binarylog.ServerTrailer{ + OnClientSide: true, + Trailer: cs.Trailer(), + Err: err, + } + if peer, ok := peer.FromContext(cs.Context()); ok { + logEntry.PeerAddr = peer.Addr + } + for _, binlog := range cs.binlogs { + binlog.Log(cs.ctx, logEntry) + } } } if err == nil { @@ -1008,7 +1027,7 @@ func (cs *clientStream) finish(err error) { cs.cancel() } -func (a *csAttempt) sendMsg(m interface{}, hdr, payld, data []byte) error { +func (a *csAttempt) sendMsg(m any, hdr, payld, data []byte) error { cs := a.cs if a.trInfo != nil { a.mu.Lock() @@ -1035,7 +1054,7 @@ func (a *csAttempt) sendMsg(m interface{}, hdr, payld, data []byte) error { return nil } -func (a *csAttempt) recvMsg(m interface{}, payInfo *payloadInfo) (err error) { +func (a *csAttempt) recvMsg(m any, payInfo *payloadInfo) (err error) { cs := a.cs if len(a.statsHandlers) != 0 && payInfo == nil { payInfo = &payloadInfo{} @@ -1081,9 +1100,10 @@ func (a *csAttempt) recvMsg(m interface{}, payInfo *payloadInfo) (err error) { RecvTime: time.Now(), Payload: m, // TODO truncate large payload. - Data: payInfo.uncompressedBytes, - WireLength: payInfo.wireLength + headerLen, - Length: len(payInfo.uncompressedBytes), + Data: payInfo.uncompressedBytes, + WireLength: payInfo.compressedLength + headerLen, + CompressedLength: payInfo.compressedLength, + Length: len(payInfo.uncompressedBytes), }) } if channelz.IsOn() { @@ -1249,17 +1269,22 @@ func newNonRetryClientStream(ctx context.Context, desc *StreamDesc, method strin return nil, err } as.s = s - as.p = &parser{r: s} + as.p = &parser{r: s, recvBufferPool: ac.dopts.recvBufferPool} ac.incrCallsStarted() if desc != unaryStreamDesc { - // Listen on cc and stream contexts to cleanup when the user closes the - // ClientConn or cancels the stream context. In all other cases, an error - // should already be injected into the recv buffer by the transport, which - // the client will eventually receive, and then we will cancel the stream's - // context in clientStream.finish. + // Listen on stream context to cleanup when the stream context is + // canceled. Also listen for the addrConn's context in case the + // addrConn is closed or reconnects to a different address. In all + // other cases, an error should already be injected into the recv + // buffer by the transport, which the client will eventually receive, + // and then we will cancel the stream's context in + // addrConnStream.finish. go func() { + ac.mu.Lock() + acCtx := ac.ctx + ac.mu.Unlock() select { - case <-ac.ctx.Done(): + case <-acCtx.Done(): as.finish(status.Error(codes.Canceled, "grpc: the SubConn is closing")) case <-ctx.Done(): as.finish(toRPCErr(ctx.Err())) @@ -1322,7 +1347,7 @@ func (as *addrConnStream) Context() context.Context { return as.s.Context() } -func (as *addrConnStream) SendMsg(m interface{}) (err error) { +func (as *addrConnStream) SendMsg(m any) (err error) { defer func() { if err != nil && err != io.EOF { // Call finish on the client stream for errors generated by this SendMsg @@ -1367,7 +1392,7 @@ func (as *addrConnStream) SendMsg(m interface{}) (err error) { return nil } -func (as *addrConnStream) RecvMsg(m interface{}) (err error) { +func (as *addrConnStream) RecvMsg(m any) (err error) { defer func() { if err != nil || !as.desc.ServerStreams { // err != nil or non-server-streaming indicates end of stream. @@ -1486,7 +1511,7 @@ type ServerStream interface { // // It is not safe to modify the message after calling SendMsg. Tracing // libraries and stats handlers may use the message lazily. - SendMsg(m interface{}) error + SendMsg(m any) error // RecvMsg blocks until it receives a message into m or the stream is // done. It returns io.EOF when the client has performed a CloseSend. On // any non-EOF error, the stream is aborted and the error contains the @@ -1495,7 +1520,7 @@ type ServerStream interface { // It is safe to have a goroutine calling SendMsg and another goroutine // calling RecvMsg on the same stream at the same time, but it is not // safe to call RecvMsg on the same stream in different goroutines. - RecvMsg(m interface{}) error + RecvMsg(m any) error } // serverStream implements a server side Stream. @@ -1511,6 +1536,8 @@ type serverStream struct { comp encoding.Compressor decomp encoding.Compressor + sendCompressorName string + maxReceiveMessageSize int maxSendMessageSize int trInfo *traceInfo @@ -1558,7 +1585,7 @@ func (ss *serverStream) SendHeader(md metadata.MD) error { } ss.serverHeaderBinlogged = true for _, binlog := range ss.binlogs { - binlog.Log(sh) + binlog.Log(ss.ctx, sh) } } return err @@ -1574,7 +1601,7 @@ func (ss *serverStream) SetTrailer(md metadata.MD) { ss.s.SetTrailer(md) } -func (ss *serverStream) SendMsg(m interface{}) (err error) { +func (ss *serverStream) SendMsg(m any) (err error) { defer func() { if ss.trInfo != nil { ss.mu.Lock() @@ -1582,7 +1609,7 @@ func (ss *serverStream) SendMsg(m interface{}) (err error) { if err == nil { ss.trInfo.tr.LazyLog(&payload{sent: true, msg: m}, true) } else { - ss.trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + ss.trInfo.tr.LazyLog(&fmtStringer{"%v", []any{err}}, true) ss.trInfo.tr.SetError() } } @@ -1603,6 +1630,13 @@ func (ss *serverStream) SendMsg(m interface{}) (err error) { } }() + // Server handler could have set new compressor by calling SetSendCompressor. + // In case it is set, we need to use it for compressing outbound message. + if sendCompressorsName := ss.s.SendCompress(); sendCompressorsName != ss.sendCompressorName { + ss.comp = encoding.GetCompressor(sendCompressorsName) + ss.sendCompressorName = sendCompressorsName + } + // load hdr, payload, data hdr, payload, data, err := prepareMsg(m, ss.codec, ss.cp, ss.comp) if err != nil { @@ -1624,14 +1658,14 @@ func (ss *serverStream) SendMsg(m interface{}) (err error) { } ss.serverHeaderBinlogged = true for _, binlog := range ss.binlogs { - binlog.Log(sh) + binlog.Log(ss.ctx, sh) } } sm := &binarylog.ServerMessage{ Message: data, } for _, binlog := range ss.binlogs { - binlog.Log(sm) + binlog.Log(ss.ctx, sm) } } if len(ss.statsHandler) != 0 { @@ -1642,7 +1676,7 @@ func (ss *serverStream) SendMsg(m interface{}) (err error) { return nil } -func (ss *serverStream) RecvMsg(m interface{}) (err error) { +func (ss *serverStream) RecvMsg(m any) (err error) { defer func() { if ss.trInfo != nil { ss.mu.Lock() @@ -1650,7 +1684,7 @@ func (ss *serverStream) RecvMsg(m interface{}) (err error) { if err == nil { ss.trInfo.tr.LazyLog(&payload{sent: false, msg: m}, true) } else if err != io.EOF { - ss.trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + ss.trInfo.tr.LazyLog(&fmtStringer{"%v", []any{err}}, true) ss.trInfo.tr.SetError() } } @@ -1679,7 +1713,7 @@ func (ss *serverStream) RecvMsg(m interface{}) (err error) { if len(ss.binlogs) != 0 { chc := &binarylog.ClientHalfClose{} for _, binlog := range ss.binlogs { - binlog.Log(chc) + binlog.Log(ss.ctx, chc) } } return err @@ -1695,9 +1729,10 @@ func (ss *serverStream) RecvMsg(m interface{}) (err error) { RecvTime: time.Now(), Payload: m, // TODO truncate large payload. - Data: payInfo.uncompressedBytes, - WireLength: payInfo.wireLength + headerLen, - Length: len(payInfo.uncompressedBytes), + Data: payInfo.uncompressedBytes, + Length: len(payInfo.uncompressedBytes), + WireLength: payInfo.compressedLength + headerLen, + CompressedLength: payInfo.compressedLength, }) } } @@ -1706,7 +1741,7 @@ func (ss *serverStream) RecvMsg(m interface{}) (err error) { Message: payInfo.uncompressedBytes, } for _, binlog := range ss.binlogs { - binlog.Log(cm) + binlog.Log(ss.ctx, cm) } } return nil @@ -1721,7 +1756,7 @@ func MethodFromServerStream(stream ServerStream) (string, bool) { // prepareMsg returns the hdr, payload and data // using the compressors passed or using the // passed preparedmsg -func prepareMsg(m interface{}, codec baseCodec, cp Compressor, comp encoding.Compressor) (hdr, payload, data []byte, err error) { +func prepareMsg(m any, codec baseCodec, cp Compressor, comp encoding.Compressor) (hdr, payload, data []byte, err error) { if preparedMsg, ok := m.(*PreparedMsg); ok { return preparedMsg.hdr, preparedMsg.payload, preparedMsg.encodedData, nil } diff --git a/vendor/google.golang.org/grpc/trace.go b/vendor/google.golang.org/grpc/trace.go index 07a2d26b3e77..9ded79321ba7 100644 --- a/vendor/google.golang.org/grpc/trace.go +++ b/vendor/google.golang.org/grpc/trace.go @@ -97,8 +97,8 @@ func truncate(x string, l int) string { // payload represents an RPC request or response payload. type payload struct { - sent bool // whether this is an outgoing payload - msg interface{} // e.g. a proto.Message + sent bool // whether this is an outgoing payload + msg any // e.g. a proto.Message // TODO(dsymonds): add stringifying info to codec, and limit how much we hold here? } @@ -111,7 +111,7 @@ func (p payload) String() string { type fmtStringer struct { format string - a []interface{} + a []any } func (f *fmtStringer) String() string { diff --git a/vendor/google.golang.org/grpc/version.go b/vendor/google.golang.org/grpc/version.go index fe552c315be2..914ce665f53e 100644 --- a/vendor/google.golang.org/grpc/version.go +++ b/vendor/google.golang.org/grpc/version.go @@ -19,4 +19,4 @@ package grpc // Version is the current grpc version. -const Version = "1.53.0" +const Version = "1.58.0" diff --git a/vendor/google.golang.org/grpc/vet.sh b/vendor/google.golang.org/grpc/vet.sh index 3728aed04fc7..bbc9e2e3c8e3 100644 --- a/vendor/google.golang.org/grpc/vet.sh +++ b/vendor/google.golang.org/grpc/vet.sh @@ -41,16 +41,8 @@ if [[ "$1" = "-install" ]]; then github.com/client9/misspell/cmd/misspell popd if [[ -z "${VET_SKIP_PROTO}" ]]; then - if [[ "${TRAVIS}" = "true" ]]; then - PROTOBUF_VERSION=3.14.0 - PROTOC_FILENAME=protoc-${PROTOBUF_VERSION}-linux-x86_64.zip - pushd /home/travis - wget https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/${PROTOC_FILENAME} - unzip ${PROTOC_FILENAME} - bin/protoc --version - popd - elif [[ "${GITHUB_ACTIONS}" = "true" ]]; then - PROTOBUF_VERSION=3.14.0 + if [[ "${GITHUB_ACTIONS}" = "true" ]]; then + PROTOBUF_VERSION=22.0 # a.k.a v4.22.0 in pb.go files. PROTOC_FILENAME=protoc-${PROTOBUF_VERSION}-linux-x86_64.zip pushd /home/runner/go wget https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/${PROTOC_FILENAME} @@ -68,8 +60,7 @@ fi # - Check that generated proto files are up to date. if [[ -z "${VET_SKIP_PROTO}" ]]; then - PATH="/home/travis/bin:${PATH}" make proto && \ - git status --porcelain 2>&1 | fail_on_output || \ + make proto && git status --porcelain 2>&1 | fail_on_output || \ (git status; git --no-pager diff; exit 1) fi @@ -93,6 +84,9 @@ not git grep -l 'x/net/context' -- "*.go" # thread safety. git grep -l '"math/rand"' -- "*.go" 2>&1 | not grep -v '^examples\|^stress\|grpcrand\|^benchmark\|wrr_test' +# - Do not use "interface{}"; use "any" instead. +git grep -l 'interface{}' -- "*.go" 2>&1 | not grep -v '\.pb\.go\|protoc-gen-go-grpc' + # - Do not call grpclog directly. Use grpclog.Component instead. git grep -l -e 'grpclog.I' --or -e 'grpclog.W' --or -e 'grpclog.E' --or -e 'grpclog.F' --or -e 'grpclog.V' -- "*.go" | not grep -v '^grpclog/component.go\|^internal/grpctest/tlogger_test.go' @@ -115,7 +109,7 @@ for MOD_FILE in $(find . -name 'go.mod'); do goimports -l . 2>&1 | not grep -vE "\.pb\.go" golint ./... 2>&1 | not grep -vE "/grpc_testing_not_regenerate/.*\.pb\.go:" - go mod tidy -compat=1.17 + go mod tidy -compat=1.19 git status --porcelain 2>&1 | fail_on_output || \ (git status; git --no-pager diff; exit 1) popd @@ -177,8 +171,6 @@ proto.RegisteredExtension is deprecated proto.RegisteredExtensions is deprecated proto.RegisterMapType is deprecated proto.Unmarshaler is deprecated -resolver.Backend -resolver.GRPCLB Target is deprecated: Use the Target field in the BuildOptions instead. xxx_messageInfo_ ' "${SC_OUT}" diff --git a/vendor/google.golang.org/protobuf/encoding/protojson/doc.go b/vendor/google.golang.org/protobuf/encoding/protojson/doc.go index 00ea2fecfb79..21d5d2cb18e1 100644 --- a/vendor/google.golang.org/protobuf/encoding/protojson/doc.go +++ b/vendor/google.golang.org/protobuf/encoding/protojson/doc.go @@ -4,7 +4,7 @@ // Package protojson marshals and unmarshals protocol buffer messages as JSON // format. It follows the guide at -// https://developers.google.com/protocol-buffers/docs/proto3#json. +// https://protobuf.dev/programming-guides/proto3#json. // // This package produces a different output than the standard "encoding/json" // package, which does not operate correctly on protocol buffer messages. diff --git a/vendor/google.golang.org/protobuf/encoding/protojson/encode.go b/vendor/google.golang.org/protobuf/encoding/protojson/encode.go index d09d22e139bc..66b95870e977 100644 --- a/vendor/google.golang.org/protobuf/encoding/protojson/encode.go +++ b/vendor/google.golang.org/protobuf/encoding/protojson/encode.go @@ -106,13 +106,19 @@ func (o MarshalOptions) Format(m proto.Message) string { // MarshalOptions. Do not depend on the output being stable. It may change over // time across different versions of the program. func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { - return o.marshal(m) + return o.marshal(nil, m) +} + +// MarshalAppend appends the JSON format encoding of m to b, +// returning the result. +func (o MarshalOptions) MarshalAppend(b []byte, m proto.Message) ([]byte, error) { + return o.marshal(b, m) } // marshal is a centralized function that all marshal operations go through. // For profiling purposes, avoid changing the name of this function or // introducing other code paths for marshal that do not go through this. -func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { +func (o MarshalOptions) marshal(b []byte, m proto.Message) ([]byte, error) { if o.Multiline && o.Indent == "" { o.Indent = defaultIndent } @@ -120,7 +126,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { o.Resolver = protoregistry.GlobalTypes } - internalEnc, err := json.NewEncoder(o.Indent) + internalEnc, err := json.NewEncoder(b, o.Indent) if err != nil { return nil, err } @@ -128,7 +134,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { // Treat nil message interface as an empty message, // in which case the output in an empty JSON object. if m == nil { - return []byte("{}"), nil + return append(b, '{', '}'), nil } enc := encoder{internalEnc, o} diff --git a/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go b/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go index c85f8469480a..6c37d417449a 100644 --- a/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go +++ b/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go @@ -814,16 +814,22 @@ func (d decoder) unmarshalTimestamp(m protoreflect.Message) error { return d.unexpectedTokenError(tok) } - t, err := time.Parse(time.RFC3339Nano, tok.ParsedString()) + s := tok.ParsedString() + t, err := time.Parse(time.RFC3339Nano, s) if err != nil { return d.newError(tok.Pos(), "invalid %v value %v", genid.Timestamp_message_fullname, tok.RawString()) } - // Validate seconds. No need to validate nanos because time.Parse would have - // covered that already. + // Validate seconds. secs := t.Unix() if secs < minTimestampSeconds || secs > maxTimestampSeconds { return d.newError(tok.Pos(), "%v value out of range: %v", genid.Timestamp_message_fullname, tok.RawString()) } + // Validate subseconds. + i := strings.LastIndexByte(s, '.') // start of subsecond field + j := strings.LastIndexAny(s, "Z-+") // start of timezone field + if i >= 0 && j >= i && j-i > len(".999999999") { + return d.newError(tok.Pos(), "invalid %v value %v", genid.Timestamp_message_fullname, tok.RawString()) + } fds := m.Descriptor().Fields() fdSeconds := fds.ByNumber(genid.Timestamp_Seconds_field_number) diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go index ebf6c65284dd..722a7b41df36 100644 --- a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +++ b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go @@ -101,13 +101,19 @@ func (o MarshalOptions) Format(m proto.Message) string { // MarshalOptions object. Do not depend on the output being stable. It may // change over time across different versions of the program. func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { - return o.marshal(m) + return o.marshal(nil, m) +} + +// MarshalAppend appends the textproto format encoding of m to b, +// returning the result. +func (o MarshalOptions) MarshalAppend(b []byte, m proto.Message) ([]byte, error) { + return o.marshal(b, m) } // marshal is a centralized function that all marshal operations go through. // For profiling purposes, avoid changing the name of this function or // introducing other code paths for marshal that do not go through this. -func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { +func (o MarshalOptions) marshal(b []byte, m proto.Message) ([]byte, error) { var delims = [2]byte{'{', '}'} if o.Multiline && o.Indent == "" { @@ -117,7 +123,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { o.Resolver = protoregistry.GlobalTypes } - internalEnc, err := text.NewEncoder(o.Indent, delims, o.EmitASCII) + internalEnc, err := text.NewEncoder(b, o.Indent, delims, o.EmitASCII) if err != nil { return nil, err } @@ -125,7 +131,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { // Treat nil message interface as an empty message, // in which case there is nothing to output. if m == nil { - return []byte{}, nil + return b, nil } enc := encoder{internalEnc, o} diff --git a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go index ce57f57ebd48..f4b4686cf9de 100644 --- a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +++ b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go @@ -3,7 +3,7 @@ // license that can be found in the LICENSE file. // Package protowire parses and formats the raw wire encoding. -// See https://developers.google.com/protocol-buffers/docs/encoding. +// See https://protobuf.dev/programming-guides/encoding. // // For marshaling and unmarshaling entire protobuf messages, // use the "google.golang.org/protobuf/proto" package instead. @@ -29,12 +29,8 @@ const ( ) // IsValid reports whether the field number is semantically valid. -// -// Note that while numbers within the reserved range are semantically invalid, -// they are syntactically valid in the wire format. -// Implementations may treat records with reserved field numbers as unknown. func (n Number) IsValid() bool { - return MinValidNumber <= n && n < FirstReservedNumber || LastReservedNumber < n && n <= MaxValidNumber + return MinValidNumber <= n && n <= MaxValidNumber } // Type represents the wire type. diff --git a/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go b/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go index b13fd29e81e6..d043a6ebe0b9 100644 --- a/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go +++ b/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go @@ -294,7 +294,7 @@ func (d *Decoder) isValueNext() bool { } // consumeToken constructs a Token for given Kind with raw value derived from -// current d.in and given size, and consumes the given size-lenght of it. +// current d.in and given size, and consumes the given size-length of it. func (d *Decoder) consumeToken(kind Kind, size int) Token { tok := Token{ kind: kind, diff --git a/vendor/google.golang.org/protobuf/internal/encoding/json/encode.go b/vendor/google.golang.org/protobuf/internal/encoding/json/encode.go index fbdf34873420..934f2dcb39d0 100644 --- a/vendor/google.golang.org/protobuf/internal/encoding/json/encode.go +++ b/vendor/google.golang.org/protobuf/internal/encoding/json/encode.go @@ -41,8 +41,10 @@ type Encoder struct { // // If indent is a non-empty string, it causes every entry for an Array or Object // to be preceded by the indent and trailed by a newline. -func NewEncoder(indent string) (*Encoder, error) { - e := &Encoder{} +func NewEncoder(buf []byte, indent string) (*Encoder, error) { + e := &Encoder{ + out: buf, + } if len(indent) > 0 { if strings.Trim(indent, " \t") != "" { return nil, errors.New("indent may only be composed of space or tab characters") @@ -176,13 +178,13 @@ func appendFloat(out []byte, n float64, bitSize int) []byte { // WriteInt writes out the given signed integer in JSON number value. func (e *Encoder) WriteInt(n int64) { e.prepareNext(scalar) - e.out = append(e.out, strconv.FormatInt(n, 10)...) + e.out = strconv.AppendInt(e.out, n, 10) } // WriteUint writes out the given unsigned integer in JSON number value. func (e *Encoder) WriteUint(n uint64) { e.prepareNext(scalar) - e.out = append(e.out, strconv.FormatUint(n, 10)...) + e.out = strconv.AppendUint(e.out, n, 10) } // StartObject writes out the '{' symbol. diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go b/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go index 427c62d037fc..87853e786d0d 100644 --- a/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +++ b/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go @@ -412,12 +412,13 @@ func (d *Decoder) parseFieldName() (tok Token, err error) { // Field number. Identify if input is a valid number that is not negative // and is decimal integer within 32-bit range. if num := parseNumber(d.in); num.size > 0 { + str := num.string(d.in) if !num.neg && num.kind == numDec { - if _, err := strconv.ParseInt(string(d.in[:num.size]), 10, 32); err == nil { + if _, err := strconv.ParseInt(str, 10, 32); err == nil { return d.consumeToken(Name, num.size, uint8(FieldNumber)), nil } } - return Token{}, d.newSyntaxError("invalid field number: %s", d.in[:num.size]) + return Token{}, d.newSyntaxError("invalid field number: %s", str) } return Token{}, d.newSyntaxError("invalid field name: %s", errId(d.in)) diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go b/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go index 81a5d8c86139..45c81f0298e2 100644 --- a/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +++ b/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go @@ -15,17 +15,12 @@ func (d *Decoder) parseNumberValue() (Token, bool) { if num.neg { numAttrs |= isNegative } - strSize := num.size - last := num.size - 1 - if num.kind == numFloat && (d.in[last] == 'f' || d.in[last] == 'F') { - strSize = last - } tok := Token{ kind: Scalar, attrs: numberValue, pos: len(d.orig) - len(d.in), raw: d.in[:num.size], - str: string(d.in[:strSize]), + str: num.string(d.in), numAttrs: numAttrs, } d.consume(num.size) @@ -46,6 +41,27 @@ type number struct { kind uint8 neg bool size int + // if neg, this is the length of whitespace and comments between + // the minus sign and the rest fo the number literal + sep int +} + +func (num number) string(data []byte) string { + strSize := num.size + last := num.size - 1 + if num.kind == numFloat && (data[last] == 'f' || data[last] == 'F') { + strSize = last + } + if num.neg && num.sep > 0 { + // strip whitespace/comments between negative sign and the rest + strLen := strSize - num.sep + str := make([]byte, strLen) + str[0] = data[0] + copy(str[1:], data[num.sep+1:strSize]) + return string(str) + } + return string(data[:strSize]) + } // parseNumber constructs a number object from given input. It allows for the @@ -67,19 +83,22 @@ func parseNumber(input []byte) number { } // Optional - + var sep int if s[0] == '-' { neg = true s = s[1:] size++ + // Consume any whitespace or comments between the + // negative sign and the rest of the number + lenBefore := len(s) + s = consume(s, 0) + sep = lenBefore - len(s) + size += sep if len(s) == 0 { return number{} } } - // C++ allows for whitespace and comments in between the negative sign and - // the rest of the number. This logic currently does not but is consistent - // with v1. - switch { case s[0] == '0': if len(s) > 1 { @@ -116,7 +135,7 @@ func parseNumber(input []byte) number { if len(s) > 0 && !isDelim(s[0]) { return number{} } - return number{kind: kind, neg: neg, size: size} + return number{kind: kind, neg: neg, size: size, sep: sep} } } s = s[1:] @@ -188,5 +207,5 @@ func parseNumber(input []byte) number { return number{} } - return number{kind: kind, neg: neg, size: size} + return number{kind: kind, neg: neg, size: size, sep: sep} } diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go b/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go index da289ccce6e2..cf7aed77bc30 100644 --- a/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +++ b/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go @@ -53,8 +53,10 @@ type encoderState struct { // If outputASCII is true, strings will be serialized in such a way that // multi-byte UTF-8 sequences are escaped. This property ensures that the // overall output is ASCII (as opposed to UTF-8). -func NewEncoder(indent string, delims [2]byte, outputASCII bool) (*Encoder, error) { - e := &Encoder{} +func NewEncoder(buf []byte, indent string, delims [2]byte, outputASCII bool) (*Encoder, error) { + e := &Encoder{ + encoderState: encoderState{out: buf}, + } if len(indent) > 0 { if strings.Trim(indent, " \t") != "" { return nil, errors.New("indent may only be composed of space and tab characters") @@ -195,13 +197,13 @@ func appendFloat(out []byte, n float64, bitSize int) []byte { // WriteInt writes out the given signed integer value. func (e *Encoder) WriteInt(n int64) { e.prepareNext(scalar) - e.out = append(e.out, strconv.FormatInt(n, 10)...) + e.out = strconv.AppendInt(e.out, n, 10) } // WriteUint writes out the given unsigned integer value. func (e *Encoder) WriteUint(n uint64) { e.prepareNext(scalar) - e.out = append(e.out, strconv.FormatUint(n, 10)...) + e.out = strconv.AppendUint(e.out, n, 10) } // WriteLiteral writes out the given string as a literal value without quotes. diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go index e3cdf1c20591..136f1b215733 100644 --- a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go @@ -50,6 +50,7 @@ const ( FileDescriptorProto_Options_field_name protoreflect.Name = "options" FileDescriptorProto_SourceCodeInfo_field_name protoreflect.Name = "source_code_info" FileDescriptorProto_Syntax_field_name protoreflect.Name = "syntax" + FileDescriptorProto_Edition_field_name protoreflect.Name = "edition" FileDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.name" FileDescriptorProto_Package_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.package" @@ -63,6 +64,7 @@ const ( FileDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.options" FileDescriptorProto_SourceCodeInfo_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.source_code_info" FileDescriptorProto_Syntax_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.syntax" + FileDescriptorProto_Edition_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.edition" ) // Field numbers for google.protobuf.FileDescriptorProto. @@ -79,6 +81,7 @@ const ( FileDescriptorProto_Options_field_number protoreflect.FieldNumber = 8 FileDescriptorProto_SourceCodeInfo_field_number protoreflect.FieldNumber = 9 FileDescriptorProto_Syntax_field_number protoreflect.FieldNumber = 12 + FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 13 ) // Names for google.protobuf.DescriptorProto. @@ -180,13 +183,58 @@ const ( // Field names for google.protobuf.ExtensionRangeOptions. const ( ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + ExtensionRangeOptions_Declaration_field_name protoreflect.Name = "declaration" + ExtensionRangeOptions_Verification_field_name protoreflect.Name = "verification" ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" + ExtensionRangeOptions_Declaration_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.declaration" + ExtensionRangeOptions_Verification_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.verification" ) // Field numbers for google.protobuf.ExtensionRangeOptions. const ( ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 + ExtensionRangeOptions_Declaration_field_number protoreflect.FieldNumber = 2 + ExtensionRangeOptions_Verification_field_number protoreflect.FieldNumber = 3 +) + +// Full and short names for google.protobuf.ExtensionRangeOptions.VerificationState. +const ( + ExtensionRangeOptions_VerificationState_enum_fullname = "google.protobuf.ExtensionRangeOptions.VerificationState" + ExtensionRangeOptions_VerificationState_enum_name = "VerificationState" +) + +// Names for google.protobuf.ExtensionRangeOptions.Declaration. +const ( + ExtensionRangeOptions_Declaration_message_name protoreflect.Name = "Declaration" + ExtensionRangeOptions_Declaration_message_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration" +) + +// Field names for google.protobuf.ExtensionRangeOptions.Declaration. +const ( + ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" + ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" + ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" + ExtensionRangeOptions_Declaration_IsRepeated_field_name protoreflect.Name = "is_repeated" + ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" + ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" + + ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" + ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" + ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" + ExtensionRangeOptions_Declaration_IsRepeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.is_repeated" + ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" + ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" +) + +// Field numbers for google.protobuf.ExtensionRangeOptions.Declaration. +const ( + ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 + ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 + ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 + ExtensionRangeOptions_Declaration_IsRepeated_field_number protoreflect.FieldNumber = 4 + ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 + ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 ) // Names for google.protobuf.FieldDescriptorProto. @@ -494,26 +542,29 @@ const ( // Field names for google.protobuf.MessageOptions. const ( - MessageOptions_MessageSetWireFormat_field_name protoreflect.Name = "message_set_wire_format" - MessageOptions_NoStandardDescriptorAccessor_field_name protoreflect.Name = "no_standard_descriptor_accessor" - MessageOptions_Deprecated_field_name protoreflect.Name = "deprecated" - MessageOptions_MapEntry_field_name protoreflect.Name = "map_entry" - MessageOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + MessageOptions_MessageSetWireFormat_field_name protoreflect.Name = "message_set_wire_format" + MessageOptions_NoStandardDescriptorAccessor_field_name protoreflect.Name = "no_standard_descriptor_accessor" + MessageOptions_Deprecated_field_name protoreflect.Name = "deprecated" + MessageOptions_MapEntry_field_name protoreflect.Name = "map_entry" + MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" + MessageOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - MessageOptions_MessageSetWireFormat_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format" - MessageOptions_NoStandardDescriptorAccessor_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.no_standard_descriptor_accessor" - MessageOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated" - MessageOptions_MapEntry_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.map_entry" - MessageOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option" + MessageOptions_MessageSetWireFormat_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format" + MessageOptions_NoStandardDescriptorAccessor_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.no_standard_descriptor_accessor" + MessageOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated" + MessageOptions_MapEntry_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.map_entry" + MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated_legacy_json_field_conflicts" + MessageOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option" ) // Field numbers for google.protobuf.MessageOptions. const ( - MessageOptions_MessageSetWireFormat_field_number protoreflect.FieldNumber = 1 - MessageOptions_NoStandardDescriptorAccessor_field_number protoreflect.FieldNumber = 2 - MessageOptions_Deprecated_field_number protoreflect.FieldNumber = 3 - MessageOptions_MapEntry_field_number protoreflect.FieldNumber = 7 - MessageOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 + MessageOptions_MessageSetWireFormat_field_number protoreflect.FieldNumber = 1 + MessageOptions_NoStandardDescriptorAccessor_field_number protoreflect.FieldNumber = 2 + MessageOptions_Deprecated_field_number protoreflect.FieldNumber = 3 + MessageOptions_MapEntry_field_number protoreflect.FieldNumber = 7 + MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 11 + MessageOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) // Names for google.protobuf.FieldOptions. @@ -528,16 +579,26 @@ const ( FieldOptions_Packed_field_name protoreflect.Name = "packed" FieldOptions_Jstype_field_name protoreflect.Name = "jstype" FieldOptions_Lazy_field_name protoreflect.Name = "lazy" + FieldOptions_UnverifiedLazy_field_name protoreflect.Name = "unverified_lazy" FieldOptions_Deprecated_field_name protoreflect.Name = "deprecated" FieldOptions_Weak_field_name protoreflect.Name = "weak" + FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" + FieldOptions_Retention_field_name protoreflect.Name = "retention" + FieldOptions_Target_field_name protoreflect.Name = "target" + FieldOptions_Targets_field_name protoreflect.Name = "targets" FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" FieldOptions_Packed_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.packed" FieldOptions_Jstype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.jstype" FieldOptions_Lazy_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.lazy" + FieldOptions_UnverifiedLazy_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.unverified_lazy" FieldOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.deprecated" FieldOptions_Weak_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.weak" + FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" + FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" + FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" + FieldOptions_Targets_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.targets" FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" ) @@ -547,8 +608,13 @@ const ( FieldOptions_Packed_field_number protoreflect.FieldNumber = 2 FieldOptions_Jstype_field_number protoreflect.FieldNumber = 6 FieldOptions_Lazy_field_number protoreflect.FieldNumber = 5 + FieldOptions_UnverifiedLazy_field_number protoreflect.FieldNumber = 15 FieldOptions_Deprecated_field_number protoreflect.FieldNumber = 3 FieldOptions_Weak_field_number protoreflect.FieldNumber = 10 + FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 + FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 + FieldOptions_Target_field_number protoreflect.FieldNumber = 18 + FieldOptions_Targets_field_number protoreflect.FieldNumber = 19 FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) @@ -564,6 +630,18 @@ const ( FieldOptions_JSType_enum_name = "JSType" ) +// Full and short names for google.protobuf.FieldOptions.OptionRetention. +const ( + FieldOptions_OptionRetention_enum_fullname = "google.protobuf.FieldOptions.OptionRetention" + FieldOptions_OptionRetention_enum_name = "OptionRetention" +) + +// Full and short names for google.protobuf.FieldOptions.OptionTargetType. +const ( + FieldOptions_OptionTargetType_enum_fullname = "google.protobuf.FieldOptions.OptionTargetType" + FieldOptions_OptionTargetType_enum_name = "OptionTargetType" +) + // Names for google.protobuf.OneofOptions. const ( OneofOptions_message_name protoreflect.Name = "OneofOptions" @@ -590,20 +668,23 @@ const ( // Field names for google.protobuf.EnumOptions. const ( - EnumOptions_AllowAlias_field_name protoreflect.Name = "allow_alias" - EnumOptions_Deprecated_field_name protoreflect.Name = "deprecated" - EnumOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + EnumOptions_AllowAlias_field_name protoreflect.Name = "allow_alias" + EnumOptions_Deprecated_field_name protoreflect.Name = "deprecated" + EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" + EnumOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - EnumOptions_AllowAlias_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias" - EnumOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated" - EnumOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option" + EnumOptions_AllowAlias_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias" + EnumOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated" + EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated_legacy_json_field_conflicts" + EnumOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option" ) // Field numbers for google.protobuf.EnumOptions. const ( - EnumOptions_AllowAlias_field_number protoreflect.FieldNumber = 2 - EnumOptions_Deprecated_field_number protoreflect.FieldNumber = 3 - EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 + EnumOptions_AllowAlias_field_number protoreflect.FieldNumber = 2 + EnumOptions_Deprecated_field_number protoreflect.FieldNumber = 3 + EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 6 + EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) // Names for google.protobuf.EnumValueOptions. @@ -813,11 +894,13 @@ const ( GeneratedCodeInfo_Annotation_SourceFile_field_name protoreflect.Name = "source_file" GeneratedCodeInfo_Annotation_Begin_field_name protoreflect.Name = "begin" GeneratedCodeInfo_Annotation_End_field_name protoreflect.Name = "end" + GeneratedCodeInfo_Annotation_Semantic_field_name protoreflect.Name = "semantic" GeneratedCodeInfo_Annotation_Path_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.path" GeneratedCodeInfo_Annotation_SourceFile_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.source_file" GeneratedCodeInfo_Annotation_Begin_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.begin" GeneratedCodeInfo_Annotation_End_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.end" + GeneratedCodeInfo_Annotation_Semantic_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.semantic" ) // Field numbers for google.protobuf.GeneratedCodeInfo.Annotation. @@ -826,4 +909,11 @@ const ( GeneratedCodeInfo_Annotation_SourceFile_field_number protoreflect.FieldNumber = 2 GeneratedCodeInfo_Annotation_Begin_field_number protoreflect.FieldNumber = 3 GeneratedCodeInfo_Annotation_End_field_number protoreflect.FieldNumber = 4 + GeneratedCodeInfo_Annotation_Semantic_field_number protoreflect.FieldNumber = 5 +) + +// Full and short names for google.protobuf.GeneratedCodeInfo.Annotation.Semantic. +const ( + GeneratedCodeInfo_Annotation_Semantic_enum_fullname = "google.protobuf.GeneratedCodeInfo.Annotation.Semantic" + GeneratedCodeInfo_Annotation_Semantic_enum_name = "Semantic" ) diff --git a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go index 3bc710138ad9..e0f75fea0a13 100644 --- a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +++ b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go @@ -32,6 +32,7 @@ const ( Type_Options_field_name protoreflect.Name = "options" Type_SourceContext_field_name protoreflect.Name = "source_context" Type_Syntax_field_name protoreflect.Name = "syntax" + Type_Edition_field_name protoreflect.Name = "edition" Type_Name_field_fullname protoreflect.FullName = "google.protobuf.Type.name" Type_Fields_field_fullname protoreflect.FullName = "google.protobuf.Type.fields" @@ -39,6 +40,7 @@ const ( Type_Options_field_fullname protoreflect.FullName = "google.protobuf.Type.options" Type_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Type.source_context" Type_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Type.syntax" + Type_Edition_field_fullname protoreflect.FullName = "google.protobuf.Type.edition" ) // Field numbers for google.protobuf.Type. @@ -49,6 +51,7 @@ const ( Type_Options_field_number protoreflect.FieldNumber = 4 Type_SourceContext_field_number protoreflect.FieldNumber = 5 Type_Syntax_field_number protoreflect.FieldNumber = 6 + Type_Edition_field_number protoreflect.FieldNumber = 7 ) // Names for google.protobuf.Field. @@ -121,12 +124,14 @@ const ( Enum_Options_field_name protoreflect.Name = "options" Enum_SourceContext_field_name protoreflect.Name = "source_context" Enum_Syntax_field_name protoreflect.Name = "syntax" + Enum_Edition_field_name protoreflect.Name = "edition" Enum_Name_field_fullname protoreflect.FullName = "google.protobuf.Enum.name" Enum_Enumvalue_field_fullname protoreflect.FullName = "google.protobuf.Enum.enumvalue" Enum_Options_field_fullname protoreflect.FullName = "google.protobuf.Enum.options" Enum_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Enum.source_context" Enum_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Enum.syntax" + Enum_Edition_field_fullname protoreflect.FullName = "google.protobuf.Enum.edition" ) // Field numbers for google.protobuf.Enum. @@ -136,6 +141,7 @@ const ( Enum_Options_field_number protoreflect.FieldNumber = 3 Enum_SourceContext_field_number protoreflect.FieldNumber = 4 Enum_Syntax_field_number protoreflect.FieldNumber = 5 + Enum_Edition_field_number protoreflect.FieldNumber = 6 ) // Names for google.protobuf.EnumValue. diff --git a/vendor/google.golang.org/protobuf/internal/impl/convert.go b/vendor/google.golang.org/protobuf/internal/impl/convert.go index 11a6128ba56b..185ef2efa5bf 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/convert.go +++ b/vendor/google.golang.org/protobuf/internal/impl/convert.go @@ -59,7 +59,6 @@ func NewConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter { default: return newSingularConverter(t, fd) } - panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName())) } var ( diff --git a/vendor/google.golang.org/protobuf/internal/order/order.go b/vendor/google.golang.org/protobuf/internal/order/order.go index 33745ed06254..dea522e127dc 100644 --- a/vendor/google.golang.org/protobuf/internal/order/order.go +++ b/vendor/google.golang.org/protobuf/internal/order/order.go @@ -33,7 +33,7 @@ var ( return !inOneof(ox) && inOneof(oy) } // Fields in disjoint oneof sets are sorted by declaration index. - if ox != nil && oy != nil && ox != oy { + if inOneof(ox) && inOneof(oy) && ox != oy { return ox.Index() < oy.Index() } // Fields sorted by field number. diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go index fea589c457e9..61a84d34185a 100644 --- a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +++ b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go @@ -87,7 +87,7 @@ func (sb *Builder) grow(n int) { // Unlike strings.Builder, we do not need to copy over the contents // of the old buffer since our builder provides no API for // retrieving previously created strings. - sb.buf = make([]byte, 2*(cap(sb.buf)+n)) + sb.buf = make([]byte, 0, 2*(cap(sb.buf)+n)) } func (sb *Builder) last(n int) string { diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go index b480c5010f1d..0999f29d501e 100644 --- a/vendor/google.golang.org/protobuf/internal/version/version.go +++ b/vendor/google.golang.org/protobuf/internal/version/version.go @@ -51,8 +51,8 @@ import ( // 10. Send out the CL for review and submit it. const ( Major = 1 - Minor = 28 - Patch = 1 + Minor = 31 + Patch = 0 PreRelease = "" ) diff --git a/vendor/google.golang.org/protobuf/proto/doc.go b/vendor/google.golang.org/protobuf/proto/doc.go index 08d2a46f5352..ec71e717fe7d 100644 --- a/vendor/google.golang.org/protobuf/proto/doc.go +++ b/vendor/google.golang.org/protobuf/proto/doc.go @@ -5,16 +5,13 @@ // Package proto provides functions operating on protocol buffer messages. // // For documentation on protocol buffers in general, see: -// -// https://developers.google.com/protocol-buffers +// https://protobuf.dev. // // For a tutorial on using protocol buffers with Go, see: -// -// https://developers.google.com/protocol-buffers/docs/gotutorial +// https://protobuf.dev/getting-started/gotutorial. // // For a guide to generated Go protocol buffer code, see: -// -// https://developers.google.com/protocol-buffers/docs/reference/go-generated +// https://protobuf.dev/reference/go/go-generated. // // # Binary serialization // diff --git a/vendor/google.golang.org/protobuf/proto/equal.go b/vendor/google.golang.org/protobuf/proto/equal.go index 67948dd1df8c..1a0be1b03c73 100644 --- a/vendor/google.golang.org/protobuf/proto/equal.go +++ b/vendor/google.golang.org/protobuf/proto/equal.go @@ -5,30 +5,39 @@ package proto import ( - "bytes" - "math" "reflect" - "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/reflect/protoreflect" ) -// Equal reports whether two messages are equal. -// If two messages marshal to the same bytes under deterministic serialization, -// then Equal is guaranteed to report true. +// Equal reports whether two messages are equal, +// by recursively comparing the fields of the message. // -// Two messages are equal if they belong to the same message descriptor, -// have the same set of populated known and extension field values, -// and the same set of unknown fields values. If either of the top-level -// messages are invalid, then Equal reports true only if both are invalid. +// - Bytes fields are equal if they contain identical bytes. +// Empty bytes (regardless of nil-ness) are considered equal. // -// Scalar values are compared with the equivalent of the == operator in Go, -// except bytes values which are compared using bytes.Equal and -// floating point values which specially treat NaNs as equal. -// Message values are compared by recursively calling Equal. -// Lists are equal if each element value is also equal. -// Maps are equal if they have the same set of keys, where the pair of values -// for each key is also equal. +// - Floating-point fields are equal if they contain the same value. +// Unlike the == operator, a NaN is equal to another NaN. +// +// - Other scalar fields are equal if they contain the same value. +// +// - Message fields are equal if they have +// the same set of populated known and extension field values, and +// the same set of unknown fields values. +// +// - Lists are equal if they are the same length and +// each corresponding element is equal. +// +// - Maps are equal if they have the same set of keys and +// the corresponding value for each key is equal. +// +// An invalid message is not equal to a valid message. +// An invalid message is only equal to another invalid message of the +// same type. An invalid message often corresponds to a nil pointer +// of the concrete message type. For example, (*pb.M)(nil) is not equal +// to &pb.M{}. +// If two valid messages marshal to the same bytes under deterministic +// serialization, then Equal is guaranteed to report true. func Equal(x, y Message) bool { if x == nil || y == nil { return x == nil && y == nil @@ -42,130 +51,7 @@ func Equal(x, y Message) bool { if mx.IsValid() != my.IsValid() { return false } - return equalMessage(mx, my) -} - -// equalMessage compares two messages. -func equalMessage(mx, my protoreflect.Message) bool { - if mx.Descriptor() != my.Descriptor() { - return false - } - - nx := 0 - equal := true - mx.Range(func(fd protoreflect.FieldDescriptor, vx protoreflect.Value) bool { - nx++ - vy := my.Get(fd) - equal = my.Has(fd) && equalField(fd, vx, vy) - return equal - }) - if !equal { - return false - } - ny := 0 - my.Range(func(fd protoreflect.FieldDescriptor, vx protoreflect.Value) bool { - ny++ - return true - }) - if nx != ny { - return false - } - - return equalUnknown(mx.GetUnknown(), my.GetUnknown()) -} - -// equalField compares two fields. -func equalField(fd protoreflect.FieldDescriptor, x, y protoreflect.Value) bool { - switch { - case fd.IsList(): - return equalList(fd, x.List(), y.List()) - case fd.IsMap(): - return equalMap(fd, x.Map(), y.Map()) - default: - return equalValue(fd, x, y) - } -} - -// equalMap compares two maps. -func equalMap(fd protoreflect.FieldDescriptor, x, y protoreflect.Map) bool { - if x.Len() != y.Len() { - return false - } - equal := true - x.Range(func(k protoreflect.MapKey, vx protoreflect.Value) bool { - vy := y.Get(k) - equal = y.Has(k) && equalValue(fd.MapValue(), vx, vy) - return equal - }) - return equal -} - -// equalList compares two lists. -func equalList(fd protoreflect.FieldDescriptor, x, y protoreflect.List) bool { - if x.Len() != y.Len() { - return false - } - for i := x.Len() - 1; i >= 0; i-- { - if !equalValue(fd, x.Get(i), y.Get(i)) { - return false - } - } - return true -} - -// equalValue compares two singular values. -func equalValue(fd protoreflect.FieldDescriptor, x, y protoreflect.Value) bool { - switch fd.Kind() { - case protoreflect.BoolKind: - return x.Bool() == y.Bool() - case protoreflect.EnumKind: - return x.Enum() == y.Enum() - case protoreflect.Int32Kind, protoreflect.Sint32Kind, - protoreflect.Int64Kind, protoreflect.Sint64Kind, - protoreflect.Sfixed32Kind, protoreflect.Sfixed64Kind: - return x.Int() == y.Int() - case protoreflect.Uint32Kind, protoreflect.Uint64Kind, - protoreflect.Fixed32Kind, protoreflect.Fixed64Kind: - return x.Uint() == y.Uint() - case protoreflect.FloatKind, protoreflect.DoubleKind: - fx := x.Float() - fy := y.Float() - if math.IsNaN(fx) || math.IsNaN(fy) { - return math.IsNaN(fx) && math.IsNaN(fy) - } - return fx == fy - case protoreflect.StringKind: - return x.String() == y.String() - case protoreflect.BytesKind: - return bytes.Equal(x.Bytes(), y.Bytes()) - case protoreflect.MessageKind, protoreflect.GroupKind: - return equalMessage(x.Message(), y.Message()) - default: - return x.Interface() == y.Interface() - } -} - -// equalUnknown compares unknown fields by direct comparison on the raw bytes -// of each individual field number. -func equalUnknown(x, y protoreflect.RawFields) bool { - if len(x) != len(y) { - return false - } - if bytes.Equal([]byte(x), []byte(y)) { - return true - } - - mx := make(map[protoreflect.FieldNumber]protoreflect.RawFields) - my := make(map[protoreflect.FieldNumber]protoreflect.RawFields) - for len(x) > 0 { - fnum, _, n := protowire.ConsumeField(x) - mx[fnum] = append(mx[fnum], x[:n]...) - x = x[n:] - } - for len(y) > 0 { - fnum, _, n := protowire.ConsumeField(y) - my[fnum] = append(my[fnum], y[:n]...) - y = y[n:] - } - return reflect.DeepEqual(mx, my) + vx := protoreflect.ValueOfMessage(mx) + vy := protoreflect.ValueOfMessage(my) + return vx.Equal(vy) } diff --git a/vendor/google.golang.org/protobuf/proto/size.go b/vendor/google.golang.org/protobuf/proto/size.go index 554b9c6c09a1..f1692b49b6c7 100644 --- a/vendor/google.golang.org/protobuf/proto/size.go +++ b/vendor/google.golang.org/protobuf/proto/size.go @@ -73,23 +73,27 @@ func (o MarshalOptions) sizeField(fd protoreflect.FieldDescriptor, value protore } func (o MarshalOptions) sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) { + sizeTag := protowire.SizeTag(num) + if fd.IsPacked() && list.Len() > 0 { content := 0 for i, llen := 0, list.Len(); i < llen; i++ { content += o.sizeSingular(num, fd.Kind(), list.Get(i)) } - return protowire.SizeTag(num) + protowire.SizeBytes(content) + return sizeTag + protowire.SizeBytes(content) } for i, llen := 0, list.Len(); i < llen; i++ { - size += protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), list.Get(i)) + size += sizeTag + o.sizeSingular(num, fd.Kind(), list.Get(i)) } return size } func (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) { + sizeTag := protowire.SizeTag(num) + mapv.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool { - size += protowire.SizeTag(num) + size += sizeTag size += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value)) return true }) diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go index b03c1223c4a4..717b106f3da9 100644 --- a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go @@ -35,6 +35,8 @@ func (p *SourcePath) appendFileDescriptorProto(b []byte) []byte { b = p.appendSingularField(b, "source_code_info", (*SourcePath).appendSourceCodeInfo) case 12: b = p.appendSingularField(b, "syntax", nil) + case 13: + b = p.appendSingularField(b, "edition", nil) } return b } @@ -236,6 +238,8 @@ func (p *SourcePath) appendMessageOptions(b []byte) []byte { b = p.appendSingularField(b, "deprecated", nil) case 7: b = p.appendSingularField(b, "map_entry", nil) + case 11: + b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } @@ -279,6 +283,8 @@ func (p *SourcePath) appendEnumOptions(b []byte) []byte { b = p.appendSingularField(b, "allow_alias", nil) case 3: b = p.appendSingularField(b, "deprecated", nil) + case 6: + b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } @@ -345,10 +351,20 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte { b = p.appendSingularField(b, "jstype", nil) case 5: b = p.appendSingularField(b, "lazy", nil) + case 15: + b = p.appendSingularField(b, "unverified_lazy", nil) case 3: b = p.appendSingularField(b, "deprecated", nil) case 10: b = p.appendSingularField(b, "weak", nil) + case 16: + b = p.appendSingularField(b, "debug_redact", nil) + case 17: + b = p.appendSingularField(b, "retention", nil) + case 18: + b = p.appendSingularField(b, "target", nil) + case 19: + b = p.appendRepeatedField(b, "targets", nil) case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } @@ -404,6 +420,10 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { switch (*p)[0] { case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) + case 2: + b = p.appendRepeatedField(b, "declaration", (*SourcePath).appendExtensionRangeOptions_Declaration) + case 3: + b = p.appendSingularField(b, "verification", nil) } return b } @@ -459,3 +479,24 @@ func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { } return b } + +func (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "number", nil) + case 2: + b = p.appendSingularField(b, "full_name", nil) + case 3: + b = p.appendSingularField(b, "type", nil) + case 4: + b = p.appendSingularField(b, "is_repeated", nil) + case 5: + b = p.appendSingularField(b, "reserved", nil) + case 6: + b = p.appendSingularField(b, "repeated", nil) + } + return b +} diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go index f31981077827..37601b781997 100644 --- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go @@ -148,7 +148,7 @@ type Message interface { // be preserved in marshaling or other operations. IsValid() bool - // ProtoMethods returns optional fast-path implementions of various operations. + // ProtoMethods returns optional fast-path implementations of various operations. // This method may return nil. // // The returned methods type is identical to diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go new file mode 100644 index 000000000000..591652541f28 --- /dev/null +++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go @@ -0,0 +1,168 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package protoreflect + +import ( + "bytes" + "fmt" + "math" + "reflect" + + "google.golang.org/protobuf/encoding/protowire" +) + +// Equal reports whether v1 and v2 are recursively equal. +// +// - Values of different types are always unequal. +// +// - Bytes values are equal if they contain identical bytes. +// Empty bytes (regardless of nil-ness) are considered equal. +// +// - Floating point values are equal if they contain the same value. +// Unlike the == operator, a NaN is equal to another NaN. +// +// - Enums are equal if they contain the same number. +// Since Value does not contain an enum descriptor, +// enum values do not consider the type of the enum. +// +// - Other scalar values are equal if they contain the same value. +// +// - Message values are equal if they belong to the same message descriptor, +// have the same set of populated known and extension field values, +// and the same set of unknown fields values. +// +// - Lists are equal if they are the same length and +// each corresponding element is equal. +// +// - Maps are equal if they have the same set of keys and +// the corresponding value for each key is equal. +func (v1 Value) Equal(v2 Value) bool { + return equalValue(v1, v2) +} + +func equalValue(x, y Value) bool { + eqType := x.typ == y.typ + switch x.typ { + case nilType: + return eqType + case boolType: + return eqType && x.Bool() == y.Bool() + case int32Type, int64Type: + return eqType && x.Int() == y.Int() + case uint32Type, uint64Type: + return eqType && x.Uint() == y.Uint() + case float32Type, float64Type: + return eqType && equalFloat(x.Float(), y.Float()) + case stringType: + return eqType && x.String() == y.String() + case bytesType: + return eqType && bytes.Equal(x.Bytes(), y.Bytes()) + case enumType: + return eqType && x.Enum() == y.Enum() + default: + switch x := x.Interface().(type) { + case Message: + y, ok := y.Interface().(Message) + return ok && equalMessage(x, y) + case List: + y, ok := y.Interface().(List) + return ok && equalList(x, y) + case Map: + y, ok := y.Interface().(Map) + return ok && equalMap(x, y) + default: + panic(fmt.Sprintf("unknown type: %T", x)) + } + } +} + +// equalFloat compares two floats, where NaNs are treated as equal. +func equalFloat(x, y float64) bool { + if math.IsNaN(x) || math.IsNaN(y) { + return math.IsNaN(x) && math.IsNaN(y) + } + return x == y +} + +// equalMessage compares two messages. +func equalMessage(mx, my Message) bool { + if mx.Descriptor() != my.Descriptor() { + return false + } + + nx := 0 + equal := true + mx.Range(func(fd FieldDescriptor, vx Value) bool { + nx++ + vy := my.Get(fd) + equal = my.Has(fd) && equalValue(vx, vy) + return equal + }) + if !equal { + return false + } + ny := 0 + my.Range(func(fd FieldDescriptor, vx Value) bool { + ny++ + return true + }) + if nx != ny { + return false + } + + return equalUnknown(mx.GetUnknown(), my.GetUnknown()) +} + +// equalList compares two lists. +func equalList(x, y List) bool { + if x.Len() != y.Len() { + return false + } + for i := x.Len() - 1; i >= 0; i-- { + if !equalValue(x.Get(i), y.Get(i)) { + return false + } + } + return true +} + +// equalMap compares two maps. +func equalMap(x, y Map) bool { + if x.Len() != y.Len() { + return false + } + equal := true + x.Range(func(k MapKey, vx Value) bool { + vy := y.Get(k) + equal = y.Has(k) && equalValue(vx, vy) + return equal + }) + return equal +} + +// equalUnknown compares unknown fields by direct comparison on the raw bytes +// of each individual field number. +func equalUnknown(x, y RawFields) bool { + if len(x) != len(y) { + return false + } + if bytes.Equal([]byte(x), []byte(y)) { + return true + } + + mx := make(map[FieldNumber]RawFields) + my := make(map[FieldNumber]RawFields) + for len(x) > 0 { + fnum, _, n := protowire.ConsumeField(x) + mx[fnum] = append(mx[fnum], x[:n]...) + x = x[n:] + } + for len(y) > 0 { + fnum, _, n := protowire.ConsumeField(y) + my[fnum] = append(my[fnum], y[:n]...) + y = y[n:] + } + return reflect.DeepEqual(mx, my) +} diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go index ca8e28c5bc8b..08e5ef73fc0e 100644 --- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go @@ -54,11 +54,11 @@ import ( // // Append a 0 to a "repeated int32" field. // // Since the Value returned by Mutable is guaranteed to alias // // the source message, modifying the Value modifies the message. -// message.Mutable(fieldDesc).(List).Append(protoreflect.ValueOfInt32(0)) +// message.Mutable(fieldDesc).List().Append(protoreflect.ValueOfInt32(0)) // // // Assign [0] to a "repeated int32" field by creating a new Value, // // modifying it, and assigning it. -// list := message.NewField(fieldDesc).(List) +// list := message.NewField(fieldDesc).List() // list.Append(protoreflect.ValueOfInt32(0)) // message.Set(fieldDesc, list) // // ERROR: Since it is not defined whether Set aliases the source, diff --git a/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go b/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go index 58352a6978be..aeb559774469 100644 --- a/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +++ b/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go @@ -46,7 +46,7 @@ var conflictPolicy = "panic" // "panic" | "warn" | "ignore" // It is a variable so that the behavior is easily overridden in another file. var ignoreConflict = func(d protoreflect.Descriptor, err error) bool { const env = "GOLANG_PROTOBUF_REGISTRATION_CONFLICT" - const faq = "https://developers.google.com/protocol-buffers/docs/reference/go/faq#namespace-conflict" + const faq = "https://protobuf.dev/reference/go/faq#namespace-conflict" policy := conflictPolicy if v := os.Getenv(env); v != "" { policy = v diff --git a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go index abe4ab5115bb..04c00f737c1e 100644 --- a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +++ b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go @@ -48,6 +48,64 @@ import ( sync "sync" ) +// The verification state of the extension range. +type ExtensionRangeOptions_VerificationState int32 + +const ( + // All the extensions of the range must be declared. + ExtensionRangeOptions_DECLARATION ExtensionRangeOptions_VerificationState = 0 + ExtensionRangeOptions_UNVERIFIED ExtensionRangeOptions_VerificationState = 1 +) + +// Enum value maps for ExtensionRangeOptions_VerificationState. +var ( + ExtensionRangeOptions_VerificationState_name = map[int32]string{ + 0: "DECLARATION", + 1: "UNVERIFIED", + } + ExtensionRangeOptions_VerificationState_value = map[string]int32{ + "DECLARATION": 0, + "UNVERIFIED": 1, + } +) + +func (x ExtensionRangeOptions_VerificationState) Enum() *ExtensionRangeOptions_VerificationState { + p := new(ExtensionRangeOptions_VerificationState) + *p = x + return p +} + +func (x ExtensionRangeOptions_VerificationState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ExtensionRangeOptions_VerificationState) Descriptor() protoreflect.EnumDescriptor { + return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() +} + +func (ExtensionRangeOptions_VerificationState) Type() protoreflect.EnumType { + return &file_google_protobuf_descriptor_proto_enumTypes[0] +} + +func (x ExtensionRangeOptions_VerificationState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ExtensionRangeOptions_VerificationState) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ExtensionRangeOptions_VerificationState(num) + return nil +} + +// Deprecated: Use ExtensionRangeOptions_VerificationState.Descriptor instead. +func (ExtensionRangeOptions_VerificationState) EnumDescriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0} +} + type FieldDescriptorProto_Type int32 const ( @@ -137,11 +195,11 @@ func (x FieldDescriptorProto_Type) String() string { } func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor { - return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() + return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() } func (FieldDescriptorProto_Type) Type() protoreflect.EnumType { - return &file_google_protobuf_descriptor_proto_enumTypes[0] + return &file_google_protobuf_descriptor_proto_enumTypes[1] } func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber { @@ -197,11 +255,11 @@ func (x FieldDescriptorProto_Label) String() string { } func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor { - return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() + return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() } func (FieldDescriptorProto_Label) Type() protoreflect.EnumType { - return &file_google_protobuf_descriptor_proto_enumTypes[1] + return &file_google_protobuf_descriptor_proto_enumTypes[2] } func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber { @@ -258,11 +316,11 @@ func (x FileOptions_OptimizeMode) String() string { } func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor { - return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() + return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() } func (FileOptions_OptimizeMode) Type() protoreflect.EnumType { - return &file_google_protobuf_descriptor_proto_enumTypes[2] + return &file_google_protobuf_descriptor_proto_enumTypes[3] } func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber { @@ -288,7 +346,13 @@ type FieldOptions_CType int32 const ( // Default mode. - FieldOptions_STRING FieldOptions_CType = 0 + FieldOptions_STRING FieldOptions_CType = 0 + // The option [ctype=CORD] may be applied to a non-repeated field of type + // "bytes". It indicates that in C++, the data should be stored in a Cord + // instead of a string. For very large strings, this may reduce memory + // fragmentation. It may also allow better performance when parsing from a + // Cord, or when parsing with aliasing enabled, as the parsed Cord may then + // alias the original buffer. FieldOptions_CORD FieldOptions_CType = 1 FieldOptions_STRING_PIECE FieldOptions_CType = 2 ) @@ -318,11 +382,11 @@ func (x FieldOptions_CType) String() string { } func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor { - return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() + return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() } func (FieldOptions_CType) Type() protoreflect.EnumType { - return &file_google_protobuf_descriptor_proto_enumTypes[3] + return &file_google_protobuf_descriptor_proto_enumTypes[4] } func (x FieldOptions_CType) Number() protoreflect.EnumNumber { @@ -380,11 +444,11 @@ func (x FieldOptions_JSType) String() string { } func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor { - return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() + return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() } func (FieldOptions_JSType) Type() protoreflect.EnumType { - return &file_google_protobuf_descriptor_proto_enumTypes[4] + return &file_google_protobuf_descriptor_proto_enumTypes[5] } func (x FieldOptions_JSType) Number() protoreflect.EnumNumber { @@ -406,6 +470,152 @@ func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 1} } +// If set to RETENTION_SOURCE, the option will be omitted from the binary. +// Note: as of January 2023, support for this is in progress and does not yet +// have an effect (b/264593489). +type FieldOptions_OptionRetention int32 + +const ( + FieldOptions_RETENTION_UNKNOWN FieldOptions_OptionRetention = 0 + FieldOptions_RETENTION_RUNTIME FieldOptions_OptionRetention = 1 + FieldOptions_RETENTION_SOURCE FieldOptions_OptionRetention = 2 +) + +// Enum value maps for FieldOptions_OptionRetention. +var ( + FieldOptions_OptionRetention_name = map[int32]string{ + 0: "RETENTION_UNKNOWN", + 1: "RETENTION_RUNTIME", + 2: "RETENTION_SOURCE", + } + FieldOptions_OptionRetention_value = map[string]int32{ + "RETENTION_UNKNOWN": 0, + "RETENTION_RUNTIME": 1, + "RETENTION_SOURCE": 2, + } +) + +func (x FieldOptions_OptionRetention) Enum() *FieldOptions_OptionRetention { + p := new(FieldOptions_OptionRetention) + *p = x + return p +} + +func (x FieldOptions_OptionRetention) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor { + return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() +} + +func (FieldOptions_OptionRetention) Type() protoreflect.EnumType { + return &file_google_protobuf_descriptor_proto_enumTypes[6] +} + +func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *FieldOptions_OptionRetention) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = FieldOptions_OptionRetention(num) + return nil +} + +// Deprecated: Use FieldOptions_OptionRetention.Descriptor instead. +func (FieldOptions_OptionRetention) EnumDescriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 2} +} + +// This indicates the types of entities that the field may apply to when used +// as an option. If it is unset, then the field may be freely used as an +// option on any kind of entity. Note: as of January 2023, support for this is +// in progress and does not yet have an effect (b/264593489). +type FieldOptions_OptionTargetType int32 + +const ( + FieldOptions_TARGET_TYPE_UNKNOWN FieldOptions_OptionTargetType = 0 + FieldOptions_TARGET_TYPE_FILE FieldOptions_OptionTargetType = 1 + FieldOptions_TARGET_TYPE_EXTENSION_RANGE FieldOptions_OptionTargetType = 2 + FieldOptions_TARGET_TYPE_MESSAGE FieldOptions_OptionTargetType = 3 + FieldOptions_TARGET_TYPE_FIELD FieldOptions_OptionTargetType = 4 + FieldOptions_TARGET_TYPE_ONEOF FieldOptions_OptionTargetType = 5 + FieldOptions_TARGET_TYPE_ENUM FieldOptions_OptionTargetType = 6 + FieldOptions_TARGET_TYPE_ENUM_ENTRY FieldOptions_OptionTargetType = 7 + FieldOptions_TARGET_TYPE_SERVICE FieldOptions_OptionTargetType = 8 + FieldOptions_TARGET_TYPE_METHOD FieldOptions_OptionTargetType = 9 +) + +// Enum value maps for FieldOptions_OptionTargetType. +var ( + FieldOptions_OptionTargetType_name = map[int32]string{ + 0: "TARGET_TYPE_UNKNOWN", + 1: "TARGET_TYPE_FILE", + 2: "TARGET_TYPE_EXTENSION_RANGE", + 3: "TARGET_TYPE_MESSAGE", + 4: "TARGET_TYPE_FIELD", + 5: "TARGET_TYPE_ONEOF", + 6: "TARGET_TYPE_ENUM", + 7: "TARGET_TYPE_ENUM_ENTRY", + 8: "TARGET_TYPE_SERVICE", + 9: "TARGET_TYPE_METHOD", + } + FieldOptions_OptionTargetType_value = map[string]int32{ + "TARGET_TYPE_UNKNOWN": 0, + "TARGET_TYPE_FILE": 1, + "TARGET_TYPE_EXTENSION_RANGE": 2, + "TARGET_TYPE_MESSAGE": 3, + "TARGET_TYPE_FIELD": 4, + "TARGET_TYPE_ONEOF": 5, + "TARGET_TYPE_ENUM": 6, + "TARGET_TYPE_ENUM_ENTRY": 7, + "TARGET_TYPE_SERVICE": 8, + "TARGET_TYPE_METHOD": 9, + } +) + +func (x FieldOptions_OptionTargetType) Enum() *FieldOptions_OptionTargetType { + p := new(FieldOptions_OptionTargetType) + *p = x + return p +} + +func (x FieldOptions_OptionTargetType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor { + return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() +} + +func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType { + return &file_google_protobuf_descriptor_proto_enumTypes[7] +} + +func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *FieldOptions_OptionTargetType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = FieldOptions_OptionTargetType(num) + return nil +} + +// Deprecated: Use FieldOptions_OptionTargetType.Descriptor instead. +func (FieldOptions_OptionTargetType) EnumDescriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 3} +} + // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, // or neither? HTTP based RPC implementation may choose GET verb for safe // methods, and PUT verb for idempotent methods instead of the default POST. @@ -442,11 +652,11 @@ func (x MethodOptions_IdempotencyLevel) String() string { } func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { - return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() + return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() } func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { - return &file_google_protobuf_descriptor_proto_enumTypes[5] + return &file_google_protobuf_descriptor_proto_enumTypes[8] } func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { @@ -468,6 +678,70 @@ func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17, 0} } +// Represents the identified object's effect on the element in the original +// .proto file. +type GeneratedCodeInfo_Annotation_Semantic int32 + +const ( + // There is no effect or the effect is indescribable. + GeneratedCodeInfo_Annotation_NONE GeneratedCodeInfo_Annotation_Semantic = 0 + // The element is set or otherwise mutated. + GeneratedCodeInfo_Annotation_SET GeneratedCodeInfo_Annotation_Semantic = 1 + // An alias to the element is returned. + GeneratedCodeInfo_Annotation_ALIAS GeneratedCodeInfo_Annotation_Semantic = 2 +) + +// Enum value maps for GeneratedCodeInfo_Annotation_Semantic. +var ( + GeneratedCodeInfo_Annotation_Semantic_name = map[int32]string{ + 0: "NONE", + 1: "SET", + 2: "ALIAS", + } + GeneratedCodeInfo_Annotation_Semantic_value = map[string]int32{ + "NONE": 0, + "SET": 1, + "ALIAS": 2, + } +) + +func (x GeneratedCodeInfo_Annotation_Semantic) Enum() *GeneratedCodeInfo_Annotation_Semantic { + p := new(GeneratedCodeInfo_Annotation_Semantic) + *p = x + return p +} + +func (x GeneratedCodeInfo_Annotation_Semantic) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor { + return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() +} + +func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType { + return &file_google_protobuf_descriptor_proto_enumTypes[9] +} + +func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *GeneratedCodeInfo_Annotation_Semantic) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = GeneratedCodeInfo_Annotation_Semantic(num) + return nil +} + +// Deprecated: Use GeneratedCodeInfo_Annotation_Semantic.Descriptor instead. +func (GeneratedCodeInfo_Annotation_Semantic) EnumDescriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0, 0} +} + // The protocol compiler can output a FileDescriptorSet containing the .proto // files it parses. type FileDescriptorSet struct { @@ -544,8 +818,12 @@ type FileDescriptorProto struct { // development tools. SourceCodeInfo *SourceCodeInfo `protobuf:"bytes,9,opt,name=source_code_info,json=sourceCodeInfo" json:"source_code_info,omitempty"` // The syntax of the proto file. - // The supported values are "proto2" and "proto3". + // The supported values are "proto2", "proto3", and "editions". + // + // If `edition` is present, this value must be "editions". Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` + // The edition of the proto file, which is an opaque string. + Edition *string `protobuf:"bytes,13,opt,name=edition" json:"edition,omitempty"` } func (x *FileDescriptorProto) Reset() { @@ -664,6 +942,13 @@ func (x *FileDescriptorProto) GetSyntax() string { return "" } +func (x *FileDescriptorProto) GetEdition() string { + if x != nil && x.Edition != nil { + return *x.Edition + } + return "" +} + // Describes a message type. type DescriptorProto struct { state protoimpl.MessageState @@ -794,7 +1079,21 @@ type ExtensionRangeOptions struct { // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -} + // go/protobuf-stripping-extension-declarations + // Like Metadata, but we use a repeated field to hold all extension + // declarations. This should avoid the size increases of transforming a large + // extension range into small ranges in generated binaries. + Declaration []*ExtensionRangeOptions_Declaration `protobuf:"bytes,2,rep,name=declaration" json:"declaration,omitempty"` + // The verification state of the range. + // TODO(b/278783756): flip the default to DECLARATION once all empty ranges + // are marked as UNVERIFIED. + Verification *ExtensionRangeOptions_VerificationState `protobuf:"varint,3,opt,name=verification,enum=google.protobuf.ExtensionRangeOptions_VerificationState,def=1" json:"verification,omitempty"` +} + +// Default values for ExtensionRangeOptions fields. +const ( + Default_ExtensionRangeOptions_Verification = ExtensionRangeOptions_UNVERIFIED +) func (x *ExtensionRangeOptions) Reset() { *x = ExtensionRangeOptions{} @@ -835,6 +1134,20 @@ func (x *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption return nil } +func (x *ExtensionRangeOptions) GetDeclaration() []*ExtensionRangeOptions_Declaration { + if x != nil { + return x.Declaration + } + return nil +} + +func (x *ExtensionRangeOptions) GetVerification() ExtensionRangeOptions_VerificationState { + if x != nil && x.Verification != nil { + return *x.Verification + } + return Default_ExtensionRangeOptions_Verification +} + // Describes a field within a message. type FieldDescriptorProto struct { state protoimpl.MessageState @@ -860,7 +1173,6 @@ type FieldDescriptorProto struct { // For booleans, "true" or "false". // For strings, contains the default text contents (not escaped in any way). // For bytes, contains the C escaped value. All bytes >= 128 are escaped. - // TODO(kenton): Base-64 encode? DefaultValue *string `protobuf:"bytes,7,opt,name=default_value,json=defaultValue" json:"default_value,omitempty"` // If set, gives the index of a oneof in the containing type's oneof_decl // list. This field is a member of that oneof. @@ -1382,22 +1694,22 @@ type FileOptions struct { // inappropriate because proto packages do not normally start with backwards // domain names. JavaPackage *string `protobuf:"bytes,1,opt,name=java_package,json=javaPackage" json:"java_package,omitempty"` - // If set, all the classes from the .proto file are wrapped in a single - // outer class with the given name. This applies to both Proto1 - // (equivalent to the old "--one_java_file" option) and Proto2 (where - // a .proto always translates to a single class, but you may want to - // explicitly choose the class name). + // Controls the name of the wrapper Java class generated for the .proto file. + // That class will always contain the .proto file's getDescriptor() method as + // well as any top-level extensions defined in the .proto file. + // If java_multiple_files is disabled, then all the other classes from the + // .proto file will be nested inside the single wrapper outer class. JavaOuterClassname *string `protobuf:"bytes,8,opt,name=java_outer_classname,json=javaOuterClassname" json:"java_outer_classname,omitempty"` - // If set true, then the Java code generator will generate a separate .java + // If enabled, then the Java code generator will generate a separate .java // file for each top-level message, enum, and service defined in the .proto - // file. Thus, these types will *not* be nested inside the outer class - // named by java_outer_classname. However, the outer class will still be + // file. Thus, these types will *not* be nested inside the wrapper class + // named by java_outer_classname. However, the wrapper class will still be // generated to contain the file's getDescriptor() method as well as any // top-level extensions defined in the file. JavaMultipleFiles *bool `protobuf:"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0" json:"java_multiple_files,omitempty"` // This option does nothing. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash" json:"java_generate_equals_and_hash,omitempty"` // If set true, then the Java2 code generator will generate code that // throws an exception whenever an attempt is made to assign a non-UTF-8 @@ -1531,7 +1843,7 @@ func (x *FileOptions) GetJavaMultipleFiles() bool { return Default_FileOptions_JavaMultipleFiles } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. func (x *FileOptions) GetJavaGenerateEqualsAndHash() bool { if x != nil && x.JavaGenerateEqualsAndHash != nil { return *x.JavaGenerateEqualsAndHash @@ -1670,10 +1982,12 @@ type MessageOptions struct { // efficient, has fewer features, and is more complicated. // // The message must be defined exactly as follows: - // message Foo { - // option message_set_wire_format = true; - // extensions 4 to max; - // } + // + // message Foo { + // option message_set_wire_format = true; + // extensions 4 to max; + // } + // // Note that the message cannot have any defined fields; MessageSets only // have extensions. // @@ -1692,28 +2006,44 @@ type MessageOptions struct { // for the message, or it will be completely ignored; in the very least, // this is a formalization for deprecating messages. Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // NOTE: Do not set the option in .proto files. Always use the maps syntax + // instead. The option should only be implicitly set by the proto compiler + // parser. + // // Whether the message is an automatically generated map entry type for the // maps field. // // For maps fields: - // map map_field = 1; + // + // map map_field = 1; + // // The parsed descriptor looks like: - // message MapFieldEntry { - // option map_entry = true; - // optional KeyType key = 1; - // optional ValueType value = 2; - // } - // repeated MapFieldEntry map_field = 1; + // + // message MapFieldEntry { + // option map_entry = true; + // optional KeyType key = 1; + // optional ValueType value = 2; + // } + // repeated MapFieldEntry map_field = 1; // // Implementations may choose not to generate the map_entry=true message, but // use a native map in the target language to hold the keys and values. // The reflection APIs in such implementations still need to work as // if the field is a repeated message field. - // - // NOTE: Do not set the option in .proto files. Always use the maps syntax - // instead. The option should only be implicitly set by the proto compiler - // parser. MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` + // Enable the legacy handling of JSON field name conflicts. This lowercases + // and strips underscored from the fields before comparison in proto3 only. + // The new behavior takes `json_name` into account and applies to proto2 as + // well. + // + // This should only be used as a temporary measure against broken builds due + // to the change in behavior for JSON field name conflicts. + // + // TODO(b/261750190) This is legacy behavior we plan to remove once downstream + // teams have had time to migrate. + // + // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. + DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,11,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } @@ -1785,6 +2115,14 @@ func (x *MessageOptions) GetMapEntry() bool { return false } +// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. +func (x *MessageOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { + if x != nil && x.DeprecatedLegacyJsonFieldConflicts != nil { + return *x.DeprecatedLegacyJsonFieldConflicts + } + return false +} + func (x *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption @@ -1800,8 +2138,10 @@ type FieldOptions struct { // The ctype option instructs the C++ code generator to use a different // representation of the field than it normally would. See the specific - // options below. This option is not yet implemented in the open source - // release -- sorry, we'll try to include it in a future version! + // options below. This option is only implemented to support use of + // [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of + // type "bytes" in the open source release -- sorry, we'll try to include + // other types in a future version! Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"` // The packed option can be enabled for repeated primitive fields to enable // a more efficient representation on the wire. Rather than repeatedly @@ -1838,7 +2178,6 @@ type FieldOptions struct { // call from multiple threads concurrently, while non-const methods continue // to require exclusive access. // - // // Note that implementations may choose not to check required fields within // a lazy sub-message. That is, calling IsInitialized() on the outer message // may return true even if the inner message has missing required fields. @@ -1849,7 +2188,14 @@ type FieldOptions struct { // implementation must either *always* check its required fields, or *never* // check its required fields, regardless of whether or not the message has // been parsed. + // + // As of May 2022, lazy verifies the contents of the byte stream during + // parsing. An invalid byte stream will cause the overall parsing to fail. Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` + // unverified_lazy does no correctness checks on the byte stream. This should + // only be used where lazy with verification is prohibitive for performance + // reasons. + UnverifiedLazy *bool `protobuf:"varint,15,opt,name=unverified_lazy,json=unverifiedLazy,def=0" json:"unverified_lazy,omitempty"` // Is this field deprecated? // Depending on the target platform, this can emit Deprecated annotations // for accessors, or it will be completely ignored; in the very least, this @@ -1857,17 +2203,26 @@ type FieldOptions struct { Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` // For Google-internal migration only. Do not use. Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` + // Indicate that the field value should not be printed out when using debug + // formats, e.g. when the field contains sensitive credentials. + DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` + Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` + // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. + Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` + Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } // Default values for FieldOptions fields. const ( - Default_FieldOptions_Ctype = FieldOptions_STRING - Default_FieldOptions_Jstype = FieldOptions_JS_NORMAL - Default_FieldOptions_Lazy = bool(false) - Default_FieldOptions_Deprecated = bool(false) - Default_FieldOptions_Weak = bool(false) + Default_FieldOptions_Ctype = FieldOptions_STRING + Default_FieldOptions_Jstype = FieldOptions_JS_NORMAL + Default_FieldOptions_Lazy = bool(false) + Default_FieldOptions_UnverifiedLazy = bool(false) + Default_FieldOptions_Deprecated = bool(false) + Default_FieldOptions_Weak = bool(false) + Default_FieldOptions_DebugRedact = bool(false) ) func (x *FieldOptions) Reset() { @@ -1930,6 +2285,13 @@ func (x *FieldOptions) GetLazy() bool { return Default_FieldOptions_Lazy } +func (x *FieldOptions) GetUnverifiedLazy() bool { + if x != nil && x.UnverifiedLazy != nil { + return *x.UnverifiedLazy + } + return Default_FieldOptions_UnverifiedLazy +} + func (x *FieldOptions) GetDeprecated() bool { if x != nil && x.Deprecated != nil { return *x.Deprecated @@ -1944,6 +2306,35 @@ func (x *FieldOptions) GetWeak() bool { return Default_FieldOptions_Weak } +func (x *FieldOptions) GetDebugRedact() bool { + if x != nil && x.DebugRedact != nil { + return *x.DebugRedact + } + return Default_FieldOptions_DebugRedact +} + +func (x *FieldOptions) GetRetention() FieldOptions_OptionRetention { + if x != nil && x.Retention != nil { + return *x.Retention + } + return FieldOptions_RETENTION_UNKNOWN +} + +// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. +func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { + if x != nil && x.Target != nil { + return *x.Target + } + return FieldOptions_TARGET_TYPE_UNKNOWN +} + +func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { + if x != nil { + return x.Targets + } + return nil +} + func (x *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption @@ -2014,6 +2405,15 @@ type EnumOptions struct { // for the enum, or it will be completely ignored; in the very least, this // is a formalization for deprecating enums. Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // Enable the legacy handling of JSON field name conflicts. This lowercases + // and strips underscored from the fields before comparison in proto3 only. + // The new behavior takes `json_name` into account and applies to proto2 as + // well. + // TODO(b/261750190) Remove this legacy behavior once downstream teams have + // had time to migrate. + // + // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. + DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,6,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } @@ -2069,6 +2469,14 @@ func (x *EnumOptions) GetDeprecated() bool { return Default_EnumOptions_Deprecated } +// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. +func (x *EnumOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { + if x != nil && x.DeprecatedLegacyJsonFieldConflicts != nil { + return *x.DeprecatedLegacyJsonFieldConflicts + } + return false +} + func (x *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption @@ -2399,43 +2807,48 @@ type SourceCodeInfo struct { // tools. // // For example, say we have a file like: - // message Foo { - // optional string foo = 1; - // } + // + // message Foo { + // optional string foo = 1; + // } + // // Let's look at just the field definition: - // optional string foo = 1; - // ^ ^^ ^^ ^ ^^^ - // a bc de f ghi + // + // optional string foo = 1; + // ^ ^^ ^^ ^ ^^^ + // a bc de f ghi + // // We have the following locations: - // span path represents - // [a,i) [ 4, 0, 2, 0 ] The whole field definition. - // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). - // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). - // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). - // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + // + // span path represents + // [a,i) [ 4, 0, 2, 0 ] The whole field definition. + // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). // // Notes: - // - A location may refer to a repeated field itself (i.e. not to any - // particular index within it). This is used whenever a set of elements are - // logically enclosed in a single code segment. For example, an entire - // extend block (possibly containing multiple extension definitions) will - // have an outer location whose path refers to the "extensions" repeated - // field without an index. - // - Multiple locations may have the same path. This happens when a single - // logical declaration is spread out across multiple places. The most - // obvious example is the "extend" block again -- there may be multiple - // extend blocks in the same scope, each of which will have the same path. - // - A location's span is not always a subset of its parent's span. For - // example, the "extendee" of an extension declaration appears at the - // beginning of the "extend" block and is shared by all extensions within - // the block. - // - Just because a location's span is a subset of some other location's span - // does not mean that it is a descendant. For example, a "group" defines - // both a type and a field in a single declaration. Thus, the locations - // corresponding to the type and field and their components will overlap. - // - Code which tries to interpret locations should probably be designed to - // ignore those that it doesn't understand, as more types of locations could - // be recorded in the future. + // - A location may refer to a repeated field itself (i.e. not to any + // particular index within it). This is used whenever a set of elements are + // logically enclosed in a single code segment. For example, an entire + // extend block (possibly containing multiple extension definitions) will + // have an outer location whose path refers to the "extensions" repeated + // field without an index. + // - Multiple locations may have the same path. This happens when a single + // logical declaration is spread out across multiple places. The most + // obvious example is the "extend" block again -- there may be multiple + // extend blocks in the same scope, each of which will have the same path. + // - A location's span is not always a subset of its parent's span. For + // example, the "extendee" of an extension declaration appears at the + // beginning of the "extend" block and is shared by all extensions within + // the block. + // - Just because a location's span is a subset of some other location's span + // does not mean that it is a descendant. For example, a "group" defines + // both a type and a field in a single declaration. Thus, the locations + // corresponding to the type and field and their components will overlap. + // - Code which tries to interpret locations should probably be designed to + // ignore those that it doesn't understand, as more types of locations could + // be recorded in the future. Location []*SourceCodeInfo_Location `protobuf:"bytes,1,rep,name=location" json:"location,omitempty"` } @@ -2651,6 +3064,108 @@ func (x *DescriptorProto_ReservedRange) GetEnd() int32 { return 0 } +type ExtensionRangeOptions_Declaration struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The extension number declared within the extension range. + Number *int32 `protobuf:"varint,1,opt,name=number" json:"number,omitempty"` + // The fully-qualified name of the extension field. There must be a leading + // dot in front of the full name. + FullName *string `protobuf:"bytes,2,opt,name=full_name,json=fullName" json:"full_name,omitempty"` + // The fully-qualified type name of the extension field. Unlike + // Metadata.type, Declaration.type must have a leading dot for messages + // and enums. + Type *string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"` + // Deprecated. Please use "repeated". + // + // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. + IsRepeated *bool `protobuf:"varint,4,opt,name=is_repeated,json=isRepeated" json:"is_repeated,omitempty"` + // If true, indicates that the number is reserved in the extension range, + // and any extension field with the number will fail to compile. Set this + // when a declared extension field is deleted. + Reserved *bool `protobuf:"varint,5,opt,name=reserved" json:"reserved,omitempty"` + // If true, indicates that the extension must be defined as repeated. + // Otherwise the extension must be defined as optional. + Repeated *bool `protobuf:"varint,6,opt,name=repeated" json:"repeated,omitempty"` +} + +func (x *ExtensionRangeOptions_Declaration) Reset() { + *x = ExtensionRangeOptions_Declaration{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExtensionRangeOptions_Declaration) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExtensionRangeOptions_Declaration) ProtoMessage() {} + +func (x *ExtensionRangeOptions_Declaration) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExtensionRangeOptions_Declaration.ProtoReflect.Descriptor instead. +func (*ExtensionRangeOptions_Declaration) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0} +} + +func (x *ExtensionRangeOptions_Declaration) GetNumber() int32 { + if x != nil && x.Number != nil { + return *x.Number + } + return 0 +} + +func (x *ExtensionRangeOptions_Declaration) GetFullName() string { + if x != nil && x.FullName != nil { + return *x.FullName + } + return "" +} + +func (x *ExtensionRangeOptions_Declaration) GetType() string { + if x != nil && x.Type != nil { + return *x.Type + } + return "" +} + +// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. +func (x *ExtensionRangeOptions_Declaration) GetIsRepeated() bool { + if x != nil && x.IsRepeated != nil { + return *x.IsRepeated + } + return false +} + +func (x *ExtensionRangeOptions_Declaration) GetReserved() bool { + if x != nil && x.Reserved != nil { + return *x.Reserved + } + return false +} + +func (x *ExtensionRangeOptions_Declaration) GetRepeated() bool { + if x != nil && x.Repeated != nil { + return *x.Repeated + } + return false +} + // Range of reserved numeric values. Reserved values may not be used by // entries in the same enum. Reserved ranges may not overlap. // @@ -2669,7 +3184,7 @@ type EnumDescriptorProto_EnumReservedRange struct { func (x *EnumDescriptorProto_EnumReservedRange) Reset() { *x = EnumDescriptorProto_EnumReservedRange{} if protoimpl.UnsafeEnabled { - mi := &file_google_protobuf_descriptor_proto_msgTypes[23] + mi := &file_google_protobuf_descriptor_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2682,7 +3197,7 @@ func (x *EnumDescriptorProto_EnumReservedRange) String() string { func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} func (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message { - mi := &file_google_protobuf_descriptor_proto_msgTypes[23] + mi := &file_google_protobuf_descriptor_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2715,8 +3230,8 @@ func (x *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 { // The name of the uninterpreted option. Each string represents a segment in // a dot-separated name. is_extension is true iff a segment represents an // extension (denoted with parentheses in options specs in .proto files). -// E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents -// "foo.(bar.baz).qux". +// E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents +// "foo.(bar.baz).moo". type UninterpretedOption_NamePart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2729,7 +3244,7 @@ type UninterpretedOption_NamePart struct { func (x *UninterpretedOption_NamePart) Reset() { *x = UninterpretedOption_NamePart{} if protoimpl.UnsafeEnabled { - mi := &file_google_protobuf_descriptor_proto_msgTypes[24] + mi := &file_google_protobuf_descriptor_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2742,7 +3257,7 @@ func (x *UninterpretedOption_NamePart) String() string { func (*UninterpretedOption_NamePart) ProtoMessage() {} func (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message { - mi := &file_google_protobuf_descriptor_proto_msgTypes[24] + mi := &file_google_protobuf_descriptor_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2781,23 +3296,34 @@ type SourceCodeInfo_Location struct { // location. // // Each element is a field number or an index. They form a path from - // the root FileDescriptorProto to the place where the definition. For - // example, this path: - // [ 4, 3, 2, 7, 1 ] + // the root FileDescriptorProto to the place where the definition occurs. + // For example, this path: + // + // [ 4, 3, 2, 7, 1 ] + // // refers to: - // file.message_type(3) // 4, 3 - // .field(7) // 2, 7 - // .name() // 1 + // + // file.message_type(3) // 4, 3 + // .field(7) // 2, 7 + // .name() // 1 + // // This is because FileDescriptorProto.message_type has field number 4: - // repeated DescriptorProto message_type = 4; + // + // repeated DescriptorProto message_type = 4; + // // and DescriptorProto.field has field number 2: - // repeated FieldDescriptorProto field = 2; + // + // repeated FieldDescriptorProto field = 2; + // // and FieldDescriptorProto.name has field number 1: - // optional string name = 1; + // + // optional string name = 1; // // Thus, the above path gives the location of a field name. If we removed // the last element: - // [ 4, 3, 2, 7 ] + // + // [ 4, 3, 2, 7 ] + // // this path refers to the whole field declaration (from the beginning // of the label to the terminating semicolon). Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` @@ -2826,34 +3352,34 @@ type SourceCodeInfo_Location struct { // // Examples: // - // optional int32 foo = 1; // Comment attached to foo. - // // Comment attached to bar. - // optional int32 bar = 2; + // optional int32 foo = 1; // Comment attached to foo. + // // Comment attached to bar. + // optional int32 bar = 2; // - // optional string baz = 3; - // // Comment attached to baz. - // // Another line attached to baz. + // optional string baz = 3; + // // Comment attached to baz. + // // Another line attached to baz. // - // // Comment attached to qux. - // // - // // Another line attached to qux. - // optional double qux = 4; + // // Comment attached to moo. + // // + // // Another line attached to moo. + // optional double moo = 4; // - // // Detached comment for corge. This is not leading or trailing comments - // // to qux or corge because there are blank lines separating it from - // // both. + // // Detached comment for corge. This is not leading or trailing comments + // // to moo or corge because there are blank lines separating it from + // // both. // - // // Detached comment for corge paragraph 2. + // // Detached comment for corge paragraph 2. // - // optional string corge = 5; - // /* Block comment attached - // * to corge. Leading asterisks - // * will be removed. */ - // /* Block comment attached to - // * grault. */ - // optional int32 grault = 6; + // optional string corge = 5; + // /* Block comment attached + // * to corge. Leading asterisks + // * will be removed. */ + // /* Block comment attached to + // * grault. */ + // optional int32 grault = 6; // - // // ignored detached comments. + // // ignored detached comments. LeadingComments *string `protobuf:"bytes,3,opt,name=leading_comments,json=leadingComments" json:"leading_comments,omitempty"` TrailingComments *string `protobuf:"bytes,4,opt,name=trailing_comments,json=trailingComments" json:"trailing_comments,omitempty"` LeadingDetachedComments []string `protobuf:"bytes,6,rep,name=leading_detached_comments,json=leadingDetachedComments" json:"leading_detached_comments,omitempty"` @@ -2862,7 +3388,7 @@ type SourceCodeInfo_Location struct { func (x *SourceCodeInfo_Location) Reset() { *x = SourceCodeInfo_Location{} if protoimpl.UnsafeEnabled { - mi := &file_google_protobuf_descriptor_proto_msgTypes[25] + mi := &file_google_protobuf_descriptor_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2875,7 +3401,7 @@ func (x *SourceCodeInfo_Location) String() string { func (*SourceCodeInfo_Location) ProtoMessage() {} func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { - mi := &file_google_protobuf_descriptor_proto_msgTypes[25] + mi := &file_google_protobuf_descriptor_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2940,15 +3466,16 @@ type GeneratedCodeInfo_Annotation struct { // that relates to the identified object. Begin *int32 `protobuf:"varint,3,opt,name=begin" json:"begin,omitempty"` // Identifies the ending offset in bytes in the generated code that - // relates to the identified offset. The end offset should be one past + // relates to the identified object. The end offset should be one past // the last relevant byte (so the length of the text = end - begin). - End *int32 `protobuf:"varint,4,opt,name=end" json:"end,omitempty"` + End *int32 `protobuf:"varint,4,opt,name=end" json:"end,omitempty"` + Semantic *GeneratedCodeInfo_Annotation_Semantic `protobuf:"varint,5,opt,name=semantic,enum=google.protobuf.GeneratedCodeInfo_Annotation_Semantic" json:"semantic,omitempty"` } func (x *GeneratedCodeInfo_Annotation) Reset() { *x = GeneratedCodeInfo_Annotation{} if protoimpl.UnsafeEnabled { - mi := &file_google_protobuf_descriptor_proto_msgTypes[26] + mi := &file_google_protobuf_descriptor_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2961,7 +3488,7 @@ func (x *GeneratedCodeInfo_Annotation) String() string { func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { - mi := &file_google_protobuf_descriptor_proto_msgTypes[26] + mi := &file_google_protobuf_descriptor_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3005,6 +3532,13 @@ func (x *GeneratedCodeInfo_Annotation) GetEnd() int32 { return 0 } +func (x *GeneratedCodeInfo_Annotation) GetSemantic() GeneratedCodeInfo_Annotation_Semantic { + if x != nil && x.Semantic != nil { + return *x.Semantic + } + return GeneratedCodeInfo_Annotation_NONE +} + var File_google_protobuf_descriptor_proto protoreflect.FileDescriptor var file_google_protobuf_descriptor_proto_rawDesc = []byte{ @@ -3016,7 +3550,7 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x04, 0x66, 0x69, - 0x6c, 0x65, 0x22, 0xe4, 0x04, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x6c, 0x65, 0x22, 0xfe, 0x04, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, @@ -3054,330 +3588,423 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x22, 0xb9, 0x06, 0x0a, 0x0f, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x43, - 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x6e, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, - 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, + 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x65, 0x63, - 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, - 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, + 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, - 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x37, 0x0a, 0x0d, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x7c, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, - 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, - 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, - 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, - 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, - 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, - 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, - 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, - 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, - 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, - 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, - 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, - 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, - 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, - 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, - 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, - 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, - 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, - 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, - 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, - 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, - 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, + 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, + 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, + 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, + 0xad, 0x04, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, + 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, + 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, + 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x0a, + 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, + 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x34, + 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, + 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, + 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, - 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, - 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, + 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, + 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, + 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, + 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, + 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, + 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, + 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, + 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, + 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, + 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, + 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, + 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, + 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, + 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, + 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, + 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, + 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, + 0x44, 0x10, 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, + 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, + 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, + 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, + 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, - 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, - 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, - 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, - 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, - 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, - 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, - 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, - 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, - 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, - 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, - 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, - 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, - 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, - 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, - 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, - 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, - 0x70, 0x68, 0x70, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, - 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, - 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, - 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x77, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, - 0x68, 0x70, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, - 0x0d, 0x70, 0x68, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x14, 0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, - 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x72, 0x75, 0x62, 0x79, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, - 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, - 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, - 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, - 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, - 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, - 0x10, 0x27, 0x22, 0xd1, 0x02, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x12, 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, - 0x6c, 0x73, 0x65, 0x52, 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, - 0x72, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, - 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, - 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, - 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, - 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0xe2, 0x03, 0x0a, 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, - 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, + 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, + 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, + 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, + 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, + 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, + 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, + 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, + 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, + 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, + 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, + 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, + 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, + 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, + 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, + 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, + 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, + 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, + 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, + 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, + 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, + 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, + 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, + 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, + 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, + 0x61, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x73, 0x77, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, + 0x28, 0x0a, 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, + 0x0a, 0x16, 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, + 0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, + 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, + 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, + 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, + 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, + 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, + 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, + 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, + 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, + 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, + 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x85, 0x09, 0x0a, + 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, + 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, + 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, + 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, + 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, + 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, + 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, + 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, + 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, + 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, + 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, + 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x12, 0x48, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, - 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, - 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, - 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, - 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, - 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, - 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, - 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, - 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, - 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x52, 0x44, 0x10, - 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x49, 0x45, 0x43, - 0x45, 0x10, 0x02, 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, - 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, - 0x4a, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4a, - 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, - 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x73, 0x0a, 0x0c, 0x4f, - 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, + 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, - 0x22, 0xc0, 0x01, 0x0a, 0x0b, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x69, 0x61, - 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, - 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, - 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, - 0x05, 0x10, 0x06, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, + 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, + 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, + 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a, + 0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, + 0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, + 0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, + 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, + 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, + 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, + 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05, + 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54, + 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, + 0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, + 0x08, 0x04, 0x10, 0x05, 0x22, 0x73, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, + 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, + 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x98, 0x02, 0x0a, 0x0b, 0x45, 0x6e, + 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, + 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, + 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, + 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, + 0x08, 0x05, 0x10, 0x06, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, + 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, + 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, + 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, + 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, - 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, + 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, @@ -3385,97 +4012,95 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, - 0x80, 0x80, 0x80, 0x02, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, - 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, - 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, - 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x80, 0x80, 0x80, 0x02, 0x22, 0xe0, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, + 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, + 0x11, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, + 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, + 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, + 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, + 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, + 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, + 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, + 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, + 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, - 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, - 0x80, 0x80, 0x02, 0x22, 0xe0, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, - 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x11, - 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, - 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, - 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, 0x69, - 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, - 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, - 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, 0x65, - 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, - 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, - 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, 0x44, - 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x49, - 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, 0x07, - 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, - 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, - 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, - 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x50, - 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, - 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, - 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, 0x0a, - 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x42, - 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x74, - 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, - 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd1, 0x01, - 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x1a, 0x6d, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, - 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x67, - 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12, - 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, - 0x64, 0x42, 0x7e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, + 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, + 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, + 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, + 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, + 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, + 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, + 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, + 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, + 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, + 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, + 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, + 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08, 0x73, + 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61, 0x6e, + 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, + 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x10, + 0x02, 0x42, 0x7e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, @@ -3498,92 +4123,103 @@ func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { return file_google_protobuf_descriptor_proto_rawDescData } -var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 27) +var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 10) +var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 28) var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ - (FieldDescriptorProto_Type)(0), // 0: google.protobuf.FieldDescriptorProto.Type - (FieldDescriptorProto_Label)(0), // 1: google.protobuf.FieldDescriptorProto.Label - (FileOptions_OptimizeMode)(0), // 2: google.protobuf.FileOptions.OptimizeMode - (FieldOptions_CType)(0), // 3: google.protobuf.FieldOptions.CType - (FieldOptions_JSType)(0), // 4: google.protobuf.FieldOptions.JSType - (MethodOptions_IdempotencyLevel)(0), // 5: google.protobuf.MethodOptions.IdempotencyLevel - (*FileDescriptorSet)(nil), // 6: google.protobuf.FileDescriptorSet - (*FileDescriptorProto)(nil), // 7: google.protobuf.FileDescriptorProto - (*DescriptorProto)(nil), // 8: google.protobuf.DescriptorProto - (*ExtensionRangeOptions)(nil), // 9: google.protobuf.ExtensionRangeOptions - (*FieldDescriptorProto)(nil), // 10: google.protobuf.FieldDescriptorProto - (*OneofDescriptorProto)(nil), // 11: google.protobuf.OneofDescriptorProto - (*EnumDescriptorProto)(nil), // 12: google.protobuf.EnumDescriptorProto - (*EnumValueDescriptorProto)(nil), // 13: google.protobuf.EnumValueDescriptorProto - (*ServiceDescriptorProto)(nil), // 14: google.protobuf.ServiceDescriptorProto - (*MethodDescriptorProto)(nil), // 15: google.protobuf.MethodDescriptorProto - (*FileOptions)(nil), // 16: google.protobuf.FileOptions - (*MessageOptions)(nil), // 17: google.protobuf.MessageOptions - (*FieldOptions)(nil), // 18: google.protobuf.FieldOptions - (*OneofOptions)(nil), // 19: google.protobuf.OneofOptions - (*EnumOptions)(nil), // 20: google.protobuf.EnumOptions - (*EnumValueOptions)(nil), // 21: google.protobuf.EnumValueOptions - (*ServiceOptions)(nil), // 22: google.protobuf.ServiceOptions - (*MethodOptions)(nil), // 23: google.protobuf.MethodOptions - (*UninterpretedOption)(nil), // 24: google.protobuf.UninterpretedOption - (*SourceCodeInfo)(nil), // 25: google.protobuf.SourceCodeInfo - (*GeneratedCodeInfo)(nil), // 26: google.protobuf.GeneratedCodeInfo - (*DescriptorProto_ExtensionRange)(nil), // 27: google.protobuf.DescriptorProto.ExtensionRange - (*DescriptorProto_ReservedRange)(nil), // 28: google.protobuf.DescriptorProto.ReservedRange - (*EnumDescriptorProto_EnumReservedRange)(nil), // 29: google.protobuf.EnumDescriptorProto.EnumReservedRange - (*UninterpretedOption_NamePart)(nil), // 30: google.protobuf.UninterpretedOption.NamePart - (*SourceCodeInfo_Location)(nil), // 31: google.protobuf.SourceCodeInfo.Location - (*GeneratedCodeInfo_Annotation)(nil), // 32: google.protobuf.GeneratedCodeInfo.Annotation + (ExtensionRangeOptions_VerificationState)(0), // 0: google.protobuf.ExtensionRangeOptions.VerificationState + (FieldDescriptorProto_Type)(0), // 1: google.protobuf.FieldDescriptorProto.Type + (FieldDescriptorProto_Label)(0), // 2: google.protobuf.FieldDescriptorProto.Label + (FileOptions_OptimizeMode)(0), // 3: google.protobuf.FileOptions.OptimizeMode + (FieldOptions_CType)(0), // 4: google.protobuf.FieldOptions.CType + (FieldOptions_JSType)(0), // 5: google.protobuf.FieldOptions.JSType + (FieldOptions_OptionRetention)(0), // 6: google.protobuf.FieldOptions.OptionRetention + (FieldOptions_OptionTargetType)(0), // 7: google.protobuf.FieldOptions.OptionTargetType + (MethodOptions_IdempotencyLevel)(0), // 8: google.protobuf.MethodOptions.IdempotencyLevel + (GeneratedCodeInfo_Annotation_Semantic)(0), // 9: google.protobuf.GeneratedCodeInfo.Annotation.Semantic + (*FileDescriptorSet)(nil), // 10: google.protobuf.FileDescriptorSet + (*FileDescriptorProto)(nil), // 11: google.protobuf.FileDescriptorProto + (*DescriptorProto)(nil), // 12: google.protobuf.DescriptorProto + (*ExtensionRangeOptions)(nil), // 13: google.protobuf.ExtensionRangeOptions + (*FieldDescriptorProto)(nil), // 14: google.protobuf.FieldDescriptorProto + (*OneofDescriptorProto)(nil), // 15: google.protobuf.OneofDescriptorProto + (*EnumDescriptorProto)(nil), // 16: google.protobuf.EnumDescriptorProto + (*EnumValueDescriptorProto)(nil), // 17: google.protobuf.EnumValueDescriptorProto + (*ServiceDescriptorProto)(nil), // 18: google.protobuf.ServiceDescriptorProto + (*MethodDescriptorProto)(nil), // 19: google.protobuf.MethodDescriptorProto + (*FileOptions)(nil), // 20: google.protobuf.FileOptions + (*MessageOptions)(nil), // 21: google.protobuf.MessageOptions + (*FieldOptions)(nil), // 22: google.protobuf.FieldOptions + (*OneofOptions)(nil), // 23: google.protobuf.OneofOptions + (*EnumOptions)(nil), // 24: google.protobuf.EnumOptions + (*EnumValueOptions)(nil), // 25: google.protobuf.EnumValueOptions + (*ServiceOptions)(nil), // 26: google.protobuf.ServiceOptions + (*MethodOptions)(nil), // 27: google.protobuf.MethodOptions + (*UninterpretedOption)(nil), // 28: google.protobuf.UninterpretedOption + (*SourceCodeInfo)(nil), // 29: google.protobuf.SourceCodeInfo + (*GeneratedCodeInfo)(nil), // 30: google.protobuf.GeneratedCodeInfo + (*DescriptorProto_ExtensionRange)(nil), // 31: google.protobuf.DescriptorProto.ExtensionRange + (*DescriptorProto_ReservedRange)(nil), // 32: google.protobuf.DescriptorProto.ReservedRange + (*ExtensionRangeOptions_Declaration)(nil), // 33: google.protobuf.ExtensionRangeOptions.Declaration + (*EnumDescriptorProto_EnumReservedRange)(nil), // 34: google.protobuf.EnumDescriptorProto.EnumReservedRange + (*UninterpretedOption_NamePart)(nil), // 35: google.protobuf.UninterpretedOption.NamePart + (*SourceCodeInfo_Location)(nil), // 36: google.protobuf.SourceCodeInfo.Location + (*GeneratedCodeInfo_Annotation)(nil), // 37: google.protobuf.GeneratedCodeInfo.Annotation } var file_google_protobuf_descriptor_proto_depIdxs = []int32{ - 7, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto - 8, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto - 12, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto - 14, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto - 10, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto - 16, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions - 25, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo - 10, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto - 10, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto - 8, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto - 12, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto - 27, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange - 11, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto - 17, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions - 28, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange - 24, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 1, // 16: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label - 0, // 17: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type - 18, // 18: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions - 19, // 19: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions - 13, // 20: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto - 20, // 21: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions - 29, // 22: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange - 21, // 23: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions - 15, // 24: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto - 22, // 25: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions - 23, // 26: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions - 2, // 27: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode - 24, // 28: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 24, // 29: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 3, // 30: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType - 4, // 31: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType - 24, // 32: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 24, // 33: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 24, // 34: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 24, // 35: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 24, // 36: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 5, // 37: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel - 24, // 38: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 30, // 39: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart - 31, // 40: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location - 32, // 41: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation - 9, // 42: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions - 43, // [43:43] is the sub-list for method output_type - 43, // [43:43] is the sub-list for method input_type - 43, // [43:43] is the sub-list for extension type_name - 43, // [43:43] is the sub-list for extension extendee - 0, // [0:43] is the sub-list for field type_name + 11, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto + 12, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto + 16, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto + 18, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto + 14, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto + 20, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions + 29, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo + 14, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto + 14, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto + 12, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto + 16, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto + 31, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange + 15, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto + 21, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions + 32, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange + 28, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 33, // 16: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration + 0, // 17: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState + 2, // 18: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label + 1, // 19: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type + 22, // 20: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions + 23, // 21: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions + 17, // 22: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto + 24, // 23: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions + 34, // 24: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange + 25, // 25: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions + 19, // 26: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto + 26, // 27: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions + 27, // 28: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions + 3, // 29: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode + 28, // 30: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 28, // 31: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 4, // 32: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType + 5, // 33: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType + 6, // 34: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention + 7, // 35: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType + 7, // 36: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType + 28, // 37: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 28, // 38: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 28, // 39: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 28, // 40: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 28, // 41: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 8, // 42: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel + 28, // 43: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 35, // 44: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart + 36, // 45: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location + 37, // 46: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation + 13, // 47: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions + 9, // 48: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic + 49, // [49:49] is the sub-list for method output_type + 49, // [49:49] is the sub-list for method input_type + 49, // [49:49] is the sub-list for extension type_name + 49, // [49:49] is the sub-list for extension extendee + 0, // [0:49] is the sub-list for field type_name } func init() { file_google_protobuf_descriptor_proto_init() } @@ -3887,7 +4523,7 @@ func file_google_protobuf_descriptor_proto_init() { } } file_google_protobuf_descriptor_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { + switch v := v.(*ExtensionRangeOptions_Declaration); i { case 0: return &v.state case 1: @@ -3899,7 +4535,7 @@ func file_google_protobuf_descriptor_proto_init() { } } file_google_protobuf_descriptor_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UninterpretedOption_NamePart); i { + switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { case 0: return &v.state case 1: @@ -3911,7 +4547,7 @@ func file_google_protobuf_descriptor_proto_init() { } } file_google_protobuf_descriptor_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SourceCodeInfo_Location); i { + switch v := v.(*UninterpretedOption_NamePart); i { case 0: return &v.state case 1: @@ -3923,6 +4559,18 @@ func file_google_protobuf_descriptor_proto_init() { } } file_google_protobuf_descriptor_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SourceCodeInfo_Location); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GeneratedCodeInfo_Annotation); i { case 0: return &v.state @@ -3940,8 +4588,8 @@ func file_google_protobuf_descriptor_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_descriptor_proto_rawDesc, - NumEnums: 6, - NumMessages: 27, + NumEnums: 10, + NumMessages: 28, NumExtensions: 0, NumServices: 0, }, diff --git a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go index 8c10797b905e..580b232f477a 100644 --- a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go +++ b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go @@ -37,8 +37,7 @@ // It is functionally a tuple of the full name of the remote message type and // the serialized bytes of the remote message value. // -// -// Constructing an Any +// # Constructing an Any // // An Any message containing another message value is constructed using New: // @@ -48,8 +47,7 @@ // } // ... // make use of any // -// -// Unmarshaling an Any +// # Unmarshaling an Any // // With a populated Any message, the underlying message can be serialized into // a remote concrete message value in a few ways. @@ -95,8 +93,7 @@ // listed in the case clauses are linked into the Go binary and therefore also // registered in the global registry. // -// -// Type checking an Any +// # Type checking an Any // // In order to type check whether an Any message represents some other message, // then use the MessageIs method: @@ -115,7 +112,6 @@ // } // ... // make use of m // } -// package anypb import ( @@ -136,45 +132,49 @@ import ( // // Example 1: Pack and unpack a message in C++. // -// Foo foo = ...; -// Any any; -// any.PackFrom(foo); -// ... -// if (any.UnpackTo(&foo)) { -// ... -// } +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } // // Example 2: Pack and unpack a message in Java. // -// Foo foo = ...; -// Any any = Any.pack(foo); -// ... -// if (any.is(Foo.class)) { -// foo = any.unpack(Foo.class); -// } -// -// Example 3: Pack and unpack a message in Python. -// -// foo = Foo(...) -// any = Any() -// any.Pack(foo) -// ... -// if any.Is(Foo.DESCRIPTOR): -// any.Unpack(foo) -// ... -// -// Example 4: Pack and unpack a message in Go -// -// foo := &pb.Foo{...} -// any, err := anypb.New(foo) -// if err != nil { -// ... -// } -// ... -// foo := &pb.Foo{} -// if err := any.UnmarshalTo(foo); err != nil { -// ... -// } +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// // or ... +// if (any.isSameTypeAs(Foo.getDefaultInstance())) { +// foo = any.unpack(Foo.getDefaultInstance()); +// } +// +// Example 3: Pack and unpack a message in Python. +// +// foo = Foo(...) +// any = Any() +// any.Pack(foo) +// ... +// if any.Is(Foo.DESCRIPTOR): +// any.Unpack(foo) +// ... +// +// Example 4: Pack and unpack a message in Go +// +// foo := &pb.Foo{...} +// any, err := anypb.New(foo) +// if err != nil { +// ... +// } +// ... +// foo := &pb.Foo{} +// if err := any.UnmarshalTo(foo); err != nil { +// ... +// } // // The pack methods provided by protobuf library will by default use // 'type.googleapis.com/full.type.name' as the type URL and the unpack @@ -182,35 +182,33 @@ import ( // in the type URL, for example "foo.bar.com/x/y.z" will yield type // name "y.z". // -// // JSON // ==== // The JSON representation of an `Any` value uses the regular // representation of the deserialized, embedded message, with an // additional field `@type` which contains the type URL. Example: // -// package google.profile; -// message Person { -// string first_name = 1; -// string last_name = 2; -// } +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } // -// { -// "@type": "type.googleapis.com/google.profile.Person", -// "firstName": , -// "lastName": -// } +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": , +// "lastName": +// } // // If the embedded message type is well-known and has a custom JSON // representation, that representation will be embedded adding a field // `value` which holds the custom JSON in addition to the `@type` // field. Example (for message [google.protobuf.Duration][]): // -// { -// "@type": "type.googleapis.com/google.protobuf.Duration", -// "value": "1.212s" -// } -// +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } type Any struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -228,14 +226,14 @@ type Any struct { // scheme `http`, `https`, or no scheme, one can optionally set up a type // server that maps type URLs to message definitions as follows: // - // * If no scheme is provided, `https` is assumed. - // * An HTTP GET on the URL must yield a [google.protobuf.Type][] - // value in binary format, or produce an error. - // * Applications are allowed to cache lookup results based on the - // URL, or have them precompiled into a binary to avoid any - // lookup. Therefore, binary compatibility needs to be preserved - // on changes to types. (Use versioned type names to manage - // breaking changes.) + // - If no scheme is provided, `https` is assumed. + // - An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // - Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) // // Note: this functionality is not currently available in the official // protobuf release, and it is not used for type URLs beginning with @@ -243,7 +241,6 @@ type Any struct { // // Schemes other than `http`, `https` (or the empty scheme) might be // used with implementation specific semantics. - // TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` // Must be a valid serialized protocol buffer of the above specified type. Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` diff --git a/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go b/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go index a583ca2f6c77..df709a8dd4c2 100644 --- a/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go +++ b/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go @@ -35,8 +35,7 @@ // // The Duration message represents a signed span of time. // -// -// Conversion to a Go Duration +// # Conversion to a Go Duration // // The AsDuration method can be used to convert a Duration message to a // standard Go time.Duration value: @@ -65,15 +64,13 @@ // the resulting value to the closest representable value (e.g., math.MaxInt64 // for positive overflow and math.MinInt64 for negative overflow). // -// -// Conversion from a Go Duration +// # Conversion from a Go Duration // // The durationpb.New function can be used to construct a Duration message // from a standard Go time.Duration value: // // dur := durationpb.New(d) // ... // make use of d as a *durationpb.Duration -// package durationpb import ( @@ -96,43 +93,43 @@ import ( // // Example 1: Compute Duration from two Timestamps in pseudo code. // -// Timestamp start = ...; -// Timestamp end = ...; -// Duration duration = ...; +// Timestamp start = ...; +// Timestamp end = ...; +// Duration duration = ...; // -// duration.seconds = end.seconds - start.seconds; -// duration.nanos = end.nanos - start.nanos; +// duration.seconds = end.seconds - start.seconds; +// duration.nanos = end.nanos - start.nanos; // -// if (duration.seconds < 0 && duration.nanos > 0) { -// duration.seconds += 1; -// duration.nanos -= 1000000000; -// } else if (duration.seconds > 0 && duration.nanos < 0) { -// duration.seconds -= 1; -// duration.nanos += 1000000000; -// } +// if (duration.seconds < 0 && duration.nanos > 0) { +// duration.seconds += 1; +// duration.nanos -= 1000000000; +// } else if (duration.seconds > 0 && duration.nanos < 0) { +// duration.seconds -= 1; +// duration.nanos += 1000000000; +// } // // Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. // -// Timestamp start = ...; -// Duration duration = ...; -// Timestamp end = ...; +// Timestamp start = ...; +// Duration duration = ...; +// Timestamp end = ...; // -// end.seconds = start.seconds + duration.seconds; -// end.nanos = start.nanos + duration.nanos; +// end.seconds = start.seconds + duration.seconds; +// end.nanos = start.nanos + duration.nanos; // -// if (end.nanos < 0) { -// end.seconds -= 1; -// end.nanos += 1000000000; -// } else if (end.nanos >= 1000000000) { -// end.seconds += 1; -// end.nanos -= 1000000000; -// } +// if (end.nanos < 0) { +// end.seconds -= 1; +// end.nanos += 1000000000; +// } else if (end.nanos >= 1000000000) { +// end.seconds += 1; +// end.nanos -= 1000000000; +// } // // Example 3: Compute Duration from datetime.timedelta in Python. // -// td = datetime.timedelta(days=3, minutes=10) -// duration = Duration() -// duration.FromTimedelta(td) +// td = datetime.timedelta(days=3, minutes=10) +// duration = Duration() +// duration.FromTimedelta(td) // // # JSON Mapping // @@ -143,8 +140,6 @@ import ( // encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should // be expressed in JSON format as "3.000000001s", and 3 seconds and 1 // microsecond should be expressed in JSON format as "3.000001s". -// -// type Duration struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/vendor/google.golang.org/protobuf/types/known/emptypb/empty.pb.go b/vendor/google.golang.org/protobuf/types/known/emptypb/empty.pb.go index e7fcea31f627..9a7277ba394c 100644 --- a/vendor/google.golang.org/protobuf/types/known/emptypb/empty.pb.go +++ b/vendor/google.golang.org/protobuf/types/known/emptypb/empty.pb.go @@ -44,11 +44,9 @@ import ( // empty messages in your APIs. A typical example is to use it as the request // or the response type of an API method. For instance: // -// service Foo { -// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); -// } -// -// The JSON representation for `Empty` is empty JSON object `{}`. +// service Foo { +// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); +// } type Empty struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go index c9ae92132aad..81511a3363ee 100644 --- a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go +++ b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go @@ -36,8 +36,7 @@ // The Timestamp message represents a timestamp, // an instant in time since the Unix epoch (January 1st, 1970). // -// -// Conversion to a Go Time +// # Conversion to a Go Time // // The AsTime method can be used to convert a Timestamp message to a // standard Go time.Time value in UTC: @@ -59,8 +58,7 @@ // ... // handle error // } // -// -// Conversion from a Go Time +// # Conversion from a Go Time // // The timestamppb.New function can be used to construct a Timestamp message // from a standard Go time.Time value: @@ -72,7 +70,6 @@ // // ts := timestamppb.Now() // ... // make use of ts as a *timestamppb.Timestamp -// package timestamppb import ( @@ -101,52 +98,50 @@ import ( // // Example 1: Compute Timestamp from POSIX `time()`. // -// Timestamp timestamp; -// timestamp.set_seconds(time(NULL)); -// timestamp.set_nanos(0); +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); // // Example 2: Compute Timestamp from POSIX `gettimeofday()`. // -// struct timeval tv; -// gettimeofday(&tv, NULL); +// struct timeval tv; +// gettimeofday(&tv, NULL); // -// Timestamp timestamp; -// timestamp.set_seconds(tv.tv_sec); -// timestamp.set_nanos(tv.tv_usec * 1000); +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); // // Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. // -// FILETIME ft; -// GetSystemTimeAsFileTime(&ft); -// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; // -// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z -// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. -// Timestamp timestamp; -// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); -// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); // // Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. // -// long millis = System.currentTimeMillis(); -// -// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) -// .setNanos((int) ((millis % 1000) * 1000000)).build(); +// long millis = System.currentTimeMillis(); // +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); // // Example 5: Compute Timestamp from Java `Instant.now()`. // -// Instant now = Instant.now(); -// -// Timestamp timestamp = -// Timestamp.newBuilder().setSeconds(now.getEpochSecond()) -// .setNanos(now.getNano()).build(); +// Instant now = Instant.now(); // +// Timestamp timestamp = +// Timestamp.newBuilder().setSeconds(now.getEpochSecond()) +// .setNanos(now.getNano()).build(); // // Example 6: Compute Timestamp from current time in Python. // -// timestamp = Timestamp() -// timestamp.GetCurrentTime() +// timestamp = Timestamp() +// timestamp.GetCurrentTime() // // # JSON Mapping // @@ -172,10 +167,8 @@ import ( // [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with // the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use // the Joda Time's [`ISODateTimeFormat.dateTime()`]( -// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D +// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() // ) to obtain a formatter capable of generating timestamps in this format. -// -// type Timestamp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/vendor/modules.txt b/vendor/modules.txt index 2da922a8903b..6325bcd72ac4 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -53,26 +53,60 @@ github.com/Azure/go-autorest/logger # github.com/Azure/go-autorest/tracing v0.6.0 ## explicit; go 1.12 github.com/Azure/go-autorest/tracing +# github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 +## explicit; go 1.13 +github.com/ProtonMail/go-crypto/bitcurves +github.com/ProtonMail/go-crypto/brainpool +github.com/ProtonMail/go-crypto/eax +github.com/ProtonMail/go-crypto/internal/byteutil +github.com/ProtonMail/go-crypto/ocb +github.com/ProtonMail/go-crypto/openpgp +github.com/ProtonMail/go-crypto/openpgp/aes/keywrap +github.com/ProtonMail/go-crypto/openpgp/armor +github.com/ProtonMail/go-crypto/openpgp/ecdh +github.com/ProtonMail/go-crypto/openpgp/ecdsa +github.com/ProtonMail/go-crypto/openpgp/eddsa +github.com/ProtonMail/go-crypto/openpgp/elgamal +github.com/ProtonMail/go-crypto/openpgp/errors +github.com/ProtonMail/go-crypto/openpgp/internal/algorithm +github.com/ProtonMail/go-crypto/openpgp/internal/ecc +github.com/ProtonMail/go-crypto/openpgp/internal/encoding +github.com/ProtonMail/go-crypto/openpgp/packet +github.com/ProtonMail/go-crypto/openpgp/s2k # github.com/agext/levenshtein v1.2.3 ## explicit github.com/agext/levenshtein # github.com/apparentlymart/go-textseg v1.0.0 ## explicit github.com/apparentlymart/go-textseg/textseg -# github.com/apparentlymart/go-textseg/v13 v13.0.0 +# github.com/apparentlymart/go-textseg/v15 v15.0.0 ## explicit; go 1.16 -github.com/apparentlymart/go-textseg/v13/textseg -# github.com/btubbs/datetime v0.1.0 +github.com/apparentlymart/go-textseg/v15/textseg +# github.com/btubbs/datetime v0.1.1 ## explicit github.com/btubbs/datetime +# github.com/cloudflare/circl v1.3.3 +## explicit; go 1.19 +github.com/cloudflare/circl/dh/x25519 +github.com/cloudflare/circl/dh/x448 +github.com/cloudflare/circl/ecc/goldilocks +github.com/cloudflare/circl/internal/conv +github.com/cloudflare/circl/internal/sha3 +github.com/cloudflare/circl/math +github.com/cloudflare/circl/math/fp25519 +github.com/cloudflare/circl/math/fp448 +github.com/cloudflare/circl/math/mlsbset +github.com/cloudflare/circl/sign +github.com/cloudflare/circl/sign/ed25519 +github.com/cloudflare/circl/sign/ed448 # github.com/dave/jennifer v1.6.0 ## explicit; go 1.19 github.com/dave/jennifer/jen # github.com/davecgh/go-spew v1.1.1 ## explicit github.com/davecgh/go-spew/spew -# github.com/fatih/color v1.13.0 -## explicit; go 1.13 +# github.com/fatih/color v1.15.0 +## explicit; go 1.17 github.com/fatih/color # github.com/gofrs/uuid v4.4.0+incompatible ## explicit @@ -80,7 +114,7 @@ github.com/gofrs/uuid # github.com/golang-jwt/jwt/v4 v4.5.0 ## explicit; go 1.16 github.com/golang-jwt/jwt/v4 -# github.com/golang/protobuf v1.5.2 +# github.com/golang/protobuf v1.5.3 ## explicit; go 1.9 github.com/golang/protobuf/jsonpb github.com/golang/protobuf/proto @@ -96,7 +130,7 @@ github.com/google/go-cmp/cmp/internal/diff github.com/google/go-cmp/cmp/internal/flags github.com/google/go-cmp/cmp/internal/function github.com/google/go-cmp/cmp/internal/value -# github.com/google/uuid v1.3.0 +# github.com/google/uuid v1.3.1 ## explicit github.com/google/uuid # github.com/hashicorp/errwrap v1.1.0 @@ -122,7 +156,7 @@ github.com/hashicorp/go-azure-helpers/resourcemanager/tags github.com/hashicorp/go-azure-helpers/resourcemanager/zones github.com/hashicorp/go-azure-helpers/sender github.com/hashicorp/go-azure-helpers/storage -# github.com/hashicorp/go-azure-sdk v0.20230906.1160501 +# github.com/hashicorp/go-azure-sdk v0.20230907.1113401 ## explicit; go 1.19 github.com/hashicorp/go-azure-sdk/resource-manager/aad/2021-05-01/domainservices github.com/hashicorp/go-azure-sdk/resource-manager/aadb2c/2021-04-01-preview @@ -923,16 +957,18 @@ github.com/hashicorp/go-cty/cty/gocty github.com/hashicorp/go-cty/cty/json github.com/hashicorp/go-cty/cty/msgpack github.com/hashicorp/go-cty/cty/set -# github.com/hashicorp/go-hclog v1.4.0 +# github.com/hashicorp/go-hclog v1.5.0 ## explicit; go 1.13 github.com/hashicorp/go-hclog # github.com/hashicorp/go-multierror v1.1.1 ## explicit; go 1.13 github.com/hashicorp/go-multierror -# github.com/hashicorp/go-plugin v1.4.8 +# github.com/hashicorp/go-plugin v1.5.1 ## explicit; go 1.17 github.com/hashicorp/go-plugin +github.com/hashicorp/go-plugin/internal/cmdrunner github.com/hashicorp/go-plugin/internal/plugin +github.com/hashicorp/go-plugin/runner # github.com/hashicorp/go-retryablehttp v0.7.4 ## explicit; go 1.13 github.com/hashicorp/go-retryablehttp @@ -942,8 +978,8 @@ github.com/hashicorp/go-uuid # github.com/hashicorp/go-version v1.6.0 ## explicit github.com/hashicorp/go-version -# github.com/hashicorp/hc-install v0.5.0 -## explicit; go 1.16 +# github.com/hashicorp/hc-install v0.6.0 +## explicit; go 1.18 github.com/hashicorp/hc-install github.com/hashicorp/hc-install/checkpoint github.com/hashicorp/hc-install/errors @@ -958,7 +994,7 @@ github.com/hashicorp/hc-install/product github.com/hashicorp/hc-install/releases github.com/hashicorp/hc-install/src github.com/hashicorp/hc-install/version -# github.com/hashicorp/hcl/v2 v2.16.2 +# github.com/hashicorp/hcl/v2 v2.18.0 ## explicit; go 1.18 github.com/hashicorp/hcl/v2 github.com/hashicorp/hcl/v2/ext/customdecode @@ -971,15 +1007,15 @@ github.com/hashicorp/hcl2/hclwrite # github.com/hashicorp/logutils v1.0.0 ## explicit github.com/hashicorp/logutils -# github.com/hashicorp/terraform-exec v0.18.1 +# github.com/hashicorp/terraform-exec v0.19.0 ## explicit; go 1.18 github.com/hashicorp/terraform-exec/internal/version github.com/hashicorp/terraform-exec/tfexec -# github.com/hashicorp/terraform-json v0.16.0 +# github.com/hashicorp/terraform-json v0.17.1 ## explicit; go 1.18 github.com/hashicorp/terraform-json -# github.com/hashicorp/terraform-plugin-go v0.14.3 -## explicit; go 1.18 +# github.com/hashicorp/terraform-plugin-go v0.19.0 +## explicit; go 1.20 github.com/hashicorp/terraform-plugin-go/internal/logging github.com/hashicorp/terraform-plugin-go/tfprotov5 github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/diag @@ -996,15 +1032,15 @@ github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/tfplugin6 github.com/hashicorp/terraform-plugin-go/tfprotov6/internal/toproto github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server github.com/hashicorp/terraform-plugin-go/tftypes -# github.com/hashicorp/terraform-plugin-log v0.8.0 -## explicit; go 1.18 +# github.com/hashicorp/terraform-plugin-log v0.9.0 +## explicit; go 1.19 github.com/hashicorp/terraform-plugin-log/internal/fieldutils github.com/hashicorp/terraform-plugin-log/internal/hclogutils github.com/hashicorp/terraform-plugin-log/internal/logging github.com/hashicorp/terraform-plugin-log/tflog github.com/hashicorp/terraform-plugin-log/tfsdklog -# github.com/hashicorp/terraform-plugin-sdk/v2 v2.26.1 -## explicit; go 1.19 +# github.com/hashicorp/terraform-plugin-sdk/v2 v2.29.0 +## explicit; go 1.20 github.com/hashicorp/terraform-plugin-sdk/v2/diag github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging @@ -1022,34 +1058,40 @@ github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfdiags github.com/hashicorp/terraform-plugin-sdk/v2/meta github.com/hashicorp/terraform-plugin-sdk/v2/plugin github.com/hashicorp/terraform-plugin-sdk/v2/terraform -# github.com/hashicorp/terraform-plugin-testing v1.0.0 -## explicit; go 1.18 +# github.com/hashicorp/terraform-plugin-testing v1.5.1 +## explicit; go 1.19 +github.com/hashicorp/terraform-plugin-testing/config github.com/hashicorp/terraform-plugin-testing/helper/acctest github.com/hashicorp/terraform-plugin-testing/helper/resource github.com/hashicorp/terraform-plugin-testing/internal/addrs github.com/hashicorp/terraform-plugin-testing/internal/configs/configschema github.com/hashicorp/terraform-plugin-testing/internal/configs/hcl2shim +github.com/hashicorp/terraform-plugin-testing/internal/errorshim github.com/hashicorp/terraform-plugin-testing/internal/logging github.com/hashicorp/terraform-plugin-testing/internal/plugintest +github.com/hashicorp/terraform-plugin-testing/internal/teststep github.com/hashicorp/terraform-plugin-testing/internal/tfdiags +github.com/hashicorp/terraform-plugin-testing/plancheck github.com/hashicorp/terraform-plugin-testing/terraform -# github.com/hashicorp/terraform-registry-address v0.1.0 -## explicit; go 1.14 +github.com/hashicorp/terraform-plugin-testing/tfjsonpath +github.com/hashicorp/terraform-plugin-testing/tfversion +# github.com/hashicorp/terraform-registry-address v0.2.2 +## explicit; go 1.19 github.com/hashicorp/terraform-registry-address -# github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734 -## explicit; go 1.12 +# github.com/hashicorp/terraform-svchost v0.1.1 +## explicit; go 1.19 github.com/hashicorp/terraform-svchost -# github.com/hashicorp/yamux v0.0.0-20210316155119-a95892c5f864 +# github.com/hashicorp/yamux v0.1.1 ## explicit; go 1.15 github.com/hashicorp/yamux # github.com/magodo/terraform-provider-azurerm-example-gen v0.0.0-20220407025246-3a3ee0ab24a8 ## explicit; go 1.16 github.com/magodo/terraform-provider-azurerm-example-gen/examplegen -# github.com/mattn/go-colorable v0.1.12 -## explicit; go 1.13 +# github.com/mattn/go-colorable v0.1.13 +## explicit; go 1.15 github.com/mattn/go-colorable -# github.com/mattn/go-isatty v0.0.14 -## explicit; go 1.12 +# github.com/mattn/go-isatty v0.0.19 +## explicit; go 1.15 github.com/mattn/go-isatty # github.com/mitchellh/copystructure v1.2.0 ## explicit; go 1.15 @@ -1069,11 +1111,11 @@ github.com/mitchellh/reflectwalk # github.com/oklog/run v1.1.0 ## explicit; go 1.13 github.com/oklog/run -# github.com/rickb777/date v1.12.5-0.20200422084442-6300e543c4d9 -## explicit; go 1.13 +# github.com/rickb777/date v1.20.2 +## explicit; go 1.17 github.com/rickb777/date/period -# github.com/rickb777/plural v1.2.0 -## explicit +# github.com/rickb777/plural v1.4.1 +## explicit; go 1.17 github.com/rickb777/plural # github.com/sergi/go-diff v1.2.0 ## explicit; go 1.12 @@ -1117,16 +1159,16 @@ github.com/tombuildsstuff/kermit/version ## explicit github.com/vmihailenco/msgpack github.com/vmihailenco/msgpack/codes -# github.com/vmihailenco/msgpack/v4 v4.3.12 +# github.com/vmihailenco/msgpack/v5 v5.3.5 ## explicit; go 1.11 -github.com/vmihailenco/msgpack/v4 -github.com/vmihailenco/msgpack/v4/codes -# github.com/vmihailenco/tagparser v0.1.1 -## explicit; go 1.13 -github.com/vmihailenco/tagparser -github.com/vmihailenco/tagparser/internal -github.com/vmihailenco/tagparser/internal/parser -# github.com/zclconf/go-cty v1.13.1 +github.com/vmihailenco/msgpack/v5 +github.com/vmihailenco/msgpack/v5/msgpcode +# github.com/vmihailenco/tagparser/v2 v2.0.0 +## explicit; go 1.15 +github.com/vmihailenco/tagparser/v2 +github.com/vmihailenco/tagparser/v2/internal +github.com/vmihailenco/tagparser/v2/internal/parser +# github.com/zclconf/go-cty v1.14.0 ## explicit; go 1.18 github.com/zclconf/go-cty/cty github.com/zclconf/go-cty/cty/convert @@ -1136,69 +1178,73 @@ github.com/zclconf/go-cty/cty/function/stdlib github.com/zclconf/go-cty/cty/gocty github.com/zclconf/go-cty/cty/json github.com/zclconf/go-cty/cty/set -# golang.org/x/crypto v0.9.0 +# golang.org/x/crypto v0.13.0 ## explicit; go 1.17 +golang.org/x/crypto/argon2 +golang.org/x/crypto/blake2b golang.org/x/crypto/blowfish golang.org/x/crypto/cast5 golang.org/x/crypto/chacha20 golang.org/x/crypto/curve25519 golang.org/x/crypto/curve25519/internal/field golang.org/x/crypto/ed25519 +golang.org/x/crypto/hkdf golang.org/x/crypto/internal/alias golang.org/x/crypto/internal/poly1305 -golang.org/x/crypto/openpgp -golang.org/x/crypto/openpgp/armor -golang.org/x/crypto/openpgp/elgamal -golang.org/x/crypto/openpgp/errors -golang.org/x/crypto/openpgp/packet -golang.org/x/crypto/openpgp/s2k golang.org/x/crypto/pbkdf2 golang.org/x/crypto/pkcs12 golang.org/x/crypto/pkcs12/internal/rc2 +golang.org/x/crypto/sha3 golang.org/x/crypto/ssh golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -# golang.org/x/mod v0.8.0 +# golang.org/x/exp v0.0.0-20230905200255-921286631fa9 +## explicit; go 1.20 +golang.org/x/exp/constraints +# golang.org/x/mod v0.12.0 ## explicit; go 1.17 golang.org/x/mod/internal/lazyregexp golang.org/x/mod/modfile golang.org/x/mod/module golang.org/x/mod/semver -# golang.org/x/net v0.10.0 +# golang.org/x/net v0.15.0 ## explicit; go 1.17 golang.org/x/net/context -golang.org/x/net/context/ctxhttp golang.org/x/net/http/httpguts golang.org/x/net/http2 golang.org/x/net/http2/hpack golang.org/x/net/idna golang.org/x/net/internal/timeseries golang.org/x/net/trace -# golang.org/x/oauth2 v0.4.0 -## explicit; go 1.17 +# golang.org/x/oauth2 v0.12.0 +## explicit; go 1.18 golang.org/x/oauth2 golang.org/x/oauth2/internal -# golang.org/x/sys v0.8.0 +# golang.org/x/sys v0.12.0 ## explicit; go 1.17 golang.org/x/sys/cpu golang.org/x/sys/execabs +golang.org/x/sys/internal/unsafeheader golang.org/x/sys/unix -# golang.org/x/text v0.9.0 +golang.org/x/sys/windows +# golang.org/x/text v0.13.0 ## explicit; go 1.17 golang.org/x/text/secure/bidirule golang.org/x/text/transform golang.org/x/text/unicode/bidi golang.org/x/text/unicode/norm -# golang.org/x/tools v0.6.0 +# golang.org/x/tools v0.13.0 ## explicit; go 1.18 golang.org/x/tools/go/ast/astutil golang.org/x/tools/go/gcexportdata golang.org/x/tools/go/internal/packagesdriver golang.org/x/tools/go/packages +golang.org/x/tools/go/types/objectpath golang.org/x/tools/imports golang.org/x/tools/internal/event golang.org/x/tools/internal/event/core golang.org/x/tools/internal/event/keys golang.org/x/tools/internal/event/label +golang.org/x/tools/internal/event/tag golang.org/x/tools/internal/fastwalk golang.org/x/tools/internal/gcimporter golang.org/x/tools/internal/gocommand @@ -1209,7 +1255,7 @@ golang.org/x/tools/internal/pkgbits golang.org/x/tools/internal/tokeninternal golang.org/x/tools/internal/typeparams golang.org/x/tools/internal/typesinternal -# google.golang.org/appengine v1.6.7 +# google.golang.org/appengine v1.6.8 ## explicit; go 1.11 google.golang.org/appengine google.golang.org/appengine/datastore @@ -1224,11 +1270,11 @@ google.golang.org/appengine/internal/modules google.golang.org/appengine/internal/remote_api google.golang.org/appengine/internal/urlfetch google.golang.org/appengine/urlfetch -# google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f +# google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d ## explicit; go 1.19 google.golang.org/genproto/googleapis/rpc/status -# google.golang.org/grpc v1.53.0 -## explicit; go 1.17 +# google.golang.org/grpc v1.58.0 +## explicit; go 1.19 google.golang.org/grpc google.golang.org/grpc/attributes google.golang.org/grpc/backoff @@ -1260,6 +1306,7 @@ google.golang.org/grpc/internal/grpclog google.golang.org/grpc/internal/grpcrand google.golang.org/grpc/internal/grpcsync google.golang.org/grpc/internal/grpcutil +google.golang.org/grpc/internal/idle google.golang.org/grpc/internal/metadata google.golang.org/grpc/internal/pretty google.golang.org/grpc/internal/resolver @@ -1275,13 +1322,14 @@ google.golang.org/grpc/keepalive google.golang.org/grpc/metadata google.golang.org/grpc/peer google.golang.org/grpc/reflection +google.golang.org/grpc/reflection/grpc_reflection_v1 google.golang.org/grpc/reflection/grpc_reflection_v1alpha google.golang.org/grpc/resolver google.golang.org/grpc/serviceconfig google.golang.org/grpc/stats google.golang.org/grpc/status google.golang.org/grpc/tap -# google.golang.org/protobuf v1.28.1 +# google.golang.org/protobuf v1.31.0 ## explicit; go 1.11 google.golang.org/protobuf/encoding/protojson google.golang.org/protobuf/encoding/prototext @@ -1319,7 +1367,7 @@ google.golang.org/protobuf/types/known/timestamppb # gopkg.in/yaml.v3 v3.0.1 ## explicit gopkg.in/yaml.v3 -# software.sslmate.com/src/go-pkcs12 v0.2.0 -## explicit; go 1.15 +# software.sslmate.com/src/go-pkcs12 v0.2.1 +## explicit; go 1.19 software.sslmate.com/src/go-pkcs12 software.sslmate.com/src/go-pkcs12/internal/rc2 diff --git a/vendor/software.sslmate.com/src/go-pkcs12/pkcs12.go b/vendor/software.sslmate.com/src/go-pkcs12/pkcs12.go index ba6f6fb5c6f8..2fb3d28c1625 100644 --- a/vendor/software.sslmate.com/src/go-pkcs12/pkcs12.go +++ b/vendor/software.sslmate.com/src/go-pkcs12/pkcs12.go @@ -27,6 +27,7 @@ import ( "encoding/hex" "encoding/pem" "errors" + "fmt" "io" ) @@ -138,8 +139,8 @@ func unmarshal(in []byte, out interface{}) error { // // Deprecated: ToPEM creates invalid PEM blocks (private keys // are encoded as raw RSA or EC private keys rather than PKCS#8 despite being -// labeled "PRIVATE KEY"). To decode a PKCS#12 file, use DecodeChain instead, -// and use the encoding/pem package to convert to PEM if necessary. +// labeled "PRIVATE KEY"). To decode a PKCS#12 file, use [DecodeChain] instead, +// and use the [encoding/pem] package to convert to PEM if necessary. func ToPEM(pfxData []byte, password string) ([]*pem.Block, error) { encodedPassword, err := bmpStringZeroTerminated(password) if err != nil { @@ -248,7 +249,7 @@ func convertAttribute(attribute *pkcs12Attribute) (key, value string, err error) // Decode extracts a certificate and private key from pfxData, which must be a DER-encoded PKCS#12 file. This function // assumes that there is only one certificate and only one private key in the // pfxData. Since PKCS#12 files often contain more than one certificate, you -// probably want to use DecodeChain instead. +// probably want to use [DecodeChain] instead. func Decode(pfxData []byte, password string) (privateKey interface{}, certificate *x509.Certificate, err error) { var caCerts []*x509.Certificate privateKey, certificate, caCerts, err = DecodeChain(pfxData, password) @@ -403,7 +404,7 @@ func getSafeContents(p12Data, password []byte, expectedItems int) (bags []safeBa } if len(authenticatedSafe) != expectedItems { - return nil, nil, NotImplementedError("expected exactly two items in the authenticated safe") + return nil, nil, NotImplementedError(fmt.Sprintf("expected exactly %d items in the authenticated safe", expectedItems)) } for _, ci := range authenticatedSafe { @@ -445,11 +446,11 @@ func getSafeContents(p12Data, password []byte, expectedItems int) (bags []safeBa // // The private key is encrypted with the provided password, but due to the // weak encryption primitives used by PKCS#12, it is RECOMMENDED that you -// specify a hard-coded password (such as pkcs12.DefaultPassword) and protect +// specify a hard-coded password (such as [DefaultPassword]) and protect // the resulting pfxData using other means. // // The rand argument is used to provide entropy for the encryption, and -// can be set to rand.Reader from the crypto/rand package. +// can be set to [crypto/rand.Reader]. // // Encode emulates the behavior of OpenSSL's PKCS12_create: it creates two // SafeContents: one that's encrypted with RC2 and contains the certificates, @@ -546,11 +547,11 @@ func Encode(rand io.Reader, privateKey interface{}, certificate *x509.Certificat // allow it to be used as a Java TrustStore in Java 1.8 and newer. // // Due to the weak encryption primitives used by PKCS#12, it is RECOMMENDED that -// you specify a hard-coded password (such as pkcs12.DefaultPassword) and protect +// you specify a hard-coded password (such as [DefaultPassword]) and protect // the resulting pfxData using other means. // // The rand argument is used to provide entropy for the encryption, and -// can be set to rand.Reader from the crypto/rand package. +// can be set to [crypto/rand.Reader]. // // EncodeTrustStore creates a single SafeContents that's encrypted with RC2 // and contains the certificates. @@ -559,7 +560,7 @@ func Encode(rand io.Reader, privateKey interface{}, certificate *x509.Certificat // within the resulting pfxData. If certificates share a Subject, then the // resulting Friendly Names (Aliases) will be identical, which Java may treat as // the same entry when used as a Java TrustStore, e.g. with `keytool`. To -// customize the Friendly Names, use EncodeTrustStoreEntries. +// customize the Friendly Names, use [EncodeTrustStoreEntries]. func EncodeTrustStore(rand io.Reader, certs []*x509.Certificate, password string) (pfxData []byte, err error) { var certsWithFriendlyNames []TrustStoreEntry for _, cert := range certs { @@ -581,7 +582,7 @@ type TrustStoreEntry struct { // certificates (entries) to be trusted. The certificates will be marked with a // special OID that allow it to be used as a Java TrustStore in Java 1.8 and newer. // -// This is identical to EncodeTrustStore, but also allows for setting specific +// This is identical to [EncodeTrustStore], but also allows for setting specific // Friendly Names (Aliases) to be used per certificate, by specifying a slice // of TrustStoreEntry. // @@ -590,11 +591,11 @@ type TrustStoreEntry struct { // may treat as the same entry when used as a Java TrustStore, e.g. with `keytool`. // // Due to the weak encryption primitives used by PKCS#12, it is RECOMMENDED that -// you specify a hard-coded password (such as pkcs12.DefaultPassword) and protect +// you specify a hard-coded password (such as [DefaultPassword]) and protect // the resulting pfxData using other means. // // The rand argument is used to provide entropy for the encryption, and -// can be set to rand.Reader from the crypto/rand package. +// can be set to [crypto/rand.Reader]. // // EncodeTrustStoreEntries creates a single SafeContents that's encrypted // with RC2 and contains the certificates. From e276c6f6d043c03bd622183da333c1ebbbc13a4c Mon Sep 17 00:00:00 2001 From: Neil Ye Date: Fri, 8 Sep 2023 19:53:47 +0800 Subject: [PATCH 151/336] New Resource: `azurerm_virtual_hub_routing_intent` (#23138) * New Resource: azurerm_virtual_hub_routing_intent * update code * update code --- .github/labeler-issue-triage.yml | 2 +- internal/services/network/registration.go | 1 + .../virtual_hub_routing_intent_resource.go | 270 ++++++++++++++++++ ...irtual_hub_routing_intent_resource_test.go | 207 ++++++++++++++ .../virtual_hub_routing_intent.html.markdown | 101 +++++++ 5 files changed, 580 insertions(+), 1 deletion(-) create mode 100644 internal/services/network/virtual_hub_routing_intent_resource.go create mode 100644 internal/services/network/virtual_hub_routing_intent_resource_test.go create mode 100644 website/docs/r/virtual_hub_routing_intent.html.markdown diff --git a/.github/labeler-issue-triage.yml b/.github/labeler-issue-triage.yml index 02be616bacb3..b032c006bc22 100644 --- a/.github/labeler-issue-triage.yml +++ b/.github/labeler-issue-triage.yml @@ -241,7 +241,7 @@ service/netapp: - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_netapp_((.|\n)*)###' service/network: - - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_(application_gateway\W+|application_security_group\W+|bastion_host|custom_ip_prefix|express_route_|ip_group|local_network_gateway|nat_gateway|network_connection_monitor\W+|network_ddos_protection_plan\W+|network_interface\W+|network_interface_application_gateway_backend_address_pool_association\W+|network_interface_application_security_group_association\W+|network_interface_backend_address_pool_association\W+|network_interface_nat_rule_association\W+|network_interface_security_group_association\W+|network_manager\W+|network_manager_admin_rule\W+|network_manager_admin_rule_collection\W+|network_manager_connectivity_configuration\W+|network_manager_deployment\W+|network_manager_management_group_connection\W+|network_manager_network_group\W+|network_manager_network_group\W+|network_manager_scope_connection\W+|network_manager_security_admin_configuration\W+|network_manager_static_member\W+|network_manager_subscription_connection\W+|network_packet_capture\W+|network_profile\W+|network_security_group\W+|network_security_rule\W+|network_service_tags\W+|network_watcher\W+|network_watcher_flow_log\W+|point_to_site_vpn_gateway|private_endpoint\W+|private_endpoint_application_security_group_association\W+|private_endpoint_connection\W+|private_link_service\W+|private_link_service_endpoint_connections\W+|public_ip|route|subnet|virtual_hub\W+|virtual_hub_bgp_connection\W+|virtual_hub_connection\W+|virtual_hub_ip\W+|virtual_hub_route_table\W+|virtual_hub_route_table_route\W+|virtual_hub_security_partner_provider\W+|virtual_machine_packet_capture\W+|virtual_machine_scale_set_packet_capture\W+|virtual_network\W+|virtual_network_dns_servers\W+|virtual_network_gateway\W+|virtual_network_gateway_connection\W+|virtual_network_gateway_nat_rule\W+|virtual_network_peering\W+|virtual_wan\W+|vpn_|web_application_firewall_policy)((.|\n)*)###' + - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_(application_gateway\W+|application_security_group\W+|bastion_host|custom_ip_prefix|express_route_|ip_group|local_network_gateway|nat_gateway|network_connection_monitor\W+|network_ddos_protection_plan\W+|network_interface\W+|network_interface_application_gateway_backend_address_pool_association\W+|network_interface_application_security_group_association\W+|network_interface_backend_address_pool_association\W+|network_interface_nat_rule_association\W+|network_interface_security_group_association\W+|network_manager\W+|network_manager_admin_rule\W+|network_manager_admin_rule_collection\W+|network_manager_connectivity_configuration\W+|network_manager_deployment\W+|network_manager_management_group_connection\W+|network_manager_network_group\W+|network_manager_network_group\W+|network_manager_scope_connection\W+|network_manager_security_admin_configuration\W+|network_manager_static_member\W+|network_manager_subscription_connection\W+|network_packet_capture\W+|network_profile\W+|network_security_group\W+|network_security_rule\W+|network_service_tags\W+|network_watcher\W+|network_watcher_flow_log\W+|point_to_site_vpn_gateway|private_endpoint\W+|private_endpoint_application_security_group_association\W+|private_endpoint_connection\W+|private_link_service\W+|private_link_service_endpoint_connections\W+|public_ip|route|subnet|virtual_hub\W+|virtual_hub_bgp_connection\W+|virtual_hub_connection\W+|virtual_hub_ip\W+|virtual_hub_route_table\W+|virtual_hub_route_table_route\W+|virtual_hub_routing_intent\W+|virtual_hub_security_partner_provider\W+|virtual_machine_packet_capture\W+|virtual_machine_scale_set_packet_capture\W+|virtual_network\W+|virtual_network_dns_servers\W+|virtual_network_gateway\W+|virtual_network_gateway_connection\W+|virtual_network_gateway_nat_rule\W+|virtual_network_peering\W+|virtual_wan\W+|vpn_|web_application_firewall_policy)((.|\n)*)###' service/network-function: - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_network_function_azure_traffic_collector((.|\n)*)###' diff --git a/internal/services/network/registration.go b/internal/services/network/registration.go index 5fba29983b94..003124143df0 100644 --- a/internal/services/network/registration.go +++ b/internal/services/network/registration.go @@ -53,6 +53,7 @@ func (r Registration) Resources() []sdk.Resource { ManagerSubscriptionConnectionResource{}, PrivateEndpointApplicationSecurityGroupAssociationResource{}, RouteMapResource{}, + VirtualHubRoutingIntentResource{}, } } diff --git a/internal/services/network/virtual_hub_routing_intent_resource.go b/internal/services/network/virtual_hub_routing_intent_resource.go new file mode 100644 index 000000000000..169a00c40062 --- /dev/null +++ b/internal/services/network/virtual_hub_routing_intent_resource.go @@ -0,0 +1,270 @@ +package network + +import ( + "context" + "fmt" + "time" + + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/virtualwans" + "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" +) + +type VirtualHubRoutingIntentModel struct { + Name string `tfschema:"name"` + VirtualHubId string `tfschema:"virtual_hub_id"` + RoutingPolicies []RoutingPolicy `tfschema:"routing_policy"` +} + +type RoutingPolicy struct { + Destinations []string `tfschema:"destinations"` + Name string `tfschema:"name"` + NextHop string `tfschema:"next_hop"` +} + +type VirtualHubRoutingIntentResource struct{} + +var _ sdk.ResourceWithUpdate = VirtualHubRoutingIntentResource{} + +func (r VirtualHubRoutingIntentResource) ResourceType() string { + return "azurerm_virtual_hub_routing_intent" +} + +func (r VirtualHubRoutingIntentResource) ModelObject() interface{} { + return &VirtualHubRoutingIntentModel{} +} + +func (r VirtualHubRoutingIntentResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return virtualwans.ValidateRoutingIntentID +} + +func (r VirtualHubRoutingIntentResource) Arguments() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "virtual_hub_id": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: virtualwans.ValidateVirtualHubID, + }, + + "routing_policy": { + Type: pluginsdk.TypeList, + Required: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "destinations": { + Type: pluginsdk.TypeList, + Required: true, + Elem: &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + ValidateFunc: validation.StringInSlice([]string{ + "Internet", + "PrivateTraffic", + }, false), + }, + }, + + "next_hop": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: azure.ValidateResourceID, + }, + }, + }, + }, + } +} + +func (r VirtualHubRoutingIntentResource) Attributes() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{} +} + +func (r VirtualHubRoutingIntentResource) Create() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + var model VirtualHubRoutingIntentModel + if err := metadata.Decode(&model); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + client := metadata.Client.Network.VirtualWANs + virtualHubId, err := virtualwans.ParseVirtualHubID(model.VirtualHubId) + if err != nil { + return err + } + + id := virtualwans.NewRoutingIntentID(virtualHubId.SubscriptionId, virtualHubId.ResourceGroupName, virtualHubId.VirtualHubName, model.Name) + existing, err := client.RoutingIntentGet(ctx, id) + if err != nil && !response.WasNotFound(existing.HttpResponse) { + return fmt.Errorf("checking for existing %s: %+v", id, err) + } + + if !response.WasNotFound(existing.HttpResponse) { + return metadata.ResourceRequiresImport(r.ResourceType(), id) + } + + properties := &virtualwans.RoutingIntent{ + Properties: &virtualwans.RoutingIntentProperties{ + RoutingPolicies: expandRoutingPolicy(model.RoutingPolicies), + }, + } + + if err := client.RoutingIntentCreateOrUpdateThenPoll(ctx, id, *properties); err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + + metadata.SetID(id) + return nil + }, + } +} + +func (r VirtualHubRoutingIntentResource) Update() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.Network.VirtualWANs + + id, err := virtualwans.ParseRoutingIntentID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + var model VirtualHubRoutingIntentModel + if err := metadata.Decode(&model); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + resp, err := client.RoutingIntentGet(ctx, *id) + if err != nil { + return fmt.Errorf("retrieving %s: %+v", *id, err) + } + + properties := resp.Model + if properties == nil { + return fmt.Errorf("retrieving %s: properties was nil", id) + } + + if metadata.ResourceData.HasChange("routing_policy") { + properties.Properties.RoutingPolicies = expandRoutingPolicy(model.RoutingPolicies) + } + + if err := client.RoutingIntentCreateOrUpdateThenPoll(ctx, *id, *properties); err != nil { + return fmt.Errorf("updating %s: %+v", *id, err) + } + + return nil + }, + } +} + +func (r VirtualHubRoutingIntentResource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 5 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.Network.VirtualWANs + + id, err := virtualwans.ParseRoutingIntentID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + resp, err := client.RoutingIntentGet(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return metadata.MarkAsGone(id) + } + + return fmt.Errorf("retrieving %s: %+v", *id, err) + } + + state := VirtualHubRoutingIntentModel{ + Name: id.RoutingIntentName, + VirtualHubId: virtualwans.NewVirtualHubID(id.SubscriptionId, id.ResourceGroupName, id.VirtualHubName).ID(), + } + + if model := resp.Model; model != nil { + if props := model.Properties; props != nil { + state.RoutingPolicies = flattenRoutingPolicy(props.RoutingPolicies) + } + } + + return metadata.Encode(&state) + }, + } +} + +func (r VirtualHubRoutingIntentResource) Delete() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.Network.VirtualWANs + + id, err := virtualwans.ParseRoutingIntentID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + if err := client.RoutingIntentDeleteThenPoll(ctx, *id); err != nil { + return fmt.Errorf("deleting %s: %+v", id, err) + } + + return nil + }, + } +} + +func expandRoutingPolicy(input []RoutingPolicy) *[]virtualwans.RoutingPolicy { + result := make([]virtualwans.RoutingPolicy, 0) + if len(input) == 0 { + return &result + } + + for _, v := range input { + routingPolicy := virtualwans.RoutingPolicy{ + Destinations: v.Destinations, + Name: v.Name, + NextHop: v.NextHop, + } + + result = append(result, routingPolicy) + } + + return &result +} + +func flattenRoutingPolicy(input *[]virtualwans.RoutingPolicy) []RoutingPolicy { + var result []RoutingPolicy + if input == nil { + return result + } + + for _, v := range *input { + routingPolicy := RoutingPolicy{ + Destinations: v.Destinations, + Name: v.Name, + NextHop: v.NextHop, + } + + result = append(result, routingPolicy) + } + + return result +} diff --git a/internal/services/network/virtual_hub_routing_intent_resource_test.go b/internal/services/network/virtual_hub_routing_intent_resource_test.go new file mode 100644 index 000000000000..3c3e363df1be --- /dev/null +++ b/internal/services/network/virtual_hub_routing_intent_resource_test.go @@ -0,0 +1,207 @@ +package network_test + +import ( + "context" + "fmt" + "testing" + + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/virtualwans" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/utils" +) + +type VirtualHubRoutingIntentResource struct{} + +func TestAccVirtualHubRoutingIntent_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_virtual_hub_routing_intent", "test") + r := VirtualHubRoutingIntentResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccVirtualHubRoutingIntent_requiresImport(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_virtual_hub_routing_intent", "test") + r := VirtualHubRoutingIntentResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.RequiresImportErrorStep(r.requiresImport), + }) +} + +func TestAccVirtualHubRoutingIntent_update(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_virtual_hub_routing_intent", "test") + r := VirtualHubRoutingIntentResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.updateRoutingPolicy(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.multipleRoutingPolicies(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func (r VirtualHubRoutingIntentResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { + id, err := virtualwans.ParseRoutingIntentID(state.ID) + if err != nil { + return nil, err + } + + client := clients.Network.VirtualWANs + resp, err := client.RoutingIntentGet(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return utils.Bool(false), nil + } + return nil, fmt.Errorf("retrieving %s: %+v", id, err) + } + return utils.Bool(resp.Model != nil), nil +} + +func (r VirtualHubRoutingIntentResource) template(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-routingintent-%d" + location = "%s" +} + +resource "azurerm_virtual_wan" "test" { + name = "acctestVWAN-%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location +} + +resource "azurerm_virtual_hub" "test" { + name = "acctestVHUB-%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + virtual_wan_id = azurerm_virtual_wan.test.id + address_prefix = "10.0.1.0/24" +} + +resource "azurerm_firewall" "test" { + name = "acctestFW-%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + sku_name = "AZFW_Hub" + sku_tier = "Standard" + + virtual_hub { + virtual_hub_id = azurerm_virtual_hub.test.id + public_ip_count = 1 + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) +} + +func (r VirtualHubRoutingIntentResource) basic(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_virtual_hub_routing_intent" "test" { + name = "acctest-routingintent-%d" + virtual_hub_id = azurerm_virtual_hub.test.id + + routing_policy { + name = "InternetTrafficPolicy" + destinations = ["Internet"] + next_hop = azurerm_firewall.test.id + } +} +`, r.template(data), data.RandomInteger) +} + +func (r VirtualHubRoutingIntentResource) requiresImport(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_virtual_hub_routing_intent" "import" { + name = azurerm_virtual_hub_routing_intent.test.name + virtual_hub_id = azurerm_virtual_hub_routing_intent.test.virtual_hub_id + + routing_policy { + name = "InternetTrafficPolicy" + destinations = ["Internet"] + next_hop = azurerm_firewall.test.id + } +} +`, r.basic(data)) +} + +func (r VirtualHubRoutingIntentResource) updateRoutingPolicy(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_virtual_hub_routing_intent" "test" { + name = "acctest-routingintent-%d" + virtual_hub_id = azurerm_virtual_hub.test.id + + routing_policy { + name = "PrivateTrafficPolicy" + destinations = ["PrivateTraffic"] + next_hop = azurerm_firewall.test.id + } +} +`, r.template(data), data.RandomInteger) +} + +func (r VirtualHubRoutingIntentResource) multipleRoutingPolicies(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_virtual_hub_routing_intent" "test" { + name = "acctest-routingintent-%d" + virtual_hub_id = azurerm_virtual_hub.test.id + + routing_policy { + name = "InternetTrafficPolicy" + destinations = ["Internet"] + next_hop = azurerm_firewall.test.id + } + + routing_policy { + name = "PrivateTrafficPolicy" + destinations = ["PrivateTraffic"] + next_hop = azurerm_firewall.test.id + } +} +`, r.template(data), data.RandomInteger) +} diff --git a/website/docs/r/virtual_hub_routing_intent.html.markdown b/website/docs/r/virtual_hub_routing_intent.html.markdown new file mode 100644 index 000000000000..9dfbaf52eece --- /dev/null +++ b/website/docs/r/virtual_hub_routing_intent.html.markdown @@ -0,0 +1,101 @@ +--- +subcategory: "Network" +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_virtual_hub_routing_intent" +description: |- + Manages a Virtual Hub Routing Intent. +--- + +# azurerm_virtual_hub_routing_intent + +Manages a Virtual Hub Routing Intent. + +## Example Usage + +```hcl +resource "azurerm_resource_group" "example" { + name = "example-resources" + location = "West Europe" +} + +resource "azurerm_virtual_wan" "example" { + name = "example-vwan" + resource_group_name = azurerm_resource_group.example.name + location = azurerm_resource_group.example.location +} + +resource "azurerm_virtual_hub" "example" { + name = "example-vhub" + resource_group_name = azurerm_resource_group.example.name + location = azurerm_resource_group.example.location + virtual_wan_id = azurerm_virtual_wan.example.id + address_prefix = "10.0.1.0/24" +} + +resource "azurerm_firewall" "example" { + name = "example-fw" + location = azurerm_resource_group.example.location + resource_group_name = azurerm_resource_group.example.name + sku_name = "AZFW_Hub" + sku_tier = "Standard" + + virtual_hub { + virtual_hub_id = azurerm_virtual_hub.example.id + public_ip_count = 1 + } +} + +resource "azurerm_virtual_hub_routing_intent" "example" { + name = "example-routingintent" + virtual_hub_id = azurerm_virtual_hub.example.id + + routing_policy { + name = "InternetTrafficPolicy" + destinations = ["Internet"] + next_hop = azurerm_firewall.example.id + } +} +``` + +## Arguments Reference + +The following arguments are supported: + +* `name` - (Required) The name which should be used for this Virtual Hub Routing Intent. Changing this forces a new resource to be created. + +* `virtual_hub_id` - (Required) The resource ID of the Virtual Hub. Changing this forces a new resource to be created. + +* `routing_policy` - (Required) One or more `routing_policy` blocks as defined below. + +--- + +A `routing_policy` block supports the following: + +* `name` - (Required) The unique name for the routing policy. + +* `destinations` - (Required) A list of destinations which this routing policy is applicable to. Possible values are `Internet` and `PrivateTraffic`. + +* `next_hop` - (Required) The resource ID of the next hop on which this routing policy is applicable to. + +## Attributes Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the Virtual Hub Routing Intent. + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/docs/configuration/resources.html#timeouts) for certain actions: + +* `create` - (Defaults to 30 minutes) Used when creating the Virtual Hub Routing Intent. +* `read` - (Defaults to 5 minutes) Used when retrieving the Virtual Hub Routing Intent. +* `update` - (Defaults to 30 minutes) Used when updating the Virtual Hub Routing Intent. +* `delete` - (Defaults to 30 minutes) Used when deleting the Virtual Hub Routing Intent. + +## Import + +Virtual Hub Routing Intents can be imported using the `resource id`, e.g. + +```shell +terraform import azurerm_virtual_hub_routing_intent.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.Network/virtualHubs/virtualHub1/routingIntent/routingIntent1 +``` From b03cb143b9336158a9342e6b7b4fbf85545d7b4d Mon Sep 17 00:00:00 2001 From: catriona-m <86247157+catriona-m@users.noreply.github.com> Date: Fri, 8 Sep 2023 12:54:43 +0100 Subject: [PATCH 152/336] Update CHANGELOG.md #23138 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 490553d7a894..d3447a00f040 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ ENHANCEMENTS: * `azurerm_maps_account` - Support for `local_authentication_enabled` [GH-23216] +FEATURES: + +* **New Resource**: `azurerm_virtual_hub_routing_intent` [GH-23138] + ## 3.72.0 (September 07, 2023) FEATURES: From 3fcb43074d288f42a54a2811eadd3926bf29d79d Mon Sep 17 00:00:00 2001 From: Yichun Ma Date: Fri, 8 Sep 2023 08:01:50 -0400 Subject: [PATCH 153/336] New resource `azurerm_iothub_endpoint_cosmosdb_account` (#23065) * New resource `azurerm_iothub_endpoint_cosmosdb_account` * resolve comments --- ...thub_endpoint_cosmosdb_account_resource.go | 470 ++++++++++++++++++ ...endpoint_cosmosdb_account_resource_test.go | 412 +++++++++++++++ .../parse/endpoint_cosmos_db_account.go | 134 +++++ .../parse/endpoint_cosmos_db_account_test.go | 267 ++++++++++ internal/services/iothub/registration.go | 1 + internal/services/iothub/resourceids.go | 1 + .../validate/endpoint_cosmos_db_account_id.go | 26 + .../endpoint_cosmos_db_account_id_test.go | 91 ++++ ...ub_endpoint_cosmosdb_account.html.markdown | 136 +++++ 9 files changed, 1538 insertions(+) create mode 100644 internal/services/iothub/iothub_endpoint_cosmosdb_account_resource.go create mode 100644 internal/services/iothub/iothub_endpoint_cosmosdb_account_resource_test.go create mode 100644 internal/services/iothub/parse/endpoint_cosmos_db_account.go create mode 100644 internal/services/iothub/parse/endpoint_cosmos_db_account_test.go create mode 100644 internal/services/iothub/validate/endpoint_cosmos_db_account_id.go create mode 100644 internal/services/iothub/validate/endpoint_cosmos_db_account_id_test.go create mode 100644 website/docs/r/iothub_endpoint_cosmosdb_account.html.markdown diff --git a/internal/services/iothub/iothub_endpoint_cosmosdb_account_resource.go b/internal/services/iothub/iothub_endpoint_cosmosdb_account_resource.go new file mode 100644 index 000000000000..b329fc333da0 --- /dev/null +++ b/internal/services/iothub/iothub_endpoint_cosmosdb_account_resource.go @@ -0,0 +1,470 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package iothub + +import ( + "context" + "fmt" + "strings" + "time" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" + "github.com/hashicorp/terraform-provider-azurerm/internal/locks" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/services/iothub/parse" + "github.com/hashicorp/terraform-provider-azurerm/internal/services/iothub/validate" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" + "github.com/hashicorp/terraform-provider-azurerm/utils" + devices "github.com/tombuildsstuff/kermit/sdk/iothub/2022-04-30-preview/iothub" +) + +type IotHubEndpointCosmosDBAccountResource struct{} + +var ( + _ sdk.ResourceWithUpdate = IotHubEndpointCosmosDBAccountResource{} +) + +type IotHubEndpointCosmosDBAccountModel struct { + Name string `tfschema:"name"` + ResourceGroupName string `tfschema:"resource_group_name"` + AuthenticationType string `tfschema:"authentication_type"` + ContainerName string `tfschema:"container_name"` + DatabaseName string `tfschema:"database_name"` + EndpointUri string `tfschema:"endpoint_uri"` + IdentityId string `tfschema:"identity_id"` + IothubId string `tfschema:"iothub_id"` + PartitionKeyName string `tfschema:"partition_key_name"` + PartitionKeyTemplate string `tfschema:"partition_key_template"` + PrimaryKey string `tfschema:"primary_key"` + SecondaryKey string `tfschema:"secondary_key"` +} + +func (r IotHubEndpointCosmosDBAccountResource) Arguments() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validate.IoTHubEndpointName, + }, + + "resource_group_name": commonschema.ResourceGroupName(), + + "iothub_id": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validate.IotHubID, + }, + + "container_name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "database_name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "endpoint_uri": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "authentication_type": { + Type: pluginsdk.TypeString, + Optional: true, + Default: string(devices.AuthenticationTypeKeyBased), + ValidateFunc: validation.StringInSlice([]string{ + string(devices.AuthenticationTypeKeyBased), + string(devices.AuthenticationTypeIdentityBased), + }, false), + }, + + "identity_id": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: commonids.ValidateUserAssignedIdentityID, + ConflictsWith: []string{"primary_key", "secondary_key"}, + }, + + "partition_key_name": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + RequiredWith: []string{"partition_key_template"}, + }, + + "partition_key_template": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + RequiredWith: []string{"partition_key_name"}, + }, + + "primary_key": { + Type: pluginsdk.TypeString, + Optional: true, + Sensitive: true, + ValidateFunc: validation.StringIsNotEmpty, + ConflictsWith: []string{"identity_id"}, + RequiredWith: []string{"secondary_key"}, + }, + + "secondary_key": { + Type: pluginsdk.TypeString, + Optional: true, + Sensitive: true, + ValidateFunc: validation.StringIsNotEmpty, + ConflictsWith: []string{"identity_id"}, + RequiredWith: []string{"primary_key"}, + }, + } +} + +func (r IotHubEndpointCosmosDBAccountResource) Attributes() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{} +} + +func (r IotHubEndpointCosmosDBAccountResource) ResourceType() string { + return "azurerm_iothub_endpoint_cosmosdb_account" +} + +func (r IotHubEndpointCosmosDBAccountResource) ModelObject() interface{} { + return &IotHubEndpointCosmosDBAccountResource{} +} + +func (r IotHubEndpointCosmosDBAccountResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return validate.EndpointCosmosDBAccountID +} + +func (r IotHubEndpointCosmosDBAccountResource) Create() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + var state IotHubEndpointCosmosDBAccountModel + if err := metadata.Decode(&state); err != nil { + return err + } + + client := metadata.Client.IoTHub.ResourceClient + subscriptionId := metadata.Client.Account.SubscriptionId + + iotHubId, err := parse.IotHubID(state.IothubId) + if err != nil { + return err + } + + id := parse.NewEndpointCosmosDBAccountID(subscriptionId, iotHubId.ResourceGroup, iotHubId.Name, state.Name) + + locks.ByName(iotHubId.Name, IothubResourceName) + defer locks.UnlockByName(iotHubId.Name, IothubResourceName) + + iothub, err := client.Get(ctx, iotHubId.ResourceGroup, iotHubId.Name) + if err != nil { + if utils.ResponseWasNotFound(iothub.Response) { + return fmt.Errorf("%q was not found", iotHubId) + } + + return fmt.Errorf("retrieving %q: %+v", iotHubId, err) + } + + authenticationType := devices.AuthenticationType(state.AuthenticationType) + cosmosDBAccountEndpoint := devices.RoutingCosmosDBSQLAPIProperties{ + Name: pointer.To(id.EndpointName), + SubscriptionID: pointer.To(subscriptionId), + ResourceGroup: pointer.To(state.ResourceGroupName), + AuthenticationType: authenticationType, + CollectionName: pointer.To(state.ContainerName), + DatabaseName: pointer.To(state.DatabaseName), + EndpointURI: pointer.To(state.EndpointUri), + } + + if state.PartitionKeyName != "" { + cosmosDBAccountEndpoint.PartitionKeyName = pointer.To(state.PartitionKeyName) + } + + if state.PartitionKeyTemplate != "" { + cosmosDBAccountEndpoint.PartitionKeyTemplate = pointer.To(state.PartitionKeyTemplate) + } + + if authenticationType == devices.AuthenticationTypeKeyBased { + if state.PrimaryKey == "" || state.SecondaryKey == "" { + return fmt.Errorf("`primary_key` and `secondary_key` must be specified when `authentication_type` is `keyBased`") + } + cosmosDBAccountEndpoint.PrimaryKey = pointer.To(state.PrimaryKey) + cosmosDBAccountEndpoint.SecondaryKey = pointer.To(state.SecondaryKey) + } else { + if state.PrimaryKey != "" || state.SecondaryKey != "" { + return fmt.Errorf("`primary_key` or `secondary_key` cannot be specified when `authentication_type` is `identityBased`") + } + + if state.IdentityId != "" { + cosmosDBAccountEndpoint.Identity = &devices.ManagedIdentity{ + UserAssignedIdentity: pointer.To(state.IdentityId), + } + } + } + + routing := iothub.Properties.Routing + if routing == nil { + routing = &devices.RoutingProperties{} + } + + if routing.Endpoints == nil { + routing.Endpoints = &devices.RoutingEndpoints{} + } + + if routing.Endpoints.CosmosDBSQLCollections == nil { + cosmosDBAccounts := make([]devices.RoutingCosmosDBSQLAPIProperties, 0) + routing.Endpoints.CosmosDBSQLCollections = &cosmosDBAccounts + } + + endpoints := make([]devices.RoutingCosmosDBSQLAPIProperties, 0) + + for _, existingEndpoint := range pointer.From(routing.Endpoints.CosmosDBSQLCollections) { + if strings.EqualFold(pointer.From(existingEndpoint.Name), id.EndpointName) { + return tf.ImportAsExistsError(r.ResourceType(), id.ID()) + } + endpoints = append(endpoints, existingEndpoint) + } + + endpoints = append(endpoints, cosmosDBAccountEndpoint) + routing.Endpoints.CosmosDBSQLCollections = &endpoints + + future, err := client.CreateOrUpdate(ctx, iotHubId.ResourceGroup, iotHubId.Name, iothub, "") + if err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + + if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { + return fmt.Errorf("waiting for the completion of the creation of %s: %+v", id, err) + } + + metadata.SetID(id) + return nil + }, + Timeout: 30 * time.Minute, + } +} + +func (r IotHubEndpointCosmosDBAccountResource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.IoTHub.ResourceClient + id, err := parse.EndpointCosmosDBAccountID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + var oldState IotHubEndpointCosmosDBAccountModel + if err = metadata.Decode(&oldState); err != nil { + return err + } + + iothub, err := client.Get(ctx, id.ResourceGroup, id.IotHubName) + if err != nil { + if utils.ResponseWasNotFound(iothub.Response) { + return metadata.MarkAsGone(id) + } + return fmt.Errorf("retrieving %q: %+v", id, err) + } + + if iothub.Properties == nil || iothub.Properties.Routing == nil || iothub.Properties.Routing.Endpoints == nil || iothub.Properties.Routing.Endpoints.CosmosDBSQLCollections == nil { + return metadata.MarkAsGone(id) + } + + for _, endpoint := range pointer.From(iothub.Properties.Routing.Endpoints.CosmosDBSQLCollections) { + if strings.EqualFold(pointer.From(endpoint.Name), id.EndpointName) { + state := &IotHubEndpointCosmosDBAccountModel{ + Name: id.EndpointName, + ResourceGroupName: pointer.From(endpoint.ResourceGroup), + IothubId: parse.NewIotHubID(id.SubscriptionId, id.ResourceGroup, id.IotHubName).ID(), + ContainerName: pointer.From(endpoint.CollectionName), + DatabaseName: pointer.From(endpoint.DatabaseName), + EndpointUri: pointer.From(endpoint.EndpointURI), + PartitionKeyName: pointer.From(endpoint.PartitionKeyName), + PartitionKeyTemplate: pointer.From(endpoint.PartitionKeyTemplate), + PrimaryKey: oldState.PrimaryKey, + SecondaryKey: oldState.SecondaryKey, + } + + authenticationType := string(devices.AuthenticationTypeKeyBased) + if string(endpoint.AuthenticationType) != "" { + authenticationType = string(endpoint.AuthenticationType) + } + state.AuthenticationType = authenticationType + + identityId := "" + if endpoint.Identity != nil && endpoint.Identity.UserAssignedIdentity != nil { + identityId = pointer.From(endpoint.Identity.UserAssignedIdentity) + } + state.IdentityId = identityId + + return metadata.Encode(state) + } + } + + return metadata.MarkAsGone(id) + }, + Timeout: 5 * time.Minute, + } +} + +func (r IotHubEndpointCosmosDBAccountResource) Update() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.IoTHub.ResourceClient + + id, err := parse.EndpointCosmosDBAccountID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + locks.ByName(id.IotHubName, IothubResourceName) + defer locks.UnlockByName(id.IotHubName, IothubResourceName) + + var state IotHubEndpointCosmosDBAccountModel + if err = metadata.Decode(&state); err != nil { + return err + } + + iothub, err := client.Get(ctx, id.ResourceGroup, id.IotHubName) + if err != nil { + if utils.ResponseWasNotFound(iothub.Response) { + return fmt.Errorf("%q was not found", id) + } + + return fmt.Errorf("retrieving %q: %+v", id, err) + } + + if iothub.Properties == nil || iothub.Properties.Routing == nil || iothub.Properties.Routing.Endpoints == nil || iothub.Properties.Routing.Endpoints.CosmosDBSQLCollections == nil { + return fmt.Errorf("%q was not found", id) + } + + for i, endpoint := range pointer.From(iothub.Properties.Routing.Endpoints.CosmosDBSQLCollections) { + if strings.EqualFold(pointer.From(endpoint.Name), id.EndpointName) { + authenticationType := devices.AuthenticationType(state.AuthenticationType) + + if authenticationType == devices.AuthenticationTypeKeyBased { + if state.PrimaryKey == "" || state.SecondaryKey == "" { + return fmt.Errorf("`primary_key` and `secondary_key` must be specified when `authentication_type` is `keyBased`") + } + + endpoint.PrimaryKey = pointer.To(state.PrimaryKey) + endpoint.SecondaryKey = pointer.To(state.SecondaryKey) + endpoint.Identity = nil + } else { + if state.PrimaryKey != "" || state.SecondaryKey != "" { + return fmt.Errorf("`primary_key` or `secondary_key` cannot be specified when `authentication_type` is `identityBased`") + } + + endpoint.PrimaryKey = nil + endpoint.SecondaryKey = nil + if state.IdentityId != "" { + endpoint.Identity = &devices.ManagedIdentity{ + UserAssignedIdentity: pointer.To(state.IdentityId), + } + } else { + endpoint.Identity = nil + } + } + + if metadata.ResourceData.HasChange("authentication_type") { + endpoint.AuthenticationType = authenticationType + } + + if metadata.ResourceData.HasChange("partition_key_name") { + if state.PartitionKeyName == "" { + endpoint.PartitionKeyName = nil + } else { + endpoint.PartitionKeyName = pointer.To(state.PartitionKeyName) + } + } + + if metadata.ResourceData.HasChange("partition_key_template") { + if state.PartitionKeyTemplate == "" { + endpoint.PartitionKeyTemplate = nil + } else { + endpoint.PartitionKeyTemplate = pointer.To(state.PartitionKeyTemplate) + } + } + + (*iothub.Properties.Routing.Endpoints.CosmosDBSQLCollections)[i] = endpoint + + future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.IotHubName, iothub, "") + if err != nil { + return fmt.Errorf("updating %s: %+v", id, err) + } + + if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { + return fmt.Errorf("waiting for the completion of the update of %s: %+v", id, err) + } + + return nil + } + } + + return fmt.Errorf("%q was not found", id) + }, + Timeout: 30 * time.Minute, + } +} + +func (r IotHubEndpointCosmosDBAccountResource) Delete() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.IoTHub.ResourceClient + id, err := parse.EndpointCosmosDBAccountID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + locks.ByName(id.IotHubName, IothubResourceName) + defer locks.UnlockByName(id.IotHubName, IothubResourceName) + + iothub, err := client.Get(ctx, id.ResourceGroup, id.IotHubName) + if err != nil { + if utils.ResponseWasNotFound(iothub.Response) { + return fmt.Errorf("%q was not found", id) + } + return fmt.Errorf("retrieving %q: %+v", id, err) + } + + if iothub.Properties == nil || iothub.Properties.Routing == nil || iothub.Properties.Routing.Endpoints == nil || iothub.Properties.Routing.Endpoints.CosmosDBSQLCollections == nil { + return nil + } + + updatedEndpoints := make([]devices.RoutingCosmosDBSQLAPIProperties, 0) + for _, endpoint := range pointer.From(iothub.Properties.Routing.Endpoints.CosmosDBSQLCollections) { + if !strings.EqualFold(pointer.From(endpoint.Name), id.EndpointName) { + updatedEndpoints = append(updatedEndpoints, endpoint) + } + } + iothub.Properties.Routing.Endpoints.CosmosDBSQLCollections = &updatedEndpoints + + future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.IotHubName, iothub, "") + if err != nil { + return fmt.Errorf("deleting %s: %+v", id, err) + } + + if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { + return fmt.Errorf("waiting for the deletion of %s: %+v", id, err) + } + + return nil + }, + Timeout: 30 * time.Minute, + } +} diff --git a/internal/services/iothub/iothub_endpoint_cosmosdb_account_resource_test.go b/internal/services/iothub/iothub_endpoint_cosmosdb_account_resource_test.go new file mode 100644 index 000000000000..31bc925c0f6b --- /dev/null +++ b/internal/services/iothub/iothub_endpoint_cosmosdb_account_resource_test.go @@ -0,0 +1,412 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package iothub_test + +import ( + "context" + "fmt" + "strings" + "testing" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/services/iothub/parse" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" +) + +type IotHubEndpointCosmosDBAccountResource struct{} + +func TestAccIotHubEndpointCosmosDBAccount_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_iothub_endpoint_cosmosdb_account", "test") + r := IotHubEndpointCosmosDBAccountResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("primary_key", "secondary_key"), + }) +} + +func TestAccIotHubEndpointCosmosDBAccount_requiresImport(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_iothub_endpoint_cosmosdb_account", "test") + r := IotHubEndpointCosmosDBAccountResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_iothub_endpoint_cosmosdb_account"), + }, + }) +} + +func TestAccIotHubEndpointCosmosDBAccount_authenticationTypeSystemAssignedIdentity(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_iothub_endpoint_cosmosdb_account", "test") + r := IotHubEndpointCosmosDBAccountResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.authenticationTypeSystemAssignedIdentity(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccIotHubEndpointCosmosDBAccount_authenticationTypeUserAssignedIdentity(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_iothub_endpoint_cosmosdb_account", "test") + r := IotHubEndpointCosmosDBAccountResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.authenticationTypeUserAssignedIdentity(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccIotHubEndpointCosmosDBAccount_authenticationTypeUpdate(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_iothub_endpoint_cosmosdb_account", "test") + r := IotHubEndpointCosmosDBAccountResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.authenticationTypeDefault(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("primary_key", "secondary_key"), + { + Config: r.authenticationTypeUserAssignedIdentity(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.authenticationTypeSystemAssignedIdentity(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.authenticationTypeDefault(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("primary_key", "secondary_key"), + }) +} + +func TestAccIotHubEndpointCosmosDBAccount_partitionKey(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_iothub_endpoint_cosmosdb_account", "test") + r := IotHubEndpointCosmosDBAccountResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basicWithPartitionKey(data, "keyName1", "{deviceid}-{YYYY}-{MM}"), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("primary_key", "secondary_key"), + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("primary_key", "secondary_key"), + { + Config: r.basicWithPartitionKey(data, "keyName2", "{deviceid}-{MM}-{YYYY}"), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("primary_key", "secondary_key"), + }) +} + +func (r IotHubEndpointCosmosDBAccountResource) basic(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_iothub_endpoint_cosmosdb_account" "test" { + name = "acctest" + resource_group_name = azurerm_resource_group.endpoint.name + iothub_id = azurerm_iothub.test.id + container_name = azurerm_cosmosdb_sql_container.test.name + database_name = azurerm_cosmosdb_sql_database.test.name + endpoint_uri = azurerm_cosmosdb_account.test.endpoint + primary_key = azurerm_cosmosdb_account.test.primary_key + secondary_key = azurerm_cosmosdb_account.test.secondary_key +} +`, r.template(data)) +} + +func (r IotHubEndpointCosmosDBAccountResource) requiresImport(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_iothub_endpoint_cosmosdb_account" "import" { + name = azurerm_iothub_endpoint_cosmosdb_account.test.name + resource_group_name = azurerm_iothub_endpoint_cosmosdb_account.test.resource_group_name + iothub_id = azurerm_iothub_endpoint_cosmosdb_account.test.iothub_id + container_name = azurerm_iothub_endpoint_cosmosdb_account.test.container_name + database_name = azurerm_iothub_endpoint_cosmosdb_account.test.database_name + endpoint_uri = azurerm_iothub_endpoint_cosmosdb_account.test.endpoint_uri + primary_key = azurerm_iothub_endpoint_cosmosdb_account.test.primary_key + secondary_key = azurerm_iothub_endpoint_cosmosdb_account.test.secondary_key +} +`, r.basic(data)) +} + +func (r IotHubEndpointCosmosDBAccountResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { + id, err := parse.EndpointCosmosDBAccountID(state.ID) + if err != nil { + return nil, err + } + + iothub, err := clients.IoTHub.ResourceClient.Get(ctx, id.ResourceGroup, id.IotHubName) + if err != nil || iothub.Properties == nil || iothub.Properties.Routing == nil || iothub.Properties.Routing.Endpoints == nil { + return nil, fmt.Errorf("reading %s: %+v", *id, err) + } + + if endpoints := iothub.Properties.Routing.Endpoints.CosmosDBSQLCollections; endpoints != nil { + for _, endpoint := range pointer.From(endpoints) { + if strings.EqualFold(pointer.From(endpoint.Name), id.EndpointName) { + return pointer.To(true), nil + } + } + } + + return pointer.To(false), nil +} + +func (r IotHubEndpointCosmosDBAccountResource) authenticationTypeDefault(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_iothub_endpoint_cosmosdb_account" "test" { + name = "acctest" + resource_group_name = azurerm_resource_group.endpoint.name + iothub_id = azurerm_iothub.test.id + container_name = azurerm_cosmosdb_sql_container.test.name + database_name = azurerm_cosmosdb_sql_database.test.name + endpoint_uri = azurerm_cosmosdb_account.test.endpoint + + primary_key = azurerm_cosmosdb_account.test.primary_key + secondary_key = azurerm_cosmosdb_account.test.secondary_key +} +`, r.authenticationTemplate(data)) +} + +func (r IotHubEndpointCosmosDBAccountResource) authenticationTypeSystemAssignedIdentity(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_iothub_endpoint_cosmosdb_account" "test" { + name = "acctest" + resource_group_name = azurerm_resource_group.endpoint.name + iothub_id = azurerm_iothub.test.id + container_name = azurerm_cosmosdb_sql_container.test.name + database_name = azurerm_cosmosdb_sql_database.test.name + endpoint_uri = azurerm_cosmosdb_account.test.endpoint + + authentication_type = "identityBased" + + depends_on = [ + azurerm_cosmosdb_sql_role_assignment.system, + ] +} +`, r.authenticationTemplate(data)) +} + +func (r IotHubEndpointCosmosDBAccountResource) authenticationTypeUserAssignedIdentity(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_iothub_endpoint_cosmosdb_account" "test" { + name = "acctest" + resource_group_name = azurerm_resource_group.endpoint.name + iothub_id = azurerm_iothub.test.id + container_name = azurerm_cosmosdb_sql_container.test.name + database_name = azurerm_cosmosdb_sql_database.test.name + endpoint_uri = azurerm_cosmosdb_account.test.endpoint + + authentication_type = "identityBased" + identity_id = azurerm_user_assigned_identity.test.id + + depends_on = [ + azurerm_cosmosdb_sql_role_assignment.user, + ] +} +`, r.authenticationTemplate(data)) +} + +func (r IotHubEndpointCosmosDBAccountResource) authenticationTemplate(data acceptance.TestData) string { + return fmt.Sprintf(` +%[1]s + +resource "azurerm_user_assigned_identity" "test" { + name = "acctestuai-%[2]d" + resource_group_name = azurerm_resource_group.iothub.name + location = azurerm_resource_group.iothub.location +} + +resource "azurerm_iothub" "test" { + name = "acctestIoTHub-%[2]d" + resource_group_name = azurerm_resource_group.iothub.name + location = azurerm_resource_group.iothub.location + + sku { + name = "B1" + capacity = "1" + } + + identity { + type = "SystemAssigned, UserAssigned" + identity_ids = [ + azurerm_user_assigned_identity.test.id, + ] + } +} + +resource "azurerm_cosmosdb_sql_role_definition" "test" { + name = "acctestsqlrole%[3]s" + resource_group_name = azurerm_resource_group.endpoint.name + account_name = azurerm_cosmosdb_account.test.name + assignable_scopes = [ + azurerm_cosmosdb_account.test.id, + ] + + permissions { + data_actions = [ + "Microsoft.DocumentDB/databaseAccounts/readMetadata", + ] + } +} + +resource "azurerm_cosmosdb_sql_role_assignment" "system" { + resource_group_name = azurerm_resource_group.endpoint.name + account_name = azurerm_cosmosdb_account.test.name + role_definition_id = azurerm_cosmosdb_sql_role_definition.test.id + principal_id = azurerm_iothub.test.identity[0].principal_id + scope = azurerm_cosmosdb_account.test.id +} + +resource "azurerm_cosmosdb_sql_role_assignment" "user" { + resource_group_name = azurerm_resource_group.endpoint.name + account_name = azurerm_cosmosdb_account.test.name + role_definition_id = azurerm_cosmosdb_sql_role_definition.test.id + principal_id = azurerm_user_assigned_identity.test.principal_id + scope = azurerm_cosmosdb_account.test.id +} +`, r.dependencies(data), data.RandomInteger, data.RandomString) +} + +func (r IotHubEndpointCosmosDBAccountResource) basicWithPartitionKey(data acceptance.TestData, partitionKeyName string, partitionKeyTemplate string) string { + return fmt.Sprintf(` +%s + +resource "azurerm_iothub_endpoint_cosmosdb_account" "test" { + name = "acctest" + resource_group_name = azurerm_resource_group.endpoint.name + iothub_id = azurerm_iothub.test.id + container_name = azurerm_cosmosdb_sql_container.test.name + database_name = azurerm_cosmosdb_sql_database.test.name + endpoint_uri = azurerm_cosmosdb_account.test.endpoint + primary_key = azurerm_cosmosdb_account.test.primary_key + secondary_key = azurerm_cosmosdb_account.test.secondary_key + + partition_key_name = "%s" + partition_key_template = "%s" +} +`, r.template(data), partitionKeyName, partitionKeyTemplate) +} + +func (r IotHubEndpointCosmosDBAccountResource) template(data acceptance.TestData) string { + return fmt.Sprintf(` +%[1]s + +resource "azurerm_iothub" "test" { + name = "acctestIoTHub-%[2]d" + resource_group_name = azurerm_resource_group.iothub.name + location = azurerm_resource_group.iothub.location + + sku { + name = "B1" + capacity = "1" + } +} +`, r.dependencies(data), data.RandomInteger) +} + +func (IotHubEndpointCosmosDBAccountResource) dependencies(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "iothub" { + name = "acctestRG-iothub-%[2]d" + location = "%[1]s" +} + +resource "azurerm_resource_group" "endpoint" { + name = "acctestRG-iothub-endpoint-%[2]d" + location = "%[1]s" +} + +resource "azurerm_cosmosdb_account" "test" { + name = "acctest-ca-%[2]d" + location = azurerm_resource_group.endpoint.location + resource_group_name = azurerm_resource_group.endpoint.name + offer_type = "Standard" + kind = "GlobalDocumentDB" + + consistency_policy { + consistency_level = "Strong" + } + + geo_location { + location = azurerm_resource_group.endpoint.location + failover_priority = 0 + } +} + +resource "azurerm_cosmosdb_sql_database" "test" { + name = "acctest-%[2]d" + resource_group_name = azurerm_cosmosdb_account.test.resource_group_name + account_name = azurerm_cosmosdb_account.test.name +} + +resource "azurerm_cosmosdb_sql_container" "test" { + name = "acctest-CSQLC-%[2]d" + resource_group_name = azurerm_cosmosdb_account.test.resource_group_name + account_name = azurerm_cosmosdb_account.test.name + database_name = azurerm_cosmosdb_sql_database.test.name + partition_key_path = "/definition/id" +} +`, data.Locations.Primary, data.RandomInteger) +} diff --git a/internal/services/iothub/parse/endpoint_cosmos_db_account.go b/internal/services/iothub/parse/endpoint_cosmos_db_account.go new file mode 100644 index 000000000000..fe7f715295e0 --- /dev/null +++ b/internal/services/iothub/parse/endpoint_cosmos_db_account.go @@ -0,0 +1,134 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package parse + +// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +type EndpointCosmosDBAccountId struct { + SubscriptionId string + ResourceGroup string + IotHubName string + EndpointName string +} + +func NewEndpointCosmosDBAccountID(subscriptionId, resourceGroup, iotHubName, endpointName string) EndpointCosmosDBAccountId { + return EndpointCosmosDBAccountId{ + SubscriptionId: subscriptionId, + ResourceGroup: resourceGroup, + IotHubName: iotHubName, + EndpointName: endpointName, + } +} + +func (id EndpointCosmosDBAccountId) String() string { + segments := []string{ + fmt.Sprintf("Endpoint Name %q", id.EndpointName), + fmt.Sprintf("Iot Hub Name %q", id.IotHubName), + fmt.Sprintf("Resource Group %q", id.ResourceGroup), + } + segmentsStr := strings.Join(segments, " / ") + return fmt.Sprintf("%s: (%s)", "Endpoint Cosmos D B Account", segmentsStr) +} + +func (id EndpointCosmosDBAccountId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Devices/iotHubs/%s/endpoints/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroup, id.IotHubName, id.EndpointName) +} + +// EndpointCosmosDBAccountID parses a EndpointCosmosDBAccount ID into an EndpointCosmosDBAccountId struct +func EndpointCosmosDBAccountID(input string) (*EndpointCosmosDBAccountId, error) { + id, err := resourceids.ParseAzureResourceID(input) + if err != nil { + return nil, fmt.Errorf("parsing %q as an EndpointCosmosDBAccount ID: %+v", input, err) + } + + resourceId := EndpointCosmosDBAccountId{ + SubscriptionId: id.SubscriptionID, + ResourceGroup: id.ResourceGroup, + } + + if resourceId.SubscriptionId == "" { + return nil, fmt.Errorf("ID was missing the 'subscriptions' element") + } + + if resourceId.ResourceGroup == "" { + return nil, fmt.Errorf("ID was missing the 'resourceGroups' element") + } + + if resourceId.IotHubName, err = id.PopSegment("iotHubs"); err != nil { + return nil, err + } + if resourceId.EndpointName, err = id.PopSegment("endpoints"); err != nil { + return nil, err + } + + if err := id.ValidateNoEmptySegments(input); err != nil { + return nil, err + } + + return &resourceId, nil +} + +// EndpointCosmosDBAccountIDInsensitively parses an EndpointCosmosDBAccount ID into an EndpointCosmosDBAccountId struct, insensitively +// This should only be used to parse an ID for rewriting, the EndpointCosmosDBAccountID +// method should be used instead for validation etc. +// +// Whilst this may seem strange, this enables Terraform have consistent casing +// which works around issues in Core, whilst handling broken API responses. +func EndpointCosmosDBAccountIDInsensitively(input string) (*EndpointCosmosDBAccountId, error) { + id, err := resourceids.ParseAzureResourceID(input) + if err != nil { + return nil, err + } + + resourceId := EndpointCosmosDBAccountId{ + SubscriptionId: id.SubscriptionID, + ResourceGroup: id.ResourceGroup, + } + + if resourceId.SubscriptionId == "" { + return nil, fmt.Errorf("ID was missing the 'subscriptions' element") + } + + if resourceId.ResourceGroup == "" { + return nil, fmt.Errorf("ID was missing the 'resourceGroups' element") + } + + // find the correct casing for the 'iotHubs' segment + iotHubsKey := "iotHubs" + for key := range id.Path { + if strings.EqualFold(key, iotHubsKey) { + iotHubsKey = key + break + } + } + if resourceId.IotHubName, err = id.PopSegment(iotHubsKey); err != nil { + return nil, err + } + + // find the correct casing for the 'endpoints' segment + endpointsKey := "endpoints" + for key := range id.Path { + if strings.EqualFold(key, endpointsKey) { + endpointsKey = key + break + } + } + if resourceId.EndpointName, err = id.PopSegment(endpointsKey); err != nil { + return nil, err + } + + if err := id.ValidateNoEmptySegments(input); err != nil { + return nil, err + } + + return &resourceId, nil +} diff --git a/internal/services/iothub/parse/endpoint_cosmos_db_account_test.go b/internal/services/iothub/parse/endpoint_cosmos_db_account_test.go new file mode 100644 index 000000000000..3f20debf3675 --- /dev/null +++ b/internal/services/iothub/parse/endpoint_cosmos_db_account_test.go @@ -0,0 +1,267 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package parse + +// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten + +import ( + "testing" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +var _ resourceids.Id = EndpointCosmosDBAccountId{} + +func TestEndpointCosmosDBAccountIDFormatter(t *testing.T) { + actual := NewEndpointCosmosDBAccountID("12345678-1234-9876-4563-123456789012", "resGroup1", "hub1", "cosmosDBAccountEndpoint1").ID() + expected := "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/endpoints/cosmosDBAccountEndpoint1" + if actual != expected { + t.Fatalf("Expected %q but got %q", expected, actual) + } +} + +func TestEndpointCosmosDBAccountID(t *testing.T) { + testData := []struct { + Input string + Error bool + Expected *EndpointCosmosDBAccountId + }{ + + { + // empty + Input: "", + Error: true, + }, + + { + // missing SubscriptionId + Input: "/", + Error: true, + }, + + { + // missing value for SubscriptionId + Input: "/subscriptions/", + Error: true, + }, + + { + // missing ResourceGroup + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", + Error: true, + }, + + { + // missing value for ResourceGroup + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", + Error: true, + }, + + { + // missing IotHubName + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/", + Error: true, + }, + + { + // missing value for IotHubName + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/", + Error: true, + }, + + { + // missing EndpointName + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/", + Error: true, + }, + + { + // missing value for EndpointName + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/endpoints/", + Error: true, + }, + + { + // valid + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/endpoints/cosmosDBAccountEndpoint1", + Expected: &EndpointCosmosDBAccountId{ + SubscriptionId: "12345678-1234-9876-4563-123456789012", + ResourceGroup: "resGroup1", + IotHubName: "hub1", + EndpointName: "cosmosDBAccountEndpoint1", + }, + }, + + { + // upper-cased + Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/HUB1/ENDPOINTS/COSMOSDBACCOUNTENDPOINT1", + Error: true, + }, + } + + for _, v := range testData { + t.Logf("[DEBUG] Testing %q", v.Input) + + actual, err := EndpointCosmosDBAccountID(v.Input) + if err != nil { + if v.Error { + continue + } + + t.Fatalf("Expect a value but got an error: %s", err) + } + if v.Error { + t.Fatal("Expect an error but didn't get one") + } + + if actual.SubscriptionId != v.Expected.SubscriptionId { + t.Fatalf("Expected %q but got %q for SubscriptionId", v.Expected.SubscriptionId, actual.SubscriptionId) + } + if actual.ResourceGroup != v.Expected.ResourceGroup { + t.Fatalf("Expected %q but got %q for ResourceGroup", v.Expected.ResourceGroup, actual.ResourceGroup) + } + if actual.IotHubName != v.Expected.IotHubName { + t.Fatalf("Expected %q but got %q for IotHubName", v.Expected.IotHubName, actual.IotHubName) + } + if actual.EndpointName != v.Expected.EndpointName { + t.Fatalf("Expected %q but got %q for EndpointName", v.Expected.EndpointName, actual.EndpointName) + } + } +} + +func TestEndpointCosmosDBAccountIDInsensitively(t *testing.T) { + testData := []struct { + Input string + Error bool + Expected *EndpointCosmosDBAccountId + }{ + + { + // empty + Input: "", + Error: true, + }, + + { + // missing SubscriptionId + Input: "/", + Error: true, + }, + + { + // missing value for SubscriptionId + Input: "/subscriptions/", + Error: true, + }, + + { + // missing ResourceGroup + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", + Error: true, + }, + + { + // missing value for ResourceGroup + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", + Error: true, + }, + + { + // missing IotHubName + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/", + Error: true, + }, + + { + // missing value for IotHubName + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/", + Error: true, + }, + + { + // missing EndpointName + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/", + Error: true, + }, + + { + // missing value for EndpointName + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/endpoints/", + Error: true, + }, + + { + // valid + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/endpoints/cosmosDBAccountEndpoint1", + Expected: &EndpointCosmosDBAccountId{ + SubscriptionId: "12345678-1234-9876-4563-123456789012", + ResourceGroup: "resGroup1", + IotHubName: "hub1", + EndpointName: "cosmosDBAccountEndpoint1", + }, + }, + + { + // lower-cased segment names + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iothubs/hub1/endpoints/cosmosDBAccountEndpoint1", + Expected: &EndpointCosmosDBAccountId{ + SubscriptionId: "12345678-1234-9876-4563-123456789012", + ResourceGroup: "resGroup1", + IotHubName: "hub1", + EndpointName: "cosmosDBAccountEndpoint1", + }, + }, + + { + // upper-cased segment names + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/IOTHUBS/hub1/ENDPOINTS/cosmosDBAccountEndpoint1", + Expected: &EndpointCosmosDBAccountId{ + SubscriptionId: "12345678-1234-9876-4563-123456789012", + ResourceGroup: "resGroup1", + IotHubName: "hub1", + EndpointName: "cosmosDBAccountEndpoint1", + }, + }, + + { + // mixed-cased segment names + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/IoThUbS/hub1/EnDpOiNtS/cosmosDBAccountEndpoint1", + Expected: &EndpointCosmosDBAccountId{ + SubscriptionId: "12345678-1234-9876-4563-123456789012", + ResourceGroup: "resGroup1", + IotHubName: "hub1", + EndpointName: "cosmosDBAccountEndpoint1", + }, + }, + } + + for _, v := range testData { + t.Logf("[DEBUG] Testing %q", v.Input) + + actual, err := EndpointCosmosDBAccountIDInsensitively(v.Input) + if err != nil { + if v.Error { + continue + } + + t.Fatalf("Expect a value but got an error: %s", err) + } + if v.Error { + t.Fatal("Expect an error but didn't get one") + } + + if actual.SubscriptionId != v.Expected.SubscriptionId { + t.Fatalf("Expected %q but got %q for SubscriptionId", v.Expected.SubscriptionId, actual.SubscriptionId) + } + if actual.ResourceGroup != v.Expected.ResourceGroup { + t.Fatalf("Expected %q but got %q for ResourceGroup", v.Expected.ResourceGroup, actual.ResourceGroup) + } + if actual.IotHubName != v.Expected.IotHubName { + t.Fatalf("Expected %q but got %q for IotHubName", v.Expected.IotHubName, actual.IotHubName) + } + if actual.EndpointName != v.Expected.EndpointName { + t.Fatalf("Expected %q but got %q for EndpointName", v.Expected.EndpointName, actual.EndpointName) + } + } +} diff --git a/internal/services/iothub/registration.go b/internal/services/iothub/registration.go index e4173a175b14..4cc375619b38 100644 --- a/internal/services/iothub/registration.go +++ b/internal/services/iothub/registration.go @@ -67,5 +67,6 @@ func (r Registration) Resources() []sdk.Resource { IotHubDeviceUpdateAccountResource{}, IotHubDeviceUpdateInstanceResource{}, IotHubFileUploadResource{}, + IotHubEndpointCosmosDBAccountResource{}, } } diff --git a/internal/services/iothub/resourceids.go b/internal/services/iothub/resourceids.go index 86659b71f7e3..e0853d4d72c6 100644 --- a/internal/services/iothub/resourceids.go +++ b/internal/services/iothub/resourceids.go @@ -9,6 +9,7 @@ package iothub //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=FallbackRoute -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/fallbackRoute/default -rewrite=true //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=Route -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/routes/route1 -rewrite=true //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=SharedAccessPolicy -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/iotHubKeys/sharedAccessPolicy1 -rewrite=true +//go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=EndpointCosmosDBAccount -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/endpoints/cosmosDBAccountEndpoint1 -rewrite=true //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=EndpointStorageContainer -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/endpoints/storageContainerEndpoint1 -rewrite=true //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=EndpointServiceBusTopic -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/endpoints/serviceBusTopicEndpoint1 -rewrite=true //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=EndpointServiceBusQueue -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/endpoints/serviceBusQueueEndpoint1 -rewrite=true diff --git a/internal/services/iothub/validate/endpoint_cosmos_db_account_id.go b/internal/services/iothub/validate/endpoint_cosmos_db_account_id.go new file mode 100644 index 000000000000..b3e4901a0a0b --- /dev/null +++ b/internal/services/iothub/validate/endpoint_cosmos_db_account_id.go @@ -0,0 +1,26 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package validate + +// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten + +import ( + "fmt" + + "github.com/hashicorp/terraform-provider-azurerm/internal/services/iothub/parse" +) + +func EndpointCosmosDBAccountID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := parse.EndpointCosmosDBAccountID(v); err != nil { + errors = append(errors, err) + } + + return +} diff --git a/internal/services/iothub/validate/endpoint_cosmos_db_account_id_test.go b/internal/services/iothub/validate/endpoint_cosmos_db_account_id_test.go new file mode 100644 index 000000000000..a48f5fbdd44b --- /dev/null +++ b/internal/services/iothub/validate/endpoint_cosmos_db_account_id_test.go @@ -0,0 +1,91 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package validate + +// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten + +import "testing" + +func TestEndpointCosmosDBAccountID(t *testing.T) { + cases := []struct { + Input string + Valid bool + }{ + + { + // empty + Input: "", + Valid: false, + }, + + { + // missing SubscriptionId + Input: "/", + Valid: false, + }, + + { + // missing value for SubscriptionId + Input: "/subscriptions/", + Valid: false, + }, + + { + // missing ResourceGroup + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", + Valid: false, + }, + + { + // missing value for ResourceGroup + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", + Valid: false, + }, + + { + // missing IotHubName + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/", + Valid: false, + }, + + { + // missing value for IotHubName + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/", + Valid: false, + }, + + { + // missing EndpointName + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/", + Valid: false, + }, + + { + // missing value for EndpointName + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/endpoints/", + Valid: false, + }, + + { + // valid + Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Devices/iotHubs/hub1/endpoints/cosmosDBAccountEndpoint1", + Valid: true, + }, + + { + // upper-cased + Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/HUB1/ENDPOINTS/COSMOSDBACCOUNTENDPOINT1", + Valid: false, + }, + } + for _, tc := range cases { + t.Logf("[DEBUG] Testing Value %s", tc.Input) + _, errors := EndpointCosmosDBAccountID(tc.Input, "test") + valid := len(errors) == 0 + + if tc.Valid != valid { + t.Fatalf("Expected %t but got %t", tc.Valid, valid) + } + } +} diff --git a/website/docs/r/iothub_endpoint_cosmosdb_account.html.markdown b/website/docs/r/iothub_endpoint_cosmosdb_account.html.markdown new file mode 100644 index 000000000000..1a89224d2636 --- /dev/null +++ b/website/docs/r/iothub_endpoint_cosmosdb_account.html.markdown @@ -0,0 +1,136 @@ +--- +subcategory: "IoT Hub" +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_iothub_endpoint_cosmosdb_account" +description: |- + Manages an IotHub Cosmos DB Account Endpoint +--- + +# azurerm_iothub_endpoint_cosmosdb_account + +Manages an IotHub Cosmos DB Account Endpoint + +~> **NOTE:** Endpoints can be defined either directly on the `azurerm_iothub` resource, or using the `azurerm_iothub_endpoint_*` resources - but the two ways of defining the endpoints cannot be used together. If both are used against the same IoTHub, spurious changes will occur. Also, defining a `azurerm_iothub_endpoint_*` resource and another endpoint of a different type directly on the `azurerm_iothub` resource is not supported. + +## Example Usage + +```hcl +resource "azurerm_resource_group" "example" { + name = "example-resources" + location = "West Europe" +} + +resource "azurerm_iothub" "example" { + name = "exampleIothub" + resource_group_name = azurerm_resource_group.example.name + location = azurerm_resource_group.example.location + + sku { + name = "B1" + capacity = "1" + } + + tags = { + purpose = "example" + } +} + +resource "azurerm_cosmosdb_account" "example" { + name = "cosmosdb-account" + location = azurerm_resource_group.example.location + resource_group_name = azurerm_resource_group.example.name + offer_type = "Standard" + kind = "GlobalDocumentDB" + + consistency_policy { + consistency_level = "Strong" + } + + geo_location { + location = azurerm_resource_group.example.location + failover_priority = 0 + } +} + +resource "azurerm_cosmosdb_sql_database" "example" { + name = "cosmos-sql-db" + resource_group_name = azurerm_cosmosdb_account.example.resource_group_name + account_name = azurerm_cosmosdb_account.example.name +} + +resource "azurerm_cosmosdb_sql_container" "example" { + name = "example-container" + resource_group_name = azurerm_cosmosdb_account.example.resource_group_name + account_name = azurerm_cosmosdb_account.example.name + database_name = azurerm_cosmosdb_sql_database.example.name + partition_key_path = "/definition/id" +} + +resource "azurerm_iothub_endpoint_cosmosdb_account" "example" { + name = "example" + resource_group_name = azurerm_resource_group.example.name + iothub_id = azurerm_iothub.example.id + container_name = azurerm_cosmosdb_sql_container.example.name + database_name = azurerm_cosmosdb_sql_database.example.name + endpoint_uri = azurerm_cosmosdb_account.example.endpoint + primary_key = azurerm_cosmosdb_account.example.primary_key + secondary_key = azurerm_cosmosdb_account.example.secondary_key +} +``` + +## Argument Reference + +The following arguments are supported: + +* `name` - (Required) The name of the endpoint. The name must be unique across endpoint types. The following names are reserved: `events`, `operationsMonitoringEvents`, `fileNotifications` and `$default`. Changing this forces a new resource to be created. + +* `resource_group_name` - (Required) The name of the resource group under which the Cosmos DB Account has been created. Changing this forces a new resource to be created. + +* `iothub_id` - (Required) The ID of the IoT Hub to create the endpoint. Changing this forces a new resource to be created. + +* `container_name` - (Required) The name of the Cosmos DB Container in the Cosmos DB Database. Changing this forces a new resource to be created. + +* `database_name` - (Required) The name of the Cosmos DB Database in the Cosmos DB Account. Changing this forces a new resource to be created. + +* `endpoint_uri` - (Required) The URI of the Cosmos DB Account. Changing this forces a new resource to be created. + +* `authentication_type` - (Optional) The type used to authenticate against the Cosmos DB Account endpoint. Possible values are `keyBased` and `identityBased`. Defaults to `keyBased`. + +* `identity_id` - (Optional) The ID of the User Managed Identity used to authenticate against the Cosmos DB Account endpoint. + +~> **NOTE:** `identity_id` can only be specified when `authentication_type` is `identityBased`. It must be one of the `identity_ids` of the Iot Hub. If not specified when `authentication_type` is `identityBased`, System Assigned Managed Identity of the Iot Hub will be used. + +* `partition_key_name` - (Optional) The name of the partition key associated with the Cosmos DB Container. + +* `partition_key_template` - (Optional) The template for generating a synthetic partition key value for use within the Cosmos DB Container. + +* `primary_key` - (Optional) The primary key of the Cosmos DB Account. + +~> **NOTE:** `primary_key` must and can only be specified when `authentication_type` is `keyBased`. + +* `secondary_key` - (Optional) The secondary key of the Cosmos DB Account. + +~> **NOTE:** `secondary_key` must and can only be specified when `authentication_type` is `keyBased`. + +## Attributes Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the IoTHub Cosmos DB Account Endpoint. + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: + +* `create` - (Defaults to 30 minutes) Used when creating the IotHub Cosmos DB Account Endpoint. +* `update` - (Defaults to 30 minutes) Used when updating the IotHub Cosmos DB Account Endpoint. +* `read` - (Defaults to 5 minutes) Used when retrieving the IotHub Cosmos DB Account Endpoint. +* `delete` - (Defaults to 30 minutes) Used when deleting the IotHub Cosmos DB Account Endpoint. + +## Import + +IoTHub Cosmos DB Account Endpoint can be imported using the `resource id`, e.g. + +```shell +terraform import azurerm_iothub_endpoint_cosmosdb_account.endpoint1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/iotHubs/hub1/endpoints/cosmosDBAccountEndpoint1 +``` From 749399bff49e24df3a93d4f3f2a80db20b599810 Mon Sep 17 00:00:00 2001 From: catriona-m <86247157+catriona-m@users.noreply.github.com> Date: Fri, 8 Sep 2023 13:02:30 +0100 Subject: [PATCH 154/336] Update CHANGELOG.md #23065 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3447a00f040..9d09d284ab0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ENHANCEMENTS: FEATURES: * **New Resource**: `azurerm_virtual_hub_routing_intent` [GH-23138] +* **New Resource**: `azurerm_iothub_endpoint_cosmosdb_account` [GH-23065] ## 3.72.0 (September 07, 2023) From 83229eec7d7a1544c82f6137ec9759e6d2371571 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Fri, 8 Sep 2023 15:39:37 +0200 Subject: [PATCH 155/336] pluginsdk/resource: updating the import for `resource.StateChangeConf` --- internal/tf/pluginsdk/resource.go | 3 +- .../v2/helper/retry/error.go | 94 ++++++ .../v2/helper/retry/state.go | 283 ++++++++++++++++++ .../v2/helper/retry/wait.go | 116 +++++++ vendor/modules.txt | 1 + 5 files changed, 496 insertions(+), 1 deletion(-) create mode 100644 vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry/error.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry/state.go create mode 100644 vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry/wait.go diff --git a/internal/tf/pluginsdk/resource.go b/internal/tf/pluginsdk/resource.go index 9d672f984347..718850ff6b5a 100644 --- a/internal/tf/pluginsdk/resource.go +++ b/internal/tf/pluginsdk/resource.go @@ -4,6 +4,7 @@ package pluginsdk import ( + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) @@ -25,7 +26,7 @@ type ( ) type ( - StateChangeConf = resource.StateChangeConf + StateChangeConf = retry.StateChangeConf StateRefreshFunc = resource.StateRefreshFunc ) diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry/error.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry/error.go new file mode 100644 index 000000000000..789c712f51e1 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry/error.go @@ -0,0 +1,94 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package retry + +import ( + "fmt" + "strings" + "time" +) + +type NotFoundError struct { + LastError error + LastRequest interface{} + LastResponse interface{} + Message string + Retries int +} + +func (e *NotFoundError) Error() string { + if e.Message != "" { + return e.Message + } + + if e.Retries > 0 { + return fmt.Sprintf("couldn't find resource (%d retries)", e.Retries) + } + + return "couldn't find resource" +} + +func (e *NotFoundError) Unwrap() error { + return e.LastError +} + +// UnexpectedStateError is returned when Refresh returns a state that's neither in Target nor Pending +type UnexpectedStateError struct { + LastError error + State string + ExpectedState []string +} + +func (e *UnexpectedStateError) Error() string { + return fmt.Sprintf( + "unexpected state '%s', wanted target '%s'. last error: %s", + e.State, + strings.Join(e.ExpectedState, ", "), + e.LastError, + ) +} + +func (e *UnexpectedStateError) Unwrap() error { + return e.LastError +} + +// TimeoutError is returned when WaitForState times out +type TimeoutError struct { + LastError error + LastState string + Timeout time.Duration + ExpectedState []string +} + +func (e *TimeoutError) Error() string { + expectedState := "resource to be gone" + if len(e.ExpectedState) > 0 { + expectedState = fmt.Sprintf("state to become '%s'", strings.Join(e.ExpectedState, ", ")) + } + + extraInfo := make([]string, 0) + if e.LastState != "" { + extraInfo = append(extraInfo, fmt.Sprintf("last state: '%s'", e.LastState)) + } + if e.Timeout > 0 { + extraInfo = append(extraInfo, fmt.Sprintf("timeout: %s", e.Timeout.String())) + } + + suffix := "" + if len(extraInfo) > 0 { + suffix = fmt.Sprintf(" (%s)", strings.Join(extraInfo, ", ")) + } + + if e.LastError != nil { + return fmt.Sprintf("timeout while waiting for %s%s: %s", + expectedState, suffix, e.LastError) + } + + return fmt.Sprintf("timeout while waiting for %s%s", + expectedState, suffix) +} + +func (e *TimeoutError) Unwrap() error { + return e.LastError +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry/state.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry/state.go new file mode 100644 index 000000000000..4780090d9561 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry/state.go @@ -0,0 +1,283 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package retry + +import ( + "context" + "log" + "time" +) + +var refreshGracePeriod = 30 * time.Second + +// StateRefreshFunc is a function type used for StateChangeConf that is +// responsible for refreshing the item being watched for a state change. +// +// It returns three results. `result` is any object that will be returned +// as the final object after waiting for state change. This allows you to +// return the final updated object, for example an EC2 instance after refreshing +// it. A nil result represents not found. +// +// `state` is the latest state of that object. And `err` is any error that +// may have happened while refreshing the state. +type StateRefreshFunc func() (result interface{}, state string, err error) + +// StateChangeConf is the configuration struct used for `WaitForState`. +type StateChangeConf struct { + Delay time.Duration // Wait this time before starting checks + Pending []string // States that are "allowed" and will continue trying + Refresh StateRefreshFunc // Refreshes the current state + Target []string // Target state + Timeout time.Duration // The amount of time to wait before timeout + MinTimeout time.Duration // Smallest time to wait before refreshes + PollInterval time.Duration // Override MinTimeout/backoff and only poll this often + NotFoundChecks int // Number of times to allow not found (nil result from Refresh) + + // This is to work around inconsistent APIs + ContinuousTargetOccurence int // Number of times the Target state has to occur continuously +} + +// WaitForStateContext watches an object and waits for it to achieve the state +// specified in the configuration using the specified Refresh() func, +// waiting the number of seconds specified in the timeout configuration. +// +// If the Refresh function returns an error, exit immediately with that error. +// +// If the Refresh function returns a state other than the Target state or one +// listed in Pending, return immediately with an error. +// +// If the Timeout is exceeded before reaching the Target state, return an +// error. +// +// Otherwise, the result is the result of the first call to the Refresh function to +// reach the target state. +// +// Cancellation from the passed in context will cancel the refresh loop +func (conf *StateChangeConf) WaitForStateContext(ctx context.Context) (interface{}, error) { + log.Printf("[DEBUG] Waiting for state to become: %s", conf.Target) + + notfoundTick := 0 + targetOccurence := 0 + + // Set a default for times to check for not found + if conf.NotFoundChecks == 0 { + conf.NotFoundChecks = 20 + } + + if conf.ContinuousTargetOccurence == 0 { + conf.ContinuousTargetOccurence = 1 + } + + type Result struct { + Result interface{} + State string + Error error + Done bool + } + + // Read every result from the refresh loop, waiting for a positive result.Done. + resCh := make(chan Result, 1) + // cancellation channel for the refresh loop + cancelCh := make(chan struct{}) + + result := Result{} + + go func() { + defer close(resCh) + + select { + case <-time.After(conf.Delay): + case <-cancelCh: + return + } + + // start with 0 delay for the first loop + var wait time.Duration + + for { + // store the last result + resCh <- result + + // wait and watch for cancellation + select { + case <-cancelCh: + return + case <-time.After(wait): + // first round had no wait + if wait == 0 { + wait = 100 * time.Millisecond + } + } + + res, currentState, err := conf.Refresh() + result = Result{ + Result: res, + State: currentState, + Error: err, + } + + if err != nil { + resCh <- result + return + } + + // If we're waiting for the absence of a thing, then return + if res == nil && len(conf.Target) == 0 { + targetOccurence++ + if conf.ContinuousTargetOccurence == targetOccurence { + result.Done = true + resCh <- result + return + } + continue + } + + if res == nil { + // If we didn't find the resource, check if we have been + // not finding it for awhile, and if so, report an error. + notfoundTick++ + if notfoundTick > conf.NotFoundChecks { + result.Error = &NotFoundError{ + LastError: err, + Retries: notfoundTick, + } + resCh <- result + return + } + } else { + // Reset the counter for when a resource isn't found + notfoundTick = 0 + found := false + + for _, allowed := range conf.Target { + if currentState == allowed { + found = true + targetOccurence++ + if conf.ContinuousTargetOccurence == targetOccurence { + result.Done = true + resCh <- result + return + } + continue + } + } + + for _, allowed := range conf.Pending { + if currentState == allowed { + found = true + targetOccurence = 0 + break + } + } + + if !found && len(conf.Pending) > 0 { + result.Error = &UnexpectedStateError{ + LastError: err, + State: result.State, + ExpectedState: conf.Target, + } + resCh <- result + return + } + } + + // Wait between refreshes using exponential backoff, except when + // waiting for the target state to reoccur. + if targetOccurence == 0 { + wait *= 2 + } + + // If a poll interval has been specified, choose that interval. + // Otherwise bound the default value. + if conf.PollInterval > 0 && conf.PollInterval < 180*time.Second { + wait = conf.PollInterval + } else { + if wait < conf.MinTimeout { + wait = conf.MinTimeout + } else if wait > 10*time.Second { + wait = 10 * time.Second + } + } + + log.Printf("[TRACE] Waiting %s before next try", wait) + } + }() + + // store the last value result from the refresh loop + lastResult := Result{} + + timeout := time.After(conf.Timeout) + for { + select { + case r, ok := <-resCh: + // channel closed, so return the last result + if !ok { + return lastResult.Result, lastResult.Error + } + + // we reached the intended state + if r.Done { + return r.Result, r.Error + } + + // still waiting, store the last result + lastResult = r + case <-ctx.Done(): + close(cancelCh) + return nil, ctx.Err() + case <-timeout: + log.Printf("[WARN] WaitForState timeout after %s", conf.Timeout) + log.Printf("[WARN] WaitForState starting %s refresh grace period", refreshGracePeriod) + + // cancel the goroutine and start our grace period timer + close(cancelCh) + timeout := time.After(refreshGracePeriod) + + // we need a for loop and a label to break on, because we may have + // an extra response value to read, but still want to wait for the + // channel to close. + forSelect: + for { + select { + case r, ok := <-resCh: + if r.Done { + // the last refresh loop reached the desired state + return r.Result, r.Error + } + + if !ok { + // the goroutine returned + break forSelect + } + + // target state not reached, save the result for the + // TimeoutError and wait for the channel to close + lastResult = r + case <-ctx.Done(): + log.Println("[ERROR] Context cancelation detected, abandoning grace period") + break forSelect + case <-timeout: + log.Println("[ERROR] WaitForState exceeded refresh grace period") + break forSelect + } + } + + return nil, &TimeoutError{ + LastError: lastResult.Error, + LastState: lastResult.State, + Timeout: conf.Timeout, + ExpectedState: conf.Target, + } + } + } +} + +// WaitForState watches an object and waits for it to achieve the state +// specified in the configuration using the specified Refresh() func, +// waiting the number of seconds specified in the timeout configuration. +// +// Deprecated: Please use WaitForStateContext to ensure proper plugin shutdown +func (conf *StateChangeConf) WaitForState() (interface{}, error) { + return conf.WaitForStateContext(context.Background()) +} diff --git a/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry/wait.go b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry/wait.go new file mode 100644 index 000000000000..c8d2de143988 --- /dev/null +++ b/vendor/github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry/wait.go @@ -0,0 +1,116 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package retry + +import ( + "context" + "errors" + "sync" + "time" +) + +// RetryContext is a basic wrapper around StateChangeConf that will just retry +// a function until it no longer returns an error. +// +// Cancellation from the passed in context will propagate through to the +// underlying StateChangeConf +func RetryContext(ctx context.Context, timeout time.Duration, f RetryFunc) error { + // These are used to pull the error out of the function; need a mutex to + // avoid a data race. + var resultErr error + var resultErrMu sync.Mutex + + c := &StateChangeConf{ + Pending: []string{"retryableerror"}, + Target: []string{"success"}, + Timeout: timeout, + MinTimeout: 500 * time.Millisecond, + Refresh: func() (interface{}, string, error) { + rerr := f() + + resultErrMu.Lock() + defer resultErrMu.Unlock() + + if rerr == nil { + resultErr = nil + return 42, "success", nil + } + + resultErr = rerr.Err + + if rerr.Retryable { + return 42, "retryableerror", nil + } + return nil, "quit", rerr.Err + }, + } + + _, waitErr := c.WaitForStateContext(ctx) + + // Need to acquire the lock here to be able to avoid race using resultErr as + // the return value + resultErrMu.Lock() + defer resultErrMu.Unlock() + + // resultErr may be nil because the wait timed out and resultErr was never + // set; this is still an error + if resultErr == nil { + return waitErr + } + // resultErr takes precedence over waitErr if both are set because it is + // more likely to be useful + return resultErr +} + +// Retry is a basic wrapper around StateChangeConf that will just retry +// a function until it no longer returns an error. +// +// Deprecated: Please use RetryContext to ensure proper plugin shutdown +func Retry(timeout time.Duration, f RetryFunc) error { + return RetryContext(context.Background(), timeout, f) +} + +// RetryFunc is the function retried until it succeeds. +type RetryFunc func() *RetryError + +// RetryError is the required return type of RetryFunc. It forces client code +// to choose whether or not a given error is retryable. +type RetryError struct { + Err error + Retryable bool +} + +func (e *RetryError) Unwrap() error { + return e.Err +} + +// RetryableError is a helper to create a RetryError that's retryable from a +// given error. To prevent logic errors, will return an error when passed a +// nil error. +func RetryableError(err error) *RetryError { + if err == nil { + return &RetryError{ + Err: errors.New("empty retryable error received. " + + "This is a bug with the Terraform provider and should be " + + "reported as a GitHub issue in the provider repository."), + Retryable: false, + } + } + return &RetryError{Err: err, Retryable: true} +} + +// NonRetryableError is a helper to create a RetryError that's _not_ retryable +// from a given error. To prevent logic errors, will return an error when +// passed a nil error. +func NonRetryableError(err error) *RetryError { + if err == nil { + return &RetryError{ + Err: errors.New("empty non-retryable error received. " + + "This is a bug with the Terraform provider and should be " + + "reported as a GitHub issue in the provider repository."), + Retryable: false, + } + } + return &RetryError{Err: err, Retryable: false} +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 6325bcd72ac4..8f68db8d236b 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1044,6 +1044,7 @@ github.com/hashicorp/terraform-plugin-log/tfsdklog github.com/hashicorp/terraform-plugin-sdk/v2/diag github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff github.com/hashicorp/terraform-plugin-sdk/v2/helper/logging +github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation From c13732848c7ced8ba16f455c0212f606ac7047a6 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Fri, 8 Sep 2023 15:41:14 +0200 Subject: [PATCH 156/336] pluginsdk/resource: updating the reference to `StateRefreshFunc` to use `retry.StateRefreshFunc` --- internal/tf/pluginsdk/resource.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/tf/pluginsdk/resource.go b/internal/tf/pluginsdk/resource.go index 718850ff6b5a..93e432e1f64d 100644 --- a/internal/tf/pluginsdk/resource.go +++ b/internal/tf/pluginsdk/resource.go @@ -6,7 +6,6 @@ package pluginsdk import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) // This file is intended to provide a transition from Plugin SDKv1 to Plugin SDKv2 @@ -27,7 +26,7 @@ type ( type ( StateChangeConf = retry.StateChangeConf - StateRefreshFunc = resource.StateRefreshFunc + StateRefreshFunc = retry.StateRefreshFunc ) type ( From 0d42bf87aecbdf8319533eecb008f3fae2506df5 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Fri, 8 Sep 2023 15:42:28 +0200 Subject: [PATCH 157/336] pluginsdk/retries: updating `RetryFunc` to reference `resource.RetryFunc` --- internal/tf/pluginsdk/retries.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/tf/pluginsdk/retries.go b/internal/tf/pluginsdk/retries.go index 37ab67093f67..06b542369838 100644 --- a/internal/tf/pluginsdk/retries.go +++ b/internal/tf/pluginsdk/retries.go @@ -6,13 +6,14 @@ package pluginsdk import ( "time" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) // TODO: work through and switch these out for WaitForState funcs // RetryFunc is the function retried until it succeeds. -type RetryFunc = resource.RetryFunc +type RetryFunc = retry.RetryFunc // RetryError is the required return type of RetryFunc. It forces client code // to choose whether or not a given error is retryable. From a82144465566255f9e5fd4ffda0450f3c1a06b1c Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Fri, 8 Sep 2023 15:43:16 +0200 Subject: [PATCH 158/336] pluginsdk/retries: updating `RetryError` to reference `resource.RetryError` --- internal/tf/pluginsdk/retries.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/internal/tf/pluginsdk/retries.go b/internal/tf/pluginsdk/retries.go index 06b542369838..537a5d8cf3e7 100644 --- a/internal/tf/pluginsdk/retries.go +++ b/internal/tf/pluginsdk/retries.go @@ -7,7 +7,6 @@ import ( "time" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" - "github.com/hashicorp/terraform-plugin-testing/helper/resource" ) // TODO: work through and switch these out for WaitForState funcs @@ -18,26 +17,26 @@ type RetryFunc = retry.RetryFunc // RetryError is the required return type of RetryFunc. It forces client code // to choose whether or not a given error is retryable. // TODO: deprecate this in the future -type RetryError = resource.RetryError +type RetryError = retry.RetryError // Retry is a basic wrapper around StateChangeConf that will just retry // a function until it no longer returns an error. func Retry(timeout time.Duration, f RetryFunc) error { // TODO: deprecate this // lint:ignore SA1019 SDKv2 migration - staticcheck's own linter directives are currently being ignored under golanci-lint - return resource.Retry(timeout, f) //nolint:staticcheck + return retry.Retry(timeout, f) //nolint:staticcheck } // RetryableError is a helper to create a RetryError that's retryable from a // given error. func RetryableError(err error) *RetryError { // TODO: deprecate this in the future - return resource.RetryableError(err) + return retry.RetryableError(err) } // NonRetryableError is a helper to create a RetryError that's _not_ retryable // from a given error. func NonRetryableError(err error) *RetryError { // TODO: deprecate this in the future - return resource.NonRetryableError(err) + return retry.NonRetryableError(err) } From febc3013df6827fd53afc9f41a61522f4556cc3b Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Fri, 8 Sep 2023 15:44:51 +0200 Subject: [PATCH 159/336] acceptance/ssh: updating the retry func --- internal/acceptance/ssh/run.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/internal/acceptance/ssh/run.go b/internal/acceptance/ssh/run.go index c203b9d9ef51..87baeb82312e 100644 --- a/internal/acceptance/ssh/run.go +++ b/internal/acceptance/ssh/run.go @@ -10,7 +10,8 @@ import ( "log" "time" - "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "golang.org/x/crypto/ssh" ) @@ -23,14 +24,14 @@ type Runner struct { } func (r Runner) Run(ctx context.Context) error { - if err := resource.RetryContext(ctx, 5*time.Minute, r.tryRun); err != nil { + if err := retry.RetryContext(ctx, 5*time.Minute, r.tryRun); err != nil { return err } return nil } -func (r Runner) tryRun() *resource.RetryError { +func (r Runner) tryRun() *pluginsdk.RetryError { config := &ssh.ClientConfig{ User: r.Username, Auth: []ssh.AuthMethod{ @@ -43,12 +44,12 @@ func (r Runner) tryRun() *resource.RetryError { log.Printf("[INFO] SSHing to %q...", hostAddress) client, err := ssh.Dial("tcp", hostAddress, config) if err != nil { - return resource.RetryableError(fmt.Errorf("connecting to host: %+v", err)) + return pluginsdk.RetryableError(fmt.Errorf("connecting to host: %+v", err)) } session, err := client.NewSession() if err != nil { - return resource.RetryableError(fmt.Errorf("creating session: %+v", err)) + return pluginsdk.RetryableError(fmt.Errorf("creating session: %+v", err)) } defer session.Close() @@ -57,7 +58,7 @@ func (r Runner) tryRun() *resource.RetryError { var b bytes.Buffer session.Stdout = &b if err := session.Run(cmd); err != nil { - return resource.NonRetryableError(fmt.Errorf("failure running command %q: %+v", cmd, err)) + return pluginsdk.NonRetryableError(fmt.Errorf("failure running command %q: %+v", cmd, err)) } } From 961425481ec2f18a0672f379844443fea967be58 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Fri, 8 Sep 2023 15:58:39 +0200 Subject: [PATCH 160/336] acceptance/plugin_sdk_aliases: updating a reference to `retry.StateChangeConf` --- internal/acceptance/plugin_sdk_aliases.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/acceptance/plugin_sdk_aliases.go b/internal/acceptance/plugin_sdk_aliases.go index df5946f953f4..b9629ed34e47 100644 --- a/internal/acceptance/plugin_sdk_aliases.go +++ b/internal/acceptance/plugin_sdk_aliases.go @@ -6,6 +6,8 @@ package acceptance import ( "regexp" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" + "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" @@ -20,7 +22,7 @@ type State = terraform.State type TestStep = resource.TestStep -type StateChangeConf = resource.StateChangeConf +type StateChangeConf = retry.StateChangeConf type TestCheckFunc = resource.TestCheckFunc From b5a8569b2dc0e91ecbccae3d2de6965884a34542 Mon Sep 17 00:00:00 2001 From: xuwu1 Date: Sat, 9 Sep 2023 08:55:47 +0800 Subject: [PATCH 161/336] no need check map nil --- .../services/apimanagement/api_management_backend_resource.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/services/apimanagement/api_management_backend_resource.go b/internal/services/apimanagement/api_management_backend_resource.go index 68da32ffc9aa..2e1ae7abcd6c 100644 --- a/internal/services/apimanagement/api_management_backend_resource.go +++ b/internal/services/apimanagement/api_management_backend_resource.go @@ -547,7 +547,7 @@ func flattenApiManagementBackendCredentials(input *backend.BackendCredentialsCon func flattenApiManagementBackendCredentialsObject(input *map[string][]string) map[string]interface{} { results := make(map[string]interface{}) - if input == nil || *input == nil { + if input == nil { return results } for k, v := range *input { From e9fdfd07b9ee8a87279d748cb0ff99101791ed04 Mon Sep 17 00:00:00 2001 From: Xu Wu Date: Mon, 11 Sep 2023 10:10:56 +0800 Subject: [PATCH 162/336] restore lint comment --- internal/services/keyvault/key_vault_certificate_resource.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/services/keyvault/key_vault_certificate_resource.go b/internal/services/keyvault/key_vault_certificate_resource.go index 9d7130a52212..ce9d02e06a02 100644 --- a/internal/services/keyvault/key_vault_certificate_resource.go +++ b/internal/services/keyvault/key_vault_certificate_resource.go @@ -187,7 +187,7 @@ func resourceKeyVaultCertificate() *pluginsdk.Resource { }, }, }, - // lintignore:XS003 + //lintignore:XS003 "trigger": { Type: pluginsdk.TypeList, Required: true, From 8b3f266a71080a7195b4bef90d545d3511c9aeea Mon Sep 17 00:00:00 2001 From: Heng Lu Date: Mon, 11 Sep 2023 10:50:42 +0800 Subject: [PATCH 163/336] `azurerm_kubernetes_cluster` - update version in test cases --- .../kubernetes_cluster_auth_resource_test.go | 18 +++++++++--------- .../kubernetes_cluster_data_source_test.go | 8 ++++---- .../kubernetes_cluster_resource_test.go | 12 ++++++------ 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/internal/services/containers/kubernetes_cluster_auth_resource_test.go b/internal/services/containers/kubernetes_cluster_auth_resource_test.go index b01b2633d5ba..cf9fdc6f85c5 100644 --- a/internal/services/containers/kubernetes_cluster_auth_resource_test.go +++ b/internal/services/containers/kubernetes_cluster_auth_resource_test.go @@ -815,26 +815,26 @@ resource "azurerm_kubernetes_cluster" "test" { `, tenantId, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func (KubernetesClusterResource) roleBasedAccessControlAADManagedConfigVOneDotTwoFourDotNine(data acceptance.TestData, tenantId string) string { +func (KubernetesClusterResource) roleBasedAccessControlAADManagedConfigOlderKubernetesVersion(data acceptance.TestData, tenantId string) string { return fmt.Sprintf(` variable "tenant_id" { - default = "%s" + default = "%[1]s" } resource "azurerm_resource_group" "test" { - name = "acctestRG-aks-%d" - location = "%s" + name = "acctestRG-aks-%[3]d" + location = "%[2]s" } resource "azurerm_kubernetes_cluster" "test" { - name = "acctestaks%d" + name = "acctestaks%[3]d" location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - dns_prefix = "acctestaks%d" - kubernetes_version = "1.24.9" + dns_prefix = "acctestaks%[3]d" + kubernetes_version = "%[4]s" linux_profile { - admin_username = "acctestuser%d" + admin_username = "acctestuser%[3]d" ssh_key { key_data = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+L2NxRIfQ781rxV6Iq5jSav6b2Q8z5KiseOlvKA/RF2wqU0UPYqQviQhLmW6THTpmrv/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+5N2Ta6UYH3lsDf9R9wTP2K/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+7HTcWfdu0qQqPWY5ujyMw/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt terraform@demo.tld" @@ -857,7 +857,7 @@ resource "azurerm_kubernetes_cluster" "test" { azure_rbac_enabled = false } } -`, tenantId, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) +`, tenantId, data.Locations.Primary, data.RandomInteger, olderKubernetesVersion) } func (KubernetesClusterResource) roleBasedAccessControlAADManagedConfigWithLocalAccountDisabled(data acceptance.TestData, tenantId string) string { diff --git a/internal/services/containers/kubernetes_cluster_data_source_test.go b/internal/services/containers/kubernetes_cluster_data_source_test.go index 3754e5e29a01..374cdff2297c 100644 --- a/internal/services/containers/kubernetes_cluster_data_source_test.go +++ b/internal/services/containers/kubernetes_cluster_data_source_test.go @@ -73,13 +73,13 @@ func TestAccDataSourceKubernetesCluster_roleBasedAccessControl(t *testing.T) { }) } -func TestAccDataSourceKubernetesCluster_roleBasedAccessControlAAD_VOneDotTwoFourDotNine(t *testing.T) { +func TestAccDataSourceKubernetesCluster_roleBasedAccessControlAAD_OlderKubernetesVersion(t *testing.T) { data := acceptance.BuildTestData(t, "data.azurerm_kubernetes_cluster", "test") r := KubernetesClusterDataSource{} data.DataSourceTest(t, []acceptance.TestStep{ { - Config: r.roleBasedAccessControlAADManagedConfigVOneDotTwoFourDotNine(data), + Config: r.roleBasedAccessControlAADManagedConfigOlderKubernetesVersion(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).Key("kube_config.#").HasValue("1"), check.That(data.ResourceName).Key("kube_config.0.host").IsSet(), @@ -613,7 +613,7 @@ data "azurerm_kubernetes_cluster" "test" { `, KubernetesClusterResource{}.roleBasedAccessControlConfig(data)) } -func (KubernetesClusterDataSource) roleBasedAccessControlAADManagedConfigVOneDotTwoFourDotNine(data acceptance.TestData) string { +func (KubernetesClusterDataSource) roleBasedAccessControlAADManagedConfigOlderKubernetesVersion(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -621,7 +621,7 @@ data "azurerm_kubernetes_cluster" "test" { name = azurerm_kubernetes_cluster.test.name resource_group_name = azurerm_kubernetes_cluster.test.resource_group_name } -`, KubernetesClusterResource{}.roleBasedAccessControlAADManagedConfigVOneDotTwoFourDotNine(data, "")) +`, KubernetesClusterResource{}.roleBasedAccessControlAADManagedConfigOlderKubernetesVersion(data, "")) } func (KubernetesClusterDataSource) localAccountDisabled(data acceptance.TestData, tenantId string) string { diff --git a/internal/services/containers/kubernetes_cluster_resource_test.go b/internal/services/containers/kubernetes_cluster_resource_test.go index 8bc179ba3309..a80305c21403 100644 --- a/internal/services/containers/kubernetes_cluster_resource_test.go +++ b/internal/services/containers/kubernetes_cluster_resource_test.go @@ -21,10 +21,10 @@ import ( type KubernetesClusterResource struct{} var ( - olderKubernetesVersion = "1.24.9" - currentKubernetesVersion = "1.25.5" - olderKubernetesVersionAlias = "1.24" - currentKubernetesVersionAlias = "1.25" + olderKubernetesVersion = "1.25.11" + currentKubernetesVersion = "1.26.6" + olderKubernetesVersionAlias = "1.25" + currentKubernetesVersionAlias = "1.26" ) func TestAccKubernetesCluster_hostEncryption(t *testing.T) { @@ -538,13 +538,13 @@ resource "azurerm_kubernetes_cluster" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, maxSurge) } -func TestAccResourceKubernetesCluster_roleBasedAccessControlAAD_VOneDotTwoFourDotNine(t *testing.T) { +func TestAccResourceKubernetesCluster_roleBasedAccessControlAAD_OlderKubernetesVersion(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_kubernetes_cluster", "test") r := KubernetesClusterResource{} data.ResourceTest(t, r, []acceptance.TestStep{ { - Config: r.roleBasedAccessControlAADManagedConfigVOneDotTwoFourDotNine(data, ""), + Config: r.roleBasedAccessControlAADManagedConfigOlderKubernetesVersion(data, ""), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).Key("kube_config.#").HasValue("1"), check.That(data.ResourceName).Key("kube_config.0.host").IsSet(), From 2c28cd6bddf895db141cc551582ddfae0432fc56 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Mon, 11 Sep 2023 10:11:52 +0200 Subject: [PATCH 164/336] updating to include #23221 --- CHANGELOG.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d09d284ab0c..90c91fba50ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,24 @@ ## 3.73.0 (Unreleased) -ENHANCEMENTS: - -* `azurerm_maps_account` - Support for `local_authentication_enabled` [GH-23216] - FEATURES: * **New Resource**: `azurerm_virtual_hub_routing_intent` [GH-23138] * **New Resource**: `azurerm_iothub_endpoint_cosmosdb_account` [GH-23065] +ENHANCEMENTS: + +* dependencies: updating to `v0.1.1` of `github.com/btubbs/datetime` [GH-23221] +* dependencies: updating to `v1.3.1` of `github.com/google/uuid` [GH-23221] +* dependencies: updating to `v0.20230907.1113401` of `github.com/hashicorp/go-azure-sdk` [GH-23221] +* dependencies: updating to `v1.5.0` of `github.com/hashicorp/go-hclog` [GH-23221] +* dependencies: updating to `v2.29.0` of `github.com/hashicorp/terraform-plugin-sdk/v2` [GH-23221] +* dependencies: updating to `v1.5.1` of `github.com/hashicorp/terraform-plugin-testing` [GH-23221] +* dependencies: updating to `v1.20.2` of `github.com/rickb777/date` [GH-23221] +* dependencies: updating to `v0.13.0` of `golang.org/x/crypto` [GH-23221] +* dependencies: updating to `v0.15.0` of `golang.org/x/net` [GH-23221] +* dependencies: updating to `v0.13.0` of `golang.org/x/tools` [GH-23221] +* `azurerm_maps_account` - Support for `local_authentication_enabled` [GH-23216] + ## 3.72.0 (September 07, 2023) FEATURES: From a41987357ea8a35cdc3c0bffde4a8d369272b943 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Mon, 11 Sep 2023 10:15:07 +0200 Subject: [PATCH 165/336] updating to include #23219 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90c91fba50ab..1834eb571522 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,10 @@ ENHANCEMENTS: * dependencies: updating to `v0.13.0` of `golang.org/x/tools` [GH-23221] * `azurerm_maps_account` - Support for `local_authentication_enabled` [GH-23216] +BUG FIXES: + +* `azurerm_api_management_backend` - fixing a panic when flattening the `credentials` block [GH-23219] + ## 3.72.0 (September 07, 2023) FEATURES: From 59cb07ceb172e2d69622038c4c3e9fc8be5f0421 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Mon, 11 Sep 2023 11:53:31 +0200 Subject: [PATCH 166/336] updating to include #23158 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1834eb571522..0a16a2937dba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,8 @@ ENHANCEMENTS: * dependencies: updating to `v0.13.0` of `golang.org/x/crypto` [GH-23221] * dependencies: updating to `v0.15.0` of `golang.org/x/net` [GH-23221] * dependencies: updating to `v0.13.0` of `golang.org/x/tools` [GH-23221] -* `azurerm_maps_account` - Support for `local_authentication_enabled` [GH-23216] +* `azurerm_maps_account` - support for `local_authentication_enabled` [GH-23216] +* `azurerm_security_center_assessment_policy` - refactoring to use `hashicorp/go-azure-sdk` [GH-23158] BUG FIXES: From 0ae2a54231df1477adfb37ed6669ee9b6881de25 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Mon, 11 Sep 2023 15:55:18 +0200 Subject: [PATCH 167/336] go mod vendor / fixing the dependencies --- .../2021-06-01/assessmentsmetadata/README.md | 28 +-- ...tsmetadatacreateinsubscription_autorest.go | 69 ------- ...tsmetadatadeleteinsubscription_autorest.go | 66 ------- ...mentsmetadatagetinsubscription_autorest.go | 68 ------- ...entsmetadatalistbysubscription_autorest.go | 187 ------------------ .../method_createinsubscription_autorest.go | 69 +++++++ .../method_deleteinsubscription_autorest.go | 66 +++++++ ...get_autorest.go => method_get_autorest.go} | 24 +-- .../method_getinsubscription_autorest.go | 68 +++++++ ...st_autorest.go => method_list_autorest.go} | 62 +++--- .../method_listbysubscription_autorest.go | 187 ++++++++++++++++++ 11 files changed, 447 insertions(+), 447 deletions(-) delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatacreateinsubscription_autorest.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatadeleteinsubscription_autorest.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatagetinsubscription_autorest.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalistbysubscription_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_createinsubscription_autorest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_deleteinsubscription_autorest.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/{method_assessmentsmetadataget_autorest.go => method_get_autorest.go} (54%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_getinsubscription_autorest.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/{method_assessmentsmetadatalist_autorest.go => method_list_autorest.go} (54%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_listbysubscription_autorest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/README.md index 2d2eeaf04d41..369e16f9200b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/README.md @@ -20,7 +20,7 @@ client.Client.Authorizer = authorizer ``` -### Example Usage: `AssessmentsMetadataClient.AssessmentsMetadataCreateInSubscription` +### Example Usage: `AssessmentsMetadataClient.CreateInSubscription` ```go ctx := context.TODO() @@ -31,7 +31,7 @@ payload := assessmentsmetadata.SecurityAssessmentMetadataResponse{ } -read, err := client.AssessmentsMetadataCreateInSubscription(ctx, id, payload) +read, err := client.CreateInSubscription(ctx, id, payload) if err != nil { // handle the error } @@ -41,13 +41,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AssessmentsMetadataClient.AssessmentsMetadataDeleteInSubscription` +### Example Usage: `AssessmentsMetadataClient.DeleteInSubscription` ```go ctx := context.TODO() id := assessmentsmetadata.NewProviderAssessmentMetadataID("12345678-1234-9876-4563-123456789012", "assessmentMetadataValue") -read, err := client.AssessmentsMetadataDeleteInSubscription(ctx, id) +read, err := client.DeleteInSubscription(ctx, id) if err != nil { // handle the error } @@ -57,13 +57,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AssessmentsMetadataClient.AssessmentsMetadataGet` +### Example Usage: `AssessmentsMetadataClient.Get` ```go ctx := context.TODO() id := assessmentsmetadata.NewAssessmentMetadataID("assessmentMetadataValue") -read, err := client.AssessmentsMetadataGet(ctx, id) +read, err := client.Get(ctx, id) if err != nil { // handle the error } @@ -73,13 +73,13 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AssessmentsMetadataClient.AssessmentsMetadataGetInSubscription` +### Example Usage: `AssessmentsMetadataClient.GetInSubscription` ```go ctx := context.TODO() id := assessmentsmetadata.NewProviderAssessmentMetadataID("12345678-1234-9876-4563-123456789012", "assessmentMetadataValue") -read, err := client.AssessmentsMetadataGetInSubscription(ctx, id) +read, err := client.GetInSubscription(ctx, id) if err != nil { // handle the error } @@ -89,14 +89,14 @@ if model := read.Model; model != nil { ``` -### Example Usage: `AssessmentsMetadataClient.AssessmentsMetadataList` +### Example Usage: `AssessmentsMetadataClient.List` ```go ctx := context.TODO() -// alternatively `client.AssessmentsMetadataList(ctx)` can be used to do batched pagination -items, err := client.AssessmentsMetadataListComplete(ctx) +// alternatively `client.List(ctx)` can be used to do batched pagination +items, err := client.ListComplete(ctx) if err != nil { // handle the error } @@ -106,14 +106,14 @@ for _, item := range items { ``` -### Example Usage: `AssessmentsMetadataClient.AssessmentsMetadataListBySubscription` +### Example Usage: `AssessmentsMetadataClient.ListBySubscription` ```go ctx := context.TODO() id := assessmentsmetadata.NewSubscriptionID("12345678-1234-9876-4563-123456789012") -// alternatively `client.AssessmentsMetadataListBySubscription(ctx, id)` can be used to do batched pagination -items, err := client.AssessmentsMetadataListBySubscriptionComplete(ctx, id) +// alternatively `client.ListBySubscription(ctx, id)` can be used to do batched pagination +items, err := client.ListBySubscriptionComplete(ctx, id) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatacreateinsubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatacreateinsubscription_autorest.go deleted file mode 100644 index 686c59deec72..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatacreateinsubscription_autorest.go +++ /dev/null @@ -1,69 +0,0 @@ -package assessmentsmetadata - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AssessmentsMetadataCreateInSubscriptionOperationResponse struct { - HttpResponse *http.Response - Model *SecurityAssessmentMetadataResponse -} - -// AssessmentsMetadataCreateInSubscription ... -func (c AssessmentsMetadataClient) AssessmentsMetadataCreateInSubscription(ctx context.Context, id ProviderAssessmentMetadataId, input SecurityAssessmentMetadataResponse) (result AssessmentsMetadataCreateInSubscriptionOperationResponse, err error) { - req, err := c.preparerForAssessmentsMetadataCreateInSubscription(ctx, id, input) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataCreateInSubscription", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataCreateInSubscription", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForAssessmentsMetadataCreateInSubscription(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataCreateInSubscription", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForAssessmentsMetadataCreateInSubscription prepares the AssessmentsMetadataCreateInSubscription request. -func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataCreateInSubscription(ctx context.Context, id ProviderAssessmentMetadataId, input SecurityAssessmentMetadataResponse) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsPut(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForAssessmentsMetadataCreateInSubscription handles the response to the AssessmentsMetadataCreateInSubscription request. The method always -// closes the http.Response Body. -func (c AssessmentsMetadataClient) responderForAssessmentsMetadataCreateInSubscription(resp *http.Response) (result AssessmentsMetadataCreateInSubscriptionOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatadeleteinsubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatadeleteinsubscription_autorest.go deleted file mode 100644 index a3ea6f7edf84..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatadeleteinsubscription_autorest.go +++ /dev/null @@ -1,66 +0,0 @@ -package assessmentsmetadata - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AssessmentsMetadataDeleteInSubscriptionOperationResponse struct { - HttpResponse *http.Response -} - -// AssessmentsMetadataDeleteInSubscription ... -func (c AssessmentsMetadataClient) AssessmentsMetadataDeleteInSubscription(ctx context.Context, id ProviderAssessmentMetadataId) (result AssessmentsMetadataDeleteInSubscriptionOperationResponse, err error) { - req, err := c.preparerForAssessmentsMetadataDeleteInSubscription(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataDeleteInSubscription", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataDeleteInSubscription", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForAssessmentsMetadataDeleteInSubscription(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataDeleteInSubscription", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForAssessmentsMetadataDeleteInSubscription prepares the AssessmentsMetadataDeleteInSubscription request. -func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataDeleteInSubscription(ctx context.Context, id ProviderAssessmentMetadataId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsDelete(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForAssessmentsMetadataDeleteInSubscription handles the response to the AssessmentsMetadataDeleteInSubscription request. The method always -// closes the http.Response Body. -func (c AssessmentsMetadataClient) responderForAssessmentsMetadataDeleteInSubscription(resp *http.Response) (result AssessmentsMetadataDeleteInSubscriptionOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatagetinsubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatagetinsubscription_autorest.go deleted file mode 100644 index fda8a435ed6a..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatagetinsubscription_autorest.go +++ /dev/null @@ -1,68 +0,0 @@ -package assessmentsmetadata - -import ( - "context" - "net/http" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AssessmentsMetadataGetInSubscriptionOperationResponse struct { - HttpResponse *http.Response - Model *SecurityAssessmentMetadataResponse -} - -// AssessmentsMetadataGetInSubscription ... -func (c AssessmentsMetadataClient) AssessmentsMetadataGetInSubscription(ctx context.Context, id ProviderAssessmentMetadataId) (result AssessmentsMetadataGetInSubscriptionOperationResponse, err error) { - req, err := c.preparerForAssessmentsMetadataGetInSubscription(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataGetInSubscription", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataGetInSubscription", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForAssessmentsMetadataGetInSubscription(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataGetInSubscription", result.HttpResponse, "Failure responding to request") - return - } - - return -} - -// preparerForAssessmentsMetadataGetInSubscription prepares the AssessmentsMetadataGetInSubscription request. -func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataGetInSubscription(ctx context.Context, id ProviderAssessmentMetadataId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(id.ID()), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForAssessmentsMetadataGetInSubscription handles the response to the AssessmentsMetadataGetInSubscription request. The method always -// closes the http.Response Body. -func (c AssessmentsMetadataClient) responderForAssessmentsMetadataGetInSubscription(resp *http.Response) (result AssessmentsMetadataGetInSubscriptionOperationResponse, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&result.Model), - autorest.ByClosing()) - result.HttpResponse = resp - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalistbysubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalistbysubscription_autorest.go deleted file mode 100644 index 7e5604a8eab8..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalistbysubscription_autorest.go +++ /dev/null @@ -1,187 +0,0 @@ -package assessmentsmetadata - -import ( - "context" - "fmt" - "net/http" - "net/url" - - "github.com/Azure/go-autorest/autorest" - "github.com/Azure/go-autorest/autorest/azure" - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AssessmentsMetadataListBySubscriptionOperationResponse struct { - HttpResponse *http.Response - Model *[]SecurityAssessmentMetadataResponse - - nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (AssessmentsMetadataListBySubscriptionOperationResponse, error) -} - -type AssessmentsMetadataListBySubscriptionCompleteResult struct { - Items []SecurityAssessmentMetadataResponse -} - -func (r AssessmentsMetadataListBySubscriptionOperationResponse) HasMore() bool { - return r.nextLink != nil -} - -func (r AssessmentsMetadataListBySubscriptionOperationResponse) LoadMore(ctx context.Context) (resp AssessmentsMetadataListBySubscriptionOperationResponse, err error) { - if !r.HasMore() { - err = fmt.Errorf("no more pages returned") - return - } - return r.nextPageFunc(ctx, *r.nextLink) -} - -// AssessmentsMetadataListBySubscription ... -func (c AssessmentsMetadataClient) AssessmentsMetadataListBySubscription(ctx context.Context, id commonids.SubscriptionId) (resp AssessmentsMetadataListBySubscriptionOperationResponse, err error) { - req, err := c.preparerForAssessmentsMetadataListBySubscription(ctx, id) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataListBySubscription", nil, "Failure preparing request") - return - } - - resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataListBySubscription", resp.HttpResponse, "Failure sending request") - return - } - - resp, err = c.responderForAssessmentsMetadataListBySubscription(resp.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataListBySubscription", resp.HttpResponse, "Failure responding to request") - return - } - return -} - -// preparerForAssessmentsMetadataListBySubscription prepares the AssessmentsMetadataListBySubscription request. -func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataListBySubscription(ctx context.Context, id commonids.SubscriptionId) (*http.Request, error) { - queryParameters := map[string]interface{}{ - "api-version": defaultApiVersion, - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.Security/assessmentMetadata", id.ID())), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// preparerForAssessmentsMetadataListBySubscriptionWithNextLink prepares the AssessmentsMetadataListBySubscription request with the given nextLink token. -func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataListBySubscriptionWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { - uri, err := url.Parse(nextLink) - if err != nil { - return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) - } - queryParameters := map[string]interface{}{} - for k, v := range uri.Query() { - if len(v) == 0 { - continue - } - val := v[0] - val = autorest.Encode("query", val) - queryParameters[k] = val - } - - preparer := autorest.CreatePreparer( - autorest.AsContentType("application/json; charset=utf-8"), - autorest.AsGet(), - autorest.WithBaseURL(c.baseUri), - autorest.WithPath(uri.Path), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// responderForAssessmentsMetadataListBySubscription handles the response to the AssessmentsMetadataListBySubscription request. The method always -// closes the http.Response Body. -func (c AssessmentsMetadataClient) responderForAssessmentsMetadataListBySubscription(resp *http.Response) (result AssessmentsMetadataListBySubscriptionOperationResponse, err error) { - type page struct { - Values []SecurityAssessmentMetadataResponse `json:"value"` - NextLink *string `json:"nextLink"` - } - var respObj page - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK), - autorest.ByUnmarshallingJSON(&respObj), - autorest.ByClosing()) - result.HttpResponse = resp - result.Model = &respObj.Values - result.nextLink = respObj.NextLink - if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result AssessmentsMetadataListBySubscriptionOperationResponse, err error) { - req, err := c.preparerForAssessmentsMetadataListBySubscriptionWithNextLink(ctx, nextLink) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataListBySubscription", nil, "Failure preparing request") - return - } - - result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataListBySubscription", result.HttpResponse, "Failure sending request") - return - } - - result, err = c.responderForAssessmentsMetadataListBySubscription(result.HttpResponse) - if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataListBySubscription", result.HttpResponse, "Failure responding to request") - return - } - - return - } - } - return -} - -// AssessmentsMetadataListBySubscriptionComplete retrieves all of the results into a single object -func (c AssessmentsMetadataClient) AssessmentsMetadataListBySubscriptionComplete(ctx context.Context, id commonids.SubscriptionId) (AssessmentsMetadataListBySubscriptionCompleteResult, error) { - return c.AssessmentsMetadataListBySubscriptionCompleteMatchingPredicate(ctx, id, SecurityAssessmentMetadataResponseOperationPredicate{}) -} - -// AssessmentsMetadataListBySubscriptionCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c AssessmentsMetadataClient) AssessmentsMetadataListBySubscriptionCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate SecurityAssessmentMetadataResponseOperationPredicate) (resp AssessmentsMetadataListBySubscriptionCompleteResult, err error) { - items := make([]SecurityAssessmentMetadataResponse, 0) - - page, err := c.AssessmentsMetadataListBySubscription(ctx, id) - if err != nil { - err = fmt.Errorf("loading the initial page: %+v", err) - return - } - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - for page.HasMore() { - page, err = page.LoadMore(ctx) - if err != nil { - err = fmt.Errorf("loading the next page: %+v", err) - return - } - - if page.Model != nil { - for _, v := range *page.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - } - - out := AssessmentsMetadataListBySubscriptionCompleteResult{ - Items: items, - } - return out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_createinsubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_createinsubscription_autorest.go new file mode 100644 index 000000000000..35ddfe1552a6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_createinsubscription_autorest.go @@ -0,0 +1,69 @@ +package assessmentsmetadata + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateInSubscriptionOperationResponse struct { + HttpResponse *http.Response + Model *SecurityAssessmentMetadataResponse +} + +// CreateInSubscription ... +func (c AssessmentsMetadataClient) CreateInSubscription(ctx context.Context, id ProviderAssessmentMetadataId, input SecurityAssessmentMetadataResponse) (result CreateInSubscriptionOperationResponse, err error) { + req, err := c.preparerForCreateInSubscription(ctx, id, input) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "CreateInSubscription", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "CreateInSubscription", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForCreateInSubscription(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "CreateInSubscription", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForCreateInSubscription prepares the CreateInSubscription request. +func (c AssessmentsMetadataClient) preparerForCreateInSubscription(ctx context.Context, id ProviderAssessmentMetadataId, input SecurityAssessmentMetadataResponse) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithJSON(input), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForCreateInSubscription handles the response to the CreateInSubscription request. The method always +// closes the http.Response Body. +func (c AssessmentsMetadataClient) responderForCreateInSubscription(resp *http.Response) (result CreateInSubscriptionOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_deleteinsubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_deleteinsubscription_autorest.go new file mode 100644 index 000000000000..69002c88c88c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_deleteinsubscription_autorest.go @@ -0,0 +1,66 @@ +package assessmentsmetadata + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteInSubscriptionOperationResponse struct { + HttpResponse *http.Response +} + +// DeleteInSubscription ... +func (c AssessmentsMetadataClient) DeleteInSubscription(ctx context.Context, id ProviderAssessmentMetadataId) (result DeleteInSubscriptionOperationResponse, err error) { + req, err := c.preparerForDeleteInSubscription(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "DeleteInSubscription", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "DeleteInSubscription", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForDeleteInSubscription(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "DeleteInSubscription", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForDeleteInSubscription prepares the DeleteInSubscription request. +func (c AssessmentsMetadataClient) preparerForDeleteInSubscription(ctx context.Context, id ProviderAssessmentMetadataId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsDelete(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForDeleteInSubscription handles the response to the DeleteInSubscription request. The method always +// closes the http.Response Body. +func (c AssessmentsMetadataClient) responderForDeleteInSubscription(resp *http.Response) (result DeleteInSubscriptionOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadataget_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_get_autorest.go similarity index 54% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadataget_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_get_autorest.go index 2919c2673af2..2f76335c0359 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadataget_autorest.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_get_autorest.go @@ -11,36 +11,36 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AssessmentsMetadataGetOperationResponse struct { +type GetOperationResponse struct { HttpResponse *http.Response Model *SecurityAssessmentMetadataResponse } -// AssessmentsMetadataGet ... -func (c AssessmentsMetadataClient) AssessmentsMetadataGet(ctx context.Context, id AssessmentMetadataId) (result AssessmentsMetadataGetOperationResponse, err error) { - req, err := c.preparerForAssessmentsMetadataGet(ctx, id) +// Get ... +func (c AssessmentsMetadataClient) Get(ctx context.Context, id AssessmentMetadataId) (result GetOperationResponse, err error) { + req, err := c.preparerForGet(ctx, id) if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataGet", nil, "Failure preparing request") + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "Get", nil, "Failure preparing request") return } result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataGet", result.HttpResponse, "Failure sending request") + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "Get", result.HttpResponse, "Failure sending request") return } - result, err = c.responderForAssessmentsMetadataGet(result.HttpResponse) + result, err = c.responderForGet(result.HttpResponse) if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataGet", result.HttpResponse, "Failure responding to request") + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "Get", result.HttpResponse, "Failure responding to request") return } return } -// preparerForAssessmentsMetadataGet prepares the AssessmentsMetadataGet request. -func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataGet(ctx context.Context, id AssessmentMetadataId) (*http.Request, error) { +// preparerForGet prepares the Get request. +func (c AssessmentsMetadataClient) preparerForGet(ctx context.Context, id AssessmentMetadataId) (*http.Request, error) { queryParameters := map[string]interface{}{ "api-version": defaultApiVersion, } @@ -54,9 +54,9 @@ func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataGet(ctx context return preparer.Prepare((&http.Request{}).WithContext(ctx)) } -// responderForAssessmentsMetadataGet handles the response to the AssessmentsMetadataGet request. The method always +// responderForGet handles the response to the Get request. The method always // closes the http.Response Body. -func (c AssessmentsMetadataClient) responderForAssessmentsMetadataGet(resp *http.Response) (result AssessmentsMetadataGetOperationResponse, err error) { +func (c AssessmentsMetadataClient) responderForGet(resp *http.Response) (result GetOperationResponse, err error) { err = autorest.Respond( resp, azure.WithErrorUnlessStatusCode(http.StatusOK), diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_getinsubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_getinsubscription_autorest.go new file mode 100644 index 000000000000..483a5b5dc7ce --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_getinsubscription_autorest.go @@ -0,0 +1,68 @@ +package assessmentsmetadata + +import ( + "context" + "net/http" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetInSubscriptionOperationResponse struct { + HttpResponse *http.Response + Model *SecurityAssessmentMetadataResponse +} + +// GetInSubscription ... +func (c AssessmentsMetadataClient) GetInSubscription(ctx context.Context, id ProviderAssessmentMetadataId) (result GetInSubscriptionOperationResponse, err error) { + req, err := c.preparerForGetInSubscription(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "GetInSubscription", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "GetInSubscription", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForGetInSubscription(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "GetInSubscription", result.HttpResponse, "Failure responding to request") + return + } + + return +} + +// preparerForGetInSubscription prepares the GetInSubscription request. +func (c AssessmentsMetadataClient) preparerForGetInSubscription(ctx context.Context, id ProviderAssessmentMetadataId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(id.ID()), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForGetInSubscription handles the response to the GetInSubscription request. The method always +// closes the http.Response Body. +func (c AssessmentsMetadataClient) responderForGetInSubscription(resp *http.Response) (result GetInSubscriptionOperationResponse, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Model), + autorest.ByClosing()) + result.HttpResponse = resp + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalist_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_list_autorest.go similarity index 54% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalist_autorest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_list_autorest.go index 2e99e7e5b340..18733ef85c90 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_assessmentsmetadatalist_autorest.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_list_autorest.go @@ -13,23 +13,23 @@ import ( // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -type AssessmentsMetadataListOperationResponse struct { +type ListOperationResponse struct { HttpResponse *http.Response Model *[]SecurityAssessmentMetadataResponse nextLink *string - nextPageFunc func(ctx context.Context, nextLink string) (AssessmentsMetadataListOperationResponse, error) + nextPageFunc func(ctx context.Context, nextLink string) (ListOperationResponse, error) } -type AssessmentsMetadataListCompleteResult struct { +type ListCompleteResult struct { Items []SecurityAssessmentMetadataResponse } -func (r AssessmentsMetadataListOperationResponse) HasMore() bool { +func (r ListOperationResponse) HasMore() bool { return r.nextLink != nil } -func (r AssessmentsMetadataListOperationResponse) LoadMore(ctx context.Context) (resp AssessmentsMetadataListOperationResponse, err error) { +func (r ListOperationResponse) LoadMore(ctx context.Context) (resp ListOperationResponse, err error) { if !r.HasMore() { err = fmt.Errorf("no more pages returned") return @@ -37,30 +37,30 @@ func (r AssessmentsMetadataListOperationResponse) LoadMore(ctx context.Context) return r.nextPageFunc(ctx, *r.nextLink) } -// AssessmentsMetadataList ... -func (c AssessmentsMetadataClient) AssessmentsMetadataList(ctx context.Context) (resp AssessmentsMetadataListOperationResponse, err error) { - req, err := c.preparerForAssessmentsMetadataList(ctx) +// List ... +func (c AssessmentsMetadataClient) List(ctx context.Context) (resp ListOperationResponse, err error) { + req, err := c.preparerForList(ctx) if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataList", nil, "Failure preparing request") + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "List", nil, "Failure preparing request") return } resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataList", resp.HttpResponse, "Failure sending request") + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "List", resp.HttpResponse, "Failure sending request") return } - resp, err = c.responderForAssessmentsMetadataList(resp.HttpResponse) + resp, err = c.responderForList(resp.HttpResponse) if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataList", resp.HttpResponse, "Failure responding to request") + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "List", resp.HttpResponse, "Failure responding to request") return } return } -// preparerForAssessmentsMetadataList prepares the AssessmentsMetadataList request. -func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataList(ctx context.Context) (*http.Request, error) { +// preparerForList prepares the List request. +func (c AssessmentsMetadataClient) preparerForList(ctx context.Context) (*http.Request, error) { queryParameters := map[string]interface{}{ "api-version": defaultApiVersion, } @@ -74,8 +74,8 @@ func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataList(ctx contex return preparer.Prepare((&http.Request{}).WithContext(ctx)) } -// preparerForAssessmentsMetadataListWithNextLink prepares the AssessmentsMetadataList request with the given nextLink token. -func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { +// preparerForListWithNextLink prepares the List request with the given nextLink token. +func (c AssessmentsMetadataClient) preparerForListWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { uri, err := url.Parse(nextLink) if err != nil { return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) @@ -99,9 +99,9 @@ func (c AssessmentsMetadataClient) preparerForAssessmentsMetadataListWithNextLin return preparer.Prepare((&http.Request{}).WithContext(ctx)) } -// responderForAssessmentsMetadataList handles the response to the AssessmentsMetadataList request. The method always +// responderForList handles the response to the List request. The method always // closes the http.Response Body. -func (c AssessmentsMetadataClient) responderForAssessmentsMetadataList(resp *http.Response) (result AssessmentsMetadataListOperationResponse, err error) { +func (c AssessmentsMetadataClient) responderForList(resp *http.Response) (result ListOperationResponse, err error) { type page struct { Values []SecurityAssessmentMetadataResponse `json:"value"` NextLink *string `json:"nextLink"` @@ -116,22 +116,22 @@ func (c AssessmentsMetadataClient) responderForAssessmentsMetadataList(resp *htt result.Model = &respObj.Values result.nextLink = respObj.NextLink if respObj.NextLink != nil { - result.nextPageFunc = func(ctx context.Context, nextLink string) (result AssessmentsMetadataListOperationResponse, err error) { - req, err := c.preparerForAssessmentsMetadataListWithNextLink(ctx, nextLink) + result.nextPageFunc = func(ctx context.Context, nextLink string) (result ListOperationResponse, err error) { + req, err := c.preparerForListWithNextLink(ctx, nextLink) if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataList", nil, "Failure preparing request") + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "List", nil, "Failure preparing request") return } result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataList", result.HttpResponse, "Failure sending request") + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "List", result.HttpResponse, "Failure sending request") return } - result, err = c.responderForAssessmentsMetadataList(result.HttpResponse) + result, err = c.responderForList(result.HttpResponse) if err != nil { - err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "AssessmentsMetadataList", result.HttpResponse, "Failure responding to request") + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "List", result.HttpResponse, "Failure responding to request") return } @@ -141,16 +141,16 @@ func (c AssessmentsMetadataClient) responderForAssessmentsMetadataList(resp *htt return } -// AssessmentsMetadataListComplete retrieves all of the results into a single object -func (c AssessmentsMetadataClient) AssessmentsMetadataListComplete(ctx context.Context) (AssessmentsMetadataListCompleteResult, error) { - return c.AssessmentsMetadataListCompleteMatchingPredicate(ctx, SecurityAssessmentMetadataResponseOperationPredicate{}) +// ListComplete retrieves all of the results into a single object +func (c AssessmentsMetadataClient) ListComplete(ctx context.Context) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, SecurityAssessmentMetadataResponseOperationPredicate{}) } -// AssessmentsMetadataListCompleteMatchingPredicate retrieves all of the results and then applied the predicate -func (c AssessmentsMetadataClient) AssessmentsMetadataListCompleteMatchingPredicate(ctx context.Context, predicate SecurityAssessmentMetadataResponseOperationPredicate) (resp AssessmentsMetadataListCompleteResult, err error) { +// ListCompleteMatchingPredicate retrieves all of the results and then applied the predicate +func (c AssessmentsMetadataClient) ListCompleteMatchingPredicate(ctx context.Context, predicate SecurityAssessmentMetadataResponseOperationPredicate) (resp ListCompleteResult, err error) { items := make([]SecurityAssessmentMetadataResponse, 0) - page, err := c.AssessmentsMetadataList(ctx) + page, err := c.List(ctx) if err != nil { err = fmt.Errorf("loading the initial page: %+v", err) return @@ -179,7 +179,7 @@ func (c AssessmentsMetadataClient) AssessmentsMetadataListCompleteMatchingPredic } } - out := AssessmentsMetadataListCompleteResult{ + out := ListCompleteResult{ Items: items, } return out, nil diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_listbysubscription_autorest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_listbysubscription_autorest.go new file mode 100644 index 000000000000..59ebe826395b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/security/2021-06-01/assessmentsmetadata/method_listbysubscription_autorest.go @@ -0,0 +1,187 @@ +package assessmentsmetadata + +import ( + "context" + "fmt" + "net/http" + "net/url" + + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListBySubscriptionOperationResponse struct { + HttpResponse *http.Response + Model *[]SecurityAssessmentMetadataResponse + + nextLink *string + nextPageFunc func(ctx context.Context, nextLink string) (ListBySubscriptionOperationResponse, error) +} + +type ListBySubscriptionCompleteResult struct { + Items []SecurityAssessmentMetadataResponse +} + +func (r ListBySubscriptionOperationResponse) HasMore() bool { + return r.nextLink != nil +} + +func (r ListBySubscriptionOperationResponse) LoadMore(ctx context.Context) (resp ListBySubscriptionOperationResponse, err error) { + if !r.HasMore() { + err = fmt.Errorf("no more pages returned") + return + } + return r.nextPageFunc(ctx, *r.nextLink) +} + +// ListBySubscription ... +func (c AssessmentsMetadataClient) ListBySubscription(ctx context.Context, id commonids.SubscriptionId) (resp ListBySubscriptionOperationResponse, err error) { + req, err := c.preparerForListBySubscription(ctx, id) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "ListBySubscription", nil, "Failure preparing request") + return + } + + resp.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "ListBySubscription", resp.HttpResponse, "Failure sending request") + return + } + + resp, err = c.responderForListBySubscription(resp.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "ListBySubscription", resp.HttpResponse, "Failure responding to request") + return + } + return +} + +// preparerForListBySubscription prepares the ListBySubscription request. +func (c AssessmentsMetadataClient) preparerForListBySubscription(ctx context.Context, id commonids.SubscriptionId) (*http.Request, error) { + queryParameters := map[string]interface{}{ + "api-version": defaultApiVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(fmt.Sprintf("%s/providers/Microsoft.Security/assessmentMetadata", id.ID())), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// preparerForListBySubscriptionWithNextLink prepares the ListBySubscription request with the given nextLink token. +func (c AssessmentsMetadataClient) preparerForListBySubscriptionWithNextLink(ctx context.Context, nextLink string) (*http.Request, error) { + uri, err := url.Parse(nextLink) + if err != nil { + return nil, fmt.Errorf("parsing nextLink %q: %+v", nextLink, err) + } + queryParameters := map[string]interface{}{} + for k, v := range uri.Query() { + if len(v) == 0 { + continue + } + val := v[0] + val = autorest.Encode("query", val) + queryParameters[k] = val + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsGet(), + autorest.WithBaseURL(c.baseUri), + autorest.WithPath(uri.Path), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// responderForListBySubscription handles the response to the ListBySubscription request. The method always +// closes the http.Response Body. +func (c AssessmentsMetadataClient) responderForListBySubscription(resp *http.Response) (result ListBySubscriptionOperationResponse, err error) { + type page struct { + Values []SecurityAssessmentMetadataResponse `json:"value"` + NextLink *string `json:"nextLink"` + } + var respObj page + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&respObj), + autorest.ByClosing()) + result.HttpResponse = resp + result.Model = &respObj.Values + result.nextLink = respObj.NextLink + if respObj.NextLink != nil { + result.nextPageFunc = func(ctx context.Context, nextLink string) (result ListBySubscriptionOperationResponse, err error) { + req, err := c.preparerForListBySubscriptionWithNextLink(ctx, nextLink) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "ListBySubscription", nil, "Failure preparing request") + return + } + + result.HttpResponse, err = c.Client.Send(req, azure.DoRetryWithRegistration(c.Client)) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "ListBySubscription", result.HttpResponse, "Failure sending request") + return + } + + result, err = c.responderForListBySubscription(result.HttpResponse) + if err != nil { + err = autorest.NewErrorWithError(err, "assessmentsmetadata.AssessmentsMetadataClient", "ListBySubscription", result.HttpResponse, "Failure responding to request") + return + } + + return + } + } + return +} + +// ListBySubscriptionComplete retrieves all of the results into a single object +func (c AssessmentsMetadataClient) ListBySubscriptionComplete(ctx context.Context, id commonids.SubscriptionId) (ListBySubscriptionCompleteResult, error) { + return c.ListBySubscriptionCompleteMatchingPredicate(ctx, id, SecurityAssessmentMetadataResponseOperationPredicate{}) +} + +// ListBySubscriptionCompleteMatchingPredicate retrieves all of the results and then applied the predicate +func (c AssessmentsMetadataClient) ListBySubscriptionCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate SecurityAssessmentMetadataResponseOperationPredicate) (resp ListBySubscriptionCompleteResult, err error) { + items := make([]SecurityAssessmentMetadataResponse, 0) + + page, err := c.ListBySubscription(ctx, id) + if err != nil { + err = fmt.Errorf("loading the initial page: %+v", err) + return + } + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + for page.HasMore() { + page, err = page.LoadMore(ctx) + if err != nil { + err = fmt.Errorf("loading the next page: %+v", err) + return + } + + if page.Model != nil { + for _, v := range *page.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + } + + out := ListBySubscriptionCompleteResult{ + Items: items, + } + return out, nil +} From f7db03a90419407058bbcd2e3499baf67cb78dcd Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Mon, 11 Sep 2023 16:19:37 +0200 Subject: [PATCH 168/336] r/security_center_assessment_policy: fixing a compile time issue This should have been included in the last PR, but was an oversight (I'd missed this wasn't just a vendor issue) --- .../security_center_assessment_policy_resource.go | 12 ++++++------ ...ecurity_center_assessment_policy_resource_test.go | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/internal/services/securitycenter/security_center_assessment_policy_resource.go b/internal/services/securitycenter/security_center_assessment_policy_resource.go index 0d7098f58c4b..4b72127d4ac0 100644 --- a/internal/services/securitycenter/security_center_assessment_policy_resource.go +++ b/internal/services/securitycenter/security_center_assessment_policy_resource.go @@ -146,7 +146,7 @@ func resourceArmSecurityCenterAssessmentPolicyCreate(d *pluginsdk.ResourceData, id := assessmentsmetadata.NewProviderAssessmentMetadataID(subscriptionId, name) - existing, err := client.AssessmentsMetadataGetInSubscription(ctx, id) + existing, err := client.GetInSubscription(ctx, id) if err != nil { if !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for presence of existing %s: %+v", id, err) @@ -194,7 +194,7 @@ func resourceArmSecurityCenterAssessmentPolicyCreate(d *pluginsdk.ResourceData, params.Properties.UserImpact = pointer.To(assessmentsmetadata.UserImpact(v.(string))) } - if _, err := client.AssessmentsMetadataCreateInSubscription(ctx, id, params); err != nil { + if _, err := client.CreateInSubscription(ctx, id, params); err != nil { return fmt.Errorf("creating %s: %+v", id, err) } @@ -213,7 +213,7 @@ func resourceArmSecurityCenterAssessmentPolicyRead(d *pluginsdk.ResourceData, me return err } - resp, err := client.AssessmentsMetadataGetInSubscription(ctx, *id) + resp, err := client.GetInSubscription(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { log.Printf("[INFO] %s does not exist - removing from state", *id) @@ -265,7 +265,7 @@ func resourceArmSecurityCenterAssessmentPolicyUpdate(d *pluginsdk.ResourceData, return err } - existing, err := client.AssessmentsMetadataGetInSubscription(ctx, *id) + existing, err := client.GetInSubscription(ctx, *id) if err != nil { return fmt.Errorf("retrieving %s: %+v", *id, err) } @@ -313,7 +313,7 @@ func resourceArmSecurityCenterAssessmentPolicyUpdate(d *pluginsdk.ResourceData, existing.Model.Properties.UserImpact = pointer.To(assessmentsmetadata.UserImpact(d.Get("user_impact").(string))) } - if _, err := client.AssessmentsMetadataCreateInSubscription(ctx, *id, *existing.Model); err != nil { + if _, err := client.CreateInSubscription(ctx, *id, *existing.Model); err != nil { return fmt.Errorf("updating %s: %+v", *id, err) } @@ -330,7 +330,7 @@ func resourceArmSecurityCenterAssessmentPolicyDelete(d *pluginsdk.ResourceData, return err } - if _, err := client.AssessmentsMetadataDeleteInSubscription(ctx, *id); err != nil { + if _, err := client.DeleteInSubscription(ctx, *id); err != nil { return fmt.Errorf("deleting %s: %+v", *id, err) } diff --git a/internal/services/securitycenter/security_center_assessment_policy_resource_test.go b/internal/services/securitycenter/security_center_assessment_policy_resource_test.go index ef7f887ea58c..fc93daeccb89 100644 --- a/internal/services/securitycenter/security_center_assessment_policy_resource_test.go +++ b/internal/services/securitycenter/security_center_assessment_policy_resource_test.go @@ -79,7 +79,7 @@ func (r SecurityCenterAssessmentPolicyResource) Exists(ctx context.Context, clie return nil, err } - resp, err := assessmentMetadataClient.AssessmentsMetadataGetInSubscription(ctx, *id) + resp, err := assessmentMetadataClient.GetInSubscription(ctx, *id) if err != nil { if response.WasNotFound(resp.HttpResponse) { return utils.Bool(false), nil From d14a4a0146145e982eac41b2a611b95a0f127efe Mon Sep 17 00:00:00 2001 From: Zhenhua Hu Date: Tue, 5 Sep 2023 13:25:46 +0800 Subject: [PATCH 169/336] update api version --- internal/services/compute/client/client.go | 2 +- .../services/compute/disk_encryption_set.go | 2 +- .../compute/disk_sas_token_resource.go | 2 +- .../compute/disk_sas_token_resource_test.go | 2 +- .../services/compute/encryption_settings.go | 2 +- internal/services/compute/image_resource.go | 2 +- .../compute/linux_virtual_machine_resource.go | 2 +- .../compute/managed_disk_data_source.go | 2 +- .../services/compute/managed_disk_resource.go | 2 +- .../compute/managed_disk_resource_test.go | 2 +- .../migration/managed_disk_v0_to_v1.go | 2 +- .../services/compute/no_downtime_resize.go | 2 +- internal/services/compute/virtual_machine.go | 2 +- ...l_machine_data_disk_attachment_resource.go | 2 +- .../windows_virtual_machine_resource.go | 2 +- ...rotection_backup_instance_disk_resource.go | 2 +- .../disk_pool_iscsi_target_lun_resource.go | 2 +- ...k_pool_managed_disk_attachment_resource.go | 2 +- .../disk_pool_managed_disk_attachment.go | 2 +- .../disk_pool_managed_disk_attachment_test.go | 2 +- .../services/disks/parse/iscsitarget_lun.go | 2 +- .../disks/parse/iscsitarget_lun_test.go | 2 +- .../legacy/virtual_machine_resource.go | 2 +- .../legacy/virtual_machine_resource_test.go | 2 +- .../site_recovery_replicated_vm_resource.go | 2 +- .../compute/2023-04-02/disks/README.md | 145 ++++ .../compute/2023-04-02/disks/client.go | 26 + .../compute/2023-04-02/disks/constants.go | 618 ++++++++++++++++++ .../compute/2023-04-02/disks/id_disk.go | 127 ++++ .../2023-04-02/disks/method_createorupdate.go | 74 +++ .../compute/2023-04-02/disks/method_delete.go | 71 ++ .../compute/2023-04-02/disks/method_get.go | 51 ++ .../2023-04-02/disks/method_grantaccess.go | 74 +++ .../compute/2023-04-02/disks/method_list.go | 90 +++ .../disks/method_listbyresourcegroup.go | 90 +++ .../2023-04-02/disks/method_revokeaccess.go | 70 ++ .../compute/2023-04-02/disks/method_update.go | 74 +++ .../2023-04-02/disks/model_accessuri.go | 9 + .../2023-04-02/disks/model_creationdata.go | 19 + .../compute/2023-04-02/disks/model_disk.go | 23 + .../2023-04-02/disks/model_diskproperties.go | 81 +++ .../disks/model_disksecurityprofile.go | 9 + .../compute/2023-04-02/disks/model_disksku.go | 9 + .../2023-04-02/disks/model_diskupdate.go | 10 + .../disks/model_diskupdateproperties.go | 27 + .../2023-04-02/disks/model_encryption.go | 9 + .../model_encryptionsettingscollection.go | 10 + .../disks/model_encryptionsettingselement.go | 9 + .../2023-04-02/disks/model_grantaccessdata.go | 11 + .../disks/model_imagediskreference.go | 11 + .../disks/model_keyvaultandkeyreference.go | 9 + .../disks/model_keyvaultandsecretreference.go | 9 + .../disks/model_propertyupdatesinprogress.go | 8 + .../2023-04-02/disks/model_purchaseplan.go | 11 + .../disks/model_shareinfoelement.go | 8 + .../2023-04-02/disks/model_sourcevault.go | 8 + .../disks/model_supportedcapabilities.go | 10 + .../compute/2023-04-02/disks/predicates.go | 37 ++ .../compute/2023-04-02/disks/version.go | 12 + vendor/modules.txt | 2 +- 60 files changed, 1885 insertions(+), 26 deletions(-) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/README.md create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/constants.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/id_disk.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_createorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_delete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_get.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_grantaccess.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_list.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_listbyresourcegroup.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_revokeaccess.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_update.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_accessuri.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_creationdata.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_disk.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_diskproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_disksecurityprofile.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_disksku.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_diskupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_diskupdateproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_encryption.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_encryptionsettingscollection.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_encryptionsettingselement.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_grantaccessdata.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_imagediskreference.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_keyvaultandkeyreference.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_keyvaultandsecretreference.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_propertyupdatesinprogress.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_purchaseplan.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_shareinfoelement.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_sourcevault.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_supportedcapabilities.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/predicates.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/version.go diff --git a/internal/services/compute/client/client.go b/internal/services/compute/client/client.go index d0e33a8ea1ac..33030a1779ba 100644 --- a/internal/services/compute/client/client.go +++ b/internal/services/compute/client/client.go @@ -21,12 +21,12 @@ import ( "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-01/proximityplacementgroups" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/diskaccesses" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/diskencryptionsets" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/snapshots" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-03/galleries" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-03/galleryapplications" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-03/galleryapplicationversions" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-03/gallerysharingupdate" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/go-azure-sdk/resource-manager/marketplaceordering/2015-06-01/agreements" "github.com/hashicorp/terraform-provider-azurerm/internal/common" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" diff --git a/internal/services/compute/disk_encryption_set.go b/internal/services/compute/disk_encryption_set.go index 4ae2dbf3385a..c0f4c94c4e82 100644 --- a/internal/services/compute/disk_encryption_set.go +++ b/internal/services/compute/disk_encryption_set.go @@ -8,7 +8,7 @@ import ( "fmt" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/diskencryptionsets" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" ) // retrieveDiskEncryptionSetEncryptionType returns encryption type of the disk encryption set diff --git a/internal/services/compute/disk_sas_token_resource.go b/internal/services/compute/disk_sas_token_resource.go index 089a32b0d3fe..2430a0950679 100644 --- a/internal/services/compute/disk_sas_token_resource.go +++ b/internal/services/compute/disk_sas_token_resource.go @@ -8,7 +8,7 @@ import ( "log" "time" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" diff --git a/internal/services/compute/disk_sas_token_resource_test.go b/internal/services/compute/disk_sas_token_resource_test.go index 88eaebb58388..2c393e009bc0 100644 --- a/internal/services/compute/disk_sas_token_resource_test.go +++ b/internal/services/compute/disk_sas_token_resource_test.go @@ -8,7 +8,7 @@ import ( "fmt" "testing" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/compute/encryption_settings.go b/internal/services/compute/encryption_settings.go index d4701e154716..1bf0254552f1 100644 --- a/internal/services/compute/encryption_settings.go +++ b/internal/services/compute/encryption_settings.go @@ -4,8 +4,8 @@ package compute import ( - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/snapshots" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-provider-azurerm/internal/features" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" diff --git a/internal/services/compute/image_resource.go b/internal/services/compute/image_resource.go index 054c34331834..e7df3da38de8 100644 --- a/internal/services/compute/image_resource.go +++ b/internal/services/compute/image_resource.go @@ -13,7 +13,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-01/images" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" diff --git a/internal/services/compute/linux_virtual_machine_resource.go b/internal/services/compute/linux_virtual_machine_resource.go index 72cd33b9e643..f33b4569c80a 100644 --- a/internal/services/compute/linux_virtual_machine_resource.go +++ b/internal/services/compute/linux_virtual_machine_resource.go @@ -19,7 +19,7 @@ import ( "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-01/capacityreservationgroups" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-01/images" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-01/proximityplacementgroups" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" azValidate "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" diff --git a/internal/services/compute/managed_disk_data_source.go b/internal/services/compute/managed_disk_data_source.go index 3fc142b41a96..d36e8da82ced 100644 --- a/internal/services/compute/managed_disk_data_source.go +++ b/internal/services/compute/managed_disk_data_source.go @@ -12,7 +12,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" "github.com/hashicorp/go-azure-helpers/resourcemanager/zones" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" diff --git a/internal/services/compute/managed_disk_resource.go b/internal/services/compute/managed_disk_resource.go index f5c2602fc544..4ad87811a1fb 100644 --- a/internal/services/compute/managed_disk_resource.go +++ b/internal/services/compute/managed_disk_resource.go @@ -17,7 +17,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/diskaccesses" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" diff --git a/internal/services/compute/managed_disk_resource_test.go b/internal/services/compute/managed_disk_resource_test.go index e45f15a2b1ce..9604dacc4a82 100644 --- a/internal/services/compute/managed_disk_resource_test.go +++ b/internal/services/compute/managed_disk_resource_test.go @@ -10,7 +10,7 @@ import ( "testing" "time" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/compute/migration/managed_disk_v0_to_v1.go b/internal/services/compute/migration/managed_disk_v0_to_v1.go index bbfc3beb7149..82b0224dcd9c 100644 --- a/internal/services/compute/migration/managed_disk_v0_to_v1.go +++ b/internal/services/compute/migration/managed_disk_v0_to_v1.go @@ -7,7 +7,7 @@ import ( "context" "log" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" ) diff --git a/internal/services/compute/no_downtime_resize.go b/internal/services/compute/no_downtime_resize.go index 5e951b2691e7..f7125a4f9018 100644 --- a/internal/services/compute/no_downtime_resize.go +++ b/internal/services/compute/no_downtime_resize.go @@ -13,7 +13,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2021-07-01/skus" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2021-11-01/virtualmachines" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" ) // The logic on this file is based on: diff --git a/internal/services/compute/virtual_machine.go b/internal/services/compute/virtual_machine.go index c111f1d09e70..64e935f6313b 100644 --- a/internal/services/compute/virtual_machine.go +++ b/internal/services/compute/virtual_machine.go @@ -9,8 +9,8 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-03/galleryapplicationversions" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" azValidate "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" diff --git a/internal/services/compute/virtual_machine_data_disk_attachment_resource.go b/internal/services/compute/virtual_machine_data_disk_attachment_resource.go index eebddfe24fd2..53355ab94ab2 100644 --- a/internal/services/compute/virtual_machine_data_disk_attachment_resource.go +++ b/internal/services/compute/virtual_machine_data_disk_attachment_resource.go @@ -9,7 +9,7 @@ import ( "time" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" diff --git a/internal/services/compute/windows_virtual_machine_resource.go b/internal/services/compute/windows_virtual_machine_resource.go index c869e0a5c26a..6d379077a861 100644 --- a/internal/services/compute/windows_virtual_machine_resource.go +++ b/internal/services/compute/windows_virtual_machine_resource.go @@ -20,7 +20,7 @@ import ( "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-01/capacityreservationgroups" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-01/images" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-01/proximityplacementgroups" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" azValidate "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" diff --git a/internal/services/dataprotection/data_protection_backup_instance_disk_resource.go b/internal/services/dataprotection/data_protection_backup_instance_disk_resource.go index ba1bdf68f060..6bcab8333bba 100644 --- a/internal/services/dataprotection/data_protection_backup_instance_disk_resource.go +++ b/internal/services/dataprotection/data_protection_backup_instance_disk_resource.go @@ -11,7 +11,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances" "github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" diff --git a/internal/services/disks/disk_pool_iscsi_target_lun_resource.go b/internal/services/disks/disk_pool_iscsi_target_lun_resource.go index 49369686fb37..f1ca6045eec3 100644 --- a/internal/services/disks/disk_pool_iscsi_target_lun_resource.go +++ b/internal/services/disks/disk_pool_iscsi_target_lun_resource.go @@ -12,7 +12,7 @@ import ( "time" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/go-azure-sdk/resource-manager/storagepool/2021-08-01/diskpools" "github.com/hashicorp/go-azure-sdk/resource-manager/storagepool/2021-08-01/iscsitargets" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" diff --git a/internal/services/disks/disk_pool_managed_disk_attachment_resource.go b/internal/services/disks/disk_pool_managed_disk_attachment_resource.go index ce84d7e8e670..4ac92c0c3b66 100644 --- a/internal/services/disks/disk_pool_managed_disk_attachment_resource.go +++ b/internal/services/disks/disk_pool_managed_disk_attachment_resource.go @@ -9,7 +9,7 @@ import ( "time" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/go-azure-sdk/resource-manager/storagepool/2021-08-01/diskpools" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" diff --git a/internal/services/disks/parse/disk_pool_managed_disk_attachment.go b/internal/services/disks/parse/disk_pool_managed_disk_attachment.go index bc446c47a1d9..09b53334ad8e 100644 --- a/internal/services/disks/parse/disk_pool_managed_disk_attachment.go +++ b/internal/services/disks/parse/disk_pool_managed_disk_attachment.go @@ -8,7 +8,7 @@ import ( "strings" "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/go-azure-sdk/resource-manager/storagepool/2021-08-01/diskpools" ) diff --git a/internal/services/disks/parse/disk_pool_managed_disk_attachment_test.go b/internal/services/disks/parse/disk_pool_managed_disk_attachment_test.go index d397281f4177..98626bb5a14f 100644 --- a/internal/services/disks/parse/disk_pool_managed_disk_attachment_test.go +++ b/internal/services/disks/parse/disk_pool_managed_disk_attachment_test.go @@ -6,7 +6,7 @@ package parse import ( "testing" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/go-azure-sdk/resource-manager/storagepool/2021-08-01/diskpools" ) diff --git a/internal/services/disks/parse/iscsitarget_lun.go b/internal/services/disks/parse/iscsitarget_lun.go index 0a3a25491047..97198db7e8b0 100644 --- a/internal/services/disks/parse/iscsitarget_lun.go +++ b/internal/services/disks/parse/iscsitarget_lun.go @@ -8,7 +8,7 @@ import ( "strings" "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/go-azure-sdk/resource-manager/storagepool/2021-08-01/iscsitargets" ) diff --git a/internal/services/disks/parse/iscsitarget_lun_test.go b/internal/services/disks/parse/iscsitarget_lun_test.go index d2338ab801a4..508bd8db4354 100644 --- a/internal/services/disks/parse/iscsitarget_lun_test.go +++ b/internal/services/disks/parse/iscsitarget_lun_test.go @@ -6,7 +6,7 @@ package parse import ( "testing" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/go-azure-sdk/resource-manager/storagepool/2021-08-01/iscsitargets" ) diff --git a/internal/services/legacy/virtual_machine_resource.go b/internal/services/legacy/virtual_machine_resource.go index a61fc122fc17..61884507983c 100644 --- a/internal/services/legacy/virtual_machine_resource.go +++ b/internal/services/legacy/virtual_machine_resource.go @@ -14,7 +14,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/legacy/virtual_machine_resource_test.go b/internal/services/legacy/virtual_machine_resource_test.go index 3f151eda08b8..6ecf7696c668 100644 --- a/internal/services/legacy/virtual_machine_resource_test.go +++ b/internal/services/legacy/virtual_machine_resource_test.go @@ -8,7 +8,7 @@ import ( "fmt" "testing" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go b/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go index 7bad070cafec..4c8e6d5d3737 100644 --- a/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go +++ b/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go @@ -22,7 +22,7 @@ import ( "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-01/capacityreservationgroups" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-01/proximityplacementgroups" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/diskencryptionsets" - "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" + "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationfabrics" "github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationpolicies" "github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems" diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/README.md new file mode 100644 index 000000000000..0b2841c6791d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/README.md @@ -0,0 +1,145 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks` Documentation + +The `disks` SDK allows for interaction with the Azure Resource Manager Service `compute` (API Version `2023-04-02`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" +``` + + +### Client Initialization + +```go +client := disks.NewDisksClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `DisksClient.CreateOrUpdate` + +```go +ctx := context.TODO() +id := disks.NewDiskID("12345678-1234-9876-4563-123456789012", "example-resource-group", "diskValue") + +payload := disks.Disk{ + // ... +} + + +if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `DisksClient.Delete` + +```go +ctx := context.TODO() +id := disks.NewDiskID("12345678-1234-9876-4563-123456789012", "example-resource-group", "diskValue") + +if err := client.DeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `DisksClient.Get` + +```go +ctx := context.TODO() +id := disks.NewDiskID("12345678-1234-9876-4563-123456789012", "example-resource-group", "diskValue") + +read, err := client.Get(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `DisksClient.GrantAccess` + +```go +ctx := context.TODO() +id := disks.NewDiskID("12345678-1234-9876-4563-123456789012", "example-resource-group", "diskValue") + +payload := disks.GrantAccessData{ + // ... +} + + +if err := client.GrantAccessThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `DisksClient.List` + +```go +ctx := context.TODO() +id := disks.NewSubscriptionID("12345678-1234-9876-4563-123456789012") + +// alternatively `client.List(ctx, id)` can be used to do batched pagination +items, err := client.ListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `DisksClient.ListByResourceGroup` + +```go +ctx := context.TODO() +id := disks.NewResourceGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group") + +// alternatively `client.ListByResourceGroup(ctx, id)` can be used to do batched pagination +items, err := client.ListByResourceGroupComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `DisksClient.RevokeAccess` + +```go +ctx := context.TODO() +id := disks.NewDiskID("12345678-1234-9876-4563-123456789012", "example-resource-group", "diskValue") + +if err := client.RevokeAccessThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `DisksClient.Update` + +```go +ctx := context.TODO() +id := disks.NewDiskID("12345678-1234-9876-4563-123456789012", "example-resource-group", "diskValue") + +payload := disks.DiskUpdate{ + // ... +} + + +if err := client.UpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/client.go new file mode 100644 index 000000000000..16f70b8378d0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/client.go @@ -0,0 +1,26 @@ +package disks + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DisksClient struct { + Client *resourcemanager.Client +} + +func NewDisksClientWithBaseURI(sdkApi sdkEnv.Api) (*DisksClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "disks", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating DisksClient: %+v", err) + } + + return &DisksClient{ + Client: client, + }, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/constants.go new file mode 100644 index 000000000000..c4e76da34ef4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/constants.go @@ -0,0 +1,618 @@ +package disks + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AccessLevel string + +const ( + AccessLevelNone AccessLevel = "None" + AccessLevelRead AccessLevel = "Read" + AccessLevelWrite AccessLevel = "Write" +) + +func PossibleValuesForAccessLevel() []string { + return []string{ + string(AccessLevelNone), + string(AccessLevelRead), + string(AccessLevelWrite), + } +} + +func (s *AccessLevel) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseAccessLevel(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseAccessLevel(input string) (*AccessLevel, error) { + vals := map[string]AccessLevel{ + "none": AccessLevelNone, + "read": AccessLevelRead, + "write": AccessLevelWrite, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := AccessLevel(input) + return &out, nil +} + +type Architecture string + +const ( + ArchitectureArmSixFour Architecture = "Arm64" + ArchitectureXSixFour Architecture = "x64" +) + +func PossibleValuesForArchitecture() []string { + return []string{ + string(ArchitectureArmSixFour), + string(ArchitectureXSixFour), + } +} + +func (s *Architecture) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseArchitecture(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseArchitecture(input string) (*Architecture, error) { + vals := map[string]Architecture{ + "arm64": ArchitectureArmSixFour, + "x64": ArchitectureXSixFour, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Architecture(input) + return &out, nil +} + +type DataAccessAuthMode string + +const ( + DataAccessAuthModeAzureActiveDirectory DataAccessAuthMode = "AzureActiveDirectory" + DataAccessAuthModeNone DataAccessAuthMode = "None" +) + +func PossibleValuesForDataAccessAuthMode() []string { + return []string{ + string(DataAccessAuthModeAzureActiveDirectory), + string(DataAccessAuthModeNone), + } +} + +func (s *DataAccessAuthMode) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseDataAccessAuthMode(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseDataAccessAuthMode(input string) (*DataAccessAuthMode, error) { + vals := map[string]DataAccessAuthMode{ + "azureactivedirectory": DataAccessAuthModeAzureActiveDirectory, + "none": DataAccessAuthModeNone, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := DataAccessAuthMode(input) + return &out, nil +} + +type DiskCreateOption string + +const ( + DiskCreateOptionAttach DiskCreateOption = "Attach" + DiskCreateOptionCopy DiskCreateOption = "Copy" + DiskCreateOptionCopyFromSanSnapshot DiskCreateOption = "CopyFromSanSnapshot" + DiskCreateOptionCopyStart DiskCreateOption = "CopyStart" + DiskCreateOptionEmpty DiskCreateOption = "Empty" + DiskCreateOptionFromImage DiskCreateOption = "FromImage" + DiskCreateOptionImport DiskCreateOption = "Import" + DiskCreateOptionImportSecure DiskCreateOption = "ImportSecure" + DiskCreateOptionRestore DiskCreateOption = "Restore" + DiskCreateOptionUpload DiskCreateOption = "Upload" + DiskCreateOptionUploadPreparedSecure DiskCreateOption = "UploadPreparedSecure" +) + +func PossibleValuesForDiskCreateOption() []string { + return []string{ + string(DiskCreateOptionAttach), + string(DiskCreateOptionCopy), + string(DiskCreateOptionCopyFromSanSnapshot), + string(DiskCreateOptionCopyStart), + string(DiskCreateOptionEmpty), + string(DiskCreateOptionFromImage), + string(DiskCreateOptionImport), + string(DiskCreateOptionImportSecure), + string(DiskCreateOptionRestore), + string(DiskCreateOptionUpload), + string(DiskCreateOptionUploadPreparedSecure), + } +} + +func (s *DiskCreateOption) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseDiskCreateOption(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseDiskCreateOption(input string) (*DiskCreateOption, error) { + vals := map[string]DiskCreateOption{ + "attach": DiskCreateOptionAttach, + "copy": DiskCreateOptionCopy, + "copyfromsansnapshot": DiskCreateOptionCopyFromSanSnapshot, + "copystart": DiskCreateOptionCopyStart, + "empty": DiskCreateOptionEmpty, + "fromimage": DiskCreateOptionFromImage, + "import": DiskCreateOptionImport, + "importsecure": DiskCreateOptionImportSecure, + "restore": DiskCreateOptionRestore, + "upload": DiskCreateOptionUpload, + "uploadpreparedsecure": DiskCreateOptionUploadPreparedSecure, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := DiskCreateOption(input) + return &out, nil +} + +type DiskSecurityTypes string + +const ( + DiskSecurityTypesConfidentialVMDiskEncryptedWithCustomerKey DiskSecurityTypes = "ConfidentialVM_DiskEncryptedWithCustomerKey" + DiskSecurityTypesConfidentialVMDiskEncryptedWithPlatformKey DiskSecurityTypes = "ConfidentialVM_DiskEncryptedWithPlatformKey" + DiskSecurityTypesConfidentialVMVMGuestStateOnlyEncryptedWithPlatformKey DiskSecurityTypes = "ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey" + DiskSecurityTypesTrustedLaunch DiskSecurityTypes = "TrustedLaunch" +) + +func PossibleValuesForDiskSecurityTypes() []string { + return []string{ + string(DiskSecurityTypesConfidentialVMDiskEncryptedWithCustomerKey), + string(DiskSecurityTypesConfidentialVMDiskEncryptedWithPlatformKey), + string(DiskSecurityTypesConfidentialVMVMGuestStateOnlyEncryptedWithPlatformKey), + string(DiskSecurityTypesTrustedLaunch), + } +} + +func (s *DiskSecurityTypes) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseDiskSecurityTypes(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseDiskSecurityTypes(input string) (*DiskSecurityTypes, error) { + vals := map[string]DiskSecurityTypes{ + "confidentialvm_diskencryptedwithcustomerkey": DiskSecurityTypesConfidentialVMDiskEncryptedWithCustomerKey, + "confidentialvm_diskencryptedwithplatformkey": DiskSecurityTypesConfidentialVMDiskEncryptedWithPlatformKey, + "confidentialvm_vmgueststateonlyencryptedwithplatformkey": DiskSecurityTypesConfidentialVMVMGuestStateOnlyEncryptedWithPlatformKey, + "trustedlaunch": DiskSecurityTypesTrustedLaunch, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := DiskSecurityTypes(input) + return &out, nil +} + +type DiskState string + +const ( + DiskStateActiveSAS DiskState = "ActiveSAS" + DiskStateActiveSASFrozen DiskState = "ActiveSASFrozen" + DiskStateActiveUpload DiskState = "ActiveUpload" + DiskStateAttached DiskState = "Attached" + DiskStateFrozen DiskState = "Frozen" + DiskStateReadyToUpload DiskState = "ReadyToUpload" + DiskStateReserved DiskState = "Reserved" + DiskStateUnattached DiskState = "Unattached" +) + +func PossibleValuesForDiskState() []string { + return []string{ + string(DiskStateActiveSAS), + string(DiskStateActiveSASFrozen), + string(DiskStateActiveUpload), + string(DiskStateAttached), + string(DiskStateFrozen), + string(DiskStateReadyToUpload), + string(DiskStateReserved), + string(DiskStateUnattached), + } +} + +func (s *DiskState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseDiskState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseDiskState(input string) (*DiskState, error) { + vals := map[string]DiskState{ + "activesas": DiskStateActiveSAS, + "activesasfrozen": DiskStateActiveSASFrozen, + "activeupload": DiskStateActiveUpload, + "attached": DiskStateAttached, + "frozen": DiskStateFrozen, + "readytoupload": DiskStateReadyToUpload, + "reserved": DiskStateReserved, + "unattached": DiskStateUnattached, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := DiskState(input) + return &out, nil +} + +type DiskStorageAccountTypes string + +const ( + DiskStorageAccountTypesPremiumLRS DiskStorageAccountTypes = "Premium_LRS" + DiskStorageAccountTypesPremiumVTwoLRS DiskStorageAccountTypes = "PremiumV2_LRS" + DiskStorageAccountTypesPremiumZRS DiskStorageAccountTypes = "Premium_ZRS" + DiskStorageAccountTypesStandardLRS DiskStorageAccountTypes = "Standard_LRS" + DiskStorageAccountTypesStandardSSDLRS DiskStorageAccountTypes = "StandardSSD_LRS" + DiskStorageAccountTypesStandardSSDZRS DiskStorageAccountTypes = "StandardSSD_ZRS" + DiskStorageAccountTypesUltraSSDLRS DiskStorageAccountTypes = "UltraSSD_LRS" +) + +func PossibleValuesForDiskStorageAccountTypes() []string { + return []string{ + string(DiskStorageAccountTypesPremiumLRS), + string(DiskStorageAccountTypesPremiumVTwoLRS), + string(DiskStorageAccountTypesPremiumZRS), + string(DiskStorageAccountTypesStandardLRS), + string(DiskStorageAccountTypesStandardSSDLRS), + string(DiskStorageAccountTypesStandardSSDZRS), + string(DiskStorageAccountTypesUltraSSDLRS), + } +} + +func (s *DiskStorageAccountTypes) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseDiskStorageAccountTypes(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseDiskStorageAccountTypes(input string) (*DiskStorageAccountTypes, error) { + vals := map[string]DiskStorageAccountTypes{ + "premium_lrs": DiskStorageAccountTypesPremiumLRS, + "premiumv2_lrs": DiskStorageAccountTypesPremiumVTwoLRS, + "premium_zrs": DiskStorageAccountTypesPremiumZRS, + "standard_lrs": DiskStorageAccountTypesStandardLRS, + "standardssd_lrs": DiskStorageAccountTypesStandardSSDLRS, + "standardssd_zrs": DiskStorageAccountTypesStandardSSDZRS, + "ultrassd_lrs": DiskStorageAccountTypesUltraSSDLRS, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := DiskStorageAccountTypes(input) + return &out, nil +} + +type EncryptionType string + +const ( + EncryptionTypeEncryptionAtRestWithCustomerKey EncryptionType = "EncryptionAtRestWithCustomerKey" + EncryptionTypeEncryptionAtRestWithPlatformAndCustomerKeys EncryptionType = "EncryptionAtRestWithPlatformAndCustomerKeys" + EncryptionTypeEncryptionAtRestWithPlatformKey EncryptionType = "EncryptionAtRestWithPlatformKey" +) + +func PossibleValuesForEncryptionType() []string { + return []string{ + string(EncryptionTypeEncryptionAtRestWithCustomerKey), + string(EncryptionTypeEncryptionAtRestWithPlatformAndCustomerKeys), + string(EncryptionTypeEncryptionAtRestWithPlatformKey), + } +} + +func (s *EncryptionType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseEncryptionType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseEncryptionType(input string) (*EncryptionType, error) { + vals := map[string]EncryptionType{ + "encryptionatrestwithcustomerkey": EncryptionTypeEncryptionAtRestWithCustomerKey, + "encryptionatrestwithplatformandcustomerkeys": EncryptionTypeEncryptionAtRestWithPlatformAndCustomerKeys, + "encryptionatrestwithplatformkey": EncryptionTypeEncryptionAtRestWithPlatformKey, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := EncryptionType(input) + return &out, nil +} + +type FileFormat string + +const ( + FileFormatVHD FileFormat = "VHD" + FileFormatVHDX FileFormat = "VHDX" +) + +func PossibleValuesForFileFormat() []string { + return []string{ + string(FileFormatVHD), + string(FileFormatVHDX), + } +} + +func (s *FileFormat) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseFileFormat(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseFileFormat(input string) (*FileFormat, error) { + vals := map[string]FileFormat{ + "vhd": FileFormatVHD, + "vhdx": FileFormatVHDX, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := FileFormat(input) + return &out, nil +} + +type HyperVGeneration string + +const ( + HyperVGenerationVOne HyperVGeneration = "V1" + HyperVGenerationVTwo HyperVGeneration = "V2" +) + +func PossibleValuesForHyperVGeneration() []string { + return []string{ + string(HyperVGenerationVOne), + string(HyperVGenerationVTwo), + } +} + +func (s *HyperVGeneration) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseHyperVGeneration(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseHyperVGeneration(input string) (*HyperVGeneration, error) { + vals := map[string]HyperVGeneration{ + "v1": HyperVGenerationVOne, + "v2": HyperVGenerationVTwo, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := HyperVGeneration(input) + return &out, nil +} + +type NetworkAccessPolicy string + +const ( + NetworkAccessPolicyAllowAll NetworkAccessPolicy = "AllowAll" + NetworkAccessPolicyAllowPrivate NetworkAccessPolicy = "AllowPrivate" + NetworkAccessPolicyDenyAll NetworkAccessPolicy = "DenyAll" +) + +func PossibleValuesForNetworkAccessPolicy() []string { + return []string{ + string(NetworkAccessPolicyAllowAll), + string(NetworkAccessPolicyAllowPrivate), + string(NetworkAccessPolicyDenyAll), + } +} + +func (s *NetworkAccessPolicy) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseNetworkAccessPolicy(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseNetworkAccessPolicy(input string) (*NetworkAccessPolicy, error) { + vals := map[string]NetworkAccessPolicy{ + "allowall": NetworkAccessPolicyAllowAll, + "allowprivate": NetworkAccessPolicyAllowPrivate, + "denyall": NetworkAccessPolicyDenyAll, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := NetworkAccessPolicy(input) + return &out, nil +} + +type OperatingSystemTypes string + +const ( + OperatingSystemTypesLinux OperatingSystemTypes = "Linux" + OperatingSystemTypesWindows OperatingSystemTypes = "Windows" +) + +func PossibleValuesForOperatingSystemTypes() []string { + return []string{ + string(OperatingSystemTypesLinux), + string(OperatingSystemTypesWindows), + } +} + +func (s *OperatingSystemTypes) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseOperatingSystemTypes(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseOperatingSystemTypes(input string) (*OperatingSystemTypes, error) { + vals := map[string]OperatingSystemTypes{ + "linux": OperatingSystemTypesLinux, + "windows": OperatingSystemTypesWindows, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := OperatingSystemTypes(input) + return &out, nil +} + +type PublicNetworkAccess string + +const ( + PublicNetworkAccessDisabled PublicNetworkAccess = "Disabled" + PublicNetworkAccessEnabled PublicNetworkAccess = "Enabled" +) + +func PossibleValuesForPublicNetworkAccess() []string { + return []string{ + string(PublicNetworkAccessDisabled), + string(PublicNetworkAccessEnabled), + } +} + +func (s *PublicNetworkAccess) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parsePublicNetworkAccess(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parsePublicNetworkAccess(input string) (*PublicNetworkAccess, error) { + vals := map[string]PublicNetworkAccess{ + "disabled": PublicNetworkAccessDisabled, + "enabled": PublicNetworkAccessEnabled, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := PublicNetworkAccess(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/id_disk.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/id_disk.go new file mode 100644 index 000000000000..3415c385da73 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/id_disk.go @@ -0,0 +1,127 @@ +package disks + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = DiskId{} + +// DiskId is a struct representing the Resource ID for a Disk +type DiskId struct { + SubscriptionId string + ResourceGroupName string + DiskName string +} + +// NewDiskID returns a new DiskId struct +func NewDiskID(subscriptionId string, resourceGroupName string, diskName string) DiskId { + return DiskId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + DiskName: diskName, + } +} + +// ParseDiskID parses 'input' into a DiskId +func ParseDiskID(input string) (*DiskId, error) { + parser := resourceids.NewParserFromResourceIdType(DiskId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DiskId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.DiskName, ok = parsed.Parsed["diskName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "diskName", *parsed) + } + + return &id, nil +} + +// ParseDiskIDInsensitively parses 'input' case-insensitively into a DiskId +// note: this method should only be used for API response data and not user input +func ParseDiskIDInsensitively(input string) (*DiskId, error) { + parser := resourceids.NewParserFromResourceIdType(DiskId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DiskId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.DiskName, ok = parsed.Parsed["diskName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "diskName", *parsed) + } + + return &id, nil +} + +// ValidateDiskID checks that 'input' can be parsed as a Disk ID +func ValidateDiskID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseDiskID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Disk ID +func (id DiskId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/disks/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.DiskName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Disk ID +func (id DiskId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftCompute", "Microsoft.Compute", "Microsoft.Compute"), + resourceids.StaticSegment("staticDisks", "disks", "disks"), + resourceids.UserSpecifiedSegment("diskName", "diskValue"), + } +} + +// String returns a human-readable description of this Disk ID +func (id DiskId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Disk Name: %q", id.DiskName), + } + return fmt.Sprintf("Disk (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_createorupdate.go new file mode 100644 index 000000000000..e8910088195e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_createorupdate.go @@ -0,0 +1,74 @@ +package disks + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CreateOrUpdate ... +func (c DisksClient) CreateOrUpdate(ctx context.Context, id DiskId, input Disk) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c DisksClient) CreateOrUpdateThenPoll(ctx context.Context, id DiskId, input Disk) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_delete.go new file mode 100644 index 000000000000..457d47557351 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_delete.go @@ -0,0 +1,71 @@ +package disks + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c DisksClient) Delete(ctx context.Context, id DiskId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c DisksClient) DeleteThenPoll(ctx context.Context, id DiskId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_get.go new file mode 100644 index 000000000000..eac7035ae397 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_get.go @@ -0,0 +1,51 @@ +package disks + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Disk +} + +// Get ... +func (c DisksClient) Get(ctx context.Context, id DiskId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_grantaccess.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_grantaccess.go new file mode 100644 index 000000000000..d449d3f69b07 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_grantaccess.go @@ -0,0 +1,74 @@ +package disks + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GrantAccessOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// GrantAccess ... +func (c DisksClient) GrantAccess(ctx context.Context, id DiskId, input GrantAccessData) (result GrantAccessOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/beginGetAccess", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// GrantAccessThenPoll performs GrantAccess then polls until it's completed +func (c DisksClient) GrantAccessThenPoll(ctx context.Context, id DiskId, input GrantAccessData) error { + result, err := c.GrantAccess(ctx, id, input) + if err != nil { + return fmt.Errorf("performing GrantAccess: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after GrantAccess: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_list.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_list.go new file mode 100644 index 000000000000..bf07939f4a73 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_list.go @@ -0,0 +1,90 @@ +package disks + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]Disk +} + +type ListCompleteResult struct { + Items []Disk +} + +// List ... +func (c DisksClient) List(ctx context.Context, id commonids.SubscriptionId) (result ListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.Compute/disks", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]Disk `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListComplete retrieves all the results into a single object +func (c DisksClient) ListComplete(ctx context.Context, id commonids.SubscriptionId) (ListCompleteResult, error) { + return c.ListCompleteMatchingPredicate(ctx, id, DiskOperationPredicate{}) +} + +// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c DisksClient) ListCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate DiskOperationPredicate) (result ListCompleteResult, err error) { + items := make([]Disk, 0) + + resp, err := c.List(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_listbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_listbyresourcegroup.go new file mode 100644 index 000000000000..6580da90af90 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_listbyresourcegroup.go @@ -0,0 +1,90 @@ +package disks + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByResourceGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]Disk +} + +type ListByResourceGroupCompleteResult struct { + Items []Disk +} + +// ListByResourceGroup ... +func (c DisksClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.Compute/disks", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]Disk `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListByResourceGroupComplete retrieves all the results into a single object +func (c DisksClient) ListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (ListByResourceGroupCompleteResult, error) { + return c.ListByResourceGroupCompleteMatchingPredicate(ctx, id, DiskOperationPredicate{}) +} + +// ListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c DisksClient) ListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate DiskOperationPredicate) (result ListByResourceGroupCompleteResult, err error) { + items := make([]Disk, 0) + + resp, err := c.ListByResourceGroup(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListByResourceGroupCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_revokeaccess.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_revokeaccess.go new file mode 100644 index 000000000000..05157936bb30 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_revokeaccess.go @@ -0,0 +1,70 @@ +package disks + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type RevokeAccessOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// RevokeAccess ... +func (c DisksClient) RevokeAccess(ctx context.Context, id DiskId) (result RevokeAccessOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/endGetAccess", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// RevokeAccessThenPoll performs RevokeAccess then polls until it's completed +func (c DisksClient) RevokeAccessThenPoll(ctx context.Context, id DiskId) error { + result, err := c.RevokeAccess(ctx, id) + if err != nil { + return fmt.Errorf("performing RevokeAccess: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after RevokeAccess: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_update.go new file mode 100644 index 000000000000..b2ed6c8f6307 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/method_update.go @@ -0,0 +1,74 @@ +package disks + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Update ... +func (c DisksClient) Update(ctx context.Context, id DiskId, input DiskUpdate) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// UpdateThenPoll performs Update then polls until it's completed +func (c DisksClient) UpdateThenPoll(ctx context.Context, id DiskId, input DiskUpdate) error { + result, err := c.Update(ctx, id, input) + if err != nil { + return fmt.Errorf("performing Update: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Update: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_accessuri.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_accessuri.go new file mode 100644 index 000000000000..58d3760048f7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_accessuri.go @@ -0,0 +1,9 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AccessUri struct { + AccessSAS *string `json:"accessSAS,omitempty"` + SecurityDataAccessSAS *string `json:"securityDataAccessSAS,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_creationdata.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_creationdata.go new file mode 100644 index 000000000000..9b0d6e448793 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_creationdata.go @@ -0,0 +1,19 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreationData struct { + CreateOption DiskCreateOption `json:"createOption"` + ElasticSanResourceId *string `json:"elasticSanResourceId,omitempty"` + GalleryImageReference *ImageDiskReference `json:"galleryImageReference,omitempty"` + ImageReference *ImageDiskReference `json:"imageReference,omitempty"` + LogicalSectorSize *int64 `json:"logicalSectorSize,omitempty"` + PerformancePlus *bool `json:"performancePlus,omitempty"` + SecurityDataUri *string `json:"securityDataUri,omitempty"` + SourceResourceId *string `json:"sourceResourceId,omitempty"` + SourceUniqueId *string `json:"sourceUniqueId,omitempty"` + SourceUri *string `json:"sourceUri,omitempty"` + StorageAccountId *string `json:"storageAccountId,omitempty"` + UploadSizeBytes *int64 `json:"uploadSizeBytes,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_disk.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_disk.go new file mode 100644 index 000000000000..bcc52a8530b5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_disk.go @@ -0,0 +1,23 @@ +package disks + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/edgezones" + "github.com/hashicorp/go-azure-helpers/resourcemanager/zones" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Disk struct { + ExtendedLocation *edgezones.Model `json:"extendedLocation,omitempty"` + Id *string `json:"id,omitempty"` + Location string `json:"location"` + ManagedBy *string `json:"managedBy,omitempty"` + ManagedByExtended *[]string `json:"managedByExtended,omitempty"` + Name *string `json:"name,omitempty"` + Properties *DiskProperties `json:"properties,omitempty"` + Sku *DiskSku `json:"sku,omitempty"` + Tags *map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` + Zones *zones.Schema `json:"zones,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_diskproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_diskproperties.go new file mode 100644 index 000000000000..255deb54c1db --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_diskproperties.go @@ -0,0 +1,81 @@ +package disks + +import ( + "time" + + "github.com/hashicorp/go-azure-helpers/lang/dates" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiskProperties struct { + BurstingEnabled *bool `json:"burstingEnabled,omitempty"` + BurstingEnabledTime *string `json:"burstingEnabledTime,omitempty"` + CompletionPercent *float64 `json:"completionPercent,omitempty"` + CreationData CreationData `json:"creationData"` + DataAccessAuthMode *DataAccessAuthMode `json:"dataAccessAuthMode,omitempty"` + DiskAccessId *string `json:"diskAccessId,omitempty"` + DiskIOPSReadOnly *int64 `json:"diskIOPSReadOnly,omitempty"` + DiskIOPSReadWrite *int64 `json:"diskIOPSReadWrite,omitempty"` + DiskMBpsReadOnly *int64 `json:"diskMBpsReadOnly,omitempty"` + DiskMBpsReadWrite *int64 `json:"diskMBpsReadWrite,omitempty"` + DiskSizeBytes *int64 `json:"diskSizeBytes,omitempty"` + DiskSizeGB *int64 `json:"diskSizeGB,omitempty"` + DiskState *DiskState `json:"diskState,omitempty"` + Encryption *Encryption `json:"encryption,omitempty"` + EncryptionSettingsCollection *EncryptionSettingsCollection `json:"encryptionSettingsCollection,omitempty"` + HyperVGeneration *HyperVGeneration `json:"hyperVGeneration,omitempty"` + LastOwnershipUpdateTime *string `json:"LastOwnershipUpdateTime,omitempty"` + MaxShares *int64 `json:"maxShares,omitempty"` + NetworkAccessPolicy *NetworkAccessPolicy `json:"networkAccessPolicy,omitempty"` + OptimizedForFrequentAttach *bool `json:"optimizedForFrequentAttach,omitempty"` + OsType *OperatingSystemTypes `json:"osType,omitempty"` + PropertyUpdatesInProgress *PropertyUpdatesInProgress `json:"propertyUpdatesInProgress,omitempty"` + ProvisioningState *string `json:"provisioningState,omitempty"` + PublicNetworkAccess *PublicNetworkAccess `json:"publicNetworkAccess,omitempty"` + PurchasePlan *PurchasePlan `json:"purchasePlan,omitempty"` + SecurityProfile *DiskSecurityProfile `json:"securityProfile,omitempty"` + ShareInfo *[]ShareInfoElement `json:"shareInfo,omitempty"` + SupportedCapabilities *SupportedCapabilities `json:"supportedCapabilities,omitempty"` + SupportsHibernation *bool `json:"supportsHibernation,omitempty"` + Tier *string `json:"tier,omitempty"` + TimeCreated *string `json:"timeCreated,omitempty"` + UniqueId *string `json:"uniqueId,omitempty"` +} + +func (o *DiskProperties) GetBurstingEnabledTimeAsTime() (*time.Time, error) { + if o.BurstingEnabledTime == nil { + return nil, nil + } + return dates.ParseAsFormat(o.BurstingEnabledTime, "2006-01-02T15:04:05Z07:00") +} + +func (o *DiskProperties) SetBurstingEnabledTimeAsTime(input time.Time) { + formatted := input.Format("2006-01-02T15:04:05Z07:00") + o.BurstingEnabledTime = &formatted +} + +func (o *DiskProperties) GetLastOwnershipUpdateTimeAsTime() (*time.Time, error) { + if o.LastOwnershipUpdateTime == nil { + return nil, nil + } + return dates.ParseAsFormat(o.LastOwnershipUpdateTime, "2006-01-02T15:04:05Z07:00") +} + +func (o *DiskProperties) SetLastOwnershipUpdateTimeAsTime(input time.Time) { + formatted := input.Format("2006-01-02T15:04:05Z07:00") + o.LastOwnershipUpdateTime = &formatted +} + +func (o *DiskProperties) GetTimeCreatedAsTime() (*time.Time, error) { + if o.TimeCreated == nil { + return nil, nil + } + return dates.ParseAsFormat(o.TimeCreated, "2006-01-02T15:04:05Z07:00") +} + +func (o *DiskProperties) SetTimeCreatedAsTime(input time.Time) { + formatted := input.Format("2006-01-02T15:04:05Z07:00") + o.TimeCreated = &formatted +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_disksecurityprofile.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_disksecurityprofile.go new file mode 100644 index 000000000000..e692c2aa6c62 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_disksecurityprofile.go @@ -0,0 +1,9 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiskSecurityProfile struct { + SecureVMDiskEncryptionSetId *string `json:"secureVMDiskEncryptionSetId,omitempty"` + SecurityType *DiskSecurityTypes `json:"securityType,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_disksku.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_disksku.go new file mode 100644 index 000000000000..ecfdb4a92f7d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_disksku.go @@ -0,0 +1,9 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiskSku struct { + Name *DiskStorageAccountTypes `json:"name,omitempty"` + Tier *string `json:"tier,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_diskupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_diskupdate.go new file mode 100644 index 000000000000..c77485a196fc --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_diskupdate.go @@ -0,0 +1,10 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiskUpdate struct { + Properties *DiskUpdateProperties `json:"properties,omitempty"` + Sku *DiskSku `json:"sku,omitempty"` + Tags *map[string]string `json:"tags,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_diskupdateproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_diskupdateproperties.go new file mode 100644 index 000000000000..29d3b7441b4f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_diskupdateproperties.go @@ -0,0 +1,27 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiskUpdateProperties struct { + BurstingEnabled *bool `json:"burstingEnabled,omitempty"` + DataAccessAuthMode *DataAccessAuthMode `json:"dataAccessAuthMode,omitempty"` + DiskAccessId *string `json:"diskAccessId,omitempty"` + DiskIOPSReadOnly *int64 `json:"diskIOPSReadOnly,omitempty"` + DiskIOPSReadWrite *int64 `json:"diskIOPSReadWrite,omitempty"` + DiskMBpsReadOnly *int64 `json:"diskMBpsReadOnly,omitempty"` + DiskMBpsReadWrite *int64 `json:"diskMBpsReadWrite,omitempty"` + DiskSizeGB *int64 `json:"diskSizeGB,omitempty"` + Encryption *Encryption `json:"encryption,omitempty"` + EncryptionSettingsCollection *EncryptionSettingsCollection `json:"encryptionSettingsCollection,omitempty"` + MaxShares *int64 `json:"maxShares,omitempty"` + NetworkAccessPolicy *NetworkAccessPolicy `json:"networkAccessPolicy,omitempty"` + OptimizedForFrequentAttach *bool `json:"optimizedForFrequentAttach,omitempty"` + OsType *OperatingSystemTypes `json:"osType,omitempty"` + PropertyUpdatesInProgress *PropertyUpdatesInProgress `json:"propertyUpdatesInProgress,omitempty"` + PublicNetworkAccess *PublicNetworkAccess `json:"publicNetworkAccess,omitempty"` + PurchasePlan *PurchasePlan `json:"purchasePlan,omitempty"` + SupportedCapabilities *SupportedCapabilities `json:"supportedCapabilities,omitempty"` + SupportsHibernation *bool `json:"supportsHibernation,omitempty"` + Tier *string `json:"tier,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_encryption.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_encryption.go new file mode 100644 index 000000000000..a0f8d635ff20 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_encryption.go @@ -0,0 +1,9 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Encryption struct { + DiskEncryptionSetId *string `json:"diskEncryptionSetId,omitempty"` + Type *EncryptionType `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_encryptionsettingscollection.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_encryptionsettingscollection.go new file mode 100644 index 000000000000..9bdf2de002da --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_encryptionsettingscollection.go @@ -0,0 +1,10 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type EncryptionSettingsCollection struct { + Enabled bool `json:"enabled"` + EncryptionSettings *[]EncryptionSettingsElement `json:"encryptionSettings,omitempty"` + EncryptionSettingsVersion *string `json:"encryptionSettingsVersion,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_encryptionsettingselement.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_encryptionsettingselement.go new file mode 100644 index 000000000000..21aa55d94134 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_encryptionsettingselement.go @@ -0,0 +1,9 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type EncryptionSettingsElement struct { + DiskEncryptionKey *KeyVaultAndSecretReference `json:"diskEncryptionKey,omitempty"` + KeyEncryptionKey *KeyVaultAndKeyReference `json:"keyEncryptionKey,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_grantaccessdata.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_grantaccessdata.go new file mode 100644 index 000000000000..983cf1a40d52 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_grantaccessdata.go @@ -0,0 +1,11 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GrantAccessData struct { + Access AccessLevel `json:"access"` + DurationInSeconds int64 `json:"durationInSeconds"` + FileFormat *FileFormat `json:"fileFormat,omitempty"` + GetSecureVMGuestStateSAS *bool `json:"getSecureVMGuestStateSAS,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_imagediskreference.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_imagediskreference.go new file mode 100644 index 000000000000..e593d428e372 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_imagediskreference.go @@ -0,0 +1,11 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ImageDiskReference struct { + CommunityGalleryImageId *string `json:"communityGalleryImageId,omitempty"` + Id *string `json:"id,omitempty"` + Lun *int64 `json:"lun,omitempty"` + SharedGalleryImageId *string `json:"sharedGalleryImageId,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_keyvaultandkeyreference.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_keyvaultandkeyreference.go new file mode 100644 index 000000000000..3e61fe328390 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_keyvaultandkeyreference.go @@ -0,0 +1,9 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type KeyVaultAndKeyReference struct { + KeyUrl string `json:"keyUrl"` + SourceVault SourceVault `json:"sourceVault"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_keyvaultandsecretreference.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_keyvaultandsecretreference.go new file mode 100644 index 000000000000..714cd7c20b76 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_keyvaultandsecretreference.go @@ -0,0 +1,9 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type KeyVaultAndSecretReference struct { + SecretUrl string `json:"secretUrl"` + SourceVault SourceVault `json:"sourceVault"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_propertyupdatesinprogress.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_propertyupdatesinprogress.go new file mode 100644 index 000000000000..9d485e8c8d5a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_propertyupdatesinprogress.go @@ -0,0 +1,8 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PropertyUpdatesInProgress struct { + TargetTier *string `json:"targetTier,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_purchaseplan.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_purchaseplan.go new file mode 100644 index 000000000000..d0fc66624334 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_purchaseplan.go @@ -0,0 +1,11 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PurchasePlan struct { + Name string `json:"name"` + Product string `json:"product"` + PromotionCode *string `json:"promotionCode,omitempty"` + Publisher string `json:"publisher"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_shareinfoelement.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_shareinfoelement.go new file mode 100644 index 000000000000..0fa0ff3e24ac --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_shareinfoelement.go @@ -0,0 +1,8 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ShareInfoElement struct { + VMUri *string `json:"vmUri,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_sourcevault.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_sourcevault.go new file mode 100644 index 000000000000..00f5adeac818 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_sourcevault.go @@ -0,0 +1,8 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SourceVault struct { + Id *string `json:"id,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_supportedcapabilities.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_supportedcapabilities.go new file mode 100644 index 000000000000..33c182741106 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/model_supportedcapabilities.go @@ -0,0 +1,10 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SupportedCapabilities struct { + AcceleratedNetwork *bool `json:"acceleratedNetwork,omitempty"` + Architecture *Architecture `json:"architecture,omitempty"` + DiskControllerTypes *string `json:"diskControllerTypes,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/predicates.go new file mode 100644 index 000000000000..0c9aeb6430fe --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/predicates.go @@ -0,0 +1,37 @@ +package disks + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiskOperationPredicate struct { + Id *string + Location *string + ManagedBy *string + Name *string + Type *string +} + +func (p DiskOperationPredicate) Matches(input Disk) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Location != nil && *p.Location != input.Location { + return false + } + + if p.ManagedBy != nil && (input.ManagedBy == nil || *p.ManagedBy != *input.ManagedBy) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/version.go new file mode 100644 index 000000000000..f678fc2f3522 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks/version.go @@ -0,0 +1,12 @@ +package disks + +import "fmt" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +const defaultApiVersion = "2023-04-02" + +func userAgent() string { + return fmt.Sprintf("hashicorp/go-azure-sdk/disks/%s", defaultApiVersion) +} diff --git a/vendor/modules.txt b/vendor/modules.txt index ae083be5595a..b401b7cd7754 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -299,12 +299,12 @@ github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-01/images github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-01/proximityplacementgroups github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/diskaccesses github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/diskencryptionsets -github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/snapshots github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-03/galleries github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-03/galleryapplications github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-03/galleryapplicationversions github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-03/gallerysharingupdate +github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks github.com/hashicorp/go-azure-sdk/resource-manager/confidentialledger/2022-05-13/confidentialledger github.com/hashicorp/go-azure-sdk/resource-manager/consumption/2019-10-01/budgets github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/certificates From df1672c2765d53fed09fa18a57aa3a820f5eaa37 Mon Sep 17 00:00:00 2001 From: Zhenhua Hu Date: Mon, 11 Sep 2023 16:42:24 +0800 Subject: [PATCH 170/336] go mod vendor --- .../compute/2022-03-02/disks/README.md | 145 ----- .../compute/2022-03-02/disks/client.go | 26 - .../compute/2022-03-02/disks/constants.go | 574 ------------------ .../compute/2022-03-02/disks/id_disk.go | 127 ---- .../2022-03-02/disks/method_createorupdate.go | 74 --- .../compute/2022-03-02/disks/method_delete.go | 71 --- .../compute/2022-03-02/disks/method_get.go | 51 -- .../2022-03-02/disks/method_grantaccess.go | 74 --- .../compute/2022-03-02/disks/method_list.go | 90 --- .../disks/method_listbyresourcegroup.go | 90 --- .../2022-03-02/disks/method_revokeaccess.go | 70 --- .../compute/2022-03-02/disks/method_update.go | 74 --- .../2022-03-02/disks/model_accessuri.go | 9 - .../2022-03-02/disks/model_creationdata.go | 17 - .../compute/2022-03-02/disks/model_disk.go | 23 - .../2022-03-02/disks/model_diskproperties.go | 54 -- .../disks/model_disksecurityprofile.go | 9 - .../compute/2022-03-02/disks/model_disksku.go | 9 - .../2022-03-02/disks/model_diskupdate.go | 10 - .../disks/model_diskupdateproperties.go | 26 - .../2022-03-02/disks/model_encryption.go | 9 - .../model_encryptionsettingscollection.go | 10 - .../disks/model_encryptionsettingselement.go | 9 - .../2022-03-02/disks/model_grantaccessdata.go | 10 - .../disks/model_imagediskreference.go | 11 - .../disks/model_keyvaultandkeyreference.go | 9 - .../disks/model_keyvaultandsecretreference.go | 9 - .../disks/model_propertyupdatesinprogress.go | 8 - .../2022-03-02/disks/model_purchaseplan.go | 11 - .../disks/model_shareinfoelement.go | 8 - .../2022-03-02/disks/model_sourcevault.go | 8 - .../disks/model_supportedcapabilities.go | 9 - .../compute/2022-03-02/disks/predicates.go | 37 -- .../compute/2022-03-02/disks/version.go | 12 - 34 files changed, 1783 deletions(-) delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/README.md delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/client.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/constants.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/id_disk.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_grantaccess.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_list.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_listbyresourcegroup.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_revokeaccess.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_update.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_accessuri.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_creationdata.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_disk.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_diskproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_disksecurityprofile.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_disksku.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_diskupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_diskupdateproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_encryption.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_encryptionsettingscollection.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_encryptionsettingselement.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_grantaccessdata.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_imagediskreference.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_keyvaultandkeyreference.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_keyvaultandsecretreference.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_propertyupdatesinprogress.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_purchaseplan.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_shareinfoelement.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_sourcevault.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_supportedcapabilities.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/predicates.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/version.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/README.md deleted file mode 100644 index 30c1ed95c096..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/README.md +++ /dev/null @@ -1,145 +0,0 @@ - -## `github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks` Documentation - -The `disks` SDK allows for interaction with the Azure Resource Manager Service `compute` (API Version `2022-03-02`). - -This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). - -### Import Path - -```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks" -``` - - -### Client Initialization - -```go -client := disks.NewDisksClientWithBaseURI("https://management.azure.com") -client.Client.Authorizer = authorizer -``` - - -### Example Usage: `DisksClient.CreateOrUpdate` - -```go -ctx := context.TODO() -id := disks.NewDiskID("12345678-1234-9876-4563-123456789012", "example-resource-group", "diskValue") - -payload := disks.Disk{ - // ... -} - - -if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil { - // handle the error -} -``` - - -### Example Usage: `DisksClient.Delete` - -```go -ctx := context.TODO() -id := disks.NewDiskID("12345678-1234-9876-4563-123456789012", "example-resource-group", "diskValue") - -if err := client.DeleteThenPoll(ctx, id); err != nil { - // handle the error -} -``` - - -### Example Usage: `DisksClient.Get` - -```go -ctx := context.TODO() -id := disks.NewDiskID("12345678-1234-9876-4563-123456789012", "example-resource-group", "diskValue") - -read, err := client.Get(ctx, id) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` - - -### Example Usage: `DisksClient.GrantAccess` - -```go -ctx := context.TODO() -id := disks.NewDiskID("12345678-1234-9876-4563-123456789012", "example-resource-group", "diskValue") - -payload := disks.GrantAccessData{ - // ... -} - - -if err := client.GrantAccessThenPoll(ctx, id, payload); err != nil { - // handle the error -} -``` - - -### Example Usage: `DisksClient.List` - -```go -ctx := context.TODO() -id := disks.NewSubscriptionID("12345678-1234-9876-4563-123456789012") - -// alternatively `client.List(ctx, id)` can be used to do batched pagination -items, err := client.ListComplete(ctx, id) -if err != nil { - // handle the error -} -for _, item := range items { - // do something -} -``` - - -### Example Usage: `DisksClient.ListByResourceGroup` - -```go -ctx := context.TODO() -id := disks.NewResourceGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group") - -// alternatively `client.ListByResourceGroup(ctx, id)` can be used to do batched pagination -items, err := client.ListByResourceGroupComplete(ctx, id) -if err != nil { - // handle the error -} -for _, item := range items { - // do something -} -``` - - -### Example Usage: `DisksClient.RevokeAccess` - -```go -ctx := context.TODO() -id := disks.NewDiskID("12345678-1234-9876-4563-123456789012", "example-resource-group", "diskValue") - -if err := client.RevokeAccessThenPoll(ctx, id); err != nil { - // handle the error -} -``` - - -### Example Usage: `DisksClient.Update` - -```go -ctx := context.TODO() -id := disks.NewDiskID("12345678-1234-9876-4563-123456789012", "example-resource-group", "diskValue") - -payload := disks.DiskUpdate{ - // ... -} - - -if err := client.UpdateThenPoll(ctx, id, payload); err != nil { - // handle the error -} -``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/client.go deleted file mode 100644 index 16f70b8378d0..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/client.go +++ /dev/null @@ -1,26 +0,0 @@ -package disks - -import ( - "fmt" - - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DisksClient struct { - Client *resourcemanager.Client -} - -func NewDisksClientWithBaseURI(sdkApi sdkEnv.Api) (*DisksClient, error) { - client, err := resourcemanager.NewResourceManagerClient(sdkApi, "disks", defaultApiVersion) - if err != nil { - return nil, fmt.Errorf("instantiating DisksClient: %+v", err) - } - - return &DisksClient{ - Client: client, - }, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/constants.go deleted file mode 100644 index 201b2c508eb6..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/constants.go +++ /dev/null @@ -1,574 +0,0 @@ -package disks - -import ( - "encoding/json" - "fmt" - "strings" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AccessLevel string - -const ( - AccessLevelNone AccessLevel = "None" - AccessLevelRead AccessLevel = "Read" - AccessLevelWrite AccessLevel = "Write" -) - -func PossibleValuesForAccessLevel() []string { - return []string{ - string(AccessLevelNone), - string(AccessLevelRead), - string(AccessLevelWrite), - } -} - -func (s *AccessLevel) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseAccessLevel(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseAccessLevel(input string) (*AccessLevel, error) { - vals := map[string]AccessLevel{ - "none": AccessLevelNone, - "read": AccessLevelRead, - "write": AccessLevelWrite, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := AccessLevel(input) - return &out, nil -} - -type Architecture string - -const ( - ArchitectureArmSixFour Architecture = "Arm64" - ArchitectureXSixFour Architecture = "x64" -) - -func PossibleValuesForArchitecture() []string { - return []string{ - string(ArchitectureArmSixFour), - string(ArchitectureXSixFour), - } -} - -func (s *Architecture) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseArchitecture(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseArchitecture(input string) (*Architecture, error) { - vals := map[string]Architecture{ - "arm64": ArchitectureArmSixFour, - "x64": ArchitectureXSixFour, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := Architecture(input) - return &out, nil -} - -type DataAccessAuthMode string - -const ( - DataAccessAuthModeAzureActiveDirectory DataAccessAuthMode = "AzureActiveDirectory" - DataAccessAuthModeNone DataAccessAuthMode = "None" -) - -func PossibleValuesForDataAccessAuthMode() []string { - return []string{ - string(DataAccessAuthModeAzureActiveDirectory), - string(DataAccessAuthModeNone), - } -} - -func (s *DataAccessAuthMode) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseDataAccessAuthMode(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseDataAccessAuthMode(input string) (*DataAccessAuthMode, error) { - vals := map[string]DataAccessAuthMode{ - "azureactivedirectory": DataAccessAuthModeAzureActiveDirectory, - "none": DataAccessAuthModeNone, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := DataAccessAuthMode(input) - return &out, nil -} - -type DiskCreateOption string - -const ( - DiskCreateOptionAttach DiskCreateOption = "Attach" - DiskCreateOptionCopy DiskCreateOption = "Copy" - DiskCreateOptionCopyStart DiskCreateOption = "CopyStart" - DiskCreateOptionEmpty DiskCreateOption = "Empty" - DiskCreateOptionFromImage DiskCreateOption = "FromImage" - DiskCreateOptionImport DiskCreateOption = "Import" - DiskCreateOptionImportSecure DiskCreateOption = "ImportSecure" - DiskCreateOptionRestore DiskCreateOption = "Restore" - DiskCreateOptionUpload DiskCreateOption = "Upload" - DiskCreateOptionUploadPreparedSecure DiskCreateOption = "UploadPreparedSecure" -) - -func PossibleValuesForDiskCreateOption() []string { - return []string{ - string(DiskCreateOptionAttach), - string(DiskCreateOptionCopy), - string(DiskCreateOptionCopyStart), - string(DiskCreateOptionEmpty), - string(DiskCreateOptionFromImage), - string(DiskCreateOptionImport), - string(DiskCreateOptionImportSecure), - string(DiskCreateOptionRestore), - string(DiskCreateOptionUpload), - string(DiskCreateOptionUploadPreparedSecure), - } -} - -func (s *DiskCreateOption) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseDiskCreateOption(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseDiskCreateOption(input string) (*DiskCreateOption, error) { - vals := map[string]DiskCreateOption{ - "attach": DiskCreateOptionAttach, - "copy": DiskCreateOptionCopy, - "copystart": DiskCreateOptionCopyStart, - "empty": DiskCreateOptionEmpty, - "fromimage": DiskCreateOptionFromImage, - "import": DiskCreateOptionImport, - "importsecure": DiskCreateOptionImportSecure, - "restore": DiskCreateOptionRestore, - "upload": DiskCreateOptionUpload, - "uploadpreparedsecure": DiskCreateOptionUploadPreparedSecure, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := DiskCreateOption(input) - return &out, nil -} - -type DiskSecurityTypes string - -const ( - DiskSecurityTypesConfidentialVMDiskEncryptedWithCustomerKey DiskSecurityTypes = "ConfidentialVM_DiskEncryptedWithCustomerKey" - DiskSecurityTypesConfidentialVMDiskEncryptedWithPlatformKey DiskSecurityTypes = "ConfidentialVM_DiskEncryptedWithPlatformKey" - DiskSecurityTypesConfidentialVMVMGuestStateOnlyEncryptedWithPlatformKey DiskSecurityTypes = "ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey" - DiskSecurityTypesTrustedLaunch DiskSecurityTypes = "TrustedLaunch" -) - -func PossibleValuesForDiskSecurityTypes() []string { - return []string{ - string(DiskSecurityTypesConfidentialVMDiskEncryptedWithCustomerKey), - string(DiskSecurityTypesConfidentialVMDiskEncryptedWithPlatformKey), - string(DiskSecurityTypesConfidentialVMVMGuestStateOnlyEncryptedWithPlatformKey), - string(DiskSecurityTypesTrustedLaunch), - } -} - -func (s *DiskSecurityTypes) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseDiskSecurityTypes(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseDiskSecurityTypes(input string) (*DiskSecurityTypes, error) { - vals := map[string]DiskSecurityTypes{ - "confidentialvm_diskencryptedwithcustomerkey": DiskSecurityTypesConfidentialVMDiskEncryptedWithCustomerKey, - "confidentialvm_diskencryptedwithplatformkey": DiskSecurityTypesConfidentialVMDiskEncryptedWithPlatformKey, - "confidentialvm_vmgueststateonlyencryptedwithplatformkey": DiskSecurityTypesConfidentialVMVMGuestStateOnlyEncryptedWithPlatformKey, - "trustedlaunch": DiskSecurityTypesTrustedLaunch, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := DiskSecurityTypes(input) - return &out, nil -} - -type DiskState string - -const ( - DiskStateActiveSAS DiskState = "ActiveSAS" - DiskStateActiveSASFrozen DiskState = "ActiveSASFrozen" - DiskStateActiveUpload DiskState = "ActiveUpload" - DiskStateAttached DiskState = "Attached" - DiskStateFrozen DiskState = "Frozen" - DiskStateReadyToUpload DiskState = "ReadyToUpload" - DiskStateReserved DiskState = "Reserved" - DiskStateUnattached DiskState = "Unattached" -) - -func PossibleValuesForDiskState() []string { - return []string{ - string(DiskStateActiveSAS), - string(DiskStateActiveSASFrozen), - string(DiskStateActiveUpload), - string(DiskStateAttached), - string(DiskStateFrozen), - string(DiskStateReadyToUpload), - string(DiskStateReserved), - string(DiskStateUnattached), - } -} - -func (s *DiskState) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseDiskState(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseDiskState(input string) (*DiskState, error) { - vals := map[string]DiskState{ - "activesas": DiskStateActiveSAS, - "activesasfrozen": DiskStateActiveSASFrozen, - "activeupload": DiskStateActiveUpload, - "attached": DiskStateAttached, - "frozen": DiskStateFrozen, - "readytoupload": DiskStateReadyToUpload, - "reserved": DiskStateReserved, - "unattached": DiskStateUnattached, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := DiskState(input) - return &out, nil -} - -type DiskStorageAccountTypes string - -const ( - DiskStorageAccountTypesPremiumLRS DiskStorageAccountTypes = "Premium_LRS" - DiskStorageAccountTypesPremiumVTwoLRS DiskStorageAccountTypes = "PremiumV2_LRS" - DiskStorageAccountTypesPremiumZRS DiskStorageAccountTypes = "Premium_ZRS" - DiskStorageAccountTypesStandardLRS DiskStorageAccountTypes = "Standard_LRS" - DiskStorageAccountTypesStandardSSDLRS DiskStorageAccountTypes = "StandardSSD_LRS" - DiskStorageAccountTypesStandardSSDZRS DiskStorageAccountTypes = "StandardSSD_ZRS" - DiskStorageAccountTypesUltraSSDLRS DiskStorageAccountTypes = "UltraSSD_LRS" -) - -func PossibleValuesForDiskStorageAccountTypes() []string { - return []string{ - string(DiskStorageAccountTypesPremiumLRS), - string(DiskStorageAccountTypesPremiumVTwoLRS), - string(DiskStorageAccountTypesPremiumZRS), - string(DiskStorageAccountTypesStandardLRS), - string(DiskStorageAccountTypesStandardSSDLRS), - string(DiskStorageAccountTypesStandardSSDZRS), - string(DiskStorageAccountTypesUltraSSDLRS), - } -} - -func (s *DiskStorageAccountTypes) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseDiskStorageAccountTypes(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseDiskStorageAccountTypes(input string) (*DiskStorageAccountTypes, error) { - vals := map[string]DiskStorageAccountTypes{ - "premium_lrs": DiskStorageAccountTypesPremiumLRS, - "premiumv2_lrs": DiskStorageAccountTypesPremiumVTwoLRS, - "premium_zrs": DiskStorageAccountTypesPremiumZRS, - "standard_lrs": DiskStorageAccountTypesStandardLRS, - "standardssd_lrs": DiskStorageAccountTypesStandardSSDLRS, - "standardssd_zrs": DiskStorageAccountTypesStandardSSDZRS, - "ultrassd_lrs": DiskStorageAccountTypesUltraSSDLRS, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := DiskStorageAccountTypes(input) - return &out, nil -} - -type EncryptionType string - -const ( - EncryptionTypeEncryptionAtRestWithCustomerKey EncryptionType = "EncryptionAtRestWithCustomerKey" - EncryptionTypeEncryptionAtRestWithPlatformAndCustomerKeys EncryptionType = "EncryptionAtRestWithPlatformAndCustomerKeys" - EncryptionTypeEncryptionAtRestWithPlatformKey EncryptionType = "EncryptionAtRestWithPlatformKey" -) - -func PossibleValuesForEncryptionType() []string { - return []string{ - string(EncryptionTypeEncryptionAtRestWithCustomerKey), - string(EncryptionTypeEncryptionAtRestWithPlatformAndCustomerKeys), - string(EncryptionTypeEncryptionAtRestWithPlatformKey), - } -} - -func (s *EncryptionType) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseEncryptionType(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseEncryptionType(input string) (*EncryptionType, error) { - vals := map[string]EncryptionType{ - "encryptionatrestwithcustomerkey": EncryptionTypeEncryptionAtRestWithCustomerKey, - "encryptionatrestwithplatformandcustomerkeys": EncryptionTypeEncryptionAtRestWithPlatformAndCustomerKeys, - "encryptionatrestwithplatformkey": EncryptionTypeEncryptionAtRestWithPlatformKey, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := EncryptionType(input) - return &out, nil -} - -type HyperVGeneration string - -const ( - HyperVGenerationVOne HyperVGeneration = "V1" - HyperVGenerationVTwo HyperVGeneration = "V2" -) - -func PossibleValuesForHyperVGeneration() []string { - return []string{ - string(HyperVGenerationVOne), - string(HyperVGenerationVTwo), - } -} - -func (s *HyperVGeneration) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseHyperVGeneration(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseHyperVGeneration(input string) (*HyperVGeneration, error) { - vals := map[string]HyperVGeneration{ - "v1": HyperVGenerationVOne, - "v2": HyperVGenerationVTwo, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := HyperVGeneration(input) - return &out, nil -} - -type NetworkAccessPolicy string - -const ( - NetworkAccessPolicyAllowAll NetworkAccessPolicy = "AllowAll" - NetworkAccessPolicyAllowPrivate NetworkAccessPolicy = "AllowPrivate" - NetworkAccessPolicyDenyAll NetworkAccessPolicy = "DenyAll" -) - -func PossibleValuesForNetworkAccessPolicy() []string { - return []string{ - string(NetworkAccessPolicyAllowAll), - string(NetworkAccessPolicyAllowPrivate), - string(NetworkAccessPolicyDenyAll), - } -} - -func (s *NetworkAccessPolicy) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseNetworkAccessPolicy(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseNetworkAccessPolicy(input string) (*NetworkAccessPolicy, error) { - vals := map[string]NetworkAccessPolicy{ - "allowall": NetworkAccessPolicyAllowAll, - "allowprivate": NetworkAccessPolicyAllowPrivate, - "denyall": NetworkAccessPolicyDenyAll, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := NetworkAccessPolicy(input) - return &out, nil -} - -type OperatingSystemTypes string - -const ( - OperatingSystemTypesLinux OperatingSystemTypes = "Linux" - OperatingSystemTypesWindows OperatingSystemTypes = "Windows" -) - -func PossibleValuesForOperatingSystemTypes() []string { - return []string{ - string(OperatingSystemTypesLinux), - string(OperatingSystemTypesWindows), - } -} - -func (s *OperatingSystemTypes) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseOperatingSystemTypes(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseOperatingSystemTypes(input string) (*OperatingSystemTypes, error) { - vals := map[string]OperatingSystemTypes{ - "linux": OperatingSystemTypesLinux, - "windows": OperatingSystemTypesWindows, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := OperatingSystemTypes(input) - return &out, nil -} - -type PublicNetworkAccess string - -const ( - PublicNetworkAccessDisabled PublicNetworkAccess = "Disabled" - PublicNetworkAccessEnabled PublicNetworkAccess = "Enabled" -) - -func PossibleValuesForPublicNetworkAccess() []string { - return []string{ - string(PublicNetworkAccessDisabled), - string(PublicNetworkAccessEnabled), - } -} - -func (s *PublicNetworkAccess) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parsePublicNetworkAccess(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parsePublicNetworkAccess(input string) (*PublicNetworkAccess, error) { - vals := map[string]PublicNetworkAccess{ - "disabled": PublicNetworkAccessDisabled, - "enabled": PublicNetworkAccessEnabled, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := PublicNetworkAccess(input) - return &out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/id_disk.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/id_disk.go deleted file mode 100644 index 3415c385da73..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/id_disk.go +++ /dev/null @@ -1,127 +0,0 @@ -package disks - -import ( - "fmt" - "strings" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -var _ resourceids.ResourceId = DiskId{} - -// DiskId is a struct representing the Resource ID for a Disk -type DiskId struct { - SubscriptionId string - ResourceGroupName string - DiskName string -} - -// NewDiskID returns a new DiskId struct -func NewDiskID(subscriptionId string, resourceGroupName string, diskName string) DiskId { - return DiskId{ - SubscriptionId: subscriptionId, - ResourceGroupName: resourceGroupName, - DiskName: diskName, - } -} - -// ParseDiskID parses 'input' into a DiskId -func ParseDiskID(input string) (*DiskId, error) { - parser := resourceids.NewParserFromResourceIdType(DiskId{}) - parsed, err := parser.Parse(input, false) - if err != nil { - return nil, fmt.Errorf("parsing %q: %+v", input, err) - } - - var ok bool - id := DiskId{} - - if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) - } - - if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) - } - - if id.DiskName, ok = parsed.Parsed["diskName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "diskName", *parsed) - } - - return &id, nil -} - -// ParseDiskIDInsensitively parses 'input' case-insensitively into a DiskId -// note: this method should only be used for API response data and not user input -func ParseDiskIDInsensitively(input string) (*DiskId, error) { - parser := resourceids.NewParserFromResourceIdType(DiskId{}) - parsed, err := parser.Parse(input, true) - if err != nil { - return nil, fmt.Errorf("parsing %q: %+v", input, err) - } - - var ok bool - id := DiskId{} - - if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) - } - - if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) - } - - if id.DiskName, ok = parsed.Parsed["diskName"]; !ok { - return nil, resourceids.NewSegmentNotSpecifiedError(id, "diskName", *parsed) - } - - return &id, nil -} - -// ValidateDiskID checks that 'input' can be parsed as a Disk ID -func ValidateDiskID(input interface{}, key string) (warnings []string, errors []error) { - v, ok := input.(string) - if !ok { - errors = append(errors, fmt.Errorf("expected %q to be a string", key)) - return - } - - if _, err := ParseDiskID(v); err != nil { - errors = append(errors, err) - } - - return -} - -// ID returns the formatted Disk ID -func (id DiskId) ID() string { - fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/disks/%s" - return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.DiskName) -} - -// Segments returns a slice of Resource ID Segments which comprise this Disk ID -func (id DiskId) Segments() []resourceids.Segment { - return []resourceids.Segment{ - resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), - resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), - resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), - resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), - resourceids.StaticSegment("staticProviders", "providers", "providers"), - resourceids.ResourceProviderSegment("staticMicrosoftCompute", "Microsoft.Compute", "Microsoft.Compute"), - resourceids.StaticSegment("staticDisks", "disks", "disks"), - resourceids.UserSpecifiedSegment("diskName", "diskValue"), - } -} - -// String returns a human-readable description of this Disk ID -func (id DiskId) String() string { - components := []string{ - fmt.Sprintf("Subscription: %q", id.SubscriptionId), - fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), - fmt.Sprintf("Disk Name: %q", id.DiskName), - } - return fmt.Sprintf("Disk (%s)", strings.Join(components, "\n")) -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_createorupdate.go deleted file mode 100644 index e8910088195e..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_createorupdate.go +++ /dev/null @@ -1,74 +0,0 @@ -package disks - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - Poller pollers.Poller - HttpResponse *http.Response - OData *odata.OData -} - -// CreateOrUpdate ... -func (c DisksClient) CreateOrUpdate(ctx context.Context, id DiskId, input Disk) (result CreateOrUpdateOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusAccepted, - http.StatusOK, - }, - HttpMethod: http.MethodPut, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - if err = req.Marshal(input); err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) - if err != nil { - return - } - - return -} - -// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed -func (c DisksClient) CreateOrUpdateThenPoll(ctx context.Context, id DiskId, input Disk) error { - result, err := c.CreateOrUpdate(ctx, id, input) - if err != nil { - return fmt.Errorf("performing CreateOrUpdate: %+v", err) - } - - if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after CreateOrUpdate: %+v", err) - } - - return nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_delete.go deleted file mode 100644 index 457d47557351..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_delete.go +++ /dev/null @@ -1,71 +0,0 @@ -package disks - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - Poller pollers.Poller - HttpResponse *http.Response - OData *odata.OData -} - -// Delete ... -func (c DisksClient) Delete(ctx context.Context, id DiskId) (result DeleteOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusAccepted, - http.StatusNoContent, - http.StatusOK, - }, - HttpMethod: http.MethodDelete, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) - if err != nil { - return - } - - return -} - -// DeleteThenPoll performs Delete then polls until it's completed -func (c DisksClient) DeleteThenPoll(ctx context.Context, id DiskId) error { - result, err := c.Delete(ctx, id) - if err != nil { - return fmt.Errorf("performing Delete: %+v", err) - } - - if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after Delete: %+v", err) - } - - return nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_get.go deleted file mode 100644 index eac7035ae397..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_get.go +++ /dev/null @@ -1,51 +0,0 @@ -package disks - -import ( - "context" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *Disk -} - -// Get ... -func (c DisksClient) Get(ctx context.Context, id DiskId) (result GetOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodGet, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - if err = resp.Unmarshal(&result.Model); err != nil { - return - } - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_grantaccess.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_grantaccess.go deleted file mode 100644 index d449d3f69b07..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_grantaccess.go +++ /dev/null @@ -1,74 +0,0 @@ -package disks - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GrantAccessOperationResponse struct { - Poller pollers.Poller - HttpResponse *http.Response - OData *odata.OData -} - -// GrantAccess ... -func (c DisksClient) GrantAccess(ctx context.Context, id DiskId, input GrantAccessData) (result GrantAccessOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusAccepted, - http.StatusOK, - }, - HttpMethod: http.MethodPost, - Path: fmt.Sprintf("%s/beginGetAccess", id.ID()), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - if err = req.Marshal(input); err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) - if err != nil { - return - } - - return -} - -// GrantAccessThenPoll performs GrantAccess then polls until it's completed -func (c DisksClient) GrantAccessThenPoll(ctx context.Context, id DiskId, input GrantAccessData) error { - result, err := c.GrantAccess(ctx, id, input) - if err != nil { - return fmt.Errorf("performing GrantAccess: %+v", err) - } - - if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after GrantAccess: %+v", err) - } - - return nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_list.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_list.go deleted file mode 100644 index bf07939f4a73..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_list.go +++ /dev/null @@ -1,90 +0,0 @@ -package disks - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *[]Disk -} - -type ListCompleteResult struct { - Items []Disk -} - -// List ... -func (c DisksClient) List(ctx context.Context, id commonids.SubscriptionId) (result ListOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodGet, - Path: fmt.Sprintf("%s/providers/Microsoft.Compute/disks", id.ID()), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.ExecutePaged(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - var values struct { - Values *[]Disk `json:"value"` - } - if err = resp.Unmarshal(&values); err != nil { - return - } - - result.Model = values.Values - - return -} - -// ListComplete retrieves all the results into a single object -func (c DisksClient) ListComplete(ctx context.Context, id commonids.SubscriptionId) (ListCompleteResult, error) { - return c.ListCompleteMatchingPredicate(ctx, id, DiskOperationPredicate{}) -} - -// ListCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c DisksClient) ListCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate DiskOperationPredicate) (result ListCompleteResult, err error) { - items := make([]Disk, 0) - - resp, err := c.List(ctx, id) - if err != nil { - err = fmt.Errorf("loading results: %+v", err) - return - } - if resp.Model != nil { - for _, v := range *resp.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - result = ListCompleteResult{ - Items: items, - } - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_listbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_listbyresourcegroup.go deleted file mode 100644 index 6580da90af90..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_listbyresourcegroup.go +++ /dev/null @@ -1,90 +0,0 @@ -package disks - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByResourceGroupOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *[]Disk -} - -type ListByResourceGroupCompleteResult struct { - Items []Disk -} - -// ListByResourceGroup ... -func (c DisksClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodGet, - Path: fmt.Sprintf("%s/providers/Microsoft.Compute/disks", id.ID()), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.ExecutePaged(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - var values struct { - Values *[]Disk `json:"value"` - } - if err = resp.Unmarshal(&values); err != nil { - return - } - - result.Model = values.Values - - return -} - -// ListByResourceGroupComplete retrieves all the results into a single object -func (c DisksClient) ListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (ListByResourceGroupCompleteResult, error) { - return c.ListByResourceGroupCompleteMatchingPredicate(ctx, id, DiskOperationPredicate{}) -} - -// ListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c DisksClient) ListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate DiskOperationPredicate) (result ListByResourceGroupCompleteResult, err error) { - items := make([]Disk, 0) - - resp, err := c.ListByResourceGroup(ctx, id) - if err != nil { - err = fmt.Errorf("loading results: %+v", err) - return - } - if resp.Model != nil { - for _, v := range *resp.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - result = ListByResourceGroupCompleteResult{ - Items: items, - } - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_revokeaccess.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_revokeaccess.go deleted file mode 100644 index 05157936bb30..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_revokeaccess.go +++ /dev/null @@ -1,70 +0,0 @@ -package disks - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type RevokeAccessOperationResponse struct { - Poller pollers.Poller - HttpResponse *http.Response - OData *odata.OData -} - -// RevokeAccess ... -func (c DisksClient) RevokeAccess(ctx context.Context, id DiskId) (result RevokeAccessOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusAccepted, - http.StatusOK, - }, - HttpMethod: http.MethodPost, - Path: fmt.Sprintf("%s/endGetAccess", id.ID()), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) - if err != nil { - return - } - - return -} - -// RevokeAccessThenPoll performs RevokeAccess then polls until it's completed -func (c DisksClient) RevokeAccessThenPoll(ctx context.Context, id DiskId) error { - result, err := c.RevokeAccess(ctx, id) - if err != nil { - return fmt.Errorf("performing RevokeAccess: %+v", err) - } - - if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after RevokeAccess: %+v", err) - } - - return nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_update.go deleted file mode 100644 index b2ed6c8f6307..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/method_update.go +++ /dev/null @@ -1,74 +0,0 @@ -package disks - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type UpdateOperationResponse struct { - Poller pollers.Poller - HttpResponse *http.Response - OData *odata.OData -} - -// Update ... -func (c DisksClient) Update(ctx context.Context, id DiskId, input DiskUpdate) (result UpdateOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusAccepted, - http.StatusOK, - }, - HttpMethod: http.MethodPatch, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - if err = req.Marshal(input); err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) - if err != nil { - return - } - - return -} - -// UpdateThenPoll performs Update then polls until it's completed -func (c DisksClient) UpdateThenPoll(ctx context.Context, id DiskId, input DiskUpdate) error { - result, err := c.Update(ctx, id, input) - if err != nil { - return fmt.Errorf("performing Update: %+v", err) - } - - if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after Update: %+v", err) - } - - return nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_accessuri.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_accessuri.go deleted file mode 100644 index 58d3760048f7..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_accessuri.go +++ /dev/null @@ -1,9 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type AccessUri struct { - AccessSAS *string `json:"accessSAS,omitempty"` - SecurityDataAccessSAS *string `json:"securityDataAccessSAS,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_creationdata.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_creationdata.go deleted file mode 100644 index 93534a3e1691..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_creationdata.go +++ /dev/null @@ -1,17 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreationData struct { - CreateOption DiskCreateOption `json:"createOption"` - GalleryImageReference *ImageDiskReference `json:"galleryImageReference,omitempty"` - ImageReference *ImageDiskReference `json:"imageReference,omitempty"` - LogicalSectorSize *int64 `json:"logicalSectorSize,omitempty"` - SecurityDataUri *string `json:"securityDataUri,omitempty"` - SourceResourceId *string `json:"sourceResourceId,omitempty"` - SourceUniqueId *string `json:"sourceUniqueId,omitempty"` - SourceUri *string `json:"sourceUri,omitempty"` - StorageAccountId *string `json:"storageAccountId,omitempty"` - UploadSizeBytes *int64 `json:"uploadSizeBytes,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_disk.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_disk.go deleted file mode 100644 index bcc52a8530b5..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_disk.go +++ /dev/null @@ -1,23 +0,0 @@ -package disks - -import ( - "github.com/hashicorp/go-azure-helpers/resourcemanager/edgezones" - "github.com/hashicorp/go-azure-helpers/resourcemanager/zones" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type Disk struct { - ExtendedLocation *edgezones.Model `json:"extendedLocation,omitempty"` - Id *string `json:"id,omitempty"` - Location string `json:"location"` - ManagedBy *string `json:"managedBy,omitempty"` - ManagedByExtended *[]string `json:"managedByExtended,omitempty"` - Name *string `json:"name,omitempty"` - Properties *DiskProperties `json:"properties,omitempty"` - Sku *DiskSku `json:"sku,omitempty"` - Tags *map[string]string `json:"tags,omitempty"` - Type *string `json:"type,omitempty"` - Zones *zones.Schema `json:"zones,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_diskproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_diskproperties.go deleted file mode 100644 index 604c5742566a..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_diskproperties.go +++ /dev/null @@ -1,54 +0,0 @@ -package disks - -import ( - "time" - - "github.com/hashicorp/go-azure-helpers/lang/dates" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DiskProperties struct { - BurstingEnabled *bool `json:"burstingEnabled,omitempty"` - CompletionPercent *float64 `json:"completionPercent,omitempty"` - CreationData CreationData `json:"creationData"` - DataAccessAuthMode *DataAccessAuthMode `json:"dataAccessAuthMode,omitempty"` - DiskAccessId *string `json:"diskAccessId,omitempty"` - DiskIOPSReadOnly *int64 `json:"diskIOPSReadOnly,omitempty"` - DiskIOPSReadWrite *int64 `json:"diskIOPSReadWrite,omitempty"` - DiskMBpsReadOnly *int64 `json:"diskMBpsReadOnly,omitempty"` - DiskMBpsReadWrite *int64 `json:"diskMBpsReadWrite,omitempty"` - DiskSizeBytes *int64 `json:"diskSizeBytes,omitempty"` - DiskSizeGB *int64 `json:"diskSizeGB,omitempty"` - DiskState *DiskState `json:"diskState,omitempty"` - Encryption *Encryption `json:"encryption,omitempty"` - EncryptionSettingsCollection *EncryptionSettingsCollection `json:"encryptionSettingsCollection,omitempty"` - HyperVGeneration *HyperVGeneration `json:"hyperVGeneration,omitempty"` - MaxShares *int64 `json:"maxShares,omitempty"` - NetworkAccessPolicy *NetworkAccessPolicy `json:"networkAccessPolicy,omitempty"` - OsType *OperatingSystemTypes `json:"osType,omitempty"` - PropertyUpdatesInProgress *PropertyUpdatesInProgress `json:"propertyUpdatesInProgress,omitempty"` - ProvisioningState *string `json:"provisioningState,omitempty"` - PublicNetworkAccess *PublicNetworkAccess `json:"publicNetworkAccess,omitempty"` - PurchasePlan *PurchasePlan `json:"purchasePlan,omitempty"` - SecurityProfile *DiskSecurityProfile `json:"securityProfile,omitempty"` - ShareInfo *[]ShareInfoElement `json:"shareInfo,omitempty"` - SupportedCapabilities *SupportedCapabilities `json:"supportedCapabilities,omitempty"` - SupportsHibernation *bool `json:"supportsHibernation,omitempty"` - Tier *string `json:"tier,omitempty"` - TimeCreated *string `json:"timeCreated,omitempty"` - UniqueId *string `json:"uniqueId,omitempty"` -} - -func (o *DiskProperties) GetTimeCreatedAsTime() (*time.Time, error) { - if o.TimeCreated == nil { - return nil, nil - } - return dates.ParseAsFormat(o.TimeCreated, "2006-01-02T15:04:05Z07:00") -} - -func (o *DiskProperties) SetTimeCreatedAsTime(input time.Time) { - formatted := input.Format("2006-01-02T15:04:05Z07:00") - o.TimeCreated = &formatted -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_disksecurityprofile.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_disksecurityprofile.go deleted file mode 100644 index e692c2aa6c62..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_disksecurityprofile.go +++ /dev/null @@ -1,9 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DiskSecurityProfile struct { - SecureVMDiskEncryptionSetId *string `json:"secureVMDiskEncryptionSetId,omitempty"` - SecurityType *DiskSecurityTypes `json:"securityType,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_disksku.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_disksku.go deleted file mode 100644 index ecfdb4a92f7d..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_disksku.go +++ /dev/null @@ -1,9 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DiskSku struct { - Name *DiskStorageAccountTypes `json:"name,omitempty"` - Tier *string `json:"tier,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_diskupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_diskupdate.go deleted file mode 100644 index c77485a196fc..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_diskupdate.go +++ /dev/null @@ -1,10 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DiskUpdate struct { - Properties *DiskUpdateProperties `json:"properties,omitempty"` - Sku *DiskSku `json:"sku,omitempty"` - Tags *map[string]string `json:"tags,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_diskupdateproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_diskupdateproperties.go deleted file mode 100644 index db0d9f71afdb..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_diskupdateproperties.go +++ /dev/null @@ -1,26 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DiskUpdateProperties struct { - BurstingEnabled *bool `json:"burstingEnabled,omitempty"` - DataAccessAuthMode *DataAccessAuthMode `json:"dataAccessAuthMode,omitempty"` - DiskAccessId *string `json:"diskAccessId,omitempty"` - DiskIOPSReadOnly *int64 `json:"diskIOPSReadOnly,omitempty"` - DiskIOPSReadWrite *int64 `json:"diskIOPSReadWrite,omitempty"` - DiskMBpsReadOnly *int64 `json:"diskMBpsReadOnly,omitempty"` - DiskMBpsReadWrite *int64 `json:"diskMBpsReadWrite,omitempty"` - DiskSizeGB *int64 `json:"diskSizeGB,omitempty"` - Encryption *Encryption `json:"encryption,omitempty"` - EncryptionSettingsCollection *EncryptionSettingsCollection `json:"encryptionSettingsCollection,omitempty"` - MaxShares *int64 `json:"maxShares,omitempty"` - NetworkAccessPolicy *NetworkAccessPolicy `json:"networkAccessPolicy,omitempty"` - OsType *OperatingSystemTypes `json:"osType,omitempty"` - PropertyUpdatesInProgress *PropertyUpdatesInProgress `json:"propertyUpdatesInProgress,omitempty"` - PublicNetworkAccess *PublicNetworkAccess `json:"publicNetworkAccess,omitempty"` - PurchasePlan *PurchasePlan `json:"purchasePlan,omitempty"` - SupportedCapabilities *SupportedCapabilities `json:"supportedCapabilities,omitempty"` - SupportsHibernation *bool `json:"supportsHibernation,omitempty"` - Tier *string `json:"tier,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_encryption.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_encryption.go deleted file mode 100644 index a0f8d635ff20..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_encryption.go +++ /dev/null @@ -1,9 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type Encryption struct { - DiskEncryptionSetId *string `json:"diskEncryptionSetId,omitempty"` - Type *EncryptionType `json:"type,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_encryptionsettingscollection.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_encryptionsettingscollection.go deleted file mode 100644 index 9bdf2de002da..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_encryptionsettingscollection.go +++ /dev/null @@ -1,10 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type EncryptionSettingsCollection struct { - Enabled bool `json:"enabled"` - EncryptionSettings *[]EncryptionSettingsElement `json:"encryptionSettings,omitempty"` - EncryptionSettingsVersion *string `json:"encryptionSettingsVersion,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_encryptionsettingselement.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_encryptionsettingselement.go deleted file mode 100644 index 21aa55d94134..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_encryptionsettingselement.go +++ /dev/null @@ -1,9 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type EncryptionSettingsElement struct { - DiskEncryptionKey *KeyVaultAndSecretReference `json:"diskEncryptionKey,omitempty"` - KeyEncryptionKey *KeyVaultAndKeyReference `json:"keyEncryptionKey,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_grantaccessdata.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_grantaccessdata.go deleted file mode 100644 index 2ec02360cf44..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_grantaccessdata.go +++ /dev/null @@ -1,10 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GrantAccessData struct { - Access AccessLevel `json:"access"` - DurationInSeconds int64 `json:"durationInSeconds"` - GetSecureVMGuestStateSAS *bool `json:"getSecureVMGuestStateSAS,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_imagediskreference.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_imagediskreference.go deleted file mode 100644 index e593d428e372..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_imagediskreference.go +++ /dev/null @@ -1,11 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ImageDiskReference struct { - CommunityGalleryImageId *string `json:"communityGalleryImageId,omitempty"` - Id *string `json:"id,omitempty"` - Lun *int64 `json:"lun,omitempty"` - SharedGalleryImageId *string `json:"sharedGalleryImageId,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_keyvaultandkeyreference.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_keyvaultandkeyreference.go deleted file mode 100644 index 3e61fe328390..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_keyvaultandkeyreference.go +++ /dev/null @@ -1,9 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type KeyVaultAndKeyReference struct { - KeyUrl string `json:"keyUrl"` - SourceVault SourceVault `json:"sourceVault"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_keyvaultandsecretreference.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_keyvaultandsecretreference.go deleted file mode 100644 index 714cd7c20b76..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_keyvaultandsecretreference.go +++ /dev/null @@ -1,9 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type KeyVaultAndSecretReference struct { - SecretUrl string `json:"secretUrl"` - SourceVault SourceVault `json:"sourceVault"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_propertyupdatesinprogress.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_propertyupdatesinprogress.go deleted file mode 100644 index 9d485e8c8d5a..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_propertyupdatesinprogress.go +++ /dev/null @@ -1,8 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type PropertyUpdatesInProgress struct { - TargetTier *string `json:"targetTier,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_purchaseplan.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_purchaseplan.go deleted file mode 100644 index d0fc66624334..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_purchaseplan.go +++ /dev/null @@ -1,11 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type PurchasePlan struct { - Name string `json:"name"` - Product string `json:"product"` - PromotionCode *string `json:"promotionCode,omitempty"` - Publisher string `json:"publisher"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_shareinfoelement.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_shareinfoelement.go deleted file mode 100644 index 0fa0ff3e24ac..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_shareinfoelement.go +++ /dev/null @@ -1,8 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ShareInfoElement struct { - VMUri *string `json:"vmUri,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_sourcevault.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_sourcevault.go deleted file mode 100644 index 00f5adeac818..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_sourcevault.go +++ /dev/null @@ -1,8 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type SourceVault struct { - Id *string `json:"id,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_supportedcapabilities.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_supportedcapabilities.go deleted file mode 100644 index 4d7f5bbea5a7..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/model_supportedcapabilities.go +++ /dev/null @@ -1,9 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type SupportedCapabilities struct { - AcceleratedNetwork *bool `json:"acceleratedNetwork,omitempty"` - Architecture *Architecture `json:"architecture,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/predicates.go deleted file mode 100644 index 0c9aeb6430fe..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/predicates.go +++ /dev/null @@ -1,37 +0,0 @@ -package disks - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DiskOperationPredicate struct { - Id *string - Location *string - ManagedBy *string - Name *string - Type *string -} - -func (p DiskOperationPredicate) Matches(input Disk) bool { - - if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { - return false - } - - if p.Location != nil && *p.Location != input.Location { - return false - } - - if p.ManagedBy != nil && (input.ManagedBy == nil || *p.ManagedBy != *input.ManagedBy) { - return false - } - - if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { - return false - } - - if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { - return false - } - - return true -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/version.go deleted file mode 100644 index 4c3637d6d79e..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-02/disks/version.go +++ /dev/null @@ -1,12 +0,0 @@ -package disks - -import "fmt" - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -const defaultApiVersion = "2022-03-02" - -func userAgent() string { - return fmt.Sprintf("hashicorp/go-azure-sdk/disks/%s", defaultApiVersion) -} From 929dbb69b1a44139157ce606784fc307f4f65414 Mon Sep 17 00:00:00 2001 From: hc-github-team-tf-azure <> Date: Mon, 11 Sep 2023 15:40:22 +0000 Subject: [PATCH 171/336] Updating based on 18b7a804d --- internal/acceptance/plugin_sdk_aliases.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/acceptance/plugin_sdk_aliases.go b/internal/acceptance/plugin_sdk_aliases.go index b9629ed34e47..1fb7a37f260a 100644 --- a/internal/acceptance/plugin_sdk_aliases.go +++ b/internal/acceptance/plugin_sdk_aliases.go @@ -7,7 +7,6 @@ import ( "regexp" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry" - "github.com/hashicorp/terraform-plugin-testing/helper/resource" "github.com/hashicorp/terraform-plugin-testing/terraform" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" From a40704c43a42ebe6b7be1f737d342215059c1270 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Mon, 11 Sep 2023 18:12:07 +0200 Subject: [PATCH 172/336] updating to include #23233 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a16a2937dba..3a34eb73a5e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ ENHANCEMENTS: * dependencies: updating to `v0.13.0` of `golang.org/x/crypto` [GH-23221] * dependencies: updating to `v0.15.0` of `golang.org/x/net` [GH-23221] * dependencies: updating to `v0.13.0` of `golang.org/x/tools` [GH-23221] +* `azurerm_managed_disk` - updating to use API Version `2023-04-02` [GH-23233] * `azurerm_maps_account` - support for `local_authentication_enabled` [GH-23216] * `azurerm_security_center_assessment_policy` - refactoring to use `hashicorp/go-azure-sdk` [GH-23158] From 16ef9a9637d4f61d91f830a8ea357e1d778b121a Mon Sep 17 00:00:00 2001 From: Zhenhua Hu Date: Tue, 12 Sep 2023 10:19:51 +0800 Subject: [PATCH 173/336] add code --- .../services/compute/managed_disk_resource.go | 25 +++++- .../compute/managed_disk_resource_test.go | 89 +++++++++++++++++++ website/docs/r/managed_disk.html.markdown | 4 + 3 files changed, 116 insertions(+), 2 deletions(-) diff --git a/internal/services/compute/managed_disk_resource.go b/internal/services/compute/managed_disk_resource.go index 4ad87811a1fb..49f67cc25a67 100644 --- a/internal/services/compute/managed_disk_resource.go +++ b/internal/services/compute/managed_disk_resource.go @@ -113,6 +113,19 @@ func resourceManagedDisk() *pluginsdk.Resource { Computed: true, }, + "optimized_frequent_attach_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + + "performance_plus_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + ForceNew: true, + Default: false, + }, + "source_uri": { Type: pluginsdk.TypeString, Optional: true, @@ -342,9 +355,11 @@ func resourceManagedDiskCreate(d *pluginsdk.ResourceData, meta interface{}) erro props := &disks.DiskProperties{ CreationData: disks.CreationData{ - CreateOption: createOption, + CreateOption: createOption, + PerformancePlus: pointer.To(d.Get("performance_plus_enabled").(bool)), }, - OsType: &osType, + OptimizedForFrequentAttach: pointer.To(d.Get("optimized_frequent_attach_enabled").(bool)), + OsType: &osType, Encryption: &disks.Encryption{ Type: &encryptionTypePlatformKey, }, @@ -702,6 +717,10 @@ func resourceManagedDiskUpdate(d *pluginsdk.ResourceData, meta interface{}) erro return fmt.Errorf("[ERROR] disk_iops_read_write, disk_mbps_read_write, disk_iops_read_only and disk_mbps_read_only are only available for UltraSSD disks and PremiumV2 disks") } + if d.HasChange("optimized_frequent_attach_enabled") { + diskUpdate.Properties.OptimizedForFrequentAttach = pointer.To(d.Get("optimized_frequent_attach_enabled").(bool)) + } + if d.HasChange("os_type") { operatingSystemType := disks.OperatingSystemTypes(d.Get("os_type").(string)) diskUpdate.Properties.OsType = &operatingSystemType @@ -1038,6 +1057,7 @@ func resourceManagedDiskRead(d *pluginsdk.ResourceData, meta interface{}) error d.Set("gallery_image_reference_id", galleryImageReferenceId) d.Set("image_reference_id", imageReferenceId) + d.Set("performance_plus_enabled", creationData.PerformancePlus) d.Set("source_resource_id", creationData.SourceResourceId) d.Set("source_uri", creationData.SourceUri) d.Set("storage_account_id", creationData.StorageAccountId) @@ -1048,6 +1068,7 @@ func resourceManagedDiskRead(d *pluginsdk.ResourceData, meta interface{}) error d.Set("disk_mbps_read_write", props.DiskMBpsReadWrite) d.Set("disk_iops_read_only", props.DiskIOPSReadOnly) d.Set("disk_mbps_read_only", props.DiskMBpsReadOnly) + d.Set("optimized_frequent_attach_enabled", props.OptimizedForFrequentAttach) d.Set("os_type", string(pointer.From(props.OsType))) d.Set("tier", props.Tier) d.Set("max_shares", props.MaxShares) diff --git a/internal/services/compute/managed_disk_resource_test.go b/internal/services/compute/managed_disk_resource_test.go index 9604dacc4a82..fcebe0b14b74 100644 --- a/internal/services/compute/managed_disk_resource_test.go +++ b/internal/services/compute/managed_disk_resource_test.go @@ -170,6 +170,40 @@ func TestAccManagedDisk_update(t *testing.T) { }) } +func TestAccManagedDisk_optimizedFrequentAttach(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_managed_disk", "test") + r := ManagedDiskResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.optimizedFrequentAttach(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.empty(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + }) +} + +func TestAccManagedDisk_performancePlus(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_managed_disk", "test") + r := ManagedDiskResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.performancePlus(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + }) +} + func TestAccManagedDisk_encryption(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_managed_disk", "test") r := ManagedDiskResource{} @@ -822,6 +856,61 @@ resource "azurerm_managed_disk" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } +func (ManagedDiskResource) optimizedFrequentAttach(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_managed_disk" "test" { + name = "acctestd-%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + storage_account_type = "Standard_LRS" + create_option = "Empty" + disk_size_gb = "1" + optimized_frequent_attach_enabled = true + + tags = { + environment = "acctest" + cost-center = "ops" + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +} + +func (ManagedDiskResource) performancePlus(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_managed_disk" "test" { + name = "acctestd-%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + storage_account_type = "Premium_LRS" + create_option = "Empty" + disk_size_gb = "1024" + performance_plus_enabled = true + tags = { + environment = "acctest" + cost-center = "ops" + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +} + func (ManagedDiskResource) requiresImport(data acceptance.TestData) string { template := ManagedDiskResource{}.empty(data) return fmt.Sprintf(` diff --git a/website/docs/r/managed_disk.html.markdown b/website/docs/r/managed_disk.html.markdown index 0bc0732669d8..e7580d9e70f0 100644 --- a/website/docs/r/managed_disk.html.markdown +++ b/website/docs/r/managed_disk.html.markdown @@ -133,6 +133,10 @@ The following arguments are supported: ~> **NOTE:** Setting logical sector size is supported only with `UltraSSD_LRS` disks and `PremiumV2_LRS` disks. +* `optimized_frequent_attach_enabled` - (Optional) Whether the feature of improving reliability and performance of data disks that are frequently (more than 5 times a day) detached from one virtual machine and attached to another is enabled. This property should not be set for disks that are not detached and attached frequently as it causes the disks to not align with the fault domain of the virtual machine. Defaults to `false`. + +* `performance_plus_enabled` - (Optional) Whether performance plus is enabled for this disk. Performance plus is only supported for UltraSSD disks. Defaults to `false`. Changing this forces a new resource to be created. + * `os_type` - (Optional) Specify a value when the source of an `Import`, `ImportSecure` or `Copy` operation targets a source that contains an operating system. Valid values are `Linux` or `Windows`. * `source_resource_id` - (Optional) The ID of an existing Managed Disk or Snapshot to copy when `create_option` is `Copy` or the recovery point to restore when `create_option` is `Restore`. Changing this forces a new resource to be created. From e308530041c808c04e2b6116e8c484f35540ee49 Mon Sep 17 00:00:00 2001 From: neil-yechenwei Date: Tue, 12 Sep 2023 15:39:37 +0800 Subject: [PATCH 174/336] update code --- .../bot/bot_channel_ms_teams_resource.go | 24 ++----------------- .../bot/bot_channel_ms_teams_resource_test.go | 8 +++---- .../docs/r/bot_channel_ms_teams.html.markdown | 4 ---- 3 files changed, 5 insertions(+), 31 deletions(-) diff --git a/internal/services/bot/bot_channel_ms_teams_resource.go b/internal/services/bot/bot_channel_ms_teams_resource.go index e86d3d5e2a5b..2d39eeb9faed 100644 --- a/internal/services/bot/bot_channel_ms_teams_resource.go +++ b/internal/services/bot/bot_channel_ms_teams_resource.go @@ -4,7 +4,6 @@ package bot import ( - "context" "fmt" "log" "time" @@ -12,7 +11,6 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" @@ -56,12 +54,6 @@ func resourceBotChannelMsTeams() *pluginsdk.Resource { ValidateFunc: validation.StringIsNotEmpty, }, - "accepted_terms_enabled": { - Type: pluginsdk.TypeBool, - Optional: true, - Default: false, - }, - // issue: https://github.com/Azure/azure-rest-api-specs/issues/9809 // this field could not update to empty, so add `Computed: true` to avoid diff "calling_web_hook": { @@ -88,17 +80,6 @@ func resourceBotChannelMsTeams() *pluginsdk.Resource { Default: false, }, }, - - CustomizeDiff: pluginsdk.CustomDiffWithAll( - func(ctx context.Context, d *schema.ResourceDiff, meta interface{}) error { - oldVal, newVal := d.GetChange("accepted_terms_enabled") - if oldVal.(bool) && !newVal.(bool) { - return fmt.Errorf("`accepted_terms_enabled` cannot be disabled once it's been enabled") - } - - return nil - }, - ), } } @@ -124,7 +105,7 @@ func resourceBotChannelMsTeamsCreate(d *pluginsdk.ResourceData, meta interface{} channel := botservice.BotChannel{ Properties: botservice.MsTeamsChannel{ Properties: &botservice.MsTeamsChannelProperties{ - AcceptedTerms: utils.Bool(d.Get("accepted_terms_enabled").(bool)), + AcceptedTerms: utils.Bool(true), DeploymentEnvironment: utils.String(d.Get("deployment_environment").(string)), EnableCalling: utils.Bool(d.Get("enable_calling").(bool)), IsEnabled: utils.Bool(true), @@ -176,7 +157,6 @@ func resourceBotChannelMsTeamsRead(d *pluginsdk.ResourceData, meta interface{}) if props := resp.Properties; props != nil { if channel, ok := props.AsMsTeamsChannel(); ok { if channelProps := channel.Properties; channelProps != nil { - d.Set("accepted_terms_enabled", channelProps.AcceptedTerms) d.Set("calling_web_hook", channelProps.CallingWebhook) d.Set("deployment_environment", channelProps.DeploymentEnvironment) d.Set("enable_calling", channelProps.EnableCalling) @@ -200,7 +180,7 @@ func resourceBotChannelMsTeamsUpdate(d *pluginsdk.ResourceData, meta interface{} channel := botservice.BotChannel{ Properties: botservice.MsTeamsChannel{ Properties: &botservice.MsTeamsChannelProperties{ - AcceptedTerms: utils.Bool(d.Get("accepted_terms_enabled").(bool)), + AcceptedTerms: utils.Bool(true), DeploymentEnvironment: utils.String(d.Get("deployment_environment").(string)), EnableCalling: utils.Bool(d.Get("enable_calling").(bool)), CallingWebhook: utils.String(d.Get("calling_web_hook").(string)), diff --git a/internal/services/bot/bot_channel_ms_teams_resource_test.go b/internal/services/bot/bot_channel_ms_teams_resource_test.go index f32e128beebe..67f193eae6ff 100644 --- a/internal/services/bot/bot_channel_ms_teams_resource_test.go +++ b/internal/services/bot/bot_channel_ms_teams_resource_test.go @@ -82,10 +82,9 @@ func (BotChannelMsTeamsResource) basicConfig(data acceptance.TestData) string { %s resource "azurerm_bot_channel_ms_teams" "test" { - bot_name = azurerm_bot_channels_registration.test.name - location = azurerm_bot_channels_registration.test.location - resource_group_name = azurerm_resource_group.test.name - accepted_terms_enabled = true + bot_name = azurerm_bot_channels_registration.test.name + location = azurerm_bot_channels_registration.test.location + resource_group_name = azurerm_resource_group.test.name } `, BotChannelsRegistrationResource{}.basicConfig(data)) } @@ -100,7 +99,6 @@ resource "azurerm_bot_channel_ms_teams" "test" { resource_group_name = azurerm_resource_group.test.name calling_web_hook = "https://example.com/" enable_calling = true - accepted_terms_enabled = true deployment_environment = "CommercialDeployment" } `, BotChannelsRegistrationResource{}.basicConfig(data)) diff --git a/website/docs/r/bot_channel_ms_teams.html.markdown b/website/docs/r/bot_channel_ms_teams.html.markdown index b9d8f559ff51..5a07b28500df 100644 --- a/website/docs/r/bot_channel_ms_teams.html.markdown +++ b/website/docs/r/bot_channel_ms_teams.html.markdown @@ -47,10 +47,6 @@ The following arguments are supported: * `bot_name` - (Required) The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created. -* `accepted_terms_enabled` - (Optional) Is accepted terms for Microsoft Teams channel calls enabled? Defaults to `false`. - --> **NOTE:** Once `accepted_terms_enabled` is enabled, it cannot be disabled anymore. Even if this resource is destroyed, it still cannot be updated back to `false` once it's enabled. Unless the parent resource `azurerm_bot_channels_registration` is destroyed, then it would be set back to `false`. - * `calling_web_hook` - (Optional) Specifies the webhook for Microsoft Teams channel calls. * `deployment_environment` - (Optional) The deployment environment for Microsoft Teams channel calls. Possible values are `CommercialDeployment` and `GCCModerateDeployment`. Defaults to `CommercialDeployment`. From 8c670ea903c9ae01601e52bd1bac5d7b80aa73dd Mon Sep 17 00:00:00 2001 From: Orin W Date: Tue, 12 Sep 2023 20:32:32 +1000 Subject: [PATCH 175/336] azurerm_web_application_firewall_policy add enabled / disabled state for Custom Rules (#23163) * Added the Enable Field for State on Custom Rules * TestAccWebApplicationFirewallPolicy_complete Updated * Fix linting on Enable in test * Created a Test involving Custom Rules Enable State * Corrected Go Path in ENV Vars and Ran terrafmt --- ...eb_application_firewall_policy_resource.go | 12 + ...plication_firewall_policy_resource_test.go | 368 +++++++++++++++++- ..._application_firewall_policy.html.markdown | 2 + 3 files changed, 380 insertions(+), 2 deletions(-) diff --git a/internal/services/network/web_application_firewall_policy_resource.go b/internal/services/network/web_application_firewall_policy_resource.go index 9f0ada606ccd..dc2f834dba84 100644 --- a/internal/services/network/web_application_firewall_policy_resource.go +++ b/internal/services/network/web_application_firewall_policy_resource.go @@ -76,6 +76,11 @@ func resourceWebApplicationFirewallPolicy() *pluginsdk.Resource { string(webapplicationfirewallpolicies.WebApplicationFirewallActionLog), }, false), }, + "enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: true, + }, "match_conditions": { Type: pluginsdk.TypeList, Required: true, @@ -599,7 +604,13 @@ func expandWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(input [] matchConditions := v["match_conditions"].([]interface{}) action := v["action"].(string) + enabled := webapplicationfirewallpolicies.WebApplicationFirewallStateEnabled + if value, ok := v["enabled"].(bool); ok && !value { + enabled = webapplicationfirewallpolicies.WebApplicationFirewallStateDisabled + } + result := webapplicationfirewallpolicies.WebApplicationFirewallCustomRule{ + State: pointer.To(enabled), Action: webapplicationfirewallpolicies.WebApplicationFirewallAction(action), MatchConditions: expandWebApplicationFirewallPolicyMatchCondition(matchConditions), Name: pointer.To(name), @@ -946,6 +957,7 @@ func flattenWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(input * v["name"] = *name } v["action"] = string(item.Action) + v["enabled"] = pointer.From(item.State) == webapplicationfirewallpolicies.WebApplicationFirewallStateEnabled v["match_conditions"] = flattenWebApplicationFirewallPolicyMatchCondition(item.MatchConditions) v["priority"] = int(item.Priority) v["rule_type"] = string(item.RuleType) diff --git a/internal/services/network/web_application_firewall_policy_resource_test.go b/internal/services/network/web_application_firewall_policy_resource_test.go index f574e73b3549..bd2231aa5e87 100644 --- a/internal/services/network/web_application_firewall_policy_resource_test.go +++ b/internal/services/network/web_application_firewall_policy_resource_test.go @@ -42,7 +42,8 @@ func TestAccWebApplicationFirewallPolicy_complete(t *testing.T) { Config: r.complete(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("custom_rules.#").HasValue("2"), + check.That(data.ResourceName).Key("custom_rules.#").HasValue("3"), + check.That(data.ResourceName).Key("custom_rules.0.enabled").HasValue("true"), check.That(data.ResourceName).Key("custom_rules.0.name").HasValue("Rule1"), check.That(data.ResourceName).Key("custom_rules.0.priority").HasValue("1"), check.That(data.ResourceName).Key("custom_rules.0.rule_type").HasValue("MatchRule"), @@ -73,6 +74,19 @@ func TestAccWebApplicationFirewallPolicy_complete(t *testing.T) { check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.match_values.#").HasValue("1"), check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.match_values.0").HasValue("windows"), check.That(data.ResourceName).Key("custom_rules.1.action").HasValue("Block"), + check.That(data.ResourceName).Key("custom_rules.2.enabled").HasValue("false"), + check.That(data.ResourceName).Key("custom_rules.2.name").HasValue("Rule3"), + check.That(data.ResourceName).Key("custom_rules.2.priority").HasValue("3"), + check.That(data.ResourceName).Key("custom_rules.2.rule_type").HasValue("MatchRule"), + check.That(data.ResourceName).Key("custom_rules.2.match_conditions.#").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.2.match_conditions.0.match_variables.#").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.2.match_conditions.0.match_variables.0.variable_name").HasValue("RemoteAddr"), + check.That(data.ResourceName).Key("custom_rules.2.match_conditions.0.operator").HasValue("IPMatch"), + check.That(data.ResourceName).Key("custom_rules.2.match_conditions.0.negation_condition").HasValue("false"), + check.That(data.ResourceName).Key("custom_rules.2.match_conditions.0.match_values.#").HasValue("2"), + check.That(data.ResourceName).Key("custom_rules.2.match_conditions.0.match_values.0").HasValue("192.168.1.0/24"), + check.That(data.ResourceName).Key("custom_rules.2.match_conditions.0.match_values.1").HasValue("10.0.0.0/24"), + check.That(data.ResourceName).Key("custom_rules.2.action").HasValue("Block"), check.That(data.ResourceName).Key("managed_rules.#").HasValue("1"), check.That(data.ResourceName).Key("managed_rules.0.exclusion.#").HasValue("2"), check.That(data.ResourceName).Key("managed_rules.0.exclusion.0.match_variable").HasValue("RequestHeaderNames"), @@ -120,7 +134,7 @@ func TestAccWebApplicationFirewallPolicy_update(t *testing.T) { Config: r.complete(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("custom_rules.#").HasValue("2"), + check.That(data.ResourceName).Key("custom_rules.#").HasValue("3"), check.That(data.ResourceName).Key("custom_rules.0.name").HasValue("Rule1"), check.That(data.ResourceName).Key("custom_rules.0.priority").HasValue("1"), check.That(data.ResourceName).Key("custom_rules.0.rule_type").HasValue("MatchRule"), @@ -301,6 +315,28 @@ func TestAccWebApplicationFirewallPolicy_LogScrubbing(t *testing.T) { }) } +func TestAccWebApplicationFirewallPolicy_updateCustomRules(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_web_application_firewall_policy", "test") + r := WebApplicationFirewallResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.customRules(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.updateCustomRules(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func (t WebApplicationFirewallResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := webapplicationfirewallpolicies.ParseApplicationGatewayWebApplicationFirewallPolicyID(state.ID) if err != nil { @@ -368,6 +404,7 @@ resource "azurerm_web_application_firewall_policy" "test" { } custom_rules { + enabled = true name = "Rule1" priority = 1 rule_type = "MatchRule" @@ -415,6 +452,25 @@ resource "azurerm_web_application_firewall_policy" "test" { action = "Block" } + custom_rules { + enabled = false + name = "Rule3" + priority = 3 + rule_type = "MatchRule" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24", "10.0.0.0/24"] + } + + action = "Block" + } + managed_rules { exclusion { match_variable = "RequestHeaderNames" @@ -1100,3 +1156,311 @@ resource "azurerm_web_application_firewall_policy" "test" { } `, data.RandomInteger, data.Locations.Primary) } + +func (WebApplicationFirewallResource) customRules(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_web_application_firewall_policy" "test" { + name = "acctestwafpolicy-%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + + custom_rules { + name = "Rule1" + priority = 1 + rule_type = "MatchRule" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24", "10.0.0.0/24"] + } + + action = "Block" + } + + custom_rules { + name = "Rule2" + priority = 2 + rule_type = "MatchRule" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24"] + } + + match_conditions { + match_variables { + variable_name = "RequestHeaders" + selector = "UserAgent" + } + + operator = "Contains" + negation_condition = false + match_values = ["Windows"] + } + + action = "Block" + } + + custom_rules { + enabled = true + name = "Rule3" + priority = 3 + rule_type = "MatchRule" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24", "10.0.0.0/24"] + } + + action = "Block" + } + + custom_rules { + enabled = false + name = "Rule4" + priority = 4 + rule_type = "MatchRule" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24", "10.0.0.0/24"] + } + + action = "Block" + } + + custom_rules { + enabled = true + name = "Rule5" + priority = 5 + rule_type = "MatchRule" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24", "10.0.0.0/24"] + } + + action = "Block" + } + + custom_rules { + enabled = false + name = "Rule6" + priority = 6 + rule_type = "MatchRule" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24", "10.0.0.0/24"] + } + + action = "Block" + } + + managed_rules { + managed_rule_set { + type = "OWASP" + version = "3.2" + } + } + + policy_settings { + enabled = true + mode = "Detection" + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +} + +func (WebApplicationFirewallResource) updateCustomRules(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_web_application_firewall_policy" "test" { + name = "acctestwafpolicy-%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + + custom_rules { + enabled = true + name = "Rule1" + priority = 1 + rule_type = "MatchRule" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24", "10.0.0.0/24"] + } + + action = "Block" + } + + custom_rules { + enabled = false + name = "Rule2" + priority = 2 + rule_type = "MatchRule" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24"] + } + + match_conditions { + match_variables { + variable_name = "RequestHeaders" + selector = "UserAgent" + } + + operator = "Contains" + negation_condition = false + match_values = ["Windows"] + } + + action = "Block" + } + + custom_rules { + name = "Rule3" + priority = 3 + rule_type = "MatchRule" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24", "10.0.0.0/24"] + } + + action = "Block" + } + + custom_rules { + name = "Rule4" + priority = 4 + rule_type = "MatchRule" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24", "10.0.0.0/24"] + } + + action = "Block" + } + + custom_rules { + enabled = false + name = "Rule5" + priority = 5 + rule_type = "MatchRule" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24", "10.0.0.0/24"] + } + + action = "Block" + } + + custom_rules { + enabled = true + name = "Rule6" + priority = 6 + rule_type = "MatchRule" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24", "10.0.0.0/24"] + } + + action = "Block" + } + + managed_rules { + managed_rule_set { + type = "OWASP" + version = "3.2" + } + } + + policy_settings { + enabled = true + mode = "Detection" + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +} diff --git a/website/docs/r/web_application_firewall_policy.html.markdown b/website/docs/r/web_application_firewall_policy.html.markdown index a70cab665c32..303aeb6c6d27 100644 --- a/website/docs/r/web_application_firewall_policy.html.markdown +++ b/website/docs/r/web_application_firewall_policy.html.markdown @@ -134,6 +134,8 @@ The following arguments are supported: The `custom_rules` block supports the following: +* `enabled` - (Optional) Describes if the policy is in enabled state or disabled state. Defaults to `true`. + * `name` - (Optional) Gets name of the resource that is unique within a policy. This name can be used to access the resource. * `priority` - (Required) Describes priority of the rule. Rules with a lower value will be evaluated before rules with a higher value. From 7586a66a0f860d8810bd025ac8c80e755a49f6dd Mon Sep 17 00:00:00 2001 From: stephybun Date: Tue, 12 Sep 2023 12:34:06 +0200 Subject: [PATCH 176/336] Update for #23163 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a34eb73a5e3..680abae47657 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ ENHANCEMENTS: BUG FIXES: * `azurerm_api_management_backend` - fixing a panic when flattening the `credentials` block [GH-23219] +* `azurerm_web_application_firewall_policy` - capture and toggle state of `custom_rule` blocks with an `enabled` field [GH-23163] ## 3.72.0 (September 07, 2023) From 878d02161da893e6d61bfcecf27ac6f707e089db Mon Sep 17 00:00:00 2001 From: jackofallops Date: Thu, 7 Sep 2023 13:55:15 +0200 Subject: [PATCH 177/336] add schemas and structs for scale rules types --- .../containerapps/helpers/container_apps.go | 203 +++++++++++++++++- 1 file changed, 198 insertions(+), 5 deletions(-) diff --git a/internal/services/containerapps/helpers/container_apps.go b/internal/services/containerapps/helpers/container_apps.go index f088b5508df8..95b28a3f67e3 100644 --- a/internal/services/containerapps/helpers/container_apps.go +++ b/internal/services/containerapps/helpers/container_apps.go @@ -669,11 +669,15 @@ func ContainerAppEnvironmentDaprMetadataSchema() *pluginsdk.Schema { } type ContainerTemplate struct { - Containers []Container `tfschema:"container"` - Suffix string `tfschema:"revision_suffix"` - MinReplicas int `tfschema:"min_replicas"` - MaxReplicas int `tfschema:"max_replicas"` - Volumes []ContainerVolume `tfschema:"volume"` + Containers []Container `tfschema:"container"` + Suffix string `tfschema:"revision_suffix"` + MinReplicas int `tfschema:"min_replicas"` + MaxReplicas int `tfschema:"max_replicas"` + AzureQueueScaleRules []AzureQueueScaleRule `tfschema:"azure_queue_scale_rule"` + CustomScaleRules []CustomScaleRule `tfschema:"custom_scale_rule"` + HTTPScaleRules []HTTPScaleRule `tfschema:"http_scale_rule"` + TCPScaleRules []TCPScaleRule `tfschema:"tcp_scale_rule"` + Volumes []ContainerVolume `tfschema:"volume"` } func ContainerTemplateSchema() *pluginsdk.Schema { @@ -701,6 +705,14 @@ func ContainerTemplateSchema() *pluginsdk.Schema { Description: "The maximum number of replicas for this container.", }, + "azure_queue_scale_rule": AzureQueueScaleRuleSchema(), + + "custom_scale_rule": CustomScaleRuleSchema(), + + "http_scale_rule": HTTPScaleRuleSchema(), + + "tcp_scale_rule": TCPScaleRuleSchema(), + "volume": ContainerVolumeSchema(), "revision_suffix": { @@ -2347,3 +2359,184 @@ func ContainerAppProbesRemoved(metadata sdk.ResourceMetaData) bool { return !(hasLiveness || hasReadiness || hasStartup) } + +type AzureQueueScaleRule struct { + Name string `tfschema:"name"` + QueueLength string `tfschema:"queue_length"` + QueueName string `tfschema:"queue_name"` + AuthSecretRef string `tfschema:"authentication_secret_reference"` + AuthTriggerParam string `tfschema:"authentication_trigger_parameter"` +} + +func AzureQueueScaleRuleSchema() *pluginsdk.Schema { + return &pluginsdk.Schema{ + Type: pluginsdk.TypeList, + Optional: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "queue_length": { + Type: pluginsdk.TypeInt, + Required: true, + ValidateFunc: validation.IntAtLeast(1), + }, + + "queue_name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "authentication_secret_reference": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validate.SecretName, + }, + + "authentication_trigger_parameter": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + }, + }, + } +} + +type CustomScaleRule struct { + Metadata map[string]string `tfschema:"metadata"` + CustomRuleType string `tfschema:"custom_rule_type"` + AuthSecretRef string `tfschema:"authentication_secret_reference"` + AuthTriggerParam string `tfschema:"authentication_trigger_parameter"` +} + +func CustomScaleRuleSchema() *pluginsdk.Schema { + return &pluginsdk.Schema{ + Type: pluginsdk.TypeList, + Optional: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "metadata": { + Type: pluginsdk.TypeMap, + Required: true, + Elem: &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + }, + }, + + "custom_rule_type": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringIsNotEmpty, // Note - this can be any KEDA compatible source in a user's environment + }, + + "authentication_secret_reference": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validate.SecretName, + }, + + "authentication_trigger_parameter": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + }, + }, + } +} + +type HTTPScaleRule struct { + Metadata map[string]string `tfschema:"metadata"` + AuthSecretRef string `tfschema:"authentication_secret_reference"` + AuthTriggerParam string `tfschema:"authentication_trigger_parameter"` +} + +func HTTPScaleRuleSchema() *pluginsdk.Schema { + return &pluginsdk.Schema{ + Type: pluginsdk.TypeList, + Optional: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "metadata": { + Type: pluginsdk.TypeMap, + Required: true, + Elem: &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + }, + }, + + "authentication_secret_reference": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validate.SecretName, + }, + + "authentication_trigger_parameter": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + }, + }, + } +} + +type TCPScaleRule struct { + Metadata map[string]string `tfschema:"metadata"` + AuthSecretRef string `tfschema:"authentication_secret_reference"` + AuthTriggerParam string `tfschema:"authentication_trigger_parameter"` +} + +func TCPScaleRuleSchema() *pluginsdk.Schema { + return &pluginsdk.Schema{ + Type: pluginsdk.TypeList, + Optional: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "metadata": { + Type: pluginsdk.TypeMap, + Required: true, + Elem: &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + }, + }, + + "authentication_secret_reference": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validate.SecretName, + }, + + "authentication_trigger_parameter": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + }, + }, + } +} From dca2a52c72a8834aa42fe50d85b10027fee966d3 Mon Sep 17 00:00:00 2001 From: xuzhang3 <57888764+xuzhang3@users.noreply.github.com> Date: Tue, 12 Sep 2023 21:17:28 +0800 Subject: [PATCH 178/336] `azurerm_redis_cache` - Check if `redis_configuration.aof_backup_enabled` configured (#22774) * add check for aof_backup_enabled * update CRUD timeout * reset crud timeout * ignore aof_backup_enabled if SKU is not premium * fix lint --------- Co-authored-by: xuzhang3 --- .../services/redis/redis_cache_resource.go | 9 ++- .../redis/redis_cache_resource_test.go | 75 +++++++++++++++++++ website/docs/r/redis_cache.html.markdown | 3 + 3 files changed, 84 insertions(+), 3 deletions(-) diff --git a/internal/services/redis/redis_cache_resource.go b/internal/services/redis/redis_cache_resource.go index ad1cb7445c13..ca6538e790eb 100644 --- a/internal/services/redis/redis_cache_resource.go +++ b/internal/services/redis/redis_cache_resource.go @@ -798,6 +798,7 @@ func expandRedisConfiguration(d *pluginsdk.ResourceData) (*redis.RedisCommonProp return output, nil } raw := input[0].(map[string]interface{}) + skuName := d.Get("sku_name").(string) if v := raw["maxclients"].(int); v > 0 { output.Maxclients = utils.String(strconv.Itoa(v)) @@ -825,8 +826,7 @@ func expandRedisConfiguration(d *pluginsdk.ResourceData) (*redis.RedisCommonProp // nolint : staticcheck v, valExists := d.GetOkExists("redis_configuration.0.rdb_backup_enabled") if valExists { - skuName := d.Get("sku_name").(string) - rdbBackupEnabled := raw["rdb_backup_enabled"].(bool) + rdbBackupEnabled := v.(bool) // rdb_backup_enabled is available when SKU is Premium if strings.EqualFold(skuName, string(redis.SkuNamePremium)) { @@ -861,7 +861,10 @@ func expandRedisConfiguration(d *pluginsdk.ResourceData) (*redis.RedisCommonProp // nolint : staticcheck v, valExists = d.GetOkExists("redis_configuration.0.aof_backup_enabled") if valExists { - output.AofBackupEnabled = utils.String(strconv.FormatBool(v.(bool))) + // aof_backup_enabled is available when SKU is Premium + if strings.EqualFold(skuName, string(redis.SkuNamePremium)) { + output.AofBackupEnabled = utils.String(strconv.FormatBool(v.(bool))) + } } if v := raw["aof_storage_connection_string_0"].(string); v != "" { diff --git a/internal/services/redis/redis_cache_resource_test.go b/internal/services/redis/redis_cache_resource_test.go index 082c8500e229..fc3ca9daa6d3 100644 --- a/internal/services/redis/redis_cache_resource_test.go +++ b/internal/services/redis/redis_cache_resource_test.go @@ -250,6 +250,27 @@ func TestAccRedisCache_AOFBackupEnabledDisabled(t *testing.T) { }) } +// ignore `aof_backup_enabled` if SKU is not `Premium` +func TestAccRedisCache_IgnoreAOFBackupWhenSKUNotPremium(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_redis_cache", "test") + r := RedisCacheResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.ignoreAOFBackupEnableWhenSKUNotPremium(data, "volatile-lru"), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.ignoreAOFBackupEnableWhenSKUNotPremium(data, "allkeys-lru"), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + }) +} + func TestAccRedisCache_PatchSchedule(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_redis_cache", "test") r := RedisCacheResource{} @@ -921,6 +942,60 @@ resource "azurerm_redis_cache" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomString, data.RandomInteger) } +func (RedisCacheResource) ignoreAOFBackupEnableWhenSKUNotPremium(data acceptance.TestData, maxMemoryPolicy string) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_storage_account" "test" { + name = "acctestsa%s" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + account_tier = "Standard" + account_replication_type = "GRS" + + tags = { + environment = "staging" + } +} + +resource "azurerm_storage_account" "test2" { + name = "acctestsa2%s" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + account_tier = "Standard" + account_replication_type = "GRS" + + tags = { + environment = "staging" + } +} + +resource "azurerm_redis_cache" "test" { + name = "acctestRedis-%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + capacity = 1 + family = "C" + sku_name = "Basic" + enable_non_ssl_port = false + + redis_configuration { + aof_backup_enabled = false + maxmemory_reserved = 125 + maxmemory_delta = 125 + maxmemory_policy = "%s" + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomString, data.RandomInteger, maxMemoryPolicy) +} + func (RedisCacheResource) patchSchedule(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { diff --git a/website/docs/r/redis_cache.html.markdown b/website/docs/r/redis_cache.html.markdown index 39761e9e1c64..b1bb4fc69fe9 100644 --- a/website/docs/r/redis_cache.html.markdown +++ b/website/docs/r/redis_cache.html.markdown @@ -108,6 +108,9 @@ An `identity` block supports the following: A `redis_configuration` block supports the following: * `aof_backup_enabled` - (Optional) Enable or disable AOF persistence for this Redis Cache. Defaults to `false`. + +~> **NOTE:** `aof_backup_enabled` can only be set when SKU is `Premium`. + * `aof_storage_connection_string_0` - (Optional) First Storage Account connection string for AOF persistence. * `aof_storage_connection_string_1` - (Optional) Second Storage Account connection string for AOF persistence. From 7fc5d0e8a621b85aecfa287a7878037a819f7486 Mon Sep 17 00:00:00 2001 From: stephybun Date: Tue, 12 Sep 2023 15:20:15 +0200 Subject: [PATCH 179/336] Update for #22774 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 680abae47657..c8d944b4d532 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ ENHANCEMENTS: BUG FIXES: * `azurerm_api_management_backend` - fixing a panic when flattening the `credentials` block [GH-23219] +* `azurerm_redis_cache` - prevent sending `redis_configuration.aof_backup_enabled` when the sku is not `Premium` to avoid API error [GH-22774] * `azurerm_web_application_firewall_policy` - capture and toggle state of `custom_rule` blocks with an `enabled` field [GH-23163] ## 3.72.0 (September 07, 2023) From 021ceae91f4723aa1ca34204f876e8b765044334 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Tue, 12 Sep 2023 16:01:04 +0200 Subject: [PATCH 180/336] updating to include #23122 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8d944b4d532..9833fb6be765 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ ENHANCEMENTS: * dependencies: updating to `v0.13.0` of `golang.org/x/crypto` [GH-23221] * dependencies: updating to `v0.15.0` of `golang.org/x/net` [GH-23221] * dependencies: updating to `v0.13.0` of `golang.org/x/tools` [GH-23221] +* `azurerm_bot_channel_ms_teams` - support for `deployment_environment` [GH-23122] * `azurerm_managed_disk` - updating to use API Version `2023-04-02` [GH-23233] * `azurerm_maps_account` - support for `local_authentication_enabled` [GH-23216] * `azurerm_security_center_assessment_policy` - refactoring to use `hashicorp/go-azure-sdk` [GH-23158] From 1d0b8f28ef1874d0fbe9a28d0b260f7861f8ca5c Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 12 Sep 2023 09:55:46 -0700 Subject: [PATCH 181/336] Upgrade to v0.61.0 of go-azure-helpers --- go.mod | 2 +- go.sum | 4 +- .../commonids/availability_set_id.go | 127 ++++++++++++++++ .../commonids/dedicated_host.go | 140 ++++++++++++++++++ .../commonids/dedicated_host_group.go | 127 ++++++++++++++++ .../commonids/disk_encryption_set.go | 127 ++++++++++++++++ .../resourcemanager/commonids/managed_disk.go | 127 ++++++++++++++++ .../commonids/spring_cloud_service.go | 127 ++++++++++++++++ .../commonids/virtual_machine.go | 127 ++++++++++++++++ .../commonids/virtual_machine_scale_set.go | 125 ++++++++++++++++ vendor/modules.txt | 2 +- 11 files changed, 1031 insertions(+), 4 deletions(-) create mode 100644 vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/availability_set_id.go create mode 100644 vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/dedicated_host.go create mode 100644 vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/dedicated_host_group.go create mode 100644 vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/disk_encryption_set.go create mode 100644 vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/managed_disk.go create mode 100644 vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/spring_cloud_service.go create mode 100644 vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/virtual_machine.go create mode 100644 vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/virtual_machine_scale_set.go diff --git a/go.mod b/go.mod index ebed4ea09a04..cf3450f061bf 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/golang-jwt/jwt/v4 v4.5.0 github.com/google/go-cmp v0.5.9 github.com/google/uuid v1.3.1 - github.com/hashicorp/go-azure-helpers v0.59.0 + github.com/hashicorp/go-azure-helpers v0.61.0 github.com/hashicorp/go-azure-sdk v0.20230907.1113401 github.com/hashicorp/go-hclog v1.5.0 github.com/hashicorp/go-multierror v1.1.1 diff --git a/go.sum b/go.sum index 1a8a138abba9..f3d63273ba7a 100644 --- a/go.sum +++ b/go.sum @@ -99,8 +99,8 @@ github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-azure-helpers v0.12.0/go.mod h1:Zc3v4DNeX6PDdy7NljlYpnrdac1++qNW0I4U+ofGwpg= -github.com/hashicorp/go-azure-helpers v0.59.0 h1:E73yoPN2r1y0vvZ4dgAh8NRGuVTNXH3lZKRjT+4oNmA= -github.com/hashicorp/go-azure-helpers v0.59.0/go.mod h1:BQUQp5udwbJ8pnzl0wByCLVEEyPMAFpJ9vOREiCzObo= +github.com/hashicorp/go-azure-helpers v0.61.0 h1:dIz23Vp8LdErxuImc6V5QIPtJcWjMgqP75bfp8o1Lro= +github.com/hashicorp/go-azure-helpers v0.61.0/go.mod h1:BQUQp5udwbJ8pnzl0wByCLVEEyPMAFpJ9vOREiCzObo= github.com/hashicorp/go-azure-sdk v0.20230907.1113401 h1:rtikuZ4FzVZrJ4lbldIJk1oIa1+Ofnq76+Mv3muDbLs= github.com/hashicorp/go-azure-sdk v0.20230907.1113401/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU= diff --git a/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/availability_set_id.go b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/availability_set_id.go new file mode 100644 index 000000000000..3342e9aae1e4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/availability_set_id.go @@ -0,0 +1,127 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package commonids + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +var _ resourceids.ResourceId = AvailabilitySetId{} + +// AvailabilitySetId is a struct representing the Resource ID for a Availability Set +type AvailabilitySetId struct { + SubscriptionId string + ResourceGroupName string + AvailabilitySetName string +} + +// NewAvailabilitySetID returns a new AvailabilitySetId struct +func NewAvailabilitySetID(subscriptionId string, resourceGroupName string, availabilitySetName string) AvailabilitySetId { + return AvailabilitySetId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + AvailabilitySetName: availabilitySetName, + } +} + +// ParseAvailabilitySetID parses 'input' into a AvailabilitySetId +func ParseAvailabilitySetID(input string) (*AvailabilitySetId, error) { + parser := resourceids.NewParserFromResourceIdType(AvailabilitySetId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := AvailabilitySetId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.AvailabilitySetName, ok = parsed.Parsed["availabilitySetName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "availabilitySetName", *parsed) + } + + return &id, nil +} + +// ParseAvailabilitySetIDInsensitively parses 'input' case-insensitively into a AvailabilitySetId +// note: this method should only be used for API response data and not user input +func ParseAvailabilitySetIDInsensitively(input string) (*AvailabilitySetId, error) { + parser := resourceids.NewParserFromResourceIdType(AvailabilitySetId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := AvailabilitySetId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.AvailabilitySetName, ok = parsed.Parsed["availabilitySetName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "availabilitySetName", *parsed) + } + + return &id, nil +} + +// ValidateAvailabilitySetID checks that 'input' can be parsed as a Availability Set ID +func ValidateAvailabilitySetID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseAvailabilitySetID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Availability Set ID +func (id AvailabilitySetId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/availabilitySets/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.AvailabilitySetName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Availability Set ID +func (id AvailabilitySetId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftCompute", "Microsoft.Compute", "Microsoft.Compute"), + resourceids.StaticSegment("staticAvailabilitySets", "availabilitySets", "availabilitySets"), + resourceids.UserSpecifiedSegment("availabilitySetName", "availabilitySetValue"), + } +} + +// String returns a human-readable description of this Availability Set ID +func (id AvailabilitySetId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Availability Set Name: %q", id.AvailabilitySetName), + } + return fmt.Sprintf("Availability Set (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/dedicated_host.go b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/dedicated_host.go new file mode 100644 index 000000000000..b10cae32d152 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/dedicated_host.go @@ -0,0 +1,140 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package commonids + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +var _ resourceids.ResourceId = DedicatedHostId{} + +// DedicatedHostId is a struct representing the Resource ID for a Dedicated Host +type DedicatedHostId struct { + SubscriptionId string + ResourceGroupName string + HostGroupName string + HostName string +} + +// NewDedicatedHostID returns a new DedicatedHostId struct +func NewDedicatedHostID(subscriptionId string, resourceGroupName string, hostGroupName string, hostName string) DedicatedHostId { + return DedicatedHostId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + HostGroupName: hostGroupName, + HostName: hostName, + } +} + +// ParseDedicatedHostID parses 'input' into a DedicatedHostId +func ParseDedicatedHostID(input string) (*DedicatedHostId, error) { + parser := resourceids.NewParserFromResourceIdType(DedicatedHostId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DedicatedHostId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.HostGroupName, ok = parsed.Parsed["hostGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "hostGroupName", *parsed) + } + + if id.HostName, ok = parsed.Parsed["hostName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "hostName", *parsed) + } + + return &id, nil +} + +// ParseDedicatedHostIDInsensitively parses 'input' case-insensitively into a DedicatedHostId +// note: this method should only be used for API response data and not user input +func ParseDedicatedHostIDInsensitively(input string) (*DedicatedHostId, error) { + parser := resourceids.NewParserFromResourceIdType(DedicatedHostId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DedicatedHostId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.HostGroupName, ok = parsed.Parsed["hostGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "hostGroupName", *parsed) + } + + if id.HostName, ok = parsed.Parsed["hostName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "hostName", *parsed) + } + + return &id, nil +} + +// ValidateDedicatedHostID checks that 'input' can be parsed as a Dedicated Host ID +func ValidateDedicatedHostID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseDedicatedHostID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Dedicated Host ID +func (id DedicatedHostId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/hostGroups/%s/hosts/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.HostGroupName, id.HostName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Dedicated Host ID +func (id DedicatedHostId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftCompute", "Microsoft.Compute", "Microsoft.Compute"), + resourceids.StaticSegment("staticHostGroups", "hostGroups", "hostGroups"), + resourceids.UserSpecifiedSegment("hostGroupName", "hostGroupValue"), + resourceids.StaticSegment("staticHosts", "hosts", "hosts"), + resourceids.UserSpecifiedSegment("hostName", "hostValue"), + } +} + +// String returns a human-readable description of this DedicatedHost ID +func (id DedicatedHostId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Host Group Name: %q", id.HostGroupName), + fmt.Sprintf("Host Name: %q", id.HostName), + } + return fmt.Sprintf("Dedicated Host (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/dedicated_host_group.go b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/dedicated_host_group.go new file mode 100644 index 000000000000..ea855419215d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/dedicated_host_group.go @@ -0,0 +1,127 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package commonids + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +var _ resourceids.ResourceId = DedicatedHostGroupId{} + +// DedicatedHostGroupId is a struct representing the Resource ID for a Dedicated Host Group +type DedicatedHostGroupId struct { + SubscriptionId string + ResourceGroupName string + HostGroupName string +} + +// NewDedicatedHostGroupID returns a new HostGroupId struct +func NewDedicatedHostGroupID(subscriptionId string, resourceGroupName string, hostGroupName string) DedicatedHostGroupId { + return DedicatedHostGroupId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + HostGroupName: hostGroupName, + } +} + +// ParseDedicatedHostGroupID parses 'input' into a DedicatedHostGroupId +func ParseDedicatedHostGroupID(input string) (*DedicatedHostGroupId, error) { + parser := resourceids.NewParserFromResourceIdType(DedicatedHostGroupId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DedicatedHostGroupId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.HostGroupName, ok = parsed.Parsed["hostGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "hostGroupName", *parsed) + } + + return &id, nil +} + +// ParseDedicatedHostGroupIDInsensitively parses 'input' case-insensitively into a DedicatedHostGroupId +// note: this method should only be used for API response data and not user input +func ParseDedicatedHostGroupIDInsensitively(input string) (*DedicatedHostGroupId, error) { + parser := resourceids.NewParserFromResourceIdType(DedicatedHostGroupId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DedicatedHostGroupId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.HostGroupName, ok = parsed.Parsed["hostGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "hostGroupName", *parsed) + } + + return &id, nil +} + +// ValidateDedicatedHostGroupID checks that 'input' can be parsed as a Dedicated Host Group ID +func ValidateDedicatedHostGroupID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseDedicatedHostGroupID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Dedicated Host Group ID +func (id DedicatedHostGroupId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/hostGroups/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.HostGroupName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Dedicated Host Group ID +func (id DedicatedHostGroupId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftCompute", "Microsoft.Compute", "Microsoft.Compute"), + resourceids.StaticSegment("staticHostGroups", "hostGroups", "hostGroups"), + resourceids.UserSpecifiedSegment("hostGroupName", "hostGroupValue"), + } +} + +// String returns a human-readable description of this Dedicated Host Group ID +func (id DedicatedHostGroupId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Host Group Name: %q", id.HostGroupName), + } + return fmt.Sprintf("Dedicated Host Group (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/disk_encryption_set.go b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/disk_encryption_set.go new file mode 100644 index 000000000000..0127577bb5c6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/disk_encryption_set.go @@ -0,0 +1,127 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package commonids + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +var _ resourceids.ResourceId = DiskEncryptionSetId{} + +// DiskEncryptionSetId is a struct representing the Resource ID for a Disk Encryption Set +type DiskEncryptionSetId struct { + SubscriptionId string + ResourceGroupName string + DiskEncryptionSetName string +} + +// NewDiskEncryptionSetID returns a new DiskEncryptionSetId struct +func NewDiskEncryptionSetID(subscriptionId string, resourceGroupName string, diskEncryptionSetName string) DiskEncryptionSetId { + return DiskEncryptionSetId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + DiskEncryptionSetName: diskEncryptionSetName, + } +} + +// ParseDiskEncryptionSetID parses 'input' into a DiskEncryptionSetId +func ParseDiskEncryptionSetID(input string) (*DiskEncryptionSetId, error) { + parser := resourceids.NewParserFromResourceIdType(DiskEncryptionSetId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DiskEncryptionSetId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.DiskEncryptionSetName, ok = parsed.Parsed["diskEncryptionSetName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "diskEncryptionSetName", *parsed) + } + + return &id, nil +} + +// ParseDiskEncryptionSetIDInsensitively parses 'input' case-insensitively into a DiskEncryptionSetId +// note: this method should only be used for API response data and not user input +func ParseDiskEncryptionSetIDInsensitively(input string) (*DiskEncryptionSetId, error) { + parser := resourceids.NewParserFromResourceIdType(DiskEncryptionSetId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DiskEncryptionSetId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.DiskEncryptionSetName, ok = parsed.Parsed["diskEncryptionSetName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "diskEncryptionSetName", *parsed) + } + + return &id, nil +} + +// ValidateDiskEncryptionSetID checks that 'input' can be parsed as a Disk Encryption Set ID +func ValidateDiskEncryptionSetID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseDiskEncryptionSetID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Disk Encryption Set ID +func (id DiskEncryptionSetId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/diskEncryptionSets/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.DiskEncryptionSetName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Disk Encryption Set ID +func (id DiskEncryptionSetId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftCompute", "Microsoft.Compute", "Microsoft.Compute"), + resourceids.StaticSegment("staticDiskEncryptionSets", "diskEncryptionSets", "diskEncryptionSets"), + resourceids.UserSpecifiedSegment("diskEncryptionSetName", "diskEncryptionSetValue"), + } +} + +// String returns a human-readable description of this Disk Encryption Set ID +func (id DiskEncryptionSetId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Disk Encryption Set Name: %q", id.DiskEncryptionSetName), + } + return fmt.Sprintf("Disk Encryption Set (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/managed_disk.go b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/managed_disk.go new file mode 100644 index 000000000000..3090a126310e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/managed_disk.go @@ -0,0 +1,127 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package commonids + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +var _ resourceids.ResourceId = ManagedDiskId{} + +// ManagedDiskId is a struct representing the Resource ID for a Managed Disk +type ManagedDiskId struct { + SubscriptionId string + ResourceGroupName string + DiskName string +} + +// NewManagedDiskID returns a new ManagedDiskId struct +func NewManagedDiskID(subscriptionId string, resourceGroupName string, diskName string) ManagedDiskId { + return ManagedDiskId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + DiskName: diskName, + } +} + +// ParseManagedDiskID parses 'input' into a ManagedDiskId +func ParseManagedDiskID(input string) (*ManagedDiskId, error) { + parser := resourceids.NewParserFromResourceIdType(ManagedDiskId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ManagedDiskId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.DiskName, ok = parsed.Parsed["diskName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "diskName", *parsed) + } + + return &id, nil +} + +// ParseManagedDiskIDInsensitively parses 'input' case-insensitively into a ManagedDiskId +// note: this method should only be used for API response data and not user input +func ParseManagedDiskIDInsensitively(input string) (*ManagedDiskId, error) { + parser := resourceids.NewParserFromResourceIdType(ManagedDiskId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ManagedDiskId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.DiskName, ok = parsed.Parsed["diskName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "diskName", *parsed) + } + + return &id, nil +} + +// ValidateManagedDiskID checks that 'input' can be parsed as a Managed Disk ID +func ValidateManagedDiskID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseManagedDiskID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Managed Disk ID +func (id ManagedDiskId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/disks/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.DiskName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Disk ID +func (id ManagedDiskId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftCompute", "Microsoft.Compute", "Microsoft.Compute"), + resourceids.StaticSegment("staticDisks", "disks", "disks"), + resourceids.UserSpecifiedSegment("diskName", "diskValue"), + } +} + +// String returns a human-readable description of this Managed Disk ID +func (id ManagedDiskId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Disk Name: %q", id.DiskName), + } + return fmt.Sprintf("Managed Disk (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/spring_cloud_service.go b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/spring_cloud_service.go new file mode 100644 index 000000000000..87d09cf74147 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/spring_cloud_service.go @@ -0,0 +1,127 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package commonids + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +var _ resourceids.ResourceId = SpringCloudServiceId{} + +// SpringCloudServiceId is a struct representing the Resource ID for a Spring Cloud Service +type SpringCloudServiceId struct { + SubscriptionId string + ResourceGroupName string + ServiceName string +} + +// NewSpringCloudServiceID returns a new SpringCloudServiceId struct +func NewSpringCloudServiceID(subscriptionId string, resourceGroupName string, serviceName string) SpringCloudServiceId { + return SpringCloudServiceId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + ServiceName: serviceName, + } +} + +// ParseSpringCloudServiceID parses 'input' into a SpringCloudServiceId +func ParseSpringCloudServiceID(input string) (*SpringCloudServiceId, error) { + parser := resourceids.NewParserFromResourceIdType(SpringCloudServiceId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := SpringCloudServiceId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ServiceName, ok = parsed.Parsed["serviceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "serviceName", *parsed) + } + + return &id, nil +} + +// ParseSpringCloudServiceIDInsensitively parses 'input' case-insensitively into a SpringCloudServiceId +// note: this method should only be used for API response data and not user input +func ParseSpringCloudServiceIDInsensitively(input string) (*SpringCloudServiceId, error) { + parser := resourceids.NewParserFromResourceIdType(SpringCloudServiceId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := SpringCloudServiceId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ServiceName, ok = parsed.Parsed["serviceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "serviceName", *parsed) + } + + return &id, nil +} + +// ValidateSpringCloudServiceID checks that 'input' can be parsed as a Spring Cloud Service ID +func ValidateSpringCloudServiceID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseSpringCloudServiceID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Spring Cloud Service ID +func (id SpringCloudServiceId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.ServiceName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Spring Cloud Service ID +func (id SpringCloudServiceId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("serviceName", "serviceValue"), + } +} + +// String returns a human-readable description of this Spring Cloud Service ID +func (id SpringCloudServiceId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Service Name: %q", id.ServiceName), + } + return fmt.Sprintf("Spring Cloud Service (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/virtual_machine.go b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/virtual_machine.go new file mode 100644 index 000000000000..f75ce94224be --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/virtual_machine.go @@ -0,0 +1,127 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package commonids + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +var _ resourceids.ResourceId = VirtualMachineId{} + +// VirtualMachineId is a struct representing the Resource ID for a Virtual Machine +type VirtualMachineId struct { + SubscriptionId string + ResourceGroupName string + VirtualMachineName string +} + +// NewVirtualMachineID returns a new VirtualMachineId struct +func NewVirtualMachineID(subscriptionId string, resourceGroupName string, virtualMachineName string) VirtualMachineId { + return VirtualMachineId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + VirtualMachineName: virtualMachineName, + } +} + +// ParseVirtualMachineID parses 'input' into a VirtualMachineId +func ParseVirtualMachineID(input string) (*VirtualMachineId, error) { + parser := resourceids.NewParserFromResourceIdType(VirtualMachineId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := VirtualMachineId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.VirtualMachineName, ok = parsed.Parsed["virtualMachineName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "virtualMachineName", *parsed) + } + + return &id, nil +} + +// ParseVirtualMachineIDInsensitively parses 'input' case-insensitively into a VirtualMachineId +// note: this method should only be used for API response data and not user input +func ParseVirtualMachineIDInsensitively(input string) (*VirtualMachineId, error) { + parser := resourceids.NewParserFromResourceIdType(VirtualMachineId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := VirtualMachineId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.VirtualMachineName, ok = parsed.Parsed["virtualMachineName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "virtualMachineName", *parsed) + } + + return &id, nil +} + +// ValidateVirtualMachineID checks that 'input' can be parsed as a Virtual Machine ID +func ValidateVirtualMachineID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseVirtualMachineID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Virtual Machine ID +func (id VirtualMachineId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/virtualMachines/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.VirtualMachineName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Virtual Machine ID +func (id VirtualMachineId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftCompute", "Microsoft.Compute", "Microsoft.Compute"), + resourceids.StaticSegment("staticVirtualMachines", "virtualMachines", "virtualMachines"), + resourceids.UserSpecifiedSegment("virtualMachineName", "virtualMachineValue"), + } +} + +// String returns a human-readable description of this Virtual Machine ID +func (id VirtualMachineId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Virtual Machine Name: %q", id.VirtualMachineName), + } + return fmt.Sprintf("Virtual Machine (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/virtual_machine_scale_set.go b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/virtual_machine_scale_set.go new file mode 100644 index 000000000000..4100e501cc86 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-helpers/resourcemanager/commonids/virtual_machine_scale_set.go @@ -0,0 +1,125 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package commonids + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// VirtualMachineScaleSetId is a struct representing the Resource ID for a Virtual Machine Scale Set +type VirtualMachineScaleSetId struct { + SubscriptionId string + ResourceGroupName string + VirtualMachineScaleSetName string +} + +// NewVirtualMachineScaleSetID returns a new VirtualMachineScaleSetId struct +func NewVirtualMachineScaleSetID(subscriptionId string, resourceGroupName string, virtualMachineScaleSetName string) VirtualMachineScaleSetId { + return VirtualMachineScaleSetId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + VirtualMachineScaleSetName: virtualMachineScaleSetName, + } +} + +// ParseVirtualMachineScaleSetID parses 'input' into a VirtualMachineScaleSetId +func ParseVirtualMachineScaleSetID(input string) (*VirtualMachineScaleSetId, error) { + parser := resourceids.NewParserFromResourceIdType(VirtualMachineScaleSetId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := VirtualMachineScaleSetId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.VirtualMachineScaleSetName, ok = parsed.Parsed["virtualMachineScaleSetName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "virtualMachineScaleSetName", *parsed) + } + + return &id, nil +} + +// ParseVirtualMachineScaleSetIDInsensitively parses 'input' case-insensitively into a VirtualMachineScaleSetId +// note: this method should only be used for API response data and not user input +func ParseVirtualMachineScaleSetIDInsensitively(input string) (*VirtualMachineScaleSetId, error) { + parser := resourceids.NewParserFromResourceIdType(VirtualMachineScaleSetId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := VirtualMachineScaleSetId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.VirtualMachineScaleSetName, ok = parsed.Parsed["virtualMachineScaleSetName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "virtualMachineScaleSetName", *parsed) + } + + return &id, nil +} + +// ValidateVirtualMachineScaleSetID checks that 'input' can be parsed as a Virtual Machine Scale Set ID +func ValidateVirtualMachineScaleSetID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseVirtualMachineScaleSetID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Virtual Machine Scale Set ID +func (id VirtualMachineScaleSetId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/virtualMachineScaleSets/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.VirtualMachineScaleSetName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Virtual Machine Scale Set ID +func (id VirtualMachineScaleSetId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftCompute", "Microsoft.Compute", "Microsoft.Compute"), + resourceids.StaticSegment("staticVirtualMachineScaleSets", "virtualMachineScaleSets", "virtualMachineScaleSets"), + resourceids.UserSpecifiedSegment("virtualMachineScaleSetName", "virtualMachineScaleSetValue"), + } +} + +// String returns a human-readable description of this Virtual Machine Scale Set ID +func (id VirtualMachineScaleSetId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Virtual Machine Scale Set Name: %q", id.VirtualMachineScaleSetName), + } + return fmt.Sprintf("Virtual Machine Scale Set (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/modules.txt b/vendor/modules.txt index b401b7cd7754..596706960dff 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -136,7 +136,7 @@ github.com/google/uuid # github.com/hashicorp/errwrap v1.1.0 ## explicit github.com/hashicorp/errwrap -# github.com/hashicorp/go-azure-helpers v0.59.0 +# github.com/hashicorp/go-azure-helpers v0.61.0 ## explicit; go 1.19 github.com/hashicorp/go-azure-helpers/authentication github.com/hashicorp/go-azure-helpers/eventhub From 85e4c1950248c9a4443e3ed9267fc07a4f19af97 Mon Sep 17 00:00:00 2001 From: Zhenhua Hu Date: Wed, 13 Sep 2023 09:59:25 +0800 Subject: [PATCH 182/336] resolve comments 0913 --- website/docs/r/managed_disk.html.markdown | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/website/docs/r/managed_disk.html.markdown b/website/docs/r/managed_disk.html.markdown index e7580d9e70f0..ab6e0c8a2279 100644 --- a/website/docs/r/managed_disk.html.markdown +++ b/website/docs/r/managed_disk.html.markdown @@ -133,9 +133,13 @@ The following arguments are supported: ~> **NOTE:** Setting logical sector size is supported only with `UltraSSD_LRS` disks and `PremiumV2_LRS` disks. -* `optimized_frequent_attach_enabled` - (Optional) Whether the feature of improving reliability and performance of data disks that are frequently (more than 5 times a day) detached from one virtual machine and attached to another is enabled. This property should not be set for disks that are not detached and attached frequently as it causes the disks to not align with the fault domain of the virtual machine. Defaults to `false`. +* `optimized_frequent_attach_enabled` - (Optional) Specifies whether this Managed Disk should be optimized for frequent disk attachments (where a disk is attached/detached more than 5 times in a day). Defaults to `false`. -* `performance_plus_enabled` - (Optional) Whether performance plus is enabled for this disk. Performance plus is only supported for UltraSSD disks. Defaults to `false`. Changing this forces a new resource to be created. +-> **Note:** Setting `optimized_frequent_attach_enabled` to `true` causes the disks to not align with the fault domain of the Virtual Machine, which can have operational implications. + +* `performance_plus_enabled` - (Optional) Specifies whether Performance Plus is enabled for this Managed Disk. Defaults to `false`. Changing this forces a new resource to be created. + +-> **Note:** `performance_plus_enabled` can only be set to `true` when using a Managed Disk with an Ultra SSD. * `os_type` - (Optional) Specify a value when the source of an `Import`, `ImportSecure` or `Copy` operation targets a source that contains an operating system. Valid values are `Linux` or `Windows`. From fb59f330a920c8a1a5fa7e45a0311d35e7e02c7b Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Wed, 13 Sep 2023 10:30:31 +0200 Subject: [PATCH 183/336] updating to include #23249 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9833fb6be765..f4668041c64f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ENHANCEMENTS: * dependencies: updating to `v0.1.1` of `github.com/btubbs/datetime` [GH-23221] * dependencies: updating to `v1.3.1` of `github.com/google/uuid` [GH-23221] +* dependencies: updating to `v0.61.0` of `github.com/hashicorp/go-azure-helpers` [GH-23249] * dependencies: updating to `v0.20230907.1113401` of `github.com/hashicorp/go-azure-sdk` [GH-23221] * dependencies: updating to `v1.5.0` of `github.com/hashicorp/go-hclog` [GH-23221] * dependencies: updating to `v2.29.0` of `github.com/hashicorp/terraform-plugin-sdk/v2` [GH-23221] From b0dee75caa97a36e6ec54cedad31c328093c4ebe Mon Sep 17 00:00:00 2001 From: Elena Xin Date: Wed, 13 Sep 2023 13:49:00 +0800 Subject: [PATCH 184/336] fix issue 23187 --- .../mssql/mssql_elasticpool_resource.go | 4 +-- .../mssql/mssql_elasticpool_resource_test.go | 26 ++++++++++++------- .../docs/r/mssql_elasticpool.html.markdown | 2 +- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/internal/services/mssql/mssql_elasticpool_resource.go b/internal/services/mssql/mssql_elasticpool_resource.go index af53bd21c921..2c02d2edfd99 100644 --- a/internal/services/mssql/mssql_elasticpool_resource.go +++ b/internal/services/mssql/mssql_elasticpool_resource.go @@ -235,10 +235,10 @@ func resourceMsSqlElasticPoolCreateUpdate(d *pluginsdk.ResourceData, meta interf } if _, ok := d.GetOk("license_type"); ok { - if sku.Tier != nil && (*sku.Tier == "GeneralPurpose" || *sku.Tier == "BusinessCritical") { + if sku.Tier != nil && (*sku.Tier == "GeneralPurpose" || *sku.Tier == "BusinessCritical" || *sku.Tier == "Hyperscale") { elasticPool.ElasticPoolProperties.LicenseType = sql.ElasticPoolLicenseType(d.Get("license_type").(string)) } else { - return fmt.Errorf("`license_type` can only be configured when `sku.0.tier` is set to `GeneralPurpose` or `BusinessCritical`") + return fmt.Errorf("`license_type` can only be configured when `sku.0.tier` is set to `GeneralPurpose`, `Hyperscale` or `BusinessCritical`") } } diff --git a/internal/services/mssql/mssql_elasticpool_resource_test.go b/internal/services/mssql/mssql_elasticpool_resource_test.go index 5b6c43bb51f5..38eaa1da8f23 100644 --- a/internal/services/mssql/mssql_elasticpool_resource_test.go +++ b/internal/services/mssql/mssql_elasticpool_resource_test.go @@ -258,6 +258,13 @@ func TestAccMsSqlElasticPool_hyperScale(t *testing.T) { ), }, data.ImportStep("max_size_gb"), + { + Config: r.hyperScaleUpdate(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("max_size_gb"), }) } @@ -376,13 +383,12 @@ resource "azurerm_mssql_server" "test" { } resource "azurerm_mssql_elasticpool" "test" { - name = "acctest-pool-dtu-%[1]d" - resource_group_name = azurerm_resource_group.test.name - location = azurerm_resource_group.test.location - server_name = azurerm_mssql_server.test.name - max_size_gb = %.7[6]f - zone_redundant = %[9]t - + name = "acctest-pool-dtu-%[1]d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + server_name = azurerm_mssql_server.test.name + max_size_gb = %.7[6]f + zone_redundant = %[9]t maintenance_configuration_name = "%[10]s" sku { @@ -425,7 +431,6 @@ resource "azurerm_mssql_elasticpool" "test" { location = azurerm_resource_group.test.location server_name = azurerm_mssql_server.test.name max_size_gb = 5 - sku { name = "%[3]s" tier = "%[4]s" @@ -508,7 +513,6 @@ resource "azurerm_mssql_elasticpool" "test" { resource_group_name = azurerm_resource_group.test.name location = azurerm_resource_group.test.location server_name = azurerm_mssql_server.test.name - sku { name = "%[3]s" tier = "%[4]s" @@ -572,3 +576,7 @@ resource "azurerm_mssql_elasticpool" "test" { func (r MsSqlElasticPoolResource) hyperScale(data acceptance.TestData) string { return r.templateHyperScale(data, "HS_Gen5", "Hyperscale", 4, "Gen5", 0.25, 4) } + +func (r MsSqlElasticPoolResource) hyperScaleUpdate(data acceptance.TestData) string { + return r.templateHyperScale(data, "HS_Gen5", "Hyperscale", 4, "Gen5", 0, 4) +} diff --git a/website/docs/r/mssql_elasticpool.html.markdown b/website/docs/r/mssql_elasticpool.html.markdown index bd41c4b63314..005b560f1d32 100644 --- a/website/docs/r/mssql_elasticpool.html.markdown +++ b/website/docs/r/mssql_elasticpool.html.markdown @@ -79,7 +79,7 @@ The following arguments are supported: * `license_type` - (Optional) Specifies the license type applied to this database. Possible values are `LicenseIncluded` and `BasePrice`. --> **Note:** `license_type` can only be configured when `sku.0.tier` is set to `GeneralPurpose` or `BusinessCritical` +-> **Note:** `license_type` can only be configured when `sku.0.tier` is set to `GeneralPurpose`, `Hyperscale` or `BusinessCritical` --- From bb70000a1049925441c07109490797c6396f9762 Mon Sep 17 00:00:00 2001 From: stephybun Date: Wed, 13 Sep 2023 16:17:38 +0200 Subject: [PATCH 185/336] contributor docs: update naming rules on bools and improve formatting (#23254) * update naming rules on bools and improve formatting * add spacing to ease reading of raw markdown * remove "in" in rename example Co-authored-by: Tom Harvey * added point on the naming of time properties --------- Co-authored-by: Tom Harvey --- contributing/topics/reference-naming.md | 30 +++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/contributing/topics/reference-naming.md b/contributing/topics/reference-naming.md index 81476eaa9e7a..e740b61a985e 100755 --- a/contributing/topics/reference-naming.md +++ b/contributing/topics/reference-naming.md @@ -8,10 +8,32 @@ Here are some general guidelines you can turn to when naming properties: * The name should describe what the property is for succinctly, but as with many things a balance should be struck between too short or too long. -* Abbreviations should not be used and the full words should be used instead e.g. `resource_group_name` instead of `rg_name` or `virtual_machine` instead of `vm`. +* Choose the officially marketed name for new properties over the ones used in the API if they differ. -* For blocks avoid redundant words in the name that don't add informational value e.g.`firewall_properties` can be shortened to `firewall`, the same can apply to individual properties e.g. `email_address` to `email`. +* Abbreviations should not be used and the full words should be used instead e.g. +>`resource_group_name` instead of `rg_name` or `virtual_machine` instead of `vm`. -* As a general rule, booleans should be appended with `_enabled`, e.g. `public_network_access_enabled`. +* For blocks avoid redundant words in the name that don't add informational value e.g. +>`firewall_properties` can be shortened to `firewall`, the same can apply to individual properties e.g. `email_address` to `email`. -* Choose the officially marketed name for new properties over the ones used in the API if they differ. \ No newline at end of file +* Properties for certificates or artifacts that must be in a certain format should be appended with the format e.g. +> A certificate that must be base64 encoded should be named `certificate_base64` + +* Similarly, properties that pertain to sizes or durations/windows/occurences should be appended with the appropriate unit of measure e.g. +> `duration_in_seconds` or `size_in_gb` + +* Time properties that are not in the format of RFC3339 or are specified as UTC in the documentation should have that appended e.g. + > `timestamp_in_utc` + +* For booleans these guidelines apply: + + * As a general rule, booleans should be appended with `_enabled` e.g. + >`public_network_access_enabled` + + * Booleans named `disableSomething` in the API should be flipped and exposed as `something_enabled` in the provider. + + * Avoid redundant verbs like `is` at the beginning of the property e.g. + >`is_storage_enabled` must be renamed to `storage_enabled`. + + * Avoid double negatives which obfuscate the purpose of the property these should be removed and flipped e.g. + >`no_storage_enabled` becomes `storage_enabled` or `block_user_upload_enabled` becomes `user_upload_enabled`. From 39d98c8f7f01d90ce7ddf0ea298361137072624e Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Wed, 13 Sep 2023 16:59:53 +0200 Subject: [PATCH 186/336] updating to include #23241 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4668041c64f..461ab16367b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,8 @@ ENHANCEMENTS: * dependencies: updating to `v0.13.0` of `golang.org/x/tools` [GH-23221] * `azurerm_bot_channel_ms_teams` - support for `deployment_environment` [GH-23122] * `azurerm_managed_disk` - updating to use API Version `2023-04-02` [GH-23233] +* `azurerm_managed_disk` - support for `optimized_frequent_attach_enabled` [GH-23241] +* `azurerm_managed_disk` - support for `performance_plus_enabled` [GH-23241] * `azurerm_maps_account` - support for `local_authentication_enabled` [GH-23216] * `azurerm_security_center_assessment_policy` - refactoring to use `hashicorp/go-azure-sdk` [GH-23158] From 76cdafc117f7cdc72a58f13870bf18c8e7d31b9b Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Wed, 13 Sep 2023 17:31:29 +0200 Subject: [PATCH 187/336] updating to include #23256 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 461ab16367b9..de10bfad7bfd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,8 @@ FEATURES: -* **New Resource**: `azurerm_virtual_hub_routing_intent` [GH-23138] * **New Resource**: `azurerm_iothub_endpoint_cosmosdb_account` [GH-23065] +* **New Resource**: `azurerm_virtual_hub_routing_intent` [GH-23138] ENHANCEMENTS: @@ -23,6 +23,7 @@ ENHANCEMENTS: * `azurerm_managed_disk` - support for `optimized_frequent_attach_enabled` [GH-23241] * `azurerm_managed_disk` - support for `performance_plus_enabled` [GH-23241] * `azurerm_maps_account` - support for `local_authentication_enabled` [GH-23216] +* `azurerm_mssql_elasticpool` - support for configuring `license_type` when using the `Hyperscale` sku [GH-23256] * `azurerm_security_center_assessment_policy` - refactoring to use `hashicorp/go-azure-sdk` [GH-23158] BUG FIXES: From 73b9989bb52a9da0cc0a1735e6f84277b3bab479 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Thu, 14 Sep 2023 11:44:35 +0200 Subject: [PATCH 188/336] updating to include #23214 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index de10bfad7bfd..5f60287770b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ ENHANCEMENTS: BUG FIXES: * `azurerm_api_management_backend` - fixing a panic when flattening the `credentials` block [GH-23219] +* `azurerm_key_vault_certificate` - fixing a regression where certificates from a custom/unknown issuer would be polled indefinitely [GH-23214] * `azurerm_redis_cache` - prevent sending `redis_configuration.aof_backup_enabled` when the sku is not `Premium` to avoid API error [GH-22774] * `azurerm_web_application_firewall_policy` - capture and toggle state of `custom_rule` blocks with an `enabled` field [GH-23163] From f4fd1d86ed263651f3ab9b0e532f9abb0416568c Mon Sep 17 00:00:00 2001 From: jackofallops Date: Thu, 14 Sep 2023 11:54:03 +0200 Subject: [PATCH 189/336] add scale rules with auth --- .../container_app_resource_test.go | 199 +++++++++++++ .../containerapps/helpers/container_apps.go | 275 ++++++++++++++++-- 2 files changed, 450 insertions(+), 24 deletions(-) diff --git a/internal/services/containerapps/container_app_resource_test.go b/internal/services/containerapps/container_app_resource_test.go index ade9bad6aac0..8dd2e7e271fb 100644 --- a/internal/services/containerapps/container_app_resource_test.go +++ b/internal/services/containerapps/container_app_resource_test.go @@ -303,6 +303,57 @@ func TestAccContainerAppResource_secretRemoveWithAddShouldFail(t *testing.T) { }) } +func TestAccContainerAppResource_scaleRules(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_container_app", "test") + r := ContainerAppResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.scaleRules(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccContainerAppResource_scaleRulesUpdate(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_container_app", "test") + r := ContainerAppResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.scaleRules(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.scaleRulesUpdate(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.basicWithRetainedSecret(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func (r ContainerAppResource) Exists(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := containerapps.ParseContainerAppID(state.ID) if err != nil { @@ -342,6 +393,33 @@ resource "azurerm_container_app" "test" { `, r.template(data), data.RandomInteger) } +func (r ContainerAppResource) basicWithRetainedSecret(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_container_app" "test" { + name = "acctest-capp-%[2]d" + resource_group_name = azurerm_resource_group.test.name + container_app_environment_id = azurerm_container_app_environment.test.id + revision_mode = "Single" + + secret { + name = "queue-auth-secret" + value = "VGhpcyBJcyBOb3QgQSBHb29kIFBhc3N3b3JkCg==" + } + + template { + container { + name = "acctest-cont-%[2]d" + image = "jackofallops/azure-containerapps-python-acctest:v0.0.1" + cpu = 0.25 + memory = "0.5Gi" + } + } +} +`, r.template(data), data.RandomInteger) +} + func (r ContainerAppResource) withSystemIdentity(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -1325,6 +1403,127 @@ resource "azurerm_container_app" "test" { `, r.templatePlusExtras(data), data.RandomInteger, revisionSuffix) } +func (r ContainerAppResource) scaleRules(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_container_app" "test" { + name = "acctest-capp-%[2]d" + resource_group_name = azurerm_resource_group.test.name + container_app_environment_id = azurerm_container_app_environment.test.id + revision_mode = "Single" + + secret { + name = "queue-auth-secret" + value = "VGhpcyBJcyBOb3QgQSBHb29kIFBhc3N3b3JkCg==" + } + + template { + container { + name = "acctest-cont-%[2]d" + image = "jackofallops/azure-containerapps-python-acctest:v0.0.1" + cpu = 0.25 + memory = "0.5Gi" + } + + azure_queue_scale_rule { + name = "azq-1" + queue_name = "foo" + queue_length = 10 + + authentication_secret_reference = "queue-auth-secret" + authentication_trigger_parameter = "blah" + } + + custom_scale_rule { + name = "csr-1" + custom_rule_type = "azure-monitor" + metadata = { + foo = "bar" + } + } + + http_scale_rule { + name = "http-1" + concurrent_requests = "100" + } + + tcp_scale_rule { + name = "tcp-1" + concurrent_requests = "1000" + } + } +} +`, r.template(data), data.RandomInteger) +} + +func (r ContainerAppResource) scaleRulesUpdate(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_container_app" "test" { + name = "acctest-capp-%[2]d" + resource_group_name = azurerm_resource_group.test.name + container_app_environment_id = azurerm_container_app_environment.test.id + revision_mode = "Single" + + secret { + name = "queue-auth-secret" + value = "VGhpcyBJcyBOb3QgQSBHb29kIFBhc3N3b3JkCg==" + } + + template { + container { + name = "acctest-cont-%[2]d" + image = "jackofallops/azure-containerapps-python-acctest:v0.0.1" + cpu = 0.25 + memory = "0.5Gi" + } + + azure_queue_scale_rule { + name = "azq-1" + queue_name = "foo" + queue_length = 10 + + authentication_secret_reference = "queue-auth-secret" + authentication_trigger_parameter = "blah" + } + + azure_queue_scale_rule { + name = "azq-2" + queue_name = "bar" + queue_length = 20 + + authentication_secret_reference = "queue-auth-secret" + authentication_trigger_parameter = "blah2" + } + + custom_scale_rule { + name = "csr-1" + custom_rule_type = "rabbitmq" + metadata = { + foo = "bar" + } + } + + http_scale_rule { + name = "http-1" + concurrent_requests = "200" + + authentication_secret_reference = "queue-auth-secret" + } + + tcp_scale_rule { + name = "tcp-1" + concurrent_requests = "1000" + + authentication_secret_reference = "queue-auth-secret" + } + } +} +`, r.template(data), data.RandomInteger) +} + func (ContainerAppResource) template(data acceptance.TestData) string { return ContainerAppEnvironmentResource{}.basic(data) } diff --git a/internal/services/containerapps/helpers/container_apps.go b/internal/services/containerapps/helpers/container_apps.go index 95b28a3f67e3..3cacab4b2e9f 100644 --- a/internal/services/containerapps/helpers/container_apps.go +++ b/internal/services/containerapps/helpers/container_apps.go @@ -783,6 +783,14 @@ func ExpandContainerAppTemplate(input []ContainerTemplate, metadata sdk.Resource template.Scale.MinReplicas = pointer.To(int64(config.MinReplicas)) } + if rules := config.expandContainerAppScaleRules(); len(rules) != 0 { + if template.Scale == nil { + template.Scale = &containerapps.Scale{} + } + + template.Scale.Rules = pointer.To(rules) + } + if config.Suffix != "" { if metadata.ResourceData.HasChange("template.0.revision_suffix") { template.RevisionSuffix = pointer.To(config.Suffix) @@ -805,6 +813,7 @@ func FlattenContainerAppTemplate(input *containerapps.Template) []ContainerTempl if scale := input.Scale; scale != nil { result.MaxReplicas = int(pointer.From(scale.MaxReplicas)) result.MinReplicas = int(pointer.From(scale.MinReplicas)) + result.flattenContainerAppScaleRules(scale.Rules) } return []ContainerTemplate{result} @@ -2362,7 +2371,7 @@ func ContainerAppProbesRemoved(metadata sdk.ResourceMetaData) bool { type AzureQueueScaleRule struct { Name string `tfschema:"name"` - QueueLength string `tfschema:"queue_length"` + QueueLength int `tfschema:"queue_length"` QueueName string `tfschema:"queue_name"` AuthSecretRef string `tfschema:"authentication_secret_reference"` AuthTriggerParam string `tfschema:"authentication_trigger_parameter"` @@ -2394,13 +2403,13 @@ func AzureQueueScaleRuleSchema() *pluginsdk.Schema { "authentication_secret_reference": { Type: pluginsdk.TypeString, - Optional: true, + Required: true, ValidateFunc: validate.SecretName, }, "authentication_trigger_parameter": { Type: pluginsdk.TypeString, - Optional: true, + Required: true, ValidateFunc: validation.StringIsNotEmpty, }, }, @@ -2409,6 +2418,7 @@ func AzureQueueScaleRuleSchema() *pluginsdk.Schema { } type CustomScaleRule struct { + Name string `tfschema:"name"` Metadata map[string]string `tfschema:"metadata"` CustomRuleType string `tfschema:"custom_rule_type"` AuthSecretRef string `tfschema:"authentication_secret_reference"` @@ -2436,9 +2446,22 @@ func CustomScaleRuleSchema() *pluginsdk.Schema { }, "custom_rule_type": { - Type: pluginsdk.TypeString, - Required: true, - ValidateFunc: validation.StringIsNotEmpty, // Note - this can be any KEDA compatible source in a user's environment + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringInSlice([]string{ + "activemq", "artemis-queue", "kafka", "pulsar", "aws-cloudwatch", + "aws-dynamodb", "aws-dynamodb-streams", "aws-kinesis-stream", "aws-sqs-queue", + "azure-app-insights", "azure-blob", "azure-data-explorer", "azure-eventhub", + "azure-log-analytics", "azure-monitor", "azure-pipelines", "azure-servicebus", + "azure-queue", "cassandra", "cpu", "cron", "datadog", "elasticsearch", "external", + "external-push", "gcp-stackdriver", "gcp-storage", "gcp-pubsub", "graphite", "http", + "huawei-cloudeye", "ibmmq", "influxdb", "kubernetes-workload", "liiklus", "memory", + "metrics-api", "mongodb", "mssql", "mysql", "nats-jetstream", "stan", "tcp", "new-relic", + "openstack-metric", "openstack-swift", "postgresql", "predictkube", "prometheus", + "rabbitmq", "redis", "redis-cluster", "redis-sentinel", "redis-streams", + "redis-cluster-streams", "redis-sentinel-streams", "selenium-grid", + "solace-event-queue", "github-runner", + }, false), // Note - this can be any KEDA compatible source in a user's environment }, "authentication_secret_reference": { @@ -2458,9 +2481,10 @@ func CustomScaleRuleSchema() *pluginsdk.Schema { } type HTTPScaleRule struct { - Metadata map[string]string `tfschema:"metadata"` - AuthSecretRef string `tfschema:"authentication_secret_reference"` - AuthTriggerParam string `tfschema:"authentication_trigger_parameter"` + Name string `tfschema:"name"` + ConcurrentRequests string `tfschema:"concurrent_requests"` + AuthSecretRef string `tfschema:"authentication_secret_reference"` + AuthTriggerParam string `tfschema:"authentication_trigger_parameter"` } func HTTPScaleRuleSchema() *pluginsdk.Schema { @@ -2475,12 +2499,10 @@ func HTTPScaleRuleSchema() *pluginsdk.Schema { ValidateFunc: validation.StringIsNotEmpty, }, - "metadata": { - Type: pluginsdk.TypeMap, - Required: true, - Elem: &pluginsdk.Schema{ - Type: pluginsdk.TypeString, - }, + "concurrent_requests": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: nil, // TODO - str value for int }, "authentication_secret_reference": { @@ -2500,9 +2522,10 @@ func HTTPScaleRuleSchema() *pluginsdk.Schema { } type TCPScaleRule struct { - Metadata map[string]string `tfschema:"metadata"` - AuthSecretRef string `tfschema:"authentication_secret_reference"` - AuthTriggerParam string `tfschema:"authentication_trigger_parameter"` + Name string `tfschema:"name"` + ConcurrentRequests string `tfschema:"concurrent_requests"` + AuthSecretRef string `tfschema:"authentication_secret_reference"` + AuthTriggerParam string `tfschema:"authentication_trigger_parameter"` } func TCPScaleRuleSchema() *pluginsdk.Schema { @@ -2517,12 +2540,10 @@ func TCPScaleRuleSchema() *pluginsdk.Schema { ValidateFunc: validation.StringIsNotEmpty, }, - "metadata": { - Type: pluginsdk.TypeMap, - Required: true, - Elem: &pluginsdk.Schema{ - Type: pluginsdk.TypeString, - }, + "concurrent_requests": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: nil, // TODO Validation for int as str }, "authentication_secret_reference": { @@ -2540,3 +2561,209 @@ func TCPScaleRuleSchema() *pluginsdk.Schema { }, } } + +func (c *ContainerTemplate) expandContainerAppScaleRules() []containerapps.ScaleRule { + if len(c.AzureQueueScaleRules) == 0 && len(c.CustomScaleRules) == 0 && len(c.HTTPScaleRules) == 0 && len(c.TCPScaleRules) == 0 { + return nil + } + result := make([]containerapps.ScaleRule, 0) + for _, v := range c.AzureQueueScaleRules { + r := containerapps.ScaleRule{ + Name: pointer.To(v.Name), + AzureQueue: &containerapps.QueueScaleRule{ + QueueLength: pointer.To(int64(v.QueueLength)), + QueueName: pointer.To(v.QueueName), + Auth: &[]containerapps.ScaleRuleAuth{}, + }, + } + + if v.AuthSecretRef != "" || v.AuthTriggerParam != "" { + auth := containerapps.ScaleRuleAuth{} + if v.AuthTriggerParam != "" { + auth.TriggerParameter = pointer.To(v.AuthTriggerParam) + } + + if v.AuthSecretRef != "" { + auth.SecretRef = pointer.To(v.AuthSecretRef) + } + + r.AzureQueue.Auth = pointer.To([]containerapps.ScaleRuleAuth{auth}) + } + result = append(result, r) + } + + for _, v := range c.CustomScaleRules { + r := containerapps.ScaleRule{ + Name: pointer.To(v.Name), + Custom: &containerapps.CustomScaleRule{ + Metadata: &v.Metadata, + Type: pointer.To(v.CustomRuleType), + }, + } + + if v.AuthSecretRef != "" || v.AuthTriggerParam != "" { + auth := containerapps.ScaleRuleAuth{} + if v.AuthTriggerParam != "" { + auth.TriggerParameter = pointer.To(v.AuthTriggerParam) + } + + if v.AuthSecretRef != "" { + auth.SecretRef = pointer.To(v.AuthSecretRef) + } + + r.Custom.Auth = pointer.To([]containerapps.ScaleRuleAuth{auth}) + } + result = append(result, r) + } + + for _, v := range c.HTTPScaleRules { + metaData := make(map[string]string, 0) + metaData["concurrentRequests"] = v.ConcurrentRequests + r := containerapps.ScaleRule{ + Name: pointer.To(v.Name), + HTTP: &containerapps.HTTPScaleRule{ + Metadata: pointer.To(metaData), + }, + } + + if v.AuthSecretRef != "" || v.AuthTriggerParam != "" { + auth := containerapps.ScaleRuleAuth{} + if v.AuthTriggerParam != "" { + auth.TriggerParameter = pointer.To(v.AuthTriggerParam) + } + + if v.AuthSecretRef != "" { + auth.SecretRef = pointer.To(v.AuthSecretRef) + } + + r.HTTP.Auth = pointer.To([]containerapps.ScaleRuleAuth{auth}) + } + result = append(result, r) + } + + for _, v := range c.TCPScaleRules { + metaData := make(map[string]string, 0) + metaData["concurrentRequests"] = v.ConcurrentRequests + r := containerapps.ScaleRule{ + Name: pointer.To(v.Name), + Tcp: &containerapps.TcpScaleRule{ + Metadata: pointer.To(metaData), + }, + } + + if v.AuthSecretRef != "" || v.AuthTriggerParam != "" { + auth := containerapps.ScaleRuleAuth{} + if v.AuthTriggerParam != "" { + auth.TriggerParameter = pointer.To(v.AuthTriggerParam) + } + + if v.AuthSecretRef != "" { + auth.SecretRef = pointer.To(v.AuthSecretRef) + } + + r.Tcp.Auth = pointer.To([]containerapps.ScaleRuleAuth{auth}) + } + result = append(result, r) + } + + return result +} + +func (c *ContainerTemplate) flattenContainerAppScaleRules(input *[]containerapps.ScaleRule) { + if input != nil && len(*input) != 0 { + rules := *input + azureQueueScaleRules := make([]AzureQueueScaleRule, 0) + customScaleRules := make([]CustomScaleRule, 0) + httpScaleRules := make([]HTTPScaleRule, 0) + tcpScaleRules := make([]TCPScaleRule, 0) + for _, v := range rules { + if q := v.AzureQueue; q != nil { + rule := AzureQueueScaleRule{ + Name: pointer.From(v.Name), + QueueLength: int(pointer.From(q.QueueLength)), + QueueName: pointer.From(q.QueueName), + } + + if q.Auth != nil && len(*q.Auth) != 0 { + auth := (*q.Auth)[0] + rule.AuthSecretRef = pointer.From(auth.SecretRef) + rule.AuthTriggerParam = pointer.From(auth.TriggerParameter) + } + + azureQueueScaleRules = append(azureQueueScaleRules, rule) + continue + } + + if r := v.Custom; r != nil { + rule := CustomScaleRule{ + Name: pointer.From(v.Name), + Metadata: pointer.From(r.Metadata), + CustomRuleType: pointer.From(r.Type), + AuthSecretRef: "", + AuthTriggerParam: "", + } + + if r.Auth != nil && len(*r.Auth) != 0 { + auth := (*r.Auth)[0] + rule.AuthSecretRef = pointer.From(auth.SecretRef) + rule.AuthTriggerParam = pointer.From(auth.TriggerParameter) + } + + customScaleRules = append(customScaleRules, rule) + continue + } + + if r := v.HTTP; r != nil { + metaData := pointer.From(r.Metadata) + concurrentReqs := "" + + if m, ok := metaData["concurrentRequests"]; ok { + concurrentReqs = m + } + + rule := HTTPScaleRule{ + Name: pointer.From(v.Name), + ConcurrentRequests: concurrentReqs, + AuthSecretRef: "", + AuthTriggerParam: "", + } + + if r.Auth != nil && len(*r.Auth) != 0 { + auth := (*r.Auth)[0] + rule.AuthSecretRef = pointer.From(auth.SecretRef) + rule.AuthTriggerParam = pointer.From(auth.TriggerParameter) + } + + httpScaleRules = append(httpScaleRules, rule) + continue + } + + if r := v.Tcp; r != nil { + metaData := pointer.From(r.Metadata) + concurrentReqs := "" + + if m, ok := metaData["concurrentRequests"]; ok { + concurrentReqs = m + } + + rule := TCPScaleRule{ + Name: pointer.From(v.Name), + ConcurrentRequests: concurrentReqs, + } + + if r.Auth != nil && len(*r.Auth) != 0 { + auth := (*r.Auth)[0] + rule.AuthSecretRef = pointer.From(auth.SecretRef) + rule.AuthTriggerParam = pointer.From(auth.TriggerParameter) + } + tcpScaleRules = append(tcpScaleRules, rule) + continue + } + } + + c.AzureQueueScaleRules = azureQueueScaleRules + c.CustomScaleRules = customScaleRules + c.HTTPScaleRules = httpScaleRules + c.TCPScaleRules = tcpScaleRules + } +} From d7a4ce1044cdd860719eb618dad4215296118f62 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Thu, 14 Sep 2023 16:05:40 -0700 Subject: [PATCH 190/336] `azurerm_api_management` - split create and update methods (#23259) --- .../apimanagement/api_management_resource.go | 419 ++++++++++++++---- 1 file changed, 328 insertions(+), 91 deletions(-) diff --git a/internal/services/apimanagement/api_management_resource.go b/internal/services/apimanagement/api_management_resource.go index 0f1dd533d913..a720035b69e4 100644 --- a/internal/services/apimanagement/api_management_resource.go +++ b/internal/services/apimanagement/api_management_resource.go @@ -64,9 +64,9 @@ var ( func resourceApiManagementService() *pluginsdk.Resource { return &pluginsdk.Resource{ - Create: resourceApiManagementServiceCreateUpdate, + Create: resourceApiManagementServiceCreate, Read: resourceApiManagementServiceRead, - Update: resourceApiManagementServiceCreateUpdate, + Update: resourceApiManagementServiceUpdate, Delete: resourceApiManagementServiceDelete, Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { _, err := apimanagementservice.ParseServiceID(id) @@ -666,7 +666,7 @@ func resourceApiManagementSchema() map[string]*pluginsdk.Schema { } } -func resourceApiManagementServiceCreateUpdate(d *pluginsdk.ResourceData, meta interface{}) error { +func resourceApiManagementServiceCreate(d *pluginsdk.ResourceData, meta interface{}) error { client := meta.(*clients.Client).ApiManagement.ServiceClient apiClient := meta.(*clients.Client).ApiManagement.ApiClient deletedServicesClient := meta.(*clients.Client).ApiManagement.DeletedServicesClient @@ -681,17 +681,15 @@ func resourceApiManagementServiceCreateUpdate(d *pluginsdk.ResourceData, meta in id := apimanagementservice.NewServiceID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) - if d.IsNewResource() { - existing, err := client.Get(ctx, id) - if err != nil { - if !response.WasNotFound(existing.HttpResponse) { - return fmt.Errorf("checking for presence of an existing %s: %+v", id, err) - } - } + existing, err := client.Get(ctx, id) + if err != nil { if !response.WasNotFound(existing.HttpResponse) { - return tf.ImportAsExistsError("azurerm_api_management", id.ID()) + return fmt.Errorf("checking for presence of an existing %s: %+v", id, err) } } + if !response.WasNotFound(existing.HttpResponse) { + return tf.ImportAsExistsError("azurerm_api_management", id.ID()) + } location := azure.NormalizeLocation(d.Get("location").(string)) t := d.Get("tags").(map[string]interface{}) @@ -711,51 +709,49 @@ func resourceApiManagementServiceCreateUpdate(d *pluginsdk.ResourceData, meta in publicNetworkAccess = apimanagementservice.PublicNetworkAccessDisabled } - if d.IsNewResource() { - // before creating check to see if the resource exists in the soft delete state - deletedServiceId := deletedservice.NewDeletedServiceID(id.SubscriptionId, location, id.ServiceName) - softDeleted, err := deletedServicesClient.GetByName(ctx, deletedServiceId) - if err != nil { - // If Terraform lacks permission to read at the Subscription we'll get 403, not 404 - if !response.WasNotFound(softDeleted.HttpResponse) && !response.WasForbidden(softDeleted.HttpResponse) { - return fmt.Errorf("checking for the presence of an existing Soft-Deleted API Management %q (Location %q): %+v", id.ServiceName, location, err) - } + // before creating check to see if the resource exists in the soft delete state + deletedServiceId := deletedservice.NewDeletedServiceID(id.SubscriptionId, location, id.ServiceName) + softDeleted, err := deletedServicesClient.GetByName(ctx, deletedServiceId) + if err != nil { + // If Terraform lacks permission to read at the Subscription we'll get 403, not 404 + if !response.WasNotFound(softDeleted.HttpResponse) && !response.WasForbidden(softDeleted.HttpResponse) { + return fmt.Errorf("checking for the presence of an existing Soft-Deleted API Management %q (Location %q): %+v", id.ServiceName, location, err) } + } - // if so, does the user want us to recover it? - if !response.WasNotFound(softDeleted.HttpResponse) && !response.WasForbidden(softDeleted.HttpResponse) { - if !meta.(*clients.Client).Features.ApiManagement.RecoverSoftDeleted { - // this exists but the users opted out, so they must import this it out-of-band - return fmt.Errorf(optedOutOfRecoveringSoftDeletedApiManagementErrorFmt(id.ServiceName, location)) - } + // if so, does the user want us to recover it? + if !response.WasNotFound(softDeleted.HttpResponse) && !response.WasForbidden(softDeleted.HttpResponse) { + if !meta.(*clients.Client).Features.ApiManagement.RecoverSoftDeleted { + // this exists but the users opted out, so they must import this it out-of-band + return fmt.Errorf(optedOutOfRecoveringSoftDeletedApiManagementErrorFmt(id.ServiceName, location)) + } - // First recover the deleted API Management, since all other properties are ignored during a restore operation - // (don't set the ID just yet to avoid tainting on failure) - params := apimanagementservice.ApiManagementServiceResource{ - Location: location, - Properties: apimanagementservice.ApiManagementServiceProperties{ - Restore: pointer.To(true), - }, - Sku: sku, - } + // First recover the deleted API Management, since all other properties are ignored during a restore operation + // (don't set the ID just yet to avoid tainting on failure) + params := apimanagementservice.ApiManagementServiceResource{ + Location: location, + Properties: apimanagementservice.ApiManagementServiceProperties{ + Restore: pointer.To(true), + }, + Sku: sku, + } - // retry to restore service since there is an API issue : https://github.com/Azure/azure-rest-api-specs/issues/25262 - err = pluginsdk.Retry(d.Timeout(pluginsdk.TimeoutCreate), func() *pluginsdk.RetryError { - resp, err := client.CreateOrUpdate(ctx, id, params) - if err != nil { - if response.WasBadRequest(resp.HttpResponse) { - return pluginsdk.RetryableError(err) - } - return pluginsdk.NonRetryableError(err) - } - if err := resp.Poller.PollUntilDone(ctx); err != nil { - return pluginsdk.NonRetryableError(err) - } - return nil - }) + // retry to restore service since there is an API issue : https://github.com/Azure/azure-rest-api-specs/issues/25262 + err = pluginsdk.Retry(d.Timeout(pluginsdk.TimeoutCreate), func() *pluginsdk.RetryError { + resp, err := client.CreateOrUpdate(ctx, id, params) if err != nil { - return fmt.Errorf("recovering %s: %+v", id, err) + if response.WasBadRequest(resp.HttpResponse) { + return pluginsdk.RetryableError(err) + } + return pluginsdk.NonRetryableError(err) } + if err := resp.Poller.PollUntilDone(ctx); err != nil { + return pluginsdk.NonRetryableError(err) + } + return nil + }) + if err != nil { + return fmt.Errorf("recovering %s: %+v", id, err) } } @@ -856,50 +852,48 @@ func resourceApiManagementServiceCreateUpdate(d *pluginsdk.ResourceData, meta in d.SetId(id.ID()) // Remove sample products and APIs after creating (v3.0 behaviour) - if d.IsNewResource() { - apiServiceId := api.NewServiceID(subscriptionId, id.ResourceGroupName, id.ServiceName) + apiServiceId := api.NewServiceID(subscriptionId, id.ResourceGroupName, id.ServiceName) - listResp, err := apiClient.ListByService(ctx, apiServiceId, api.ListByServiceOperationOptions{}) - if err != nil { - return fmt.Errorf("listing APIs after creation of %s: %+v", id, err) - } - if model := listResp.Model; model != nil { - for _, contract := range *model { - if contract.Id == nil { - continue - } - apiId, err := api.ParseApiID(pointer.From(contract.Id)) - if err != nil { - return fmt.Errorf("parsing API ID: %+v", err) - } - log.Printf("[DEBUG] Deleting %s", apiId) - if delResp, err := apiClient.Delete(ctx, *apiId, api.DeleteOperationOptions{DeleteRevisions: pointer.To(true)}); err != nil { - if !response.WasNotFound(delResp.HttpResponse) { - return fmt.Errorf("deleting %s: %+v", *apiId, err) - } + listResp, err := apiClient.ListByService(ctx, apiServiceId, api.ListByServiceOperationOptions{}) + if err != nil { + return fmt.Errorf("listing APIs after creation of %s: %+v", id, err) + } + if model := listResp.Model; model != nil { + for _, contract := range *model { + if contract.Id == nil { + continue + } + apiId, err := api.ParseApiID(pointer.From(contract.Id)) + if err != nil { + return fmt.Errorf("parsing API ID: %+v", err) + } + log.Printf("[DEBUG] Deleting %s", apiId) + if delResp, err := apiClient.Delete(ctx, *apiId, api.DeleteOperationOptions{DeleteRevisions: pointer.To(true)}); err != nil { + if !response.WasNotFound(delResp.HttpResponse) { + return fmt.Errorf("deleting %s: %+v", *apiId, err) } } } + } - produceServiceId := product.NewServiceID(subscriptionId, id.ResourceGroupName, id.ServiceName) - proListResp, err := productsClient.ListByService(ctx, produceServiceId, product.ListByServiceOperationOptions{}) - if err != nil { - return fmt.Errorf("listing products after creation of %s: %+v", id, err) - } - if model := proListResp.Model; model != nil { - for _, contract := range *model { - if contract.Id == nil { - continue - } - productId, err := product.ParseProductID(pointer.From(contract.Id)) - if err != nil { - return fmt.Errorf("parsing product ID: %+v", err) - } - log.Printf("[DEBUG] Deleting %s", productId) - if delResp, err := productsClient.Delete(ctx, *productId, product.DeleteOperationOptions{DeleteSubscriptions: pointer.To(true)}); err != nil { - if !response.WasNotFound(delResp.HttpResponse) { - return fmt.Errorf("deleting %s: %+v", *productId, err) - } + produceServiceId := product.NewServiceID(subscriptionId, id.ResourceGroupName, id.ServiceName) + proListResp, err := productsClient.ListByService(ctx, produceServiceId, product.ListByServiceOperationOptions{}) + if err != nil { + return fmt.Errorf("listing products after creation of %s: %+v", id, err) + } + if model := proListResp.Model; model != nil { + for _, contract := range *model { + if contract.Id == nil { + continue + } + productId, err := product.ParseProductID(pointer.From(contract.Id)) + if err != nil { + return fmt.Errorf("parsing product ID: %+v", err) + } + log.Printf("[DEBUG] Deleting %s", productId) + if delResp, err := productsClient.Delete(ctx, *productId, product.DeleteOperationOptions{DeleteSubscriptions: pointer.To(true)}); err != nil { + if !response.WasNotFound(delResp.HttpResponse) { + return fmt.Errorf("deleting %s: %+v", *productId, err) } } } @@ -919,7 +913,7 @@ func resourceApiManagementServiceCreateUpdate(d *pluginsdk.ResourceData, meta in } signUpSettingsRaw := d.Get("sign_up").([]interface{}) - if sku.Name == apimanagementservice.SkuTypeConsumption && len(signInSettingsRaw) > 0 { + if sku.Name == apimanagementservice.SkuTypeConsumption && len(signUpSettingsRaw) > 0 { return fmt.Errorf("`sign_up` is not support for sku tier `Consumption`") } if sku.Name != apimanagementservice.SkuTypeConsumption { @@ -951,7 +945,7 @@ func resourceApiManagementServiceCreateUpdate(d *pluginsdk.ResourceData, meta in return err } - if d.HasChange("policy") { + if _, ok := d.GetOk("policy"); ok { policyServiceId := policy.NewServiceID(subscriptionId, id.ResourceGroupName, id.ServiceName) // remove the existing policy if delResp, err := policyClient.Delete(ctx, policyServiceId, policy.DeleteOperationOptions{}); err != nil { @@ -985,6 +979,249 @@ func resourceApiManagementServiceCreateUpdate(d *pluginsdk.ResourceData, meta in return resourceApiManagementServiceRead(d, meta) } +func resourceApiManagementServiceUpdate(d *pluginsdk.ResourceData, meta interface{}) error { + client := meta.(*clients.Client).ApiManagement.ServiceClient + subscriptionId := meta.(*clients.Client).Account.SubscriptionId + ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) + defer cancel() + + sku := expandAzureRmApiManagementSkuName(d.Get("sku_name").(string)) + + log.Printf("[INFO] preparing arguments for API Management Service creation.") + + id := apimanagementservice.NewServiceID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + + _, err := client.Get(ctx, id) + if err != nil { + return fmt.Errorf("checking for presence of an existing %s: %+v", id, err) + } + + props := apimanagementservice.ApiManagementServiceUpdateProperties{} + payload := apimanagementservice.ApiManagementServiceUpdateParameters{} + + if d.HasChange("sku_name") { + payload.Sku = pointer.To(sku) + } + + if d.HasChange("tags") { + payload.Tags = tags.Expand(d.Get("tags").(map[string]interface{})) + } + + if d.HasChange("public_ip_address_id") { + publicIpAddressId := d.Get("public_ip_address_id").(string) + if publicIpAddressId != "" { + if sku.Name != apimanagementservice.SkuTypePremium && sku.Name != apimanagementservice.SkuTypeDeveloper { + if d.Get("virtual_network_type").(string) == string(apimanagementservice.VirtualNetworkTypeNone) { + return fmt.Errorf("`public_ip_address_id` is only supported when sku type is `Developer` or `Premium`, and the APIM instance is deployed in a virtual network.") + } + } + props.PublicIPAddressId = pointer.To(publicIpAddressId) + } + } + + if d.HasChange("notification_sender_email") { + props.NotificationSenderEmail = pointer.To(d.Get("notification_sender_email").(string)) + } + + if d.HasChange("virtual_network_type") { + virtualNetworkType := d.Get("virtual_network_type").(string) + props.VirtualNetworkType = pointer.To(apimanagementservice.VirtualNetworkType(virtualNetworkType)) + + if virtualNetworkType != string(apimanagementservice.VirtualNetworkTypeNone) { + virtualNetworkConfiguration := expandAzureRmApiManagementVirtualNetworkConfigurations(d) + if virtualNetworkConfiguration == nil { + return fmt.Errorf("You must specify 'virtual_network_configuration' when 'virtual_network_type' is %q", virtualNetworkType) + } + props.VirtualNetworkConfiguration = virtualNetworkConfiguration + } + } + + if d.HasChanges("security", "protocols") { + customProperties, err := expandApiManagementCustomProperties(d, sku.Name == apimanagementservice.SkuTypeConsumption) + if err != nil { + return err + } + props.CustomProperties = pointer.To(customProperties) + } + + if d.HasChange("certificate") { + props.Certificates = expandAzureRmApiManagementCertificates(d) + } + + if d.HasChange("public_network_access_enabled") { + publicNetworkAccess := apimanagementservice.PublicNetworkAccessEnabled + if !d.Get("public_network_access_enabled").(bool) { + publicNetworkAccess = apimanagementservice.PublicNetworkAccessDisabled + } + + props.PublicNetworkAccess = pointer.To(publicNetworkAccess) + } + + if d.HasChange("publisher_name") { + props.PublisherName = pointer.To(d.Get("publisher_name").(string)) + } + + if d.HasChange("publisher_email") { + props.PublisherEmail = pointer.To(d.Get("publisher_email").(string)) + } + + if d.HasChange("hostname_configuration") { + props.HostnameConfigurations = expandAzureRmApiManagementHostnameConfigurations(d) + } + + // intentionally not gated since we specify a default value (of None) in the expand, which we need on updates + if d.HasChange("identity") { + identityRaw := d.Get("identity").([]interface{}) + identity, err := identity.ExpandSystemAndUserAssignedMap(identityRaw) + if err != nil { + return fmt.Errorf("expanding `identity`: %+v", err) + } + payload.Identity = identity + } + + if d.HasChange("additional_location") { + props.AdditionalLocations, err = expandAzureRmApiManagementAdditionalLocations(d, sku) + if err != nil { + return err + } + } + + if d.HasChange("client_certificate_enabled") { + enableClientCertificate := d.Get("client_certificate_enabled").(bool) + if enableClientCertificate && sku.Name != apimanagementservice.SkuTypeConsumption { + return fmt.Errorf("`client_certificate_enabled` is only supported when sku type is `Consumption`") + } + props.EnableClientCertificate = pointer.To(enableClientCertificate) + } + + if d.HasChange("gateway_disabled") { + gateWayDisabled := d.Get("gateway_disabled").(bool) + if gateWayDisabled && props.AdditionalLocations != nil && len(*props.AdditionalLocations) == 0 { + return fmt.Errorf("`gateway_disabled` is only supported when `additional_location` is set") + } + props.DisableGateway = pointer.To(gateWayDisabled) + } + + if d.HasChange("min_api_version") { + props.ApiVersionConstraint = &apimanagementservice.ApiVersionConstraint{ + MinApiVersion: nil, + } + + if v, ok := d.GetOk("min_api_version"); ok { + props.ApiVersionConstraint.MinApiVersion = pointer.To(v.(string)) + } + } + + if d.HasChange("zones") { + if v := d.Get("zones").(*schema.Set).List(); len(v) > 0 { + if sku.Name != apimanagementservice.SkuTypePremium { + return fmt.Errorf("`zones` is only supported when sku type is `Premium`") + } + + if d.Get("public_ip_address_id").(string) == "" { + return fmt.Errorf("`public_ip_address` must be specified when `zones` are provided") + } + zones := zones.ExpandUntyped(v) + payload.Zones = &zones + } + } + + payload.Properties = pointer.To(props) + + if err := client.UpdateThenPoll(ctx, id, payload); err != nil { + return fmt.Errorf("creating/updating %s: %+v", id, err) + } + + d.SetId(id.ID()) + + if d.HasChange("sign_in") { + signInSettingsRaw := d.Get("sign_in").([]interface{}) + if sku.Name == apimanagementservice.SkuTypeConsumption && len(signInSettingsRaw) > 0 { + return fmt.Errorf("`sign_in` is not support for sku tier `Consumption`") + } + if sku.Name != apimanagementservice.SkuTypeConsumption { + signInSettingServiceId := signinsettings.NewServiceID(subscriptionId, id.ResourceGroupName, id.ServiceName) + signInSettings := expandApiManagementSignInSettings(signInSettingsRaw) + signInClient := meta.(*clients.Client).ApiManagement.SignInClient + if _, err := signInClient.CreateOrUpdate(ctx, signInSettingServiceId, signInSettings, signinsettings.CreateOrUpdateOperationOptions{}); err != nil { + return fmt.Errorf(" setting Sign In settings for %s: %+v", id, err) + } + } + } + + if d.HasChange("sign_up") { + signUpSettingsRaw := d.Get("sign_up").([]interface{}) + if sku.Name == apimanagementservice.SkuTypeConsumption && len(signUpSettingsRaw) > 0 { + return fmt.Errorf("`sign_up` is not support for sku tier `Consumption`") + } + if sku.Name != apimanagementservice.SkuTypeConsumption { + signUpSettingServiceId := signupsettings.NewServiceID(subscriptionId, id.ResourceGroupName, id.ServiceName) + signUpSettings := expandApiManagementSignUpSettings(signUpSettingsRaw) + signUpClient := meta.(*clients.Client).ApiManagement.SignUpClient + if _, err := signUpClient.CreateOrUpdate(ctx, signUpSettingServiceId, signUpSettings, signupsettings.CreateOrUpdateOperationOptions{}); err != nil { + return fmt.Errorf(" setting Sign Up settings for %s: %+v", id, err) + } + } + } + + if d.HasChange("delegation") { + delegationSettingsRaw := d.Get("delegation").([]interface{}) + if sku.Name == apimanagementservice.SkuTypeConsumption && len(delegationSettingsRaw) > 0 { + return fmt.Errorf("`delegation` is not support for sku tier `Consumption`") + } + if sku.Name != apimanagementservice.SkuTypeConsumption && len(delegationSettingsRaw) > 0 { + delegationSettingServiceId := delegationsettings.NewServiceID(subscriptionId, id.ResourceGroupName, id.ServiceName) + delegationSettings := expandApiManagementDelegationSettings(delegationSettingsRaw) + delegationClient := meta.(*clients.Client).ApiManagement.DelegationSettingsClient + if _, err := delegationClient.CreateOrUpdate(ctx, delegationSettingServiceId, delegationSettings, delegationsettings.CreateOrUpdateOperationOptions{}); err != nil { + return fmt.Errorf(" setting Delegation settings for %s: %+v", id, err) + } + } + } + + if d.HasChange("policy") { + policyClient := meta.(*clients.Client).ApiManagement.PolicyClient + policiesRaw := d.Get("policy").([]interface{}) + policyContract, err := expandApiManagementPolicies(policiesRaw) + if err != nil { + return err + } + + policyServiceId := policy.NewServiceID(subscriptionId, id.ResourceGroupName, id.ServiceName) + // remove the existing policy + if delResp, err := policyClient.Delete(ctx, policyServiceId, policy.DeleteOperationOptions{}); err != nil { + if !response.WasNotFound(delResp.HttpResponse) { + return fmt.Errorf("removing Policies from %s: %+v", id, err) + } + } + + // then add the new one, if it exists + if policyContract != nil { + if _, err := policyClient.CreateOrUpdate(ctx, policyServiceId, *policyContract, policy.CreateOrUpdateOperationOptions{}); err != nil { + return fmt.Errorf(" setting Policies for %s: %+v", id, err) + } + } + } + + if d.HasChange("tenant_access") { + tenantAccessRaw := d.Get("tenant_access").([]interface{}) + if sku.Name == apimanagementservice.SkuTypeConsumption && len(tenantAccessRaw) > 0 { + return fmt.Errorf("`tenant_access` is not supported for sku tier `Consumption`") + } + if sku.Name != apimanagementservice.SkuTypeConsumption && d.HasChange("tenant_access") { + tenantAccessServiceId := tenantaccess.NewAccessID(subscriptionId, id.ResourceGroupName, id.ServiceName, "access") + tenantAccessInformationParametersRaw := d.Get("tenant_access").([]interface{}) + tenantAccessInformationParameters := expandApiManagementTenantAccessSettings(tenantAccessInformationParametersRaw) + tenantAccessClient := meta.(*clients.Client).ApiManagement.TenantAccessClient + if _, err := tenantAccessClient.Update(ctx, tenantAccessServiceId, tenantAccessInformationParameters, tenantaccess.UpdateOperationOptions{}); err != nil { + return fmt.Errorf(" updating tenant access settings for %s: %+v", id, err) + } + } + } + + return resourceApiManagementServiceRead(d, meta) +} + func resourceApiManagementServiceRead(d *pluginsdk.ResourceData, meta interface{}) error { client := meta.(*clients.Client).ApiManagement.ServiceClient signInClient := meta.(*clients.Client).ApiManagement.SignInClient From c2d48d1deb619a5fc5664b7fd7bfc2c92f2618a4 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Thu, 14 Sep 2023 16:06:08 -0700 Subject: [PATCH 191/336] Update CHANGELOG.md for #23259 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f60287770b3..52aa0b10d2a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ ENHANCEMENTS: BUG FIXES: +* `azurerm_api_management` - split create and update methods [GH-23259] * `azurerm_api_management_backend` - fixing a panic when flattening the `credentials` block [GH-23219] * `azurerm_key_vault_certificate` - fixing a regression where certificates from a custom/unknown issuer would be polled indefinitely [GH-23214] * `azurerm_redis_cache` - prevent sending `redis_configuration.aof_backup_enabled` when the sku is not `Premium` to avoid API error [GH-22774] From d7379f7c23a3dd18cef1e2f5f958e8ef44bb9fc1 Mon Sep 17 00:00:00 2001 From: kt Date: Thu, 14 Sep 2023 18:49:19 -0700 Subject: [PATCH 192/336] v3.73.0 --- .release/provider-schema.json | 2 +- CHANGELOG.md | 52 +++++++++++++++++------------------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/.release/provider-schema.json b/.release/provider-schema.json index e7c97e5d3b45..70d0ce7bae58 100644 --- a/.release/provider-schema.json +++ b/.release/provider-schema.json @@ -1 +1 @@ -{"providerName":"azurerm","schemaVersion":"1","providerSchema":{"schema":{"auxiliary_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":3},"client_certificate":{"type":"TypeString","optional":true,"description":"Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_password":{"type":"TypeString","optional":true,"description":"The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_path":{"type":"TypeString","optional":true,"description":"The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service Principal using a Client Certificate."},"client_id":{"type":"TypeString","optional":true,"description":"The Client ID which should be used."},"client_id_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client ID which should be used."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"client_secret_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"disable_correlation_request_id":{"type":"TypeBool","optional":true,"description":"This will disable the x-ms-correlation-request-id header."},"disable_terraform_partner_id":{"type":"TypeBool","optional":true,"description":"This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified."},"environment":{"type":"TypeString","required":true,"description":"The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public."},"features":{"type":"TypeList","required":true,"elem":{"schema":{"api_management":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"app_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"application_insights":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_generated_rule":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cognitive_account":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_certificates_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_hardware_security_modules_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_managed_hardware_security_module` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_keys_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_secrets_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be permanently deleted (e.g purged), when destroyed"},"recover_soft_deleted_certificates":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be restored, instead of creating new ones"},"recover_soft_deleted_key_vaults":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be restored, instead of creating new ones"},"recover_soft_deleted_keys":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be restored, instead of creating new ones"},"recover_soft_deleted_secrets":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be restored, instead of creating new ones"}}},"maxItems":1},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"permanently_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"managed_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"expand_without_downtime":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_deletion_if_contains_resources":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_cancellation_on_destroy":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"template_deployment":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_nested_items_during_deletion":{"type":"TypeBool","required":true}}},"maxItems":1},"virtual_machine":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_os_disk_on_deletion":{"type":"TypeBool","optional":true,"default":false},"graceful_shutdown":{"type":"TypeBool","optional":true,"default":false},"skip_shutdown_and_force_delete":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"virtual_machine_scale_set":{"type":"TypeList","optional":true,"elem":{"schema":{"force_delete":{"type":"TypeBool","optional":true,"default":false},"roll_instances_when_required":{"type":"TypeBool","required":true},"scale_to_zero_before_deletion":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1,"minItems":1},"metadata_host":{"type":"TypeString","required":true,"description":"The Hostname which should be used for the Azure Metadata Service."},"msi_endpoint":{"type":"TypeString","optional":true,"description":"The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected automatically. "},"oidc_request_token":{"type":"TypeString","optional":true,"description":"The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_request_url":{"type":"TypeString","optional":true,"description":"The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_token":{"type":"TypeString","optional":true,"description":"The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"oidc_token_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"partner_id":{"type":"TypeString","optional":true,"description":"A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution."},"skip_provider_registration":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already registered?"},"storage_use_azuread":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?"},"subscription_id":{"type":"TypeString","optional":true,"description":"The Subscription ID which should be used."},"tenant_id":{"type":"TypeString","optional":true,"description":"The Tenant ID which should be used."},"use_cli":{"type":"TypeBool","optional":true,"default":true,"description":"Allow Azure CLI to be used for Authentication."},"use_msi":{"type":"TypeBool","optional":true,"description":"Allow Managed Service Identity to be used for Authentication."},"use_oidc":{"type":"TypeBool","optional":true,"description":"Allow OpenID Connect to be used for authentication"}},"resources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"country_code":{"type":"TypeString","optional":true,"description":"Country code of the B2C tenant. See https://aka.ms/B2CDataResidency for valid country codes.","computed":true,"forceNew":true},"data_residency_location":{"type":"TypeString","required":true,"description":"Location in which the B2C tenant is hosted and data resides. See https://aka.ms/B2CDataResidency for more information.","forceNew":true},"display_name":{"type":"TypeString","optional":true,"description":"The initial display name of the B2C tenant.","computed":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix.","forceNew":true},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"description":"Billing SKU for the B2C tenant. See https://aka.ms/b2cBilling for more information."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","optional":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"filtered_sync_enabled":{"type":"TypeBool","optional":true,"default":false},"initial_replica_set":{"type":"TypeList","required":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notifications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","optional":true,"default":false},"notify_global_admins":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","required":true},"external_access_enabled":{"type":"TypeBool","optional":true,"default":false},"pfx_certificate":{"type":"TypeString","required":true},"pfx_certificate_password":{"type":"TypeString","required":true},"public_certificate":{"type":"TypeString","computed":true}}},"maxItems":1},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","optional":true,"default":false},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"ntlm_v1_enabled":{"type":"TypeBool","optional":true,"default":false},"sync_kerberos_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_ntlm_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_on_prem_passwords":{"type":"TypeBool","optional":true,"default":false},"tls_v1_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_replica_set":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"external_access_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_trust":{"schema":{"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"trusted_domain_dns_ips":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":2},"trusted_domain_fqdn":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_advanced_threat_protection":{"schema":{"enabled":{"type":"TypeBool","required":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_analysis_services_server":{"schema":{"admin_users":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"backup_blob_container_uri":{"type":"TypeString","optional":true},"enable_power_bi_service":{"type":"TypeBool","optional":true},"ipv4_firewall_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"range_end":{"type":"TypeString","required":true},"range_start":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"querypool_connection_mode":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_full_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_connection":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}}},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_password":{"type":"TypeString","optional":true},"encoded_certificate":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","required":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}},"maxItems":10},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"delegation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"subscriptions_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","optional":true},"user_registration_enabled":{"type":"TypeBool","optional":true,"default":false},"validation_key":{"type":"TypeString","optional":true}}},"maxItems":1},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"management_api_url":{"type":"TypeString","computed":true},"min_api_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_sender_email":{"type":"TypeString","optional":true,"computed":true},"policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}}},"maxItems":1},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocols":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_http2":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"publisher_email":{"type":"TypeString","required":true},"publisher_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scm_url":{"type":"TypeString","computed":true},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_backend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls11":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls11":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_gcm_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_gcm_sha384_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"triple_des_ciphers_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"sign_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"sign_up":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"terms_of_service":{"type":"TypeList","required":true,"elem":{"schema":{"consent_required":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","required":true},"text":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"virtual_network_type":{"type":"TypeString","optional":true,"default":"None"},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_type":{"type":"TypeString","optional":true,"computed":true},"contact":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"content_format":{"type":"TypeString","required":true},"content_value":{"type":"TypeString","required":true},"wsdl_selector":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"license":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"oauth2_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization_server_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true}}},"maxItems":1},"openid_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"openid_provider_name":{"type":"TypeString","required":true}}},"maxItems":1},"path":{"type":"TypeString","optional":true,"computed":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision":{"type":"TypeString","required":true,"forceNew":true},"revision_description":{"type":"TypeString","optional":true},"service_url":{"type":"TypeString","optional":true,"computed":true},"soap_pass_through":{"type":"TypeBool","optional":true,"computed":true},"source_api_id":{"type":"TypeString","optional":true},"subscription_key_parameter_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"header":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true}}},"maxItems":1},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"terms_of_service_url":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"computed":true},"version_description":{"type":"TypeString","optional":true},"version_set_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"method":{"type":"TypeString","required":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"query_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"response":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}},"status_code":{"type":"TypeInt","required":true}}}},"template_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"url_template":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_tag":{"schema":{"api_operation_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_release":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"components":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","required":true},"definitions":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_tag":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_api_tag_description":{"schema":{"api_tag_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"external_documentation_description":{"type":"TypeString","optional":true},"external_documentation_url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"version_header_name":{"type":"TypeString","optional":true},"version_query_name":{"type":"TypeString","optional":true},"versioning_scheme":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_authorization_server":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authorization_endpoint":{"type":"TypeString","required":true},"authorization_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_authentication_method":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_registration_endpoint":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"default_scope":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"grant_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_owner_password":{"type":"TypeString","optional":true},"resource_owner_username":{"type":"TypeString","optional":true},"support_state":{"type":"TypeBool","optional":true},"token_body_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"token_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_backend":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"credentials":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","optional":true},"scheme":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"header":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"query":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true},"service_fabric_cluster":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_id":{"type":"TypeString","optional":true,"computed":true},"client_certificate_thumbprint":{"type":"TypeString","optional":true,"computed":true},"management_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"max_partition_resolution_retries":{"type":"TypeInt","required":true},"server_certificate_thumbprints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"server_x509_name":{"type":"TypeSet","optional":true,"elem":{"schema":{"issuer_certificate_thumbprint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"title":{"type":"TypeString","optional":true},"tls":{"type":"TypeList","optional":true,"elem":{"schema":{"validate_certificate_chain":{"type":"TypeBool","optional":true},"validate_certificate_name":{"type":"TypeBool","optional":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_certificate":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"data":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","computed":true},"key_vault_identity_client_id":{"type":"TypeString","optional":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_custom_domain":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_api_management_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_email_template":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true},"template_name":{"type":"TypeString","required":true,"forceNew":true},"title":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location_data":{"type":"TypeList","required":true,"elem":{"schema":{"city":{"type":"TypeString","optional":true},"district":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_api":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_certificate_authority":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"is_trusted":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_id":{"type":"TypeString","required":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"host_name":{"type":"TypeString","required":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request_client_certificate_enabled":{"type":"TypeBool","optional":true},"tls10_enabled":{"type":"TypeBool","optional":true},"tls11_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_global_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"external_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"custom","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aad":{"schema":{"allowed_tenants":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_tenant":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aadb2c":{"schema":{"allowed_tenant":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authority":{"type":"TypeString","required":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"password_reset_policy":{"type":"TypeString","optional":true},"profile_editing_policy":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_policy":{"type":"TypeString","required":true},"signin_tenant":{"type":"TypeString","required":true},"signup_policy":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_facebook":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_google":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_microsoft":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_twitter":{"schema":{"api_key":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_secret_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_logger":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"application_insights":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"instrumentation_key":{"type":"TypeString","required":true}}},"maxItems":1},"buffered":{"type":"TypeBool","optional":true,"default":true},"description":{"type":"TypeString","optional":true},"eventhub":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_named_value":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","optional":true},"value_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"secret_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_notification_recipient_email":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"email":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_notification_recipient_user":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_openid_connect_provider":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"metadata_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_policy":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"approval_required":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"published":{"type":"TypeBool","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"subscriptions_limit":{"type":"TypeInt","optional":true},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_tag":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_management_product_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_redis_cache":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"cache_location":{"type":"TypeString","optional":true,"default":"default"},"connection_string":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_subscription":{"schema":{"allow_tracing":{"type":"TypeBool","optional":true,"default":true},"api_id":{"type":"TypeString","optional":true,"forceNew":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","optional":true,"computed":true},"product_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true,"computed":true},"state":{"type":"TypeString","optional":true,"default":"submitted"},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_tag":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"confirmation":{"type":"TypeString","optional":true,"forceNew":true},"email":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","required":true},"last_name":{"type":"TypeString","required":true},"note":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","optional":true,"computed":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_identifier":{"type":"TypeString","optional":true}}},"maxItems":1},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","optional":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","optional":true,"default":"free"},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":7,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_feature":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"percentage_filter_value":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"targeting_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_rollout_percentage":{"type":"TypeInt","required":true},"groups":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"rollout_percentage":{"type":"TypeInt","required":true}}}},"users":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"timewindow_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","optional":true},"start":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"computed":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","required":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"kv"},"value":{"type":"TypeString","optional":true,"computed":true},"vault_key_reference":{"type":"TypeString","optional":true}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true},"frequency_unit":{"type":"TypeString","required":true},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false},"retention_period_in_days":{"type":"TypeInt","optional":true,"default":30},"start_time":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_mode":{"type":"TypeString","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_active_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_slot_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate":{"schema":{"app_service_plan_id":{"type":"TypeString","optional":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hosting_environment_profile_id":{"type":"TypeString","computed":true},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"pfx_blob":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate_binding":{"schema":{"app_service_name":{"type":"TypeString","computed":true},"certificate_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","computed":true},"hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","optional":true,"default":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","optional":true,"computed":true},"distinguished_name":{"type":"TypeString","optional":true,"computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","optional":true,"default":2048},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_type":{"type":"TypeString","optional":true,"default":"Standard"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","optional":true,"default":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_custom_hostname_binding":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_environment":{"schema":{"allowed_user_ip_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"front_end_scale_factor":{"type":"TypeInt","optional":true,"default":15},"internal_ip_address":{"type":"TypeString","computed":true},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","optional":true,"default":"I1"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_ip_address":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","optional":true,"default":true},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dedicated_host_count":{"type":"TypeInt","optional":true,"forceNew":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_hybrid_connection":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","required":true},"relay_id":{"type":"TypeString","required":true,"forceNew":true},"relay_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey"},"send_key_value":{"type":"TypeString","computed":true},"service_bus_namespace":{"type":"TypeString","computed":true},"service_bus_suffix":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_managed_certificate":{"schema":{"canonical_name":{"type":"TypeString","computed":true},"custom_hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"is_xenon":{"type":"TypeBool","optional":true},"kind":{"type":"TypeString","optional":true,"default":"Windows","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling":{"type":"TypeBool","optional":true},"reserved":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"size":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_app_service_public_certificate":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"blob":{"type":"TypeString","required":true,"forceNew":true},"certificate_location":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot_custom_hostname_binding":{"schema":{"app_service_slot_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_slot_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"slot_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_source_control":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows or Linux Web App.","forceNew":true},"branch":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The URL for the repository.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`.","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the App use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `false` to enable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`.","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_slot":{"schema":{"branch":{"type":"TypeString","optional":true,"description":"The URL for the repository","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Linux or Windows Web App Slot.","forceNew":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Slot use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `true` to disable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_gateway":{"schema":{"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"autoscale_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"max_capacity":{"type":"TypeInt","optional":true},"min_capacity":{"type":"TypeInt","required":true}}},"maxItems":1},"backend_address_pool":{"type":"TypeSet","required":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"backend_http_settings":{"type":"TypeSet","required":true,"elem":{"schema":{"affinity_cookie_name":{"type":"TypeString","optional":true},"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"connection_draining":{"type":"TypeList","optional":true,"elem":{"schema":{"drain_timeout_sec":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"cookie_based_affinity":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"pick_host_name_from_backend_address":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","required":true},"probe_id":{"type":"TypeString","computed":true},"probe_name":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"request_timeout":{"type":"TypeInt","optional":true,"default":30},"trusted_root_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"enable_http2":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"force_firewall_policy_association":{"type":"TypeBool","optional":true},"frontend_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"private_link_configuration_id":{"type":"TypeString","computed":true},"private_link_configuration_name":{"type":"TypeString","optional":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"minItems":1},"frontend_port":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true}}}},"gateway_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":2},"global":{"type":"TypeList","optional":true,"elem":{"schema":{"request_buffering_enabled":{"type":"TypeBool","required":true},"response_buffering_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"http_listener":{"type":"TypeSet","required":true,"elem":{"schema":{"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"firewall_policy_id":{"type":"TypeString","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_id":{"type":"TypeString","computed":true},"frontend_port_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"require_sni":{"type":"TypeBool","optional":true},"ssl_certificate_id":{"type":"TypeString","computed":true},"ssl_certificate_name":{"type":"TypeString","optional":true},"ssl_profile_id":{"type":"TypeString","computed":true},"ssl_profile_name":{"type":"TypeString","optional":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_link_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true}}}},"probe":{"type":"TypeSet","optional":true,"elem":{"schema":{"host":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"interval":{"type":"TypeInt","required":true},"match":{"type":"TypeList","optional":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"status_code":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"minimum_servers":{"type":"TypeInt","optional":true,"default":0},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"pick_host_name_from_backend_http_settings":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","optional":true},"protocol":{"type":"TypeString","required":true},"timeout":{"type":"TypeInt","required":true},"unhealthy_threshold":{"type":"TypeInt","required":true}}}},"redirect_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"include_path":{"type":"TypeBool","optional":true,"default":false},"include_query_string":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true},"target_listener_id":{"type":"TypeString","computed":true},"target_listener_name":{"type":"TypeString","optional":true},"target_url":{"type":"TypeString","optional":true}}}},"request_routing_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"http_listener_id":{"type":"TypeString","computed":true},"http_listener_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true},"rule_type":{"type":"TypeString","required":true},"url_path_map_id":{"type":"TypeString","computed":true},"url_path_map_name":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rewrite_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"rewrite_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"ignore_case":{"type":"TypeBool","optional":true,"default":false},"negate":{"type":"TypeBool","optional":true,"default":false},"pattern":{"type":"TypeString","required":true},"variable":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"request_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"response_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"rule_sequence":{"type":"TypeInt","required":true},"url":{"type":"TypeList","optional":true,"elem":{"schema":{"components":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","optional":true},"query_string":{"type":"TypeString","optional":true},"reroute":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"ssl_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"ssl_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"ssl_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"ssl_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"trusted_client_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verify_client_cert_issuer_dn":{"type":"TypeBool","optional":true,"default":false}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_client_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"trusted_root_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"url_path_map":{"type":"TypeList","optional":true,"elem":{"schema":{"default_backend_address_pool_id":{"type":"TypeString","computed":true},"default_backend_address_pool_name":{"type":"TypeString","optional":true},"default_backend_http_settings_id":{"type":"TypeString","computed":true},"default_backend_http_settings_name":{"type":"TypeString","optional":true},"default_redirect_configuration_id":{"type":"TypeString","computed":true},"default_redirect_configuration_name":{"type":"TypeString","optional":true},"default_rewrite_rule_set_id":{"type":"TypeString","computed":true},"default_rewrite_rule_set_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"paths":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true}}}}}}},"waf_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group_name":{"type":"TypeString","required":true},"rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}}}}},"enabled":{"type":"TypeBool","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"selector_match_operator":{"type":"TypeString","optional":true}}}},"file_upload_limit_mb":{"type":"TypeInt","optional":true,"default":100},"firewall_mode":{"type":"TypeString","required":true},"max_request_body_size_kb":{"type":"TypeInt","optional":true,"default":128},"request_body_check":{"type":"TypeBool","optional":true,"default":true},"rule_set_type":{"type":"TypeString","optional":true,"default":"OWASP"},"rule_set_version":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","required":true,"forceNew":true},"connection_string":{"type":"TypeString","computed":true},"daily_data_cap_in_gb":{"type":"TypeFloat","optional":true,"computed":true},"daily_data_cap_notifications_disabled":{"type":"TypeBool","optional":true,"computed":true},"disable_ip_masking":{"type":"TypeBool","optional":true,"default":false},"force_customer_storage_for_profiler":{"type":"TypeBool","optional":true,"default":false},"instrumentation_key":{"type":"TypeString","computed":true},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":90},"sampling_percentage":{"type":"TypeFloat","optional":true,"default":100},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_application_insights_analytics_item":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","required":true},"function_alias":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"time_created":{"type":"TypeString","computed":true},"time_modified":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_api_key":{"schema":{"api_key":{"type":"TypeString","computed":true},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"write_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_smart_detection_rule":{"schema":{"additional_email_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"send_emails_to_subscription_owners":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_standard_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","required":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"follow_redirects_enabled":{"type":"TypeBool","optional":true,"default":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"http_verb":{"type":"TypeString","optional":true,"default":"GET"},"parse_dependent_requests_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30},"validation_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"content":{"type":"TypeList","optional":true,"elem":{"schema":{"content_match":{"type":"TypeString","required":true},"ignore_case":{"type":"TypeBool","optional":true,"default":false},"pass_if_text_found":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"expected_status_code":{"type":"TypeInt","optional":true,"default":200},"ssl_cert_remaining_lifetime":{"type":"TypeInt","optional":true},"ssl_check_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"configuration":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook":{"schema":{"category":{"type":"TypeString","optional":true,"default":"workbook"},"data_json":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_id":{"type":"TypeString","optional":true,"default":"azure monitor"},"storage_container_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook_template":{"schema":{"author":{"type":"TypeString","optional":true},"galleries":{"type":"TypeList","required":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","optional":true,"default":0},"resource_type":{"type":"TypeString","optional":true,"default":"Azure Monitor"},"type":{"type":"TypeString","optional":true,"default":"workbook"}}},"minItems":1},"localized":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_data":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster":{"schema":{"agent_public_key_certificate":{"type":"TypeString","required":true,"forceNew":true},"agent_version":{"type":"TypeString","computed":true},"distribution":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"infrastructure":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"offering":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"total_core_count":{"type":"TypeInt","computed":true},"total_node_count":{"type":"TypeInt","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster_extension":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_machine_extension":{"schema":{"arc_machine_id":{"type":"TypeString","required":true,"forceNew":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true,"default":true},"force_update_tag":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_private_link_scope":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"open_enclave_policy_base64":{"type":"TypeString","optional":true},"policy":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"environment_type":{"type":"TypeString","optional":true}}}},"policy_signing_certificate_data":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sev_snp_policy_base64":{"type":"TypeString","optional":true},"sgx_enclave_policy_base64":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tpm_policy_base64":{"type":"TypeString","optional":true},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automanage_configuration":{"schema":{"antimalware":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusions":{"type":"TypeList","optional":true,"elem":{"schema":{"extensions":{"type":"TypeString","optional":true},"paths":{"type":"TypeString","optional":true},"processes":{"type":"TypeString","optional":true}}},"maxItems":1},"real_time_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_day":{"type":"TypeInt","optional":true,"default":8},"scheduled_scan_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_time_in_minutes":{"type":"TypeInt","optional":true,"default":0},"scheduled_scan_type":{"type":"TypeString","optional":true,"default":"Quick"}}},"maxItems":1},"automation_account_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_security_baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true,"default":"ApplyAndAutoCorrect"}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"instant_rp_retention_range_in_days":{"type":"TypeInt","optional":true,"default":5},"policy_name":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"daily_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Days"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_policy_type":{"type":"TypeString","optional":true,"default":"LongTermRetentionPolicy"},"weekly_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Weeks"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"schedule_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule_policy_type":{"type":"TypeString","optional":true,"default":"SimpleSchedulePolicy"},"schedule_run_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"schedule_run_frequency":{"type":"TypeString","optional":true,"default":"Daily"},"schedule_run_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"boot_diagnostics_enabled":{"type":"TypeBool","optional":true,"default":false},"defender_for_cloud_enabled":{"type":"TypeBool","optional":true,"default":false},"guest_configuration_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status_change_alert_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_account":{"schema":{"dsc_primary_access_key":{"type":"TypeString","computed":true},"dsc_secondary_access_key":{"type":"TypeString","computed":true},"dsc_server_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"key_source":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"base64":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"exportable":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"values":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"automation_certificate_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_classic_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_asset_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"subscription_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_service_principal":{"schema":{"application_id":{"type":"TypeString","required":true},"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_thumbprint":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_type":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"field":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"is_encrypted":{"type":"TypeBool","optional":true},"is_optional":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"is_global":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_credential":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_configuration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_embedded":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_verbose":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_nodeconfiguration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"configuration_name":{"type":"TypeString","computed":true},"content_embedded":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_hybrid_runbook_worker":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"ip":{"type":"TypeString","computed":true},"last_seen_date_time":{"type":"TypeString","computed":true},"registration_date_time":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"worker_group_name":{"type":"TypeString","required":true,"forceNew":true},"worker_id":{"type":"TypeString","required":true,"forceNew":true},"worker_name":{"type":"TypeString","computed":true},"worker_type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_hybrid_runbook_worker_group":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"credential_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_job_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"job_schedule_id":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on":{"type":"TypeString","optional":true,"forceNew":true},"runbook_name":{"type":"TypeString","required":true,"forceNew":true},"schedule_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_module":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"module_link":{"type":"TypeList","required":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_python3_package":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_uri":{"type":"TypeString","required":true,"forceNew":true},"content_version":{"type":"TypeString","optional":true,"forceNew":true},"hash_algorithm":{"type":"TypeString","optional":true,"forceNew":true},"hash_value":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_runbook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","optional":true,"computed":true},"description":{"type":"TypeString","optional":true},"draft":{"type":"TypeList","optional":true,"elem":{"schema":{"content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"creation_time":{"type":"TypeString","computed":true},"edit_mode_enabled":{"type":"TypeBool","optional":true},"last_modified_time":{"type":"TypeString","computed":true},"output_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true},"mandatory":{"type":"TypeBool","optional":true,"default":false},"position":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"job_schedule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"job_schedule_id":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_on":{"type":"TypeString","optional":true},"schedule_name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_activity_trace_level":{"type":"TypeInt","optional":true},"log_progress":{"type":"TypeBool","required":true},"log_verbose":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"runbook_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true,"computed":true},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"timezone":{"type":"TypeString","optional":true,"default":"Etc/UTC"},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_software_update_configuration":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"duration":{"type":"TypeString","optional":true,"default":"PT2H"},"error_code":{"type":"TypeString","computed":true},"error_meesage":{"type":"TypeString","computed":true},"error_message":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"non_azure_computer_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operating_system":{"type":"TypeString","optional":true,"computed":true},"post_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"pre_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"advanced_month_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"advanced_week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"creation_time":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"expiry_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"is_enabled":{"type":"TypeBool","optional":true,"default":true},"last_modified_time":{"type":"TypeString","computed":true},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}},"maxItems":1},"next_run":{"type":"TypeString","optional":true,"computed":true},"next_run_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"start_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true,"default":"Etc/UTC"}}},"maxItems":1},"target":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"locations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tag_filter":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeList","optional":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}}},"non_azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"function_alias":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_machine_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_automation_source_control":{"schema":{"automatic_sync":{"type":"TypeBool","optional":true,"default":false},"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"branch":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"folder_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_runbook_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_url":{"type":"TypeString","required":true},"security":{"type":"TypeList","required":true,"elem":{"schema":{"refresh_token":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"source_control_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_watcher":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"etag":{"type":"TypeString","optional":true},"execution_frequency_in_seconds":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script_name":{"type":"TypeString","required":true,"forceNew":true},"script_parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"script_run_on":{"type":"TypeString","required":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_webhook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiry_time":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on_worker_group":{"type":"TypeString","optional":true},"runbook_name":{"type":"TypeString","required":true},"uri":{"type":"TypeString","configMode":"Auto","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"default":3,"forceNew":true},"platform_update_domain_count":{"type":"TypeInt","optional":true,"default":5,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_container_storage_account":{"schema":{"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_file_share":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hourly":{"type":"TypeList","optional":true,"elem":{"schema":{"interval":{"type":"TypeInt","required":true},"start_time":{"type":"TypeString","required":true},"window_duration":{"type":"TypeInt","required":true}}},"maxItems":1},"time":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","required":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hour_duration":{"type":"TypeInt","optional":true},"hour_interval":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","required":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instant_restore_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prefix":{"type":"TypeString","required":true},"suffix":{"type":"TypeString","optional":true}}},"maxItems":1},"instant_restore_retention_days":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_type":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm_workload":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"protection_policy":{"type":"TypeSet","required":true,"elem":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","optional":true},"frequency_in_minutes":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","optional":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"policy_type":{"type":"TypeString","required":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"simple_retention":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1}}}},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeList","required":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1},"workload_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_protected_file_share":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_file_share_name":{"type":"TypeString","required":true,"forceNew":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":80,"read":5,"delete":80,"update":80}},"azurerm_backup_protected_vm":{"schema":{"backup_policy_id":{"type":"TypeString","optional":true},"exclude_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"protection_state":{"type":"TypeString","optional":true,"computed":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":80,"update":120}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","optional":true,"default":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ip_connect_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","optional":true,"default":2},"shareable_link_enabled":{"type":"TypeBool","optional":true,"default":false},"sku":{"type":"TypeString","optional":true,"default":"Basic"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"allowed_authentication_modes":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"account_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1},"node_management_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1}}},"maxItems":1},"pool_allocation_mode":{"type":"TypeString","optional":true,"default":"BatchService"},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_authentication_mode":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_account_node_identity":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"allow_updates":{"type":"TypeBool","optional":true,"default":true},"default_version":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate":{"type":"TypeString","required":true},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","optional":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","required":true,"forceNew":true},"thumbprint_algorithm":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_job":{"schema":{"batch_pool_id":{"type":"TypeString","required":true,"forceNew":true},"common_environment_properties":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"task_retry_maximum":{"type":"TypeInt","optional":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","optional":true,"default":"PT15M"},"formula":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"store_location":{"type":"TypeString","required":true},"store_name":{"type":"TypeString","optional":true},"visibility":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"type":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"data_disks":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"default":"ReadOnly"},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","required":true}}}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"extensions":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","optional":true}}}},"fixed_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"node_deallocation_method":{"type":"TypeString","optional":true},"resize_timeout":{"type":"TypeString","optional":true,"default":"PT15M"},"target_dedicated_nodes":{"type":"TypeInt","optional":true,"default":1},"target_low_priority_nodes":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inter_node_communication":{"type":"TypeString","optional":true,"default":"Enabled"},"license_type":{"type":"TypeString","optional":true},"max_tasks_per_node":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"account_name":{"type":"TypeString","required":true},"blobfuse_options":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"identity_id":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"sas_key":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"azure_file_url":{"type":"TypeString","required":true},"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true}}}},"cifs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"nfs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"dynamic_vnet_assignment_scope":{"type":"TypeString","optional":true,"default":"none","forceNew":true},"endpoint_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port_range":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"access":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","required":true,"forceNew":true},"source_port_ranges":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString","default":"*"}}}}},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"public_address_provisioning_type":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"node_agent_sku_id":{"type":"TypeString","required":true,"forceNew":true},"node_placement":{"type":"TypeList","optional":true,"elem":{"schema":{"policy":{"type":"TypeString","optional":true,"default":"Regional"}}}},"os_disk_placement":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_task":{"type":"TypeList","optional":true,"elem":{"schema":{"command_line":{"type":"TypeString","required":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"run_options":{"type":"TypeString","optional":true},"working_directory":{"type":"TypeString","optional":true}}}},"resource_file":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","optional":true},"blob_prefix":{"type":"TypeString","optional":true},"file_mode":{"type":"TypeString","optional":true},"file_path":{"type":"TypeString","optional":true},"http_url":{"type":"TypeString","optional":true},"storage_container_url":{"type":"TypeString","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"task_retry_maximum":{"type":"TypeInt","optional":true},"user_identity":{"type":"TypeList","required":true,"elem":{"schema":{"auto_user":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","optional":true,"default":"NonAdmin"},"scope":{"type":"TypeString","optional":true,"default":"Task"}}},"maxItems":1},"user_name":{"type":"TypeString","optional":true}}},"maxItems":1},"wait_for_success":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"stop_pending_resize_operation":{"type":"TypeBool","optional":true,"default":false},"storage_image_reference":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"target_node_communication_mode":{"type":"TypeString","optional":true},"task_scheduling_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","optional":true,"computed":true}}}},"user_accounts":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","required":true},"linux_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gid":{"type":"TypeInt","optional":true},"ssh_private_key":{"type":"TypeString","optional":true},"uid":{"type":"TypeInt","optional":true}}}},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"windows_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}}}}}},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_billing_account_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"billing_account_id":{"type":"TypeString","required":true,"forceNew":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_blueprint_assignment":{"schema":{"blueprint_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_exclude_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":200},"lock_exclude_principals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"lock_mode":{"type":"TypeString","optional":true,"default":"None"},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeString","optional":true},"target_subscription_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","computed":true},"version_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_bot_channel_alexa":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skill_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_direct_line_speech":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"cognitive_account_id":{"type":"TypeString","optional":true},"cognitive_service_access_key":{"type":"TypeString","required":true},"cognitive_service_location":{"type":"TypeString","required":true},"custom_speech_model_id":{"type":"TypeString","optional":true},"custom_voice_deployment_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_directline":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site":{"type":"TypeSet","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"enhanced_authentication_enabled":{"type":"TypeBool","optional":true,"default":false},"id":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key2":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"trusted_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"v1_allowed":{"type":"TypeBool","optional":true,"default":true},"v3_allowed":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_email":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"email_address":{"type":"TypeString","required":true},"email_password":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_facebook":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"facebook_application_id":{"type":"TypeString","required":true},"facebook_application_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"page":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_line":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"line_channel":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"secret":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_ms_teams":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"calling_web_hook":{"type":"TypeString","optional":true,"computed":true},"enable_calling":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_slack":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"landing_page_url":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signing_secret":{"type":"TypeString","optional":true},"verification_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_sms":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sms_channel_account_security_id":{"type":"TypeString","required":true},"sms_channel_auth_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_web_chat":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channels_registration":{"schema":{"cmk_key_vault_url":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"icon_url":{"type":"TypeString","optional":true,"computed":true},"isolated_network_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_connection":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeString","optional":true},"service_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_service_azure_bot":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true},"developer_app_insights_key":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_msi_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_type":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_web_app":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint":{"schema":{"content_types_to_compress":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"post_arg_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}}},"fqdn":{"type":"TypeString","computed":true},"geo_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"country_codes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"relative_path":{"type":"TypeString","required":true}}}},"global_delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_compression_enabled":{"type":"TypeBool","optional":true},"is_http_allowed":{"type":"TypeBool","optional":true,"default":true},"is_https_allowed":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimization_type":{"type":"TypeString","optional":true},"origin":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true,"forceNew":true},"http_port":{"type":"TypeInt","optional":true,"default":80,"forceNew":true},"https_port":{"type":"TypeInt","optional":true,"default":443,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"origin_host_header":{"type":"TypeString","optional":true},"origin_path":{"type":"TypeString","optional":true,"computed":true},"probe_path":{"type":"TypeString","optional":true,"computed":true},"profile_name":{"type":"TypeString","required":true,"forceNew":true},"querystring_caching_behaviour":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint_custom_domain":{"schema":{"cdn_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_type":{"type":"TypeString","required":true},"protocol_type":{"type":"TypeString","required":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"user_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","optional":true,"computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"computed":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"dns_zone_id":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tls":{"type":"TypeList","required":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","optional":true,"computed":true},"certificate_type":{"type":"TypeString","optional":true,"default":"ManagedCertificate"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain_association":{"schema":{"cdn_frontdoor_custom_domain_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_route_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin":{"schema":{"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name_check_enabled":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","optional":true,"computed":true},"health_probes_enabled":{"type":"TypeBool","optional":true,"computed":true},"host_name":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","optional":true,"default":80},"https_port":{"type":"TypeInt","optional":true,"default":443},"name":{"type":"TypeString","required":true,"forceNew":true},"origin_host_header":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","optional":true,"default":1},"private_link":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"private_link_target_id":{"type":"TypeString","required":true},"request_message":{"type":"TypeString","optional":true,"default":"Access request for CDN FrontDoor Private Link Origin"},"target_type":{"type":"TypeString","optional":true}}},"maxItems":1},"weight":{"type":"TypeInt","optional":true,"default":500}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"health_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"protocol":{"type":"TypeString","required":true},"request_type":{"type":"TypeString","optional":true,"default":"HEAD"}}},"maxItems":1},"load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","optional":true,"default":50},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","optional":true,"default":10},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","optional":true,"default":120},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route":{"schema":{"cache":{"type":"TypeList","optional":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"content_types_to_compress":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"query_string_caching_behavior":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"query_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"cdn_frontdoor_custom_domain_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true},"cdn_frontdoor_origin_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_origin_path":{"type":"TypeString","optional":true},"cdn_frontdoor_rule_set_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"https_redirect_enabled":{"type":"TypeBool","optional":true,"default":true},"link_to_default_domain":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"supported_protocols":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route_disable_link_to_default_domain":{"schema":{"cdn_frontdoor_custom_domain_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_route_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"route_configuration_override_action":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_behavior":{"type":"TypeString","optional":true},"cache_duration":{"type":"TypeString","optional":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","optional":true},"compression_enabled":{"type":"TypeBool","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true},"query_string_caching_behavior":{"type":"TypeString","optional":true},"query_string_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":100}}},"maxItems":1},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_fragment":{"type":"TypeString","optional":true,"default":""},"destination_hostname":{"type":"TypeString","required":true},"destination_path":{"type":"TypeString","optional":true,"default":""},"query_string":{"type":"TypeString","optional":true,"default":""},"redirect_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":false},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"behavior_on_match":{"type":"TypeString","optional":true,"default":"Continue"},"cdn_frontdoor_rule_set_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_rule_set_name":{"type":"TypeString","computed":true},"conditions":{"type":"TypeList","optional":true,"elem":{"schema":{"client_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"cookie_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"host_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":4},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"is_device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"post_args_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"post_args_name":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString","default":"HTTP"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"server_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"socket_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"ssl_protocol_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":3},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_filename_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_profile_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_frontdoor_security_policy":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"security_policies":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"firewall":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"association":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"domain":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"active":{"type":"TypeBool","computed":true},"cdn_frontdoor_domain_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":500},"patterns_to_match":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}}},"maxItems":1},"cdn_frontdoor_firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account":{"schema":{"custom_question_answering_search_service_id":{"type":"TypeString","optional":true},"custom_question_answering_search_service_key":{"type":"TypeString","optional":true},"custom_subdomain_name":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"dynamic_throttling_enabled":{"type":"TypeBool","optional":true},"endpoint":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metrics_advisor_aad_client_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_aad_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_super_user_name":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_website_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"qna_runtime_endpoint":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"storage":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account_customer_managed_key":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_deployment":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"model":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"format":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"rai_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"scale":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"family":{"type":"TypeString","optional":true,"forceNew":true},"size":{"type":"TypeString","optional":true,"forceNew":true},"tier":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","optional":true,"default":"United States","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","required":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"minItems":1},"certificate_based_security_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"pem_public_key":{"type":"TypeString","required":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_management_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to host this Container App.","forceNew":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The Dapr Application Identifier."},"app_port":{"type":"TypeInt","optional":true,"description":"The port which the application is listening on. This is the same as the `ingress` port."},"app_protocol":{"type":"TypeString","optional":true,"default":"http","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`."}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","optional":true,"default":false,"description":"Should this ingress allow insecure connections?"},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","optional":true,"default":"Disabled","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`"},"certificate_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate."}}},"maxItems":1},"external_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Is this an external Ingress."},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","required":true,"description":"The target port on the container for the Ingress traffic."},"traffic_weight":{"type":"TypeList","required":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"description":"The label to apply to the revision as a name prefix for routing traffic."},"latest_revision":{"type":"TypeBool","optional":true,"default":false,"description":"This traffic Weight relates to the latest stable Container Revision."},"percentage":{"type":"TypeInt","required":true,"description":"The percentage of traffic to send to this revision."},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted."}}}},"transport":{"type":"TypeString","optional":true,"default":"auto","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`"}}},"maxItems":1},"latest_revision_fqdn":{"type":"TypeString","description":"The FQDN of the Latest Revision of the Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"The name for this Container App.","forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true,"description":"ID of the System or User Managed Identity used to pull images from the Container Registry"},"password_secret_name":{"type":"TypeString","optional":true,"description":"The name of the Secret Reference containing the password value for this user on the Container Registry."},"server":{"type":"TypeString","required":true,"description":"The hostname for the Container Registry."},"username":{"type":"TypeString","optional":true,"description":"The username to use for this Container Registry."}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision_mode":{"type":"TypeString","required":true},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeList","required":true,"elem":{"schema":{"args":{"type":"TypeList","optional":true,"description":"A list of args to pass to the container.","elem":{"type":"TypeString"}},"command":{"type":"TypeList","optional":true,"description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`"},"env":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the environment variable for the container."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of the secret that contains the value for this environment variable."},"value":{"type":"TypeString","optional":true,"description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used"}}},"minItems":1},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","required":true,"description":"The image to use to create the container."},"liveness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"initial_delay":{"type":"TypeInt","optional":true,"default":1,"description":"The time in seconds to wait after the container has started before the probe is started."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"memory":{"type":"TypeString","required":true,"description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`"},"name":{"type":"TypeString","required":true,"description":"The name of the container."},"readiness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"success_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`."},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"startup_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"volume_mounts":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Volume to be mounted in the container."},"path":{"type":"TypeString","required":true,"description":"The path in the container at which to mount this volume."}}}}}},"minItems":1},"max_replicas":{"type":"TypeInt","optional":true,"default":10,"description":"The maximum number of replicas for this container."},"min_replicas":{"type":"TypeInt","optional":true,"description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment":{"schema":{"dapr_application_insights_connection_string":{"type":"TypeString","optional":true,"description":"Application Insights connection string used by Dapr to export Service to Service communication telemetry.","forceNew":true},"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","optional":true,"description":"The existing Subnet to use for the Container Apps Control Plane. **NOTE:** The Subnet must have a `/21` or larger address space.","forceNew":true},"internal_load_balancer_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Container Environment operate in Internal Load Balancing Mode? Defaults to `false`. **Note:** can only be set to `true` if `infrastructure_subnet_id` is specified.","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true,"description":"The ID for the Log Analytics Workspace to link this Container Apps Managed Environment to.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment.","forceNew":true},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_certificate":{"schema":{"certificate_blob_base64":{"type":"TypeString","required":true,"description":"The Certificate Private Key as a base64 encoded PFX or PEM.","forceNew":true},"certificate_password":{"type":"TypeString","required":true,"description":"The password for the Certificate.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Environment Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_dapr_component":{"schema":{"component_type":{"type":"TypeString","required":true,"description":"The Dapr Component Type. For example `state.azure.blobstorage`.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Dapr component on.","forceNew":true},"ignore_errors":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Dapr sidecar to continue initialisation if the component fails to load. Defaults to `false`"},"init_timeout":{"type":"TypeString","optional":true,"default":"5s","description":"The component initialisation timeout in ISO8601 format. e.g. `5s`, `2h`, `1m`. Defaults to `5s`."},"metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Metadata configuration item."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of a secret specified in the `secrets` block that contains the value for this metadata configuration item."},"value":{"type":"TypeString","optional":true,"description":"The value for this metadata configuration item."}}},"minItems":1},"name":{"type":"TypeString","required":true,"description":"The name for this Dapr Component.","forceNew":true},"scopes":{"type":"TypeList","optional":true,"description":"A list of scopes to which this component applies. e.g. a Container App's `dapr.app_id` value.","elem":{"type":"TypeString"},"minItems":1},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"version":{"type":"TypeString","required":true,"description":"The version of the component."}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_storage":{"schema":{"access_key":{"type":"TypeString","required":true,"description":"The Storage Account Access Key."},"access_mode":{"type":"TypeString","required":true,"description":"The access mode to connect this storage to the Container App. Possible values include `ReadOnly` and `ReadWrite`.","forceNew":true},"account_name":{"type":"TypeString","required":true,"description":"The Azure Storage Account in which the Share to be used is located.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to which this storage belongs.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name for this Storage.","forceNew":true},"share_name":{"type":"TypeString","required":true,"description":"The name of the Azure Storage Share to use.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_connected_registry":{"schema":{"audit_log_enabled":{"type":"TypeBool","optional":true,"default":false},"client_token_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"log_level":{"type":"TypeString","optional":true,"default":"None"},"mode":{"type":"TypeString","optional":true,"default":"ReadWrite","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"digest":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tag":{"type":"TypeString","optional":true}}}},"parent_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"sync_message_ttl":{"type":"TypeString","optional":true,"default":"P1D"},"sync_schedule":{"type":"TypeString","optional":true,"default":"* * * * *"},"sync_token_id":{"type":"TypeString","required":true,"forceNew":true},"sync_window":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_group":{"schema":{"container":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"forceNew":true},"cpu_limit":{"type":"TypeFloat","optional":true},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"gpu":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"gpu_limit":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"sku":{"type":"TypeString","optional":true}}},"maxItems":1},"image":{"type":"TypeString","required":true,"forceNew":true},"liveness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"memory":{"type":"TypeFloat","required":true,"forceNew":true},"memory_limit":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ports":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"readiness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"diagnostics":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"log_analytics":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"log_type":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_key":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"dns_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"nameservers":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"options":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"search_domains":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"dns_name_label":{"type":"TypeString","optional":true,"forceNew":true},"dns_name_label_reuse_policy":{"type":"TypeString","optional":true,"default":"Unsecure"},"exposed_port":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_registry_credential":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"username":{"type":"TypeString","optional":true,"forceNew":true}}}},"init_container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"ip_address":{"type":"TypeString","computed":true},"ip_address_type":{"type":"TypeString","optional":true,"default":"Public","forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile_id":{"type":"TypeString","optional":true,"computed":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restart_policy":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"subnet_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"anonymous_pull_enabled":{"type":"TypeBool","optional":true},"data_endpoint_enabled":{"type":"TypeBool","optional":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"identity_client_id":{"type":"TypeString","required":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"georeplications":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true},"regional_endpoint_enabled":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_bypass_option":{"type":"TypeString","optional":true,"default":"AzureServices"},"network_rule_set":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_range":{"type":"TypeString","required":true}}}},"virtual_network":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"quarantine_policy_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trust_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_agent_pool":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"default":"S1","forceNew":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task":{"schema":{"agent_pool_name":{"type":"TypeString","optional":true},"agent_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"cpu":{"type":"TypeInt","required":true}}},"maxItems":1},"base_image_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"update_trigger_endpoint":{"type":"TypeString","optional":true},"update_trigger_payload_type":{"type":"TypeString","optional":true}}},"maxItems":1},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"docker_step":{"type":"TypeList","optional":true,"elem":{"schema":{"arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"cache_enabled":{"type":"TypeBool","optional":true,"default":true},"context_access_token":{"type":"TypeString","required":true},"context_path":{"type":"TypeString","required":true},"dockerfile_path":{"type":"TypeString","required":true},"image_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"push_enabled":{"type":"TypeBool","optional":true,"default":true},"secret_arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target":{"type":"TypeString","optional":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"encoded_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_content":{"type":"TypeString","required":true},"value_content":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"file_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_file_path":{"type":"TypeString","required":true},"value_file_path":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"is_system_task":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"log_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"architecture":{"type":"TypeString","optional":true},"os":{"type":"TypeString","required":true},"variant":{"type":"TypeString","optional":true}}},"maxItems":1},"registry_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"custom":{"type":"TypeSet","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"username":{"type":"TypeString","optional":true}}}},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"source_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"expire_in_seconds":{"type":"TypeInt","optional":true},"refresh_token":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"repository_url":{"type":"TypeString","required":true},"source_type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":3600},"timer_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task_schedule_run_now":{"schema":{"container_registry_task_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_map_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_token_password":{"schema":{"container_registry_token_id":{"type":"TypeString","required":true,"forceNew":true},"password1":{"type":"TypeList","required":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1},"password2":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_webhook":{"schema":{"actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"custom_headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"registry_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":""},"service_uri":{"type":"TypeString","required":true},"status":{"type":"TypeString","optional":true,"default":"enabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_account":{"schema":{"access_key_metadata_writes_enabled":{"type":"TypeBool","optional":true,"default":true},"analytical_storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"schema_type":{"type":"TypeString","required":true}}},"maxItems":1},"analytical_storage_enabled":{"type":"TypeBool","optional":true,"default":false},"backup":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"interval_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"retention_in_hours":{"type":"TypeInt","optional":true,"computed":true},"storage_redundancy":{"type":"TypeString","optional":true,"computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"capabilities":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}},"capacity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"total_throughput_limit":{"type":"TypeInt","required":true}}},"maxItems":1},"connection_strings":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"consistency_policy":{"type":"TypeList","required":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","required":true},"max_interval_in_seconds":{"type":"TypeInt","optional":true,"computed":true},"max_staleness_prefix":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"create_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"default_identity_type":{"type":"TypeString","optional":true,"default":"FirstPartyIdentity"},"enable_automatic_failover":{"type":"TypeBool","optional":true,"default":false},"enable_free_tier":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"enable_multiple_write_locations":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeSet","required":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","required":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_range_filter":{"type":"TypeString","optional":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"kind":{"type":"TypeString","optional":true,"default":"GlobalDocumentDB","forceNew":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"mongo_server_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acl_bypass_for_azure_services":{"type":"TypeBool","optional":true,"default":false},"network_acl_bypass_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"offer_type":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"primary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"primary_sql_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"elem":{"schema":{"database":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"collection_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"restore_timestamp_in_utc":{"type":"TypeString","required":true,"forceNew":true},"source_cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"secondary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"secondary_sql_connection_string":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_cassandra_cluster":{"schema":{"authentication_method":{"type":"TypeString","optional":true,"default":"Cassandra"},"client_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_admin_password":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"external_gossip_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"external_seed_node_ip_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"hours_between_backups":{"type":"TypeInt","optional":true,"default":24},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repair_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"3.11","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_datacenter":{"schema":{"availability_zones_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_storage_customer_key_uri":{"type":"TypeString","optional":true},"base64_encoded_yaml_fragment":{"type":"TypeString","optional":true},"cassandra_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"disk_count":{"type":"TypeInt","optional":true},"disk_sku":{"type":"TypeString","optional":true,"default":"P30"},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_customer_key_uri":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"default":3},"sku_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_cosmosdb_cassandra_keyspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_table":{"schema":{"analytical_storage_ttl":{"type":"TypeInt","optional":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cassandra_keyspace_id":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schema":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_key":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"order_by":{"type":"TypeString","required":true}}}},"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"partition_key":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_graph":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"index_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"automatic":{"type":"TypeBool","optional":true,"default":true},"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"included_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"indexing_mode":{"type":"TypeString","required":true},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_collection":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl_seconds":{"type":"TypeInt","optional":true},"index":{"type":"TypeSet","optional":true,"elem":{"schema":{"keys":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","optional":true,"default":false}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shard_key":{"type":"TypeString","optional":true,"forceNew":true},"system_indexes":{"type":"TypeList","computed":true,"elem":{"schema":{"keys":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","computed":true}}}},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_role_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"privilege":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource":{"type":"TypeList","required":true,"elem":{"schema":{"collection_name":{"type":"TypeString","optional":true},"db_name":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"role_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_user_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_notebook_workspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_endpoint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_postgresql_cluster":{"schema":{"administrator_login_password":{"type":"TypeString","required":true},"citus_version":{"type":"TypeString","optional":true,"computed":true},"coordinator_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":true},"coordinator_server_edition":{"type":"TypeString","optional":true,"default":"GeneralPurpose"},"coordinator_storage_quota_in_mb":{"type":"TypeInt","required":true},"coordinator_vcore_count":{"type":"TypeInt","required":true},"earliest_restore_time":{"type":"TypeString","computed":true},"ha_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","required":true},"node_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":false},"node_server_edition":{"type":"TypeString","optional":true,"default":"MemoryOptimized"},"node_storage_quota_in_mb":{"type":"TypeInt","optional":true,"computed":true},"node_vcores":{"type":"TypeInt","optional":true,"computed":true},"point_in_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"preferred_primary_zone":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shards_on_coordinator_enabled":{"type":"TypeBool","optional":true,"computed":true},"source_location":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"sql_version":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_postgresql_coordinator_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_firewall_rule":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_node_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_role":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_sql_container":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"indexing_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"included_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"indexing_mode":{"type":"TypeString","optional":true,"default":"consistent"},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_dedicated_gateway":{"schema":{"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","required":true},"instance_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_function":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_assignment":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"assignable_scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeSet","required":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"CustomRole","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_stored_procedure":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_trigger":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operation":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_table":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_anomaly_alert":{"schema":{"display_name":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"email_subject":{"type":"TypeString","required":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_management_scheduled_action":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name":{"type":"TypeString","required":true},"email_address_sender":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":20,"minItems":1},"email_subject":{"type":"TypeString","required":true},"end_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","optional":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_date":{"type":"TypeString","required":true},"view_id":{"type":"TypeString","required":true,"forceNew":true},"weeks_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_custom_ip_prefix":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"commissioning_enabled":{"type":"TypeBool","optional":true,"default":false},"internet_advertising_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_custom_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roa_validity_end_date":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wan_validation_signed_message":{"type":"TypeString","optional":true,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":540,"read":5,"delete":1020,"update":1020}},"azurerm_custom_provider":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_type":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"routing_type":{"type":"TypeString","optional":true,"default":"Proxy"}}}},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validation":{"type":"TypeSet","optional":true,"elem":{"schema":{"specification":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard_grafana":{"schema":{"api_key_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse"},"azure_monitor_workspace_integrations":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"deterministic_outbound_ip_enabled":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"grafana_version":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory":{"schema":{"customer_managed_key_id":{"type":"TypeString","optional":true},"customer_managed_key_identity_id":{"type":"TypeString","optional":true},"github_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"global_parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_custom_dataset":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_azure_blob":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_binary":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sftp_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_cosmosdb_sqlapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"collection_name":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_delimited_text":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_fs_location":{"type":"TypeList","optional":true,"elem":{"schema":{"file_system":{"type":"TypeString","required":true},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"column_delimiter":{"type":"TypeString","optional":true,"default":","},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"escape_character":{"type":"TypeString","optional":true,"default":"\\"},"first_row_as_header":{"type":"TypeBool","optional":true,"default":false},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"null_value":{"type":"TypeString","optional":true,"default":""},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"quote_character":{"type":"TypeString","optional":true,"default":"\""},"row_delimiter":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_http":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"relative_url":{"type":"TypeString","optional":true},"request_body":{"type":"TypeString","optional":true},"request_method":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_json":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_parquet":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precision":{"type":"TypeInt","optional":true},"scale":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","optional":true}}}},"schema_name":{"type":"TypeString","optional":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_sql_server_table":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_flowlet_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure":{"schema":{"cleanup_enabled":{"type":"TypeBool","optional":true,"computed":true},"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0},"virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure_ssis":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"dual_standby_pair_name":{"type":"TypeString","optional":true},"elastic_pool_name":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"express_custom_setup":{"type":"TypeList","optional":true,"elem":{"schema":{"command_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"password":{"type":"TypeString","optional":true},"target_name":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"component":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_license":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"environment":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"powershell_version":{"type":"TypeString","optional":true}}},"maxItems":1},"express_vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"package_store":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","optional":true},"self_hosted_integration_runtime_name":{"type":"TypeString","required":true},"staging_storage_linked_service_name":{"type":"TypeString","required":true}}},"maxItems":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"public_ips":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2},"subnet_id":{"type":"TypeString","optional":true},"subnet_name":{"type":"TypeString","optional":true},"vnet_id":{"type":"TypeString","optional":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_managed":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true,"default":"Basic"},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","required":true},"vnet_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_self_hosted":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_authorization_key":{"type":"TypeString","computed":true},"rbac_authorization":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"secondary_authorization_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_custom_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_blob_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"connection_string_insecure":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_sas_token":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sas_uri":{"type":"TypeString","optional":true},"service_endpoint":{"type":"TypeString","optional":true},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"service_principal_linked_key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_kind":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_databricks":{"schema":{"access_token":{"type":"TypeString","optional":true},"adb_domain":{"type":"TypeString","required":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"existing_cluster_id":{"type":"TypeString","optional":true},"instance_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"instance_pool_id":{"type":"TypeString","required":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":1}}},"maxItems":1},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"msi_work_space_resource_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"new_cluster_config":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"custom_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"driver_node_type":{"type":"TypeString","optional":true},"init_scripts":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"log_destination":{"type":"TypeString","optional":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":"1"},"node_type":{"type":"TypeString","required":true},"spark_config":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"spark_environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_file_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"file_share":{"type":"TypeString","optional":true},"host":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"user_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_function":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key":{"type":"TypeString","optional":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_search":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted_credential":{"type":"TypeString","computed":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"search_service_key":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_sql_database":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_table_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb":{"schema":{"account_endpoint":{"type":"TypeString","optional":true},"account_key":{"type":"TypeString","optional":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb_mongoapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"server_version_is_32_or_higher":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_data_lake_storage_gen2":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"storage_account_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_key_vault":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_kusto":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"kusto_database_name":{"type":"TypeString","required":true},"kusto_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odata":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odbc":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sftp":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"host":{"type":"TypeString","required":true},"host_key_fingerprint":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true},"skip_host_key_validation":{"type":"TypeBool","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sql_server":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_synapse":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_web":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_managed_private_endpoint":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"fqdns":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_factory_pipeline":{"schema":{"activities_json":{"type":"TypeString","optional":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"concurrency":{"type":"TypeInt","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"moniter_metrics_after_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_blob_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"blob_path_begins_with":{"type":"TypeString","optional":true},"blob_path_ends_with":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"ignore_empty_blobs":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_custom_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"eventgrid_topic_id":{"type":"TypeString","required":true,"forceNew":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_schedule":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","optional":true,"default":"Minute"},"interval":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"pipeline_name":{"type":"TypeString","optional":true,"computed":true},"pipeline_parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":7},"hours":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","optional":true},"weekday":{"type":"TypeString","required":true}}},"minItems":1}}},"maxItems":1,"minItems":1},"start_time":{"type":"TypeString","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_tumbling_window":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"delay":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true,"forceNew":true},"interval":{"type":"TypeInt","required":true,"forceNew":true},"max_concurrency":{"type":"TypeInt","optional":true,"default":50},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retry":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeInt","optional":true,"default":30}}},"maxItems":1},"start_time":{"type":"TypeString","required":true,"forceNew":true},"trigger_dependency":{"type":"TypeSet","optional":true,"elem":{"schema":{"offset":{"type":"TypeString","optional":true},"size":{"type":"TypeString","optional":true},"trigger_name":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_blob_storage":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_disk":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"disk_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_postgresql":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"database_credential_key_vault_secret_id":{"type":"TypeString","optional":true},"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_blob_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"retention_duration":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_disk":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_postgresql":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true},"days_of_week":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"months_of_year":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"scheduled_backup_times":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"weeks_of_month":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redundancy":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_resource_guard":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vault_critical_operation_exclusion_list":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}},"maxItems":1},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","required":true,"forceNew":true},"data_share_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"file_system_name":{"type":"TypeString","required":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"source_platform":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_order":{"schema":{"contact":{"type":"TypeList","required":true,"elem":{"schema":{"company_name":{"type":"TypeString","required":true,"forceNew":true},"emails":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"device_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"return_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"serial_number":{"type":"TypeString","computed":true},"shipment_address":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3},"city":{"type":"TypeString","required":true,"forceNew":true},"country":{"type":"TypeString","required":true,"forceNew":true},"postal_code":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"shipment_history":{"type":"TypeSet","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}},"shipment_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"status":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"info":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_access_connector":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_virtual_network_peering":{"schema":{"address_space_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_address_space_prefixes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_id":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace":{"schema":{"custom_parameters":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"machine_learning_workspace_id":{"type":"TypeString","optional":true,"forceNew":true},"nat_gateway_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"no_public_ip":{"type":"TypeBool","optional":true,"computed":true},"private_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"private_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"public_ip_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"public_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_sku_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vnet_address_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_encryption_set_id":{"type":"TypeString","computed":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"load_balancer_backend_address_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"managed_disk_cmk_rotation_to_latest_version_enabled":{"type":"TypeBool","optional":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"managed_resource_group_id":{"type":"TypeString","computed":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_services_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules_required":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_root_dbfs_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor":{"schema":{"datadog_organization":{"type":"TypeList","required":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true,"forceNew":true},"application_key":{"type":"TypeString","required":true,"forceNew":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","computed":true},"linking_auth_code":{"type":"TypeString","optional":true,"forceNew":true},"linking_client_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"redirect_uri":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"marketplace_subscription_status":{"type":"TypeString","computed":true},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_sso_configuration":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"enterprise_application_id":{"type":"TypeString","required":true},"login_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"default"},"single_sign_on_enabled":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_tag_rule":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"log":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_log_enabled":{"type":"TypeBool","optional":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_log_enabled":{"type":"TypeBool","optional":true},"subscription_log_enabled":{"type":"TypeBool","optional":true}}}},"metric":{"type":"TypeList","optional":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","optional":true,"default":"default"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_hardware_security_module":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"management_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"stamp_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host":{"schema":{"auto_replace_on_failure":{"type":"TypeBool","optional":true,"default":true},"dedicated_host_group_id":{"type":"TypeString","required":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain":{"type":"TypeInt","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_global_vm_shutdown_schedule":{"schema":{"daily_recurrence_time":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"time_in_minutes":{"type":"TypeInt","optional":true,"default":30},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","optional":true,"default":"Premium"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_linux_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_policy":{"schema":{"description":{"type":"TypeString","optional":true},"evaluator_type":{"type":"TypeString","required":true,"forceNew":true},"fact_data":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_set_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threshold":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_schedule":{"schema":{"daily_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true}}},"maxItems":1},"hourly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true}}},"maxItems":1},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"status":{"type":"TypeString","optional":true,"default":"Disabled"},"time_in_minutes":{"type":"TypeInt","optional":true},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Disabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_type":{"type":"TypeString","required":true},"time_zone_id":{"type":"TypeString","required":true},"weekly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_virtual_network":{"schema":{"description":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"use_in_virtual_machine_creation":{"type":"TypeString","optional":true,"default":"Allow"},"use_public_ip_address":{"type":"TypeString","optional":true,"default":"Allow"}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_windows_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventgrid":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventgrid_topic_endpoint":{"type":"TypeString","required":true},"eventgrid_topic_primary_access_key":{"type":"TypeString","required":true},"eventgrid_topic_secondary_access_key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventhub":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_primary_connection_string":{"type":"TypeString","required":true},"eventhub_secondary_connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_servicebus":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_primary_connection_string":{"type":"TypeString","required":true},"servicebus_secondary_connection_string":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_time_series_database_connection":{"schema":{"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_consumer_group_name":{"type":"TypeString","optional":true,"default":"$Default","forceNew":true},"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_uri":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_name":{"type":"TypeString","required":true,"forceNew":true},"kusto_table_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_disk_access":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_type":{"type":"TypeString","optional":true,"default":"EncryptionAtRestWithCustomerKey","forceNew":true},"federated_client_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_disk_pool":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_pool_iscsi_target":{"schema":{"acl_mode":{"type":"TypeString","required":true,"forceNew":true},"disks_pool_id":{"type":"TypeString","required":true,"forceNew":true},"endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","computed":true},"target_iqn":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_iscsi_target_lun":{"schema":{"disk_pool_managed_disk_attachment_id":{"type":"TypeString","required":true,"forceNew":true},"iscsi_target_id":{"type":"TypeString","required":true,"forceNew":true},"lun":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_managed_disk_attachment":{"schema":{"disk_pool_id":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"flags":{"type":"TypeInt","required":true},"tag":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","optional":true,"computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":300},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","required":true,"forceNew":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_azuread_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_email_communication_service":{"schema":{"data_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain":{"schema":{"auto_create_topic_with_first_subscription":{"type":"TypeBool","optional":true,"default":true},"auto_delete_topic_with_last_subscription":{"type":"TypeBool","optional":true,"default":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_eventgrid_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_arm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"system_topic":{"type":"TypeString","required":true,"forceNew":true},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub":{"schema":{"capture_description":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeList","required":true,"elem":{"schema":{"archive_name_format":{"type":"TypeString","required":true},"blob_container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"encoding":{"type":"TypeString","required":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":300},"size_limit_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"skip_empty_archives":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"message_retention":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","required":true,"forceNew":true},"partition_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":300,"update":30}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity":{"type":"TypeInt","optional":true,"default":1},"dedicated_cluster_id":{"type":"TypeString","optional":true,"forceNew":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_throughput_units":{"type":"TypeInt","optional":true,"computed":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rulesets":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_service_access_enabled":{"type":"TypeBool","optional":true},"virtual_network_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"ignore_missing_virtual_network_service_endpoint":{"type":"TypeBool","optional":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":128}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_customer_managed_key":{"schema":{"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"key_vault_key_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_disaster_recovery_config":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_schema_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"schema_compatibility":{"type":"TypeString","required":true,"forceNew":true},"schema_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_express_route_circuit":{"schema":{"allow_classic_operations":{"type":"TypeBool","optional":true,"default":false},"authorization_key":{"type":"TypeString","optional":true},"bandwidth_in_gbps":{"type":"TypeFloat","optional":true},"bandwidth_in_mbps":{"type":"TypeInt","optional":true},"express_route_port_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","optional":true,"forceNew":true},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"family":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_connection":{"schema":{"address_prefix_ipv4":{"type":"TypeString","required":true,"forceNew":true},"address_prefix_ipv6":{"type":"TypeString","optional":true},"authorization_key":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_peering_id":{"type":"TypeString","required":true,"forceNew":true},"peering_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_peering":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_manager_etag":{"type":"TypeString","computed":true},"ipv4_enabled":{"type":"TypeBool","optional":true,"default":true},"ipv6":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"microsoft_peering":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"primary_peer_address_prefix":{"type":"TypeString","required":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_peer_address_prefix":{"type":"TypeString","required":true}}},"maxItems":1},"microsoft_peering_config":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"peer_asn":{"type":"TypeInt","optional":true,"computed":true},"peering_type":{"type":"TypeString","required":true},"primary_azure_port":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_azure_port":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","optional":true},"shared_key":{"type":"TypeString","optional":true},"vlan_id":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"enable_internet_security":{"type":"TypeBool","optional":true},"express_route_circuit_peering_id":{"type":"TypeString","required":true,"forceNew":true},"express_route_gateway_bypass_enabled":{"type":"TypeBool","optional":true,"default":false},"express_route_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"routing_weight":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_gateway":{"schema":{"allow_non_virtual_wan_traffic":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_express_route_port":{"schema":{"bandwidth_in_gbps":{"type":"TypeInt","required":true,"forceNew":true},"billing_type":{"type":"TypeString","optional":true,"computed":true},"encapsulation":{"type":"TypeString","required":true,"forceNew":true},"ethertype":{"type":"TypeString","computed":true},"guid":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"link1":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"link2":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mtu":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_port_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_port_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_federated_identity_credential":{"schema":{"audience":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"issuer":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"firewall_policy_id":{"type":"TypeString","optional":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_ip_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"sku_tier":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","optional":true,"computed":true},"virtual_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","optional":true,"default":1},"virtual_hub_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_firewall_application_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"target_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_nat_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","required":true},"translated_port":{"type":"TypeString","required":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_network_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy":{"schema":{"auto_learn_private_ranges_enabled":{"type":"TypeBool","optional":true},"base_policy_id":{"type":"TypeString","optional":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"proxy_enabled":{"type":"TypeBool","optional":true,"default":false},"servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"explicit_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_pac_file":{"type":"TypeBool","optional":true},"enabled":{"type":"TypeBool","optional":true},"http_port":{"type":"TypeInt","optional":true},"https_port":{"type":"TypeInt","optional":true},"pac_file":{"type":"TypeString","optional":true},"pac_file_port":{"type":"TypeInt","optional":true}}},"maxItems":1},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"insights":{"type":"TypeList","optional":true,"elem":{"schema":{"default_log_analytics_workspace_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"firewall_location":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"retention_in_days":{"type":"TypeInt","optional":true}}},"maxItems":1},"intrusion_detection":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true},"private_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"signature_overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"state":{"type":"TypeString","optional":true}}}},"traffic_bypass":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"source_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"sql_redirect_allowed":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","optional":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"threat_intelligence_mode":{"type":"TypeString","optional":true,"default":"Alert"},"tls_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_secret_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy_rule_collection_group":{"schema":{"application_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"terminate_tls":{"type":"TypeBool","optional":true},"web_categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_address":{"type":"TypeString","optional":true},"destination_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","optional":true},"translated_fqdn":{"type":"TypeString","optional":true},"translated_port":{"type":"TypeInt","required":true}}},"minItems":1}}},"minItems":1},"network_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"priority":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_fluid_relay_server":{"schema":{"frs_tenant_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"orderer_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_frontdoor":{"schema":{"backend_pool":{"type":"TypeList","required":true,"elem":{"schema":{"backend":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_header":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","required":true},"https_port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"weight":{"type":"TypeInt","optional":true,"default":50}}},"maxItems":500},"health_probe_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"load_balancing_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"backend_pool_health_probe":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"id":{"type":"TypeString","computed":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":120},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"probe_method":{"type":"TypeString","optional":true,"default":"GET"},"protocol":{"type":"TypeString","optional":true,"default":"Http"}}},"maxItems":5000},"backend_pool_health_probes":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_milliseconds":{"type":"TypeInt","optional":true,"default":0},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":2}}},"maxItems":5000},"backend_pool_load_balancing_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pools_send_receive_timeout_seconds":{"type":"TypeInt","optional":true,"default":60},"enforce_backend_pools_certificate_name_check":{"type":"TypeBool","required":true}}}},"backend_pools":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"cname":{"type":"TypeString","computed":true},"explicit_resource_order":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_pool_health_probe_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"routing_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"friendly_name":{"type":"TypeString","optional":true},"frontend_endpoint":{"type":"TypeList","required":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"session_affinity_ttl_seconds":{"type":"TypeInt","optional":true,"default":0},"web_application_firewall_policy_link_id":{"type":"TypeString","optional":true}}},"maxItems":500},"frontend_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"header_frontdoor_id":{"type":"TypeString","computed":true},"load_balancer_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_rule":{"type":"TypeList","required":true,"elem":{"schema":{"accepted_protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":2},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pool_name":{"type":"TypeString","required":true},"cache_duration":{"type":"TypeString","optional":true},"cache_enabled":{"type":"TypeBool","optional":true,"default":false},"cache_query_parameter_strip_directive":{"type":"TypeString","optional":true,"default":"StripAll"},"cache_query_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"cache_use_dynamic_compression":{"type":"TypeBool","optional":true,"default":false},"custom_forwarding_path":{"type":"TypeString","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"HttpsOnly"}}},"maxItems":1},"frontend_endpoints":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":500},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"redirect_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_fragment":{"type":"TypeString","optional":true},"custom_host":{"type":"TypeString","optional":true},"custom_path":{"type":"TypeString","optional":true},"custom_query_string":{"type":"TypeString","optional":true},"redirect_protocol":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":500},"routing_rules":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_custom_https_configuration":{"schema":{"custom_https_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_key_vault_certificate_secret_name":{"type":"TypeString","optional":true},"azure_key_vault_certificate_secret_version":{"type":"TypeString","optional":true},"azure_key_vault_certificate_vault_id":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","optional":true,"default":"FrontDoor"},"minimum_tls_version":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true},"provisioning_substate":{"type":"TypeString","computed":true}}},"maxItems":1},"custom_https_provisioning_enabled":{"type":"TypeBool","required":true},"frontend_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_frontdoor_rules_engine":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"frontdoor_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"request_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100},"response_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100}}},"maxItems":1},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transform":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":6},"value":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"variable":{"type":"TypeString","optional":true}}},"maxItems":100},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true}}},"maxItems":100}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_cert_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"","forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_function_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_function":{"schema":{"config_json":{"type":"TypeString","required":true,"description":"The config for this Function in JSON format."},"config_url":{"type":"TypeString","description":"The URL of the configuration JSON.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this function be enabled. Defaults to `true`."},"file":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"description":"The content of the file.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The filename of the file to be uploaded.","forceNew":true}}},"minItems":1},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App in which this function should reside.","forceNew":true},"invocation_url":{"type":"TypeString","description":"The invocation URL.","computed":true},"language":{"type":"TypeString","optional":true,"description":"The language the Function is written in."},"name":{"type":"TypeString","required":true,"description":"The name of the function.","forceNew":true},"script_root_path_url":{"type":"TypeString","description":"The Script root path URL.","computed":true},"script_url":{"type":"TypeString","description":"The script URL.","computed":true},"secrets_file_url":{"type":"TypeString","description":"The URL for the Secrets File.","computed":true},"test_data":{"type":"TypeString","optional":true,"description":"The test data for the function."},"test_data_url":{"type":"TypeString","description":"The Test data URL.","computed":true},"url":{"type":"TypeString","description":"The function URL.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_hybrid_connection":{"schema":{"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App for this Hybrid Connection.","forceNew":true},"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_slot":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"function_app_name":{"type":"TypeString","required":true,"forceNew":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application":{"schema":{"description":{"type":"TypeString","optional":true},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true},"gallery_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true},"release_note_uri":{"type":"TypeString","optional":true},"supported_os_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application_version":{"schema":{"enable_health_check":{"type":"TypeBool","optional":true,"default":false},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_application_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"manage_action":{"type":"TypeList","required":true,"elem":{"schema":{"install":{"type":"TypeString","required":true,"forceNew":true},"remove":{"type":"TypeString","required":true,"forceNew":true},"update":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"default_configuration_link":{"type":"TypeString","optional":true,"forceNew":true},"media_link":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_services_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hdinsight_hadoop_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hadoop":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"edge_node":{"type":"TypeList","optional":true,"elem":{"schema":{"https_endpoints":{"type":"TypeList","optional":true,"elem":{"schema":{"access_modes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_port":{"type":"TypeInt","optional":true},"disable_gateway_auth":{"type":"TypeBool","optional":true},"private_ip_address":{"type":"TypeString","optional":true},"sub_domain_suffix":{"type":"TypeString","optional":true}}}},"install_script_action":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"target_instance_count":{"type":"TypeInt","required":true},"uninstall_script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"vm_size":{"type":"TypeString","required":true}}},"maxItems":1},"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_hbase_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hbase":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_interactive_query_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"interactive_hive":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_kafka_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"kafka":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rest_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"security_group_id":{"type":"TypeString","required":true,"forceNew":true},"security_group_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kafka_management_node":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"number_of_disks_per_node":{"type":"TypeInt","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_spark_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"spark":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_healthbot":{"schema":{"bot_management_portal_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"authority":{"type":"TypeString","required":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"configuration_export_storage_account_name":{"type":"TypeString","optional":true},"container_registry_login_server_url":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"credentials_allowed":{"type":"TypeBool","optional":true,"default":false},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","optional":true,"default":"fhir-R4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"oci_artifact":{"type":"TypeList","optional":true,"elem":{"schema":{"digest":{"type":"TypeString","optional":true},"image_name":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_medtech_service_fhir_destination":{"schema":{"destination_fhir_mapping_json":{"type":"TypeString","required":true},"destination_fhir_service_id":{"type":"TypeString","required":true},"destination_identity_resolution_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"medtech_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"audience":{"type":"TypeString","optional":true},"authority":{"type":"TypeString","optional":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","optional":true},"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","optional":true,"forceNew":true},"cosmosdb_throughput":{"type":"TypeInt","optional":true,"default":1000},"kind":{"type":"TypeString","optional":true,"default":"fhir"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache":{"schema":{"automatically_rotate_key_to_latest_enabled":{"type":"TypeBool","optional":true},"cache_size_in_gb":{"type":"TypeInt","required":true,"forceNew":true},"default_access_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1}}},"maxItems":1,"minItems":1},"directory_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_netbios_name":{"type":"TypeString","required":true},"dns_primary_ip":{"type":"TypeString","required":true},"dns_secondary_ip":{"type":"TypeString","optional":true},"domain_name":{"type":"TypeString","required":true},"domain_netbios_name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"directory_flat_file":{"type":"TypeList","optional":true,"elem":{"schema":{"group_file_uri":{"type":"TypeString","required":true},"password_file_uri":{"type":"TypeString","required":true}}},"maxItems":1},"directory_ldap":{"type":"TypeList","optional":true,"elem":{"schema":{"base_dn":{"type":"TypeString","required":true},"bind":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dn":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_validation_uri":{"type":"TypeString","optional":true},"download_certificate_automatically":{"type":"TypeBool","optional":true},"encrypted":{"type":"TypeBool","optional":true},"server":{"type":"TypeString","required":true}}},"maxItems":1},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"search_domain":{"type":"TypeString","optional":true},"servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mtu":{"type":"TypeInt","optional":true,"default":1500},"name":{"type":"TypeString","required":true,"forceNew":true},"ntp_server":{"type":"TypeString","optional":true,"default":"time.windows.com"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hpc_cache_access_policy":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1},"hpc_cache_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_nfs_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_nfs_target":{"schema":{"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_junction":{"type":"TypeSet","required":true,"elem":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"namespace_path":{"type":"TypeString","required":true},"nfs_export":{"type":"TypeString","required":true},"target_path":{"type":"TypeString","optional":true,"default":""}}},"maxItems":10,"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"target_host_name":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"lun":{"type":"TypeInt","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}}},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"os_state":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_virtual_machine_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_integration_service_environment":{"schema":{"access_endpoint_type":{"type":"TypeString","required":true,"forceNew":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Developer_0"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":4,"minItems":4},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_iot_security_device_group":{"schema":{"allow_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_from_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"connection_to_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"local_users_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"processes_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"range_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"max":{"type":"TypeInt","required":true},"min":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_security_solution":{"schema":{"additional_workspace":{"type":"TypeSet","optional":true,"elem":{"schema":{"data_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}}}},"disabled_data_sources":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events_to_export":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"iothub_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"log_unmasked_ips_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"query_for_resources":{"type":"TypeString","optional":true,"computed":true},"query_subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"recommendations_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_authentication":{"type":"TypeBool","optional":true,"default":true},"agent_send_unutilized_msg":{"type":"TypeBool","optional":true,"default":true},"baseline":{"type":"TypeBool","optional":true,"default":true},"edge_hub_mem_optimize":{"type":"TypeBool","optional":true,"default":true},"edge_logging_option":{"type":"TypeBool","optional":true,"default":true},"inconsistent_module_settings":{"type":"TypeBool","optional":true,"default":true},"install_agent":{"type":"TypeBool","optional":true,"default":true},"ip_filter_deny_all":{"type":"TypeBool","optional":true,"default":true},"ip_filter_permissive_rule":{"type":"TypeBool","optional":true,"default":true},"open_ports":{"type":"TypeBool","optional":true,"default":true},"permissive_firewall_policy":{"type":"TypeBool","optional":true,"default":true},"permissive_input_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"permissive_output_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"privileged_docker_options":{"type":"TypeBool","optional":true,"default":true},"shared_credentials":{"type":"TypeBool","optional":true,"default":true},"vulnerable_tls_cipher_suite":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_access_policy":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_object_id":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_eventhub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_iothub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_gen2_environment":{"schema":{"data_access_fqdn":{"type":"TypeString","computed":true},"id_properties":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage":{"type":"TypeList","required":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"warm_store_data_retention_time":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_reference_data_set":{"schema":{"data_string_comparison_behavior":{"type":"TypeString","optional":true,"default":"Ordinal","forceNew":true},"key_property":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_standard_environment":{"schema":{"data_retention_time":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_limit_exceeded_behavior":{"type":"TypeString","optional":true,"default":"PurgeOldData"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"ST1"},"sub_domain":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application_network_rule_set":{"schema":{"apply_to_device":{"type":"TypeBool","optional":true,"default":true},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"iotcentral_application_id":{"type":"TypeString","required":true,"forceNew":true},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub":{"schema":{"cloud_to_device":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"feedback":{"type":"TypeList","optional":true,"elem":{"schema":{"lock_duration":{"type":"TypeString","optional":true,"default":"PT60S"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"time_to_live":{"type":"TypeString","optional":true,"default":"PT1H"}}}},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10}}},"maxItems":1},"endpoint":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"enrichment":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":10},"event_hub_events_endpoint":{"type":"TypeString","computed":true},"event_hub_events_namespace":{"type":"TypeString","computed":true},"event_hub_events_path":{"type":"TypeString","computed":true},"event_hub_operations_endpoint":{"type":"TypeString","computed":true},"event_hub_operations_path":{"type":"TypeString","computed":true},"event_hub_partition_count":{"type":"TypeInt","optional":true,"computed":true},"event_hub_retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"fallback_route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","optional":true,"computed":true},"endpoint_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}}},"maxItems":1},"file_upload":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"computed":true},"identity_id":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"apply_to_builtin_eventhub_endpoint":{"type":"TypeBool","optional":true,"default":false},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}},"shared_access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"key_name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_consumer_group":{"schema":{"eventhub_endpoint_name":{"type":"TypeString","required":true,"forceNew":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_account":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_instance":{"schema":{"device_update_account_id":{"type":"TypeString","required":true,"forceNew":true},"diagnostic_enabled":{"type":"TypeBool","optional":true,"default":false},"diagnostic_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","optional":true,"default":"Hashed"},"data_residency_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"ip_filter_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"target":{"type":"TypeString","optional":true}}}},"linked_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_weight":{"type":"TypeInt","optional":true,"default":1},"apply_allocation_policy":{"type":"TypeBool","optional":true,"default":true},"connection_string":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_operations_host_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iot_dps_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"enrollment_read":{"type":"TypeBool","optional":true,"default":false},"enrollment_write":{"type":"TypeBool","optional":true,"default":false},"iothub_dps_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registration_read":{"type":"TypeBool","optional":true,"default":false},"registration_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_config":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_eventhub":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_queue":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_topic":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_storage_container":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_enrichment":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":100},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"key":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_fallback_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_file_upload":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"lock_duration":{"type":"TypeString","optional":true,"default":"PT1M"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications_enabled":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"default":"PT1H"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_shared_access_policy":{"schema":{"device_connect":{"type":"TypeBool","optional":true,"default":false},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registry_read":{"type":"TypeBool","optional":true,"default":false},"registry_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_connect":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"firewall_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group_cidr":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"ip_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","optional":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1024},"contact":{"type":"TypeSet","optional":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"enable_rbac_authorization":{"type":"TypeBool","optional":true},"enabled_for_deployment":{"type":"TypeBool","optional":true},"enabled_for_disk_encryption":{"type":"TypeBool","optional":true},"enabled_for_template_deployment":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_protection_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_access_policy":{"schema":{"application_id":{"type":"TypeString","optional":true,"forceNew":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true,"forceNew":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate":{"schema":{"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"contents":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate_attribute":{"type":"TypeList","computed":true,"elem":{"schema":{"created":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"expires":{"type":"TypeString","computed":true},"not_before":{"type":"TypeString","computed":true},"recovery_level":{"type":"TypeString","computed":true},"updated":{"type":"TypeString","computed":true}}}},"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"key_properties":{"type":"TypeList","required":true,"elem":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true},"exportable":{"type":"TypeBool","required":true},"key_size":{"type":"TypeInt","optional":true,"computed":true},"key_type":{"type":"TypeString","required":true},"reuse_key":{"type":"TypeBool","required":true}}},"maxItems":1},"lifetime_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","optional":true},"lifetime_percentage":{"type":"TypeInt","optional":true}}},"maxItems":1}}}},"secret_properties":{"type":"TypeList","required":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true}}},"maxItems":1},"x509_certificate_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","required":true},"subject_alternative_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dns_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"validity_in_months":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":30,"delete":30,"update":30}},"azurerm_key_vault_certificate_contacts":{"schema":{"contact":{"type":"TypeSet","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","optional":true},"admin":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","optional":true},"last_name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_id":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"provider_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"e":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","optional":true},"key_opts":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","optional":true,"forceNew":true},"key_type":{"type":"TypeString","required":true,"forceNew":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"rotation_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"automatic":{"type":"TypeList","optional":true,"elem":{"schema":{"time_after_creation":{"type":"TypeString","optional":true},"time_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"expire_after":{"type":"TypeString","optional":true},"notify_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_domain_encrypted_data":{"type":"TypeString","computed":true},"security_domain_key_vault_certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10,"minItems":3},"security_domain_quorum":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":30}},"azurerm_key_vault_managed_storage_account":{"schema":{"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"regenerate_key_automatically":{"type":"TypeBool","optional":true,"default":false},"regeneration_period":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_managed_storage_account_sas_token_definition":{"schema":{"managed_storage_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sas_template_uri":{"type":"TypeString","required":true},"sas_type":{"type":"TypeString","required":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validity_period":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","optional":true,"elem":{"schema":{"connector_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_name":{"type":"TypeString","required":true}}},"maxItems":1},"api_server_access_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true},"vnet_integration_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"api_server_authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auto_scaler_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"balance_similar_node_groups":{"type":"TypeBool","optional":true,"default":false},"empty_bulk_delete_max":{"type":"TypeString","optional":true,"computed":true},"expander":{"type":"TypeString","optional":true,"default":"random"},"max_graceful_termination_sec":{"type":"TypeString","optional":true,"computed":true},"max_node_provisioning_time":{"type":"TypeString","optional":true,"default":"15m"},"max_unready_nodes":{"type":"TypeInt","optional":true,"default":3},"max_unready_percentage":{"type":"TypeFloat","optional":true,"default":45},"new_pod_scale_up_delay":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_add":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_delete":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_failure":{"type":"TypeString","optional":true,"computed":true},"scale_down_unneeded":{"type":"TypeString","optional":true,"computed":true},"scale_down_unready":{"type":"TypeString","optional":true,"computed":true},"scale_down_utilization_threshold":{"type":"TypeString","optional":true,"computed":true},"scan_interval":{"type":"TypeString","optional":true,"computed":true},"skip_nodes_with_local_storage":{"type":"TypeBool","optional":true,"default":true},"skip_nodes_with_system_pods":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"automatic_channel_upgrade":{"type":"TypeString","optional":true},"azure_active_directory_role_based_access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","optional":true},"client_app_id":{"type":"TypeString","optional":true},"managed":{"type":"TypeBool","optional":true},"server_app_id":{"type":"TypeString","optional":true},"server_app_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"azure_policy_enabled":{"type":"TypeBool","optional":true},"confidential_computing":{"type":"TypeList","optional":true,"elem":{"schema":{"sgx_quote_helper_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"custom_ca_trust_certificates_base64":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"default_node_pool":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true},"enable_node_public_ip":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false},"cpu_cfs_quota_period":{"type":"TypeString","optional":true},"cpu_manager_policy":{"type":"TypeString","optional":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true},"pod_max_pid":{"type":"TypeInt","optional":true},"topology_manager_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"linux_os_config":{"type":"TypeList","optional":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"only_critical_addons_enabled":{"type":"TypeBool","optional":true},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed"},"os_sku":{"type":"TypeString","optional":true,"computed":true},"pod_subnet_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"temporary_name_for_rotation":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"VirtualMachineScaleSets","forceNew":true},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true},"vnet_subnet_id":{"type":"TypeString","optional":true},"workload_runtime":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix_private_cluster":{"type":"TypeString","optional":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_pod_security_policy":{"type":"TypeBool","optional":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","optional":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"http_proxy_config":{"type":"TypeList","optional":true,"elem":{"schema":{"http_proxy":{"type":"TypeString","optional":true,"forceNew":true},"https_proxy":{"type":"TypeString","optional":true,"forceNew":true},"no_proxy":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trusted_ca":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_cleaner_enabled":{"type":"TypeBool","optional":true,"default":false},"image_cleaner_interval_hours":{"type":"TypeInt","optional":true,"default":48},"ingress_application_gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","optional":true},"gateway_name":{"type":"TypeString","optional":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"key_management_service":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_network_access":{"type":"TypeString","optional":true,"default":"Public"}}},"maxItems":1},"key_vault_secrets_provider":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"secret_rotation_interval":{"type":"TypeString","optional":true,"default":"2m"}}},"maxItems":1},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"object_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"kubernetes_version":{"type":"TypeString","optional":true,"computed":true},"linux_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_username":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeList","required":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"local_account_disabled":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"hours":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"minItems":1}}}},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}}}},"maxItems":1},"maintenance_window_auto_upgrade":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"maintenance_window_node_os":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"microsoft_defender":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true}}},"maxItems":1},"monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"annotations_allowed":{"type":"TypeString","optional":true},"labels_allowed":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"docker_bridge_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ebpf_data_plane":{"type":"TypeString","optional":true},"ip_versions":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"load_balancer_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":30},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true},"managed_outbound_ipv6_count":{"type":"TypeInt","optional":true,"computed":true},"outbound_ip_address_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ip_prefix_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ports_allocated":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"load_balancer_sku":{"type":"TypeString","optional":true,"default":"standard","forceNew":true},"nat_gateway_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"network_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"network_plugin":{"type":"TypeString","required":true,"forceNew":true},"network_plugin_mode":{"type":"TypeString","optional":true},"network_policy":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"pod_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pod_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"service_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_os_channel_upgrade":{"type":"TypeString","optional":true},"node_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","optional":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","optional":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"open_service_mesh_enabled":{"type":"TypeBool","optional":true},"portal_fqdn":{"type":"TypeString","computed":true},"private_cluster_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"private_cluster_public_fqdn_enabled":{"type":"TypeBool","optional":true,"default":false},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"private_fqdn":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_based_access_control_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"run_command_enabled":{"type":"TypeBool","optional":true,"default":true},"service_mesh_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true}}},"maxItems":1},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"storage_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"disk_driver_version":{"type":"TypeString","optional":true,"default":"v1"},"file_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"snapshot_controller_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"web_app_routing":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_zone_id":{"type":"TypeString","required":true},"web_app_routing_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"windows_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"gmsa":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_server":{"type":"TypeString","required":true},"root_domain":{"type":"TypeString","required":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true}}},"maxItems":1},"workload_autoscaler_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"keda_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_controlled_values":{"type":"TypeString","computed":true},"vertical_pod_autoscaler_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_update_mode":{"type":"TypeString","computed":true}}},"maxItems":1},"workload_identity_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_kubernetes_cluster_extension":{"schema":{"aks_assigned_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true,"forceNew":true},"enable_node_public_ip":{"type":"TypeBool","optional":true,"forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true,"forceNew":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"cpu_cfs_quota_period":{"type":"TypeString","optional":true,"forceNew":true},"cpu_manager_policy":{"type":"TypeString","optional":true,"forceNew":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"pod_max_pid":{"type":"TypeInt","optional":true,"forceNew":true},"topology_manager_policy":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"linux_os_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true,"forceNew":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","optional":true,"default":"User"},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed","forceNew":true},"os_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"Linux","forceNew":true},"pod_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"spot_max_price":{"type":"TypeFloat","optional":true,"default":-1,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"vnet_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"windows_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"outbound_nat_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"workload_runtime":{"type":"TypeString","optional":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kubernetes_cluster_trusted_access_role_binding":{"schema":{"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_fleet_manager":{"schema":{"hub_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dns_prefix":{"type":"TypeString","required":true},"fqdn":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true}}},"maxItems":1},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_attached_database_configuration":{"schema":{"attached_database_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"cluster_resource_id":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_principal_modification_kind":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"elem":{"schema":{"external_tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"external_tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster":{"schema":{"allowed_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allowed_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"auto_stop_enabled":{"type":"TypeBool","optional":true,"default":true},"data_ingestion_uri":{"type":"TypeString","computed":true},"disk_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"double_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"engine":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"language_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimized_auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum_instances":{"type":"TypeInt","required":true},"minimum_instances":{"type":"TypeInt","required":true}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"public_ip_type":{"type":"TypeString","optional":true,"default":"IPv4"},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"streaming_ingestion_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_external_tenants":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true},"virtual_network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_management_public_ip_id":{"type":"TypeString","required":true},"engine_public_ip_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_customer_managed_key":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"user_identity":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_cluster_managed_private_endpoint":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_id":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_region":{"type":"TypeString","optional":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cosmosdb_data_connection":{"schema":{"cosmosdb_container_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_id":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retrieval_start_date":{"type":"TypeString","optional":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"hot_cache_period":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_database_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_eventgrid_data_connection":{"schema":{"blob_storage_event_type":{"type":"TypeString","optional":true,"default":"Microsoft.Storage.BlobCreated"},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"eventgrid_resource_id":{"type":"TypeString","optional":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","optional":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skip_first_record":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_eventhub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"compression":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_iothub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_script":{"schema":{"continue_on_errors_enabled":{"type":"TypeBool","optional":true,"default":false},"database_id":{"type":"TypeString","required":true,"forceNew":true},"force_an_update_when_value_changed":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sas_token":{"type":"TypeString","optional":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_lab":{"schema":{"auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"lab_plan_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","computed":true},"public_ip_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roster":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_group_id":{"type":"TypeString","optional":true},"lms_instance":{"type":"TypeString","optional":true},"lti_client_id":{"type":"TypeString","optional":true},"lti_context_id":{"type":"TypeString","optional":true},"lti_roster_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"security":{"type":"TypeList","required":true,"elem":{"schema":{"open_access_enabled":{"type":"TypeBool","required":true},"registration_code":{"type":"TypeString","computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title":{"type":"TypeString","required":true},"virtual_machine":{"type":"TypeList","required":true,"elem":{"schema":{"additional_capability_gpu_drivers_installed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"admin_user":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"create_option":{"type":"TypeString","optional":true,"default":"Image","forceNew":true},"image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"non_admin_user":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"shared_password_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_lab_service_plan":{"schema":{"allowed_regions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":28,"minItems":1},"default_auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"default_connection":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true},"web_rdp_access":{"type":"TypeString","optional":true},"web_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"default_network_subnet_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_gallery_id":{"type":"TypeString","optional":true},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"instructions":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_schedule":{"schema":{"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"stop_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_user":{"schema":{"additional_usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"},"email":{"type":"TypeString","required":true,"forceNew":true},"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb":{"schema":{"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"id":{"type":"TypeString","computed":true},"inbound_nat_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_version":{"type":"TypeString","optional":true,"computed":true},"public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"computed":true},"subnet_id":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool":{"schema":{"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tunnel_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier":{"type":"TypeInt","required":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"virtual_network_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool_address":{"schema":{"backend_address_ip_configuration_id":{"type":"TypeString","optional":true,"description":"For global load balancer, user needs to specify the `backend_address_ip_configuration_id` of the added regional load balancers"},"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"description":"For regional load balancer, user needs to specify `virtual_network_id` and `ip_address`"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_pool":{"schema":{"backend_port":{"type":"TypeInt","required":true},"floating_ip_enabled":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_end":{"type":"TypeInt","required":true},"frontend_port_start":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tcp_reset_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","optional":true},"backend_ip_configuration_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","required":true},"enable_floating_ip":{"type":"TypeBool","optional":true,"computed":true},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","optional":true},"frontend_port_end":{"type":"TypeInt","optional":true},"frontend_port_start":{"type":"TypeInt","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","optional":true,"default":1024},"backend_address_pool_id":{"type":"TypeString","required":true},"enable_tcp_reset":{"type":"TypeBool","optional":true,"default":false},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_probe":{"schema":{"interval_in_seconds":{"type":"TypeInt","optional":true,"default":15},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_probes":{"type":"TypeInt","optional":true,"default":2},"port":{"type":"TypeInt","required":true},"probe_threshold":{"type":"TypeInt","optional":true,"default":1},"protocol":{"type":"TypeString","optional":true,"computed":true},"request_path":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_rule":{"schema":{"backend_address_pool_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":1},"backend_port":{"type":"TypeInt","required":true},"disable_outbound_snat":{"type":"TypeBool","optional":true,"default":false},"enable_floating_ip":{"type":"TypeBool","optional":true,"default":false},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"load_distribution":{"type":"TypeString","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"probe_id":{"type":"TypeString","optional":true,"computed":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lighthouse_assignment":{"schema":{"lighthouse_definition_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_lighthouse_definition":{"schema":{"authorization":{"type":"TypeSet","required":true,"elem":{"schema":{"delegated_role_definition_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"eligible_authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"just_in_time_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"approver":{"type":"TypeSet","optional":true,"elem":{"schema":{"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true}}}},"maximum_activation_duration":{"type":"TypeString","optional":true,"default":"PT8H"},"multi_factor_auth_provider":{"type":"TypeString","optional":true}}},"maxItems":1},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}}},"lighthouse_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managing_tenant_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022``","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Function App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Linux Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_linux_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"default":0},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_linux_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_web_app_slot":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_service_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_load_test":{"schema":{"data_plane_uri":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"gateway_address":{"type":"TypeString","optional":true},"gateway_fqdn":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_cluster":{"schema":{"cluster_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"default":1000},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_cluster_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"log_analytics_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_data_export_rule":{"schema":{"destination_resource_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"export_rule_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_event":{"schema":{"event_log_name":{"type":"TypeString","required":true},"event_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_performance_counter":{"schema":{"counter_name":{"type":"TypeString","required":true},"instance_name":{"type":"TypeString","required":true},"interval_seconds":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"object_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_service":{"schema":{"name":{"type":"TypeString","computed":true},"read_access_id":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true},"write_access_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_storage_account":{"schema":{"data_source_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack_query":{"schema":{"additional_settings_json":{"type":"TypeString","optional":true},"body":{"type":"TypeString","required":true},"categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"query_pack_id":{"type":"TypeString","required":true,"forceNew":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"solutions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_saved_search":{"schema":{"category":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"function_alias":{"type":"TypeString","optional":true,"forceNew":true},"function_parameters":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_solution":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"solution_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_storage_insights":{"schema":{"blob_container_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"table_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_workspace":{"schema":{"allow_resource_only_permissions":{"type":"TypeBool","optional":true,"default":true},"cmk_for_query_forced":{"type":"TypeBool","optional":true},"daily_quota_gb":{"type":"TypeFloat","optional":true,"default":-1},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_shared_key":{"type":"TypeString","computed":true},"reservation_capacity_in_gb_per_day":{"type":"TypeInt","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_http":{"schema":{"body":{"type":"TypeString","optional":true},"headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"queries":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_after":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_name":{"type":"TypeString","required":true},"action_result":{"type":"TypeString","required":true}}},"minItems":1},"uri":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account":{"schema":{"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_agreement":{"schema":{"agreement_type":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"guest_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"guest_partner_name":{"type":"TypeString","required":true},"host_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"host_partner_name":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_assembly":{"schema":{"assembly_name":{"type":"TypeString","required":true},"assembly_version":{"type":"TypeString","optional":true,"default":"0.0.0.0"},"content":{"type":"TypeString","optional":true},"content_link_uri":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_batch_configuration":{"schema":{"batch_group_name":{"type":"TypeString","required":true,"forceNew":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"release_criteria":{"type":"TypeList","required":true,"elem":{"schema":{"batch_size":{"type":"TypeInt","optional":true},"message_count":{"type":"TypeInt","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeSet","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","required":true},"weekday":{"type":"TypeString","required":true}}}},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_certificate":{"schema":{"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true}}},"maxItems":1},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_certificate":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_map":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"map_type":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_partner":{"schema":{"business_identity":{"type":"TypeSet","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_schema":{"schema":{"content":{"type":"TypeString","required":true},"file_name":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_session":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","optional":true,"default":"[1.*, 2.0.0)"},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"client_certificate_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_share_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","optional":true,"default":true},"version":{"type":"TypeString","optional":true,"default":"~3"},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_http_request":{"schema":{"callback_url":{"type":"TypeString","computed":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"relative_path":{"type":"TypeString","optional":true},"schema":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_recurrence":{"schema":{"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"at_these_hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"at_these_minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"on_these_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_workflow":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"open_authentication_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"claim":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"workflow_management":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logic_app_integration_account_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","optional":true,"default":"https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#","forceNew":true},"workflow_version":{"type":"TypeString","optional":true,"default":"1.0.0.0","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_monitor":{"schema":{"company_name":{"type":"TypeString","optional":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logz_organization_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","required":true,"forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"100gb14days","forceNew":true},"usage_type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_sign_on_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account_tag_rule":{"schema":{"logz_sub_account_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_tag_rule":{"schema":{"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_compute_cluster":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"scale_settings":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true,"forceNew":true},"min_node_count":{"type":"TypeInt","required":true,"forceNew":true},"scale_down_nodes_after_idle_duration":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"key_value":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"ssh_public_access_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"vm_priority":{"type":"TypeString","required":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_compute_instance":{"schema":{"assign_to_user":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"object_id":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"authorization_type":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","computed":true}}},"maxItems":1},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"virtual_machine_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_datastore_blobstorage":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_auth_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_datalake_gen2":{"schema":{"authority_url":{"type":"TypeString","optional":true,"computed":true},"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_fileshare":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_fileshare_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_inference_cluster":{"schema":{"cluster_purpose":{"type":"TypeString","optional":true,"default":"FastProd","forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ssl":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cert":{"type":"TypeString","optional":true,"default":"","forceNew":true},"cname":{"type":"TypeString","optional":true,"default":"","forceNew":true},"key":{"type":"TypeString","optional":true,"default":"","forceNew":true},"leaf_domain_label":{"type":"TypeString","optional":true,"default":"","forceNew":true},"overwrite_existing_domain":{"type":"TypeBool","optional":true,"default":"","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_synapse_spark":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_workspace":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"container_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"discovery_url":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key_id":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"friendly_name":{"type":"TypeString","optional":true},"high_business_impact":{"type":"TypeBool","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_build_compute_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_user_assigned_identity":{"type":"TypeString","optional":true},"public_access_behind_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Basic"},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"v1_legacy_mode_enabled":{"type":"TypeBool","optional":true,"default":false},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maintenance_assignment_dedicated_host":{"schema":{"dedicated_host_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine_scale_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","optional":true},"install_patches":{"type":"TypeList","optional":true,"elem":{"schema":{"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"reboot":{"type":"TypeString","optional":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","optional":true,"default":"Custom"},"window":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","optional":true},"expiration_date_time":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"start_date_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application":{"schema":{"application_definition_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameter_values":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application_definition":{"schema":{"authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"role_definition_id":{"type":"TypeString","required":true},"service_principal_id":{"type":"TypeString","required":true}}},"minItems":1},"create_ui_definition":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_level":{"type":"TypeString","required":true,"forceNew":true},"main_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"package_enabled":{"type":"TypeBool","optional":true,"default":true},"package_file_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","required":true,"forceNew":true},"disk_access_id":{"type":"TypeString","optional":true},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_iops_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"gallery_image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"forceNew":true},"image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logical_sector_size":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"max_shares":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_access_policy":{"type":"TypeString","optional":true},"on_demand_bursting_enabled":{"type":"TypeBool","optional":true},"os_type":{"type":"TypeString","optional":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_type":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"computed":true},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"upload_size_bytes":{"type":"TypeInt","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk_sas_token":{"schema":{"access_level":{"type":"TypeString","required":true,"forceNew":true},"duration_in_seconds":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"sas_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_managed_lustre_file_system":{"schema":{"encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"hsm_setting":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"import_prefix":{"type":"TypeString","optional":true,"forceNew":true},"logging_container_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","required":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"time_of_day_in_utc":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_capacity_in_tb":{"type":"TypeInt","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"parent_management_group_id":{"type":"TypeString","optional":true,"computed":true},"subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_subscription_association":{"schema":{"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5}},"azurerm_management_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_management_lock":{"schema":{"lock_level":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_creator":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maps_account_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mariadb_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_mariadb_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeString","required":true,"forceNew":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_asset":{"schema":{"alternate_id":{"type":"TypeString","optional":true},"container":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_asset_filter":{"schema":{"asset_id":{"type":"TypeString","required":true,"forceNew":true},"first_quality_bitrate":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_miliseconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","optional":true},"property":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_content_key_policy":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_option":{"type":"TypeSet","required":true,"elem":{"schema":{"clear_key_configuration_enabled":{"type":"TypeBool","optional":true},"fairplay_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"ask":{"type":"TypeString","optional":true},"offline_rental_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"playback_duration_seconds":{"type":"TypeInt","optional":true},"storage_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"pfx":{"type":"TypeString","optional":true},"pfx_password":{"type":"TypeString","optional":true},"rental_and_lease_key_type":{"type":"TypeString","optional":true},"rental_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"open_restriction_enabled":{"type":"TypeBool","optional":true},"playready_configuration_license":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_test_devices":{"type":"TypeBool","optional":true},"begin_date":{"type":"TypeString","optional":true},"content_key_location_from_header_enabled":{"type":"TypeBool","optional":true},"content_key_location_from_key_id":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"grace_period":{"type":"TypeString","optional":true},"license_type":{"type":"TypeString","optional":true},"play_right":{"type":"TypeList","optional":true,"elem":{"schema":{"agc_and_color_stripe_restriction":{"type":"TypeInt","optional":true},"allow_passing_video_content_to_unknown_output":{"type":"TypeString","optional":true},"analog_video_opl":{"type":"TypeInt","optional":true},"compressed_digital_audio_opl":{"type":"TypeInt","optional":true},"compressed_digital_video_opl":{"type":"TypeInt","optional":true},"digital_video_only_content_restriction":{"type":"TypeBool","optional":true},"explicit_analog_television_output_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"best_effort_enforced":{"type":"TypeBool","optional":true,"default":false},"control_bits":{"type":"TypeInt","required":true}}},"maxItems":1},"first_play_expiration":{"type":"TypeString","optional":true},"image_constraint_for_analog_component_video_restriction":{"type":"TypeBool","optional":true},"image_constraint_for_analog_computer_monitor_restriction":{"type":"TypeBool","optional":true},"scms_restriction":{"type":"TypeInt","optional":true},"uncompressed_digital_audio_opl":{"type":"TypeInt","optional":true},"uncompressed_digital_video_opl":{"type":"TypeInt","optional":true}}},"maxItems":1},"relative_begin_date":{"type":"TypeString","optional":true},"relative_expiration_date":{"type":"TypeString","optional":true},"security_level":{"type":"TypeString","optional":true}}}},"playready_response_custom_data":{"type":"TypeString","optional":true},"token_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"alternate_key":{"type":"TypeList","optional":true,"elem":{"schema":{"rsa_token_key_exponent":{"type":"TypeString","optional":true},"rsa_token_key_modulus":{"type":"TypeString","optional":true},"symmetric_token_key":{"type":"TypeString","optional":true},"x509_token_key_raw":{"type":"TypeString","optional":true}}}},"audience":{"type":"TypeString","optional":true},"issuer":{"type":"TypeString","optional":true},"open_id_connect_discovery_document":{"type":"TypeString","optional":true},"primary_rsa_token_key_exponent":{"type":"TypeString","optional":true},"primary_rsa_token_key_modulus":{"type":"TypeString","optional":true},"primary_symmetric_token_key":{"type":"TypeString","optional":true},"primary_x509_token_key_raw":{"type":"TypeString","optional":true},"required_claim":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"token_type":{"type":"TypeString","optional":true}}},"maxItems":1},"widevine_configuration_template":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_job":{"schema":{"description":{"type":"TypeString","optional":true},"input_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1},"priority":{"type":"TypeString","optional":true,"default":"Normal","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"transform_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event":{"schema":{"auto_start_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true},"cross_domain_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"preset_name":{"type":"TypeString","optional":true,"forceNew":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"None"},"type":{"type":"TypeString","optional":true,"default":"None","forceNew":true}}},"maxItems":1},"hostname_prefix":{"type":"TypeString","optional":true},"input":{"type":"TypeList","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"key_frame_interval_duration":{"type":"TypeString","optional":true},"streaming_protocol":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"preview":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"preview_locator":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_options":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transcription_languages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"use_static_hostname":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event_output":{"schema":{"archive_window_duration":{"type":"TypeString","required":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"hls_fragments_per_ts_segment":{"type":"TypeInt","optional":true,"forceNew":true},"live_event_id":{"type":"TypeString","required":true,"forceNew":true},"manifest_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_snap_time_in_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"rewind_window_duration":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account":{"schema":{"encryption":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_key_identifier":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"type":{"type":"TypeString","optional":true,"default":"SystemKey"}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_delivery_access_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true},"ip_allow_list":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"storage_authentication_type":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account_filter":{"schema":{"first_quality_bitrate":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_milliseconds":{"type":"TypeInt","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_endpoint":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"akamai_signature_header_authentication_key":{"type":"TypeList","optional":true,"elem":{"schema":{"base64_key":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","optional":true},"identifier":{"type":"TypeString","optional":true}}}},"ip_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}}}},"maxItems":1},"auto_start_enabled":{"type":"TypeBool","optional":true,"computed":true},"cdn_enabled":{"type":"TypeBool","optional":true},"cdn_profile":{"type":"TypeString","optional":true,"computed":true},"cdn_provider":{"type":"TypeString","optional":true,"computed":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true,"computed":true},"cross_domain_policy":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"custom_host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_cache_age_seconds":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_locator":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content_key_id":{"type":"TypeString","optional":true,"forceNew":true},"label_reference_in_streaming_policy":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","optional":true,"forceNew":true}}}},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"end_time":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"filter_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"forceNew":true},"streaming_locator_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_streaming_policy":{"schema":{"common_encryption_cbcs":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_fairplay":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_persistent_license":{"type":"TypeBool","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"common_encryption_cenc":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"clear_track":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}},"content_key_to_track_mapping":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"track":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}}}}},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_playready":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_attributes":{"type":"TypeString","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_widevine_custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"envelope_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"no_encryption_enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_transform":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"builtin_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"preset_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true},"interleave_output":{"type":"TypeString","optional":true},"key_frame_interval_in_seconds":{"type":"TypeFloat","optional":true},"max_bitrate_bps":{"type":"TypeInt","optional":true},"max_height":{"type":"TypeInt","optional":true},"max_layers":{"type":"TypeInt","optional":true},"min_bitrate_bps":{"type":"TypeInt","optional":true},"min_height":{"type":"TypeInt","optional":true}}},"maxItems":1},"preset_name":{"type":"TypeString","required":true}}},"maxItems":1},"custom_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"codec":{"type":"TypeList","required":true,"elem":{"schema":{"aac_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":128000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"profile":{"type":"TypeString","optional":true,"default":"AacLc"},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"copy_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"copy_video":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"dd_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":192000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"h264_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":23},"entropy_mode":{"type":"TypeString","optional":true,"computed":true},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"rate_control_mode":{"type":"TypeString","optional":true,"default":"ABR"},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"h265_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":28},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"jpg_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"quality":{"type":"TypeInt","optional":true,"default":70},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"sprite_column":{"type":"TypeInt","optional":true,"default":0},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"png_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1}}},"minItems":1},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"deinterlace":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true,"default":"AutoPixelAdaptive"},"parity":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"fade_in":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"fade_out":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"overlay":{"type":"TypeList","optional":true,"elem":{"schema":{"audio":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}},"maxItems":1},"video":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"opacity":{"type":"TypeFloat","optional":true,"default":1},"position":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"start":{"type":"TypeString","optional":true}}},"maxItems":1}}},"minItems":1},"rotation":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"format":{"type":"TypeList","required":true,"elem":{"schema":{"jpg":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"mp4":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1},"png":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"transport_stream":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1}}},"minItems":1}}},"maxItems":1},"face_detector_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"analysis_resolution":{"type":"TypeString","optional":true,"default":"SourceResolution"},"blur_type":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"face_redactor_mode":{"type":"TypeString","optional":true,"default":"Analyze"}}},"maxItems":1},"on_error_action":{"type":"TypeString","optional":true,"default":"StopProcessingJob"},"relative_priority":{"type":"TypeString","optional":true,"default":"Normal"},"video_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"insights_type":{"type":"TypeString","optional":true,"default":"AllInsights"}}},"maxItems":1}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_country_code":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_code":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_data_network_name":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true,"forceNew":true},"network_address_port_translation":{"type":"TypeList","optional":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"pinhole_maximum_number":{"type":"TypeInt","optional":true,"default":65536},"port_range":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum":{"type":"TypeInt","optional":true,"default":49999},"minimum":{"type":"TypeInt","optional":true,"default":1024}}},"maxItems":1},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":120},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":60}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","optional":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"control_plane_access_name":{"type":"TypeString","optional":true},"core_network_technology":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"interoperability_settings_json":{"type":"TypeString","optional":true},"local_diagnostics_access":{"type":"TypeList","required":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","required":true},"https_server_certificate_url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","optional":true},"custom_location_id":{"type":"TypeString","optional":true},"edge_device_id":{"type":"TypeString","optional":true},"stack_hci_cluster_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"sku":{"type":"TypeString","required":true},"software_version":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","optional":true,"default":1440}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pcc_rule":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precedence":{"type":"TypeInt","required":true},"qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true},"guaranteed_bit_rate":{"type":"TypeList","optional":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"Preemptable"},"qos_indicator":{"type":"TypeInt","required":true}}},"maxItems":1},"service_data_flow_template":{"type":"TypeList","required":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","optional":true,"default":true}}}},"service_precedence":{"type":"TypeInt","required":true},"service_qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":9},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true},"preemption_vulnerability":{"type":"TypeString","optional":true},"qos_indicator":{"type":"TypeInt","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim":{"schema":{"authentication_key":{"type":"TypeString","required":true},"device_type":{"type":"TypeString","optional":true},"integrated_circuit_card_identifier":{"type":"TypeString","required":true,"forceNew":true},"international_mobile_subscriber_identity":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operator_key_code":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","optional":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true},"static_ipv4_address":{"type":"TypeString","optional":true}}},"minItems":1},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","optional":true},"registration_timer_in_seconds":{"type":"TypeInt","optional":true,"default":3240},"slice":{"type":"TypeList","required":true,"elem":{"schema":{"data_network":{"type":"TypeList","required":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":0},"allowed_services_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","required":true},"default_session_type":{"type":"TypeString","optional":true,"default":"IPv4"},"max_buffered_packets":{"type":"TypeInt","optional":true,"default":10},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"NotPreemptable"},"qos_indicator":{"type":"TypeInt","required":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}}}},"default_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":180,"read":5,"delete":180,"update":60}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","required":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","optional":true},"slice_service_type":{"type":"TypeInt","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_monitor_aad_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true,"forceNew":true},"eventhub_name":{"type":"TypeString","optional":true,"forceNew":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"role_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"automation_runbook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"is_global_runbook":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true},"runbook_name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true,"default":false},"webhook_resource_id":{"type":"TypeString","required":true}}}},"azure_app_push_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"azure_function_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"http_trigger_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"email_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"event_hub_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","required":true},"ticket_configuration":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","optional":true,"default":"global","forceNew":true},"logic_app_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"callback_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"short_name":{"type":"TypeString","required":true},"sms_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"webhook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","optional":true,"computed":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_action_group":{"schema":{"action_group_id":{"type":"TypeString","required":true},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"suppression":{"type":"TypeList","required":true,"elem":{"schema":{"recurrence_type":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"end_date_utc":{"type":"TypeString","required":true},"recurrence_monthly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"},"minItems":1},"recurrence_weekly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"start_date_utc":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_activity_log_alert":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"caller":{"type":"TypeString","optional":true},"category":{"type":"TypeString","required":true},"level":{"type":"TypeString","optional":true},"levels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operation_name":{"type":"TypeString","optional":true},"recommendation_category":{"type":"TypeString","optional":true},"recommendation_impact":{"type":"TypeString","optional":true},"recommendation_type":{"type":"TypeString","optional":true},"resource_group":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"previous":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reason":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_id":{"type":"TypeString","optional":true},"resource_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_provider":{"type":"TypeString","optional":true},"resource_providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_type":{"type":"TypeString","optional":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"service_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"services":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"status":{"type":"TypeString","optional":true},"statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sub_status":{"type":"TypeString","optional":true},"sub_statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_action_group":{"schema":{"add_action_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_prometheus_rule_group":{"schema":{"cluster_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"interval":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"action_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":5},"alert":{"type":"TypeString","optional":true},"alert_resolution":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_resolved":{"type":"TypeBool","optional":true},"time_to_resolve":{"type":"TypeString","optional":true}}},"maxItems":1},"annotations":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"expression":{"type":"TypeString","required":true},"for":{"type":"TypeString","optional":true},"labels":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"record":{"type":"TypeString","optional":true},"severity":{"type":"TypeInt","optional":true}}}},"rule_group_enabled":{"type":"TypeBool","optional":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_autoscale_setting":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"send_to_subscription_administrator":{"type":"TypeBool","optional":true,"default":false},"send_to_subscription_co_administrator":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"webhook":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_uri":{"type":"TypeString","required":true}}}}}},"maxItems":1},"predictive":{"type":"TypeList","optional":true,"elem":{"schema":{"look_ahead_time":{"type":"TypeString","optional":true},"scale_mode":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"profile":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeList","required":true,"elem":{"schema":{"default":{"type":"TypeInt","required":true},"maximum":{"type":"TypeInt","required":true},"minimum":{"type":"TypeInt","required":true}}},"maxItems":1},"fixed_date":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hours":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"minutes":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","required":true,"elem":{"schema":{"dimensions":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"divide_by_instance_count":{"type":"TypeBool","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","optional":true},"metric_resource_id":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"statistic":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","required":true},"time_window":{"type":"TypeString","required":true}}},"maxItems":1},"scale_action":{"type":"TypeList","required":true,"elem":{"schema":{"cooldown":{"type":"TypeString","required":true},"direction":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":10}}},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_flow":{"type":"TypeList","required":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"output_stream":{"type":"TypeString","optional":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"transform_kql":{"type":"TypeString","optional":true}}},"minItems":1},"data_sources":{"type":"TypeList","optional":true,"elem":{"schema":{"data_import":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","required":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"stream":{"type":"TypeString","required":true}}}}}},"maxItems":1},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"extension_json":{"type":"TypeString","optional":true},"extension_name":{"type":"TypeString","required":true},"input_data_sources":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"iis_log":{"type":"TypeList","optional":true,"elem":{"schema":{"log_directories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"settings":{"type":"TypeList","optional":true,"elem":{"schema":{"text":{"type":"TypeList","required":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"performance_counter":{"type":"TypeList","optional":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"sampling_frequency_in_seconds":{"type":"TypeInt","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"prometheus_forwarder":{"type":"TypeList","optional":true,"elem":{"schema":{"label_include_filter":{"type":"TypeSet","optional":true,"elem":{"schema":{"label":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"syslog":{"type":"TypeList","optional":true,"elem":{"schema":{"facility_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"log_levels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_event_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"x_path_queries":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_firewall_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}}},"monitor_account":{"type":"TypeList","optional":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"storage_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_blob_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_table_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_declaration":{"type":"TypeSet","optional":true,"elem":{"schema":{"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"stream_name":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule_association":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_collection_rule_id":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"default":"configurationAccessEndpoint","forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","optional":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"log_analytics_destination_type":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"metric":{"type":"TypeSet","optional":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_solution_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"locations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"servicebus_rule_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_metric_alert":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"application_insights_web_test_location_availability_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"component_id":{"type":"TypeString","required":true},"failed_location_count":{"type":"TypeInt","required":true},"web_test_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"auto_mitigate":{"type":"TypeBool","optional":true,"default":true},"criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true,"default":false},"threshold":{"type":"TypeFloat","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"dynamic_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"alert_sensitivity":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"evaluation_failure_count":{"type":"TypeInt","optional":true,"default":4},"evaluation_total_count":{"type":"TypeInt","optional":true,"default":4},"ignore_data_before":{"type":"TypeString","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","optional":true,"default":"PT1M"},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"severity":{"type":"TypeInt","optional":true,"default":3},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_location":{"type":"TypeString","optional":true,"description":"The location of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"target_resource_type":{"type":"TypeString","optional":true,"description":"The resource type (e.g. Microsoft.Compute/virtualMachines) of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"window_size":{"type":"TypeString","optional":true,"default":"PT5M"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scope":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scoped_service":{"schema":{"linked_resource_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_group":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","optional":true},"email_subject":{"type":"TypeString","optional":true}}},"maxItems":1},"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":100},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_type":{"type":"TypeString","optional":true,"default":"ResultCount"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"severity":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","optional":true},"time_window":{"type":"TypeInt","required":true},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_column":{"type":"TypeString","optional":true},"metric_trigger_type":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert_v2":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"custom_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"created_with_api_version":{"type":"TypeString","computed":true},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"failing_periods":{"type":"TypeList","optional":true,"elem":{"schema":{"minimum_failing_periods_to_trigger_alert":{"type":"TypeInt","required":true},"number_of_evaluation_periods":{"type":"TypeInt","required":true}}},"maxItems":1},"metric_measure_column":{"type":"TypeString","optional":true},"operator":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true},"resource_id_column":{"type":"TypeString","optional":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation_method":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"evaluation_frequency":{"type":"TypeString","optional":true},"is_a_legacy_log_analytics_rule":{"type":"TypeBool","computed":true},"is_workspace_alerts_storage_configured":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mute_actions_after_alert_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_time_range_override":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"severity":{"type":"TypeInt","required":true},"skip_query_validation":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"window_duration":{"type":"TypeString","required":true},"workspace_alerts_storage_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"Include"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","required":true}}},"maxItems":1},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_smart_detector_alert_rule":{"schema":{"action_group":{"type":"TypeList","required":true,"elem":{"schema":{"email_subject":{"type":"TypeString","optional":true},"ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"webhook_payload":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"detector_type":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"severity":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling_duration":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database":{"schema":{"auto_pause_delay_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"creation_source_database_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"elastic_pool_id":{"type":"TypeString","optional":true},"geo_backup_enabled":{"type":"TypeBool","optional":true,"default":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"ledger_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"computed":true},"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"maintenance_configuration_name":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeInt","optional":true,"computed":true},"min_capacity":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_replica_count":{"type":"TypeInt","optional":true,"computed":true},"read_scale":{"type":"TypeBool","optional":true,"computed":true},"recover_database_id":{"type":"TypeString","optional":true},"restore_dropped_database_id":{"type":"TypeString","optional":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"sample_name":{"type":"TypeString","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backup_interval_in_hours":{"type":"TypeInt","optional":true,"default":12},"retention_days":{"type":"TypeInt","required":true}}},"maxItems":1},"sku_name":{"type":"TypeString","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Geo"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"transparent_data_encryption_enabled":{"type":"TypeBool","optional":true,"default":true},"zone_redundant":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_database_extended_auditing_policy":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database_vulnerability_assessment_rule_baseline":{"schema":{"baseline_name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"baseline_result":{"type":"TypeSet","required":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"database_name":{"type":"TypeString","required":true,"forceNew":true},"rule_id":{"type":"TypeString","required":true,"forceNew":true},"server_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"max_size_bytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_gb":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_database_settings":{"type":"TypeList","required":true,"elem":{"schema":{"max_capacity":{"type":"TypeFloat","required":true},"min_capacity":{"type":"TypeFloat","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"family":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_server":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}},"minItems":1},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_job_agent":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_job_credential":{"schema":{"job_agent_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_managed_database":{"schema":{"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_days":{"type":"TypeInt","optional":true,"default":7}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_mssql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true},"login_username":{"type":"TypeString","required":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_vulnerability_assessment":{"schema":{"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":true},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_outbound_firewall_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"azuread_administrator":{"type":"TypeList","optional":true,"elem":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login_username":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1,"minItems":1},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_network_restriction_enabled":{"type":"TypeBool","optional":true,"default":false},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transparent_data_encryption_key_vault_key_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_server_dns_alias":{"schema":{"dns_record":{"type":"TypeString","computed":true},"mssql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_mssql_server_extended_auditing_policy":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_account_subscription_id":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_microsoft_support_auditing_policy":{"schema":{"blob_storage_endpoint":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_subscription_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"server_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"server_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_machine":{"schema":{"assessment":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"run_immediately":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"monthly_occurrence":{"type":"TypeInt","optional":true},"start_time":{"type":"TypeString","required":true},"weekly_interval":{"type":"TypeInt","optional":true}}},"maxItems":1}}},"maxItems":1},"auto_backup":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_password":{"type":"TypeString","optional":true},"manual_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"full_backup_frequency":{"type":"TypeString","required":true},"full_backup_start_hour":{"type":"TypeInt","required":true},"full_backup_window_in_hours":{"type":"TypeInt","required":true},"log_backup_frequency_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_period_in_days":{"type":"TypeInt","required":true},"storage_account_access_key":{"type":"TypeString","required":true},"storage_blob_endpoint":{"type":"TypeString","required":true},"system_databases_backup_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"auto_patching":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window_duration_in_minutes":{"type":"TypeInt","required":true},"maintenance_window_starting_hour":{"type":"TypeInt","required":true}}},"maxItems":1},"key_vault_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_url":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"service_principal_name":{"type":"TypeString","required":true,"forceNew":true},"service_principal_secret":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"r_services_enabled":{"type":"TypeBool","optional":true},"sql_connectivity_port":{"type":"TypeInt","optional":true,"default":1433},"sql_connectivity_type":{"type":"TypeString","optional":true,"default":"PRIVATE"},"sql_connectivity_update_password":{"type":"TypeString","optional":true},"sql_connectivity_update_username":{"type":"TypeString","optional":true},"sql_instance":{"type":"TypeList","optional":true,"elem":{"schema":{"adhoc_workloads_optimization_enabled":{"type":"TypeBool","optional":true,"default":false},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"instant_file_initialization_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"lock_pages_in_memory_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"max_dop":{"type":"TypeInt","optional":true,"default":0},"max_server_memory_mb":{"type":"TypeInt","optional":true,"default":2147483647},"min_server_memory_mb":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"sql_license_type":{"type":"TypeString","optional":true,"forceNew":true},"sql_virtual_machine_group_id":{"type":"TypeString","optional":true},"storage_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"data_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"disk_type":{"type":"TypeString","required":true},"log_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"storage_workload_type":{"type":"TypeString","required":true},"system_db_on_data_disk_enabled":{"type":"TypeBool","optional":true,"default":false},"temp_db_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"data_file_count":{"type":"TypeInt","optional":true,"default":8},"data_file_growth_in_mb":{"type":"TypeInt","optional":true,"default":512},"data_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"default_file_path":{"type":"TypeString","required":true},"log_file_growth_mb":{"type":"TypeInt","optional":true,"default":512},"log_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"wsfc_domain_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_bootstrap_account_password":{"type":"TypeString","required":true},"cluster_operator_account_password":{"type":"TypeString","required":true},"sql_service_account_password":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_virtual_machine_availability_group_listener":{"schema":{"availability_group_name":{"type":"TypeString","optional":true,"forceNew":true},"load_balancer_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"probe_port":{"type":"TypeInt","required":true,"forceNew":true},"sql_virtual_machine_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"multi_subnet_ip_configuration":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"replica":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"commit":{"type":"TypeString","required":true,"forceNew":true},"failover_mode":{"type":"TypeString","required":true,"forceNew":true},"readable_secondary":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}}}},"sql_virtual_machine_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_mssql_virtual_machine_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_image_offer":{"type":"TypeString","required":true,"forceNew":true},"sql_image_sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wsfc_domain_profile":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_bootstrap_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_operator_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_subnet_type":{"type":"TypeString","required":true,"forceNew":true},"fqdn":{"type":"TypeString","required":true,"forceNew":true},"organizational_unit_path":{"type":"TypeString","optional":true,"forceNew":true},"sql_service_account_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_primary_key":{"type":"TypeString","optional":true},"storage_account_url":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_password":{"type":"TypeString","optional":true},"backup_retention_days":{"type":"TypeInt","optional":true,"default":7},"create_mode":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"iops":{"type":"TypeInt","optional":true,"computed":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server_active_directory_administrator":{"schema":{"identity_id":{"type":"TypeString","required":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_nat_gateway_public_ip_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nat_gateway_public_ip_prefix_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_netapp_account":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"domain":{"type":"TypeString","required":true},"organizational_unit":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"smb_server_name":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"qos_type":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"size_in_tb":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"daily_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"hourly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"monthly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"maxItems":30},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"azure_vmware_data_store_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"create_from_snapshot_resource_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true,"forceNew":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_clients":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"protocols_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"root_access_enabled":{"type":"TypeBool","optional":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true},"unix_read_write":{"type":"TypeBool","optional":true}}},"maxItems":5},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_features":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_style":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","optional":true,"computed":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","optional":true,"computed":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"application_identifier":{"type":"TypeString","required":true,"forceNew":true},"group_description":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","required":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","required":true},"nfsv41_enabled":{"type":"TypeBool","required":true},"root_access_enabled":{"type":"TypeBool","optional":true,"default":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true,"default":false},"unix_read_write":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":5,"minItems":1},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"security_style":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","required":true,"forceNew":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"volume_spec_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":5,"minItems":2}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_netapp_volume_quota_rule":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota_size_in_kib":{"type":"TypeInt","required":true},"quota_target":{"type":"TypeString","optional":true,"forceNew":true},"quota_type":{"type":"TypeString","required":true,"forceNew":true},"volume_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_network_connection_monitor":{"schema":{"endpoint":{"type":"TypeSet","required":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"coverage_level":{"type":"TypeString","optional":true},"excluded_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"item":{"type":"TypeSet","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"AgentAddress"}}}},"type":{"type":"TypeString","optional":true,"default":"Include"}}},"maxItems":1},"included_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_resource_id":{"type":"TypeString","optional":true,"computed":true},"target_resource_type":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"output_workspace_resource_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"test_configuration":{"type":"TypeSet","required":true,"elem":{"schema":{"http_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"method":{"type":"TypeString","optional":true,"default":"Get"},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","optional":true},"prefer_https":{"type":"TypeBool","optional":true,"default":false},"request_header":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"valid_status_code_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"icmp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"preferred_ip_version":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"success_threshold":{"type":"TypeList","optional":true,"elem":{"schema":{"checks_failed_percent":{"type":"TypeInt","optional":true},"round_trip_time_ms":{"type":"TypeFloat","optional":true}}},"maxItems":1},"tcp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_port_behavior":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"test_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":60}}}},"test_group":{"type":"TypeSet","required":true,"elem":{"schema":{"destination_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"source_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"test_configuration_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_function_azure_traffic_collector":{"schema":{"collector_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"internal_dns_name_label":{"type":"TypeString","optional":true,"computed":true},"internal_domain_name_suffix":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"computed":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_gateway_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_nat_rule_association":{"schema":{"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_security_group_association":{"schema":{"network_interface_id":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager":{"schema":{"cross_tenant_scopes":{"type":"TypeList","computed":true,"elem":{"schema":{"management_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subscriptions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","required":true,"elem":{"schema":{"management_group_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"scope_accesses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule":{"schema":{"action":{"type":"TypeString","required":true},"admin_rule_collection_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"destination_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"source_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule_collection":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"security_admin_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_connectivity_configuration":{"schema":{"applies_to_group":{"type":"TypeList","required":true,"elem":{"schema":{"global_mesh_enabled":{"type":"TypeBool","optional":true},"group_connectivity":{"type":"TypeString","required":true},"network_group_id":{"type":"TypeString","required":true},"use_hub_gateway":{"type":"TypeBool","optional":true}}}},"connectivity_topology":{"type":"TypeString","required":true},"delete_existing_peering_enabled":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"global_mesh_enabled":{"type":"TypeBool","optional":true},"hub":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true},"resource_type":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_deployment":{"schema":{"configuration_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"scope_access":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_network_manager_management_group_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_scope_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"target_scope_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_security_admin_configuration":{"schema":{"apply_on_network_intent_policy_based_services":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_static_member":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_id":{"type":"TypeString","required":true,"forceNew":true},"region":{"type":"TypeString","computed":true},"target_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_network_manager_subscription_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_profile":{"schema":{"container_network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}},"maxItems":1},"container_network_interface_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_rule":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher_flow_log":{"schema":{"enabled":{"type":"TypeBool","required":true},"location":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"storage_account_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"interval_in_minutes":{"type":"TypeInt","optional":true,"default":60},"workspace_id":{"type":"TypeString","required":true},"workspace_region":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}},"maxItems":1},"version":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_new_relic_monitor":{"schema":{"account_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"account_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ingestion_key":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"organization_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","optional":true,"default":"MONTHLY","forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"newrelic-pay-as-you-go-free-live","forceNew":true},"usage_type":{"type":"TypeString","optional":true,"default":"PAYG","forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nginx_certificate":{"schema":{"certificate_virtual_path":{"type":"TypeString","required":true},"key_vault_secret_id":{"type":"TypeString","required":true},"key_virtual_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_nginx_configuration":{"schema":{"config_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true},"package_data":{"type":"TypeString","optional":true},"protected_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"root_file":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_nginx_deployment":{"schema":{"diagnose_support_enabled":{"type":"TypeBool","optional":true},"frontend_private":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"frontend_public":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"ip_address":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logging_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}}},"managed_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}}},"nginx_version":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"application_mode":{"type":"TypeString","required":true},"bundle_id":{"type":"TypeString","required":true},"key_id":{"type":"TypeString","required":true},"team_id":{"type":"TypeString","required":true},"token":{"type":"TypeString","required":true}}},"maxItems":1},"gcm_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"notification_hub_name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_contact":{"schema":{"contact_profile_id":{"type":"TypeString","required":true,"forceNew":true},"ground_station_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"reservation_end_time":{"type":"TypeString","required":true,"forceNew":true},"reservation_start_time":{"type":"TypeString","required":true,"forceNew":true},"spacecraft_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_orbital_contact_profile":{"schema":{"auto_tracking":{"type":"TypeString","required":true},"event_hub_uri":{"type":"TypeString","optional":true},"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"channels":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"demodulation_configuration":{"type":"TypeString","optional":true},"end_point":{"type":"TypeSet","required":true,"elem":{"schema":{"end_point_name":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","optional":true},"port":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"modulation_configuration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_elevation_degrees":{"type":"TypeFloat","optional":true},"minimum_variable_contact_duration":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_spacecraft":{"schema":{"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"norad_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title_line":{"type":"TypeString","required":true},"two_line_elements":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version_enabled":{"type":"TypeBool","optional":true,"default":true},"extensions_to_provision_after_vm_creation":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"failure_suppression_enabled":{"type":"TypeBool","optional":true},"force_extension_execution_on_change":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"computed":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"os_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_data":{"type":"TypeString","optional":true},"linux_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"windows_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"timezone":{"type":"TypeString","optional":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}}}},"maxItems":1}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"priority_mix":{"type":"TypeList","optional":true,"elem":{"schema":{"base_regular_count":{"type":"TypeInt","optional":true,"default":0},"regular_percentage_above_base":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"computed":true},"sku_name":{"type":"TypeString","optional":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"user_data_base64":{"type":"TypeString","optional":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","optional":true},"anti_virus_profile":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"dns_subscription":{"type":"TypeString","optional":true},"file_blocking_profile":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"url_filtering_profile":{"type":"TypeString","optional":true},"vulnerability_profile":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_certificate":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"self_signed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_fqdn_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"fully_qualified_domain_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_outbound_trust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_outbound_untrust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_prefix_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prefix_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_rule":{"schema":{"action":{"type":"TypeString","required":true},"applications":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"audit_comment":{"type":"TypeString","optional":true},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1,"minItems":1},"decryption_rule_type":{"type":"TypeString","optional":true,"default":"None"},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_fqdn_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"inspection_certificate_id":{"type":"TypeString","optional":true},"logging_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"negate_destination":{"type":"TypeBool","optional":true,"default":false},"negate_source":{"type":"TypeBool","optional":true,"default":false},"priority":{"type":"TypeInt","required":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"application-default"},"protocol_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_palo_alto_virtual_network_appliance":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_active_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"The ticket details.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_eligible_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the eligible role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this eligible role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"Ticket details relating to the assignment.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_point_to_site_vpn_gateway":{"schema":{"connection_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true},"route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"elem":{"schema":{"ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"vpn_client_address_pool":{"type":"TypeList","required":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference_internet_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"scale_unit":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_rule":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","required":true,"forceNew":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_definition_group":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","optional":true},"category":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"policy_definition_reference":{"type":"TypeList","required":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true},"policy_group_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","optional":true,"computed":true}}}},"policy_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"configuration":{"type":"TypeList","required":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true},"content_hash":{"type":"TypeString","optional":true,"computed":true},"content_uri":{"type":"TypeString","optional":true,"computed":true},"parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_tenant_configuration":{"schema":{"private_markdown_storage_enforced":{"type":"TypeBool","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true},"administrator_password":{"type":"TypeString","optional":true},"authentication":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory_auth_enabled":{"type":"TypeBool","optional":true,"default":false},"password_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":false},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true},"customer_managed_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replication_role":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_flexible_server_active_directory_administrator":{"schema":{"object_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_database":{"schema":{"charset":{"type":"TypeString","optional":true,"default":"UTF8","forceNew":true},"collation":{"type":"TypeString","optional":true,"default":"en_US.utf8","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_postgresql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_powerbi_embedded":{"schema":{"administrators":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","optional":true,"default":"Gen1","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"target_dns_servers":{"type":"TypeList","required":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"port":{"type":"TypeInt","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","required":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"subnet_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":10},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_zone_name":{"type":"TypeString","required":true,"forceNew":true},"registration_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_endpoint":{"schema":{"custom_dns_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"custom_network_interface_name":{"type":"TypeString","optional":true,"forceNew":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"member_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_dns_zone_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"record_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"type":{"type":"TypeString","computed":true}}}}}}},"private_dns_zone_group":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_zone_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"private_service_connection":{"type":"TypeList","required":true,"elem":{"schema":{"is_manual_connection":{"type":"TypeBool","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_connection_resource_alias":{"type":"TypeString","optional":true,"forceNew":true},"private_connection_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"request_message":{"type":"TypeString","optional":true},"subresource_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_private_endpoint_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","optional":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary":{"type":"TypeBool","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":8},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_proximity_placement_group":{"schema":{"allowed_vm_sizes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ddos_protection_mode":{"type":"TypeString","optional":true,"default":"VirtualNetworkInherited"},"ddos_protection_plan_id":{"type":"TypeString","optional":true},"domain_name_label":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_fqdn":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"prefix_length":{"type":"TypeInt","optional":true,"default":28,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_purview_account":{"schema":{"atlas_kafka_endpoint_primary_connection_string":{"type":"TypeString","computed":true},"atlas_kafka_endpoint_secondary_connection_string":{"type":"TypeString","computed":true},"catalog_endpoint":{"type":"TypeString","computed":true},"guardian_endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_resources":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_namespace_id":{"type":"TypeString","computed":true},"resource_group_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scan_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_recovery_services_vault":{"schema":{"classic_vmware_replication_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"cross_region_restore_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"infrastructure_encryption_enabled":{"type":"TypeBool","required":true},"key_id":{"type":"TypeString","required":true},"use_system_assigned_identity":{"type":"TypeBool","optional":true,"default":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"monitoring":{"type":"TypeList","optional":true,"elem":{"schema":{"alerts_for_all_job_failures_enabled":{"type":"TypeBool","optional":true,"default":true},"alerts_for_critical_operation_failures_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"soft_delete_enabled":{"type":"TypeBool","optional":true,"default":true},"storage_mode_type":{"type":"TypeString","optional":true,"default":"GeoRedundant"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":30,"update":60}},"azurerm_recovery_services_vault_resource_guard_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_guard_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","required":true},"enable_non_ssl_port":{"type":"TypeBool","optional":true,"default":false},"family":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"patch_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window":{"type":"TypeString","optional":true,"default":"PT5H"},"start_hour_utc":{"type":"TypeInt","optional":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"redis_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","optional":true},"aof_storage_connection_string_0":{"type":"TypeString","optional":true},"aof_storage_connection_string_1":{"type":"TypeString","optional":true},"enable_authentication":{"type":"TypeBool","optional":true,"default":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_delta":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_policy":{"type":"TypeString","optional":true,"default":"volatile-lru"},"maxmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"notify_keyspace_events":{"type":"TypeString","optional":true},"rdb_backup_enabled":{"type":"TypeBool","optional":true},"rdb_backup_frequency":{"type":"TypeInt","optional":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","optional":true},"rdb_storage_connection_string":{"type":"TypeString","optional":true}}},"maxItems":1},"redis_version":{"type":"TypeString","optional":true,"computed":true},"replicas_per_master":{"type":"TypeInt","optional":true,"computed":true},"replicas_per_primary":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_redis_enterprise_cluster":{"schema":{"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_enterprise_database":{"schema":{"client_protocol":{"type":"TypeString","optional":true,"default":"Encrypted","forceNew":true},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"clustering_policy":{"type":"TypeString","optional":true,"default":"OSSCluster","forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"default":"VolatileLRU","forceNew":true},"linked_database_group_nickname":{"type":"TypeString","optional":true,"forceNew":true},"linked_database_id":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"module":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"args":{"type":"TypeString","optional":true,"default":"","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}}},"maxItems":4},"name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"port":{"type":"TypeInt","optional":true,"default":10000,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_firewall_rule":{"schema":{"end_ip":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_linked_server":{"schema":{"linked_redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"linked_redis_cache_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_role":{"type":"TypeString","required":true,"forceNew":true},"target_redis_cache_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_relay_hybrid_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"relay_namespace_name":{"type":"TypeString","required":true,"forceNew":true},"requires_client_authorization":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_hybrid_connection_authorization_rule":{"schema":{"hybrid_connection_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_namespace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"metric_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_relay_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_cli":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_power_shell":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_by":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_resource_group_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_resource_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_provider_registration":{"schema":{"feature":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"registered":{"type":"TypeBool","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":30,"update":120}},"azurerm_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_resource_id":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":60}},"azurerm_route":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"communities":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rule_type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_map":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeList","required":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true}}}},"match_criterion":{"type":"TypeList","optional":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_condition":{"type":"TypeString","required":true},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"next_step_if_matched":{"type":"TypeString","optional":true,"default":"Unknown"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_server":{"schema":{"branch_to_branch_traffic_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_route_server_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"route_server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_route_table":{"schema":{"disable_bgp_route_propagation":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_search_service":{"schema":{"allowed_ips":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_failure_mode":{"type":"TypeString","optional":true},"customer_managed_key_enforcement_enabled":{"type":"TypeBool","optional":true,"default":false},"hosting_mode":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","optional":true,"default":1},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","optional":true,"default":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_search_shared_private_link_service":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"search_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_assessment":{"schema":{"additional_data":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"assessment_policy_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeList","required":true,"elem":{"schema":{"cause":{"type":"TypeString","optional":true},"code":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_assessment_policy":{"schema":{"categories":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"implementation_effort":{"type":"TypeString","optional":true},"name":{"type":"TypeString","computed":true},"remediation_description":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true,"default":"Medium"},"threats":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"user_impact":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_auto_provisioning":{"schema":{"auto_provision":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_automation":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","required":true},"trigger_url":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"source":{"type":"TypeList","required":true,"elem":{"schema":{"event_source":{"type":"TypeString","required":true},"rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule":{"type":"TypeList","required":true,"elem":{"schema":{"expected_value":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"property_path":{"type":"TypeString","required":true},"property_type":{"type":"TypeString","required":true}}}}}}}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_contact":{"schema":{"alert_notifications":{"type":"TypeBool","required":true},"alerts_to_admins":{"type":"TypeBool","required":true},"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"default":"default1"},"phone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_server_vulnerability_assessment":{"schema":{"hybrid_machine_id":{"type":"TypeString","optional":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_server_vulnerability_assessment_virtual_machine":{"schema":{"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_setting":{"schema":{"enabled":{"type":"TypeBool","required":true},"setting_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":10,"read":5,"delete":10,"update":10}},"azurerm_security_center_subscription_pricing":{"schema":{"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_extension_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"resource_type":{"type":"TypeString","optional":true,"default":"VirtualMachines"},"subplan":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_workspace":{"schema":{"scope":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sentinel_alert_rule_anomaly_built_in":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_anomaly_duplicate":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"built_in_rule_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"is_default_settings":{"type":"TypeBool","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true},"prioritized_exclude_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prioritize":{"type":"TypeString","optional":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_fusion":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"sub_type":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"severities_allowed":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_machine_learning_behavior_analytics":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_ms_security_incident":{"schema":{"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"display_name_exclude_filter":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name_filter":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_filter":{"type":"TypeString","required":true},"severity_filter":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_nrt":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident_enabled":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_scheduled":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"group_by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_frequency":{"type":"TypeString","optional":true,"default":"PT5H"},"query_period":{"type":"TypeString","optional":true,"default":"PT5H"},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","optional":true,"default":"GreaterThan"},"trigger_threshold":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_threat_intelligence":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_automation_rule":{"schema":{"action_incident":{"type":"TypeList","optional":true,"elem":{"schema":{"classification":{"type":"TypeString","optional":true},"classification_comment":{"type":"TypeString","optional":true},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"owner_id":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true},"status":{"type":"TypeString","optional":true}}}},"action_playbook":{"type":"TypeList","optional":true,"elem":{"schema":{"logic_app_id":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"condition":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"condition_json":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiration":{"type":"TypeString","optional":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true},"triggers_on":{"type":"TypeString","optional":true,"default":"Incidents"},"triggers_when":{"type":"TypeString","optional":true,"default":"Created"}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_sentinel_data_connector_aws_cloud_trail":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_aws_s3":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"destination_table":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sqs_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_azure_active_directory":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_security_center":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_dynamics_365":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_iot":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_cloud_app_security":{"schema":{"alerts_enabled":{"type":"TypeBool","optional":true,"default":true},"discovery_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_microsoft_defender_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_intelligence":{"schema":{"bing_safety_phishing_url_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_emerging_threat_feed_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_365":{"schema":{"exchange_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sharepoint_enabled":{"type":"TypeBool","optional":true,"default":true},"teams_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_office_365_project":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_atp":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_irm":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_power_bi":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence_taxii":{"schema":{"api_root_url":{"type":"TypeString","required":true},"collection_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z"},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"polling_frequency":{"type":"TypeString","optional":true,"default":"OnceAnHour"},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_log_analytics_workspace_onboarding":{"schema":{"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_metadata":{"schema":{"author":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"domains":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verticals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content_id":{"type":"TypeString","required":true},"content_schema_version":{"type":"TypeString","optional":true,"default":"2.0"},"custom_version":{"type":"TypeString","optional":true},"dependency":{"type":"TypeString","optional":true},"first_publish_date":{"type":"TypeString","optional":true},"icon_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"last_publish_date":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true},"preview_images":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"preview_images_dark":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"threat_analysis_tactics":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_analysis_techniques":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_threat_intelligence_indicator":{"schema":{"confidence":{"type":"TypeInt","optional":true,"default":-1},"created_by":{"type":"TypeString","optional":true},"created_on":{"type":"TypeString","computed":true},"defanged":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"extension":{"type":"TypeString","optional":true,"computed":true},"external_id":{"type":"TypeString","computed":true},"external_last_updated_time_utc":{"type":"TypeString","computed":true},"external_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"hashes":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"source_name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}}},"granular_marking":{"type":"TypeList","optional":true,"elem":{"schema":{"language":{"type":"TypeString","optional":true},"marking_ref":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"guid":{"type":"TypeString","computed":true},"indicator_type":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kill_chain_phase":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true}}}},"language":{"type":"TypeString","optional":true},"last_updated_time_utc":{"type":"TypeString","computed":true},"object_marking_refs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parsed_pattern":{"type":"TypeList","computed":true,"elem":{"schema":{"pattern_type_key":{"type":"TypeString","computed":true},"pattern_type_values":{"type":"TypeList","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true},"value_type":{"type":"TypeString","computed":true}}}}}}},"pattern":{"type":"TypeString","required":true},"pattern_type":{"type":"TypeString","required":true},"pattern_version":{"type":"TypeString","optional":true},"revoked":{"type":"TypeBool","optional":true,"default":false},"source":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"validate_from_utc":{"type":"TypeString","required":true},"validate_until_utc":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_watchlist":{"schema":{"default_duration":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"item_search_key":{"type":"TypeString","required":true,"forceNew":true},"labels":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_watchlist_item":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"properties":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"watchlist_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_cluster":{"schema":{"add_on_features":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"azure_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"client_certificate_common_name":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","required":true},"is_admin":{"type":"TypeBool","required":true},"issuer_thumbprint":{"type":"TypeString","optional":true}}}},"client_certificate_thumbprint":{"type":"TypeList","optional":true,"elem":{"schema":{"is_admin":{"type":"TypeBool","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"cluster_code_version":{"type":"TypeString","optional":true,"computed":true},"cluster_endpoint":{"type":"TypeString","computed":true},"diagnostics_config":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_endpoint":{"type":"TypeString","required":true},"protected_account_key_name":{"type":"TypeString","required":true},"queue_endpoint":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"fabric_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_endpoint":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","required":true,"elem":{"schema":{"application_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"client_endpoint_port":{"type":"TypeInt","required":true},"durability_level":{"type":"TypeString","optional":true,"default":"Bronze"},"ephemeral_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"http_endpoint_port":{"type":"TypeInt","required":true},"instance_count":{"type":"TypeInt","required":true},"is_primary":{"type":"TypeBool","required":true},"is_stateless":{"type":"TypeBool","optional":true},"multiple_availability_zones":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reverse_proxy_endpoint_port":{"type":"TypeInt","optional":true}}}},"reliability_level":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_proxy_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"reverse_proxy_certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"service_fabric_zonal_upgrade_mode":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_mode":{"type":"TypeString","required":true},"upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"delta_health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_delta_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0},"max_upgrade_domain_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"force_restart_enabled":{"type":"TypeBool","optional":true},"health_check_retry_timeout":{"type":"TypeString","optional":true,"default":"00:45:00"},"health_check_stable_duration":{"type":"TypeString","optional":true,"default":"00:01:00"},"health_check_wait_duration":{"type":"TypeString","optional":true,"default":"00:00:30"},"health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"upgrade_domain_timeout":{"type":"TypeString","optional":true,"default":"02:00:00"},"upgrade_replica_set_check_timeout":{"type":"TypeString","optional":true,"default":"10675199.02:48:05.4775807"},"upgrade_timeout":{"type":"TypeString","optional":true,"default":"12:00:00"}}},"maxItems":1},"vm_image":{"type":"TypeString","required":true,"forceNew":true},"vmss_zonal_upgrade_mode":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_managed_cluster":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","optional":true},"thumbprint":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"backup_service_enabled":{"type":"TypeBool","optional":true},"client_connection_port":{"type":"TypeInt","required":true},"custom_fabric_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","required":true},"section":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dns_name":{"type":"TypeString","optional":true,"computed":true},"dns_service_enabled":{"type":"TypeBool","optional":true},"http_gateway_port":{"type":"TypeInt","required":true},"lb_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true},"frontend_port":{"type":"TypeInt","required":true},"probe_protocol":{"type":"TypeString","required":true},"probe_request_path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","optional":true,"elem":{"schema":{"application_port_range":{"type":"TypeString","required":true},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"data_disk_size_gb":{"type":"TypeInt","required":true},"data_disk_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"},"ephemeral_port_range":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"multiple_placement_groups_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"primary":{"type":"TypeBool","optional":true},"stateless":{"type":"TypeBool","optional":true},"vm_image_offer":{"type":"TypeString","required":true},"vm_image_publisher":{"type":"TypeString","required":true},"vm_image_sku":{"type":"TypeString","required":true},"vm_image_version":{"type":"TypeString","required":true},"vm_instance_count":{"type":"TypeInt","required":true},"vm_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"certificates":{"type":"TypeList","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}}},"vault_id":{"type":"TypeString","required":true}}}},"vm_size":{"type":"TypeString","required":true}}}},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_wave":{"type":"TypeString","optional":true,"default":"Wave0"},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling_enabled":{"type":"TypeBool","optional":true,"default":false},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","optional":true,"computed":true},"zone_balancing_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":0},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_id":{"type":"TypeString","required":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_network_rule_set":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true,"default":false},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true,"default":true},"enable_express":{"type":"TypeBool","optional":true,"default":false},"enable_partitioning":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"client_scoped_subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"forceNew":true},"is_client_scoped_subscription_durable":{"type":"TypeBool","computed":true},"is_client_scoped_subscription_shareable":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"client_scoped_subscription_enabled":{"type":"TypeBool","optional":true,"default":false},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","optional":true,"default":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription_rule":{"schema":{"action":{"type":"TypeString","optional":true},"correlation_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","optional":true},"correlation_id":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"message_id":{"type":"TypeString","optional":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reply_to":{"type":"TypeString","optional":true},"reply_to_session_id":{"type":"TypeString","optional":true},"session_id":{"type":"TypeString","optional":true},"to":{"type":"TypeString","optional":true}}},"maxItems":1},"filter_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_filter":{"type":"TypeString","optional":true},"sql_filter_compatibility_level":{"type":"TypeInt","computed":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"enable_express":{"type":"TypeBool","optional":true},"enable_partitioning":{"type":"TypeBool","optional":true,"forceNew":true},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"support_ordering":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image":{"schema":{"accelerated_network_support_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"architecture":{"type":"TypeString","optional":true,"default":"x64","forceNew":true},"confidential_vm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"confidential_vm_supported":{"type":"TypeBool","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"disk_types_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true,"forceNew":true},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"identifier":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"max_recommended_vcpu_count":{"type":"TypeInt","optional":true},"min_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"min_recommended_vcpu_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true,"forceNew":true},"purchase_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_note_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"specialized":{"type":"TypeBool","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"community_gallery":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"eula":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"prefix":{"type":"TypeString","required":true,"forceNew":true},"publisher_email":{"type":"TypeString","required":true,"forceNew":true},"publisher_uri":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"permission":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_version":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"image_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_image_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk_snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"replication_mode":{"type":"TypeString","optional":true,"default":"Full","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"hostname":{"type":"TypeString","computed":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"live_trace_enabled":{"type":"TypeBool","optional":true,"default":false},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":30},"service_mode":{"type":"TypeString","optional":true,"default":"Default"},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"upstream_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"category_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"event_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hub_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_network_acl":{"schema":{"default_action":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"sub_resource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"source_network_name":{"type":"TypeString","required":true,"forceNew":true},"source_system_center_virtual_machine_manager_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_site_recovery_hyperv_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_hours":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_hours":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"replication_interval_in_seconds":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_replication_policy_association":{"schema":{"hyperv_site_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_site_recovery_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_network_id":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container_mapping":{"schema":{"automatic_update":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true},"automation_account_id":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_source_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_target_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replicated_vm":{"schema":{"managed_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_id":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_disk_encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","configMode":"Auto","required":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_encryption_key":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"target_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"target_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_replica_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true}}}},"multi_vm_group_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"failover_test_public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"failover_test_static_ip":{"type":"TypeString","optional":true,"computed":true},"failover_test_subnet_name":{"type":"TypeString","optional":true,"computed":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"recovery_public_ip_address_id":{"type":"TypeString","optional":true},"source_network_interface_id":{"type":"TypeString","optional":true,"computed":true},"target_static_ip":{"type":"TypeString","optional":true},"target_subnet_name":{"type":"TypeString","optional":true}}}},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","required":true,"forceNew":true},"target_availability_set_id":{"type":"TypeString","optional":true},"target_boot_diagnostic_storage_account_id":{"type":"TypeString","optional":true},"target_capacity_reservation_group_id":{"type":"TypeString","optional":true},"target_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"target_network_id":{"type":"TypeString","optional":true,"computed":true},"target_proximity_placement_group_id":{"type":"TypeString","optional":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"target_virtual_machine_scale_set_id":{"type":"TypeString","optional":true},"target_zone":{"type":"TypeString","optional":true,"forceNew":true},"test_network_id":{"type":"TypeString","optional":true,"computed":true},"unmanaged_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_uri":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}}}}},"timeouts":{"create":180,"read":5,"delete":80,"update":80}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"primary_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_zone":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"boot_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"failover_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_group":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"minItems":3},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"shutdown_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"source_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_services_vault_hyperv_site":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":180}},"azurerm_site_recovery_vmware_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_vmware_replication_policy_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_snapshot":{"schema":{"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"incremental_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_accelerator":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_active_deployment":{"schema":{"deployment_name":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_api_portal":{"schema":{"gateway_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"https_only_enabled":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_spring_cloud_api_portal_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_api_portal_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"custom_persistent_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"mount_path":{"type":"TypeString","required":true},"read_only_enabled":{"type":"TypeBool","optional":true,"default":false},"share_name":{"type":"TypeString","required":true},"storage_name":{"type":"TypeString","required":true}}},"minItems":1},"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backend_protocol":{"type":"TypeString","optional":true,"default":"Default"},"read_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":300},"send_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":60},"session_affinity":{"type":"TypeString","optional":true,"default":"None"},"session_cookie_max_age":{"type":"TypeInt","optional":true}}},"maxItems":1},"is_public":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"persistent_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","optional":true,"default":"/persistent"},"size_in_gb":{"type":"TypeInt","required":true}}},"maxItems":1},"public_endpoint_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"tls_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_cosmosdb_association":{"schema":{"api_type":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_access_key":{"type":"TypeString","required":true},"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_cassandra_keyspace_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_database_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_graph_name":{"type":"TypeString","optional":true},"cosmosdb_mongo_database_name":{"type":"TypeString","optional":true},"cosmosdb_sql_database_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_mysql_association":{"schema":{"database_name":{"type":"TypeString","required":true},"mysql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_redis_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"redis_access_key":{"type":"TypeString","required":true},"redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_application_live_view":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_build_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"build_result_id":{"type":"TypeString","required":true},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_build_pack_binding":{"schema":{"binding_type":{"type":"TypeString","optional":true},"launch":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_builder_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_builder":{"schema":{"build_pack_group":{"type":"TypeSet","required":true,"elem":{"schema":{"build_pack_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"stack":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_certificate":{"schema":{"certificate_content":{"type":"TypeString","optional":true,"forceNew":true},"exclude_private_key":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_configuration_service":{"schema":{"generation":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"ca_certificate_id":{"type":"TypeString","optional":true},"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"label":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"patterns":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"private_key":{"type":"TypeString","optional":true},"search_paths":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"strict_host_key_checking":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}}}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_connection":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"spring_cloud_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_container_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"arguments":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"commands":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"language_framework":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"server":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_custom_domain":{"schema":{"certificate_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_customized_accelerator":{"schema":{"accelerator_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"git_repository":{"type":"TypeList","required":true,"elem":{"schema":{"basic_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"ca_certificate_id":{"type":"TypeString","optional":true},"commit":{"type":"TypeString","optional":true},"git_tag":{"type":"TypeString","optional":true},"interval_in_seconds":{"type":"TypeInt","optional":true},"ssh_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}}},"maxItems":1},"icon_url":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_accelerator_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_dev_tool_portal":{"schema":{"application_accelerator_enabled":{"type":"TypeBool","optional":true,"computed":true},"application_live_view_enabled":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"metadata_url":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway":{"schema":{"api_metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"documentation_url":{"type":"TypeString","optional":true},"server_url":{"type":"TypeString","optional":true},"title":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"application_performance_monitoring_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verification_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origin_patterns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","optional":true},"exposed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"max_age_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"https_only":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"default":"1"},"memory":{"type":"TypeString","optional":true,"default":"2Gi"}}},"maxItems":1},"sensitive_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_route_config":{"schema":{"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"open_api":{"type":"TypeList","optional":true,"elem":{"schema":{"uri":{"type":"TypeString","optional":true}}},"maxItems":1},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeString","optional":true,"default":"HTTP"},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"classification_tags":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"sso_validation_enabled":{"type":"TypeBool","optional":true},"title":{"type":"TypeString","optional":true},"token_relay":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","optional":true}}}},"spring_cloud_app_id":{"type":"TypeString","optional":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"sso_validation_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_java_deployment":{"schema":{"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"jvm_options":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"default":"Java_8"},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_service":{"schema":{"build_agent_pool_size":{"type":"TypeString","optional":true},"config_server_git_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"pattern":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"container_registry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"server":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"default_build_service":{"type":"TypeList","optional":true,"elem":{"schema":{"container_registry_name":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"log_stream_public_endpoint_enabled":{"type":"TypeBool","optional":true},"marketplace":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"plan":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"app_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"app_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"cidr_ranges":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":3},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"read_timeout_seconds":{"type":"TypeInt","optional":true},"service_runtime_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_runtime_subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_registry_enabled":{"type":"TypeBool","optional":true},"service_registry_id":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"S0","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"sample_rate":{"type":"TypeFloat","optional":true,"default":10}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_date":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","optional":true,"computed":true},"elastic_pool_name":{"type":"TypeString","optional":true,"computed":true},"encryption":{"type":"TypeString","computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"operation_mode":{"type":"TypeString","optional":true,"default":"Import"},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_size_bytes":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_scale":{"type":"TypeBool","optional":true,"default":false},"requested_service_objective_id":{"type":"TypeString","optional":true,"computed":true},"requested_service_objective_name":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"source_database_deletion_date":{"type":"TypeString","optional":true,"computed":true},"source_database_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_elasticpool":{"schema":{"creation_date":{"type":"TypeString","computed":true},"db_dtu_max":{"type":"TypeInt","optional":true,"computed":true},"db_dtu_min":{"type":"TypeInt","optional":true,"computed":true},"dtu":{"type":"TypeInt","required":true},"edition":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_size":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_servers":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_database":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"default":false},"login":{"type":"TypeString","required":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"computed":true},"email_addresses":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ssh_public_key":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_stack_hci_cluster":{"schema":{"automanage_configuration_id":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site":{"schema":{"api_key":{"type":"TypeString","computed":true},"default_host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_size":{"type":"TypeString","optional":true,"default":"Free"},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"static_site_id":{"type":"TypeString","required":true,"forceNew":true},"validation_token":{"type":"TypeString","computed":true},"validation_type":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"account_kind":{"type":"TypeString","optional":true,"default":"StorageV2"},"account_replication_type":{"type":"TypeString","required":true},"account_tier":{"type":"TypeString","required":true,"forceNew":true},"allow_nested_items_to_be_public":{"type":"TypeBool","optional":true,"default":true},"allowed_copy_scope":{"type":"TypeString","optional":true},"azure_files_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","required":true},"domain_sid":{"type":"TypeString","required":true},"forest_name":{"type":"TypeString","required":true},"netbios_domain_name":{"type":"TypeString","required":true},"storage_sid":{"type":"TypeString","required":true}}},"maxItems":1},"directory_type":{"type":"TypeString","required":true}}},"maxItems":1},"blob_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"change_feed_enabled":{"type":"TypeBool","optional":true,"default":false},"change_feed_retention_in_days":{"type":"TypeInt","optional":true},"container_delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"default_service_version":{"type":"TypeString","optional":true,"computed":true},"delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"last_access_time_enabled":{"type":"TypeBool","optional":true,"default":false},"restore_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true}}},"maxItems":1},"versioning_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cross_tenant_replication_enabled":{"type":"TypeBool","optional":true,"default":true},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"use_subdomain":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_to_oauth_authentication":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_https_traffic_only":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_protected_append_writes":{"type":"TypeBool","required":true},"period_since_creation_in_days":{"type":"TypeInt","required":true},"state":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"is_hns_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"large_file_share_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"default":"TLS1_2"},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"nfsv3_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"queue_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"queue_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"hour_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"logging":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"delete":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"minute_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"choice":{"type":"TypeString","optional":true,"default":"MicrosoftRouting"},"publish_internet_endpoints":{"type":"TypeBool","optional":true,"default":false},"publish_microsoft_endpoints":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sas_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_action":{"type":"TypeString","optional":true,"default":"Log"},"expiration_period":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"sftp_enabled":{"type":"TypeBool","optional":true,"default":false},"share_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"smb":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"channel_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"kerberos_ticket_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"multichannel_enabled":{"type":"TypeBool","optional":true,"default":false},"versions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"shared_access_key_enabled":{"type":"TypeBool","optional":true,"default":true},"static_website":{"type":"TypeList","optional":true,"elem":{"schema":{"error_404_document":{"type":"TypeString","optional":true},"index_document":{"type":"TypeString","optional":true}}},"maxItems":1},"table_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_account_customer_managed_key":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_local_user":{"schema":{"home_directory":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","computed":true},"permission_scope":{"type":"TypeList","optional":true,"elem":{"schema":{"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"create":{"type":"TypeBool","optional":true,"default":false},"delete":{"type":"TypeBool","optional":true,"default":false},"list":{"type":"TypeBool","optional":true,"default":false},"read":{"type":"TypeBool","optional":true,"default":false},"write":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_name":{"type":"TypeString","required":true},"service":{"type":"TypeString","required":true}}}},"sid":{"type":"TypeString","computed":true},"ssh_authorized_key":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true}}}},"ssh_key_enabled":{"type":"TypeBool","optional":true,"default":false},"ssh_password_enabled":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_network_rules":{"schema":{"bypass":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_subnet_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"cache_control":{"type":"TypeString","optional":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallelism":{"type":"TypeInt","optional":true,"default":8,"forceNew":true},"size":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"source_content":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_blob_inventory_policy":{"schema":{"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"exclude_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"include_blob_versions":{"type":"TypeBool","optional":true,"default":false},"include_deleted":{"type":"TypeBool","optional":true,"default":false},"include_snapshots":{"type":"TypeBool","optional":true,"default":false},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10}}},"maxItems":1},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true},"schema_fields":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","optional":true,"default":"private"},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_filesystem":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"group":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"owner":{"type":"TypeString","optional":true,"computed":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_path":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"filesystem_name":{"type":"TypeString","required":true,"forceNew":true},"group":{"type":"TypeString","optional":true,"computed":true},"owner":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","required":true,"forceNew":true},"resource":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_encryption_scope":{"schema":{"infrastructure_encryption_required":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"base_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","optional":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"snapshot":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"version":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"filters":{"type":"TypeList","required":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operation":{"type":"TypeString","optional":true,"default":"=="},"value":{"type":"TypeString","required":true}}}},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_agent":{"schema":{"arc_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"arc_virtual_machine_uuid":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_job_definition":{"schema":{"agent_name":{"type":"TypeString","optional":true},"copy_mode":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source_name":{"type":"TypeString","required":true,"forceNew":true},"source_sub_path":{"type":"TypeString","optional":true,"forceNew":true},"storage_mover_project_id":{"type":"TypeString","required":true,"forceNew":true},"target_name":{"type":"TypeString","required":true,"forceNew":true},"target_sub_path":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_project":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_source_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"export":{"type":"TypeString","optional":true,"forceNew":true},"host":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nfs_version":{"type":"TypeString","optional":true,"default":"NFSauto","forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_target_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_object_replication":{"schema":{"destination_object_replication_id":{"type":"TypeString","computed":true},"destination_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"copy_blobs_created_after":{"type":"TypeString","optional":true,"default":"OnlyNewObjects"},"destination_container_name":{"type":"TypeString","required":true,"forceNew":true},"filter_out_blobs_with_prefix":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"source_container_name":{"type":"TypeString","required":true,"forceNew":true}}}},"source_object_replication_id":{"type":"TypeString","computed":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_queue":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}}},"id":{"type":"TypeString","required":true}}}},"enabled_protocol":{"type":"TypeString","optional":true,"default":"SMB","forceNew":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeInt","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_directory":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"share_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_file":{"schema":{"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_length":{"type":"TypeInt","computed":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","optional":true,"default":"","forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"storage_share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","optional":true,"default":"AllowAllTraffic"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync_cloud_endpoint":{"schema":{"file_share_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_sync_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"storage_sync_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_storage_table":{"schema":{"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","required":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"streaming_capacity":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_stream_analytics_function_javascript_uda":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"script":{"type":"TypeString","required":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_function_javascript_udf":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","optional":true,"computed":true},"content_storage_policy":{"type":"TypeString","optional":true,"default":"SystemAccount"},"data_locale":{"type":"TypeString","optional":true,"computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":5},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":0},"events_out_of_order_policy":{"type":"TypeString","optional":true,"default":"Adjust"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"job_id":{"type":"TypeString","computed":true},"job_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_error_policy":{"type":"TypeString","optional":true,"default":"Drop"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_id":{"type":"TypeString","optional":true},"streaming_units":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transformation_query":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true,"default":"Cloud","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job_schedule":{"schema":{"last_output_time":{"type":"TypeString","computed":true},"start_mode":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5}},"azurerm_stream_analytics_output_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"batch_max_wait_time":{"type":"TypeString","optional":true},"batch_min_rows":{"type":"TypeInt","optional":true},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_cosmosdb":{"schema":{"container_name":{"type":"TypeString","required":true},"cosmosdb_account_key":{"type":"TypeString","required":true},"cosmosdb_sql_database_id":{"type":"TypeString","required":true},"document_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_function":{"schema":{"api_key":{"type":"TypeString","required":true},"batch_max_count":{"type":"TypeInt","optional":true,"default":100},"batch_max_in_bytes":{"type":"TypeInt","optional":true,"default":262144},"function_app":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_mssql":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"database":{"type":"TypeString","required":true,"forceNew":true},"max_batch_count":{"type":"TypeFloat","optional":true,"default":10000},"max_writer_count":{"type":"TypeFloat","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_powerbi":{"schema":{"dataset":{"type":"TypeString","required":true},"group_id":{"type":"TypeString","required":true},"group_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true},"token_user_display_name":{"type":"TypeString","optional":true},"token_user_principal_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_queue":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"queue_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_topic":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_synapse":{"schema":{"database":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_table":{"schema":{"batch_size":{"type":"TypeInt","required":true},"columns_to_remove":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_mssql":{"schema":{"database":{"type":"TypeString","required":true},"delta_snapshot_query":{"type":"TypeString","optional":true},"full_snapshot_query":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"refresh_interval_duration":{"type":"TypeString","optional":true},"refresh_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_blob":{"schema":{"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub_v2":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_iothub":{"schema":{"endpoint":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"iothub_namespace":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"shared_access_policy_key":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"delegation":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"service_delegation":{"type":"TypeList","required":true,"elem":{"schema":{"actions":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}},"maxItems":1}}}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","optional":true,"computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_endpoint_policy_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"service_endpoints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_nat_gateway_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_network_security_group_association":{"schema":{"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_route_table_association":{"schema":{"route_table_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_service_endpoint_storage_policy":{"schema":{"definition":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"service":{"type":"TypeString","optional":true,"default":"Microsoft.Storage"},"service_resources":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription":{"schema":{"alias":{"type":"TypeString","optional":true,"description":"The Alias Name of the subscription. If omitted a new UUID will be generated for this property.","computed":true,"forceNew":true},"billing_scope_id":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true,"description":"The GUID of the Subscription.","computed":true,"forceNew":true},"subscription_name":{"type":"TypeString","required":true,"description":"The Display Name for the Subscription."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID to which the subscription belongs","computed":true},"workload":{"type":"TypeString","optional":true,"description":"The workload type for the Subscription. Possible values are `Production` (default) and `DevTest`.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_synapse_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_azure":{"schema":{"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_self_hosted":{"schema":{"authorization_key_primary":{"type":"TypeString","computed":true},"authorization_key_secondary":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_linked_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_private_link_hub":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_role_assignment":{"schema":{"principal_id":{"type":"TypeString","required":true,"forceNew":true},"role_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_spark_pool":{"schema":{"auto_pause":{"type":"TypeList","optional":true,"elem":{"schema":{"delay_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true},"min_node_count":{"type":"TypeInt","required":true}}},"maxItems":1},"cache_size":{"type":"TypeInt","optional":true},"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_executor_allocation_enabled":{"type":"TypeBool","optional":true,"default":false},"library_requirement":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"max_executors":{"type":"TypeInt","optional":true},"min_executors":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true},"node_size":{"type":"TypeString","required":true},"node_size_family":{"type":"TypeString","required":true},"session_level_packages_enabled":{"type":"TypeBool","optional":true,"default":false},"spark_config":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"spark_events_folder":{"type":"TypeString","optional":true,"default":"/events"},"spark_log_folder":{"type":"TypeString","optional":true,"default":"/logs"},"spark_version":{"type":"TypeString","optional":true,"default":"2.4"},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"data_encrypted":{"type":"TypeBool","optional":true},"geo_backup_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_database_id":{"type":"TypeString","optional":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"point_in_time":{"type":"TypeString","required":true,"forceNew":true},"source_database_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sql_pool_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment_baseline":{"schema":{"baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"rule_name":{"type":"TypeString","required":true},"sql_pool_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_classifier":{"schema":{"context":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"importance":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"member_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true},"workload_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_group":{"schema":{"importance":{"type":"TypeString","optional":true,"default":"normal"},"max_resource_percent":{"type":"TypeInt","required":true},"max_resource_percent_per_request":{"type":"TypeFloat","optional":true,"default":3},"min_resource_percent":{"type":"TypeInt","required":true},"min_resource_percent_per_request":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_execution_timeout_in_seconds":{"type":"TypeInt","optional":true},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace":{"schema":{"aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"azure_devops_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"last_commit_id":{"type":"TypeString","optional":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"compute_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","optional":true,"default":"cmk"},"key_versionless_id":{"type":"TypeString","required":true}}},"maxItems":1},"data_exfiltration_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"github_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","optional":true},"last_commit_id":{"type":"TypeString","optional":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"linking_allowed_for_aad_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sql_administrator_login":{"type":"TypeString","optional":true,"forceNew":true},"sql_administrator_login_password":{"type":"TypeString","optional":true},"sql_identity_control_enabled":{"type":"TypeBool","optional":true},"storage_data_lake_gen2_filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_key":{"schema":{"active":{"type":"TypeBool","required":true},"customer_managed_key_name":{"type":"TypeString","required":true},"customer_managed_key_versionless_id":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_sql_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true},"workspace_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_template_deployment":{"schema":{"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"parameters_body":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"template_body":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_tenant_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_traffic_manager_azure_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_external_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_nested_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"minimum_child_endpoints":{"type":"TypeInt","required":true},"minimum_required_child_endpoints_ipv4":{"type":"TypeInt","optional":true},"minimum_required_child_endpoints_ipv6":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","required":true,"elem":{"schema":{"relative_name":{"type":"TypeString","required":true,"forceNew":true},"ttl":{"type":"TypeInt","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","computed":true},"max_return":{"type":"TypeInt","optional":true},"monitor_config":{"type":"TypeList","required":true,"elem":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"expected_status_code_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":30},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":10},"tolerated_number_of_failures":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"profile_status":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","required":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer":{"schema":{"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer_edge_module":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"video_analyzer_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_desktop_application":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"command_line_argument_policy":{"type":"TypeString","required":true},"command_line_arguments":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true,"computed":true},"icon_index":{"type":"TypeInt","optional":true},"icon_path":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","required":true},"show_in_portal":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_application_group":{"schema":{"default_desktop_display_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"load_balancer_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_sessions_allowed":{"type":"TypeInt","optional":true,"default":999999},"name":{"type":"TypeString","required":true,"forceNew":true},"personal_desktop_assignment_type":{"type":"TypeString","optional":true,"forceNew":true},"preferred_app_group_type":{"type":"TypeString","optional":true,"default":"Desktop","description":"Preferred App Group type to display","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scheduled_agent_updates":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","required":true}}},"maxItems":2},"timezone":{"type":"TypeString","optional":true,"default":"UTC"},"use_session_host_timezone":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"start_vm_on_connect":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"validate_environment":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool_registration_info":{"schema":{"expiration_date":{"type":"TypeString","required":true},"hostpool_id":{"type":"TypeString","required":true,"forceNew":true},"token":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_desktop_scaling_plan":{"schema":{"description":{"type":"TypeString","optional":true},"exclusion_tag":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"hostpool_id":{"type":"TypeString","required":true},"scaling_plan_enabled":{"type":"TypeBool","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"off_peak_load_balancing_algorithm":{"type":"TypeString","required":true},"off_peak_start_time":{"type":"TypeString","required":true},"peak_load_balancing_algorithm":{"type":"TypeString","required":true},"peak_start_time":{"type":"TypeString","required":true},"ramp_down_capacity_threshold_percent":{"type":"TypeInt","required":true},"ramp_down_force_logoff_users":{"type":"TypeBool","required":true},"ramp_down_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_down_minimum_hosts_percent":{"type":"TypeInt","required":true},"ramp_down_notification_message":{"type":"TypeString","required":true},"ramp_down_start_time":{"type":"TypeString","required":true},"ramp_down_stop_hosts_when":{"type":"TypeString","required":true},"ramp_down_wait_time_minutes":{"type":"TypeInt","required":true},"ramp_up_capacity_threshold_percent":{"type":"TypeInt","optional":true},"ramp_up_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_up_minimum_hosts_percent":{"type":"TypeInt","optional":true},"ramp_up_start_time":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace":{"schema":{"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace_application_group_association":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","optional":true,"forceNew":true},"default_route_table_id":{"type":"TypeString","computed":true},"hub_routing_preference":{"type":"TypeString","optional":true,"default":"ExpressRoute"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"next_hop_ip_address":{"type":"TypeString","required":true}}}},"sku":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_auto_scale_min_capacity":{"type":"TypeInt","optional":true,"default":2},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_connection_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"static_vnet_local_route_override_criteria":{"type":"TypeString","optional":true,"default":"Contains","forceNew":true},"static_vnet_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true},"next_hop_ip_address":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_ip":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_route_table_route":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"},"route_table_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_security_partner_provider":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","required":true,"forceNew":true}}},"maxItems":1},"availability_set_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"delete_data_disks_on_termination":{"type":"TypeBool","optional":true,"default":false},"delete_os_disk_on_termination":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"os_profile":{"type":"TypeSet","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","required":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true,"default":false},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":false},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"primary_network_interface_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_data_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"vhd_uri":{"type":"TypeString","optional":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"storage_image_reference":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"storage_os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"image_uri":{"type":"TypeString","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","optional":true,"computed":true},"vhd_uri":{"type":"TypeString","optional":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vm_size":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_data_disk_attachment":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Attach","forceNew":true},"lun":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_machine_scale_set":{"schema":{"automatic_os_upgrade":{"type":"TypeBool","optional":true,"default":false},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"health_probe_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeSet","required":true,"elem":{"schema":{"accelerated_networking":{"type":"TypeBool","optional":true},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"public_ip_address_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","required":true},"idle_timeout":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"subnet_id":{"type":"TypeString","required":true}}}},"ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","required":true}}}},"os_profile":{"type":"TypeList","required":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name_prefix":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","optional":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeSet","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true},"provision_vm_agent":{"type":"TypeBool","optional":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"priority":{"type":"TypeString","optional":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_batch_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","optional":true,"default":20},"pause_time_between_batches":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1},"single_placement_group":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"storage_profile_data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true}}}},"storage_profile_image_reference":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"offer":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_profile_os_disk":{"type":"TypeSet","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"image":{"type":"TypeString","optional":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"vhd_containers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_policy_mode":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_scale_set_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_scale_set_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"machine_scope":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exclude_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"include_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"bgp_community":{"type":"TypeString","optional":true},"ddos_protection_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"enable":{"type":"TypeBool","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"enforcement":{"type":"TypeString","required":true}}},"maxItems":1},"flow_timeout_in_minutes":{"type":"TypeInt","optional":true},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"security_group":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_dns_servers":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","optional":true,"computed":true},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","optional":true},"peer_weight":{"type":"TypeInt","optional":true},"peering_addresses":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"apipa_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"default_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_name":{"type":"TypeString","optional":true,"computed":true},"tunnel_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1}}},"maxItems":1},"custom_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"default_local_network_gateway_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"generation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true,"default":"vnetGatewayConfig"},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":3},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"vpn_client_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","optional":true},"aad_issuer":{"type":"TypeString","optional":true},"aad_tenant":{"type":"TypeString","optional":true},"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","optional":true},"radius_server_secret":{"type":"TypeString","optional":true},"revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"vpn_auth_types":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":3},"vpn_client_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"vpn_type":{"type":"TypeString","optional":true,"default":"RouteBased","forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"connection_protocol":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_bgp_addresses":{"type":"TypeList","optional":true,"elem":{"schema":{"primary":{"type":"TypeString","required":true},"secondary":{"type":"TypeString","optional":true}}},"maxItems":1},"dpd_timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"express_route_circuit_id":{"type":"TypeString","optional":true,"forceNew":true},"express_route_gateway_bypass":{"type":"TypeBool","optional":true,"computed":true},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_datasize":{"type":"TypeInt","optional":true,"computed":true},"sa_lifetime":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"local_network_gateway_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_virtual_network_gateway_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_weight":{"type":"TypeInt","optional":true,"computed":true},"shared_key":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true,"forceNew":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","optional":true,"computed":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway_nat_rule":{"schema":{"external_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_peering":{"schema":{"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","optional":true,"default":true},"disable_vpn_encryption":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"office365_local_breakout_category":{"type":"TypeString","optional":true,"default":"None"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"Standard"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vmware_cluster":{"schema":{"cluster_node_count":{"type":"TypeInt","required":true},"cluster_number":{"type":"TypeInt","computed":true},"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"vmware_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_vmware_express_route_authorization":{"schema":{"express_route_authorization_id":{"type":"TypeString","computed":true},"express_route_authorization_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_netapp_volume_attachment":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"netapp_volume_id":{"type":"TypeString","required":true,"forceNew":true},"vmware_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"management_cluster":{"type":"TypeList","required":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","required":true}}},"maxItems":1},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_subnet_cidr":{"type":"TypeString","required":true,"forceNew":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"nsxt_password":{"type":"TypeString","optional":true,"forceNew":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcenter_password":{"type":"TypeString","optional":true,"forceNew":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"create":600,"read":5,"delete":600,"update":600}},"azurerm_voice_services_communications_gateway":{"schema":{"api_bridge":{"type":"TypeString","optional":true},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse","forceNew":true},"codecs":{"type":"TypeString","required":true},"connectivity":{"type":"TypeString","required":true,"forceNew":true},"e911_type":{"type":"TypeString","required":true},"emergency_dial_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_teams_voicemail_pilot_number":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"on_prem_mcp_enabled":{"type":"TypeBool","optional":true},"platforms":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_location":{"type":"TypeSet","required":true,"elem":{"schema":{"allowed_media_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_signaling_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"esrp_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true},"operator_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_voice_services_communications_gateway_test_line":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"purpose":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_services_communications_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway":{"schema":{"bgp_route_translation_for_nat_enabled":{"type":"TypeBool","optional":true,"default":false},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true,"forceNew":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instance_1_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"peer_weight":{"type":"TypeInt","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scale_unit":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_gateway_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_vpn_site_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"traffic_selector_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"local_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"remote_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_link":{"type":"TypeList","required":true,"elem":{"schema":{"bandwidth_mbps":{"type":"TypeInt","optional":true,"default":10},"bgp_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default"},"custom_bgp_address":{"type":"TypeSet","optional":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"ip_configuration_id":{"type":"TypeString","required":true}}}},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"encryption_algorithm":{"type":"TypeString","required":true},"ike_encryption_algorithm":{"type":"TypeString","required":true},"ike_integrity_algorithm":{"type":"TypeString","required":true},"integrity_algorithm":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kb":{"type":"TypeInt","required":true},"sa_lifetime_sec":{"type":"TypeInt","required":true}}},"minItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"policy_based_traffic_selector_enabled":{"type":"TypeBool","optional":true,"default":false},"protocol":{"type":"TypeString","optional":true,"default":"IKEv2"},"ratelimit_enabled":{"type":"TypeBool","optional":true,"default":false},"route_weight":{"type":"TypeInt","optional":true,"default":0},"shared_key":{"type":"TypeString","optional":true},"vpn_site_link_id":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway_nat_rule":{"schema":{"external_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"external_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"internal_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_server_configuration":{"schema":{"azure_active_directory_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"issuer":{"type":"TypeString","required":true},"tenant":{"type":"TypeString","required":true}}},"minItems":1},"client_revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kilobytes":{"type":"TypeInt","required":true},"sa_lifetime_seconds":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"radius":{"type":"TypeList","optional":true,"elem":{"schema":{"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"server":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"score":{"type":"TypeInt","required":true},"secret":{"type":"TypeString","required":true}}}},"server_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vpn_authentication_types":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"vpn_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_server_configuration_policy_group":{"schema":{"is_default":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"priority":{"type":"TypeInt","optional":true,"default":0},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_site":{"schema":{"address_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"device_model":{"type":"TypeString","optional":true},"device_vendor":{"type":"TypeString","optional":true},"link":{"type":"TypeList","optional":true,"elem":{"schema":{"bgp":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"peering_address":{"type":"TypeString","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"provider_name":{"type":"TypeString","optional":true},"speed_in_mbps":{"type":"TypeInt","optional":true,"default":0}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"o365_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"traffic_category":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"default_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"optimize_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_app_hybrid_connection":{"schema":{"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true},"web_app_id":{"type":"TypeString","required":true,"description":"The ID of the Web App for this Hybrid Connection.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_application_firewall_policy":{"schema":{"custom_rules":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"match_conditions":{"type":"TypeList","required":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_variables":{"type":"TypeList","required":true,"elem":{"schema":{"selector":{"type":"TypeString","optional":true},"variable_name":{"type":"TypeString","required":true}}}},"negation_condition":{"type":"TypeBool","optional":true},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","required":true},"rule_type":{"type":"TypeString","required":true}}}},"http_listener_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_rules":{"type":"TypeList","required":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","optional":true,"default":"3.2"}}},"maxItems":1},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"selector_match_operator":{"type":"TypeString","required":true}}}},"managed_rule_set":{"type":"TypeList","required":true,"elem":{"schema":{"rule_group_override":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"rule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"id":{"type":"TypeString","required":true}}}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","required":true}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"path_based_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"policy_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"file_upload_limit_in_mb":{"type":"TypeInt","optional":true,"default":100},"log_scrubbing":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true,"description":"When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to."},"selector_match_operator":{"type":"TypeString","optional":true,"default":"Equals"}}}}}},"maxItems":1},"max_request_body_size_in_kb":{"type":"TypeInt","optional":true,"default":128},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"request_body_check":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"capacity":{"type":"TypeInt","optional":true,"default":1},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_hub":{"schema":{"anonymous_connections_enabled":{"type":"TypeBool","optional":true,"default":false},"event_handler":{"type":"TypeList","optional":true,"elem":{"schema":{"auth":{"type":"TypeList","optional":true,"elem":{"schema":{"managed_identity_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"system_events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_event_pattern":{"type":"TypeString","optional":true}}}},"event_listener":{"type":"TypeList","optional":true,"elem":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"system_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_network_acl":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"description":"Can the Function App only be accessed via HTTPS?","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Function App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","description":"The identifier used by App Service to perform domain ownership verification via DNS TXT record.","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","description":"The default hostname of the Windows Function App Slot.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","description":"The Kind value for this Windows Function App Slot.","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Windows Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","description":"A list of outbound IP addresses. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12`.","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","description":"A list of possible outbound IP addresses, not all of which are necessarily in use. This is a superset of `outbound_ip_address_list`. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of possible outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12,52.143.43.17`. This is a superset of `outbound_ip_addresses`. For example `[\"52.23.25.3\", \"52.143.43.12\",\"52.143.43.17\"]`.","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_windows_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","required":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_web_app_slot":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"computed":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}}},"dataSources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"data_residency_location":{"type":"TypeString","description":"Location in which the B2C tenant is hosted and data resides.","computed":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix."},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","description":"Billing SKU for the B2C tenant.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"read":5}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"filtered_sync_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notifications":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","computed":true},"notify_global_admins":{"type":"TypeBool","computed":true}}}},"replica_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"external_access_enabled":{"type":"TypeBool","computed":true},"public_certificate":{"type":"TypeString","computed":true}}}},"security":{"type":"TypeList","computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","computed":true},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","computed":true},"ntlm_v1_enabled":{"type":"TypeBool","computed":true},"sync_kerberos_passwords":{"type":"TypeBool","computed":true},"sync_ntlm_passwords":{"type":"TypeBool","computed":true},"sync_on_prem_passwords":{"type":"TypeBool","computed":true},"tls_v1_enabled":{"type":"TypeBool","computed":true}}}},"sku":{"type":"TypeString","computed":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_advisor_recommendations":{"schema":{"filter_by_category":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter_by_resource_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"recommendations":{"type":"TypeList","computed":true,"elem":{"schema":{"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"impact":{"type":"TypeString","computed":true},"recommendation_name":{"type":"TypeString","computed":true},"recommendation_type_id":{"type":"TypeString","computed":true},"resource_name":{"type":"TypeString","computed":true},"resource_type":{"type":"TypeString","computed":true},"suppression_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"updated_time":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":10}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"management":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"proxy":{"type":"TypeList","computed":true,"elem":{"schema":{"default_ssl_binding":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"scm":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_api_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notification_sender_email":{"type":"TypeString","computed":true},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"publisher_email":{"type":"TypeString","computed":true},"publisher_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scm_url":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"revision":{"type":"TypeString","required":true},"service_url":{"type":"TypeString","computed":true},"soap_pass_through":{"type":"TypeBool","computed":true},"subscription_key_parameter_names":{"type":"TypeList","computed":true,"elem":{"schema":{"header":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true}}}},"subscription_required":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"version_set_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"version_header_name":{"type":"TypeString","computed":true},"version_query_name":{"type":"TypeString","computed":true},"versioning_scheme":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true},"certificate_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"request_client_certificate_enabled":{"type":"TypeBool","computed":true},"tls10_enabled":{"type":"TypeBool","computed":true},"tls11_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"external_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true},"approval_required":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"product_id":{"type":"TypeString","required":true},"published":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","computed":true},"subscriptions_limit":{"type":"TypeInt","computed":true},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true},"email":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"note":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"state":{"type":"TypeString","computed":true},"user_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","computed":true}}}},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","required":true},"label":{"type":"TypeString","optional":true,"default":""},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_configuration_keys":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"items":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"label":{"type":"TypeString","computed":true},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}}}},"key":{"type":"TypeString","optional":true,"default":""},"label":{"type":"TypeString","optional":true,"default":""}},"timeouts":{"read":5}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_cert_enabled":{"type":"TypeBool","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","computed":true},"acr_user_managed_identity_client_id":{"type":"TypeString","computed":true},"always_on":{"type":"TypeBool","computed":true},"app_command_line":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"number_of_workers":{"type":"TypeInt","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_certificate":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","computed":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","computed":true},"distinguished_name":{"type":"TypeString","computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"product_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_environment":{"schema":{"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"front_end_scale_factor":{"type":"TypeInt","computed":true},"internal_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_ip_address":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","computed":true},"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"dedicated_host_count":{"type":"TypeInt","computed":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","computed":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"is_xenon":{"type":"TypeBool","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"per_site_scaling":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"size":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_application_gateway":{"schema":{"backend_address_pool":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeString","computed":true},"instrumentation_key":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_arc_machine":{"schema":{"active_directory_fqdn":{"type":"TypeString","computed":true},"agent":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variables":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"bool":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeBool","computed":true}}}},"datetime":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"encrypted":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"int":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeInt","computed":true}}}},"null":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"object":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"string":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"platform_update_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_backup_policy_file_share":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_backup_policy_vm":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","computed":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"ip_connect_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_units":{"type":"TypeInt","computed":true},"shareable_link_enabled":{"type":"TypeBool","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_allocation_mode":{"type":"TypeString","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true},"allow_updates":{"type":"TypeBool","computed":true},"default_version":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","computed":true},"thumbprint_algorithm":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"auto_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","computed":true},"formula":{"type":"TypeString","computed":true}}}},"certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"store_location":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","computed":true},"visibility":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","computed":true}}}},"data_disks":{"type":"TypeList","computed":true,"elem":{"schema":{"caching":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"lun":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}},"disk_encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","computed":true}}}},"display_name":{"type":"TypeString","computed":true},"extensions":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"protected_settings":{"type":"TypeString","computed":true},"provision_after_extensions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","computed":true},"settings_json":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"type_handler_version":{"type":"TypeString","computed":true}}}},"fixed_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"resize_timeout":{"type":"TypeString","computed":true},"target_dedicated_nodes":{"type":"TypeInt","computed":true},"target_low_priority_nodes":{"type":"TypeInt","computed":true}}}},"inter_node_communication":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_tasks_per_node":{"type":"TypeInt","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"blobfuse_options":{"type":"TypeString","computed":true},"container_name":{"type":"TypeString","computed":true},"identity_id":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"sas_key":{"type":"TypeString","computed":true}}}},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"azure_file_url":{"type":"TypeString","computed":true},"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true}}}},"cifs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"nfs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"network_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dynamic_vnet_assignment_scope":{"type":"TypeString","computed":true},"endpoint_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port_range":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"protocol":{"type":"TypeString","computed":true}}}},"public_address_provisioning_type":{"type":"TypeString","computed":true},"public_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","computed":true}}}},"node_agent_sku_id":{"type":"TypeString","computed":true},"node_placement":{"type":"TypeList","computed":true,"elem":{"schema":{"policy":{"type":"TypeString","computed":true}}}},"os_disk_placement":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_task":{"type":"TypeList","computed":true,"elem":{"schema":{"command_line":{"type":"TypeString","computed":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"run_options":{"type":"TypeString","computed":true},"working_directory":{"type":"TypeString","computed":true}}}},"resource_file":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","computed":true},"blob_prefix":{"type":"TypeString","computed":true},"file_mode":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"http_url":{"type":"TypeString","computed":true},"storage_container_url":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"task_retry_maximum":{"type":"TypeInt","computed":true},"user_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_user":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","computed":true}}}},"user_name":{"type":"TypeString","computed":true}}}},"wait_for_success":{"type":"TypeBool","computed":true}}}},"storage_image_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"task_scheduling_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","computed":true}}}},"user_accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"linux_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"gid":{"type":"TypeInt","computed":true},"ssh_private_key":{"type":"TypeString","computed":true},"uid":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"windows_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"login_mode":{"type":"TypeString","computed":true}}}}}}},"vm_size":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_billing_enrollment_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"enrollment_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mca_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"billing_profile_name":{"type":"TypeString","required":true},"invoice_section_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mpa_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"customer_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_blueprint_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_blueprint_published_version":{"schema":{"blueprint_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"dns_zone_id":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tls":{"type":"TypeList","computed":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","computed":true},"certificate_type":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true}}}},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"enabled":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"enabled":{"type":"TypeBool","computed":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redirect_url":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"health_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true},"request_type":{"type":"TypeString","computed":true}}}},"load_balancing":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","computed":true},"sample_size":{"type":"TypeInt","computed":true},"successful_samples_required":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","computed":true},"session_affinity_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"key_vault_certificate_id":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"read":5}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_client_config":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cognitive_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"qna_runtime_endpoint":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"certificate_based_security_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"pem_public_key":{"type":"TypeString","computed":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"resource_group_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"subscription_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","computed":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The Dapr Application Identifier.","computed":true},"app_port":{"type":"TypeInt","description":"The port which the application is listening on. This is the same as the `ingress` port.","computed":true},"app_protocol":{"type":"TypeString","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`.","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","description":"Should this ingress allow insecure connections?","computed":true},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`","computed":true},"certificate_id":{"type":"TypeString","description":"The ID of the Certificate.","computed":true},"name":{"type":"TypeString","description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate.","computed":true}}}},"external_enabled":{"type":"TypeBool","description":"Is this an external Ingress.","computed":true},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","description":"The target port on the container for the Ingress traffic.","computed":true},"traffic_weight":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","description":"The label to apply to the revision as a name prefix for routing traffic.","computed":true},"latest_revision":{"type":"TypeBool","description":"This traffic Weight relates to the latest stable Container Revision.","computed":true},"percentage":{"type":"TypeInt","description":"The percentage of traffic to send to this revision.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted.","computed":true}}}},"transport":{"type":"TypeString","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`","computed":true}}}},"latest_revision_fqdn":{"type":"TypeString","description":"The fully qualified domain name of the latest Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"identity":{"type":"TypeString","description":"ID of the System or User Managed Identity used to pull images from the Container Registry","computed":true},"password_secret_name":{"type":"TypeString","description":"The name of the Secret Reference containing the password value for this user on the Container Registry.","computed":true},"server":{"type":"TypeString","description":"The hostname for the Container Registry.","computed":true},"username":{"type":"TypeString","description":"The username to use for this Container Registry.","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"revision_mode":{"type":"TypeString","computed":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Secret name.","computed":true},"value":{"type":"TypeString","description":"The value for this secret.","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","computed":true,"elem":{"schema":{"container":{"type":"TypeList","computed":true,"elem":{"schema":{"args":{"type":"TypeList","description":"A list of args to pass to the container.","computed":true,"elem":{"type":"TypeString"}},"command":{"type":"TypeList","description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","computed":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`","computed":true},"env":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the environment variable for the container.","computed":true},"secret_name":{"type":"TypeString","description":"The name of the secret that contains the value for this environment variable.","computed":true},"value":{"type":"TypeString","description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used","computed":true}}}},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","description":"The image to use to create the container.","computed":true},"liveness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"initial_delay":{"type":"TypeInt","description":"The time in seconds to wait after the container has started before the probe is started.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"memory":{"type":"TypeString","description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`","computed":true},"name":{"type":"TypeString","description":"The name of the container.","computed":true},"readiness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"success_count_threshold":{"type":"TypeInt","description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"startup_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","computed":true}}}},"volume_mounts":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the Volume to be mounted in the container.","computed":true},"path":{"type":"TypeString","description":"The path in the container at which to mount this volume.","computed":true}}}}}}},"max_replicas":{"type":"TypeInt","description":"The maximum number of replicas for this container.","computed":true},"min_replicas":{"type":"TypeInt","description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}}}},"timeouts":{"read":5}},"azurerm_container_app_environment":{"schema":{"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","description":"The existing Subnet in use by the Container Apps Control Plane.","computed":true},"internal_load_balancer_enabled":{"type":"TypeBool","description":"Does the Container Environment operate in Internal Load Balancing Mode?","computed":true},"location":{"type":"TypeString","computed":true},"log_analytics_workspace_name":{"type":"TypeString","description":"The name of the Log Analytics Workspace this Container Apps Managed Environment is linked to.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment."},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_app_environment_certificate":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"read":5}},"azurerm_container_group":{"schema":{"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","computed":true},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"data_endpoint_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"container_registry_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scope_map_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_account":{"schema":{"capabilities":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"consistency_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","computed":true},"max_interval_in_seconds":{"type":"TypeInt","computed":true},"max_staleness_prefix":{"type":"TypeInt","computed":true}}}},"enable_automatic_failover":{"type":"TypeBool","computed":true},"enable_free_tier":{"type":"TypeBool","computed":true},"enable_multiple_write_locations":{"type":"TypeBool","computed":true},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeList","computed":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true}}}},"ip_range_filter":{"type":"TypeString","computed":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","computed":true},"key_vault_key_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"offer_type":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_restorable_database_accounts":{"schema":{"accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"api_type":{"type":"TypeString","computed":true},"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"restorable_locations":{"type":"TypeList","computed":true,"elem":{"schema":{"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"regional_database_account_instance_id":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true},"autoscale_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true},"assignable_scopes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeSet","computed":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_factory":{"schema":{"github_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"git_url":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"project_name":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redundancy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"snapshot_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"recurrence":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true}}}},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","computed":true},"data_share_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"file_system_name":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"source_platform":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databricks_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_databricks_workspace_private_endpoint_connection":{"schema":{"connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"workspace_private_endpoint_id":{"type":"TypeString","computed":true}}}},"private_endpoint_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dedicated_host":{"schema":{"dedicated_host_group_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"storage_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_dev_test_virtual_network":{"schema":{"allowed_subnets":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_public_ip":{"type":"TypeString","computed":true},"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true}}}},"lab_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_overrides":{"type":"TypeList","computed":true,"elem":{"schema":{"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_in_vm_creation_permission":{"type":"TypeString","computed":true},"use_public_ip_address_permission":{"type":"TypeString","computed":true},"virtual_network_pool_name":{"type":"TypeString","computed":true}}}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_access":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"flags":{"type":"TypeInt","computed":true},"tag":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","computed":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"send_activity_logs":{"type":"TypeBool","computed":true},"send_azuread_logs":{"type":"TypeBool","computed":true},"send_subscription_logs":{"type":"TypeBool","computed":true}}}},"monitoring_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain":{"schema":{"endpoint":{"type":"TypeString","computed":true},"inbound_ip_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"ip_mask":{"type":"TypeString","computed":true}}}},"input_mapping_default_values":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true}}}},"input_mapping_fields":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_time":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true},"topic":{"type":"TypeString","computed":true}}}},"input_schema":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_arm_resource_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventhub":{"schema":{"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"partition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"read":5}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"user_metadata":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"dedicated_cluster_id":{"type":"TypeString","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"kafka_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"maximum_throughput_units":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"sas":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_express_route_circuit":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peerings":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"peer_asn":{"type":"TypeInt","computed":true},"peering_type":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","computed":true},"shared_key":{"type":"TypeString","computed":true},"vlan_id":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_key":{"type":"TypeString","computed":true},"service_provider_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"bandwidth_in_mbps":{"type":"TypeInt","computed":true},"peering_location":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","computed":true}}}},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"family":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_extended_locations":{"schema":{"extended_locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"sku_tier":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","computed":true},"virtual_hub":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","computed":true},"virtual_hub_id":{"type":"TypeString","computed":true}}}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_firewall_policy":{"schema":{"base_policy_id":{"type":"TypeString","computed":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","computed":true,"elem":{"schema":{"network_rule_fqdn_enabled":{"type":"TypeBool","computed":true},"proxy_enabled":{"type":"TypeBool","computed":true},"servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"threat_intelligence_mode":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_cert_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_function_app_host_keys":{"schema":{"blobs_extension_key":{"type":"TypeString","computed":true},"default_function_key":{"type":"TypeString","computed":true},"durabletask_extension_key":{"type":"TypeString","computed":true},"event_grid_extension_config_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"signalr_extension_key":{"type":"TypeString","computed":true},"webpubsub_extension_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_hdinsight_cluster":{"schema":{"cluster_version":{"type":"TypeString","computed":true},"component_versions":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"edge_ssh_endpoint":{"type":"TypeString","computed":true},"gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"ssh_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","computed":true},"tls_min_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"configuration_export_storage_account_name":{"type":"TypeString","computed":true},"container_registry_login_server_url":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","computed":true},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","computed":true},"eventhub_consumer_group_name":{"type":"TypeString","computed":true},"eventhub_name":{"type":"TypeString","computed":true},"eventhub_namespace_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"cors_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","computed":true},"allowed_headers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","computed":true},"cosmosdb_throughput":{"type":"TypeInt","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_hybrid_compute_machine":{"schema":{"ad_fqdn":{"type":"TypeString","computed":true},"agent_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"error_details":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_info":{"type":"TypeList","computed":true,"elem":{"schema":{"info":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"code":{"type":"TypeString","computed":true},"message":{"type":"TypeString","computed":true},"target":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"name_regex":{"type":"TypeString","optional":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"sort_descending":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_images":{"schema":{"images":{"type":"TypeList","computed":true,"elem":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub":{"schema":{"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","computed":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_operations_host_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"iothub_dps_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_iothub_shared_access_policy":{"schema":{"iothub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","computed":true},"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","computed":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"enable_rbac_authorization":{"type":"TypeBool","computed":true},"enabled_for_deployment":{"type":"TypeBool","computed":true},"enabled_for_disk_encryption":{"type":"TypeBool","computed":true},"enabled_for_template_deployment":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_acls":{"type":"TypeList","computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","computed":true},"default_action":{"type":"TypeString","computed":true},"ip_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_access_policy":{"schema":{"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_certificate":{"schema":{"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"key_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"curve":{"type":"TypeString","computed":true},"exportable":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"reuse_key":{"type":"TypeBool","computed":true}}}},"lifetime_action":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","computed":true},"lifetime_percentage":{"type":"TypeInt","computed":true}}}}}}},"secret_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true}}}},"x509_certificate_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"validity_in_months":{"type":"TypeInt","computed":true}}}}}}},"expires":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true,"computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_certificate_data":{"schema":{"certificates_count":{"type":"TypeInt","computed":true},"expires":{"type":"TypeString","computed":true},"hex":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"pem":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","computed":true},"admin":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"phone":{"type":"TypeString","computed":true}}}},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"org_id":{"type":"TypeString","computed":true},"provider_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificates":{"schema":{"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"include_pending":{"type":"TypeBool","optional":true,"default":true},"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_encrypted_value":{"schema":{"algorithm":{"type":"TypeString","required":true},"decoded_plain_text_value":{"type":"TypeString","computed":true},"encrypted_data":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"plain_text_value":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","computed":true},"e":{"type":"TypeString","computed":true},"key_opts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before_date":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_secrets":{"schema":{"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","computed":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","computed":true}}}},"agent_pool_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"api_server_authorized_ip_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"azure_active_directory_role_based_access_control":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","computed":true},"client_app_id":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"server_app_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"azure_policy_enabled":{"type":"TypeBool","computed":true},"current_kubernetes_version":{"type":"TypeString","computed":true},"custom_ca_trust_certificates_base64":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"disk_encryption_set_id":{"type":"TypeString","computed":true},"dns_prefix":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","computed":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress_application_gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","computed":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"key_management_service":{"type":"TypeList","computed":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"key_vault_network_access":{"type":"TypeString","computed":true}}}},"key_vault_secrets_provider":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","computed":true},"secret_rotation_interval":{"type":"TypeString","computed":true}}}},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"kubernetes_version":{"type":"TypeString","computed":true},"linux_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true},"ssh_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_data":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","computed":true},"microsoft_defender":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"network_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","computed":true},"docker_bridge_cidr":{"type":"TypeString","computed":true},"load_balancer_sku":{"type":"TypeString","computed":true},"network_plugin":{"type":"TypeString","computed":true},"network_policy":{"type":"TypeString","computed":true},"pod_cidr":{"type":"TypeString","computed":true},"service_cidr":{"type":"TypeString","computed":true}}}},"node_resource_group":{"type":"TypeString","computed":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","computed":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","computed":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}}},"open_service_mesh_enabled":{"type":"TypeBool","computed":true},"private_cluster_enabled":{"type":"TypeBool","computed":true},"private_fqdn":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"role_based_access_control_enabled":{"type":"TypeBool","computed":true},"service_mesh_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"mode":{"type":"TypeString","computed":true}}}},"service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true}}}},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_version":{"type":"TypeString","computed":true},"file_driver_enabled":{"type":"TypeBool","computed":true},"snapshot_controller_enabled":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"eviction_policy":{"type":"TypeString","computed":true},"kubernetes_cluster_name":{"type":"TypeString","required":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_disk_type":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"priority":{"type":"TypeString","computed":true},"proximity_placement_group_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"spot_max_price":{"type":"TypeFloat","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_node_pool_snapshot":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_node_pool_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_service_versions":{"schema":{"include_preview":{"type":"TypeBool","optional":true,"default":true},"latest_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"version_prefix":{"type":"TypeString","optional":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kusto_cluster":{"schema":{"data_ingestion_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true},"hot_cache_period":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_lb":{"schema":{"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_backend_address_pool":{"schema":{"backend_address":{"type":"TypeList","computed":true,"elem":{"schema":{"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"virtual_network_id":{"type":"TypeString","computed":true}}}},"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","computed":true},"backend_address_pool_id":{"type":"TypeString","computed":true},"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","computed":true},"tcp_reset_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_lb_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","computed":true},"disable_outbound_snat":{"type":"TypeBool","computed":true},"enable_floating_ip":{"type":"TypeBool","computed":true},"enable_tcp_reset":{"type":"TypeBool","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"load_distribution":{"type":"TypeString","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"probe_id":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"image_tag":{"type":"TypeString","computed":true},"registry_password":{"type":"TypeString","computed":true},"registry_url":{"type":"TypeString","computed":true},"registry_username":{"type":"TypeString","computed":true}}}},"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":25}},"azurerm_linux_web_app":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_reference_identity_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_image_tag":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"go_version":{"type":"TypeString","computed":true},"java_server":{"type":"TypeString","computed":true},"java_server_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"ruby_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","computed":true}}}},"gateway_address":{"type":"TypeString","computed":true},"gateway_fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_log_analytics_workspace":{"schema":{"daily_quota_gb":{"type":"TypeFloat","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_shared_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_integration_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","computed":true},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_account_share_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_workflow":{"schema":{"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"logic_app_integration_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","computed":true},"workflow_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_machine_learning_workspace":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","computed":true},"install_patches":{"type":"TypeList","computed":true,"elem":{"schema":{"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"reboot":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","computed":true},"window":{"type":"TypeList","computed":true,"elem":{"schema":{"duration":{"type":"TypeString","computed":true},"expiration_date_time":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"start_date_time":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_managed_api":{"schema":{"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_managed_application_definition":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","computed":true},"disk_access_id":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"disk_iops_read_write":{"type":"TypeInt","computed":true},"disk_mbps_read_write":{"type":"TypeInt","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"image_reference_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_access_policy":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group":{"schema":{"all_management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"all_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true,"computed":true},"parent_management_group_id":{"type":"TypeString","computed":true},"subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group_template_deployment":{"schema":{"management_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement":{"type":"TypeString","computed":true},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"geo_redundant_backup":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true},"plan":{"type":"TypeString","required":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_country_code":{"type":"TypeString","computed":true},"mobile_network_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"mobile_network_data_network_name":{"type":"TypeString","required":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true},"network_address_port_translation":{"type":"TypeList","computed":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"pinhole_maximum_number":{"type":"TypeInt","optional":true},"port_range":{"type":"TypeList","computed":true,"elem":{"schema":{"maximum":{"type":"TypeInt","computed":true},"minimum":{"type":"TypeInt","computed":true}}}},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","computed":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"control_plane_access_name":{"type":"TypeString","computed":true},"core_network_technology":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"interoperability_settings_json":{"type":"TypeString","computed":true},"local_diagnostics_access":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","computed":true},"https_server_certificate_url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform":{"type":"TypeList","computed":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","computed":true},"custom_location_id":{"type":"TypeString","computed":true},"edge_device_id":{"type":"TypeString","computed":true},"stack_hci_cluster_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"pcc_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"precedence":{"type":"TypeInt","computed":true},"qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"guaranteed_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"service_data_flow_template":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","computed":true}}}},"service_precedence":{"type":"TypeInt","computed":true},"service_qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim":{"schema":{"device_type":{"type":"TypeString","computed":true},"integrated_circuit_card_identifier":{"type":"TypeString","computed":true},"international_mobile_subscriber_identity":{"type":"TypeString","computed":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","computed":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true},"static_ipv4_address":{"type":"TypeString","computed":true}}}},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","computed":true},"registration_timer_in_seconds":{"type":"TypeInt","computed":true},"slice":{"type":"TypeList","computed":true,"elem":{"schema":{"data_network":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"allowed_services_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","computed":true},"default_session_type":{"type":"TypeString","computed":true},"max_buffered_packets":{"type":"TypeInt","computed":true},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}}}},"default_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","computed":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","computed":true},"slice_service_type":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"role_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"automation_runbook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","computed":true},"is_global_runbook":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"runbook_name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true},"webhook_resource_id":{"type":"TypeString","computed":true}}}},"azure_app_push_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"azure_function_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","computed":true},"function_name":{"type":"TypeString","computed":true},"http_trigger_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"email_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"event_hub_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true},"ticket_configuration":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","computed":true}}}},"logic_app_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"callback_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"short_name":{"type":"TypeString","computed":true},"sms_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"voice_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"webhook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","computed":true},"data_flow":{"type":"TypeList","computed":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"output_stream":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"transform_kql":{"type":"TypeString","computed":true}}}},"data_sources":{"type":"TypeList","computed":true,"elem":{"schema":{"data_import":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"stream":{"type":"TypeString","computed":true}}}}}}},"extension":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_json":{"type":"TypeString","computed":true},"extension_name":{"type":"TypeString","computed":true},"input_data_sources":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"iis_log":{"type":"TypeList","computed":true,"elem":{"schema":{"log_directories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"settings":{"type":"TypeList","computed":true,"elem":{"schema":{"text":{"type":"TypeList","computed":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","computed":true}}}}}}},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"performance_counter":{"type":"TypeList","computed":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"sampling_frequency_in_seconds":{"type":"TypeInt","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"prometheus_forwarder":{"type":"TypeList","computed":true,"elem":{"schema":{"label_include_filter":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"syslog":{"type":"TypeList","computed":true,"elem":{"schema":{"facility_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"log_levels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_event_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"x_path_queries":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_firewall_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"description":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"workspace_resource_id":{"type":"TypeString","computed":true}}}},"monitor_account":{"type":"TypeList","computed":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"storage_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_blob_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_table_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"table_name":{"type":"TypeString","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"stream_declaration":{"type":"TypeList","computed":true,"elem":{"schema":{"column":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"stream_name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_diagnostic_categories":{"schema":{"log_category_groups":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"log_category_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"logs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"metrics":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"days":{"type":"TypeInt","computed":true},"enabled":{"type":"TypeBool","computed":true}}}},"servicebus_rule_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeSet","computed":true,"elem":{"schema":{"action_group":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","computed":true},"email_subject":{"type":"TypeString","computed":true}}}},"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"query":{"type":"TypeString","computed":true},"query_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"severity":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","computed":true},"time_window":{"type":"TypeInt","computed":true},"trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_column":{"type":"TypeString","computed":true},"metric_trigger_type":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeSet","computed":true,"elem":{"schema":{"dimension":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","computed":true}}}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mssql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"elastic_pool_id":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_size_gb":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"read_replica_count":{"type":"TypeInt","computed":true},"read_scale":{"type":"TypeBool","computed":true},"server_id":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"max_size_bytes":{"type":"TypeInt","computed":true},"max_size_gb":{"type":"TypeFloat","computed":true},"name":{"type":"TypeString","required":true},"per_db_max_capacity":{"type":"TypeInt","computed":true},"per_db_min_capacity":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"family":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"customer_managed_key_id":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"high_availability":{"type":"TypeList","computed":true,"elem":{"schema":{"mode":{"type":"TypeString","computed":true},"standby_availability_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","computed":true},"start_hour":{"type":"TypeInt","computed":true},"start_minute":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"storage":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","computed":true},"iops":{"type":"TypeInt","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement_enabled":{"type":"TypeBool","computed":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","computed":true},"email_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"retention_days":{"type":"TypeInt","computed":true},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_endpoint":{"type":"TypeString","computed":true}}}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_ip_address_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"public_ip_prefix_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_netapp_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_level":{"type":"TypeString","computed":true},"size_in_tb":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"volume_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true},"daily_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"hourly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"monthly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","computed":true,"elem":{"type":"TypeInt"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"network_features":{"type":"TypeString","computed":true},"pool_name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"security_style":{"type":"TypeString","optional":true},"service_level":{"type":"TypeString","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"volume_path":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true},"application_identifier":{"type":"TypeString","computed":true},"group_description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","computed":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"data_protection_snapshot_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","computed":true}}}},"export_policy_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","computed":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"nfsv41_enabled":{"type":"TypeBool","computed":true},"root_access_enabled":{"type":"TypeBool","computed":true},"rule_index":{"type":"TypeInt","computed":true},"unix_read_only":{"type":"TypeBool","computed":true},"unix_read_write":{"type":"TypeBool","computed":true}}}},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proximity_placement_group_id":{"type":"TypeString","computed":true},"security_style":{"type":"TypeString","computed":true},"service_level":{"type":"TypeString","computed":true},"snapshot_directory_visible":{"type":"TypeBool","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","computed":true},"volume_spec_name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume_quota_rule":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"quota_size_in_kib":{"type":"TypeInt","computed":true},"quota_target":{"type":"TypeString","computed":true},"quota_type":{"type":"TypeString","computed":true},"volume_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"internal_dns_name_label":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","computed":true},"load_balancer_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_manager_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"security_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"destination_address_prefix":{"type":"TypeString","computed":true},"destination_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","computed":true},"destination_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_service_tags":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv4_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv6_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"location_filter":{"type":"TypeString","optional":true,"forceNew":true},"service":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"application_mode":{"type":"TypeString","computed":true},"bundle_id":{"type":"TypeString","computed":true},"key_id":{"type":"TypeString","computed":true},"team_id":{"type":"TypeString","computed":true},"token":{"type":"TypeString","computed":true}}}},"gcm_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"api_key":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"ip_forwarding_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","computed":true},"anti_virus_profile":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"dns_subscription":{"type":"TypeString","computed":true},"file_blocking_profile":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_trust_certificate":{"type":"TypeString","computed":true},"outbound_untrust_certificate":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"url_filtering_profile":{"type":"TypeString","computed":true},"vulnerability_profile":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_platform_image":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"offer":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_policy_assignment":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"enforce":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","computed":true,"elem":{"schema":{"content":{"type":"TypeString","computed":true},"policy_definition_reference_id":{"type":"TypeString","computed":true}}}},"not_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeString","computed":true},"policy_definition_id":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_definition_built_in":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_definition_group":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","computed":true},"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"policy_definition_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"policy_definition_id":{"type":"TypeString","computed":true},"policy_group_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","computed":true}}}},"policy_definitions":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"assignment_hash":{"type":"TypeString","computed":true},"compliance_status":{"type":"TypeString","computed":true},"content_hash":{"type":"TypeString","computed":true},"content_uri":{"type":"TypeString","computed":true},"last_compliance_status_checked":{"type":"TypeString","computed":true},"latest_report_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"virtual_machine_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_dns_servers":{"type":"TypeList","computed":true,"elem":{"schema":{"ip_address":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true},"private_dns_zone_name":{"type":"TypeString","required":true},"registration_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_endpoint_connection":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_service_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"request_response":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","computed":true},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"nat_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_link_service_endpoint_connections":{"schema":{"location":{"type":"TypeString","computed":true},"private_endpoint_connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"connection_id":{"type":"TypeString","computed":true},"connection_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"private_endpoint_id":{"type":"TypeString","computed":true},"private_endpoint_name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_id":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_proximity_placement_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","computed":true},"ddos_protection_mode":{"type":"TypeString","computed":true},"ddos_protection_plan_id":{"type":"TypeString","computed":true},"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"reverse_fqdn":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"prefix_length":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ips":{"schema":{"allocation_type":{"type":"TypeString","optional":true},"attachment_status":{"type":"TypeString","optional":true},"name_prefix":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_public_maintenance_configurations":{"schema":{"configs":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"duration":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maintenance_scope":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_recovery_services_vault":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","computed":true},"enable_non_ssl_port":{"type":"TypeBool","computed":true},"family":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patch_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeString","computed":true},"start_hour_utc":{"type":"TypeInt","computed":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","computed":true},"redis_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","computed":true},"aof_storage_connection_string_0":{"type":"TypeString","computed":true},"aof_storage_connection_string_1":{"type":"TypeString","computed":true},"enable_authentication":{"type":"TypeBool","computed":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","computed":true},"maxmemory_delta":{"type":"TypeInt","computed":true},"maxmemory_policy":{"type":"TypeString","computed":true},"maxmemory_reserved":{"type":"TypeInt","computed":true},"notify_keyspace_events":{"type":"TypeString","computed":true},"rdb_backup_enabled":{"type":"TypeBool","computed":true},"rdb_backup_frequency":{"type":"TypeInt","computed":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","computed":true},"rdb_storage_connection_string":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_enterprise_database":{"schema":{"cluster_id":{"type":"TypeString","required":true},"linked_database_group_nickname":{"type":"TypeString","computed":true},"linked_database_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","computed":true},"managed_by":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_resource_group_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_resources":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true},"required_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"resources":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"permissions":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true},"scope":{"type":"TypeString","optional":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"communities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"rule_type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_route_table":{"schema":{"bgp_route_propagation_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop_in_ip_address":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_search_service":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_anomaly":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"mode":{"type":"TypeString","computed":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_template":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true},"nrt_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"scheduled_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"query_frequency":{"type":"TypeString","computed":true},"query_period":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","computed":true},"trigger_threshold":{"type":"TypeInt","computed":true}}}},"security_incident_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"product_filter":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"per_site_scaling_enabled":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","computed":true},"zone_balancing_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"partner_namespace_id":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","optional":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"support_ordering":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_shared_image":{"schema":{"architecture":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"eula":{"type":"TypeString","computed":true},"gallery_name":{"type":"TypeString","required":true},"hyper_v_generation":{"type":"TypeString","computed":true},"identifier":{"type":"TypeList","computed":true,"elem":{"schema":{"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"privacy_statement_uri":{"type":"TypeString","computed":true},"purchase_plan":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true}}}},"release_note_uri":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"specialized":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_shared_image_version":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_disk_image_size_gb":{"type":"TypeInt","computed":true},"os_disk_snapshot_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sort_versions_by_semver":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_shared_image_versions":{"schema":{"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"images":{"type":"TypeList","computed":true,"elem":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"hostname":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true},"recovery_fabric_name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","computed":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","computed":true},"primary_zone":{"type":"TypeString","computed":true},"recovery_edge_zone":{"type":"TypeString","computed":true},"recovery_zone":{"type":"TypeString","computed":true}}}},"failover_deployment_model":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_group":{"type":"TypeSet","computed":true,"elem":{"schema":{"post_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"pre_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"replicated_protected_items":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"recovery_vault_id":{"type":"TypeString","required":true},"source_recovery_fabric_id":{"type":"TypeString","computed":true},"target_recovery_fabric_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_snapshot":{"schema":{"creation_option":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","computed":true},"token_secret":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_spring_cloud_app":{"schema":{"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"is_public":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"persistent_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","computed":true},"size_in_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"tls_enabled":{"type":"TypeBool","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_spring_cloud_service":{"schema":{"config_server_git_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"repository":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"pattern":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","computed":true},"elastic_pool_name":{"type":"TypeString","computed":true},"failover_group_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"read_scale":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ssh_public_key":{"schema":{"name":{"type":"TypeString","required":true},"public_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","computed":true},"account_kind":{"type":"TypeString","computed":true},"account_replication_type":{"type":"TypeString","computed":true},"account_tier":{"type":"TypeString","computed":true},"allow_nested_items_to_be_public":{"type":"TypeBool","computed":true},"azure_files_authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"domain_sid":{"type":"TypeString","computed":true},"forest_name":{"type":"TypeString","computed":true},"netbios_domain_name":{"type":"TypeString","computed":true},"storage_sid":{"type":"TypeString","computed":true}}}},"directory_type":{"type":"TypeString","computed":true}}}},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"enable_https_traffic_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"is_hns_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"queue_encryption_key_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"table_encryption_key_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account_blob_container_sas":{"schema":{"cache_control":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_language":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_address":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_account_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_addresses":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"filter":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"process":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"tag":{"type":"TypeBool","required":true},"update":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"resource_types":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeBool","required":true},"object":{"type":"TypeBool","required":true},"service":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"services":{"type":"TypeList","required":true,"elem":{"schema":{"blob":{"type":"TypeBool","required":true},"file":{"type":"TypeBool","required":true},"queue":{"type":"TypeBool","required":true},"table":{"type":"TypeBool","required":true}}},"maxItems":1},"signed_version":{"type":"TypeString","optional":true,"default":"2017-07-29"},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","computed":true},"content_md5":{"type":"TypeString","computed":true},"content_type":{"type":"TypeString","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","computed":true},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_encryption_scope":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"schema":{"base_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true}}}},"snapshot":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}},"version":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}}}}},"enabled":{"type":"TypeBool","computed":true},"filters":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operation":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"prefix_match":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true}}}},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_share":{"schema":{"acl":{"type":"TypeList","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"expiry":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"start":{"type":"TypeString","computed":true}}}},"id":{"type":"TypeString","computed":true}}}},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"quota":{"type":"TypeInt","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true},"storage_sync_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true},"row_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","computed":true},"data_locale":{"type":"TypeString","computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_policy":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"job_id":{"type":"TypeString","computed":true},"last_output_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"output_error_policy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_mode":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true},"streaming_units":{"type":"TypeInt","computed":true},"transformation_query":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subnet":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"route_table_id":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_subscription":{"schema":{"display_name":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscription_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscriptions":{"schema":{"display_name_contains":{"type":"TypeString","optional":true},"display_name_prefix":{"type":"TypeString","optional":true},"subscriptions":{"type":"TypeList","computed":true,"elem":{"schema":{"display_name":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_synapse_workspace":{"schema":{"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_template_spec_version":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template_body":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_tenant_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_geographical_location":{"schema":{"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","computed":true,"elem":{"schema":{"relative_name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true}}}},"fqdn":{"type":"TypeString","computed":true},"monitor_config":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"expected_status_code_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"timeout_in_seconds":{"type":"TypeInt","computed":true},"tolerated_number_of_failures":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_status":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","computed":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"read":5}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"load_balancer_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_sessions_allowed":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"personal_desktop_assignment_type":{"type":"TypeString","computed":true},"preferred_app_group_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scheduled_agent_updates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"hour_of_day":{"type":"TypeInt","computed":true}}}},"timezone":{"type":"TypeString","computed":true},"use_session_host_timezone":{"type":"TypeBool","computed":true}}}},"start_vm_on_connect":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"validate_environment":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"default_route_table_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"remote_virtual_network_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"routing":{"type":"TypeList","computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","computed":true},"propagated_route_table":{"type":"TypeList","computed":true,"elem":{"schema":{"labels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"static_vnet_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"next_hop_ip_address":{"type":"TypeString","computed":true}}}}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"instances":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"instance_id":{"type":"TypeString","computed":true},"latest_model_applied":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnets":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","computed":true},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"peer_weight":{"type":"TypeInt","computed":true},"peering_address":{"type":"TypeString","computed":true}}}},"custom_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"default_local_network_gateway_id":{"type":"TypeString","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"generation":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"vpn_client_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","computed":true},"aad_issuer":{"type":"TypeString","computed":true},"aad_tenant":{"type":"TypeString","computed":true},"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","computed":true},"radius_server_secret":{"type":"TypeString","computed":true},"revoked_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"root_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"vpn_client_protocols":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"vpn_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"connection_protocol":{"type":"TypeString","computed":true},"dpd_timeout_seconds":{"type":"TypeInt","computed":true},"egress_bytes_transferred":{"type":"TypeInt","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"express_route_circuit_id":{"type":"TypeString","computed":true},"express_route_gateway_bypass":{"type":"TypeBool","computed":true},"ingress_bytes_transferred":{"type":"TypeInt","computed":true},"ipsec_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"dh_group":{"type":"TypeString","computed":true},"ike_encryption":{"type":"TypeString","computed":true},"ike_integrity":{"type":"TypeString","computed":true},"ipsec_encryption":{"type":"TypeString","computed":true},"ipsec_integrity":{"type":"TypeString","computed":true},"pfs_group":{"type":"TypeString","computed":true},"sa_datasize":{"type":"TypeInt","computed":true},"sa_lifetime":{"type":"TypeInt","computed":true}}}},"local_azure_ip_address_enabled":{"type":"TypeBool","computed":true},"local_network_gateway_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peer_virtual_network_gateway_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"routing_weight":{"type":"TypeInt","computed":true},"shared_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","computed":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","computed":true},"virtual_network_gateway_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","computed":true},"disable_vpn_encryption":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"office365_local_breakout_category":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vpn_site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"management_cluster":{"type":"TypeList","computed":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","computed":true}}}},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_subnet_cidr":{"type":"TypeString","computed":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_vpn_gateway":{"schema":{"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"instance_1_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"peer_weight":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_unit":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_application_firewall_policy":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_pubsub_private_link_resource":{"schema":{"shared_private_link_resource_types":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","computed":true}}}},"web_pubsub_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","computed":true},"docker_container_name":{"type":"TypeString","computed":true},"docker_container_registry":{"type":"TypeString","computed":true},"docker_container_tag":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_core_version":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_embedded_server_enabled":{"type":"TypeBool","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python":{"type":"TypeBool","computed":true},"python_version":{"type":"TypeString","computed":true},"tomcat_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"custom_action":{"type":"TypeList","computed":true,"elem":{"schema":{"executable":{"type":"TypeString","computed":true},"parameters":{"type":"TypeString","computed":true}}}},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","computed":true},"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"virtual_application":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"preload":{"type":"TypeBool","computed":true},"virtual_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"virtual_path":{"type":"TypeString","computed":true}}}},"virtual_path":{"type":"TypeString","computed":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}}}}} +{"providerName":"azurerm","schemaVersion":"1","providerSchema":{"schema":{"auxiliary_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":3},"client_certificate":{"type":"TypeString","optional":true,"description":"Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_password":{"type":"TypeString","optional":true,"description":"The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_path":{"type":"TypeString","optional":true,"description":"The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service Principal using a Client Certificate."},"client_id":{"type":"TypeString","optional":true,"description":"The Client ID which should be used."},"client_id_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client ID which should be used."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"client_secret_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"disable_correlation_request_id":{"type":"TypeBool","optional":true,"description":"This will disable the x-ms-correlation-request-id header."},"disable_terraform_partner_id":{"type":"TypeBool","optional":true,"description":"This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified."},"environment":{"type":"TypeString","required":true,"description":"The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public."},"features":{"type":"TypeList","required":true,"elem":{"schema":{"api_management":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"app_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"application_insights":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_generated_rule":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cognitive_account":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_certificates_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_hardware_security_modules_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_managed_hardware_security_module` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_keys_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_secrets_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be permanently deleted (e.g purged), when destroyed"},"recover_soft_deleted_certificates":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be restored, instead of creating new ones"},"recover_soft_deleted_key_vaults":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be restored, instead of creating new ones"},"recover_soft_deleted_keys":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be restored, instead of creating new ones"},"recover_soft_deleted_secrets":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be restored, instead of creating new ones"}}},"maxItems":1},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"permanently_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"managed_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"expand_without_downtime":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_deletion_if_contains_resources":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_cancellation_on_destroy":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"template_deployment":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_nested_items_during_deletion":{"type":"TypeBool","required":true}}},"maxItems":1},"virtual_machine":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_os_disk_on_deletion":{"type":"TypeBool","optional":true,"default":false},"graceful_shutdown":{"type":"TypeBool","optional":true,"default":false},"skip_shutdown_and_force_delete":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"virtual_machine_scale_set":{"type":"TypeList","optional":true,"elem":{"schema":{"force_delete":{"type":"TypeBool","optional":true,"default":false},"roll_instances_when_required":{"type":"TypeBool","required":true},"scale_to_zero_before_deletion":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1,"minItems":1},"metadata_host":{"type":"TypeString","required":true,"description":"The Hostname which should be used for the Azure Metadata Service."},"msi_endpoint":{"type":"TypeString","optional":true,"description":"The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected automatically. "},"oidc_request_token":{"type":"TypeString","optional":true,"description":"The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_request_url":{"type":"TypeString","optional":true,"description":"The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_token":{"type":"TypeString","optional":true,"description":"The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"oidc_token_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"partner_id":{"type":"TypeString","optional":true,"description":"A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution."},"skip_provider_registration":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already registered?"},"storage_use_azuread":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?"},"subscription_id":{"type":"TypeString","optional":true,"description":"The Subscription ID which should be used."},"tenant_id":{"type":"TypeString","optional":true,"description":"The Tenant ID which should be used."},"use_cli":{"type":"TypeBool","optional":true,"default":true,"description":"Allow Azure CLI to be used for Authentication."},"use_msi":{"type":"TypeBool","optional":true,"description":"Allow Managed Service Identity to be used for Authentication."},"use_oidc":{"type":"TypeBool","optional":true,"description":"Allow OpenID Connect to be used for authentication"}},"resources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"country_code":{"type":"TypeString","optional":true,"description":"Country code of the B2C tenant. See https://aka.ms/B2CDataResidency for valid country codes.","computed":true,"forceNew":true},"data_residency_location":{"type":"TypeString","required":true,"description":"Location in which the B2C tenant is hosted and data resides. See https://aka.ms/B2CDataResidency for more information.","forceNew":true},"display_name":{"type":"TypeString","optional":true,"description":"The initial display name of the B2C tenant.","computed":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix.","forceNew":true},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"description":"Billing SKU for the B2C tenant. See https://aka.ms/b2cBilling for more information."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","optional":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"filtered_sync_enabled":{"type":"TypeBool","optional":true,"default":false},"initial_replica_set":{"type":"TypeList","required":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notifications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","optional":true,"default":false},"notify_global_admins":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","required":true},"external_access_enabled":{"type":"TypeBool","optional":true,"default":false},"pfx_certificate":{"type":"TypeString","required":true},"pfx_certificate_password":{"type":"TypeString","required":true},"public_certificate":{"type":"TypeString","computed":true}}},"maxItems":1},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","optional":true,"default":false},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"ntlm_v1_enabled":{"type":"TypeBool","optional":true,"default":false},"sync_kerberos_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_ntlm_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_on_prem_passwords":{"type":"TypeBool","optional":true,"default":false},"tls_v1_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_replica_set":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"external_access_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_trust":{"schema":{"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"trusted_domain_dns_ips":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":2},"trusted_domain_fqdn":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_advanced_threat_protection":{"schema":{"enabled":{"type":"TypeBool","required":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_analysis_services_server":{"schema":{"admin_users":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"backup_blob_container_uri":{"type":"TypeString","optional":true},"enable_power_bi_service":{"type":"TypeBool","optional":true},"ipv4_firewall_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"range_end":{"type":"TypeString","required":true},"range_start":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"querypool_connection_mode":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_full_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_connection":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}}},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_password":{"type":"TypeString","optional":true},"encoded_certificate":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","required":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}},"maxItems":10},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"delegation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"subscriptions_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","optional":true},"user_registration_enabled":{"type":"TypeBool","optional":true,"default":false},"validation_key":{"type":"TypeString","optional":true}}},"maxItems":1},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"management_api_url":{"type":"TypeString","computed":true},"min_api_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_sender_email":{"type":"TypeString","optional":true,"computed":true},"policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}}},"maxItems":1},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocols":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_http2":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"publisher_email":{"type":"TypeString","required":true},"publisher_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scm_url":{"type":"TypeString","computed":true},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_backend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls11":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls11":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_gcm_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_gcm_sha384_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"triple_des_ciphers_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"sign_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"sign_up":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"terms_of_service":{"type":"TypeList","required":true,"elem":{"schema":{"consent_required":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","required":true},"text":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"virtual_network_type":{"type":"TypeString","optional":true,"default":"None"},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_type":{"type":"TypeString","optional":true,"computed":true},"contact":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"content_format":{"type":"TypeString","required":true},"content_value":{"type":"TypeString","required":true},"wsdl_selector":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"license":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"oauth2_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization_server_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true}}},"maxItems":1},"openid_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"openid_provider_name":{"type":"TypeString","required":true}}},"maxItems":1},"path":{"type":"TypeString","optional":true,"computed":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision":{"type":"TypeString","required":true,"forceNew":true},"revision_description":{"type":"TypeString","optional":true},"service_url":{"type":"TypeString","optional":true,"computed":true},"soap_pass_through":{"type":"TypeBool","optional":true,"computed":true},"source_api_id":{"type":"TypeString","optional":true},"subscription_key_parameter_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"header":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true}}},"maxItems":1},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"terms_of_service_url":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"computed":true},"version_description":{"type":"TypeString","optional":true},"version_set_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"method":{"type":"TypeString","required":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"query_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"response":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}},"status_code":{"type":"TypeInt","required":true}}}},"template_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"url_template":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_tag":{"schema":{"api_operation_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_release":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"components":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","required":true},"definitions":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_tag":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_api_tag_description":{"schema":{"api_tag_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"external_documentation_description":{"type":"TypeString","optional":true},"external_documentation_url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"version_header_name":{"type":"TypeString","optional":true},"version_query_name":{"type":"TypeString","optional":true},"versioning_scheme":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_authorization_server":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authorization_endpoint":{"type":"TypeString","required":true},"authorization_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_authentication_method":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_registration_endpoint":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"default_scope":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"grant_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_owner_password":{"type":"TypeString","optional":true},"resource_owner_username":{"type":"TypeString","optional":true},"support_state":{"type":"TypeBool","optional":true},"token_body_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"token_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_backend":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"credentials":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","optional":true},"scheme":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"header":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"query":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true},"service_fabric_cluster":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_id":{"type":"TypeString","optional":true,"computed":true},"client_certificate_thumbprint":{"type":"TypeString","optional":true,"computed":true},"management_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"max_partition_resolution_retries":{"type":"TypeInt","required":true},"server_certificate_thumbprints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"server_x509_name":{"type":"TypeSet","optional":true,"elem":{"schema":{"issuer_certificate_thumbprint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"title":{"type":"TypeString","optional":true},"tls":{"type":"TypeList","optional":true,"elem":{"schema":{"validate_certificate_chain":{"type":"TypeBool","optional":true},"validate_certificate_name":{"type":"TypeBool","optional":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_certificate":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"data":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","computed":true},"key_vault_identity_client_id":{"type":"TypeString","optional":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_custom_domain":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_api_management_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_email_template":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true},"template_name":{"type":"TypeString","required":true,"forceNew":true},"title":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location_data":{"type":"TypeList","required":true,"elem":{"schema":{"city":{"type":"TypeString","optional":true},"district":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_api":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_certificate_authority":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"is_trusted":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_id":{"type":"TypeString","required":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"host_name":{"type":"TypeString","required":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request_client_certificate_enabled":{"type":"TypeBool","optional":true},"tls10_enabled":{"type":"TypeBool","optional":true},"tls11_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_global_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"external_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"custom","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aad":{"schema":{"allowed_tenants":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_tenant":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aadb2c":{"schema":{"allowed_tenant":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authority":{"type":"TypeString","required":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"password_reset_policy":{"type":"TypeString","optional":true},"profile_editing_policy":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_policy":{"type":"TypeString","required":true},"signin_tenant":{"type":"TypeString","required":true},"signup_policy":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_facebook":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_google":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_microsoft":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_twitter":{"schema":{"api_key":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_secret_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_logger":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"application_insights":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"instrumentation_key":{"type":"TypeString","required":true}}},"maxItems":1},"buffered":{"type":"TypeBool","optional":true,"default":true},"description":{"type":"TypeString","optional":true},"eventhub":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_named_value":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","optional":true},"value_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"secret_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_notification_recipient_email":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"email":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_notification_recipient_user":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_openid_connect_provider":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"metadata_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_policy":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"approval_required":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"published":{"type":"TypeBool","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"subscriptions_limit":{"type":"TypeInt","optional":true},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_tag":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_management_product_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_redis_cache":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"cache_location":{"type":"TypeString","optional":true,"default":"default"},"connection_string":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_subscription":{"schema":{"allow_tracing":{"type":"TypeBool","optional":true,"default":true},"api_id":{"type":"TypeString","optional":true,"forceNew":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","optional":true,"computed":true},"product_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true,"computed":true},"state":{"type":"TypeString","optional":true,"default":"submitted"},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_tag":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"confirmation":{"type":"TypeString","optional":true,"forceNew":true},"email":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","required":true},"last_name":{"type":"TypeString","required":true},"note":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","optional":true,"computed":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_identifier":{"type":"TypeString","optional":true}}},"maxItems":1},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","optional":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","optional":true,"default":"free"},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":7,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_feature":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"percentage_filter_value":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"targeting_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_rollout_percentage":{"type":"TypeInt","required":true},"groups":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"rollout_percentage":{"type":"TypeInt","required":true}}}},"users":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"timewindow_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","optional":true},"start":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"computed":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","required":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"kv"},"value":{"type":"TypeString","optional":true,"computed":true},"vault_key_reference":{"type":"TypeString","optional":true}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true},"frequency_unit":{"type":"TypeString","required":true},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false},"retention_period_in_days":{"type":"TypeInt","optional":true,"default":30},"start_time":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_mode":{"type":"TypeString","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_active_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_slot_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate":{"schema":{"app_service_plan_id":{"type":"TypeString","optional":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hosting_environment_profile_id":{"type":"TypeString","computed":true},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"pfx_blob":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate_binding":{"schema":{"app_service_name":{"type":"TypeString","computed":true},"certificate_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","computed":true},"hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","optional":true,"default":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","optional":true,"computed":true},"distinguished_name":{"type":"TypeString","optional":true,"computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","optional":true,"default":2048},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_type":{"type":"TypeString","optional":true,"default":"Standard"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","optional":true,"default":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_custom_hostname_binding":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_environment":{"schema":{"allowed_user_ip_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"front_end_scale_factor":{"type":"TypeInt","optional":true,"default":15},"internal_ip_address":{"type":"TypeString","computed":true},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","optional":true,"default":"I1"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_ip_address":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","optional":true,"default":true},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dedicated_host_count":{"type":"TypeInt","optional":true,"forceNew":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_hybrid_connection":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","required":true},"relay_id":{"type":"TypeString","required":true,"forceNew":true},"relay_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey"},"send_key_value":{"type":"TypeString","computed":true},"service_bus_namespace":{"type":"TypeString","computed":true},"service_bus_suffix":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_managed_certificate":{"schema":{"canonical_name":{"type":"TypeString","computed":true},"custom_hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"is_xenon":{"type":"TypeBool","optional":true},"kind":{"type":"TypeString","optional":true,"default":"Windows","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling":{"type":"TypeBool","optional":true},"reserved":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"size":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_app_service_public_certificate":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"blob":{"type":"TypeString","required":true,"forceNew":true},"certificate_location":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot_custom_hostname_binding":{"schema":{"app_service_slot_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_slot_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"slot_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_source_control":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows or Linux Web App.","forceNew":true},"branch":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The URL for the repository.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`.","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the App use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `false` to enable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`.","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_slot":{"schema":{"branch":{"type":"TypeString","optional":true,"description":"The URL for the repository","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Linux or Windows Web App Slot.","forceNew":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Slot use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `true` to disable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_gateway":{"schema":{"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"autoscale_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"max_capacity":{"type":"TypeInt","optional":true},"min_capacity":{"type":"TypeInt","required":true}}},"maxItems":1},"backend_address_pool":{"type":"TypeSet","required":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"backend_http_settings":{"type":"TypeSet","required":true,"elem":{"schema":{"affinity_cookie_name":{"type":"TypeString","optional":true},"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"connection_draining":{"type":"TypeList","optional":true,"elem":{"schema":{"drain_timeout_sec":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"cookie_based_affinity":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"pick_host_name_from_backend_address":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","required":true},"probe_id":{"type":"TypeString","computed":true},"probe_name":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"request_timeout":{"type":"TypeInt","optional":true,"default":30},"trusted_root_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"enable_http2":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"force_firewall_policy_association":{"type":"TypeBool","optional":true},"frontend_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"private_link_configuration_id":{"type":"TypeString","computed":true},"private_link_configuration_name":{"type":"TypeString","optional":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"minItems":1},"frontend_port":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true}}}},"gateway_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":2},"global":{"type":"TypeList","optional":true,"elem":{"schema":{"request_buffering_enabled":{"type":"TypeBool","required":true},"response_buffering_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"http_listener":{"type":"TypeSet","required":true,"elem":{"schema":{"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"firewall_policy_id":{"type":"TypeString","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_id":{"type":"TypeString","computed":true},"frontend_port_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"require_sni":{"type":"TypeBool","optional":true},"ssl_certificate_id":{"type":"TypeString","computed":true},"ssl_certificate_name":{"type":"TypeString","optional":true},"ssl_profile_id":{"type":"TypeString","computed":true},"ssl_profile_name":{"type":"TypeString","optional":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_link_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true}}}},"probe":{"type":"TypeSet","optional":true,"elem":{"schema":{"host":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"interval":{"type":"TypeInt","required":true},"match":{"type":"TypeList","optional":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"status_code":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"minimum_servers":{"type":"TypeInt","optional":true,"default":0},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"pick_host_name_from_backend_http_settings":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","optional":true},"protocol":{"type":"TypeString","required":true},"timeout":{"type":"TypeInt","required":true},"unhealthy_threshold":{"type":"TypeInt","required":true}}}},"redirect_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"include_path":{"type":"TypeBool","optional":true,"default":false},"include_query_string":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true},"target_listener_id":{"type":"TypeString","computed":true},"target_listener_name":{"type":"TypeString","optional":true},"target_url":{"type":"TypeString","optional":true}}}},"request_routing_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"http_listener_id":{"type":"TypeString","computed":true},"http_listener_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true},"rule_type":{"type":"TypeString","required":true},"url_path_map_id":{"type":"TypeString","computed":true},"url_path_map_name":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rewrite_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"rewrite_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"ignore_case":{"type":"TypeBool","optional":true,"default":false},"negate":{"type":"TypeBool","optional":true,"default":false},"pattern":{"type":"TypeString","required":true},"variable":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"request_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"response_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"rule_sequence":{"type":"TypeInt","required":true},"url":{"type":"TypeList","optional":true,"elem":{"schema":{"components":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","optional":true},"query_string":{"type":"TypeString","optional":true},"reroute":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"ssl_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"ssl_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"ssl_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"ssl_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"trusted_client_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verify_client_cert_issuer_dn":{"type":"TypeBool","optional":true,"default":false},"verify_client_certificate_revocation":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_client_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"trusted_root_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"url_path_map":{"type":"TypeList","optional":true,"elem":{"schema":{"default_backend_address_pool_id":{"type":"TypeString","computed":true},"default_backend_address_pool_name":{"type":"TypeString","optional":true},"default_backend_http_settings_id":{"type":"TypeString","computed":true},"default_backend_http_settings_name":{"type":"TypeString","optional":true},"default_redirect_configuration_id":{"type":"TypeString","computed":true},"default_redirect_configuration_name":{"type":"TypeString","optional":true},"default_rewrite_rule_set_id":{"type":"TypeString","computed":true},"default_rewrite_rule_set_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"paths":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true}}}}}}},"waf_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group_name":{"type":"TypeString","required":true},"rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}}}}},"enabled":{"type":"TypeBool","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"selector_match_operator":{"type":"TypeString","optional":true}}}},"file_upload_limit_mb":{"type":"TypeInt","optional":true,"default":100},"firewall_mode":{"type":"TypeString","required":true},"max_request_body_size_kb":{"type":"TypeInt","optional":true,"default":128},"request_body_check":{"type":"TypeBool","optional":true,"default":true},"rule_set_type":{"type":"TypeString","optional":true,"default":"OWASP"},"rule_set_version":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","required":true,"forceNew":true},"connection_string":{"type":"TypeString","computed":true},"daily_data_cap_in_gb":{"type":"TypeFloat","optional":true,"computed":true},"daily_data_cap_notifications_disabled":{"type":"TypeBool","optional":true,"computed":true},"disable_ip_masking":{"type":"TypeBool","optional":true,"default":false},"force_customer_storage_for_profiler":{"type":"TypeBool","optional":true,"default":false},"instrumentation_key":{"type":"TypeString","computed":true},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":90},"sampling_percentage":{"type":"TypeFloat","optional":true,"default":100},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_application_insights_analytics_item":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","required":true},"function_alias":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"time_created":{"type":"TypeString","computed":true},"time_modified":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_api_key":{"schema":{"api_key":{"type":"TypeString","computed":true},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"write_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_smart_detection_rule":{"schema":{"additional_email_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"send_emails_to_subscription_owners":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_standard_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","required":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"follow_redirects_enabled":{"type":"TypeBool","optional":true,"default":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"http_verb":{"type":"TypeString","optional":true,"default":"GET"},"parse_dependent_requests_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30},"validation_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"content":{"type":"TypeList","optional":true,"elem":{"schema":{"content_match":{"type":"TypeString","required":true},"ignore_case":{"type":"TypeBool","optional":true,"default":false},"pass_if_text_found":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"expected_status_code":{"type":"TypeInt","optional":true,"default":200},"ssl_cert_remaining_lifetime":{"type":"TypeInt","optional":true},"ssl_check_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"configuration":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook":{"schema":{"category":{"type":"TypeString","optional":true,"default":"workbook"},"data_json":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_id":{"type":"TypeString","optional":true,"default":"azure monitor"},"storage_container_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook_template":{"schema":{"author":{"type":"TypeString","optional":true},"galleries":{"type":"TypeList","required":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","optional":true,"default":0},"resource_type":{"type":"TypeString","optional":true,"default":"Azure Monitor"},"type":{"type":"TypeString","optional":true,"default":"workbook"}}},"minItems":1},"localized":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_data":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster":{"schema":{"agent_public_key_certificate":{"type":"TypeString","required":true,"forceNew":true},"agent_version":{"type":"TypeString","computed":true},"distribution":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"infrastructure":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"offering":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"total_core_count":{"type":"TypeInt","computed":true},"total_node_count":{"type":"TypeInt","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster_extension":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_machine_extension":{"schema":{"arc_machine_id":{"type":"TypeString","required":true,"forceNew":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true,"default":true},"force_update_tag":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_private_link_scope":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"open_enclave_policy_base64":{"type":"TypeString","optional":true},"policy":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"environment_type":{"type":"TypeString","optional":true}}}},"policy_signing_certificate_data":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sev_snp_policy_base64":{"type":"TypeString","optional":true},"sgx_enclave_policy_base64":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tpm_policy_base64":{"type":"TypeString","optional":true},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automanage_configuration":{"schema":{"antimalware":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusions":{"type":"TypeList","optional":true,"elem":{"schema":{"extensions":{"type":"TypeString","optional":true},"paths":{"type":"TypeString","optional":true},"processes":{"type":"TypeString","optional":true}}},"maxItems":1},"real_time_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_day":{"type":"TypeInt","optional":true,"default":8},"scheduled_scan_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_time_in_minutes":{"type":"TypeInt","optional":true,"default":0},"scheduled_scan_type":{"type":"TypeString","optional":true,"default":"Quick"}}},"maxItems":1},"automation_account_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_security_baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true,"default":"ApplyAndAutoCorrect"}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"instant_rp_retention_range_in_days":{"type":"TypeInt","optional":true,"default":5},"policy_name":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"daily_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Days"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_policy_type":{"type":"TypeString","optional":true,"default":"LongTermRetentionPolicy"},"weekly_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Weeks"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"schedule_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule_policy_type":{"type":"TypeString","optional":true,"default":"SimpleSchedulePolicy"},"schedule_run_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"schedule_run_frequency":{"type":"TypeString","optional":true,"default":"Daily"},"schedule_run_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"boot_diagnostics_enabled":{"type":"TypeBool","optional":true,"default":false},"defender_for_cloud_enabled":{"type":"TypeBool","optional":true,"default":false},"guest_configuration_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status_change_alert_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_account":{"schema":{"dsc_primary_access_key":{"type":"TypeString","computed":true},"dsc_secondary_access_key":{"type":"TypeString","computed":true},"dsc_server_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"key_source":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"base64":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"exportable":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"values":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"automation_certificate_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_classic_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_asset_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"subscription_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_service_principal":{"schema":{"application_id":{"type":"TypeString","required":true},"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_thumbprint":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_type":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"field":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"is_encrypted":{"type":"TypeBool","optional":true},"is_optional":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"is_global":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_credential":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_configuration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_embedded":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_verbose":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_nodeconfiguration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"configuration_name":{"type":"TypeString","computed":true},"content_embedded":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_hybrid_runbook_worker":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"ip":{"type":"TypeString","computed":true},"last_seen_date_time":{"type":"TypeString","computed":true},"registration_date_time":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"worker_group_name":{"type":"TypeString","required":true,"forceNew":true},"worker_id":{"type":"TypeString","required":true,"forceNew":true},"worker_name":{"type":"TypeString","computed":true},"worker_type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_hybrid_runbook_worker_group":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"credential_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_job_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"job_schedule_id":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on":{"type":"TypeString","optional":true,"forceNew":true},"runbook_name":{"type":"TypeString","required":true,"forceNew":true},"schedule_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_module":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"module_link":{"type":"TypeList","required":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_python3_package":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_uri":{"type":"TypeString","required":true,"forceNew":true},"content_version":{"type":"TypeString","optional":true,"forceNew":true},"hash_algorithm":{"type":"TypeString","optional":true,"forceNew":true},"hash_value":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_runbook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","optional":true,"computed":true},"description":{"type":"TypeString","optional":true},"draft":{"type":"TypeList","optional":true,"elem":{"schema":{"content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"creation_time":{"type":"TypeString","computed":true},"edit_mode_enabled":{"type":"TypeBool","optional":true},"last_modified_time":{"type":"TypeString","computed":true},"output_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true},"mandatory":{"type":"TypeBool","optional":true,"default":false},"position":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"job_schedule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"job_schedule_id":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_on":{"type":"TypeString","optional":true},"schedule_name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_activity_trace_level":{"type":"TypeInt","optional":true},"log_progress":{"type":"TypeBool","required":true},"log_verbose":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"runbook_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true,"computed":true},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"timezone":{"type":"TypeString","optional":true,"default":"Etc/UTC"},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_software_update_configuration":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"duration":{"type":"TypeString","optional":true,"default":"PT2H"},"error_code":{"type":"TypeString","computed":true},"error_meesage":{"type":"TypeString","computed":true},"error_message":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"non_azure_computer_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operating_system":{"type":"TypeString","optional":true,"computed":true},"post_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"pre_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"advanced_month_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"advanced_week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"creation_time":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"expiry_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"is_enabled":{"type":"TypeBool","optional":true,"default":true},"last_modified_time":{"type":"TypeString","computed":true},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}},"maxItems":1},"next_run":{"type":"TypeString","optional":true,"computed":true},"next_run_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"start_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true,"default":"Etc/UTC"}}},"maxItems":1},"target":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"locations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tag_filter":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeList","optional":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}}},"non_azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"function_alias":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_machine_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_automation_source_control":{"schema":{"automatic_sync":{"type":"TypeBool","optional":true,"default":false},"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"branch":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"folder_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_runbook_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_url":{"type":"TypeString","required":true},"security":{"type":"TypeList","required":true,"elem":{"schema":{"refresh_token":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"source_control_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_watcher":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"etag":{"type":"TypeString","optional":true},"execution_frequency_in_seconds":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script_name":{"type":"TypeString","required":true,"forceNew":true},"script_parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"script_run_on":{"type":"TypeString","required":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_webhook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiry_time":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on_worker_group":{"type":"TypeString","optional":true},"runbook_name":{"type":"TypeString","required":true},"uri":{"type":"TypeString","configMode":"Auto","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"default":3,"forceNew":true},"platform_update_domain_count":{"type":"TypeInt","optional":true,"default":5,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_container_storage_account":{"schema":{"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_file_share":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hourly":{"type":"TypeList","optional":true,"elem":{"schema":{"interval":{"type":"TypeInt","required":true},"start_time":{"type":"TypeString","required":true},"window_duration":{"type":"TypeInt","required":true}}},"maxItems":1},"time":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","required":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hour_duration":{"type":"TypeInt","optional":true},"hour_interval":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","required":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instant_restore_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prefix":{"type":"TypeString","required":true},"suffix":{"type":"TypeString","optional":true}}},"maxItems":1},"instant_restore_retention_days":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_type":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm_workload":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"protection_policy":{"type":"TypeSet","required":true,"elem":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","optional":true},"frequency_in_minutes":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","optional":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"policy_type":{"type":"TypeString","required":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"simple_retention":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1}}}},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeList","required":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1},"workload_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_protected_file_share":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_file_share_name":{"type":"TypeString","required":true,"forceNew":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":80,"read":5,"delete":80,"update":80}},"azurerm_backup_protected_vm":{"schema":{"backup_policy_id":{"type":"TypeString","optional":true},"exclude_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"protection_state":{"type":"TypeString","optional":true,"computed":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":80,"update":120}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","optional":true,"default":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ip_connect_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","optional":true,"default":2},"shareable_link_enabled":{"type":"TypeBool","optional":true,"default":false},"sku":{"type":"TypeString","optional":true,"default":"Basic"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"allowed_authentication_modes":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"account_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1},"node_management_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1}}},"maxItems":1},"pool_allocation_mode":{"type":"TypeString","optional":true,"default":"BatchService"},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_authentication_mode":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_account_node_identity":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"allow_updates":{"type":"TypeBool","optional":true,"default":true},"default_version":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate":{"type":"TypeString","required":true},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","optional":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","required":true,"forceNew":true},"thumbprint_algorithm":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_job":{"schema":{"batch_pool_id":{"type":"TypeString","required":true,"forceNew":true},"common_environment_properties":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"task_retry_maximum":{"type":"TypeInt","optional":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","optional":true,"default":"PT15M"},"formula":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"store_location":{"type":"TypeString","required":true},"store_name":{"type":"TypeString","optional":true},"visibility":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"type":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"data_disks":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"default":"ReadOnly"},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","required":true}}}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"extensions":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","optional":true}}}},"fixed_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"node_deallocation_method":{"type":"TypeString","optional":true},"resize_timeout":{"type":"TypeString","optional":true,"default":"PT15M"},"target_dedicated_nodes":{"type":"TypeInt","optional":true,"default":1},"target_low_priority_nodes":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inter_node_communication":{"type":"TypeString","optional":true,"default":"Enabled"},"license_type":{"type":"TypeString","optional":true},"max_tasks_per_node":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"account_name":{"type":"TypeString","required":true},"blobfuse_options":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"identity_id":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"sas_key":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"azure_file_url":{"type":"TypeString","required":true},"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true}}}},"cifs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"nfs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"dynamic_vnet_assignment_scope":{"type":"TypeString","optional":true,"default":"none","forceNew":true},"endpoint_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port_range":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"access":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","required":true,"forceNew":true},"source_port_ranges":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString","default":"*"}}}}},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"public_address_provisioning_type":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"node_agent_sku_id":{"type":"TypeString","required":true,"forceNew":true},"node_placement":{"type":"TypeList","optional":true,"elem":{"schema":{"policy":{"type":"TypeString","optional":true,"default":"Regional"}}}},"os_disk_placement":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_task":{"type":"TypeList","optional":true,"elem":{"schema":{"command_line":{"type":"TypeString","required":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"run_options":{"type":"TypeString","optional":true},"working_directory":{"type":"TypeString","optional":true}}}},"resource_file":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","optional":true},"blob_prefix":{"type":"TypeString","optional":true},"file_mode":{"type":"TypeString","optional":true},"file_path":{"type":"TypeString","optional":true},"http_url":{"type":"TypeString","optional":true},"storage_container_url":{"type":"TypeString","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"task_retry_maximum":{"type":"TypeInt","optional":true},"user_identity":{"type":"TypeList","required":true,"elem":{"schema":{"auto_user":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","optional":true,"default":"NonAdmin"},"scope":{"type":"TypeString","optional":true,"default":"Task"}}},"maxItems":1},"user_name":{"type":"TypeString","optional":true}}},"maxItems":1},"wait_for_success":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"stop_pending_resize_operation":{"type":"TypeBool","optional":true,"default":false},"storage_image_reference":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"target_node_communication_mode":{"type":"TypeString","optional":true},"task_scheduling_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","optional":true,"computed":true}}}},"user_accounts":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","required":true},"linux_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gid":{"type":"TypeInt","optional":true},"ssh_private_key":{"type":"TypeString","optional":true},"uid":{"type":"TypeInt","optional":true}}}},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"windows_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}}}}}},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_billing_account_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"billing_account_id":{"type":"TypeString","required":true,"forceNew":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_blueprint_assignment":{"schema":{"blueprint_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_exclude_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":200},"lock_exclude_principals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"lock_mode":{"type":"TypeString","optional":true,"default":"None"},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeString","optional":true},"target_subscription_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","computed":true},"version_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_bot_channel_alexa":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skill_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_direct_line_speech":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"cognitive_account_id":{"type":"TypeString","optional":true},"cognitive_service_access_key":{"type":"TypeString","required":true},"cognitive_service_location":{"type":"TypeString","required":true},"custom_speech_model_id":{"type":"TypeString","optional":true},"custom_voice_deployment_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_directline":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site":{"type":"TypeSet","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"enhanced_authentication_enabled":{"type":"TypeBool","optional":true,"default":false},"id":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key2":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"trusted_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"v1_allowed":{"type":"TypeBool","optional":true,"default":true},"v3_allowed":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_email":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"email_address":{"type":"TypeString","required":true},"email_password":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_facebook":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"facebook_application_id":{"type":"TypeString","required":true},"facebook_application_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"page":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_line":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"line_channel":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"secret":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_ms_teams":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"calling_web_hook":{"type":"TypeString","optional":true,"computed":true},"deployment_environment":{"type":"TypeString","optional":true,"default":"CommercialDeployment"},"enable_calling":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_slack":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"landing_page_url":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signing_secret":{"type":"TypeString","optional":true},"verification_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_sms":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sms_channel_account_security_id":{"type":"TypeString","required":true},"sms_channel_auth_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_web_chat":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channels_registration":{"schema":{"cmk_key_vault_url":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"icon_url":{"type":"TypeString","optional":true,"computed":true},"isolated_network_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_connection":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeString","optional":true},"service_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_service_azure_bot":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true},"developer_app_insights_key":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_msi_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_type":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_web_app":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint":{"schema":{"content_types_to_compress":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"post_arg_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}}},"fqdn":{"type":"TypeString","computed":true},"geo_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"country_codes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"relative_path":{"type":"TypeString","required":true}}}},"global_delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_compression_enabled":{"type":"TypeBool","optional":true},"is_http_allowed":{"type":"TypeBool","optional":true,"default":true},"is_https_allowed":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimization_type":{"type":"TypeString","optional":true},"origin":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true,"forceNew":true},"http_port":{"type":"TypeInt","optional":true,"default":80,"forceNew":true},"https_port":{"type":"TypeInt","optional":true,"default":443,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"origin_host_header":{"type":"TypeString","optional":true},"origin_path":{"type":"TypeString","optional":true,"computed":true},"probe_path":{"type":"TypeString","optional":true,"computed":true},"profile_name":{"type":"TypeString","required":true,"forceNew":true},"querystring_caching_behaviour":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint_custom_domain":{"schema":{"cdn_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_type":{"type":"TypeString","required":true},"protocol_type":{"type":"TypeString","required":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"user_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","optional":true,"computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"computed":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"dns_zone_id":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tls":{"type":"TypeList","required":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","optional":true,"computed":true},"certificate_type":{"type":"TypeString","optional":true,"default":"ManagedCertificate"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain_association":{"schema":{"cdn_frontdoor_custom_domain_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_route_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin":{"schema":{"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name_check_enabled":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","optional":true,"computed":true},"health_probes_enabled":{"type":"TypeBool","optional":true,"computed":true},"host_name":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","optional":true,"default":80},"https_port":{"type":"TypeInt","optional":true,"default":443},"name":{"type":"TypeString","required":true,"forceNew":true},"origin_host_header":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","optional":true,"default":1},"private_link":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"private_link_target_id":{"type":"TypeString","required":true},"request_message":{"type":"TypeString","optional":true,"default":"Access request for CDN FrontDoor Private Link Origin"},"target_type":{"type":"TypeString","optional":true}}},"maxItems":1},"weight":{"type":"TypeInt","optional":true,"default":500}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"health_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"protocol":{"type":"TypeString","required":true},"request_type":{"type":"TypeString","optional":true,"default":"HEAD"}}},"maxItems":1},"load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","optional":true,"default":50},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","optional":true,"default":10},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","optional":true,"default":120},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route":{"schema":{"cache":{"type":"TypeList","optional":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"content_types_to_compress":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"query_string_caching_behavior":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"query_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"cdn_frontdoor_custom_domain_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true},"cdn_frontdoor_origin_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_origin_path":{"type":"TypeString","optional":true},"cdn_frontdoor_rule_set_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"https_redirect_enabled":{"type":"TypeBool","optional":true,"default":true},"link_to_default_domain":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"supported_protocols":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route_disable_link_to_default_domain":{"schema":{"cdn_frontdoor_custom_domain_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_route_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"route_configuration_override_action":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_behavior":{"type":"TypeString","optional":true},"cache_duration":{"type":"TypeString","optional":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","optional":true},"compression_enabled":{"type":"TypeBool","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true},"query_string_caching_behavior":{"type":"TypeString","optional":true},"query_string_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":100}}},"maxItems":1},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_fragment":{"type":"TypeString","optional":true,"default":""},"destination_hostname":{"type":"TypeString","required":true},"destination_path":{"type":"TypeString","optional":true,"default":""},"query_string":{"type":"TypeString","optional":true,"default":""},"redirect_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":false},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"behavior_on_match":{"type":"TypeString","optional":true,"default":"Continue"},"cdn_frontdoor_rule_set_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_rule_set_name":{"type":"TypeString","computed":true},"conditions":{"type":"TypeList","optional":true,"elem":{"schema":{"client_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"cookie_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"host_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":4},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"is_device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"post_args_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"post_args_name":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString","default":"HTTP"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"server_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"socket_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"ssl_protocol_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":3},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_filename_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_profile_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_frontdoor_security_policy":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"security_policies":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"firewall":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"association":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"domain":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"active":{"type":"TypeBool","computed":true},"cdn_frontdoor_domain_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":500},"patterns_to_match":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}}},"maxItems":1},"cdn_frontdoor_firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account":{"schema":{"custom_question_answering_search_service_id":{"type":"TypeString","optional":true},"custom_question_answering_search_service_key":{"type":"TypeString","optional":true},"custom_subdomain_name":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"dynamic_throttling_enabled":{"type":"TypeBool","optional":true},"endpoint":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metrics_advisor_aad_client_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_aad_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_super_user_name":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_website_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"qna_runtime_endpoint":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"storage":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account_customer_managed_key":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_deployment":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"model":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"format":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"rai_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"scale":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"family":{"type":"TypeString","optional":true,"forceNew":true},"size":{"type":"TypeString","optional":true,"forceNew":true},"tier":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","optional":true,"default":"United States","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","required":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"minItems":1},"certificate_based_security_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"pem_public_key":{"type":"TypeString","required":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_management_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to host this Container App.","forceNew":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The Dapr Application Identifier."},"app_port":{"type":"TypeInt","optional":true,"description":"The port which the application is listening on. This is the same as the `ingress` port."},"app_protocol":{"type":"TypeString","optional":true,"default":"http","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`."}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","optional":true,"default":false,"description":"Should this ingress allow insecure connections?"},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","optional":true,"default":"Disabled","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`"},"certificate_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate."}}},"maxItems":1},"external_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Is this an external Ingress."},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","required":true,"description":"The target port on the container for the Ingress traffic."},"traffic_weight":{"type":"TypeList","required":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"description":"The label to apply to the revision as a name prefix for routing traffic."},"latest_revision":{"type":"TypeBool","optional":true,"default":false,"description":"This traffic Weight relates to the latest stable Container Revision."},"percentage":{"type":"TypeInt","required":true,"description":"The percentage of traffic to send to this revision."},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted."}}}},"transport":{"type":"TypeString","optional":true,"default":"auto","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`"}}},"maxItems":1},"latest_revision_fqdn":{"type":"TypeString","description":"The FQDN of the Latest Revision of the Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"The name for this Container App.","forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true,"description":"ID of the System or User Managed Identity used to pull images from the Container Registry"},"password_secret_name":{"type":"TypeString","optional":true,"description":"The name of the Secret Reference containing the password value for this user on the Container Registry."},"server":{"type":"TypeString","required":true,"description":"The hostname for the Container Registry."},"username":{"type":"TypeString","optional":true,"description":"The username to use for this Container Registry."}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision_mode":{"type":"TypeString","required":true},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeList","required":true,"elem":{"schema":{"args":{"type":"TypeList","optional":true,"description":"A list of args to pass to the container.","elem":{"type":"TypeString"}},"command":{"type":"TypeList","optional":true,"description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`"},"env":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the environment variable for the container."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of the secret that contains the value for this environment variable."},"value":{"type":"TypeString","optional":true,"description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used"}}},"minItems":1},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","required":true,"description":"The image to use to create the container."},"liveness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"initial_delay":{"type":"TypeInt","optional":true,"default":1,"description":"The time in seconds to wait after the container has started before the probe is started."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"memory":{"type":"TypeString","required":true,"description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`"},"name":{"type":"TypeString","required":true,"description":"The name of the container."},"readiness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"success_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`."},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"startup_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"volume_mounts":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Volume to be mounted in the container."},"path":{"type":"TypeString","required":true,"description":"The path in the container at which to mount this volume."}}}}}},"minItems":1},"max_replicas":{"type":"TypeInt","optional":true,"default":10,"description":"The maximum number of replicas for this container."},"min_replicas":{"type":"TypeInt","optional":true,"description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment":{"schema":{"dapr_application_insights_connection_string":{"type":"TypeString","optional":true,"description":"Application Insights connection string used by Dapr to export Service to Service communication telemetry.","forceNew":true},"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","optional":true,"description":"The existing Subnet to use for the Container Apps Control Plane. **NOTE:** The Subnet must have a `/21` or larger address space.","forceNew":true},"internal_load_balancer_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Container Environment operate in Internal Load Balancing Mode? Defaults to `false`. **Note:** can only be set to `true` if `infrastructure_subnet_id` is specified.","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true,"description":"The ID for the Log Analytics Workspace to link this Container Apps Managed Environment to.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment.","forceNew":true},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_certificate":{"schema":{"certificate_blob_base64":{"type":"TypeString","required":true,"description":"The Certificate Private Key as a base64 encoded PFX or PEM.","forceNew":true},"certificate_password":{"type":"TypeString","required":true,"description":"The password for the Certificate.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Environment Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_dapr_component":{"schema":{"component_type":{"type":"TypeString","required":true,"description":"The Dapr Component Type. For example `state.azure.blobstorage`.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Dapr component on.","forceNew":true},"ignore_errors":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Dapr sidecar to continue initialisation if the component fails to load. Defaults to `false`"},"init_timeout":{"type":"TypeString","optional":true,"default":"5s","description":"The component initialisation timeout in ISO8601 format. e.g. `5s`, `2h`, `1m`. Defaults to `5s`."},"metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Metadata configuration item."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of a secret specified in the `secrets` block that contains the value for this metadata configuration item."},"value":{"type":"TypeString","optional":true,"description":"The value for this metadata configuration item."}}},"minItems":1},"name":{"type":"TypeString","required":true,"description":"The name for this Dapr Component.","forceNew":true},"scopes":{"type":"TypeList","optional":true,"description":"A list of scopes to which this component applies. e.g. a Container App's `dapr.app_id` value.","elem":{"type":"TypeString"},"minItems":1},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"version":{"type":"TypeString","required":true,"description":"The version of the component."}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_storage":{"schema":{"access_key":{"type":"TypeString","required":true,"description":"The Storage Account Access Key."},"access_mode":{"type":"TypeString","required":true,"description":"The access mode to connect this storage to the Container App. Possible values include `ReadOnly` and `ReadWrite`.","forceNew":true},"account_name":{"type":"TypeString","required":true,"description":"The Azure Storage Account in which the Share to be used is located.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to which this storage belongs.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name for this Storage.","forceNew":true},"share_name":{"type":"TypeString","required":true,"description":"The name of the Azure Storage Share to use.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_connected_registry":{"schema":{"audit_log_enabled":{"type":"TypeBool","optional":true,"default":false},"client_token_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"log_level":{"type":"TypeString","optional":true,"default":"None"},"mode":{"type":"TypeString","optional":true,"default":"ReadWrite","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"digest":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tag":{"type":"TypeString","optional":true}}}},"parent_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"sync_message_ttl":{"type":"TypeString","optional":true,"default":"P1D"},"sync_schedule":{"type":"TypeString","optional":true,"default":"* * * * *"},"sync_token_id":{"type":"TypeString","required":true,"forceNew":true},"sync_window":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_group":{"schema":{"container":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"forceNew":true},"cpu_limit":{"type":"TypeFloat","optional":true},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"gpu":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"gpu_limit":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"sku":{"type":"TypeString","optional":true}}},"maxItems":1},"image":{"type":"TypeString","required":true,"forceNew":true},"liveness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"memory":{"type":"TypeFloat","required":true,"forceNew":true},"memory_limit":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ports":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"readiness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"diagnostics":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"log_analytics":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"log_type":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_key":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"dns_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"nameservers":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"options":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"search_domains":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"dns_name_label":{"type":"TypeString","optional":true,"forceNew":true},"dns_name_label_reuse_policy":{"type":"TypeString","optional":true,"default":"Unsecure"},"exposed_port":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_registry_credential":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"username":{"type":"TypeString","optional":true,"forceNew":true}}}},"init_container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"ip_address":{"type":"TypeString","computed":true},"ip_address_type":{"type":"TypeString","optional":true,"default":"Public","forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile_id":{"type":"TypeString","optional":true,"computed":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restart_policy":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"subnet_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"anonymous_pull_enabled":{"type":"TypeBool","optional":true},"data_endpoint_enabled":{"type":"TypeBool","optional":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"identity_client_id":{"type":"TypeString","required":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"georeplications":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true},"regional_endpoint_enabled":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_bypass_option":{"type":"TypeString","optional":true,"default":"AzureServices"},"network_rule_set":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_range":{"type":"TypeString","required":true}}}},"virtual_network":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"quarantine_policy_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trust_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_agent_pool":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"default":"S1","forceNew":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task":{"schema":{"agent_pool_name":{"type":"TypeString","optional":true},"agent_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"cpu":{"type":"TypeInt","required":true}}},"maxItems":1},"base_image_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"update_trigger_endpoint":{"type":"TypeString","optional":true},"update_trigger_payload_type":{"type":"TypeString","optional":true}}},"maxItems":1},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"docker_step":{"type":"TypeList","optional":true,"elem":{"schema":{"arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"cache_enabled":{"type":"TypeBool","optional":true,"default":true},"context_access_token":{"type":"TypeString","required":true},"context_path":{"type":"TypeString","required":true},"dockerfile_path":{"type":"TypeString","required":true},"image_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"push_enabled":{"type":"TypeBool","optional":true,"default":true},"secret_arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target":{"type":"TypeString","optional":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"encoded_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_content":{"type":"TypeString","required":true},"value_content":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"file_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_file_path":{"type":"TypeString","required":true},"value_file_path":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"is_system_task":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"log_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"architecture":{"type":"TypeString","optional":true},"os":{"type":"TypeString","required":true},"variant":{"type":"TypeString","optional":true}}},"maxItems":1},"registry_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"custom":{"type":"TypeSet","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"username":{"type":"TypeString","optional":true}}}},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"source_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"expire_in_seconds":{"type":"TypeInt","optional":true},"refresh_token":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"repository_url":{"type":"TypeString","required":true},"source_type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":3600},"timer_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task_schedule_run_now":{"schema":{"container_registry_task_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_map_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_token_password":{"schema":{"container_registry_token_id":{"type":"TypeString","required":true,"forceNew":true},"password1":{"type":"TypeList","required":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1},"password2":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_webhook":{"schema":{"actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"custom_headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"registry_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":""},"service_uri":{"type":"TypeString","required":true},"status":{"type":"TypeString","optional":true,"default":"enabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_account":{"schema":{"access_key_metadata_writes_enabled":{"type":"TypeBool","optional":true,"default":true},"analytical_storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"schema_type":{"type":"TypeString","required":true}}},"maxItems":1},"analytical_storage_enabled":{"type":"TypeBool","optional":true,"default":false},"backup":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"interval_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"retention_in_hours":{"type":"TypeInt","optional":true,"computed":true},"storage_redundancy":{"type":"TypeString","optional":true,"computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"capabilities":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}},"capacity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"total_throughput_limit":{"type":"TypeInt","required":true}}},"maxItems":1},"connection_strings":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"consistency_policy":{"type":"TypeList","required":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","required":true},"max_interval_in_seconds":{"type":"TypeInt","optional":true,"computed":true},"max_staleness_prefix":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"create_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"default_identity_type":{"type":"TypeString","optional":true,"default":"FirstPartyIdentity"},"enable_automatic_failover":{"type":"TypeBool","optional":true,"default":false},"enable_free_tier":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"enable_multiple_write_locations":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeSet","required":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","required":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_range_filter":{"type":"TypeString","optional":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"kind":{"type":"TypeString","optional":true,"default":"GlobalDocumentDB","forceNew":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"mongo_server_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acl_bypass_for_azure_services":{"type":"TypeBool","optional":true,"default":false},"network_acl_bypass_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"offer_type":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"primary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"primary_sql_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"elem":{"schema":{"database":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"collection_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"restore_timestamp_in_utc":{"type":"TypeString","required":true,"forceNew":true},"source_cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"secondary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"secondary_sql_connection_string":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_cassandra_cluster":{"schema":{"authentication_method":{"type":"TypeString","optional":true,"default":"Cassandra"},"client_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_admin_password":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"external_gossip_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"external_seed_node_ip_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"hours_between_backups":{"type":"TypeInt","optional":true,"default":24},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repair_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"3.11","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_datacenter":{"schema":{"availability_zones_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_storage_customer_key_uri":{"type":"TypeString","optional":true},"base64_encoded_yaml_fragment":{"type":"TypeString","optional":true},"cassandra_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"disk_count":{"type":"TypeInt","optional":true},"disk_sku":{"type":"TypeString","optional":true,"default":"P30"},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_customer_key_uri":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"default":3},"sku_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_cosmosdb_cassandra_keyspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_table":{"schema":{"analytical_storage_ttl":{"type":"TypeInt","optional":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cassandra_keyspace_id":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schema":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_key":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"order_by":{"type":"TypeString","required":true}}}},"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"partition_key":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_graph":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"index_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"automatic":{"type":"TypeBool","optional":true,"default":true},"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"included_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"indexing_mode":{"type":"TypeString","required":true},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_collection":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl_seconds":{"type":"TypeInt","optional":true},"index":{"type":"TypeSet","optional":true,"elem":{"schema":{"keys":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","optional":true,"default":false}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shard_key":{"type":"TypeString","optional":true,"forceNew":true},"system_indexes":{"type":"TypeList","computed":true,"elem":{"schema":{"keys":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","computed":true}}}},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_role_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"privilege":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource":{"type":"TypeList","required":true,"elem":{"schema":{"collection_name":{"type":"TypeString","optional":true},"db_name":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"role_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_user_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_notebook_workspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_endpoint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_postgresql_cluster":{"schema":{"administrator_login_password":{"type":"TypeString","required":true},"citus_version":{"type":"TypeString","optional":true,"computed":true},"coordinator_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":true},"coordinator_server_edition":{"type":"TypeString","optional":true,"default":"GeneralPurpose"},"coordinator_storage_quota_in_mb":{"type":"TypeInt","required":true},"coordinator_vcore_count":{"type":"TypeInt","required":true},"earliest_restore_time":{"type":"TypeString","computed":true},"ha_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","required":true},"node_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":false},"node_server_edition":{"type":"TypeString","optional":true,"default":"MemoryOptimized"},"node_storage_quota_in_mb":{"type":"TypeInt","optional":true,"computed":true},"node_vcores":{"type":"TypeInt","optional":true,"computed":true},"point_in_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"preferred_primary_zone":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shards_on_coordinator_enabled":{"type":"TypeBool","optional":true,"computed":true},"source_location":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"sql_version":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_postgresql_coordinator_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_firewall_rule":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_node_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_role":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_sql_container":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"indexing_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"included_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"indexing_mode":{"type":"TypeString","optional":true,"default":"consistent"},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_dedicated_gateway":{"schema":{"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","required":true},"instance_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_function":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_assignment":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"assignable_scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeSet","required":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"CustomRole","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_stored_procedure":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_trigger":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operation":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_table":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_anomaly_alert":{"schema":{"display_name":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"email_subject":{"type":"TypeString","required":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_management_scheduled_action":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name":{"type":"TypeString","required":true},"email_address_sender":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":20,"minItems":1},"email_subject":{"type":"TypeString","required":true},"end_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","optional":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_date":{"type":"TypeString","required":true},"view_id":{"type":"TypeString","required":true,"forceNew":true},"weeks_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_custom_ip_prefix":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"commissioning_enabled":{"type":"TypeBool","optional":true,"default":false},"internet_advertising_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_custom_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roa_validity_end_date":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wan_validation_signed_message":{"type":"TypeString","optional":true,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":540,"read":5,"delete":1020,"update":1020}},"azurerm_custom_provider":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_type":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"routing_type":{"type":"TypeString","optional":true,"default":"Proxy"}}}},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validation":{"type":"TypeSet","optional":true,"elem":{"schema":{"specification":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard_grafana":{"schema":{"api_key_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse"},"azure_monitor_workspace_integrations":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"deterministic_outbound_ip_enabled":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"grafana_version":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory":{"schema":{"customer_managed_key_id":{"type":"TypeString","optional":true},"customer_managed_key_identity_id":{"type":"TypeString","optional":true},"github_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"global_parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_custom_dataset":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_azure_blob":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_binary":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sftp_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_cosmosdb_sqlapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"collection_name":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_delimited_text":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_fs_location":{"type":"TypeList","optional":true,"elem":{"schema":{"file_system":{"type":"TypeString","required":true},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"column_delimiter":{"type":"TypeString","optional":true,"default":","},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"escape_character":{"type":"TypeString","optional":true,"default":"\\"},"first_row_as_header":{"type":"TypeBool","optional":true,"default":false},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"null_value":{"type":"TypeString","optional":true,"default":""},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"quote_character":{"type":"TypeString","optional":true,"default":"\""},"row_delimiter":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_http":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"relative_url":{"type":"TypeString","optional":true},"request_body":{"type":"TypeString","optional":true},"request_method":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_json":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_parquet":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precision":{"type":"TypeInt","optional":true},"scale":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","optional":true}}}},"schema_name":{"type":"TypeString","optional":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_sql_server_table":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_flowlet_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure":{"schema":{"cleanup_enabled":{"type":"TypeBool","optional":true,"computed":true},"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0},"virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure_ssis":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"dual_standby_pair_name":{"type":"TypeString","optional":true},"elastic_pool_name":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"express_custom_setup":{"type":"TypeList","optional":true,"elem":{"schema":{"command_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"password":{"type":"TypeString","optional":true},"target_name":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"component":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_license":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"environment":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"powershell_version":{"type":"TypeString","optional":true}}},"maxItems":1},"express_vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"package_store":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","optional":true},"self_hosted_integration_runtime_name":{"type":"TypeString","required":true},"staging_storage_linked_service_name":{"type":"TypeString","required":true}}},"maxItems":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"public_ips":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2},"subnet_id":{"type":"TypeString","optional":true},"subnet_name":{"type":"TypeString","optional":true},"vnet_id":{"type":"TypeString","optional":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_managed":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true,"default":"Basic"},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","required":true},"vnet_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_self_hosted":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_authorization_key":{"type":"TypeString","computed":true},"rbac_authorization":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"secondary_authorization_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_custom_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_blob_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"connection_string_insecure":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_sas_token":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sas_uri":{"type":"TypeString","optional":true},"service_endpoint":{"type":"TypeString","optional":true},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"service_principal_linked_key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_kind":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_databricks":{"schema":{"access_token":{"type":"TypeString","optional":true},"adb_domain":{"type":"TypeString","required":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"existing_cluster_id":{"type":"TypeString","optional":true},"instance_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"instance_pool_id":{"type":"TypeString","required":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":1}}},"maxItems":1},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"msi_work_space_resource_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"new_cluster_config":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"custom_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"driver_node_type":{"type":"TypeString","optional":true},"init_scripts":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"log_destination":{"type":"TypeString","optional":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":"1"},"node_type":{"type":"TypeString","required":true},"spark_config":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"spark_environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_file_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"file_share":{"type":"TypeString","optional":true},"host":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"user_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_function":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key":{"type":"TypeString","optional":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_search":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted_credential":{"type":"TypeString","computed":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"search_service_key":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_sql_database":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_table_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb":{"schema":{"account_endpoint":{"type":"TypeString","optional":true},"account_key":{"type":"TypeString","optional":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb_mongoapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"server_version_is_32_or_higher":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_data_lake_storage_gen2":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"storage_account_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_key_vault":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_kusto":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"kusto_database_name":{"type":"TypeString","required":true},"kusto_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odata":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odbc":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sftp":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"host":{"type":"TypeString","required":true},"host_key_fingerprint":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true},"skip_host_key_validation":{"type":"TypeBool","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sql_server":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_synapse":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_web":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_managed_private_endpoint":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"fqdns":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_factory_pipeline":{"schema":{"activities_json":{"type":"TypeString","optional":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"concurrency":{"type":"TypeInt","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"moniter_metrics_after_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_blob_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"blob_path_begins_with":{"type":"TypeString","optional":true},"blob_path_ends_with":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"ignore_empty_blobs":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_custom_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"eventgrid_topic_id":{"type":"TypeString","required":true,"forceNew":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_schedule":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","optional":true,"default":"Minute"},"interval":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"pipeline_name":{"type":"TypeString","optional":true,"computed":true},"pipeline_parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":7},"hours":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","optional":true},"weekday":{"type":"TypeString","required":true}}},"minItems":1}}},"maxItems":1,"minItems":1},"start_time":{"type":"TypeString","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_tumbling_window":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"delay":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true,"forceNew":true},"interval":{"type":"TypeInt","required":true,"forceNew":true},"max_concurrency":{"type":"TypeInt","optional":true,"default":50},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retry":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeInt","optional":true,"default":30}}},"maxItems":1},"start_time":{"type":"TypeString","required":true,"forceNew":true},"trigger_dependency":{"type":"TypeSet","optional":true,"elem":{"schema":{"offset":{"type":"TypeString","optional":true},"size":{"type":"TypeString","optional":true},"trigger_name":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_blob_storage":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_disk":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"disk_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_postgresql":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"database_credential_key_vault_secret_id":{"type":"TypeString","optional":true},"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_blob_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"retention_duration":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_disk":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_postgresql":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true},"days_of_week":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"months_of_year":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"scheduled_backup_times":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"weeks_of_month":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redundancy":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_resource_guard":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vault_critical_operation_exclusion_list":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}},"maxItems":1},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","required":true,"forceNew":true},"data_share_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"file_system_name":{"type":"TypeString","required":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"source_platform":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_order":{"schema":{"contact":{"type":"TypeList","required":true,"elem":{"schema":{"company_name":{"type":"TypeString","required":true,"forceNew":true},"emails":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"device_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"return_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"serial_number":{"type":"TypeString","computed":true},"shipment_address":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3},"city":{"type":"TypeString","required":true,"forceNew":true},"country":{"type":"TypeString","required":true,"forceNew":true},"postal_code":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"shipment_history":{"type":"TypeSet","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}},"shipment_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"status":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"info":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_access_connector":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_virtual_network_peering":{"schema":{"address_space_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_address_space_prefixes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_id":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace":{"schema":{"custom_parameters":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"machine_learning_workspace_id":{"type":"TypeString","optional":true,"forceNew":true},"nat_gateway_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"no_public_ip":{"type":"TypeBool","optional":true,"computed":true},"private_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"private_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"public_ip_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"public_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_sku_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vnet_address_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_encryption_set_id":{"type":"TypeString","computed":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"load_balancer_backend_address_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"managed_disk_cmk_rotation_to_latest_version_enabled":{"type":"TypeBool","optional":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"managed_resource_group_id":{"type":"TypeString","computed":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_services_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules_required":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_root_dbfs_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor":{"schema":{"datadog_organization":{"type":"TypeList","required":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true,"forceNew":true},"application_key":{"type":"TypeString","required":true,"forceNew":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","computed":true},"linking_auth_code":{"type":"TypeString","optional":true,"forceNew":true},"linking_client_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"redirect_uri":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"marketplace_subscription_status":{"type":"TypeString","computed":true},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_sso_configuration":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"enterprise_application_id":{"type":"TypeString","required":true},"login_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"default"},"single_sign_on_enabled":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_tag_rule":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"log":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_log_enabled":{"type":"TypeBool","optional":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_log_enabled":{"type":"TypeBool","optional":true},"subscription_log_enabled":{"type":"TypeBool","optional":true}}}},"metric":{"type":"TypeList","optional":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","optional":true,"default":"default"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_hardware_security_module":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"management_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"stamp_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host":{"schema":{"auto_replace_on_failure":{"type":"TypeBool","optional":true,"default":true},"dedicated_host_group_id":{"type":"TypeString","required":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain":{"type":"TypeInt","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_global_vm_shutdown_schedule":{"schema":{"daily_recurrence_time":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"time_in_minutes":{"type":"TypeInt","optional":true,"default":30},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","optional":true,"default":"Premium"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_linux_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_policy":{"schema":{"description":{"type":"TypeString","optional":true},"evaluator_type":{"type":"TypeString","required":true,"forceNew":true},"fact_data":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_set_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threshold":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_schedule":{"schema":{"daily_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true}}},"maxItems":1},"hourly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true}}},"maxItems":1},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"status":{"type":"TypeString","optional":true,"default":"Disabled"},"time_in_minutes":{"type":"TypeInt","optional":true},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Disabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_type":{"type":"TypeString","required":true},"time_zone_id":{"type":"TypeString","required":true},"weekly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_virtual_network":{"schema":{"description":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"use_in_virtual_machine_creation":{"type":"TypeString","optional":true,"default":"Allow"},"use_public_ip_address":{"type":"TypeString","optional":true,"default":"Allow"}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_windows_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventgrid":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventgrid_topic_endpoint":{"type":"TypeString","required":true},"eventgrid_topic_primary_access_key":{"type":"TypeString","required":true},"eventgrid_topic_secondary_access_key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventhub":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_primary_connection_string":{"type":"TypeString","required":true},"eventhub_secondary_connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_servicebus":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_primary_connection_string":{"type":"TypeString","required":true},"servicebus_secondary_connection_string":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_time_series_database_connection":{"schema":{"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_consumer_group_name":{"type":"TypeString","optional":true,"default":"$Default","forceNew":true},"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_uri":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_name":{"type":"TypeString","required":true,"forceNew":true},"kusto_table_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_disk_access":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_type":{"type":"TypeString","optional":true,"default":"EncryptionAtRestWithCustomerKey","forceNew":true},"federated_client_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_disk_pool":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_pool_iscsi_target":{"schema":{"acl_mode":{"type":"TypeString","required":true,"forceNew":true},"disks_pool_id":{"type":"TypeString","required":true,"forceNew":true},"endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","computed":true},"target_iqn":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_iscsi_target_lun":{"schema":{"disk_pool_managed_disk_attachment_id":{"type":"TypeString","required":true,"forceNew":true},"iscsi_target_id":{"type":"TypeString","required":true,"forceNew":true},"lun":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_managed_disk_attachment":{"schema":{"disk_pool_id":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"flags":{"type":"TypeInt","required":true},"tag":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","optional":true,"computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":300},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","required":true,"forceNew":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_azuread_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_email_communication_service":{"schema":{"data_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain":{"schema":{"auto_create_topic_with_first_subscription":{"type":"TypeBool","optional":true,"default":true},"auto_delete_topic_with_last_subscription":{"type":"TypeBool","optional":true,"default":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_eventgrid_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_arm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"system_topic":{"type":"TypeString","required":true,"forceNew":true},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub":{"schema":{"capture_description":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeList","required":true,"elem":{"schema":{"archive_name_format":{"type":"TypeString","required":true},"blob_container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"encoding":{"type":"TypeString","required":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":300},"size_limit_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"skip_empty_archives":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"message_retention":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","required":true,"forceNew":true},"partition_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":300,"update":30}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity":{"type":"TypeInt","optional":true,"default":1},"dedicated_cluster_id":{"type":"TypeString","optional":true,"forceNew":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_throughput_units":{"type":"TypeInt","optional":true,"computed":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rulesets":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_service_access_enabled":{"type":"TypeBool","optional":true},"virtual_network_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"ignore_missing_virtual_network_service_endpoint":{"type":"TypeBool","optional":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":128}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_customer_managed_key":{"schema":{"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"key_vault_key_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_disaster_recovery_config":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_schema_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"schema_compatibility":{"type":"TypeString","required":true,"forceNew":true},"schema_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_express_route_circuit":{"schema":{"allow_classic_operations":{"type":"TypeBool","optional":true,"default":false},"authorization_key":{"type":"TypeString","optional":true},"bandwidth_in_gbps":{"type":"TypeFloat","optional":true},"bandwidth_in_mbps":{"type":"TypeInt","optional":true},"express_route_port_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","optional":true,"forceNew":true},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"family":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_connection":{"schema":{"address_prefix_ipv4":{"type":"TypeString","required":true,"forceNew":true},"address_prefix_ipv6":{"type":"TypeString","optional":true},"authorization_key":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_peering_id":{"type":"TypeString","required":true,"forceNew":true},"peering_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_peering":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_manager_etag":{"type":"TypeString","computed":true},"ipv4_enabled":{"type":"TypeBool","optional":true,"default":true},"ipv6":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"microsoft_peering":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"primary_peer_address_prefix":{"type":"TypeString","required":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_peer_address_prefix":{"type":"TypeString","required":true}}},"maxItems":1},"microsoft_peering_config":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"peer_asn":{"type":"TypeInt","optional":true,"computed":true},"peering_type":{"type":"TypeString","required":true},"primary_azure_port":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_azure_port":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","optional":true},"shared_key":{"type":"TypeString","optional":true},"vlan_id":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"enable_internet_security":{"type":"TypeBool","optional":true},"express_route_circuit_peering_id":{"type":"TypeString","required":true,"forceNew":true},"express_route_gateway_bypass_enabled":{"type":"TypeBool","optional":true,"default":false},"express_route_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"routing_weight":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_gateway":{"schema":{"allow_non_virtual_wan_traffic":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_express_route_port":{"schema":{"bandwidth_in_gbps":{"type":"TypeInt","required":true,"forceNew":true},"billing_type":{"type":"TypeString","optional":true,"computed":true},"encapsulation":{"type":"TypeString","required":true,"forceNew":true},"ethertype":{"type":"TypeString","computed":true},"guid":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"link1":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"link2":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mtu":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_port_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_port_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_federated_identity_credential":{"schema":{"audience":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"issuer":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"firewall_policy_id":{"type":"TypeString","optional":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_ip_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"sku_tier":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","optional":true,"computed":true},"virtual_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","optional":true,"default":1},"virtual_hub_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_firewall_application_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"target_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_nat_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","required":true},"translated_port":{"type":"TypeString","required":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_network_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy":{"schema":{"auto_learn_private_ranges_enabled":{"type":"TypeBool","optional":true},"base_policy_id":{"type":"TypeString","optional":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"proxy_enabled":{"type":"TypeBool","optional":true,"default":false},"servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"explicit_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_pac_file":{"type":"TypeBool","optional":true},"enabled":{"type":"TypeBool","optional":true},"http_port":{"type":"TypeInt","optional":true},"https_port":{"type":"TypeInt","optional":true},"pac_file":{"type":"TypeString","optional":true},"pac_file_port":{"type":"TypeInt","optional":true}}},"maxItems":1},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"insights":{"type":"TypeList","optional":true,"elem":{"schema":{"default_log_analytics_workspace_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"firewall_location":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"retention_in_days":{"type":"TypeInt","optional":true}}},"maxItems":1},"intrusion_detection":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true},"private_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"signature_overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"state":{"type":"TypeString","optional":true}}}},"traffic_bypass":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"source_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"sql_redirect_allowed":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","optional":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"threat_intelligence_mode":{"type":"TypeString","optional":true,"default":"Alert"},"tls_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_secret_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy_rule_collection_group":{"schema":{"application_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"terminate_tls":{"type":"TypeBool","optional":true},"web_categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_address":{"type":"TypeString","optional":true},"destination_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","optional":true},"translated_fqdn":{"type":"TypeString","optional":true},"translated_port":{"type":"TypeInt","required":true}}},"minItems":1}}},"minItems":1},"network_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"priority":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_fluid_relay_server":{"schema":{"frs_tenant_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"orderer_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_frontdoor":{"schema":{"backend_pool":{"type":"TypeList","required":true,"elem":{"schema":{"backend":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_header":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","required":true},"https_port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"weight":{"type":"TypeInt","optional":true,"default":50}}},"maxItems":500},"health_probe_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"load_balancing_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"backend_pool_health_probe":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"id":{"type":"TypeString","computed":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":120},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"probe_method":{"type":"TypeString","optional":true,"default":"GET"},"protocol":{"type":"TypeString","optional":true,"default":"Http"}}},"maxItems":5000},"backend_pool_health_probes":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_milliseconds":{"type":"TypeInt","optional":true,"default":0},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":2}}},"maxItems":5000},"backend_pool_load_balancing_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pools_send_receive_timeout_seconds":{"type":"TypeInt","optional":true,"default":60},"enforce_backend_pools_certificate_name_check":{"type":"TypeBool","required":true}}}},"backend_pools":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"cname":{"type":"TypeString","computed":true},"explicit_resource_order":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_pool_health_probe_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"routing_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"friendly_name":{"type":"TypeString","optional":true},"frontend_endpoint":{"type":"TypeList","required":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"session_affinity_ttl_seconds":{"type":"TypeInt","optional":true,"default":0},"web_application_firewall_policy_link_id":{"type":"TypeString","optional":true}}},"maxItems":500},"frontend_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"header_frontdoor_id":{"type":"TypeString","computed":true},"load_balancer_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_rule":{"type":"TypeList","required":true,"elem":{"schema":{"accepted_protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":2},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pool_name":{"type":"TypeString","required":true},"cache_duration":{"type":"TypeString","optional":true},"cache_enabled":{"type":"TypeBool","optional":true,"default":false},"cache_query_parameter_strip_directive":{"type":"TypeString","optional":true,"default":"StripAll"},"cache_query_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"cache_use_dynamic_compression":{"type":"TypeBool","optional":true,"default":false},"custom_forwarding_path":{"type":"TypeString","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"HttpsOnly"}}},"maxItems":1},"frontend_endpoints":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":500},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"redirect_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_fragment":{"type":"TypeString","optional":true},"custom_host":{"type":"TypeString","optional":true},"custom_path":{"type":"TypeString","optional":true},"custom_query_string":{"type":"TypeString","optional":true},"redirect_protocol":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":500},"routing_rules":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_custom_https_configuration":{"schema":{"custom_https_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_key_vault_certificate_secret_name":{"type":"TypeString","optional":true},"azure_key_vault_certificate_secret_version":{"type":"TypeString","optional":true},"azure_key_vault_certificate_vault_id":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","optional":true,"default":"FrontDoor"},"minimum_tls_version":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true},"provisioning_substate":{"type":"TypeString","computed":true}}},"maxItems":1},"custom_https_provisioning_enabled":{"type":"TypeBool","required":true},"frontend_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_frontdoor_rules_engine":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"frontdoor_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"request_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100},"response_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100}}},"maxItems":1},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transform":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":6},"value":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"variable":{"type":"TypeString","optional":true}}},"maxItems":100},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true}}},"maxItems":100}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_cert_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"","forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_function_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_function":{"schema":{"config_json":{"type":"TypeString","required":true,"description":"The config for this Function in JSON format."},"config_url":{"type":"TypeString","description":"The URL of the configuration JSON.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this function be enabled. Defaults to `true`."},"file":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"description":"The content of the file.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The filename of the file to be uploaded.","forceNew":true}}},"minItems":1},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App in which this function should reside.","forceNew":true},"invocation_url":{"type":"TypeString","description":"The invocation URL.","computed":true},"language":{"type":"TypeString","optional":true,"description":"The language the Function is written in."},"name":{"type":"TypeString","required":true,"description":"The name of the function.","forceNew":true},"script_root_path_url":{"type":"TypeString","description":"The Script root path URL.","computed":true},"script_url":{"type":"TypeString","description":"The script URL.","computed":true},"secrets_file_url":{"type":"TypeString","description":"The URL for the Secrets File.","computed":true},"test_data":{"type":"TypeString","optional":true,"description":"The test data for the function."},"test_data_url":{"type":"TypeString","description":"The Test data URL.","computed":true},"url":{"type":"TypeString","description":"The function URL.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_hybrid_connection":{"schema":{"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App for this Hybrid Connection.","forceNew":true},"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_slot":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"function_app_name":{"type":"TypeString","required":true,"forceNew":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application":{"schema":{"description":{"type":"TypeString","optional":true},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true},"gallery_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true},"release_note_uri":{"type":"TypeString","optional":true},"supported_os_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application_version":{"schema":{"enable_health_check":{"type":"TypeBool","optional":true,"default":false},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_application_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"manage_action":{"type":"TypeList","required":true,"elem":{"schema":{"install":{"type":"TypeString","required":true,"forceNew":true},"remove":{"type":"TypeString","required":true,"forceNew":true},"update":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"default_configuration_link":{"type":"TypeString","optional":true,"forceNew":true},"media_link":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_services_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hdinsight_hadoop_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hadoop":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"edge_node":{"type":"TypeList","optional":true,"elem":{"schema":{"https_endpoints":{"type":"TypeList","optional":true,"elem":{"schema":{"access_modes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_port":{"type":"TypeInt","optional":true},"disable_gateway_auth":{"type":"TypeBool","optional":true},"private_ip_address":{"type":"TypeString","optional":true},"sub_domain_suffix":{"type":"TypeString","optional":true}}}},"install_script_action":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"target_instance_count":{"type":"TypeInt","required":true},"uninstall_script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"vm_size":{"type":"TypeString","required":true}}},"maxItems":1},"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_hbase_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hbase":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_interactive_query_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"interactive_hive":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_kafka_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"kafka":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rest_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"security_group_id":{"type":"TypeString","required":true,"forceNew":true},"security_group_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kafka_management_node":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"number_of_disks_per_node":{"type":"TypeInt","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_spark_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"spark":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_healthbot":{"schema":{"bot_management_portal_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"authority":{"type":"TypeString","required":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"configuration_export_storage_account_name":{"type":"TypeString","optional":true},"container_registry_login_server_url":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"credentials_allowed":{"type":"TypeBool","optional":true,"default":false},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","optional":true,"default":"fhir-R4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"oci_artifact":{"type":"TypeList","optional":true,"elem":{"schema":{"digest":{"type":"TypeString","optional":true},"image_name":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_medtech_service_fhir_destination":{"schema":{"destination_fhir_mapping_json":{"type":"TypeString","required":true},"destination_fhir_service_id":{"type":"TypeString","required":true},"destination_identity_resolution_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"medtech_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"audience":{"type":"TypeString","optional":true},"authority":{"type":"TypeString","optional":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","optional":true},"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","optional":true,"forceNew":true},"cosmosdb_throughput":{"type":"TypeInt","optional":true,"default":1000},"kind":{"type":"TypeString","optional":true,"default":"fhir"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache":{"schema":{"automatically_rotate_key_to_latest_enabled":{"type":"TypeBool","optional":true},"cache_size_in_gb":{"type":"TypeInt","required":true,"forceNew":true},"default_access_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1}}},"maxItems":1,"minItems":1},"directory_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_netbios_name":{"type":"TypeString","required":true},"dns_primary_ip":{"type":"TypeString","required":true},"dns_secondary_ip":{"type":"TypeString","optional":true},"domain_name":{"type":"TypeString","required":true},"domain_netbios_name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"directory_flat_file":{"type":"TypeList","optional":true,"elem":{"schema":{"group_file_uri":{"type":"TypeString","required":true},"password_file_uri":{"type":"TypeString","required":true}}},"maxItems":1},"directory_ldap":{"type":"TypeList","optional":true,"elem":{"schema":{"base_dn":{"type":"TypeString","required":true},"bind":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dn":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_validation_uri":{"type":"TypeString","optional":true},"download_certificate_automatically":{"type":"TypeBool","optional":true},"encrypted":{"type":"TypeBool","optional":true},"server":{"type":"TypeString","required":true}}},"maxItems":1},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"search_domain":{"type":"TypeString","optional":true},"servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mtu":{"type":"TypeInt","optional":true,"default":1500},"name":{"type":"TypeString","required":true,"forceNew":true},"ntp_server":{"type":"TypeString","optional":true,"default":"time.windows.com"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hpc_cache_access_policy":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1},"hpc_cache_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_nfs_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_nfs_target":{"schema":{"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_junction":{"type":"TypeSet","required":true,"elem":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"namespace_path":{"type":"TypeString","required":true},"nfs_export":{"type":"TypeString","required":true},"target_path":{"type":"TypeString","optional":true,"default":""}}},"maxItems":10,"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"target_host_name":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"lun":{"type":"TypeInt","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}}},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"os_state":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_virtual_machine_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_integration_service_environment":{"schema":{"access_endpoint_type":{"type":"TypeString","required":true,"forceNew":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Developer_0"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":4,"minItems":4},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_iot_security_device_group":{"schema":{"allow_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_from_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"connection_to_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"local_users_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"processes_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"range_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"max":{"type":"TypeInt","required":true},"min":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_security_solution":{"schema":{"additional_workspace":{"type":"TypeSet","optional":true,"elem":{"schema":{"data_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}}}},"disabled_data_sources":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events_to_export":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"iothub_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"log_unmasked_ips_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"query_for_resources":{"type":"TypeString","optional":true,"computed":true},"query_subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"recommendations_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_authentication":{"type":"TypeBool","optional":true,"default":true},"agent_send_unutilized_msg":{"type":"TypeBool","optional":true,"default":true},"baseline":{"type":"TypeBool","optional":true,"default":true},"edge_hub_mem_optimize":{"type":"TypeBool","optional":true,"default":true},"edge_logging_option":{"type":"TypeBool","optional":true,"default":true},"inconsistent_module_settings":{"type":"TypeBool","optional":true,"default":true},"install_agent":{"type":"TypeBool","optional":true,"default":true},"ip_filter_deny_all":{"type":"TypeBool","optional":true,"default":true},"ip_filter_permissive_rule":{"type":"TypeBool","optional":true,"default":true},"open_ports":{"type":"TypeBool","optional":true,"default":true},"permissive_firewall_policy":{"type":"TypeBool","optional":true,"default":true},"permissive_input_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"permissive_output_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"privileged_docker_options":{"type":"TypeBool","optional":true,"default":true},"shared_credentials":{"type":"TypeBool","optional":true,"default":true},"vulnerable_tls_cipher_suite":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_access_policy":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_object_id":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_eventhub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_iothub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_gen2_environment":{"schema":{"data_access_fqdn":{"type":"TypeString","computed":true},"id_properties":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage":{"type":"TypeList","required":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"warm_store_data_retention_time":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_reference_data_set":{"schema":{"data_string_comparison_behavior":{"type":"TypeString","optional":true,"default":"Ordinal","forceNew":true},"key_property":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_standard_environment":{"schema":{"data_retention_time":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_limit_exceeded_behavior":{"type":"TypeString","optional":true,"default":"PurgeOldData"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"ST1"},"sub_domain":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application_network_rule_set":{"schema":{"apply_to_device":{"type":"TypeBool","optional":true,"default":true},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"iotcentral_application_id":{"type":"TypeString","required":true,"forceNew":true},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub":{"schema":{"cloud_to_device":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"feedback":{"type":"TypeList","optional":true,"elem":{"schema":{"lock_duration":{"type":"TypeString","optional":true,"default":"PT60S"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"time_to_live":{"type":"TypeString","optional":true,"default":"PT1H"}}}},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10}}},"maxItems":1},"endpoint":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"enrichment":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":10},"event_hub_events_endpoint":{"type":"TypeString","computed":true},"event_hub_events_namespace":{"type":"TypeString","computed":true},"event_hub_events_path":{"type":"TypeString","computed":true},"event_hub_operations_endpoint":{"type":"TypeString","computed":true},"event_hub_operations_path":{"type":"TypeString","computed":true},"event_hub_partition_count":{"type":"TypeInt","optional":true,"computed":true},"event_hub_retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"fallback_route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","optional":true,"computed":true},"endpoint_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}}},"maxItems":1},"file_upload":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"computed":true},"identity_id":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"apply_to_builtin_eventhub_endpoint":{"type":"TypeBool","optional":true,"default":false},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}},"shared_access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"key_name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_consumer_group":{"schema":{"eventhub_endpoint_name":{"type":"TypeString","required":true,"forceNew":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_account":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_instance":{"schema":{"device_update_account_id":{"type":"TypeString","required":true,"forceNew":true},"diagnostic_enabled":{"type":"TypeBool","optional":true,"default":false},"diagnostic_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","optional":true,"default":"Hashed"},"data_residency_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"ip_filter_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"target":{"type":"TypeString","optional":true}}}},"linked_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_weight":{"type":"TypeInt","optional":true,"default":1},"apply_allocation_policy":{"type":"TypeBool","optional":true,"default":true},"connection_string":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_operations_host_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iot_dps_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"enrollment_read":{"type":"TypeBool","optional":true,"default":false},"enrollment_write":{"type":"TypeBool","optional":true,"default":false},"iothub_dps_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registration_read":{"type":"TypeBool","optional":true,"default":false},"registration_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_config":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_cosmosdb_account":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_name":{"type":"TypeString","optional":true},"partition_key_template":{"type":"TypeString","optional":true},"primary_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_eventhub":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_queue":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_topic":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_storage_container":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_enrichment":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":100},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"key":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_fallback_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_file_upload":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"lock_duration":{"type":"TypeString","optional":true,"default":"PT1M"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications_enabled":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"default":"PT1H"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_shared_access_policy":{"schema":{"device_connect":{"type":"TypeBool","optional":true,"default":false},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registry_read":{"type":"TypeBool","optional":true,"default":false},"registry_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_connect":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"firewall_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group_cidr":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"ip_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","optional":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1024},"contact":{"type":"TypeSet","optional":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"enable_rbac_authorization":{"type":"TypeBool","optional":true},"enabled_for_deployment":{"type":"TypeBool","optional":true},"enabled_for_disk_encryption":{"type":"TypeBool","optional":true},"enabled_for_template_deployment":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_protection_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_access_policy":{"schema":{"application_id":{"type":"TypeString","optional":true,"forceNew":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true,"forceNew":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate":{"schema":{"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"contents":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate_attribute":{"type":"TypeList","computed":true,"elem":{"schema":{"created":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"expires":{"type":"TypeString","computed":true},"not_before":{"type":"TypeString","computed":true},"recovery_level":{"type":"TypeString","computed":true},"updated":{"type":"TypeString","computed":true}}}},"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"key_properties":{"type":"TypeList","required":true,"elem":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true},"exportable":{"type":"TypeBool","required":true},"key_size":{"type":"TypeInt","optional":true,"computed":true},"key_type":{"type":"TypeString","required":true},"reuse_key":{"type":"TypeBool","required":true}}},"maxItems":1},"lifetime_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","optional":true},"lifetime_percentage":{"type":"TypeInt","optional":true}}},"maxItems":1}}}},"secret_properties":{"type":"TypeList","required":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true}}},"maxItems":1},"x509_certificate_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","required":true},"subject_alternative_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dns_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"validity_in_months":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":30,"delete":30,"update":30}},"azurerm_key_vault_certificate_contacts":{"schema":{"contact":{"type":"TypeSet","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","optional":true},"admin":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","optional":true},"last_name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_id":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"provider_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"e":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","optional":true},"key_opts":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","optional":true,"forceNew":true},"key_type":{"type":"TypeString","required":true,"forceNew":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"rotation_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"automatic":{"type":"TypeList","optional":true,"elem":{"schema":{"time_after_creation":{"type":"TypeString","optional":true},"time_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"expire_after":{"type":"TypeString","optional":true},"notify_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_domain_encrypted_data":{"type":"TypeString","computed":true},"security_domain_key_vault_certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10,"minItems":3},"security_domain_quorum":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":30}},"azurerm_key_vault_managed_storage_account":{"schema":{"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"regenerate_key_automatically":{"type":"TypeBool","optional":true,"default":false},"regeneration_period":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_managed_storage_account_sas_token_definition":{"schema":{"managed_storage_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sas_template_uri":{"type":"TypeString","required":true},"sas_type":{"type":"TypeString","required":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validity_period":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","optional":true,"elem":{"schema":{"connector_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_name":{"type":"TypeString","required":true}}},"maxItems":1},"api_server_access_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true},"vnet_integration_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"api_server_authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auto_scaler_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"balance_similar_node_groups":{"type":"TypeBool","optional":true,"default":false},"empty_bulk_delete_max":{"type":"TypeString","optional":true,"computed":true},"expander":{"type":"TypeString","optional":true,"default":"random"},"max_graceful_termination_sec":{"type":"TypeString","optional":true,"computed":true},"max_node_provisioning_time":{"type":"TypeString","optional":true,"default":"15m"},"max_unready_nodes":{"type":"TypeInt","optional":true,"default":3},"max_unready_percentage":{"type":"TypeFloat","optional":true,"default":45},"new_pod_scale_up_delay":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_add":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_delete":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_failure":{"type":"TypeString","optional":true,"computed":true},"scale_down_unneeded":{"type":"TypeString","optional":true,"computed":true},"scale_down_unready":{"type":"TypeString","optional":true,"computed":true},"scale_down_utilization_threshold":{"type":"TypeString","optional":true,"computed":true},"scan_interval":{"type":"TypeString","optional":true,"computed":true},"skip_nodes_with_local_storage":{"type":"TypeBool","optional":true,"default":true},"skip_nodes_with_system_pods":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"automatic_channel_upgrade":{"type":"TypeString","optional":true},"azure_active_directory_role_based_access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","optional":true},"client_app_id":{"type":"TypeString","optional":true},"managed":{"type":"TypeBool","optional":true},"server_app_id":{"type":"TypeString","optional":true},"server_app_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"azure_policy_enabled":{"type":"TypeBool","optional":true},"confidential_computing":{"type":"TypeList","optional":true,"elem":{"schema":{"sgx_quote_helper_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"custom_ca_trust_certificates_base64":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"default_node_pool":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true},"enable_node_public_ip":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false},"cpu_cfs_quota_period":{"type":"TypeString","optional":true},"cpu_manager_policy":{"type":"TypeString","optional":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true},"pod_max_pid":{"type":"TypeInt","optional":true},"topology_manager_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"linux_os_config":{"type":"TypeList","optional":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"only_critical_addons_enabled":{"type":"TypeBool","optional":true},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed"},"os_sku":{"type":"TypeString","optional":true,"computed":true},"pod_subnet_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"temporary_name_for_rotation":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"VirtualMachineScaleSets","forceNew":true},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true},"vnet_subnet_id":{"type":"TypeString","optional":true},"workload_runtime":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix_private_cluster":{"type":"TypeString","optional":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_pod_security_policy":{"type":"TypeBool","optional":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","optional":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"http_proxy_config":{"type":"TypeList","optional":true,"elem":{"schema":{"http_proxy":{"type":"TypeString","optional":true,"forceNew":true},"https_proxy":{"type":"TypeString","optional":true,"forceNew":true},"no_proxy":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trusted_ca":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_cleaner_enabled":{"type":"TypeBool","optional":true,"default":false},"image_cleaner_interval_hours":{"type":"TypeInt","optional":true,"default":48},"ingress_application_gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","optional":true},"gateway_name":{"type":"TypeString","optional":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"key_management_service":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_network_access":{"type":"TypeString","optional":true,"default":"Public"}}},"maxItems":1},"key_vault_secrets_provider":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"secret_rotation_interval":{"type":"TypeString","optional":true,"default":"2m"}}},"maxItems":1},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"object_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"kubernetes_version":{"type":"TypeString","optional":true,"computed":true},"linux_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_username":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeList","required":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"local_account_disabled":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"hours":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"minItems":1}}}},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}}}},"maxItems":1},"maintenance_window_auto_upgrade":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"maintenance_window_node_os":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"microsoft_defender":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true}}},"maxItems":1},"monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"annotations_allowed":{"type":"TypeString","optional":true},"labels_allowed":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"docker_bridge_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ebpf_data_plane":{"type":"TypeString","optional":true},"ip_versions":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"load_balancer_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":30},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true},"managed_outbound_ipv6_count":{"type":"TypeInt","optional":true,"computed":true},"outbound_ip_address_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ip_prefix_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ports_allocated":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"load_balancer_sku":{"type":"TypeString","optional":true,"default":"standard","forceNew":true},"nat_gateway_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"network_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"network_plugin":{"type":"TypeString","required":true,"forceNew":true},"network_plugin_mode":{"type":"TypeString","optional":true},"network_policy":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"pod_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pod_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"service_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_os_channel_upgrade":{"type":"TypeString","optional":true},"node_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","optional":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","optional":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"open_service_mesh_enabled":{"type":"TypeBool","optional":true},"portal_fqdn":{"type":"TypeString","computed":true},"private_cluster_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"private_cluster_public_fqdn_enabled":{"type":"TypeBool","optional":true,"default":false},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"private_fqdn":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_based_access_control_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"run_command_enabled":{"type":"TypeBool","optional":true,"default":true},"service_mesh_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true}}},"maxItems":1},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"storage_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"disk_driver_version":{"type":"TypeString","optional":true,"default":"v1"},"file_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"snapshot_controller_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"web_app_routing":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_zone_id":{"type":"TypeString","required":true},"web_app_routing_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"windows_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"gmsa":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_server":{"type":"TypeString","required":true},"root_domain":{"type":"TypeString","required":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true}}},"maxItems":1},"workload_autoscaler_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"keda_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_controlled_values":{"type":"TypeString","computed":true},"vertical_pod_autoscaler_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_update_mode":{"type":"TypeString","computed":true}}},"maxItems":1},"workload_identity_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_kubernetes_cluster_extension":{"schema":{"aks_assigned_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true,"forceNew":true},"enable_node_public_ip":{"type":"TypeBool","optional":true,"forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true,"forceNew":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"cpu_cfs_quota_period":{"type":"TypeString","optional":true,"forceNew":true},"cpu_manager_policy":{"type":"TypeString","optional":true,"forceNew":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"pod_max_pid":{"type":"TypeInt","optional":true,"forceNew":true},"topology_manager_policy":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"linux_os_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true,"forceNew":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","optional":true,"default":"User"},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed","forceNew":true},"os_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"Linux","forceNew":true},"pod_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"spot_max_price":{"type":"TypeFloat","optional":true,"default":-1,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"vnet_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"windows_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"outbound_nat_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"workload_runtime":{"type":"TypeString","optional":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kubernetes_cluster_trusted_access_role_binding":{"schema":{"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_fleet_manager":{"schema":{"hub_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dns_prefix":{"type":"TypeString","required":true},"fqdn":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true}}},"maxItems":1},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_attached_database_configuration":{"schema":{"attached_database_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"cluster_resource_id":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_principal_modification_kind":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"elem":{"schema":{"external_tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"external_tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster":{"schema":{"allowed_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allowed_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"auto_stop_enabled":{"type":"TypeBool","optional":true,"default":true},"data_ingestion_uri":{"type":"TypeString","computed":true},"disk_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"double_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"engine":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"language_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimized_auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum_instances":{"type":"TypeInt","required":true},"minimum_instances":{"type":"TypeInt","required":true}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"public_ip_type":{"type":"TypeString","optional":true,"default":"IPv4"},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"streaming_ingestion_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_external_tenants":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true},"virtual_network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_management_public_ip_id":{"type":"TypeString","required":true},"engine_public_ip_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_customer_managed_key":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"user_identity":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_cluster_managed_private_endpoint":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_id":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_region":{"type":"TypeString","optional":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cosmosdb_data_connection":{"schema":{"cosmosdb_container_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_id":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retrieval_start_date":{"type":"TypeString","optional":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"hot_cache_period":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_database_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_eventgrid_data_connection":{"schema":{"blob_storage_event_type":{"type":"TypeString","optional":true,"default":"Microsoft.Storage.BlobCreated"},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"eventgrid_resource_id":{"type":"TypeString","optional":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","optional":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skip_first_record":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_eventhub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"compression":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_iothub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_script":{"schema":{"continue_on_errors_enabled":{"type":"TypeBool","optional":true,"default":false},"database_id":{"type":"TypeString","required":true,"forceNew":true},"force_an_update_when_value_changed":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sas_token":{"type":"TypeString","optional":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_lab":{"schema":{"auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"lab_plan_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","computed":true},"public_ip_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roster":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_group_id":{"type":"TypeString","optional":true},"lms_instance":{"type":"TypeString","optional":true},"lti_client_id":{"type":"TypeString","optional":true},"lti_context_id":{"type":"TypeString","optional":true},"lti_roster_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"security":{"type":"TypeList","required":true,"elem":{"schema":{"open_access_enabled":{"type":"TypeBool","required":true},"registration_code":{"type":"TypeString","computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title":{"type":"TypeString","required":true},"virtual_machine":{"type":"TypeList","required":true,"elem":{"schema":{"additional_capability_gpu_drivers_installed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"admin_user":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"create_option":{"type":"TypeString","optional":true,"default":"Image","forceNew":true},"image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"non_admin_user":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"shared_password_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_lab_service_plan":{"schema":{"allowed_regions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":28,"minItems":1},"default_auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"default_connection":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true},"web_rdp_access":{"type":"TypeString","optional":true},"web_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"default_network_subnet_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_gallery_id":{"type":"TypeString","optional":true},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"instructions":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_schedule":{"schema":{"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"stop_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_user":{"schema":{"additional_usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"},"email":{"type":"TypeString","required":true,"forceNew":true},"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb":{"schema":{"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"id":{"type":"TypeString","computed":true},"inbound_nat_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_version":{"type":"TypeString","optional":true,"computed":true},"public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"computed":true},"subnet_id":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool":{"schema":{"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tunnel_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier":{"type":"TypeInt","required":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"virtual_network_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool_address":{"schema":{"backend_address_ip_configuration_id":{"type":"TypeString","optional":true,"description":"For global load balancer, user needs to specify the `backend_address_ip_configuration_id` of the added regional load balancers"},"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"description":"For regional load balancer, user needs to specify `virtual_network_id` and `ip_address`"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_pool":{"schema":{"backend_port":{"type":"TypeInt","required":true},"floating_ip_enabled":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_end":{"type":"TypeInt","required":true},"frontend_port_start":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tcp_reset_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","optional":true},"backend_ip_configuration_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","required":true},"enable_floating_ip":{"type":"TypeBool","optional":true,"computed":true},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","optional":true},"frontend_port_end":{"type":"TypeInt","optional":true},"frontend_port_start":{"type":"TypeInt","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","optional":true,"default":1024},"backend_address_pool_id":{"type":"TypeString","required":true},"enable_tcp_reset":{"type":"TypeBool","optional":true,"default":false},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_probe":{"schema":{"interval_in_seconds":{"type":"TypeInt","optional":true,"default":15},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_probes":{"type":"TypeInt","optional":true,"default":2},"port":{"type":"TypeInt","required":true},"probe_threshold":{"type":"TypeInt","optional":true,"default":1},"protocol":{"type":"TypeString","optional":true,"computed":true},"request_path":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_rule":{"schema":{"backend_address_pool_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":1},"backend_port":{"type":"TypeInt","required":true},"disable_outbound_snat":{"type":"TypeBool","optional":true,"default":false},"enable_floating_ip":{"type":"TypeBool","optional":true,"default":false},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"load_distribution":{"type":"TypeString","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"probe_id":{"type":"TypeString","optional":true,"computed":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lighthouse_assignment":{"schema":{"lighthouse_definition_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_lighthouse_definition":{"schema":{"authorization":{"type":"TypeSet","required":true,"elem":{"schema":{"delegated_role_definition_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"eligible_authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"just_in_time_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"approver":{"type":"TypeSet","optional":true,"elem":{"schema":{"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true}}}},"maximum_activation_duration":{"type":"TypeString","optional":true,"default":"PT8H"},"multi_factor_auth_provider":{"type":"TypeString","optional":true}}},"maxItems":1},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}}},"lighthouse_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managing_tenant_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022``","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Function App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Linux Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_linux_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"default":0},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_linux_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_web_app_slot":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_service_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_load_test":{"schema":{"data_plane_uri":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"gateway_address":{"type":"TypeString","optional":true},"gateway_fqdn":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_cluster":{"schema":{"cluster_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"default":1000},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_cluster_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"log_analytics_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_data_export_rule":{"schema":{"destination_resource_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"export_rule_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_event":{"schema":{"event_log_name":{"type":"TypeString","required":true},"event_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_performance_counter":{"schema":{"counter_name":{"type":"TypeString","required":true},"instance_name":{"type":"TypeString","required":true},"interval_seconds":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"object_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_service":{"schema":{"name":{"type":"TypeString","computed":true},"read_access_id":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true},"write_access_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_storage_account":{"schema":{"data_source_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack_query":{"schema":{"additional_settings_json":{"type":"TypeString","optional":true},"body":{"type":"TypeString","required":true},"categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"query_pack_id":{"type":"TypeString","required":true,"forceNew":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"solutions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_saved_search":{"schema":{"category":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"function_alias":{"type":"TypeString","optional":true,"forceNew":true},"function_parameters":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_solution":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"solution_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_storage_insights":{"schema":{"blob_container_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"table_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_workspace":{"schema":{"allow_resource_only_permissions":{"type":"TypeBool","optional":true,"default":true},"cmk_for_query_forced":{"type":"TypeBool","optional":true},"daily_quota_gb":{"type":"TypeFloat","optional":true,"default":-1},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_shared_key":{"type":"TypeString","computed":true},"reservation_capacity_in_gb_per_day":{"type":"TypeInt","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_http":{"schema":{"body":{"type":"TypeString","optional":true},"headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"queries":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_after":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_name":{"type":"TypeString","required":true},"action_result":{"type":"TypeString","required":true}}},"minItems":1},"uri":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account":{"schema":{"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_agreement":{"schema":{"agreement_type":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"guest_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"guest_partner_name":{"type":"TypeString","required":true},"host_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"host_partner_name":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_assembly":{"schema":{"assembly_name":{"type":"TypeString","required":true},"assembly_version":{"type":"TypeString","optional":true,"default":"0.0.0.0"},"content":{"type":"TypeString","optional":true},"content_link_uri":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_batch_configuration":{"schema":{"batch_group_name":{"type":"TypeString","required":true,"forceNew":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"release_criteria":{"type":"TypeList","required":true,"elem":{"schema":{"batch_size":{"type":"TypeInt","optional":true},"message_count":{"type":"TypeInt","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeSet","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","required":true},"weekday":{"type":"TypeString","required":true}}}},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_certificate":{"schema":{"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true}}},"maxItems":1},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_certificate":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_map":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"map_type":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_partner":{"schema":{"business_identity":{"type":"TypeSet","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_schema":{"schema":{"content":{"type":"TypeString","required":true},"file_name":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_session":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","optional":true,"default":"[1.*, 2.0.0)"},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"client_certificate_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_share_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","optional":true,"default":true},"version":{"type":"TypeString","optional":true,"default":"~3"},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_http_request":{"schema":{"callback_url":{"type":"TypeString","computed":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"relative_path":{"type":"TypeString","optional":true},"schema":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_recurrence":{"schema":{"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"at_these_hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"at_these_minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"on_these_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_workflow":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"open_authentication_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"claim":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"workflow_management":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logic_app_integration_account_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","optional":true,"default":"https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#","forceNew":true},"workflow_version":{"type":"TypeString","optional":true,"default":"1.0.0.0","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_monitor":{"schema":{"company_name":{"type":"TypeString","optional":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logz_organization_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","required":true,"forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"100gb14days","forceNew":true},"usage_type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_sign_on_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account_tag_rule":{"schema":{"logz_sub_account_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_tag_rule":{"schema":{"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_compute_cluster":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"scale_settings":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true,"forceNew":true},"min_node_count":{"type":"TypeInt","required":true,"forceNew":true},"scale_down_nodes_after_idle_duration":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"key_value":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"ssh_public_access_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"vm_priority":{"type":"TypeString","required":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_compute_instance":{"schema":{"assign_to_user":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"object_id":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"authorization_type":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","computed":true}}},"maxItems":1},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"virtual_machine_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_datastore_blobstorage":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_auth_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_datalake_gen2":{"schema":{"authority_url":{"type":"TypeString","optional":true,"computed":true},"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_fileshare":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_fileshare_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_inference_cluster":{"schema":{"cluster_purpose":{"type":"TypeString","optional":true,"default":"FastProd","forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ssl":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cert":{"type":"TypeString","optional":true,"default":"","forceNew":true},"cname":{"type":"TypeString","optional":true,"default":"","forceNew":true},"key":{"type":"TypeString","optional":true,"default":"","forceNew":true},"leaf_domain_label":{"type":"TypeString","optional":true,"default":"","forceNew":true},"overwrite_existing_domain":{"type":"TypeBool","optional":true,"default":"","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_synapse_spark":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_workspace":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"container_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"discovery_url":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key_id":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"friendly_name":{"type":"TypeString","optional":true},"high_business_impact":{"type":"TypeBool","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_build_compute_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_user_assigned_identity":{"type":"TypeString","optional":true},"public_access_behind_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Basic"},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"v1_legacy_mode_enabled":{"type":"TypeBool","optional":true,"default":false},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maintenance_assignment_dedicated_host":{"schema":{"dedicated_host_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine_scale_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","optional":true},"install_patches":{"type":"TypeList","optional":true,"elem":{"schema":{"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"reboot":{"type":"TypeString","optional":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","optional":true,"default":"Custom"},"window":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","optional":true},"expiration_date_time":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"start_date_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application":{"schema":{"application_definition_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameter_values":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application_definition":{"schema":{"authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"role_definition_id":{"type":"TypeString","required":true},"service_principal_id":{"type":"TypeString","required":true}}},"minItems":1},"create_ui_definition":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_level":{"type":"TypeString","required":true,"forceNew":true},"main_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"package_enabled":{"type":"TypeBool","optional":true,"default":true},"package_file_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","required":true,"forceNew":true},"disk_access_id":{"type":"TypeString","optional":true},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_iops_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"gallery_image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"forceNew":true},"image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logical_sector_size":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"max_shares":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_access_policy":{"type":"TypeString","optional":true},"on_demand_bursting_enabled":{"type":"TypeBool","optional":true},"optimized_frequent_attach_enabled":{"type":"TypeBool","optional":true,"default":false},"os_type":{"type":"TypeString","optional":true},"performance_plus_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_type":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"computed":true},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"upload_size_bytes":{"type":"TypeInt","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk_sas_token":{"schema":{"access_level":{"type":"TypeString","required":true,"forceNew":true},"duration_in_seconds":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"sas_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_managed_lustre_file_system":{"schema":{"encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"hsm_setting":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"import_prefix":{"type":"TypeString","optional":true,"forceNew":true},"logging_container_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","required":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"time_of_day_in_utc":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_capacity_in_tb":{"type":"TypeInt","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"parent_management_group_id":{"type":"TypeString","optional":true,"computed":true},"subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_subscription_association":{"schema":{"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5}},"azurerm_management_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_management_lock":{"schema":{"lock_level":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_account":{"schema":{"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_creator":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maps_account_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mariadb_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_mariadb_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeString","required":true,"forceNew":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_asset":{"schema":{"alternate_id":{"type":"TypeString","optional":true},"container":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_asset_filter":{"schema":{"asset_id":{"type":"TypeString","required":true,"forceNew":true},"first_quality_bitrate":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_miliseconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","optional":true},"property":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_content_key_policy":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_option":{"type":"TypeSet","required":true,"elem":{"schema":{"clear_key_configuration_enabled":{"type":"TypeBool","optional":true},"fairplay_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"ask":{"type":"TypeString","optional":true},"offline_rental_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"playback_duration_seconds":{"type":"TypeInt","optional":true},"storage_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"pfx":{"type":"TypeString","optional":true},"pfx_password":{"type":"TypeString","optional":true},"rental_and_lease_key_type":{"type":"TypeString","optional":true},"rental_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"open_restriction_enabled":{"type":"TypeBool","optional":true},"playready_configuration_license":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_test_devices":{"type":"TypeBool","optional":true},"begin_date":{"type":"TypeString","optional":true},"content_key_location_from_header_enabled":{"type":"TypeBool","optional":true},"content_key_location_from_key_id":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"grace_period":{"type":"TypeString","optional":true},"license_type":{"type":"TypeString","optional":true},"play_right":{"type":"TypeList","optional":true,"elem":{"schema":{"agc_and_color_stripe_restriction":{"type":"TypeInt","optional":true},"allow_passing_video_content_to_unknown_output":{"type":"TypeString","optional":true},"analog_video_opl":{"type":"TypeInt","optional":true},"compressed_digital_audio_opl":{"type":"TypeInt","optional":true},"compressed_digital_video_opl":{"type":"TypeInt","optional":true},"digital_video_only_content_restriction":{"type":"TypeBool","optional":true},"explicit_analog_television_output_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"best_effort_enforced":{"type":"TypeBool","optional":true,"default":false},"control_bits":{"type":"TypeInt","required":true}}},"maxItems":1},"first_play_expiration":{"type":"TypeString","optional":true},"image_constraint_for_analog_component_video_restriction":{"type":"TypeBool","optional":true},"image_constraint_for_analog_computer_monitor_restriction":{"type":"TypeBool","optional":true},"scms_restriction":{"type":"TypeInt","optional":true},"uncompressed_digital_audio_opl":{"type":"TypeInt","optional":true},"uncompressed_digital_video_opl":{"type":"TypeInt","optional":true}}},"maxItems":1},"relative_begin_date":{"type":"TypeString","optional":true},"relative_expiration_date":{"type":"TypeString","optional":true},"security_level":{"type":"TypeString","optional":true}}}},"playready_response_custom_data":{"type":"TypeString","optional":true},"token_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"alternate_key":{"type":"TypeList","optional":true,"elem":{"schema":{"rsa_token_key_exponent":{"type":"TypeString","optional":true},"rsa_token_key_modulus":{"type":"TypeString","optional":true},"symmetric_token_key":{"type":"TypeString","optional":true},"x509_token_key_raw":{"type":"TypeString","optional":true}}}},"audience":{"type":"TypeString","optional":true},"issuer":{"type":"TypeString","optional":true},"open_id_connect_discovery_document":{"type":"TypeString","optional":true},"primary_rsa_token_key_exponent":{"type":"TypeString","optional":true},"primary_rsa_token_key_modulus":{"type":"TypeString","optional":true},"primary_symmetric_token_key":{"type":"TypeString","optional":true},"primary_x509_token_key_raw":{"type":"TypeString","optional":true},"required_claim":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"token_type":{"type":"TypeString","optional":true}}},"maxItems":1},"widevine_configuration_template":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_job":{"schema":{"description":{"type":"TypeString","optional":true},"input_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1},"priority":{"type":"TypeString","optional":true,"default":"Normal","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"transform_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event":{"schema":{"auto_start_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true},"cross_domain_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"preset_name":{"type":"TypeString","optional":true,"forceNew":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"None"},"type":{"type":"TypeString","optional":true,"default":"None","forceNew":true}}},"maxItems":1},"hostname_prefix":{"type":"TypeString","optional":true},"input":{"type":"TypeList","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"key_frame_interval_duration":{"type":"TypeString","optional":true},"streaming_protocol":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"preview":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"preview_locator":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_options":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transcription_languages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"use_static_hostname":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event_output":{"schema":{"archive_window_duration":{"type":"TypeString","required":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"hls_fragments_per_ts_segment":{"type":"TypeInt","optional":true,"forceNew":true},"live_event_id":{"type":"TypeString","required":true,"forceNew":true},"manifest_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_snap_time_in_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"rewind_window_duration":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account":{"schema":{"encryption":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_key_identifier":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"type":{"type":"TypeString","optional":true,"default":"SystemKey"}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_delivery_access_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true},"ip_allow_list":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"storage_authentication_type":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account_filter":{"schema":{"first_quality_bitrate":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_milliseconds":{"type":"TypeInt","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_endpoint":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"akamai_signature_header_authentication_key":{"type":"TypeList","optional":true,"elem":{"schema":{"base64_key":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","optional":true},"identifier":{"type":"TypeString","optional":true}}}},"ip_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}}}},"maxItems":1},"auto_start_enabled":{"type":"TypeBool","optional":true,"computed":true},"cdn_enabled":{"type":"TypeBool","optional":true},"cdn_profile":{"type":"TypeString","optional":true,"computed":true},"cdn_provider":{"type":"TypeString","optional":true,"computed":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true,"computed":true},"cross_domain_policy":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"custom_host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_cache_age_seconds":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_locator":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content_key_id":{"type":"TypeString","optional":true,"forceNew":true},"label_reference_in_streaming_policy":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","optional":true,"forceNew":true}}}},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"end_time":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"filter_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"forceNew":true},"streaming_locator_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_streaming_policy":{"schema":{"common_encryption_cbcs":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_fairplay":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_persistent_license":{"type":"TypeBool","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"common_encryption_cenc":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"clear_track":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}},"content_key_to_track_mapping":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"track":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}}}}},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_playready":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_attributes":{"type":"TypeString","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_widevine_custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"envelope_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"no_encryption_enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_transform":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"builtin_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"preset_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true},"interleave_output":{"type":"TypeString","optional":true},"key_frame_interval_in_seconds":{"type":"TypeFloat","optional":true},"max_bitrate_bps":{"type":"TypeInt","optional":true},"max_height":{"type":"TypeInt","optional":true},"max_layers":{"type":"TypeInt","optional":true},"min_bitrate_bps":{"type":"TypeInt","optional":true},"min_height":{"type":"TypeInt","optional":true}}},"maxItems":1},"preset_name":{"type":"TypeString","required":true}}},"maxItems":1},"custom_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"codec":{"type":"TypeList","required":true,"elem":{"schema":{"aac_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":128000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"profile":{"type":"TypeString","optional":true,"default":"AacLc"},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"copy_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"copy_video":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"dd_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":192000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"h264_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":23},"entropy_mode":{"type":"TypeString","optional":true,"computed":true},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"rate_control_mode":{"type":"TypeString","optional":true,"default":"ABR"},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"h265_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":28},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"jpg_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"quality":{"type":"TypeInt","optional":true,"default":70},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"sprite_column":{"type":"TypeInt","optional":true,"default":0},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"png_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1}}},"minItems":1},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"deinterlace":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true,"default":"AutoPixelAdaptive"},"parity":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"fade_in":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"fade_out":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"overlay":{"type":"TypeList","optional":true,"elem":{"schema":{"audio":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}},"maxItems":1},"video":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"opacity":{"type":"TypeFloat","optional":true,"default":1},"position":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"start":{"type":"TypeString","optional":true}}},"maxItems":1}}},"minItems":1},"rotation":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"format":{"type":"TypeList","required":true,"elem":{"schema":{"jpg":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"mp4":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1},"png":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"transport_stream":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1}}},"minItems":1}}},"maxItems":1},"face_detector_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"analysis_resolution":{"type":"TypeString","optional":true,"default":"SourceResolution"},"blur_type":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"face_redactor_mode":{"type":"TypeString","optional":true,"default":"Analyze"}}},"maxItems":1},"on_error_action":{"type":"TypeString","optional":true,"default":"StopProcessingJob"},"relative_priority":{"type":"TypeString","optional":true,"default":"Normal"},"video_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"insights_type":{"type":"TypeString","optional":true,"default":"AllInsights"}}},"maxItems":1}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_country_code":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_code":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_data_network_name":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true,"forceNew":true},"network_address_port_translation":{"type":"TypeList","optional":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"pinhole_maximum_number":{"type":"TypeInt","optional":true,"default":65536},"port_range":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum":{"type":"TypeInt","optional":true,"default":49999},"minimum":{"type":"TypeInt","optional":true,"default":1024}}},"maxItems":1},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":120},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":60}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","optional":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"control_plane_access_name":{"type":"TypeString","optional":true},"core_network_technology":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"interoperability_settings_json":{"type":"TypeString","optional":true},"local_diagnostics_access":{"type":"TypeList","required":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","required":true},"https_server_certificate_url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","optional":true},"custom_location_id":{"type":"TypeString","optional":true},"edge_device_id":{"type":"TypeString","optional":true},"stack_hci_cluster_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"sku":{"type":"TypeString","required":true},"software_version":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","optional":true,"default":1440}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pcc_rule":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precedence":{"type":"TypeInt","required":true},"qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true},"guaranteed_bit_rate":{"type":"TypeList","optional":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"Preemptable"},"qos_indicator":{"type":"TypeInt","required":true}}},"maxItems":1},"service_data_flow_template":{"type":"TypeList","required":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","optional":true,"default":true}}}},"service_precedence":{"type":"TypeInt","required":true},"service_qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":9},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true},"preemption_vulnerability":{"type":"TypeString","optional":true},"qos_indicator":{"type":"TypeInt","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim":{"schema":{"authentication_key":{"type":"TypeString","required":true},"device_type":{"type":"TypeString","optional":true},"integrated_circuit_card_identifier":{"type":"TypeString","required":true,"forceNew":true},"international_mobile_subscriber_identity":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operator_key_code":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","optional":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true},"static_ipv4_address":{"type":"TypeString","optional":true}}},"minItems":1},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","optional":true},"registration_timer_in_seconds":{"type":"TypeInt","optional":true,"default":3240},"slice":{"type":"TypeList","required":true,"elem":{"schema":{"data_network":{"type":"TypeList","required":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":0},"allowed_services_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","required":true},"default_session_type":{"type":"TypeString","optional":true,"default":"IPv4"},"max_buffered_packets":{"type":"TypeInt","optional":true,"default":10},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"NotPreemptable"},"qos_indicator":{"type":"TypeInt","required":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}}}},"default_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":180,"read":5,"delete":180,"update":60}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","required":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","optional":true},"slice_service_type":{"type":"TypeInt","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_monitor_aad_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true,"forceNew":true},"eventhub_name":{"type":"TypeString","optional":true,"forceNew":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"role_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"automation_runbook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"is_global_runbook":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true},"runbook_name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true,"default":false},"webhook_resource_id":{"type":"TypeString","required":true}}}},"azure_app_push_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"azure_function_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"http_trigger_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"email_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"event_hub_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","required":true},"ticket_configuration":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","optional":true,"default":"global","forceNew":true},"logic_app_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"callback_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"short_name":{"type":"TypeString","required":true},"sms_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"webhook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","optional":true,"computed":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_action_group":{"schema":{"action_group_id":{"type":"TypeString","required":true},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"suppression":{"type":"TypeList","required":true,"elem":{"schema":{"recurrence_type":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"end_date_utc":{"type":"TypeString","required":true},"recurrence_monthly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"},"minItems":1},"recurrence_weekly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"start_date_utc":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_activity_log_alert":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"caller":{"type":"TypeString","optional":true},"category":{"type":"TypeString","required":true},"level":{"type":"TypeString","optional":true},"levels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operation_name":{"type":"TypeString","optional":true},"recommendation_category":{"type":"TypeString","optional":true},"recommendation_impact":{"type":"TypeString","optional":true},"recommendation_type":{"type":"TypeString","optional":true},"resource_group":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"previous":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reason":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_id":{"type":"TypeString","optional":true},"resource_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_provider":{"type":"TypeString","optional":true},"resource_providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_type":{"type":"TypeString","optional":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"service_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"services":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"status":{"type":"TypeString","optional":true},"statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sub_status":{"type":"TypeString","optional":true},"sub_statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_action_group":{"schema":{"add_action_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_prometheus_rule_group":{"schema":{"cluster_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"interval":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"action_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":5},"alert":{"type":"TypeString","optional":true},"alert_resolution":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_resolved":{"type":"TypeBool","optional":true},"time_to_resolve":{"type":"TypeString","optional":true}}},"maxItems":1},"annotations":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"expression":{"type":"TypeString","required":true},"for":{"type":"TypeString","optional":true},"labels":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"record":{"type":"TypeString","optional":true},"severity":{"type":"TypeInt","optional":true}}}},"rule_group_enabled":{"type":"TypeBool","optional":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_autoscale_setting":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"send_to_subscription_administrator":{"type":"TypeBool","optional":true,"default":false},"send_to_subscription_co_administrator":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"webhook":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_uri":{"type":"TypeString","required":true}}}}}},"maxItems":1},"predictive":{"type":"TypeList","optional":true,"elem":{"schema":{"look_ahead_time":{"type":"TypeString","optional":true},"scale_mode":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"profile":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeList","required":true,"elem":{"schema":{"default":{"type":"TypeInt","required":true},"maximum":{"type":"TypeInt","required":true},"minimum":{"type":"TypeInt","required":true}}},"maxItems":1},"fixed_date":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hours":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"minutes":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","required":true,"elem":{"schema":{"dimensions":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"divide_by_instance_count":{"type":"TypeBool","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","optional":true},"metric_resource_id":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"statistic":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","required":true},"time_window":{"type":"TypeString","required":true}}},"maxItems":1},"scale_action":{"type":"TypeList","required":true,"elem":{"schema":{"cooldown":{"type":"TypeString","required":true},"direction":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":10}}},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_flow":{"type":"TypeList","required":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"output_stream":{"type":"TypeString","optional":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"transform_kql":{"type":"TypeString","optional":true}}},"minItems":1},"data_sources":{"type":"TypeList","optional":true,"elem":{"schema":{"data_import":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","required":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"stream":{"type":"TypeString","required":true}}}}}},"maxItems":1},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"extension_json":{"type":"TypeString","optional":true},"extension_name":{"type":"TypeString","required":true},"input_data_sources":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"iis_log":{"type":"TypeList","optional":true,"elem":{"schema":{"log_directories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"settings":{"type":"TypeList","optional":true,"elem":{"schema":{"text":{"type":"TypeList","required":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"performance_counter":{"type":"TypeList","optional":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"sampling_frequency_in_seconds":{"type":"TypeInt","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"prometheus_forwarder":{"type":"TypeList","optional":true,"elem":{"schema":{"label_include_filter":{"type":"TypeSet","optional":true,"elem":{"schema":{"label":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"syslog":{"type":"TypeList","optional":true,"elem":{"schema":{"facility_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"log_levels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_event_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"x_path_queries":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_firewall_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}}},"monitor_account":{"type":"TypeList","optional":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"storage_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_blob_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_table_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_declaration":{"type":"TypeSet","optional":true,"elem":{"schema":{"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"stream_name":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule_association":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_collection_rule_id":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"default":"configurationAccessEndpoint","forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","optional":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"log_analytics_destination_type":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"metric":{"type":"TypeSet","optional":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_solution_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"locations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"servicebus_rule_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_metric_alert":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"application_insights_web_test_location_availability_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"component_id":{"type":"TypeString","required":true},"failed_location_count":{"type":"TypeInt","required":true},"web_test_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"auto_mitigate":{"type":"TypeBool","optional":true,"default":true},"criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true,"default":false},"threshold":{"type":"TypeFloat","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"dynamic_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"alert_sensitivity":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"evaluation_failure_count":{"type":"TypeInt","optional":true,"default":4},"evaluation_total_count":{"type":"TypeInt","optional":true,"default":4},"ignore_data_before":{"type":"TypeString","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","optional":true,"default":"PT1M"},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"severity":{"type":"TypeInt","optional":true,"default":3},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_location":{"type":"TypeString","optional":true,"description":"The location of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"target_resource_type":{"type":"TypeString","optional":true,"description":"The resource type (e.g. Microsoft.Compute/virtualMachines) of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"window_size":{"type":"TypeString","optional":true,"default":"PT5M"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scope":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scoped_service":{"schema":{"linked_resource_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_group":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","optional":true},"email_subject":{"type":"TypeString","optional":true}}},"maxItems":1},"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":100},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_type":{"type":"TypeString","optional":true,"default":"ResultCount"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"severity":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","optional":true},"time_window":{"type":"TypeInt","required":true},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_column":{"type":"TypeString","optional":true},"metric_trigger_type":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert_v2":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"custom_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"created_with_api_version":{"type":"TypeString","computed":true},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"failing_periods":{"type":"TypeList","optional":true,"elem":{"schema":{"minimum_failing_periods_to_trigger_alert":{"type":"TypeInt","required":true},"number_of_evaluation_periods":{"type":"TypeInt","required":true}}},"maxItems":1},"metric_measure_column":{"type":"TypeString","optional":true},"operator":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true},"resource_id_column":{"type":"TypeString","optional":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation_method":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"evaluation_frequency":{"type":"TypeString","optional":true},"is_a_legacy_log_analytics_rule":{"type":"TypeBool","computed":true},"is_workspace_alerts_storage_configured":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mute_actions_after_alert_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_time_range_override":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"severity":{"type":"TypeInt","required":true},"skip_query_validation":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"window_duration":{"type":"TypeString","required":true},"workspace_alerts_storage_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"Include"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","required":true}}},"maxItems":1},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_smart_detector_alert_rule":{"schema":{"action_group":{"type":"TypeList","required":true,"elem":{"schema":{"email_subject":{"type":"TypeString","optional":true},"ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"webhook_payload":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"detector_type":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"severity":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling_duration":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database":{"schema":{"auto_pause_delay_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"creation_source_database_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"elastic_pool_id":{"type":"TypeString","optional":true},"geo_backup_enabled":{"type":"TypeBool","optional":true,"default":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"ledger_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"computed":true},"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"maintenance_configuration_name":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeInt","optional":true,"computed":true},"min_capacity":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_replica_count":{"type":"TypeInt","optional":true,"computed":true},"read_scale":{"type":"TypeBool","optional":true,"computed":true},"recover_database_id":{"type":"TypeString","optional":true},"restore_dropped_database_id":{"type":"TypeString","optional":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"sample_name":{"type":"TypeString","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backup_interval_in_hours":{"type":"TypeInt","optional":true,"default":12},"retention_days":{"type":"TypeInt","required":true}}},"maxItems":1},"sku_name":{"type":"TypeString","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Geo"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"transparent_data_encryption_enabled":{"type":"TypeBool","optional":true,"default":true},"zone_redundant":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_database_extended_auditing_policy":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database_vulnerability_assessment_rule_baseline":{"schema":{"baseline_name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"baseline_result":{"type":"TypeSet","required":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"database_name":{"type":"TypeString","required":true,"forceNew":true},"rule_id":{"type":"TypeString","required":true,"forceNew":true},"server_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"max_size_bytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_gb":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_database_settings":{"type":"TypeList","required":true,"elem":{"schema":{"max_capacity":{"type":"TypeFloat","required":true},"min_capacity":{"type":"TypeFloat","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"family":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_server":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}},"minItems":1},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_job_agent":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_job_credential":{"schema":{"job_agent_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_managed_database":{"schema":{"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_days":{"type":"TypeInt","optional":true,"default":7}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_mssql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true},"login_username":{"type":"TypeString","required":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_vulnerability_assessment":{"schema":{"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":true},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_outbound_firewall_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"azuread_administrator":{"type":"TypeList","optional":true,"elem":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login_username":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1,"minItems":1},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_network_restriction_enabled":{"type":"TypeBool","optional":true,"default":false},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transparent_data_encryption_key_vault_key_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_server_dns_alias":{"schema":{"dns_record":{"type":"TypeString","computed":true},"mssql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_mssql_server_extended_auditing_policy":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_account_subscription_id":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_microsoft_support_auditing_policy":{"schema":{"blob_storage_endpoint":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_subscription_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"server_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"server_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_machine":{"schema":{"assessment":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"run_immediately":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"monthly_occurrence":{"type":"TypeInt","optional":true},"start_time":{"type":"TypeString","required":true},"weekly_interval":{"type":"TypeInt","optional":true}}},"maxItems":1}}},"maxItems":1},"auto_backup":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_password":{"type":"TypeString","optional":true},"manual_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"full_backup_frequency":{"type":"TypeString","required":true},"full_backup_start_hour":{"type":"TypeInt","required":true},"full_backup_window_in_hours":{"type":"TypeInt","required":true},"log_backup_frequency_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_period_in_days":{"type":"TypeInt","required":true},"storage_account_access_key":{"type":"TypeString","required":true},"storage_blob_endpoint":{"type":"TypeString","required":true},"system_databases_backup_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"auto_patching":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window_duration_in_minutes":{"type":"TypeInt","required":true},"maintenance_window_starting_hour":{"type":"TypeInt","required":true}}},"maxItems":1},"key_vault_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_url":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"service_principal_name":{"type":"TypeString","required":true,"forceNew":true},"service_principal_secret":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"r_services_enabled":{"type":"TypeBool","optional":true},"sql_connectivity_port":{"type":"TypeInt","optional":true,"default":1433},"sql_connectivity_type":{"type":"TypeString","optional":true,"default":"PRIVATE"},"sql_connectivity_update_password":{"type":"TypeString","optional":true},"sql_connectivity_update_username":{"type":"TypeString","optional":true},"sql_instance":{"type":"TypeList","optional":true,"elem":{"schema":{"adhoc_workloads_optimization_enabled":{"type":"TypeBool","optional":true,"default":false},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"instant_file_initialization_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"lock_pages_in_memory_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"max_dop":{"type":"TypeInt","optional":true,"default":0},"max_server_memory_mb":{"type":"TypeInt","optional":true,"default":2147483647},"min_server_memory_mb":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"sql_license_type":{"type":"TypeString","optional":true,"forceNew":true},"sql_virtual_machine_group_id":{"type":"TypeString","optional":true},"storage_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"data_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"disk_type":{"type":"TypeString","required":true},"log_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"storage_workload_type":{"type":"TypeString","required":true},"system_db_on_data_disk_enabled":{"type":"TypeBool","optional":true,"default":false},"temp_db_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"data_file_count":{"type":"TypeInt","optional":true,"default":8},"data_file_growth_in_mb":{"type":"TypeInt","optional":true,"default":512},"data_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"default_file_path":{"type":"TypeString","required":true},"log_file_growth_mb":{"type":"TypeInt","optional":true,"default":512},"log_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"wsfc_domain_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_bootstrap_account_password":{"type":"TypeString","required":true},"cluster_operator_account_password":{"type":"TypeString","required":true},"sql_service_account_password":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_virtual_machine_availability_group_listener":{"schema":{"availability_group_name":{"type":"TypeString","optional":true,"forceNew":true},"load_balancer_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"probe_port":{"type":"TypeInt","required":true,"forceNew":true},"sql_virtual_machine_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"multi_subnet_ip_configuration":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"replica":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"commit":{"type":"TypeString","required":true,"forceNew":true},"failover_mode":{"type":"TypeString","required":true,"forceNew":true},"readable_secondary":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}}}},"sql_virtual_machine_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_mssql_virtual_machine_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_image_offer":{"type":"TypeString","required":true,"forceNew":true},"sql_image_sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wsfc_domain_profile":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_bootstrap_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_operator_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_subnet_type":{"type":"TypeString","required":true,"forceNew":true},"fqdn":{"type":"TypeString","required":true,"forceNew":true},"organizational_unit_path":{"type":"TypeString","optional":true,"forceNew":true},"sql_service_account_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_primary_key":{"type":"TypeString","optional":true},"storage_account_url":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_password":{"type":"TypeString","optional":true},"backup_retention_days":{"type":"TypeInt","optional":true,"default":7},"create_mode":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"iops":{"type":"TypeInt","optional":true,"computed":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server_active_directory_administrator":{"schema":{"identity_id":{"type":"TypeString","required":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_nat_gateway_public_ip_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nat_gateway_public_ip_prefix_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_netapp_account":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"domain":{"type":"TypeString","required":true},"organizational_unit":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"smb_server_name":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"qos_type":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"size_in_tb":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"daily_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"hourly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"monthly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"maxItems":30},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"azure_vmware_data_store_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"create_from_snapshot_resource_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true,"forceNew":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_clients":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"protocols_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"root_access_enabled":{"type":"TypeBool","optional":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true},"unix_read_write":{"type":"TypeBool","optional":true}}},"maxItems":5},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_features":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_style":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","optional":true,"computed":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","optional":true,"computed":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"application_identifier":{"type":"TypeString","required":true,"forceNew":true},"group_description":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","required":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","required":true},"nfsv41_enabled":{"type":"TypeBool","required":true},"root_access_enabled":{"type":"TypeBool","optional":true,"default":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true,"default":false},"unix_read_write":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":5,"minItems":1},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"security_style":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","required":true,"forceNew":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"volume_spec_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":5,"minItems":2}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_netapp_volume_quota_rule":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota_size_in_kib":{"type":"TypeInt","required":true},"quota_target":{"type":"TypeString","optional":true,"forceNew":true},"quota_type":{"type":"TypeString","required":true,"forceNew":true},"volume_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_network_connection_monitor":{"schema":{"endpoint":{"type":"TypeSet","required":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"coverage_level":{"type":"TypeString","optional":true},"excluded_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"item":{"type":"TypeSet","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"AgentAddress"}}}},"type":{"type":"TypeString","optional":true,"default":"Include"}}},"maxItems":1},"included_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_resource_id":{"type":"TypeString","optional":true,"computed":true},"target_resource_type":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"output_workspace_resource_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"test_configuration":{"type":"TypeSet","required":true,"elem":{"schema":{"http_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"method":{"type":"TypeString","optional":true,"default":"Get"},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","optional":true},"prefer_https":{"type":"TypeBool","optional":true,"default":false},"request_header":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"valid_status_code_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"icmp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"preferred_ip_version":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"success_threshold":{"type":"TypeList","optional":true,"elem":{"schema":{"checks_failed_percent":{"type":"TypeInt","optional":true},"round_trip_time_ms":{"type":"TypeFloat","optional":true}}},"maxItems":1},"tcp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_port_behavior":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"test_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":60}}}},"test_group":{"type":"TypeSet","required":true,"elem":{"schema":{"destination_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"source_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"test_configuration_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_function_azure_traffic_collector":{"schema":{"collector_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"internal_dns_name_label":{"type":"TypeString","optional":true,"computed":true},"internal_domain_name_suffix":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"computed":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_gateway_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_nat_rule_association":{"schema":{"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_security_group_association":{"schema":{"network_interface_id":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager":{"schema":{"cross_tenant_scopes":{"type":"TypeList","computed":true,"elem":{"schema":{"management_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subscriptions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","required":true,"elem":{"schema":{"management_group_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"scope_accesses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule":{"schema":{"action":{"type":"TypeString","required":true},"admin_rule_collection_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"destination_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"source_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule_collection":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"security_admin_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_connectivity_configuration":{"schema":{"applies_to_group":{"type":"TypeList","required":true,"elem":{"schema":{"global_mesh_enabled":{"type":"TypeBool","optional":true},"group_connectivity":{"type":"TypeString","required":true},"network_group_id":{"type":"TypeString","required":true},"use_hub_gateway":{"type":"TypeBool","optional":true}}}},"connectivity_topology":{"type":"TypeString","required":true},"delete_existing_peering_enabled":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"global_mesh_enabled":{"type":"TypeBool","optional":true},"hub":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true},"resource_type":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_deployment":{"schema":{"configuration_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"scope_access":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_network_manager_management_group_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_scope_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"target_scope_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_security_admin_configuration":{"schema":{"apply_on_network_intent_policy_based_services":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_static_member":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_id":{"type":"TypeString","required":true,"forceNew":true},"region":{"type":"TypeString","computed":true},"target_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_network_manager_subscription_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_profile":{"schema":{"container_network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}},"maxItems":1},"container_network_interface_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_rule":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher_flow_log":{"schema":{"enabled":{"type":"TypeBool","required":true},"location":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"storage_account_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"interval_in_minutes":{"type":"TypeInt","optional":true,"default":60},"workspace_id":{"type":"TypeString","required":true},"workspace_region":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}},"maxItems":1},"version":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_new_relic_monitor":{"schema":{"account_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"account_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ingestion_key":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"organization_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","optional":true,"default":"MONTHLY","forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"newrelic-pay-as-you-go-free-live","forceNew":true},"usage_type":{"type":"TypeString","optional":true,"default":"PAYG","forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nginx_certificate":{"schema":{"certificate_virtual_path":{"type":"TypeString","required":true},"key_vault_secret_id":{"type":"TypeString","required":true},"key_virtual_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_nginx_configuration":{"schema":{"config_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true},"package_data":{"type":"TypeString","optional":true},"protected_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"root_file":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_nginx_deployment":{"schema":{"diagnose_support_enabled":{"type":"TypeBool","optional":true},"frontend_private":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"frontend_public":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"ip_address":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logging_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}}},"managed_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}}},"nginx_version":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"application_mode":{"type":"TypeString","required":true},"bundle_id":{"type":"TypeString","required":true},"key_id":{"type":"TypeString","required":true},"team_id":{"type":"TypeString","required":true},"token":{"type":"TypeString","required":true}}},"maxItems":1},"gcm_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"notification_hub_name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_contact":{"schema":{"contact_profile_id":{"type":"TypeString","required":true,"forceNew":true},"ground_station_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"reservation_end_time":{"type":"TypeString","required":true,"forceNew":true},"reservation_start_time":{"type":"TypeString","required":true,"forceNew":true},"spacecraft_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_orbital_contact_profile":{"schema":{"auto_tracking":{"type":"TypeString","required":true},"event_hub_uri":{"type":"TypeString","optional":true},"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"channels":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"demodulation_configuration":{"type":"TypeString","optional":true},"end_point":{"type":"TypeSet","required":true,"elem":{"schema":{"end_point_name":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","optional":true},"port":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"modulation_configuration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_elevation_degrees":{"type":"TypeFloat","optional":true},"minimum_variable_contact_duration":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_spacecraft":{"schema":{"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"norad_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title_line":{"type":"TypeString","required":true},"two_line_elements":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version_enabled":{"type":"TypeBool","optional":true,"default":true},"extensions_to_provision_after_vm_creation":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"failure_suppression_enabled":{"type":"TypeBool","optional":true},"force_extension_execution_on_change":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"computed":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"os_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_data":{"type":"TypeString","optional":true},"linux_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"windows_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"timezone":{"type":"TypeString","optional":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}}}},"maxItems":1}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"priority_mix":{"type":"TypeList","optional":true,"elem":{"schema":{"base_regular_count":{"type":"TypeInt","optional":true,"default":0},"regular_percentage_above_base":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"computed":true},"sku_name":{"type":"TypeString","optional":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"user_data_base64":{"type":"TypeString","optional":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","optional":true},"anti_virus_profile":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"dns_subscription":{"type":"TypeString","optional":true},"file_blocking_profile":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"url_filtering_profile":{"type":"TypeString","optional":true},"vulnerability_profile":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_certificate":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"self_signed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_fqdn_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"fully_qualified_domain_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_outbound_trust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_outbound_untrust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_prefix_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prefix_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_rule":{"schema":{"action":{"type":"TypeString","required":true},"applications":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"audit_comment":{"type":"TypeString","optional":true},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1,"minItems":1},"decryption_rule_type":{"type":"TypeString","optional":true,"default":"None"},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_fqdn_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"inspection_certificate_id":{"type":"TypeString","optional":true},"logging_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"negate_destination":{"type":"TypeBool","optional":true,"default":false},"negate_source":{"type":"TypeBool","optional":true,"default":false},"priority":{"type":"TypeInt","required":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"application-default"},"protocol_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_palo_alto_virtual_network_appliance":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_active_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"The ticket details.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_eligible_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the eligible role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this eligible role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"Ticket details relating to the assignment.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_point_to_site_vpn_gateway":{"schema":{"connection_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true},"route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"elem":{"schema":{"ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"vpn_client_address_pool":{"type":"TypeList","required":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference_internet_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"scale_unit":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_rule":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","required":true,"forceNew":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_definition_group":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","optional":true},"category":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"policy_definition_reference":{"type":"TypeList","required":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true},"policy_group_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","optional":true,"computed":true}}}},"policy_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"configuration":{"type":"TypeList","required":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true},"content_hash":{"type":"TypeString","optional":true,"computed":true},"content_uri":{"type":"TypeString","optional":true,"computed":true},"parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_tenant_configuration":{"schema":{"private_markdown_storage_enforced":{"type":"TypeBool","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true},"administrator_password":{"type":"TypeString","optional":true},"authentication":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory_auth_enabled":{"type":"TypeBool","optional":true,"default":false},"password_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":false},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true},"customer_managed_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replication_role":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_flexible_server_active_directory_administrator":{"schema":{"object_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_database":{"schema":{"charset":{"type":"TypeString","optional":true,"default":"UTF8","forceNew":true},"collation":{"type":"TypeString","optional":true,"default":"en_US.utf8","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_postgresql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_powerbi_embedded":{"schema":{"administrators":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","optional":true,"default":"Gen1","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"target_dns_servers":{"type":"TypeList","required":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"port":{"type":"TypeInt","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","required":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"subnet_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":10},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_zone_name":{"type":"TypeString","required":true,"forceNew":true},"registration_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_endpoint":{"schema":{"custom_dns_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"custom_network_interface_name":{"type":"TypeString","optional":true,"forceNew":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"member_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_dns_zone_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"record_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"type":{"type":"TypeString","computed":true}}}}}}},"private_dns_zone_group":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_zone_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"private_service_connection":{"type":"TypeList","required":true,"elem":{"schema":{"is_manual_connection":{"type":"TypeBool","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_connection_resource_alias":{"type":"TypeString","optional":true,"forceNew":true},"private_connection_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"request_message":{"type":"TypeString","optional":true},"subresource_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_private_endpoint_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","optional":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary":{"type":"TypeBool","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":8},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_proximity_placement_group":{"schema":{"allowed_vm_sizes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ddos_protection_mode":{"type":"TypeString","optional":true,"default":"VirtualNetworkInherited"},"ddos_protection_plan_id":{"type":"TypeString","optional":true},"domain_name_label":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_fqdn":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"prefix_length":{"type":"TypeInt","optional":true,"default":28,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_purview_account":{"schema":{"atlas_kafka_endpoint_primary_connection_string":{"type":"TypeString","computed":true},"atlas_kafka_endpoint_secondary_connection_string":{"type":"TypeString","computed":true},"catalog_endpoint":{"type":"TypeString","computed":true},"guardian_endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_resources":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_namespace_id":{"type":"TypeString","computed":true},"resource_group_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scan_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_recovery_services_vault":{"schema":{"classic_vmware_replication_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"cross_region_restore_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"infrastructure_encryption_enabled":{"type":"TypeBool","required":true},"key_id":{"type":"TypeString","required":true},"use_system_assigned_identity":{"type":"TypeBool","optional":true,"default":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"monitoring":{"type":"TypeList","optional":true,"elem":{"schema":{"alerts_for_all_job_failures_enabled":{"type":"TypeBool","optional":true,"default":true},"alerts_for_critical_operation_failures_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"soft_delete_enabled":{"type":"TypeBool","optional":true,"default":true},"storage_mode_type":{"type":"TypeString","optional":true,"default":"GeoRedundant"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":30,"update":60}},"azurerm_recovery_services_vault_resource_guard_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_guard_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","required":true},"enable_non_ssl_port":{"type":"TypeBool","optional":true,"default":false},"family":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"patch_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window":{"type":"TypeString","optional":true,"default":"PT5H"},"start_hour_utc":{"type":"TypeInt","optional":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"redis_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","optional":true},"aof_storage_connection_string_0":{"type":"TypeString","optional":true},"aof_storage_connection_string_1":{"type":"TypeString","optional":true},"enable_authentication":{"type":"TypeBool","optional":true,"default":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_delta":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_policy":{"type":"TypeString","optional":true,"default":"volatile-lru"},"maxmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"notify_keyspace_events":{"type":"TypeString","optional":true},"rdb_backup_enabled":{"type":"TypeBool","optional":true},"rdb_backup_frequency":{"type":"TypeInt","optional":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","optional":true},"rdb_storage_connection_string":{"type":"TypeString","optional":true}}},"maxItems":1},"redis_version":{"type":"TypeString","optional":true,"computed":true},"replicas_per_master":{"type":"TypeInt","optional":true,"computed":true},"replicas_per_primary":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_redis_enterprise_cluster":{"schema":{"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_enterprise_database":{"schema":{"client_protocol":{"type":"TypeString","optional":true,"default":"Encrypted","forceNew":true},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"clustering_policy":{"type":"TypeString","optional":true,"default":"OSSCluster","forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"default":"VolatileLRU","forceNew":true},"linked_database_group_nickname":{"type":"TypeString","optional":true,"forceNew":true},"linked_database_id":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"module":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"args":{"type":"TypeString","optional":true,"default":"","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}}},"maxItems":4},"name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"port":{"type":"TypeInt","optional":true,"default":10000,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_firewall_rule":{"schema":{"end_ip":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_linked_server":{"schema":{"linked_redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"linked_redis_cache_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_role":{"type":"TypeString","required":true,"forceNew":true},"target_redis_cache_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_relay_hybrid_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"relay_namespace_name":{"type":"TypeString","required":true,"forceNew":true},"requires_client_authorization":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_hybrid_connection_authorization_rule":{"schema":{"hybrid_connection_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_namespace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"metric_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_relay_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_cli":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_power_shell":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_by":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_resource_group_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_resource_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_provider_registration":{"schema":{"feature":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"registered":{"type":"TypeBool","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":30,"update":120}},"azurerm_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_resource_id":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":60}},"azurerm_route":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"communities":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rule_type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_map":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeList","required":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true}}}},"match_criterion":{"type":"TypeList","optional":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_condition":{"type":"TypeString","required":true},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"next_step_if_matched":{"type":"TypeString","optional":true,"default":"Unknown"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_server":{"schema":{"branch_to_branch_traffic_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_route_server_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"route_server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_route_table":{"schema":{"disable_bgp_route_propagation":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_search_service":{"schema":{"allowed_ips":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_failure_mode":{"type":"TypeString","optional":true},"customer_managed_key_enforcement_enabled":{"type":"TypeBool","optional":true,"default":false},"hosting_mode":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","optional":true,"default":1},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","optional":true,"default":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_search_shared_private_link_service":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"search_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_assessment":{"schema":{"additional_data":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"assessment_policy_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeList","required":true,"elem":{"schema":{"cause":{"type":"TypeString","optional":true},"code":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_assessment_policy":{"schema":{"categories":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"implementation_effort":{"type":"TypeString","optional":true},"name":{"type":"TypeString","computed":true},"remediation_description":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true,"default":"Medium"},"threats":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"user_impact":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_auto_provisioning":{"schema":{"auto_provision":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_automation":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","required":true},"trigger_url":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"source":{"type":"TypeList","required":true,"elem":{"schema":{"event_source":{"type":"TypeString","required":true},"rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule":{"type":"TypeList","required":true,"elem":{"schema":{"expected_value":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"property_path":{"type":"TypeString","required":true},"property_type":{"type":"TypeString","required":true}}}}}}}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_contact":{"schema":{"alert_notifications":{"type":"TypeBool","required":true},"alerts_to_admins":{"type":"TypeBool","required":true},"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"default":"default1"},"phone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_server_vulnerability_assessment":{"schema":{"hybrid_machine_id":{"type":"TypeString","optional":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_server_vulnerability_assessment_virtual_machine":{"schema":{"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_setting":{"schema":{"enabled":{"type":"TypeBool","required":true},"setting_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":10,"read":5,"delete":10,"update":10}},"azurerm_security_center_subscription_pricing":{"schema":{"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_extension_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"resource_type":{"type":"TypeString","optional":true,"default":"VirtualMachines"},"subplan":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_workspace":{"schema":{"scope":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sentinel_alert_rule_anomaly_built_in":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_anomaly_duplicate":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"built_in_rule_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"is_default_settings":{"type":"TypeBool","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true},"prioritized_exclude_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prioritize":{"type":"TypeString","optional":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_fusion":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"sub_type":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"severities_allowed":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_machine_learning_behavior_analytics":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_ms_security_incident":{"schema":{"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"display_name_exclude_filter":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name_filter":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_filter":{"type":"TypeString","required":true},"severity_filter":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_nrt":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident_enabled":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_scheduled":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"group_by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_frequency":{"type":"TypeString","optional":true,"default":"PT5H"},"query_period":{"type":"TypeString","optional":true,"default":"PT5H"},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","optional":true,"default":"GreaterThan"},"trigger_threshold":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_threat_intelligence":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_automation_rule":{"schema":{"action_incident":{"type":"TypeList","optional":true,"elem":{"schema":{"classification":{"type":"TypeString","optional":true},"classification_comment":{"type":"TypeString","optional":true},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"owner_id":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true},"status":{"type":"TypeString","optional":true}}}},"action_playbook":{"type":"TypeList","optional":true,"elem":{"schema":{"logic_app_id":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"condition":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"condition_json":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiration":{"type":"TypeString","optional":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true},"triggers_on":{"type":"TypeString","optional":true,"default":"Incidents"},"triggers_when":{"type":"TypeString","optional":true,"default":"Created"}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_sentinel_data_connector_aws_cloud_trail":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_aws_s3":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"destination_table":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sqs_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_azure_active_directory":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_security_center":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_dynamics_365":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_iot":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_cloud_app_security":{"schema":{"alerts_enabled":{"type":"TypeBool","optional":true,"default":true},"discovery_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_microsoft_defender_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_intelligence":{"schema":{"bing_safety_phishing_url_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_emerging_threat_feed_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_365":{"schema":{"exchange_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sharepoint_enabled":{"type":"TypeBool","optional":true,"default":true},"teams_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_office_365_project":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_atp":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_irm":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_power_bi":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence_taxii":{"schema":{"api_root_url":{"type":"TypeString","required":true},"collection_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z"},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"polling_frequency":{"type":"TypeString","optional":true,"default":"OnceAnHour"},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_log_analytics_workspace_onboarding":{"schema":{"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_metadata":{"schema":{"author":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"domains":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verticals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content_id":{"type":"TypeString","required":true},"content_schema_version":{"type":"TypeString","optional":true,"default":"2.0"},"custom_version":{"type":"TypeString","optional":true},"dependency":{"type":"TypeString","optional":true},"first_publish_date":{"type":"TypeString","optional":true},"icon_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"last_publish_date":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true},"preview_images":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"preview_images_dark":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"threat_analysis_tactics":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_analysis_techniques":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_threat_intelligence_indicator":{"schema":{"confidence":{"type":"TypeInt","optional":true,"default":-1},"created_by":{"type":"TypeString","optional":true},"created_on":{"type":"TypeString","computed":true},"defanged":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"extension":{"type":"TypeString","optional":true,"computed":true},"external_id":{"type":"TypeString","computed":true},"external_last_updated_time_utc":{"type":"TypeString","computed":true},"external_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"hashes":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"source_name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}}},"granular_marking":{"type":"TypeList","optional":true,"elem":{"schema":{"language":{"type":"TypeString","optional":true},"marking_ref":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"guid":{"type":"TypeString","computed":true},"indicator_type":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kill_chain_phase":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true}}}},"language":{"type":"TypeString","optional":true},"last_updated_time_utc":{"type":"TypeString","computed":true},"object_marking_refs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parsed_pattern":{"type":"TypeList","computed":true,"elem":{"schema":{"pattern_type_key":{"type":"TypeString","computed":true},"pattern_type_values":{"type":"TypeList","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true},"value_type":{"type":"TypeString","computed":true}}}}}}},"pattern":{"type":"TypeString","required":true},"pattern_type":{"type":"TypeString","required":true},"pattern_version":{"type":"TypeString","optional":true},"revoked":{"type":"TypeBool","optional":true,"default":false},"source":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"validate_from_utc":{"type":"TypeString","required":true},"validate_until_utc":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_watchlist":{"schema":{"default_duration":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"item_search_key":{"type":"TypeString","required":true,"forceNew":true},"labels":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_watchlist_item":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"properties":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"watchlist_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_cluster":{"schema":{"add_on_features":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"azure_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"client_certificate_common_name":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","required":true},"is_admin":{"type":"TypeBool","required":true},"issuer_thumbprint":{"type":"TypeString","optional":true}}}},"client_certificate_thumbprint":{"type":"TypeList","optional":true,"elem":{"schema":{"is_admin":{"type":"TypeBool","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"cluster_code_version":{"type":"TypeString","optional":true,"computed":true},"cluster_endpoint":{"type":"TypeString","computed":true},"diagnostics_config":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_endpoint":{"type":"TypeString","required":true},"protected_account_key_name":{"type":"TypeString","required":true},"queue_endpoint":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"fabric_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_endpoint":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","required":true,"elem":{"schema":{"application_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"client_endpoint_port":{"type":"TypeInt","required":true},"durability_level":{"type":"TypeString","optional":true,"default":"Bronze"},"ephemeral_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"http_endpoint_port":{"type":"TypeInt","required":true},"instance_count":{"type":"TypeInt","required":true},"is_primary":{"type":"TypeBool","required":true},"is_stateless":{"type":"TypeBool","optional":true},"multiple_availability_zones":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reverse_proxy_endpoint_port":{"type":"TypeInt","optional":true}}}},"reliability_level":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_proxy_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"reverse_proxy_certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"service_fabric_zonal_upgrade_mode":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_mode":{"type":"TypeString","required":true},"upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"delta_health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_delta_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0},"max_upgrade_domain_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"force_restart_enabled":{"type":"TypeBool","optional":true},"health_check_retry_timeout":{"type":"TypeString","optional":true,"default":"00:45:00"},"health_check_stable_duration":{"type":"TypeString","optional":true,"default":"00:01:00"},"health_check_wait_duration":{"type":"TypeString","optional":true,"default":"00:00:30"},"health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"upgrade_domain_timeout":{"type":"TypeString","optional":true,"default":"02:00:00"},"upgrade_replica_set_check_timeout":{"type":"TypeString","optional":true,"default":"10675199.02:48:05.4775807"},"upgrade_timeout":{"type":"TypeString","optional":true,"default":"12:00:00"}}},"maxItems":1},"vm_image":{"type":"TypeString","required":true,"forceNew":true},"vmss_zonal_upgrade_mode":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_managed_cluster":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","optional":true},"thumbprint":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"backup_service_enabled":{"type":"TypeBool","optional":true},"client_connection_port":{"type":"TypeInt","required":true},"custom_fabric_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","required":true},"section":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dns_name":{"type":"TypeString","optional":true,"computed":true},"dns_service_enabled":{"type":"TypeBool","optional":true},"http_gateway_port":{"type":"TypeInt","required":true},"lb_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true},"frontend_port":{"type":"TypeInt","required":true},"probe_protocol":{"type":"TypeString","required":true},"probe_request_path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","optional":true,"elem":{"schema":{"application_port_range":{"type":"TypeString","required":true},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"data_disk_size_gb":{"type":"TypeInt","required":true},"data_disk_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"},"ephemeral_port_range":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"multiple_placement_groups_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"primary":{"type":"TypeBool","optional":true},"stateless":{"type":"TypeBool","optional":true},"vm_image_offer":{"type":"TypeString","required":true},"vm_image_publisher":{"type":"TypeString","required":true},"vm_image_sku":{"type":"TypeString","required":true},"vm_image_version":{"type":"TypeString","required":true},"vm_instance_count":{"type":"TypeInt","required":true},"vm_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"certificates":{"type":"TypeList","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}}},"vault_id":{"type":"TypeString","required":true}}}},"vm_size":{"type":"TypeString","required":true}}}},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_wave":{"type":"TypeString","optional":true,"default":"Wave0"},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling_enabled":{"type":"TypeBool","optional":true,"default":false},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","optional":true,"computed":true},"zone_balancing_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":0},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_id":{"type":"TypeString","required":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_network_rule_set":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true,"default":false},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true,"default":true},"enable_express":{"type":"TypeBool","optional":true,"default":false},"enable_partitioning":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"client_scoped_subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"forceNew":true},"is_client_scoped_subscription_durable":{"type":"TypeBool","computed":true},"is_client_scoped_subscription_shareable":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"client_scoped_subscription_enabled":{"type":"TypeBool","optional":true,"default":false},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","optional":true,"default":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription_rule":{"schema":{"action":{"type":"TypeString","optional":true},"correlation_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","optional":true},"correlation_id":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"message_id":{"type":"TypeString","optional":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reply_to":{"type":"TypeString","optional":true},"reply_to_session_id":{"type":"TypeString","optional":true},"session_id":{"type":"TypeString","optional":true},"to":{"type":"TypeString","optional":true}}},"maxItems":1},"filter_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_filter":{"type":"TypeString","optional":true},"sql_filter_compatibility_level":{"type":"TypeInt","computed":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"enable_express":{"type":"TypeBool","optional":true},"enable_partitioning":{"type":"TypeBool","optional":true,"forceNew":true},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"support_ordering":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image":{"schema":{"accelerated_network_support_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"architecture":{"type":"TypeString","optional":true,"default":"x64","forceNew":true},"confidential_vm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"confidential_vm_supported":{"type":"TypeBool","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"disk_types_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true,"forceNew":true},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"identifier":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"max_recommended_vcpu_count":{"type":"TypeInt","optional":true},"min_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"min_recommended_vcpu_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true,"forceNew":true},"purchase_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_note_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"specialized":{"type":"TypeBool","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"community_gallery":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"eula":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"prefix":{"type":"TypeString","required":true,"forceNew":true},"publisher_email":{"type":"TypeString","required":true,"forceNew":true},"publisher_uri":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"permission":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_version":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"image_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_image_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk_snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"replication_mode":{"type":"TypeString","optional":true,"default":"Full","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"hostname":{"type":"TypeString","computed":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"live_trace_enabled":{"type":"TypeBool","optional":true,"default":false},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":30},"service_mode":{"type":"TypeString","optional":true,"default":"Default"},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"upstream_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"category_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"event_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hub_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_network_acl":{"schema":{"default_action":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"sub_resource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"source_network_name":{"type":"TypeString","required":true,"forceNew":true},"source_system_center_virtual_machine_manager_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_site_recovery_hyperv_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_hours":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_hours":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"replication_interval_in_seconds":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_replication_policy_association":{"schema":{"hyperv_site_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_site_recovery_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_network_id":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container_mapping":{"schema":{"automatic_update":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true},"automation_account_id":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_source_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_target_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replicated_vm":{"schema":{"managed_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_id":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_disk_encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","configMode":"Auto","required":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_encryption_key":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"target_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"target_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_replica_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true}}}},"multi_vm_group_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"failover_test_public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"failover_test_static_ip":{"type":"TypeString","optional":true,"computed":true},"failover_test_subnet_name":{"type":"TypeString","optional":true,"computed":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"recovery_public_ip_address_id":{"type":"TypeString","optional":true},"source_network_interface_id":{"type":"TypeString","optional":true,"computed":true},"target_static_ip":{"type":"TypeString","optional":true},"target_subnet_name":{"type":"TypeString","optional":true}}}},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","required":true,"forceNew":true},"target_availability_set_id":{"type":"TypeString","optional":true},"target_boot_diagnostic_storage_account_id":{"type":"TypeString","optional":true},"target_capacity_reservation_group_id":{"type":"TypeString","optional":true},"target_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"target_network_id":{"type":"TypeString","optional":true,"computed":true},"target_proximity_placement_group_id":{"type":"TypeString","optional":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"target_virtual_machine_scale_set_id":{"type":"TypeString","optional":true},"target_zone":{"type":"TypeString","optional":true,"forceNew":true},"test_network_id":{"type":"TypeString","optional":true,"computed":true},"unmanaged_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_uri":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}}}}},"timeouts":{"create":180,"read":5,"delete":80,"update":80}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"primary_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_zone":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"boot_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"failover_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_group":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"minItems":3},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"shutdown_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"source_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_services_vault_hyperv_site":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":180}},"azurerm_site_recovery_vmware_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_vmware_replication_policy_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_snapshot":{"schema":{"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"incremental_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_accelerator":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_active_deployment":{"schema":{"deployment_name":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_api_portal":{"schema":{"gateway_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"https_only_enabled":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_spring_cloud_api_portal_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_api_portal_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"custom_persistent_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"mount_path":{"type":"TypeString","required":true},"read_only_enabled":{"type":"TypeBool","optional":true,"default":false},"share_name":{"type":"TypeString","required":true},"storage_name":{"type":"TypeString","required":true}}},"minItems":1},"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backend_protocol":{"type":"TypeString","optional":true,"default":"Default"},"read_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":300},"send_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":60},"session_affinity":{"type":"TypeString","optional":true,"default":"None"},"session_cookie_max_age":{"type":"TypeInt","optional":true}}},"maxItems":1},"is_public":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"persistent_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","optional":true,"default":"/persistent"},"size_in_gb":{"type":"TypeInt","required":true}}},"maxItems":1},"public_endpoint_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"tls_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_cosmosdb_association":{"schema":{"api_type":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_access_key":{"type":"TypeString","required":true},"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_cassandra_keyspace_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_database_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_graph_name":{"type":"TypeString","optional":true},"cosmosdb_mongo_database_name":{"type":"TypeString","optional":true},"cosmosdb_sql_database_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_mysql_association":{"schema":{"database_name":{"type":"TypeString","required":true},"mysql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_redis_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"redis_access_key":{"type":"TypeString","required":true},"redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_application_live_view":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_build_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"build_result_id":{"type":"TypeString","required":true},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_build_pack_binding":{"schema":{"binding_type":{"type":"TypeString","optional":true},"launch":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_builder_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_builder":{"schema":{"build_pack_group":{"type":"TypeSet","required":true,"elem":{"schema":{"build_pack_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"stack":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_certificate":{"schema":{"certificate_content":{"type":"TypeString","optional":true,"forceNew":true},"exclude_private_key":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_configuration_service":{"schema":{"generation":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"ca_certificate_id":{"type":"TypeString","optional":true},"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"label":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"patterns":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"private_key":{"type":"TypeString","optional":true},"search_paths":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"strict_host_key_checking":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}}}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_connection":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"spring_cloud_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_container_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"arguments":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"commands":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"language_framework":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"server":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_custom_domain":{"schema":{"certificate_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_customized_accelerator":{"schema":{"accelerator_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"git_repository":{"type":"TypeList","required":true,"elem":{"schema":{"basic_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"ca_certificate_id":{"type":"TypeString","optional":true},"commit":{"type":"TypeString","optional":true},"git_tag":{"type":"TypeString","optional":true},"interval_in_seconds":{"type":"TypeInt","optional":true},"ssh_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}}},"maxItems":1},"icon_url":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_accelerator_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_dev_tool_portal":{"schema":{"application_accelerator_enabled":{"type":"TypeBool","optional":true,"computed":true},"application_live_view_enabled":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"metadata_url":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway":{"schema":{"api_metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"documentation_url":{"type":"TypeString","optional":true},"server_url":{"type":"TypeString","optional":true},"title":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"application_performance_monitoring_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verification_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origin_patterns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","optional":true},"exposed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"max_age_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"https_only":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"default":"1"},"memory":{"type":"TypeString","optional":true,"default":"2Gi"}}},"maxItems":1},"sensitive_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_route_config":{"schema":{"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"open_api":{"type":"TypeList","optional":true,"elem":{"schema":{"uri":{"type":"TypeString","optional":true}}},"maxItems":1},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeString","optional":true,"default":"HTTP"},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"classification_tags":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"sso_validation_enabled":{"type":"TypeBool","optional":true},"title":{"type":"TypeString","optional":true},"token_relay":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","optional":true}}}},"spring_cloud_app_id":{"type":"TypeString","optional":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"sso_validation_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_java_deployment":{"schema":{"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"jvm_options":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"default":"Java_8"},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_service":{"schema":{"build_agent_pool_size":{"type":"TypeString","optional":true},"config_server_git_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"pattern":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"container_registry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"server":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"default_build_service":{"type":"TypeList","optional":true,"elem":{"schema":{"container_registry_name":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"log_stream_public_endpoint_enabled":{"type":"TypeBool","optional":true},"marketplace":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"plan":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"app_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"app_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"cidr_ranges":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":3},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"read_timeout_seconds":{"type":"TypeInt","optional":true},"service_runtime_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_runtime_subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_registry_enabled":{"type":"TypeBool","optional":true},"service_registry_id":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"S0","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"sample_rate":{"type":"TypeFloat","optional":true,"default":10}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_date":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","optional":true,"computed":true},"elastic_pool_name":{"type":"TypeString","optional":true,"computed":true},"encryption":{"type":"TypeString","computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"operation_mode":{"type":"TypeString","optional":true,"default":"Import"},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_size_bytes":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_scale":{"type":"TypeBool","optional":true,"default":false},"requested_service_objective_id":{"type":"TypeString","optional":true,"computed":true},"requested_service_objective_name":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"source_database_deletion_date":{"type":"TypeString","optional":true,"computed":true},"source_database_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_elasticpool":{"schema":{"creation_date":{"type":"TypeString","computed":true},"db_dtu_max":{"type":"TypeInt","optional":true,"computed":true},"db_dtu_min":{"type":"TypeInt","optional":true,"computed":true},"dtu":{"type":"TypeInt","required":true},"edition":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_size":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_servers":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_database":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"default":false},"login":{"type":"TypeString","required":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"computed":true},"email_addresses":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ssh_public_key":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_stack_hci_cluster":{"schema":{"automanage_configuration_id":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site":{"schema":{"api_key":{"type":"TypeString","computed":true},"default_host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_size":{"type":"TypeString","optional":true,"default":"Free"},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"static_site_id":{"type":"TypeString","required":true,"forceNew":true},"validation_token":{"type":"TypeString","computed":true},"validation_type":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"account_kind":{"type":"TypeString","optional":true,"default":"StorageV2"},"account_replication_type":{"type":"TypeString","required":true},"account_tier":{"type":"TypeString","required":true,"forceNew":true},"allow_nested_items_to_be_public":{"type":"TypeBool","optional":true,"default":true},"allowed_copy_scope":{"type":"TypeString","optional":true},"azure_files_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","required":true},"domain_sid":{"type":"TypeString","required":true},"forest_name":{"type":"TypeString","required":true},"netbios_domain_name":{"type":"TypeString","required":true},"storage_sid":{"type":"TypeString","required":true}}},"maxItems":1},"directory_type":{"type":"TypeString","required":true}}},"maxItems":1},"blob_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"change_feed_enabled":{"type":"TypeBool","optional":true,"default":false},"change_feed_retention_in_days":{"type":"TypeInt","optional":true},"container_delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"default_service_version":{"type":"TypeString","optional":true,"computed":true},"delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"last_access_time_enabled":{"type":"TypeBool","optional":true,"default":false},"restore_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true}}},"maxItems":1},"versioning_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cross_tenant_replication_enabled":{"type":"TypeBool","optional":true,"default":true},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"use_subdomain":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_to_oauth_authentication":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_https_traffic_only":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_protected_append_writes":{"type":"TypeBool","required":true},"period_since_creation_in_days":{"type":"TypeInt","required":true},"state":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"is_hns_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"large_file_share_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"default":"TLS1_2"},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"nfsv3_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"queue_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"queue_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"hour_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"logging":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"delete":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"minute_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"choice":{"type":"TypeString","optional":true,"default":"MicrosoftRouting"},"publish_internet_endpoints":{"type":"TypeBool","optional":true,"default":false},"publish_microsoft_endpoints":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sas_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_action":{"type":"TypeString","optional":true,"default":"Log"},"expiration_period":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"sftp_enabled":{"type":"TypeBool","optional":true,"default":false},"share_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"smb":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"channel_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"kerberos_ticket_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"multichannel_enabled":{"type":"TypeBool","optional":true,"default":false},"versions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"shared_access_key_enabled":{"type":"TypeBool","optional":true,"default":true},"static_website":{"type":"TypeList","optional":true,"elem":{"schema":{"error_404_document":{"type":"TypeString","optional":true},"index_document":{"type":"TypeString","optional":true}}},"maxItems":1},"table_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_account_customer_managed_key":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_local_user":{"schema":{"home_directory":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","computed":true},"permission_scope":{"type":"TypeList","optional":true,"elem":{"schema":{"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"create":{"type":"TypeBool","optional":true,"default":false},"delete":{"type":"TypeBool","optional":true,"default":false},"list":{"type":"TypeBool","optional":true,"default":false},"read":{"type":"TypeBool","optional":true,"default":false},"write":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_name":{"type":"TypeString","required":true},"service":{"type":"TypeString","required":true}}}},"sid":{"type":"TypeString","computed":true},"ssh_authorized_key":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true}}}},"ssh_key_enabled":{"type":"TypeBool","optional":true,"default":false},"ssh_password_enabled":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_network_rules":{"schema":{"bypass":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_subnet_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"cache_control":{"type":"TypeString","optional":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallelism":{"type":"TypeInt","optional":true,"default":8,"forceNew":true},"size":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"source_content":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_blob_inventory_policy":{"schema":{"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"exclude_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"include_blob_versions":{"type":"TypeBool","optional":true,"default":false},"include_deleted":{"type":"TypeBool","optional":true,"default":false},"include_snapshots":{"type":"TypeBool","optional":true,"default":false},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10}}},"maxItems":1},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true},"schema_fields":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","optional":true,"default":"private"},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_filesystem":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"group":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"owner":{"type":"TypeString","optional":true,"computed":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_path":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"filesystem_name":{"type":"TypeString","required":true,"forceNew":true},"group":{"type":"TypeString","optional":true,"computed":true},"owner":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","required":true,"forceNew":true},"resource":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_encryption_scope":{"schema":{"infrastructure_encryption_required":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"base_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","optional":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"snapshot":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"version":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"filters":{"type":"TypeList","required":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operation":{"type":"TypeString","optional":true,"default":"=="},"value":{"type":"TypeString","required":true}}}},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_agent":{"schema":{"arc_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"arc_virtual_machine_uuid":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_job_definition":{"schema":{"agent_name":{"type":"TypeString","optional":true},"copy_mode":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source_name":{"type":"TypeString","required":true,"forceNew":true},"source_sub_path":{"type":"TypeString","optional":true,"forceNew":true},"storage_mover_project_id":{"type":"TypeString","required":true,"forceNew":true},"target_name":{"type":"TypeString","required":true,"forceNew":true},"target_sub_path":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_project":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_source_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"export":{"type":"TypeString","optional":true,"forceNew":true},"host":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nfs_version":{"type":"TypeString","optional":true,"default":"NFSauto","forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_target_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_object_replication":{"schema":{"destination_object_replication_id":{"type":"TypeString","computed":true},"destination_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"copy_blobs_created_after":{"type":"TypeString","optional":true,"default":"OnlyNewObjects"},"destination_container_name":{"type":"TypeString","required":true,"forceNew":true},"filter_out_blobs_with_prefix":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"source_container_name":{"type":"TypeString","required":true,"forceNew":true}}}},"source_object_replication_id":{"type":"TypeString","computed":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_queue":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}}},"id":{"type":"TypeString","required":true}}}},"enabled_protocol":{"type":"TypeString","optional":true,"default":"SMB","forceNew":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeInt","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_directory":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"share_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_file":{"schema":{"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_length":{"type":"TypeInt","computed":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","optional":true,"default":"","forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"storage_share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","optional":true,"default":"AllowAllTraffic"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync_cloud_endpoint":{"schema":{"file_share_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_sync_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"storage_sync_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_storage_table":{"schema":{"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","required":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"streaming_capacity":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_stream_analytics_function_javascript_uda":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"script":{"type":"TypeString","required":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_function_javascript_udf":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","optional":true,"computed":true},"content_storage_policy":{"type":"TypeString","optional":true,"default":"SystemAccount"},"data_locale":{"type":"TypeString","optional":true,"computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":5},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":0},"events_out_of_order_policy":{"type":"TypeString","optional":true,"default":"Adjust"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"job_id":{"type":"TypeString","computed":true},"job_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_error_policy":{"type":"TypeString","optional":true,"default":"Drop"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_id":{"type":"TypeString","optional":true},"streaming_units":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transformation_query":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true,"default":"Cloud","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job_schedule":{"schema":{"last_output_time":{"type":"TypeString","computed":true},"start_mode":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5}},"azurerm_stream_analytics_output_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"batch_max_wait_time":{"type":"TypeString","optional":true},"batch_min_rows":{"type":"TypeInt","optional":true},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_cosmosdb":{"schema":{"container_name":{"type":"TypeString","required":true},"cosmosdb_account_key":{"type":"TypeString","required":true},"cosmosdb_sql_database_id":{"type":"TypeString","required":true},"document_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_function":{"schema":{"api_key":{"type":"TypeString","required":true},"batch_max_count":{"type":"TypeInt","optional":true,"default":100},"batch_max_in_bytes":{"type":"TypeInt","optional":true,"default":262144},"function_app":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_mssql":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"database":{"type":"TypeString","required":true,"forceNew":true},"max_batch_count":{"type":"TypeFloat","optional":true,"default":10000},"max_writer_count":{"type":"TypeFloat","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_powerbi":{"schema":{"dataset":{"type":"TypeString","required":true},"group_id":{"type":"TypeString","required":true},"group_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true},"token_user_display_name":{"type":"TypeString","optional":true},"token_user_principal_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_queue":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"queue_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_topic":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_synapse":{"schema":{"database":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_table":{"schema":{"batch_size":{"type":"TypeInt","required":true},"columns_to_remove":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_mssql":{"schema":{"database":{"type":"TypeString","required":true},"delta_snapshot_query":{"type":"TypeString","optional":true},"full_snapshot_query":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"refresh_interval_duration":{"type":"TypeString","optional":true},"refresh_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_blob":{"schema":{"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub_v2":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_iothub":{"schema":{"endpoint":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"iothub_namespace":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"shared_access_policy_key":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"delegation":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"service_delegation":{"type":"TypeList","required":true,"elem":{"schema":{"actions":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}},"maxItems":1}}}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","optional":true,"computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_endpoint_policy_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"service_endpoints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_nat_gateway_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_network_security_group_association":{"schema":{"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_route_table_association":{"schema":{"route_table_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_service_endpoint_storage_policy":{"schema":{"definition":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"service":{"type":"TypeString","optional":true,"default":"Microsoft.Storage"},"service_resources":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription":{"schema":{"alias":{"type":"TypeString","optional":true,"description":"The Alias Name of the subscription. If omitted a new UUID will be generated for this property.","computed":true,"forceNew":true},"billing_scope_id":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true,"description":"The GUID of the Subscription.","computed":true,"forceNew":true},"subscription_name":{"type":"TypeString","required":true,"description":"The Display Name for the Subscription."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID to which the subscription belongs","computed":true},"workload":{"type":"TypeString","optional":true,"description":"The workload type for the Subscription. Possible values are `Production` (default) and `DevTest`.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_synapse_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_azure":{"schema":{"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_self_hosted":{"schema":{"authorization_key_primary":{"type":"TypeString","computed":true},"authorization_key_secondary":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_linked_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_private_link_hub":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_role_assignment":{"schema":{"principal_id":{"type":"TypeString","required":true,"forceNew":true},"role_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_spark_pool":{"schema":{"auto_pause":{"type":"TypeList","optional":true,"elem":{"schema":{"delay_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true},"min_node_count":{"type":"TypeInt","required":true}}},"maxItems":1},"cache_size":{"type":"TypeInt","optional":true},"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_executor_allocation_enabled":{"type":"TypeBool","optional":true,"default":false},"library_requirement":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"max_executors":{"type":"TypeInt","optional":true},"min_executors":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true},"node_size":{"type":"TypeString","required":true},"node_size_family":{"type":"TypeString","required":true},"session_level_packages_enabled":{"type":"TypeBool","optional":true,"default":false},"spark_config":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"spark_events_folder":{"type":"TypeString","optional":true,"default":"/events"},"spark_log_folder":{"type":"TypeString","optional":true,"default":"/logs"},"spark_version":{"type":"TypeString","optional":true,"default":"2.4"},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"data_encrypted":{"type":"TypeBool","optional":true},"geo_backup_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_database_id":{"type":"TypeString","optional":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"point_in_time":{"type":"TypeString","required":true,"forceNew":true},"source_database_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sql_pool_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment_baseline":{"schema":{"baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"rule_name":{"type":"TypeString","required":true},"sql_pool_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_classifier":{"schema":{"context":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"importance":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"member_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true},"workload_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_group":{"schema":{"importance":{"type":"TypeString","optional":true,"default":"normal"},"max_resource_percent":{"type":"TypeInt","required":true},"max_resource_percent_per_request":{"type":"TypeFloat","optional":true,"default":3},"min_resource_percent":{"type":"TypeInt","required":true},"min_resource_percent_per_request":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_execution_timeout_in_seconds":{"type":"TypeInt","optional":true},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace":{"schema":{"aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"azure_devops_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"last_commit_id":{"type":"TypeString","optional":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"compute_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","optional":true,"default":"cmk"},"key_versionless_id":{"type":"TypeString","required":true}}},"maxItems":1},"data_exfiltration_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"github_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","optional":true},"last_commit_id":{"type":"TypeString","optional":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"linking_allowed_for_aad_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sql_administrator_login":{"type":"TypeString","optional":true,"forceNew":true},"sql_administrator_login_password":{"type":"TypeString","optional":true},"sql_identity_control_enabled":{"type":"TypeBool","optional":true},"storage_data_lake_gen2_filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_key":{"schema":{"active":{"type":"TypeBool","required":true},"customer_managed_key_name":{"type":"TypeString","required":true},"customer_managed_key_versionless_id":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_sql_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true},"workspace_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_template_deployment":{"schema":{"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"parameters_body":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"template_body":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_tenant_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_traffic_manager_azure_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_external_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_nested_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"minimum_child_endpoints":{"type":"TypeInt","required":true},"minimum_required_child_endpoints_ipv4":{"type":"TypeInt","optional":true},"minimum_required_child_endpoints_ipv6":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","required":true,"elem":{"schema":{"relative_name":{"type":"TypeString","required":true,"forceNew":true},"ttl":{"type":"TypeInt","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","computed":true},"max_return":{"type":"TypeInt","optional":true},"monitor_config":{"type":"TypeList","required":true,"elem":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"expected_status_code_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":30},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":10},"tolerated_number_of_failures":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"profile_status":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","required":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer":{"schema":{"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer_edge_module":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"video_analyzer_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_desktop_application":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"command_line_argument_policy":{"type":"TypeString","required":true},"command_line_arguments":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true,"computed":true},"icon_index":{"type":"TypeInt","optional":true},"icon_path":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","required":true},"show_in_portal":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_application_group":{"schema":{"default_desktop_display_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"load_balancer_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_sessions_allowed":{"type":"TypeInt","optional":true,"default":999999},"name":{"type":"TypeString","required":true,"forceNew":true},"personal_desktop_assignment_type":{"type":"TypeString","optional":true,"forceNew":true},"preferred_app_group_type":{"type":"TypeString","optional":true,"default":"Desktop","description":"Preferred App Group type to display","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scheduled_agent_updates":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","required":true}}},"maxItems":2},"timezone":{"type":"TypeString","optional":true,"default":"UTC"},"use_session_host_timezone":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"start_vm_on_connect":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"validate_environment":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool_registration_info":{"schema":{"expiration_date":{"type":"TypeString","required":true},"hostpool_id":{"type":"TypeString","required":true,"forceNew":true},"token":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_desktop_scaling_plan":{"schema":{"description":{"type":"TypeString","optional":true},"exclusion_tag":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"hostpool_id":{"type":"TypeString","required":true},"scaling_plan_enabled":{"type":"TypeBool","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"off_peak_load_balancing_algorithm":{"type":"TypeString","required":true},"off_peak_start_time":{"type":"TypeString","required":true},"peak_load_balancing_algorithm":{"type":"TypeString","required":true},"peak_start_time":{"type":"TypeString","required":true},"ramp_down_capacity_threshold_percent":{"type":"TypeInt","required":true},"ramp_down_force_logoff_users":{"type":"TypeBool","required":true},"ramp_down_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_down_minimum_hosts_percent":{"type":"TypeInt","required":true},"ramp_down_notification_message":{"type":"TypeString","required":true},"ramp_down_start_time":{"type":"TypeString","required":true},"ramp_down_stop_hosts_when":{"type":"TypeString","required":true},"ramp_down_wait_time_minutes":{"type":"TypeInt","required":true},"ramp_up_capacity_threshold_percent":{"type":"TypeInt","optional":true},"ramp_up_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_up_minimum_hosts_percent":{"type":"TypeInt","optional":true},"ramp_up_start_time":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace":{"schema":{"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace_application_group_association":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","optional":true,"forceNew":true},"default_route_table_id":{"type":"TypeString","computed":true},"hub_routing_preference":{"type":"TypeString","optional":true,"default":"ExpressRoute"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"next_hop_ip_address":{"type":"TypeString","required":true}}}},"sku":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_auto_scale_min_capacity":{"type":"TypeInt","optional":true,"default":2},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_connection_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"static_vnet_local_route_override_criteria":{"type":"TypeString","optional":true,"default":"Contains","forceNew":true},"static_vnet_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true},"next_hop_ip_address":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_ip":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_route_table_route":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"},"route_table_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_routing_intent":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"routing_policy":{"type":"TypeList","required":true,"elem":{"schema":{"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_security_partner_provider":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","required":true,"forceNew":true}}},"maxItems":1},"availability_set_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"delete_data_disks_on_termination":{"type":"TypeBool","optional":true,"default":false},"delete_os_disk_on_termination":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"os_profile":{"type":"TypeSet","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","required":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true,"default":false},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":false},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"primary_network_interface_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_data_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"vhd_uri":{"type":"TypeString","optional":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"storage_image_reference":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"storage_os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"image_uri":{"type":"TypeString","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","optional":true,"computed":true},"vhd_uri":{"type":"TypeString","optional":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vm_size":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_data_disk_attachment":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Attach","forceNew":true},"lun":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_machine_scale_set":{"schema":{"automatic_os_upgrade":{"type":"TypeBool","optional":true,"default":false},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"health_probe_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeSet","required":true,"elem":{"schema":{"accelerated_networking":{"type":"TypeBool","optional":true},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"public_ip_address_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","required":true},"idle_timeout":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"subnet_id":{"type":"TypeString","required":true}}}},"ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","required":true}}}},"os_profile":{"type":"TypeList","required":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name_prefix":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","optional":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeSet","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true},"provision_vm_agent":{"type":"TypeBool","optional":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"priority":{"type":"TypeString","optional":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_batch_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","optional":true,"default":20},"pause_time_between_batches":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1},"single_placement_group":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"storage_profile_data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true}}}},"storage_profile_image_reference":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"offer":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_profile_os_disk":{"type":"TypeSet","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"image":{"type":"TypeString","optional":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"vhd_containers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_policy_mode":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_scale_set_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_scale_set_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"machine_scope":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exclude_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"include_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"bgp_community":{"type":"TypeString","optional":true},"ddos_protection_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"enable":{"type":"TypeBool","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"enforcement":{"type":"TypeString","required":true}}},"maxItems":1},"flow_timeout_in_minutes":{"type":"TypeInt","optional":true},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"security_group":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_dns_servers":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","optional":true,"computed":true},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","optional":true},"peer_weight":{"type":"TypeInt","optional":true},"peering_addresses":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"apipa_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"default_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_name":{"type":"TypeString","optional":true,"computed":true},"tunnel_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1}}},"maxItems":1},"custom_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"default_local_network_gateway_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"generation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true,"default":"vnetGatewayConfig"},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":3},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"vpn_client_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","optional":true},"aad_issuer":{"type":"TypeString","optional":true},"aad_tenant":{"type":"TypeString","optional":true},"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","optional":true},"radius_server_secret":{"type":"TypeString","optional":true},"revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"vpn_auth_types":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":3},"vpn_client_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"vpn_type":{"type":"TypeString","optional":true,"default":"RouteBased","forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"connection_protocol":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_bgp_addresses":{"type":"TypeList","optional":true,"elem":{"schema":{"primary":{"type":"TypeString","required":true},"secondary":{"type":"TypeString","optional":true}}},"maxItems":1},"dpd_timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"express_route_circuit_id":{"type":"TypeString","optional":true,"forceNew":true},"express_route_gateway_bypass":{"type":"TypeBool","optional":true,"computed":true},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_datasize":{"type":"TypeInt","optional":true,"computed":true},"sa_lifetime":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"local_network_gateway_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_virtual_network_gateway_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_weight":{"type":"TypeInt","optional":true,"computed":true},"shared_key":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true,"forceNew":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","optional":true,"computed":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway_nat_rule":{"schema":{"external_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_peering":{"schema":{"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","optional":true,"default":true},"disable_vpn_encryption":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"office365_local_breakout_category":{"type":"TypeString","optional":true,"default":"None"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"Standard"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vmware_cluster":{"schema":{"cluster_node_count":{"type":"TypeInt","required":true},"cluster_number":{"type":"TypeInt","computed":true},"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"vmware_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_vmware_express_route_authorization":{"schema":{"express_route_authorization_id":{"type":"TypeString","computed":true},"express_route_authorization_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_netapp_volume_attachment":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"netapp_volume_id":{"type":"TypeString","required":true,"forceNew":true},"vmware_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"management_cluster":{"type":"TypeList","required":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","required":true}}},"maxItems":1},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_subnet_cidr":{"type":"TypeString","required":true,"forceNew":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"nsxt_password":{"type":"TypeString","optional":true,"forceNew":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcenter_password":{"type":"TypeString","optional":true,"forceNew":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"create":600,"read":5,"delete":600,"update":600}},"azurerm_voice_services_communications_gateway":{"schema":{"api_bridge":{"type":"TypeString","optional":true},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse","forceNew":true},"codecs":{"type":"TypeString","required":true},"connectivity":{"type":"TypeString","required":true,"forceNew":true},"e911_type":{"type":"TypeString","required":true},"emergency_dial_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_teams_voicemail_pilot_number":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"on_prem_mcp_enabled":{"type":"TypeBool","optional":true},"platforms":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_location":{"type":"TypeSet","required":true,"elem":{"schema":{"allowed_media_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_signaling_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"esrp_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true},"operator_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_voice_services_communications_gateway_test_line":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"purpose":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_services_communications_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway":{"schema":{"bgp_route_translation_for_nat_enabled":{"type":"TypeBool","optional":true,"default":false},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true,"forceNew":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instance_1_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"peer_weight":{"type":"TypeInt","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scale_unit":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_gateway_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_vpn_site_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"traffic_selector_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"local_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"remote_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_link":{"type":"TypeList","required":true,"elem":{"schema":{"bandwidth_mbps":{"type":"TypeInt","optional":true,"default":10},"bgp_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default"},"custom_bgp_address":{"type":"TypeSet","optional":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"ip_configuration_id":{"type":"TypeString","required":true}}}},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"encryption_algorithm":{"type":"TypeString","required":true},"ike_encryption_algorithm":{"type":"TypeString","required":true},"ike_integrity_algorithm":{"type":"TypeString","required":true},"integrity_algorithm":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kb":{"type":"TypeInt","required":true},"sa_lifetime_sec":{"type":"TypeInt","required":true}}},"minItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"policy_based_traffic_selector_enabled":{"type":"TypeBool","optional":true,"default":false},"protocol":{"type":"TypeString","optional":true,"default":"IKEv2"},"ratelimit_enabled":{"type":"TypeBool","optional":true,"default":false},"route_weight":{"type":"TypeInt","optional":true,"default":0},"shared_key":{"type":"TypeString","optional":true},"vpn_site_link_id":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway_nat_rule":{"schema":{"external_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"external_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"internal_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_server_configuration":{"schema":{"azure_active_directory_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"issuer":{"type":"TypeString","required":true},"tenant":{"type":"TypeString","required":true}}},"minItems":1},"client_revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kilobytes":{"type":"TypeInt","required":true},"sa_lifetime_seconds":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"radius":{"type":"TypeList","optional":true,"elem":{"schema":{"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"server":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"score":{"type":"TypeInt","required":true},"secret":{"type":"TypeString","required":true}}}},"server_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vpn_authentication_types":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"vpn_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_server_configuration_policy_group":{"schema":{"is_default":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"priority":{"type":"TypeInt","optional":true,"default":0},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_site":{"schema":{"address_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"device_model":{"type":"TypeString","optional":true},"device_vendor":{"type":"TypeString","optional":true},"link":{"type":"TypeList","optional":true,"elem":{"schema":{"bgp":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"peering_address":{"type":"TypeString","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"provider_name":{"type":"TypeString","optional":true},"speed_in_mbps":{"type":"TypeInt","optional":true,"default":0}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"o365_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"traffic_category":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"default_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"optimize_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_app_hybrid_connection":{"schema":{"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true},"web_app_id":{"type":"TypeString","required":true,"description":"The ID of the Web App for this Hybrid Connection.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_application_firewall_policy":{"schema":{"custom_rules":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_conditions":{"type":"TypeList","required":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_variables":{"type":"TypeList","required":true,"elem":{"schema":{"selector":{"type":"TypeString","optional":true},"variable_name":{"type":"TypeString","required":true}}}},"negation_condition":{"type":"TypeBool","optional":true},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","required":true},"rule_type":{"type":"TypeString","required":true}}}},"http_listener_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_rules":{"type":"TypeList","required":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","optional":true,"default":"3.2"}}},"maxItems":1},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"selector_match_operator":{"type":"TypeString","required":true}}}},"managed_rule_set":{"type":"TypeList","required":true,"elem":{"schema":{"rule_group_override":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"rule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"id":{"type":"TypeString","required":true}}}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","required":true}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"path_based_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"policy_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"file_upload_limit_in_mb":{"type":"TypeInt","optional":true,"default":100},"log_scrubbing":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true,"description":"When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to."},"selector_match_operator":{"type":"TypeString","optional":true,"default":"Equals"}}}}}},"maxItems":1},"max_request_body_size_in_kb":{"type":"TypeInt","optional":true,"default":128},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"request_body_check":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"capacity":{"type":"TypeInt","optional":true,"default":1},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_hub":{"schema":{"anonymous_connections_enabled":{"type":"TypeBool","optional":true,"default":false},"event_handler":{"type":"TypeList","optional":true,"elem":{"schema":{"auth":{"type":"TypeList","optional":true,"elem":{"schema":{"managed_identity_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"system_events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_event_pattern":{"type":"TypeString","optional":true}}}},"event_listener":{"type":"TypeList","optional":true,"elem":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"system_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_network_acl":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"description":"Can the Function App only be accessed via HTTPS?","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Function App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","description":"The identifier used by App Service to perform domain ownership verification via DNS TXT record.","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","description":"The default hostname of the Windows Function App Slot.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","description":"The Kind value for this Windows Function App Slot.","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Windows Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","description":"A list of outbound IP addresses. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12`.","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","description":"A list of possible outbound IP addresses, not all of which are necessarily in use. This is a superset of `outbound_ip_address_list`. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of possible outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12,52.143.43.17`. This is a superset of `outbound_ip_addresses`. For example `[\"52.23.25.3\", \"52.143.43.12\",\"52.143.43.17\"]`.","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_windows_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","required":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_web_app_slot":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"computed":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}}},"dataSources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"data_residency_location":{"type":"TypeString","description":"Location in which the B2C tenant is hosted and data resides.","computed":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix."},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","description":"Billing SKU for the B2C tenant.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"read":5}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"filtered_sync_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notifications":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","computed":true},"notify_global_admins":{"type":"TypeBool","computed":true}}}},"replica_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"external_access_enabled":{"type":"TypeBool","computed":true},"public_certificate":{"type":"TypeString","computed":true}}}},"security":{"type":"TypeList","computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","computed":true},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","computed":true},"ntlm_v1_enabled":{"type":"TypeBool","computed":true},"sync_kerberos_passwords":{"type":"TypeBool","computed":true},"sync_ntlm_passwords":{"type":"TypeBool","computed":true},"sync_on_prem_passwords":{"type":"TypeBool","computed":true},"tls_v1_enabled":{"type":"TypeBool","computed":true}}}},"sku":{"type":"TypeString","computed":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_advisor_recommendations":{"schema":{"filter_by_category":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter_by_resource_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"recommendations":{"type":"TypeList","computed":true,"elem":{"schema":{"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"impact":{"type":"TypeString","computed":true},"recommendation_name":{"type":"TypeString","computed":true},"recommendation_type_id":{"type":"TypeString","computed":true},"resource_name":{"type":"TypeString","computed":true},"resource_type":{"type":"TypeString","computed":true},"suppression_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"updated_time":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":10}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"management":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"proxy":{"type":"TypeList","computed":true,"elem":{"schema":{"default_ssl_binding":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"scm":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_api_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notification_sender_email":{"type":"TypeString","computed":true},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"publisher_email":{"type":"TypeString","computed":true},"publisher_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scm_url":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"revision":{"type":"TypeString","required":true},"service_url":{"type":"TypeString","computed":true},"soap_pass_through":{"type":"TypeBool","computed":true},"subscription_key_parameter_names":{"type":"TypeList","computed":true,"elem":{"schema":{"header":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true}}}},"subscription_required":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"version_set_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"version_header_name":{"type":"TypeString","computed":true},"version_query_name":{"type":"TypeString","computed":true},"versioning_scheme":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true},"certificate_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"request_client_certificate_enabled":{"type":"TypeBool","computed":true},"tls10_enabled":{"type":"TypeBool","computed":true},"tls11_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"external_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true},"approval_required":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"product_id":{"type":"TypeString","required":true},"published":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","computed":true},"subscriptions_limit":{"type":"TypeInt","computed":true},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true},"email":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"note":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"state":{"type":"TypeString","computed":true},"user_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","computed":true}}}},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","required":true},"label":{"type":"TypeString","optional":true,"default":""},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_configuration_keys":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"items":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"label":{"type":"TypeString","computed":true},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}}}},"key":{"type":"TypeString","optional":true,"default":""},"label":{"type":"TypeString","optional":true,"default":""}},"timeouts":{"read":5}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_cert_enabled":{"type":"TypeBool","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","computed":true},"acr_user_managed_identity_client_id":{"type":"TypeString","computed":true},"always_on":{"type":"TypeBool","computed":true},"app_command_line":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"number_of_workers":{"type":"TypeInt","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_certificate":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","computed":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","computed":true},"distinguished_name":{"type":"TypeString","computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"product_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_environment":{"schema":{"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"front_end_scale_factor":{"type":"TypeInt","computed":true},"internal_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_ip_address":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","computed":true},"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"dedicated_host_count":{"type":"TypeInt","computed":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","computed":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"is_xenon":{"type":"TypeBool","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"per_site_scaling":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"size":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_application_gateway":{"schema":{"backend_address_pool":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeString","computed":true},"instrumentation_key":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_arc_machine":{"schema":{"active_directory_fqdn":{"type":"TypeString","computed":true},"agent":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variables":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"bool":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeBool","computed":true}}}},"datetime":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"encrypted":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"int":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeInt","computed":true}}}},"null":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"object":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"string":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"platform_update_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_backup_policy_file_share":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_backup_policy_vm":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","computed":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"ip_connect_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_units":{"type":"TypeInt","computed":true},"shareable_link_enabled":{"type":"TypeBool","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_allocation_mode":{"type":"TypeString","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true},"allow_updates":{"type":"TypeBool","computed":true},"default_version":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","computed":true},"thumbprint_algorithm":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"auto_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","computed":true},"formula":{"type":"TypeString","computed":true}}}},"certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"store_location":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","computed":true},"visibility":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","computed":true}}}},"data_disks":{"type":"TypeList","computed":true,"elem":{"schema":{"caching":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"lun":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}},"disk_encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","computed":true}}}},"display_name":{"type":"TypeString","computed":true},"extensions":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"protected_settings":{"type":"TypeString","computed":true},"provision_after_extensions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","computed":true},"settings_json":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"type_handler_version":{"type":"TypeString","computed":true}}}},"fixed_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"resize_timeout":{"type":"TypeString","computed":true},"target_dedicated_nodes":{"type":"TypeInt","computed":true},"target_low_priority_nodes":{"type":"TypeInt","computed":true}}}},"inter_node_communication":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_tasks_per_node":{"type":"TypeInt","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"blobfuse_options":{"type":"TypeString","computed":true},"container_name":{"type":"TypeString","computed":true},"identity_id":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"sas_key":{"type":"TypeString","computed":true}}}},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"azure_file_url":{"type":"TypeString","computed":true},"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true}}}},"cifs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"nfs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"network_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dynamic_vnet_assignment_scope":{"type":"TypeString","computed":true},"endpoint_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port_range":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"protocol":{"type":"TypeString","computed":true}}}},"public_address_provisioning_type":{"type":"TypeString","computed":true},"public_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","computed":true}}}},"node_agent_sku_id":{"type":"TypeString","computed":true},"node_placement":{"type":"TypeList","computed":true,"elem":{"schema":{"policy":{"type":"TypeString","computed":true}}}},"os_disk_placement":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_task":{"type":"TypeList","computed":true,"elem":{"schema":{"command_line":{"type":"TypeString","computed":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"run_options":{"type":"TypeString","computed":true},"working_directory":{"type":"TypeString","computed":true}}}},"resource_file":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","computed":true},"blob_prefix":{"type":"TypeString","computed":true},"file_mode":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"http_url":{"type":"TypeString","computed":true},"storage_container_url":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"task_retry_maximum":{"type":"TypeInt","computed":true},"user_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_user":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","computed":true}}}},"user_name":{"type":"TypeString","computed":true}}}},"wait_for_success":{"type":"TypeBool","computed":true}}}},"storage_image_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"task_scheduling_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","computed":true}}}},"user_accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"linux_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"gid":{"type":"TypeInt","computed":true},"ssh_private_key":{"type":"TypeString","computed":true},"uid":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"windows_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"login_mode":{"type":"TypeString","computed":true}}}}}}},"vm_size":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_billing_enrollment_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"enrollment_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mca_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"billing_profile_name":{"type":"TypeString","required":true},"invoice_section_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mpa_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"customer_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_blueprint_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_blueprint_published_version":{"schema":{"blueprint_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"dns_zone_id":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tls":{"type":"TypeList","computed":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","computed":true},"certificate_type":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true}}}},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"enabled":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"enabled":{"type":"TypeBool","computed":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redirect_url":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"health_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true},"request_type":{"type":"TypeString","computed":true}}}},"load_balancing":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","computed":true},"sample_size":{"type":"TypeInt","computed":true},"successful_samples_required":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","computed":true},"session_affinity_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"key_vault_certificate_id":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"read":5}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_client_config":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cognitive_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"qna_runtime_endpoint":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"certificate_based_security_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"pem_public_key":{"type":"TypeString","computed":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"resource_group_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"subscription_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","computed":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The Dapr Application Identifier.","computed":true},"app_port":{"type":"TypeInt","description":"The port which the application is listening on. This is the same as the `ingress` port.","computed":true},"app_protocol":{"type":"TypeString","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`.","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","description":"Should this ingress allow insecure connections?","computed":true},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`","computed":true},"certificate_id":{"type":"TypeString","description":"The ID of the Certificate.","computed":true},"name":{"type":"TypeString","description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate.","computed":true}}}},"external_enabled":{"type":"TypeBool","description":"Is this an external Ingress.","computed":true},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","description":"The target port on the container for the Ingress traffic.","computed":true},"traffic_weight":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","description":"The label to apply to the revision as a name prefix for routing traffic.","computed":true},"latest_revision":{"type":"TypeBool","description":"This traffic Weight relates to the latest stable Container Revision.","computed":true},"percentage":{"type":"TypeInt","description":"The percentage of traffic to send to this revision.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted.","computed":true}}}},"transport":{"type":"TypeString","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`","computed":true}}}},"latest_revision_fqdn":{"type":"TypeString","description":"The fully qualified domain name of the latest Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"identity":{"type":"TypeString","description":"ID of the System or User Managed Identity used to pull images from the Container Registry","computed":true},"password_secret_name":{"type":"TypeString","description":"The name of the Secret Reference containing the password value for this user on the Container Registry.","computed":true},"server":{"type":"TypeString","description":"The hostname for the Container Registry.","computed":true},"username":{"type":"TypeString","description":"The username to use for this Container Registry.","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"revision_mode":{"type":"TypeString","computed":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Secret name.","computed":true},"value":{"type":"TypeString","description":"The value for this secret.","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","computed":true,"elem":{"schema":{"container":{"type":"TypeList","computed":true,"elem":{"schema":{"args":{"type":"TypeList","description":"A list of args to pass to the container.","computed":true,"elem":{"type":"TypeString"}},"command":{"type":"TypeList","description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","computed":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`","computed":true},"env":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the environment variable for the container.","computed":true},"secret_name":{"type":"TypeString","description":"The name of the secret that contains the value for this environment variable.","computed":true},"value":{"type":"TypeString","description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used","computed":true}}}},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","description":"The image to use to create the container.","computed":true},"liveness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"initial_delay":{"type":"TypeInt","description":"The time in seconds to wait after the container has started before the probe is started.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"memory":{"type":"TypeString","description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`","computed":true},"name":{"type":"TypeString","description":"The name of the container.","computed":true},"readiness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"success_count_threshold":{"type":"TypeInt","description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"startup_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","computed":true}}}},"volume_mounts":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the Volume to be mounted in the container.","computed":true},"path":{"type":"TypeString","description":"The path in the container at which to mount this volume.","computed":true}}}}}}},"max_replicas":{"type":"TypeInt","description":"The maximum number of replicas for this container.","computed":true},"min_replicas":{"type":"TypeInt","description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}}}},"timeouts":{"read":5}},"azurerm_container_app_environment":{"schema":{"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","description":"The existing Subnet in use by the Container Apps Control Plane.","computed":true},"internal_load_balancer_enabled":{"type":"TypeBool","description":"Does the Container Environment operate in Internal Load Balancing Mode?","computed":true},"location":{"type":"TypeString","computed":true},"log_analytics_workspace_name":{"type":"TypeString","description":"The name of the Log Analytics Workspace this Container Apps Managed Environment is linked to.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment."},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_app_environment_certificate":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"read":5}},"azurerm_container_group":{"schema":{"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","computed":true},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"data_endpoint_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"container_registry_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scope_map_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_account":{"schema":{"capabilities":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"consistency_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","computed":true},"max_interval_in_seconds":{"type":"TypeInt","computed":true},"max_staleness_prefix":{"type":"TypeInt","computed":true}}}},"enable_automatic_failover":{"type":"TypeBool","computed":true},"enable_free_tier":{"type":"TypeBool","computed":true},"enable_multiple_write_locations":{"type":"TypeBool","computed":true},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeList","computed":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true}}}},"ip_range_filter":{"type":"TypeString","computed":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","computed":true},"key_vault_key_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"offer_type":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_restorable_database_accounts":{"schema":{"accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"api_type":{"type":"TypeString","computed":true},"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"restorable_locations":{"type":"TypeList","computed":true,"elem":{"schema":{"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"regional_database_account_instance_id":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true},"autoscale_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true},"assignable_scopes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeSet","computed":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_factory":{"schema":{"github_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"git_url":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"project_name":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redundancy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"snapshot_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"recurrence":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true}}}},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","computed":true},"data_share_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"file_system_name":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"source_platform":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databricks_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_databricks_workspace_private_endpoint_connection":{"schema":{"connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"workspace_private_endpoint_id":{"type":"TypeString","computed":true}}}},"private_endpoint_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dedicated_host":{"schema":{"dedicated_host_group_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"storage_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_dev_test_virtual_network":{"schema":{"allowed_subnets":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_public_ip":{"type":"TypeString","computed":true},"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true}}}},"lab_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_overrides":{"type":"TypeList","computed":true,"elem":{"schema":{"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_in_vm_creation_permission":{"type":"TypeString","computed":true},"use_public_ip_address_permission":{"type":"TypeString","computed":true},"virtual_network_pool_name":{"type":"TypeString","computed":true}}}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_access":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"flags":{"type":"TypeInt","computed":true},"tag":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","computed":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"send_activity_logs":{"type":"TypeBool","computed":true},"send_azuread_logs":{"type":"TypeBool","computed":true},"send_subscription_logs":{"type":"TypeBool","computed":true}}}},"monitoring_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain":{"schema":{"endpoint":{"type":"TypeString","computed":true},"inbound_ip_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"ip_mask":{"type":"TypeString","computed":true}}}},"input_mapping_default_values":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true}}}},"input_mapping_fields":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_time":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true},"topic":{"type":"TypeString","computed":true}}}},"input_schema":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_arm_resource_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventhub":{"schema":{"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"partition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"read":5}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"user_metadata":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"dedicated_cluster_id":{"type":"TypeString","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"kafka_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"maximum_throughput_units":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"sas":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_express_route_circuit":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peerings":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"peer_asn":{"type":"TypeInt","computed":true},"peering_type":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","computed":true},"shared_key":{"type":"TypeString","computed":true},"vlan_id":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_key":{"type":"TypeString","computed":true},"service_provider_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"bandwidth_in_mbps":{"type":"TypeInt","computed":true},"peering_location":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","computed":true}}}},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"family":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_extended_locations":{"schema":{"extended_locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"sku_tier":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","computed":true},"virtual_hub":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","computed":true},"virtual_hub_id":{"type":"TypeString","computed":true}}}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_firewall_policy":{"schema":{"base_policy_id":{"type":"TypeString","computed":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","computed":true,"elem":{"schema":{"network_rule_fqdn_enabled":{"type":"TypeBool","computed":true},"proxy_enabled":{"type":"TypeBool","computed":true},"servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"threat_intelligence_mode":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_cert_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_function_app_host_keys":{"schema":{"blobs_extension_key":{"type":"TypeString","computed":true},"default_function_key":{"type":"TypeString","computed":true},"durabletask_extension_key":{"type":"TypeString","computed":true},"event_grid_extension_config_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"signalr_extension_key":{"type":"TypeString","computed":true},"webpubsub_extension_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_hdinsight_cluster":{"schema":{"cluster_version":{"type":"TypeString","computed":true},"component_versions":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"edge_ssh_endpoint":{"type":"TypeString","computed":true},"gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"ssh_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","computed":true},"tls_min_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"configuration_export_storage_account_name":{"type":"TypeString","computed":true},"container_registry_login_server_url":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","computed":true},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","computed":true},"eventhub_consumer_group_name":{"type":"TypeString","computed":true},"eventhub_name":{"type":"TypeString","computed":true},"eventhub_namespace_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"cors_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","computed":true},"allowed_headers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","computed":true},"cosmosdb_throughput":{"type":"TypeInt","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_hybrid_compute_machine":{"schema":{"ad_fqdn":{"type":"TypeString","computed":true},"agent_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"error_details":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_info":{"type":"TypeList","computed":true,"elem":{"schema":{"info":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"code":{"type":"TypeString","computed":true},"message":{"type":"TypeString","computed":true},"target":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"name_regex":{"type":"TypeString","optional":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"sort_descending":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_images":{"schema":{"images":{"type":"TypeList","computed":true,"elem":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub":{"schema":{"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","computed":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_operations_host_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"iothub_dps_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_iothub_shared_access_policy":{"schema":{"iothub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","computed":true},"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","computed":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"enable_rbac_authorization":{"type":"TypeBool","computed":true},"enabled_for_deployment":{"type":"TypeBool","computed":true},"enabled_for_disk_encryption":{"type":"TypeBool","computed":true},"enabled_for_template_deployment":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_acls":{"type":"TypeList","computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","computed":true},"default_action":{"type":"TypeString","computed":true},"ip_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_access_policy":{"schema":{"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_certificate":{"schema":{"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"key_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"curve":{"type":"TypeString","computed":true},"exportable":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"reuse_key":{"type":"TypeBool","computed":true}}}},"lifetime_action":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","computed":true},"lifetime_percentage":{"type":"TypeInt","computed":true}}}}}}},"secret_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true}}}},"x509_certificate_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"validity_in_months":{"type":"TypeInt","computed":true}}}}}}},"expires":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true,"computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_certificate_data":{"schema":{"certificates_count":{"type":"TypeInt","computed":true},"expires":{"type":"TypeString","computed":true},"hex":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"pem":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","computed":true},"admin":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"phone":{"type":"TypeString","computed":true}}}},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"org_id":{"type":"TypeString","computed":true},"provider_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificates":{"schema":{"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"include_pending":{"type":"TypeBool","optional":true,"default":true},"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_encrypted_value":{"schema":{"algorithm":{"type":"TypeString","required":true},"decoded_plain_text_value":{"type":"TypeString","computed":true},"encrypted_data":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"plain_text_value":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","computed":true},"e":{"type":"TypeString","computed":true},"key_opts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before_date":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_secrets":{"schema":{"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","computed":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","computed":true}}}},"agent_pool_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"api_server_authorized_ip_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"azure_active_directory_role_based_access_control":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","computed":true},"client_app_id":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"server_app_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"azure_policy_enabled":{"type":"TypeBool","computed":true},"current_kubernetes_version":{"type":"TypeString","computed":true},"custom_ca_trust_certificates_base64":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"disk_encryption_set_id":{"type":"TypeString","computed":true},"dns_prefix":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","computed":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress_application_gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","computed":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"key_management_service":{"type":"TypeList","computed":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"key_vault_network_access":{"type":"TypeString","computed":true}}}},"key_vault_secrets_provider":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","computed":true},"secret_rotation_interval":{"type":"TypeString","computed":true}}}},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"kubernetes_version":{"type":"TypeString","computed":true},"linux_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true},"ssh_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_data":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","computed":true},"microsoft_defender":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"network_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","computed":true},"docker_bridge_cidr":{"type":"TypeString","computed":true},"load_balancer_sku":{"type":"TypeString","computed":true},"network_plugin":{"type":"TypeString","computed":true},"network_policy":{"type":"TypeString","computed":true},"pod_cidr":{"type":"TypeString","computed":true},"service_cidr":{"type":"TypeString","computed":true}}}},"node_resource_group":{"type":"TypeString","computed":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","computed":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","computed":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}}},"open_service_mesh_enabled":{"type":"TypeBool","computed":true},"private_cluster_enabled":{"type":"TypeBool","computed":true},"private_fqdn":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"role_based_access_control_enabled":{"type":"TypeBool","computed":true},"service_mesh_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"mode":{"type":"TypeString","computed":true}}}},"service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true}}}},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_version":{"type":"TypeString","computed":true},"file_driver_enabled":{"type":"TypeBool","computed":true},"snapshot_controller_enabled":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"eviction_policy":{"type":"TypeString","computed":true},"kubernetes_cluster_name":{"type":"TypeString","required":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_disk_type":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"priority":{"type":"TypeString","computed":true},"proximity_placement_group_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"spot_max_price":{"type":"TypeFloat","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_node_pool_snapshot":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_node_pool_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_service_versions":{"schema":{"include_preview":{"type":"TypeBool","optional":true,"default":true},"latest_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"version_prefix":{"type":"TypeString","optional":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kusto_cluster":{"schema":{"data_ingestion_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true},"hot_cache_period":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_lb":{"schema":{"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_backend_address_pool":{"schema":{"backend_address":{"type":"TypeList","computed":true,"elem":{"schema":{"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"virtual_network_id":{"type":"TypeString","computed":true}}}},"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","computed":true},"backend_address_pool_id":{"type":"TypeString","computed":true},"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","computed":true},"tcp_reset_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_lb_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","computed":true},"disable_outbound_snat":{"type":"TypeBool","computed":true},"enable_floating_ip":{"type":"TypeBool","computed":true},"enable_tcp_reset":{"type":"TypeBool","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"load_distribution":{"type":"TypeString","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"probe_id":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"image_tag":{"type":"TypeString","computed":true},"registry_password":{"type":"TypeString","computed":true},"registry_url":{"type":"TypeString","computed":true},"registry_username":{"type":"TypeString","computed":true}}}},"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":25}},"azurerm_linux_web_app":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_reference_identity_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_image_tag":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"go_version":{"type":"TypeString","computed":true},"java_server":{"type":"TypeString","computed":true},"java_server_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"ruby_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","computed":true}}}},"gateway_address":{"type":"TypeString","computed":true},"gateway_fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_log_analytics_workspace":{"schema":{"daily_quota_gb":{"type":"TypeFloat","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_shared_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_integration_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","computed":true},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_account_share_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_workflow":{"schema":{"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"logic_app_integration_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","computed":true},"workflow_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_machine_learning_workspace":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","computed":true},"install_patches":{"type":"TypeList","computed":true,"elem":{"schema":{"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"reboot":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","computed":true},"window":{"type":"TypeList","computed":true,"elem":{"schema":{"duration":{"type":"TypeString","computed":true},"expiration_date_time":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"start_date_time":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_managed_api":{"schema":{"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_managed_application_definition":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","computed":true},"disk_access_id":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"disk_iops_read_write":{"type":"TypeInt","computed":true},"disk_mbps_read_write":{"type":"TypeInt","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"image_reference_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_access_policy":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group":{"schema":{"all_management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"all_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true,"computed":true},"parent_management_group_id":{"type":"TypeString","computed":true},"subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group_template_deployment":{"schema":{"management_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement":{"type":"TypeString","computed":true},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"geo_redundant_backup":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true},"plan":{"type":"TypeString","required":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_country_code":{"type":"TypeString","computed":true},"mobile_network_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"mobile_network_data_network_name":{"type":"TypeString","required":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true},"network_address_port_translation":{"type":"TypeList","computed":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"pinhole_maximum_number":{"type":"TypeInt","optional":true},"port_range":{"type":"TypeList","computed":true,"elem":{"schema":{"maximum":{"type":"TypeInt","computed":true},"minimum":{"type":"TypeInt","computed":true}}}},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","computed":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"control_plane_access_name":{"type":"TypeString","computed":true},"core_network_technology":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"interoperability_settings_json":{"type":"TypeString","computed":true},"local_diagnostics_access":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","computed":true},"https_server_certificate_url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform":{"type":"TypeList","computed":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","computed":true},"custom_location_id":{"type":"TypeString","computed":true},"edge_device_id":{"type":"TypeString","computed":true},"stack_hci_cluster_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"pcc_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"precedence":{"type":"TypeInt","computed":true},"qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"guaranteed_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"service_data_flow_template":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","computed":true}}}},"service_precedence":{"type":"TypeInt","computed":true},"service_qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim":{"schema":{"device_type":{"type":"TypeString","computed":true},"integrated_circuit_card_identifier":{"type":"TypeString","computed":true},"international_mobile_subscriber_identity":{"type":"TypeString","computed":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","computed":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true},"static_ipv4_address":{"type":"TypeString","computed":true}}}},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","computed":true},"registration_timer_in_seconds":{"type":"TypeInt","computed":true},"slice":{"type":"TypeList","computed":true,"elem":{"schema":{"data_network":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"allowed_services_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","computed":true},"default_session_type":{"type":"TypeString","computed":true},"max_buffered_packets":{"type":"TypeInt","computed":true},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}}}},"default_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","computed":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","computed":true},"slice_service_type":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"role_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"automation_runbook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","computed":true},"is_global_runbook":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"runbook_name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true},"webhook_resource_id":{"type":"TypeString","computed":true}}}},"azure_app_push_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"azure_function_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","computed":true},"function_name":{"type":"TypeString","computed":true},"http_trigger_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"email_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"event_hub_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true},"ticket_configuration":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","computed":true}}}},"logic_app_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"callback_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"short_name":{"type":"TypeString","computed":true},"sms_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"voice_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"webhook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","computed":true},"data_flow":{"type":"TypeList","computed":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"output_stream":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"transform_kql":{"type":"TypeString","computed":true}}}},"data_sources":{"type":"TypeList","computed":true,"elem":{"schema":{"data_import":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"stream":{"type":"TypeString","computed":true}}}}}}},"extension":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_json":{"type":"TypeString","computed":true},"extension_name":{"type":"TypeString","computed":true},"input_data_sources":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"iis_log":{"type":"TypeList","computed":true,"elem":{"schema":{"log_directories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"settings":{"type":"TypeList","computed":true,"elem":{"schema":{"text":{"type":"TypeList","computed":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","computed":true}}}}}}},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"performance_counter":{"type":"TypeList","computed":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"sampling_frequency_in_seconds":{"type":"TypeInt","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"prometheus_forwarder":{"type":"TypeList","computed":true,"elem":{"schema":{"label_include_filter":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"syslog":{"type":"TypeList","computed":true,"elem":{"schema":{"facility_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"log_levels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_event_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"x_path_queries":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_firewall_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"description":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"workspace_resource_id":{"type":"TypeString","computed":true}}}},"monitor_account":{"type":"TypeList","computed":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"storage_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_blob_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_table_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"table_name":{"type":"TypeString","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"stream_declaration":{"type":"TypeList","computed":true,"elem":{"schema":{"column":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"stream_name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_diagnostic_categories":{"schema":{"log_category_groups":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"log_category_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"logs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"metrics":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"days":{"type":"TypeInt","computed":true},"enabled":{"type":"TypeBool","computed":true}}}},"servicebus_rule_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeSet","computed":true,"elem":{"schema":{"action_group":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","computed":true},"email_subject":{"type":"TypeString","computed":true}}}},"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"query":{"type":"TypeString","computed":true},"query_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"severity":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","computed":true},"time_window":{"type":"TypeInt","computed":true},"trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_column":{"type":"TypeString","computed":true},"metric_trigger_type":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeSet","computed":true,"elem":{"schema":{"dimension":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","computed":true}}}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mssql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"elastic_pool_id":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_size_gb":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"read_replica_count":{"type":"TypeInt","computed":true},"read_scale":{"type":"TypeBool","computed":true},"server_id":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"max_size_bytes":{"type":"TypeInt","computed":true},"max_size_gb":{"type":"TypeFloat","computed":true},"name":{"type":"TypeString","required":true},"per_db_max_capacity":{"type":"TypeInt","computed":true},"per_db_min_capacity":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"family":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"customer_managed_key_id":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"high_availability":{"type":"TypeList","computed":true,"elem":{"schema":{"mode":{"type":"TypeString","computed":true},"standby_availability_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","computed":true},"start_hour":{"type":"TypeInt","computed":true},"start_minute":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"storage":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","computed":true},"iops":{"type":"TypeInt","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement_enabled":{"type":"TypeBool","computed":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","computed":true},"email_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"retention_days":{"type":"TypeInt","computed":true},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_endpoint":{"type":"TypeString","computed":true}}}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_ip_address_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"public_ip_prefix_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_netapp_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_level":{"type":"TypeString","computed":true},"size_in_tb":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"volume_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true},"daily_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"hourly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"monthly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","computed":true,"elem":{"type":"TypeInt"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"network_features":{"type":"TypeString","computed":true},"pool_name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"security_style":{"type":"TypeString","optional":true},"service_level":{"type":"TypeString","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"volume_path":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true},"application_identifier":{"type":"TypeString","computed":true},"group_description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","computed":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"data_protection_snapshot_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","computed":true}}}},"export_policy_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","computed":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"nfsv41_enabled":{"type":"TypeBool","computed":true},"root_access_enabled":{"type":"TypeBool","computed":true},"rule_index":{"type":"TypeInt","computed":true},"unix_read_only":{"type":"TypeBool","computed":true},"unix_read_write":{"type":"TypeBool","computed":true}}}},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proximity_placement_group_id":{"type":"TypeString","computed":true},"security_style":{"type":"TypeString","computed":true},"service_level":{"type":"TypeString","computed":true},"snapshot_directory_visible":{"type":"TypeBool","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","computed":true},"volume_spec_name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume_quota_rule":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"quota_size_in_kib":{"type":"TypeInt","computed":true},"quota_target":{"type":"TypeString","computed":true},"quota_type":{"type":"TypeString","computed":true},"volume_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"internal_dns_name_label":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","computed":true},"load_balancer_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_manager_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"security_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"destination_address_prefix":{"type":"TypeString","computed":true},"destination_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","computed":true},"destination_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_service_tags":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv4_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv6_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"location_filter":{"type":"TypeString","optional":true,"forceNew":true},"service":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"application_mode":{"type":"TypeString","computed":true},"bundle_id":{"type":"TypeString","computed":true},"key_id":{"type":"TypeString","computed":true},"team_id":{"type":"TypeString","computed":true},"token":{"type":"TypeString","computed":true}}}},"gcm_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"api_key":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"ip_forwarding_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","computed":true},"anti_virus_profile":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"dns_subscription":{"type":"TypeString","computed":true},"file_blocking_profile":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_trust_certificate":{"type":"TypeString","computed":true},"outbound_untrust_certificate":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"url_filtering_profile":{"type":"TypeString","computed":true},"vulnerability_profile":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_platform_image":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"offer":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_policy_assignment":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"enforce":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","computed":true,"elem":{"schema":{"content":{"type":"TypeString","computed":true},"policy_definition_reference_id":{"type":"TypeString","computed":true}}}},"not_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeString","computed":true},"policy_definition_id":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_definition_built_in":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_definition_group":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","computed":true},"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"policy_definition_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"policy_definition_id":{"type":"TypeString","computed":true},"policy_group_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","computed":true}}}},"policy_definitions":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"assignment_hash":{"type":"TypeString","computed":true},"compliance_status":{"type":"TypeString","computed":true},"content_hash":{"type":"TypeString","computed":true},"content_uri":{"type":"TypeString","computed":true},"last_compliance_status_checked":{"type":"TypeString","computed":true},"latest_report_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"virtual_machine_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_dns_servers":{"type":"TypeList","computed":true,"elem":{"schema":{"ip_address":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true},"private_dns_zone_name":{"type":"TypeString","required":true},"registration_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_endpoint_connection":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_service_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"request_response":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","computed":true},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"nat_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_link_service_endpoint_connections":{"schema":{"location":{"type":"TypeString","computed":true},"private_endpoint_connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"connection_id":{"type":"TypeString","computed":true},"connection_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"private_endpoint_id":{"type":"TypeString","computed":true},"private_endpoint_name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_id":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_proximity_placement_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","computed":true},"ddos_protection_mode":{"type":"TypeString","computed":true},"ddos_protection_plan_id":{"type":"TypeString","computed":true},"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"reverse_fqdn":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"prefix_length":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ips":{"schema":{"allocation_type":{"type":"TypeString","optional":true},"attachment_status":{"type":"TypeString","optional":true},"name_prefix":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_public_maintenance_configurations":{"schema":{"configs":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"duration":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maintenance_scope":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_recovery_services_vault":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","computed":true},"enable_non_ssl_port":{"type":"TypeBool","computed":true},"family":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patch_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeString","computed":true},"start_hour_utc":{"type":"TypeInt","computed":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","computed":true},"redis_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","computed":true},"aof_storage_connection_string_0":{"type":"TypeString","computed":true},"aof_storage_connection_string_1":{"type":"TypeString","computed":true},"enable_authentication":{"type":"TypeBool","computed":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","computed":true},"maxmemory_delta":{"type":"TypeInt","computed":true},"maxmemory_policy":{"type":"TypeString","computed":true},"maxmemory_reserved":{"type":"TypeInt","computed":true},"notify_keyspace_events":{"type":"TypeString","computed":true},"rdb_backup_enabled":{"type":"TypeBool","computed":true},"rdb_backup_frequency":{"type":"TypeInt","computed":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","computed":true},"rdb_storage_connection_string":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_enterprise_database":{"schema":{"cluster_id":{"type":"TypeString","required":true},"linked_database_group_nickname":{"type":"TypeString","computed":true},"linked_database_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","computed":true},"managed_by":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_resource_group_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_resources":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true},"required_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"resources":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"permissions":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true},"scope":{"type":"TypeString","optional":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"communities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"rule_type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_route_table":{"schema":{"bgp_route_propagation_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop_in_ip_address":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_search_service":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_anomaly":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"mode":{"type":"TypeString","computed":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_template":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true},"nrt_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"scheduled_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"query_frequency":{"type":"TypeString","computed":true},"query_period":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","computed":true},"trigger_threshold":{"type":"TypeInt","computed":true}}}},"security_incident_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"product_filter":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"per_site_scaling_enabled":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","computed":true},"zone_balancing_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"partner_namespace_id":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","optional":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"support_ordering":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_shared_image":{"schema":{"architecture":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"eula":{"type":"TypeString","computed":true},"gallery_name":{"type":"TypeString","required":true},"hyper_v_generation":{"type":"TypeString","computed":true},"identifier":{"type":"TypeList","computed":true,"elem":{"schema":{"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"privacy_statement_uri":{"type":"TypeString","computed":true},"purchase_plan":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true}}}},"release_note_uri":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"specialized":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_shared_image_version":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_disk_image_size_gb":{"type":"TypeInt","computed":true},"os_disk_snapshot_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sort_versions_by_semver":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_shared_image_versions":{"schema":{"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"images":{"type":"TypeList","computed":true,"elem":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"hostname":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true},"recovery_fabric_name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","computed":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","computed":true},"primary_zone":{"type":"TypeString","computed":true},"recovery_edge_zone":{"type":"TypeString","computed":true},"recovery_zone":{"type":"TypeString","computed":true}}}},"failover_deployment_model":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_group":{"type":"TypeSet","computed":true,"elem":{"schema":{"post_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"pre_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"replicated_protected_items":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"recovery_vault_id":{"type":"TypeString","required":true},"source_recovery_fabric_id":{"type":"TypeString","computed":true},"target_recovery_fabric_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_snapshot":{"schema":{"creation_option":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","computed":true},"token_secret":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_spring_cloud_app":{"schema":{"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"is_public":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"persistent_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","computed":true},"size_in_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"tls_enabled":{"type":"TypeBool","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_spring_cloud_service":{"schema":{"config_server_git_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"repository":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"pattern":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","computed":true},"elastic_pool_name":{"type":"TypeString","computed":true},"failover_group_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"read_scale":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ssh_public_key":{"schema":{"name":{"type":"TypeString","required":true},"public_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","computed":true},"account_kind":{"type":"TypeString","computed":true},"account_replication_type":{"type":"TypeString","computed":true},"account_tier":{"type":"TypeString","computed":true},"allow_nested_items_to_be_public":{"type":"TypeBool","computed":true},"azure_files_authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"domain_sid":{"type":"TypeString","computed":true},"forest_name":{"type":"TypeString","computed":true},"netbios_domain_name":{"type":"TypeString","computed":true},"storage_sid":{"type":"TypeString","computed":true}}}},"directory_type":{"type":"TypeString","computed":true}}}},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"enable_https_traffic_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"is_hns_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"queue_encryption_key_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"table_encryption_key_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account_blob_container_sas":{"schema":{"cache_control":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_language":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_address":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_account_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_addresses":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"filter":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"process":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"tag":{"type":"TypeBool","required":true},"update":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"resource_types":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeBool","required":true},"object":{"type":"TypeBool","required":true},"service":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"services":{"type":"TypeList","required":true,"elem":{"schema":{"blob":{"type":"TypeBool","required":true},"file":{"type":"TypeBool","required":true},"queue":{"type":"TypeBool","required":true},"table":{"type":"TypeBool","required":true}}},"maxItems":1},"signed_version":{"type":"TypeString","optional":true,"default":"2017-07-29"},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","computed":true},"content_md5":{"type":"TypeString","computed":true},"content_type":{"type":"TypeString","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","computed":true},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_encryption_scope":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"schema":{"base_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true}}}},"snapshot":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}},"version":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}}}}},"enabled":{"type":"TypeBool","computed":true},"filters":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operation":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"prefix_match":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true}}}},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_share":{"schema":{"acl":{"type":"TypeList","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"expiry":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"start":{"type":"TypeString","computed":true}}}},"id":{"type":"TypeString","computed":true}}}},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"quota":{"type":"TypeInt","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true},"storage_sync_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true},"row_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","computed":true},"data_locale":{"type":"TypeString","computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_policy":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"job_id":{"type":"TypeString","computed":true},"last_output_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"output_error_policy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_mode":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true},"streaming_units":{"type":"TypeInt","computed":true},"transformation_query":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subnet":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"route_table_id":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_subscription":{"schema":{"display_name":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscription_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscriptions":{"schema":{"display_name_contains":{"type":"TypeString","optional":true},"display_name_prefix":{"type":"TypeString","optional":true},"subscriptions":{"type":"TypeList","computed":true,"elem":{"schema":{"display_name":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_synapse_workspace":{"schema":{"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_template_spec_version":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template_body":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_tenant_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_geographical_location":{"schema":{"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","computed":true,"elem":{"schema":{"relative_name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true}}}},"fqdn":{"type":"TypeString","computed":true},"monitor_config":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"expected_status_code_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"timeout_in_seconds":{"type":"TypeInt","computed":true},"tolerated_number_of_failures":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_status":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","computed":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"read":5}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"load_balancer_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_sessions_allowed":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"personal_desktop_assignment_type":{"type":"TypeString","computed":true},"preferred_app_group_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scheduled_agent_updates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"hour_of_day":{"type":"TypeInt","computed":true}}}},"timezone":{"type":"TypeString","computed":true},"use_session_host_timezone":{"type":"TypeBool","computed":true}}}},"start_vm_on_connect":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"validate_environment":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"default_route_table_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"remote_virtual_network_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"routing":{"type":"TypeList","computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","computed":true},"propagated_route_table":{"type":"TypeList","computed":true,"elem":{"schema":{"labels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"static_vnet_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"next_hop_ip_address":{"type":"TypeString","computed":true}}}}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"instances":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"instance_id":{"type":"TypeString","computed":true},"latest_model_applied":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnets":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","computed":true},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"peer_weight":{"type":"TypeInt","computed":true},"peering_address":{"type":"TypeString","computed":true}}}},"custom_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"default_local_network_gateway_id":{"type":"TypeString","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"generation":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"vpn_client_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","computed":true},"aad_issuer":{"type":"TypeString","computed":true},"aad_tenant":{"type":"TypeString","computed":true},"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","computed":true},"radius_server_secret":{"type":"TypeString","computed":true},"revoked_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"root_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"vpn_client_protocols":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"vpn_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"connection_protocol":{"type":"TypeString","computed":true},"dpd_timeout_seconds":{"type":"TypeInt","computed":true},"egress_bytes_transferred":{"type":"TypeInt","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"express_route_circuit_id":{"type":"TypeString","computed":true},"express_route_gateway_bypass":{"type":"TypeBool","computed":true},"ingress_bytes_transferred":{"type":"TypeInt","computed":true},"ipsec_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"dh_group":{"type":"TypeString","computed":true},"ike_encryption":{"type":"TypeString","computed":true},"ike_integrity":{"type":"TypeString","computed":true},"ipsec_encryption":{"type":"TypeString","computed":true},"ipsec_integrity":{"type":"TypeString","computed":true},"pfs_group":{"type":"TypeString","computed":true},"sa_datasize":{"type":"TypeInt","computed":true},"sa_lifetime":{"type":"TypeInt","computed":true}}}},"local_azure_ip_address_enabled":{"type":"TypeBool","computed":true},"local_network_gateway_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peer_virtual_network_gateway_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"routing_weight":{"type":"TypeInt","computed":true},"shared_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","computed":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","computed":true},"virtual_network_gateway_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","computed":true},"disable_vpn_encryption":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"office365_local_breakout_category":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vpn_site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"management_cluster":{"type":"TypeList","computed":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","computed":true}}}},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_subnet_cidr":{"type":"TypeString","computed":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_vpn_gateway":{"schema":{"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"instance_1_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"peer_weight":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_unit":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_application_firewall_policy":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_pubsub_private_link_resource":{"schema":{"shared_private_link_resource_types":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","computed":true}}}},"web_pubsub_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","computed":true},"docker_container_name":{"type":"TypeString","computed":true},"docker_container_registry":{"type":"TypeString","computed":true},"docker_container_tag":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_core_version":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_embedded_server_enabled":{"type":"TypeBool","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python":{"type":"TypeBool","computed":true},"python_version":{"type":"TypeString","computed":true},"tomcat_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"custom_action":{"type":"TypeList","computed":true,"elem":{"schema":{"executable":{"type":"TypeString","computed":true},"parameters":{"type":"TypeString","computed":true}}}},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","computed":true},"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"virtual_application":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"preload":{"type":"TypeBool","computed":true},"virtual_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"virtual_path":{"type":"TypeString","computed":true}}}},"virtual_path":{"type":"TypeString","computed":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}}}}} diff --git a/CHANGELOG.md b/CHANGELOG.md index 52aa0b10d2a0..8fc2131b1e4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,38 +1,38 @@ -## 3.73.0 (Unreleased) +## 3.73.0 (September 14, 2023) FEATURES: -* **New Resource**: `azurerm_iothub_endpoint_cosmosdb_account` [GH-23065] -* **New Resource**: `azurerm_virtual_hub_routing_intent` [GH-23138] +* **New Resource**: `azurerm_iothub_endpoint_cosmosdb_account` ([#23065](https://github.com/hashicorp/terraform-provider-azurerm/issues/23065)) +* **New Resource**: `azurerm_virtual_hub_routing_intent` ([#23138](https://github.com/hashicorp/terraform-provider-azurerm/issues/23138)) ENHANCEMENTS: -* dependencies: updating to `v0.1.1` of `github.com/btubbs/datetime` [GH-23221] -* dependencies: updating to `v1.3.1` of `github.com/google/uuid` [GH-23221] -* dependencies: updating to `v0.61.0` of `github.com/hashicorp/go-azure-helpers` [GH-23249] -* dependencies: updating to `v0.20230907.1113401` of `github.com/hashicorp/go-azure-sdk` [GH-23221] -* dependencies: updating to `v1.5.0` of `github.com/hashicorp/go-hclog` [GH-23221] -* dependencies: updating to `v2.29.0` of `github.com/hashicorp/terraform-plugin-sdk/v2` [GH-23221] -* dependencies: updating to `v1.5.1` of `github.com/hashicorp/terraform-plugin-testing` [GH-23221] -* dependencies: updating to `v1.20.2` of `github.com/rickb777/date` [GH-23221] -* dependencies: updating to `v0.13.0` of `golang.org/x/crypto` [GH-23221] -* dependencies: updating to `v0.15.0` of `golang.org/x/net` [GH-23221] -* dependencies: updating to `v0.13.0` of `golang.org/x/tools` [GH-23221] -* `azurerm_bot_channel_ms_teams` - support for `deployment_environment` [GH-23122] -* `azurerm_managed_disk` - updating to use API Version `2023-04-02` [GH-23233] -* `azurerm_managed_disk` - support for `optimized_frequent_attach_enabled` [GH-23241] -* `azurerm_managed_disk` - support for `performance_plus_enabled` [GH-23241] -* `azurerm_maps_account` - support for `local_authentication_enabled` [GH-23216] -* `azurerm_mssql_elasticpool` - support for configuring `license_type` when using the `Hyperscale` sku [GH-23256] -* `azurerm_security_center_assessment_policy` - refactoring to use `hashicorp/go-azure-sdk` [GH-23158] +* dependencies: updating to `v0.1.1` of `github.com/btubbs/datetime` ([#23221](https://github.com/hashicorp/terraform-provider-azurerm/issues/23221)) +* dependencies: updating to `v1.3.1` of `github.com/google/uuid` ([#23221](https://github.com/hashicorp/terraform-provider-azurerm/issues/23221)) +* dependencies: updating to `v0.61.0` of `github.com/hashicorp/go-azure-helpers` ([#23249](https://github.com/hashicorp/terraform-provider-azurerm/issues/23249)) +* dependencies: updating to `v0.20230907.1113401` of `github.com/hashicorp/go-azure-sdk` ([#23221](https://github.com/hashicorp/terraform-provider-azurerm/issues/23221)) +* dependencies: updating to `v1.5.0` of `github.com/hashicorp/go-hclog` ([#23221](https://github.com/hashicorp/terraform-provider-azurerm/issues/23221)) +* dependencies: updating to `v2.29.0` of `github.com/hashicorp/terraform-plugin-sdk/v2` ([#23221](https://github.com/hashicorp/terraform-provider-azurerm/issues/23221)) +* dependencies: updating to `v1.5.1` of `github.com/hashicorp/terraform-plugin-testing` ([#23221](https://github.com/hashicorp/terraform-provider-azurerm/issues/23221)) +* dependencies: updating to `v1.20.2` of `github.com/rickb777/date` ([#23221](https://github.com/hashicorp/terraform-provider-azurerm/issues/23221)) +* dependencies: updating to `v0.13.0` of `golang.org/x/crypto` ([#23221](https://github.com/hashicorp/terraform-provider-azurerm/issues/23221)) +* dependencies: updating to `v0.15.0` of `golang.org/x/net` ([#23221](https://github.com/hashicorp/terraform-provider-azurerm/issues/23221)) +* dependencies: updating to `v0.13.0` of `golang.org/x/tools` ([#23221](https://github.com/hashicorp/terraform-provider-azurerm/issues/23221)) +* `azurerm_bot_channel_ms_teams` - support for `deployment_environment` ([#23122](https://github.com/hashicorp/terraform-provider-azurerm/issues/23122)) +* `azurerm_managed_disk` - updating to use API Version `2023-04-02` ([#23233](https://github.com/hashicorp/terraform-provider-azurerm/issues/23233)) +* `azurerm_managed_disk` - support for `optimized_frequent_attach_enabled` ([#23241](https://github.com/hashicorp/terraform-provider-azurerm/issues/23241)) +* `azurerm_managed_disk` - support for `performance_plus_enabled` ([#23241](https://github.com/hashicorp/terraform-provider-azurerm/issues/23241)) +* `azurerm_maps_account` - support for `local_authentication_enabled` ([#23216](https://github.com/hashicorp/terraform-provider-azurerm/issues/23216)) +* `azurerm_mssql_elasticpool` - support for configuring `license_type` when using the `Hyperscale` sku ([#23256](https://github.com/hashicorp/terraform-provider-azurerm/issues/23256)) +* `azurerm_security_center_assessment_policy` - refactoring to use `hashicorp/go-azure-sdk` ([#23158](https://github.com/hashicorp/terraform-provider-azurerm/issues/23158)) BUG FIXES: -* `azurerm_api_management` - split create and update methods [GH-23259] -* `azurerm_api_management_backend` - fixing a panic when flattening the `credentials` block [GH-23219] -* `azurerm_key_vault_certificate` - fixing a regression where certificates from a custom/unknown issuer would be polled indefinitely [GH-23214] -* `azurerm_redis_cache` - prevent sending `redis_configuration.aof_backup_enabled` when the sku is not `Premium` to avoid API error [GH-22774] -* `azurerm_web_application_firewall_policy` - capture and toggle state of `custom_rule` blocks with an `enabled` field [GH-23163] +* `azurerm_api_management` - split create and update methods ([#23259](https://github.com/hashicorp/terraform-provider-azurerm/issues/23259)) +* `azurerm_api_management_backend` - fixing a panic when flattening the `credentials` block ([#23219](https://github.com/hashicorp/terraform-provider-azurerm/issues/23219)) +* `azurerm_key_vault_certificate` - fixing a regression where certificates from a custom/unknown issuer would be polled indefinitely ([#23214](https://github.com/hashicorp/terraform-provider-azurerm/issues/23214)) +* `azurerm_redis_cache` - prevent sending `redis_configuration.aof_backup_enabled` when the sku is not `Premium` to avoid API error ([#22774](https://github.com/hashicorp/terraform-provider-azurerm/issues/22774)) +* `azurerm_web_application_firewall_policy` - capture and toggle state of `custom_rule` blocks with an `enabled` field ([#23163](https://github.com/hashicorp/terraform-provider-azurerm/issues/23163)) ## 3.72.0 (September 07, 2023) From 661cd0080ca440f6bc6e842fa4fc766b848ddebb Mon Sep 17 00:00:00 2001 From: Zhenhua Hu Date: Fri, 15 Sep 2023 14:11:03 +0800 Subject: [PATCH 193/336] New Resource: `azurerm_new_relic_tag_rule` (#23062) * add code * add code * add code * add code * fix go vendor * add code * resolve comments 0621 * go mod vendor * resolve comments 0828 * resolve comments 0915 --- internal/services/newrelic/client/client.go | 16 +- .../newrelic/new_relic_tag_rule_resource.go | 427 ++++++++++++++++++ .../new_relic_tag_rule_resource_test.go | 243 ++++++++++ internal/services/newrelic/registration.go | 1 + .../newrelic/2022-07-01/tagrules/README.md | 103 +++++ .../newrelic/2022-07-01/tagrules/client.go | 26 ++ .../newrelic/2022-07-01/tagrules/constants.go | 277 ++++++++++++ .../2022-07-01/tagrules/id_monitor.go | 127 ++++++ .../2022-07-01/tagrules/id_tagrule.go | 140 ++++++ .../tagrules/method_createorupdate.go | 74 +++ .../2022-07-01/tagrules/method_delete.go | 71 +++ .../2022-07-01/tagrules/method_get.go | 51 +++ .../method_listbynewrelicmonitorresource.go | 89 ++++ .../2022-07-01/tagrules/method_update.go | 55 +++ .../2022-07-01/tagrules/model_filteringtag.go | 10 + .../2022-07-01/tagrules/model_logrules.go | 11 + .../2022-07-01/tagrules/model_metricrules.go | 10 + .../model_monitoringtagrulesproperties.go | 10 + .../2022-07-01/tagrules/model_tagrule.go | 16 + .../tagrules/model_tagruleupdate.go | 8 + .../tagrules/model_tagruleupdateproperties.go | 9 + .../2022-07-01/tagrules/predicates.go | 27 ++ .../newrelic/2022-07-01/tagrules/version.go | 12 + vendor/modules.txt | 1 + .../docs/r/new_relic_tag_rule.html.markdown | 118 +++++ 25 files changed, 1930 insertions(+), 2 deletions(-) create mode 100644 internal/services/newrelic/new_relic_tag_rule_resource.go create mode 100644 internal/services/newrelic/new_relic_tag_rule_resource_test.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/README.md create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/constants.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/id_monitor.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/id_tagrule.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_createorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_delete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_get.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_listbynewrelicmonitorresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_update.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_filteringtag.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_logrules.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_metricrules.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_monitoringtagrulesproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_tagrule.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_tagruleupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_tagruleupdateproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/predicates.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/version.go create mode 100644 website/docs/r/new_relic_tag_rule.html.markdown diff --git a/internal/services/newrelic/client/client.go b/internal/services/newrelic/client/client.go index b2fbe97f90a1..bf85de87d9e0 100644 --- a/internal/services/newrelic/client/client.go +++ b/internal/services/newrelic/client/client.go @@ -4,23 +4,35 @@ package client import ( + "fmt" + "github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/monitors" + "github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules" "github.com/hashicorp/terraform-provider-azurerm/internal/common" ) type Client struct { MonitorsClient *monitors.MonitorsClient + TagRulesClient *tagrules.TagRulesClient } func NewClient(o *common.ClientOptions) (*Client, error) { - monitorsClient, err := monitors.NewMonitorsClientWithBaseURI(o.Environment.ResourceManager) if err != nil { - return nil, err + return nil, fmt.Errorf("building Monitors client: %+v", err) } + o.Configure(monitorsClient.Client, o.Authorizers.ResourceManager) + tagRulesClient, err := tagrules.NewTagRulesClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building TagRules client: %+v", err) + } + + o.Configure(tagRulesClient.Client, o.Authorizers.ResourceManager) + return &Client{ MonitorsClient: monitorsClient, + TagRulesClient: tagRulesClient, }, nil } diff --git a/internal/services/newrelic/new_relic_tag_rule_resource.go b/internal/services/newrelic/new_relic_tag_rule_resource.go new file mode 100644 index 000000000000..e106d6416fee --- /dev/null +++ b/internal/services/newrelic/new_relic_tag_rule_resource.go @@ -0,0 +1,427 @@ +package newrelic + +import ( + "context" + "fmt" + "time" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/monitors" + "github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" +) + +type NewRelicTagRuleModel struct { + NewRelicMonitorId string `tfschema:"monitor_id"` + AadLogEnabled bool `tfschema:"azure_active_directory_log_enabled"` + ActivityLogEnabled bool `tfschema:"activity_log_enabled"` + LogTagFilter []FilteringTagModel `tfschema:"log_tag_filter"` + MetricEnabled bool `tfschema:"metric_enabled"` + MetricTagFilter []FilteringTagModel `tfschema:"metric_tag_filter"` + SubscriptionLogEnabled bool `tfschema:"subscription_log_enabled"` +} + +type FilteringTagModel struct { + Action tagrules.TagAction `tfschema:"action"` + Name string `tfschema:"name"` + Value string `tfschema:"value"` +} + +type NewRelicTagRuleResource struct{} + +var _ sdk.ResourceWithUpdate = NewRelicTagRuleResource{} + +func (r NewRelicTagRuleResource) ResourceType() string { + return "azurerm_new_relic_tag_rule" +} + +func (r NewRelicTagRuleResource) ModelObject() interface{} { + return &NewRelicTagRuleModel{} +} + +func (r NewRelicTagRuleResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return tagrules.ValidateTagRuleID +} + +func (r NewRelicTagRuleResource) Arguments() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{ + "monitor_id": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: monitors.ValidateMonitorID, + }, + + "azure_active_directory_log_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + + "activity_log_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + + "log_tag_filter": { + Type: pluginsdk.TypeList, + Optional: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "action": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringInSlice([]string{ + string(tagrules.TagActionExclude), + string(tagrules.TagActionInclude), + }, false), + }, + + "value": { + Type: pluginsdk.TypeString, + Required: true, + }, + }, + }, + }, + + "metric_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + + "metric_tag_filter": { + Type: pluginsdk.TypeList, + Optional: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "action": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringInSlice([]string{ + string(tagrules.TagActionExclude), + string(tagrules.TagActionInclude), + }, false), + }, + + "value": { + Type: pluginsdk.TypeString, + Required: true, + }, + }, + }, + }, + + "subscription_log_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + } +} + +func (r NewRelicTagRuleResource) Attributes() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{} +} + +func (r NewRelicTagRuleResource) Create() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + var model NewRelicTagRuleModel + if err := metadata.Decode(&model); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + client := metadata.Client.NewRelic.TagRulesClient + monitorId, err := monitors.ParseMonitorID(model.NewRelicMonitorId) + if err != nil { + return err + } + + id := tagrules.NewTagRuleID(monitorId.SubscriptionId, monitorId.ResourceGroupName, monitorId.MonitorName, "default") + existing, err := client.Get(ctx, id) + if err != nil && !response.WasNotFound(existing.HttpResponse) { + return fmt.Errorf("checking for existing %s: %+v", id, err) + } + + if !response.WasNotFound(existing.HttpResponse) { + return metadata.ResourceRequiresImport(r.ResourceType(), id) + } + + logRules := tagrules.LogRules{ + FilteringTags: expandFilteringTagModelArray(model.LogTagFilter), + SendAadLogs: pointer.To(tagrules.SendAadLogsStatusDisabled), + SendActivityLogs: pointer.To(tagrules.SendActivityLogsStatusDisabled), + SendSubscriptionLogs: pointer.To(tagrules.SendSubscriptionLogsStatusDisabled), + } + + email, err := r.getEmail(ctx, metadata.Client.NewRelic.MonitorsClient, monitorId) + if err != nil { + return err + } + + metricRules := tagrules.MetricRules{ + FilteringTags: expandFilteringTagModelArray(model.MetricTagFilter), + SendMetrics: pointer.To(tagrules.SendMetricsStatusDisabled), + UserEmail: &email, + } + + if model.AadLogEnabled { + logRules.SendAadLogs = pointer.To(tagrules.SendAadLogsStatusEnabled) + } + + if model.ActivityLogEnabled { + logRules.SendActivityLogs = pointer.To(tagrules.SendActivityLogsStatusEnabled) + } + + if model.SubscriptionLogEnabled { + logRules.SendSubscriptionLogs = pointer.To(tagrules.SendSubscriptionLogsStatusEnabled) + } + + if model.MetricEnabled { + metricRules.SendMetrics = pointer.To(tagrules.SendMetricsStatusEnabled) + } + + properties := &tagrules.TagRule{ + Properties: tagrules.MonitoringTagRulesProperties{ + LogRules: &logRules, + MetricRules: &metricRules, + }, + } + + if err := client.CreateOrUpdateThenPoll(ctx, id, *properties); err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + + metadata.SetID(id) + return nil + }, + } +} + +func (r NewRelicTagRuleResource) Update() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.NewRelic.TagRulesClient + + id, err := tagrules.ParseTagRuleID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + resp, err := client.Get(ctx, *id) + if err != nil { + return fmt.Errorf("retrieving %s: %+v", *id, err) + } + + properties := resp.Model + if properties == nil { + return fmt.Errorf("retrieving %s: properties was nil", id) + } + + if properties.Properties.LogRules == nil { + return fmt.Errorf("retrieving %s: log rules was nil", id) + } + + if properties.Properties.MetricRules == nil { + return fmt.Errorf("retrieving %s: metric rules was nil", id) + } + + var model NewRelicTagRuleModel + if err := metadata.Decode(&model); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + monitorId, err := monitors.ParseMonitorID(model.NewRelicMonitorId) + if err != nil { + return err + } + + email, err := r.getEmail(ctx, metadata.Client.NewRelic.MonitorsClient, monitorId) + if err != nil { + return err + } + + properties.Properties.MetricRules.UserEmail = &email + + if metadata.ResourceData.HasChange("azure_active_directory_log_enabled") { + if model.AadLogEnabled { + properties.Properties.LogRules.SendAadLogs = pointer.To(tagrules.SendAadLogsStatusEnabled) + } else { + properties.Properties.LogRules.SendAadLogs = pointer.To(tagrules.SendAadLogsStatusDisabled) + } + } + + if metadata.ResourceData.HasChange("activity_log_enabled") { + if model.ActivityLogEnabled { + properties.Properties.LogRules.SendActivityLogs = pointer.To(tagrules.SendActivityLogsStatusEnabled) + } else { + properties.Properties.LogRules.SendActivityLogs = pointer.To(tagrules.SendActivityLogsStatusDisabled) + } + } + + if metadata.ResourceData.HasChange("log_tag_filter") { + properties.Properties.LogRules.FilteringTags = expandFilteringTagModelArray(model.LogTagFilter) + } + + if metadata.ResourceData.HasChange("metric_enabled") { + if model.MetricEnabled { + properties.Properties.MetricRules.SendMetrics = pointer.To(tagrules.SendMetricsStatusEnabled) + } else { + properties.Properties.MetricRules.SendMetrics = pointer.To(tagrules.SendMetricsStatusDisabled) + } + } + + if metadata.ResourceData.HasChange("metric_tag_filter") { + properties.Properties.MetricRules.FilteringTags = expandFilteringTagModelArray(model.MetricTagFilter) + } + + if metadata.ResourceData.HasChange("subscription_log_enabled") { + if model.SubscriptionLogEnabled { + properties.Properties.LogRules.SendSubscriptionLogs = pointer.To(tagrules.SendSubscriptionLogsStatusEnabled) + } else { + properties.Properties.LogRules.SendSubscriptionLogs = pointer.To(tagrules.SendSubscriptionLogsStatusDisabled) + } + } + + if err := client.CreateOrUpdateThenPoll(ctx, *id, *properties); err != nil { + return fmt.Errorf("updating %s: %+v", *id, err) + } + + return nil + }, + } +} + +func (r NewRelicTagRuleResource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 5 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.NewRelic.TagRulesClient + + id, err := tagrules.ParseTagRuleID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + resp, err := client.Get(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return metadata.MarkAsGone(id) + } + + return fmt.Errorf("retrieving %s: %+v", *id, err) + } + + state := NewRelicTagRuleModel{ + NewRelicMonitorId: monitors.NewMonitorID(id.SubscriptionId, id.ResourceGroupName, id.MonitorName).ID(), + } + + if model := resp.Model; model != nil { + properties := &model.Properties + if properties.LogRules != nil { + state.AadLogEnabled = properties.LogRules.SendAadLogs != nil && *properties.LogRules.SendAadLogs == tagrules.SendAadLogsStatusEnabled + state.ActivityLogEnabled = properties.LogRules.SendActivityLogs != nil && *properties.LogRules.SendActivityLogs == tagrules.SendActivityLogsStatusEnabled + state.LogTagFilter = flattenFilteringTagModelArray(properties.LogRules.FilteringTags) + state.SubscriptionLogEnabled = properties.LogRules.SendSubscriptionLogs != nil && *properties.LogRules.SendSubscriptionLogs == tagrules.SendSubscriptionLogsStatusEnabled + } + + if properties.MetricRules != nil { + state.MetricEnabled = properties.MetricRules.SendMetrics != nil && *properties.MetricRules.SendMetrics == tagrules.SendMetricsStatusEnabled + state.MetricTagFilter = flattenFilteringTagModelArray(properties.MetricRules.FilteringTags) + } + } + + return metadata.Encode(&state) + }, + } +} + +func (r NewRelicTagRuleResource) Delete() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.NewRelic.TagRulesClient + + id, err := tagrules.ParseTagRuleID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + if err := client.DeleteThenPoll(ctx, *id); err != nil { + return fmt.Errorf("deleting %s: %+v", id, err) + } + + return nil + }, + } +} + +func (r NewRelicTagRuleResource) getEmail(ctx context.Context, monitorClient *monitors.MonitorsClient, monitorId *monitors.MonitorId) (string, error) { + monitor, err := monitorClient.Get(ctx, *monitorId) + if err != nil { + return "", fmt.Errorf("getting monitor: %+v", err) + } + + if monitor.Model == nil || monitor.Model.Properties.UserInfo == nil || monitor.Model.Properties.UserInfo.EmailAddress == nil || *monitor.Model.Properties.UserInfo.EmailAddress == "" { + return "", fmt.Errorf("failed to get user email address from monitor") + } + + return *monitor.Model.Properties.UserInfo.EmailAddress, nil +} + +func expandFilteringTagModelArray(inputList []FilteringTagModel) *[]tagrules.FilteringTag { + var outputList []tagrules.FilteringTag + for _, v := range inputList { + input := v + output := tagrules.FilteringTag{ + Action: &input.Action, + } + + if input.Name != "" { + output.Name = &input.Name + } + + if input.Value != "" { + output.Value = &input.Value + } + outputList = append(outputList, output) + } + return &outputList +} + +func flattenFilteringTagModelArray(inputList *[]tagrules.FilteringTag) []FilteringTagModel { + outputList := make([]FilteringTagModel, 0) + if inputList == nil { + return outputList + } + + for _, input := range *inputList { + outputList = append(outputList, FilteringTagModel{ + Action: pointer.From(input.Action), + Name: pointer.From(input.Name), + Value: pointer.From(input.Value), + }) + } + + return outputList +} diff --git a/internal/services/newrelic/new_relic_tag_rule_resource_test.go b/internal/services/newrelic/new_relic_tag_rule_resource_test.go new file mode 100644 index 000000000000..84911ca81f95 --- /dev/null +++ b/internal/services/newrelic/new_relic_tag_rule_resource_test.go @@ -0,0 +1,243 @@ +package newrelic_test + +import ( + "context" + "fmt" + "testing" + "time" + + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/utils" +) + +type NewRelicTagRuleResource struct{} + +func TestAccNewRelicTagRule_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_new_relic_tag_rule", "test") + r := NewRelicTagRuleResource{} + email := "27362230-e2d8-4c73-9ee3-fdef83459ca3@example.com" + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data, email), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccNewRelicTagRule_requiresImport(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_new_relic_tag_rule", "test") + r := NewRelicTagRuleResource{} + email := "85b5febd-127d-4633-9c25-bcfea555af46@example.com" + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data, email), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data, email), + ExpectError: acceptance.RequiresImportError(data.ResourceType), + }, + }) +} + +func TestAccNewRelicTagRule_complete(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_new_relic_tag_rule", "test") + r := NewRelicTagRuleResource{} + email := "672d9312-65a7-484c-870d-94584850a423@example.com" + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.complete(data, email), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccNewRelicTagRule_update(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_new_relic_tag_rule", "test") + r := NewRelicTagRuleResource{} + email := "f0ff47c3-3aed-45b0-b239-260d9625045a@example.com" + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.complete(data, email), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.update(data, email), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func (r NewRelicTagRuleResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { + id, err := tagrules.ParseTagRuleID(state.ID) + if err != nil { + return nil, err + } + + client := clients.NewRelic.TagRulesClient + resp, err := client.Get(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return utils.Bool(false), nil + } + return nil, fmt.Errorf("retrieving %s: %+v", id, err) + } + return utils.Bool(resp.Model != nil), nil +} + +func (r NewRelicTagRuleResource) template(data acceptance.TestData, email string) string { + year, month, day := time.Now().Add(time.Hour * 72).Date() + effectiveDate := time.Date(year, month, day, 0, 0, 0, 0, time.UTC).Format(time.RFC3339) + + return fmt.Sprintf(` +resource "azurerm_resource_group" "test" { + name = "acctest-rg-%[1]d" + location = "%[2]s" +} + +resource "azurerm_new_relic_monitor" "test" { + name = "acctest-nrm-%[1]d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + + plan { + effective_date = "%[3]s" + } + + user { + email = "%[4]s" + first_name = "first" + last_name = "last" + phone_number = "123456" + } +} +`, data.RandomInteger, data.Locations.Primary, effectiveDate, email) +} + +func (r NewRelicTagRuleResource) basic(data acceptance.TestData, email string) string { + template := r.template(data, email) + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + %s + +resource "azurerm_new_relic_tag_rule" "test" { + monitor_id = azurerm_new_relic_monitor.test.id +} +`, template) +} + +func (r NewRelicTagRuleResource) requiresImport(data acceptance.TestData, email string) string { + config := r.basic(data, email) + return fmt.Sprintf(` + %s + +resource "azurerm_new_relic_tag_rule" "import" { + monitor_id = azurerm_new_relic_tag_rule.test.monitor_id +} +`, config) +} + +func (r NewRelicTagRuleResource) complete(data acceptance.TestData, email string) string { + template := r.template(data, email) + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + %s + +resource "azurerm_new_relic_tag_rule" "test" { + monitor_id = azurerm_new_relic_monitor.test.id + azure_active_directory_log_enabled = true + activity_log_enabled = true + metric_enabled = true + subscription_log_enabled = true + + log_tag_filter { + name = "log1" + action = "Include" + value = "log1" + } + + log_tag_filter { + name = "log2" + action = "Exclude" + value = "" + } + + metric_tag_filter { + name = "metric1" + action = "Include" + value = "metric1" + } + + metric_tag_filter { + name = "metric2" + action = "Exclude" + value = "" + } +} +`, template) +} + +func (r NewRelicTagRuleResource) update(data acceptance.TestData, email string) string { + template := r.template(data, email) + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + %s + +resource "azurerm_new_relic_tag_rule" "test" { + monitor_id = azurerm_new_relic_monitor.test.id + azure_active_directory_log_enabled = false + activity_log_enabled = false + metric_enabled = false + subscription_log_enabled = false + + log_tag_filter { + name = "log2" + action = "Exclude" + value = "" + } + + log_tag_filter { + name = "log1" + action = "Include" + value = "log1" + } + + metric_tag_filter { + name = "metric1" + action = "Exclude" + value = "" + } + + metric_tag_filter { + name = "metric2" + action = "Include" + value = "metric1" + } +} +`, template) +} diff --git a/internal/services/newrelic/registration.go b/internal/services/newrelic/registration.go index 46b5bb9cd8d6..824a2f9f343a 100644 --- a/internal/services/newrelic/registration.go +++ b/internal/services/newrelic/registration.go @@ -27,6 +27,7 @@ func (r Registration) DataSources() []sdk.DataSource { func (r Registration) Resources() []sdk.Resource { return []sdk.Resource{ NewRelicMonitorResource{}, + NewRelicTagRuleResource{}, } } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/README.md new file mode 100644 index 000000000000..0691d3a67645 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/README.md @@ -0,0 +1,103 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules` Documentation + +The `tagrules` SDK allows for interaction with the Azure Resource Manager Service `newrelic` (API Version `2022-07-01`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules" +``` + + +### Client Initialization + +```go +client := tagrules.NewTagRulesClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `TagRulesClient.CreateOrUpdate` + +```go +ctx := context.TODO() +id := tagrules.NewTagRuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "monitorValue", "tagRuleValue") + +payload := tagrules.TagRule{ + // ... +} + + +if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `TagRulesClient.Delete` + +```go +ctx := context.TODO() +id := tagrules.NewTagRuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "monitorValue", "tagRuleValue") + +if err := client.DeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `TagRulesClient.Get` + +```go +ctx := context.TODO() +id := tagrules.NewTagRuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "monitorValue", "tagRuleValue") + +read, err := client.Get(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `TagRulesClient.ListByNewRelicMonitorResource` + +```go +ctx := context.TODO() +id := tagrules.NewMonitorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "monitorValue") + +// alternatively `client.ListByNewRelicMonitorResource(ctx, id)` can be used to do batched pagination +items, err := client.ListByNewRelicMonitorResourceComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `TagRulesClient.Update` + +```go +ctx := context.TODO() +id := tagrules.NewTagRuleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "monitorValue", "tagRuleValue") + +payload := tagrules.TagRuleUpdate{ + // ... +} + + +read, err := client.Update(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/client.go new file mode 100644 index 000000000000..e35a62f31162 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/client.go @@ -0,0 +1,26 @@ +package tagrules + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TagRulesClient struct { + Client *resourcemanager.Client +} + +func NewTagRulesClientWithBaseURI(sdkApi sdkEnv.Api) (*TagRulesClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "tagrules", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating TagRulesClient: %+v", err) + } + + return &TagRulesClient{ + Client: client, + }, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/constants.go new file mode 100644 index 000000000000..c8fd2d9e8a4a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/constants.go @@ -0,0 +1,277 @@ +package tagrules + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ProvisioningState string + +const ( + ProvisioningStateAccepted ProvisioningState = "Accepted" + ProvisioningStateCanceled ProvisioningState = "Canceled" + ProvisioningStateCreating ProvisioningState = "Creating" + ProvisioningStateDeleted ProvisioningState = "Deleted" + ProvisioningStateDeleting ProvisioningState = "Deleting" + ProvisioningStateFailed ProvisioningState = "Failed" + ProvisioningStateNotSpecified ProvisioningState = "NotSpecified" + ProvisioningStateSucceeded ProvisioningState = "Succeeded" + ProvisioningStateUpdating ProvisioningState = "Updating" +) + +func PossibleValuesForProvisioningState() []string { + return []string{ + string(ProvisioningStateAccepted), + string(ProvisioningStateCanceled), + string(ProvisioningStateCreating), + string(ProvisioningStateDeleted), + string(ProvisioningStateDeleting), + string(ProvisioningStateFailed), + string(ProvisioningStateNotSpecified), + string(ProvisioningStateSucceeded), + string(ProvisioningStateUpdating), + } +} + +func (s *ProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseProvisioningState(input string) (*ProvisioningState, error) { + vals := map[string]ProvisioningState{ + "accepted": ProvisioningStateAccepted, + "canceled": ProvisioningStateCanceled, + "creating": ProvisioningStateCreating, + "deleted": ProvisioningStateDeleted, + "deleting": ProvisioningStateDeleting, + "failed": ProvisioningStateFailed, + "notspecified": ProvisioningStateNotSpecified, + "succeeded": ProvisioningStateSucceeded, + "updating": ProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ProvisioningState(input) + return &out, nil +} + +type SendAadLogsStatus string + +const ( + SendAadLogsStatusDisabled SendAadLogsStatus = "Disabled" + SendAadLogsStatusEnabled SendAadLogsStatus = "Enabled" +) + +func PossibleValuesForSendAadLogsStatus() []string { + return []string{ + string(SendAadLogsStatusDisabled), + string(SendAadLogsStatusEnabled), + } +} + +func (s *SendAadLogsStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseSendAadLogsStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseSendAadLogsStatus(input string) (*SendAadLogsStatus, error) { + vals := map[string]SendAadLogsStatus{ + "disabled": SendAadLogsStatusDisabled, + "enabled": SendAadLogsStatusEnabled, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := SendAadLogsStatus(input) + return &out, nil +} + +type SendActivityLogsStatus string + +const ( + SendActivityLogsStatusDisabled SendActivityLogsStatus = "Disabled" + SendActivityLogsStatusEnabled SendActivityLogsStatus = "Enabled" +) + +func PossibleValuesForSendActivityLogsStatus() []string { + return []string{ + string(SendActivityLogsStatusDisabled), + string(SendActivityLogsStatusEnabled), + } +} + +func (s *SendActivityLogsStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseSendActivityLogsStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseSendActivityLogsStatus(input string) (*SendActivityLogsStatus, error) { + vals := map[string]SendActivityLogsStatus{ + "disabled": SendActivityLogsStatusDisabled, + "enabled": SendActivityLogsStatusEnabled, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := SendActivityLogsStatus(input) + return &out, nil +} + +type SendMetricsStatus string + +const ( + SendMetricsStatusDisabled SendMetricsStatus = "Disabled" + SendMetricsStatusEnabled SendMetricsStatus = "Enabled" +) + +func PossibleValuesForSendMetricsStatus() []string { + return []string{ + string(SendMetricsStatusDisabled), + string(SendMetricsStatusEnabled), + } +} + +func (s *SendMetricsStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseSendMetricsStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseSendMetricsStatus(input string) (*SendMetricsStatus, error) { + vals := map[string]SendMetricsStatus{ + "disabled": SendMetricsStatusDisabled, + "enabled": SendMetricsStatusEnabled, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := SendMetricsStatus(input) + return &out, nil +} + +type SendSubscriptionLogsStatus string + +const ( + SendSubscriptionLogsStatusDisabled SendSubscriptionLogsStatus = "Disabled" + SendSubscriptionLogsStatusEnabled SendSubscriptionLogsStatus = "Enabled" +) + +func PossibleValuesForSendSubscriptionLogsStatus() []string { + return []string{ + string(SendSubscriptionLogsStatusDisabled), + string(SendSubscriptionLogsStatusEnabled), + } +} + +func (s *SendSubscriptionLogsStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseSendSubscriptionLogsStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseSendSubscriptionLogsStatus(input string) (*SendSubscriptionLogsStatus, error) { + vals := map[string]SendSubscriptionLogsStatus{ + "disabled": SendSubscriptionLogsStatusDisabled, + "enabled": SendSubscriptionLogsStatusEnabled, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := SendSubscriptionLogsStatus(input) + return &out, nil +} + +type TagAction string + +const ( + TagActionExclude TagAction = "Exclude" + TagActionInclude TagAction = "Include" +) + +func PossibleValuesForTagAction() []string { + return []string{ + string(TagActionExclude), + string(TagActionInclude), + } +} + +func (s *TagAction) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseTagAction(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseTagAction(input string) (*TagAction, error) { + vals := map[string]TagAction{ + "exclude": TagActionExclude, + "include": TagActionInclude, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := TagAction(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/id_monitor.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/id_monitor.go new file mode 100644 index 000000000000..91def2f39e15 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/id_monitor.go @@ -0,0 +1,127 @@ +package tagrules + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = MonitorId{} + +// MonitorId is a struct representing the Resource ID for a Monitor +type MonitorId struct { + SubscriptionId string + ResourceGroupName string + MonitorName string +} + +// NewMonitorID returns a new MonitorId struct +func NewMonitorID(subscriptionId string, resourceGroupName string, monitorName string) MonitorId { + return MonitorId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + MonitorName: monitorName, + } +} + +// ParseMonitorID parses 'input' into a MonitorId +func ParseMonitorID(input string) (*MonitorId, error) { + parser := resourceids.NewParserFromResourceIdType(MonitorId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := MonitorId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.MonitorName, ok = parsed.Parsed["monitorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "monitorName", *parsed) + } + + return &id, nil +} + +// ParseMonitorIDInsensitively parses 'input' case-insensitively into a MonitorId +// note: this method should only be used for API response data and not user input +func ParseMonitorIDInsensitively(input string) (*MonitorId, error) { + parser := resourceids.NewParserFromResourceIdType(MonitorId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := MonitorId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.MonitorName, ok = parsed.Parsed["monitorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "monitorName", *parsed) + } + + return &id, nil +} + +// ValidateMonitorID checks that 'input' can be parsed as a Monitor ID +func ValidateMonitorID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseMonitorID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Monitor ID +func (id MonitorId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/NewRelic.Observability/monitors/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.MonitorName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Monitor ID +func (id MonitorId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticNewRelicObservability", "NewRelic.Observability", "NewRelic.Observability"), + resourceids.StaticSegment("staticMonitors", "monitors", "monitors"), + resourceids.UserSpecifiedSegment("monitorName", "monitorValue"), + } +} + +// String returns a human-readable description of this Monitor ID +func (id MonitorId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Monitor Name: %q", id.MonitorName), + } + return fmt.Sprintf("Monitor (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/id_tagrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/id_tagrule.go new file mode 100644 index 000000000000..0f89ab5c649b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/id_tagrule.go @@ -0,0 +1,140 @@ +package tagrules + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = TagRuleId{} + +// TagRuleId is a struct representing the Resource ID for a Tag Rule +type TagRuleId struct { + SubscriptionId string + ResourceGroupName string + MonitorName string + TagRuleName string +} + +// NewTagRuleID returns a new TagRuleId struct +func NewTagRuleID(subscriptionId string, resourceGroupName string, monitorName string, tagRuleName string) TagRuleId { + return TagRuleId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + MonitorName: monitorName, + TagRuleName: tagRuleName, + } +} + +// ParseTagRuleID parses 'input' into a TagRuleId +func ParseTagRuleID(input string) (*TagRuleId, error) { + parser := resourceids.NewParserFromResourceIdType(TagRuleId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := TagRuleId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.MonitorName, ok = parsed.Parsed["monitorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "monitorName", *parsed) + } + + if id.TagRuleName, ok = parsed.Parsed["tagRuleName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "tagRuleName", *parsed) + } + + return &id, nil +} + +// ParseTagRuleIDInsensitively parses 'input' case-insensitively into a TagRuleId +// note: this method should only be used for API response data and not user input +func ParseTagRuleIDInsensitively(input string) (*TagRuleId, error) { + parser := resourceids.NewParserFromResourceIdType(TagRuleId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := TagRuleId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.MonitorName, ok = parsed.Parsed["monitorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "monitorName", *parsed) + } + + if id.TagRuleName, ok = parsed.Parsed["tagRuleName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "tagRuleName", *parsed) + } + + return &id, nil +} + +// ValidateTagRuleID checks that 'input' can be parsed as a Tag Rule ID +func ValidateTagRuleID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseTagRuleID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Tag Rule ID +func (id TagRuleId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/NewRelic.Observability/monitors/%s/tagRules/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.MonitorName, id.TagRuleName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Tag Rule ID +func (id TagRuleId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticNewRelicObservability", "NewRelic.Observability", "NewRelic.Observability"), + resourceids.StaticSegment("staticMonitors", "monitors", "monitors"), + resourceids.UserSpecifiedSegment("monitorName", "monitorValue"), + resourceids.StaticSegment("staticTagRules", "tagRules", "tagRules"), + resourceids.UserSpecifiedSegment("tagRuleName", "tagRuleValue"), + } +} + +// String returns a human-readable description of this Tag Rule ID +func (id TagRuleId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Monitor Name: %q", id.MonitorName), + fmt.Sprintf("Tag Rule Name: %q", id.TagRuleName), + } + return fmt.Sprintf("Tag Rule (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_createorupdate.go new file mode 100644 index 000000000000..0a114c6602f5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_createorupdate.go @@ -0,0 +1,74 @@ +package tagrules + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CreateOrUpdate ... +func (c TagRulesClient) CreateOrUpdate(ctx context.Context, id TagRuleId, input TagRule) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c TagRulesClient) CreateOrUpdateThenPoll(ctx context.Context, id TagRuleId, input TagRule) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_delete.go new file mode 100644 index 000000000000..4161493d1b97 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_delete.go @@ -0,0 +1,71 @@ +package tagrules + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c TagRulesClient) Delete(ctx context.Context, id TagRuleId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c TagRulesClient) DeleteThenPoll(ctx context.Context, id TagRuleId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_get.go new file mode 100644 index 000000000000..48b6368423a0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_get.go @@ -0,0 +1,51 @@ +package tagrules + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *TagRule +} + +// Get ... +func (c TagRulesClient) Get(ctx context.Context, id TagRuleId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_listbynewrelicmonitorresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_listbynewrelicmonitorresource.go new file mode 100644 index 000000000000..f785b30da5b7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_listbynewrelicmonitorresource.go @@ -0,0 +1,89 @@ +package tagrules + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByNewRelicMonitorResourceOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]TagRule +} + +type ListByNewRelicMonitorResourceCompleteResult struct { + Items []TagRule +} + +// ListByNewRelicMonitorResource ... +func (c TagRulesClient) ListByNewRelicMonitorResource(ctx context.Context, id MonitorId) (result ListByNewRelicMonitorResourceOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/tagRules", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]TagRule `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListByNewRelicMonitorResourceComplete retrieves all the results into a single object +func (c TagRulesClient) ListByNewRelicMonitorResourceComplete(ctx context.Context, id MonitorId) (ListByNewRelicMonitorResourceCompleteResult, error) { + return c.ListByNewRelicMonitorResourceCompleteMatchingPredicate(ctx, id, TagRuleOperationPredicate{}) +} + +// ListByNewRelicMonitorResourceCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c TagRulesClient) ListByNewRelicMonitorResourceCompleteMatchingPredicate(ctx context.Context, id MonitorId, predicate TagRuleOperationPredicate) (result ListByNewRelicMonitorResourceCompleteResult, err error) { + items := make([]TagRule, 0) + + resp, err := c.ListByNewRelicMonitorResource(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListByNewRelicMonitorResourceCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_update.go new file mode 100644 index 000000000000..5f8ada856f1b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/method_update.go @@ -0,0 +1,55 @@ +package tagrules + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *TagRule +} + +// Update ... +func (c TagRulesClient) Update(ctx context.Context, id TagRuleId, input TagRuleUpdate) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_filteringtag.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_filteringtag.go new file mode 100644 index 000000000000..13b1c7f0b877 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_filteringtag.go @@ -0,0 +1,10 @@ +package tagrules + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type FilteringTag struct { + Action *TagAction `json:"action,omitempty"` + Name *string `json:"name,omitempty"` + Value *string `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_logrules.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_logrules.go new file mode 100644 index 000000000000..1bd42a848b5b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_logrules.go @@ -0,0 +1,11 @@ +package tagrules + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type LogRules struct { + FilteringTags *[]FilteringTag `json:"filteringTags,omitempty"` + SendAadLogs *SendAadLogsStatus `json:"sendAadLogs,omitempty"` + SendActivityLogs *SendActivityLogsStatus `json:"sendActivityLogs,omitempty"` + SendSubscriptionLogs *SendSubscriptionLogsStatus `json:"sendSubscriptionLogs,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_metricrules.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_metricrules.go new file mode 100644 index 000000000000..75e75e9aeb19 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_metricrules.go @@ -0,0 +1,10 @@ +package tagrules + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type MetricRules struct { + FilteringTags *[]FilteringTag `json:"filteringTags,omitempty"` + SendMetrics *SendMetricsStatus `json:"sendMetrics,omitempty"` + UserEmail *string `json:"userEmail,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_monitoringtagrulesproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_monitoringtagrulesproperties.go new file mode 100644 index 000000000000..8900c72ac040 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_monitoringtagrulesproperties.go @@ -0,0 +1,10 @@ +package tagrules + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type MonitoringTagRulesProperties struct { + LogRules *LogRules `json:"logRules,omitempty"` + MetricRules *MetricRules `json:"metricRules,omitempty"` + ProvisioningState *ProvisioningState `json:"provisioningState,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_tagrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_tagrule.go new file mode 100644 index 000000000000..be251a10a4d2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_tagrule.go @@ -0,0 +1,16 @@ +package tagrules + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TagRule struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties MonitoringTagRulesProperties `json:"properties"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_tagruleupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_tagruleupdate.go new file mode 100644 index 000000000000..75517f3f96d2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_tagruleupdate.go @@ -0,0 +1,8 @@ +package tagrules + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TagRuleUpdate struct { + Properties *TagRuleUpdateProperties `json:"properties,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_tagruleupdateproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_tagruleupdateproperties.go new file mode 100644 index 000000000000..57895124c755 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/model_tagruleupdateproperties.go @@ -0,0 +1,9 @@ +package tagrules + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TagRuleUpdateProperties struct { + LogRules *LogRules `json:"logRules,omitempty"` + MetricRules *MetricRules `json:"metricRules,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/predicates.go new file mode 100644 index 000000000000..b8e7c533c9f0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/predicates.go @@ -0,0 +1,27 @@ +package tagrules + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TagRuleOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p TagRuleOperationPredicate) Matches(input TagRule) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/version.go new file mode 100644 index 000000000000..c7df0f2437ea --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules/version.go @@ -0,0 +1,12 @@ +package tagrules + +import "fmt" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +const defaultApiVersion = "2022-07-01" + +func userAgent() string { + return fmt.Sprintf("hashicorp/go-azure-sdk/tagrules/%s", defaultApiVersion) +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 596706960dff..354c5ccb2256 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -737,6 +737,7 @@ github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/webapplica github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/webcategories github.com/hashicorp/go-azure-sdk/resource-manager/networkfunction/2022-11-01/azuretrafficcollectors github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/monitors +github.com/hashicorp/go-azure-sdk/resource-manager/newrelic/2022-07-01/tagrules github.com/hashicorp/go-azure-sdk/resource-manager/nginx/2022-08-01 github.com/hashicorp/go-azure-sdk/resource-manager/nginx/2022-08-01/nginxcertificate github.com/hashicorp/go-azure-sdk/resource-manager/nginx/2022-08-01/nginxconfiguration diff --git a/website/docs/r/new_relic_tag_rule.html.markdown b/website/docs/r/new_relic_tag_rule.html.markdown new file mode 100644 index 000000000000..4c8583ab6dd5 --- /dev/null +++ b/website/docs/r/new_relic_tag_rule.html.markdown @@ -0,0 +1,118 @@ +--- +subcategory: "New Relic" +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_new_relic_tag_rule" +description: |- + Manages an Azure Native New Relic Tag Rule. +--- + +# azurerm_new_relic_tag_rule + +Manages an Azure Native New Relic Tag Rule. + +## Example Usage + +```hcl +resource "azurerm_resource_group" "example" { + name = "example-resources" + location = "East US" +} + +resource "azurerm_new_relic_monitor" "example" { + name = "example-nrm" + resource_group_name = azurerm_resource_group.example.name + location = azurerm_resource_group.example.location + + plan { + effective_date = "2023-06-06T00:00:00Z" + } + + user { + email = "user@example.com" + first_name = "Example" + last_name = "User" + phone_number = "+12313803556" + } +} + +resource "azurerm_new_relic_tag_rule" "example" { + monitor_id = azurerm_new_relic_monitor.example.id + azure_active_directory_log_enabled = true + activity_log_enabled = true + metric_enabled = true + subscription_log_enabled = true + + log_tag_filter { + name = "key" + action = "Include" + value = "value" + } + + metric_tag_filter { + name = "key" + action = "Exclude" + value = "value" + } +} +``` + +## Arguments Reference + +The following arguments are supported: + +* `monitor_id` - (Required) Specifies the ID of the New Relic Monitor this Tag Rule should be created within. Changing this forces a new Azure Native New Relic Tag Rule to be created. + +* `azure_active_directory_log_enabled` - (Optional) Whether Azure Active Directory logs should be sent for the Monitor resource. Defaults to `false`. + +* `activity_log_enabled` - (Optional) Whether activity logs from Azure resources should be sent for the Monitor resource. Defaults to `false`. + +* `log_tag_filter` - (Optional) A `log_tag_filter` block as defined below. + +* `metric_enabled` - (Optional) Whether metrics should be sent for the Monitor resource. Defaults to `false`. + +* `metric_tag_filter` - (Optional) A `metric_tag_filter` block as defined below. + +* `subscription_log_enabled` - (Optional) Whether subscription logs should be sent for the Monitor resource. Defaults to `false`. + +--- + +A `log_tag_filter` block supports the following: + +* `name` - (Required) Specifies the name (also known as the key) of the tag. + +* `action` - (Required) Valid actions for a filtering tag. Possible values are `Exclude` and `Include`. Exclusion takes priority over inclusion. + +* `value` - (Required) Specifies the value of the tag. + +--- + +A `metric_tag_filter` block supports the following: + +* `name` - (Required) Specifies the name (also known as the key) of the tag. + +* `action` - (Required) Valid actions for a filtering tag. Possible values are `Exclude` and `Include`. Exclusion takes priority over inclusion. + +* `value` - (Required) Specifies the value of the tag. + +## Attributes Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the Azure Native New Relic Tag Rule. + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/docs/configuration/resources.html#timeouts) for certain actions: + +* `create` - (Defaults to 30 minutes) Used when creating the Azure Native New Relic Tag Rule. +* `read` - (Defaults to 5 minutes) Used when retrieving the Azure Native New Relic Tag Rule. +* `update` - (Defaults to 30 minutes) Used when updating the Azure Native New Relic Tag Rule. +* `delete` - (Defaults to 30 minutes) Used when deleting the Azure Native New Relic Tag Rule. + +## Import + +Azure Native New Relic Tag Rule can be imported using the `resource id`, e.g. + +```shell +terraform import azurerm_new_relic_tag_rule.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/NewRelic.Observability/monitors/monitor1/tagRules/ruleSet1 +``` From fc70de5702e271f567e1e40254307e5cb3539365 Mon Sep 17 00:00:00 2001 From: markrzasa Date: Fri, 15 Sep 2023 02:50:42 -0400 Subject: [PATCH 194/336] add identity block to eventgrid domain data source (#23274) * add identity to eventgrid domain data source * fix terraform format errors --- .../eventgrid/eventgrid_domain_data_source.go | 11 ++++ .../eventgrid_domain_data_source_test.go | 59 +++++++++++++++++++ website/docs/d/eventgrid_domain.html.markdown | 14 +++++ 3 files changed, 84 insertions(+) diff --git a/internal/services/eventgrid/eventgrid_domain_data_source.go b/internal/services/eventgrid/eventgrid_domain_data_source.go index d84260a74454..59cf02d48121 100644 --- a/internal/services/eventgrid/eventgrid_domain_data_source.go +++ b/internal/services/eventgrid/eventgrid_domain_data_source.go @@ -9,6 +9,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/domains" @@ -138,6 +139,8 @@ func dataSourceEventGridDomain() *pluginsdk.Resource { }, "tags": commonschema.TagsDataSource(), + + "identity": commonschema.SystemOrUserAssignedIdentityComputed(), }, } } @@ -202,6 +205,14 @@ func dataSourceEventGridDomainRead(d *pluginsdk.ResourceData, meta interface{}) if err := d.Set("inbound_ip_rule", inboundIPRules); err != nil { return fmt.Errorf("setting `inbound_ip_rule` in %s: %+v", id, err) } + + flattenedIdentity, err := identity.FlattenSystemAndUserAssignedMap(model.Identity) + if err != nil { + return fmt.Errorf("flattening `identity`: %+v", err) + } + if err := d.Set("identity", flattenedIdentity); err != nil { + return fmt.Errorf("setting `identity`: %+v", err) + } } if err := tags.FlattenAndSet(d, model.Tags); err != nil { diff --git a/internal/services/eventgrid/eventgrid_domain_data_source_test.go b/internal/services/eventgrid/eventgrid_domain_data_source_test.go index 50923b8ae5ee..9fc6dc297504 100644 --- a/internal/services/eventgrid/eventgrid_domain_data_source_test.go +++ b/internal/services/eventgrid/eventgrid_domain_data_source_test.go @@ -35,6 +35,43 @@ func TestAccEventGridDomainDataSource_basic(t *testing.T) { check.That(data.ResourceName).Key("inbound_ip_rule.1.ip_mask").Exists(), check.That(data.ResourceName).Key("inbound_ip_rule.0.action").Exists(), check.That(data.ResourceName).Key("inbound_ip_rule.1.action").Exists(), + check.That(data.ResourceName).Key("identity.#").HasValue("0"), + ), + }, + }) +} + +func TestAccEventGridDomainDataSource_systemAssignedIdentity(t *testing.T) { + data := acceptance.BuildTestData(t, "data.azurerm_eventgrid_domain", "test") + r := EventGridDomainDataSource{} + + data.DataSourceTest(t, []acceptance.TestStep{ + { + Config: r.basicWithSystemManagedIdentity(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("identity.#").HasValue("1"), + check.That(data.ResourceName).Key("identity.0.type").HasValue("SystemAssigned"), + check.That(data.ResourceName).Key("identity.0.identity_ids.#").HasValue("0"), + check.That(data.ResourceName).Key("identity.0.principal_id").Exists(), + check.That(data.ResourceName).Key("identity.0.tenant_id").Exists(), + ), + }, + }) +} + +func TestAccEventGridDomainDataSource_userAssignedIdentity(t *testing.T) { + data := acceptance.BuildTestData(t, "data.azurerm_eventgrid_domain", "test") + r := EventGridDomainDataSource{} + + data.DataSourceTest(t, []acceptance.TestStep{ + { + Config: r.basicWithUserAssignedManagedIdentity(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("identity.#").HasValue("1"), + check.That(data.ResourceName).Key("identity.0.type").HasValue("UserAssigned"), + check.That(data.ResourceName).Key("identity.0.identity_ids.#").HasValue("1"), + check.That(data.ResourceName).Key("identity.0.principal_id").IsEmpty(), + check.That(data.ResourceName).Key("identity.0.tenant_id").IsEmpty(), ), }, }) @@ -50,3 +87,25 @@ data "azurerm_eventgrid_domain" "test" { } `, EventGridDomainResource{}.complete(data)) } + +func (EventGridDomainDataSource) basicWithSystemManagedIdentity(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +data "azurerm_eventgrid_domain" "test" { + name = azurerm_eventgrid_domain.test.name + resource_group_name = azurerm_resource_group.test.name +} +`, EventGridDomainResource{}.basicWithSystemManagedIdentity(data)) +} + +func (EventGridDomainDataSource) basicWithUserAssignedManagedIdentity(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +data "azurerm_eventgrid_domain" "test" { + name = azurerm_eventgrid_domain.test.name + resource_group_name = azurerm_resource_group.test.name +} +`, EventGridDomainResource{}.basicWithUserAssignedManagedIdentity(data)) +} diff --git a/website/docs/d/eventgrid_domain.html.markdown b/website/docs/d/eventgrid_domain.html.markdown index 08bd714a9ff0..d1aac45cb526 100644 --- a/website/docs/d/eventgrid_domain.html.markdown +++ b/website/docs/d/eventgrid_domain.html.markdown @@ -58,6 +58,8 @@ The following attributes are exported: * `tags` - A mapping of tags assigned to the EventGrid Domain. +* `identity` - An `identity` block as documented below. + --- A `input_mapping_fields` supports the following: @@ -92,6 +94,18 @@ A `inbound_ip_rule` block supports the following: * `action` - The action to take when the rule is matched. Possible values are `Allow`. +--- + +An `identity` block exports the following: + +* `type` - The type of Managed Service Identity that is configured on this EventGrid Domain. + +* `principal_id` - The Principal ID of the System Assigned Managed Service Identity. + +* `tenant_id` - The Tenant ID of the System Assigned Managed Service Identity. + +* `identity_ids` - The list of User Assigned Managed Identity IDs assigned to this EventGrid Domain. + ## Timeouts The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: From e75cf8f707e980215cbba092bd12f13109a10790 Mon Sep 17 00:00:00 2001 From: Elena Xin Date: Fri, 15 Sep 2023 11:26:57 +0800 Subject: [PATCH 195/336] fix acc test failure --- ..._database_extended_auditing_policy_resource_test.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/services/mssql/mssql_database_extended_auditing_policy_resource_test.go b/internal/services/mssql/mssql_database_extended_auditing_policy_resource_test.go index 1a7be17983e8..7002dc1c935e 100644 --- a/internal/services/mssql/mssql_database_extended_auditing_policy_resource_test.go +++ b/internal/services/mssql/mssql_database_extended_auditing_policy_resource_test.go @@ -352,12 +352,20 @@ resource "azurerm_mssql_database" "test" { server_id = azurerm_mssql_server.test.id } +resource "azurerm_storage_account" "test" { + name = "unlikely23exst2acct%[3]s" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + account_tier = "Standard" + account_replication_type = "LRS" +} + resource "azurerm_mssql_database_extended_auditing_policy" "test" { database_id = azurerm_mssql_database.test.id enabled = false } -`, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomString) +`, data.RandomInteger, data.Locations.Primary, data.RandomString) } func (r MsSqlDatabaseExtendedAuditingPolicyResource) update(data acceptance.TestData) string { From ebd476d94b539534c4a1779f9e31d67c750896f5 Mon Sep 17 00:00:00 2001 From: jackofallops Date: Fri, 15 Sep 2023 11:40:31 +0200 Subject: [PATCH 196/336] rework to cater for multiple auth blocks --- .../container_app_resource_test.go | 34 +- .../containerapps/helpers/container_apps.go | 472 +++++++++++++----- 2 files changed, 384 insertions(+), 122 deletions(-) diff --git a/internal/services/containerapps/container_app_resource_test.go b/internal/services/containerapps/container_app_resource_test.go index 8dd2e7e271fb..e4a1e48a5266 100644 --- a/internal/services/containerapps/container_app_resource_test.go +++ b/internal/services/containerapps/container_app_resource_test.go @@ -1431,8 +1431,10 @@ resource "azurerm_container_app" "test" { queue_name = "foo" queue_length = 10 - authentication_secret_reference = "queue-auth-secret" - authentication_trigger_parameter = "blah" + authentication { + secret_name = "queue-auth-secret" + trigger_parameter = "password" + } } custom_scale_rule { @@ -1485,8 +1487,10 @@ resource "azurerm_container_app" "test" { queue_name = "foo" queue_length = 10 - authentication_secret_reference = "queue-auth-secret" - authentication_trigger_parameter = "blah" + authentication { + secret_name = "queue-auth-secret" + trigger_parameter = "password" + } } azure_queue_scale_rule { @@ -1494,30 +1498,44 @@ resource "azurerm_container_app" "test" { queue_name = "bar" queue_length = 20 - authentication_secret_reference = "queue-auth-secret" - authentication_trigger_parameter = "blah2" + authentication { + secret_name = "queue-auth-secret" + trigger_parameter = "another_password" + } } custom_scale_rule { name = "csr-1" custom_rule_type = "rabbitmq" + metadata = { foo = "bar" } + + authentication { + secret_name = "queue-auth-secret" + trigger_parameter = "password" + } } http_scale_rule { name = "http-1" concurrent_requests = "200" - authentication_secret_reference = "queue-auth-secret" + authentication { + secret_name = "queue-auth-secret" + trigger_parameter = "password" + } } tcp_scale_rule { name = "tcp-1" concurrent_requests = "1000" - authentication_secret_reference = "queue-auth-secret" + authentication { + secret_name = "queue-auth-secret" + trigger_parameter = "password" + } } } } diff --git a/internal/services/containerapps/helpers/container_apps.go b/internal/services/containerapps/helpers/container_apps.go index 3cacab4b2e9f..4bfe4013e0ac 100644 --- a/internal/services/containerapps/helpers/container_apps.go +++ b/internal/services/containerapps/helpers/container_apps.go @@ -746,12 +746,19 @@ func ContainerTemplateSchemaComputed() *pluginsdk.Schema { Description: "The maximum number of replicas for this container.", }, - "volume": ContainerVolumeSchema(), + "azure_queue_scale_rule": AzureQueueScaleRuleSchemaComputed(), + + "custom_scale_rule": CustomScaleRuleSchemaComputed(), + + "http_scale_rule": HTTPScaleRuleSchemaComputed(), + + "tcp_scale_rule": TCPScaleRuleSchemaComputed(), + + "volume": ContainerVolumeSchemaComputed(), "revision_suffix": { - Type: pluginsdk.TypeString, - Computed: true, - Description: "The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.", + Type: pluginsdk.TypeString, + Computed: true, }, }, }, @@ -1095,6 +1102,31 @@ func ContainerVolumeSchema() *pluginsdk.Schema { } } +func ContainerVolumeSchemaComputed() *pluginsdk.Schema { + return &pluginsdk.Schema{ + Type: pluginsdk.TypeList, + Computed: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Computed: true, + }, + + "storage_type": { + Type: pluginsdk.TypeString, + Computed: true, + }, + + "storage_name": { + Type: pluginsdk.TypeString, + Computed: true, + }, + }, + }, + } +} + func expandContainerAppVolumes(input []ContainerVolume) *[]containerapps.Volume { if input == nil { return nil @@ -2370,11 +2402,10 @@ func ContainerAppProbesRemoved(metadata sdk.ResourceMetaData) bool { } type AzureQueueScaleRule struct { - Name string `tfschema:"name"` - QueueLength int `tfschema:"queue_length"` - QueueName string `tfschema:"queue_name"` - AuthSecretRef string `tfschema:"authentication_secret_reference"` - AuthTriggerParam string `tfschema:"authentication_trigger_parameter"` + Name string `tfschema:"name"` + QueueLength int `tfschema:"queue_length"` + QueueName string `tfschema:"queue_name"` + Authentications []ScaleRuleAuthentication `tfschema:"authentication"` } func AzureQueueScaleRuleSchema() *pluginsdk.Schema { @@ -2401,16 +2432,67 @@ func AzureQueueScaleRuleSchema() *pluginsdk.Schema { ValidateFunc: validation.StringIsNotEmpty, }, - "authentication_secret_reference": { - Type: pluginsdk.TypeString, - Required: true, - ValidateFunc: validate.SecretName, + "authentication": { + Type: pluginsdk.TypeList, + Required: true, + MinItems: 1, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "secret_name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validate.SecretName, + }, + + "trigger_parameter": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + }, + }, + }, + }, + }, + } +} +func AzureQueueScaleRuleSchemaComputed() *pluginsdk.Schema { + return &pluginsdk.Schema{ + Type: pluginsdk.TypeList, + Computed: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Computed: true, }, - "authentication_trigger_parameter": { - Type: pluginsdk.TypeString, - Required: true, - ValidateFunc: validation.StringIsNotEmpty, + "queue_length": { + Type: pluginsdk.TypeInt, + Computed: true, + }, + + "queue_name": { + Type: pluginsdk.TypeString, + Computed: true, + }, + + "authentication": { + Type: pluginsdk.TypeList, + Computed: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "secret_name": { + Type: pluginsdk.TypeString, + Computed: true, + }, + + "trigger_parameter": { + Type: pluginsdk.TypeString, + Computed: true, + }, + }, + }, }, }, }, @@ -2418,11 +2500,10 @@ func AzureQueueScaleRuleSchema() *pluginsdk.Schema { } type CustomScaleRule struct { - Name string `tfschema:"name"` - Metadata map[string]string `tfschema:"metadata"` - CustomRuleType string `tfschema:"custom_rule_type"` - AuthSecretRef string `tfschema:"authentication_secret_reference"` - AuthTriggerParam string `tfschema:"authentication_trigger_parameter"` + Name string `tfschema:"name"` + Metadata map[string]string `tfschema:"metadata"` + CustomRuleType string `tfschema:"custom_rule_type"` + Authentications []ScaleRuleAuthentication `tfschema:"authentication"` } func CustomScaleRuleSchema() *pluginsdk.Schema { @@ -2464,16 +2545,68 @@ func CustomScaleRuleSchema() *pluginsdk.Schema { }, false), // Note - this can be any KEDA compatible source in a user's environment }, - "authentication_secret_reference": { - Type: pluginsdk.TypeString, - Optional: true, - ValidateFunc: validate.SecretName, + "authentication": { + Type: pluginsdk.TypeList, + Optional: true, + MinItems: 1, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "secret_name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validate.SecretName, + }, + + "trigger_parameter": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + }, + }, }, + }, + }, + } +} - "authentication_trigger_parameter": { - Type: pluginsdk.TypeString, - Optional: true, - ValidateFunc: validation.StringIsNotEmpty, +func CustomScaleRuleSchemaComputed() *pluginsdk.Schema { + return &pluginsdk.Schema{ + Type: pluginsdk.TypeList, + Optional: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Computed: true, + }, + + "metadata": { + Type: pluginsdk.TypeMap, + Computed: true, + }, + + "custom_rule_type": { + Type: pluginsdk.TypeString, + Computed: true, + }, + + "authentication": { + Type: pluginsdk.TypeList, + Computed: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "secret_name": { + Type: pluginsdk.TypeString, + Computed: true, + }, + + "trigger_parameter": { + Type: pluginsdk.TypeString, + Computed: true, + }, + }, + }, }, }, }, @@ -2481,10 +2614,9 @@ func CustomScaleRuleSchema() *pluginsdk.Schema { } type HTTPScaleRule struct { - Name string `tfschema:"name"` - ConcurrentRequests string `tfschema:"concurrent_requests"` - AuthSecretRef string `tfschema:"authentication_secret_reference"` - AuthTriggerParam string `tfschema:"authentication_trigger_parameter"` + Name string `tfschema:"name"` + ConcurrentRequests string `tfschema:"concurrent_requests"` + Authentications []ScaleRuleAuthentication `tfschema:"authentication"` } func HTTPScaleRuleSchema() *pluginsdk.Schema { @@ -2505,16 +2637,63 @@ func HTTPScaleRuleSchema() *pluginsdk.Schema { ValidateFunc: nil, // TODO - str value for int }, - "authentication_secret_reference": { - Type: pluginsdk.TypeString, - Optional: true, - ValidateFunc: validate.SecretName, + "authentication": { + Type: pluginsdk.TypeList, + Optional: true, + MinItems: 1, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "secret_name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validate.SecretName, + }, + + "trigger_parameter": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + }, + }, }, + }, + }, + } +} - "authentication_trigger_parameter": { - Type: pluginsdk.TypeString, - Optional: true, - ValidateFunc: validation.StringIsNotEmpty, +func HTTPScaleRuleSchemaComputed() *pluginsdk.Schema { + return &pluginsdk.Schema{ + Type: pluginsdk.TypeList, + Computed: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Computed: true, + }, + + "concurrent_requests": { + Type: pluginsdk.TypeString, + Computed: true, + }, + + "authentication": { + Type: pluginsdk.TypeList, + Computed: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "secret_name": { + Type: pluginsdk.TypeString, + Computed: true, + }, + + "trigger_parameter": { + Type: pluginsdk.TypeString, + Computed: true, + }, + }, + }, }, }, }, @@ -2522,10 +2701,9 @@ func HTTPScaleRuleSchema() *pluginsdk.Schema { } type TCPScaleRule struct { - Name string `tfschema:"name"` - ConcurrentRequests string `tfschema:"concurrent_requests"` - AuthSecretRef string `tfschema:"authentication_secret_reference"` - AuthTriggerParam string `tfschema:"authentication_trigger_parameter"` + Name string `tfschema:"name"` + ConcurrentRequests string `tfschema:"concurrent_requests"` + Authentications []ScaleRuleAuthentication `tfschema:"authentication"` } func TCPScaleRuleSchema() *pluginsdk.Schema { @@ -2546,22 +2724,74 @@ func TCPScaleRuleSchema() *pluginsdk.Schema { ValidateFunc: nil, // TODO Validation for int as str }, - "authentication_secret_reference": { - Type: pluginsdk.TypeString, - Optional: true, - ValidateFunc: validate.SecretName, + "authentication": { + Type: pluginsdk.TypeList, + Optional: true, + MinItems: 1, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "secret_name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validate.SecretName, + }, + + "trigger_parameter": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + }, + }, }, + }, + }, + } +} - "authentication_trigger_parameter": { - Type: pluginsdk.TypeString, - Optional: true, - ValidateFunc: validation.StringIsNotEmpty, +func TCPScaleRuleSchemaComputed() *pluginsdk.Schema { + return &pluginsdk.Schema{ + Type: pluginsdk.TypeList, + Computed: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Computed: true, + }, + + "concurrent_requests": { + Type: pluginsdk.TypeString, + Computed: true, + }, + + "authentication": { + Type: pluginsdk.TypeList, + Computed: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "secret_name": { + Type: pluginsdk.TypeString, + Computed: true, + }, + + "trigger_parameter": { + Type: pluginsdk.TypeString, + Computed: true, + }, + }, + }, }, }, }, } } +type ScaleRuleAuthentication struct { + SecretRef string `tfschema:"secret_name"` + TriggerParam string `tfschema:"trigger_parameter"` +} + func (c *ContainerTemplate) expandContainerAppScaleRules() []containerapps.ScaleRule { if len(c.AzureQueueScaleRules) == 0 && len(c.CustomScaleRules) == 0 && len(c.HTTPScaleRules) == 0 && len(c.TCPScaleRules) == 0 { return nil @@ -2573,22 +2803,20 @@ func (c *ContainerTemplate) expandContainerAppScaleRules() []containerapps.Scale AzureQueue: &containerapps.QueueScaleRule{ QueueLength: pointer.To(int64(v.QueueLength)), QueueName: pointer.To(v.QueueName), - Auth: &[]containerapps.ScaleRuleAuth{}, }, } - if v.AuthSecretRef != "" || v.AuthTriggerParam != "" { - auth := containerapps.ScaleRuleAuth{} - if v.AuthTriggerParam != "" { - auth.TriggerParameter = pointer.To(v.AuthTriggerParam) + auths := make([]containerapps.ScaleRuleAuth, 0) + for _, a := range v.Authentications { + auth := containerapps.ScaleRuleAuth{ + TriggerParameter: pointer.To(a.TriggerParam), + SecretRef: pointer.To(a.SecretRef), } + auths = append(auths, auth) + } - if v.AuthSecretRef != "" { - auth.SecretRef = pointer.To(v.AuthSecretRef) - } + r.AzureQueue.Auth = pointer.To(auths) - r.AzureQueue.Auth = pointer.To([]containerapps.ScaleRuleAuth{auth}) - } result = append(result, r) } @@ -2601,18 +2829,17 @@ func (c *ContainerTemplate) expandContainerAppScaleRules() []containerapps.Scale }, } - if v.AuthSecretRef != "" || v.AuthTriggerParam != "" { - auth := containerapps.ScaleRuleAuth{} - if v.AuthTriggerParam != "" { - auth.TriggerParameter = pointer.To(v.AuthTriggerParam) + auths := make([]containerapps.ScaleRuleAuth, 0) + for _, a := range v.Authentications { + auth := containerapps.ScaleRuleAuth{ + TriggerParameter: pointer.To(a.TriggerParam), + SecretRef: pointer.To(a.SecretRef), } + auths = append(auths, auth) + } - if v.AuthSecretRef != "" { - auth.SecretRef = pointer.To(v.AuthSecretRef) - } + r.Custom.Auth = pointer.To(auths) - r.Custom.Auth = pointer.To([]containerapps.ScaleRuleAuth{auth}) - } result = append(result, r) } @@ -2626,18 +2853,17 @@ func (c *ContainerTemplate) expandContainerAppScaleRules() []containerapps.Scale }, } - if v.AuthSecretRef != "" || v.AuthTriggerParam != "" { - auth := containerapps.ScaleRuleAuth{} - if v.AuthTriggerParam != "" { - auth.TriggerParameter = pointer.To(v.AuthTriggerParam) + auths := make([]containerapps.ScaleRuleAuth, 0) + for _, a := range v.Authentications { + auth := containerapps.ScaleRuleAuth{ + TriggerParameter: pointer.To(a.TriggerParam), + SecretRef: pointer.To(a.SecretRef), } + auths = append(auths, auth) + } - if v.AuthSecretRef != "" { - auth.SecretRef = pointer.To(v.AuthSecretRef) - } + r.HTTP.Auth = pointer.To(auths) - r.HTTP.Auth = pointer.To([]containerapps.ScaleRuleAuth{auth}) - } result = append(result, r) } @@ -2651,18 +2877,17 @@ func (c *ContainerTemplate) expandContainerAppScaleRules() []containerapps.Scale }, } - if v.AuthSecretRef != "" || v.AuthTriggerParam != "" { - auth := containerapps.ScaleRuleAuth{} - if v.AuthTriggerParam != "" { - auth.TriggerParameter = pointer.To(v.AuthTriggerParam) + auths := make([]containerapps.ScaleRuleAuth, 0) + for _, a := range v.Authentications { + auth := containerapps.ScaleRuleAuth{ + TriggerParameter: pointer.To(a.TriggerParam), + SecretRef: pointer.To(a.SecretRef), } + auths = append(auths, auth) + } - if v.AuthSecretRef != "" { - auth.SecretRef = pointer.To(v.AuthSecretRef) - } + r.Tcp.Auth = pointer.To(auths) - r.Tcp.Auth = pointer.To([]containerapps.ScaleRuleAuth{auth}) - } result = append(result, r) } @@ -2684,30 +2909,39 @@ func (c *ContainerTemplate) flattenContainerAppScaleRules(input *[]containerapps QueueName: pointer.From(q.QueueName), } - if q.Auth != nil && len(*q.Auth) != 0 { - auth := (*q.Auth)[0] - rule.AuthSecretRef = pointer.From(auth.SecretRef) - rule.AuthTriggerParam = pointer.From(auth.TriggerParameter) + authentications := make([]ScaleRuleAuthentication, 0) + if auths := q.Auth; auths != nil { + for _, a := range *auths { + authentications = append(authentications, ScaleRuleAuthentication{ + SecretRef: pointer.From(a.SecretRef), + TriggerParam: pointer.From(a.TriggerParameter), + }) + } } + rule.Authentications = authentications + azureQueueScaleRules = append(azureQueueScaleRules, rule) continue } if r := v.Custom; r != nil { rule := CustomScaleRule{ - Name: pointer.From(v.Name), - Metadata: pointer.From(r.Metadata), - CustomRuleType: pointer.From(r.Type), - AuthSecretRef: "", - AuthTriggerParam: "", + Name: pointer.From(v.Name), + Metadata: pointer.From(r.Metadata), + CustomRuleType: pointer.From(r.Type), } - if r.Auth != nil && len(*r.Auth) != 0 { - auth := (*r.Auth)[0] - rule.AuthSecretRef = pointer.From(auth.SecretRef) - rule.AuthTriggerParam = pointer.From(auth.TriggerParameter) + authentications := make([]ScaleRuleAuthentication, 0) + if auths := r.Auth; auths != nil { + for _, a := range *auths { + authentications = append(authentications, ScaleRuleAuthentication{ + SecretRef: pointer.From(a.SecretRef), + TriggerParam: pointer.From(a.TriggerParameter), + }) + } } + rule.Authentications = authentications customScaleRules = append(customScaleRules, rule) continue @@ -2724,16 +2958,20 @@ func (c *ContainerTemplate) flattenContainerAppScaleRules(input *[]containerapps rule := HTTPScaleRule{ Name: pointer.From(v.Name), ConcurrentRequests: concurrentReqs, - AuthSecretRef: "", - AuthTriggerParam: "", } - if r.Auth != nil && len(*r.Auth) != 0 { - auth := (*r.Auth)[0] - rule.AuthSecretRef = pointer.From(auth.SecretRef) - rule.AuthTriggerParam = pointer.From(auth.TriggerParameter) + authentications := make([]ScaleRuleAuthentication, 0) + if auths := r.Auth; auths != nil { + for _, a := range *auths { + authentications = append(authentications, ScaleRuleAuthentication{ + SecretRef: pointer.From(a.SecretRef), + TriggerParam: pointer.From(a.TriggerParameter), + }) + } } + rule.Authentications = authentications + httpScaleRules = append(httpScaleRules, rule) continue } @@ -2751,11 +2989,17 @@ func (c *ContainerTemplate) flattenContainerAppScaleRules(input *[]containerapps ConcurrentRequests: concurrentReqs, } - if r.Auth != nil && len(*r.Auth) != 0 { - auth := (*r.Auth)[0] - rule.AuthSecretRef = pointer.From(auth.SecretRef) - rule.AuthTriggerParam = pointer.From(auth.TriggerParameter) + authentications := make([]ScaleRuleAuthentication, 0) + if auths := r.Auth; auths != nil { + for _, a := range *auths { + authentications = append(authentications, ScaleRuleAuthentication{ + SecretRef: pointer.From(a.SecretRef), + TriggerParam: pointer.From(a.TriggerParameter), + }) + } } + rule.Authentications = authentications + tcpScaleRules = append(tcpScaleRules, rule) continue } From 9185e1b17eb6ba076da18dbac7b2a024bd5e7f9c Mon Sep 17 00:00:00 2001 From: jackofallops Date: Fri, 15 Sep 2023 11:52:12 +0200 Subject: [PATCH 197/336] add docs update for scale rules --- .../containerapps/helpers/container_apps.go | 3 + website/docs/r/container_app.html.markdown | 60 +++++++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/internal/services/containerapps/helpers/container_apps.go b/internal/services/containerapps/helpers/container_apps.go index 4bfe4013e0ac..95d7a1ce218d 100644 --- a/internal/services/containerapps/helpers/container_apps.go +++ b/internal/services/containerapps/helpers/container_apps.go @@ -2584,6 +2584,9 @@ func CustomScaleRuleSchemaComputed() *pluginsdk.Schema { "metadata": { Type: pluginsdk.TypeMap, Computed: true, + Elem: &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + }, }, "custom_rule_type": { diff --git a/website/docs/r/container_app.html.markdown b/website/docs/r/container_app.html.markdown index c5ab110a8469..5394f1f43521 100644 --- a/website/docs/r/container_app.html.markdown +++ b/website/docs/r/container_app.html.markdown @@ -97,12 +97,72 @@ A `template` block supports the following: * `min_replicas` - (Optional) The minimum number of replicas for this container. +* `azure_queue_scale_rule` - (Optional) One or more `azure_queue_scale_rule` blocks as defined below. + +* `custom_scale_rule` - (Optional) One or more `custom_scale_rule` blocks as defined below. + +* `http_scale_rule` - (Optional) One or more `http_scale_rule` blocks as defined below. + +* `tcp_scale_rule` - (Optional) One or more `tcp_scale_rule` blocks as defined below. + * `revision_suffix` - (Optional) The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one. * `volume` - (Optional) A `volume` block as detailed below. --- +An `azure_queue_scale_rule` block supports the following: + +* `name` - (Required) The name of the Scaling Rule + +* `queue_name` - (Required) The name of the Azure Queue + +* `queue_length` - (Required) The value of the length of the queue to trigger scaling actions. + +* `authentication` - (Required) One or more `authentication` blocks as defined below. + +--- + +A `custom_scale_rule` block supports the following: + +* `name` - (Required) The name of the Scaling Rule + +* `custom_rule_type` - (Required) The Custom rule type. Possible values include: `activemq`, `artemis-queue`, `kafka`, `pulsar`, `aws-cloudwatch`, `aws-dynamodb`, `aws-dynamodb-streams`, `aws-kinesis-stream`, `aws-sqs-queue`, `azure-app-insights`, `azure-blob`, `azure-data-explorer`, `azure-eventhub`, `azure-log-analytics`, `azure-monitor`, `azure-pipelines`, `azure-servicebus`, `azure-queue`, `cassandra`, `cpu`, `cron`, `datadog`, `elasticsearch`, `external`, `external-push`, `gcp-stackdriver`, `gcp-storage`, `gcp-pubsub`, `graphite`, `http`, `huawei-cloudeye`, `ibmmq`, `influxdb`, `kubernetes-workload`, `liiklus`, `memory`, `metrics-api`, `mongodb`, `mssql`, `mysql`, `nats-jetstream`, `stan`, `tcp`, `new-relic`, `openstack-metric`, `openstack-swift`, `postgresql`, `predictkube`, `prometheus`, `rabbitmq`, `redis`, `redis-cluster`, `redis-sentinel`, `redis-streams`, `redis-cluster-streams`, `redis-sentinel-streams`, `selenium-grid`,`solace-event-queue`, and `github-runner`. + +* `metadata`- (Required) - A map of string key-value pairs to configure the Custom Scale Rule. + +* `authentication` - (Optional) Zero or more `authentication` blocks as defined below. + +--- + +A `http_scale_rule` block supports the following: + +* `name` - (Required) The name of the Scaling Rule + +* `concurrent_requests`- (Required) - The number of concurrent requests to trigger scaling. + +* `authentication` - (Optional) Zero or more `authentication` blocks as defined below. + +--- + +A `tcp_scale_rule` block supports the following: + +* `name` - (Required) The name of the Scaling Rule + +* `concurrent_requests`- (Required) - The number of concurrent requests to trigger scaling. + +* `authentication` - (Optional) Zero or more `authentication` blocks as defined below. + +--- + +An `authentication` block supports the following: + +* `secret_name` - (Required) The name of the Container App Secret to use for this Scale Rule Authentication. + +* `trigger_parameter` - (Required) The Trigger Parameter name to use the supply the value retrieved from the `secret_name`. + +--- + A `volume` block supports the following: * `name` - (Required) The name of the volume. From f14aaf514d565f80a5728ff50acc0ff909ab8acc Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Fri, 15 Sep 2023 13:28:52 -0700 Subject: [PATCH 198/336] dependencies - swap Virtual Machine Scale Set Ids for `hashicorp/go-azure-helpers/commonids` (#23272) --- internal/services/compute/client/client.go | 8 +- .../services/compute/image_resource_test.go | 6 +- .../compute/linux_virtual_machine_resource.go | 3 +- ...inux_virtual_machine_scale_set_resource.go | 62 ++--- ...l_machine_scale_set_resource_other_test.go | 8 +- ...virtual_machine_scale_set_resource_test.go | 8 +- ...d_virtual_machine_scale_set_data_source.go | 6 +- ...ated_virtual_machine_scale_set_resource.go | 74 +++--- ...machine_scale_set_resource_network_test.go | 6 +- ...virtual_machine_scale_set_resource_test.go | 14 +- .../parse/virtual_machine_scale_set.go | 116 --------- .../parse/virtual_machine_scale_set_test.go | 232 ------------------ internal/services/compute/resourceids.go | 1 - .../validate/virtual_machine_scale_set_id.go | 26 -- .../virtual_machine_scale_set_id_test.go | 79 ------ .../virtual_machine_scale_set_data_source.go | 14 +- ...al_machine_scale_set_extension_resource.go | 8 +- .../virtual_machine_scale_set_import.go | 22 +- .../virtual_machine_scale_set_update.go | 48 ++-- .../windows_virtual_machine_resource.go | 3 +- ...dows_virtual_machine_scale_set_resource.go | 62 ++--- ...l_machine_scale_set_resource_other_test.go | 8 +- ...virtual_machine_scale_set_resource_test.go | 8 +- .../virtual_machine_scale_set_resource.go | 27 +- ...virtual_machine_scale_set_resource_test.go | 20 +- ...ment_virtual_machine_scale_set_resource.go | 11 +- ...ment_virtual_machine_scale_set_v0_to_v1.go | 4 +- ...ce_assignment_virtual_machine_scale_set.go | 6 +- ...signment_virtual_machine_scale_set_test.go | 10 +- ...chine_scale_set_packet_capture_resource.go | 3 +- .../site_recovery_replicated_vm_resource.go | 6 +- 31 files changed, 226 insertions(+), 683 deletions(-) delete mode 100644 internal/services/compute/parse/virtual_machine_scale_set.go delete mode 100644 internal/services/compute/parse/virtual_machine_scale_set_test.go delete mode 100644 internal/services/compute/validate/virtual_machine_scale_set_id.go delete mode 100644 internal/services/compute/validate/virtual_machine_scale_set_id_test.go diff --git a/internal/services/compute/client/client.go b/internal/services/compute/client/client.go index 33030a1779ba..796ae11379d6 100644 --- a/internal/services/compute/client/client.go +++ b/internal/services/compute/client/client.go @@ -9,6 +9,7 @@ import ( "log" "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2021-07-01/skus" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2021-11-01/availabilitysets" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2021-11-01/dedicatedhostgroups" @@ -29,7 +30,6 @@ import ( "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/go-azure-sdk/resource-manager/marketplaceordering/2015-06-01/agreements" "github.com/hashicorp/terraform-provider-azurerm/internal/common" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/utils" "github.com/tombuildsstuff/kermit/sdk/compute/2023-03-01/compute" ) @@ -251,8 +251,8 @@ func NewClient(o *common.ClientOptions) (*Client, error) { }, nil } -func (c *Client) CancelRollingUpgradesBeforeDeletion(ctx context.Context, id parse.VirtualMachineScaleSetId) error { - resp, err := c.VMScaleSetRollingUpgradesClient.GetLatest(ctx, id.ResourceGroup, id.Name) +func (c *Client) CancelRollingUpgradesBeforeDeletion(ctx context.Context, id commonids.VirtualMachineScaleSetId) error { + resp, err := c.VMScaleSetRollingUpgradesClient.GetLatest(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName) if err != nil { // No rolling upgrades are running so skipping attempt to cancel them before deletion if utils.ResponseWasNotFound(resp.Response) { @@ -271,7 +271,7 @@ func (c *Client) CancelRollingUpgradesBeforeDeletion(ctx context.Context, id par return nil } - future, err := c.VMScaleSetRollingUpgradesClient.Cancel(ctx, id.ResourceGroup, id.Name) + future, err := c.VMScaleSetRollingUpgradesClient.Cancel(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName) if err != nil { // If there is no rolling upgrade the API will throw a 409/No rolling upgrade to cancel // we don't error out in this case diff --git a/internal/services/compute/image_resource_test.go b/internal/services/compute/image_resource_test.go index 748e59c779df..7ae8f5a51115 100644 --- a/internal/services/compute/image_resource_test.go +++ b/internal/services/compute/image_resource_test.go @@ -12,13 +12,13 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2021-11-01/virtualmachines" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2022-03-01/images" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/ssh" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" networkParse "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" @@ -332,13 +332,13 @@ func (ImageResource) virtualMachineExists(ctx context.Context, client *clients.C } func (ImageResource) virtualMachineScaleSetExists(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) error { - id, err := parse.VirtualMachineScaleSetID(state.ID) + id, err := commonids.ParseVirtualMachineScaleSetID(state.ID) if err != nil { return err } // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - resp, err := client.Compute.VMScaleSetClient.Get(ctx, id.ResourceGroup, id.Name, "") + resp, err := client.Compute.VMScaleSetClient.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, "") if err != nil { if utils.ResponseWasNotFound(resp.Response) { return fmt.Errorf("%s does not exist", *id) diff --git a/internal/services/compute/linux_virtual_machine_resource.go b/internal/services/compute/linux_virtual_machine_resource.go index f33b4569c80a..a6f0a0a0cb16 100644 --- a/internal/services/compute/linux_virtual_machine_resource.go +++ b/internal/services/compute/linux_virtual_machine_resource.go @@ -11,6 +11,7 @@ import ( "time" "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2021-11-01/availabilitysets" @@ -337,7 +338,7 @@ func resourceLinuxVirtualMachine() *pluginsdk.Resource { ConflictsWith: []string{ "availability_set_id", }, - ValidateFunc: computeValidate.VirtualMachineScaleSetID, + ValidateFunc: commonids.ValidateVirtualMachineScaleSetID, }, "vtpm_enabled": { diff --git a/internal/services/compute/linux_virtual_machine_scale_set_resource.go b/internal/services/compute/linux_virtual_machine_scale_set_resource.go index bd69b717bbd7..815d28fcaf00 100644 --- a/internal/services/compute/linux_virtual_machine_scale_set_resource.go +++ b/internal/services/compute/linux_virtual_machine_scale_set_resource.go @@ -8,6 +8,7 @@ import ( "log" "time" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/zones" @@ -20,7 +21,6 @@ import ( azValidate "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/features" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tags" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/base64" @@ -40,7 +40,7 @@ func resourceLinuxVirtualMachineScaleSet() *pluginsdk.Resource { Delete: resourceLinuxVirtualMachineScaleSetDelete, Importer: pluginsdk.ImporterValidatingResourceIdThen(func(id string) error { - _, err := parse.VirtualMachineScaleSetID(id) + _, err := commonids.ParseVirtualMachineScaleSetID(id) return err }, importVirtualMachineScaleSet(compute.OperatingSystemTypesLinux, "azurerm_linux_virtual_machine_scale_set")), @@ -64,10 +64,10 @@ func resourceLinuxVirtualMachineScaleSetCreate(d *pluginsdk.ResourceData, meta i ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() - id := parse.NewVirtualMachineScaleSetID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + id := commonids.NewVirtualMachineScaleSetID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) // Upgrading to the 2021-07-01 exposed a new expand parameter to the GET method - exists, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + exists, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { if !utils.ResponseWasNotFound(exists.Response) { return fmt.Errorf("checking for existing Linux %s: %+v", id, err) @@ -159,7 +159,7 @@ func resourceLinuxVirtualMachineScaleSetCreate(d *pluginsdk.ResourceData, meta i if len(errs) > 0 { return fmt.Errorf("unable to assume default computer name prefix %s. Please adjust the %q, or specify an explicit %q", errs[0], "name", "computer_name_prefix") } - computerNamePrefix = id.Name + computerNamePrefix = id.VirtualMachineScaleSetName } disablePasswordAuthentication := d.Get("disable_password_authentication").(bool) @@ -445,7 +445,7 @@ func resourceLinuxVirtualMachineScaleSetCreate(d *pluginsdk.ResourceData, meta i } log.Printf("[DEBUG] Creating Linux %s", id) - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.Name, props) + future, err := client.CreateOrUpdate(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, props) if err != nil { return fmt.Errorf("creating Linux %s: %+v", id, err) } @@ -466,7 +466,7 @@ func resourceLinuxVirtualMachineScaleSetUpdate(d *pluginsdk.ResourceData, meta i ctx, cancel := timeouts.ForUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineScaleSetID(d.Id()) + id, err := commonids.ParseVirtualMachineScaleSetID(d.Id()) if err != nil { return err } @@ -475,18 +475,18 @@ func resourceLinuxVirtualMachineScaleSetUpdate(d *pluginsdk.ResourceData, meta i // retrieve // Upgrading to the 2021-07-01 exposed a new expand parameter to the GET method - existing, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + existing, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { - return fmt.Errorf("retrieving Linux Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Linux %s: %+v", id, err) } if existing.VirtualMachineScaleSetProperties == nil { - return fmt.Errorf("retrieving Linux Virtual Machine Scale Set %q (Resource Group %q): `properties` was nil", id.Name, id.ResourceGroup) + return fmt.Errorf("retrieving Linux %s: `properties` was nil", id) } if existing.VirtualMachineScaleSetProperties.VirtualMachineProfile == nil { - return fmt.Errorf("retrieving Linux Virtual Machine Scale Set %q (Resource Group %q): `properties.virtualMachineProfile` was nil", id.Name, id.ResourceGroup) + return fmt.Errorf("retrieving Linux %s: `properties.virtualMachineProfile` was nil", id) } if existing.VirtualMachineScaleSetProperties.VirtualMachineProfile.StorageProfile == nil { - return fmt.Errorf("retrieving Linux Virtual Machine Scale Set %q (Resource Group %q): `properties.virtualMachineProfile,storageProfile` was nil", id.Name, id.ResourceGroup) + return fmt.Errorf("retrieving Linux %s: `properties.virtualMachineProfile,storageProfile` was nil", id) } updateProps := compute.VirtualMachineScaleSetUpdateProperties{ @@ -808,25 +808,25 @@ func resourceLinuxVirtualMachineScaleSetRead(d *pluginsdk.ResourceData, meta int ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineScaleSetID(d.Id()) + id, err := commonids.ParseVirtualMachineScaleSetID(d.Id()) if err != nil { return err } // Upgrading to the 2021-07-01 exposed a new expand parameter to the GET method - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { if utils.ResponseWasNotFound(resp.Response) { - log.Printf("[DEBUG] Linux Virtual Machine Scale Set %q was not found in Resource Group %q - removing from state!", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Linux %s - removing from state!", id) d.SetId("") return nil } - return fmt.Errorf("retrieving Linux Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Linux %s: %+v", id, err) } - d.Set("name", id.Name) - d.Set("resource_group_name", id.ResourceGroup) + d.Set("name", id.VirtualMachineScaleSetName) + d.Set("resource_group_name", id.ResourceGroupName) d.Set("location", location.NormalizeNilable(resp.Location)) d.Set("edge_zone", flattenEdgeZone(resp.ExtendedLocation)) d.Set("zones", zones.FlattenUntyped(resp.Zones)) @@ -855,7 +855,7 @@ func resourceLinuxVirtualMachineScaleSetRead(d *pluginsdk.ResourceData, meta int } if resp.VirtualMachineScaleSetProperties == nil { - return fmt.Errorf("retrieving Linux Virtual Machine Scale Set %q (Resource Group %q): `properties` was nil", id.Name, id.ResourceGroup) + return fmt.Errorf("retrieving Linux %s: `properties` was nil", id) } props := *resp.VirtualMachineScaleSetProperties @@ -1075,19 +1075,19 @@ func resourceLinuxVirtualMachineScaleSetDelete(d *pluginsdk.ResourceData, meta i ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineScaleSetID(d.Id()) + id, err := commonids.ParseVirtualMachineScaleSetID(d.Id()) if err != nil { return err } // Upgrading to the 2021-07-01 exposed a new expand parameter to the GET method - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { if utils.ResponseWasNotFound(resp.Response) { return nil } - return fmt.Errorf("retrieving Linux Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Linux %s: %+v", id, err) } // If rolling upgrades are configured and running we need to cancel them before trying to delete the VMSS @@ -1109,36 +1109,36 @@ func resourceLinuxVirtualMachineScaleSetDelete(d *pluginsdk.ResourceData, meta i update := compute.VirtualMachineScaleSetUpdate{ Sku: resp.Sku, } - future, err := client.Update(ctx, id.ResourceGroup, id.Name, update) + future, err := client.Update(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, update) if err != nil { - return fmt.Errorf("updating number of instances in Linux Virtual Machine Scale Set %q (Resource Group %q) to scale to 0: %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("updating number of instances in %s to scale to 0: %+v", id, err) } log.Printf("[DEBUG] Waiting for scaling of instances to 0 prior to deletion - this helps avoids networking issues within Azure") err = future.WaitForCompletionRef(ctx, client.Client) if err != nil { - return fmt.Errorf("waiting for number of instances in Linux Virtual Machine Scale Set %q (Resource Group %q) to scale to 0: %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for number of instances in Linux %s to scale to 0: %+v", id, err) } log.Printf("[DEBUG] Scaled instances to 0 prior to deletion - this helps avoids networking issues within Azure") } else { log.Printf("[DEBUG] Unable to scale instances to `0` since the `sku` block is nil - trying to delete anyway") } - log.Printf("[DEBUG] Deleting Linux Virtual Machine Scale Set %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deleting Linux %s", id) // @ArcturusZhang (mimicking from linux_virtual_machine_pluginsdk.go): sending `nil` here omits this value from being sent // which matches the previous behaviour - we're only splitting this out so it's clear why // TODO: support force deletion once it's out of Preview, if applicable var forceDeletion *bool = nil - future, err := client.Delete(ctx, id.ResourceGroup, id.Name, forceDeletion) + future, err := client.Delete(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, forceDeletion) if err != nil { - return fmt.Errorf("deleting Linux Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("deleting Linux %s: %+v", id, err) } - log.Printf("[DEBUG] Waiting for deletion of Linux Virtual Machine Scale Set %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Waiting for deletion of Linux %s", id) if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for deletion of Linux Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for deletion of Linux %s: %+v", id, err) } - log.Printf("[DEBUG] Deleted Linux Virtual Machine Scale Set %q (Resource Group %q).", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deleted Linux %s", id) return nil } diff --git a/internal/services/compute/linux_virtual_machine_scale_set_resource_other_test.go b/internal/services/compute/linux_virtual_machine_scale_set_resource_other_test.go index 5cd7216f487a..867c46ace0c6 100644 --- a/internal/services/compute/linux_virtual_machine_scale_set_resource_other_test.go +++ b/internal/services/compute/linux_virtual_machine_scale_set_resource_other_test.go @@ -10,11 +10,11 @@ import ( "testing" "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/terraform-plugin-testing/terraform" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/tombuildsstuff/kermit/sdk/compute/2023-03-01/compute" ) @@ -803,12 +803,12 @@ func TestAccLinuxVirtualMachineScaleSet_otherCancelRollingUpgrades(t *testing.T) // and simulates the scenario where rolling upgrades are running when we try to delete a VMSS client := clients.Compute.VMScaleSetClient - id, err := parse.VirtualMachineScaleSetID(state.Attributes["id"]) + id, err := commonids.ParseVirtualMachineScaleSetID(state.Attributes["id"]) if err != nil { return err } - existing, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + existing, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { return fmt.Errorf("retrieving %s: %+v", *id, err) } @@ -834,7 +834,7 @@ func TestAccLinuxVirtualMachineScaleSet_otherCancelRollingUpgrades(t *testing.T) VirtualMachineScaleSetUpdateProperties: &updateProps, } - if _, err := client.Update(ctx, id.ResourceGroup, id.Name, update); err != nil { + if _, err := client.Update(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, update); err != nil { return fmt.Errorf("updating %s: %+v", *id, err) } diff --git a/internal/services/compute/linux_virtual_machine_scale_set_resource_test.go b/internal/services/compute/linux_virtual_machine_scale_set_resource_test.go index f6140866a1d5..30f455ce738e 100644 --- a/internal/services/compute/linux_virtual_machine_scale_set_resource_test.go +++ b/internal/services/compute/linux_virtual_machine_scale_set_resource_test.go @@ -7,9 +7,9 @@ import ( "context" "fmt" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" ) @@ -17,14 +17,14 @@ import ( type LinuxVirtualMachineScaleSetResource struct{} func (r LinuxVirtualMachineScaleSetResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { - id, err := parse.VirtualMachineScaleSetID(state.ID) + id, err := commonids.ParseVirtualMachineScaleSetID(state.ID) if err != nil { return nil, err } - resp, err := clients.Compute.VMScaleSetClient.Get(ctx, id.ResourceGroup, id.Name, "") + resp, err := clients.Compute.VMScaleSetClient.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, "") if err != nil { - return nil, fmt.Errorf("retrieving Compute Linux Virtual Machine Scale Set %q: %+v", id, err) + return nil, fmt.Errorf("retrieving Linux %s: %+v", id, err) } return utils.Bool(resp.ID != nil), nil diff --git a/internal/services/compute/orchestrated_virtual_machine_scale_set_data_source.go b/internal/services/compute/orchestrated_virtual_machine_scale_set_data_source.go index a34f57fd48b8..7f044b3e6aa3 100644 --- a/internal/services/compute/orchestrated_virtual_machine_scale_set_data_source.go +++ b/internal/services/compute/orchestrated_virtual_machine_scale_set_data_source.go @@ -8,11 +8,11 @@ import ( "fmt" "time" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" @@ -149,9 +149,9 @@ func (r OrchestratedVirtualMachineScaleSetDataSource) Read() sdk.ResourceFunc { return err } - id := parse.NewVirtualMachineScaleSetID(subscriptionId, orchestratedVMSS.ResourceGroup, orchestratedVMSS.Name) + id := commonids.NewVirtualMachineScaleSetID(subscriptionId, orchestratedVMSS.ResourceGroup, orchestratedVMSS.Name) - existing, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + existing, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { if utils.ResponseWasNotFound(existing.Response) { return fmt.Errorf("%s not found", id) diff --git a/internal/services/compute/orchestrated_virtual_machine_scale_set_resource.go b/internal/services/compute/orchestrated_virtual_machine_scale_set_resource.go index 9b9f647f770c..82320f6993f6 100644 --- a/internal/services/compute/orchestrated_virtual_machine_scale_set_resource.go +++ b/internal/services/compute/orchestrated_virtual_machine_scale_set_resource.go @@ -10,6 +10,7 @@ import ( "strings" "time" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/zones" @@ -22,7 +23,6 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/features" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tags" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" @@ -41,7 +41,7 @@ func resourceOrchestratedVirtualMachineScaleSet() *pluginsdk.Resource { Delete: resourceOrchestratedVirtualMachineScaleSetDelete, Importer: pluginsdk.ImporterValidatingResourceIdThen(func(id string) error { - _, err := parse.VirtualMachineScaleSetID(id) + _, err := commonids.ParseVirtualMachineScaleSetID(id) return err }, importOrchestratedVirtualMachineScaleSet), @@ -277,11 +277,11 @@ func resourceOrchestratedVirtualMachineScaleSetCreate(d *pluginsdk.ResourceData, defer cancel() isLegacy := true - id := parse.NewVirtualMachineScaleSetID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + id := commonids.NewVirtualMachineScaleSetID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) if d.IsNewResource() { // Upgrading to the 2021-07-01 exposed a new expand parameter to the GET method - existing, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + existing, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { if !utils.ResponseWasNotFound(existing.Response) { return fmt.Errorf("checking for existing %s: %+v", id, err) @@ -375,7 +375,7 @@ func resourceOrchestratedVirtualMachineScaleSetCreate(d *pluginsdk.ResourceData, } if hasHealthExtension { - log.Printf("[DEBUG] Orchestrated Virtual Machine Scale Set %q (Resource Group %q) has a Health Extension defined", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Orchestrated %s has a Health Extension defined", id) } if v, ok := d.GetOk("extensions_time_budget"); ok { @@ -423,11 +423,11 @@ func resourceOrchestratedVirtualMachineScaleSetCreate(d *pluginsdk.ResourceData, // if the Computer Prefix Name was not defined use the computer name if vmssOsProfile.ComputerNamePrefix == nil || len(*vmssOsProfile.ComputerNamePrefix) == 0 { // validate that the computer name is a valid Computer Prefix Name - _, errs := computeValidate.WindowsComputerNamePrefix(id.Name, "computer_name_prefix") + _, errs := computeValidate.WindowsComputerNamePrefix(id.VirtualMachineScaleSetName, "computer_name_prefix") if len(errs) > 0 { return fmt.Errorf("unable to assume default computer name prefix %s. Please adjust the 'name', or specify an explicit 'computer_name_prefix'", errs[0]) } - vmssOsProfile.ComputerNamePrefix = utils.String(id.Name) + vmssOsProfile.ComputerNamePrefix = utils.String(id.VirtualMachineScaleSetName) } if extensionOperationsEnabled && !provisionVMAgent { @@ -488,12 +488,12 @@ func resourceOrchestratedVirtualMachineScaleSetCreate(d *pluginsdk.ResourceData, // if the Computer Prefix Name was not defined use the computer name if vmssOsProfile.ComputerNamePrefix == nil || len(*vmssOsProfile.ComputerNamePrefix) == 0 { // validate that the computer name is a valid Computer Prefix Name - _, errs := computeValidate.LinuxComputerNamePrefix(id.Name, "computer_name_prefix") + _, errs := computeValidate.LinuxComputerNamePrefix(id.VirtualMachineScaleSetName, "computer_name_prefix") if len(errs) > 0 { return fmt.Errorf("unable to assume default computer name prefix %s. Please adjust the 'name', or specify an explicit 'computer_name_prefix'", errs[0]) } - vmssOsProfile.ComputerNamePrefix = utils.String(id.Name) + vmssOsProfile.ComputerNamePrefix = utils.String(id.VirtualMachineScaleSetName) } if extensionOperationsEnabled && !provisionVMAgent { @@ -640,7 +640,7 @@ func resourceOrchestratedVirtualMachineScaleSetCreate(d *pluginsdk.ResourceData, } log.Printf("[DEBUG] Creating Orchestrated %s.", id) - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.Name, props) + future, err := client.CreateOrUpdate(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, props) if err != nil { return fmt.Errorf("creating Orchestrated %s: %+v", id, err) } @@ -654,7 +654,7 @@ func resourceOrchestratedVirtualMachineScaleSetCreate(d *pluginsdk.ResourceData, for { log.Printf("[DEBUG] Retrying PUT %d for Orchestrated %s.", errCount, id) - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.Name, props) + future, err := client.CreateOrUpdate(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, props) if err != nil { return fmt.Errorf("creating Orchestrated %s after %d retries: %+v", id, errCount, err) } @@ -694,7 +694,7 @@ func resourceOrchestratedVirtualMachineScaleSetUpdate(d *pluginsdk.ResourceData, ctx, cancel := timeouts.ForUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineScaleSetID(d.Id()) + id, err := commonids.ParseVirtualMachineScaleSetID(d.Id()) if err != nil { return err } @@ -706,23 +706,23 @@ func resourceOrchestratedVirtualMachineScaleSetUpdate(d *pluginsdk.ResourceData, // retrieve // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - existing, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + existing, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { - return fmt.Errorf("retrieving Orchestrated Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Orchestrated %s: %+v", id, err) } if existing.Sku != nil { isLegacy = false } if existing.VirtualMachineScaleSetProperties == nil { - return fmt.Errorf("retrieving Orchestrated Virtual Machine Scale Set %q (Resource Group %q): `properties` was nil", id.Name, id.ResourceGroup) + return fmt.Errorf("retrieving Orchestrated %s: `properties` was nil", id) } if !isLegacy { if existing.VirtualMachineScaleSetProperties.VirtualMachineProfile == nil { - return fmt.Errorf("retrieving Orchestrated Virtual Machine Scale Set %q (Resource Group %q): `properties.virtualMachineProfile` was nil", id.Name, id.ResourceGroup) + return fmt.Errorf("retrieving Orchestrated %s: `properties.virtualMachineProfile` was nil", id) } if existing.VirtualMachineScaleSetProperties.VirtualMachineProfile.StorageProfile == nil { - return fmt.Errorf("retrieving Orchestrated Virtual Machine Scale Set %q (Resource Group %q): `properties.virtualMachineProfile,storageProfile` was nil", id.Name, id.ResourceGroup) + return fmt.Errorf("retrieving Orchestrated %s: `properties.virtualMachineProfile,storageProfile` was nil", id) } } @@ -1099,7 +1099,7 @@ func resourceOrchestratedVirtualMachineScaleSetUpdate(d *pluginsdk.ResourceData, update.VirtualMachineScaleSetUpdateProperties = &updateProps if updateInstances { - log.Printf("[DEBUG] Orchestrated Virtual Machine Scale Set %q in Resource Group %q - updateInstances is true", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Orchestrated %s - updateInstances is true", id) } // AutomaticOSUpgradeIsEnabled currently is not supported in orchestrated VMSS flex @@ -1127,25 +1127,25 @@ func resourceOrchestratedVirtualMachineScaleSetRead(d *pluginsdk.ResourceData, m ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineScaleSetID(d.Id()) + id, err := commonids.ParseVirtualMachineScaleSetID(d.Id()) if err != nil { return err } // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { if utils.ResponseWasNotFound(resp.Response) { - log.Printf("[DEBUG] Orchestrated Virtual Machine Scale Set %q was not found in Resource Group %q - removing from state!", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Orchestrated %s was not found - removing from state!", id) d.SetId("") return nil } - return fmt.Errorf("retrieving Orchestrated Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Orchestrated %s: %+v", id, err) } - d.Set("name", id.Name) - d.Set("resource_group_name", id.ResourceGroup) + d.Set("name", id.VirtualMachineScaleSetName) + d.Set("resource_group_name", id.ResourceGroupName) d.Set("location", location.NormalizeNilable(resp.Location)) d.Set("zones", zones.FlattenUntyped(resp.Zones)) @@ -1178,7 +1178,7 @@ func resourceOrchestratedVirtualMachineScaleSetRead(d *pluginsdk.ResourceData, m } if resp.VirtualMachineScaleSetProperties == nil { - return fmt.Errorf("retrieving Orchestrated Virtual Machine Scale Set %q (Resource Group %q): `properties` was nil", id.Name, id.ResourceGroup) + return fmt.Errorf("retrieving Orchestrated %s: `properties` was nil", id) } props := *resp.VirtualMachineScaleSetProperties @@ -1319,19 +1319,19 @@ func resourceOrchestratedVirtualMachineScaleSetDelete(d *pluginsdk.ResourceData, ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineScaleSetID(d.Id()) + id, err := commonids.ParseVirtualMachineScaleSetID(d.Id()) if err != nil { return err } // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { if utils.ResponseWasNotFound(resp.Response) { return nil } - return fmt.Errorf("retrieving Orchestrated Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Orchestrated %s: %+v", id, err) } // Sometimes VMSS's aren't fully deleted when the `Delete` call returns - as such we'll try to scale the cluster @@ -1347,36 +1347,36 @@ func resourceOrchestratedVirtualMachineScaleSetDelete(d *pluginsdk.ResourceData, update := compute.VirtualMachineScaleSetUpdate{ Sku: resp.Sku, } - future, err := client.Update(ctx, id.ResourceGroup, id.Name, update) + future, err := client.Update(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, update) if err != nil { - return fmt.Errorf("updating number of instances in Orchestrated Virtual Machine Scale Set %q (Resource Group %q) to scale to 0: %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("updating number of instances in Orchestrated %s to scale to 0: %+v", id, err) } log.Printf("[DEBUG] Waiting for scaling of instances to 0 prior to deletion - this helps avoids networking issues within Azure") err = future.WaitForCompletionRef(ctx, client.Client) if err != nil { - return fmt.Errorf("waiting for number of instances in Orchestrated Virtual Machine Scale Set %q (Resource Group %q) to scale to 0: %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for number of instances in Orchestrated %s to scale to 0: %+v", id, err) } log.Printf("[DEBUG] Scaled instances to 0 prior to deletion - this helps avoids networking issues within Azure") } else { log.Printf("[DEBUG] Unable to scale instances to `0` since the `sku` block is nil - trying to delete anyway") } - log.Printf("[DEBUG] Deleting Orchestrated Virtual Machine Scale Set %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deleting Orchestrated %s", id) // @ArcturusZhang (mimicking from windows_virtual_machine_pluginsdk.go): sending `nil` here omits this value from being sent // which matches the previous behaviour - we're only splitting this out so it's clear why // TODO: support force deletion once it's out of Preview, if applicable var forceDeletion *bool = nil - future, err := client.Delete(ctx, id.ResourceGroup, id.Name, forceDeletion) + future, err := client.Delete(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, forceDeletion) if err != nil { - return fmt.Errorf("deleting Orchestrated Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("deleting Orchestrated %s: %+v", id, err) } - log.Printf("[DEBUG] Waiting for deletion of Orchestrated Virtual Machine Scale Set %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Waiting for deletion of Orchestrated %s", id) if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for deletion of Orchestrated Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for deletion of Orchestrated %s: %+v", id, err) } - log.Printf("[DEBUG] Deleted Orchestrated Virtual Machine Scale Set %q (Resource Group %q).", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deleted Orchestrated %s", id) return nil } diff --git a/internal/services/compute/orchestrated_virtual_machine_scale_set_resource_network_test.go b/internal/services/compute/orchestrated_virtual_machine_scale_set_resource_network_test.go index 28ef0f46cb6b..faca57cb4bed 100644 --- a/internal/services/compute/orchestrated_virtual_machine_scale_set_resource_network_test.go +++ b/internal/services/compute/orchestrated_virtual_machine_scale_set_resource_network_test.go @@ -8,10 +8,10 @@ import ( "fmt" "testing" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/tombuildsstuff/kermit/sdk/compute/2023-03-01/compute" ) @@ -246,13 +246,13 @@ func TestAccOrchestratedVirtualMachineScaleSet_networkPublicIPVersion(t *testing } func (OrchestratedVirtualMachineScaleSetResource) hasLoadBalancer(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) error { - id, err := parse.VirtualMachineScaleSetID(state.ID) + id, err := commonids.ParseVirtualMachineScaleSetID(state.ID) if err != nil { return err } // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - read, err := client.Compute.VMScaleSetClient.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + read, err := client.Compute.VMScaleSetClient.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { return err } diff --git a/internal/services/compute/orchestrated_virtual_machine_scale_set_resource_test.go b/internal/services/compute/orchestrated_virtual_machine_scale_set_resource_test.go index 62b36fa217c1..c8adcb0973a9 100644 --- a/internal/services/compute/orchestrated_virtual_machine_scale_set_resource_test.go +++ b/internal/services/compute/orchestrated_virtual_machine_scale_set_resource_test.go @@ -8,10 +8,10 @@ import ( "fmt" "testing" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" "github.com/tombuildsstuff/kermit/sdk/compute/2023-03-01/compute" @@ -487,13 +487,13 @@ func TestAccOrchestratedVirtualMachineScaleSet_updatePriorityMixPolicy(t *testin // } func (t OrchestratedVirtualMachineScaleSetResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { - id, err := parse.VirtualMachineScaleSetID(state.ID) + id, err := commonids.ParseVirtualMachineScaleSetID(state.ID) if err != nil { return nil, err } // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - resp, err := clients.Compute.VMScaleSetClient.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + resp, err := clients.Compute.VMScaleSetClient.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { return nil, fmt.Errorf("retrieving Virtual Machine Scale Set %q", id) } @@ -502,14 +502,14 @@ func (t OrchestratedVirtualMachineScaleSetResource) Exists(ctx context.Context, } func (OrchestratedVirtualMachineScaleSetResource) Destroy(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { - id, err := parse.VirtualMachineScaleSetID(state.ID) + id, err := commonids.ParseVirtualMachineScaleSetID(state.ID) if err != nil { return nil, err } // this is a preview feature we don't want to use right now var forceDelete *bool = nil - future, err := client.Compute.VMScaleSetClient.Delete(ctx, id.ResourceGroup, id.Name, forceDelete) + future, err := client.Compute.VMScaleSetClient.Delete(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, forceDelete) if err != nil { return nil, fmt.Errorf("Bad: deleting %s: %+v", *id, err) } @@ -522,13 +522,13 @@ func (OrchestratedVirtualMachineScaleSetResource) Destroy(ctx context.Context, c } func (OrchestratedVirtualMachineScaleSetResource) hasApplicationGateway(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) error { - id, err := parse.VirtualMachineScaleSetID(state.ID) + id, err := commonids.ParseVirtualMachineScaleSetID(state.ID) if err != nil { return err } // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - read, err := client.Compute.VMScaleSetClient.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + read, err := client.Compute.VMScaleSetClient.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { return err } diff --git a/internal/services/compute/parse/virtual_machine_scale_set.go b/internal/services/compute/parse/virtual_machine_scale_set.go deleted file mode 100644 index 1fdff2bfe27e..000000000000 --- a/internal/services/compute/parse/virtual_machine_scale_set.go +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "fmt" - "strings" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -type VirtualMachineScaleSetId struct { - SubscriptionId string - ResourceGroup string - Name string -} - -func NewVirtualMachineScaleSetID(subscriptionId, resourceGroup, name string) VirtualMachineScaleSetId { - return VirtualMachineScaleSetId{ - SubscriptionId: subscriptionId, - ResourceGroup: resourceGroup, - Name: name, - } -} - -func (id VirtualMachineScaleSetId) String() string { - segments := []string{ - fmt.Sprintf("Name %q", id.Name), - fmt.Sprintf("Resource Group %q", id.ResourceGroup), - } - segmentsStr := strings.Join(segments, " / ") - return fmt.Sprintf("%s: (%s)", "Virtual Machine Scale Set", segmentsStr) -} - -func (id VirtualMachineScaleSetId) ID() string { - fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/virtualMachineScaleSets/%s" - return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroup, id.Name) -} - -// VirtualMachineScaleSetID parses a VirtualMachineScaleSet ID into an VirtualMachineScaleSetId struct -func VirtualMachineScaleSetID(input string) (*VirtualMachineScaleSetId, error) { - id, err := resourceids.ParseAzureResourceID(input) - if err != nil { - return nil, fmt.Errorf("parsing %q as an VirtualMachineScaleSet ID: %+v", input, err) - } - - resourceId := VirtualMachineScaleSetId{ - SubscriptionId: id.SubscriptionID, - ResourceGroup: id.ResourceGroup, - } - - if resourceId.SubscriptionId == "" { - return nil, fmt.Errorf("ID was missing the 'subscriptions' element") - } - - if resourceId.ResourceGroup == "" { - return nil, fmt.Errorf("ID was missing the 'resourceGroups' element") - } - - if resourceId.Name, err = id.PopSegment("virtualMachineScaleSets"); err != nil { - return nil, err - } - - if err := id.ValidateNoEmptySegments(input); err != nil { - return nil, err - } - - return &resourceId, nil -} - -// VirtualMachineScaleSetIDInsensitively parses an VirtualMachineScaleSet ID into an VirtualMachineScaleSetId struct, insensitively -// This should only be used to parse an ID for rewriting, the VirtualMachineScaleSetID -// method should be used instead for validation etc. -// -// Whilst this may seem strange, this enables Terraform have consistent casing -// which works around issues in Core, whilst handling broken API responses. -func VirtualMachineScaleSetIDInsensitively(input string) (*VirtualMachineScaleSetId, error) { - id, err := resourceids.ParseAzureResourceID(input) - if err != nil { - return nil, err - } - - resourceId := VirtualMachineScaleSetId{ - SubscriptionId: id.SubscriptionID, - ResourceGroup: id.ResourceGroup, - } - - if resourceId.SubscriptionId == "" { - return nil, fmt.Errorf("ID was missing the 'subscriptions' element") - } - - if resourceId.ResourceGroup == "" { - return nil, fmt.Errorf("ID was missing the 'resourceGroups' element") - } - - // find the correct casing for the 'virtualMachineScaleSets' segment - virtualMachineScaleSetsKey := "virtualMachineScaleSets" - for key := range id.Path { - if strings.EqualFold(key, virtualMachineScaleSetsKey) { - virtualMachineScaleSetsKey = key - break - } - } - if resourceId.Name, err = id.PopSegment(virtualMachineScaleSetsKey); err != nil { - return nil, err - } - - if err := id.ValidateNoEmptySegments(input); err != nil { - return nil, err - } - - return &resourceId, nil -} diff --git a/internal/services/compute/parse/virtual_machine_scale_set_test.go b/internal/services/compute/parse/virtual_machine_scale_set_test.go deleted file mode 100644 index 0e428925adcf..000000000000 --- a/internal/services/compute/parse/virtual_machine_scale_set_test.go +++ /dev/null @@ -1,232 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "testing" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -var _ resourceids.Id = VirtualMachineScaleSetId{} - -func TestVirtualMachineScaleSetIDFormatter(t *testing.T) { - actual := NewVirtualMachineScaleSetID("12345678-1234-9876-4563-123456789012", "resGroup1", "scaleSet1").ID() - expected := "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachineScaleSets/scaleSet1" - if actual != expected { - t.Fatalf("Expected %q but got %q", expected, actual) - } -} - -func TestVirtualMachineScaleSetID(t *testing.T) { - testData := []struct { - Input string - Error bool - Expected *VirtualMachineScaleSetId - }{ - - { - // empty - Input: "", - Error: true, - }, - - { - // missing SubscriptionId - Input: "/", - Error: true, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Error: true, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Error: true, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Error: true, - }, - - { - // missing Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/", - Error: true, - }, - - { - // missing value for Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachineScaleSets/", - Error: true, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachineScaleSets/scaleSet1", - Expected: &VirtualMachineScaleSetId{ - SubscriptionId: "12345678-1234-9876-4563-123456789012", - ResourceGroup: "resGroup1", - Name: "scaleSet1", - }, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINESCALESETS/SCALESET1", - Error: true, - }, - } - - for _, v := range testData { - t.Logf("[DEBUG] Testing %q", v.Input) - - actual, err := VirtualMachineScaleSetID(v.Input) - if err != nil { - if v.Error { - continue - } - - t.Fatalf("Expect a value but got an error: %s", err) - } - if v.Error { - t.Fatal("Expect an error but didn't get one") - } - - if actual.SubscriptionId != v.Expected.SubscriptionId { - t.Fatalf("Expected %q but got %q for SubscriptionId", v.Expected.SubscriptionId, actual.SubscriptionId) - } - if actual.ResourceGroup != v.Expected.ResourceGroup { - t.Fatalf("Expected %q but got %q for ResourceGroup", v.Expected.ResourceGroup, actual.ResourceGroup) - } - if actual.Name != v.Expected.Name { - t.Fatalf("Expected %q but got %q for Name", v.Expected.Name, actual.Name) - } - } -} - -func TestVirtualMachineScaleSetIDInsensitively(t *testing.T) { - testData := []struct { - Input string - Error bool - Expected *VirtualMachineScaleSetId - }{ - - { - // empty - Input: "", - Error: true, - }, - - { - // missing SubscriptionId - Input: "/", - Error: true, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Error: true, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Error: true, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Error: true, - }, - - { - // missing Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/", - Error: true, - }, - - { - // missing value for Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachineScaleSets/", - Error: true, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachineScaleSets/scaleSet1", - Expected: &VirtualMachineScaleSetId{ - SubscriptionId: "12345678-1234-9876-4563-123456789012", - ResourceGroup: "resGroup1", - Name: "scaleSet1", - }, - }, - - { - // lower-cased segment names - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualmachinescalesets/scaleSet1", - Expected: &VirtualMachineScaleSetId{ - SubscriptionId: "12345678-1234-9876-4563-123456789012", - ResourceGroup: "resGroup1", - Name: "scaleSet1", - }, - }, - - { - // upper-cased segment names - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/VIRTUALMACHINESCALESETS/scaleSet1", - Expected: &VirtualMachineScaleSetId{ - SubscriptionId: "12345678-1234-9876-4563-123456789012", - ResourceGroup: "resGroup1", - Name: "scaleSet1", - }, - }, - - { - // mixed-cased segment names - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/ViRtUaLmAcHiNeScAlEsEtS/scaleSet1", - Expected: &VirtualMachineScaleSetId{ - SubscriptionId: "12345678-1234-9876-4563-123456789012", - ResourceGroup: "resGroup1", - Name: "scaleSet1", - }, - }, - } - - for _, v := range testData { - t.Logf("[DEBUG] Testing %q", v.Input) - - actual, err := VirtualMachineScaleSetIDInsensitively(v.Input) - if err != nil { - if v.Error { - continue - } - - t.Fatalf("Expect a value but got an error: %s", err) - } - if v.Error { - t.Fatal("Expect an error but didn't get one") - } - - if actual.SubscriptionId != v.Expected.SubscriptionId { - t.Fatalf("Expected %q but got %q for SubscriptionId", v.Expected.SubscriptionId, actual.SubscriptionId) - } - if actual.ResourceGroup != v.Expected.ResourceGroup { - t.Fatalf("Expected %q but got %q for ResourceGroup", v.Expected.ResourceGroup, actual.ResourceGroup) - } - if actual.Name != v.Expected.Name { - t.Fatalf("Expected %q but got %q for Name", v.Expected.Name, actual.Name) - } - } -} diff --git a/internal/services/compute/resourceids.go b/internal/services/compute/resourceids.go index 1430284d7703..b45c839dc04d 100644 --- a/internal/services/compute/resourceids.go +++ b/internal/services/compute/resourceids.go @@ -8,7 +8,6 @@ package compute //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=SharedImageVersion -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/galleries/gallery1/images/image1/versions/version1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=VirtualMachine -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachines/machine1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=VirtualMachineExtension -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachines/machine1/extensions/extension1 -//go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=VirtualMachineScaleSet -rewrite=true -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachineScaleSets/scaleSet1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=VirtualMachineScaleSetExtension -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachineScaleSets/scaleSet1/extensions/extension1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=SSHPublicKey -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/sshPublicKeys/sshpublickey1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=HybridMachine -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.HybridCompute/machines/machine1 diff --git a/internal/services/compute/validate/virtual_machine_scale_set_id.go b/internal/services/compute/validate/virtual_machine_scale_set_id.go deleted file mode 100644 index c876738e292d..000000000000 --- a/internal/services/compute/validate/virtual_machine_scale_set_id.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "fmt" - - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" -) - -func VirtualMachineScaleSetID(input interface{}, key string) (warnings []string, errors []error) { - v, ok := input.(string) - if !ok { - errors = append(errors, fmt.Errorf("expected %q to be a string", key)) - return - } - - if _, err := parse.VirtualMachineScaleSetID(v); err != nil { - errors = append(errors, err) - } - - return -} diff --git a/internal/services/compute/validate/virtual_machine_scale_set_id_test.go b/internal/services/compute/validate/virtual_machine_scale_set_id_test.go deleted file mode 100644 index a88a172705e1..000000000000 --- a/internal/services/compute/validate/virtual_machine_scale_set_id_test.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import "testing" - -func TestVirtualMachineScaleSetID(t *testing.T) { - cases := []struct { - Input string - Valid bool - }{ - - { - // empty - Input: "", - Valid: false, - }, - - { - // missing SubscriptionId - Input: "/", - Valid: false, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Valid: false, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Valid: false, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Valid: false, - }, - - { - // missing Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/", - Valid: false, - }, - - { - // missing value for Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachineScaleSets/", - Valid: false, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachineScaleSets/scaleSet1", - Valid: true, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINESCALESETS/SCALESET1", - Valid: false, - }, - } - for _, tc := range cases { - t.Logf("[DEBUG] Testing Value %s", tc.Input) - _, errors := VirtualMachineScaleSetID(tc.Input, "test") - valid := len(errors) == 0 - - if tc.Valid != valid { - t.Fatalf("Expected %t but got %t", tc.Valid, valid) - } - } -} diff --git a/internal/services/compute/virtual_machine_scale_set_data_source.go b/internal/services/compute/virtual_machine_scale_set_data_source.go index 54ac01cd4269..b353aad041f2 100644 --- a/internal/services/compute/virtual_machine_scale_set_data_source.go +++ b/internal/services/compute/virtual_machine_scale_set_data_source.go @@ -10,10 +10,10 @@ import ( "time" "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" networkParse "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" @@ -128,10 +128,10 @@ func dataSourceVirtualMachineScaleSetRead(d *pluginsdk.ResourceData, meta interf ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id := parse.NewVirtualMachineScaleSetID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + id := commonids.NewVirtualMachineScaleSetID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, "") if err != nil { if utils.ResponseWasNotFound(resp.Response) { return fmt.Errorf("%s was not found", id) @@ -165,7 +165,7 @@ func dataSourceVirtualMachineScaleSetRead(d *pluginsdk.ResourceData, meta interf } instances := make([]interface{}, 0) - result, err := instancesClient.ListComplete(ctx, id.ResourceGroup, id.Name, "", "", "") + result, err := instancesClient.ListComplete(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, "", "", "") if err != nil { return fmt.Errorf("listing VM Instances for %q: %+v", id, err) } @@ -174,14 +174,14 @@ func dataSourceVirtualMachineScaleSetRead(d *pluginsdk.ResourceData, meta interf for result.NotDone() { instance := result.Value() if instance.InstanceID != nil { - nics, err := networkInterfacesClient.ListVirtualMachineScaleSetVMNetworkInterfacesComplete(ctx, id.ResourceGroup, id.Name, *instance.InstanceID) + nics, err := networkInterfacesClient.ListVirtualMachineScaleSetVMNetworkInterfacesComplete(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, *instance.InstanceID) if err != nil { if !utils.ResponseWasNotFound(nics.Response().Response) { return fmt.Errorf("listing Network Interfaces for VM Instance %q for %q: %+v", *instance.InstanceID, id, err) } // Network Interfaces of VM in Flexible VMSS are accessed from single VM - vm, err := vmClient.Get(ctx, id.ResourceGroup, *instance.InstanceID, "") + vm, err := vmClient.Get(ctx, id.ResourceGroupName, *instance.InstanceID, "") if err != nil { return fmt.Errorf("retrieving VM Instance %q for %q: %+v", *instance.InstanceID, id, err) } @@ -196,7 +196,7 @@ func dataSourceVirtualMachineScaleSetRead(d *pluginsdk.ResourceData, meta interf } } - connInfo, err = getVirtualMachineScaleSetVMConnectionInfo(ctx, networkInterfaces, id.ResourceGroup, id.Name, *instance.InstanceID, publicIPAddressesClient) + connInfo, err = getVirtualMachineScaleSetVMConnectionInfo(ctx, networkInterfaces, id.ResourceGroupName, id.VirtualMachineScaleSetName, *instance.InstanceID, publicIPAddressesClient) if err != nil { return err } diff --git a/internal/services/compute/virtual_machine_scale_set_extension_resource.go b/internal/services/compute/virtual_machine_scale_set_extension_resource.go index 1f3cd08138cc..4250c56bdc08 100644 --- a/internal/services/compute/virtual_machine_scale_set_extension_resource.go +++ b/internal/services/compute/virtual_machine_scale_set_extension_resource.go @@ -8,10 +8,10 @@ import ( "log" "time" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" @@ -55,7 +55,7 @@ func resourceVirtualMachineScaleSetExtension() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ForceNew: true, - ValidateFunc: validate.VirtualMachineScaleSetID, + ValidateFunc: commonids.ValidateVirtualMachineScaleSetID, }, "publisher": { @@ -133,11 +133,11 @@ func resourceVirtualMachineScaleSetExtensionCreate(d *pluginsdk.ResourceData, me ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() - virtualMachineScaleSetId, err := parse.VirtualMachineScaleSetID(d.Get("virtual_machine_scale_set_id").(string)) + virtualMachineScaleSetId, err := commonids.ParseVirtualMachineScaleSetID(d.Get("virtual_machine_scale_set_id").(string)) if err != nil { return err } - id := parse.NewVirtualMachineScaleSetExtensionID(virtualMachineScaleSetId.SubscriptionId, virtualMachineScaleSetId.ResourceGroup, virtualMachineScaleSetId.Name, d.Get("name").(string)) + id := parse.NewVirtualMachineScaleSetExtensionID(virtualMachineScaleSetId.SubscriptionId, virtualMachineScaleSetId.ResourceGroupName, virtualMachineScaleSetId.VirtualMachineScaleSetName, d.Get("name").(string)) resp, err := client.Get(ctx, id.ResourceGroup, id.VirtualMachineScaleSetName, id.ExtensionName, "") if err != nil { diff --git a/internal/services/compute/virtual_machine_scale_set_import.go b/internal/services/compute/virtual_machine_scale_set_import.go index e4ec383975c2..0029e0f4e56f 100644 --- a/internal/services/compute/virtual_machine_scale_set_import.go +++ b/internal/services/compute/virtual_machine_scale_set_import.go @@ -7,23 +7,23 @@ import ( "context" "fmt" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/tombuildsstuff/kermit/sdk/compute/2023-03-01/compute" ) func importOrchestratedVirtualMachineScaleSet(ctx context.Context, d *pluginsdk.ResourceData, meta interface{}) (data []*pluginsdk.ResourceData, err error) { - id, err := parse.VirtualMachineScaleSetID(d.Id()) + id, err := commonids.ParseVirtualMachineScaleSetID(d.Id()) if err != nil { return []*pluginsdk.ResourceData{}, err } client := meta.(*clients.Client).Compute.VMScaleSetClient // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - _, err = client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + _, err = client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { - return []*pluginsdk.ResourceData{}, fmt.Errorf("retrieving Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return []*pluginsdk.ResourceData{}, fmt.Errorf("retrieving %s: %+v", id, err) } return []*pluginsdk.ResourceData{d}, nil @@ -31,28 +31,28 @@ func importOrchestratedVirtualMachineScaleSet(ctx context.Context, d *pluginsdk. func importVirtualMachineScaleSet(osType compute.OperatingSystemTypes, resourceType string) pluginsdk.ImporterFunc { return func(ctx context.Context, d *pluginsdk.ResourceData, meta interface{}) (data []*pluginsdk.ResourceData, err error) { - id, err := parse.VirtualMachineScaleSetID(d.Id()) + id, err := commonids.ParseVirtualMachineScaleSetID(d.Id()) if err != nil { return []*pluginsdk.ResourceData{}, err } client := meta.(*clients.Client).Compute.VMScaleSetClient // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - vm, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + vm, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { - return []*pluginsdk.ResourceData{}, fmt.Errorf("retrieving Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return []*pluginsdk.ResourceData{}, fmt.Errorf("retrieving %s: %+v", id, err) } if vm.VirtualMachineScaleSetProperties == nil { - return []*pluginsdk.ResourceData{}, fmt.Errorf("retrieving Virtual Machine Scale Set %q (Resource Group %q): `properties` was nil", id.Name, id.ResourceGroup) + return []*pluginsdk.ResourceData{}, fmt.Errorf("retrieving %s: `properties` was nil", id) } if vm.VirtualMachineScaleSetProperties.VirtualMachineProfile == nil { - return []*pluginsdk.ResourceData{}, fmt.Errorf("retrieving Virtual Machine Scale Set %q (Resource Group %q): `properties.virtualMachineProfile` was nil", id.Name, id.ResourceGroup) + return []*pluginsdk.ResourceData{}, fmt.Errorf("retrieving %s: `properties.virtualMachineProfile` was nil", id) } if vm.VirtualMachineScaleSetProperties.VirtualMachineProfile.OsProfile == nil { - return []*pluginsdk.ResourceData{}, fmt.Errorf("retrieving Virtual Machine Scale Set %q (Resource Group %q): `properties.virtualMachineProfile.osProfile` was nil", id.Name, id.ResourceGroup) + return []*pluginsdk.ResourceData{}, fmt.Errorf("retrieving %s: `properties.virtualMachineProfile.osProfile` was nil", id) } isCorrectOS := false @@ -87,7 +87,7 @@ func importVirtualMachineScaleSet(osType compute.OperatingSystemTypes, resourceT } updatedExtensions, err = flattenVirtualMachineScaleSetExtensions(extensionsProfile, d) if err != nil { - return []*pluginsdk.ResourceData{}, fmt.Errorf("could not read VMSS extensions data for %q (resource group %q)", id.Name, id.ResourceGroup) + return []*pluginsdk.ResourceData{}, fmt.Errorf("could not read VMSS extensions data for %s", id) } } } diff --git a/internal/services/compute/virtual_machine_scale_set_update.go b/internal/services/compute/virtual_machine_scale_set_update.go index 2fce06523a19..46ad95e94d68 100644 --- a/internal/services/compute/virtual_machine_scale_set_update.go +++ b/internal/services/compute/virtual_machine_scale_set_update.go @@ -9,8 +9,8 @@ import ( "log" "strings" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/client" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/utils" "github.com/tombuildsstuff/kermit/sdk/compute/2023-03-01/compute" ) @@ -27,7 +27,7 @@ type virtualMachineScaleSetUpdateMetaData struct { Client *client.Client Existing compute.VirtualMachineScaleSet - ID *parse.VirtualMachineScaleSetId + ID *commonids.VirtualMachineScaleSetId OSType compute.OperatingSystemTypes } @@ -89,17 +89,17 @@ func (metadata virtualMachineScaleSetUpdateMetaData) updateVmss(ctx context.Cont client := metadata.Client.VMScaleSetClient id := metadata.ID - log.Printf("[DEBUG] Updating %s Virtual Machine Scale Set %q (Resource Group %q)..", metadata.OSType, id.Name, id.ResourceGroup) - future, err := client.Update(ctx, id.ResourceGroup, id.Name, update) + log.Printf("[DEBUG] Updating %s %s", metadata.OSType, id) + future, err := client.Update(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, update) if err != nil { - return fmt.Errorf("updating %s Virtual Machine Scale Set %q (Resource Group %q): %+v", metadata.OSType, id.Name, id.ResourceGroup, err) + return fmt.Errorf("updating %s %s: %+v", metadata.OSType, id, err) } - log.Printf("[DEBUG] Waiting for update of %s Virtual Machine Scale Set %q (Resource Group %q)..", metadata.OSType, id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Waiting for update of %s %s", metadata.OSType, id) if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for update of %s Virtual Machine Scale Set %q (Resource Group %q): %+v", metadata.OSType, id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for update of %s %s: %+v", metadata.OSType, id, err) } - log.Printf("[DEBUG] Updated %s Virtual Machine Scale Set %q (Resource Group %q).", metadata.OSType, id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Updated %s %s", metadata.OSType, id) return nil } @@ -109,17 +109,17 @@ func (metadata virtualMachineScaleSetUpdateMetaData) upgradeInstancesForAutomati rollingUpgradesClient := metadata.Client.VMScaleSetRollingUpgradesClient id := metadata.ID - log.Printf("[DEBUG] Updating instances for %s Virtual Machine Scale Set %q (Resource Group %q)..", metadata.OSType, id.Name, id.ResourceGroup) - future, err := rollingUpgradesClient.StartOSUpgrade(ctx, id.ResourceGroup, id.Name) + log.Printf("[DEBUG] Updating instances for %s %s", metadata.OSType, id) + future, err := rollingUpgradesClient.StartOSUpgrade(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName) if err != nil { - return fmt.Errorf("updating instances for %s Virtual Machine Scale Set %q (Resource Group %q): %+v", metadata.OSType, id.Name, id.ResourceGroup, err) + return fmt.Errorf("updating instances for %s %s: %+v", metadata.OSType, id, err) } - log.Printf("[DEBUG] Waiting for update of instances for %s Virtual Machine Scale Set %q (Resource Group %q)..", metadata.OSType, id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Waiting for update of instances for %s %s", metadata.OSType, id) if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for update of instances for %s Virtual Machine Scale Set %q (Resource Group %q): %+v", metadata.OSType, id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for update of instances for %s %s: %+v", metadata.OSType, id, err) } - log.Printf("[DEBUG] Updated instances for %s Virtual Machine Scale Set %q (Resource Group %q).", metadata.OSType, id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Updated instances for %s %s.", metadata.OSType, id) return nil } @@ -128,11 +128,11 @@ func (metadata virtualMachineScaleSetUpdateMetaData) upgradeInstancesForManualUp client := metadata.Client.VMScaleSetClient id := metadata.ID - log.Printf("[DEBUG] Rolling the VM Instances for %s Virtual Machine Scale Set %q (Resource Group %q)..", metadata.OSType, id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Rolling the VM Instances for %s %s", metadata.OSType, id) instancesClient := metadata.Client.VMScaleSetVMsClient - instances, err := instancesClient.ListComplete(ctx, id.ResourceGroup, id.Name, "", "", "") + instances, err := instancesClient.ListComplete(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, "", "", "") if err != nil { - return fmt.Errorf("listing VM Instances for %s Virtual Machine Scale Set %q (Resource Group %q): %+v", metadata.OSType, id.Name, id.ResourceGroup, err) + return fmt.Errorf("listing VM Instances for %s %s: %+v", metadata.OSType, id, err) } log.Printf("[DEBUG] Determining instances to roll..") @@ -160,13 +160,13 @@ func (metadata virtualMachineScaleSetUpdateMetaData) upgradeInstancesForManualUp ids := compute.VirtualMachineScaleSetVMInstanceRequiredIDs{ InstanceIds: &instanceIds, } - future, err := client.UpdateInstances(ctx, id.ResourceGroup, id.Name, ids) + future, err := client.UpdateInstances(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, ids) if err != nil { - return fmt.Errorf("updating Instance %q (%s VM Scale Set %q / Resource Group %q) to the Latest Configuration: %+v", instanceId, metadata.OSType, id.Name, id.ResourceGroup, err) + return fmt.Errorf("updating Instance %q (%s %s) to the Latest Configuration: %+v", instanceId, metadata.OSType, id, err) } if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for update of Instance %q (%s VM Scale Set %q / Resource Group %q) to the Latest Configuration: %+v", instanceId, metadata.OSType, id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for update of Instance %q (%s %s) to the Latest Configuration: %+v", instanceId, metadata.OSType, id, err) } log.Printf("[DEBUG] Updated Instance %q to the Latest Configuration.", instanceId) @@ -175,18 +175,18 @@ func (metadata virtualMachineScaleSetUpdateMetaData) upgradeInstancesForManualUp reimageInput := &compute.VirtualMachineScaleSetReimageParameters{ InstanceIds: &instanceIds, } - reimageFuture, err := client.Reimage(ctx, id.ResourceGroup, id.Name, reimageInput) + reimageFuture, err := client.Reimage(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, reimageInput) if err != nil { - return fmt.Errorf("reimaging Instance %q (%s VM Scale Set %q / Resource Group %q): %+v", instanceId, metadata.OSType, id.Name, id.ResourceGroup, err) + return fmt.Errorf("reimaging Instance %q (%s %s): %+v", instanceId, metadata.OSType, id, err) } if err = reimageFuture.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for reimage of Instance %q (%s VM Scale Set %q / Resource Group %q): %+v", instanceId, metadata.OSType, id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for reimage of Instance %q (%s %s): %+v", instanceId, metadata.OSType, id, err) } log.Printf("[DEBUG] Reimaged Instance %q..", instanceId) } - log.Printf("[DEBUG] Rolled the VM Instances for %s Virtual Machine Scale Set %q (Resource Group %q).", metadata.OSType, id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Rolled the VM Instances for %s %s.", metadata.OSType, id) return nil } diff --git a/internal/services/compute/windows_virtual_machine_resource.go b/internal/services/compute/windows_virtual_machine_resource.go index 6d379077a861..7a4b3decde14 100644 --- a/internal/services/compute/windows_virtual_machine_resource.go +++ b/internal/services/compute/windows_virtual_machine_resource.go @@ -12,6 +12,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2021-11-01/availabilitysets" @@ -366,7 +367,7 @@ func resourceWindowsVirtualMachine() *pluginsdk.Resource { ConflictsWith: []string{ "availability_set_id", }, - ValidateFunc: computeValidate.VirtualMachineScaleSetID, + ValidateFunc: commonids.ValidateVirtualMachineScaleSetID, }, "platform_fault_domain": { diff --git a/internal/services/compute/windows_virtual_machine_scale_set_resource.go b/internal/services/compute/windows_virtual_machine_scale_set_resource.go index 9ed998dcdad3..bc8e32412aff 100644 --- a/internal/services/compute/windows_virtual_machine_scale_set_resource.go +++ b/internal/services/compute/windows_virtual_machine_scale_set_resource.go @@ -8,6 +8,7 @@ import ( "log" "time" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/zones" @@ -20,7 +21,6 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/features" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tags" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/base64" @@ -40,7 +40,7 @@ func resourceWindowsVirtualMachineScaleSet() *pluginsdk.Resource { Delete: resourceWindowsVirtualMachineScaleSetDelete, Importer: pluginsdk.ImporterValidatingResourceIdThen(func(id string) error { - _, err := parse.VirtualMachineScaleSetID(id) + _, err := commonids.ParseVirtualMachineScaleSetID(id) return err }, importVirtualMachineScaleSet(compute.OperatingSystemTypesWindows, "azurerm_windows_virtual_machine_scale_set")), @@ -64,8 +64,8 @@ func resourceWindowsVirtualMachineScaleSetCreate(d *pluginsdk.ResourceData, meta ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() - id := parse.NewVirtualMachineScaleSetID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) - exists, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + id := commonids.NewVirtualMachineScaleSetID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + exists, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, "") if err != nil { if !utils.ResponseWasNotFound(exists.Response) { return fmt.Errorf("checking for existing Windows %s: %+v", id, err) @@ -160,7 +160,7 @@ func resourceWindowsVirtualMachineScaleSetCreate(d *pluginsdk.ResourceData, meta if len(errs) > 0 { return fmt.Errorf("unable to assume default computer name prefix %s. Please adjust the %q, or specify an explicit %q", errs[0], "name", "computer_name_prefix") } - computerNamePrefix = id.Name + computerNamePrefix = id.VirtualMachineScaleSetName } networkProfile := &compute.VirtualMachineScaleSetNetworkProfile{ @@ -451,7 +451,7 @@ func resourceWindowsVirtualMachineScaleSetCreate(d *pluginsdk.ResourceData, meta } log.Printf("[DEBUG] Creating Windows %s.", id) - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.Name, props) + future, err := client.CreateOrUpdate(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, props) if err != nil { return fmt.Errorf("creating Windows %s: %+v", id, err) } @@ -472,7 +472,7 @@ func resourceWindowsVirtualMachineScaleSetUpdate(d *pluginsdk.ResourceData, meta ctx, cancel := timeouts.ForUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineScaleSetID(d.Id()) + id, err := commonids.ParseVirtualMachineScaleSetID(d.Id()) if err != nil { return err } @@ -481,18 +481,18 @@ func resourceWindowsVirtualMachineScaleSetUpdate(d *pluginsdk.ResourceData, meta // retrieve // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - existing, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + existing, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { - return fmt.Errorf("retrieving Windows Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Windows %s: %+v", id, err) } if existing.VirtualMachineScaleSetProperties == nil { - return fmt.Errorf("retrieving Windows Virtual Machine Scale Set %q (Resource Group %q): `properties` was nil", id.Name, id.ResourceGroup) + return fmt.Errorf("retrieving Windows %s: `properties` was nil", id) } if existing.VirtualMachineScaleSetProperties.VirtualMachineProfile == nil { - return fmt.Errorf("retrieving Windows Virtual Machine Scale Set %q (Resource Group %q): `properties.virtualMachineProfile` was nil", id.Name, id.ResourceGroup) + return fmt.Errorf("retrieving Windows %s: `properties.virtualMachineProfile` was nil", id) } if existing.VirtualMachineScaleSetProperties.VirtualMachineProfile.StorageProfile == nil { - return fmt.Errorf("retrieving Windows Virtual Machine Scale Set %q (Resource Group %q): `properties.virtualMachineProfile,storageProfile` was nil", id.Name, id.ResourceGroup) + return fmt.Errorf("retrieving Windows %s: `properties.virtualMachineProfile,storageProfile` was nil", id) } updateProps := compute.VirtualMachineScaleSetUpdateProperties{ @@ -827,24 +827,24 @@ func resourceWindowsVirtualMachineScaleSetRead(d *pluginsdk.ResourceData, meta i ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineScaleSetID(d.Id()) + id, err := commonids.ParseVirtualMachineScaleSetID(d.Id()) if err != nil { return err } - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { if utils.ResponseWasNotFound(resp.Response) { - log.Printf("[DEBUG] Windows Virtual Machine Scale Set %q was not found in Resource Group %q - removing from state!", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Windows %s was not found - removing from state!", id) d.SetId("") return nil } - return fmt.Errorf("retrieving Windows Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Windows %s: %+v", id, err) } - d.Set("name", id.Name) - d.Set("resource_group_name", id.ResourceGroup) + d.Set("name", id.VirtualMachineScaleSetName) + d.Set("resource_group_name", id.ResourceGroupName) d.Set("location", location.NormalizeNilable(resp.Location)) d.Set("edge_zone", flattenEdgeZone(resp.ExtendedLocation)) d.Set("zones", zones.FlattenUntyped(resp.Zones)) @@ -873,7 +873,7 @@ func resourceWindowsVirtualMachineScaleSetRead(d *pluginsdk.ResourceData, meta i } if resp.VirtualMachineScaleSetProperties == nil { - return fmt.Errorf("retrieving Windows Virtual Machine Scale Set %q (Resource Group %q): `properties` was nil", id.Name, id.ResourceGroup) + return fmt.Errorf("retrieving Windows %s: `properties` was nil", id) } props := *resp.VirtualMachineScaleSetProperties @@ -1108,18 +1108,18 @@ func resourceWindowsVirtualMachineScaleSetDelete(d *pluginsdk.ResourceData, meta ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineScaleSetID(d.Id()) + id, err := commonids.ParseVirtualMachineScaleSetID(d.Id()) if err != nil { return err } - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, "") if err != nil { if utils.ResponseWasNotFound(resp.Response) { return nil } - return fmt.Errorf("retrieving Windows Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Windows %s: %+v", id, err) } // If rolling upgrades are configured and running we need to cancel them before trying to delete the VMSS @@ -1141,36 +1141,36 @@ func resourceWindowsVirtualMachineScaleSetDelete(d *pluginsdk.ResourceData, meta update := compute.VirtualMachineScaleSetUpdate{ Sku: resp.Sku, } - future, err := client.Update(ctx, id.ResourceGroup, id.Name, update) + future, err := client.Update(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, update) if err != nil { - return fmt.Errorf("updating number of instances in Windows Virtual Machine Scale Set %q (Resource Group %q) to scale to 0: %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("updating number of instances in Windows %s to scale to 0: %+v", id, err) } log.Printf("[DEBUG] Waiting for scaling of instances to 0 prior to deletion - this helps avoids networking issues within Azure") err = future.WaitForCompletionRef(ctx, client.Client) if err != nil { - return fmt.Errorf("waiting for number of instances in Windows Virtual Machine Scale Set %q (Resource Group %q) to scale to 0: %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for number of instances in Windows %s to scale to 0: %+v", id, err) } log.Printf("[DEBUG] Scaled instances to 0 prior to deletion - this helps avoids networking issues within Azure") } else { log.Printf("[DEBUG] Unable to scale instances to `0` since the `sku` block is nil - trying to delete anyway") } - log.Printf("[DEBUG] Deleting Windows Virtual Machine Scale Set %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deleting Windows %s", id) // @ArcturusZhang (mimicking from windows_virtual_machine_pluginsdk.go): sending `nil` here omits this value from being sent // which matches the previous behaviour - we're only splitting this out so it's clear why // TODO: support force deletion once it's out of Preview, if applicable var forceDeletion *bool = nil - future, err := client.Delete(ctx, id.ResourceGroup, id.Name, forceDeletion) + future, err := client.Delete(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, forceDeletion) if err != nil { - return fmt.Errorf("deleting Windows Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("deleting Windows %s: %+v", id, err) } - log.Printf("[DEBUG] Waiting for deletion of Windows Virtual Machine Scale Set %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Waiting for deletion of Windows %s.", id) if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for deletion of Windows Virtual Machine Scale Set %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for deletion of Windows %s: %+v", id, err) } - log.Printf("[DEBUG] Deleted Windows Virtual Machine Scale Set %q (Resource Group %q).", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deleted Windows %s", id) return nil } diff --git a/internal/services/compute/windows_virtual_machine_scale_set_resource_other_test.go b/internal/services/compute/windows_virtual_machine_scale_set_resource_other_test.go index fc1957d606be..67aa46def682 100644 --- a/internal/services/compute/windows_virtual_machine_scale_set_resource_other_test.go +++ b/internal/services/compute/windows_virtual_machine_scale_set_resource_other_test.go @@ -10,11 +10,11 @@ import ( "testing" "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/terraform-plugin-testing/terraform" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/tombuildsstuff/kermit/sdk/compute/2023-03-01/compute" ) @@ -943,12 +943,12 @@ func TestAccWindowsVirtualMachineScaleSet_otherCancelRollingUpgrades(t *testing. // and simulates the scenario where rolling upgrades are running when we try to delete a VMSS client := clients.Compute.VMScaleSetClient - id, err := parse.VirtualMachineScaleSetID(state.Attributes["id"]) + id, err := commonids.ParseVirtualMachineScaleSetID(state.Attributes["id"]) if err != nil { return err } - existing, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + existing, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { return fmt.Errorf("retrieving %s: %+v", *id, err) } @@ -974,7 +974,7 @@ func TestAccWindowsVirtualMachineScaleSet_otherCancelRollingUpgrades(t *testing. VirtualMachineScaleSetUpdateProperties: &updateProps, } - if _, err := client.Update(ctx, id.ResourceGroup, id.Name, update); err != nil { + if _, err := client.Update(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, update); err != nil { return fmt.Errorf("updating %s: %+v", *id, err) } diff --git a/internal/services/compute/windows_virtual_machine_scale_set_resource_test.go b/internal/services/compute/windows_virtual_machine_scale_set_resource_test.go index 99e91170c717..9a9e32778a61 100644 --- a/internal/services/compute/windows_virtual_machine_scale_set_resource_test.go +++ b/internal/services/compute/windows_virtual_machine_scale_set_resource_test.go @@ -7,9 +7,9 @@ import ( "context" "fmt" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" ) @@ -17,14 +17,14 @@ import ( type WindowsVirtualMachineScaleSetResource struct{} func (r WindowsVirtualMachineScaleSetResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { - id, err := parse.VirtualMachineScaleSetID(state.ID) + id, err := commonids.ParseVirtualMachineScaleSetID(state.ID) if err != nil { return nil, err } - resp, err := clients.Compute.VMScaleSetClient.Get(ctx, id.ResourceGroup, id.Name, "") + resp, err := clients.Compute.VMScaleSetClient.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, "") if err != nil { - return nil, fmt.Errorf("retrieving Compute Windows Virtual Machine Scale Set %q", id) + return nil, fmt.Errorf("retrieving Windows %s: %+v", id, err) } return utils.Bool(resp.ID != nil), nil diff --git a/internal/services/legacy/virtual_machine_scale_set_resource.go b/internal/services/legacy/virtual_machine_scale_set_resource.go index 6122a75d4d53..230110209321 100644 --- a/internal/services/legacy/virtual_machine_scale_set_resource.go +++ b/internal/services/legacy/virtual_machine_scale_set_resource.go @@ -17,7 +17,6 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" validate2 "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/services/legacy/migration" "github.com/hashicorp/terraform-provider-azurerm/internal/tags" @@ -49,7 +48,7 @@ func resourceVirtualMachineScaleSet() *pluginsdk.Resource { DeprecationMessage: `The 'azurerm_virtual_machine_scale_set' resource has been superseded by the 'azurerm_linux_virtual_machine_scale_set' and 'azurerm_windows_virtual_machine_scale_set' resources. Whilst this resource will continue to be available in the 2.x and 3.x releases it is feature-frozen for compatibility purposes, will no longer receive any updates and will be removed in a future major release of the Azure Provider.`, Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { - _, err := parse.VirtualMachineScaleSetID(id) + _, err := commonids.ParseVirtualMachineScaleSetID(id) return err }), @@ -814,11 +813,11 @@ func resourceVirtualMachineScaleSetCreateUpdate(d *pluginsdk.ResourceData, meta log.Printf("[INFO] preparing arguments for Azure ARM Virtual Machine Scale Set creation.") - id := parse.NewVirtualMachineScaleSetID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + id := commonids.NewVirtualMachineScaleSetID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) if d.IsNewResource() { // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - existing, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + existing, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { if !utils.ResponseWasNotFound(existing.Response) { return fmt.Errorf("checking for presence of existing %s: %s", id, err) @@ -917,7 +916,7 @@ func resourceVirtualMachineScaleSetCreateUpdate(d *pluginsdk.ResourceData, meta } properties := compute.VirtualMachineScaleSet{ - Name: &id.Name, + Name: &id.VirtualMachineScaleSetName, Location: &location, Tags: tags.Expand(t), Sku: sku, @@ -937,7 +936,7 @@ func resourceVirtualMachineScaleSetCreateUpdate(d *pluginsdk.ResourceData, meta properties.Plan = expandAzureRmVirtualMachineScaleSetPlan(d) } - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.Name, properties) + future, err := client.CreateOrUpdate(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, properties) if err != nil { return err } @@ -956,24 +955,24 @@ func resourceVirtualMachineScaleSetRead(d *pluginsdk.ResourceData, meta interfac ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineScaleSetID(d.Id()) + id, err := commonids.ParseVirtualMachineScaleSetID(d.Id()) if err != nil { return err } // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { if utils.ResponseWasNotFound(resp.Response) { - log.Printf("[INFO] AzureRM Virtual Machine Scale Set (%s) Not Found. Removing from State", id.Name) + log.Printf("[INFO] %s was not found. Removing from State", id) d.SetId("") return nil } - return fmt.Errorf("making Read request on Azure Virtual Machine Scale Set %s: %+v", id.Name, err) + return fmt.Errorf("making Read request on %s: %+v", id, err) } - d.Set("name", id.Name) - d.Set("resource_group_name", id.ResourceGroup) + d.Set("name", id.VirtualMachineScaleSetName) + d.Set("resource_group_name", id.ResourceGroupName) if location := resp.Location; location != nil { d.Set("location", azure.NormalizeLocation(*location)) } @@ -1116,7 +1115,7 @@ func resourceVirtualMachineScaleSetDelete(d *pluginsdk.ResourceData, meta interf ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineScaleSetID(d.Id()) + id, err := commonids.ParseVirtualMachineScaleSetID(d.Id()) if err != nil { return err } @@ -1124,7 +1123,7 @@ func resourceVirtualMachineScaleSetDelete(d *pluginsdk.ResourceData, meta interf // @ArcturusZhang (mimicking from virtual_machine_pluginsdk.go): sending `nil` here omits this value from being sent // which matches the previous behaviour - we're only splitting this out so it's clear why var forceDeletion *bool = nil - future, err := client.Delete(ctx, id.ResourceGroup, id.Name, forceDeletion) + future, err := client.Delete(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, forceDeletion) if err != nil { return err } diff --git a/internal/services/legacy/virtual_machine_scale_set_resource_test.go b/internal/services/legacy/virtual_machine_scale_set_resource_test.go index 8cf810cd734f..e50505ddd881 100644 --- a/internal/services/legacy/virtual_machine_scale_set_resource_test.go +++ b/internal/services/legacy/virtual_machine_scale_set_resource_test.go @@ -10,10 +10,10 @@ import ( "testing" "time" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" "github.com/tombuildsstuff/kermit/sdk/compute/2023-03-01/compute" @@ -799,14 +799,14 @@ func TestAccVirtualMachineScaleSet_importBasic_managedDisk_withZones(t *testing. } func (VirtualMachineScaleSetResource) Destroy(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { - id, err := parse.VirtualMachineScaleSetID(state.ID) + id, err := commonids.ParseVirtualMachineScaleSetID(state.ID) if err != nil { return nil, err } // this is a preview feature we don't want to use right now var forceDelete *bool = nil - future, err := client.Legacy.VMScaleSetClient.Delete(ctx, id.ResourceGroup, id.Name, forceDelete) + future, err := client.Legacy.VMScaleSetClient.Delete(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, forceDelete) if err != nil { return nil, fmt.Errorf("Bad: deleting %s: %+v", *id, err) } @@ -819,13 +819,13 @@ func (VirtualMachineScaleSetResource) Destroy(ctx context.Context, client *clien } func (VirtualMachineScaleSetResource) hasLoadBalancer(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) error { - id, err := parse.VirtualMachineScaleSetID(state.ID) + id, err := commonids.ParseVirtualMachineScaleSetID(state.ID) if err != nil { return err } // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - read, err := client.Legacy.VMScaleSetClient.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + read, err := client.Legacy.VMScaleSetClient.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { return err } @@ -858,13 +858,13 @@ func (VirtualMachineScaleSetResource) hasLoadBalancer(ctx context.Context, clien } func (VirtualMachineScaleSetResource) hasApplicationGateway(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) error { - id, err := parse.VirtualMachineScaleSetID(state.ID) + id, err := commonids.ParseVirtualMachineScaleSetID(state.ID) if err != nil { return err } // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - read, err := client.Legacy.VMScaleSetClient.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + read, err := client.Legacy.VMScaleSetClient.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { return err } @@ -897,15 +897,15 @@ func (VirtualMachineScaleSetResource) hasApplicationGateway(ctx context.Context, } func (t VirtualMachineScaleSetResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { - id, err := parse.VirtualMachineScaleSetID(state.ID) + id, err := commonids.ParseVirtualMachineScaleSetID(state.ID) if err != nil { return nil, err } // Upgrading to the 2021-07-01 exposed a new expand parameter in the GET method - resp, err := clients.Legacy.VMScaleSetClient.Get(ctx, id.ResourceGroup, id.Name, compute.ExpandTypesForGetVMScaleSetsUserData) + resp, err := clients.Legacy.VMScaleSetClient.Get(ctx, id.ResourceGroupName, id.VirtualMachineScaleSetName, compute.ExpandTypesForGetVMScaleSetsUserData) if err != nil { - return nil, fmt.Errorf("retrieving Compute Virtual Machine Scale Set %q", id) + return nil, fmt.Errorf("retrieving %s: %+v", id, err) } return utils.Bool(resp.ID != nil), nil diff --git a/internal/services/maintenance/maintenance_assignment_virtual_machine_scale_set_resource.go b/internal/services/maintenance/maintenance_assignment_virtual_machine_scale_set_resource.go index d819c7037327..930e28c06d06 100644 --- a/internal/services/maintenance/maintenance_assignment_virtual_machine_scale_set_resource.go +++ b/internal/services/maintenance/maintenance_assignment_virtual_machine_scale_set_resource.go @@ -8,14 +8,13 @@ import ( "time" "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-sdk/resource-manager/maintenance/2022-07-01-preview/configurationassignments" "github.com/hashicorp/go-azure-sdk/resource-manager/maintenance/2022-07-01-preview/maintenanceconfigurations" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - parseCompute "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" - validateCompute "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/services/maintenance/migration" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/suppress" @@ -41,7 +40,7 @@ func resourceArmMaintenanceAssignmentVirtualMachineScaleSet() *pluginsdk.Resourc return err } - if _, err := parseCompute.VirtualMachineScaleSetID(parsed.Scope); err != nil { + if _, err := commonids.ParseVirtualMachineScaleSetID(parsed.Scope); err != nil { return fmt.Errorf("parsing %q as a Virtual Machine Scale Set ID: %+v", parsed.Scope, err) } @@ -68,7 +67,7 @@ func resourceArmMaintenanceAssignmentVirtualMachineScaleSet() *pluginsdk.Resourc Type: pluginsdk.TypeString, Required: true, ForceNew: true, - ValidateFunc: validateCompute.VirtualMachineScaleSetID, + ValidateFunc: commonids.ValidateVirtualMachineScaleSetID, DiffSuppressFunc: suppress.CaseDifference, // TODO remove in 4.0 }, }, @@ -80,7 +79,7 @@ func resourceArmMaintenanceAssignmentVirtualMachineScaleSetCreate(d *pluginsdk.R ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() - virtualMachineScaleSetId, err := parseCompute.VirtualMachineScaleSetID(d.Get("virtual_machine_scale_set_id").(string)) + virtualMachineScaleSetId, err := commonids.ParseVirtualMachineScaleSetID(d.Get("virtual_machine_scale_set_id").(string)) if err != nil { return err } @@ -140,7 +139,7 @@ func resourceArmMaintenanceAssignmentVirtualMachineScaleSetRead(d *pluginsdk.Res return fmt.Errorf("checking for presence of existing %s: %+v", *id, err) } - virtualMachineScaleSetId, err := parseCompute.VirtualMachineScaleSetID(id.Scope) + virtualMachineScaleSetId, err := commonids.ParseVirtualMachineScaleSetID(id.Scope) if err != nil { return fmt.Errorf("parsing %q as a virtual machine scale set id: %+v", id.Scope, err) } diff --git a/internal/services/maintenance/migration/assignment_virtual_machine_scale_set_v0_to_v1.go b/internal/services/maintenance/migration/assignment_virtual_machine_scale_set_v0_to_v1.go index 053b3263730a..5f86f161118b 100644 --- a/internal/services/maintenance/migration/assignment_virtual_machine_scale_set_v0_to_v1.go +++ b/internal/services/maintenance/migration/assignment_virtual_machine_scale_set_v0_to_v1.go @@ -5,8 +5,8 @@ import ( "fmt" "log" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-sdk/resource-manager/maintenance/2022-07-01-preview/configurationassignments" - parseCompute "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" ) @@ -45,7 +45,7 @@ func (AssignmentVirtualMachineScaleSetV0ToV1) UpgradeFunc() pluginsdk.StateUpgra return nil, fmt.Errorf("parsing old id %q: %+v", oldIdRaw, err) } - virtualMachineScaleSetId, err := parseCompute.VirtualMachineScaleSetIDInsensitively(oldId.Scope) + virtualMachineScaleSetId, err := commonids.ParseVirtualMachineScaleSetIDInsensitively(oldId.Scope) if err != nil { return nil, fmt.Errorf("parsing %q as a virtual machine scale set id: %+v", oldId.Scope, err) } diff --git a/internal/services/maintenance/parse/maintenance_assignment_virtual_machine_scale_set.go b/internal/services/maintenance/parse/maintenance_assignment_virtual_machine_scale_set.go index ceaeec1a7d47..aa5dea430206 100644 --- a/internal/services/maintenance/parse/maintenance_assignment_virtual_machine_scale_set.go +++ b/internal/services/maintenance/parse/maintenance_assignment_virtual_machine_scale_set.go @@ -7,11 +7,11 @@ import ( "fmt" "regexp" - parseCompute "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" ) type MaintenanceAssignmentVirtualMachineScaleSetId struct { - VirtualMachineScaleSetId *parseCompute.VirtualMachineScaleSetId + VirtualMachineScaleSetId *commonids.VirtualMachineScaleSetId VirtualMachineScaleSetIdRaw string Name string } @@ -23,7 +23,7 @@ func MaintenanceAssignmentVirtualMachineScaleSetID(input string) (*MaintenanceAs } targetResourceId, name := groups[1], groups[2] - virtualMachineScaleSetId, err := parseCompute.VirtualMachineScaleSetID(targetResourceId) + virtualMachineScaleSetId, err := commonids.ParseVirtualMachineScaleSetIDInsensitively(targetResourceId) if err != nil { return nil, fmt.Errorf("parsing Maintenance Assignment Virtual Machine Scale Set ID: %q: Expected valid virtual machine scale set ID", input) } diff --git a/internal/services/maintenance/parse/maintenance_assignment_virtual_machine_scale_set_test.go b/internal/services/maintenance/parse/maintenance_assignment_virtual_machine_scale_set_test.go index 33155bb90d3f..3245bc1e27f9 100644 --- a/internal/services/maintenance/parse/maintenance_assignment_virtual_machine_scale_set_test.go +++ b/internal/services/maintenance/parse/maintenance_assignment_virtual_machine_scale_set_test.go @@ -7,7 +7,7 @@ import ( "reflect" "testing" - parseCompute "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" ) func TestMaintenanceAssignmentVirtualMachineScaleSetID(t *testing.T) { @@ -58,10 +58,10 @@ func TestMaintenanceAssignmentVirtualMachineScaleSetID(t *testing.T) { Error: false, Expect: &MaintenanceAssignmentVirtualMachineScaleSetId{ VirtualMachineScaleSetIdRaw: "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resGroup1/providers/microsoft.compute/virtualMachineScaleSets/vmss1", - VirtualMachineScaleSetId: &parseCompute.VirtualMachineScaleSetId{ - SubscriptionId: "00000000-0000-0000-0000-000000000000", - ResourceGroup: "resGroup1", - Name: "vmss1", + VirtualMachineScaleSetId: &commonids.VirtualMachineScaleSetId{ + SubscriptionId: "00000000-0000-0000-0000-000000000000", + ResourceGroupName: "resGroup1", + VirtualMachineScaleSetName: "vmss1", }, Name: "assign1", }, diff --git a/internal/services/network/virtual_machine_scale_set_packet_capture_resource.go b/internal/services/network/virtual_machine_scale_set_packet_capture_resource.go index 57fefe207c89..f33ac7a58414 100644 --- a/internal/services/network/virtual_machine_scale_set_packet_capture_resource.go +++ b/internal/services/network/virtual_machine_scale_set_packet_capture_resource.go @@ -16,7 +16,6 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" computeParse "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" - computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" networkValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" @@ -61,7 +60,7 @@ func resourceVirtualMachineScaleSetPacketCapture() *pluginsdk.Resource { Required: true, ForceNew: true, ValidateFunc: validation.Any( - computeValidate.VirtualMachineScaleSetID, + commonids.ValidateVirtualMachineScaleSetID, ), }, diff --git a/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go b/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go index 4c8e6d5d3737..531538f052bb 100644 --- a/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go +++ b/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go @@ -31,8 +31,6 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/features" - computeParse "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" - computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" keyVaultValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/keyvault/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/services/recoveryservices/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/recoveryservices/validate" @@ -287,7 +285,7 @@ func resourceSiteRecoveryReplicatedVM() *pluginsdk.Resource { "target_virtual_machine_scale_set_id": { Type: pluginsdk.TypeString, Optional: true, - ValidateFunc: computeValidate.VirtualMachineScaleSetID, + ValidateFunc: commonids.ValidateVirtualMachineScaleSetID, }, "network_interface": { @@ -816,7 +814,7 @@ func resourceSiteRecoveryReplicatedItemRead(d *pluginsdk.ResourceData, meta inte vmssId := "" if respVmssId := pointer.From(a2aDetails.RecoveryVirtualMachineScaleSetId); respVmssId != "" { - parsedVmssId, err := computeParse.VirtualMachineScaleSetIDInsensitively(respVmssId) + parsedVmssId, err := commonids.ParseVirtualMachineScaleSetIDInsensitively(respVmssId) if err != nil { return err } From 15c6d295e76e4d4fc7cf532f4dc573a519b9a164 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Fri, 15 Sep 2023 13:29:42 -0700 Subject: [PATCH 199/336] Update CHANGELOG.md for #23272 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fc2131b1e4b..8db2e264228a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 3.74.0 (Unreleased) + +ENHANCEMENTS: + +* dependencies - swap Virtual Machine Scale Set Ids to `hashicorp/go-azure-helpers/commonids` [GH-23272] + ## 3.73.0 (September 14, 2023) FEATURES: From 46e3766b7f93aaf3a9efe2b6fe85bdac94314855 Mon Sep 17 00:00:00 2001 From: Drew Date: Mon, 18 Sep 2023 00:48:13 -0500 Subject: [PATCH 200/336] Add properties to error message (#23271) --- internal/services/storage/storage_account_resource.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/services/storage/storage_account_resource.go b/internal/services/storage/storage_account_resource.go index 6c2052d63a06..cb48cebdab4d 100644 --- a/internal/services/storage/storage_account_resource.go +++ b/internal/services/storage/storage_account_resource.go @@ -2198,7 +2198,7 @@ func resourceStorageAccountRead(d *pluginsdk.ResourceData, meta interface{}) err staticWebsiteProps, err := accountsClient.GetServiceProperties(ctx, id.StorageAccountName) if err != nil { - return fmt.Errorf("retrieving static website for %s: %+v", *id, err) + return fmt.Errorf("retrieving static website properties for %s: %+v", *id, err) } staticWebsite := flattenStaticWebsiteProperties(staticWebsiteProps) if err := d.Set("static_website", staticWebsite); err != nil { From 73217f39929d10735a4da66fabc4ef978c025ff8 Mon Sep 17 00:00:00 2001 From: lonegunmanb Date: Mon, 18 Sep 2023 13:54:01 +0800 Subject: [PATCH 201/336] amend missing data source attributes (#23279) --- website/docs/d/public_ip.html.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/website/docs/d/public_ip.html.markdown b/website/docs/d/public_ip.html.markdown index 311bd6967149..2fd9d2b25849 100644 --- a/website/docs/d/public_ip.html.markdown +++ b/website/docs/d/public_ip.html.markdown @@ -102,6 +102,7 @@ output "public_ip_address" { ## Attributes Reference * `id` - The ID of the Public IP address. +* `allocation_method` - The allocation method for this IP address. Possible values are `Static` or `Dynamic`. * `domain_name_label` - The label for the Domain Name. * `idle_timeout_in_minutes` - Specifies the timeout for the TCP idle connection. * `ddos_protection_mode` - The DDoS protection mode of the public IP. @@ -109,6 +110,8 @@ output "public_ip_address" { * `fqdn` - Fully qualified domain name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. * `ip_address` - The IP address value that was allocated. * `ip_version` - The IP version being used, for example `IPv4` or `IPv6`. +* `location` - The region that this public ip exists. +* `reverse_fqdn` - The fully qualified domain name that resolves to this public IP address. * `sku` - The SKU of the Public IP. * `ip_tags` - A mapping of tags to assigned to the resource. * `tags` - A mapping of tags to assigned to the resource. From 1fa32f2d5b353f58f052521f6146698f1f5c8d34 Mon Sep 17 00:00:00 2001 From: Neil Ye Date: Mon, 18 Sep 2023 13:54:58 +0800 Subject: [PATCH 202/336] `azurerm_postgresql_flexible_server` - support new value `4193280` for `storage_mb` (#23277) * azurerm_postgresql_flexible_server - support new value 4193280 for storage_mb * update code --- .../services/postgres/postgresql_flexible_server_resource.go | 2 +- website/docs/r/postgresql_flexible_server.html.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/services/postgres/postgresql_flexible_server_resource.go b/internal/services/postgres/postgresql_flexible_server_resource.go index fc345581f7ec..28f6be42abcd 100644 --- a/internal/services/postgres/postgresql_flexible_server_resource.go +++ b/internal/services/postgres/postgresql_flexible_server_resource.go @@ -129,7 +129,7 @@ func resourcePostgresqlFlexibleServer() *pluginsdk.Resource { Type: pluginsdk.TypeInt, Optional: true, Computed: true, - ValidateFunc: validation.IntInSlice([]int{32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33553408}), + ValidateFunc: validation.IntInSlice([]int{32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4193280, 4194304, 8388608, 16777216, 33553408}), }, "version": { diff --git a/website/docs/r/postgresql_flexible_server.html.markdown b/website/docs/r/postgresql_flexible_server.html.markdown index 9995637376b7..be26995aaa06 100644 --- a/website/docs/r/postgresql_flexible_server.html.markdown +++ b/website/docs/r/postgresql_flexible_server.html.markdown @@ -132,7 +132,7 @@ The following arguments are supported: * `auto_grow_enabled` - (Optional) Is the storage auto grow for PostgreSQL Flexible Server enabled? Defaults to `false`. -* `storage_mb` - (Optional) The max storage allowed for the PostgreSQL Flexible Server. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4194304`, `8388608`, `16777216` and `33553408`. +* `storage_mb` - (Optional) The max storage allowed for the PostgreSQL Flexible Server. Possible values are `32768`, `65536`, `131072`, `262144`, `524288`, `1048576`, `2097152`, `4193280`, `4194304`, `8388608`, `16777216` and `33553408`. * `tags` - (Optional) A mapping of tags which should be assigned to the PostgreSQL Flexible Server. From 400fc1da7fef169cdc87f73e880e1d646ce9af49 Mon Sep 17 00:00:00 2001 From: "hashicorp-tsccr[bot]" Date: Mon, 18 Sep 2023 06:07:06 +0000 Subject: [PATCH 203/336] Result of tsccr-helper -log-level=info -pin-all-workflows . --- .github/workflows/automation-open-pull-request.yaml | 2 +- .github/workflows/breaking-change-detection.yaml | 2 +- .github/workflows/depscheck.yaml | 2 +- .github/workflows/gencheck.yaml | 2 +- .github/workflows/golint.yaml | 2 +- .github/workflows/gradually-deprecated.yaml | 2 +- .github/workflows/increment-milestone.yaml | 2 +- .github/workflows/issue-opened.yaml | 2 +- .github/workflows/mkdocs.yaml | 2 +- .github/workflows/provider-test.yaml | 2 +- .github/workflows/pull-request-reviewed.yaml | 2 +- .github/workflows/release.yaml | 6 +++--- .github/workflows/save-artifacts.yaml | 2 +- .github/workflows/teamcity-test.yaml | 4 ++-- .github/workflows/tflint.yaml | 2 +- .github/workflows/thirty-two-bit.yaml | 2 +- .github/workflows/unit-test.yaml | 2 +- .github/workflows/validate-examples.yaml | 2 +- .github/workflows/website-lint.yaml | 2 +- 19 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/automation-open-pull-request.yaml b/.github/workflows/automation-open-pull-request.yaml index 6ac47f2ba325..2a6d33dfbfd3 100644 --- a/.github/workflows/automation-open-pull-request.yaml +++ b/.github/workflows/automation-open-pull-request.yaml @@ -12,7 +12,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - name: "open a pull request" id: open-pr diff --git a/.github/workflows/breaking-change-detection.yaml b/.github/workflows/breaking-change-detection.yaml index 0bd20d3df8ee..e4d475cb377c 100644 --- a/.github/workflows/breaking-change-detection.yaml +++ b/.github/workflows/breaking-change-detection.yaml @@ -22,7 +22,7 @@ jobs: detect: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/depscheck.yaml b/.github/workflows/depscheck.yaml index 2e503f5dc64f..be8571fe19fe 100644 --- a/.github/workflows/depscheck.yaml +++ b/.github/workflows/depscheck.yaml @@ -16,7 +16,7 @@ jobs: depscheck: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/gencheck.yaml b/.github/workflows/gencheck.yaml index 0242765fa67f..e5e2d6af9960 100644 --- a/.github/workflows/gencheck.yaml +++ b/.github/workflows/gencheck.yaml @@ -19,7 +19,7 @@ jobs: gencheck: runs-on: [custom, linux, large] steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/golint.yaml b/.github/workflows/golint.yaml index 29cca99d8189..d0a37548695d 100644 --- a/.github/workflows/golint.yaml +++ b/.github/workflows/golint.yaml @@ -20,7 +20,7 @@ jobs: golint: runs-on: [custom, linux, large] steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/gradually-deprecated.yaml b/.github/workflows/gradually-deprecated.yaml index 279994a30585..442c5c9a8d58 100644 --- a/.github/workflows/gradually-deprecated.yaml +++ b/.github/workflows/gradually-deprecated.yaml @@ -16,7 +16,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 with: fetch-depth: 0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 diff --git a/.github/workflows/increment-milestone.yaml b/.github/workflows/increment-milestone.yaml index 6b9384bd0a3b..4e130b591af9 100644 --- a/.github/workflows/increment-milestone.yaml +++ b/.github/workflows/increment-milestone.yaml @@ -14,7 +14,7 @@ jobs: increment-milestone: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 with: fetch-depth: 0 - name: "Increment Milestone" diff --git a/.github/workflows/issue-opened.yaml b/.github/workflows/issue-opened.yaml index b64d83a1aa4b..25008ab534b2 100644 --- a/.github/workflows/issue-opened.yaml +++ b/.github/workflows/issue-opened.yaml @@ -12,7 +12,7 @@ jobs: issue_triage: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - uses: github/issue-labeler@98b5412841f6c4b0b3d9c29d53c13fad16bd7de2 # v3.2 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/mkdocs.yaml b/.github/workflows/mkdocs.yaml index a4fa013b46bc..7de4d2f5fd35 100644 --- a/.github/workflows/mkdocs.yaml +++ b/.github/workflows/mkdocs.yaml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - name: Publish uses: mhausenblas/mkdocs-deploy-gh-pages@d77dd03172e96abbcdb081d8c948224762033653 # 1.26 diff --git a/.github/workflows/provider-test.yaml b/.github/workflows/provider-test.yaml index 71c6de19d3d9..f2e508690a0e 100644 --- a/.github/workflows/provider-test.yaml +++ b/.github/workflows/provider-test.yaml @@ -36,7 +36,7 @@ jobs: if: needs.secrets-check.outputs.available == 'true' steps: - name: Checkout - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - name: Install Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 diff --git a/.github/workflows/pull-request-reviewed.yaml b/.github/workflows/pull-request-reviewed.yaml index 306e21133ddb..ec359edac72d 100644 --- a/.github/workflows/pull-request-reviewed.yaml +++ b/.github/workflows/pull-request-reviewed.yaml @@ -30,7 +30,7 @@ jobs: echo ${{ github.repository }} > wr_actions/ghrepo.txt echo ${{ github.event.pull_request.number }} > wr_actions/prnumber.txt echo "remove-waiting-response" > wr_actions/action.txt - - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 + - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 with: name: artifact path: wr_actions diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 75fc48d748fa..74ae22c4f7ad 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -15,18 +15,18 @@ jobs: outputs: version: ${{ steps.go-version.outputs.version }} steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - id: go-version run: echo "version=$(cat ./.go-version)" >>${GITHUB_OUTPUT} release-notes: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 with: fetch-depth: 0 - name: Generate Release Notes run: sed -n -e "1{/# /d;}" -e "2{/^$/d;}" -e "/# $(git describe --abbrev=0 --exclude="$(git describe --abbrev=0 --match='v*.*.*' --tags)" --match='v*.*.*' --tags | tr -d v)/q;p" CHANGELOG.md > release-notes.txt - - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 + - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 with: name: release-notes path: release-notes.txt diff --git a/.github/workflows/save-artifacts.yaml b/.github/workflows/save-artifacts.yaml index 1f98c7f4bc23..5c95f66d749f 100644 --- a/.github/workflows/save-artifacts.yaml +++ b/.github/workflows/save-artifacts.yaml @@ -14,7 +14,7 @@ jobs: echo ${{ github.repository_owner }} > wr_actions/ghowner.txt echo ${{ github.event.repository.name }} > wr_actions/ghrepo.txt echo ${{ github.event.pull_request.number }} > wr_actions/prnumber.txt - - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 + - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 with: name: artifact path: wr_actions diff --git a/.github/workflows/teamcity-test.yaml b/.github/workflows/teamcity-test.yaml index 565b1eb683d9..646c0b4009a1 100644 --- a/.github/workflows/teamcity-test.yaml +++ b/.github/workflows/teamcity-test.yaml @@ -21,13 +21,13 @@ jobs: teamcity-test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3.12.0 with: distribution: zulu java-version: 17 java-package: jdk - - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 + - uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 # v3.3.2 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} diff --git a/.github/workflows/tflint.yaml b/.github/workflows/tflint.yaml index 88257fbedbc8..0768b8322644 100644 --- a/.github/workflows/tflint.yaml +++ b/.github/workflows/tflint.yaml @@ -20,7 +20,7 @@ jobs: tflint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/thirty-two-bit.yaml b/.github/workflows/thirty-two-bit.yaml index 4f6e0a83f39b..9892137d419b 100644 --- a/.github/workflows/thirty-two-bit.yaml +++ b/.github/workflows/thirty-two-bit.yaml @@ -21,7 +21,7 @@ jobs: compatibility-32bit-test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/unit-test.yaml b/.github/workflows/unit-test.yaml index 1164903027b4..ab17db22f3bf 100644 --- a/.github/workflows/unit-test.yaml +++ b/.github/workflows/unit-test.yaml @@ -21,7 +21,7 @@ jobs: test: runs-on: [custom, linux, large] steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/validate-examples.yaml b/.github/workflows/validate-examples.yaml index 084295689cc2..16f47cf87c1a 100644 --- a/.github/workflows/validate-examples.yaml +++ b/.github/workflows/validate-examples.yaml @@ -20,7 +20,7 @@ jobs: website-lint: runs-on: [custom, linux, large] steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/website-lint.yaml b/.github/workflows/website-lint.yaml index 14e5c6bff561..81c401acfc9c 100644 --- a/.github/workflows/website-lint.yaml +++ b/.github/workflows/website-lint.yaml @@ -16,7 +16,7 @@ jobs: website-lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version From a8aef80d6d9b9fc43c8f34944100ee44a517540c Mon Sep 17 00:00:00 2001 From: Tao <104055472+teowa@users.noreply.github.com> Date: Mon, 18 Sep 2023 14:15:53 +0800 Subject: [PATCH 204/336] `azurerm_monitor_diagnostic_setting` - `retention_policy` deprecated in favor of `azurerm_storage_management_policy` (#23260) * enhance deprecation message * add more copy --- .../monitor_diagnostic_setting_resource.go | 16 +++++++++------- .../r/monitor_diagnostic_setting.html.markdown | 9 +++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/internal/services/monitor/monitor_diagnostic_setting_resource.go b/internal/services/monitor/monitor_diagnostic_setting_resource.go index 5be8bae6c9d8..338ebcfe66d5 100644 --- a/internal/services/monitor/monitor_diagnostic_setting_resource.go +++ b/internal/services/monitor/monitor_diagnostic_setting_resource.go @@ -129,7 +129,7 @@ func resourceMonitorDiagnosticSetting() *pluginsdk.Resource { Type: pluginsdk.TypeList, Optional: true, MaxItems: 1, - Deprecated: "`retention_policy` has been deprecated - to learn more https://aka.ms/diagnostic_settings_log_retention", + Deprecated: "`retention_policy` has been deprecated in favor of `azurerm_storage_management_policy` resource - to learn more https://aka.ms/diagnostic_settings_log_retention", Elem: &pluginsdk.Resource{ Schema: map[string]*pluginsdk.Schema{ "enabled": { @@ -168,9 +168,10 @@ func resourceMonitorDiagnosticSetting() *pluginsdk.Resource { }, "retention_policy": { - Type: pluginsdk.TypeList, - Optional: true, - MaxItems: 1, + Type: pluginsdk.TypeList, + Optional: true, + MaxItems: 1, + Deprecated: "`retention_policy` has been deprecated in favor of `azurerm_storage_management_policy` resource - to learn more https://aka.ms/diagnostic_settings_log_retention", Elem: &pluginsdk.Resource{ Schema: map[string]*pluginsdk.Schema{ "enabled": { @@ -218,9 +219,10 @@ func resourceMonitorDiagnosticSetting() *pluginsdk.Resource { }, "retention_policy": { - Type: pluginsdk.TypeList, - Optional: true, - MaxItems: 1, + Type: pluginsdk.TypeList, + Optional: true, + MaxItems: 1, + Deprecated: "`retention_policy` has been deprecated in favor of `azurerm_storage_management_policy` resource - to learn more https://aka.ms/diagnostic_settings_log_retention", Elem: &pluginsdk.Resource{ Schema: map[string]*pluginsdk.Schema{ "enabled": { diff --git a/website/docs/r/monitor_diagnostic_setting.html.markdown b/website/docs/r/monitor_diagnostic_setting.html.markdown index 493de7b692a6..d3389703a611 100644 --- a/website/docs/r/monitor_diagnostic_setting.html.markdown +++ b/website/docs/r/monitor_diagnostic_setting.html.markdown @@ -124,6 +124,8 @@ A `log` block supports the following: * `retention_policy` - (Optional) A `retention_policy` block as defined below. +!> **NOTE:** `retention_policy` has been deprecated in favor of `azurerm_storage_management_policy` resource - to learn more information on the deprecation [in the Azure documentation](https://aka.ms/diagnostic_settings_log_retention). + * `enabled` - (Optional) Is this Diagnostic Log enabled? Defaults to `true`. --- @@ -140,6 +142,8 @@ An `enabled_log` block supports the following: * `retention_policy` - (Optional) A `retention_policy` block as defined below. +!> **NOTE:** `retention_policy` has been deprecated in favor of `azurerm_storage_management_policy` resource - to learn more information on the deprecation [in the Azure documentation](https://aka.ms/diagnostic_settings_log_retention). + --- A `metric` block supports the following: @@ -150,15 +154,20 @@ A `metric` block supports the following: * `retention_policy` - (Optional) A `retention_policy` block as defined below. +!> **NOTE:** `retention_policy` has been deprecated in favor of `azurerm_storage_management_policy` resource - to learn more information on the deprecation [in the Azure documentation](https://aka.ms/diagnostic_settings_log_retention). + * `enabled` - (Optional) Is this Diagnostic Metric enabled? Defaults to `true`. --- A `retention_policy` block supports the following: +!> **NOTE:** `retention_policy` has been deprecated in favor of `azurerm_storage_management_policy` resource - to learn more information on the deprecation [in the Azure documentation](https://aka.ms/diagnostic_settings_log_retention). + * `enabled` - (Required) Is this Retention Policy enabled? * `days` - (Optional) The number of days for which this Retention Policy should apply. + -> **NOTE:** Setting this to `0` will retain the events indefinitely. From 90455245b53020687237277bdb5ec4ae395f68f7 Mon Sep 17 00:00:00 2001 From: magodo Date: Mon, 18 Sep 2023 14:48:11 +0800 Subject: [PATCH 205/336] `azurerm_storage_account` - `azure_file_authentication.0.active_directory` supports setting `domain_name` and `domain_guid` when `directory_type` is `AADKERB` (#22833) * `azurerm_storage_account` - `azure_file_authentication.0.active_directory` supports setting `domain_name` and `domain_guid` when `directory_type` is `AADKERB` * Update test * Update * Update * Update doc * terrafmt * Avoid O+C * fmt * Always expand the ad block --- .../storage/storage_account_resource.go | 67 +++++++++++++------ .../storage/storage_account_resource_test.go | 54 +++++++++++++++ website/docs/r/storage_account.html.markdown | 14 ++-- 3 files changed, 107 insertions(+), 28 deletions(-) diff --git a/internal/services/storage/storage_account_resource.go b/internal/services/storage/storage_account_resource.go index cb48cebdab4d..a953917c26eb 100644 --- a/internal/services/storage/storage_account_resource.go +++ b/internal/services/storage/storage_account_resource.go @@ -189,12 +189,6 @@ func resourceStorageAccount() *pluginsdk.Resource { MaxItems: 1, Elem: &pluginsdk.Resource{ Schema: map[string]*pluginsdk.Schema{ - "storage_sid": { - Type: pluginsdk.TypeString, - Required: true, - ValidateFunc: validation.StringIsNotEmpty, - }, - "domain_guid": { Type: pluginsdk.TypeString, Required: true, @@ -207,21 +201,27 @@ func resourceStorageAccount() *pluginsdk.Resource { ValidateFunc: validation.StringIsNotEmpty, }, + "storage_sid": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + "domain_sid": { Type: pluginsdk.TypeString, - Required: true, + Optional: true, ValidateFunc: validation.StringIsNotEmpty, }, "forest_name": { Type: pluginsdk.TypeString, - Required: true, + Optional: true, ValidateFunc: validation.StringIsNotEmpty, }, "netbios_domain_name": { Type: pluginsdk.TypeString, - Required: true, + Optional: true, ValidateFunc: validation.StringIsNotEmpty, }, }, @@ -2462,14 +2462,31 @@ func expandArmStorageAccountAzureFilesAuthentication(input []interface{}) (*stor v := input[0].(map[string]interface{}) + ad := expandArmStorageAccountActiveDirectoryProperties(v["active_directory"].([]interface{})) + directoryOption := storage.DirectoryServiceOptions(v["directory_type"].(string)) - if _, ok := v["active_directory"]; directoryOption == storage.DirectoryServiceOptionsAD && !ok { - return nil, fmt.Errorf("`active_directory` is required when `directory_type` is `AD`") + + if directoryOption == storage.DirectoryServiceOptionsAD { + if ad == nil { + return nil, fmt.Errorf("`active_directory` is required when `directory_type` is `AD`") + } + if ad.AzureStorageSid == nil { + return nil, fmt.Errorf("`active_directory.0.storage_sid` is required when `directory_type` is `AD`") + } + if ad.DomainSid == nil { + return nil, fmt.Errorf("`active_directory.0.domain_sid` is required when `directory_type` is `AD`") + } + if ad.ForestName == nil { + return nil, fmt.Errorf("`active_directory.0.forest_name` is required when `directory_type` is `AD`") + } + if ad.NetBiosDomainName == nil { + return nil, fmt.Errorf("`active_directory.0.netbios_domain_name` is required when `directory_type` is `AD`") + } } return &storage.AzureFilesIdentityBasedAuthentication{ DirectoryServiceOptions: directoryOption, - ActiveDirectoryProperties: expandArmStorageAccountActiveDirectoryProperties(v["active_directory"].([]interface{})), + ActiveDirectoryProperties: ad, }, nil } @@ -2477,15 +2494,25 @@ func expandArmStorageAccountActiveDirectoryProperties(input []interface{}) *stor if len(input) == 0 { return nil } - v := input[0].(map[string]interface{}) - return &storage.ActiveDirectoryProperties{ - AzureStorageSid: utils.String(v["storage_sid"].(string)), - DomainGUID: utils.String(v["domain_guid"].(string)), - DomainName: utils.String(v["domain_name"].(string)), - DomainSid: utils.String(v["domain_sid"].(string)), - ForestName: utils.String(v["forest_name"].(string)), - NetBiosDomainName: utils.String(v["netbios_domain_name"].(string)), + m := input[0].(map[string]interface{}) + + output := &storage.ActiveDirectoryProperties{ + DomainGUID: utils.String(m["domain_guid"].(string)), + DomainName: utils.String(m["domain_name"].(string)), + } + if v := m["storage_sid"]; v != "" { + output.AzureStorageSid = utils.String(v.(string)) + } + if v := m["domain_sid"]; v != "" { + output.DomainSid = utils.String(v.(string)) + } + if v := m["forest_name"]; v != "" { + output.ForestName = utils.String(v.(string)) + } + if v := m["netbios_domain_name"]; v != "" { + output.NetBiosDomainName = utils.String(v.(string)) } + return output } func expandArmStorageAccountRouting(input []interface{}) *storage.RoutingPreference { diff --git a/internal/services/storage/storage_account_resource_test.go b/internal/services/storage/storage_account_resource_test.go index 474b95a0d4da..a233db540581 100644 --- a/internal/services/storage/storage_account_resource_test.go +++ b/internal/services/storage/storage_account_resource_test.go @@ -909,6 +909,18 @@ func TestAccAzureRMStorageAccount_azureFilesAuthentication(t *testing.T) { ), }, data.ImportStep(), + { + Config: r.azureFilesAuthenticationAADKERBUpdate(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep( + "azure_files_authentication.0.active_directory.0.storage_sid", + "azure_files_authentication.0.active_directory.0.domain_sid", + "azure_files_authentication.0.active_directory.0.forest_name", + "azure_files_authentication.0.active_directory.0.netbios_domain_name", + ), { Config: r.basic(data), Check: acceptance.ComposeTestCheckFunc( @@ -3287,6 +3299,48 @@ resource "azurerm_storage_account" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomString) } +func (r StorageAccountResource) azureFilesAuthenticationAADKERBUpdate(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-storage-%d" + location = "%s" +} + +resource "azurerm_storage_account" "test" { + name = "unlikely23exst2acct%s" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + account_tier = "Standard" + account_replication_type = "LRS" + + azure_files_authentication { + directory_type = "AADKERB" + active_directory { + domain_name = "adtest2.com" + domain_guid = "13a20c9a-d491-47e6-8a39-299e7a32ea27" + } + } + + tags = { + environment = "production" + } + + lifecycle { + ignore_changes = [ + azure_files_authentication.0.active_directory.0.storage_sid, + azure_files_authentication.0.active_directory.0.domain_sid, + azure_files_authentication.0.active_directory.0.forest_name, + azure_files_authentication.0.active_directory.0.netbios_domain_name, + ] + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomString) +} + func (r StorageAccountResource) routing(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { diff --git a/website/docs/r/storage_account.html.markdown b/website/docs/r/storage_account.html.markdown index 166b2ecb83c4..e301ad8edd02 100644 --- a/website/docs/r/storage_account.html.markdown +++ b/website/docs/r/storage_account.html.markdown @@ -344,23 +344,21 @@ A `azure_files_authentication` block supports the following: * `active_directory` - (Optional) A `active_directory` block as defined below. Required when `directory_type` is `AD`. -~> **Note:** If `directory_type` is set to `AADKERB`, `active_directory` is not supported. Use [icals](https://learn.microsoft.com/en-us/azure/storage/files/storage-files-identity-auth-azure-active-directory-enable?tabs=azure-portal#configure-directory-and-file-level-permissions) to configure directory and file level permissions. - --- A `active_directory` block supports the following: -* `storage_sid` - (Required) Specifies the security identifier (SID) for Azure Storage. - * `domain_name` - (Required) Specifies the primary domain that the AD DNS server is authoritative for. -* `domain_sid` - (Required) Specifies the security identifier (SID). - * `domain_guid` - (Required) Specifies the domain GUID. -* `forest_name` - (Required) Specifies the Active Directory forest. +* `domain_sid` - (Optional) Specifies the security identifier (SID). This is required when `directory_type` is set to `AD`. + +* `storage_sid` - (Optional) Specifies the security identifier (SID) for Azure Storage. This is required when `directory_type` is set to `AD`. + +* `forest_name` - (Optional) Specifies the Active Directory forest. This is required when `directory_type` is set to `AD`. -* `netbios_domain_name` - (Required) Specifies the NetBIOS domain name. +* `netbios_domain_name` - (Optional) Specifies the NetBIOS domain name. This is required when `directory_type` is set to `AD`. --- From 4312f7d62d657e3292cce0a824e5d3e594479f4a Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Mon, 18 Sep 2023 09:30:29 +0200 Subject: [PATCH 206/336] helpers/validate: adding a test for .net's `TimeSpan.MaxValue` used by ServiceBus --- helpers/validate/time_test.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/helpers/validate/time_test.go b/helpers/validate/time_test.go index e455d0dab155..d275f76bfeb1 100644 --- a/helpers/validate/time_test.go +++ b/helpers/validate/time_test.go @@ -81,6 +81,11 @@ func TestISO8601Duration(t *testing.T) { Value: "P1Y2M3DT7H42M3S", Errors: 0, }, + { + // .Net's TimeSpan.Max value (used as the default value for ServiceBus Topics) + Value: "P10675199DT2H48M5.4775807S", + Errors: 0, + }, { // Invalid prefix Value: "1Y2M3DT7H42M3S", From d7507e149d5ba4421dbd4e2106e6095c7be768a1 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Mon, 18 Sep 2023 09:33:36 +0200 Subject: [PATCH 207/336] dependencies: downgrading to `v1.12.5` of `github.com/rickb777/date` --- go.mod | 2 +- go.sum | 7 +- .../rickb777/date/period/arithmetic.go | 106 ----- .../rickb777/date/period/designator.go | 55 --- vendor/github.com/rickb777/date/period/doc.go | 4 +- .../github.com/rickb777/date/period/flag.go | 16 - .../github.com/rickb777/date/period/format.go | 83 ++-- .../rickb777/date/period/marshal.go | 6 +- .../github.com/rickb777/date/period/parse.go | 255 ++++------- .../github.com/rickb777/date/period/period.go | 433 ++++++++++++------ .../rickb777/date/period/period64.go | 142 ------ vendor/github.com/rickb777/date/period/sql.go | 36 -- vendor/modules.txt | 4 +- 13 files changed, 415 insertions(+), 734 deletions(-) delete mode 100644 vendor/github.com/rickb777/date/period/arithmetic.go delete mode 100644 vendor/github.com/rickb777/date/period/designator.go delete mode 100644 vendor/github.com/rickb777/date/period/flag.go delete mode 100644 vendor/github.com/rickb777/date/period/period64.go delete mode 100644 vendor/github.com/rickb777/date/period/sql.go diff --git a/go.mod b/go.mod index cf3450f061bf..bbc7ea7409a6 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/hashicorp/terraform-plugin-testing v1.5.1 github.com/magodo/terraform-provider-azurerm-example-gen v0.0.0-20220407025246-3a3ee0ab24a8 github.com/mitchellh/mapstructure v1.5.0 - github.com/rickb777/date v1.20.2 + github.com/rickb777/date v1.12.5-0.20200422084442-6300e543c4d9 github.com/sergi/go-diff v1.2.0 github.com/tombuildsstuff/giovanni v0.20.0 github.com/tombuildsstuff/kermit v0.20230703.1101016 diff --git a/go.sum b/go.sum index f3d63273ba7a..f52848aef91e 100644 --- a/go.sum +++ b/go.sum @@ -175,6 +175,7 @@ github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27k github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -192,12 +193,12 @@ github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DV github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.27.8 h1:gegWiwZjBsf2DgiSbf5hpokZ98JVDMcWkUiigk6/KXc= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rickb777/date v1.20.2 h1:CUpAaa4ksqvcRaidSgwzK7zeO2wUG5/VGy6Zlfcu/d4= -github.com/rickb777/date v1.20.2/go.mod h1:PVaM/Zn0IOzjm1uj84Eh9NJ/imtQSm1SVKtOvIunaYw= +github.com/rickb777/date v1.12.5-0.20200422084442-6300e543c4d9 h1:czJCcoUR3FMpHnRQow2E84H/0CPrX1fMAGn9HugzyI4= +github.com/rickb777/date v1.12.5-0.20200422084442-6300e543c4d9/go.mod h1:L8WrssTzvgYw34/Ppa0JpJfI7KKXZ2cVGI6Djt0brUU= +github.com/rickb777/plural v1.2.0/go.mod h1:UdpyWFCGbo3mvK3f/PfZOAOrkjzJlYN/sD46XNWJ+Es= github.com/rickb777/plural v1.4.1 h1:5MMLcbIaapLFmvDGRT5iPk8877hpTPt8Y9cdSKRw9sU= github.com/rickb777/plural v1.4.1/go.mod h1:kdmXUpmKBJTS0FtG/TFumd//VBWsNTD7zOw7x4umxNw= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= diff --git a/vendor/github.com/rickb777/date/period/arithmetic.go b/vendor/github.com/rickb777/date/period/arithmetic.go deleted file mode 100644 index 55993fe0b744..000000000000 --- a/vendor/github.com/rickb777/date/period/arithmetic.go +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2015 Rick Beton. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package period - -import ( - "time" -) - -// Add adds two periods together. Use this method along with Negate in order to subtract periods. -// -// The result is not normalised and may overflow arithmetically (to make this unlikely, use Normalise on -// the inputs before adding them). -func (period Period) Add(that Period) Period { - return Period{ - period.years + that.years, - period.months + that.months, - period.days + that.days, - period.hours + that.hours, - period.minutes + that.minutes, - period.seconds + that.seconds, - } -} - -//------------------------------------------------------------------------------------------------- - -// AddTo adds the period to a time, returning the result. -// A flag is also returned that is true when the conversion was precise and false otherwise. -// -// When the period specifies hours, minutes and seconds only, the result is precise. -// Also, when the period specifies whole years, months and days (i.e. without fractions), the -// result is precise. However, when years, months or days contains fractions, the result -// is only an approximation (it assumes that all days are 24 hours and every year is 365.2425 -// days, as per Gregorian calendar rules). -func (period Period) AddTo(t time.Time) (time.Time, bool) { - wholeYears := (period.years % 10) == 0 - wholeMonths := (period.months % 10) == 0 - wholeDays := (period.days % 10) == 0 - - if wholeYears && wholeMonths && wholeDays { - // in this case, time.AddDate provides an exact solution - stE3 := totalSecondsE3(period) - t1 := t.AddDate(int(period.years/10), int(period.months/10), int(period.days/10)) - return t1.Add(stE3 * time.Millisecond), true - } - - d, precise := period.Duration() - return t.Add(d), precise -} - -//------------------------------------------------------------------------------------------------- - -// Scale a period by a multiplication factor. Obviously, this can both enlarge and shrink it, -// and change the sign if negative. The result is normalised, but integer overflows are silently -// ignored. -// -// Bear in mind that the internal representation is limited by fixed-point arithmetic with two -// decimal places; each field is only int16. -// -// Known issue: scaling by a large reduction factor (i.e. much less than one) doesn't work properly. -func (period Period) Scale(factor float32) Period { - result, _ := period.ScaleWithOverflowCheck(factor) - return result -} - -// ScaleWithOverflowCheck a period by a multiplication factor. Obviously, this can both enlarge and shrink it, -// and change the sign if negative. The result is normalised. An error is returned if integer overflow -// happened. -// -// Bear in mind that the internal representation is limited by fixed-point arithmetic with one -// decimal place; each field is only int16. -// -// Known issue: scaling by a large reduction factor (i.e. much less than one) doesn't work properly. -func (period Period) ScaleWithOverflowCheck(factor float32) (Period, error) { - ap, neg := period.absNeg() - - if -0.5 < factor && factor < 0.5 { - d, pr1 := ap.Duration() - mul := float64(d) * float64(factor) - p2, pr2 := NewOf(time.Duration(mul)) - return p2.Normalise(pr1 && pr2), nil - } - - y := int64(float32(ap.years) * factor) - m := int64(float32(ap.months) * factor) - d := int64(float32(ap.days) * factor) - hh := int64(float32(ap.hours) * factor) - mm := int64(float32(ap.minutes) * factor) - ss := int64(float32(ap.seconds) * factor) - - p64 := &period64{years: y, months: m, days: d, hours: hh, minutes: mm, seconds: ss, neg: neg} - return p64.normalise64(true).toPeriod() -} - -// RationalScale scales a period by a rational multiplication factor. Obviously, this can both enlarge and shrink it, -// and change the sign if negative. The result is normalised. An error is returned if integer overflow -// happened. -// -// If the divisor is zero, a panic will arise. -// -// Bear in mind that the internal representation is limited by fixed-point arithmetic with two -// decimal places; each field is only int16. -//func (period Period) RationalScale(multiplier, divisor int) (Period, error) { -// return period.rationalScale64(int64(multiplier), int64(divisor)) -//} diff --git a/vendor/github.com/rickb777/date/period/designator.go b/vendor/github.com/rickb777/date/period/designator.go deleted file mode 100644 index 6d836ec4c638..000000000000 --- a/vendor/github.com/rickb777/date/period/designator.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2015 Rick Beton. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package period - -type ymdDesignator byte -type hmsDesignator byte - -const ( - Year ymdDesignator = 'Y' - Month ymdDesignator = 'M' - Week ymdDesignator = 'W' - Day ymdDesignator = 'D' - - Hour hmsDesignator = 'H' - Minute hmsDesignator = 'M' - Second hmsDesignator = 'S' -) - -func (d ymdDesignator) IsOneOf(xx ...ymdDesignator) bool { - for _, x := range xx { - if x == d { - return true - } - } - return false -} - -func (d ymdDesignator) IsNotOneOf(xx ...ymdDesignator) bool { - for _, x := range xx { - if x == d { - return false - } - } - return true -} - -func (d hmsDesignator) IsOneOf(xx ...hmsDesignator) bool { - for _, x := range xx { - if x == d { - return true - } - } - return false -} - -func (d hmsDesignator) IsNotOneOf(xx ...hmsDesignator) bool { - for _, x := range xx { - if x == d { - return false - } - } - return true -} diff --git a/vendor/github.com/rickb777/date/period/doc.go b/vendor/github.com/rickb777/date/period/doc.go index 5abe8447b16c..c8a57b4a0d94 100644 --- a/vendor/github.com/rickb777/date/period/doc.go +++ b/vendor/github.com/rickb777/date/period/doc.go @@ -5,9 +5,6 @@ // Package period provides functionality for periods of time using ISO-8601 conventions. // This deals with years, months, weeks/days, hours, minutes and seconds. // -// *** Warning: this package is the subject of many issues, so a replacement is under -// development. Please see https://github.com/rickb777/period. -// // Because of the vagaries of calendar systems, the meaning of year lengths, month lengths // and even day lengths depends on context. So a period is not necessarily a fixed duration // of time in terms of seconds. @@ -43,4 +40,5 @@ // * "P2.5Y" is 2.5 years. // // * "PT12M7.5S" is 12 minutes and 7.5 seconds. +// package period diff --git a/vendor/github.com/rickb777/date/period/flag.go b/vendor/github.com/rickb777/date/period/flag.go deleted file mode 100644 index 9488efa7ca8d..000000000000 --- a/vendor/github.com/rickb777/date/period/flag.go +++ /dev/null @@ -1,16 +0,0 @@ -package period - -// Set enables use of Period by the flag API. -func (period *Period) Set(p string) error { - p2, err := Parse(p) - if err != nil { - return err - } - *period = p2 - return nil -} - -// Type is for compatibility with the spf13/pflag library. -func (period Period) Type() string { - return "period" -} diff --git a/vendor/github.com/rickb777/date/period/format.go b/vendor/github.com/rickb777/date/period/format.go index 3b095292674e..32cb6a8311f7 100644 --- a/vendor/github.com/rickb777/date/period/format.go +++ b/vendor/github.com/rickb777/date/period/format.go @@ -5,32 +5,25 @@ package period import ( + "bytes" "fmt" - "io" "strings" "github.com/rickb777/plural" ) // Format converts the period to human-readable form using the default localisation. -// Multiples of 7 days are shown as weeks. func (period Period) Format() string { return period.FormatWithPeriodNames(PeriodYearNames, PeriodMonthNames, PeriodWeekNames, PeriodDayNames, PeriodHourNames, PeriodMinuteNames, PeriodSecondNames) } -// FormatWithoutWeeks converts the period to human-readable form using the default localisation. -// Multiples of 7 days are not shown as weeks. -func (period Period) FormatWithoutWeeks() string { - return period.FormatWithPeriodNames(PeriodYearNames, PeriodMonthNames, plural.Plurals{}, PeriodDayNames, PeriodHourNames, PeriodMinuteNames, PeriodSecondNames) -} - // FormatWithPeriodNames converts the period to human-readable form in a localisable way. func (period Period) FormatWithPeriodNames(yearNames, monthNames, weekNames, dayNames, hourNames, minNames, secNames plural.Plurals) string { period = period.Abs() parts := make([]string, 0) - parts = appendNonBlank(parts, yearNames.FormatFloat(float10(period.years))) - parts = appendNonBlank(parts, monthNames.FormatFloat(float10(period.months))) + parts = appendNonBlank(parts, yearNames.FormatFloat(absFloat10(period.years))) + parts = appendNonBlank(parts, monthNames.FormatFloat(absFloat10(period.months))) if period.days > 0 || (period.IsZero()) { if len(weekNames) > 0 { @@ -41,15 +34,15 @@ func (period Period) FormatWithPeriodNames(yearNames, monthNames, weekNames, day parts = appendNonBlank(parts, weekNames.FormatInt(int(weeks))) } if mdays > 0 || weeks == 0 { - parts = appendNonBlank(parts, dayNames.FormatFloat(float10(mdays))) + parts = appendNonBlank(parts, dayNames.FormatFloat(absFloat10(mdays))) } } else { - parts = appendNonBlank(parts, dayNames.FormatFloat(float10(period.days))) + parts = appendNonBlank(parts, dayNames.FormatFloat(absFloat10(period.days))) } } - parts = appendNonBlank(parts, hourNames.FormatFloat(float10(period.hours))) - parts = appendNonBlank(parts, minNames.FormatFloat(float10(period.minutes))) - parts = appendNonBlank(parts, secNames.FormatFloat(float10(period.seconds))) + parts = appendNonBlank(parts, hourNames.FormatFloat(absFloat10(period.hours))) + parts = appendNonBlank(parts, minNames.FormatFloat(absFloat10(period.minutes))) + parts = appendNonBlank(parts, secNames.FormatFloat(absFloat10(period.seconds))) return strings.Join(parts, ", ") } @@ -86,54 +79,50 @@ var PeriodSecondNames = plural.FromZero("", "%v second", "%v seconds") // String converts the period to ISO-8601 form. func (period Period) String() string { - return period.toPeriod64("").String() -} - -func (p64 period64) String() string { - if p64 == (period64{}) { + if period.IsZero() { return "P0D" } - buf := &strings.Builder{} - if p64.neg { + buf := &bytes.Buffer{} + if period.Sign() < 0 { buf.WriteByte('-') } buf.WriteByte('P') - writeField64(buf, p64.years, byte(Year)) - writeField64(buf, p64.months, byte(Month)) - - if p64.days != 0 { - if p64.days%70 == 0 { - writeField64(buf, p64.days/7, byte(Week)) + if period.years != 0 { + fmt.Fprintf(buf, "%gY", absFloat10(period.years)) + } + if period.months != 0 { + fmt.Fprintf(buf, "%gM", absFloat10(period.months)) + } + if period.days != 0 { + if period.days%70 == 0 { + fmt.Fprintf(buf, "%gW", absFloat10(period.days/7)) } else { - writeField64(buf, p64.days, byte(Day)) + fmt.Fprintf(buf, "%gD", absFloat10(period.days)) } } - - if p64.hours != 0 || p64.minutes != 0 || p64.seconds != 0 { + if period.hours != 0 || period.minutes != 0 || period.seconds != 0 { buf.WriteByte('T') } - - writeField64(buf, p64.hours, byte(Hour)) - writeField64(buf, p64.minutes, byte(Minute)) - writeField64(buf, p64.seconds, byte(Second)) + if period.hours != 0 { + fmt.Fprintf(buf, "%gH", absFloat10(period.hours)) + } + if period.minutes != 0 { + fmt.Fprintf(buf, "%gM", absFloat10(period.minutes)) + } + if period.seconds != 0 { + fmt.Fprintf(buf, "%gS", absFloat10(period.seconds)) + } return buf.String() } -func writeField64(w io.Writer, field int64, designator byte) { - if field != 0 { - if field%10 != 0 { - fmt.Fprintf(w, "%g", float32(field)/10) - } else { - fmt.Fprintf(w, "%d", field/10) - } - w.(io.ByteWriter).WriteByte(designator) +func absFloat10(v int16) float32 { + f := float32(v) / 10 + if v < 0 { + return -f } -} - -func float10(v int16) float32 { - return float32(v) / 10 + return f } diff --git a/vendor/github.com/rickb777/date/period/marshal.go b/vendor/github.com/rickb777/date/period/marshal.go index 6e1f2f1ce99b..c87ad5f6fb90 100644 --- a/vendor/github.com/rickb777/date/period/marshal.go +++ b/vendor/github.com/rickb777/date/period/marshal.go @@ -12,21 +12,19 @@ func (period Period) MarshalBinary() ([]byte, error) { } // UnmarshalBinary implements the encoding.BinaryUnmarshaler interface. -// This also provides support for gob decoding. +// This also provides support for gob encoding. func (period *Period) UnmarshalBinary(data []byte) error { return period.UnmarshalText(data) } // MarshalText implements the encoding.TextMarshaler interface for Periods. -// This also provides support for JSON encoding. func (period Period) MarshalText() ([]byte, error) { return []byte(period.String()), nil } // UnmarshalText implements the encoding.TextUnmarshaler interface for Periods. -// This also provides support for JSON decoding. func (period *Period) UnmarshalText(data []byte) (err error) { - u, err := Parse(string(data), false) + u, err := Parse(string(data)) if err == nil { *period = u } diff --git a/vendor/github.com/rickb777/date/period/parse.go b/vendor/github.com/rickb777/date/period/parse.go index 304bc5017227..270ae8d092df 100644 --- a/vendor/github.com/rickb777/date/period/parse.go +++ b/vendor/github.com/rickb777/date/period/parse.go @@ -12,10 +12,8 @@ import ( // MustParse is as per Parse except that it panics if the string cannot be parsed. // This is intended for setup code; don't use it for user inputs. -// By default, the value is normalised. -// Normalisation can be disabled using the optional flag. -func MustParse(value string, normalise ...bool) Period { - d, err := Parse(value, normalise...) +func MustParse(value string) Period { + d, err := Parse(value) if err != nil { panic(err) } @@ -26,27 +24,16 @@ func MustParse(value string, normalise ...bool) Period { // // In addition, a plus or minus sign can precede the period, e.g. "-P10D" // -// By default, the value is normalised, e.g. multiple of 12 months become years -// so "P24M" is the same as "P2Y". However, this is done without loss of precision, -// so for example whole numbers of days do not contribute to the months tally +// The value is normalised, e.g. multiple of 12 months become years so "P24M" +// is the same as "P2Y". However, this is done without loss of precision, so +// for example whole numbers of days do not contribute to the months tally // because the number of days per month is variable. // -// Normalisation can be disabled using the optional flag. -// // The zero value can be represented in several ways: all of the following // are equivalent: "P0Y", "P0M", "P0W", "P0D", "PT0H", PT0M", PT0S", and "P0". // The canonical zero is "P0D". -func Parse(period string, normalise ...bool) (Period, error) { - return ParseWithNormalise(period, len(normalise) == 0 || normalise[0]) -} - -// ParseWithNormalise parses strings that specify periods using ISO-8601 rules -// with an option to specify whether to normalise parsed period components. -// -// This method is deprecated and should not be used. It may be removed in a -// future version. -func ParseWithNormalise(period string, normalise bool) (Period, error) { - if period == "" || period == "-" || period == "+" { +func Parse(period string) (Period, error) { + if period == "" { return Period{}, fmt.Errorf("cannot parse a blank string as a period") } @@ -54,184 +41,118 @@ func ParseWithNormalise(period string, normalise bool) (Period, error) { return Period{}, nil } - p64, err := parse(period, normalise) - if err != nil { - return Period{}, err - } - return p64.toPeriod() -} - -func parse(period string, normalise bool) (*period64, error) { - neg := false - remaining := period - if remaining[0] == '-' { - neg = true - remaining = remaining[1:] - } else if remaining[0] == '+' { - remaining = remaining[1:] + result := period64{} + pcopy := period + if pcopy[0] == '-' { + result.neg = true + pcopy = pcopy[1:] + } else if pcopy[0] == '+' { + pcopy = pcopy[1:] } - if remaining[0] != 'P' { - return nil, fmt.Errorf("%s: expected 'P' period mark at the start", period) + if pcopy[0] != 'P' { + return Period{}, fmt.Errorf("expected 'P' period mark at the start: %s", period) } - remaining = remaining[1:] - - var number, weekValue, prevFraction int64 - result := &period64{input: period, neg: neg} - var years, months, weeks, days, hours, minutes, seconds itemState - var designator, prevDesignator byte - var err error - nComponents := 0 + pcopy = pcopy[1:] - years, months, weeks, days = Armed, Armed, Armed, Armed + st := parseState{period, pcopy, false, nil} + t := strings.IndexByte(pcopy, 'T') + if t >= 0 { + st.pcopy = pcopy[t+1:] - isHMS := false - for len(remaining) > 0 { - if remaining[0] == 'T' { - if isHMS { - return nil, fmt.Errorf("%s: 'T' designator cannot occur more than once", period) - } - isHMS = true + result.hours, st = parseField(st, 'H') + if st.err != nil { + return Period{}, fmt.Errorf("expected a number before the 'H' marker: %s", period) + } - years, months, weeks, days = Unready, Unready, Unready, Unready - hours, minutes, seconds = Armed, Armed, Armed + result.minutes, st = parseField(st, 'M') + if st.err != nil { + return Period{}, fmt.Errorf("expected a number before the 'M' marker: %s", period) + } - remaining = remaining[1:] + result.seconds, st = parseField(st, 'S') + if st.err != nil { + return Period{}, fmt.Errorf("expected a number before the 'S' marker: %s", period) + } - } else { - number, designator, remaining, err = parseNextField(remaining, period) - if err != nil { - return nil, err - } - - fraction := number % 10 - if prevFraction != 0 && fraction != 0 { - return nil, fmt.Errorf("%s: '%c' & '%c' only the last field can have a fraction", period, prevDesignator, designator) - } - - switch designator { - case 'Y': - years, err = years.testAndSet(number, 'Y', result, &result.years) - case 'W': - weeks, err = weeks.testAndSet(number, 'W', result, &weekValue) - case 'D': - days, err = days.testAndSet(number, 'D', result, &result.days) - case 'H': - hours, err = hours.testAndSet(number, 'H', result, &result.hours) - case 'S': - seconds, err = seconds.testAndSet(number, 'S', result, &result.seconds) - case 'M': - if isHMS { - minutes, err = minutes.testAndSet(number, 'M', result, &result.minutes) - } else { - months, err = months.testAndSet(number, 'M', result, &result.months) - } - default: - return nil, fmt.Errorf("%s: expected a number not '%c'", period, designator) - } - nComponents++ - - if err != nil { - return nil, err - } - - prevFraction = fraction - prevDesignator = designator + if len(st.pcopy) != 0 { + return Period{}, fmt.Errorf("unexpected remaining components %s: %s", st.pcopy, period) } - } - if nComponents == 0 { - return nil, fmt.Errorf("%s: expected 'Y', 'M', 'W', 'D', 'H', 'M', or 'S' designator", period) + st.pcopy = pcopy[:t] } - result.days += weekValue * 7 - - if normalise { - result = result.normalise64(true) + result.years, st = parseField(st, 'Y') + if st.err != nil { + return Period{}, fmt.Errorf("expected a number before the 'Y' marker: %s", period) + } + result.months, st = parseField(st, 'M') + if st.err != nil { + return Period{}, fmt.Errorf("expected a number before the 'M' marker: %s", period) + } + weeks, st := parseField(st, 'W') + if st.err != nil { + return Period{}, fmt.Errorf("expected a number before the 'W' marker: %s", period) } - return result, nil -} - -//------------------------------------------------------------------------------------------------- + days, st := parseField(st, 'D') + if st.err != nil { + return Period{}, fmt.Errorf("expected a number before the 'D' marker: %s", period) + } -type itemState int + if len(st.pcopy) != 0 { + return Period{}, fmt.Errorf("unexpected remaining components %s: %s", st.pcopy, period) + } -const ( - Unready itemState = iota - Armed - Set -) + result.days = weeks*7 + days + //fmt.Printf("%#v\n", st) -func (i itemState) testAndSet(number int64, designator byte, result *period64, value *int64) (itemState, error) { - switch i { - case Unready: - return i, fmt.Errorf("%s: '%c' designator cannot occur here", result.input, designator) - case Set: - return i, fmt.Errorf("%s: '%c' designator cannot occur more than once", result.input, designator) + if !st.ok { + return Period{}, fmt.Errorf("expected 'Y', 'M', 'W', 'D', 'H', 'M', or 'S' marker: %s", period) } - *value = number - return Set, nil + return result.normalise64(true).toPeriod(), nil } -//------------------------------------------------------------------------------------------------- +type parseState struct { + period, pcopy string + ok bool + err error +} -func parseNextField(str, original string) (int64, byte, string, error) { - i := scanDigits(str) - if i < 0 { - return 0, 0, "", fmt.Errorf("%s: missing designator at the end", original) +func parseField(st parseState, mark byte) (int64, parseState) { + //fmt.Printf("%c %#v\n", mark, st) + r := int64(0) + m := strings.IndexByte(st.pcopy, mark) + if m > 0 { + r, st.err = parseDecimalFixedPoint(st.pcopy[:m], st.period) + if st.err != nil { + return 0, st + } + st.pcopy = st.pcopy[m+1:] + st.ok = true } - - des := str[i] - number, err := parseDecimalNumber(str[:i], original, des) - return number, des, str[i+1:], err + return r, st } -// Fixed-point one decimal place -func parseDecimalNumber(number, original string, des byte) (int64, error) { - dec := strings.IndexByte(number, '.') +// Fixed-point three decimal places +func parseDecimalFixedPoint(s, original string) (int64, error) { + //was := s + dec := strings.IndexByte(s, '.') if dec < 0 { - dec = strings.IndexByte(number, ',') + dec = strings.IndexByte(s, ',') } - var integer, fraction int64 - var err error if dec >= 0 { - integer, err = strconv.ParseInt(number[:dec], 10, 64) - if err == nil { - number = number[dec+1:] - switch len(number) { - case 0: // skip - case 1: - fraction, err = strconv.ParseInt(number, 10, 64) - default: - fraction, err = strconv.ParseInt(number[:1], 10, 64) - } + dp := len(s) - dec + if dp > 1 { + s = s[:dec] + s[dec+1:dec+2] + } else { + s = s[:dec] + s[dec+1:] + "0" } } else { - integer, err = strconv.ParseInt(number, 10, 64) + s = s + "0" } - if err != nil { - return 0, fmt.Errorf("%s: expected a number but found '%c'", original, des) - } - - return integer*10 + fraction, err -} - -// scanDigits finds the first non-digit byte after a given starting point. -// Note that it does not care about runes or UTF-8 encoding; it assumes that -// a period string is always valid ASCII as well as UTF-8. -func scanDigits(s string) int { - for i, c := range s { - if !isDigit(c) { - return i - } - } - return -1 -} - -func isDigit(c rune) bool { - return ('0' <= c && c <= '9') || c == '.' || c == ',' + return strconv.ParseInt(s, 10, 64) } diff --git a/vendor/github.com/rickb777/date/period/period.go b/vendor/github.com/rickb777/date/period/period.go index 7eb2902a0f6f..a9b39c6a0d6b 100644 --- a/vendor/github.com/rickb777/date/period/period.go +++ b/vendor/github.com/rickb777/date/period/period.go @@ -9,14 +9,14 @@ import ( "time" ) -const daysPerYearE4 = 3652425 // 365.2425 days by the Gregorian rule -const daysPerMonthE4 = 304369 // 30.4369 days per month -const daysPerMonthE6 = 30436875 // 30.436875 days per month +const daysPerYearE4 int64 = 3652425 // 365.2425 days by the Gregorian rule +const daysPerMonthE4 int64 = 304369 // 30.4369 days per month +const daysPerMonthE6 int64 = 30436875 // 30.436875 days per month -const oneE4 = 10000 -const oneE5 = 100000 -const oneE6 = 1000000 -const oneE7 = 10000000 +const oneE4 int64 = 10000 +const oneE5 int64 = 100000 +const oneE6 int64 = 1000000 +const oneE7 int64 = 10000000 const hundredMs = 100 * time.Millisecond @@ -42,6 +42,7 @@ const hundredMs = 100 * time.Millisecond // // Note that although fractional weeks can be parsed, they will never be returned via String(). // This is because the number of weeks is always inferred from the number of days. +// type Period struct { years, months, days, hours, minutes, seconds int16 } @@ -51,8 +52,6 @@ type Period struct { // need to. // // All the parameters must have the same sign (otherwise a panic occurs). -// Because this implementation uses int16 internally, the paramters must -// be within the range ± 2^16 / 10. func NewYMD(years, months, days int) Period { return New(years, months, days, 0, 0, 0) } @@ -62,8 +61,6 @@ func NewYMD(years, months, days int) Period { // if you need to. // // All the parameters must have the same sign (otherwise a panic occurs). -// Because this implementation uses int16 internally, the paramters must -// be within the range ± 2^16 / 10. func NewHMS(hours, minutes, seconds int) Period { return New(0, 0, 0, hours, minutes, seconds) } @@ -85,6 +82,8 @@ func New(years, months, days, hours, minutes, seconds int) Period { years, months, days, hours, minutes, seconds)) } +// TODO NewFloat + // NewOf converts a time duration to a Period, and also indicates whether the conversion is precise. // Any time duration that spans more than ± 3276 hours will be approximated by assuming that there // are 24 hours per day, 365.2425 days per year (as per Gregorian calendar rules), and a month @@ -143,15 +142,15 @@ func NewOf(duration time.Duration) (p Period, precise bool) { // computations applied to the period can only be precise if they concern either the date (year, month, // day) part, or the clock (hour, minute, second) part, but not both. func Between(t1, t2 time.Time) (p Period) { + if t1.Location() != t2.Location() { + t2 = t2.In(t1.Location()) + } + sign := 1 if t2.Before(t1) { t1, t2, sign = t2, t1, -1 } - if t1.Location() != t2.Location() { - t2 = t2.In(t1.Location()) - } - year, month, day, hour, min, sec, hundredth := daysDiff(t1, t2) if sign < 0 { @@ -172,9 +171,9 @@ func daysDiff(t1, t2 time.Time) (year, month, day, hour, min, sec, hundredth int day = int(duration / (24 * time.Hour)) - hour = hh2 - hh1 - min = mm2 - mm1 - sec = ss2 - ss1 + hour = int(hh2 - hh1) + min = int(mm2 - mm1) + sec = int(ss2 - ss1) hundredth = (t2.Nanosecond() - t1.Nanosecond()) / 100000000 // Normalize negative values @@ -249,22 +248,15 @@ func (period Period) OnlyHMS() Period { // Abs converts a negative period to a positive one. func (period Period) Abs() Period { - a, _ := period.absNeg() - return a + return Period{absInt16(period.years), absInt16(period.months), absInt16(period.days), + absInt16(period.hours), absInt16(period.minutes), absInt16(period.seconds)} } -func (period Period) absNeg() (Period, bool) { - if period.IsNegative() { - return period.Negate(), true - } - return period, false -} - -func (period Period) condNegate(neg bool) Period { - if neg { - return period.Negate() +func absInt16(v int16) int16 { + if v < 0 { + return -v } - return period + return v } // Negate changes the sign of the period. @@ -272,11 +264,45 @@ func (period Period) Negate() Period { return Period{-period.years, -period.months, -period.days, -period.hours, -period.minutes, -period.seconds} } -func absInt16(v int16) int16 { - if v < 0 { - return -v +// Add adds two periods together. Use this method along with Negate in order to subtract periods. +// +// The result is not normalised and may overflow arithmetically (to make this unlikely, use Normalise on +// the inputs before adding them). +func (period Period) Add(that Period) Period { + return Period{ + period.years + that.years, + period.months + that.months, + period.days + that.days, + period.hours + that.hours, + period.minutes + that.minutes, + period.seconds + that.seconds, } - return v +} + +// Scale a period by a multiplication factor. Obviously, this can both enlarge and shrink it, +// and change the sign if negative. The result is normalised. +// +// Bear in mind that the internal representation is limited by fixed-point arithmetic with one +// decimal place; each field is only int16. +// +// Known issue: scaling by a large reduction factor (i.e. much less than one) doesn't work properly. +func (period Period) Scale(factor float32) Period { + + if -0.5 < factor && factor < 0.5 { + d, pr1 := period.Duration() + mul := float64(d) * float64(factor) + p2, pr2 := NewOf(time.Duration(mul)) + return p2.Normalise(pr1 && pr2) + } + + y := int64(float32(period.years) * factor) + m := int64(float32(period.months) * factor) + d := int64(float32(period.days) * factor) + hh := int64(float32(period.hours) * factor) + mm := int64(float32(period.minutes) * factor) + ss := int64(float32(period.seconds) * factor) + + return (&period64{y, m, d, hh, mm, ss, false}).normalise64(true).toPeriod() } // Years gets the whole number of years in the period. @@ -396,7 +422,29 @@ func (period Period) SecondsFloat() float32 { return float32(period.seconds) / 10 } -//------------------------------------------------------------------------------------------------- +// AddTo adds the period to a time, returning the result. +// A flag is also returned that is true when the conversion was precise and false otherwise. +// +// When the period specifies hours, minutes and seconds only, the result is precise. +// Also, when the period specifies whole years, months and days (i.e. without fractions), the +// result is precise. However, when years, months or days contains fractions, the result +// is only an approximation (it assumes that all days are 24 hours and every year is 365.2425 +// days, as per Gregorian calendar rules). +func (period Period) AddTo(t time.Time) (time.Time, bool) { + wholeYears := (period.years % 10) == 0 + wholeMonths := (period.months % 10) == 0 + wholeDays := (period.days % 10) == 0 + + if wholeYears && wholeMonths && wholeDays { + // in this case, time.AddDate provides an exact solution + stE3 := totalSecondsE3(period) + t1 := t.AddDate(int(period.years/10), int(period.months/10), int(period.days/10)) + return t1.Add(stE3 * time.Millisecond), true + } + + d, precise := period.Duration() + return t.Add(d), precise +} // DurationApprox converts a period to the equivalent duration in nanoseconds. // When the period specifies hours, minutes and seconds only, the result is precise. @@ -466,8 +514,7 @@ func (period Period) TotalMonthsApprox() int { // // Because the number of hours per day is imprecise (due to daylight savings etc), and because // the number of days per month is variable in the Gregorian calendar, there is a reluctance -// to transfer time to or from the days element, or to transfer days to or from the months -// element. To give control over this, there are two modes. +// to transfer time too or from the days element. To give control over this, there are two modes. // // In precise mode: // Multiples of 60 seconds become minutes. @@ -480,138 +527,220 @@ func (period Period) TotalMonthsApprox() int { // // Note that leap seconds are disregarded: every minute is assumed to have 60 seconds. func (period Period) Normalise(precise bool) Period { - n, _ := period.toPeriod64("").normalise64(precise).toPeriod() - return n + const limit = 32670 - (32670 / 60) + + // can we use a quicker algorithm for HHMMSS with int16 arithmetic? + if period.years == 0 && period.months == 0 && + (!precise || period.days == 0) && + period.hours > -limit && period.hours < limit { + + return period.normaliseHHMMSS(precise) + } + + // can we use a quicker algorithm for YYMM with int16 arithmetic? + if (period.years != 0 || period.months != 0) && //period.months%10 == 0 && + period.days == 0 && period.hours == 0 && period.minutes == 0 && period.seconds == 0 { + + return period.normaliseYYMM() + } + + // do things the no-nonsense way using int64 arithmetic + return period.toPeriod64().normalise64(precise).toPeriod() } -// Simplify applies some heuristic simplifications with the objective of reducing the number -// of non-zero fields and thus making the rendered form simpler. It should be applied to -// a normalised period, otherwise the results may be unpredictable. -// -// Note that months and days are never combined, due to the variability of month lengths. -// Days and hours are only combined when imprecise behaviour is selected; this is due to -// daylight savings transitions, during which there are more than or fewer than 24 hours -// per day. -// -// The following transformation rules are applied in order: -// -// * P1YnM becomes 12+n months for 0 < n <= 6 -// * P1DTnH becomes 24+n hours for 0 < n <= 6 (unless precise is true) -// * PT1HnM becomes 60+n minutes for 0 < n <= 10 -// * PT1MnS becomes 60+n seconds for 0 < n <= 10 -// -// At each step, if a fraction exists and would affect the calculation, the transformations -// stop. Also, when not precise, -// -// * for periods of at least ten years, month proper fractions are discarded -// * for periods of at least a year, day proper fractions are discarded -// * for periods of at least a month, hour proper fractions are discarded -// * for periods of at least a day, minute proper fractions are discarded -// * for periods of at least an hour, second proper fractions are discarded -// -// The thresholds can be set using the varargs th parameter. By default, the thresholds a, -// b, c, d are 6 months, 6 hours, 10 minutes, 10 seconds respectively as listed in the rules -// above. -// -// * No thresholds is equivalent to 6, 6, 10, 10. -// * A single threshold a is equivalent to a, a, a, a. -// * Two thresholds a, b are equivalent to a, a, b, b. -// * Three thresholds a, b, c are equivalent to a, b, c, c. -// * Four thresholds a, b, c, d are used as provided. -func (period Period) Simplify(precise bool, th ...int) Period { - switch len(th) { - case 0: - return period.doSimplify(precise, 60, 60, 100, 100) - case 1: - return period.doSimplify(precise, int16(th[0]*10), int16(th[0]*10), int16(th[0]*10), int16(th[0]*10)) - case 2: - return period.doSimplify(precise, int16(th[0]*10), int16(th[0]*10), int16(th[1]*10), int16(th[1]*10)) - case 3: - return period.doSimplify(precise, int16(th[0]*10), int16(th[1]*10), int16(th[2]*10), int16(th[2]*10)) - default: - return period.doSimplify(precise, int16(th[0]*10), int16(th[1]*10), int16(th[2]*10), int16(th[3]*10)) - } -} - -func (period Period) doSimplify(precise bool, a, b, c, d int16) Period { - if period.years%10 != 0 { - return period - } - - ap, neg := period.absNeg() - - // single year is dropped if there are some months - if ap.years == 10 && - 0 < ap.months && ap.months <= a && - ap.days == 0 { - ap.months += 120 - ap.years = 0 - } - - if ap.months%10 != 0 { - // month fraction is dropped for periods of at least ten years (1:120) - months := ap.months / 10 - if !precise && ap.years >= 100 && months == 0 { - ap.months = 0 - } - return ap.condNegate(neg) +func (period Period) normaliseHHMMSS(precise bool) Period { + s := period.Sign() + ap := period.Abs() + + // remember that the fields are all fixed-point 1E1 + ap.minutes += (ap.seconds / 600) * 10 + ap.seconds = ap.seconds % 600 + + ap.hours += (ap.minutes / 600) * 10 + ap.minutes = ap.minutes % 600 + + // up to 36 hours stays as hours + if !precise && ap.hours > 360 { + ap.days += (ap.hours / 240) * 10 + ap.hours = ap.hours % 240 } - if ap.days%10 != 0 { - // day fraction is dropped for periods of at least a year (1:365) - days := ap.days / 10 - if !precise && (ap.years > 0 || ap.months >= 120) && days == 0 { - ap.days = 0 - } - return ap.condNegate(neg) + d10 := ap.days % 10 + if d10 != 0 && (ap.hours != 0 || ap.minutes != 0 || ap.seconds != 0) { + ap.hours += d10 * 24 + ap.days -= d10 } - if !precise && ap.days == 10 && - ap.years == 0 && - ap.months == 0 && - 0 < ap.hours && ap.hours <= b { - ap.hours += 240 - ap.days = 0 + hh10 := ap.hours % 10 + if hh10 != 0 { + ap.minutes += hh10 * 60 + ap.hours -= hh10 } - if ap.hours%10 != 0 { - // hour fraction is dropped for periods of at least a month (1:720) - hours := ap.hours / 10 - if !precise && (ap.years > 0 || ap.months > 0 || ap.days >= 300) && hours == 0 { - ap.hours = 0 - } - return ap.condNegate(neg) + mm10 := ap.minutes % 10 + if mm10 != 0 { + ap.seconds += mm10 * 60 + ap.minutes -= mm10 + } + + if s < 0 { + return ap.Negate() + } + return ap +} + +func (period Period) normaliseYYMM() Period { + s := period.Sign() + ap := period.Abs() + + // remember that the fields are all fixed-point 1E1 + if ap.months > 129 { + ap.years += (ap.months / 120) * 10 + ap.months = ap.months % 120 } - if ap.hours == 10 && - 0 < ap.minutes && ap.minutes <= c { - ap.minutes += 600 - ap.hours = 0 + y10 := ap.years % 10 + if y10 != 0 && (ap.years < 10 || ap.months != 0) { + ap.months += y10 * 12 + ap.years -= y10 } - if ap.minutes%10 != 0 { - // minute fraction is dropped for periods of at least a day (1:1440) - minutes := ap.minutes / 10 - if !precise && (ap.years > 0 || ap.months > 0 || ap.days > 0 || ap.hours >= 240) && minutes == 0 { - ap.minutes = 0 + if s < 0 { + return ap.Negate() + } + return ap +} + +//------------------------------------------------------------------------------------------------- + +// used for stages in arithmetic +type period64 struct { + years, months, days, hours, minutes, seconds int64 + neg bool +} + +func (period Period) toPeriod64() *period64 { + return &period64{ + int64(period.years), int64(period.months), int64(period.days), + int64(period.hours), int64(period.minutes), int64(period.seconds), + false, + } +} + +func (p *period64) toPeriod() Period { + if p.neg { + return Period{ + int16(-p.years), int16(-p.months), int16(-p.days), + int16(-p.hours), int16(-p.minutes), int16(-p.seconds), } - return ap.condNegate(neg) } - if ap.minutes == 10 && - ap.hours == 0 && - 0 < ap.seconds && ap.seconds <= d { - ap.seconds += 600 - ap.minutes = 0 + return Period{ + int16(p.years), int16(p.months), int16(p.days), + int16(p.hours), int16(p.minutes), int16(p.seconds), } +} + +func (p *period64) normalise64(precise bool) *period64 { + return p.abs().rippleUp(precise).moveFractionToRight() +} + +func (p *period64) abs() *period64 { + + if !p.neg { + if p.years < 0 { + p.years = -p.years + p.neg = true + } + + if p.months < 0 { + p.months = -p.months + p.neg = true + } + + if p.days < 0 { + p.days = -p.days + p.neg = true + } - if ap.seconds%10 != 0 { - // second fraction is dropped for periods of at least an hour (1:3600) - seconds := ap.seconds / 10 - if !precise && (ap.years > 0 || ap.months > 0 || ap.days > 0 || ap.hours > 0 || ap.minutes >= 600) && seconds == 0 { - ap.seconds = 0 + if p.hours < 0 { + p.hours = -p.hours + p.neg = true } + + if p.minutes < 0 { + p.minutes = -p.minutes + p.neg = true + } + + if p.seconds < 0 { + p.seconds = -p.seconds + p.neg = true + } + } + return p +} + +func (p *period64) rippleUp(precise bool) *period64 { + // remember that the fields are all fixed-point 1E1 + + p.minutes = p.minutes + (p.seconds/600)*10 + p.seconds = p.seconds % 600 + + p.hours = p.hours + (p.minutes/600)*10 + p.minutes = p.minutes % 600 + + // 32670-(32670/60)-(32670/3600) = 32760 - 546 - 9.1 = 32204.9 + if !precise || p.hours > 32204 { + p.days += (p.hours / 240) * 10 + p.hours = p.hours % 240 + } + + if !precise || p.days > 32760 { + dE6 := p.days * oneE6 + p.months += dE6 / daysPerMonthE6 + p.days = (dE6 % daysPerMonthE6) / oneE6 + } + + p.years = p.years + (p.months/120)*10 + p.months = p.months % 120 + + return p +} + +// moveFractionToRight applies the rule that only the smallest field is permitted to have a decimal fraction. +func (p *period64) moveFractionToRight() *period64 { + // remember that the fields are all fixed-point 1E1 + + y10 := p.years % 10 + if y10 != 0 && (p.months != 0 || p.days != 0 || p.hours != 0 || p.minutes != 0 || p.seconds != 0) { + p.months += y10 * 12 + p.years = (p.years / 10) * 10 + } + + m10 := p.months % 10 + if m10 != 0 && (p.days != 0 || p.hours != 0 || p.minutes != 0 || p.seconds != 0) { + p.days += (m10 * daysPerMonthE6) / oneE6 + p.months = (p.months / 10) * 10 + } + + d10 := p.days % 10 + if d10 != 0 && (p.hours != 0 || p.minutes != 0 || p.seconds != 0) { + p.hours += d10 * 24 + p.days = (p.days / 10) * 10 + } + + hh10 := p.hours % 10 + if hh10 != 0 && (p.minutes != 0 || p.seconds != 0) { + p.minutes += hh10 * 60 + p.hours = (p.hours / 10) * 10 + } + + mm10 := p.minutes % 10 + if mm10 != 0 && p.seconds != 0 { + p.seconds += mm10 * 60 + p.minutes = (p.minutes / 10) * 10 } - return ap.condNegate(neg) + return p } diff --git a/vendor/github.com/rickb777/date/period/period64.go b/vendor/github.com/rickb777/date/period/period64.go deleted file mode 100644 index f3e2f4b0bce5..000000000000 --- a/vendor/github.com/rickb777/date/period/period64.go +++ /dev/null @@ -1,142 +0,0 @@ -package period - -import ( - "fmt" - "math" - "strings" -) - -// used for stages in arithmetic -type period64 struct { - // always positive values - years, months, days, hours, minutes, seconds int64 - // true if the period is negative - neg bool - input string -} - -func (period Period) toPeriod64(input string) *period64 { - if period.IsNegative() { - return &period64{ - years: int64(-period.years), months: int64(-period.months), days: int64(-period.days), - hours: int64(-period.hours), minutes: int64(-period.minutes), seconds: int64(-period.seconds), - neg: true, - input: input, - } - } - return &period64{ - years: int64(period.years), months: int64(period.months), days: int64(period.days), - hours: int64(period.hours), minutes: int64(period.minutes), seconds: int64(period.seconds), - input: input, - } -} - -func (p64 *period64) toPeriod() (Period, error) { - var f []string - if p64.years > math.MaxInt16 { - f = append(f, "years") - } - if p64.months > math.MaxInt16 { - f = append(f, "months") - } - if p64.days > math.MaxInt16 { - f = append(f, "days") - } - if p64.hours > math.MaxInt16 { - f = append(f, "hours") - } - if p64.minutes > math.MaxInt16 { - f = append(f, "minutes") - } - if p64.seconds > math.MaxInt16 { - f = append(f, "seconds") - } - - if len(f) > 0 { - if p64.input == "" { - p64.input = p64.String() - } - return Period{}, fmt.Errorf("%s: integer overflow occurred in %s", p64.input, strings.Join(f, ",")) - } - - if p64.neg { - return Period{ - int16(-p64.years), int16(-p64.months), int16(-p64.days), - int16(-p64.hours), int16(-p64.minutes), int16(-p64.seconds), - }, nil - } - - return Period{ - int16(p64.years), int16(p64.months), int16(p64.days), - int16(p64.hours), int16(p64.minutes), int16(p64.seconds), - }, nil -} - -func (p64 *period64) normalise64(precise bool) *period64 { - return p64.rippleUp(precise).moveFractionToRight() -} - -func (p64 *period64) rippleUp(precise bool) *period64 { - // remember that the fields are all fixed-point 1E1 - - p64.minutes += (p64.seconds / 600) * 10 - p64.seconds = p64.seconds % 600 - - p64.hours += (p64.minutes / 600) * 10 - p64.minutes = p64.minutes % 600 - - // 32670-(32670/60)-(32670/3600) = 32760 - 546 - 9.1 = 32204.9 - if !precise || p64.hours > 32204 { - p64.days += (p64.hours / 240) * 10 - p64.hours = p64.hours % 240 - } - - if !precise || p64.days > 32760 { - dE6 := p64.days * oneE5 - p64.months += (dE6 / daysPerMonthE6) * 10 - p64.days = (dE6 % daysPerMonthE6) / oneE5 - } - - p64.years += (p64.months / 120) * 10 - p64.months = p64.months % 120 - - return p64 -} - -// moveFractionToRight attempts to remove fractions in higher-order fields by moving their value to the -// next-lower-order field. For example, fractional years become months. -func (p64 *period64) moveFractionToRight() *period64 { - // remember that the fields are all fixed-point 1E1 - - y10 := p64.years % 10 - if y10 != 0 && (p64.months != 0 || p64.days != 0 || p64.hours != 0 || p64.minutes != 0 || p64.seconds != 0) { - p64.months += y10 * 12 - p64.years = (p64.years / 10) * 10 - } - - m10 := p64.months % 10 - if m10 != 0 && (p64.days != 0 || p64.hours != 0 || p64.minutes != 0 || p64.seconds != 0) { - p64.days += (m10 * daysPerMonthE6) / oneE6 - p64.months = (p64.months / 10) * 10 - } - - d10 := p64.days % 10 - if d10 != 0 && (p64.hours != 0 || p64.minutes != 0 || p64.seconds != 0) { - p64.hours += d10 * 24 - p64.days = (p64.days / 10) * 10 - } - - hh10 := p64.hours % 10 - if hh10 != 0 && (p64.minutes != 0 || p64.seconds != 0) { - p64.minutes += hh10 * 60 - p64.hours = (p64.hours / 10) * 10 - } - - mm10 := p64.minutes % 10 - if mm10 != 0 && p64.seconds != 0 { - p64.seconds += mm10 * 60 - p64.minutes = (p64.minutes / 10) * 10 - } - - return p64 -} diff --git a/vendor/github.com/rickb777/date/period/sql.go b/vendor/github.com/rickb777/date/period/sql.go deleted file mode 100644 index 31b546429aa3..000000000000 --- a/vendor/github.com/rickb777/date/period/sql.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2015 Rick Beton. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package period - -import ( - "database/sql/driver" - "fmt" -) - -// Scan parses some value, which can be either string or []byte. -// It implements sql.Scanner, https://golang.org/pkg/database/sql/#Scanner -func (period *Period) Scan(value interface{}) (err error) { - if value == nil { - return nil - } - - err = nil - switch v := value.(type) { - case []byte: - *period, err = Parse(string(v), false) - case string: - *period, err = Parse(v, false) - default: - err = fmt.Errorf("%T %+v is not a meaningful period", value, value) - } - - return err -} - -// Value converts the period to a string. It implements driver.Valuer, -// https://golang.org/pkg/database/sql/driver/#Valuer -func (period Period) Value() (driver.Value, error) { - return period.String(), nil -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 354c5ccb2256..30827ab7ac5f 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1114,8 +1114,8 @@ github.com/mitchellh/reflectwalk # github.com/oklog/run v1.1.0 ## explicit; go 1.13 github.com/oklog/run -# github.com/rickb777/date v1.20.2 -## explicit; go 1.17 +# github.com/rickb777/date v1.12.5-0.20200422084442-6300e543c4d9 +## explicit; go 1.13 github.com/rickb777/date/period # github.com/rickb777/plural v1.4.1 ## explicit; go 1.17 From f50e3ca0270fd8a4176aafba8280e1b40ab2af48 Mon Sep 17 00:00:00 2001 From: magodo Date: Mon, 18 Sep 2023 15:52:42 +0800 Subject: [PATCH 208/336] `azurerm_storage_account` - For `Storage` kind account, avoid setting some unsupported blob properties (#23288) * `azurerm_storage_account` - For `Storage` kind account, avoid setting some unsupported blob properties * Explicitly mention Storage v1 --- .../storage/storage_account_resource.go | 79 +++++++++++++------ .../storage/storage_account_resource_test.go | 64 +++++++++++++++ website/docs/r/storage_account.html.markdown | 10 +++ 3 files changed, 130 insertions(+), 23 deletions(-) diff --git a/internal/services/storage/storage_account_resource.go b/internal/services/storage/storage_account_resource.go index a953917c26eb..0927a1e08c5e 100644 --- a/internal/services/storage/storage_account_resource.go +++ b/internal/services/storage/storage_account_resource.go @@ -1324,7 +1324,7 @@ func resourceStorageAccountCreate(d *pluginsdk.ResourceData, meta interface{}) e } blobClient := meta.(*clients.Client).Storage.BlobServicesClient - blobProperties, err := expandBlobProperties(val.([]interface{})) + blobProperties, err := expandBlobProperties(storage.Kind(accountKind), val.([]interface{})) if err != nil { return err } @@ -1794,7 +1794,7 @@ func resourceStorageAccountUpdate(d *pluginsdk.ResourceData, meta interface{}) e } blobClient := meta.(*clients.Client).Storage.BlobServicesClient - blobProperties, err := expandBlobProperties(d.Get("blob_properties").([]interface{})) + blobProperties, err := expandBlobProperties(storage.Kind(accountKind), d.Get("blob_properties").([]interface{})) if err != nil { return err } @@ -2611,25 +2611,33 @@ func expandStorageAccountPrivateLinkAccess(inputs []interface{}, tenantId string return &privateLinkAccess } -func expandBlobProperties(input []interface{}) (*storage.BlobServiceProperties, error) { +func expandBlobProperties(kind storage.Kind, input []interface{}) (*storage.BlobServiceProperties, error) { props := storage.BlobServiceProperties{ BlobServicePropertiesProperties: &storage.BlobServicePropertiesProperties{ Cors: &storage.CorsRules{ CorsRules: &[]storage.CorsRule{}, }, - IsVersioningEnabled: utils.Bool(false), - ChangeFeed: &storage.ChangeFeed{ - Enabled: utils.Bool(false), - }, DeleteRetentionPolicy: &storage.DeleteRetentionPolicy{ Enabled: utils.Bool(false), }, - LastAccessTimeTrackingPolicy: &storage.LastAccessTimeTrackingPolicy{ - Enable: utils.Bool(false), - }, }, } + // `Storage` (v1) kind doesn't support: + // - LastAccessTimeTrackingPolicy: Confirmed by SRP. + // - ChangeFeed: See https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-change-feed?tabs=azure-portal#enable-and-disable-the-change-feed. + // - Versioning: See https://learn.microsoft.com/en-us/azure/storage/blobs/versioning-overview#how-blob-versioning-works + // - Restore Policy: See https://learn.microsoft.com/en-us/azure/storage/blobs/point-in-time-restore-overview#prerequisites-for-point-in-time-restore + if kind != storage.KindStorage { + props.LastAccessTimeTrackingPolicy = &storage.LastAccessTimeTrackingPolicy{ + Enable: utils.Bool(false), + } + props.ChangeFeed = &storage.ChangeFeed{ + Enabled: utils.Bool(false), + } + props.IsVersioningEnabled = utils.Bool(false) + } + if len(input) == 0 || input[0] == nil { return &props, nil } @@ -2642,28 +2650,53 @@ func expandBlobProperties(input []interface{}) (*storage.BlobServiceProperties, containerDeletePolicyRaw := v["container_delete_retention_policy"].([]interface{}) props.BlobServicePropertiesProperties.ContainerDeleteRetentionPolicy = expandBlobPropertiesDeleteRetentionPolicy(containerDeletePolicyRaw) - restorePolicyRaw := v["restore_policy"].([]interface{}) - props.BlobServicePropertiesProperties.RestorePolicy = expandBlobPropertiesRestorePolicy(restorePolicyRaw) - corsRaw := v["cors_rule"].([]interface{}) props.BlobServicePropertiesProperties.Cors = expandBlobPropertiesCors(corsRaw) props.IsVersioningEnabled = utils.Bool(v["versioning_enabled"].(bool)) - props.ChangeFeed = &storage.ChangeFeed{ - Enabled: utils.Bool(v["change_feed_enabled"].(bool)), - } - - if v := v["change_feed_retention_in_days"].(int); v != 0 { - props.ChangeFeed.RetentionInDays = utils.Int32((int32)(v)) - } - if version, ok := v["default_service_version"].(string); ok && version != "" { props.DefaultServiceVersion = utils.String(version) } - props.LastAccessTimeTrackingPolicy = &storage.LastAccessTimeTrackingPolicy{ - Enable: utils.Bool(v["last_access_time_enabled"].(bool)), + // `Storage` (v1) kind doesn't support: + // - LastAccessTimeTrackingPolicy + // - ChangeFeed + // - Versioning + // - RestorePolicy + lastAccessTimeEnabled := v["last_access_time_enabled"].(bool) + changeFeedEnabled := v["change_feed_enabled"].(bool) + changeFeedRetentionInDays := v["change_feed_retention_in_days"].(int) + restorePolicyRaw := v["restore_policy"].([]interface{}) + versioningEnabled := v["versioning_enabled"].(bool) + if kind != storage.KindStorage { + props.BlobServicePropertiesProperties.LastAccessTimeTrackingPolicy = &storage.LastAccessTimeTrackingPolicy{ + Enable: utils.Bool(lastAccessTimeEnabled), + } + props.BlobServicePropertiesProperties.ChangeFeed = &storage.ChangeFeed{ + Enabled: utils.Bool(changeFeedEnabled), + } + if changeFeedRetentionInDays != 0 { + props.BlobServicePropertiesProperties.ChangeFeed.RetentionInDays = utils.Int32(int32(changeFeedRetentionInDays)) + } + props.BlobServicePropertiesProperties.RestorePolicy = expandBlobPropertiesRestorePolicy(restorePolicyRaw) + props.BlobServicePropertiesProperties.IsVersioningEnabled = &versioningEnabled + } else { + if lastAccessTimeEnabled { + return nil, fmt.Errorf("`last_access_time_enabled` can not be configured when `kind` is set to `Storage` (v1)") + } + if changeFeedEnabled { + return nil, fmt.Errorf("`change_feed_enabled` can not be configured when `kind` is set to `Storage` (v1)") + } + if changeFeedRetentionInDays != 0 { + return nil, fmt.Errorf("`change_feed_retention_in_days` can not be configured when `kind` is set to `Storage` (v1)") + } + if len(restorePolicyRaw) != 0 { + return nil, fmt.Errorf("`restore_policy` can not be configured when `kind` is set to `Storage` (v1)") + } + if versioningEnabled { + return nil, fmt.Errorf("`versioning_enabled` can not be configured when `kind` is set to `Storage` (v1)") + } } // Sanity check for the prerequisites of restore_policy diff --git a/internal/services/storage/storage_account_resource_test.go b/internal/services/storage/storage_account_resource_test.go index a233db540581..75e1b987bd0c 100644 --- a/internal/services/storage/storage_account_resource_test.go +++ b/internal/services/storage/storage_account_resource_test.go @@ -695,6 +695,21 @@ func TestAccStorageAccount_blobPropertiesEmptyAllowedExposedHeaders(t *testing.T }) } +func TestAccStorageAccount_blobProperties_kindStorageNotSupportLastAccessTimeEnabled(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_storage_account", "test") + r := StorageAccountResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.blobPropertiesStorageKindNotSupportLastAccessTimeEnabled(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func TestAccStorageAccount_queueProperties(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_storage_account", "test") r := StorageAccountResource{} @@ -4463,3 +4478,52 @@ resource "azurerm_storage_account" "test" { } `, data.RandomInteger, data.Locations.Primary, data.RandomString) } + +func (r StorageAccountResource) blobPropertiesStorageKindNotSupportLastAccessTimeEnabled(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestAzureRMSA-%d" + location = "%s" +} + +resource "azurerm_storage_account" "test" { + name = "unlikely23exst2acct%s" + resource_group_name = azurerm_resource_group.test.name + + location = azurerm_resource_group.test.location + account_kind = "Storage" + account_tier = "Standard" + account_replication_type = "LRS" + + blob_properties { + cors_rule { + allowed_origins = ["http://www.example.com"] + exposed_headers = ["x-tempo-*"] + allowed_headers = ["x-tempo-*"] + allowed_methods = ["GET", "PUT", "PATCH"] + max_age_in_seconds = "500" + } + + delete_retention_policy { + days = 300 + } + + default_service_version = "2019-07-07" + container_delete_retention_policy { + days = 7 + } + + # Following properties are not supported for "Storage" (v1) kind + last_access_time_enabled = false + change_feed_enabled = false + versioning_enabled = false + # change_feed_retention_in_days + # restore_policy + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomString) +} diff --git a/website/docs/r/storage_account.html.markdown b/website/docs/r/storage_account.html.markdown index e301ad8edd02..26a0f722980e 100644 --- a/website/docs/r/storage_account.html.markdown +++ b/website/docs/r/storage_account.html.markdown @@ -183,16 +183,26 @@ A `blob_properties` block supports the following: * `restore_policy` - (Optional) A `restore_policy` block as defined below. This must be used together with `delete_retention_policy` set, `versioning_enabled` and `change_feed_enabled` set to `true`. +-> **NOTE:** This field cannot be configured when `kind` is set to `Storage` (V1). + * `versioning_enabled` - (Optional) Is versioning enabled? Default to `false`. +-> **NOTE:** This field cannot be configured when `kind` is set to `Storage` (V1). + * `change_feed_enabled` - (Optional) Is the blob service properties for change feed events enabled? Default to `false`. +-> **NOTE:** This field cannot be configured when `kind` is set to `Storage` (V1). + * `change_feed_retention_in_days` - (Optional) The duration of change feed events retention in days. The possible values are between 1 and 146000 days (400 years). Setting this to null (or omit this in the configuration file) indicates an infinite retention of the change feed. +-> **NOTE:** This field cannot be configured when `kind` is set to `Storage` (V1). + * `default_service_version` - (Optional) The API Version which should be used by default for requests to the Data Plane API if an incoming request doesn't specify an API Version. * `last_access_time_enabled` - (Optional) Is the last access time based tracking enabled? Default to `false`. +-> **NOTE:** This field cannot be configured when `kind` is set to `Storage` (V1). + * `container_delete_retention_policy` - (Optional) A `container_delete_retention_policy` block as defined below. --- From d402631d8166967acd7a33ee140a49579367e11a Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Mon, 18 Sep 2023 09:57:10 +0200 Subject: [PATCH 209/336] updating to include #23296 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8db2e264228a..dd07f3faf075 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,14 @@ ENHANCEMENTS: +* dependencies: downgrading to `v1.12.5` of `github.com/rickb777/date` [GH-23296] * dependencies - swap Virtual Machine Scale Set Ids to `hashicorp/go-azure-helpers/commonids` [GH-23272] +BUG FIXES: + +* `azurerm_servicebus_queue` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] +* `azurerm_servicebus_topic` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] + ## 3.73.0 (September 14, 2023) FEATURES: From 0d8a529e19ea08526a1f20d5eb5d9bd51803afa9 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Mon, 18 Sep 2023 09:58:27 +0200 Subject: [PATCH 210/336] Removing #23272 from the changelog This is an internal refactor so can be omitted as it's not user-facing --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd07f3faf075..3f61929e9ed6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,6 @@ ENHANCEMENTS: * dependencies: downgrading to `v1.12.5` of `github.com/rickb777/date` [GH-23296] -* dependencies - swap Virtual Machine Scale Set Ids to `hashicorp/go-azure-helpers/commonids` [GH-23272] BUG FIXES: From c6c8beaaf95dcb2a256e70511b99428481a00c4f Mon Sep 17 00:00:00 2001 From: jackofallops Date: Mon, 18 Sep 2023 10:36:11 +0200 Subject: [PATCH 211/336] add validation for concurrent_requests --- .../containerapps/helpers/container_apps.go | 4 +- .../containerapps/validate/validate.go | 21 +++++++++ .../containerapps/validate/validate_test.go | 46 +++++++++++++++++++ 3 files changed, 69 insertions(+), 2 deletions(-) diff --git a/internal/services/containerapps/helpers/container_apps.go b/internal/services/containerapps/helpers/container_apps.go index 95d7a1ce218d..8584503f08ff 100644 --- a/internal/services/containerapps/helpers/container_apps.go +++ b/internal/services/containerapps/helpers/container_apps.go @@ -2637,7 +2637,7 @@ func HTTPScaleRuleSchema() *pluginsdk.Schema { "concurrent_requests": { Type: pluginsdk.TypeString, Required: true, - ValidateFunc: nil, // TODO - str value for int + ValidateFunc: validate.ContainerAppScaleRuleConcurrentRequests, }, "authentication": { @@ -2724,7 +2724,7 @@ func TCPScaleRuleSchema() *pluginsdk.Schema { "concurrent_requests": { Type: pluginsdk.TypeString, Required: true, - ValidateFunc: nil, // TODO Validation for int as str + ValidateFunc: validate.ContainerAppScaleRuleConcurrentRequests, }, "authentication": { diff --git a/internal/services/containerapps/validate/validate.go b/internal/services/containerapps/validate/validate.go index b6147f522772..8c43ef0fac75 100644 --- a/internal/services/containerapps/validate/validate.go +++ b/internal/services/containerapps/validate/validate.go @@ -6,6 +6,7 @@ package validate import ( "fmt" "regexp" + "strconv" "strings" ) @@ -138,3 +139,23 @@ func ContainerAppContainerName(i interface{}, k string) (warnings []string, erro } return } + +func ContainerAppScaleRuleConcurrentRequests(i interface{}, k string) (warnings []string, errors []error) { + v, ok := i.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected type of %s to be string", k)) + return + } + + c, err := strconv.Atoi(v) + if err != nil { + errors = append(errors, fmt.Errorf("expected %s to be a string representation of an integer, got %+v", k, v)) + return + } + + if c <= 0 { + errors = append(errors, fmt.Errorf("value for %s must be at least `1`, got %d", k, c)) + } + + return +} diff --git a/internal/services/containerapps/validate/validate_test.go b/internal/services/containerapps/validate/validate_test.go index 183e2c93f8c2..44203f9dc88f 100644 --- a/internal/services/containerapps/validate/validate_test.go +++ b/internal/services/containerapps/validate/validate_test.go @@ -274,3 +274,49 @@ func TestValidateInitTimeout(t *testing.T) { } } } + +func TestContainerAppScaleRuleConcurrentRequests(t *testing.T) { + cases := []struct { + Input string + Valid bool + }{ + { + Input: "5", + Valid: true, + }, + { + Input: "m", + Valid: false, + }, + { + Input: "6d", + Valid: false, + }, + { + Input: "10s", + Valid: false, + }, + { + Input: "1h", + Valid: false, + }, + { + Input: "1200s", + Valid: false, + }, + { + Input: "-1", + Valid: false, + }, + } + + for _, tc := range cases { + t.Logf("[DEBUG] Testing Value %s", tc.Input) + _, errors := ContainerAppScaleRuleConcurrentRequests(tc.Input, "test") + valid := len(errors) == 0 + + if tc.Valid != valid { + t.Fatalf("Expected %t but got %t for %s", tc.Valid, valid, tc.Input) + } + } +} From c22a8b46a6303c5f6f00984be84de39adf79feaf Mon Sep 17 00:00:00 2001 From: Zhenhua Hu Date: Mon, 18 Sep 2023 16:39:29 +0800 Subject: [PATCH 212/336] `azurerm_shared_image_version` - Support `replicated_region_deletion_enabled` and `target_region.exclude_from_latest_enabled` (#23147) * add code * resolve comments 0905 --- .../compute/shared_image_version_resource.go | 25 ++++++++++ .../shared_image_version_resource_test.go | 46 +++++++++++++++++++ .../docs/r/shared_image_version.html.markdown | 4 ++ 3 files changed, 75 insertions(+) diff --git a/internal/services/compute/shared_image_version_resource.go b/internal/services/compute/shared_image_version_resource.go index aba48fd63a71..26535cc429df 100644 --- a/internal/services/compute/shared_image_version_resource.go +++ b/internal/services/compute/shared_image_version_resource.go @@ -10,6 +10,7 @@ import ( "time" "github.com/Azure/go-autorest/autorest/date" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" @@ -99,6 +100,12 @@ func resourceSharedImageVersion() *pluginsdk.Resource { ValidateFunc: validate.DiskEncryptionSetID, }, + "exclude_from_latest_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + // The Service API doesn't support to update `storage_account_type`. So it has to recreate the resource for updating `storage_account_type`. // However, `ForceNew` cannot be used since resource would be recreated while adding or removing `target_region`. // And `CustomizeDiff` also cannot be used since it doesn't support in a `Set`. @@ -177,6 +184,13 @@ func resourceSharedImageVersion() *pluginsdk.Resource { Default: false, }, + "deletion_of_replicated_locations_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + ForceNew: true, + Default: false, + }, + "tags": tags.Schema(), }, @@ -222,6 +236,9 @@ func resourceSharedImageVersionCreateUpdate(d *pluginsdk.ResourceData, meta inte ReplicationMode: compute.ReplicationMode(d.Get("replication_mode").(string)), TargetRegions: targetRegions, }, + SafetyProfile: &compute.GalleryImageVersionSafetyProfile{ + AllowDeletionOfReplicatedLocations: utils.Bool(d.Get("deletion_of_replicated_locations_enabled").(bool)), + }, StorageProfile: &compute.GalleryImageVersionStorageProfile{}, }, Tags: tags.Expand(d.Get("tags").(map[string]interface{})), @@ -343,6 +360,10 @@ func resourceSharedImageVersionRead(d *pluginsdk.ResourceData, meta interface{}) d.Set("os_disk_snapshot_id", osDiskSnapShotID) d.Set("storage_account_id", storageAccountID) } + + if safetyProfile := props.SafetyProfile; safetyProfile != nil { + d.Set("deletion_of_replicated_locations_enabled", pointer.From(safetyProfile.AllowDeletionOfReplicatedLocations)) + } } return tags.FlattenAndSet(d, resp.Tags) @@ -415,9 +436,11 @@ func expandSharedImageVersionTargetRegions(d *pluginsdk.ResourceData) (*[]comput regionalReplicaCount := input["regional_replica_count"].(int) storageAccountType := input["storage_account_type"].(string) diskEncryptionSetId := input["disk_encryption_set_id"].(string) + excludeFromLatest := input["exclude_from_latest_enabled"].(bool) output := compute.TargetRegion{ Name: utils.String(name), + ExcludeFromLatest: utils.Bool(excludeFromLatest), RegionalReplicaCount: utils.Int32(int32(regionalReplicaCount)), StorageAccountType: compute.StorageAccountType(storageAccountType), } @@ -463,6 +486,8 @@ func flattenSharedImageVersionTargetRegions(input *[]compute.TargetRegion) []int } output["disk_encryption_set_id"] = diskEncryptionSetId + output["exclude_from_latest_enabled"] = pointer.From(v.ExcludeFromLatest) + results = append(results, output) } } diff --git a/internal/services/compute/shared_image_version_resource_test.go b/internal/services/compute/shared_image_version_resource_test.go index 14e44081c7b2..fee03ee1c86d 100644 --- a/internal/services/compute/shared_image_version_resource_test.go +++ b/internal/services/compute/shared_image_version_resource_test.go @@ -234,6 +234,29 @@ func TestAccSharedImageVersion_replicationMode(t *testing.T) { }) } +func TestAccSharedImageVersion_replicatedRegionDeletion(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_shared_image_version", "test") + r := SharedImageVersionResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + // need to create a vm and then reference it in the image creation + Config: r.setup(data), + Check: acceptance.ComposeTestCheckFunc( + data.CheckWithClientForResource(ImageResource{}.virtualMachineExists, "azurerm_virtual_machine.testsource"), + data.CheckWithClientForResource(ImageResource{}.generalizeVirtualMachine(data), "azurerm_virtual_machine.testsource"), + ), + }, + { + Config: r.replicatedRegionDeletion(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func TestAccSharedImageVersion_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_shared_image_version", "test") r := SharedImageVersionResource{} @@ -697,3 +720,26 @@ resource "azurerm_shared_image_version" "test" { } `, template) } + +func (r SharedImageVersionResource) replicatedRegionDeletion(data acceptance.TestData) string { + template := r.provision(data) + return fmt.Sprintf(` +%s + +resource "azurerm_shared_image_version" "test" { + name = "0.0.1" + gallery_name = azurerm_shared_image_gallery.test.name + image_name = azurerm_shared_image.test.name + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + managed_image_id = azurerm_image.test.id + deletion_of_replicated_locations_enabled = true + + target_region { + name = azurerm_resource_group.test.location + regional_replica_count = 1 + exclude_from_latest_enabled = true + } +} +`, template) +} diff --git a/website/docs/r/shared_image_version.html.markdown b/website/docs/r/shared_image_version.html.markdown index e357935c61f4..b96f0616618a 100644 --- a/website/docs/r/shared_image_version.html.markdown +++ b/website/docs/r/shared_image_version.html.markdown @@ -77,6 +77,8 @@ The following arguments are supported: -> **NOTE:** You must specify exact one of `blob_uri`, `managed_image_id` and `os_disk_snapshot_id`. +* `deletion_of_replicated_locations_enabled` - (Optional) Specifies whether this Shared Image Version can be deleted from the Azure Regions this is replicated to. Defaults to `false`. Changing this forces a new resource to be created. + * `replication_mode` - (Optional) Mode to be used for replication. Possible values are `Full` and `Shallow`. Defaults to `Full`. Changing this forces a new resource to be created. * `storage_account_id` - (Optional) The ID of the Storage Account where the Blob exists. Changing this forces a new resource to be created. @@ -95,6 +97,8 @@ The `target_region` block supports the following: * `disk_encryption_set_id` - (Optional) The ID of the Disk Encryption Set to encrypt the Image Version in the target region. Changing this forces a new resource to be created. +* `exclude_from_latest_enabled` - (Optional) Specifies whether this Shared Image Version should be excluded when querying for the `latest` version. Defaults to `false`. + * `storage_account_type` - (Optional) The storage account type for the image version. Possible values are `Standard_LRS`, `Premium_LRS` and `Standard_ZRS`. Defaults to `Standard_LRS`. You can store all of your image version replicas in Zone Redundant Storage by specifying `Standard_ZRS`. ## Attributes Reference From ca842c0b0a80a142ea80ee9b172d7895689afbdc Mon Sep 17 00:00:00 2001 From: Tao <104055472+teowa@users.noreply.github.com> Date: Mon, 18 Sep 2023 16:40:54 +0800 Subject: [PATCH 213/336] `azurerm_monitor_scheduled_query_rules_alert_v2` - add doc for `metric_measure_column` limitation (#23300) * add doc * fix --- .../r/monitor_scheduled_query_rules_alert_v2.html.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/docs/r/monitor_scheduled_query_rules_alert_v2.html.markdown b/website/docs/r/monitor_scheduled_query_rules_alert_v2.html.markdown index 6318a3c48e2c..44257582c0fd 100644 --- a/website/docs/r/monitor_scheduled_query_rules_alert_v2.html.markdown +++ b/website/docs/r/monitor_scheduled_query_rules_alert_v2.html.markdown @@ -122,7 +122,7 @@ The following arguments are supported: * `mute_actions_after_alert_duration` - (Optional) Mute actions for the chosen period of time in ISO 8601 duration format after the alert is fired. Possible values are `PT5M`, `PT10M`, `PT15M`, `PT30M`, `PT45M`, `PT1H`, `PT2H`, `PT3H`, `PT4H`, `PT5H`, `PT6H`, `P1D` and `P2D`. --> **NOTE** `auto_mitigation_enabled` and `mute_actions_after_alert_duration` are mutually exclusive and cannot both be set. +-> **Note** `auto_mitigation_enabled` and `mute_actions_after_alert_duration` are mutually exclusive and cannot both be set. * `query_time_range_override` - (Optional) Set this if the alert evaluation period is different from the query time range. If not specified, the value is `window_duration`*`number_of_evaluation_periods`. Possible values are `PT5M`, `PT10M`, `PT15M`, `PT20M`, `PT30M`, `PT45M`, `PT1H`, `PT2H`, `PT3H`, `PT4H`, `PT5H`, `PT6H`, `P1D` and `P2D`. @@ -160,6 +160,8 @@ A `criteria` block supports the following: * `metric_measure_column` - (Optional) Specifies the column containing the metric measure number. +-> **Note** `metric_measure_column` is required if `time_aggregation_method` is `Average`, `Maximum`, `Minimum`, or `Total`. And `metric_measure_column` can not be specified if `time_aggregation_method` is `Count`. + * `resource_id_column` - (Optional) Specifies the column containing the resource ID. The content of the column must be an uri formatted as resource ID. --- From 536c89a7889ae8ce84688e8a0eed059be8a154a2 Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Mon, 18 Sep 2023 10:03:40 +0100 Subject: [PATCH 214/336] Update CHANGELOG.md for #23294 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f61929e9ed6..787f6cdf66e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ENHANCEMENTS: * dependencies: downgrading to `v1.12.5` of `github.com/rickb777/date` [GH-23296] +* `azurerm_container_app` - add support for scale rules [GH-23294] BUG FIXES: From ff4c0563e01e2cfec57f750b1ff9d616ebdf2b57 Mon Sep 17 00:00:00 2001 From: Elena Xin <39109137+sinbai@users.noreply.github.com> Date: Mon, 18 Sep 2023 21:10:21 +0800 Subject: [PATCH 215/336] `azurerm_api_management_api` : fix service is unavailable while updating `azurerm_api_management_api` (#23011) * fix issue 22973 * update code --- .../api_management_api_resource.go | 5 ++ .../api_management_api_resource_test.go | 84 +++++++++++++++++++ 2 files changed, 89 insertions(+) diff --git a/internal/services/apimanagement/api_management_api_resource.go b/internal/services/apimanagement/api_management_api_resource.go index d89657647d8c..695211d6d6aa 100644 --- a/internal/services/apimanagement/api_management_api_resource.go +++ b/internal/services/apimanagement/api_management_api_resource.go @@ -420,6 +420,11 @@ func resourceApiManagementApiCreateUpdate(d *pluginsdk.ResourceData, meta interf ApiVersion: pointer.To(version), }, } + + if v, ok := d.GetOk("service_url"); ok { + apiParams.Properties.ServiceUrl = pointer.To(v.(string)) + } + wsdlSelectorVs := importV["wsdl_selector"].([]interface{}) if len(wsdlSelectorVs) > 0 { diff --git a/internal/services/apimanagement/api_management_api_resource_test.go b/internal/services/apimanagement/api_management_api_resource_test.go index 5896fd89ee30..9074c07e7cae 100644 --- a/internal/services/apimanagement/api_management_api_resource_test.go +++ b/internal/services/apimanagement/api_management_api_resource_test.go @@ -247,6 +247,44 @@ func TestAccApiManagementApi_importSwagger(t *testing.T) { }) } +func TestAccApiManagementApi_importSwaggerWithServiceUrl(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_api_management_api", "test") + r := ApiManagementApiResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.importSwaggerWithServiceUrl(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + ResourceName: data.ResourceName, + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{ + // not returned from the API + "import", + }, + }, + { + Config: r.importSwaggerWithServiceUrlUpdate(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + ResourceName: data.ResourceName, + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{ + // not returned from the API + "import", + }, + }, + }) +} + func TestAccApiManagementApi_importWsdl(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_api_management_api", "test") r := ApiManagementApiResource{} @@ -606,6 +644,52 @@ resource "azurerm_api_management_api" "test" { `, r.template(data, SkuNameConsumption), data.RandomInteger) } +func (r ApiManagementApiResource) importSwaggerWithServiceUrl(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_api_management_api" "test" { + name = "acctestapi-%d" + resource_group_name = azurerm_resource_group.test.name + api_management_name = azurerm_api_management.test.name + display_name = "api1" + path = "api1" + protocols = ["https"] + revision = "1" + description = "import swagger" + service_url = "https://example.com/foo/bar" + + import { + content_value = file("testdata/api_management_api_swagger.json") + content_format = "swagger-json" + } +} +`, r.template(data, SkuNameConsumption), data.RandomInteger) +} + +func (r ApiManagementApiResource) importSwaggerWithServiceUrlUpdate(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_api_management_api" "test" { + name = "acctestapi-%d" + resource_group_name = azurerm_resource_group.test.name + api_management_name = azurerm_api_management.test.name + display_name = "api1" + path = "api1" + protocols = ["https"] + revision = "1" + description = "import swagger update" + service_url = "https://example.com/foo/bar" + + import { + content_value = file("testdata/api_management_api_swagger.json") + content_format = "swagger-json" + } +} +`, r.template(data, SkuNameConsumption), data.RandomInteger) +} + func (r ApiManagementApiResource) importWsdl(data acceptance.TestData) string { return fmt.Sprintf(` %s From fc599002d2c56452c449a64d140533d44f35028c Mon Sep 17 00:00:00 2001 From: jackofallops Date: Mon, 18 Sep 2023 16:09:15 +0200 Subject: [PATCH 216/336] fix docker update settings and add test coverage --- .../helpers/linux_web_app_schema.go | 5 ++++ .../appservice/helpers/web_app_slot_schema.go | 27 ++++++++++++++++--- .../appservice/linux_web_app_resource_test.go | 24 +++++++++++++++++ .../linux_web_app_slot_resource_test.go | 24 +++++++++++++++++ .../windows_web_app_resource_test.go | 8 ++++++ .../windows_web_app_slot_resource_test.go | 4 +-- 6 files changed, 87 insertions(+), 5 deletions(-) diff --git a/internal/services/appservice/helpers/linux_web_app_schema.go b/internal/services/appservice/helpers/linux_web_app_schema.go index 646a4f7c6724..4b367f02898a 100644 --- a/internal/services/appservice/helpers/linux_web_app_schema.go +++ b/internal/services/appservice/helpers/linux_web_app_schema.go @@ -936,6 +936,9 @@ func (s *SiteConfigLinux) ExpandForUpdate(metadata sdk.ResourceMetaData, existin if linuxAppStack.DockerImageName != "" { expanded.LinuxFxVersion = pointer.To(EncodeDockerFxString(linuxAppStack.DockerImageName, linuxAppStack.DockerRegistryUrl)) + if appSettings == nil { + appSettings = map[string]string{} + } appSettings["DOCKER_REGISTRY_SERVER_URL"] = linuxAppStack.DockerRegistryUrl appSettings["DOCKER_REGISTRY_SERVER_USERNAME"] = linuxAppStack.DockerRegistryUsername appSettings["DOCKER_REGISTRY_SERVER_PASSWORD"] = linuxAppStack.DockerRegistryPassword @@ -945,6 +948,8 @@ func (s *SiteConfigLinux) ExpandForUpdate(metadata sdk.ResourceMetaData, existin } } + expanded.AppSettings = ExpandAppSettingsForCreate(appSettings) + if metadata.ResourceData.HasChange("site_config.0.container_registry_managed_identity_client_id") { expanded.AcrUserManagedIdentityID = pointer.To(s.ContainerRegistryMSI) } diff --git a/internal/services/appservice/helpers/web_app_slot_schema.go b/internal/services/appservice/helpers/web_app_slot_schema.go index e521cb96a7f6..b4140bd7fa60 100644 --- a/internal/services/appservice/helpers/web_app_slot_schema.go +++ b/internal/services/appservice/helpers/web_app_slot_schema.go @@ -619,6 +619,11 @@ func (s *SiteConfigLinuxWebAppSlot) ExpandForCreate(appSettings map[string]strin if linuxAppStack.DockerImageName != "" { expanded.LinuxFxVersion = pointer.To(EncodeDockerFxString(linuxAppStack.DockerImageName, linuxAppStack.DockerRegistryUrl)) + + if appSettings == nil { + appSettings = make(map[string]string) + } + appSettings["DOCKER_REGISTRY_SERVER_URL"] = linuxAppStack.DockerRegistryUrl appSettings["DOCKER_REGISTRY_SERVER_USERNAME"] = linuxAppStack.DockerRegistryUsername appSettings["DOCKER_REGISTRY_SERVER_PASSWORD"] = linuxAppStack.DockerRegistryPassword @@ -748,6 +753,11 @@ func (s *SiteConfigLinuxWebAppSlot) ExpandForUpdate(metadata sdk.ResourceMetaDat if linuxAppStack.DockerImageName != "" { expanded.LinuxFxVersion = pointer.To(EncodeDockerFxString(linuxAppStack.DockerImageName, linuxAppStack.DockerRegistryUrl)) + + if appSettings == nil { + appSettings = make(map[string]string) + } + appSettings["DOCKER_REGISTRY_SERVER_URL"] = linuxAppStack.DockerRegistryUrl appSettings["DOCKER_REGISTRY_SERVER_USERNAME"] = linuxAppStack.DockerRegistryUsername appSettings["DOCKER_REGISTRY_SERVER_PASSWORD"] = linuxAppStack.DockerRegistryPassword @@ -756,6 +766,7 @@ func (s *SiteConfigLinuxWebAppSlot) ExpandForUpdate(metadata sdk.ResourceMetaDat expanded.LinuxFxVersion = pointer.To("") } } + expanded.AppSettings = ExpandAppSettingsForCreate(appSettings) if metadata.ResourceData.HasChange("site_config.0.auto_swap_slot_name") { expanded.AutoSwapSlotName = pointer.To(s.AutoSwapSlotName) @@ -1028,15 +1039,19 @@ func (s *SiteConfigWindowsWebAppSlot) ExpandForCreate(appSettings map[string]str if winAppStack.DockerImageName != "" { expanded.WindowsFxVersion = pointer.To(EncodeDockerFxStringWindows(winAppStack.DockerImageName, winAppStack.DockerRegistryUrl)) + + if appSettings == nil { + appSettings = make(map[string]string) + } + appSettings["DOCKER_REGISTRY_SERVER_URL"] = winAppStack.DockerRegistryUrl appSettings["DOCKER_REGISTRY_SERVER_USERNAME"] = winAppStack.DockerRegistryUsername appSettings["DOCKER_REGISTRY_SERVER_PASSWORD"] = winAppStack.DockerRegistryPassword - } - } else { expanded.WindowsFxVersion = pointer.To("") } + expanded.AppSettings = ExpandAppSettingsForCreate(appSettings) if s.AutoSwapSlotName != "" { expanded.AutoSwapSlotName = pointer.To(s.AutoSwapSlotName) @@ -1165,10 +1180,14 @@ func (s *SiteConfigWindowsWebAppSlot) ExpandForUpdate(metadata sdk.ResourceMetaD if winAppStack.DockerImageName != "" { expanded.WindowsFxVersion = pointer.To(EncodeDockerFxStringWindows(winAppStack.DockerImageName, winAppStack.DockerRegistryUrl)) + + if appSettings == nil { + appSettings = make(map[string]string) + } + appSettings["DOCKER_REGISTRY_SERVER_URL"] = winAppStack.DockerRegistryUrl appSettings["DOCKER_REGISTRY_SERVER_USERNAME"] = winAppStack.DockerRegistryUsername appSettings["DOCKER_REGISTRY_SERVER_PASSWORD"] = winAppStack.DockerRegistryPassword - } } else { @@ -1176,6 +1195,8 @@ func (s *SiteConfigWindowsWebAppSlot) ExpandForUpdate(metadata sdk.ResourceMetaD } } + expanded.AppSettings = ExpandAppSettingsForCreate(appSettings) + if metadata.ResourceData.HasChange("site_config.0.auto_swap_slot_name") { expanded.AutoSwapSlotName = pointer.To(s.AutoSwapSlotName) } diff --git a/internal/services/appservice/linux_web_app_resource_test.go b/internal/services/appservice/linux_web_app_resource_test.go index e15421ed3245..928c69114806 100644 --- a/internal/services/appservice/linux_web_app_resource_test.go +++ b/internal/services/appservice/linux_web_app_resource_test.go @@ -1128,6 +1128,30 @@ func TestAccLinuxWebApp_withDockerImageDockerHub(t *testing.T) { }) } +func TestAccLinuxWebApp_withDockerImageDockerHubUpdate(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_linux_web_app", "test") + r := LinuxWebAppResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.dockerImageName(data, "https://index.docker.io", "nginx:latest"), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("site_config.0.linux_fx_version").HasValue("DOCKER|index.docker.io/nginx:latest"), + ), + }, + data.ImportStep(), + { + Config: r.dockerImageName(data, "https://index.docker.io", "nginx:stable"), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("site_config.0.linux_fx_version").HasValue("DOCKER|index.docker.io/nginx:stable"), + ), + }, + data.ImportStep(), + }) +} + // Change Application stack of an app? func TestAccLinuxWebApp_updateAppStack(t *testing.T) { diff --git a/internal/services/appservice/linux_web_app_slot_resource_test.go b/internal/services/appservice/linux_web_app_slot_resource_test.go index 2c691c65bfa9..42d209d61a05 100644 --- a/internal/services/appservice/linux_web_app_slot_resource_test.go +++ b/internal/services/appservice/linux_web_app_slot_resource_test.go @@ -1106,6 +1106,30 @@ func TestAccLinuxWebAppSlot_withDockerImageDockerHub(t *testing.T) { }) } +func TestAccLinuxWebAppSlot_withDockerImageDockerHubUpdate(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_linux_web_app_slot", "test") + r := LinuxWebAppSlotResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.dockerImageName(data, "https://index.docker.io", "nginx:latest"), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("site_config.0.linux_fx_version").HasValue("DOCKER|index.docker.io/nginx:latest"), + ), + }, + data.ImportStep(), + { + Config: r.dockerImageName(data, "https://index.docker.io", "nginx:stable"), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("site_config.0.linux_fx_version").HasValue("DOCKER|index.docker.io/nginx:stable"), + ), + }, + data.ImportStep(), + }) +} + // Deployments func TestAccLinuxWebAppSlot_zipDeploy(t *testing.T) { diff --git a/internal/services/appservice/windows_web_app_resource_test.go b/internal/services/appservice/windows_web_app_resource_test.go index f1bfea96c5b0..bcaf1a609592 100644 --- a/internal/services/appservice/windows_web_app_resource_test.go +++ b/internal/services/appservice/windows_web_app_resource_test.go @@ -916,6 +916,14 @@ func TestAccWindowsWebApp_withDockerImageDockerHub(t *testing.T) { ), }, data.ImportStep(), + { + Config: r.dockerImageName(data, "https://index.docker.io", "traefik:v3.0-windowsservercore-1809"), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("site_config.0.windows_fx_version").HasValue("DOCKER|traefik:v3.0-windowsservercore-1809"), + ), + }, + data.ImportStep(), }) } diff --git a/internal/services/appservice/windows_web_app_slot_resource_test.go b/internal/services/appservice/windows_web_app_slot_resource_test.go index 9dd7029de321..48889ee497e3 100644 --- a/internal/services/appservice/windows_web_app_slot_resource_test.go +++ b/internal/services/appservice/windows_web_app_slot_resource_test.go @@ -883,10 +883,10 @@ func TestAccWindowsWebAppSlot_withDockerImageDockerHub(t *testing.T) { data.ResourceTest(t, r, []acceptance.TestStep{ { - Config: r.dockerImageName(data, "https://index.docker.io", "traefik:windowsservercore-1809"), + Config: r.dockerImageName(data, "https://index.docker.io", "traefik:v3.0-windowsservercore-1809"), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("site_config.0.windows_fx_version").HasValue("DOCKER|traefik:windowsservercore-1809"), + check.That(data.ResourceName).Key("site_config.0.windows_fx_version").HasValue("DOCKER|traefik:v3.0-windowsservercore-1809"), ), }, data.ImportStep(), From 685f277e332ec3038ebc6091b12b8b1113898064 Mon Sep 17 00:00:00 2001 From: Zhenhua Hu Date: Mon, 18 Sep 2023 22:13:16 +0800 Subject: [PATCH 217/336] `azurerm_network_interface` - Support `auxiliary_mode`, `auxiliary_sku` (#22979) * add code * resolve comments 0817 * resolve comments 0818 * resolve comments 0906 * resolve comments 0914 --- .../network/network_interface_resource.go | 51 +++++++++++ .../network_interface_resource_test.go | 84 +++++++++++++++++++ .../docs/r/network_interface.html.markdown | 8 ++ 3 files changed, 143 insertions(+) diff --git a/internal/services/network/network_interface_resource.go b/internal/services/network/network_interface_resource.go index 51ee2b8925d2..4e1d0d22db4e 100644 --- a/internal/services/network/network_interface_resource.go +++ b/internal/services/network/network_interface_resource.go @@ -126,6 +126,20 @@ func resourceNetworkInterface() *pluginsdk.Resource { }, // Optional + "auxiliary_mode": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringInSlice(networkinterfaces.PossibleValuesForNetworkInterfaceAuxiliaryMode(), false), + RequiredWith: []string{"auxiliary_sku"}, + }, + + "auxiliary_sku": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringInSlice(networkinterfaces.PossibleValuesForNetworkInterfaceAuxiliarySku(), false), + RequiredWith: []string{"auxiliary_mode"}, + }, + "dns_servers": { Type: pluginsdk.TypeList, Optional: true, @@ -232,6 +246,14 @@ func resourceNetworkInterfaceCreate(d *pluginsdk.ResourceData, meta interface{}) locks.ByName(id.NetworkInterfaceName, networkInterfaceResourceName) defer locks.UnlockByName(id.NetworkInterfaceName, networkInterfaceResourceName) + if auxiliaryMode, hasAuxiliaryMode := d.GetOk("auxiliary_mode"); hasAuxiliaryMode { + properties.AuxiliaryMode = pointer.To(networkinterfaces.NetworkInterfaceAuxiliaryMode(auxiliaryMode.(string))) + } + + if auxiliarySku, hasAuxiliarySku := d.GetOk("auxiliary_sku"); hasAuxiliarySku { + properties.AuxiliarySku = pointer.To(networkinterfaces.NetworkInterfaceAuxiliarySku(auxiliarySku.(string))) + } + dns, hasDns := d.GetOk("dns_servers") nameLabel, hasNameLabel := d.GetOk("internal_dns_name_label") if hasDns || hasNameLabel { @@ -325,6 +347,22 @@ func resourceNetworkInterfaceUpdate(d *pluginsdk.ResourceData, meta interface{}) }, } + if d.HasChange("auxiliary_mode") { + if auxiliaryMode, hasAuxiliaryMode := d.GetOk("auxiliary_mode"); hasAuxiliaryMode { + update.Properties.AuxiliaryMode = pointer.To(networkinterfaces.NetworkInterfaceAuxiliaryMode(auxiliaryMode.(string))) + } + } else { + update.Properties.AuxiliaryMode = existing.Model.Properties.AuxiliaryMode + } + + if d.HasChange("auxiliary_sku") { + if auxiliarySku, hasAuxiliarySku := d.GetOk("auxiliary_sku"); hasAuxiliarySku { + update.Properties.AuxiliarySku = pointer.To(networkinterfaces.NetworkInterfaceAuxiliarySku(auxiliarySku.(string))) + } + } else { + update.Properties.AuxiliarySku = existing.Model.Properties.AuxiliarySku + } + if d.HasChange("dns_servers") { dnsServersRaw := d.Get("dns_servers").([]interface{}) dnsServers := expandNetworkInterfaceDnsServers(dnsServersRaw) @@ -462,6 +500,19 @@ func resourceNetworkInterfaceRead(d *pluginsdk.ResourceData, meta interface{}) e return fmt.Errorf("setting `applied_dns_servers`: %+v", err) } + auxiliaryMode := "" + if props.AuxiliaryMode != nil && *props.AuxiliaryMode != networkinterfaces.NetworkInterfaceAuxiliaryModeNone { + auxiliaryMode = string(*props.AuxiliaryMode) + } + + d.Set("auxiliary_mode", auxiliaryMode) + + auxiliarySku := "" + if props.AuxiliarySku != nil && *props.AuxiliarySku != networkinterfaces.NetworkInterfaceAuxiliarySkuNone { + auxiliarySku = string(*props.AuxiliarySku) + } + + d.Set("auxiliary_sku", auxiliarySku) d.Set("enable_ip_forwarding", props.EnableIPForwarding) d.Set("enable_accelerated_networking", props.EnableAcceleratedNetworking) d.Set("internal_dns_name_label", internalDnsNameLabel) diff --git a/internal/services/network/network_interface_resource_test.go b/internal/services/network/network_interface_resource_test.go index d4b9b3dc1ba5..510abc6e25e3 100644 --- a/internal/services/network/network_interface_resource_test.go +++ b/internal/services/network/network_interface_resource_test.go @@ -44,6 +44,34 @@ func TestAccNetworkInterface_disappears(t *testing.T) { }) } +func TestAccNetworkInterface_auxiliary(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_network_interface", "test") + r := NetworkInterfaceResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.auxiliaryNone(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.auxiliaryAcceleratedConnections(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.auxiliaryNone(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func TestAccNetworkInterface_dnsServers(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_network_interface", "test") r := NetworkInterfaceResource{} @@ -388,6 +416,62 @@ resource "azurerm_network_interface" "test" { `, r.template(data), data.RandomInteger) } +func (r NetworkInterfaceResource) auxiliaryNone(data acceptance.TestData) string { + // Auxiliary Mode Nic is enabled in specific regions (https://learn.microsoft.com/en-us/azure/networking/nva-accelerated-connections#supported-regions) for now + // To not affect other testcases of `Network`, hard-code to that for now + data.Locations.Primary = "westus" + + return fmt.Sprintf(` +%s + +resource "azurerm_network_interface" "test" { + name = "acctestni-%d" + location = "%s" + resource_group_name = azurerm_resource_group.test.name + enable_accelerated_networking = true + + ip_configuration { + name = "primary" + subnet_id = azurerm_subnet.test.id + private_ip_address_allocation = "Dynamic" + } + + tags = { + fastpathenabled = "true" + } +} +`, r.template(data), data.RandomInteger, data.Locations.Primary) +} + +func (r NetworkInterfaceResource) auxiliaryAcceleratedConnections(data acceptance.TestData) string { + // Auxiliary Mode Nic is enabled in specific regions (https://learn.microsoft.com/en-us/azure/networking/nva-accelerated-connections#supported-regions) for now + // To not affect other testcases of `Network`, hard-code to that for now + data.Locations.Primary = "westus" + + return fmt.Sprintf(` +%s + +resource "azurerm_network_interface" "test" { + name = "acctestni-%d" + location = "%s" + resource_group_name = azurerm_resource_group.test.name + auxiliary_mode = "AcceleratedConnections" + auxiliary_sku = "A2" + enable_accelerated_networking = true + + ip_configuration { + name = "primary" + subnet_id = azurerm_subnet.test.id + private_ip_address_allocation = "Dynamic" + } + + tags = { + fastpathenabled = "true" + } +} +`, r.template(data), data.RandomInteger, data.Locations.Primary) +} + func (r NetworkInterfaceResource) withMultipleParameters(data acceptance.TestData) string { return fmt.Sprintf(` %s diff --git a/website/docs/r/network_interface.html.markdown b/website/docs/r/network_interface.html.markdown index f5387f3f578b..a99bf6e523c0 100644 --- a/website/docs/r/network_interface.html.markdown +++ b/website/docs/r/network_interface.html.markdown @@ -60,6 +60,14 @@ The following arguments are supported: --- +* `auxiliary_mode` - (Optional) Specifies the auxiliary mode used to enable network high-performance feature on Network Virtual Appliances (NVAs). This feature offers competitive performance in Connections Per Second (CPS) optimization, along with improvements to handling large amounts of simultaneous connections. Possible values are `AcceleratedConnections` and `Floating`. + +-> **Note:** `auxiliary_mode` is in **Preview** and requires that the preview is enabled - [more information can be found in the Azure documentation](https://learn.microsoft.com/azure/networking/nva-accelerated-connections#prerequisites). + +* `auxiliary_sku` - (Optional) Specifies the SKU used for the network high-performance feature on Network Virtual Appliances (NVAs). Possible values are `A1`, `A2`, `A4` and `A8`. + +-> **Note:** `auxiliary_sku` is in **Preview** and requires that the preview is enabled - [more information can be found in the Azure documentation](https://learn.microsoft.com/azure/networking/nva-accelerated-connections#prerequisites). + * `dns_servers` - (Optional) A list of IP Addresses defining the DNS Servers which should be used for this Network Interface. -> **Note:** Configuring DNS Servers on the Network Interface will override the DNS Servers defined on the Virtual Network. From 75bcf463914e36c410bfe068f97fd4fe6906c505 Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Tue, 19 Sep 2023 06:27:09 +0100 Subject: [PATCH 218/336] Update CHANGELOG.md for #23303 --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 787f6cdf66e6..25307c92f7f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,10 @@ ENHANCEMENTS: * `azurerm_container_app` - add support for scale rules [GH-23294] BUG FIXES: - +* `azurerm_linux_web_app` - fix docker app stack update [GH-23303] +* `azurerm_linux_web_app_slot` - fix docker app stack update [GH-23303] +* `azurerm_windows_web_app` - fix docker app stack update [GH-23303] +* `azurerm_windows_web_app_slot` - fix docker app stack update [GH-23303] * `azurerm_servicebus_queue` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] * `azurerm_servicebus_topic` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] From 4d9e601277ec8a042c35666a17123293a189a6dd Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:34:20 +0800 Subject: [PATCH 219/336] `azurerm_recovery_services_vault_resource_guard_association`: fix acctest (#23301) * `azurerm_recovery_services_vault_resource_guard_association`: fix acctest Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> * add comments Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --------- Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --- ...ry_services_vault_resource_guard_association_resource.go | 5 ++++- ...rvices_vault_resource_guard_association_resource_test.go | 2 +- ..._services_vault_resource_guard_association.html.markdown | 6 ++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/internal/services/recoveryservices/recovery_services_vault_resource_guard_association_resource.go b/internal/services/recoveryservices/recovery_services_vault_resource_guard_association_resource.go index 0f50751c208f..422abd6e572a 100644 --- a/internal/services/recoveryservices/recovery_services_vault_resource_guard_association_resource.go +++ b/internal/services/recoveryservices/recovery_services_vault_resource_guard_association_resource.go @@ -48,10 +48,13 @@ func (r VaultGuardProxyResource) ResourceType() string { func (r VaultGuardProxyResource) Arguments() map[string]*schema.Schema { return map[string]*schema.Schema{ + // todo 4.0: remove the `name` field as the service only allow create `VaultProxy` "name": { + Deprecated: "The `name` field will be removed in v4.0 of the AzureRM Provider.", Type: pluginsdk.TypeString, - Required: true, + Optional: true, ForceNew: true, + Default: "VaultProxy", ValidateFunc: validation.StringIsNotEmpty, }, diff --git a/internal/services/recoveryservices/recovery_services_vault_resource_guard_association_resource_test.go b/internal/services/recoveryservices/recovery_services_vault_resource_guard_association_resource_test.go index dd396a8c3be5..e642fbbbca6b 100644 --- a/internal/services/recoveryservices/recovery_services_vault_resource_guard_association_resource_test.go +++ b/internal/services/recoveryservices/recovery_services_vault_resource_guard_association_resource_test.go @@ -60,7 +60,7 @@ resource "azurerm_data_protection_resource_guard" "test" { } resource "azurerm_recovery_services_vault_resource_guard_association" "test" { - name = "tftest" + name = "VaultProxy" vault_id = azurerm_recovery_services_vault.test.id resource_guard_id = azurerm_data_protection_resource_guard.test.id } diff --git a/website/docs/r/recovery_services_vault_resource_guard_association.html.markdown b/website/docs/r/recovery_services_vault_resource_guard_association.html.markdown index 1a1e91d3e1b2..02b800e41144 100644 --- a/website/docs/r/recovery_services_vault_resource_guard_association.html.markdown +++ b/website/docs/r/recovery_services_vault_resource_guard_association.html.markdown @@ -34,7 +34,7 @@ resource "azurerm_recovery_services_vault" "vault" { } resource "azurerm_recovery_services_vault_resource_guard_association" "test" { - name = "example-guard-proxy" + name = "VaultProxy" vault_id = azurerm_recovery_services_vault.test.id resource_guard_id = azurerm_data_protection_resource_guard.test.id } @@ -44,7 +44,9 @@ resource "azurerm_recovery_services_vault_resource_guard_association" "test" { The following arguments are supported: -* `name` - (Required) Specifies the name of the Recovery Services Vault Resource Guard Association. Changing this forces a new resource to be created. +* `name` - (Optional) Specifies the name of the Recovery Services Vault Resource Guard Association. Changing this forces a new resource to be created. + +-> **NOTE:** `name` has been deprecated and will be removed in version 4.0 of the provider. * `vault_id` - (Required) ID of the Recovery Services Vault which should be associated with. Changing this forces a new resource to be created. From 014a12722ffed93023e925837dd6bfe0ab1f0f55 Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:35:11 +0800 Subject: [PATCH 220/336] `azurerm_app_configuration`: fix a potential crash (#23302) * bugfix #23290 Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> * update per comment Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --------- Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --- .../services/appconfiguration/app_configuration_resource.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/services/appconfiguration/app_configuration_resource.go b/internal/services/appconfiguration/app_configuration_resource.go index ef9a52ed8462..4c1bd7415e50 100644 --- a/internal/services/appconfiguration/app_configuration_resource.go +++ b/internal/services/appconfiguration/app_configuration_resource.go @@ -647,11 +647,12 @@ type flattenedAccessKeys struct { } func expandAppConfigurationEncryption(input []interface{}) *configurationstores.EncryptionProperties { - if len(input) == 0 { + if len(input) == 0 || input[0] == nil { return nil } encryptionParam := input[0].(map[string]interface{}) + result := &configurationstores.EncryptionProperties{ KeyVaultProperties: &configurationstores.KeyVaultProperties{}, } From e998f573a5d1920d1dd3afa4274a2796cde4a76b Mon Sep 17 00:00:00 2001 From: lonegunmanb Date: Tue, 19 Sep 2023 13:41:40 +0800 Subject: [PATCH 221/336] `azurerm_linux_web_app_slot` `azurerm_linux_web_app` - Add length check to avoid potential index out of range panic (#21328) --- .../appservice/helpers/linux_web_app_schema.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/services/appservice/helpers/linux_web_app_schema.go b/internal/services/appservice/helpers/linux_web_app_schema.go index 4b367f02898a..70be35d4310a 100644 --- a/internal/services/appservice/helpers/linux_web_app_schema.go +++ b/internal/services/appservice/helpers/linux_web_app_schema.go @@ -1147,6 +1147,16 @@ func expandAutoHealSettingsLinux(autoHealSettings []AutoHealSettingLinux) *web.A autoHeal := autoHealSettings[0] + if len(autoHeal.Actions) > 0 { + action := autoHeal.Actions[0] + result.Actions.ActionType = web.AutoHealActionType(action.ActionType) + result.Actions.MinProcessExecutionTime = pointer.To(action.MinimumProcessTime) + } + + if len(autoHeal.Triggers) == 0 { + return result + } + triggers := autoHeal.Triggers[0] if len(triggers.Requests) == 1 { result.Triggers.Requests = &web.RequestsBasedTrigger{ @@ -1198,10 +1208,6 @@ func expandAutoHealSettingsLinux(autoHealSettings []AutoHealSettingLinux) *web.A result.Triggers.StatusCodesRange = &statusCodeRangeTriggers } - action := autoHeal.Actions[0] - result.Actions.ActionType = web.AutoHealActionType(action.ActionType) - result.Actions.MinProcessExecutionTime = pointer.To(action.MinimumProcessTime) - return result } From fc0aad73d76763b5948df6a59a8c0bbd853ccab6 Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Tue, 19 Sep 2023 06:43:54 +0100 Subject: [PATCH 222/336] Update CHANGELOG.md for #21328 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 25307c92f7f9..d08cc7d74455 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,9 @@ ENHANCEMENTS: BUG FIXES: * `azurerm_linux_web_app` - fix docker app stack update [GH-23303] +* `azurerm_linux_web_app` - Fix crash in auto heal expansion [GH-21328] * `azurerm_linux_web_app_slot` - fix docker app stack update [GH-23303] +* `azurerm_linux_web_app_slot` - Fix crash in auto heal expansion [GH-21328] * `azurerm_windows_web_app` - fix docker app stack update [GH-23303] * `azurerm_windows_web_app_slot` - fix docker app stack update [GH-23303] * `azurerm_servicebus_queue` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] From 6afdc84b45dccd269bc1578e363409b5bbbabe3a Mon Sep 17 00:00:00 2001 From: Neil Ye Date: Tue, 19 Sep 2023 13:45:07 +0800 Subject: [PATCH 223/336] `azurerm_bot_channel_web_chat` - `site_names` is removed in favour of `site` (#23161) * azurerm_bot_channel_web_chat - support for site * update code * update code * update code * update code * update code * update code * update code * update code * update code * update code * update code * update code * update code * update code * update code * update code * update code --- .../bot/bot_channel_web_chat_resource.go | 176 ++++++++++++++++-- .../bot/bot_channel_web_chat_resource_test.go | 48 ++++- .../docs/r/bot_channel_web_chat.html.markdown | 24 ++- 3 files changed, 225 insertions(+), 23 deletions(-) diff --git a/internal/services/bot/bot_channel_web_chat_resource.go b/internal/services/bot/bot_channel_web_chat_resource.go index b5ba830a2608..960fa0305cf9 100644 --- a/internal/services/bot/bot_channel_web_chat_resource.go +++ b/internal/services/bot/bot_channel_web_chat_resource.go @@ -13,6 +13,7 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/features" "github.com/hashicorp/terraform-provider-azurerm/internal/services/bot/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/bot/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" @@ -23,7 +24,7 @@ import ( ) func resourceBotChannelWebChat() *pluginsdk.Resource { - return &pluginsdk.Resource{ + resource := &pluginsdk.Resource{ Create: resourceBotChannelWebChatCreate, Read: resourceBotChannelWebChatRead, Delete: resourceBotChannelWebChatDelete, @@ -53,16 +54,61 @@ func resourceBotChannelWebChat() *pluginsdk.Resource { ValidateFunc: validate.BotName, }, - "site_names": { + "site": { Type: pluginsdk.TypeSet, - Required: true, - Elem: &pluginsdk.Schema{ - Type: pluginsdk.TypeString, - ValidateFunc: validation.StringIsNotEmpty, + Optional: true, + Computed: !features.FourPointOhBeta(), + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "user_upload_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: true, + }, + + "endpoint_parameters_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + }, + + "storage_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: true, + }, + }, }, + ExactlyOneOf: func() []string { + if !features.FourPointOhBeta() { + return []string{"site_names", "site"} + } + return []string{} + }(), }, }, } + + if !features.FourPointOhBeta() { + resource.Schema["site_names"] = &pluginsdk.Schema{ + Type: pluginsdk.TypeSet, + Optional: true, + Computed: true, + Elem: &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + ValidateFunc: validation.StringIsNotEmpty, + }, + Deprecated: "`site_names` will be removed in favour of the property `site` in version 4.0 of the AzureRM Provider.", + ExactlyOneOf: []string{"site_names", "site"}, + } + } + + return resource } func resourceBotChannelWebChatCreate(d *pluginsdk.ResourceData, meta interface{}) error { @@ -99,20 +145,36 @@ func resourceBotChannelWebChatCreate(d *pluginsdk.ResourceData, meta interface{} channel := botservice.BotChannel{ Properties: botservice.WebChatChannel{ - Properties: &botservice.WebChatChannelProperties{ - Sites: expandSiteNames(d.Get("site_names").(*pluginsdk.Set).List()), - }, + Properties: &botservice.WebChatChannelProperties{}, ChannelName: botservice.ChannelNameBasicChannelChannelNameWebChatChannel, }, Location: utils.String(azure.NormalizeLocation(d.Get("location").(string))), Kind: botservice.KindBot, } + if !features.FourPointOhBeta() { + if v, ok := d.GetOk("site_names"); ok { + channel, _ := channel.Properties.AsWebChatChannel() + channel.Properties.Sites = expandSiteNames(v.(*pluginsdk.Set).List()) + } + } + + if v, ok := d.GetOk("site"); ok { + channel, _ := channel.Properties.AsWebChatChannel() + channel.Properties.Sites = expandSites(v.(*pluginsdk.Set).List()) + } + if _, err := client.Create(ctx, id.ResourceGroup, id.BotServiceName, botservice.ChannelNameWebChatChannel, channel); err != nil { return fmt.Errorf("creating %s: %+v", id, err) } + // Unable to add a new site with user_upload_enabled, endpoint_parameters_enabled, storage_enabled in the same operation, so we need to make two calls + if _, err := client.Update(ctx, id.ResourceGroup, id.BotServiceName, botservice.ChannelNameWebChatChannel, channel); err != nil { + return fmt.Errorf("updating %s: %+v", id, err) + } + d.SetId(id.ID()) + return resourceBotChannelWebChatRead(d, meta) } @@ -144,8 +206,14 @@ func resourceBotChannelWebChatRead(d *pluginsdk.ResourceData, meta interface{}) if props := resp.Properties; props != nil { if channel, ok := props.AsWebChatChannel(); ok { if channelProps := channel.Properties; channelProps != nil { - if err := d.Set("site_names", flattenSiteNames(channelProps.Sites)); err != nil { - return fmt.Errorf("setting `site_names`: %+v", err) + if !features.FourPointOhBeta() { + if err := d.Set("site_names", flattenSiteNames(channelProps.Sites)); err != nil { + return fmt.Errorf("setting `site_names`: %+v", err) + } + } + + if err := d.Set("site", flattenSites(channelProps.Sites)); err != nil { + return fmt.Errorf("setting `site`: %+v", err) } } } @@ -166,15 +234,30 @@ func resourceBotChannelWebChatUpdate(d *pluginsdk.ResourceData, meta interface{} channel := botservice.BotChannel{ Properties: botservice.WebChatChannel{ - Properties: &botservice.WebChatChannelProperties{ - Sites: expandSiteNames(d.Get("site_names").(*pluginsdk.Set).List()), - }, + Properties: &botservice.WebChatChannelProperties{}, ChannelName: botservice.ChannelNameBasicChannelChannelNameWebChatChannel, }, Location: utils.String(azure.NormalizeLocation(d.Get("location").(string))), Kind: botservice.KindBot, } + if !features.FourPointOhBeta() { + if d.HasChange("site_names") { + channel, _ := channel.Properties.AsWebChatChannel() + channel.Properties.Sites = expandSiteNames(d.Get("site_names").(*pluginsdk.Set).List()) + } + } + + if d.HasChange("site") { + channel, _ := channel.Properties.AsWebChatChannel() + channel.Properties.Sites = expandSites(d.Get("site").(*pluginsdk.Set).List()) + } + + if _, err := client.Update(ctx, id.ResourceGroup, id.BotServiceName, botservice.ChannelNameWebChatChannel, channel); err != nil { + return fmt.Errorf("updating %s: %+v", id, err) + } + + // Unable to add a new site with user_upload_enabled, endpoint_parameters_enabled, storage_enabled in the same operation, so we need to make two calls if _, err := client.Update(ctx, id.ResourceGroup, id.BotServiceName, botservice.ChannelNameWebChatChannel, channel); err != nil { return fmt.Errorf("updating %s: %+v", id, err) } @@ -192,6 +275,11 @@ func resourceBotChannelWebChatDelete(d *pluginsdk.ResourceData, meta interface{} return err } + existing, err := client.Get(ctx, id.ResourceGroup, id.BotServiceName, string(botservice.ChannelNameWebChatChannel)) + if err != nil { + return err + } + channel := botservice.BotChannel{ Properties: botservice.WebChatChannel{ Properties: &botservice.WebChatChannelProperties{ @@ -204,7 +292,7 @@ func resourceBotChannelWebChatDelete(d *pluginsdk.ResourceData, meta interface{} }, ChannelName: botservice.ChannelNameBasicChannelChannelNameWebChatChannel, }, - Location: utils.String(azure.NormalizeLocation(d.Get("location").(string))), + Location: utils.String(azure.NormalizeLocation(*existing.Location)), Kind: botservice.KindBot, } @@ -230,6 +318,28 @@ func expandSiteNames(input []interface{}) *[]botservice.WebChatSite { return &results } +func expandSites(input []interface{}) *[]botservice.WebChatSite { + results := make([]botservice.WebChatSite, 0) + + for _, item := range input { + site := item.(map[string]interface{}) + result := botservice.WebChatSite{ + IsEnabled: utils.Bool(true), + IsBlockUserUploadEnabled: utils.Bool(!site["user_upload_enabled"].(bool)), + IsEndpointParametersEnabled: utils.Bool(site["endpoint_parameters_enabled"].(bool)), + IsNoStorageEnabled: utils.Bool(!site["storage_enabled"].(bool)), + } + + if siteName := site["name"].(string); siteName != "" { + result.SiteName = utils.String(siteName) + } + + results = append(results, result) + } + + return &results +} + func flattenSiteNames(input *[]botservice.WebChatSite) []interface{} { results := make([]interface{}, 0) if input == nil { @@ -248,6 +358,42 @@ func flattenSiteNames(input *[]botservice.WebChatSite) []interface{} { return results } +func flattenSites(input *[]botservice.WebChatSite) []interface{} { + results := make([]interface{}, 0) + + for _, item := range *input { + result := make(map[string]interface{}) + + var name string + if v := item.SiteName; v != nil { + name = *v + } + result["name"] = name + + userUploadEnabled := true + if v := item.IsBlockUserUploadEnabled; v != nil { + userUploadEnabled = !*v + } + result["user_upload_enabled"] = userUploadEnabled + + var endpointParametersEnabled bool + if v := item.IsEndpointParametersEnabled; v != nil { + endpointParametersEnabled = *v + } + result["endpoint_parameters_enabled"] = endpointParametersEnabled + + storageEnabled := true + if v := item.IsNoStorageEnabled; v != nil { + storageEnabled = !*v + } + result["storage_enabled"] = storageEnabled + + results = append(results, result) + } + + return results +} + func includeDefaultWebChatSite(sites *[]botservice.WebChatSite) bool { includeDefaultSite := false for _, site := range *sites { diff --git a/internal/services/bot/bot_channel_web_chat_resource_test.go b/internal/services/bot/bot_channel_web_chat_resource_test.go index 137b7fc85198..b698ec5765b7 100644 --- a/internal/services/bot/bot_channel_web_chat_resource_test.go +++ b/internal/services/bot/bot_channel_web_chat_resource_test.go @@ -11,6 +11,7 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/features" "github.com/hashicorp/terraform-provider-azurerm/internal/services/bot/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" @@ -68,9 +69,16 @@ func testAccBotChannelWebChat_update(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_bot_channel_web_chat", "test") r := BotChannelWebChatResource{} + var basicConfig string + if features.FourPointOhBeta() { + basicConfig = r.basic(data) + } else { + basicConfig = r.siteNames(data) + } + data.ResourceSequentialTest(t, r, []acceptance.TestStep{ { - Config: r.basic(data), + Config: basicConfig, Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), ), @@ -115,7 +123,10 @@ resource "azurerm_bot_channel_web_chat" "test" { bot_name = azurerm_bot_channels_registration.test.name location = azurerm_bot_channels_registration.test.location resource_group_name = azurerm_resource_group.test.name - site_names = ["TestSite"] + + site { + name = "TestSite" + } } `, BotChannelsRegistrationResource{}.basicConfig(data)) } @@ -128,7 +139,10 @@ resource "azurerm_bot_channel_web_chat" "import" { bot_name = azurerm_bot_channel_web_chat.test.bot_name location = azurerm_bot_channel_web_chat.test.location resource_group_name = azurerm_bot_channel_web_chat.test.resource_group_name - site_names = ["TestSite"] + + site { + name = "TestSite" + } } `, r.basic(data)) } @@ -141,7 +155,33 @@ resource "azurerm_bot_channel_web_chat" "test" { bot_name = azurerm_bot_channels_registration.test.name location = azurerm_bot_channels_registration.test.location resource_group_name = azurerm_resource_group.test.name - site_names = ["TestSite2", "TestSite3"] + + site { + name = "TestSite1" + user_upload_enabled = false + endpoint_parameters_enabled = true + storage_enabled = false + } + + site { + name = "TestSite2" + user_upload_enabled = true + endpoint_parameters_enabled = false + storage_enabled = true + } +} +`, BotChannelsRegistrationResource{}.basicConfig(data)) +} + +func (BotChannelWebChatResource) siteNames(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_bot_channel_web_chat" "test" { + bot_name = azurerm_bot_channels_registration.test.name + location = azurerm_bot_channels_registration.test.location + resource_group_name = azurerm_resource_group.test.name + site_names = ["TestSite"] } `, BotChannelsRegistrationResource{}.basicConfig(data)) } diff --git a/website/docs/r/bot_channel_web_chat.html.markdown b/website/docs/r/bot_channel_web_chat.html.markdown index 832893676a3b..29dad3ea34bf 100644 --- a/website/docs/r/bot_channel_web_chat.html.markdown +++ b/website/docs/r/bot_channel_web_chat.html.markdown @@ -33,9 +33,9 @@ resource "azurerm_bot_channel_web_chat" "example" { location = azurerm_bot_channels_registration.example.location resource_group_name = azurerm_resource_group.example.name - site_names = [ - "TestSite", - ] + site { + name = "TestSite" + } } ``` @@ -49,7 +49,23 @@ The following arguments are supported: * `bot_name` - (Required) The name of the Bot Resource this channel will be associated with. Changing this forces a new resource to be created. -* `site_names` - (Required) A list of Web Chat Site names. +* `site_names` - (Optional) A list of Web Chat Site names. + +~> **NOTE:** `site_names` is deprecated and will be removed in favour of the property `site` in version 4.0 of the AzureRM Provider. + +* `site` - (Optional) A site represents a client application that you want to connect to your bot. Multiple `site` blocks may be defined as below + +--- + +A `site` block has the following properties: + +* `name` - (Required) The name of the site. + +* `user_upload_enabled` - (Optional) Is the user upload enabled for this site? Defaults to `true`. + +* `endpoint_parameters_enabled` - (Optional) Is the endpoint parameters enabled for this site? + +* `storage_enabled` - (Optional) Is the storage site enabled for detailed logging? Defaults to `true`. ## Attributes Reference From 271644604fd41feee3dbbf8f21c46107d45d80ba Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:49:11 +0800 Subject: [PATCH 224/336] DataSource:`azurerm_container_app_environment`: fix `log_analytics_workspace_name` (#23298) --- .../container_app_environment_data_source.go | 34 ++++++++++++++++++- ...tainer_app_environment_data_source_test.go | 2 +- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/internal/services/containerapps/container_app_environment_data_source.go b/internal/services/containerapps/container_app_environment_data_source.go index 9f5281c38adf..ebda8eb38d84 100644 --- a/internal/services/containerapps/container_app_environment_data_source.go +++ b/internal/services/containerapps/container_app_environment_data_source.go @@ -10,10 +10,12 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" "github.com/hashicorp/go-azure-sdk/resource-manager/containerapps/2023-05-01/managedenvironments" + "github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" @@ -155,7 +157,12 @@ func (r ContainerAppEnvironmentDataSource) Read() sdk.ResourceFunc { } if appsLogs := props.AppLogsConfiguration; appsLogs != nil && appsLogs.LogAnalyticsConfiguration != nil { - environment.LogAnalyticsWorkspaceName = pointer.From(appsLogs.LogAnalyticsConfiguration.CustomerId) + lawClient := metadata.Client.LogAnalytics.SharedKeyWorkspacesClient + lawName, err := findLogAnalyticsWorkspaceName(ctx, lawClient, subscriptionId, pointer.From(appsLogs.LogAnalyticsConfiguration.CustomerId)) + if err != nil { + return fmt.Errorf("retrieving Log Analytics Workspace: %+v", err) + } + environment.LogAnalyticsWorkspaceName = lawName } environment.StaticIP = pointer.From(props.StaticIP) @@ -169,3 +176,28 @@ func (r ContainerAppEnvironmentDataSource) Read() sdk.ResourceFunc { }, } } + +func findLogAnalyticsWorkspaceName(ctx context.Context, client *workspaces.WorkspacesClient, subscriptionId, targetCustomerId string) (string, error) { + parsedSubscriptionId := commonids.NewSubscriptionID(subscriptionId) + + resp, err := client.List(ctx, parsedSubscriptionId) + if err != nil { + return "", err + } + + if resp.Model == nil { + return "", fmt.Errorf("model was nil") + } + + if resp.Model.Value == nil { + return "", fmt.Errorf("value was nil") + } + + for _, law := range *resp.Model.Value { + if law.Properties != nil && law.Properties.CustomerId != nil && *law.Properties.CustomerId == targetCustomerId && law.Name != nil { + return *law.Name, nil + } + } + + return "", fmt.Errorf("no matching workspace found") +} diff --git a/internal/services/containerapps/container_app_environment_data_source_test.go b/internal/services/containerapps/container_app_environment_data_source_test.go index 77ae2fe4237d..20eac4d9f338 100644 --- a/internal/services/containerapps/container_app_environment_data_source_test.go +++ b/internal/services/containerapps/container_app_environment_data_source_test.go @@ -21,7 +21,7 @@ func TestAccContainerAppEnvironmentDataSource_basic(t *testing.T) { { Config: r.basic(data), Check: acceptance.ComposeTestCheckFunc( - check.That(data.ResourceName).Key("log_analytics_workspace_name").IsSet(), + check.That(data.ResourceName).Key("log_analytics_workspace_name").HasValue(fmt.Sprintf("acctestLAW-%d", data.RandomInteger)), check.That(data.ResourceName).Key("location").IsSet(), check.That(data.ResourceName).Key("internal_load_balancer_enabled").HasValue("true"), ), From 0868b8a9413fcbbdf1d422a281c138b0113691bd Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Tue, 19 Sep 2023 06:53:10 +0100 Subject: [PATCH 225/336] Update CHANGELOG.md for #23298 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d08cc7d74455..2327d1476634 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ ENHANCEMENTS: * `azurerm_container_app` - add support for scale rules [GH-23294] BUG FIXES: + +* DataSource: `azurerm_container_app_environment`: fix `log_analytics_workspace_name` output to correct value [GH-23298] * `azurerm_linux_web_app` - fix docker app stack update [GH-23303] * `azurerm_linux_web_app` - Fix crash in auto heal expansion [GH-21328] * `azurerm_linux_web_app_slot` - fix docker app stack update [GH-23303] From 44e94d21244ca6fbc864ddf26f793b5f475a7422 Mon Sep 17 00:00:00 2001 From: csimpf <30953800+csimpf@users.noreply.github.com> Date: Tue, 19 Sep 2023 16:45:26 +1000 Subject: [PATCH 226/336] Update function_app_host_keys.html.markdown - fix attributes section (#23307) Align wording with other documentation --- website/docs/d/function_app_host_keys.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/d/function_app_host_keys.html.markdown b/website/docs/d/function_app_host_keys.html.markdown index 2f257bbaca9b..82b531a83421 100644 --- a/website/docs/d/function_app_host_keys.html.markdown +++ b/website/docs/d/function_app_host_keys.html.markdown @@ -31,7 +31,7 @@ The following arguments are supported: ## Attributes Reference -The following arguments are supported: +In addition to the Arguments listed above - the following Attributes are exported: - `default_function_key` - Function App resource's default function key. From 0eabc5a1f9a2630441653f0e069a88c6ead66759 Mon Sep 17 00:00:00 2001 From: Elena Xin <39109137+sinbai@users.noreply.github.com> Date: Tue, 19 Sep 2023 16:08:49 +0800 Subject: [PATCH 227/336] `azurerm_mssql_elasticpool` : fix `license_type` can't be set to null when changing from vCore to DTU model issue (#23262) * fix issue 22311 * update code * update code --- .../mssql/mssql_elasticpool_resource.go | 14 +- .../mssql/mssql_elasticpool_resource_test.go | 140 +++++++++++++++++- .../docs/r/mssql_elasticpool.html.markdown | 2 - 3 files changed, 144 insertions(+), 12 deletions(-) diff --git a/internal/services/mssql/mssql_elasticpool_resource.go b/internal/services/mssql/mssql_elasticpool_resource.go index 2c02d2edfd99..b91613028e94 100644 --- a/internal/services/mssql/mssql_elasticpool_resource.go +++ b/internal/services/mssql/mssql_elasticpool_resource.go @@ -234,14 +234,6 @@ func resourceMsSqlElasticPoolCreateUpdate(d *pluginsdk.ResourceData, meta interf }, } - if _, ok := d.GetOk("license_type"); ok { - if sku.Tier != nil && (*sku.Tier == "GeneralPurpose" || *sku.Tier == "BusinessCritical" || *sku.Tier == "Hyperscale") { - elasticPool.ElasticPoolProperties.LicenseType = sql.ElasticPoolLicenseType(d.Get("license_type").(string)) - } else { - return fmt.Errorf("`license_type` can only be configured when `sku.0.tier` is set to `GeneralPurpose`, `Hyperscale` or `BusinessCritical`") - } - } - if d.HasChange("max_size_gb") { if v, ok := d.GetOk("max_size_gb"); ok { maxSizeBytes := v.(float64) * 1073741824 @@ -307,7 +299,11 @@ func resourceMsSqlElasticPoolRead(d *pluginsdk.ResourceData, meta interface{}) e } } d.Set("zone_redundant", properties.ZoneRedundant) - d.Set("license_type", string(properties.LicenseType)) + licenseType := string(sql.DatabaseLicenseTypeLicenseIncluded) + if string(properties.LicenseType) != "" { + licenseType = string(properties.LicenseType) + } + d.Set("license_type", licenseType) if err := d.Set("per_database_settings", flattenMsSqlElasticPoolPerDatabaseSettings(properties.PerDatabaseSettings)); err != nil { return fmt.Errorf("setting `per_database_settings`: %+v", err) diff --git a/internal/services/mssql/mssql_elasticpool_resource_test.go b/internal/services/mssql/mssql_elasticpool_resource_test.go index 38eaa1da8f23..5ed8e09c29ac 100644 --- a/internal/services/mssql/mssql_elasticpool_resource_test.go +++ b/internal/services/mssql/mssql_elasticpool_resource_test.go @@ -268,6 +268,42 @@ func TestAccMsSqlElasticPool_hyperScale(t *testing.T) { }) } +func TestAccMsSqlElasticPool_vCoreToStandardDTU(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_mssql_elasticpool", "test") + r := MsSqlElasticPoolResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.noLicenseType(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.updateToStandardDTU(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.licenseType(data, "LicenseIncluded"), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.updateToStandardDTU(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func (MsSqlElasticPoolResource) Exists(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := parse.ElasticPoolID(state.ID) if err != nil { @@ -330,6 +366,10 @@ func (r MsSqlElasticPoolResource) basicVCore(data acceptance.TestData) string { return r.templateVCore(data, "GP_Gen5", "GeneralPurpose", 4, "Gen5", 0.25, 4) } +func (r MsSqlElasticPoolResource) updateToStandardDTU(data acceptance.TestData) string { + return r.templateUpdateToDTU(data, "StandardPool", "Standard", 50, 50, 10, 50, false) +} + func (r MsSqlElasticPoolResource) fsv2VCore(data acceptance.TestData) string { return r.templateVCore(data, "GP_Fsv2", "GeneralPurpose", 8, "Fsv2", 0, 8) } @@ -405,6 +445,62 @@ resource "azurerm_mssql_elasticpool" "test" { `, data.RandomInteger, data.Locations.Primary, skuName, skuTier, skuCapacity, maxSizeGB, databaseSettingsMin, databaseSettingsMax, zoneRedundant, configName) } +func (MsSqlElasticPoolResource) templateUpdateToDTU(data acceptance.TestData, skuName string, skuTier string, skuCapacity int, maxSizeGB float64, databaseSettingsMin int, databaseSettingsMax int, zoneRedundant bool) string { + configName := "SQL_Default" + if skuTier != "Basic" { + switch data.Locations.Primary { + case "westeurope": + configName = "SQL_WestEurope_DB_2" + case "francecentral": + configName = "SQL_FranceCentral_DB_1" + default: + configName = "SQL_Default" + } + } + + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[1]d" + location = "%[2]s" +} + +resource "azurerm_mssql_server" "test" { + name = "acctest%[1]d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + version = "12.0" + administrator_login = "4dm1n157r470r" + administrator_login_password = "4-v3ry-53cr37-p455w0rd" +} + +resource "azurerm_mssql_elasticpool" "test" { + name = "acctest-pool-dtu-%[1]d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + server_name = azurerm_mssql_server.test.name + max_size_gb = %.7[6]f + zone_redundant = %[9]t + + maintenance_configuration_name = "%[10]s" + + sku { + name = "%[3]s" + tier = "%[4]s" + capacity = %[5]d + } + + per_database_settings { + min_capacity = %[7]d + max_capacity = %[8]d + } +} +`, data.RandomInteger, data.Locations.Primary, skuName, skuTier, skuCapacity, maxSizeGB, databaseSettingsMin, databaseSettingsMax, zoneRedundant, configName) +} + func (MsSqlElasticPoolResource) templateVCore(data acceptance.TestData, skuName string, skuTier string, skuCapacity int, skuFamily string, databaseSettingsMin float64, databaseSettingsMax float64) string { return fmt.Sprintf(` provider "azurerm" { @@ -528,6 +624,49 @@ resource "azurerm_mssql_elasticpool" "test" { `, data.RandomInteger, data.Locations.Primary, skuName, skuTier, skuCapacity, skuFamily, databaseSettingsMin, databaseSettingsMax) } +func (MsSqlElasticPoolResource) noLicenseType(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[1]d" + location = "%[2]s" +} + +resource "azurerm_mssql_server" "test" { + name = "acctest%[1]d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + version = "12.0" + administrator_login = "4dm1n157r470r" + administrator_login_password = "4-v3ry-53cr37-p455w0rd" +} + +resource "azurerm_mssql_elasticpool" "test" { + name = "acctest-pool-dtu-%[1]d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + server_name = azurerm_mssql_server.test.name + max_size_gb = 50 + zone_redundant = false + + sku { + name = "GP_Gen5" + tier = "GeneralPurpose" + capacity = 4 + family = "Gen5" + } + + per_database_settings { + min_capacity = 0 + max_capacity = 4 + } +} +`, data.RandomInteger, data.Locations.Primary) +} + func (MsSqlElasticPoolResource) licenseType(data acceptance.TestData, licenseType string) string { return fmt.Sprintf(` provider "azurerm" { @@ -568,7 +707,6 @@ resource "azurerm_mssql_elasticpool" "test" { min_capacity = 0 max_capacity = 4 } - } `, data.RandomInteger, data.Locations.Primary, licenseType) } diff --git a/website/docs/r/mssql_elasticpool.html.markdown b/website/docs/r/mssql_elasticpool.html.markdown index 005b560f1d32..dbcb7b82712b 100644 --- a/website/docs/r/mssql_elasticpool.html.markdown +++ b/website/docs/r/mssql_elasticpool.html.markdown @@ -79,8 +79,6 @@ The following arguments are supported: * `license_type` - (Optional) Specifies the license type applied to this database. Possible values are `LicenseIncluded` and `BasePrice`. --> **Note:** `license_type` can only be configured when `sku.0.tier` is set to `GeneralPurpose`, `Hyperscale` or `BusinessCritical` - --- The `sku` block supports the following: From 7112e27d19b973b046e934f3d4fd74baa35d25f0 Mon Sep 17 00:00:00 2001 From: Tao <104055472+teowa@users.noreply.github.com> Date: Tue, 19 Sep 2023 16:15:42 +0800 Subject: [PATCH 228/336] app gateway doc: add v1 sku deprecation (#23310) --- website/docs/r/application_gateway.html.markdown | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/website/docs/r/application_gateway.html.markdown b/website/docs/r/application_gateway.html.markdown index 5dccae87ee88..6e03619470e6 100644 --- a/website/docs/r/application_gateway.html.markdown +++ b/website/docs/r/application_gateway.html.markdown @@ -63,8 +63,8 @@ resource "azurerm_application_gateway" "network" { location = azurerm_resource_group.example.location sku { - name = "Standard_Small" - tier = "Standard" + name = "Standard_v2" + tier = "Standard_v2" capacity = 2 } @@ -105,6 +105,7 @@ resource "azurerm_application_gateway" "network" { request_routing_rule { name = local.request_routing_rule_name + priority = 9 rule_type = "Basic" http_listener_name = local.listener_name backend_address_pool_name = local.backend_address_pool_name @@ -453,6 +454,8 @@ A `sku` block supports the following: * `tier` - (Required) The Tier of the SKU to use for this Application Gateway. Possible values are `Standard`, `Standard_v2`, `WAF` and `WAF_v2`. +!> **NOTE:** The `Standard` and `WAF` SKU have been deprecated in favour of the `Standard_v2` and `WAF_v2` SKU. Please see the [Azure documentation](https://aka.ms/V1retirement) for more details. + * `capacity` - (Optional) The Capacity of the SKU to use for this Application Gateway. When using a V1 SKU this value must be between 1 and 32, and 1 to 125 for a V2 SKU. This property is optional if `autoscale_configuration` is set. --- From 4c0ff69471a2d5d45bcacfdae3dda7f7f21affe6 Mon Sep 17 00:00:00 2001 From: Tao <104055472+teowa@users.noreply.github.com> Date: Tue, 19 Sep 2023 17:54:51 +0800 Subject: [PATCH 229/336] fix update (#23263) --- .../app_configuration_feature_resource.go | 249 ++++++++++++------ ...app_configuration_feature_resource_test.go | 81 ++++++ .../appconfiguration/feature_structs.go | 2 +- .../r/app_configuration_feature.html.markdown | 2 +- 4 files changed, 252 insertions(+), 82 deletions(-) diff --git a/internal/services/appconfiguration/app_configuration_feature_resource.go b/internal/services/appconfiguration/app_configuration_feature_resource.go index 48ae9ee52d47..e9ab5b72bc75 100644 --- a/internal/services/appconfiguration/app_configuration_feature_resource.go +++ b/internal/services/appconfiguration/app_configuration_feature_resource.go @@ -12,6 +12,7 @@ import ( "time" "github.com/Azure/go-autorest/autorest" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/configurationstores" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" @@ -46,7 +47,7 @@ type FeatureResourceModel struct { Label string `tfschema:"label"` Locked bool `tfschema:"locked"` Tags map[string]interface{} `tfschema:"tags"` - PercentageFilter int `tfschema:"percentage_filter_value"` + PercentageFilter float64 `tfschema:"percentage_filter_value"` TimewindowFilters []TimewindowFilterParameters `tfschema:"timewindow_filter"` TargetingFilters []TargetingFilterAudience `tfschema:"targeting_filter"` } @@ -96,9 +97,9 @@ func (k FeatureResource) Arguments() map[string]*pluginsdk.Schema { Default: false, }, "percentage_filter_value": { - Type: pluginsdk.TypeInt, + Type: pluginsdk.TypeFloat, Optional: true, - ValidateFunc: validation.IntBetween(0, 100), + ValidateFunc: validation.FloatBetween(0, 100), }, "targeting_filter": { Type: pluginsdk.TypeList, @@ -242,9 +243,64 @@ func (k FeatureResource) Create() sdk.ResourceFunc { return tf.ImportAsExistsError(k.ResourceType(), nestedItemId.ID()) } - err = createOrUpdateFeature(ctx, client, model) + entity := appconfiguration.KeyValue{ + Key: pointer.To(featureKey), + Label: pointer.To(model.Label), + Tags: tags.Expand(model.Tags), + ContentType: pointer.To(FeatureKeyContentType), + Locked: pointer.To(model.Locked), + } + + value := FeatureValue{ + ID: model.Name, + Description: model.Description, + Enabled: model.Enabled, + } + + value.Conditions.ClientFilters.Filters = make([]interface{}, 0) + + if model.PercentageFilter > 0 { + value.Conditions.ClientFilters.Filters = append(value.Conditions.ClientFilters.Filters, PercentageFeatureFilter{ + Name: PercentageFilterName, + Parameters: PercentageFilterParameters{Value: model.PercentageFilter}, + }) + } + + if len(model.TargetingFilters) > 0 { + for _, tgtf := range model.TargetingFilters { + value.Conditions.ClientFilters.Filters = append(value.Conditions.ClientFilters.Filters, TargetingFeatureFilter{ + Name: TargetingFilterName, + Parameters: TargetingFilterParameters{Audience: tgtf}, + }) + } + } + + if len(model.TimewindowFilters) > 0 { + for _, twf := range model.TimewindowFilters { + value.Conditions.ClientFilters.Filters = append(value.Conditions.ClientFilters.Filters, TimewindowFeatureFilter{ + Name: TimewindowFilterName, + Parameters: twf, + }) + } + } + + valueBytes, err := json.Marshal(value) if err != nil { - return fmt.Errorf("while creating feature: %+v", err) + return fmt.Errorf("while marshalling FeatureValue struct: %+v", err) + } + entity.Value = pointer.To(string(valueBytes)) + if _, err = client.PutKeyValue(ctx, featureKey, model.Label, &entity, "", ""); err != nil { + return err + } + + if model.Locked { + if _, err = client.PutLock(ctx, featureKey, model.Label, "", ""); err != nil { + return fmt.Errorf("while locking key/label pair %s/%s: %+v", model.Name, model.Label, err) + } + } else { + if _, err = client.DeleteLock(ctx, featureKey, model.Label, "", ""); err != nil { + return fmt.Errorf("while unlocking key/label pair %s/%s: %+v", model.Name, model.Label, err) + } } // https://github.com/Azure/AppConfiguration/issues/763 @@ -373,6 +429,17 @@ func (k FeatureResource) Update() sdk.ResourceFunc { return err } + kv, err := client.GetKeyValue(ctx, nestedItemId.Key, nestedItemId.Label, "", "", "", []appconfiguration.KeyValueFields{}) + if err != nil { + return fmt.Errorf("while checking for key %q existence: %+v", *nestedItemId, err) + } + + var fv FeatureValue + err = json.Unmarshal([]byte(utils.NormalizeNilableString(kv.Value)), &fv) + if err != nil { + return fmt.Errorf("while unmarshalling underlying key's value: %+v", err) + } + var model FeatureResourceModel if err := metadata.Decode(&model); err != nil { return fmt.Errorf("decoding %+v", err) @@ -385,14 +452,104 @@ func (k FeatureResource) Update() sdk.ResourceFunc { metadata.Client.AppConfiguration.AddToCache(*configurationStoreId, nestedItemId.ConfigurationStoreEndpoint) - if metadata.ResourceData.HasChange("tags") || metadata.ResourceData.HasChange("enabled") || metadata.ResourceData.HasChange("locked") || metadata.ResourceData.HasChange("description") { - // Remove the lock, if any. We will put it back again if the model says so. - if _, err = client.DeleteLock(ctx, nestedItemId.Key, nestedItemId.Label, "", ""); err != nil { - return fmt.Errorf("while unlocking key/label pair %s/%s: %+v", nestedItemId.Key, nestedItemId.Label, err) + // Remove the lock, if any. We will put it back again if the model says so. + if _, err = client.DeleteLock(ctx, nestedItemId.Key, nestedItemId.Label, "", ""); err != nil { + return fmt.Errorf("while unlocking key/label pair %s/%s: %+v", nestedItemId.Key, nestedItemId.Label, err) + } + + if metadata.ResourceData.HasChange("tags") { + kv.Tags = tags.Expand(model.Tags) + } + + if metadata.ResourceData.HasChange("locked") { + kv.Locked = pointer.To(model.Locked) + } + + if metadata.ResourceData.HasChange("enabled") { + fv.Enabled = model.Enabled + } + + if metadata.ResourceData.HasChange("description") { + fv.Description = model.Description + } + + filters := make([]interface{}, 0) + filterChanged := false + timewindowFilters := make([]interface{}, 0) + targetingFilters := make([]interface{}, 0) + percentageFilter := PercentageFeatureFilter{} + if len(fv.Conditions.ClientFilters.Filters) > 0 { + for _, f := range fv.Conditions.ClientFilters.Filters { + switch f := f.(type) { + case TimewindowFeatureFilter: + twfp := f + timewindowFilters = append(timewindowFilters, twfp) + case TargetingFeatureFilter: + tfp := f + targetingFilters = append(targetingFilters, tfp) + case PercentageFeatureFilter: + pfp := f + percentageFilter = pfp + default: + return fmt.Errorf("while unmarshaling feature payload: unknown filter type %+v", f) + } + } + } + + if metadata.ResourceData.HasChange("percentage_filter_value") { + filters = append(filters, PercentageFeatureFilter{ + Name: PercentageFilterName, + Parameters: PercentageFilterParameters{Value: model.PercentageFilter}, + }) + filterChanged = true + } else { + filters = append(filters, percentageFilter) + } + + if metadata.ResourceData.HasChange("targeting_filter") { + for _, tgtf := range model.TargetingFilters { + filters = append(filters, TargetingFeatureFilter{ + Name: TargetingFilterName, + Parameters: TargetingFilterParameters{Audience: tgtf}, + }) + } + filterChanged = true + } else { + filters = append(filters, targetingFilters...) + } + + if metadata.ResourceData.HasChange("timewindow_filter") { + for _, twf := range model.TimewindowFilters { + filters = append(filters, TimewindowFeatureFilter{ + Name: TimewindowFilterName, + Parameters: twf, + }) + } + filterChanged = true + } else { + filters = append(filters, timewindowFilters...) + } + + if filterChanged { + fv.Conditions.ClientFilters.Filters = filters + } + + valueBytes, err := json.Marshal(fv) + if err != nil { + return fmt.Errorf("while marshalling FeatureValue struct: %+v", err) + } + kv.Value = pointer.To(string(valueBytes)) + if _, err = client.PutKeyValue(ctx, nestedItemId.Key, model.Label, &kv, "", ""); err != nil { + return err + } + + if model.Locked { + if _, err = client.PutLock(ctx, nestedItemId.Key, model.Label, "", ""); err != nil { + return fmt.Errorf("while locking key/label pair %s/%s: %+v", model.Name, model.Label, err) } - err = createOrUpdateFeature(ctx, client, model) - if err != nil { - return fmt.Errorf("while updating feature: %+v", err) + } else { + if _, err = client.DeleteLock(ctx, nestedItemId.Key, model.Label, "", ""); err != nil { + return fmt.Errorf("while unlocking key/label pair %s/%s: %+v", model.Name, model.Label, err) } } @@ -442,74 +599,6 @@ func (k FeatureResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { return validate.NestedItemId } -func createOrUpdateFeature(ctx context.Context, client *appconfiguration.BaseClient, model FeatureResourceModel) error { - rawKey := model.Name - if model.Key != "" { - rawKey = model.Key - } - featureKey := fmt.Sprintf("%s/%s", FeatureKeyPrefix, rawKey) - - entity := appconfiguration.KeyValue{ - Key: utils.String(featureKey), - Label: utils.String(model.Label), - Tags: tags.Expand(model.Tags), - ContentType: utils.String(FeatureKeyContentType), - Locked: utils.Bool(model.Locked), - } - - value := FeatureValue{ - ID: model.Name, - Description: model.Description, - Enabled: model.Enabled, - } - - value.Conditions.ClientFilters.Filters = make([]interface{}, 0) - if model.PercentageFilter > 0 { - value.Conditions.ClientFilters.Filters = append(value.Conditions.ClientFilters.Filters, PercentageFeatureFilter{ - Name: PercentageFilterName, - Parameters: PercentageFilterParameters{Value: model.PercentageFilter}, - }) - } - - if len(model.TargetingFilters) > 0 { - for _, tgtf := range model.TargetingFilters { - value.Conditions.ClientFilters.Filters = append(value.Conditions.ClientFilters.Filters, TargetingFeatureFilter{ - Name: TargetingFilterName, - Parameters: TargetingFilterParameters{Audience: tgtf}, - }) - } - } - - if len(model.TimewindowFilters) > 0 { - for _, twf := range model.TimewindowFilters { - value.Conditions.ClientFilters.Filters = append(value.Conditions.ClientFilters.Filters, TimewindowFeatureFilter{ - Name: TimewindowFilterName, - Parameters: twf, - }) - } - } - - valueBytes, err := json.Marshal(value) - if err != nil { - return fmt.Errorf("while marshalling FeatureValue struct: %+v", err) - } - entity.Value = utils.String(string(valueBytes)) - if _, err = client.PutKeyValue(ctx, featureKey, model.Label, &entity, "", ""); err != nil { - return err - } - - if model.Locked { - if _, err = client.PutLock(ctx, featureKey, model.Label, "", ""); err != nil { - return fmt.Errorf("while locking key/label pair %s/%s: %+v", model.Name, model.Label, err) - } - } else { - if _, err = client.DeleteLock(ctx, featureKey, model.Label, "", ""); err != nil { - return fmt.Errorf("while unlocking key/label pair %s/%s: %+v", model.Name, model.Label, err) - } - } - - return nil -} func (k FeatureResource) StateUpgraders() sdk.StateUpgradeData { return sdk.StateUpgradeData{ SchemaVersion: 1, diff --git a/internal/services/appconfiguration/app_configuration_feature_resource_test.go b/internal/services/appconfiguration/app_configuration_feature_resource_test.go index 00efbbd1f54e..0efbec10c147 100644 --- a/internal/services/appconfiguration/app_configuration_feature_resource_test.go +++ b/internal/services/appconfiguration/app_configuration_feature_resource_test.go @@ -50,6 +50,33 @@ func TestAccAppConfigurationFeature_basic(t *testing.T) { }) } +func TestAccAppConfigurationFeature_percentFilter(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_app_configuration_feature", "test") + r := AppConfigurationFeatureResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.percentageFilter(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.basicPercentageFilter(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} func TestAccAppConfigurationFeature_basicNoLabel(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_app_configuration_feature", "test") r := AppConfigurationFeatureResource{} @@ -253,6 +280,60 @@ resource "azurerm_app_configuration_feature" "test" { `, t.template(data), data.RandomInteger) } +func (t AppConfigurationFeatureResource) percentageFilter(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_app_configuration_feature" "test" { + configuration_store_id = azurerm_app_configuration.test.id + description = "test description" + name = "acctest-ackey-%d" + label = "acctest-ackeylabel-%[2]d" + enabled = true + + percentage_filter_value = 50.65 + + timewindow_filter { + start = "2019-11-12T07:20:50.52Z" + end = "2019-11-13T07:20:50.52Z" + } + + targeting_filter { + default_rollout_percentage = 39 + users = ["random", "user"] + + groups { + name = "testgroup" + rollout_percentage = 50 + } + + groups { + name = "testgroup2" + rollout_percentage = 30 + } + } +} + +`, t.template(data), data.RandomInteger) +} + +func (t AppConfigurationFeatureResource) basicPercentageFilter(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_app_configuration_feature" "test" { + configuration_store_id = azurerm_app_configuration.test.id + description = "test description" + name = "acctest-ackey-%d" + label = "acctest-ackeylabel-%[2]d" + enabled = true + + percentage_filter_value = 89.91 +} + +`, t.template(data), data.RandomInteger) +} + func (t AppConfigurationFeatureResource) basicNoLabel(data acceptance.TestData) string { return fmt.Sprintf(` %s diff --git a/internal/services/appconfiguration/feature_structs.go b/internal/services/appconfiguration/feature_structs.go index 4ba5ca47131f..8c33f6c8e59e 100644 --- a/internal/services/appconfiguration/feature_structs.go +++ b/internal/services/appconfiguration/feature_structs.go @@ -98,7 +98,7 @@ func (p ClientFilter) MarshalJSON() ([]byte, error) { } type PercentageFilterParameters struct { - Value int `json:"Value"` + Value float64 `json:"Value"` } type PercentageFeatureFilter struct { diff --git a/website/docs/r/app_configuration_feature.html.markdown b/website/docs/r/app_configuration_feature.html.markdown index ca5ad6e2fa0e..f753af25c0ee 100644 --- a/website/docs/r/app_configuration_feature.html.markdown +++ b/website/docs/r/app_configuration_feature.html.markdown @@ -62,7 +62,7 @@ The following arguments are supported: * `name` - (Required) The name of the App Configuration Feature. Changing this forces a new resource to be created. -* `percentage_filter_value` - (Optional) A list of one or more numbers representing the value of the percentage required to enable this feature. +* `percentage_filter_value` - (Optional) A number representing the value of the percentage required to enable this feature. * `tags` - (Optional) A mapping of tags to assign to the resource. From 4dc594d960283d316d5aee101206e3f997285d04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Theis=20Ferr=C3=A9=20Hjortkj=C3=A6r?= Date: Tue, 19 Sep 2023 12:09:51 +0200 Subject: [PATCH 230/336] changed sdk version to 2022-01-01 for mysql flexible server --- internal/services/mysql/client/client.go | 6 +- .../mysql/mysql_flexible_database_resource.go | 2 +- .../mysql_flexible_database_resource_test.go | 2 +- ..._flexible_server_configuration_resource.go | 2 +- ...ible_server_configuration_resource_test.go | 4 +- .../mysql_flexible_server_data_source.go | 2 +- ..._flexible_server_firewall_rule_resource.go | 2 +- ...ible_server_firewall_rule_resource_test.go | 2 +- .../mysql/mysql_flexible_server_resource.go | 4 +- .../mysql_flexible_server_resource_test.go | 2 +- .../backups/README.md | 22 ++- .../backups/client.go | 0 .../backups/id_backup.go | 0 .../backups/id_flexibleserver.go | 0 .../backups/method_get.go | 0 .../backups/method_listbyserver.go | 0 .../mysql/2022-01-01/backups/method_put.go | 51 +++++++ .../backups/model_serverbackup.go | 0 .../backups/model_serverbackupproperties.go | 0 .../backups/predicates.go | 0 .../backups/version.go | 2 +- .../checknameavailability/README.md | 6 +- .../checknameavailability/client.go | 0 .../checknameavailability/id_location.go | 0 .../checknameavailability/method_execute.go | 0 .../method_withoutlocationexecute.go | 0 .../model_nameavailability.go | 0 .../model_nameavailabilityrequest.go | 0 .../checknameavailability/version.go | 2 +- .../{2021-05-01 => 2022-01-01}/client.go | 44 ++++-- .../configurations/README.md | 27 +++- .../configurations/client.go | 0 .../configurations/constants.go | 41 ++++++ .../configurations/id_configuration.go | 0 .../configurations/id_flexibleserver.go | 0 .../configurations/method_batchupdate.go | 0 .../configurations/method_createorupdate.go | 74 ++++++++++ .../configurations/method_get.go | 0 .../configurations/method_listbyserver.go | 129 ++++++++++++++++++ .../configurations/method_update.go | 0 .../configurations/model_configuration.go | 0 .../model_configurationforbatchupdate.go | 0 ...l_configurationforbatchupdateproperties.go | 0 .../model_configurationlistforbatchupdate.go | 3 +- .../model_configurationlistresult.go | 0 .../model_configurationproperties.go | 2 + .../configurations/predicates.go | 0 .../configurations/version.go | 2 +- .../databases/README.md | 6 +- .../databases/client.go | 0 .../databases/id_database.go | 0 .../databases/id_flexibleserver.go | 0 .../databases/method_createorupdate.go | 0 .../databases/method_delete.go | 0 .../databases/method_get.go | 0 .../databases/method_listbyserver.go | 0 .../databases/model_database.go | 0 .../databases/model_databaseproperties.go | 0 .../databases/predicates.go | 0 .../databases/version.go | 2 +- .../firewallrules/README.md | 6 +- .../firewallrules/client.go | 0 .../firewallrules/id_firewallrule.go | 0 .../firewallrules/id_flexibleserver.go | 0 .../firewallrules/method_createorupdate.go | 0 .../firewallrules/method_delete.go | 0 .../firewallrules/method_get.go | 0 .../firewallrules/method_listbyserver.go | 0 .../firewallrules/model_firewallrule.go | 0 .../model_firewallruleproperties.go | 0 .../firewallrules/predicates.go | 0 .../firewallrules/version.go | 2 +- .../getprivatednszonesuffix/README.md | 6 +- .../getprivatednszonesuffix/client.go | 0 .../getprivatednszonesuffix/method_execute.go | 0 .../model_getprivatednszonesuffixresponse.go | 0 .../getprivatednszonesuffix/version.go | 2 +- .../locationbasedcapabilities/README.md | 6 +- .../locationbasedcapabilities/client.go | 0 .../locationbasedcapabilities/id_location.go | 0 .../locationbasedcapabilities/method_list.go | 0 .../model_capabilityproperties.go | 0 .../model_servereditioncapability.go | 0 .../model_serverversioncapability.go | 0 .../model_skucapability.go | 0 .../model_storageeditioncapability.go | 0 .../locationbasedcapabilities/predicates.go | 0 .../locationbasedcapabilities/version.go | 2 +- .../mysql/2022-01-01/logfiles/README.md | 37 +++++ .../mysql/2022-01-01/logfiles/client.go | 26 ++++ .../2022-01-01/logfiles/id_flexibleserver.go | 127 +++++++++++++++++ .../logfiles}/method_listbyserver.go | 20 +-- .../2022-01-01/logfiles/model_logfile.go | 16 +++ .../logfiles/model_logfileproperties.go | 42 ++++++ .../mysql/2022-01-01/logfiles/predicates.go | 27 ++++ .../mysql/2022-01-01/logfiles/version.go | 12 ++ .../serverfailover/client.go | 0 .../serverfailover/id_flexibleserver.go | 0 .../serverfailover/method_serversfailover.go | 0 .../serverfailover/version.go | 2 +- .../serverrestart/README.md | 6 +- .../serverrestart/client.go | 0 .../serverrestart/constants.go | 0 .../serverrestart/id_flexibleserver.go | 0 .../serverrestart/method_serversrestart.go | 0 .../model_serverrestartparameter.go | 0 .../serverrestart/version.go | 2 +- .../servers/README.md | 6 +- .../servers/client.go | 0 .../servers/constants.go | 0 .../servers/id_flexibleserver.go | 0 .../servers/method_create.go | 0 .../servers/method_delete.go | 0 .../servers/method_get.go | 0 .../servers/method_list.go | 0 .../servers/method_listbyresourcegroup.go | 0 .../servers/method_replicaslistbyserver.go | 0 .../servers/method_update.go | 0 .../servers/model_backup.go | 0 .../servers/model_dataencryption.go | 0 .../servers/model_highavailability.go | 0 .../servers/model_identity.go | 0 .../servers/model_maintenancewindow.go | 0 .../servers/model_network.go | 0 .../servers/model_server.go | 0 .../servers/model_serverforupdate.go | 0 .../servers/model_serverproperties.go | 0 .../model_serverpropertiesforupdate.go | 1 + .../servers/model_sku.go | 0 .../servers/model_storage.go | 2 + .../servers/predicates.go | 0 .../servers/version.go | 2 +- .../serverstart/client.go | 0 .../serverstart/id_flexibleserver.go | 0 .../serverstart/method_serversstart.go | 0 .../serverstart/version.go | 2 +- .../serverstop/client.go | 0 .../serverstop/id_flexibleserver.go | 0 .../serverstop/method_serversstop.go | 0 .../serverstop/version.go | 2 +- vendor/modules.txt | 27 ++-- 141 files changed, 732 insertions(+), 92 deletions(-) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/backups/README.md (74%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/backups/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/backups/id_backup.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/backups/id_flexibleserver.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/backups/method_get.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/backups/method_listbyserver.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/method_put.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/backups/model_serverbackup.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/backups/model_serverbackupproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/backups/predicates.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/backups/version.go (88%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/checknameavailability/README.md (91%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/checknameavailability/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/checknameavailability/id_location.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/checknameavailability/method_execute.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/checknameavailability/method_withoutlocationexecute.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/checknameavailability/model_nameavailability.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/checknameavailability/model_nameavailabilityrequest.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/checknameavailability/version.go (89%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/client.go (70%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/README.md (72%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/constants.go (81%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/id_configuration.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/id_flexibleserver.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/method_batchupdate.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/method_createorupdate.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/method_get.go (100%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/method_listbyserver.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/method_update.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/model_configuration.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/model_configurationforbatchupdate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/model_configurationforbatchupdateproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/model_configurationlistforbatchupdate.go (58%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/model_configurationlistresult.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/model_configurationproperties.go (85%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/predicates.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/configurations/version.go (88%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/databases/README.md (94%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/databases/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/databases/id_database.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/databases/id_flexibleserver.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/databases/method_createorupdate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/databases/method_delete.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/databases/method_get.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/databases/method_listbyserver.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/databases/model_database.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/databases/model_databaseproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/databases/predicates.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/databases/version.go (88%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/firewallrules/README.md (94%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/firewallrules/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/firewallrules/id_firewallrule.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/firewallrules/id_flexibleserver.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/firewallrules/method_createorupdate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/firewallrules/method_delete.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/firewallrules/method_get.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/firewallrules/method_listbyserver.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/firewallrules/model_firewallrule.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/firewallrules/model_firewallruleproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/firewallrules/predicates.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/firewallrules/version.go (88%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/getprivatednszonesuffix/README.md (85%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/getprivatednszonesuffix/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/getprivatednszonesuffix/method_execute.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/getprivatednszonesuffix/model_getprivatednszonesuffixresponse.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/getprivatednszonesuffix/version.go (89%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/locationbasedcapabilities/README.md (86%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/locationbasedcapabilities/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/locationbasedcapabilities/id_location.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/locationbasedcapabilities/method_list.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/locationbasedcapabilities/model_capabilityproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/locationbasedcapabilities/model_servereditioncapability.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/locationbasedcapabilities/model_serverversioncapability.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/locationbasedcapabilities/model_skucapability.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/locationbasedcapabilities/model_storageeditioncapability.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/locationbasedcapabilities/predicates.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/locationbasedcapabilities/version.go (89%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/README.md create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/id_flexibleserver.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01/configurations => 2022-01-01/logfiles}/method_listbyserver.go (66%) create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/model_logfile.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/model_logfileproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/predicates.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/version.go rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverfailover/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverfailover/id_flexibleserver.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverfailover/method_serversfailover.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverfailover/version.go (88%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverrestart/README.md (88%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverrestart/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverrestart/constants.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverrestart/id_flexibleserver.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverrestart/method_serversrestart.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverrestart/model_serverrestartparameter.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverrestart/version.go (88%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/README.md (96%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/constants.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/id_flexibleserver.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/method_create.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/method_delete.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/method_get.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/method_list.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/method_listbyresourcegroup.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/method_replicaslistbyserver.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/method_update.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/model_backup.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/model_dataencryption.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/model_highavailability.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/model_identity.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/model_maintenancewindow.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/model_network.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/model_server.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/model_serverforupdate.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/model_serverproperties.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/model_serverpropertiesforupdate.go (91%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/model_sku.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/model_storage.go (77%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/predicates.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/servers/version.go (88%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverstart/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverstart/id_flexibleserver.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverstart/method_serversstart.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverstart/version.go (88%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverstop/client.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverstop/id_flexibleserver.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverstop/method_serversstop.go (100%) rename vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/{2021-05-01 => 2022-01-01}/serverstop/version.go (88%) diff --git a/internal/services/mysql/client/client.go b/internal/services/mysql/client/client.go index e28342957d4b..f89658780af1 100644 --- a/internal/services/mysql/client/client.go +++ b/internal/services/mysql/client/client.go @@ -8,14 +8,14 @@ import ( servers_v2017_12_01 "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2017-12-01" servers_v2020_01_01 "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2020-01-01" - flexibleServers_v2021_05_01 "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01" + flexibleServers_v2022_01_01 "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01" "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/azureadadministrators" "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" "github.com/hashicorp/terraform-provider-azurerm/internal/common" ) type Client struct { - FlexibleServers *flexibleServers_v2021_05_01.Client + FlexibleServers *flexibleServers_v2022_01_01.Client MySqlClient *servers_v2017_12_01.Client ServerKeysClient *servers_v2020_01_01.Client @@ -24,7 +24,7 @@ type Client struct { } func NewClient(o *common.ClientOptions) (*Client, error) { - flexibleServersMetaClient, err := flexibleServers_v2021_05_01.NewClientWithBaseURI(o.Environment.ResourceManager, func(c *resourcemanager.Client) { + flexibleServersMetaClient, err := flexibleServers_v2022_01_01.NewClientWithBaseURI(o.Environment.ResourceManager, func(c *resourcemanager.Client) { o.Configure(c, o.Authorizers.ResourceManager) }) if err != nil { diff --git a/internal/services/mysql/mysql_flexible_database_resource.go b/internal/services/mysql/mysql_flexible_database_resource.go index 752115170c73..ede689e04440 100644 --- a/internal/services/mysql/mysql_flexible_database_resource.go +++ b/internal/services/mysql/mysql_flexible_database_resource.go @@ -10,7 +10,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/mysql/validate" diff --git a/internal/services/mysql/mysql_flexible_database_resource_test.go b/internal/services/mysql/mysql_flexible_database_resource_test.go index f4d402e5fb59..03a8b3fd5861 100644 --- a/internal/services/mysql/mysql_flexible_database_resource_test.go +++ b/internal/services/mysql/mysql_flexible_database_resource_test.go @@ -8,7 +8,7 @@ import ( "fmt" "testing" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/mysql/mysql_flexible_server_configuration_resource.go b/internal/services/mysql/mysql_flexible_server_configuration_resource.go index 34d7bfae36ac..d8192065b7cf 100644 --- a/internal/services/mysql/mysql_flexible_server_configuration_resource.go +++ b/internal/services/mysql/mysql_flexible_server_configuration_resource.go @@ -11,7 +11,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/mysql/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" diff --git a/internal/services/mysql/mysql_flexible_server_configuration_resource_test.go b/internal/services/mysql/mysql_flexible_server_configuration_resource_test.go index 5ba818d75106..5036a934896a 100644 --- a/internal/services/mysql/mysql_flexible_server_configuration_resource_test.go +++ b/internal/services/mysql/mysql_flexible_server_configuration_resource_test.go @@ -10,8 +10,8 @@ import ( "time" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" diff --git a/internal/services/mysql/mysql_flexible_server_data_source.go b/internal/services/mysql/mysql_flexible_server_data_source.go index b979156d4371..871b84757e2d 100644 --- a/internal/services/mysql/mysql_flexible_server_data_source.go +++ b/internal/services/mysql/mysql_flexible_server_data_source.go @@ -13,7 +13,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/mysql/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" diff --git a/internal/services/mysql/mysql_flexible_server_firewall_rule_resource.go b/internal/services/mysql/mysql_flexible_server_firewall_rule_resource.go index f487771ddb25..26f14891a88c 100644 --- a/internal/services/mysql/mysql_flexible_server_firewall_rule_resource.go +++ b/internal/services/mysql/mysql_flexible_server_firewall_rule_resource.go @@ -9,7 +9,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" azValidate "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/mysql/mysql_flexible_server_firewall_rule_resource_test.go b/internal/services/mysql/mysql_flexible_server_firewall_rule_resource_test.go index 4906036ea8a0..afee7905c39b 100644 --- a/internal/services/mysql/mysql_flexible_server_firewall_rule_resource_test.go +++ b/internal/services/mysql/mysql_flexible_server_firewall_rule_resource_test.go @@ -8,7 +8,7 @@ import ( "fmt" "testing" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/mysql/mysql_flexible_server_resource.go b/internal/services/mysql/mysql_flexible_server_resource.go index a17c670dc204..99464198f07a 100644 --- a/internal/services/mysql/mysql_flexible_server_resource.go +++ b/internal/services/mysql/mysql_flexible_server_resource.go @@ -17,8 +17,8 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverfailover" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverfailover" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers" "github.com/hashicorp/go-azure-sdk/resource-manager/privatedns/2020-06-01/privatezones" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/internal/services/mysql/mysql_flexible_server_resource_test.go b/internal/services/mysql/mysql_flexible_server_resource_test.go index 6bee6927b964..a563427a9590 100644 --- a/internal/services/mysql/mysql_flexible_server_resource_test.go +++ b/internal/services/mysql/mysql_flexible_server_resource_test.go @@ -10,7 +10,7 @@ import ( "testing" "time" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/README.md similarity index 74% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/README.md index 6c2bc8556d51..d6bc92c2acf2 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups` Documentation -The `backups` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2021-05-01`). +The `backups` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2022-01-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups" +import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups" ``` @@ -51,3 +51,19 @@ for _, item := range items { // do something } ``` + + +### Example Usage: `BackupsClient.Put` + +```go +ctx := context.TODO() +id := backups.NewBackupID("12345678-1234-9876-4563-123456789012", "example-resource-group", "flexibleServerValue", "backupValue") + +read, err := client.Put(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/id_backup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/id_backup.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/id_backup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/id_backup.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/id_flexibleserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/id_flexibleserver.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/id_flexibleserver.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/id_flexibleserver.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/method_get.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/method_get.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/method_get.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/method_listbyserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/method_listbyserver.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/method_listbyserver.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/method_listbyserver.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/method_put.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/method_put.go new file mode 100644 index 000000000000..37f1376f7824 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/method_put.go @@ -0,0 +1,51 @@ +package backups + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PutOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ServerBackup +} + +// Put ... +func (c BackupsClient) Put(ctx context.Context, id BackupId) (result PutOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/model_serverbackup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/model_serverbackup.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/model_serverbackup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/model_serverbackup.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/model_serverbackupproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/model_serverbackupproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/model_serverbackupproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/model_serverbackupproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/predicates.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/predicates.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/predicates.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/version.go index 650fe50c24ab..91f95dd8aeb2 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2021-05-01" +const defaultApiVersion = "2022-01-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/backups/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/README.md similarity index 91% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/README.md index dd5e294050ae..b509c2abd519 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability` Documentation -The `checknameavailability` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2021-05-01`). +The `checknameavailability` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2022-01-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability" +import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability" ``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/id_location.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/id_location.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/id_location.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/id_location.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/method_execute.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/method_execute.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/method_execute.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/method_execute.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/method_withoutlocationexecute.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/method_withoutlocationexecute.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/method_withoutlocationexecute.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/method_withoutlocationexecute.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/model_nameavailability.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/model_nameavailability.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/model_nameavailability.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/model_nameavailability.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/model_nameavailabilityrequest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/model_nameavailabilityrequest.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/model_nameavailabilityrequest.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/model_nameavailabilityrequest.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/version.go similarity index 89% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/version.go index e8c1f33be52c..570fa81a003c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2021-05-01" +const defaultApiVersion = "2022-01-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/checknameavailability/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/client.go similarity index 70% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/client.go index 570363f85471..68a55624f0cd 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/client.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/client.go @@ -1,4 +1,4 @@ -package v2021_05_01 +package v2022_01_01 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. @@ -6,23 +6,26 @@ package v2021_05_01 import ( "fmt" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverfailover" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstart" - "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstop" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/azureadadministrators" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverfailover" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstart" + "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstop" "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" ) type Client struct { + AzureADAdministrators *azureadadministrators.AzureADAdministratorsClient Backups *backups.BackupsClient CheckNameAvailability *checknameavailability.CheckNameAvailabilityClient Configurations *configurations.ConfigurationsClient @@ -30,6 +33,7 @@ type Client struct { FirewallRules *firewallrules.FirewallRulesClient GetPrivateDnsZoneSuffix *getprivatednszonesuffix.GetPrivateDnsZoneSuffixClient LocationBasedCapabilities *locationbasedcapabilities.LocationBasedCapabilitiesClient + LogFiles *logfiles.LogFilesClient ServerFailover *serverfailover.ServerFailoverClient ServerRestart *serverrestart.ServerRestartClient ServerStart *serverstart.ServerStartClient @@ -38,6 +42,12 @@ type Client struct { } func NewClientWithBaseURI(sdkApi sdkEnv.Api, configureFunc func(c *resourcemanager.Client)) (*Client, error) { + azureADAdministratorsClient, err := azureadadministrators.NewAzureADAdministratorsClientWithBaseURI(sdkApi) + if err != nil { + return nil, fmt.Errorf("building AzureADAdministrators client: %+v", err) + } + configureFunc(azureADAdministratorsClient.Client) + backupsClient, err := backups.NewBackupsClientWithBaseURI(sdkApi) if err != nil { return nil, fmt.Errorf("building Backups client: %+v", err) @@ -80,6 +90,12 @@ func NewClientWithBaseURI(sdkApi sdkEnv.Api, configureFunc func(c *resourcemanag } configureFunc(locationBasedCapabilitiesClient.Client) + logFilesClient, err := logfiles.NewLogFilesClientWithBaseURI(sdkApi) + if err != nil { + return nil, fmt.Errorf("building LogFiles client: %+v", err) + } + configureFunc(logFilesClient.Client) + serverFailoverClient, err := serverfailover.NewServerFailoverClientWithBaseURI(sdkApi) if err != nil { return nil, fmt.Errorf("building ServerFailover client: %+v", err) @@ -111,6 +127,7 @@ func NewClientWithBaseURI(sdkApi sdkEnv.Api, configureFunc func(c *resourcemanag configureFunc(serversClient.Client) return &Client{ + AzureADAdministrators: azureADAdministratorsClient, Backups: backupsClient, CheckNameAvailability: checkNameAvailabilityClient, Configurations: configurationsClient, @@ -118,6 +135,7 @@ func NewClientWithBaseURI(sdkApi sdkEnv.Api, configureFunc func(c *resourcemanag FirewallRules: firewallRulesClient, GetPrivateDnsZoneSuffix: getPrivateDnsZoneSuffixClient, LocationBasedCapabilities: locationBasedCapabilitiesClient, + LogFiles: logFilesClient, ServerFailover: serverFailoverClient, ServerRestart: serverRestartClient, ServerStart: serverStartClient, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/README.md similarity index 72% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/README.md index 67771a9be586..867d4e86462b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations` Documentation -The `configurations` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2021-05-01`). +The `configurations` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2022-01-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations" +import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations" ``` @@ -37,6 +37,23 @@ if err := client.BatchUpdateThenPoll(ctx, id, payload); err != nil { ``` +### Example Usage: `ConfigurationsClient.CreateOrUpdate` + +```go +ctx := context.TODO() +id := configurations.NewConfigurationID("12345678-1234-9876-4563-123456789012", "example-resource-group", "flexibleServerValue", "configurationValue") + +payload := configurations.Configuration{ + // ... +} + + +if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + ### Example Usage: `ConfigurationsClient.Get` ```go @@ -59,8 +76,8 @@ if model := read.Model; model != nil { ctx := context.TODO() id := configurations.NewFlexibleServerID("12345678-1234-9876-4563-123456789012", "example-resource-group", "flexibleServerValue") -// alternatively `client.ListByServer(ctx, id)` can be used to do batched pagination -items, err := client.ListByServerComplete(ctx, id) +// alternatively `client.ListByServer(ctx, id, configurations.DefaultListByServerOperationOptions())` can be used to do batched pagination +items, err := client.ListByServerComplete(ctx, id, configurations.DefaultListByServerOperationOptions()) if err != nil { // handle the error } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/constants.go similarity index 81% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/constants.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/constants.go index f1dd2076e3c4..5508483dcba5 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/constants.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/constants.go @@ -172,3 +172,44 @@ func parseIsReadOnly(input string) (*IsReadOnly, error) { out := IsReadOnly(input) return &out, nil } + +type ResetAllToDefault string + +const ( + ResetAllToDefaultFalse ResetAllToDefault = "False" + ResetAllToDefaultTrue ResetAllToDefault = "True" +) + +func PossibleValuesForResetAllToDefault() []string { + return []string{ + string(ResetAllToDefaultFalse), + string(ResetAllToDefaultTrue), + } +} + +func (s *ResetAllToDefault) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseResetAllToDefault(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseResetAllToDefault(input string) (*ResetAllToDefault, error) { + vals := map[string]ResetAllToDefault{ + "false": ResetAllToDefaultFalse, + "true": ResetAllToDefaultTrue, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ResetAllToDefault(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/id_configuration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/id_configuration.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/id_configuration.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/id_configuration.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/id_flexibleserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/id_flexibleserver.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/id_flexibleserver.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/id_flexibleserver.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/method_batchupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/method_batchupdate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/method_batchupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/method_batchupdate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/method_createorupdate.go new file mode 100644 index 000000000000..56e5056d1406 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/method_createorupdate.go @@ -0,0 +1,74 @@ +package configurations + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CreateOrUpdate ... +func (c ConfigurationsClient) CreateOrUpdate(ctx context.Context, id ConfigurationId, input Configuration) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c ConfigurationsClient) CreateOrUpdateThenPoll(ctx context.Context, id ConfigurationId, input Configuration) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/method_get.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/method_get.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/method_get.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/method_listbyserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/method_listbyserver.go new file mode 100644 index 000000000000..47b61512371f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/method_listbyserver.go @@ -0,0 +1,129 @@ +package configurations + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByServerOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]Configuration +} + +type ListByServerCompleteResult struct { + Items []Configuration +} + +type ListByServerOperationOptions struct { + Keyword *string + Page *int64 + PageSize *int64 + Tags *string +} + +func DefaultListByServerOperationOptions() ListByServerOperationOptions { + return ListByServerOperationOptions{} +} + +func (o ListByServerOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o ListByServerOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o ListByServerOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.Keyword != nil { + out.Append("keyword", fmt.Sprintf("%v", *o.Keyword)) + } + if o.Page != nil { + out.Append("page", fmt.Sprintf("%v", *o.Page)) + } + if o.PageSize != nil { + out.Append("pageSize", fmt.Sprintf("%v", *o.PageSize)) + } + if o.Tags != nil { + out.Append("tags", fmt.Sprintf("%v", *o.Tags)) + } + return &out +} + +// ListByServer ... +func (c ConfigurationsClient) ListByServer(ctx context.Context, id FlexibleServerId, options ListByServerOperationOptions) (result ListByServerOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/configurations", id.ID()), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]Configuration `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListByServerComplete retrieves all the results into a single object +func (c ConfigurationsClient) ListByServerComplete(ctx context.Context, id FlexibleServerId, options ListByServerOperationOptions) (ListByServerCompleteResult, error) { + return c.ListByServerCompleteMatchingPredicate(ctx, id, options, ConfigurationOperationPredicate{}) +} + +// ListByServerCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c ConfigurationsClient) ListByServerCompleteMatchingPredicate(ctx context.Context, id FlexibleServerId, options ListByServerOperationOptions, predicate ConfigurationOperationPredicate) (result ListByServerCompleteResult, err error) { + items := make([]Configuration, 0) + + resp, err := c.ListByServer(ctx, id, options) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListByServerCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/method_update.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/method_update.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/method_update.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/model_configuration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/model_configuration.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/model_configuration.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/model_configuration.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/model_configurationforbatchupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/model_configurationforbatchupdate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/model_configurationforbatchupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/model_configurationforbatchupdate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/model_configurationforbatchupdateproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/model_configurationforbatchupdateproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/model_configurationforbatchupdateproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/model_configurationforbatchupdateproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/model_configurationlistforbatchupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/model_configurationlistforbatchupdate.go similarity index 58% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/model_configurationlistforbatchupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/model_configurationlistforbatchupdate.go index 9a2ca76edd1b..a5f4e77694e8 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/model_configurationlistforbatchupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/model_configurationlistforbatchupdate.go @@ -4,5 +4,6 @@ package configurations // Licensed under the MIT License. See NOTICE.txt in the project root for license information. type ConfigurationListForBatchUpdate struct { - Value *[]ConfigurationForBatchUpdate `json:"value,omitempty"` + ResetAllToDefault *ResetAllToDefault `json:"resetAllToDefault,omitempty"` + Value *[]ConfigurationForBatchUpdate `json:"value,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/model_configurationlistresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/model_configurationlistresult.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/model_configurationlistresult.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/model_configurationlistresult.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/model_configurationproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/model_configurationproperties.go similarity index 85% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/model_configurationproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/model_configurationproperties.go index c1a6803626aa..51d6836b9a56 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/model_configurationproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/model_configurationproperties.go @@ -5,9 +5,11 @@ package configurations type ConfigurationProperties struct { AllowedValues *string `json:"allowedValues,omitempty"` + CurrentValue *string `json:"currentValue,omitempty"` DataType *string `json:"dataType,omitempty"` DefaultValue *string `json:"defaultValue,omitempty"` Description *string `json:"description,omitempty"` + DocumentationLink *string `json:"documentationLink,omitempty"` IsConfigPendingRestart *IsConfigPendingRestart `json:"isConfigPendingRestart,omitempty"` IsDynamicConfig *IsDynamicConfig `json:"isDynamicConfig,omitempty"` IsReadOnly *IsReadOnly `json:"isReadOnly,omitempty"` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/predicates.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/predicates.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/predicates.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/version.go index b06cb044d76b..c91dc76206fb 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2021-05-01" +const defaultApiVersion = "2022-01-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/configurations/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/README.md similarity index 94% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/README.md index 3b3657e76db3..d81cd68c5c42 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases` Documentation -The `databases` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2021-05-01`). +The `databases` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2022-01-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases" +import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases" ``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/id_database.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/id_database.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/id_database.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/id_database.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/id_flexibleserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/id_flexibleserver.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/id_flexibleserver.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/id_flexibleserver.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/method_createorupdate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/method_createorupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/method_createorupdate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/method_delete.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/method_delete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/method_delete.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/method_get.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/method_get.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/method_get.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/method_listbyserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/method_listbyserver.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/method_listbyserver.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/method_listbyserver.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/model_database.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/model_database.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/model_database.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/model_database.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/model_databaseproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/model_databaseproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/model_databaseproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/model_databaseproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/predicates.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/predicates.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/predicates.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/version.go index b1bf2c06bca0..925ad65c153e 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2021-05-01" +const defaultApiVersion = "2022-01-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/databases/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/README.md similarity index 94% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/README.md index ae8c0ef4a459..c5b4f8ab7f35 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules` Documentation -The `firewallrules` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2021-05-01`). +The `firewallrules` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2022-01-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules" +import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules" ``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/id_firewallrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/id_firewallrule.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/id_firewallrule.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/id_firewallrule.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/id_flexibleserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/id_flexibleserver.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/id_flexibleserver.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/id_flexibleserver.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/method_createorupdate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/method_createorupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/method_createorupdate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/method_delete.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/method_delete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/method_delete.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/method_get.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/method_get.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/method_get.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/method_listbyserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/method_listbyserver.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/method_listbyserver.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/method_listbyserver.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/model_firewallrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/model_firewallrule.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/model_firewallrule.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/model_firewallrule.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/model_firewallruleproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/model_firewallruleproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/model_firewallruleproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/model_firewallruleproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/predicates.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/predicates.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/predicates.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/version.go index f42dd905c1ff..c96e99a28a32 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2021-05-01" +const defaultApiVersion = "2022-01-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/firewallrules/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix/README.md similarity index 85% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix/README.md index 55d3d5d889d7..a893cd14eacf 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix` Documentation -The `getprivatednszonesuffix` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2021-05-01`). +The `getprivatednszonesuffix` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2022-01-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix" +import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix" ``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix/method_execute.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix/method_execute.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix/method_execute.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix/method_execute.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix/model_getprivatednszonesuffixresponse.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix/model_getprivatednszonesuffixresponse.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix/model_getprivatednszonesuffixresponse.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix/model_getprivatednszonesuffixresponse.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix/version.go similarity index 89% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix/version.go index c6e2c966af0c..d5e2b6bda7b3 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2021-05-01" +const defaultApiVersion = "2022-01-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/getprivatednszonesuffix/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/README.md similarity index 86% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/README.md index 79572dad66a7..a8c4f04afa8b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities` Documentation -The `locationbasedcapabilities` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2021-05-01`). +The `locationbasedcapabilities` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2022-01-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities" +import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities" ``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/id_location.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/id_location.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/id_location.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/id_location.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/method_list.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/method_list.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/method_list.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/method_list.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/model_capabilityproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/model_capabilityproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/model_capabilityproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/model_capabilityproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/model_servereditioncapability.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/model_servereditioncapability.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/model_servereditioncapability.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/model_servereditioncapability.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/model_serverversioncapability.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/model_serverversioncapability.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/model_serverversioncapability.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/model_serverversioncapability.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/model_skucapability.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/model_skucapability.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/model_skucapability.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/model_skucapability.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/model_storageeditioncapability.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/model_storageeditioncapability.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/model_storageeditioncapability.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/model_storageeditioncapability.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/predicates.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/predicates.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/predicates.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/version.go similarity index 89% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/version.go index 513cc3a111d4..2d0679772a8c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2021-05-01" +const defaultApiVersion = "2022-01-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/locationbasedcapabilities/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/README.md new file mode 100644 index 000000000000..7f7d09c87291 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/README.md @@ -0,0 +1,37 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles` Documentation + +The `logfiles` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2022-01-01`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles" +``` + + +### Client Initialization + +```go +client := logfiles.NewLogFilesClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `LogFilesClient.ListByServer` + +```go +ctx := context.TODO() +id := logfiles.NewFlexibleServerID("12345678-1234-9876-4563-123456789012", "example-resource-group", "flexibleServerValue") + +// alternatively `client.ListByServer(ctx, id)` can be used to do batched pagination +items, err := client.ListByServerComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/client.go new file mode 100644 index 000000000000..8e5eb3275286 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/client.go @@ -0,0 +1,26 @@ +package logfiles + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type LogFilesClient struct { + Client *resourcemanager.Client +} + +func NewLogFilesClientWithBaseURI(sdkApi sdkEnv.Api) (*LogFilesClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "logfiles", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating LogFilesClient: %+v", err) + } + + return &LogFilesClient{ + Client: client, + }, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/id_flexibleserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/id_flexibleserver.go new file mode 100644 index 000000000000..3bf684f08d90 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/id_flexibleserver.go @@ -0,0 +1,127 @@ +package logfiles + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = FlexibleServerId{} + +// FlexibleServerId is a struct representing the Resource ID for a Flexible Server +type FlexibleServerId struct { + SubscriptionId string + ResourceGroupName string + FlexibleServerName string +} + +// NewFlexibleServerID returns a new FlexibleServerId struct +func NewFlexibleServerID(subscriptionId string, resourceGroupName string, flexibleServerName string) FlexibleServerId { + return FlexibleServerId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + FlexibleServerName: flexibleServerName, + } +} + +// ParseFlexibleServerID parses 'input' into a FlexibleServerId +func ParseFlexibleServerID(input string) (*FlexibleServerId, error) { + parser := resourceids.NewParserFromResourceIdType(FlexibleServerId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := FlexibleServerId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.FlexibleServerName, ok = parsed.Parsed["flexibleServerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "flexibleServerName", *parsed) + } + + return &id, nil +} + +// ParseFlexibleServerIDInsensitively parses 'input' case-insensitively into a FlexibleServerId +// note: this method should only be used for API response data and not user input +func ParseFlexibleServerIDInsensitively(input string) (*FlexibleServerId, error) { + parser := resourceids.NewParserFromResourceIdType(FlexibleServerId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := FlexibleServerId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.FlexibleServerName, ok = parsed.Parsed["flexibleServerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "flexibleServerName", *parsed) + } + + return &id, nil +} + +// ValidateFlexibleServerID checks that 'input' can be parsed as a Flexible Server ID +func ValidateFlexibleServerID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseFlexibleServerID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Flexible Server ID +func (id FlexibleServerId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.DBforMySQL/flexibleServers/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.FlexibleServerName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Flexible Server ID +func (id FlexibleServerId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftDBforMySQL", "Microsoft.DBforMySQL", "Microsoft.DBforMySQL"), + resourceids.StaticSegment("staticFlexibleServers", "flexibleServers", "flexibleServers"), + resourceids.UserSpecifiedSegment("flexibleServerName", "flexibleServerValue"), + } +} + +// String returns a human-readable description of this Flexible Server ID +func (id FlexibleServerId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Flexible Server Name: %q", id.FlexibleServerName), + } + return fmt.Sprintf("Flexible Server (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/method_listbyserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/method_listbyserver.go similarity index 66% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/method_listbyserver.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/method_listbyserver.go index 9e8eca7ab726..d8381b932e46 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations/method_listbyserver.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/method_listbyserver.go @@ -1,4 +1,4 @@ -package configurations +package logfiles import ( "context" @@ -15,22 +15,22 @@ import ( type ListByServerOperationResponse struct { HttpResponse *http.Response OData *odata.OData - Model *[]Configuration + Model *[]LogFile } type ListByServerCompleteResult struct { - Items []Configuration + Items []LogFile } // ListByServer ... -func (c ConfigurationsClient) ListByServer(ctx context.Context, id FlexibleServerId) (result ListByServerOperationResponse, err error) { +func (c LogFilesClient) ListByServer(ctx context.Context, id FlexibleServerId) (result ListByServerOperationResponse, err error) { opts := client.RequestOptions{ ContentType: "application/json; charset=utf-8", ExpectedStatusCodes: []int{ http.StatusOK, }, HttpMethod: http.MethodGet, - Path: fmt.Sprintf("%s/configurations", id.ID()), + Path: fmt.Sprintf("%s/logFiles", id.ID()), } req, err := c.Client.NewRequest(ctx, opts) @@ -49,7 +49,7 @@ func (c ConfigurationsClient) ListByServer(ctx context.Context, id FlexibleServe } var values struct { - Values *[]Configuration `json:"value"` + Values *[]LogFile `json:"value"` } if err = resp.Unmarshal(&values); err != nil { return @@ -61,13 +61,13 @@ func (c ConfigurationsClient) ListByServer(ctx context.Context, id FlexibleServe } // ListByServerComplete retrieves all the results into a single object -func (c ConfigurationsClient) ListByServerComplete(ctx context.Context, id FlexibleServerId) (ListByServerCompleteResult, error) { - return c.ListByServerCompleteMatchingPredicate(ctx, id, ConfigurationOperationPredicate{}) +func (c LogFilesClient) ListByServerComplete(ctx context.Context, id FlexibleServerId) (ListByServerCompleteResult, error) { + return c.ListByServerCompleteMatchingPredicate(ctx, id, LogFileOperationPredicate{}) } // ListByServerCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c ConfigurationsClient) ListByServerCompleteMatchingPredicate(ctx context.Context, id FlexibleServerId, predicate ConfigurationOperationPredicate) (result ListByServerCompleteResult, err error) { - items := make([]Configuration, 0) +func (c LogFilesClient) ListByServerCompleteMatchingPredicate(ctx context.Context, id FlexibleServerId, predicate LogFileOperationPredicate) (result ListByServerCompleteResult, err error) { + items := make([]LogFile, 0) resp, err := c.ListByServer(ctx, id) if err != nil { diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/model_logfile.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/model_logfile.go new file mode 100644 index 000000000000..238e512289b8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/model_logfile.go @@ -0,0 +1,16 @@ +package logfiles + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type LogFile struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *LogFileProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/model_logfileproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/model_logfileproperties.go new file mode 100644 index 000000000000..43030a1fdc1b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/model_logfileproperties.go @@ -0,0 +1,42 @@ +package logfiles + +import ( + "time" + + "github.com/hashicorp/go-azure-helpers/lang/dates" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type LogFileProperties struct { + CreatedTime *string `json:"createdTime,omitempty"` + LastModifiedTime *string `json:"lastModifiedTime,omitempty"` + SizeInKB *int64 `json:"sizeInKB,omitempty"` + Type *string `json:"type,omitempty"` + Url *string `json:"url,omitempty"` +} + +func (o *LogFileProperties) GetCreatedTimeAsTime() (*time.Time, error) { + if o.CreatedTime == nil { + return nil, nil + } + return dates.ParseAsFormat(o.CreatedTime, "2006-01-02T15:04:05Z07:00") +} + +func (o *LogFileProperties) SetCreatedTimeAsTime(input time.Time) { + formatted := input.Format("2006-01-02T15:04:05Z07:00") + o.CreatedTime = &formatted +} + +func (o *LogFileProperties) GetLastModifiedTimeAsTime() (*time.Time, error) { + if o.LastModifiedTime == nil { + return nil, nil + } + return dates.ParseAsFormat(o.LastModifiedTime, "2006-01-02T15:04:05Z07:00") +} + +func (o *LogFileProperties) SetLastModifiedTimeAsTime(input time.Time) { + formatted := input.Format("2006-01-02T15:04:05Z07:00") + o.LastModifiedTime = &formatted +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/predicates.go new file mode 100644 index 000000000000..3b4f9690c5d5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/predicates.go @@ -0,0 +1,27 @@ +package logfiles + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type LogFileOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p LogFileOperationPredicate) Matches(input LogFile) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/version.go new file mode 100644 index 000000000000..5f0a51699f00 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles/version.go @@ -0,0 +1,12 @@ +package logfiles + +import "fmt" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +const defaultApiVersion = "2022-01-01" + +func userAgent() string { + return fmt.Sprintf("hashicorp/go-azure-sdk/logfiles/%s", defaultApiVersion) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverfailover/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverfailover/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverfailover/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverfailover/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverfailover/id_flexibleserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverfailover/id_flexibleserver.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverfailover/id_flexibleserver.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverfailover/id_flexibleserver.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverfailover/method_serversfailover.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverfailover/method_serversfailover.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverfailover/method_serversfailover.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverfailover/method_serversfailover.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverfailover/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverfailover/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverfailover/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverfailover/version.go index 2fe100ead4b2..062cc1c455a2 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverfailover/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverfailover/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2021-05-01" +const defaultApiVersion = "2022-01-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/serverfailover/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/README.md similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/README.md index 903ba8ec30bb..927869906b01 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart` Documentation -The `serverrestart` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2021-05-01`). +The `serverrestart` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2022-01-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart" +import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart" ``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/constants.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/constants.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/constants.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/id_flexibleserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/id_flexibleserver.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/id_flexibleserver.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/id_flexibleserver.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/method_serversrestart.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/method_serversrestart.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/method_serversrestart.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/method_serversrestart.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/model_serverrestartparameter.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/model_serverrestartparameter.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/model_serverrestartparameter.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/model_serverrestartparameter.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/version.go index e2aa43b27de4..80aaca6b1f13 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2021-05-01" +const defaultApiVersion = "2022-01-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/serverrestart/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/README.md similarity index 96% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/README.md rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/README.md index 68a0a2d84096..15ec8a110ff3 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/README.md +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/README.md @@ -1,14 +1,14 @@ -## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers` Documentation +## `github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers` Documentation -The `servers` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2021-05-01`). +The `servers` SDK allows for interaction with the Azure Resource Manager Service `mysql` (API Version `2022-01-01`). This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). ### Import Path ```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers" +import "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers" ``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/constants.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/constants.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/constants.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/id_flexibleserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/id_flexibleserver.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/id_flexibleserver.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/id_flexibleserver.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/method_create.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/method_create.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/method_create.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/method_create.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/method_delete.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/method_delete.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/method_delete.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/method_get.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/method_get.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/method_get.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/method_list.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/method_list.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/method_list.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/method_list.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/method_listbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/method_listbyresourcegroup.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/method_listbyresourcegroup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/method_listbyresourcegroup.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/method_replicaslistbyserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/method_replicaslistbyserver.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/method_replicaslistbyserver.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/method_replicaslistbyserver.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/method_update.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/method_update.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/method_update.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_backup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_backup.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_backup.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_backup.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_dataencryption.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_dataencryption.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_dataencryption.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_dataencryption.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_highavailability.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_highavailability.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_highavailability.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_highavailability.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_identity.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_identity.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_identity.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_identity.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_maintenancewindow.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_maintenancewindow.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_maintenancewindow.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_maintenancewindow.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_network.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_network.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_network.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_network.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_server.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_server.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_server.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_server.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_serverforupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_serverforupdate.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_serverforupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_serverforupdate.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_serverproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_serverproperties.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_serverproperties.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_serverproperties.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_serverpropertiesforupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_serverpropertiesforupdate.go similarity index 91% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_serverpropertiesforupdate.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_serverpropertiesforupdate.go index a6b7c345f55e..a5b79594b3c9 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_serverpropertiesforupdate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_serverpropertiesforupdate.go @@ -11,4 +11,5 @@ type ServerPropertiesForUpdate struct { MaintenanceWindow *MaintenanceWindow `json:"maintenanceWindow,omitempty"` ReplicationRole *ReplicationRole `json:"replicationRole,omitempty"` Storage *Storage `json:"storage,omitempty"` + Version *ServerVersion `json:"version,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_sku.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_sku.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_sku.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_sku.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_storage.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_storage.go similarity index 77% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_storage.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_storage.go index 3dfb466f0701..ae3776c4e789 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/model_storage.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/model_storage.go @@ -5,7 +5,9 @@ package servers type Storage struct { AutoGrow *EnableStatusEnum `json:"autoGrow,omitempty"` + AutoIoScaling *EnableStatusEnum `json:"autoIoScaling,omitempty"` Iops *int64 `json:"iops,omitempty"` + LogOnDisk *EnableStatusEnum `json:"logOnDisk,omitempty"` StorageSizeGB *int64 `json:"storageSizeGB,omitempty"` StorageSku *string `json:"storageSku,omitempty"` } diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/predicates.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/predicates.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/predicates.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/version.go index 111072603c62..ca20aadce54a 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2021-05-01" +const defaultApiVersion = "2022-01-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/servers/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstart/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstart/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstart/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstart/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstart/id_flexibleserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstart/id_flexibleserver.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstart/id_flexibleserver.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstart/id_flexibleserver.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstart/method_serversstart.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstart/method_serversstart.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstart/method_serversstart.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstart/method_serversstart.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstart/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstart/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstart/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstart/version.go index c0a1cd1e96f2..4c27bb142235 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstart/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstart/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2021-05-01" +const defaultApiVersion = "2022-01-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/serverstart/%s", defaultApiVersion) diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstop/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstop/client.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstop/client.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstop/client.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstop/id_flexibleserver.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstop/id_flexibleserver.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstop/id_flexibleserver.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstop/id_flexibleserver.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstop/method_serversstop.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstop/method_serversstop.go similarity index 100% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstop/method_serversstop.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstop/method_serversstop.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstop/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstop/version.go similarity index 88% rename from vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstop/version.go rename to vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstop/version.go index 5ba165c24f76..a2f8f0dc7c73 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstop/version.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstop/version.go @@ -5,7 +5,7 @@ import "fmt" // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See NOTICE.txt in the project root for license information. -const defaultApiVersion = "2021-05-01" +const defaultApiVersion = "2022-01-01" func userAgent() string { return fmt.Sprintf("hashicorp/go-azure-sdk/serverstop/%s", defaultApiVersion) diff --git a/vendor/modules.txt b/vendor/modules.txt index 30827ab7ac5f..d01ff2b640f1 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -605,20 +605,21 @@ github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2020-01-01/serverkeys github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2020-01-01/serverstart github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2020-01-01/serverstop github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2020-01-01/serverupgrade -github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01 -github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/backups -github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/checknameavailability -github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/configurations -github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/databases -github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/firewallrules -github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/getprivatednszonesuffix -github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/locationbasedcapabilities -github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverfailover -github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverrestart -github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/servers -github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstart -github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2021-05-01/serverstop +github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01 github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/azureadadministrators +github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/backups +github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/checknameavailability +github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/configurations +github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/databases +github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/firewallrules +github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/getprivatednszonesuffix +github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/locationbasedcapabilities +github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/logfiles +github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverfailover +github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverrestart +github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/servers +github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstart +github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2022-01-01/serverstop github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/capacitypools github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/netappaccounts github.com/hashicorp/go-azure-sdk/resource-manager/netapp/2022-05-01/snapshotpolicy From 4312123c6dd6bc05c12898892d37b547cef33cea Mon Sep 17 00:00:00 2001 From: Neil Ye Date: Tue, 19 Sep 2023 18:39:34 +0800 Subject: [PATCH 231/336] `azurerm_bot_channel_directline` - support for `user_upload_enabled`, `endpoint_parameters_enabled` and `storage_enabled` (#23149) `azurerm_bot_channel_directline` - support for `user_upload_enabled`, `endpoint_parameters_enabled` and `storage_enabled` --- .../bot/bot_channel_directline_resource.go | 49 ++++++++++++++++++- .../bot_channel_directline_resource_test.go | 15 +++++- .../r/bot_channel_directline.html.markdown | 6 +++ 3 files changed, 67 insertions(+), 3 deletions(-) diff --git a/internal/services/bot/bot_channel_directline_resource.go b/internal/services/bot/bot_channel_directline_resource.go index 032e342c1650..6be3af008571 100644 --- a/internal/services/bot/bot_channel_directline_resource.go +++ b/internal/services/bot/bot_channel_directline_resource.go @@ -64,12 +64,29 @@ func resourceBotChannelDirectline() *pluginsdk.Resource { ValidateFunc: validation.StringIsNotEmpty, }, + "user_upload_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: true, + }, + "enabled": { Type: pluginsdk.TypeBool, Optional: true, Default: true, }, + "endpoint_parameters_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + }, + + "storage_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: true, + }, + "v1_allowed": { Type: pluginsdk.TypeBool, Optional: true, @@ -162,7 +179,7 @@ func resourceBotChannelDirectlineCreate(d *pluginsdk.ResourceData, meta interfac } d.SetId(resourceId.ID()) - // Unable to create a new site with enhanced_authentication_enabled in the same operation, so we need to make two calls + // Unable to add a new site with enhanced_authentication_enabled, user_upload_enabled, endpoint_parameters_enabled, storage_enabled in the same operation, so we need to make two calls if _, err := client.Update(ctx, resourceId.ResourceGroup, resourceId.BotServiceName, botservice.ChannelNameDirectLineChannel, channel); err != nil { return fmt.Errorf("updating Directline Channel for Bot %q (Resource Group %q): %+v", resourceId.BotServiceName, resourceId.ResourceGroup, err) } @@ -236,6 +253,12 @@ func resourceBotChannelDirectlineUpdate(d *pluginsdk.ResourceData, meta interfac return fmt.Errorf("updating Directline Channel for Bot %q (Resource Group %q): %+v", id.BotServiceName, id.ResourceGroup, err) } + // Unable to add a new site with enhanced_authentication_enabled, user_upload_enabled, endpoint_parameters_enabled, storage_enabled in the same operation, so we need to make two calls + // Once this issue https://github.com/Azure/azure-rest-api-specs/issues/25758 is fixed, this update will be removed + if _, err := client.Update(ctx, id.ResourceGroup, id.BotServiceName, botservice.ChannelNameDirectLineChannel, channel); err != nil { + return fmt.Errorf("updating Directline Channel for Bot %q (Resource Group %q): %+v", id.BotServiceName, id.ResourceGroup, err) + } + return resourceBotChannelDirectlineRead(d, meta) } @@ -268,7 +291,11 @@ func expandDirectlineSites(input []interface{}) *[]botservice.DirectLineSite { } site := element.(map[string]interface{}) - expanded := botservice.DirectLineSite{} + expanded := botservice.DirectLineSite{ + IsBlockUserUploadEnabled: utils.Bool(!site["user_upload_enabled"].(bool)), + IsEndpointParametersEnabled: utils.Bool(site["endpoint_parameters_enabled"].(bool)), + IsNoStorageEnabled: utils.Bool(!site["storage_enabled"].(bool)), + } if v, ok := site["name"].(string); ok { expanded.SiteName = &v @@ -310,6 +337,24 @@ func flattenDirectlineSites(input []botservice.DirectLineSite) []interface{} { site["name"] = *v } + userUploadEnabled := true + if v := element.IsBlockUserUploadEnabled; v != nil { + userUploadEnabled = !*v + } + site["user_upload_enabled"] = userUploadEnabled + + var endpointParametersEnabled bool + if v := element.IsEndpointParametersEnabled; v != nil { + endpointParametersEnabled = *v + } + site["endpoint_parameters_enabled"] = endpointParametersEnabled + + storageEnabled := true + if v := element.IsNoStorageEnabled; v != nil { + storageEnabled = !*v + } + site["storage_enabled"] = storageEnabled + if element.Key != nil { site["key"] = *element.Key } diff --git a/internal/services/bot/bot_channel_directline_resource_test.go b/internal/services/bot/bot_channel_directline_resource_test.go index edd733d3d55e..2461f9d4fdc6 100644 --- a/internal/services/bot/bot_channel_directline_resource_test.go +++ b/internal/services/bot/bot_channel_directline_resource_test.go @@ -116,13 +116,26 @@ resource "azurerm_bot_channel_directline" "test" { bot_name = "${azurerm_bot_channels_registration.test.name}" location = "${azurerm_bot_channels_registration.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" + site { - name = "test" + name = "test1" enabled = true v1_allowed = true v3_allowed = true enhanced_authentication_enabled = true trusted_origins = ["https://example.com"] + user_upload_enabled = false + endpoint_parameters_enabled = true + storage_enabled = false + } + + site { + name = "test2" + enabled = true + enhanced_authentication_enabled = false + user_upload_enabled = true + endpoint_parameters_enabled = false + storage_enabled = true } } `, BotChannelsRegistrationResource{}.basicConfig(data)) diff --git a/website/docs/r/bot_channel_directline.html.markdown b/website/docs/r/bot_channel_directline.html.markdown index d0bc738a3232..c97d9e82df99 100644 --- a/website/docs/r/bot_channel_directline.html.markdown +++ b/website/docs/r/bot_channel_directline.html.markdown @@ -58,8 +58,14 @@ A `site` block has the following properties: * `name` - (Required) The name of the site +* `user_upload_enabled` - (Optional) Is the user upload enabled for this site? Defaults to `true`. + * `enabled` - (Optional) Enables/Disables this site. Enabled by default Defaults to `true`. +* `endpoint_parameters_enabled` - (Optional) Is the endpoint parameters enabled for this site? + +* `storage_enabled` - (Optional) Is the storage site enabled for detailed logging? Defaults to `true`. + * `v1_allowed` - (Optional) Enables v1 of the Directline protocol for this site. Enabled by default Defaults to `true`. * `v3_allowed` - (Optional) Enables v3 of the Directline protocol for this site. Enabled by default Defaults to `true`. From ec6294e25cbe2ebdc260593de1732b1cacad2850 Mon Sep 17 00:00:00 2001 From: magodo Date: Tue, 19 Sep 2023 18:41:17 +0800 Subject: [PATCH 232/336] Update CHANGELOG.md for #23149 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2327d1476634..04c3b8d900ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ENHANCEMENTS: * dependencies: downgrading to `v1.12.5` of `github.com/rickb777/date` [GH-23296] * `azurerm_container_app` - add support for scale rules [GH-23294] +* `azurerm_bot_channel_directline` - add support for `user_upload_enabled`, `endpoint_parameters_enabled` and `storage_enabled` [GH-23149] BUG FIXES: From 1063c0f1c8eafab52e6d5272ed07ada3a40d8855 Mon Sep 17 00:00:00 2001 From: Elena Xin <39109137+sinbai@users.noreply.github.com> Date: Tue, 19 Sep 2023 18:46:28 +0800 Subject: [PATCH 233/336] New Resource : `azurerm_arc_resource_bridge_appliance` (#23108) * support new resource for resource connector RP * run make generate * update code * update code * remove version * update code * update code --- .github/labeler-issue-triage.yml | 3 + .github/labeler-pull-request-triage.yml | 3 + .teamcity/components/generated/services.kt | 1 + internal/clients/client.go | 5 + internal/provider/services.go | 2 + .../arc_resource_bridge_appliance_resource.go | 276 ++++++++++++++++++ ...resource_bridge_appliance_resource_test.go | 207 +++++++++++++ .../arcresourcebridge/client/client.go | 24 ++ .../arcresourcebridge/registration.go | 33 +++ .../2022-10-27/appliances/README.md | 184 ++++++++++++ .../2022-10-27/appliances/client.go | 26 ++ .../2022-10-27/appliances/constants.go | 264 +++++++++++++++++ .../2022-10-27/appliances/id_appliance.go | 127 ++++++++ .../2022-10-27/appliances/id_upgradegraph.go | 140 +++++++++ .../appliances/method_createorupdate.go | 74 +++++ .../2022-10-27/appliances/method_delete.go | 70 +++++ .../2022-10-27/appliances/method_get.go | 51 ++++ .../appliances/method_gettelemetryconfig.go | 53 ++++ .../appliances/method_getupgradegraph.go | 51 ++++ .../appliances/method_listbyresourcegroup.go | 90 ++++++ .../appliances/method_listbysubscription.go | 90 ++++++ .../method_listclusterusercredential.go | 52 ++++ .../2022-10-27/appliances/method_listkeys.go | 80 +++++ .../2022-10-27/appliances/method_update.go | 55 ++++ .../2022-10-27/appliances/model_appliance.go | 20 ++ .../model_appliancecredentialkubeconfig.go | 9 + ...model_appliancegettelemetryconfigresult.go | 8 + .../model_appliancelistcredentialresults.go | 9 + .../model_appliancelistkeysresults.go | 10 + .../appliances/model_applianceproperties.go | 13 + ...appliancepropertiesinfrastructureconfig.go | 8 + .../appliances/model_artifactprofile.go | 8 + .../model_hybridconnectionconfig.go | 11 + .../appliances/model_patchableappliance.go | 8 + .../2022-10-27/appliances/model_sshkey.go | 12 + .../appliances/model_supportedversion.go | 9 + .../model_supportedversioncatalogversion.go | 10 + ...odel_supportedversioncatalogversiondata.go | 11 + .../model_supportedversionmetadata.go | 8 + .../appliances/model_upgradegraph.go | 10 + .../model_upgradegraphproperties.go | 9 + .../2022-10-27/appliances/predicates.go | 32 ++ .../2022-10-27/appliances/version.go | 12 + vendor/modules.txt | 1 + website/allowed-subcategories | 1 + ...rc_resource_bridge_appliance.html.markdown | 86 ++++++ 46 files changed, 2266 insertions(+) create mode 100644 internal/services/arcresourcebridge/arc_resource_bridge_appliance_resource.go create mode 100644 internal/services/arcresourcebridge/arc_resource_bridge_appliance_resource_test.go create mode 100644 internal/services/arcresourcebridge/client/client.go create mode 100644 internal/services/arcresourcebridge/registration.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/README.md create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/constants.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/id_appliance.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/id_upgradegraph.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_createorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_delete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_get.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_gettelemetryconfig.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_getupgradegraph.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listbyresourcegroup.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listbysubscription.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listclusterusercredential.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listkeys.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_update.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliance.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancecredentialkubeconfig.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancegettelemetryconfigresult.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancelistcredentialresults.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancelistkeysresults.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_applianceproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancepropertiesinfrastructureconfig.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_artifactprofile.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_hybridconnectionconfig.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_patchableappliance.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_sshkey.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversion.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversioncatalogversion.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversioncatalogversiondata.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversionmetadata.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_upgradegraph.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_upgradegraphproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/predicates.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/version.go create mode 100644 website/docs/r/arc_resource_bridge_appliance.html.markdown diff --git a/.github/labeler-issue-triage.yml b/.github/labeler-issue-triage.yml index b032c006bc22..3662c34e4bb7 100644 --- a/.github/labeler-issue-triage.yml +++ b/.github/labeler-issue-triage.yml @@ -30,6 +30,9 @@ service/app-service: service/application-insights: - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_application_insights((.|\n)*)###' +service/arc-resource-bridge: + - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_arc_resource_bridge_appliance((.|\n)*)###' + service/attestation: - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_attestation_provider((.|\n)*)###' diff --git a/.github/labeler-pull-request-triage.yml b/.github/labeler-pull-request-triage.yml index 70376d840c31..3785237072d8 100644 --- a/.github/labeler-pull-request-triage.yml +++ b/.github/labeler-pull-request-triage.yml @@ -30,6 +30,9 @@ service/app-service: service/application-insights: - internal/services/applicationinsights/**/* +service/arc-resource-bridge: + - internal/services/arcresourcebridge/**/* + service/attestation: - internal/services/attestation/**/* diff --git a/.teamcity/components/generated/services.kt b/.teamcity/components/generated/services.kt index 3091b615091b..00d9e83827a3 100644 --- a/.teamcity/components/generated/services.kt +++ b/.teamcity/components/generated/services.kt @@ -10,6 +10,7 @@ var services = mapOf( "appconfiguration" to "App Configuration", "appservice" to "AppService", "applicationinsights" to "Application Insights", + "arcresourcebridge" to "Arc Resource Bridge", "arckubernetes" to "ArcKubernetes", "attestation" to "Attestation", "authorization" to "Authorization", diff --git a/internal/clients/client.go b/internal/clients/client.go index a62564cc3b3f..f02c68a88aa4 100644 --- a/internal/clients/client.go +++ b/internal/clients/client.go @@ -30,6 +30,7 @@ import ( applicationInsights "github.com/hashicorp/terraform-provider-azurerm/internal/services/applicationinsights/client" appService "github.com/hashicorp/terraform-provider-azurerm/internal/services/appservice/client" arckubernetes "github.com/hashicorp/terraform-provider-azurerm/internal/services/arckubernetes/client" + arcResourceBridge "github.com/hashicorp/terraform-provider-azurerm/internal/services/arcresourcebridge/client" attestation "github.com/hashicorp/terraform-provider-azurerm/internal/services/attestation/client" authorization "github.com/hashicorp/terraform-provider-azurerm/internal/services/authorization/client" automanage "github.com/hashicorp/terraform-provider-azurerm/internal/services/automanage/client" @@ -162,6 +163,7 @@ type Client struct { AppPlatform *appPlatform.Client AppService *appService.Client ArcKubernetes *arckubernetes.Client + ArcResourceBridge *arcResourceBridge.Client Attestation *attestation.Client Authorization *authorization.Client Automanage *automanage.Client @@ -314,6 +316,9 @@ func (client *Client) Build(ctx context.Context, o *common.ClientOptions) error if client.ArcKubernetes, err = arckubernetes.NewClient(o); err != nil { return fmt.Errorf("building clients for ArcKubernetes: %+v", err) } + if client.ArcResourceBridge, err = arcResourceBridge.NewClient(o); err != nil { + return fmt.Errorf("building clients for Arc Resource Bridge: %+v", err) + } if client.Attestation, err = attestation.NewClient(o); err != nil { return fmt.Errorf("building clients for Attestation: %+v", err) } diff --git a/internal/provider/services.go b/internal/provider/services.go index d5bb4c99babe..251ee20d930b 100644 --- a/internal/provider/services.go +++ b/internal/provider/services.go @@ -13,6 +13,7 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/internal/services/applicationinsights" "github.com/hashicorp/terraform-provider-azurerm/internal/services/appservice" "github.com/hashicorp/terraform-provider-azurerm/internal/services/arckubernetes" + "github.com/hashicorp/terraform-provider-azurerm/internal/services/arcresourcebridge" "github.com/hashicorp/terraform-provider-azurerm/internal/services/attestation" "github.com/hashicorp/terraform-provider-azurerm/internal/services/authorization" "github.com/hashicorp/terraform-provider-azurerm/internal/services/automanage" @@ -139,6 +140,7 @@ func SupportedTypedServices() []sdk.TypedServiceRegistration { applicationinsights.Registration{}, appservice.Registration{}, arckubernetes.Registration{}, + arcresourcebridge.Registration{}, authorization.Registration{}, automanage.Registration{}, automation.Registration{}, diff --git a/internal/services/arcresourcebridge/arc_resource_bridge_appliance_resource.go b/internal/services/arcresourcebridge/arc_resource_bridge_appliance_resource.go new file mode 100644 index 000000000000..997d31885379 --- /dev/null +++ b/internal/services/arcresourcebridge/arc_resource_bridge_appliance_resource.go @@ -0,0 +1,276 @@ +package arcresourcebridge + +import ( + "context" + "fmt" + "regexp" + "time" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" + "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" + "github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" +) + +var _ sdk.Resource = ArcResourceBridgeApplianceResource{} + +type ArcResourceBridgeApplianceResource struct{} + +type ApplianceModel struct { + Name string `tfschema:"name"` + ResourceGroupName string `tfschema:"resource_group_name"` + Location string `tfschema:"location"` + Distro appliances.Distro `tfschema:"distro"` + Identity []identity.ModelSystemAssigned `tfschema:"identity"` + Provider appliances.Provider `tfschema:"infrastructure_provider"` + PublicKeyBase64 string `tfschema:"public_key_base64"` + Tags map[string]interface{} `tfschema:"tags"` +} + +func (r ArcResourceBridgeApplianceResource) Arguments() map[string]*schema.Schema { + return map[string]*schema.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.All( + validation.StringLenBetween(1, 260), + validation.StringMatch(regexp.MustCompile(`[^+#%&'?/,%\\]+$`), "any of '+', '#', '%', '&', ''', '?', '/', ',', '%', '&', '\\', are not allowed"), + ), + }, + + "resource_group_name": commonschema.ResourceGroupName(), + + "location": commonschema.Location(), + + "distro": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringInSlice([]string{ + string(appliances.DistroAKSEdge), + }, false), + }, + + "identity": commonschema.SystemAssignedIdentityRequiredForceNew(), + + "infrastructure_provider": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.StringInSlice([]string{ + string(appliances.ProviderHCI), + string(appliances.ProviderSCVMM), + string(appliances.ProviderVMWare), + }, false), + }, + + "public_key_base64": { + Type: pluginsdk.TypeString, + Optional: true, + ForceNew: true, + ValidateFunc: validate.Base64EncodedString, + }, + + "tags": commonschema.Tags(), + } +} + +func (r ArcResourceBridgeApplianceResource) Attributes() map[string]*schema.Schema { + return map[string]*pluginsdk.Schema{} +} + +func (r ArcResourceBridgeApplianceResource) ModelObject() interface{} { + return &ArcResourceBridgeApplianceResource{} +} + +func (r ArcResourceBridgeApplianceResource) ResourceType() string { + return "azurerm_arc_resource_bridge_appliance" +} + +func (r ArcResourceBridgeApplianceResource) Create() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 60 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + var model ApplianceModel + if err := metadata.Decode(&model); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + client := metadata.Client.ArcResourceBridge.AppliancesClient + subscriptionId := metadata.Client.Account.SubscriptionId + + id := appliances.NewApplianceID(subscriptionId, model.ResourceGroupName, model.Name) + existing, err := client.Get(ctx, id) + if err != nil && !response.WasNotFound(existing.HttpResponse) { + return fmt.Errorf("checking for presence of existing %s: %+v", id, err) + } + if !response.WasNotFound(existing.HttpResponse) { + return metadata.ResourceRequiresImport(r.ResourceType(), id) + } + + identity, err := identity.ExpandSystemAssignedFromModel(model.Identity) + if err != nil { + return err + } + + parameters := appliances.Appliance{ + Location: location.Normalize(model.Location), + Properties: &appliances.ApplianceProperties{ + Distro: pointer.To(model.Distro), + InfrastructureConfig: &appliances.AppliancePropertiesInfrastructureConfig{ + Provider: pointer.To(model.Provider), + }, + }, + Tags: tags.Expand(model.Tags), + } + + parameters.Identity = identity + + if err := client.CreateOrUpdateThenPoll(ctx, id, parameters); err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + + // since the public key could not be set during creation, update after creation + if model.PublicKeyBase64 != "" { + parameters.Properties.PublicKey = pointer.To(model.PublicKeyBase64) + + if err := client.CreateOrUpdateThenPoll(ctx, id, parameters); err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + } + + metadata.SetID(id) + return nil + }, + } +} + +func (r ArcResourceBridgeApplianceResource) Update() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.ArcResourceBridge.AppliancesClient + + id, err := appliances.ParseApplianceID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + metadata.Logger.Infof("Decoding state for %s", *id) + var model ApplianceModel + if err := metadata.Decode(&model); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + resp, err := client.Get(ctx, *id) + if err != nil { + return fmt.Errorf("retrieving %s: %+v", *id, err) + } + + parameters := resp.Model + if parameters == nil { + return fmt.Errorf("retrieving %s: model was nil", *id) + } + + if metadata.ResourceData.HasChange("identity") { + identity, err := identity.ExpandSystemAssignedFromModel(model.Identity) + if err != nil { + return err + } + + parameters.Identity = identity + } + + if metadata.ResourceData.HasChange("tags") { + parameters.Tags = tags.Expand(model.Tags) + } + + if metadata.ResourceData.HasChanges("public_key_base64") { + if parameters.Properties == nil { + parameters.Properties = &appliances.ApplianceProperties{} + } + parameters.Properties.PublicKey = pointer.To(model.PublicKeyBase64) + } + + if err := client.CreateOrUpdateThenPoll(ctx, *id, *parameters); err != nil { + return fmt.Errorf("updating %s: %+v", id, err) + } + + return nil + }, + } +} + +func (r ArcResourceBridgeApplianceResource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 5 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + id, err := appliances.ParseApplianceID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + client := metadata.Client.ArcResourceBridge.AppliancesClient + + resp, err := client.Get(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return metadata.MarkAsGone(*id) + } + return fmt.Errorf("retrieving %q: %+v", *id, err) + } + + state := ApplianceModel{ + Name: id.ApplianceName, + ResourceGroupName: id.ResourceGroupName, + } + + if model := resp.Model; model != nil { + state.Location = location.Normalize(model.Location) + state.Identity = identity.FlattenSystemAssignedToModel(model.Identity) + state.Tags = tags.Flatten(model.Tags) + + if props := model.Properties; props != nil { + state.Distro = pointer.From(props.Distro) + state.PublicKeyBase64 = pointer.From(props.PublicKey) + + if infraConfig := props.InfrastructureConfig; infraConfig != nil { + state.Provider = pointer.From(infraConfig.Provider) + } + } + } + return metadata.Encode(&state) + }, + } +} + +func (r ArcResourceBridgeApplianceResource) Delete() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.ArcResourceBridge.AppliancesClient + id, err := appliances.ParseApplianceID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + if err := client.DeleteThenPoll(ctx, *id); err != nil { + return fmt.Errorf("deleting %s: %+v", *id, err) + } + + return nil + }, + } +} + +func (r ArcResourceBridgeApplianceResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return appliances.ValidateApplianceID +} diff --git a/internal/services/arcresourcebridge/arc_resource_bridge_appliance_resource_test.go b/internal/services/arcresourcebridge/arc_resource_bridge_appliance_resource_test.go new file mode 100644 index 000000000000..e332808c1952 --- /dev/null +++ b/internal/services/arcresourcebridge/arc_resource_bridge_appliance_resource_test.go @@ -0,0 +1,207 @@ +package arcresourcebridge_test + +import ( + "context" + cryptoRand "crypto/rand" + "crypto/rsa" + "crypto/x509" + "encoding/base64" + "fmt" + "testing" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" +) + +type ArcResourceBridgeApplianceResource struct{} + +func TestAccArcResourceBridgeAppliance_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_arc_resource_bridge_appliance", "test") + r := ArcResourceBridgeApplianceResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccArcResourceBridgeAppliance_update(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_arc_resource_bridge_appliance", "test") + r := ArcResourceBridgeApplianceResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.update(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccArcResourceBridgeAppliance_complete(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_arc_resource_bridge_appliance", "test") + r := ArcResourceBridgeApplianceResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.complete(data, r.generatePublicKey()), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccArcResourceBridgeAppliance_requiresImport(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_arc_resource_bridge_appliance", "test") + r := ArcResourceBridgeApplianceResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_arc_resource_bridge_appliance"), + }, + }) +} + +func (r ArcResourceBridgeApplianceResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { + id, err := appliances.ParseApplianceID(state.ID) + if err != nil { + return nil, err + } + + client := clients.ArcResourceBridge.AppliancesClient + resp, err := client.Get(ctx, *id) + + if err != nil { + return nil, fmt.Errorf("retrieving %q: %+v", *id, err) + } + + return pointer.To(resp.Model != nil), nil +} + +func (r ArcResourceBridgeApplianceResource) basic(data acceptance.TestData) string { + return fmt.Sprintf(` + +%s + +resource "azurerm_arc_resource_bridge_appliance" "test" { + name = "acctestrcapplicance-%[2]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + distro = "AKSEdge" + infrastructure_provider = "VMWare" + identity { + type = "SystemAssigned" + } +} +`, r.template(data), data.RandomInteger) +} + +func (r ArcResourceBridgeApplianceResource) update(data acceptance.TestData) string { + return fmt.Sprintf(` + +%s + +resource "azurerm_arc_resource_bridge_appliance" "test" { + name = "acctestrcapplicance-%[2]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + distro = "AKSEdge" + infrastructure_provider = "VMWare" + identity { + type = "SystemAssigned" + } + tags = { + "hello" = "world" + } +} +`, r.template(data), data.RandomInteger) +} + +func (r ArcResourceBridgeApplianceResource) complete(data acceptance.TestData, publicKey string) string { + return fmt.Sprintf(` + +%s + +resource "azurerm_arc_resource_bridge_appliance" "test" { + name = "acctestrcapplicance-%[2]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + distro = "AKSEdge" + infrastructure_provider = "VMWare" + public_key_base64 = "%[3]s" + identity { + type = "SystemAssigned" + } + tags = { + "hello" = "world" + } +} +`, r.template(data), data.RandomInteger, publicKey) +} + +func (r ArcResourceBridgeApplianceResource) requiresImport(data acceptance.TestData) string { + return fmt.Sprintf(` +%[1]s +resource "azurerm_arc_resource_bridge_appliance" "import" { + name = azurerm_arc_resource_bridge_appliance.test.name + location = azurerm_arc_resource_bridge_appliance.test.location + resource_group_name = azurerm_arc_resource_bridge_appliance.test.resource_group_name + distro = azurerm_arc_resource_bridge_appliance.test.distro + infrastructure_provider = azurerm_arc_resource_bridge_appliance.test.infrastructure_provider + identity { + type = "SystemAssigned" + } +} +`, r.basic(data), data.RandomInteger) +} + +func (r ArcResourceBridgeApplianceResource) template(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestrg-appliances-%[1]d" + location = "%[2]s" +} +`, data.RandomInteger, data.Locations.Primary) +} + +func (r ArcResourceBridgeApplianceResource) generatePublicKey() string { + privateKey, err := rsa.GenerateKey(cryptoRand.Reader, 4096) + if err != nil { + return "" + } + return base64.StdEncoding.EncodeToString(x509.MarshalPKCS1PublicKey(&privateKey.PublicKey)) +} diff --git a/internal/services/arcresourcebridge/client/client.go b/internal/services/arcresourcebridge/client/client.go new file mode 100644 index 000000000000..1da72a063643 --- /dev/null +++ b/internal/services/arcresourcebridge/client/client.go @@ -0,0 +1,24 @@ +package client + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances" + "github.com/hashicorp/terraform-provider-azurerm/internal/common" +) + +type Client struct { + AppliancesClient *appliances.AppliancesClient +} + +func NewClient(o *common.ClientOptions) (*Client, error) { + appliancesClient, err := appliances.NewAppliancesClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building appliances Client: %+v", err) + } + o.Configure(appliancesClient.Client, o.Authorizers.ResourceManager) + + return &Client{ + AppliancesClient: appliancesClient, + }, nil +} diff --git a/internal/services/arcresourcebridge/registration.go b/internal/services/arcresourcebridge/registration.go new file mode 100644 index 000000000000..fef3dfe3f895 --- /dev/null +++ b/internal/services/arcresourcebridge/registration.go @@ -0,0 +1,33 @@ +package arcresourcebridge + +import ( + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" +) + +var _ sdk.TypedServiceRegistrationWithAGitHubLabel = Registration{} + +type Registration struct{} + +func (r Registration) AssociatedGitHubLabel() string { + return "service/arc-resource-bridge" +} + +func (r Registration) Name() string { + return "Arc Resource Bridge" +} + +func (r Registration) DataSources() []sdk.DataSource { + return []sdk.DataSource{} +} + +func (r Registration) Resources() []sdk.Resource { + return []sdk.Resource{ + ArcResourceBridgeApplianceResource{}, + } +} + +func (r Registration) WebsiteCategories() []string { + return []string{ + "Arc Resource Bridge", + } +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/README.md new file mode 100644 index 000000000000..8d17fd3e3757 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/README.md @@ -0,0 +1,184 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances` Documentation + +The `appliances` SDK allows for interaction with the Azure Resource Manager Service `resourceconnector` (API Version `2022-10-27`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances" +``` + + +### Client Initialization + +```go +client := appliances.NewAppliancesClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `AppliancesClient.CreateOrUpdate` + +```go +ctx := context.TODO() +id := appliances.NewApplianceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "applianceValue") + +payload := appliances.Appliance{ + // ... +} + + +if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppliancesClient.Delete` + +```go +ctx := context.TODO() +id := appliances.NewApplianceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "applianceValue") + +if err := client.DeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppliancesClient.Get` + +```go +ctx := context.TODO() +id := appliances.NewApplianceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "applianceValue") + +read, err := client.Get(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppliancesClient.GetTelemetryConfig` + +```go +ctx := context.TODO() +id := appliances.NewSubscriptionID("12345678-1234-9876-4563-123456789012") + +read, err := client.GetTelemetryConfig(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppliancesClient.GetUpgradeGraph` + +```go +ctx := context.TODO() +id := appliances.NewUpgradeGraphID("12345678-1234-9876-4563-123456789012", "example-resource-group", "applianceValue", "upgradeGraphValue") + +read, err := client.GetUpgradeGraph(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppliancesClient.ListByResourceGroup` + +```go +ctx := context.TODO() +id := appliances.NewResourceGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group") + +// alternatively `client.ListByResourceGroup(ctx, id)` can be used to do batched pagination +items, err := client.ListByResourceGroupComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppliancesClient.ListBySubscription` + +```go +ctx := context.TODO() +id := appliances.NewSubscriptionID("12345678-1234-9876-4563-123456789012") + +// alternatively `client.ListBySubscription(ctx, id)` can be used to do batched pagination +items, err := client.ListBySubscriptionComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppliancesClient.ListClusterUserCredential` + +```go +ctx := context.TODO() +id := appliances.NewApplianceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "applianceValue") + +read, err := client.ListClusterUserCredential(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppliancesClient.ListKeys` + +```go +ctx := context.TODO() +id := appliances.NewApplianceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "applianceValue") + +read, err := client.ListKeys(ctx, id, appliances.DefaultListKeysOperationOptions()) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppliancesClient.Update` + +```go +ctx := context.TODO() +id := appliances.NewApplianceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "applianceValue") + +payload := appliances.PatchableAppliance{ + // ... +} + + +read, err := client.Update(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/client.go new file mode 100644 index 000000000000..c909b4585ece --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/client.go @@ -0,0 +1,26 @@ +package appliances + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AppliancesClient struct { + Client *resourcemanager.Client +} + +func NewAppliancesClientWithBaseURI(sdkApi sdkEnv.Api) (*AppliancesClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "appliances", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating AppliancesClient: %+v", err) + } + + return &AppliancesClient{ + Client: client, + }, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/constants.go new file mode 100644 index 000000000000..3b8487515b5b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/constants.go @@ -0,0 +1,264 @@ +package appliances + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AccessProfileType string + +const ( + AccessProfileTypeClusterCustomerUser AccessProfileType = "clusterCustomerUser" + AccessProfileTypeClusterUser AccessProfileType = "clusterUser" +) + +func PossibleValuesForAccessProfileType() []string { + return []string{ + string(AccessProfileTypeClusterCustomerUser), + string(AccessProfileTypeClusterUser), + } +} + +func (s *AccessProfileType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseAccessProfileType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseAccessProfileType(input string) (*AccessProfileType, error) { + vals := map[string]AccessProfileType{ + "clustercustomeruser": AccessProfileTypeClusterCustomerUser, + "clusteruser": AccessProfileTypeClusterUser, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := AccessProfileType(input) + return &out, nil +} + +type Distro string + +const ( + DistroAKSEdge Distro = "AKSEdge" +) + +func PossibleValuesForDistro() []string { + return []string{ + string(DistroAKSEdge), + } +} + +func (s *Distro) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseDistro(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseDistro(input string) (*Distro, error) { + vals := map[string]Distro{ + "aksedge": DistroAKSEdge, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Distro(input) + return &out, nil +} + +type Provider string + +const ( + ProviderHCI Provider = "HCI" + ProviderSCVMM Provider = "SCVMM" + ProviderVMWare Provider = "VMWare" +) + +func PossibleValuesForProvider() []string { + return []string{ + string(ProviderHCI), + string(ProviderSCVMM), + string(ProviderVMWare), + } +} + +func (s *Provider) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseProvider(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseProvider(input string) (*Provider, error) { + vals := map[string]Provider{ + "hci": ProviderHCI, + "scvmm": ProviderSCVMM, + "vmware": ProviderVMWare, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Provider(input) + return &out, nil +} + +type Status string + +const ( + StatusConnected Status = "Connected" + StatusConnecting Status = "Connecting" + StatusETCDSnapshotFailed Status = "ETCDSnapshotFailed" + StatusImageDeprovisioning Status = "ImageDeprovisioning" + StatusImageDownloaded Status = "ImageDownloaded" + StatusImageDownloading Status = "ImageDownloading" + StatusImagePending Status = "ImagePending" + StatusImageProvisioned Status = "ImageProvisioned" + StatusImageProvisioning Status = "ImageProvisioning" + StatusImageUnknown Status = "ImageUnknown" + StatusNone Status = "None" + StatusOffline Status = "Offline" + StatusPostUpgrade Status = "PostUpgrade" + StatusPreUpgrade Status = "PreUpgrade" + StatusPreparingForUpgrade Status = "PreparingForUpgrade" + StatusRunning Status = "Running" + StatusUpdatingCAPI Status = "UpdatingCAPI" + StatusUpdatingCloudOperator Status = "UpdatingCloudOperator" + StatusUpdatingCluster Status = "UpdatingCluster" + StatusUpgradeClusterExtensionFailedToDelete Status = "UpgradeClusterExtensionFailedToDelete" + StatusUpgradeComplete Status = "UpgradeComplete" + StatusUpgradeFailed Status = "UpgradeFailed" + StatusUpgradePrerequisitesCompleted Status = "UpgradePrerequisitesCompleted" + StatusUpgradingKVAIO Status = "UpgradingKVAIO" + StatusValidating Status = "Validating" + StatusValidatingETCDHealth Status = "ValidatingETCDHealth" + StatusValidatingImageDownload Status = "ValidatingImageDownload" + StatusValidatingImageUpload Status = "ValidatingImageUpload" + StatusValidatingSFSConnectivity Status = "ValidatingSFSConnectivity" + StatusWaitingForCloudOperator Status = "WaitingForCloudOperator" + StatusWaitingForHeartbeat Status = "WaitingForHeartbeat" + StatusWaitingForKVAIO Status = "WaitingForKVAIO" +) + +func PossibleValuesForStatus() []string { + return []string{ + string(StatusConnected), + string(StatusConnecting), + string(StatusETCDSnapshotFailed), + string(StatusImageDeprovisioning), + string(StatusImageDownloaded), + string(StatusImageDownloading), + string(StatusImagePending), + string(StatusImageProvisioned), + string(StatusImageProvisioning), + string(StatusImageUnknown), + string(StatusNone), + string(StatusOffline), + string(StatusPostUpgrade), + string(StatusPreUpgrade), + string(StatusPreparingForUpgrade), + string(StatusRunning), + string(StatusUpdatingCAPI), + string(StatusUpdatingCloudOperator), + string(StatusUpdatingCluster), + string(StatusUpgradeClusterExtensionFailedToDelete), + string(StatusUpgradeComplete), + string(StatusUpgradeFailed), + string(StatusUpgradePrerequisitesCompleted), + string(StatusUpgradingKVAIO), + string(StatusValidating), + string(StatusValidatingETCDHealth), + string(StatusValidatingImageDownload), + string(StatusValidatingImageUpload), + string(StatusValidatingSFSConnectivity), + string(StatusWaitingForCloudOperator), + string(StatusWaitingForHeartbeat), + string(StatusWaitingForKVAIO), + } +} + +func (s *Status) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseStatus(input string) (*Status, error) { + vals := map[string]Status{ + "connected": StatusConnected, + "connecting": StatusConnecting, + "etcdsnapshotfailed": StatusETCDSnapshotFailed, + "imagedeprovisioning": StatusImageDeprovisioning, + "imagedownloaded": StatusImageDownloaded, + "imagedownloading": StatusImageDownloading, + "imagepending": StatusImagePending, + "imageprovisioned": StatusImageProvisioned, + "imageprovisioning": StatusImageProvisioning, + "imageunknown": StatusImageUnknown, + "none": StatusNone, + "offline": StatusOffline, + "postupgrade": StatusPostUpgrade, + "preupgrade": StatusPreUpgrade, + "preparingforupgrade": StatusPreparingForUpgrade, + "running": StatusRunning, + "updatingcapi": StatusUpdatingCAPI, + "updatingcloudoperator": StatusUpdatingCloudOperator, + "updatingcluster": StatusUpdatingCluster, + "upgradeclusterextensionfailedtodelete": StatusUpgradeClusterExtensionFailedToDelete, + "upgradecomplete": StatusUpgradeComplete, + "upgradefailed": StatusUpgradeFailed, + "upgradeprerequisitescompleted": StatusUpgradePrerequisitesCompleted, + "upgradingkvaio": StatusUpgradingKVAIO, + "validating": StatusValidating, + "validatingetcdhealth": StatusValidatingETCDHealth, + "validatingimagedownload": StatusValidatingImageDownload, + "validatingimageupload": StatusValidatingImageUpload, + "validatingsfsconnectivity": StatusValidatingSFSConnectivity, + "waitingforcloudoperator": StatusWaitingForCloudOperator, + "waitingforheartbeat": StatusWaitingForHeartbeat, + "waitingforkvaio": StatusWaitingForKVAIO, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Status(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/id_appliance.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/id_appliance.go new file mode 100644 index 000000000000..c8eb093b3a03 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/id_appliance.go @@ -0,0 +1,127 @@ +package appliances + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ApplianceId{} + +// ApplianceId is a struct representing the Resource ID for a Appliance +type ApplianceId struct { + SubscriptionId string + ResourceGroupName string + ApplianceName string +} + +// NewApplianceID returns a new ApplianceId struct +func NewApplianceID(subscriptionId string, resourceGroupName string, applianceName string) ApplianceId { + return ApplianceId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + ApplianceName: applianceName, + } +} + +// ParseApplianceID parses 'input' into a ApplianceId +func ParseApplianceID(input string) (*ApplianceId, error) { + parser := resourceids.NewParserFromResourceIdType(ApplianceId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ApplianceId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ApplianceName, ok = parsed.Parsed["applianceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "applianceName", *parsed) + } + + return &id, nil +} + +// ParseApplianceIDInsensitively parses 'input' case-insensitively into a ApplianceId +// note: this method should only be used for API response data and not user input +func ParseApplianceIDInsensitively(input string) (*ApplianceId, error) { + parser := resourceids.NewParserFromResourceIdType(ApplianceId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ApplianceId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ApplianceName, ok = parsed.Parsed["applianceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "applianceName", *parsed) + } + + return &id, nil +} + +// ValidateApplianceID checks that 'input' can be parsed as a Appliance ID +func ValidateApplianceID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseApplianceID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Appliance ID +func (id ApplianceId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.ResourceConnector/appliances/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.ApplianceName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Appliance ID +func (id ApplianceId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftResourceConnector", "Microsoft.ResourceConnector", "Microsoft.ResourceConnector"), + resourceids.StaticSegment("staticAppliances", "appliances", "appliances"), + resourceids.UserSpecifiedSegment("applianceName", "applianceValue"), + } +} + +// String returns a human-readable description of this Appliance ID +func (id ApplianceId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Appliance Name: %q", id.ApplianceName), + } + return fmt.Sprintf("Appliance (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/id_upgradegraph.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/id_upgradegraph.go new file mode 100644 index 000000000000..02d88d9c97c1 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/id_upgradegraph.go @@ -0,0 +1,140 @@ +package appliances + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = UpgradeGraphId{} + +// UpgradeGraphId is a struct representing the Resource ID for a Upgrade Graph +type UpgradeGraphId struct { + SubscriptionId string + ResourceGroupName string + ApplianceName string + UpgradeGraphName string +} + +// NewUpgradeGraphID returns a new UpgradeGraphId struct +func NewUpgradeGraphID(subscriptionId string, resourceGroupName string, applianceName string, upgradeGraphName string) UpgradeGraphId { + return UpgradeGraphId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + ApplianceName: applianceName, + UpgradeGraphName: upgradeGraphName, + } +} + +// ParseUpgradeGraphID parses 'input' into a UpgradeGraphId +func ParseUpgradeGraphID(input string) (*UpgradeGraphId, error) { + parser := resourceids.NewParserFromResourceIdType(UpgradeGraphId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := UpgradeGraphId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ApplianceName, ok = parsed.Parsed["applianceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "applianceName", *parsed) + } + + if id.UpgradeGraphName, ok = parsed.Parsed["upgradeGraphName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "upgradeGraphName", *parsed) + } + + return &id, nil +} + +// ParseUpgradeGraphIDInsensitively parses 'input' case-insensitively into a UpgradeGraphId +// note: this method should only be used for API response data and not user input +func ParseUpgradeGraphIDInsensitively(input string) (*UpgradeGraphId, error) { + parser := resourceids.NewParserFromResourceIdType(UpgradeGraphId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := UpgradeGraphId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ApplianceName, ok = parsed.Parsed["applianceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "applianceName", *parsed) + } + + if id.UpgradeGraphName, ok = parsed.Parsed["upgradeGraphName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "upgradeGraphName", *parsed) + } + + return &id, nil +} + +// ValidateUpgradeGraphID checks that 'input' can be parsed as a Upgrade Graph ID +func ValidateUpgradeGraphID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseUpgradeGraphID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Upgrade Graph ID +func (id UpgradeGraphId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.ResourceConnector/appliances/%s/upgradeGraphs/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.ApplianceName, id.UpgradeGraphName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Upgrade Graph ID +func (id UpgradeGraphId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftResourceConnector", "Microsoft.ResourceConnector", "Microsoft.ResourceConnector"), + resourceids.StaticSegment("staticAppliances", "appliances", "appliances"), + resourceids.UserSpecifiedSegment("applianceName", "applianceValue"), + resourceids.StaticSegment("staticUpgradeGraphs", "upgradeGraphs", "upgradeGraphs"), + resourceids.UserSpecifiedSegment("upgradeGraphName", "upgradeGraphValue"), + } +} + +// String returns a human-readable description of this Upgrade Graph ID +func (id UpgradeGraphId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Appliance Name: %q", id.ApplianceName), + fmt.Sprintf("Upgrade Graph Name: %q", id.UpgradeGraphName), + } + return fmt.Sprintf("Upgrade Graph (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_createorupdate.go new file mode 100644 index 000000000000..3e65ee2b9d52 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_createorupdate.go @@ -0,0 +1,74 @@ +package appliances + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CreateOrUpdate ... +func (c AppliancesClient) CreateOrUpdate(ctx context.Context, id ApplianceId, input Appliance) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c AppliancesClient) CreateOrUpdateThenPoll(ctx context.Context, id ApplianceId, input Appliance) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_delete.go new file mode 100644 index 000000000000..cd9e813db837 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_delete.go @@ -0,0 +1,70 @@ +package appliances + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c AppliancesClient) Delete(ctx context.Context, id ApplianceId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c AppliancesClient) DeleteThenPoll(ctx context.Context, id ApplianceId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_get.go new file mode 100644 index 000000000000..72c719318306 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_get.go @@ -0,0 +1,51 @@ +package appliances + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Appliance +} + +// Get ... +func (c AppliancesClient) Get(ctx context.Context, id ApplianceId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_gettelemetryconfig.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_gettelemetryconfig.go new file mode 100644 index 000000000000..b379b7ee1150 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_gettelemetryconfig.go @@ -0,0 +1,53 @@ +package appliances + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetTelemetryConfigOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ApplianceGetTelemetryConfigResult +} + +// GetTelemetryConfig ... +func (c AppliancesClient) GetTelemetryConfig(ctx context.Context, id commonids.SubscriptionId) (result GetTelemetryConfigOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.ResourceConnector/telemetryconfig", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_getupgradegraph.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_getupgradegraph.go new file mode 100644 index 000000000000..8d8b3bee629b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_getupgradegraph.go @@ -0,0 +1,51 @@ +package appliances + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetUpgradeGraphOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *UpgradeGraph +} + +// GetUpgradeGraph ... +func (c AppliancesClient) GetUpgradeGraph(ctx context.Context, id UpgradeGraphId) (result GetUpgradeGraphOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listbyresourcegroup.go new file mode 100644 index 000000000000..f60ee84ed5be --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listbyresourcegroup.go @@ -0,0 +1,90 @@ +package appliances + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByResourceGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]Appliance +} + +type ListByResourceGroupCompleteResult struct { + Items []Appliance +} + +// ListByResourceGroup ... +func (c AppliancesClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.ResourceConnector/appliances", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]Appliance `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListByResourceGroupComplete retrieves all the results into a single object +func (c AppliancesClient) ListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (ListByResourceGroupCompleteResult, error) { + return c.ListByResourceGroupCompleteMatchingPredicate(ctx, id, ApplianceOperationPredicate{}) +} + +// ListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppliancesClient) ListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate ApplianceOperationPredicate) (result ListByResourceGroupCompleteResult, err error) { + items := make([]Appliance, 0) + + resp, err := c.ListByResourceGroup(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListByResourceGroupCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listbysubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listbysubscription.go new file mode 100644 index 000000000000..96e13e35442e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listbysubscription.go @@ -0,0 +1,90 @@ +package appliances + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListBySubscriptionOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]Appliance +} + +type ListBySubscriptionCompleteResult struct { + Items []Appliance +} + +// ListBySubscription ... +func (c AppliancesClient) ListBySubscription(ctx context.Context, id commonids.SubscriptionId) (result ListBySubscriptionOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.ResourceConnector/appliances", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]Appliance `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListBySubscriptionComplete retrieves all the results into a single object +func (c AppliancesClient) ListBySubscriptionComplete(ctx context.Context, id commonids.SubscriptionId) (ListBySubscriptionCompleteResult, error) { + return c.ListBySubscriptionCompleteMatchingPredicate(ctx, id, ApplianceOperationPredicate{}) +} + +// ListBySubscriptionCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppliancesClient) ListBySubscriptionCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate ApplianceOperationPredicate) (result ListBySubscriptionCompleteResult, err error) { + items := make([]Appliance, 0) + + resp, err := c.ListBySubscription(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListBySubscriptionCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listclusterusercredential.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listclusterusercredential.go new file mode 100644 index 000000000000..f78229f12866 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listclusterusercredential.go @@ -0,0 +1,52 @@ +package appliances + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListClusterUserCredentialOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ApplianceListCredentialResults +} + +// ListClusterUserCredential ... +func (c AppliancesClient) ListClusterUserCredential(ctx context.Context, id ApplianceId) (result ListClusterUserCredentialOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/listClusterUserCredential", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listkeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listkeys.go new file mode 100644 index 000000000000..934aad299db0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_listkeys.go @@ -0,0 +1,80 @@ +package appliances + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListKeysOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ApplianceListKeysResults +} + +type ListKeysOperationOptions struct { + ArtifactType *string +} + +func DefaultListKeysOperationOptions() ListKeysOperationOptions { + return ListKeysOperationOptions{} +} + +func (o ListKeysOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o ListKeysOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o ListKeysOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.ArtifactType != nil { + out.Append("artifactType", fmt.Sprintf("%v", *o.ArtifactType)) + } + return &out +} + +// ListKeys ... +func (c AppliancesClient) ListKeys(ctx context.Context, id ApplianceId, options ListKeysOperationOptions) (result ListKeysOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/listkeys", id.ID()), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_update.go new file mode 100644 index 000000000000..11f8e1c5d32f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/method_update.go @@ -0,0 +1,55 @@ +package appliances + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Appliance +} + +// Update ... +func (c AppliancesClient) Update(ctx context.Context, id ApplianceId, input PatchableAppliance) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliance.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliance.go new file mode 100644 index 000000000000..3bffef71c23d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliance.go @@ -0,0 +1,20 @@ +package appliances + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Appliance struct { + Id *string `json:"id,omitempty"` + Identity *identity.SystemAssigned `json:"identity,omitempty"` + Location string `json:"location"` + Name *string `json:"name,omitempty"` + Properties *ApplianceProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Tags *map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancecredentialkubeconfig.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancecredentialkubeconfig.go new file mode 100644 index 000000000000..ba91ca3f35d6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancecredentialkubeconfig.go @@ -0,0 +1,9 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplianceCredentialKubeconfig struct { + Name *AccessProfileType `json:"name,omitempty"` + Value *string `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancegettelemetryconfigresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancegettelemetryconfigresult.go new file mode 100644 index 000000000000..51784d4d3349 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancegettelemetryconfigresult.go @@ -0,0 +1,8 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplianceGetTelemetryConfigResult struct { + TelemetryInstrumentationKey *string `json:"telemetryInstrumentationKey,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancelistcredentialresults.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancelistcredentialresults.go new file mode 100644 index 000000000000..925fa8556442 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancelistcredentialresults.go @@ -0,0 +1,9 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplianceListCredentialResults struct { + HybridConnectionConfig *HybridConnectionConfig `json:"hybridConnectionConfig,omitempty"` + Kubeconfigs *[]ApplianceCredentialKubeconfig `json:"kubeconfigs,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancelistkeysresults.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancelistkeysresults.go new file mode 100644 index 000000000000..be869370361c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancelistkeysresults.go @@ -0,0 +1,10 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplianceListKeysResults struct { + ArtifactProfiles *map[string]ArtifactProfile `json:"artifactProfiles,omitempty"` + Kubeconfigs *[]ApplianceCredentialKubeconfig `json:"kubeconfigs,omitempty"` + SshKeys *map[string]SSHKey `json:"sshKeys,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_applianceproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_applianceproperties.go new file mode 100644 index 000000000000..ea46a7b2231b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_applianceproperties.go @@ -0,0 +1,13 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplianceProperties struct { + Distro *Distro `json:"distro,omitempty"` + InfrastructureConfig *AppliancePropertiesInfrastructureConfig `json:"infrastructureConfig,omitempty"` + ProvisioningState *string `json:"provisioningState,omitempty"` + PublicKey *string `json:"publicKey,omitempty"` + Status *Status `json:"status,omitempty"` + Version *string `json:"version,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancepropertiesinfrastructureconfig.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancepropertiesinfrastructureconfig.go new file mode 100644 index 000000000000..1301b177d046 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_appliancepropertiesinfrastructureconfig.go @@ -0,0 +1,8 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AppliancePropertiesInfrastructureConfig struct { + Provider *Provider `json:"provider,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_artifactprofile.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_artifactprofile.go new file mode 100644 index 000000000000..81f4faa9faeb --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_artifactprofile.go @@ -0,0 +1,8 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ArtifactProfile struct { + Endpoint *string `json:"endpoint,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_hybridconnectionconfig.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_hybridconnectionconfig.go new file mode 100644 index 000000000000..84aaa679766f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_hybridconnectionconfig.go @@ -0,0 +1,11 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type HybridConnectionConfig struct { + ExpirationTime *int64 `json:"expirationTime,omitempty"` + HybridConnectionName *string `json:"hybridConnectionName,omitempty"` + Relay *string `json:"relay,omitempty"` + Token *string `json:"token,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_patchableappliance.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_patchableappliance.go new file mode 100644 index 000000000000..2eed58c90089 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_patchableappliance.go @@ -0,0 +1,8 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PatchableAppliance struct { + Tags *map[string]string `json:"tags,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_sshkey.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_sshkey.go new file mode 100644 index 000000000000..682a1195a236 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_sshkey.go @@ -0,0 +1,12 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SSHKey struct { + Certificate *string `json:"certificate,omitempty"` + CreationTimeStamp *int64 `json:"creationTimeStamp,omitempty"` + ExpirationTimeStamp *int64 `json:"expirationTimeStamp,omitempty"` + PrivateKey *string `json:"privateKey,omitempty"` + PublicKey *string `json:"publicKey,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversion.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversion.go new file mode 100644 index 000000000000..1c4599e8f33e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversion.go @@ -0,0 +1,9 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SupportedVersion struct { + Metadata *SupportedVersionMetadata `json:"metadata,omitempty"` + Version *string `json:"version,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversioncatalogversion.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversioncatalogversion.go new file mode 100644 index 000000000000..a25fbf59ca00 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversioncatalogversion.go @@ -0,0 +1,10 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SupportedVersionCatalogVersion struct { + Data *SupportedVersionCatalogVersionData `json:"data,omitempty"` + Name *string `json:"name,omitempty"` + Namespace *string `json:"namespace,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversioncatalogversiondata.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversioncatalogversiondata.go new file mode 100644 index 000000000000..53a8fe553b44 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversioncatalogversiondata.go @@ -0,0 +1,11 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SupportedVersionCatalogVersionData struct { + Audience *string `json:"audience,omitempty"` + Catalog *string `json:"catalog,omitempty"` + Offer *string `json:"offer,omitempty"` + Version *string `json:"version,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversionmetadata.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversionmetadata.go new file mode 100644 index 000000000000..e6aab72141e9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_supportedversionmetadata.go @@ -0,0 +1,8 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SupportedVersionMetadata struct { + CatalogVersion *SupportedVersionCatalogVersion `json:"catalogVersion,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_upgradegraph.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_upgradegraph.go new file mode 100644 index 000000000000..aba238b13ca8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_upgradegraph.go @@ -0,0 +1,10 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpgradeGraph struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *UpgradeGraphProperties `json:"properties,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_upgradegraphproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_upgradegraphproperties.go new file mode 100644 index 000000000000..ba33a88bc712 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/model_upgradegraphproperties.go @@ -0,0 +1,9 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpgradeGraphProperties struct { + ApplianceVersion *string `json:"applianceVersion,omitempty"` + SupportedVersions *[]SupportedVersion `json:"supportedVersions,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/predicates.go new file mode 100644 index 000000000000..748f0086d851 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/predicates.go @@ -0,0 +1,32 @@ +package appliances + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplianceOperationPredicate struct { + Id *string + Location *string + Name *string + Type *string +} + +func (p ApplianceOperationPredicate) Matches(input Appliance) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Location != nil && *p.Location != input.Location { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/version.go new file mode 100644 index 000000000000..d8fc28f3da58 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances/version.go @@ -0,0 +1,12 @@ +package appliances + +import "fmt" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +const defaultApiVersion = "2022-10-27" + +func userAgent() string { + return fmt.Sprintf("hashicorp/go-azure-sdk/appliances/%s", defaultApiVersion) +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 30827ab7ac5f..40e4ac1e3be0 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -831,6 +831,7 @@ github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/da github.com/hashicorp/go-azure-sdk/resource-manager/redisenterprise/2023-07-01/redisenterprise github.com/hashicorp/go-azure-sdk/resource-manager/relay/2021-11-01/hybridconnections github.com/hashicorp/go-azure-sdk/resource-manager/relay/2021-11-01/namespaces +github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/managementlocks github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-10-01/deploymentscripts github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features diff --git a/website/allowed-subcategories b/website/allowed-subcategories index d0783de08aa6..cb7312f079d1 100644 --- a/website/allowed-subcategories +++ b/website/allowed-subcategories @@ -6,6 +6,7 @@ Analysis Services App Configuration App Service (Web Apps) Application Insights +Arc Resource Bridge ArcKubernetes Attestation Authorization diff --git a/website/docs/r/arc_resource_bridge_appliance.html.markdown b/website/docs/r/arc_resource_bridge_appliance.html.markdown new file mode 100644 index 000000000000..fe3c3bee875c --- /dev/null +++ b/website/docs/r/arc_resource_bridge_appliance.html.markdown @@ -0,0 +1,86 @@ +--- +subcategory: "Arc Resource Bridge" +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_arc_resource_bridge_appliance" +description: |- + Manages an Arc Resource Bridge Appliance. +--- + +# azurerm_arc_resource_bridge_appliance + +Manages an Arc Resource Bridge Appliance. + +## Example Usage + +```hcl +resource "azurerm_resource_group" "example" { + name = "example-resources" + location = "West Europe" +} + +resource "azurerm_arc_resource_bridge_appliance" "example" { + name = "example-appliance" + location = azurerm_resource_group.example.location + resource_group_name = azurerm_resource_group.example.name + distro = "AKSEdge" + infrastructure_provider = "VMWare" + + identity { + type = "SystemAssigned" + } + + tags = { + "hello" = "world" + } +} +``` + +## Arguments Reference + +The following arguments are supported: + +* `name` - (Required) The Name which should be used for this Arc Resource Bridge Appliance. Changing this forces a new resource to be created. + +* `resource_group_name` - (Required) Specifies the resource group where the Arc Resource Bridge Appliance exists. Changing this forces a new resource to be created. + +* `location` - (Required) The Azure Region where the Arc Resource Bridge Appliance should exist. Changing this forces a new resource to be created. + +* `distro` - (Required) Specifies a supported Fabric/Infrastructure for this Arc Resource Bridge Appliance. The possible value is `AKSEdge`. + +* `identity` - (Required) An `identity` block as defined below. Changing this forces a new resource to be created. + +* `infrastructure_provider`- (Required) The infrastructure provider about the connected Arc Resource Bridge Appliance. Possible values are `HCI`,`SCVMM` and `VMWare`. Changing this forces a new resource to be created. + +* `public_key_base64`- (Optional) The `public_key_base64` is an RSA public key in PKCS1 format encoded in base64. Changing this forces a new resource to be created. + +* `tags` - (Optional) A mapping of tags which should be assigned to the Arc Resource Bridge Appliance. + +--- + +An `identity` block supports the following: + +* `type` - (Required) Specifies the type of Managed Service Identity that should be configured on this Arc Resource Bridge Appliance. The only possible value is `SystemAssigned`. + + +## Attributes Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the Arc Resource Bridge Appliance. + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: + +* `create` - (Defaults to 60 minutes) Used when creating the Arc Resource Bridge Appliance. +* `read` - (Defaults to 5 minutes) Used when retrieving the Arc Resource Bridge Appliance. +* `update` - (Defaults to 30 minutes) Used when updating the Arc Resource Bridge Appliance. +* `delete` - (Defaults to 30 minutes) Used when deleting the Arc Resource Bridge Appliance. + +## Import + +Arc Resource Bridge Appliance can be imported using the `resource id`, e.g. + +```shell +terraform import azurerm_arc_resource_bridge_appliance.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ResourceConnector/appliances/appliancesExample +``` From 3159557b5fd7f7cbe992b183a2a169239a9e34e8 Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Tue, 19 Sep 2023 13:42:25 +0100 Subject: [PATCH 234/336] add zone_redundant_enabled property and tests (#23313) Co-authored-by: matt-lethargic --- .../container_app_environment_resource.go | 22 +++++++--- ...container_app_environment_resource_test.go | 40 +++++++++++++++++++ .../r/container_app_environment.html.markdown | 4 ++ 3 files changed, 61 insertions(+), 5 deletions(-) diff --git a/internal/services/containerapps/container_app_environment_resource.go b/internal/services/containerapps/container_app_environment_resource.go index 00252a5374ff..d5c10f926977 100644 --- a/internal/services/containerapps/container_app_environment_resource.go +++ b/internal/services/containerapps/container_app_environment_resource.go @@ -32,6 +32,7 @@ type ContainerAppEnvironmentModel struct { LogAnalyticsWorkspaceId string `tfschema:"log_analytics_workspace_id"` InfrastructureSubnetId string `tfschema:"infrastructure_subnet_id"` InternalLoadBalancerEnabled bool `tfschema:"internal_load_balancer_enabled"` + ZoneRedundant bool `tfschema:"zone_redundancy_enabled"` Tags map[string]interface{} `tfschema:"tags"` DefaultDomain string `tfschema:"default_domain"` @@ -95,11 +96,20 @@ func (r ContainerAppEnvironmentResource) Arguments() map[string]*pluginsdk.Schem }, "internal_load_balancer_enabled": { - Type: pluginsdk.TypeBool, - Optional: true, - ForceNew: true, - Default: false, - Description: "Should the Container Environment operate in Internal Load Balancing Mode? Defaults to `false`. **Note:** can only be set to `true` if `infrastructure_subnet_id` is specified.", + Type: pluginsdk.TypeBool, + Optional: true, + ForceNew: true, + Default: false, + RequiredWith: []string{"infrastructure_subnet_id"}, + Description: "Should the Container Environment operate in Internal Load Balancing Mode? Defaults to `false`. **Note:** can only be set to `true` if `infrastructure_subnet_id` is specified.", + }, + + "zone_redundancy_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + ForceNew: true, + Default: false, + RequiredWith: []string{"infrastructure_subnet_id"}, }, "tags": commonschema.Tags(), @@ -172,6 +182,7 @@ func (r ContainerAppEnvironmentResource) Create() sdk.ResourceFunc { Name: pointer.To(containerAppEnvironment.Name), Properties: &managedenvironments.ManagedEnvironmentProperties{ VnetConfiguration: &managedenvironments.VnetConfiguration{}, + ZoneRedundant: pointer.To(containerAppEnvironment.ZoneRedundant), }, Tags: tags.Expand(containerAppEnvironment.Tags), } @@ -265,6 +276,7 @@ func (r ContainerAppEnvironmentResource) Read() sdk.ResourceFunc { state.PlatformReservedDnsIP = pointer.From(vnet.PlatformReservedDnsIP) } + state.ZoneRedundant = pointer.From(props.ZoneRedundant) state.StaticIP = pointer.From(props.StaticIP) state.DefaultDomain = pointer.From(props.DefaultDomain) } diff --git a/internal/services/containerapps/container_app_environment_resource_test.go b/internal/services/containerapps/container_app_environment_resource_test.go index 8935cac5c681..ecc8b8917fc0 100644 --- a/internal/services/containerapps/container_app_environment_resource_test.go +++ b/internal/services/containerapps/container_app_environment_resource_test.go @@ -101,6 +101,21 @@ func TestAccContainerAppEnvironment_daprApplicationInsightsConnectionString(t *t }) } +func TestAccContainerAppEnvironment_zoneRedundant(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_container_app_environment", "test") + r := ContainerAppEnvironmentResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.completeZoneRedundant(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("log_analytics_workspace_id"), + }) +} + func (r ContainerAppEnvironmentResource) Exists(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := managedenvironments.ParseManagedEnvironmentID(state.ID) if err != nil { @@ -199,6 +214,31 @@ resource "azurerm_container_app_environment" "test" { `, r.templateVNet(data), data.RandomInteger) } +func (r ContainerAppEnvironmentResource) completeZoneRedundant(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +%[1]s + +resource "azurerm_container_app_environment" "test" { + name = "acctest-CAEnv%[2]d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + log_analytics_workspace_id = azurerm_log_analytics_workspace.test.id + infrastructure_subnet_id = azurerm_subnet.control.id + zone_redundancy_enabled = true + internal_load_balancer_enabled = true + + tags = { + Foo = "Bar" + secret = "sauce" + } +} +`, r.templateVNet(data), data.RandomInteger) +} + func (r ContainerAppEnvironmentResource) daprApplicationInsightsConnectionString(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { diff --git a/website/docs/r/container_app_environment.html.markdown b/website/docs/r/container_app_environment.html.markdown index 4968213de28f..6c229d4cb4f8 100644 --- a/website/docs/r/container_app_environment.html.markdown +++ b/website/docs/r/container_app_environment.html.markdown @@ -56,6 +56,10 @@ The following arguments are supported: ~> **Note:** can only be set to `true` if `infrastructure_subnet_id` is specified. +* `zone_redundancy_enabled` - (Optional) Should the Container App Environment be created with Zone Redundancy enabled? Defaults to `false`. Changing this forces a new resource to be created. + +~> **Note:** can only be set to `true` if `infrastructure_subnet_id` is specified. + * `log_analytics_workspace_id` - (Optional) The ID for the Log Analytics Workspace to link this Container Apps Managed Environment to. Changing this forces a new resource to be created. * `tags` - (Optional) A mapping of tags to assign to the resource. From 1a6b770da5633d05e773220d07df82262cf0e98a Mon Sep 17 00:00:00 2001 From: JT <100274846+jiaweitao001@users.noreply.github.com> Date: Tue, 19 Sep 2023 21:04:26 +0800 Subject: [PATCH 235/336] New resource: `azurerm_function_app_connection` (#23127) --- .github/labeler-issue-triage.yml | 4 +- .../services/serviceconnector/registration.go | 1 + ...service_connector_function_app_resource.go | 301 ++++++++++ ...ce_connector_function_app_resource_test.go | 514 ++++++++++++++++++ .../r/function_app_connection.html.markdown | 163 ++++++ 5 files changed, 981 insertions(+), 2 deletions(-) create mode 100644 internal/services/serviceconnector/service_connector_function_app_resource.go create mode 100644 internal/services/serviceconnector/service_connector_function_app_resource_test.go create mode 100644 website/docs/r/function_app_connection.html.markdown diff --git a/.github/labeler-issue-triage.yml b/.github/labeler-issue-triage.yml index 3662c34e4bb7..8452395202a4 100644 --- a/.github/labeler-issue-triage.yml +++ b/.github/labeler-issue-triage.yml @@ -25,7 +25,7 @@ service/app-configuration: - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_app_configuration((.|\n)*)###' service/app-service: - - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_(app_service_source_control|function_app_|linux_function_app\W+|linux_function_app\W+|linux_function_app_slot\W+|linux_web_app\W+|linux_web_app\W+|linux_web_app_slot\W+|service_plan|source_control_token|web_app_|windows_function_app\W+|windows_function_app\W+|windows_function_app_slot\W+|windows_web_app\W+|windows_web_app\W+|windows_web_app_slot\W+)((.|\n)*)###' + - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_(app_service_source_control|function_app_active_slot\W+|function_app_function\W+|function_app_hybrid_connection\W+|linux_function_app\W+|linux_function_app\W+|linux_function_app_slot\W+|linux_web_app\W+|linux_web_app\W+|linux_web_app_slot\W+|service_plan|source_control_token|web_app_|windows_function_app\W+|windows_function_app\W+|windows_function_app_slot\W+|windows_web_app\W+|windows_web_app\W+|windows_web_app_slot\W+)((.|\n)*)###' service/application-insights: - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_application_insights((.|\n)*)###' @@ -301,7 +301,7 @@ service/service-bus: - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_servicebus_((.|\n)*)###' service/service-connector: - - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_(app_service_connection|spring_cloud_connection)((.|\n)*)###' + - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_(app_service_connection|function_app_connection|spring_cloud_connection)((.|\n)*)###' service/service-fabric: - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_service_fabric_cluster((.|\n)*)###' diff --git a/internal/services/serviceconnector/registration.go b/internal/services/serviceconnector/registration.go index 30e9505e2fff..c4d258c34e4c 100644 --- a/internal/services/serviceconnector/registration.go +++ b/internal/services/serviceconnector/registration.go @@ -27,6 +27,7 @@ func (r Registration) Resources() []sdk.Resource { return []sdk.Resource{ AppServiceConnectorResource{}, SpringCloudConnectorResource{}, + FunctionAppConnectorResource{}, } } diff --git a/internal/services/serviceconnector/service_connector_function_app_resource.go b/internal/services/serviceconnector/service_connector_function_app_resource.go new file mode 100644 index 000000000000..ddc4328be08f --- /dev/null +++ b/internal/services/serviceconnector/service_connector_function_app_resource.go @@ -0,0 +1,301 @@ +package serviceconnector + +import ( + "context" + "fmt" + "time" + + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links" + "github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/services/web/validate" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" + "github.com/hashicorp/terraform-provider-azurerm/utils" +) + +type FunctionAppConnectorResource struct{} + +type FunctionAppConnectorResourceModel struct { + Name string `tfschema:"name"` + FunctionAppId string `tfschema:"function_app_id"` + TargetResourceId string `tfschema:"target_resource_id"` + ClientType string `tfschema:"client_type"` + AuthInfo []AuthInfoModel `tfschema:"authentication"` + VnetSolution string `tfschema:"vnet_solution"` + SecretStore []SecretStoreModel `tfschema:"secret_store"` +} + +func (r FunctionAppConnectorResource) Arguments() map[string]*schema.Schema { + return map[string]*schema.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "function_app_id": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validate.FunctionAppID, + }, + + "target_resource_id": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: azure.ValidateResourceID, + }, + + "client_type": { + Type: pluginsdk.TypeString, + Optional: true, + Default: string(servicelinker.ClientTypeNone), + ValidateFunc: validation.StringInSlice([]string{ + string(servicelinker.ClientTypeDotnet), + string(servicelinker.ClientTypeJava), + string(servicelinker.ClientTypePython), + string(servicelinker.ClientTypeGo), + string(servicelinker.ClientTypePhp), + string(servicelinker.ClientTypeRuby), + string(servicelinker.ClientTypeDjango), + string(servicelinker.ClientTypeNodejs), + string(servicelinker.ClientTypeSpringBoot), + }, false), + }, + + "secret_store": secretStoreSchema(), + + "vnet_solution": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringInSlice([]string{ + string(servicelinker.VNetSolutionTypeServiceEndpoint), + string(servicelinker.VNetSolutionTypePrivateLink), + }, false), + }, + + "authentication": authInfoSchema(), + } +} + +func (r FunctionAppConnectorResource) Attributes() map[string]*schema.Schema { + return map[string]*schema.Schema{} +} + +func (r FunctionAppConnectorResource) ModelObject() interface{} { + return &FunctionAppConnectorResourceModel{} +} + +func (r FunctionAppConnectorResource) ResourceType() string { + return "azurerm_function_app_connection" +} + +func (r FunctionAppConnectorResource) Create() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + var model FunctionAppConnectorResourceModel + if err := metadata.Decode(&model); err != nil { + return err + } + + client := metadata.Client.ServiceConnector.ServiceLinkerClient + + id := servicelinker.NewScopedLinkerID(model.FunctionAppId, model.Name) + existing, err := client.LinkerGet(ctx, id) + if err != nil && !response.WasNotFound(existing.HttpResponse) { + return fmt.Errorf("checking for presence of existing %s: %+v", id, err) + } + + if !response.WasNotFound(existing.HttpResponse) { + return metadata.ResourceRequiresImport(r.ResourceType(), id) + } + + authInfo, err := expandServiceConnectorAuthInfo(model.AuthInfo) + if err != nil { + return fmt.Errorf("expanding `authentication`: %+v", err) + } + + serviceConnectorProperties := servicelinker.LinkerProperties{ + AuthInfo: authInfo, + } + + if _, err := commonids.ParseStorageAccountID(model.TargetResourceId); err == nil { + targetResourceId := model.TargetResourceId + "/blobServices/default" + serviceConnectorProperties.TargetService = servicelinker.AzureResource{ + Id: &targetResourceId, + } + } else { + serviceConnectorProperties.TargetService = servicelinker.AzureResource{ + Id: &model.TargetResourceId, + } + } + + if model.SecretStore != nil { + secretStore := expandSecretStore(model.SecretStore) + serviceConnectorProperties.SecretStore = secretStore + } + + if model.ClientType != "" { + clientType := servicelinker.ClientType(model.ClientType) + serviceConnectorProperties.ClientType = &clientType + } + + if model.VnetSolution != "" { + vNetSolutionType := servicelinker.VNetSolutionType(model.VnetSolution) + vNetSolution := servicelinker.VNetSolution{ + Type: &vNetSolutionType, + } + serviceConnectorProperties.VNetSolution = &vNetSolution + } + + props := servicelinker.LinkerResource{ + Id: utils.String(id.ID()), + Name: utils.String(model.Name), + Properties: serviceConnectorProperties, + } + + if err := client.LinkerCreateOrUpdateThenPoll(ctx, id, props); err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + + metadata.SetID(id) + return nil + }, + } +} + +func (r FunctionAppConnectorResource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 5 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.ServiceConnector.ServiceLinkerClient + id, err := servicelinker.ParseScopedLinkerID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + resp, err := client.LinkerGet(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return metadata.MarkAsGone(id) + } + return fmt.Errorf("reading %s: %+v", id, err) + } + + pwd := metadata.ResourceData.Get("authentication.0.secret").(string) + + if model := resp.Model; model != nil { + props := model.Properties + if props.AuthInfo == nil || props.TargetService == nil { + return nil + } + + state := FunctionAppConnectorResourceModel{ + Name: id.LinkerName, + FunctionAppId: id.ResourceUri, + TargetResourceId: flattenTargetService(props.TargetService), + AuthInfo: flattenServiceConnectorAuthInfo(props.AuthInfo, pwd), + } + + if props.ClientType != nil { + state.ClientType = string(*props.ClientType) + } + + if props.VNetSolution != nil && props.VNetSolution.Type != nil { + state.VnetSolution = string(*props.VNetSolution.Type) + } + + if props.SecretStore != nil { + state.SecretStore = flattenSecretStore(*props.SecretStore) + } + + return metadata.Encode(&state) + } + return nil + }, + } +} + +func (r FunctionAppConnectorResource) Delete() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.ServiceConnector.LinksClient + id, err := links.ParseScopedLinkerID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + metadata.Logger.Infof("deleting %s", *id) + + if err := client.LinkerDeleteThenPoll(ctx, *id); err != nil { + return fmt.Errorf("deleting %s: %+v", *id, err) + } + return nil + }, + } +} + +func (r FunctionAppConnectorResource) Update() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.ServiceConnector.LinksClient + id, err := links.ParseScopedLinkerID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + var state FunctionAppConnectorResourceModel + if err := metadata.Decode(&state); err != nil { + return fmt.Errorf("decoding state: %+v", err) + } + + linkerProps := links.LinkerProperties{} + d := metadata.ResourceData + + if d.HasChange("client_type") { + clientType := links.ClientType(state.ClientType) + linkerProps.ClientType = &clientType + } + + if d.HasChange("vnet_solution") { + vnetSolutionType := links.VNetSolutionType(state.VnetSolution) + vnetSolution := links.VNetSolution{ + Type: &vnetSolutionType, + } + linkerProps.VNetSolution = &vnetSolution + } + + if d.HasChange("secret_store") { + linkerProps.SecretStore = (*links.SecretStore)(expandSecretStore(state.SecretStore)) + } + + if d.HasChange("authentication") { + linkerProps.AuthInfo = state.AuthInfo + } + + props := links.LinkerPatch{ + Properties: &linkerProps, + } + + if err := client.LinkerUpdateThenPoll(ctx, *id, props); err != nil { + return fmt.Errorf("updating %s: %+v", id, err) + } + + return nil + }, + } +} + +func (r FunctionAppConnectorResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return servicelinker.ValidateScopedLinkerID +} diff --git a/internal/services/serviceconnector/service_connector_function_app_resource_test.go b/internal/services/serviceconnector/service_connector_function_app_resource_test.go new file mode 100644 index 000000000000..2f3e4821015c --- /dev/null +++ b/internal/services/serviceconnector/service_connector_function_app_resource_test.go @@ -0,0 +1,514 @@ +package serviceconnector_test + +import ( + "context" + "fmt" + "testing" + + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/utils" +) + +type FunctionAppConnectorResource struct{} + +func (r FunctionAppConnectorResource) Exists(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { + id, err := servicelinker.ParseScopedLinkerID(state.ID) + if err != nil { + return nil, err + } + + resp, err := client.ServiceConnector.ServiceLinkerClient.LinkerGet(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return utils.Bool(false), nil + } + return nil, fmt.Errorf("retrieving %s: %+v", *id, err) + } + return utils.Bool(true), nil +} + +func TestAccServiceConnectorFunctionAppCosmosdb_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_function_app_connection", "test") + r := FunctionAppConnectorResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.cosmosdbBasic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccServiceConnectorFunctionAppCosmosdb_secretAuth(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_function_app_connection", "test") + r := FunctionAppConnectorResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.cosmosdbSecretAuth(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("authentication"), + }) +} + +func TestAccServiceConnectorFunctionAppCosmosdb_servicePrincipalSecretAuth(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_function_app_connection", "test") + r := FunctionAppConnectorResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.cosmosdbServicePrincipalSecretAuth(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("authentication"), + }) +} + +func TestAccServiceConnectorFunctionAppCosmosdb_userAssignedIdentity(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_function_app_connection", "test") + r := FunctionAppConnectorResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.cosmosdbWithUserAssignedIdentity(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("authentication"), + }) +} + +func TestAccServiceConnectorFunctionAppStorageBlob_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_function_app_connection", "test") + r := FunctionAppConnectorResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.storageBlob(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccServiceConnectorFunctionAppStorageBlob_secretStore(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_function_app_connection", "test") + r := FunctionAppConnectorResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.secretStore(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccServiceConnectorFunctionAppCosmosdb_update(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_function_app_connection", "test") + r := FunctionAppConnectorResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.cosmosdbBasic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.cosmosdbUpdate(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccServiceConnectorFunctionApp_complete(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_function_app_connection", "test") + r := FunctionAppConnectorResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.complete(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func (r FunctionAppConnectorResource) storageBlob(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[3]d" + location = "%[1]s" +} + +resource "azurerm_storage_account" "test" { + name = "acctestacc%[2]s" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + account_tier = "Standard" + account_replication_type = "LRS" +} + +resource "azurerm_app_service_plan" "test" { + name = "acctestASP-%[3]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + + sku { + tier = "Standard" + size = "S1" + } +} + +resource "azurerm_function_app" "test" { + name = "acctest-%[3]d-func" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + app_service_plan_id = azurerm_app_service_plan.test.id + storage_account_name = azurerm_storage_account.test.name + storage_account_access_key = azurerm_storage_account.test.primary_access_key + + lifecycle { + ignore_changes = [ + identity, + ] + } +} + +resource "azurerm_function_app_connection" "test" { + name = "acctestserviceconnector%[3]d" + function_app_id = azurerm_function_app.test.id + target_resource_id = azurerm_storage_account.test.id + authentication { + type = "systemAssignedIdentity" + } +} +`, data.Locations.Primary, data.RandomString, data.RandomInteger) +} + +func (r FunctionAppConnectorResource) secretStore(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features { + key_vault { + recover_soft_deleted_key_vaults = false + purge_soft_delete_on_destroy = false + purge_soft_deleted_keys_on_destroy = false + } + } +} + +data "azurerm_client_config" "current" {} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[2]d" + location = "%[1]s" +} + +resource "azurerm_storage_account" "test" { + name = "acctestacc%[3]s" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + account_tier = "Standard" + account_replication_type = "LRS" +} + +resource "azurerm_key_vault" "test" { + name = "accAKV-%[3]s" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + tenant_id = data.azurerm_client_config.current.tenant_id + sku_name = "standard" + purge_protection_enabled = true +} + +resource "azurerm_app_service_plan" "test" { + name = "acctestASP-%[2]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + + sku { + tier = "Standard" + size = "S1" + } +} + +resource "azurerm_function_app" "test" { + name = "acctest-%[2]d-func" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + app_service_plan_id = azurerm_app_service_plan.test.id + storage_account_name = azurerm_storage_account.test.name + storage_account_access_key = azurerm_storage_account.test.primary_access_key + + lifecycle { + ignore_changes = [ + identity, + ] + } +} + +resource "azurerm_function_app_connection" "test" { + name = "acctestserviceconnector%[2]d" + function_app_id = azurerm_function_app.test.id + target_resource_id = azurerm_storage_account.test.id + + secret_store { + key_vault_id = azurerm_key_vault.test.id + } + authentication { + type = "systemAssignedIdentity" + } +} +`, data.Locations.Primary, data.RandomInteger, data.RandomString) +} + +func (r FunctionAppConnectorResource) complete(data acceptance.TestData) string { + template := r.template(data) + return fmt.Sprintf(` +%[1]s + +resource "azurerm_function_app_connection" "test" { + name = "acctestserviceconnector%[2]d" + function_app_id = azurerm_function_app.test.id + target_resource_id = azurerm_cosmosdb_account.test.id + client_type = "java" + authentication { + type = "systemAssignedIdentity" + } +} +`, template, data.RandomInteger) +} + +func (r FunctionAppConnectorResource) cosmosdbBasic(data acceptance.TestData) string { + template := r.template(data) + return fmt.Sprintf(` +%[1]s + +resource "azurerm_function_app_connection" "test" { + name = "acctestserviceconnector%[2]d" + function_app_id = azurerm_function_app.test.id + target_resource_id = azurerm_cosmosdb_account.test.id + authentication { + type = "systemAssignedIdentity" + } +} +`, template, data.RandomInteger) +} + +func (r FunctionAppConnectorResource) cosmosdbSecretAuth(data acceptance.TestData) string { + template := r.template(data) + return fmt.Sprintf(` +%[1]s + +resource "azurerm_function_app_connection" "test" { + name = "acctestserviceconnector%[2]d" + function_app_id = azurerm_function_app.test.id + target_resource_id = azurerm_cosmosdb_account.test.id + authentication { + type = "secret" + name = "foo" + secret = "bar" + } +} +`, template, data.RandomInteger) +} + +func (r FunctionAppConnectorResource) cosmosdbServicePrincipalSecretAuth(data acceptance.TestData) string { + template := r.template(data) + return fmt.Sprintf(` +%[1]s + +resource "azurerm_user_assigned_identity" "test" { + name = "acctest%[2]s" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location +} + +resource "azurerm_function_app_connection" "test" { + name = "acctestserviceconnector%[3]d" + function_app_id = azurerm_function_app.test.id + target_resource_id = azurerm_cosmosdb_account.test.id + authentication { + type = "servicePrincipalSecret" + client_id = "someclientid" + principal_id = azurerm_user_assigned_identity.test.principal_id + secret = "bar" + } +} +`, template, data.RandomString, data.RandomInteger) +} + +func (r FunctionAppConnectorResource) cosmosdbWithUserAssignedIdentity(data acceptance.TestData) string { + template := r.template(data) + return fmt.Sprintf(` +%[1]s + +data "azurerm_subscription" "test" {} + +resource "azurerm_user_assigned_identity" "test" { + name = "acctest%[2]s" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location +} + +resource "azurerm_function_app_connection" "test" { + name = "acctestserviceconnector%[3]d" + function_app_id = azurerm_function_app.test.id + target_resource_id = azurerm_cosmosdb_account.test.id + authentication { + type = "userAssignedIdentity" + subscription_id = data.azurerm_subscription.test.subscription_id + client_id = azurerm_user_assigned_identity.test.client_id + } +} +`, template, data.RandomString, data.RandomInteger) +} + +func (r FunctionAppConnectorResource) cosmosdbUpdate(data acceptance.TestData) string { + template := r.template(data) + return fmt.Sprintf(` +%[1]s + +resource "azurerm_cosmosdb_sql_database" "update" { + name = "cosmos-sql-db-update" + resource_group_name = azurerm_resource_group.test.name + account_name = azurerm_cosmosdb_account.test.name + throughput = 400 +} + +resource "azurerm_cosmosdb_sql_container" "update" { + name = "test-containerupdate%[3]s" + resource_group_name = azurerm_resource_group.test.name + account_name = azurerm_cosmosdb_account.test.name + database_name = azurerm_cosmosdb_sql_database.test.name + partition_key_path = "/definitionupdate" +} + +resource "azurerm_service_plan" "update" { + location = azurerm_resource_group.test.location + name = "testserviceplanupdate%[3]s" + resource_group_name = azurerm_resource_group.test.name + sku_name = "P1v2" + os_type = "Linux" +} + +resource "azurerm_function_app_connection" "test" { + name = "acctestserviceconnector%[2]d" + function_app_id = azurerm_function_app.test.id + target_resource_id = azurerm_cosmosdb_account.test.id + authentication { + type = "systemAssignedIdentity" + } +} +`, template, data.RandomInteger, data.RandomString) +} + +func (r FunctionAppConnectorResource) template(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[1]d" + location = "%[2]s" +} + +resource "azurerm_cosmosdb_account" "test" { + name = "acctestcosmosdb%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + offer_type = "Standard" + kind = "GlobalDocumentDB" + + consistency_policy { + consistency_level = "BoundedStaleness" + max_interval_in_seconds = 10 + max_staleness_prefix = 200 + } + + geo_location { + location = azurerm_resource_group.test.location + failover_priority = 0 + } +} + +resource "azurerm_cosmosdb_sql_database" "test" { + name = "cosmos-sql-db" + resource_group_name = azurerm_resource_group.test.name + account_name = azurerm_cosmosdb_account.test.name + throughput = 400 +} + +resource "azurerm_cosmosdb_sql_container" "test" { + name = "test-container%[3]s" + resource_group_name = azurerm_resource_group.test.name + account_name = azurerm_cosmosdb_account.test.name + database_name = azurerm_cosmosdb_sql_database.test.name + partition_key_path = "/definition" +} + +resource "azurerm_storage_account" "test" { + name = "acctestsa%[3]s" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + account_tier = "Standard" + account_replication_type = "LRS" +} + +resource "azurerm_app_service_plan" "test" { + name = "acctestASP-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + + sku { + tier = "Standard" + size = "S1" + } +} + +resource "azurerm_function_app" "test" { + name = "acctest-%[1]d-func" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + app_service_plan_id = azurerm_app_service_plan.test.id + storage_account_name = azurerm_storage_account.test.name + storage_account_access_key = azurerm_storage_account.test.primary_access_key + + lifecycle { + ignore_changes = [ + identity, + ] + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomString) +} diff --git a/website/docs/r/function_app_connection.html.markdown b/website/docs/r/function_app_connection.html.markdown new file mode 100644 index 000000000000..dacab32be8b5 --- /dev/null +++ b/website/docs/r/function_app_connection.html.markdown @@ -0,0 +1,163 @@ +--- +subcategory: "App Service (Web Apps)" +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_function_app_connection" +description: |- + Manages a service connector for function app. +--- + +# azurerm_function_app_connection + +Manages a service connector for function app. + +## Example Usage + +```hcl +resource "azurerm_resource_group" "example" { + name = "example-resources" + location = "West Europe" +} + +resource "azurerm_cosmosdb_account" "example" { + name = "example-cosmosdb-account" + location = azurerm_resource_group.example.location + resource_group_name = azurerm_resource_group.example.name + offer_type = "Standard" + kind = "GlobalDocumentDB" + + consistency_policy { + consistency_level = "BoundedStaleness" + max_interval_in_seconds = 10 + max_staleness_prefix = 200 + } + + geo_location { + location = azurerm_resource_group.example.location + failover_priority = 0 + } +} + +resource "azurerm_cosmosdb_sql_database" "example" { + name = "cosmos-sql-db" + resource_group_name = azurerm_cosmosdb_account.example.resource_group_name + account_name = azurerm_cosmosdb_account.example.name + throughput = 400 +} + +resource "azurerm_cosmosdb_sql_container" "example" { + name = "example-container" + resource_group_name = azurerm_cosmosdb_account.example.resource_group_name + account_name = azurerm_cosmosdb_account.example.name + database_name = azurerm_cosmosdb_sql_database.example.name + partition_key_path = "/definition" +} + +resource "azurerm_storage_account" "example" { + name = "examplestorageaccount" + resource_group_name = azurerm_resource_group.example.name + location = azurerm_resource_group.example.location + account_tier = "Standard" + account_replication_type = "LRS" +} + +resource "azurerm_service_plan" "example" { + location = azurerm_resource_group.example.location + name = "example-serviceplan" + resource_group_name = azurerm_resource_group.example.name + sku_name = "P1v2" + os_type = "Linux" +} + +resource "azurerm_function_app" "test" { + name = "example-function-app" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + app_service_plan_id = azurerm_app_service_plan.test.id + storage_account_name = azurerm_storage_account.test.name + storage_account_access_key = azurerm_storage_account.test.primary_access_key + + lifecycle { + ignore_changes = [ + identity, + ] + } +} + +resource "azurerm_app_service_connection" "example" { + name = "example-serviceconnector" + function_app_id = azurerm_function_app.example.id + target_resource_id = azurerm_cosmosdb_account.test.id + authentication { + type = "systemAssignedIdentity" + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `name` - (Required) The name of the service connection. Changing this forces a new resource to be created. + +* `function_app_id` - (Required) The ID of the data source function app. Changing this forces a new resource to be created. + +* `target_resource_id` - (Required) The ID of the target resource. Changing this forces a new resource to be created. Possible target resources are `Postgres`, `PostgresFlexible`, `Mysql`, `Sql`, `Redis`, `RedisEnterprise`, `CosmosCassandra`, `CosmosGremlin`, `CosmosMongo`, `CosmosSql`, `CosmosTable`, `StorageBlob`, `StorageQueue`, `StorageFile`, `StorageTable`, `AppConfig`, `EventHub`, `ServiceBus`, `SignalR`, `WebPubSub`, `ConfluentKafka`. The integration guide can be found [here](https://learn.microsoft.com/en-us/azure/service-connector/how-to-integrate-postgres). + +* `authentication` - (Required) The authentication info. An `authentication` block as defined below. + +-> **Note:** If a Managed Identity is used, this will need to be configured on the App Service. + +--- + +An `authentication` block supports the following: + +* `type` - (Required) The authentication type. Possible values are `systemAssignedIdentity`, `userAssignedIdentity`, `servicePrincipalSecret`, `servicePrincipalCertificate`, `secret`. Changing this forces a new resource to be created. + +* `name` - (Optional) Username or account name for secret auth. `name` and `secret` should be either both specified or both not specified when `type` is set to `secret`. + +* `secret` - (Optional) Password or account key for secret auth. `secret` and `name` should be either both specified or both not specified when `type` is set to `secret`. + +* `client_id` - (Optional) Client ID for `userAssignedIdentity` or `servicePrincipal` auth. Should be specified when `type` is set to `servicePrincipalSecret` or `servicePrincipalCertificate`. When `type` is set to `userAssignedIdentity`, `client_id` and `subscription_id` should be either both specified or both not specified. + +* `subscription_id` - (Optional) Subscription ID for `userAssignedIdentity`. `subscription_id` and `client_id` should be either both specified or both not specified. + +* `principal_id` - (Optional) Principal ID for `servicePrincipal` auth. Should be specified when `type` is set to `servicePrincipalSecret` or `servicePrincipalCertificate`. + +* `certificate` - (Optional) Service principal certificate for `servicePrincipal` auth. Should be specified when `type` is set to `servicePrincipalCertificate`. + +--- + +* `client_type` - (Optional) The application client type. Possible values are `none`, `dotnet`, `java`, `python`, `go`, `php`, `ruby`, `django`, `nodejs` and `springBoot`. + +* `vnet_solution` - (Optional) The type of the VNet solution. Possible values are `serviceEndpoint`, `privateLink`. + +* `secret_store` - (Optional) An option to store secret value in secure place. An `secret_store` block as defined below. + +--- + +An `secret_store` block supports the following: + +* `key_vault_id` - (required) The key vault id to store secret. + +## Attribute Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the service connector. + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/docs/configuration/resources.html#timeouts) for certain actions: + +* `create` - (Defaults to 30 minutes) Used when creating the Service Connector for app service. +* `read` - (Defaults to 5 minutes) Used when retrieving the Service Connector for app service. +* `update` - (Defaults to 30 minutes) Used when updating the Service Connector for app service. +* `delete` - (Defaults to 30 minutes) Used when deleting the Service Connector for app service. + +## Import + +Service Connector for app service can be imported using the `resource id`, e.g. + +```shell +terraform import azurerm_app_service_connection.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Web/sites/webapp/providers/Microsoft.ServiceLinker/linkers/serviceconnector1 +``` From 919d00d5648d69acd630e72d5d6a17a3702c95c5 Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Tue, 19 Sep 2023 14:05:31 +0100 Subject: [PATCH 236/336] Update CHANGELOG.md for #23127 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 04c3b8d900ae..858cfec70ab1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## 3.74.0 (Unreleased) +FEATURES: + +* **New Resource**: `azurerm_function_app_connection` [GH-23127] + ENHANCEMENTS: * dependencies: downgrading to `v1.12.5` of `github.com/rickb777/date` [GH-23296] From 2e393b5045c7e083462e32aa7285ed1aa104b37c Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Tue, 19 Sep 2023 09:46:34 -0700 Subject: [PATCH 237/336] dependencies - swap Virtual Machine Ids for `hashicorp/go-azure-helpers/commonids` (#23306) --- ..._software_update_configuration_resource.go | 3 +- internal/services/compute/image_resource.go | 4 +- .../compute/linux_virtual_machine_resource.go | 163 +++++++++-------- .../services/compute/managed_disk_resource.go | 45 +++-- .../services/compute/parse/virtual_machine.go | 72 -------- .../compute/parse/virtual_machine_test.go | 115 ------------ internal/services/compute/resourceids.go | 1 - .../compute/shared_image_version_resource.go | 2 +- .../compute/validate/virtual_machine_id.go | 26 --- .../validate/virtual_machine_id_test.go | 79 --------- ...l_machine_data_disk_attachment_resource.go | 14 +- .../compute/virtual_machine_data_source.go | 6 +- .../virtual_machine_extension_resource.go | 8 +- .../compute/virtual_machine_import.go | 10 +- .../windows_virtual_machine_resource.go | 165 +++++++++--------- ...st_global_vm_shutdown_schedule_resource.go | 10 +- .../legacy/virtual_machine_resource.go | 53 +++--- .../legacy/virtual_machine_resource_test.go | 16 +- .../maintenance_assignment_virtual_machine.go | 6 +- ...tenance_assignment_virtual_machine_test.go | 10 +- .../mssql/mssql_virtual_machine_resource.go | 9 +- .../network_connection_monitor_resource.go | 3 +- ...virtual_machine_packet_capture_resource.go | 3 +- ...chine_configuration_assignment_resource.go | 11 +- .../backup_protected_vm_resource.go | 10 +- ...erver_vulnerability_assessment_resource.go | 10 +- ...ity_assessment_virtual_machine_resource.go | 17 +- 27 files changed, 284 insertions(+), 587 deletions(-) delete mode 100644 internal/services/compute/parse/virtual_machine.go delete mode 100644 internal/services/compute/parse/virtual_machine_test.go delete mode 100644 internal/services/compute/validate/virtual_machine_id.go delete mode 100644 internal/services/compute/validate/virtual_machine_id_test.go diff --git a/internal/services/automation/automation_software_update_configuration_resource.go b/internal/services/automation/automation_software_update_configuration_resource.go index e7b6fbd40aa3..d79d95170083 100644 --- a/internal/services/automation/automation_software_update_configuration_resource.go +++ b/internal/services/automation/automation_software_update_configuration_resource.go @@ -18,7 +18,6 @@ import ( validate4 "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/features" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" - computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" validate2 "github.com/hashicorp/terraform-provider-azurerm/internal/services/resource/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/suppress" @@ -396,7 +395,7 @@ func (m SoftwareUpdateConfigurationResource) Arguments() map[string]*pluginsdk.S Optional: true, Elem: &pluginsdk.Schema{ Type: pluginsdk.TypeString, - ValidateFunc: computeValidate.VirtualMachineID, + ValidateFunc: commonids.ValidateVirtualMachineID, }, }, diff --git a/internal/services/compute/image_resource.go b/internal/services/compute/image_resource.go index e7df3da38de8..6762dc0363cf 100644 --- a/internal/services/compute/image_resource.go +++ b/internal/services/compute/image_resource.go @@ -9,6 +9,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" @@ -17,7 +18,6 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" - computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/suppress" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" @@ -75,7 +75,7 @@ func resourceImage() *pluginsdk.Resource { "source_virtual_machine_id": { Type: pluginsdk.TypeString, Optional: true, - ValidateFunc: computeValidate.VirtualMachineID, + ValidateFunc: commonids.ValidateVirtualMachineID, }, "os_disk": { diff --git a/internal/services/compute/linux_virtual_machine_resource.go b/internal/services/compute/linux_virtual_machine_resource.go index a6f0a0a0cb16..685f0629efcb 100644 --- a/internal/services/compute/linux_virtual_machine_resource.go +++ b/internal/services/compute/linux_virtual_machine_resource.go @@ -26,7 +26,6 @@ import ( azValidate "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" networkValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tags" @@ -46,7 +45,7 @@ func resourceLinuxVirtualMachine() *pluginsdk.Resource { Update: resourceLinuxVirtualMachineUpdate, Delete: resourceLinuxVirtualMachineDelete, Importer: pluginsdk.ImporterValidatingResourceIdThen(func(id string) error { - _, err := parse.VirtualMachineID(id) + _, err := commonids.ParseVirtualMachineID(id) return err }, importVirtualMachine(compute.OperatingSystemTypesLinux, "azurerm_linux_virtual_machine")), @@ -405,12 +404,12 @@ func resourceLinuxVirtualMachineCreate(d *pluginsdk.ResourceData, meta interface ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() - id := parse.NewVirtualMachineID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + id := commonids.NewVirtualMachineID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) - locks.ByName(id.Name, VirtualMachineResourceName) - defer locks.UnlockByName(id.Name, VirtualMachineResourceName) + locks.ByName(id.VirtualMachineName, VirtualMachineResourceName) + defer locks.UnlockByName(id.VirtualMachineName, VirtualMachineResourceName) - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, "") if err != nil { if !utils.ResponseWasNotFound(resp.Response) { return fmt.Errorf("checking for existing %s: %+v", id, err) @@ -438,7 +437,7 @@ func resourceLinuxVirtualMachineCreate(d *pluginsdk.ResourceData, meta interface if len(errs) > 0 { return fmt.Errorf("unable to assume default computer name %s Please adjust the %q, or specify an explicit %q", errs[0], "name", "computer_name") } - computerName = id.Name + computerName = id.VirtualMachineName } disablePasswordAuthentication := d.Get("disable_password_authentication").(bool) location := azure.NormalizeLocation(d.Get("location").(string)) @@ -475,7 +474,7 @@ func resourceLinuxVirtualMachineCreate(d *pluginsdk.ResourceData, meta interface sshKeys := ExpandSSHKeys(sshKeysRaw) params := compute.VirtualMachine{ - Name: utils.String(id.Name), + Name: utils.String(id.VirtualMachineName), ExtendedLocation: expandEdgeZone(d.Get("edge_zone").(string)), Location: utils.String(location), Identity: identity, @@ -732,7 +731,7 @@ func resourceLinuxVirtualMachineCreate(d *pluginsdk.ResourceData, meta interface params.OsProfile.AdminPassword = utils.String(adminPassword) } - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.Name, params) + future, err := client.CreateOrUpdate(ctx, id.ResourceGroupName, id.VirtualMachineName, params) if err != nil { return fmt.Errorf("creating Linux %s: %+v", id, err) } @@ -753,24 +752,24 @@ func resourceLinuxVirtualMachineRead(d *pluginsdk.ResourceData, meta interface{} ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineID(d.Id()) + id, err := commonids.ParseVirtualMachineID(d.Id()) if err != nil { return err } - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.InstanceViewTypesUserData) + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, compute.InstanceViewTypesUserData) if err != nil { if utils.ResponseWasNotFound(resp.Response) { - log.Printf("[DEBUG] Linux Virtual Machine %q was not found in Resource Group %q - removing from state!", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Linux %s was not found - removing from state!", id) d.SetId("") return nil } - return fmt.Errorf("retrieving Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Linux %s: %+v", id, err) } - d.Set("name", id.Name) - d.Set("resource_group_name", id.ResourceGroup) + d.Set("name", id.VirtualMachineName) + d.Set("resource_group_name", id.ResourceGroupName) d.Set("location", location.NormalizeNilable(resp.Location)) d.Set("edge_zone", flattenEdgeZone(resp.ExtendedLocation)) @@ -787,7 +786,7 @@ func resourceLinuxVirtualMachineRead(d *pluginsdk.ResourceData, meta interface{} } if resp.VirtualMachineProperties == nil { - return fmt.Errorf("retrieving Linux Virtual Machine %q (Resource Group %q): `properties` was nil", id.Name, id.ResourceGroup) + return fmt.Errorf("retrieving Linux %s: `properties` was nil", id) } props := *resp.VirtualMachineProperties @@ -1007,24 +1006,24 @@ func resourceLinuxVirtualMachineUpdate(d *pluginsdk.ResourceData, meta interface ctx, cancel := timeouts.ForUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineID(d.Id()) + id, err := commonids.ParseVirtualMachineID(d.Id()) if err != nil { return err } - locks.ByName(id.Name, VirtualMachineResourceName) - defer locks.UnlockByName(id.Name, VirtualMachineResourceName) + locks.ByName(id.VirtualMachineName, VirtualMachineResourceName) + defer locks.UnlockByName(id.VirtualMachineName, VirtualMachineResourceName) - log.Printf("[DEBUG] Retrieving Linux Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) - existing, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.InstanceViewTypesUserData) + log.Printf("[DEBUG] Retrieving Linux %s", id) + existing, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, compute.InstanceViewTypesUserData) if err != nil { - return fmt.Errorf("retrieving Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Linux %s: %+v", id, err) } - log.Printf("[DEBUG] Retrieving InstanceView for Linux Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) - instanceView, err := client.InstanceView(ctx, id.ResourceGroup, id.Name) + log.Printf("[DEBUG] Retrieving InstanceView for Linux %s.", id) + instanceView, err := client.InstanceView(ctx, id.ResourceGroupName, id.VirtualMachineName) if err != nil { - return fmt.Errorf("retrieving InstanceView for Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving InstanceView for Linux %s: %+v", id, err) } shouldTurnBackOn := virtualMachineShouldBeStarted(instanceView) @@ -1225,9 +1224,9 @@ func resourceLinuxVirtualMachineUpdate(d *pluginsdk.ResourceData, meta interface // Azure will auto-reboot this for us, providing this machine will fit on this host // otherwise we need to shut down the VM to move it to another host to be able to use this size availableOnThisHost := false - sizes, err := client.ListAvailableSizes(ctx, id.ResourceGroup, id.Name) + sizes, err := client.ListAvailableSizes(ctx, id.ResourceGroupName, id.VirtualMachineName) if err != nil { - return fmt.Errorf("retrieving available sizes for Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving available sizes for Linux %s: %+v", id, err) } if sizes.Value != nil { @@ -1449,37 +1448,37 @@ func resourceLinuxVirtualMachineUpdate(d *pluginsdk.ResourceData, meta interface } if shouldShutDown { - log.Printf("[DEBUG] Shutting Down Linux Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Shutting Down Linux %s", id) forceShutdown := false - future, err := client.PowerOff(ctx, id.ResourceGroup, id.Name, utils.Bool(forceShutdown)) + future, err := client.PowerOff(ctx, id.ResourceGroupName, id.VirtualMachineName, utils.Bool(forceShutdown)) if err != nil { - return fmt.Errorf("sending Power Off to Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("sending Power Off to Linux %s: %+v", id, err) } if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for Power Off of Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for Power Off of Linux %s: %+v", id, err) } - log.Printf("[DEBUG] Shut Down Linux Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Shut Down Linux %s.", id) } if shouldDeallocate { if !hasEphemeralOSDisk { - log.Printf("[DEBUG] Deallocating Linux Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deallocating Linux %s", id) // Upgrade to 2021-07-01 added a hibernate parameter to this call defaulting to false - future, err := client.Deallocate(ctx, id.ResourceGroup, id.Name, utils.Bool(false)) + future, err := client.Deallocate(ctx, id.ResourceGroupName, id.VirtualMachineName, utils.Bool(false)) if err != nil { - return fmt.Errorf("deallocating Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("deallocating Linux %s: %+v", id, err) } if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for Deallocation of Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for Deallocation of Linux %s: %+v", id, err) } - log.Printf("[DEBUG] Deallocated Linux Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deallocated Linux %s", id) } else { // Code="OperationNotAllowed" Message="Operation 'deallocate' is not supported for VMs or VM Scale Set instances using an ephemeral OS disk." - log.Printf("[DEBUG] Skipping deallocation for Linux Virtual Machine %q (Resource Group %q) since cannot deallocate a Virtual Machine with an Ephemeral OS Disk", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Skipping deallocation for Linux %s since cannot deallocate a Virtual Machine with an Ephemeral OS Disk", id) } } @@ -1489,11 +1488,11 @@ func resourceLinuxVirtualMachineUpdate(d *pluginsdk.ResourceData, meta interface if d.HasChange("os_disk.0.disk_size_gb") { diskName := d.Get("os_disk.0.name").(string) newSize := d.Get("os_disk.0.disk_size_gb").(int) - log.Printf("[DEBUG] Resizing OS Disk %q for Linux Virtual Machine %q (Resource Group %q) to %dGB..", diskName, id.Name, id.ResourceGroup, newSize) + log.Printf("[DEBUG] Resizing OS Disk %q for Linux %s to %dGB..", diskName, id, newSize) disksClient := meta.(*clients.Client).Compute.DisksClient subscriptionId := meta.(*clients.Client).Account.SubscriptionId - id := disks.NewDiskID(subscriptionId, id.ResourceGroup, diskName) + id := disks.NewDiskID(subscriptionId, id.ResourceGroupName, diskName) update := disks.DiskUpdate{ Properties: &disks.DiskUpdateProperties{ @@ -1512,7 +1511,7 @@ func resourceLinuxVirtualMachineUpdate(d *pluginsdk.ResourceData, meta interface if d.HasChange("os_disk.0.disk_encryption_set_id") { if diskEncryptionSetId := d.Get("os_disk.0.disk_encryption_set_id").(string); diskEncryptionSetId != "" { diskName := d.Get("os_disk.0.name").(string) - log.Printf("[DEBUG] Updating encryption settings of OS Disk %q for Linux Virtual Machine %q (Resource Group %q) to %q..", diskName, id.Name, id.ResourceGroup, diskEncryptionSetId) + log.Printf("[DEBUG] Updating encryption settings of OS Disk %q for Linux %s to %q..", diskName, id, diskEncryptionSetId) encryptionType, err := retrieveDiskEncryptionSetEncryptionType(ctx, meta.(*clients.Client).Compute.DiskEncryptionSetsClient, diskEncryptionSetId) if err != nil { @@ -1521,7 +1520,7 @@ func resourceLinuxVirtualMachineUpdate(d *pluginsdk.ResourceData, meta interface disksClient := meta.(*clients.Client).Compute.DisksClient subscriptionId := meta.(*clients.Client).Account.SubscriptionId - id := disks.NewDiskID(subscriptionId, id.ResourceGroup, diskName) + id := disks.NewDiskID(subscriptionId, id.ResourceGroupName, diskName) update := disks.DiskUpdate{ Properties: &disks.DiskUpdateProperties{ @@ -1544,32 +1543,32 @@ func resourceLinuxVirtualMachineUpdate(d *pluginsdk.ResourceData, meta interface } if shouldUpdate { - log.Printf("[DEBUG] Updating Linux Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) - future, err := client.Update(ctx, id.ResourceGroup, id.Name, update) + log.Printf("[DEBUG] Updating Linux %s", id) + future, err := client.Update(ctx, id.ResourceGroupName, id.VirtualMachineName, update) if err != nil { - return fmt.Errorf("updating Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("updating Linux %s: %+v", id, err) } if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for update of Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for update of Linux %s: %+v", id, err) } - log.Printf("[DEBUG] Updated Linux Virtual Machine %q (Resource Group %q).", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Updated Linux %s", id) } // if we've shut it down and it was turned off, let's boot it back up if shouldTurnBackOn && (shouldShutDown || shouldDeallocate) { - log.Printf("[DEBUG] Starting Linux Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) - future, err := client.Start(ctx, id.ResourceGroup, id.Name) + log.Printf("[DEBUG] Starting Linux %s", id) + future, err := client.Start(ctx, id.ResourceGroupName, id.VirtualMachineName) if err != nil { - return fmt.Errorf("starting Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("starting Linux %s: %+v", id, err) } if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for start of Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for start of Linux %s: %+v", id, err) } - log.Printf("[DEBUG] Started Linux Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Started Linux %s", id) } return resourceLinuxVirtualMachineRead(d, meta) @@ -1580,47 +1579,47 @@ func resourceLinuxVirtualMachineDelete(d *pluginsdk.ResourceData, meta interface ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineID(d.Id()) + id, err := commonids.ParseVirtualMachineID(d.Id()) if err != nil { return err } - locks.ByName(id.Name, VirtualMachineResourceName) - defer locks.UnlockByName(id.Name, VirtualMachineResourceName) + locks.ByName(id.VirtualMachineName, VirtualMachineResourceName) + defer locks.UnlockByName(id.VirtualMachineName, VirtualMachineResourceName) - log.Printf("[DEBUG] Retrieving Linux Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) - existing, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + log.Printf("[DEBUG] Retrieving Linux %s", id) + existing, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, "") if err != nil { if utils.ResponseWasNotFound(existing.Response) { return nil } - return fmt.Errorf("retrieving Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Linux %s: %+v", id, err) } if !meta.(*clients.Client).Features.VirtualMachine.SkipShutdownAndForceDelete { // If the VM was in a Failed state we can skip powering off, since that'll fail if strings.EqualFold(*existing.ProvisioningState, "failed") { - log.Printf("[DEBUG] Powering Off Linux Virtual Machine was skipped because the VM was in %q state %q (Resource Group %q).", *existing.ProvisioningState, id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Powering Off Linux Virtual Machine was skipped because the VM was in %q state %s", *existing.ProvisioningState, id) } else { // ISSUE: 4920 // shutting down the Virtual Machine prior to removing it means users are no longer charged for some Azure resources // thus this can be a large cost-saving when deleting larger instances // https://docs.microsoft.com/en-us/azure/virtual-machines/states-lifecycle - log.Printf("[DEBUG] Powering Off Linux Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Powering Off Linux %s", id) skipShutdown := !meta.(*clients.Client).Features.VirtualMachine.GracefulShutdown - powerOffFuture, err := client.PowerOff(ctx, id.ResourceGroup, id.Name, utils.Bool(skipShutdown)) + powerOffFuture, err := client.PowerOff(ctx, id.ResourceGroupName, id.VirtualMachineName, utils.Bool(skipShutdown)) if err != nil { - return fmt.Errorf("powering off Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("powering off Linux %s: %+v", id, err) } if err := powerOffFuture.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for power off of Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for power off of Linux %s: %+v", id, err) } - log.Printf("[DEBUG] Powered Off Linux Virtual Machine %q (Resource Group %q).", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Powered Off Linux %s", id) } } - log.Printf("[DEBUG] Deleting Linux Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deleting Linux %s", id) // Force Delete is in an opt-in Preview and can only be specified (true/false) if the feature is enabled // as such we default this to `nil` which matches the previous behaviour (where this isn't sent) and @@ -1629,18 +1628,18 @@ func resourceLinuxVirtualMachineDelete(d *pluginsdk.ResourceData, meta interface if meta.(*clients.Client).Features.VirtualMachine.SkipShutdownAndForceDelete { forceDeletion = utils.Bool(true) } - deleteFuture, err := client.Delete(ctx, id.ResourceGroup, id.Name, forceDeletion) + deleteFuture, err := client.Delete(ctx, id.ResourceGroupName, id.VirtualMachineName, forceDeletion) if err != nil { - return fmt.Errorf("deleting Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("deleting Linux %s: %+v", id, err) } if err := deleteFuture.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for deletion of Linux Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for deletion of Linux %s: %+v", id, err) } - log.Printf("[DEBUG] Deleted Linux Virtual Machine %q (Resource Group %q).", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deleted Linux %s", id) deleteOSDisk := meta.(*clients.Client).Features.VirtualMachine.DeleteOSDiskOnDeletion if deleteOSDisk { - log.Printf("[DEBUG] Deleting OS Disk from Linux Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deleting OS Disk from Linux %s", id) disksClient := meta.(*clients.Client).Compute.DisksClient managedDiskId := "" if props := existing.VirtualMachineProperties; props != nil && props.StorageProfile != nil && props.StorageProfile.OsDisk != nil { @@ -1656,29 +1655,29 @@ func resourceLinuxVirtualMachineDelete(d *pluginsdk.ResourceData, meta interface } if err := disksClient.DeleteThenPoll(ctx, *diskId); err != nil { - return fmt.Errorf("deleting OS Disk %q (Resource Group %q) for Linux Virtual Machine %q (Resource Group %q): %+v", diskId.DiskName, diskId.ResourceGroupName, id.Name, id.ResourceGroup, err) + return fmt.Errorf("deleting %s for Linux %s: %+v", diskId, id, err) } - log.Printf("[DEBUG] Deleted OS Disk from Linux Virtual Machine %q (Resource Group %q).", diskId.DiskName, diskId.ResourceGroupName) + log.Printf("[DEBUG] Deleted %s for Linux %s", diskId, id) } else { - log.Printf("[DEBUG] Skipping Deleting OS Disk from Linux Virtual Machine %q (Resource Group %q) - cannot determine OS Disk ID.", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Skipping Deleting OS Disk from Linux %s - cannot determine OS Disk ID.", id) } } else { - log.Printf("[DEBUG] Skipping Deleting OS Disk from Linux Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Skipping Deleting OS Disk from Linux %s", id) } // Need to add a get and a state wait to avoid bug in network API where the attached disk(s) are not actually deleted // Service team indicated that we need to do a get after VM delete call returns to verify that the VM and all attached // disks have actually been deleted. - log.Printf("[INFO] verifying Linux Virtual Machine %q has been deleted", id.Name) - virtualMachine, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + log.Printf("[INFO] verifying Linux %s has been deleted", id) + virtualMachine, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, "") if err != nil && !utils.ResponseWasNotFound(virtualMachine.Response) { - return fmt.Errorf("verifying Linux Virtual Machine %q (Resource Group %q) has been deleted: %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("verifying Linux %s has been deleted: %+v", id, err) } if !utils.ResponseWasNotFound(virtualMachine.Response) { - log.Printf("[INFO] Linux Virtual Machine still exists, waiting on Linux Virtual Machine %q to be deleted", id.Name) + log.Printf("[INFO] %s still exists, waiting on vm to be deleted", id) deleteWait := &pluginsdk.StateChangeConf{ Pending: []string{"200"}, @@ -1686,20 +1685,20 @@ func resourceLinuxVirtualMachineDelete(d *pluginsdk.ResourceData, meta interface MinTimeout: 30 * time.Second, Timeout: d.Timeout(pluginsdk.TimeoutDelete), Refresh: func() (interface{}, string, error) { - log.Printf("[INFO] checking on state of Linux Virtual Machine %q", id.Name) - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + log.Printf("[INFO] checking on state of Linux %s", id) + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, "") if err != nil { if utils.ResponseWasNotFound(resp.Response) { return resp, strconv.Itoa(resp.StatusCode), nil } - return nil, "nil", fmt.Errorf("polling for the status of Linux Virtual Machine %q (Resource Group %q): %v", id.Name, id.ResourceGroup, err) + return nil, "nil", fmt.Errorf("polling for the status of Linux %s: %v", id, err) } return resp, strconv.Itoa(resp.StatusCode), nil }, } if _, err := deleteWait.WaitForStateContext(ctx); err != nil { - return fmt.Errorf("waiting for the deletion of Linux Virtual Machine %q (Resource Group %q): %v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for the deletion of Linux %s: %v", id, err) } } diff --git a/internal/services/compute/managed_disk_resource.go b/internal/services/compute/managed_disk_resource.go index 49f67cc25a67..7c246c7e1f3f 100644 --- a/internal/services/compute/managed_disk_resource.go +++ b/internal/services/compute/managed_disk_resource.go @@ -25,7 +25,6 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/internal/features" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/migration" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/suppress" @@ -827,7 +826,7 @@ func resourceManagedDiskUpdate(d *pluginsdk.ResourceData, meta interface{}) erro // if we are attached to a VM we bring down the VM as necessary for the operations which are not allowed while it's online if shouldShutDown { - virtualMachine, err := parse.VirtualMachineID(*disk.Model.ManagedBy) + virtualMachine, err := commonids.ParseVirtualMachineID(*disk.Model.ManagedBy) if err != nil { return fmt.Errorf("parsing VMID %q for disk attachment: %+v", *disk.Model.ManagedBy, err) } @@ -837,14 +836,14 @@ func resourceManagedDiskUpdate(d *pluginsdk.ResourceData, meta interface{}) erro locks.ByName(name, VirtualMachineResourceName) defer locks.UnlockByName(name, VirtualMachineResourceName) - vm, err := vmClient.Get(ctx, virtualMachine.ResourceGroup, virtualMachine.Name, "") + vm, err := vmClient.Get(ctx, virtualMachine.ResourceGroupName, virtualMachine.VirtualMachineName, "") if err != nil { - return fmt.Errorf("retrieving Virtual Machine %q (Resource Group %q): %+v", virtualMachine.Name, virtualMachine.ResourceGroup, err) + return fmt.Errorf("retrieving %s: %+v", virtualMachine, err) } - instanceView, err := vmClient.InstanceView(ctx, virtualMachine.ResourceGroup, virtualMachine.Name) + instanceView, err := vmClient.InstanceView(ctx, virtualMachine.ResourceGroupName, virtualMachine.VirtualMachineName) if err != nil { - return fmt.Errorf("retrieving InstanceView for Virtual Machine %q (Resource Group %q): %+v", virtualMachine.Name, virtualMachine.ResourceGroup, err) + return fmt.Errorf("retrieving InstanceView for V%s: %+v", virtualMachine, err) } shouldTurnBackOn := virtualMachineShouldBeStarted(instanceView) @@ -902,7 +901,7 @@ func resourceManagedDiskUpdate(d *pluginsdk.ResourceData, meta interface{}) erro // fixes #1600 vm.Resources = nil - future, err := vmClient.CreateOrUpdate(ctx, virtualMachine.ResourceGroup, virtualMachine.Name, vm) + future, err := vmClient.CreateOrUpdate(ctx, virtualMachine.ResourceGroupName, virtualMachine.VirtualMachineName, vm) if err != nil { return fmt.Errorf("removing Disk %q from Virtual Machine %q : %+v", id.DiskName, virtualMachine.String(), err) } @@ -915,34 +914,34 @@ func resourceManagedDiskUpdate(d *pluginsdk.ResourceData, meta interface{}) erro // Shutdown if shouldShutDown { - log.Printf("[DEBUG] Shutting Down Virtual Machine %q (Resource Group %q)..", virtualMachine.Name, virtualMachine.ResourceGroup) + log.Printf("[DEBUG] Shutting Down %s", virtualMachine) forceShutdown := false - future, err := vmClient.PowerOff(ctx, virtualMachine.ResourceGroup, virtualMachine.Name, utils.Bool(forceShutdown)) + future, err := vmClient.PowerOff(ctx, virtualMachine.ResourceGroupName, virtualMachine.VirtualMachineName, utils.Bool(forceShutdown)) if err != nil { - return fmt.Errorf("sending Power Off to Virtual Machine %q (Resource Group %q): %+v", virtualMachine.Name, virtualMachine.ResourceGroup, err) + return fmt.Errorf("sending Power Off to %s: %+v", virtualMachine, err) } if err := future.WaitForCompletionRef(ctx, vmClient.Client); err != nil { - return fmt.Errorf("waiting for Power Off of Virtual Machine %q (Resource Group %q): %+v", virtualMachine.Name, virtualMachine.ResourceGroup, err) + return fmt.Errorf("waiting for Power Off of %s: %+v", virtualMachine, err) } - log.Printf("[DEBUG] Shut Down Virtual Machine %q (Resource Group %q)..", virtualMachine.Name, virtualMachine.ResourceGroup) + log.Printf("[DEBUG] Shut Down %s", virtualMachine) } // De-allocate if shouldDeallocate { - log.Printf("[DEBUG] Deallocating Virtual Machine %q (Resource Group %q)..", virtualMachine.Name, virtualMachine.ResourceGroup) + log.Printf("[DEBUG] Deallocating %s.", virtualMachine) // Upgrading to 2021-07-01 exposed a new hibernate paramater to the Deallocate method - deAllocFuture, err := vmClient.Deallocate(ctx, virtualMachine.ResourceGroup, virtualMachine.Name, utils.Bool(false)) + deAllocFuture, err := vmClient.Deallocate(ctx, virtualMachine.ResourceGroupName, virtualMachine.VirtualMachineName, utils.Bool(false)) if err != nil { - return fmt.Errorf("Deallocating to Virtual Machine %q (Resource Group %q): %+v", virtualMachine.Name, virtualMachine.ResourceGroup, err) + return fmt.Errorf("Deallocating to %s: %+v", virtualMachine, err) } if err := deAllocFuture.WaitForCompletionRef(ctx, vmClient.Client); err != nil { - return fmt.Errorf("waiting for Deallocation of Virtual Machine %q (Resource Group %q): %+v", virtualMachine.Name, virtualMachine.ResourceGroup, err) + return fmt.Errorf("waiting for Deallocation of %s: %+v", virtualMachine, err) } - log.Printf("[DEBUG] Deallocated Virtual Machine %q (Resource Group %q)..", virtualMachine.Name, virtualMachine.ResourceGroup) + log.Printf("[DEBUG] Deallocated %s", virtualMachine) } // Update Disk @@ -968,7 +967,7 @@ func resourceManagedDiskUpdate(d *pluginsdk.ResourceData, meta interface{}) erro // if there's too many disks we get a 409 back with: // `The maximum number of data disks allowed to be attached to a VM of this size is 1.` // which we're intentionally not wrapping, since the errors good. - future, err := vmClient.CreateOrUpdate(ctx, virtualMachine.ResourceGroup, virtualMachine.Name, vm) + future, err := vmClient.CreateOrUpdate(ctx, virtualMachine.ResourceGroupName, virtualMachine.VirtualMachineName, vm) if err != nil { return fmt.Errorf("updating Virtual Machine %q to reattach Disk %q: %+v", virtualMachine.String(), name, err) } @@ -979,17 +978,17 @@ func resourceManagedDiskUpdate(d *pluginsdk.ResourceData, meta interface{}) erro } if shouldTurnBackOn && (shouldShutDown || shouldDeallocate) { - log.Printf("[DEBUG] Starting Linux Virtual Machine %q (Resource Group %q)..", virtualMachine.Name, virtualMachine.ResourceGroup) - future, err := vmClient.Start(ctx, virtualMachine.ResourceGroup, virtualMachine.Name) + log.Printf("[DEBUG] Starting %s", virtualMachine) + future, err := vmClient.Start(ctx, virtualMachine.ResourceGroupName, virtualMachine.VirtualMachineName) if err != nil { - return fmt.Errorf("starting Virtual Machine %q (Resource Group %q): %+v", virtualMachine.Name, virtualMachine.ResourceGroup, err) + return fmt.Errorf("starting %s: %+v", virtualMachine, err) } if err := future.WaitForCompletionRef(ctx, vmClient.Client); err != nil { - return fmt.Errorf("waiting for start of Virtual Machine %q (Resource Group %q): %+v", virtualMachine.Name, virtualMachine.ResourceGroup, err) + return fmt.Errorf("waiting for start of %s %+v", virtualMachine, err) } - log.Printf("[DEBUG] Started Virtual Machine %q (Resource Group %q)..", virtualMachine.Name, virtualMachine.ResourceGroup) + log.Printf("[DEBUG] Started %s", virtualMachine) } } else { // otherwise, just update it err := client.UpdateThenPoll(ctx, *id, diskUpdate) diff --git a/internal/services/compute/parse/virtual_machine.go b/internal/services/compute/parse/virtual_machine.go deleted file mode 100644 index 4b973531543a..000000000000 --- a/internal/services/compute/parse/virtual_machine.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "fmt" - "strings" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -type VirtualMachineId struct { - SubscriptionId string - ResourceGroup string - Name string -} - -func NewVirtualMachineID(subscriptionId, resourceGroup, name string) VirtualMachineId { - return VirtualMachineId{ - SubscriptionId: subscriptionId, - ResourceGroup: resourceGroup, - Name: name, - } -} - -func (id VirtualMachineId) String() string { - segments := []string{ - fmt.Sprintf("Name %q", id.Name), - fmt.Sprintf("Resource Group %q", id.ResourceGroup), - } - segmentsStr := strings.Join(segments, " / ") - return fmt.Sprintf("%s: (%s)", "Virtual Machine", segmentsStr) -} - -func (id VirtualMachineId) ID() string { - fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/virtualMachines/%s" - return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroup, id.Name) -} - -// VirtualMachineID parses a VirtualMachine ID into an VirtualMachineId struct -func VirtualMachineID(input string) (*VirtualMachineId, error) { - id, err := resourceids.ParseAzureResourceID(input) - if err != nil { - return nil, fmt.Errorf("parsing %q as an VirtualMachine ID: %+v", input, err) - } - - resourceId := VirtualMachineId{ - SubscriptionId: id.SubscriptionID, - ResourceGroup: id.ResourceGroup, - } - - if resourceId.SubscriptionId == "" { - return nil, fmt.Errorf("ID was missing the 'subscriptions' element") - } - - if resourceId.ResourceGroup == "" { - return nil, fmt.Errorf("ID was missing the 'resourceGroups' element") - } - - if resourceId.Name, err = id.PopSegment("virtualMachines"); err != nil { - return nil, err - } - - if err := id.ValidateNoEmptySegments(input); err != nil { - return nil, err - } - - return &resourceId, nil -} diff --git a/internal/services/compute/parse/virtual_machine_test.go b/internal/services/compute/parse/virtual_machine_test.go deleted file mode 100644 index ab050a04a060..000000000000 --- a/internal/services/compute/parse/virtual_machine_test.go +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "testing" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -var _ resourceids.Id = VirtualMachineId{} - -func TestVirtualMachineIDFormatter(t *testing.T) { - actual := NewVirtualMachineID("12345678-1234-9876-4563-123456789012", "resGroup1", "machine1").ID() - expected := "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachines/machine1" - if actual != expected { - t.Fatalf("Expected %q but got %q", expected, actual) - } -} - -func TestVirtualMachineID(t *testing.T) { - testData := []struct { - Input string - Error bool - Expected *VirtualMachineId - }{ - - { - // empty - Input: "", - Error: true, - }, - - { - // missing SubscriptionId - Input: "/", - Error: true, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Error: true, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Error: true, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Error: true, - }, - - { - // missing Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/", - Error: true, - }, - - { - // missing value for Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachines/", - Error: true, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachines/machine1", - Expected: &VirtualMachineId{ - SubscriptionId: "12345678-1234-9876-4563-123456789012", - ResourceGroup: "resGroup1", - Name: "machine1", - }, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/MACHINE1", - Error: true, - }, - } - - for _, v := range testData { - t.Logf("[DEBUG] Testing %q", v.Input) - - actual, err := VirtualMachineID(v.Input) - if err != nil { - if v.Error { - continue - } - - t.Fatalf("Expect a value but got an error: %s", err) - } - if v.Error { - t.Fatal("Expect an error but didn't get one") - } - - if actual.SubscriptionId != v.Expected.SubscriptionId { - t.Fatalf("Expected %q but got %q for SubscriptionId", v.Expected.SubscriptionId, actual.SubscriptionId) - } - if actual.ResourceGroup != v.Expected.ResourceGroup { - t.Fatalf("Expected %q but got %q for ResourceGroup", v.Expected.ResourceGroup, actual.ResourceGroup) - } - if actual.Name != v.Expected.Name { - t.Fatalf("Expected %q but got %q for Name", v.Expected.Name, actual.Name) - } - } -} diff --git a/internal/services/compute/resourceids.go b/internal/services/compute/resourceids.go index b45c839dc04d..0152250a5266 100644 --- a/internal/services/compute/resourceids.go +++ b/internal/services/compute/resourceids.go @@ -6,7 +6,6 @@ package compute //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=DiskEncryptionSet -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/diskEncryptionSets/set1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=SharedImage -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/galleries/gallery1/images/image1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=SharedImageVersion -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/galleries/gallery1/images/image1/versions/version1 -//go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=VirtualMachine -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachines/machine1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=VirtualMachineExtension -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachines/machine1/extensions/extension1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=VirtualMachineScaleSetExtension -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachineScaleSets/scaleSet1/extensions/extension1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=SSHPublicKey -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/sshPublicKeys/sshpublickey1 diff --git a/internal/services/compute/shared_image_version_resource.go b/internal/services/compute/shared_image_version_resource.go index 26535cc429df..74a050f1dabd 100644 --- a/internal/services/compute/shared_image_version_resource.go +++ b/internal/services/compute/shared_image_version_resource.go @@ -162,7 +162,7 @@ func resourceSharedImageVersion() *pluginsdk.Resource { ForceNew: true, ValidateFunc: validation.Any( images.ValidateImageID, - validate.VirtualMachineID, + commonids.ValidateVirtualMachineID, ), ExactlyOneOf: []string{"blob_uri", "os_disk_snapshot_id", "managed_image_id"}, }, diff --git a/internal/services/compute/validate/virtual_machine_id.go b/internal/services/compute/validate/virtual_machine_id.go deleted file mode 100644 index f92760006f0f..000000000000 --- a/internal/services/compute/validate/virtual_machine_id.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "fmt" - - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" -) - -func VirtualMachineID(input interface{}, key string) (warnings []string, errors []error) { - v, ok := input.(string) - if !ok { - errors = append(errors, fmt.Errorf("expected %q to be a string", key)) - return - } - - if _, err := parse.VirtualMachineID(v); err != nil { - errors = append(errors, err) - } - - return -} diff --git a/internal/services/compute/validate/virtual_machine_id_test.go b/internal/services/compute/validate/virtual_machine_id_test.go deleted file mode 100644 index b2ec31da4168..000000000000 --- a/internal/services/compute/validate/virtual_machine_id_test.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import "testing" - -func TestVirtualMachineID(t *testing.T) { - cases := []struct { - Input string - Valid bool - }{ - - { - // empty - Input: "", - Valid: false, - }, - - { - // missing SubscriptionId - Input: "/", - Valid: false, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Valid: false, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Valid: false, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Valid: false, - }, - - { - // missing Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/", - Valid: false, - }, - - { - // missing value for Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachines/", - Valid: false, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Compute/virtualMachines/machine1", - Valid: true, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/MACHINE1", - Valid: false, - }, - } - for _, tc := range cases { - t.Logf("[DEBUG] Testing Value %s", tc.Input) - _, errors := VirtualMachineID(tc.Input, "test") - valid := len(errors) == 0 - - if tc.Valid != valid { - t.Fatalf("Expected %t but got %t", tc.Valid, valid) - } - } -} diff --git a/internal/services/compute/virtual_machine_data_disk_attachment_resource.go b/internal/services/compute/virtual_machine_data_disk_attachment_resource.go index 53355ab94ab2..52c919060414 100644 --- a/internal/services/compute/virtual_machine_data_disk_attachment_resource.go +++ b/internal/services/compute/virtual_machine_data_disk_attachment_resource.go @@ -9,12 +9,12 @@ import ( "time" "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/suppress" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" @@ -54,7 +54,7 @@ func resourceVirtualMachineDataDiskAttachment() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ForceNew: true, - ValidateFunc: validate.VirtualMachineID, + ValidateFunc: commonids.ValidateVirtualMachineID, }, "lun": { @@ -99,15 +99,15 @@ func resourceVirtualMachineDataDiskAttachmentCreateUpdate(d *pluginsdk.ResourceD ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - parsedVirtualMachineId, err := parse.VirtualMachineID(d.Get("virtual_machine_id").(string)) + parsedVirtualMachineId, err := commonids.ParseVirtualMachineID(d.Get("virtual_machine_id").(string)) if err != nil { return fmt.Errorf("parsing Virtual Machine ID %q: %+v", parsedVirtualMachineId.ID(), err) } - locks.ByName(parsedVirtualMachineId.Name, VirtualMachineResourceName) - defer locks.UnlockByName(parsedVirtualMachineId.Name, VirtualMachineResourceName) + locks.ByName(parsedVirtualMachineId.VirtualMachineName, VirtualMachineResourceName) + defer locks.UnlockByName(parsedVirtualMachineId.VirtualMachineName, VirtualMachineResourceName) - virtualMachine, err := client.Get(ctx, parsedVirtualMachineId.ResourceGroup, parsedVirtualMachineId.Name, "") + virtualMachine, err := client.Get(ctx, parsedVirtualMachineId.ResourceGroupName, parsedVirtualMachineId.VirtualMachineName, "") if err != nil { if utils.ResponseWasNotFound(virtualMachine.Response) { return fmt.Errorf("Virtual Machine %q was not found", parsedVirtualMachineId.String()) @@ -179,7 +179,7 @@ func resourceVirtualMachineDataDiskAttachmentCreateUpdate(d *pluginsdk.ResourceD // if there's too many disks we get a 409 back with: // `The maximum number of data disks allowed to be attached to a VM of this size is 1.` // which we're intentionally not wrapping, since the errors good. - future, err := client.CreateOrUpdate(ctx, parsedVirtualMachineId.ResourceGroup, parsedVirtualMachineId.Name, virtualMachine) + future, err := client.CreateOrUpdate(ctx, parsedVirtualMachineId.ResourceGroupName, parsedVirtualMachineId.VirtualMachineName, virtualMachine) if err != nil { return fmt.Errorf("updating Virtual Machine %q with Disk %q: %+v", parsedVirtualMachineId.String(), name, err) } diff --git a/internal/services/compute/virtual_machine_data_source.go b/internal/services/compute/virtual_machine_data_source.go index 9b545a11f751..0dcc3c81d483 100644 --- a/internal/services/compute/virtual_machine_data_source.go +++ b/internal/services/compute/virtual_machine_data_source.go @@ -8,10 +8,10 @@ import ( "strings" "time" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" @@ -82,9 +82,9 @@ func dataSourceVirtualMachineRead(d *pluginsdk.ResourceData, meta interface{}) e ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id := parse.NewVirtualMachineID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + id := commonids.NewVirtualMachineID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, "InstanceView") + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, "InstanceView") if err != nil { if utils.ResponseWasNotFound(resp.Response) { return fmt.Errorf("%s was not found", id) diff --git a/internal/services/compute/virtual_machine_extension_resource.go b/internal/services/compute/virtual_machine_extension_resource.go index 95eeffe1c4ab..42b02291707b 100644 --- a/internal/services/compute/virtual_machine_extension_resource.go +++ b/internal/services/compute/virtual_machine_extension_resource.go @@ -8,10 +8,10 @@ import ( "time" "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tags" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" @@ -54,7 +54,7 @@ func resourceVirtualMachineExtension() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ForceNew: true, - ValidateFunc: validate.VirtualMachineID, + ValidateFunc: commonids.ValidateVirtualMachineID, }, "publisher": { @@ -128,11 +128,11 @@ func resourceVirtualMachineExtensionsCreateUpdate(d *pluginsdk.ResourceData, met ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - virtualMachineId, err := parse.VirtualMachineID(d.Get("virtual_machine_id").(string)) + virtualMachineId, err := commonids.ParseVirtualMachineID(d.Get("virtual_machine_id").(string)) if err != nil { return fmt.Errorf("parsing Virtual Machine ID %q: %+v", virtualMachineId, err) } - id := parse.NewVirtualMachineExtensionID(virtualMachineId.SubscriptionId, virtualMachineId.ResourceGroup, virtualMachineId.Name, d.Get("name").(string)) + id := parse.NewVirtualMachineExtensionID(virtualMachineId.SubscriptionId, virtualMachineId.ResourceGroupName, virtualMachineId.VirtualMachineName, d.Get("name").(string)) virtualMachine, err := vmClient.Get(ctx, id.ResourceGroup, id.VirtualMachineName, "") if err != nil { diff --git a/internal/services/compute/virtual_machine_import.go b/internal/services/compute/virtual_machine_import.go index 9e113fc69b8d..c16b5908163e 100644 --- a/internal/services/compute/virtual_machine_import.go +++ b/internal/services/compute/virtual_machine_import.go @@ -7,27 +7,27 @@ import ( "context" "fmt" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/tombuildsstuff/kermit/sdk/compute/2023-03-01/compute" ) func importVirtualMachine(osType compute.OperatingSystemTypes, resourceType string) pluginsdk.ImporterFunc { return func(ctx context.Context, d *pluginsdk.ResourceData, meta interface{}) (data []*pluginsdk.ResourceData, err error) { - id, err := parse.VirtualMachineID(d.Id()) + id, err := commonids.ParseVirtualMachineID(d.Id()) if err != nil { return []*pluginsdk.ResourceData{}, err } client := meta.(*clients.Client).Compute.VMClient - vm, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.InstanceViewTypesUserData) + vm, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, compute.InstanceViewTypesUserData) if err != nil { - return []*pluginsdk.ResourceData{}, fmt.Errorf("retrieving Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return []*pluginsdk.ResourceData{}, fmt.Errorf("retrieving %s: %+v", id, err) } if vm.VirtualMachineProperties == nil { - return []*pluginsdk.ResourceData{}, fmt.Errorf("retrieving Virtual Machine %q (Resource Group %q): `properties` was nil", id.Name, id.ResourceGroup) + return []*pluginsdk.ResourceData{}, fmt.Errorf("retrieving %s: `properties` was nil", id) } isCorrectOS := false diff --git a/internal/services/compute/windows_virtual_machine_resource.go b/internal/services/compute/windows_virtual_machine_resource.go index 7a4b3decde14..c21bf7a6a8e6 100644 --- a/internal/services/compute/windows_virtual_machine_resource.go +++ b/internal/services/compute/windows_virtual_machine_resource.go @@ -27,7 +27,6 @@ import ( azValidate "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" networkValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tags" @@ -48,7 +47,7 @@ func resourceWindowsVirtualMachine() *pluginsdk.Resource { Delete: resourceWindowsVirtualMachineDelete, Importer: pluginsdk.ImporterValidatingResourceIdThen(func(id string) error { - _, err := parse.VirtualMachineID(id) + _, err := commonids.ParseVirtualMachineID(id) return err }, importVirtualMachine(compute.OperatingSystemTypesWindows, "azurerm_windows_virtual_machine")), @@ -432,12 +431,12 @@ func resourceWindowsVirtualMachineCreate(d *pluginsdk.ResourceData, meta interfa ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() - id := parse.NewVirtualMachineID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + id := commonids.NewVirtualMachineID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) - locks.ByName(id.Name, VirtualMachineResourceName) - defer locks.UnlockByName(id.Name, VirtualMachineResourceName) + locks.ByName(id.VirtualMachineName, VirtualMachineResourceName) + defer locks.UnlockByName(id.VirtualMachineName, VirtualMachineResourceName) - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.InstanceViewTypesUserData) + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, compute.InstanceViewTypesUserData) if err != nil { if !utils.ResponseWasNotFound(resp.Response) { return fmt.Errorf("checking for existing Windows %s: %+v", id, err) @@ -469,7 +468,7 @@ func resourceWindowsVirtualMachineCreate(d *pluginsdk.ResourceData, meta interfa if len(errs) > 0 { return fmt.Errorf("unable to assume default computer name %s. Please adjust the %q, or specify an explicit %q", errs[0], "name", "computer_name") } - computerName = id.Name + computerName = id.VirtualMachineName } enableAutomaticUpdates := d.Get("enable_automatic_updates").(bool) location := azure.NormalizeLocation(d.Get("location").(string)) @@ -511,7 +510,7 @@ func resourceWindowsVirtualMachineCreate(d *pluginsdk.ResourceData, meta interfa winRmListeners := expandWinRMListener(winRmListenersRaw) params := compute.VirtualMachine{ - Name: utils.String(id.Name), + Name: utils.String(id.VirtualMachineName), ExtendedLocation: expandEdgeZone(d.Get("edge_zone").(string)), Location: utils.String(location), Identity: identity, @@ -776,7 +775,7 @@ func resourceWindowsVirtualMachineCreate(d *pluginsdk.ResourceData, meta interfa } } - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.Name, params) + future, err := client.CreateOrUpdate(ctx, id.ResourceGroupName, id.VirtualMachineName, params) if err != nil { return fmt.Errorf("creating Windows %s: %+v", id, err) } @@ -797,24 +796,24 @@ func resourceWindowsVirtualMachineRead(d *pluginsdk.ResourceData, meta interface ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineID(d.Id()) + id, err := commonids.ParseVirtualMachineID(d.Id()) if err != nil { return err } - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.InstanceViewTypesUserData) + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, compute.InstanceViewTypesUserData) if err != nil { if utils.ResponseWasNotFound(resp.Response) { - log.Printf("[DEBUG] Windows Virtual Machine %q was not found in Resource Group %q - removing from state!", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Windows %s was not found - removing from state!", id) d.SetId("") return nil } - return fmt.Errorf("retrieving Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Windows %s: %+v", id, err) } - d.Set("name", id.Name) - d.Set("resource_group_name", id.ResourceGroup) + d.Set("name", id.VirtualMachineName) + d.Set("resource_group_name", id.ResourceGroupName) d.Set("location", location.NormalizeNilable(resp.Location)) d.Set("edge_zone", flattenEdgeZone(resp.ExtendedLocation)) @@ -831,7 +830,7 @@ func resourceWindowsVirtualMachineRead(d *pluginsdk.ResourceData, meta interface } if resp.VirtualMachineProperties == nil { - return fmt.Errorf("retrieving Windows Virtual Machine %q (Resource Group %q): `properties` was nil", id.Name, id.ResourceGroup) + return fmt.Errorf("retrieving Windows %s: `properties` was nil", id) } props := *resp.VirtualMachineProperties @@ -1048,24 +1047,24 @@ func resourceWindowsVirtualMachineUpdate(d *pluginsdk.ResourceData, meta interfa ctx, cancel := timeouts.ForUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineID(d.Id()) + id, err := commonids.ParseVirtualMachineID(d.Id()) if err != nil { return err } - locks.ByName(id.Name, VirtualMachineResourceName) - defer locks.UnlockByName(id.Name, VirtualMachineResourceName) + locks.ByName(id.VirtualMachineName, VirtualMachineResourceName) + defer locks.UnlockByName(id.VirtualMachineName, VirtualMachineResourceName) - log.Printf("[DEBUG] Retrieving Windows Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) - existing, err := client.Get(ctx, id.ResourceGroup, id.Name, compute.InstanceViewTypesUserData) + log.Printf("[DEBUG] Retrieving Windows %s", id) + existing, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, compute.InstanceViewTypesUserData) if err != nil { - return fmt.Errorf("retrieving Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Windows %s: %+v", id, err) } - log.Printf("[DEBUG] Retrieving InstanceView for Windows Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) - instanceView, err := client.InstanceView(ctx, id.ResourceGroup, id.Name) + log.Printf("[DEBUG] Retrieving InstanceView for Windows %s", id) + instanceView, err := client.InstanceView(ctx, id.ResourceGroupName, id.VirtualMachineName) if err != nil { - return fmt.Errorf("retrieving InstanceView for Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving InstanceView for Windows %s: %+v", id, err) } shouldTurnBackOn := virtualMachineShouldBeStarted(instanceView) @@ -1386,9 +1385,9 @@ func resourceWindowsVirtualMachineUpdate(d *pluginsdk.ResourceData, meta interfa // Azure will auto-reboot this for us, providing this machine will fit on this host // otherwise we need to shut down the VM to move it to another host to be able to use this size availableOnThisHost := false - sizes, err := client.ListAvailableSizes(ctx, id.ResourceGroup, id.Name) + sizes, err := client.ListAvailableSizes(ctx, id.ResourceGroupName, id.VirtualMachineName) if err != nil { - return fmt.Errorf("retrieving available sizes for Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving available sizes for Windows %s: %+v", id, err) } if sizes.Value != nil { @@ -1510,37 +1509,37 @@ func resourceWindowsVirtualMachineUpdate(d *pluginsdk.ResourceData, meta interfa } if shouldShutDown { - log.Printf("[DEBUG] Shutting Down Windows Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Shutting Down Windows %s", id) forceShutdown := false - future, err := client.PowerOff(ctx, id.ResourceGroup, id.Name, utils.Bool(forceShutdown)) + future, err := client.PowerOff(ctx, id.ResourceGroupName, id.VirtualMachineName, utils.Bool(forceShutdown)) if err != nil { - return fmt.Errorf("sending Power Off to Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("sending Power Off to Windows %s: %+v", id, err) } if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for Power Off of Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for Power Off of Windows %s: %+v", id, err) } - log.Printf("[DEBUG] Shut Down Windows Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Shut Down Windows %s", id) } if shouldDeallocate { if !hasEphemeralOSDisk { - log.Printf("[DEBUG] Deallocating Windows Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deallocating Windows %s", id) // Upgrading to the 2021-07-01 exposed a new hibernate parameter in the Deallocate method - future, err := client.Deallocate(ctx, id.ResourceGroup, id.Name, utils.Bool(false)) + future, err := client.Deallocate(ctx, id.ResourceGroupName, id.VirtualMachineName, utils.Bool(false)) if err != nil { - return fmt.Errorf("deallocating Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("deallocating Windows %s: %+v", id, err) } if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for Deallocation of Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for Deallocation of Windows %s: %+v", id, err) } - log.Printf("[DEBUG] Deallocated Windows Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deallocated Windows %s", id) } else { // Code="OperationNotAllowed" Message="Operation 'deallocate' is not supported for VMs or VM Scale Set instances using an ephemeral OS disk." - log.Printf("[DEBUG] Skipping deallocation for Windows Virtual Machine %q (Resource Group %q) since cannot deallocate a Virtual Machine with an Ephemeral OS Disk", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Skipping deallocation for Windows %s since cannot deallocate a Virtual Machine with an Ephemeral OS Disk", id) } } @@ -1550,11 +1549,11 @@ func resourceWindowsVirtualMachineUpdate(d *pluginsdk.ResourceData, meta interfa if d.HasChange("os_disk.0.disk_size_gb") { diskName := d.Get("os_disk.0.name").(string) newSize := d.Get("os_disk.0.disk_size_gb").(int) - log.Printf("[DEBUG] Resizing OS Disk %q for Windows Virtual Machine %q (Resource Group %q) to %dGB..", diskName, id.Name, id.ResourceGroup, newSize) + log.Printf("[DEBUG] Resizing OS Disk %q for Windows %s to %dGB..", diskName, id, newSize) disksClient := meta.(*clients.Client).Compute.DisksClient subscriptionId := meta.(*clients.Client).Account.SubscriptionId - id := disks.NewDiskID(subscriptionId, id.ResourceGroup, diskName) + id := disks.NewDiskID(subscriptionId, id.ResourceGroupName, diskName) update := disks.DiskUpdate{ Properties: &disks.DiskUpdateProperties{ @@ -1573,7 +1572,7 @@ func resourceWindowsVirtualMachineUpdate(d *pluginsdk.ResourceData, meta interfa if d.HasChange("os_disk.0.disk_encryption_set_id") { if diskEncryptionSetId := d.Get("os_disk.0.disk_encryption_set_id").(string); diskEncryptionSetId != "" { diskName := d.Get("os_disk.0.name").(string) - log.Printf("[DEBUG] Updating encryption settings of OS Disk %q for Windows Virtual Machine %q (Resource Group %q) to %q..", diskName, id.Name, id.ResourceGroup, diskEncryptionSetId) + log.Printf("[DEBUG] Updating encryption settings of OS Disk %q for Windows %s to %q..", diskName, id, diskEncryptionSetId) encryptionType, err := retrieveDiskEncryptionSetEncryptionType(ctx, meta.(*clients.Client).Compute.DiskEncryptionSetsClient, diskEncryptionSetId) if err != nil { @@ -1582,7 +1581,7 @@ func resourceWindowsVirtualMachineUpdate(d *pluginsdk.ResourceData, meta interfa disksClient := meta.(*clients.Client).Compute.DisksClient subscriptionId := meta.(*clients.Client).Account.SubscriptionId - id := disks.NewDiskID(subscriptionId, id.ResourceGroup, diskName) + id := disks.NewDiskID(subscriptionId, id.ResourceGroupName, diskName) update := disks.DiskUpdate{ Properties: &disks.DiskUpdateProperties{ @@ -1605,32 +1604,32 @@ func resourceWindowsVirtualMachineUpdate(d *pluginsdk.ResourceData, meta interfa } if shouldUpdate { - log.Printf("[DEBUG] Updating Windows Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) - future, err := client.Update(ctx, id.ResourceGroup, id.Name, update) + log.Printf("[DEBUG] Updating Windows %s", id) + future, err := client.Update(ctx, id.ResourceGroupName, id.VirtualMachineName, update) if err != nil { - return fmt.Errorf("updating Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("updating Windows %s: %+v", id, err) } if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for update of Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for update of Windows %s: %+v", id, err) } - log.Printf("[DEBUG] Updated Windows Virtual Machine %q (Resource Group %q).", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Updated Windows %s.", id) } // if we've shut it down and it was turned off, let's boot it back up if shouldTurnBackOn && (shouldShutDown || shouldDeallocate) { - log.Printf("[DEBUG] Starting Windows Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) - future, err := client.Start(ctx, id.ResourceGroup, id.Name) + log.Printf("[DEBUG] Starting Windows %s", id) + future, err := client.Start(ctx, id.ResourceGroupName, id.VirtualMachineName) if err != nil { - return fmt.Errorf("starting Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("starting Windows %s: %+v", id, err) } if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for start of Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for start of Windows %s: %+v", id, err) } - log.Printf("[DEBUG] Started Windows Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Started Windows %s", id) } return resourceWindowsVirtualMachineRead(d, meta) @@ -1641,47 +1640,47 @@ func resourceWindowsVirtualMachineDelete(d *pluginsdk.ResourceData, meta interfa ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineID(d.Id()) + id, err := commonids.ParseVirtualMachineID(d.Id()) if err != nil { return err } - locks.ByName(id.Name, VirtualMachineResourceName) - defer locks.UnlockByName(id.Name, VirtualMachineResourceName) + locks.ByName(id.VirtualMachineName, VirtualMachineResourceName) + defer locks.UnlockByName(id.VirtualMachineName, VirtualMachineResourceName) - log.Printf("[DEBUG] Retrieving Windows Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) - existing, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + log.Printf("[DEBUG] Retrieving Windows %s", id) + existing, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, "") if err != nil { if utils.ResponseWasNotFound(existing.Response) { return nil } - return fmt.Errorf("retrieving Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving Windows %s: %+v", id, err) } if !meta.(*clients.Client).Features.VirtualMachine.SkipShutdownAndForceDelete { // If the VM was in a Failed state we can skip powering off, since that'll fail if strings.EqualFold(*existing.ProvisioningState, "failed") { - log.Printf("[DEBUG] Powering Off Windows Virtual Machine was skipped because the VM was in %q state %q (Resource Group %q).", *existing.ProvisioningState, id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Powering Off Windows %s was skipped because the VM was in %q state", id, *existing.ProvisioningState) } else { // ISSUE: 4920 // shutting down the Virtual Machine prior to removing it means users are no longer charged for some Azure resources // thus this can be a large cost-saving when deleting larger instances // https://docs.microsoft.com/en-us/azure/virtual-machines/states-lifecycle - log.Printf("[DEBUG] Powering Off Windows Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Powering Off Windows %s.", id) skipShutdown := !meta.(*clients.Client).Features.VirtualMachine.GracefulShutdown - powerOffFuture, err := client.PowerOff(ctx, id.ResourceGroup, id.Name, utils.Bool(skipShutdown)) + powerOffFuture, err := client.PowerOff(ctx, id.ResourceGroupName, id.VirtualMachineName, utils.Bool(skipShutdown)) if err != nil { - return fmt.Errorf("powering off Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("powering off Windows %s: %+v", id, err) } if err := powerOffFuture.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for power off of Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for power off of Windows %s: %+v", id, err) } - log.Printf("[DEBUG] Powered Off Windows Virtual Machine %q (Resource Group %q).", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Powered Off Windows %s", id) } } - log.Printf("[DEBUG] Deleting Windows Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deleting Windows %s", id) // Force Delete is in an opt-in Preview and can only be specified (true/false) if the feature is enabled // as such we default this to `nil` which matches the previous behaviour (where this isn't sent) and @@ -1690,18 +1689,18 @@ func resourceWindowsVirtualMachineDelete(d *pluginsdk.ResourceData, meta interfa if meta.(*clients.Client).Features.VirtualMachine.SkipShutdownAndForceDelete { forceDeletion = utils.Bool(true) } - deleteFuture, err := client.Delete(ctx, id.ResourceGroup, id.Name, forceDeletion) + deleteFuture, err := client.Delete(ctx, id.ResourceGroupName, id.VirtualMachineName, forceDeletion) if err != nil { - return fmt.Errorf("deleting Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("deleting Windows %s: %+v", id, err) } if err := deleteFuture.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for deletion of Windows Virtual Machine %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for deletion of Windows %s: %+v", id, err) } - log.Printf("[DEBUG] Deleted Windows Virtual Machine %q (Resource Group %q).", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deleted Windows %s", id) deleteOSDisk := meta.(*clients.Client).Features.VirtualMachine.DeleteOSDiskOnDeletion if deleteOSDisk { - log.Printf("[DEBUG] Deleting OS Disk from Windows Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Deleting OS Disk from Windows %s", id) disksClient := meta.(*clients.Client).Compute.DisksClient managedDiskId := "" if props := existing.VirtualMachineProperties; props != nil && props.StorageProfile != nil && props.StorageProfile.OsDisk != nil { @@ -1719,35 +1718,35 @@ func resourceWindowsVirtualMachineDelete(d *pluginsdk.ResourceData, meta interfa diskDeleteFuture, err := disksClient.Delete(ctx, *diskId) if err != nil { if !response.WasNotFound(diskDeleteFuture.HttpResponse) { - return fmt.Errorf("deleting OS Disk %q (Resource Group %q) for Windows Virtual Machine %q (Resource Group %q): %+v", diskId.DiskName, diskId.ResourceGroupName, id.Name, id.ResourceGroup, err) + return fmt.Errorf("deleting OS Disk %q (Resource Group %q) for Windows %s: %+v", diskId.DiskName, diskId.ResourceGroupName, id, err) } } if !response.WasNotFound(diskDeleteFuture.HttpResponse) { if err := diskDeleteFuture.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("OS Disk %q (Resource Group %q) for Windows Virtual Machine %q (Resource Group %q): %+v", diskId.DiskName, diskId.ResourceGroupName, id.Name, id.ResourceGroup, err) + return fmt.Errorf("OS Disk %s for Windows %s: %+v", diskId, id, err) } } - log.Printf("[DEBUG] Deleted OS Disk from Windows Virtual Machine %q (Resource Group %q).", diskId.DiskName, diskId.ResourceGroupName) + log.Printf("[DEBUG] Deleted OS Disk from Windows %s.", id) } else { - log.Printf("[DEBUG] Skipping Deleting OS Disk from Windows Virtual Machine %q (Resource Group %q) - cannot determine OS Disk ID.", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Skipping Deleting OS Disk from Windows %s - cannot determine OS Disk ID.", id) } } else { - log.Printf("[DEBUG] Skipping Deleting OS Disk from Windows Virtual Machine %q (Resource Group %q)..", id.Name, id.ResourceGroup) + log.Printf("[DEBUG] Skipping Deleting OS Disk from Windows %s", id) } // Need to add a get and a state wait to avoid bug in network API where the attached disk(s) are not actually deleted // Service team indicated that we need to do a get after VM delete call returns to verify that the VM and all attached // disks have actually been deleted. - log.Printf("[INFO] verifying Windows Virtual Machine %q has been deleted", id.Name) - virtualMachine, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + log.Printf("[INFO] verifying Windows %s has been deleted", id) + virtualMachine, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, "") if err != nil && !utils.ResponseWasNotFound(virtualMachine.Response) { - return fmt.Errorf("verifying Windows Virtual Machine %q (Resource Group %q) has been deleted: %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("verifying Windows %s has been deleted: %+v", id, err) } if !utils.ResponseWasNotFound(virtualMachine.Response) { - log.Printf("[INFO] Windows Virtual Machine still exists, waiting on Windows Virtual Machine %q to be deleted", id.Name) + log.Printf("[INFO] Windows %s still exists, waiting on vm to be deleted", id) deleteWait := &pluginsdk.StateChangeConf{ Pending: []string{"200"}, @@ -1755,20 +1754,20 @@ func resourceWindowsVirtualMachineDelete(d *pluginsdk.ResourceData, meta interfa MinTimeout: 30 * time.Second, Timeout: d.Timeout(pluginsdk.TimeoutDelete), Refresh: func() (interface{}, string, error) { - log.Printf("[INFO] checking on state of Windows Virtual Machine %q", id.Name) - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + log.Printf("[INFO] checking on state of Windows %s", id) + resp, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, "") if err != nil { if utils.ResponseWasNotFound(resp.Response) { return resp, strconv.Itoa(resp.StatusCode), nil } - return nil, "nil", fmt.Errorf("polling for the status of Windows Virtual Machine %q (Resource Group %q): %v", id.Name, id.ResourceGroup, err) + return nil, "nil", fmt.Errorf("polling for the status of Windows %s: %v", id, err) } return resp, strconv.Itoa(resp.StatusCode), nil }, } if _, err := deleteWait.WaitForStateContext(ctx); err != nil { - return fmt.Errorf("waiting for the deletion of Windows Virtual Machine %q (Resource Group %q): %v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("waiting for the deletion of Windows %s: %v", id, err) } } diff --git a/internal/services/devtestlabs/dev_test_global_vm_shutdown_schedule_resource.go b/internal/services/devtestlabs/dev_test_global_vm_shutdown_schedule_resource.go index 250153a906fb..e1dc5ea3785f 100644 --- a/internal/services/devtestlabs/dev_test_global_vm_shutdown_schedule_resource.go +++ b/internal/services/devtestlabs/dev_test_global_vm_shutdown_schedule_resource.go @@ -9,12 +9,12 @@ import ( "time" "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-sdk/resource-manager/devtestlab/2018-09-15/globalschedules" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - computeParse "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tags" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" @@ -47,7 +47,7 @@ func resourceDevTestGlobalVMShutdownSchedule() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ForceNew: true, - ValidateFunc: computeValidate.VirtualMachineID, + ValidateFunc: commonids.ValidateVirtualMachineID, }, "enabled": { @@ -110,15 +110,15 @@ func resourceDevTestGlobalVMShutdownScheduleCreateUpdate(d *pluginsdk.ResourceDa defer cancel() vmID := d.Get("virtual_machine_id").(string) - vmId, err := computeParse.VirtualMachineID(vmID) + vmId, err := commonids.ParseVirtualMachineID(vmID) if err != nil { return err } // Can't find any official documentation on this, but the API returns a 400 for any other name. // The best example I could find is here: https://social.msdn.microsoft.com/Forums/en-US/25a02403-dba9-4bcb-bdcc-1f4afcba5b65/powershell-script-to-autoshutdown-azure-virtual-machine?forum=WAVirtualMachinesforWindows - name := "shutdown-computevm-" + vmId.Name - id := globalschedules.NewScheduleID(vmId.SubscriptionId, vmId.ResourceGroup, name) + name := "shutdown-computevm-" + vmId.VirtualMachineName + id := globalschedules.NewScheduleID(vmId.SubscriptionId, vmId.ResourceGroupName, name) if d.IsNewResource() { existing, err := client.Get(ctx, id, globalschedules.GetOperationOptions{}) diff --git a/internal/services/legacy/virtual_machine_resource.go b/internal/services/legacy/virtual_machine_resource.go index 61884507983c..526b1244f56b 100644 --- a/internal/services/legacy/virtual_machine_resource.go +++ b/internal/services/legacy/virtual_machine_resource.go @@ -20,7 +20,6 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" compute2 "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" networkParse "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/parse" intStor "github.com/hashicorp/terraform-provider-azurerm/internal/services/storage/client" @@ -62,7 +61,7 @@ func resourceVirtualMachine() *pluginsdk.Resource { Update: resourceVirtualMachineCreateUpdate, Delete: resourceVirtualMachineDelete, Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { - _, err := parse.VirtualMachineID(id) + _, err := commonids.ParseVirtualMachineID(id) return err }), @@ -645,10 +644,10 @@ func resourceVirtualMachineCreateUpdate(d *pluginsdk.ResourceData, meta interfac defer cancel() log.Printf("[INFO] preparing arguments for Azure ARM Virtual Machine creation.") - id := parse.NewVirtualMachineID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + id := commonids.NewVirtualMachineID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) if d.IsNewResource() { - existing, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + existing, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, "") if err != nil { if !utils.ResponseWasNotFound(existing.Response) { return fmt.Errorf("checking for presence of existing %s: %s", id, err) @@ -738,7 +737,7 @@ func resourceVirtualMachineCreateUpdate(d *pluginsdk.ResourceData, meta interfac } vm := compute.VirtualMachine{ - Name: &id.Name, + Name: &id.VirtualMachineName, Location: &location, VirtualMachineProperties: &properties, Tags: expandedTags, @@ -753,10 +752,10 @@ func resourceVirtualMachineCreateUpdate(d *pluginsdk.ResourceData, meta interfac vm.Plan = expandAzureRmVirtualMachinePlan(d) } - locks.ByName(id.Name, compute2.VirtualMachineResourceName) - defer locks.UnlockByName(id.Name, compute2.VirtualMachineResourceName) + locks.ByName(id.VirtualMachineName, compute2.VirtualMachineResourceName) + defer locks.UnlockByName(id.VirtualMachineName, compute2.VirtualMachineResourceName) - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.Name, vm) + future, err := client.CreateOrUpdate(ctx, id.ResourceGroupName, id.VirtualMachineName, vm) if err != nil { return err } @@ -765,7 +764,7 @@ func resourceVirtualMachineCreateUpdate(d *pluginsdk.ResourceData, meta interfac return err } - read, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + read, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, "") if err != nil { return err } @@ -801,22 +800,22 @@ func resourceVirtualMachineRead(d *pluginsdk.ResourceData, meta interface{}) err ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineID(d.Id()) + id, err := commonids.ParseVirtualMachineID(d.Id()) if err != nil { return err } - resp, err := vmclient.Get(ctx, id.ResourceGroup, id.Name, "") + resp, err := vmclient.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, "") if err != nil { if utils.ResponseWasNotFound(resp.Response) { d.SetId("") return nil } - return fmt.Errorf("making Read request on Azure Virtual Machine %s: %+v", id.Name, err) + return fmt.Errorf("making Read request on %s: %+v", id, err) } - d.Set("name", id.Name) - d.Set("resource_group_name", id.ResourceGroup) + d.Set("name", id.VirtualMachineName) + d.Set("resource_group_name", id.ResourceGroupName) d.Set("zones", resp.Zones) if location := resp.Location; location != nil { d.Set("location", azure.NormalizeLocation(*location)) @@ -933,15 +932,15 @@ func resourceVirtualMachineDelete(d *pluginsdk.ResourceData, meta interface{}) e ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.VirtualMachineID(d.Id()) + id, err := commonids.ParseVirtualMachineID(d.Id()) if err != nil { return err } - locks.ByName(id.Name, compute2.VirtualMachineResourceName) - defer locks.UnlockByName(id.Name, compute2.VirtualMachineResourceName) + locks.ByName(id.VirtualMachineName, compute2.VirtualMachineResourceName) + defer locks.UnlockByName(id.VirtualMachineName, compute2.VirtualMachineResourceName) - virtualMachine, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + virtualMachine, err := client.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, "") if err != nil { return fmt.Errorf("retrieving Virtual Machine %q : %s", id.String(), err) } @@ -949,7 +948,7 @@ func resourceVirtualMachineDelete(d *pluginsdk.ResourceData, meta interface{}) e // @tombuildsstuff: sending `nil` here omits this value from being sent - which matches // the previous behaviour - we're only splitting this out so it's clear why var forceDeletion *bool = nil - future, err := client.Delete(ctx, id.ResourceGroup, id.Name, forceDeletion) + future, err := client.Delete(ctx, id.ResourceGroupName, id.VirtualMachineName, forceDeletion) if err != nil { return fmt.Errorf("deleting Virtual Machine %q : %s", id.String(), err) } @@ -967,21 +966,21 @@ func resourceVirtualMachineDelete(d *pluginsdk.ResourceData, meta interface{}) e props := virtualMachine.VirtualMachineProperties if props == nil { - return fmt.Errorf("deleting Disks for Virtual Machine %q - `props` was nil", id.Name) + return fmt.Errorf("deleting Disks for %s - `props` was nil", id) } storageProfile := props.StorageProfile if storageProfile == nil { - return fmt.Errorf("deleting Disks for Virtual Machine %q - `storageProfile` was nil", id.Name) + return fmt.Errorf("deleting Disks for %s - `storageProfile` was nil", id) } if deleteOsDisk { - log.Printf("[INFO] delete_os_disk_on_termination is enabled, deleting disk from %s", id.Name) + log.Printf("[INFO] delete_os_disk_on_termination is enabled, deleting disk from %s", id) osDisk := storageProfile.OsDisk if osDisk == nil { - return fmt.Errorf("deleting OS Disk for Virtual Machine %q - `osDisk` was nil", id.Name) + return fmt.Errorf("deleting OS Disk for %s - `osDisk` was nil", id) } if osDisk.Vhd == nil && osDisk.ManagedDisk == nil { - return fmt.Errorf("Unable to determine OS Disk Type to Delete it for Virtual Machine %q", id.Name) + return fmt.Errorf("unable to determine OS Disk Type to Delete it for %s", id) } if osDisk.Vhd != nil { @@ -997,16 +996,16 @@ func resourceVirtualMachineDelete(d *pluginsdk.ResourceData, meta interface{}) e // delete Data disks if opted in if deleteDataDisks { - log.Printf("[INFO] delete_data_disks_on_termination is enabled, deleting each data disk from %q", id.Name) + log.Printf("[INFO] delete_data_disks_on_termination is enabled, deleting each data disk from %s", id) dataDisks := storageProfile.DataDisks if dataDisks == nil { - return fmt.Errorf("deleting Data Disks for Virtual Machine %q: `dataDisks` was nil", id.Name) + return fmt.Errorf("deleting Data Disks for %s: `dataDisks` was nil", id) } for _, disk := range *dataDisks { if disk.Vhd == nil && disk.ManagedDisk == nil { - return fmt.Errorf("Unable to determine Data Disk Type to Delete it for Virtual Machine %q / Disk %q", id.Name, *disk.Name) + return fmt.Errorf("unable to determine Data Disk Type to Delete it for %s / Disk %q", id, *disk.Name) } if disk.Vhd != nil { diff --git a/internal/services/legacy/virtual_machine_resource_test.go b/internal/services/legacy/virtual_machine_resource_test.go index 6ecf7696c668..7429e4d86f16 100644 --- a/internal/services/legacy/virtual_machine_resource_test.go +++ b/internal/services/legacy/virtual_machine_resource_test.go @@ -8,11 +8,11 @@ import ( "fmt" "testing" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-sdk/resource-manager/compute/2023-04-02/disks" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" "github.com/tombuildsstuff/giovanni/storage/2020-08-04/blob/blobs" @@ -101,12 +101,12 @@ func TestAccVirtualMachine_withPPG(t *testing.T) { } func (VirtualMachineResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { - id, err := parse.VirtualMachineID(state.ID) + id, err := commonids.ParseVirtualMachineID(state.ID) if err != nil { return nil, err } - resp, err := clients.Legacy.VMClient.Get(ctx, id.ResourceGroup, id.Name, "") + resp, err := clients.Legacy.VMClient.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, "") if err != nil { return nil, fmt.Errorf("retrieving Compute Virtual Machine %q", id) } @@ -171,12 +171,12 @@ func (VirtualMachineResource) managedDiskExists(diskId *string, shouldExist bool func (VirtualMachineResource) findManagedDiskID(field string, managedDiskID *string) acceptance.ClientCheckFunc { return func(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) error { - id, err := parse.VirtualMachineID(state.ID) + id, err := commonids.ParseVirtualMachineID(state.ID) if err != nil { return err } - virtualMachine, err := clients.Legacy.VMClient.Get(ctx, id.ResourceGroup, id.Name, "") + virtualMachine, err := clients.Legacy.VMClient.Get(ctx, id.ResourceGroupName, id.VirtualMachineName, "") if err != nil { return err } @@ -216,13 +216,13 @@ func (VirtualMachineResource) findManagedDiskID(field string, managedDiskID *str } func (VirtualMachineResource) deallocate(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) error { - vmID, err := parse.VirtualMachineID(state.ID) + vmID, err := commonids.ParseVirtualMachineID(state.ID) if err != nil { return err } - name := vmID.Name - resourceGroup := vmID.ResourceGroup + name := vmID.VirtualMachineName + resourceGroup := vmID.ResourceGroupName // Upgrading to the 2021-07-01 exposed a new hibernate parameter in the GET method future, err := client.Legacy.VMClient.Deallocate(ctx, resourceGroup, name, utils.Bool(false)) diff --git a/internal/services/maintenance/parse/maintenance_assignment_virtual_machine.go b/internal/services/maintenance/parse/maintenance_assignment_virtual_machine.go index 86d2cb52e3a3..5050409e48ef 100644 --- a/internal/services/maintenance/parse/maintenance_assignment_virtual_machine.go +++ b/internal/services/maintenance/parse/maintenance_assignment_virtual_machine.go @@ -7,11 +7,11 @@ import ( "fmt" "regexp" - parseCompute "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" ) type MaintenanceAssignmentVirtualMachineId struct { - VirtualMachineId *parseCompute.VirtualMachineId + VirtualMachineId *commonids.VirtualMachineId VirtualMachineIdRaw string Name string } @@ -23,7 +23,7 @@ func MaintenanceAssignmentVirtualMachineID(input string) (*MaintenanceAssignment } targetResourceId, name := groups[1], groups[2] - virtualMachineId, err := parseCompute.VirtualMachineID(targetResourceId) + virtualMachineId, err := commonids.ParseVirtualMachineIDInsensitively(targetResourceId) if err != nil { return nil, fmt.Errorf("parsing Maintenance Assignment Virtual Machine ID: %q: Expected valid virtual machine ID", input) } diff --git a/internal/services/maintenance/parse/maintenance_assignment_virtual_machine_test.go b/internal/services/maintenance/parse/maintenance_assignment_virtual_machine_test.go index 6464e821c0d0..3a9aec2abdc4 100644 --- a/internal/services/maintenance/parse/maintenance_assignment_virtual_machine_test.go +++ b/internal/services/maintenance/parse/maintenance_assignment_virtual_machine_test.go @@ -7,7 +7,7 @@ import ( "reflect" "testing" - parseCompute "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" ) func TestMaintenanceAssignmentVirtualMachineID(t *testing.T) { @@ -58,10 +58,10 @@ func TestMaintenanceAssignmentVirtualMachineID(t *testing.T) { Error: false, Expect: &MaintenanceAssignmentVirtualMachineId{ VirtualMachineIdRaw: "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resGroup1/providers/microsoft.compute/virtualMachines/vm1", - VirtualMachineId: &parseCompute.VirtualMachineId{ - SubscriptionId: "00000000-0000-0000-0000-000000000000", - ResourceGroup: "resGroup1", - Name: "vm1", + VirtualMachineId: &commonids.VirtualMachineId{ + SubscriptionId: "00000000-0000-0000-0000-000000000000", + ResourceGroupName: "resGroup1", + VirtualMachineName: "vm1", }, Name: "assign1", }, diff --git a/internal/services/mssql/mssql_virtual_machine_resource.go b/internal/services/mssql/mssql_virtual_machine_resource.go index df3b9c7ba195..777e2b5ecd3f 100644 --- a/internal/services/mssql/mssql_virtual_machine_resource.go +++ b/internal/services/mssql/mssql_virtual_machine_resource.go @@ -13,14 +13,13 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" "github.com/hashicorp/go-azure-sdk/resource-manager/sqlvirtualmachine/2022-02-01/sqlvirtualmachinegroups" "github.com/hashicorp/go-azure-sdk/resource-manager/sqlvirtualmachine/2022-02-01/sqlvirtualmachines" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - parseCompute "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" - computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/services/mssql/helper" "github.com/hashicorp/terraform-provider-azurerm/internal/services/mssql/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" @@ -56,7 +55,7 @@ func resourceMsSqlVirtualMachine() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ForceNew: true, - ValidateFunc: computeValidate.VirtualMachineID, + ValidateFunc: commonids.ValidateVirtualMachineID, }, "sql_license_type": { @@ -499,11 +498,11 @@ func resourceMsSqlVirtualMachineCreateUpdate(d *pluginsdk.ResourceData, meta int ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() - vmId, err := parseCompute.VirtualMachineID(d.Get("virtual_machine_id").(string)) + vmId, err := commonids.ParseVirtualMachineID(d.Get("virtual_machine_id").(string)) if err != nil { return err } - id := sqlvirtualmachines.NewSqlVirtualMachineID(vmId.SubscriptionId, vmId.ResourceGroup, vmId.Name) + id := sqlvirtualmachines.NewSqlVirtualMachineID(vmId.SubscriptionId, vmId.ResourceGroupName, vmId.VirtualMachineName) if d.IsNewResource() { existing, err := client.Get(ctx, id, sqlvirtualmachines.GetOperationOptions{Expand: utils.String("*")}) diff --git a/internal/services/network/network_connection_monitor_resource.go b/internal/services/network/network_connection_monitor_resource.go index be5e7984b089..f486d0afccf3 100644 --- a/internal/services/network/network_connection_monitor_resource.go +++ b/internal/services/network/network_connection_monitor_resource.go @@ -19,7 +19,6 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" networkValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" @@ -172,7 +171,7 @@ func resourceNetworkConnectionMonitorSchema() map[string]*pluginsdk.Schema { Optional: true, Computed: true, ValidateFunc: validation.Any( - computeValidate.VirtualMachineID, + commonids.ValidateVirtualMachineID, workspaces.ValidateWorkspaceID, commonids.ValidateSubnetID, commonids.ValidateVirtualNetworkID, diff --git a/internal/services/network/virtual_machine_packet_capture_resource.go b/internal/services/network/virtual_machine_packet_capture_resource.go index e036f131fe53..36f262b6930d 100644 --- a/internal/services/network/virtual_machine_packet_capture_resource.go +++ b/internal/services/network/virtual_machine_packet_capture_resource.go @@ -15,7 +15,6 @@ import ( "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/packetcaptures" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" networkValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" @@ -60,7 +59,7 @@ func resourceVirtualMachinePacketCapture() *pluginsdk.Resource { Required: true, ForceNew: true, ValidateFunc: validation.Any( - computeValidate.VirtualMachineID, + commonids.ValidateVirtualMachineID, ), }, diff --git a/internal/services/policy/policy_virtual_machine_configuration_assignment_resource.go b/internal/services/policy/policy_virtual_machine_configuration_assignment_resource.go index fe26e4975a8d..4c67a2a9eb88 100644 --- a/internal/services/policy/policy_virtual_machine_configuration_assignment_resource.go +++ b/internal/services/policy/policy_virtual_machine_configuration_assignment_resource.go @@ -11,13 +11,12 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-sdk/resource-manager/guestconfiguration/2020-06-25/guestconfigurationassignments" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - computeParse "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" - computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" @@ -62,7 +61,7 @@ func resourcePolicyVirtualMachineConfigurationAssignmentSchema() map[string]*plu Type: pluginsdk.TypeString, Required: true, ForceNew: true, - ValidateFunc: computeValidate.VirtualMachineID, + ValidateFunc: commonids.ValidateVirtualMachineID, }, "configuration": { @@ -131,12 +130,12 @@ func resourcePolicyVirtualMachineConfigurationAssignmentCreateUpdate(d *pluginsd ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - vmId, err := computeParse.VirtualMachineID(d.Get("virtual_machine_id").(string)) + vmId, err := commonids.ParseVirtualMachineID(d.Get("virtual_machine_id").(string)) if err != nil { return err } - id := guestconfigurationassignments.NewProviders2GuestConfigurationAssignmentID(subscriptionId, vmId.ResourceGroup, vmId.Name, d.Get("name").(string)) + id := guestconfigurationassignments.NewProviders2GuestConfigurationAssignmentID(subscriptionId, vmId.ResourceGroupName, vmId.VirtualMachineName, d.Get("name").(string)) if d.IsNewResource() { existing, err := client.Get(ctx, id) @@ -200,7 +199,7 @@ func resourcePolicyVirtualMachineConfigurationAssignmentRead(d *pluginsdk.Resour return fmt.Errorf("retrieving %s: %+v", id, err) } - vmId := computeParse.NewVirtualMachineID(subscriptionId, id.ResourceGroupName, id.VirtualMachineName) + vmId := commonids.NewVirtualMachineID(subscriptionId, id.ResourceGroupName, id.VirtualMachineName) d.Set("name", id.GuestConfigurationAssignmentName) d.Set("virtual_machine_id", vmId.ID()) diff --git a/internal/services/recoveryservices/backup_protected_vm_resource.go b/internal/services/recoveryservices/backup_protected_vm_resource.go index df1f06b38655..912bfd31d41d 100644 --- a/internal/services/recoveryservices/backup_protected_vm_resource.go +++ b/internal/services/recoveryservices/backup_protected_vm_resource.go @@ -15,13 +15,13 @@ import ( "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2021-12-01/backup" // nolint: staticcheck "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protecteditems" "github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectionpolicies" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - vmParse "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/recoveryservices/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/suppress" @@ -85,13 +85,13 @@ func resourceRecoveryServicesBackupProtectedVMCreateUpdate(d *pluginsdk.Resource } // get VM name from id - parsedVmId, err := vmParse.VirtualMachineID(vmId) + parsedVmId, err := commonids.ParseVirtualMachineID(vmId) if err != nil { return fmt.Errorf("[ERROR] Unable to parse source_vm_id '%s': %+v", vmId, err) } - protectedItemName := fmt.Sprintf("VM;iaasvmcontainerv2;%s;%s", parsedVmId.ResourceGroup, parsedVmId.Name) - containerName := fmt.Sprintf("iaasvmcontainer;iaasvmcontainerv2;%s;%s", parsedVmId.ResourceGroup, parsedVmId.Name) + protectedItemName := fmt.Sprintf("VM;iaasvmcontainerv2;%s;%s", parsedVmId.ResourceGroupName, parsedVmId.VirtualMachineName) + containerName := fmt.Sprintf("iaasvmcontainer;iaasvmcontainerv2;%s;%s", parsedVmId.ResourceGroupName, parsedVmId.VirtualMachineName) log.Printf("[DEBUG] Creating/updating Azure Backup Protected VM %s (resource group %q)", protectedItemName, resourceGroup) @@ -114,7 +114,7 @@ func resourceRecoveryServicesBackupProtectedVMCreateUpdate(d *pluginsdk.Resource PolicyId: &policyId, WorkloadType: pointer.To(protecteditems.DataSourceTypeVM), SourceResourceId: pointer.To(vmId), - FriendlyName: pointer.To(parsedVmId.Name), + FriendlyName: pointer.To(parsedVmId.VirtualMachineName), ExtendedProperties: expandDiskExclusion(d), VirtualMachineId: pointer.To(vmId), }, diff --git a/internal/services/securitycenter/security_center_server_vulnerability_assessment_resource.go b/internal/services/securitycenter/security_center_server_vulnerability_assessment_resource.go index e34ddb58f6c3..693259db6026 100644 --- a/internal/services/securitycenter/security_center_server_vulnerability_assessment_resource.go +++ b/internal/services/securitycenter/security_center_server_vulnerability_assessment_resource.go @@ -10,12 +10,12 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/services/preview/security/mgmt/v3.0/security" // nolint: staticcheck + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" computeParse "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" - computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" "github.com/hashicorp/terraform-provider-azurerm/utils" @@ -50,7 +50,7 @@ func resourceServerVulnerabilityAssessment() *pluginsdk.Resource { Type: pluginsdk.TypeString, Optional: true, ForceNew: true, - ValidateFunc: computeValidate.VirtualMachineID, + ValidateFunc: commonids.ValidateVirtualMachineID, }, "hybrid_machine_id": { Type: pluginsdk.TypeString, @@ -206,17 +206,17 @@ func parseTargetId(d *pluginsdk.ResourceData) (*TargetId, error) { } func parseVirtualMachineId(rawVirtualMachineId string) (*TargetId, error) { - virtualMachineId, err := computeParse.VirtualMachineID(rawVirtualMachineId) + virtualMachineId, err := commonids.ParseVirtualMachineID(rawVirtualMachineId) if err != nil { return nil, err } return &TargetId{ Id: rawVirtualMachineId, SubscriptionId: virtualMachineId.SubscriptionId, - ResourceGroup: virtualMachineId.ResourceGroup, + ResourceGroup: virtualMachineId.ResourceGroupName, Provider: virtualMachineProvider, ResourceType: "virtualMachines", - Name: virtualMachineId.Name, + Name: virtualMachineId.VirtualMachineName, }, nil } diff --git a/internal/services/securitycenter/security_center_server_vulnerability_assessment_virtual_machine_resource.go b/internal/services/securitycenter/security_center_server_vulnerability_assessment_virtual_machine_resource.go index 59c7bd932619..4898d0236a9b 100644 --- a/internal/services/securitycenter/security_center_server_vulnerability_assessment_virtual_machine_resource.go +++ b/internal/services/securitycenter/security_center_server_vulnerability_assessment_virtual_machine_resource.go @@ -10,10 +10,9 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/services/preview/security/mgmt/v3.0/security" // nolint: staticcheck + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - computeParse "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" - computeValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/services/securitycenter/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" @@ -47,7 +46,7 @@ func resourceServerVulnerabilityAssessmentVirtualMachine() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ForceNew: true, - ValidateFunc: computeValidate.VirtualMachineID, + ValidateFunc: commonids.ValidateVirtualMachineID, }, }, } @@ -58,13 +57,13 @@ func resourceServerVulnerabilityAssessmentVirtualMachineCreate(d *pluginsdk.Reso ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - virtualMachineId, err := computeParse.VirtualMachineID(d.Get("virtual_machine_id").(string)) + virtualMachineId, err := commonids.ParseVirtualMachineID(d.Get("virtual_machine_id").(string)) if err != nil { return err } - id := parse.NewVulnerabilityAssessmentVmID(virtualMachineId.SubscriptionId, virtualMachineId.ResourceGroup, virtualMachineId.Name, "Default") + id := parse.NewVulnerabilityAssessmentVmID(virtualMachineId.SubscriptionId, virtualMachineId.ResourceGroupName, virtualMachineId.VirtualMachineName, "Default") - vulnerabilityAssessment, err := client.Get(ctx, virtualMachineId.ResourceGroup, computeProvider, vmType, virtualMachineId.Name) + vulnerabilityAssessment, err := client.Get(ctx, virtualMachineId.ResourceGroupName, computeProvider, vmType, virtualMachineId.VirtualMachineName) if err != nil { if !utils.ResponseWasNotFound(vulnerabilityAssessment.Response) { return fmt.Errorf("checking for presence of existing Advanced Threat Protection for %s: %+v", *virtualMachineId, err) @@ -75,7 +74,7 @@ func resourceServerVulnerabilityAssessmentVirtualMachineCreate(d *pluginsdk.Reso return tf.ImportAsExistsError("azurerm_security_center_server_vulnerability_assessment_virtual_machine", *vulnerabilityAssessment.ID) } - vulnerabilityAssessment, err = client.CreateOrUpdate(ctx, virtualMachineId.ResourceGroup, computeProvider, vmType, virtualMachineId.Name) + vulnerabilityAssessment, err = client.CreateOrUpdate(ctx, virtualMachineId.ResourceGroupName, computeProvider, vmType, virtualMachineId.VirtualMachineName) if err != nil { return fmt.Errorf("create Server Vulnerability Assessment for %s: %+v", *virtualMachineId, err) } @@ -107,8 +106,8 @@ func resourceServerVulnerabilityAssessmentVirtualMachineRead(d *pluginsdk.Resour return err } - virtualMachineId := computeParse.NewVirtualMachineID(id.SubscriptionId, id.ResourceGroup, id.VirtualMachineName) - resp, err := client.Get(ctx, virtualMachineId.ResourceGroup, computeProvider, vmType, virtualMachineId.Name) + virtualMachineId := commonids.NewVirtualMachineID(id.SubscriptionId, id.ResourceGroup, id.VirtualMachineName) + resp, err := client.Get(ctx, virtualMachineId.ResourceGroupName, computeProvider, vmType, virtualMachineId.VirtualMachineName) if err != nil { if utils.ResponseWasNotFound(resp.Response) { log.Printf("Server Vulnerability Assessment was not found for %s: %+v", virtualMachineId, err) From d50d32977ff0147824666aa9847d32dd378f1f20 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Tue, 19 Sep 2023 09:47:06 -0700 Subject: [PATCH 238/336] Update CHANGELOG.md for #23306 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 858cfec70ab1..91e82eeac5de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ FEATURES: ENHANCEMENTS: * dependencies: downgrading to `v1.12.5` of `github.com/rickb777/date` [GH-23296] +* dependencies - swap Virtual Machine Ids for `hashicorp/go-azure-helpers/commonids` [GH-23306] * `azurerm_container_app` - add support for scale rules [GH-23294] * `azurerm_bot_channel_directline` - add support for `user_upload_enabled`, `endpoint_parameters_enabled` and `storage_enabled` [GH-23149] From db251eb37324eb386cae61aae699324f284457cd Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Tue, 19 Sep 2023 18:56:04 +0200 Subject: [PATCH 239/336] updating to include #23320 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 91e82eeac5de..dc99f1458808 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ FEATURES: ENHANCEMENTS: * dependencies: downgrading to `v1.12.5` of `github.com/rickb777/date` [GH-23296] +* `mysql`: updating to use API Version `2022-01-01` [GH-23320] * dependencies - swap Virtual Machine Ids for `hashicorp/go-azure-helpers/commonids` [GH-23306] * `azurerm_container_app` - add support for scale rules [GH-23294] * `azurerm_bot_channel_directline` - add support for `user_upload_enabled`, `endpoint_parameters_enabled` and `storage_enabled` [GH-23149] From 895a32236c717c4d91fba770adab747fbfc252c0 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Tue, 19 Sep 2023 18:56:26 +0200 Subject: [PATCH 240/336] removing #23306 since it's not user facing / fmt --- CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc99f1458808..6639a62221fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,13 +8,12 @@ ENHANCEMENTS: * dependencies: downgrading to `v1.12.5` of `github.com/rickb777/date` [GH-23296] * `mysql`: updating to use API Version `2022-01-01` [GH-23320] -* dependencies - swap Virtual Machine Ids for `hashicorp/go-azure-helpers/commonids` [GH-23306] * `azurerm_container_app` - add support for scale rules [GH-23294] * `azurerm_bot_channel_directline` - add support for `user_upload_enabled`, `endpoint_parameters_enabled` and `storage_enabled` [GH-23149] BUG FIXES: -* DataSource: `azurerm_container_app_environment`: fix `log_analytics_workspace_name` output to correct value [GH-23298] +* Data Source: `azurerm_container_app_environment`: fix `log_analytics_workspace_name` output to correct value [GH-23298] * `azurerm_linux_web_app` - fix docker app stack update [GH-23303] * `azurerm_linux_web_app` - Fix crash in auto heal expansion [GH-21328] * `azurerm_linux_web_app_slot` - fix docker app stack update [GH-23303] From 40364bf3de0d5bf3146703c0273b150bec0f52bf Mon Sep 17 00:00:00 2001 From: Xu Wu Date: Wed, 20 Sep 2023 13:37:47 +0800 Subject: [PATCH 241/336] add missing properties in webapplication firewall policy (#23239) --- ...eb_application_firewall_policy_resource.go | 73 ++++++- ...plication_firewall_policy_resource_test.go | 197 ++++++++++++++++++ ..._application_firewall_policy.html.markdown | 10 +- 3 files changed, 273 insertions(+), 7 deletions(-) diff --git a/internal/services/network/web_application_firewall_policy_resource.go b/internal/services/network/web_application_firewall_policy_resource.go index dc2f834dba84..16e2e0ce25b5 100644 --- a/internal/services/network/web_application_firewall_policy_resource.go +++ b/internal/services/network/web_application_firewall_policy_resource.go @@ -168,6 +168,7 @@ func resourceWebApplicationFirewallPolicy() *pluginsdk.Resource { Required: true, ValidateFunc: validation.StringInSlice([]string{ string(webapplicationfirewallpolicies.WebApplicationFirewallRuleTypeMatchRule), + string(webapplicationfirewallpolicies.WebApplicationFirewallRuleTypeRateLimitRule), string(webapplicationfirewallpolicies.WebApplicationFirewallRuleTypeInvalid), }, false), }, @@ -175,6 +176,22 @@ func resourceWebApplicationFirewallPolicy() *pluginsdk.Resource { Type: pluginsdk.TypeString, Optional: true, }, + "rate_limit_duration": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringInSlice(webapplicationfirewallpolicies.PossibleValuesForApplicationGatewayFirewallRateLimitDuration(), false), + }, + "rate_limit_threshold": { + Type: pluginsdk.TypeInt, + Optional: true, + ValidateFunc: validation.IntAtLeast(1), + }, + "group_rate_limit_by": { + // group variables combination not supported yet, use a single variable name + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringInSlice(webapplicationfirewallpolicies.PossibleValuesForApplicationGatewayFirewallUserSessionVariable(), false), + }, }, }, }, @@ -349,6 +366,7 @@ func resourceWebApplicationFirewallPolicy() *pluginsdk.Resource { Optional: true, Default: true, }, + "mode": { Type: pluginsdk.TypeString, Optional: true, @@ -358,23 +376,34 @@ func resourceWebApplicationFirewallPolicy() *pluginsdk.Resource { }, false), Default: string(webapplicationfirewallpolicies.WebApplicationFirewallModePrevention), }, + "request_body_check": { Type: pluginsdk.TypeBool, Optional: true, Default: true, }, + "file_upload_limit_in_mb": { Type: pluginsdk.TypeInt, Optional: true, ValidateFunc: validation.IntBetween(1, 4000), Default: 100, }, + "max_request_body_size_in_kb": { Type: pluginsdk.TypeInt, Optional: true, ValidateFunc: validation.IntBetween(8, 2000), Default: 128, }, + + "request_body_inspect_limit_in_kb": { + Type: pluginsdk.TypeInt, + Optional: true, + Default: 128, + ValidateFunc: validation.IntAtLeast(0), + }, + "log_scrubbing": { Type: pluginsdk.TypeList, MaxItems: 1, @@ -618,6 +647,27 @@ func expandWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(input [] RuleType: webapplicationfirewallpolicies.WebApplicationFirewallRuleType(ruleType), } + if rateLimitDuration, ok := v["rate_limit_duration"]; ok && rateLimitDuration.(string) != "" { + result.RateLimitDuration = pointer.To(webapplicationfirewallpolicies.ApplicationGatewayFirewallRateLimitDuration(rateLimitDuration.(string))) + } + + if rateLimitThreshHold, ok := v["rate_limit_threshold"]; ok && rateLimitThreshHold.(int) > 0 { + result.RateLimitThreshold = pointer.To(int64(rateLimitThreshHold.(int))) + } + + if groupBy, ok := v["group_rate_limit_by"]; ok && groupBy.(string) != "" { + groups := []webapplicationfirewallpolicies.GroupByUserSession{ + { + GroupByVariables: []webapplicationfirewallpolicies.GroupByVariable{ + { + VariableName: webapplicationfirewallpolicies.ApplicationGatewayFirewallUserSessionVariable(groupBy.(string)), + }, + }, + }, + } + result.GroupByUserSession = &groups + } + results = append(results, result) } return &results @@ -639,13 +689,15 @@ func expandWebApplicationFirewallPolicyPolicySettings(input []interface{}) *weba fileUploadLimitInMb := v["file_upload_limit_in_mb"].(int) result := webapplicationfirewallpolicies.PolicySettings{ - State: pointer.To(enabled), - Mode: pointer.To(webapplicationfirewallpolicies.WebApplicationFirewallMode(mode)), - RequestBodyCheck: pointer.To(requestBodyCheck), - MaxRequestBodySizeInKb: pointer.To(int64(maxRequestBodySizeInKb)), - FileUploadLimitInMb: pointer.To(int64(fileUploadLimitInMb)), - LogScrubbing: expandWebApplicationFirewallPolicyLogScrubbing(v["log_scrubbing"].([]interface{})), + State: pointer.To(enabled), + Mode: pointer.To(webapplicationfirewallpolicies.WebApplicationFirewallMode(mode)), + RequestBodyCheck: pointer.To(requestBodyCheck), + MaxRequestBodySizeInKb: pointer.To(int64(maxRequestBodySizeInKb)), + FileUploadLimitInMb: pointer.To(int64(fileUploadLimitInMb)), + LogScrubbing: expandWebApplicationFirewallPolicyLogScrubbing(v["log_scrubbing"].([]interface{})), + RequestBodyInspectLimitInKB: pointer.To(int64(v["request_body_inspect_limit_in_kb"].(int))), } + return &result } @@ -961,6 +1013,14 @@ func flattenWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(input * v["match_conditions"] = flattenWebApplicationFirewallPolicyMatchCondition(item.MatchConditions) v["priority"] = int(item.Priority) v["rule_type"] = string(item.RuleType) + v["rate_limit_duration"] = pointer.From(item.RateLimitDuration) + v["rate_limit_threshold"] = pointer.From(item.RateLimitThreshold) + + if item.GroupByUserSession != nil && len(*item.GroupByUserSession) > 0 { + if groupVariable := (*item.GroupByUserSession)[0].GroupByVariables; len(groupVariable) > 0 { + v["group_rate_limit_by"] = groupVariable[0].VariableName + } + } results = append(results, v) } @@ -981,6 +1041,7 @@ func flattenWebApplicationFirewallPolicyPolicySettings(input *webapplicationfire result["max_request_body_size_in_kb"] = int(pointer.From(input.MaxRequestBodySizeInKb)) result["file_upload_limit_in_mb"] = int(pointer.From(input.FileUploadLimitInMb)) result["log_scrubbing"] = flattenWebApplicationFirewallPolicyLogScrubbing(input.LogScrubbing) + result["request_body_inspect_limit_in_kb"] = pointer.From(input.RequestBodyInspectLimitInKB) return []interface{}{result} } diff --git a/internal/services/network/web_application_firewall_policy_resource_test.go b/internal/services/network/web_application_firewall_policy_resource_test.go index bd2231aa5e87..d93ccd47433d 100644 --- a/internal/services/network/web_application_firewall_policy_resource_test.go +++ b/internal/services/network/web_application_firewall_policy_resource_test.go @@ -226,6 +226,35 @@ func TestAccWebApplicationFirewallPolicy_updateOverrideRules(t *testing.T) { }) } +func TestAccWebApplicationFirewallPolicy_rateLimit(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_web_application_firewall_policy", "test") + r := WebApplicationFirewallResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.rateLimit(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.rateLimitUpdate(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.rateLimit(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func TestAccWebApplicationFirewallPolicy_knownCVEs(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_web_application_firewall_policy", "test") r := WebApplicationFirewallResource{} @@ -513,6 +542,174 @@ resource "azurerm_web_application_firewall_policy" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } +func (WebApplicationFirewallResource) rateLimit(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_web_application_firewall_policy" "test" { + name = "acctestwafpolicy-%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + + tags = { + env = "test" + } + + custom_rules { + name = "Rule1" + priority = 1 + rule_type = "RateLimitRule" + rate_limit_duration = "FiveMins" + rate_limit_threshold = 100 + group_rate_limit_by = "ClientAddr" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24", "10.0.0.0/24"] + } + + action = "Block" + } + + managed_rules { + exclusion { + match_variable = "RequestHeaderNames" + selector = "x-shared-secret" + selector_match_operator = "Equals" + } + + exclusion { + match_variable = "RequestCookieNames" + selector = "too-much-fun" + selector_match_operator = "EndsWith" + } + + managed_rule_set { + type = "OWASP" + version = "3.2" + + rule_group_override { + rule_group_name = "REQUEST-920-PROTOCOL-ENFORCEMENT" + rule { + id = "920300" + enabled = true + action = "Log" + } + + rule { + id = "920440" + enabled = true + action = "Block" + } + } + } + } + + policy_settings { + enabled = true + mode = "Prevention" + request_body_inspect_limit_in_kb = 1000 + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +} + +func (WebApplicationFirewallResource) rateLimitUpdate(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_web_application_firewall_policy" "test" { + name = "acctestwafpolicy-%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + + tags = { + env = "test" + } + + custom_rules { + name = "Rule1" + priority = 1 + rule_type = "RateLimitRule" + rate_limit_duration = "OneMin" + rate_limit_threshold = 123 + group_rate_limit_by = "GeoLocation" + + match_conditions { + match_variables { + variable_name = "RemoteAddr" + } + + operator = "IPMatch" + negation_condition = false + match_values = ["192.168.1.0/24", "10.0.0.0/24"] + } + + action = "Block" + } + + managed_rules { + exclusion { + match_variable = "RequestHeaderNames" + selector = "x-shared-secret" + selector_match_operator = "Equals" + } + + exclusion { + match_variable = "RequestCookieNames" + selector = "too-much-fun" + selector_match_operator = "EndsWith" + } + + managed_rule_set { + type = "OWASP" + version = "3.2" + + rule_group_override { + rule_group_name = "REQUEST-920-PROTOCOL-ENFORCEMENT" + rule { + id = "920300" + enabled = true + action = "Log" + } + + rule { + id = "920440" + enabled = true + action = "Block" + } + } + } + } + + policy_settings { + enabled = true + mode = "Prevention" + request_body_inspect_limit_in_kb = 1234 + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +} + func (WebApplicationFirewallResource) updateOverrideRules(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { diff --git a/website/docs/r/web_application_firewall_policy.html.markdown b/website/docs/r/web_application_firewall_policy.html.markdown index 303aeb6c6d27..6f84692021ff 100644 --- a/website/docs/r/web_application_firewall_policy.html.markdown +++ b/website/docs/r/web_application_firewall_policy.html.markdown @@ -140,12 +140,18 @@ The `custom_rules` block supports the following: * `priority` - (Required) Describes priority of the rule. Rules with a lower value will be evaluated before rules with a higher value. -* `rule_type` - (Required) Describes the type of rule. Possible values are `MatchRule` and `Invalid`. +* `rule_type` - (Required) Describes the type of rule. Possible values are `MatchRule`, `RateLimitRule` and `Invalid`. * `match_conditions` - (Required) One or more `match_conditions` blocks as defined below. * `action` - (Required) Type of action. Possible values are `Allow`, `Block` and `Log`. +* `rate_limit_duration` - (Optional) Specifies the duration at which the rate limit policy will be applied. Should be used with `RateLimitRule` rule type. Possible values are `FiveMins` and `OneMin`. + +* `rate_limit_threshold` - (Optional) Specifies the threshold value for the rate limit policy. Must be greater than or equal to 1 if provided. + +* `group_rate_limit_by` - (Optional) Specifies what grouping the rate limit will count requests by. Possible values are `GeoLocation`, `ClientAddr` and `None`. + --- The `match_conditions` block supports the following: @@ -184,6 +190,8 @@ The `policy_settings` block supports the following: * `log_scrubbing` - (Optional) One `log_scrubbing` block as defined below. +* `request_body_inspect_limit_in_kb` - (Optional) Specifies the maximum request body inspection limit in KB for the Web Application Firewall. Defaults to `128`. + --- The `managed_rules` block supports the following: From 856d28396e7d4f64e721f58809269c2bf6972174 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Tue, 19 Sep 2023 22:40:53 -0700 Subject: [PATCH 242/336] Fix remaining issues coming from make lint (#23330) --- .../compute/validate/linux_admin_password.go | 4 ++-- .../compute/validate/windows_admin_password.go | 4 ++-- .../services/firewall/validate/port_or_port_range.go | 12 ++++++------ .../services/postgres/validate/database_charset.go | 2 +- .../validate/postgresql_database_collation.go | 12 ++++++------ .../postgresql_flexible_server_database_collation.go | 2 +- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/internal/services/compute/validate/linux_admin_password.go b/internal/services/compute/validate/linux_admin_password.go index f4219dd9f68e..4fe4026c5d0c 100644 --- a/internal/services/compute/validate/linux_admin_password.go +++ b/internal/services/compute/validate/linux_admin_password.go @@ -15,13 +15,13 @@ func LinuxAdminPassword(i interface{}, k string) (warnings []string, errors []er v, ok := i.(string) if !ok { errors = append(errors, fmt.Errorf("expected %q to be a string but it wasn't", k)) - return + return warnings, errors } // adminPassword must not be empty. if strings.TrimSpace(v) == "" { errors = append(errors, fmt.Errorf("%q must not be empty", k)) - return + return warnings, errors } // adminPassword Min-length is 6 characters and Max-length is 72 characters. diff --git a/internal/services/compute/validate/windows_admin_password.go b/internal/services/compute/validate/windows_admin_password.go index b773168a2683..0024b7b98699 100644 --- a/internal/services/compute/validate/windows_admin_password.go +++ b/internal/services/compute/validate/windows_admin_password.go @@ -15,13 +15,13 @@ func WindowsAdminPassword(i interface{}, k string) (warnings []string, errors [] v, ok := i.(string) if !ok { errors = append(errors, fmt.Errorf("expected %q to be a string but it wasn't", k)) - return + return warnings, errors } // adminPassword must not be empty. if strings.TrimSpace(v) == "" { errors = append(errors, fmt.Errorf("%q must not be empty", k)) - return + return warnings, errors } // adminPassword Min-length is 8 characters and Max-length is 123 characters. diff --git a/internal/services/firewall/validate/port_or_port_range.go b/internal/services/firewall/validate/port_or_port_range.go index 5a7e5d447874..5620c5bd51ea 100644 --- a/internal/services/firewall/validate/port_or_port_range.go +++ b/internal/services/firewall/validate/port_or_port_range.go @@ -14,7 +14,7 @@ func PortOrPortRangeWithin(min int, max int) func(interface{}, string) ([]string v, ok := i.(string) if !ok { errors = append(errors, fmt.Errorf("expected type of %q to be string", k)) - return + return warnings, errors } assertWithinRange := func(n int) error { @@ -29,7 +29,7 @@ func PortOrPortRangeWithin(min int, max int) func(interface{}, string) ([]string groups := regexp.MustCompile(`^(\d+)((-)(\d+))?$`).FindStringSubmatch(v) if len(groups) != 5 { errors = append(errors, fmt.Errorf("expected `number` or `num1-num2` but got %q", v)) - return + return warnings, errors } if groups[2] == "" { @@ -37,7 +37,7 @@ func PortOrPortRangeWithin(min int, max int) func(interface{}, string) ([]string if err := assertWithinRange(p1); err != nil { errors = append(errors, err) - return + return warnings, errors } } else { p1, _ := strconv.Atoi(groups[1]) @@ -45,17 +45,17 @@ func PortOrPortRangeWithin(min int, max int) func(interface{}, string) ([]string if p1 >= p2 { errors = append(errors, fmt.Errorf("beginning port (%d) should be less than ending port (%d)", p1, p2)) - return + return warnings, errors } if err := assertWithinRange(p1); err != nil { errors = append(errors, err) - return + return warnings, errors } if err := assertWithinRange(p2); err != nil { errors = append(errors, err) - return + return warnings, errors } } diff --git a/internal/services/postgres/validate/database_charset.go b/internal/services/postgres/validate/database_charset.go index 14dc69ecfc4b..c249c9e2db1c 100644 --- a/internal/services/postgres/validate/database_charset.go +++ b/internal/services/postgres/validate/database_charset.go @@ -12,7 +12,7 @@ func DatabaseCharset(v interface{}, k string) (warnings []string, errors []error value, ok := v.(string) if !ok { errors = append(errors, fmt.Errorf("expected type of %s to be string", k)) - return + return warnings, errors } // https://www.postgresql.org/docs/13/multibyte.html#CHARSET-TABLE diff --git a/internal/services/postgres/validate/postgresql_database_collation.go b/internal/services/postgres/validate/postgresql_database_collation.go index 28583744e3ed..29f60928f178 100644 --- a/internal/services/postgres/validate/postgresql_database_collation.go +++ b/internal/services/postgres/validate/postgresql_database_collation.go @@ -13,11 +13,11 @@ func PostgresqlDatabaseCollation(v interface{}, k string) (warnings []string, er originalValue, ok := v.(string) if !ok { errors = append(errors, fmt.Errorf("expected type of %s to be string", k)) - return + return warnings, errors } if _, isSpecialCase := specialCases[originalValue]; isSpecialCase { - return + return warnings, errors } value := strings.ToLower(originalValue) @@ -25,7 +25,7 @@ func PostgresqlDatabaseCollation(v interface{}, k string) (warnings []string, er // based on the string format, determine what we're validating if _, isLanguageCode := languageCodes[value]; isLanguageCode { - return + return warnings, errors } // either `en-GB`, `en_GB`, ja_001` or `jv_java_id` @@ -38,7 +38,7 @@ func PostgresqlDatabaseCollation(v interface{}, k string) (warnings []string, er containsUnderscore := strings.Contains(value, "_") if containsDash && containsUnderscore { errors = append(errors, databaseCollationDidNotMatchError(k, originalValue)) - return + return warnings, errors } var split []string @@ -49,14 +49,14 @@ func PostgresqlDatabaseCollation(v interface{}, k string) (warnings []string, er } if len(split) == 0 { errors = append(errors, databaseCollationDidNotMatchError(k, originalValue)) - return + return warnings, errors } // validate the language code is valid languageCode := split[0] if _, languageCodeIsValid := languageCodes[languageCode]; !languageCodeIsValid { errors = append(errors, databaseCollationDidNotMatchError(k, originalValue)) - return + return warnings, errors } // we can't do much about the locale, so we'll assume that's fine for now diff --git a/internal/services/postgres/validate/postgresql_flexible_server_database_collation.go b/internal/services/postgres/validate/postgresql_flexible_server_database_collation.go index 8f12a03b1950..817339cff537 100644 --- a/internal/services/postgres/validate/postgresql_flexible_server_database_collation.go +++ b/internal/services/postgres/validate/postgresql_flexible_server_database_collation.go @@ -11,7 +11,7 @@ func PostgresqlFlexibleServerDatabaseCollation(v interface{}, k string) (warning value, ok := v.(string) if !ok { errors = append(errors, fmt.Errorf("expected type of %s to be string", k)) - return + return warnings, errors } collations := map[string]bool{ From 7e2a425961d425a06d46bec677285d919452465d Mon Sep 17 00:00:00 2001 From: Yifan Bian Date: Wed, 20 Sep 2023 14:36:39 +0800 Subject: [PATCH 243/336] `azurerm_data_factory_dataset_parquet` - Support `azure_blob_fs_location` (#23261) * `data_factory_dataset_parquet` support `azure_blob_fs_location` * support read azure_blob_fs_location * add acc test * ExactlyOneOf and doc * also update azure_blob_fs_location for dataset_delimited_text --- internal/services/datafactory/data_factory.go | 42 ++--- ...factory_dataset_delimited_text_resource.go | 19 ++- ...ry_dataset_delimited_text_resource_test.go | 79 +++++++++ .../data_factory_dataset_parquet_resource.go | 65 ++++++-- ...a_factory_dataset_parquet_resource_test.go | 151 ++++++++++++++++++ ...ctory_dataset_delimited_text.html.markdown | 6 + ...data_factory_dataset_parquet.html.markdown | 28 +++- 7 files changed, 348 insertions(+), 42 deletions(-) diff --git a/internal/services/datafactory/data_factory.go b/internal/services/datafactory/data_factory.go index eb1c95309be4..cc16640fb9e7 100644 --- a/internal/services/datafactory/data_factory.go +++ b/internal/services/datafactory/data_factory.go @@ -424,18 +424,14 @@ func expandDataFactoryDatasetAzureBlobFSLocation(d *pluginsdk.ResourceData) data props := azureBlobFsLocations[0].(map[string]interface{}) - blobStorageLocation := datafactory.AzureBlobFSLocation{ - FileSystem: props["file_system"].(string), + blobFSLocation := datafactory.AzureBlobFSLocation{ Type: datafactory.TypeBasicDatasetLocationTypeAzureBlobFSLocation, - } - if path := props["path"].(string); len(path) > 0 { - blobStorageLocation.FolderPath = path - } - if filename := props["filename"].(string); len(filename) > 0 { - blobStorageLocation.FileName = filename + FileSystem: expandDataFactoryExpressionResultType(props["file_system"].(string), props["dynamic_file_system_enabled"].(bool)), + FolderPath: expandDataFactoryExpressionResultType(props["path"].(string), props["dynamic_path_enabled"].(bool)), + FileName: expandDataFactoryExpressionResultType(props["filename"].(string), props["dynamic_filename_enabled"].(bool)), } - return blobStorageLocation + return blobFSLocation } func flattenDataFactoryDatasetHTTPServerLocation(input *datafactory.HTTPServerLocation) []interface{} { @@ -490,31 +486,25 @@ func flattenDataFactoryDatasetAzureBlobFSLocation(input *datafactory.AzureBlobFS if input == nil { return []interface{}{} } + result := make(map[string]interface{}) - fileSystem, path, fileName := "", "", "" if input.FileSystem != nil { - if v, ok := input.FileSystem.(string); ok { - fileSystem = v - } + fileSystem, dynamicFileSystemEnabled := flattenDataFactoryExpressionResultType(input.FileSystem) + result["file_system"] = fileSystem + result["dynamic_file_system_enabled"] = dynamicFileSystemEnabled } if input.FolderPath != nil { - if v, ok := input.FolderPath.(string); ok { - path = v - } + path, dynamicPathEnabled := flattenDataFactoryExpressionResultType(input.FolderPath) + result["path"] = path + result["dynamic_path_enabled"] = dynamicPathEnabled } if input.FileName != nil { - if v, ok := input.FileName.(string); ok { - fileName = v - } + filename, dynamicFilenameEnabled := flattenDataFactoryExpressionResultType(input.FileName) + result["filename"] = filename + result["dynamic_filename_enabled"] = dynamicFilenameEnabled } - return []interface{}{ - map[string]interface{}{ - "file_system": fileSystem, - "path": path, - "filename": fileName, - }, - } + return []interface{}{result} } func flattenDataFactoryDatasetSFTPLocation(input *datafactory.SftpLocation) []interface{} { diff --git a/internal/services/datafactory/data_factory_dataset_delimited_text_resource.go b/internal/services/datafactory/data_factory_dataset_delimited_text_resource.go index cbcd77c4afa0..3f44a8dfb580 100644 --- a/internal/services/datafactory/data_factory_dataset_delimited_text_resource.go +++ b/internal/services/datafactory/data_factory_dataset_delimited_text_resource.go @@ -147,19 +147,34 @@ func resourceDataFactoryDatasetDelimitedText() *pluginsdk.Resource { Schema: map[string]*pluginsdk.Schema{ "file_system": { Type: pluginsdk.TypeString, - Required: true, + Optional: true, ValidateFunc: validation.StringIsNotEmpty, }, + "dynamic_file_system_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, "path": { Type: pluginsdk.TypeString, Optional: true, ValidateFunc: validation.StringIsNotEmpty, }, + "dynamic_path_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, "filename": { Type: pluginsdk.TypeString, Optional: true, ValidateFunc: validation.StringIsNotEmpty, }, + "dynamic_filename_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, }, }, }, @@ -344,7 +359,7 @@ func resourceDataFactoryDatasetDelimitedTextCreateUpdate(d *pluginsdk.ResourceDa location := expandDataFactoryDatasetLocation(d) if location == nil { - return fmt.Errorf("one of `http_server_location`, `azure_blob_storage_location` must be specified to create a DataFactory Delimited Text Dataset") + return fmt.Errorf("one of `http_server_location`, `azure_blob_fs_location`, `azure_blob_storage_location` must be specified to create a DataFactory Delimited Text Dataset") } delimited_textDatasetProperties := datafactory.DelimitedTextDatasetTypeProperties{ diff --git a/internal/services/datafactory/data_factory_dataset_delimited_text_resource_test.go b/internal/services/datafactory/data_factory_dataset_delimited_text_resource_test.go index d37fc0b9b1a7..07512ce3f677 100644 --- a/internal/services/datafactory/data_factory_dataset_delimited_text_resource_test.go +++ b/internal/services/datafactory/data_factory_dataset_delimited_text_resource_test.go @@ -134,6 +134,13 @@ func TestAccDataFactoryDatasetDelimitedText_blobFS(t *testing.T) { ), }, data.ImportStep(), + { + Config: r.blobFSDynamicPath(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } @@ -623,6 +630,78 @@ resource "azurerm_data_factory_dataset_delimited_text" "test" { } `, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger) } +func (DatasetDelimitedTextResource) blobFSDynamicPath(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-df-%d" + location = "%s" +} + +resource "azurerm_storage_account" "test" { + name = "acctestsa%s" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + account_kind = "BlobStorage" + account_tier = "Standard" + account_replication_type = "LRS" + is_hns_enabled = true + allow_nested_items_to_be_public = true +} + +resource "azurerm_storage_data_lake_gen2_filesystem" "test" { + name = "acctest-datalake-%d" + storage_account_id = azurerm_storage_account.test.id +} + +resource "azurerm_data_factory" "test" { + name = "acctestdf%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + + identity { + type = "SystemAssigned" + } +} + +resource "azurerm_role_assignment" "test" { + scope = azurerm_storage_account.test.id + role_definition_name = "Storage Blob Data Owner" + principal_id = azurerm_data_factory.test.identity.0.principal_id +} + +resource "azurerm_data_factory_linked_service_data_lake_storage_gen2" "test" { + name = "acctestDataLakeStorage%d" + data_factory_id = azurerm_data_factory.test.id + use_managed_identity = true + url = azurerm_storage_account.test.primary_dfs_endpoint +} + +resource "azurerm_data_factory_dataset_delimited_text" "test" { + name = "acctestds%d" + data_factory_id = azurerm_data_factory.test.id + linked_service_name = azurerm_data_factory_linked_service_data_lake_storage_gen2.test.name + + azure_blob_fs_location { + file_system = azurerm_storage_data_lake_gen2_filesystem.test.name + dynamic_file_system_enabled = true + path = "@concat('foo/bar/',formatDateTime(convertTimeZone(utcnow(),'UTC','W. Europe Standard Time'),'yyyy-MM-dd'))" + dynamic_path_enabled = true + } + + column_delimiter = "," + row_delimiter = "NEW" + encoding = "UTF-8" + quote_character = "x" + escape_character = "f" + first_row_as_header = true + null_value = "NULL" +} +`, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger) +} func (DatasetDelimitedTextResource) blobDynamicContainer(data acceptance.TestData) string { return fmt.Sprintf(` diff --git a/internal/services/datafactory/data_factory_dataset_parquet_resource.go b/internal/services/datafactory/data_factory_dataset_parquet_resource.go index 5fd00318ddd3..f853bba929d7 100644 --- a/internal/services/datafactory/data_factory_dataset_parquet_resource.go +++ b/internal/services/datafactory/data_factory_dataset_parquet_resource.go @@ -76,12 +76,54 @@ func resourceDataFactoryDatasetParquet() *pluginsdk.Resource { }, }, + // Parquet Specific Field, one option for 'location' + "azure_blob_fs_location": { + Type: pluginsdk.TypeList, + MaxItems: 1, + Optional: true, + ExactlyOneOf: []string{"azure_blob_fs_location", "azure_blob_storage_location", "http_server_location"}, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "file_system": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + "dynamic_file_system_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + "path": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + "dynamic_path_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + "filename": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + "dynamic_filename_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + }, + }, + }, + // Parquet Specific Field, one option for 'location' "azure_blob_storage_location": { - Type: pluginsdk.TypeList, - MaxItems: 1, - Optional: true, - ConflictsWith: []string{"http_server_location"}, + Type: pluginsdk.TypeList, + MaxItems: 1, + Optional: true, + ExactlyOneOf: []string{"azure_blob_fs_location", "azure_blob_storage_location", "http_server_location"}, Elem: &pluginsdk.Resource{ Schema: map[string]*pluginsdk.Schema{ "container": { @@ -156,10 +198,10 @@ func resourceDataFactoryDatasetParquet() *pluginsdk.Resource { // Parquet Specific Field, one option for 'location' "http_server_location": { - Type: pluginsdk.TypeList, - MaxItems: 1, - Optional: true, - ConflictsWith: []string{"azure_blob_storage_location"}, + Type: pluginsdk.TypeList, + MaxItems: 1, + Optional: true, + ExactlyOneOf: []string{"azure_blob_fs_location", "azure_blob_storage_location", "http_server_location"}, Elem: &pluginsdk.Resource{ Schema: map[string]*pluginsdk.Schema{ "relative_url": { @@ -270,7 +312,7 @@ func resourceDataFactoryDatasetParquetCreateUpdate(d *pluginsdk.ResourceData, me location := expandDataFactoryDatasetLocation(d) if location == nil { - return fmt.Errorf("One of `http_server_location`, `azure_blob_storage_location` must be specified to create a DataFactory Parquet Dataset") + return fmt.Errorf("One of `http_server_location`, `azure_blob_fs_location`, `azure_blob_storage_location` must be specified to create a DataFactory Parquet Dataset") } parquetDatasetProperties := datafactory.ParquetDatasetTypeProperties{ @@ -394,6 +436,11 @@ func resourceDataFactoryDatasetParquetRead(d *pluginsdk.ResourceData, meta inter return fmt.Errorf("setting `azure_blob_storage_location` for Data Factory Parquet Dataset %s", err) } } + if azureBlobFSLocation, ok := properties.Location.AsAzureBlobFSLocation(); ok { + if err := d.Set("azure_blob_fs_location", flattenDataFactoryDatasetAzureBlobFSLocation(azureBlobFSLocation)); err != nil { + return fmt.Errorf("setting `azure_blob_fs_location` for Data Factory Parquet Dataset %s", err) + } + } compressionCodec, ok := properties.CompressionCodec.(string) if !ok { diff --git a/internal/services/datafactory/data_factory_dataset_parquet_resource_test.go b/internal/services/datafactory/data_factory_dataset_parquet_resource_test.go index f78d42e1754f..751b59628de5 100644 --- a/internal/services/datafactory/data_factory_dataset_parquet_resource_test.go +++ b/internal/services/datafactory/data_factory_dataset_parquet_resource_test.go @@ -111,6 +111,50 @@ func TestAccDataFactoryDatasetParquet_blobDynamicContainer(t *testing.T) { }) } +func TestAccDataFactoryDatasetParquet_blobFS(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_data_factory_dataset_parquet", "test") + r := DatasetParquetResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.blobFS(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccDataFactoryDatasetParquet_blobFSDynamicPath(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_data_factory_dataset_parquet", "test") + r := DatasetParquetResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.blobFS(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.blobFSDynamicPath(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.blobFS(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func (t DatasetParquetResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := parse.DataSetID(state.ID) if err != nil { @@ -395,3 +439,110 @@ resource "azurerm_data_factory_dataset_parquet" "test" { } `, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger, data.RandomInteger, data.RandomInteger) } + +func (DatasetParquetResource) blobFS(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-df-%d" + location = "%s" +} + +resource "azurerm_storage_account" "test" { + name = "acctestdf%s" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + account_tier = "Standard" + account_replication_type = "GRS" + is_hns_enabled = true +} + +resource "azurerm_storage_container" "test" { + name = "content" + storage_account_name = azurerm_storage_account.test.name + container_access_type = "private" +} + +resource "azurerm_data_factory" "test" { + name = "acctestdf%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name +} + + +resource "azurerm_data_factory_linked_service_data_lake_storage_gen2" "test" { + name = "acctestlsdls%d" + data_factory_id = azurerm_data_factory.test.id + url = azurerm_storage_account.test.primary_dfs_endpoint + storage_account_key = azurerm_storage_account.test.primary_access_key +} + +resource "azurerm_data_factory_dataset_parquet" "test" { + name = "acctestds%d" + data_factory_id = azurerm_data_factory.test.id + linked_service_name = azurerm_data_factory_linked_service_data_lake_storage_gen2.test.name + + azure_blob_fs_location { + file_system = azurerm_storage_container.test.name + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger, data.RandomInteger, data.RandomInteger) +} + +func (DatasetParquetResource) blobFSDynamicPath(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-df-%d" + location = "%s" +} + +resource "azurerm_storage_account" "test" { + name = "acctestdf%s" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + account_tier = "Standard" + account_replication_type = "GRS" + is_hns_enabled = true +} + +resource "azurerm_storage_container" "test" { + name = "content" + storage_account_name = azurerm_storage_account.test.name + container_access_type = "private" +} + +resource "azurerm_data_factory" "test" { + name = "acctestdf%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name +} + + +resource "azurerm_data_factory_linked_service_data_lake_storage_gen2" "test" { + name = "acctestlsdls%d" + data_factory_id = azurerm_data_factory.test.id + url = azurerm_storage_account.test.primary_dfs_endpoint + storage_account_key = azurerm_storage_account.test.primary_access_key +} + +resource "azurerm_data_factory_dataset_parquet" "test" { + name = "acctestds%d" + data_factory_id = azurerm_data_factory.test.id + linked_service_name = azurerm_data_factory_linked_service_data_lake_storage_gen2.test.name + + azure_blob_fs_location { + file_system = azurerm_storage_container.test.name + dynamic_file_system_enabled = true + path = "@concat('foo/bar/',formatDateTime(convertTimeZone(utcnow(),'UTC','W. Europe Standard Time'),'yyyy-MM-dd'))" + dynamic_path_enabled = true + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger, data.RandomInteger, data.RandomInteger) +} diff --git a/website/docs/r/data_factory_dataset_delimited_text.html.markdown b/website/docs/r/data_factory_dataset_delimited_text.html.markdown index 36c90f71246a..49b2a11d539c 100644 --- a/website/docs/r/data_factory_dataset_delimited_text.html.markdown +++ b/website/docs/r/data_factory_dataset_delimited_text.html.markdown @@ -118,10 +118,16 @@ An `azure_blob_fs_location` block supports the following: * `file_system` - (Required) The storage data lake gen2 file system on the Azure Blob Storage Account hosting the file. +* `dynamic_file_system_enabled` - (Optional) Is the `file_system` using dynamic expression, function or system variables? Defaults to `false`. + * `path` - (Optional) The folder path to the file. +* `dynamic_path_enabled` - (Optional) Is the `path` using dynamic expression, function or system variables? Defaults to `false`. + * `filename` - (Optional) The filename of the file. +* `dynamic_filename_enabled` - (Optional) Is the `filename` using dynamic expression, function or system variables? Defaults to `false`. + --- An `azure_blob_storage_location` block supports the following: diff --git a/website/docs/r/data_factory_dataset_parquet.html.markdown b/website/docs/r/data_factory_dataset_parquet.html.markdown index 48646a2398b5..cca28815ddf9 100644 --- a/website/docs/r/data_factory_dataset_parquet.html.markdown +++ b/website/docs/r/data_factory_dataset_parquet.html.markdown @@ -70,6 +70,8 @@ The following supported locations for a Parquet Dataset: * `http_server_location` - (Optional) A `http_server_location` block as defined below. +* `azure_blob_fs_location` - (Optional) A `azure_blob_fs_location` block as defined below. + * `azure_blob_storage_location` - (Optional) A `azure_blob_storage_location` block as defined below. The following supported arguments are specific to Parquet Dataset: @@ -103,19 +105,35 @@ A `http_server_location` block supports the following: * `path` - (Optional) The folder path to the file on the web server. --- -A `azure_blob_storage_location` block supports the following: +A `azure_blob_fs_location` block supports the following: -* `container` - (Required) The container on the Azure Blob Storage Account hosting the file. +* `file_system` - (Required) The container on the Azure Data Lake Storage Account hosting the file. -* `filename` - (Optional) The filename of the file on the web server. +* `dynamic_file_system_enabled` - (Optional) Is the `file_system` using dynamic expression, function or system variables? Defaults to `false`. -* `dynamic_container_enabled` - (Optional) Is the `container` using dynamic expression, function or system variables? Defaults to `false`. +* `path` - (Optional) The folder path to the file on the Azure Data Lake Storage Account. * `dynamic_path_enabled` - (Optional) Is the `path` using dynamic expression, function or system variables? Defaults to `false`. +* `filename` - (Optional) The filename of the file on the Azure Data Lake Storage Account. + * `dynamic_filename_enabled` - (Optional) Is the `filename` using dynamic expression, function or system variables? Defaults to `false`. -* `path` - (Optional) The folder path to the file on the web server. +--- + +An `azure_blob_storage_location` block supports the following: + +* `container` - (Required) The container on the Azure Blob Storage Account hosting the file. + +* `dynamic_container_enabled` - (Optional) Is the `container` using dynamic expression, function or system variables? Defaults to `false`. + +* `path` - (Optional) The folder path to the file on the Azure Blob Storage Account. + +* `dynamic_path_enabled` - (Optional) Is the `path` using dynamic expression, function or system variables? Defaults to `false`. + +* `filename` - (Optional) The filename of the file on the Azure Blob Storage Account. + +* `dynamic_filename_enabled` - (Optional) Is the `filename` using dynamic expression, function or system variables? Defaults to `false`. ## Attributes Reference From 41497e9e68cc65c7cd01b02067ebb475214291e4 Mon Sep 17 00:00:00 2001 From: lonegunmanb Date: Wed, 20 Sep 2023 15:33:33 +0800 Subject: [PATCH 244/336] add mongodb connection string for azurerm_cosmosdb_account resource (#23331) --- .../cosmos/cosmosdb_account_resource.go | 36 ++++++++++++++++--- .../cosmosdb_mongo_database_resource_test.go | 12 +++++++ website/docs/r/cosmosdb_account.html.markdown | 16 +++++++++ 3 files changed, 60 insertions(+), 4 deletions(-) diff --git a/internal/services/cosmos/cosmosdb_account_resource.go b/internal/services/cosmos/cosmosdb_account_resource.go index 0895e96c1e0b..f24fbbd52b8f 100644 --- a/internal/services/cosmos/cosmosdb_account_resource.go +++ b/internal/services/cosmos/cosmosdb_account_resource.go @@ -40,10 +40,14 @@ import ( var CosmosDbAccountResourceName = "azurerm_cosmosdb_account" var connStringPropertyMap = map[string]string{ - "Primary SQL Connection String": "primary_sql_connection_string", - "Secondary SQL Connection String": "secondary_sql_connection_string", - "Primary Read-Only SQL Connection String": "primary_readonly_sql_connection_string", - "Secondary Read-Only SQL Connection String": "secondary_readonly_sql_connection_string", + "Primary SQL Connection String": "primary_sql_connection_string", + "Secondary SQL Connection String": "secondary_sql_connection_string", + "Primary Read-Only SQL Connection String": "primary_readonly_sql_connection_string", + "Secondary Read-Only SQL Connection String": "secondary_readonly_sql_connection_string", + "Primary MongoDB Connection String": "primary_mongodb_connection_string", + "Secondary MongoDB Connection String": "secondary_mongodb_connection_string", + "Primary Read-Only MongoDB Connection String": "primary_readonly_mongodb_connection_string", + "Secondary Read-Only MongoDB Connection String": "secondary_readonly_mongodb_connection_string", } type databaseAccountCapabilities string @@ -677,6 +681,30 @@ func resourceCosmosDbAccount() *pluginsdk.Resource { Sensitive: true, }, + "primary_mongodb_connection_string": { + Type: pluginsdk.TypeString, + Computed: true, + Sensitive: true, + }, + + "secondary_mongodb_connection_string": { + Type: pluginsdk.TypeString, + Computed: true, + Sensitive: true, + }, + + "primary_readonly_mongodb_connection_string": { + Type: pluginsdk.TypeString, + Computed: true, + Sensitive: true, + }, + + "secondary_readonly_mongodb_connection_string": { + Type: pluginsdk.TypeString, + Computed: true, + Sensitive: true, + }, + "tags": tags.Schema(), }, } diff --git a/internal/services/cosmos/cosmosdb_mongo_database_resource_test.go b/internal/services/cosmos/cosmosdb_mongo_database_resource_test.go index 8ecb42b9bb5b..50b3d7a1055a 100644 --- a/internal/services/cosmos/cosmosdb_mongo_database_resource_test.go +++ b/internal/services/cosmos/cosmosdb_mongo_database_resource_test.go @@ -28,6 +28,7 @@ func TestAccCosmosDbMongoDatabase_basic(t *testing.T) { Config: r.basic(data), Check: acceptance.ComposeAggregateTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), + checkAccCosmosDBAccount_mongodb("azurerm_cosmosdb_account.test"), ), }, data.ImportStep(), @@ -43,6 +44,7 @@ func TestAccCosmosDbMongoDatabase_complete(t *testing.T) { Config: r.complete(data), Check: acceptance.ComposeAggregateTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), + checkAccCosmosDBAccount_mongodb("azurerm_cosmosdb_account.test"), ), }, data.ImportStep(), @@ -90,6 +92,7 @@ func TestAccCosmosDbMongoDatabase_serverless(t *testing.T) { Config: r.serverless(data), Check: acceptance.ComposeAggregateTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), + checkAccCosmosDBAccount_mongodb("azurerm_cosmosdb_account.test"), ), }, data.ImportStep(), @@ -161,3 +164,12 @@ resource "azurerm_cosmosdb_mongo_database" "test" { } `, CosmosDBAccountResource{}.capabilities(data, documentdb.DatabaseAccountKindMongoDB, []string{"EnableServerless", "mongoEnableDocLevelTTL", "EnableMongo"}), data.RandomInteger) } + +func checkAccCosmosDBAccount_mongodb(resourceName string) acceptance.TestCheckFunc { + return acceptance.ComposeTestCheckFunc( + check.That(resourceName).Key("primary_mongodb_connection_string").Exists(), + check.That(resourceName).Key("secondary_mongodb_connection_string").Exists(), + check.That(resourceName).Key("primary_readonly_mongodb_connection_string").Exists(), + check.That(resourceName).Key("secondary_readonly_mongodb_connection_string").Exists(), + ) +} diff --git a/website/docs/r/cosmosdb_account.html.markdown b/website/docs/r/cosmosdb_account.html.markdown index c6c3ad11646b..0a8103bbb33b 100644 --- a/website/docs/r/cosmosdb_account.html.markdown +++ b/website/docs/r/cosmosdb_account.html.markdown @@ -311,6 +311,22 @@ In addition to the Arguments listed above - the following Attributes are exporte * `connection_strings` - A list of connection strings available for this CosmosDB account. +* `primary_sql_connection_string` - Primary SQL connection string for the CosmosDB Account. + +* `secondary_sql_connection_string` - Secondary SQL connection string for the CosmosDB Account. + +* `primary_readonly_sql_connection_string` - Primary readonly SQL connection string for the CosmosDB Account. + +* `secondary_readonly_sql_connection_string` - Secondary readonly SQL connection string for the CosmosDB Account. + +* `primary_mongodb_connection_string` - Primary Mongodb connection string for the CosmosDB Account. + +* `secondary_mongodb_connection_string` - Secondary Mongodb connection string for the CosmosDB Account. + +* `primary_readonly_mongodb_connection_string` - Primary readonly Mongodb connection string for the CosmosDB Account. + +* `secondary_readonly_mongodb_connection_string` - Secondary readonly Mongodb connection string for the CosmosDB Account. + --- An `identity` block exports the following: From 9e9af74b828587887f41fd9b94dda8db07628045 Mon Sep 17 00:00:00 2001 From: Yifan Bian Date: Wed, 20 Sep 2023 16:20:02 +0800 Subject: [PATCH 245/336] New resource: `azurerm_data_factory_dataset_azure_sql_table` (#23264) * try add azurerm_data_factory_dataset_azure_sql_table * try acc test * make it a typed resource * fix acc test * try use schema * minor update * update schema column type * change linked_service_name to linked_service_id * doc * update * requiresImport test --- internal/provider/services.go | 1 + internal/services/datafactory/data_factory.go | 34 +- ...actory_dataset_azure_sql_table_resource.go | 459 ++++++++++++++++++ ...y_dataset_azure_sql_table_resource_test.go | 254 ++++++++++ internal/services/datafactory/registration.go | 11 + ...tory_dataset_azure_sql_table.html.markdown | 97 ++++ 6 files changed, 853 insertions(+), 3 deletions(-) create mode 100644 internal/services/datafactory/data_factory_dataset_azure_sql_table_resource.go create mode 100644 internal/services/datafactory/data_factory_dataset_azure_sql_table_resource_test.go create mode 100644 website/docs/r/data_factory_dataset_azure_sql_table.html.markdown diff --git a/internal/provider/services.go b/internal/provider/services.go index 251ee20d930b..7f84046a203b 100644 --- a/internal/provider/services.go +++ b/internal/provider/services.go @@ -157,6 +157,7 @@ func SupportedTypedServices() []sdk.TypedServiceRegistration { dashboard.Registration{}, databoxedge.Registration{}, databricks.Registration{}, + datafactory.Registration{}, digitaltwins.Registration{}, disks.Registration{}, domainservices.Registration{}, diff --git a/internal/services/datafactory/data_factory.go b/internal/services/datafactory/data_factory.go index cc16640fb9e7..5f86c953ef53 100644 --- a/internal/services/datafactory/data_factory.go +++ b/internal/services/datafactory/data_factory.go @@ -145,9 +145,9 @@ func flattenDataFactoryVariables(input map[string]*datafactory.VariableSpecifica // DatasetColumn describes the attributes needed to specify a structure column for a dataset type DatasetColumn struct { - Name string `json:"name,omitempty"` - Description string `json:"description,omitempty"` - Type string `json:"type,omitempty"` + Name string `json:"name,omitempty" tfschema:"name"` + Description string `json:"description,omitempty" tfschema:"description"` + Type string `json:"type,omitempty" tfschema:"type"` } func expandDataFactoryDatasetStructure(input []interface{}) interface{} { @@ -197,6 +197,34 @@ func flattenDataFactoryStructureColumns(input interface{}) []interface{} { return output } +func flattenDataFactoryStructureColumnsToDatasetColumn(input interface{}) []DatasetColumn { + output := make([]DatasetColumn, 0) + + columns, ok := input.([]interface{}) + if !ok { + return output + } + + for _, v := range columns { + column, ok := v.(map[string]interface{}) + if !ok { + continue + } + var result DatasetColumn + if column["name"] != nil { + result.Name = column["name"].(string) + } + if column["type"] != nil { + result.Type = column["type"].(string) + } + if column["description"] != nil { + result.Description = column["description"].(string) + } + output = append(output, result) + } + return output +} + // DatasetSnowflakeSchemaColumn describes the attributes needed to specify a Snowflake schema column for a dataset type DatasetSnowflakeSchemaColumn struct { Name string `json:"name,omitempty"` diff --git a/internal/services/datafactory/data_factory_dataset_azure_sql_table_resource.go b/internal/services/datafactory/data_factory_dataset_azure_sql_table_resource.go new file mode 100644 index 000000000000..33ff7be45ecd --- /dev/null +++ b/internal/services/datafactory/data_factory_dataset_azure_sql_table_resource.go @@ -0,0 +1,459 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package datafactory + +import ( + "context" + "fmt" + "log" + "time" + + "github.com/Azure/azure-sdk-for-go/services/datafactory/mgmt/2018-06-01/datafactory" // nolint: staticcheck + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-sdk/resource-manager/datafactory/2018-06-01/factories" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/services/datafactory/parse" + "github.com/hashicorp/terraform-provider-azurerm/internal/services/datafactory/validate" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" + "github.com/hashicorp/terraform-provider-azurerm/utils" +) + +var _ sdk.Resource = DataFactoryDatasetAzureSQLTableResource{} + +type DataFactoryDatasetAzureSQLTableResource struct{} + +type DataFactoryDatasetAzureSQLTableResourceSchema struct { + Name string `tfschema:"name"` + DataFactoryId string `tfschema:"data_factory_id"` + LinkedServiceId string `tfschema:"linked_service_id"` + Schema string `tfschema:"schema"` + Table string `tfschema:"table"` + Parameters map[string]interface{} `tfschema:"parameters"` + Description string `tfschema:"description"` + Annotations []string `tfschema:"annotations"` + Folder string `tfschema:"folder"` + AdditionalProperties map[string]interface{} `tfschema:"additional_properties"` + SchemaColumn []DatasetColumn `tfschema:"schema_column"` +} + +func (DataFactoryDatasetAzureSQLTableResource) Arguments() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validate.LinkedServiceDatasetName, + }, + + "data_factory_id": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: factories.ValidateFactoryID, + }, + + "linked_service_id": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validate.LinkedServiceID, + }, + + "schema": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "table": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "parameters": { + Type: pluginsdk.TypeMap, + Optional: true, + Elem: &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + }, + }, + + "description": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "annotations": { + Type: pluginsdk.TypeList, + Optional: true, + Elem: &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + }, + }, + + "folder": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "additional_properties": { + Type: pluginsdk.TypeMap, + Optional: true, + Elem: &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + }, + }, + + "schema_column": { + Type: pluginsdk.TypeList, + Optional: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + "type": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringInSlice([]string{ + "Byte", + "Byte[]", + "Boolean", + "Date", + "DateTime", + "DateTimeOffset", + "Decimal", + "Double", + "Guid", + "Int16", + "Int32", + "Int64", + "Single", + "String", + "TimeSpan", + }, false), + }, + "description": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + }, + }, + }, + } +} + +func (DataFactoryDatasetAzureSQLTableResource) Attributes() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{} +} + +func (DataFactoryDatasetAzureSQLTableResource) ModelObject() interface{} { + return &DataFactoryDatasetAzureSQLTableResourceSchema{} +} + +func (DataFactoryDatasetAzureSQLTableResource) ResourceType() string { + return "azurerm_data_factory_dataset_azure_sql_table" +} + +func (r DataFactoryDatasetAzureSQLTableResource) Create() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.DataFactory.DatasetClient + subscriptionId := client.SubscriptionID + var data DataFactoryDatasetAzureSQLTableResourceSchema + if err := metadata.Decode(&data); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + dataFactoryId, err := factories.ParseFactoryID(data.DataFactoryId) + if err != nil { + return err + } + + id := parse.NewDataSetID(subscriptionId, dataFactoryId.ResourceGroupName, dataFactoryId.FactoryName, data.Name) + + existing, err := client.Get(ctx, id.ResourceGroup, id.FactoryName, id.Name, "") + if err != nil { + if !utils.ResponseWasNotFound(existing.Response) { + return fmt.Errorf("checking for presence of existing %s: %+v", id, err) + } + } + if !utils.ResponseWasNotFound(existing.Response) { + return metadata.ResourceRequiresImport(r.ResourceType(), id) + } + + azureSqlDatasetProperties := datafactory.AzureSQLTableDatasetTypeProperties{ + Schema: data.Schema, + Table: data.Table, + } + + linkedServiceId, err := parse.LinkedServiceID(data.LinkedServiceId) + if err != nil { + return err + } + if linkedServiceId.SubscriptionId != id.SubscriptionId || linkedServiceId.ResourceGroup != id.ResourceGroup || linkedServiceId.FactoryName != id.FactoryName { + return fmt.Errorf("checking the linked service %s: not within the same data factory as this dataset %s", data.LinkedServiceId, id.ID()) + } + linkedService := &datafactory.LinkedServiceReference{ + Type: pointer.To("LinkedServiceReference"), + ReferenceName: pointer.To(linkedServiceId.Name), + } + + description := data.Description + azureSqlTableset := datafactory.AzureSQLTableDataset{ + AzureSQLTableDatasetTypeProperties: &azureSqlDatasetProperties, + LinkedServiceName: linkedService, + Description: &description, + } + + if data.Folder != "" { + azureSqlTableset.Folder = &datafactory.DatasetFolder{ + Name: &data.Folder, + } + } + + if len(data.Parameters) > 0 { + azureSqlTableset.Parameters = expandDataSetParameters(data.Parameters) + } + + if len(data.Annotations) > 0 { + annotations := make([]interface{}, len(data.Annotations)) + for i, v := range data.Annotations { + annotations[i] = v + } + azureSqlTableset.Annotations = &annotations + } + + if len(data.AdditionalProperties) > 0 { + azureSqlTableset.AdditionalProperties = data.AdditionalProperties + } + + if len(data.SchemaColumn) > 0 { + azureSqlTableset.Structure = data.SchemaColumn + } + + datasetType := string(datafactory.TypeBasicDatasetTypeAzureSQLTable) + dataset := datafactory.DatasetResource{ + Properties: &azureSqlTableset, + Type: &datasetType, + } + + if _, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.FactoryName, id.Name, dataset, ""); err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + + metadata.SetID(id) + return nil + }, + } +} + +func (r DataFactoryDatasetAzureSQLTableResource) Update() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.DataFactory.DatasetClient + id, err := parse.DataSetID(metadata.ResourceData.Id()) + if err != nil { + return err + } + var data DataFactoryDatasetAzureSQLTableResourceSchema + if err := metadata.Decode(&data); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + dataset, err := client.Get(ctx, id.ResourceGroup, id.FactoryName, id.Name, "") + if err != nil { + return fmt.Errorf("retrieving existing %s: %+v", id, err) + } + + azureSqlTable, ok := dataset.Properties.AsAzureSQLTableDataset() + if !ok { + return fmt.Errorf("classifying Data Factory Dataset Azure SQL Table %s: Expected: %q Received: %T", *id, datafactory.TypeBasicDatasetTypeAzureSQLTable, dataset.Properties) + } + + if metadata.ResourceData.HasChanges("schema", "table") { + if azureSqlTable.AzureSQLTableDatasetTypeProperties == nil { + azureSqlTable.AzureSQLTableDatasetTypeProperties = &datafactory.AzureSQLTableDatasetTypeProperties{} + } + + if metadata.ResourceData.HasChange("schema") { + azureSqlTable.AzureSQLTableDatasetTypeProperties.Schema = data.Schema + } + + if metadata.ResourceData.HasChange("table") { + azureSqlTable.AzureSQLTableDatasetTypeProperties.Table = data.Table + } + } + + if metadata.ResourceData.HasChange("linked_service_id") { + linkedServiceId, err := parse.LinkedServiceID(data.LinkedServiceId) + if err != nil { + return err + } + if linkedServiceId.SubscriptionId != id.SubscriptionId || linkedServiceId.ResourceGroup != id.ResourceGroup || linkedServiceId.FactoryName != id.FactoryName { + return fmt.Errorf("checking the linked service %s: not within the same data factory as this dataset %s", data.LinkedServiceId, id.ID()) + } + azureSqlTable.LinkedServiceName = &datafactory.LinkedServiceReference{ + Type: pointer.To("LinkedServiceReference"), + ReferenceName: pointer.To(linkedServiceId.Name), + } + } + + if metadata.ResourceData.HasChange("description") { + azureSqlTable.Description = pointer.To(data.Description) + } + + if metadata.ResourceData.HasChange("folder") { + if data.Folder != "" { + azureSqlTable.Folder = &datafactory.DatasetFolder{ + Name: &data.Folder, + } + } else { + azureSqlTable.Folder = nil + } + } + + if metadata.ResourceData.HasChange("parameters") { + azureSqlTable.Parameters = expandDataSetParameters(data.Parameters) + } + + if metadata.ResourceData.HasChange("annotations") { + if len(data.Annotations) > 0 { + annotations := make([]interface{}, len(data.Annotations)) + for i, v := range data.Annotations { + annotations[i] = v + } + azureSqlTable.Annotations = &annotations + } else { + azureSqlTable.Annotations = nil + } + } + + if metadata.ResourceData.HasChange("additional_properties") { + azureSqlTable.AdditionalProperties = data.AdditionalProperties + } + + if metadata.ResourceData.HasChange("schema_column") { + azureSqlTable.Structure = data.SchemaColumn + } + + dataset = datafactory.DatasetResource{ + Type: pointer.To(string(datafactory.TypeBasicDatasetTypeAzureSQLTable)), + Properties: azureSqlTable, + } + + if _, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.FactoryName, id.Name, dataset, ""); err != nil { + return fmt.Errorf("updating %s: %+v", id, err) + } + + metadata.SetID(id) + return nil + }, + } +} + +func (DataFactoryDatasetAzureSQLTableResource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 5 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + d := metadata.ResourceData + client := metadata.Client.DataFactory.DatasetClient + id, err := parse.DataSetID(d.Id()) + if err != nil { + return err + } + + dataFactoryId := factories.NewFactoryID(id.SubscriptionId, id.ResourceGroup, id.FactoryName) + var state DataFactoryDatasetAzureSQLTableResourceSchema + + resp, err := client.Get(ctx, id.ResourceGroup, id.FactoryName, id.Name, "") + if err != nil { + if utils.ResponseWasNotFound(resp.Response) { + return metadata.MarkAsGone(id) + } + + return fmt.Errorf("retrieving %s: %+v", id, err) + } + + state.Name = id.Name + state.DataFactoryId = dataFactoryId.ID() + + azureSqlTable, ok := resp.Properties.AsAzureSQLTableDataset() + if !ok { + return fmt.Errorf("classifying Data Factory Dataset Azure SQL Table %s: Expected: %q Received: %T", *id, datafactory.TypeBasicDatasetTypeAzureSQLTable, resp.Properties) + } + + state.Description = pointer.From(azureSqlTable.Description) + state.AdditionalProperties = azureSqlTable.AdditionalProperties + + state.Parameters = flattenDataSetParameters(azureSqlTable.Parameters) + state.Annotations = flattenDataFactoryAnnotations(azureSqlTable.Annotations) + + if linkedService := azureSqlTable.LinkedServiceName; linkedService != nil && linkedService.ReferenceName != nil { + state.LinkedServiceId = parse.NewLinkedServiceID(id.SubscriptionId, id.ResourceGroup, id.FactoryName, *linkedService.ReferenceName).ID() + } + + if properties := azureSqlTable.AzureSQLTableDatasetTypeProperties; properties != nil { + if val, ok := properties.Schema.(string); ok { + state.Schema = val + } else { + state.Schema = "" + log.Printf("[DEBUG] Skipping `schema` since it's not a string") + } + + if val, ok := properties.Table.(string); ok { + state.Table = val + } else { + state.Table = "" + log.Printf("[DEBUG] Skipping `table` since it's not a string") + } + } + + state.Folder = "" + if folder := azureSqlTable.Folder; folder != nil && folder.Name != nil { + state.Folder = pointer.From(folder.Name) + } + + state.SchemaColumn = flattenDataFactoryStructureColumnsToDatasetColumn(azureSqlTable.Structure) + + return metadata.Encode(&state) + }, + } +} + +func (DataFactoryDatasetAzureSQLTableResource) Delete() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + d := metadata.ResourceData + client := metadata.Client.DataFactory.DatasetClient + + id, err := parse.DataSetID(d.Id()) + if err != nil { + return err + } + + response, err := client.Delete(ctx, id.ResourceGroup, id.FactoryName, id.Name) + if err != nil { + if !utils.ResponseWasNotFound(response) { + return fmt.Errorf("deleting %s: %+v", *id, err) + } + } + + return nil + }, + } +} + +func (DataFactoryDatasetAzureSQLTableResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return validate.DataSetID +} diff --git a/internal/services/datafactory/data_factory_dataset_azure_sql_table_resource_test.go b/internal/services/datafactory/data_factory_dataset_azure_sql_table_resource_test.go new file mode 100644 index 000000000000..faa1b35261b6 --- /dev/null +++ b/internal/services/datafactory/data_factory_dataset_azure_sql_table_resource_test.go @@ -0,0 +1,254 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package datafactory_test + +import ( + "context" + "fmt" + "testing" + + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/services/datafactory/parse" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/utils" +) + +type DatasetAzureSQLTableResource struct{} + +func TestAccDataFactoryDatasetAzureSQLTable_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_data_factory_dataset_azure_sql_table", "test") + r := DatasetAzureSQLTableResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccDataFactoryDatasetAzureSQLTable_update(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_data_factory_dataset_azure_sql_table", "test") + r := DatasetAzureSQLTableResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.update1(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("schema").HasValue("dbo"), + check.That(data.ResourceName).Key("table").HasValue("testTable"), + check.That(data.ResourceName).Key("folder").HasValue("testFolder"), + check.That(data.ResourceName).Key("parameters.%").HasValue("2"), + check.That(data.ResourceName).Key("annotations.#").HasValue("3"), + check.That(data.ResourceName).Key("schema_column.#").HasValue("1"), + check.That(data.ResourceName).Key("additional_properties.%").HasValue("2"), + check.That(data.ResourceName).Key("description").HasValue("test description"), + ), + }, + { + Config: r.update2(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("schema").IsEmpty(), + check.That(data.ResourceName).Key("table").IsEmpty(), + check.That(data.ResourceName).Key("folder").IsEmpty(), + check.That(data.ResourceName).Key("parameters.%").HasValue("3"), + check.That(data.ResourceName).Key("annotations.#").HasValue("0"), + check.That(data.ResourceName).Key("schema_column.#").HasValue("2"), + check.That(data.ResourceName).Key("additional_properties.%").HasValue("1"), + check.That(data.ResourceName).Key("description").HasValue("test description 2"), + ), + }, + data.ImportStep(), + }) +} + +func TestAccDataFactoryDatasetAzureSQLTable_requiresImport(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_data_factory_dataset_azure_sql_table", "test") + r := DatasetAzureSQLTableResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.RequiresImportErrorStep(r.requiresImport), + }) +} + +func (t DatasetAzureSQLTableResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { + id, err := parse.DataSetID(state.ID) + if err != nil { + return nil, err + } + + resp, err := clients.DataFactory.DatasetClient.Get(ctx, id.ResourceGroup, id.FactoryName, id.Name, "") + if err != nil { + return nil, fmt.Errorf("retrieving %s: %+v", *id, err) + } + + return utils.Bool(resp.ID != nil), nil +} + +func (DatasetAzureSQLTableResource) basic(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-df-%d" + location = "%s" +} + +resource "azurerm_data_factory" "test" { + name = "acctestdf%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name +} + +resource "azurerm_data_factory_linked_service_azure_sql_database" "test" { + name = "acctestlsazsql%d" + data_factory_id = azurerm_data_factory.test.id + use_managed_identity = true + connection_string = "Integrated Security=False;Data Source=test.database.windows.net;Initial Catalog=test" +} + +resource "azurerm_data_factory_dataset_azure_sql_table" "test" { + name = "acctestds%d" + data_factory_id = azurerm_data_factory.test.id + linked_service_id = azurerm_data_factory_linked_service_azure_sql_database.test.id +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) +} + +func (DatasetAzureSQLTableResource) update1(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-df-%d" + location = "%s" +} + +resource "azurerm_data_factory" "test" { + name = "acctestdf%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name +} + +resource "azurerm_data_factory_linked_service_azure_sql_database" "test" { + name = "acctestlsazsql%d" + data_factory_id = azurerm_data_factory.test.id + use_managed_identity = true + connection_string = "Integrated Security=False;Data Source=test.database.windows.net;Initial Catalog=test" +} + +resource "azurerm_data_factory_dataset_azure_sql_table" "test" { + name = "acctestds%d" + data_factory_id = azurerm_data_factory.test.id + linked_service_id = azurerm_data_factory_linked_service_azure_sql_database.test.id + + description = "test description" + annotations = ["test1", "test2", "test3"] + schema = "dbo" + table = "testTable" + folder = "testFolder" + + parameters = { + foo = "test1" + bar = "test2" + } + + additional_properties = { + foo = "test1" + bar = "test2" + } + + schema_column { + name = "test1" + type = "Byte" + description = "description" + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) +} + +func (DatasetAzureSQLTableResource) update2(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-df-%d" + location = "%s" +} + +resource "azurerm_data_factory" "test" { + name = "acctestdf%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name +} + +resource "azurerm_data_factory_linked_service_azure_sql_database" "test" { + name = "acctestlsazsql%d" + data_factory_id = azurerm_data_factory.test.id + use_managed_identity = true + connection_string = "Integrated Security=False;Data Source=test.database.windows.net;Initial Catalog=test" +} + +resource "azurerm_data_factory_dataset_azure_sql_table" "test" { + name = "acctestds%d" + data_factory_id = azurerm_data_factory.test.id + linked_service_id = azurerm_data_factory_linked_service_azure_sql_database.test.id + + description = "test description 2" + + parameters = { + foo = "test1" + bar = "test2" + buzz = "test3" + } + + additional_properties = { + foo = "test1" + } + + schema_column { + name = "test1" + type = "Byte" + description = "description" + } + + schema_column { + name = "test2" + type = "Byte" + description = "description" + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) +} + +func (r DatasetAzureSQLTableResource) requiresImport(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_data_factory_dataset_azure_sql_table" "import" { + name = azurerm_data_factory_dataset_azure_sql_table.test.name + data_factory_id = azurerm_data_factory_dataset_azure_sql_table.test.data_factory_id + linked_service_id = azurerm_data_factory_dataset_azure_sql_table.test.linked_service_id +} +`, r.basic(data)) +} diff --git a/internal/services/datafactory/registration.go b/internal/services/datafactory/registration.go index 7e942121c8a3..f83da8a69c5a 100644 --- a/internal/services/datafactory/registration.go +++ b/internal/services/datafactory/registration.go @@ -10,6 +10,7 @@ import ( type Registration struct{} +var _ sdk.TypedServiceRegistrationWithAGitHubLabel = Registration{} var _ sdk.UntypedServiceRegistrationWithAGitHubLabel = Registration{} func (r Registration) AssociatedGitHubLabel() string { @@ -28,6 +29,16 @@ func (r Registration) WebsiteCategories() []string { } } +func (Registration) DataSources() []sdk.DataSource { + return []sdk.DataSource{} +} + +func (Registration) Resources() []sdk.Resource { + return []sdk.Resource{ + DataFactoryDatasetAzureSQLTableResource{}, + } +} + // SupportedDataSources returns the supported Data Sources supported by this Service func (r Registration) SupportedDataSources() map[string]*pluginsdk.Resource { return map[string]*pluginsdk.Resource{ diff --git a/website/docs/r/data_factory_dataset_azure_sql_table.html.markdown b/website/docs/r/data_factory_dataset_azure_sql_table.html.markdown new file mode 100644 index 000000000000..5766e5cc9794 --- /dev/null +++ b/website/docs/r/data_factory_dataset_azure_sql_table.html.markdown @@ -0,0 +1,97 @@ +--- +subcategory: "Data Factory" +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_data_factory_dataset_azure_sql_table" +description: |- + Manages an Azure SQL Table Dataset inside an Azure Data Factory. +--- + +# azurerm_data_factory_dataset_azure_sql_table + +Manages an Azure SQL Table Dataset inside an Azure Data Factory. + +## Example Usage + +```hcl +resource "azurerm_resource_group" "example" { + name = "example-resources" + location = "West Europe" +} + +resource "azurerm_data_factory" "example" { + name = "example" + location = azurerm_resource_group.example.location + resource_group_name = azurerm_resource_group.example.name +} + +resource "azurerm_data_factory_linked_service_azure_sql_database" "example" { + name = "example" + data_factory_id = azurerm_data_factory.example.id + connection_string = "Integrated Security=False;Data Source=test;Initial Catalog=test;Initial Catalog=test;User ID=test;Password=test" +} + +resource "azurerm_data_factory_dataset_azure_sql_table" "example" { + name = "example" + data_factory_id = azurerm_data_factory.example.id + linked_service_id = azurerm_data_factory_linked_service_azure_sql_database.example.id +} +``` + +## Argument Reference + +The following arguments are supported: + +* `name` - (Required) Specifies the name of the Data Factory Dataset Azure SQL Table. Changing this forces a new resource to be created. Must be globally unique. See the [Microsoft documentation](https://docs.microsoft.com/azure/data-factory/naming-rules) for all restrictions. + +* `data_factory_id` - (Required) The Data Factory ID in which to associate the Linked Service with. Changing this forces a new resource. + +* `linked_service_id` - (Required) The Data Factory Linked Service ID in which to associate the Dataset with. + +* `schema` - (Optional) The schema name of the table in the Azure SQL Database. + +* `table` - (Optional) The table name of the table in the Azure SQL Database. + +* `folder` - (Optional) The folder that this Dataset is in. If not specified, the Dataset will appear at the root level. + +* `schema_column` - (Optional) A `schema_column` block as defined below. + +* `description` - (Optional) The description for the Data Factory Dataset Azure SQL Table. + +* `annotations` - (Optional) List of tags that can be used for describing the Data Factory Dataset Azure SQL Table. + +* `parameters` - (Optional) A map of parameters to associate with the Data Factory Dataset Azure SQL Table. + +* `additional_properties` - (Optional) A map of additional properties to associate with the Data Factory Dataset Azure SQL Table. + +--- + +A `schema_column` block supports the following: + +* `name` - (Required) The name of the column. + +* `type` - (Optional) Type of the column. Valid values are `Byte`, `Byte[]`, `Boolean`, `Date`, `DateTime`,`DateTimeOffset`, `Decimal`, `Double`, `Guid`, `Int16`, `Int32`, `Int64`, `Single`, `String`, `TimeSpan`. Please note these values are case sensitive. + +* `description` - (Optional) The description of the column. + +## Attributes Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the Data Factory Azure SQL Table Dataset. + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: + +* `create` - (Defaults to 30 minutes) Used when creating the Data Factory Azure SQL Table Dataset. +* `update` - (Defaults to 30 minutes) Used when updating the Data Factory Azure SQL Table Dataset. +* `read` - (Defaults to 5 minutes) Used when retrieving the Data Factory Azure SQL Table Dataset. +* `delete` - (Defaults to 30 minutes) Used when deleting the Data Factory Azure SQL Table Dataset. + +## Import + +Data Factory Azure SQL Table Datasets can be imported using the `resource id`, e.g. + +```shell +terraform import azurerm_data_factory_dataset_azure_sql_table.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.DataFactory/factories/example/datasets/example +``` From 67b058be6119495402008bc729d3b33201bc179b Mon Sep 17 00:00:00 2001 From: Tao <104055472+teowa@users.noreply.github.com> Date: Wed, 20 Sep 2023 16:22:19 +0800 Subject: [PATCH 246/336] `azurerm_app_configuration` - support for `replica` (#22452) * app configuration support replica * fix * fix datasource doc --- .../appconfiguration/app_configuration.go | 37 +++ .../app_configuration_data_source.go | 36 +++ .../app_configuration_data_source_test.go | 4 + .../app_configuration_resource.go | 237 +++++++++++++++++- .../app_configuration_resource_test.go | 177 ++++++++++++- .../appconfiguration/client/client.go | 78 +----- .../configuration_store_replica_name.go | 15 ++ .../configuration_store_replica_name_test.go | 60 +++++ .../2023-03-01/replicas/README.md | 82 ++++++ .../2023-03-01/replicas/client.go | 26 ++ .../2023-03-01/replicas/constants.go | 60 +++++ .../replicas/id_configurationstore.go | 127 ++++++++++ .../2023-03-01/replicas/id_replica.go | 140 +++++++++++ .../2023-03-01/replicas/method_create.go | 74 ++++++ .../2023-03-01/replicas/method_delete.go | 71 ++++++ .../2023-03-01/replicas/method_get.go | 51 ++++ .../method_listbyconfigurationstore.go | 89 +++++++ .../2023-03-01/replicas/model_replica.go | 17 ++ .../replicas/model_replicaproperties.go | 9 + .../2023-03-01/replicas/predicates.go | 32 +++ .../2023-03-01/replicas/version.go | 12 + vendor/modules.txt | 1 + .../docs/d/app_configuration.html.markdown | 15 ++ .../docs/r/app_configuration.html.markdown | 29 ++- 24 files changed, 1398 insertions(+), 81 deletions(-) create mode 100644 internal/services/appconfiguration/validate/configuration_store_replica_name.go create mode 100644 internal/services/appconfiguration/validate/configuration_store_replica_name_test.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/README.md create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/constants.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/id_configurationstore.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/id_replica.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_create.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_delete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_get.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_listbyconfigurationstore.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/model_replica.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/model_replicaproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/predicates.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/version.go diff --git a/internal/services/appconfiguration/app_configuration.go b/internal/services/appconfiguration/app_configuration.go index 527dcd2186ff..b54c2d691f1e 100644 --- a/internal/services/appconfiguration/app_configuration.go +++ b/internal/services/appconfiguration/app_configuration.go @@ -4,11 +4,15 @@ package appconfiguration import ( + "bytes" "context" + "fmt" "github.com/Azure/go-autorest/autorest" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/configurationstores" + "github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/tombuildsstuff/kermit/sdk/appconfiguration/1.0/appconfiguration" ) @@ -25,6 +29,39 @@ func flattenAppConfigurationEncryption(input *configurationstores.EncryptionProp }, } } + +func flattenAppConfigurationReplicas(input []replicas.Replica) ([]interface{}, error) { + results := make([]interface{}, 0) + for _, v := range input { + if v.Properties == nil { + return results, fmt.Errorf("retrieving Replica %s Properties is nil", *v.Id) + } + + replicaId, err := replicas.ParseReplicaIDInsensitively(pointer.From(v.Id)) + if err != nil { + return results, err + } + + result := map[string]interface{}{ + "name": pointer.From(v.Name), + "location": pointer.From(v.Location), + "endpoint": pointer.From(v.Properties.Endpoint), + "id": replicaId.ID(), + } + results = append(results, result) + } + return results, nil +} + +func resourceConfigurationStoreReplicaHash(input interface{}) int { + var buf bytes.Buffer + if rawData, ok := input.(map[string]interface{}); ok { + buf.WriteString(rawData["name"].(string)) + buf.WriteString(rawData["location"].(string)) + } + return pluginsdk.HashString(buf.String()) +} + func appConfigurationGetKeyRefreshFunc(ctx context.Context, client *appconfiguration.BaseClient, key, label string) pluginsdk.StateRefreshFunc { return func() (interface{}, string, error) { res, err := client.GetKeyValue(ctx, key, label, "", "", "", []appconfiguration.KeyValueFields{}) diff --git a/internal/services/appconfiguration/app_configuration_data_source.go b/internal/services/appconfiguration/app_configuration_data_source.go index 6672cf34e69c..f7f57558c422 100644 --- a/internal/services/appconfiguration/app_configuration_data_source.go +++ b/internal/services/appconfiguration/app_configuration_data_source.go @@ -14,6 +14,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" "github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/configurationstores" + "github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/appconfiguration/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" @@ -93,6 +94,28 @@ func dataSourceAppConfiguration() *pluginsdk.Resource { Computed: true, }, + "replica": { + Type: pluginsdk.TypeList, + Computed: true, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Computed: true, + }, + "location": commonschema.LocationComputed(), + "endpoint": { + Type: pluginsdk.TypeString, + Computed: true, + }, + "id": { + Type: pluginsdk.TypeString, + Computed: true, + }, + }, + }, + }, + "primary_read_key": { Type: pluginsdk.TypeList, Computed: true, @@ -257,6 +280,19 @@ func dataSourceAppConfigurationRead(d *pluginsdk.ResourceData, meta interface{}) return fmt.Errorf("setting `identity`: %+v", err) } + replicasClient := meta.(*clients.Client).AppConfiguration.ReplicasClient + resp, err := replicasClient.ListByConfigurationStoreComplete(ctx, replicas.NewConfigurationStoreID(id.SubscriptionId, id.ResourceGroupName, id.ConfigurationStoreName)) + if err != nil { + return fmt.Errorf("retrieving replicas for %s: %+v", id, err) + } + + replica, err := flattenAppConfigurationReplicas(resp.Items) + if err != nil { + return fmt.Errorf("flattening replicas for %s: %+v", id, err) + } + + d.Set("replica", replica) + return tags.FlattenAndSet(d, model.Tags) } diff --git a/internal/services/appconfiguration/app_configuration_data_source_test.go b/internal/services/appconfiguration/app_configuration_data_source_test.go index 0cdaf2c96d26..2bbbd31e0b55 100644 --- a/internal/services/appconfiguration/app_configuration_data_source_test.go +++ b/internal/services/appconfiguration/app_configuration_data_source_test.go @@ -49,6 +49,10 @@ func TestAccAppConfigurationDataSource_basic(t *testing.T) { check.That(data.ResourceName).Key("secondary_write_key.0.secret").Exists(), check.That(data.ResourceName).Key("sku").Exists(), check.That(data.ResourceName).Key("soft_delete_retention_days").Exists(), + check.That(data.ResourceName).Key("replica.#").HasValue("2"), + check.That(data.ResourceName).Key("replica.0.name").Exists(), + check.That(data.ResourceName).Key("replica.1.id").Exists(), + check.That(data.ResourceName).Key("replica.1.endpoint").Exists(), ), }, }) diff --git a/internal/services/appconfiguration/app_configuration_resource.go b/internal/services/appconfiguration/app_configuration_resource.go index 4c1bd7415e50..e2e3d7679a47 100644 --- a/internal/services/appconfiguration/app_configuration_resource.go +++ b/internal/services/appconfiguration/app_configuration_resource.go @@ -21,9 +21,9 @@ import ( "github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/configurationstores" "github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/deletedconfigurationstores" "github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/operations" + "github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas" "github.com/hashicorp/go-azure-sdk/sdk/client" "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/appconfiguration/validate" @@ -41,10 +41,10 @@ func resourceAppConfiguration() *pluginsdk.Resource { Delete: resourceAppConfigurationDelete, Timeouts: &pluginsdk.ResourceTimeout{ - Create: pluginsdk.DefaultTimeout(30 * time.Minute), + Create: pluginsdk.DefaultTimeout(60 * time.Minute), Read: pluginsdk.DefaultTimeout(5 * time.Minute), - Update: pluginsdk.DefaultTimeout(30 * time.Minute), - Delete: pluginsdk.DefaultTimeout(30 * time.Minute), + Update: pluginsdk.DefaultTimeout(60 * time.Minute), + Delete: pluginsdk.DefaultTimeout(60 * time.Minute), }, Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { @@ -132,6 +132,31 @@ func resourceAppConfiguration() *pluginsdk.Resource { ValidateFunc: validation.StringInSlice(configurationstores.PossibleValuesForPublicNetworkAccess(), true), }, + "replica": { + Type: pluginsdk.TypeSet, + Optional: true, + MinItems: 1, + Set: resourceConfigurationStoreReplicaHash, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validate.ConfigurationStoreReplicaName, + }, + "location": commonschema.LocationWithoutForceNew(), + "endpoint": { + Type: pluginsdk.TypeString, + Computed: true, + }, + "id": { + Type: pluginsdk.TypeString, + Computed: true, + }, + }, + }, + }, + "primary_read_key": { Type: pluginsdk.TypeList, Computed: true, @@ -256,7 +281,7 @@ func resourceAppConfigurationCreate(d *pluginsdk.ResourceData, meta interface{}) return tf.ImportAsExistsError("azurerm_app_configuration", resourceId.ID()) } - location := azure.NormalizeLocation(d.Get("location").(string)) + location := location.Normalize(d.Get("location").(string)) recoverSoftDeleted := false if meta.(*clients.Client).Features.AppConfiguration.RecoverSoftDeleted { @@ -325,6 +350,21 @@ func resourceAppConfigurationCreate(d *pluginsdk.ResourceData, meta interface{}) } meta.(*clients.Client).AppConfiguration.AddToCache(resourceId, *resp.Model.Properties.Endpoint) + expandedReplicas, err := expandAppConfigurationReplicas(d.Get("replica").(*pluginsdk.Set).List(), name, location) + if err != nil { + return fmt.Errorf("expanding `replica`: %+v", err) + } + + replicaClient := meta.(*clients.Client).AppConfiguration.ReplicasClient + for _, replica := range *expandedReplicas { + replicaId := replicas.NewReplicaID(resourceId.SubscriptionId, resourceId.ResourceGroupName, resourceId.ConfigurationStoreName, *replica.Name) + + if err := replicaClient.CreateThenPoll(ctx, replicaId, replica); err != nil { + return fmt.Errorf("creating %s: %+v", replicaId, err) + } + + } + return resourceAppConfigurationRead(d, meta) } @@ -434,6 +474,67 @@ func resourceAppConfigurationUpdate(d *pluginsdk.ResourceData, meta interface{}) return fmt.Errorf("updating %s: %+v", *id, err) } + if d.HasChange("replica") { + replicaClient := meta.(*clients.Client).AppConfiguration.ReplicasClient + operationsClient := meta.(*clients.Client).AppConfiguration.OperationsClient + + // check if a replica has been removed from config and if so, delete it + deleteReplicaIds := make([]replicas.ReplicaId, 0) + unchangedReplicaNames := make(map[string]struct{}, 0) + oldReplicas, newReplicas := d.GetChange("replica") + for _, oldReplica := range oldReplicas.(*pluginsdk.Set).List() { + isRemoved := true + oldReplicaMap := oldReplica.(map[string]interface{}) + + for _, newReplica := range newReplicas.(*pluginsdk.Set).List() { + newReplicaMap := newReplica.(map[string]interface{}) + + if strings.EqualFold(oldReplicaMap["name"].(string), newReplicaMap["name"].(string)) && strings.EqualFold(location.Normalize(oldReplicaMap["location"].(string)), location.Normalize(newReplicaMap["location"].(string))) { + unchangedReplicaNames[oldReplicaMap["name"].(string)] = struct{}{} + isRemoved = false + break + } + } + + if isRemoved { + deleteReplicaIds = append(deleteReplicaIds, replicas.NewReplicaID(id.SubscriptionId, id.ResourceGroupName, id.ConfigurationStoreName, oldReplicaMap["name"].(string))) + } + } + + if err := deleteReplicas(ctx, replicaClient, operationsClient, deleteReplicaIds); err != nil { + return err + } + + expandedReplicas, err := expandAppConfigurationReplicas(d.Get("replica").(*pluginsdk.Set).List(), id.ConfigurationStoreName, location.Normalize(existing.Model.Location)) + if err != nil { + return fmt.Errorf("expanding `replica`: %+v", err) + } + + // check if a replica has been added or an existing one changed its location, (re)create it + for _, replica := range *expandedReplicas { + if _, isUnchanged := unchangedReplicaNames[*replica.Name]; isUnchanged { + continue + } + + replicaId := replicas.NewReplicaID(id.SubscriptionId, id.ResourceGroupName, id.ConfigurationStoreName, *replica.Name) + + existingReplica, err := replicaClient.Get(ctx, replicaId) + if err != nil { + if !response.WasNotFound(existingReplica.HttpResponse) { + return fmt.Errorf("retrieving %s: %+v", replicaId, err) + } + } + + if !response.WasNotFound(existingReplica.HttpResponse) { + return fmt.Errorf("updating %s: replica %s already exists", *id, replicaId) + } + + if err = replicaClient.CreateThenPoll(ctx, replicaId, replica); err != nil { + return fmt.Errorf("creating %s: %+v", replicaId, err) + } + } + } + return resourceAppConfigurationRead(d, meta) } @@ -508,6 +609,18 @@ func resourceAppConfigurationRead(d *pluginsdk.ResourceData, meta interface{}) e return fmt.Errorf("setting `identity`: %+v", err) } + replicasClient := meta.(*clients.Client).AppConfiguration.ReplicasClient + resp, err := replicasClient.ListByConfigurationStoreComplete(ctx, replicas.NewConfigurationStoreID(id.SubscriptionId, id.ResourceGroupName, id.ConfigurationStoreName)) + if err != nil { + return fmt.Errorf("retrieving replicas for %s: %+v", *id, err) + } + + replica, err := flattenAppConfigurationReplicas(resp.Items) + if err != nil { + return fmt.Errorf("flattening replicas for %s: %+v", *id, err) + } + d.Set("replica", replica) + return tags.FlattenAndSet(d, model.Tags) } @@ -666,6 +779,46 @@ func expandAppConfigurationEncryption(input []interface{}) *configurationstores. return result } +func expandAppConfigurationReplicas(input []interface{}, configurationStoreName, configurationStoreLocation string) (*[]replicas.Replica, error) { + result := make([]replicas.Replica, 0) + + // check if there are duplicated replica names or locations + // location cannot be same as original configuration store and other replicas + locationSet := make(map[string]string, 0) + replicaNameSet := make(map[string]struct{}, 0) + + for _, v := range input { + replica := v.(map[string]interface{}) + replicaName := replica["name"].(string) + replicaLocation := location.Normalize(replica["location"].(string)) + if strings.EqualFold(replicaLocation, configurationStoreLocation) { + return nil, fmt.Errorf("location (%q) of replica %q is duplicated with original configuration store %q", replicaName, replicaLocation, configurationStoreName) + } + + if name, ok := locationSet[replicaLocation]; ok { + return nil, fmt.Errorf("location (%q) of replica %q is duplicated with replica %q", replicaName, replicaLocation, name) + } + locationSet[replicaLocation] = replicaName + + normalizedReplicaName := strings.ToLower(replicaName) + if _, ok := replicaNameSet[normalizedReplicaName]; ok { + return nil, fmt.Errorf("replica name %q is duplicated", replicaName) + } + replicaNameSet[normalizedReplicaName] = struct{}{} + + if len(replicaName)+len(configurationStoreName) > 60 { + return nil, fmt.Errorf("replica name %q is too long, the total length of replica name and configuration store name should be greater than 60", replicaName) + } + + result = append(result, replicas.Replica{ + Name: pointer.To(replicaName), + Location: pointer.To(replicaLocation), + }) + } + + return &result, nil +} + func flattenAppConfigurationAccessKeys(values []configurationstores.ApiKey) flattenedAccessKeys { result := flattenedAccessKeys{ primaryReadKey: make([]interface{}, 0), @@ -767,9 +920,8 @@ func resourceConfigurationStoreWaitForNameAvailable(ctx context.Context, client Timeout: time.Until(deadline), } - _, err := state.WaitForStateContext(ctx) - if err != nil { - return fmt.Errorf("waiting for the Name from %s to become available: %+v", configurationStoreId, err) + if _, err := state.WaitForStateContext(ctx); err != nil { + return fmt.Errorf("waiting for the name from %s to become available: %+v", configurationStoreId, err) } return nil @@ -806,3 +958,72 @@ func resourceConfigurationStoreNameAvailabilityRefreshFunc(ctx context.Context, return resp, "Available", nil } } + +func deleteReplicas(ctx context.Context, replicaClient *replicas.ReplicasClient, operationClient *operations.OperationsClient, configurationStoreReplicaIds []replicas.ReplicaId) error { + for _, configurationStoreReplicaId := range configurationStoreReplicaIds { + log.Printf("[DEBUG] Deleting Replica %q", configurationStoreReplicaId) + if err := replicaClient.DeleteThenPoll(ctx, configurationStoreReplicaId); err != nil { + return fmt.Errorf("deleting replica %q: %+v", configurationStoreReplicaId, err) + } + } + + for _, configurationStoreReplicaId := range configurationStoreReplicaIds { + if err := resourceConfigurationStoreReplicaWaitForNameAvailable(ctx, operationClient, configurationStoreReplicaId); err != nil { + return fmt.Errorf("waiting for replica %q name to be released: %+v", configurationStoreReplicaId, err) + } + } + + return nil +} + +func resourceConfigurationStoreReplicaWaitForNameAvailable(ctx context.Context, client *operations.OperationsClient, configurationStoreReplicaId replicas.ReplicaId) error { + deadline, ok := ctx.Deadline() + if !ok { + return fmt.Errorf("internal error: context had no deadline") + } + state := &pluginsdk.StateChangeConf{ + MinTimeout: 10 * time.Second, + ContinuousTargetOccurence: 2, + Pending: []string{"Unavailable"}, + Target: []string{"Available"}, + Refresh: resourceConfigurationStoreReplicaNameAvailabilityRefreshFunc(ctx, client, configurationStoreReplicaId), + Timeout: time.Until(deadline), + } + + if _, err := state.WaitForStateContext(ctx); err != nil { + return fmt.Errorf("waiting for the name from %s to become available: %+v", configurationStoreReplicaId, err) + } + + return nil +} + +func resourceConfigurationStoreReplicaNameAvailabilityRefreshFunc(ctx context.Context, client *operations.OperationsClient, configurationStoreReplicaId replicas.ReplicaId) pluginsdk.StateRefreshFunc { + return func() (interface{}, string, error) { + log.Printf("[DEBUG] Checking to see if the name for %s is available ..", configurationStoreReplicaId) + + subscriptionId := commonids.NewSubscriptionID(configurationStoreReplicaId.SubscriptionId) + + parameters := operations.CheckNameAvailabilityParameters{ + Name: fmt.Sprintf("%s-%s", configurationStoreReplicaId.ConfigurationStoreName, configurationStoreReplicaId.ReplicaName), + Type: operations.ConfigurationResourceTypeMicrosoftPointAppConfigurationConfigurationStores, + } + + resp, err := client.CheckNameAvailability(ctx, subscriptionId, parameters) + if err != nil { + return resp, "Error", fmt.Errorf("retrieving Deployment: %+v", err) + } + + if resp.Model == nil { + return resp, "Error", fmt.Errorf("unexpected null model of %s", configurationStoreReplicaId) + } + + if resp.Model.NameAvailable == nil { + return resp, "Error", fmt.Errorf("unexpected null NameAvailable property of %s", configurationStoreReplicaId) + } + + if !*resp.Model.NameAvailable { + return resp, "Unavailable", nil + } + return resp, "Available", nil + } +} diff --git a/internal/services/appconfiguration/app_configuration_resource_test.go b/internal/services/appconfiguration/app_configuration_resource_test.go index 76c01eaf8707..7605b102cad3 100644 --- a/internal/services/appconfiguration/app_configuration_resource_test.go +++ b/internal/services/appconfiguration/app_configuration_resource_test.go @@ -185,6 +185,86 @@ func TestAccAppConfiguration_encryption(t *testing.T) { }) } +func TestAccAppConfiguration_replica(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_app_configuration", "test") + r := AppConfigurationResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.replica(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccAppConfiguration_replicaRemove(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_app_configuration", "test") + r := AppConfigurationResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.replica(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.standard(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccAppConfiguration_replicaUpdate(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_app_configuration", "test") + r := AppConfigurationResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.standard(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.replica(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.replicaUpdated(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.replicaUpdatedPartial(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.complete(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func TestAccAppConfiguration_encryptionUpdated(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_app_configuration", "test") r := AppConfigurationResource{} @@ -419,6 +499,91 @@ resource "azurerm_app_configuration" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } +func (AppConfigurationResource) replica(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-appconfig-%d" + location = "%s" +} + +resource "azurerm_app_configuration" "test" { + name = "testaccappconf%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + sku = "standard" + + replica { + name = "replica1" + location = "%s" + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.Locations.Ternary) +} + +func (AppConfigurationResource) replicaUpdated(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-appconfig-%d" + location = "%s" +} + +resource "azurerm_app_configuration" "test" { + name = "testaccappconf%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + sku = "standard" + + replica { + name = "replica1" + location = "%s" + } + + replica { + name = "replica2" + location = "%s" + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.Locations.Ternary, data.Locations.Secondary) +} + +func (AppConfigurationResource) replicaUpdatedPartial(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-appconfig-%d" + location = "%s" +} + +resource "azurerm_app_configuration" "test" { + name = "testaccappconf%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + sku = "standard" + + replica { + name = "replica3" + location = "%s" + } + + replica { + name = "replica2" + location = "%s" + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.Locations.Ternary, data.Locations.Secondary) +} + func (r AppConfigurationResource) requiresImport(data acceptance.TestData) string { template := r.standard(data) return fmt.Sprintf(` @@ -527,6 +692,16 @@ resource "azurerm_app_configuration" "test" { identity_client_id = azurerm_user_assigned_identity.test.client_id } + replica { + name = "replica1" + location = "%[3]s" + } + + replica { + name = "replica2" + location = "%[4]s" + } + tags = { environment = "development" } @@ -536,7 +711,7 @@ resource "azurerm_app_configuration" "test" { azurerm_key_vault_access_policy.server, ] } -`, data.RandomInteger, data.Locations.Primary) +`, data.RandomInteger, data.Locations.Primary, data.Locations.Secondary, data.Locations.Ternary) } func (AppConfigurationResource) identity(data acceptance.TestData) string { diff --git a/internal/services/appconfiguration/client/client.go b/internal/services/appconfiguration/client/client.go index 2053af90c79c..9cb616eb0438 100644 --- a/internal/services/appconfiguration/client/client.go +++ b/internal/services/appconfiguration/client/client.go @@ -4,14 +4,13 @@ package client import ( - "context" "fmt" "github.com/Azure/go-autorest/autorest" - "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/configurationstores" "github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/deletedconfigurationstores" "github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/operations" + "github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas" authWrapper "github.com/hashicorp/go-azure-sdk/sdk/auth/autorest" "github.com/hashicorp/go-azure-sdk/sdk/environments" "github.com/hashicorp/terraform-provider-azurerm/internal/common" @@ -23,6 +22,7 @@ type Client struct { ConfigurationStoresClient *configurationstores.ConfigurationStoresClient DeletedConfigurationStoresClient *deletedconfigurationstores.DeletedConfigurationStoresClient OperationsClient *operations.OperationsClient + ReplicasClient *replicas.ReplicasClient authorizerFunc common.ApiAuthorizerFunc configureClientFunc func(c *autorest.Client, authorizer autorest.Authorizer) } @@ -54,73 +54,6 @@ func (c Client) LinkWorkaroundDataPlaneClientWithEndpoint(configurationStoreEndp return &workaroundClient, nil } -func (c Client) DataPlaneClient(ctx context.Context, configurationStoreId string) (*appconfiguration.BaseClient, error) { - appConfigId, err := configurationstores.ParseConfigurationStoreID(configurationStoreId) - if err != nil { - return nil, err - } - - // TODO: caching all of this - appConfig, err := c.ConfigurationStoresClient.Get(ctx, *appConfigId) - if err != nil { - if response.WasNotFound(appConfig.HttpResponse) { - return nil, nil - } - - return nil, err - } - - if appConfig.Model == nil || appConfig.Model.Properties == nil || appConfig.Model.Properties.Endpoint == nil { - return nil, fmt.Errorf("endpoint was nil") - } - - endpoint := *appConfig.Model.Properties.Endpoint - - api := environments.NewApiEndpoint("AppConfiguration", endpoint, nil) - appConfigAuth, err := c.authorizerFunc(api) - if err != nil { - return nil, fmt.Errorf("obtaining auth token for %q: %+v", endpoint, err) - } - - client := appconfiguration.NewWithoutDefaults("", endpoint) - c.configureClientFunc(&client.Client, authWrapper.AutorestAuthorizer(appConfigAuth)) - - return &client, nil -} - -func (c Client) LinkWorkaroundDataPlaneClient(ctx context.Context, configurationStoreId string) (*azuresdkhacks.DataPlaneClient, error) { - appConfigId, err := configurationstores.ParseConfigurationStoreID(configurationStoreId) - if err != nil { - return nil, err - } - - // TODO: caching all of this - appConfig, err := c.ConfigurationStoresClient.Get(ctx, *appConfigId) - if err != nil { - if response.WasNotFound(appConfig.HttpResponse) { - return nil, nil - } - - return nil, err - } - - if appConfig.Model == nil || appConfig.Model.Properties == nil || appConfig.Model.Properties.Endpoint == nil { - return nil, fmt.Errorf("endpoint was nil") - } - - api := environments.NewApiEndpoint("AppConfiguration", *appConfig.Model.Properties.Endpoint, nil) - appConfigAuth, err := c.authorizerFunc(api) - if err != nil { - return nil, fmt.Errorf("obtaining auth token for %q: %+v", *appConfig.Model.Properties.Endpoint, err) - } - - client := appconfiguration.NewWithoutDefaults("", *appConfig.Model.Properties.Endpoint) - c.configureClientFunc(&client.Client, authWrapper.AutorestAuthorizer(appConfigAuth)) - workaroundClient := azuresdkhacks.NewDataPlaneClient(client) - - return &workaroundClient, nil -} - func NewClient(o *common.ClientOptions) (*Client, error) { configurationStores, err := configurationstores.NewConfigurationStoresClientWithBaseURI(o.Environment.ResourceManager) if err != nil { @@ -140,10 +73,17 @@ func NewClient(o *common.ClientOptions) (*Client, error) { } o.Configure(operationsClient.Client, o.Authorizers.ResourceManager) + replicasClient, err := replicas.NewReplicasClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building DeletedConfigurationStores client: %+v", err) + } + o.Configure(replicasClient.Client, o.Authorizers.ResourceManager) + return &Client{ ConfigurationStoresClient: configurationStores, DeletedConfigurationStoresClient: deletedConfigurationStores, OperationsClient: operationsClient, + ReplicasClient: replicasClient, authorizerFunc: o.Authorizers.AuthorizerFunc, configureClientFunc: o.ConfigureClient, }, nil diff --git a/internal/services/appconfiguration/validate/configuration_store_replica_name.go b/internal/services/appconfiguration/validate/configuration_store_replica_name.go new file mode 100644 index 000000000000..9e7f513f7684 --- /dev/null +++ b/internal/services/appconfiguration/validate/configuration_store_replica_name.go @@ -0,0 +1,15 @@ +package validate + +import ( + "fmt" + "regexp" +) + +func ConfigurationStoreReplicaName(v interface{}, k string) (warnings []string, errors []error) { + value := v.(string) + if matched := regexp.MustCompile(`^[a-zA-Z0-9]{1,50}$`).Match([]byte(value)); !matched { + errors = append(errors, fmt.Errorf("%q Replica name may only contain alphanumeric characters and must be between 1-50 chars", k)) + } + + return warnings, errors +} diff --git a/internal/services/appconfiguration/validate/configuration_store_replica_name_test.go b/internal/services/appconfiguration/validate/configuration_store_replica_name_test.go new file mode 100644 index 000000000000..f0db179e91bd --- /dev/null +++ b/internal/services/appconfiguration/validate/configuration_store_replica_name_test.go @@ -0,0 +1,60 @@ +package validate + +import ( + "testing" +) + +func TestAppConfigurationReplicaName(t *testing.T) { + cases := []struct { + Value string + ErrCount int + }{ + { + Value: "four", + ErrCount: 0, + }, + { + Value: "5five", + ErrCount: 0, + }, + { + Value: "hello-world", + ErrCount: 1, + }, + { + Value: "hello_world", + ErrCount: 1, + }, + { + Value: "helloWorld", + ErrCount: 0, + }, + { + Value: "helloworld12", + ErrCount: 0, + }, + { + Value: "hello@world", + ErrCount: 1, + }, + { + Value: "qfvbdsbvipqdbwsbddbdcwqffewsqwcdw21ddwqwd3324120", + ErrCount: 0, + }, + { + Value: "qfvbdsbvipqdbwsbddbdcwqffewsqwcdw21ddwqwd332412020", + ErrCount: 0, + }, + { + Value: "qfvbdsbvipqdbwsbddbdcwqfjjfewsqwcdw21ddwqwd33241201", + ErrCount: 1, + }, + } + + for _, tc := range cases { + _, errors := ConfigurationStoreReplicaName(tc.Value, "azurerm_app_configuration") + if len(errors) != tc.ErrCount { + t.Fatalf("Expected the Azure App Configuration Replica Name to trigger a validation error: %v", tc) + } + } +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/README.md new file mode 100644 index 000000000000..2e4d4d60eb24 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/README.md @@ -0,0 +1,82 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas` Documentation + +The `replicas` SDK allows for interaction with the Azure Resource Manager Service `appconfiguration` (API Version `2023-03-01`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas" +``` + + +### Client Initialization + +```go +client := replicas.NewReplicasClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `ReplicasClient.Create` + +```go +ctx := context.TODO() +id := replicas.NewReplicaID("12345678-1234-9876-4563-123456789012", "example-resource-group", "configurationStoreValue", "replicaValue") + +payload := replicas.Replica{ + // ... +} + + +if err := client.CreateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `ReplicasClient.Delete` + +```go +ctx := context.TODO() +id := replicas.NewReplicaID("12345678-1234-9876-4563-123456789012", "example-resource-group", "configurationStoreValue", "replicaValue") + +if err := client.DeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `ReplicasClient.Get` + +```go +ctx := context.TODO() +id := replicas.NewReplicaID("12345678-1234-9876-4563-123456789012", "example-resource-group", "configurationStoreValue", "replicaValue") + +read, err := client.Get(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `ReplicasClient.ListByConfigurationStore` + +```go +ctx := context.TODO() +id := replicas.NewConfigurationStoreID("12345678-1234-9876-4563-123456789012", "example-resource-group", "configurationStoreValue") + +// alternatively `client.ListByConfigurationStore(ctx, id)` can be used to do batched pagination +items, err := client.ListByConfigurationStoreComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/client.go new file mode 100644 index 000000000000..d971742c1bdc --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/client.go @@ -0,0 +1,26 @@ +package replicas + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ReplicasClient struct { + Client *resourcemanager.Client +} + +func NewReplicasClientWithBaseURI(sdkApi sdkEnv.Api) (*ReplicasClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "replicas", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating ReplicasClient: %+v", err) + } + + return &ReplicasClient{ + Client: client, + }, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/constants.go new file mode 100644 index 000000000000..2a2698617064 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/constants.go @@ -0,0 +1,60 @@ +package replicas + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ReplicaProvisioningState string + +const ( + ReplicaProvisioningStateCanceled ReplicaProvisioningState = "Canceled" + ReplicaProvisioningStateCreating ReplicaProvisioningState = "Creating" + ReplicaProvisioningStateDeleting ReplicaProvisioningState = "Deleting" + ReplicaProvisioningStateFailed ReplicaProvisioningState = "Failed" + ReplicaProvisioningStateSucceeded ReplicaProvisioningState = "Succeeded" +) + +func PossibleValuesForReplicaProvisioningState() []string { + return []string{ + string(ReplicaProvisioningStateCanceled), + string(ReplicaProvisioningStateCreating), + string(ReplicaProvisioningStateDeleting), + string(ReplicaProvisioningStateFailed), + string(ReplicaProvisioningStateSucceeded), + } +} + +func (s *ReplicaProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseReplicaProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseReplicaProvisioningState(input string) (*ReplicaProvisioningState, error) { + vals := map[string]ReplicaProvisioningState{ + "canceled": ReplicaProvisioningStateCanceled, + "creating": ReplicaProvisioningStateCreating, + "deleting": ReplicaProvisioningStateDeleting, + "failed": ReplicaProvisioningStateFailed, + "succeeded": ReplicaProvisioningStateSucceeded, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ReplicaProvisioningState(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/id_configurationstore.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/id_configurationstore.go new file mode 100644 index 000000000000..64c7ad6a2440 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/id_configurationstore.go @@ -0,0 +1,127 @@ +package replicas + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ConfigurationStoreId{} + +// ConfigurationStoreId is a struct representing the Resource ID for a Configuration Store +type ConfigurationStoreId struct { + SubscriptionId string + ResourceGroupName string + ConfigurationStoreName string +} + +// NewConfigurationStoreID returns a new ConfigurationStoreId struct +func NewConfigurationStoreID(subscriptionId string, resourceGroupName string, configurationStoreName string) ConfigurationStoreId { + return ConfigurationStoreId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + ConfigurationStoreName: configurationStoreName, + } +} + +// ParseConfigurationStoreID parses 'input' into a ConfigurationStoreId +func ParseConfigurationStoreID(input string) (*ConfigurationStoreId, error) { + parser := resourceids.NewParserFromResourceIdType(ConfigurationStoreId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ConfigurationStoreId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ConfigurationStoreName, ok = parsed.Parsed["configurationStoreName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "configurationStoreName", *parsed) + } + + return &id, nil +} + +// ParseConfigurationStoreIDInsensitively parses 'input' case-insensitively into a ConfigurationStoreId +// note: this method should only be used for API response data and not user input +func ParseConfigurationStoreIDInsensitively(input string) (*ConfigurationStoreId, error) { + parser := resourceids.NewParserFromResourceIdType(ConfigurationStoreId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ConfigurationStoreId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ConfigurationStoreName, ok = parsed.Parsed["configurationStoreName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "configurationStoreName", *parsed) + } + + return &id, nil +} + +// ValidateConfigurationStoreID checks that 'input' can be parsed as a Configuration Store ID +func ValidateConfigurationStoreID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseConfigurationStoreID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Configuration Store ID +func (id ConfigurationStoreId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppConfiguration/configurationStores/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.ConfigurationStoreName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Configuration Store ID +func (id ConfigurationStoreId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppConfiguration", "Microsoft.AppConfiguration", "Microsoft.AppConfiguration"), + resourceids.StaticSegment("staticConfigurationStores", "configurationStores", "configurationStores"), + resourceids.UserSpecifiedSegment("configurationStoreName", "configurationStoreValue"), + } +} + +// String returns a human-readable description of this Configuration Store ID +func (id ConfigurationStoreId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Configuration Store Name: %q", id.ConfigurationStoreName), + } + return fmt.Sprintf("Configuration Store (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/id_replica.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/id_replica.go new file mode 100644 index 000000000000..464e8bae7e91 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/id_replica.go @@ -0,0 +1,140 @@ +package replicas + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ReplicaId{} + +// ReplicaId is a struct representing the Resource ID for a Replica +type ReplicaId struct { + SubscriptionId string + ResourceGroupName string + ConfigurationStoreName string + ReplicaName string +} + +// NewReplicaID returns a new ReplicaId struct +func NewReplicaID(subscriptionId string, resourceGroupName string, configurationStoreName string, replicaName string) ReplicaId { + return ReplicaId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + ConfigurationStoreName: configurationStoreName, + ReplicaName: replicaName, + } +} + +// ParseReplicaID parses 'input' into a ReplicaId +func ParseReplicaID(input string) (*ReplicaId, error) { + parser := resourceids.NewParserFromResourceIdType(ReplicaId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ReplicaId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ConfigurationStoreName, ok = parsed.Parsed["configurationStoreName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "configurationStoreName", *parsed) + } + + if id.ReplicaName, ok = parsed.Parsed["replicaName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "replicaName", *parsed) + } + + return &id, nil +} + +// ParseReplicaIDInsensitively parses 'input' case-insensitively into a ReplicaId +// note: this method should only be used for API response data and not user input +func ParseReplicaIDInsensitively(input string) (*ReplicaId, error) { + parser := resourceids.NewParserFromResourceIdType(ReplicaId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ReplicaId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ConfigurationStoreName, ok = parsed.Parsed["configurationStoreName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "configurationStoreName", *parsed) + } + + if id.ReplicaName, ok = parsed.Parsed["replicaName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "replicaName", *parsed) + } + + return &id, nil +} + +// ValidateReplicaID checks that 'input' can be parsed as a Replica ID +func ValidateReplicaID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseReplicaID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Replica ID +func (id ReplicaId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppConfiguration/configurationStores/%s/replicas/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.ConfigurationStoreName, id.ReplicaName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Replica ID +func (id ReplicaId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppConfiguration", "Microsoft.AppConfiguration", "Microsoft.AppConfiguration"), + resourceids.StaticSegment("staticConfigurationStores", "configurationStores", "configurationStores"), + resourceids.UserSpecifiedSegment("configurationStoreName", "configurationStoreValue"), + resourceids.StaticSegment("staticReplicas", "replicas", "replicas"), + resourceids.UserSpecifiedSegment("replicaName", "replicaValue"), + } +} + +// String returns a human-readable description of this Replica ID +func (id ReplicaId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Configuration Store Name: %q", id.ConfigurationStoreName), + fmt.Sprintf("Replica Name: %q", id.ReplicaName), + } + return fmt.Sprintf("Replica (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_create.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_create.go new file mode 100644 index 000000000000..58b36592090f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_create.go @@ -0,0 +1,74 @@ +package replicas + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Create ... +func (c ReplicasClient) Create(ctx context.Context, id ReplicaId, input Replica) (result CreateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateThenPoll performs Create then polls until it's completed +func (c ReplicasClient) CreateThenPoll(ctx context.Context, id ReplicaId, input Replica) error { + result, err := c.Create(ctx, id, input) + if err != nil { + return fmt.Errorf("performing Create: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Create: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_delete.go new file mode 100644 index 000000000000..a245c7836583 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_delete.go @@ -0,0 +1,71 @@ +package replicas + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c ReplicasClient) Delete(ctx context.Context, id ReplicaId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c ReplicasClient) DeleteThenPoll(ctx context.Context, id ReplicaId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_get.go new file mode 100644 index 000000000000..45e517f34af7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_get.go @@ -0,0 +1,51 @@ +package replicas + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Replica +} + +// Get ... +func (c ReplicasClient) Get(ctx context.Context, id ReplicaId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_listbyconfigurationstore.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_listbyconfigurationstore.go new file mode 100644 index 000000000000..01a7747d8076 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/method_listbyconfigurationstore.go @@ -0,0 +1,89 @@ +package replicas + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByConfigurationStoreOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]Replica +} + +type ListByConfigurationStoreCompleteResult struct { + Items []Replica +} + +// ListByConfigurationStore ... +func (c ReplicasClient) ListByConfigurationStore(ctx context.Context, id ConfigurationStoreId) (result ListByConfigurationStoreOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/replicas", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]Replica `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListByConfigurationStoreComplete retrieves all the results into a single object +func (c ReplicasClient) ListByConfigurationStoreComplete(ctx context.Context, id ConfigurationStoreId) (ListByConfigurationStoreCompleteResult, error) { + return c.ListByConfigurationStoreCompleteMatchingPredicate(ctx, id, ReplicaOperationPredicate{}) +} + +// ListByConfigurationStoreCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c ReplicasClient) ListByConfigurationStoreCompleteMatchingPredicate(ctx context.Context, id ConfigurationStoreId, predicate ReplicaOperationPredicate) (result ListByConfigurationStoreCompleteResult, err error) { + items := make([]Replica, 0) + + resp, err := c.ListByConfigurationStore(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListByConfigurationStoreCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/model_replica.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/model_replica.go new file mode 100644 index 000000000000..95deda8039b9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/model_replica.go @@ -0,0 +1,17 @@ +package replicas + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Replica struct { + Id *string `json:"id,omitempty"` + Location *string `json:"location,omitempty"` + Name *string `json:"name,omitempty"` + Properties *ReplicaProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/model_replicaproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/model_replicaproperties.go new file mode 100644 index 000000000000..361a71b2a0d2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/model_replicaproperties.go @@ -0,0 +1,9 @@ +package replicas + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ReplicaProperties struct { + Endpoint *string `json:"endpoint,omitempty"` + ProvisioningState *ReplicaProvisioningState `json:"provisioningState,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/predicates.go new file mode 100644 index 000000000000..436f7639b383 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/predicates.go @@ -0,0 +1,32 @@ +package replicas + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ReplicaOperationPredicate struct { + Id *string + Location *string + Name *string + Type *string +} + +func (p ReplicaOperationPredicate) Matches(input Replica) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Location != nil && (input.Location == nil || *p.Location != *input.Location) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/version.go new file mode 100644 index 000000000000..198b0d4d213b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas/version.go @@ -0,0 +1,12 @@ +package replicas + +import "fmt" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +const defaultApiVersion = "2023-03-01" + +func userAgent() string { + return fmt.Sprintf("hashicorp/go-azure-sdk/replicas/%s", defaultApiVersion) +} diff --git a/vendor/modules.txt b/vendor/modules.txt index e3ab2e90dba3..cf90be61a402 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -216,6 +216,7 @@ github.com/hashicorp/go-azure-sdk/resource-manager/apimanagement/2021-08-01/user github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/configurationstores github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/deletedconfigurationstores github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/operations +github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/replicas github.com/hashicorp/go-azure-sdk/resource-manager/applicationinsights/2020-11-20/workbooktemplatesapis github.com/hashicorp/go-azure-sdk/resource-manager/applicationinsights/2022-04-01/workbooksapis github.com/hashicorp/go-azure-sdk/resource-manager/applicationinsights/2022-06-15/webtestsapis diff --git a/website/docs/d/app_configuration.html.markdown b/website/docs/d/app_configuration.html.markdown index a61a8dd59528..8a042fd13f86 100644 --- a/website/docs/d/app_configuration.html.markdown +++ b/website/docs/d/app_configuration.html.markdown @@ -53,6 +53,8 @@ In addition to the Arguments listed above - the following Attributes are exporte * `purge_protection_enabled` - Whether Purge Protection is enabled. +* `replica` - One or more `replica` blocks as defined below. + * `secondary_read_key` - A `secondary_read_key` block as defined below containing the secondary read access key. * `secondary_write_key` - A `secondary_write_key` block as defined below containing the secondary write access key. @@ -83,6 +85,19 @@ A `primary_write_key` block exports the following: * `secret` - The Secret of the Access Key. +--- + +A `replica` block exports the following: + +* `id` - The ID of the App Configuration Replica. + +* `endpoint` - The URL of the App Configuration Replica. + +* `location` - The supported Azure location where the App Configuration Replica exists. + +* `name` - The name of the App Configuration Replica. + + --- A `secondary_read_key` block exports the following: diff --git a/website/docs/r/app_configuration.html.markdown b/website/docs/r/app_configuration.html.markdown index 5921934f6c4b..115b6f4cfab6 100644 --- a/website/docs/r/app_configuration.html.markdown +++ b/website/docs/r/app_configuration.html.markdown @@ -127,6 +127,11 @@ resource "azurerm_app_configuration" "example" { identity_client_id = azurerm_user_assigned_identity.example.client_id } + replica { + name = "replica1" + location = "West US" + } + tags = { environment = "development" } @@ -164,6 +169,8 @@ The following arguments are supported: !> **Note:** Once Purge Protection has been enabled it's not possible to disable it. Deleting the App Configuration with Purge Protection enabled will schedule the App Configuration to be deleted (which will happen by Azure in the configured number of days). +* `replica` - (Optional) One or more `replica` blocks as defined below. + * `sku` - (Optional) The SKU name of the App Configuration. Possible values are `free` and `standard`. Defaults to `free`. * `soft_delete_retention_days` - (Optional) The number of days that items should be retained for once soft-deleted. This field only works for `standard` sku. This value can be between `1` and `7` days. Defaults to `7`. Changing this forces a new resource to be created. @@ -192,6 +199,14 @@ An `identity` block supports the following: --- +A `replica` block supports the following: + +* `location` - (Required) Specifies the supported Azure location where the replica exists. Changing this forces a new replica to be created. + +* `name` - (Required) Specifies the name of the replica. Changing this forces a new replica to be created. + +--- + ## Attributes Reference In addition to the Arguments listed above - the following Attributes are exported: @@ -220,6 +235,14 @@ An `identity` block exports the following: --- +A `replica` block exports the following: + +* `id` - The ID of the App Configuration Replica. + +* `endpoint` - The URL of the App Configuration Replica. + +--- + A `primary_read_key` block exports the following: * `connection_string` - The Connection String for this Access Key - comprising of the Endpoint, ID and Secret. @@ -262,10 +285,10 @@ A `secondary_write_key` block exports the following: The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: -* `create` - (Defaults to 30 minutes) Used when creating the App Configuration. -* `update` - (Defaults to 30 minutes) Used when updating the App Configuration. +* `create` - (Defaults to 60 minutes) Used when creating the App Configuration. +* `update` - (Defaults to 60 minutes) Used when updating the App Configuration. * `read` - (Defaults to 5 minutes) Used when retrieving the App Configuration. -* `delete` - (Defaults to 30 minutes) Used when deleting the App Configuration. +* `delete` - (Defaults to 60 minutes) Used when deleting the App Configuration. ## Import From b21ae259102258681a24cd5edb044237c31e2bfb Mon Sep 17 00:00:00 2001 From: stephybun Date: Wed, 20 Sep 2023 10:42:16 +0200 Subject: [PATCH 247/336] Update for #23239 #23261 #23331 #22452 #23264 --- CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6639a62221fa..e535e83b20cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,14 +2,20 @@ FEATURES: +* **New Resource**: `azurerm_data_factory_dataset_azure_sql_table` [GH-23264] * **New Resource**: `azurerm_function_app_connection` [GH-23127] ENHANCEMENTS: * dependencies: downgrading to `v1.12.5` of `github.com/rickb777/date` [GH-23296] * `mysql`: updating to use API Version `2022-01-01` [GH-23320] -* `azurerm_container_app` - add support for scale rules [GH-23294] +* `azurerm_app_configuration` - add support for the `replica` block [GH-22452] * `azurerm_bot_channel_directline` - add support for `user_upload_enabled`, `endpoint_parameters_enabled` and `storage_enabled` [GH-23149] +* `azurerm_container_app` - add support for scale rules [GH-23294] +* `azurerm_cosmosdb_account` - add support for MongoDB connection strings [GH-23331] +* `azurerm_data_factory_dataset_delimited_text` - add support for the `dynamic_file_system_enabled`, `dynamic_path_enabled` and `dynamic_filename_enabled` properties [GH-23261] +* `azurerm_data_factory_dataset_parquet` - add support for the `azure_blob_fs_location` block [GH-23261] +* `azurerm_web_application_firewall_policy` - add support for the `rate_limit_duration`, `rate_limit_threshold`, `group_rate_limit_by` and `request_body_inspect_limit_in_kb` properties [GH-23239] BUG FIXES: From afc77d9cc67e87d928f808a45326a3b9cb274521 Mon Sep 17 00:00:00 2001 From: stephybun Date: Wed, 20 Sep 2023 10:50:30 +0200 Subject: [PATCH 248/336] Update for #23161 #23302 #23262 #23310 #23263 #23108 --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e535e83b20cd..769cb4f4a3f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ FEATURES: +* **New Resource**: `azurerm_arc_resource_bridge_appliance` [GH-23108] * **New Resource**: `azurerm_data_factory_dataset_azure_sql_table` [GH-23264] * **New Resource**: `azurerm_function_app_connection` [GH-23127] @@ -12,6 +13,7 @@ ENHANCEMENTS: * `azurerm_app_configuration` - add support for the `replica` block [GH-22452] * `azurerm_bot_channel_directline` - add support for `user_upload_enabled`, `endpoint_parameters_enabled` and `storage_enabled` [GH-23149] * `azurerm_container_app` - add support for scale rules [GH-23294] +* `azurerm_container_app_environment` - add support for zone redundancy [GH-23313] * `azurerm_cosmosdb_account` - add support for MongoDB connection strings [GH-23331] * `azurerm_data_factory_dataset_delimited_text` - add support for the `dynamic_file_system_enabled`, `dynamic_path_enabled` and `dynamic_filename_enabled` properties [GH-23261] * `azurerm_data_factory_dataset_parquet` - add support for the `azure_blob_fs_location` block [GH-23261] @@ -20,15 +22,23 @@ ENHANCEMENTS: BUG FIXES: * Data Source: `azurerm_container_app_environment`: fix `log_analytics_workspace_name` output to correct value [GH-23298] +* `azurerm_app_configuration` - prevent crash by nil checking the encryption configuration [GH-23302] +* `azurerm_app_configuration_feature` - update `percentage_filter_value` to accept correct type of float [GH-23263] * `azurerm_linux_web_app` - fix docker app stack update [GH-23303] * `azurerm_linux_web_app` - Fix crash in auto heal expansion [GH-21328] * `azurerm_linux_web_app_slot` - fix docker app stack update [GH-23303] * `azurerm_linux_web_app_slot` - Fix crash in auto heal expansion [GH-21328] +* `azurerm_mssql_elasticpool` - remove check that prevents `license_type` from being set for certain skus [GH-23262] * `azurerm_windows_web_app` - fix docker app stack update [GH-23303] * `azurerm_windows_web_app_slot` - fix docker app stack update [GH-23303] * `azurerm_servicebus_queue` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] * `azurerm_servicebus_topic` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] +DEPRECATIONS: + +* `azurerm_application_gateway` - deprecate `Standard` and `WAF` skus [GH-23310] +* `azurerm_bot_channel_web_chat` - deprecate `site_names` in favour of `site` block [GH-23161] + ## 3.73.0 (September 14, 2023) FEATURES: From e266595c0c6d2af25410d87b69093bc7aecf90ab Mon Sep 17 00:00:00 2001 From: stephybun Date: Wed, 20 Sep 2023 11:00:00 +0200 Subject: [PATCH 249/336] Update for #23011 #23277 #23260 #22833 #23288 #23147 #22979 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 769cb4f4a3f4..9bca474dc89c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,11 +17,16 @@ ENHANCEMENTS: * `azurerm_cosmosdb_account` - add support for MongoDB connection strings [GH-23331] * `azurerm_data_factory_dataset_delimited_text` - add support for the `dynamic_file_system_enabled`, `dynamic_path_enabled` and `dynamic_filename_enabled` properties [GH-23261] * `azurerm_data_factory_dataset_parquet` - add support for the `azure_blob_fs_location` block [GH-23261] +* `azurerm_network_interface` - add support for the `auxiliary_mode` and `auxiliary_sku` properties [GH-22979] +* `azurerm_postgresql_flexible_server` - increase the maximum supported value for `storage_mb` [GH-23277] +* `azurerm_shared_image_version` - add support for the `replicated_region_deletion_enabled` and `target_region.exclude_from_latest_enabled` properties [GH-23147] +* `azurerm_storage_account` - add support for setting `domain_name` and `domain_guid` for `AADKERB` [GH-22833] * `azurerm_web_application_firewall_policy` - add support for the `rate_limit_duration`, `rate_limit_threshold`, `group_rate_limit_by` and `request_body_inspect_limit_in_kb` properties [GH-23239] BUG FIXES: * Data Source: `azurerm_container_app_environment`: fix `log_analytics_workspace_name` output to correct value [GH-23298] +* `azurerm_api_management_api` - set the `service_url` property when importing the resource [GH-23011] * `azurerm_app_configuration` - prevent crash by nil checking the encryption configuration [GH-23302] * `azurerm_app_configuration_feature` - update `percentage_filter_value` to accept correct type of float [GH-23263] * `azurerm_linux_web_app` - fix docker app stack update [GH-23303] @@ -33,11 +38,13 @@ BUG FIXES: * `azurerm_windows_web_app_slot` - fix docker app stack update [GH-23303] * `azurerm_servicebus_queue` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] * `azurerm_servicebus_topic` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] +* `azurerm_storage_account` - prevent sending unsupported blob properties in payload for `Storage` account kind [GH-23288] DEPRECATIONS: * `azurerm_application_gateway` - deprecate `Standard` and `WAF` skus [GH-23310] * `azurerm_bot_channel_web_chat` - deprecate `site_names` in favour of `site` block [GH-23161] +* `azurerm_monitor_diagnostic_setting` - deprecate `retention_policy` in favour of `azurerm_storage_management_policy` [GH-23260] ## 3.73.0 (September 14, 2023) From f1e79e7f495dc5c7736b0989680212c08fe5e4cd Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 20 Sep 2023 12:29:57 +0200 Subject: [PATCH 250/336] dependencies: updating to `v0.20230918.1115907` of `github.com/hashicorp/go-azure-sdk` --- go.mod | 2 +- go.sum | 4 ++-- .../2021-08-08/alertprocessingrules/model_action.go | 2 +- .../2021-08-08/alertprocessingrules/model_recurrence.go | 2 +- .../2019-06-01-preview/registries/model_runrequest.go | 2 +- .../2019-06-01-preview/taskruns/model_runrequest.go | 2 +- .../2019-06-01-preview/tasks/model_taskstepproperties.go | 2 +- .../tasks/model_taskstepupdateparameters.go | 2 +- .../cosmosdb/2022-05-15/cosmosdb/model_backuppolicy.go | 2 +- .../sqldedicatedgateway/model_serviceresourceproperties.go | 2 +- .../cosmosdb/2023-04-15/cosmosdb/model_backuppolicy.go | 2 +- .../2018-06-01/factories/model_factoryrepoconfiguration.go | 2 +- .../2022-04-01/backupinstances/model_authcredentials.go | 2 +- .../backupinstances/model_azurebackuprestorerequest.go | 2 +- .../2022-04-01/backupinstances/model_datastoreparameters.go | 2 +- .../backupinstances/model_itemlevelrestorecriteria.go | 2 +- .../2022-04-01/backupinstances/model_operationextendedinfo.go | 2 +- .../2022-04-01/backupinstances/model_restoretargetinfobase.go | 2 +- .../2022-04-01/backuppolicies/model_backupcriteria.go | 2 +- .../2022-04-01/backuppolicies/model_backupparameters.go | 2 +- .../2022-04-01/backuppolicies/model_basebackuppolicy.go | 2 +- .../2022-04-01/backuppolicies/model_basepolicyrule.go | 2 +- .../2022-04-01/backuppolicies/model_copyoption.go | 2 +- .../2022-04-01/backuppolicies/model_deleteoption.go | 2 +- .../2022-04-01/backuppolicies/model_triggercontext.go | 2 +- .../datashare/2019-11-01/dataset/model_dataset.go | 2 +- .../synchronizationsetting/model_synchronizationsetting.go | 2 +- .../endpoints/model_digitaltwinsendpointresourceproperties.go | 2 +- .../model_timeseriesdatabaseconnectionproperties.go | 2 +- .../eventgrid/2022-06-15/domains/model_inputschemamapping.go | 2 +- .../2022-06-15/eventsubscriptions/model_advancedfilter.go | 2 +- .../eventsubscriptions/model_deadletterdestination.go | 2 +- .../eventsubscriptions/model_deliveryattributemapping.go | 2 +- .../eventsubscriptions/model_eventsubscriptiondestination.go | 2 +- .../eventgrid/2022-06-15/topics/model_inputschemamapping.go | 2 +- .../2020-05-01/frontdoors/model_routeconfiguration.go | 2 +- .../2018-03-01/metricalerts/model_metricalertcriteria.go | 2 +- .../2018-03-01/metricalerts/model_multimetriccriteria.go | 2 +- .../insights/2018-04-16/scheduledqueryrules/model_action.go | 2 +- .../kusto/2023-05-02/databases/model_database.go | 2 +- .../kusto/2023-05-02/dataconnections/model_dataconnection.go | 2 +- .../2023-04-01/datastore/model_datastore.go | 2 +- .../2023-04-01/datastore/model_datastorecredentials.go | 2 +- .../2023-04-01/datastore/model_datastoresecrets.go | 2 +- .../2023-04-01/machinelearningcomputes/model_compute.go | 2 +- .../machinelearningcomputes/model_computesecrets.go | 2 +- .../2018-06-01/servers/model_serverpropertiesforcreate.go | 2 +- .../media/2021-11-01/assetsandassetfilters/model_trackbase.go | 2 +- .../contentkeypolicies/model_contentkeypolicyconfiguration.go | 2 +- .../model_contentkeypolicyplayreadycontentkeylocation.go | 2 +- .../contentkeypolicies/model_contentkeypolicyrestriction.go | 2 +- .../model_contentkeypolicyrestrictiontokenkey.go | 2 +- .../media/2021-11-01/encodings/model_cliptime.go | 2 +- .../media/2021-11-01/encodings/model_codec.go | 2 +- .../media/2021-11-01/encodings/model_format.go | 2 +- .../media/2021-11-01/encodings/model_inputdefinition.go | 2 +- .../media/2021-11-01/encodings/model_jobinput.go | 2 +- .../media/2021-11-01/encodings/model_joboutput.go | 2 +- .../media/2021-11-01/encodings/model_overlay.go | 2 +- .../media/2021-11-01/encodings/model_preset.go | 2 +- .../media/2021-11-01/encodings/model_trackdescriptor.go | 2 +- .../media/2022-07-01/encodings/model_cliptime.go | 2 +- .../media/2022-07-01/encodings/model_codec.go | 2 +- .../media/2022-07-01/encodings/model_format.go | 2 +- .../media/2022-07-01/encodings/model_inputdefinition.go | 2 +- .../media/2022-07-01/encodings/model_jobinput.go | 2 +- .../media/2022-07-01/encodings/model_joboutput.go | 2 +- .../media/2022-07-01/encodings/model_overlay.go | 2 +- .../media/2022-07-01/encodings/model_preset.go | 2 +- .../media/2022-07-01/encodings/model_trackdescriptor.go | 2 +- .../media/2022-08-01/assetsandassetfilters/model_trackbase.go | 2 +- .../contentkeypolicies/model_contentkeypolicyconfiguration.go | 2 +- .../model_contentkeypolicyplayreadycontentkeylocation.go | 2 +- .../contentkeypolicies/model_contentkeypolicyrestriction.go | 2 +- .../model_contentkeypolicyrestrictiontokenkey.go | 2 +- .../2017-12-01/servers/model_serverpropertiesforcreate.go | 2 +- .../network/2023-04-01/adminrules/model_baseadminrule.go | 2 +- .../model_firewallpolicyrule.go | 2 +- .../model_firewallpolicyrulecollection.go | 2 +- .../model_activebasesecurityadminrule.go | 2 +- .../model_effectivebasesecurityadminrule.go | 2 +- .../2017-12-01/servers/model_serverpropertiesforcreate.go | 2 +- .../vaultcertificates/model_resourcecertificatedetails.go | 2 +- .../backupprotectableitems/model_workloadprotectableitem.go | 2 +- .../2023-02-01/backupprotecteditems/model_protecteditem.go | 2 +- .../2023-02-01/protecteditems/model_protecteditem.go | 2 +- .../protectioncontainers/model_protectioncontainer.go | 2 +- .../2023-02-01/protectionpolicies/model_protectionpolicy.go | 2 +- .../2023-02-01/protectionpolicies/model_retentionpolicy.go | 2 +- .../2023-02-01/protectionpolicies/model_schedulepolicy.go | 2 +- .../replicationfabrics/model_fabricspecificcreationinput.go | 2 +- .../replicationfabrics/model_fabricspecificdetails.go | 2 +- .../model_fabricspecificcreatenetworkmappinginput.go | 2 +- .../model_fabricspecificupdatenetworkmappinginput.go | 2 +- .../model_networkmappingfabricspecificsettings.go | 2 +- .../model_policyproviderspecificdetails.go | 2 +- .../replicationpolicies/model_policyproviderspecificinput.go | 2 +- .../model_adddisksproviderspecificinput.go | 2 +- .../model_applyrecoverypointproviderspecificinput.go | 2 +- .../model_disableprotectionproviderspecificinput.go | 2 +- .../model_enableprotectionproviderspecificinput.go | 2 +- .../model_plannedfailoverproviderspecificfailoverinput.go | 2 +- .../model_removedisksproviderspecificinput.go | 2 +- .../model_replicationproviderspecificsettings.go | 2 +- .../model_reversereplicationproviderspecificinput.go | 2 +- .../model_switchproviderproviderspecificinput.go | 2 +- .../model_testfailoverproviderspecificinput.go | 2 +- .../model_unplannedfailoverproviderspecificinput.go | 2 +- ...plianceforreplicationprotecteditemproviderspecificinput.go | 2 +- .../model_updatereplicationprotecteditemproviderinput.go | 2 +- ...model_protectioncontainermappingproviderspecificdetails.go | 2 +- .../model_replicationproviderspecificcontainermappinginput.go | 2 +- ..._replicationproviderspecificupdatecontainermappinginput.go | 2 +- ...model_replicationproviderspecificcontainercreationinput.go | 2 +- .../model_switchprotectionproviderspecificinput.go | 2 +- .../model_recoveryplanactiondetails.go | 2 +- .../model_recoveryplanproviderspecificdetails.go | 2 +- .../model_recoveryplanproviderspecificfailoverinput.go | 2 +- .../model_recoveryplanproviderspecificinput.go | 2 +- .../2020-10-01/deploymentscripts/model_deploymentscript.go | 2 +- .../2022-10-01-preview/alertrules/model_alertrule.go | 2 +- .../automationrules/model_automationruleaction.go | 2 +- .../automationrules/model_automationrulecondition.go | 2 +- .../servicelinker/2022-05-01/links/model_authinfobase.go | 2 +- .../2022-05-01/links/model_azureresourcepropertiesbase.go | 2 +- .../servicelinker/2022-05-01/links/model_secretinfobase.go | 2 +- .../servicelinker/2022-05-01/links/model_targetservicebase.go | 2 +- .../2022-05-01/servicelinker/model_authinfobase.go | 2 +- .../servicelinker/model_azureresourcepropertiesbase.go | 2 +- .../2022-05-01/servicelinker/model_secretinfobase.go | 2 +- .../2022-05-01/servicelinker/model_targetservicebase.go | 2 +- .../2023-03-01/endpoints/model_endpointbaseproperties.go | 2 +- .../2020-03-01/functions/model_functionbinding.go | 2 +- .../2020-03-01/functions/model_functionproperties.go | 2 +- .../model_functionretrievedefaultdefinitionparameters.go | 2 +- .../2020-03-01/inputs/model_inputproperties.go | 2 +- .../2020-03-01/inputs/model_referenceinputdatasource.go | 2 +- .../streamanalytics/2020-03-01/inputs/model_serialization.go | 2 +- .../2020-03-01/inputs/model_streaminputdatasource.go | 2 +- .../2020-03-01/streamingjobs/model_functionbinding.go | 2 +- .../2020-03-01/streamingjobs/model_functionproperties.go | 2 +- .../2020-03-01/streamingjobs/model_inputproperties.go | 2 +- .../2020-03-01/streamingjobs/model_outputdatasource.go | 2 +- .../streamingjobs/model_referenceinputdatasource.go | 2 +- .../2020-03-01/streamingjobs/model_serialization.go | 2 +- .../2020-03-01/streamingjobs/model_streaminputdatasource.go | 2 +- .../2021-10-01-preview/outputs/model_outputdatasource.go | 2 +- .../2021-10-01-preview/outputs/model_serialization.go | 2 +- .../environments/model_environmentcreateorupdateparameters.go | 2 +- .../2020-05-15/environments/model_environmentresource.go | 2 +- .../environments/model_environmentupdateparameters.go | 2 +- .../eventsources/model_eventsourcecreateorupdateparameters.go | 2 +- .../2020-05-15/eventsources/model_eventsourceresource.go | 2 +- .../eventsources/model_eventsourceupdateparameters.go | 2 +- .../2023-02-01/webpubsub/model_eventlistenerendpoint.go | 2 +- .../2023-02-01/webpubsub/model_eventlistenerfilter.go | 2 +- vendor/modules.txt | 2 +- 157 files changed, 158 insertions(+), 158 deletions(-) diff --git a/go.mod b/go.mod index bbc7ea7409a6..a8a1abc89d86 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/google/go-cmp v0.5.9 github.com/google/uuid v1.3.1 github.com/hashicorp/go-azure-helpers v0.61.0 - github.com/hashicorp/go-azure-sdk v0.20230907.1113401 + github.com/hashicorp/go-azure-sdk v0.20230918.1115907 github.com/hashicorp/go-hclog v1.5.0 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-uuid v1.0.3 diff --git a/go.sum b/go.sum index f52848aef91e..76fae18e20e3 100644 --- a/go.sum +++ b/go.sum @@ -101,8 +101,8 @@ github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv github.com/hashicorp/go-azure-helpers v0.12.0/go.mod h1:Zc3v4DNeX6PDdy7NljlYpnrdac1++qNW0I4U+ofGwpg= github.com/hashicorp/go-azure-helpers v0.61.0 h1:dIz23Vp8LdErxuImc6V5QIPtJcWjMgqP75bfp8o1Lro= github.com/hashicorp/go-azure-helpers v0.61.0/go.mod h1:BQUQp5udwbJ8pnzl0wByCLVEEyPMAFpJ9vOREiCzObo= -github.com/hashicorp/go-azure-sdk v0.20230907.1113401 h1:rtikuZ4FzVZrJ4lbldIJk1oIa1+Ofnq76+Mv3muDbLs= -github.com/hashicorp/go-azure-sdk v0.20230907.1113401/go.mod h1:Rk63T4GsVOHb/WohiAX7F0tMEd8MIKV+g4aV0Jv4XEk= +github.com/hashicorp/go-azure-sdk v0.20230918.1115907 h1:V+SyLwBD9tpnW00H/AnqM2ir11CUchc0EPuf2Mi0c+s= +github.com/hashicorp/go-azure-sdk v0.20230918.1115907/go.mod h1:KSQRt0kuQGxFXo3t0KtQwTXhOWWxso2ZoSbtqQitruY= github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU= github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/model_action.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/model_action.go index 1d378e45d6e2..34348e362ace 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/model_action.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/model_action.go @@ -12,7 +12,7 @@ import ( type Action interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawActionImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/model_recurrence.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/model_recurrence.go index bcb277fe55bf..7dee3512f756 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/model_recurrence.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/alertsmanagement/2021-08-08/alertprocessingrules/model_recurrence.go @@ -12,7 +12,7 @@ import ( type Recurrence interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawRecurrenceImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/registries/model_runrequest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/registries/model_runrequest.go index b3bf6e7acdc4..d98eb00a9e2b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/registries/model_runrequest.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/registries/model_runrequest.go @@ -12,7 +12,7 @@ import ( type RunRequest interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawRunRequestImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/taskruns/model_runrequest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/taskruns/model_runrequest.go index b39a8415f0e8..8ced0bcd755c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/taskruns/model_runrequest.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/taskruns/model_runrequest.go @@ -12,7 +12,7 @@ import ( type RunRequest interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawRunRequestImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/tasks/model_taskstepproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/tasks/model_taskstepproperties.go index 4def741225d1..a2715325318b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/tasks/model_taskstepproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/tasks/model_taskstepproperties.go @@ -12,7 +12,7 @@ import ( type TaskStepProperties interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawTaskStepPropertiesImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/tasks/model_taskstepupdateparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/tasks/model_taskstepupdateparameters.go index c9471d7bdf8e..3cb8d8604740 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/tasks/model_taskstepupdateparameters.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/containerregistry/2019-06-01-preview/tasks/model_taskstepupdateparameters.go @@ -12,7 +12,7 @@ import ( type TaskStepUpdateParameters interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawTaskStepUpdateParametersImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/cosmosdb/model_backuppolicy.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/cosmosdb/model_backuppolicy.go index fdf2c05aa07d..2e4805f1c2f8 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/cosmosdb/model_backuppolicy.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/cosmosdb/model_backuppolicy.go @@ -12,7 +12,7 @@ import ( type BackupPolicy interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawBackupPolicyImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/sqldedicatedgateway/model_serviceresourceproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/sqldedicatedgateway/model_serviceresourceproperties.go index b42e855d5d49..73d5a0131feb 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/sqldedicatedgateway/model_serviceresourceproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2022-05-15/sqldedicatedgateway/model_serviceresourceproperties.go @@ -12,7 +12,7 @@ import ( type ServiceResourceProperties interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawServiceResourcePropertiesImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/cosmosdb/model_backuppolicy.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/cosmosdb/model_backuppolicy.go index fdf2c05aa07d..2e4805f1c2f8 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/cosmosdb/model_backuppolicy.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/cosmosdb/2023-04-15/cosmosdb/model_backuppolicy.go @@ -12,7 +12,7 @@ import ( type BackupPolicy interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawBackupPolicyImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/datafactory/2018-06-01/factories/model_factoryrepoconfiguration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/datafactory/2018-06-01/factories/model_factoryrepoconfiguration.go index c135416de0be..37176cae8665 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/datafactory/2018-06-01/factories/model_factoryrepoconfiguration.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/datafactory/2018-06-01/factories/model_factoryrepoconfiguration.go @@ -12,7 +12,7 @@ import ( type FactoryRepoConfiguration interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawFactoryRepoConfigurationImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_authcredentials.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_authcredentials.go index 2880b2e1cd59..8be823b957b9 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_authcredentials.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_authcredentials.go @@ -12,7 +12,7 @@ import ( type AuthCredentials interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawAuthCredentialsImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_azurebackuprestorerequest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_azurebackuprestorerequest.go index 71406f865c71..3b5348e6cdfa 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_azurebackuprestorerequest.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_azurebackuprestorerequest.go @@ -12,7 +12,7 @@ import ( type AzureBackupRestoreRequest interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawAzureBackupRestoreRequestImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_datastoreparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_datastoreparameters.go index fca77dbde56b..ee57cd90fa32 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_datastoreparameters.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_datastoreparameters.go @@ -12,7 +12,7 @@ import ( type DataStoreParameters interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawDataStoreParametersImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_itemlevelrestorecriteria.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_itemlevelrestorecriteria.go index 710b63b35159..9745f3102fea 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_itemlevelrestorecriteria.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_itemlevelrestorecriteria.go @@ -12,7 +12,7 @@ import ( type ItemLevelRestoreCriteria interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawItemLevelRestoreCriteriaImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_operationextendedinfo.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_operationextendedinfo.go index 92418b3351e2..53581d9a9e1c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_operationextendedinfo.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_operationextendedinfo.go @@ -12,7 +12,7 @@ import ( type OperationExtendedInfo interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawOperationExtendedInfoImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_restoretargetinfobase.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_restoretargetinfobase.go index 9458ed9da35b..ce31702dc783 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_restoretargetinfobase.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backupinstances/model_restoretargetinfobase.go @@ -12,7 +12,7 @@ import ( type RestoreTargetInfoBase interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawRestoreTargetInfoBaseImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_backupcriteria.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_backupcriteria.go index 723eae785f66..ae5e3acf7f99 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_backupcriteria.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_backupcriteria.go @@ -12,7 +12,7 @@ import ( type BackupCriteria interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawBackupCriteriaImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_backupparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_backupparameters.go index cc0e1cb3dcd1..2cd46e5bbe7d 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_backupparameters.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_backupparameters.go @@ -12,7 +12,7 @@ import ( type BackupParameters interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawBackupParametersImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_basebackuppolicy.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_basebackuppolicy.go index 9b3aae01624a..5da7096ec0c8 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_basebackuppolicy.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_basebackuppolicy.go @@ -12,7 +12,7 @@ import ( type BaseBackupPolicy interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawBaseBackupPolicyImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_basepolicyrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_basepolicyrule.go index 66828ff39403..2434dc31521d 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_basepolicyrule.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_basepolicyrule.go @@ -12,7 +12,7 @@ import ( type BasePolicyRule interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawBasePolicyRuleImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_copyoption.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_copyoption.go index bbda441660b0..8015dcb6bfd9 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_copyoption.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_copyoption.go @@ -12,7 +12,7 @@ import ( type CopyOption interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawCopyOptionImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_deleteoption.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_deleteoption.go index 168171b65f0e..d8ac5dc7882f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_deleteoption.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_deleteoption.go @@ -12,7 +12,7 @@ import ( type DeleteOption interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawDeleteOptionImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_triggercontext.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_triggercontext.go index e482a943c928..866643b9b212 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_triggercontext.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2022-04-01/backuppolicies/model_triggercontext.go @@ -12,7 +12,7 @@ import ( type TriggerContext interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawTriggerContextImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/datashare/2019-11-01/dataset/model_dataset.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/datashare/2019-11-01/dataset/model_dataset.go index 30555ef7ed33..1b6be39fc676 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/datashare/2019-11-01/dataset/model_dataset.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/datashare/2019-11-01/dataset/model_dataset.go @@ -12,7 +12,7 @@ import ( type DataSet interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawDataSetImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/datashare/2019-11-01/synchronizationsetting/model_synchronizationsetting.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/datashare/2019-11-01/synchronizationsetting/model_synchronizationsetting.go index 592471e0cec4..e8dfdd22f394 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/datashare/2019-11-01/synchronizationsetting/model_synchronizationsetting.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/datashare/2019-11-01/synchronizationsetting/model_synchronizationsetting.go @@ -12,7 +12,7 @@ import ( type SynchronizationSetting interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawSynchronizationSettingImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/digitaltwins/2023-01-31/endpoints/model_digitaltwinsendpointresourceproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/digitaltwins/2023-01-31/endpoints/model_digitaltwinsendpointresourceproperties.go index 57637d5d0957..e5658b7bbb2c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/digitaltwins/2023-01-31/endpoints/model_digitaltwinsendpointresourceproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/digitaltwins/2023-01-31/endpoints/model_digitaltwinsendpointresourceproperties.go @@ -12,7 +12,7 @@ import ( type DigitalTwinsEndpointResourceProperties interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawDigitalTwinsEndpointResourcePropertiesImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/digitaltwins/2023-01-31/timeseriesdatabaseconnections/model_timeseriesdatabaseconnectionproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/digitaltwins/2023-01-31/timeseriesdatabaseconnections/model_timeseriesdatabaseconnectionproperties.go index bdc2b2dc7f1d..d0f36d4a4930 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/digitaltwins/2023-01-31/timeseriesdatabaseconnections/model_timeseriesdatabaseconnectionproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/digitaltwins/2023-01-31/timeseriesdatabaseconnections/model_timeseriesdatabaseconnectionproperties.go @@ -12,7 +12,7 @@ import ( type TimeSeriesDatabaseConnectionProperties interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawTimeSeriesDatabaseConnectionPropertiesImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/domains/model_inputschemamapping.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/domains/model_inputschemamapping.go index 7dd005669c4d..2b57ba9fbd0e 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/domains/model_inputschemamapping.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/domains/model_inputschemamapping.go @@ -12,7 +12,7 @@ import ( type InputSchemaMapping interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawInputSchemaMappingImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_advancedfilter.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_advancedfilter.go index 312dc9053adc..9b667278529c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_advancedfilter.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_advancedfilter.go @@ -12,7 +12,7 @@ import ( type AdvancedFilter interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawAdvancedFilterImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_deadletterdestination.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_deadletterdestination.go index 9aa848d0e062..b445f359655b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_deadletterdestination.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_deadletterdestination.go @@ -12,7 +12,7 @@ import ( type DeadLetterDestination interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawDeadLetterDestinationImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_deliveryattributemapping.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_deliveryattributemapping.go index ca730fcc6b47..317188346aa1 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_deliveryattributemapping.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_deliveryattributemapping.go @@ -12,7 +12,7 @@ import ( type DeliveryAttributeMapping interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawDeliveryAttributeMappingImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_eventsubscriptiondestination.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_eventsubscriptiondestination.go index c593c03bd05a..b190369064fe 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_eventsubscriptiondestination.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/eventsubscriptions/model_eventsubscriptiondestination.go @@ -12,7 +12,7 @@ import ( type EventSubscriptionDestination interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawEventSubscriptionDestinationImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/topics/model_inputschemamapping.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/topics/model_inputschemamapping.go index bb65fe5cbc8b..ea5cba6d2c9b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/topics/model_inputschemamapping.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2022-06-15/topics/model_inputschemamapping.go @@ -12,7 +12,7 @@ import ( type InputSchemaMapping interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawInputSchemaMappingImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/frontdoor/2020-05-01/frontdoors/model_routeconfiguration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/frontdoor/2020-05-01/frontdoors/model_routeconfiguration.go index 9eaff03c96b0..b619f9137552 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/frontdoor/2020-05-01/frontdoors/model_routeconfiguration.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/frontdoor/2020-05-01/frontdoors/model_routeconfiguration.go @@ -12,7 +12,7 @@ import ( type RouteConfiguration interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawRouteConfigurationImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/insights/2018-03-01/metricalerts/model_metricalertcriteria.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/insights/2018-03-01/metricalerts/model_metricalertcriteria.go index 4c9448d356d6..6f9fc6bbbd21 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/insights/2018-03-01/metricalerts/model_metricalertcriteria.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/insights/2018-03-01/metricalerts/model_metricalertcriteria.go @@ -12,7 +12,7 @@ import ( type MetricAlertCriteria interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawMetricAlertCriteriaImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/insights/2018-03-01/metricalerts/model_multimetriccriteria.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/insights/2018-03-01/metricalerts/model_multimetriccriteria.go index e53c58297bc5..2a0693f31310 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/insights/2018-03-01/metricalerts/model_multimetriccriteria.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/insights/2018-03-01/metricalerts/model_multimetriccriteria.go @@ -12,7 +12,7 @@ import ( type MultiMetricCriteria interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawMultiMetricCriteriaImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/insights/2018-04-16/scheduledqueryrules/model_action.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/insights/2018-04-16/scheduledqueryrules/model_action.go index 6d38c4097e00..e84613de58a4 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/insights/2018-04-16/scheduledqueryrules/model_action.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/insights/2018-04-16/scheduledqueryrules/model_action.go @@ -12,7 +12,7 @@ import ( type Action interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawActionImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/kusto/2023-05-02/databases/model_database.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/kusto/2023-05-02/databases/model_database.go index 675c8ac4dd5d..2f3c58a1325d 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/kusto/2023-05-02/databases/model_database.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/kusto/2023-05-02/databases/model_database.go @@ -12,7 +12,7 @@ import ( type Database interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawDatabaseImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/kusto/2023-05-02/dataconnections/model_dataconnection.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/kusto/2023-05-02/dataconnections/model_dataconnection.go index a9ff96431d49..d8a779e662fb 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/kusto/2023-05-02/dataconnections/model_dataconnection.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/kusto/2023-05-02/dataconnections/model_dataconnection.go @@ -12,7 +12,7 @@ import ( type DataConnection interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawDataConnectionImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/datastore/model_datastore.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/datastore/model_datastore.go index 426ae668c5b4..776b2b0a745f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/datastore/model_datastore.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/datastore/model_datastore.go @@ -12,7 +12,7 @@ import ( type Datastore interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawDatastoreImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/datastore/model_datastorecredentials.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/datastore/model_datastorecredentials.go index 569e26921f89..06a4bb3f51ba 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/datastore/model_datastorecredentials.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/datastore/model_datastorecredentials.go @@ -12,7 +12,7 @@ import ( type DatastoreCredentials interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawDatastoreCredentialsImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/datastore/model_datastoresecrets.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/datastore/model_datastoresecrets.go index 1ab8207f08de..117ac723e8ce 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/datastore/model_datastoresecrets.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/datastore/model_datastoresecrets.go @@ -12,7 +12,7 @@ import ( type DatastoreSecrets interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawDatastoreSecretsImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/machinelearningcomputes/model_compute.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/machinelearningcomputes/model_compute.go index 927b9fc83cc2..36f9d37457de 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/machinelearningcomputes/model_compute.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/machinelearningcomputes/model_compute.go @@ -12,7 +12,7 @@ import ( type Compute interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawComputeImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/machinelearningcomputes/model_computesecrets.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/machinelearningcomputes/model_computesecrets.go index 407192afe0e5..9df90b89da3b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/machinelearningcomputes/model_computesecrets.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/machinelearningservices/2023-04-01/machinelearningcomputes/model_computesecrets.go @@ -12,7 +12,7 @@ import ( type ComputeSecrets interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawComputeSecretsImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mariadb/2018-06-01/servers/model_serverpropertiesforcreate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mariadb/2018-06-01/servers/model_serverpropertiesforcreate.go index ec427ee27c48..84868e2551eb 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mariadb/2018-06-01/servers/model_serverpropertiesforcreate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mariadb/2018-06-01/servers/model_serverpropertiesforcreate.go @@ -12,7 +12,7 @@ import ( type ServerPropertiesForCreate interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawServerPropertiesForCreateImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/assetsandassetfilters/model_trackbase.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/assetsandassetfilters/model_trackbase.go index 3a4841018aaf..46a24e0d7cc3 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/assetsandassetfilters/model_trackbase.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/assetsandassetfilters/model_trackbase.go @@ -12,7 +12,7 @@ import ( type TrackBase interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawTrackBaseImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyconfiguration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyconfiguration.go index fd47318307b8..bdd6a1d25333 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyconfiguration.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyconfiguration.go @@ -12,7 +12,7 @@ import ( type ContentKeyPolicyConfiguration interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawContentKeyPolicyConfigurationImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyplayreadycontentkeylocation.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyplayreadycontentkeylocation.go index 38c7832835cb..4966f524297f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyplayreadycontentkeylocation.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyplayreadycontentkeylocation.go @@ -12,7 +12,7 @@ import ( type ContentKeyPolicyPlayReadyContentKeyLocation interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawContentKeyPolicyPlayReadyContentKeyLocationImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyrestriction.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyrestriction.go index 5e7ac4c8845e..1f3ab4d83cf8 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyrestriction.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyrestriction.go @@ -12,7 +12,7 @@ import ( type ContentKeyPolicyRestriction interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawContentKeyPolicyRestrictionImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyrestrictiontokenkey.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyrestrictiontokenkey.go index 720eb01e9943..6d8a4e938da3 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyrestrictiontokenkey.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/contentkeypolicies/model_contentkeypolicyrestrictiontokenkey.go @@ -12,7 +12,7 @@ import ( type ContentKeyPolicyRestrictionTokenKey interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawContentKeyPolicyRestrictionTokenKeyImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_cliptime.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_cliptime.go index ca480ea6dd5b..d57cf10337b4 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_cliptime.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_cliptime.go @@ -12,7 +12,7 @@ import ( type ClipTime interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawClipTimeImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_codec.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_codec.go index a3b765ec5761..0ac7cdcc648c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_codec.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_codec.go @@ -12,7 +12,7 @@ import ( type Codec interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawCodecImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_format.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_format.go index 5f1df6db909f..65f94ae3b899 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_format.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_format.go @@ -12,7 +12,7 @@ import ( type Format interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawFormatImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_inputdefinition.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_inputdefinition.go index d52da1be51e3..04e0c4c26ba1 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_inputdefinition.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_inputdefinition.go @@ -12,7 +12,7 @@ import ( type InputDefinition interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawInputDefinitionImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_jobinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_jobinput.go index deb8166daf48..e4d997151def 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_jobinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_jobinput.go @@ -12,7 +12,7 @@ import ( type JobInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawJobInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_joboutput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_joboutput.go index 77f14dc0755b..6135f1282f5c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_joboutput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_joboutput.go @@ -12,7 +12,7 @@ import ( type JobOutput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawJobOutputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_overlay.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_overlay.go index cce72c5df00e..160ee13ef1d0 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_overlay.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_overlay.go @@ -12,7 +12,7 @@ import ( type Overlay interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawOverlayImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_preset.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_preset.go index 455d1388c154..af6ef205d334 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_preset.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_preset.go @@ -12,7 +12,7 @@ import ( type Preset interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawPresetImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_trackdescriptor.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_trackdescriptor.go index 57b15a244cc4..8aa3d1a50d91 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_trackdescriptor.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2021-11-01/encodings/model_trackdescriptor.go @@ -12,7 +12,7 @@ import ( type TrackDescriptor interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawTrackDescriptorImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_cliptime.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_cliptime.go index ca480ea6dd5b..d57cf10337b4 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_cliptime.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_cliptime.go @@ -12,7 +12,7 @@ import ( type ClipTime interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawClipTimeImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_codec.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_codec.go index ffb7dd108ff7..dac8228b1d03 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_codec.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_codec.go @@ -12,7 +12,7 @@ import ( type Codec interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawCodecImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_format.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_format.go index 5f1df6db909f..65f94ae3b899 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_format.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_format.go @@ -12,7 +12,7 @@ import ( type Format interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawFormatImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_inputdefinition.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_inputdefinition.go index d52da1be51e3..04e0c4c26ba1 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_inputdefinition.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_inputdefinition.go @@ -12,7 +12,7 @@ import ( type InputDefinition interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawInputDefinitionImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_jobinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_jobinput.go index deb8166daf48..e4d997151def 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_jobinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_jobinput.go @@ -12,7 +12,7 @@ import ( type JobInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawJobInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_joboutput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_joboutput.go index 77f14dc0755b..6135f1282f5c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_joboutput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_joboutput.go @@ -12,7 +12,7 @@ import ( type JobOutput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawJobOutputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_overlay.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_overlay.go index cce72c5df00e..160ee13ef1d0 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_overlay.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_overlay.go @@ -12,7 +12,7 @@ import ( type Overlay interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawOverlayImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_preset.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_preset.go index 455d1388c154..af6ef205d334 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_preset.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_preset.go @@ -12,7 +12,7 @@ import ( type Preset interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawPresetImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_trackdescriptor.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_trackdescriptor.go index 57b15a244cc4..8aa3d1a50d91 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_trackdescriptor.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-07-01/encodings/model_trackdescriptor.go @@ -12,7 +12,7 @@ import ( type TrackDescriptor interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawTrackDescriptorImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/assetsandassetfilters/model_trackbase.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/assetsandassetfilters/model_trackbase.go index 3a4841018aaf..46a24e0d7cc3 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/assetsandassetfilters/model_trackbase.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/assetsandassetfilters/model_trackbase.go @@ -12,7 +12,7 @@ import ( type TrackBase interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawTrackBaseImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyconfiguration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyconfiguration.go index fd47318307b8..bdd6a1d25333 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyconfiguration.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyconfiguration.go @@ -12,7 +12,7 @@ import ( type ContentKeyPolicyConfiguration interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawContentKeyPolicyConfigurationImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyplayreadycontentkeylocation.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyplayreadycontentkeylocation.go index 38c7832835cb..4966f524297f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyplayreadycontentkeylocation.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyplayreadycontentkeylocation.go @@ -12,7 +12,7 @@ import ( type ContentKeyPolicyPlayReadyContentKeyLocation interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawContentKeyPolicyPlayReadyContentKeyLocationImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyrestriction.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyrestriction.go index 5e7ac4c8845e..1f3ab4d83cf8 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyrestriction.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyrestriction.go @@ -12,7 +12,7 @@ import ( type ContentKeyPolicyRestriction interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawContentKeyPolicyRestrictionImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyrestrictiontokenkey.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyrestrictiontokenkey.go index 720eb01e9943..6d8a4e938da3 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyrestrictiontokenkey.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/media/2022-08-01/contentkeypolicies/model_contentkeypolicyrestrictiontokenkey.go @@ -12,7 +12,7 @@ import ( type ContentKeyPolicyRestrictionTokenKey interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawContentKeyPolicyRestrictionTokenKeyImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2017-12-01/servers/model_serverpropertiesforcreate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2017-12-01/servers/model_serverpropertiesforcreate.go index ec427ee27c48..84868e2551eb 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2017-12-01/servers/model_serverpropertiesforcreate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2017-12-01/servers/model_serverpropertiesforcreate.go @@ -12,7 +12,7 @@ import ( type ServerPropertiesForCreate interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawServerPropertiesForCreateImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/adminrules/model_baseadminrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/adminrules/model_baseadminrule.go index e4875f14f980..bbcabba727eb 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/adminrules/model_baseadminrule.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/adminrules/model_baseadminrule.go @@ -12,7 +12,7 @@ import ( type BaseAdminRule interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawBaseAdminRuleImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicyrulecollectiongroups/model_firewallpolicyrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicyrulecollectiongroups/model_firewallpolicyrule.go index faab335e6eea..5cd71ef998ac 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicyrulecollectiongroups/model_firewallpolicyrule.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicyrulecollectiongroups/model_firewallpolicyrule.go @@ -12,7 +12,7 @@ import ( type FirewallPolicyRule interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawFirewallPolicyRuleImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicyrulecollectiongroups/model_firewallpolicyrulecollection.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicyrulecollectiongroups/model_firewallpolicyrulecollection.go index 04974173f3fd..30f1b958dc85 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicyrulecollectiongroups/model_firewallpolicyrulecollection.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicyrulecollectiongroups/model_firewallpolicyrulecollection.go @@ -12,7 +12,7 @@ import ( type FirewallPolicyRuleCollection interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawFirewallPolicyRuleCollectionImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/networkmanageractiveconfigurations/model_activebasesecurityadminrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/networkmanageractiveconfigurations/model_activebasesecurityadminrule.go index 3580a8da11fa..c19193dfd820 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/networkmanageractiveconfigurations/model_activebasesecurityadminrule.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/networkmanageractiveconfigurations/model_activebasesecurityadminrule.go @@ -12,7 +12,7 @@ import ( type ActiveBaseSecurityAdminRule interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawActiveBaseSecurityAdminRuleImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/networkmanagereffectivesecurityadminrules/model_effectivebasesecurityadminrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/networkmanagereffectivesecurityadminrules/model_effectivebasesecurityadminrule.go index 6a40be283b3b..9ef5715f8e42 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/networkmanagereffectivesecurityadminrules/model_effectivebasesecurityadminrule.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/networkmanagereffectivesecurityadminrules/model_effectivebasesecurityadminrule.go @@ -12,7 +12,7 @@ import ( type EffectiveBaseSecurityAdminRule interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawEffectiveBaseSecurityAdminRuleImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/postgresql/2017-12-01/servers/model_serverpropertiesforcreate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/postgresql/2017-12-01/servers/model_serverpropertiesforcreate.go index ec427ee27c48..84868e2551eb 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/postgresql/2017-12-01/servers/model_serverpropertiesforcreate.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/postgresql/2017-12-01/servers/model_serverpropertiesforcreate.go @@ -12,7 +12,7 @@ import ( type ServerPropertiesForCreate interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawServerPropertiesForCreateImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservices/2022-10-01/vaultcertificates/model_resourcecertificatedetails.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservices/2022-10-01/vaultcertificates/model_resourcecertificatedetails.go index cce0bf303437..4057ff8ccddc 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservices/2022-10-01/vaultcertificates/model_resourcecertificatedetails.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservices/2022-10-01/vaultcertificates/model_resourcecertificatedetails.go @@ -12,7 +12,7 @@ import ( type ResourceCertificateDetails interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawResourceCertificateDetailsImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/backupprotectableitems/model_workloadprotectableitem.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/backupprotectableitems/model_workloadprotectableitem.go index 44b1c9e03d8d..91f978fc79b4 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/backupprotectableitems/model_workloadprotectableitem.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/backupprotectableitems/model_workloadprotectableitem.go @@ -12,7 +12,7 @@ import ( type WorkloadProtectableItem interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawWorkloadProtectableItemImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/backupprotecteditems/model_protecteditem.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/backupprotecteditems/model_protecteditem.go index 3bddaacbde72..c0293f0a8088 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/backupprotecteditems/model_protecteditem.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/backupprotecteditems/model_protecteditem.go @@ -12,7 +12,7 @@ import ( type ProtectedItem interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawProtectedItemImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protecteditems/model_protecteditem.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protecteditems/model_protecteditem.go index 7bf74ef7011e..ffceef4149cf 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protecteditems/model_protecteditem.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protecteditems/model_protecteditem.go @@ -12,7 +12,7 @@ import ( type ProtectedItem interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawProtectedItemImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectioncontainers/model_protectioncontainer.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectioncontainers/model_protectioncontainer.go index 61eaf6b11781..1ba03b161724 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectioncontainers/model_protectioncontainer.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectioncontainers/model_protectioncontainer.go @@ -12,7 +12,7 @@ import ( type ProtectionContainer interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawProtectionContainerImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectionpolicies/model_protectionpolicy.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectionpolicies/model_protectionpolicy.go index ab2baf59cff6..7d850fa25bdc 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectionpolicies/model_protectionpolicy.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectionpolicies/model_protectionpolicy.go @@ -12,7 +12,7 @@ import ( type ProtectionPolicy interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawProtectionPolicyImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectionpolicies/model_retentionpolicy.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectionpolicies/model_retentionpolicy.go index 935468499084..fa52632f677c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectionpolicies/model_retentionpolicy.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectionpolicies/model_retentionpolicy.go @@ -12,7 +12,7 @@ import ( type RetentionPolicy interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawRetentionPolicyImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectionpolicies/model_schedulepolicy.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectionpolicies/model_schedulepolicy.go index d8029ff79ae8..6f395ac7fc7e 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectionpolicies/model_schedulepolicy.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-02-01/protectionpolicies/model_schedulepolicy.go @@ -12,7 +12,7 @@ import ( type SchedulePolicy interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawSchedulePolicyImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationfabrics/model_fabricspecificcreationinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationfabrics/model_fabricspecificcreationinput.go index 77538a67c928..8dbde38163be 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationfabrics/model_fabricspecificcreationinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationfabrics/model_fabricspecificcreationinput.go @@ -12,7 +12,7 @@ import ( type FabricSpecificCreationInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawFabricSpecificCreationInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationfabrics/model_fabricspecificdetails.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationfabrics/model_fabricspecificdetails.go index 84ebe19e2f94..2a06cf9d1209 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationfabrics/model_fabricspecificdetails.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationfabrics/model_fabricspecificdetails.go @@ -12,7 +12,7 @@ import ( type FabricSpecificDetails interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawFabricSpecificDetailsImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationnetworkmappings/model_fabricspecificcreatenetworkmappinginput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationnetworkmappings/model_fabricspecificcreatenetworkmappinginput.go index 3ea35d8b588a..24f1403cfe77 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationnetworkmappings/model_fabricspecificcreatenetworkmappinginput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationnetworkmappings/model_fabricspecificcreatenetworkmappinginput.go @@ -12,7 +12,7 @@ import ( type FabricSpecificCreateNetworkMappingInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawFabricSpecificCreateNetworkMappingInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationnetworkmappings/model_fabricspecificupdatenetworkmappinginput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationnetworkmappings/model_fabricspecificupdatenetworkmappinginput.go index 95419b8b30de..9b00243a9b26 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationnetworkmappings/model_fabricspecificupdatenetworkmappinginput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationnetworkmappings/model_fabricspecificupdatenetworkmappinginput.go @@ -12,7 +12,7 @@ import ( type FabricSpecificUpdateNetworkMappingInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawFabricSpecificUpdateNetworkMappingInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationnetworkmappings/model_networkmappingfabricspecificsettings.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationnetworkmappings/model_networkmappingfabricspecificsettings.go index 63dd65ff9611..21b3513bb8ab 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationnetworkmappings/model_networkmappingfabricspecificsettings.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationnetworkmappings/model_networkmappingfabricspecificsettings.go @@ -12,7 +12,7 @@ import ( type NetworkMappingFabricSpecificSettings interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawNetworkMappingFabricSpecificSettingsImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationpolicies/model_policyproviderspecificdetails.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationpolicies/model_policyproviderspecificdetails.go index 016431c3e1a2..ce5f183fe9ea 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationpolicies/model_policyproviderspecificdetails.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationpolicies/model_policyproviderspecificdetails.go @@ -12,7 +12,7 @@ import ( type PolicyProviderSpecificDetails interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawPolicyProviderSpecificDetailsImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationpolicies/model_policyproviderspecificinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationpolicies/model_policyproviderspecificinput.go index f70c979f34d3..51288b6fcb24 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationpolicies/model_policyproviderspecificinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationpolicies/model_policyproviderspecificinput.go @@ -12,7 +12,7 @@ import ( type PolicyProviderSpecificInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawPolicyProviderSpecificInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_adddisksproviderspecificinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_adddisksproviderspecificinput.go index 530b53e37f88..a47bc604b1d1 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_adddisksproviderspecificinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_adddisksproviderspecificinput.go @@ -12,7 +12,7 @@ import ( type AddDisksProviderSpecificInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawAddDisksProviderSpecificInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_applyrecoverypointproviderspecificinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_applyrecoverypointproviderspecificinput.go index 5fb59b4ee03f..59c1321593cd 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_applyrecoverypointproviderspecificinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_applyrecoverypointproviderspecificinput.go @@ -12,7 +12,7 @@ import ( type ApplyRecoveryPointProviderSpecificInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawApplyRecoveryPointProviderSpecificInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_disableprotectionproviderspecificinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_disableprotectionproviderspecificinput.go index 8eb54226f17a..72ae183f48d1 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_disableprotectionproviderspecificinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_disableprotectionproviderspecificinput.go @@ -12,7 +12,7 @@ import ( type DisableProtectionProviderSpecificInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawDisableProtectionProviderSpecificInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_enableprotectionproviderspecificinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_enableprotectionproviderspecificinput.go index 261d1267a06b..c23af95ecaa8 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_enableprotectionproviderspecificinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_enableprotectionproviderspecificinput.go @@ -12,7 +12,7 @@ import ( type EnableProtectionProviderSpecificInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawEnableProtectionProviderSpecificInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_plannedfailoverproviderspecificfailoverinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_plannedfailoverproviderspecificfailoverinput.go index fdbd7c4df6b7..4371a17a2021 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_plannedfailoverproviderspecificfailoverinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_plannedfailoverproviderspecificfailoverinput.go @@ -12,7 +12,7 @@ import ( type PlannedFailoverProviderSpecificFailoverInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawPlannedFailoverProviderSpecificFailoverInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_removedisksproviderspecificinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_removedisksproviderspecificinput.go index d55a6a31a36b..73a0e3c6b4f0 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_removedisksproviderspecificinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_removedisksproviderspecificinput.go @@ -12,7 +12,7 @@ import ( type RemoveDisksProviderSpecificInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawRemoveDisksProviderSpecificInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_replicationproviderspecificsettings.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_replicationproviderspecificsettings.go index 88ae2135fa22..1e5be9a6f911 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_replicationproviderspecificsettings.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_replicationproviderspecificsettings.go @@ -12,7 +12,7 @@ import ( type ReplicationProviderSpecificSettings interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawReplicationProviderSpecificSettingsImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_reversereplicationproviderspecificinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_reversereplicationproviderspecificinput.go index 862a5d59b19a..551d56de914f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_reversereplicationproviderspecificinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_reversereplicationproviderspecificinput.go @@ -12,7 +12,7 @@ import ( type ReverseReplicationProviderSpecificInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawReverseReplicationProviderSpecificInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_switchproviderproviderspecificinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_switchproviderproviderspecificinput.go index 310b9f7c3b1e..fc9fa51e0bf9 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_switchproviderproviderspecificinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_switchproviderproviderspecificinput.go @@ -12,7 +12,7 @@ import ( type SwitchProviderProviderSpecificInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawSwitchProviderProviderSpecificInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_testfailoverproviderspecificinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_testfailoverproviderspecificinput.go index ffc36cdaca9a..a9a345c2fa94 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_testfailoverproviderspecificinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_testfailoverproviderspecificinput.go @@ -12,7 +12,7 @@ import ( type TestFailoverProviderSpecificInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawTestFailoverProviderSpecificInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_unplannedfailoverproviderspecificinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_unplannedfailoverproviderspecificinput.go index 343d3b763980..e1270ba432e8 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_unplannedfailoverproviderspecificinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_unplannedfailoverproviderspecificinput.go @@ -12,7 +12,7 @@ import ( type UnplannedFailoverProviderSpecificInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawUnplannedFailoverProviderSpecificInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_updateapplianceforreplicationprotecteditemproviderspecificinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_updateapplianceforreplicationprotecteditemproviderspecificinput.go index 7803c7873894..4ecaa33309c5 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_updateapplianceforreplicationprotecteditemproviderspecificinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_updateapplianceforreplicationprotecteditemproviderspecificinput.go @@ -12,7 +12,7 @@ import ( type UpdateApplianceForReplicationProtectedItemProviderSpecificInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawUpdateApplianceForReplicationProtectedItemProviderSpecificInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_updatereplicationprotecteditemproviderinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_updatereplicationprotecteditemproviderinput.go index 9dbfcb53e672..e890f834bde2 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_updatereplicationprotecteditemproviderinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotecteditems/model_updatereplicationprotecteditemproviderinput.go @@ -12,7 +12,7 @@ import ( type UpdateReplicationProtectedItemProviderInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawUpdateReplicationProtectedItemProviderInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainermappings/model_protectioncontainermappingproviderspecificdetails.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainermappings/model_protectioncontainermappingproviderspecificdetails.go index c945b0270454..265a84762fbe 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainermappings/model_protectioncontainermappingproviderspecificdetails.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainermappings/model_protectioncontainermappingproviderspecificdetails.go @@ -12,7 +12,7 @@ import ( type ProtectionContainerMappingProviderSpecificDetails interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawProtectionContainerMappingProviderSpecificDetailsImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainermappings/model_replicationproviderspecificcontainermappinginput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainermappings/model_replicationproviderspecificcontainermappinginput.go index 41f7981f6955..baeb2a5e0957 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainermappings/model_replicationproviderspecificcontainermappinginput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainermappings/model_replicationproviderspecificcontainermappinginput.go @@ -12,7 +12,7 @@ import ( type ReplicationProviderSpecificContainerMappingInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawReplicationProviderSpecificContainerMappingInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainermappings/model_replicationproviderspecificupdatecontainermappinginput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainermappings/model_replicationproviderspecificupdatecontainermappinginput.go index 97305ee5ce72..462294f36892 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainermappings/model_replicationproviderspecificupdatecontainermappinginput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainermappings/model_replicationproviderspecificupdatecontainermappinginput.go @@ -12,7 +12,7 @@ import ( type ReplicationProviderSpecificUpdateContainerMappingInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawReplicationProviderSpecificUpdateContainerMappingInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainers/model_replicationproviderspecificcontainercreationinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainers/model_replicationproviderspecificcontainercreationinput.go index 461a925257a5..a7fde08841d6 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainers/model_replicationproviderspecificcontainercreationinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainers/model_replicationproviderspecificcontainercreationinput.go @@ -12,7 +12,7 @@ import ( type ReplicationProviderSpecificContainerCreationInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawReplicationProviderSpecificContainerCreationInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainers/model_switchprotectionproviderspecificinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainers/model_switchprotectionproviderspecificinput.go index e777904122e2..5d72ac382a0a 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainers/model_switchprotectionproviderspecificinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationprotectioncontainers/model_switchprotectionproviderspecificinput.go @@ -12,7 +12,7 @@ import ( type SwitchProtectionProviderSpecificInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawSwitchProtectionProviderSpecificInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanactiondetails.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanactiondetails.go index 0e7e5fd1f349..8743f523c010 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanactiondetails.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanactiondetails.go @@ -12,7 +12,7 @@ import ( type RecoveryPlanActionDetails interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawRecoveryPlanActionDetailsImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanproviderspecificdetails.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanproviderspecificdetails.go index e765fd9aefc1..f3f72d62347a 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanproviderspecificdetails.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanproviderspecificdetails.go @@ -12,7 +12,7 @@ import ( type RecoveryPlanProviderSpecificDetails interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawRecoveryPlanProviderSpecificDetailsImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanproviderspecificfailoverinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanproviderspecificfailoverinput.go index 06431dd2a8fb..5edf059e80e5 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanproviderspecificfailoverinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanproviderspecificfailoverinput.go @@ -12,7 +12,7 @@ import ( type RecoveryPlanProviderSpecificFailoverInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawRecoveryPlanProviderSpecificFailoverInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanproviderspecificinput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanproviderspecificinput.go index a9e5c527d384..b0870834d88b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanproviderspecificinput.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicessiterecovery/2022-10-01/replicationrecoveryplans/model_recoveryplanproviderspecificinput.go @@ -12,7 +12,7 @@ import ( type RecoveryPlanProviderSpecificInput interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawRecoveryPlanProviderSpecificInputImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-10-01/deploymentscripts/model_deploymentscript.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-10-01/deploymentscripts/model_deploymentscript.go index a69e58901023..bb259806d611 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-10-01/deploymentscripts/model_deploymentscript.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-10-01/deploymentscripts/model_deploymentscript.go @@ -12,7 +12,7 @@ import ( type DeploymentScript interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawDeploymentScriptImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/model_alertrule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/model_alertrule.go index 36f61a80d5ac..7bb4d493656b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/model_alertrule.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/alertrules/model_alertrule.go @@ -12,7 +12,7 @@ import ( type AlertRule interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawAlertRuleImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/automationrules/model_automationruleaction.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/automationrules/model_automationruleaction.go index 3d6a36a9d8f8..77887bb8adf9 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/automationrules/model_automationruleaction.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/automationrules/model_automationruleaction.go @@ -12,7 +12,7 @@ import ( type AutomationRuleAction interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawAutomationRuleActionImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/automationrules/model_automationrulecondition.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/automationrules/model_automationrulecondition.go index dae315ac24c0..6e9c0bf07a81 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/automationrules/model_automationrulecondition.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/securityinsights/2022-10-01-preview/automationrules/model_automationrulecondition.go @@ -12,7 +12,7 @@ import ( type AutomationRuleCondition interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawAutomationRuleConditionImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_authinfobase.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_authinfobase.go index 70e5b3164143..69f8da16ba9b 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_authinfobase.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_authinfobase.go @@ -12,7 +12,7 @@ import ( type AuthInfoBase interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawAuthInfoBaseImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_azureresourcepropertiesbase.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_azureresourcepropertiesbase.go index eb4a8ff65ffd..d7d98345d685 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_azureresourcepropertiesbase.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_azureresourcepropertiesbase.go @@ -12,7 +12,7 @@ import ( type AzureResourcePropertiesBase interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawAzureResourcePropertiesBaseImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_secretinfobase.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_secretinfobase.go index 45341f1121de..e9869b2628b2 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_secretinfobase.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_secretinfobase.go @@ -12,7 +12,7 @@ import ( type SecretInfoBase interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawSecretInfoBaseImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_targetservicebase.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_targetservicebase.go index dd8478e2e2b4..226cec33e165 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_targetservicebase.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links/model_targetservicebase.go @@ -12,7 +12,7 @@ import ( type TargetServiceBase interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawTargetServiceBaseImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_authinfobase.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_authinfobase.go index 0b28f0411f44..f4db87ec23e8 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_authinfobase.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_authinfobase.go @@ -12,7 +12,7 @@ import ( type AuthInfoBase interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawAuthInfoBaseImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_azureresourcepropertiesbase.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_azureresourcepropertiesbase.go index d3a8183fe1ae..8770e9d89a1c 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_azureresourcepropertiesbase.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_azureresourcepropertiesbase.go @@ -12,7 +12,7 @@ import ( type AzureResourcePropertiesBase interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawAzureResourcePropertiesBaseImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_secretinfobase.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_secretinfobase.go index 3f55b0a2e9ba..2f256c61e4a8 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_secretinfobase.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_secretinfobase.go @@ -12,7 +12,7 @@ import ( type SecretInfoBase interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawSecretInfoBaseImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_targetservicebase.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_targetservicebase.go index ef66f83b4b08..5f8718ac05a8 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_targetservicebase.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker/model_targetservicebase.go @@ -12,7 +12,7 @@ import ( type TargetServiceBase interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawTargetServiceBaseImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/storagemover/2023-03-01/endpoints/model_endpointbaseproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/storagemover/2023-03-01/endpoints/model_endpointbaseproperties.go index 97518baff125..211401ab8156 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/storagemover/2023-03-01/endpoints/model_endpointbaseproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/storagemover/2023-03-01/endpoints/model_endpointbaseproperties.go @@ -12,7 +12,7 @@ import ( type EndpointBaseProperties interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawEndpointBasePropertiesImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/functions/model_functionbinding.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/functions/model_functionbinding.go index d18b015f1052..b1a7c39083af 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/functions/model_functionbinding.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/functions/model_functionbinding.go @@ -12,7 +12,7 @@ import ( type FunctionBinding interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawFunctionBindingImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/functions/model_functionproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/functions/model_functionproperties.go index 9ea82c06d45e..181c74ee5c0a 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/functions/model_functionproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/functions/model_functionproperties.go @@ -12,7 +12,7 @@ import ( type FunctionProperties interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawFunctionPropertiesImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/functions/model_functionretrievedefaultdefinitionparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/functions/model_functionretrievedefaultdefinitionparameters.go index c00181d72781..8a0a51f4aba7 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/functions/model_functionretrievedefaultdefinitionparameters.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/functions/model_functionretrievedefaultdefinitionparameters.go @@ -12,7 +12,7 @@ import ( type FunctionRetrieveDefaultDefinitionParameters interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawFunctionRetrieveDefaultDefinitionParametersImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_inputproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_inputproperties.go index 9467fb175170..cbc3c04c4cf5 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_inputproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_inputproperties.go @@ -12,7 +12,7 @@ import ( type InputProperties interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawInputPropertiesImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_referenceinputdatasource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_referenceinputdatasource.go index f08c7a2d436a..8db1d6370412 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_referenceinputdatasource.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_referenceinputdatasource.go @@ -12,7 +12,7 @@ import ( type ReferenceInputDataSource interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawReferenceInputDataSourceImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_serialization.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_serialization.go index 8e4e163c78d5..f7ae12685513 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_serialization.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_serialization.go @@ -12,7 +12,7 @@ import ( type Serialization interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawSerializationImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_streaminputdatasource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_streaminputdatasource.go index 0fd906f8ee71..f57f014f1247 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_streaminputdatasource.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/inputs/model_streaminputdatasource.go @@ -12,7 +12,7 @@ import ( type StreamInputDataSource interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawStreamInputDataSourceImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_functionbinding.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_functionbinding.go index 1ef93846664c..e34e1d5d0321 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_functionbinding.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_functionbinding.go @@ -12,7 +12,7 @@ import ( type FunctionBinding interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawFunctionBindingImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_functionproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_functionproperties.go index fb08a672faba..797d9ff51204 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_functionproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_functionproperties.go @@ -12,7 +12,7 @@ import ( type FunctionProperties interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawFunctionPropertiesImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_inputproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_inputproperties.go index de9e5bc43a49..20140f3aa714 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_inputproperties.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_inputproperties.go @@ -12,7 +12,7 @@ import ( type InputProperties interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawInputPropertiesImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_outputdatasource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_outputdatasource.go index 26d8e84610f7..854d1d7e9b72 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_outputdatasource.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_outputdatasource.go @@ -12,7 +12,7 @@ import ( type OutputDataSource interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawOutputDataSourceImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_referenceinputdatasource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_referenceinputdatasource.go index 9b7e4d111cc8..56c7d1cfd633 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_referenceinputdatasource.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_referenceinputdatasource.go @@ -12,7 +12,7 @@ import ( type ReferenceInputDataSource interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawReferenceInputDataSourceImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_serialization.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_serialization.go index a4bb3af03034..19476ba2e7a6 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_serialization.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_serialization.go @@ -12,7 +12,7 @@ import ( type Serialization interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawSerializationImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_streaminputdatasource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_streaminputdatasource.go index 7c8a73eae74f..412a7fa9166e 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_streaminputdatasource.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2020-03-01/streamingjobs/model_streaminputdatasource.go @@ -12,7 +12,7 @@ import ( type StreamInputDataSource interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawStreamInputDataSourceImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2021-10-01-preview/outputs/model_outputdatasource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2021-10-01-preview/outputs/model_outputdatasource.go index 54ed114007e4..07f934765ec2 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2021-10-01-preview/outputs/model_outputdatasource.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2021-10-01-preview/outputs/model_outputdatasource.go @@ -12,7 +12,7 @@ import ( type OutputDataSource interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawOutputDataSourceImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2021-10-01-preview/outputs/model_serialization.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2021-10-01-preview/outputs/model_serialization.go index 78d390ec0f61..dd7efbb86a37 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2021-10-01-preview/outputs/model_serialization.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/streamanalytics/2021-10-01-preview/outputs/model_serialization.go @@ -12,7 +12,7 @@ import ( type Serialization interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawSerializationImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/environments/model_environmentcreateorupdateparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/environments/model_environmentcreateorupdateparameters.go index c00c69c04dbc..cd3944bf5094 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/environments/model_environmentcreateorupdateparameters.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/environments/model_environmentcreateorupdateparameters.go @@ -12,7 +12,7 @@ import ( type EnvironmentCreateOrUpdateParameters interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawEnvironmentCreateOrUpdateParametersImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/environments/model_environmentresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/environments/model_environmentresource.go index d086b71ec603..0dcbd2472292 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/environments/model_environmentresource.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/environments/model_environmentresource.go @@ -12,7 +12,7 @@ import ( type EnvironmentResource interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawEnvironmentResourceImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/environments/model_environmentupdateparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/environments/model_environmentupdateparameters.go index 7c9eb7d0f029..7acd0488a03f 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/environments/model_environmentupdateparameters.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/environments/model_environmentupdateparameters.go @@ -12,7 +12,7 @@ import ( type EnvironmentUpdateParameters interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawEnvironmentUpdateParametersImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/eventsources/model_eventsourcecreateorupdateparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/eventsources/model_eventsourcecreateorupdateparameters.go index 812efdd995bb..f49c6c716489 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/eventsources/model_eventsourcecreateorupdateparameters.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/eventsources/model_eventsourcecreateorupdateparameters.go @@ -12,7 +12,7 @@ import ( type EventSourceCreateOrUpdateParameters interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawEventSourceCreateOrUpdateParametersImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/eventsources/model_eventsourceresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/eventsources/model_eventsourceresource.go index 44f6746748cf..fb8ace14b524 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/eventsources/model_eventsourceresource.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/eventsources/model_eventsourceresource.go @@ -12,7 +12,7 @@ import ( type EventSourceResource interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawEventSourceResourceImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/eventsources/model_eventsourceupdateparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/eventsources/model_eventsourceupdateparameters.go index 37bdbbb55811..269cdb0d05a3 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/eventsources/model_eventsourceupdateparameters.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15/eventsources/model_eventsourceupdateparameters.go @@ -12,7 +12,7 @@ import ( type EventSourceUpdateParameters interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawEventSourceUpdateParametersImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/model_eventlistenerendpoint.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/model_eventlistenerendpoint.go index 5ed1b93feabd..ce6a41e86885 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/model_eventlistenerendpoint.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/model_eventlistenerendpoint.go @@ -12,7 +12,7 @@ import ( type EventListenerEndpoint interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawEventListenerEndpointImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/model_eventlistenerfilter.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/model_eventlistenerfilter.go index a246071a240d..113e67a18be5 100644 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/model_eventlistenerfilter.go +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/webpubsub/2023-02-01/webpubsub/model_eventlistenerfilter.go @@ -12,7 +12,7 @@ import ( type EventListenerFilter interface { } -// RawModeOfTransitImpl is returned when the Discriminated Value +// RawEventListenerFilterImpl is returned when the Discriminated Value // doesn't match any of the defined types // NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) // and is used only for Deserialization (e.g. this cannot be used as a Request Payload). diff --git a/vendor/modules.txt b/vendor/modules.txt index cf90be61a402..3fe6386befd6 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -156,7 +156,7 @@ github.com/hashicorp/go-azure-helpers/resourcemanager/tags github.com/hashicorp/go-azure-helpers/resourcemanager/zones github.com/hashicorp/go-azure-helpers/sender github.com/hashicorp/go-azure-helpers/storage -# github.com/hashicorp/go-azure-sdk v0.20230907.1113401 +# github.com/hashicorp/go-azure-sdk v0.20230918.1115907 ## explicit; go 1.19 github.com/hashicorp/go-azure-sdk/resource-manager/aad/2021-05-01/domainservices github.com/hashicorp/go-azure-sdk/resource-manager/aadb2c/2021-04-01-preview From 1ed6ded2cde6da2ca9b17559335f3bf64fe2a8f2 Mon Sep 17 00:00:00 2001 From: Xiaxin <92154856+xiaxyi@users.noreply.github.com> Date: Wed, 20 Sep 2023 22:38:17 +0800 Subject: [PATCH 251/336] `azurerm_linux_function_app`, `azurerm_windows_function_app` - set the storage account for function app using elastic plans automatically (#21212) --- .../appservice/linux_function_app_resource.go | 20 ++++++------------- .../windows_function_app_resource.go | 20 ++++++------------- .../docs/r/linux_function_app.html.markdown | 12 +++++++---- .../docs/r/windows_function_app.html.markdown | 14 ++++++++----- 4 files changed, 29 insertions(+), 37 deletions(-) diff --git a/internal/services/appservice/linux_function_app_resource.go b/internal/services/appservice/linux_function_app_resource.go index 0161ebe2dbff..13c9326515e0 100644 --- a/internal/services/appservice/linux_function_app_resource.go +++ b/internal/services/appservice/linux_function_app_resource.go @@ -459,7 +459,9 @@ func (r LinuxFunctionAppResource) Create() sdk.ResourceFunc { suffix := uuid.New().String()[0:4] _, contentOverVnetEnabled := functionApp.AppSettings["WEBSITE_CONTENTOVERVNET"] _, contentSharePresent := functionApp.AppSettings["WEBSITE_CONTENTSHARE"] - _, contentShareConnectionString := functionApp.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"] + if _, contentShareConnectionStringPresent := functionApp.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"]; !contentShareConnectionStringPresent { + functionApp.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"] = storageString + } if !contentSharePresent { if contentOverVnetEnabled { @@ -467,12 +469,6 @@ func (r LinuxFunctionAppResource) Create() sdk.ResourceFunc { } functionApp.AppSettings["WEBSITE_CONTENTSHARE"] = fmt.Sprintf("%s-%s", strings.ToLower(functionApp.Name), suffix) } - if !contentShareConnectionString { - if contentOverVnetEnabled && contentSharePresent { - return fmt.Errorf("WEBSITE_CONTENTAZUREFILECONNECTIONSTRING must be set when WEBSITE_CONTENTSHARE and WEBSITE_CONTENTOVERVNET are specified") - } - functionApp.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"] = storageString - } } else { if _, present := functionApp.AppSettings["AzureWebJobsStorage__accountName"]; !present { functionApp.AppSettings["AzureWebJobsStorage__accountName"] = storageString @@ -945,7 +941,9 @@ func (r LinuxFunctionAppResource) Update() sdk.ResourceFunc { suffix := uuid.New().String()[0:4] _, contentOverVnetEnabled := state.AppSettings["WEBSITE_CONTENTOVERVNET"] _, contentSharePresent := state.AppSettings["WEBSITE_CONTENTSHARE"] - _, contentShareConnectionString := state.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"] + if _, contentShareConnectionStringPresent := state.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"]; !contentShareConnectionStringPresent { + state.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"] = storageString + } if !contentSharePresent { if contentOverVnetEnabled { @@ -953,12 +951,6 @@ func (r LinuxFunctionAppResource) Update() sdk.ResourceFunc { } state.AppSettings["WEBSITE_CONTENTSHARE"] = fmt.Sprintf("%s-%s", strings.ToLower(state.Name), suffix) } - if !contentShareConnectionString { - if contentOverVnetEnabled && contentSharePresent { - return fmt.Errorf("WEBSITE_CONTENTAZUREFILECONNECTIONSTRING must be set when WEBSITE_CONTENTSHARE and WEBSITE_CONTENTOVERVNET is specified") - } - state.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"] = storageString - } } else { if _, present := state.AppSettings["AzureWebJobsStorage__accountName"]; !present { state.AppSettings["AzureWebJobsStorage__accountName"] = storageString diff --git a/internal/services/appservice/windows_function_app_resource.go b/internal/services/appservice/windows_function_app_resource.go index 09652b5ff342..41b5497281c3 100644 --- a/internal/services/appservice/windows_function_app_resource.go +++ b/internal/services/appservice/windows_function_app_resource.go @@ -457,7 +457,9 @@ func (r WindowsFunctionAppResource) Create() sdk.ResourceFunc { suffix := uuid.New().String()[0:4] _, contentOverVnetEnabled := functionApp.AppSettings["WEBSITE_CONTENTOVERVNET"] _, contentSharePresent := functionApp.AppSettings["WEBSITE_CONTENTSHARE"] - _, contentShareConnectionString := functionApp.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"] + if _, contentShareConnectionStringPresent := functionApp.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"]; !contentShareConnectionStringPresent { + functionApp.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"] = storageString + } if !contentSharePresent { if contentOverVnetEnabled { @@ -465,12 +467,6 @@ func (r WindowsFunctionAppResource) Create() sdk.ResourceFunc { } functionApp.AppSettings["WEBSITE_CONTENTSHARE"] = fmt.Sprintf("%s-%s", strings.ToLower(functionApp.Name), suffix) } - if !contentShareConnectionString { - if contentOverVnetEnabled && contentSharePresent { - return fmt.Errorf("WEBSITE_CONTENTAZUREFILECONNECTIONSTRING must be set when WEBSITE_CONTENTSHARE and WEBSITE_CONTENTOVERVNET are specified") - } - functionApp.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"] = storageString - } } else { if _, present := functionApp.AppSettings["AzureWebJobsStorage__accountName"]; !present { functionApp.AppSettings["AzureWebJobsStorage__accountName"] = storageString @@ -948,7 +944,9 @@ func (r WindowsFunctionAppResource) Update() sdk.ResourceFunc { suffix := uuid.New().String()[0:4] _, contentOverVnetEnabled := state.AppSettings["WEBSITE_CONTENTOVERVNET"] _, contentSharePresent := state.AppSettings["WEBSITE_CONTENTSHARE"] - _, contentShareConnectionString := state.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"] + if _, contentShareConnectionStringPresent := state.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"]; !contentShareConnectionStringPresent { + state.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"] = storageString + } if !contentSharePresent { if contentOverVnetEnabled { @@ -956,12 +954,6 @@ func (r WindowsFunctionAppResource) Update() sdk.ResourceFunc { } state.AppSettings["WEBSITE_CONTENTSHARE"] = fmt.Sprintf("%s-%s", strings.ToLower(state.Name), suffix) } - if !contentShareConnectionString { - if contentOverVnetEnabled && contentSharePresent { - return fmt.Errorf("WEBSITE_CONTENTAZUREFILECONNECTIONSTRING must be set when WEBSITE_CONTENTSHARE and WEBSITE_CONTENTOVERVNET is specified") - } - state.AppSettings["WEBSITE_CONTENTAZUREFILECONNECTIONSTRING"] = storageString - } } else { if _, present := state.AppSettings["AzureWebJobsStorage__accountName"]; !present { state.AppSettings["AzureWebJobsStorage__accountName"] = storageString diff --git a/website/docs/r/linux_function_app.html.markdown b/website/docs/r/linux_function_app.html.markdown index f458076d49ca..f90173b93e05 100644 --- a/website/docs/r/linux_function_app.html.markdown +++ b/website/docs/r/linux_function_app.html.markdown @@ -69,11 +69,15 @@ The following arguments are supported: * `app_settings` - (Optional) A map of key-value pairs for [App Settings](https://docs.microsoft.com/azure/azure-functions/functions-app-settings) and custom values. -~> **Note:** for runtime related settings, please use `node_version` in `site_config` to set the node version and use `functions_extension_version` to set the function runtime version, terraform will assign the values to the key `WEBSITE_NODE_DEFAULT_VERSION` and `FUNCTIONS_EXTENSION_VERSION` in app setting. +~> **Note:** For runtime related settings, please use `node_version` in `site_config` to set the node version and use `functions_extension_version` to set the function runtime version, terraform will assign the values to the key `WEBSITE_NODE_DEFAULT_VERSION` and `FUNCTIONS_EXTENSION_VERSION` in app setting. + ~> **Note:** For storage related settings, please use related properties that are available such as `storage_account_access_key`, terraform will assign the value to keys such as `WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`, `AzureWebJobsStorage` in app_setting. -~> **Note:** for application insight related settings, please use `application_insights_connection_string` and `application_insights_key`, terraform will assign the value to the key `APPINSIGHTS_INSTRUMENTATIONKEY` and `APPLICATIONINSIGHTS_CONNECTION_STRING` in app setting. -~> **Note:** for health check related settings, please use `health_check_eviction_time_in_min`, terraform will assign the value to the key `WEBSITE_HEALTHCHECK_MAXPINGFAILURES` in app setting. -~> **NOTE:** Please create a predefined share if you are restricting your storage account to a virtual network by setting `WEBSITE_CONTENTOVERVNET` to 1 in app_setting. + +~> **Note:** For application insight related settings, please use `application_insights_connection_string` and `application_insights_key`, terraform will assign the value to the key `APPINSIGHTS_INSTRUMENTATIONKEY` and `APPLICATIONINSIGHTS_CONNECTION_STRING` in app setting. + +~> **Note:** For health check related settings, please use `health_check_eviction_time_in_min`, terraform will assign the value to the key `WEBSITE_HEALTHCHECK_MAXPINGFAILURES` in app setting. + +~> **Note:** Please create a predefined share if you are restricting your storage account to a virtual network by setting `WEBSITE_CONTENTOVERVNET` to 1 in app_setting. * `auth_settings` - (Optional) A `auth_settings` block as defined below. diff --git a/website/docs/r/windows_function_app.html.markdown b/website/docs/r/windows_function_app.html.markdown index 87c2af296787..f0f43006a86d 100644 --- a/website/docs/r/windows_function_app.html.markdown +++ b/website/docs/r/windows_function_app.html.markdown @@ -68,12 +68,16 @@ The following arguments are supported: --- * `app_settings` - (Optional) A map of key-value pairs for [App Settings](https://docs.microsoft.com/azure/azure-functions/functions-app-settings) and custom values. - -~> **Note:** for runtime related settings, please use `node_version` in `site_config` to set the node version and use `functions_extension_version` to set the function runtime version, terraform will assign the values to the key `WEBSITE_NODE_DEFAULT_VERSION` and `FUNCTIONS_EXTENSION_VERSION` in app setting. + +~> **Note:** For runtime related settings, please use `node_version` in `site_config` to set the node version and use `functions_extension_version` to set the function runtime version, terraform will assign the values to the key `WEBSITE_NODE_DEFAULT_VERSION` and `FUNCTIONS_EXTENSION_VERSION` in app setting. + ~> **Note:** For storage related settings, please use related properties that are available such as `storage_account_access_key`, terraform will assign the value to keys such as `WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`, `AzureWebJobsStorage` in app_setting. -~> **Note:** for application insight related settings, please use `application_insights_connection_string` and `application_insights_key`, terraform will assign the value to the key `APPINSIGHTS_INSTRUMENTATIONKEY` and `APPLICATIONINSIGHTS_CONNECTION_STRING` in app setting. -~> **Note:** for health check related settings, please use `health_check_eviction_time_in_min`, terraform will assign the value to the key `WEBSITE_HEALTHCHECK_MAXPINGFAILURES` in app setting. -~> **NOTE:** Please create a predefined share if you are restricting your storage account to a virtual network by setting `WEBSITE_CONTENTOVERVNET` to 1 in app_setting. + +~> **Note:** For application insight related settings, please use `application_insights_connection_string` and `application_insights_key`, terraform will assign the value to the key `APPINSIGHTS_INSTRUMENTATIONKEY` and `APPLICATIONINSIGHTS_CONNECTION_STRING` in app setting. + +~> **Note:** For health check related settings, please use `health_check_eviction_time_in_min`, terraform will assign the value to the key `WEBSITE_HEALTHCHECK_MAXPINGFAILURES` in app setting. + +~> **Note:** Please create a predefined share if you are restricting your storage account to a virtual network by setting `WEBSITE_CONTENTOVERVNET` to 1 in app_setting. * `auth_settings` - (Optional) A `auth_settings` block as defined below. From eb0343e2e6625186db2f74352bd9b4421ae0cf3d Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Wed, 20 Sep 2023 15:40:41 +0100 Subject: [PATCH 252/336] Update CHANGELOG.md for #21212 --- CHANGELOG.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bca474dc89c..770b1248fa49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,16 +29,18 @@ BUG FIXES: * `azurerm_api_management_api` - set the `service_url` property when importing the resource [GH-23011] * `azurerm_app_configuration` - prevent crash by nil checking the encryption configuration [GH-23302] * `azurerm_app_configuration_feature` - update `percentage_filter_value` to accept correct type of float [GH-23263] +* `azurerm_linux_function_app` - fix a bug in setting the storage settings when using Elastic Premium plans [GH-21212] * `azurerm_linux_web_app` - fix docker app stack update [GH-23303] * `azurerm_linux_web_app` - Fix crash in auto heal expansion [GH-21328] * `azurerm_linux_web_app_slot` - fix docker app stack update [GH-23303] * `azurerm_linux_web_app_slot` - Fix crash in auto heal expansion [GH-21328] * `azurerm_mssql_elasticpool` - remove check that prevents `license_type` from being set for certain skus [GH-23262] -* `azurerm_windows_web_app` - fix docker app stack update [GH-23303] -* `azurerm_windows_web_app_slot` - fix docker app stack update [GH-23303] * `azurerm_servicebus_queue` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] * `azurerm_servicebus_topic` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] * `azurerm_storage_account` - prevent sending unsupported blob properties in payload for `Storage` account kind [GH-23288] +* `azurerm_windows_function_app` - fix a bug in setting the storage settings when using Elastic Premium plans [GH-21212] +* `azurerm_windows_web_app` - fix docker app stack update [GH-23303] +* `azurerm_windows_web_app_slot` - fix docker app stack update [GH-23303] DEPRECATIONS: From 304b81e0ea29f37df3e0bb3c2a73a0782d0b7063 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Wed, 20 Sep 2023 17:03:38 +0200 Subject: [PATCH 253/336] updating to include #23337 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 770b1248fa49..3fe3c9db4f2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ FEATURES: ENHANCEMENTS: +* dependencies: updating to `v0.20230918.1115907` of `github.com/hashicorp/go-azure-sdk` [GH-23337] * dependencies: downgrading to `v1.12.5` of `github.com/rickb777/date` [GH-23296] * `mysql`: updating to use API Version `2022-01-01` [GH-23320] * `azurerm_app_configuration` - add support for the `replica` block [GH-22452] From 6e2967933841ff69ee3d02f722ff86803a2a707c Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Wed, 20 Sep 2023 09:41:08 -0700 Subject: [PATCH 254/336] `azurerm_key_vault_key` - ForceNew when `expiration_date` is removed from the config file (#23327) --- internal/services/keyvault/key_vault_key_resource.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/services/keyvault/key_vault_key_resource.go b/internal/services/keyvault/key_vault_key_resource.go index 4eafbaba1e65..610ef37eccee 100644 --- a/internal/services/keyvault/key_vault_key_resource.go +++ b/internal/services/keyvault/key_vault_key_resource.go @@ -256,6 +256,12 @@ func resourceKeyVaultKey() *pluginsdk.Resource { "tags": tags.Schema(), }, + + CustomizeDiff: pluginsdk.CustomDiffWithAll( + pluginsdk.ForceNewIfChange("expiration_date", func(ctx context.Context, old, new, meta interface{}) bool { + return old.(string) != "" && new.(string) == "" + }), + ), } } From d9383deed8628719ff513e9baeb05990da3cdc66 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Wed, 20 Sep 2023 09:41:40 -0700 Subject: [PATCH 255/336] Update CHANGELOG.md for #23327 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fe3c9db4f2e..c4b6f43f853f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ BUG FIXES: * `azurerm_api_management_api` - set the `service_url` property when importing the resource [GH-23011] * `azurerm_app_configuration` - prevent crash by nil checking the encryption configuration [GH-23302] * `azurerm_app_configuration_feature` - update `percentage_filter_value` to accept correct type of float [GH-23263] +* `azurerm_key_vault_key` - ForceNew when `expiration_date` is removed from the config file [GH-23327] * `azurerm_linux_function_app` - fix a bug in setting the storage settings when using Elastic Premium plans [GH-21212] * `azurerm_linux_web_app` - fix docker app stack update [GH-23303] * `azurerm_linux_web_app` - Fix crash in auto heal expansion [GH-21328] From 1f0865c0535c10b87ee6a0676e55e1fef93ff969 Mon Sep 17 00:00:00 2001 From: Tao <104055472+teowa@users.noreply.github.com> Date: Thu, 21 Sep 2023 15:51:23 +0800 Subject: [PATCH 256/336] `azurerm_management_group_subscription_association` - correctly mark as gone if not found during read (#23335) * fix read * fix --- .../subscription_association_resource.go | 15 ++++++--------- .../subscription_association_resource_test.go | 3 ++- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/internal/services/managementgroup/subscription_association_resource.go b/internal/services/managementgroup/subscription_association_resource.go index f76a1d5cf32b..1a57a9cf405d 100644 --- a/internal/services/managementgroup/subscription_association_resource.go +++ b/internal/services/managementgroup/subscription_association_resource.go @@ -7,6 +7,7 @@ import ( "context" "fmt" "log" + "strings" "time" "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2020-05-01/managementgroups" // nolint: staticcheck @@ -87,7 +88,7 @@ func resourceManagementGroupSubscriptionAssociationCreate(d *pluginsdk.ResourceD if props.Children != nil { for _, v := range *props.Children { - if v.Type == managementgroups.Type1Subscriptions && v.Name != nil && *v.Name == id.SubscriptionId { + if v.Type == managementgroups.Type1Subscriptions && v.Name != nil && strings.EqualFold(*v.Name, id.SubscriptionId) { return tf.ImportAsExistsError("azurerm_management_group_subscription_association", id.ID()) } } @@ -119,13 +120,9 @@ func resourceManagementGroupSubscriptionAssociationRead(d *pluginsdk.ResourceDat } found := false if props := managementGroup.Properties; props != nil { - if props.Children == nil { - return fmt.Errorf("could not read properties for Management Group %q", id.ManagementGroup) - } - - for _, v := range *props.Children { - if v.Type == managementgroups.Type1Subscriptions { - if v.Name != nil && *v.Name == id.SubscriptionId { + if props.Children != nil { + for _, v := range *props.Children { + if v.Type == managementgroups.Type1Subscriptions && v.Name != nil && strings.EqualFold(*v.Name, id.SubscriptionId) { found = true } } @@ -196,7 +193,7 @@ func subscriptionAssociationRefreshFunc(ctx context.Context, client *managementg if props := managementGroup.Properties; props != nil && props.Children != nil { for _, v := range *props.Children { if v.Type == managementgroups.Type1Subscriptions { - if v.Name != nil && *v.Name == id.SubscriptionId { + if v.Name != nil && strings.EqualFold(*v.Name, id.SubscriptionId) { return managementGroup, "Exists", nil } } diff --git a/internal/services/managementgroup/subscription_association_resource_test.go b/internal/services/managementgroup/subscription_association_resource_test.go index dbaf00e223a6..9172b325895b 100644 --- a/internal/services/managementgroup/subscription_association_resource_test.go +++ b/internal/services/managementgroup/subscription_association_resource_test.go @@ -7,6 +7,7 @@ import ( "context" "fmt" "os" + "strings" "testing" "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2020-05-01/managementgroups" // nolint: staticcheck @@ -124,7 +125,7 @@ func (r ManagementGroupSubscriptionAssociation) Exists(ctx context.Context, clie present := false for _, v := range *resp.Children { - if v.Type == managementgroups.Type1Subscriptions && v.Name != nil && *v.Name == id.SubscriptionId { + if v.Type == managementgroups.Type1Subscriptions && v.Name != nil && strings.EqualFold(*v.Name, id.SubscriptionId) { present = true } } From 20847e8478deb54c07a842f1d8b4a1fa0757d26d Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Thu, 21 Sep 2023 16:16:31 +0800 Subject: [PATCH 257/336] `azurerm_log_analytics_solution`: fix update & refactor to typed sdk (#23333) * `azurerm_log_analytics_solution`: add a test for update Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> * fix #23312 Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> * `azurerm_log_analytics_solution`: refactor to typed sdk Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> * add state migration Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> * determine if `tag` has changes Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --------- Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --- .../log_analytics_solution_resource.go | 470 ++++++++++-------- .../log_analytics_solution_resource_test.go | 59 +++ .../services/loganalytics/registration.go | 2 +- 3 files changed, 324 insertions(+), 207 deletions(-) diff --git a/internal/services/loganalytics/log_analytics_solution_resource.go b/internal/services/loganalytics/log_analytics_solution_resource.go index 5ae195a14a80..cd395f520ecc 100644 --- a/internal/services/loganalytics/log_analytics_solution_resource.go +++ b/internal/services/loganalytics/log_analytics_solution_resource.go @@ -4,255 +4,324 @@ package loganalytics import ( + "context" "fmt" - "log" "strings" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces" "github.com/hashicorp/go-azure-sdk/resource-manager/operationsmanagement/2015-11-01-preview/solution" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" - "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" "github.com/hashicorp/terraform-provider-azurerm/internal/services/loganalytics/migration" "github.com/hashicorp/terraform-provider-azurerm/internal/services/loganalytics/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tags" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/suppress" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" - "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" "github.com/hashicorp/terraform-provider-azurerm/utils" ) -func resourceLogAnalyticsSolution() *pluginsdk.Resource { - return &pluginsdk.Resource{ - Create: resourceLogAnalyticsSolutionCreateUpdate, - Read: resourceLogAnalyticsSolutionRead, - Update: resourceLogAnalyticsSolutionCreateUpdate, - Delete: resourceLogAnalyticsSolutionDelete, - Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { - _, err := solution.ParseSolutionID(id) - return err - }), - - Timeouts: &pluginsdk.ResourceTimeout{ - Create: pluginsdk.DefaultTimeout(30 * time.Minute), - Read: pluginsdk.DefaultTimeout(5 * time.Minute), - Update: pluginsdk.DefaultTimeout(30 * time.Minute), - Delete: pluginsdk.DefaultTimeout(30 * time.Minute), - }, +type LogAnalyticsSolutionResource struct{} +func (s LogAnalyticsSolutionResource) StateUpgraders() sdk.StateUpgradeData { + return sdk.StateUpgradeData{ SchemaVersion: 1, - StateUpgraders: pluginsdk.StateUpgrades(map[int]pluginsdk.StateUpgrade{ + Upgraders: map[int]pluginsdk.StateUpgrade{ 0: migration.SolutionV0ToV1{}, - }), - - Schema: map[string]*pluginsdk.Schema{ - "solution_name": { - Type: pluginsdk.TypeString, - Required: true, - ForceNew: true, - ValidateFunc: validation.StringIsNotEmpty, - }, + }, + } +} - "workspace_name": { - Type: pluginsdk.TypeString, - Required: true, - ForceNew: true, - ValidateFunc: validate.LogAnalyticsWorkspaceName, - }, +type SolutionResourceModel struct { + SolutionName string `tfschema:"solution_name"` + WorkspaceName string `tfschema:"workspace_name"` + WorkspaceResourceId string `tfschema:"workspace_resource_id"` + Location string `tfschema:"location"` + ResourceGroupName string `tfschema:"resource_group_name"` + SolutionPlan []SolutionPlanModel `tfschema:"plan"` + Tags map[string]string `tfschema:"tags"` +} - "workspace_resource_id": { - Type: pluginsdk.TypeString, - Required: true, - ForceNew: true, - DiffSuppressFunc: suppress.CaseDifference, - }, +type SolutionPlanModel struct { + Name string `tfschema:"name"` + Publisher string `tfschema:"publisher"` + PromotionCode string `tfschema:"promotion_code"` + Product string `tfschema:"product"` +} + +var _ sdk.ResourceWithUpdate = LogAnalyticsSolutionResource{} +var _ sdk.ResourceWithStateMigration = LogAnalyticsSolutionResource{} + +func (s LogAnalyticsSolutionResource) ModelObject() interface{} { + return &SolutionResourceModel{} +} + +func (s LogAnalyticsSolutionResource) ResourceType() string { + return "azurerm_log_analytics_solution" +} + +func (s LogAnalyticsSolutionResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return solution.ValidateSolutionID +} + +func (s LogAnalyticsSolutionResource) Arguments() map[string]*schema.Schema { + return map[string]*pluginsdk.Schema{ + "solution_name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "workspace_name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validate.LogAnalyticsWorkspaceName, + }, + + "workspace_resource_id": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + DiffSuppressFunc: suppress.CaseDifference, + }, + + "location": commonschema.Location(), - "location": commonschema.Location(), - - "resource_group_name": azure.SchemaResourceGroupNameDiffSuppress(), - - "plan": { - Type: pluginsdk.TypeList, - Required: true, - MaxItems: 1, - Elem: &pluginsdk.Resource{ - Schema: map[string]*pluginsdk.Schema{ - "name": { - Type: pluginsdk.TypeString, - Computed: true, - }, - "publisher": { - Type: pluginsdk.TypeString, - Required: true, - ForceNew: true, - }, - "promotion_code": { - Type: pluginsdk.TypeString, - Optional: true, - ForceNew: true, - }, - "product": { - Type: pluginsdk.TypeString, - Required: true, - ForceNew: true, - }, + "resource_group_name": azure.SchemaResourceGroupNameDiffSuppress(), + + "plan": { + Type: pluginsdk.TypeList, + Required: true, + MaxItems: 1, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Computed: true, + }, + "publisher": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + }, + "promotion_code": { + Type: pluginsdk.TypeString, + Optional: true, + ForceNew: true, + }, + "product": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, }, }, }, - - "tags": tags.Schema(), }, + + "tags": tags.Schema(), } } -func resourceLogAnalyticsSolutionCreateUpdate(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).LogAnalytics.SolutionsClient - subscriptionId := meta.(*clients.Client).Account.SubscriptionId - ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) - defer cancel() - log.Printf("[INFO] preparing arguments for Log Analytics Solution creation.") +func (s LogAnalyticsSolutionResource) Attributes() map[string]*schema.Schema { + return map[string]*pluginsdk.Schema{} +} +func (s LogAnalyticsSolutionResource) Create() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.LogAnalytics.SolutionsClient + subscriptionId := metadata.Client.Account.SubscriptionId + + var config SolutionResourceModel + if err := metadata.Decode(&config); err != nil { + return fmt.Errorf("decoding %v", err) + } + + // The resource requires both .name and .plan.name are set in the format + // "SolutionName(WorkspaceName)". Feedback will be submitted to the OMS team as IMO this isn't ideal. + id := solution.NewSolutionID(subscriptionId, config.ResourceGroupName, fmt.Sprintf("%s(%s)", config.SolutionName, config.WorkspaceName)) - // The resource requires both .name and .plan.name are set in the format - // "SolutionName(WorkspaceName)". Feedback will be submitted to the OMS team as IMO this isn't ideal. - id := solution.NewSolutionID(subscriptionId, d.Get("resource_group_name").(string), fmt.Sprintf("%s(%s)", d.Get("solution_name").(string), d.Get("workspace_name").(string))) + existing, err := client.Get(ctx, id) + if err != nil { + if !response.WasNotFound(existing.HttpResponse) { + return fmt.Errorf("checking for presence of existing %s: %s", id, err) + } + } - if d.IsNewResource() { - existing, err := client.Get(ctx, id) - if err != nil { if !response.WasNotFound(existing.HttpResponse) { - return fmt.Errorf("checking for presence of existing %s: %s", id, err) + return tf.ImportAsExistsError("azurerm_log_analytics_solution", id.ID()) } - } - if !response.WasNotFound(existing.HttpResponse) { - return tf.ImportAsExistsError("azurerm_log_analytics_solution", id.ID()) - } - } + workspaceID, err := workspaces.ParseWorkspaceID(config.WorkspaceResourceId) + if err != nil { + return err + } - solutionPlan := expandAzureRmLogAnalyticsSolutionPlan(d) - solutionPlan.Name = &id.SolutionName + parameters := solution.Solution{ + Name: pointer.To(id.SolutionName), + Location: pointer.To(azure.NormalizeLocation(config.Location)), + Properties: &solution.SolutionProperties{ + WorkspaceResourceId: workspaceID.ID(), + }, + Tags: pointer.To(config.Tags), + } - location := azure.NormalizeLocation(d.Get("location").(string)) - workspaceID, err := workspaces.ParseWorkspaceID(d.Get("workspace_resource_id").(string)) - if err != nil { - return err - } + if len(config.SolutionPlan) > 0 { + solutionPlan := expandAzureRmLogAnalyticsSolutionPlan(config.SolutionPlan) + solutionPlan.Name = &id.SolutionName + parameters.Plan = &solutionPlan + } - parameters := solution.Solution{ - Name: utils.String(id.SolutionName), - Location: utils.String(location), - Plan: &solutionPlan, - Properties: &solution.SolutionProperties{ - WorkspaceResourceId: workspaceID.ID(), + err = client.CreateOrUpdateThenPoll(ctx, id, parameters) + if err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + + metadata.SetID(id) + + return nil }, - Tags: expandTags(d.Get("tags").(map[string]interface{})), } +} - err = client.CreateOrUpdateThenPoll(ctx, id, parameters) - if err != nil { - return fmt.Errorf("creating/updating %s: %+v", id, err) - } +func (s LogAnalyticsSolutionResource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 5 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.LogAnalytics.SolutionsClient - d.SetId(id.ID()) + id, err := solution.ParseSolutionID(metadata.ResourceData.Id()) + if err != nil { + return err + } - return resourceLogAnalyticsSolutionRead(d, meta) -} + resp, err := client.Get(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return metadata.MarkAsGone(id) + } + return fmt.Errorf("retrieving %s: %+v", metadata.ResourceData.Id(), err) + } + + state := SolutionResourceModel{ + ResourceGroupName: id.ResourceGroupName, + } + + if model := resp.Model; model != nil { + if location := model.Location; location != nil { + state.Location = azure.NormalizeLocation(*location) + } -func resourceLogAnalyticsSolutionRead(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).LogAnalytics.SolutionsClient - ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) - defer cancel() - id, err := solution.ParseSolutionID(d.Id()) - if err != nil { - return err + // Reversing the mapping used to get .solution_name + // expecting resp.Name to be in format "SolutionName(WorkspaceName)". + if v := model.Name; v != nil { + val := pointer.From(v) + segments := strings.Split(val, "(") + if len(segments) != 2 { + return fmt.Errorf("expected %q to match 'Solution(WorkspaceName)'", val) + } + + solutionName := segments[0] + workspaceName := strings.TrimSuffix(segments[1], ")") + state.SolutionName = solutionName + state.WorkspaceName = workspaceName + } + + if props := model.Properties; props != nil { + var workspaceId string + if props.WorkspaceResourceId != "" { + id, err := workspaces.ParseWorkspaceIDInsensitively(props.WorkspaceResourceId) + if err != nil { + return err + } + workspaceId = id.ID() + } + state.WorkspaceResourceId = workspaceId + } + + if plan := model.Plan; plan != nil { + state.SolutionPlan = flattenAzureRmLogAnalyticsSolutionPlan(plan) + } + + state.Tags = pointer.From(model.Tags) + + } + + return metadata.Encode(&state) + }, } +} + +func (s LogAnalyticsSolutionResource) Delete() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.LogAnalytics.SolutionsClient + + id, err := solution.ParseSolutionID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + err = client.DeleteThenPoll(ctx, *id) + if err != nil { + return fmt.Errorf("deleting %s: %+v", *id, err) + } - resp, err := client.Get(ctx, *id) - if err != nil { - if response.WasNotFound(resp.HttpResponse) { - d.SetId("") return nil - } - return fmt.Errorf("making Read request on %s: %+v", *id, err) + }, } +} + +func (s LogAnalyticsSolutionResource) Update() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.LogAnalytics.SolutionsClient - if model := resp.Model; model != nil { - if model.Plan == nil { - return fmt.Errorf("making Read request on %s: Plan was nil", *id) - } - - d.Set("resource_group_name", id.ResourceGroupName) - if location := model.Location; location != nil { - d.Set("location", azure.NormalizeLocation(*location)) - } - - // Reversing the mapping used to get .solution_name - // expecting resp.Name to be in format "SolutionName(WorkspaceName)". - if v := model.Name; v != nil { - val := *v - segments := strings.Split(*v, "(") - if len(segments) != 2 { - return fmt.Errorf("expected %q to match 'Solution(WorkspaceName)'", val) + id, err := solution.ParseSolutionID(metadata.ResourceData.Id()) + if err != nil { + return err } - solutionName := segments[0] - workspaceName := strings.TrimSuffix(segments[1], ")") - d.Set("solution_name", solutionName) - d.Set("workspace_name", workspaceName) - } - - if props := model.Properties; props != nil { - var workspaceId string - if props.WorkspaceResourceId != "" { - id, err := workspaces.ParseWorkspaceIDInsensitively(props.WorkspaceResourceId) - if err != nil { - return err - } - workspaceId = id.ID() + var config SolutionResourceModel + if err := metadata.Decode(&config); err != nil { + return fmt.Errorf("decoding %v", err) } - d.Set("workspace_resource_id", workspaceId) - } - if err := d.Set("plan", flattenAzureRmLogAnalyticsSolutionPlan(model.Plan)); err != nil { - return fmt.Errorf("setting `plan`: %+v", err) - } + payload := solution.SolutionPatch{} - if err = tags.FlattenAndSet(d, flattenTags(model.Tags)); err != nil { - return err - } - } - return nil -} + if metadata.ResourceData.HasChange("tags") { + payload.Tags = pointer.To(config.Tags) + } -func resourceLogAnalyticsSolutionDelete(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).LogAnalytics.SolutionsClient - ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) - defer cancel() - id, err := solution.ParseSolutionID(d.Id()) - if err != nil { - return err - } + if err := client.UpdateThenPoll(ctx, *id, payload); err != nil { + return fmt.Errorf("updating %s: %+v", id, err) + } - err = client.DeleteThenPoll(ctx, *id) - if err != nil { - return fmt.Errorf("deleting %s: %+v", *id, err) + return nil + }, } - - return nil } -func expandAzureRmLogAnalyticsSolutionPlan(d *pluginsdk.ResourceData) solution.SolutionPlan { - plans := d.Get("plan").([]interface{}) - plan := plans[0].(map[string]interface{}) +func expandAzureRmLogAnalyticsSolutionPlan(plans []SolutionPlanModel) solution.SolutionPlan { + if len(plans) == 0 { + return solution.SolutionPlan{} + } - name := plan["name"].(string) - publisher := plan["publisher"].(string) - promotionCode := plan["promotion_code"].(string) - product := plan["product"].(string) + plan := plans[0] + name := plan.Name + publisher := plan.Publisher + promotionCode := plan.PromotionCode + product := plan.Product expandedPlan := solution.SolutionPlan{ Name: utils.String(name), @@ -264,29 +333,18 @@ func expandAzureRmLogAnalyticsSolutionPlan(d *pluginsdk.ResourceData) solution.S return expandedPlan } -func flattenAzureRmLogAnalyticsSolutionPlan(input *solution.SolutionPlan) []interface{} { - output := make([]interface{}, 0) +func flattenAzureRmLogAnalyticsSolutionPlan(input *solution.SolutionPlan) []SolutionPlanModel { + output := make([]SolutionPlanModel, 0) if input == nil { return output } - values := make(map[string]interface{}) - - if input.Name != nil { - values["name"] = *input.Name - } + plan := SolutionPlanModel{} - if input.Product != nil { - values["product"] = *input.Product - } - - if input.PromotionCode != nil { - values["promotion_code"] = *input.PromotionCode - } - - if input.Publisher != nil { - values["publisher"] = *input.Publisher - } + plan.Name = pointer.From(input.Name) + plan.Product = pointer.From(input.Product) + plan.PromotionCode = pointer.From(input.PromotionCode) + plan.Publisher = pointer.From(input.Publisher) - return append(output, values) + return append(output, plan) } diff --git a/internal/services/loganalytics/log_analytics_solution_resource_test.go b/internal/services/loganalytics/log_analytics_solution_resource_test.go index a9fc439229a2..d8b1cd4e16d1 100644 --- a/internal/services/loganalytics/log_analytics_solution_resource_test.go +++ b/internal/services/loganalytics/log_analytics_solution_resource_test.go @@ -33,6 +33,28 @@ func TestAccLogAnalyticsSolution_basicContainerMonitoring(t *testing.T) { }) } +func TestAccLogAnalyticsSolution_update(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_log_analytics_solution", "test") + r := LogAnalyticsSolutionResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.containerMonitoring(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.update(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func TestAccLogAnalyticsSolution_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_log_analytics_solution", "test") r := LogAnalyticsSolutionResource{} @@ -117,6 +139,43 @@ resource "azurerm_log_analytics_solution" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } +func (LogAnalyticsSolutionResource) update(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_log_analytics_workspace" "test" { + name = "acctestLAW-%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + sku = "PerGB2018" +} + +resource "azurerm_log_analytics_solution" "test" { + solution_name = "ContainerInsights" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + workspace_resource_id = azurerm_log_analytics_workspace.test.id + workspace_name = azurerm_log_analytics_workspace.test.name + + plan { + publisher = "Microsoft" + product = "OMSGallery/ContainerInsights" + } + + tags = { + Environment = "Test2" + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +} + func (r LogAnalyticsSolutionResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s diff --git a/internal/services/loganalytics/registration.go b/internal/services/loganalytics/registration.go index 7e9f2c54840c..dcbd895f49bb 100644 --- a/internal/services/loganalytics/registration.go +++ b/internal/services/loganalytics/registration.go @@ -27,6 +27,7 @@ func (r Registration) Resources() []sdk.Resource { return []sdk.Resource{ LogAnalyticsQueryPackResource{}, LogAnalyticsQueryPackQueryResource{}, + LogAnalyticsSolutionResource{}, } } @@ -60,7 +61,6 @@ func (r Registration) SupportedResources() map[string]*pluginsdk.Resource { "azurerm_log_analytics_linked_service": resourceLogAnalyticsLinkedService(), "azurerm_log_analytics_linked_storage_account": resourceLogAnalyticsLinkedStorageAccount(), "azurerm_log_analytics_saved_search": resourceLogAnalyticsSavedSearch(), - "azurerm_log_analytics_solution": resourceLogAnalyticsSolution(), "azurerm_log_analytics_storage_insights": resourceLogAnalyticsStorageInsights(), "azurerm_log_analytics_workspace": resourceLogAnalyticsWorkspace(), } From 62d02595ef847124b5588d1af3939d3189e2aa54 Mon Sep 17 00:00:00 2001 From: magodo Date: Thu, 21 Sep 2023 16:28:00 +0800 Subject: [PATCH 258/336] `azurerm_container_group` - Supports CMK with user assigned identity (#23332) * `azurerm_container_group` - Supports CMK with user assigned identity * Renaming & minor clean up --- .../containers/container_group_resource.go | 11 ++ .../container_group_resource_test.go | 121 ++++++++++++++++++ website/docs/r/container_group.html.markdown | 2 + 3 files changed, 134 insertions(+) diff --git a/internal/services/containers/container_group_resource.go b/internal/services/containers/container_group_resource.go index d3b2fcb8aed9..ca0cfcbae8cf 100644 --- a/internal/services/containers/container_group_resource.go +++ b/internal/services/containers/container_group_resource.go @@ -553,6 +553,12 @@ func resourceContainerGroup() *pluginsdk.Resource { ForceNew: true, ValidateFunc: keyVaultValidate.NestedItemId, }, + + "key_vault_user_assigned_identity_id": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: commonids.ValidateUserAssignedIdentityID, + }, }, } } @@ -777,6 +783,10 @@ func resourceContainerGroupCreate(d *pluginsdk.ResourceData, meta interface{}) e KeyName: keyId.Name, KeyVersion: keyId.Version, } + + if keyVaultUAI := d.Get("key_vault_user_assigned_identity_id").(string); keyVaultUAI != "" { + containerGroup.Properties.EncryptionProperties.Identity = &keyVaultUAI + } } // Avoid parallel provisioning if "subnet_ids" are given. @@ -942,6 +952,7 @@ func resourceContainerGroupRead(d *pluginsdk.ResourceData, meta interface{}) err return err } d.Set("key_vault_key_id", keyId.ID()) + d.Set("key_vault_user_assigned_identity_id", pointer.From(kvProps.Identity)) } } diff --git a/internal/services/containers/container_group_resource_test.go b/internal/services/containers/container_group_resource_test.go index 671a180f4fda..1cdc1790fe56 100644 --- a/internal/services/containers/container_group_resource_test.go +++ b/internal/services/containers/container_group_resource_test.go @@ -695,6 +695,21 @@ func TestAccContainerGroup_encryption(t *testing.T) { }) } +func TestAccContainerGroup_encryptionWithUserAssignedIdentity(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_container_group", "test") + r := ContainerGroupResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.encryptionWithUserAssignedIdentity(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func TestAccContainerGroup_securityContext(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_container_group", "test") r := ContainerGroupResource{} @@ -2489,6 +2504,112 @@ resource "azurerm_container_group" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } +func (ContainerGroupResource) encryptionWithUserAssignedIdentity(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[1]d" + location = "%[2]s" +} + +data "azurerm_client_config" "current" {} + +resource "azurerm_key_vault" "test" { + name = "acc-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + tenant_id = data.azurerm_client_config.current.tenant_id + sku_name = "standard" +} + +resource "azurerm_key_vault_access_policy" "terraform" { + key_vault_id = azurerm_key_vault.test.id + key_permissions = [ + "Create", + "Delete", + "Get", + "List", + "Purge", + "Update", + "GetRotationPolicy", + ] + + secret_permissions = [ + "Get", + "Delete", + "Set", + ] + tenant_id = data.azurerm_client_config.current.tenant_id + object_id = data.azurerm_client_config.current.object_id +} + +resource "azurerm_key_vault_key" "test" { + name = "key-%[1]d" + key_vault_id = azurerm_key_vault.test.id + key_type = "RSA" + key_size = 2048 + + key_opts = [ + "decrypt", + "encrypt", + "sign", + "unwrapKey", + "verify", + "wrapKey", + ] + depends_on = [azurerm_key_vault_access_policy.terraform] +} + +resource "azurerm_user_assigned_identity" "test" { + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + name = "uai-%[1]d" +} + +resource "azurerm_key_vault_access_policy" "test" { + key_vault_id = azurerm_key_vault.test.id + key_permissions = [ + "Get", + "UnwrapKey", + "WrapKey", + "GetRotationPolicy", + ] + tenant_id = azurerm_user_assigned_identity.test.tenant_id + object_id = azurerm_user_assigned_identity.test.principal_id + depends_on = [azurerm_key_vault_access_policy.terraform] +} + +resource "azurerm_container_group" "test" { + name = "acctestcontainergroup-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + ip_address_type = "Public" + os_type = "Linux" + + container { + name = "hw" + image = "ubuntu:20.04" + cpu = "0.5" + memory = "0.5" + ports { + port = 80 + protocol = "TCP" + } + } + key_vault_key_id = azurerm_key_vault_key.test.id + key_vault_user_assigned_identity_id = azurerm_user_assigned_identity.test.id + identity { + type = "UserAssigned" + identity_ids = [azurerm_user_assigned_identity.test.id] + } + depends_on = [azurerm_key_vault_access_policy.test] +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +} + func (ContainerGroupResource) securityContextPriviledged(data acceptance.TestData, v bool) string { return fmt.Sprintf(` provider "azurerm" { diff --git a/website/docs/r/container_group.html.markdown b/website/docs/r/container_group.html.markdown index db1d29cc7841..6ef1889f9c30 100644 --- a/website/docs/r/container_group.html.markdown +++ b/website/docs/r/container_group.html.markdown @@ -99,6 +99,8 @@ The following arguments are supported: * `key_vault_key_id` - (Optional) The Key Vault key URI for CMK encryption. Changing this forces a new resource to be created. +* `key_vault_user_assigned_identity_id` - (Optional) The user assigned identity that has access to the Key Vault Key. If not specified, the RP principal named "Azure Container Instance Service" will be used instead. Make sure the identity has the proper `key_permissions` set, at least with `Get`, `UnwrapKey`, `WrapKey` and `GetRotationPolicy`. + * `subnet_ids` - (Optional) The subnet resource IDs for a container group. Changing this forces a new resource to be created. * `image_registry_credential` - (Optional) An `image_registry_credential` block as documented below. Changing this forces a new resource to be created. From 7acc16e6ebdb4ed7cde0ed50e400481521cff2ae Mon Sep 17 00:00:00 2001 From: Heng Lu <79895375+ms-henglu@users.noreply.github.com> Date: Thu, 21 Sep 2023 17:49:16 +0800 Subject: [PATCH 259/336] `azurerm_data_factory` - support for the `publish_enabled` property (#23344) * `azurerm_data_factory` - support for the `publish_enabled` property * rename to `publishing_enabled` --- .../datafactory/data_factory_resource.go | 44 ++++++++++++++----- .../datafactory/data_factory_resource_test.go | 35 ++++++++------- website/docs/r/data_factory.html.markdown | 4 ++ 3 files changed, 56 insertions(+), 27 deletions(-) diff --git a/internal/services/datafactory/data_factory_resource.go b/internal/services/datafactory/data_factory_resource.go index cfa105d25509..26d654f440c2 100644 --- a/internal/services/datafactory/data_factory_resource.go +++ b/internal/services/datafactory/data_factory_resource.go @@ -102,6 +102,11 @@ func resourceDataFactory() *pluginsdk.Resource { Required: true, ValidateFunc: validation.StringIsNotEmpty, }, + "publishing_enabled": { + Type: pluginsdk.TypeBool, + Default: true, + Optional: true, + }, }, }, }, @@ -143,6 +148,11 @@ func resourceDataFactory() *pluginsdk.Resource { Required: true, ValidateFunc: validation.IsUUID, }, + "publishing_enabled": { + Type: pluginsdk.TypeBool, + Default: true, + Optional: true, + }, }, }, }, @@ -531,6 +541,7 @@ func expandGitHubRepoConfiguration(input []interface{}) *factories.FactoryGitHub return &factories.FactoryGitHubConfiguration{ AccountName: item["account_name"].(string), CollaborationBranch: item["branch_name"].(string), + DisablePublish: pointer.To(!item["publishing_enabled"].(bool)), HostName: pointer.To(item["git_url"].(string)), RepositoryName: item["repository_name"].(string), RootFolder: item["root_folder"].(string), @@ -545,12 +556,17 @@ func flattenGitHubRepoConfiguration(input factories.FactoryRepoConfiguration) [] if v.HostName != nil { gitUrl = *v.HostName } + publishingEnabled := true + if v.DisablePublish != nil { + publishingEnabled = !*v.DisablePublish + } output = append(output, map[string]interface{}{ - "account_name": v.AccountName, - "branch_name": v.CollaborationBranch, - "git_url": gitUrl, - "repository_name": v.RepositoryName, - "root_folder": v.RootFolder, + "account_name": v.AccountName, + "branch_name": v.CollaborationBranch, + "git_url": gitUrl, + "publishing_enabled": publishingEnabled, + "repository_name": v.RepositoryName, + "root_folder": v.RootFolder, }) } @@ -566,6 +582,7 @@ func expandVSTSRepoConfiguration(input []interface{}) *factories.FactoryVSTSConf return &factories.FactoryVSTSConfiguration{ AccountName: item["account_name"].(string), CollaborationBranch: item["branch_name"].(string), + DisablePublish: pointer.To(!item["publishing_enabled"].(bool)), ProjectName: item["project_name"].(string), RepositoryName: item["repository_name"].(string), RootFolder: item["root_folder"].(string), @@ -581,13 +598,18 @@ func flattenVSTSRepoConfiguration(input factories.FactoryRepoConfiguration) []in if v.TenantId != nil { tenantId = *v.TenantId } + publishingEnabled := true + if v.DisablePublish != nil { + publishingEnabled = !*v.DisablePublish + } output = append(output, map[string]interface{}{ - "account_name": v.AccountName, - "branch_name": v.CollaborationBranch, - "project_name": v.ProjectName, - "repository_name": v.RepositoryName, - "root_folder": v.RootFolder, - "tenant_id": tenantId, + "account_name": v.AccountName, + "branch_name": v.CollaborationBranch, + "project_name": v.ProjectName, + "publishing_enabled": publishingEnabled, + "repository_name": v.RepositoryName, + "root_folder": v.RootFolder, + "tenant_id": tenantId, }) } diff --git a/internal/services/datafactory/data_factory_resource_test.go b/internal/services/datafactory/data_factory_resource_test.go index abe3f1bda2d6..b4a357f92281 100644 --- a/internal/services/datafactory/data_factory_resource_test.go +++ b/internal/services/datafactory/data_factory_resource_test.go @@ -408,12 +408,13 @@ resource "azurerm_data_factory" "test" { purview_id = azurerm_purview_account.test.id vsts_configuration { - account_name = "test account name" - branch_name = "test branch name" - project_name = "test project name" - repository_name = "test repository name" - root_folder = "/" - tenant_id = "00000000-0000-0000-0000-000000000000" + account_name = "test account name" + branch_name = "test branch name" + project_name = "test project name" + repository_name = "test repository name" + root_folder = "/" + tenant_id = "00000000-0000-0000-0000-000000000000" + publishing_enabled = false } tags = { @@ -487,11 +488,12 @@ resource "azurerm_data_factory" "test" { resource_group_name = azurerm_resource_group.test.name github_configuration { - git_url = "https://github.com/hashicorp/" - repository_name = "terraform-provider-azurerm" - branch_name = "main" - root_folder = "/" - account_name = "acctestGH-%d" + git_url = "https://github.com/hashicorp/" + repository_name = "terraform-provider-azurerm" + branch_name = "main" + root_folder = "/" + account_name = "acctestGH-%d" + publishing_enabled = false } } `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger) @@ -514,11 +516,12 @@ resource "azurerm_data_factory" "test" { resource_group_name = azurerm_resource_group.test.name github_configuration { - git_url = "https://github.com/hashicorp/" - repository_name = "terraform-provider-azuread" - branch_name = "stable-website" - root_folder = "/azuread" - account_name = "acctestGitHub-%d" + git_url = "https://github.com/hashicorp/" + repository_name = "terraform-provider-azuread" + branch_name = "stable-website" + root_folder = "/azuread" + account_name = "acctestGitHub-%d" + publishing_enabled = true } } `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger) diff --git a/website/docs/r/data_factory.html.markdown b/website/docs/r/data_factory.html.markdown index 4525afe0c7f8..c06204c23d52 100644 --- a/website/docs/r/data_factory.html.markdown +++ b/website/docs/r/data_factory.html.markdown @@ -69,6 +69,8 @@ A `github_configuration` block supports the following: * `root_folder` - (Required) Specifies the root folder within the repository. Set to `/` for the top level. +* `publishing_enabled` - (Optional) Is automated publishing enabled? Defaults to `false`. + -> **Note:** You must log in to the Data Factory management UI to complete the authentication to the GitHub repository. --- @@ -109,6 +111,8 @@ A `vsts_configuration` block supports the following: * `tenant_id` - (Required) Specifies the Tenant ID associated with the VSTS account. +* `publishing_enabled` - (Optional) Is automated publishing enabled? Defaults to `false`. + ## Attributes Reference In addition to the Arguments listed above - the following Attributes are exported: From 5b5927c573d07456662a9edab56d1d31070d0ed6 Mon Sep 17 00:00:00 2001 From: AnthonyStainer Date: Thu, 21 Sep 2023 11:59:37 +0100 Subject: [PATCH 260/336] `azurerm_container_app` - Correct commands issue with multiple containers (#23338) Co-authored-by: jackofallops <11830746+jackofallops@users.noreply.github.com> Co-authored-by: Anthony Stainer --- .../container_app_resource_test.go | 158 ++++++++++++++++++ .../containerapps/helpers/container_apps.go | 4 +- 2 files changed, 160 insertions(+), 2 deletions(-) diff --git a/internal/services/containerapps/container_app_resource_test.go b/internal/services/containerapps/container_app_resource_test.go index e4a1e48a5266..a43b5544617c 100644 --- a/internal/services/containerapps/container_app_resource_test.go +++ b/internal/services/containerapps/container_app_resource_test.go @@ -221,6 +221,27 @@ func TestAccContainerAppResource_completeWithSidecar(t *testing.T) { }) } +func TestAccContainerAppResource_completeWithMultipleContainers(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_container_app", "test") + r := ContainerAppResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.completeWithMultipleContainers(data, "rev1"), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("template.0.container.0.command.0").HasValue("sh"), + check.That(data.ResourceName).Key("template.0.container.0.command.1").HasValue("-c"), + check.That(data.ResourceName).Key("template.0.container.0.command.2").HasValue("CONTAINER=one python3 -m flask run --host=0.0.0.0"), + check.That(data.ResourceName).Key("template.0.container.1.command.0").HasValue("sh"), + check.That(data.ResourceName).Key("template.0.container.1.command.1").HasValue("-c"), + check.That(data.ResourceName).Key("template.0.container.1.command.2").HasValue("CONTAINER=two python3 -m flask run --host=0.0.0.0"), + ), + }, + data.ImportStep(), + }) +} + func TestAccContainerAppResource_completeUpdate(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_container_app", "test") r := ContainerAppResource{} @@ -1059,6 +1080,143 @@ resource "azurerm_container_app" "test" { `, r.templatePlusExtras(data), data.RandomInteger, revisionSuffix) } +func (r ContainerAppResource) completeWithMultipleContainers(data acceptance.TestData, revisionSuffix string) string { + return fmt.Sprintf(` +%s + +resource "azurerm_container_app" "test" { + name = "acctest-capp-%[2]d" + resource_group_name = azurerm_resource_group.test.name + container_app_environment_id = azurerm_container_app_environment.test.id + revision_mode = "Single" + + template { + container { + name = "acctest-cont1-%[2]d" + image = "jackofallops/azure-containerapps-python-acctest:v0.0.1" + cpu = 0.25 + memory = "0.5Gi" + command = ["sh", "-c", "CONTAINER=one python3 -m flask run --host=0.0.0.0"] + + readiness_probe { + transport = "HTTP" + port = 5000 + } + + liveness_probe { + transport = "HTTP" + port = 5000 + path = "/health" + + header { + name = "Cache-Control" + value = "no-cache" + } + + initial_delay = 5 + interval_seconds = 20 + timeout = 2 + failure_count_threshold = 1 + } + + startup_probe { + transport = "TCP" + port = 5000 + } + + volume_mounts { + name = azurerm_container_app_environment_storage.test.name + path = "/tmp/testdata" + } + } + + container { + name = "acctest-cont2-%[2]d" + image = "jackofallops/azure-containerapps-python-acctest:v0.0.1" + cpu = 0.25 + memory = "0.5Gi" + command = ["sh", "-c", "CONTAINER=two python3 -m flask run --host=0.0.0.0"] + + readiness_probe { + transport = "HTTP" + port = 5000 + } + + liveness_probe { + transport = "HTTP" + port = 5000 + path = "/health" + + header { + name = "Cache-Control" + value = "no-cache" + } + + initial_delay = 5 + interval_seconds = 20 + timeout = 2 + failure_count_threshold = 1 + } + + startup_probe { + transport = "TCP" + port = 5000 + } + + volume_mounts { + name = azurerm_container_app_environment_storage.test.name + path = "/tmp/testdata" + } + } + + volume { + name = azurerm_container_app_environment_storage.test.name + storage_type = "AzureFile" + storage_name = azurerm_container_app_environment_storage.test.name + } + + min_replicas = 2 + max_replicas = 3 + + revision_suffix = "%[3]s" + } + + ingress { + allow_insecure_connections = true + external_enabled = true + target_port = 5000 + transport = "http" + traffic_weight { + latest_revision = true + percentage = 100 + } + } + + registry { + server = azurerm_container_registry.test.login_server + username = azurerm_container_registry.test.admin_username + password_secret_name = "registry-password" + } + + secret { + name = "registry-password" + value = azurerm_container_registry.test.admin_password + } + + dapr { + app_id = "acctest-cont-%[2]d" + app_port = 5000 + app_protocol = "http" + } + + tags = { + foo = "Bar" + accTest = "1" + } +} +`, r.templatePlusExtras(data), data.RandomInteger, revisionSuffix) +} + func (r ContainerAppResource) completeChangedSecret(data acceptance.TestData, revisionSuffix string) string { return fmt.Sprintf(` %s diff --git a/internal/services/containerapps/helpers/container_apps.go b/internal/services/containerapps/helpers/container_apps.go index 8584503f08ff..61ee769355a1 100644 --- a/internal/services/containerapps/helpers/container_apps.go +++ b/internal/services/containerapps/helpers/container_apps.go @@ -1011,10 +1011,10 @@ func expandContainerAppContainers(input []Container) *[]containerapps.Container VolumeMounts: expandContainerVolumeMounts(v.VolumeMounts), } if len(v.Args) != 0 { - container.Args = &v.Args + container.Args = pointer.To(v.Args) } if len(v.Command) != 0 { - container.Command = &v.Command + container.Command = pointer.To(v.Command) } result = append(result, container) From 1e3e2bbea5cff0a5cd3cc7c11d98d41dd4a97b71 Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Thu, 21 Sep 2023 12:01:50 +0100 Subject: [PATCH 261/336] Update CHANGELOG.md for #23338 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4b6f43f853f..27a35232a3fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ BUG FIXES: * `azurerm_api_management_api` - set the `service_url` property when importing the resource [GH-23011] * `azurerm_app_configuration` - prevent crash by nil checking the encryption configuration [GH-23302] * `azurerm_app_configuration_feature` - update `percentage_filter_value` to accept correct type of float [GH-23263] +* `azurerm_container_app` - Fix issue with `commands` and `args` being overwritten when using multiple containers [GH-23338] * `azurerm_key_vault_key` - ForceNew when `expiration_date` is removed from the config file [GH-23327] * `azurerm_linux_function_app` - fix a bug in setting the storage settings when using Elastic Premium plans [GH-21212] * `azurerm_linux_web_app` - fix docker app stack update [GH-23303] From 766cb637216cf4a168fd43f250f8dd8acf88ead3 Mon Sep 17 00:00:00 2001 From: Tao <104055472+teowa@users.noreply.github.com> Date: Thu, 21 Sep 2023 19:08:56 +0800 Subject: [PATCH 262/336] `azurerm_monitor_diagnostic_setting` - exactly one of `category` or `category_group` must be specified in `enabled_log` and `log` block (#23308) * add category category_group validation for non-empty string * add Exactly one of category or category_group must be specified * fix lint: change if-else to switch --- .../monitor_diagnostic_setting_resource.go | 72 +++++++++++++------ .../monitor_diagnostic_setting.html.markdown | 6 +- 2 files changed, 55 insertions(+), 23 deletions(-) diff --git a/internal/services/monitor/monitor_diagnostic_setting_resource.go b/internal/services/monitor/monitor_diagnostic_setting_resource.go index 338ebcfe66d5..151d3674b592 100644 --- a/internal/services/monitor/monitor_diagnostic_setting_resource.go +++ b/internal/services/monitor/monitor_diagnostic_setting_resource.go @@ -116,13 +116,15 @@ func resourceMonitorDiagnosticSetting() *pluginsdk.Resource { Elem: &pluginsdk.Resource{ Schema: map[string]*pluginsdk.Schema{ "category": { - Type: pluginsdk.TypeString, - Optional: true, + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, }, "category_group": { - Type: pluginsdk.TypeString, - Optional: true, + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, }, "retention_policy": { @@ -157,8 +159,9 @@ func resourceMonitorDiagnosticSetting() *pluginsdk.Resource { Elem: &pluginsdk.Resource{ Schema: map[string]*pluginsdk.Schema{ "category": { - Type: pluginsdk.TypeString, - Required: true, + Type: pluginsdk.TypeString, + Required: true, + ValidateFunc: validation.StringIsNotEmpty, }, "enabled": { @@ -203,13 +206,15 @@ func resourceMonitorDiagnosticSetting() *pluginsdk.Resource { Elem: &pluginsdk.Resource{ Schema: map[string]*pluginsdk.Schema{ "category": { - Type: pluginsdk.TypeString, - Optional: true, + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, }, "category_group": { - Type: pluginsdk.TypeString, - Optional: true, + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, }, "enabled": { @@ -279,7 +284,11 @@ func resourceMonitorDiagnosticSettingCreate(d *pluginsdk.ResourceData, meta inte if !features.FourPointOhBeta() { logsRaw, ok := d.GetOk("log") if ok && len(logsRaw.(*pluginsdk.Set).List()) > 0 { - logs = expandMonitorDiagnosticsSettingsLogs(logsRaw.(*pluginsdk.Set).List()) + expendLogs, err := expandMonitorDiagnosticsSettingsLogs(logsRaw.(*pluginsdk.Set).List()) + if err != nil { + return fmt.Errorf("expanding log: %+v", err) + } + logs = *expendLogs for _, v := range logs { if v.Enabled { hasEnabledLogs = true @@ -292,7 +301,11 @@ func resourceMonitorDiagnosticSettingCreate(d *pluginsdk.ResourceData, meta inte if enabledLogs, ok := d.GetOk("enabled_log"); ok { enabledLogsList := enabledLogs.(*pluginsdk.Set).List() if len(enabledLogsList) > 0 { - logs = expandMonitorDiagnosticsSettingsEnabledLogs(enabledLogsList) + expandEnabledLogs, err := expandMonitorDiagnosticsSettingsEnabledLogs(enabledLogsList) + if err != nil { + return fmt.Errorf("expanding enabled_log: %+v", err) + } + logs = *expandEnabledLogs hasEnabledLogs = true } } @@ -383,7 +396,11 @@ func resourceMonitorDiagnosticSettingUpdate(d *pluginsdk.ResourceData, meta inte if d.HasChange("log") { logChanged = true logsRaw := d.Get("log").(*pluginsdk.Set).List() - logs = expandMonitorDiagnosticsSettingsLogs(logsRaw) + expandLogs, err := expandMonitorDiagnosticsSettingsLogs(logsRaw) + if err != nil { + return fmt.Errorf("expanding log: %+v", err) + } + logs = *expandLogs for _, v := range logs { if v.Enabled { hasEnabledLogs = true @@ -396,7 +413,11 @@ func resourceMonitorDiagnosticSettingUpdate(d *pluginsdk.ResourceData, meta inte if d.HasChange("enabled_log") { enabledLogs := d.Get("enabled_log").(*pluginsdk.Set).List() if len(enabledLogs) > 0 { - logs = expandMonitorDiagnosticsSettingsEnabledLogs(enabledLogs) + expandEnabledLogs, err := expandMonitorDiagnosticsSettingsEnabledLogs(enabledLogs) + if err != nil { + return fmt.Errorf("expanding enabled_log: %+v", err) + } + logs = *expandEnabledLogs hasEnabledLogs = true } } else if !logChanged && existing.Model != nil && existing.Model.Properties != nil && existing.Model.Properties.Logs != nil { @@ -607,7 +628,7 @@ func monitorDiagnosticSettingDeletedRefreshFunc(ctx context.Context, client *dia } } -func expandMonitorDiagnosticsSettingsLogs(input []interface{}) []diagnosticsettings.LogSettings { +func expandMonitorDiagnosticsSettingsLogs(input []interface{}) (*[]diagnosticsettings.LogSettings, error) { results := make([]diagnosticsettings.LogSettings, 0) for _, raw := range input { @@ -632,19 +653,22 @@ func expandMonitorDiagnosticsSettingsLogs(input []interface{}) []diagnosticsetti Enabled: enabled, RetentionPolicy: retentionPolicy, } - if category != "" { + switch { + case category != "": output.Category = utils.String(category) - } else { + case categoryGroup != "": output.CategoryGroup = utils.String(categoryGroup) + default: + return nil, fmt.Errorf("exactly one of `category` or `category_group` must be specified") } results = append(results, output) } - return results + return &results, nil } -func expandMonitorDiagnosticsSettingsEnabledLogs(input []interface{}) []diagnosticsettings.LogSettings { +func expandMonitorDiagnosticsSettingsEnabledLogs(input []interface{}) (*[]diagnosticsettings.LogSettings, error) { results := make([]diagnosticsettings.LogSettings, 0) for _, raw := range input { @@ -668,16 +692,20 @@ func expandMonitorDiagnosticsSettingsEnabledLogs(input []interface{}) []diagnost Enabled: true, RetentionPolicy: retentionPolicy, } - if category != "" { + + switch { + case category != "": output.Category = utils.String(category) - } else { + case categoryGroup != "": output.CategoryGroup = utils.String(categoryGroup) + default: + return nil, fmt.Errorf("exactly one of `category` or `category_group` must be specified") } results = append(results, output) } - return results + return &results, nil } func flattenMonitorDiagnosticLogs(input *[]diagnosticsettings.LogSettings) []interface{} { diff --git a/website/docs/r/monitor_diagnostic_setting.html.markdown b/website/docs/r/monitor_diagnostic_setting.html.markdown index d3389703a611..03f2f27deb01 100644 --- a/website/docs/r/monitor_diagnostic_setting.html.markdown +++ b/website/docs/r/monitor_diagnostic_setting.html.markdown @@ -122,6 +122,8 @@ A `log` block supports the following: -> **NOTE:** Not all resources have category groups available. +-> **NOTE:** Exactly one of `category` or `category_group` must be specified. + * `retention_policy` - (Optional) A `retention_policy` block as defined below. !> **NOTE:** `retention_policy` has been deprecated in favor of `azurerm_storage_management_policy` resource - to learn more information on the deprecation [in the Azure documentation](https://aka.ms/diagnostic_settings_log_retention). @@ -138,7 +140,9 @@ An `enabled_log` block supports the following: * `category_group` - (Optional) The name of a Diagnostic Log Category Group for this Resource. --> **NOTE:** Not all resources have category groups available.**** +-> **NOTE:** Not all resources have category groups available. + +-> **NOTE:** Exactly one of `category` or `category_group` must be specified. * `retention_policy` - (Optional) A `retention_policy` block as defined below. From 38e711c5591242f87e2f25894aa38775c98c1df5 Mon Sep 17 00:00:00 2001 From: Sewci0 Date: Thu, 21 Sep 2023 12:13:34 +0100 Subject: [PATCH 263/336] `azurerm_storage_account_customer_managed_key` - support for cross-tenant customer-managed keys (#20356) * Implement federated_identity_client_id && key_vault_uri within SA CMK resource * Fix required with * Add acceptance tests * Fix docs * Fix tests * Ensure right permission * Format code * Fix linting * Update website/docs/r/storage_account_customer_managed_key.html.markdown Co-authored-by: Tom Bamford * azurerm_storage_account_customer_managed_key: fix up test config (second set of creds not needed) * TeamCity configuration for secondary Azure tenant and subscription --------- Co-authored-by: Tom Bamford --- .teamcity/components/build_azure.kt | 14 +- .teamcity/settings.kts | 5 +- .teamcity/tests/helpers.kt | 2 +- internal/acceptance/testcase.go | 2 +- ...e_account_customer_managed_key_resource.go | 98 +++++++--- ...ount_customer_managed_key_resource_test.go | 167 ++++++++++++++++++ ...account_customer_managed_key.html.markdown | 11 +- 7 files changed, 261 insertions(+), 38 deletions(-) diff --git a/.teamcity/components/build_azure.kt b/.teamcity/components/build_azure.kt index d1e70485b1a9..6722c3d1e630 100644 --- a/.teamcity/components/build_azure.kt +++ b/.teamcity/components/build_azure.kt @@ -8,6 +8,9 @@ class ClientConfiguration(var clientId: String, val clientSecretAlt: String, val subscriptionIdAlt : String, val subscriptionIdDevTest : String, + val tenantIdAlt : String, + val subscriptionIdAltTenant : String, + val principalIdAltTenant : String, val vcsRootId : String, val enableTestTriggersGlobally : Boolean) { } @@ -16,10 +19,10 @@ class LocationConfiguration(var primary : String, var secondary : String, var te } fun ParametrizedWithType.ConfigureAzureSpecificTestParameters(environment: String, config: ClientConfiguration, locationsForEnv: LocationConfiguration, useAltSubscription: Boolean = false, useDevTestSubscription: Boolean = false) { - hiddenPasswordVariable("env.ARM_CLIENT_ID", config.clientId, "The ID of the Service Principal used for Testing") - hiddenPasswordVariable("env.ARM_CLIENT_ID_ALT", config.clientIdAlt, "The ID of the Alternate Service Principal used for Testing") - hiddenPasswordVariable("env.ARM_CLIENT_SECRET", config.clientSecret, "The Client Secret of the Service Principal used for Testing") - hiddenPasswordVariable("env.ARM_CLIENT_SECRET_ALT", config.clientSecretAlt, "The Client Secret of the Alternate Service Principal used for Testing") + hiddenPasswordVariable("env.ARM_CLIENT_ID", config.clientId, "The Client ID of the Application used for Testing") + hiddenPasswordVariable("env.ARM_CLIENT_ID_ALT", config.clientIdAlt, "The Client ID of the Alternate Application used for Testing") + hiddenPasswordVariable("env.ARM_CLIENT_SECRET", config.clientSecret, "The Client Secret of the Application used for Testing") + hiddenPasswordVariable("env.ARM_CLIENT_SECRET_ALT", config.clientSecretAlt, "The Client Secret of the Alternate Application used for Testing") hiddenVariable("env.ARM_ENVIRONMENT", environment, "The Azure Environment in which the tests are running") hiddenVariable("env.ARM_PROVIDER_DYNAMIC_TEST", "%b".format(locationsForEnv.rotate), "Should tests rotate between the supported regions?") if (useAltSubscription) { @@ -33,6 +36,9 @@ fun ParametrizedWithType.ConfigureAzureSpecificTestParameters(environment: Strin hiddenPasswordVariable("env.ARM_SUBSCRIPTION_ID_ALT", config.subscriptionIdAlt, "The ID of the Alternate Azure Subscription used for Testing") } hiddenPasswordVariable("env.ARM_TENANT_ID", config.tenantId, "The ID of the Azure Tenant used for Testing") + hiddenPasswordVariable("env.ARM_TENANT_ID_ALT", config.tenantIdAlt, "The ID of the Secondary Azure Tenant used for Testing") + hiddenPasswordVariable("env.ARM_SUBSCRIPTION_ID_ALT_TENANT", config.subscriptionIdAltTenant, "The ID of the Azure Subscription attached to the Secondary Azure Tenant used for Testing") + hiddenPasswordVariable("env.ARM_PRINCIPAL_ID_ALT_TENANT", config.principalIdAltTenant, "The Object ID of the Service Principal in the Secondary Azure Tenant representing the Application used for Testing") hiddenVariable("env.ARM_TEST_LOCATION", locationsForEnv.primary, "The Primary region which should be used for testing") hiddenVariable("env.ARM_TEST_LOCATION_ALT", locationsForEnv.secondary, "The Secondary region which should be used for testing") hiddenVariable("env.ARM_TEST_LOCATION_ALT2", locationsForEnv.tertiary, "The Tertiary region which should be used for testing") diff --git a/.teamcity/settings.kts b/.teamcity/settings.kts index 444d1cf3be3d..a98686f58b27 100644 --- a/.teamcity/settings.kts +++ b/.teamcity/settings.kts @@ -11,9 +11,12 @@ var tenantId = DslContext.getParameter("tenantId", "") var environment = DslContext.getParameter("environment", "public") var clientIdAlt = DslContext.getParameter("clientIdAlt", "") var clientSecretAlt = DslContext.getParameter("clientSecretAlt", "") +var tenantIdAlt = DslContext.getParameter("tenantIdAlt", "") +var subscriptionIdAltTenant = DslContext.getParameter("subscriptionIdAltTenant", "") +var principalIdAltTenant = DslContext.getParameter("principalIdAltTenant", "") var vcsRootId = DslContext.getParameter("vcsRootId", "TF_HashiCorp_AzureRM_Repository") var enableTestTriggersGlobally = DslContext.getParameter("enableTestTriggersGlobally", "true").equals("true", ignoreCase = true) -var clientConfig = ClientConfiguration(clientId, clientSecret, subscriptionId, tenantId, clientIdAlt, clientSecretAlt, subscriptionIdAlt, subscriptionIdDevTest, vcsRootId, enableTestTriggersGlobally) +var clientConfig = ClientConfiguration(clientId, clientSecret, subscriptionId, tenantId, clientIdAlt, clientSecretAlt, subscriptionIdAlt, subscriptionIdDevTest, tenantIdAlt, subscriptionIdAltTenant, principalIdAltTenant, vcsRootId, enableTestTriggersGlobally) project(AzureRM(environment, clientConfig)) diff --git a/.teamcity/tests/helpers.kt b/.teamcity/tests/helpers.kt index 651944528435..bd8bdc0816ca 100644 --- a/.teamcity/tests/helpers.kt +++ b/.teamcity/tests/helpers.kt @@ -8,5 +8,5 @@ package tests import ClientConfiguration fun TestConfiguration() : ClientConfiguration { - return ClientConfiguration("clientId", "clientSecret", "subscriptionId", "tenantId", "clientIdAlt", "clientSecretAlt", "subscriptionIdAlt", "subscriptionIdDevTest", "vcsRootId", true) + return ClientConfiguration("clientId", "clientSecret", "subscriptionId", "tenantId", "clientIdAlt", "clientSecretAlt", "subscriptionIdAlt", "subscriptionIdDevTest", "tenantIdAlt", "subscriptionIdAltTenant", "principalIdAltTenant", "vcsRootId", true) } \ No newline at end of file diff --git a/internal/acceptance/testcase.go b/internal/acceptance/testcase.go index 7df339547d84..2425d7ea3cc1 100644 --- a/internal/acceptance/testcase.go +++ b/internal/acceptance/testcase.go @@ -136,7 +136,7 @@ func (td TestData) providers() map[string]func() (*schema.Provider, error) { func (td TestData) externalProviders() map[string]resource.ExternalProvider { return map[string]resource.ExternalProvider{ "azuread": { - VersionConstraint: "=2.8.0", + VersionConstraint: "=2.38.0", Source: "registry.terraform.io/hashicorp/azuread", }, "time": { diff --git a/internal/services/storage/storage_account_customer_managed_key_resource.go b/internal/services/storage/storage_account_customer_managed_key_resource.go index 8567501c251a..ced9489d0d1d 100644 --- a/internal/services/storage/storage_account_customer_managed_key_resource.go +++ b/internal/services/storage/storage_account_customer_managed_key_resource.go @@ -50,13 +50,22 @@ func resourceStorageAccountCustomerManagedKey() *pluginsdk.Resource { "key_vault_id": { // TODO: should this be split into two resources, since Key Vault and Managed HSM behave subtly differently in places already Type: pluginsdk.TypeString, - Required: true, + Optional: true, ValidateFunc: validation.Any( // Storage Account Customer Managed Keys support both Key Vault and Key Vault Managed HSM keys: // https://learn.microsoft.com/en-us/azure/storage/common/customer-managed-keys-overview commonids.ValidateKeyVaultID, managedhsms.ValidateManagedHSMID, ), + ExactlyOneOf: []string{"key_vault_id", "key_vault_uri"}, + }, + + "key_vault_uri": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.IsURLWithHTTPS, + ExactlyOneOf: []string{"key_vault_id", "key_vault_uri"}, + Computed: true, }, "key_name": { @@ -76,6 +85,13 @@ func resourceStorageAccountCustomerManagedKey() *pluginsdk.Resource { Optional: true, ValidateFunc: commonids.ValidateUserAssignedIdentityID, }, + + "federated_identity_client_id": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.IsUUID, + RequiredWith: []string{"user_assigned_identity_id"}, + }, }, } } @@ -113,37 +129,46 @@ func resourceStorageAccountCustomerManagedKeyCreateUpdate(d *pluginsdk.ResourceD } } - keyVaultID, err := commonids.ParseKeyVaultID(d.Get("key_vault_id").(string)) - if err != nil { - return err - } - keyVault, err := vaultsClient.Get(ctx, *keyVaultID) - if err != nil { - return fmt.Errorf("retrieving Key Vault %q (Resource Group %q): %+v", keyVaultID.VaultName, keyVaultID.ResourceGroupName, err) - } + keyVaultURI := "" + if keyVaultURIRaw := d.Get("key_vault_uri").(string); keyVaultURIRaw != "" { + keyVaultURI = keyVaultURIRaw + } else { + keyVaultID, err := commonids.ParseKeyVaultID(d.Get("key_vault_id").(string)) + if err != nil { + return err + } + + keyVault, err := vaultsClient.Get(ctx, *keyVaultID) + if err != nil { + return fmt.Errorf("retrieving Key Vault %q (Resource Group %q): %+v", keyVaultID.VaultName, keyVaultID.ResourceGroupName, err) + } - softDeleteEnabled := false - purgeProtectionEnabled := false - if model := keyVault.Model; model != nil { - if esd := model.Properties.EnableSoftDelete; esd != nil { - softDeleteEnabled = *esd + softDeleteEnabled := false + purgeProtectionEnabled := false + if model := keyVault.Model; model != nil { + if esd := model.Properties.EnableSoftDelete; esd != nil { + softDeleteEnabled = *esd + } + if epp := model.Properties.EnablePurgeProtection; epp != nil { + purgeProtectionEnabled = *epp + } } - if epp := model.Properties.EnablePurgeProtection; epp != nil { - purgeProtectionEnabled = *epp + if !softDeleteEnabled || !purgeProtectionEnabled { + return fmt.Errorf("Key Vault %q (Resource Group %q) must be configured for both Purge Protection and Soft Delete", keyVaultID.VaultName, keyVaultID.ResourceGroupName) } - } - if !softDeleteEnabled || !purgeProtectionEnabled { - return fmt.Errorf("Key Vault %q (Resource Group %q) must be configured for both Purge Protection and Soft Delete", keyVaultID.VaultName, keyVaultID.ResourceGroupName) - } - keyVaultBaseURL, err := keyVaultsClient.BaseUriForKeyVault(ctx, *keyVaultID) - if err != nil { - return fmt.Errorf("looking up Key Vault URI from %s: %+v", *keyVaultID, err) + keyVaultBaseURL, err := keyVaultsClient.BaseUriForKeyVault(ctx, *keyVaultID) + if err != nil { + return fmt.Errorf("looking up Key Vault URI from %s: %+v", *keyVaultID, err) + } + + keyVaultURI = *keyVaultBaseURL } keyName := d.Get("key_name").(string) keyVersion := d.Get("key_version").(string) userAssignedIdentity := d.Get("user_assigned_identity_id").(string) + federatedIdentityClientID := d.Get("federated_identity_client_id").(string) props := storage.AccountUpdateParameters{ AccountPropertiesUpdateParameters: &storage.AccountPropertiesUpdateParameters{ @@ -163,12 +188,16 @@ func resourceStorageAccountCustomerManagedKeyCreateUpdate(d *pluginsdk.ResourceD KeyVaultProperties: &storage.KeyVaultProperties{ KeyName: utils.String(keyName), KeyVersion: utils.String(keyVersion), - KeyVaultURI: utils.String(*keyVaultBaseURL), + KeyVaultURI: utils.String(keyVaultURI), }, }, }, } + if federatedIdentityClientID != "" { + props.Encryption.EncryptionIdentity.EncryptionFederatedIdentityClientID = utils.String(federatedIdentityClientID) + } + if _, err = storageClient.Update(ctx, id.ResourceGroupName, id.StorageAccountName, props); err != nil { return fmt.Errorf("updating Customer Managed Key for %s: %+v", id, err) } @@ -226,28 +255,39 @@ func resourceStorageAccountCustomerManagedKeyRead(d *pluginsdk.ResourceData, met } userAssignedIdentity := "" + federatedIdentityClientID := "" if props := encryption.EncryptionIdentity; props != nil { if props.EncryptionUserAssignedIdentity != nil { userAssignedIdentity = *props.EncryptionUserAssignedIdentity } + if props.EncryptionFederatedIdentityClientID != nil { + federatedIdentityClientID = *props.EncryptionFederatedIdentityClientID + } } if keyVaultURI == "" { return fmt.Errorf("retrieving %s: `properties.encryption.keyVaultProperties.keyVaultURI` was nil", id) } - keyVaultID, err := keyVaultsClient.KeyVaultIDFromBaseUrl(ctx, resourcesClient, keyVaultURI) - if err != nil { - return fmt.Errorf("retrieving Key Vault ID from the Base URI %q: %+v", keyVaultURI, err) - } - // now we have the key vault uri we can look up the ID + // we can't look up the ID when using federated identity as the key will be under different tenant + keyVaultID := "" + if federatedIdentityClientID == "" { + tmpKeyVaultID, err := keyVaultsClient.KeyVaultIDFromBaseUrl(ctx, resourcesClient, keyVaultURI) + if err != nil { + return fmt.Errorf("retrieving Key Vault ID from the Base URI %q: %+v", keyVaultURI, err) + } + keyVaultID = *tmpKeyVaultID + } + d.Set("storage_account_id", id.ID()) d.Set("key_vault_id", keyVaultID) + d.Set("key_vault_uri", keyVaultURI) d.Set("key_name", keyName) d.Set("key_version", keyVersion) d.Set("user_assigned_identity_id", userAssignedIdentity) + d.Set("federated_identity_client_id", federatedIdentityClientID) return nil } diff --git a/internal/services/storage/storage_account_customer_managed_key_resource_test.go b/internal/services/storage/storage_account_customer_managed_key_resource_test.go index 5cd7a73a7d89..e75d6f08685c 100644 --- a/internal/services/storage/storage_account_customer_managed_key_resource_test.go +++ b/internal/services/storage/storage_account_customer_managed_key_resource_test.go @@ -6,6 +6,7 @@ package storage_test import ( "context" "fmt" + "os" "testing" "github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2021-09-01/storage" // nolint: staticcheck @@ -132,6 +133,30 @@ func TestAccStorageAccountCustomerManagedKey_userAssignedIdentity(t *testing.T) }) } +func TestAccStorageAccountCustomerManagedKey_userAssignedIdentityWithFederatedIdentity(t *testing.T) { + // Multiple tenants are needed for this test + altTenantId := os.Getenv("ARM_TENANT_ID_ALT") + subscriptionIdAltTenant := os.Getenv("ARM_SUBSCRIPTION_ID_ALT_TENANT") + + if altTenantId == "" || subscriptionIdAltTenant == "" { + t.Skip("One of ARM_TENANT_ID_ALT, ARM_SUBSCRIPTION_ID_ALT_TENANT are not specified") + } + + data := acceptance.BuildTestData(t, "azurerm_storage_account_customer_managed_key", "test") + r := StorageAccountCustomerManagedKeyResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.federatedIdentity(data, altTenantId, subscriptionIdAltTenant), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("federated_identity_client_id").Exists(), + ), + }, + data.ImportStep(), + }) +} + func (r StorageAccountCustomerManagedKeyResource) accountHasDefaultSettings(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) error { accountId, err := commonids.ParseStorageAccountID(state.Attributes["id"]) if err != nil { @@ -551,3 +576,145 @@ resource "azurerm_storage_account" "test" { } `, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomString) } + +func (r StorageAccountCustomerManagedKeyResource) federatedIdentity(data acceptance.TestData, altTenantId, subscriptionIdAltTenant string) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +provider "azurerm-alt" { + tenant_id = "%[1]s" + subscription_id = "%[2]s" + + features { + key_vault { + purge_soft_delete_on_destroy = false + purge_soft_deleted_keys_on_destroy = false + } + } +} + +provider "azuread" {} + +provider "azuread" { + alias = "alt" + tenant_id = "%[1]s" +} + +data "azurerm_client_config" "current" {} + +data "azurerm_client_config" "remote" { + provider = azurerm-alt +} + +data "azuread_client_config" "current" {} + +data "azuread_client_config" "remote" { + provider = azuread.alt +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[3]d" + location = "%[4]s" +} + +resource "azuread_application" "test" { + display_name = "acctestapp-%[5]s" + sign_in_audience = "AzureADMultipleOrgs" + owners = [data.azuread_client_config.current.object_id] +} + +resource "azurerm_user_assigned_identity" "test" { + name = "acctestmi-%[5]s" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location +} + +resource "azuread_application_federated_identity_credential" "test" { + application_object_id = azuread_application.test.object_id + display_name = "acctestcred-%[5]s" + description = "Federated Identity Credential for CMK" + audiences = ["api://AzureADTokenExchange"] + issuer = "https://login.microsoftonline.com/${data.azurerm_client_config.current.tenant_id}/v2.0" + subject = azurerm_user_assigned_identity.test.principal_id +} + +resource "azurerm_resource_group" "remotetest" { + provider = azurerm-alt + name = "acctestRG-alt-%[3]d" + location = "%[4]s" +} + +resource "azuread_service_principal" "remotetest" { + provider = azuread.alt + owners = [data.azuread_client_config.remote.object_id] + application_id = azuread_application.test.application_id +} + +resource "azurerm_key_vault" "remotetest" { + provider = azurerm-alt + + name = "acctestkv%[5]s" + location = azurerm_resource_group.remotetest.location + resource_group_name = azurerm_resource_group.remotetest.name + tenant_id = data.azurerm_client_config.remote.tenant_id + sku_name = "standard" + purge_protection_enabled = true + + access_policy { + tenant_id = data.azurerm_client_config.remote.tenant_id + object_id = data.azurerm_client_config.remote.object_id + + key_permissions = ["Get", "Create", "Delete", "List", "Restore", "Recover", "UnwrapKey", "WrapKey", "Purge", "Encrypt", "Decrypt", "Sign", "Verify", "GetRotationPolicy"] + secret_permissions = ["Get"] + } + + access_policy { + tenant_id = data.azurerm_client_config.remote.tenant_id + object_id = azuread_service_principal.remotetest.object_id + + key_permissions = [ + "Get", "List", "UnwrapKey", "WrapKey", + ] + } + +} + +resource "azurerm_key_vault_key" "remotetest" { + provider = azurerm-alt + + name = "remote" + key_vault_id = azurerm_key_vault.remotetest.id + key_type = "RSA" + key_size = 2048 + key_opts = ["decrypt", "encrypt", "sign", "unwrapKey", "verify", "wrapKey"] +} + +resource "azurerm_storage_account" "test" { + name = "acctestsa%[5]s" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + account_tier = "Standard" + account_replication_type = "LRS" + + identity { + type = "UserAssigned" + identity_ids = [azurerm_user_assigned_identity.test.id] + } + + lifecycle { + ignore_changes = [customer_managed_key] + } +} + +resource "azurerm_storage_account_customer_managed_key" "test" { + storage_account_id = azurerm_storage_account.test.id + key_vault_uri = azurerm_key_vault.remotetest.vault_uri + key_name = azurerm_key_vault_key.remotetest.name + + user_assigned_identity_id = azurerm_user_assigned_identity.test.id + federated_identity_client_id = azuread_application.test.application_id +} +`, altTenantId, subscriptionIdAltTenant, data.RandomInteger, data.Locations.Primary, data.RandomString) +} diff --git a/website/docs/r/storage_account_customer_managed_key.html.markdown b/website/docs/r/storage_account_customer_managed_key.html.markdown index a4d5e3b0e66d..52d55e7c15d3 100644 --- a/website/docs/r/storage_account_customer_managed_key.html.markdown +++ b/website/docs/r/storage_account_customer_managed_key.html.markdown @@ -123,14 +123,21 @@ The following arguments are supported: * `storage_account_id` - (Required) The ID of the Storage Account. Changing this forces a new resource to be created. -* `key_vault_id` - (Required) The ID of the Key Vault. - * `key_name` - (Required) The name of Key Vault Key. +* `key_vault_id` - (Optional) The ID of the Key Vault. Exactly one of `key_vault_id`, or `key_vault_uri` must be specified. + +~> Note: When the principal running Terraform has access to the subscription containing the Key Vault, it's recommended to use the `key_vault_id` property for maximum compatibility, rather than the `key_vault_uri` property. + + +* `key_vault_uri` - (Optional) URI pointing at the Key Vault. Required when using `federated_identity_client_id`. Exactly one of `key_vault_id`, or `key_vault_uri` must be specified. + * `key_version` - (Optional) The version of Key Vault Key. Remove or omit this argument to enable Automatic Key Rotation. * `user_assigned_identity_id` - (Optional) The ID of a user assigned identity. +* `federated_identity_client_id` - (Optional) The Client ID of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. + ## Attributes Reference In addition to the Arguments listed above - the following Attributes are exported: From 039420b2195cccc14cdd83df8fbc7deea6ac42a1 Mon Sep 17 00:00:00 2001 From: Tom Bamford Date: Thu, 21 Sep 2023 12:16:20 +0100 Subject: [PATCH 264/336] Changelog for #20356 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27a35232a3fb..112835c1c83f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ ENHANCEMENTS: * `azurerm_postgresql_flexible_server` - increase the maximum supported value for `storage_mb` [GH-23277] * `azurerm_shared_image_version` - add support for the `replicated_region_deletion_enabled` and `target_region.exclude_from_latest_enabled` properties [GH-23147] * `azurerm_storage_account` - add support for setting `domain_name` and `domain_guid` for `AADKERB` [GH-22833] +* `azurerm_storage_account_customer_managed_key` - add support for cross-tenant customer-managed keys with the `federated_identity_client_id` and `key_vault_uri` properties [GH-20356] * `azurerm_web_application_firewall_policy` - add support for the `rate_limit_duration`, `rate_limit_threshold`, `group_rate_limit_by` and `request_body_inspect_limit_in_kb` properties [GH-23239] BUG FIXES: From 8078e1bcdb8503e6c3a581f91aa3b201c4545f5c Mon Sep 17 00:00:00 2001 From: stephybun Date: Thu, 21 Sep 2023 14:40:01 +0200 Subject: [PATCH 265/336] Update for #23335 #23332 #23333 #23308 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 112835c1c83f..bab6e562f12a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,9 +15,11 @@ ENHANCEMENTS: * `azurerm_bot_channel_directline` - add support for `user_upload_enabled`, `endpoint_parameters_enabled` and `storage_enabled` [GH-23149] * `azurerm_container_app` - add support for scale rules [GH-23294] * `azurerm_container_app_environment` - add support for zone redundancy [GH-23313] +* `azurerm_container_group` - add support for the `key_vault_user_identity_id` property for Customer Managed Keys [GH-23332] * `azurerm_cosmosdb_account` - add support for MongoDB connection strings [GH-23331] * `azurerm_data_factory_dataset_delimited_text` - add support for the `dynamic_file_system_enabled`, `dynamic_path_enabled` and `dynamic_filename_enabled` properties [GH-23261] * `azurerm_data_factory_dataset_parquet` - add support for the `azure_blob_fs_location` block [GH-23261] +* `azurerm_monitor_diagnostic_setting` - add validation to ensure either `category` or `category_group` are supplied in `enabled_log` and `log` blocks [GH-23308] * `azurerm_network_interface` - add support for the `auxiliary_mode` and `auxiliary_sku` properties [GH-22979] * `azurerm_postgresql_flexible_server` - increase the maximum supported value for `storage_mb` [GH-23277] * `azurerm_shared_image_version` - add support for the `replicated_region_deletion_enabled` and `target_region.exclude_from_latest_enabled` properties [GH-23147] @@ -38,6 +40,8 @@ BUG FIXES: * `azurerm_linux_web_app` - Fix crash in auto heal expansion [GH-21328] * `azurerm_linux_web_app_slot` - fix docker app stack update [GH-23303] * `azurerm_linux_web_app_slot` - Fix crash in auto heal expansion [GH-21328] +* `azurerm_log_analytics_solution` - fix bug where the resource wasn't handling successful creation on subsequent applies [GH-23312] +* `azurerm_management_group_subscription_association` - fix bug to correctly mark resource as gone if not found during read [GH-23335] * `azurerm_mssql_elasticpool` - remove check that prevents `license_type` from being set for certain skus [GH-23262] * `azurerm_servicebus_queue` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] * `azurerm_servicebus_topic` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] From 4dc3b03e4d29456b6f5940914256747ee2e83fe7 Mon Sep 17 00:00:00 2001 From: Xu Wu Date: Thu, 21 Sep 2023 22:24:24 +0800 Subject: [PATCH 266/336] `azurerm_key_vault_certificate`: fix `createCertificate` lost `http.Response` which is used to check if should recover this certificate (#23204) * fix recover certificate, update error log and update acctest for recovery certificate * fix typo * lint comment fix --- .../key_vault_certificate_resource.go | 14 +++++++------ .../key_vault_certificate_resource_test.go | 21 +++++++++++++++---- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/internal/services/keyvault/key_vault_certificate_resource.go b/internal/services/keyvault/key_vault_certificate_resource.go index ce9d02e06a02..840abaa824de 100644 --- a/internal/services/keyvault/key_vault_certificate_resource.go +++ b/internal/services/keyvault/key_vault_certificate_resource.go @@ -438,9 +438,11 @@ func createCertificate(d *pluginsdk.ResourceData, meta interface{}) (keyvault.Ce Tags: tags.Expand(t), } - _, err = client.CreateCertificate(ctx, *keyVaultBaseUrl, name, parameters) + result, err := client.CreateCertificate(ctx, *keyVaultBaseUrl, name, parameters) if err != nil { - return keyvault.CertificateBundle{}, err + return keyvault.CertificateBundle{ + Response: result.Response, + }, err } log.Printf("[DEBUG] Waiting for Key Vault Certificate %q in Vault %q to be provisioned", name, *keyVaultBaseUrl) @@ -513,11 +515,11 @@ func resourceKeyVaultCertificateCreate(d *pluginsdk.ResourceData, meta interface if err != nil { if meta.(*clients.Client).Features.KeyVault.RecoverSoftDeletedCerts && utils.ResponseWasConflict(newCert.Response) { if err = recoverDeletedCertificate(ctx, d, meta, *keyVaultBaseUrl, name); err != nil { - return err + return fmt.Errorf("recover deleted certificate: %+v", err) } newCert, err = client.ImportCertificate(ctx, *keyVaultBaseUrl, name, importParameters) if err != nil { - return err + return fmt.Errorf("update recovered certificate: %+v", err) } } else { return err @@ -529,12 +531,12 @@ func resourceKeyVaultCertificateCreate(d *pluginsdk.ResourceData, meta interface if err != nil { if meta.(*clients.Client).Features.KeyVault.RecoverSoftDeletedCerts && utils.ResponseWasConflict(newCert.Response) { if err = recoverDeletedCertificate(ctx, d, meta, *keyVaultBaseUrl, name); err != nil { - return err + return fmt.Errorf("recover deleted certificate: %+v", err) } // after we recovered the existing certificate we still have to apply our changes newCert, err = createCertificate(d, meta) if err != nil { - return err + return fmt.Errorf("update recovered certificate: %+v", err) } } else { return err diff --git a/internal/services/keyvault/key_vault_certificate_resource_test.go b/internal/services/keyvault/key_vault_certificate_resource_test.go index df335c6d8201..2851e7debf68 100644 --- a/internal/services/keyvault/key_vault_certificate_resource_test.go +++ b/internal/services/keyvault/key_vault_certificate_resource_test.go @@ -138,8 +138,7 @@ func TestAccKeyVaultCertificate_softDeleteRecovery(t *testing.T) { ), }, { - Config: r.softDeleteRecovery(data, false), - Destroy: true, + Config: r.softDeleteCertificate(data, false), }, { Config: r.softDeleteRecovery(data, true), @@ -1171,17 +1170,31 @@ resource "azurerm_key_vault_certificate" "test" { `, r.template(data), data.RandomString) } -func (r KeyVaultCertificateResource) softDeleteRecovery(data acceptance.TestData, purge bool) string { +func (r KeyVaultCertificateResource) softDeleteCertificate(data acceptance.TestData, purge bool) string { return fmt.Sprintf(` provider "azurerm" { features { key_vault { - purge_soft_delete_on_destroy = "%t" + purge_soft_deleted_certificates_on_destroy = %t recover_soft_deleted_key_vaults = true } } } +%s`, purge, r.template(data)) +} + +func (r KeyVaultCertificateResource) softDeleteRecovery(data acceptance.TestData, purge bool) string { + return fmt.Sprintf(` +provider "azurerm" { + features { + key_vault { + purge_soft_deleted_certificates_on_destroy = %t + recover_soft_deleted_key_vaults = true + } + } +} + %s resource "azurerm_key_vault_certificate" "test" { From 049a831cf08799ecfb3ecb4f475f99782182efa2 Mon Sep 17 00:00:00 2001 From: stephybun Date: Thu, 21 Sep 2023 16:25:20 +0200 Subject: [PATCH 267/336] Update for #23204 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bab6e562f12a..62702c288bfb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ BUG FIXES: * `azurerm_app_configuration` - prevent crash by nil checking the encryption configuration [GH-23302] * `azurerm_app_configuration_feature` - update `percentage_filter_value` to accept correct type of float [GH-23263] * `azurerm_container_app` - Fix issue with `commands` and `args` being overwritten when using multiple containers [GH-23338] +* `azurerm_key_vault_certificate` - fix issue where certificates couldn't be recovered anymore [GH-23204] * `azurerm_key_vault_key` - ForceNew when `expiration_date` is removed from the config file [GH-23327] * `azurerm_linux_function_app` - fix a bug in setting the storage settings when using Elastic Premium plans [GH-21212] * `azurerm_linux_web_app` - fix docker app stack update [GH-23303] From 165e9e43eaa2b536259e89126c4ce7a75c49e2ba Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Thu, 21 Sep 2023 23:02:05 -0600 Subject: [PATCH 268/336] including #23217 fixes #23157 * Initial Check-in... * Fix up test cases... * Wrap behavior change in feature flag... * Aligning Synapse test case RG names... * Update doc and error msg... * Minor doc fix... * Refactor code for new behavior... * Fix lint issues... * Fix test lint errors... * Address PR comments... * Address PR comments... --- ..._analytics_output_synapse_resource_test.go | 1 + ..._extended_auditing_policy_resource_test.go | 3 +- .../synapse/synapse_sql_pool_resource.go | 77 +++++- .../synapse/synapse_sql_pool_resource_test.go | 230 ++++++++++++------ ...ool_security_alert_policy_resource_test.go | 1 + ...ility_assessment_baseline_resource_test.go | 1 + ..._vulnerability_assessment_resource_test.go | 1 + ..._pool_workload_classifier_resource_test.go | 1 + ...e_sql_pool_workload_group_resource_test.go | 1 + ..._extended_auditing_policy_resource_test.go | 2 +- .../synapse/synapse_workspace_key_resource.go | 2 +- .../synapse/synapse_workspace_resource.go | 2 +- website/docs/r/synapse_sql_pool.html.markdown | 13 +- 13 files changed, 252 insertions(+), 83 deletions(-) diff --git a/internal/services/streamanalytics/stream_analytics_output_synapse_resource_test.go b/internal/services/streamanalytics/stream_analytics_output_synapse_resource_test.go index 1b425254cd03..07e6368b244e 100644 --- a/internal/services/streamanalytics/stream_analytics_output_synapse_resource_test.go +++ b/internal/services/streamanalytics/stream_analytics_output_synapse_resource_test.go @@ -130,6 +130,7 @@ resource "azurerm_synapse_sql_pool" "test" { synapse_workspace_id = azurerm_synapse_workspace.test.id sku_name = "DW100c" create_mode = "Default" + storage_account_type = "GRS" } resource "azurerm_stream_analytics_output_synapse" "test" { diff --git a/internal/services/synapse/synapse_sql_pool_extended_auditing_policy_resource_test.go b/internal/services/synapse/synapse_sql_pool_extended_auditing_policy_resource_test.go index f91f304af37a..43bdba4fcd2d 100644 --- a/internal/services/synapse/synapse_sql_pool_extended_auditing_policy_resource_test.go +++ b/internal/services/synapse/synapse_sql_pool_extended_auditing_policy_resource_test.go @@ -189,7 +189,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "acctestsw%[1]d" + name = "acctestRG-synapse-%[1]d" location = "%[2]s" } @@ -224,6 +224,7 @@ resource "azurerm_synapse_sql_pool" "test" { synapse_workspace_id = azurerm_synapse_workspace.test.id sku_name = "DW100c" create_mode = "Default" + storage_account_type = "GRS" } resource "azurerm_storage_account" "test" { diff --git a/internal/services/synapse/synapse_sql_pool_resource.go b/internal/services/synapse/synapse_sql_pool_resource.go index 49f8df1c60b1..7a0949545475 100644 --- a/internal/services/synapse/synapse_sql_pool_resource.go +++ b/internal/services/synapse/synapse_sql_pool_resource.go @@ -13,6 +13,7 @@ import ( "github.com/Azure/go-autorest/autorest/date" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/features" mssqlParse "github.com/hashicorp/terraform-provider-azurerm/internal/services/mssql/parse" mssqlValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/mssql/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/services/synapse/parse" @@ -31,7 +32,7 @@ const ( ) func resourceSynapseSqlPool() *pluginsdk.Resource { - return &pluginsdk.Resource{ + resource := &pluginsdk.Resource{ Create: resourceSynapseSqlPoolCreate, Read: resourceSynapseSqlPoolRead, Update: resourceSynapseSqlPoolUpdate, @@ -168,7 +169,51 @@ func resourceSynapseSqlPool() *pluginsdk.Resource { "tags": tags.Schema(), }, + + CustomizeDiff: pluginsdk.CustomizeDiffShim(synapseSqlPoolCustomizeDiff), + } + + if !features.FourPointOhBeta() { + // NOTE: In v3.0 providers this will be an Optional field with a 'Default' + // of 'GRS' to match existing v3.0 behavior, the 'ForceNew' logic will be + // applied in the CustomizeDiff function... + resource.Schema["storage_account_type"] = &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + Default: string(synapse.StorageAccountTypeGRS), + Optional: true, + ForceNew: true, + ValidateFunc: validation.StringInSlice([]string{ + string(synapse.StorageAccountTypeLRS), + string(synapse.StorageAccountTypeGRS), + }, false), + } + } else { + resource.Schema["storage_account_type"] = &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.StringInSlice([]string{ + string(synapse.StorageAccountTypeLRS), + string(synapse.StorageAccountTypeGRS), + }, false), + } } + + return resource +} + +func synapseSqlPoolCustomizeDiff(ctx context.Context, d *pluginsdk.ResourceDiff, v interface{}) error { + _, value := d.GetChange("geo_backup_policy_enabled") + geoBackupEnabled := value.(bool) + + _, value = d.GetChange("storage_account_type") + storageAccountType := synapse.StorageAccountType(value.(string)) + + if storageAccountType == synapse.StorageAccountTypeLRS && geoBackupEnabled { + return fmt.Errorf("`geo_backup_policy_enabled` cannot be `true` if the `storage_account_type` is `LRS`") + } + + return nil } func resourceSynapseSqlPoolCreate(d *pluginsdk.ResourceData, meta interface{}) error { @@ -191,6 +236,7 @@ func resourceSynapseSqlPoolCreate(d *pluginsdk.ResourceData, meta interface{}) e return fmt.Errorf("checking for presence of existing %s: %+v", id, err) } } + if !utils.ResponseWasNotFound(existing.Response) { return tf.ImportAsExistsError("azurerm_synapse_sql_pool", id.ID()) } @@ -200,11 +246,15 @@ func resourceSynapseSqlPoolCreate(d *pluginsdk.ResourceData, meta interface{}) e return fmt.Errorf("retrieving %s: %+v", workspaceId, err) } + geoBackupEnabled := d.Get("geo_backup_policy_enabled").(bool) + storageAccountType := synapse.StorageAccountType(d.Get("storage_account_type").(string)) + mode := d.Get("create_mode").(string) sqlPoolInfo := synapse.SQLPool{ Location: workspace.Location, SQLPoolResourceProperties: &synapse.SQLPoolResourceProperties{ - CreateMode: synapse.CreateMode(*utils.String(mode)), + CreateMode: synapse.CreateMode(*utils.String(mode)), + StorageAccountType: storageAccountType, }, Sku: &synapse.Sku{ Name: utils.String(d.Get("sku_name").(string)), @@ -217,21 +267,26 @@ func resourceSynapseSqlPoolCreate(d *pluginsdk.ResourceData, meta interface{}) e sqlPoolInfo.SQLPoolResourceProperties.Collation = utils.String(d.Get("collation").(string)) case RecoveryCreateMode: recoveryDatabaseId := constructSourceDatabaseId(d.Get("recovery_database_id").(string)) + if recoveryDatabaseId == "" { return fmt.Errorf("`recovery_database_id` must be set when `create_mode` is %q", RecoveryCreateMode) } + sqlPoolInfo.SQLPoolResourceProperties.RecoverableDatabaseID = utils.String(recoveryDatabaseId) case PointInTimeRestoreCreateMode: restore := d.Get("restore").([]interface{}) if len(restore) == 0 || restore[0] == nil { return fmt.Errorf("`restore` block must be set when `create_mode` is %q", PointInTimeRestoreCreateMode) } + v := restore[0].(map[string]interface{}) sourceDatabaseId := constructSourceDatabaseId(v["source_database_id"].(string)) vTime, parseErr := date.ParseTime(time.RFC3339, v["point_in_time"].(string)) + if parseErr != nil { return fmt.Errorf("parsing time format: %+v", parseErr) } + sqlPoolInfo.SQLPoolResourceProperties.RestorePointInTime = &date.Time{Time: vTime} sqlPoolInfo.SQLPoolResourceProperties.SourceDatabaseID = utils.String(sourceDatabaseId) } @@ -240,6 +295,7 @@ func resourceSynapseSqlPoolCreate(d *pluginsdk.ResourceData, meta interface{}) e if err != nil { return fmt.Errorf("creating %s: %+v", id, err) } + if err = future.WaitForCompletionRef(ctx, sqlClient.Client); err != nil { return fmt.Errorf("waiting for creation of %s: %+v", id, err) } @@ -250,12 +306,15 @@ func resourceSynapseSqlPoolCreate(d *pluginsdk.ResourceData, meta interface{}) e Status: synapse.TransparentDataEncryptionStatusEnabled, }, } + if _, err := sqlPTDEClient.CreateOrUpdate(ctx, id.ResourceGroup, id.WorkspaceName, id.Name, parameter); err != nil { return fmt.Errorf("setting `data_encrypted`: %+v", err) } } - if !d.Get("geo_backup_policy_enabled").(bool) { + // Only update the Geo Backup Policy if it has been disabled since it is + // already enabled by default... + if !geoBackupEnabled { geoBackupParams := synapse.GeoBackupPolicy{ GeoBackupPolicyProperties: &synapse.GeoBackupPolicyProperties{ State: synapse.GeoBackupPolicyStateDisabled, @@ -273,8 +332,8 @@ func resourceSynapseSqlPoolCreate(d *pluginsdk.ResourceData, meta interface{}) e func resourceSynapseSqlPoolUpdate(d *pluginsdk.ResourceData, meta interface{}) error { sqlClient := meta.(*clients.Client).Synapse.SqlPoolClient - sqlPTDEClient := meta.(*clients.Client).Synapse.SqlPoolTransparentDataEncryptionClient geoBackUpClient := meta.(*clients.Client).Synapse.SqlPoolGeoBackupPoliciesClient + sqlPTDEClient := meta.(*clients.Client).Synapse.SqlPoolTransparentDataEncryptionClient ctx, cancel := timeouts.ForUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -294,6 +353,7 @@ func resourceSynapseSqlPoolUpdate(d *pluginsdk.ResourceData, meta interface{}) e Status: status, }, } + if _, err := sqlPTDEClient.CreateOrUpdate(ctx, id.ResourceGroup, id.WorkspaceName, id.Name, parameter); err != nil { return fmt.Errorf("updating `data_encrypted`: %+v", err) } @@ -310,6 +370,7 @@ func resourceSynapseSqlPoolUpdate(d *pluginsdk.ResourceData, meta interface{}) e State: state, }, } + if _, err := geoBackUpClient.CreateOrUpdate(ctx, id.ResourceGroup, id.WorkspaceName, id.Name, geoBackupParams); err != nil { return fmt.Errorf("updating `geo_backup_policy_enabled`: %+v", err) } @@ -333,6 +394,7 @@ func resourceSynapseSqlPoolUpdate(d *pluginsdk.ResourceData, meta interface{}) e if !ok { return fmt.Errorf("internal-error: context had no deadline") } + stateConf := &pluginsdk.StateChangeConf{ Pending: []string{ "Scaling", @@ -351,6 +413,7 @@ func resourceSynapseSqlPoolUpdate(d *pluginsdk.ResourceData, meta interface{}) e } } } + return resourceSynapseSqlPoolRead(d, meta) } @@ -393,8 +456,10 @@ func resourceSynapseSqlPoolRead(d *pluginsdk.ResourceData, meta interface{}) err if resp.Sku != nil { d.Set("sku_name", resp.Sku.Name) } + if props := resp.SQLPoolResourceProperties; props != nil { d.Set("collation", props.Collation) + d.Set("storage_account_type", props.StorageAccountType) } geoBackupEnabled := true @@ -431,6 +496,7 @@ func resourceSynapseSqlPoolDelete(d *pluginsdk.ResourceData, meta interface{}) e if err = future.WaitForCompletionRef(ctx, sqlClient.Client); err != nil { return fmt.Errorf("waiting for deletion of %s: %+v", *id, err) } + return nil } @@ -440,9 +506,11 @@ func synapseSqlPoolScaleStateRefreshFunc(ctx context.Context, client *synapse.SQ if err != nil { return resp, "failed", err } + if resp.SQLPoolResourceProperties == nil || resp.SQLPoolResourceProperties.Status == nil { return resp, "failed", nil } + return resp, *resp.SQLPoolResourceProperties.Status, nil } } @@ -455,5 +523,6 @@ func constructSourceDatabaseId(id string) string { if err != nil { return id } + return mssqlParse.NewDatabaseID(sqlPoolId.SubscriptionId, sqlPoolId.ResourceGroup, sqlPoolId.WorkspaceName, sqlPoolId.Name).ID() } diff --git a/internal/services/synapse/synapse_sql_pool_resource_test.go b/internal/services/synapse/synapse_sql_pool_resource_test.go index 65ef353b94fd..0049dbdb7ce9 100644 --- a/internal/services/synapse/synapse_sql_pool_resource_test.go +++ b/internal/services/synapse/synapse_sql_pool_resource_test.go @@ -6,11 +6,13 @@ package synapse_test import ( "context" "fmt" + "regexp" "testing" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/features" "github.com/hashicorp/terraform-provider-azurerm/internal/services/synapse/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" @@ -24,9 +26,72 @@ func TestAccSynapseSqlPool_basic(t *testing.T) { data.ResourceTest(t, r, []acceptance.TestStep{ { - Config: r.basic(data), + Config: r.geoBackupDefault(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("geo_backup_policy_enabled").HasValue("true"), + check.That(data.ResourceName).Key("storage_account_type").HasValue("GRS"), + ), + }, + data.ImportStep(), + }) +} + +func TestAccSynapseSqlPool_basicThreePointOh(t *testing.T) { + // NOTE: Validate that the original resources default values during create are preserved... + if features.FourPointOhBeta() { + t.Skipf("Skippped as 'storage_account_type' is now a Required field in 4.0") + } + + data := acceptance.BuildTestData(t, "azurerm_synapse_sql_pool", "test") + r := SynapseSqlPoolResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.geoBackupThreePointOhDefault(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("geo_backup_policy_enabled").HasValue("true"), + check.That(data.ResourceName).Key("storage_account_type").HasValue("GRS"), + ), + }, + data.ImportStep(), + }) +} + +func TestAccSynapseSqlPool_threePointOhUpdate(t *testing.T) { + if features.FourPointOhBeta() { + t.Skipf("Skippped as 'storage_account_type' is now a Required field in 4.0") + } + + data := acceptance.BuildTestData(t, "azurerm_synapse_sql_pool", "test") + r := SynapseSqlPoolResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.geoBackupThreePointOhDefault(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("geo_backup_policy_enabled").HasValue("true"), + check.That(data.ResourceName).Key("storage_account_type").HasValue("GRS"), + ), + }, + data.ImportStep(), + { + Config: r.geoBackup(data, false, "GRS"), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("geo_backup_policy_enabled").HasValue("false"), + check.That(data.ResourceName).Key("storage_account_type").HasValue("GRS"), + ), + }, + data.ImportStep(), + { + Config: r.geoBackupThreePointOhDefault(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("geo_backup_policy_enabled").HasValue("true"), + check.That(data.ResourceName).Key("storage_account_type").HasValue("GRS"), ), }, data.ImportStep(), @@ -54,7 +119,7 @@ func TestAccSynapseSqlPool_requiresImport(t *testing.T) { data.ResourceTest(t, r, []acceptance.TestStep{ { - Config: r.basic(data), + Config: r.geoBackupDefault(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), ), @@ -84,58 +149,78 @@ func TestAccSynapseSqlPool_update(t *testing.T) { data.ResourceTest(t, r, []acceptance.TestStep{ { - Config: r.basic(data), + Config: r.geoBackupDefault(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("geo_backup_policy_enabled").HasValue("true"), + check.That(data.ResourceName).Key("storage_account_type").HasValue("GRS"), ), }, data.ImportStep(), { - Config: r.complete(data), + Config: r.geoBackup(data, false, "GRS"), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("geo_backup_policy_enabled").HasValue("false"), + check.That(data.ResourceName).Key("storage_account_type").HasValue("GRS"), ), }, data.ImportStep(), { - Config: r.basic(data), + Config: r.geoBackupDefault(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("geo_backup_policy_enabled").HasValue("true"), + check.That(data.ResourceName).Key("storage_account_type").HasValue("GRS"), ), }, data.ImportStep(), }) } -func TestAccSynapseSqlPool_geoBackupPolicy(t *testing.T) { +func TestAccSynapseSqlPool_geoBackupDisabledGRS(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_synapse_sql_pool", "test") r := SynapseSqlPoolResource{} data.ResourceTest(t, r, []acceptance.TestStep{ { - Config: r.geoBackupDisabled(data), + Config: r.geoBackup(data, false, "GRS"), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), check.That(data.ResourceName).Key("geo_backup_policy_enabled").HasValue("false"), + check.That(data.ResourceName).Key("storage_account_type").HasValue("GRS"), ), }, data.ImportStep(), + }) +} + +func TestAccSynapseSqlPool_geoBackupDisabledLRS(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_synapse_sql_pool", "test") + r := SynapseSqlPoolResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ { - Config: r.geoBackupEnabled(data), + Config: r.geoBackup(data, false, "LRS"), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("geo_backup_policy_enabled").HasValue("true"), + check.That(data.ResourceName).Key("geo_backup_policy_enabled").HasValue("false"), + check.That(data.ResourceName).Key("storage_account_type").HasValue("LRS"), ), }, data.ImportStep(), + }) +} + +func TestAccSynapseSqlPool_geoBackupInvalid(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_synapse_sql_pool", "test") + r := SynapseSqlPoolResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ { - Config: r.geoBackupDisabled(data), - Check: acceptance.ComposeTestCheckFunc( - check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("geo_backup_policy_enabled").HasValue("false"), - ), + Config: r.geoBackup(data, true, "LRS"), + ExpectError: regexp.MustCompile("`geo_backup_policy_enabled` cannot be `true` if the `storage_account_type` is `LRS`"), }, - data.ImportStep(), }) } @@ -156,22 +241,39 @@ func (r SynapseSqlPoolResource) Exists(ctx context.Context, client *clients.Clie return utils.Bool(true), nil } -func (r SynapseSqlPoolResource) basic(data acceptance.TestData) string { - template := r.template(data) +func (r SynapseSqlPoolResource) template(data acceptance.TestData) string { return fmt.Sprintf(` -provider "azurerm" { - features {} +resource "azurerm_resource_group" "test" { + name = "acctestRG-synapse-%d" + location = "%s" } -%s +resource "azurerm_storage_account" "test" { + name = "acctestacc%s" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + account_kind = "BlobStorage" + account_tier = "Standard" + account_replication_type = "LRS" +} -resource "azurerm_synapse_sql_pool" "test" { - name = "acctestSP%s" - synapse_workspace_id = azurerm_synapse_workspace.test.id - sku_name = "DW100c" - create_mode = "Default" +resource "azurerm_storage_data_lake_gen2_filesystem" "test" { + name = "acctest-%d" + storage_account_id = azurerm_storage_account.test.id } -`, template, data.RandomString) + +resource "azurerm_synapse_workspace" "test" { + name = "acctestsw%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + storage_data_lake_gen2_filesystem_id = azurerm_storage_data_lake_gen2_filesystem.test.id + sql_administrator_login = "sqladminuser" + sql_administrator_login_password = "H@Sh1CoR3!" + identity { + type = "SystemAssigned" + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger, data.RandomInteger) } func (r SynapseSqlPoolResource) utf8(data acceptance.TestData) string { @@ -188,12 +290,13 @@ resource "azurerm_synapse_sql_pool" "test" { synapse_workspace_id = azurerm_synapse_workspace.test.id sku_name = "DW100c" create_mode = "Default" + storage_account_type = "GRS" } `, template) } func (r SynapseSqlPoolResource) requiresImport(data acceptance.TestData) string { - config := r.basic(data) + config := r.geoBackupDefault(data) return fmt.Sprintf(` %s @@ -202,6 +305,7 @@ resource "azurerm_synapse_sql_pool" "import" { synapse_workspace_id = azurerm_synapse_sql_pool.test.synapse_workspace_id sku_name = azurerm_synapse_sql_pool.test.sku_name create_mode = azurerm_synapse_sql_pool.test.create_mode + storage_account_type = "GRS" } `, config) } @@ -216,12 +320,14 @@ provider "azurerm" { %s resource "azurerm_synapse_sql_pool" "test" { - name = "acctestSP%s" - synapse_workspace_id = azurerm_synapse_workspace.test.id - sku_name = "DW500c" - create_mode = "Default" - collation = "SQL_Latin1_General_CP1_CI_AS" - data_encrypted = true + name = "acctestSP%s" + synapse_workspace_id = azurerm_synapse_workspace.test.id + sku_name = "DW500c" + create_mode = "Default" + collation = "SQL_Latin1_General_CP1_CI_AS" + data_encrypted = true + geo_backup_policy_enabled = true + storage_account_type = "GRS" tags = { ENV = "Test" @@ -230,42 +336,25 @@ resource "azurerm_synapse_sql_pool" "test" { `, template, data.RandomString) } -func (r SynapseSqlPoolResource) template(data acceptance.TestData) string { +func (r SynapseSqlPoolResource) geoBackupThreePointOhDefault(data acceptance.TestData) string { + template := r.template(data) return fmt.Sprintf(` -resource "azurerm_resource_group" "test" { - name = "acctestRG-synapse-%d" - location = "%s" -} - -resource "azurerm_storage_account" "test" { - name = "acctestacc%s" - resource_group_name = azurerm_resource_group.test.name - location = azurerm_resource_group.test.location - account_kind = "BlobStorage" - account_tier = "Standard" - account_replication_type = "LRS" +provider "azurerm" { + features {} } -resource "azurerm_storage_data_lake_gen2_filesystem" "test" { - name = "acctest-%d" - storage_account_id = azurerm_storage_account.test.id -} +%s -resource "azurerm_synapse_workspace" "test" { - name = "acctestsw%d" - resource_group_name = azurerm_resource_group.test.name - location = azurerm_resource_group.test.location - storage_data_lake_gen2_filesystem_id = azurerm_storage_data_lake_gen2_filesystem.test.id - sql_administrator_login = "sqladminuser" - sql_administrator_login_password = "H@Sh1CoR3!" - identity { - type = "SystemAssigned" - } +resource "azurerm_synapse_sql_pool" "test" { + name = "acctestSP%s" + synapse_workspace_id = azurerm_synapse_workspace.test.id + sku_name = "DW100c" + create_mode = "Default" } -`, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger, data.RandomInteger) +`, template, data.RandomString) } -func (r SynapseSqlPoolResource) geoBackupDisabled(data acceptance.TestData) string { +func (r SynapseSqlPoolResource) geoBackupDefault(data acceptance.TestData) string { template := r.template(data) return fmt.Sprintf(` provider "azurerm" { @@ -275,16 +364,16 @@ provider "azurerm" { %s resource "azurerm_synapse_sql_pool" "test" { - name = "acctestSP%s" - synapse_workspace_id = azurerm_synapse_workspace.test.id - sku_name = "DW100c" - create_mode = "Default" - geo_backup_policy_enabled = false + name = "acctestSP%s" + synapse_workspace_id = azurerm_synapse_workspace.test.id + sku_name = "DW100c" + create_mode = "Default" + storage_account_type = "GRS" } `, template, data.RandomString) } -func (r SynapseSqlPoolResource) geoBackupEnabled(data acceptance.TestData) string { +func (r SynapseSqlPoolResource) geoBackup(data acceptance.TestData, geoBackupPolicy bool, accountType string) string { template := r.template(data) return fmt.Sprintf(` provider "azurerm" { @@ -298,7 +387,8 @@ resource "azurerm_synapse_sql_pool" "test" { synapse_workspace_id = azurerm_synapse_workspace.test.id sku_name = "DW100c" create_mode = "Default" - geo_backup_policy_enabled = true + geo_backup_policy_enabled = %t + storage_account_type = "%s" } -`, template, data.RandomString) +`, template, data.RandomString, geoBackupPolicy, accountType) } diff --git a/internal/services/synapse/synapse_sql_pool_security_alert_policy_resource_test.go b/internal/services/synapse/synapse_sql_pool_security_alert_policy_resource_test.go index c3bbac0707a0..7a0ebede92ad 100644 --- a/internal/services/synapse/synapse_sql_pool_security_alert_policy_resource_test.go +++ b/internal/services/synapse/synapse_sql_pool_security_alert_policy_resource_test.go @@ -146,6 +146,7 @@ resource "azurerm_synapse_sql_pool" "test" { synapse_workspace_id = azurerm_synapse_workspace.test.id sku_name = "DW100c" create_mode = "Default" + storage_account_type = "GRS" } `, data.RandomInteger, data.Locations.Primary, data.RandomString) } diff --git a/internal/services/synapse/synapse_sql_pool_vulnerability_assessment_baseline_resource_test.go b/internal/services/synapse/synapse_sql_pool_vulnerability_assessment_baseline_resource_test.go index 3bc7bd7406b3..bf20ad6b6ffa 100644 --- a/internal/services/synapse/synapse_sql_pool_vulnerability_assessment_baseline_resource_test.go +++ b/internal/services/synapse/synapse_sql_pool_vulnerability_assessment_baseline_resource_test.go @@ -194,6 +194,7 @@ resource "azurerm_synapse_sql_pool" "test" { synapse_workspace_id = azurerm_synapse_workspace.test.id sku_name = "DW100c" create_mode = "Default" + storage_account_type = "GRS" } resource "azurerm_storage_account" "test" { diff --git a/internal/services/synapse/synapse_sql_pool_vulnerability_assessment_resource_test.go b/internal/services/synapse/synapse_sql_pool_vulnerability_assessment_resource_test.go index 490c0c3dae04..ffe8c119905f 100644 --- a/internal/services/synapse/synapse_sql_pool_vulnerability_assessment_resource_test.go +++ b/internal/services/synapse/synapse_sql_pool_vulnerability_assessment_resource_test.go @@ -147,6 +147,7 @@ resource "azurerm_synapse_sql_pool" "test" { synapse_workspace_id = azurerm_synapse_workspace.test.id sku_name = "DW100c" create_mode = "Default" + storage_account_type = "GRS" } resource "azurerm_storage_account" "test" { diff --git a/internal/services/synapse/synapse_sql_pool_workload_classifier_resource_test.go b/internal/services/synapse/synapse_sql_pool_workload_classifier_resource_test.go index 1cbb8a4c5bca..2e938504e324 100644 --- a/internal/services/synapse/synapse_sql_pool_workload_classifier_resource_test.go +++ b/internal/services/synapse/synapse_sql_pool_workload_classifier_resource_test.go @@ -197,6 +197,7 @@ resource "azurerm_synapse_sql_pool" "test" { synapse_workspace_id = azurerm_synapse_workspace.test.id sku_name = "DW100c" create_mode = "Default" + storage_account_type = "GRS" } resource "azurerm_synapse_sql_pool_workload_group" "test" { diff --git a/internal/services/synapse/synapse_sql_pool_workload_group_resource_test.go b/internal/services/synapse/synapse_sql_pool_workload_group_resource_test.go index b706440c5338..3d322ce4dcf3 100644 --- a/internal/services/synapse/synapse_sql_pool_workload_group_resource_test.go +++ b/internal/services/synapse/synapse_sql_pool_workload_group_resource_test.go @@ -199,6 +199,7 @@ resource "azurerm_synapse_sql_pool" "test" { synapse_workspace_id = azurerm_synapse_workspace.test.id sku_name = "DW100c" create_mode = "Default" + storage_account_type = "GRS" } `, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomInteger, data.RandomInteger, data.RandomString) } diff --git a/internal/services/synapse/synapse_workspace_extended_auditing_policy_resource_test.go b/internal/services/synapse/synapse_workspace_extended_auditing_policy_resource_test.go index df28a6cdae9b..2b12791b5f3f 100644 --- a/internal/services/synapse/synapse_workspace_extended_auditing_policy_resource_test.go +++ b/internal/services/synapse/synapse_workspace_extended_auditing_policy_resource_test.go @@ -189,7 +189,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "acctestsw%[1]d" + name = "acctestRG-synapse-%[1]d" location = "%[2]s" } diff --git a/internal/services/synapse/synapse_workspace_key_resource.go b/internal/services/synapse/synapse_workspace_key_resource.go index d14db28f7022..11ff27275360 100644 --- a/internal/services/synapse/synapse_workspace_key_resource.go +++ b/internal/services/synapse/synapse_workspace_key_resource.go @@ -168,7 +168,7 @@ func resourceSynapseWorkspaceKeysDelete(d *pluginsdk.ResourceData, meta interfac // Fetch the key and check if it's an active key keyresult, err := client.Get(ctx, id.ResourceGroup, id.WorkspaceName, id.KeyName) if err != nil { - return fmt.Errorf("Unable to fetch key %s in workspace %s: %v", id.KeyName, id.WorkspaceName, err) + return fmt.Errorf("unable to fetch key %s in workspace %s: %v", id.KeyName, id.WorkspaceName, err) } // Azure only lets you delete keys that are not active diff --git a/internal/services/synapse/synapse_workspace_resource.go b/internal/services/synapse/synapse_workspace_resource.go index 0437fba742a1..2abe184ad4df 100644 --- a/internal/services/synapse/synapse_workspace_resource.go +++ b/internal/services/synapse/synapse_workspace_resource.go @@ -679,7 +679,7 @@ func resourceSynapseWorkspaceUpdate(d *pluginsdk.ResourceData, meta interface{}) } future, err := identitySQLControlClient.CreateOrUpdate(ctx, id.ResourceGroup, id.Name, *sqlControlSettings) if err != nil { - return fmt.Errorf("Updating workspace identity control for SQL pool: %+v", err) + return fmt.Errorf("updating workspace identity control for SQL pool: %+v", err) } if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { return fmt.Errorf("waiting for update workspace identity control for SQL pool of %q: %+v", id, err) diff --git a/website/docs/r/synapse_sql_pool.html.markdown b/website/docs/r/synapse_sql_pool.html.markdown index a6bd16603368..599f1a886d20 100644 --- a/website/docs/r/synapse_sql_pool.html.markdown +++ b/website/docs/r/synapse_sql_pool.html.markdown @@ -50,6 +50,7 @@ resource "azurerm_synapse_sql_pool" "example" { synapse_workspace_id = azurerm_synapse_workspace.example.id sku_name = "DW100c" create_mode = "Default" + storage_account_type = "GRS" } ``` @@ -57,23 +58,25 @@ resource "azurerm_synapse_sql_pool" "example" { The following arguments are supported: -* `name` - (Required) The name which should be used for this Synapse SQL Pool. Changing this forces a new synapse SQL Pool to be created. +* `name` - (Required) The name which should be used for this Synapse SQL Pool. Changing this forces a new Synapse SQL Pool to be created. * `synapse_workspace_id` - (Required) The ID of Synapse Workspace within which this SQL Pool should be created. Changing this forces a new Synapse SQL Pool to be created. * `sku_name` - (Required) Specifies the SKU Name for this Synapse SQL Pool. Possible values are `DW100c`, `DW200c`, `DW300c`, `DW400c`, `DW500c`, `DW1000c`, `DW1500c`, `DW2000c`, `DW2500c`, `DW3000c`, `DW5000c`, `DW6000c`, `DW7500c`, `DW10000c`, `DW15000c` or `DW30000c`. -* `create_mode` - (Optional) Specifies how to create the SQL Pool. Valid values are: `Default`, `Recovery` or `PointInTimeRestore`. Must be `Default` to create a new database. Defaults to `Default`. Changing this forces a new resource to be created. +* `create_mode` - (Optional) Specifies how to create the SQL Pool. Valid values are: `Default`, `Recovery` or `PointInTimeRestore`. Must be `Default` to create a new database. Defaults to `Default`. Changing this forces a new Synapse SQL Pool to be created. -* `collation` - (Optional) The name of the collation to use with this pool, only applicable when `create_mode` is set to `Default`. Azure default is `SQL_LATIN1_GENERAL_CP1_CI_AS`. Changing this forces a new resource to be created. +* `collation` - (Optional) The name of the collation to use with this pool, only applicable when `create_mode` is set to `Default`. Azure default is `SQL_LATIN1_GENERAL_CP1_CI_AS`. Changing this forces a new Synapse SQL Pool to be created. * `data_encrypted` - (Optional) Is transparent data encryption enabled? * `recovery_database_id` - (Optional) The ID of the Synapse SQL Pool or SQL Database which is to back up, only applicable when `create_mode` is set to `Recovery`. Changing this forces a new Synapse SQL Pool to be created. -* `restore` - (Optional) A `restore` block as defined below. only applicable when `create_mode` is set to `PointInTimeRestore`. Changing this forces a new resource to be created. +* `restore` - (Optional) A `restore` block as defined below. Only applicable when `create_mode` is set to `PointInTimeRestore`. Changing this forces a new Synapse SQL Pool to be created. -* `geo_backup_policy_enabled` - (Optional) Is geo-backup policy enabled? Defaults to `true`. +* `geo_backup_policy_enabled` - (Optional) Is geo-backup policy enabled? Possible values include `true` or `false`. Defaults to `true`. + +* `storage_account_type` - (Optional) The storage account type that will be used to store backups for this Synapse SQL Pool. Possible values are `LRS` or `GRS`. Changing this forces a new Synapse SQL Pool to be created. * `tags` - (Optional) A mapping of tags which should be assigned to the Synapse SQL Pool. From 9771ac39fd42ea0c59f5d2b703fa8f426924968d Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Thu, 21 Sep 2023 23:07:40 -0600 Subject: [PATCH 269/336] updating to include #23217 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62702c288bfb..a021ad10c44b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## 3.74.0 (Unreleased) +NOTE: + +* `azurerm_synapse_sql_pool` - Users that have imported `azurerm_synapse_sql_pool` resources that were created outside of Terraform using an `LRS` storage account type will need to use `ignore_changes` to avoid the resource being recreated. + FEATURES: * **New Resource**: `azurerm_arc_resource_bridge_appliance` [GH-23108] @@ -47,6 +51,7 @@ BUG FIXES: * `azurerm_servicebus_queue` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] * `azurerm_servicebus_topic` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] * `azurerm_storage_account` - prevent sending unsupported blob properties in payload for `Storage` account kind [GH-23288] +* `azurerm_synapse_sql_pool` - expose `storage_account_type` [GH-23217] * `azurerm_windows_function_app` - fix a bug in setting the storage settings when using Elastic Premium plans [GH-21212] * `azurerm_windows_web_app` - fix docker app stack update [GH-23303] * `azurerm_windows_web_app_slot` - fix docker app stack update [GH-23303] From c00a18f73a6f6df5b9fc8a5a25c1c5a09efc919c Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Thu, 21 Sep 2023 23:08:39 -0600 Subject: [PATCH 270/336] updating note for #23217 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a021ad10c44b..4b335d737107 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ NOTE: -* `azurerm_synapse_sql_pool` - Users that have imported `azurerm_synapse_sql_pool` resources that were created outside of Terraform using an `LRS` storage account type will need to use `ignore_changes` to avoid the resource being recreated. +* `azurerm_synapse_sql_pool` - Users that have imported `azurerm_synapse_sql_pool` resources that were created outside of Terraform using an `LRS` storage account type will need to use `ignore_changes` to avoid the resource from being destroyed and recreated. FEATURES: From 6ccff863ca25e6414a5de23df97d6ae5b8823c09 Mon Sep 17 00:00:00 2001 From: kt Date: Thu, 21 Sep 2023 22:13:10 -0700 Subject: [PATCH 271/336] Update CHANGELOG.md --- CHANGELOG.md | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b335d737107..3931ea253d67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ ## 3.74.0 (Unreleased) -NOTE: +NOTES: -* `azurerm_synapse_sql_pool` - Users that have imported `azurerm_synapse_sql_pool` resources that were created outside of Terraform using an `LRS` storage account type will need to use `ignore_changes` to avoid the resource from being destroyed and recreated. +* `azurerm_synapse_sql_pool` - users that have imported `azurerm_synapse_sql_pool` resources that were created outside of Terraform using an `LRS` storage account type will need to use `ignore_changes` to avoid the resource from being destroyed and recreated. FEATURES: @@ -15,21 +15,21 @@ ENHANCEMENTS: * dependencies: updating to `v0.20230918.1115907` of `github.com/hashicorp/go-azure-sdk` [GH-23337] * dependencies: downgrading to `v1.12.5` of `github.com/rickb777/date` [GH-23296] * `mysql`: updating to use API Version `2022-01-01` [GH-23320] -* `azurerm_app_configuration` - add support for the `replica` block [GH-22452] -* `azurerm_bot_channel_directline` - add support for `user_upload_enabled`, `endpoint_parameters_enabled` and `storage_enabled` [GH-23149] -* `azurerm_container_app` - add support for scale rules [GH-23294] -* `azurerm_container_app_environment` - add support for zone redundancy [GH-23313] -* `azurerm_container_group` - add support for the `key_vault_user_identity_id` property for Customer Managed Keys [GH-23332] -* `azurerm_cosmosdb_account` - add support for MongoDB connection strings [GH-23331] -* `azurerm_data_factory_dataset_delimited_text` - add support for the `dynamic_file_system_enabled`, `dynamic_path_enabled` and `dynamic_filename_enabled` properties [GH-23261] -* `azurerm_data_factory_dataset_parquet` - add support for the `azure_blob_fs_location` block [GH-23261] -* `azurerm_monitor_diagnostic_setting` - add validation to ensure either `category` or `category_group` are supplied in `enabled_log` and `log` blocks [GH-23308] -* `azurerm_network_interface` - add support for the `auxiliary_mode` and `auxiliary_sku` properties [GH-22979] -* `azurerm_postgresql_flexible_server` - increase the maximum supported value for `storage_mb` [GH-23277] -* `azurerm_shared_image_version` - add support for the `replicated_region_deletion_enabled` and `target_region.exclude_from_latest_enabled` properties [GH-23147] -* `azurerm_storage_account` - add support for setting `domain_name` and `domain_guid` for `AADKERB` [GH-22833] -* `azurerm_storage_account_customer_managed_key` - add support for cross-tenant customer-managed keys with the `federated_identity_client_id` and `key_vault_uri` properties [GH-20356] -* `azurerm_web_application_firewall_policy` - add support for the `rate_limit_duration`, `rate_limit_threshold`, `group_rate_limit_by` and `request_body_inspect_limit_in_kb` properties [GH-23239] +* `azurerm_app_configuration` - support for the `replica` block [GH-22452] +* `azurerm_bot_channel_directline` - support for `user_upload_enabled`, `endpoint_parameters_enabled`, and `storage_enabled` [GH-23149] +* `azurerm_container_app` - support for scale rules [GH-23294] +* `azurerm_container_app_environment` - support for zone redundancy [GH-23313] +* `azurerm_container_group` - support for the `key_vault_user_identity_id` property for Customer Managed Keys [GH-23332] +* `azurerm_cosmosdb_account` - support for MongoDB connection strings [GH-23331] +* `azurerm_data_factory_dataset_delimited_text` - support for the `dynamic_file_system_enabled`, `dynamic_path_enabled`, and `dynamic_filename_enabled` properties [GH-23261] +* `azurerm_data_factory_dataset_parquet` - support for the `azure_blob_fs_location` block [GH-23261] +* `azurerm_monitor_diagnostic_setting` - validation to ensure either `category` or `category_group` are supplied in `enabled_log` and `log` blocks [GH-23308] +* `azurerm_network_interface` - support for the `auxiliary_mode` and `auxiliary_sku` properties [GH-22979] +* `azurerm_postgresql_flexible_server` - increased the maximum supported value for `storage_mb` [GH-23277] +* `azurerm_shared_image_version` - support for the `replicated_region_deletion_enabled` and `target_region.exclude_from_latest_enabled` properties [GH-23147] +* `azurerm_storage_account` - support for setting `domain_name` and `domain_guid` for `AADKERB` [GH-22833] +* `azurerm_storage_account_customer_managed_key` - support for cross-tenant customer-managed keys with the `federated_identity_client_id`, and `key_vault_uri` properties [GH-20356] +* `azurerm_web_application_firewall_policy` - support for the `rate_limit_duration`, `rate_limit_threshold`, `group_rate_limit_by`, and `request_body_inspect_limit_in_kb` properties [GH-23239] BUG FIXES: @@ -37,14 +37,14 @@ BUG FIXES: * `azurerm_api_management_api` - set the `service_url` property when importing the resource [GH-23011] * `azurerm_app_configuration` - prevent crash by nil checking the encryption configuration [GH-23302] * `azurerm_app_configuration_feature` - update `percentage_filter_value` to accept correct type of float [GH-23263] -* `azurerm_container_app` - Fix issue with `commands` and `args` being overwritten when using multiple containers [GH-23338] +* `azurerm_container_app` - fix an issue with `commands` and `args` being overwritten when using multiple containers [GH-23338] * `azurerm_key_vault_certificate` - fix issue where certificates couldn't be recovered anymore [GH-23204] -* `azurerm_key_vault_key` - ForceNew when `expiration_date` is removed from the config file [GH-23327] +* `azurerm_key_vault_key` - the ForceNew when `expiration_date` is removed from the config file [GH-23327] * `azurerm_linux_function_app` - fix a bug in setting the storage settings when using Elastic Premium plans [GH-21212] * `azurerm_linux_web_app` - fix docker app stack update [GH-23303] -* `azurerm_linux_web_app` - Fix crash in auto heal expansion [GH-21328] +* `azurerm_linux_web_app` - fix crash in auto heal expansion [GH-21328] * `azurerm_linux_web_app_slot` - fix docker app stack update [GH-23303] -* `azurerm_linux_web_app_slot` - Fix crash in auto heal expansion [GH-21328] +* `azurerm_linux_web_app_slot` - fix crash in auto heal expansion [GH-21328] * `azurerm_log_analytics_solution` - fix bug where the resource wasn't handling successful creation on subsequent applies [GH-23312] * `azurerm_management_group_subscription_association` - fix bug to correctly mark resource as gone if not found during read [GH-23335] * `azurerm_mssql_elasticpool` - remove check that prevents `license_type` from being set for certain skus [GH-23262] From 53afedb7cfb23aba0eff8123965cf7ab5b6f64d5 Mon Sep 17 00:00:00 2001 From: kt Date: Thu, 21 Sep 2023 22:15:40 -0700 Subject: [PATCH 272/336] v3.74.0 --- .release/provider-schema.json | 2 +- CHANGELOG.md | 94 +++++++++++++++++------------------ 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/.release/provider-schema.json b/.release/provider-schema.json index 70d0ce7bae58..0e2c40f232e7 100644 --- a/.release/provider-schema.json +++ b/.release/provider-schema.json @@ -1 +1 @@ -{"providerName":"azurerm","schemaVersion":"1","providerSchema":{"schema":{"auxiliary_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":3},"client_certificate":{"type":"TypeString","optional":true,"description":"Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_password":{"type":"TypeString","optional":true,"description":"The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_path":{"type":"TypeString","optional":true,"description":"The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service Principal using a Client Certificate."},"client_id":{"type":"TypeString","optional":true,"description":"The Client ID which should be used."},"client_id_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client ID which should be used."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"client_secret_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"disable_correlation_request_id":{"type":"TypeBool","optional":true,"description":"This will disable the x-ms-correlation-request-id header."},"disable_terraform_partner_id":{"type":"TypeBool","optional":true,"description":"This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified."},"environment":{"type":"TypeString","required":true,"description":"The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public."},"features":{"type":"TypeList","required":true,"elem":{"schema":{"api_management":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"app_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"application_insights":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_generated_rule":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cognitive_account":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_certificates_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_hardware_security_modules_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_managed_hardware_security_module` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_keys_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_secrets_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be permanently deleted (e.g purged), when destroyed"},"recover_soft_deleted_certificates":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be restored, instead of creating new ones"},"recover_soft_deleted_key_vaults":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be restored, instead of creating new ones"},"recover_soft_deleted_keys":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be restored, instead of creating new ones"},"recover_soft_deleted_secrets":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be restored, instead of creating new ones"}}},"maxItems":1},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"permanently_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"managed_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"expand_without_downtime":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_deletion_if_contains_resources":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_cancellation_on_destroy":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"template_deployment":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_nested_items_during_deletion":{"type":"TypeBool","required":true}}},"maxItems":1},"virtual_machine":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_os_disk_on_deletion":{"type":"TypeBool","optional":true,"default":false},"graceful_shutdown":{"type":"TypeBool","optional":true,"default":false},"skip_shutdown_and_force_delete":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"virtual_machine_scale_set":{"type":"TypeList","optional":true,"elem":{"schema":{"force_delete":{"type":"TypeBool","optional":true,"default":false},"roll_instances_when_required":{"type":"TypeBool","required":true},"scale_to_zero_before_deletion":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1,"minItems":1},"metadata_host":{"type":"TypeString","required":true,"description":"The Hostname which should be used for the Azure Metadata Service."},"msi_endpoint":{"type":"TypeString","optional":true,"description":"The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected automatically. "},"oidc_request_token":{"type":"TypeString","optional":true,"description":"The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_request_url":{"type":"TypeString","optional":true,"description":"The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_token":{"type":"TypeString","optional":true,"description":"The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"oidc_token_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"partner_id":{"type":"TypeString","optional":true,"description":"A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution."},"skip_provider_registration":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already registered?"},"storage_use_azuread":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?"},"subscription_id":{"type":"TypeString","optional":true,"description":"The Subscription ID which should be used."},"tenant_id":{"type":"TypeString","optional":true,"description":"The Tenant ID which should be used."},"use_cli":{"type":"TypeBool","optional":true,"default":true,"description":"Allow Azure CLI to be used for Authentication."},"use_msi":{"type":"TypeBool","optional":true,"description":"Allow Managed Service Identity to be used for Authentication."},"use_oidc":{"type":"TypeBool","optional":true,"description":"Allow OpenID Connect to be used for authentication"}},"resources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"country_code":{"type":"TypeString","optional":true,"description":"Country code of the B2C tenant. See https://aka.ms/B2CDataResidency for valid country codes.","computed":true,"forceNew":true},"data_residency_location":{"type":"TypeString","required":true,"description":"Location in which the B2C tenant is hosted and data resides. See https://aka.ms/B2CDataResidency for more information.","forceNew":true},"display_name":{"type":"TypeString","optional":true,"description":"The initial display name of the B2C tenant.","computed":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix.","forceNew":true},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"description":"Billing SKU for the B2C tenant. See https://aka.ms/b2cBilling for more information."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","optional":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"filtered_sync_enabled":{"type":"TypeBool","optional":true,"default":false},"initial_replica_set":{"type":"TypeList","required":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notifications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","optional":true,"default":false},"notify_global_admins":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","required":true},"external_access_enabled":{"type":"TypeBool","optional":true,"default":false},"pfx_certificate":{"type":"TypeString","required":true},"pfx_certificate_password":{"type":"TypeString","required":true},"public_certificate":{"type":"TypeString","computed":true}}},"maxItems":1},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","optional":true,"default":false},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"ntlm_v1_enabled":{"type":"TypeBool","optional":true,"default":false},"sync_kerberos_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_ntlm_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_on_prem_passwords":{"type":"TypeBool","optional":true,"default":false},"tls_v1_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_replica_set":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"external_access_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_trust":{"schema":{"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"trusted_domain_dns_ips":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":2},"trusted_domain_fqdn":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_advanced_threat_protection":{"schema":{"enabled":{"type":"TypeBool","required":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_analysis_services_server":{"schema":{"admin_users":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"backup_blob_container_uri":{"type":"TypeString","optional":true},"enable_power_bi_service":{"type":"TypeBool","optional":true},"ipv4_firewall_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"range_end":{"type":"TypeString","required":true},"range_start":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"querypool_connection_mode":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_full_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_connection":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}}},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_password":{"type":"TypeString","optional":true},"encoded_certificate":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","required":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}},"maxItems":10},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"delegation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"subscriptions_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","optional":true},"user_registration_enabled":{"type":"TypeBool","optional":true,"default":false},"validation_key":{"type":"TypeString","optional":true}}},"maxItems":1},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"management_api_url":{"type":"TypeString","computed":true},"min_api_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_sender_email":{"type":"TypeString","optional":true,"computed":true},"policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}}},"maxItems":1},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocols":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_http2":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"publisher_email":{"type":"TypeString","required":true},"publisher_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scm_url":{"type":"TypeString","computed":true},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_backend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls11":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls11":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_gcm_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_gcm_sha384_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"triple_des_ciphers_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"sign_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"sign_up":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"terms_of_service":{"type":"TypeList","required":true,"elem":{"schema":{"consent_required":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","required":true},"text":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"virtual_network_type":{"type":"TypeString","optional":true,"default":"None"},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_type":{"type":"TypeString","optional":true,"computed":true},"contact":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"content_format":{"type":"TypeString","required":true},"content_value":{"type":"TypeString","required":true},"wsdl_selector":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"license":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"oauth2_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization_server_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true}}},"maxItems":1},"openid_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"openid_provider_name":{"type":"TypeString","required":true}}},"maxItems":1},"path":{"type":"TypeString","optional":true,"computed":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision":{"type":"TypeString","required":true,"forceNew":true},"revision_description":{"type":"TypeString","optional":true},"service_url":{"type":"TypeString","optional":true,"computed":true},"soap_pass_through":{"type":"TypeBool","optional":true,"computed":true},"source_api_id":{"type":"TypeString","optional":true},"subscription_key_parameter_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"header":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true}}},"maxItems":1},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"terms_of_service_url":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"computed":true},"version_description":{"type":"TypeString","optional":true},"version_set_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"method":{"type":"TypeString","required":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"query_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"response":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}},"status_code":{"type":"TypeInt","required":true}}}},"template_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"url_template":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_tag":{"schema":{"api_operation_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_release":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"components":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","required":true},"definitions":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_tag":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_api_tag_description":{"schema":{"api_tag_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"external_documentation_description":{"type":"TypeString","optional":true},"external_documentation_url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"version_header_name":{"type":"TypeString","optional":true},"version_query_name":{"type":"TypeString","optional":true},"versioning_scheme":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_authorization_server":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authorization_endpoint":{"type":"TypeString","required":true},"authorization_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_authentication_method":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_registration_endpoint":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"default_scope":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"grant_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_owner_password":{"type":"TypeString","optional":true},"resource_owner_username":{"type":"TypeString","optional":true},"support_state":{"type":"TypeBool","optional":true},"token_body_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"token_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_backend":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"credentials":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","optional":true},"scheme":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"header":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"query":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true},"service_fabric_cluster":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_id":{"type":"TypeString","optional":true,"computed":true},"client_certificate_thumbprint":{"type":"TypeString","optional":true,"computed":true},"management_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"max_partition_resolution_retries":{"type":"TypeInt","required":true},"server_certificate_thumbprints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"server_x509_name":{"type":"TypeSet","optional":true,"elem":{"schema":{"issuer_certificate_thumbprint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"title":{"type":"TypeString","optional":true},"tls":{"type":"TypeList","optional":true,"elem":{"schema":{"validate_certificate_chain":{"type":"TypeBool","optional":true},"validate_certificate_name":{"type":"TypeBool","optional":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_certificate":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"data":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","computed":true},"key_vault_identity_client_id":{"type":"TypeString","optional":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_custom_domain":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_api_management_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_email_template":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true},"template_name":{"type":"TypeString","required":true,"forceNew":true},"title":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location_data":{"type":"TypeList","required":true,"elem":{"schema":{"city":{"type":"TypeString","optional":true},"district":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_api":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_certificate_authority":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"is_trusted":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_id":{"type":"TypeString","required":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"host_name":{"type":"TypeString","required":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request_client_certificate_enabled":{"type":"TypeBool","optional":true},"tls10_enabled":{"type":"TypeBool","optional":true},"tls11_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_global_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"external_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"custom","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aad":{"schema":{"allowed_tenants":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_tenant":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aadb2c":{"schema":{"allowed_tenant":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authority":{"type":"TypeString","required":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"password_reset_policy":{"type":"TypeString","optional":true},"profile_editing_policy":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_policy":{"type":"TypeString","required":true},"signin_tenant":{"type":"TypeString","required":true},"signup_policy":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_facebook":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_google":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_microsoft":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_twitter":{"schema":{"api_key":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_secret_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_logger":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"application_insights":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"instrumentation_key":{"type":"TypeString","required":true}}},"maxItems":1},"buffered":{"type":"TypeBool","optional":true,"default":true},"description":{"type":"TypeString","optional":true},"eventhub":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_named_value":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","optional":true},"value_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"secret_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_notification_recipient_email":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"email":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_notification_recipient_user":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_openid_connect_provider":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"metadata_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_policy":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"approval_required":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"published":{"type":"TypeBool","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"subscriptions_limit":{"type":"TypeInt","optional":true},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_tag":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_management_product_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_redis_cache":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"cache_location":{"type":"TypeString","optional":true,"default":"default"},"connection_string":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_subscription":{"schema":{"allow_tracing":{"type":"TypeBool","optional":true,"default":true},"api_id":{"type":"TypeString","optional":true,"forceNew":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","optional":true,"computed":true},"product_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true,"computed":true},"state":{"type":"TypeString","optional":true,"default":"submitted"},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_tag":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"confirmation":{"type":"TypeString","optional":true,"forceNew":true},"email":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","required":true},"last_name":{"type":"TypeString","required":true},"note":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","optional":true,"computed":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_identifier":{"type":"TypeString","optional":true}}},"maxItems":1},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","optional":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","optional":true,"default":"free"},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":7,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_feature":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"percentage_filter_value":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"targeting_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_rollout_percentage":{"type":"TypeInt","required":true},"groups":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"rollout_percentage":{"type":"TypeInt","required":true}}}},"users":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"timewindow_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","optional":true},"start":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"computed":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","required":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"kv"},"value":{"type":"TypeString","optional":true,"computed":true},"vault_key_reference":{"type":"TypeString","optional":true}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true},"frequency_unit":{"type":"TypeString","required":true},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false},"retention_period_in_days":{"type":"TypeInt","optional":true,"default":30},"start_time":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_mode":{"type":"TypeString","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_active_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_slot_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate":{"schema":{"app_service_plan_id":{"type":"TypeString","optional":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hosting_environment_profile_id":{"type":"TypeString","computed":true},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"pfx_blob":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate_binding":{"schema":{"app_service_name":{"type":"TypeString","computed":true},"certificate_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","computed":true},"hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","optional":true,"default":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","optional":true,"computed":true},"distinguished_name":{"type":"TypeString","optional":true,"computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","optional":true,"default":2048},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_type":{"type":"TypeString","optional":true,"default":"Standard"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","optional":true,"default":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_custom_hostname_binding":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_environment":{"schema":{"allowed_user_ip_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"front_end_scale_factor":{"type":"TypeInt","optional":true,"default":15},"internal_ip_address":{"type":"TypeString","computed":true},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","optional":true,"default":"I1"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_ip_address":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","optional":true,"default":true},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dedicated_host_count":{"type":"TypeInt","optional":true,"forceNew":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_hybrid_connection":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","required":true},"relay_id":{"type":"TypeString","required":true,"forceNew":true},"relay_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey"},"send_key_value":{"type":"TypeString","computed":true},"service_bus_namespace":{"type":"TypeString","computed":true},"service_bus_suffix":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_managed_certificate":{"schema":{"canonical_name":{"type":"TypeString","computed":true},"custom_hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"is_xenon":{"type":"TypeBool","optional":true},"kind":{"type":"TypeString","optional":true,"default":"Windows","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling":{"type":"TypeBool","optional":true},"reserved":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"size":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_app_service_public_certificate":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"blob":{"type":"TypeString","required":true,"forceNew":true},"certificate_location":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot_custom_hostname_binding":{"schema":{"app_service_slot_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_slot_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"slot_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_source_control":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows or Linux Web App.","forceNew":true},"branch":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The URL for the repository.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`.","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the App use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `false` to enable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`.","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_slot":{"schema":{"branch":{"type":"TypeString","optional":true,"description":"The URL for the repository","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Linux or Windows Web App Slot.","forceNew":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Slot use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `true` to disable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_gateway":{"schema":{"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"autoscale_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"max_capacity":{"type":"TypeInt","optional":true},"min_capacity":{"type":"TypeInt","required":true}}},"maxItems":1},"backend_address_pool":{"type":"TypeSet","required":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"backend_http_settings":{"type":"TypeSet","required":true,"elem":{"schema":{"affinity_cookie_name":{"type":"TypeString","optional":true},"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"connection_draining":{"type":"TypeList","optional":true,"elem":{"schema":{"drain_timeout_sec":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"cookie_based_affinity":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"pick_host_name_from_backend_address":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","required":true},"probe_id":{"type":"TypeString","computed":true},"probe_name":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"request_timeout":{"type":"TypeInt","optional":true,"default":30},"trusted_root_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"enable_http2":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"force_firewall_policy_association":{"type":"TypeBool","optional":true},"frontend_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"private_link_configuration_id":{"type":"TypeString","computed":true},"private_link_configuration_name":{"type":"TypeString","optional":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"minItems":1},"frontend_port":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true}}}},"gateway_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":2},"global":{"type":"TypeList","optional":true,"elem":{"schema":{"request_buffering_enabled":{"type":"TypeBool","required":true},"response_buffering_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"http_listener":{"type":"TypeSet","required":true,"elem":{"schema":{"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"firewall_policy_id":{"type":"TypeString","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_id":{"type":"TypeString","computed":true},"frontend_port_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"require_sni":{"type":"TypeBool","optional":true},"ssl_certificate_id":{"type":"TypeString","computed":true},"ssl_certificate_name":{"type":"TypeString","optional":true},"ssl_profile_id":{"type":"TypeString","computed":true},"ssl_profile_name":{"type":"TypeString","optional":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_link_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true}}}},"probe":{"type":"TypeSet","optional":true,"elem":{"schema":{"host":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"interval":{"type":"TypeInt","required":true},"match":{"type":"TypeList","optional":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"status_code":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"minimum_servers":{"type":"TypeInt","optional":true,"default":0},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"pick_host_name_from_backend_http_settings":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","optional":true},"protocol":{"type":"TypeString","required":true},"timeout":{"type":"TypeInt","required":true},"unhealthy_threshold":{"type":"TypeInt","required":true}}}},"redirect_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"include_path":{"type":"TypeBool","optional":true,"default":false},"include_query_string":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true},"target_listener_id":{"type":"TypeString","computed":true},"target_listener_name":{"type":"TypeString","optional":true},"target_url":{"type":"TypeString","optional":true}}}},"request_routing_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"http_listener_id":{"type":"TypeString","computed":true},"http_listener_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true},"rule_type":{"type":"TypeString","required":true},"url_path_map_id":{"type":"TypeString","computed":true},"url_path_map_name":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rewrite_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"rewrite_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"ignore_case":{"type":"TypeBool","optional":true,"default":false},"negate":{"type":"TypeBool","optional":true,"default":false},"pattern":{"type":"TypeString","required":true},"variable":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"request_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"response_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"rule_sequence":{"type":"TypeInt","required":true},"url":{"type":"TypeList","optional":true,"elem":{"schema":{"components":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","optional":true},"query_string":{"type":"TypeString","optional":true},"reroute":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"ssl_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"ssl_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"ssl_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"ssl_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"trusted_client_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verify_client_cert_issuer_dn":{"type":"TypeBool","optional":true,"default":false},"verify_client_certificate_revocation":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_client_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"trusted_root_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"url_path_map":{"type":"TypeList","optional":true,"elem":{"schema":{"default_backend_address_pool_id":{"type":"TypeString","computed":true},"default_backend_address_pool_name":{"type":"TypeString","optional":true},"default_backend_http_settings_id":{"type":"TypeString","computed":true},"default_backend_http_settings_name":{"type":"TypeString","optional":true},"default_redirect_configuration_id":{"type":"TypeString","computed":true},"default_redirect_configuration_name":{"type":"TypeString","optional":true},"default_rewrite_rule_set_id":{"type":"TypeString","computed":true},"default_rewrite_rule_set_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"paths":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true}}}}}}},"waf_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group_name":{"type":"TypeString","required":true},"rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}}}}},"enabled":{"type":"TypeBool","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"selector_match_operator":{"type":"TypeString","optional":true}}}},"file_upload_limit_mb":{"type":"TypeInt","optional":true,"default":100},"firewall_mode":{"type":"TypeString","required":true},"max_request_body_size_kb":{"type":"TypeInt","optional":true,"default":128},"request_body_check":{"type":"TypeBool","optional":true,"default":true},"rule_set_type":{"type":"TypeString","optional":true,"default":"OWASP"},"rule_set_version":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","required":true,"forceNew":true},"connection_string":{"type":"TypeString","computed":true},"daily_data_cap_in_gb":{"type":"TypeFloat","optional":true,"computed":true},"daily_data_cap_notifications_disabled":{"type":"TypeBool","optional":true,"computed":true},"disable_ip_masking":{"type":"TypeBool","optional":true,"default":false},"force_customer_storage_for_profiler":{"type":"TypeBool","optional":true,"default":false},"instrumentation_key":{"type":"TypeString","computed":true},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":90},"sampling_percentage":{"type":"TypeFloat","optional":true,"default":100},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_application_insights_analytics_item":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","required":true},"function_alias":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"time_created":{"type":"TypeString","computed":true},"time_modified":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_api_key":{"schema":{"api_key":{"type":"TypeString","computed":true},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"write_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_smart_detection_rule":{"schema":{"additional_email_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"send_emails_to_subscription_owners":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_standard_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","required":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"follow_redirects_enabled":{"type":"TypeBool","optional":true,"default":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"http_verb":{"type":"TypeString","optional":true,"default":"GET"},"parse_dependent_requests_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30},"validation_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"content":{"type":"TypeList","optional":true,"elem":{"schema":{"content_match":{"type":"TypeString","required":true},"ignore_case":{"type":"TypeBool","optional":true,"default":false},"pass_if_text_found":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"expected_status_code":{"type":"TypeInt","optional":true,"default":200},"ssl_cert_remaining_lifetime":{"type":"TypeInt","optional":true},"ssl_check_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"configuration":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook":{"schema":{"category":{"type":"TypeString","optional":true,"default":"workbook"},"data_json":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_id":{"type":"TypeString","optional":true,"default":"azure monitor"},"storage_container_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook_template":{"schema":{"author":{"type":"TypeString","optional":true},"galleries":{"type":"TypeList","required":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","optional":true,"default":0},"resource_type":{"type":"TypeString","optional":true,"default":"Azure Monitor"},"type":{"type":"TypeString","optional":true,"default":"workbook"}}},"minItems":1},"localized":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_data":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster":{"schema":{"agent_public_key_certificate":{"type":"TypeString","required":true,"forceNew":true},"agent_version":{"type":"TypeString","computed":true},"distribution":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"infrastructure":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"offering":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"total_core_count":{"type":"TypeInt","computed":true},"total_node_count":{"type":"TypeInt","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster_extension":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_machine_extension":{"schema":{"arc_machine_id":{"type":"TypeString","required":true,"forceNew":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true,"default":true},"force_update_tag":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_private_link_scope":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"open_enclave_policy_base64":{"type":"TypeString","optional":true},"policy":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"environment_type":{"type":"TypeString","optional":true}}}},"policy_signing_certificate_data":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sev_snp_policy_base64":{"type":"TypeString","optional":true},"sgx_enclave_policy_base64":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tpm_policy_base64":{"type":"TypeString","optional":true},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automanage_configuration":{"schema":{"antimalware":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusions":{"type":"TypeList","optional":true,"elem":{"schema":{"extensions":{"type":"TypeString","optional":true},"paths":{"type":"TypeString","optional":true},"processes":{"type":"TypeString","optional":true}}},"maxItems":1},"real_time_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_day":{"type":"TypeInt","optional":true,"default":8},"scheduled_scan_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_time_in_minutes":{"type":"TypeInt","optional":true,"default":0},"scheduled_scan_type":{"type":"TypeString","optional":true,"default":"Quick"}}},"maxItems":1},"automation_account_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_security_baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true,"default":"ApplyAndAutoCorrect"}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"instant_rp_retention_range_in_days":{"type":"TypeInt","optional":true,"default":5},"policy_name":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"daily_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Days"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_policy_type":{"type":"TypeString","optional":true,"default":"LongTermRetentionPolicy"},"weekly_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Weeks"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"schedule_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule_policy_type":{"type":"TypeString","optional":true,"default":"SimpleSchedulePolicy"},"schedule_run_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"schedule_run_frequency":{"type":"TypeString","optional":true,"default":"Daily"},"schedule_run_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"boot_diagnostics_enabled":{"type":"TypeBool","optional":true,"default":false},"defender_for_cloud_enabled":{"type":"TypeBool","optional":true,"default":false},"guest_configuration_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status_change_alert_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_account":{"schema":{"dsc_primary_access_key":{"type":"TypeString","computed":true},"dsc_secondary_access_key":{"type":"TypeString","computed":true},"dsc_server_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"key_source":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"base64":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"exportable":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"values":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"automation_certificate_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_classic_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_asset_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"subscription_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_service_principal":{"schema":{"application_id":{"type":"TypeString","required":true},"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_thumbprint":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_type":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"field":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"is_encrypted":{"type":"TypeBool","optional":true},"is_optional":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"is_global":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_credential":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_configuration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_embedded":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_verbose":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_nodeconfiguration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"configuration_name":{"type":"TypeString","computed":true},"content_embedded":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_hybrid_runbook_worker":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"ip":{"type":"TypeString","computed":true},"last_seen_date_time":{"type":"TypeString","computed":true},"registration_date_time":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"worker_group_name":{"type":"TypeString","required":true,"forceNew":true},"worker_id":{"type":"TypeString","required":true,"forceNew":true},"worker_name":{"type":"TypeString","computed":true},"worker_type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_hybrid_runbook_worker_group":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"credential_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_job_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"job_schedule_id":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on":{"type":"TypeString","optional":true,"forceNew":true},"runbook_name":{"type":"TypeString","required":true,"forceNew":true},"schedule_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_module":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"module_link":{"type":"TypeList","required":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_python3_package":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_uri":{"type":"TypeString","required":true,"forceNew":true},"content_version":{"type":"TypeString","optional":true,"forceNew":true},"hash_algorithm":{"type":"TypeString","optional":true,"forceNew":true},"hash_value":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_runbook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","optional":true,"computed":true},"description":{"type":"TypeString","optional":true},"draft":{"type":"TypeList","optional":true,"elem":{"schema":{"content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"creation_time":{"type":"TypeString","computed":true},"edit_mode_enabled":{"type":"TypeBool","optional":true},"last_modified_time":{"type":"TypeString","computed":true},"output_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true},"mandatory":{"type":"TypeBool","optional":true,"default":false},"position":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"job_schedule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"job_schedule_id":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_on":{"type":"TypeString","optional":true},"schedule_name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_activity_trace_level":{"type":"TypeInt","optional":true},"log_progress":{"type":"TypeBool","required":true},"log_verbose":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"runbook_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true,"computed":true},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"timezone":{"type":"TypeString","optional":true,"default":"Etc/UTC"},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_software_update_configuration":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"duration":{"type":"TypeString","optional":true,"default":"PT2H"},"error_code":{"type":"TypeString","computed":true},"error_meesage":{"type":"TypeString","computed":true},"error_message":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"non_azure_computer_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operating_system":{"type":"TypeString","optional":true,"computed":true},"post_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"pre_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"advanced_month_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"advanced_week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"creation_time":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"expiry_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"is_enabled":{"type":"TypeBool","optional":true,"default":true},"last_modified_time":{"type":"TypeString","computed":true},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}},"maxItems":1},"next_run":{"type":"TypeString","optional":true,"computed":true},"next_run_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"start_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true,"default":"Etc/UTC"}}},"maxItems":1},"target":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"locations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tag_filter":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeList","optional":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}}},"non_azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"function_alias":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_machine_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_automation_source_control":{"schema":{"automatic_sync":{"type":"TypeBool","optional":true,"default":false},"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"branch":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"folder_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_runbook_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_url":{"type":"TypeString","required":true},"security":{"type":"TypeList","required":true,"elem":{"schema":{"refresh_token":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"source_control_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_watcher":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"etag":{"type":"TypeString","optional":true},"execution_frequency_in_seconds":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script_name":{"type":"TypeString","required":true,"forceNew":true},"script_parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"script_run_on":{"type":"TypeString","required":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_webhook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiry_time":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on_worker_group":{"type":"TypeString","optional":true},"runbook_name":{"type":"TypeString","required":true},"uri":{"type":"TypeString","configMode":"Auto","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"default":3,"forceNew":true},"platform_update_domain_count":{"type":"TypeInt","optional":true,"default":5,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_container_storage_account":{"schema":{"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_file_share":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hourly":{"type":"TypeList","optional":true,"elem":{"schema":{"interval":{"type":"TypeInt","required":true},"start_time":{"type":"TypeString","required":true},"window_duration":{"type":"TypeInt","required":true}}},"maxItems":1},"time":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","required":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hour_duration":{"type":"TypeInt","optional":true},"hour_interval":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","required":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instant_restore_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prefix":{"type":"TypeString","required":true},"suffix":{"type":"TypeString","optional":true}}},"maxItems":1},"instant_restore_retention_days":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_type":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm_workload":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"protection_policy":{"type":"TypeSet","required":true,"elem":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","optional":true},"frequency_in_minutes":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","optional":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"policy_type":{"type":"TypeString","required":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"simple_retention":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1}}}},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeList","required":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1},"workload_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_protected_file_share":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_file_share_name":{"type":"TypeString","required":true,"forceNew":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":80,"read":5,"delete":80,"update":80}},"azurerm_backup_protected_vm":{"schema":{"backup_policy_id":{"type":"TypeString","optional":true},"exclude_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"protection_state":{"type":"TypeString","optional":true,"computed":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":80,"update":120}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","optional":true,"default":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ip_connect_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","optional":true,"default":2},"shareable_link_enabled":{"type":"TypeBool","optional":true,"default":false},"sku":{"type":"TypeString","optional":true,"default":"Basic"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"allowed_authentication_modes":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"account_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1},"node_management_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1}}},"maxItems":1},"pool_allocation_mode":{"type":"TypeString","optional":true,"default":"BatchService"},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_authentication_mode":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_account_node_identity":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"allow_updates":{"type":"TypeBool","optional":true,"default":true},"default_version":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate":{"type":"TypeString","required":true},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","optional":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","required":true,"forceNew":true},"thumbprint_algorithm":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_job":{"schema":{"batch_pool_id":{"type":"TypeString","required":true,"forceNew":true},"common_environment_properties":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"task_retry_maximum":{"type":"TypeInt","optional":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","optional":true,"default":"PT15M"},"formula":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"store_location":{"type":"TypeString","required":true},"store_name":{"type":"TypeString","optional":true},"visibility":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"type":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"data_disks":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"default":"ReadOnly"},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","required":true}}}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"extensions":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","optional":true}}}},"fixed_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"node_deallocation_method":{"type":"TypeString","optional":true},"resize_timeout":{"type":"TypeString","optional":true,"default":"PT15M"},"target_dedicated_nodes":{"type":"TypeInt","optional":true,"default":1},"target_low_priority_nodes":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inter_node_communication":{"type":"TypeString","optional":true,"default":"Enabled"},"license_type":{"type":"TypeString","optional":true},"max_tasks_per_node":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"account_name":{"type":"TypeString","required":true},"blobfuse_options":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"identity_id":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"sas_key":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"azure_file_url":{"type":"TypeString","required":true},"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true}}}},"cifs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"nfs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"dynamic_vnet_assignment_scope":{"type":"TypeString","optional":true,"default":"none","forceNew":true},"endpoint_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port_range":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"access":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","required":true,"forceNew":true},"source_port_ranges":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString","default":"*"}}}}},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"public_address_provisioning_type":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"node_agent_sku_id":{"type":"TypeString","required":true,"forceNew":true},"node_placement":{"type":"TypeList","optional":true,"elem":{"schema":{"policy":{"type":"TypeString","optional":true,"default":"Regional"}}}},"os_disk_placement":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_task":{"type":"TypeList","optional":true,"elem":{"schema":{"command_line":{"type":"TypeString","required":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"run_options":{"type":"TypeString","optional":true},"working_directory":{"type":"TypeString","optional":true}}}},"resource_file":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","optional":true},"blob_prefix":{"type":"TypeString","optional":true},"file_mode":{"type":"TypeString","optional":true},"file_path":{"type":"TypeString","optional":true},"http_url":{"type":"TypeString","optional":true},"storage_container_url":{"type":"TypeString","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"task_retry_maximum":{"type":"TypeInt","optional":true},"user_identity":{"type":"TypeList","required":true,"elem":{"schema":{"auto_user":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","optional":true,"default":"NonAdmin"},"scope":{"type":"TypeString","optional":true,"default":"Task"}}},"maxItems":1},"user_name":{"type":"TypeString","optional":true}}},"maxItems":1},"wait_for_success":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"stop_pending_resize_operation":{"type":"TypeBool","optional":true,"default":false},"storage_image_reference":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"target_node_communication_mode":{"type":"TypeString","optional":true},"task_scheduling_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","optional":true,"computed":true}}}},"user_accounts":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","required":true},"linux_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gid":{"type":"TypeInt","optional":true},"ssh_private_key":{"type":"TypeString","optional":true},"uid":{"type":"TypeInt","optional":true}}}},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"windows_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}}}}}},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_billing_account_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"billing_account_id":{"type":"TypeString","required":true,"forceNew":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_blueprint_assignment":{"schema":{"blueprint_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_exclude_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":200},"lock_exclude_principals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"lock_mode":{"type":"TypeString","optional":true,"default":"None"},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeString","optional":true},"target_subscription_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","computed":true},"version_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_bot_channel_alexa":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skill_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_direct_line_speech":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"cognitive_account_id":{"type":"TypeString","optional":true},"cognitive_service_access_key":{"type":"TypeString","required":true},"cognitive_service_location":{"type":"TypeString","required":true},"custom_speech_model_id":{"type":"TypeString","optional":true},"custom_voice_deployment_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_directline":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site":{"type":"TypeSet","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"enhanced_authentication_enabled":{"type":"TypeBool","optional":true,"default":false},"id":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key2":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"trusted_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"v1_allowed":{"type":"TypeBool","optional":true,"default":true},"v3_allowed":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_email":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"email_address":{"type":"TypeString","required":true},"email_password":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_facebook":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"facebook_application_id":{"type":"TypeString","required":true},"facebook_application_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"page":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_line":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"line_channel":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"secret":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_ms_teams":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"calling_web_hook":{"type":"TypeString","optional":true,"computed":true},"deployment_environment":{"type":"TypeString","optional":true,"default":"CommercialDeployment"},"enable_calling":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_slack":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"landing_page_url":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signing_secret":{"type":"TypeString","optional":true},"verification_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_sms":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sms_channel_account_security_id":{"type":"TypeString","required":true},"sms_channel_auth_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_web_chat":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channels_registration":{"schema":{"cmk_key_vault_url":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"icon_url":{"type":"TypeString","optional":true,"computed":true},"isolated_network_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_connection":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeString","optional":true},"service_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_service_azure_bot":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true},"developer_app_insights_key":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_msi_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_type":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_web_app":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint":{"schema":{"content_types_to_compress":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"post_arg_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}}},"fqdn":{"type":"TypeString","computed":true},"geo_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"country_codes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"relative_path":{"type":"TypeString","required":true}}}},"global_delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_compression_enabled":{"type":"TypeBool","optional":true},"is_http_allowed":{"type":"TypeBool","optional":true,"default":true},"is_https_allowed":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimization_type":{"type":"TypeString","optional":true},"origin":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true,"forceNew":true},"http_port":{"type":"TypeInt","optional":true,"default":80,"forceNew":true},"https_port":{"type":"TypeInt","optional":true,"default":443,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"origin_host_header":{"type":"TypeString","optional":true},"origin_path":{"type":"TypeString","optional":true,"computed":true},"probe_path":{"type":"TypeString","optional":true,"computed":true},"profile_name":{"type":"TypeString","required":true,"forceNew":true},"querystring_caching_behaviour":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint_custom_domain":{"schema":{"cdn_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_type":{"type":"TypeString","required":true},"protocol_type":{"type":"TypeString","required":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"user_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","optional":true,"computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"computed":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"dns_zone_id":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tls":{"type":"TypeList","required":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","optional":true,"computed":true},"certificate_type":{"type":"TypeString","optional":true,"default":"ManagedCertificate"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain_association":{"schema":{"cdn_frontdoor_custom_domain_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_route_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin":{"schema":{"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name_check_enabled":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","optional":true,"computed":true},"health_probes_enabled":{"type":"TypeBool","optional":true,"computed":true},"host_name":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","optional":true,"default":80},"https_port":{"type":"TypeInt","optional":true,"default":443},"name":{"type":"TypeString","required":true,"forceNew":true},"origin_host_header":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","optional":true,"default":1},"private_link":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"private_link_target_id":{"type":"TypeString","required":true},"request_message":{"type":"TypeString","optional":true,"default":"Access request for CDN FrontDoor Private Link Origin"},"target_type":{"type":"TypeString","optional":true}}},"maxItems":1},"weight":{"type":"TypeInt","optional":true,"default":500}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"health_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"protocol":{"type":"TypeString","required":true},"request_type":{"type":"TypeString","optional":true,"default":"HEAD"}}},"maxItems":1},"load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","optional":true,"default":50},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","optional":true,"default":10},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","optional":true,"default":120},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route":{"schema":{"cache":{"type":"TypeList","optional":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"content_types_to_compress":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"query_string_caching_behavior":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"query_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"cdn_frontdoor_custom_domain_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true},"cdn_frontdoor_origin_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_origin_path":{"type":"TypeString","optional":true},"cdn_frontdoor_rule_set_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"https_redirect_enabled":{"type":"TypeBool","optional":true,"default":true},"link_to_default_domain":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"supported_protocols":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route_disable_link_to_default_domain":{"schema":{"cdn_frontdoor_custom_domain_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_route_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"route_configuration_override_action":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_behavior":{"type":"TypeString","optional":true},"cache_duration":{"type":"TypeString","optional":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","optional":true},"compression_enabled":{"type":"TypeBool","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true},"query_string_caching_behavior":{"type":"TypeString","optional":true},"query_string_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":100}}},"maxItems":1},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_fragment":{"type":"TypeString","optional":true,"default":""},"destination_hostname":{"type":"TypeString","required":true},"destination_path":{"type":"TypeString","optional":true,"default":""},"query_string":{"type":"TypeString","optional":true,"default":""},"redirect_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":false},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"behavior_on_match":{"type":"TypeString","optional":true,"default":"Continue"},"cdn_frontdoor_rule_set_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_rule_set_name":{"type":"TypeString","computed":true},"conditions":{"type":"TypeList","optional":true,"elem":{"schema":{"client_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"cookie_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"host_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":4},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"is_device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"post_args_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"post_args_name":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString","default":"HTTP"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"server_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"socket_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"ssl_protocol_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":3},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_filename_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_profile_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_frontdoor_security_policy":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"security_policies":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"firewall":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"association":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"domain":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"active":{"type":"TypeBool","computed":true},"cdn_frontdoor_domain_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":500},"patterns_to_match":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}}},"maxItems":1},"cdn_frontdoor_firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account":{"schema":{"custom_question_answering_search_service_id":{"type":"TypeString","optional":true},"custom_question_answering_search_service_key":{"type":"TypeString","optional":true},"custom_subdomain_name":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"dynamic_throttling_enabled":{"type":"TypeBool","optional":true},"endpoint":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metrics_advisor_aad_client_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_aad_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_super_user_name":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_website_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"qna_runtime_endpoint":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"storage":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account_customer_managed_key":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_deployment":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"model":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"format":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"rai_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"scale":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"family":{"type":"TypeString","optional":true,"forceNew":true},"size":{"type":"TypeString","optional":true,"forceNew":true},"tier":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","optional":true,"default":"United States","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","required":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"minItems":1},"certificate_based_security_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"pem_public_key":{"type":"TypeString","required":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_management_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to host this Container App.","forceNew":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The Dapr Application Identifier."},"app_port":{"type":"TypeInt","optional":true,"description":"The port which the application is listening on. This is the same as the `ingress` port."},"app_protocol":{"type":"TypeString","optional":true,"default":"http","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`."}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","optional":true,"default":false,"description":"Should this ingress allow insecure connections?"},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","optional":true,"default":"Disabled","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`"},"certificate_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate."}}},"maxItems":1},"external_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Is this an external Ingress."},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","required":true,"description":"The target port on the container for the Ingress traffic."},"traffic_weight":{"type":"TypeList","required":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"description":"The label to apply to the revision as a name prefix for routing traffic."},"latest_revision":{"type":"TypeBool","optional":true,"default":false,"description":"This traffic Weight relates to the latest stable Container Revision."},"percentage":{"type":"TypeInt","required":true,"description":"The percentage of traffic to send to this revision."},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted."}}}},"transport":{"type":"TypeString","optional":true,"default":"auto","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`"}}},"maxItems":1},"latest_revision_fqdn":{"type":"TypeString","description":"The FQDN of the Latest Revision of the Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"The name for this Container App.","forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true,"description":"ID of the System or User Managed Identity used to pull images from the Container Registry"},"password_secret_name":{"type":"TypeString","optional":true,"description":"The name of the Secret Reference containing the password value for this user on the Container Registry."},"server":{"type":"TypeString","required":true,"description":"The hostname for the Container Registry."},"username":{"type":"TypeString","optional":true,"description":"The username to use for this Container Registry."}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision_mode":{"type":"TypeString","required":true},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeList","required":true,"elem":{"schema":{"args":{"type":"TypeList","optional":true,"description":"A list of args to pass to the container.","elem":{"type":"TypeString"}},"command":{"type":"TypeList","optional":true,"description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`"},"env":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the environment variable for the container."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of the secret that contains the value for this environment variable."},"value":{"type":"TypeString","optional":true,"description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used"}}},"minItems":1},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","required":true,"description":"The image to use to create the container."},"liveness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"initial_delay":{"type":"TypeInt","optional":true,"default":1,"description":"The time in seconds to wait after the container has started before the probe is started."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"memory":{"type":"TypeString","required":true,"description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`"},"name":{"type":"TypeString","required":true,"description":"The name of the container."},"readiness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"success_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`."},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"startup_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"volume_mounts":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Volume to be mounted in the container."},"path":{"type":"TypeString","required":true,"description":"The path in the container at which to mount this volume."}}}}}},"minItems":1},"max_replicas":{"type":"TypeInt","optional":true,"default":10,"description":"The maximum number of replicas for this container."},"min_replicas":{"type":"TypeInt","optional":true,"description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment":{"schema":{"dapr_application_insights_connection_string":{"type":"TypeString","optional":true,"description":"Application Insights connection string used by Dapr to export Service to Service communication telemetry.","forceNew":true},"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","optional":true,"description":"The existing Subnet to use for the Container Apps Control Plane. **NOTE:** The Subnet must have a `/21` or larger address space.","forceNew":true},"internal_load_balancer_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Container Environment operate in Internal Load Balancing Mode? Defaults to `false`. **Note:** can only be set to `true` if `infrastructure_subnet_id` is specified.","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true,"description":"The ID for the Log Analytics Workspace to link this Container Apps Managed Environment to.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment.","forceNew":true},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_certificate":{"schema":{"certificate_blob_base64":{"type":"TypeString","required":true,"description":"The Certificate Private Key as a base64 encoded PFX or PEM.","forceNew":true},"certificate_password":{"type":"TypeString","required":true,"description":"The password for the Certificate.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Environment Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_dapr_component":{"schema":{"component_type":{"type":"TypeString","required":true,"description":"The Dapr Component Type. For example `state.azure.blobstorage`.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Dapr component on.","forceNew":true},"ignore_errors":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Dapr sidecar to continue initialisation if the component fails to load. Defaults to `false`"},"init_timeout":{"type":"TypeString","optional":true,"default":"5s","description":"The component initialisation timeout in ISO8601 format. e.g. `5s`, `2h`, `1m`. Defaults to `5s`."},"metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Metadata configuration item."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of a secret specified in the `secrets` block that contains the value for this metadata configuration item."},"value":{"type":"TypeString","optional":true,"description":"The value for this metadata configuration item."}}},"minItems":1},"name":{"type":"TypeString","required":true,"description":"The name for this Dapr Component.","forceNew":true},"scopes":{"type":"TypeList","optional":true,"description":"A list of scopes to which this component applies. e.g. a Container App's `dapr.app_id` value.","elem":{"type":"TypeString"},"minItems":1},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"version":{"type":"TypeString","required":true,"description":"The version of the component."}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_storage":{"schema":{"access_key":{"type":"TypeString","required":true,"description":"The Storage Account Access Key."},"access_mode":{"type":"TypeString","required":true,"description":"The access mode to connect this storage to the Container App. Possible values include `ReadOnly` and `ReadWrite`.","forceNew":true},"account_name":{"type":"TypeString","required":true,"description":"The Azure Storage Account in which the Share to be used is located.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to which this storage belongs.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name for this Storage.","forceNew":true},"share_name":{"type":"TypeString","required":true,"description":"The name of the Azure Storage Share to use.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_connected_registry":{"schema":{"audit_log_enabled":{"type":"TypeBool","optional":true,"default":false},"client_token_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"log_level":{"type":"TypeString","optional":true,"default":"None"},"mode":{"type":"TypeString","optional":true,"default":"ReadWrite","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"digest":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tag":{"type":"TypeString","optional":true}}}},"parent_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"sync_message_ttl":{"type":"TypeString","optional":true,"default":"P1D"},"sync_schedule":{"type":"TypeString","optional":true,"default":"* * * * *"},"sync_token_id":{"type":"TypeString","required":true,"forceNew":true},"sync_window":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_group":{"schema":{"container":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"forceNew":true},"cpu_limit":{"type":"TypeFloat","optional":true},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"gpu":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"gpu_limit":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"sku":{"type":"TypeString","optional":true}}},"maxItems":1},"image":{"type":"TypeString","required":true,"forceNew":true},"liveness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"memory":{"type":"TypeFloat","required":true,"forceNew":true},"memory_limit":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ports":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"readiness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"diagnostics":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"log_analytics":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"log_type":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_key":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"dns_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"nameservers":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"options":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"search_domains":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"dns_name_label":{"type":"TypeString","optional":true,"forceNew":true},"dns_name_label_reuse_policy":{"type":"TypeString","optional":true,"default":"Unsecure"},"exposed_port":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_registry_credential":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"username":{"type":"TypeString","optional":true,"forceNew":true}}}},"init_container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"ip_address":{"type":"TypeString","computed":true},"ip_address_type":{"type":"TypeString","optional":true,"default":"Public","forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile_id":{"type":"TypeString","optional":true,"computed":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restart_policy":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"subnet_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"anonymous_pull_enabled":{"type":"TypeBool","optional":true},"data_endpoint_enabled":{"type":"TypeBool","optional":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"identity_client_id":{"type":"TypeString","required":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"georeplications":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true},"regional_endpoint_enabled":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_bypass_option":{"type":"TypeString","optional":true,"default":"AzureServices"},"network_rule_set":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_range":{"type":"TypeString","required":true}}}},"virtual_network":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"quarantine_policy_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trust_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_agent_pool":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"default":"S1","forceNew":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task":{"schema":{"agent_pool_name":{"type":"TypeString","optional":true},"agent_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"cpu":{"type":"TypeInt","required":true}}},"maxItems":1},"base_image_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"update_trigger_endpoint":{"type":"TypeString","optional":true},"update_trigger_payload_type":{"type":"TypeString","optional":true}}},"maxItems":1},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"docker_step":{"type":"TypeList","optional":true,"elem":{"schema":{"arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"cache_enabled":{"type":"TypeBool","optional":true,"default":true},"context_access_token":{"type":"TypeString","required":true},"context_path":{"type":"TypeString","required":true},"dockerfile_path":{"type":"TypeString","required":true},"image_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"push_enabled":{"type":"TypeBool","optional":true,"default":true},"secret_arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target":{"type":"TypeString","optional":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"encoded_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_content":{"type":"TypeString","required":true},"value_content":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"file_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_file_path":{"type":"TypeString","required":true},"value_file_path":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"is_system_task":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"log_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"architecture":{"type":"TypeString","optional":true},"os":{"type":"TypeString","required":true},"variant":{"type":"TypeString","optional":true}}},"maxItems":1},"registry_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"custom":{"type":"TypeSet","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"username":{"type":"TypeString","optional":true}}}},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"source_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"expire_in_seconds":{"type":"TypeInt","optional":true},"refresh_token":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"repository_url":{"type":"TypeString","required":true},"source_type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":3600},"timer_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task_schedule_run_now":{"schema":{"container_registry_task_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_map_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_token_password":{"schema":{"container_registry_token_id":{"type":"TypeString","required":true,"forceNew":true},"password1":{"type":"TypeList","required":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1},"password2":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_webhook":{"schema":{"actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"custom_headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"registry_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":""},"service_uri":{"type":"TypeString","required":true},"status":{"type":"TypeString","optional":true,"default":"enabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_account":{"schema":{"access_key_metadata_writes_enabled":{"type":"TypeBool","optional":true,"default":true},"analytical_storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"schema_type":{"type":"TypeString","required":true}}},"maxItems":1},"analytical_storage_enabled":{"type":"TypeBool","optional":true,"default":false},"backup":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"interval_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"retention_in_hours":{"type":"TypeInt","optional":true,"computed":true},"storage_redundancy":{"type":"TypeString","optional":true,"computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"capabilities":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}},"capacity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"total_throughput_limit":{"type":"TypeInt","required":true}}},"maxItems":1},"connection_strings":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"consistency_policy":{"type":"TypeList","required":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","required":true},"max_interval_in_seconds":{"type":"TypeInt","optional":true,"computed":true},"max_staleness_prefix":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"create_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"default_identity_type":{"type":"TypeString","optional":true,"default":"FirstPartyIdentity"},"enable_automatic_failover":{"type":"TypeBool","optional":true,"default":false},"enable_free_tier":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"enable_multiple_write_locations":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeSet","required":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","required":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_range_filter":{"type":"TypeString","optional":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"kind":{"type":"TypeString","optional":true,"default":"GlobalDocumentDB","forceNew":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"mongo_server_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acl_bypass_for_azure_services":{"type":"TypeBool","optional":true,"default":false},"network_acl_bypass_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"offer_type":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"primary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"primary_sql_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"elem":{"schema":{"database":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"collection_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"restore_timestamp_in_utc":{"type":"TypeString","required":true,"forceNew":true},"source_cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"secondary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"secondary_sql_connection_string":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_cassandra_cluster":{"schema":{"authentication_method":{"type":"TypeString","optional":true,"default":"Cassandra"},"client_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_admin_password":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"external_gossip_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"external_seed_node_ip_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"hours_between_backups":{"type":"TypeInt","optional":true,"default":24},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repair_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"3.11","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_datacenter":{"schema":{"availability_zones_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_storage_customer_key_uri":{"type":"TypeString","optional":true},"base64_encoded_yaml_fragment":{"type":"TypeString","optional":true},"cassandra_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"disk_count":{"type":"TypeInt","optional":true},"disk_sku":{"type":"TypeString","optional":true,"default":"P30"},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_customer_key_uri":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"default":3},"sku_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_cosmosdb_cassandra_keyspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_table":{"schema":{"analytical_storage_ttl":{"type":"TypeInt","optional":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cassandra_keyspace_id":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schema":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_key":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"order_by":{"type":"TypeString","required":true}}}},"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"partition_key":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_graph":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"index_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"automatic":{"type":"TypeBool","optional":true,"default":true},"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"included_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"indexing_mode":{"type":"TypeString","required":true},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_collection":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl_seconds":{"type":"TypeInt","optional":true},"index":{"type":"TypeSet","optional":true,"elem":{"schema":{"keys":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","optional":true,"default":false}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shard_key":{"type":"TypeString","optional":true,"forceNew":true},"system_indexes":{"type":"TypeList","computed":true,"elem":{"schema":{"keys":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","computed":true}}}},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_role_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"privilege":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource":{"type":"TypeList","required":true,"elem":{"schema":{"collection_name":{"type":"TypeString","optional":true},"db_name":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"role_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_user_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_notebook_workspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_endpoint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_postgresql_cluster":{"schema":{"administrator_login_password":{"type":"TypeString","required":true},"citus_version":{"type":"TypeString","optional":true,"computed":true},"coordinator_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":true},"coordinator_server_edition":{"type":"TypeString","optional":true,"default":"GeneralPurpose"},"coordinator_storage_quota_in_mb":{"type":"TypeInt","required":true},"coordinator_vcore_count":{"type":"TypeInt","required":true},"earliest_restore_time":{"type":"TypeString","computed":true},"ha_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","required":true},"node_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":false},"node_server_edition":{"type":"TypeString","optional":true,"default":"MemoryOptimized"},"node_storage_quota_in_mb":{"type":"TypeInt","optional":true,"computed":true},"node_vcores":{"type":"TypeInt","optional":true,"computed":true},"point_in_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"preferred_primary_zone":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shards_on_coordinator_enabled":{"type":"TypeBool","optional":true,"computed":true},"source_location":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"sql_version":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_postgresql_coordinator_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_firewall_rule":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_node_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_role":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_sql_container":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"indexing_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"included_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"indexing_mode":{"type":"TypeString","optional":true,"default":"consistent"},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_dedicated_gateway":{"schema":{"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","required":true},"instance_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_function":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_assignment":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"assignable_scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeSet","required":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"CustomRole","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_stored_procedure":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_trigger":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operation":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_table":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_anomaly_alert":{"schema":{"display_name":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"email_subject":{"type":"TypeString","required":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_management_scheduled_action":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name":{"type":"TypeString","required":true},"email_address_sender":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":20,"minItems":1},"email_subject":{"type":"TypeString","required":true},"end_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","optional":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_date":{"type":"TypeString","required":true},"view_id":{"type":"TypeString","required":true,"forceNew":true},"weeks_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_custom_ip_prefix":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"commissioning_enabled":{"type":"TypeBool","optional":true,"default":false},"internet_advertising_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_custom_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roa_validity_end_date":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wan_validation_signed_message":{"type":"TypeString","optional":true,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":540,"read":5,"delete":1020,"update":1020}},"azurerm_custom_provider":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_type":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"routing_type":{"type":"TypeString","optional":true,"default":"Proxy"}}}},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validation":{"type":"TypeSet","optional":true,"elem":{"schema":{"specification":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard_grafana":{"schema":{"api_key_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse"},"azure_monitor_workspace_integrations":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"deterministic_outbound_ip_enabled":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"grafana_version":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory":{"schema":{"customer_managed_key_id":{"type":"TypeString","optional":true},"customer_managed_key_identity_id":{"type":"TypeString","optional":true},"github_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"global_parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_custom_dataset":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_azure_blob":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_binary":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sftp_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_cosmosdb_sqlapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"collection_name":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_delimited_text":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_fs_location":{"type":"TypeList","optional":true,"elem":{"schema":{"file_system":{"type":"TypeString","required":true},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"column_delimiter":{"type":"TypeString","optional":true,"default":","},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"escape_character":{"type":"TypeString","optional":true,"default":"\\"},"first_row_as_header":{"type":"TypeBool","optional":true,"default":false},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"null_value":{"type":"TypeString","optional":true,"default":""},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"quote_character":{"type":"TypeString","optional":true,"default":"\""},"row_delimiter":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_http":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"relative_url":{"type":"TypeString","optional":true},"request_body":{"type":"TypeString","optional":true},"request_method":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_json":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_parquet":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precision":{"type":"TypeInt","optional":true},"scale":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","optional":true}}}},"schema_name":{"type":"TypeString","optional":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_sql_server_table":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_flowlet_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure":{"schema":{"cleanup_enabled":{"type":"TypeBool","optional":true,"computed":true},"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0},"virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure_ssis":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"dual_standby_pair_name":{"type":"TypeString","optional":true},"elastic_pool_name":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"express_custom_setup":{"type":"TypeList","optional":true,"elem":{"schema":{"command_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"password":{"type":"TypeString","optional":true},"target_name":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"component":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_license":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"environment":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"powershell_version":{"type":"TypeString","optional":true}}},"maxItems":1},"express_vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"package_store":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","optional":true},"self_hosted_integration_runtime_name":{"type":"TypeString","required":true},"staging_storage_linked_service_name":{"type":"TypeString","required":true}}},"maxItems":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"public_ips":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2},"subnet_id":{"type":"TypeString","optional":true},"subnet_name":{"type":"TypeString","optional":true},"vnet_id":{"type":"TypeString","optional":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_managed":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true,"default":"Basic"},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","required":true},"vnet_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_self_hosted":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_authorization_key":{"type":"TypeString","computed":true},"rbac_authorization":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"secondary_authorization_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_custom_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_blob_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"connection_string_insecure":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_sas_token":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sas_uri":{"type":"TypeString","optional":true},"service_endpoint":{"type":"TypeString","optional":true},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"service_principal_linked_key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_kind":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_databricks":{"schema":{"access_token":{"type":"TypeString","optional":true},"adb_domain":{"type":"TypeString","required":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"existing_cluster_id":{"type":"TypeString","optional":true},"instance_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"instance_pool_id":{"type":"TypeString","required":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":1}}},"maxItems":1},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"msi_work_space_resource_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"new_cluster_config":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"custom_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"driver_node_type":{"type":"TypeString","optional":true},"init_scripts":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"log_destination":{"type":"TypeString","optional":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":"1"},"node_type":{"type":"TypeString","required":true},"spark_config":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"spark_environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_file_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"file_share":{"type":"TypeString","optional":true},"host":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"user_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_function":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key":{"type":"TypeString","optional":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_search":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted_credential":{"type":"TypeString","computed":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"search_service_key":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_sql_database":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_table_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb":{"schema":{"account_endpoint":{"type":"TypeString","optional":true},"account_key":{"type":"TypeString","optional":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb_mongoapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"server_version_is_32_or_higher":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_data_lake_storage_gen2":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"storage_account_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_key_vault":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_kusto":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"kusto_database_name":{"type":"TypeString","required":true},"kusto_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odata":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odbc":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sftp":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"host":{"type":"TypeString","required":true},"host_key_fingerprint":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true},"skip_host_key_validation":{"type":"TypeBool","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sql_server":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_synapse":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_web":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_managed_private_endpoint":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"fqdns":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_factory_pipeline":{"schema":{"activities_json":{"type":"TypeString","optional":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"concurrency":{"type":"TypeInt","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"moniter_metrics_after_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_blob_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"blob_path_begins_with":{"type":"TypeString","optional":true},"blob_path_ends_with":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"ignore_empty_blobs":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_custom_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"eventgrid_topic_id":{"type":"TypeString","required":true,"forceNew":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_schedule":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","optional":true,"default":"Minute"},"interval":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"pipeline_name":{"type":"TypeString","optional":true,"computed":true},"pipeline_parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":7},"hours":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","optional":true},"weekday":{"type":"TypeString","required":true}}},"minItems":1}}},"maxItems":1,"minItems":1},"start_time":{"type":"TypeString","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_tumbling_window":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"delay":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true,"forceNew":true},"interval":{"type":"TypeInt","required":true,"forceNew":true},"max_concurrency":{"type":"TypeInt","optional":true,"default":50},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retry":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeInt","optional":true,"default":30}}},"maxItems":1},"start_time":{"type":"TypeString","required":true,"forceNew":true},"trigger_dependency":{"type":"TypeSet","optional":true,"elem":{"schema":{"offset":{"type":"TypeString","optional":true},"size":{"type":"TypeString","optional":true},"trigger_name":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_blob_storage":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_disk":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"disk_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_postgresql":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"database_credential_key_vault_secret_id":{"type":"TypeString","optional":true},"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_blob_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"retention_duration":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_disk":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_postgresql":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true},"days_of_week":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"months_of_year":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"scheduled_backup_times":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"weeks_of_month":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redundancy":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_resource_guard":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vault_critical_operation_exclusion_list":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}},"maxItems":1},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","required":true,"forceNew":true},"data_share_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"file_system_name":{"type":"TypeString","required":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"source_platform":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_order":{"schema":{"contact":{"type":"TypeList","required":true,"elem":{"schema":{"company_name":{"type":"TypeString","required":true,"forceNew":true},"emails":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"device_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"return_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"serial_number":{"type":"TypeString","computed":true},"shipment_address":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3},"city":{"type":"TypeString","required":true,"forceNew":true},"country":{"type":"TypeString","required":true,"forceNew":true},"postal_code":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"shipment_history":{"type":"TypeSet","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}},"shipment_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"status":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"info":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_access_connector":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_virtual_network_peering":{"schema":{"address_space_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_address_space_prefixes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_id":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace":{"schema":{"custom_parameters":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"machine_learning_workspace_id":{"type":"TypeString","optional":true,"forceNew":true},"nat_gateway_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"no_public_ip":{"type":"TypeBool","optional":true,"computed":true},"private_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"private_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"public_ip_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"public_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_sku_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vnet_address_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_encryption_set_id":{"type":"TypeString","computed":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"load_balancer_backend_address_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"managed_disk_cmk_rotation_to_latest_version_enabled":{"type":"TypeBool","optional":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"managed_resource_group_id":{"type":"TypeString","computed":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_services_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules_required":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_root_dbfs_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor":{"schema":{"datadog_organization":{"type":"TypeList","required":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true,"forceNew":true},"application_key":{"type":"TypeString","required":true,"forceNew":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","computed":true},"linking_auth_code":{"type":"TypeString","optional":true,"forceNew":true},"linking_client_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"redirect_uri":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"marketplace_subscription_status":{"type":"TypeString","computed":true},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_sso_configuration":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"enterprise_application_id":{"type":"TypeString","required":true},"login_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"default"},"single_sign_on_enabled":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_tag_rule":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"log":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_log_enabled":{"type":"TypeBool","optional":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_log_enabled":{"type":"TypeBool","optional":true},"subscription_log_enabled":{"type":"TypeBool","optional":true}}}},"metric":{"type":"TypeList","optional":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","optional":true,"default":"default"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_hardware_security_module":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"management_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"stamp_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host":{"schema":{"auto_replace_on_failure":{"type":"TypeBool","optional":true,"default":true},"dedicated_host_group_id":{"type":"TypeString","required":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain":{"type":"TypeInt","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_global_vm_shutdown_schedule":{"schema":{"daily_recurrence_time":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"time_in_minutes":{"type":"TypeInt","optional":true,"default":30},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","optional":true,"default":"Premium"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_linux_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_policy":{"schema":{"description":{"type":"TypeString","optional":true},"evaluator_type":{"type":"TypeString","required":true,"forceNew":true},"fact_data":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_set_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threshold":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_schedule":{"schema":{"daily_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true}}},"maxItems":1},"hourly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true}}},"maxItems":1},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"status":{"type":"TypeString","optional":true,"default":"Disabled"},"time_in_minutes":{"type":"TypeInt","optional":true},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Disabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_type":{"type":"TypeString","required":true},"time_zone_id":{"type":"TypeString","required":true},"weekly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_virtual_network":{"schema":{"description":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"use_in_virtual_machine_creation":{"type":"TypeString","optional":true,"default":"Allow"},"use_public_ip_address":{"type":"TypeString","optional":true,"default":"Allow"}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_windows_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventgrid":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventgrid_topic_endpoint":{"type":"TypeString","required":true},"eventgrid_topic_primary_access_key":{"type":"TypeString","required":true},"eventgrid_topic_secondary_access_key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventhub":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_primary_connection_string":{"type":"TypeString","required":true},"eventhub_secondary_connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_servicebus":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_primary_connection_string":{"type":"TypeString","required":true},"servicebus_secondary_connection_string":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_time_series_database_connection":{"schema":{"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_consumer_group_name":{"type":"TypeString","optional":true,"default":"$Default","forceNew":true},"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_uri":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_name":{"type":"TypeString","required":true,"forceNew":true},"kusto_table_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_disk_access":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_type":{"type":"TypeString","optional":true,"default":"EncryptionAtRestWithCustomerKey","forceNew":true},"federated_client_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_disk_pool":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_pool_iscsi_target":{"schema":{"acl_mode":{"type":"TypeString","required":true,"forceNew":true},"disks_pool_id":{"type":"TypeString","required":true,"forceNew":true},"endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","computed":true},"target_iqn":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_iscsi_target_lun":{"schema":{"disk_pool_managed_disk_attachment_id":{"type":"TypeString","required":true,"forceNew":true},"iscsi_target_id":{"type":"TypeString","required":true,"forceNew":true},"lun":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_managed_disk_attachment":{"schema":{"disk_pool_id":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"flags":{"type":"TypeInt","required":true},"tag":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","optional":true,"computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":300},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","required":true,"forceNew":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_azuread_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_email_communication_service":{"schema":{"data_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain":{"schema":{"auto_create_topic_with_first_subscription":{"type":"TypeBool","optional":true,"default":true},"auto_delete_topic_with_last_subscription":{"type":"TypeBool","optional":true,"default":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_eventgrid_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_arm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"system_topic":{"type":"TypeString","required":true,"forceNew":true},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub":{"schema":{"capture_description":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeList","required":true,"elem":{"schema":{"archive_name_format":{"type":"TypeString","required":true},"blob_container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"encoding":{"type":"TypeString","required":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":300},"size_limit_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"skip_empty_archives":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"message_retention":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","required":true,"forceNew":true},"partition_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":300,"update":30}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity":{"type":"TypeInt","optional":true,"default":1},"dedicated_cluster_id":{"type":"TypeString","optional":true,"forceNew":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_throughput_units":{"type":"TypeInt","optional":true,"computed":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rulesets":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_service_access_enabled":{"type":"TypeBool","optional":true},"virtual_network_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"ignore_missing_virtual_network_service_endpoint":{"type":"TypeBool","optional":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":128}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_customer_managed_key":{"schema":{"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"key_vault_key_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_disaster_recovery_config":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_schema_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"schema_compatibility":{"type":"TypeString","required":true,"forceNew":true},"schema_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_express_route_circuit":{"schema":{"allow_classic_operations":{"type":"TypeBool","optional":true,"default":false},"authorization_key":{"type":"TypeString","optional":true},"bandwidth_in_gbps":{"type":"TypeFloat","optional":true},"bandwidth_in_mbps":{"type":"TypeInt","optional":true},"express_route_port_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","optional":true,"forceNew":true},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"family":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_connection":{"schema":{"address_prefix_ipv4":{"type":"TypeString","required":true,"forceNew":true},"address_prefix_ipv6":{"type":"TypeString","optional":true},"authorization_key":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_peering_id":{"type":"TypeString","required":true,"forceNew":true},"peering_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_peering":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_manager_etag":{"type":"TypeString","computed":true},"ipv4_enabled":{"type":"TypeBool","optional":true,"default":true},"ipv6":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"microsoft_peering":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"primary_peer_address_prefix":{"type":"TypeString","required":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_peer_address_prefix":{"type":"TypeString","required":true}}},"maxItems":1},"microsoft_peering_config":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"peer_asn":{"type":"TypeInt","optional":true,"computed":true},"peering_type":{"type":"TypeString","required":true},"primary_azure_port":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_azure_port":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","optional":true},"shared_key":{"type":"TypeString","optional":true},"vlan_id":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"enable_internet_security":{"type":"TypeBool","optional":true},"express_route_circuit_peering_id":{"type":"TypeString","required":true,"forceNew":true},"express_route_gateway_bypass_enabled":{"type":"TypeBool","optional":true,"default":false},"express_route_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"routing_weight":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_gateway":{"schema":{"allow_non_virtual_wan_traffic":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_express_route_port":{"schema":{"bandwidth_in_gbps":{"type":"TypeInt","required":true,"forceNew":true},"billing_type":{"type":"TypeString","optional":true,"computed":true},"encapsulation":{"type":"TypeString","required":true,"forceNew":true},"ethertype":{"type":"TypeString","computed":true},"guid":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"link1":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"link2":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mtu":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_port_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_port_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_federated_identity_credential":{"schema":{"audience":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"issuer":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"firewall_policy_id":{"type":"TypeString","optional":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_ip_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"sku_tier":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","optional":true,"computed":true},"virtual_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","optional":true,"default":1},"virtual_hub_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_firewall_application_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"target_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_nat_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","required":true},"translated_port":{"type":"TypeString","required":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_network_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy":{"schema":{"auto_learn_private_ranges_enabled":{"type":"TypeBool","optional":true},"base_policy_id":{"type":"TypeString","optional":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"proxy_enabled":{"type":"TypeBool","optional":true,"default":false},"servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"explicit_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_pac_file":{"type":"TypeBool","optional":true},"enabled":{"type":"TypeBool","optional":true},"http_port":{"type":"TypeInt","optional":true},"https_port":{"type":"TypeInt","optional":true},"pac_file":{"type":"TypeString","optional":true},"pac_file_port":{"type":"TypeInt","optional":true}}},"maxItems":1},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"insights":{"type":"TypeList","optional":true,"elem":{"schema":{"default_log_analytics_workspace_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"firewall_location":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"retention_in_days":{"type":"TypeInt","optional":true}}},"maxItems":1},"intrusion_detection":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true},"private_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"signature_overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"state":{"type":"TypeString","optional":true}}}},"traffic_bypass":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"source_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"sql_redirect_allowed":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","optional":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"threat_intelligence_mode":{"type":"TypeString","optional":true,"default":"Alert"},"tls_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_secret_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy_rule_collection_group":{"schema":{"application_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"terminate_tls":{"type":"TypeBool","optional":true},"web_categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_address":{"type":"TypeString","optional":true},"destination_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","optional":true},"translated_fqdn":{"type":"TypeString","optional":true},"translated_port":{"type":"TypeInt","required":true}}},"minItems":1}}},"minItems":1},"network_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"priority":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_fluid_relay_server":{"schema":{"frs_tenant_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"orderer_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_frontdoor":{"schema":{"backend_pool":{"type":"TypeList","required":true,"elem":{"schema":{"backend":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_header":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","required":true},"https_port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"weight":{"type":"TypeInt","optional":true,"default":50}}},"maxItems":500},"health_probe_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"load_balancing_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"backend_pool_health_probe":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"id":{"type":"TypeString","computed":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":120},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"probe_method":{"type":"TypeString","optional":true,"default":"GET"},"protocol":{"type":"TypeString","optional":true,"default":"Http"}}},"maxItems":5000},"backend_pool_health_probes":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_milliseconds":{"type":"TypeInt","optional":true,"default":0},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":2}}},"maxItems":5000},"backend_pool_load_balancing_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pools_send_receive_timeout_seconds":{"type":"TypeInt","optional":true,"default":60},"enforce_backend_pools_certificate_name_check":{"type":"TypeBool","required":true}}}},"backend_pools":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"cname":{"type":"TypeString","computed":true},"explicit_resource_order":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_pool_health_probe_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"routing_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"friendly_name":{"type":"TypeString","optional":true},"frontend_endpoint":{"type":"TypeList","required":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"session_affinity_ttl_seconds":{"type":"TypeInt","optional":true,"default":0},"web_application_firewall_policy_link_id":{"type":"TypeString","optional":true}}},"maxItems":500},"frontend_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"header_frontdoor_id":{"type":"TypeString","computed":true},"load_balancer_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_rule":{"type":"TypeList","required":true,"elem":{"schema":{"accepted_protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":2},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pool_name":{"type":"TypeString","required":true},"cache_duration":{"type":"TypeString","optional":true},"cache_enabled":{"type":"TypeBool","optional":true,"default":false},"cache_query_parameter_strip_directive":{"type":"TypeString","optional":true,"default":"StripAll"},"cache_query_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"cache_use_dynamic_compression":{"type":"TypeBool","optional":true,"default":false},"custom_forwarding_path":{"type":"TypeString","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"HttpsOnly"}}},"maxItems":1},"frontend_endpoints":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":500},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"redirect_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_fragment":{"type":"TypeString","optional":true},"custom_host":{"type":"TypeString","optional":true},"custom_path":{"type":"TypeString","optional":true},"custom_query_string":{"type":"TypeString","optional":true},"redirect_protocol":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":500},"routing_rules":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_custom_https_configuration":{"schema":{"custom_https_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_key_vault_certificate_secret_name":{"type":"TypeString","optional":true},"azure_key_vault_certificate_secret_version":{"type":"TypeString","optional":true},"azure_key_vault_certificate_vault_id":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","optional":true,"default":"FrontDoor"},"minimum_tls_version":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true},"provisioning_substate":{"type":"TypeString","computed":true}}},"maxItems":1},"custom_https_provisioning_enabled":{"type":"TypeBool","required":true},"frontend_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_frontdoor_rules_engine":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"frontdoor_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"request_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100},"response_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100}}},"maxItems":1},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transform":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":6},"value":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"variable":{"type":"TypeString","optional":true}}},"maxItems":100},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true}}},"maxItems":100}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_cert_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"","forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_function_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_function":{"schema":{"config_json":{"type":"TypeString","required":true,"description":"The config for this Function in JSON format."},"config_url":{"type":"TypeString","description":"The URL of the configuration JSON.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this function be enabled. Defaults to `true`."},"file":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"description":"The content of the file.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The filename of the file to be uploaded.","forceNew":true}}},"minItems":1},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App in which this function should reside.","forceNew":true},"invocation_url":{"type":"TypeString","description":"The invocation URL.","computed":true},"language":{"type":"TypeString","optional":true,"description":"The language the Function is written in."},"name":{"type":"TypeString","required":true,"description":"The name of the function.","forceNew":true},"script_root_path_url":{"type":"TypeString","description":"The Script root path URL.","computed":true},"script_url":{"type":"TypeString","description":"The script URL.","computed":true},"secrets_file_url":{"type":"TypeString","description":"The URL for the Secrets File.","computed":true},"test_data":{"type":"TypeString","optional":true,"description":"The test data for the function."},"test_data_url":{"type":"TypeString","description":"The Test data URL.","computed":true},"url":{"type":"TypeString","description":"The function URL.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_hybrid_connection":{"schema":{"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App for this Hybrid Connection.","forceNew":true},"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_slot":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"function_app_name":{"type":"TypeString","required":true,"forceNew":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application":{"schema":{"description":{"type":"TypeString","optional":true},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true},"gallery_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true},"release_note_uri":{"type":"TypeString","optional":true},"supported_os_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application_version":{"schema":{"enable_health_check":{"type":"TypeBool","optional":true,"default":false},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_application_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"manage_action":{"type":"TypeList","required":true,"elem":{"schema":{"install":{"type":"TypeString","required":true,"forceNew":true},"remove":{"type":"TypeString","required":true,"forceNew":true},"update":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"default_configuration_link":{"type":"TypeString","optional":true,"forceNew":true},"media_link":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_services_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hdinsight_hadoop_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hadoop":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"edge_node":{"type":"TypeList","optional":true,"elem":{"schema":{"https_endpoints":{"type":"TypeList","optional":true,"elem":{"schema":{"access_modes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_port":{"type":"TypeInt","optional":true},"disable_gateway_auth":{"type":"TypeBool","optional":true},"private_ip_address":{"type":"TypeString","optional":true},"sub_domain_suffix":{"type":"TypeString","optional":true}}}},"install_script_action":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"target_instance_count":{"type":"TypeInt","required":true},"uninstall_script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"vm_size":{"type":"TypeString","required":true}}},"maxItems":1},"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_hbase_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hbase":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_interactive_query_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"interactive_hive":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_kafka_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"kafka":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rest_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"security_group_id":{"type":"TypeString","required":true,"forceNew":true},"security_group_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kafka_management_node":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"number_of_disks_per_node":{"type":"TypeInt","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_spark_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"spark":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_healthbot":{"schema":{"bot_management_portal_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"authority":{"type":"TypeString","required":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"configuration_export_storage_account_name":{"type":"TypeString","optional":true},"container_registry_login_server_url":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"credentials_allowed":{"type":"TypeBool","optional":true,"default":false},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","optional":true,"default":"fhir-R4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"oci_artifact":{"type":"TypeList","optional":true,"elem":{"schema":{"digest":{"type":"TypeString","optional":true},"image_name":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_medtech_service_fhir_destination":{"schema":{"destination_fhir_mapping_json":{"type":"TypeString","required":true},"destination_fhir_service_id":{"type":"TypeString","required":true},"destination_identity_resolution_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"medtech_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"audience":{"type":"TypeString","optional":true},"authority":{"type":"TypeString","optional":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","optional":true},"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","optional":true,"forceNew":true},"cosmosdb_throughput":{"type":"TypeInt","optional":true,"default":1000},"kind":{"type":"TypeString","optional":true,"default":"fhir"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache":{"schema":{"automatically_rotate_key_to_latest_enabled":{"type":"TypeBool","optional":true},"cache_size_in_gb":{"type":"TypeInt","required":true,"forceNew":true},"default_access_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1}}},"maxItems":1,"minItems":1},"directory_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_netbios_name":{"type":"TypeString","required":true},"dns_primary_ip":{"type":"TypeString","required":true},"dns_secondary_ip":{"type":"TypeString","optional":true},"domain_name":{"type":"TypeString","required":true},"domain_netbios_name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"directory_flat_file":{"type":"TypeList","optional":true,"elem":{"schema":{"group_file_uri":{"type":"TypeString","required":true},"password_file_uri":{"type":"TypeString","required":true}}},"maxItems":1},"directory_ldap":{"type":"TypeList","optional":true,"elem":{"schema":{"base_dn":{"type":"TypeString","required":true},"bind":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dn":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_validation_uri":{"type":"TypeString","optional":true},"download_certificate_automatically":{"type":"TypeBool","optional":true},"encrypted":{"type":"TypeBool","optional":true},"server":{"type":"TypeString","required":true}}},"maxItems":1},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"search_domain":{"type":"TypeString","optional":true},"servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mtu":{"type":"TypeInt","optional":true,"default":1500},"name":{"type":"TypeString","required":true,"forceNew":true},"ntp_server":{"type":"TypeString","optional":true,"default":"time.windows.com"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hpc_cache_access_policy":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1},"hpc_cache_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_nfs_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_nfs_target":{"schema":{"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_junction":{"type":"TypeSet","required":true,"elem":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"namespace_path":{"type":"TypeString","required":true},"nfs_export":{"type":"TypeString","required":true},"target_path":{"type":"TypeString","optional":true,"default":""}}},"maxItems":10,"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"target_host_name":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"lun":{"type":"TypeInt","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}}},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"os_state":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_virtual_machine_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_integration_service_environment":{"schema":{"access_endpoint_type":{"type":"TypeString","required":true,"forceNew":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Developer_0"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":4,"minItems":4},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_iot_security_device_group":{"schema":{"allow_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_from_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"connection_to_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"local_users_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"processes_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"range_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"max":{"type":"TypeInt","required":true},"min":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_security_solution":{"schema":{"additional_workspace":{"type":"TypeSet","optional":true,"elem":{"schema":{"data_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}}}},"disabled_data_sources":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events_to_export":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"iothub_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"log_unmasked_ips_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"query_for_resources":{"type":"TypeString","optional":true,"computed":true},"query_subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"recommendations_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_authentication":{"type":"TypeBool","optional":true,"default":true},"agent_send_unutilized_msg":{"type":"TypeBool","optional":true,"default":true},"baseline":{"type":"TypeBool","optional":true,"default":true},"edge_hub_mem_optimize":{"type":"TypeBool","optional":true,"default":true},"edge_logging_option":{"type":"TypeBool","optional":true,"default":true},"inconsistent_module_settings":{"type":"TypeBool","optional":true,"default":true},"install_agent":{"type":"TypeBool","optional":true,"default":true},"ip_filter_deny_all":{"type":"TypeBool","optional":true,"default":true},"ip_filter_permissive_rule":{"type":"TypeBool","optional":true,"default":true},"open_ports":{"type":"TypeBool","optional":true,"default":true},"permissive_firewall_policy":{"type":"TypeBool","optional":true,"default":true},"permissive_input_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"permissive_output_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"privileged_docker_options":{"type":"TypeBool","optional":true,"default":true},"shared_credentials":{"type":"TypeBool","optional":true,"default":true},"vulnerable_tls_cipher_suite":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_access_policy":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_object_id":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_eventhub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_iothub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_gen2_environment":{"schema":{"data_access_fqdn":{"type":"TypeString","computed":true},"id_properties":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage":{"type":"TypeList","required":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"warm_store_data_retention_time":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_reference_data_set":{"schema":{"data_string_comparison_behavior":{"type":"TypeString","optional":true,"default":"Ordinal","forceNew":true},"key_property":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_standard_environment":{"schema":{"data_retention_time":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_limit_exceeded_behavior":{"type":"TypeString","optional":true,"default":"PurgeOldData"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"ST1"},"sub_domain":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application_network_rule_set":{"schema":{"apply_to_device":{"type":"TypeBool","optional":true,"default":true},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"iotcentral_application_id":{"type":"TypeString","required":true,"forceNew":true},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub":{"schema":{"cloud_to_device":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"feedback":{"type":"TypeList","optional":true,"elem":{"schema":{"lock_duration":{"type":"TypeString","optional":true,"default":"PT60S"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"time_to_live":{"type":"TypeString","optional":true,"default":"PT1H"}}}},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10}}},"maxItems":1},"endpoint":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"enrichment":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":10},"event_hub_events_endpoint":{"type":"TypeString","computed":true},"event_hub_events_namespace":{"type":"TypeString","computed":true},"event_hub_events_path":{"type":"TypeString","computed":true},"event_hub_operations_endpoint":{"type":"TypeString","computed":true},"event_hub_operations_path":{"type":"TypeString","computed":true},"event_hub_partition_count":{"type":"TypeInt","optional":true,"computed":true},"event_hub_retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"fallback_route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","optional":true,"computed":true},"endpoint_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}}},"maxItems":1},"file_upload":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"computed":true},"identity_id":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"apply_to_builtin_eventhub_endpoint":{"type":"TypeBool","optional":true,"default":false},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}},"shared_access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"key_name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_consumer_group":{"schema":{"eventhub_endpoint_name":{"type":"TypeString","required":true,"forceNew":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_account":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_instance":{"schema":{"device_update_account_id":{"type":"TypeString","required":true,"forceNew":true},"diagnostic_enabled":{"type":"TypeBool","optional":true,"default":false},"diagnostic_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","optional":true,"default":"Hashed"},"data_residency_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"ip_filter_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"target":{"type":"TypeString","optional":true}}}},"linked_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_weight":{"type":"TypeInt","optional":true,"default":1},"apply_allocation_policy":{"type":"TypeBool","optional":true,"default":true},"connection_string":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_operations_host_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iot_dps_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"enrollment_read":{"type":"TypeBool","optional":true,"default":false},"enrollment_write":{"type":"TypeBool","optional":true,"default":false},"iothub_dps_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registration_read":{"type":"TypeBool","optional":true,"default":false},"registration_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_config":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_cosmosdb_account":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_name":{"type":"TypeString","optional":true},"partition_key_template":{"type":"TypeString","optional":true},"primary_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_eventhub":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_queue":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_topic":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_storage_container":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_enrichment":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":100},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"key":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_fallback_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_file_upload":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"lock_duration":{"type":"TypeString","optional":true,"default":"PT1M"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications_enabled":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"default":"PT1H"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_shared_access_policy":{"schema":{"device_connect":{"type":"TypeBool","optional":true,"default":false},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registry_read":{"type":"TypeBool","optional":true,"default":false},"registry_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_connect":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"firewall_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group_cidr":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"ip_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","optional":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1024},"contact":{"type":"TypeSet","optional":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"enable_rbac_authorization":{"type":"TypeBool","optional":true},"enabled_for_deployment":{"type":"TypeBool","optional":true},"enabled_for_disk_encryption":{"type":"TypeBool","optional":true},"enabled_for_template_deployment":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_protection_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_access_policy":{"schema":{"application_id":{"type":"TypeString","optional":true,"forceNew":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true,"forceNew":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate":{"schema":{"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"contents":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate_attribute":{"type":"TypeList","computed":true,"elem":{"schema":{"created":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"expires":{"type":"TypeString","computed":true},"not_before":{"type":"TypeString","computed":true},"recovery_level":{"type":"TypeString","computed":true},"updated":{"type":"TypeString","computed":true}}}},"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"key_properties":{"type":"TypeList","required":true,"elem":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true},"exportable":{"type":"TypeBool","required":true},"key_size":{"type":"TypeInt","optional":true,"computed":true},"key_type":{"type":"TypeString","required":true},"reuse_key":{"type":"TypeBool","required":true}}},"maxItems":1},"lifetime_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","optional":true},"lifetime_percentage":{"type":"TypeInt","optional":true}}},"maxItems":1}}}},"secret_properties":{"type":"TypeList","required":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true}}},"maxItems":1},"x509_certificate_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","required":true},"subject_alternative_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dns_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"validity_in_months":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":30,"delete":30,"update":30}},"azurerm_key_vault_certificate_contacts":{"schema":{"contact":{"type":"TypeSet","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","optional":true},"admin":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","optional":true},"last_name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_id":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"provider_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"e":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","optional":true},"key_opts":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","optional":true,"forceNew":true},"key_type":{"type":"TypeString","required":true,"forceNew":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"rotation_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"automatic":{"type":"TypeList","optional":true,"elem":{"schema":{"time_after_creation":{"type":"TypeString","optional":true},"time_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"expire_after":{"type":"TypeString","optional":true},"notify_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_domain_encrypted_data":{"type":"TypeString","computed":true},"security_domain_key_vault_certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10,"minItems":3},"security_domain_quorum":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":30}},"azurerm_key_vault_managed_storage_account":{"schema":{"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"regenerate_key_automatically":{"type":"TypeBool","optional":true,"default":false},"regeneration_period":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_managed_storage_account_sas_token_definition":{"schema":{"managed_storage_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sas_template_uri":{"type":"TypeString","required":true},"sas_type":{"type":"TypeString","required":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validity_period":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","optional":true,"elem":{"schema":{"connector_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_name":{"type":"TypeString","required":true}}},"maxItems":1},"api_server_access_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true},"vnet_integration_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"api_server_authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auto_scaler_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"balance_similar_node_groups":{"type":"TypeBool","optional":true,"default":false},"empty_bulk_delete_max":{"type":"TypeString","optional":true,"computed":true},"expander":{"type":"TypeString","optional":true,"default":"random"},"max_graceful_termination_sec":{"type":"TypeString","optional":true,"computed":true},"max_node_provisioning_time":{"type":"TypeString","optional":true,"default":"15m"},"max_unready_nodes":{"type":"TypeInt","optional":true,"default":3},"max_unready_percentage":{"type":"TypeFloat","optional":true,"default":45},"new_pod_scale_up_delay":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_add":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_delete":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_failure":{"type":"TypeString","optional":true,"computed":true},"scale_down_unneeded":{"type":"TypeString","optional":true,"computed":true},"scale_down_unready":{"type":"TypeString","optional":true,"computed":true},"scale_down_utilization_threshold":{"type":"TypeString","optional":true,"computed":true},"scan_interval":{"type":"TypeString","optional":true,"computed":true},"skip_nodes_with_local_storage":{"type":"TypeBool","optional":true,"default":true},"skip_nodes_with_system_pods":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"automatic_channel_upgrade":{"type":"TypeString","optional":true},"azure_active_directory_role_based_access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","optional":true},"client_app_id":{"type":"TypeString","optional":true},"managed":{"type":"TypeBool","optional":true},"server_app_id":{"type":"TypeString","optional":true},"server_app_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"azure_policy_enabled":{"type":"TypeBool","optional":true},"confidential_computing":{"type":"TypeList","optional":true,"elem":{"schema":{"sgx_quote_helper_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"custom_ca_trust_certificates_base64":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"default_node_pool":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true},"enable_node_public_ip":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false},"cpu_cfs_quota_period":{"type":"TypeString","optional":true},"cpu_manager_policy":{"type":"TypeString","optional":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true},"pod_max_pid":{"type":"TypeInt","optional":true},"topology_manager_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"linux_os_config":{"type":"TypeList","optional":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"only_critical_addons_enabled":{"type":"TypeBool","optional":true},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed"},"os_sku":{"type":"TypeString","optional":true,"computed":true},"pod_subnet_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"temporary_name_for_rotation":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"VirtualMachineScaleSets","forceNew":true},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true},"vnet_subnet_id":{"type":"TypeString","optional":true},"workload_runtime":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix_private_cluster":{"type":"TypeString","optional":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_pod_security_policy":{"type":"TypeBool","optional":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","optional":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"http_proxy_config":{"type":"TypeList","optional":true,"elem":{"schema":{"http_proxy":{"type":"TypeString","optional":true,"forceNew":true},"https_proxy":{"type":"TypeString","optional":true,"forceNew":true},"no_proxy":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trusted_ca":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_cleaner_enabled":{"type":"TypeBool","optional":true,"default":false},"image_cleaner_interval_hours":{"type":"TypeInt","optional":true,"default":48},"ingress_application_gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","optional":true},"gateway_name":{"type":"TypeString","optional":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"key_management_service":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_network_access":{"type":"TypeString","optional":true,"default":"Public"}}},"maxItems":1},"key_vault_secrets_provider":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"secret_rotation_interval":{"type":"TypeString","optional":true,"default":"2m"}}},"maxItems":1},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"object_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"kubernetes_version":{"type":"TypeString","optional":true,"computed":true},"linux_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_username":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeList","required":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"local_account_disabled":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"hours":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"minItems":1}}}},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}}}},"maxItems":1},"maintenance_window_auto_upgrade":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"maintenance_window_node_os":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"microsoft_defender":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true}}},"maxItems":1},"monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"annotations_allowed":{"type":"TypeString","optional":true},"labels_allowed":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"docker_bridge_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ebpf_data_plane":{"type":"TypeString","optional":true},"ip_versions":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"load_balancer_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":30},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true},"managed_outbound_ipv6_count":{"type":"TypeInt","optional":true,"computed":true},"outbound_ip_address_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ip_prefix_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ports_allocated":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"load_balancer_sku":{"type":"TypeString","optional":true,"default":"standard","forceNew":true},"nat_gateway_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"network_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"network_plugin":{"type":"TypeString","required":true,"forceNew":true},"network_plugin_mode":{"type":"TypeString","optional":true},"network_policy":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"pod_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pod_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"service_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_os_channel_upgrade":{"type":"TypeString","optional":true},"node_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","optional":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","optional":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"open_service_mesh_enabled":{"type":"TypeBool","optional":true},"portal_fqdn":{"type":"TypeString","computed":true},"private_cluster_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"private_cluster_public_fqdn_enabled":{"type":"TypeBool","optional":true,"default":false},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"private_fqdn":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_based_access_control_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"run_command_enabled":{"type":"TypeBool","optional":true,"default":true},"service_mesh_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true}}},"maxItems":1},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"storage_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"disk_driver_version":{"type":"TypeString","optional":true,"default":"v1"},"file_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"snapshot_controller_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"web_app_routing":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_zone_id":{"type":"TypeString","required":true},"web_app_routing_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"windows_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"gmsa":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_server":{"type":"TypeString","required":true},"root_domain":{"type":"TypeString","required":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true}}},"maxItems":1},"workload_autoscaler_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"keda_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_controlled_values":{"type":"TypeString","computed":true},"vertical_pod_autoscaler_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_update_mode":{"type":"TypeString","computed":true}}},"maxItems":1},"workload_identity_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_kubernetes_cluster_extension":{"schema":{"aks_assigned_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true,"forceNew":true},"enable_node_public_ip":{"type":"TypeBool","optional":true,"forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true,"forceNew":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"cpu_cfs_quota_period":{"type":"TypeString","optional":true,"forceNew":true},"cpu_manager_policy":{"type":"TypeString","optional":true,"forceNew":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"pod_max_pid":{"type":"TypeInt","optional":true,"forceNew":true},"topology_manager_policy":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"linux_os_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true,"forceNew":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","optional":true,"default":"User"},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed","forceNew":true},"os_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"Linux","forceNew":true},"pod_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"spot_max_price":{"type":"TypeFloat","optional":true,"default":-1,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"vnet_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"windows_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"outbound_nat_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"workload_runtime":{"type":"TypeString","optional":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kubernetes_cluster_trusted_access_role_binding":{"schema":{"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_fleet_manager":{"schema":{"hub_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dns_prefix":{"type":"TypeString","required":true},"fqdn":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true}}},"maxItems":1},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_attached_database_configuration":{"schema":{"attached_database_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"cluster_resource_id":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_principal_modification_kind":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"elem":{"schema":{"external_tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"external_tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster":{"schema":{"allowed_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allowed_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"auto_stop_enabled":{"type":"TypeBool","optional":true,"default":true},"data_ingestion_uri":{"type":"TypeString","computed":true},"disk_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"double_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"engine":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"language_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimized_auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum_instances":{"type":"TypeInt","required":true},"minimum_instances":{"type":"TypeInt","required":true}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"public_ip_type":{"type":"TypeString","optional":true,"default":"IPv4"},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"streaming_ingestion_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_external_tenants":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true},"virtual_network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_management_public_ip_id":{"type":"TypeString","required":true},"engine_public_ip_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_customer_managed_key":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"user_identity":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_cluster_managed_private_endpoint":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_id":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_region":{"type":"TypeString","optional":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cosmosdb_data_connection":{"schema":{"cosmosdb_container_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_id":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retrieval_start_date":{"type":"TypeString","optional":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"hot_cache_period":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_database_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_eventgrid_data_connection":{"schema":{"blob_storage_event_type":{"type":"TypeString","optional":true,"default":"Microsoft.Storage.BlobCreated"},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"eventgrid_resource_id":{"type":"TypeString","optional":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","optional":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skip_first_record":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_eventhub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"compression":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_iothub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_script":{"schema":{"continue_on_errors_enabled":{"type":"TypeBool","optional":true,"default":false},"database_id":{"type":"TypeString","required":true,"forceNew":true},"force_an_update_when_value_changed":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sas_token":{"type":"TypeString","optional":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_lab":{"schema":{"auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"lab_plan_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","computed":true},"public_ip_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roster":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_group_id":{"type":"TypeString","optional":true},"lms_instance":{"type":"TypeString","optional":true},"lti_client_id":{"type":"TypeString","optional":true},"lti_context_id":{"type":"TypeString","optional":true},"lti_roster_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"security":{"type":"TypeList","required":true,"elem":{"schema":{"open_access_enabled":{"type":"TypeBool","required":true},"registration_code":{"type":"TypeString","computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title":{"type":"TypeString","required":true},"virtual_machine":{"type":"TypeList","required":true,"elem":{"schema":{"additional_capability_gpu_drivers_installed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"admin_user":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"create_option":{"type":"TypeString","optional":true,"default":"Image","forceNew":true},"image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"non_admin_user":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"shared_password_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_lab_service_plan":{"schema":{"allowed_regions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":28,"minItems":1},"default_auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"default_connection":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true},"web_rdp_access":{"type":"TypeString","optional":true},"web_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"default_network_subnet_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_gallery_id":{"type":"TypeString","optional":true},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"instructions":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_schedule":{"schema":{"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"stop_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_user":{"schema":{"additional_usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"},"email":{"type":"TypeString","required":true,"forceNew":true},"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb":{"schema":{"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"id":{"type":"TypeString","computed":true},"inbound_nat_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_version":{"type":"TypeString","optional":true,"computed":true},"public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"computed":true},"subnet_id":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool":{"schema":{"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tunnel_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier":{"type":"TypeInt","required":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"virtual_network_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool_address":{"schema":{"backend_address_ip_configuration_id":{"type":"TypeString","optional":true,"description":"For global load balancer, user needs to specify the `backend_address_ip_configuration_id` of the added regional load balancers"},"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"description":"For regional load balancer, user needs to specify `virtual_network_id` and `ip_address`"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_pool":{"schema":{"backend_port":{"type":"TypeInt","required":true},"floating_ip_enabled":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_end":{"type":"TypeInt","required":true},"frontend_port_start":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tcp_reset_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","optional":true},"backend_ip_configuration_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","required":true},"enable_floating_ip":{"type":"TypeBool","optional":true,"computed":true},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","optional":true},"frontend_port_end":{"type":"TypeInt","optional":true},"frontend_port_start":{"type":"TypeInt","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","optional":true,"default":1024},"backend_address_pool_id":{"type":"TypeString","required":true},"enable_tcp_reset":{"type":"TypeBool","optional":true,"default":false},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_probe":{"schema":{"interval_in_seconds":{"type":"TypeInt","optional":true,"default":15},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_probes":{"type":"TypeInt","optional":true,"default":2},"port":{"type":"TypeInt","required":true},"probe_threshold":{"type":"TypeInt","optional":true,"default":1},"protocol":{"type":"TypeString","optional":true,"computed":true},"request_path":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_rule":{"schema":{"backend_address_pool_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":1},"backend_port":{"type":"TypeInt","required":true},"disable_outbound_snat":{"type":"TypeBool","optional":true,"default":false},"enable_floating_ip":{"type":"TypeBool","optional":true,"default":false},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"load_distribution":{"type":"TypeString","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"probe_id":{"type":"TypeString","optional":true,"computed":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lighthouse_assignment":{"schema":{"lighthouse_definition_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_lighthouse_definition":{"schema":{"authorization":{"type":"TypeSet","required":true,"elem":{"schema":{"delegated_role_definition_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"eligible_authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"just_in_time_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"approver":{"type":"TypeSet","optional":true,"elem":{"schema":{"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true}}}},"maximum_activation_duration":{"type":"TypeString","optional":true,"default":"PT8H"},"multi_factor_auth_provider":{"type":"TypeString","optional":true}}},"maxItems":1},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}}},"lighthouse_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managing_tenant_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022``","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Function App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Linux Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_linux_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"default":0},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_linux_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_web_app_slot":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_service_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_load_test":{"schema":{"data_plane_uri":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"gateway_address":{"type":"TypeString","optional":true},"gateway_fqdn":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_cluster":{"schema":{"cluster_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"default":1000},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_cluster_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"log_analytics_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_data_export_rule":{"schema":{"destination_resource_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"export_rule_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_event":{"schema":{"event_log_name":{"type":"TypeString","required":true},"event_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_performance_counter":{"schema":{"counter_name":{"type":"TypeString","required":true},"instance_name":{"type":"TypeString","required":true},"interval_seconds":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"object_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_service":{"schema":{"name":{"type":"TypeString","computed":true},"read_access_id":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true},"write_access_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_storage_account":{"schema":{"data_source_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack_query":{"schema":{"additional_settings_json":{"type":"TypeString","optional":true},"body":{"type":"TypeString","required":true},"categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"query_pack_id":{"type":"TypeString","required":true,"forceNew":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"solutions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_saved_search":{"schema":{"category":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"function_alias":{"type":"TypeString","optional":true,"forceNew":true},"function_parameters":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_solution":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"solution_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_storage_insights":{"schema":{"blob_container_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"table_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_workspace":{"schema":{"allow_resource_only_permissions":{"type":"TypeBool","optional":true,"default":true},"cmk_for_query_forced":{"type":"TypeBool","optional":true},"daily_quota_gb":{"type":"TypeFloat","optional":true,"default":-1},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_shared_key":{"type":"TypeString","computed":true},"reservation_capacity_in_gb_per_day":{"type":"TypeInt","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_http":{"schema":{"body":{"type":"TypeString","optional":true},"headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"queries":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_after":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_name":{"type":"TypeString","required":true},"action_result":{"type":"TypeString","required":true}}},"minItems":1},"uri":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account":{"schema":{"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_agreement":{"schema":{"agreement_type":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"guest_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"guest_partner_name":{"type":"TypeString","required":true},"host_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"host_partner_name":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_assembly":{"schema":{"assembly_name":{"type":"TypeString","required":true},"assembly_version":{"type":"TypeString","optional":true,"default":"0.0.0.0"},"content":{"type":"TypeString","optional":true},"content_link_uri":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_batch_configuration":{"schema":{"batch_group_name":{"type":"TypeString","required":true,"forceNew":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"release_criteria":{"type":"TypeList","required":true,"elem":{"schema":{"batch_size":{"type":"TypeInt","optional":true},"message_count":{"type":"TypeInt","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeSet","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","required":true},"weekday":{"type":"TypeString","required":true}}}},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_certificate":{"schema":{"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true}}},"maxItems":1},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_certificate":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_map":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"map_type":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_partner":{"schema":{"business_identity":{"type":"TypeSet","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_schema":{"schema":{"content":{"type":"TypeString","required":true},"file_name":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_session":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","optional":true,"default":"[1.*, 2.0.0)"},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"client_certificate_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_share_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","optional":true,"default":true},"version":{"type":"TypeString","optional":true,"default":"~3"},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_http_request":{"schema":{"callback_url":{"type":"TypeString","computed":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"relative_path":{"type":"TypeString","optional":true},"schema":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_recurrence":{"schema":{"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"at_these_hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"at_these_minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"on_these_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_workflow":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"open_authentication_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"claim":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"workflow_management":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logic_app_integration_account_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","optional":true,"default":"https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#","forceNew":true},"workflow_version":{"type":"TypeString","optional":true,"default":"1.0.0.0","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_monitor":{"schema":{"company_name":{"type":"TypeString","optional":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logz_organization_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","required":true,"forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"100gb14days","forceNew":true},"usage_type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_sign_on_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account_tag_rule":{"schema":{"logz_sub_account_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_tag_rule":{"schema":{"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_compute_cluster":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"scale_settings":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true,"forceNew":true},"min_node_count":{"type":"TypeInt","required":true,"forceNew":true},"scale_down_nodes_after_idle_duration":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"key_value":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"ssh_public_access_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"vm_priority":{"type":"TypeString","required":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_compute_instance":{"schema":{"assign_to_user":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"object_id":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"authorization_type":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","computed":true}}},"maxItems":1},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"virtual_machine_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_datastore_blobstorage":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_auth_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_datalake_gen2":{"schema":{"authority_url":{"type":"TypeString","optional":true,"computed":true},"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_fileshare":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_fileshare_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_inference_cluster":{"schema":{"cluster_purpose":{"type":"TypeString","optional":true,"default":"FastProd","forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ssl":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cert":{"type":"TypeString","optional":true,"default":"","forceNew":true},"cname":{"type":"TypeString","optional":true,"default":"","forceNew":true},"key":{"type":"TypeString","optional":true,"default":"","forceNew":true},"leaf_domain_label":{"type":"TypeString","optional":true,"default":"","forceNew":true},"overwrite_existing_domain":{"type":"TypeBool","optional":true,"default":"","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_synapse_spark":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_workspace":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"container_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"discovery_url":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key_id":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"friendly_name":{"type":"TypeString","optional":true},"high_business_impact":{"type":"TypeBool","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_build_compute_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_user_assigned_identity":{"type":"TypeString","optional":true},"public_access_behind_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Basic"},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"v1_legacy_mode_enabled":{"type":"TypeBool","optional":true,"default":false},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maintenance_assignment_dedicated_host":{"schema":{"dedicated_host_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine_scale_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","optional":true},"install_patches":{"type":"TypeList","optional":true,"elem":{"schema":{"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"reboot":{"type":"TypeString","optional":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","optional":true,"default":"Custom"},"window":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","optional":true},"expiration_date_time":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"start_date_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application":{"schema":{"application_definition_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameter_values":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application_definition":{"schema":{"authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"role_definition_id":{"type":"TypeString","required":true},"service_principal_id":{"type":"TypeString","required":true}}},"minItems":1},"create_ui_definition":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_level":{"type":"TypeString","required":true,"forceNew":true},"main_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"package_enabled":{"type":"TypeBool","optional":true,"default":true},"package_file_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","required":true,"forceNew":true},"disk_access_id":{"type":"TypeString","optional":true},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_iops_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"gallery_image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"forceNew":true},"image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logical_sector_size":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"max_shares":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_access_policy":{"type":"TypeString","optional":true},"on_demand_bursting_enabled":{"type":"TypeBool","optional":true},"optimized_frequent_attach_enabled":{"type":"TypeBool","optional":true,"default":false},"os_type":{"type":"TypeString","optional":true},"performance_plus_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_type":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"computed":true},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"upload_size_bytes":{"type":"TypeInt","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk_sas_token":{"schema":{"access_level":{"type":"TypeString","required":true,"forceNew":true},"duration_in_seconds":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"sas_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_managed_lustre_file_system":{"schema":{"encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"hsm_setting":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"import_prefix":{"type":"TypeString","optional":true,"forceNew":true},"logging_container_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","required":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"time_of_day_in_utc":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_capacity_in_tb":{"type":"TypeInt","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"parent_management_group_id":{"type":"TypeString","optional":true,"computed":true},"subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_subscription_association":{"schema":{"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5}},"azurerm_management_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_management_lock":{"schema":{"lock_level":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_account":{"schema":{"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_creator":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maps_account_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mariadb_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_mariadb_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeString","required":true,"forceNew":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_asset":{"schema":{"alternate_id":{"type":"TypeString","optional":true},"container":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_asset_filter":{"schema":{"asset_id":{"type":"TypeString","required":true,"forceNew":true},"first_quality_bitrate":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_miliseconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","optional":true},"property":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_content_key_policy":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_option":{"type":"TypeSet","required":true,"elem":{"schema":{"clear_key_configuration_enabled":{"type":"TypeBool","optional":true},"fairplay_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"ask":{"type":"TypeString","optional":true},"offline_rental_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"playback_duration_seconds":{"type":"TypeInt","optional":true},"storage_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"pfx":{"type":"TypeString","optional":true},"pfx_password":{"type":"TypeString","optional":true},"rental_and_lease_key_type":{"type":"TypeString","optional":true},"rental_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"open_restriction_enabled":{"type":"TypeBool","optional":true},"playready_configuration_license":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_test_devices":{"type":"TypeBool","optional":true},"begin_date":{"type":"TypeString","optional":true},"content_key_location_from_header_enabled":{"type":"TypeBool","optional":true},"content_key_location_from_key_id":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"grace_period":{"type":"TypeString","optional":true},"license_type":{"type":"TypeString","optional":true},"play_right":{"type":"TypeList","optional":true,"elem":{"schema":{"agc_and_color_stripe_restriction":{"type":"TypeInt","optional":true},"allow_passing_video_content_to_unknown_output":{"type":"TypeString","optional":true},"analog_video_opl":{"type":"TypeInt","optional":true},"compressed_digital_audio_opl":{"type":"TypeInt","optional":true},"compressed_digital_video_opl":{"type":"TypeInt","optional":true},"digital_video_only_content_restriction":{"type":"TypeBool","optional":true},"explicit_analog_television_output_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"best_effort_enforced":{"type":"TypeBool","optional":true,"default":false},"control_bits":{"type":"TypeInt","required":true}}},"maxItems":1},"first_play_expiration":{"type":"TypeString","optional":true},"image_constraint_for_analog_component_video_restriction":{"type":"TypeBool","optional":true},"image_constraint_for_analog_computer_monitor_restriction":{"type":"TypeBool","optional":true},"scms_restriction":{"type":"TypeInt","optional":true},"uncompressed_digital_audio_opl":{"type":"TypeInt","optional":true},"uncompressed_digital_video_opl":{"type":"TypeInt","optional":true}}},"maxItems":1},"relative_begin_date":{"type":"TypeString","optional":true},"relative_expiration_date":{"type":"TypeString","optional":true},"security_level":{"type":"TypeString","optional":true}}}},"playready_response_custom_data":{"type":"TypeString","optional":true},"token_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"alternate_key":{"type":"TypeList","optional":true,"elem":{"schema":{"rsa_token_key_exponent":{"type":"TypeString","optional":true},"rsa_token_key_modulus":{"type":"TypeString","optional":true},"symmetric_token_key":{"type":"TypeString","optional":true},"x509_token_key_raw":{"type":"TypeString","optional":true}}}},"audience":{"type":"TypeString","optional":true},"issuer":{"type":"TypeString","optional":true},"open_id_connect_discovery_document":{"type":"TypeString","optional":true},"primary_rsa_token_key_exponent":{"type":"TypeString","optional":true},"primary_rsa_token_key_modulus":{"type":"TypeString","optional":true},"primary_symmetric_token_key":{"type":"TypeString","optional":true},"primary_x509_token_key_raw":{"type":"TypeString","optional":true},"required_claim":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"token_type":{"type":"TypeString","optional":true}}},"maxItems":1},"widevine_configuration_template":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_job":{"schema":{"description":{"type":"TypeString","optional":true},"input_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1},"priority":{"type":"TypeString","optional":true,"default":"Normal","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"transform_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event":{"schema":{"auto_start_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true},"cross_domain_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"preset_name":{"type":"TypeString","optional":true,"forceNew":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"None"},"type":{"type":"TypeString","optional":true,"default":"None","forceNew":true}}},"maxItems":1},"hostname_prefix":{"type":"TypeString","optional":true},"input":{"type":"TypeList","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"key_frame_interval_duration":{"type":"TypeString","optional":true},"streaming_protocol":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"preview":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"preview_locator":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_options":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transcription_languages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"use_static_hostname":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event_output":{"schema":{"archive_window_duration":{"type":"TypeString","required":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"hls_fragments_per_ts_segment":{"type":"TypeInt","optional":true,"forceNew":true},"live_event_id":{"type":"TypeString","required":true,"forceNew":true},"manifest_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_snap_time_in_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"rewind_window_duration":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account":{"schema":{"encryption":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_key_identifier":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"type":{"type":"TypeString","optional":true,"default":"SystemKey"}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_delivery_access_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true},"ip_allow_list":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"storage_authentication_type":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account_filter":{"schema":{"first_quality_bitrate":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_milliseconds":{"type":"TypeInt","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_endpoint":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"akamai_signature_header_authentication_key":{"type":"TypeList","optional":true,"elem":{"schema":{"base64_key":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","optional":true},"identifier":{"type":"TypeString","optional":true}}}},"ip_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}}}},"maxItems":1},"auto_start_enabled":{"type":"TypeBool","optional":true,"computed":true},"cdn_enabled":{"type":"TypeBool","optional":true},"cdn_profile":{"type":"TypeString","optional":true,"computed":true},"cdn_provider":{"type":"TypeString","optional":true,"computed":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true,"computed":true},"cross_domain_policy":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"custom_host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_cache_age_seconds":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_locator":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content_key_id":{"type":"TypeString","optional":true,"forceNew":true},"label_reference_in_streaming_policy":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","optional":true,"forceNew":true}}}},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"end_time":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"filter_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"forceNew":true},"streaming_locator_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_streaming_policy":{"schema":{"common_encryption_cbcs":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_fairplay":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_persistent_license":{"type":"TypeBool","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"common_encryption_cenc":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"clear_track":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}},"content_key_to_track_mapping":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"track":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}}}}},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_playready":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_attributes":{"type":"TypeString","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_widevine_custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"envelope_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"no_encryption_enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_transform":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"builtin_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"preset_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true},"interleave_output":{"type":"TypeString","optional":true},"key_frame_interval_in_seconds":{"type":"TypeFloat","optional":true},"max_bitrate_bps":{"type":"TypeInt","optional":true},"max_height":{"type":"TypeInt","optional":true},"max_layers":{"type":"TypeInt","optional":true},"min_bitrate_bps":{"type":"TypeInt","optional":true},"min_height":{"type":"TypeInt","optional":true}}},"maxItems":1},"preset_name":{"type":"TypeString","required":true}}},"maxItems":1},"custom_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"codec":{"type":"TypeList","required":true,"elem":{"schema":{"aac_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":128000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"profile":{"type":"TypeString","optional":true,"default":"AacLc"},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"copy_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"copy_video":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"dd_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":192000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"h264_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":23},"entropy_mode":{"type":"TypeString","optional":true,"computed":true},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"rate_control_mode":{"type":"TypeString","optional":true,"default":"ABR"},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"h265_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":28},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"jpg_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"quality":{"type":"TypeInt","optional":true,"default":70},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"sprite_column":{"type":"TypeInt","optional":true,"default":0},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"png_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1}}},"minItems":1},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"deinterlace":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true,"default":"AutoPixelAdaptive"},"parity":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"fade_in":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"fade_out":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"overlay":{"type":"TypeList","optional":true,"elem":{"schema":{"audio":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}},"maxItems":1},"video":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"opacity":{"type":"TypeFloat","optional":true,"default":1},"position":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"start":{"type":"TypeString","optional":true}}},"maxItems":1}}},"minItems":1},"rotation":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"format":{"type":"TypeList","required":true,"elem":{"schema":{"jpg":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"mp4":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1},"png":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"transport_stream":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1}}},"minItems":1}}},"maxItems":1},"face_detector_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"analysis_resolution":{"type":"TypeString","optional":true,"default":"SourceResolution"},"blur_type":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"face_redactor_mode":{"type":"TypeString","optional":true,"default":"Analyze"}}},"maxItems":1},"on_error_action":{"type":"TypeString","optional":true,"default":"StopProcessingJob"},"relative_priority":{"type":"TypeString","optional":true,"default":"Normal"},"video_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"insights_type":{"type":"TypeString","optional":true,"default":"AllInsights"}}},"maxItems":1}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_country_code":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_code":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_data_network_name":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true,"forceNew":true},"network_address_port_translation":{"type":"TypeList","optional":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"pinhole_maximum_number":{"type":"TypeInt","optional":true,"default":65536},"port_range":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum":{"type":"TypeInt","optional":true,"default":49999},"minimum":{"type":"TypeInt","optional":true,"default":1024}}},"maxItems":1},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":120},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":60}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","optional":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"control_plane_access_name":{"type":"TypeString","optional":true},"core_network_technology":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"interoperability_settings_json":{"type":"TypeString","optional":true},"local_diagnostics_access":{"type":"TypeList","required":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","required":true},"https_server_certificate_url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","optional":true},"custom_location_id":{"type":"TypeString","optional":true},"edge_device_id":{"type":"TypeString","optional":true},"stack_hci_cluster_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"sku":{"type":"TypeString","required":true},"software_version":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","optional":true,"default":1440}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pcc_rule":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precedence":{"type":"TypeInt","required":true},"qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true},"guaranteed_bit_rate":{"type":"TypeList","optional":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"Preemptable"},"qos_indicator":{"type":"TypeInt","required":true}}},"maxItems":1},"service_data_flow_template":{"type":"TypeList","required":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","optional":true,"default":true}}}},"service_precedence":{"type":"TypeInt","required":true},"service_qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":9},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true},"preemption_vulnerability":{"type":"TypeString","optional":true},"qos_indicator":{"type":"TypeInt","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim":{"schema":{"authentication_key":{"type":"TypeString","required":true},"device_type":{"type":"TypeString","optional":true},"integrated_circuit_card_identifier":{"type":"TypeString","required":true,"forceNew":true},"international_mobile_subscriber_identity":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operator_key_code":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","optional":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true},"static_ipv4_address":{"type":"TypeString","optional":true}}},"minItems":1},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","optional":true},"registration_timer_in_seconds":{"type":"TypeInt","optional":true,"default":3240},"slice":{"type":"TypeList","required":true,"elem":{"schema":{"data_network":{"type":"TypeList","required":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":0},"allowed_services_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","required":true},"default_session_type":{"type":"TypeString","optional":true,"default":"IPv4"},"max_buffered_packets":{"type":"TypeInt","optional":true,"default":10},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"NotPreemptable"},"qos_indicator":{"type":"TypeInt","required":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}}}},"default_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":180,"read":5,"delete":180,"update":60}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","required":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","optional":true},"slice_service_type":{"type":"TypeInt","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_monitor_aad_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true,"forceNew":true},"eventhub_name":{"type":"TypeString","optional":true,"forceNew":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"role_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"automation_runbook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"is_global_runbook":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true},"runbook_name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true,"default":false},"webhook_resource_id":{"type":"TypeString","required":true}}}},"azure_app_push_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"azure_function_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"http_trigger_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"email_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"event_hub_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","required":true},"ticket_configuration":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","optional":true,"default":"global","forceNew":true},"logic_app_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"callback_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"short_name":{"type":"TypeString","required":true},"sms_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"webhook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","optional":true,"computed":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_action_group":{"schema":{"action_group_id":{"type":"TypeString","required":true},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"suppression":{"type":"TypeList","required":true,"elem":{"schema":{"recurrence_type":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"end_date_utc":{"type":"TypeString","required":true},"recurrence_monthly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"},"minItems":1},"recurrence_weekly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"start_date_utc":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_activity_log_alert":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"caller":{"type":"TypeString","optional":true},"category":{"type":"TypeString","required":true},"level":{"type":"TypeString","optional":true},"levels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operation_name":{"type":"TypeString","optional":true},"recommendation_category":{"type":"TypeString","optional":true},"recommendation_impact":{"type":"TypeString","optional":true},"recommendation_type":{"type":"TypeString","optional":true},"resource_group":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"previous":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reason":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_id":{"type":"TypeString","optional":true},"resource_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_provider":{"type":"TypeString","optional":true},"resource_providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_type":{"type":"TypeString","optional":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"service_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"services":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"status":{"type":"TypeString","optional":true},"statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sub_status":{"type":"TypeString","optional":true},"sub_statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_action_group":{"schema":{"add_action_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_prometheus_rule_group":{"schema":{"cluster_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"interval":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"action_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":5},"alert":{"type":"TypeString","optional":true},"alert_resolution":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_resolved":{"type":"TypeBool","optional":true},"time_to_resolve":{"type":"TypeString","optional":true}}},"maxItems":1},"annotations":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"expression":{"type":"TypeString","required":true},"for":{"type":"TypeString","optional":true},"labels":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"record":{"type":"TypeString","optional":true},"severity":{"type":"TypeInt","optional":true}}}},"rule_group_enabled":{"type":"TypeBool","optional":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_autoscale_setting":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"send_to_subscription_administrator":{"type":"TypeBool","optional":true,"default":false},"send_to_subscription_co_administrator":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"webhook":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_uri":{"type":"TypeString","required":true}}}}}},"maxItems":1},"predictive":{"type":"TypeList","optional":true,"elem":{"schema":{"look_ahead_time":{"type":"TypeString","optional":true},"scale_mode":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"profile":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeList","required":true,"elem":{"schema":{"default":{"type":"TypeInt","required":true},"maximum":{"type":"TypeInt","required":true},"minimum":{"type":"TypeInt","required":true}}},"maxItems":1},"fixed_date":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hours":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"minutes":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","required":true,"elem":{"schema":{"dimensions":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"divide_by_instance_count":{"type":"TypeBool","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","optional":true},"metric_resource_id":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"statistic":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","required":true},"time_window":{"type":"TypeString","required":true}}},"maxItems":1},"scale_action":{"type":"TypeList","required":true,"elem":{"schema":{"cooldown":{"type":"TypeString","required":true},"direction":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":10}}},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_flow":{"type":"TypeList","required":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"output_stream":{"type":"TypeString","optional":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"transform_kql":{"type":"TypeString","optional":true}}},"minItems":1},"data_sources":{"type":"TypeList","optional":true,"elem":{"schema":{"data_import":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","required":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"stream":{"type":"TypeString","required":true}}}}}},"maxItems":1},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"extension_json":{"type":"TypeString","optional":true},"extension_name":{"type":"TypeString","required":true},"input_data_sources":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"iis_log":{"type":"TypeList","optional":true,"elem":{"schema":{"log_directories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"settings":{"type":"TypeList","optional":true,"elem":{"schema":{"text":{"type":"TypeList","required":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"performance_counter":{"type":"TypeList","optional":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"sampling_frequency_in_seconds":{"type":"TypeInt","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"prometheus_forwarder":{"type":"TypeList","optional":true,"elem":{"schema":{"label_include_filter":{"type":"TypeSet","optional":true,"elem":{"schema":{"label":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"syslog":{"type":"TypeList","optional":true,"elem":{"schema":{"facility_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"log_levels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_event_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"x_path_queries":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_firewall_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}}},"monitor_account":{"type":"TypeList","optional":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"storage_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_blob_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_table_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_declaration":{"type":"TypeSet","optional":true,"elem":{"schema":{"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"stream_name":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule_association":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_collection_rule_id":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"default":"configurationAccessEndpoint","forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","optional":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"log_analytics_destination_type":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"metric":{"type":"TypeSet","optional":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_solution_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"locations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"servicebus_rule_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_metric_alert":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"application_insights_web_test_location_availability_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"component_id":{"type":"TypeString","required":true},"failed_location_count":{"type":"TypeInt","required":true},"web_test_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"auto_mitigate":{"type":"TypeBool","optional":true,"default":true},"criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true,"default":false},"threshold":{"type":"TypeFloat","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"dynamic_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"alert_sensitivity":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"evaluation_failure_count":{"type":"TypeInt","optional":true,"default":4},"evaluation_total_count":{"type":"TypeInt","optional":true,"default":4},"ignore_data_before":{"type":"TypeString","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","optional":true,"default":"PT1M"},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"severity":{"type":"TypeInt","optional":true,"default":3},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_location":{"type":"TypeString","optional":true,"description":"The location of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"target_resource_type":{"type":"TypeString","optional":true,"description":"The resource type (e.g. Microsoft.Compute/virtualMachines) of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"window_size":{"type":"TypeString","optional":true,"default":"PT5M"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scope":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scoped_service":{"schema":{"linked_resource_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_group":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","optional":true},"email_subject":{"type":"TypeString","optional":true}}},"maxItems":1},"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":100},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_type":{"type":"TypeString","optional":true,"default":"ResultCount"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"severity":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","optional":true},"time_window":{"type":"TypeInt","required":true},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_column":{"type":"TypeString","optional":true},"metric_trigger_type":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert_v2":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"custom_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"created_with_api_version":{"type":"TypeString","computed":true},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"failing_periods":{"type":"TypeList","optional":true,"elem":{"schema":{"minimum_failing_periods_to_trigger_alert":{"type":"TypeInt","required":true},"number_of_evaluation_periods":{"type":"TypeInt","required":true}}},"maxItems":1},"metric_measure_column":{"type":"TypeString","optional":true},"operator":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true},"resource_id_column":{"type":"TypeString","optional":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation_method":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"evaluation_frequency":{"type":"TypeString","optional":true},"is_a_legacy_log_analytics_rule":{"type":"TypeBool","computed":true},"is_workspace_alerts_storage_configured":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mute_actions_after_alert_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_time_range_override":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"severity":{"type":"TypeInt","required":true},"skip_query_validation":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"window_duration":{"type":"TypeString","required":true},"workspace_alerts_storage_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"Include"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","required":true}}},"maxItems":1},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_smart_detector_alert_rule":{"schema":{"action_group":{"type":"TypeList","required":true,"elem":{"schema":{"email_subject":{"type":"TypeString","optional":true},"ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"webhook_payload":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"detector_type":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"severity":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling_duration":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database":{"schema":{"auto_pause_delay_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"creation_source_database_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"elastic_pool_id":{"type":"TypeString","optional":true},"geo_backup_enabled":{"type":"TypeBool","optional":true,"default":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"ledger_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"computed":true},"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"maintenance_configuration_name":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeInt","optional":true,"computed":true},"min_capacity":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_replica_count":{"type":"TypeInt","optional":true,"computed":true},"read_scale":{"type":"TypeBool","optional":true,"computed":true},"recover_database_id":{"type":"TypeString","optional":true},"restore_dropped_database_id":{"type":"TypeString","optional":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"sample_name":{"type":"TypeString","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backup_interval_in_hours":{"type":"TypeInt","optional":true,"default":12},"retention_days":{"type":"TypeInt","required":true}}},"maxItems":1},"sku_name":{"type":"TypeString","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Geo"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"transparent_data_encryption_enabled":{"type":"TypeBool","optional":true,"default":true},"zone_redundant":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_database_extended_auditing_policy":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database_vulnerability_assessment_rule_baseline":{"schema":{"baseline_name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"baseline_result":{"type":"TypeSet","required":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"database_name":{"type":"TypeString","required":true,"forceNew":true},"rule_id":{"type":"TypeString","required":true,"forceNew":true},"server_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"max_size_bytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_gb":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_database_settings":{"type":"TypeList","required":true,"elem":{"schema":{"max_capacity":{"type":"TypeFloat","required":true},"min_capacity":{"type":"TypeFloat","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"family":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_server":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}},"minItems":1},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_job_agent":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_job_credential":{"schema":{"job_agent_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_managed_database":{"schema":{"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_days":{"type":"TypeInt","optional":true,"default":7}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_mssql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true},"login_username":{"type":"TypeString","required":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_vulnerability_assessment":{"schema":{"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":true},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_outbound_firewall_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"azuread_administrator":{"type":"TypeList","optional":true,"elem":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login_username":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1,"minItems":1},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_network_restriction_enabled":{"type":"TypeBool","optional":true,"default":false},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transparent_data_encryption_key_vault_key_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_server_dns_alias":{"schema":{"dns_record":{"type":"TypeString","computed":true},"mssql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_mssql_server_extended_auditing_policy":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_account_subscription_id":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_microsoft_support_auditing_policy":{"schema":{"blob_storage_endpoint":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_subscription_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"server_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"server_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_machine":{"schema":{"assessment":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"run_immediately":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"monthly_occurrence":{"type":"TypeInt","optional":true},"start_time":{"type":"TypeString","required":true},"weekly_interval":{"type":"TypeInt","optional":true}}},"maxItems":1}}},"maxItems":1},"auto_backup":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_password":{"type":"TypeString","optional":true},"manual_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"full_backup_frequency":{"type":"TypeString","required":true},"full_backup_start_hour":{"type":"TypeInt","required":true},"full_backup_window_in_hours":{"type":"TypeInt","required":true},"log_backup_frequency_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_period_in_days":{"type":"TypeInt","required":true},"storage_account_access_key":{"type":"TypeString","required":true},"storage_blob_endpoint":{"type":"TypeString","required":true},"system_databases_backup_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"auto_patching":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window_duration_in_minutes":{"type":"TypeInt","required":true},"maintenance_window_starting_hour":{"type":"TypeInt","required":true}}},"maxItems":1},"key_vault_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_url":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"service_principal_name":{"type":"TypeString","required":true,"forceNew":true},"service_principal_secret":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"r_services_enabled":{"type":"TypeBool","optional":true},"sql_connectivity_port":{"type":"TypeInt","optional":true,"default":1433},"sql_connectivity_type":{"type":"TypeString","optional":true,"default":"PRIVATE"},"sql_connectivity_update_password":{"type":"TypeString","optional":true},"sql_connectivity_update_username":{"type":"TypeString","optional":true},"sql_instance":{"type":"TypeList","optional":true,"elem":{"schema":{"adhoc_workloads_optimization_enabled":{"type":"TypeBool","optional":true,"default":false},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"instant_file_initialization_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"lock_pages_in_memory_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"max_dop":{"type":"TypeInt","optional":true,"default":0},"max_server_memory_mb":{"type":"TypeInt","optional":true,"default":2147483647},"min_server_memory_mb":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"sql_license_type":{"type":"TypeString","optional":true,"forceNew":true},"sql_virtual_machine_group_id":{"type":"TypeString","optional":true},"storage_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"data_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"disk_type":{"type":"TypeString","required":true},"log_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"storage_workload_type":{"type":"TypeString","required":true},"system_db_on_data_disk_enabled":{"type":"TypeBool","optional":true,"default":false},"temp_db_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"data_file_count":{"type":"TypeInt","optional":true,"default":8},"data_file_growth_in_mb":{"type":"TypeInt","optional":true,"default":512},"data_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"default_file_path":{"type":"TypeString","required":true},"log_file_growth_mb":{"type":"TypeInt","optional":true,"default":512},"log_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"wsfc_domain_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_bootstrap_account_password":{"type":"TypeString","required":true},"cluster_operator_account_password":{"type":"TypeString","required":true},"sql_service_account_password":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_virtual_machine_availability_group_listener":{"schema":{"availability_group_name":{"type":"TypeString","optional":true,"forceNew":true},"load_balancer_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"probe_port":{"type":"TypeInt","required":true,"forceNew":true},"sql_virtual_machine_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"multi_subnet_ip_configuration":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"replica":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"commit":{"type":"TypeString","required":true,"forceNew":true},"failover_mode":{"type":"TypeString","required":true,"forceNew":true},"readable_secondary":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}}}},"sql_virtual_machine_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_mssql_virtual_machine_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_image_offer":{"type":"TypeString","required":true,"forceNew":true},"sql_image_sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wsfc_domain_profile":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_bootstrap_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_operator_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_subnet_type":{"type":"TypeString","required":true,"forceNew":true},"fqdn":{"type":"TypeString","required":true,"forceNew":true},"organizational_unit_path":{"type":"TypeString","optional":true,"forceNew":true},"sql_service_account_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_primary_key":{"type":"TypeString","optional":true},"storage_account_url":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_password":{"type":"TypeString","optional":true},"backup_retention_days":{"type":"TypeInt","optional":true,"default":7},"create_mode":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"iops":{"type":"TypeInt","optional":true,"computed":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server_active_directory_administrator":{"schema":{"identity_id":{"type":"TypeString","required":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_nat_gateway_public_ip_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nat_gateway_public_ip_prefix_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_netapp_account":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"domain":{"type":"TypeString","required":true},"organizational_unit":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"smb_server_name":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"qos_type":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"size_in_tb":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"daily_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"hourly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"monthly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"maxItems":30},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"azure_vmware_data_store_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"create_from_snapshot_resource_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true,"forceNew":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_clients":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"protocols_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"root_access_enabled":{"type":"TypeBool","optional":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true},"unix_read_write":{"type":"TypeBool","optional":true}}},"maxItems":5},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_features":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_style":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","optional":true,"computed":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","optional":true,"computed":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"application_identifier":{"type":"TypeString","required":true,"forceNew":true},"group_description":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","required":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","required":true},"nfsv41_enabled":{"type":"TypeBool","required":true},"root_access_enabled":{"type":"TypeBool","optional":true,"default":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true,"default":false},"unix_read_write":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":5,"minItems":1},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"security_style":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","required":true,"forceNew":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"volume_spec_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":5,"minItems":2}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_netapp_volume_quota_rule":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota_size_in_kib":{"type":"TypeInt","required":true},"quota_target":{"type":"TypeString","optional":true,"forceNew":true},"quota_type":{"type":"TypeString","required":true,"forceNew":true},"volume_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_network_connection_monitor":{"schema":{"endpoint":{"type":"TypeSet","required":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"coverage_level":{"type":"TypeString","optional":true},"excluded_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"item":{"type":"TypeSet","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"AgentAddress"}}}},"type":{"type":"TypeString","optional":true,"default":"Include"}}},"maxItems":1},"included_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_resource_id":{"type":"TypeString","optional":true,"computed":true},"target_resource_type":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"output_workspace_resource_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"test_configuration":{"type":"TypeSet","required":true,"elem":{"schema":{"http_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"method":{"type":"TypeString","optional":true,"default":"Get"},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","optional":true},"prefer_https":{"type":"TypeBool","optional":true,"default":false},"request_header":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"valid_status_code_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"icmp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"preferred_ip_version":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"success_threshold":{"type":"TypeList","optional":true,"elem":{"schema":{"checks_failed_percent":{"type":"TypeInt","optional":true},"round_trip_time_ms":{"type":"TypeFloat","optional":true}}},"maxItems":1},"tcp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_port_behavior":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"test_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":60}}}},"test_group":{"type":"TypeSet","required":true,"elem":{"schema":{"destination_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"source_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"test_configuration_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_function_azure_traffic_collector":{"schema":{"collector_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"internal_dns_name_label":{"type":"TypeString","optional":true,"computed":true},"internal_domain_name_suffix":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"computed":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_gateway_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_nat_rule_association":{"schema":{"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_security_group_association":{"schema":{"network_interface_id":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager":{"schema":{"cross_tenant_scopes":{"type":"TypeList","computed":true,"elem":{"schema":{"management_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subscriptions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","required":true,"elem":{"schema":{"management_group_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"scope_accesses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule":{"schema":{"action":{"type":"TypeString","required":true},"admin_rule_collection_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"destination_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"source_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule_collection":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"security_admin_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_connectivity_configuration":{"schema":{"applies_to_group":{"type":"TypeList","required":true,"elem":{"schema":{"global_mesh_enabled":{"type":"TypeBool","optional":true},"group_connectivity":{"type":"TypeString","required":true},"network_group_id":{"type":"TypeString","required":true},"use_hub_gateway":{"type":"TypeBool","optional":true}}}},"connectivity_topology":{"type":"TypeString","required":true},"delete_existing_peering_enabled":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"global_mesh_enabled":{"type":"TypeBool","optional":true},"hub":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true},"resource_type":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_deployment":{"schema":{"configuration_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"scope_access":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_network_manager_management_group_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_scope_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"target_scope_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_security_admin_configuration":{"schema":{"apply_on_network_intent_policy_based_services":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_static_member":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_id":{"type":"TypeString","required":true,"forceNew":true},"region":{"type":"TypeString","computed":true},"target_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_network_manager_subscription_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_profile":{"schema":{"container_network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}},"maxItems":1},"container_network_interface_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_rule":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher_flow_log":{"schema":{"enabled":{"type":"TypeBool","required":true},"location":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"storage_account_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"interval_in_minutes":{"type":"TypeInt","optional":true,"default":60},"workspace_id":{"type":"TypeString","required":true},"workspace_region":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}},"maxItems":1},"version":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_new_relic_monitor":{"schema":{"account_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"account_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ingestion_key":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"organization_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","optional":true,"default":"MONTHLY","forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"newrelic-pay-as-you-go-free-live","forceNew":true},"usage_type":{"type":"TypeString","optional":true,"default":"PAYG","forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nginx_certificate":{"schema":{"certificate_virtual_path":{"type":"TypeString","required":true},"key_vault_secret_id":{"type":"TypeString","required":true},"key_virtual_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_nginx_configuration":{"schema":{"config_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true},"package_data":{"type":"TypeString","optional":true},"protected_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"root_file":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_nginx_deployment":{"schema":{"diagnose_support_enabled":{"type":"TypeBool","optional":true},"frontend_private":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"frontend_public":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"ip_address":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logging_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}}},"managed_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}}},"nginx_version":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"application_mode":{"type":"TypeString","required":true},"bundle_id":{"type":"TypeString","required":true},"key_id":{"type":"TypeString","required":true},"team_id":{"type":"TypeString","required":true},"token":{"type":"TypeString","required":true}}},"maxItems":1},"gcm_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"notification_hub_name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_contact":{"schema":{"contact_profile_id":{"type":"TypeString","required":true,"forceNew":true},"ground_station_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"reservation_end_time":{"type":"TypeString","required":true,"forceNew":true},"reservation_start_time":{"type":"TypeString","required":true,"forceNew":true},"spacecraft_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_orbital_contact_profile":{"schema":{"auto_tracking":{"type":"TypeString","required":true},"event_hub_uri":{"type":"TypeString","optional":true},"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"channels":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"demodulation_configuration":{"type":"TypeString","optional":true},"end_point":{"type":"TypeSet","required":true,"elem":{"schema":{"end_point_name":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","optional":true},"port":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"modulation_configuration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_elevation_degrees":{"type":"TypeFloat","optional":true},"minimum_variable_contact_duration":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_spacecraft":{"schema":{"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"norad_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title_line":{"type":"TypeString","required":true},"two_line_elements":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version_enabled":{"type":"TypeBool","optional":true,"default":true},"extensions_to_provision_after_vm_creation":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"failure_suppression_enabled":{"type":"TypeBool","optional":true},"force_extension_execution_on_change":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"computed":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"os_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_data":{"type":"TypeString","optional":true},"linux_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"windows_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"timezone":{"type":"TypeString","optional":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}}}},"maxItems":1}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"priority_mix":{"type":"TypeList","optional":true,"elem":{"schema":{"base_regular_count":{"type":"TypeInt","optional":true,"default":0},"regular_percentage_above_base":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"computed":true},"sku_name":{"type":"TypeString","optional":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"user_data_base64":{"type":"TypeString","optional":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","optional":true},"anti_virus_profile":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"dns_subscription":{"type":"TypeString","optional":true},"file_blocking_profile":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"url_filtering_profile":{"type":"TypeString","optional":true},"vulnerability_profile":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_certificate":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"self_signed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_fqdn_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"fully_qualified_domain_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_outbound_trust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_outbound_untrust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_prefix_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prefix_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_rule":{"schema":{"action":{"type":"TypeString","required":true},"applications":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"audit_comment":{"type":"TypeString","optional":true},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1,"minItems":1},"decryption_rule_type":{"type":"TypeString","optional":true,"default":"None"},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_fqdn_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"inspection_certificate_id":{"type":"TypeString","optional":true},"logging_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"negate_destination":{"type":"TypeBool","optional":true,"default":false},"negate_source":{"type":"TypeBool","optional":true,"default":false},"priority":{"type":"TypeInt","required":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"application-default"},"protocol_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_palo_alto_virtual_network_appliance":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_active_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"The ticket details.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_eligible_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the eligible role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this eligible role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"Ticket details relating to the assignment.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_point_to_site_vpn_gateway":{"schema":{"connection_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true},"route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"elem":{"schema":{"ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"vpn_client_address_pool":{"type":"TypeList","required":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference_internet_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"scale_unit":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_rule":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","required":true,"forceNew":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_definition_group":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","optional":true},"category":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"policy_definition_reference":{"type":"TypeList","required":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true},"policy_group_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","optional":true,"computed":true}}}},"policy_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"configuration":{"type":"TypeList","required":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true},"content_hash":{"type":"TypeString","optional":true,"computed":true},"content_uri":{"type":"TypeString","optional":true,"computed":true},"parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_tenant_configuration":{"schema":{"private_markdown_storage_enforced":{"type":"TypeBool","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true},"administrator_password":{"type":"TypeString","optional":true},"authentication":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory_auth_enabled":{"type":"TypeBool","optional":true,"default":false},"password_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":false},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true},"customer_managed_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replication_role":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_flexible_server_active_directory_administrator":{"schema":{"object_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_database":{"schema":{"charset":{"type":"TypeString","optional":true,"default":"UTF8","forceNew":true},"collation":{"type":"TypeString","optional":true,"default":"en_US.utf8","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_postgresql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_powerbi_embedded":{"schema":{"administrators":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","optional":true,"default":"Gen1","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"target_dns_servers":{"type":"TypeList","required":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"port":{"type":"TypeInt","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","required":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"subnet_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":10},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_zone_name":{"type":"TypeString","required":true,"forceNew":true},"registration_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_endpoint":{"schema":{"custom_dns_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"custom_network_interface_name":{"type":"TypeString","optional":true,"forceNew":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"member_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_dns_zone_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"record_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"type":{"type":"TypeString","computed":true}}}}}}},"private_dns_zone_group":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_zone_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"private_service_connection":{"type":"TypeList","required":true,"elem":{"schema":{"is_manual_connection":{"type":"TypeBool","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_connection_resource_alias":{"type":"TypeString","optional":true,"forceNew":true},"private_connection_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"request_message":{"type":"TypeString","optional":true},"subresource_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_private_endpoint_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","optional":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary":{"type":"TypeBool","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":8},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_proximity_placement_group":{"schema":{"allowed_vm_sizes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ddos_protection_mode":{"type":"TypeString","optional":true,"default":"VirtualNetworkInherited"},"ddos_protection_plan_id":{"type":"TypeString","optional":true},"domain_name_label":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_fqdn":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"prefix_length":{"type":"TypeInt","optional":true,"default":28,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_purview_account":{"schema":{"atlas_kafka_endpoint_primary_connection_string":{"type":"TypeString","computed":true},"atlas_kafka_endpoint_secondary_connection_string":{"type":"TypeString","computed":true},"catalog_endpoint":{"type":"TypeString","computed":true},"guardian_endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_resources":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_namespace_id":{"type":"TypeString","computed":true},"resource_group_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scan_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_recovery_services_vault":{"schema":{"classic_vmware_replication_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"cross_region_restore_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"infrastructure_encryption_enabled":{"type":"TypeBool","required":true},"key_id":{"type":"TypeString","required":true},"use_system_assigned_identity":{"type":"TypeBool","optional":true,"default":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"monitoring":{"type":"TypeList","optional":true,"elem":{"schema":{"alerts_for_all_job_failures_enabled":{"type":"TypeBool","optional":true,"default":true},"alerts_for_critical_operation_failures_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"soft_delete_enabled":{"type":"TypeBool","optional":true,"default":true},"storage_mode_type":{"type":"TypeString","optional":true,"default":"GeoRedundant"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":30,"update":60}},"azurerm_recovery_services_vault_resource_guard_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_guard_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","required":true},"enable_non_ssl_port":{"type":"TypeBool","optional":true,"default":false},"family":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"patch_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window":{"type":"TypeString","optional":true,"default":"PT5H"},"start_hour_utc":{"type":"TypeInt","optional":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"redis_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","optional":true},"aof_storage_connection_string_0":{"type":"TypeString","optional":true},"aof_storage_connection_string_1":{"type":"TypeString","optional":true},"enable_authentication":{"type":"TypeBool","optional":true,"default":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_delta":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_policy":{"type":"TypeString","optional":true,"default":"volatile-lru"},"maxmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"notify_keyspace_events":{"type":"TypeString","optional":true},"rdb_backup_enabled":{"type":"TypeBool","optional":true},"rdb_backup_frequency":{"type":"TypeInt","optional":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","optional":true},"rdb_storage_connection_string":{"type":"TypeString","optional":true}}},"maxItems":1},"redis_version":{"type":"TypeString","optional":true,"computed":true},"replicas_per_master":{"type":"TypeInt","optional":true,"computed":true},"replicas_per_primary":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_redis_enterprise_cluster":{"schema":{"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_enterprise_database":{"schema":{"client_protocol":{"type":"TypeString","optional":true,"default":"Encrypted","forceNew":true},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"clustering_policy":{"type":"TypeString","optional":true,"default":"OSSCluster","forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"default":"VolatileLRU","forceNew":true},"linked_database_group_nickname":{"type":"TypeString","optional":true,"forceNew":true},"linked_database_id":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"module":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"args":{"type":"TypeString","optional":true,"default":"","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}}},"maxItems":4},"name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"port":{"type":"TypeInt","optional":true,"default":10000,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_firewall_rule":{"schema":{"end_ip":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_linked_server":{"schema":{"linked_redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"linked_redis_cache_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_role":{"type":"TypeString","required":true,"forceNew":true},"target_redis_cache_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_relay_hybrid_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"relay_namespace_name":{"type":"TypeString","required":true,"forceNew":true},"requires_client_authorization":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_hybrid_connection_authorization_rule":{"schema":{"hybrid_connection_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_namespace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"metric_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_relay_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_cli":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_power_shell":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_by":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_resource_group_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_resource_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_provider_registration":{"schema":{"feature":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"registered":{"type":"TypeBool","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":30,"update":120}},"azurerm_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_resource_id":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":60}},"azurerm_route":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"communities":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rule_type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_map":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeList","required":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true}}}},"match_criterion":{"type":"TypeList","optional":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_condition":{"type":"TypeString","required":true},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"next_step_if_matched":{"type":"TypeString","optional":true,"default":"Unknown"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_server":{"schema":{"branch_to_branch_traffic_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_route_server_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"route_server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_route_table":{"schema":{"disable_bgp_route_propagation":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_search_service":{"schema":{"allowed_ips":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_failure_mode":{"type":"TypeString","optional":true},"customer_managed_key_enforcement_enabled":{"type":"TypeBool","optional":true,"default":false},"hosting_mode":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","optional":true,"default":1},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","optional":true,"default":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_search_shared_private_link_service":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"search_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_assessment":{"schema":{"additional_data":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"assessment_policy_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeList","required":true,"elem":{"schema":{"cause":{"type":"TypeString","optional":true},"code":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_assessment_policy":{"schema":{"categories":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"implementation_effort":{"type":"TypeString","optional":true},"name":{"type":"TypeString","computed":true},"remediation_description":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true,"default":"Medium"},"threats":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"user_impact":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_auto_provisioning":{"schema":{"auto_provision":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_automation":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","required":true},"trigger_url":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"source":{"type":"TypeList","required":true,"elem":{"schema":{"event_source":{"type":"TypeString","required":true},"rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule":{"type":"TypeList","required":true,"elem":{"schema":{"expected_value":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"property_path":{"type":"TypeString","required":true},"property_type":{"type":"TypeString","required":true}}}}}}}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_contact":{"schema":{"alert_notifications":{"type":"TypeBool","required":true},"alerts_to_admins":{"type":"TypeBool","required":true},"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"default":"default1"},"phone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_server_vulnerability_assessment":{"schema":{"hybrid_machine_id":{"type":"TypeString","optional":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_server_vulnerability_assessment_virtual_machine":{"schema":{"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_setting":{"schema":{"enabled":{"type":"TypeBool","required":true},"setting_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":10,"read":5,"delete":10,"update":10}},"azurerm_security_center_subscription_pricing":{"schema":{"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_extension_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"resource_type":{"type":"TypeString","optional":true,"default":"VirtualMachines"},"subplan":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_workspace":{"schema":{"scope":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sentinel_alert_rule_anomaly_built_in":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_anomaly_duplicate":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"built_in_rule_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"is_default_settings":{"type":"TypeBool","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true},"prioritized_exclude_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prioritize":{"type":"TypeString","optional":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_fusion":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"sub_type":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"severities_allowed":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_machine_learning_behavior_analytics":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_ms_security_incident":{"schema":{"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"display_name_exclude_filter":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name_filter":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_filter":{"type":"TypeString","required":true},"severity_filter":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_nrt":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident_enabled":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_scheduled":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"group_by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_frequency":{"type":"TypeString","optional":true,"default":"PT5H"},"query_period":{"type":"TypeString","optional":true,"default":"PT5H"},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","optional":true,"default":"GreaterThan"},"trigger_threshold":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_threat_intelligence":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_automation_rule":{"schema":{"action_incident":{"type":"TypeList","optional":true,"elem":{"schema":{"classification":{"type":"TypeString","optional":true},"classification_comment":{"type":"TypeString","optional":true},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"owner_id":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true},"status":{"type":"TypeString","optional":true}}}},"action_playbook":{"type":"TypeList","optional":true,"elem":{"schema":{"logic_app_id":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"condition":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"condition_json":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiration":{"type":"TypeString","optional":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true},"triggers_on":{"type":"TypeString","optional":true,"default":"Incidents"},"triggers_when":{"type":"TypeString","optional":true,"default":"Created"}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_sentinel_data_connector_aws_cloud_trail":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_aws_s3":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"destination_table":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sqs_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_azure_active_directory":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_security_center":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_dynamics_365":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_iot":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_cloud_app_security":{"schema":{"alerts_enabled":{"type":"TypeBool","optional":true,"default":true},"discovery_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_microsoft_defender_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_intelligence":{"schema":{"bing_safety_phishing_url_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_emerging_threat_feed_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_365":{"schema":{"exchange_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sharepoint_enabled":{"type":"TypeBool","optional":true,"default":true},"teams_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_office_365_project":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_atp":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_irm":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_power_bi":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence_taxii":{"schema":{"api_root_url":{"type":"TypeString","required":true},"collection_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z"},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"polling_frequency":{"type":"TypeString","optional":true,"default":"OnceAnHour"},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_log_analytics_workspace_onboarding":{"schema":{"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_metadata":{"schema":{"author":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"domains":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verticals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content_id":{"type":"TypeString","required":true},"content_schema_version":{"type":"TypeString","optional":true,"default":"2.0"},"custom_version":{"type":"TypeString","optional":true},"dependency":{"type":"TypeString","optional":true},"first_publish_date":{"type":"TypeString","optional":true},"icon_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"last_publish_date":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true},"preview_images":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"preview_images_dark":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"threat_analysis_tactics":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_analysis_techniques":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_threat_intelligence_indicator":{"schema":{"confidence":{"type":"TypeInt","optional":true,"default":-1},"created_by":{"type":"TypeString","optional":true},"created_on":{"type":"TypeString","computed":true},"defanged":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"extension":{"type":"TypeString","optional":true,"computed":true},"external_id":{"type":"TypeString","computed":true},"external_last_updated_time_utc":{"type":"TypeString","computed":true},"external_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"hashes":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"source_name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}}},"granular_marking":{"type":"TypeList","optional":true,"elem":{"schema":{"language":{"type":"TypeString","optional":true},"marking_ref":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"guid":{"type":"TypeString","computed":true},"indicator_type":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kill_chain_phase":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true}}}},"language":{"type":"TypeString","optional":true},"last_updated_time_utc":{"type":"TypeString","computed":true},"object_marking_refs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parsed_pattern":{"type":"TypeList","computed":true,"elem":{"schema":{"pattern_type_key":{"type":"TypeString","computed":true},"pattern_type_values":{"type":"TypeList","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true},"value_type":{"type":"TypeString","computed":true}}}}}}},"pattern":{"type":"TypeString","required":true},"pattern_type":{"type":"TypeString","required":true},"pattern_version":{"type":"TypeString","optional":true},"revoked":{"type":"TypeBool","optional":true,"default":false},"source":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"validate_from_utc":{"type":"TypeString","required":true},"validate_until_utc":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_watchlist":{"schema":{"default_duration":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"item_search_key":{"type":"TypeString","required":true,"forceNew":true},"labels":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_watchlist_item":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"properties":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"watchlist_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_cluster":{"schema":{"add_on_features":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"azure_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"client_certificate_common_name":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","required":true},"is_admin":{"type":"TypeBool","required":true},"issuer_thumbprint":{"type":"TypeString","optional":true}}}},"client_certificate_thumbprint":{"type":"TypeList","optional":true,"elem":{"schema":{"is_admin":{"type":"TypeBool","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"cluster_code_version":{"type":"TypeString","optional":true,"computed":true},"cluster_endpoint":{"type":"TypeString","computed":true},"diagnostics_config":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_endpoint":{"type":"TypeString","required":true},"protected_account_key_name":{"type":"TypeString","required":true},"queue_endpoint":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"fabric_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_endpoint":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","required":true,"elem":{"schema":{"application_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"client_endpoint_port":{"type":"TypeInt","required":true},"durability_level":{"type":"TypeString","optional":true,"default":"Bronze"},"ephemeral_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"http_endpoint_port":{"type":"TypeInt","required":true},"instance_count":{"type":"TypeInt","required":true},"is_primary":{"type":"TypeBool","required":true},"is_stateless":{"type":"TypeBool","optional":true},"multiple_availability_zones":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reverse_proxy_endpoint_port":{"type":"TypeInt","optional":true}}}},"reliability_level":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_proxy_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"reverse_proxy_certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"service_fabric_zonal_upgrade_mode":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_mode":{"type":"TypeString","required":true},"upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"delta_health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_delta_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0},"max_upgrade_domain_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"force_restart_enabled":{"type":"TypeBool","optional":true},"health_check_retry_timeout":{"type":"TypeString","optional":true,"default":"00:45:00"},"health_check_stable_duration":{"type":"TypeString","optional":true,"default":"00:01:00"},"health_check_wait_duration":{"type":"TypeString","optional":true,"default":"00:00:30"},"health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"upgrade_domain_timeout":{"type":"TypeString","optional":true,"default":"02:00:00"},"upgrade_replica_set_check_timeout":{"type":"TypeString","optional":true,"default":"10675199.02:48:05.4775807"},"upgrade_timeout":{"type":"TypeString","optional":true,"default":"12:00:00"}}},"maxItems":1},"vm_image":{"type":"TypeString","required":true,"forceNew":true},"vmss_zonal_upgrade_mode":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_managed_cluster":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","optional":true},"thumbprint":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"backup_service_enabled":{"type":"TypeBool","optional":true},"client_connection_port":{"type":"TypeInt","required":true},"custom_fabric_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","required":true},"section":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dns_name":{"type":"TypeString","optional":true,"computed":true},"dns_service_enabled":{"type":"TypeBool","optional":true},"http_gateway_port":{"type":"TypeInt","required":true},"lb_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true},"frontend_port":{"type":"TypeInt","required":true},"probe_protocol":{"type":"TypeString","required":true},"probe_request_path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","optional":true,"elem":{"schema":{"application_port_range":{"type":"TypeString","required":true},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"data_disk_size_gb":{"type":"TypeInt","required":true},"data_disk_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"},"ephemeral_port_range":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"multiple_placement_groups_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"primary":{"type":"TypeBool","optional":true},"stateless":{"type":"TypeBool","optional":true},"vm_image_offer":{"type":"TypeString","required":true},"vm_image_publisher":{"type":"TypeString","required":true},"vm_image_sku":{"type":"TypeString","required":true},"vm_image_version":{"type":"TypeString","required":true},"vm_instance_count":{"type":"TypeInt","required":true},"vm_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"certificates":{"type":"TypeList","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}}},"vault_id":{"type":"TypeString","required":true}}}},"vm_size":{"type":"TypeString","required":true}}}},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_wave":{"type":"TypeString","optional":true,"default":"Wave0"},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling_enabled":{"type":"TypeBool","optional":true,"default":false},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","optional":true,"computed":true},"zone_balancing_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":0},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_id":{"type":"TypeString","required":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_network_rule_set":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true,"default":false},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true,"default":true},"enable_express":{"type":"TypeBool","optional":true,"default":false},"enable_partitioning":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"client_scoped_subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"forceNew":true},"is_client_scoped_subscription_durable":{"type":"TypeBool","computed":true},"is_client_scoped_subscription_shareable":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"client_scoped_subscription_enabled":{"type":"TypeBool","optional":true,"default":false},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","optional":true,"default":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription_rule":{"schema":{"action":{"type":"TypeString","optional":true},"correlation_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","optional":true},"correlation_id":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"message_id":{"type":"TypeString","optional":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reply_to":{"type":"TypeString","optional":true},"reply_to_session_id":{"type":"TypeString","optional":true},"session_id":{"type":"TypeString","optional":true},"to":{"type":"TypeString","optional":true}}},"maxItems":1},"filter_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_filter":{"type":"TypeString","optional":true},"sql_filter_compatibility_level":{"type":"TypeInt","computed":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"enable_express":{"type":"TypeBool","optional":true},"enable_partitioning":{"type":"TypeBool","optional":true,"forceNew":true},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"support_ordering":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image":{"schema":{"accelerated_network_support_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"architecture":{"type":"TypeString","optional":true,"default":"x64","forceNew":true},"confidential_vm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"confidential_vm_supported":{"type":"TypeBool","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"disk_types_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true,"forceNew":true},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"identifier":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"max_recommended_vcpu_count":{"type":"TypeInt","optional":true},"min_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"min_recommended_vcpu_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true,"forceNew":true},"purchase_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_note_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"specialized":{"type":"TypeBool","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"community_gallery":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"eula":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"prefix":{"type":"TypeString","required":true,"forceNew":true},"publisher_email":{"type":"TypeString","required":true,"forceNew":true},"publisher_uri":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"permission":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_version":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"image_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_image_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk_snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"replication_mode":{"type":"TypeString","optional":true,"default":"Full","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"hostname":{"type":"TypeString","computed":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"live_trace_enabled":{"type":"TypeBool","optional":true,"default":false},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":30},"service_mode":{"type":"TypeString","optional":true,"default":"Default"},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"upstream_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"category_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"event_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hub_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_network_acl":{"schema":{"default_action":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"sub_resource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"source_network_name":{"type":"TypeString","required":true,"forceNew":true},"source_system_center_virtual_machine_manager_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_site_recovery_hyperv_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_hours":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_hours":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"replication_interval_in_seconds":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_replication_policy_association":{"schema":{"hyperv_site_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_site_recovery_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_network_id":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container_mapping":{"schema":{"automatic_update":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true},"automation_account_id":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_source_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_target_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replicated_vm":{"schema":{"managed_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_id":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_disk_encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","configMode":"Auto","required":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_encryption_key":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"target_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"target_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_replica_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true}}}},"multi_vm_group_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"failover_test_public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"failover_test_static_ip":{"type":"TypeString","optional":true,"computed":true},"failover_test_subnet_name":{"type":"TypeString","optional":true,"computed":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"recovery_public_ip_address_id":{"type":"TypeString","optional":true},"source_network_interface_id":{"type":"TypeString","optional":true,"computed":true},"target_static_ip":{"type":"TypeString","optional":true},"target_subnet_name":{"type":"TypeString","optional":true}}}},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","required":true,"forceNew":true},"target_availability_set_id":{"type":"TypeString","optional":true},"target_boot_diagnostic_storage_account_id":{"type":"TypeString","optional":true},"target_capacity_reservation_group_id":{"type":"TypeString","optional":true},"target_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"target_network_id":{"type":"TypeString","optional":true,"computed":true},"target_proximity_placement_group_id":{"type":"TypeString","optional":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"target_virtual_machine_scale_set_id":{"type":"TypeString","optional":true},"target_zone":{"type":"TypeString","optional":true,"forceNew":true},"test_network_id":{"type":"TypeString","optional":true,"computed":true},"unmanaged_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_uri":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}}}}},"timeouts":{"create":180,"read":5,"delete":80,"update":80}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"primary_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_zone":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"boot_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"failover_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_group":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"minItems":3},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"shutdown_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"source_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_services_vault_hyperv_site":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":180}},"azurerm_site_recovery_vmware_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_vmware_replication_policy_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_snapshot":{"schema":{"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"incremental_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_accelerator":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_active_deployment":{"schema":{"deployment_name":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_api_portal":{"schema":{"gateway_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"https_only_enabled":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_spring_cloud_api_portal_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_api_portal_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"custom_persistent_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"mount_path":{"type":"TypeString","required":true},"read_only_enabled":{"type":"TypeBool","optional":true,"default":false},"share_name":{"type":"TypeString","required":true},"storage_name":{"type":"TypeString","required":true}}},"minItems":1},"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backend_protocol":{"type":"TypeString","optional":true,"default":"Default"},"read_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":300},"send_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":60},"session_affinity":{"type":"TypeString","optional":true,"default":"None"},"session_cookie_max_age":{"type":"TypeInt","optional":true}}},"maxItems":1},"is_public":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"persistent_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","optional":true,"default":"/persistent"},"size_in_gb":{"type":"TypeInt","required":true}}},"maxItems":1},"public_endpoint_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"tls_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_cosmosdb_association":{"schema":{"api_type":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_access_key":{"type":"TypeString","required":true},"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_cassandra_keyspace_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_database_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_graph_name":{"type":"TypeString","optional":true},"cosmosdb_mongo_database_name":{"type":"TypeString","optional":true},"cosmosdb_sql_database_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_mysql_association":{"schema":{"database_name":{"type":"TypeString","required":true},"mysql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_redis_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"redis_access_key":{"type":"TypeString","required":true},"redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_application_live_view":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_build_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"build_result_id":{"type":"TypeString","required":true},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_build_pack_binding":{"schema":{"binding_type":{"type":"TypeString","optional":true},"launch":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_builder_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_builder":{"schema":{"build_pack_group":{"type":"TypeSet","required":true,"elem":{"schema":{"build_pack_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"stack":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_certificate":{"schema":{"certificate_content":{"type":"TypeString","optional":true,"forceNew":true},"exclude_private_key":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_configuration_service":{"schema":{"generation":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"ca_certificate_id":{"type":"TypeString","optional":true},"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"label":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"patterns":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"private_key":{"type":"TypeString","optional":true},"search_paths":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"strict_host_key_checking":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}}}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_connection":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"spring_cloud_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_container_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"arguments":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"commands":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"language_framework":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"server":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_custom_domain":{"schema":{"certificate_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_customized_accelerator":{"schema":{"accelerator_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"git_repository":{"type":"TypeList","required":true,"elem":{"schema":{"basic_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"ca_certificate_id":{"type":"TypeString","optional":true},"commit":{"type":"TypeString","optional":true},"git_tag":{"type":"TypeString","optional":true},"interval_in_seconds":{"type":"TypeInt","optional":true},"ssh_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}}},"maxItems":1},"icon_url":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_accelerator_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_dev_tool_portal":{"schema":{"application_accelerator_enabled":{"type":"TypeBool","optional":true,"computed":true},"application_live_view_enabled":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"metadata_url":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway":{"schema":{"api_metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"documentation_url":{"type":"TypeString","optional":true},"server_url":{"type":"TypeString","optional":true},"title":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"application_performance_monitoring_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verification_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origin_patterns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","optional":true},"exposed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"max_age_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"https_only":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"default":"1"},"memory":{"type":"TypeString","optional":true,"default":"2Gi"}}},"maxItems":1},"sensitive_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_route_config":{"schema":{"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"open_api":{"type":"TypeList","optional":true,"elem":{"schema":{"uri":{"type":"TypeString","optional":true}}},"maxItems":1},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeString","optional":true,"default":"HTTP"},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"classification_tags":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"sso_validation_enabled":{"type":"TypeBool","optional":true},"title":{"type":"TypeString","optional":true},"token_relay":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","optional":true}}}},"spring_cloud_app_id":{"type":"TypeString","optional":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"sso_validation_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_java_deployment":{"schema":{"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"jvm_options":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"default":"Java_8"},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_service":{"schema":{"build_agent_pool_size":{"type":"TypeString","optional":true},"config_server_git_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"pattern":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"container_registry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"server":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"default_build_service":{"type":"TypeList","optional":true,"elem":{"schema":{"container_registry_name":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"log_stream_public_endpoint_enabled":{"type":"TypeBool","optional":true},"marketplace":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"plan":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"app_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"app_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"cidr_ranges":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":3},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"read_timeout_seconds":{"type":"TypeInt","optional":true},"service_runtime_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_runtime_subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_registry_enabled":{"type":"TypeBool","optional":true},"service_registry_id":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"S0","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"sample_rate":{"type":"TypeFloat","optional":true,"default":10}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_date":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","optional":true,"computed":true},"elastic_pool_name":{"type":"TypeString","optional":true,"computed":true},"encryption":{"type":"TypeString","computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"operation_mode":{"type":"TypeString","optional":true,"default":"Import"},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_size_bytes":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_scale":{"type":"TypeBool","optional":true,"default":false},"requested_service_objective_id":{"type":"TypeString","optional":true,"computed":true},"requested_service_objective_name":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"source_database_deletion_date":{"type":"TypeString","optional":true,"computed":true},"source_database_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_elasticpool":{"schema":{"creation_date":{"type":"TypeString","computed":true},"db_dtu_max":{"type":"TypeInt","optional":true,"computed":true},"db_dtu_min":{"type":"TypeInt","optional":true,"computed":true},"dtu":{"type":"TypeInt","required":true},"edition":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_size":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_servers":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_database":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"default":false},"login":{"type":"TypeString","required":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"computed":true},"email_addresses":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ssh_public_key":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_stack_hci_cluster":{"schema":{"automanage_configuration_id":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site":{"schema":{"api_key":{"type":"TypeString","computed":true},"default_host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_size":{"type":"TypeString","optional":true,"default":"Free"},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"static_site_id":{"type":"TypeString","required":true,"forceNew":true},"validation_token":{"type":"TypeString","computed":true},"validation_type":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"account_kind":{"type":"TypeString","optional":true,"default":"StorageV2"},"account_replication_type":{"type":"TypeString","required":true},"account_tier":{"type":"TypeString","required":true,"forceNew":true},"allow_nested_items_to_be_public":{"type":"TypeBool","optional":true,"default":true},"allowed_copy_scope":{"type":"TypeString","optional":true},"azure_files_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","required":true},"domain_sid":{"type":"TypeString","required":true},"forest_name":{"type":"TypeString","required":true},"netbios_domain_name":{"type":"TypeString","required":true},"storage_sid":{"type":"TypeString","required":true}}},"maxItems":1},"directory_type":{"type":"TypeString","required":true}}},"maxItems":1},"blob_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"change_feed_enabled":{"type":"TypeBool","optional":true,"default":false},"change_feed_retention_in_days":{"type":"TypeInt","optional":true},"container_delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"default_service_version":{"type":"TypeString","optional":true,"computed":true},"delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"last_access_time_enabled":{"type":"TypeBool","optional":true,"default":false},"restore_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true}}},"maxItems":1},"versioning_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cross_tenant_replication_enabled":{"type":"TypeBool","optional":true,"default":true},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"use_subdomain":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_to_oauth_authentication":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_https_traffic_only":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_protected_append_writes":{"type":"TypeBool","required":true},"period_since_creation_in_days":{"type":"TypeInt","required":true},"state":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"is_hns_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"large_file_share_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"default":"TLS1_2"},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"nfsv3_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"queue_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"queue_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"hour_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"logging":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"delete":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"minute_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"choice":{"type":"TypeString","optional":true,"default":"MicrosoftRouting"},"publish_internet_endpoints":{"type":"TypeBool","optional":true,"default":false},"publish_microsoft_endpoints":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sas_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_action":{"type":"TypeString","optional":true,"default":"Log"},"expiration_period":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"sftp_enabled":{"type":"TypeBool","optional":true,"default":false},"share_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"smb":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"channel_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"kerberos_ticket_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"multichannel_enabled":{"type":"TypeBool","optional":true,"default":false},"versions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"shared_access_key_enabled":{"type":"TypeBool","optional":true,"default":true},"static_website":{"type":"TypeList","optional":true,"elem":{"schema":{"error_404_document":{"type":"TypeString","optional":true},"index_document":{"type":"TypeString","optional":true}}},"maxItems":1},"table_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_account_customer_managed_key":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_local_user":{"schema":{"home_directory":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","computed":true},"permission_scope":{"type":"TypeList","optional":true,"elem":{"schema":{"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"create":{"type":"TypeBool","optional":true,"default":false},"delete":{"type":"TypeBool","optional":true,"default":false},"list":{"type":"TypeBool","optional":true,"default":false},"read":{"type":"TypeBool","optional":true,"default":false},"write":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_name":{"type":"TypeString","required":true},"service":{"type":"TypeString","required":true}}}},"sid":{"type":"TypeString","computed":true},"ssh_authorized_key":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true}}}},"ssh_key_enabled":{"type":"TypeBool","optional":true,"default":false},"ssh_password_enabled":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_network_rules":{"schema":{"bypass":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_subnet_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"cache_control":{"type":"TypeString","optional":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallelism":{"type":"TypeInt","optional":true,"default":8,"forceNew":true},"size":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"source_content":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_blob_inventory_policy":{"schema":{"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"exclude_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"include_blob_versions":{"type":"TypeBool","optional":true,"default":false},"include_deleted":{"type":"TypeBool","optional":true,"default":false},"include_snapshots":{"type":"TypeBool","optional":true,"default":false},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10}}},"maxItems":1},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true},"schema_fields":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","optional":true,"default":"private"},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_filesystem":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"group":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"owner":{"type":"TypeString","optional":true,"computed":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_path":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"filesystem_name":{"type":"TypeString","required":true,"forceNew":true},"group":{"type":"TypeString","optional":true,"computed":true},"owner":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","required":true,"forceNew":true},"resource":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_encryption_scope":{"schema":{"infrastructure_encryption_required":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"base_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","optional":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"snapshot":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"version":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"filters":{"type":"TypeList","required":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operation":{"type":"TypeString","optional":true,"default":"=="},"value":{"type":"TypeString","required":true}}}},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_agent":{"schema":{"arc_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"arc_virtual_machine_uuid":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_job_definition":{"schema":{"agent_name":{"type":"TypeString","optional":true},"copy_mode":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source_name":{"type":"TypeString","required":true,"forceNew":true},"source_sub_path":{"type":"TypeString","optional":true,"forceNew":true},"storage_mover_project_id":{"type":"TypeString","required":true,"forceNew":true},"target_name":{"type":"TypeString","required":true,"forceNew":true},"target_sub_path":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_project":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_source_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"export":{"type":"TypeString","optional":true,"forceNew":true},"host":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nfs_version":{"type":"TypeString","optional":true,"default":"NFSauto","forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_target_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_object_replication":{"schema":{"destination_object_replication_id":{"type":"TypeString","computed":true},"destination_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"copy_blobs_created_after":{"type":"TypeString","optional":true,"default":"OnlyNewObjects"},"destination_container_name":{"type":"TypeString","required":true,"forceNew":true},"filter_out_blobs_with_prefix":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"source_container_name":{"type":"TypeString","required":true,"forceNew":true}}}},"source_object_replication_id":{"type":"TypeString","computed":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_queue":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}}},"id":{"type":"TypeString","required":true}}}},"enabled_protocol":{"type":"TypeString","optional":true,"default":"SMB","forceNew":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeInt","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_directory":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"share_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_file":{"schema":{"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_length":{"type":"TypeInt","computed":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","optional":true,"default":"","forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"storage_share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","optional":true,"default":"AllowAllTraffic"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync_cloud_endpoint":{"schema":{"file_share_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_sync_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"storage_sync_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_storage_table":{"schema":{"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","required":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"streaming_capacity":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_stream_analytics_function_javascript_uda":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"script":{"type":"TypeString","required":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_function_javascript_udf":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","optional":true,"computed":true},"content_storage_policy":{"type":"TypeString","optional":true,"default":"SystemAccount"},"data_locale":{"type":"TypeString","optional":true,"computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":5},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":0},"events_out_of_order_policy":{"type":"TypeString","optional":true,"default":"Adjust"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"job_id":{"type":"TypeString","computed":true},"job_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_error_policy":{"type":"TypeString","optional":true,"default":"Drop"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_id":{"type":"TypeString","optional":true},"streaming_units":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transformation_query":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true,"default":"Cloud","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job_schedule":{"schema":{"last_output_time":{"type":"TypeString","computed":true},"start_mode":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5}},"azurerm_stream_analytics_output_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"batch_max_wait_time":{"type":"TypeString","optional":true},"batch_min_rows":{"type":"TypeInt","optional":true},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_cosmosdb":{"schema":{"container_name":{"type":"TypeString","required":true},"cosmosdb_account_key":{"type":"TypeString","required":true},"cosmosdb_sql_database_id":{"type":"TypeString","required":true},"document_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_function":{"schema":{"api_key":{"type":"TypeString","required":true},"batch_max_count":{"type":"TypeInt","optional":true,"default":100},"batch_max_in_bytes":{"type":"TypeInt","optional":true,"default":262144},"function_app":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_mssql":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"database":{"type":"TypeString","required":true,"forceNew":true},"max_batch_count":{"type":"TypeFloat","optional":true,"default":10000},"max_writer_count":{"type":"TypeFloat","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_powerbi":{"schema":{"dataset":{"type":"TypeString","required":true},"group_id":{"type":"TypeString","required":true},"group_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true},"token_user_display_name":{"type":"TypeString","optional":true},"token_user_principal_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_queue":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"queue_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_topic":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_synapse":{"schema":{"database":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_table":{"schema":{"batch_size":{"type":"TypeInt","required":true},"columns_to_remove":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_mssql":{"schema":{"database":{"type":"TypeString","required":true},"delta_snapshot_query":{"type":"TypeString","optional":true},"full_snapshot_query":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"refresh_interval_duration":{"type":"TypeString","optional":true},"refresh_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_blob":{"schema":{"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub_v2":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_iothub":{"schema":{"endpoint":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"iothub_namespace":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"shared_access_policy_key":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"delegation":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"service_delegation":{"type":"TypeList","required":true,"elem":{"schema":{"actions":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}},"maxItems":1}}}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","optional":true,"computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_endpoint_policy_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"service_endpoints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_nat_gateway_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_network_security_group_association":{"schema":{"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_route_table_association":{"schema":{"route_table_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_service_endpoint_storage_policy":{"schema":{"definition":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"service":{"type":"TypeString","optional":true,"default":"Microsoft.Storage"},"service_resources":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription":{"schema":{"alias":{"type":"TypeString","optional":true,"description":"The Alias Name of the subscription. If omitted a new UUID will be generated for this property.","computed":true,"forceNew":true},"billing_scope_id":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true,"description":"The GUID of the Subscription.","computed":true,"forceNew":true},"subscription_name":{"type":"TypeString","required":true,"description":"The Display Name for the Subscription."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID to which the subscription belongs","computed":true},"workload":{"type":"TypeString","optional":true,"description":"The workload type for the Subscription. Possible values are `Production` (default) and `DevTest`.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_synapse_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_azure":{"schema":{"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_self_hosted":{"schema":{"authorization_key_primary":{"type":"TypeString","computed":true},"authorization_key_secondary":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_linked_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_private_link_hub":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_role_assignment":{"schema":{"principal_id":{"type":"TypeString","required":true,"forceNew":true},"role_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_spark_pool":{"schema":{"auto_pause":{"type":"TypeList","optional":true,"elem":{"schema":{"delay_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true},"min_node_count":{"type":"TypeInt","required":true}}},"maxItems":1},"cache_size":{"type":"TypeInt","optional":true},"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_executor_allocation_enabled":{"type":"TypeBool","optional":true,"default":false},"library_requirement":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"max_executors":{"type":"TypeInt","optional":true},"min_executors":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true},"node_size":{"type":"TypeString","required":true},"node_size_family":{"type":"TypeString","required":true},"session_level_packages_enabled":{"type":"TypeBool","optional":true,"default":false},"spark_config":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"spark_events_folder":{"type":"TypeString","optional":true,"default":"/events"},"spark_log_folder":{"type":"TypeString","optional":true,"default":"/logs"},"spark_version":{"type":"TypeString","optional":true,"default":"2.4"},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"data_encrypted":{"type":"TypeBool","optional":true},"geo_backup_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_database_id":{"type":"TypeString","optional":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"point_in_time":{"type":"TypeString","required":true,"forceNew":true},"source_database_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sql_pool_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment_baseline":{"schema":{"baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"rule_name":{"type":"TypeString","required":true},"sql_pool_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_classifier":{"schema":{"context":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"importance":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"member_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true},"workload_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_group":{"schema":{"importance":{"type":"TypeString","optional":true,"default":"normal"},"max_resource_percent":{"type":"TypeInt","required":true},"max_resource_percent_per_request":{"type":"TypeFloat","optional":true,"default":3},"min_resource_percent":{"type":"TypeInt","required":true},"min_resource_percent_per_request":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_execution_timeout_in_seconds":{"type":"TypeInt","optional":true},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace":{"schema":{"aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"azure_devops_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"last_commit_id":{"type":"TypeString","optional":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"compute_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","optional":true,"default":"cmk"},"key_versionless_id":{"type":"TypeString","required":true}}},"maxItems":1},"data_exfiltration_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"github_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","optional":true},"last_commit_id":{"type":"TypeString","optional":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"linking_allowed_for_aad_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sql_administrator_login":{"type":"TypeString","optional":true,"forceNew":true},"sql_administrator_login_password":{"type":"TypeString","optional":true},"sql_identity_control_enabled":{"type":"TypeBool","optional":true},"storage_data_lake_gen2_filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_key":{"schema":{"active":{"type":"TypeBool","required":true},"customer_managed_key_name":{"type":"TypeString","required":true},"customer_managed_key_versionless_id":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_sql_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true},"workspace_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_template_deployment":{"schema":{"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"parameters_body":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"template_body":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_tenant_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_traffic_manager_azure_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_external_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_nested_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"minimum_child_endpoints":{"type":"TypeInt","required":true},"minimum_required_child_endpoints_ipv4":{"type":"TypeInt","optional":true},"minimum_required_child_endpoints_ipv6":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","required":true,"elem":{"schema":{"relative_name":{"type":"TypeString","required":true,"forceNew":true},"ttl":{"type":"TypeInt","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","computed":true},"max_return":{"type":"TypeInt","optional":true},"monitor_config":{"type":"TypeList","required":true,"elem":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"expected_status_code_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":30},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":10},"tolerated_number_of_failures":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"profile_status":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","required":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer":{"schema":{"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer_edge_module":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"video_analyzer_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_desktop_application":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"command_line_argument_policy":{"type":"TypeString","required":true},"command_line_arguments":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true,"computed":true},"icon_index":{"type":"TypeInt","optional":true},"icon_path":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","required":true},"show_in_portal":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_application_group":{"schema":{"default_desktop_display_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"load_balancer_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_sessions_allowed":{"type":"TypeInt","optional":true,"default":999999},"name":{"type":"TypeString","required":true,"forceNew":true},"personal_desktop_assignment_type":{"type":"TypeString","optional":true,"forceNew":true},"preferred_app_group_type":{"type":"TypeString","optional":true,"default":"Desktop","description":"Preferred App Group type to display","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scheduled_agent_updates":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","required":true}}},"maxItems":2},"timezone":{"type":"TypeString","optional":true,"default":"UTC"},"use_session_host_timezone":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"start_vm_on_connect":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"validate_environment":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool_registration_info":{"schema":{"expiration_date":{"type":"TypeString","required":true},"hostpool_id":{"type":"TypeString","required":true,"forceNew":true},"token":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_desktop_scaling_plan":{"schema":{"description":{"type":"TypeString","optional":true},"exclusion_tag":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"hostpool_id":{"type":"TypeString","required":true},"scaling_plan_enabled":{"type":"TypeBool","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"off_peak_load_balancing_algorithm":{"type":"TypeString","required":true},"off_peak_start_time":{"type":"TypeString","required":true},"peak_load_balancing_algorithm":{"type":"TypeString","required":true},"peak_start_time":{"type":"TypeString","required":true},"ramp_down_capacity_threshold_percent":{"type":"TypeInt","required":true},"ramp_down_force_logoff_users":{"type":"TypeBool","required":true},"ramp_down_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_down_minimum_hosts_percent":{"type":"TypeInt","required":true},"ramp_down_notification_message":{"type":"TypeString","required":true},"ramp_down_start_time":{"type":"TypeString","required":true},"ramp_down_stop_hosts_when":{"type":"TypeString","required":true},"ramp_down_wait_time_minutes":{"type":"TypeInt","required":true},"ramp_up_capacity_threshold_percent":{"type":"TypeInt","optional":true},"ramp_up_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_up_minimum_hosts_percent":{"type":"TypeInt","optional":true},"ramp_up_start_time":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace":{"schema":{"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace_application_group_association":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","optional":true,"forceNew":true},"default_route_table_id":{"type":"TypeString","computed":true},"hub_routing_preference":{"type":"TypeString","optional":true,"default":"ExpressRoute"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"next_hop_ip_address":{"type":"TypeString","required":true}}}},"sku":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_auto_scale_min_capacity":{"type":"TypeInt","optional":true,"default":2},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_connection_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"static_vnet_local_route_override_criteria":{"type":"TypeString","optional":true,"default":"Contains","forceNew":true},"static_vnet_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true},"next_hop_ip_address":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_ip":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_route_table_route":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"},"route_table_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_routing_intent":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"routing_policy":{"type":"TypeList","required":true,"elem":{"schema":{"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_security_partner_provider":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","required":true,"forceNew":true}}},"maxItems":1},"availability_set_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"delete_data_disks_on_termination":{"type":"TypeBool","optional":true,"default":false},"delete_os_disk_on_termination":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"os_profile":{"type":"TypeSet","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","required":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true,"default":false},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":false},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"primary_network_interface_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_data_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"vhd_uri":{"type":"TypeString","optional":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"storage_image_reference":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"storage_os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"image_uri":{"type":"TypeString","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","optional":true,"computed":true},"vhd_uri":{"type":"TypeString","optional":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vm_size":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_data_disk_attachment":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Attach","forceNew":true},"lun":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_machine_scale_set":{"schema":{"automatic_os_upgrade":{"type":"TypeBool","optional":true,"default":false},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"health_probe_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeSet","required":true,"elem":{"schema":{"accelerated_networking":{"type":"TypeBool","optional":true},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"public_ip_address_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","required":true},"idle_timeout":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"subnet_id":{"type":"TypeString","required":true}}}},"ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","required":true}}}},"os_profile":{"type":"TypeList","required":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name_prefix":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","optional":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeSet","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true},"provision_vm_agent":{"type":"TypeBool","optional":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"priority":{"type":"TypeString","optional":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_batch_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","optional":true,"default":20},"pause_time_between_batches":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1},"single_placement_group":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"storage_profile_data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true}}}},"storage_profile_image_reference":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"offer":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_profile_os_disk":{"type":"TypeSet","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"image":{"type":"TypeString","optional":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"vhd_containers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_policy_mode":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_scale_set_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_scale_set_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"machine_scope":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exclude_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"include_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"bgp_community":{"type":"TypeString","optional":true},"ddos_protection_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"enable":{"type":"TypeBool","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"enforcement":{"type":"TypeString","required":true}}},"maxItems":1},"flow_timeout_in_minutes":{"type":"TypeInt","optional":true},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"security_group":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_dns_servers":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","optional":true,"computed":true},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","optional":true},"peer_weight":{"type":"TypeInt","optional":true},"peering_addresses":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"apipa_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"default_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_name":{"type":"TypeString","optional":true,"computed":true},"tunnel_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1}}},"maxItems":1},"custom_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"default_local_network_gateway_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"generation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true,"default":"vnetGatewayConfig"},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":3},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"vpn_client_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","optional":true},"aad_issuer":{"type":"TypeString","optional":true},"aad_tenant":{"type":"TypeString","optional":true},"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","optional":true},"radius_server_secret":{"type":"TypeString","optional":true},"revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"vpn_auth_types":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":3},"vpn_client_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"vpn_type":{"type":"TypeString","optional":true,"default":"RouteBased","forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"connection_protocol":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_bgp_addresses":{"type":"TypeList","optional":true,"elem":{"schema":{"primary":{"type":"TypeString","required":true},"secondary":{"type":"TypeString","optional":true}}},"maxItems":1},"dpd_timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"express_route_circuit_id":{"type":"TypeString","optional":true,"forceNew":true},"express_route_gateway_bypass":{"type":"TypeBool","optional":true,"computed":true},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_datasize":{"type":"TypeInt","optional":true,"computed":true},"sa_lifetime":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"local_network_gateway_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_virtual_network_gateway_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_weight":{"type":"TypeInt","optional":true,"computed":true},"shared_key":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true,"forceNew":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","optional":true,"computed":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway_nat_rule":{"schema":{"external_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_peering":{"schema":{"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","optional":true,"default":true},"disable_vpn_encryption":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"office365_local_breakout_category":{"type":"TypeString","optional":true,"default":"None"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"Standard"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vmware_cluster":{"schema":{"cluster_node_count":{"type":"TypeInt","required":true},"cluster_number":{"type":"TypeInt","computed":true},"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"vmware_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_vmware_express_route_authorization":{"schema":{"express_route_authorization_id":{"type":"TypeString","computed":true},"express_route_authorization_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_netapp_volume_attachment":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"netapp_volume_id":{"type":"TypeString","required":true,"forceNew":true},"vmware_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"management_cluster":{"type":"TypeList","required":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","required":true}}},"maxItems":1},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_subnet_cidr":{"type":"TypeString","required":true,"forceNew":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"nsxt_password":{"type":"TypeString","optional":true,"forceNew":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcenter_password":{"type":"TypeString","optional":true,"forceNew":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"create":600,"read":5,"delete":600,"update":600}},"azurerm_voice_services_communications_gateway":{"schema":{"api_bridge":{"type":"TypeString","optional":true},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse","forceNew":true},"codecs":{"type":"TypeString","required":true},"connectivity":{"type":"TypeString","required":true,"forceNew":true},"e911_type":{"type":"TypeString","required":true},"emergency_dial_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_teams_voicemail_pilot_number":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"on_prem_mcp_enabled":{"type":"TypeBool","optional":true},"platforms":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_location":{"type":"TypeSet","required":true,"elem":{"schema":{"allowed_media_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_signaling_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"esrp_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true},"operator_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_voice_services_communications_gateway_test_line":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"purpose":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_services_communications_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway":{"schema":{"bgp_route_translation_for_nat_enabled":{"type":"TypeBool","optional":true,"default":false},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true,"forceNew":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instance_1_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"peer_weight":{"type":"TypeInt","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scale_unit":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_gateway_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_vpn_site_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"traffic_selector_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"local_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"remote_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_link":{"type":"TypeList","required":true,"elem":{"schema":{"bandwidth_mbps":{"type":"TypeInt","optional":true,"default":10},"bgp_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default"},"custom_bgp_address":{"type":"TypeSet","optional":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"ip_configuration_id":{"type":"TypeString","required":true}}}},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"encryption_algorithm":{"type":"TypeString","required":true},"ike_encryption_algorithm":{"type":"TypeString","required":true},"ike_integrity_algorithm":{"type":"TypeString","required":true},"integrity_algorithm":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kb":{"type":"TypeInt","required":true},"sa_lifetime_sec":{"type":"TypeInt","required":true}}},"minItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"policy_based_traffic_selector_enabled":{"type":"TypeBool","optional":true,"default":false},"protocol":{"type":"TypeString","optional":true,"default":"IKEv2"},"ratelimit_enabled":{"type":"TypeBool","optional":true,"default":false},"route_weight":{"type":"TypeInt","optional":true,"default":0},"shared_key":{"type":"TypeString","optional":true},"vpn_site_link_id":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway_nat_rule":{"schema":{"external_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"external_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"internal_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_server_configuration":{"schema":{"azure_active_directory_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"issuer":{"type":"TypeString","required":true},"tenant":{"type":"TypeString","required":true}}},"minItems":1},"client_revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kilobytes":{"type":"TypeInt","required":true},"sa_lifetime_seconds":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"radius":{"type":"TypeList","optional":true,"elem":{"schema":{"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"server":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"score":{"type":"TypeInt","required":true},"secret":{"type":"TypeString","required":true}}}},"server_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vpn_authentication_types":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"vpn_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_server_configuration_policy_group":{"schema":{"is_default":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"priority":{"type":"TypeInt","optional":true,"default":0},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_site":{"schema":{"address_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"device_model":{"type":"TypeString","optional":true},"device_vendor":{"type":"TypeString","optional":true},"link":{"type":"TypeList","optional":true,"elem":{"schema":{"bgp":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"peering_address":{"type":"TypeString","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"provider_name":{"type":"TypeString","optional":true},"speed_in_mbps":{"type":"TypeInt","optional":true,"default":0}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"o365_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"traffic_category":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"default_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"optimize_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_app_hybrid_connection":{"schema":{"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true},"web_app_id":{"type":"TypeString","required":true,"description":"The ID of the Web App for this Hybrid Connection.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_application_firewall_policy":{"schema":{"custom_rules":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_conditions":{"type":"TypeList","required":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_variables":{"type":"TypeList","required":true,"elem":{"schema":{"selector":{"type":"TypeString","optional":true},"variable_name":{"type":"TypeString","required":true}}}},"negation_condition":{"type":"TypeBool","optional":true},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","required":true},"rule_type":{"type":"TypeString","required":true}}}},"http_listener_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_rules":{"type":"TypeList","required":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","optional":true,"default":"3.2"}}},"maxItems":1},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"selector_match_operator":{"type":"TypeString","required":true}}}},"managed_rule_set":{"type":"TypeList","required":true,"elem":{"schema":{"rule_group_override":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"rule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"id":{"type":"TypeString","required":true}}}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","required":true}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"path_based_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"policy_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"file_upload_limit_in_mb":{"type":"TypeInt","optional":true,"default":100},"log_scrubbing":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true,"description":"When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to."},"selector_match_operator":{"type":"TypeString","optional":true,"default":"Equals"}}}}}},"maxItems":1},"max_request_body_size_in_kb":{"type":"TypeInt","optional":true,"default":128},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"request_body_check":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"capacity":{"type":"TypeInt","optional":true,"default":1},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_hub":{"schema":{"anonymous_connections_enabled":{"type":"TypeBool","optional":true,"default":false},"event_handler":{"type":"TypeList","optional":true,"elem":{"schema":{"auth":{"type":"TypeList","optional":true,"elem":{"schema":{"managed_identity_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"system_events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_event_pattern":{"type":"TypeString","optional":true}}}},"event_listener":{"type":"TypeList","optional":true,"elem":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"system_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_network_acl":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"description":"Can the Function App only be accessed via HTTPS?","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Function App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","description":"The identifier used by App Service to perform domain ownership verification via DNS TXT record.","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","description":"The default hostname of the Windows Function App Slot.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","description":"The Kind value for this Windows Function App Slot.","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Windows Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","description":"A list of outbound IP addresses. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12`.","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","description":"A list of possible outbound IP addresses, not all of which are necessarily in use. This is a superset of `outbound_ip_address_list`. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of possible outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12,52.143.43.17`. This is a superset of `outbound_ip_addresses`. For example `[\"52.23.25.3\", \"52.143.43.12\",\"52.143.43.17\"]`.","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_windows_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","required":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_web_app_slot":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"computed":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}}},"dataSources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"data_residency_location":{"type":"TypeString","description":"Location in which the B2C tenant is hosted and data resides.","computed":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix."},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","description":"Billing SKU for the B2C tenant.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"read":5}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"filtered_sync_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notifications":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","computed":true},"notify_global_admins":{"type":"TypeBool","computed":true}}}},"replica_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"external_access_enabled":{"type":"TypeBool","computed":true},"public_certificate":{"type":"TypeString","computed":true}}}},"security":{"type":"TypeList","computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","computed":true},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","computed":true},"ntlm_v1_enabled":{"type":"TypeBool","computed":true},"sync_kerberos_passwords":{"type":"TypeBool","computed":true},"sync_ntlm_passwords":{"type":"TypeBool","computed":true},"sync_on_prem_passwords":{"type":"TypeBool","computed":true},"tls_v1_enabled":{"type":"TypeBool","computed":true}}}},"sku":{"type":"TypeString","computed":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_advisor_recommendations":{"schema":{"filter_by_category":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter_by_resource_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"recommendations":{"type":"TypeList","computed":true,"elem":{"schema":{"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"impact":{"type":"TypeString","computed":true},"recommendation_name":{"type":"TypeString","computed":true},"recommendation_type_id":{"type":"TypeString","computed":true},"resource_name":{"type":"TypeString","computed":true},"resource_type":{"type":"TypeString","computed":true},"suppression_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"updated_time":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":10}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"management":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"proxy":{"type":"TypeList","computed":true,"elem":{"schema":{"default_ssl_binding":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"scm":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_api_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notification_sender_email":{"type":"TypeString","computed":true},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"publisher_email":{"type":"TypeString","computed":true},"publisher_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scm_url":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"revision":{"type":"TypeString","required":true},"service_url":{"type":"TypeString","computed":true},"soap_pass_through":{"type":"TypeBool","computed":true},"subscription_key_parameter_names":{"type":"TypeList","computed":true,"elem":{"schema":{"header":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true}}}},"subscription_required":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"version_set_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"version_header_name":{"type":"TypeString","computed":true},"version_query_name":{"type":"TypeString","computed":true},"versioning_scheme":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true},"certificate_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"request_client_certificate_enabled":{"type":"TypeBool","computed":true},"tls10_enabled":{"type":"TypeBool","computed":true},"tls11_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"external_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true},"approval_required":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"product_id":{"type":"TypeString","required":true},"published":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","computed":true},"subscriptions_limit":{"type":"TypeInt","computed":true},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true},"email":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"note":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"state":{"type":"TypeString","computed":true},"user_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","computed":true}}}},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","required":true},"label":{"type":"TypeString","optional":true,"default":""},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_configuration_keys":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"items":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"label":{"type":"TypeString","computed":true},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}}}},"key":{"type":"TypeString","optional":true,"default":""},"label":{"type":"TypeString","optional":true,"default":""}},"timeouts":{"read":5}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_cert_enabled":{"type":"TypeBool","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","computed":true},"acr_user_managed_identity_client_id":{"type":"TypeString","computed":true},"always_on":{"type":"TypeBool","computed":true},"app_command_line":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"number_of_workers":{"type":"TypeInt","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_certificate":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","computed":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","computed":true},"distinguished_name":{"type":"TypeString","computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"product_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_environment":{"schema":{"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"front_end_scale_factor":{"type":"TypeInt","computed":true},"internal_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_ip_address":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","computed":true},"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"dedicated_host_count":{"type":"TypeInt","computed":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","computed":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"is_xenon":{"type":"TypeBool","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"per_site_scaling":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"size":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_application_gateway":{"schema":{"backend_address_pool":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeString","computed":true},"instrumentation_key":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_arc_machine":{"schema":{"active_directory_fqdn":{"type":"TypeString","computed":true},"agent":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variables":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"bool":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeBool","computed":true}}}},"datetime":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"encrypted":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"int":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeInt","computed":true}}}},"null":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"object":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"string":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"platform_update_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_backup_policy_file_share":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_backup_policy_vm":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","computed":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"ip_connect_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_units":{"type":"TypeInt","computed":true},"shareable_link_enabled":{"type":"TypeBool","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_allocation_mode":{"type":"TypeString","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true},"allow_updates":{"type":"TypeBool","computed":true},"default_version":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","computed":true},"thumbprint_algorithm":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"auto_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","computed":true},"formula":{"type":"TypeString","computed":true}}}},"certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"store_location":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","computed":true},"visibility":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","computed":true}}}},"data_disks":{"type":"TypeList","computed":true,"elem":{"schema":{"caching":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"lun":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}},"disk_encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","computed":true}}}},"display_name":{"type":"TypeString","computed":true},"extensions":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"protected_settings":{"type":"TypeString","computed":true},"provision_after_extensions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","computed":true},"settings_json":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"type_handler_version":{"type":"TypeString","computed":true}}}},"fixed_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"resize_timeout":{"type":"TypeString","computed":true},"target_dedicated_nodes":{"type":"TypeInt","computed":true},"target_low_priority_nodes":{"type":"TypeInt","computed":true}}}},"inter_node_communication":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_tasks_per_node":{"type":"TypeInt","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"blobfuse_options":{"type":"TypeString","computed":true},"container_name":{"type":"TypeString","computed":true},"identity_id":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"sas_key":{"type":"TypeString","computed":true}}}},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"azure_file_url":{"type":"TypeString","computed":true},"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true}}}},"cifs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"nfs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"network_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dynamic_vnet_assignment_scope":{"type":"TypeString","computed":true},"endpoint_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port_range":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"protocol":{"type":"TypeString","computed":true}}}},"public_address_provisioning_type":{"type":"TypeString","computed":true},"public_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","computed":true}}}},"node_agent_sku_id":{"type":"TypeString","computed":true},"node_placement":{"type":"TypeList","computed":true,"elem":{"schema":{"policy":{"type":"TypeString","computed":true}}}},"os_disk_placement":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_task":{"type":"TypeList","computed":true,"elem":{"schema":{"command_line":{"type":"TypeString","computed":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"run_options":{"type":"TypeString","computed":true},"working_directory":{"type":"TypeString","computed":true}}}},"resource_file":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","computed":true},"blob_prefix":{"type":"TypeString","computed":true},"file_mode":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"http_url":{"type":"TypeString","computed":true},"storage_container_url":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"task_retry_maximum":{"type":"TypeInt","computed":true},"user_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_user":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","computed":true}}}},"user_name":{"type":"TypeString","computed":true}}}},"wait_for_success":{"type":"TypeBool","computed":true}}}},"storage_image_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"task_scheduling_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","computed":true}}}},"user_accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"linux_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"gid":{"type":"TypeInt","computed":true},"ssh_private_key":{"type":"TypeString","computed":true},"uid":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"windows_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"login_mode":{"type":"TypeString","computed":true}}}}}}},"vm_size":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_billing_enrollment_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"enrollment_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mca_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"billing_profile_name":{"type":"TypeString","required":true},"invoice_section_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mpa_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"customer_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_blueprint_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_blueprint_published_version":{"schema":{"blueprint_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"dns_zone_id":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tls":{"type":"TypeList","computed":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","computed":true},"certificate_type":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true}}}},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"enabled":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"enabled":{"type":"TypeBool","computed":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redirect_url":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"health_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true},"request_type":{"type":"TypeString","computed":true}}}},"load_balancing":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","computed":true},"sample_size":{"type":"TypeInt","computed":true},"successful_samples_required":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","computed":true},"session_affinity_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"key_vault_certificate_id":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"read":5}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_client_config":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cognitive_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"qna_runtime_endpoint":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"certificate_based_security_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"pem_public_key":{"type":"TypeString","computed":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"resource_group_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"subscription_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","computed":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The Dapr Application Identifier.","computed":true},"app_port":{"type":"TypeInt","description":"The port which the application is listening on. This is the same as the `ingress` port.","computed":true},"app_protocol":{"type":"TypeString","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`.","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","description":"Should this ingress allow insecure connections?","computed":true},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`","computed":true},"certificate_id":{"type":"TypeString","description":"The ID of the Certificate.","computed":true},"name":{"type":"TypeString","description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate.","computed":true}}}},"external_enabled":{"type":"TypeBool","description":"Is this an external Ingress.","computed":true},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","description":"The target port on the container for the Ingress traffic.","computed":true},"traffic_weight":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","description":"The label to apply to the revision as a name prefix for routing traffic.","computed":true},"latest_revision":{"type":"TypeBool","description":"This traffic Weight relates to the latest stable Container Revision.","computed":true},"percentage":{"type":"TypeInt","description":"The percentage of traffic to send to this revision.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted.","computed":true}}}},"transport":{"type":"TypeString","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`","computed":true}}}},"latest_revision_fqdn":{"type":"TypeString","description":"The fully qualified domain name of the latest Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"identity":{"type":"TypeString","description":"ID of the System or User Managed Identity used to pull images from the Container Registry","computed":true},"password_secret_name":{"type":"TypeString","description":"The name of the Secret Reference containing the password value for this user on the Container Registry.","computed":true},"server":{"type":"TypeString","description":"The hostname for the Container Registry.","computed":true},"username":{"type":"TypeString","description":"The username to use for this Container Registry.","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"revision_mode":{"type":"TypeString","computed":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Secret name.","computed":true},"value":{"type":"TypeString","description":"The value for this secret.","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","computed":true,"elem":{"schema":{"container":{"type":"TypeList","computed":true,"elem":{"schema":{"args":{"type":"TypeList","description":"A list of args to pass to the container.","computed":true,"elem":{"type":"TypeString"}},"command":{"type":"TypeList","description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","computed":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`","computed":true},"env":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the environment variable for the container.","computed":true},"secret_name":{"type":"TypeString","description":"The name of the secret that contains the value for this environment variable.","computed":true},"value":{"type":"TypeString","description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used","computed":true}}}},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","description":"The image to use to create the container.","computed":true},"liveness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"initial_delay":{"type":"TypeInt","description":"The time in seconds to wait after the container has started before the probe is started.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"memory":{"type":"TypeString","description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`","computed":true},"name":{"type":"TypeString","description":"The name of the container.","computed":true},"readiness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"success_count_threshold":{"type":"TypeInt","description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"startup_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","computed":true}}}},"volume_mounts":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the Volume to be mounted in the container.","computed":true},"path":{"type":"TypeString","description":"The path in the container at which to mount this volume.","computed":true}}}}}}},"max_replicas":{"type":"TypeInt","description":"The maximum number of replicas for this container.","computed":true},"min_replicas":{"type":"TypeInt","description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}}}},"timeouts":{"read":5}},"azurerm_container_app_environment":{"schema":{"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","description":"The existing Subnet in use by the Container Apps Control Plane.","computed":true},"internal_load_balancer_enabled":{"type":"TypeBool","description":"Does the Container Environment operate in Internal Load Balancing Mode?","computed":true},"location":{"type":"TypeString","computed":true},"log_analytics_workspace_name":{"type":"TypeString","description":"The name of the Log Analytics Workspace this Container Apps Managed Environment is linked to.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment."},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_app_environment_certificate":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"read":5}},"azurerm_container_group":{"schema":{"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","computed":true},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"data_endpoint_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"container_registry_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scope_map_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_account":{"schema":{"capabilities":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"consistency_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","computed":true},"max_interval_in_seconds":{"type":"TypeInt","computed":true},"max_staleness_prefix":{"type":"TypeInt","computed":true}}}},"enable_automatic_failover":{"type":"TypeBool","computed":true},"enable_free_tier":{"type":"TypeBool","computed":true},"enable_multiple_write_locations":{"type":"TypeBool","computed":true},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeList","computed":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true}}}},"ip_range_filter":{"type":"TypeString","computed":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","computed":true},"key_vault_key_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"offer_type":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_restorable_database_accounts":{"schema":{"accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"api_type":{"type":"TypeString","computed":true},"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"restorable_locations":{"type":"TypeList","computed":true,"elem":{"schema":{"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"regional_database_account_instance_id":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true},"autoscale_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true},"assignable_scopes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeSet","computed":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_factory":{"schema":{"github_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"git_url":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"project_name":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redundancy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"snapshot_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"recurrence":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true}}}},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","computed":true},"data_share_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"file_system_name":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"source_platform":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databricks_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_databricks_workspace_private_endpoint_connection":{"schema":{"connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"workspace_private_endpoint_id":{"type":"TypeString","computed":true}}}},"private_endpoint_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dedicated_host":{"schema":{"dedicated_host_group_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"storage_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_dev_test_virtual_network":{"schema":{"allowed_subnets":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_public_ip":{"type":"TypeString","computed":true},"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true}}}},"lab_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_overrides":{"type":"TypeList","computed":true,"elem":{"schema":{"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_in_vm_creation_permission":{"type":"TypeString","computed":true},"use_public_ip_address_permission":{"type":"TypeString","computed":true},"virtual_network_pool_name":{"type":"TypeString","computed":true}}}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_access":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"flags":{"type":"TypeInt","computed":true},"tag":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","computed":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"send_activity_logs":{"type":"TypeBool","computed":true},"send_azuread_logs":{"type":"TypeBool","computed":true},"send_subscription_logs":{"type":"TypeBool","computed":true}}}},"monitoring_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain":{"schema":{"endpoint":{"type":"TypeString","computed":true},"inbound_ip_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"ip_mask":{"type":"TypeString","computed":true}}}},"input_mapping_default_values":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true}}}},"input_mapping_fields":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_time":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true},"topic":{"type":"TypeString","computed":true}}}},"input_schema":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_arm_resource_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventhub":{"schema":{"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"partition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"read":5}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"user_metadata":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"dedicated_cluster_id":{"type":"TypeString","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"kafka_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"maximum_throughput_units":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"sas":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_express_route_circuit":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peerings":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"peer_asn":{"type":"TypeInt","computed":true},"peering_type":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","computed":true},"shared_key":{"type":"TypeString","computed":true},"vlan_id":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_key":{"type":"TypeString","computed":true},"service_provider_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"bandwidth_in_mbps":{"type":"TypeInt","computed":true},"peering_location":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","computed":true}}}},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"family":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_extended_locations":{"schema":{"extended_locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"sku_tier":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","computed":true},"virtual_hub":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","computed":true},"virtual_hub_id":{"type":"TypeString","computed":true}}}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_firewall_policy":{"schema":{"base_policy_id":{"type":"TypeString","computed":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","computed":true,"elem":{"schema":{"network_rule_fqdn_enabled":{"type":"TypeBool","computed":true},"proxy_enabled":{"type":"TypeBool","computed":true},"servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"threat_intelligence_mode":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_cert_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_function_app_host_keys":{"schema":{"blobs_extension_key":{"type":"TypeString","computed":true},"default_function_key":{"type":"TypeString","computed":true},"durabletask_extension_key":{"type":"TypeString","computed":true},"event_grid_extension_config_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"signalr_extension_key":{"type":"TypeString","computed":true},"webpubsub_extension_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_hdinsight_cluster":{"schema":{"cluster_version":{"type":"TypeString","computed":true},"component_versions":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"edge_ssh_endpoint":{"type":"TypeString","computed":true},"gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"ssh_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","computed":true},"tls_min_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"configuration_export_storage_account_name":{"type":"TypeString","computed":true},"container_registry_login_server_url":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","computed":true},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","computed":true},"eventhub_consumer_group_name":{"type":"TypeString","computed":true},"eventhub_name":{"type":"TypeString","computed":true},"eventhub_namespace_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"cors_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","computed":true},"allowed_headers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","computed":true},"cosmosdb_throughput":{"type":"TypeInt","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_hybrid_compute_machine":{"schema":{"ad_fqdn":{"type":"TypeString","computed":true},"agent_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"error_details":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_info":{"type":"TypeList","computed":true,"elem":{"schema":{"info":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"code":{"type":"TypeString","computed":true},"message":{"type":"TypeString","computed":true},"target":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"name_regex":{"type":"TypeString","optional":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"sort_descending":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_images":{"schema":{"images":{"type":"TypeList","computed":true,"elem":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub":{"schema":{"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","computed":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_operations_host_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"iothub_dps_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_iothub_shared_access_policy":{"schema":{"iothub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","computed":true},"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","computed":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"enable_rbac_authorization":{"type":"TypeBool","computed":true},"enabled_for_deployment":{"type":"TypeBool","computed":true},"enabled_for_disk_encryption":{"type":"TypeBool","computed":true},"enabled_for_template_deployment":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_acls":{"type":"TypeList","computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","computed":true},"default_action":{"type":"TypeString","computed":true},"ip_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_access_policy":{"schema":{"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_certificate":{"schema":{"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"key_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"curve":{"type":"TypeString","computed":true},"exportable":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"reuse_key":{"type":"TypeBool","computed":true}}}},"lifetime_action":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","computed":true},"lifetime_percentage":{"type":"TypeInt","computed":true}}}}}}},"secret_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true}}}},"x509_certificate_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"validity_in_months":{"type":"TypeInt","computed":true}}}}}}},"expires":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true,"computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_certificate_data":{"schema":{"certificates_count":{"type":"TypeInt","computed":true},"expires":{"type":"TypeString","computed":true},"hex":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"pem":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","computed":true},"admin":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"phone":{"type":"TypeString","computed":true}}}},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"org_id":{"type":"TypeString","computed":true},"provider_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificates":{"schema":{"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"include_pending":{"type":"TypeBool","optional":true,"default":true},"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_encrypted_value":{"schema":{"algorithm":{"type":"TypeString","required":true},"decoded_plain_text_value":{"type":"TypeString","computed":true},"encrypted_data":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"plain_text_value":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","computed":true},"e":{"type":"TypeString","computed":true},"key_opts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before_date":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_secrets":{"schema":{"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","computed":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","computed":true}}}},"agent_pool_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"api_server_authorized_ip_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"azure_active_directory_role_based_access_control":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","computed":true},"client_app_id":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"server_app_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"azure_policy_enabled":{"type":"TypeBool","computed":true},"current_kubernetes_version":{"type":"TypeString","computed":true},"custom_ca_trust_certificates_base64":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"disk_encryption_set_id":{"type":"TypeString","computed":true},"dns_prefix":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","computed":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress_application_gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","computed":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"key_management_service":{"type":"TypeList","computed":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"key_vault_network_access":{"type":"TypeString","computed":true}}}},"key_vault_secrets_provider":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","computed":true},"secret_rotation_interval":{"type":"TypeString","computed":true}}}},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"kubernetes_version":{"type":"TypeString","computed":true},"linux_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true},"ssh_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_data":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","computed":true},"microsoft_defender":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"network_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","computed":true},"docker_bridge_cidr":{"type":"TypeString","computed":true},"load_balancer_sku":{"type":"TypeString","computed":true},"network_plugin":{"type":"TypeString","computed":true},"network_policy":{"type":"TypeString","computed":true},"pod_cidr":{"type":"TypeString","computed":true},"service_cidr":{"type":"TypeString","computed":true}}}},"node_resource_group":{"type":"TypeString","computed":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","computed":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","computed":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}}},"open_service_mesh_enabled":{"type":"TypeBool","computed":true},"private_cluster_enabled":{"type":"TypeBool","computed":true},"private_fqdn":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"role_based_access_control_enabled":{"type":"TypeBool","computed":true},"service_mesh_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"mode":{"type":"TypeString","computed":true}}}},"service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true}}}},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_version":{"type":"TypeString","computed":true},"file_driver_enabled":{"type":"TypeBool","computed":true},"snapshot_controller_enabled":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"eviction_policy":{"type":"TypeString","computed":true},"kubernetes_cluster_name":{"type":"TypeString","required":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_disk_type":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"priority":{"type":"TypeString","computed":true},"proximity_placement_group_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"spot_max_price":{"type":"TypeFloat","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_node_pool_snapshot":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_node_pool_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_service_versions":{"schema":{"include_preview":{"type":"TypeBool","optional":true,"default":true},"latest_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"version_prefix":{"type":"TypeString","optional":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kusto_cluster":{"schema":{"data_ingestion_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true},"hot_cache_period":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_lb":{"schema":{"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_backend_address_pool":{"schema":{"backend_address":{"type":"TypeList","computed":true,"elem":{"schema":{"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"virtual_network_id":{"type":"TypeString","computed":true}}}},"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","computed":true},"backend_address_pool_id":{"type":"TypeString","computed":true},"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","computed":true},"tcp_reset_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_lb_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","computed":true},"disable_outbound_snat":{"type":"TypeBool","computed":true},"enable_floating_ip":{"type":"TypeBool","computed":true},"enable_tcp_reset":{"type":"TypeBool","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"load_distribution":{"type":"TypeString","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"probe_id":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"image_tag":{"type":"TypeString","computed":true},"registry_password":{"type":"TypeString","computed":true},"registry_url":{"type":"TypeString","computed":true},"registry_username":{"type":"TypeString","computed":true}}}},"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":25}},"azurerm_linux_web_app":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_reference_identity_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_image_tag":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"go_version":{"type":"TypeString","computed":true},"java_server":{"type":"TypeString","computed":true},"java_server_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"ruby_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","computed":true}}}},"gateway_address":{"type":"TypeString","computed":true},"gateway_fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_log_analytics_workspace":{"schema":{"daily_quota_gb":{"type":"TypeFloat","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_shared_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_integration_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","computed":true},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_account_share_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_workflow":{"schema":{"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"logic_app_integration_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","computed":true},"workflow_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_machine_learning_workspace":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","computed":true},"install_patches":{"type":"TypeList","computed":true,"elem":{"schema":{"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"reboot":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","computed":true},"window":{"type":"TypeList","computed":true,"elem":{"schema":{"duration":{"type":"TypeString","computed":true},"expiration_date_time":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"start_date_time":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_managed_api":{"schema":{"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_managed_application_definition":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","computed":true},"disk_access_id":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"disk_iops_read_write":{"type":"TypeInt","computed":true},"disk_mbps_read_write":{"type":"TypeInt","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"image_reference_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_access_policy":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group":{"schema":{"all_management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"all_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true,"computed":true},"parent_management_group_id":{"type":"TypeString","computed":true},"subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group_template_deployment":{"schema":{"management_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement":{"type":"TypeString","computed":true},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"geo_redundant_backup":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true},"plan":{"type":"TypeString","required":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_country_code":{"type":"TypeString","computed":true},"mobile_network_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"mobile_network_data_network_name":{"type":"TypeString","required":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true},"network_address_port_translation":{"type":"TypeList","computed":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"pinhole_maximum_number":{"type":"TypeInt","optional":true},"port_range":{"type":"TypeList","computed":true,"elem":{"schema":{"maximum":{"type":"TypeInt","computed":true},"minimum":{"type":"TypeInt","computed":true}}}},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","computed":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"control_plane_access_name":{"type":"TypeString","computed":true},"core_network_technology":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"interoperability_settings_json":{"type":"TypeString","computed":true},"local_diagnostics_access":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","computed":true},"https_server_certificate_url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform":{"type":"TypeList","computed":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","computed":true},"custom_location_id":{"type":"TypeString","computed":true},"edge_device_id":{"type":"TypeString","computed":true},"stack_hci_cluster_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"pcc_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"precedence":{"type":"TypeInt","computed":true},"qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"guaranteed_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"service_data_flow_template":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","computed":true}}}},"service_precedence":{"type":"TypeInt","computed":true},"service_qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim":{"schema":{"device_type":{"type":"TypeString","computed":true},"integrated_circuit_card_identifier":{"type":"TypeString","computed":true},"international_mobile_subscriber_identity":{"type":"TypeString","computed":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","computed":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true},"static_ipv4_address":{"type":"TypeString","computed":true}}}},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","computed":true},"registration_timer_in_seconds":{"type":"TypeInt","computed":true},"slice":{"type":"TypeList","computed":true,"elem":{"schema":{"data_network":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"allowed_services_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","computed":true},"default_session_type":{"type":"TypeString","computed":true},"max_buffered_packets":{"type":"TypeInt","computed":true},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}}}},"default_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","computed":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","computed":true},"slice_service_type":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"role_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"automation_runbook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","computed":true},"is_global_runbook":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"runbook_name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true},"webhook_resource_id":{"type":"TypeString","computed":true}}}},"azure_app_push_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"azure_function_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","computed":true},"function_name":{"type":"TypeString","computed":true},"http_trigger_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"email_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"event_hub_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true},"ticket_configuration":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","computed":true}}}},"logic_app_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"callback_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"short_name":{"type":"TypeString","computed":true},"sms_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"voice_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"webhook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","computed":true},"data_flow":{"type":"TypeList","computed":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"output_stream":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"transform_kql":{"type":"TypeString","computed":true}}}},"data_sources":{"type":"TypeList","computed":true,"elem":{"schema":{"data_import":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"stream":{"type":"TypeString","computed":true}}}}}}},"extension":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_json":{"type":"TypeString","computed":true},"extension_name":{"type":"TypeString","computed":true},"input_data_sources":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"iis_log":{"type":"TypeList","computed":true,"elem":{"schema":{"log_directories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"settings":{"type":"TypeList","computed":true,"elem":{"schema":{"text":{"type":"TypeList","computed":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","computed":true}}}}}}},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"performance_counter":{"type":"TypeList","computed":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"sampling_frequency_in_seconds":{"type":"TypeInt","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"prometheus_forwarder":{"type":"TypeList","computed":true,"elem":{"schema":{"label_include_filter":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"syslog":{"type":"TypeList","computed":true,"elem":{"schema":{"facility_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"log_levels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_event_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"x_path_queries":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_firewall_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"description":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"workspace_resource_id":{"type":"TypeString","computed":true}}}},"monitor_account":{"type":"TypeList","computed":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"storage_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_blob_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_table_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"table_name":{"type":"TypeString","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"stream_declaration":{"type":"TypeList","computed":true,"elem":{"schema":{"column":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"stream_name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_diagnostic_categories":{"schema":{"log_category_groups":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"log_category_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"logs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"metrics":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"days":{"type":"TypeInt","computed":true},"enabled":{"type":"TypeBool","computed":true}}}},"servicebus_rule_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeSet","computed":true,"elem":{"schema":{"action_group":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","computed":true},"email_subject":{"type":"TypeString","computed":true}}}},"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"query":{"type":"TypeString","computed":true},"query_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"severity":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","computed":true},"time_window":{"type":"TypeInt","computed":true},"trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_column":{"type":"TypeString","computed":true},"metric_trigger_type":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeSet","computed":true,"elem":{"schema":{"dimension":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","computed":true}}}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mssql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"elastic_pool_id":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_size_gb":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"read_replica_count":{"type":"TypeInt","computed":true},"read_scale":{"type":"TypeBool","computed":true},"server_id":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"max_size_bytes":{"type":"TypeInt","computed":true},"max_size_gb":{"type":"TypeFloat","computed":true},"name":{"type":"TypeString","required":true},"per_db_max_capacity":{"type":"TypeInt","computed":true},"per_db_min_capacity":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"family":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"customer_managed_key_id":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"high_availability":{"type":"TypeList","computed":true,"elem":{"schema":{"mode":{"type":"TypeString","computed":true},"standby_availability_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","computed":true},"start_hour":{"type":"TypeInt","computed":true},"start_minute":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"storage":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","computed":true},"iops":{"type":"TypeInt","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement_enabled":{"type":"TypeBool","computed":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","computed":true},"email_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"retention_days":{"type":"TypeInt","computed":true},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_endpoint":{"type":"TypeString","computed":true}}}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_ip_address_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"public_ip_prefix_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_netapp_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_level":{"type":"TypeString","computed":true},"size_in_tb":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"volume_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true},"daily_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"hourly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"monthly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","computed":true,"elem":{"type":"TypeInt"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"network_features":{"type":"TypeString","computed":true},"pool_name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"security_style":{"type":"TypeString","optional":true},"service_level":{"type":"TypeString","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"volume_path":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true},"application_identifier":{"type":"TypeString","computed":true},"group_description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","computed":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"data_protection_snapshot_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","computed":true}}}},"export_policy_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","computed":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"nfsv41_enabled":{"type":"TypeBool","computed":true},"root_access_enabled":{"type":"TypeBool","computed":true},"rule_index":{"type":"TypeInt","computed":true},"unix_read_only":{"type":"TypeBool","computed":true},"unix_read_write":{"type":"TypeBool","computed":true}}}},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proximity_placement_group_id":{"type":"TypeString","computed":true},"security_style":{"type":"TypeString","computed":true},"service_level":{"type":"TypeString","computed":true},"snapshot_directory_visible":{"type":"TypeBool","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","computed":true},"volume_spec_name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume_quota_rule":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"quota_size_in_kib":{"type":"TypeInt","computed":true},"quota_target":{"type":"TypeString","computed":true},"quota_type":{"type":"TypeString","computed":true},"volume_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"internal_dns_name_label":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","computed":true},"load_balancer_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_manager_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"security_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"destination_address_prefix":{"type":"TypeString","computed":true},"destination_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","computed":true},"destination_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_service_tags":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv4_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv6_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"location_filter":{"type":"TypeString","optional":true,"forceNew":true},"service":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"application_mode":{"type":"TypeString","computed":true},"bundle_id":{"type":"TypeString","computed":true},"key_id":{"type":"TypeString","computed":true},"team_id":{"type":"TypeString","computed":true},"token":{"type":"TypeString","computed":true}}}},"gcm_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"api_key":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"ip_forwarding_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","computed":true},"anti_virus_profile":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"dns_subscription":{"type":"TypeString","computed":true},"file_blocking_profile":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_trust_certificate":{"type":"TypeString","computed":true},"outbound_untrust_certificate":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"url_filtering_profile":{"type":"TypeString","computed":true},"vulnerability_profile":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_platform_image":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"offer":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_policy_assignment":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"enforce":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","computed":true,"elem":{"schema":{"content":{"type":"TypeString","computed":true},"policy_definition_reference_id":{"type":"TypeString","computed":true}}}},"not_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeString","computed":true},"policy_definition_id":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_definition_built_in":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_definition_group":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","computed":true},"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"policy_definition_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"policy_definition_id":{"type":"TypeString","computed":true},"policy_group_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","computed":true}}}},"policy_definitions":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"assignment_hash":{"type":"TypeString","computed":true},"compliance_status":{"type":"TypeString","computed":true},"content_hash":{"type":"TypeString","computed":true},"content_uri":{"type":"TypeString","computed":true},"last_compliance_status_checked":{"type":"TypeString","computed":true},"latest_report_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"virtual_machine_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_dns_servers":{"type":"TypeList","computed":true,"elem":{"schema":{"ip_address":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true},"private_dns_zone_name":{"type":"TypeString","required":true},"registration_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_endpoint_connection":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_service_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"request_response":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","computed":true},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"nat_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_link_service_endpoint_connections":{"schema":{"location":{"type":"TypeString","computed":true},"private_endpoint_connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"connection_id":{"type":"TypeString","computed":true},"connection_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"private_endpoint_id":{"type":"TypeString","computed":true},"private_endpoint_name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_id":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_proximity_placement_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","computed":true},"ddos_protection_mode":{"type":"TypeString","computed":true},"ddos_protection_plan_id":{"type":"TypeString","computed":true},"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"reverse_fqdn":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"prefix_length":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ips":{"schema":{"allocation_type":{"type":"TypeString","optional":true},"attachment_status":{"type":"TypeString","optional":true},"name_prefix":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_public_maintenance_configurations":{"schema":{"configs":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"duration":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maintenance_scope":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_recovery_services_vault":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","computed":true},"enable_non_ssl_port":{"type":"TypeBool","computed":true},"family":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patch_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeString","computed":true},"start_hour_utc":{"type":"TypeInt","computed":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","computed":true},"redis_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","computed":true},"aof_storage_connection_string_0":{"type":"TypeString","computed":true},"aof_storage_connection_string_1":{"type":"TypeString","computed":true},"enable_authentication":{"type":"TypeBool","computed":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","computed":true},"maxmemory_delta":{"type":"TypeInt","computed":true},"maxmemory_policy":{"type":"TypeString","computed":true},"maxmemory_reserved":{"type":"TypeInt","computed":true},"notify_keyspace_events":{"type":"TypeString","computed":true},"rdb_backup_enabled":{"type":"TypeBool","computed":true},"rdb_backup_frequency":{"type":"TypeInt","computed":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","computed":true},"rdb_storage_connection_string":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_enterprise_database":{"schema":{"cluster_id":{"type":"TypeString","required":true},"linked_database_group_nickname":{"type":"TypeString","computed":true},"linked_database_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","computed":true},"managed_by":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_resource_group_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_resources":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true},"required_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"resources":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"permissions":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true},"scope":{"type":"TypeString","optional":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"communities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"rule_type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_route_table":{"schema":{"bgp_route_propagation_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop_in_ip_address":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_search_service":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_anomaly":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"mode":{"type":"TypeString","computed":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_template":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true},"nrt_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"scheduled_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"query_frequency":{"type":"TypeString","computed":true},"query_period":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","computed":true},"trigger_threshold":{"type":"TypeInt","computed":true}}}},"security_incident_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"product_filter":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"per_site_scaling_enabled":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","computed":true},"zone_balancing_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"partner_namespace_id":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","optional":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"support_ordering":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_shared_image":{"schema":{"architecture":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"eula":{"type":"TypeString","computed":true},"gallery_name":{"type":"TypeString","required":true},"hyper_v_generation":{"type":"TypeString","computed":true},"identifier":{"type":"TypeList","computed":true,"elem":{"schema":{"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"privacy_statement_uri":{"type":"TypeString","computed":true},"purchase_plan":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true}}}},"release_note_uri":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"specialized":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_shared_image_version":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_disk_image_size_gb":{"type":"TypeInt","computed":true},"os_disk_snapshot_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sort_versions_by_semver":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_shared_image_versions":{"schema":{"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"images":{"type":"TypeList","computed":true,"elem":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"hostname":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true},"recovery_fabric_name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","computed":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","computed":true},"primary_zone":{"type":"TypeString","computed":true},"recovery_edge_zone":{"type":"TypeString","computed":true},"recovery_zone":{"type":"TypeString","computed":true}}}},"failover_deployment_model":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_group":{"type":"TypeSet","computed":true,"elem":{"schema":{"post_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"pre_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"replicated_protected_items":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"recovery_vault_id":{"type":"TypeString","required":true},"source_recovery_fabric_id":{"type":"TypeString","computed":true},"target_recovery_fabric_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_snapshot":{"schema":{"creation_option":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","computed":true},"token_secret":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_spring_cloud_app":{"schema":{"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"is_public":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"persistent_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","computed":true},"size_in_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"tls_enabled":{"type":"TypeBool","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_spring_cloud_service":{"schema":{"config_server_git_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"repository":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"pattern":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","computed":true},"elastic_pool_name":{"type":"TypeString","computed":true},"failover_group_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"read_scale":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ssh_public_key":{"schema":{"name":{"type":"TypeString","required":true},"public_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","computed":true},"account_kind":{"type":"TypeString","computed":true},"account_replication_type":{"type":"TypeString","computed":true},"account_tier":{"type":"TypeString","computed":true},"allow_nested_items_to_be_public":{"type":"TypeBool","computed":true},"azure_files_authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"domain_sid":{"type":"TypeString","computed":true},"forest_name":{"type":"TypeString","computed":true},"netbios_domain_name":{"type":"TypeString","computed":true},"storage_sid":{"type":"TypeString","computed":true}}}},"directory_type":{"type":"TypeString","computed":true}}}},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"enable_https_traffic_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"is_hns_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"queue_encryption_key_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"table_encryption_key_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account_blob_container_sas":{"schema":{"cache_control":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_language":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_address":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_account_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_addresses":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"filter":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"process":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"tag":{"type":"TypeBool","required":true},"update":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"resource_types":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeBool","required":true},"object":{"type":"TypeBool","required":true},"service":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"services":{"type":"TypeList","required":true,"elem":{"schema":{"blob":{"type":"TypeBool","required":true},"file":{"type":"TypeBool","required":true},"queue":{"type":"TypeBool","required":true},"table":{"type":"TypeBool","required":true}}},"maxItems":1},"signed_version":{"type":"TypeString","optional":true,"default":"2017-07-29"},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","computed":true},"content_md5":{"type":"TypeString","computed":true},"content_type":{"type":"TypeString","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","computed":true},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_encryption_scope":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"schema":{"base_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true}}}},"snapshot":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}},"version":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}}}}},"enabled":{"type":"TypeBool","computed":true},"filters":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operation":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"prefix_match":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true}}}},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_share":{"schema":{"acl":{"type":"TypeList","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"expiry":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"start":{"type":"TypeString","computed":true}}}},"id":{"type":"TypeString","computed":true}}}},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"quota":{"type":"TypeInt","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true},"storage_sync_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true},"row_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","computed":true},"data_locale":{"type":"TypeString","computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_policy":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"job_id":{"type":"TypeString","computed":true},"last_output_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"output_error_policy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_mode":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true},"streaming_units":{"type":"TypeInt","computed":true},"transformation_query":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subnet":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"route_table_id":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_subscription":{"schema":{"display_name":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscription_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscriptions":{"schema":{"display_name_contains":{"type":"TypeString","optional":true},"display_name_prefix":{"type":"TypeString","optional":true},"subscriptions":{"type":"TypeList","computed":true,"elem":{"schema":{"display_name":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_synapse_workspace":{"schema":{"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_template_spec_version":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template_body":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_tenant_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_geographical_location":{"schema":{"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","computed":true,"elem":{"schema":{"relative_name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true}}}},"fqdn":{"type":"TypeString","computed":true},"monitor_config":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"expected_status_code_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"timeout_in_seconds":{"type":"TypeInt","computed":true},"tolerated_number_of_failures":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_status":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","computed":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"read":5}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"load_balancer_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_sessions_allowed":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"personal_desktop_assignment_type":{"type":"TypeString","computed":true},"preferred_app_group_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scheduled_agent_updates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"hour_of_day":{"type":"TypeInt","computed":true}}}},"timezone":{"type":"TypeString","computed":true},"use_session_host_timezone":{"type":"TypeBool","computed":true}}}},"start_vm_on_connect":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"validate_environment":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"default_route_table_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"remote_virtual_network_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"routing":{"type":"TypeList","computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","computed":true},"propagated_route_table":{"type":"TypeList","computed":true,"elem":{"schema":{"labels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"static_vnet_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"next_hop_ip_address":{"type":"TypeString","computed":true}}}}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"instances":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"instance_id":{"type":"TypeString","computed":true},"latest_model_applied":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnets":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","computed":true},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"peer_weight":{"type":"TypeInt","computed":true},"peering_address":{"type":"TypeString","computed":true}}}},"custom_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"default_local_network_gateway_id":{"type":"TypeString","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"generation":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"vpn_client_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","computed":true},"aad_issuer":{"type":"TypeString","computed":true},"aad_tenant":{"type":"TypeString","computed":true},"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","computed":true},"radius_server_secret":{"type":"TypeString","computed":true},"revoked_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"root_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"vpn_client_protocols":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"vpn_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"connection_protocol":{"type":"TypeString","computed":true},"dpd_timeout_seconds":{"type":"TypeInt","computed":true},"egress_bytes_transferred":{"type":"TypeInt","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"express_route_circuit_id":{"type":"TypeString","computed":true},"express_route_gateway_bypass":{"type":"TypeBool","computed":true},"ingress_bytes_transferred":{"type":"TypeInt","computed":true},"ipsec_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"dh_group":{"type":"TypeString","computed":true},"ike_encryption":{"type":"TypeString","computed":true},"ike_integrity":{"type":"TypeString","computed":true},"ipsec_encryption":{"type":"TypeString","computed":true},"ipsec_integrity":{"type":"TypeString","computed":true},"pfs_group":{"type":"TypeString","computed":true},"sa_datasize":{"type":"TypeInt","computed":true},"sa_lifetime":{"type":"TypeInt","computed":true}}}},"local_azure_ip_address_enabled":{"type":"TypeBool","computed":true},"local_network_gateway_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peer_virtual_network_gateway_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"routing_weight":{"type":"TypeInt","computed":true},"shared_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","computed":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","computed":true},"virtual_network_gateway_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","computed":true},"disable_vpn_encryption":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"office365_local_breakout_category":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vpn_site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"management_cluster":{"type":"TypeList","computed":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","computed":true}}}},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_subnet_cidr":{"type":"TypeString","computed":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_vpn_gateway":{"schema":{"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"instance_1_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"peer_weight":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_unit":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_application_firewall_policy":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_pubsub_private_link_resource":{"schema":{"shared_private_link_resource_types":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","computed":true}}}},"web_pubsub_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","computed":true},"docker_container_name":{"type":"TypeString","computed":true},"docker_container_registry":{"type":"TypeString","computed":true},"docker_container_tag":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_core_version":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_embedded_server_enabled":{"type":"TypeBool","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python":{"type":"TypeBool","computed":true},"python_version":{"type":"TypeString","computed":true},"tomcat_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"custom_action":{"type":"TypeList","computed":true,"elem":{"schema":{"executable":{"type":"TypeString","computed":true},"parameters":{"type":"TypeString","computed":true}}}},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","computed":true},"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"virtual_application":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"preload":{"type":"TypeBool","computed":true},"virtual_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"virtual_path":{"type":"TypeString","computed":true}}}},"virtual_path":{"type":"TypeString","computed":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}}}}} +{"providerName":"azurerm","schemaVersion":"1","providerSchema":{"schema":{"auxiliary_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":3},"client_certificate":{"type":"TypeString","optional":true,"description":"Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_password":{"type":"TypeString","optional":true,"description":"The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_path":{"type":"TypeString","optional":true,"description":"The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service Principal using a Client Certificate."},"client_id":{"type":"TypeString","optional":true,"description":"The Client ID which should be used."},"client_id_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client ID which should be used."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"client_secret_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"disable_correlation_request_id":{"type":"TypeBool","optional":true,"description":"This will disable the x-ms-correlation-request-id header."},"disable_terraform_partner_id":{"type":"TypeBool","optional":true,"description":"This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified."},"environment":{"type":"TypeString","required":true,"description":"The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public."},"features":{"type":"TypeList","required":true,"elem":{"schema":{"api_management":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"app_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"application_insights":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_generated_rule":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cognitive_account":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_certificates_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_hardware_security_modules_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_managed_hardware_security_module` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_keys_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_secrets_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be permanently deleted (e.g purged), when destroyed"},"recover_soft_deleted_certificates":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be restored, instead of creating new ones"},"recover_soft_deleted_key_vaults":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be restored, instead of creating new ones"},"recover_soft_deleted_keys":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be restored, instead of creating new ones"},"recover_soft_deleted_secrets":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be restored, instead of creating new ones"}}},"maxItems":1},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"permanently_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"managed_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"expand_without_downtime":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_deletion_if_contains_resources":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_cancellation_on_destroy":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"template_deployment":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_nested_items_during_deletion":{"type":"TypeBool","required":true}}},"maxItems":1},"virtual_machine":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_os_disk_on_deletion":{"type":"TypeBool","optional":true,"default":false},"graceful_shutdown":{"type":"TypeBool","optional":true,"default":false},"skip_shutdown_and_force_delete":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"virtual_machine_scale_set":{"type":"TypeList","optional":true,"elem":{"schema":{"force_delete":{"type":"TypeBool","optional":true,"default":false},"roll_instances_when_required":{"type":"TypeBool","required":true},"scale_to_zero_before_deletion":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1,"minItems":1},"metadata_host":{"type":"TypeString","required":true,"description":"The Hostname which should be used for the Azure Metadata Service."},"msi_endpoint":{"type":"TypeString","optional":true,"description":"The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected automatically. "},"oidc_request_token":{"type":"TypeString","optional":true,"description":"The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_request_url":{"type":"TypeString","optional":true,"description":"The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_token":{"type":"TypeString","optional":true,"description":"The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"oidc_token_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"partner_id":{"type":"TypeString","optional":true,"description":"A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution."},"skip_provider_registration":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already registered?"},"storage_use_azuread":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?"},"subscription_id":{"type":"TypeString","optional":true,"description":"The Subscription ID which should be used."},"tenant_id":{"type":"TypeString","optional":true,"description":"The Tenant ID which should be used."},"use_cli":{"type":"TypeBool","optional":true,"default":true,"description":"Allow Azure CLI to be used for Authentication."},"use_msi":{"type":"TypeBool","optional":true,"description":"Allow Managed Service Identity to be used for Authentication."},"use_oidc":{"type":"TypeBool","optional":true,"description":"Allow OpenID Connect to be used for authentication"}},"resources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"country_code":{"type":"TypeString","optional":true,"description":"Country code of the B2C tenant. See https://aka.ms/B2CDataResidency for valid country codes.","computed":true,"forceNew":true},"data_residency_location":{"type":"TypeString","required":true,"description":"Location in which the B2C tenant is hosted and data resides. See https://aka.ms/B2CDataResidency for more information.","forceNew":true},"display_name":{"type":"TypeString","optional":true,"description":"The initial display name of the B2C tenant.","computed":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix.","forceNew":true},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"description":"Billing SKU for the B2C tenant. See https://aka.ms/b2cBilling for more information."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","optional":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"filtered_sync_enabled":{"type":"TypeBool","optional":true,"default":false},"initial_replica_set":{"type":"TypeList","required":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notifications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","optional":true,"default":false},"notify_global_admins":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","required":true},"external_access_enabled":{"type":"TypeBool","optional":true,"default":false},"pfx_certificate":{"type":"TypeString","required":true},"pfx_certificate_password":{"type":"TypeString","required":true},"public_certificate":{"type":"TypeString","computed":true}}},"maxItems":1},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","optional":true,"default":false},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"ntlm_v1_enabled":{"type":"TypeBool","optional":true,"default":false},"sync_kerberos_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_ntlm_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_on_prem_passwords":{"type":"TypeBool","optional":true,"default":false},"tls_v1_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_replica_set":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"external_access_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_trust":{"schema":{"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"trusted_domain_dns_ips":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":2},"trusted_domain_fqdn":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_advanced_threat_protection":{"schema":{"enabled":{"type":"TypeBool","required":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_analysis_services_server":{"schema":{"admin_users":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"backup_blob_container_uri":{"type":"TypeString","optional":true},"enable_power_bi_service":{"type":"TypeBool","optional":true},"ipv4_firewall_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"range_end":{"type":"TypeString","required":true},"range_start":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"querypool_connection_mode":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_full_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_connection":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}}},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_password":{"type":"TypeString","optional":true},"encoded_certificate":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","required":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}},"maxItems":10},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"delegation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"subscriptions_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","optional":true},"user_registration_enabled":{"type":"TypeBool","optional":true,"default":false},"validation_key":{"type":"TypeString","optional":true}}},"maxItems":1},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"management_api_url":{"type":"TypeString","computed":true},"min_api_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_sender_email":{"type":"TypeString","optional":true,"computed":true},"policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}}},"maxItems":1},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocols":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_http2":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"publisher_email":{"type":"TypeString","required":true},"publisher_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scm_url":{"type":"TypeString","computed":true},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_backend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls11":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls11":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_gcm_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_gcm_sha384_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"triple_des_ciphers_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"sign_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"sign_up":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"terms_of_service":{"type":"TypeList","required":true,"elem":{"schema":{"consent_required":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","required":true},"text":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"virtual_network_type":{"type":"TypeString","optional":true,"default":"None"},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_type":{"type":"TypeString","optional":true,"computed":true},"contact":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"content_format":{"type":"TypeString","required":true},"content_value":{"type":"TypeString","required":true},"wsdl_selector":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"license":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"oauth2_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization_server_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true}}},"maxItems":1},"openid_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"openid_provider_name":{"type":"TypeString","required":true}}},"maxItems":1},"path":{"type":"TypeString","optional":true,"computed":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision":{"type":"TypeString","required":true,"forceNew":true},"revision_description":{"type":"TypeString","optional":true},"service_url":{"type":"TypeString","optional":true,"computed":true},"soap_pass_through":{"type":"TypeBool","optional":true,"computed":true},"source_api_id":{"type":"TypeString","optional":true},"subscription_key_parameter_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"header":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true}}},"maxItems":1},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"terms_of_service_url":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"computed":true},"version_description":{"type":"TypeString","optional":true},"version_set_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"method":{"type":"TypeString","required":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"query_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"response":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}},"status_code":{"type":"TypeInt","required":true}}}},"template_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"url_template":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_tag":{"schema":{"api_operation_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_release":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"components":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","required":true},"definitions":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_tag":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_api_tag_description":{"schema":{"api_tag_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"external_documentation_description":{"type":"TypeString","optional":true},"external_documentation_url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"version_header_name":{"type":"TypeString","optional":true},"version_query_name":{"type":"TypeString","optional":true},"versioning_scheme":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_authorization_server":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authorization_endpoint":{"type":"TypeString","required":true},"authorization_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_authentication_method":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_registration_endpoint":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"default_scope":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"grant_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_owner_password":{"type":"TypeString","optional":true},"resource_owner_username":{"type":"TypeString","optional":true},"support_state":{"type":"TypeBool","optional":true},"token_body_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"token_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_backend":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"credentials":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","optional":true},"scheme":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"header":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"query":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true},"service_fabric_cluster":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_id":{"type":"TypeString","optional":true,"computed":true},"client_certificate_thumbprint":{"type":"TypeString","optional":true,"computed":true},"management_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"max_partition_resolution_retries":{"type":"TypeInt","required":true},"server_certificate_thumbprints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"server_x509_name":{"type":"TypeSet","optional":true,"elem":{"schema":{"issuer_certificate_thumbprint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"title":{"type":"TypeString","optional":true},"tls":{"type":"TypeList","optional":true,"elem":{"schema":{"validate_certificate_chain":{"type":"TypeBool","optional":true},"validate_certificate_name":{"type":"TypeBool","optional":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_certificate":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"data":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","computed":true},"key_vault_identity_client_id":{"type":"TypeString","optional":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_custom_domain":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_api_management_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_email_template":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true},"template_name":{"type":"TypeString","required":true,"forceNew":true},"title":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location_data":{"type":"TypeList","required":true,"elem":{"schema":{"city":{"type":"TypeString","optional":true},"district":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_api":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_certificate_authority":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"is_trusted":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_id":{"type":"TypeString","required":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"host_name":{"type":"TypeString","required":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request_client_certificate_enabled":{"type":"TypeBool","optional":true},"tls10_enabled":{"type":"TypeBool","optional":true},"tls11_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_global_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"external_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"custom","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aad":{"schema":{"allowed_tenants":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_tenant":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aadb2c":{"schema":{"allowed_tenant":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authority":{"type":"TypeString","required":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"password_reset_policy":{"type":"TypeString","optional":true},"profile_editing_policy":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_policy":{"type":"TypeString","required":true},"signin_tenant":{"type":"TypeString","required":true},"signup_policy":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_facebook":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_google":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_microsoft":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_twitter":{"schema":{"api_key":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_secret_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_logger":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"application_insights":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"instrumentation_key":{"type":"TypeString","required":true}}},"maxItems":1},"buffered":{"type":"TypeBool","optional":true,"default":true},"description":{"type":"TypeString","optional":true},"eventhub":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_named_value":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","optional":true},"value_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"secret_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_notification_recipient_email":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"email":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_notification_recipient_user":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_openid_connect_provider":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"metadata_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_policy":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"approval_required":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"published":{"type":"TypeBool","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"subscriptions_limit":{"type":"TypeInt","optional":true},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_tag":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_management_product_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_redis_cache":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"cache_location":{"type":"TypeString","optional":true,"default":"default"},"connection_string":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_subscription":{"schema":{"allow_tracing":{"type":"TypeBool","optional":true,"default":true},"api_id":{"type":"TypeString","optional":true,"forceNew":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","optional":true,"computed":true},"product_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true,"computed":true},"state":{"type":"TypeString","optional":true,"default":"submitted"},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_tag":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"confirmation":{"type":"TypeString","optional":true,"forceNew":true},"email":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","required":true},"last_name":{"type":"TypeString","required":true},"note":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","optional":true,"computed":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_identifier":{"type":"TypeString","optional":true}}},"maxItems":1},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","optional":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"replica":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","optional":true,"default":"free"},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":7,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_app_configuration_feature":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"percentage_filter_value":{"type":"TypeFloat","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"targeting_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_rollout_percentage":{"type":"TypeInt","required":true},"groups":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"rollout_percentage":{"type":"TypeInt","required":true}}}},"users":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"timewindow_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","optional":true},"start":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"computed":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","required":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"kv"},"value":{"type":"TypeString","optional":true,"computed":true},"vault_key_reference":{"type":"TypeString","optional":true}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true},"frequency_unit":{"type":"TypeString","required":true},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false},"retention_period_in_days":{"type":"TypeInt","optional":true,"default":30},"start_time":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_mode":{"type":"TypeString","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_active_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_slot_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate":{"schema":{"app_service_plan_id":{"type":"TypeString","optional":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hosting_environment_profile_id":{"type":"TypeString","computed":true},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"pfx_blob":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate_binding":{"schema":{"app_service_name":{"type":"TypeString","computed":true},"certificate_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","computed":true},"hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","optional":true,"default":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","optional":true,"computed":true},"distinguished_name":{"type":"TypeString","optional":true,"computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","optional":true,"default":2048},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_type":{"type":"TypeString","optional":true,"default":"Standard"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","optional":true,"default":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_custom_hostname_binding":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_environment":{"schema":{"allowed_user_ip_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"front_end_scale_factor":{"type":"TypeInt","optional":true,"default":15},"internal_ip_address":{"type":"TypeString","computed":true},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","optional":true,"default":"I1"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_ip_address":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","optional":true,"default":true},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dedicated_host_count":{"type":"TypeInt","optional":true,"forceNew":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_hybrid_connection":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","required":true},"relay_id":{"type":"TypeString","required":true,"forceNew":true},"relay_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey"},"send_key_value":{"type":"TypeString","computed":true},"service_bus_namespace":{"type":"TypeString","computed":true},"service_bus_suffix":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_managed_certificate":{"schema":{"canonical_name":{"type":"TypeString","computed":true},"custom_hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"is_xenon":{"type":"TypeBool","optional":true},"kind":{"type":"TypeString","optional":true,"default":"Windows","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling":{"type":"TypeBool","optional":true},"reserved":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"size":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_app_service_public_certificate":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"blob":{"type":"TypeString","required":true,"forceNew":true},"certificate_location":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot_custom_hostname_binding":{"schema":{"app_service_slot_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_slot_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"slot_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_source_control":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows or Linux Web App.","forceNew":true},"branch":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The URL for the repository.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`.","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the App use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `false` to enable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`.","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_slot":{"schema":{"branch":{"type":"TypeString","optional":true,"description":"The URL for the repository","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Linux or Windows Web App Slot.","forceNew":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Slot use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `true` to disable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_gateway":{"schema":{"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"autoscale_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"max_capacity":{"type":"TypeInt","optional":true},"min_capacity":{"type":"TypeInt","required":true}}},"maxItems":1},"backend_address_pool":{"type":"TypeSet","required":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"backend_http_settings":{"type":"TypeSet","required":true,"elem":{"schema":{"affinity_cookie_name":{"type":"TypeString","optional":true},"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"connection_draining":{"type":"TypeList","optional":true,"elem":{"schema":{"drain_timeout_sec":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"cookie_based_affinity":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"pick_host_name_from_backend_address":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","required":true},"probe_id":{"type":"TypeString","computed":true},"probe_name":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"request_timeout":{"type":"TypeInt","optional":true,"default":30},"trusted_root_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"enable_http2":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"force_firewall_policy_association":{"type":"TypeBool","optional":true},"frontend_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"private_link_configuration_id":{"type":"TypeString","computed":true},"private_link_configuration_name":{"type":"TypeString","optional":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"minItems":1},"frontend_port":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true}}}},"gateway_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":2},"global":{"type":"TypeList","optional":true,"elem":{"schema":{"request_buffering_enabled":{"type":"TypeBool","required":true},"response_buffering_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"http_listener":{"type":"TypeSet","required":true,"elem":{"schema":{"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"firewall_policy_id":{"type":"TypeString","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_id":{"type":"TypeString","computed":true},"frontend_port_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"require_sni":{"type":"TypeBool","optional":true},"ssl_certificate_id":{"type":"TypeString","computed":true},"ssl_certificate_name":{"type":"TypeString","optional":true},"ssl_profile_id":{"type":"TypeString","computed":true},"ssl_profile_name":{"type":"TypeString","optional":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_link_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true}}}},"probe":{"type":"TypeSet","optional":true,"elem":{"schema":{"host":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"interval":{"type":"TypeInt","required":true},"match":{"type":"TypeList","optional":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"status_code":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"minimum_servers":{"type":"TypeInt","optional":true,"default":0},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"pick_host_name_from_backend_http_settings":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","optional":true},"protocol":{"type":"TypeString","required":true},"timeout":{"type":"TypeInt","required":true},"unhealthy_threshold":{"type":"TypeInt","required":true}}}},"redirect_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"include_path":{"type":"TypeBool","optional":true,"default":false},"include_query_string":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true},"target_listener_id":{"type":"TypeString","computed":true},"target_listener_name":{"type":"TypeString","optional":true},"target_url":{"type":"TypeString","optional":true}}}},"request_routing_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"http_listener_id":{"type":"TypeString","computed":true},"http_listener_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true},"rule_type":{"type":"TypeString","required":true},"url_path_map_id":{"type":"TypeString","computed":true},"url_path_map_name":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rewrite_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"rewrite_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"ignore_case":{"type":"TypeBool","optional":true,"default":false},"negate":{"type":"TypeBool","optional":true,"default":false},"pattern":{"type":"TypeString","required":true},"variable":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"request_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"response_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"rule_sequence":{"type":"TypeInt","required":true},"url":{"type":"TypeList","optional":true,"elem":{"schema":{"components":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","optional":true},"query_string":{"type":"TypeString","optional":true},"reroute":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"ssl_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"ssl_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"ssl_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"ssl_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"trusted_client_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verify_client_cert_issuer_dn":{"type":"TypeBool","optional":true,"default":false},"verify_client_certificate_revocation":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_client_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"trusted_root_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"url_path_map":{"type":"TypeList","optional":true,"elem":{"schema":{"default_backend_address_pool_id":{"type":"TypeString","computed":true},"default_backend_address_pool_name":{"type":"TypeString","optional":true},"default_backend_http_settings_id":{"type":"TypeString","computed":true},"default_backend_http_settings_name":{"type":"TypeString","optional":true},"default_redirect_configuration_id":{"type":"TypeString","computed":true},"default_redirect_configuration_name":{"type":"TypeString","optional":true},"default_rewrite_rule_set_id":{"type":"TypeString","computed":true},"default_rewrite_rule_set_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"paths":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true}}}}}}},"waf_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group_name":{"type":"TypeString","required":true},"rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}}}}},"enabled":{"type":"TypeBool","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"selector_match_operator":{"type":"TypeString","optional":true}}}},"file_upload_limit_mb":{"type":"TypeInt","optional":true,"default":100},"firewall_mode":{"type":"TypeString","required":true},"max_request_body_size_kb":{"type":"TypeInt","optional":true,"default":128},"request_body_check":{"type":"TypeBool","optional":true,"default":true},"rule_set_type":{"type":"TypeString","optional":true,"default":"OWASP"},"rule_set_version":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","required":true,"forceNew":true},"connection_string":{"type":"TypeString","computed":true},"daily_data_cap_in_gb":{"type":"TypeFloat","optional":true,"computed":true},"daily_data_cap_notifications_disabled":{"type":"TypeBool","optional":true,"computed":true},"disable_ip_masking":{"type":"TypeBool","optional":true,"default":false},"force_customer_storage_for_profiler":{"type":"TypeBool","optional":true,"default":false},"instrumentation_key":{"type":"TypeString","computed":true},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":90},"sampling_percentage":{"type":"TypeFloat","optional":true,"default":100},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_application_insights_analytics_item":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","required":true},"function_alias":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"time_created":{"type":"TypeString","computed":true},"time_modified":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_api_key":{"schema":{"api_key":{"type":"TypeString","computed":true},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"write_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_smart_detection_rule":{"schema":{"additional_email_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"send_emails_to_subscription_owners":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_standard_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","required":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"follow_redirects_enabled":{"type":"TypeBool","optional":true,"default":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"http_verb":{"type":"TypeString","optional":true,"default":"GET"},"parse_dependent_requests_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30},"validation_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"content":{"type":"TypeList","optional":true,"elem":{"schema":{"content_match":{"type":"TypeString","required":true},"ignore_case":{"type":"TypeBool","optional":true,"default":false},"pass_if_text_found":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"expected_status_code":{"type":"TypeInt","optional":true,"default":200},"ssl_cert_remaining_lifetime":{"type":"TypeInt","optional":true},"ssl_check_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"configuration":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook":{"schema":{"category":{"type":"TypeString","optional":true,"default":"workbook"},"data_json":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_id":{"type":"TypeString","optional":true,"default":"azure monitor"},"storage_container_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook_template":{"schema":{"author":{"type":"TypeString","optional":true},"galleries":{"type":"TypeList","required":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","optional":true,"default":0},"resource_type":{"type":"TypeString","optional":true,"default":"Azure Monitor"},"type":{"type":"TypeString","optional":true,"default":"workbook"}}},"minItems":1},"localized":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_data":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster":{"schema":{"agent_public_key_certificate":{"type":"TypeString","required":true,"forceNew":true},"agent_version":{"type":"TypeString","computed":true},"distribution":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"infrastructure":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"offering":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"total_core_count":{"type":"TypeInt","computed":true},"total_node_count":{"type":"TypeInt","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster_extension":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_machine_extension":{"schema":{"arc_machine_id":{"type":"TypeString","required":true,"forceNew":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true,"default":true},"force_update_tag":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_private_link_scope":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_resource_bridge_appliance":{"schema":{"distro":{"type":"TypeString","required":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"infrastructure_provider":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_key_base64":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"open_enclave_policy_base64":{"type":"TypeString","optional":true},"policy":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"environment_type":{"type":"TypeString","optional":true}}}},"policy_signing_certificate_data":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sev_snp_policy_base64":{"type":"TypeString","optional":true},"sgx_enclave_policy_base64":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tpm_policy_base64":{"type":"TypeString","optional":true},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automanage_configuration":{"schema":{"antimalware":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusions":{"type":"TypeList","optional":true,"elem":{"schema":{"extensions":{"type":"TypeString","optional":true},"paths":{"type":"TypeString","optional":true},"processes":{"type":"TypeString","optional":true}}},"maxItems":1},"real_time_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_day":{"type":"TypeInt","optional":true,"default":8},"scheduled_scan_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_time_in_minutes":{"type":"TypeInt","optional":true,"default":0},"scheduled_scan_type":{"type":"TypeString","optional":true,"default":"Quick"}}},"maxItems":1},"automation_account_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_security_baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true,"default":"ApplyAndAutoCorrect"}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"instant_rp_retention_range_in_days":{"type":"TypeInt","optional":true,"default":5},"policy_name":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"daily_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Days"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_policy_type":{"type":"TypeString","optional":true,"default":"LongTermRetentionPolicy"},"weekly_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Weeks"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"schedule_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule_policy_type":{"type":"TypeString","optional":true,"default":"SimpleSchedulePolicy"},"schedule_run_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"schedule_run_frequency":{"type":"TypeString","optional":true,"default":"Daily"},"schedule_run_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"boot_diagnostics_enabled":{"type":"TypeBool","optional":true,"default":false},"defender_for_cloud_enabled":{"type":"TypeBool","optional":true,"default":false},"guest_configuration_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status_change_alert_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_account":{"schema":{"dsc_primary_access_key":{"type":"TypeString","computed":true},"dsc_secondary_access_key":{"type":"TypeString","computed":true},"dsc_server_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"key_source":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"base64":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"exportable":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"values":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"automation_certificate_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_classic_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_asset_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"subscription_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_service_principal":{"schema":{"application_id":{"type":"TypeString","required":true},"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_thumbprint":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_type":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"field":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"is_encrypted":{"type":"TypeBool","optional":true},"is_optional":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"is_global":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_credential":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_configuration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_embedded":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_verbose":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_nodeconfiguration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"configuration_name":{"type":"TypeString","computed":true},"content_embedded":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_hybrid_runbook_worker":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"ip":{"type":"TypeString","computed":true},"last_seen_date_time":{"type":"TypeString","computed":true},"registration_date_time":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"worker_group_name":{"type":"TypeString","required":true,"forceNew":true},"worker_id":{"type":"TypeString","required":true,"forceNew":true},"worker_name":{"type":"TypeString","computed":true},"worker_type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_hybrid_runbook_worker_group":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"credential_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_job_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"job_schedule_id":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on":{"type":"TypeString","optional":true,"forceNew":true},"runbook_name":{"type":"TypeString","required":true,"forceNew":true},"schedule_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_module":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"module_link":{"type":"TypeList","required":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_python3_package":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_uri":{"type":"TypeString","required":true,"forceNew":true},"content_version":{"type":"TypeString","optional":true,"forceNew":true},"hash_algorithm":{"type":"TypeString","optional":true,"forceNew":true},"hash_value":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_runbook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","optional":true,"computed":true},"description":{"type":"TypeString","optional":true},"draft":{"type":"TypeList","optional":true,"elem":{"schema":{"content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"creation_time":{"type":"TypeString","computed":true},"edit_mode_enabled":{"type":"TypeBool","optional":true},"last_modified_time":{"type":"TypeString","computed":true},"output_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true},"mandatory":{"type":"TypeBool","optional":true,"default":false},"position":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"job_schedule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"job_schedule_id":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_on":{"type":"TypeString","optional":true},"schedule_name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_activity_trace_level":{"type":"TypeInt","optional":true},"log_progress":{"type":"TypeBool","required":true},"log_verbose":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"runbook_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true,"computed":true},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"timezone":{"type":"TypeString","optional":true,"default":"Etc/UTC"},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_software_update_configuration":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"duration":{"type":"TypeString","optional":true,"default":"PT2H"},"error_code":{"type":"TypeString","computed":true},"error_meesage":{"type":"TypeString","computed":true},"error_message":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"non_azure_computer_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operating_system":{"type":"TypeString","optional":true,"computed":true},"post_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"pre_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"advanced_month_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"advanced_week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"creation_time":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"expiry_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"is_enabled":{"type":"TypeBool","optional":true,"default":true},"last_modified_time":{"type":"TypeString","computed":true},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}},"maxItems":1},"next_run":{"type":"TypeString","optional":true,"computed":true},"next_run_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"start_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true,"default":"Etc/UTC"}}},"maxItems":1},"target":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"locations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tag_filter":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeList","optional":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}}},"non_azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"function_alias":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_machine_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_automation_source_control":{"schema":{"automatic_sync":{"type":"TypeBool","optional":true,"default":false},"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"branch":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"folder_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_runbook_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_url":{"type":"TypeString","required":true},"security":{"type":"TypeList","required":true,"elem":{"schema":{"refresh_token":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"source_control_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_watcher":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"etag":{"type":"TypeString","optional":true},"execution_frequency_in_seconds":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script_name":{"type":"TypeString","required":true,"forceNew":true},"script_parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"script_run_on":{"type":"TypeString","required":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_webhook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiry_time":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on_worker_group":{"type":"TypeString","optional":true},"runbook_name":{"type":"TypeString","required":true},"uri":{"type":"TypeString","configMode":"Auto","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"default":3,"forceNew":true},"platform_update_domain_count":{"type":"TypeInt","optional":true,"default":5,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_container_storage_account":{"schema":{"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_file_share":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hourly":{"type":"TypeList","optional":true,"elem":{"schema":{"interval":{"type":"TypeInt","required":true},"start_time":{"type":"TypeString","required":true},"window_duration":{"type":"TypeInt","required":true}}},"maxItems":1},"time":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","required":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hour_duration":{"type":"TypeInt","optional":true},"hour_interval":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","required":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instant_restore_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prefix":{"type":"TypeString","required":true},"suffix":{"type":"TypeString","optional":true}}},"maxItems":1},"instant_restore_retention_days":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_type":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm_workload":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"protection_policy":{"type":"TypeSet","required":true,"elem":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","optional":true},"frequency_in_minutes":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","optional":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"policy_type":{"type":"TypeString","required":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"simple_retention":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1}}}},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeList","required":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1},"workload_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_protected_file_share":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_file_share_name":{"type":"TypeString","required":true,"forceNew":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":80,"read":5,"delete":80,"update":80}},"azurerm_backup_protected_vm":{"schema":{"backup_policy_id":{"type":"TypeString","optional":true},"exclude_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"protection_state":{"type":"TypeString","optional":true,"computed":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":80,"update":120}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","optional":true,"default":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ip_connect_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","optional":true,"default":2},"shareable_link_enabled":{"type":"TypeBool","optional":true,"default":false},"sku":{"type":"TypeString","optional":true,"default":"Basic"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"allowed_authentication_modes":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"account_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1},"node_management_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1}}},"maxItems":1},"pool_allocation_mode":{"type":"TypeString","optional":true,"default":"BatchService"},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_authentication_mode":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_account_node_identity":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"allow_updates":{"type":"TypeBool","optional":true,"default":true},"default_version":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate":{"type":"TypeString","required":true},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","optional":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","required":true,"forceNew":true},"thumbprint_algorithm":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_job":{"schema":{"batch_pool_id":{"type":"TypeString","required":true,"forceNew":true},"common_environment_properties":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"task_retry_maximum":{"type":"TypeInt","optional":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","optional":true,"default":"PT15M"},"formula":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"store_location":{"type":"TypeString","required":true},"store_name":{"type":"TypeString","optional":true},"visibility":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"type":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"data_disks":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"default":"ReadOnly"},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","required":true}}}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"extensions":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","optional":true}}}},"fixed_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"node_deallocation_method":{"type":"TypeString","optional":true},"resize_timeout":{"type":"TypeString","optional":true,"default":"PT15M"},"target_dedicated_nodes":{"type":"TypeInt","optional":true,"default":1},"target_low_priority_nodes":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inter_node_communication":{"type":"TypeString","optional":true,"default":"Enabled"},"license_type":{"type":"TypeString","optional":true},"max_tasks_per_node":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"account_name":{"type":"TypeString","required":true},"blobfuse_options":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"identity_id":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"sas_key":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"azure_file_url":{"type":"TypeString","required":true},"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true}}}},"cifs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"nfs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"dynamic_vnet_assignment_scope":{"type":"TypeString","optional":true,"default":"none","forceNew":true},"endpoint_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port_range":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"access":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","required":true,"forceNew":true},"source_port_ranges":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString","default":"*"}}}}},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"public_address_provisioning_type":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"node_agent_sku_id":{"type":"TypeString","required":true,"forceNew":true},"node_placement":{"type":"TypeList","optional":true,"elem":{"schema":{"policy":{"type":"TypeString","optional":true,"default":"Regional"}}}},"os_disk_placement":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_task":{"type":"TypeList","optional":true,"elem":{"schema":{"command_line":{"type":"TypeString","required":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"run_options":{"type":"TypeString","optional":true},"working_directory":{"type":"TypeString","optional":true}}}},"resource_file":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","optional":true},"blob_prefix":{"type":"TypeString","optional":true},"file_mode":{"type":"TypeString","optional":true},"file_path":{"type":"TypeString","optional":true},"http_url":{"type":"TypeString","optional":true},"storage_container_url":{"type":"TypeString","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"task_retry_maximum":{"type":"TypeInt","optional":true},"user_identity":{"type":"TypeList","required":true,"elem":{"schema":{"auto_user":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","optional":true,"default":"NonAdmin"},"scope":{"type":"TypeString","optional":true,"default":"Task"}}},"maxItems":1},"user_name":{"type":"TypeString","optional":true}}},"maxItems":1},"wait_for_success":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"stop_pending_resize_operation":{"type":"TypeBool","optional":true,"default":false},"storage_image_reference":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"target_node_communication_mode":{"type":"TypeString","optional":true},"task_scheduling_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","optional":true,"computed":true}}}},"user_accounts":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","required":true},"linux_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gid":{"type":"TypeInt","optional":true},"ssh_private_key":{"type":"TypeString","optional":true},"uid":{"type":"TypeInt","optional":true}}}},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"windows_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}}}}}},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_billing_account_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"billing_account_id":{"type":"TypeString","required":true,"forceNew":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_blueprint_assignment":{"schema":{"blueprint_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_exclude_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":200},"lock_exclude_principals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"lock_mode":{"type":"TypeString","optional":true,"default":"None"},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeString","optional":true},"target_subscription_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","computed":true},"version_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_bot_channel_alexa":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skill_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_direct_line_speech":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"cognitive_account_id":{"type":"TypeString","optional":true},"cognitive_service_access_key":{"type":"TypeString","required":true},"cognitive_service_location":{"type":"TypeString","required":true},"custom_speech_model_id":{"type":"TypeString","optional":true},"custom_voice_deployment_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_directline":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site":{"type":"TypeSet","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_parameters_enabled":{"type":"TypeBool","optional":true},"enhanced_authentication_enabled":{"type":"TypeBool","optional":true,"default":false},"id":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key2":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"storage_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"user_upload_enabled":{"type":"TypeBool","optional":true,"default":true},"v1_allowed":{"type":"TypeBool","optional":true,"default":true},"v3_allowed":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_email":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"email_address":{"type":"TypeString","required":true},"email_password":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_facebook":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"facebook_application_id":{"type":"TypeString","required":true},"facebook_application_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"page":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_line":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"line_channel":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"secret":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_ms_teams":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"calling_web_hook":{"type":"TypeString","optional":true,"computed":true},"deployment_environment":{"type":"TypeString","optional":true,"default":"CommercialDeployment"},"enable_calling":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_slack":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"landing_page_url":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signing_secret":{"type":"TypeString","optional":true},"verification_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_sms":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sms_channel_account_security_id":{"type":"TypeString","required":true},"sms_channel_auth_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_web_chat":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"endpoint_parameters_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"storage_enabled":{"type":"TypeBool","optional":true,"default":true},"user_upload_enabled":{"type":"TypeBool","optional":true,"default":true}}}},"site_names":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channels_registration":{"schema":{"cmk_key_vault_url":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"icon_url":{"type":"TypeString","optional":true,"computed":true},"isolated_network_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_connection":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeString","optional":true},"service_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_service_azure_bot":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true},"developer_app_insights_key":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_msi_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_type":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_web_app":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint":{"schema":{"content_types_to_compress":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"post_arg_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}}},"fqdn":{"type":"TypeString","computed":true},"geo_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"country_codes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"relative_path":{"type":"TypeString","required":true}}}},"global_delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_compression_enabled":{"type":"TypeBool","optional":true},"is_http_allowed":{"type":"TypeBool","optional":true,"default":true},"is_https_allowed":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimization_type":{"type":"TypeString","optional":true},"origin":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true,"forceNew":true},"http_port":{"type":"TypeInt","optional":true,"default":80,"forceNew":true},"https_port":{"type":"TypeInt","optional":true,"default":443,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"origin_host_header":{"type":"TypeString","optional":true},"origin_path":{"type":"TypeString","optional":true,"computed":true},"probe_path":{"type":"TypeString","optional":true,"computed":true},"profile_name":{"type":"TypeString","required":true,"forceNew":true},"querystring_caching_behaviour":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint_custom_domain":{"schema":{"cdn_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_type":{"type":"TypeString","required":true},"protocol_type":{"type":"TypeString","required":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"user_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","optional":true,"computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"computed":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"dns_zone_id":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tls":{"type":"TypeList","required":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","optional":true,"computed":true},"certificate_type":{"type":"TypeString","optional":true,"default":"ManagedCertificate"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain_association":{"schema":{"cdn_frontdoor_custom_domain_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_route_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin":{"schema":{"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name_check_enabled":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","optional":true,"computed":true},"health_probes_enabled":{"type":"TypeBool","optional":true,"computed":true},"host_name":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","optional":true,"default":80},"https_port":{"type":"TypeInt","optional":true,"default":443},"name":{"type":"TypeString","required":true,"forceNew":true},"origin_host_header":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","optional":true,"default":1},"private_link":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"private_link_target_id":{"type":"TypeString","required":true},"request_message":{"type":"TypeString","optional":true,"default":"Access request for CDN FrontDoor Private Link Origin"},"target_type":{"type":"TypeString","optional":true}}},"maxItems":1},"weight":{"type":"TypeInt","optional":true,"default":500}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"health_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"protocol":{"type":"TypeString","required":true},"request_type":{"type":"TypeString","optional":true,"default":"HEAD"}}},"maxItems":1},"load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","optional":true,"default":50},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","optional":true,"default":10},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","optional":true,"default":120},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route":{"schema":{"cache":{"type":"TypeList","optional":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"content_types_to_compress":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"query_string_caching_behavior":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"query_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"cdn_frontdoor_custom_domain_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true},"cdn_frontdoor_origin_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_origin_path":{"type":"TypeString","optional":true},"cdn_frontdoor_rule_set_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"https_redirect_enabled":{"type":"TypeBool","optional":true,"default":true},"link_to_default_domain":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"supported_protocols":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route_disable_link_to_default_domain":{"schema":{"cdn_frontdoor_custom_domain_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_route_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"route_configuration_override_action":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_behavior":{"type":"TypeString","optional":true},"cache_duration":{"type":"TypeString","optional":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","optional":true},"compression_enabled":{"type":"TypeBool","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true},"query_string_caching_behavior":{"type":"TypeString","optional":true},"query_string_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":100}}},"maxItems":1},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_fragment":{"type":"TypeString","optional":true,"default":""},"destination_hostname":{"type":"TypeString","required":true},"destination_path":{"type":"TypeString","optional":true,"default":""},"query_string":{"type":"TypeString","optional":true,"default":""},"redirect_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":false},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"behavior_on_match":{"type":"TypeString","optional":true,"default":"Continue"},"cdn_frontdoor_rule_set_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_rule_set_name":{"type":"TypeString","computed":true},"conditions":{"type":"TypeList","optional":true,"elem":{"schema":{"client_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"cookie_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"host_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":4},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"is_device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"post_args_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"post_args_name":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString","default":"HTTP"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"server_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"socket_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"ssl_protocol_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":3},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_filename_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_profile_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_frontdoor_security_policy":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"security_policies":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"firewall":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"association":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"domain":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"active":{"type":"TypeBool","computed":true},"cdn_frontdoor_domain_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":500},"patterns_to_match":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}}},"maxItems":1},"cdn_frontdoor_firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account":{"schema":{"custom_question_answering_search_service_id":{"type":"TypeString","optional":true},"custom_question_answering_search_service_key":{"type":"TypeString","optional":true},"custom_subdomain_name":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"dynamic_throttling_enabled":{"type":"TypeBool","optional":true},"endpoint":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metrics_advisor_aad_client_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_aad_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_super_user_name":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_website_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"qna_runtime_endpoint":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"storage":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account_customer_managed_key":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_deployment":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"model":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"format":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"rai_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"scale":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"family":{"type":"TypeString","optional":true,"forceNew":true},"size":{"type":"TypeString","optional":true,"forceNew":true},"tier":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","optional":true,"default":"United States","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","required":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"minItems":1},"certificate_based_security_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"pem_public_key":{"type":"TypeString","required":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_management_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to host this Container App.","forceNew":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The Dapr Application Identifier."},"app_port":{"type":"TypeInt","optional":true,"description":"The port which the application is listening on. This is the same as the `ingress` port."},"app_protocol":{"type":"TypeString","optional":true,"default":"http","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`."}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","optional":true,"default":false,"description":"Should this ingress allow insecure connections?"},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","optional":true,"default":"Disabled","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`"},"certificate_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate."}}},"maxItems":1},"external_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Is this an external Ingress."},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","required":true,"description":"The target port on the container for the Ingress traffic."},"traffic_weight":{"type":"TypeList","required":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"description":"The label to apply to the revision as a name prefix for routing traffic."},"latest_revision":{"type":"TypeBool","optional":true,"default":false,"description":"This traffic Weight relates to the latest stable Container Revision."},"percentage":{"type":"TypeInt","required":true,"description":"The percentage of traffic to send to this revision."},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted."}}}},"transport":{"type":"TypeString","optional":true,"default":"auto","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`"}}},"maxItems":1},"latest_revision_fqdn":{"type":"TypeString","description":"The FQDN of the Latest Revision of the Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"The name for this Container App.","forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true,"description":"ID of the System or User Managed Identity used to pull images from the Container Registry"},"password_secret_name":{"type":"TypeString","optional":true,"description":"The name of the Secret Reference containing the password value for this user on the Container Registry."},"server":{"type":"TypeString","required":true,"description":"The hostname for the Container Registry."},"username":{"type":"TypeString","optional":true,"description":"The username to use for this Container Registry."}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision_mode":{"type":"TypeString","required":true},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","required":true,"elem":{"schema":{"azure_queue_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"secret_name":{"type":"TypeString","required":true},"trigger_parameter":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true},"queue_length":{"type":"TypeInt","required":true},"queue_name":{"type":"TypeString","required":true}}}},"container":{"type":"TypeList","required":true,"elem":{"schema":{"args":{"type":"TypeList","optional":true,"description":"A list of args to pass to the container.","elem":{"type":"TypeString"}},"command":{"type":"TypeList","optional":true,"description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`"},"env":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the environment variable for the container."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of the secret that contains the value for this environment variable."},"value":{"type":"TypeString","optional":true,"description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used"}}},"minItems":1},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","required":true,"description":"The image to use to create the container."},"liveness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"initial_delay":{"type":"TypeInt","optional":true,"default":1,"description":"The time in seconds to wait after the container has started before the probe is started."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"memory":{"type":"TypeString","required":true,"description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`"},"name":{"type":"TypeString","required":true,"description":"The name of the container."},"readiness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"success_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`."},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"startup_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"volume_mounts":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Volume to be mounted in the container."},"path":{"type":"TypeString","required":true,"description":"The path in the container at which to mount this volume."}}}}}},"minItems":1},"custom_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_name":{"type":"TypeString","required":true},"trigger_parameter":{"type":"TypeString","required":true}}},"minItems":1},"custom_rule_type":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"http_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_name":{"type":"TypeString","required":true},"trigger_parameter":{"type":"TypeString","optional":true}}},"minItems":1},"concurrent_requests":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"max_replicas":{"type":"TypeInt","optional":true,"default":10,"description":"The maximum number of replicas for this container."},"min_replicas":{"type":"TypeInt","optional":true,"description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"tcp_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_name":{"type":"TypeString","required":true},"trigger_parameter":{"type":"TypeString","optional":true}}},"minItems":1},"concurrent_requests":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment":{"schema":{"dapr_application_insights_connection_string":{"type":"TypeString","optional":true,"description":"Application Insights connection string used by Dapr to export Service to Service communication telemetry.","forceNew":true},"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","optional":true,"description":"The existing Subnet to use for the Container Apps Control Plane. **NOTE:** The Subnet must have a `/21` or larger address space.","forceNew":true},"internal_load_balancer_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Container Environment operate in Internal Load Balancing Mode? Defaults to `false`. **Note:** can only be set to `true` if `infrastructure_subnet_id` is specified.","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true,"description":"The ID for the Log Analytics Workspace to link this Container Apps Managed Environment to.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment.","forceNew":true},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_certificate":{"schema":{"certificate_blob_base64":{"type":"TypeString","required":true,"description":"The Certificate Private Key as a base64 encoded PFX or PEM.","forceNew":true},"certificate_password":{"type":"TypeString","required":true,"description":"The password for the Certificate.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Environment Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_dapr_component":{"schema":{"component_type":{"type":"TypeString","required":true,"description":"The Dapr Component Type. For example `state.azure.blobstorage`.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Dapr component on.","forceNew":true},"ignore_errors":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Dapr sidecar to continue initialisation if the component fails to load. Defaults to `false`"},"init_timeout":{"type":"TypeString","optional":true,"default":"5s","description":"The component initialisation timeout in ISO8601 format. e.g. `5s`, `2h`, `1m`. Defaults to `5s`."},"metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Metadata configuration item."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of a secret specified in the `secrets` block that contains the value for this metadata configuration item."},"value":{"type":"TypeString","optional":true,"description":"The value for this metadata configuration item."}}},"minItems":1},"name":{"type":"TypeString","required":true,"description":"The name for this Dapr Component.","forceNew":true},"scopes":{"type":"TypeList","optional":true,"description":"A list of scopes to which this component applies. e.g. a Container App's `dapr.app_id` value.","elem":{"type":"TypeString"},"minItems":1},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"version":{"type":"TypeString","required":true,"description":"The version of the component."}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_storage":{"schema":{"access_key":{"type":"TypeString","required":true,"description":"The Storage Account Access Key."},"access_mode":{"type":"TypeString","required":true,"description":"The access mode to connect this storage to the Container App. Possible values include `ReadOnly` and `ReadWrite`.","forceNew":true},"account_name":{"type":"TypeString","required":true,"description":"The Azure Storage Account in which the Share to be used is located.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to which this storage belongs.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name for this Storage.","forceNew":true},"share_name":{"type":"TypeString","required":true,"description":"The name of the Azure Storage Share to use.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_connected_registry":{"schema":{"audit_log_enabled":{"type":"TypeBool","optional":true,"default":false},"client_token_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"log_level":{"type":"TypeString","optional":true,"default":"None"},"mode":{"type":"TypeString","optional":true,"default":"ReadWrite","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"digest":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tag":{"type":"TypeString","optional":true}}}},"parent_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"sync_message_ttl":{"type":"TypeString","optional":true,"default":"P1D"},"sync_schedule":{"type":"TypeString","optional":true,"default":"* * * * *"},"sync_token_id":{"type":"TypeString","required":true,"forceNew":true},"sync_window":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_group":{"schema":{"container":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"forceNew":true},"cpu_limit":{"type":"TypeFloat","optional":true},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"gpu":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"gpu_limit":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"sku":{"type":"TypeString","optional":true}}},"maxItems":1},"image":{"type":"TypeString","required":true,"forceNew":true},"liveness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"memory":{"type":"TypeFloat","required":true,"forceNew":true},"memory_limit":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ports":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"readiness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"diagnostics":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"log_analytics":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"log_type":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_key":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"dns_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"nameservers":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"options":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"search_domains":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"dns_name_label":{"type":"TypeString","optional":true,"forceNew":true},"dns_name_label_reuse_policy":{"type":"TypeString","optional":true,"default":"Unsecure"},"exposed_port":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_registry_credential":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"username":{"type":"TypeString","optional":true,"forceNew":true}}}},"init_container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"ip_address":{"type":"TypeString","computed":true},"ip_address_type":{"type":"TypeString","optional":true,"default":"Public","forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"key_vault_user_assigned_identity_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile_id":{"type":"TypeString","optional":true,"computed":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restart_policy":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"subnet_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"anonymous_pull_enabled":{"type":"TypeBool","optional":true},"data_endpoint_enabled":{"type":"TypeBool","optional":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"identity_client_id":{"type":"TypeString","required":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"georeplications":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true},"regional_endpoint_enabled":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_bypass_option":{"type":"TypeString","optional":true,"default":"AzureServices"},"network_rule_set":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_range":{"type":"TypeString","required":true}}}},"virtual_network":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"quarantine_policy_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trust_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_agent_pool":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"default":"S1","forceNew":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task":{"schema":{"agent_pool_name":{"type":"TypeString","optional":true},"agent_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"cpu":{"type":"TypeInt","required":true}}},"maxItems":1},"base_image_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"update_trigger_endpoint":{"type":"TypeString","optional":true},"update_trigger_payload_type":{"type":"TypeString","optional":true}}},"maxItems":1},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"docker_step":{"type":"TypeList","optional":true,"elem":{"schema":{"arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"cache_enabled":{"type":"TypeBool","optional":true,"default":true},"context_access_token":{"type":"TypeString","required":true},"context_path":{"type":"TypeString","required":true},"dockerfile_path":{"type":"TypeString","required":true},"image_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"push_enabled":{"type":"TypeBool","optional":true,"default":true},"secret_arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target":{"type":"TypeString","optional":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"encoded_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_content":{"type":"TypeString","required":true},"value_content":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"file_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_file_path":{"type":"TypeString","required":true},"value_file_path":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"is_system_task":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"log_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"architecture":{"type":"TypeString","optional":true},"os":{"type":"TypeString","required":true},"variant":{"type":"TypeString","optional":true}}},"maxItems":1},"registry_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"custom":{"type":"TypeSet","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"username":{"type":"TypeString","optional":true}}}},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"source_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"expire_in_seconds":{"type":"TypeInt","optional":true},"refresh_token":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"repository_url":{"type":"TypeString","required":true},"source_type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":3600},"timer_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task_schedule_run_now":{"schema":{"container_registry_task_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_map_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_token_password":{"schema":{"container_registry_token_id":{"type":"TypeString","required":true,"forceNew":true},"password1":{"type":"TypeList","required":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1},"password2":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_webhook":{"schema":{"actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"custom_headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"registry_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":""},"service_uri":{"type":"TypeString","required":true},"status":{"type":"TypeString","optional":true,"default":"enabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_account":{"schema":{"access_key_metadata_writes_enabled":{"type":"TypeBool","optional":true,"default":true},"analytical_storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"schema_type":{"type":"TypeString","required":true}}},"maxItems":1},"analytical_storage_enabled":{"type":"TypeBool","optional":true,"default":false},"backup":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"interval_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"retention_in_hours":{"type":"TypeInt","optional":true,"computed":true},"storage_redundancy":{"type":"TypeString","optional":true,"computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"capabilities":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}},"capacity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"total_throughput_limit":{"type":"TypeInt","required":true}}},"maxItems":1},"connection_strings":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"consistency_policy":{"type":"TypeList","required":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","required":true},"max_interval_in_seconds":{"type":"TypeInt","optional":true,"computed":true},"max_staleness_prefix":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"create_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"default_identity_type":{"type":"TypeString","optional":true,"default":"FirstPartyIdentity"},"enable_automatic_failover":{"type":"TypeBool","optional":true,"default":false},"enable_free_tier":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"enable_multiple_write_locations":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeSet","required":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","required":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_range_filter":{"type":"TypeString","optional":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"kind":{"type":"TypeString","optional":true,"default":"GlobalDocumentDB","forceNew":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"mongo_server_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acl_bypass_for_azure_services":{"type":"TypeBool","optional":true,"default":false},"network_acl_bypass_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"offer_type":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"primary_mongodb_connection_string":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"primary_readonly_mongodb_connection_string":{"type":"TypeString","computed":true},"primary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"primary_sql_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"elem":{"schema":{"database":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"collection_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"restore_timestamp_in_utc":{"type":"TypeString","required":true,"forceNew":true},"source_cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"secondary_key":{"type":"TypeString","computed":true},"secondary_mongodb_connection_string":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"secondary_readonly_mongodb_connection_string":{"type":"TypeString","computed":true},"secondary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"secondary_sql_connection_string":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_cassandra_cluster":{"schema":{"authentication_method":{"type":"TypeString","optional":true,"default":"Cassandra"},"client_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_admin_password":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"external_gossip_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"external_seed_node_ip_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"hours_between_backups":{"type":"TypeInt","optional":true,"default":24},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repair_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"3.11","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_datacenter":{"schema":{"availability_zones_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_storage_customer_key_uri":{"type":"TypeString","optional":true},"base64_encoded_yaml_fragment":{"type":"TypeString","optional":true},"cassandra_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"disk_count":{"type":"TypeInt","optional":true},"disk_sku":{"type":"TypeString","optional":true,"default":"P30"},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_customer_key_uri":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"default":3},"sku_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_cosmosdb_cassandra_keyspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_table":{"schema":{"analytical_storage_ttl":{"type":"TypeInt","optional":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cassandra_keyspace_id":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schema":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_key":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"order_by":{"type":"TypeString","required":true}}}},"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"partition_key":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_graph":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"index_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"automatic":{"type":"TypeBool","optional":true,"default":true},"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"included_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"indexing_mode":{"type":"TypeString","required":true},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_collection":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl_seconds":{"type":"TypeInt","optional":true},"index":{"type":"TypeSet","optional":true,"elem":{"schema":{"keys":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","optional":true,"default":false}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shard_key":{"type":"TypeString","optional":true,"forceNew":true},"system_indexes":{"type":"TypeList","computed":true,"elem":{"schema":{"keys":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","computed":true}}}},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_role_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"privilege":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource":{"type":"TypeList","required":true,"elem":{"schema":{"collection_name":{"type":"TypeString","optional":true},"db_name":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"role_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_user_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_notebook_workspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_endpoint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_postgresql_cluster":{"schema":{"administrator_login_password":{"type":"TypeString","required":true},"citus_version":{"type":"TypeString","optional":true,"computed":true},"coordinator_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":true},"coordinator_server_edition":{"type":"TypeString","optional":true,"default":"GeneralPurpose"},"coordinator_storage_quota_in_mb":{"type":"TypeInt","required":true},"coordinator_vcore_count":{"type":"TypeInt","required":true},"earliest_restore_time":{"type":"TypeString","computed":true},"ha_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","required":true},"node_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":false},"node_server_edition":{"type":"TypeString","optional":true,"default":"MemoryOptimized"},"node_storage_quota_in_mb":{"type":"TypeInt","optional":true,"computed":true},"node_vcores":{"type":"TypeInt","optional":true,"computed":true},"point_in_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"preferred_primary_zone":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shards_on_coordinator_enabled":{"type":"TypeBool","optional":true,"computed":true},"source_location":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"sql_version":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_postgresql_coordinator_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_firewall_rule":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_node_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_role":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_sql_container":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"indexing_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"included_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"indexing_mode":{"type":"TypeString","optional":true,"default":"consistent"},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_dedicated_gateway":{"schema":{"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","required":true},"instance_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_function":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_assignment":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"assignable_scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeSet","required":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"CustomRole","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_stored_procedure":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_trigger":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operation":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_table":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_anomaly_alert":{"schema":{"display_name":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"email_subject":{"type":"TypeString","required":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_management_scheduled_action":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name":{"type":"TypeString","required":true},"email_address_sender":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":20,"minItems":1},"email_subject":{"type":"TypeString","required":true},"end_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","optional":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_date":{"type":"TypeString","required":true},"view_id":{"type":"TypeString","required":true,"forceNew":true},"weeks_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_custom_ip_prefix":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"commissioning_enabled":{"type":"TypeBool","optional":true,"default":false},"internet_advertising_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_custom_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roa_validity_end_date":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wan_validation_signed_message":{"type":"TypeString","optional":true,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":540,"read":5,"delete":1020,"update":1020}},"azurerm_custom_provider":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_type":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"routing_type":{"type":"TypeString","optional":true,"default":"Proxy"}}}},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validation":{"type":"TypeSet","optional":true,"elem":{"schema":{"specification":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard_grafana":{"schema":{"api_key_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse"},"azure_monitor_workspace_integrations":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"deterministic_outbound_ip_enabled":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"grafana_version":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory":{"schema":{"customer_managed_key_id":{"type":"TypeString","optional":true},"customer_managed_key_identity_id":{"type":"TypeString","optional":true},"github_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","required":true},"publishing_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"global_parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"project_name":{"type":"TypeString","required":true},"publishing_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_custom_dataset":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_azure_blob":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_azure_sql_table":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_binary":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sftp_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_cosmosdb_sqlapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"collection_name":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_delimited_text":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_fs_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_file_system_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"file_system":{"type":"TypeString","optional":true},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"column_delimiter":{"type":"TypeString","optional":true,"default":","},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"escape_character":{"type":"TypeString","optional":true,"default":"\\"},"first_row_as_header":{"type":"TypeBool","optional":true,"default":false},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"null_value":{"type":"TypeString","optional":true,"default":""},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"quote_character":{"type":"TypeString","optional":true,"default":"\""},"row_delimiter":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_http":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"relative_url":{"type":"TypeString","optional":true},"request_body":{"type":"TypeString","optional":true},"request_method":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_json":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_parquet":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_fs_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_file_system_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"file_system":{"type":"TypeString","optional":true},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precision":{"type":"TypeInt","optional":true},"scale":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","optional":true}}}},"schema_name":{"type":"TypeString","optional":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_sql_server_table":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_flowlet_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure":{"schema":{"cleanup_enabled":{"type":"TypeBool","optional":true,"computed":true},"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0},"virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure_ssis":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"dual_standby_pair_name":{"type":"TypeString","optional":true},"elastic_pool_name":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"express_custom_setup":{"type":"TypeList","optional":true,"elem":{"schema":{"command_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"password":{"type":"TypeString","optional":true},"target_name":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"component":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_license":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"environment":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"powershell_version":{"type":"TypeString","optional":true}}},"maxItems":1},"express_vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"package_store":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","optional":true},"self_hosted_integration_runtime_name":{"type":"TypeString","required":true},"staging_storage_linked_service_name":{"type":"TypeString","required":true}}},"maxItems":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"public_ips":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2},"subnet_id":{"type":"TypeString","optional":true},"subnet_name":{"type":"TypeString","optional":true},"vnet_id":{"type":"TypeString","optional":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_managed":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true,"default":"Basic"},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","required":true},"vnet_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_self_hosted":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_authorization_key":{"type":"TypeString","computed":true},"rbac_authorization":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"secondary_authorization_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_custom_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_blob_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"connection_string_insecure":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_sas_token":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sas_uri":{"type":"TypeString","optional":true},"service_endpoint":{"type":"TypeString","optional":true},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"service_principal_linked_key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_kind":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_databricks":{"schema":{"access_token":{"type":"TypeString","optional":true},"adb_domain":{"type":"TypeString","required":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"existing_cluster_id":{"type":"TypeString","optional":true},"instance_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"instance_pool_id":{"type":"TypeString","required":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":1}}},"maxItems":1},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"msi_work_space_resource_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"new_cluster_config":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"custom_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"driver_node_type":{"type":"TypeString","optional":true},"init_scripts":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"log_destination":{"type":"TypeString","optional":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":"1"},"node_type":{"type":"TypeString","required":true},"spark_config":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"spark_environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_file_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"file_share":{"type":"TypeString","optional":true},"host":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"user_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_function":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key":{"type":"TypeString","optional":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_search":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted_credential":{"type":"TypeString","computed":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"search_service_key":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_sql_database":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_table_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb":{"schema":{"account_endpoint":{"type":"TypeString","optional":true},"account_key":{"type":"TypeString","optional":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb_mongoapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"server_version_is_32_or_higher":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_data_lake_storage_gen2":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"storage_account_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_key_vault":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_kusto":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"kusto_database_name":{"type":"TypeString","required":true},"kusto_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odata":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odbc":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sftp":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"host":{"type":"TypeString","required":true},"host_key_fingerprint":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true},"skip_host_key_validation":{"type":"TypeBool","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sql_server":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_synapse":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_web":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_managed_private_endpoint":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"fqdns":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_factory_pipeline":{"schema":{"activities_json":{"type":"TypeString","optional":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"concurrency":{"type":"TypeInt","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"moniter_metrics_after_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_blob_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"blob_path_begins_with":{"type":"TypeString","optional":true},"blob_path_ends_with":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"ignore_empty_blobs":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_custom_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"eventgrid_topic_id":{"type":"TypeString","required":true,"forceNew":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_schedule":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","optional":true,"default":"Minute"},"interval":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"pipeline_name":{"type":"TypeString","optional":true,"computed":true},"pipeline_parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":7},"hours":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","optional":true},"weekday":{"type":"TypeString","required":true}}},"minItems":1}}},"maxItems":1,"minItems":1},"start_time":{"type":"TypeString","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_tumbling_window":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"delay":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true,"forceNew":true},"interval":{"type":"TypeInt","required":true,"forceNew":true},"max_concurrency":{"type":"TypeInt","optional":true,"default":50},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retry":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeInt","optional":true,"default":30}}},"maxItems":1},"start_time":{"type":"TypeString","required":true,"forceNew":true},"trigger_dependency":{"type":"TypeSet","optional":true,"elem":{"schema":{"offset":{"type":"TypeString","optional":true},"size":{"type":"TypeString","optional":true},"trigger_name":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_blob_storage":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_disk":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"disk_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_postgresql":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"database_credential_key_vault_secret_id":{"type":"TypeString","optional":true},"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_blob_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"retention_duration":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_disk":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_postgresql":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true},"days_of_week":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"months_of_year":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"scheduled_backup_times":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"weeks_of_month":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redundancy":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_resource_guard":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vault_critical_operation_exclusion_list":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}},"maxItems":1},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","required":true,"forceNew":true},"data_share_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"file_system_name":{"type":"TypeString","required":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"source_platform":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_order":{"schema":{"contact":{"type":"TypeList","required":true,"elem":{"schema":{"company_name":{"type":"TypeString","required":true,"forceNew":true},"emails":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"device_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"return_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"serial_number":{"type":"TypeString","computed":true},"shipment_address":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3},"city":{"type":"TypeString","required":true,"forceNew":true},"country":{"type":"TypeString","required":true,"forceNew":true},"postal_code":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"shipment_history":{"type":"TypeSet","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}},"shipment_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"status":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"info":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_access_connector":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_virtual_network_peering":{"schema":{"address_space_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_address_space_prefixes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_id":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace":{"schema":{"custom_parameters":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"machine_learning_workspace_id":{"type":"TypeString","optional":true,"forceNew":true},"nat_gateway_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"no_public_ip":{"type":"TypeBool","optional":true,"computed":true},"private_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"private_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"public_ip_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"public_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_sku_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vnet_address_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_encryption_set_id":{"type":"TypeString","computed":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"load_balancer_backend_address_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"managed_disk_cmk_rotation_to_latest_version_enabled":{"type":"TypeBool","optional":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"managed_resource_group_id":{"type":"TypeString","computed":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_services_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules_required":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_root_dbfs_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor":{"schema":{"datadog_organization":{"type":"TypeList","required":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true,"forceNew":true},"application_key":{"type":"TypeString","required":true,"forceNew":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","computed":true},"linking_auth_code":{"type":"TypeString","optional":true,"forceNew":true},"linking_client_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"redirect_uri":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"marketplace_subscription_status":{"type":"TypeString","computed":true},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_sso_configuration":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"enterprise_application_id":{"type":"TypeString","required":true},"login_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"default"},"single_sign_on_enabled":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_tag_rule":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"log":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_log_enabled":{"type":"TypeBool","optional":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_log_enabled":{"type":"TypeBool","optional":true},"subscription_log_enabled":{"type":"TypeBool","optional":true}}}},"metric":{"type":"TypeList","optional":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","optional":true,"default":"default"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_hardware_security_module":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"management_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"stamp_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host":{"schema":{"auto_replace_on_failure":{"type":"TypeBool","optional":true,"default":true},"dedicated_host_group_id":{"type":"TypeString","required":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain":{"type":"TypeInt","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_global_vm_shutdown_schedule":{"schema":{"daily_recurrence_time":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"time_in_minutes":{"type":"TypeInt","optional":true,"default":30},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","optional":true,"default":"Premium"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_linux_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_policy":{"schema":{"description":{"type":"TypeString","optional":true},"evaluator_type":{"type":"TypeString","required":true,"forceNew":true},"fact_data":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_set_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threshold":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_schedule":{"schema":{"daily_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true}}},"maxItems":1},"hourly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true}}},"maxItems":1},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"status":{"type":"TypeString","optional":true,"default":"Disabled"},"time_in_minutes":{"type":"TypeInt","optional":true},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Disabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_type":{"type":"TypeString","required":true},"time_zone_id":{"type":"TypeString","required":true},"weekly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_virtual_network":{"schema":{"description":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"use_in_virtual_machine_creation":{"type":"TypeString","optional":true,"default":"Allow"},"use_public_ip_address":{"type":"TypeString","optional":true,"default":"Allow"}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_windows_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventgrid":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventgrid_topic_endpoint":{"type":"TypeString","required":true},"eventgrid_topic_primary_access_key":{"type":"TypeString","required":true},"eventgrid_topic_secondary_access_key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventhub":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_primary_connection_string":{"type":"TypeString","required":true},"eventhub_secondary_connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_servicebus":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_primary_connection_string":{"type":"TypeString","required":true},"servicebus_secondary_connection_string":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_time_series_database_connection":{"schema":{"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_consumer_group_name":{"type":"TypeString","optional":true,"default":"$Default","forceNew":true},"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_uri":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_name":{"type":"TypeString","required":true,"forceNew":true},"kusto_table_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_disk_access":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_type":{"type":"TypeString","optional":true,"default":"EncryptionAtRestWithCustomerKey","forceNew":true},"federated_client_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_disk_pool":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_pool_iscsi_target":{"schema":{"acl_mode":{"type":"TypeString","required":true,"forceNew":true},"disks_pool_id":{"type":"TypeString","required":true,"forceNew":true},"endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","computed":true},"target_iqn":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_iscsi_target_lun":{"schema":{"disk_pool_managed_disk_attachment_id":{"type":"TypeString","required":true,"forceNew":true},"iscsi_target_id":{"type":"TypeString","required":true,"forceNew":true},"lun":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_managed_disk_attachment":{"schema":{"disk_pool_id":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"flags":{"type":"TypeInt","required":true},"tag":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","optional":true,"computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":300},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","required":true,"forceNew":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_azuread_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_email_communication_service":{"schema":{"data_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain":{"schema":{"auto_create_topic_with_first_subscription":{"type":"TypeBool","optional":true,"default":true},"auto_delete_topic_with_last_subscription":{"type":"TypeBool","optional":true,"default":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_eventgrid_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_arm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"system_topic":{"type":"TypeString","required":true,"forceNew":true},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub":{"schema":{"capture_description":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeList","required":true,"elem":{"schema":{"archive_name_format":{"type":"TypeString","required":true},"blob_container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"encoding":{"type":"TypeString","required":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":300},"size_limit_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"skip_empty_archives":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"message_retention":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","required":true,"forceNew":true},"partition_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":300,"update":30}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity":{"type":"TypeInt","optional":true,"default":1},"dedicated_cluster_id":{"type":"TypeString","optional":true,"forceNew":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_throughput_units":{"type":"TypeInt","optional":true,"computed":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rulesets":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_service_access_enabled":{"type":"TypeBool","optional":true},"virtual_network_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"ignore_missing_virtual_network_service_endpoint":{"type":"TypeBool","optional":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":128}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_customer_managed_key":{"schema":{"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"key_vault_key_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_disaster_recovery_config":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_schema_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"schema_compatibility":{"type":"TypeString","required":true,"forceNew":true},"schema_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_express_route_circuit":{"schema":{"allow_classic_operations":{"type":"TypeBool","optional":true,"default":false},"authorization_key":{"type":"TypeString","optional":true},"bandwidth_in_gbps":{"type":"TypeFloat","optional":true},"bandwidth_in_mbps":{"type":"TypeInt","optional":true},"express_route_port_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","optional":true,"forceNew":true},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"family":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_connection":{"schema":{"address_prefix_ipv4":{"type":"TypeString","required":true,"forceNew":true},"address_prefix_ipv6":{"type":"TypeString","optional":true},"authorization_key":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_peering_id":{"type":"TypeString","required":true,"forceNew":true},"peering_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_peering":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_manager_etag":{"type":"TypeString","computed":true},"ipv4_enabled":{"type":"TypeBool","optional":true,"default":true},"ipv6":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"microsoft_peering":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"primary_peer_address_prefix":{"type":"TypeString","required":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_peer_address_prefix":{"type":"TypeString","required":true}}},"maxItems":1},"microsoft_peering_config":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"peer_asn":{"type":"TypeInt","optional":true,"computed":true},"peering_type":{"type":"TypeString","required":true},"primary_azure_port":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_azure_port":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","optional":true},"shared_key":{"type":"TypeString","optional":true},"vlan_id":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"enable_internet_security":{"type":"TypeBool","optional":true},"express_route_circuit_peering_id":{"type":"TypeString","required":true,"forceNew":true},"express_route_gateway_bypass_enabled":{"type":"TypeBool","optional":true,"default":false},"express_route_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"routing_weight":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_gateway":{"schema":{"allow_non_virtual_wan_traffic":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_express_route_port":{"schema":{"bandwidth_in_gbps":{"type":"TypeInt","required":true,"forceNew":true},"billing_type":{"type":"TypeString","optional":true,"computed":true},"encapsulation":{"type":"TypeString","required":true,"forceNew":true},"ethertype":{"type":"TypeString","computed":true},"guid":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"link1":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"link2":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mtu":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_port_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_port_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_federated_identity_credential":{"schema":{"audience":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"issuer":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"firewall_policy_id":{"type":"TypeString","optional":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_ip_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"sku_tier":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","optional":true,"computed":true},"virtual_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","optional":true,"default":1},"virtual_hub_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_firewall_application_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"target_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_nat_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","required":true},"translated_port":{"type":"TypeString","required":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_network_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy":{"schema":{"auto_learn_private_ranges_enabled":{"type":"TypeBool","optional":true},"base_policy_id":{"type":"TypeString","optional":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"proxy_enabled":{"type":"TypeBool","optional":true,"default":false},"servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"explicit_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_pac_file":{"type":"TypeBool","optional":true},"enabled":{"type":"TypeBool","optional":true},"http_port":{"type":"TypeInt","optional":true},"https_port":{"type":"TypeInt","optional":true},"pac_file":{"type":"TypeString","optional":true},"pac_file_port":{"type":"TypeInt","optional":true}}},"maxItems":1},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"insights":{"type":"TypeList","optional":true,"elem":{"schema":{"default_log_analytics_workspace_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"firewall_location":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"retention_in_days":{"type":"TypeInt","optional":true}}},"maxItems":1},"intrusion_detection":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true},"private_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"signature_overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"state":{"type":"TypeString","optional":true}}}},"traffic_bypass":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"source_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"sql_redirect_allowed":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","optional":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"threat_intelligence_mode":{"type":"TypeString","optional":true,"default":"Alert"},"tls_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_secret_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy_rule_collection_group":{"schema":{"application_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"terminate_tls":{"type":"TypeBool","optional":true},"web_categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_address":{"type":"TypeString","optional":true},"destination_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","optional":true},"translated_fqdn":{"type":"TypeString","optional":true},"translated_port":{"type":"TypeInt","required":true}}},"minItems":1}}},"minItems":1},"network_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"priority":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_fluid_relay_server":{"schema":{"frs_tenant_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"orderer_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_frontdoor":{"schema":{"backend_pool":{"type":"TypeList","required":true,"elem":{"schema":{"backend":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_header":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","required":true},"https_port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"weight":{"type":"TypeInt","optional":true,"default":50}}},"maxItems":500},"health_probe_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"load_balancing_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"backend_pool_health_probe":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"id":{"type":"TypeString","computed":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":120},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"probe_method":{"type":"TypeString","optional":true,"default":"GET"},"protocol":{"type":"TypeString","optional":true,"default":"Http"}}},"maxItems":5000},"backend_pool_health_probes":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_milliseconds":{"type":"TypeInt","optional":true,"default":0},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":2}}},"maxItems":5000},"backend_pool_load_balancing_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pools_send_receive_timeout_seconds":{"type":"TypeInt","optional":true,"default":60},"enforce_backend_pools_certificate_name_check":{"type":"TypeBool","required":true}}}},"backend_pools":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"cname":{"type":"TypeString","computed":true},"explicit_resource_order":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_pool_health_probe_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"routing_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"friendly_name":{"type":"TypeString","optional":true},"frontend_endpoint":{"type":"TypeList","required":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"session_affinity_ttl_seconds":{"type":"TypeInt","optional":true,"default":0},"web_application_firewall_policy_link_id":{"type":"TypeString","optional":true}}},"maxItems":500},"frontend_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"header_frontdoor_id":{"type":"TypeString","computed":true},"load_balancer_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_rule":{"type":"TypeList","required":true,"elem":{"schema":{"accepted_protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":2},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pool_name":{"type":"TypeString","required":true},"cache_duration":{"type":"TypeString","optional":true},"cache_enabled":{"type":"TypeBool","optional":true,"default":false},"cache_query_parameter_strip_directive":{"type":"TypeString","optional":true,"default":"StripAll"},"cache_query_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"cache_use_dynamic_compression":{"type":"TypeBool","optional":true,"default":false},"custom_forwarding_path":{"type":"TypeString","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"HttpsOnly"}}},"maxItems":1},"frontend_endpoints":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":500},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"redirect_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_fragment":{"type":"TypeString","optional":true},"custom_host":{"type":"TypeString","optional":true},"custom_path":{"type":"TypeString","optional":true},"custom_query_string":{"type":"TypeString","optional":true},"redirect_protocol":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":500},"routing_rules":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_custom_https_configuration":{"schema":{"custom_https_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_key_vault_certificate_secret_name":{"type":"TypeString","optional":true},"azure_key_vault_certificate_secret_version":{"type":"TypeString","optional":true},"azure_key_vault_certificate_vault_id":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","optional":true,"default":"FrontDoor"},"minimum_tls_version":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true},"provisioning_substate":{"type":"TypeString","computed":true}}},"maxItems":1},"custom_https_provisioning_enabled":{"type":"TypeBool","required":true},"frontend_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_frontdoor_rules_engine":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"frontdoor_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"request_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100},"response_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100}}},"maxItems":1},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transform":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":6},"value":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"variable":{"type":"TypeString","optional":true}}},"maxItems":100},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true}}},"maxItems":100}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_cert_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"","forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_function_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_connection":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"function_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_function_app_function":{"schema":{"config_json":{"type":"TypeString","required":true,"description":"The config for this Function in JSON format."},"config_url":{"type":"TypeString","description":"The URL of the configuration JSON.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this function be enabled. Defaults to `true`."},"file":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"description":"The content of the file.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The filename of the file to be uploaded.","forceNew":true}}},"minItems":1},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App in which this function should reside.","forceNew":true},"invocation_url":{"type":"TypeString","description":"The invocation URL.","computed":true},"language":{"type":"TypeString","optional":true,"description":"The language the Function is written in."},"name":{"type":"TypeString","required":true,"description":"The name of the function.","forceNew":true},"script_root_path_url":{"type":"TypeString","description":"The Script root path URL.","computed":true},"script_url":{"type":"TypeString","description":"The script URL.","computed":true},"secrets_file_url":{"type":"TypeString","description":"The URL for the Secrets File.","computed":true},"test_data":{"type":"TypeString","optional":true,"description":"The test data for the function."},"test_data_url":{"type":"TypeString","description":"The Test data URL.","computed":true},"url":{"type":"TypeString","description":"The function URL.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_hybrid_connection":{"schema":{"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App for this Hybrid Connection.","forceNew":true},"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_slot":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"function_app_name":{"type":"TypeString","required":true,"forceNew":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application":{"schema":{"description":{"type":"TypeString","optional":true},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true},"gallery_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true},"release_note_uri":{"type":"TypeString","optional":true},"supported_os_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application_version":{"schema":{"enable_health_check":{"type":"TypeBool","optional":true,"default":false},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_application_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"manage_action":{"type":"TypeList","required":true,"elem":{"schema":{"install":{"type":"TypeString","required":true,"forceNew":true},"remove":{"type":"TypeString","required":true,"forceNew":true},"update":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"default_configuration_link":{"type":"TypeString","optional":true,"forceNew":true},"media_link":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_services_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hdinsight_hadoop_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hadoop":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"edge_node":{"type":"TypeList","optional":true,"elem":{"schema":{"https_endpoints":{"type":"TypeList","optional":true,"elem":{"schema":{"access_modes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_port":{"type":"TypeInt","optional":true},"disable_gateway_auth":{"type":"TypeBool","optional":true},"private_ip_address":{"type":"TypeString","optional":true},"sub_domain_suffix":{"type":"TypeString","optional":true}}}},"install_script_action":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"target_instance_count":{"type":"TypeInt","required":true},"uninstall_script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"vm_size":{"type":"TypeString","required":true}}},"maxItems":1},"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_hbase_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hbase":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_interactive_query_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"interactive_hive":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_kafka_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"kafka":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rest_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"security_group_id":{"type":"TypeString","required":true,"forceNew":true},"security_group_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kafka_management_node":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"number_of_disks_per_node":{"type":"TypeInt","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_spark_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"spark":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_healthbot":{"schema":{"bot_management_portal_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"authority":{"type":"TypeString","required":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"configuration_export_storage_account_name":{"type":"TypeString","optional":true},"container_registry_login_server_url":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"credentials_allowed":{"type":"TypeBool","optional":true,"default":false},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","optional":true,"default":"fhir-R4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"oci_artifact":{"type":"TypeList","optional":true,"elem":{"schema":{"digest":{"type":"TypeString","optional":true},"image_name":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_medtech_service_fhir_destination":{"schema":{"destination_fhir_mapping_json":{"type":"TypeString","required":true},"destination_fhir_service_id":{"type":"TypeString","required":true},"destination_identity_resolution_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"medtech_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"audience":{"type":"TypeString","optional":true},"authority":{"type":"TypeString","optional":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","optional":true},"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","optional":true,"forceNew":true},"cosmosdb_throughput":{"type":"TypeInt","optional":true,"default":1000},"kind":{"type":"TypeString","optional":true,"default":"fhir"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache":{"schema":{"automatically_rotate_key_to_latest_enabled":{"type":"TypeBool","optional":true},"cache_size_in_gb":{"type":"TypeInt","required":true,"forceNew":true},"default_access_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1}}},"maxItems":1,"minItems":1},"directory_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_netbios_name":{"type":"TypeString","required":true},"dns_primary_ip":{"type":"TypeString","required":true},"dns_secondary_ip":{"type":"TypeString","optional":true},"domain_name":{"type":"TypeString","required":true},"domain_netbios_name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"directory_flat_file":{"type":"TypeList","optional":true,"elem":{"schema":{"group_file_uri":{"type":"TypeString","required":true},"password_file_uri":{"type":"TypeString","required":true}}},"maxItems":1},"directory_ldap":{"type":"TypeList","optional":true,"elem":{"schema":{"base_dn":{"type":"TypeString","required":true},"bind":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dn":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_validation_uri":{"type":"TypeString","optional":true},"download_certificate_automatically":{"type":"TypeBool","optional":true},"encrypted":{"type":"TypeBool","optional":true},"server":{"type":"TypeString","required":true}}},"maxItems":1},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"search_domain":{"type":"TypeString","optional":true},"servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mtu":{"type":"TypeInt","optional":true,"default":1500},"name":{"type":"TypeString","required":true,"forceNew":true},"ntp_server":{"type":"TypeString","optional":true,"default":"time.windows.com"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hpc_cache_access_policy":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1},"hpc_cache_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_nfs_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_nfs_target":{"schema":{"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_junction":{"type":"TypeSet","required":true,"elem":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"namespace_path":{"type":"TypeString","required":true},"nfs_export":{"type":"TypeString","required":true},"target_path":{"type":"TypeString","optional":true,"default":""}}},"maxItems":10,"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"target_host_name":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"lun":{"type":"TypeInt","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}}},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"os_state":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_virtual_machine_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_integration_service_environment":{"schema":{"access_endpoint_type":{"type":"TypeString","required":true,"forceNew":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Developer_0"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":4,"minItems":4},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_iot_security_device_group":{"schema":{"allow_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_from_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"connection_to_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"local_users_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"processes_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"range_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"max":{"type":"TypeInt","required":true},"min":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_security_solution":{"schema":{"additional_workspace":{"type":"TypeSet","optional":true,"elem":{"schema":{"data_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}}}},"disabled_data_sources":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events_to_export":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"iothub_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"log_unmasked_ips_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"query_for_resources":{"type":"TypeString","optional":true,"computed":true},"query_subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"recommendations_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_authentication":{"type":"TypeBool","optional":true,"default":true},"agent_send_unutilized_msg":{"type":"TypeBool","optional":true,"default":true},"baseline":{"type":"TypeBool","optional":true,"default":true},"edge_hub_mem_optimize":{"type":"TypeBool","optional":true,"default":true},"edge_logging_option":{"type":"TypeBool","optional":true,"default":true},"inconsistent_module_settings":{"type":"TypeBool","optional":true,"default":true},"install_agent":{"type":"TypeBool","optional":true,"default":true},"ip_filter_deny_all":{"type":"TypeBool","optional":true,"default":true},"ip_filter_permissive_rule":{"type":"TypeBool","optional":true,"default":true},"open_ports":{"type":"TypeBool","optional":true,"default":true},"permissive_firewall_policy":{"type":"TypeBool","optional":true,"default":true},"permissive_input_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"permissive_output_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"privileged_docker_options":{"type":"TypeBool","optional":true,"default":true},"shared_credentials":{"type":"TypeBool","optional":true,"default":true},"vulnerable_tls_cipher_suite":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_access_policy":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_object_id":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_eventhub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_iothub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_gen2_environment":{"schema":{"data_access_fqdn":{"type":"TypeString","computed":true},"id_properties":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage":{"type":"TypeList","required":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"warm_store_data_retention_time":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_reference_data_set":{"schema":{"data_string_comparison_behavior":{"type":"TypeString","optional":true,"default":"Ordinal","forceNew":true},"key_property":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_standard_environment":{"schema":{"data_retention_time":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_limit_exceeded_behavior":{"type":"TypeString","optional":true,"default":"PurgeOldData"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"ST1"},"sub_domain":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application_network_rule_set":{"schema":{"apply_to_device":{"type":"TypeBool","optional":true,"default":true},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"iotcentral_application_id":{"type":"TypeString","required":true,"forceNew":true},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub":{"schema":{"cloud_to_device":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"feedback":{"type":"TypeList","optional":true,"elem":{"schema":{"lock_duration":{"type":"TypeString","optional":true,"default":"PT60S"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"time_to_live":{"type":"TypeString","optional":true,"default":"PT1H"}}}},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10}}},"maxItems":1},"endpoint":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"enrichment":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":10},"event_hub_events_endpoint":{"type":"TypeString","computed":true},"event_hub_events_namespace":{"type":"TypeString","computed":true},"event_hub_events_path":{"type":"TypeString","computed":true},"event_hub_operations_endpoint":{"type":"TypeString","computed":true},"event_hub_operations_path":{"type":"TypeString","computed":true},"event_hub_partition_count":{"type":"TypeInt","optional":true,"computed":true},"event_hub_retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"fallback_route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","optional":true,"computed":true},"endpoint_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}}},"maxItems":1},"file_upload":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"computed":true},"identity_id":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"apply_to_builtin_eventhub_endpoint":{"type":"TypeBool","optional":true,"default":false},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}},"shared_access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"key_name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_consumer_group":{"schema":{"eventhub_endpoint_name":{"type":"TypeString","required":true,"forceNew":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_account":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_instance":{"schema":{"device_update_account_id":{"type":"TypeString","required":true,"forceNew":true},"diagnostic_enabled":{"type":"TypeBool","optional":true,"default":false},"diagnostic_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","optional":true,"default":"Hashed"},"data_residency_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"ip_filter_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"target":{"type":"TypeString","optional":true}}}},"linked_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_weight":{"type":"TypeInt","optional":true,"default":1},"apply_allocation_policy":{"type":"TypeBool","optional":true,"default":true},"connection_string":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_operations_host_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iot_dps_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"enrollment_read":{"type":"TypeBool","optional":true,"default":false},"enrollment_write":{"type":"TypeBool","optional":true,"default":false},"iothub_dps_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registration_read":{"type":"TypeBool","optional":true,"default":false},"registration_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_config":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_cosmosdb_account":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_name":{"type":"TypeString","optional":true},"partition_key_template":{"type":"TypeString","optional":true},"primary_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_eventhub":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_queue":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_topic":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_storage_container":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_enrichment":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":100},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"key":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_fallback_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_file_upload":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"lock_duration":{"type":"TypeString","optional":true,"default":"PT1M"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications_enabled":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"default":"PT1H"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_shared_access_policy":{"schema":{"device_connect":{"type":"TypeBool","optional":true,"default":false},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registry_read":{"type":"TypeBool","optional":true,"default":false},"registry_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_connect":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"firewall_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group_cidr":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"ip_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","optional":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1024},"contact":{"type":"TypeSet","optional":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"enable_rbac_authorization":{"type":"TypeBool","optional":true},"enabled_for_deployment":{"type":"TypeBool","optional":true},"enabled_for_disk_encryption":{"type":"TypeBool","optional":true},"enabled_for_template_deployment":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_protection_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_access_policy":{"schema":{"application_id":{"type":"TypeString","optional":true,"forceNew":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true,"forceNew":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate":{"schema":{"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"contents":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate_attribute":{"type":"TypeList","computed":true,"elem":{"schema":{"created":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"expires":{"type":"TypeString","computed":true},"not_before":{"type":"TypeString","computed":true},"recovery_level":{"type":"TypeString","computed":true},"updated":{"type":"TypeString","computed":true}}}},"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"key_properties":{"type":"TypeList","required":true,"elem":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true},"exportable":{"type":"TypeBool","required":true},"key_size":{"type":"TypeInt","optional":true,"computed":true},"key_type":{"type":"TypeString","required":true},"reuse_key":{"type":"TypeBool","required":true}}},"maxItems":1},"lifetime_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","optional":true},"lifetime_percentage":{"type":"TypeInt","optional":true}}},"maxItems":1}}}},"secret_properties":{"type":"TypeList","required":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true}}},"maxItems":1},"x509_certificate_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","required":true},"subject_alternative_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dns_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"validity_in_months":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":30,"delete":30,"update":30}},"azurerm_key_vault_certificate_contacts":{"schema":{"contact":{"type":"TypeSet","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","optional":true},"admin":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","optional":true},"last_name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_id":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"provider_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"e":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","optional":true},"key_opts":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","optional":true,"forceNew":true},"key_type":{"type":"TypeString","required":true,"forceNew":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"rotation_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"automatic":{"type":"TypeList","optional":true,"elem":{"schema":{"time_after_creation":{"type":"TypeString","optional":true},"time_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"expire_after":{"type":"TypeString","optional":true},"notify_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_domain_encrypted_data":{"type":"TypeString","computed":true},"security_domain_key_vault_certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10,"minItems":3},"security_domain_quorum":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":30}},"azurerm_key_vault_managed_storage_account":{"schema":{"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"regenerate_key_automatically":{"type":"TypeBool","optional":true,"default":false},"regeneration_period":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_managed_storage_account_sas_token_definition":{"schema":{"managed_storage_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sas_template_uri":{"type":"TypeString","required":true},"sas_type":{"type":"TypeString","required":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validity_period":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","optional":true,"elem":{"schema":{"connector_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_name":{"type":"TypeString","required":true}}},"maxItems":1},"api_server_access_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true},"vnet_integration_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"api_server_authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auto_scaler_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"balance_similar_node_groups":{"type":"TypeBool","optional":true,"default":false},"empty_bulk_delete_max":{"type":"TypeString","optional":true,"computed":true},"expander":{"type":"TypeString","optional":true,"default":"random"},"max_graceful_termination_sec":{"type":"TypeString","optional":true,"computed":true},"max_node_provisioning_time":{"type":"TypeString","optional":true,"default":"15m"},"max_unready_nodes":{"type":"TypeInt","optional":true,"default":3},"max_unready_percentage":{"type":"TypeFloat","optional":true,"default":45},"new_pod_scale_up_delay":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_add":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_delete":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_failure":{"type":"TypeString","optional":true,"computed":true},"scale_down_unneeded":{"type":"TypeString","optional":true,"computed":true},"scale_down_unready":{"type":"TypeString","optional":true,"computed":true},"scale_down_utilization_threshold":{"type":"TypeString","optional":true,"computed":true},"scan_interval":{"type":"TypeString","optional":true,"computed":true},"skip_nodes_with_local_storage":{"type":"TypeBool","optional":true,"default":true},"skip_nodes_with_system_pods":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"automatic_channel_upgrade":{"type":"TypeString","optional":true},"azure_active_directory_role_based_access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","optional":true},"client_app_id":{"type":"TypeString","optional":true},"managed":{"type":"TypeBool","optional":true},"server_app_id":{"type":"TypeString","optional":true},"server_app_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"azure_policy_enabled":{"type":"TypeBool","optional":true},"confidential_computing":{"type":"TypeList","optional":true,"elem":{"schema":{"sgx_quote_helper_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"custom_ca_trust_certificates_base64":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"default_node_pool":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true},"enable_node_public_ip":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false},"cpu_cfs_quota_period":{"type":"TypeString","optional":true},"cpu_manager_policy":{"type":"TypeString","optional":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true},"pod_max_pid":{"type":"TypeInt","optional":true},"topology_manager_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"linux_os_config":{"type":"TypeList","optional":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"only_critical_addons_enabled":{"type":"TypeBool","optional":true},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed"},"os_sku":{"type":"TypeString","optional":true,"computed":true},"pod_subnet_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"temporary_name_for_rotation":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"VirtualMachineScaleSets","forceNew":true},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true},"vnet_subnet_id":{"type":"TypeString","optional":true},"workload_runtime":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix_private_cluster":{"type":"TypeString","optional":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_pod_security_policy":{"type":"TypeBool","optional":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","optional":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"http_proxy_config":{"type":"TypeList","optional":true,"elem":{"schema":{"http_proxy":{"type":"TypeString","optional":true,"forceNew":true},"https_proxy":{"type":"TypeString","optional":true,"forceNew":true},"no_proxy":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trusted_ca":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_cleaner_enabled":{"type":"TypeBool","optional":true,"default":false},"image_cleaner_interval_hours":{"type":"TypeInt","optional":true,"default":48},"ingress_application_gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","optional":true},"gateway_name":{"type":"TypeString","optional":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"key_management_service":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_network_access":{"type":"TypeString","optional":true,"default":"Public"}}},"maxItems":1},"key_vault_secrets_provider":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"secret_rotation_interval":{"type":"TypeString","optional":true,"default":"2m"}}},"maxItems":1},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"object_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"kubernetes_version":{"type":"TypeString","optional":true,"computed":true},"linux_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_username":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeList","required":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"local_account_disabled":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"hours":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"minItems":1}}}},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}}}},"maxItems":1},"maintenance_window_auto_upgrade":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"maintenance_window_node_os":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"microsoft_defender":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true}}},"maxItems":1},"monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"annotations_allowed":{"type":"TypeString","optional":true},"labels_allowed":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"docker_bridge_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ebpf_data_plane":{"type":"TypeString","optional":true},"ip_versions":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"load_balancer_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":30},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true},"managed_outbound_ipv6_count":{"type":"TypeInt","optional":true,"computed":true},"outbound_ip_address_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ip_prefix_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ports_allocated":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"load_balancer_sku":{"type":"TypeString","optional":true,"default":"standard","forceNew":true},"nat_gateway_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"network_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"network_plugin":{"type":"TypeString","required":true,"forceNew":true},"network_plugin_mode":{"type":"TypeString","optional":true},"network_policy":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"pod_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pod_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"service_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_os_channel_upgrade":{"type":"TypeString","optional":true},"node_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","optional":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","optional":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"open_service_mesh_enabled":{"type":"TypeBool","optional":true},"portal_fqdn":{"type":"TypeString","computed":true},"private_cluster_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"private_cluster_public_fqdn_enabled":{"type":"TypeBool","optional":true,"default":false},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"private_fqdn":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_based_access_control_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"run_command_enabled":{"type":"TypeBool","optional":true,"default":true},"service_mesh_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true}}},"maxItems":1},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"storage_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"disk_driver_version":{"type":"TypeString","optional":true,"default":"v1"},"file_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"snapshot_controller_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"web_app_routing":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_zone_id":{"type":"TypeString","required":true},"web_app_routing_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"windows_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"gmsa":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_server":{"type":"TypeString","required":true},"root_domain":{"type":"TypeString","required":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true}}},"maxItems":1},"workload_autoscaler_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"keda_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_controlled_values":{"type":"TypeString","computed":true},"vertical_pod_autoscaler_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_update_mode":{"type":"TypeString","computed":true}}},"maxItems":1},"workload_identity_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_kubernetes_cluster_extension":{"schema":{"aks_assigned_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true,"forceNew":true},"enable_node_public_ip":{"type":"TypeBool","optional":true,"forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true,"forceNew":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"cpu_cfs_quota_period":{"type":"TypeString","optional":true,"forceNew":true},"cpu_manager_policy":{"type":"TypeString","optional":true,"forceNew":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"pod_max_pid":{"type":"TypeInt","optional":true,"forceNew":true},"topology_manager_policy":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"linux_os_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true,"forceNew":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","optional":true,"default":"User"},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed","forceNew":true},"os_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"Linux","forceNew":true},"pod_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"spot_max_price":{"type":"TypeFloat","optional":true,"default":-1,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"vnet_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"windows_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"outbound_nat_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"workload_runtime":{"type":"TypeString","optional":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kubernetes_cluster_trusted_access_role_binding":{"schema":{"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_fleet_manager":{"schema":{"hub_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dns_prefix":{"type":"TypeString","required":true},"fqdn":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true}}},"maxItems":1},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_attached_database_configuration":{"schema":{"attached_database_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"cluster_resource_id":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_principal_modification_kind":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"elem":{"schema":{"external_tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"external_tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster":{"schema":{"allowed_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allowed_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"auto_stop_enabled":{"type":"TypeBool","optional":true,"default":true},"data_ingestion_uri":{"type":"TypeString","computed":true},"disk_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"double_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"engine":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"language_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimized_auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum_instances":{"type":"TypeInt","required":true},"minimum_instances":{"type":"TypeInt","required":true}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"public_ip_type":{"type":"TypeString","optional":true,"default":"IPv4"},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"streaming_ingestion_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_external_tenants":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true},"virtual_network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_management_public_ip_id":{"type":"TypeString","required":true},"engine_public_ip_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_customer_managed_key":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"user_identity":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_cluster_managed_private_endpoint":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_id":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_region":{"type":"TypeString","optional":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cosmosdb_data_connection":{"schema":{"cosmosdb_container_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_id":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retrieval_start_date":{"type":"TypeString","optional":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"hot_cache_period":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_database_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_eventgrid_data_connection":{"schema":{"blob_storage_event_type":{"type":"TypeString","optional":true,"default":"Microsoft.Storage.BlobCreated"},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"eventgrid_resource_id":{"type":"TypeString","optional":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","optional":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skip_first_record":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_eventhub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"compression":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_iothub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_script":{"schema":{"continue_on_errors_enabled":{"type":"TypeBool","optional":true,"default":false},"database_id":{"type":"TypeString","required":true,"forceNew":true},"force_an_update_when_value_changed":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sas_token":{"type":"TypeString","optional":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_lab":{"schema":{"auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"lab_plan_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","computed":true},"public_ip_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roster":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_group_id":{"type":"TypeString","optional":true},"lms_instance":{"type":"TypeString","optional":true},"lti_client_id":{"type":"TypeString","optional":true},"lti_context_id":{"type":"TypeString","optional":true},"lti_roster_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"security":{"type":"TypeList","required":true,"elem":{"schema":{"open_access_enabled":{"type":"TypeBool","required":true},"registration_code":{"type":"TypeString","computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title":{"type":"TypeString","required":true},"virtual_machine":{"type":"TypeList","required":true,"elem":{"schema":{"additional_capability_gpu_drivers_installed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"admin_user":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"create_option":{"type":"TypeString","optional":true,"default":"Image","forceNew":true},"image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"non_admin_user":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"shared_password_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_lab_service_plan":{"schema":{"allowed_regions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":28,"minItems":1},"default_auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"default_connection":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true},"web_rdp_access":{"type":"TypeString","optional":true},"web_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"default_network_subnet_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_gallery_id":{"type":"TypeString","optional":true},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"instructions":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_schedule":{"schema":{"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"stop_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_user":{"schema":{"additional_usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"},"email":{"type":"TypeString","required":true,"forceNew":true},"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb":{"schema":{"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"id":{"type":"TypeString","computed":true},"inbound_nat_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_version":{"type":"TypeString","optional":true,"computed":true},"public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"computed":true},"subnet_id":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool":{"schema":{"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tunnel_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier":{"type":"TypeInt","required":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"virtual_network_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool_address":{"schema":{"backend_address_ip_configuration_id":{"type":"TypeString","optional":true,"description":"For global load balancer, user needs to specify the `backend_address_ip_configuration_id` of the added regional load balancers"},"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"description":"For regional load balancer, user needs to specify `virtual_network_id` and `ip_address`"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_pool":{"schema":{"backend_port":{"type":"TypeInt","required":true},"floating_ip_enabled":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_end":{"type":"TypeInt","required":true},"frontend_port_start":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tcp_reset_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","optional":true},"backend_ip_configuration_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","required":true},"enable_floating_ip":{"type":"TypeBool","optional":true,"computed":true},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","optional":true},"frontend_port_end":{"type":"TypeInt","optional":true},"frontend_port_start":{"type":"TypeInt","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","optional":true,"default":1024},"backend_address_pool_id":{"type":"TypeString","required":true},"enable_tcp_reset":{"type":"TypeBool","optional":true,"default":false},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_probe":{"schema":{"interval_in_seconds":{"type":"TypeInt","optional":true,"default":15},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_probes":{"type":"TypeInt","optional":true,"default":2},"port":{"type":"TypeInt","required":true},"probe_threshold":{"type":"TypeInt","optional":true,"default":1},"protocol":{"type":"TypeString","optional":true,"computed":true},"request_path":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_rule":{"schema":{"backend_address_pool_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":1},"backend_port":{"type":"TypeInt","required":true},"disable_outbound_snat":{"type":"TypeBool","optional":true,"default":false},"enable_floating_ip":{"type":"TypeBool","optional":true,"default":false},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"load_distribution":{"type":"TypeString","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"probe_id":{"type":"TypeString","optional":true,"computed":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lighthouse_assignment":{"schema":{"lighthouse_definition_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_lighthouse_definition":{"schema":{"authorization":{"type":"TypeSet","required":true,"elem":{"schema":{"delegated_role_definition_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"eligible_authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"just_in_time_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"approver":{"type":"TypeSet","optional":true,"elem":{"schema":{"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true}}}},"maximum_activation_duration":{"type":"TypeString","optional":true,"default":"PT8H"},"multi_factor_auth_provider":{"type":"TypeString","optional":true}}},"maxItems":1},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}}},"lighthouse_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managing_tenant_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022``","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Function App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Linux Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_linux_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"default":0},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_linux_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_web_app_slot":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_service_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_load_test":{"schema":{"data_plane_uri":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"gateway_address":{"type":"TypeString","optional":true},"gateway_fqdn":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_cluster":{"schema":{"cluster_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"default":1000},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_cluster_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"log_analytics_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_data_export_rule":{"schema":{"destination_resource_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"export_rule_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_event":{"schema":{"event_log_name":{"type":"TypeString","required":true},"event_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_performance_counter":{"schema":{"counter_name":{"type":"TypeString","required":true},"instance_name":{"type":"TypeString","required":true},"interval_seconds":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"object_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_service":{"schema":{"name":{"type":"TypeString","computed":true},"read_access_id":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true},"write_access_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_storage_account":{"schema":{"data_source_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack_query":{"schema":{"additional_settings_json":{"type":"TypeString","optional":true},"body":{"type":"TypeString","required":true},"categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"query_pack_id":{"type":"TypeString","required":true,"forceNew":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"solutions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_saved_search":{"schema":{"category":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"function_alias":{"type":"TypeString","optional":true,"forceNew":true},"function_parameters":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_solution":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"solution_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_storage_insights":{"schema":{"blob_container_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"table_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_workspace":{"schema":{"allow_resource_only_permissions":{"type":"TypeBool","optional":true,"default":true},"cmk_for_query_forced":{"type":"TypeBool","optional":true},"daily_quota_gb":{"type":"TypeFloat","optional":true,"default":-1},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_shared_key":{"type":"TypeString","computed":true},"reservation_capacity_in_gb_per_day":{"type":"TypeInt","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_http":{"schema":{"body":{"type":"TypeString","optional":true},"headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"queries":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_after":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_name":{"type":"TypeString","required":true},"action_result":{"type":"TypeString","required":true}}},"minItems":1},"uri":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account":{"schema":{"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_agreement":{"schema":{"agreement_type":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"guest_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"guest_partner_name":{"type":"TypeString","required":true},"host_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"host_partner_name":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_assembly":{"schema":{"assembly_name":{"type":"TypeString","required":true},"assembly_version":{"type":"TypeString","optional":true,"default":"0.0.0.0"},"content":{"type":"TypeString","optional":true},"content_link_uri":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_batch_configuration":{"schema":{"batch_group_name":{"type":"TypeString","required":true,"forceNew":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"release_criteria":{"type":"TypeList","required":true,"elem":{"schema":{"batch_size":{"type":"TypeInt","optional":true},"message_count":{"type":"TypeInt","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeSet","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","required":true},"weekday":{"type":"TypeString","required":true}}}},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_certificate":{"schema":{"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true}}},"maxItems":1},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_certificate":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_map":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"map_type":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_partner":{"schema":{"business_identity":{"type":"TypeSet","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_schema":{"schema":{"content":{"type":"TypeString","required":true},"file_name":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_session":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","optional":true,"default":"[1.*, 2.0.0)"},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"client_certificate_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_share_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","optional":true,"default":true},"version":{"type":"TypeString","optional":true,"default":"~3"},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_http_request":{"schema":{"callback_url":{"type":"TypeString","computed":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"relative_path":{"type":"TypeString","optional":true},"schema":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_recurrence":{"schema":{"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"at_these_hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"at_these_minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"on_these_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_workflow":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"open_authentication_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"claim":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"workflow_management":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logic_app_integration_account_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","optional":true,"default":"https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#","forceNew":true},"workflow_version":{"type":"TypeString","optional":true,"default":"1.0.0.0","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_monitor":{"schema":{"company_name":{"type":"TypeString","optional":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logz_organization_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","required":true,"forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"100gb14days","forceNew":true},"usage_type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_sign_on_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account_tag_rule":{"schema":{"logz_sub_account_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_tag_rule":{"schema":{"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_compute_cluster":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"scale_settings":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true,"forceNew":true},"min_node_count":{"type":"TypeInt","required":true,"forceNew":true},"scale_down_nodes_after_idle_duration":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"key_value":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"ssh_public_access_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"vm_priority":{"type":"TypeString","required":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_compute_instance":{"schema":{"assign_to_user":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"object_id":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"authorization_type":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","computed":true}}},"maxItems":1},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"virtual_machine_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_datastore_blobstorage":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_auth_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_datalake_gen2":{"schema":{"authority_url":{"type":"TypeString","optional":true,"computed":true},"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_fileshare":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_fileshare_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_inference_cluster":{"schema":{"cluster_purpose":{"type":"TypeString","optional":true,"default":"FastProd","forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ssl":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cert":{"type":"TypeString","optional":true,"default":"","forceNew":true},"cname":{"type":"TypeString","optional":true,"default":"","forceNew":true},"key":{"type":"TypeString","optional":true,"default":"","forceNew":true},"leaf_domain_label":{"type":"TypeString","optional":true,"default":"","forceNew":true},"overwrite_existing_domain":{"type":"TypeBool","optional":true,"default":"","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_synapse_spark":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_workspace":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"container_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"discovery_url":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key_id":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"friendly_name":{"type":"TypeString","optional":true},"high_business_impact":{"type":"TypeBool","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_build_compute_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_user_assigned_identity":{"type":"TypeString","optional":true},"public_access_behind_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Basic"},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"v1_legacy_mode_enabled":{"type":"TypeBool","optional":true,"default":false},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maintenance_assignment_dedicated_host":{"schema":{"dedicated_host_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine_scale_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","optional":true},"install_patches":{"type":"TypeList","optional":true,"elem":{"schema":{"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"reboot":{"type":"TypeString","optional":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","optional":true,"default":"Custom"},"window":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","optional":true},"expiration_date_time":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"start_date_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application":{"schema":{"application_definition_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameter_values":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application_definition":{"schema":{"authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"role_definition_id":{"type":"TypeString","required":true},"service_principal_id":{"type":"TypeString","required":true}}},"minItems":1},"create_ui_definition":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_level":{"type":"TypeString","required":true,"forceNew":true},"main_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"package_enabled":{"type":"TypeBool","optional":true,"default":true},"package_file_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","required":true,"forceNew":true},"disk_access_id":{"type":"TypeString","optional":true},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_iops_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"gallery_image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"forceNew":true},"image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logical_sector_size":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"max_shares":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_access_policy":{"type":"TypeString","optional":true},"on_demand_bursting_enabled":{"type":"TypeBool","optional":true},"optimized_frequent_attach_enabled":{"type":"TypeBool","optional":true,"default":false},"os_type":{"type":"TypeString","optional":true},"performance_plus_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_type":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"computed":true},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"upload_size_bytes":{"type":"TypeInt","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk_sas_token":{"schema":{"access_level":{"type":"TypeString","required":true,"forceNew":true},"duration_in_seconds":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"sas_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_managed_lustre_file_system":{"schema":{"encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"hsm_setting":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"import_prefix":{"type":"TypeString","optional":true,"forceNew":true},"logging_container_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","required":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"time_of_day_in_utc":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_capacity_in_tb":{"type":"TypeInt","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"parent_management_group_id":{"type":"TypeString","optional":true,"computed":true},"subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_subscription_association":{"schema":{"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5}},"azurerm_management_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_management_lock":{"schema":{"lock_level":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_account":{"schema":{"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_creator":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maps_account_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mariadb_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_mariadb_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeString","required":true,"forceNew":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_asset":{"schema":{"alternate_id":{"type":"TypeString","optional":true},"container":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_asset_filter":{"schema":{"asset_id":{"type":"TypeString","required":true,"forceNew":true},"first_quality_bitrate":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_miliseconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","optional":true},"property":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_content_key_policy":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_option":{"type":"TypeSet","required":true,"elem":{"schema":{"clear_key_configuration_enabled":{"type":"TypeBool","optional":true},"fairplay_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"ask":{"type":"TypeString","optional":true},"offline_rental_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"playback_duration_seconds":{"type":"TypeInt","optional":true},"storage_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"pfx":{"type":"TypeString","optional":true},"pfx_password":{"type":"TypeString","optional":true},"rental_and_lease_key_type":{"type":"TypeString","optional":true},"rental_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"open_restriction_enabled":{"type":"TypeBool","optional":true},"playready_configuration_license":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_test_devices":{"type":"TypeBool","optional":true},"begin_date":{"type":"TypeString","optional":true},"content_key_location_from_header_enabled":{"type":"TypeBool","optional":true},"content_key_location_from_key_id":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"grace_period":{"type":"TypeString","optional":true},"license_type":{"type":"TypeString","optional":true},"play_right":{"type":"TypeList","optional":true,"elem":{"schema":{"agc_and_color_stripe_restriction":{"type":"TypeInt","optional":true},"allow_passing_video_content_to_unknown_output":{"type":"TypeString","optional":true},"analog_video_opl":{"type":"TypeInt","optional":true},"compressed_digital_audio_opl":{"type":"TypeInt","optional":true},"compressed_digital_video_opl":{"type":"TypeInt","optional":true},"digital_video_only_content_restriction":{"type":"TypeBool","optional":true},"explicit_analog_television_output_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"best_effort_enforced":{"type":"TypeBool","optional":true,"default":false},"control_bits":{"type":"TypeInt","required":true}}},"maxItems":1},"first_play_expiration":{"type":"TypeString","optional":true},"image_constraint_for_analog_component_video_restriction":{"type":"TypeBool","optional":true},"image_constraint_for_analog_computer_monitor_restriction":{"type":"TypeBool","optional":true},"scms_restriction":{"type":"TypeInt","optional":true},"uncompressed_digital_audio_opl":{"type":"TypeInt","optional":true},"uncompressed_digital_video_opl":{"type":"TypeInt","optional":true}}},"maxItems":1},"relative_begin_date":{"type":"TypeString","optional":true},"relative_expiration_date":{"type":"TypeString","optional":true},"security_level":{"type":"TypeString","optional":true}}}},"playready_response_custom_data":{"type":"TypeString","optional":true},"token_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"alternate_key":{"type":"TypeList","optional":true,"elem":{"schema":{"rsa_token_key_exponent":{"type":"TypeString","optional":true},"rsa_token_key_modulus":{"type":"TypeString","optional":true},"symmetric_token_key":{"type":"TypeString","optional":true},"x509_token_key_raw":{"type":"TypeString","optional":true}}}},"audience":{"type":"TypeString","optional":true},"issuer":{"type":"TypeString","optional":true},"open_id_connect_discovery_document":{"type":"TypeString","optional":true},"primary_rsa_token_key_exponent":{"type":"TypeString","optional":true},"primary_rsa_token_key_modulus":{"type":"TypeString","optional":true},"primary_symmetric_token_key":{"type":"TypeString","optional":true},"primary_x509_token_key_raw":{"type":"TypeString","optional":true},"required_claim":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"token_type":{"type":"TypeString","optional":true}}},"maxItems":1},"widevine_configuration_template":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_job":{"schema":{"description":{"type":"TypeString","optional":true},"input_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1},"priority":{"type":"TypeString","optional":true,"default":"Normal","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"transform_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event":{"schema":{"auto_start_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true},"cross_domain_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"preset_name":{"type":"TypeString","optional":true,"forceNew":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"None"},"type":{"type":"TypeString","optional":true,"default":"None","forceNew":true}}},"maxItems":1},"hostname_prefix":{"type":"TypeString","optional":true},"input":{"type":"TypeList","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"key_frame_interval_duration":{"type":"TypeString","optional":true},"streaming_protocol":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"preview":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"preview_locator":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_options":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transcription_languages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"use_static_hostname":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event_output":{"schema":{"archive_window_duration":{"type":"TypeString","required":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"hls_fragments_per_ts_segment":{"type":"TypeInt","optional":true,"forceNew":true},"live_event_id":{"type":"TypeString","required":true,"forceNew":true},"manifest_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_snap_time_in_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"rewind_window_duration":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account":{"schema":{"encryption":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_key_identifier":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"type":{"type":"TypeString","optional":true,"default":"SystemKey"}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_delivery_access_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true},"ip_allow_list":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"storage_authentication_type":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account_filter":{"schema":{"first_quality_bitrate":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_milliseconds":{"type":"TypeInt","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_endpoint":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"akamai_signature_header_authentication_key":{"type":"TypeList","optional":true,"elem":{"schema":{"base64_key":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","optional":true},"identifier":{"type":"TypeString","optional":true}}}},"ip_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}}}},"maxItems":1},"auto_start_enabled":{"type":"TypeBool","optional":true,"computed":true},"cdn_enabled":{"type":"TypeBool","optional":true},"cdn_profile":{"type":"TypeString","optional":true,"computed":true},"cdn_provider":{"type":"TypeString","optional":true,"computed":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true,"computed":true},"cross_domain_policy":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"custom_host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_cache_age_seconds":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_locator":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content_key_id":{"type":"TypeString","optional":true,"forceNew":true},"label_reference_in_streaming_policy":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","optional":true,"forceNew":true}}}},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"end_time":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"filter_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"forceNew":true},"streaming_locator_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_streaming_policy":{"schema":{"common_encryption_cbcs":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_fairplay":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_persistent_license":{"type":"TypeBool","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"common_encryption_cenc":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"clear_track":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}},"content_key_to_track_mapping":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"track":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}}}}},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_playready":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_attributes":{"type":"TypeString","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_widevine_custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"envelope_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"no_encryption_enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_transform":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"builtin_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"preset_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true},"interleave_output":{"type":"TypeString","optional":true},"key_frame_interval_in_seconds":{"type":"TypeFloat","optional":true},"max_bitrate_bps":{"type":"TypeInt","optional":true},"max_height":{"type":"TypeInt","optional":true},"max_layers":{"type":"TypeInt","optional":true},"min_bitrate_bps":{"type":"TypeInt","optional":true},"min_height":{"type":"TypeInt","optional":true}}},"maxItems":1},"preset_name":{"type":"TypeString","required":true}}},"maxItems":1},"custom_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"codec":{"type":"TypeList","required":true,"elem":{"schema":{"aac_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":128000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"profile":{"type":"TypeString","optional":true,"default":"AacLc"},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"copy_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"copy_video":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"dd_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":192000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"h264_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":23},"entropy_mode":{"type":"TypeString","optional":true,"computed":true},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"rate_control_mode":{"type":"TypeString","optional":true,"default":"ABR"},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"h265_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":28},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"jpg_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"quality":{"type":"TypeInt","optional":true,"default":70},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"sprite_column":{"type":"TypeInt","optional":true,"default":0},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"png_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1}}},"minItems":1},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"deinterlace":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true,"default":"AutoPixelAdaptive"},"parity":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"fade_in":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"fade_out":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"overlay":{"type":"TypeList","optional":true,"elem":{"schema":{"audio":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}},"maxItems":1},"video":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"opacity":{"type":"TypeFloat","optional":true,"default":1},"position":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"start":{"type":"TypeString","optional":true}}},"maxItems":1}}},"minItems":1},"rotation":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"format":{"type":"TypeList","required":true,"elem":{"schema":{"jpg":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"mp4":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1},"png":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"transport_stream":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1}}},"minItems":1}}},"maxItems":1},"face_detector_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"analysis_resolution":{"type":"TypeString","optional":true,"default":"SourceResolution"},"blur_type":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"face_redactor_mode":{"type":"TypeString","optional":true,"default":"Analyze"}}},"maxItems":1},"on_error_action":{"type":"TypeString","optional":true,"default":"StopProcessingJob"},"relative_priority":{"type":"TypeString","optional":true,"default":"Normal"},"video_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"insights_type":{"type":"TypeString","optional":true,"default":"AllInsights"}}},"maxItems":1}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_country_code":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_code":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_data_network_name":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true,"forceNew":true},"network_address_port_translation":{"type":"TypeList","optional":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"pinhole_maximum_number":{"type":"TypeInt","optional":true,"default":65536},"port_range":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum":{"type":"TypeInt","optional":true,"default":49999},"minimum":{"type":"TypeInt","optional":true,"default":1024}}},"maxItems":1},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":120},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":60}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","optional":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"control_plane_access_name":{"type":"TypeString","optional":true},"core_network_technology":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"interoperability_settings_json":{"type":"TypeString","optional":true},"local_diagnostics_access":{"type":"TypeList","required":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","required":true},"https_server_certificate_url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","optional":true},"custom_location_id":{"type":"TypeString","optional":true},"edge_device_id":{"type":"TypeString","optional":true},"stack_hci_cluster_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"sku":{"type":"TypeString","required":true},"software_version":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","optional":true,"default":1440}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pcc_rule":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precedence":{"type":"TypeInt","required":true},"qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true},"guaranteed_bit_rate":{"type":"TypeList","optional":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"Preemptable"},"qos_indicator":{"type":"TypeInt","required":true}}},"maxItems":1},"service_data_flow_template":{"type":"TypeList","required":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","optional":true,"default":true}}}},"service_precedence":{"type":"TypeInt","required":true},"service_qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":9},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true},"preemption_vulnerability":{"type":"TypeString","optional":true},"qos_indicator":{"type":"TypeInt","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim":{"schema":{"authentication_key":{"type":"TypeString","required":true},"device_type":{"type":"TypeString","optional":true},"integrated_circuit_card_identifier":{"type":"TypeString","required":true,"forceNew":true},"international_mobile_subscriber_identity":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operator_key_code":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","optional":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true},"static_ipv4_address":{"type":"TypeString","optional":true}}},"minItems":1},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","optional":true},"registration_timer_in_seconds":{"type":"TypeInt","optional":true,"default":3240},"slice":{"type":"TypeList","required":true,"elem":{"schema":{"data_network":{"type":"TypeList","required":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":0},"allowed_services_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","required":true},"default_session_type":{"type":"TypeString","optional":true,"default":"IPv4"},"max_buffered_packets":{"type":"TypeInt","optional":true,"default":10},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"NotPreemptable"},"qos_indicator":{"type":"TypeInt","required":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}}}},"default_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":180,"read":5,"delete":180,"update":60}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","required":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","optional":true},"slice_service_type":{"type":"TypeInt","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_monitor_aad_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true,"forceNew":true},"eventhub_name":{"type":"TypeString","optional":true,"forceNew":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"role_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"automation_runbook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"is_global_runbook":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true},"runbook_name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true,"default":false},"webhook_resource_id":{"type":"TypeString","required":true}}}},"azure_app_push_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"azure_function_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"http_trigger_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"email_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"event_hub_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","required":true},"ticket_configuration":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","optional":true,"default":"global","forceNew":true},"logic_app_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"callback_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"short_name":{"type":"TypeString","required":true},"sms_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"webhook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","optional":true,"computed":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_action_group":{"schema":{"action_group_id":{"type":"TypeString","required":true},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"suppression":{"type":"TypeList","required":true,"elem":{"schema":{"recurrence_type":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"end_date_utc":{"type":"TypeString","required":true},"recurrence_monthly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"},"minItems":1},"recurrence_weekly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"start_date_utc":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_activity_log_alert":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"caller":{"type":"TypeString","optional":true},"category":{"type":"TypeString","required":true},"level":{"type":"TypeString","optional":true},"levels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operation_name":{"type":"TypeString","optional":true},"recommendation_category":{"type":"TypeString","optional":true},"recommendation_impact":{"type":"TypeString","optional":true},"recommendation_type":{"type":"TypeString","optional":true},"resource_group":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"previous":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reason":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_id":{"type":"TypeString","optional":true},"resource_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_provider":{"type":"TypeString","optional":true},"resource_providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_type":{"type":"TypeString","optional":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"service_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"services":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"status":{"type":"TypeString","optional":true},"statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sub_status":{"type":"TypeString","optional":true},"sub_statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_action_group":{"schema":{"add_action_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_prometheus_rule_group":{"schema":{"cluster_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"interval":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"action_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":5},"alert":{"type":"TypeString","optional":true},"alert_resolution":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_resolved":{"type":"TypeBool","optional":true},"time_to_resolve":{"type":"TypeString","optional":true}}},"maxItems":1},"annotations":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"expression":{"type":"TypeString","required":true},"for":{"type":"TypeString","optional":true},"labels":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"record":{"type":"TypeString","optional":true},"severity":{"type":"TypeInt","optional":true}}}},"rule_group_enabled":{"type":"TypeBool","optional":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_autoscale_setting":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"send_to_subscription_administrator":{"type":"TypeBool","optional":true,"default":false},"send_to_subscription_co_administrator":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"webhook":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_uri":{"type":"TypeString","required":true}}}}}},"maxItems":1},"predictive":{"type":"TypeList","optional":true,"elem":{"schema":{"look_ahead_time":{"type":"TypeString","optional":true},"scale_mode":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"profile":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeList","required":true,"elem":{"schema":{"default":{"type":"TypeInt","required":true},"maximum":{"type":"TypeInt","required":true},"minimum":{"type":"TypeInt","required":true}}},"maxItems":1},"fixed_date":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hours":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"minutes":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","required":true,"elem":{"schema":{"dimensions":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"divide_by_instance_count":{"type":"TypeBool","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","optional":true},"metric_resource_id":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"statistic":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","required":true},"time_window":{"type":"TypeString","required":true}}},"maxItems":1},"scale_action":{"type":"TypeList","required":true,"elem":{"schema":{"cooldown":{"type":"TypeString","required":true},"direction":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":10}}},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_flow":{"type":"TypeList","required":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"output_stream":{"type":"TypeString","optional":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"transform_kql":{"type":"TypeString","optional":true}}},"minItems":1},"data_sources":{"type":"TypeList","optional":true,"elem":{"schema":{"data_import":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","required":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"stream":{"type":"TypeString","required":true}}}}}},"maxItems":1},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"extension_json":{"type":"TypeString","optional":true},"extension_name":{"type":"TypeString","required":true},"input_data_sources":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"iis_log":{"type":"TypeList","optional":true,"elem":{"schema":{"log_directories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"settings":{"type":"TypeList","optional":true,"elem":{"schema":{"text":{"type":"TypeList","required":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"performance_counter":{"type":"TypeList","optional":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"sampling_frequency_in_seconds":{"type":"TypeInt","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"prometheus_forwarder":{"type":"TypeList","optional":true,"elem":{"schema":{"label_include_filter":{"type":"TypeSet","optional":true,"elem":{"schema":{"label":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"syslog":{"type":"TypeList","optional":true,"elem":{"schema":{"facility_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"log_levels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_event_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"x_path_queries":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_firewall_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}}},"monitor_account":{"type":"TypeList","optional":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"storage_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_blob_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_table_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_declaration":{"type":"TypeSet","optional":true,"elem":{"schema":{"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"stream_name":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule_association":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_collection_rule_id":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"default":"configurationAccessEndpoint","forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","optional":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"log_analytics_destination_type":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"metric":{"type":"TypeSet","optional":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_solution_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"locations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"servicebus_rule_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_metric_alert":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"application_insights_web_test_location_availability_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"component_id":{"type":"TypeString","required":true},"failed_location_count":{"type":"TypeInt","required":true},"web_test_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"auto_mitigate":{"type":"TypeBool","optional":true,"default":true},"criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true,"default":false},"threshold":{"type":"TypeFloat","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"dynamic_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"alert_sensitivity":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"evaluation_failure_count":{"type":"TypeInt","optional":true,"default":4},"evaluation_total_count":{"type":"TypeInt","optional":true,"default":4},"ignore_data_before":{"type":"TypeString","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","optional":true,"default":"PT1M"},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"severity":{"type":"TypeInt","optional":true,"default":3},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_location":{"type":"TypeString","optional":true,"description":"The location of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"target_resource_type":{"type":"TypeString","optional":true,"description":"The resource type (e.g. Microsoft.Compute/virtualMachines) of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"window_size":{"type":"TypeString","optional":true,"default":"PT5M"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scope":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scoped_service":{"schema":{"linked_resource_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_group":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","optional":true},"email_subject":{"type":"TypeString","optional":true}}},"maxItems":1},"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":100},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_type":{"type":"TypeString","optional":true,"default":"ResultCount"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"severity":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","optional":true},"time_window":{"type":"TypeInt","required":true},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_column":{"type":"TypeString","optional":true},"metric_trigger_type":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert_v2":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"custom_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"created_with_api_version":{"type":"TypeString","computed":true},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"failing_periods":{"type":"TypeList","optional":true,"elem":{"schema":{"minimum_failing_periods_to_trigger_alert":{"type":"TypeInt","required":true},"number_of_evaluation_periods":{"type":"TypeInt","required":true}}},"maxItems":1},"metric_measure_column":{"type":"TypeString","optional":true},"operator":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true},"resource_id_column":{"type":"TypeString","optional":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation_method":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"evaluation_frequency":{"type":"TypeString","optional":true},"is_a_legacy_log_analytics_rule":{"type":"TypeBool","computed":true},"is_workspace_alerts_storage_configured":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mute_actions_after_alert_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_time_range_override":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"severity":{"type":"TypeInt","required":true},"skip_query_validation":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"window_duration":{"type":"TypeString","required":true},"workspace_alerts_storage_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"Include"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","required":true}}},"maxItems":1},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_smart_detector_alert_rule":{"schema":{"action_group":{"type":"TypeList","required":true,"elem":{"schema":{"email_subject":{"type":"TypeString","optional":true},"ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"webhook_payload":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"detector_type":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"severity":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling_duration":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database":{"schema":{"auto_pause_delay_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"creation_source_database_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"elastic_pool_id":{"type":"TypeString","optional":true},"geo_backup_enabled":{"type":"TypeBool","optional":true,"default":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"ledger_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"computed":true},"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"maintenance_configuration_name":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeInt","optional":true,"computed":true},"min_capacity":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_replica_count":{"type":"TypeInt","optional":true,"computed":true},"read_scale":{"type":"TypeBool","optional":true,"computed":true},"recover_database_id":{"type":"TypeString","optional":true},"restore_dropped_database_id":{"type":"TypeString","optional":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"sample_name":{"type":"TypeString","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backup_interval_in_hours":{"type":"TypeInt","optional":true,"default":12},"retention_days":{"type":"TypeInt","required":true}}},"maxItems":1},"sku_name":{"type":"TypeString","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Geo"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"transparent_data_encryption_enabled":{"type":"TypeBool","optional":true,"default":true},"zone_redundant":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_database_extended_auditing_policy":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database_vulnerability_assessment_rule_baseline":{"schema":{"baseline_name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"baseline_result":{"type":"TypeSet","required":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"database_name":{"type":"TypeString","required":true,"forceNew":true},"rule_id":{"type":"TypeString","required":true,"forceNew":true},"server_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"max_size_bytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_gb":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_database_settings":{"type":"TypeList","required":true,"elem":{"schema":{"max_capacity":{"type":"TypeFloat","required":true},"min_capacity":{"type":"TypeFloat","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"family":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_server":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}},"minItems":1},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_job_agent":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_job_credential":{"schema":{"job_agent_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_managed_database":{"schema":{"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_days":{"type":"TypeInt","optional":true,"default":7}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_mssql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true},"login_username":{"type":"TypeString","required":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_vulnerability_assessment":{"schema":{"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":true},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_outbound_firewall_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"azuread_administrator":{"type":"TypeList","optional":true,"elem":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login_username":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1,"minItems":1},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_network_restriction_enabled":{"type":"TypeBool","optional":true,"default":false},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transparent_data_encryption_key_vault_key_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_server_dns_alias":{"schema":{"dns_record":{"type":"TypeString","computed":true},"mssql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_mssql_server_extended_auditing_policy":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_account_subscription_id":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_microsoft_support_auditing_policy":{"schema":{"blob_storage_endpoint":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_subscription_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"server_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"server_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_machine":{"schema":{"assessment":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"run_immediately":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"monthly_occurrence":{"type":"TypeInt","optional":true},"start_time":{"type":"TypeString","required":true},"weekly_interval":{"type":"TypeInt","optional":true}}},"maxItems":1}}},"maxItems":1},"auto_backup":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_password":{"type":"TypeString","optional":true},"manual_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"full_backup_frequency":{"type":"TypeString","required":true},"full_backup_start_hour":{"type":"TypeInt","required":true},"full_backup_window_in_hours":{"type":"TypeInt","required":true},"log_backup_frequency_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_period_in_days":{"type":"TypeInt","required":true},"storage_account_access_key":{"type":"TypeString","required":true},"storage_blob_endpoint":{"type":"TypeString","required":true},"system_databases_backup_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"auto_patching":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window_duration_in_minutes":{"type":"TypeInt","required":true},"maintenance_window_starting_hour":{"type":"TypeInt","required":true}}},"maxItems":1},"key_vault_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_url":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"service_principal_name":{"type":"TypeString","required":true,"forceNew":true},"service_principal_secret":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"r_services_enabled":{"type":"TypeBool","optional":true},"sql_connectivity_port":{"type":"TypeInt","optional":true,"default":1433},"sql_connectivity_type":{"type":"TypeString","optional":true,"default":"PRIVATE"},"sql_connectivity_update_password":{"type":"TypeString","optional":true},"sql_connectivity_update_username":{"type":"TypeString","optional":true},"sql_instance":{"type":"TypeList","optional":true,"elem":{"schema":{"adhoc_workloads_optimization_enabled":{"type":"TypeBool","optional":true,"default":false},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"instant_file_initialization_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"lock_pages_in_memory_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"max_dop":{"type":"TypeInt","optional":true,"default":0},"max_server_memory_mb":{"type":"TypeInt","optional":true,"default":2147483647},"min_server_memory_mb":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"sql_license_type":{"type":"TypeString","optional":true,"forceNew":true},"sql_virtual_machine_group_id":{"type":"TypeString","optional":true},"storage_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"data_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"disk_type":{"type":"TypeString","required":true},"log_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"storage_workload_type":{"type":"TypeString","required":true},"system_db_on_data_disk_enabled":{"type":"TypeBool","optional":true,"default":false},"temp_db_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"data_file_count":{"type":"TypeInt","optional":true,"default":8},"data_file_growth_in_mb":{"type":"TypeInt","optional":true,"default":512},"data_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"default_file_path":{"type":"TypeString","required":true},"log_file_growth_mb":{"type":"TypeInt","optional":true,"default":512},"log_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"wsfc_domain_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_bootstrap_account_password":{"type":"TypeString","required":true},"cluster_operator_account_password":{"type":"TypeString","required":true},"sql_service_account_password":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_virtual_machine_availability_group_listener":{"schema":{"availability_group_name":{"type":"TypeString","optional":true,"forceNew":true},"load_balancer_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"probe_port":{"type":"TypeInt","required":true,"forceNew":true},"sql_virtual_machine_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"multi_subnet_ip_configuration":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"replica":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"commit":{"type":"TypeString","required":true,"forceNew":true},"failover_mode":{"type":"TypeString","required":true,"forceNew":true},"readable_secondary":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}}}},"sql_virtual_machine_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_mssql_virtual_machine_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_image_offer":{"type":"TypeString","required":true,"forceNew":true},"sql_image_sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wsfc_domain_profile":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_bootstrap_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_operator_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_subnet_type":{"type":"TypeString","required":true,"forceNew":true},"fqdn":{"type":"TypeString","required":true,"forceNew":true},"organizational_unit_path":{"type":"TypeString","optional":true,"forceNew":true},"sql_service_account_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_primary_key":{"type":"TypeString","optional":true},"storage_account_url":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_password":{"type":"TypeString","optional":true},"backup_retention_days":{"type":"TypeInt","optional":true,"default":7},"create_mode":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"iops":{"type":"TypeInt","optional":true,"computed":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server_active_directory_administrator":{"schema":{"identity_id":{"type":"TypeString","required":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_nat_gateway_public_ip_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nat_gateway_public_ip_prefix_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_netapp_account":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"domain":{"type":"TypeString","required":true},"organizational_unit":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"smb_server_name":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"qos_type":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"size_in_tb":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"daily_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"hourly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"monthly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"maxItems":30},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"azure_vmware_data_store_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"create_from_snapshot_resource_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true,"forceNew":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_clients":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"protocols_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"root_access_enabled":{"type":"TypeBool","optional":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true},"unix_read_write":{"type":"TypeBool","optional":true}}},"maxItems":5},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_features":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_style":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","optional":true,"computed":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","optional":true,"computed":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"application_identifier":{"type":"TypeString","required":true,"forceNew":true},"group_description":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","required":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","required":true},"nfsv41_enabled":{"type":"TypeBool","required":true},"root_access_enabled":{"type":"TypeBool","optional":true,"default":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true,"default":false},"unix_read_write":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":5,"minItems":1},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"security_style":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","required":true,"forceNew":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"volume_spec_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":5,"minItems":2}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_netapp_volume_quota_rule":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota_size_in_kib":{"type":"TypeInt","required":true},"quota_target":{"type":"TypeString","optional":true,"forceNew":true},"quota_type":{"type":"TypeString","required":true,"forceNew":true},"volume_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_network_connection_monitor":{"schema":{"endpoint":{"type":"TypeSet","required":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"coverage_level":{"type":"TypeString","optional":true},"excluded_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"item":{"type":"TypeSet","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"AgentAddress"}}}},"type":{"type":"TypeString","optional":true,"default":"Include"}}},"maxItems":1},"included_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_resource_id":{"type":"TypeString","optional":true,"computed":true},"target_resource_type":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"output_workspace_resource_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"test_configuration":{"type":"TypeSet","required":true,"elem":{"schema":{"http_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"method":{"type":"TypeString","optional":true,"default":"Get"},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","optional":true},"prefer_https":{"type":"TypeBool","optional":true,"default":false},"request_header":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"valid_status_code_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"icmp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"preferred_ip_version":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"success_threshold":{"type":"TypeList","optional":true,"elem":{"schema":{"checks_failed_percent":{"type":"TypeInt","optional":true},"round_trip_time_ms":{"type":"TypeFloat","optional":true}}},"maxItems":1},"tcp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_port_behavior":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"test_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":60}}}},"test_group":{"type":"TypeSet","required":true,"elem":{"schema":{"destination_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"source_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"test_configuration_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_function_azure_traffic_collector":{"schema":{"collector_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auxiliary_mode":{"type":"TypeString","optional":true},"auxiliary_sku":{"type":"TypeString","optional":true},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"internal_dns_name_label":{"type":"TypeString","optional":true,"computed":true},"internal_domain_name_suffix":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"computed":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_gateway_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_nat_rule_association":{"schema":{"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_security_group_association":{"schema":{"network_interface_id":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager":{"schema":{"cross_tenant_scopes":{"type":"TypeList","computed":true,"elem":{"schema":{"management_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subscriptions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","required":true,"elem":{"schema":{"management_group_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"scope_accesses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule":{"schema":{"action":{"type":"TypeString","required":true},"admin_rule_collection_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"destination_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"source_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule_collection":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"security_admin_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_connectivity_configuration":{"schema":{"applies_to_group":{"type":"TypeList","required":true,"elem":{"schema":{"global_mesh_enabled":{"type":"TypeBool","optional":true},"group_connectivity":{"type":"TypeString","required":true},"network_group_id":{"type":"TypeString","required":true},"use_hub_gateway":{"type":"TypeBool","optional":true}}}},"connectivity_topology":{"type":"TypeString","required":true},"delete_existing_peering_enabled":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"global_mesh_enabled":{"type":"TypeBool","optional":true},"hub":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true},"resource_type":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_deployment":{"schema":{"configuration_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"scope_access":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_network_manager_management_group_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_scope_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"target_scope_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_security_admin_configuration":{"schema":{"apply_on_network_intent_policy_based_services":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_static_member":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_id":{"type":"TypeString","required":true,"forceNew":true},"region":{"type":"TypeString","computed":true},"target_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_network_manager_subscription_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_profile":{"schema":{"container_network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}},"maxItems":1},"container_network_interface_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_rule":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher_flow_log":{"schema":{"enabled":{"type":"TypeBool","required":true},"location":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"storage_account_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"interval_in_minutes":{"type":"TypeInt","optional":true,"default":60},"workspace_id":{"type":"TypeString","required":true},"workspace_region":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}},"maxItems":1},"version":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_new_relic_monitor":{"schema":{"account_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"account_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ingestion_key":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"organization_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","optional":true,"default":"MONTHLY","forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"newrelic-pay-as-you-go-free-live","forceNew":true},"usage_type":{"type":"TypeString","optional":true,"default":"PAYG","forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_new_relic_tag_rule":{"schema":{"activity_log_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_active_directory_log_enabled":{"type":"TypeBool","optional":true,"default":false},"log_tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"metric_enabled":{"type":"TypeBool","optional":true,"default":false},"metric_tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"monitor_id":{"type":"TypeString","required":true,"forceNew":true},"subscription_log_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_nginx_certificate":{"schema":{"certificate_virtual_path":{"type":"TypeString","required":true},"key_vault_secret_id":{"type":"TypeString","required":true},"key_virtual_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_nginx_configuration":{"schema":{"config_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true},"package_data":{"type":"TypeString","optional":true},"protected_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"root_file":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_nginx_deployment":{"schema":{"diagnose_support_enabled":{"type":"TypeBool","optional":true},"frontend_private":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"frontend_public":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"ip_address":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logging_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}}},"managed_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}}},"nginx_version":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"application_mode":{"type":"TypeString","required":true},"bundle_id":{"type":"TypeString","required":true},"key_id":{"type":"TypeString","required":true},"team_id":{"type":"TypeString","required":true},"token":{"type":"TypeString","required":true}}},"maxItems":1},"gcm_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"notification_hub_name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_contact":{"schema":{"contact_profile_id":{"type":"TypeString","required":true,"forceNew":true},"ground_station_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"reservation_end_time":{"type":"TypeString","required":true,"forceNew":true},"reservation_start_time":{"type":"TypeString","required":true,"forceNew":true},"spacecraft_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_orbital_contact_profile":{"schema":{"auto_tracking":{"type":"TypeString","required":true},"event_hub_uri":{"type":"TypeString","optional":true},"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"channels":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"demodulation_configuration":{"type":"TypeString","optional":true},"end_point":{"type":"TypeSet","required":true,"elem":{"schema":{"end_point_name":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","optional":true},"port":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"modulation_configuration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_elevation_degrees":{"type":"TypeFloat","optional":true},"minimum_variable_contact_duration":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_spacecraft":{"schema":{"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"norad_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title_line":{"type":"TypeString","required":true},"two_line_elements":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version_enabled":{"type":"TypeBool","optional":true,"default":true},"extensions_to_provision_after_vm_creation":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"failure_suppression_enabled":{"type":"TypeBool","optional":true},"force_extension_execution_on_change":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"computed":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"os_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_data":{"type":"TypeString","optional":true},"linux_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"windows_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"timezone":{"type":"TypeString","optional":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}}}},"maxItems":1}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"priority_mix":{"type":"TypeList","optional":true,"elem":{"schema":{"base_regular_count":{"type":"TypeInt","optional":true,"default":0},"regular_percentage_above_base":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"computed":true},"sku_name":{"type":"TypeString","optional":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"user_data_base64":{"type":"TypeString","optional":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","optional":true},"anti_virus_profile":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"dns_subscription":{"type":"TypeString","optional":true},"file_blocking_profile":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"url_filtering_profile":{"type":"TypeString","optional":true},"vulnerability_profile":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_certificate":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"self_signed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_fqdn_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"fully_qualified_domain_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_outbound_trust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_outbound_untrust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_prefix_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prefix_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_rule":{"schema":{"action":{"type":"TypeString","required":true},"applications":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"audit_comment":{"type":"TypeString","optional":true},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1,"minItems":1},"decryption_rule_type":{"type":"TypeString","optional":true,"default":"None"},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_fqdn_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"inspection_certificate_id":{"type":"TypeString","optional":true},"logging_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"negate_destination":{"type":"TypeBool","optional":true,"default":false},"negate_source":{"type":"TypeBool","optional":true,"default":false},"priority":{"type":"TypeInt","required":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"application-default"},"protocol_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_palo_alto_virtual_network_appliance":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_active_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"The ticket details.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_eligible_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the eligible role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this eligible role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"Ticket details relating to the assignment.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_point_to_site_vpn_gateway":{"schema":{"connection_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true},"route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"elem":{"schema":{"ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"vpn_client_address_pool":{"type":"TypeList","required":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference_internet_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"scale_unit":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_rule":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","required":true,"forceNew":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_definition_group":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","optional":true},"category":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"policy_definition_reference":{"type":"TypeList","required":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true},"policy_group_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","optional":true,"computed":true}}}},"policy_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"configuration":{"type":"TypeList","required":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true},"content_hash":{"type":"TypeString","optional":true,"computed":true},"content_uri":{"type":"TypeString","optional":true,"computed":true},"parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_tenant_configuration":{"schema":{"private_markdown_storage_enforced":{"type":"TypeBool","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true},"administrator_password":{"type":"TypeString","optional":true},"authentication":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory_auth_enabled":{"type":"TypeBool","optional":true,"default":false},"password_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":false},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true},"customer_managed_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replication_role":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_flexible_server_active_directory_administrator":{"schema":{"object_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_database":{"schema":{"charset":{"type":"TypeString","optional":true,"default":"UTF8","forceNew":true},"collation":{"type":"TypeString","optional":true,"default":"en_US.utf8","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_postgresql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_powerbi_embedded":{"schema":{"administrators":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","optional":true,"default":"Gen1","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"target_dns_servers":{"type":"TypeList","required":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"port":{"type":"TypeInt","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","required":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"subnet_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":10},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_zone_name":{"type":"TypeString","required":true,"forceNew":true},"registration_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_endpoint":{"schema":{"custom_dns_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"custom_network_interface_name":{"type":"TypeString","optional":true,"forceNew":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"member_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_dns_zone_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"record_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"type":{"type":"TypeString","computed":true}}}}}}},"private_dns_zone_group":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_zone_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"private_service_connection":{"type":"TypeList","required":true,"elem":{"schema":{"is_manual_connection":{"type":"TypeBool","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_connection_resource_alias":{"type":"TypeString","optional":true,"forceNew":true},"private_connection_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"request_message":{"type":"TypeString","optional":true},"subresource_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_private_endpoint_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","optional":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary":{"type":"TypeBool","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":8},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_proximity_placement_group":{"schema":{"allowed_vm_sizes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ddos_protection_mode":{"type":"TypeString","optional":true,"default":"VirtualNetworkInherited"},"ddos_protection_plan_id":{"type":"TypeString","optional":true},"domain_name_label":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_fqdn":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"prefix_length":{"type":"TypeInt","optional":true,"default":28,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_purview_account":{"schema":{"atlas_kafka_endpoint_primary_connection_string":{"type":"TypeString","computed":true},"atlas_kafka_endpoint_secondary_connection_string":{"type":"TypeString","computed":true},"catalog_endpoint":{"type":"TypeString","computed":true},"guardian_endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_resources":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_namespace_id":{"type":"TypeString","computed":true},"resource_group_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scan_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_recovery_services_vault":{"schema":{"classic_vmware_replication_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"cross_region_restore_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"infrastructure_encryption_enabled":{"type":"TypeBool","required":true},"key_id":{"type":"TypeString","required":true},"use_system_assigned_identity":{"type":"TypeBool","optional":true,"default":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"monitoring":{"type":"TypeList","optional":true,"elem":{"schema":{"alerts_for_all_job_failures_enabled":{"type":"TypeBool","optional":true,"default":true},"alerts_for_critical_operation_failures_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"soft_delete_enabled":{"type":"TypeBool","optional":true,"default":true},"storage_mode_type":{"type":"TypeString","optional":true,"default":"GeoRedundant"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":30,"update":60}},"azurerm_recovery_services_vault_resource_guard_association":{"schema":{"name":{"type":"TypeString","optional":true,"default":"VaultProxy","forceNew":true},"resource_guard_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","required":true},"enable_non_ssl_port":{"type":"TypeBool","optional":true,"default":false},"family":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"patch_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window":{"type":"TypeString","optional":true,"default":"PT5H"},"start_hour_utc":{"type":"TypeInt","optional":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"redis_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","optional":true},"aof_storage_connection_string_0":{"type":"TypeString","optional":true},"aof_storage_connection_string_1":{"type":"TypeString","optional":true},"enable_authentication":{"type":"TypeBool","optional":true,"default":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_delta":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_policy":{"type":"TypeString","optional":true,"default":"volatile-lru"},"maxmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"notify_keyspace_events":{"type":"TypeString","optional":true},"rdb_backup_enabled":{"type":"TypeBool","optional":true},"rdb_backup_frequency":{"type":"TypeInt","optional":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","optional":true},"rdb_storage_connection_string":{"type":"TypeString","optional":true}}},"maxItems":1},"redis_version":{"type":"TypeString","optional":true,"computed":true},"replicas_per_master":{"type":"TypeInt","optional":true,"computed":true},"replicas_per_primary":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_redis_enterprise_cluster":{"schema":{"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_enterprise_database":{"schema":{"client_protocol":{"type":"TypeString","optional":true,"default":"Encrypted","forceNew":true},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"clustering_policy":{"type":"TypeString","optional":true,"default":"OSSCluster","forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"default":"VolatileLRU","forceNew":true},"linked_database_group_nickname":{"type":"TypeString","optional":true,"forceNew":true},"linked_database_id":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"module":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"args":{"type":"TypeString","optional":true,"default":"","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}}},"maxItems":4},"name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"port":{"type":"TypeInt","optional":true,"default":10000,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_firewall_rule":{"schema":{"end_ip":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_linked_server":{"schema":{"linked_redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"linked_redis_cache_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_role":{"type":"TypeString","required":true,"forceNew":true},"target_redis_cache_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_relay_hybrid_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"relay_namespace_name":{"type":"TypeString","required":true,"forceNew":true},"requires_client_authorization":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_hybrid_connection_authorization_rule":{"schema":{"hybrid_connection_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_namespace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"metric_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_relay_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_cli":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_power_shell":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_by":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_resource_group_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_resource_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_provider_registration":{"schema":{"feature":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"registered":{"type":"TypeBool","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":30,"update":120}},"azurerm_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_resource_id":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":60}},"azurerm_route":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"communities":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rule_type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_map":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeList","required":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true}}}},"match_criterion":{"type":"TypeList","optional":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_condition":{"type":"TypeString","required":true},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"next_step_if_matched":{"type":"TypeString","optional":true,"default":"Unknown"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_server":{"schema":{"branch_to_branch_traffic_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_route_server_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"route_server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_route_table":{"schema":{"disable_bgp_route_propagation":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_search_service":{"schema":{"allowed_ips":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_failure_mode":{"type":"TypeString","optional":true},"customer_managed_key_enforcement_enabled":{"type":"TypeBool","optional":true,"default":false},"hosting_mode":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","optional":true,"default":1},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","optional":true,"default":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_search_shared_private_link_service":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"search_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_assessment":{"schema":{"additional_data":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"assessment_policy_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeList","required":true,"elem":{"schema":{"cause":{"type":"TypeString","optional":true},"code":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_assessment_policy":{"schema":{"categories":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"implementation_effort":{"type":"TypeString","optional":true},"name":{"type":"TypeString","computed":true},"remediation_description":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true,"default":"Medium"},"threats":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"user_impact":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_auto_provisioning":{"schema":{"auto_provision":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_automation":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","required":true},"trigger_url":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"source":{"type":"TypeList","required":true,"elem":{"schema":{"event_source":{"type":"TypeString","required":true},"rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule":{"type":"TypeList","required":true,"elem":{"schema":{"expected_value":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"property_path":{"type":"TypeString","required":true},"property_type":{"type":"TypeString","required":true}}}}}}}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_contact":{"schema":{"alert_notifications":{"type":"TypeBool","required":true},"alerts_to_admins":{"type":"TypeBool","required":true},"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"default":"default1"},"phone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_server_vulnerability_assessment":{"schema":{"hybrid_machine_id":{"type":"TypeString","optional":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_server_vulnerability_assessment_virtual_machine":{"schema":{"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_setting":{"schema":{"enabled":{"type":"TypeBool","required":true},"setting_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":10,"read":5,"delete":10,"update":10}},"azurerm_security_center_subscription_pricing":{"schema":{"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_extension_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"resource_type":{"type":"TypeString","optional":true,"default":"VirtualMachines"},"subplan":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_workspace":{"schema":{"scope":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sentinel_alert_rule_anomaly_built_in":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_anomaly_duplicate":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"built_in_rule_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"is_default_settings":{"type":"TypeBool","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true},"prioritized_exclude_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prioritize":{"type":"TypeString","optional":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_fusion":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"sub_type":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"severities_allowed":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_machine_learning_behavior_analytics":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_ms_security_incident":{"schema":{"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"display_name_exclude_filter":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name_filter":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_filter":{"type":"TypeString","required":true},"severity_filter":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_nrt":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident_enabled":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_scheduled":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"group_by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_frequency":{"type":"TypeString","optional":true,"default":"PT5H"},"query_period":{"type":"TypeString","optional":true,"default":"PT5H"},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","optional":true,"default":"GreaterThan"},"trigger_threshold":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_threat_intelligence":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_automation_rule":{"schema":{"action_incident":{"type":"TypeList","optional":true,"elem":{"schema":{"classification":{"type":"TypeString","optional":true},"classification_comment":{"type":"TypeString","optional":true},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"owner_id":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true},"status":{"type":"TypeString","optional":true}}}},"action_playbook":{"type":"TypeList","optional":true,"elem":{"schema":{"logic_app_id":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"condition":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"condition_json":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiration":{"type":"TypeString","optional":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true},"triggers_on":{"type":"TypeString","optional":true,"default":"Incidents"},"triggers_when":{"type":"TypeString","optional":true,"default":"Created"}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_sentinel_data_connector_aws_cloud_trail":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_aws_s3":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"destination_table":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sqs_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_azure_active_directory":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_security_center":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_dynamics_365":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_iot":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_cloud_app_security":{"schema":{"alerts_enabled":{"type":"TypeBool","optional":true,"default":true},"discovery_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_microsoft_defender_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_intelligence":{"schema":{"bing_safety_phishing_url_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_emerging_threat_feed_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_365":{"schema":{"exchange_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sharepoint_enabled":{"type":"TypeBool","optional":true,"default":true},"teams_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_office_365_project":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_atp":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_irm":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_power_bi":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence_taxii":{"schema":{"api_root_url":{"type":"TypeString","required":true},"collection_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z"},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"polling_frequency":{"type":"TypeString","optional":true,"default":"OnceAnHour"},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_log_analytics_workspace_onboarding":{"schema":{"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_metadata":{"schema":{"author":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"domains":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verticals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content_id":{"type":"TypeString","required":true},"content_schema_version":{"type":"TypeString","optional":true,"default":"2.0"},"custom_version":{"type":"TypeString","optional":true},"dependency":{"type":"TypeString","optional":true},"first_publish_date":{"type":"TypeString","optional":true},"icon_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"last_publish_date":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true},"preview_images":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"preview_images_dark":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"threat_analysis_tactics":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_analysis_techniques":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_threat_intelligence_indicator":{"schema":{"confidence":{"type":"TypeInt","optional":true,"default":-1},"created_by":{"type":"TypeString","optional":true},"created_on":{"type":"TypeString","computed":true},"defanged":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"extension":{"type":"TypeString","optional":true,"computed":true},"external_id":{"type":"TypeString","computed":true},"external_last_updated_time_utc":{"type":"TypeString","computed":true},"external_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"hashes":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"source_name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}}},"granular_marking":{"type":"TypeList","optional":true,"elem":{"schema":{"language":{"type":"TypeString","optional":true},"marking_ref":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"guid":{"type":"TypeString","computed":true},"indicator_type":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kill_chain_phase":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true}}}},"language":{"type":"TypeString","optional":true},"last_updated_time_utc":{"type":"TypeString","computed":true},"object_marking_refs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parsed_pattern":{"type":"TypeList","computed":true,"elem":{"schema":{"pattern_type_key":{"type":"TypeString","computed":true},"pattern_type_values":{"type":"TypeList","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true},"value_type":{"type":"TypeString","computed":true}}}}}}},"pattern":{"type":"TypeString","required":true},"pattern_type":{"type":"TypeString","required":true},"pattern_version":{"type":"TypeString","optional":true},"revoked":{"type":"TypeBool","optional":true,"default":false},"source":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"validate_from_utc":{"type":"TypeString","required":true},"validate_until_utc":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_watchlist":{"schema":{"default_duration":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"item_search_key":{"type":"TypeString","required":true,"forceNew":true},"labels":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_watchlist_item":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"properties":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"watchlist_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_cluster":{"schema":{"add_on_features":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"azure_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"client_certificate_common_name":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","required":true},"is_admin":{"type":"TypeBool","required":true},"issuer_thumbprint":{"type":"TypeString","optional":true}}}},"client_certificate_thumbprint":{"type":"TypeList","optional":true,"elem":{"schema":{"is_admin":{"type":"TypeBool","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"cluster_code_version":{"type":"TypeString","optional":true,"computed":true},"cluster_endpoint":{"type":"TypeString","computed":true},"diagnostics_config":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_endpoint":{"type":"TypeString","required":true},"protected_account_key_name":{"type":"TypeString","required":true},"queue_endpoint":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"fabric_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_endpoint":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","required":true,"elem":{"schema":{"application_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"client_endpoint_port":{"type":"TypeInt","required":true},"durability_level":{"type":"TypeString","optional":true,"default":"Bronze"},"ephemeral_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"http_endpoint_port":{"type":"TypeInt","required":true},"instance_count":{"type":"TypeInt","required":true},"is_primary":{"type":"TypeBool","required":true},"is_stateless":{"type":"TypeBool","optional":true},"multiple_availability_zones":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reverse_proxy_endpoint_port":{"type":"TypeInt","optional":true}}}},"reliability_level":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_proxy_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"reverse_proxy_certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"service_fabric_zonal_upgrade_mode":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_mode":{"type":"TypeString","required":true},"upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"delta_health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_delta_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0},"max_upgrade_domain_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"force_restart_enabled":{"type":"TypeBool","optional":true},"health_check_retry_timeout":{"type":"TypeString","optional":true,"default":"00:45:00"},"health_check_stable_duration":{"type":"TypeString","optional":true,"default":"00:01:00"},"health_check_wait_duration":{"type":"TypeString","optional":true,"default":"00:00:30"},"health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"upgrade_domain_timeout":{"type":"TypeString","optional":true,"default":"02:00:00"},"upgrade_replica_set_check_timeout":{"type":"TypeString","optional":true,"default":"10675199.02:48:05.4775807"},"upgrade_timeout":{"type":"TypeString","optional":true,"default":"12:00:00"}}},"maxItems":1},"vm_image":{"type":"TypeString","required":true,"forceNew":true},"vmss_zonal_upgrade_mode":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_managed_cluster":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","optional":true},"thumbprint":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"backup_service_enabled":{"type":"TypeBool","optional":true},"client_connection_port":{"type":"TypeInt","required":true},"custom_fabric_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","required":true},"section":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dns_name":{"type":"TypeString","optional":true,"computed":true},"dns_service_enabled":{"type":"TypeBool","optional":true},"http_gateway_port":{"type":"TypeInt","required":true},"lb_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true},"frontend_port":{"type":"TypeInt","required":true},"probe_protocol":{"type":"TypeString","required":true},"probe_request_path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","optional":true,"elem":{"schema":{"application_port_range":{"type":"TypeString","required":true},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"data_disk_size_gb":{"type":"TypeInt","required":true},"data_disk_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"},"ephemeral_port_range":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"multiple_placement_groups_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"primary":{"type":"TypeBool","optional":true},"stateless":{"type":"TypeBool","optional":true},"vm_image_offer":{"type":"TypeString","required":true},"vm_image_publisher":{"type":"TypeString","required":true},"vm_image_sku":{"type":"TypeString","required":true},"vm_image_version":{"type":"TypeString","required":true},"vm_instance_count":{"type":"TypeInt","required":true},"vm_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"certificates":{"type":"TypeList","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}}},"vault_id":{"type":"TypeString","required":true}}}},"vm_size":{"type":"TypeString","required":true}}}},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_wave":{"type":"TypeString","optional":true,"default":"Wave0"},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling_enabled":{"type":"TypeBool","optional":true,"default":false},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","optional":true,"computed":true},"zone_balancing_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":0},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_id":{"type":"TypeString","required":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_network_rule_set":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true,"default":false},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true,"default":true},"enable_express":{"type":"TypeBool","optional":true,"default":false},"enable_partitioning":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"client_scoped_subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"forceNew":true},"is_client_scoped_subscription_durable":{"type":"TypeBool","computed":true},"is_client_scoped_subscription_shareable":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"client_scoped_subscription_enabled":{"type":"TypeBool","optional":true,"default":false},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","optional":true,"default":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription_rule":{"schema":{"action":{"type":"TypeString","optional":true},"correlation_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","optional":true},"correlation_id":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"message_id":{"type":"TypeString","optional":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reply_to":{"type":"TypeString","optional":true},"reply_to_session_id":{"type":"TypeString","optional":true},"session_id":{"type":"TypeString","optional":true},"to":{"type":"TypeString","optional":true}}},"maxItems":1},"filter_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_filter":{"type":"TypeString","optional":true},"sql_filter_compatibility_level":{"type":"TypeInt","computed":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"enable_express":{"type":"TypeBool","optional":true},"enable_partitioning":{"type":"TypeBool","optional":true,"forceNew":true},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"support_ordering":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image":{"schema":{"accelerated_network_support_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"architecture":{"type":"TypeString","optional":true,"default":"x64","forceNew":true},"confidential_vm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"confidential_vm_supported":{"type":"TypeBool","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"disk_types_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true,"forceNew":true},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"identifier":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"max_recommended_vcpu_count":{"type":"TypeInt","optional":true},"min_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"min_recommended_vcpu_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true,"forceNew":true},"purchase_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_note_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"specialized":{"type":"TypeBool","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"community_gallery":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"eula":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"prefix":{"type":"TypeString","required":true,"forceNew":true},"publisher_email":{"type":"TypeString","required":true,"forceNew":true},"publisher_uri":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"permission":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_version":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"deletion_of_replicated_locations_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"image_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_image_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk_snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"replication_mode":{"type":"TypeString","optional":true,"default":"Full","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"exclude_from_latest_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"hostname":{"type":"TypeString","computed":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"live_trace_enabled":{"type":"TypeBool","optional":true,"default":false},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":30},"service_mode":{"type":"TypeString","optional":true,"default":"Default"},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"upstream_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"category_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"event_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hub_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_network_acl":{"schema":{"default_action":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"sub_resource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"source_network_name":{"type":"TypeString","required":true,"forceNew":true},"source_system_center_virtual_machine_manager_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_site_recovery_hyperv_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_hours":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_hours":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"replication_interval_in_seconds":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_replication_policy_association":{"schema":{"hyperv_site_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_site_recovery_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_network_id":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container_mapping":{"schema":{"automatic_update":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true},"automation_account_id":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_source_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_target_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replicated_vm":{"schema":{"managed_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_id":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_disk_encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","configMode":"Auto","required":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_encryption_key":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"target_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"target_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_replica_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true}}}},"multi_vm_group_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"failover_test_public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"failover_test_static_ip":{"type":"TypeString","optional":true,"computed":true},"failover_test_subnet_name":{"type":"TypeString","optional":true,"computed":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"recovery_public_ip_address_id":{"type":"TypeString","optional":true},"source_network_interface_id":{"type":"TypeString","optional":true,"computed":true},"target_static_ip":{"type":"TypeString","optional":true},"target_subnet_name":{"type":"TypeString","optional":true}}}},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","required":true,"forceNew":true},"target_availability_set_id":{"type":"TypeString","optional":true},"target_boot_diagnostic_storage_account_id":{"type":"TypeString","optional":true},"target_capacity_reservation_group_id":{"type":"TypeString","optional":true},"target_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"target_network_id":{"type":"TypeString","optional":true,"computed":true},"target_proximity_placement_group_id":{"type":"TypeString","optional":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"target_virtual_machine_scale_set_id":{"type":"TypeString","optional":true},"target_zone":{"type":"TypeString","optional":true,"forceNew":true},"test_network_id":{"type":"TypeString","optional":true,"computed":true},"unmanaged_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_uri":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}}}}},"timeouts":{"create":180,"read":5,"delete":80,"update":80}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"primary_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_zone":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"boot_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"failover_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_group":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"minItems":3},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"shutdown_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"source_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_services_vault_hyperv_site":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":180}},"azurerm_site_recovery_vmware_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_vmware_replication_policy_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_snapshot":{"schema":{"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"incremental_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_accelerator":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_active_deployment":{"schema":{"deployment_name":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_api_portal":{"schema":{"gateway_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"https_only_enabled":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_spring_cloud_api_portal_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_api_portal_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"custom_persistent_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"mount_path":{"type":"TypeString","required":true},"read_only_enabled":{"type":"TypeBool","optional":true,"default":false},"share_name":{"type":"TypeString","required":true},"storage_name":{"type":"TypeString","required":true}}},"minItems":1},"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backend_protocol":{"type":"TypeString","optional":true,"default":"Default"},"read_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":300},"send_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":60},"session_affinity":{"type":"TypeString","optional":true,"default":"None"},"session_cookie_max_age":{"type":"TypeInt","optional":true}}},"maxItems":1},"is_public":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"persistent_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","optional":true,"default":"/persistent"},"size_in_gb":{"type":"TypeInt","required":true}}},"maxItems":1},"public_endpoint_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"tls_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_cosmosdb_association":{"schema":{"api_type":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_access_key":{"type":"TypeString","required":true},"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_cassandra_keyspace_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_database_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_graph_name":{"type":"TypeString","optional":true},"cosmosdb_mongo_database_name":{"type":"TypeString","optional":true},"cosmosdb_sql_database_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_mysql_association":{"schema":{"database_name":{"type":"TypeString","required":true},"mysql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_redis_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"redis_access_key":{"type":"TypeString","required":true},"redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_application_live_view":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_build_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"build_result_id":{"type":"TypeString","required":true},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_build_pack_binding":{"schema":{"binding_type":{"type":"TypeString","optional":true},"launch":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_builder_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_builder":{"schema":{"build_pack_group":{"type":"TypeSet","required":true,"elem":{"schema":{"build_pack_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"stack":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_certificate":{"schema":{"certificate_content":{"type":"TypeString","optional":true,"forceNew":true},"exclude_private_key":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_configuration_service":{"schema":{"generation":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"ca_certificate_id":{"type":"TypeString","optional":true},"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"label":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"patterns":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"private_key":{"type":"TypeString","optional":true},"search_paths":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"strict_host_key_checking":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}}}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_connection":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"spring_cloud_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_container_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"arguments":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"commands":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"language_framework":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"server":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_custom_domain":{"schema":{"certificate_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_customized_accelerator":{"schema":{"accelerator_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"git_repository":{"type":"TypeList","required":true,"elem":{"schema":{"basic_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"ca_certificate_id":{"type":"TypeString","optional":true},"commit":{"type":"TypeString","optional":true},"git_tag":{"type":"TypeString","optional":true},"interval_in_seconds":{"type":"TypeInt","optional":true},"ssh_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}}},"maxItems":1},"icon_url":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_accelerator_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_dev_tool_portal":{"schema":{"application_accelerator_enabled":{"type":"TypeBool","optional":true,"computed":true},"application_live_view_enabled":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"metadata_url":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway":{"schema":{"api_metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"documentation_url":{"type":"TypeString","optional":true},"server_url":{"type":"TypeString","optional":true},"title":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"application_performance_monitoring_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verification_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origin_patterns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","optional":true},"exposed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"max_age_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"https_only":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"default":"1"},"memory":{"type":"TypeString","optional":true,"default":"2Gi"}}},"maxItems":1},"sensitive_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_route_config":{"schema":{"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"open_api":{"type":"TypeList","optional":true,"elem":{"schema":{"uri":{"type":"TypeString","optional":true}}},"maxItems":1},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeString","optional":true,"default":"HTTP"},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"classification_tags":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"sso_validation_enabled":{"type":"TypeBool","optional":true},"title":{"type":"TypeString","optional":true},"token_relay":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","optional":true}}}},"spring_cloud_app_id":{"type":"TypeString","optional":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"sso_validation_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_java_deployment":{"schema":{"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"jvm_options":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"default":"Java_8"},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_service":{"schema":{"build_agent_pool_size":{"type":"TypeString","optional":true},"config_server_git_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"pattern":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"container_registry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"server":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"default_build_service":{"type":"TypeList","optional":true,"elem":{"schema":{"container_registry_name":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"log_stream_public_endpoint_enabled":{"type":"TypeBool","optional":true},"marketplace":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"plan":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"app_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"app_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"cidr_ranges":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":3},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"read_timeout_seconds":{"type":"TypeInt","optional":true},"service_runtime_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_runtime_subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_registry_enabled":{"type":"TypeBool","optional":true},"service_registry_id":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"S0","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"sample_rate":{"type":"TypeFloat","optional":true,"default":10}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_date":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","optional":true,"computed":true},"elastic_pool_name":{"type":"TypeString","optional":true,"computed":true},"encryption":{"type":"TypeString","computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"operation_mode":{"type":"TypeString","optional":true,"default":"Import"},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_size_bytes":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_scale":{"type":"TypeBool","optional":true,"default":false},"requested_service_objective_id":{"type":"TypeString","optional":true,"computed":true},"requested_service_objective_name":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"source_database_deletion_date":{"type":"TypeString","optional":true,"computed":true},"source_database_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_elasticpool":{"schema":{"creation_date":{"type":"TypeString","computed":true},"db_dtu_max":{"type":"TypeInt","optional":true,"computed":true},"db_dtu_min":{"type":"TypeInt","optional":true,"computed":true},"dtu":{"type":"TypeInt","required":true},"edition":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_size":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_servers":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_database":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"default":false},"login":{"type":"TypeString","required":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"computed":true},"email_addresses":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ssh_public_key":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_stack_hci_cluster":{"schema":{"automanage_configuration_id":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site":{"schema":{"api_key":{"type":"TypeString","computed":true},"default_host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_size":{"type":"TypeString","optional":true,"default":"Free"},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"static_site_id":{"type":"TypeString","required":true,"forceNew":true},"validation_token":{"type":"TypeString","computed":true},"validation_type":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"account_kind":{"type":"TypeString","optional":true,"default":"StorageV2"},"account_replication_type":{"type":"TypeString","required":true},"account_tier":{"type":"TypeString","required":true,"forceNew":true},"allow_nested_items_to_be_public":{"type":"TypeBool","optional":true,"default":true},"allowed_copy_scope":{"type":"TypeString","optional":true},"azure_files_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","required":true},"domain_sid":{"type":"TypeString","optional":true},"forest_name":{"type":"TypeString","optional":true},"netbios_domain_name":{"type":"TypeString","optional":true},"storage_sid":{"type":"TypeString","optional":true}}},"maxItems":1},"directory_type":{"type":"TypeString","required":true}}},"maxItems":1},"blob_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"change_feed_enabled":{"type":"TypeBool","optional":true,"default":false},"change_feed_retention_in_days":{"type":"TypeInt","optional":true},"container_delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"default_service_version":{"type":"TypeString","optional":true,"computed":true},"delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"last_access_time_enabled":{"type":"TypeBool","optional":true,"default":false},"restore_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true}}},"maxItems":1},"versioning_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cross_tenant_replication_enabled":{"type":"TypeBool","optional":true,"default":true},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"use_subdomain":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_to_oauth_authentication":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_https_traffic_only":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_protected_append_writes":{"type":"TypeBool","required":true},"period_since_creation_in_days":{"type":"TypeInt","required":true},"state":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"is_hns_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"large_file_share_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"default":"TLS1_2"},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"nfsv3_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"queue_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"queue_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"hour_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"logging":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"delete":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"minute_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"choice":{"type":"TypeString","optional":true,"default":"MicrosoftRouting"},"publish_internet_endpoints":{"type":"TypeBool","optional":true,"default":false},"publish_microsoft_endpoints":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sas_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_action":{"type":"TypeString","optional":true,"default":"Log"},"expiration_period":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"sftp_enabled":{"type":"TypeBool","optional":true,"default":false},"share_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"smb":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"channel_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"kerberos_ticket_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"multichannel_enabled":{"type":"TypeBool","optional":true,"default":false},"versions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"shared_access_key_enabled":{"type":"TypeBool","optional":true,"default":true},"static_website":{"type":"TypeList","optional":true,"elem":{"schema":{"error_404_document":{"type":"TypeString","optional":true},"index_document":{"type":"TypeString","optional":true}}},"maxItems":1},"table_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_account_customer_managed_key":{"schema":{"federated_identity_client_id":{"type":"TypeString","optional":true},"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"key_vault_uri":{"type":"TypeString","optional":true,"computed":true},"key_version":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_local_user":{"schema":{"home_directory":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","computed":true},"permission_scope":{"type":"TypeList","optional":true,"elem":{"schema":{"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"create":{"type":"TypeBool","optional":true,"default":false},"delete":{"type":"TypeBool","optional":true,"default":false},"list":{"type":"TypeBool","optional":true,"default":false},"read":{"type":"TypeBool","optional":true,"default":false},"write":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_name":{"type":"TypeString","required":true},"service":{"type":"TypeString","required":true}}}},"sid":{"type":"TypeString","computed":true},"ssh_authorized_key":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true}}}},"ssh_key_enabled":{"type":"TypeBool","optional":true,"default":false},"ssh_password_enabled":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_network_rules":{"schema":{"bypass":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_subnet_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"cache_control":{"type":"TypeString","optional":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallelism":{"type":"TypeInt","optional":true,"default":8,"forceNew":true},"size":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"source_content":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_blob_inventory_policy":{"schema":{"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"exclude_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"include_blob_versions":{"type":"TypeBool","optional":true,"default":false},"include_deleted":{"type":"TypeBool","optional":true,"default":false},"include_snapshots":{"type":"TypeBool","optional":true,"default":false},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10}}},"maxItems":1},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true},"schema_fields":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","optional":true,"default":"private"},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_filesystem":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"group":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"owner":{"type":"TypeString","optional":true,"computed":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_path":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"filesystem_name":{"type":"TypeString","required":true,"forceNew":true},"group":{"type":"TypeString","optional":true,"computed":true},"owner":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","required":true,"forceNew":true},"resource":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_encryption_scope":{"schema":{"infrastructure_encryption_required":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"base_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","optional":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"snapshot":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"version":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"filters":{"type":"TypeList","required":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operation":{"type":"TypeString","optional":true,"default":"=="},"value":{"type":"TypeString","required":true}}}},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_agent":{"schema":{"arc_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"arc_virtual_machine_uuid":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_job_definition":{"schema":{"agent_name":{"type":"TypeString","optional":true},"copy_mode":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source_name":{"type":"TypeString","required":true,"forceNew":true},"source_sub_path":{"type":"TypeString","optional":true,"forceNew":true},"storage_mover_project_id":{"type":"TypeString","required":true,"forceNew":true},"target_name":{"type":"TypeString","required":true,"forceNew":true},"target_sub_path":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_project":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_source_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"export":{"type":"TypeString","optional":true,"forceNew":true},"host":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nfs_version":{"type":"TypeString","optional":true,"default":"NFSauto","forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_target_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_object_replication":{"schema":{"destination_object_replication_id":{"type":"TypeString","computed":true},"destination_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"copy_blobs_created_after":{"type":"TypeString","optional":true,"default":"OnlyNewObjects"},"destination_container_name":{"type":"TypeString","required":true,"forceNew":true},"filter_out_blobs_with_prefix":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"source_container_name":{"type":"TypeString","required":true,"forceNew":true}}}},"source_object_replication_id":{"type":"TypeString","computed":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_queue":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}}},"id":{"type":"TypeString","required":true}}}},"enabled_protocol":{"type":"TypeString","optional":true,"default":"SMB","forceNew":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeInt","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_directory":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"share_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_file":{"schema":{"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_length":{"type":"TypeInt","computed":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","optional":true,"default":"","forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"storage_share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","optional":true,"default":"AllowAllTraffic"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync_cloud_endpoint":{"schema":{"file_share_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_sync_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"storage_sync_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_storage_table":{"schema":{"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","required":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"streaming_capacity":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_stream_analytics_function_javascript_uda":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"script":{"type":"TypeString","required":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_function_javascript_udf":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","optional":true,"computed":true},"content_storage_policy":{"type":"TypeString","optional":true,"default":"SystemAccount"},"data_locale":{"type":"TypeString","optional":true,"computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":5},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":0},"events_out_of_order_policy":{"type":"TypeString","optional":true,"default":"Adjust"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"job_id":{"type":"TypeString","computed":true},"job_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_error_policy":{"type":"TypeString","optional":true,"default":"Drop"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_id":{"type":"TypeString","optional":true},"streaming_units":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transformation_query":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true,"default":"Cloud","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job_schedule":{"schema":{"last_output_time":{"type":"TypeString","computed":true},"start_mode":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5}},"azurerm_stream_analytics_output_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"batch_max_wait_time":{"type":"TypeString","optional":true},"batch_min_rows":{"type":"TypeInt","optional":true},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_cosmosdb":{"schema":{"container_name":{"type":"TypeString","required":true},"cosmosdb_account_key":{"type":"TypeString","required":true},"cosmosdb_sql_database_id":{"type":"TypeString","required":true},"document_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_function":{"schema":{"api_key":{"type":"TypeString","required":true},"batch_max_count":{"type":"TypeInt","optional":true,"default":100},"batch_max_in_bytes":{"type":"TypeInt","optional":true,"default":262144},"function_app":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_mssql":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"database":{"type":"TypeString","required":true,"forceNew":true},"max_batch_count":{"type":"TypeFloat","optional":true,"default":10000},"max_writer_count":{"type":"TypeFloat","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_powerbi":{"schema":{"dataset":{"type":"TypeString","required":true},"group_id":{"type":"TypeString","required":true},"group_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true},"token_user_display_name":{"type":"TypeString","optional":true},"token_user_principal_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_queue":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"queue_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_topic":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_synapse":{"schema":{"database":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_table":{"schema":{"batch_size":{"type":"TypeInt","required":true},"columns_to_remove":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_mssql":{"schema":{"database":{"type":"TypeString","required":true},"delta_snapshot_query":{"type":"TypeString","optional":true},"full_snapshot_query":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"refresh_interval_duration":{"type":"TypeString","optional":true},"refresh_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_blob":{"schema":{"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub_v2":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_iothub":{"schema":{"endpoint":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"iothub_namespace":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"shared_access_policy_key":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"delegation":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"service_delegation":{"type":"TypeList","required":true,"elem":{"schema":{"actions":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}},"maxItems":1}}}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","optional":true,"computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_endpoint_policy_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"service_endpoints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_nat_gateway_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_network_security_group_association":{"schema":{"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_route_table_association":{"schema":{"route_table_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_service_endpoint_storage_policy":{"schema":{"definition":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"service":{"type":"TypeString","optional":true,"default":"Microsoft.Storage"},"service_resources":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription":{"schema":{"alias":{"type":"TypeString","optional":true,"description":"The Alias Name of the subscription. If omitted a new UUID will be generated for this property.","computed":true,"forceNew":true},"billing_scope_id":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true,"description":"The GUID of the Subscription.","computed":true,"forceNew":true},"subscription_name":{"type":"TypeString","required":true,"description":"The Display Name for the Subscription."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID to which the subscription belongs","computed":true},"workload":{"type":"TypeString","optional":true,"description":"The workload type for the Subscription. Possible values are `Production` (default) and `DevTest`.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_synapse_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_azure":{"schema":{"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_self_hosted":{"schema":{"authorization_key_primary":{"type":"TypeString","computed":true},"authorization_key_secondary":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_linked_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_private_link_hub":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_role_assignment":{"schema":{"principal_id":{"type":"TypeString","required":true,"forceNew":true},"role_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_spark_pool":{"schema":{"auto_pause":{"type":"TypeList","optional":true,"elem":{"schema":{"delay_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true},"min_node_count":{"type":"TypeInt","required":true}}},"maxItems":1},"cache_size":{"type":"TypeInt","optional":true},"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_executor_allocation_enabled":{"type":"TypeBool","optional":true,"default":false},"library_requirement":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"max_executors":{"type":"TypeInt","optional":true},"min_executors":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true},"node_size":{"type":"TypeString","required":true},"node_size_family":{"type":"TypeString","required":true},"session_level_packages_enabled":{"type":"TypeBool","optional":true,"default":false},"spark_config":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"spark_events_folder":{"type":"TypeString","optional":true,"default":"/events"},"spark_log_folder":{"type":"TypeString","optional":true,"default":"/logs"},"spark_version":{"type":"TypeString","optional":true,"default":"2.4"},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"data_encrypted":{"type":"TypeBool","optional":true},"geo_backup_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_database_id":{"type":"TypeString","optional":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"point_in_time":{"type":"TypeString","required":true,"forceNew":true},"source_database_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sql_pool_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment_baseline":{"schema":{"baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"rule_name":{"type":"TypeString","required":true},"sql_pool_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_classifier":{"schema":{"context":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"importance":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"member_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true},"workload_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_group":{"schema":{"importance":{"type":"TypeString","optional":true,"default":"normal"},"max_resource_percent":{"type":"TypeInt","required":true},"max_resource_percent_per_request":{"type":"TypeFloat","optional":true,"default":3},"min_resource_percent":{"type":"TypeInt","required":true},"min_resource_percent_per_request":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_execution_timeout_in_seconds":{"type":"TypeInt","optional":true},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace":{"schema":{"aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"azure_devops_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"last_commit_id":{"type":"TypeString","optional":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"compute_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","optional":true,"default":"cmk"},"key_versionless_id":{"type":"TypeString","required":true}}},"maxItems":1},"data_exfiltration_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"github_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","optional":true},"last_commit_id":{"type":"TypeString","optional":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"linking_allowed_for_aad_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sql_administrator_login":{"type":"TypeString","optional":true,"forceNew":true},"sql_administrator_login_password":{"type":"TypeString","optional":true},"sql_identity_control_enabled":{"type":"TypeBool","optional":true},"storage_data_lake_gen2_filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_key":{"schema":{"active":{"type":"TypeBool","required":true},"customer_managed_key_name":{"type":"TypeString","required":true},"customer_managed_key_versionless_id":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_sql_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true},"workspace_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_template_deployment":{"schema":{"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"parameters_body":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"template_body":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_tenant_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_traffic_manager_azure_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_external_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_nested_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"minimum_child_endpoints":{"type":"TypeInt","required":true},"minimum_required_child_endpoints_ipv4":{"type":"TypeInt","optional":true},"minimum_required_child_endpoints_ipv6":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","required":true,"elem":{"schema":{"relative_name":{"type":"TypeString","required":true,"forceNew":true},"ttl":{"type":"TypeInt","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","computed":true},"max_return":{"type":"TypeInt","optional":true},"monitor_config":{"type":"TypeList","required":true,"elem":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"expected_status_code_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":30},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":10},"tolerated_number_of_failures":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"profile_status":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","required":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer":{"schema":{"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer_edge_module":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"video_analyzer_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_desktop_application":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"command_line_argument_policy":{"type":"TypeString","required":true},"command_line_arguments":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true,"computed":true},"icon_index":{"type":"TypeInt","optional":true},"icon_path":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","required":true},"show_in_portal":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_application_group":{"schema":{"default_desktop_display_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"load_balancer_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_sessions_allowed":{"type":"TypeInt","optional":true,"default":999999},"name":{"type":"TypeString","required":true,"forceNew":true},"personal_desktop_assignment_type":{"type":"TypeString","optional":true,"forceNew":true},"preferred_app_group_type":{"type":"TypeString","optional":true,"default":"Desktop","description":"Preferred App Group type to display","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scheduled_agent_updates":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","required":true}}},"maxItems":2},"timezone":{"type":"TypeString","optional":true,"default":"UTC"},"use_session_host_timezone":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"start_vm_on_connect":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"validate_environment":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool_registration_info":{"schema":{"expiration_date":{"type":"TypeString","required":true},"hostpool_id":{"type":"TypeString","required":true,"forceNew":true},"token":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_desktop_scaling_plan":{"schema":{"description":{"type":"TypeString","optional":true},"exclusion_tag":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"hostpool_id":{"type":"TypeString","required":true},"scaling_plan_enabled":{"type":"TypeBool","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"off_peak_load_balancing_algorithm":{"type":"TypeString","required":true},"off_peak_start_time":{"type":"TypeString","required":true},"peak_load_balancing_algorithm":{"type":"TypeString","required":true},"peak_start_time":{"type":"TypeString","required":true},"ramp_down_capacity_threshold_percent":{"type":"TypeInt","required":true},"ramp_down_force_logoff_users":{"type":"TypeBool","required":true},"ramp_down_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_down_minimum_hosts_percent":{"type":"TypeInt","required":true},"ramp_down_notification_message":{"type":"TypeString","required":true},"ramp_down_start_time":{"type":"TypeString","required":true},"ramp_down_stop_hosts_when":{"type":"TypeString","required":true},"ramp_down_wait_time_minutes":{"type":"TypeInt","required":true},"ramp_up_capacity_threshold_percent":{"type":"TypeInt","optional":true},"ramp_up_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_up_minimum_hosts_percent":{"type":"TypeInt","optional":true},"ramp_up_start_time":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace":{"schema":{"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace_application_group_association":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","optional":true,"forceNew":true},"default_route_table_id":{"type":"TypeString","computed":true},"hub_routing_preference":{"type":"TypeString","optional":true,"default":"ExpressRoute"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"next_hop_ip_address":{"type":"TypeString","required":true}}}},"sku":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_auto_scale_min_capacity":{"type":"TypeInt","optional":true,"default":2},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_connection_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"static_vnet_local_route_override_criteria":{"type":"TypeString","optional":true,"default":"Contains","forceNew":true},"static_vnet_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true},"next_hop_ip_address":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_ip":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_route_table_route":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"},"route_table_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_routing_intent":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"routing_policy":{"type":"TypeList","required":true,"elem":{"schema":{"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_security_partner_provider":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","required":true,"forceNew":true}}},"maxItems":1},"availability_set_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"delete_data_disks_on_termination":{"type":"TypeBool","optional":true,"default":false},"delete_os_disk_on_termination":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"os_profile":{"type":"TypeSet","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","required":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true,"default":false},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":false},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"primary_network_interface_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_data_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"vhd_uri":{"type":"TypeString","optional":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"storage_image_reference":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"storage_os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"image_uri":{"type":"TypeString","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","optional":true,"computed":true},"vhd_uri":{"type":"TypeString","optional":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vm_size":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_data_disk_attachment":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Attach","forceNew":true},"lun":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_machine_scale_set":{"schema":{"automatic_os_upgrade":{"type":"TypeBool","optional":true,"default":false},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"health_probe_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeSet","required":true,"elem":{"schema":{"accelerated_networking":{"type":"TypeBool","optional":true},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"public_ip_address_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","required":true},"idle_timeout":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"subnet_id":{"type":"TypeString","required":true}}}},"ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","required":true}}}},"os_profile":{"type":"TypeList","required":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name_prefix":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","optional":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeSet","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true},"provision_vm_agent":{"type":"TypeBool","optional":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"priority":{"type":"TypeString","optional":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_batch_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","optional":true,"default":20},"pause_time_between_batches":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1},"single_placement_group":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"storage_profile_data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true}}}},"storage_profile_image_reference":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"offer":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_profile_os_disk":{"type":"TypeSet","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"image":{"type":"TypeString","optional":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"vhd_containers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_policy_mode":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_scale_set_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_scale_set_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"machine_scope":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exclude_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"include_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"bgp_community":{"type":"TypeString","optional":true},"ddos_protection_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"enable":{"type":"TypeBool","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"enforcement":{"type":"TypeString","required":true}}},"maxItems":1},"flow_timeout_in_minutes":{"type":"TypeInt","optional":true},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"security_group":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_dns_servers":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","optional":true,"computed":true},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","optional":true},"peer_weight":{"type":"TypeInt","optional":true},"peering_addresses":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"apipa_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"default_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_name":{"type":"TypeString","optional":true,"computed":true},"tunnel_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1}}},"maxItems":1},"custom_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"default_local_network_gateway_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"generation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true,"default":"vnetGatewayConfig"},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":3},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"vpn_client_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","optional":true},"aad_issuer":{"type":"TypeString","optional":true},"aad_tenant":{"type":"TypeString","optional":true},"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","optional":true},"radius_server_secret":{"type":"TypeString","optional":true},"revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"vpn_auth_types":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":3},"vpn_client_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"vpn_type":{"type":"TypeString","optional":true,"default":"RouteBased","forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"connection_protocol":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_bgp_addresses":{"type":"TypeList","optional":true,"elem":{"schema":{"primary":{"type":"TypeString","required":true},"secondary":{"type":"TypeString","optional":true}}},"maxItems":1},"dpd_timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"express_route_circuit_id":{"type":"TypeString","optional":true,"forceNew":true},"express_route_gateway_bypass":{"type":"TypeBool","optional":true,"computed":true},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_datasize":{"type":"TypeInt","optional":true,"computed":true},"sa_lifetime":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"local_network_gateway_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_virtual_network_gateway_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_weight":{"type":"TypeInt","optional":true,"computed":true},"shared_key":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true,"forceNew":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","optional":true,"computed":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway_nat_rule":{"schema":{"external_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_peering":{"schema":{"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","optional":true,"default":true},"disable_vpn_encryption":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"office365_local_breakout_category":{"type":"TypeString","optional":true,"default":"None"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"Standard"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vmware_cluster":{"schema":{"cluster_node_count":{"type":"TypeInt","required":true},"cluster_number":{"type":"TypeInt","computed":true},"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"vmware_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_vmware_express_route_authorization":{"schema":{"express_route_authorization_id":{"type":"TypeString","computed":true},"express_route_authorization_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_netapp_volume_attachment":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"netapp_volume_id":{"type":"TypeString","required":true,"forceNew":true},"vmware_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"management_cluster":{"type":"TypeList","required":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","required":true}}},"maxItems":1},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_subnet_cidr":{"type":"TypeString","required":true,"forceNew":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"nsxt_password":{"type":"TypeString","optional":true,"forceNew":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcenter_password":{"type":"TypeString","optional":true,"forceNew":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"create":600,"read":5,"delete":600,"update":600}},"azurerm_voice_services_communications_gateway":{"schema":{"api_bridge":{"type":"TypeString","optional":true},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse","forceNew":true},"codecs":{"type":"TypeString","required":true},"connectivity":{"type":"TypeString","required":true,"forceNew":true},"e911_type":{"type":"TypeString","required":true},"emergency_dial_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_teams_voicemail_pilot_number":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"on_prem_mcp_enabled":{"type":"TypeBool","optional":true},"platforms":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_location":{"type":"TypeSet","required":true,"elem":{"schema":{"allowed_media_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_signaling_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"esrp_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true},"operator_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_voice_services_communications_gateway_test_line":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"purpose":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_services_communications_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway":{"schema":{"bgp_route_translation_for_nat_enabled":{"type":"TypeBool","optional":true,"default":false},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true,"forceNew":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instance_1_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"peer_weight":{"type":"TypeInt","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scale_unit":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_gateway_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_vpn_site_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"traffic_selector_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"local_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"remote_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_link":{"type":"TypeList","required":true,"elem":{"schema":{"bandwidth_mbps":{"type":"TypeInt","optional":true,"default":10},"bgp_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default"},"custom_bgp_address":{"type":"TypeSet","optional":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"ip_configuration_id":{"type":"TypeString","required":true}}}},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"encryption_algorithm":{"type":"TypeString","required":true},"ike_encryption_algorithm":{"type":"TypeString","required":true},"ike_integrity_algorithm":{"type":"TypeString","required":true},"integrity_algorithm":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kb":{"type":"TypeInt","required":true},"sa_lifetime_sec":{"type":"TypeInt","required":true}}},"minItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"policy_based_traffic_selector_enabled":{"type":"TypeBool","optional":true,"default":false},"protocol":{"type":"TypeString","optional":true,"default":"IKEv2"},"ratelimit_enabled":{"type":"TypeBool","optional":true,"default":false},"route_weight":{"type":"TypeInt","optional":true,"default":0},"shared_key":{"type":"TypeString","optional":true},"vpn_site_link_id":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway_nat_rule":{"schema":{"external_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"external_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"internal_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_server_configuration":{"schema":{"azure_active_directory_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"issuer":{"type":"TypeString","required":true},"tenant":{"type":"TypeString","required":true}}},"minItems":1},"client_revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kilobytes":{"type":"TypeInt","required":true},"sa_lifetime_seconds":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"radius":{"type":"TypeList","optional":true,"elem":{"schema":{"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"server":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"score":{"type":"TypeInt","required":true},"secret":{"type":"TypeString","required":true}}}},"server_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vpn_authentication_types":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"vpn_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_server_configuration_policy_group":{"schema":{"is_default":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"priority":{"type":"TypeInt","optional":true,"default":0},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_site":{"schema":{"address_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"device_model":{"type":"TypeString","optional":true},"device_vendor":{"type":"TypeString","optional":true},"link":{"type":"TypeList","optional":true,"elem":{"schema":{"bgp":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"peering_address":{"type":"TypeString","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"provider_name":{"type":"TypeString","optional":true},"speed_in_mbps":{"type":"TypeInt","optional":true,"default":0}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"o365_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"traffic_category":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"default_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"optimize_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_app_hybrid_connection":{"schema":{"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true},"web_app_id":{"type":"TypeString","required":true,"description":"The ID of the Web App for this Hybrid Connection.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_application_firewall_policy":{"schema":{"custom_rules":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"group_rate_limit_by":{"type":"TypeString","optional":true},"match_conditions":{"type":"TypeList","required":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_variables":{"type":"TypeList","required":true,"elem":{"schema":{"selector":{"type":"TypeString","optional":true},"variable_name":{"type":"TypeString","required":true}}}},"negation_condition":{"type":"TypeBool","optional":true},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","required":true},"rate_limit_duration":{"type":"TypeString","optional":true},"rate_limit_threshold":{"type":"TypeInt","optional":true},"rule_type":{"type":"TypeString","required":true}}}},"http_listener_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_rules":{"type":"TypeList","required":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","optional":true,"default":"3.2"}}},"maxItems":1},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"selector_match_operator":{"type":"TypeString","required":true}}}},"managed_rule_set":{"type":"TypeList","required":true,"elem":{"schema":{"rule_group_override":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"rule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"id":{"type":"TypeString","required":true}}}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","required":true}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"path_based_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"policy_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"file_upload_limit_in_mb":{"type":"TypeInt","optional":true,"default":100},"log_scrubbing":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true,"description":"When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to."},"selector_match_operator":{"type":"TypeString","optional":true,"default":"Equals"}}}}}},"maxItems":1},"max_request_body_size_in_kb":{"type":"TypeInt","optional":true,"default":128},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"request_body_check":{"type":"TypeBool","optional":true,"default":true},"request_body_inspect_limit_in_kb":{"type":"TypeInt","optional":true,"default":128}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"capacity":{"type":"TypeInt","optional":true,"default":1},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_hub":{"schema":{"anonymous_connections_enabled":{"type":"TypeBool","optional":true,"default":false},"event_handler":{"type":"TypeList","optional":true,"elem":{"schema":{"auth":{"type":"TypeList","optional":true,"elem":{"schema":{"managed_identity_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"system_events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_event_pattern":{"type":"TypeString","optional":true}}}},"event_listener":{"type":"TypeList","optional":true,"elem":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"system_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_network_acl":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"description":"Can the Function App only be accessed via HTTPS?","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Function App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","description":"The identifier used by App Service to perform domain ownership verification via DNS TXT record.","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","description":"The default hostname of the Windows Function App Slot.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","description":"The Kind value for this Windows Function App Slot.","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Windows Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","description":"A list of outbound IP addresses. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12`.","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","description":"A list of possible outbound IP addresses, not all of which are necessarily in use. This is a superset of `outbound_ip_address_list`. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of possible outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12,52.143.43.17`. This is a superset of `outbound_ip_addresses`. For example `[\"52.23.25.3\", \"52.143.43.12\",\"52.143.43.17\"]`.","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_windows_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","required":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_web_app_slot":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"computed":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}}},"dataSources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"data_residency_location":{"type":"TypeString","description":"Location in which the B2C tenant is hosted and data resides.","computed":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix."},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","description":"Billing SKU for the B2C tenant.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"read":5}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"filtered_sync_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notifications":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","computed":true},"notify_global_admins":{"type":"TypeBool","computed":true}}}},"replica_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"external_access_enabled":{"type":"TypeBool","computed":true},"public_certificate":{"type":"TypeString","computed":true}}}},"security":{"type":"TypeList","computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","computed":true},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","computed":true},"ntlm_v1_enabled":{"type":"TypeBool","computed":true},"sync_kerberos_passwords":{"type":"TypeBool","computed":true},"sync_ntlm_passwords":{"type":"TypeBool","computed":true},"sync_on_prem_passwords":{"type":"TypeBool","computed":true},"tls_v1_enabled":{"type":"TypeBool","computed":true}}}},"sku":{"type":"TypeString","computed":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_advisor_recommendations":{"schema":{"filter_by_category":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter_by_resource_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"recommendations":{"type":"TypeList","computed":true,"elem":{"schema":{"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"impact":{"type":"TypeString","computed":true},"recommendation_name":{"type":"TypeString","computed":true},"recommendation_type_id":{"type":"TypeString","computed":true},"resource_name":{"type":"TypeString","computed":true},"resource_type":{"type":"TypeString","computed":true},"suppression_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"updated_time":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":10}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"management":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"proxy":{"type":"TypeList","computed":true,"elem":{"schema":{"default_ssl_binding":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"scm":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_api_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notification_sender_email":{"type":"TypeString","computed":true},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"publisher_email":{"type":"TypeString","computed":true},"publisher_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scm_url":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"revision":{"type":"TypeString","required":true},"service_url":{"type":"TypeString","computed":true},"soap_pass_through":{"type":"TypeBool","computed":true},"subscription_key_parameter_names":{"type":"TypeList","computed":true,"elem":{"schema":{"header":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true}}}},"subscription_required":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"version_set_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"version_header_name":{"type":"TypeString","computed":true},"version_query_name":{"type":"TypeString","computed":true},"versioning_scheme":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true},"certificate_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"request_client_certificate_enabled":{"type":"TypeBool","computed":true},"tls10_enabled":{"type":"TypeBool","computed":true},"tls11_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"external_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true},"approval_required":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"product_id":{"type":"TypeString","required":true},"published":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","computed":true},"subscriptions_limit":{"type":"TypeInt","computed":true},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true},"email":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"note":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"state":{"type":"TypeString","computed":true},"user_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","computed":true}}}},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"replica":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","required":true},"label":{"type":"TypeString","optional":true,"default":""},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_configuration_keys":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"items":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"label":{"type":"TypeString","computed":true},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}}}},"key":{"type":"TypeString","optional":true,"default":""},"label":{"type":"TypeString","optional":true,"default":""}},"timeouts":{"read":5}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_cert_enabled":{"type":"TypeBool","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","computed":true},"acr_user_managed_identity_client_id":{"type":"TypeString","computed":true},"always_on":{"type":"TypeBool","computed":true},"app_command_line":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"number_of_workers":{"type":"TypeInt","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_certificate":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","computed":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","computed":true},"distinguished_name":{"type":"TypeString","computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"product_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_environment":{"schema":{"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"front_end_scale_factor":{"type":"TypeInt","computed":true},"internal_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_ip_address":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","computed":true},"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"dedicated_host_count":{"type":"TypeInt","computed":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","computed":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"is_xenon":{"type":"TypeBool","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"per_site_scaling":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"size":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_application_gateway":{"schema":{"backend_address_pool":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeString","computed":true},"instrumentation_key":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_arc_machine":{"schema":{"active_directory_fqdn":{"type":"TypeString","computed":true},"agent":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variables":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"bool":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeBool","computed":true}}}},"datetime":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"encrypted":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"int":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeInt","computed":true}}}},"null":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"object":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"string":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"platform_update_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_backup_policy_file_share":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_backup_policy_vm":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","computed":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"ip_connect_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_units":{"type":"TypeInt","computed":true},"shareable_link_enabled":{"type":"TypeBool","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_allocation_mode":{"type":"TypeString","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true},"allow_updates":{"type":"TypeBool","computed":true},"default_version":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","computed":true},"thumbprint_algorithm":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"auto_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","computed":true},"formula":{"type":"TypeString","computed":true}}}},"certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"store_location":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","computed":true},"visibility":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","computed":true}}}},"data_disks":{"type":"TypeList","computed":true,"elem":{"schema":{"caching":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"lun":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}},"disk_encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","computed":true}}}},"display_name":{"type":"TypeString","computed":true},"extensions":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"protected_settings":{"type":"TypeString","computed":true},"provision_after_extensions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","computed":true},"settings_json":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"type_handler_version":{"type":"TypeString","computed":true}}}},"fixed_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"resize_timeout":{"type":"TypeString","computed":true},"target_dedicated_nodes":{"type":"TypeInt","computed":true},"target_low_priority_nodes":{"type":"TypeInt","computed":true}}}},"inter_node_communication":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_tasks_per_node":{"type":"TypeInt","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"blobfuse_options":{"type":"TypeString","computed":true},"container_name":{"type":"TypeString","computed":true},"identity_id":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"sas_key":{"type":"TypeString","computed":true}}}},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"azure_file_url":{"type":"TypeString","computed":true},"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true}}}},"cifs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"nfs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"network_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dynamic_vnet_assignment_scope":{"type":"TypeString","computed":true},"endpoint_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port_range":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"protocol":{"type":"TypeString","computed":true}}}},"public_address_provisioning_type":{"type":"TypeString","computed":true},"public_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","computed":true}}}},"node_agent_sku_id":{"type":"TypeString","computed":true},"node_placement":{"type":"TypeList","computed":true,"elem":{"schema":{"policy":{"type":"TypeString","computed":true}}}},"os_disk_placement":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_task":{"type":"TypeList","computed":true,"elem":{"schema":{"command_line":{"type":"TypeString","computed":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"run_options":{"type":"TypeString","computed":true},"working_directory":{"type":"TypeString","computed":true}}}},"resource_file":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","computed":true},"blob_prefix":{"type":"TypeString","computed":true},"file_mode":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"http_url":{"type":"TypeString","computed":true},"storage_container_url":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"task_retry_maximum":{"type":"TypeInt","computed":true},"user_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_user":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","computed":true}}}},"user_name":{"type":"TypeString","computed":true}}}},"wait_for_success":{"type":"TypeBool","computed":true}}}},"storage_image_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"task_scheduling_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","computed":true}}}},"user_accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"linux_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"gid":{"type":"TypeInt","computed":true},"ssh_private_key":{"type":"TypeString","computed":true},"uid":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"windows_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"login_mode":{"type":"TypeString","computed":true}}}}}}},"vm_size":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_billing_enrollment_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"enrollment_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mca_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"billing_profile_name":{"type":"TypeString","required":true},"invoice_section_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mpa_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"customer_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_blueprint_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_blueprint_published_version":{"schema":{"blueprint_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"dns_zone_id":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tls":{"type":"TypeList","computed":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","computed":true},"certificate_type":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true}}}},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"enabled":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"enabled":{"type":"TypeBool","computed":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redirect_url":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"health_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true},"request_type":{"type":"TypeString","computed":true}}}},"load_balancing":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","computed":true},"sample_size":{"type":"TypeInt","computed":true},"successful_samples_required":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","computed":true},"session_affinity_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"key_vault_certificate_id":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"read":5}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_client_config":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cognitive_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"qna_runtime_endpoint":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"certificate_based_security_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"pem_public_key":{"type":"TypeString","computed":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"resource_group_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"subscription_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","computed":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The Dapr Application Identifier.","computed":true},"app_port":{"type":"TypeInt","description":"The port which the application is listening on. This is the same as the `ingress` port.","computed":true},"app_protocol":{"type":"TypeString","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`.","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","description":"Should this ingress allow insecure connections?","computed":true},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`","computed":true},"certificate_id":{"type":"TypeString","description":"The ID of the Certificate.","computed":true},"name":{"type":"TypeString","description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate.","computed":true}}}},"external_enabled":{"type":"TypeBool","description":"Is this an external Ingress.","computed":true},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","description":"The target port on the container for the Ingress traffic.","computed":true},"traffic_weight":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","description":"The label to apply to the revision as a name prefix for routing traffic.","computed":true},"latest_revision":{"type":"TypeBool","description":"This traffic Weight relates to the latest stable Container Revision.","computed":true},"percentage":{"type":"TypeInt","description":"The percentage of traffic to send to this revision.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted.","computed":true}}}},"transport":{"type":"TypeString","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`","computed":true}}}},"latest_revision_fqdn":{"type":"TypeString","description":"The fully qualified domain name of the latest Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"identity":{"type":"TypeString","description":"ID of the System or User Managed Identity used to pull images from the Container Registry","computed":true},"password_secret_name":{"type":"TypeString","description":"The name of the Secret Reference containing the password value for this user on the Container Registry.","computed":true},"server":{"type":"TypeString","description":"The hostname for the Container Registry.","computed":true},"username":{"type":"TypeString","description":"The username to use for this Container Registry.","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"revision_mode":{"type":"TypeString","computed":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Secret name.","computed":true},"value":{"type":"TypeString","description":"The value for this secret.","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_queue_scale_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_name":{"type":"TypeString","computed":true},"trigger_parameter":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"queue_length":{"type":"TypeInt","computed":true},"queue_name":{"type":"TypeString","computed":true}}}},"container":{"type":"TypeList","computed":true,"elem":{"schema":{"args":{"type":"TypeList","description":"A list of args to pass to the container.","computed":true,"elem":{"type":"TypeString"}},"command":{"type":"TypeList","description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","computed":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`","computed":true},"env":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the environment variable for the container.","computed":true},"secret_name":{"type":"TypeString","description":"The name of the secret that contains the value for this environment variable.","computed":true},"value":{"type":"TypeString","description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used","computed":true}}}},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","description":"The image to use to create the container.","computed":true},"liveness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"initial_delay":{"type":"TypeInt","description":"The time in seconds to wait after the container has started before the probe is started.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"memory":{"type":"TypeString","description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`","computed":true},"name":{"type":"TypeString","description":"The name of the container.","computed":true},"readiness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"success_count_threshold":{"type":"TypeInt","description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"startup_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","computed":true}}}},"volume_mounts":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the Volume to be mounted in the container.","computed":true},"path":{"type":"TypeString","description":"The path in the container at which to mount this volume.","computed":true}}}}}}},"custom_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_name":{"type":"TypeString","computed":true},"trigger_parameter":{"type":"TypeString","computed":true}}}},"custom_rule_type":{"type":"TypeString","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true}}}},"http_scale_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_name":{"type":"TypeString","computed":true},"trigger_parameter":{"type":"TypeString","computed":true}}}},"concurrent_requests":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"max_replicas":{"type":"TypeInt","description":"The maximum number of replicas for this container.","computed":true},"min_replicas":{"type":"TypeInt","description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","computed":true},"tcp_scale_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_name":{"type":"TypeString","computed":true},"trigger_parameter":{"type":"TypeString","computed":true}}}},"concurrent_requests":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"volume":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"storage_name":{"type":"TypeString","computed":true},"storage_type":{"type":"TypeString","computed":true}}}}}}}},"timeouts":{"read":5}},"azurerm_container_app_environment":{"schema":{"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","description":"The existing Subnet in use by the Container Apps Control Plane.","computed":true},"internal_load_balancer_enabled":{"type":"TypeBool","description":"Does the Container Environment operate in Internal Load Balancing Mode?","computed":true},"location":{"type":"TypeString","computed":true},"log_analytics_workspace_name":{"type":"TypeString","description":"The name of the Log Analytics Workspace this Container Apps Managed Environment is linked to.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment."},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_app_environment_certificate":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"read":5}},"azurerm_container_group":{"schema":{"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","computed":true},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"data_endpoint_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"container_registry_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scope_map_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_account":{"schema":{"capabilities":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"consistency_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","computed":true},"max_interval_in_seconds":{"type":"TypeInt","computed":true},"max_staleness_prefix":{"type":"TypeInt","computed":true}}}},"enable_automatic_failover":{"type":"TypeBool","computed":true},"enable_free_tier":{"type":"TypeBool","computed":true},"enable_multiple_write_locations":{"type":"TypeBool","computed":true},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeList","computed":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true}}}},"ip_range_filter":{"type":"TypeString","computed":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","computed":true},"key_vault_key_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"offer_type":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_restorable_database_accounts":{"schema":{"accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"api_type":{"type":"TypeString","computed":true},"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"restorable_locations":{"type":"TypeList","computed":true,"elem":{"schema":{"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"regional_database_account_instance_id":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true},"autoscale_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true},"assignable_scopes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeSet","computed":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_factory":{"schema":{"github_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"git_url":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"project_name":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redundancy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"snapshot_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"recurrence":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true}}}},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","computed":true},"data_share_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"file_system_name":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"source_platform":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databricks_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_databricks_workspace_private_endpoint_connection":{"schema":{"connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"workspace_private_endpoint_id":{"type":"TypeString","computed":true}}}},"private_endpoint_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dedicated_host":{"schema":{"dedicated_host_group_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"storage_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_dev_test_virtual_network":{"schema":{"allowed_subnets":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_public_ip":{"type":"TypeString","computed":true},"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true}}}},"lab_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_overrides":{"type":"TypeList","computed":true,"elem":{"schema":{"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_in_vm_creation_permission":{"type":"TypeString","computed":true},"use_public_ip_address_permission":{"type":"TypeString","computed":true},"virtual_network_pool_name":{"type":"TypeString","computed":true}}}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_access":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"flags":{"type":"TypeInt","computed":true},"tag":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","computed":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"send_activity_logs":{"type":"TypeBool","computed":true},"send_azuread_logs":{"type":"TypeBool","computed":true},"send_subscription_logs":{"type":"TypeBool","computed":true}}}},"monitoring_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain":{"schema":{"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"inbound_ip_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"ip_mask":{"type":"TypeString","computed":true}}}},"input_mapping_default_values":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true}}}},"input_mapping_fields":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_time":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true},"topic":{"type":"TypeString","computed":true}}}},"input_schema":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_arm_resource_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventhub":{"schema":{"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"partition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"read":5}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"user_metadata":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"dedicated_cluster_id":{"type":"TypeString","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"kafka_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"maximum_throughput_units":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"sas":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_express_route_circuit":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peerings":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"peer_asn":{"type":"TypeInt","computed":true},"peering_type":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","computed":true},"shared_key":{"type":"TypeString","computed":true},"vlan_id":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_key":{"type":"TypeString","computed":true},"service_provider_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"bandwidth_in_mbps":{"type":"TypeInt","computed":true},"peering_location":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","computed":true}}}},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"family":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_extended_locations":{"schema":{"extended_locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"sku_tier":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","computed":true},"virtual_hub":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","computed":true},"virtual_hub_id":{"type":"TypeString","computed":true}}}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_firewall_policy":{"schema":{"base_policy_id":{"type":"TypeString","computed":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","computed":true,"elem":{"schema":{"network_rule_fqdn_enabled":{"type":"TypeBool","computed":true},"proxy_enabled":{"type":"TypeBool","computed":true},"servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"threat_intelligence_mode":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_cert_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_function_app_host_keys":{"schema":{"blobs_extension_key":{"type":"TypeString","computed":true},"default_function_key":{"type":"TypeString","computed":true},"durabletask_extension_key":{"type":"TypeString","computed":true},"event_grid_extension_config_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"signalr_extension_key":{"type":"TypeString","computed":true},"webpubsub_extension_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_hdinsight_cluster":{"schema":{"cluster_version":{"type":"TypeString","computed":true},"component_versions":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"edge_ssh_endpoint":{"type":"TypeString","computed":true},"gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"ssh_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","computed":true},"tls_min_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"configuration_export_storage_account_name":{"type":"TypeString","computed":true},"container_registry_login_server_url":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","computed":true},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","computed":true},"eventhub_consumer_group_name":{"type":"TypeString","computed":true},"eventhub_name":{"type":"TypeString","computed":true},"eventhub_namespace_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"cors_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","computed":true},"allowed_headers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","computed":true},"cosmosdb_throughput":{"type":"TypeInt","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_hybrid_compute_machine":{"schema":{"ad_fqdn":{"type":"TypeString","computed":true},"agent_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"error_details":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_info":{"type":"TypeList","computed":true,"elem":{"schema":{"info":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"code":{"type":"TypeString","computed":true},"message":{"type":"TypeString","computed":true},"target":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"name_regex":{"type":"TypeString","optional":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"sort_descending":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_images":{"schema":{"images":{"type":"TypeList","computed":true,"elem":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub":{"schema":{"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","computed":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_operations_host_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"iothub_dps_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_iothub_shared_access_policy":{"schema":{"iothub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","computed":true},"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","computed":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"enable_rbac_authorization":{"type":"TypeBool","computed":true},"enabled_for_deployment":{"type":"TypeBool","computed":true},"enabled_for_disk_encryption":{"type":"TypeBool","computed":true},"enabled_for_template_deployment":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_acls":{"type":"TypeList","computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","computed":true},"default_action":{"type":"TypeString","computed":true},"ip_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_access_policy":{"schema":{"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_certificate":{"schema":{"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"key_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"curve":{"type":"TypeString","computed":true},"exportable":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"reuse_key":{"type":"TypeBool","computed":true}}}},"lifetime_action":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","computed":true},"lifetime_percentage":{"type":"TypeInt","computed":true}}}}}}},"secret_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true}}}},"x509_certificate_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"validity_in_months":{"type":"TypeInt","computed":true}}}}}}},"expires":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true,"computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_certificate_data":{"schema":{"certificates_count":{"type":"TypeInt","computed":true},"expires":{"type":"TypeString","computed":true},"hex":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"pem":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","computed":true},"admin":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"phone":{"type":"TypeString","computed":true}}}},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"org_id":{"type":"TypeString","computed":true},"provider_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificates":{"schema":{"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"include_pending":{"type":"TypeBool","optional":true,"default":true},"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_encrypted_value":{"schema":{"algorithm":{"type":"TypeString","required":true},"decoded_plain_text_value":{"type":"TypeString","computed":true},"encrypted_data":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"plain_text_value":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","computed":true},"e":{"type":"TypeString","computed":true},"key_opts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before_date":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_secrets":{"schema":{"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","computed":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","computed":true}}}},"agent_pool_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"api_server_authorized_ip_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"azure_active_directory_role_based_access_control":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","computed":true},"client_app_id":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"server_app_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"azure_policy_enabled":{"type":"TypeBool","computed":true},"current_kubernetes_version":{"type":"TypeString","computed":true},"custom_ca_trust_certificates_base64":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"disk_encryption_set_id":{"type":"TypeString","computed":true},"dns_prefix":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","computed":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress_application_gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","computed":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"key_management_service":{"type":"TypeList","computed":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"key_vault_network_access":{"type":"TypeString","computed":true}}}},"key_vault_secrets_provider":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","computed":true},"secret_rotation_interval":{"type":"TypeString","computed":true}}}},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"kubernetes_version":{"type":"TypeString","computed":true},"linux_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true},"ssh_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_data":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","computed":true},"microsoft_defender":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"network_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","computed":true},"docker_bridge_cidr":{"type":"TypeString","computed":true},"load_balancer_sku":{"type":"TypeString","computed":true},"network_plugin":{"type":"TypeString","computed":true},"network_policy":{"type":"TypeString","computed":true},"pod_cidr":{"type":"TypeString","computed":true},"service_cidr":{"type":"TypeString","computed":true}}}},"node_resource_group":{"type":"TypeString","computed":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","computed":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","computed":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}}},"open_service_mesh_enabled":{"type":"TypeBool","computed":true},"private_cluster_enabled":{"type":"TypeBool","computed":true},"private_fqdn":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"role_based_access_control_enabled":{"type":"TypeBool","computed":true},"service_mesh_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"mode":{"type":"TypeString","computed":true}}}},"service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true}}}},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_version":{"type":"TypeString","computed":true},"file_driver_enabled":{"type":"TypeBool","computed":true},"snapshot_controller_enabled":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"eviction_policy":{"type":"TypeString","computed":true},"kubernetes_cluster_name":{"type":"TypeString","required":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_disk_type":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"priority":{"type":"TypeString","computed":true},"proximity_placement_group_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"spot_max_price":{"type":"TypeFloat","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_node_pool_snapshot":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_node_pool_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_service_versions":{"schema":{"include_preview":{"type":"TypeBool","optional":true,"default":true},"latest_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"version_prefix":{"type":"TypeString","optional":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kusto_cluster":{"schema":{"data_ingestion_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true},"hot_cache_period":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_lb":{"schema":{"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_backend_address_pool":{"schema":{"backend_address":{"type":"TypeList","computed":true,"elem":{"schema":{"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"virtual_network_id":{"type":"TypeString","computed":true}}}},"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","computed":true},"backend_address_pool_id":{"type":"TypeString","computed":true},"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","computed":true},"tcp_reset_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_lb_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","computed":true},"disable_outbound_snat":{"type":"TypeBool","computed":true},"enable_floating_ip":{"type":"TypeBool","computed":true},"enable_tcp_reset":{"type":"TypeBool","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"load_distribution":{"type":"TypeString","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"probe_id":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"image_tag":{"type":"TypeString","computed":true},"registry_password":{"type":"TypeString","computed":true},"registry_url":{"type":"TypeString","computed":true},"registry_username":{"type":"TypeString","computed":true}}}},"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":25}},"azurerm_linux_web_app":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_reference_identity_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_image_tag":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"go_version":{"type":"TypeString","computed":true},"java_server":{"type":"TypeString","computed":true},"java_server_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"ruby_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","computed":true}}}},"gateway_address":{"type":"TypeString","computed":true},"gateway_fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_log_analytics_workspace":{"schema":{"daily_quota_gb":{"type":"TypeFloat","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_shared_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_integration_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","computed":true},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_account_share_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_workflow":{"schema":{"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"logic_app_integration_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","computed":true},"workflow_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_machine_learning_workspace":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","computed":true},"install_patches":{"type":"TypeList","computed":true,"elem":{"schema":{"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"reboot":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","computed":true},"window":{"type":"TypeList","computed":true,"elem":{"schema":{"duration":{"type":"TypeString","computed":true},"expiration_date_time":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"start_date_time":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_managed_api":{"schema":{"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_managed_application_definition":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","computed":true},"disk_access_id":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"disk_iops_read_write":{"type":"TypeInt","computed":true},"disk_mbps_read_write":{"type":"TypeInt","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"image_reference_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_access_policy":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group":{"schema":{"all_management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"all_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true,"computed":true},"parent_management_group_id":{"type":"TypeString","computed":true},"subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group_template_deployment":{"schema":{"management_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement":{"type":"TypeString","computed":true},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"geo_redundant_backup":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true},"plan":{"type":"TypeString","required":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_country_code":{"type":"TypeString","computed":true},"mobile_network_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"mobile_network_data_network_name":{"type":"TypeString","required":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true},"network_address_port_translation":{"type":"TypeList","computed":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"pinhole_maximum_number":{"type":"TypeInt","optional":true},"port_range":{"type":"TypeList","computed":true,"elem":{"schema":{"maximum":{"type":"TypeInt","computed":true},"minimum":{"type":"TypeInt","computed":true}}}},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","computed":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"control_plane_access_name":{"type":"TypeString","computed":true},"core_network_technology":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"interoperability_settings_json":{"type":"TypeString","computed":true},"local_diagnostics_access":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","computed":true},"https_server_certificate_url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform":{"type":"TypeList","computed":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","computed":true},"custom_location_id":{"type":"TypeString","computed":true},"edge_device_id":{"type":"TypeString","computed":true},"stack_hci_cluster_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"pcc_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"precedence":{"type":"TypeInt","computed":true},"qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"guaranteed_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"service_data_flow_template":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","computed":true}}}},"service_precedence":{"type":"TypeInt","computed":true},"service_qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim":{"schema":{"device_type":{"type":"TypeString","computed":true},"integrated_circuit_card_identifier":{"type":"TypeString","computed":true},"international_mobile_subscriber_identity":{"type":"TypeString","computed":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","computed":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true},"static_ipv4_address":{"type":"TypeString","computed":true}}}},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","computed":true},"registration_timer_in_seconds":{"type":"TypeInt","computed":true},"slice":{"type":"TypeList","computed":true,"elem":{"schema":{"data_network":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"allowed_services_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","computed":true},"default_session_type":{"type":"TypeString","computed":true},"max_buffered_packets":{"type":"TypeInt","computed":true},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}}}},"default_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","computed":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","computed":true},"slice_service_type":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"role_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"automation_runbook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","computed":true},"is_global_runbook":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"runbook_name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true},"webhook_resource_id":{"type":"TypeString","computed":true}}}},"azure_app_push_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"azure_function_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","computed":true},"function_name":{"type":"TypeString","computed":true},"http_trigger_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"email_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"event_hub_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true},"ticket_configuration":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","computed":true}}}},"logic_app_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"callback_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"short_name":{"type":"TypeString","computed":true},"sms_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"voice_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"webhook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","computed":true},"data_flow":{"type":"TypeList","computed":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"output_stream":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"transform_kql":{"type":"TypeString","computed":true}}}},"data_sources":{"type":"TypeList","computed":true,"elem":{"schema":{"data_import":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"stream":{"type":"TypeString","computed":true}}}}}}},"extension":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_json":{"type":"TypeString","computed":true},"extension_name":{"type":"TypeString","computed":true},"input_data_sources":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"iis_log":{"type":"TypeList","computed":true,"elem":{"schema":{"log_directories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"settings":{"type":"TypeList","computed":true,"elem":{"schema":{"text":{"type":"TypeList","computed":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","computed":true}}}}}}},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"performance_counter":{"type":"TypeList","computed":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"sampling_frequency_in_seconds":{"type":"TypeInt","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"prometheus_forwarder":{"type":"TypeList","computed":true,"elem":{"schema":{"label_include_filter":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"syslog":{"type":"TypeList","computed":true,"elem":{"schema":{"facility_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"log_levels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_event_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"x_path_queries":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_firewall_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"description":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"workspace_resource_id":{"type":"TypeString","computed":true}}}},"monitor_account":{"type":"TypeList","computed":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"storage_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_blob_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_table_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"table_name":{"type":"TypeString","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"stream_declaration":{"type":"TypeList","computed":true,"elem":{"schema":{"column":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"stream_name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_diagnostic_categories":{"schema":{"log_category_groups":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"log_category_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"logs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"metrics":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"days":{"type":"TypeInt","computed":true},"enabled":{"type":"TypeBool","computed":true}}}},"servicebus_rule_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeSet","computed":true,"elem":{"schema":{"action_group":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","computed":true},"email_subject":{"type":"TypeString","computed":true}}}},"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"query":{"type":"TypeString","computed":true},"query_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"severity":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","computed":true},"time_window":{"type":"TypeInt","computed":true},"trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_column":{"type":"TypeString","computed":true},"metric_trigger_type":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeSet","computed":true,"elem":{"schema":{"dimension":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","computed":true}}}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mssql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"elastic_pool_id":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_size_gb":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"read_replica_count":{"type":"TypeInt","computed":true},"read_scale":{"type":"TypeBool","computed":true},"server_id":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"max_size_bytes":{"type":"TypeInt","computed":true},"max_size_gb":{"type":"TypeFloat","computed":true},"name":{"type":"TypeString","required":true},"per_db_max_capacity":{"type":"TypeInt","computed":true},"per_db_min_capacity":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"family":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"customer_managed_key_id":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"high_availability":{"type":"TypeList","computed":true,"elem":{"schema":{"mode":{"type":"TypeString","computed":true},"standby_availability_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","computed":true},"start_hour":{"type":"TypeInt","computed":true},"start_minute":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"storage":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","computed":true},"iops":{"type":"TypeInt","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement_enabled":{"type":"TypeBool","computed":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","computed":true},"email_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"retention_days":{"type":"TypeInt","computed":true},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_endpoint":{"type":"TypeString","computed":true}}}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_ip_address_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"public_ip_prefix_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_netapp_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_level":{"type":"TypeString","computed":true},"size_in_tb":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"volume_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true},"daily_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"hourly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"monthly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","computed":true,"elem":{"type":"TypeInt"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"network_features":{"type":"TypeString","computed":true},"pool_name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"security_style":{"type":"TypeString","optional":true},"service_level":{"type":"TypeString","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"volume_path":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true},"application_identifier":{"type":"TypeString","computed":true},"group_description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","computed":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"data_protection_snapshot_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","computed":true}}}},"export_policy_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","computed":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"nfsv41_enabled":{"type":"TypeBool","computed":true},"root_access_enabled":{"type":"TypeBool","computed":true},"rule_index":{"type":"TypeInt","computed":true},"unix_read_only":{"type":"TypeBool","computed":true},"unix_read_write":{"type":"TypeBool","computed":true}}}},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proximity_placement_group_id":{"type":"TypeString","computed":true},"security_style":{"type":"TypeString","computed":true},"service_level":{"type":"TypeString","computed":true},"snapshot_directory_visible":{"type":"TypeBool","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","computed":true},"volume_spec_name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume_quota_rule":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"quota_size_in_kib":{"type":"TypeInt","computed":true},"quota_target":{"type":"TypeString","computed":true},"quota_type":{"type":"TypeString","computed":true},"volume_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"internal_dns_name_label":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","computed":true},"load_balancer_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_manager_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"security_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"destination_address_prefix":{"type":"TypeString","computed":true},"destination_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","computed":true},"destination_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_service_tags":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv4_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv6_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"location_filter":{"type":"TypeString","optional":true,"forceNew":true},"service":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"application_mode":{"type":"TypeString","computed":true},"bundle_id":{"type":"TypeString","computed":true},"key_id":{"type":"TypeString","computed":true},"team_id":{"type":"TypeString","computed":true},"token":{"type":"TypeString","computed":true}}}},"gcm_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"api_key":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"ip_forwarding_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","computed":true},"anti_virus_profile":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"dns_subscription":{"type":"TypeString","computed":true},"file_blocking_profile":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_trust_certificate":{"type":"TypeString","computed":true},"outbound_untrust_certificate":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"url_filtering_profile":{"type":"TypeString","computed":true},"vulnerability_profile":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_platform_image":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"offer":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_policy_assignment":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"enforce":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","computed":true,"elem":{"schema":{"content":{"type":"TypeString","computed":true},"policy_definition_reference_id":{"type":"TypeString","computed":true}}}},"not_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeString","computed":true},"policy_definition_id":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_definition_built_in":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_definition_group":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","computed":true},"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"policy_definition_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"policy_definition_id":{"type":"TypeString","computed":true},"policy_group_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","computed":true}}}},"policy_definitions":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"assignment_hash":{"type":"TypeString","computed":true},"compliance_status":{"type":"TypeString","computed":true},"content_hash":{"type":"TypeString","computed":true},"content_uri":{"type":"TypeString","computed":true},"last_compliance_status_checked":{"type":"TypeString","computed":true},"latest_report_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"virtual_machine_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_dns_servers":{"type":"TypeList","computed":true,"elem":{"schema":{"ip_address":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true},"private_dns_zone_name":{"type":"TypeString","required":true},"registration_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_endpoint_connection":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_service_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"request_response":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","computed":true},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"nat_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_link_service_endpoint_connections":{"schema":{"location":{"type":"TypeString","computed":true},"private_endpoint_connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"connection_id":{"type":"TypeString","computed":true},"connection_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"private_endpoint_id":{"type":"TypeString","computed":true},"private_endpoint_name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_id":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_proximity_placement_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","computed":true},"ddos_protection_mode":{"type":"TypeString","computed":true},"ddos_protection_plan_id":{"type":"TypeString","computed":true},"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"reverse_fqdn":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"prefix_length":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ips":{"schema":{"allocation_type":{"type":"TypeString","optional":true},"attachment_status":{"type":"TypeString","optional":true},"name_prefix":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_public_maintenance_configurations":{"schema":{"configs":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"duration":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maintenance_scope":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_recovery_services_vault":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","computed":true},"enable_non_ssl_port":{"type":"TypeBool","computed":true},"family":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patch_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeString","computed":true},"start_hour_utc":{"type":"TypeInt","computed":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","computed":true},"redis_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","computed":true},"aof_storage_connection_string_0":{"type":"TypeString","computed":true},"aof_storage_connection_string_1":{"type":"TypeString","computed":true},"enable_authentication":{"type":"TypeBool","computed":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","computed":true},"maxmemory_delta":{"type":"TypeInt","computed":true},"maxmemory_policy":{"type":"TypeString","computed":true},"maxmemory_reserved":{"type":"TypeInt","computed":true},"notify_keyspace_events":{"type":"TypeString","computed":true},"rdb_backup_enabled":{"type":"TypeBool","computed":true},"rdb_backup_frequency":{"type":"TypeInt","computed":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","computed":true},"rdb_storage_connection_string":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_enterprise_database":{"schema":{"cluster_id":{"type":"TypeString","required":true},"linked_database_group_nickname":{"type":"TypeString","computed":true},"linked_database_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","computed":true},"managed_by":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_resource_group_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_resources":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true},"required_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"resources":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"permissions":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true},"scope":{"type":"TypeString","optional":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"communities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"rule_type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_route_table":{"schema":{"bgp_route_propagation_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop_in_ip_address":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_search_service":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_anomaly":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"mode":{"type":"TypeString","computed":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_template":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true},"nrt_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"scheduled_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"query_frequency":{"type":"TypeString","computed":true},"query_period":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","computed":true},"trigger_threshold":{"type":"TypeInt","computed":true}}}},"security_incident_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"product_filter":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"per_site_scaling_enabled":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","computed":true},"zone_balancing_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"partner_namespace_id":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","optional":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"support_ordering":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_shared_image":{"schema":{"architecture":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"eula":{"type":"TypeString","computed":true},"gallery_name":{"type":"TypeString","required":true},"hyper_v_generation":{"type":"TypeString","computed":true},"identifier":{"type":"TypeList","computed":true,"elem":{"schema":{"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"privacy_statement_uri":{"type":"TypeString","computed":true},"purchase_plan":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true}}}},"release_note_uri":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"specialized":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_shared_image_version":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_disk_image_size_gb":{"type":"TypeInt","computed":true},"os_disk_snapshot_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sort_versions_by_semver":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_shared_image_versions":{"schema":{"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"images":{"type":"TypeList","computed":true,"elem":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"hostname":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true},"recovery_fabric_name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","computed":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","computed":true},"primary_zone":{"type":"TypeString","computed":true},"recovery_edge_zone":{"type":"TypeString","computed":true},"recovery_zone":{"type":"TypeString","computed":true}}}},"failover_deployment_model":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_group":{"type":"TypeSet","computed":true,"elem":{"schema":{"post_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"pre_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"replicated_protected_items":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"recovery_vault_id":{"type":"TypeString","required":true},"source_recovery_fabric_id":{"type":"TypeString","computed":true},"target_recovery_fabric_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_snapshot":{"schema":{"creation_option":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","computed":true},"token_secret":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_spring_cloud_app":{"schema":{"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"is_public":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"persistent_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","computed":true},"size_in_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"tls_enabled":{"type":"TypeBool","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_spring_cloud_service":{"schema":{"config_server_git_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"repository":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"pattern":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","computed":true},"elastic_pool_name":{"type":"TypeString","computed":true},"failover_group_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"read_scale":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ssh_public_key":{"schema":{"name":{"type":"TypeString","required":true},"public_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","computed":true},"account_kind":{"type":"TypeString","computed":true},"account_replication_type":{"type":"TypeString","computed":true},"account_tier":{"type":"TypeString","computed":true},"allow_nested_items_to_be_public":{"type":"TypeBool","computed":true},"azure_files_authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"domain_sid":{"type":"TypeString","computed":true},"forest_name":{"type":"TypeString","computed":true},"netbios_domain_name":{"type":"TypeString","computed":true},"storage_sid":{"type":"TypeString","computed":true}}}},"directory_type":{"type":"TypeString","computed":true}}}},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"enable_https_traffic_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"is_hns_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"queue_encryption_key_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"table_encryption_key_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account_blob_container_sas":{"schema":{"cache_control":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_language":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_address":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_account_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_addresses":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"filter":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"process":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"tag":{"type":"TypeBool","required":true},"update":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"resource_types":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeBool","required":true},"object":{"type":"TypeBool","required":true},"service":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"services":{"type":"TypeList","required":true,"elem":{"schema":{"blob":{"type":"TypeBool","required":true},"file":{"type":"TypeBool","required":true},"queue":{"type":"TypeBool","required":true},"table":{"type":"TypeBool","required":true}}},"maxItems":1},"signed_version":{"type":"TypeString","optional":true,"default":"2017-07-29"},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","computed":true},"content_md5":{"type":"TypeString","computed":true},"content_type":{"type":"TypeString","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","computed":true},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_encryption_scope":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"schema":{"base_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true}}}},"snapshot":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}},"version":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}}}}},"enabled":{"type":"TypeBool","computed":true},"filters":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operation":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"prefix_match":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true}}}},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_share":{"schema":{"acl":{"type":"TypeList","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"expiry":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"start":{"type":"TypeString","computed":true}}}},"id":{"type":"TypeString","computed":true}}}},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"quota":{"type":"TypeInt","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true},"storage_sync_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true},"row_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","computed":true},"data_locale":{"type":"TypeString","computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_policy":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"job_id":{"type":"TypeString","computed":true},"last_output_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"output_error_policy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_mode":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true},"streaming_units":{"type":"TypeInt","computed":true},"transformation_query":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subnet":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"route_table_id":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_subscription":{"schema":{"display_name":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscription_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscriptions":{"schema":{"display_name_contains":{"type":"TypeString","optional":true},"display_name_prefix":{"type":"TypeString","optional":true},"subscriptions":{"type":"TypeList","computed":true,"elem":{"schema":{"display_name":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_synapse_workspace":{"schema":{"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_template_spec_version":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template_body":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_tenant_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_geographical_location":{"schema":{"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","computed":true,"elem":{"schema":{"relative_name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true}}}},"fqdn":{"type":"TypeString","computed":true},"monitor_config":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"expected_status_code_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"timeout_in_seconds":{"type":"TypeInt","computed":true},"tolerated_number_of_failures":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_status":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","computed":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"read":5}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"load_balancer_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_sessions_allowed":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"personal_desktop_assignment_type":{"type":"TypeString","computed":true},"preferred_app_group_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scheduled_agent_updates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"hour_of_day":{"type":"TypeInt","computed":true}}}},"timezone":{"type":"TypeString","computed":true},"use_session_host_timezone":{"type":"TypeBool","computed":true}}}},"start_vm_on_connect":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"validate_environment":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"default_route_table_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"remote_virtual_network_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"routing":{"type":"TypeList","computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","computed":true},"propagated_route_table":{"type":"TypeList","computed":true,"elem":{"schema":{"labels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"static_vnet_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"next_hop_ip_address":{"type":"TypeString","computed":true}}}}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"instances":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"instance_id":{"type":"TypeString","computed":true},"latest_model_applied":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnets":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","computed":true},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"peer_weight":{"type":"TypeInt","computed":true},"peering_address":{"type":"TypeString","computed":true}}}},"custom_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"default_local_network_gateway_id":{"type":"TypeString","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"generation":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"vpn_client_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","computed":true},"aad_issuer":{"type":"TypeString","computed":true},"aad_tenant":{"type":"TypeString","computed":true},"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","computed":true},"radius_server_secret":{"type":"TypeString","computed":true},"revoked_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"root_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"vpn_client_protocols":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"vpn_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"connection_protocol":{"type":"TypeString","computed":true},"dpd_timeout_seconds":{"type":"TypeInt","computed":true},"egress_bytes_transferred":{"type":"TypeInt","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"express_route_circuit_id":{"type":"TypeString","computed":true},"express_route_gateway_bypass":{"type":"TypeBool","computed":true},"ingress_bytes_transferred":{"type":"TypeInt","computed":true},"ipsec_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"dh_group":{"type":"TypeString","computed":true},"ike_encryption":{"type":"TypeString","computed":true},"ike_integrity":{"type":"TypeString","computed":true},"ipsec_encryption":{"type":"TypeString","computed":true},"ipsec_integrity":{"type":"TypeString","computed":true},"pfs_group":{"type":"TypeString","computed":true},"sa_datasize":{"type":"TypeInt","computed":true},"sa_lifetime":{"type":"TypeInt","computed":true}}}},"local_azure_ip_address_enabled":{"type":"TypeBool","computed":true},"local_network_gateway_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peer_virtual_network_gateway_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"routing_weight":{"type":"TypeInt","computed":true},"shared_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","computed":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","computed":true},"virtual_network_gateway_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","computed":true},"disable_vpn_encryption":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"office365_local_breakout_category":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vpn_site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"management_cluster":{"type":"TypeList","computed":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","computed":true}}}},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_subnet_cidr":{"type":"TypeString","computed":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_vpn_gateway":{"schema":{"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"instance_1_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"peer_weight":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_unit":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_application_firewall_policy":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_pubsub_private_link_resource":{"schema":{"shared_private_link_resource_types":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","computed":true}}}},"web_pubsub_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","computed":true},"docker_container_name":{"type":"TypeString","computed":true},"docker_container_registry":{"type":"TypeString","computed":true},"docker_container_tag":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_core_version":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_embedded_server_enabled":{"type":"TypeBool","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python":{"type":"TypeBool","computed":true},"python_version":{"type":"TypeString","computed":true},"tomcat_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"custom_action":{"type":"TypeList","computed":true,"elem":{"schema":{"executable":{"type":"TypeString","computed":true},"parameters":{"type":"TypeString","computed":true}}}},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","computed":true},"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"virtual_application":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"preload":{"type":"TypeBool","computed":true},"virtual_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"virtual_path":{"type":"TypeString","computed":true}}}},"virtual_path":{"type":"TypeString","computed":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}}}}} diff --git a/CHANGELOG.md b/CHANGELOG.md index 3931ea253d67..e06c06fcfb84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## 3.74.0 (Unreleased) +## 3.74.0 (September 21, 2023) NOTES: @@ -6,61 +6,61 @@ NOTES: FEATURES: -* **New Resource**: `azurerm_arc_resource_bridge_appliance` [GH-23108] -* **New Resource**: `azurerm_data_factory_dataset_azure_sql_table` [GH-23264] -* **New Resource**: `azurerm_function_app_connection` [GH-23127] +* **New Resource**: `azurerm_arc_resource_bridge_appliance` ([#23108](https://github.com/hashicorp/terraform-provider-azurerm/issues/23108)) +* **New Resource**: `azurerm_data_factory_dataset_azure_sql_table` ([#23264](https://github.com/hashicorp/terraform-provider-azurerm/issues/23264)) +* **New Resource**: `azurerm_function_app_connection` ([#23127](https://github.com/hashicorp/terraform-provider-azurerm/issues/23127)) ENHANCEMENTS: -* dependencies: updating to `v0.20230918.1115907` of `github.com/hashicorp/go-azure-sdk` [GH-23337] -* dependencies: downgrading to `v1.12.5` of `github.com/rickb777/date` [GH-23296] -* `mysql`: updating to use API Version `2022-01-01` [GH-23320] -* `azurerm_app_configuration` - support for the `replica` block [GH-22452] -* `azurerm_bot_channel_directline` - support for `user_upload_enabled`, `endpoint_parameters_enabled`, and `storage_enabled` [GH-23149] -* `azurerm_container_app` - support for scale rules [GH-23294] -* `azurerm_container_app_environment` - support for zone redundancy [GH-23313] -* `azurerm_container_group` - support for the `key_vault_user_identity_id` property for Customer Managed Keys [GH-23332] -* `azurerm_cosmosdb_account` - support for MongoDB connection strings [GH-23331] -* `azurerm_data_factory_dataset_delimited_text` - support for the `dynamic_file_system_enabled`, `dynamic_path_enabled`, and `dynamic_filename_enabled` properties [GH-23261] -* `azurerm_data_factory_dataset_parquet` - support for the `azure_blob_fs_location` block [GH-23261] -* `azurerm_monitor_diagnostic_setting` - validation to ensure either `category` or `category_group` are supplied in `enabled_log` and `log` blocks [GH-23308] -* `azurerm_network_interface` - support for the `auxiliary_mode` and `auxiliary_sku` properties [GH-22979] -* `azurerm_postgresql_flexible_server` - increased the maximum supported value for `storage_mb` [GH-23277] -* `azurerm_shared_image_version` - support for the `replicated_region_deletion_enabled` and `target_region.exclude_from_latest_enabled` properties [GH-23147] -* `azurerm_storage_account` - support for setting `domain_name` and `domain_guid` for `AADKERB` [GH-22833] -* `azurerm_storage_account_customer_managed_key` - support for cross-tenant customer-managed keys with the `federated_identity_client_id`, and `key_vault_uri` properties [GH-20356] -* `azurerm_web_application_firewall_policy` - support for the `rate_limit_duration`, `rate_limit_threshold`, `group_rate_limit_by`, and `request_body_inspect_limit_in_kb` properties [GH-23239] +* dependencies: updating to `v0.20230918.1115907` of `github.com/hashicorp/go-azure-sdk` ([#23337](https://github.com/hashicorp/terraform-provider-azurerm/issues/23337)) +* dependencies: downgrading to `v1.12.5` of `github.com/rickb777/date` ([#23296](https://github.com/hashicorp/terraform-provider-azurerm/issues/23296)) +* `mysql`: updating to use API Version `2022-01-01` ([#23320](https://github.com/hashicorp/terraform-provider-azurerm/issues/23320)) +* `azurerm_app_configuration` - support for the `replica` block ([#22452](https://github.com/hashicorp/terraform-provider-azurerm/issues/22452)) +* `azurerm_bot_channel_directline` - support for `user_upload_enabled`, `endpoint_parameters_enabled`, and `storage_enabled` ([#23149](https://github.com/hashicorp/terraform-provider-azurerm/issues/23149)) +* `azurerm_container_app` - support for scale rules ([#23294](https://github.com/hashicorp/terraform-provider-azurerm/issues/23294)) +* `azurerm_container_app_environment` - support for zone redundancy ([#23313](https://github.com/hashicorp/terraform-provider-azurerm/issues/23313)) +* `azurerm_container_group` - support for the `key_vault_user_identity_id` property for Customer Managed Keys ([#23332](https://github.com/hashicorp/terraform-provider-azurerm/issues/23332)) +* `azurerm_cosmosdb_account` - support for MongoDB connection strings ([#23331](https://github.com/hashicorp/terraform-provider-azurerm/issues/23331)) +* `azurerm_data_factory_dataset_delimited_text` - support for the `dynamic_file_system_enabled`, `dynamic_path_enabled`, and `dynamic_filename_enabled` properties ([#23261](https://github.com/hashicorp/terraform-provider-azurerm/issues/23261)) +* `azurerm_data_factory_dataset_parquet` - support for the `azure_blob_fs_location` block ([#23261](https://github.com/hashicorp/terraform-provider-azurerm/issues/23261)) +* `azurerm_monitor_diagnostic_setting` - validation to ensure either `category` or `category_group` are supplied in `enabled_log` and `log` blocks ([#23308](https://github.com/hashicorp/terraform-provider-azurerm/issues/23308)) +* `azurerm_network_interface` - support for the `auxiliary_mode` and `auxiliary_sku` properties ([#22979](https://github.com/hashicorp/terraform-provider-azurerm/issues/22979)) +* `azurerm_postgresql_flexible_server` - increased the maximum supported value for `storage_mb` ([#23277](https://github.com/hashicorp/terraform-provider-azurerm/issues/23277)) +* `azurerm_shared_image_version` - support for the `replicated_region_deletion_enabled` and `target_region.exclude_from_latest_enabled` properties ([#23147](https://github.com/hashicorp/terraform-provider-azurerm/issues/23147)) +* `azurerm_storage_account` - support for setting `domain_name` and `domain_guid` for `AADKERB` ([#22833](https://github.com/hashicorp/terraform-provider-azurerm/issues/22833)) +* `azurerm_storage_account_customer_managed_key` - support for cross-tenant customer-managed keys with the `federated_identity_client_id`, and `key_vault_uri` properties ([#20356](https://github.com/hashicorp/terraform-provider-azurerm/issues/20356)) +* `azurerm_web_application_firewall_policy` - support for the `rate_limit_duration`, `rate_limit_threshold`, `group_rate_limit_by`, and `request_body_inspect_limit_in_kb` properties ([#23239](https://github.com/hashicorp/terraform-provider-azurerm/issues/23239)) BUG FIXES: -* Data Source: `azurerm_container_app_environment`: fix `log_analytics_workspace_name` output to correct value [GH-23298] -* `azurerm_api_management_api` - set the `service_url` property when importing the resource [GH-23011] -* `azurerm_app_configuration` - prevent crash by nil checking the encryption configuration [GH-23302] -* `azurerm_app_configuration_feature` - update `percentage_filter_value` to accept correct type of float [GH-23263] -* `azurerm_container_app` - fix an issue with `commands` and `args` being overwritten when using multiple containers [GH-23338] -* `azurerm_key_vault_certificate` - fix issue where certificates couldn't be recovered anymore [GH-23204] -* `azurerm_key_vault_key` - the ForceNew when `expiration_date` is removed from the config file [GH-23327] -* `azurerm_linux_function_app` - fix a bug in setting the storage settings when using Elastic Premium plans [GH-21212] -* `azurerm_linux_web_app` - fix docker app stack update [GH-23303] -* `azurerm_linux_web_app` - fix crash in auto heal expansion [GH-21328] -* `azurerm_linux_web_app_slot` - fix docker app stack update [GH-23303] -* `azurerm_linux_web_app_slot` - fix crash in auto heal expansion [GH-21328] -* `azurerm_log_analytics_solution` - fix bug where the resource wasn't handling successful creation on subsequent applies [GH-23312] -* `azurerm_management_group_subscription_association` - fix bug to correctly mark resource as gone if not found during read [GH-23335] -* `azurerm_mssql_elasticpool` - remove check that prevents `license_type` from being set for certain skus [GH-23262] -* `azurerm_servicebus_queue` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] -* `azurerm_servicebus_topic` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` [GH-23296] -* `azurerm_storage_account` - prevent sending unsupported blob properties in payload for `Storage` account kind [GH-23288] -* `azurerm_synapse_sql_pool` - expose `storage_account_type` [GH-23217] -* `azurerm_windows_function_app` - fix a bug in setting the storage settings when using Elastic Premium plans [GH-21212] -* `azurerm_windows_web_app` - fix docker app stack update [GH-23303] -* `azurerm_windows_web_app_slot` - fix docker app stack update [GH-23303] +* Data Source: `azurerm_container_app_environment`: fix `log_analytics_workspace_name` output to correct value ([#23298](https://github.com/hashicorp/terraform-provider-azurerm/issues/23298)) +* `azurerm_api_management_api` - set the `service_url` property when importing the resource ([#23011](https://github.com/hashicorp/terraform-provider-azurerm/issues/23011)) +* `azurerm_app_configuration` - prevent crash by nil checking the encryption configuration ([#23302](https://github.com/hashicorp/terraform-provider-azurerm/issues/23302)) +* `azurerm_app_configuration_feature` - update `percentage_filter_value` to accept correct type of float ([#23263](https://github.com/hashicorp/terraform-provider-azurerm/issues/23263)) +* `azurerm_container_app` - fix an issue with `commands` and `args` being overwritten when using multiple containers ([#23338](https://github.com/hashicorp/terraform-provider-azurerm/issues/23338)) +* `azurerm_key_vault_certificate` - fix issue where certificates couldn't be recovered anymore ([#23204](https://github.com/hashicorp/terraform-provider-azurerm/issues/23204)) +* `azurerm_key_vault_key` - the ForceNew when `expiration_date` is removed from the config file ([#23327](https://github.com/hashicorp/terraform-provider-azurerm/issues/23327)) +* `azurerm_linux_function_app` - fix a bug in setting the storage settings when using Elastic Premium plans ([#21212](https://github.com/hashicorp/terraform-provider-azurerm/issues/21212)) +* `azurerm_linux_web_app` - fix docker app stack update ([#23303](https://github.com/hashicorp/terraform-provider-azurerm/issues/23303)) +* `azurerm_linux_web_app` - fix crash in auto heal expansion ([#21328](https://github.com/hashicorp/terraform-provider-azurerm/issues/21328)) +* `azurerm_linux_web_app_slot` - fix docker app stack update ([#23303](https://github.com/hashicorp/terraform-provider-azurerm/issues/23303)) +* `azurerm_linux_web_app_slot` - fix crash in auto heal expansion ([#21328](https://github.com/hashicorp/terraform-provider-azurerm/issues/21328)) +* `azurerm_log_analytics_solution` - fix bug where the resource wasn't handling successful creation on subsequent applies ([#23312](https://github.com/hashicorp/terraform-provider-azurerm/issues/23312)) +* `azurerm_management_group_subscription_association` - fix bug to correctly mark resource as gone if not found during read ([#23335](https://github.com/hashicorp/terraform-provider-azurerm/issues/23335)) +* `azurerm_mssql_elasticpool` - remove check that prevents `license_type` from being set for certain skus ([#23262](https://github.com/hashicorp/terraform-provider-azurerm/issues/23262)) +* `azurerm_servicebus_queue` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` ([#23296](https://github.com/hashicorp/terraform-provider-azurerm/issues/23296)) +* `azurerm_servicebus_topic` - fixing an issue where `auto_delete_on_idle` couldn't be set to `P10675199DT2H48M5.4775807S` ([#23296](https://github.com/hashicorp/terraform-provider-azurerm/issues/23296)) +* `azurerm_storage_account` - prevent sending unsupported blob properties in payload for `Storage` account kind ([#23288](https://github.com/hashicorp/terraform-provider-azurerm/issues/23288)) +* `azurerm_synapse_sql_pool` - expose `storage_account_type` ([#23217](https://github.com/hashicorp/terraform-provider-azurerm/issues/23217)) +* `azurerm_windows_function_app` - fix a bug in setting the storage settings when using Elastic Premium plans ([#21212](https://github.com/hashicorp/terraform-provider-azurerm/issues/21212)) +* `azurerm_windows_web_app` - fix docker app stack update ([#23303](https://github.com/hashicorp/terraform-provider-azurerm/issues/23303)) +* `azurerm_windows_web_app_slot` - fix docker app stack update ([#23303](https://github.com/hashicorp/terraform-provider-azurerm/issues/23303)) DEPRECATIONS: -* `azurerm_application_gateway` - deprecate `Standard` and `WAF` skus [GH-23310] -* `azurerm_bot_channel_web_chat` - deprecate `site_names` in favour of `site` block [GH-23161] -* `azurerm_monitor_diagnostic_setting` - deprecate `retention_policy` in favour of `azurerm_storage_management_policy` [GH-23260] +* `azurerm_application_gateway` - deprecate `Standard` and `WAF` skus ([#23310](https://github.com/hashicorp/terraform-provider-azurerm/issues/23310)) +* `azurerm_bot_channel_web_chat` - deprecate `site_names` in favour of `site` block ([#23161](https://github.com/hashicorp/terraform-provider-azurerm/issues/23161)) +* `azurerm_monitor_diagnostic_setting` - deprecate `retention_policy` in favour of `azurerm_storage_management_policy` ([#23260](https://github.com/hashicorp/terraform-provider-azurerm/issues/23260)) ## 3.73.0 (September 14, 2023) From 78db139da93377fd2f332b5625d460bf3ce8efc7 Mon Sep 17 00:00:00 2001 From: magodo Date: Fri, 22 Sep 2023 14:38:52 +0800 Subject: [PATCH 273/336] `azurerm_management_lock` - Add post-create/delete polling to tolerate RP propagation (#23345) * `azurerm_management_lock` - Add post-create/delete polling to tolerate RP propagation * Using ctx deadline --- .../resource/management_lock_resource.go | 51 ++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/internal/services/resource/management_lock_resource.go b/internal/services/resource/management_lock_resource.go index c083a0f08995..08ea57aa062f 100644 --- a/internal/services/resource/management_lock_resource.go +++ b/internal/services/resource/management_lock_resource.go @@ -4,6 +4,7 @@ package resource import ( + "context" "fmt" "time" @@ -32,7 +33,6 @@ func resourceManagementLock() *pluginsdk.Resource { Timeouts: &pluginsdk.ResourceTimeout{ Create: pluginsdk.DefaultTimeout(30 * time.Minute), Read: pluginsdk.DefaultTimeout(5 * time.Minute), - Update: pluginsdk.DefaultTimeout(30 * time.Minute), Delete: pluginsdk.DefaultTimeout(30 * time.Minute), }, @@ -100,6 +100,24 @@ func resourceManagementLockCreate(d *pluginsdk.ResourceData, meta interface{}) e return fmt.Errorf("creating %s: %+v", id, err) } + deadline, ok := ctx.Deadline() + if !ok { + return fmt.Errorf("internal-error: context was missing a deadline") + } + + stateConf := &pluginsdk.StateChangeConf{ + Target: []string{ + "OK", + }, + Refresh: managementLockStateRefreshFunc(ctx, client, id), + MinTimeout: 10 * time.Second, + ContinuousTargetOccurence: 12, + Timeout: time.Until(deadline), + } + if _, err := stateConf.WaitForStateContext(ctx); err != nil { + return fmt.Errorf("waiting for %s to finish create replication", id) + } + d.SetId(id.ID()) return resourceManagementLockRead(d, meta) } @@ -155,5 +173,36 @@ func resourceManagementLockDelete(d *pluginsdk.ResourceData, meta interface{}) e return fmt.Errorf("deleting %s: %+v", *id, err) } + deadline, ok := ctx.Deadline() + if !ok { + return fmt.Errorf("internal-error: context was missing a deadline") + } + + stateConf := &pluginsdk.StateChangeConf{ + Target: []string{ + "NotFound", + }, + Refresh: managementLockStateRefreshFunc(ctx, client, *id), + MinTimeout: 10 * time.Second, + ContinuousTargetOccurence: 12, + Timeout: time.Until(deadline), + } + if _, err := stateConf.WaitForStateContext(ctx); err != nil { + return fmt.Errorf("waiting for %s to finish delete replication", id) + } + return nil } + +func managementLockStateRefreshFunc(ctx context.Context, client *managementlocks.ManagementLocksClient, id managementlocks.ScopedLockId) pluginsdk.StateRefreshFunc { + return func() (interface{}, string, error) { + resp, err := client.GetByScope(ctx, id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return resp, "NotFound", nil + } + return nil, "Error", err + } + return "OK", "OK", nil + } +} From 8ff4825341e5aea51cbc62cfcee976d53f8d80df Mon Sep 17 00:00:00 2001 From: Xu Wu Date: Fri, 22 Sep 2023 14:39:08 +0800 Subject: [PATCH 274/336] add description for nat/network rules in firewall policy rule (#23354) --- ...ewall_policy_rule_collection_group_resource.go | 15 +++++++++++++++ ..._policy_rule_collection_group_resource_test.go | 3 +++ ...all_policy_rule_collection_group.html.markdown | 4 ++++ 3 files changed, 22 insertions(+) diff --git a/internal/services/firewall/firewall_policy_rule_collection_group_resource.go b/internal/services/firewall/firewall_policy_rule_collection_group_resource.go index 76028b155ae7..1c17b1d10915 100644 --- a/internal/services/firewall/firewall_policy_rule_collection_group_resource.go +++ b/internal/services/firewall/firewall_policy_rule_collection_group_resource.go @@ -9,6 +9,7 @@ import ( "strconv" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" @@ -236,6 +237,11 @@ func resourceFirewallPolicyRuleCollectionGroup() *pluginsdk.Resource { Required: true, ValidateFunc: validation.StringIsNotEmpty, }, + "description": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, "protocols": { Type: pluginsdk.TypeList, Required: true, @@ -349,6 +355,11 @@ func resourceFirewallPolicyRuleCollectionGroup() *pluginsdk.Resource { Required: true, ValidateFunc: validation.StringIsNotEmpty, }, + "description": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: validation.StringIsNotEmpty, + }, "protocols": { Type: pluginsdk.TypeList, Required: true, @@ -659,6 +670,7 @@ func expandFirewallPolicyRuleNetwork(input []interface{}) *[]network.BasicFirewa DestinationIPGroups: utils.ExpandStringSlice(condition["destination_ip_groups"].([]interface{})), DestinationFqdns: utils.ExpandStringSlice(condition["destination_fqdns"].([]interface{})), DestinationPorts: utils.ExpandStringSlice(condition["destination_ports"].([]interface{})), + Description: pointer.To(condition["description"].(string)), } result = append(result, output) } @@ -691,6 +703,7 @@ func expandFirewallPolicyRuleNat(input []interface{}) (*[]network.BasicFirewallP DestinationAddresses: &destinationAddresses, DestinationPorts: utils.ExpandStringSlice(condition["destination_ports"].([]interface{})), TranslatedPort: utils.String(strconv.Itoa(condition["translated_port"].(int))), + Description: pointer.To(condition["description"].(string)), } if condition["translated_address"].(string) != "" { output.TranslatedAddress = utils.String(condition["translated_address"].(string)) @@ -890,6 +903,7 @@ func flattenFirewallPolicyRuleNetwork(input *[]network.BasicFirewallPolicyRule) "destination_ip_groups": utils.FlattenStringSlice(rule.DestinationIPGroups), "destination_fqdns": utils.FlattenStringSlice(rule.DestinationFqdns), "destination_ports": utils.FlattenStringSlice(rule.DestinationPorts), + "description": pointer.From(rule.Description), }) } return output, nil @@ -951,6 +965,7 @@ func flattenFirewallPolicyRuleNat(input *[]network.BasicFirewallPolicyRule) ([]i "translated_address": translatedAddress, "translated_port": translatedPort, "translated_fqdn": translatedFQDN, + "description": pointer.From(rule.Description), }) } return output, nil diff --git a/internal/services/firewall/firewall_policy_rule_collection_group_resource_test.go b/internal/services/firewall/firewall_policy_rule_collection_group_resource_test.go index 7ee7b6b0e2a2..7378922b9651 100644 --- a/internal/services/firewall/firewall_policy_rule_collection_group_resource_test.go +++ b/internal/services/firewall/firewall_policy_rule_collection_group_resource_test.go @@ -259,6 +259,7 @@ resource "azurerm_firewall_policy_rule_collection_group" "test" { action = "Deny" rule { name = "network_rule_collection1_rule1" + description = "network_rule_collection1_rule1" protocols = ["TCP", "UDP"] source_addresses = ["10.0.0.1"] destination_addresses = ["192.168.1.1", "ApiManagement"] @@ -266,6 +267,7 @@ resource "azurerm_firewall_policy_rule_collection_group" "test" { } rule { name = "network_rule_collection1_rule2" + description = "network_rule_collection1_rule2" protocols = ["TCP", "UDP"] source_addresses = ["10.0.0.1"] destination_fqdns = ["time.windows.com"] @@ -292,6 +294,7 @@ resource "azurerm_firewall_policy_rule_collection_group" "test" { action = "Dnat" rule { name = "nat_rule_collection1_rule1" + description = "nat_rule_collection1_rule1" protocols = ["TCP", "UDP"] source_addresses = ["10.0.0.1", "10.0.0.2"] destination_address = "192.168.1.1" diff --git a/website/docs/r/firewall_policy_rule_collection_group.html.markdown b/website/docs/r/firewall_policy_rule_collection_group.html.markdown index 77e2bbcb50d3..b85200919d1a 100644 --- a/website/docs/r/firewall_policy_rule_collection_group.html.markdown +++ b/website/docs/r/firewall_policy_rule_collection_group.html.markdown @@ -163,6 +163,8 @@ A `network_rule` (network rule) block supports the following: * `name` - (Required) The name which should be used for this rule. +* `description` - (Optional) The description which should be used for this rule. + * `protocols` - (Required) Specifies a list of network protocols this rule applies to. Possible values are `Any`, `TCP`, `UDP`, `ICMP`. * `destination_ports` - (Required) Specifies a list of destination ports. @@ -183,6 +185,8 @@ A `nat_rule` (NAT rule) block supports the following: * `name` - (Required) The name which should be used for this rule. +* `description` - (Optional) The description which should be used for this rule. + * `protocols` - (Required) Specifies a list of network protocols this rule applies to. Possible values are `TCP`, `UDP`. * `source_addresses` - (Optional) Specifies a list of source IP addresses (including CIDR, IP range and `*`). From 085cc1ddad2016945048ddc842a8402b3d38426c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A1bio=20Santos?= Date: Fri, 22 Sep 2023 09:23:35 +0100 Subject: [PATCH 275/336] Add Support for Icon URL in azurerm_bot_service_azure_bot resource (#23114) * Add Support for Icon URL in azurerm_bot_service_azure_bot resource * Apply suggestions from code review Co-authored-by: Tom Harvey * Add icon_url attribute to documentation * update property description * Add icon_url attribute to acceptance test * Add default value to icon_url parameter Co-authored-by: stephybun * rebase and terrafmt * switch to pointer.From in read --------- Co-authored-by: Tom Harvey Co-authored-by: stephybun --- .../bot/bot_service_azure_bot_resource_test.go | 14 +++++++------- .../services/bot/bot_service_resource_base.go | 15 +++++++++++++++ .../docs/r/bot_service_azure_bot.html.markdown | 2 ++ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/internal/services/bot/bot_service_azure_bot_resource_test.go b/internal/services/bot/bot_service_azure_bot_resource_test.go index 3a03ed63003b..29f0553b2ba5 100644 --- a/internal/services/bot/bot_service_azure_bot_resource_test.go +++ b/internal/services/bot/bot_service_azure_bot_resource_test.go @@ -183,13 +183,13 @@ resource "azurerm_application_insights_api_key" "test" { } resource "azurerm_bot_service_azure_bot" "test" { - name = "acctestdf%[1]d" - resource_group_name = azurerm_resource_group.test.name - location = "global" - microsoft_app_id = data.azurerm_client_config.current.client_id - sku = "F0" - local_authentication_enabled = false - + name = "acctestdf%[1]d" + resource_group_name = azurerm_resource_group.test.name + location = "global" + microsoft_app_id = data.azurerm_client_config.current.client_id + sku = "F0" + local_authentication_enabled = false + icon_url = "https://registry.terraform.io/images/providers/azure.png" endpoint = "https://example.com" developer_app_insights_api_key = azurerm_application_insights_api_key.test.api_key developer_app_insights_application_id = azurerm_application_insights.test.app_id diff --git a/internal/services/bot/bot_service_resource_base.go b/internal/services/bot/bot_service_resource_base.go index b1bc2fdc890f..17b71bb744da 100644 --- a/internal/services/bot/bot_service_resource_base.go +++ b/internal/services/bot/bot_service_resource_base.go @@ -8,6 +8,7 @@ import ( "fmt" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" @@ -135,6 +136,13 @@ func (br botBaseResource) arguments(fields map[string]*pluginsdk.Schema) map[str Default: false, }, + "icon_url": { + Type: pluginsdk.TypeString, + Optional: true, + Default: "https://docs.botframework.com/static/devportal/client/images/bot-framework-default.png", + ValidateFunc: validation.StringIsNotEmpty, + }, + "tags": tags.Schema(), } @@ -190,6 +198,7 @@ func (br botBaseResource) createFunc(resourceName, botKind string) sdk.ResourceF LuisAppIds: utils.ExpandStringSlice(metadata.ResourceData.Get("luis_app_ids").([]interface{})), LuisKey: utils.String(metadata.ResourceData.Get("luis_key").(string)), IsStreamingSupported: utils.Bool(metadata.ResourceData.Get("streaming_endpoint_enabled").(bool)), + IconURL: utils.String(metadata.ResourceData.Get("icon_url").(string)), }, Tags: tags.Expand(metadata.ResourceData.Get("tags").(map[string]interface{})), } @@ -319,6 +328,8 @@ func (br botBaseResource) readFunc() sdk.ResourceFunc { streamingEndpointEnabled = *v } metadata.ResourceData.Set("streaming_endpoint_enabled", streamingEndpointEnabled) + + metadata.ResourceData.Set("icon_url", pointer.From(props.IconURL)) } return nil @@ -396,6 +407,10 @@ func (br botBaseResource) updateFunc() sdk.ResourceFunc { existing.Properties.IsStreamingSupported = utils.Bool(metadata.ResourceData.Get("streaming_endpoint_enabled").(bool)) } + if metadata.ResourceData.HasChange("icon_url") { + existing.Properties.IconURL = utils.String(metadata.ResourceData.Get("icon_url").(string)) + } + if _, err := client.Update(ctx, id.ResourceGroup, id.Name, existing); err != nil { return fmt.Errorf("updating %s: %+v", *id, err) } diff --git a/website/docs/r/bot_service_azure_bot.html.markdown b/website/docs/r/bot_service_azure_bot.html.markdown index a68870375dd1..9dec2b5c1251 100644 --- a/website/docs/r/bot_service_azure_bot.html.markdown +++ b/website/docs/r/bot_service_azure_bot.html.markdown @@ -74,6 +74,8 @@ The following arguments are supported: * `endpoint` - (Optional) The Azure Bot Service endpoint. +* `icon_url` - (Optional) The Icon Url of the Azure Bot Service. + * `microsoft_app_msi_id` - (Optional) The ID of the Microsoft App Managed Identity for this Azure Bot Service. Changing this forces a new resource to be created. * `microsoft_app_tenant_id` - (Optional) The Tenant ID of the Microsoft App for this Azure Bot Service. Changing this forces a new resource to be created. From 2d427661fb50684c814c0e73a86bbc5ee618f34a Mon Sep 17 00:00:00 2001 From: magodo Date: Mon, 25 Sep 2023 11:54:33 +0800 Subject: [PATCH 276/336] Fix 2 incorrect import specs (#23368) --- website/docs/r/arc_resource_bridge_appliance.html.markdown | 2 +- website/docs/r/function_app_connection.html.markdown | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/website/docs/r/arc_resource_bridge_appliance.html.markdown b/website/docs/r/arc_resource_bridge_appliance.html.markdown index fe3c3bee875c..3761f65049bd 100644 --- a/website/docs/r/arc_resource_bridge_appliance.html.markdown +++ b/website/docs/r/arc_resource_bridge_appliance.html.markdown @@ -82,5 +82,5 @@ The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/l Arc Resource Bridge Appliance can be imported using the `resource id`, e.g. ```shell -terraform import azurerm_arc_resource_bridge_appliance.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ResourceConnector/appliances/appliancesExample +terraform import azurerm_arc_resource_bridge_appliance.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ResourceConnector/appliances/appliancesExample ``` diff --git a/website/docs/r/function_app_connection.html.markdown b/website/docs/r/function_app_connection.html.markdown index dacab32be8b5..e2199aba61f2 100644 --- a/website/docs/r/function_app_connection.html.markdown +++ b/website/docs/r/function_app_connection.html.markdown @@ -83,7 +83,7 @@ resource "azurerm_function_app" "test" { } } -resource "azurerm_app_service_connection" "example" { +resource "azurerm_function_app_connection" "example" { name = "example-serviceconnector" function_app_id = azurerm_function_app.example.id target_resource_id = azurerm_cosmosdb_account.test.id @@ -159,5 +159,5 @@ The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/d Service Connector for app service can be imported using the `resource id`, e.g. ```shell -terraform import azurerm_app_service_connection.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Web/sites/webapp/providers/Microsoft.ServiceLinker/linkers/serviceconnector1 +terraform import azurerm_function_app_connection.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Web/sites/webapp/providers/Microsoft.ServiceLinker/linkers/serviceconnector1 ``` From 66ac616ef82938db4eb0f6132ff9ed444cb112a3 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Mon, 25 Sep 2023 07:48:14 +0200 Subject: [PATCH 277/336] r/private_endpoint: normalizing the value of a Kusto Cluster ID (#23357) Fixes #23356 --- internal/services/network/private_endpoint_resource.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/services/network/private_endpoint_resource.go b/internal/services/network/private_endpoint_resource.go index dd46f2a19d4e..5c8e541664f9 100644 --- a/internal/services/network/private_endpoint_resource.go +++ b/internal/services/network/private_endpoint_resource.go @@ -15,6 +15,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" + "github.com/hashicorp/go-azure-sdk/resource-manager/kusto/2023-05-02/clusters" mariadbServers "github.com/hashicorp/go-azure-sdk/resource-manager/mariadb/2018-06-01/servers" "github.com/hashicorp/go-azure-sdk/resource-manager/mysql/2017-12-01/servers" "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/privateendpoints" @@ -1166,6 +1167,11 @@ func normalizePrivateConnectionId(privateConnectionId string) string { privateConnectionId = serverId.ID() } } + if strings.Contains(strings.ToLower(privateConnectionId), "microsoft.kusto") { + if clusterId, err := clusters.ParseClusterIDInsensitively(privateConnectionId); err == nil { + privateConnectionId = clusterId.ID() + } + } if strings.Contains(strings.ToLower(privateConnectionId), "microsoft.signalrservice") { if serviceId, err := signalr.ParseSignalRIDInsensitively(privateConnectionId); err == nil { privateConnectionId = serviceId.ID() From 6f8b827b654f0145d7f9f39b57b8784abb2b5df5 Mon Sep 17 00:00:00 2001 From: Tao <104055472+teowa@users.noreply.github.com> Date: Mon, 25 Sep 2023 14:22:46 +0800 Subject: [PATCH 278/336] new resource `azurerm_resource_management_private_link` (#23098) * new resource azurerm_resource_management_private_link * fix review comment * fix doc * fix test --- internal/services/resource/client/client.go | 45 +++--- internal/services/resource/registration.go | 1 + ...source_management_private_link_resource.go | 147 ++++++++++++++++++ ...e_management_private_link_resource_test.go | 108 +++++++++++++ .../resourcemanagementprivatelink/README.md | 105 +++++++++++++ .../resourcemanagementprivatelink/client.go | 26 ++++ .../id_resourcemanagementprivatelink.go | 127 +++++++++++++++ .../method_delete.go | 47 ++++++ .../method_get.go | 51 ++++++ .../method_list.go | 53 +++++++ .../method_listbyresourcegroup.go | 53 +++++++ .../method_put.go | 56 +++++++ .../model_resourcemanagementprivatelink.go | 12 ++ ...anagementprivatelinkendpointconnections.go | 8 + ...resourcemanagementprivatelinklistresult.go | 8 + ...l_resourcemanagementprivatelinklocation.go | 8 + .../resourcemanagementprivatelink/version.go | 12 ++ vendor/modules.txt | 1 + ...urce_management_private_link.html.markdown | 59 +++++++ 19 files changed, 909 insertions(+), 18 deletions(-) create mode 100644 internal/services/resource/resource_management_private_link_resource.go create mode 100644 internal/services/resource/resource_management_private_link_resource_test.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/README.md create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/id_resourcemanagementprivatelink.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_delete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_get.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_list.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_listbyresourcegroup.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_put.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelink.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelinkendpointconnections.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelinklistresult.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelinklocation.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/version.go create mode 100644 website/docs/r/resource_management_private_link.html.markdown diff --git a/internal/services/resource/client/client.go b/internal/services/resource/client/client.go index 3f2b72c924ce..149b2c55076d 100644 --- a/internal/services/resource/client/client.go +++ b/internal/services/resource/client/client.go @@ -9,6 +9,7 @@ import ( "github.com/Azure/azure-sdk-for-go/services/preview/resources/mgmt/2019-06-01-preview/templatespecs" // nolint: staticcheck "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2020-06-01/resources" // nolint: staticcheck "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/managementlocks" + "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink" "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-10-01/deploymentscripts" "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features" "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2022-09-01/providers" @@ -16,15 +17,16 @@ import ( ) type Client struct { - DeploymentsClient *resources.DeploymentsClient - DeploymentScriptsClient *deploymentscripts.DeploymentScriptsClient - FeaturesClient *features.FeaturesClient - GroupsClient *resources.GroupsClient - LocksClient *managementlocks.ManagementLocksClient - ResourceProvidersClient *providers.ProvidersClient - ResourcesClient *resources.Client - TagsClient *resources.TagsClient - TemplateSpecsVersionsClient *templatespecs.VersionsClient + DeploymentsClient *resources.DeploymentsClient + DeploymentScriptsClient *deploymentscripts.DeploymentScriptsClient + FeaturesClient *features.FeaturesClient + GroupsClient *resources.GroupsClient + LocksClient *managementlocks.ManagementLocksClient + ResourceManagementPrivateLinkClient *resourcemanagementprivatelink.ResourceManagementPrivateLinkClient + ResourceProvidersClient *providers.ProvidersClient + ResourcesClient *resources.Client + TagsClient *resources.TagsClient + TemplateSpecsVersionsClient *templatespecs.VersionsClient options *common.ClientOptions } @@ -54,6 +56,12 @@ func NewClient(o *common.ClientOptions) (*Client, error) { } o.Configure(locksClient.Client, o.Authorizers.ResourceManager) + resourceManagementPrivateLinkClient, err := resourcemanagementprivatelink.NewResourceManagementPrivateLinkClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building ResourceManagementPrivateLink client: %+v", err) + } + o.Configure(resourceManagementPrivateLinkClient.Client, o.Authorizers.ResourceManager) + resourceProvidersClient, err := providers.NewProvidersClientWithBaseURI(o.Environment.ResourceManager) if err != nil { return nil, fmt.Errorf("building Providers client: %+v", err) @@ -70,15 +78,16 @@ func NewClient(o *common.ClientOptions) (*Client, error) { o.ConfigureClient(&tagsClient.Client, o.ResourceManagerAuthorizer) return &Client{ - GroupsClient: &groupsClient, - DeploymentsClient: &deploymentsClient, - DeploymentScriptsClient: deploymentScriptsClient, - FeaturesClient: featuresClient, - LocksClient: locksClient, - ResourceProvidersClient: resourceProvidersClient, - ResourcesClient: &resourcesClient, - TagsClient: &tagsClient, - TemplateSpecsVersionsClient: &templatespecsVersionsClient, + GroupsClient: &groupsClient, + DeploymentsClient: &deploymentsClient, + DeploymentScriptsClient: deploymentScriptsClient, + FeaturesClient: featuresClient, + LocksClient: locksClient, + ResourceManagementPrivateLinkClient: resourceManagementPrivateLinkClient, + ResourceProvidersClient: resourceProvidersClient, + ResourcesClient: &resourcesClient, + TagsClient: &tagsClient, + TemplateSpecsVersionsClient: &templatespecsVersionsClient, options: o, }, nil diff --git a/internal/services/resource/registration.go b/internal/services/resource/registration.go index ca79a6e48852..aaec2742104c 100644 --- a/internal/services/resource/registration.go +++ b/internal/services/resource/registration.go @@ -64,6 +64,7 @@ func (r Registration) DataSources() []sdk.DataSource { func (r Registration) Resources() []sdk.Resource { return []sdk.Resource{ ResourceProviderRegistrationResource{}, + ResourceManagementPrivateLinkResource{}, ResourceDeploymentScriptAzurePowerShellResource{}, ResourceDeploymentScriptAzureCliResource{}, } diff --git a/internal/services/resource/resource_management_private_link_resource.go b/internal/services/resource/resource_management_private_link_resource.go new file mode 100644 index 000000000000..c7a47454d5f4 --- /dev/null +++ b/internal/services/resource/resource_management_private_link_resource.go @@ -0,0 +1,147 @@ +package resource + +import ( + "context" + "fmt" + "time" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" +) + +var _ sdk.Resource = ResourceManagementPrivateLinkResource{} + +type ResourceManagementPrivateLinkResource struct{} + +func (r ResourceManagementPrivateLinkResource) ModelObject() interface{} { + return &ResourceManagementPrivateLinkResourceSchema{} +} + +type ResourceManagementPrivateLinkResourceSchema struct { + Location string `tfschema:"location"` + Name string `tfschema:"name"` + ResourceGroupName string `tfschema:"resource_group_name"` +} + +func (r ResourceManagementPrivateLinkResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return resourcemanagementprivatelink.ValidateResourceManagementPrivateLinkID +} + +func (r ResourceManagementPrivateLinkResource) ResourceType() string { + return "azurerm_resource_management_private_link" +} + +func (r ResourceManagementPrivateLinkResource) Arguments() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{ + "name": { + ForceNew: true, + Required: true, + Type: pluginsdk.TypeString, + ValidateFunc: validation.StringIsNotEmpty, + }, + "resource_group_name": commonschema.ResourceGroupName(), + "location": commonschema.Location(), + } +} + +func (r ResourceManagementPrivateLinkResource) Attributes() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{} +} + +func (r ResourceManagementPrivateLinkResource) Create() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.Resource.ResourceManagementPrivateLinkClient + + var config ResourceManagementPrivateLinkResourceSchema + if err := metadata.Decode(&config); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + subscriptionId := metadata.Client.Account.SubscriptionId + + id := resourcemanagementprivatelink.NewResourceManagementPrivateLinkID(subscriptionId, config.ResourceGroupName, config.Name) + + existing, err := client.Get(ctx, id) + if err != nil { + if !response.WasNotFound(existing.HttpResponse) { + return fmt.Errorf("checking for the presence of an existing %s: %+v", id, err) + } + } + if !response.WasNotFound(existing.HttpResponse) { + return metadata.ResourceRequiresImport(r.ResourceType(), id) + } + + payload := resourcemanagementprivatelink.ResourceManagementPrivateLinkLocation{ + Location: pointer.To(location.Normalize(config.Location)), + } + + if _, err := client.Put(ctx, id, payload); err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + + metadata.SetID(id) + return nil + }, + } +} + +func (r ResourceManagementPrivateLinkResource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 5 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.Resource.ResourceManagementPrivateLinkClient + + id, err := resourcemanagementprivatelink.ParseResourceManagementPrivateLinkID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + resp, err := client.Get(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return metadata.MarkAsGone(*id) + } + return fmt.Errorf("retrieving %s: %+v", *id, err) + } + + schema := ResourceManagementPrivateLinkResourceSchema{ + Name: id.ResourceManagementPrivateLinkName, + ResourceGroupName: id.ResourceGroupName, + } + + if model := resp.Model; model != nil { + schema.Location = location.NormalizeNilable(model.Location) + } + + return metadata.Encode(&schema) + }, + } +} + +func (r ResourceManagementPrivateLinkResource) Delete() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.Resource.ResourceManagementPrivateLinkClient + + id, err := resourcemanagementprivatelink.ParseResourceManagementPrivateLinkID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + if _, err := client.Delete(ctx, *id); err != nil { + return fmt.Errorf("deleting %s: %+v", *id, err) + } + + return nil + }, + } +} diff --git a/internal/services/resource/resource_management_private_link_resource_test.go b/internal/services/resource/resource_management_private_link_resource_test.go new file mode 100644 index 000000000000..9caee9ff066d --- /dev/null +++ b/internal/services/resource/resource_management_private_link_resource_test.go @@ -0,0 +1,108 @@ +package resource_test + +import ( + "context" + "fmt" + "testing" + + "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/utils" +) + +type ResourceManagementPrivateLinkTestResource struct{} + +func TestAccResourceManagementPrivateLink_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_resource_management_private_link", "test") + r := ResourceManagementPrivateLinkTestResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccResourceManagementPrivateLink_requiresImport(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_resource_management_private_link", "test") + r := ResourceManagementPrivateLinkTestResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.RequiresImportErrorStep(r.requiresImport), + }) +} + +func (r ResourceManagementPrivateLinkTestResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { + id, err := resourcemanagementprivatelink.ParseResourceManagementPrivateLinkID(state.ID) + if err != nil { + return nil, err + } + + resp, err := clients.Resource.ResourceManagementPrivateLinkClient.Get(ctx, *id) + if err != nil { + return nil, fmt.Errorf("reading %s: %+v", *id, err) + } + + return utils.Bool(resp.Model != nil), nil +} + +func (r ResourceManagementPrivateLinkTestResource) basic(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +%s + +resource "azurerm_resource_management_private_link" "test" { + location = azurerm_resource_group.test.location + name = "acctestrmpl-${var.random_string}" + resource_group_name = azurerm_resource_group.test.name +} +`, r.template(data)) +} + +func (r ResourceManagementPrivateLinkTestResource) requiresImport(data acceptance.TestData) string { + return fmt.Sprintf(` + +%s + +resource "azurerm_resource_management_private_link" "import" { + location = azurerm_resource_management_private_link.test.location + name = azurerm_resource_management_private_link.test.name + resource_group_name = azurerm_resource_management_private_link.test.resource_group_name +} +`, r.basic(data)) +} + +func (r ResourceManagementPrivateLinkTestResource) template(data acceptance.TestData) string { + return fmt.Sprintf(` +variable "primary_location" { + default = %q +} +variable "random_integer" { + default = %d +} +variable "random_string" { + default = %q +} + +resource "azurerm_resource_group" "test" { + name = "acctestrg-${var.random_integer}" + location = var.primary_location +} +`, data.Locations.Primary, data.RandomInteger, data.RandomString) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/README.md new file mode 100644 index 000000000000..bf06000f7aa5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/README.md @@ -0,0 +1,105 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink` Documentation + +The `resourcemanagementprivatelink` SDK allows for interaction with the Azure Resource Manager Service `resources` (API Version `2020-05-01`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink" +``` + + +### Client Initialization + +```go +client := resourcemanagementprivatelink.NewResourceManagementPrivateLinkClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `ResourceManagementPrivateLinkClient.Delete` + +```go +ctx := context.TODO() +id := resourcemanagementprivatelink.NewResourceManagementPrivateLinkID("12345678-1234-9876-4563-123456789012", "example-resource-group", "resourceManagementPrivateLinkValue") + +read, err := client.Delete(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `ResourceManagementPrivateLinkClient.Get` + +```go +ctx := context.TODO() +id := resourcemanagementprivatelink.NewResourceManagementPrivateLinkID("12345678-1234-9876-4563-123456789012", "example-resource-group", "resourceManagementPrivateLinkValue") + +read, err := client.Get(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `ResourceManagementPrivateLinkClient.List` + +```go +ctx := context.TODO() +id := resourcemanagementprivatelink.NewSubscriptionID("12345678-1234-9876-4563-123456789012") + +read, err := client.List(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `ResourceManagementPrivateLinkClient.ListByResourceGroup` + +```go +ctx := context.TODO() +id := resourcemanagementprivatelink.NewResourceGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group") + +read, err := client.ListByResourceGroup(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `ResourceManagementPrivateLinkClient.Put` + +```go +ctx := context.TODO() +id := resourcemanagementprivatelink.NewResourceManagementPrivateLinkID("12345678-1234-9876-4563-123456789012", "example-resource-group", "resourceManagementPrivateLinkValue") + +payload := resourcemanagementprivatelink.ResourceManagementPrivateLinkLocation{ + // ... +} + + +read, err := client.Put(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/client.go new file mode 100644 index 000000000000..de7671f91dd5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/client.go @@ -0,0 +1,26 @@ +package resourcemanagementprivatelink + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ResourceManagementPrivateLinkClient struct { + Client *resourcemanager.Client +} + +func NewResourceManagementPrivateLinkClientWithBaseURI(sdkApi sdkEnv.Api) (*ResourceManagementPrivateLinkClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "resourcemanagementprivatelink", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating ResourceManagementPrivateLinkClient: %+v", err) + } + + return &ResourceManagementPrivateLinkClient{ + Client: client, + }, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/id_resourcemanagementprivatelink.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/id_resourcemanagementprivatelink.go new file mode 100644 index 000000000000..c02c6039a451 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/id_resourcemanagementprivatelink.go @@ -0,0 +1,127 @@ +package resourcemanagementprivatelink + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ResourceManagementPrivateLinkId{} + +// ResourceManagementPrivateLinkId is a struct representing the Resource ID for a Resource Management Private Link +type ResourceManagementPrivateLinkId struct { + SubscriptionId string + ResourceGroupName string + ResourceManagementPrivateLinkName string +} + +// NewResourceManagementPrivateLinkID returns a new ResourceManagementPrivateLinkId struct +func NewResourceManagementPrivateLinkID(subscriptionId string, resourceGroupName string, resourceManagementPrivateLinkName string) ResourceManagementPrivateLinkId { + return ResourceManagementPrivateLinkId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + ResourceManagementPrivateLinkName: resourceManagementPrivateLinkName, + } +} + +// ParseResourceManagementPrivateLinkID parses 'input' into a ResourceManagementPrivateLinkId +func ParseResourceManagementPrivateLinkID(input string) (*ResourceManagementPrivateLinkId, error) { + parser := resourceids.NewParserFromResourceIdType(ResourceManagementPrivateLinkId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ResourceManagementPrivateLinkId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ResourceManagementPrivateLinkName, ok = parsed.Parsed["resourceManagementPrivateLinkName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceManagementPrivateLinkName", *parsed) + } + + return &id, nil +} + +// ParseResourceManagementPrivateLinkIDInsensitively parses 'input' case-insensitively into a ResourceManagementPrivateLinkId +// note: this method should only be used for API response data and not user input +func ParseResourceManagementPrivateLinkIDInsensitively(input string) (*ResourceManagementPrivateLinkId, error) { + parser := resourceids.NewParserFromResourceIdType(ResourceManagementPrivateLinkId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ResourceManagementPrivateLinkId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.ResourceManagementPrivateLinkName, ok = parsed.Parsed["resourceManagementPrivateLinkName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceManagementPrivateLinkName", *parsed) + } + + return &id, nil +} + +// ValidateResourceManagementPrivateLinkID checks that 'input' can be parsed as a Resource Management Private Link ID +func ValidateResourceManagementPrivateLinkID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseResourceManagementPrivateLinkID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Resource Management Private Link ID +func (id ResourceManagementPrivateLinkId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Authorization/resourceManagementPrivateLinks/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.ResourceManagementPrivateLinkName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Resource Management Private Link ID +func (id ResourceManagementPrivateLinkId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAuthorization", "Microsoft.Authorization", "Microsoft.Authorization"), + resourceids.StaticSegment("staticResourceManagementPrivateLinks", "resourceManagementPrivateLinks", "resourceManagementPrivateLinks"), + resourceids.UserSpecifiedSegment("resourceManagementPrivateLinkName", "resourceManagementPrivateLinkValue"), + } +} + +// String returns a human-readable description of this Resource Management Private Link ID +func (id ResourceManagementPrivateLinkId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Resource Management Private Link Name: %q", id.ResourceManagementPrivateLinkName), + } + return fmt.Sprintf("Resource Management Private Link (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_delete.go new file mode 100644 index 000000000000..76165c51e7ba --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_delete.go @@ -0,0 +1,47 @@ +package resourcemanagementprivatelink + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c ResourceManagementPrivateLinkClient) Delete(ctx context.Context, id ResourceManagementPrivateLinkId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_get.go new file mode 100644 index 000000000000..ad6d192a7b12 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_get.go @@ -0,0 +1,51 @@ +package resourcemanagementprivatelink + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ResourceManagementPrivateLink +} + +// Get ... +func (c ResourceManagementPrivateLinkClient) Get(ctx context.Context, id ResourceManagementPrivateLinkId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_list.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_list.go new file mode 100644 index 000000000000..49e07b6e02be --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_list.go @@ -0,0 +1,53 @@ +package resourcemanagementprivatelink + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ResourceManagementPrivateLinkListResult +} + +// List ... +func (c ResourceManagementPrivateLinkClient) List(ctx context.Context, id commonids.SubscriptionId) (result ListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.Authorization/resourceManagementPrivateLinks", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_listbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_listbyresourcegroup.go new file mode 100644 index 000000000000..0cd1bc7ee96e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_listbyresourcegroup.go @@ -0,0 +1,53 @@ +package resourcemanagementprivatelink + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByResourceGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ResourceManagementPrivateLinkListResult +} + +// ListByResourceGroup ... +func (c ResourceManagementPrivateLinkClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.Authorization/resourceManagementPrivateLinks", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_put.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_put.go new file mode 100644 index 000000000000..3c1239d2acf1 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/method_put.go @@ -0,0 +1,56 @@ +package resourcemanagementprivatelink + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PutOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ResourceManagementPrivateLink +} + +// Put ... +func (c ResourceManagementPrivateLinkClient) Put(ctx context.Context, id ResourceManagementPrivateLinkId, input ResourceManagementPrivateLinkLocation) (result PutOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelink.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelink.go new file mode 100644 index 000000000000..4d6fae849129 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelink.go @@ -0,0 +1,12 @@ +package resourcemanagementprivatelink + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ResourceManagementPrivateLink struct { + Id *string `json:"id,omitempty"` + Location *string `json:"location,omitempty"` + Name *string `json:"name,omitempty"` + Properties *ResourceManagementPrivateLinkEndpointConnections `json:"properties,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelinkendpointconnections.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelinkendpointconnections.go new file mode 100644 index 000000000000..dcc9f39f7efd --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelinkendpointconnections.go @@ -0,0 +1,8 @@ +package resourcemanagementprivatelink + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ResourceManagementPrivateLinkEndpointConnections struct { + PrivateEndpointConnections *[]string `json:"privateEndpointConnections,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelinklistresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelinklistresult.go new file mode 100644 index 000000000000..35b96202b68f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelinklistresult.go @@ -0,0 +1,8 @@ +package resourcemanagementprivatelink + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ResourceManagementPrivateLinkListResult struct { + Value *[]ResourceManagementPrivateLink `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelinklocation.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelinklocation.go new file mode 100644 index 000000000000..c2b90fa1753f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/model_resourcemanagementprivatelinklocation.go @@ -0,0 +1,8 @@ +package resourcemanagementprivatelink + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ResourceManagementPrivateLinkLocation struct { + Location *string `json:"location,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/version.go new file mode 100644 index 000000000000..127e1df827f5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink/version.go @@ -0,0 +1,12 @@ +package resourcemanagementprivatelink + +import "fmt" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +const defaultApiVersion = "2020-05-01" + +func userAgent() string { + return fmt.Sprintf("hashicorp/go-azure-sdk/resourcemanagementprivatelink/%s", defaultApiVersion) +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 3fe6386befd6..1fdbdb0b4220 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -835,6 +835,7 @@ github.com/hashicorp/go-azure-sdk/resource-manager/relay/2021-11-01/hybridconnec github.com/hashicorp/go-azure-sdk/resource-manager/relay/2021-11-01/namespaces github.com/hashicorp/go-azure-sdk/resource-manager/resourceconnector/2022-10-27/appliances github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/managementlocks +github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-05-01/resourcemanagementprivatelink github.com/hashicorp/go-azure-sdk/resource-manager/resources/2020-10-01/deploymentscripts github.com/hashicorp/go-azure-sdk/resource-manager/resources/2021-07-01/features github.com/hashicorp/go-azure-sdk/resource-manager/resources/2022-06-01/policyassignments diff --git a/website/docs/r/resource_management_private_link.html.markdown b/website/docs/r/resource_management_private_link.html.markdown new file mode 100644 index 000000000000..dbab7462857f --- /dev/null +++ b/website/docs/r/resource_management_private_link.html.markdown @@ -0,0 +1,59 @@ +--- +subcategory: "Management" +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_resource_management_private_link" +description: |- + Manages a Resource Management Private Link to restrict access for managing resources in the tenant. +--- + +# azurerm_resource_management_private_link + +Manages a Resource Management Private Link to restrict access for managing resources in the tenant. + +## Example Usage + +```hcl +resource "azurerm_resource_group" "example" { + name = "example-resources" + location = "West Europe" +} +resource "azurerm_resource_management_private_link" "example" { + name = "example" + resource_group_name = azurerm_resource_group.example.name + location = azurerm_resource_group.example.location +} +``` + +## Arguments Reference + +The following arguments are supported: + +* `name` - (Required) Specifies the name of this Resource Management Private Link. Changing this forces a new Resource Management Private Link to be created. + +* `resource_group_name` - (Required) Specifies the name of the Resource Group within which this Resource Management Private Link should exist. Changing this forces a new Resource Management Private Link to be created. + +* `location` - (Required) The Azure Region where the Resource Management Private Link should exist. Changing this forces a new Resource Management Private Link to be created. + +## Attributes Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the Resource Management Private Link. + +--- + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/docs/configuration/resources.html#timeouts) for certain actions: + +* `create` - (Defaults to 30 minutes) Used when creating this Resource Management Private Link. +* `delete` - (Defaults to 30 minutes) Used when deleting this Resource Management Private Link. +* `read` - (Defaults to 5 minutes) Used when retrieving this Resource Management Private Link. + +## Import + +An existing Resource Management Private Link can be imported into Terraform using the `resource id`, e.g. + +```shell +terraform import azurerm_resource_management_private_link.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Authorization/resourceManagementPrivateLinks/link1 +``` From 9eac8dc36a3adbfe8a6b88d67bdc1c105425f475 Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Mon, 25 Sep 2023 15:35:16 +0800 Subject: [PATCH 279/336] `azurerm_log_analytics_workspace`: support `data_collection_rule_id` (#23347) * add `default_data_collection_rule_id` Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> * add doc Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> * update per comments Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> * update per comments Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> * update per comments Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --------- Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --- .../log_analytics_workspace_resource.go | 24 ++++ .../log_analytics_workspace_resource_test.go | 104 ++++++++++++++++++ .../r/log_analytics_workspace.html.markdown | 2 + 3 files changed, 130 insertions(+) diff --git a/internal/services/loganalytics/log_analytics_workspace_resource.go b/internal/services/loganalytics/log_analytics_workspace_resource.go index fea1bf511ce9..2b9befbe9b24 100644 --- a/internal/services/loganalytics/log_analytics_workspace_resource.go +++ b/internal/services/loganalytics/log_analytics_workspace_resource.go @@ -14,6 +14,7 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/go-azure-sdk/resource-manager/insights/2022-06-01/datacollectionrules" sharedKeyWorkspaces "github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces" "github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2022-10-01/workspaces" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" @@ -144,6 +145,12 @@ func resourceLogAnalyticsWorkspace() *pluginsdk.Resource { ValidateFunc: validation.FloatAtLeast(-1.0), }, + "data_collection_rule_id": { + Type: pluginsdk.TypeString, + Optional: true, + ValidateFunc: datacollectionrules.ValidateDataCollectionRuleID, + }, + "workspace_id": { Type: pluginsdk.TypeString, Computed: true, @@ -311,6 +318,12 @@ func resourceLogAnalyticsWorkspaceCreateUpdate(d *pluginsdk.ResourceData, meta i return err } + // `data_collection_rule_id` also needs an additional update. + // error message: Default dcr is not applicable on workspace creation, please provide it on update. + if v, ok := d.GetOk("data_collection_rule_id"); ok { + parameters.Properties.DefaultDataCollectionRuleResourceId = pointer.To(v.(string)) + } + // `allow_resource_only_permissions` needs an additional update, tacked on https://github.com/Azure/azure-rest-api-specs/issues/21591 err = client.CreateOrUpdateThenPoll(ctx, id, parameters) if err != nil { @@ -438,6 +451,17 @@ func resourceLogAnalyticsWorkspaceRead(d *pluginsdk.ResourceData, meta interface d.Set("allow_resource_only_permissions", allowResourceOnlyPermissions) d.Set("local_authentication_disabled", disableLocalAuth) + defaultDataCollectionRuleResourceId := "" + if props.DefaultDataCollectionRuleResourceId != nil { + dataCollectionId, err := datacollectionrules.ParseDataCollectionRuleID(*props.DefaultDataCollectionRuleResourceId) + if err != nil { + return err + } + + defaultDataCollectionRuleResourceId = dataCollectionId.ID() + } + d.Set("data_collection_rule_id", defaultDataCollectionRuleResourceId) + sharedKeyId := sharedKeyWorkspaces.WorkspaceId{ SubscriptionId: id.SubscriptionId, ResourceGroupName: id.ResourceGroupName, diff --git a/internal/services/loganalytics/log_analytics_workspace_resource_test.go b/internal/services/loganalytics/log_analytics_workspace_resource_test.go index d78fba1708ce..3f8a95df7a7c 100644 --- a/internal/services/loganalytics/log_analytics_workspace_resource_test.go +++ b/internal/services/loganalytics/log_analytics_workspace_resource_test.go @@ -8,6 +8,7 @@ import ( "fmt" "testing" + "github.com/hashicorp/go-azure-sdk/resource-manager/insights/2022-06-01/datacollectionrules" "github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" @@ -354,6 +355,30 @@ func TestAccLogAnalyticsWorkspace_updateSku(t *testing.T) { }) } +func TestAccLogAnalyticsWorkspace_withDefaultDataCollectionRule(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_log_analytics_workspace", "test") + r := LogAnalyticsWorkspaceResource{} + + // the default data collection rule could only be set during update, + // and to avoid the dependency cycle, we do an additional update here. + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.withDataCollectionRule(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.withDefaultDataCollectionRule(data, datacollectionrules.NewDataCollectionRuleID(data.Subscriptions.Primary, fmt.Sprintf("acctestRG-%d", data.RandomInteger), fmt.Sprintf("acctestmdcr-%d", data.RandomInteger)).ID()), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func (t LogAnalyticsWorkspaceResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := workspaces.ParseWorkspaceID(state.ID) if err != nil { @@ -716,3 +741,82 @@ resource "azurerm_log_analytics_workspace" "test" { } `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, disableLocalAuth) } + +func (LogAnalyticsWorkspaceResource) withDataCollectionRule(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[1]d" + location = "%s" +} + +resource "azurerm_monitor_data_collection_rule" "test" { + name = "acctestmdcr-%[1]d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + + destinations { + log_analytics { + workspace_resource_id = azurerm_log_analytics_workspace.test.id + name = "test-destination" + } + } + + data_flow { + streams = ["Microsoft-InsightsMetrics"] + destinations = ["test-destination"] + } +} + +resource "azurerm_log_analytics_workspace" "test" { + name = "acctestLAW-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + sku = "PerGB2018" + retention_in_days = 30 +} +`, data.RandomInteger, data.Locations.Primary) +} + +func (LogAnalyticsWorkspaceResource) withDefaultDataCollectionRule(data acceptance.TestData, ruleID string) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[1]d" + location = "%s" +} + +resource "azurerm_monitor_data_collection_rule" "test" { + name = "acctestmdcr-%[1]d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + + destinations { + log_analytics { + workspace_resource_id = azurerm_log_analytics_workspace.test.id + name = "test-destination" + } + } + + data_flow { + streams = ["Microsoft-InsightsMetrics"] + destinations = ["test-destination"] + } +} + +resource "azurerm_log_analytics_workspace" "test" { + name = "acctestLAW-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + sku = "PerGB2018" + retention_in_days = 30 + data_collection_rule_id = "%[3]s" +} +`, data.RandomInteger, data.Locations.Primary, ruleID) +} diff --git a/website/docs/r/log_analytics_workspace.html.markdown b/website/docs/r/log_analytics_workspace.html.markdown index 332f1b7b2e55..c645fc859ff6 100644 --- a/website/docs/r/log_analytics_workspace.html.markdown +++ b/website/docs/r/log_analytics_workspace.html.markdown @@ -65,6 +65,8 @@ The following arguments are supported: ~> **NOTE:** `reservation_capacity_in_gb_per_day` can only be used when the `sku` is set to `CapacityReservation`. +* `data_collection_rule_id` - (Optional) The ID of the Data Collection Rule to use for this workspace. + * `tags` - (Optional) A mapping of tags to assign to the resource. ~> **NOTE:** If a `azurerm_log_analytics_workspace` is connected to a `azurerm_log_analytics_cluster` via a `azurerm_log_analytics_linked_service` you will not be able to modify the workspaces `sku` field until the link between the workspace and the cluster has been broken by deleting the `azurerm_log_analytics_linked_service` resource. All other fields are modifiable while the workspace is linked to a cluster. From 48cd7502e9dc60011e8d6edaff26d5aee0ee2bc9 Mon Sep 17 00:00:00 2001 From: James Townsend Date: Mon, 25 Sep 2023 09:26:46 +0100 Subject: [PATCH 280/336] Docs: Clarify meaning of `external_enabled = true` for azurerm_container_app ingress (#23360) * Clarify what external ingress means for aca * New wording for external_enabled Co-authored-by: jackofallops <11830746+jackofallops@users.noreply.github.com> --------- Co-authored-by: jackofallops <11830746+jackofallops@users.noreply.github.com> --- website/docs/r/container_app.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/r/container_app.html.markdown b/website/docs/r/container_app.html.markdown index 5394f1f43521..3065081947be 100644 --- a/website/docs/r/container_app.html.markdown +++ b/website/docs/r/container_app.html.markdown @@ -335,7 +335,7 @@ An `ingress` block supports the following: * `fqdn` - The FQDN of the ingress. -* `external_enabled` - (Optional) Is this an external Ingress. +* `external_enabled` - (Optional) Are connections to this Ingress from outside the Container App Environment enabled? Defaults to `false`. * `target_port` - (Required) The target port on the container for the Ingress traffic. From b7a495e54bb5767b78a45292f16539f933f0dd3d Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Mon, 25 Sep 2023 15:33:48 +0100 Subject: [PATCH 281/336] `paloalto` - Fix rulestack commit on delete for sub resources (#23362) --- .../local_rulestack_fqdn_list_resource.go | 5 ++++ .../local_rulestack_prefix_list_resource.go | 7 ++++- .../local_rulestack_rule_resource_test.go | 28 +++++++++---------- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/internal/services/paloalto/local_rulestack_fqdn_list_resource.go b/internal/services/paloalto/local_rulestack_fqdn_list_resource.go index cef39cf868c1..7271ffb6bc5e 100644 --- a/internal/services/paloalto/local_rulestack_fqdn_list_resource.go +++ b/internal/services/paloalto/local_rulestack_fqdn_list_resource.go @@ -187,6 +187,7 @@ func (r LocalRulestackFQDNList) Delete() sdk.ResourceFunc { Timeout: 30 * time.Minute, Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { client := metadata.Client.PaloAlto.Client.FqdnListLocalRulestack + rulestackClient := metadata.Client.PaloAlto.Client.LocalRulestacks id, err := fqdnlistlocalrulestack.ParseLocalRulestackFqdnListID(metadata.ResourceData.Id()) if err != nil { @@ -201,6 +202,10 @@ func (r LocalRulestackFQDNList) Delete() sdk.ResourceFunc { return fmt.Errorf("deleting %s: %+v", *id, err) } + if err = rulestackClient.CommitThenPoll(ctx, rulestackId); err != nil { + return fmt.Errorf("committing Local Rulestack config for %s: %+v", id, err) + } + return nil }, } diff --git a/internal/services/paloalto/local_rulestack_prefix_list_resource.go b/internal/services/paloalto/local_rulestack_prefix_list_resource.go index b6addb6106d4..f41014b57c61 100644 --- a/internal/services/paloalto/local_rulestack_prefix_list_resource.go +++ b/internal/services/paloalto/local_rulestack_prefix_list_resource.go @@ -186,6 +186,7 @@ func (r LocalRuleStackPrefixList) Delete() sdk.ResourceFunc { Timeout: 30 * time.Minute, Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { client := metadata.Client.PaloAlto.Client.PrefixListLocalRulestack + rulestackClient := metadata.Client.PaloAlto.Client.LocalRulestacks id, err := prefixlistlocalrulestack.ParseLocalRulestackPrefixListID(metadata.ResourceData.Id()) if err != nil { @@ -196,10 +197,14 @@ func (r LocalRuleStackPrefixList) Delete() sdk.ResourceFunc { locks.ByID(rulestackId.ID()) defer locks.UnlockByID(rulestackId.ID()) - if _, err = client.Delete(ctx, *id); err != nil { + if err = client.DeleteThenPoll(ctx, *id); err != nil { return fmt.Errorf("deleting %s: %+v", *id, err) } + if err = rulestackClient.CommitThenPoll(ctx, rulestackId); err != nil { + return fmt.Errorf("committing Local Rulestack config for %s: %+v", id, err) + } + return nil }, } diff --git a/internal/services/paloalto/local_rulestack_rule_resource_test.go b/internal/services/paloalto/local_rulestack_rule_resource_test.go index b0ea626b84c5..a5fd3ba6c1a0 100644 --- a/internal/services/paloalto/local_rulestack_rule_resource_test.go +++ b/internal/services/paloalto/local_rulestack_rule_resource_test.go @@ -228,20 +228,6 @@ provider "azurerm" { %[1]s -resource "azurerm_palo_alto_local_rulestack_fqdn_list" "test" { - name = "testacc-pafqdn-%[2]d" - rulestack_id = azurerm_palo_alto_local_rulestack.test.id - - fully_qualified_domain_names = ["contoso.com", "test.example.com", "anothertest.example.com"] -} - -resource "azurerm_palo_alto_local_rulestack_prefix_list" "test" { - name = "testacc-palr-%[2]d" - rulestack_id = azurerm_palo_alto_local_rulestack.test.id - - prefix_list = ["10.0.0.0/8", "172.16.0.0/16"] -} - resource "azurerm_palo_alto_local_rulestack_rule" "test" { name = "testacc-palr-%[2]d" rulestack_id = azurerm_palo_alto_local_rulestack.test.id @@ -529,6 +515,20 @@ resource "azurerm_palo_alto_local_rulestack_certificate" "test" { self_signed = true } +resource "azurerm_palo_alto_local_rulestack_fqdn_list" "test" { + name = "testacc-pafqdn-%[1]d" + rulestack_id = azurerm_palo_alto_local_rulestack.test.id + + fully_qualified_domain_names = ["contoso.com", "test.example.com", "anothertest.example.com"] +} + +resource "azurerm_palo_alto_local_rulestack_prefix_list" "test" { + name = "testacc-palr-%[1]d" + rulestack_id = azurerm_palo_alto_local_rulestack.test.id + + prefix_list = ["10.0.0.0/8", "172.16.0.0/16"] +} + data "azurerm_client_config" "current" {} resource "azurerm_key_vault" "test" { From 9b327e44dee8ba951ad574ee724d5fc5813e50df Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Mon, 25 Sep 2023 15:35:28 +0100 Subject: [PATCH 282/336] Update CHANGELOG.md for #23362 --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e06c06fcfb84..175ea67a7649 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## 3.75.0 (Unreleased) + +BUG FIXES: + +* `azurerm_palo_alto_local_rulestack_prefix_list` - fix rulestack not being committed on delete [GH-23362] +* `azurerm_palo_alto_local_rulestack_fqdn_list` - fix rulestack not being committed on delete [GH-23362] + + ## 3.74.0 (September 21, 2023) NOTES: From 4b018f80b6969cea7ddb70114528bf4708c0ae9e Mon Sep 17 00:00:00 2001 From: Elena Xin <39109137+sinbai@users.noreply.github.com> Date: Tue, 26 Sep 2023 06:15:43 +0800 Subject: [PATCH 283/336] `azurerm_api_management_api` : fix importing `openapi` format content file issue (#23348) --- .../api_management_api_resource.go | 3 +- .../api_management_api_resource_test.go | 44 +++++++++++++++++++ .../testdata/api_management_api_openapi.yaml | 33 ++++++++++++++ 3 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 internal/services/apimanagement/testdata/api_management_api_openapi.yaml diff --git a/internal/services/apimanagement/api_management_api_resource.go b/internal/services/apimanagement/api_management_api_resource.go index 695211d6d6aa..0f6590f91293 100644 --- a/internal/services/apimanagement/api_management_api_resource.go +++ b/internal/services/apimanagement/api_management_api_resource.go @@ -441,10 +441,9 @@ func resourceApiManagementApiCreateUpdate(d *pluginsdk.ResourceData, meta interf if versionSetId != "" { apiParams.Properties.ApiVersionSetId = pointer.To(versionSetId) } - if err := client.CreateOrUpdateThenPoll(ctx, id, apiParams, api.CreateOrUpdateOperationOptions{}); err != nil { + if err := client.CreateOrUpdateThenPoll(ctx, newId, apiParams, api.CreateOrUpdateOperationOptions{}); err != nil { return fmt.Errorf("creating/updating %s: %+v", id, err) } - } description := d.Get("description").(string) diff --git a/internal/services/apimanagement/api_management_api_resource_test.go b/internal/services/apimanagement/api_management_api_resource_test.go index 9074c07e7cae..b3ebf236be3f 100644 --- a/internal/services/apimanagement/api_management_api_resource_test.go +++ b/internal/services/apimanagement/api_management_api_resource_test.go @@ -247,6 +247,29 @@ func TestAccApiManagementApi_importSwagger(t *testing.T) { }) } +func TestAccApiManagementApi_importOpenapi(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_api_management_api", "test") + r := ApiManagementApiResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.importOpenapi(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + ResourceName: data.ResourceName, + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{ + // not returned from the API + "import", + }, + }, + }) +} + func TestAccApiManagementApi_importSwaggerWithServiceUrl(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_api_management_api", "test") r := ApiManagementApiResource{} @@ -644,6 +667,27 @@ resource "azurerm_api_management_api" "test" { `, r.template(data, SkuNameConsumption), data.RandomInteger) } +func (r ApiManagementApiResource) importOpenapi(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_api_management_api" "test" { + name = "acctestapi-%d" + resource_group_name = azurerm_resource_group.test.name + api_management_name = azurerm_api_management.test.name + display_name = "api1" + path = "api1" + protocols = ["https"] + revision = "current" + + import { + content_value = file("testdata/api_management_api_openapi.yaml") + content_format = "openapi" + } +} +`, r.template(data, SkuNameConsumption), data.RandomInteger) +} + func (r ApiManagementApiResource) importSwaggerWithServiceUrl(data acceptance.TestData) string { return fmt.Sprintf(` %s diff --git a/internal/services/apimanagement/testdata/api_management_api_openapi.yaml b/internal/services/apimanagement/testdata/api_management_api_openapi.yaml new file mode 100644 index 000000000000..b51291b7ebf5 --- /dev/null +++ b/internal/services/apimanagement/testdata/api_management_api_openapi.yaml @@ -0,0 +1,33 @@ +openapi: 3.0.0 +info: + title: api1 + description: api + version: 1.0.0 +servers: + - url: "https://terraform.com/test/v1/api1" + description: test +paths: + /default: + post: + operationId: default + summary: Default + description: Default operation + responses: + "200": + description: Accepted + content: + application/json: + schema: + $ref: "#/components/schemas/response" +components: + schemas: + response: + type: object + properties: + status: + type: string + example: success + securitySchemes: + basicAuth: + type: http + scheme: basic \ No newline at end of file From cab74f0995015489f2cce0d42e1bb47dc5296e5e Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Mon, 25 Sep 2023 15:16:07 -0700 Subject: [PATCH 284/336] Update CHANGELOG.md for #23348 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 175ea67a7649..db4ae53b7762 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ BUG FIXES: +* `azurerm_api_management_api` : fix importing `openapi` format content file issue [GH-23348] * `azurerm_palo_alto_local_rulestack_prefix_list` - fix rulestack not being committed on delete [GH-23362] * `azurerm_palo_alto_local_rulestack_fqdn_list` - fix rulestack not being committed on delete [GH-23362] From 306859d62822bb0acdc2fb5f69fa0aef7cb8b473 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Mon, 25 Sep 2023 22:45:48 -0700 Subject: [PATCH 285/336] dependencies: migrate `firewall` to `hashicorp/go-azure-sdk` (#22863) * Swap various azurerm_firewal_x resources to hashicorp/go-azure-sdk * move azurerm_firewall_policy to hashicorp/go-azure-sdk * move azurerm_firewall_policy_rule_collection_group to hashicorp/go-azure-sdk * Hardcode Dnat for sdk inconsistencies * Only set identity when type is not None * Add deadline for disappears test * move check for existing virtual hub * Add deadline to test --- internal/clients/client.go | 4 +- internal/services/firewall/client/client.go | 31 +- ...ll_application_rule_collection_resource.go | 134 +++--- ...plication_rule_collection_resource_test.go | 34 +- .../services/firewall/firewall_data_source.go | 92 ++-- .../firewall_nat_rule_collection_resource.go | 129 +++--- ...ewall_nat_rule_collection_resource_test.go | 34 +- ...rewall_network_rule_collection_resource.go | 122 ++--- ...l_network_rule_collection_resource_test.go | 54 ++- .../firewall/firewall_policy_data_source.go | 74 +-- .../firewall/firewall_policy_resource.go | 427 ++++++++---------- .../firewall/firewall_policy_resource_test.go | 8 +- ...l_policy_rule_collection_group_resource.go | 258 +++++------ ...icy_rule_collection_group_resource_test.go | 8 +- .../services/firewall/firewall_resource.go | 413 ++++++++--------- .../firewall/firewall_resource_test.go | 17 +- internal/services/firewall/parse/firewall.go | 72 --- .../firewall/parse/firewall_policy.go | 72 --- .../firewall_policy_rule_collection_group.go | 78 ---- ...ewall_policy_rule_collection_group_test.go | 131 ------ .../firewall/parse/firewall_policy_test.go | 115 ----- .../services/firewall/parse/firewall_test.go | 115 ----- internal/services/firewall/resourceids.go | 3 - internal/services/firewall/subresource.go | 8 +- .../services/firewall/validate/firewall_id.go | 26 -- .../firewall/validate/firewall_id_test.go | 79 ---- .../firewall/validate/firewall_policy_id.go | 26 -- .../validate/firewall_policy_id_test.go | 79 ---- ...irewall_policy_rule_collection_group_id.go | 26 -- ...ll_policy_rule_collection_group_id_test.go | 91 ---- .../services/network/ip_group_resource.go | 27 +- 31 files changed, 943 insertions(+), 1844 deletions(-) delete mode 100644 internal/services/firewall/parse/firewall.go delete mode 100644 internal/services/firewall/parse/firewall_policy.go delete mode 100644 internal/services/firewall/parse/firewall_policy_rule_collection_group.go delete mode 100644 internal/services/firewall/parse/firewall_policy_rule_collection_group_test.go delete mode 100644 internal/services/firewall/parse/firewall_policy_test.go delete mode 100644 internal/services/firewall/parse/firewall_test.go delete mode 100644 internal/services/firewall/validate/firewall_id.go delete mode 100644 internal/services/firewall/validate/firewall_id_test.go delete mode 100644 internal/services/firewall/validate/firewall_policy_id.go delete mode 100644 internal/services/firewall/validate/firewall_policy_id_test.go delete mode 100644 internal/services/firewall/validate/firewall_policy_rule_collection_group_id.go delete mode 100644 internal/services/firewall/validate/firewall_policy_rule_collection_group_id_test.go diff --git a/internal/clients/client.go b/internal/clients/client.go index f02c68a88aa4..e7c500c475dd 100644 --- a/internal/clients/client.go +++ b/internal/clients/client.go @@ -425,7 +425,9 @@ func (client *Client) Build(ctx context.Context, o *common.ClientOptions) error if client.Eventhub, err = eventhub.NewClient(o); err != nil { return fmt.Errorf("building clients for Eventhub: %+v", err) } - client.Firewall = firewall.NewClient(o) + if client.Firewall, err = firewall.NewClient(o); err != nil { + return fmt.Errorf("building clients for Firewall: %+v", err) + } if client.FluidRelay, err = fluidrelay.NewClient(o); err != nil { return fmt.Errorf("building clients for FluidRelay: %+v", err) } diff --git a/internal/services/firewall/client/client.go b/internal/services/firewall/client/client.go index 27a16cf219b9..466fac3aca05 100644 --- a/internal/services/firewall/client/client.go +++ b/internal/services/firewall/client/client.go @@ -4,29 +4,26 @@ package client import ( + "fmt" + + network_2023_04_01 "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" "github.com/hashicorp/terraform-provider-azurerm/internal/common" - "github.com/tombuildsstuff/kermit/sdk/network/2022-07-01/network" ) type Client struct { - AzureFirewallsClient *network.AzureFirewallsClient - FirewallPolicyClient *network.FirewallPoliciesClient - FirewallPolicyRuleGroupClient *network.FirewallPolicyRuleCollectionGroupsClient + *network_2023_04_01.Client } -func NewClient(o *common.ClientOptions) *Client { - firewallsClient := network.NewAzureFirewallsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId) - o.ConfigureClient(&firewallsClient.Client, o.ResourceManagerAuthorizer) - - policyClient := network.NewFirewallPoliciesClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId) - o.ConfigureClient(&policyClient.Client, o.ResourceManagerAuthorizer) - - policyRuleGroupClient := network.NewFirewallPolicyRuleCollectionGroupsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId) - o.ConfigureClient(&policyRuleGroupClient.Client, o.ResourceManagerAuthorizer) +func NewClient(o *common.ClientOptions) (*Client, error) { + client, err := network_2023_04_01.NewClientWithBaseURI(o.Environment.ResourceManager, func(c *resourcemanager.Client) { + o.Configure(c, o.Authorizers.ResourceManager) + }) + if err != nil { + return nil, fmt.Errorf("building clients for Network: %+v", err) + } return &Client{ - AzureFirewallsClient: &firewallsClient, - FirewallPolicyClient: &policyClient, - FirewallPolicyRuleGroupClient: &policyRuleGroupClient, - } + Client: client, + }, nil } diff --git a/internal/services/firewall/firewall_application_rule_collection_resource.go b/internal/services/firewall/firewall_application_rule_collection_resource.go index 4614a42c7735..aefdad79faa5 100644 --- a/internal/services/firewall/firewall_application_rule_collection_resource.go +++ b/internal/services/firewall/firewall_application_rule_collection_resource.go @@ -8,7 +8,10 @@ import ( "log" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/azurefirewalls" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/helpers/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" @@ -19,7 +22,6 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" "github.com/hashicorp/terraform-provider-azurerm/utils" - "github.com/tombuildsstuff/kermit/sdk/network/2022-07-01/network" ) func resourceFirewallApplicationRuleCollection() *pluginsdk.Resource { @@ -67,8 +69,8 @@ func resourceFirewallApplicationRuleCollection() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ValidateFunc: validation.StringInSlice([]string{ - string(network.AzureFirewallRCActionTypeAllow), - string(network.AzureFirewallRCActionTypeDeny), + string(azurefirewalls.AzureFirewallRCActionTypeAllow), + string(azurefirewalls.AzureFirewallRCActionTypeDeny), }, false), }, @@ -117,9 +119,9 @@ func resourceFirewallApplicationRuleCollection() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ValidateFunc: validation.StringInSlice([]string{ - string(network.AzureFirewallApplicationRuleProtocolTypeHTTP), - string(network.AzureFirewallApplicationRuleProtocolTypeHTTPS), - string(network.AzureFirewallApplicationRuleProtocolTypeMssql), + string(azurefirewalls.AzureFirewallApplicationRuleProtocolTypeHTTP), + string(azurefirewalls.AzureFirewallApplicationRuleProtocolTypeHTTPS), + string(azurefirewalls.AzureFirewallApplicationRuleProtocolTypeMssql), }, false), }, "port": { @@ -138,7 +140,8 @@ func resourceFirewallApplicationRuleCollection() *pluginsdk.Resource { } func resourceFirewallApplicationRuleCollectionCreateUpdate(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.AzureFirewallsClient + client := meta.(*clients.Client).Firewall.Client.AzureFirewalls + subscriptionId := meta.(*clients.Client).Account.SubscriptionId ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -153,29 +156,35 @@ func resourceFirewallApplicationRuleCollectionCreateUpdate(d *pluginsdk.Resource locks.ByName(firewallName, AzureFirewallResourceName) defer locks.UnlockByName(firewallName, AzureFirewallResourceName) - firewall, err := client.Get(ctx, resourceGroup, firewallName) + firewallId := azurefirewalls.NewAzureFirewallID(subscriptionId, resourceGroup, firewallName) + + firewall, err := client.Get(ctx, firewallId) if err != nil { return fmt.Errorf("retrieving Firewall %q (Resource Group %q): %+v", firewallName, resourceGroup, err) } - if firewall.AzureFirewallPropertiesFormat == nil { - return fmt.Errorf("retrieving Application Rule Collections (Firewall %q / Resource Group %q): `properties` was nil", firewallName, resourceGroup) + if firewall.Model == nil { + return fmt.Errorf("retrieving %s: `model` was nil", firewallId) + } + + if firewall.Model.Properties == nil { + return fmt.Errorf("retrieving %s: `props` was nil", firewallId) } - props := *firewall.AzureFirewallPropertiesFormat + props := *firewall.Model.Properties if props.ApplicationRuleCollections == nil { - return fmt.Errorf("retrieving Application Rule Collections (Firewall %q / Resource Group %q): `properties.ApplicationRuleCollections` was nil", firewallName, resourceGroup) + return fmt.Errorf("retrieving %s: `props.ApplicationRuleCollections` was nil", firewallId) } ruleCollections := *props.ApplicationRuleCollections priority := d.Get("priority").(int) - newRuleCollection := network.AzureFirewallApplicationRuleCollection{ + newRuleCollection := azurefirewalls.AzureFirewallApplicationRuleCollection{ Name: utils.String(name), - AzureFirewallApplicationRuleCollectionPropertiesFormat: &network.AzureFirewallApplicationRuleCollectionPropertiesFormat{ - Action: &network.AzureFirewallRCAction{ - Type: network.AzureFirewallRCActionType(d.Get("action").(string)), + Properties: &azurefirewalls.AzureFirewallApplicationRuleCollectionPropertiesFormat{ + Action: &azurefirewalls.AzureFirewallRCAction{ + Type: pointer.To(azurefirewalls.AzureFirewallRCActionType(d.Get("action").(string))), }, - Priority: utils.Int32(int32(priority)), + Priority: utils.Int64(int64(priority)), Rules: applicationRules, }, } @@ -183,13 +192,13 @@ func resourceFirewallApplicationRuleCollectionCreateUpdate(d *pluginsdk.Resource index := -1 var id string for i, v := range ruleCollections { - if v.Name == nil || v.ID == nil { + if v.Name == nil || v.Id == nil { continue } if *v.Name == name { index = i - id = *v.ID + id = *v.Id break } } @@ -208,24 +217,24 @@ func resourceFirewallApplicationRuleCollectionCreateUpdate(d *pluginsdk.Resource ruleCollections = append(ruleCollections, newRuleCollection) } - firewall.AzureFirewallPropertiesFormat.ApplicationRuleCollections = &ruleCollections + firewall.Model.Properties.ApplicationRuleCollections = &ruleCollections - future, err := client.CreateOrUpdate(ctx, resourceGroup, firewallName, firewall) - if err != nil { - return fmt.Errorf("creating/updating Application Rule Collection %q in Firewall %q (Resource Group %q): %+v", name, firewallName, resourceGroup, err) + if err = client.CreateOrUpdateThenPoll(ctx, firewallId, *firewall.Model); err != nil { + return fmt.Errorf("creating/updating Application Rule Collection %q in %s: %+v", name, firewallId, err) } - if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for creation/update of Application Rule Collection %q of Firewall %q (Resource Group %q): %+v", name, firewallName, resourceGroup, err) - } - - read, err := client.Get(ctx, resourceGroup, firewallName) + read, err := client.Get(ctx, firewallId) if err != nil { return fmt.Errorf("retrieving Firewall %q (Resource Group %q): %+v", firewallName, resourceGroup, err) } + if read.Model == nil { + return fmt.Errorf("retrieving %s: `model` was nil", firewallId) + + } + var collectionID string - if props := read.AzureFirewallPropertiesFormat; props != nil { + if props := read.Model.Properties; props != nil { if collections := props.ApplicationRuleCollections; collections != nil { for _, collection := range *collections { if collection.Name == nil { @@ -233,7 +242,7 @@ func resourceFirewallApplicationRuleCollectionCreateUpdate(d *pluginsdk.Resource } if *collection.Name == name { - collectionID = *collection.ID + collectionID = *collection.Id break } } @@ -249,7 +258,7 @@ func resourceFirewallApplicationRuleCollectionCreateUpdate(d *pluginsdk.Resource } func resourceFirewallApplicationRuleCollectionRead(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.AzureFirewallsClient + client := meta.(*clients.Client).Firewall.AzureFirewalls ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -258,26 +267,32 @@ func resourceFirewallApplicationRuleCollectionRead(d *pluginsdk.ResourceData, me return err } - read, err := client.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + firewallId := azurefirewalls.NewAzureFirewallID(id.SubscriptionId, id.ResourceGroup, id.AzureFirewallName) + + read, err := client.Get(ctx, firewallId) if err != nil { - if utils.ResponseWasNotFound(read.Response) { + if response.WasNotFound(read.HttpResponse) { log.Printf("[DEBUG] Azure Firewall %q (Resource Group %q) was not found - removing from state!", id.ApplicationRuleCollectionName, id.ResourceGroup) d.SetId("") return nil } - return fmt.Errorf("retrieving Azure Firewall %q (Resource Group %q): %+v", id.ApplicationRuleCollectionName, id.ResourceGroup, err) + return fmt.Errorf("retrieving %s: %+v", id, err) + } + + if read.Model == nil { + return fmt.Errorf("retrieving Application Rule Collection %q (Firewall %q / Resource Group %q): `model` was nil", id.ApplicationRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - if read.AzureFirewallPropertiesFormat == nil { + if read.Model.Properties == nil { return fmt.Errorf("retrieving Application Rule Collection %q (Firewall %q / Resource Group %q): `props` was nil", id.ApplicationRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - props := *read.AzureFirewallPropertiesFormat + props := *read.Model.Properties if props.ApplicationRuleCollections == nil { return fmt.Errorf("retrieving Application Rule Collection %q (Firewall %q / Resource Group %q): `props.ApplicationRuleCollections` was nil", id.ApplicationRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - var rule *network.AzureFirewallApplicationRuleCollection + var rule *azurefirewalls.AzureFirewallApplicationRuleCollection for _, r := range *props.ApplicationRuleCollections { if r.Name == nil { continue @@ -299,9 +314,9 @@ func resourceFirewallApplicationRuleCollectionRead(d *pluginsdk.ResourceData, me d.Set("azure_firewall_name", id.AzureFirewallName) d.Set("resource_group_name", id.ResourceGroup) - if props := rule.AzureFirewallApplicationRuleCollectionPropertiesFormat; props != nil { + if props := rule.Properties; props != nil { if action := props.Action; action != nil { - d.Set("action", string(action.Type)) + d.Set("action", string(pointer.From(action.Type))) } if priority := props.Priority; priority != nil { @@ -318,7 +333,7 @@ func resourceFirewallApplicationRuleCollectionRead(d *pluginsdk.ResourceData, me } func resourceFirewallApplicationRuleCollectionDelete(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.AzureFirewallsClient + client := meta.(*clients.Client).Firewall.Client.AzureFirewalls ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() @@ -330,9 +345,11 @@ func resourceFirewallApplicationRuleCollectionDelete(d *pluginsdk.ResourceData, locks.ByName(id.AzureFirewallName, AzureFirewallResourceName) defer locks.UnlockByName(id.AzureFirewallName, AzureFirewallResourceName) - firewall, err := client.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + firewallId := azurefirewalls.NewAzureFirewallID(id.SubscriptionId, id.ResourceGroup, id.AzureFirewallName) + + firewall, err := client.Get(ctx, firewallId) if err != nil { - if utils.ResponseWasNotFound(firewall.Response) { + if response.WasNotFound(firewall.HttpResponse) { // assume deleted return nil } @@ -340,7 +357,11 @@ func resourceFirewallApplicationRuleCollectionDelete(d *pluginsdk.ResourceData, return fmt.Errorf("making Read request on Azure Firewall %s : %+v", *id, err) } - props := firewall.AzureFirewallPropertiesFormat + if firewall.Model == nil { + return fmt.Errorf("retrieving Application Rule Collection %q (Firewall %q / Resource Group %q): `model` was nil", id.ApplicationRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) + } + + props := firewall.Model.Properties if props == nil { return fmt.Errorf("retrieving Application Rule Collection %q (Firewall %q / Resource Group %q): `props` was nil", id.ApplicationRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } @@ -348,7 +369,7 @@ func resourceFirewallApplicationRuleCollectionDelete(d *pluginsdk.ResourceData, return fmt.Errorf("retrieving Application Rule Collection %q (Firewall %q / Resource Group %q): `props.ApplicationRuleCollections` was nil", id.ApplicationRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - applicationRules := make([]network.AzureFirewallApplicationRuleCollection, 0) + applicationRules := make([]azurefirewalls.AzureFirewallApplicationRuleCollection, 0) for _, rule := range *props.ApplicationRuleCollections { if rule.Name == nil { continue @@ -360,20 +381,15 @@ func resourceFirewallApplicationRuleCollectionDelete(d *pluginsdk.ResourceData, } props.ApplicationRuleCollections = &applicationRules - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.AzureFirewallName, firewall) - if err != nil { + if err := client.CreateOrUpdateThenPoll(ctx, firewallId, *firewall.Model); err != nil { return fmt.Errorf("deleting Application Rule Collection %q from Firewall %q (Resource Group %q): %+v", id.ApplicationRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) } - if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for deletion of Application Rule Collection %q from Firewall %q (Resource Group %q): %+v", id.ApplicationRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) - } - return nil } -func expandFirewallApplicationRules(inputs []interface{}) (*[]network.AzureFirewallApplicationRule, error) { - outputs := make([]network.AzureFirewallApplicationRule, 0) +func expandFirewallApplicationRules(inputs []interface{}) (*[]azurefirewalls.AzureFirewallApplicationRule, error) { + outputs := make([]azurefirewalls.AzureFirewallApplicationRule, 0) for _, input := range inputs { rule := input.(map[string]interface{}) @@ -385,7 +401,7 @@ func expandFirewallApplicationRules(inputs []interface{}) (*[]network.AzureFirew ruleFqdnTags := rule["fqdn_tags"].([]interface{}) ruleTargetFqdns := rule["target_fqdns"].([]interface{}) - output := network.AzureFirewallApplicationRule{ + output := azurefirewalls.AzureFirewallApplicationRule{ Name: utils.String(ruleName), Description: utils.String(ruleDescription), SourceAddresses: utils.ExpandStringSlice(ruleSourceAddresses), @@ -394,13 +410,13 @@ func expandFirewallApplicationRules(inputs []interface{}) (*[]network.AzureFirew TargetFqdns: utils.ExpandStringSlice(ruleTargetFqdns), } - ruleProtocols := make([]network.AzureFirewallApplicationRuleProtocol, 0) + ruleProtocols := make([]azurefirewalls.AzureFirewallApplicationRuleProtocol, 0) for _, v := range rule["protocol"].([]interface{}) { protocol := v.(map[string]interface{}) port := protocol["port"].(int) - ruleProtocol := network.AzureFirewallApplicationRuleProtocol{ - Port: utils.Int32(int32(port)), - ProtocolType: network.AzureFirewallApplicationRuleProtocolType(protocol["type"].(string)), + ruleProtocol := azurefirewalls.AzureFirewallApplicationRuleProtocol{ + Port: utils.Int64(int64(port)), + ProtocolType: pointer.To(azurefirewalls.AzureFirewallApplicationRuleProtocolType(protocol["type"].(string))), } ruleProtocols = append(ruleProtocols, ruleProtocol) } @@ -420,7 +436,7 @@ func expandFirewallApplicationRules(inputs []interface{}) (*[]network.AzureFirew return &outputs, nil } -func flattenFirewallApplicationRuleCollectionRules(rules *[]network.AzureFirewallApplicationRule) []interface{} { +func flattenFirewallApplicationRuleCollectionRules(rules *[]azurefirewalls.AzureFirewallApplicationRule) []interface{} { outputs := make([]interface{}, 0) if rules == nil { return outputs @@ -453,7 +469,7 @@ func flattenFirewallApplicationRuleCollectionRules(rules *[]network.AzureFirewal if port := p.Port; port != nil { protocol["port"] = int(*port) } - protocol["type"] = string(p.ProtocolType) + protocol["type"] = string(pointer.From(p.ProtocolType)) protocols = append(protocols, protocol) } } diff --git a/internal/services/firewall/firewall_application_rule_collection_resource_test.go b/internal/services/firewall/firewall_application_rule_collection_resource_test.go index 2ad33c89cdff..76829fce0928 100644 --- a/internal/services/firewall/firewall_application_rule_collection_resource_test.go +++ b/internal/services/firewall/firewall_application_rule_collection_resource_test.go @@ -8,14 +8,15 @@ import ( "fmt" "regexp" "testing" + "time" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/azurefirewalls" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" - "github.com/tombuildsstuff/kermit/sdk/network/2022-07-01/network" ) type FirewallApplicationRuleCollectionResource struct{} @@ -391,16 +392,18 @@ func (FirewallApplicationRuleCollectionResource) Exists(ctx context.Context, cli return nil, err } - resp, err := clients.Firewall.AzureFirewallsClient.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + firewallId := azurefirewalls.NewAzureFirewallID(id.SubscriptionId, id.ResourceGroup, id.AzureFirewallName) + + resp, err := clients.Firewall.Client.AzureFirewalls.Get(ctx, firewallId) if err != nil { return nil, fmt.Errorf("retrieving Firewall Application Rule Collection %q (Firewall %q / Resource Group %q): %v", id.ApplicationRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) } - if resp.AzureFirewallPropertiesFormat == nil || resp.AzureFirewallPropertiesFormat.ApplicationRuleCollections == nil { + if resp.Model == nil || resp.Model.Properties == nil || resp.Model.Properties.ApplicationRuleCollections == nil { return nil, fmt.Errorf("retrieving Firewall Application Rule Collection %q (Firewall %q / Resource Group %q): properties or collections was nil", id.ApplicationRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - for _, rule := range *resp.AzureFirewallPropertiesFormat.ApplicationRuleCollections { + for _, rule := range *resp.Model.Properties.ApplicationRuleCollections { if rule.Name == nil { continue } @@ -431,39 +434,38 @@ func (t FirewallApplicationRuleCollectionResource) doesNotExist(ctx context.Cont } func (t FirewallApplicationRuleCollectionResource) disappears(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) error { - client := clients.Firewall.AzureFirewallsClient + client := clients.Firewall.Client.AzureFirewalls + ctx, cancel := context.WithDeadline(ctx, time.Now().Add(15*time.Minute)) + defer cancel() id, err := parse.FirewallApplicationRuleCollectionID(state.ID) if err != nil { return err } - resp, err := client.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + firewallId := azurefirewalls.NewAzureFirewallID(id.SubscriptionId, id.ResourceGroup, id.AzureFirewallName) + + resp, err := client.Get(ctx, firewallId) if err != nil { return fmt.Errorf("retrieving Firewall Application Rule Collection %q (Firewall %q / Resource Group %q): %v", id.ApplicationRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) } - if resp.AzureFirewallPropertiesFormat == nil || resp.AzureFirewallPropertiesFormat.NatRuleCollections == nil { + if resp.Model == nil || resp.Model.Properties == nil || resp.Model.Properties.ApplicationRuleCollections == nil { return fmt.Errorf("retrieving Firewall Application Rule Collection %q (Firewall %q / Resource Group %q): properties or collections was nil", id.ApplicationRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - rules := make([]network.AzureFirewallApplicationRuleCollection, 0) - for _, collection := range *resp.AzureFirewallPropertiesFormat.ApplicationRuleCollections { + rules := make([]azurefirewalls.AzureFirewallApplicationRuleCollection, 0) + for _, collection := range *resp.Model.Properties.ApplicationRuleCollections { if *collection.Name != id.ApplicationRuleCollectionName { rules = append(rules, collection) } } - resp.AzureFirewallPropertiesFormat.ApplicationRuleCollections = &rules + resp.Model.Properties.ApplicationRuleCollections = &rules - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.AzureFirewallName, resp) - if err != nil { + if err = client.CreateOrUpdateThenPoll(ctx, firewallId, *resp.Model); err != nil { return fmt.Errorf("removing Firewall Application Rule Collection %q (Firewall %q / Resource Group %q): %v", id.ApplicationRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) } - if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for the removal of Firewall Application Rule Collection %q (Firewall %q / Resource Group %q): %v", id.ApplicationRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) - } - return FirewallApplicationRuleCollectionResource{}.doesNotExist(ctx, clients, state) } diff --git a/internal/services/firewall/firewall_data_source.go b/internal/services/firewall/firewall_data_source.go index f6aede5ec42b..6d22b58d7ed5 100644 --- a/internal/services/firewall/firewall_data_source.go +++ b/internal/services/firewall/firewall_data_source.go @@ -7,17 +7,17 @@ import ( "fmt" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" "github.com/hashicorp/go-azure-helpers/resourcemanager/zones" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/azurefirewalls" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/validate" - "github.com/hashicorp/terraform-provider-azurerm/internal/tags" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" - "github.com/hashicorp/terraform-provider-azurerm/utils" - "github.com/tombuildsstuff/kermit/sdk/network/2022-07-01/network" ) func firewallDataSource() *pluginsdk.Resource { @@ -153,15 +153,15 @@ func firewallDataSource() *pluginsdk.Resource { } func firewallDataSourceRead(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.AzureFirewallsClient + client := meta.(*clients.Client).Firewall.Client.AzureFirewalls subscriptionId := meta.(*clients.Client).Account.SubscriptionId ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id := parse.NewFirewallID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) - read, err := client.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + id := azurefirewalls.NewAzureFirewallID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + read, err := client.Get(ctx, id) if err != nil { - if utils.ResponseWasNotFound(read.Response) { + if response.WasNotFound(read.HttpResponse) { return fmt.Errorf("%s was not found", id) } @@ -170,44 +170,48 @@ func firewallDataSourceRead(d *pluginsdk.ResourceData, meta interface{}) error { d.SetId(id.ID()) d.Set("name", id.AzureFirewallName) - d.Set("resource_group_name", id.ResourceGroup) - - d.Set("location", location.NormalizeNilable(read.Location)) - d.Set("zones", zones.FlattenUntyped(read.Zones)) - - if props := read.AzureFirewallPropertiesFormat; props != nil { - if err := d.Set("ip_configuration", flattenFirewallIPConfigurations(props.IPConfigurations)); err != nil { - return fmt.Errorf("setting `ip_configuration`: %+v", err) - } - managementIPConfigs := make([]interface{}, 0) - if props.ManagementIPConfiguration != nil { - managementIPConfigs = flattenFirewallIPConfigurations(&[]network.AzureFirewallIPConfiguration{ - *props.ManagementIPConfiguration, - }) - } - if err := d.Set("management_ip_configuration", managementIPConfigs); err != nil { - return fmt.Errorf("setting `management_ip_configuration`: %+v", err) - } - - d.Set("threat_intel_mode", string(props.ThreatIntelMode)) - - if err := d.Set("dns_servers", flattenFirewallDNSServers(props.AdditionalProperties)); err != nil { - return fmt.Errorf("setting `dns_servers`: %+v", err) - } - - if policy := props.FirewallPolicy; policy != nil { - d.Set("firewall_policy_id", policy.ID) + d.Set("resource_group_name", id.ResourceGroupName) + + if model := read.Model; model != nil { + d.Set("location", location.NormalizeNilable(model.Location)) + d.Set("zones", zones.FlattenUntyped(model.Zones)) + + if props := model.Properties; props != nil { + if err := d.Set("ip_configuration", flattenFirewallIPConfigurations(props.IPConfigurations)); err != nil { + return fmt.Errorf("setting `ip_configuration`: %+v", err) + } + managementIPConfigs := make([]interface{}, 0) + if props.ManagementIPConfiguration != nil { + managementIPConfigs = flattenFirewallIPConfigurations(&[]azurefirewalls.AzureFirewallIPConfiguration{ + *props.ManagementIPConfiguration, + }) + } + if err := d.Set("management_ip_configuration", managementIPConfigs); err != nil { + return fmt.Errorf("setting `management_ip_configuration`: %+v", err) + } + + d.Set("threat_intel_mode", string(pointer.From(props.ThreatIntelMode))) + + if err := d.Set("dns_servers", flattenFirewallDNSServers(props.AdditionalProperties)); err != nil { + return fmt.Errorf("setting `dns_servers`: %+v", err) + } + + if policy := props.FirewallPolicy; policy != nil { + d.Set("firewall_policy_id", policy.Id) + } + + if sku := props.Sku; sku != nil { + d.Set("sku_name", string(pointer.From(sku.Name))) + d.Set("sku_tier", string(pointer.From(sku.Tier))) + } + + if err := d.Set("virtual_hub", flattenFirewallVirtualHubSetting(props)); err != nil { + return fmt.Errorf("setting `virtual_hub`: %+v", err) + } } - if sku := props.Sku; sku != nil { - d.Set("sku_name", string(sku.Name)) - d.Set("sku_tier", string(sku.Tier)) - } - - if err := d.Set("virtual_hub", flattenFirewallVirtualHubSetting(props)); err != nil { - return fmt.Errorf("setting `virtual_hub`: %+v", err) - } + return tags.FlattenAndSet(d, model.Tags) } - return tags.FlattenAndSet(d, read.Tags) + return nil } diff --git a/internal/services/firewall/firewall_nat_rule_collection_resource.go b/internal/services/firewall/firewall_nat_rule_collection_resource.go index c14755879183..d6223b688e5c 100644 --- a/internal/services/firewall/firewall_nat_rule_collection_resource.go +++ b/internal/services/firewall/firewall_nat_rule_collection_resource.go @@ -8,7 +8,10 @@ import ( "log" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/azurefirewalls" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" @@ -18,7 +21,6 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" "github.com/hashicorp/terraform-provider-azurerm/utils" - "github.com/tombuildsstuff/kermit/sdk/network/2022-07-01/network" ) func resourceFirewallNatRuleCollection() *pluginsdk.Resource { @@ -66,8 +68,8 @@ func resourceFirewallNatRuleCollection() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ValidateFunc: validation.StringInSlice([]string{ - string(network.AzureFirewallNatRCActionTypeDnat), - string(network.AzureFirewallNatRCActionTypeSnat), + string(azurefirewalls.AzureFirewallNatRCActionTypeDnat), + string(azurefirewalls.AzureFirewallNatRCActionTypeSnat), }, false), }, @@ -120,10 +122,10 @@ func resourceFirewallNatRuleCollection() *pluginsdk.Resource { Elem: &pluginsdk.Schema{ Type: pluginsdk.TypeString, ValidateFunc: validation.StringInSlice([]string{ - string(network.AzureFirewallNetworkRuleProtocolAny), - string(network.AzureFirewallNetworkRuleProtocolICMP), - string(network.AzureFirewallNetworkRuleProtocolTCP), - string(network.AzureFirewallNetworkRuleProtocolUDP), + string(azurefirewalls.AzureFirewallNetworkRuleProtocolAny), + string(azurefirewalls.AzureFirewallNetworkRuleProtocolICMP), + string(azurefirewalls.AzureFirewallNetworkRuleProtocolTCP), + string(azurefirewalls.AzureFirewallNetworkRuleProtocolUDP), }, false), }, }, @@ -135,7 +137,8 @@ func resourceFirewallNatRuleCollection() *pluginsdk.Resource { } func resourceFirewallNatRuleCollectionCreateUpdate(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.AzureFirewallsClient + client := meta.(*clients.Client).Firewall.Client.AzureFirewalls + subscriptionId := meta.(*clients.Client).Account.SubscriptionId ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -146,18 +149,24 @@ func resourceFirewallNatRuleCollectionCreateUpdate(d *pluginsdk.ResourceData, me locks.ByName(firewallName, AzureFirewallResourceName) defer locks.UnlockByName(firewallName, AzureFirewallResourceName) - firewall, err := client.Get(ctx, resourceGroup, firewallName) + firewallId := azurefirewalls.NewAzureFirewallID(subscriptionId, resourceGroup, firewallName) + + firewall, err := client.Get(ctx, firewallId) if err != nil { return fmt.Errorf("retrieving Firewall %q (Resource Group %q): %+v", firewallName, resourceGroup, err) } - if firewall.AzureFirewallPropertiesFormat == nil { - return fmt.Errorf("expanding Firewall %q (Resource Group %q): `properties` was nil.", firewallName, resourceGroup) + if firewall.Model == nil { + return fmt.Errorf("retrieving %s: `model` was nil", firewallId) } - props := *firewall.AzureFirewallPropertiesFormat - if props.NatRuleCollections == nil { - return fmt.Errorf("expanding Firewall %q (Resource Group %q): `properties.NatRuleCollections` was nil.", firewallName, resourceGroup) + if firewall.Model.Properties == nil { + return fmt.Errorf("retrieving %s: `props` was nil", firewallId) + } + props := *firewall.Model.Properties + + if props.ApplicationRuleCollections == nil { + return fmt.Errorf("retrieving %s: `props.ApplicationRuleCollections` was nil", firewallId) } ruleCollections := *props.NatRuleCollections @@ -166,13 +175,13 @@ func resourceFirewallNatRuleCollectionCreateUpdate(d *pluginsdk.ResourceData, me return fmt.Errorf("expanding Firewall NAT Rules: %+v", err) } priority := d.Get("priority").(int) - newRuleCollection := network.AzureFirewallNatRuleCollection{ + newRuleCollection := azurefirewalls.AzureFirewallNatRuleCollection{ Name: utils.String(name), - AzureFirewallNatRuleCollectionProperties: &network.AzureFirewallNatRuleCollectionProperties{ - Action: &network.AzureFirewallNatRCAction{ - Type: network.AzureFirewallNatRCActionType(d.Get("action").(string)), + Properties: &azurefirewalls.AzureFirewallNatRuleCollectionProperties{ + Action: &azurefirewalls.AzureFirewallNatRCAction{ + Type: pointer.To(azurefirewalls.AzureFirewallNatRCActionType(d.Get("action").(string))), }, - Priority: utils.Int32(int32(priority)), + Priority: utils.Int64(int64(priority)), Rules: natRules, }, } @@ -181,13 +190,13 @@ func resourceFirewallNatRuleCollectionCreateUpdate(d *pluginsdk.ResourceData, me var id string // determine if this already exists for i, v := range ruleCollections { - if v.Name == nil || v.ID == nil { + if v.Name == nil || v.Id == nil { continue } if *v.Name == name { index = i - id = *v.ID + id = *v.Id break } } @@ -207,23 +216,23 @@ func resourceFirewallNatRuleCollectionCreateUpdate(d *pluginsdk.ResourceData, me ruleCollections = append(ruleCollections, newRuleCollection) } - firewall.AzureFirewallPropertiesFormat.NatRuleCollections = &ruleCollections - future, err := client.CreateOrUpdate(ctx, resourceGroup, firewallName, firewall) - if err != nil { + firewall.Model.Properties.NatRuleCollections = &ruleCollections + if err = client.CreateOrUpdateThenPoll(ctx, firewallId, *firewall.Model); err != nil { return fmt.Errorf("creating/updating NAT Rule Collection %q in Firewall %q (Resource Group %q): %+v", name, firewallName, resourceGroup, err) } - if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for creation/update of NAT Rule Collection %q of Firewall %q (Resource Group %q): %+v", name, firewallName, resourceGroup, err) - } - - read, err := client.Get(ctx, resourceGroup, firewallName) + read, err := client.Get(ctx, firewallId) if err != nil { return fmt.Errorf("retrieving Firewall %q (Resource Group %q): %+v", firewallName, resourceGroup, err) } + if read.Model == nil { + return fmt.Errorf("retrieving %s: `model` was nil", firewallId) + + } + var collectionID string - if props := read.AzureFirewallPropertiesFormat; props != nil { + if props := read.Model.Properties; props != nil { if collections := props.NatRuleCollections; collections != nil { for _, collection := range *collections { if collection.Name == nil { @@ -231,7 +240,7 @@ func resourceFirewallNatRuleCollectionCreateUpdate(d *pluginsdk.ResourceData, me } if *collection.Name == name { - collectionID = *collection.ID + collectionID = *collection.Id break } } @@ -247,7 +256,7 @@ func resourceFirewallNatRuleCollectionCreateUpdate(d *pluginsdk.ResourceData, me } func resourceFirewallNatRuleCollectionRead(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.AzureFirewallsClient + client := meta.(*clients.Client).Firewall.Client.AzureFirewalls ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -256,26 +265,33 @@ func resourceFirewallNatRuleCollectionRead(d *pluginsdk.ResourceData, meta inter return err } - read, err := client.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + firewallId := azurefirewalls.NewAzureFirewallID(id.SubscriptionId, id.ResourceGroup, id.AzureFirewallName) + + read, err := client.Get(ctx, firewallId) if err != nil { - if utils.ResponseWasNotFound(read.Response) { + if response.WasNotFound(read.HttpResponse) { log.Printf("[DEBUG] Azure Firewall %s was not found - removing from state!", *id) d.SetId("") return nil } return fmt.Errorf("retrieving Azure Firewall %s : %+v", *id, err) } - if read.AzureFirewallPropertiesFormat == nil { + + if read.Model == nil { + return fmt.Errorf("retrieving NAT Rule Collection %q (Firewall %q / Resource Group %q): `model` was nil", id.NatRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) + } + + if read.Model.Properties == nil { return fmt.Errorf("retrieving NAT Rule Collection %q (Firewall %q / Resource Group %q): `props` was nil", id.NatRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - props := *read.AzureFirewallPropertiesFormat + props := *read.Model.Properties if props.NatRuleCollections == nil { return fmt.Errorf("retrieving NAT Rule Collection %q (Firewall %q / Resource Group %q): `props.NetworkRuleCollections` was nil", id.NatRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - var rule *network.AzureFirewallNatRuleCollection + var rule *azurefirewalls.AzureFirewallNatRuleCollection for _, r := range *props.NatRuleCollections { if r.Name == nil { continue @@ -297,9 +313,9 @@ func resourceFirewallNatRuleCollectionRead(d *pluginsdk.ResourceData, meta inter d.Set("azure_firewall_name", id.AzureFirewallName) d.Set("resource_group_name", id.ResourceGroup) - if props := rule.AzureFirewallNatRuleCollectionProperties; props != nil { + if props := rule.Properties; props != nil { if action := props.Action; action != nil { - d.Set("action", string(action.Type)) + d.Set("action", string(pointer.From(action.Type))) } if priority := props.Priority; priority != nil { @@ -316,7 +332,7 @@ func resourceFirewallNatRuleCollectionRead(d *pluginsdk.ResourceData, meta inter } func resourceFirewallNatRuleCollectionDelete(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.AzureFirewallsClient + client := meta.(*clients.Client).Firewall.Client.AzureFirewalls ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() @@ -328,9 +344,11 @@ func resourceFirewallNatRuleCollectionDelete(d *pluginsdk.ResourceData, meta int locks.ByName(id.AzureFirewallName, AzureFirewallResourceName) defer locks.UnlockByName(id.AzureFirewallName, AzureFirewallResourceName) - firewall, err := client.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + firewallId := azurefirewalls.NewAzureFirewallID(id.SubscriptionId, id.ResourceGroup, id.AzureFirewallName) + + firewall, err := client.Get(ctx, firewallId) if err != nil { - if utils.ResponseWasNotFound(firewall.Response) { + if response.WasNotFound(firewall.HttpResponse) { // assume deleted return nil } @@ -338,7 +356,11 @@ func resourceFirewallNatRuleCollectionDelete(d *pluginsdk.ResourceData, meta int return fmt.Errorf("making Read request on Azure Firewall %q (Resource Group %q): %+v", id.AzureFirewallName, id.ResourceGroup, err) } - props := firewall.AzureFirewallPropertiesFormat + if firewall.Model == nil { + return fmt.Errorf("retrieving NAT Rule Collection %q (Firewall %q / Resource Group %q): `model` was nil", id.NatRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) + } + + props := firewall.Model.Properties if props == nil { return fmt.Errorf("retrieving NAT Rule Collection %q (Firewall %q / Resource Group %q): `props` was nil", id.NatRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } @@ -346,7 +368,7 @@ func resourceFirewallNatRuleCollectionDelete(d *pluginsdk.ResourceData, meta int return fmt.Errorf("retrieving NAT Rule Collection %q (Firewall %q / Resource Group %q): `props.NatRuleCollections` was nil", id.NatRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - natRules := make([]network.AzureFirewallNatRuleCollection, 0) + natRules := make([]azurefirewalls.AzureFirewallNatRuleCollection, 0) for _, rule := range *props.NatRuleCollections { if rule.Name == nil { continue @@ -358,20 +380,15 @@ func resourceFirewallNatRuleCollectionDelete(d *pluginsdk.ResourceData, meta int } props.NatRuleCollections = &natRules - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.AzureFirewallName, firewall) - if err != nil { + if err := client.CreateOrUpdateThenPoll(ctx, firewallId, *firewall.Model); err != nil { return fmt.Errorf("deleting NAT Rule Collection %q from Firewall %q (Resource Group %q): %+v", id.NatRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) } - if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for deletion of NAT Rule Collection %q from Firewall %q (Resource Group %q): %+v", id.NatRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) - } - return nil } -func expandFirewallNatRules(input []interface{}) (*[]network.AzureFirewallNatRule, error) { - rules := make([]network.AzureFirewallNatRule, 0) +func expandFirewallNatRules(input []interface{}) (*[]azurefirewalls.AzureFirewallNatRule, error) { + rules := make([]azurefirewalls.AzureFirewallNatRule, 0) for _, nwRule := range input { rule := nwRule.(map[string]interface{}) @@ -406,7 +423,7 @@ func expandFirewallNatRules(input []interface{}) (*[]network.AzureFirewallNatRul translatedAddress := rule["translated_address"].(string) translatedPort := rule["translated_port"].(string) - ruleToAdd := network.AzureFirewallNatRule{ + ruleToAdd := azurefirewalls.AzureFirewallNatRule{ Name: utils.String(name), Description: utils.String(description), SourceAddresses: &sourceAddresses, @@ -417,9 +434,9 @@ func expandFirewallNatRules(input []interface{}) (*[]network.AzureFirewallNatRul TranslatedPort: &translatedPort, } - nrProtocols := make([]network.AzureFirewallNetworkRuleProtocol, 0) + nrProtocols := make([]azurefirewalls.AzureFirewallNetworkRuleProtocol, 0) for _, v := range rule["protocols"].([]interface{}) { - s := network.AzureFirewallNetworkRuleProtocol(v.(string)) + s := azurefirewalls.AzureFirewallNetworkRuleProtocol(v.(string)) nrProtocols = append(nrProtocols, s) } ruleToAdd.Protocols = &nrProtocols @@ -429,7 +446,7 @@ func expandFirewallNatRules(input []interface{}) (*[]network.AzureFirewallNatRul return &rules, nil } -func flattenFirewallNatRuleCollectionRules(rules *[]network.AzureFirewallNatRule) []interface{} { +func flattenFirewallNatRuleCollectionRules(rules *[]azurefirewalls.AzureFirewallNatRule) []interface{} { outputs := make([]interface{}, 0) if rules == nil { return outputs diff --git a/internal/services/firewall/firewall_nat_rule_collection_resource_test.go b/internal/services/firewall/firewall_nat_rule_collection_resource_test.go index 687fc44ce0a0..13c5c025b30a 100644 --- a/internal/services/firewall/firewall_nat_rule_collection_resource_test.go +++ b/internal/services/firewall/firewall_nat_rule_collection_resource_test.go @@ -8,14 +8,15 @@ import ( "fmt" "regexp" "testing" + "time" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/azurefirewalls" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" - "github.com/tombuildsstuff/kermit/sdk/network/2022-07-01/network" ) type FirewallNatRuleCollectionResource struct{} @@ -231,16 +232,18 @@ func (FirewallNatRuleCollectionResource) Exists(ctx context.Context, clients *cl return nil, err } - resp, err := clients.Firewall.AzureFirewallsClient.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + firewallId := azurefirewalls.NewAzureFirewallID(id.SubscriptionId, id.ResourceGroup, id.AzureFirewallName) + + resp, err := clients.Firewall.Client.AzureFirewalls.Get(ctx, firewallId) if err != nil { return nil, fmt.Errorf("retrieving Firewall Nat Rule Collection %q (Firewall %q / Resource Group %q): %v", id.NatRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) } - if resp.AzureFirewallPropertiesFormat == nil || resp.AzureFirewallPropertiesFormat.NatRuleCollections == nil { + if resp.Model == nil || resp.Model.Properties == nil || resp.Model.Properties.NatRuleCollections == nil { return nil, fmt.Errorf("retrieving Firewall Nat Rule Collection %q (Firewall %q / Resource Group %q): properties or collections was nil", id.NatRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - for _, rule := range *resp.AzureFirewallPropertiesFormat.NatRuleCollections { + for _, rule := range *resp.Model.Properties.NatRuleCollections { if rule.Name == nil { continue } @@ -271,39 +274,38 @@ func (t FirewallNatRuleCollectionResource) doesNotExist(ctx context.Context, cli } func (t FirewallNatRuleCollectionResource) disappears(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) error { - client := clients.Firewall.AzureFirewallsClient + client := clients.Firewall.Client.AzureFirewalls + ctx, cancel := context.WithDeadline(ctx, time.Now().Add(15*time.Minute)) + defer cancel() id, err := parse.FirewallNatRuleCollectionID(state.ID) if err != nil { return err } - resp, err := client.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + firewallId := azurefirewalls.NewAzureFirewallID(id.SubscriptionId, id.ResourceGroup, id.AzureFirewallName) + + resp, err := client.Get(ctx, firewallId) if err != nil { return fmt.Errorf("retrieving Firewall Nat Rule Collection %q (Firewall %q / Resource Group %q): %v", id.NatRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) } - if resp.AzureFirewallPropertiesFormat == nil || resp.AzureFirewallPropertiesFormat.NatRuleCollections == nil { + if resp.Model == nil || resp.Model.Properties == nil || resp.Model.Properties.NatRuleCollections == nil { return fmt.Errorf("retrieving Firewall Nat Rule Collection %q (Firewall %q / Resource Group %q): properties or collections was nil", id.NatRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - rules := make([]network.AzureFirewallNatRuleCollection, 0) - for _, collection := range *resp.AzureFirewallPropertiesFormat.NatRuleCollections { + rules := make([]azurefirewalls.AzureFirewallNatRuleCollection, 0) + for _, collection := range *resp.Model.Properties.NatRuleCollections { if *collection.Name != id.NatRuleCollectionName { rules = append(rules, collection) } } - resp.AzureFirewallPropertiesFormat.NatRuleCollections = &rules + resp.Model.Properties.NatRuleCollections = &rules - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.AzureFirewallName, resp) - if err != nil { + if err := client.CreateOrUpdateThenPoll(ctx, firewallId, *resp.Model); err != nil { return fmt.Errorf("removing Firewall Nat Rule Collection %q (Firewall %q / Resource Group %q): %v", id.NatRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) } - if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for the removal of Firewall Nat Rule Collection %q (Firewall %q / Resource Group %q): %v", id.NatRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) - } - return FirewallNatRuleCollectionResource{}.doesNotExist(ctx, clients, state) } diff --git a/internal/services/firewall/firewall_network_rule_collection_resource.go b/internal/services/firewall/firewall_network_rule_collection_resource.go index c396a5bc7042..417af48ba22b 100644 --- a/internal/services/firewall/firewall_network_rule_collection_resource.go +++ b/internal/services/firewall/firewall_network_rule_collection_resource.go @@ -8,7 +8,10 @@ import ( "log" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/azurefirewalls" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" @@ -18,7 +21,6 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" "github.com/hashicorp/terraform-provider-azurerm/utils" - "github.com/tombuildsstuff/kermit/sdk/network/2022-07-01/network" ) func resourceFirewallNetworkRuleCollection() *pluginsdk.Resource { @@ -66,8 +68,8 @@ func resourceFirewallNetworkRuleCollection() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ValidateFunc: validation.StringInSlice([]string{ - string(network.AzureFirewallRCActionTypeAllow), - string(network.AzureFirewallRCActionTypeDeny), + string(azurefirewalls.AzureFirewallRCActionTypeAllow), + string(azurefirewalls.AzureFirewallRCActionTypeDeny), }, false), }, @@ -122,10 +124,10 @@ func resourceFirewallNetworkRuleCollection() *pluginsdk.Resource { Elem: &pluginsdk.Schema{ Type: pluginsdk.TypeString, ValidateFunc: validation.StringInSlice([]string{ - string(network.AzureFirewallNetworkRuleProtocolAny), - string(network.AzureFirewallNetworkRuleProtocolICMP), - string(network.AzureFirewallNetworkRuleProtocolTCP), - string(network.AzureFirewallNetworkRuleProtocolUDP), + string(azurefirewalls.AzureFirewallNetworkRuleProtocolAny), + string(azurefirewalls.AzureFirewallNetworkRuleProtocolICMP), + string(azurefirewalls.AzureFirewallNetworkRuleProtocolTCP), + string(azurefirewalls.AzureFirewallNetworkRuleProtocolUDP), }, false), }, }, @@ -137,7 +139,8 @@ func resourceFirewallNetworkRuleCollection() *pluginsdk.Resource { } func resourceFirewallNetworkRuleCollectionCreateUpdate(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.AzureFirewallsClient + client := meta.(*clients.Client).Firewall.Client.AzureFirewalls + subscriptionId := meta.(*clients.Client).Account.SubscriptionId ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -148,15 +151,21 @@ func resourceFirewallNetworkRuleCollectionCreateUpdate(d *pluginsdk.ResourceData locks.ByName(firewallName, AzureFirewallResourceName) defer locks.UnlockByName(firewallName, AzureFirewallResourceName) - firewall, err := client.Get(ctx, resourceGroup, firewallName) + firewallId := azurefirewalls.NewAzureFirewallID(subscriptionId, resourceGroup, firewallName) + + firewall, err := client.Get(ctx, firewallId) if err != nil { return fmt.Errorf("retrieving Firewall %q (Resource Group %q): %+v", firewallName, resourceGroup, err) } - if firewall.AzureFirewallPropertiesFormat == nil { + if firewall.Model == nil { + return fmt.Errorf("expanding Firewall %q (Resource Group %q): `model` was nil.", firewallName, resourceGroup) + } + + if firewall.Model.Properties == nil { return fmt.Errorf("expanding Firewall %q (Resource Group %q): `properties` was nil.", firewallName, resourceGroup) } - props := *firewall.AzureFirewallPropertiesFormat + props := *firewall.Model.Properties if props.NetworkRuleCollections == nil { return fmt.Errorf("expanding Firewall %q (Resource Group %q): `properties.NetworkRuleCollections` was nil.", firewallName, resourceGroup) @@ -168,13 +177,13 @@ func resourceFirewallNetworkRuleCollectionCreateUpdate(d *pluginsdk.ResourceData return fmt.Errorf("expanding Firewall Network Rules: %+v", err) } priority := d.Get("priority").(int) - newRuleCollection := network.AzureFirewallNetworkRuleCollection{ + newRuleCollection := azurefirewalls.AzureFirewallNetworkRuleCollection{ Name: utils.String(name), - AzureFirewallNetworkRuleCollectionPropertiesFormat: &network.AzureFirewallNetworkRuleCollectionPropertiesFormat{ - Action: &network.AzureFirewallRCAction{ - Type: network.AzureFirewallRCActionType(d.Get("action").(string)), + Properties: &azurefirewalls.AzureFirewallNetworkRuleCollectionPropertiesFormat{ + Action: &azurefirewalls.AzureFirewallRCAction{ + Type: pointer.To(azurefirewalls.AzureFirewallRCActionType(d.Get("action").(string))), }, - Priority: utils.Int32(int32(priority)), + Priority: utils.Int64(int64(priority)), Rules: networkRules, }, } @@ -183,13 +192,13 @@ func resourceFirewallNetworkRuleCollectionCreateUpdate(d *pluginsdk.ResourceData var id string // determine if this already exists for i, v := range ruleCollections { - if v.Name == nil || v.ID == nil { + if v.Name == nil || v.Id == nil { continue } if *v.Name == name { index = i - id = *v.ID + id = *v.Id break } } @@ -209,24 +218,24 @@ func resourceFirewallNetworkRuleCollectionCreateUpdate(d *pluginsdk.ResourceData ruleCollections = append(ruleCollections, newRuleCollection) } - firewall.AzureFirewallPropertiesFormat.NetworkRuleCollections = &ruleCollections + firewall.Model.Properties.NetworkRuleCollections = &ruleCollections - future, err := client.CreateOrUpdate(ctx, resourceGroup, firewallName, firewall) - if err != nil { + if err := client.CreateOrUpdateThenPoll(ctx, firewallId, *firewall.Model); err != nil { return fmt.Errorf("creating/updating Network Rule Collection %q in Firewall %q (Resource Group %q): %+v", name, firewallName, resourceGroup, err) } - if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for creation/update of Network Rule Collection %q of Firewall %q (Resource Group %q): %+v", name, firewallName, resourceGroup, err) - } - - read, err := client.Get(ctx, resourceGroup, firewallName) + read, err := client.Get(ctx, firewallId) if err != nil { return fmt.Errorf("retrieving Firewall %q (Resource Group %q): %+v", firewallName, resourceGroup, err) } + if read.Model == nil { + return fmt.Errorf("retrieving %s: `model` was nil", firewallId) + + } + var collectionID string - if props := read.AzureFirewallPropertiesFormat; props != nil { + if props := read.Model.Properties; props != nil { if collections := props.NetworkRuleCollections; collections != nil { for _, collection := range *collections { if collection.Name == nil { @@ -234,7 +243,7 @@ func resourceFirewallNetworkRuleCollectionCreateUpdate(d *pluginsdk.ResourceData } if *collection.Name == name { - collectionID = *collection.ID + collectionID = *collection.Id break } } @@ -250,7 +259,7 @@ func resourceFirewallNetworkRuleCollectionCreateUpdate(d *pluginsdk.ResourceData } func resourceFirewallNetworkRuleCollectionRead(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.AzureFirewallsClient + client := meta.(*clients.Client).Firewall.Client.AzureFirewalls ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -259,9 +268,11 @@ func resourceFirewallNetworkRuleCollectionRead(d *pluginsdk.ResourceData, meta i return err } - read, err := client.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + firewallId := azurefirewalls.NewAzureFirewallID(id.SubscriptionId, id.ResourceGroup, id.AzureFirewallName) + + read, err := client.Get(ctx, firewallId) if err != nil { - if utils.ResponseWasNotFound(read.Response) { + if response.WasNotFound(read.HttpResponse) { log.Printf("[DEBUG] Azure Firewall %s was not found - removing from state!", *id) d.SetId("") return nil @@ -269,16 +280,20 @@ func resourceFirewallNetworkRuleCollectionRead(d *pluginsdk.ResourceData, meta i return fmt.Errorf("retrieving Azure Firewall %s : %+v", *id, err) } - if read.AzureFirewallPropertiesFormat == nil { + if read.Model == nil { + return fmt.Errorf("retrieving Network Rule Collection %q (Firewall %q / Resource Group %q): `model` was nil", id.NetworkRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) + } + + if read.Model.Properties == nil { return fmt.Errorf("retrieving Network Rule Collection %q (Firewall %q / Resource Group %q): `props` was nil", id.NetworkRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - props := *read.AzureFirewallPropertiesFormat + props := *read.Model.Properties if props.NetworkRuleCollections == nil { return fmt.Errorf("retrieving Network Rule Collection %q (Firewall %q / Resource Group %q): `props.NetworkRuleCollections` was nil", id.NetworkRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - var rule *network.AzureFirewallNetworkRuleCollection + var rule *azurefirewalls.AzureFirewallNetworkRuleCollection for _, r := range *props.NetworkRuleCollections { if r.Name == nil { continue @@ -300,9 +315,9 @@ func resourceFirewallNetworkRuleCollectionRead(d *pluginsdk.ResourceData, meta i d.Set("azure_firewall_name", id.AzureFirewallName) d.Set("resource_group_name", id.ResourceGroup) - if props := rule.AzureFirewallNetworkRuleCollectionPropertiesFormat; props != nil { + if props := rule.Properties; props != nil { if action := props.Action; action != nil { - d.Set("action", string(action.Type)) + d.Set("action", string(pointer.From(action.Type))) } if priority := props.Priority; priority != nil { @@ -319,7 +334,7 @@ func resourceFirewallNetworkRuleCollectionRead(d *pluginsdk.ResourceData, meta i } func resourceFirewallNetworkRuleCollectionDelete(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.AzureFirewallsClient + client := meta.(*clients.Client).Firewall.Client.AzureFirewalls ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() @@ -331,9 +346,11 @@ func resourceFirewallNetworkRuleCollectionDelete(d *pluginsdk.ResourceData, meta locks.ByName(id.AzureFirewallName, AzureFirewallResourceName) defer locks.UnlockByName(id.AzureFirewallName, AzureFirewallResourceName) - firewall, err := client.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + firewallId := azurefirewalls.NewAzureFirewallID(id.SubscriptionId, id.ResourceGroup, id.AzureFirewallName) + + firewall, err := client.Get(ctx, firewallId) if err != nil { - if utils.ResponseWasNotFound(firewall.Response) { + if response.WasNotFound(firewall.HttpResponse) { // assume deleted return nil } @@ -341,7 +358,11 @@ func resourceFirewallNetworkRuleCollectionDelete(d *pluginsdk.ResourceData, meta return fmt.Errorf("making Read request on Azure Firewall %q (Resource Group %q): %+v", id.AzureFirewallName, id.ResourceGroup, err) } - props := firewall.AzureFirewallPropertiesFormat + if firewall.Model == nil { + return fmt.Errorf("retrieving Network Rule Collection %q (Firewall %q / Resource Group %q): `model` was nil", id.NetworkRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) + } + + props := firewall.Model.Properties if props == nil { return fmt.Errorf("retrieving Network Rule Collection %q (Firewall %q / Resource Group %q): `props` was nil", id.NetworkRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } @@ -349,7 +370,7 @@ func resourceFirewallNetworkRuleCollectionDelete(d *pluginsdk.ResourceData, meta return fmt.Errorf("retrieving Network Rule Collection %q (Firewall %q / Resource Group %q): `props.NetworkRuleCollections` was nil", id.NetworkRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - networkRules := make([]network.AzureFirewallNetworkRuleCollection, 0) + networkRules := make([]azurefirewalls.AzureFirewallNetworkRuleCollection, 0) for _, rule := range *props.NetworkRuleCollections { if rule.Name == nil { continue @@ -361,20 +382,15 @@ func resourceFirewallNetworkRuleCollectionDelete(d *pluginsdk.ResourceData, meta } props.NetworkRuleCollections = &networkRules - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.AzureFirewallName, firewall) - if err != nil { + if err = client.CreateOrUpdateThenPoll(ctx, firewallId, *firewall.Model); err != nil { return fmt.Errorf("deleting Network Rule Collection %q from Firewall %q (Resource Group %q): %+v", id.NetworkRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) } - if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for deletion of Network Rule Collection %q from Firewall %q (Resource Group %q): %+v", id.NetworkRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) - } - return nil } -func expandFirewallNetworkRules(input []interface{}) (*[]network.AzureFirewallNetworkRule, error) { - rules := make([]network.AzureFirewallNetworkRule, 0) +func expandFirewallNetworkRules(input []interface{}) (*[]azurefirewalls.AzureFirewallNetworkRule, error) { + rules := make([]azurefirewalls.AzureFirewallNetworkRule, 0) for _, nwRule := range input { rule := nwRule.(map[string]interface{}) @@ -420,7 +436,7 @@ func expandFirewallNetworkRules(input []interface{}) (*[]network.AzureFirewallNe destinationPorts = append(destinationPorts, v.(string)) } - ruleToAdd := network.AzureFirewallNetworkRule{ + ruleToAdd := azurefirewalls.AzureFirewallNetworkRule{ Name: utils.String(name), Description: utils.String(description), SourceAddresses: &sourceAddresses, @@ -431,9 +447,9 @@ func expandFirewallNetworkRules(input []interface{}) (*[]network.AzureFirewallNe DestinationFqdns: &destinationFqdns, } - nrProtocols := make([]network.AzureFirewallNetworkRuleProtocol, 0) + nrProtocols := make([]azurefirewalls.AzureFirewallNetworkRuleProtocol, 0) for _, v := range rule["protocols"].([]interface{}) { - s := network.AzureFirewallNetworkRuleProtocol(v.(string)) + s := azurefirewalls.AzureFirewallNetworkRuleProtocol(v.(string)) nrProtocols = append(nrProtocols, s) } ruleToAdd.Protocols = &nrProtocols @@ -443,7 +459,7 @@ func expandFirewallNetworkRules(input []interface{}) (*[]network.AzureFirewallNe return &rules, nil } -func flattenFirewallNetworkRuleCollectionRules(rules *[]network.AzureFirewallNetworkRule) []interface{} { +func flattenFirewallNetworkRuleCollectionRules(rules *[]azurefirewalls.AzureFirewallNetworkRule) []interface{} { outputs := make([]interface{}, 0) if rules == nil { return outputs diff --git a/internal/services/firewall/firewall_network_rule_collection_resource_test.go b/internal/services/firewall/firewall_network_rule_collection_resource_test.go index ef29df03d070..7bf643034612 100644 --- a/internal/services/firewall/firewall_network_rule_collection_resource_test.go +++ b/internal/services/firewall/firewall_network_rule_collection_resource_test.go @@ -8,14 +8,15 @@ import ( "fmt" "regexp" "testing" + "time" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/azurefirewalls" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" - "github.com/tombuildsstuff/kermit/sdk/network/2022-07-01/network" ) type FirewallNetworkRuleCollectionResource struct{} @@ -339,16 +340,18 @@ func (FirewallNetworkRuleCollectionResource) Exists(ctx context.Context, clients return nil, err } - resp, err := clients.Firewall.AzureFirewallsClient.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + firewallId := azurefirewalls.NewAzureFirewallID(id.SubscriptionId, id.ResourceGroup, id.AzureFirewallName) + + resp, err := clients.Firewall.Client.AzureFirewalls.Get(ctx, firewallId) if err != nil { return nil, fmt.Errorf("retrieving Firewall Network Rule Collection %q (Firewall %q / Resource Group %q): %v", id.NetworkRuleCollectionName, id.AzureFirewallName, id.ResourceGroup, err) } - if resp.AzureFirewallPropertiesFormat == nil || resp.AzureFirewallPropertiesFormat.NetworkRuleCollections == nil { + if resp.Model == nil || resp.Model.Properties == nil || resp.Model.Properties.NetworkRuleCollections == nil { return nil, fmt.Errorf("retrieving Firewall Network Rule Collection %q (Firewall %q / Resource Group %q): properties or collections was nil", id.NetworkRuleCollectionName, id.AzureFirewallName, id.ResourceGroup) } - for _, rule := range *resp.AzureFirewallPropertiesFormat.NetworkRuleCollections { + for _, rule := range *resp.Model.Properties.NetworkRuleCollections { if rule.Name == nil { continue } @@ -362,23 +365,28 @@ func (FirewallNetworkRuleCollectionResource) Exists(ctx context.Context, clients func (r FirewallNetworkRuleCollectionResource) checkFirewallNetworkRuleCollectionDoesNotExist(collectionName string) acceptance.ClientCheckFunc { return func(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) error { + ctx, cancel := context.WithDeadline(ctx, time.Now().Add(15*time.Minute)) + defer cancel() // Ensure we have enough information in state to look up in API id, err := parse.FirewallNetworkRuleCollectionID(state.ID) if err != nil { return err } - firewallName := id.AzureFirewallName - resourceGroup := id.ResourceGroup + firewallId := azurefirewalls.NewAzureFirewallID(id.SubscriptionId, id.ResourceGroup, id.AzureFirewallName) - read, err := clients.Firewall.AzureFirewallsClient.Get(ctx, resourceGroup, firewallName) + read, err := clients.Firewall.Client.AzureFirewalls.Get(ctx, firewallId) if err != nil { return err } - for _, collection := range *read.AzureFirewallPropertiesFormat.NetworkRuleCollections { + if read.Model == nil || read.Model.Properties == nil || read.Model.Properties.NetworkRuleCollections == nil { + return fmt.Errorf("one of model/properties/networkRuleCollections was nil for %s", firewallId) + } + + for _, collection := range *read.Model.Properties.NetworkRuleCollections { if *collection.Name == collectionName { - return fmt.Errorf("Network Rule Collection %q exists in Firewall %q: %+v", collectionName, firewallName, collection) + return fmt.Errorf("network Rule Collection %q exists in Firewall %q: %+v", collectionName, firewallId.AzureFirewallName, collection) } } @@ -392,35 +400,31 @@ func (FirewallNetworkRuleCollectionResource) Destroy(ctx context.Context, client return nil, err } - name := id.NetworkRuleCollectionName - firewallName := id.AzureFirewallName - resourceGroup := id.ResourceGroup + firewallId := azurefirewalls.NewAzureFirewallID(id.SubscriptionId, id.ResourceGroup, id.AzureFirewallName) - read, err := clients.Firewall.AzureFirewallsClient.Get(ctx, resourceGroup, firewallName) + read, err := clients.Firewall.Client.AzureFirewalls.Get(ctx, firewallId) if err != nil { return utils.Bool(false), err } - rules := make([]network.AzureFirewallNetworkRuleCollection, 0) - for _, collection := range *read.AzureFirewallPropertiesFormat.NetworkRuleCollections { - if *collection.Name != name { + if read.Model == nil || read.Model.Properties == nil || read.Model.Properties.NetworkRuleCollections == nil { + return utils.Bool(false), fmt.Errorf("one of model/properties/networkRuleCollections was nil for %s", firewallId) + } + + rules := make([]azurefirewalls.AzureFirewallNetworkRuleCollection, 0) + for _, collection := range *read.Model.Properties.NetworkRuleCollections { + if *collection.Name != id.NetworkRuleCollectionName { rules = append(rules, collection) } } - read.AzureFirewallPropertiesFormat.NetworkRuleCollections = &rules + read.Model.Properties.NetworkRuleCollections = &rules - future, err := clients.Firewall.AzureFirewallsClient.CreateOrUpdate(ctx, resourceGroup, firewallName, read) - if err != nil { + if err = clients.Firewall.Client.AzureFirewalls.CreateOrUpdateThenPoll(ctx, firewallId, *read.Model); err != nil { return utils.Bool(false), fmt.Errorf("removing Network Rule Collection from Firewall: %+v", err) } - if err = future.WaitForCompletionRef(ctx, clients.Firewall.AzureFirewallsClient.Client); err != nil { - return utils.Bool(false), fmt.Errorf("waiting for the removal of Network Rule Collection from Firewall: %+v", err) - } - - _, err = clients.Firewall.AzureFirewallsClient.Get(ctx, resourceGroup, firewallName) - return utils.Bool(err == nil), err + return utils.Bool(true), nil } func (FirewallNetworkRuleCollectionResource) basic(data acceptance.TestData) string { diff --git a/internal/services/firewall/firewall_policy_data_source.go b/internal/services/firewall/firewall_policy_data_source.go index 48fa1a4fddec..98edf9260fc5 100644 --- a/internal/services/firewall/firewall_policy_data_source.go +++ b/internal/services/firewall/firewall_policy_data_source.go @@ -7,15 +7,16 @@ import ( "fmt" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicies" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/validate" - "github.com/hashicorp/terraform-provider-azurerm/internal/tags" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" - "github.com/hashicorp/terraform-provider-azurerm/utils" ) func FirewallDataSourcePolicy() *pluginsdk.Resource { @@ -118,22 +119,22 @@ func FirewallDataSourcePolicy() *pluginsdk.Resource { }, }, - "tags": tags.SchemaDataSource(), + "tags": commonschema.TagsDataSource(), }, } } func FirewallDataSourcePolicyRead(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.FirewallPolicyClient + client := meta.(*clients.Client).Firewall.Client.FirewallPolicies subscriptionId := meta.(*clients.Client).Account.SubscriptionId ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id := parse.NewFirewallPolicyID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + id := firewallpolicies.NewFirewallPolicyID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + resp, err := client.Get(ctx, id, firewallpolicies.DefaultGetOperationOptions()) if err != nil { - if utils.ResponseWasNotFound(resp.Response) { + if response.WasNotFound(resp.HttpResponse) { return fmt.Errorf("%s was not found", id) } @@ -142,33 +143,38 @@ func FirewallDataSourcePolicyRead(d *pluginsdk.ResourceData, meta interface{}) e d.SetId(id.ID()) - d.Set("name", id.Name) - d.Set("resource_group_name", id.ResourceGroup) - d.Set("location", location.NormalizeNilable(resp.Location)) - - if prop := resp.FirewallPolicyPropertiesFormat; prop != nil { - basePolicyID := "" - if resp.BasePolicy != nil && resp.BasePolicy.ID != nil { - basePolicyID = *resp.BasePolicy.ID - } - d.Set("base_policy_id", basePolicyID) - if err := d.Set("child_policies", flattenNetworkSubResourceID(prop.ChildPolicies)); err != nil { - return fmt.Errorf(`setting "child_policies": %+v`, err) - } - if err := d.Set("dns", flattenFirewallPolicyDNSSetting(prop.DNSSettings)); err != nil { - return fmt.Errorf(`setting "dns": %+v`, err) - } - if err := d.Set("firewalls", flattenNetworkSubResourceID(prop.Firewalls)); err != nil { - return fmt.Errorf(`setting "firewalls": %+v`, err) - } - if err := d.Set("rule_collection_groups", flattenNetworkSubResourceID(prop.RuleCollectionGroups)); err != nil { - return fmt.Errorf(`setting "rule_collection_groups": %+v`, err) - } - d.Set("threat_intelligence_mode", string(prop.ThreatIntelMode)) - if err := d.Set("threat_intelligence_allowlist", flattenFirewallPolicyThreatIntelWhitelist(resp.ThreatIntelWhitelist)); err != nil { - return fmt.Errorf(`setting "threat_intelligence_allowlist": %+v`, err) + d.Set("name", id.FirewallPolicyName) + d.Set("resource_group_name", id.ResourceGroupName) + + if model := resp.Model; model != nil { + d.Set("location", location.NormalizeNilable(model.Location)) + + if props := model.Properties; props != nil { + basePolicyID := "" + if props.BasePolicy != nil && props.BasePolicy.Id != nil { + basePolicyID = *props.BasePolicy.Id + } + d.Set("base_policy_id", basePolicyID) + if err := d.Set("child_policies", flattenNetworkSubResourceID(props.ChildPolicies)); err != nil { + return fmt.Errorf(`setting "child_policies": %+v`, err) + } + if err := d.Set("dns", flattenFirewallPolicyDNSSetting(props.DnsSettings)); err != nil { + return fmt.Errorf(`setting "dns": %+v`, err) + } + if err := d.Set("firewalls", flattenNetworkSubResourceID(props.Firewalls)); err != nil { + return fmt.Errorf(`setting "firewalls": %+v`, err) + } + if err := d.Set("rule_collection_groups", flattenNetworkSubResourceID(props.RuleCollectionGroups)); err != nil { + return fmt.Errorf(`setting "rule_collection_groups": %+v`, err) + } + d.Set("threat_intelligence_mode", string(pointer.From(props.ThreatIntelMode))) + if err := d.Set("threat_intelligence_allowlist", flattenFirewallPolicyThreatIntelWhitelist(props.ThreatIntelWhitelist)); err != nil { + return fmt.Errorf(`setting "threat_intelligence_allowlist": %+v`, err) + } } + + return tags.FlattenAndSet(d, model.Tags) } - return tags.FlattenAndSet(d, resp.Tags) + return nil } diff --git a/internal/services/firewall/firewall_policy_resource.go b/internal/services/firewall/firewall_policy_resource.go index ac7f996076bd..4834143d111c 100644 --- a/internal/services/firewall/firewall_policy_resource.go +++ b/internal/services/firewall/firewall_policy_resource.go @@ -8,24 +8,24 @@ import ( "log" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicies" "github.com/hashicorp/go-azure-sdk/resource-manager/operationalinsights/2020-08-01/workspaces" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/validate" - "github.com/hashicorp/terraform-provider-azurerm/internal/tags" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/suppress" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" "github.com/hashicorp/terraform-provider-azurerm/utils" - "github.com/tombuildsstuff/kermit/sdk/network/2022-07-01/network" ) const AzureFirewallPolicyResourceName = "azurerm_firewall_policy" @@ -38,7 +38,7 @@ func resourceFirewallPolicy() *pluginsdk.Resource { Delete: resourceFirewallPolicyDelete, Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { - _, err := parse.FirewallPolicyID(id) + _, err := firewallpolicies.ParseFirewallPolicyID(id) return err }), @@ -54,86 +54,87 @@ func resourceFirewallPolicy() *pluginsdk.Resource { } func resourceFirewallPolicyCreateUpdate(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.FirewallPolicyClient + client := meta.(*clients.Client).Firewall.Client.FirewallPolicies subscriptionId := meta.(*clients.Client).Account.SubscriptionId ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - id := parse.NewFirewallPolicyID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + id := firewallpolicies.NewFirewallPolicyID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) if d.IsNewResource() { - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + resp, err := client.Get(ctx, id, firewallpolicies.DefaultGetOperationOptions()) if err != nil { - if !utils.ResponseWasNotFound(resp.Response) { + if !response.WasNotFound(resp.HttpResponse) { return fmt.Errorf("checking for existing %s: %+v", id, err) } } - if resp.ID != nil && *resp.ID != "" { - return tf.ImportAsExistsError("azurerm_firewall_policy", *resp.ID) + if resp.Model != nil { + return tf.ImportAsExistsError("azurerm_firewall_policy", id.ID()) } } - expandedIdentity, err := expandFirewallPolicyIdentity(d.Get("identity").([]interface{})) - if err != nil { - return fmt.Errorf("expanding `identity`: %+v", err) - } - props := network.FirewallPolicy{ - FirewallPolicyPropertiesFormat: &network.FirewallPolicyPropertiesFormat{ - ThreatIntelMode: network.AzureFirewallThreatIntelMode(d.Get("threat_intelligence_mode").(string)), + props := firewallpolicies.FirewallPolicy{ + Properties: &firewallpolicies.FirewallPolicyPropertiesFormat{ + ThreatIntelMode: pointer.To(firewallpolicies.AzureFirewallThreatIntelMode(d.Get("threat_intelligence_mode").(string))), ThreatIntelWhitelist: expandFirewallPolicyThreatIntelWhitelist(d.Get("threat_intelligence_allowlist").([]interface{})), - DNSSettings: expandFirewallPolicyDNSSetting(d.Get("dns").([]interface{})), + DnsSettings: expandFirewallPolicyDNSSetting(d.Get("dns").([]interface{})), IntrusionDetection: expandFirewallPolicyIntrusionDetection(d.Get("intrusion_detection").([]interface{})), TransportSecurity: expandFirewallPolicyTransportSecurity(d.Get("tls_certificate").([]interface{})), Insights: expandFirewallPolicyInsights(d.Get("insights").([]interface{})), ExplicitProxy: expandFirewallPolicyExplicitProxy(d.Get("explicit_proxy").([]interface{})), }, - Identity: expandedIdentity, Location: utils.String(location.Normalize(d.Get("location").(string))), Tags: tags.Expand(d.Get("tags").(map[string]interface{})), } + expandedIdentity, err := identity.ExpandSystemAndUserAssignedMap(d.Get("identity").([]interface{})) + if err != nil { + return fmt.Errorf("expanding `identity`: %+v", err) + } + + // api will error if TypeNone is passed in + if expandedIdentity.Type != identity.TypeNone { + props.Identity = expandedIdentity + } + if id, ok := d.GetOk("base_policy_id"); ok { - props.FirewallPolicyPropertiesFormat.BasePolicy = &network.SubResource{ID: utils.String(id.(string))} + props.Properties.BasePolicy = &firewallpolicies.SubResource{Id: utils.String(id.(string))} } if v, ok := d.GetOk("sku"); ok { - props.FirewallPolicyPropertiesFormat.Sku = &network.FirewallPolicySku{ - Tier: network.FirewallPolicySkuTier(v.(string)), + props.Properties.Sku = &firewallpolicies.FirewallPolicySku{ + Tier: pointer.To(firewallpolicies.FirewallPolicySkuTier(v.(string))), } } if v, ok := d.GetOk("sql_redirect_allowed"); ok { - props.FirewallPolicyPropertiesFormat.SQL = &network.FirewallPolicySQL{ - AllowSQLRedirect: utils.Bool(v.(bool)), + props.Properties.Sql = &firewallpolicies.FirewallPolicySQL{ + AllowSqlRedirect: utils.Bool(v.(bool)), } } if v, ok := d.GetOk("private_ip_ranges"); ok { privateIPRanges := utils.ExpandStringSlice(v.([]interface{})) - props.FirewallPolicyPropertiesFormat.Snat = &network.FirewallPolicySNAT{ + props.Properties.Snat = &firewallpolicies.FirewallPolicySNAT{ PrivateRanges: privateIPRanges, } } if v, ok := d.GetOk("auto_learn_private_ranges_enabled"); ok { - if props.FirewallPolicyPropertiesFormat.Snat == nil { - props.FirewallPolicyPropertiesFormat.Snat = &network.FirewallPolicySNAT{} + if props.Properties.Snat == nil { + props.Properties.Snat = &firewallpolicies.FirewallPolicySNAT{} } if v.(bool) { - props.FirewallPolicyPropertiesFormat.Snat.AutoLearnPrivateRanges = network.AutoLearnPrivateRangesModeEnabled + props.Properties.Snat.AutoLearnPrivateRanges = pointer.To(firewallpolicies.AutoLearnPrivateRangesModeEnabled) } } - locks.ByName(id.Name, AzureFirewallPolicyResourceName) - defer locks.UnlockByName(id.Name, AzureFirewallPolicyResourceName) + locks.ByName(id.FirewallPolicyName, AzureFirewallPolicyResourceName) + defer locks.UnlockByName(id.FirewallPolicyName, AzureFirewallPolicyResourceName) - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.Name, props) - if err != nil { + if err := client.CreateOrUpdateThenPoll(ctx, id, props); err != nil { return fmt.Errorf("creating/updating %s: %+v", id, err) } - if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for creating/updating %s: %+v", id, err) - } d.SetId(id.ID()) @@ -141,145 +142,143 @@ func resourceFirewallPolicyCreateUpdate(d *pluginsdk.ResourceData, meta interfac } func resourceFirewallPolicyRead(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.FirewallPolicyClient + client := meta.(*clients.Client).Firewall.Client.FirewallPolicies ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.FirewallPolicyID(d.Id()) + id, err := firewallpolicies.ParseFirewallPolicyID(d.Id()) if err != nil { return err } - resp, err := client.Get(ctx, id.ResourceGroup, id.Name, "") + resp, err := client.Get(ctx, *id, firewallpolicies.DefaultGetOperationOptions()) if err != nil { - if utils.ResponseWasNotFound(resp.Response) { - log.Printf("[DEBUG] Firewall Policy %q was not found in Resource Group %q - removing from state!", id.Name, id.ResourceGroup) + if response.WasNotFound(resp.HttpResponse) { + log.Printf("[DEBUG] %s was not found - removing from state!", id) d.SetId("") return nil } - return fmt.Errorf("retrieving Firewall Policy %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + return fmt.Errorf("retrieving %s: %+v", id, err) } - d.Set("name", id.Name) - d.Set("resource_group_name", id.ResourceGroup) - d.Set("location", location.NormalizeNilable(resp.Location)) + d.Set("name", id.FirewallPolicyName) + d.Set("resource_group_name", id.ResourceGroupName) - if prop := resp.FirewallPolicyPropertiesFormat; prop != nil { - basePolicyID := "" - if resp.BasePolicy != nil && resp.BasePolicy.ID != nil { - basePolicyID = *resp.BasePolicy.ID - } - d.Set("base_policy_id", basePolicyID) + if model := resp.Model; model != nil { + d.Set("location", location.NormalizeNilable(model.Location)) - d.Set("threat_intelligence_mode", string(prop.ThreatIntelMode)) + if props := model.Properties; props != nil { + basePolicyID := "" + if props.BasePolicy != nil && props.BasePolicy.Id != nil { + basePolicyID = *props.BasePolicy.Id + } + d.Set("base_policy_id", basePolicyID) - if sku := prop.Sku; sku != nil { - d.Set("sku", string(sku.Tier)) - } + d.Set("threat_intelligence_mode", string(pointer.From(props.ThreatIntelMode))) - if err := d.Set("threat_intelligence_allowlist", flattenFirewallPolicyThreatIntelWhitelist(resp.ThreatIntelWhitelist)); err != nil { - return fmt.Errorf(`setting "threat_intelligence_allowlist": %+v`, err) - } + if sku := props.Sku; sku != nil { + d.Set("sku", string(pointer.From(sku.Tier))) + } - if err := d.Set("dns", flattenFirewallPolicyDNSSetting(prop.DNSSettings)); err != nil { - return fmt.Errorf(`setting "dns": %+v`, err) - } + if err := d.Set("threat_intelligence_allowlist", flattenFirewallPolicyThreatIntelWhitelist(props.ThreatIntelWhitelist)); err != nil { + return fmt.Errorf(`setting "threat_intelligence_allowlist": %+v`, err) + } - if err := d.Set("intrusion_detection", flattenFirewallPolicyIntrusionDetection(resp.IntrusionDetection)); err != nil { - return fmt.Errorf(`setting "intrusion_detection": %+v`, err) - } + if err := d.Set("dns", flattenFirewallPolicyDNSSetting(props.DnsSettings)); err != nil { + return fmt.Errorf(`setting "dns": %+v`, err) + } - if err := d.Set("tls_certificate", flattenFirewallPolicyTransportSecurity(prop.TransportSecurity)); err != nil { - return fmt.Errorf(`setting "tls_certificate": %+v`, err) - } + if err := d.Set("intrusion_detection", flattenFirewallPolicyIntrusionDetection(props.IntrusionDetection)); err != nil { + return fmt.Errorf(`setting "intrusion_detection": %+v`, err) + } - if err := d.Set("child_policies", flattenNetworkSubResourceID(prop.ChildPolicies)); err != nil { - return fmt.Errorf(`setting "child_policies": %+v`, err) - } + if err := d.Set("tls_certificate", flattenFirewallPolicyTransportSecurity(props.TransportSecurity)); err != nil { + return fmt.Errorf(`setting "tls_certificate": %+v`, err) + } - if err := d.Set("firewalls", flattenNetworkSubResourceID(prop.Firewalls)); err != nil { - return fmt.Errorf(`setting "firewalls": %+v`, err) - } + if err := d.Set("child_policies", flattenNetworkSubResourceID(props.ChildPolicies)); err != nil { + return fmt.Errorf(`setting "child_policies": %+v`, err) + } - if err := d.Set("rule_collection_groups", flattenNetworkSubResourceID(prop.RuleCollectionGroups)); err != nil { - return fmt.Errorf(`setting "rule_collection_groups": %+v`, err) - } + if err := d.Set("firewalls", flattenNetworkSubResourceID(props.Firewalls)); err != nil { + return fmt.Errorf(`setting "firewalls": %+v`, err) + } - var privateIPRanges []interface{} - var isAutoLearnPrivateRangeEnabled bool - if prop.Snat != nil { - privateIPRanges = utils.FlattenStringSlice(prop.Snat.PrivateRanges) - isAutoLearnPrivateRangeEnabled = prop.Snat.AutoLearnPrivateRanges == network.AutoLearnPrivateRangesModeEnabled - } - if err := d.Set("private_ip_ranges", privateIPRanges); err != nil { - return fmt.Errorf("setting `private_ip_ranges`: %+v", err) - } + if err := d.Set("rule_collection_groups", flattenNetworkSubResourceID(props.RuleCollectionGroups)); err != nil { + return fmt.Errorf(`setting "rule_collection_groups": %+v`, err) + } - if err := d.Set("auto_learn_private_ranges_enabled", isAutoLearnPrivateRangeEnabled); err != nil { - return fmt.Errorf("setting `auto_learn_private_ranges_enabled`: %+v", err) - } + var privateIPRanges []interface{} + var isAutoLearnPrivateRangeEnabled bool + if props.Snat != nil { + privateIPRanges = utils.FlattenStringSlice(props.Snat.PrivateRanges) + isAutoLearnPrivateRangeEnabled = pointer.From(props.Snat.AutoLearnPrivateRanges) == firewallpolicies.AutoLearnPrivateRangesModeEnabled + } + if err := d.Set("private_ip_ranges", privateIPRanges); err != nil { + return fmt.Errorf("setting `private_ip_ranges`: %+v", err) + } - if err := d.Set("insights", flattenFirewallPolicyInsights(prop.Insights)); err != nil { - return fmt.Errorf(`setting "insights": %+v`, err) - } + if err := d.Set("auto_learn_private_ranges_enabled", isAutoLearnPrivateRangeEnabled); err != nil { + return fmt.Errorf("setting `auto_learn_private_ranges_enabled`: %+v", err) + } - proxySettings := flattenFirewallPolicyExplicitProxy(prop.ExplicitProxy) - if err := d.Set("explicit_proxy", proxySettings); err != nil { - return fmt.Errorf("setting `explicit_proxy`: %+v", err) - } + if err := d.Set("insights", flattenFirewallPolicyInsights(props.Insights)); err != nil { + return fmt.Errorf(`setting "insights": %+v`, err) + } - if prop.SQL != nil && prop.SQL.AllowSQLRedirect != nil { - if err := d.Set("sql_redirect_allowed", prop.SQL.AllowSQLRedirect); err != nil { - return fmt.Errorf("setting `sql_redirect_allowed`: %+v", err) + proxySettings := flattenFirewallPolicyExplicitProxy(props.ExplicitProxy) + if err := d.Set("explicit_proxy", proxySettings); err != nil { + return fmt.Errorf("setting `explicit_proxy`: %+v", err) + } + + if props.Sql != nil && props.Sql.AllowSqlRedirect != nil { + if err := d.Set("sql_redirect_allowed", props.Sql.AllowSqlRedirect); err != nil { + return fmt.Errorf("setting `sql_redirect_allowed`: %+v", err) + } } } - } - flattenedIdentity, err := flattenFirewallPolicyIdentity(resp.Identity) - if err != nil { - return fmt.Errorf("flattening `identity`: %+v", err) - } - if err := d.Set("identity", flattenedIdentity); err != nil { - return fmt.Errorf("setting `identity`: %+v", err) + flattenedIdentity, err := identity.FlattenSystemAndUserAssignedMap(model.Identity) + if err != nil { + return fmt.Errorf("flattening `identity`: %+v", err) + } + if err := d.Set("identity", flattenedIdentity); err != nil { + return fmt.Errorf("setting `identity`: %+v", err) + } + + return tags.FlattenAndSet(d, model.Tags) } - return tags.FlattenAndSet(d, resp.Tags) + return nil } func resourceFirewallPolicyDelete(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.FirewallPolicyClient + client := meta.(*clients.Client).Firewall.Client.FirewallPolicies ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.FirewallPolicyID(d.Id()) + id, err := firewallpolicies.ParseFirewallPolicyID(d.Id()) if err != nil { return err } - locks.ByName(id.Name, AzureFirewallPolicyResourceName) - defer locks.UnlockByName(id.Name, AzureFirewallPolicyResourceName) + locks.ByName(id.FirewallPolicyName, AzureFirewallPolicyResourceName) + defer locks.UnlockByName(id.FirewallPolicyName, AzureFirewallPolicyResourceName) - future, err := client.Delete(ctx, id.ResourceGroup, id.Name) - if err != nil { - return fmt.Errorf("deleting Firewall Policy %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) + if err := client.DeleteThenPoll(ctx, *id); err != nil { + return fmt.Errorf("deleting %s: %+v", id, err) } - if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - if !response.WasNotFound(future.Response()) { - return fmt.Errorf("waiting for deleting Firewall Policy %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) - } - } - return nil } -func expandFirewallPolicyThreatIntelWhitelist(input []interface{}) *network.FirewallPolicyThreatIntelWhitelist { +func expandFirewallPolicyThreatIntelWhitelist(input []interface{}) *firewallpolicies.FirewallPolicyThreatIntelWhitelist { if len(input) == 0 || input[0] == nil { return nil } raw := input[0].(map[string]interface{}) - output := &network.FirewallPolicyThreatIntelWhitelist{ + output := &firewallpolicies.FirewallPolicyThreatIntelWhitelist{ IPAddresses: utils.ExpandStringSlice(raw["ip_addresses"].(*pluginsdk.Set).List()), Fqdns: utils.ExpandStringSlice(raw["fqdns"].(*pluginsdk.Set).List()), } @@ -287,13 +286,13 @@ func expandFirewallPolicyThreatIntelWhitelist(input []interface{}) *network.Fire return output } -func expandFirewallPolicyDNSSetting(input []interface{}) *network.DNSSettings { +func expandFirewallPolicyDNSSetting(input []interface{}) *firewallpolicies.DnsSettings { if len(input) == 0 || input[0] == nil { return nil } raw := input[0].(map[string]interface{}) - output := &network.DNSSettings{ + output := &firewallpolicies.DnsSettings{ Servers: utils.ExpandStringSlice(raw["servers"].([]interface{})), EnableProxy: utils.Bool(raw["proxy_enabled"].(bool)), } @@ -301,30 +300,30 @@ func expandFirewallPolicyDNSSetting(input []interface{}) *network.DNSSettings { return output } -func expandFirewallPolicyIntrusionDetection(input []interface{}) *network.FirewallPolicyIntrusionDetection { +func expandFirewallPolicyIntrusionDetection(input []interface{}) *firewallpolicies.FirewallPolicyIntrusionDetection { if len(input) == 0 || input[0] == nil { return nil } raw := input[0].(map[string]interface{}) - var signatureOverrides []network.FirewallPolicyIntrusionDetectionSignatureSpecification + var signatureOverrides []firewallpolicies.FirewallPolicyIntrusionDetectionSignatureSpecification for _, v := range raw["signature_overrides"].([]interface{}) { overrides := v.(map[string]interface{}) - signatureOverrides = append(signatureOverrides, network.FirewallPolicyIntrusionDetectionSignatureSpecification{ - ID: utils.String(overrides["id"].(string)), - Mode: network.FirewallPolicyIntrusionDetectionStateType(overrides["state"].(string)), + signatureOverrides = append(signatureOverrides, firewallpolicies.FirewallPolicyIntrusionDetectionSignatureSpecification{ + Id: utils.String(overrides["id"].(string)), + Mode: pointer.To(firewallpolicies.FirewallPolicyIntrusionDetectionStateType(overrides["state"].(string))), }) } - var trafficBypass []network.FirewallPolicyIntrusionDetectionBypassTrafficSpecifications + var trafficBypass []firewallpolicies.FirewallPolicyIntrusionDetectionBypassTrafficSpecifications for _, v := range raw["traffic_bypass"].([]interface{}) { bypass := v.(map[string]interface{}) - trafficBypass = append(trafficBypass, network.FirewallPolicyIntrusionDetectionBypassTrafficSpecifications{ + trafficBypass = append(trafficBypass, firewallpolicies.FirewallPolicyIntrusionDetectionBypassTrafficSpecifications{ Name: utils.String(bypass["name"].(string)), Description: utils.String(bypass["description"].(string)), - Protocol: network.FirewallPolicyIntrusionDetectionProtocol(bypass["protocol"].(string)), + Protocol: pointer.To(firewallpolicies.FirewallPolicyIntrusionDetectionProtocol(bypass["protocol"].(string))), SourceAddresses: utils.ExpandStringSlice(bypass["source_addresses"].(*pluginsdk.Set).List()), DestinationAddresses: utils.ExpandStringSlice(bypass["destination_addresses"].(*pluginsdk.Set).List()), DestinationPorts: utils.ExpandStringSlice(bypass["destination_ports"].(*pluginsdk.Set).List()), @@ -338,9 +337,9 @@ func expandFirewallPolicyIntrusionDetection(input []interface{}) *network.Firewa privateRanges = append(privateRanges, v.(string)) } - return &network.FirewallPolicyIntrusionDetection{ - Mode: network.FirewallPolicyIntrusionDetectionStateType(raw["mode"].(string)), - Configuration: &network.FirewallPolicyIntrusionDetectionConfiguration{ + return &firewallpolicies.FirewallPolicyIntrusionDetection{ + Mode: pointer.To(firewallpolicies.FirewallPolicyIntrusionDetectionStateType(raw["mode"].(string))), + Configuration: &firewallpolicies.FirewallPolicyIntrusionDetectionConfiguration{ SignatureOverrides: &signatureOverrides, PrivateRanges: &privateRanges, BypassTrafficSettings: &trafficBypass, @@ -348,64 +347,37 @@ func expandFirewallPolicyIntrusionDetection(input []interface{}) *network.Firewa } } -func expandFirewallPolicyTransportSecurity(input []interface{}) *network.FirewallPolicyTransportSecurity { +func expandFirewallPolicyTransportSecurity(input []interface{}) *firewallpolicies.FirewallPolicyTransportSecurity { if len(input) == 0 || input[0] == nil { return nil } raw := input[0].(map[string]interface{}) - return &network.FirewallPolicyTransportSecurity{ - CertificateAuthority: &network.FirewallPolicyCertificateAuthority{ - KeyVaultSecretID: utils.String(raw["key_vault_secret_id"].(string)), + return &firewallpolicies.FirewallPolicyTransportSecurity{ + CertificateAuthority: &firewallpolicies.FirewallPolicyCertificateAuthority{ + KeyVaultSecretId: utils.String(raw["key_vault_secret_id"].(string)), Name: utils.String(raw["name"].(string)), }, } } -func expandFirewallPolicyIdentity(input []interface{}) (*network.ManagedServiceIdentity, error) { - expanded, err := identity.ExpandUserAssignedMap(input) - if err != nil { - return nil, err - } - - if expanded.Type == identity.TypeNone { - return nil, nil - } - - out := network.ManagedServiceIdentity{ - PrincipalID: nil, - TenantID: nil, - Type: network.ResourceIdentityType(string(expanded.Type)), - UserAssignedIdentities: nil, - } - if expanded.Type == identity.TypeUserAssigned { - out.UserAssignedIdentities = make(map[string]*network.ManagedServiceIdentityUserAssignedIdentitiesValue) - for k := range expanded.IdentityIds { - out.UserAssignedIdentities[k] = &network.ManagedServiceIdentityUserAssignedIdentitiesValue{ - // intentionally empty - } - } - } - return &out, nil -} - -func expandFirewallPolicyInsights(input []interface{}) *network.FirewallPolicyInsights { +func expandFirewallPolicyInsights(input []interface{}) *firewallpolicies.FirewallPolicyInsights { if len(input) == 0 || input[0] == nil { return nil } raw := input[0].(map[string]interface{}) - output := &network.FirewallPolicyInsights{ + output := &firewallpolicies.FirewallPolicyInsights{ IsEnabled: utils.Bool(raw["enabled"].(bool)), - RetentionDays: utils.Int32(int32(raw["retention_in_days"].(int))), + RetentionDays: utils.Int64(int64(raw["retention_in_days"].(int))), LogAnalyticsResources: expandFirewallPolicyLogAnalyticsResources(raw["default_log_analytics_workspace_id"].(string), raw["log_analytics_workspace"].([]interface{})), } return output } -func expandFirewallPolicyExplicitProxy(input []interface{}) *network.ExplicitProxy { +func expandFirewallPolicyExplicitProxy(input []interface{}) *firewallpolicies.ExplicitProxy { if len(input) == 0 || input[0] == nil { return nil } @@ -415,11 +387,11 @@ func expandFirewallPolicyExplicitProxy(input []interface{}) *network.ExplicitPro return nil } - output := &network.ExplicitProxy{ + output := &firewallpolicies.ExplicitProxy{ EnableExplicitProxy: utils.Bool(raw["enabled"].(bool)), - HTTPPort: utils.Int32(int32(raw["http_port"].(int))), - HTTPSPort: utils.Int32(int32(raw["https_port"].(int))), - PacFilePort: utils.Int32(int32(raw["pac_file_port"].(int))), + HTTPPort: utils.Int64(int64(raw["http_port"].(int))), + HTTPSPort: utils.Int64(int64(raw["https_port"].(int))), + PacFilePort: utils.Int64(int64(raw["pac_file_port"].(int))), PacFile: utils.String(raw["pac_file"].(string)), } @@ -430,20 +402,20 @@ func expandFirewallPolicyExplicitProxy(input []interface{}) *network.ExplicitPro return output } -func expandFirewallPolicyLogAnalyticsResources(defaultWorkspaceId string, workspaces []interface{}) *network.FirewallPolicyLogAnalyticsResources { - output := &network.FirewallPolicyLogAnalyticsResources{ - DefaultWorkspaceID: &network.SubResource{ - ID: &defaultWorkspaceId, +func expandFirewallPolicyLogAnalyticsResources(defaultWorkspaceId string, workspaces []interface{}) *firewallpolicies.FirewallPolicyLogAnalyticsResources { + output := &firewallpolicies.FirewallPolicyLogAnalyticsResources{ + DefaultWorkspaceId: &firewallpolicies.SubResource{ + Id: &defaultWorkspaceId, }, } - var workspaceList []network.FirewallPolicyLogAnalyticsWorkspace + var workspaceList []firewallpolicies.FirewallPolicyLogAnalyticsWorkspace for _, workspace := range workspaces { workspace := workspace.(map[string]interface{}) - workspaceList = append(workspaceList, network.FirewallPolicyLogAnalyticsWorkspace{ + workspaceList = append(workspaceList, firewallpolicies.FirewallPolicyLogAnalyticsWorkspace{ Region: utils.String(location.Normalize(workspace["firewall_location"].(string))), - WorkspaceID: &network.SubResource{ - ID: utils.String(workspace["id"].(string)), + WorkspaceId: &firewallpolicies.SubResource{ + Id: utils.String(workspace["id"].(string)), }, }) } @@ -454,7 +426,7 @@ func expandFirewallPolicyLogAnalyticsResources(defaultWorkspaceId string, worksp return output } -func flattenFirewallPolicyThreatIntelWhitelist(input *network.FirewallPolicyThreatIntelWhitelist) []interface{} { +func flattenFirewallPolicyThreatIntelWhitelist(input *firewallpolicies.FirewallPolicyThreatIntelWhitelist) []interface{} { if input == nil { return []interface{}{} } @@ -467,7 +439,7 @@ func flattenFirewallPolicyThreatIntelWhitelist(input *network.FirewallPolicyThre } } -func flattenFirewallPolicyDNSSetting(input *network.DNSSettings) []interface{} { +func flattenFirewallPolicyDNSSetting(input *firewallpolicies.DnsSettings) []interface{} { if input == nil { return []interface{}{} } @@ -484,7 +456,7 @@ func flattenFirewallPolicyDNSSetting(input *network.DNSSettings) []interface{} { }} } -func flattenFirewallPolicyIntrusionDetection(input *network.FirewallPolicyIntrusionDetection) []interface{} { +func flattenFirewallPolicyIntrusionDetection(input *firewallpolicies.FirewallPolicyIntrusionDetection) []interface{} { if input == nil { return []interface{}{} } @@ -495,7 +467,7 @@ func flattenFirewallPolicyIntrusionDetection(input *network.FirewallPolicyIntrus if input.Configuration == nil { return []interface{}{ map[string]interface{}{ - "mode": string(input.Mode), + "mode": string(pointer.From(input.Mode)), "signature_overrides": signatureOverrides, "traffic_bypass": trafficBypass, }, @@ -505,12 +477,12 @@ func flattenFirewallPolicyIntrusionDetection(input *network.FirewallPolicyIntrus if overrides := input.Configuration.SignatureOverrides; overrides != nil { for _, override := range *overrides { id := "" - if override.ID != nil { - id = *override.ID + if override.Id != nil { + id = *override.Id } signatureOverrides = append(signatureOverrides, map[string]interface{}{ "id": id, - "state": string(override.Mode), + "state": string(pointer.From(override.Mode)), }) } } @@ -555,7 +527,7 @@ func flattenFirewallPolicyIntrusionDetection(input *network.FirewallPolicyIntrus trafficBypass = append(trafficBypass, map[string]interface{}{ "name": name, "description": description, - "protocol": string(bypass.Protocol), + "protocol": string(pointer.From(bypass.Protocol)), "source_addresses": sourceAddresses, "destination_addresses": destinationAddresses, "destination_ports": destinationPorts, @@ -571,7 +543,7 @@ func flattenFirewallPolicyIntrusionDetection(input *network.FirewallPolicyIntrus return []interface{}{ map[string]interface{}{ - "mode": string(input.Mode), + "mode": string(pointer.From(input.Mode)), "signature_overrides": signatureOverrides, "traffic_bypass": trafficBypass, "private_ranges": privateRanges, @@ -579,39 +551,20 @@ func flattenFirewallPolicyIntrusionDetection(input *network.FirewallPolicyIntrus } } -func flattenFirewallPolicyTransportSecurity(input *network.FirewallPolicyTransportSecurity) []interface{} { +func flattenFirewallPolicyTransportSecurity(input *firewallpolicies.FirewallPolicyTransportSecurity) []interface{} { if input == nil || input.CertificateAuthority == nil { return []interface{}{} } return []interface{}{ map[string]interface{}{ - "key_vault_secret_id": input.CertificateAuthority.KeyVaultSecretID, + "key_vault_secret_id": input.CertificateAuthority.KeyVaultSecretId, "name": input.CertificateAuthority.Name, }, } } -func flattenFirewallPolicyIdentity(input *network.ManagedServiceIdentity) (*[]interface{}, error) { - var transition *identity.UserAssignedMap - - if input != nil { - transition = &identity.UserAssignedMap{ - Type: identity.Type(string(input.Type)), - IdentityIds: make(map[string]identity.UserAssignedIdentityDetails), - } - for k, v := range input.UserAssignedIdentities { - transition.IdentityIds[k] = identity.UserAssignedIdentityDetails{ - ClientId: v.ClientID, - PrincipalId: v.PrincipalID, - } - } - } - - return identity.FlattenUserAssignedMap(transition) -} - -func flattenFirewallPolicyInsights(input *network.FirewallPolicyInsights) []interface{} { +func flattenFirewallPolicyInsights(input *firewallpolicies.FirewallPolicyInsights) []interface{} { if input == nil { return []interface{}{} } @@ -638,7 +591,7 @@ func flattenFirewallPolicyInsights(input *network.FirewallPolicyInsights) []inte } } -func flattenFirewallPolicyExplicitProxy(input *network.ExplicitProxy) (result []interface{}) { +func flattenFirewallPolicyExplicitProxy(input *firewallpolicies.ExplicitProxy) (result []interface{}) { if input == nil { return } @@ -653,14 +606,14 @@ func flattenFirewallPolicyExplicitProxy(input *network.ExplicitProxy) (result [] return []interface{}{output} } -func flattenFirewallPolicyLogAnalyticsResources(input *network.FirewallPolicyLogAnalyticsResources) (string, []interface{}) { +func flattenFirewallPolicyLogAnalyticsResources(input *firewallpolicies.FirewallPolicyLogAnalyticsResources) (string, []interface{}) { if input == nil { return "", []interface{}{} } var defaultLogAnalyticsWorkspaceId string - if input.DefaultWorkspaceID != nil && input.DefaultWorkspaceID.ID != nil { - defaultLogAnalyticsWorkspaceId = *input.DefaultWorkspaceID.ID + if input.DefaultWorkspaceId != nil && input.DefaultWorkspaceId.Id != nil { + defaultLogAnalyticsWorkspaceId = *input.DefaultWorkspaceId.Id } var workspaceList []interface{} @@ -669,8 +622,8 @@ func flattenFirewallPolicyLogAnalyticsResources(input *network.FirewallPolicyLog loc := location.NormalizeNilable(workspace.Region) var id string - if workspace.WorkspaceID != nil && workspace.WorkspaceID.ID != nil { - id = *workspace.WorkspaceID.ID + if workspace.WorkspaceId != nil && workspace.WorkspaceId.Id != nil { + id = *workspace.WorkspaceId.Id } workspaceList = append(workspaceList, map[string]interface{}{ @@ -700,9 +653,9 @@ func resourceFirewallPolicySchema() map[string]*pluginsdk.Schema { Computed: true, ForceNew: true, ValidateFunc: validation.StringInSlice([]string{ - string(network.FirewallPolicySkuTierPremium), - string(network.FirewallPolicySkuTierStandard), - string(network.FirewallPolicySkuTierBasic), + string(firewallpolicies.FirewallPolicySkuTierPremium), + string(firewallpolicies.FirewallPolicySkuTierStandard), + string(firewallpolicies.FirewallPolicySkuTierBasic), }, false), }, @@ -711,7 +664,7 @@ func resourceFirewallPolicySchema() map[string]*pluginsdk.Schema { "base_policy_id": { Type: pluginsdk.TypeString, Optional: true, - ValidateFunc: validate.FirewallPolicyID, + ValidateFunc: firewallpolicies.ValidateFirewallPolicyID, }, "dns": { @@ -741,11 +694,11 @@ func resourceFirewallPolicySchema() map[string]*pluginsdk.Schema { "threat_intelligence_mode": { Type: pluginsdk.TypeString, Optional: true, - Default: string(network.AzureFirewallThreatIntelModeAlert), + Default: string(firewallpolicies.AzureFirewallThreatIntelModeAlert), ValidateFunc: validation.StringInSlice([]string{ - string(network.AzureFirewallThreatIntelModeAlert), - string(network.AzureFirewallThreatIntelModeDeny), - string(network.AzureFirewallThreatIntelModeOff), + string(firewallpolicies.AzureFirewallThreatIntelModeAlert), + string(firewallpolicies.AzureFirewallThreatIntelModeDeny), + string(firewallpolicies.AzureFirewallThreatIntelModeOff), }, false), }, @@ -787,9 +740,9 @@ func resourceFirewallPolicySchema() map[string]*pluginsdk.Schema { "mode": { Type: pluginsdk.TypeString, ValidateFunc: validation.StringInSlice([]string{ - string(network.FirewallPolicyIntrusionDetectionStateTypeOff), - string(network.FirewallPolicyIntrusionDetectionStateTypeAlert), - string(network.FirewallPolicyIntrusionDetectionStateTypeDeny), + string(firewallpolicies.FirewallPolicyIntrusionDetectionStateTypeOff), + string(firewallpolicies.FirewallPolicyIntrusionDetectionStateTypeAlert), + string(firewallpolicies.FirewallPolicyIntrusionDetectionStateTypeDeny), }, false), Optional: true, }, @@ -801,9 +754,9 @@ func resourceFirewallPolicySchema() map[string]*pluginsdk.Schema { "state": { Type: pluginsdk.TypeString, ValidateFunc: validation.StringInSlice([]string{ - string(network.FirewallPolicyIntrusionDetectionStateTypeOff), - string(network.FirewallPolicyIntrusionDetectionStateTypeAlert), - string(network.FirewallPolicyIntrusionDetectionStateTypeDeny), + string(firewallpolicies.FirewallPolicyIntrusionDetectionStateTypeOff), + string(firewallpolicies.FirewallPolicyIntrusionDetectionStateTypeAlert), + string(firewallpolicies.FirewallPolicyIntrusionDetectionStateTypeDeny), }, false), Optional: true, }, @@ -840,10 +793,10 @@ func resourceFirewallPolicySchema() map[string]*pluginsdk.Schema { // protocol to be one of [ICMP ANY TCP UDP] but response may be "Any" DiffSuppressFunc: suppress.CaseDifference, ValidateFunc: validation.StringInSlice([]string{ - string(network.FirewallPolicyIntrusionDetectionProtocolICMP), - string(network.FirewallPolicyIntrusionDetectionProtocolANY), - string(network.FirewallPolicyIntrusionDetectionProtocolTCP), - string(network.FirewallPolicyIntrusionDetectionProtocolUDP), + string(firewallpolicies.FirewallPolicyIntrusionDetectionProtocolICMP), + string(firewallpolicies.FirewallPolicyIntrusionDetectionProtocolANY), + string(firewallpolicies.FirewallPolicyIntrusionDetectionProtocolTCP), + string(firewallpolicies.FirewallPolicyIntrusionDetectionProtocolUDP), }, true), }, "source_addresses": { @@ -888,7 +841,7 @@ func resourceFirewallPolicySchema() map[string]*pluginsdk.Schema { }, }, - "identity": commonschema.UserAssignedIdentityOptional(), + "identity": commonschema.SystemAssignedUserAssignedIdentityOptional(), "tls_certificate": { Type: pluginsdk.TypeList, @@ -1032,6 +985,6 @@ func resourceFirewallPolicySchema() map[string]*pluginsdk.Schema { Optional: true, }, - "tags": tags.Schema(), + "tags": commonschema.Tags(), } } diff --git a/internal/services/firewall/firewall_policy_resource_test.go b/internal/services/firewall/firewall_policy_resource_test.go index ec0a4acc7a2a..48fe15e38099 100644 --- a/internal/services/firewall/firewall_policy_resource_test.go +++ b/internal/services/firewall/firewall_policy_resource_test.go @@ -8,10 +8,10 @@ import ( "fmt" "testing" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicies" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" ) @@ -194,17 +194,17 @@ func TestAccFirewallPolicy_insights(t *testing.T) { } func (FirewallPolicyResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { - id, err := parse.FirewallPolicyID(state.ID) + id, err := firewallpolicies.ParseFirewallPolicyID(state.ID) if err != nil { return nil, err } - resp, err := clients.Firewall.FirewallPolicyClient.Get(ctx, id.ResourceGroup, id.Name, "") + resp, err := clients.Firewall.Client.FirewallPolicies.Get(ctx, *id, firewallpolicies.DefaultGetOperationOptions()) if err != nil { return nil, fmt.Errorf("retrieving %s: %v", id.String(), err) } - return utils.Bool(resp.FirewallPolicyPropertiesFormat != nil), nil + return utils.Bool(resp.Model != nil), nil } func (FirewallPolicyResource) basic(data acceptance.TestData) string { diff --git a/internal/services/firewall/firewall_policy_rule_collection_group_resource.go b/internal/services/firewall/firewall_policy_rule_collection_group_resource.go index 1c17b1d10915..3bc95544e0d8 100644 --- a/internal/services/firewall/firewall_policy_rule_collection_group_resource.go +++ b/internal/services/firewall/firewall_policy_rule_collection_group_resource.go @@ -7,20 +7,21 @@ import ( "fmt" "log" "strconv" + "strings" "time" "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicies" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicyrulecollectiongroups" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" "github.com/hashicorp/terraform-provider-azurerm/utils" - "github.com/tombuildsstuff/kermit/sdk/network/2022-07-01/network" ) func resourceFirewallPolicyRuleCollectionGroup() *pluginsdk.Resource { @@ -31,7 +32,7 @@ func resourceFirewallPolicyRuleCollectionGroup() *pluginsdk.Resource { Delete: resourceFirewallPolicyRuleCollectionGroupDelete, Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { - _, err := parse.FirewallPolicyRuleCollectionGroupID(id) + _, err := firewallpolicyrulecollectiongroups.ParseRuleCollectionGroupID(id) return err }), @@ -54,7 +55,7 @@ func resourceFirewallPolicyRuleCollectionGroup() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ForceNew: true, - ValidateFunc: validate.FirewallPolicyID, + ValidateFunc: firewallpolicies.ValidateFirewallPolicyID, }, "priority": { @@ -83,8 +84,8 @@ func resourceFirewallPolicyRuleCollectionGroup() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ValidateFunc: validation.StringInSlice([]string{ - string(network.FirewallPolicyFilterRuleCollectionActionTypeAllow), - string(network.FirewallPolicyFilterRuleCollectionActionTypeDeny), + string(firewallpolicyrulecollectiongroups.FirewallPolicyFilterRuleCollectionActionTypeAllow), + string(firewallpolicyrulecollectiongroups.FirewallPolicyFilterRuleCollectionActionTypeDeny), }, false), }, "rule": { @@ -112,8 +113,8 @@ func resourceFirewallPolicyRuleCollectionGroup() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ValidateFunc: validation.StringInSlice([]string{ - string(network.FirewallPolicyRuleApplicationProtocolTypeHTTP), - string(network.FirewallPolicyRuleApplicationProtocolTypeHTTPS), + string(firewallpolicyrulecollectiongroups.FirewallPolicyRuleApplicationProtocolTypeHTTP), + string(firewallpolicyrulecollectiongroups.FirewallPolicyRuleApplicationProtocolTypeHTTPS), "Mssql", }, false), }, @@ -222,8 +223,8 @@ func resourceFirewallPolicyRuleCollectionGroup() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ValidateFunc: validation.StringInSlice([]string{ - string(network.FirewallPolicyFilterRuleCollectionActionTypeAllow), - string(network.FirewallPolicyFilterRuleCollectionActionTypeDeny), + string(firewallpolicyrulecollectiongroups.FirewallPolicyFilterRuleCollectionActionTypeAllow), + string(firewallpolicyrulecollectiongroups.FirewallPolicyFilterRuleCollectionActionTypeDeny), }, false), }, "rule": { @@ -248,10 +249,10 @@ func resourceFirewallPolicyRuleCollectionGroup() *pluginsdk.Resource { Elem: &pluginsdk.Schema{ Type: pluginsdk.TypeString, ValidateFunc: validation.StringInSlice([]string{ - string(network.FirewallPolicyRuleNetworkProtocolAny), - string(network.FirewallPolicyRuleNetworkProtocolTCP), - string(network.FirewallPolicyRuleNetworkProtocolUDP), - string(network.FirewallPolicyRuleNetworkProtocolICMP), + string(firewallpolicyrulecollectiongroups.FirewallPolicyRuleNetworkProtocolAny), + string(firewallpolicyrulecollectiongroups.FirewallPolicyRuleNetworkProtocolTCP), + string(firewallpolicyrulecollectiongroups.FirewallPolicyRuleNetworkProtocolUDP), + string(firewallpolicyrulecollectiongroups.FirewallPolicyRuleNetworkProtocolICMP), }, false), }, }, @@ -339,7 +340,7 @@ func resourceFirewallPolicyRuleCollectionGroup() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ValidateFunc: validation.StringInSlice([]string{ - // Hardcode to using `Dnat` instead of the one defined in Swagger (i.e. network.DNAT) because of: https://github.com/Azure/azure-rest-api-specs/issues/9986 + // Hardcode to using `Dnat` instead of the one defined in Swagger (i.e. firewallpolicyrulecollectiongroups.DNAT) because of: https://github.com/Azure/azure-rest-api-specs/issues/9986 // Setting `StateFunc: state.IgnoreCase` will cause other issues, as tracked by: https://github.com/hashicorp/terraform-plugin-sdk/issues/485 "Dnat", }, false), @@ -366,8 +367,8 @@ func resourceFirewallPolicyRuleCollectionGroup() *pluginsdk.Resource { Elem: &pluginsdk.Schema{ Type: pluginsdk.TypeString, ValidateFunc: validation.StringInSlice([]string{ - string(network.FirewallPolicyRuleNetworkProtocolTCP), - string(network.FirewallPolicyRuleNetworkProtocolUDP), + string(firewallpolicyrulecollectiongroups.FirewallPolicyRuleNetworkProtocolTCP), + string(firewallpolicyrulecollectiongroups.FirewallPolicyRuleNetworkProtocolUDP), }, false), }, }, @@ -436,38 +437,39 @@ func resourceFirewallPolicyRuleCollectionGroup() *pluginsdk.Resource { } func resourceFirewallPolicyRuleCollectionGroupCreateUpdate(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.FirewallPolicyRuleGroupClient + client := meta.(*clients.Client).Firewall.Client.FirewallPolicyRuleCollectionGroups ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() - name := d.Get("name").(string) - policyId, err := parse.FirewallPolicyID(d.Get("firewall_policy_id").(string)) + policyId, err := firewallpolicies.ParseFirewallPolicyID(d.Get("firewall_policy_id").(string)) if err != nil { return err } + id := firewallpolicyrulecollectiongroups.NewRuleCollectionGroupID(policyId.SubscriptionId, policyId.ResourceGroupName, policyId.FirewallPolicyName, d.Get("name").(string)) + if d.IsNewResource() { - resp, err := client.Get(ctx, policyId.ResourceGroup, policyId.Name, name) + resp, err := client.Get(ctx, id) if err != nil { - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("checking for existing Firewall Policy Rule Collection Group %q (Resource Group %q / Policy %q): %+v", name, policyId.ResourceGroup, policyId.Name, err) + if !response.WasNotFound(resp.HttpResponse) { + return fmt.Errorf("checking for existing %s: %+v", id, err) } } - if resp.ID != nil && *resp.ID != "" { - return tf.ImportAsExistsError("azurerm_firewall_policy_rule_collection_group", *resp.ID) + if resp.Model != nil { + return tf.ImportAsExistsError("azurerm_firewall_policy_rule_collection_group", id.ID()) } } - locks.ByName(policyId.Name, AzureFirewallPolicyResourceName) - defer locks.UnlockByName(policyId.Name, AzureFirewallPolicyResourceName) + locks.ByName(policyId.FirewallPolicyName, AzureFirewallPolicyResourceName) + defer locks.UnlockByName(policyId.FirewallPolicyName, AzureFirewallPolicyResourceName) - param := network.FirewallPolicyRuleCollectionGroup{ - FirewallPolicyRuleCollectionGroupProperties: &network.FirewallPolicyRuleCollectionGroupProperties{ - Priority: utils.Int32(int32(d.Get("priority").(int))), + param := firewallpolicyrulecollectiongroups.FirewallPolicyRuleCollectionGroup{ + Properties: &firewallpolicyrulecollectiongroups.FirewallPolicyRuleCollectionGroupProperties{ + Priority: utils.Int64(int64(d.Get("priority").(int))), }, } - var rulesCollections []network.BasicFirewallPolicyRuleCollection + var rulesCollections []firewallpolicyrulecollectiongroups.FirewallPolicyRuleCollection rulesCollections = append(rulesCollections, expandFirewallPolicyRuleCollectionApplication(d.Get("application_rule_collection").([]interface{}))...) rulesCollections = append(rulesCollections, expandFirewallPolicyRuleCollectionNetwork(d.Get("network_rule_collection").([]interface{}))...) @@ -477,27 +479,12 @@ func resourceFirewallPolicyRuleCollectionGroupCreateUpdate(d *pluginsdk.Resource } rulesCollections = append(rulesCollections, natRules...) - param.FirewallPolicyRuleCollectionGroupProperties.RuleCollections = &rulesCollections + param.Properties.RuleCollections = &rulesCollections - future, err := client.CreateOrUpdate(ctx, policyId.ResourceGroup, policyId.Name, name, param) - if err != nil { - return fmt.Errorf("creating Firewall Policy Rule Collection Group %q (Resource Group %q / Policy: %q): %+v", name, policyId.ResourceGroup, policyId.Name, err) - } - if err := future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting Firewall Policy Rule Collection Group %q (Resource Group %q / Policy: %q): %+v", name, policyId.ResourceGroup, policyId.Name, err) + if err = client.CreateOrUpdateThenPoll(ctx, id, param); err != nil { + return fmt.Errorf("creating %s: %+v", id, err) } - resp, err := client.Get(ctx, policyId.ResourceGroup, policyId.Name, name) - if err != nil { - return fmt.Errorf("retrieving Firewall Policy Rule Collection Group %q (Resource Group %q / Policy: %q): %+v", name, policyId.ResourceGroup, policyId.Name, err) - } - if resp.ID == nil || *resp.ID == "" { - return fmt.Errorf("empty or nil ID returned for Firewall Policy Rule Collection Group %q (Resource Group %q / Policy: %q) ID", name, policyId.ResourceGroup, policyId.Name) - } - id, err := parse.FirewallPolicyRuleCollectionGroupID(*resp.ID) - if err != nil { - return err - } d.SetId(id.ID()) return resourceFirewallPolicyRuleCollectionGroupRead(d, meta) @@ -505,54 +492,59 @@ func resourceFirewallPolicyRuleCollectionGroupCreateUpdate(d *pluginsdk.Resource func resourceFirewallPolicyRuleCollectionGroupRead(d *pluginsdk.ResourceData, meta interface{}) error { subscriptionId := meta.(*clients.Client).Account.SubscriptionId - client := meta.(*clients.Client).Firewall.FirewallPolicyRuleGroupClient + client := meta.(*clients.Client).Firewall.Client.FirewallPolicyRuleCollectionGroups ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.FirewallPolicyRuleCollectionGroupID(d.Id()) + id, err := firewallpolicyrulecollectiongroups.ParseRuleCollectionGroupID(d.Id()) if err != nil { return err } - resp, err := client.Get(ctx, id.ResourceGroup, id.FirewallPolicyName, id.RuleCollectionGroupName) + resp, err := client.Get(ctx, *id) if err != nil { - if utils.ResponseWasNotFound(resp.Response) { - log.Printf("[DEBUG] Firewall Policy Rule Collection Group %q was not found in Resource Group %q - removing from state!", id.RuleCollectionGroupName, id.ResourceGroup) + if response.WasNotFound(resp.HttpResponse) { + log.Printf("[DEBUG] %s was not found- removing from state!", id) d.SetId("") return nil } - return fmt.Errorf("retrieving Firewall Policy Rule Collection Group %q (Resource Group %q / Policy: %q): %+v", id.RuleCollectionGroupName, id.ResourceGroup, id.FirewallPolicyName, err) + return fmt.Errorf("retrieving %s: %+v", id, err) } - d.Set("name", resp.Name) - d.Set("priority", resp.Priority) - d.Set("firewall_policy_id", parse.NewFirewallPolicyID(subscriptionId, id.ResourceGroup, id.FirewallPolicyName).ID()) + d.Set("name", id.RuleCollectionGroupName) + d.Set("firewall_policy_id", firewallpolicies.NewFirewallPolicyID(subscriptionId, id.ResourceGroupName, id.FirewallPolicyName).ID()) - applicationRuleCollections, networkRuleCollections, natRuleCollections, err := flattenFirewallPolicyRuleCollection(resp.RuleCollections) - if err != nil { - return fmt.Errorf("flattening Firewall Policy Rule Collections: %+v", err) - } + if model := resp.Model; model != nil { + if props := model.Properties; props != nil { + d.Set("priority", props.Priority) - if err := d.Set("application_rule_collection", applicationRuleCollections); err != nil { - return fmt.Errorf("setting `application_rule_collection`: %+v", err) - } - if err := d.Set("network_rule_collection", networkRuleCollections); err != nil { - return fmt.Errorf("setting `network_rule_collection`: %+v", err) - } - if err := d.Set("nat_rule_collection", natRuleCollections); err != nil { - return fmt.Errorf("setting `nat_rule_collection`: %+v", err) + applicationRuleCollections, networkRuleCollections, natRuleCollections, err := flattenFirewallPolicyRuleCollection(props.RuleCollections) + if err != nil { + return fmt.Errorf("flattening Firewall Policy Rule Collections: %+v", err) + } + + if err := d.Set("application_rule_collection", applicationRuleCollections); err != nil { + return fmt.Errorf("setting `application_rule_collection`: %+v", err) + } + if err := d.Set("network_rule_collection", networkRuleCollections); err != nil { + return fmt.Errorf("setting `network_rule_collection`: %+v", err) + } + if err := d.Set("nat_rule_collection", natRuleCollections); err != nil { + return fmt.Errorf("setting `nat_rule_collection`: %+v", err) + } + } } return nil } func resourceFirewallPolicyRuleCollectionGroupDelete(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.FirewallPolicyRuleGroupClient + client := meta.(*clients.Client).Firewall.Client.FirewallPolicyRuleCollectionGroups ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.FirewallPolicyRuleCollectionGroupID(d.Id()) + id, err := firewallpolicyrulecollectiongroups.ParseRuleCollectionGroupID(d.Id()) if err != nil { return err } @@ -560,41 +552,33 @@ func resourceFirewallPolicyRuleCollectionGroupDelete(d *pluginsdk.ResourceData, locks.ByName(id.FirewallPolicyName, AzureFirewallPolicyResourceName) defer locks.UnlockByName(id.FirewallPolicyName, AzureFirewallPolicyResourceName) - future, err := client.Delete(ctx, id.ResourceGroup, id.FirewallPolicyName, id.RuleCollectionGroupName) - if err != nil { - return fmt.Errorf("deleting Firewall Policy Rule Collection Group %q (Resource Group %q / Policy: %q): %+v", id.RuleCollectionGroupName, id.ResourceGroup, id.FirewallPolicyName, err) - } - if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - if !response.WasNotFound(future.Response()) { - return fmt.Errorf("waiting for deleting %q (Resource Group %q / Policy: %q): %+v", id.RuleCollectionGroupName, id.ResourceGroup, id.FirewallPolicyName, err) - } + if err = client.DeleteThenPoll(ctx, *id); err != nil { + return fmt.Errorf("deleting %s: %+v", id, err) } - return nil } -func expandFirewallPolicyRuleCollectionApplication(input []interface{}) []network.BasicFirewallPolicyRuleCollection { +func expandFirewallPolicyRuleCollectionApplication(input []interface{}) []firewallpolicyrulecollectiongroups.FirewallPolicyRuleCollection { return expandFirewallPolicyFilterRuleCollection(input, expandFirewallPolicyRuleApplication) } -func expandFirewallPolicyRuleCollectionNetwork(input []interface{}) []network.BasicFirewallPolicyRuleCollection { +func expandFirewallPolicyRuleCollectionNetwork(input []interface{}) []firewallpolicyrulecollectiongroups.FirewallPolicyRuleCollection { return expandFirewallPolicyFilterRuleCollection(input, expandFirewallPolicyRuleNetwork) } -func expandFirewallPolicyRuleCollectionNat(input []interface{}) ([]network.BasicFirewallPolicyRuleCollection, error) { - result := make([]network.BasicFirewallPolicyRuleCollection, 0) +func expandFirewallPolicyRuleCollectionNat(input []interface{}) ([]firewallpolicyrulecollectiongroups.FirewallPolicyRuleCollection, error) { + result := make([]firewallpolicyrulecollectiongroups.FirewallPolicyRuleCollection, 0) for _, e := range input { rule := e.(map[string]interface{}) rules, err := expandFirewallPolicyRuleNat(rule["rule"].([]interface{})) if err != nil { return nil, err } - output := &network.FirewallPolicyNatRuleCollection{ - RuleCollectionType: network.RuleCollectionTypeFirewallPolicyNatRuleCollection, - Name: utils.String(rule["name"].(string)), - Priority: utils.Int32(int32(rule["priority"].(int))), - Action: &network.FirewallPolicyNatRuleCollectionAction{ - Type: network.FirewallPolicyNatRuleCollectionActionType(rule["action"].(string)), + output := &firewallpolicyrulecollectiongroups.FirewallPolicyNatRuleCollection{ + Name: utils.String(rule["name"].(string)), + Priority: utils.Int64(int64(rule["priority"].(int))), + Action: &firewallpolicyrulecollectiongroups.FirewallPolicyNatRuleCollectionAction{ + Type: pointer.To(firewallpolicyrulecollectiongroups.FirewallPolicyNatRuleCollectionActionType(rule["action"].(string))), }, Rules: rules, } @@ -603,40 +587,38 @@ func expandFirewallPolicyRuleCollectionNat(input []interface{}) ([]network.Basic return result, nil } -func expandFirewallPolicyFilterRuleCollection(input []interface{}, f func(input []interface{}) *[]network.BasicFirewallPolicyRule) []network.BasicFirewallPolicyRuleCollection { - result := make([]network.BasicFirewallPolicyRuleCollection, 0) +func expandFirewallPolicyFilterRuleCollection(input []interface{}, f func(input []interface{}) *[]firewallpolicyrulecollectiongroups.FirewallPolicyRule) []firewallpolicyrulecollectiongroups.FirewallPolicyRuleCollection { + result := make([]firewallpolicyrulecollectiongroups.FirewallPolicyRuleCollection, 0) for _, e := range input { rule := e.(map[string]interface{}) - output := &network.FirewallPolicyFilterRuleCollection{ - Action: &network.FirewallPolicyFilterRuleCollectionAction{ - Type: network.FirewallPolicyFilterRuleCollectionActionType(rule["action"].(string)), + output := &firewallpolicyrulecollectiongroups.FirewallPolicyFilterRuleCollection{ + Action: &firewallpolicyrulecollectiongroups.FirewallPolicyFilterRuleCollectionAction{ + Type: pointer.To(firewallpolicyrulecollectiongroups.FirewallPolicyFilterRuleCollectionActionType(rule["action"].(string))), }, - Name: utils.String(rule["name"].(string)), - Priority: utils.Int32(int32(rule["priority"].(int))), - RuleCollectionType: network.RuleCollectionTypeFirewallPolicyFilterRuleCollection, - Rules: f(rule["rule"].([]interface{})), + Name: utils.String(rule["name"].(string)), + Priority: utils.Int64(int64(rule["priority"].(int))), + Rules: f(rule["rule"].([]interface{})), } result = append(result, output) } return result } -func expandFirewallPolicyRuleApplication(input []interface{}) *[]network.BasicFirewallPolicyRule { - result := make([]network.BasicFirewallPolicyRule, 0) +func expandFirewallPolicyRuleApplication(input []interface{}) *[]firewallpolicyrulecollectiongroups.FirewallPolicyRule { + result := make([]firewallpolicyrulecollectiongroups.FirewallPolicyRule, 0) for _, e := range input { condition := e.(map[string]interface{}) - var protocols []network.FirewallPolicyRuleApplicationProtocol + var protocols []firewallpolicyrulecollectiongroups.FirewallPolicyRuleApplicationProtocol for _, p := range condition["protocols"].([]interface{}) { proto := p.(map[string]interface{}) - protocols = append(protocols, network.FirewallPolicyRuleApplicationProtocol{ - ProtocolType: network.FirewallPolicyRuleApplicationProtocolType(proto["type"].(string)), - Port: utils.Int32(int32(proto["port"].(int))), + protocols = append(protocols, firewallpolicyrulecollectiongroups.FirewallPolicyRuleApplicationProtocol{ + ProtocolType: pointer.To(firewallpolicyrulecollectiongroups.FirewallPolicyRuleApplicationProtocolType(proto["type"].(string))), + Port: utils.Int64(int64(proto["port"].(int))), }) } - output := &network.ApplicationRule{ + output := &firewallpolicyrulecollectiongroups.ApplicationRule{ Name: utils.String(condition["name"].(string)), Description: utils.String(condition["description"].(string)), - RuleType: network.RuleTypeApplicationRule, Protocols: &protocols, SourceAddresses: utils.ExpandStringSlice(condition["source_addresses"].([]interface{})), SourceIPGroups: utils.ExpandStringSlice(condition["source_ip_groups"].([]interface{})), @@ -652,17 +634,16 @@ func expandFirewallPolicyRuleApplication(input []interface{}) *[]network.BasicFi return &result } -func expandFirewallPolicyRuleNetwork(input []interface{}) *[]network.BasicFirewallPolicyRule { - result := make([]network.BasicFirewallPolicyRule, 0) +func expandFirewallPolicyRuleNetwork(input []interface{}) *[]firewallpolicyrulecollectiongroups.FirewallPolicyRule { + result := make([]firewallpolicyrulecollectiongroups.FirewallPolicyRule, 0) for _, e := range input { condition := e.(map[string]interface{}) - var protocols []network.FirewallPolicyRuleNetworkProtocol + var protocols []firewallpolicyrulecollectiongroups.FirewallPolicyRuleNetworkProtocol for _, p := range condition["protocols"].([]interface{}) { - protocols = append(protocols, network.FirewallPolicyRuleNetworkProtocol(p.(string))) + protocols = append(protocols, firewallpolicyrulecollectiongroups.FirewallPolicyRuleNetworkProtocol(p.(string))) } - output := &network.Rule{ + output := &firewallpolicyrulecollectiongroups.NetworkRule{ Name: utils.String(condition["name"].(string)), - RuleType: network.RuleTypeNetworkRule, IPProtocols: &protocols, SourceAddresses: utils.ExpandStringSlice(condition["source_addresses"].([]interface{})), SourceIPGroups: utils.ExpandStringSlice(condition["source_ip_groups"].([]interface{})), @@ -677,13 +658,13 @@ func expandFirewallPolicyRuleNetwork(input []interface{}) *[]network.BasicFirewa return &result } -func expandFirewallPolicyRuleNat(input []interface{}) (*[]network.BasicFirewallPolicyRule, error) { - result := make([]network.BasicFirewallPolicyRule, 0) +func expandFirewallPolicyRuleNat(input []interface{}) (*[]firewallpolicyrulecollectiongroups.FirewallPolicyRule, error) { + result := make([]firewallpolicyrulecollectiongroups.FirewallPolicyRule, 0) for _, e := range input { condition := e.(map[string]interface{}) - var protocols []network.FirewallPolicyRuleNetworkProtocol + var protocols []firewallpolicyrulecollectiongroups.FirewallPolicyRuleNetworkProtocol for _, p := range condition["protocols"].([]interface{}) { - protocols = append(protocols, network.FirewallPolicyRuleNetworkProtocol(p.(string))) + protocols = append(protocols, firewallpolicyrulecollectiongroups.FirewallPolicyRuleNetworkProtocol(p.(string))) } destinationAddresses := []string{condition["destination_address"].(string)} @@ -694,9 +675,8 @@ func expandFirewallPolicyRuleNat(input []interface{}) (*[]network.BasicFirewallP if condition["translated_address"].(string) == "" && condition["translated_fqdn"].(string) == "" { return nil, fmt.Errorf("should specify either `translated_address` or `translated_fqdn` in rule %s", condition["name"].(string)) } - output := &network.NatRule{ + output := &firewallpolicyrulecollectiongroups.NatRule{ Name: utils.String(condition["name"].(string)), - RuleType: network.RuleTypeNatRule, IPProtocols: &protocols, SourceAddresses: utils.ExpandStringSlice(condition["source_addresses"].([]interface{})), SourceIPGroups: utils.ExpandStringSlice(condition["source_ip_groups"].([]interface{})), @@ -716,7 +696,7 @@ func expandFirewallPolicyRuleNat(input []interface{}) (*[]network.BasicFirewallP return &result, nil } -func flattenFirewallPolicyRuleCollection(input *[]network.BasicFirewallPolicyRuleCollection) ([]interface{}, []interface{}, []interface{}, error) { +func flattenFirewallPolicyRuleCollection(input *[]firewallpolicyrulecollectiongroups.FirewallPolicyRuleCollection) ([]interface{}, []interface{}, []interface{}, error) { var ( applicationRuleCollection = []interface{}{} networkRuleCollection = []interface{}{} @@ -730,19 +710,19 @@ func flattenFirewallPolicyRuleCollection(input *[]network.BasicFirewallPolicyRul var result map[string]interface{} switch rule := e.(type) { - case network.FirewallPolicyFilterRuleCollection: + case firewallpolicyrulecollectiongroups.FirewallPolicyFilterRuleCollection: var name string if rule.Name != nil { name = *rule.Name } - var priority int32 + var priority int64 if rule.Priority != nil { priority = *rule.Priority } var action string if rule.Action != nil { - action = string(rule.Action.Type) + action = string(pointer.From(rule.Action.Type)) } result = map[string]interface{}{ @@ -757,7 +737,7 @@ func flattenFirewallPolicyRuleCollection(input *[]network.BasicFirewallPolicyRul // Determine the rule type based on the first rule's type switch (*rule.Rules)[0].(type) { - case network.ApplicationRule: + case firewallpolicyrulecollectiongroups.ApplicationRule: appRules, err := flattenFirewallPolicyRuleApplication(rule.Rules) if err != nil { return nil, nil, nil, err @@ -766,7 +746,7 @@ func flattenFirewallPolicyRuleCollection(input *[]network.BasicFirewallPolicyRul applicationRuleCollection = append(applicationRuleCollection, result) - case network.Rule: + case firewallpolicyrulecollectiongroups.FirewallPolicyRule: networkRules, err := flattenFirewallPolicyRuleNetwork(rule.Rules) if err != nil { return nil, nil, nil, err @@ -778,19 +758,25 @@ func flattenFirewallPolicyRuleCollection(input *[]network.BasicFirewallPolicyRul default: return nil, nil, nil, fmt.Errorf("unknown rule condition type %+v", (*rule.Rules)[0]) } - case network.FirewallPolicyNatRuleCollection: + case firewallpolicyrulecollectiongroups.FirewallPolicyNatRuleCollection: var name string if rule.Name != nil { name = *rule.Name } - var priority int32 + var priority int64 if rule.Priority != nil { priority = *rule.Priority } var action string if rule.Action != nil { - action = string(rule.Action.Type) + // todo 4.0 change this from DNAT to Dnat + // doing this because we hardcode Dnat for https://github.com/Azure/azure-rest-api-specs/issues/9986 + if strings.EqualFold(string(pointer.From(rule.Action.Type)), "Dnat") { + action = "Dnat" + } else { + action = string(pointer.From(rule.Action.Type)) + } } rules, err := flattenFirewallPolicyRuleNat(rule.Rules) @@ -813,13 +799,13 @@ func flattenFirewallPolicyRuleCollection(input *[]network.BasicFirewallPolicyRul return applicationRuleCollection, networkRuleCollection, natRuleCollection, nil } -func flattenFirewallPolicyRuleApplication(input *[]network.BasicFirewallPolicyRule) ([]interface{}, error) { +func flattenFirewallPolicyRuleApplication(input *[]firewallpolicyrulecollectiongroups.FirewallPolicyRule) ([]interface{}, error) { if input == nil { return []interface{}{}, nil } output := make([]interface{}, 0) for _, e := range *input { - rule, ok := e.(network.ApplicationRule) + rule, ok := e.(firewallpolicyrulecollectiongroups.ApplicationRule) if !ok { return nil, fmt.Errorf("unexpected non-application rule: %+v", e) } @@ -847,7 +833,7 @@ func flattenFirewallPolicyRuleApplication(input *[]network.BasicFirewallPolicyRu port = int(*protocol.Port) } protocols = append(protocols, map[string]interface{}{ - "type": string(protocol.ProtocolType), + "type": string(pointer.From(protocol.ProtocolType)), "port": port, }) } @@ -871,13 +857,13 @@ func flattenFirewallPolicyRuleApplication(input *[]network.BasicFirewallPolicyRu return output, nil } -func flattenFirewallPolicyRuleNetwork(input *[]network.BasicFirewallPolicyRule) ([]interface{}, error) { +func flattenFirewallPolicyRuleNetwork(input *[]firewallpolicyrulecollectiongroups.FirewallPolicyRule) ([]interface{}, error) { if input == nil { return []interface{}{}, nil } output := make([]interface{}, 0) for _, e := range *input { - rule, ok := e.(network.Rule) + rule, ok := e.(firewallpolicyrulecollectiongroups.NetworkRule) if !ok { return nil, fmt.Errorf("unexpected non-network rule: %+v", e) } @@ -909,13 +895,13 @@ func flattenFirewallPolicyRuleNetwork(input *[]network.BasicFirewallPolicyRule) return output, nil } -func flattenFirewallPolicyRuleNat(input *[]network.BasicFirewallPolicyRule) ([]interface{}, error) { +func flattenFirewallPolicyRuleNat(input *[]firewallpolicyrulecollectiongroups.FirewallPolicyRule) ([]interface{}, error) { if input == nil { return []interface{}{}, nil } output := make([]interface{}, 0) for _, e := range *input { - rule, ok := e.(network.NatRule) + rule, ok := e.(firewallpolicyrulecollectiongroups.NatRule) if !ok { return nil, fmt.Errorf("unexpected non-nat rule: %+v", e) } diff --git a/internal/services/firewall/firewall_policy_rule_collection_group_resource_test.go b/internal/services/firewall/firewall_policy_rule_collection_group_resource_test.go index 7378922b9651..5574330b273e 100644 --- a/internal/services/firewall/firewall_policy_rule_collection_group_resource_test.go +++ b/internal/services/firewall/firewall_policy_rule_collection_group_resource_test.go @@ -8,10 +8,10 @@ import ( "fmt" "testing" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicyrulecollectiongroups" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" ) @@ -137,17 +137,17 @@ func TestAccFirewallPolicyRuleCollectionGroup_requiresImport(t *testing.T) { } func (FirewallPolicyRuleCollectionGroupResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { - id, err := parse.FirewallPolicyRuleCollectionGroupID(state.ID) + id, err := firewallpolicyrulecollectiongroups.ParseRuleCollectionGroupID(state.ID) if err != nil { return nil, err } - resp, err := clients.Firewall.FirewallPolicyRuleGroupClient.Get(ctx, id.ResourceGroup, id.FirewallPolicyName, id.RuleCollectionGroupName) + resp, err := clients.Firewall.Client.FirewallPolicyRuleCollectionGroups.Get(ctx, *id) if err != nil { return nil, fmt.Errorf("retrieving %s: %v", id.String(), err) } - return utils.Bool(resp.FirewallPolicyRuleCollectionGroupProperties != nil), nil + return utils.Bool(resp.Model != nil), nil } func (FirewallPolicyRuleCollectionGroupResource) basic(data acceptance.TestData) string { diff --git a/internal/services/firewall/firewall_resource.go b/internal/services/firewall/firewall_resource.go index e863538b68bc..f54070c02bdb 100644 --- a/internal/services/firewall/firewall_resource.go +++ b/internal/services/firewall/firewall_resource.go @@ -9,25 +9,26 @@ import ( "strings" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" "github.com/hashicorp/go-azure-helpers/resourcemanager/zones" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/azurefirewalls" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicies" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/azuresdkhacks" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/validate" networkValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/validate" - "github.com/hashicorp/terraform-provider-azurerm/internal/tags" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" "github.com/hashicorp/terraform-provider-azurerm/utils" - "github.com/tombuildsstuff/kermit/sdk/network/2022-07-01/network" ) var AzureFirewallResourceName = "azurerm_firewall" @@ -39,7 +40,7 @@ func resourceFirewall() *pluginsdk.Resource { Update: resourceFirewallCreateUpdate, Delete: resourceFirewallDelete, Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { - _, err := parse.FirewallID(id) + _, err := azurefirewalls.ParseAzureFirewallID(id) return err }), @@ -68,8 +69,8 @@ func resourceFirewall() *pluginsdk.Resource { Required: true, ForceNew: true, ValidateFunc: validation.StringInSlice([]string{ - string(network.AzureFirewallSkuNameAZFWHub), - string(network.AzureFirewallSkuNameAZFWVNet), + string(azurefirewalls.AzureFirewallSkuNameAZFWHub), + string(azurefirewalls.AzureFirewallSkuNameAZFWVNet), }, false), }, @@ -78,16 +79,16 @@ func resourceFirewall() *pluginsdk.Resource { Type: pluginsdk.TypeString, Required: true, ValidateFunc: validation.StringInSlice([]string{ - string(network.AzureFirewallSkuTierPremium), - string(network.AzureFirewallSkuTierStandard), - string(network.AzureFirewallSkuTierBasic), + string(azurefirewalls.AzureFirewallSkuTierPremium), + string(azurefirewalls.AzureFirewallSkuTierStandard), + string(azurefirewalls.AzureFirewallSkuTierBasic), }, false), }, "firewall_policy_id": { Type: pluginsdk.TypeString, Optional: true, - ValidateFunc: validate.FirewallPolicyID, + ValidateFunc: firewallpolicies.ValidateFirewallPolicyID, }, "ip_configuration": { @@ -155,9 +156,9 @@ func resourceFirewall() *pluginsdk.Resource { Optional: true, Computed: true, ValidateFunc: validation.StringInSlice([]string{ - string(network.AzureFirewallThreatIntelModeOff), - string(network.AzureFirewallThreatIntelModeAlert), - string(network.AzureFirewallThreatIntelModeDeny), + string(azurefirewalls.AzureFirewallThreatIntelModeOff), + string(azurefirewalls.AzureFirewallThreatIntelModeAlert), + string(azurefirewalls.AzureFirewallThreatIntelModeDeny), }, false), }, @@ -216,7 +217,7 @@ func resourceFirewall() *pluginsdk.Resource { "zones": commonschema.ZonesMultipleOptionalForceNew(), - "tags": tags.Schema(), + "tags": commonschema.Tags(), }, } @@ -224,23 +225,23 @@ func resourceFirewall() *pluginsdk.Resource { } func resourceFirewallCreateUpdate(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.AzureFirewallsClient + client := meta.(*clients.Client).Firewall.Client.AzureFirewalls subscriptionId := meta.(*clients.Client).Account.SubscriptionId ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() log.Printf("[INFO] preparing arguments for AzureRM Azure Firewall creation") - id := parse.NewFirewallID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) + id := azurefirewalls.NewAzureFirewallID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) - existing, err := client.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + existing, err := client.Get(ctx, id) if err != nil { - if !utils.ResponseWasNotFound(existing.Response) { + if !response.WasNotFound(existing.HttpResponse) { return fmt.Errorf("checking for presence of existing %s: %s", id, err) } } - if d.IsNewResource() && !utils.ResponseWasNotFound(existing.Response) { + if d.IsNewResource() && !response.WasNotFound(existing.HttpResponse) { return tf.ImportAsExistsError("azurerm_firewall", id.ID()) } @@ -256,12 +257,12 @@ func resourceFirewallCreateUpdate(d *pluginsdk.ResourceData, meta interface{}) e return fmt.Errorf("building list of Azure Firewall IP Configurations: %+v", err) } - parameters := network.AzureFirewall{ + parameters := azurefirewalls.AzureFirewall{ Location: &location, - AzureFirewallPropertiesFormat: &network.AzureFirewallPropertiesFormat{ + Properties: &azurefirewalls.AzureFirewallPropertiesFormat{ IPConfigurations: ipConfigs, - ThreatIntelMode: network.AzureFirewallThreatIntelMode(d.Get("threat_intel_mode").(string)), - AdditionalProperties: make(map[string]*string), + ThreatIntelMode: pointer.To(azurefirewalls.AzureFirewallThreatIntelMode(d.Get("threat_intel_mode").(string))), + AdditionalProperties: pointer.To(make(map[string]string)), }, Tags: tags.Expand(t), } @@ -286,62 +287,64 @@ func resourceFirewallCreateUpdate(d *pluginsdk.ResourceData, meta interface{}) e *vnetToLock = append(*vnetToLock, (*mgmtVirtualNetworkName)[0]) } if *mgmtIPConfig != nil { - if parameters.IPConfigurations != nil { - for k, v := range *parameters.IPConfigurations { + if parameters.Properties.IPConfigurations != nil { + for k, v := range *parameters.Properties.IPConfigurations { if v.Name != nil && (*mgmtIPConfig)[0].Name != nil && *v.Name == *(*mgmtIPConfig)[0].Name { return fmt.Errorf("`management_ip_configuration.0.name` must not be the same as `ip_configuration.%d.name`", k) } } } - parameters.ManagementIPConfiguration = &(*mgmtIPConfig)[0] + parameters.Properties.ManagementIPConfiguration = &(*mgmtIPConfig)[0] } } if threatIntelMode := d.Get("threat_intel_mode").(string); threatIntelMode != "" { - parameters.AzureFirewallPropertiesFormat.ThreatIntelMode = network.AzureFirewallThreatIntelMode(threatIntelMode) + parameters.Properties.ThreatIntelMode = pointer.To(azurefirewalls.AzureFirewallThreatIntelMode(threatIntelMode)) } if policyId := d.Get("firewall_policy_id").(string); policyId != "" { - parameters.AzureFirewallPropertiesFormat.FirewallPolicy = &network.SubResource{ID: &policyId} + parameters.Properties.FirewallPolicy = &azurefirewalls.SubResource{Id: &policyId} } - vhub, hubIpAddresses, ok := expandFirewallVirtualHubSetting(existing, d.Get("virtual_hub").([]interface{})) + vhub, hubIpAddresses, ok := expandFirewallVirtualHubSetting(existing.Model, d.Get("virtual_hub").([]interface{})) if ok { - parameters.AzureFirewallPropertiesFormat.VirtualHub = vhub - parameters.AzureFirewallPropertiesFormat.HubIPAddresses = hubIpAddresses + parameters.Properties.VirtualHub = vhub + parameters.Properties.HubIPAddresses = hubIpAddresses } if skuName := d.Get("sku_name").(string); skuName != "" { - if parameters.Sku == nil { - parameters.Sku = &network.AzureFirewallSku{} + if parameters.Properties.Sku == nil { + parameters.Properties.Sku = &azurefirewalls.AzureFirewallSku{} } - parameters.Sku.Name = network.AzureFirewallSkuName(skuName) + parameters.Properties.Sku.Name = pointer.To(azurefirewalls.AzureFirewallSkuName(skuName)) } if skuTier := d.Get("sku_tier").(string); skuTier != "" { - if parameters.Sku == nil { - parameters.Sku = &network.AzureFirewallSku{} + if parameters.Properties.Sku == nil { + parameters.Properties.Sku = &azurefirewalls.AzureFirewallSku{} } - parameters.Sku.Tier = network.AzureFirewallSkuTier(skuTier) + parameters.Properties.Sku.Tier = pointer.To(azurefirewalls.AzureFirewallSkuTier(skuTier)) } if dnsServerSetting := expandFirewallDNSServers(d.Get("dns_servers").([]interface{})); dnsServerSetting != nil { for k, v := range dnsServerSetting { - parameters.AdditionalProperties[k] = v + attrs := *parameters.Properties.AdditionalProperties + attrs[k] = v } } if privateIpRangeSetting := expandFirewallPrivateIpRange(d.Get("private_ip_ranges").(*pluginsdk.Set).List()); privateIpRangeSetting != nil { for k, v := range privateIpRangeSetting { - parameters.AdditionalProperties[k] = v + attrs := *parameters.Properties.AdditionalProperties + attrs[k] = v } } if policyId, ok := d.GetOk("firewall_policy_id"); ok { - id, _ := parse.FirewallPolicyID(policyId.(string)) - locks.ByName(id.Name, AzureFirewallPolicyResourceName) - defer locks.UnlockByName(id.Name, AzureFirewallPolicyResourceName) + id, _ := firewallpolicies.ParseFirewallPolicyID(policyId.(string)) + locks.ByName(id.FirewallPolicyName, AzureFirewallPolicyResourceName) + defer locks.UnlockByName(id.FirewallPolicyName, AzureFirewallPolicyResourceName) } locks.ByName(id.AzureFirewallName, AzureFirewallResourceName) @@ -354,49 +357,48 @@ func resourceFirewallCreateUpdate(d *pluginsdk.ResourceData, meta interface{}) e defer locks.UnlockMultipleByName(subnetToLock, SubnetResourceName) if !d.IsNewResource() { - exists, err2 := client.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + exists, err2 := client.Get(ctx, id) if err2 != nil { - if utils.ResponseWasNotFound(exists.Response) { + if response.WasNotFound(exists.HttpResponse) { return fmt.Errorf("retrieving existing %s: firewall not found in resource group", id) } return fmt.Errorf("retrieving existing %s: %+v", id, err2) } - if exists.AzureFirewallPropertiesFormat == nil { + if exists.Model == nil { + return fmt.Errorf("retrieving existing rules for %s: `model` was nil", id) + } + + if exists.Model.Properties == nil { return fmt.Errorf("retrieving existing rules for %s: `props` was nil", id) } - props := *exists.AzureFirewallPropertiesFormat - parameters.AzureFirewallPropertiesFormat.ApplicationRuleCollections = props.ApplicationRuleCollections - parameters.AzureFirewallPropertiesFormat.NetworkRuleCollections = props.NetworkRuleCollections - parameters.AzureFirewallPropertiesFormat.NatRuleCollections = props.NatRuleCollections + props := *exists.Model.Properties + parameters.Properties.ApplicationRuleCollections = props.ApplicationRuleCollections + parameters.Properties.NetworkRuleCollections = props.NetworkRuleCollections + parameters.Properties.NatRuleCollections = props.NatRuleCollections } - future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.AzureFirewallName, parameters) - if err != nil { + if err := client.CreateOrUpdateThenPoll(ctx, id, parameters); err != nil { return fmt.Errorf("creating/updating %s: %+v", id, err) } - if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for creation/update of %s: %+v", id, err) - } - d.SetId(id.ID()) return resourceFirewallRead(d, meta) } func resourceFirewallRead(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.AzureFirewallsClient + client := meta.(*clients.Client).Firewall.Client.AzureFirewalls ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.FirewallID(d.Id()) + id, err := azurefirewalls.ParseAzureFirewallID(d.Id()) if err != nil { return err } - read, err := client.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + read, err := client.Get(ctx, *id) if err != nil { - if utils.ResponseWasNotFound(read.Response) { - log.Printf("[DEBUG] Firewall %q was not found in Resource Group %q - removing from state!", id.AzureFirewallName, id.ResourceGroup) + if response.WasNotFound(read.HttpResponse) { + log.Printf("[DEBUG] Firewall %q was not found in Resource Group %q - removing from state!", id.AzureFirewallName, id.ResourceGroupName) d.SetId("") return nil } @@ -405,67 +407,71 @@ func resourceFirewallRead(d *pluginsdk.ResourceData, meta interface{}) error { } d.Set("name", id.AzureFirewallName) - d.Set("resource_group_name", id.ResourceGroup) + d.Set("resource_group_name", id.ResourceGroupName) - d.Set("location", location.NormalizeNilable(read.Location)) - d.Set("zones", zones.FlattenUntyped(read.Zones)) + if model := read.Model; model != nil { + d.Set("location", location.NormalizeNilable(model.Location)) + d.Set("zones", zones.FlattenUntyped(model.Zones)) - if props := read.AzureFirewallPropertiesFormat; props != nil { - if err := d.Set("ip_configuration", flattenFirewallIPConfigurations(props.IPConfigurations)); err != nil { - return fmt.Errorf("setting `ip_configuration`: %+v", err) - } - managementIPConfigs := make([]interface{}, 0) - if props.ManagementIPConfiguration != nil { - managementIPConfigs = flattenFirewallIPConfigurations(&[]network.AzureFirewallIPConfiguration{ - *props.ManagementIPConfiguration, - }) - } - if err := d.Set("management_ip_configuration", managementIPConfigs); err != nil { - return fmt.Errorf("setting `management_ip_configuration`: %+v", err) - } + if props := model.Properties; props != nil { + if err := d.Set("ip_configuration", flattenFirewallIPConfigurations(props.IPConfigurations)); err != nil { + return fmt.Errorf("setting `ip_configuration`: %+v", err) + } + managementIPConfigs := make([]interface{}, 0) + if props.ManagementIPConfiguration != nil { + managementIPConfigs = flattenFirewallIPConfigurations(&[]azurefirewalls.AzureFirewallIPConfiguration{ + *props.ManagementIPConfiguration, + }) + } + if err := d.Set("management_ip_configuration", managementIPConfigs); err != nil { + return fmt.Errorf("setting `management_ip_configuration`: %+v", err) + } - d.Set("threat_intel_mode", string(props.ThreatIntelMode)) + d.Set("threat_intel_mode", string(pointer.From(props.ThreatIntelMode))) - if err := d.Set("dns_servers", flattenFirewallDNSServers(props.AdditionalProperties)); err != nil { - return fmt.Errorf("setting `dns_servers`: %+v", err) - } + if err := d.Set("dns_servers", flattenFirewallDNSServers(props.AdditionalProperties)); err != nil { + return fmt.Errorf("setting `dns_servers`: %+v", err) + } - if err := d.Set("private_ip_ranges", flattenFirewallPrivateIpRange(props.AdditionalProperties)); err != nil { - return fmt.Errorf("setting `private_ip_ranges`: %+v", err) - } + if err := d.Set("private_ip_ranges", flattenFirewallPrivateIpRange(props.AdditionalProperties)); err != nil { + return fmt.Errorf("setting `private_ip_ranges`: %+v", err) + } - if policy := props.FirewallPolicy; policy != nil { - d.Set("firewall_policy_id", policy.ID) - } + if policy := props.FirewallPolicy; policy != nil { + d.Set("firewall_policy_id", policy.Id) + } - if sku := props.Sku; sku != nil { - d.Set("sku_name", string(sku.Name)) - d.Set("sku_tier", string(sku.Tier)) - } + if sku := props.Sku; sku != nil { + d.Set("sku_name", string(pointer.From(sku.Name))) + d.Set("sku_tier", string(pointer.From(sku.Tier))) + } - if err := d.Set("virtual_hub", flattenFirewallVirtualHubSetting(props)); err != nil { - return fmt.Errorf("setting `virtual_hub`: %+v", err) + if err := d.Set("virtual_hub", flattenFirewallVirtualHubSetting(props)); err != nil { + return fmt.Errorf("setting `virtual_hub`: %+v", err) + } } + + return tags.FlattenAndSet(d, model.Tags) } - return tags.FlattenAndSet(d, read.Tags) + return nil } func resourceFirewallDelete(d *pluginsdk.ResourceData, meta interface{}) error { - client := meta.(*clients.Client).Firewall.AzureFirewallsClient + client := meta.(*clients.Client).Firewall.Client.AzureFirewalls ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := parse.FirewallID(d.Id()) + id, err := azurefirewalls.ParseAzureFirewallID(d.Id()) if err != nil { return err } - read, err := client.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + read, err := client.Get(ctx, *id) if err != nil { - if utils.ResponseWasNotFound(read.Response) { + if response.WasNotFound(read.HttpResponse) { // deleted outside of TF - log.Printf("[DEBUG] Firewall %q was not found in Resource Group %q - assuming removed!", id.AzureFirewallName, id.ResourceGroup) + log.Printf("[DEBUG] Firewall %q was not found in Resource Group %q - assuming removed!", id.AzureFirewallName, id.ResourceGroupName) return nil } @@ -474,76 +480,83 @@ func resourceFirewallDelete(d *pluginsdk.ResourceData, meta interface{}) error { subnetNamesToLock := make([]string, 0) virtualNetworkNamesToLock := make([]string, 0) - if props := read.AzureFirewallPropertiesFormat; props != nil { - if configs := props.IPConfigurations; configs != nil { - for _, config := range *configs { - if config.Subnet == nil || config.Subnet.ID == nil { - continue - } + if model := read.Model; model != nil { + if props := model.Properties; props != nil { + if configs := props.IPConfigurations; configs != nil { + for _, config := range *configs { + if config.Properties == nil || config.Properties.Subnet == nil || config.Properties.Subnet.Id == nil { + continue + } - parsedSubnetID, err2 := commonids.ParseSubnetID(*config.Subnet.ID) - if err2 != nil { - return err2 - } + parsedSubnetID, err2 := commonids.ParseSubnetID(*config.Properties.Subnet.Id) + if err2 != nil { + return err2 + } - if !utils.SliceContainsValue(subnetNamesToLock, parsedSubnetID.SubnetName) { - subnetNamesToLock = append(subnetNamesToLock, parsedSubnetID.SubnetName) - } + if !utils.SliceContainsValue(subnetNamesToLock, parsedSubnetID.SubnetName) { + subnetNamesToLock = append(subnetNamesToLock, parsedSubnetID.SubnetName) + } - if !utils.SliceContainsValue(virtualNetworkNamesToLock, parsedSubnetID.VirtualNetworkName) { - virtualNetworkNamesToLock = append(virtualNetworkNamesToLock, parsedSubnetID.VirtualNetworkName) + if !utils.SliceContainsValue(virtualNetworkNamesToLock, parsedSubnetID.VirtualNetworkName) { + virtualNetworkNamesToLock = append(virtualNetworkNamesToLock, parsedSubnetID.VirtualNetworkName) + } } } - } - if mconfig := props.ManagementIPConfiguration; mconfig != nil { - if mconfig.Subnet != nil && mconfig.Subnet.ID != nil { - parsedSubnetID, err2 := commonids.ParseSubnetID(*mconfig.Subnet.ID) - if err2 != nil { - return err2 - } + if mconfig := props.ManagementIPConfiguration; mconfig != nil { + if mconfig.Properties != nil && mconfig.Properties.Subnet != nil && mconfig.Properties.Subnet.Id != nil { + parsedSubnetID, err2 := commonids.ParseSubnetID(*mconfig.Properties.Subnet.Id) + if err2 != nil { + return err2 + } - if !utils.SliceContainsValue(subnetNamesToLock, parsedSubnetID.SubnetName) { - subnetNamesToLock = append(subnetNamesToLock, parsedSubnetID.SubnetName) - } + if !utils.SliceContainsValue(subnetNamesToLock, parsedSubnetID.SubnetName) { + subnetNamesToLock = append(subnetNamesToLock, parsedSubnetID.SubnetName) + } - if !utils.SliceContainsValue(virtualNetworkNamesToLock, parsedSubnetID.VirtualNetworkName) { - virtualNetworkNamesToLock = append(virtualNetworkNamesToLock, parsedSubnetID.VirtualNetworkName) + if !utils.SliceContainsValue(virtualNetworkNamesToLock, parsedSubnetID.VirtualNetworkName) { + virtualNetworkNamesToLock = append(virtualNetworkNamesToLock, parsedSubnetID.VirtualNetworkName) + } } } } - } - if read.FirewallPolicy != nil && read.FirewallPolicy.ID != nil { - id, _ := parse.FirewallPolicyID(*read.FirewallPolicy.ID) - locks.ByName(id.Name, AzureFirewallPolicyResourceName) - defer locks.UnlockByName(id.Name, AzureFirewallPolicyResourceName) - } + if read.Model.Properties != nil && read.Model.Properties.FirewallPolicy != nil && read.Model.Properties.FirewallPolicy.Id != nil { + id, _ := firewallpolicies.ParseFirewallPolicyID(*read.Model.Properties.FirewallPolicy.Id) + locks.ByName(id.FirewallPolicyName, AzureFirewallPolicyResourceName) + defer locks.UnlockByName(id.FirewallPolicyName, AzureFirewallPolicyResourceName) + } - locks.ByName(id.AzureFirewallName, AzureFirewallResourceName) - defer locks.UnlockByName(id.AzureFirewallName, AzureFirewallResourceName) + locks.ByName(id.AzureFirewallName, AzureFirewallResourceName) + defer locks.UnlockByName(id.AzureFirewallName, AzureFirewallResourceName) - locks.MultipleByName(&virtualNetworkNamesToLock, VirtualNetworkResourceName) - defer locks.UnlockMultipleByName(&virtualNetworkNamesToLock, VirtualNetworkResourceName) + locks.MultipleByName(&virtualNetworkNamesToLock, VirtualNetworkResourceName) + defer locks.UnlockMultipleByName(&virtualNetworkNamesToLock, VirtualNetworkResourceName) - locks.MultipleByName(&subnetNamesToLock, SubnetResourceName) - defer locks.UnlockMultipleByName(&subnetNamesToLock, SubnetResourceName) + locks.MultipleByName(&subnetNamesToLock, SubnetResourceName) + defer locks.UnlockMultipleByName(&subnetNamesToLock, SubnetResourceName) - // Change this back to using the SDK method once https://github.com/Azure/azure-sdk-for-go/issues/17013 is addressed. - future, err := azuresdkhacks.DeleteFirewall(ctx, client, id.ResourceGroup, id.AzureFirewallName) - if err != nil { - return fmt.Errorf("deleting Azure Firewall %s : %+v", *id, err) - } + // todo see if this is still needed this way + /* + // Change this back to using the SDK method once https://github.com/Azure/azure-sdk-for-go/issues/17013 is addressed. + future, err := azuresdkhacks.DeleteFirewall(ctx, client, id.ResourceGroup, id.AzureFirewallName) + if err != nil { + return fmt.Errorf("deleting Azure Firewall %s : %+v", *id, err) + } - if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { - return fmt.Errorf("waiting for the deletion of Azure Firewall %s : %+v", *id, err) + if err = future.WaitForCompletionRef(ctx, client.Client); err != nil { + return fmt.Errorf("waiting for the deletion of Azure Firewall %s : %+v", *id, err) + } + */ + + return client.DeleteThenPoll(ctx, *id) } return err } -func expandFirewallIPConfigurations(configs []interface{}) (*[]network.AzureFirewallIPConfiguration, *[]string, *[]string, error) { - ipConfigs := make([]network.AzureFirewallIPConfiguration, 0) +func expandFirewallIPConfigurations(configs []interface{}) (*[]azurefirewalls.AzureFirewallIPConfiguration, *[]string, *[]string, error) { + ipConfigs := make([]azurefirewalls.AzureFirewallIPConfiguration, 0) subnetNamesToLock := make([]string, 0) virtualNetworkNamesToLock := make([]string, 0) @@ -553,14 +566,14 @@ func expandFirewallIPConfigurations(configs []interface{}) (*[]network.AzureFire subnetId := data["subnet_id"].(string) pubID := data["public_ip_address_id"].(string) - ipConfig := network.AzureFirewallIPConfiguration{ - Name: utils.String(name), - AzureFirewallIPConfigurationPropertiesFormat: &network.AzureFirewallIPConfigurationPropertiesFormat{}, + ipConfig := azurefirewalls.AzureFirewallIPConfiguration{ + Name: utils.String(name), + Properties: &azurefirewalls.AzureFirewallIPConfigurationPropertiesFormat{}, } if pubID != "" { - ipConfig.AzureFirewallIPConfigurationPropertiesFormat.PublicIPAddress = &network.SubResource{ - ID: utils.String(pubID), + ipConfig.Properties.PublicIPAddress = &azurefirewalls.SubResource{ + Id: utils.String(pubID), } } @@ -578,8 +591,8 @@ func expandFirewallIPConfigurations(configs []interface{}) (*[]network.AzureFire virtualNetworkNamesToLock = append(virtualNetworkNamesToLock, subnetID.VirtualNetworkName) } - ipConfig.AzureFirewallIPConfigurationPropertiesFormat.Subnet = &network.SubResource{ - ID: utils.String(subnetId), + ipConfig.Properties.Subnet = &azurefirewalls.SubResource{ + Id: utils.String(subnetId), } } ipConfigs = append(ipConfigs, ipConfig) @@ -587,7 +600,7 @@ func expandFirewallIPConfigurations(configs []interface{}) (*[]network.AzureFire return &ipConfigs, &subnetNamesToLock, &virtualNetworkNamesToLock, nil } -func flattenFirewallIPConfigurations(input *[]network.AzureFirewallIPConfiguration) []interface{} { +func flattenFirewallIPConfigurations(input *[]azurefirewalls.AzureFirewallIPConfiguration) []interface{} { result := make([]interface{}, 0) if input == nil { return result @@ -595,7 +608,7 @@ func flattenFirewallIPConfigurations(input *[]network.AzureFirewallIPConfigurati for _, v := range *input { afIPConfig := make(map[string]interface{}) - props := v.AzureFirewallIPConfigurationPropertiesFormat + props := v.Properties if props == nil { continue } @@ -605,7 +618,7 @@ func flattenFirewallIPConfigurations(input *[]network.AzureFirewallIPConfigurati } if subnet := props.Subnet; subnet != nil { - if id := subnet.ID; id != nil { + if id := subnet.Id; id != nil { afIPConfig["subnet_id"] = *id } } @@ -615,7 +628,7 @@ func flattenFirewallIPConfigurations(input *[]network.AzureFirewallIPConfigurati } if pip := props.PublicIPAddress; pip != nil { - if id := pip.ID; id != nil { + if id := pip.Id; id != nil { afIPConfig["public_ip_address_id"] = *id } } @@ -625,7 +638,7 @@ func flattenFirewallIPConfigurations(input *[]network.AzureFirewallIPConfigurati return result } -func expandFirewallDNSServers(input []interface{}) map[string]*string { +func expandFirewallDNSServers(input []interface{}) map[string]string { if len(input) == 0 { return nil } @@ -636,34 +649,29 @@ func expandFirewallDNSServers(input []interface{}) map[string]*string { } // Swagger issue asking finalize these properties: https://github.com/Azure/azure-rest-api-specs/issues/11278 - return map[string]*string{ - "Network.DNS.EnableProxy": utils.String("true"), - "Network.DNS.Servers": utils.String(strings.Join(servers, ",")), + return map[string]string{ + "Network.DNS.EnableProxy": "true", + "Network.DNS.Servers": strings.Join(servers, ","), } } -func flattenFirewallDNSServers(input map[string]*string) []interface{} { - if len(input) == 0 { +func flattenFirewallDNSServers(input *map[string]string) []interface{} { + if input == nil || len(*input) == 0 { return nil } - enabled := false - if enabledPtr := input["Network.DNS.EnableProxy"]; enabledPtr != nil { - enabled = *enabledPtr == "true" - } + attrs := *input + enabled := attrs["Network.DNS.EnableProxy"] == "true" if !enabled { return nil } - servers := []string{} - if serversPtr := input["Network.DNS.Servers"]; serversPtr != nil { - servers = strings.Split(*serversPtr, ",") - } + servers := strings.Split(attrs["Network.DNS.Servers"], ",") return utils.FlattenStringSlice(&servers) } -func expandFirewallPrivateIpRange(input []interface{}) map[string]*string { +func expandFirewallPrivateIpRange(input []interface{}) map[string]string { if len(input) == 0 { return nil } @@ -674,24 +682,25 @@ func expandFirewallPrivateIpRange(input []interface{}) map[string]*string { } // Swagger issue asking finalize these properties: https://github.com/Azure/azure-rest-api-specs/issues/10015 - return map[string]*string{ - "Network.SNAT.PrivateRanges": utils.String(strings.Join(rangeSlice, ",")), + return map[string]string{ + "Network.SNAT.PrivateRanges": strings.Join(rangeSlice, ","), } } -func flattenFirewallPrivateIpRange(input map[string]*string) []interface{} { - if len(input) == 0 { +func flattenFirewallPrivateIpRange(input *map[string]string) []interface{} { + if input == nil && len(*input) == 0 { return nil } + attrs := *input rangeSlice := []string{} - if privateIpRanges := input["Network.SNAT.PrivateRanges"]; privateIpRanges != nil { - rangeSlice = strings.Split(*privateIpRanges, ",") + if privateIpRanges := attrs["Network.SNAT.PrivateRanges"]; privateIpRanges != "" { + rangeSlice = strings.Split(attrs["Network.SNAT.PrivateRanges"], ",") } return utils.FlattenStringSlice(&rangeSlice) } -func expandFirewallVirtualHubSetting(existing network.AzureFirewall, input []interface{}) (vhub *network.SubResource, ipAddresses *network.HubIPAddresses, ok bool) { +func expandFirewallVirtualHubSetting(existing *azurefirewalls.AzureFirewall, input []interface{}) (vhub *azurefirewalls.SubResource, ipAddresses *azurefirewalls.HubIPAddresses, ok bool) { if len(input) == 0 { return nil, nil, false } @@ -706,31 +715,33 @@ func expandFirewallVirtualHubSetting(existing network.AzureFirewall, input []int // Scale up: "Addresses" should remain same as before scaling up // Scale down: "Addresses" should indicate the addresses to be retained (in this case we retain the first new "Count" ones) newCount := b["public_ip_count"].(int) - var addresses *[]network.AzureFirewallPublicIPAddress - if prop := existing.AzureFirewallPropertiesFormat; prop != nil { - if ipaddress := prop.HubIPAddresses; ipaddress != nil { - if pips := ipaddress.PublicIPs; pips != nil { - if count := pips.Count; count != nil { - oldCount := int(*count) - addresses = pips.Addresses - - // In case of scale down, keep the first new "Count" addresses. - if oldCount > newCount { - keptAddresses := make([]network.AzureFirewallPublicIPAddress, newCount) - for i := 0; i < newCount; i++ { - keptAddresses[i] = (*addresses)[i] + var addresses *[]azurefirewalls.AzureFirewallPublicIPAddress + if existing != nil { + if prop := existing.Properties; prop != nil { + if ipaddress := prop.HubIPAddresses; ipaddress != nil { + if pips := ipaddress.PublicIPs; pips != nil { + if count := pips.Count; count != nil { + oldCount := int(*count) + addresses = pips.Addresses + + // In case of scale down, keep the first new "Count" addresses. + if oldCount > newCount { + keptAddresses := make([]azurefirewalls.AzureFirewallPublicIPAddress, newCount) + for i := 0; i < newCount; i++ { + keptAddresses[i] = (*addresses)[i] + } + addresses = &keptAddresses } - addresses = &keptAddresses } } } } } - vhub = &network.SubResource{ID: utils.String(b["virtual_hub_id"].(string))} - ipAddresses = &network.HubIPAddresses{ - PublicIPs: &network.HubPublicIPAddresses{ - Count: utils.Int32(int32(b["public_ip_count"].(int))), + vhub = &azurefirewalls.SubResource{Id: utils.String(b["virtual_hub_id"].(string))} + ipAddresses = &azurefirewalls.HubIPAddresses{ + PublicIPs: &azurefirewalls.HubPublicIPAddresses{ + Count: utils.Int64(int64(b["public_ip_count"].(int))), Addresses: addresses, }, } @@ -738,14 +749,14 @@ func expandFirewallVirtualHubSetting(existing network.AzureFirewall, input []int return vhub, ipAddresses, true } -func flattenFirewallVirtualHubSetting(props *network.AzureFirewallPropertiesFormat) []interface{} { +func flattenFirewallVirtualHubSetting(props *azurefirewalls.AzureFirewallPropertiesFormat) []interface{} { if props.VirtualHub == nil { return nil } var vhubId string - if props.VirtualHub.ID != nil { - vhubId = *props.VirtualHub.ID + if props.VirtualHub.Id != nil { + vhubId = *props.VirtualHub.Id } var ( diff --git a/internal/services/firewall/firewall_resource_test.go b/internal/services/firewall/firewall_resource_test.go index 3b039f1b6bd4..12329ca15844 100644 --- a/internal/services/firewall/firewall_resource_test.go +++ b/internal/services/firewall/firewall_resource_test.go @@ -10,10 +10,10 @@ import ( "strings" "testing" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/azurefirewalls" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" ) @@ -376,34 +376,29 @@ func TestAccFirewall_privateRanges(t *testing.T) { } func (FirewallResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { - id, err := parse.FirewallID(state.ID) + id, err := azurefirewalls.ParseAzureFirewallID(state.ID) if err != nil { return nil, err } - resp, err := clients.Firewall.AzureFirewallsClient.Get(ctx, id.ResourceGroup, id.AzureFirewallName) + resp, err := clients.Firewall.Client.AzureFirewalls.Get(ctx, *id) if err != nil { return nil, fmt.Errorf("retrieving Azure Firewall %s : %v", *id, err) } - return utils.Bool(resp.AzureFirewallPropertiesFormat != nil), nil + return utils.Bool(resp.Model != nil), nil } func (FirewallResource) Destroy(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { - id, err := parse.FirewallID(state.ID) + id, err := azurefirewalls.ParseAzureFirewallID(state.ID) if err != nil { return nil, err } - future, err := clients.Firewall.AzureFirewallsClient.Delete(ctx, id.ResourceGroup, id.AzureFirewallName) - if err != nil { + if err = clients.Firewall.Client.AzureFirewalls.DeleteThenPoll(ctx, *id); err != nil { return nil, fmt.Errorf("deleting Azure Firewall %q: %+v", id.AzureFirewallName, err) } - if err = future.WaitForCompletionRef(ctx, clients.Firewall.AzureFirewallsClient.Client); err != nil { - return nil, fmt.Errorf("waiting for Deletion on azureFirewallsClient: %+v", err) - } - return utils.Bool(true), nil } diff --git a/internal/services/firewall/parse/firewall.go b/internal/services/firewall/parse/firewall.go deleted file mode 100644 index 18d543cae80a..000000000000 --- a/internal/services/firewall/parse/firewall.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "fmt" - "strings" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -type FirewallId struct { - SubscriptionId string - ResourceGroup string - AzureFirewallName string -} - -func NewFirewallID(subscriptionId, resourceGroup, azureFirewallName string) FirewallId { - return FirewallId{ - SubscriptionId: subscriptionId, - ResourceGroup: resourceGroup, - AzureFirewallName: azureFirewallName, - } -} - -func (id FirewallId) String() string { - segments := []string{ - fmt.Sprintf("Azure Firewall Name %q", id.AzureFirewallName), - fmt.Sprintf("Resource Group %q", id.ResourceGroup), - } - segmentsStr := strings.Join(segments, " / ") - return fmt.Sprintf("%s: (%s)", "Firewall", segmentsStr) -} - -func (id FirewallId) ID() string { - fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/azureFirewalls/%s" - return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroup, id.AzureFirewallName) -} - -// FirewallID parses a Firewall ID into an FirewallId struct -func FirewallID(input string) (*FirewallId, error) { - id, err := resourceids.ParseAzureResourceID(input) - if err != nil { - return nil, fmt.Errorf("parsing %q as an Firewall ID: %+v", input, err) - } - - resourceId := FirewallId{ - SubscriptionId: id.SubscriptionID, - ResourceGroup: id.ResourceGroup, - } - - if resourceId.SubscriptionId == "" { - return nil, fmt.Errorf("ID was missing the 'subscriptions' element") - } - - if resourceId.ResourceGroup == "" { - return nil, fmt.Errorf("ID was missing the 'resourceGroups' element") - } - - if resourceId.AzureFirewallName, err = id.PopSegment("azureFirewalls"); err != nil { - return nil, err - } - - if err := id.ValidateNoEmptySegments(input); err != nil { - return nil, err - } - - return &resourceId, nil -} diff --git a/internal/services/firewall/parse/firewall_policy.go b/internal/services/firewall/parse/firewall_policy.go deleted file mode 100644 index 197c0f953bef..000000000000 --- a/internal/services/firewall/parse/firewall_policy.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "fmt" - "strings" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -type FirewallPolicyId struct { - SubscriptionId string - ResourceGroup string - Name string -} - -func NewFirewallPolicyID(subscriptionId, resourceGroup, name string) FirewallPolicyId { - return FirewallPolicyId{ - SubscriptionId: subscriptionId, - ResourceGroup: resourceGroup, - Name: name, - } -} - -func (id FirewallPolicyId) String() string { - segments := []string{ - fmt.Sprintf("Name %q", id.Name), - fmt.Sprintf("Resource Group %q", id.ResourceGroup), - } - segmentsStr := strings.Join(segments, " / ") - return fmt.Sprintf("%s: (%s)", "Firewall Policy", segmentsStr) -} - -func (id FirewallPolicyId) ID() string { - fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/firewallPolicies/%s" - return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroup, id.Name) -} - -// FirewallPolicyID parses a FirewallPolicy ID into an FirewallPolicyId struct -func FirewallPolicyID(input string) (*FirewallPolicyId, error) { - id, err := resourceids.ParseAzureResourceID(input) - if err != nil { - return nil, fmt.Errorf("parsing %q as an FirewallPolicy ID: %+v", input, err) - } - - resourceId := FirewallPolicyId{ - SubscriptionId: id.SubscriptionID, - ResourceGroup: id.ResourceGroup, - } - - if resourceId.SubscriptionId == "" { - return nil, fmt.Errorf("ID was missing the 'subscriptions' element") - } - - if resourceId.ResourceGroup == "" { - return nil, fmt.Errorf("ID was missing the 'resourceGroups' element") - } - - if resourceId.Name, err = id.PopSegment("firewallPolicies"); err != nil { - return nil, err - } - - if err := id.ValidateNoEmptySegments(input); err != nil { - return nil, err - } - - return &resourceId, nil -} diff --git a/internal/services/firewall/parse/firewall_policy_rule_collection_group.go b/internal/services/firewall/parse/firewall_policy_rule_collection_group.go deleted file mode 100644 index dfe6518bc52d..000000000000 --- a/internal/services/firewall/parse/firewall_policy_rule_collection_group.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "fmt" - "strings" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -type FirewallPolicyRuleCollectionGroupId struct { - SubscriptionId string - ResourceGroup string - FirewallPolicyName string - RuleCollectionGroupName string -} - -func NewFirewallPolicyRuleCollectionGroupID(subscriptionId, resourceGroup, firewallPolicyName, ruleCollectionGroupName string) FirewallPolicyRuleCollectionGroupId { - return FirewallPolicyRuleCollectionGroupId{ - SubscriptionId: subscriptionId, - ResourceGroup: resourceGroup, - FirewallPolicyName: firewallPolicyName, - RuleCollectionGroupName: ruleCollectionGroupName, - } -} - -func (id FirewallPolicyRuleCollectionGroupId) String() string { - segments := []string{ - fmt.Sprintf("Rule Collection Group Name %q", id.RuleCollectionGroupName), - fmt.Sprintf("Firewall Policy Name %q", id.FirewallPolicyName), - fmt.Sprintf("Resource Group %q", id.ResourceGroup), - } - segmentsStr := strings.Join(segments, " / ") - return fmt.Sprintf("%s: (%s)", "Firewall Policy Rule Collection Group", segmentsStr) -} - -func (id FirewallPolicyRuleCollectionGroupId) ID() string { - fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/firewallPolicies/%s/ruleCollectionGroups/%s" - return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroup, id.FirewallPolicyName, id.RuleCollectionGroupName) -} - -// FirewallPolicyRuleCollectionGroupID parses a FirewallPolicyRuleCollectionGroup ID into an FirewallPolicyRuleCollectionGroupId struct -func FirewallPolicyRuleCollectionGroupID(input string) (*FirewallPolicyRuleCollectionGroupId, error) { - id, err := resourceids.ParseAzureResourceID(input) - if err != nil { - return nil, fmt.Errorf("parsing %q as an FirewallPolicyRuleCollectionGroup ID: %+v", input, err) - } - - resourceId := FirewallPolicyRuleCollectionGroupId{ - SubscriptionId: id.SubscriptionID, - ResourceGroup: id.ResourceGroup, - } - - if resourceId.SubscriptionId == "" { - return nil, fmt.Errorf("ID was missing the 'subscriptions' element") - } - - if resourceId.ResourceGroup == "" { - return nil, fmt.Errorf("ID was missing the 'resourceGroups' element") - } - - if resourceId.FirewallPolicyName, err = id.PopSegment("firewallPolicies"); err != nil { - return nil, err - } - if resourceId.RuleCollectionGroupName, err = id.PopSegment("ruleCollectionGroups"); err != nil { - return nil, err - } - - if err := id.ValidateNoEmptySegments(input); err != nil { - return nil, err - } - - return &resourceId, nil -} diff --git a/internal/services/firewall/parse/firewall_policy_rule_collection_group_test.go b/internal/services/firewall/parse/firewall_policy_rule_collection_group_test.go deleted file mode 100644 index 7c9a33e4c2af..000000000000 --- a/internal/services/firewall/parse/firewall_policy_rule_collection_group_test.go +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "testing" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -var _ resourceids.Id = FirewallPolicyRuleCollectionGroupId{} - -func TestFirewallPolicyRuleCollectionGroupIDFormatter(t *testing.T) { - actual := NewFirewallPolicyRuleCollectionGroupID("12345678-1234-9876-4563-123456789012", "resGroup1", "policy1", "ruleCollectionGroup1").ID() - expected := "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/policy1/ruleCollectionGroups/ruleCollectionGroup1" - if actual != expected { - t.Fatalf("Expected %q but got %q", expected, actual) - } -} - -func TestFirewallPolicyRuleCollectionGroupID(t *testing.T) { - testData := []struct { - Input string - Error bool - Expected *FirewallPolicyRuleCollectionGroupId - }{ - - { - // empty - Input: "", - Error: true, - }, - - { - // missing SubscriptionId - Input: "/", - Error: true, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Error: true, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Error: true, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Error: true, - }, - - { - // missing FirewallPolicyName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/", - Error: true, - }, - - { - // missing value for FirewallPolicyName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/", - Error: true, - }, - - { - // missing RuleCollectionGroupName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/policy1/", - Error: true, - }, - - { - // missing value for RuleCollectionGroupName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/policy1/ruleCollectionGroups/", - Error: true, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/policy1/ruleCollectionGroups/ruleCollectionGroup1", - Expected: &FirewallPolicyRuleCollectionGroupId{ - SubscriptionId: "12345678-1234-9876-4563-123456789012", - ResourceGroup: "resGroup1", - FirewallPolicyName: "policy1", - RuleCollectionGroupName: "ruleCollectionGroup1", - }, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.NETWORK/FIREWALLPOLICIES/POLICY1/RULECOLLECTIONGROUPS/RULECOLLECTIONGROUP1", - Error: true, - }, - } - - for _, v := range testData { - t.Logf("[DEBUG] Testing %q", v.Input) - - actual, err := FirewallPolicyRuleCollectionGroupID(v.Input) - if err != nil { - if v.Error { - continue - } - - t.Fatalf("Expect a value but got an error: %s", err) - } - if v.Error { - t.Fatal("Expect an error but didn't get one") - } - - if actual.SubscriptionId != v.Expected.SubscriptionId { - t.Fatalf("Expected %q but got %q for SubscriptionId", v.Expected.SubscriptionId, actual.SubscriptionId) - } - if actual.ResourceGroup != v.Expected.ResourceGroup { - t.Fatalf("Expected %q but got %q for ResourceGroup", v.Expected.ResourceGroup, actual.ResourceGroup) - } - if actual.FirewallPolicyName != v.Expected.FirewallPolicyName { - t.Fatalf("Expected %q but got %q for FirewallPolicyName", v.Expected.FirewallPolicyName, actual.FirewallPolicyName) - } - if actual.RuleCollectionGroupName != v.Expected.RuleCollectionGroupName { - t.Fatalf("Expected %q but got %q for RuleCollectionGroupName", v.Expected.RuleCollectionGroupName, actual.RuleCollectionGroupName) - } - } -} diff --git a/internal/services/firewall/parse/firewall_policy_test.go b/internal/services/firewall/parse/firewall_policy_test.go deleted file mode 100644 index 15988b1baf55..000000000000 --- a/internal/services/firewall/parse/firewall_policy_test.go +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "testing" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -var _ resourceids.Id = FirewallPolicyId{} - -func TestFirewallPolicyIDFormatter(t *testing.T) { - actual := NewFirewallPolicyID("12345678-1234-9876-4563-123456789012", "resGroup1", "policy1").ID() - expected := "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/policy1" - if actual != expected { - t.Fatalf("Expected %q but got %q", expected, actual) - } -} - -func TestFirewallPolicyID(t *testing.T) { - testData := []struct { - Input string - Error bool - Expected *FirewallPolicyId - }{ - - { - // empty - Input: "", - Error: true, - }, - - { - // missing SubscriptionId - Input: "/", - Error: true, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Error: true, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Error: true, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Error: true, - }, - - { - // missing Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/", - Error: true, - }, - - { - // missing value for Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/", - Error: true, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/policy1", - Expected: &FirewallPolicyId{ - SubscriptionId: "12345678-1234-9876-4563-123456789012", - ResourceGroup: "resGroup1", - Name: "policy1", - }, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.NETWORK/FIREWALLPOLICIES/POLICY1", - Error: true, - }, - } - - for _, v := range testData { - t.Logf("[DEBUG] Testing %q", v.Input) - - actual, err := FirewallPolicyID(v.Input) - if err != nil { - if v.Error { - continue - } - - t.Fatalf("Expect a value but got an error: %s", err) - } - if v.Error { - t.Fatal("Expect an error but didn't get one") - } - - if actual.SubscriptionId != v.Expected.SubscriptionId { - t.Fatalf("Expected %q but got %q for SubscriptionId", v.Expected.SubscriptionId, actual.SubscriptionId) - } - if actual.ResourceGroup != v.Expected.ResourceGroup { - t.Fatalf("Expected %q but got %q for ResourceGroup", v.Expected.ResourceGroup, actual.ResourceGroup) - } - if actual.Name != v.Expected.Name { - t.Fatalf("Expected %q but got %q for Name", v.Expected.Name, actual.Name) - } - } -} diff --git a/internal/services/firewall/parse/firewall_test.go b/internal/services/firewall/parse/firewall_test.go deleted file mode 100644 index d1feb6b7ebbf..000000000000 --- a/internal/services/firewall/parse/firewall_test.go +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package parse - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "testing" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -var _ resourceids.Id = FirewallId{} - -func TestFirewallIDFormatter(t *testing.T) { - actual := NewFirewallID("12345678-1234-9876-4563-123456789012", "group1", "firewall1").ID() - expected := "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Network/azureFirewalls/firewall1" - if actual != expected { - t.Fatalf("Expected %q but got %q", expected, actual) - } -} - -func TestFirewallID(t *testing.T) { - testData := []struct { - Input string - Error bool - Expected *FirewallId - }{ - - { - // empty - Input: "", - Error: true, - }, - - { - // missing SubscriptionId - Input: "/", - Error: true, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Error: true, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Error: true, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Error: true, - }, - - { - // missing AzureFirewallName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Network/", - Error: true, - }, - - { - // missing value for AzureFirewallName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Network/azureFirewalls/", - Error: true, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Network/azureFirewalls/firewall1", - Expected: &FirewallId{ - SubscriptionId: "12345678-1234-9876-4563-123456789012", - ResourceGroup: "group1", - AzureFirewallName: "firewall1", - }, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/GROUP1/PROVIDERS/MICROSOFT.NETWORK/AZUREFIREWALLS/FIREWALL1", - Error: true, - }, - } - - for _, v := range testData { - t.Logf("[DEBUG] Testing %q", v.Input) - - actual, err := FirewallID(v.Input) - if err != nil { - if v.Error { - continue - } - - t.Fatalf("Expect a value but got an error: %s", err) - } - if v.Error { - t.Fatal("Expect an error but didn't get one") - } - - if actual.SubscriptionId != v.Expected.SubscriptionId { - t.Fatalf("Expected %q but got %q for SubscriptionId", v.Expected.SubscriptionId, actual.SubscriptionId) - } - if actual.ResourceGroup != v.Expected.ResourceGroup { - t.Fatalf("Expected %q but got %q for ResourceGroup", v.Expected.ResourceGroup, actual.ResourceGroup) - } - if actual.AzureFirewallName != v.Expected.AzureFirewallName { - t.Fatalf("Expected %q but got %q for AzureFirewallName", v.Expected.AzureFirewallName, actual.AzureFirewallName) - } - } -} diff --git a/internal/services/firewall/resourceids.go b/internal/services/firewall/resourceids.go index 28d61aed6ca7..86aa5ad9b6ef 100644 --- a/internal/services/firewall/resourceids.go +++ b/internal/services/firewall/resourceids.go @@ -4,9 +4,6 @@ package firewall // Firewall Policy -//go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=Firewall -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Network/azureFirewalls/firewall1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=FirewallApplicationRuleCollection -id=/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/azureFirewalls/myfirewall/applicationRuleCollections/applicationRuleCollection1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=FirewallNatRuleCollection -id=/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/azureFirewalls/myfirewall/natRuleCollections/natRuleCollection1 //go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=FirewallNetworkRuleCollection -id=/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/azureFirewalls/myfirewall/networkRuleCollections/networkRuleCollection1 -//go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=FirewallPolicy -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/policy1 -//go:generate go run ../../tools/generator-resource-id/main.go -path=./ -name=FirewallPolicyRuleCollectionGroup -id=/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/policy1/ruleCollectionGroups/ruleCollectionGroup1 diff --git a/internal/services/firewall/subresource.go b/internal/services/firewall/subresource.go index e28c16aabe6c..f6b7c3a0c9b7 100644 --- a/internal/services/firewall/subresource.go +++ b/internal/services/firewall/subresource.go @@ -4,18 +4,18 @@ package firewall import ( - "github.com/tombuildsstuff/kermit/sdk/network/2022-07-01/network" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicies" ) -func flattenNetworkSubResourceID(input *[]network.SubResource) []interface{} { +func flattenNetworkSubResourceID(input *[]firewallpolicies.SubResource) []interface{} { results := make([]interface{}, 0) if input == nil { return results } for _, item := range *input { - if item.ID != nil { - results = append(results, *item.ID) + if item.Id != nil { + results = append(results, *item.Id) } } diff --git a/internal/services/firewall/validate/firewall_id.go b/internal/services/firewall/validate/firewall_id.go deleted file mode 100644 index 25867ade297c..000000000000 --- a/internal/services/firewall/validate/firewall_id.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "fmt" - - "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" -) - -func FirewallID(input interface{}, key string) (warnings []string, errors []error) { - v, ok := input.(string) - if !ok { - errors = append(errors, fmt.Errorf("expected %q to be a string", key)) - return - } - - if _, err := parse.FirewallID(v); err != nil { - errors = append(errors, err) - } - - return -} diff --git a/internal/services/firewall/validate/firewall_id_test.go b/internal/services/firewall/validate/firewall_id_test.go deleted file mode 100644 index 770d28c0148c..000000000000 --- a/internal/services/firewall/validate/firewall_id_test.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import "testing" - -func TestFirewallID(t *testing.T) { - cases := []struct { - Input string - Valid bool - }{ - - { - // empty - Input: "", - Valid: false, - }, - - { - // missing SubscriptionId - Input: "/", - Valid: false, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Valid: false, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Valid: false, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Valid: false, - }, - - { - // missing AzureFirewallName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Network/", - Valid: false, - }, - - { - // missing value for AzureFirewallName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Network/azureFirewalls/", - Valid: false, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Network/azureFirewalls/firewall1", - Valid: true, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/GROUP1/PROVIDERS/MICROSOFT.NETWORK/AZUREFIREWALLS/FIREWALL1", - Valid: false, - }, - } - for _, tc := range cases { - t.Logf("[DEBUG] Testing Value %s", tc.Input) - _, errors := FirewallID(tc.Input, "test") - valid := len(errors) == 0 - - if tc.Valid != valid { - t.Fatalf("Expected %t but got %t", tc.Valid, valid) - } - } -} diff --git a/internal/services/firewall/validate/firewall_policy_id.go b/internal/services/firewall/validate/firewall_policy_id.go deleted file mode 100644 index 3aff666bf0f2..000000000000 --- a/internal/services/firewall/validate/firewall_policy_id.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "fmt" - - "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" -) - -func FirewallPolicyID(input interface{}, key string) (warnings []string, errors []error) { - v, ok := input.(string) - if !ok { - errors = append(errors, fmt.Errorf("expected %q to be a string", key)) - return - } - - if _, err := parse.FirewallPolicyID(v); err != nil { - errors = append(errors, err) - } - - return -} diff --git a/internal/services/firewall/validate/firewall_policy_id_test.go b/internal/services/firewall/validate/firewall_policy_id_test.go deleted file mode 100644 index 9adc125881d7..000000000000 --- a/internal/services/firewall/validate/firewall_policy_id_test.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import "testing" - -func TestFirewallPolicyID(t *testing.T) { - cases := []struct { - Input string - Valid bool - }{ - - { - // empty - Input: "", - Valid: false, - }, - - { - // missing SubscriptionId - Input: "/", - Valid: false, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Valid: false, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Valid: false, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Valid: false, - }, - - { - // missing Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/", - Valid: false, - }, - - { - // missing value for Name - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/", - Valid: false, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/policy1", - Valid: true, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.NETWORK/FIREWALLPOLICIES/POLICY1", - Valid: false, - }, - } - for _, tc := range cases { - t.Logf("[DEBUG] Testing Value %s", tc.Input) - _, errors := FirewallPolicyID(tc.Input, "test") - valid := len(errors) == 0 - - if tc.Valid != valid { - t.Fatalf("Expected %t but got %t", tc.Valid, valid) - } - } -} diff --git a/internal/services/firewall/validate/firewall_policy_rule_collection_group_id.go b/internal/services/firewall/validate/firewall_policy_rule_collection_group_id.go deleted file mode 100644 index b0e6217b1fd1..000000000000 --- a/internal/services/firewall/validate/firewall_policy_rule_collection_group_id.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import ( - "fmt" - - "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" -) - -func FirewallPolicyRuleCollectionGroupID(input interface{}, key string) (warnings []string, errors []error) { - v, ok := input.(string) - if !ok { - errors = append(errors, fmt.Errorf("expected %q to be a string", key)) - return - } - - if _, err := parse.FirewallPolicyRuleCollectionGroupID(v); err != nil { - errors = append(errors, err) - } - - return -} diff --git a/internal/services/firewall/validate/firewall_policy_rule_collection_group_id_test.go b/internal/services/firewall/validate/firewall_policy_rule_collection_group_id_test.go deleted file mode 100644 index 0cdd15ca70d3..000000000000 --- a/internal/services/firewall/validate/firewall_policy_rule_collection_group_id_test.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package validate - -// NOTE: this file is generated via 'go:generate' - manual changes will be overwritten - -import "testing" - -func TestFirewallPolicyRuleCollectionGroupID(t *testing.T) { - cases := []struct { - Input string - Valid bool - }{ - - { - // empty - Input: "", - Valid: false, - }, - - { - // missing SubscriptionId - Input: "/", - Valid: false, - }, - - { - // missing value for SubscriptionId - Input: "/subscriptions/", - Valid: false, - }, - - { - // missing ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/", - Valid: false, - }, - - { - // missing value for ResourceGroup - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/", - Valid: false, - }, - - { - // missing FirewallPolicyName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/", - Valid: false, - }, - - { - // missing value for FirewallPolicyName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/", - Valid: false, - }, - - { - // missing RuleCollectionGroupName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/policy1/", - Valid: false, - }, - - { - // missing value for RuleCollectionGroupName - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/policy1/ruleCollectionGroups/", - Valid: false, - }, - - { - // valid - Input: "/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Network/firewallPolicies/policy1/ruleCollectionGroups/ruleCollectionGroup1", - Valid: true, - }, - - { - // upper-cased - Input: "/SUBSCRIPTIONS/12345678-1234-9876-4563-123456789012/RESOURCEGROUPS/RESGROUP1/PROVIDERS/MICROSOFT.NETWORK/FIREWALLPOLICIES/POLICY1/RULECOLLECTIONGROUPS/RULECOLLECTIONGROUP1", - Valid: false, - }, - } - for _, tc := range cases { - t.Logf("[DEBUG] Testing Value %s", tc.Input) - _, errors := FirewallPolicyRuleCollectionGroupID(tc.Input, "test") - valid := len(errors) == 0 - - if tc.Valid != valid { - t.Fatalf("Expected %t but got %t", tc.Valid, valid) - } - } -} diff --git a/internal/services/network/ip_group_resource.go b/internal/services/network/ip_group_resource.go index 1ca2ef7bd49b..1cfc06ea1c02 100644 --- a/internal/services/network/ip_group_resource.go +++ b/internal/services/network/ip_group_resource.go @@ -9,12 +9,13 @@ import ( "time" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/azurefirewalls" + "github.com/hashicorp/go-azure-sdk/resource-manager/network/2023-04-01/firewallpolicies" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/locks" "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall" - firewallParse "github.com/hashicorp/terraform-provider-azurerm/internal/services/firewall/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/network/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/tags" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" @@ -92,15 +93,15 @@ func resourceIpGroupCreate(d *pluginsdk.ResourceData, meta interface{}) error { defer cancel() for _, fw := range d.Get("firewall_ids").([]interface{}) { - id, _ := firewallParse.FirewallID(fw.(string)) + id, _ := azurefirewalls.ParseAzureFirewallID(fw.(string)) locks.ByName(id.AzureFirewallName, firewall.AzureFirewallResourceName) defer locks.UnlockByName(id.AzureFirewallName, firewall.AzureFirewallResourceName) } for _, fwpol := range d.Get("firewall_policy_ids").([]interface{}) { - id, _ := firewallParse.FirewallPolicyID(fwpol.(string)) - locks.ByName(id.Name, firewall.AzureFirewallPolicyResourceName) - defer locks.UnlockByName(id.Name, firewall.AzureFirewallPolicyResourceName) + id, _ := firewallpolicies.ParseFirewallPolicyID(fwpol.(string)) + locks.ByName(id.FirewallPolicyName, firewall.AzureFirewallPolicyResourceName) + defer locks.UnlockByName(id.FirewallPolicyName, firewall.AzureFirewallPolicyResourceName) } id := parse.NewIpGroupID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) @@ -195,15 +196,15 @@ func resourceIpGroupUpdate(d *pluginsdk.ResourceData, meta interface{}) error { defer cancel() for _, fw := range d.Get("firewall_ids").([]interface{}) { - id, _ := firewallParse.FirewallID(fw.(string)) + id, _ := azurefirewalls.ParseAzureFirewallID(fw.(string)) locks.ByName(id.AzureFirewallName, firewall.AzureFirewallResourceName) defer locks.UnlockByName(id.AzureFirewallName, firewall.AzureFirewallResourceName) } for _, fwpol := range d.Get("firewall_policy_ids").([]interface{}) { - id, _ := firewallParse.FirewallPolicyID(fwpol.(string)) - locks.ByName(id.Name, firewall.AzureFirewallPolicyResourceName) - defer locks.UnlockByName(id.Name, firewall.AzureFirewallPolicyResourceName) + id, _ := firewallpolicies.ParseFirewallPolicyID(fwpol.(string)) + locks.ByName(id.FirewallPolicyName, firewall.AzureFirewallPolicyResourceName) + defer locks.UnlockByName(id.FirewallPolicyName, firewall.AzureFirewallPolicyResourceName) } id := parse.NewIpGroupID(subscriptionId, d.Get("resource_group_name").(string), d.Get("name").(string)) @@ -286,15 +287,15 @@ func resourceIpGroupDelete(d *pluginsdk.ResourceData, meta interface{}) error { } for _, fw := range *read.Firewalls { - id, _ := firewallParse.FirewallID(*fw.ID) + id, _ := azurefirewalls.ParseAzureFirewallID(*fw.ID) locks.ByName(id.AzureFirewallName, firewall.AzureFirewallResourceName) defer locks.UnlockByName(id.AzureFirewallName, firewall.AzureFirewallResourceName) } for _, fwpol := range *read.FirewallPolicies { - id, _ := firewallParse.FirewallPolicyID(*fwpol.ID) - locks.ByName(id.Name, firewall.AzureFirewallPolicyResourceName) - defer locks.UnlockByName(id.Name, firewall.AzureFirewallPolicyResourceName) + id, _ := firewallpolicies.ParseFirewallPolicyID(*fwpol.ID) + locks.ByName(id.FirewallPolicyName, firewall.AzureFirewallPolicyResourceName) + defer locks.UnlockByName(id.FirewallPolicyName, firewall.AzureFirewallPolicyResourceName) } future, err := client.Delete(ctx, id.ResourceGroup, id.Name) From 3d855053ba76b967ac10666af31a10f038948c3d Mon Sep 17 00:00:00 2001 From: Heng Lu <79895375+ms-henglu@users.noreply.github.com> Date: Tue, 26 Sep 2023 13:48:11 +0800 Subject: [PATCH 286/336] `azurerm_kubernetes_cluster` - `network_profile.network_policy` supports `cilium` (#23342) * `azurerm_kubernetes_cluster` - `network_profile.network_policy` supports `cilium` * remove forcenew --- ...ubernetes_cluster_network_resource_test.go | 140 ++++++++++++++++++ .../containers/kubernetes_cluster_resource.go | 5 +- .../docs/r/kubernetes_cluster.html.markdown | 2 +- 3 files changed, 145 insertions(+), 2 deletions(-) diff --git a/internal/services/containers/kubernetes_cluster_network_resource_test.go b/internal/services/containers/kubernetes_cluster_network_resource_test.go index 0de518892049..027ae06ac3ff 100644 --- a/internal/services/containers/kubernetes_cluster_network_resource_test.go +++ b/internal/services/containers/kubernetes_cluster_network_resource_test.go @@ -222,6 +222,43 @@ func TestAccKubernetesCluster_advancedNetworkingAzureCalicoPolicy(t *testing.T) }) } +func TestAccKubernetesCluster_advancedNetworkingAzureCiliumPolicy(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_kubernetes_cluster", "test") + r := KubernetesClusterResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.advancedNetworkingWithCiliumPolicyConfig(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccKubernetesCluster_advancedNetworkingAzureCiliumPolicyUpdate(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_kubernetes_cluster", "test") + r := KubernetesClusterResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.advancedNetworkingWithOverlayConfig(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.advancedNetworkingWithCiliumPolicyConfig(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func TestAccKubernetesCluster_advancedNetworkingAzureCalicoPolicyComplete(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_kubernetes_cluster", "test") r := KubernetesClusterResource{} @@ -1428,6 +1465,109 @@ resource "azurerm_kubernetes_cluster" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, networkPlugin, networkPolicy) } +func (KubernetesClusterResource) advancedNetworkingWithOverlayConfig(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-aks-%[2]d" + location = "%[1]s" +} + +resource "azurerm_virtual_network" "test" { + name = "acctestvirtnet%[2]d" + address_space = ["10.1.0.0/16"] + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name +} + +resource "azurerm_subnet" "test" { + name = "acctestsubnet%[2]d" + resource_group_name = azurerm_resource_group.test.name + virtual_network_name = azurerm_virtual_network.test.name + address_prefixes = ["10.1.0.0/24"] +} + +resource "azurerm_kubernetes_cluster" "test" { + name = "acctestaks%[2]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + dns_prefix = "acctestaks%[2]d" + + default_node_pool { + name = "default" + node_count = 2 + vm_size = "Standard_DS2_v2" + vnet_subnet_id = azurerm_subnet.test.id + } + + identity { + type = "SystemAssigned" + } + + network_profile { + network_plugin = "azure" + ebpf_data_plane = "cilium" + network_plugin_mode = "overlay" + } +} +`, data.Locations.Primary, data.RandomInteger) +} + +func (KubernetesClusterResource) advancedNetworkingWithCiliumPolicyConfig(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-aks-%[2]d" + location = "%[1]s" +} + +resource "azurerm_virtual_network" "test" { + name = "acctestvirtnet%[2]d" + address_space = ["10.1.0.0/16"] + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name +} + +resource "azurerm_subnet" "test" { + name = "acctestsubnet%[2]d" + resource_group_name = azurerm_resource_group.test.name + virtual_network_name = azurerm_virtual_network.test.name + address_prefixes = ["10.1.0.0/24"] +} + +resource "azurerm_kubernetes_cluster" "test" { + name = "acctestaks%[2]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + dns_prefix = "acctestaks%[2]d" + + default_node_pool { + name = "default" + node_count = 2 + vm_size = "Standard_DS2_v2" + vnet_subnet_id = azurerm_subnet.test.id + } + + identity { + type = "SystemAssigned" + } + + network_profile { + network_plugin = "azure" + network_policy = "cilium" + ebpf_data_plane = "cilium" + network_plugin_mode = "overlay" + } +} +`, data.Locations.Primary, data.RandomInteger) +} + // nolint unparam func (KubernetesClusterResource) advancedNetworkingWithPolicyCompleteConfig(data acceptance.TestData, networkPlugin string, networkPolicy string) string { return fmt.Sprintf(` diff --git a/internal/services/containers/kubernetes_cluster_resource.go b/internal/services/containers/kubernetes_cluster_resource.go index 067f87c652ae..75bda5ae026f 100644 --- a/internal/services/containers/kubernetes_cluster_resource.go +++ b/internal/services/containers/kubernetes_cluster_resource.go @@ -108,6 +108,9 @@ func resourceKubernetesCluster() *pluginsdk.Resource { pluginsdk.ForceNewIfChange("network_profile.0.network_plugin_mode", func(ctx context.Context, _, new, meta interface{}) bool { return !strings.EqualFold(new.(string), string(managedclusters.NetworkPluginModeOverlay)) }), + pluginsdk.ForceNewIfChange("network_profile.0.network_policy", func(ctx context.Context, old, new, meta interface{}) bool { + return old.(string) != "" || new.(string) != string(managedclusters.NetworkPolicyCilium) + }), ), Timeouts: &pluginsdk.ResourceTimeout{ @@ -1049,10 +1052,10 @@ func resourceKubernetesCluster() *pluginsdk.Resource { Type: pluginsdk.TypeString, Optional: true, Computed: true, - ForceNew: true, ValidateFunc: validation.StringInSlice([]string{ string(managedclusters.NetworkPolicyCalico), string(managedclusters.NetworkPolicyAzure), + string(managedclusters.NetworkPolicyCilium), }, false), }, diff --git a/website/docs/r/kubernetes_cluster.html.markdown b/website/docs/r/kubernetes_cluster.html.markdown index 7fa6d0abc6d0..351e187b8bc9 100644 --- a/website/docs/r/kubernetes_cluster.html.markdown +++ b/website/docs/r/kubernetes_cluster.html.markdown @@ -663,7 +663,7 @@ A `network_profile` block supports the following: ~> **Note:** This property can only be set when `network_plugin` is set to `azure`. -* `network_policy` - (Optional) Sets up network policy to be used with Azure CNI. [Network policy allows us to control the traffic flow between pods](https://docs.microsoft.com/azure/aks/use-network-policies). Currently supported values are `calico` and `azure`. Changing this forces a new resource to be created. +* `network_policy` - (Optional) Sets up network policy to be used with Azure CNI. [Network policy allows us to control the traffic flow between pods](https://docs.microsoft.com/azure/aks/use-network-policies). Currently supported values are `calico`, `azure` and `cilium`. Changing this forces a new resource to be created. ~> **Note:** When `network_policy` is set to `azure`, the `network_plugin` field can only be set to `azure`. From 5707f88f7fa439941f871afb69cbd0b676a57a16 Mon Sep 17 00:00:00 2001 From: Yun Liu Date: Tue, 26 Sep 2023 17:44:22 +0800 Subject: [PATCH 287/336] `azurerm_cognitive_deployment` - remove ForceNew tag for property 'capacity' (#23251) * remove ForceNew tag * add update function * format update --- .../cognitive_deployment_resource.go | 55 ++++++++++++++++--- .../cognitive_deployment_resource_test.go | 54 +++++++++++++++++- 2 files changed, 99 insertions(+), 10 deletions(-) diff --git a/internal/services/cognitive/cognitive_deployment_resource.go b/internal/services/cognitive/cognitive_deployment_resource.go index a4f63cee823b..77c14ca41de7 100644 --- a/internal/services/cognitive/cognitive_deployment_resource.go +++ b/internal/services/cognitive/cognitive_deployment_resource.go @@ -8,6 +8,7 @@ import ( "fmt" "time" + "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-sdk/resource-manager/cognitive/2023-05-01/cognitiveservicesaccounts" "github.com/hashicorp/go-azure-sdk/resource-manager/cognitive/2023-05-01/deployments" @@ -115,7 +116,6 @@ func (r CognitiveDeploymentResource) Arguments() map[string]*pluginsdk.Schema { arguments["scale"] = &pluginsdk.Schema{ Type: pluginsdk.TypeList, Required: true, - ForceNew: true, MaxItems: 1, Elem: &pluginsdk.Resource{ Schema: map[string]*pluginsdk.Schema{ @@ -149,7 +149,6 @@ func (r CognitiveDeploymentResource) Arguments() map[string]*pluginsdk.Schema { "capacity": { Type: pluginsdk.TypeInt, Optional: true, - ForceNew: true, Default: 1, ValidateFunc: validation.IntAtLeast(1), }, @@ -161,7 +160,6 @@ func (r CognitiveDeploymentResource) Arguments() map[string]*pluginsdk.Schema { arguments["sku"] = &pluginsdk.Schema{ Type: pluginsdk.TypeList, Required: true, - ForceNew: true, MaxItems: 1, Elem: &pluginsdk.Resource{ Schema: map[string]*pluginsdk.Schema{ @@ -195,7 +193,6 @@ func (r CognitiveDeploymentResource) Arguments() map[string]*pluginsdk.Schema { "capacity": { Type: pluginsdk.TypeInt, Optional: true, - ForceNew: true, Default: 1, ValidateFunc: validation.IntAtLeast(1), }, @@ -221,14 +218,13 @@ func (r CognitiveDeploymentResource) Create() sdk.ResourceFunc { client := metadata.Client.Cognitive.DeploymentsClient accountId, err := cognitiveservicesaccounts.ParseAccountID(model.CognitiveAccountId) - - locks.ByID(accountId.ID()) - defer locks.UnlockByID(accountId.ID()) - if err != nil { return err } + locks.ByID(accountId.ID()) + defer locks.UnlockByID(accountId.ID()) + id := deployments.NewDeploymentID(accountId.SubscriptionId, accountId.ResourceGroupName, accountId.AccountName, model.Name) existing, err := client.Get(ctx, id) if err != nil && !response.WasNotFound(existing.HttpResponse) { @@ -261,6 +257,49 @@ func (r CognitiveDeploymentResource) Create() sdk.ResourceFunc { } } +func (r CognitiveDeploymentResource) Update() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + var model cognitiveDeploymentModel + if err := metadata.Decode(&model); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + client := metadata.Client.Cognitive.DeploymentsClient + accountId, err := cognitiveservicesaccounts.ParseAccountID(model.CognitiveAccountId) + if err != nil { + return err + } + + locks.ByID(accountId.ID()) + defer locks.UnlockByID(accountId.ID()) + + id, err := deployments.ParseDeploymentID(metadata.ResourceData.Id()) + if err != nil { + return err + } + resp, err := client.Get(ctx, *id) + if err != nil { + return err + } + + properties := resp.Model + + if metadata.ResourceData.HasChange("scale.0.capacity") { + properties.Sku.Capacity = pointer.To(model.ScaleSettings[0].Capacity) + } + + if err := client.CreateOrUpdateThenPoll(ctx, *id, *properties); err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + + metadata.SetID(id) + return nil + }, + } +} + func (r CognitiveDeploymentResource) Read() sdk.ResourceFunc { return sdk.ResourceFunc{ Timeout: 5 * time.Minute, diff --git a/internal/services/cognitive/cognitive_deployment_resource_test.go b/internal/services/cognitive/cognitive_deployment_resource_test.go index 86be40dd5a77..acc1bf42e638 100644 --- a/internal/services/cognitive/cognitive_deployment_resource_test.go +++ b/internal/services/cognitive/cognitive_deployment_resource_test.go @@ -27,6 +27,7 @@ func TestAccCognitiveDeploymentSequential(t *testing.T) { "basic": TestAccCognitiveDeployment_basic, "requiresImport": testAccCognitiveDeployment_requiresImport, "complete": testAccCognitiveDeployment_complete, + "update": TestAccCognitiveDeployment_update, }, }) } @@ -75,6 +76,30 @@ func testAccCognitiveDeployment_complete(t *testing.T) { }) } +func TestAccCognitiveDeployment_update(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_cognitive_deployment", "test") + r := CognitiveDeploymentTestResource{} + + data.ResourceSequentialTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("scale.0.capacity").HasValue("1"), + ), + }, + data.ImportStep(), + { + Config: r.update(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("scale.0.capacity").HasValue("2"), + ), + }, + data.ImportStep(), + }) +} + func (r CognitiveDeploymentTestResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := deployments.ParseDeploymentID(state.ID) if err != nil { @@ -125,7 +150,7 @@ resource "azurerm_cognitive_deployment" "test" { model { format = "OpenAI" name = "text-embedding-ada-002" - version = "1" + version = "2" } scale { type = "Standard" @@ -145,7 +170,7 @@ resource "azurerm_cognitive_deployment" "import" { model { format = "OpenAI" name = "text-embedding-ada-002" - version = "1" + version = "2" } scale { type = "Standard" @@ -175,3 +200,28 @@ resource "azurerm_cognitive_deployment" "test" { } `, template, data.RandomInteger) } + +func (r CognitiveDeploymentTestResource) update(data acceptance.TestData) string { + template := r.template(data, "OpenAI") + return fmt.Sprintf(` + + + + +%s + +resource "azurerm_cognitive_deployment" "test" { + name = "acctest-cd-%d" + cognitive_account_id = azurerm_cognitive_account.test.id + model { + format = "OpenAI" + name = "text-embedding-ada-002" + version = "2" + } + scale { + type = "Standard" + capacity = 2 + } +} +`, template, data.RandomInteger) +} From 90abb8caa1a2fd8b1f179c35971062783329aad3 Mon Sep 17 00:00:00 2001 From: Yichun Ma Date: Tue, 26 Sep 2023 12:26:46 -0400 Subject: [PATCH 288/336] `data` `azurerm_shared_image_version` - consider `excludeFromLatest` for `latest` version (#21822) Co-authored-by: kt --- .../shared_image_version_data_source.go | 14 +- .../shared_image_version_data_source_test.go | 186 ++++++++++++++++-- .../docs/d/shared_image_version.html.markdown | 2 + 3 files changed, 189 insertions(+), 13 deletions(-) diff --git a/internal/services/compute/shared_image_version_data_source.go b/internal/services/compute/shared_image_version_data_source.go index 6243c515afcb..c794b1242426 100644 --- a/internal/services/compute/shared_image_version_data_source.go +++ b/internal/services/compute/shared_image_version_data_source.go @@ -12,6 +12,7 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/features" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/parse" "github.com/hashicorp/terraform-provider-azurerm/internal/services/compute/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tags" @@ -196,8 +197,17 @@ func obtainImage(client *compute.GalleryImageVersionsClient, ctx context.Context return nil, fmt.Errorf("parsing version(s): %v", errs) } } - image := images[len(images)-1] - return &image, nil + + if !features.FourPointOhBeta() { + image := images[len(images)-1] + return &image, nil + } + + for i := len(images) - 1; i >= 0; i-- { + if prop := images[i].GalleryImageVersionProperties; prop == nil || prop.PublishingProfile == nil || prop.PublishingProfile.ExcludeFromLatest == nil || !*prop.PublishingProfile.ExcludeFromLatest { + return &(images[i]), nil + } + } } return nil, notFoundError diff --git a/internal/services/compute/shared_image_version_data_source_test.go b/internal/services/compute/shared_image_version_data_source_test.go index ec5e9851d49b..3060e51c6892 100644 --- a/internal/services/compute/shared_image_version_data_source_test.go +++ b/internal/services/compute/shared_image_version_data_source_test.go @@ -9,6 +9,7 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/features" ) type SharedImageVersionDataSource struct{} @@ -26,9 +27,6 @@ func TestAccDataSourceSharedImageVersion_basic(t *testing.T) { data.CheckWithClientForResource(ImageResource{}.generalizeVirtualMachine(data), "azurerm_virtual_machine.testsource"), ), }, - { - Config: SharedImageVersionResource{}.imageVersion(data), - }, { Config: r.basic(data), Check: acceptance.ComposeTestCheckFunc( @@ -54,11 +52,40 @@ func TestAccDataSourceSharedImageVersion_latest(t *testing.T) { ), }, { - Config: r.additionalVersion(data), + Config: r.latest(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("name").HasValue("0.0.2"), + check.That(data.ResourceName).Key("managed_image_id").Exists(), + check.That(data.ResourceName).Key("target_region.#").HasValue("1"), + check.That(data.ResourceName).Key("target_region.0.storage_account_type").HasValue("Standard_LRS"), + ), + }, + }) +} + +func TestAccDataSourceSharedImageVersion_excludeFromLatest(t *testing.T) { + data := acceptance.BuildTestData(t, "data.azurerm_shared_image_version", "test") + r := SharedImageVersionDataSource{} + + expectedVersion := "0.0.1" + if !features.FourPointOhBeta() { + // `ExcludeFromLatest` is not considered in 3.0 so `0.0.2` will still be the latest image + expectedVersion = "0.0.2" + } + + data.DataSourceTest(t, []acceptance.TestStep{ + { + // need to create a vm and then reference it in the image creation + Config: SharedImageVersionResource{}.setup(data), + Check: acceptance.ComposeTestCheckFunc( + data.CheckWithClientForResource(ImageResource{}.virtualMachineExists, "azurerm_virtual_machine.testsource"), + data.CheckWithClientForResource(ImageResource{}.generalizeVirtualMachine(data), "azurerm_virtual_machine.testsource"), + ), }, { - Config: r.customName(data, "latest"), + Config: r.excludeFromLatest(data), Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("name").HasValue(expectedVersion), check.That(data.ResourceName).Key("managed_image_id").Exists(), check.That(data.ResourceName).Key("target_region.#").HasValue("1"), check.That(data.ResourceName).Key("target_region.0.storage_account_type").HasValue("Standard_LRS"), @@ -82,11 +109,34 @@ func TestAccDataSourceSharedImageVersion_recent(t *testing.T) { ), }, { - Config: r.additionalVersion(data), + Config: r.recent(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("name").HasValue("0.0.2"), + check.That(data.ResourceName).Key("managed_image_id").Exists(), + check.That(data.ResourceName).Key("target_region.#").HasValue("1"), + check.That(data.ResourceName).Key("target_region.0.storage_account_type").HasValue("Standard_LRS"), + ), + }, + }) +} + +func TestAccDataSourceSharedImageVersion_sortVersionsBySemver(t *testing.T) { + data := acceptance.BuildTestData(t, "data.azurerm_shared_image_version", "test") + r := SharedImageVersionDataSource{} + + data.DataSourceTest(t, []acceptance.TestStep{ + { + // need to create a vm and then reference it in the image creation + Config: SharedImageVersionResource{}.setup(data), + Check: acceptance.ComposeTestCheckFunc( + data.CheckWithClientForResource(ImageResource{}.virtualMachineExists, "azurerm_virtual_machine.testsource"), + data.CheckWithClientForResource(ImageResource{}.generalizeVirtualMachine(data), "azurerm_virtual_machine.testsource"), + ), }, { - Config: r.customName(data, "recent"), + Config: r.sortVersionsBySemver(data), Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("name").HasValue("0.0.10"), check.That(data.ResourceName).Key("managed_image_id").Exists(), check.That(data.ResourceName).Key("target_region.#").HasValue("1"), check.That(data.ResourceName).Key("target_region.0.storage_account_type").HasValue("Standard_LRS"), @@ -108,7 +158,7 @@ data "azurerm_shared_image_version" "test" { `, SharedImageVersionResource{}.imageVersion(data)) } -func (SharedImageVersionDataSource) additionalVersion(data acceptance.TestData) string { +func (SharedImageVersionDataSource) latest(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -125,18 +175,132 @@ resource "azurerm_shared_image_version" "test2" { regional_replica_count = 1 } } + +data "azurerm_shared_image_version" "test" { + name = "latest" + gallery_name = azurerm_shared_image_version.test2.gallery_name + image_name = azurerm_shared_image_version.test2.image_name + resource_group_name = azurerm_shared_image_version.test2.resource_group_name +} `, SharedImageVersionResource{}.imageVersion(data)) } -func (r SharedImageVersionDataSource) customName(data acceptance.TestData, name string) string { +func (SharedImageVersionDataSource) excludeFromLatest(data acceptance.TestData) string { return fmt.Sprintf(` %s +resource "azurerm_shared_image_version" "test2" { + name = "0.0.2" + gallery_name = azurerm_shared_image_gallery.test.name + image_name = azurerm_shared_image.test.name + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + managed_image_id = azurerm_image.test.id + exclude_from_latest = true + + target_region { + name = azurerm_resource_group.test.location + regional_replica_count = 1 + } +} + data "azurerm_shared_image_version" "test" { - name = "%s" + name = "latest" gallery_name = azurerm_shared_image_version.test2.gallery_name image_name = azurerm_shared_image_version.test2.image_name resource_group_name = azurerm_shared_image_version.test2.resource_group_name } -`, r.additionalVersion(data), name) +`, SharedImageVersionResource{}.imageVersion(data)) +} + +func (SharedImageVersionDataSource) recent(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_shared_image_version" "test2" { + name = "0.0.3" + gallery_name = azurerm_shared_image_gallery.test.name + image_name = azurerm_shared_image.test.name + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + managed_image_id = azurerm_image.test.id + + target_region { + name = azurerm_resource_group.test.location + regional_replica_count = 1 + } +} + +resource "azurerm_shared_image_version" "test3" { + name = "0.0.2" + gallery_name = azurerm_shared_image_gallery.test.name + image_name = azurerm_shared_image.test.name + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + managed_image_id = azurerm_image.test.id + + target_region { + name = azurerm_resource_group.test.location + regional_replica_count = 1 + } + + depends_on = [ + azurerm_shared_image_version.test2 + ] +} + +data "azurerm_shared_image_version" "test" { + name = "recent" + gallery_name = azurerm_shared_image_version.test3.gallery_name + image_name = azurerm_shared_image_version.test3.image_name + resource_group_name = azurerm_shared_image_version.test3.resource_group_name +} +`, SharedImageVersionResource{}.imageVersion(data)) +} + +func (SharedImageVersionDataSource) sortVersionsBySemver(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_shared_image_version" "test2" { + name = "0.0.9" + gallery_name = azurerm_shared_image_gallery.test.name + image_name = azurerm_shared_image.test.name + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + managed_image_id = azurerm_image.test.id + + target_region { + name = azurerm_resource_group.test.location + regional_replica_count = 1 + } +} + +resource "azurerm_shared_image_version" "test3" { + name = "0.0.10" + gallery_name = azurerm_shared_image_gallery.test.name + image_name = azurerm_shared_image.test.name + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + managed_image_id = azurerm_image.test.id + + target_region { + name = azurerm_resource_group.test.location + regional_replica_count = 1 + } + + depends_on = [ + azurerm_shared_image_version.test2 + ] +} + +data "azurerm_shared_image_version" "test" { + name = "latest" + gallery_name = azurerm_shared_image_version.test3.gallery_name + image_name = azurerm_shared_image_version.test3.image_name + resource_group_name = azurerm_shared_image_version.test3.resource_group_name + + sort_versions_by_semver = true +} +`, SharedImageVersionResource{}.imageVersion(data)) } diff --git a/website/docs/d/shared_image_version.html.markdown b/website/docs/d/shared_image_version.html.markdown index 4e7e21bef75d..0e81d9c6b578 100644 --- a/website/docs/d/shared_image_version.html.markdown +++ b/website/docs/d/shared_image_version.html.markdown @@ -30,6 +30,8 @@ The following arguments are supported: ~> **Note:** You may specify `latest` to obtain the latest version or `recent` to obtain the most recently updated version. +~> **Note:** In 3.0, `latest` may return an image version with `exclude_from_latest` set to `true`. Starting from 4.0 onwards `latest` will not return image versions with `exlude_from_latest` set to `true`. + * `image_name` - The name of the Shared Image in which this Version exists. * `gallery_name` - The name of the Shared Image Gallery in which the Shared Image exists. From f7823781d9716735778d2b81fcd509ab0051a687 Mon Sep 17 00:00:00 2001 From: Ihab Zhaika <139862870+Ihab-Zhaika@users.noreply.github.com> Date: Tue, 26 Sep 2023 19:30:28 +0300 Subject: [PATCH 289/336] security_center_subscription_pricing_resource: refactor disabled extensions logic (#22997) * security_center_subscription_pricing_resource: Fix disabled extensions logic Signed-off-by: Ihab Zhaika * Add backend extensions explicitly Signed-off-by: Ihab Zhaika * Support extension per subplan Signed-off-by: Ihab Zhaika * Update the documentation Signed-off-by: Ihab Zhaika * Add tests Signed-off-by: Ihab Zhaika * Add containers bundle extnesions Signed-off-by: Ihab Zhaika * remove hardocded extensions and fetch them dynamiclly Signed-off-by: Ihab Zhaika * Fail when switching to free and having extensions Signed-off-by: Ihab Zhaika * Apply suggestions from code review review changes Co-authored-by: catriona-m <86247157+catriona-m@users.noreply.github.com> --------- Signed-off-by: Ihab Zhaika Co-authored-by: catriona-m <86247157+catriona-m@users.noreply.github.com> --- ...ty_center_subscription_pricing_resource.go | 67 ++++++++++----- ...nter_subscription_pricing_resource_test.go | 85 +++++++++++++++++++ ..._center_subscription_pricing.html.markdown | 32 ++++++- 3 files changed, 163 insertions(+), 21 deletions(-) diff --git a/internal/services/securitycenter/security_center_subscription_pricing_resource.go b/internal/services/securitycenter/security_center_subscription_pricing_resource.go index 8b9d3165388b..63ab47a216b7 100644 --- a/internal/services/securitycenter/security_center_subscription_pricing_resource.go +++ b/internal/services/securitycenter/security_center_subscription_pricing_resource.go @@ -134,14 +134,21 @@ func resourceSecurityCenterSubscriptionPricingUpdate(d *pluginsdk.ResourceData, } extensionsStatusFromBackend := make([]pricings_v2023_01_01.Extension, 0) - if err == nil && apiResponse.Model != nil && apiResponse.Model.Properties != nil && apiResponse.Model.Properties.Extensions != nil { - extensionsStatusFromBackend = *apiResponse.Model.Properties.Extensions + isCurrentlyInFree := false + if err == nil && apiResponse.Model != nil && apiResponse.Model.Properties != nil { + if apiResponse.Model.Properties.Extensions != nil { + extensionsStatusFromBackend = *apiResponse.Model.Properties.Extensions + } + + if apiResponse.Model.Properties.PricingTier == pricings_v2023_01_01.PricingTierFree { + isCurrentlyInFree = true + } } if vSub, okSub := d.GetOk("subplan"); okSub { pricing.Properties.SubPlan = utils.String(vSub.(string)) } - if d.HasChange("extension") || d.IsNewResource() { + if d.HasChange("extension") { // can not set extensions for free tier if pricing.Properties.PricingTier == pricings_v2023_01_01.PricingTierStandard { var extensions = expandSecurityCenterSubscriptionPricingExtensions(d.Get("extension").(*pluginsdk.Set).List(), &extensionsStatusFromBackend) @@ -149,8 +156,31 @@ func resourceSecurityCenterSubscriptionPricingUpdate(d *pluginsdk.ResourceData, } } - if _, err := client.Update(ctx, id, pricing); err != nil { - return fmt.Errorf("setting %s: %+v", id, err) + if len(d.Get("extension").(*pluginsdk.Set).List()) > 0 && pricing.Properties.PricingTier == pricings_v2023_01_01.PricingTierFree { + return fmt.Errorf("extensions cannot be enabled when using free tier") + } + + updateResponse, updateErr := client.Update(ctx, id, pricing) + if updateErr != nil { + return fmt.Errorf("setting %s: %+v", id, updateErr) + } + + if updateErr == nil && updateResponse.Model != nil && updateResponse.Model.Properties != nil { + if updateResponse.Model.Properties.Extensions != nil { + extensionsStatusFromBackend = *updateResponse.Model.Properties.Extensions + } + } + + // after turning on the bundle, we have now the extensions list + if d.IsNewResource() || isCurrentlyInFree { + var extensions = expandSecurityCenterSubscriptionPricingExtensions(d.Get("extension").(*pluginsdk.Set).List(), &extensionsStatusFromBackend) + pricing.Properties.Extensions = extensions + _, updateErr := client.Update(ctx, id, pricing) + if err != nil { + if updateErr != nil { + return fmt.Errorf("setting %s: %+v", id, updateErr) + } + } } d.SetId(id.ID()) @@ -218,32 +248,29 @@ func resourceSecurityCenterSubscriptionPricingDelete(d *pluginsdk.ResourceData, } func expandSecurityCenterSubscriptionPricingExtensions(inputList []interface{}, extensionsStatusFromBackend *[]pricings_v2023_01_01.Extension) *[]pricings_v2023_01_01.Extension { - if len(inputList) == 0 { - return nil - } var extensionStatuses = map[string]bool{} var extensionProperties = map[string]*interface{}{} - var outputList []pricings_v2023_01_01.Extension + + if extensionsStatusFromBackend != nil { + for _, backendExtension := range *extensionsStatusFromBackend { + // set the default value to false, then turn on the extension that appear in the template + extensionStatuses[backendExtension.Name] = false + } + } + + // set any extension in the template to be true for _, v := range inputList { input := v.(map[string]interface{}) + if input["name"] == "" { + continue + } extensionStatuses[input["name"].(string)] = true - if vAdditional, ok := input["additional_extension_properties"]; ok { extensionProperties[input["name"].(string)] = &vAdditional } } - if extensionsStatusFromBackend != nil { - for _, backendExtension := range *extensionsStatusFromBackend { - _, ok := extensionStatuses[backendExtension.Name] - // set any extension that does not appear in the template to be false - if !ok { - extensionStatuses[backendExtension.Name] = false - } - } - } - for extensionName, toBeEnabled := range extensionStatuses { isEnabled := pricings_v2023_01_01.IsEnabledFalse diff --git a/internal/services/securitycenter/security_center_subscription_pricing_resource_test.go b/internal/services/securitycenter/security_center_subscription_pricing_resource_test.go index d8c6c9ae5ce5..79c80bd6520e 100644 --- a/internal/services/securitycenter/security_center_subscription_pricing_resource_test.go +++ b/internal/services/securitycenter/security_center_subscription_pricing_resource_test.go @@ -135,6 +135,61 @@ func TestAccSecurityCenterSubscriptionPricing_cloudPostureExtension(t *testing.T }) } +func TestAccSecurityCenterSubscriptionPricing_cloudPostureExtensionFreeToStandardDisabledExtensions(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_security_center_subscription_pricing", "test") + r := SecurityCenterSubscriptionPricingResource{} + + data.ResourceSequentialTestSkipCheckDestroyed(t, []acceptance.TestStep{ + { + Config: r.cloudPostureFree(), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("tier").HasValue("Free"), + check.That(data.ResourceName).Key("resource_type").HasValue("CloudPosture"), + ), + }, + data.ImportStep(), + { + Config: r.cloudPostureStandard(), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("tier").HasValue("Standard"), + check.That(data.ResourceName).Key("resource_type").HasValue("CloudPosture"), + check.That(data.ResourceName).Key("extension.#").HasValue("0"), + ), + }, + data.ImportStep(), + }) +} + +func TestAccSecurityCenterSubscriptionPricing_cloudPostureExtensioStandardToFreeExtensions(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_security_center_subscription_pricing", "test") + r := SecurityCenterSubscriptionPricingResource{} + + data.ResourceSequentialTestSkipCheckDestroyed(t, []acceptance.TestStep{ + { + Config: r.cloudPostureExtension(), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("tier").HasValue("Standard"), + check.That(data.ResourceName).Key("resource_type").HasValue("CloudPosture"), + check.That(data.ResourceName).Key("extension.#").HasValue("2"), + ), + }, + data.ImportStep(), + { + Config: r.cloudPostureFree(), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("tier").HasValue("Free"), + check.That(data.ResourceName).Key("resource_type").HasValue("CloudPosture"), + check.That(data.ResourceName).Key("extension.#").HasValue("0"), + ), + }, + data.ImportStep(), + }) +} + func (SecurityCenterSubscriptionPricingResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := pricings_v2023_01_01.ParsePricingIDInsensitively(state.ID) if err != nil { @@ -231,3 +286,33 @@ resource "azurerm_security_center_subscription_pricing" "test" { } ` } + +func (SecurityCenterSubscriptionPricingResource) cloudPostureFree() string { + return ` +provider "azurerm" { + features { + + } +} + +resource "azurerm_security_center_subscription_pricing" "test" { + tier = "Free" + resource_type = "CloudPosture" +} +` +} + +func (SecurityCenterSubscriptionPricingResource) cloudPostureStandard() string { + return ` +provider "azurerm" { + features { + + } +} + +resource "azurerm_security_center_subscription_pricing" "test" { + tier = "Standard" + resource_type = "CloudPosture" +} +` +} diff --git a/website/docs/r/security_center_subscription_pricing.html.markdown b/website/docs/r/security_center_subscription_pricing.html.markdown index a5af3f75c9f5..54f7d4682abe 100644 --- a/website/docs/r/security_center_subscription_pricing.html.markdown +++ b/website/docs/r/security_center_subscription_pricing.html.markdown @@ -14,6 +14,8 @@ Manages the Pricing Tier for Azure Security Center in the current subscription. ## Example Usage +### Basic usage + ```hcl resource "azurerm_security_center_subscription_pricing" "example" { tier = "Standard" @@ -21,6 +23,34 @@ resource "azurerm_security_center_subscription_pricing" "example" { } ``` +### Using Extensions with Defender CSPM + +```hcl +resource "azurerm_security_center_subscription_pricing" "example1" { + tier = "Standard" + resource_type = "CloudPosture" + + extension { + name = "ContainerRegistriesVulnerabilityAssessments" + } + + extension { + name = "AgentlessVmScanning" + additional_extension_properties = { + ExclusionTags = "[]" + } + } + + extension { + name = "AgentlessDiscoveryForKubernetes" + } + + extension { + name = "SensitiveDataDiscovery" + } +} +``` + ## Argument Reference The following arguments are supported: @@ -38,7 +68,7 @@ A `extension` block supports the following: * `additional_extension_properties` - (Optional) Key/Value pairs that are required for some extensions. -~> **NOTE:** If an extension is not defined, it will not be enabled. Use `ignore_changes` on the `extension` field if you want to use the default extensions. +~> **NOTE:** If an extension is not defined, it will not be enabled. ~> **NOTE:** Changing the pricing tier to `Standard` affects all resources of the given type in the subscription and could be quite costly. From da7468226f353d7933e09686604309899ff3a528 Mon Sep 17 00:00:00 2001 From: catriona-m <86247157+catriona-m@users.noreply.github.com> Date: Tue, 26 Sep 2023 17:31:18 +0100 Subject: [PATCH 290/336] Update CHANGELOG.md #22997 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index db4ae53b7762..13881eed68dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ BUG FIXES: * `azurerm_api_management_api` : fix importing `openapi` format content file issue [GH-23348] * `azurerm_palo_alto_local_rulestack_prefix_list` - fix rulestack not being committed on delete [GH-23362] * `azurerm_palo_alto_local_rulestack_fqdn_list` - fix rulestack not being committed on delete [GH-23362] +* `security_center_subscription_pricing_resource` - disabled extensions logic now works as expected [GH-22997] ## 3.74.0 (September 21, 2023) From e71267e77fc3170f3495c95b1a9af93163572360 Mon Sep 17 00:00:00 2001 From: Dominik from Unique Date: Wed, 27 Sep 2023 00:01:12 +0200 Subject: [PATCH 291/336] Doc Fix: Update pim_eligible_role_assignment.html.markdown by removing `principal_type` as required argument.(#23389) --- website/docs/r/pim_eligible_role_assignment.html.markdown | 2 -- 1 file changed, 2 deletions(-) diff --git a/website/docs/r/pim_eligible_role_assignment.html.markdown b/website/docs/r/pim_eligible_role_assignment.html.markdown index 26bc8eef33bb..1974c717418c 100644 --- a/website/docs/r/pim_eligible_role_assignment.html.markdown +++ b/website/docs/r/pim_eligible_role_assignment.html.markdown @@ -86,8 +86,6 @@ The following arguments are supported: * `principal_id` - (Required) The principal id. Changing this forces a new Pim Eligible Role Assignment to be created. -* `principal_type` - (Required) The type of principal. Changing this forces a new Pim Eligible Role Assignment to be created. - * `role_definition_id` - (Required) The role definition id. Changing this forces a new Pim Eligible Role Assignment to be created. * `scope` - (Required) The scope. Changing this forces a new Pim Eligible Role Assignment to be created. From 9de2c5d7757732faace75904aea086b7449ea51e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Theis=20Ferr=C3=A9=20Hjortkj=C3=A6r?= Date: Wed, 27 Sep 2023 08:52:05 +0200 Subject: [PATCH 292/336] Mysql flexible server iops scaling (#23329) * add support for iops scaling * add validation to create function * add documentation for io_scaling_enabled * add test with io_scaling enabled * formatted test string * Changed iops to upper case for documentation * added test config with no iops * set deault of io_scaling_enabled to false * run terrafmt to format config strings * change default value to 'false' --- .../mysql_flexible_server_data_source.go | 11 ++-- .../mysql/mysql_flexible_server_resource.go | 27 ++++++++-- .../mysql_flexible_server_resource_test.go | 53 +++++++++++++++---- .../d/mysql_flexible_server.html.markdown | 2 + .../r/mysql_flexible_server.html.markdown | 2 + 5 files changed, 78 insertions(+), 17 deletions(-) diff --git a/internal/services/mysql/mysql_flexible_server_data_source.go b/internal/services/mysql/mysql_flexible_server_data_source.go index 871b84757e2d..2bbeb2e7eec1 100644 --- a/internal/services/mysql/mysql_flexible_server_data_source.go +++ b/internal/services/mysql/mysql_flexible_server_data_source.go @@ -139,6 +139,10 @@ func dataSourceMysqlFlexibleServer() *pluginsdk.Resource { Type: pluginsdk.TypeInt, Computed: true, }, + "io_scaling_enabled": { + Type: pluginsdk.TypeBool, + Computed: true, + }, }, }, }, @@ -252,9 +256,10 @@ func flattenDataSourceArmServerStorage(storage *servers.Storage) []interface{} { return []interface{}{ map[string]interface{}{ - "size_gb": size, - "iops": iops, - "auto_grow_enabled": *storage.AutoGrow == servers.EnableStatusEnumEnabled, + "size_gb": size, + "iops": iops, + "auto_grow_enabled": *storage.AutoGrow == servers.EnableStatusEnumEnabled, + "io_scaling_enabled": *storage.AutoIoScaling == servers.EnableStatusEnumEnabled, }, } } diff --git a/internal/services/mysql/mysql_flexible_server_resource.go b/internal/services/mysql/mysql_flexible_server_resource.go index 99464198f07a..a0c9af745980 100644 --- a/internal/services/mysql/mysql_flexible_server_resource.go +++ b/internal/services/mysql/mysql_flexible_server_resource.go @@ -267,6 +267,11 @@ func resourceMysqlFlexibleServer() *pluginsdk.Resource { Computed: true, ValidateFunc: validation.IntBetween(20, 16384), }, + "io_scaling_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, }, }, }, @@ -355,6 +360,13 @@ func resourceMysqlFlexibleServerCreate(d *pluginsdk.ResourceData, meta interface } } + storageSettings := expandArmServerStorage(d.Get("storage").([]interface{})) + if storageSettings != nil { + if storageSettings.Iops != nil && *storageSettings.AutoIoScaling == servers.EnableStatusEnumEnabled { + return fmt.Errorf("`iops` can not be set if `io_scaling_enabled` is set to true") + } + } + sku, err := expandFlexibleServerSku(d.Get("sku_name").(string)) if err != nil { return fmt.Errorf("expanding `sku_name` for %s: %+v", id, err) @@ -764,8 +776,14 @@ func expandArmServerStorage(inputs []interface{}) *servers.Storage { autoGrow = servers.EnableStatusEnumEnabled } + autoIoScaling := servers.EnableStatusEnumDisabled + if v := input["io_scaling_enabled"].(bool); v { + autoIoScaling = servers.EnableStatusEnumEnabled + } + storage := servers.Storage{ - AutoGrow: &autoGrow, + AutoGrow: &autoGrow, + AutoIoScaling: &autoIoScaling, } if v := input["size_gb"].(int); v != 0 { @@ -795,9 +813,10 @@ func flattenArmServerStorage(storage *servers.Storage) []interface{} { return []interface{}{ map[string]interface{}{ - "size_gb": size, - "iops": iops, - "auto_grow_enabled": *storage.AutoGrow == servers.EnableStatusEnumEnabled, + "size_gb": size, + "iops": iops, + "auto_grow_enabled": *storage.AutoGrow == servers.EnableStatusEnumEnabled, + "io_scaling_enabled": *storage.AutoIoScaling == servers.EnableStatusEnumEnabled, }, } } diff --git a/internal/services/mysql/mysql_flexible_server_resource_test.go b/internal/services/mysql/mysql_flexible_server_resource_test.go index a563427a9590..39b96a9ee3aa 100644 --- a/internal/services/mysql/mysql_flexible_server_resource_test.go +++ b/internal/services/mysql/mysql_flexible_server_resource_test.go @@ -361,14 +361,21 @@ func TestAccMySqlFlexibleServer_updateStorage(t *testing.T) { data.ResourceTest(t, r, []acceptance.TestStep{ { - Config: r.updateStorage(data, 20, 360, true), + Config: r.updateStorage(data, 20, 360, true, false), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), ), }, data.ImportStep("administrator_password"), { - Config: r.updateStorage(data, 34, 402, false), + Config: r.updateStorage(data, 34, 402, false, false), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("administrator_password"), + { + Config: r.updateStorageNoIOPS(data, 34, false, true), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), ), @@ -701,9 +708,10 @@ resource "azurerm_mysql_flexible_server" "test" { geo_redundant_backup_enabled = false storage { - size_gb = 32 - iops = 400 - auto_grow_enabled = false + size_gb = 32 + iops = 400 + auto_grow_enabled = false + io_scaling_enabled = false } delegated_subnet_id = azurerm_subnet.test.id @@ -970,7 +978,32 @@ resource "azurerm_mysql_flexible_server" "geo_restore" { `, r.geoRestoreSource(data), data.RandomInteger, os.Getenv("ARM_GEO_RESTORE_LOCATION")) } -func (r MySqlFlexibleServerResource) updateStorage(data acceptance.TestData, sizeGB int, iops int, enabled bool) string { +func (r MySqlFlexibleServerResource) updateStorage(data acceptance.TestData, sizeGB int, iops int, autoGrowEnabled bool, ioScalingEnabled bool) string { + return fmt.Sprintf(` +%s + +resource "azurerm_mysql_flexible_server" "test" { + name = "acctest-fs-%d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location + administrator_login = "adminTerraform" + administrator_password = "QAZwsx123" + sku_name = "GP_Standard_D4ds_v4" + geo_redundant_backup_enabled = true + version = "8.0.21" + zone = "1" + + storage { + size_gb = %d + iops = %d + auto_grow_enabled = %t + io_scaling_enabled = %t + } +} +`, r.template(data), data.RandomInteger, sizeGB, iops, autoGrowEnabled, ioScalingEnabled) +} + +func (r MySqlFlexibleServerResource) updateStorageNoIOPS(data acceptance.TestData, sizeGB int, autoGrowEnabled bool, ioScalingEnabled bool) string { return fmt.Sprintf(` %s @@ -986,12 +1019,12 @@ resource "azurerm_mysql_flexible_server" "test" { zone = "1" storage { - size_gb = %d - iops = %d - auto_grow_enabled = %t + size_gb = %d + auto_grow_enabled = %t + io_scaling_enabled = %t } } -`, r.template(data), data.RandomInteger, sizeGB, iops, enabled) +`, r.template(data), data.RandomInteger, sizeGB, autoGrowEnabled, ioScalingEnabled) } func (r MySqlFlexibleServerResource) failover(data acceptance.TestData, primaryZone string, standbyZone string) string { diff --git a/website/docs/d/mysql_flexible_server.html.markdown b/website/docs/d/mysql_flexible_server.html.markdown index 4290c328aa1f..1391b5c19df0 100644 --- a/website/docs/d/mysql_flexible_server.html.markdown +++ b/website/docs/d/mysql_flexible_server.html.markdown @@ -93,6 +93,8 @@ A `storage` block exports the following: * `auto_grow_enabled` - Is Storage Auto Grow enabled? +* `io_scaling_enabled` - Should IOPS be scaled automatically? + * `iops` - The storage IOPS of the MySQL Flexible Server. * `size_gb` - The max storage allowed for the MySQL Flexible Server. diff --git a/website/docs/r/mysql_flexible_server.html.markdown b/website/docs/r/mysql_flexible_server.html.markdown index 6d098f1c8a23..17365dcc6dcd 100644 --- a/website/docs/r/mysql_flexible_server.html.markdown +++ b/website/docs/r/mysql_flexible_server.html.markdown @@ -189,6 +189,8 @@ A `storage` block supports the following: * `auto_grow_enabled` - (Optional) Should Storage Auto Grow be enabled? Defaults to `true`. +* `io_scaling_enabled` - (Optional) Should IOPS be scaled automatically? If `true`, `iops` can not be set. Defaults to `false`. + * `iops` - (Optional) The storage IOPS for the MySQL Flexible Server. Possible values are between `360` and `20000`. * `size_gb` - (Optional) The max storage allowed for the MySQL Flexible Server. Possible values are between `20` and `16384`. From b2d11f04d79bfb6f7f936831ac7adf0540a3e19a Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Wed, 27 Sep 2023 16:37:49 +0800 Subject: [PATCH 293/336] update test (#23299) Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --- .../mobile_network_packet_core_control_plane_resource_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/services/mobilenetwork/mobile_network_packet_core_control_plane_resource_test.go b/internal/services/mobilenetwork/mobile_network_packet_core_control_plane_resource_test.go index 1204a819aa2c..e21d0dc00822 100644 --- a/internal/services/mobilenetwork/mobile_network_packet_core_control_plane_resource_test.go +++ b/internal/services/mobilenetwork/mobile_network_packet_core_control_plane_resource_test.go @@ -332,7 +332,7 @@ resource "azurerm_mobile_network_packet_core_control_plane" "test" { } interoperability_settings_json = jsonencode({ - "mtu" = 1440 + "unknownuser-causecode" = "eps-and-non-eps-service-not-allowed-8" }) depends_on = [azurerm_mobile_network.test] @@ -489,7 +489,7 @@ resource "azurerm_mobile_network_packet_core_control_plane" "test" { control_plane_access_ipv4_subnet = "192.168.1.0/25" interoperability_settings_json = jsonencode({ - "mtu" = 1440 + "unknownuser-causecode" = "eps-and-non-eps-service-not-allowed-8" }) local_diagnostics_access { From e1eab1aa939ee67615f5d68bf22a65e3117de56c Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Wed, 27 Sep 2023 22:28:40 +0800 Subject: [PATCH 294/336] New Resource: `azurerm_application_load_balancer` (#22517) --- .github/labeler-issue-triage.yml | 3 + .github/labeler-pull-request-triage.yml | 3 + .teamcity/components/generated/services.kt | 1 + .teamcity/components/settings.kt | 3 + internal/clients/client.go | 6 + internal/provider/services.go | 2 + .../application_load_balancer_resource.go | 196 ++++++++++++++++++ ...application_load_balancer_resource_test.go | 168 +++++++++++++++ .../servicenetworking/client/client.go | 23 ++ .../servicenetworking/registration.go | 35 ++++ .../associationsinterface/README.md | 103 +++++++++ .../associationsinterface/client.go | 26 +++ .../associationsinterface/constants.go | 104 ++++++++++ .../associationsinterface/id_association.go | 140 +++++++++++++ .../id_trafficcontroller.go | 127 ++++++++++++ .../method_createorupdate.go | 74 +++++++ .../associationsinterface/method_delete.go | 71 +++++++ .../associationsinterface/method_get.go | 51 +++++ .../method_listbytrafficcontroller.go | 89 ++++++++ .../associationsinterface/method_update.go | 55 +++++ .../model_association.go | 18 ++ .../model_associationproperties.go | 10 + .../model_associationsubnet.go | 8 + .../model_associationsubnetupdate.go | 8 + .../model_associationupdate.go | 9 + .../model_associationupdateproperties.go | 9 + .../associationsinterface/predicates.go | 32 +++ .../associationsinterface/version.go | 12 ++ .../2023-05-01-preview/client.go | 46 ++++ .../frontendsinterface/README.md | 103 +++++++++ .../frontendsinterface/client.go | 26 +++ .../frontendsinterface/constants.go | 66 ++++++ .../frontendsinterface/id_frontend.go | 140 +++++++++++++ .../id_trafficcontroller.go | 127 ++++++++++++ .../method_createorupdate.go | 74 +++++++ .../frontendsinterface/method_delete.go | 71 +++++++ .../frontendsinterface/method_get.go | 51 +++++ .../method_listbytrafficcontroller.go | 89 ++++++++ .../frontendsinterface/method_update.go | 55 +++++ .../frontendsinterface/model_frontend.go | 18 ++ .../model_frontendproperties.go | 9 + .../model_frontendupdate.go | 8 + .../frontendsinterface/predicates.go | 32 +++ .../frontendsinterface/version.go | 12 ++ .../trafficcontrollerinterface/README.md | 120 +++++++++++ .../trafficcontrollerinterface/client.go | 26 +++ .../trafficcontrollerinterface/constants.go | 66 ++++++ .../id_trafficcontroller.go | 127 ++++++++++++ .../method_createorupdate.go | 74 +++++++ .../method_delete.go | 71 +++++++ .../trafficcontrollerinterface/method_get.go | 51 +++++ .../method_listbyresourcegroup.go | 90 ++++++++ .../method_listbysubscription.go | 90 ++++++++ .../method_update.go | 55 +++++ .../model_resourceid.go | 8 + .../model_trafficcontroller.go | 18 ++ .../model_trafficcontrollerproperties.go | 11 + .../model_trafficcontrollerupdate.go | 8 + .../trafficcontrollerinterface/predicates.go | 32 +++ .../trafficcontrollerinterface/version.go | 12 ++ vendor/modules.txt | 4 + website/allowed-subcategories | 1 + .../r/application_load_balancer.html.markdown | 65 ++++++ 63 files changed, 3242 insertions(+) create mode 100644 internal/services/servicenetworking/application_load_balancer_resource.go create mode 100644 internal/services/servicenetworking/application_load_balancer_resource_test.go create mode 100644 internal/services/servicenetworking/client/client.go create mode 100644 internal/services/servicenetworking/registration.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/README.md create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/constants.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/id_association.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/id_trafficcontroller.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_createorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_delete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_get.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_listbytrafficcontroller.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_update.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_association.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationsubnet.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationsubnetupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationupdateproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/predicates.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/version.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/README.md create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/constants.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/id_frontend.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/id_trafficcontroller.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_createorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_delete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_get.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_listbytrafficcontroller.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_update.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/model_frontend.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/model_frontendproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/model_frontendupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/predicates.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/version.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/README.md create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/constants.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/id_trafficcontroller.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_createorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_delete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_get.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_listbyresourcegroup.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_listbysubscription.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_update.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_resourceid.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_trafficcontroller.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_trafficcontrollerproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_trafficcontrollerupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/predicates.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/version.go create mode 100644 website/docs/r/application_load_balancer.html.markdown diff --git a/.github/labeler-issue-triage.yml b/.github/labeler-issue-triage.yml index 8452395202a4..a44d3b316de4 100644 --- a/.github/labeler-issue-triage.yml +++ b/.github/labeler-issue-triage.yml @@ -309,6 +309,9 @@ service/service-fabric: service/service-fabric-managed-cluster: - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_service_fabric_managed_cluster((.|\n)*)###' +service/service-networking: + - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_application_load_balancer((.|\n)*)###' + service/signalr: - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_(signalr_s|web_pubsub)((.|\n)*)###' diff --git a/.github/labeler-pull-request-triage.yml b/.github/labeler-pull-request-triage.yml index 3785237072d8..31af6fda50f3 100644 --- a/.github/labeler-pull-request-triage.yml +++ b/.github/labeler-pull-request-triage.yml @@ -312,6 +312,9 @@ service/service-fabric: service/service-fabric-managed-cluster: - internal/services/servicefabricmanaged/**/* +service/service-networking: + - internal/services/servicenetworking/**/* + service/signalr: - internal/services/signalr/**/* diff --git a/.teamcity/components/generated/services.kt b/.teamcity/components/generated/services.kt index 00d9e83827a3..f567623fed9c 100644 --- a/.teamcity/components/generated/services.kt +++ b/.teamcity/components/generated/services.kt @@ -112,6 +112,7 @@ var services = mapOf( "sentinel" to "Sentinel", "servicefabric" to "Service Fabric", "servicefabricmanaged" to "Service Fabric Managed Clusters", + "servicenetworking" to "Service Networking", "servicebus" to "ServiceBus", "serviceconnector" to "ServiceConnector", "signalr" to "SignalR", diff --git a/.teamcity/components/settings.kt b/.teamcity/components/settings.kt index ceae71c13f27..ed4097965467 100644 --- a/.teamcity/components/settings.kt +++ b/.teamcity/components/settings.kt @@ -169,6 +169,9 @@ var serviceTestConfigurationOverrides = mapOf( // Synapse is only available in certain locations "synapse" to testConfiguration(locationOverride = LocationConfiguration("westeurope", "francecentral", "eastus2", false)), + // ServiceNetworking is available in certain locations + "servicenetworking" to testConfiguration(locationOverride = LocationConfiguration("eastus","westus","westeurope", false)), + // Currently, we have insufficient quota to actually run these, but there are a few nodes in West Europe, so we'll pin it there for now "vmware" to testConfiguration(parallelism = 3, locationOverride = LocationConfiguration("westeurope", "westus2", "eastus2", false)), diff --git a/internal/clients/client.go b/internal/clients/client.go index e7c500c475dd..bf88852736a2 100644 --- a/internal/clients/client.go +++ b/internal/clients/client.go @@ -18,6 +18,7 @@ import ( fluidrelay_2022_05_26 "github.com/hashicorp/go-azure-sdk/resource-manager/fluidrelay/2022-05-26" nginx2 "github.com/hashicorp/go-azure-sdk/resource-manager/nginx/2022-08-01" redis_v2023_04_01 "github.com/hashicorp/go-azure-sdk/resource-manager/redis/2023-04-01" + servicenetworking_v2023_05_01_preview "github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview" storagecache_2023_05_01 "github.com/hashicorp/go-azure-sdk/resource-manager/storagecache/2023-05-01" timeseriesinsights_v2020_05_15 "github.com/hashicorp/go-azure-sdk/resource-manager/timeseriesinsights/2020-05-15" "github.com/hashicorp/terraform-provider-azurerm/internal/common" @@ -130,6 +131,7 @@ import ( serviceConnector "github.com/hashicorp/terraform-provider-azurerm/internal/services/serviceconnector/client" serviceFabric "github.com/hashicorp/terraform-provider-azurerm/internal/services/servicefabric/client" serviceFabricManaged "github.com/hashicorp/terraform-provider-azurerm/internal/services/servicefabricmanaged/client" + serviceNetworking "github.com/hashicorp/terraform-provider-azurerm/internal/services/servicenetworking/client" signalr "github.com/hashicorp/terraform-provider-azurerm/internal/services/signalr/client" appPlatform "github.com/hashicorp/terraform-provider-azurerm/internal/services/springcloud/client" sql "github.com/hashicorp/terraform-provider-azurerm/internal/services/sql/client" @@ -263,6 +265,7 @@ type Client struct { ServiceConnector *serviceConnector.Client ServiceFabric *serviceFabric.Client ServiceFabricManaged *serviceFabricManaged.Client + ServiceNetworking *servicenetworking_v2023_05_01_preview.Client SignalR *signalr.Client Storage *storage.Client StorageMover *storageMover.Client @@ -574,6 +577,9 @@ func (client *Client) Build(ctx context.Context, o *common.ClientOptions) error client.ServiceConnector = serviceConnector.NewClient(o) client.ServiceFabric = serviceFabric.NewClient(o) client.ServiceFabricManaged = serviceFabricManaged.NewClient(o) + if client.ServiceNetworking, err = serviceNetworking.NewClient(o); err != nil { + return fmt.Errorf("building clients for ServiceNetworking: %+v", err) + } if client.SignalR, err = signalr.NewClient(o); err != nil { return fmt.Errorf("building clients for SignalR: %+v", err) } diff --git a/internal/provider/services.go b/internal/provider/services.go index 7f84046a203b..fedff05e4e4e 100644 --- a/internal/provider/services.go +++ b/internal/provider/services.go @@ -115,6 +115,7 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/internal/services/serviceconnector" "github.com/hashicorp/terraform-provider-azurerm/internal/services/servicefabric" "github.com/hashicorp/terraform-provider-azurerm/internal/services/servicefabricmanaged" + "github.com/hashicorp/terraform-provider-azurerm/internal/services/servicenetworking" "github.com/hashicorp/terraform-provider-azurerm/internal/services/signalr" "github.com/hashicorp/terraform-provider-azurerm/internal/services/springcloud" "github.com/hashicorp/terraform-provider-azurerm/internal/services/sql" @@ -192,6 +193,7 @@ func SupportedTypedServices() []sdk.TypedServiceRegistration { sentinel.Registration{}, serviceconnector.Registration{}, servicefabricmanaged.Registration{}, + servicenetworking.Registration{}, storage.Registration{}, storagemover.Registration{}, signalr.Registration{}, diff --git a/internal/services/servicenetworking/application_load_balancer_resource.go b/internal/services/servicenetworking/application_load_balancer_resource.go new file mode 100644 index 000000000000..f90aec3770ab --- /dev/null +++ b/internal/services/servicenetworking/application_load_balancer_resource.go @@ -0,0 +1,196 @@ +package servicenetworking + +import ( + "context" + "fmt" + "regexp" + "time" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tags" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" +) + +type ApplicationLoadBalancerResource struct{} + +type ApplicationLoadBalancerModel struct { + Name string `tfschema:"name"` + ResourceGroupName string `tfschema:"resource_group_name"` + Location string `tfschema:"location"` + PrimaryConfigurationEndpoints string `tfschema:"primary_configuration_endpoint"` + Tags map[string]string `tfschema:"tags"` +} + +var _ sdk.ResourceWithUpdate = ApplicationLoadBalancerResource{} + +func (t ApplicationLoadBalancerResource) Arguments() map[string]*schema.Schema { + return map[string]*schema.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.StringMatch(regexp.MustCompile(`^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,62}[a-zA-Z0-9]$`), "the name must begin with a letter or number, end with a letter, number or underscore, and may contain only letters, numbers, underscores, periods, or hyphens. The value must be 1-64 characters long."), + }, + + "resource_group_name": commonschema.ResourceGroupName(), + + "location": commonschema.Location(), + + "tags": tags.Schema(), + } +} + +func (t ApplicationLoadBalancerResource) Attributes() map[string]*schema.Schema { + return map[string]*schema.Schema{ + "primary_configuration_endpoint": { + Type: pluginsdk.TypeString, + Computed: true, + }, + } +} + +func (t ApplicationLoadBalancerResource) ModelObject() interface{} { + return &ApplicationLoadBalancerModel{} +} + +func (t ApplicationLoadBalancerResource) ResourceType() string { + return "azurerm_application_load_balancer" +} + +func (t ApplicationLoadBalancerResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return trafficcontrollerinterface.ValidateTrafficControllerID +} + +func (t ApplicationLoadBalancerResource) Create() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.ServiceNetworking.TrafficControllerInterface + subscriptionId := metadata.Client.Account.SubscriptionId + + var config ApplicationLoadBalancerModel + if err := metadata.Decode(&config); err != nil { + return fmt.Errorf("decoding %v", err) + } + + id := trafficcontrollerinterface.NewTrafficControllerID(subscriptionId, config.ResourceGroupName, config.Name) + existing, err := client.Get(ctx, id) + if err != nil { + if !response.WasNotFound(existing.HttpResponse) { + return fmt.Errorf("checking for presence of existing %s: %+v", id, err) + } + } + + if !response.WasNotFound(existing.HttpResponse) { + return metadata.ResourceRequiresImport(t.ResourceType(), id) + } + + payload := trafficcontrollerinterface.TrafficController{ + Location: location.Normalize(config.Location), + Tags: pointer.To(config.Tags), + } + + if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + + metadata.SetID(id) + return nil + }, + } +} + +func (t ApplicationLoadBalancerResource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 5 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.ServiceNetworking.TrafficControllerInterface + + id, err := trafficcontrollerinterface.ParseTrafficControllerID(metadata.ResourceData.Id()) + if err != nil { + return fmt.Errorf("parsing %s: %+v", metadata.ResourceData.Id(), err) + } + + resp, err := client.Get(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return metadata.MarkAsGone(id) + } + return fmt.Errorf("retrieving %s: %+v", metadata.ResourceData.Id(), err) + } + + state := ApplicationLoadBalancerModel{ + Name: id.TrafficControllerName, + ResourceGroupName: id.ResourceGroupName, + } + + if model := resp.Model; model != nil { + state.Location = model.Location + state.Tags = pointer.From(model.Tags) + + if prop := model.Properties; prop != nil { + if endpoint := prop.ConfigurationEndpoints; endpoint != nil && len(*endpoint) > 0 { + state.PrimaryConfigurationEndpoints = (*endpoint)[0] + } + } + } + + return metadata.Encode(&state) + }, + } +} + +func (t ApplicationLoadBalancerResource) Update() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.ServiceNetworking.TrafficControllerInterface + + id, err := trafficcontrollerinterface.ParseTrafficControllerID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + var config ApplicationLoadBalancerModel + if err := metadata.Decode(&config); err != nil { + return fmt.Errorf("decoding %v", err) + } + + payload := trafficcontrollerinterface.TrafficControllerUpdate{ + Tags: pointer.To(config.Tags), + } + + if _, err := client.Update(ctx, *id, payload); err != nil { + return fmt.Errorf("updating %s: %+v", id, err) + } + + return nil + }, + } +} + +func (t ApplicationLoadBalancerResource) Delete() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.ServiceNetworking.TrafficControllerInterface + + id, err := trafficcontrollerinterface.ParseTrafficControllerID(metadata.ResourceData.Id()) + if err != nil { + return err + } + if err := client.DeleteThenPoll(ctx, *id); err != nil { + return fmt.Errorf("deleting %s: %+v", *id, err) + } + + return nil + }, + } +} diff --git a/internal/services/servicenetworking/application_load_balancer_resource_test.go b/internal/services/servicenetworking/application_load_balancer_resource_test.go new file mode 100644 index 000000000000..3391fb835035 --- /dev/null +++ b/internal/services/servicenetworking/application_load_balancer_resource_test.go @@ -0,0 +1,168 @@ +package servicenetworking_test + +import ( + "context" + "fmt" + "testing" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" +) + +type ApplicationLoadBalancerResource struct{} + +func (r ApplicationLoadBalancerResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { + id, err := trafficcontrollerinterface.ParseTrafficControllerID(state.ID) + if err != nil { + return nil, err + } + + resp, err := clients.ServiceNetworking.TrafficControllerInterface.Get(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return pointer.To(false), nil + } + return nil, fmt.Errorf("checking for presence of existing %s: %+v", id, err) + } + return pointer.To(resp.Model != nil), nil +} + +func TestAccApplicationLoadBalancer_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_application_load_balancer", "test") + + r := ApplicationLoadBalancerResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("configuration_endpoint.#").HasValue("1"), + ), + }, + data.ImportStep(), + }) +} + +func TestAccApplicationLoadBalancer_complete(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_application_load_balancer", "test") + + r := ApplicationLoadBalancerResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.complete(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("primary_configuration_endpoint").HasValue("1"), + ), + }, + data.ImportStep(), + }) +} + +func TestAccApplicationLoadBalancer_update(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_application_load_balancer", "test") + + r := ApplicationLoadBalancerResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("configuration_endpoint.#").HasValue("1"), + ), + }, + data.ImportStep(), + { + Config: r.complete(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("configuration_endpoint.#").HasValue("1"), + ), + }, + data.ImportStep(), + }) +} + +func TestAccApplicationLoadBalancer_requiresImport(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_application_load_balancer", "test") + + r := ApplicationLoadBalancerResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("configuration_endpoint.#").HasValue("1"), + ), + }, + data.RequiresImportErrorStep(r.requiresImport), + }) +} + +func (r ApplicationLoadBalancerResource) template(data acceptance.TestData) string { + return fmt.Sprintf(` +resource "azurerm_resource_group" "test" { + name = "acctestrg-alb-%d" + location = "%s" +} +`, data.RandomInteger, data.Locations.Primary) +} + +func (r ApplicationLoadBalancerResource) basic(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features { + } +} + + %s + +resource "azurerm_application_load_balancer" "test" { + name = "acctestalb-%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name +} +`, r.template(data), data.RandomInteger) +} + +func (r ApplicationLoadBalancerResource) complete(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features { + } +} + + %s + +resource "azurerm_application_load_balancer" "test" { + name = "acctestalb-%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + tags = { + key = "value" + } +} +`, r.template(data), data.RandomInteger) +} + +func (r ApplicationLoadBalancerResource) requiresImport(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features { + } +} + + %s + +resource "azurerm_application_load_balancer" "import" { + name = azurerm_application_load_balancer.test.name + location = azurerm_application_load_balancer.test.location + resource_group_name = azurerm_application_load_balancer.test.resource_group_name +} +`, r.basic(data)) +} diff --git a/internal/services/servicenetworking/client/client.go b/internal/services/servicenetworking/client/client.go new file mode 100644 index 000000000000..3c13091c1c76 --- /dev/null +++ b/internal/services/servicenetworking/client/client.go @@ -0,0 +1,23 @@ +package client + +import ( + "fmt" + + servicenetworking_v2023_05_01_preview "github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/terraform-provider-azurerm/internal/common" +) + +type Client struct { + ServiceNetworkingClient *servicenetworking_v2023_05_01_preview.Client +} + +func NewClient(o *common.ClientOptions) (*servicenetworking_v2023_05_01_preview.Client, error) { + client, err := servicenetworking_v2023_05_01_preview.NewClientWithBaseURI(o.Environment.ResourceManager, func(c *resourcemanager.Client) { + o.Configure(c, o.Authorizers.ResourceManager) + }) + if err != nil { + return nil, fmt.Errorf("building ServiceNetworking client: %+v", err) + } + return client, nil +} diff --git a/internal/services/servicenetworking/registration.go b/internal/services/servicenetworking/registration.go new file mode 100644 index 000000000000..4af6218b5f07 --- /dev/null +++ b/internal/services/servicenetworking/registration.go @@ -0,0 +1,35 @@ +package servicenetworking + +import ( + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" +) + +type Registration struct{} + +var _ sdk.TypedServiceRegistration = Registration{} + +func (r Registration) AssociatedGitHubLabel() string { + return "service/service-networking" +} + +func (r Registration) DataSources() []sdk.DataSource { + return []sdk.DataSource{} +} + +func (r Registration) Resources() []sdk.Resource { + return []sdk.Resource{ + ApplicationLoadBalancerResource{}, + } +} + +// Name is the name of this Service +func (r Registration) Name() string { + return "Service Networking" +} + +// WebsiteCategories returns a list of categories which can be used for the sidebar +func (r Registration) WebsiteCategories() []string { + return []string{ + "Service Networking", + } +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/README.md new file mode 100644 index 000000000000..77929bc8ba1a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/README.md @@ -0,0 +1,103 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface` Documentation + +The `associationsinterface` SDK allows for interaction with the Azure Resource Manager Service `servicenetworking` (API Version `2023-05-01-preview`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface" +``` + + +### Client Initialization + +```go +client := associationsinterface.NewAssociationsInterfaceClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `AssociationsInterfaceClient.CreateOrUpdate` + +```go +ctx := context.TODO() +id := associationsinterface.NewAssociationID("12345678-1234-9876-4563-123456789012", "example-resource-group", "trafficControllerValue", "associationValue") + +payload := associationsinterface.Association{ + // ... +} + + +if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AssociationsInterfaceClient.Delete` + +```go +ctx := context.TODO() +id := associationsinterface.NewAssociationID("12345678-1234-9876-4563-123456789012", "example-resource-group", "trafficControllerValue", "associationValue") + +if err := client.DeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AssociationsInterfaceClient.Get` + +```go +ctx := context.TODO() +id := associationsinterface.NewAssociationID("12345678-1234-9876-4563-123456789012", "example-resource-group", "trafficControllerValue", "associationValue") + +read, err := client.Get(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AssociationsInterfaceClient.ListByTrafficController` + +```go +ctx := context.TODO() +id := associationsinterface.NewTrafficControllerID("12345678-1234-9876-4563-123456789012", "example-resource-group", "trafficControllerValue") + +// alternatively `client.ListByTrafficController(ctx, id)` can be used to do batched pagination +items, err := client.ListByTrafficControllerComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AssociationsInterfaceClient.Update` + +```go +ctx := context.TODO() +id := associationsinterface.NewAssociationID("12345678-1234-9876-4563-123456789012", "example-resource-group", "trafficControllerValue", "associationValue") + +payload := associationsinterface.AssociationUpdate{ + // ... +} + + +read, err := client.Update(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/client.go new file mode 100644 index 000000000000..3a72a2144732 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/client.go @@ -0,0 +1,26 @@ +package associationsinterface + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssociationsInterfaceClient struct { + Client *resourcemanager.Client +} + +func NewAssociationsInterfaceClientWithBaseURI(sdkApi sdkEnv.Api) (*AssociationsInterfaceClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "associationsinterface", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating AssociationsInterfaceClient: %+v", err) + } + + return &AssociationsInterfaceClient{ + Client: client, + }, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/constants.go new file mode 100644 index 000000000000..b11441f4b9ad --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/constants.go @@ -0,0 +1,104 @@ +package associationsinterface + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssociationType string + +const ( + AssociationTypeSubnets AssociationType = "subnets" +) + +func PossibleValuesForAssociationType() []string { + return []string{ + string(AssociationTypeSubnets), + } +} + +func (s *AssociationType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseAssociationType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseAssociationType(input string) (*AssociationType, error) { + vals := map[string]AssociationType{ + "subnets": AssociationTypeSubnets, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := AssociationType(input) + return &out, nil +} + +type ProvisioningState string + +const ( + ProvisioningStateAccepted ProvisioningState = "Accepted" + ProvisioningStateCanceled ProvisioningState = "Canceled" + ProvisioningStateDeleting ProvisioningState = "Deleting" + ProvisioningStateFailed ProvisioningState = "Failed" + ProvisioningStateProvisioning ProvisioningState = "Provisioning" + ProvisioningStateSucceeded ProvisioningState = "Succeeded" + ProvisioningStateUpdating ProvisioningState = "Updating" +) + +func PossibleValuesForProvisioningState() []string { + return []string{ + string(ProvisioningStateAccepted), + string(ProvisioningStateCanceled), + string(ProvisioningStateDeleting), + string(ProvisioningStateFailed), + string(ProvisioningStateProvisioning), + string(ProvisioningStateSucceeded), + string(ProvisioningStateUpdating), + } +} + +func (s *ProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseProvisioningState(input string) (*ProvisioningState, error) { + vals := map[string]ProvisioningState{ + "accepted": ProvisioningStateAccepted, + "canceled": ProvisioningStateCanceled, + "deleting": ProvisioningStateDeleting, + "failed": ProvisioningStateFailed, + "provisioning": ProvisioningStateProvisioning, + "succeeded": ProvisioningStateSucceeded, + "updating": ProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ProvisioningState(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/id_association.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/id_association.go new file mode 100644 index 000000000000..4d1f84f46dda --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/id_association.go @@ -0,0 +1,140 @@ +package associationsinterface + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = AssociationId{} + +// AssociationId is a struct representing the Resource ID for a Association +type AssociationId struct { + SubscriptionId string + ResourceGroupName string + TrafficControllerName string + AssociationName string +} + +// NewAssociationID returns a new AssociationId struct +func NewAssociationID(subscriptionId string, resourceGroupName string, trafficControllerName string, associationName string) AssociationId { + return AssociationId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + TrafficControllerName: trafficControllerName, + AssociationName: associationName, + } +} + +// ParseAssociationID parses 'input' into a AssociationId +func ParseAssociationID(input string) (*AssociationId, error) { + parser := resourceids.NewParserFromResourceIdType(AssociationId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := AssociationId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.TrafficControllerName, ok = parsed.Parsed["trafficControllerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "trafficControllerName", *parsed) + } + + if id.AssociationName, ok = parsed.Parsed["associationName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "associationName", *parsed) + } + + return &id, nil +} + +// ParseAssociationIDInsensitively parses 'input' case-insensitively into a AssociationId +// note: this method should only be used for API response data and not user input +func ParseAssociationIDInsensitively(input string) (*AssociationId, error) { + parser := resourceids.NewParserFromResourceIdType(AssociationId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := AssociationId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.TrafficControllerName, ok = parsed.Parsed["trafficControllerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "trafficControllerName", *parsed) + } + + if id.AssociationName, ok = parsed.Parsed["associationName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "associationName", *parsed) + } + + return &id, nil +} + +// ValidateAssociationID checks that 'input' can be parsed as a Association ID +func ValidateAssociationID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseAssociationID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Association ID +func (id AssociationId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.ServiceNetworking/trafficControllers/%s/associations/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.TrafficControllerName, id.AssociationName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Association ID +func (id AssociationId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftServiceNetworking", "Microsoft.ServiceNetworking", "Microsoft.ServiceNetworking"), + resourceids.StaticSegment("staticTrafficControllers", "trafficControllers", "trafficControllers"), + resourceids.UserSpecifiedSegment("trafficControllerName", "trafficControllerValue"), + resourceids.StaticSegment("staticAssociations", "associations", "associations"), + resourceids.UserSpecifiedSegment("associationName", "associationValue"), + } +} + +// String returns a human-readable description of this Association ID +func (id AssociationId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Traffic Controller Name: %q", id.TrafficControllerName), + fmt.Sprintf("Association Name: %q", id.AssociationName), + } + return fmt.Sprintf("Association (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/id_trafficcontroller.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/id_trafficcontroller.go new file mode 100644 index 000000000000..11c2580cb1ad --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/id_trafficcontroller.go @@ -0,0 +1,127 @@ +package associationsinterface + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = TrafficControllerId{} + +// TrafficControllerId is a struct representing the Resource ID for a Traffic Controller +type TrafficControllerId struct { + SubscriptionId string + ResourceGroupName string + TrafficControllerName string +} + +// NewTrafficControllerID returns a new TrafficControllerId struct +func NewTrafficControllerID(subscriptionId string, resourceGroupName string, trafficControllerName string) TrafficControllerId { + return TrafficControllerId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + TrafficControllerName: trafficControllerName, + } +} + +// ParseTrafficControllerID parses 'input' into a TrafficControllerId +func ParseTrafficControllerID(input string) (*TrafficControllerId, error) { + parser := resourceids.NewParserFromResourceIdType(TrafficControllerId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := TrafficControllerId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.TrafficControllerName, ok = parsed.Parsed["trafficControllerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "trafficControllerName", *parsed) + } + + return &id, nil +} + +// ParseTrafficControllerIDInsensitively parses 'input' case-insensitively into a TrafficControllerId +// note: this method should only be used for API response data and not user input +func ParseTrafficControllerIDInsensitively(input string) (*TrafficControllerId, error) { + parser := resourceids.NewParserFromResourceIdType(TrafficControllerId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := TrafficControllerId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.TrafficControllerName, ok = parsed.Parsed["trafficControllerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "trafficControllerName", *parsed) + } + + return &id, nil +} + +// ValidateTrafficControllerID checks that 'input' can be parsed as a Traffic Controller ID +func ValidateTrafficControllerID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseTrafficControllerID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Traffic Controller ID +func (id TrafficControllerId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.ServiceNetworking/trafficControllers/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.TrafficControllerName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Traffic Controller ID +func (id TrafficControllerId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftServiceNetworking", "Microsoft.ServiceNetworking", "Microsoft.ServiceNetworking"), + resourceids.StaticSegment("staticTrafficControllers", "trafficControllers", "trafficControllers"), + resourceids.UserSpecifiedSegment("trafficControllerName", "trafficControllerValue"), + } +} + +// String returns a human-readable description of this Traffic Controller ID +func (id TrafficControllerId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Traffic Controller Name: %q", id.TrafficControllerName), + } + return fmt.Sprintf("Traffic Controller (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_createorupdate.go new file mode 100644 index 000000000000..4cbf029c5daf --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_createorupdate.go @@ -0,0 +1,74 @@ +package associationsinterface + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CreateOrUpdate ... +func (c AssociationsInterfaceClient) CreateOrUpdate(ctx context.Context, id AssociationId, input Association) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c AssociationsInterfaceClient) CreateOrUpdateThenPoll(ctx context.Context, id AssociationId, input Association) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_delete.go new file mode 100644 index 000000000000..bb567ad5f677 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_delete.go @@ -0,0 +1,71 @@ +package associationsinterface + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c AssociationsInterfaceClient) Delete(ctx context.Context, id AssociationId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c AssociationsInterfaceClient) DeleteThenPoll(ctx context.Context, id AssociationId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_get.go new file mode 100644 index 000000000000..00fba0e60a86 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_get.go @@ -0,0 +1,51 @@ +package associationsinterface + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Association +} + +// Get ... +func (c AssociationsInterfaceClient) Get(ctx context.Context, id AssociationId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_listbytrafficcontroller.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_listbytrafficcontroller.go new file mode 100644 index 000000000000..9e40f926a0c6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_listbytrafficcontroller.go @@ -0,0 +1,89 @@ +package associationsinterface + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByTrafficControllerOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]Association +} + +type ListByTrafficControllerCompleteResult struct { + Items []Association +} + +// ListByTrafficController ... +func (c AssociationsInterfaceClient) ListByTrafficController(ctx context.Context, id TrafficControllerId) (result ListByTrafficControllerOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/associations", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]Association `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListByTrafficControllerComplete retrieves all the results into a single object +func (c AssociationsInterfaceClient) ListByTrafficControllerComplete(ctx context.Context, id TrafficControllerId) (ListByTrafficControllerCompleteResult, error) { + return c.ListByTrafficControllerCompleteMatchingPredicate(ctx, id, AssociationOperationPredicate{}) +} + +// ListByTrafficControllerCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AssociationsInterfaceClient) ListByTrafficControllerCompleteMatchingPredicate(ctx context.Context, id TrafficControllerId, predicate AssociationOperationPredicate) (result ListByTrafficControllerCompleteResult, err error) { + items := make([]Association, 0) + + resp, err := c.ListByTrafficController(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListByTrafficControllerCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_update.go new file mode 100644 index 000000000000..aafec03f005d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/method_update.go @@ -0,0 +1,55 @@ +package associationsinterface + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Association +} + +// Update ... +func (c AssociationsInterfaceClient) Update(ctx context.Context, id AssociationId, input AssociationUpdate) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_association.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_association.go new file mode 100644 index 000000000000..51e5fc503bea --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_association.go @@ -0,0 +1,18 @@ +package associationsinterface + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Association struct { + Id *string `json:"id,omitempty"` + Location string `json:"location"` + Name *string `json:"name,omitempty"` + Properties *AssociationProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Tags *map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationproperties.go new file mode 100644 index 000000000000..cb4915b65919 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationproperties.go @@ -0,0 +1,10 @@ +package associationsinterface + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssociationProperties struct { + AssociationType AssociationType `json:"associationType"` + ProvisioningState *ProvisioningState `json:"provisioningState,omitempty"` + Subnet *AssociationSubnet `json:"subnet,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationsubnet.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationsubnet.go new file mode 100644 index 000000000000..0ca18bb5ea3a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationsubnet.go @@ -0,0 +1,8 @@ +package associationsinterface + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssociationSubnet struct { + Id string `json:"id"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationsubnetupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationsubnetupdate.go new file mode 100644 index 000000000000..c24d87e1a7bb --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationsubnetupdate.go @@ -0,0 +1,8 @@ +package associationsinterface + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssociationSubnetUpdate struct { + Id *string `json:"id,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationupdate.go new file mode 100644 index 000000000000..86f5d0c0bb2d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationupdate.go @@ -0,0 +1,9 @@ +package associationsinterface + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssociationUpdate struct { + Properties *AssociationUpdateProperties `json:"properties,omitempty"` + Tags *map[string]string `json:"tags,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationupdateproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationupdateproperties.go new file mode 100644 index 000000000000..84beffe2c447 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/model_associationupdateproperties.go @@ -0,0 +1,9 @@ +package associationsinterface + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssociationUpdateProperties struct { + AssociationType *AssociationType `json:"associationType,omitempty"` + Subnet *AssociationSubnetUpdate `json:"subnet,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/predicates.go new file mode 100644 index 000000000000..52d867402123 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/predicates.go @@ -0,0 +1,32 @@ +package associationsinterface + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AssociationOperationPredicate struct { + Id *string + Location *string + Name *string + Type *string +} + +func (p AssociationOperationPredicate) Matches(input Association) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Location != nil && *p.Location != input.Location { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/version.go new file mode 100644 index 000000000000..5c44c4d24ac5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface/version.go @@ -0,0 +1,12 @@ +package associationsinterface + +import "fmt" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +const defaultApiVersion = "2023-05-01-preview" + +func userAgent() string { + return fmt.Sprintf("hashicorp/go-azure-sdk/associationsinterface/%s", defaultApiVersion) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/client.go new file mode 100644 index 000000000000..a73f03460a40 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/client.go @@ -0,0 +1,46 @@ +package v2023_05_01_preview + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface" + "github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface" + "github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) + +type Client struct { + AssociationsInterface *associationsinterface.AssociationsInterfaceClient + FrontendsInterface *frontendsinterface.FrontendsInterfaceClient + TrafficControllerInterface *trafficcontrollerinterface.TrafficControllerInterfaceClient +} + +func NewClientWithBaseURI(sdkApi sdkEnv.Api, configureFunc func(c *resourcemanager.Client)) (*Client, error) { + associationsInterfaceClient, err := associationsinterface.NewAssociationsInterfaceClientWithBaseURI(sdkApi) + if err != nil { + return nil, fmt.Errorf("building AssociationsInterface client: %+v", err) + } + configureFunc(associationsInterfaceClient.Client) + + frontendsInterfaceClient, err := frontendsinterface.NewFrontendsInterfaceClientWithBaseURI(sdkApi) + if err != nil { + return nil, fmt.Errorf("building FrontendsInterface client: %+v", err) + } + configureFunc(frontendsInterfaceClient.Client) + + trafficControllerInterfaceClient, err := trafficcontrollerinterface.NewTrafficControllerInterfaceClientWithBaseURI(sdkApi) + if err != nil { + return nil, fmt.Errorf("building TrafficControllerInterface client: %+v", err) + } + configureFunc(trafficControllerInterfaceClient.Client) + + return &Client{ + AssociationsInterface: associationsInterfaceClient, + FrontendsInterface: frontendsInterfaceClient, + TrafficControllerInterface: trafficControllerInterfaceClient, + }, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/README.md new file mode 100644 index 000000000000..6ccd3f6a323e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/README.md @@ -0,0 +1,103 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface` Documentation + +The `frontendsinterface` SDK allows for interaction with the Azure Resource Manager Service `servicenetworking` (API Version `2023-05-01-preview`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface" +``` + + +### Client Initialization + +```go +client := frontendsinterface.NewFrontendsInterfaceClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `FrontendsInterfaceClient.CreateOrUpdate` + +```go +ctx := context.TODO() +id := frontendsinterface.NewFrontendID("12345678-1234-9876-4563-123456789012", "example-resource-group", "trafficControllerValue", "frontendValue") + +payload := frontendsinterface.Frontend{ + // ... +} + + +if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `FrontendsInterfaceClient.Delete` + +```go +ctx := context.TODO() +id := frontendsinterface.NewFrontendID("12345678-1234-9876-4563-123456789012", "example-resource-group", "trafficControllerValue", "frontendValue") + +if err := client.DeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `FrontendsInterfaceClient.Get` + +```go +ctx := context.TODO() +id := frontendsinterface.NewFrontendID("12345678-1234-9876-4563-123456789012", "example-resource-group", "trafficControllerValue", "frontendValue") + +read, err := client.Get(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `FrontendsInterfaceClient.ListByTrafficController` + +```go +ctx := context.TODO() +id := frontendsinterface.NewTrafficControllerID("12345678-1234-9876-4563-123456789012", "example-resource-group", "trafficControllerValue") + +// alternatively `client.ListByTrafficController(ctx, id)` can be used to do batched pagination +items, err := client.ListByTrafficControllerComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `FrontendsInterfaceClient.Update` + +```go +ctx := context.TODO() +id := frontendsinterface.NewFrontendID("12345678-1234-9876-4563-123456789012", "example-resource-group", "trafficControllerValue", "frontendValue") + +payload := frontendsinterface.FrontendUpdate{ + // ... +} + + +read, err := client.Update(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/client.go new file mode 100644 index 000000000000..ced20e82fea8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/client.go @@ -0,0 +1,26 @@ +package frontendsinterface + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type FrontendsInterfaceClient struct { + Client *resourcemanager.Client +} + +func NewFrontendsInterfaceClientWithBaseURI(sdkApi sdkEnv.Api) (*FrontendsInterfaceClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "frontendsinterface", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating FrontendsInterfaceClient: %+v", err) + } + + return &FrontendsInterfaceClient{ + Client: client, + }, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/constants.go new file mode 100644 index 000000000000..ce65291eaa39 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/constants.go @@ -0,0 +1,66 @@ +package frontendsinterface + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ProvisioningState string + +const ( + ProvisioningStateAccepted ProvisioningState = "Accepted" + ProvisioningStateCanceled ProvisioningState = "Canceled" + ProvisioningStateDeleting ProvisioningState = "Deleting" + ProvisioningStateFailed ProvisioningState = "Failed" + ProvisioningStateProvisioning ProvisioningState = "Provisioning" + ProvisioningStateSucceeded ProvisioningState = "Succeeded" + ProvisioningStateUpdating ProvisioningState = "Updating" +) + +func PossibleValuesForProvisioningState() []string { + return []string{ + string(ProvisioningStateAccepted), + string(ProvisioningStateCanceled), + string(ProvisioningStateDeleting), + string(ProvisioningStateFailed), + string(ProvisioningStateProvisioning), + string(ProvisioningStateSucceeded), + string(ProvisioningStateUpdating), + } +} + +func (s *ProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseProvisioningState(input string) (*ProvisioningState, error) { + vals := map[string]ProvisioningState{ + "accepted": ProvisioningStateAccepted, + "canceled": ProvisioningStateCanceled, + "deleting": ProvisioningStateDeleting, + "failed": ProvisioningStateFailed, + "provisioning": ProvisioningStateProvisioning, + "succeeded": ProvisioningStateSucceeded, + "updating": ProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ProvisioningState(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/id_frontend.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/id_frontend.go new file mode 100644 index 000000000000..b7e579d0a72a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/id_frontend.go @@ -0,0 +1,140 @@ +package frontendsinterface + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = FrontendId{} + +// FrontendId is a struct representing the Resource ID for a Frontend +type FrontendId struct { + SubscriptionId string + ResourceGroupName string + TrafficControllerName string + FrontendName string +} + +// NewFrontendID returns a new FrontendId struct +func NewFrontendID(subscriptionId string, resourceGroupName string, trafficControllerName string, frontendName string) FrontendId { + return FrontendId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + TrafficControllerName: trafficControllerName, + FrontendName: frontendName, + } +} + +// ParseFrontendID parses 'input' into a FrontendId +func ParseFrontendID(input string) (*FrontendId, error) { + parser := resourceids.NewParserFromResourceIdType(FrontendId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := FrontendId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.TrafficControllerName, ok = parsed.Parsed["trafficControllerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "trafficControllerName", *parsed) + } + + if id.FrontendName, ok = parsed.Parsed["frontendName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "frontendName", *parsed) + } + + return &id, nil +} + +// ParseFrontendIDInsensitively parses 'input' case-insensitively into a FrontendId +// note: this method should only be used for API response data and not user input +func ParseFrontendIDInsensitively(input string) (*FrontendId, error) { + parser := resourceids.NewParserFromResourceIdType(FrontendId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := FrontendId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.TrafficControllerName, ok = parsed.Parsed["trafficControllerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "trafficControllerName", *parsed) + } + + if id.FrontendName, ok = parsed.Parsed["frontendName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "frontendName", *parsed) + } + + return &id, nil +} + +// ValidateFrontendID checks that 'input' can be parsed as a Frontend ID +func ValidateFrontendID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseFrontendID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Frontend ID +func (id FrontendId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.ServiceNetworking/trafficControllers/%s/frontends/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.TrafficControllerName, id.FrontendName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Frontend ID +func (id FrontendId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftServiceNetworking", "Microsoft.ServiceNetworking", "Microsoft.ServiceNetworking"), + resourceids.StaticSegment("staticTrafficControllers", "trafficControllers", "trafficControllers"), + resourceids.UserSpecifiedSegment("trafficControllerName", "trafficControllerValue"), + resourceids.StaticSegment("staticFrontends", "frontends", "frontends"), + resourceids.UserSpecifiedSegment("frontendName", "frontendValue"), + } +} + +// String returns a human-readable description of this Frontend ID +func (id FrontendId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Traffic Controller Name: %q", id.TrafficControllerName), + fmt.Sprintf("Frontend Name: %q", id.FrontendName), + } + return fmt.Sprintf("Frontend (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/id_trafficcontroller.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/id_trafficcontroller.go new file mode 100644 index 000000000000..8b8821e6174d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/id_trafficcontroller.go @@ -0,0 +1,127 @@ +package frontendsinterface + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = TrafficControllerId{} + +// TrafficControllerId is a struct representing the Resource ID for a Traffic Controller +type TrafficControllerId struct { + SubscriptionId string + ResourceGroupName string + TrafficControllerName string +} + +// NewTrafficControllerID returns a new TrafficControllerId struct +func NewTrafficControllerID(subscriptionId string, resourceGroupName string, trafficControllerName string) TrafficControllerId { + return TrafficControllerId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + TrafficControllerName: trafficControllerName, + } +} + +// ParseTrafficControllerID parses 'input' into a TrafficControllerId +func ParseTrafficControllerID(input string) (*TrafficControllerId, error) { + parser := resourceids.NewParserFromResourceIdType(TrafficControllerId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := TrafficControllerId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.TrafficControllerName, ok = parsed.Parsed["trafficControllerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "trafficControllerName", *parsed) + } + + return &id, nil +} + +// ParseTrafficControllerIDInsensitively parses 'input' case-insensitively into a TrafficControllerId +// note: this method should only be used for API response data and not user input +func ParseTrafficControllerIDInsensitively(input string) (*TrafficControllerId, error) { + parser := resourceids.NewParserFromResourceIdType(TrafficControllerId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := TrafficControllerId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.TrafficControllerName, ok = parsed.Parsed["trafficControllerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "trafficControllerName", *parsed) + } + + return &id, nil +} + +// ValidateTrafficControllerID checks that 'input' can be parsed as a Traffic Controller ID +func ValidateTrafficControllerID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseTrafficControllerID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Traffic Controller ID +func (id TrafficControllerId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.ServiceNetworking/trafficControllers/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.TrafficControllerName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Traffic Controller ID +func (id TrafficControllerId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftServiceNetworking", "Microsoft.ServiceNetworking", "Microsoft.ServiceNetworking"), + resourceids.StaticSegment("staticTrafficControllers", "trafficControllers", "trafficControllers"), + resourceids.UserSpecifiedSegment("trafficControllerName", "trafficControllerValue"), + } +} + +// String returns a human-readable description of this Traffic Controller ID +func (id TrafficControllerId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Traffic Controller Name: %q", id.TrafficControllerName), + } + return fmt.Sprintf("Traffic Controller (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_createorupdate.go new file mode 100644 index 000000000000..63a12d4e357d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_createorupdate.go @@ -0,0 +1,74 @@ +package frontendsinterface + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CreateOrUpdate ... +func (c FrontendsInterfaceClient) CreateOrUpdate(ctx context.Context, id FrontendId, input Frontend) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c FrontendsInterfaceClient) CreateOrUpdateThenPoll(ctx context.Context, id FrontendId, input Frontend) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_delete.go new file mode 100644 index 000000000000..5ffbaf1356c4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_delete.go @@ -0,0 +1,71 @@ +package frontendsinterface + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c FrontendsInterfaceClient) Delete(ctx context.Context, id FrontendId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c FrontendsInterfaceClient) DeleteThenPoll(ctx context.Context, id FrontendId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_get.go new file mode 100644 index 000000000000..7a2ebbfd4f72 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_get.go @@ -0,0 +1,51 @@ +package frontendsinterface + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Frontend +} + +// Get ... +func (c FrontendsInterfaceClient) Get(ctx context.Context, id FrontendId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_listbytrafficcontroller.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_listbytrafficcontroller.go new file mode 100644 index 000000000000..66825da3798b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_listbytrafficcontroller.go @@ -0,0 +1,89 @@ +package frontendsinterface + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByTrafficControllerOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]Frontend +} + +type ListByTrafficControllerCompleteResult struct { + Items []Frontend +} + +// ListByTrafficController ... +func (c FrontendsInterfaceClient) ListByTrafficController(ctx context.Context, id TrafficControllerId) (result ListByTrafficControllerOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/frontends", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]Frontend `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListByTrafficControllerComplete retrieves all the results into a single object +func (c FrontendsInterfaceClient) ListByTrafficControllerComplete(ctx context.Context, id TrafficControllerId) (ListByTrafficControllerCompleteResult, error) { + return c.ListByTrafficControllerCompleteMatchingPredicate(ctx, id, FrontendOperationPredicate{}) +} + +// ListByTrafficControllerCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c FrontendsInterfaceClient) ListByTrafficControllerCompleteMatchingPredicate(ctx context.Context, id TrafficControllerId, predicate FrontendOperationPredicate) (result ListByTrafficControllerCompleteResult, err error) { + items := make([]Frontend, 0) + + resp, err := c.ListByTrafficController(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListByTrafficControllerCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_update.go new file mode 100644 index 000000000000..6caa3398cc01 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/method_update.go @@ -0,0 +1,55 @@ +package frontendsinterface + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Frontend +} + +// Update ... +func (c FrontendsInterfaceClient) Update(ctx context.Context, id FrontendId, input FrontendUpdate) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/model_frontend.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/model_frontend.go new file mode 100644 index 000000000000..d60b842d9ca0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/model_frontend.go @@ -0,0 +1,18 @@ +package frontendsinterface + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Frontend struct { + Id *string `json:"id,omitempty"` + Location string `json:"location"` + Name *string `json:"name,omitempty"` + Properties *FrontendProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Tags *map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/model_frontendproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/model_frontendproperties.go new file mode 100644 index 000000000000..666719495f99 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/model_frontendproperties.go @@ -0,0 +1,9 @@ +package frontendsinterface + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type FrontendProperties struct { + Fqdn *string `json:"fqdn,omitempty"` + ProvisioningState *ProvisioningState `json:"provisioningState,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/model_frontendupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/model_frontendupdate.go new file mode 100644 index 000000000000..ac589ede9df6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/model_frontendupdate.go @@ -0,0 +1,8 @@ +package frontendsinterface + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type FrontendUpdate struct { + Tags *map[string]string `json:"tags,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/predicates.go new file mode 100644 index 000000000000..15b288509619 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/predicates.go @@ -0,0 +1,32 @@ +package frontendsinterface + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type FrontendOperationPredicate struct { + Id *string + Location *string + Name *string + Type *string +} + +func (p FrontendOperationPredicate) Matches(input Frontend) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Location != nil && *p.Location != input.Location { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/version.go new file mode 100644 index 000000000000..aa810fa09164 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface/version.go @@ -0,0 +1,12 @@ +package frontendsinterface + +import "fmt" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +const defaultApiVersion = "2023-05-01-preview" + +func userAgent() string { + return fmt.Sprintf("hashicorp/go-azure-sdk/frontendsinterface/%s", defaultApiVersion) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/README.md new file mode 100644 index 000000000000..c14f625e3a67 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/README.md @@ -0,0 +1,120 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface` Documentation + +The `trafficcontrollerinterface` SDK allows for interaction with the Azure Resource Manager Service `servicenetworking` (API Version `2023-05-01-preview`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface" +``` + + +### Client Initialization + +```go +client := trafficcontrollerinterface.NewTrafficControllerInterfaceClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `TrafficControllerInterfaceClient.CreateOrUpdate` + +```go +ctx := context.TODO() +id := trafficcontrollerinterface.NewTrafficControllerID("12345678-1234-9876-4563-123456789012", "example-resource-group", "trafficControllerValue") + +payload := trafficcontrollerinterface.TrafficController{ + // ... +} + + +if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `TrafficControllerInterfaceClient.Delete` + +```go +ctx := context.TODO() +id := trafficcontrollerinterface.NewTrafficControllerID("12345678-1234-9876-4563-123456789012", "example-resource-group", "trafficControllerValue") + +if err := client.DeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `TrafficControllerInterfaceClient.Get` + +```go +ctx := context.TODO() +id := trafficcontrollerinterface.NewTrafficControllerID("12345678-1234-9876-4563-123456789012", "example-resource-group", "trafficControllerValue") + +read, err := client.Get(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `TrafficControllerInterfaceClient.ListByResourceGroup` + +```go +ctx := context.TODO() +id := trafficcontrollerinterface.NewResourceGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group") + +// alternatively `client.ListByResourceGroup(ctx, id)` can be used to do batched pagination +items, err := client.ListByResourceGroupComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `TrafficControllerInterfaceClient.ListBySubscription` + +```go +ctx := context.TODO() +id := trafficcontrollerinterface.NewSubscriptionID("12345678-1234-9876-4563-123456789012") + +// alternatively `client.ListBySubscription(ctx, id)` can be used to do batched pagination +items, err := client.ListBySubscriptionComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `TrafficControllerInterfaceClient.Update` + +```go +ctx := context.TODO() +id := trafficcontrollerinterface.NewTrafficControllerID("12345678-1234-9876-4563-123456789012", "example-resource-group", "trafficControllerValue") + +payload := trafficcontrollerinterface.TrafficControllerUpdate{ + // ... +} + + +read, err := client.Update(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/client.go new file mode 100644 index 000000000000..4396983ea366 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/client.go @@ -0,0 +1,26 @@ +package trafficcontrollerinterface + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TrafficControllerInterfaceClient struct { + Client *resourcemanager.Client +} + +func NewTrafficControllerInterfaceClientWithBaseURI(sdkApi sdkEnv.Api) (*TrafficControllerInterfaceClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "trafficcontrollerinterface", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating TrafficControllerInterfaceClient: %+v", err) + } + + return &TrafficControllerInterfaceClient{ + Client: client, + }, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/constants.go new file mode 100644 index 000000000000..3eaf31f91f0d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/constants.go @@ -0,0 +1,66 @@ +package trafficcontrollerinterface + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ProvisioningState string + +const ( + ProvisioningStateAccepted ProvisioningState = "Accepted" + ProvisioningStateCanceled ProvisioningState = "Canceled" + ProvisioningStateDeleting ProvisioningState = "Deleting" + ProvisioningStateFailed ProvisioningState = "Failed" + ProvisioningStateProvisioning ProvisioningState = "Provisioning" + ProvisioningStateSucceeded ProvisioningState = "Succeeded" + ProvisioningStateUpdating ProvisioningState = "Updating" +) + +func PossibleValuesForProvisioningState() []string { + return []string{ + string(ProvisioningStateAccepted), + string(ProvisioningStateCanceled), + string(ProvisioningStateDeleting), + string(ProvisioningStateFailed), + string(ProvisioningStateProvisioning), + string(ProvisioningStateSucceeded), + string(ProvisioningStateUpdating), + } +} + +func (s *ProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseProvisioningState(input string) (*ProvisioningState, error) { + vals := map[string]ProvisioningState{ + "accepted": ProvisioningStateAccepted, + "canceled": ProvisioningStateCanceled, + "deleting": ProvisioningStateDeleting, + "failed": ProvisioningStateFailed, + "provisioning": ProvisioningStateProvisioning, + "succeeded": ProvisioningStateSucceeded, + "updating": ProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ProvisioningState(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/id_trafficcontroller.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/id_trafficcontroller.go new file mode 100644 index 000000000000..785e137e8451 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/id_trafficcontroller.go @@ -0,0 +1,127 @@ +package trafficcontrollerinterface + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = TrafficControllerId{} + +// TrafficControllerId is a struct representing the Resource ID for a Traffic Controller +type TrafficControllerId struct { + SubscriptionId string + ResourceGroupName string + TrafficControllerName string +} + +// NewTrafficControllerID returns a new TrafficControllerId struct +func NewTrafficControllerID(subscriptionId string, resourceGroupName string, trafficControllerName string) TrafficControllerId { + return TrafficControllerId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + TrafficControllerName: trafficControllerName, + } +} + +// ParseTrafficControllerID parses 'input' into a TrafficControllerId +func ParseTrafficControllerID(input string) (*TrafficControllerId, error) { + parser := resourceids.NewParserFromResourceIdType(TrafficControllerId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := TrafficControllerId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.TrafficControllerName, ok = parsed.Parsed["trafficControllerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "trafficControllerName", *parsed) + } + + return &id, nil +} + +// ParseTrafficControllerIDInsensitively parses 'input' case-insensitively into a TrafficControllerId +// note: this method should only be used for API response data and not user input +func ParseTrafficControllerIDInsensitively(input string) (*TrafficControllerId, error) { + parser := resourceids.NewParserFromResourceIdType(TrafficControllerId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := TrafficControllerId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.TrafficControllerName, ok = parsed.Parsed["trafficControllerName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "trafficControllerName", *parsed) + } + + return &id, nil +} + +// ValidateTrafficControllerID checks that 'input' can be parsed as a Traffic Controller ID +func ValidateTrafficControllerID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseTrafficControllerID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Traffic Controller ID +func (id TrafficControllerId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.ServiceNetworking/trafficControllers/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.TrafficControllerName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Traffic Controller ID +func (id TrafficControllerId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftServiceNetworking", "Microsoft.ServiceNetworking", "Microsoft.ServiceNetworking"), + resourceids.StaticSegment("staticTrafficControllers", "trafficControllers", "trafficControllers"), + resourceids.UserSpecifiedSegment("trafficControllerName", "trafficControllerValue"), + } +} + +// String returns a human-readable description of this Traffic Controller ID +func (id TrafficControllerId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Traffic Controller Name: %q", id.TrafficControllerName), + } + return fmt.Sprintf("Traffic Controller (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_createorupdate.go new file mode 100644 index 000000000000..eac3b25ea158 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_createorupdate.go @@ -0,0 +1,74 @@ +package trafficcontrollerinterface + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CreateOrUpdate ... +func (c TrafficControllerInterfaceClient) CreateOrUpdate(ctx context.Context, id TrafficControllerId, input TrafficController) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c TrafficControllerInterfaceClient) CreateOrUpdateThenPoll(ctx context.Context, id TrafficControllerId, input TrafficController) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_delete.go new file mode 100644 index 000000000000..fdc18f1a9f53 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_delete.go @@ -0,0 +1,71 @@ +package trafficcontrollerinterface + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c TrafficControllerInterfaceClient) Delete(ctx context.Context, id TrafficControllerId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c TrafficControllerInterfaceClient) DeleteThenPoll(ctx context.Context, id TrafficControllerId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_get.go new file mode 100644 index 000000000000..7ef890671c3c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_get.go @@ -0,0 +1,51 @@ +package trafficcontrollerinterface + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *TrafficController +} + +// Get ... +func (c TrafficControllerInterfaceClient) Get(ctx context.Context, id TrafficControllerId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_listbyresourcegroup.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_listbyresourcegroup.go new file mode 100644 index 000000000000..1359081f2db9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_listbyresourcegroup.go @@ -0,0 +1,90 @@ +package trafficcontrollerinterface + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByResourceGroupOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]TrafficController +} + +type ListByResourceGroupCompleteResult struct { + Items []TrafficController +} + +// ListByResourceGroup ... +func (c TrafficControllerInterfaceClient) ListByResourceGroup(ctx context.Context, id commonids.ResourceGroupId) (result ListByResourceGroupOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.ServiceNetworking/trafficControllers", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]TrafficController `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListByResourceGroupComplete retrieves all the results into a single object +func (c TrafficControllerInterfaceClient) ListByResourceGroupComplete(ctx context.Context, id commonids.ResourceGroupId) (ListByResourceGroupCompleteResult, error) { + return c.ListByResourceGroupCompleteMatchingPredicate(ctx, id, TrafficControllerOperationPredicate{}) +} + +// ListByResourceGroupCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c TrafficControllerInterfaceClient) ListByResourceGroupCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate TrafficControllerOperationPredicate) (result ListByResourceGroupCompleteResult, err error) { + items := make([]TrafficController, 0) + + resp, err := c.ListByResourceGroup(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListByResourceGroupCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_listbysubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_listbysubscription.go new file mode 100644 index 000000000000..88c9a83acb3b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_listbysubscription.go @@ -0,0 +1,90 @@ +package trafficcontrollerinterface + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListBySubscriptionOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]TrafficController +} + +type ListBySubscriptionCompleteResult struct { + Items []TrafficController +} + +// ListBySubscription ... +func (c TrafficControllerInterfaceClient) ListBySubscription(ctx context.Context, id commonids.SubscriptionId) (result ListBySubscriptionOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.ServiceNetworking/trafficControllers", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]TrafficController `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListBySubscriptionComplete retrieves all the results into a single object +func (c TrafficControllerInterfaceClient) ListBySubscriptionComplete(ctx context.Context, id commonids.SubscriptionId) (ListBySubscriptionCompleteResult, error) { + return c.ListBySubscriptionCompleteMatchingPredicate(ctx, id, TrafficControllerOperationPredicate{}) +} + +// ListBySubscriptionCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c TrafficControllerInterfaceClient) ListBySubscriptionCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate TrafficControllerOperationPredicate) (result ListBySubscriptionCompleteResult, err error) { + items := make([]TrafficController, 0) + + resp, err := c.ListBySubscription(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListBySubscriptionCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_update.go new file mode 100644 index 000000000000..c69f068992ac --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/method_update.go @@ -0,0 +1,55 @@ +package trafficcontrollerinterface + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *TrafficController +} + +// Update ... +func (c TrafficControllerInterfaceClient) Update(ctx context.Context, id TrafficControllerId, input TrafficControllerUpdate) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_resourceid.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_resourceid.go new file mode 100644 index 000000000000..bb565db648e0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_resourceid.go @@ -0,0 +1,8 @@ +package trafficcontrollerinterface + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ResourceId struct { + Id string `json:"id"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_trafficcontroller.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_trafficcontroller.go new file mode 100644 index 000000000000..2c3e90dd16bb --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_trafficcontroller.go @@ -0,0 +1,18 @@ +package trafficcontrollerinterface + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TrafficController struct { + Id *string `json:"id,omitempty"` + Location string `json:"location"` + Name *string `json:"name,omitempty"` + Properties *TrafficControllerProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Tags *map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_trafficcontrollerproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_trafficcontrollerproperties.go new file mode 100644 index 000000000000..49c8e3f49e20 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_trafficcontrollerproperties.go @@ -0,0 +1,11 @@ +package trafficcontrollerinterface + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TrafficControllerProperties struct { + Associations *[]ResourceId `json:"associations,omitempty"` + ConfigurationEndpoints *[]string `json:"configurationEndpoints,omitempty"` + Frontends *[]ResourceId `json:"frontends,omitempty"` + ProvisioningState *ProvisioningState `json:"provisioningState,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_trafficcontrollerupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_trafficcontrollerupdate.go new file mode 100644 index 000000000000..2f2d0897d29e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/model_trafficcontrollerupdate.go @@ -0,0 +1,8 @@ +package trafficcontrollerinterface + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TrafficControllerUpdate struct { + Tags *map[string]string `json:"tags,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/predicates.go new file mode 100644 index 000000000000..3f8bcc32db3d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/predicates.go @@ -0,0 +1,32 @@ +package trafficcontrollerinterface + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TrafficControllerOperationPredicate struct { + Id *string + Location *string + Name *string + Type *string +} + +func (p TrafficControllerOperationPredicate) Matches(input TrafficController) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Location != nil && *p.Location != input.Location { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/version.go new file mode 100644 index 000000000000..64814557fda2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface/version.go @@ -0,0 +1,12 @@ +package trafficcontrollerinterface + +import "fmt" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +const defaultApiVersion = "2023-05-01-preview" + +func userAgent() string { + return fmt.Sprintf("hashicorp/go-azure-sdk/trafficcontrollerinterface/%s", defaultApiVersion) +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 1fdbdb0b4220..5ac0dce13de8 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -866,6 +866,10 @@ github.com/hashicorp/go-azure-sdk/resource-manager/servicefabricmanagedcluster/2 github.com/hashicorp/go-azure-sdk/resource-manager/servicefabricmanagedcluster/2021-05-01/nodetype github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/links github.com/hashicorp/go-azure-sdk/resource-manager/servicelinker/2022-05-01/servicelinker +github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview +github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/associationsinterface +github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface +github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface github.com/hashicorp/go-azure-sdk/resource-manager/signalr/2023-02-01/signalr github.com/hashicorp/go-azure-sdk/resource-manager/sqlvirtualmachine/2022-02-01/availabilitygrouplisteners github.com/hashicorp/go-azure-sdk/resource-manager/sqlvirtualmachine/2022-02-01/sqlvirtualmachinegroups diff --git a/website/allowed-subcategories b/website/allowed-subcategories index cb7312f079d1..b1dfd82be850 100644 --- a/website/allowed-subcategories +++ b/website/allowed-subcategories @@ -94,6 +94,7 @@ Security Center Sentinel Service Fabric Service Fabric Managed Clusters +Service Networking Spring Cloud Storage Storage Mover diff --git a/website/docs/r/application_load_balancer.html.markdown b/website/docs/r/application_load_balancer.html.markdown new file mode 100644 index 000000000000..2673a33eed3b --- /dev/null +++ b/website/docs/r/application_load_balancer.html.markdown @@ -0,0 +1,65 @@ +--- +subcategory: "Service Networking" +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_application_load_balancer" +description: |- + Manages an Application Gateway for Containers (ALB). +--- + +# azurerm_application_load_balancer + +Manages an Application Gateway for Containers (ALB). + +## Example Usage + +```hcl +resource "azurerm_resource_group" "example" { + name = "example-resources" + location = "West Europe" +} + +resource "azurerm_application_load_balancer" "example" { + name = "example" + resource_group_name = azurerm_resource_group.example.name + location = azurerm_resource_group.example.location +} +``` + +## Arguments Reference + +The following arguments are supported: + +* `name` - (Required) The name which should be used for this Application Gateway for Containers (ALB). Changing this forces a new resource to be created. + +* `resource_group_name` - (Required) The name of Resource Group where the Application Gateway for Containers (ALB) should exist. Changing this forces a new resource to be created. + +* `location` - (Required) The Azure Region where the Application Gateway for Containers (ALB) should exist. Changing this forces a new resource to be created. + +--- + +* `tags` - (Optional) A mapping of tags which should be assigned to the Application Gateway for Containers (ALB). + +## Attributes Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the Application Gateway for Containers (ALB). + +* `primary_configuration_endpoint` - The primary configuration endpoints of the Application Gateway for Containers (ALB). + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: + +* `create` - (Defaults to 30 minutes) Used when creating the Application Gateway for Containers (ALB) +* `read` - (Defaults to 5 minutes) Used when retrieving the Application Gateway for Containers (ALB). +* `update` - (Defaults to 30 minutes) Used when updating the Application Gateway for Containers (ALB) +* `delete` - (Defaults to 30 minutes) Used when deleting the Application Gateway for Containers (ALB). + +## Import + +Application Gateway for Containers (ALB) can be imported using the `resource id`, e.g. + +```shell +terraform import azurerm_application_load_balancer.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ServiceNetworking/trafficControllers/alb1 +``` From 09cadb0753157b6b581e198e8c405e4a2c551d8f Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Wed, 27 Sep 2023 15:29:33 +0100 Subject: [PATCH 295/336] Update CHANGELOG.md for #22517 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 13881eed68dc..e85d0662de42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## 3.75.0 (Unreleased) +FEATURES: + +* New Resource: `azurerm_application_load_balancer` [GH-22517] + BUG FIXES: * `azurerm_api_management_api` : fix importing `openapi` format content file issue [GH-23348] From dd4864c5726e9ad03d4123c25c233fa554d2f05a Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Wed, 27 Sep 2023 19:31:50 -0600 Subject: [PATCH 296/336] including #23384 fixes #23376 * Initial Check-in... * Fix error message grammar... * Fix the same error message again... * Initial Check-in... --- .../cdn/cdn_frontdoor_rule_resource_test.go | 47 +++++++++++++++++++ .../validate/front_door_validation_helpers.go | 4 -- 2 files changed, 47 insertions(+), 4 deletions(-) diff --git a/internal/services/cdn/cdn_frontdoor_rule_resource_test.go b/internal/services/cdn/cdn_frontdoor_rule_resource_test.go index e391f68ef1c9..bbd08c92ee99 100644 --- a/internal/services/cdn/cdn_frontdoor_rule_resource_test.go +++ b/internal/services/cdn/cdn_frontdoor_rule_resource_test.go @@ -48,6 +48,21 @@ func TestAccCdnFrontDoorRule_cacheDuration(t *testing.T) { }) } +func TestAccCdnFrontDoorRule_cacheDurationZero(t *testing.T) { + // NOTE: Regression test case for issue #23376 + data := acceptance.BuildTestData(t, "azurerm_cdn_frontdoor_rule", "test") + r := CdnFrontDoorRuleResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.cacheDurationZero(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func TestAccCdnFrontDoorRule_urlRedirectAction(t *testing.T) { // NOTE: Regression test case for issue #18249 data := acceptance.BuildTestData(t, "azurerm_cdn_frontdoor_rule", "test") @@ -503,6 +518,38 @@ resource "azurerm_cdn_frontdoor_rule" "test" { `, template, data.RandomInteger) } +func (r CdnFrontDoorRuleResource) cacheDurationZero(data acceptance.TestData) string { + template := r.template(data) + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +%s + +resource "azurerm_cdn_frontdoor_rule" "test" { + depends_on = [azurerm_cdn_frontdoor_origin_group.test, azurerm_cdn_frontdoor_origin.test] + + name = "accTestRule%d" + cdn_frontdoor_rule_set_id = azurerm_cdn_frontdoor_rule_set.test.id + + order = 0 + + actions { + route_configuration_override_action { + cdn_frontdoor_origin_group_id = azurerm_cdn_frontdoor_origin_group.test.id + forwarding_protocol = "HttpsOnly" + query_string_caching_behavior = "IncludeSpecifiedQueryStrings" + query_string_parameters = ["foo", "clientIp={client_ip}"] + compression_enabled = true + cache_behavior = "OverrideIfOriginMissing" + cache_duration = "00:00:00" + } + } +} +`, template, data.RandomInteger) +} + func (r CdnFrontDoorRuleResource) urlRedirectAction(data acceptance.TestData) string { template := r.template(data) return fmt.Sprintf(` diff --git a/internal/services/cdn/validate/front_door_validation_helpers.go b/internal/services/cdn/validate/front_door_validation_helpers.go index 6f0ec138a383..d7402c9031dd 100644 --- a/internal/services/cdn/validate/front_door_validation_helpers.go +++ b/internal/services/cdn/validate/front_door_validation_helpers.go @@ -50,10 +50,6 @@ func CdnFrontDoorCacheDuration(i interface{}, k string) (_ []string, errors []er return nil, []error{fmt.Errorf(`%q must be in the d.HH:MM:SS or HH:MM:SS format and must be equal to or lower than %q, got %q`, k, "365.23:59:59", v)} } - if v == "00:00:00" { - return nil, []error{fmt.Errorf(`%q must be longer than zero seconds, got %q`, k, v)} - } - return nil, nil } From f93d250ade87120d0fd7369ea415c51676306a62 Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Wed, 27 Sep 2023 19:33:17 -0600 Subject: [PATCH 297/336] updating to include #23384 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e85d0662de42..d436300c63cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,8 @@ FEATURES: BUG FIXES: -* `azurerm_api_management_api` : fix importing `openapi` format content file issue [GH-23348] +* `azurerm_api_management_api` - fix importing `openapi` format content file issue [GH-23348] +* `azurerm_cdn_frontdoor_rule` - allow a `cache_duration` of `00:00:00` [GH-23384] * `azurerm_palo_alto_local_rulestack_prefix_list` - fix rulestack not being committed on delete [GH-23362] * `azurerm_palo_alto_local_rulestack_fqdn_list` - fix rulestack not being committed on delete [GH-23362] * `security_center_subscription_pricing_resource` - disabled extensions logic now works as expected [GH-22997] From 7d44f7eb3980020f778cdd270c1d53f94468e4bf Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Thu, 28 Sep 2023 09:33:40 +0100 Subject: [PATCH 298/336] `servicenetworking` - fixup test checks (#23410) --- .../application_load_balancer_resource_test.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/internal/services/servicenetworking/application_load_balancer_resource_test.go b/internal/services/servicenetworking/application_load_balancer_resource_test.go index 3391fb835035..683683f2a44a 100644 --- a/internal/services/servicenetworking/application_load_balancer_resource_test.go +++ b/internal/services/servicenetworking/application_load_balancer_resource_test.go @@ -3,6 +3,7 @@ package servicenetworking_test import ( "context" "fmt" + "regexp" "testing" "github.com/hashicorp/go-azure-helpers/lang/pointer" @@ -41,7 +42,7 @@ func TestAccApplicationLoadBalancer_basic(t *testing.T) { Config: r.basic(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("configuration_endpoint.#").HasValue("1"), + check.That(data.ResourceName).Key("primary_configuration_endpoint").MatchesRegex(regexp.MustCompile(`^.+\.alb.azure.com$`)), ), }, data.ImportStep(), @@ -57,7 +58,7 @@ func TestAccApplicationLoadBalancer_complete(t *testing.T) { Config: r.complete(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("primary_configuration_endpoint").HasValue("1"), + check.That(data.ResourceName).Key("primary_configuration_endpoint").MatchesRegex(regexp.MustCompile(`^.+\.alb.azure.com$`)), ), }, data.ImportStep(), @@ -73,7 +74,7 @@ func TestAccApplicationLoadBalancer_update(t *testing.T) { Config: r.basic(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("configuration_endpoint.#").HasValue("1"), + check.That(data.ResourceName).Key("primary_configuration_endpoint").MatchesRegex(regexp.MustCompile(`^.+\.alb.azure.com$`)), ), }, data.ImportStep(), @@ -81,7 +82,7 @@ func TestAccApplicationLoadBalancer_update(t *testing.T) { Config: r.complete(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("configuration_endpoint.#").HasValue("1"), + check.That(data.ResourceName).Key("primary_configuration_endpoint").MatchesRegex(regexp.MustCompile(`^.+\.alb.azure.com$`)), ), }, data.ImportStep(), @@ -97,7 +98,7 @@ func TestAccApplicationLoadBalancer_requiresImport(t *testing.T) { Config: r.basic(data), Check: acceptance.ComposeTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), - check.That(data.ResourceName).Key("configuration_endpoint.#").HasValue("1"), + check.That(data.ResourceName).Key("primary_configuration_endpoint").MatchesRegex(regexp.MustCompile(`^.+\.alb.azure.com$`)), ), }, data.RequiresImportErrorStep(r.requiresImport), From ff9867072b031e969cdff07eb4955645958ded8c Mon Sep 17 00:00:00 2001 From: stephybun Date: Thu, 28 Sep 2023 15:50:37 +0200 Subject: [PATCH 299/336] Update for #23345 #23204 #23344 #23308 #23333 #23332 #23335 #23354 #23114 #23098 #23342 #23329 #23251 --- CHANGELOG.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d436300c63cc..41aed9cd5753 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,11 +3,29 @@ FEATURES: * New Resource: `azurerm_application_load_balancer` [GH-22517] +* New Resource: `azurerm_resource_management_private_link` [GH-23098] + +ENHANCEMENTS: + +* dependencies: `firewall` migrated to `hashicorp/go-azure-sdk` [GH-22863] +* `azurerm_bot_service_azure_bot` - add support for the `icon_url` property [GH-23114] +* `azurerm_cognitive_deployment` - `capacity` property is now updateable [GH-23251] +* `azurerm_container_group` - added support for `key_vault_user_identity_id` [GH-23332] +* `azurerm_data_factory` - added support for the `publish_enabled` property [GH-2334] +* `azurerm_firewall_policy_rule_collection_group` - add support for the `description` property [GH-23354] +* `azurerm_kubernetes_cluster` - `network_profile.network_policy` can be migrated to `cilium` [GH-23342] +* `azurerm_log_analytics_workspace` - add support for the `data_collection_rule_id` property [GH-23347] +* `azurerm_mysql_flexible_server` - add support for the `io_scaling_enabled` property [GH-23329] BUG FIXES: * `azurerm_api_management_api` - fix importing `openapi` format content file issue [GH-23348] * `azurerm_cdn_frontdoor_rule` - allow a `cache_duration` of `00:00:00` [GH-23384] +* `azurerm_key_vault_certificate` - fix a bug that prevented soft-deleted certificates from being recovered [GH-23204] +* `azurerm_log_analytics_solution` - fix create and update lifecycle of resource by splitting methods [GH-23333] +* `azurerm_management_group_subscription_association` - mark resource as gone correctly if not found when retrieving [GH-23335] +* `azurerm_management_lock` - add polling after create and delete to check for RP propagation [GH-23345] +* `azurerm_monitor_diagnostic_setting` - added validation to ensure at least one of `category` or `category_group` is supplied [GH-23308] * `azurerm_palo_alto_local_rulestack_prefix_list` - fix rulestack not being committed on delete [GH-23362] * `azurerm_palo_alto_local_rulestack_fqdn_list` - fix rulestack not being committed on delete [GH-23362] * `security_center_subscription_pricing_resource` - disabled extensions logic now works as expected [GH-22997] From 58aab279c03bdede8ac2c674ad3812771259cf09 Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Thu, 28 Sep 2023 20:27:12 -0600 Subject: [PATCH 300/336] updating to include #23419 * Initial Check-in... * Change default sku_name value for 4.0... * Fix lint error... * Update 3.x to be computed... * Make Sku conditional in Create function... --- .../cosmosdb_cassandra_datacenter_resource.go | 56 +++++++---- ...osdb_cassandra_datacenter_resource_test.go | 92 +++++++++++++++++-- .../cosmosdb_cassandra_keyspace_resource.go | 2 +- .../cosmosdb_cassandra_resource_test.go | 5 +- .../cosmosdb_gremlin_database_resource.go | 2 +- .../cosmos/cosmosdb_gremlin_graph_resource.go | 2 +- .../cosmosdb_mongo_database_resource.go | 2 +- .../cosmos/cosmosdb_sql_database_resource.go | 2 +- .../cosmos/cosmosdb_table_resource.go | 2 +- ...osmosdb_cassandra_datacenter.html.markdown | 2 + 10 files changed, 135 insertions(+), 32 deletions(-) diff --git a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go index 9d84be0f23e3..2eeacd8682b5 100644 --- a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go +++ b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource.go @@ -17,6 +17,7 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/helpers/azure" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/features" "github.com/hashicorp/terraform-provider-azurerm/internal/services/cosmos/validate" keyVaultValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/keyvault/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" @@ -26,7 +27,7 @@ import ( ) func resourceCassandraDatacenter() *pluginsdk.Resource { - return &pluginsdk.Resource{ + resource := &pluginsdk.Resource{ Create: resourceCassandraDatacenterCreate, Read: resourceCassandraDatacenterRead, Update: resourceCassandraDatacenterUpdate, @@ -92,18 +93,12 @@ func resourceCassandraDatacenter() *pluginsdk.Resource { Optional: true, ValidateFunc: keyVaultValidate.NestedItemId, }, - "node_count": { Type: pluginsdk.TypeInt, Optional: true, ValidateFunc: validation.IntAtLeast(3), Default: 3, }, - "sku_name": { - Type: pluginsdk.TypeString, - Optional: true, - ValidateFunc: validation.StringIsNotEmpty, - }, "disk_count": { Type: pluginsdk.TypeInt, Optional: true, @@ -116,6 +111,27 @@ func resourceCassandraDatacenter() *pluginsdk.Resource { }, }, } + + if !features.FourPointOhBeta() { + // NOTE: The API does not expose a constant for the Sku so I had to hardcode it here... + // Per the service team, the current default Sku is 'Standard_DS14_v2' but moving forward + // the new default value should be 'Standard_E16s_v5'. + resource.Schema["sku_name"] = &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + Optional: true, + Computed: true, + ValidateFunc: validation.StringIsNotEmpty, + } + } else { + resource.Schema["sku_name"] = &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + Optional: true, + Default: "Standard_E16s_v5", + ValidateFunc: validation.StringIsNotEmpty, + } + } + + return resource } func resourceCassandraDatacenterCreate(d *pluginsdk.ResourceData, meta interface{}) error { @@ -139,11 +155,10 @@ func resourceCassandraDatacenterCreate(d *pluginsdk.ResourceData, meta interface return tf.ImportAsExistsError("azurerm_cosmosdb_cassandra_datacenter", id.ID()) } - body := managedcassandras.DataCenterResource{ + payload := managedcassandras.DataCenterResource{ Properties: &managedcassandras.DataCenterResourceProperties{ DelegatedSubnetId: utils.String(d.Get("delegated_management_subnet_id").(string)), NodeCount: utils.Int64(int64(d.Get("node_count").(int))), - Sku: utils.String(d.Get("sku_name").(string)), AvailabilityZone: utils.Bool(d.Get("availability_zones_enabled").(bool)), DiskCapacity: utils.Int64(int64(d.Get("disk_count").(int))), DiskSku: utils.String(d.Get("disk_sku").(string)), @@ -152,18 +167,22 @@ func resourceCassandraDatacenterCreate(d *pluginsdk.ResourceData, meta interface } if v, ok := d.GetOk("backup_storage_customer_key_uri"); ok { - body.Properties.BackupStorageCustomerKeyUri = utils.String(v.(string)) + payload.Properties.BackupStorageCustomerKeyUri = utils.String(v.(string)) } if v, ok := d.GetOk("base64_encoded_yaml_fragment"); ok { - body.Properties.Base64EncodedCassandraYamlFragment = utils.String(v.(string)) + payload.Properties.Base64EncodedCassandraYamlFragment = utils.String(v.(string)) } if v, ok := d.GetOk("managed_disk_customer_key_uri"); ok { - body.Properties.ManagedDiskCustomerKeyUri = utils.String(v.(string)) + payload.Properties.ManagedDiskCustomerKeyUri = utils.String(v.(string)) } - if err = client.CassandraDataCentersCreateUpdateThenPoll(ctx, id, body); err != nil { + if v, ok := d.GetOk("sku_name"); ok { + payload.Properties.Sku = utils.String(v.(string)) + } + + if err = client.CassandraDataCentersCreateUpdateThenPoll(ctx, id, payload); err != nil { return fmt.Errorf("creating %q: %+v", id, err) } @@ -222,28 +241,29 @@ func resourceCassandraDatacenterUpdate(d *pluginsdk.ResourceData, meta interface return err } - body := managedcassandras.DataCenterResource{ + payload := managedcassandras.DataCenterResource{ Properties: &managedcassandras.DataCenterResourceProperties{ DelegatedSubnetId: utils.String(d.Get("delegated_management_subnet_id").(string)), NodeCount: utils.Int64(int64(d.Get("node_count").(int))), + Sku: utils.String(d.Get("sku_name").(string)), DataCenterLocation: utils.String(azure.NormalizeLocation(d.Get("location").(string))), DiskSku: utils.String(d.Get("disk_sku").(string)), }, } if v, ok := d.GetOk("backup_storage_customer_key_uri"); ok { - body.Properties.BackupStorageCustomerKeyUri = utils.String(v.(string)) + payload.Properties.BackupStorageCustomerKeyUri = utils.String(v.(string)) } if v, ok := d.GetOk("base64_encoded_yaml_fragment"); ok { - body.Properties.Base64EncodedCassandraYamlFragment = utils.String(v.(string)) + payload.Properties.Base64EncodedCassandraYamlFragment = utils.String(v.(string)) } if v, ok := d.GetOk("managed_disk_customer_key_uri"); ok { - body.Properties.ManagedDiskCustomerKeyUri = utils.String(v.(string)) + payload.Properties.ManagedDiskCustomerKeyUri = utils.String(v.(string)) } - if err := client.CassandraDataCentersCreateUpdateThenPoll(ctx, *id, body); err != nil { + if err := client.CassandraDataCentersCreateUpdateThenPoll(ctx, *id, payload); err != nil { return fmt.Errorf("updating %q: %+v", id, err) } diff --git a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource_test.go b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource_test.go index 4e1f10b31cb3..c23b0597b5e9 100644 --- a/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource_test.go +++ b/internal/services/cosmos/cosmosdb_cassandra_datacenter_resource_test.go @@ -12,6 +12,7 @@ import ( "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/features" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/utils" ) @@ -24,9 +25,10 @@ func testAccCassandraDatacenter_basic(t *testing.T) { data.ResourceSequentialTest(t, r, []acceptance.TestStep{ { - Config: r.basic(data, 3), + Config: r.basic(data), Check: acceptance.ComposeAggregateTestCheckFunc( check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("sku_name").IsNotEmpty(), ), }, data.ImportStep(), @@ -55,6 +57,68 @@ func testAccCassandraDatacenter_update(t *testing.T) { }) } +func testAccCassandraDatacenter_updateSku(t *testing.T) { + // Regression test case for MS IcM + data := acceptance.BuildTestData(t, "azurerm_cosmosdb_cassandra_datacenter", "test") + r := CassandraDatacenterResource{} + + if !features.FourPointOhBeta() { + data.ResourceSequentialTest(t, r, []acceptance.TestStep{ + { + Config: r.basicSku(data, "Standard_DS14_v2"), + Check: acceptance.ComposeAggregateTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("sku_name").HasValue("Standard_DS14_v2"), + ), + }, + data.ImportStep(), + { + Config: r.basicSku(data, "Standard_DS13_v2"), + Check: acceptance.ComposeAggregateTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("sku_name").HasValue("Standard_DS13_v2"), + ), + }, + data.ImportStep(), + { + Config: r.basicSku(data, "Standard_DS14_v2"), + Check: acceptance.ComposeAggregateTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("sku_name").HasValue("Standard_DS14_v2"), + ), + }, + data.ImportStep(), + }) + } else { + data.ResourceSequentialTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeAggregateTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("sku_name").HasValue("Standard_E16s_v5"), + ), + }, + data.ImportStep(), + { + Config: r.basicSku(data, "Standard_E2_v5"), + Check: acceptance.ComposeAggregateTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("sku_name").HasValue("Standard_E2_v5"), + ), + }, + data.ImportStep(), + { + Config: r.basic(data), + Check: acceptance.ComposeAggregateTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("sku_name").HasValue("Standard_E16s_v5"), + ), + }, + data.ImportStep(), + }) + } +} + func (t CassandraDatacenterResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := managedcassandras.ParseDataCenterID(state.ID) if err != nil { @@ -69,7 +133,23 @@ func (t CassandraDatacenterResource) Exists(ctx context.Context, clients *client return utils.Bool(resp.Model != nil), nil } -func (r CassandraDatacenterResource) basic(data acceptance.TestData, nodeCount int) string { +func (r CassandraDatacenterResource) basic(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_cosmosdb_cassandra_datacenter" "test" { + name = "acctca-mi-dc-%d" + cassandra_cluster_id = azurerm_cosmosdb_cassandra_cluster.test.id + location = azurerm_cosmosdb_cassandra_cluster.test.location + delegated_management_subnet_id = azurerm_subnet.test.id + node_count = 3 + disk_count = 4 + availability_zones_enabled = false +} +`, r.template(data), data.RandomInteger) +} + +func (r CassandraDatacenterResource) basicSku(data acceptance.TestData, skuName string) string { return fmt.Sprintf(` %s @@ -78,12 +158,12 @@ resource "azurerm_cosmosdb_cassandra_datacenter" "test" { cassandra_cluster_id = azurerm_cosmosdb_cassandra_cluster.test.id location = azurerm_cosmosdb_cassandra_cluster.test.location delegated_management_subnet_id = azurerm_subnet.test.id - node_count = %d + node_count = 3 disk_count = 4 - sku_name = "Standard_DS14_v2" + sku_name = "%s" availability_zones_enabled = false } -`, r.template(data), data.RandomInteger, nodeCount) +`, r.template(data), data.RandomInteger, skuName) } func (r CassandraDatacenterResource) complete(data acceptance.TestData, nodeCount int) string { @@ -308,7 +388,7 @@ provider "azurerm" { } resource "azurerm_resource_group" "test" { - name = "acctestRG-ca-%d" + name = "acctestRG-cassandra-%d" location = "%s" } diff --git a/internal/services/cosmos/cosmosdb_cassandra_keyspace_resource.go b/internal/services/cosmos/cosmosdb_cassandra_keyspace_resource.go index 774057101287..43604f9e3046 100644 --- a/internal/services/cosmos/cosmosdb_cassandra_keyspace_resource.go +++ b/internal/services/cosmos/cosmosdb_cassandra_keyspace_resource.go @@ -168,7 +168,7 @@ func resourceCosmosDbCassandraKeyspaceUpdate(d *pluginsdk.ResourceData, meta int if err != nil { if response.WasNotFound(throughputFuture.Response()) { return fmt.Errorf("setting Throughput for Cosmos Cassandra Keyspace %q (Account: %q): %+v - "+ - "If the collection has not been created with an initial throughput, you cannot configure it later.", id.Name, id.DatabaseAccountName, err) + "If the collection has not been created with an initial throughput, you cannot configure it later", id.Name, id.DatabaseAccountName, err) } } diff --git a/internal/services/cosmos/cosmosdb_cassandra_resource_test.go b/internal/services/cosmos/cosmosdb_cassandra_resource_test.go index 5b7f33f71766..f0e61171212b 100644 --- a/internal/services/cosmos/cosmosdb_cassandra_resource_test.go +++ b/internal/services/cosmos/cosmosdb_cassandra_resource_test.go @@ -19,8 +19,9 @@ func TestAccCassandraSequential(t *testing.T) { "requiresImport": testAccCassandraCluster_requiresImport, }, "dataCenter": { - "basic": testAccCassandraDatacenter_basic, - "update": testAccCassandraDatacenter_update, + "basic": testAccCassandraDatacenter_basic, + "update": testAccCassandraDatacenter_update, + "updateSku": testAccCassandraDatacenter_updateSku, }, }) } diff --git a/internal/services/cosmos/cosmosdb_gremlin_database_resource.go b/internal/services/cosmos/cosmosdb_gremlin_database_resource.go index 818a611fa9e7..f3805076b42e 100644 --- a/internal/services/cosmos/cosmosdb_gremlin_database_resource.go +++ b/internal/services/cosmos/cosmosdb_gremlin_database_resource.go @@ -156,7 +156,7 @@ func resourceCosmosGremlinDatabaseUpdate(d *pluginsdk.ResourceData, meta interfa if err != nil { if response.WasNotFound(throughputFuture.HttpResponse) { return fmt.Errorf("setting Throughput for Cosmos Gremlin Database %q (Account: %q): %+v - "+ - "If the collection has not been created with and initial throughput, you cannot configure it later.", id.GremlinDatabaseName, id.DatabaseAccountName, err) + "If the collection has not been created with and initial throughput, you cannot configure it later", id.GremlinDatabaseName, id.DatabaseAccountName, err) } } diff --git a/internal/services/cosmos/cosmosdb_gremlin_graph_resource.go b/internal/services/cosmos/cosmosdb_gremlin_graph_resource.go index 9398a102ab11..4fa921dbd3a6 100644 --- a/internal/services/cosmos/cosmosdb_gremlin_graph_resource.go +++ b/internal/services/cosmos/cosmosdb_gremlin_graph_resource.go @@ -336,7 +336,7 @@ func resourceCosmosDbGremlinGraphUpdate(d *pluginsdk.ResourceData, meta interfac if err != nil { if response.WasNotFound(throughputFuture.HttpResponse) { return fmt.Errorf("setting Throughput for Cosmos Gremlin Graph %q (Account: %q, Database: %q): %+v - "+ - "If the graph has not been created with an initial throughput, you cannot configure it later.", id.GraphName, id.DatabaseAccountName, id.GremlinDatabaseName, err) + "If the graph has not been created with an initial throughput, you cannot configure it later", id.GraphName, id.DatabaseAccountName, id.GremlinDatabaseName, err) } } diff --git a/internal/services/cosmos/cosmosdb_mongo_database_resource.go b/internal/services/cosmos/cosmosdb_mongo_database_resource.go index b88d3f9297bb..4a4c1e401e30 100644 --- a/internal/services/cosmos/cosmosdb_mongo_database_resource.go +++ b/internal/services/cosmos/cosmosdb_mongo_database_resource.go @@ -168,7 +168,7 @@ func resourceCosmosDbMongoDatabaseUpdate(d *pluginsdk.ResourceData, meta interfa if err != nil { if response.WasNotFound(throughputFuture.Response()) { return fmt.Errorf("setting Throughput for Cosmos MongoDB Database %q (Account: %q): %+v - "+ - "If the collection has not been created with an initial throughput, you cannot configure it later.", id.Name, id.DatabaseAccountName, err) + "If the collection has not been created with an initial throughput, you cannot configure it later", id.Name, id.DatabaseAccountName, err) } } diff --git a/internal/services/cosmos/cosmosdb_sql_database_resource.go b/internal/services/cosmos/cosmosdb_sql_database_resource.go index 9ff0ca40528d..1e98971de0fd 100644 --- a/internal/services/cosmos/cosmosdb_sql_database_resource.go +++ b/internal/services/cosmos/cosmosdb_sql_database_resource.go @@ -168,7 +168,7 @@ func resourceCosmosDbSQLDatabaseUpdate(d *pluginsdk.ResourceData, meta interface if err != nil { if response.WasNotFound(throughputFuture.Response()) { return fmt.Errorf("setting Throughput for Cosmos SQL Database %q (Account: %q) %+v - "+ - "If the collection has not been created with an initial throughput, you cannot configure it later.", id.Name, id.DatabaseAccountName, err) + "If the collection has not been created with an initial throughput, you cannot configure it later", id.Name, id.DatabaseAccountName, err) } } diff --git a/internal/services/cosmos/cosmosdb_table_resource.go b/internal/services/cosmos/cosmosdb_table_resource.go index 78c40813f5dd..0b2d4f726fda 100644 --- a/internal/services/cosmos/cosmosdb_table_resource.go +++ b/internal/services/cosmos/cosmosdb_table_resource.go @@ -168,7 +168,7 @@ func resourceCosmosDbTableUpdate(d *pluginsdk.ResourceData, meta interface{}) er if err != nil { if response.WasNotFound(throughputFuture.Response()) { return fmt.Errorf("setting Throughput for Cosmos Table %q (Account: %q): %+v - "+ - "If the collection has not been created with an initial throughput, you cannot configure it later.", id.Name, id.DatabaseAccountName, err) + "If the collection has not been created with an initial throughput, you cannot configure it later", id.Name, id.DatabaseAccountName, err) } } diff --git a/website/docs/r/cosmosdb_cassandra_datacenter.html.markdown b/website/docs/r/cosmosdb_cassandra_datacenter.html.markdown index a00b48e65aea..e2549b332d90 100644 --- a/website/docs/r/cosmosdb_cassandra_datacenter.html.markdown +++ b/website/docs/r/cosmosdb_cassandra_datacenter.html.markdown @@ -100,6 +100,8 @@ The following arguments are supported: * `sku_name` - (Optional) Determines the selected sku. +-> **NOTE:** In v4.0 of the provider the `sku_name` will have a default value of `Standard_E16s_v5`. + * `disk_count` - (Optional) Determines the number of p30 disks that are attached to each node. * `availability_zones_enabled` - (Optional) Determines whether availability zones are enabled. Defaults to `true`. From 986eabaff034dd7c40dd7bec43fc1952bc234454 Mon Sep 17 00:00:00 2001 From: Wodans Son <20408400+WodansSon@users.noreply.github.com> Date: Thu, 28 Sep 2023 20:28:09 -0600 Subject: [PATCH 301/336] Update CHANGELOG.md to include #23419 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 41aed9cd5753..92b657e6bae6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ BUG FIXES: * `azurerm_api_management_api` - fix importing `openapi` format content file issue [GH-23348] * `azurerm_cdn_frontdoor_rule` - allow a `cache_duration` of `00:00:00` [GH-23384] +* `azurerm_cosmosdb_cassandra_datacenter` - `sku_name` is now updatable [GH-23419] * `azurerm_key_vault_certificate` - fix a bug that prevented soft-deleted certificates from being recovered [GH-23204] * `azurerm_log_analytics_solution` - fix create and update lifecycle of resource by splitting methods [GH-23333] * `azurerm_management_group_subscription_association` - mark resource as gone correctly if not found when retrieving [GH-23335] From d32061a9cdf6967f8634685004bd7e846701a59c Mon Sep 17 00:00:00 2001 From: kt Date: Thu, 28 Sep 2023 23:04:14 -0700 Subject: [PATCH 302/336] v3.75.0 --- .release/provider-schema.json | 2 +- CHANGELOG.md | 46 +++++++++++++++++------------------ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.release/provider-schema.json b/.release/provider-schema.json index 0e2c40f232e7..4e672ac2d220 100644 --- a/.release/provider-schema.json +++ b/.release/provider-schema.json @@ -1 +1 @@ -{"providerName":"azurerm","schemaVersion":"1","providerSchema":{"schema":{"auxiliary_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":3},"client_certificate":{"type":"TypeString","optional":true,"description":"Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_password":{"type":"TypeString","optional":true,"description":"The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_path":{"type":"TypeString","optional":true,"description":"The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service Principal using a Client Certificate."},"client_id":{"type":"TypeString","optional":true,"description":"The Client ID which should be used."},"client_id_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client ID which should be used."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"client_secret_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"disable_correlation_request_id":{"type":"TypeBool","optional":true,"description":"This will disable the x-ms-correlation-request-id header."},"disable_terraform_partner_id":{"type":"TypeBool","optional":true,"description":"This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified."},"environment":{"type":"TypeString","required":true,"description":"The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public."},"features":{"type":"TypeList","required":true,"elem":{"schema":{"api_management":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"app_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"application_insights":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_generated_rule":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cognitive_account":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_certificates_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_hardware_security_modules_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_managed_hardware_security_module` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_keys_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_secrets_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be permanently deleted (e.g purged), when destroyed"},"recover_soft_deleted_certificates":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be restored, instead of creating new ones"},"recover_soft_deleted_key_vaults":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be restored, instead of creating new ones"},"recover_soft_deleted_keys":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be restored, instead of creating new ones"},"recover_soft_deleted_secrets":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be restored, instead of creating new ones"}}},"maxItems":1},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"permanently_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"managed_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"expand_without_downtime":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_deletion_if_contains_resources":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_cancellation_on_destroy":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"template_deployment":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_nested_items_during_deletion":{"type":"TypeBool","required":true}}},"maxItems":1},"virtual_machine":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_os_disk_on_deletion":{"type":"TypeBool","optional":true,"default":false},"graceful_shutdown":{"type":"TypeBool","optional":true,"default":false},"skip_shutdown_and_force_delete":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"virtual_machine_scale_set":{"type":"TypeList","optional":true,"elem":{"schema":{"force_delete":{"type":"TypeBool","optional":true,"default":false},"roll_instances_when_required":{"type":"TypeBool","required":true},"scale_to_zero_before_deletion":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1,"minItems":1},"metadata_host":{"type":"TypeString","required":true,"description":"The Hostname which should be used for the Azure Metadata Service."},"msi_endpoint":{"type":"TypeString","optional":true,"description":"The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected automatically. "},"oidc_request_token":{"type":"TypeString","optional":true,"description":"The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_request_url":{"type":"TypeString","optional":true,"description":"The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_token":{"type":"TypeString","optional":true,"description":"The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"oidc_token_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"partner_id":{"type":"TypeString","optional":true,"description":"A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution."},"skip_provider_registration":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already registered?"},"storage_use_azuread":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?"},"subscription_id":{"type":"TypeString","optional":true,"description":"The Subscription ID which should be used."},"tenant_id":{"type":"TypeString","optional":true,"description":"The Tenant ID which should be used."},"use_cli":{"type":"TypeBool","optional":true,"default":true,"description":"Allow Azure CLI to be used for Authentication."},"use_msi":{"type":"TypeBool","optional":true,"description":"Allow Managed Service Identity to be used for Authentication."},"use_oidc":{"type":"TypeBool","optional":true,"description":"Allow OpenID Connect to be used for authentication"}},"resources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"country_code":{"type":"TypeString","optional":true,"description":"Country code of the B2C tenant. See https://aka.ms/B2CDataResidency for valid country codes.","computed":true,"forceNew":true},"data_residency_location":{"type":"TypeString","required":true,"description":"Location in which the B2C tenant is hosted and data resides. See https://aka.ms/B2CDataResidency for more information.","forceNew":true},"display_name":{"type":"TypeString","optional":true,"description":"The initial display name of the B2C tenant.","computed":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix.","forceNew":true},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"description":"Billing SKU for the B2C tenant. See https://aka.ms/b2cBilling for more information."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","optional":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"filtered_sync_enabled":{"type":"TypeBool","optional":true,"default":false},"initial_replica_set":{"type":"TypeList","required":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notifications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","optional":true,"default":false},"notify_global_admins":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","required":true},"external_access_enabled":{"type":"TypeBool","optional":true,"default":false},"pfx_certificate":{"type":"TypeString","required":true},"pfx_certificate_password":{"type":"TypeString","required":true},"public_certificate":{"type":"TypeString","computed":true}}},"maxItems":1},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","optional":true,"default":false},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"ntlm_v1_enabled":{"type":"TypeBool","optional":true,"default":false},"sync_kerberos_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_ntlm_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_on_prem_passwords":{"type":"TypeBool","optional":true,"default":false},"tls_v1_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_replica_set":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"external_access_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_trust":{"schema":{"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"trusted_domain_dns_ips":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":2},"trusted_domain_fqdn":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_advanced_threat_protection":{"schema":{"enabled":{"type":"TypeBool","required":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_analysis_services_server":{"schema":{"admin_users":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"backup_blob_container_uri":{"type":"TypeString","optional":true},"enable_power_bi_service":{"type":"TypeBool","optional":true},"ipv4_firewall_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"range_end":{"type":"TypeString","required":true},"range_start":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"querypool_connection_mode":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_full_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_connection":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}}},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_password":{"type":"TypeString","optional":true},"encoded_certificate":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","required":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}},"maxItems":10},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"delegation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"subscriptions_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","optional":true},"user_registration_enabled":{"type":"TypeBool","optional":true,"default":false},"validation_key":{"type":"TypeString","optional":true}}},"maxItems":1},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"management_api_url":{"type":"TypeString","computed":true},"min_api_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_sender_email":{"type":"TypeString","optional":true,"computed":true},"policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}}},"maxItems":1},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocols":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_http2":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"publisher_email":{"type":"TypeString","required":true},"publisher_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scm_url":{"type":"TypeString","computed":true},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_backend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls11":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls11":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_gcm_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_gcm_sha384_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"triple_des_ciphers_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"sign_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"sign_up":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"terms_of_service":{"type":"TypeList","required":true,"elem":{"schema":{"consent_required":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","required":true},"text":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"virtual_network_type":{"type":"TypeString","optional":true,"default":"None"},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_type":{"type":"TypeString","optional":true,"computed":true},"contact":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"content_format":{"type":"TypeString","required":true},"content_value":{"type":"TypeString","required":true},"wsdl_selector":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"license":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"oauth2_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization_server_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true}}},"maxItems":1},"openid_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"openid_provider_name":{"type":"TypeString","required":true}}},"maxItems":1},"path":{"type":"TypeString","optional":true,"computed":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision":{"type":"TypeString","required":true,"forceNew":true},"revision_description":{"type":"TypeString","optional":true},"service_url":{"type":"TypeString","optional":true,"computed":true},"soap_pass_through":{"type":"TypeBool","optional":true,"computed":true},"source_api_id":{"type":"TypeString","optional":true},"subscription_key_parameter_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"header":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true}}},"maxItems":1},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"terms_of_service_url":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"computed":true},"version_description":{"type":"TypeString","optional":true},"version_set_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"method":{"type":"TypeString","required":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"query_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"response":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}},"status_code":{"type":"TypeInt","required":true}}}},"template_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"url_template":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_tag":{"schema":{"api_operation_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_release":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"components":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","required":true},"definitions":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_tag":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_api_tag_description":{"schema":{"api_tag_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"external_documentation_description":{"type":"TypeString","optional":true},"external_documentation_url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"version_header_name":{"type":"TypeString","optional":true},"version_query_name":{"type":"TypeString","optional":true},"versioning_scheme":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_authorization_server":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authorization_endpoint":{"type":"TypeString","required":true},"authorization_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_authentication_method":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_registration_endpoint":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"default_scope":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"grant_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_owner_password":{"type":"TypeString","optional":true},"resource_owner_username":{"type":"TypeString","optional":true},"support_state":{"type":"TypeBool","optional":true},"token_body_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"token_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_backend":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"credentials":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","optional":true},"scheme":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"header":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"query":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true},"service_fabric_cluster":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_id":{"type":"TypeString","optional":true,"computed":true},"client_certificate_thumbprint":{"type":"TypeString","optional":true,"computed":true},"management_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"max_partition_resolution_retries":{"type":"TypeInt","required":true},"server_certificate_thumbprints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"server_x509_name":{"type":"TypeSet","optional":true,"elem":{"schema":{"issuer_certificate_thumbprint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"title":{"type":"TypeString","optional":true},"tls":{"type":"TypeList","optional":true,"elem":{"schema":{"validate_certificate_chain":{"type":"TypeBool","optional":true},"validate_certificate_name":{"type":"TypeBool","optional":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_certificate":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"data":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","computed":true},"key_vault_identity_client_id":{"type":"TypeString","optional":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_custom_domain":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_api_management_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_email_template":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true},"template_name":{"type":"TypeString","required":true,"forceNew":true},"title":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location_data":{"type":"TypeList","required":true,"elem":{"schema":{"city":{"type":"TypeString","optional":true},"district":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_api":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_certificate_authority":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"is_trusted":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_id":{"type":"TypeString","required":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"host_name":{"type":"TypeString","required":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request_client_certificate_enabled":{"type":"TypeBool","optional":true},"tls10_enabled":{"type":"TypeBool","optional":true},"tls11_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_global_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"external_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"custom","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aad":{"schema":{"allowed_tenants":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_tenant":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aadb2c":{"schema":{"allowed_tenant":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authority":{"type":"TypeString","required":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"password_reset_policy":{"type":"TypeString","optional":true},"profile_editing_policy":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_policy":{"type":"TypeString","required":true},"signin_tenant":{"type":"TypeString","required":true},"signup_policy":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_facebook":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_google":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_microsoft":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_twitter":{"schema":{"api_key":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_secret_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_logger":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"application_insights":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"instrumentation_key":{"type":"TypeString","required":true}}},"maxItems":1},"buffered":{"type":"TypeBool","optional":true,"default":true},"description":{"type":"TypeString","optional":true},"eventhub":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_named_value":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","optional":true},"value_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"secret_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_notification_recipient_email":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"email":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_notification_recipient_user":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_openid_connect_provider":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"metadata_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_policy":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"approval_required":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"published":{"type":"TypeBool","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"subscriptions_limit":{"type":"TypeInt","optional":true},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_tag":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_management_product_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_redis_cache":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"cache_location":{"type":"TypeString","optional":true,"default":"default"},"connection_string":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_subscription":{"schema":{"allow_tracing":{"type":"TypeBool","optional":true,"default":true},"api_id":{"type":"TypeString","optional":true,"forceNew":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","optional":true,"computed":true},"product_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true,"computed":true},"state":{"type":"TypeString","optional":true,"default":"submitted"},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_tag":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"confirmation":{"type":"TypeString","optional":true,"forceNew":true},"email":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","required":true},"last_name":{"type":"TypeString","required":true},"note":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","optional":true,"computed":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_identifier":{"type":"TypeString","optional":true}}},"maxItems":1},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","optional":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"replica":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","optional":true,"default":"free"},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":7,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_app_configuration_feature":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"percentage_filter_value":{"type":"TypeFloat","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"targeting_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_rollout_percentage":{"type":"TypeInt","required":true},"groups":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"rollout_percentage":{"type":"TypeInt","required":true}}}},"users":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"timewindow_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","optional":true},"start":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"computed":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","required":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"kv"},"value":{"type":"TypeString","optional":true,"computed":true},"vault_key_reference":{"type":"TypeString","optional":true}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true},"frequency_unit":{"type":"TypeString","required":true},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false},"retention_period_in_days":{"type":"TypeInt","optional":true,"default":30},"start_time":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_mode":{"type":"TypeString","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_active_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_slot_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate":{"schema":{"app_service_plan_id":{"type":"TypeString","optional":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hosting_environment_profile_id":{"type":"TypeString","computed":true},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"pfx_blob":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate_binding":{"schema":{"app_service_name":{"type":"TypeString","computed":true},"certificate_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","computed":true},"hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","optional":true,"default":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","optional":true,"computed":true},"distinguished_name":{"type":"TypeString","optional":true,"computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","optional":true,"default":2048},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_type":{"type":"TypeString","optional":true,"default":"Standard"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","optional":true,"default":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_custom_hostname_binding":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_environment":{"schema":{"allowed_user_ip_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"front_end_scale_factor":{"type":"TypeInt","optional":true,"default":15},"internal_ip_address":{"type":"TypeString","computed":true},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","optional":true,"default":"I1"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_ip_address":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","optional":true,"default":true},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dedicated_host_count":{"type":"TypeInt","optional":true,"forceNew":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_hybrid_connection":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","required":true},"relay_id":{"type":"TypeString","required":true,"forceNew":true},"relay_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey"},"send_key_value":{"type":"TypeString","computed":true},"service_bus_namespace":{"type":"TypeString","computed":true},"service_bus_suffix":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_managed_certificate":{"schema":{"canonical_name":{"type":"TypeString","computed":true},"custom_hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"is_xenon":{"type":"TypeBool","optional":true},"kind":{"type":"TypeString","optional":true,"default":"Windows","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling":{"type":"TypeBool","optional":true},"reserved":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"size":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_app_service_public_certificate":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"blob":{"type":"TypeString","required":true,"forceNew":true},"certificate_location":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot_custom_hostname_binding":{"schema":{"app_service_slot_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_slot_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"slot_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_source_control":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows or Linux Web App.","forceNew":true},"branch":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The URL for the repository.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`.","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the App use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `false` to enable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`.","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_slot":{"schema":{"branch":{"type":"TypeString","optional":true,"description":"The URL for the repository","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Linux or Windows Web App Slot.","forceNew":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Slot use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `true` to disable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_gateway":{"schema":{"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"autoscale_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"max_capacity":{"type":"TypeInt","optional":true},"min_capacity":{"type":"TypeInt","required":true}}},"maxItems":1},"backend_address_pool":{"type":"TypeSet","required":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"backend_http_settings":{"type":"TypeSet","required":true,"elem":{"schema":{"affinity_cookie_name":{"type":"TypeString","optional":true},"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"connection_draining":{"type":"TypeList","optional":true,"elem":{"schema":{"drain_timeout_sec":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"cookie_based_affinity":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"pick_host_name_from_backend_address":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","required":true},"probe_id":{"type":"TypeString","computed":true},"probe_name":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"request_timeout":{"type":"TypeInt","optional":true,"default":30},"trusted_root_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"enable_http2":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"force_firewall_policy_association":{"type":"TypeBool","optional":true},"frontend_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"private_link_configuration_id":{"type":"TypeString","computed":true},"private_link_configuration_name":{"type":"TypeString","optional":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"minItems":1},"frontend_port":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true}}}},"gateway_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":2},"global":{"type":"TypeList","optional":true,"elem":{"schema":{"request_buffering_enabled":{"type":"TypeBool","required":true},"response_buffering_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"http_listener":{"type":"TypeSet","required":true,"elem":{"schema":{"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"firewall_policy_id":{"type":"TypeString","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_id":{"type":"TypeString","computed":true},"frontend_port_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"require_sni":{"type":"TypeBool","optional":true},"ssl_certificate_id":{"type":"TypeString","computed":true},"ssl_certificate_name":{"type":"TypeString","optional":true},"ssl_profile_id":{"type":"TypeString","computed":true},"ssl_profile_name":{"type":"TypeString","optional":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_link_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true}}}},"probe":{"type":"TypeSet","optional":true,"elem":{"schema":{"host":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"interval":{"type":"TypeInt","required":true},"match":{"type":"TypeList","optional":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"status_code":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"minimum_servers":{"type":"TypeInt","optional":true,"default":0},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"pick_host_name_from_backend_http_settings":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","optional":true},"protocol":{"type":"TypeString","required":true},"timeout":{"type":"TypeInt","required":true},"unhealthy_threshold":{"type":"TypeInt","required":true}}}},"redirect_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"include_path":{"type":"TypeBool","optional":true,"default":false},"include_query_string":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true},"target_listener_id":{"type":"TypeString","computed":true},"target_listener_name":{"type":"TypeString","optional":true},"target_url":{"type":"TypeString","optional":true}}}},"request_routing_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"http_listener_id":{"type":"TypeString","computed":true},"http_listener_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true},"rule_type":{"type":"TypeString","required":true},"url_path_map_id":{"type":"TypeString","computed":true},"url_path_map_name":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rewrite_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"rewrite_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"ignore_case":{"type":"TypeBool","optional":true,"default":false},"negate":{"type":"TypeBool","optional":true,"default":false},"pattern":{"type":"TypeString","required":true},"variable":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"request_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"response_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"rule_sequence":{"type":"TypeInt","required":true},"url":{"type":"TypeList","optional":true,"elem":{"schema":{"components":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","optional":true},"query_string":{"type":"TypeString","optional":true},"reroute":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"ssl_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"ssl_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"ssl_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"ssl_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"trusted_client_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verify_client_cert_issuer_dn":{"type":"TypeBool","optional":true,"default":false},"verify_client_certificate_revocation":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_client_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"trusted_root_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"url_path_map":{"type":"TypeList","optional":true,"elem":{"schema":{"default_backend_address_pool_id":{"type":"TypeString","computed":true},"default_backend_address_pool_name":{"type":"TypeString","optional":true},"default_backend_http_settings_id":{"type":"TypeString","computed":true},"default_backend_http_settings_name":{"type":"TypeString","optional":true},"default_redirect_configuration_id":{"type":"TypeString","computed":true},"default_redirect_configuration_name":{"type":"TypeString","optional":true},"default_rewrite_rule_set_id":{"type":"TypeString","computed":true},"default_rewrite_rule_set_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"paths":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true}}}}}}},"waf_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group_name":{"type":"TypeString","required":true},"rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}}}}},"enabled":{"type":"TypeBool","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"selector_match_operator":{"type":"TypeString","optional":true}}}},"file_upload_limit_mb":{"type":"TypeInt","optional":true,"default":100},"firewall_mode":{"type":"TypeString","required":true},"max_request_body_size_kb":{"type":"TypeInt","optional":true,"default":128},"request_body_check":{"type":"TypeBool","optional":true,"default":true},"rule_set_type":{"type":"TypeString","optional":true,"default":"OWASP"},"rule_set_version":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","required":true,"forceNew":true},"connection_string":{"type":"TypeString","computed":true},"daily_data_cap_in_gb":{"type":"TypeFloat","optional":true,"computed":true},"daily_data_cap_notifications_disabled":{"type":"TypeBool","optional":true,"computed":true},"disable_ip_masking":{"type":"TypeBool","optional":true,"default":false},"force_customer_storage_for_profiler":{"type":"TypeBool","optional":true,"default":false},"instrumentation_key":{"type":"TypeString","computed":true},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":90},"sampling_percentage":{"type":"TypeFloat","optional":true,"default":100},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_application_insights_analytics_item":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","required":true},"function_alias":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"time_created":{"type":"TypeString","computed":true},"time_modified":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_api_key":{"schema":{"api_key":{"type":"TypeString","computed":true},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"write_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_smart_detection_rule":{"schema":{"additional_email_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"send_emails_to_subscription_owners":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_standard_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","required":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"follow_redirects_enabled":{"type":"TypeBool","optional":true,"default":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"http_verb":{"type":"TypeString","optional":true,"default":"GET"},"parse_dependent_requests_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30},"validation_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"content":{"type":"TypeList","optional":true,"elem":{"schema":{"content_match":{"type":"TypeString","required":true},"ignore_case":{"type":"TypeBool","optional":true,"default":false},"pass_if_text_found":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"expected_status_code":{"type":"TypeInt","optional":true,"default":200},"ssl_cert_remaining_lifetime":{"type":"TypeInt","optional":true},"ssl_check_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"configuration":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook":{"schema":{"category":{"type":"TypeString","optional":true,"default":"workbook"},"data_json":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_id":{"type":"TypeString","optional":true,"default":"azure monitor"},"storage_container_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook_template":{"schema":{"author":{"type":"TypeString","optional":true},"galleries":{"type":"TypeList","required":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","optional":true,"default":0},"resource_type":{"type":"TypeString","optional":true,"default":"Azure Monitor"},"type":{"type":"TypeString","optional":true,"default":"workbook"}}},"minItems":1},"localized":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_data":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster":{"schema":{"agent_public_key_certificate":{"type":"TypeString","required":true,"forceNew":true},"agent_version":{"type":"TypeString","computed":true},"distribution":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"infrastructure":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"offering":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"total_core_count":{"type":"TypeInt","computed":true},"total_node_count":{"type":"TypeInt","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster_extension":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_machine_extension":{"schema":{"arc_machine_id":{"type":"TypeString","required":true,"forceNew":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true,"default":true},"force_update_tag":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_private_link_scope":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_resource_bridge_appliance":{"schema":{"distro":{"type":"TypeString","required":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"infrastructure_provider":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_key_base64":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"open_enclave_policy_base64":{"type":"TypeString","optional":true},"policy":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"environment_type":{"type":"TypeString","optional":true}}}},"policy_signing_certificate_data":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sev_snp_policy_base64":{"type":"TypeString","optional":true},"sgx_enclave_policy_base64":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tpm_policy_base64":{"type":"TypeString","optional":true},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automanage_configuration":{"schema":{"antimalware":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusions":{"type":"TypeList","optional":true,"elem":{"schema":{"extensions":{"type":"TypeString","optional":true},"paths":{"type":"TypeString","optional":true},"processes":{"type":"TypeString","optional":true}}},"maxItems":1},"real_time_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_day":{"type":"TypeInt","optional":true,"default":8},"scheduled_scan_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_time_in_minutes":{"type":"TypeInt","optional":true,"default":0},"scheduled_scan_type":{"type":"TypeString","optional":true,"default":"Quick"}}},"maxItems":1},"automation_account_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_security_baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true,"default":"ApplyAndAutoCorrect"}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"instant_rp_retention_range_in_days":{"type":"TypeInt","optional":true,"default":5},"policy_name":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"daily_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Days"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_policy_type":{"type":"TypeString","optional":true,"default":"LongTermRetentionPolicy"},"weekly_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Weeks"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"schedule_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule_policy_type":{"type":"TypeString","optional":true,"default":"SimpleSchedulePolicy"},"schedule_run_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"schedule_run_frequency":{"type":"TypeString","optional":true,"default":"Daily"},"schedule_run_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"boot_diagnostics_enabled":{"type":"TypeBool","optional":true,"default":false},"defender_for_cloud_enabled":{"type":"TypeBool","optional":true,"default":false},"guest_configuration_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status_change_alert_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_account":{"schema":{"dsc_primary_access_key":{"type":"TypeString","computed":true},"dsc_secondary_access_key":{"type":"TypeString","computed":true},"dsc_server_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"key_source":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"base64":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"exportable":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"values":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"automation_certificate_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_classic_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_asset_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"subscription_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_service_principal":{"schema":{"application_id":{"type":"TypeString","required":true},"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_thumbprint":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_type":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"field":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"is_encrypted":{"type":"TypeBool","optional":true},"is_optional":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"is_global":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_credential":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_configuration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_embedded":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_verbose":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_nodeconfiguration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"configuration_name":{"type":"TypeString","computed":true},"content_embedded":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_hybrid_runbook_worker":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"ip":{"type":"TypeString","computed":true},"last_seen_date_time":{"type":"TypeString","computed":true},"registration_date_time":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"worker_group_name":{"type":"TypeString","required":true,"forceNew":true},"worker_id":{"type":"TypeString","required":true,"forceNew":true},"worker_name":{"type":"TypeString","computed":true},"worker_type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_hybrid_runbook_worker_group":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"credential_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_job_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"job_schedule_id":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on":{"type":"TypeString","optional":true,"forceNew":true},"runbook_name":{"type":"TypeString","required":true,"forceNew":true},"schedule_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_module":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"module_link":{"type":"TypeList","required":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_python3_package":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_uri":{"type":"TypeString","required":true,"forceNew":true},"content_version":{"type":"TypeString","optional":true,"forceNew":true},"hash_algorithm":{"type":"TypeString","optional":true,"forceNew":true},"hash_value":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_runbook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","optional":true,"computed":true},"description":{"type":"TypeString","optional":true},"draft":{"type":"TypeList","optional":true,"elem":{"schema":{"content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"creation_time":{"type":"TypeString","computed":true},"edit_mode_enabled":{"type":"TypeBool","optional":true},"last_modified_time":{"type":"TypeString","computed":true},"output_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true},"mandatory":{"type":"TypeBool","optional":true,"default":false},"position":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"job_schedule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"job_schedule_id":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_on":{"type":"TypeString","optional":true},"schedule_name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_activity_trace_level":{"type":"TypeInt","optional":true},"log_progress":{"type":"TypeBool","required":true},"log_verbose":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"runbook_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true,"computed":true},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"timezone":{"type":"TypeString","optional":true,"default":"Etc/UTC"},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_software_update_configuration":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"duration":{"type":"TypeString","optional":true,"default":"PT2H"},"error_code":{"type":"TypeString","computed":true},"error_meesage":{"type":"TypeString","computed":true},"error_message":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"non_azure_computer_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operating_system":{"type":"TypeString","optional":true,"computed":true},"post_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"pre_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"advanced_month_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"advanced_week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"creation_time":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"expiry_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"is_enabled":{"type":"TypeBool","optional":true,"default":true},"last_modified_time":{"type":"TypeString","computed":true},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}},"maxItems":1},"next_run":{"type":"TypeString","optional":true,"computed":true},"next_run_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"start_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true,"default":"Etc/UTC"}}},"maxItems":1},"target":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"locations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tag_filter":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeList","optional":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}}},"non_azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"function_alias":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_machine_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_automation_source_control":{"schema":{"automatic_sync":{"type":"TypeBool","optional":true,"default":false},"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"branch":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"folder_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_runbook_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_url":{"type":"TypeString","required":true},"security":{"type":"TypeList","required":true,"elem":{"schema":{"refresh_token":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"source_control_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_watcher":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"etag":{"type":"TypeString","optional":true},"execution_frequency_in_seconds":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script_name":{"type":"TypeString","required":true,"forceNew":true},"script_parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"script_run_on":{"type":"TypeString","required":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_webhook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiry_time":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on_worker_group":{"type":"TypeString","optional":true},"runbook_name":{"type":"TypeString","required":true},"uri":{"type":"TypeString","configMode":"Auto","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"default":3,"forceNew":true},"platform_update_domain_count":{"type":"TypeInt","optional":true,"default":5,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_container_storage_account":{"schema":{"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_file_share":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hourly":{"type":"TypeList","optional":true,"elem":{"schema":{"interval":{"type":"TypeInt","required":true},"start_time":{"type":"TypeString","required":true},"window_duration":{"type":"TypeInt","required":true}}},"maxItems":1},"time":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","required":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hour_duration":{"type":"TypeInt","optional":true},"hour_interval":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","required":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instant_restore_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prefix":{"type":"TypeString","required":true},"suffix":{"type":"TypeString","optional":true}}},"maxItems":1},"instant_restore_retention_days":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_type":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm_workload":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"protection_policy":{"type":"TypeSet","required":true,"elem":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","optional":true},"frequency_in_minutes":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","optional":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"policy_type":{"type":"TypeString","required":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"simple_retention":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1}}}},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeList","required":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1},"workload_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_protected_file_share":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_file_share_name":{"type":"TypeString","required":true,"forceNew":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":80,"read":5,"delete":80,"update":80}},"azurerm_backup_protected_vm":{"schema":{"backup_policy_id":{"type":"TypeString","optional":true},"exclude_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"protection_state":{"type":"TypeString","optional":true,"computed":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":80,"update":120}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","optional":true,"default":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ip_connect_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","optional":true,"default":2},"shareable_link_enabled":{"type":"TypeBool","optional":true,"default":false},"sku":{"type":"TypeString","optional":true,"default":"Basic"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"allowed_authentication_modes":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"account_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1},"node_management_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1}}},"maxItems":1},"pool_allocation_mode":{"type":"TypeString","optional":true,"default":"BatchService"},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_authentication_mode":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_account_node_identity":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"allow_updates":{"type":"TypeBool","optional":true,"default":true},"default_version":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate":{"type":"TypeString","required":true},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","optional":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","required":true,"forceNew":true},"thumbprint_algorithm":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_job":{"schema":{"batch_pool_id":{"type":"TypeString","required":true,"forceNew":true},"common_environment_properties":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"task_retry_maximum":{"type":"TypeInt","optional":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","optional":true,"default":"PT15M"},"formula":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"store_location":{"type":"TypeString","required":true},"store_name":{"type":"TypeString","optional":true},"visibility":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"type":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"data_disks":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"default":"ReadOnly"},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","required":true}}}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"extensions":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","optional":true}}}},"fixed_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"node_deallocation_method":{"type":"TypeString","optional":true},"resize_timeout":{"type":"TypeString","optional":true,"default":"PT15M"},"target_dedicated_nodes":{"type":"TypeInt","optional":true,"default":1},"target_low_priority_nodes":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inter_node_communication":{"type":"TypeString","optional":true,"default":"Enabled"},"license_type":{"type":"TypeString","optional":true},"max_tasks_per_node":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"account_name":{"type":"TypeString","required":true},"blobfuse_options":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"identity_id":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"sas_key":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"azure_file_url":{"type":"TypeString","required":true},"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true}}}},"cifs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"nfs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"dynamic_vnet_assignment_scope":{"type":"TypeString","optional":true,"default":"none","forceNew":true},"endpoint_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port_range":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"access":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","required":true,"forceNew":true},"source_port_ranges":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString","default":"*"}}}}},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"public_address_provisioning_type":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"node_agent_sku_id":{"type":"TypeString","required":true,"forceNew":true},"node_placement":{"type":"TypeList","optional":true,"elem":{"schema":{"policy":{"type":"TypeString","optional":true,"default":"Regional"}}}},"os_disk_placement":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_task":{"type":"TypeList","optional":true,"elem":{"schema":{"command_line":{"type":"TypeString","required":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"run_options":{"type":"TypeString","optional":true},"working_directory":{"type":"TypeString","optional":true}}}},"resource_file":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","optional":true},"blob_prefix":{"type":"TypeString","optional":true},"file_mode":{"type":"TypeString","optional":true},"file_path":{"type":"TypeString","optional":true},"http_url":{"type":"TypeString","optional":true},"storage_container_url":{"type":"TypeString","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"task_retry_maximum":{"type":"TypeInt","optional":true},"user_identity":{"type":"TypeList","required":true,"elem":{"schema":{"auto_user":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","optional":true,"default":"NonAdmin"},"scope":{"type":"TypeString","optional":true,"default":"Task"}}},"maxItems":1},"user_name":{"type":"TypeString","optional":true}}},"maxItems":1},"wait_for_success":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"stop_pending_resize_operation":{"type":"TypeBool","optional":true,"default":false},"storage_image_reference":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"target_node_communication_mode":{"type":"TypeString","optional":true},"task_scheduling_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","optional":true,"computed":true}}}},"user_accounts":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","required":true},"linux_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gid":{"type":"TypeInt","optional":true},"ssh_private_key":{"type":"TypeString","optional":true},"uid":{"type":"TypeInt","optional":true}}}},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"windows_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}}}}}},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_billing_account_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"billing_account_id":{"type":"TypeString","required":true,"forceNew":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_blueprint_assignment":{"schema":{"blueprint_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_exclude_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":200},"lock_exclude_principals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"lock_mode":{"type":"TypeString","optional":true,"default":"None"},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeString","optional":true},"target_subscription_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","computed":true},"version_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_bot_channel_alexa":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skill_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_direct_line_speech":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"cognitive_account_id":{"type":"TypeString","optional":true},"cognitive_service_access_key":{"type":"TypeString","required":true},"cognitive_service_location":{"type":"TypeString","required":true},"custom_speech_model_id":{"type":"TypeString","optional":true},"custom_voice_deployment_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_directline":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site":{"type":"TypeSet","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_parameters_enabled":{"type":"TypeBool","optional":true},"enhanced_authentication_enabled":{"type":"TypeBool","optional":true,"default":false},"id":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key2":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"storage_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"user_upload_enabled":{"type":"TypeBool","optional":true,"default":true},"v1_allowed":{"type":"TypeBool","optional":true,"default":true},"v3_allowed":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_email":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"email_address":{"type":"TypeString","required":true},"email_password":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_facebook":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"facebook_application_id":{"type":"TypeString","required":true},"facebook_application_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"page":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_line":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"line_channel":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"secret":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_ms_teams":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"calling_web_hook":{"type":"TypeString","optional":true,"computed":true},"deployment_environment":{"type":"TypeString","optional":true,"default":"CommercialDeployment"},"enable_calling":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_slack":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"landing_page_url":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signing_secret":{"type":"TypeString","optional":true},"verification_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_sms":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sms_channel_account_security_id":{"type":"TypeString","required":true},"sms_channel_auth_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_web_chat":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"endpoint_parameters_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"storage_enabled":{"type":"TypeBool","optional":true,"default":true},"user_upload_enabled":{"type":"TypeBool","optional":true,"default":true}}}},"site_names":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channels_registration":{"schema":{"cmk_key_vault_url":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"icon_url":{"type":"TypeString","optional":true,"computed":true},"isolated_network_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_connection":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeString","optional":true},"service_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_service_azure_bot":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true},"developer_app_insights_key":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_msi_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_type":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_web_app":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint":{"schema":{"content_types_to_compress":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"post_arg_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}}},"fqdn":{"type":"TypeString","computed":true},"geo_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"country_codes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"relative_path":{"type":"TypeString","required":true}}}},"global_delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_compression_enabled":{"type":"TypeBool","optional":true},"is_http_allowed":{"type":"TypeBool","optional":true,"default":true},"is_https_allowed":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimization_type":{"type":"TypeString","optional":true},"origin":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true,"forceNew":true},"http_port":{"type":"TypeInt","optional":true,"default":80,"forceNew":true},"https_port":{"type":"TypeInt","optional":true,"default":443,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"origin_host_header":{"type":"TypeString","optional":true},"origin_path":{"type":"TypeString","optional":true,"computed":true},"probe_path":{"type":"TypeString","optional":true,"computed":true},"profile_name":{"type":"TypeString","required":true,"forceNew":true},"querystring_caching_behaviour":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint_custom_domain":{"schema":{"cdn_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_type":{"type":"TypeString","required":true},"protocol_type":{"type":"TypeString","required":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"user_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","optional":true,"computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"computed":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"dns_zone_id":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tls":{"type":"TypeList","required":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","optional":true,"computed":true},"certificate_type":{"type":"TypeString","optional":true,"default":"ManagedCertificate"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain_association":{"schema":{"cdn_frontdoor_custom_domain_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_route_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin":{"schema":{"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name_check_enabled":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","optional":true,"computed":true},"health_probes_enabled":{"type":"TypeBool","optional":true,"computed":true},"host_name":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","optional":true,"default":80},"https_port":{"type":"TypeInt","optional":true,"default":443},"name":{"type":"TypeString","required":true,"forceNew":true},"origin_host_header":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","optional":true,"default":1},"private_link":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"private_link_target_id":{"type":"TypeString","required":true},"request_message":{"type":"TypeString","optional":true,"default":"Access request for CDN FrontDoor Private Link Origin"},"target_type":{"type":"TypeString","optional":true}}},"maxItems":1},"weight":{"type":"TypeInt","optional":true,"default":500}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"health_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"protocol":{"type":"TypeString","required":true},"request_type":{"type":"TypeString","optional":true,"default":"HEAD"}}},"maxItems":1},"load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","optional":true,"default":50},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","optional":true,"default":10},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","optional":true,"default":120},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route":{"schema":{"cache":{"type":"TypeList","optional":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"content_types_to_compress":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"query_string_caching_behavior":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"query_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"cdn_frontdoor_custom_domain_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true},"cdn_frontdoor_origin_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_origin_path":{"type":"TypeString","optional":true},"cdn_frontdoor_rule_set_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"https_redirect_enabled":{"type":"TypeBool","optional":true,"default":true},"link_to_default_domain":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"supported_protocols":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route_disable_link_to_default_domain":{"schema":{"cdn_frontdoor_custom_domain_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_route_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"route_configuration_override_action":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_behavior":{"type":"TypeString","optional":true},"cache_duration":{"type":"TypeString","optional":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","optional":true},"compression_enabled":{"type":"TypeBool","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true},"query_string_caching_behavior":{"type":"TypeString","optional":true},"query_string_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":100}}},"maxItems":1},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_fragment":{"type":"TypeString","optional":true,"default":""},"destination_hostname":{"type":"TypeString","required":true},"destination_path":{"type":"TypeString","optional":true,"default":""},"query_string":{"type":"TypeString","optional":true,"default":""},"redirect_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":false},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"behavior_on_match":{"type":"TypeString","optional":true,"default":"Continue"},"cdn_frontdoor_rule_set_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_rule_set_name":{"type":"TypeString","computed":true},"conditions":{"type":"TypeList","optional":true,"elem":{"schema":{"client_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"cookie_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"host_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":4},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"is_device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"post_args_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"post_args_name":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString","default":"HTTP"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"server_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"socket_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"ssl_protocol_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":3},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_filename_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_profile_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_frontdoor_security_policy":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"security_policies":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"firewall":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"association":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"domain":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"active":{"type":"TypeBool","computed":true},"cdn_frontdoor_domain_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":500},"patterns_to_match":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}}},"maxItems":1},"cdn_frontdoor_firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account":{"schema":{"custom_question_answering_search_service_id":{"type":"TypeString","optional":true},"custom_question_answering_search_service_key":{"type":"TypeString","optional":true},"custom_subdomain_name":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"dynamic_throttling_enabled":{"type":"TypeBool","optional":true},"endpoint":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metrics_advisor_aad_client_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_aad_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_super_user_name":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_website_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"qna_runtime_endpoint":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"storage":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account_customer_managed_key":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_deployment":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"model":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"format":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"rai_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"scale":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"family":{"type":"TypeString","optional":true,"forceNew":true},"size":{"type":"TypeString","optional":true,"forceNew":true},"tier":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","optional":true,"default":"United States","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","required":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"minItems":1},"certificate_based_security_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"pem_public_key":{"type":"TypeString","required":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_management_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to host this Container App.","forceNew":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The Dapr Application Identifier."},"app_port":{"type":"TypeInt","optional":true,"description":"The port which the application is listening on. This is the same as the `ingress` port."},"app_protocol":{"type":"TypeString","optional":true,"default":"http","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`."}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","optional":true,"default":false,"description":"Should this ingress allow insecure connections?"},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","optional":true,"default":"Disabled","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`"},"certificate_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate."}}},"maxItems":1},"external_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Is this an external Ingress."},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","required":true,"description":"The target port on the container for the Ingress traffic."},"traffic_weight":{"type":"TypeList","required":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"description":"The label to apply to the revision as a name prefix for routing traffic."},"latest_revision":{"type":"TypeBool","optional":true,"default":false,"description":"This traffic Weight relates to the latest stable Container Revision."},"percentage":{"type":"TypeInt","required":true,"description":"The percentage of traffic to send to this revision."},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted."}}}},"transport":{"type":"TypeString","optional":true,"default":"auto","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`"}}},"maxItems":1},"latest_revision_fqdn":{"type":"TypeString","description":"The FQDN of the Latest Revision of the Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"The name for this Container App.","forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true,"description":"ID of the System or User Managed Identity used to pull images from the Container Registry"},"password_secret_name":{"type":"TypeString","optional":true,"description":"The name of the Secret Reference containing the password value for this user on the Container Registry."},"server":{"type":"TypeString","required":true,"description":"The hostname for the Container Registry."},"username":{"type":"TypeString","optional":true,"description":"The username to use for this Container Registry."}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision_mode":{"type":"TypeString","required":true},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","required":true,"elem":{"schema":{"azure_queue_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"secret_name":{"type":"TypeString","required":true},"trigger_parameter":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true},"queue_length":{"type":"TypeInt","required":true},"queue_name":{"type":"TypeString","required":true}}}},"container":{"type":"TypeList","required":true,"elem":{"schema":{"args":{"type":"TypeList","optional":true,"description":"A list of args to pass to the container.","elem":{"type":"TypeString"}},"command":{"type":"TypeList","optional":true,"description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`"},"env":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the environment variable for the container."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of the secret that contains the value for this environment variable."},"value":{"type":"TypeString","optional":true,"description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used"}}},"minItems":1},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","required":true,"description":"The image to use to create the container."},"liveness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"initial_delay":{"type":"TypeInt","optional":true,"default":1,"description":"The time in seconds to wait after the container has started before the probe is started."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"memory":{"type":"TypeString","required":true,"description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`"},"name":{"type":"TypeString","required":true,"description":"The name of the container."},"readiness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"success_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`."},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"startup_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"volume_mounts":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Volume to be mounted in the container."},"path":{"type":"TypeString","required":true,"description":"The path in the container at which to mount this volume."}}}}}},"minItems":1},"custom_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_name":{"type":"TypeString","required":true},"trigger_parameter":{"type":"TypeString","required":true}}},"minItems":1},"custom_rule_type":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"http_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_name":{"type":"TypeString","required":true},"trigger_parameter":{"type":"TypeString","optional":true}}},"minItems":1},"concurrent_requests":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"max_replicas":{"type":"TypeInt","optional":true,"default":10,"description":"The maximum number of replicas for this container."},"min_replicas":{"type":"TypeInt","optional":true,"description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"tcp_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_name":{"type":"TypeString","required":true},"trigger_parameter":{"type":"TypeString","optional":true}}},"minItems":1},"concurrent_requests":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment":{"schema":{"dapr_application_insights_connection_string":{"type":"TypeString","optional":true,"description":"Application Insights connection string used by Dapr to export Service to Service communication telemetry.","forceNew":true},"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","optional":true,"description":"The existing Subnet to use for the Container Apps Control Plane. **NOTE:** The Subnet must have a `/21` or larger address space.","forceNew":true},"internal_load_balancer_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Container Environment operate in Internal Load Balancing Mode? Defaults to `false`. **Note:** can only be set to `true` if `infrastructure_subnet_id` is specified.","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true,"description":"The ID for the Log Analytics Workspace to link this Container Apps Managed Environment to.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment.","forceNew":true},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_certificate":{"schema":{"certificate_blob_base64":{"type":"TypeString","required":true,"description":"The Certificate Private Key as a base64 encoded PFX or PEM.","forceNew":true},"certificate_password":{"type":"TypeString","required":true,"description":"The password for the Certificate.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Environment Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_dapr_component":{"schema":{"component_type":{"type":"TypeString","required":true,"description":"The Dapr Component Type. For example `state.azure.blobstorage`.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Dapr component on.","forceNew":true},"ignore_errors":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Dapr sidecar to continue initialisation if the component fails to load. Defaults to `false`"},"init_timeout":{"type":"TypeString","optional":true,"default":"5s","description":"The component initialisation timeout in ISO8601 format. e.g. `5s`, `2h`, `1m`. Defaults to `5s`."},"metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Metadata configuration item."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of a secret specified in the `secrets` block that contains the value for this metadata configuration item."},"value":{"type":"TypeString","optional":true,"description":"The value for this metadata configuration item."}}},"minItems":1},"name":{"type":"TypeString","required":true,"description":"The name for this Dapr Component.","forceNew":true},"scopes":{"type":"TypeList","optional":true,"description":"A list of scopes to which this component applies. e.g. a Container App's `dapr.app_id` value.","elem":{"type":"TypeString"},"minItems":1},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"version":{"type":"TypeString","required":true,"description":"The version of the component."}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_storage":{"schema":{"access_key":{"type":"TypeString","required":true,"description":"The Storage Account Access Key."},"access_mode":{"type":"TypeString","required":true,"description":"The access mode to connect this storage to the Container App. Possible values include `ReadOnly` and `ReadWrite`.","forceNew":true},"account_name":{"type":"TypeString","required":true,"description":"The Azure Storage Account in which the Share to be used is located.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to which this storage belongs.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name for this Storage.","forceNew":true},"share_name":{"type":"TypeString","required":true,"description":"The name of the Azure Storage Share to use.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_connected_registry":{"schema":{"audit_log_enabled":{"type":"TypeBool","optional":true,"default":false},"client_token_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"log_level":{"type":"TypeString","optional":true,"default":"None"},"mode":{"type":"TypeString","optional":true,"default":"ReadWrite","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"digest":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tag":{"type":"TypeString","optional":true}}}},"parent_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"sync_message_ttl":{"type":"TypeString","optional":true,"default":"P1D"},"sync_schedule":{"type":"TypeString","optional":true,"default":"* * * * *"},"sync_token_id":{"type":"TypeString","required":true,"forceNew":true},"sync_window":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_group":{"schema":{"container":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"forceNew":true},"cpu_limit":{"type":"TypeFloat","optional":true},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"gpu":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"gpu_limit":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"sku":{"type":"TypeString","optional":true}}},"maxItems":1},"image":{"type":"TypeString","required":true,"forceNew":true},"liveness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"memory":{"type":"TypeFloat","required":true,"forceNew":true},"memory_limit":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ports":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"readiness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"diagnostics":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"log_analytics":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"log_type":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_key":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"dns_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"nameservers":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"options":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"search_domains":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"dns_name_label":{"type":"TypeString","optional":true,"forceNew":true},"dns_name_label_reuse_policy":{"type":"TypeString","optional":true,"default":"Unsecure"},"exposed_port":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_registry_credential":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"username":{"type":"TypeString","optional":true,"forceNew":true}}}},"init_container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"ip_address":{"type":"TypeString","computed":true},"ip_address_type":{"type":"TypeString","optional":true,"default":"Public","forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"key_vault_user_assigned_identity_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile_id":{"type":"TypeString","optional":true,"computed":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restart_policy":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"subnet_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"anonymous_pull_enabled":{"type":"TypeBool","optional":true},"data_endpoint_enabled":{"type":"TypeBool","optional":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"identity_client_id":{"type":"TypeString","required":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"georeplications":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true},"regional_endpoint_enabled":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_bypass_option":{"type":"TypeString","optional":true,"default":"AzureServices"},"network_rule_set":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_range":{"type":"TypeString","required":true}}}},"virtual_network":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"quarantine_policy_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trust_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_agent_pool":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"default":"S1","forceNew":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task":{"schema":{"agent_pool_name":{"type":"TypeString","optional":true},"agent_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"cpu":{"type":"TypeInt","required":true}}},"maxItems":1},"base_image_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"update_trigger_endpoint":{"type":"TypeString","optional":true},"update_trigger_payload_type":{"type":"TypeString","optional":true}}},"maxItems":1},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"docker_step":{"type":"TypeList","optional":true,"elem":{"schema":{"arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"cache_enabled":{"type":"TypeBool","optional":true,"default":true},"context_access_token":{"type":"TypeString","required":true},"context_path":{"type":"TypeString","required":true},"dockerfile_path":{"type":"TypeString","required":true},"image_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"push_enabled":{"type":"TypeBool","optional":true,"default":true},"secret_arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target":{"type":"TypeString","optional":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"encoded_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_content":{"type":"TypeString","required":true},"value_content":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"file_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_file_path":{"type":"TypeString","required":true},"value_file_path":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"is_system_task":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"log_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"architecture":{"type":"TypeString","optional":true},"os":{"type":"TypeString","required":true},"variant":{"type":"TypeString","optional":true}}},"maxItems":1},"registry_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"custom":{"type":"TypeSet","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"username":{"type":"TypeString","optional":true}}}},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"source_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"expire_in_seconds":{"type":"TypeInt","optional":true},"refresh_token":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"repository_url":{"type":"TypeString","required":true},"source_type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":3600},"timer_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task_schedule_run_now":{"schema":{"container_registry_task_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_map_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_token_password":{"schema":{"container_registry_token_id":{"type":"TypeString","required":true,"forceNew":true},"password1":{"type":"TypeList","required":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1},"password2":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_webhook":{"schema":{"actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"custom_headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"registry_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":""},"service_uri":{"type":"TypeString","required":true},"status":{"type":"TypeString","optional":true,"default":"enabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_account":{"schema":{"access_key_metadata_writes_enabled":{"type":"TypeBool","optional":true,"default":true},"analytical_storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"schema_type":{"type":"TypeString","required":true}}},"maxItems":1},"analytical_storage_enabled":{"type":"TypeBool","optional":true,"default":false},"backup":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"interval_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"retention_in_hours":{"type":"TypeInt","optional":true,"computed":true},"storage_redundancy":{"type":"TypeString","optional":true,"computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"capabilities":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}},"capacity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"total_throughput_limit":{"type":"TypeInt","required":true}}},"maxItems":1},"connection_strings":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"consistency_policy":{"type":"TypeList","required":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","required":true},"max_interval_in_seconds":{"type":"TypeInt","optional":true,"computed":true},"max_staleness_prefix":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"create_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"default_identity_type":{"type":"TypeString","optional":true,"default":"FirstPartyIdentity"},"enable_automatic_failover":{"type":"TypeBool","optional":true,"default":false},"enable_free_tier":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"enable_multiple_write_locations":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeSet","required":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","required":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_range_filter":{"type":"TypeString","optional":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"kind":{"type":"TypeString","optional":true,"default":"GlobalDocumentDB","forceNew":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"mongo_server_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acl_bypass_for_azure_services":{"type":"TypeBool","optional":true,"default":false},"network_acl_bypass_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"offer_type":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"primary_mongodb_connection_string":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"primary_readonly_mongodb_connection_string":{"type":"TypeString","computed":true},"primary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"primary_sql_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"elem":{"schema":{"database":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"collection_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"restore_timestamp_in_utc":{"type":"TypeString","required":true,"forceNew":true},"source_cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"secondary_key":{"type":"TypeString","computed":true},"secondary_mongodb_connection_string":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"secondary_readonly_mongodb_connection_string":{"type":"TypeString","computed":true},"secondary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"secondary_sql_connection_string":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_cassandra_cluster":{"schema":{"authentication_method":{"type":"TypeString","optional":true,"default":"Cassandra"},"client_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_admin_password":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"external_gossip_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"external_seed_node_ip_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"hours_between_backups":{"type":"TypeInt","optional":true,"default":24},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repair_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"3.11","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_datacenter":{"schema":{"availability_zones_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_storage_customer_key_uri":{"type":"TypeString","optional":true},"base64_encoded_yaml_fragment":{"type":"TypeString","optional":true},"cassandra_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"disk_count":{"type":"TypeInt","optional":true},"disk_sku":{"type":"TypeString","optional":true,"default":"P30"},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_customer_key_uri":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"default":3},"sku_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_cosmosdb_cassandra_keyspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_table":{"schema":{"analytical_storage_ttl":{"type":"TypeInt","optional":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cassandra_keyspace_id":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schema":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_key":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"order_by":{"type":"TypeString","required":true}}}},"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"partition_key":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_graph":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"index_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"automatic":{"type":"TypeBool","optional":true,"default":true},"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"included_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"indexing_mode":{"type":"TypeString","required":true},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_collection":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl_seconds":{"type":"TypeInt","optional":true},"index":{"type":"TypeSet","optional":true,"elem":{"schema":{"keys":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","optional":true,"default":false}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shard_key":{"type":"TypeString","optional":true,"forceNew":true},"system_indexes":{"type":"TypeList","computed":true,"elem":{"schema":{"keys":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","computed":true}}}},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_role_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"privilege":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource":{"type":"TypeList","required":true,"elem":{"schema":{"collection_name":{"type":"TypeString","optional":true},"db_name":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"role_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_user_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_notebook_workspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_endpoint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_postgresql_cluster":{"schema":{"administrator_login_password":{"type":"TypeString","required":true},"citus_version":{"type":"TypeString","optional":true,"computed":true},"coordinator_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":true},"coordinator_server_edition":{"type":"TypeString","optional":true,"default":"GeneralPurpose"},"coordinator_storage_quota_in_mb":{"type":"TypeInt","required":true},"coordinator_vcore_count":{"type":"TypeInt","required":true},"earliest_restore_time":{"type":"TypeString","computed":true},"ha_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","required":true},"node_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":false},"node_server_edition":{"type":"TypeString","optional":true,"default":"MemoryOptimized"},"node_storage_quota_in_mb":{"type":"TypeInt","optional":true,"computed":true},"node_vcores":{"type":"TypeInt","optional":true,"computed":true},"point_in_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"preferred_primary_zone":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shards_on_coordinator_enabled":{"type":"TypeBool","optional":true,"computed":true},"source_location":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"sql_version":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_postgresql_coordinator_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_firewall_rule":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_node_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_role":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_sql_container":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"indexing_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"included_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"indexing_mode":{"type":"TypeString","optional":true,"default":"consistent"},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_dedicated_gateway":{"schema":{"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","required":true},"instance_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_function":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_assignment":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"assignable_scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeSet","required":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"CustomRole","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_stored_procedure":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_trigger":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operation":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_table":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_anomaly_alert":{"schema":{"display_name":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"email_subject":{"type":"TypeString","required":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_management_scheduled_action":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name":{"type":"TypeString","required":true},"email_address_sender":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":20,"minItems":1},"email_subject":{"type":"TypeString","required":true},"end_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","optional":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_date":{"type":"TypeString","required":true},"view_id":{"type":"TypeString","required":true,"forceNew":true},"weeks_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_custom_ip_prefix":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"commissioning_enabled":{"type":"TypeBool","optional":true,"default":false},"internet_advertising_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_custom_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roa_validity_end_date":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wan_validation_signed_message":{"type":"TypeString","optional":true,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":540,"read":5,"delete":1020,"update":1020}},"azurerm_custom_provider":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_type":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"routing_type":{"type":"TypeString","optional":true,"default":"Proxy"}}}},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validation":{"type":"TypeSet","optional":true,"elem":{"schema":{"specification":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard_grafana":{"schema":{"api_key_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse"},"azure_monitor_workspace_integrations":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"deterministic_outbound_ip_enabled":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"grafana_version":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory":{"schema":{"customer_managed_key_id":{"type":"TypeString","optional":true},"customer_managed_key_identity_id":{"type":"TypeString","optional":true},"github_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","required":true},"publishing_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"global_parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"project_name":{"type":"TypeString","required":true},"publishing_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_custom_dataset":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_azure_blob":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_azure_sql_table":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_binary":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sftp_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_cosmosdb_sqlapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"collection_name":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_delimited_text":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_fs_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_file_system_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"file_system":{"type":"TypeString","optional":true},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"column_delimiter":{"type":"TypeString","optional":true,"default":","},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"escape_character":{"type":"TypeString","optional":true,"default":"\\"},"first_row_as_header":{"type":"TypeBool","optional":true,"default":false},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"null_value":{"type":"TypeString","optional":true,"default":""},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"quote_character":{"type":"TypeString","optional":true,"default":"\""},"row_delimiter":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_http":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"relative_url":{"type":"TypeString","optional":true},"request_body":{"type":"TypeString","optional":true},"request_method":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_json":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_parquet":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_fs_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_file_system_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"file_system":{"type":"TypeString","optional":true},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precision":{"type":"TypeInt","optional":true},"scale":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","optional":true}}}},"schema_name":{"type":"TypeString","optional":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_sql_server_table":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_flowlet_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure":{"schema":{"cleanup_enabled":{"type":"TypeBool","optional":true,"computed":true},"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0},"virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure_ssis":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"dual_standby_pair_name":{"type":"TypeString","optional":true},"elastic_pool_name":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"express_custom_setup":{"type":"TypeList","optional":true,"elem":{"schema":{"command_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"password":{"type":"TypeString","optional":true},"target_name":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"component":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_license":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"environment":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"powershell_version":{"type":"TypeString","optional":true}}},"maxItems":1},"express_vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"package_store":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","optional":true},"self_hosted_integration_runtime_name":{"type":"TypeString","required":true},"staging_storage_linked_service_name":{"type":"TypeString","required":true}}},"maxItems":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"public_ips":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2},"subnet_id":{"type":"TypeString","optional":true},"subnet_name":{"type":"TypeString","optional":true},"vnet_id":{"type":"TypeString","optional":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_managed":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true,"default":"Basic"},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","required":true},"vnet_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_self_hosted":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_authorization_key":{"type":"TypeString","computed":true},"rbac_authorization":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"secondary_authorization_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_custom_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_blob_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"connection_string_insecure":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_sas_token":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sas_uri":{"type":"TypeString","optional":true},"service_endpoint":{"type":"TypeString","optional":true},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"service_principal_linked_key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_kind":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_databricks":{"schema":{"access_token":{"type":"TypeString","optional":true},"adb_domain":{"type":"TypeString","required":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"existing_cluster_id":{"type":"TypeString","optional":true},"instance_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"instance_pool_id":{"type":"TypeString","required":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":1}}},"maxItems":1},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"msi_work_space_resource_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"new_cluster_config":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"custom_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"driver_node_type":{"type":"TypeString","optional":true},"init_scripts":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"log_destination":{"type":"TypeString","optional":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":"1"},"node_type":{"type":"TypeString","required":true},"spark_config":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"spark_environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_file_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"file_share":{"type":"TypeString","optional":true},"host":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"user_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_function":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key":{"type":"TypeString","optional":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_search":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted_credential":{"type":"TypeString","computed":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"search_service_key":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_sql_database":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_table_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb":{"schema":{"account_endpoint":{"type":"TypeString","optional":true},"account_key":{"type":"TypeString","optional":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb_mongoapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"server_version_is_32_or_higher":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_data_lake_storage_gen2":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"storage_account_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_key_vault":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_kusto":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"kusto_database_name":{"type":"TypeString","required":true},"kusto_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odata":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odbc":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sftp":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"host":{"type":"TypeString","required":true},"host_key_fingerprint":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true},"skip_host_key_validation":{"type":"TypeBool","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sql_server":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_synapse":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_web":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_managed_private_endpoint":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"fqdns":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_factory_pipeline":{"schema":{"activities_json":{"type":"TypeString","optional":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"concurrency":{"type":"TypeInt","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"moniter_metrics_after_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_blob_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"blob_path_begins_with":{"type":"TypeString","optional":true},"blob_path_ends_with":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"ignore_empty_blobs":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_custom_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"eventgrid_topic_id":{"type":"TypeString","required":true,"forceNew":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_schedule":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","optional":true,"default":"Minute"},"interval":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"pipeline_name":{"type":"TypeString","optional":true,"computed":true},"pipeline_parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":7},"hours":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","optional":true},"weekday":{"type":"TypeString","required":true}}},"minItems":1}}},"maxItems":1,"minItems":1},"start_time":{"type":"TypeString","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_tumbling_window":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"delay":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true,"forceNew":true},"interval":{"type":"TypeInt","required":true,"forceNew":true},"max_concurrency":{"type":"TypeInt","optional":true,"default":50},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retry":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeInt","optional":true,"default":30}}},"maxItems":1},"start_time":{"type":"TypeString","required":true,"forceNew":true},"trigger_dependency":{"type":"TypeSet","optional":true,"elem":{"schema":{"offset":{"type":"TypeString","optional":true},"size":{"type":"TypeString","optional":true},"trigger_name":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_blob_storage":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_disk":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"disk_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_postgresql":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"database_credential_key_vault_secret_id":{"type":"TypeString","optional":true},"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_blob_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"retention_duration":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_disk":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_postgresql":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true},"days_of_week":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"months_of_year":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"scheduled_backup_times":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"weeks_of_month":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redundancy":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_resource_guard":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vault_critical_operation_exclusion_list":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}},"maxItems":1},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","required":true,"forceNew":true},"data_share_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"file_system_name":{"type":"TypeString","required":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"source_platform":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_order":{"schema":{"contact":{"type":"TypeList","required":true,"elem":{"schema":{"company_name":{"type":"TypeString","required":true,"forceNew":true},"emails":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"device_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"return_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"serial_number":{"type":"TypeString","computed":true},"shipment_address":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3},"city":{"type":"TypeString","required":true,"forceNew":true},"country":{"type":"TypeString","required":true,"forceNew":true},"postal_code":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"shipment_history":{"type":"TypeSet","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}},"shipment_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"status":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"info":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_access_connector":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_virtual_network_peering":{"schema":{"address_space_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_address_space_prefixes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_id":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace":{"schema":{"custom_parameters":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"machine_learning_workspace_id":{"type":"TypeString","optional":true,"forceNew":true},"nat_gateway_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"no_public_ip":{"type":"TypeBool","optional":true,"computed":true},"private_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"private_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"public_ip_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"public_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_sku_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vnet_address_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_encryption_set_id":{"type":"TypeString","computed":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"load_balancer_backend_address_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"managed_disk_cmk_rotation_to_latest_version_enabled":{"type":"TypeBool","optional":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"managed_resource_group_id":{"type":"TypeString","computed":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_services_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules_required":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_root_dbfs_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor":{"schema":{"datadog_organization":{"type":"TypeList","required":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true,"forceNew":true},"application_key":{"type":"TypeString","required":true,"forceNew":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","computed":true},"linking_auth_code":{"type":"TypeString","optional":true,"forceNew":true},"linking_client_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"redirect_uri":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"marketplace_subscription_status":{"type":"TypeString","computed":true},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_sso_configuration":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"enterprise_application_id":{"type":"TypeString","required":true},"login_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"default"},"single_sign_on_enabled":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_tag_rule":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"log":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_log_enabled":{"type":"TypeBool","optional":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_log_enabled":{"type":"TypeBool","optional":true},"subscription_log_enabled":{"type":"TypeBool","optional":true}}}},"metric":{"type":"TypeList","optional":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","optional":true,"default":"default"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_hardware_security_module":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"management_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"stamp_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host":{"schema":{"auto_replace_on_failure":{"type":"TypeBool","optional":true,"default":true},"dedicated_host_group_id":{"type":"TypeString","required":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain":{"type":"TypeInt","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_global_vm_shutdown_schedule":{"schema":{"daily_recurrence_time":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"time_in_minutes":{"type":"TypeInt","optional":true,"default":30},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","optional":true,"default":"Premium"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_linux_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_policy":{"schema":{"description":{"type":"TypeString","optional":true},"evaluator_type":{"type":"TypeString","required":true,"forceNew":true},"fact_data":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_set_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threshold":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_schedule":{"schema":{"daily_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true}}},"maxItems":1},"hourly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true}}},"maxItems":1},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"status":{"type":"TypeString","optional":true,"default":"Disabled"},"time_in_minutes":{"type":"TypeInt","optional":true},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Disabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_type":{"type":"TypeString","required":true},"time_zone_id":{"type":"TypeString","required":true},"weekly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_virtual_network":{"schema":{"description":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"use_in_virtual_machine_creation":{"type":"TypeString","optional":true,"default":"Allow"},"use_public_ip_address":{"type":"TypeString","optional":true,"default":"Allow"}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_windows_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventgrid":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventgrid_topic_endpoint":{"type":"TypeString","required":true},"eventgrid_topic_primary_access_key":{"type":"TypeString","required":true},"eventgrid_topic_secondary_access_key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventhub":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_primary_connection_string":{"type":"TypeString","required":true},"eventhub_secondary_connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_servicebus":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_primary_connection_string":{"type":"TypeString","required":true},"servicebus_secondary_connection_string":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_time_series_database_connection":{"schema":{"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_consumer_group_name":{"type":"TypeString","optional":true,"default":"$Default","forceNew":true},"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_uri":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_name":{"type":"TypeString","required":true,"forceNew":true},"kusto_table_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_disk_access":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_type":{"type":"TypeString","optional":true,"default":"EncryptionAtRestWithCustomerKey","forceNew":true},"federated_client_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_disk_pool":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_pool_iscsi_target":{"schema":{"acl_mode":{"type":"TypeString","required":true,"forceNew":true},"disks_pool_id":{"type":"TypeString","required":true,"forceNew":true},"endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","computed":true},"target_iqn":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_iscsi_target_lun":{"schema":{"disk_pool_managed_disk_attachment_id":{"type":"TypeString","required":true,"forceNew":true},"iscsi_target_id":{"type":"TypeString","required":true,"forceNew":true},"lun":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_managed_disk_attachment":{"schema":{"disk_pool_id":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"flags":{"type":"TypeInt","required":true},"tag":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","optional":true,"computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":300},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","required":true,"forceNew":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_azuread_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_email_communication_service":{"schema":{"data_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain":{"schema":{"auto_create_topic_with_first_subscription":{"type":"TypeBool","optional":true,"default":true},"auto_delete_topic_with_last_subscription":{"type":"TypeBool","optional":true,"default":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_eventgrid_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_arm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"system_topic":{"type":"TypeString","required":true,"forceNew":true},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub":{"schema":{"capture_description":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeList","required":true,"elem":{"schema":{"archive_name_format":{"type":"TypeString","required":true},"blob_container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"encoding":{"type":"TypeString","required":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":300},"size_limit_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"skip_empty_archives":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"message_retention":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","required":true,"forceNew":true},"partition_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":300,"update":30}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity":{"type":"TypeInt","optional":true,"default":1},"dedicated_cluster_id":{"type":"TypeString","optional":true,"forceNew":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_throughput_units":{"type":"TypeInt","optional":true,"computed":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rulesets":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_service_access_enabled":{"type":"TypeBool","optional":true},"virtual_network_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"ignore_missing_virtual_network_service_endpoint":{"type":"TypeBool","optional":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":128}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_customer_managed_key":{"schema":{"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"key_vault_key_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_disaster_recovery_config":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_schema_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"schema_compatibility":{"type":"TypeString","required":true,"forceNew":true},"schema_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_express_route_circuit":{"schema":{"allow_classic_operations":{"type":"TypeBool","optional":true,"default":false},"authorization_key":{"type":"TypeString","optional":true},"bandwidth_in_gbps":{"type":"TypeFloat","optional":true},"bandwidth_in_mbps":{"type":"TypeInt","optional":true},"express_route_port_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","optional":true,"forceNew":true},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"family":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_connection":{"schema":{"address_prefix_ipv4":{"type":"TypeString","required":true,"forceNew":true},"address_prefix_ipv6":{"type":"TypeString","optional":true},"authorization_key":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_peering_id":{"type":"TypeString","required":true,"forceNew":true},"peering_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_peering":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_manager_etag":{"type":"TypeString","computed":true},"ipv4_enabled":{"type":"TypeBool","optional":true,"default":true},"ipv6":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"microsoft_peering":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"primary_peer_address_prefix":{"type":"TypeString","required":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_peer_address_prefix":{"type":"TypeString","required":true}}},"maxItems":1},"microsoft_peering_config":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"peer_asn":{"type":"TypeInt","optional":true,"computed":true},"peering_type":{"type":"TypeString","required":true},"primary_azure_port":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_azure_port":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","optional":true},"shared_key":{"type":"TypeString","optional":true},"vlan_id":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"enable_internet_security":{"type":"TypeBool","optional":true},"express_route_circuit_peering_id":{"type":"TypeString","required":true,"forceNew":true},"express_route_gateway_bypass_enabled":{"type":"TypeBool","optional":true,"default":false},"express_route_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"routing_weight":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_gateway":{"schema":{"allow_non_virtual_wan_traffic":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_express_route_port":{"schema":{"bandwidth_in_gbps":{"type":"TypeInt","required":true,"forceNew":true},"billing_type":{"type":"TypeString","optional":true,"computed":true},"encapsulation":{"type":"TypeString","required":true,"forceNew":true},"ethertype":{"type":"TypeString","computed":true},"guid":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"link1":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"link2":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mtu":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_port_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_port_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_federated_identity_credential":{"schema":{"audience":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"issuer":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"firewall_policy_id":{"type":"TypeString","optional":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_ip_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"sku_tier":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","optional":true,"computed":true},"virtual_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","optional":true,"default":1},"virtual_hub_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_firewall_application_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"target_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_nat_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","required":true},"translated_port":{"type":"TypeString","required":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_network_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy":{"schema":{"auto_learn_private_ranges_enabled":{"type":"TypeBool","optional":true},"base_policy_id":{"type":"TypeString","optional":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"proxy_enabled":{"type":"TypeBool","optional":true,"default":false},"servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"explicit_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_pac_file":{"type":"TypeBool","optional":true},"enabled":{"type":"TypeBool","optional":true},"http_port":{"type":"TypeInt","optional":true},"https_port":{"type":"TypeInt","optional":true},"pac_file":{"type":"TypeString","optional":true},"pac_file_port":{"type":"TypeInt","optional":true}}},"maxItems":1},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"insights":{"type":"TypeList","optional":true,"elem":{"schema":{"default_log_analytics_workspace_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"firewall_location":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"retention_in_days":{"type":"TypeInt","optional":true}}},"maxItems":1},"intrusion_detection":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true},"private_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"signature_overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"state":{"type":"TypeString","optional":true}}}},"traffic_bypass":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"source_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"sql_redirect_allowed":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","optional":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"threat_intelligence_mode":{"type":"TypeString","optional":true,"default":"Alert"},"tls_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_secret_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy_rule_collection_group":{"schema":{"application_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"terminate_tls":{"type":"TypeBool","optional":true},"web_categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_address":{"type":"TypeString","optional":true},"destination_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","optional":true},"translated_fqdn":{"type":"TypeString","optional":true},"translated_port":{"type":"TypeInt","required":true}}},"minItems":1}}},"minItems":1},"network_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"priority":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_fluid_relay_server":{"schema":{"frs_tenant_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"orderer_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_frontdoor":{"schema":{"backend_pool":{"type":"TypeList","required":true,"elem":{"schema":{"backend":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_header":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","required":true},"https_port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"weight":{"type":"TypeInt","optional":true,"default":50}}},"maxItems":500},"health_probe_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"load_balancing_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"backend_pool_health_probe":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"id":{"type":"TypeString","computed":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":120},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"probe_method":{"type":"TypeString","optional":true,"default":"GET"},"protocol":{"type":"TypeString","optional":true,"default":"Http"}}},"maxItems":5000},"backend_pool_health_probes":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_milliseconds":{"type":"TypeInt","optional":true,"default":0},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":2}}},"maxItems":5000},"backend_pool_load_balancing_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pools_send_receive_timeout_seconds":{"type":"TypeInt","optional":true,"default":60},"enforce_backend_pools_certificate_name_check":{"type":"TypeBool","required":true}}}},"backend_pools":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"cname":{"type":"TypeString","computed":true},"explicit_resource_order":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_pool_health_probe_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"routing_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"friendly_name":{"type":"TypeString","optional":true},"frontend_endpoint":{"type":"TypeList","required":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"session_affinity_ttl_seconds":{"type":"TypeInt","optional":true,"default":0},"web_application_firewall_policy_link_id":{"type":"TypeString","optional":true}}},"maxItems":500},"frontend_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"header_frontdoor_id":{"type":"TypeString","computed":true},"load_balancer_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_rule":{"type":"TypeList","required":true,"elem":{"schema":{"accepted_protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":2},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pool_name":{"type":"TypeString","required":true},"cache_duration":{"type":"TypeString","optional":true},"cache_enabled":{"type":"TypeBool","optional":true,"default":false},"cache_query_parameter_strip_directive":{"type":"TypeString","optional":true,"default":"StripAll"},"cache_query_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"cache_use_dynamic_compression":{"type":"TypeBool","optional":true,"default":false},"custom_forwarding_path":{"type":"TypeString","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"HttpsOnly"}}},"maxItems":1},"frontend_endpoints":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":500},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"redirect_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_fragment":{"type":"TypeString","optional":true},"custom_host":{"type":"TypeString","optional":true},"custom_path":{"type":"TypeString","optional":true},"custom_query_string":{"type":"TypeString","optional":true},"redirect_protocol":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":500},"routing_rules":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_custom_https_configuration":{"schema":{"custom_https_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_key_vault_certificate_secret_name":{"type":"TypeString","optional":true},"azure_key_vault_certificate_secret_version":{"type":"TypeString","optional":true},"azure_key_vault_certificate_vault_id":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","optional":true,"default":"FrontDoor"},"minimum_tls_version":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true},"provisioning_substate":{"type":"TypeString","computed":true}}},"maxItems":1},"custom_https_provisioning_enabled":{"type":"TypeBool","required":true},"frontend_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_frontdoor_rules_engine":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"frontdoor_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"request_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100},"response_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100}}},"maxItems":1},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transform":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":6},"value":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"variable":{"type":"TypeString","optional":true}}},"maxItems":100},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true}}},"maxItems":100}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_cert_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"","forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_function_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_connection":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"function_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_function_app_function":{"schema":{"config_json":{"type":"TypeString","required":true,"description":"The config for this Function in JSON format."},"config_url":{"type":"TypeString","description":"The URL of the configuration JSON.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this function be enabled. Defaults to `true`."},"file":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"description":"The content of the file.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The filename of the file to be uploaded.","forceNew":true}}},"minItems":1},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App in which this function should reside.","forceNew":true},"invocation_url":{"type":"TypeString","description":"The invocation URL.","computed":true},"language":{"type":"TypeString","optional":true,"description":"The language the Function is written in."},"name":{"type":"TypeString","required":true,"description":"The name of the function.","forceNew":true},"script_root_path_url":{"type":"TypeString","description":"The Script root path URL.","computed":true},"script_url":{"type":"TypeString","description":"The script URL.","computed":true},"secrets_file_url":{"type":"TypeString","description":"The URL for the Secrets File.","computed":true},"test_data":{"type":"TypeString","optional":true,"description":"The test data for the function."},"test_data_url":{"type":"TypeString","description":"The Test data URL.","computed":true},"url":{"type":"TypeString","description":"The function URL.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_hybrid_connection":{"schema":{"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App for this Hybrid Connection.","forceNew":true},"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_slot":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"function_app_name":{"type":"TypeString","required":true,"forceNew":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application":{"schema":{"description":{"type":"TypeString","optional":true},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true},"gallery_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true},"release_note_uri":{"type":"TypeString","optional":true},"supported_os_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application_version":{"schema":{"enable_health_check":{"type":"TypeBool","optional":true,"default":false},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_application_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"manage_action":{"type":"TypeList","required":true,"elem":{"schema":{"install":{"type":"TypeString","required":true,"forceNew":true},"remove":{"type":"TypeString","required":true,"forceNew":true},"update":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"default_configuration_link":{"type":"TypeString","optional":true,"forceNew":true},"media_link":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_services_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hdinsight_hadoop_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hadoop":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"edge_node":{"type":"TypeList","optional":true,"elem":{"schema":{"https_endpoints":{"type":"TypeList","optional":true,"elem":{"schema":{"access_modes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_port":{"type":"TypeInt","optional":true},"disable_gateway_auth":{"type":"TypeBool","optional":true},"private_ip_address":{"type":"TypeString","optional":true},"sub_domain_suffix":{"type":"TypeString","optional":true}}}},"install_script_action":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"target_instance_count":{"type":"TypeInt","required":true},"uninstall_script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"vm_size":{"type":"TypeString","required":true}}},"maxItems":1},"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_hbase_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hbase":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_interactive_query_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"interactive_hive":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_kafka_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"kafka":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rest_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"security_group_id":{"type":"TypeString","required":true,"forceNew":true},"security_group_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kafka_management_node":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"number_of_disks_per_node":{"type":"TypeInt","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_spark_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"spark":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_healthbot":{"schema":{"bot_management_portal_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"authority":{"type":"TypeString","required":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"configuration_export_storage_account_name":{"type":"TypeString","optional":true},"container_registry_login_server_url":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"credentials_allowed":{"type":"TypeBool","optional":true,"default":false},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","optional":true,"default":"fhir-R4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"oci_artifact":{"type":"TypeList","optional":true,"elem":{"schema":{"digest":{"type":"TypeString","optional":true},"image_name":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_medtech_service_fhir_destination":{"schema":{"destination_fhir_mapping_json":{"type":"TypeString","required":true},"destination_fhir_service_id":{"type":"TypeString","required":true},"destination_identity_resolution_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"medtech_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"audience":{"type":"TypeString","optional":true},"authority":{"type":"TypeString","optional":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","optional":true},"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","optional":true,"forceNew":true},"cosmosdb_throughput":{"type":"TypeInt","optional":true,"default":1000},"kind":{"type":"TypeString","optional":true,"default":"fhir"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache":{"schema":{"automatically_rotate_key_to_latest_enabled":{"type":"TypeBool","optional":true},"cache_size_in_gb":{"type":"TypeInt","required":true,"forceNew":true},"default_access_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1}}},"maxItems":1,"minItems":1},"directory_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_netbios_name":{"type":"TypeString","required":true},"dns_primary_ip":{"type":"TypeString","required":true},"dns_secondary_ip":{"type":"TypeString","optional":true},"domain_name":{"type":"TypeString","required":true},"domain_netbios_name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"directory_flat_file":{"type":"TypeList","optional":true,"elem":{"schema":{"group_file_uri":{"type":"TypeString","required":true},"password_file_uri":{"type":"TypeString","required":true}}},"maxItems":1},"directory_ldap":{"type":"TypeList","optional":true,"elem":{"schema":{"base_dn":{"type":"TypeString","required":true},"bind":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dn":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_validation_uri":{"type":"TypeString","optional":true},"download_certificate_automatically":{"type":"TypeBool","optional":true},"encrypted":{"type":"TypeBool","optional":true},"server":{"type":"TypeString","required":true}}},"maxItems":1},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"search_domain":{"type":"TypeString","optional":true},"servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mtu":{"type":"TypeInt","optional":true,"default":1500},"name":{"type":"TypeString","required":true,"forceNew":true},"ntp_server":{"type":"TypeString","optional":true,"default":"time.windows.com"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hpc_cache_access_policy":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1},"hpc_cache_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_nfs_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_nfs_target":{"schema":{"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_junction":{"type":"TypeSet","required":true,"elem":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"namespace_path":{"type":"TypeString","required":true},"nfs_export":{"type":"TypeString","required":true},"target_path":{"type":"TypeString","optional":true,"default":""}}},"maxItems":10,"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"target_host_name":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"lun":{"type":"TypeInt","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}}},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"os_state":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_virtual_machine_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_integration_service_environment":{"schema":{"access_endpoint_type":{"type":"TypeString","required":true,"forceNew":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Developer_0"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":4,"minItems":4},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_iot_security_device_group":{"schema":{"allow_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_from_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"connection_to_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"local_users_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"processes_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"range_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"max":{"type":"TypeInt","required":true},"min":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_security_solution":{"schema":{"additional_workspace":{"type":"TypeSet","optional":true,"elem":{"schema":{"data_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}}}},"disabled_data_sources":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events_to_export":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"iothub_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"log_unmasked_ips_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"query_for_resources":{"type":"TypeString","optional":true,"computed":true},"query_subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"recommendations_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_authentication":{"type":"TypeBool","optional":true,"default":true},"agent_send_unutilized_msg":{"type":"TypeBool","optional":true,"default":true},"baseline":{"type":"TypeBool","optional":true,"default":true},"edge_hub_mem_optimize":{"type":"TypeBool","optional":true,"default":true},"edge_logging_option":{"type":"TypeBool","optional":true,"default":true},"inconsistent_module_settings":{"type":"TypeBool","optional":true,"default":true},"install_agent":{"type":"TypeBool","optional":true,"default":true},"ip_filter_deny_all":{"type":"TypeBool","optional":true,"default":true},"ip_filter_permissive_rule":{"type":"TypeBool","optional":true,"default":true},"open_ports":{"type":"TypeBool","optional":true,"default":true},"permissive_firewall_policy":{"type":"TypeBool","optional":true,"default":true},"permissive_input_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"permissive_output_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"privileged_docker_options":{"type":"TypeBool","optional":true,"default":true},"shared_credentials":{"type":"TypeBool","optional":true,"default":true},"vulnerable_tls_cipher_suite":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_access_policy":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_object_id":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_eventhub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_iothub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_gen2_environment":{"schema":{"data_access_fqdn":{"type":"TypeString","computed":true},"id_properties":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage":{"type":"TypeList","required":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"warm_store_data_retention_time":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_reference_data_set":{"schema":{"data_string_comparison_behavior":{"type":"TypeString","optional":true,"default":"Ordinal","forceNew":true},"key_property":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_standard_environment":{"schema":{"data_retention_time":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_limit_exceeded_behavior":{"type":"TypeString","optional":true,"default":"PurgeOldData"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"ST1"},"sub_domain":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application_network_rule_set":{"schema":{"apply_to_device":{"type":"TypeBool","optional":true,"default":true},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"iotcentral_application_id":{"type":"TypeString","required":true,"forceNew":true},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub":{"schema":{"cloud_to_device":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"feedback":{"type":"TypeList","optional":true,"elem":{"schema":{"lock_duration":{"type":"TypeString","optional":true,"default":"PT60S"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"time_to_live":{"type":"TypeString","optional":true,"default":"PT1H"}}}},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10}}},"maxItems":1},"endpoint":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"enrichment":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":10},"event_hub_events_endpoint":{"type":"TypeString","computed":true},"event_hub_events_namespace":{"type":"TypeString","computed":true},"event_hub_events_path":{"type":"TypeString","computed":true},"event_hub_operations_endpoint":{"type":"TypeString","computed":true},"event_hub_operations_path":{"type":"TypeString","computed":true},"event_hub_partition_count":{"type":"TypeInt","optional":true,"computed":true},"event_hub_retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"fallback_route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","optional":true,"computed":true},"endpoint_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}}},"maxItems":1},"file_upload":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"computed":true},"identity_id":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"apply_to_builtin_eventhub_endpoint":{"type":"TypeBool","optional":true,"default":false},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}},"shared_access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"key_name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_consumer_group":{"schema":{"eventhub_endpoint_name":{"type":"TypeString","required":true,"forceNew":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_account":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_instance":{"schema":{"device_update_account_id":{"type":"TypeString","required":true,"forceNew":true},"diagnostic_enabled":{"type":"TypeBool","optional":true,"default":false},"diagnostic_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","optional":true,"default":"Hashed"},"data_residency_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"ip_filter_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"target":{"type":"TypeString","optional":true}}}},"linked_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_weight":{"type":"TypeInt","optional":true,"default":1},"apply_allocation_policy":{"type":"TypeBool","optional":true,"default":true},"connection_string":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_operations_host_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iot_dps_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"enrollment_read":{"type":"TypeBool","optional":true,"default":false},"enrollment_write":{"type":"TypeBool","optional":true,"default":false},"iothub_dps_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registration_read":{"type":"TypeBool","optional":true,"default":false},"registration_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_config":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_cosmosdb_account":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_name":{"type":"TypeString","optional":true},"partition_key_template":{"type":"TypeString","optional":true},"primary_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_eventhub":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_queue":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_topic":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_storage_container":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_enrichment":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":100},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"key":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_fallback_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_file_upload":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"lock_duration":{"type":"TypeString","optional":true,"default":"PT1M"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications_enabled":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"default":"PT1H"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_shared_access_policy":{"schema":{"device_connect":{"type":"TypeBool","optional":true,"default":false},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registry_read":{"type":"TypeBool","optional":true,"default":false},"registry_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_connect":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"firewall_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group_cidr":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"ip_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","optional":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1024},"contact":{"type":"TypeSet","optional":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"enable_rbac_authorization":{"type":"TypeBool","optional":true},"enabled_for_deployment":{"type":"TypeBool","optional":true},"enabled_for_disk_encryption":{"type":"TypeBool","optional":true},"enabled_for_template_deployment":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_protection_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_access_policy":{"schema":{"application_id":{"type":"TypeString","optional":true,"forceNew":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true,"forceNew":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate":{"schema":{"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"contents":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate_attribute":{"type":"TypeList","computed":true,"elem":{"schema":{"created":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"expires":{"type":"TypeString","computed":true},"not_before":{"type":"TypeString","computed":true},"recovery_level":{"type":"TypeString","computed":true},"updated":{"type":"TypeString","computed":true}}}},"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"key_properties":{"type":"TypeList","required":true,"elem":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true},"exportable":{"type":"TypeBool","required":true},"key_size":{"type":"TypeInt","optional":true,"computed":true},"key_type":{"type":"TypeString","required":true},"reuse_key":{"type":"TypeBool","required":true}}},"maxItems":1},"lifetime_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","optional":true},"lifetime_percentage":{"type":"TypeInt","optional":true}}},"maxItems":1}}}},"secret_properties":{"type":"TypeList","required":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true}}},"maxItems":1},"x509_certificate_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","required":true},"subject_alternative_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dns_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"validity_in_months":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":30,"delete":30,"update":30}},"azurerm_key_vault_certificate_contacts":{"schema":{"contact":{"type":"TypeSet","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","optional":true},"admin":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","optional":true},"last_name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_id":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"provider_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"e":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","optional":true},"key_opts":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","optional":true,"forceNew":true},"key_type":{"type":"TypeString","required":true,"forceNew":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"rotation_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"automatic":{"type":"TypeList","optional":true,"elem":{"schema":{"time_after_creation":{"type":"TypeString","optional":true},"time_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"expire_after":{"type":"TypeString","optional":true},"notify_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_domain_encrypted_data":{"type":"TypeString","computed":true},"security_domain_key_vault_certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10,"minItems":3},"security_domain_quorum":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":30}},"azurerm_key_vault_managed_storage_account":{"schema":{"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"regenerate_key_automatically":{"type":"TypeBool","optional":true,"default":false},"regeneration_period":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_managed_storage_account_sas_token_definition":{"schema":{"managed_storage_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sas_template_uri":{"type":"TypeString","required":true},"sas_type":{"type":"TypeString","required":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validity_period":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","optional":true,"elem":{"schema":{"connector_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_name":{"type":"TypeString","required":true}}},"maxItems":1},"api_server_access_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true},"vnet_integration_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"api_server_authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auto_scaler_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"balance_similar_node_groups":{"type":"TypeBool","optional":true,"default":false},"empty_bulk_delete_max":{"type":"TypeString","optional":true,"computed":true},"expander":{"type":"TypeString","optional":true,"default":"random"},"max_graceful_termination_sec":{"type":"TypeString","optional":true,"computed":true},"max_node_provisioning_time":{"type":"TypeString","optional":true,"default":"15m"},"max_unready_nodes":{"type":"TypeInt","optional":true,"default":3},"max_unready_percentage":{"type":"TypeFloat","optional":true,"default":45},"new_pod_scale_up_delay":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_add":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_delete":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_failure":{"type":"TypeString","optional":true,"computed":true},"scale_down_unneeded":{"type":"TypeString","optional":true,"computed":true},"scale_down_unready":{"type":"TypeString","optional":true,"computed":true},"scale_down_utilization_threshold":{"type":"TypeString","optional":true,"computed":true},"scan_interval":{"type":"TypeString","optional":true,"computed":true},"skip_nodes_with_local_storage":{"type":"TypeBool","optional":true,"default":true},"skip_nodes_with_system_pods":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"automatic_channel_upgrade":{"type":"TypeString","optional":true},"azure_active_directory_role_based_access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","optional":true},"client_app_id":{"type":"TypeString","optional":true},"managed":{"type":"TypeBool","optional":true},"server_app_id":{"type":"TypeString","optional":true},"server_app_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"azure_policy_enabled":{"type":"TypeBool","optional":true},"confidential_computing":{"type":"TypeList","optional":true,"elem":{"schema":{"sgx_quote_helper_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"custom_ca_trust_certificates_base64":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"default_node_pool":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true},"enable_node_public_ip":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false},"cpu_cfs_quota_period":{"type":"TypeString","optional":true},"cpu_manager_policy":{"type":"TypeString","optional":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true},"pod_max_pid":{"type":"TypeInt","optional":true},"topology_manager_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"linux_os_config":{"type":"TypeList","optional":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"only_critical_addons_enabled":{"type":"TypeBool","optional":true},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed"},"os_sku":{"type":"TypeString","optional":true,"computed":true},"pod_subnet_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"temporary_name_for_rotation":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"VirtualMachineScaleSets","forceNew":true},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true},"vnet_subnet_id":{"type":"TypeString","optional":true},"workload_runtime":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix_private_cluster":{"type":"TypeString","optional":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_pod_security_policy":{"type":"TypeBool","optional":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","optional":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"http_proxy_config":{"type":"TypeList","optional":true,"elem":{"schema":{"http_proxy":{"type":"TypeString","optional":true,"forceNew":true},"https_proxy":{"type":"TypeString","optional":true,"forceNew":true},"no_proxy":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trusted_ca":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_cleaner_enabled":{"type":"TypeBool","optional":true,"default":false},"image_cleaner_interval_hours":{"type":"TypeInt","optional":true,"default":48},"ingress_application_gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","optional":true},"gateway_name":{"type":"TypeString","optional":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"key_management_service":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_network_access":{"type":"TypeString","optional":true,"default":"Public"}}},"maxItems":1},"key_vault_secrets_provider":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"secret_rotation_interval":{"type":"TypeString","optional":true,"default":"2m"}}},"maxItems":1},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"object_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"kubernetes_version":{"type":"TypeString","optional":true,"computed":true},"linux_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_username":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeList","required":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"local_account_disabled":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"hours":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"minItems":1}}}},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}}}},"maxItems":1},"maintenance_window_auto_upgrade":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"maintenance_window_node_os":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"microsoft_defender":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true}}},"maxItems":1},"monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"annotations_allowed":{"type":"TypeString","optional":true},"labels_allowed":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"docker_bridge_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ebpf_data_plane":{"type":"TypeString","optional":true},"ip_versions":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"load_balancer_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":30},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true},"managed_outbound_ipv6_count":{"type":"TypeInt","optional":true,"computed":true},"outbound_ip_address_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ip_prefix_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ports_allocated":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"load_balancer_sku":{"type":"TypeString","optional":true,"default":"standard","forceNew":true},"nat_gateway_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"network_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"network_plugin":{"type":"TypeString","required":true,"forceNew":true},"network_plugin_mode":{"type":"TypeString","optional":true},"network_policy":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"pod_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pod_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"service_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_os_channel_upgrade":{"type":"TypeString","optional":true},"node_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","optional":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","optional":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"open_service_mesh_enabled":{"type":"TypeBool","optional":true},"portal_fqdn":{"type":"TypeString","computed":true},"private_cluster_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"private_cluster_public_fqdn_enabled":{"type":"TypeBool","optional":true,"default":false},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"private_fqdn":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_based_access_control_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"run_command_enabled":{"type":"TypeBool","optional":true,"default":true},"service_mesh_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true}}},"maxItems":1},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"storage_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"disk_driver_version":{"type":"TypeString","optional":true,"default":"v1"},"file_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"snapshot_controller_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"web_app_routing":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_zone_id":{"type":"TypeString","required":true},"web_app_routing_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"windows_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"gmsa":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_server":{"type":"TypeString","required":true},"root_domain":{"type":"TypeString","required":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true}}},"maxItems":1},"workload_autoscaler_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"keda_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_controlled_values":{"type":"TypeString","computed":true},"vertical_pod_autoscaler_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_update_mode":{"type":"TypeString","computed":true}}},"maxItems":1},"workload_identity_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_kubernetes_cluster_extension":{"schema":{"aks_assigned_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true,"forceNew":true},"enable_node_public_ip":{"type":"TypeBool","optional":true,"forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true,"forceNew":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"cpu_cfs_quota_period":{"type":"TypeString","optional":true,"forceNew":true},"cpu_manager_policy":{"type":"TypeString","optional":true,"forceNew":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"pod_max_pid":{"type":"TypeInt","optional":true,"forceNew":true},"topology_manager_policy":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"linux_os_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true,"forceNew":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","optional":true,"default":"User"},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed","forceNew":true},"os_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"Linux","forceNew":true},"pod_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"spot_max_price":{"type":"TypeFloat","optional":true,"default":-1,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"vnet_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"windows_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"outbound_nat_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"workload_runtime":{"type":"TypeString","optional":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kubernetes_cluster_trusted_access_role_binding":{"schema":{"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_fleet_manager":{"schema":{"hub_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dns_prefix":{"type":"TypeString","required":true},"fqdn":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true}}},"maxItems":1},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_attached_database_configuration":{"schema":{"attached_database_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"cluster_resource_id":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_principal_modification_kind":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"elem":{"schema":{"external_tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"external_tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster":{"schema":{"allowed_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allowed_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"auto_stop_enabled":{"type":"TypeBool","optional":true,"default":true},"data_ingestion_uri":{"type":"TypeString","computed":true},"disk_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"double_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"engine":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"language_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimized_auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum_instances":{"type":"TypeInt","required":true},"minimum_instances":{"type":"TypeInt","required":true}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"public_ip_type":{"type":"TypeString","optional":true,"default":"IPv4"},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"streaming_ingestion_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_external_tenants":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true},"virtual_network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_management_public_ip_id":{"type":"TypeString","required":true},"engine_public_ip_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_customer_managed_key":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"user_identity":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_cluster_managed_private_endpoint":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_id":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_region":{"type":"TypeString","optional":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cosmosdb_data_connection":{"schema":{"cosmosdb_container_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_id":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retrieval_start_date":{"type":"TypeString","optional":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"hot_cache_period":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_database_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_eventgrid_data_connection":{"schema":{"blob_storage_event_type":{"type":"TypeString","optional":true,"default":"Microsoft.Storage.BlobCreated"},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"eventgrid_resource_id":{"type":"TypeString","optional":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","optional":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skip_first_record":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_eventhub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"compression":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_iothub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_script":{"schema":{"continue_on_errors_enabled":{"type":"TypeBool","optional":true,"default":false},"database_id":{"type":"TypeString","required":true,"forceNew":true},"force_an_update_when_value_changed":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sas_token":{"type":"TypeString","optional":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_lab":{"schema":{"auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"lab_plan_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","computed":true},"public_ip_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roster":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_group_id":{"type":"TypeString","optional":true},"lms_instance":{"type":"TypeString","optional":true},"lti_client_id":{"type":"TypeString","optional":true},"lti_context_id":{"type":"TypeString","optional":true},"lti_roster_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"security":{"type":"TypeList","required":true,"elem":{"schema":{"open_access_enabled":{"type":"TypeBool","required":true},"registration_code":{"type":"TypeString","computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title":{"type":"TypeString","required":true},"virtual_machine":{"type":"TypeList","required":true,"elem":{"schema":{"additional_capability_gpu_drivers_installed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"admin_user":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"create_option":{"type":"TypeString","optional":true,"default":"Image","forceNew":true},"image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"non_admin_user":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"shared_password_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_lab_service_plan":{"schema":{"allowed_regions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":28,"minItems":1},"default_auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"default_connection":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true},"web_rdp_access":{"type":"TypeString","optional":true},"web_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"default_network_subnet_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_gallery_id":{"type":"TypeString","optional":true},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"instructions":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_schedule":{"schema":{"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"stop_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_user":{"schema":{"additional_usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"},"email":{"type":"TypeString","required":true,"forceNew":true},"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb":{"schema":{"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"id":{"type":"TypeString","computed":true},"inbound_nat_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_version":{"type":"TypeString","optional":true,"computed":true},"public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"computed":true},"subnet_id":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool":{"schema":{"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tunnel_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier":{"type":"TypeInt","required":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"virtual_network_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool_address":{"schema":{"backend_address_ip_configuration_id":{"type":"TypeString","optional":true,"description":"For global load balancer, user needs to specify the `backend_address_ip_configuration_id` of the added regional load balancers"},"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"description":"For regional load balancer, user needs to specify `virtual_network_id` and `ip_address`"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_pool":{"schema":{"backend_port":{"type":"TypeInt","required":true},"floating_ip_enabled":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_end":{"type":"TypeInt","required":true},"frontend_port_start":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tcp_reset_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","optional":true},"backend_ip_configuration_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","required":true},"enable_floating_ip":{"type":"TypeBool","optional":true,"computed":true},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","optional":true},"frontend_port_end":{"type":"TypeInt","optional":true},"frontend_port_start":{"type":"TypeInt","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","optional":true,"default":1024},"backend_address_pool_id":{"type":"TypeString","required":true},"enable_tcp_reset":{"type":"TypeBool","optional":true,"default":false},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_probe":{"schema":{"interval_in_seconds":{"type":"TypeInt","optional":true,"default":15},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_probes":{"type":"TypeInt","optional":true,"default":2},"port":{"type":"TypeInt","required":true},"probe_threshold":{"type":"TypeInt","optional":true,"default":1},"protocol":{"type":"TypeString","optional":true,"computed":true},"request_path":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_rule":{"schema":{"backend_address_pool_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":1},"backend_port":{"type":"TypeInt","required":true},"disable_outbound_snat":{"type":"TypeBool","optional":true,"default":false},"enable_floating_ip":{"type":"TypeBool","optional":true,"default":false},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"load_distribution":{"type":"TypeString","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"probe_id":{"type":"TypeString","optional":true,"computed":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lighthouse_assignment":{"schema":{"lighthouse_definition_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_lighthouse_definition":{"schema":{"authorization":{"type":"TypeSet","required":true,"elem":{"schema":{"delegated_role_definition_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"eligible_authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"just_in_time_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"approver":{"type":"TypeSet","optional":true,"elem":{"schema":{"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true}}}},"maximum_activation_duration":{"type":"TypeString","optional":true,"default":"PT8H"},"multi_factor_auth_provider":{"type":"TypeString","optional":true}}},"maxItems":1},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}}},"lighthouse_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managing_tenant_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022``","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Function App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Linux Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_linux_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"default":0},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_linux_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_web_app_slot":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_service_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_load_test":{"schema":{"data_plane_uri":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"gateway_address":{"type":"TypeString","optional":true},"gateway_fqdn":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_cluster":{"schema":{"cluster_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"default":1000},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_cluster_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"log_analytics_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_data_export_rule":{"schema":{"destination_resource_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"export_rule_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_event":{"schema":{"event_log_name":{"type":"TypeString","required":true},"event_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_performance_counter":{"schema":{"counter_name":{"type":"TypeString","required":true},"instance_name":{"type":"TypeString","required":true},"interval_seconds":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"object_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_service":{"schema":{"name":{"type":"TypeString","computed":true},"read_access_id":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true},"write_access_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_storage_account":{"schema":{"data_source_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack_query":{"schema":{"additional_settings_json":{"type":"TypeString","optional":true},"body":{"type":"TypeString","required":true},"categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"query_pack_id":{"type":"TypeString","required":true,"forceNew":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"solutions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_saved_search":{"schema":{"category":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"function_alias":{"type":"TypeString","optional":true,"forceNew":true},"function_parameters":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_solution":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"solution_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_storage_insights":{"schema":{"blob_container_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"table_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_workspace":{"schema":{"allow_resource_only_permissions":{"type":"TypeBool","optional":true,"default":true},"cmk_for_query_forced":{"type":"TypeBool","optional":true},"daily_quota_gb":{"type":"TypeFloat","optional":true,"default":-1},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_shared_key":{"type":"TypeString","computed":true},"reservation_capacity_in_gb_per_day":{"type":"TypeInt","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_http":{"schema":{"body":{"type":"TypeString","optional":true},"headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"queries":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_after":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_name":{"type":"TypeString","required":true},"action_result":{"type":"TypeString","required":true}}},"minItems":1},"uri":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account":{"schema":{"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_agreement":{"schema":{"agreement_type":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"guest_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"guest_partner_name":{"type":"TypeString","required":true},"host_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"host_partner_name":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_assembly":{"schema":{"assembly_name":{"type":"TypeString","required":true},"assembly_version":{"type":"TypeString","optional":true,"default":"0.0.0.0"},"content":{"type":"TypeString","optional":true},"content_link_uri":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_batch_configuration":{"schema":{"batch_group_name":{"type":"TypeString","required":true,"forceNew":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"release_criteria":{"type":"TypeList","required":true,"elem":{"schema":{"batch_size":{"type":"TypeInt","optional":true},"message_count":{"type":"TypeInt","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeSet","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","required":true},"weekday":{"type":"TypeString","required":true}}}},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_certificate":{"schema":{"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true}}},"maxItems":1},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_certificate":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_map":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"map_type":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_partner":{"schema":{"business_identity":{"type":"TypeSet","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_schema":{"schema":{"content":{"type":"TypeString","required":true},"file_name":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_session":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","optional":true,"default":"[1.*, 2.0.0)"},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"client_certificate_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_share_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","optional":true,"default":true},"version":{"type":"TypeString","optional":true,"default":"~3"},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_http_request":{"schema":{"callback_url":{"type":"TypeString","computed":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"relative_path":{"type":"TypeString","optional":true},"schema":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_recurrence":{"schema":{"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"at_these_hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"at_these_minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"on_these_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_workflow":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"open_authentication_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"claim":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"workflow_management":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logic_app_integration_account_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","optional":true,"default":"https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#","forceNew":true},"workflow_version":{"type":"TypeString","optional":true,"default":"1.0.0.0","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_monitor":{"schema":{"company_name":{"type":"TypeString","optional":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logz_organization_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","required":true,"forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"100gb14days","forceNew":true},"usage_type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_sign_on_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account_tag_rule":{"schema":{"logz_sub_account_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_tag_rule":{"schema":{"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_compute_cluster":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"scale_settings":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true,"forceNew":true},"min_node_count":{"type":"TypeInt","required":true,"forceNew":true},"scale_down_nodes_after_idle_duration":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"key_value":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"ssh_public_access_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"vm_priority":{"type":"TypeString","required":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_compute_instance":{"schema":{"assign_to_user":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"object_id":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"authorization_type":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","computed":true}}},"maxItems":1},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"virtual_machine_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_datastore_blobstorage":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_auth_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_datalake_gen2":{"schema":{"authority_url":{"type":"TypeString","optional":true,"computed":true},"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_fileshare":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_fileshare_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_inference_cluster":{"schema":{"cluster_purpose":{"type":"TypeString","optional":true,"default":"FastProd","forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ssl":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cert":{"type":"TypeString","optional":true,"default":"","forceNew":true},"cname":{"type":"TypeString","optional":true,"default":"","forceNew":true},"key":{"type":"TypeString","optional":true,"default":"","forceNew":true},"leaf_domain_label":{"type":"TypeString","optional":true,"default":"","forceNew":true},"overwrite_existing_domain":{"type":"TypeBool","optional":true,"default":"","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_synapse_spark":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_workspace":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"container_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"discovery_url":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key_id":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"friendly_name":{"type":"TypeString","optional":true},"high_business_impact":{"type":"TypeBool","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_build_compute_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_user_assigned_identity":{"type":"TypeString","optional":true},"public_access_behind_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Basic"},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"v1_legacy_mode_enabled":{"type":"TypeBool","optional":true,"default":false},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maintenance_assignment_dedicated_host":{"schema":{"dedicated_host_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine_scale_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","optional":true},"install_patches":{"type":"TypeList","optional":true,"elem":{"schema":{"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"reboot":{"type":"TypeString","optional":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","optional":true,"default":"Custom"},"window":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","optional":true},"expiration_date_time":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"start_date_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application":{"schema":{"application_definition_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameter_values":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application_definition":{"schema":{"authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"role_definition_id":{"type":"TypeString","required":true},"service_principal_id":{"type":"TypeString","required":true}}},"minItems":1},"create_ui_definition":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_level":{"type":"TypeString","required":true,"forceNew":true},"main_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"package_enabled":{"type":"TypeBool","optional":true,"default":true},"package_file_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","required":true,"forceNew":true},"disk_access_id":{"type":"TypeString","optional":true},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_iops_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"gallery_image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"forceNew":true},"image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logical_sector_size":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"max_shares":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_access_policy":{"type":"TypeString","optional":true},"on_demand_bursting_enabled":{"type":"TypeBool","optional":true},"optimized_frequent_attach_enabled":{"type":"TypeBool","optional":true,"default":false},"os_type":{"type":"TypeString","optional":true},"performance_plus_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_type":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"computed":true},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"upload_size_bytes":{"type":"TypeInt","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk_sas_token":{"schema":{"access_level":{"type":"TypeString","required":true,"forceNew":true},"duration_in_seconds":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"sas_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_managed_lustre_file_system":{"schema":{"encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"hsm_setting":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"import_prefix":{"type":"TypeString","optional":true,"forceNew":true},"logging_container_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","required":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"time_of_day_in_utc":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_capacity_in_tb":{"type":"TypeInt","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"parent_management_group_id":{"type":"TypeString","optional":true,"computed":true},"subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_subscription_association":{"schema":{"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5}},"azurerm_management_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_management_lock":{"schema":{"lock_level":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_account":{"schema":{"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_creator":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maps_account_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mariadb_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_mariadb_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeString","required":true,"forceNew":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_asset":{"schema":{"alternate_id":{"type":"TypeString","optional":true},"container":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_asset_filter":{"schema":{"asset_id":{"type":"TypeString","required":true,"forceNew":true},"first_quality_bitrate":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_miliseconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","optional":true},"property":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_content_key_policy":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_option":{"type":"TypeSet","required":true,"elem":{"schema":{"clear_key_configuration_enabled":{"type":"TypeBool","optional":true},"fairplay_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"ask":{"type":"TypeString","optional":true},"offline_rental_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"playback_duration_seconds":{"type":"TypeInt","optional":true},"storage_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"pfx":{"type":"TypeString","optional":true},"pfx_password":{"type":"TypeString","optional":true},"rental_and_lease_key_type":{"type":"TypeString","optional":true},"rental_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"open_restriction_enabled":{"type":"TypeBool","optional":true},"playready_configuration_license":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_test_devices":{"type":"TypeBool","optional":true},"begin_date":{"type":"TypeString","optional":true},"content_key_location_from_header_enabled":{"type":"TypeBool","optional":true},"content_key_location_from_key_id":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"grace_period":{"type":"TypeString","optional":true},"license_type":{"type":"TypeString","optional":true},"play_right":{"type":"TypeList","optional":true,"elem":{"schema":{"agc_and_color_stripe_restriction":{"type":"TypeInt","optional":true},"allow_passing_video_content_to_unknown_output":{"type":"TypeString","optional":true},"analog_video_opl":{"type":"TypeInt","optional":true},"compressed_digital_audio_opl":{"type":"TypeInt","optional":true},"compressed_digital_video_opl":{"type":"TypeInt","optional":true},"digital_video_only_content_restriction":{"type":"TypeBool","optional":true},"explicit_analog_television_output_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"best_effort_enforced":{"type":"TypeBool","optional":true,"default":false},"control_bits":{"type":"TypeInt","required":true}}},"maxItems":1},"first_play_expiration":{"type":"TypeString","optional":true},"image_constraint_for_analog_component_video_restriction":{"type":"TypeBool","optional":true},"image_constraint_for_analog_computer_monitor_restriction":{"type":"TypeBool","optional":true},"scms_restriction":{"type":"TypeInt","optional":true},"uncompressed_digital_audio_opl":{"type":"TypeInt","optional":true},"uncompressed_digital_video_opl":{"type":"TypeInt","optional":true}}},"maxItems":1},"relative_begin_date":{"type":"TypeString","optional":true},"relative_expiration_date":{"type":"TypeString","optional":true},"security_level":{"type":"TypeString","optional":true}}}},"playready_response_custom_data":{"type":"TypeString","optional":true},"token_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"alternate_key":{"type":"TypeList","optional":true,"elem":{"schema":{"rsa_token_key_exponent":{"type":"TypeString","optional":true},"rsa_token_key_modulus":{"type":"TypeString","optional":true},"symmetric_token_key":{"type":"TypeString","optional":true},"x509_token_key_raw":{"type":"TypeString","optional":true}}}},"audience":{"type":"TypeString","optional":true},"issuer":{"type":"TypeString","optional":true},"open_id_connect_discovery_document":{"type":"TypeString","optional":true},"primary_rsa_token_key_exponent":{"type":"TypeString","optional":true},"primary_rsa_token_key_modulus":{"type":"TypeString","optional":true},"primary_symmetric_token_key":{"type":"TypeString","optional":true},"primary_x509_token_key_raw":{"type":"TypeString","optional":true},"required_claim":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"token_type":{"type":"TypeString","optional":true}}},"maxItems":1},"widevine_configuration_template":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_job":{"schema":{"description":{"type":"TypeString","optional":true},"input_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1},"priority":{"type":"TypeString","optional":true,"default":"Normal","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"transform_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event":{"schema":{"auto_start_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true},"cross_domain_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"preset_name":{"type":"TypeString","optional":true,"forceNew":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"None"},"type":{"type":"TypeString","optional":true,"default":"None","forceNew":true}}},"maxItems":1},"hostname_prefix":{"type":"TypeString","optional":true},"input":{"type":"TypeList","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"key_frame_interval_duration":{"type":"TypeString","optional":true},"streaming_protocol":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"preview":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"preview_locator":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_options":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transcription_languages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"use_static_hostname":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event_output":{"schema":{"archive_window_duration":{"type":"TypeString","required":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"hls_fragments_per_ts_segment":{"type":"TypeInt","optional":true,"forceNew":true},"live_event_id":{"type":"TypeString","required":true,"forceNew":true},"manifest_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_snap_time_in_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"rewind_window_duration":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account":{"schema":{"encryption":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_key_identifier":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"type":{"type":"TypeString","optional":true,"default":"SystemKey"}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_delivery_access_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true},"ip_allow_list":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"storage_authentication_type":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account_filter":{"schema":{"first_quality_bitrate":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_milliseconds":{"type":"TypeInt","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_endpoint":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"akamai_signature_header_authentication_key":{"type":"TypeList","optional":true,"elem":{"schema":{"base64_key":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","optional":true},"identifier":{"type":"TypeString","optional":true}}}},"ip_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}}}},"maxItems":1},"auto_start_enabled":{"type":"TypeBool","optional":true,"computed":true},"cdn_enabled":{"type":"TypeBool","optional":true},"cdn_profile":{"type":"TypeString","optional":true,"computed":true},"cdn_provider":{"type":"TypeString","optional":true,"computed":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true,"computed":true},"cross_domain_policy":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"custom_host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_cache_age_seconds":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_locator":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content_key_id":{"type":"TypeString","optional":true,"forceNew":true},"label_reference_in_streaming_policy":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","optional":true,"forceNew":true}}}},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"end_time":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"filter_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"forceNew":true},"streaming_locator_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_streaming_policy":{"schema":{"common_encryption_cbcs":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_fairplay":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_persistent_license":{"type":"TypeBool","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"common_encryption_cenc":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"clear_track":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}},"content_key_to_track_mapping":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"track":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}}}}},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_playready":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_attributes":{"type":"TypeString","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_widevine_custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"envelope_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"no_encryption_enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_transform":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"builtin_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"preset_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true},"interleave_output":{"type":"TypeString","optional":true},"key_frame_interval_in_seconds":{"type":"TypeFloat","optional":true},"max_bitrate_bps":{"type":"TypeInt","optional":true},"max_height":{"type":"TypeInt","optional":true},"max_layers":{"type":"TypeInt","optional":true},"min_bitrate_bps":{"type":"TypeInt","optional":true},"min_height":{"type":"TypeInt","optional":true}}},"maxItems":1},"preset_name":{"type":"TypeString","required":true}}},"maxItems":1},"custom_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"codec":{"type":"TypeList","required":true,"elem":{"schema":{"aac_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":128000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"profile":{"type":"TypeString","optional":true,"default":"AacLc"},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"copy_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"copy_video":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"dd_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":192000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"h264_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":23},"entropy_mode":{"type":"TypeString","optional":true,"computed":true},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"rate_control_mode":{"type":"TypeString","optional":true,"default":"ABR"},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"h265_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":28},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"jpg_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"quality":{"type":"TypeInt","optional":true,"default":70},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"sprite_column":{"type":"TypeInt","optional":true,"default":0},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"png_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1}}},"minItems":1},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"deinterlace":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true,"default":"AutoPixelAdaptive"},"parity":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"fade_in":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"fade_out":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"overlay":{"type":"TypeList","optional":true,"elem":{"schema":{"audio":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}},"maxItems":1},"video":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"opacity":{"type":"TypeFloat","optional":true,"default":1},"position":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"start":{"type":"TypeString","optional":true}}},"maxItems":1}}},"minItems":1},"rotation":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"format":{"type":"TypeList","required":true,"elem":{"schema":{"jpg":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"mp4":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1},"png":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"transport_stream":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1}}},"minItems":1}}},"maxItems":1},"face_detector_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"analysis_resolution":{"type":"TypeString","optional":true,"default":"SourceResolution"},"blur_type":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"face_redactor_mode":{"type":"TypeString","optional":true,"default":"Analyze"}}},"maxItems":1},"on_error_action":{"type":"TypeString","optional":true,"default":"StopProcessingJob"},"relative_priority":{"type":"TypeString","optional":true,"default":"Normal"},"video_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"insights_type":{"type":"TypeString","optional":true,"default":"AllInsights"}}},"maxItems":1}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_country_code":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_code":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_data_network_name":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true,"forceNew":true},"network_address_port_translation":{"type":"TypeList","optional":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"pinhole_maximum_number":{"type":"TypeInt","optional":true,"default":65536},"port_range":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum":{"type":"TypeInt","optional":true,"default":49999},"minimum":{"type":"TypeInt","optional":true,"default":1024}}},"maxItems":1},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":120},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":60}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","optional":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"control_plane_access_name":{"type":"TypeString","optional":true},"core_network_technology":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"interoperability_settings_json":{"type":"TypeString","optional":true},"local_diagnostics_access":{"type":"TypeList","required":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","required":true},"https_server_certificate_url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","optional":true},"custom_location_id":{"type":"TypeString","optional":true},"edge_device_id":{"type":"TypeString","optional":true},"stack_hci_cluster_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"sku":{"type":"TypeString","required":true},"software_version":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","optional":true,"default":1440}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pcc_rule":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precedence":{"type":"TypeInt","required":true},"qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true},"guaranteed_bit_rate":{"type":"TypeList","optional":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"Preemptable"},"qos_indicator":{"type":"TypeInt","required":true}}},"maxItems":1},"service_data_flow_template":{"type":"TypeList","required":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","optional":true,"default":true}}}},"service_precedence":{"type":"TypeInt","required":true},"service_qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":9},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true},"preemption_vulnerability":{"type":"TypeString","optional":true},"qos_indicator":{"type":"TypeInt","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim":{"schema":{"authentication_key":{"type":"TypeString","required":true},"device_type":{"type":"TypeString","optional":true},"integrated_circuit_card_identifier":{"type":"TypeString","required":true,"forceNew":true},"international_mobile_subscriber_identity":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operator_key_code":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","optional":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true},"static_ipv4_address":{"type":"TypeString","optional":true}}},"minItems":1},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","optional":true},"registration_timer_in_seconds":{"type":"TypeInt","optional":true,"default":3240},"slice":{"type":"TypeList","required":true,"elem":{"schema":{"data_network":{"type":"TypeList","required":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":0},"allowed_services_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","required":true},"default_session_type":{"type":"TypeString","optional":true,"default":"IPv4"},"max_buffered_packets":{"type":"TypeInt","optional":true,"default":10},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"NotPreemptable"},"qos_indicator":{"type":"TypeInt","required":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}}}},"default_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":180,"read":5,"delete":180,"update":60}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","required":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","optional":true},"slice_service_type":{"type":"TypeInt","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_monitor_aad_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true,"forceNew":true},"eventhub_name":{"type":"TypeString","optional":true,"forceNew":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"role_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"automation_runbook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"is_global_runbook":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true},"runbook_name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true,"default":false},"webhook_resource_id":{"type":"TypeString","required":true}}}},"azure_app_push_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"azure_function_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"http_trigger_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"email_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"event_hub_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","required":true},"ticket_configuration":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","optional":true,"default":"global","forceNew":true},"logic_app_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"callback_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"short_name":{"type":"TypeString","required":true},"sms_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"webhook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","optional":true,"computed":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_action_group":{"schema":{"action_group_id":{"type":"TypeString","required":true},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"suppression":{"type":"TypeList","required":true,"elem":{"schema":{"recurrence_type":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"end_date_utc":{"type":"TypeString","required":true},"recurrence_monthly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"},"minItems":1},"recurrence_weekly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"start_date_utc":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_activity_log_alert":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"caller":{"type":"TypeString","optional":true},"category":{"type":"TypeString","required":true},"level":{"type":"TypeString","optional":true},"levels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operation_name":{"type":"TypeString","optional":true},"recommendation_category":{"type":"TypeString","optional":true},"recommendation_impact":{"type":"TypeString","optional":true},"recommendation_type":{"type":"TypeString","optional":true},"resource_group":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"previous":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reason":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_id":{"type":"TypeString","optional":true},"resource_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_provider":{"type":"TypeString","optional":true},"resource_providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_type":{"type":"TypeString","optional":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"service_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"services":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"status":{"type":"TypeString","optional":true},"statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sub_status":{"type":"TypeString","optional":true},"sub_statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_action_group":{"schema":{"add_action_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_prometheus_rule_group":{"schema":{"cluster_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"interval":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"action_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":5},"alert":{"type":"TypeString","optional":true},"alert_resolution":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_resolved":{"type":"TypeBool","optional":true},"time_to_resolve":{"type":"TypeString","optional":true}}},"maxItems":1},"annotations":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"expression":{"type":"TypeString","required":true},"for":{"type":"TypeString","optional":true},"labels":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"record":{"type":"TypeString","optional":true},"severity":{"type":"TypeInt","optional":true}}}},"rule_group_enabled":{"type":"TypeBool","optional":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_autoscale_setting":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"send_to_subscription_administrator":{"type":"TypeBool","optional":true,"default":false},"send_to_subscription_co_administrator":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"webhook":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_uri":{"type":"TypeString","required":true}}}}}},"maxItems":1},"predictive":{"type":"TypeList","optional":true,"elem":{"schema":{"look_ahead_time":{"type":"TypeString","optional":true},"scale_mode":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"profile":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeList","required":true,"elem":{"schema":{"default":{"type":"TypeInt","required":true},"maximum":{"type":"TypeInt","required":true},"minimum":{"type":"TypeInt","required":true}}},"maxItems":1},"fixed_date":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hours":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"minutes":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","required":true,"elem":{"schema":{"dimensions":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"divide_by_instance_count":{"type":"TypeBool","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","optional":true},"metric_resource_id":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"statistic":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","required":true},"time_window":{"type":"TypeString","required":true}}},"maxItems":1},"scale_action":{"type":"TypeList","required":true,"elem":{"schema":{"cooldown":{"type":"TypeString","required":true},"direction":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":10}}},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_flow":{"type":"TypeList","required":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"output_stream":{"type":"TypeString","optional":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"transform_kql":{"type":"TypeString","optional":true}}},"minItems":1},"data_sources":{"type":"TypeList","optional":true,"elem":{"schema":{"data_import":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","required":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"stream":{"type":"TypeString","required":true}}}}}},"maxItems":1},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"extension_json":{"type":"TypeString","optional":true},"extension_name":{"type":"TypeString","required":true},"input_data_sources":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"iis_log":{"type":"TypeList","optional":true,"elem":{"schema":{"log_directories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"settings":{"type":"TypeList","optional":true,"elem":{"schema":{"text":{"type":"TypeList","required":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"performance_counter":{"type":"TypeList","optional":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"sampling_frequency_in_seconds":{"type":"TypeInt","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"prometheus_forwarder":{"type":"TypeList","optional":true,"elem":{"schema":{"label_include_filter":{"type":"TypeSet","optional":true,"elem":{"schema":{"label":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"syslog":{"type":"TypeList","optional":true,"elem":{"schema":{"facility_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"log_levels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_event_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"x_path_queries":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_firewall_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}}},"monitor_account":{"type":"TypeList","optional":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"storage_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_blob_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_table_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_declaration":{"type":"TypeSet","optional":true,"elem":{"schema":{"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"stream_name":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule_association":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_collection_rule_id":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"default":"configurationAccessEndpoint","forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","optional":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"log_analytics_destination_type":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"metric":{"type":"TypeSet","optional":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_solution_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"locations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"servicebus_rule_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_metric_alert":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"application_insights_web_test_location_availability_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"component_id":{"type":"TypeString","required":true},"failed_location_count":{"type":"TypeInt","required":true},"web_test_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"auto_mitigate":{"type":"TypeBool","optional":true,"default":true},"criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true,"default":false},"threshold":{"type":"TypeFloat","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"dynamic_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"alert_sensitivity":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"evaluation_failure_count":{"type":"TypeInt","optional":true,"default":4},"evaluation_total_count":{"type":"TypeInt","optional":true,"default":4},"ignore_data_before":{"type":"TypeString","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","optional":true,"default":"PT1M"},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"severity":{"type":"TypeInt","optional":true,"default":3},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_location":{"type":"TypeString","optional":true,"description":"The location of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"target_resource_type":{"type":"TypeString","optional":true,"description":"The resource type (e.g. Microsoft.Compute/virtualMachines) of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"window_size":{"type":"TypeString","optional":true,"default":"PT5M"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scope":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scoped_service":{"schema":{"linked_resource_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_group":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","optional":true},"email_subject":{"type":"TypeString","optional":true}}},"maxItems":1},"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":100},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_type":{"type":"TypeString","optional":true,"default":"ResultCount"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"severity":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","optional":true},"time_window":{"type":"TypeInt","required":true},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_column":{"type":"TypeString","optional":true},"metric_trigger_type":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert_v2":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"custom_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"created_with_api_version":{"type":"TypeString","computed":true},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"failing_periods":{"type":"TypeList","optional":true,"elem":{"schema":{"minimum_failing_periods_to_trigger_alert":{"type":"TypeInt","required":true},"number_of_evaluation_periods":{"type":"TypeInt","required":true}}},"maxItems":1},"metric_measure_column":{"type":"TypeString","optional":true},"operator":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true},"resource_id_column":{"type":"TypeString","optional":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation_method":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"evaluation_frequency":{"type":"TypeString","optional":true},"is_a_legacy_log_analytics_rule":{"type":"TypeBool","computed":true},"is_workspace_alerts_storage_configured":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mute_actions_after_alert_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_time_range_override":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"severity":{"type":"TypeInt","required":true},"skip_query_validation":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"window_duration":{"type":"TypeString","required":true},"workspace_alerts_storage_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"Include"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","required":true}}},"maxItems":1},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_smart_detector_alert_rule":{"schema":{"action_group":{"type":"TypeList","required":true,"elem":{"schema":{"email_subject":{"type":"TypeString","optional":true},"ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"webhook_payload":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"detector_type":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"severity":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling_duration":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database":{"schema":{"auto_pause_delay_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"creation_source_database_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"elastic_pool_id":{"type":"TypeString","optional":true},"geo_backup_enabled":{"type":"TypeBool","optional":true,"default":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"ledger_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"computed":true},"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"maintenance_configuration_name":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeInt","optional":true,"computed":true},"min_capacity":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_replica_count":{"type":"TypeInt","optional":true,"computed":true},"read_scale":{"type":"TypeBool","optional":true,"computed":true},"recover_database_id":{"type":"TypeString","optional":true},"restore_dropped_database_id":{"type":"TypeString","optional":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"sample_name":{"type":"TypeString","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backup_interval_in_hours":{"type":"TypeInt","optional":true,"default":12},"retention_days":{"type":"TypeInt","required":true}}},"maxItems":1},"sku_name":{"type":"TypeString","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Geo"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"transparent_data_encryption_enabled":{"type":"TypeBool","optional":true,"default":true},"zone_redundant":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_database_extended_auditing_policy":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database_vulnerability_assessment_rule_baseline":{"schema":{"baseline_name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"baseline_result":{"type":"TypeSet","required":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"database_name":{"type":"TypeString","required":true,"forceNew":true},"rule_id":{"type":"TypeString","required":true,"forceNew":true},"server_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"max_size_bytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_gb":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_database_settings":{"type":"TypeList","required":true,"elem":{"schema":{"max_capacity":{"type":"TypeFloat","required":true},"min_capacity":{"type":"TypeFloat","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"family":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_server":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}},"minItems":1},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_job_agent":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_job_credential":{"schema":{"job_agent_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_managed_database":{"schema":{"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_days":{"type":"TypeInt","optional":true,"default":7}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_mssql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true},"login_username":{"type":"TypeString","required":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_vulnerability_assessment":{"schema":{"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":true},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_outbound_firewall_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"azuread_administrator":{"type":"TypeList","optional":true,"elem":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login_username":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1,"minItems":1},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_network_restriction_enabled":{"type":"TypeBool","optional":true,"default":false},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transparent_data_encryption_key_vault_key_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_server_dns_alias":{"schema":{"dns_record":{"type":"TypeString","computed":true},"mssql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_mssql_server_extended_auditing_policy":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_account_subscription_id":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_microsoft_support_auditing_policy":{"schema":{"blob_storage_endpoint":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_subscription_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"server_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"server_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_machine":{"schema":{"assessment":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"run_immediately":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"monthly_occurrence":{"type":"TypeInt","optional":true},"start_time":{"type":"TypeString","required":true},"weekly_interval":{"type":"TypeInt","optional":true}}},"maxItems":1}}},"maxItems":1},"auto_backup":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_password":{"type":"TypeString","optional":true},"manual_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"full_backup_frequency":{"type":"TypeString","required":true},"full_backup_start_hour":{"type":"TypeInt","required":true},"full_backup_window_in_hours":{"type":"TypeInt","required":true},"log_backup_frequency_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_period_in_days":{"type":"TypeInt","required":true},"storage_account_access_key":{"type":"TypeString","required":true},"storage_blob_endpoint":{"type":"TypeString","required":true},"system_databases_backup_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"auto_patching":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window_duration_in_minutes":{"type":"TypeInt","required":true},"maintenance_window_starting_hour":{"type":"TypeInt","required":true}}},"maxItems":1},"key_vault_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_url":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"service_principal_name":{"type":"TypeString","required":true,"forceNew":true},"service_principal_secret":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"r_services_enabled":{"type":"TypeBool","optional":true},"sql_connectivity_port":{"type":"TypeInt","optional":true,"default":1433},"sql_connectivity_type":{"type":"TypeString","optional":true,"default":"PRIVATE"},"sql_connectivity_update_password":{"type":"TypeString","optional":true},"sql_connectivity_update_username":{"type":"TypeString","optional":true},"sql_instance":{"type":"TypeList","optional":true,"elem":{"schema":{"adhoc_workloads_optimization_enabled":{"type":"TypeBool","optional":true,"default":false},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"instant_file_initialization_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"lock_pages_in_memory_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"max_dop":{"type":"TypeInt","optional":true,"default":0},"max_server_memory_mb":{"type":"TypeInt","optional":true,"default":2147483647},"min_server_memory_mb":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"sql_license_type":{"type":"TypeString","optional":true,"forceNew":true},"sql_virtual_machine_group_id":{"type":"TypeString","optional":true},"storage_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"data_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"disk_type":{"type":"TypeString","required":true},"log_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"storage_workload_type":{"type":"TypeString","required":true},"system_db_on_data_disk_enabled":{"type":"TypeBool","optional":true,"default":false},"temp_db_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"data_file_count":{"type":"TypeInt","optional":true,"default":8},"data_file_growth_in_mb":{"type":"TypeInt","optional":true,"default":512},"data_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"default_file_path":{"type":"TypeString","required":true},"log_file_growth_mb":{"type":"TypeInt","optional":true,"default":512},"log_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"wsfc_domain_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_bootstrap_account_password":{"type":"TypeString","required":true},"cluster_operator_account_password":{"type":"TypeString","required":true},"sql_service_account_password":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_virtual_machine_availability_group_listener":{"schema":{"availability_group_name":{"type":"TypeString","optional":true,"forceNew":true},"load_balancer_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"probe_port":{"type":"TypeInt","required":true,"forceNew":true},"sql_virtual_machine_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"multi_subnet_ip_configuration":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"replica":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"commit":{"type":"TypeString","required":true,"forceNew":true},"failover_mode":{"type":"TypeString","required":true,"forceNew":true},"readable_secondary":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}}}},"sql_virtual_machine_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_mssql_virtual_machine_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_image_offer":{"type":"TypeString","required":true,"forceNew":true},"sql_image_sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wsfc_domain_profile":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_bootstrap_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_operator_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_subnet_type":{"type":"TypeString","required":true,"forceNew":true},"fqdn":{"type":"TypeString","required":true,"forceNew":true},"organizational_unit_path":{"type":"TypeString","optional":true,"forceNew":true},"sql_service_account_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_primary_key":{"type":"TypeString","optional":true},"storage_account_url":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_password":{"type":"TypeString","optional":true},"backup_retention_days":{"type":"TypeInt","optional":true,"default":7},"create_mode":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"iops":{"type":"TypeInt","optional":true,"computed":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server_active_directory_administrator":{"schema":{"identity_id":{"type":"TypeString","required":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_nat_gateway_public_ip_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nat_gateway_public_ip_prefix_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_netapp_account":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"domain":{"type":"TypeString","required":true},"organizational_unit":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"smb_server_name":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"qos_type":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"size_in_tb":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"daily_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"hourly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"monthly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"maxItems":30},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"azure_vmware_data_store_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"create_from_snapshot_resource_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true,"forceNew":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_clients":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"protocols_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"root_access_enabled":{"type":"TypeBool","optional":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true},"unix_read_write":{"type":"TypeBool","optional":true}}},"maxItems":5},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_features":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_style":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","optional":true,"computed":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","optional":true,"computed":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"application_identifier":{"type":"TypeString","required":true,"forceNew":true},"group_description":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","required":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","required":true},"nfsv41_enabled":{"type":"TypeBool","required":true},"root_access_enabled":{"type":"TypeBool","optional":true,"default":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true,"default":false},"unix_read_write":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":5,"minItems":1},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"security_style":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","required":true,"forceNew":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"volume_spec_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":5,"minItems":2}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_netapp_volume_quota_rule":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota_size_in_kib":{"type":"TypeInt","required":true},"quota_target":{"type":"TypeString","optional":true,"forceNew":true},"quota_type":{"type":"TypeString","required":true,"forceNew":true},"volume_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_network_connection_monitor":{"schema":{"endpoint":{"type":"TypeSet","required":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"coverage_level":{"type":"TypeString","optional":true},"excluded_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"item":{"type":"TypeSet","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"AgentAddress"}}}},"type":{"type":"TypeString","optional":true,"default":"Include"}}},"maxItems":1},"included_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_resource_id":{"type":"TypeString","optional":true,"computed":true},"target_resource_type":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"output_workspace_resource_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"test_configuration":{"type":"TypeSet","required":true,"elem":{"schema":{"http_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"method":{"type":"TypeString","optional":true,"default":"Get"},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","optional":true},"prefer_https":{"type":"TypeBool","optional":true,"default":false},"request_header":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"valid_status_code_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"icmp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"preferred_ip_version":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"success_threshold":{"type":"TypeList","optional":true,"elem":{"schema":{"checks_failed_percent":{"type":"TypeInt","optional":true},"round_trip_time_ms":{"type":"TypeFloat","optional":true}}},"maxItems":1},"tcp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_port_behavior":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"test_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":60}}}},"test_group":{"type":"TypeSet","required":true,"elem":{"schema":{"destination_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"source_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"test_configuration_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_function_azure_traffic_collector":{"schema":{"collector_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auxiliary_mode":{"type":"TypeString","optional":true},"auxiliary_sku":{"type":"TypeString","optional":true},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"internal_dns_name_label":{"type":"TypeString","optional":true,"computed":true},"internal_domain_name_suffix":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"computed":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_gateway_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_nat_rule_association":{"schema":{"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_security_group_association":{"schema":{"network_interface_id":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager":{"schema":{"cross_tenant_scopes":{"type":"TypeList","computed":true,"elem":{"schema":{"management_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subscriptions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","required":true,"elem":{"schema":{"management_group_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"scope_accesses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule":{"schema":{"action":{"type":"TypeString","required":true},"admin_rule_collection_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"destination_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"source_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule_collection":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"security_admin_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_connectivity_configuration":{"schema":{"applies_to_group":{"type":"TypeList","required":true,"elem":{"schema":{"global_mesh_enabled":{"type":"TypeBool","optional":true},"group_connectivity":{"type":"TypeString","required":true},"network_group_id":{"type":"TypeString","required":true},"use_hub_gateway":{"type":"TypeBool","optional":true}}}},"connectivity_topology":{"type":"TypeString","required":true},"delete_existing_peering_enabled":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"global_mesh_enabled":{"type":"TypeBool","optional":true},"hub":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true},"resource_type":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_deployment":{"schema":{"configuration_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"scope_access":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_network_manager_management_group_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_scope_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"target_scope_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_security_admin_configuration":{"schema":{"apply_on_network_intent_policy_based_services":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_static_member":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_id":{"type":"TypeString","required":true,"forceNew":true},"region":{"type":"TypeString","computed":true},"target_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_network_manager_subscription_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_profile":{"schema":{"container_network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}},"maxItems":1},"container_network_interface_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_rule":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher_flow_log":{"schema":{"enabled":{"type":"TypeBool","required":true},"location":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"storage_account_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"interval_in_minutes":{"type":"TypeInt","optional":true,"default":60},"workspace_id":{"type":"TypeString","required":true},"workspace_region":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}},"maxItems":1},"version":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_new_relic_monitor":{"schema":{"account_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"account_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ingestion_key":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"organization_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","optional":true,"default":"MONTHLY","forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"newrelic-pay-as-you-go-free-live","forceNew":true},"usage_type":{"type":"TypeString","optional":true,"default":"PAYG","forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_new_relic_tag_rule":{"schema":{"activity_log_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_active_directory_log_enabled":{"type":"TypeBool","optional":true,"default":false},"log_tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"metric_enabled":{"type":"TypeBool","optional":true,"default":false},"metric_tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"monitor_id":{"type":"TypeString","required":true,"forceNew":true},"subscription_log_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_nginx_certificate":{"schema":{"certificate_virtual_path":{"type":"TypeString","required":true},"key_vault_secret_id":{"type":"TypeString","required":true},"key_virtual_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_nginx_configuration":{"schema":{"config_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true},"package_data":{"type":"TypeString","optional":true},"protected_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"root_file":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_nginx_deployment":{"schema":{"diagnose_support_enabled":{"type":"TypeBool","optional":true},"frontend_private":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"frontend_public":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"ip_address":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logging_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}}},"managed_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}}},"nginx_version":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"application_mode":{"type":"TypeString","required":true},"bundle_id":{"type":"TypeString","required":true},"key_id":{"type":"TypeString","required":true},"team_id":{"type":"TypeString","required":true},"token":{"type":"TypeString","required":true}}},"maxItems":1},"gcm_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"notification_hub_name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_contact":{"schema":{"contact_profile_id":{"type":"TypeString","required":true,"forceNew":true},"ground_station_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"reservation_end_time":{"type":"TypeString","required":true,"forceNew":true},"reservation_start_time":{"type":"TypeString","required":true,"forceNew":true},"spacecraft_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_orbital_contact_profile":{"schema":{"auto_tracking":{"type":"TypeString","required":true},"event_hub_uri":{"type":"TypeString","optional":true},"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"channels":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"demodulation_configuration":{"type":"TypeString","optional":true},"end_point":{"type":"TypeSet","required":true,"elem":{"schema":{"end_point_name":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","optional":true},"port":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"modulation_configuration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_elevation_degrees":{"type":"TypeFloat","optional":true},"minimum_variable_contact_duration":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_spacecraft":{"schema":{"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"norad_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title_line":{"type":"TypeString","required":true},"two_line_elements":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version_enabled":{"type":"TypeBool","optional":true,"default":true},"extensions_to_provision_after_vm_creation":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"failure_suppression_enabled":{"type":"TypeBool","optional":true},"force_extension_execution_on_change":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"computed":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"os_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_data":{"type":"TypeString","optional":true},"linux_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"windows_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"timezone":{"type":"TypeString","optional":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}}}},"maxItems":1}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"priority_mix":{"type":"TypeList","optional":true,"elem":{"schema":{"base_regular_count":{"type":"TypeInt","optional":true,"default":0},"regular_percentage_above_base":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"computed":true},"sku_name":{"type":"TypeString","optional":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"user_data_base64":{"type":"TypeString","optional":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","optional":true},"anti_virus_profile":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"dns_subscription":{"type":"TypeString","optional":true},"file_blocking_profile":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"url_filtering_profile":{"type":"TypeString","optional":true},"vulnerability_profile":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_certificate":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"self_signed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_fqdn_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"fully_qualified_domain_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_outbound_trust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_outbound_untrust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_prefix_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prefix_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_rule":{"schema":{"action":{"type":"TypeString","required":true},"applications":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"audit_comment":{"type":"TypeString","optional":true},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1,"minItems":1},"decryption_rule_type":{"type":"TypeString","optional":true,"default":"None"},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_fqdn_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"inspection_certificate_id":{"type":"TypeString","optional":true},"logging_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"negate_destination":{"type":"TypeBool","optional":true,"default":false},"negate_source":{"type":"TypeBool","optional":true,"default":false},"priority":{"type":"TypeInt","required":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"application-default"},"protocol_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_palo_alto_virtual_network_appliance":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_active_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"The ticket details.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_eligible_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the eligible role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this eligible role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"Ticket details relating to the assignment.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_point_to_site_vpn_gateway":{"schema":{"connection_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true},"route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"elem":{"schema":{"ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"vpn_client_address_pool":{"type":"TypeList","required":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference_internet_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"scale_unit":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_rule":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","required":true,"forceNew":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_definition_group":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","optional":true},"category":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"policy_definition_reference":{"type":"TypeList","required":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true},"policy_group_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","optional":true,"computed":true}}}},"policy_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"configuration":{"type":"TypeList","required":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true},"content_hash":{"type":"TypeString","optional":true,"computed":true},"content_uri":{"type":"TypeString","optional":true,"computed":true},"parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_tenant_configuration":{"schema":{"private_markdown_storage_enforced":{"type":"TypeBool","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true},"administrator_password":{"type":"TypeString","optional":true},"authentication":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory_auth_enabled":{"type":"TypeBool","optional":true,"default":false},"password_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":false},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true},"customer_managed_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replication_role":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_flexible_server_active_directory_administrator":{"schema":{"object_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_database":{"schema":{"charset":{"type":"TypeString","optional":true,"default":"UTF8","forceNew":true},"collation":{"type":"TypeString","optional":true,"default":"en_US.utf8","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_postgresql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_powerbi_embedded":{"schema":{"administrators":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","optional":true,"default":"Gen1","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"target_dns_servers":{"type":"TypeList","required":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"port":{"type":"TypeInt","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","required":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"subnet_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":10},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_zone_name":{"type":"TypeString","required":true,"forceNew":true},"registration_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_endpoint":{"schema":{"custom_dns_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"custom_network_interface_name":{"type":"TypeString","optional":true,"forceNew":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"member_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_dns_zone_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"record_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"type":{"type":"TypeString","computed":true}}}}}}},"private_dns_zone_group":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_zone_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"private_service_connection":{"type":"TypeList","required":true,"elem":{"schema":{"is_manual_connection":{"type":"TypeBool","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_connection_resource_alias":{"type":"TypeString","optional":true,"forceNew":true},"private_connection_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"request_message":{"type":"TypeString","optional":true},"subresource_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_private_endpoint_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","optional":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary":{"type":"TypeBool","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":8},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_proximity_placement_group":{"schema":{"allowed_vm_sizes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ddos_protection_mode":{"type":"TypeString","optional":true,"default":"VirtualNetworkInherited"},"ddos_protection_plan_id":{"type":"TypeString","optional":true},"domain_name_label":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_fqdn":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"prefix_length":{"type":"TypeInt","optional":true,"default":28,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_purview_account":{"schema":{"atlas_kafka_endpoint_primary_connection_string":{"type":"TypeString","computed":true},"atlas_kafka_endpoint_secondary_connection_string":{"type":"TypeString","computed":true},"catalog_endpoint":{"type":"TypeString","computed":true},"guardian_endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_resources":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_namespace_id":{"type":"TypeString","computed":true},"resource_group_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scan_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_recovery_services_vault":{"schema":{"classic_vmware_replication_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"cross_region_restore_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"infrastructure_encryption_enabled":{"type":"TypeBool","required":true},"key_id":{"type":"TypeString","required":true},"use_system_assigned_identity":{"type":"TypeBool","optional":true,"default":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"monitoring":{"type":"TypeList","optional":true,"elem":{"schema":{"alerts_for_all_job_failures_enabled":{"type":"TypeBool","optional":true,"default":true},"alerts_for_critical_operation_failures_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"soft_delete_enabled":{"type":"TypeBool","optional":true,"default":true},"storage_mode_type":{"type":"TypeString","optional":true,"default":"GeoRedundant"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":30,"update":60}},"azurerm_recovery_services_vault_resource_guard_association":{"schema":{"name":{"type":"TypeString","optional":true,"default":"VaultProxy","forceNew":true},"resource_guard_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","required":true},"enable_non_ssl_port":{"type":"TypeBool","optional":true,"default":false},"family":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"patch_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window":{"type":"TypeString","optional":true,"default":"PT5H"},"start_hour_utc":{"type":"TypeInt","optional":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"redis_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","optional":true},"aof_storage_connection_string_0":{"type":"TypeString","optional":true},"aof_storage_connection_string_1":{"type":"TypeString","optional":true},"enable_authentication":{"type":"TypeBool","optional":true,"default":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_delta":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_policy":{"type":"TypeString","optional":true,"default":"volatile-lru"},"maxmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"notify_keyspace_events":{"type":"TypeString","optional":true},"rdb_backup_enabled":{"type":"TypeBool","optional":true},"rdb_backup_frequency":{"type":"TypeInt","optional":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","optional":true},"rdb_storage_connection_string":{"type":"TypeString","optional":true}}},"maxItems":1},"redis_version":{"type":"TypeString","optional":true,"computed":true},"replicas_per_master":{"type":"TypeInt","optional":true,"computed":true},"replicas_per_primary":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_redis_enterprise_cluster":{"schema":{"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_enterprise_database":{"schema":{"client_protocol":{"type":"TypeString","optional":true,"default":"Encrypted","forceNew":true},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"clustering_policy":{"type":"TypeString","optional":true,"default":"OSSCluster","forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"default":"VolatileLRU","forceNew":true},"linked_database_group_nickname":{"type":"TypeString","optional":true,"forceNew":true},"linked_database_id":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"module":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"args":{"type":"TypeString","optional":true,"default":"","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}}},"maxItems":4},"name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"port":{"type":"TypeInt","optional":true,"default":10000,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_firewall_rule":{"schema":{"end_ip":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_linked_server":{"schema":{"linked_redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"linked_redis_cache_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_role":{"type":"TypeString","required":true,"forceNew":true},"target_redis_cache_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_relay_hybrid_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"relay_namespace_name":{"type":"TypeString","required":true,"forceNew":true},"requires_client_authorization":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_hybrid_connection_authorization_rule":{"schema":{"hybrid_connection_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_namespace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"metric_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_relay_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_cli":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_power_shell":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_by":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_resource_group_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_resource_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_provider_registration":{"schema":{"feature":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"registered":{"type":"TypeBool","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":30,"update":120}},"azurerm_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_resource_id":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":60}},"azurerm_route":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"communities":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rule_type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_map":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeList","required":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true}}}},"match_criterion":{"type":"TypeList","optional":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_condition":{"type":"TypeString","required":true},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"next_step_if_matched":{"type":"TypeString","optional":true,"default":"Unknown"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_server":{"schema":{"branch_to_branch_traffic_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_route_server_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"route_server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_route_table":{"schema":{"disable_bgp_route_propagation":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_search_service":{"schema":{"allowed_ips":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_failure_mode":{"type":"TypeString","optional":true},"customer_managed_key_enforcement_enabled":{"type":"TypeBool","optional":true,"default":false},"hosting_mode":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","optional":true,"default":1},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","optional":true,"default":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_search_shared_private_link_service":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"search_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_assessment":{"schema":{"additional_data":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"assessment_policy_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeList","required":true,"elem":{"schema":{"cause":{"type":"TypeString","optional":true},"code":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_assessment_policy":{"schema":{"categories":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"implementation_effort":{"type":"TypeString","optional":true},"name":{"type":"TypeString","computed":true},"remediation_description":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true,"default":"Medium"},"threats":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"user_impact":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_auto_provisioning":{"schema":{"auto_provision":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_automation":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","required":true},"trigger_url":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"source":{"type":"TypeList","required":true,"elem":{"schema":{"event_source":{"type":"TypeString","required":true},"rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule":{"type":"TypeList","required":true,"elem":{"schema":{"expected_value":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"property_path":{"type":"TypeString","required":true},"property_type":{"type":"TypeString","required":true}}}}}}}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_contact":{"schema":{"alert_notifications":{"type":"TypeBool","required":true},"alerts_to_admins":{"type":"TypeBool","required":true},"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"default":"default1"},"phone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_server_vulnerability_assessment":{"schema":{"hybrid_machine_id":{"type":"TypeString","optional":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_server_vulnerability_assessment_virtual_machine":{"schema":{"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_setting":{"schema":{"enabled":{"type":"TypeBool","required":true},"setting_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":10,"read":5,"delete":10,"update":10}},"azurerm_security_center_subscription_pricing":{"schema":{"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_extension_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"resource_type":{"type":"TypeString","optional":true,"default":"VirtualMachines"},"subplan":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_workspace":{"schema":{"scope":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sentinel_alert_rule_anomaly_built_in":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_anomaly_duplicate":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"built_in_rule_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"is_default_settings":{"type":"TypeBool","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true},"prioritized_exclude_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prioritize":{"type":"TypeString","optional":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_fusion":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"sub_type":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"severities_allowed":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_machine_learning_behavior_analytics":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_ms_security_incident":{"schema":{"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"display_name_exclude_filter":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name_filter":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_filter":{"type":"TypeString","required":true},"severity_filter":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_nrt":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident_enabled":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_scheduled":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"group_by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_frequency":{"type":"TypeString","optional":true,"default":"PT5H"},"query_period":{"type":"TypeString","optional":true,"default":"PT5H"},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","optional":true,"default":"GreaterThan"},"trigger_threshold":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_threat_intelligence":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_automation_rule":{"schema":{"action_incident":{"type":"TypeList","optional":true,"elem":{"schema":{"classification":{"type":"TypeString","optional":true},"classification_comment":{"type":"TypeString","optional":true},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"owner_id":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true},"status":{"type":"TypeString","optional":true}}}},"action_playbook":{"type":"TypeList","optional":true,"elem":{"schema":{"logic_app_id":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"condition":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"condition_json":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiration":{"type":"TypeString","optional":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true},"triggers_on":{"type":"TypeString","optional":true,"default":"Incidents"},"triggers_when":{"type":"TypeString","optional":true,"default":"Created"}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_sentinel_data_connector_aws_cloud_trail":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_aws_s3":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"destination_table":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sqs_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_azure_active_directory":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_security_center":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_dynamics_365":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_iot":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_cloud_app_security":{"schema":{"alerts_enabled":{"type":"TypeBool","optional":true,"default":true},"discovery_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_microsoft_defender_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_intelligence":{"schema":{"bing_safety_phishing_url_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_emerging_threat_feed_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_365":{"schema":{"exchange_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sharepoint_enabled":{"type":"TypeBool","optional":true,"default":true},"teams_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_office_365_project":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_atp":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_irm":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_power_bi":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence_taxii":{"schema":{"api_root_url":{"type":"TypeString","required":true},"collection_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z"},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"polling_frequency":{"type":"TypeString","optional":true,"default":"OnceAnHour"},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_log_analytics_workspace_onboarding":{"schema":{"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_metadata":{"schema":{"author":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"domains":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verticals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content_id":{"type":"TypeString","required":true},"content_schema_version":{"type":"TypeString","optional":true,"default":"2.0"},"custom_version":{"type":"TypeString","optional":true},"dependency":{"type":"TypeString","optional":true},"first_publish_date":{"type":"TypeString","optional":true},"icon_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"last_publish_date":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true},"preview_images":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"preview_images_dark":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"threat_analysis_tactics":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_analysis_techniques":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_threat_intelligence_indicator":{"schema":{"confidence":{"type":"TypeInt","optional":true,"default":-1},"created_by":{"type":"TypeString","optional":true},"created_on":{"type":"TypeString","computed":true},"defanged":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"extension":{"type":"TypeString","optional":true,"computed":true},"external_id":{"type":"TypeString","computed":true},"external_last_updated_time_utc":{"type":"TypeString","computed":true},"external_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"hashes":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"source_name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}}},"granular_marking":{"type":"TypeList","optional":true,"elem":{"schema":{"language":{"type":"TypeString","optional":true},"marking_ref":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"guid":{"type":"TypeString","computed":true},"indicator_type":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kill_chain_phase":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true}}}},"language":{"type":"TypeString","optional":true},"last_updated_time_utc":{"type":"TypeString","computed":true},"object_marking_refs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parsed_pattern":{"type":"TypeList","computed":true,"elem":{"schema":{"pattern_type_key":{"type":"TypeString","computed":true},"pattern_type_values":{"type":"TypeList","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true},"value_type":{"type":"TypeString","computed":true}}}}}}},"pattern":{"type":"TypeString","required":true},"pattern_type":{"type":"TypeString","required":true},"pattern_version":{"type":"TypeString","optional":true},"revoked":{"type":"TypeBool","optional":true,"default":false},"source":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"validate_from_utc":{"type":"TypeString","required":true},"validate_until_utc":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_watchlist":{"schema":{"default_duration":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"item_search_key":{"type":"TypeString","required":true,"forceNew":true},"labels":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_watchlist_item":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"properties":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"watchlist_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_cluster":{"schema":{"add_on_features":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"azure_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"client_certificate_common_name":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","required":true},"is_admin":{"type":"TypeBool","required":true},"issuer_thumbprint":{"type":"TypeString","optional":true}}}},"client_certificate_thumbprint":{"type":"TypeList","optional":true,"elem":{"schema":{"is_admin":{"type":"TypeBool","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"cluster_code_version":{"type":"TypeString","optional":true,"computed":true},"cluster_endpoint":{"type":"TypeString","computed":true},"diagnostics_config":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_endpoint":{"type":"TypeString","required":true},"protected_account_key_name":{"type":"TypeString","required":true},"queue_endpoint":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"fabric_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_endpoint":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","required":true,"elem":{"schema":{"application_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"client_endpoint_port":{"type":"TypeInt","required":true},"durability_level":{"type":"TypeString","optional":true,"default":"Bronze"},"ephemeral_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"http_endpoint_port":{"type":"TypeInt","required":true},"instance_count":{"type":"TypeInt","required":true},"is_primary":{"type":"TypeBool","required":true},"is_stateless":{"type":"TypeBool","optional":true},"multiple_availability_zones":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reverse_proxy_endpoint_port":{"type":"TypeInt","optional":true}}}},"reliability_level":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_proxy_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"reverse_proxy_certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"service_fabric_zonal_upgrade_mode":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_mode":{"type":"TypeString","required":true},"upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"delta_health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_delta_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0},"max_upgrade_domain_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"force_restart_enabled":{"type":"TypeBool","optional":true},"health_check_retry_timeout":{"type":"TypeString","optional":true,"default":"00:45:00"},"health_check_stable_duration":{"type":"TypeString","optional":true,"default":"00:01:00"},"health_check_wait_duration":{"type":"TypeString","optional":true,"default":"00:00:30"},"health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"upgrade_domain_timeout":{"type":"TypeString","optional":true,"default":"02:00:00"},"upgrade_replica_set_check_timeout":{"type":"TypeString","optional":true,"default":"10675199.02:48:05.4775807"},"upgrade_timeout":{"type":"TypeString","optional":true,"default":"12:00:00"}}},"maxItems":1},"vm_image":{"type":"TypeString","required":true,"forceNew":true},"vmss_zonal_upgrade_mode":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_managed_cluster":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","optional":true},"thumbprint":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"backup_service_enabled":{"type":"TypeBool","optional":true},"client_connection_port":{"type":"TypeInt","required":true},"custom_fabric_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","required":true},"section":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dns_name":{"type":"TypeString","optional":true,"computed":true},"dns_service_enabled":{"type":"TypeBool","optional":true},"http_gateway_port":{"type":"TypeInt","required":true},"lb_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true},"frontend_port":{"type":"TypeInt","required":true},"probe_protocol":{"type":"TypeString","required":true},"probe_request_path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","optional":true,"elem":{"schema":{"application_port_range":{"type":"TypeString","required":true},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"data_disk_size_gb":{"type":"TypeInt","required":true},"data_disk_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"},"ephemeral_port_range":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"multiple_placement_groups_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"primary":{"type":"TypeBool","optional":true},"stateless":{"type":"TypeBool","optional":true},"vm_image_offer":{"type":"TypeString","required":true},"vm_image_publisher":{"type":"TypeString","required":true},"vm_image_sku":{"type":"TypeString","required":true},"vm_image_version":{"type":"TypeString","required":true},"vm_instance_count":{"type":"TypeInt","required":true},"vm_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"certificates":{"type":"TypeList","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}}},"vault_id":{"type":"TypeString","required":true}}}},"vm_size":{"type":"TypeString","required":true}}}},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_wave":{"type":"TypeString","optional":true,"default":"Wave0"},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling_enabled":{"type":"TypeBool","optional":true,"default":false},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","optional":true,"computed":true},"zone_balancing_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":0},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_id":{"type":"TypeString","required":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_network_rule_set":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true,"default":false},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true,"default":true},"enable_express":{"type":"TypeBool","optional":true,"default":false},"enable_partitioning":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"client_scoped_subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"forceNew":true},"is_client_scoped_subscription_durable":{"type":"TypeBool","computed":true},"is_client_scoped_subscription_shareable":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"client_scoped_subscription_enabled":{"type":"TypeBool","optional":true,"default":false},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","optional":true,"default":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription_rule":{"schema":{"action":{"type":"TypeString","optional":true},"correlation_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","optional":true},"correlation_id":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"message_id":{"type":"TypeString","optional":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reply_to":{"type":"TypeString","optional":true},"reply_to_session_id":{"type":"TypeString","optional":true},"session_id":{"type":"TypeString","optional":true},"to":{"type":"TypeString","optional":true}}},"maxItems":1},"filter_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_filter":{"type":"TypeString","optional":true},"sql_filter_compatibility_level":{"type":"TypeInt","computed":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"enable_express":{"type":"TypeBool","optional":true},"enable_partitioning":{"type":"TypeBool","optional":true,"forceNew":true},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"support_ordering":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image":{"schema":{"accelerated_network_support_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"architecture":{"type":"TypeString","optional":true,"default":"x64","forceNew":true},"confidential_vm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"confidential_vm_supported":{"type":"TypeBool","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"disk_types_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true,"forceNew":true},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"identifier":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"max_recommended_vcpu_count":{"type":"TypeInt","optional":true},"min_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"min_recommended_vcpu_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true,"forceNew":true},"purchase_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_note_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"specialized":{"type":"TypeBool","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"community_gallery":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"eula":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"prefix":{"type":"TypeString","required":true,"forceNew":true},"publisher_email":{"type":"TypeString","required":true,"forceNew":true},"publisher_uri":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"permission":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_version":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"deletion_of_replicated_locations_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"image_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_image_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk_snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"replication_mode":{"type":"TypeString","optional":true,"default":"Full","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"exclude_from_latest_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"hostname":{"type":"TypeString","computed":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"live_trace_enabled":{"type":"TypeBool","optional":true,"default":false},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":30},"service_mode":{"type":"TypeString","optional":true,"default":"Default"},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"upstream_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"category_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"event_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hub_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_network_acl":{"schema":{"default_action":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"sub_resource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"source_network_name":{"type":"TypeString","required":true,"forceNew":true},"source_system_center_virtual_machine_manager_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_site_recovery_hyperv_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_hours":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_hours":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"replication_interval_in_seconds":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_replication_policy_association":{"schema":{"hyperv_site_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_site_recovery_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_network_id":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container_mapping":{"schema":{"automatic_update":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true},"automation_account_id":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_source_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_target_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replicated_vm":{"schema":{"managed_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_id":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_disk_encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","configMode":"Auto","required":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_encryption_key":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"target_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"target_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_replica_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true}}}},"multi_vm_group_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"failover_test_public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"failover_test_static_ip":{"type":"TypeString","optional":true,"computed":true},"failover_test_subnet_name":{"type":"TypeString","optional":true,"computed":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"recovery_public_ip_address_id":{"type":"TypeString","optional":true},"source_network_interface_id":{"type":"TypeString","optional":true,"computed":true},"target_static_ip":{"type":"TypeString","optional":true},"target_subnet_name":{"type":"TypeString","optional":true}}}},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","required":true,"forceNew":true},"target_availability_set_id":{"type":"TypeString","optional":true},"target_boot_diagnostic_storage_account_id":{"type":"TypeString","optional":true},"target_capacity_reservation_group_id":{"type":"TypeString","optional":true},"target_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"target_network_id":{"type":"TypeString","optional":true,"computed":true},"target_proximity_placement_group_id":{"type":"TypeString","optional":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"target_virtual_machine_scale_set_id":{"type":"TypeString","optional":true},"target_zone":{"type":"TypeString","optional":true,"forceNew":true},"test_network_id":{"type":"TypeString","optional":true,"computed":true},"unmanaged_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_uri":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}}}}},"timeouts":{"create":180,"read":5,"delete":80,"update":80}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"primary_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_zone":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"boot_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"failover_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_group":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"minItems":3},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"shutdown_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"source_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_services_vault_hyperv_site":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":180}},"azurerm_site_recovery_vmware_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_vmware_replication_policy_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_snapshot":{"schema":{"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"incremental_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_accelerator":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_active_deployment":{"schema":{"deployment_name":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_api_portal":{"schema":{"gateway_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"https_only_enabled":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_spring_cloud_api_portal_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_api_portal_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"custom_persistent_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"mount_path":{"type":"TypeString","required":true},"read_only_enabled":{"type":"TypeBool","optional":true,"default":false},"share_name":{"type":"TypeString","required":true},"storage_name":{"type":"TypeString","required":true}}},"minItems":1},"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backend_protocol":{"type":"TypeString","optional":true,"default":"Default"},"read_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":300},"send_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":60},"session_affinity":{"type":"TypeString","optional":true,"default":"None"},"session_cookie_max_age":{"type":"TypeInt","optional":true}}},"maxItems":1},"is_public":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"persistent_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","optional":true,"default":"/persistent"},"size_in_gb":{"type":"TypeInt","required":true}}},"maxItems":1},"public_endpoint_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"tls_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_cosmosdb_association":{"schema":{"api_type":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_access_key":{"type":"TypeString","required":true},"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_cassandra_keyspace_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_database_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_graph_name":{"type":"TypeString","optional":true},"cosmosdb_mongo_database_name":{"type":"TypeString","optional":true},"cosmosdb_sql_database_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_mysql_association":{"schema":{"database_name":{"type":"TypeString","required":true},"mysql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_redis_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"redis_access_key":{"type":"TypeString","required":true},"redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_application_live_view":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_build_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"build_result_id":{"type":"TypeString","required":true},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_build_pack_binding":{"schema":{"binding_type":{"type":"TypeString","optional":true},"launch":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_builder_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_builder":{"schema":{"build_pack_group":{"type":"TypeSet","required":true,"elem":{"schema":{"build_pack_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"stack":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_certificate":{"schema":{"certificate_content":{"type":"TypeString","optional":true,"forceNew":true},"exclude_private_key":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_configuration_service":{"schema":{"generation":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"ca_certificate_id":{"type":"TypeString","optional":true},"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"label":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"patterns":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"private_key":{"type":"TypeString","optional":true},"search_paths":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"strict_host_key_checking":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}}}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_connection":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"spring_cloud_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_container_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"arguments":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"commands":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"language_framework":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"server":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_custom_domain":{"schema":{"certificate_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_customized_accelerator":{"schema":{"accelerator_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"git_repository":{"type":"TypeList","required":true,"elem":{"schema":{"basic_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"ca_certificate_id":{"type":"TypeString","optional":true},"commit":{"type":"TypeString","optional":true},"git_tag":{"type":"TypeString","optional":true},"interval_in_seconds":{"type":"TypeInt","optional":true},"ssh_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}}},"maxItems":1},"icon_url":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_accelerator_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_dev_tool_portal":{"schema":{"application_accelerator_enabled":{"type":"TypeBool","optional":true,"computed":true},"application_live_view_enabled":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"metadata_url":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway":{"schema":{"api_metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"documentation_url":{"type":"TypeString","optional":true},"server_url":{"type":"TypeString","optional":true},"title":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"application_performance_monitoring_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verification_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origin_patterns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","optional":true},"exposed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"max_age_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"https_only":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"default":"1"},"memory":{"type":"TypeString","optional":true,"default":"2Gi"}}},"maxItems":1},"sensitive_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_route_config":{"schema":{"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"open_api":{"type":"TypeList","optional":true,"elem":{"schema":{"uri":{"type":"TypeString","optional":true}}},"maxItems":1},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeString","optional":true,"default":"HTTP"},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"classification_tags":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"sso_validation_enabled":{"type":"TypeBool","optional":true},"title":{"type":"TypeString","optional":true},"token_relay":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","optional":true}}}},"spring_cloud_app_id":{"type":"TypeString","optional":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"sso_validation_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_java_deployment":{"schema":{"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"jvm_options":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"default":"Java_8"},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_service":{"schema":{"build_agent_pool_size":{"type":"TypeString","optional":true},"config_server_git_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"pattern":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"container_registry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"server":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"default_build_service":{"type":"TypeList","optional":true,"elem":{"schema":{"container_registry_name":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"log_stream_public_endpoint_enabled":{"type":"TypeBool","optional":true},"marketplace":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"plan":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"app_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"app_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"cidr_ranges":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":3},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"read_timeout_seconds":{"type":"TypeInt","optional":true},"service_runtime_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_runtime_subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_registry_enabled":{"type":"TypeBool","optional":true},"service_registry_id":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"S0","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"sample_rate":{"type":"TypeFloat","optional":true,"default":10}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_date":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","optional":true,"computed":true},"elastic_pool_name":{"type":"TypeString","optional":true,"computed":true},"encryption":{"type":"TypeString","computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"operation_mode":{"type":"TypeString","optional":true,"default":"Import"},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_size_bytes":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_scale":{"type":"TypeBool","optional":true,"default":false},"requested_service_objective_id":{"type":"TypeString","optional":true,"computed":true},"requested_service_objective_name":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"source_database_deletion_date":{"type":"TypeString","optional":true,"computed":true},"source_database_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_elasticpool":{"schema":{"creation_date":{"type":"TypeString","computed":true},"db_dtu_max":{"type":"TypeInt","optional":true,"computed":true},"db_dtu_min":{"type":"TypeInt","optional":true,"computed":true},"dtu":{"type":"TypeInt","required":true},"edition":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_size":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_servers":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_database":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"default":false},"login":{"type":"TypeString","required":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"computed":true},"email_addresses":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ssh_public_key":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_stack_hci_cluster":{"schema":{"automanage_configuration_id":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site":{"schema":{"api_key":{"type":"TypeString","computed":true},"default_host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_size":{"type":"TypeString","optional":true,"default":"Free"},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"static_site_id":{"type":"TypeString","required":true,"forceNew":true},"validation_token":{"type":"TypeString","computed":true},"validation_type":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"account_kind":{"type":"TypeString","optional":true,"default":"StorageV2"},"account_replication_type":{"type":"TypeString","required":true},"account_tier":{"type":"TypeString","required":true,"forceNew":true},"allow_nested_items_to_be_public":{"type":"TypeBool","optional":true,"default":true},"allowed_copy_scope":{"type":"TypeString","optional":true},"azure_files_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","required":true},"domain_sid":{"type":"TypeString","optional":true},"forest_name":{"type":"TypeString","optional":true},"netbios_domain_name":{"type":"TypeString","optional":true},"storage_sid":{"type":"TypeString","optional":true}}},"maxItems":1},"directory_type":{"type":"TypeString","required":true}}},"maxItems":1},"blob_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"change_feed_enabled":{"type":"TypeBool","optional":true,"default":false},"change_feed_retention_in_days":{"type":"TypeInt","optional":true},"container_delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"default_service_version":{"type":"TypeString","optional":true,"computed":true},"delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"last_access_time_enabled":{"type":"TypeBool","optional":true,"default":false},"restore_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true}}},"maxItems":1},"versioning_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cross_tenant_replication_enabled":{"type":"TypeBool","optional":true,"default":true},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"use_subdomain":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_to_oauth_authentication":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_https_traffic_only":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_protected_append_writes":{"type":"TypeBool","required":true},"period_since_creation_in_days":{"type":"TypeInt","required":true},"state":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"is_hns_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"large_file_share_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"default":"TLS1_2"},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"nfsv3_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"queue_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"queue_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"hour_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"logging":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"delete":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"minute_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"choice":{"type":"TypeString","optional":true,"default":"MicrosoftRouting"},"publish_internet_endpoints":{"type":"TypeBool","optional":true,"default":false},"publish_microsoft_endpoints":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sas_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_action":{"type":"TypeString","optional":true,"default":"Log"},"expiration_period":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"sftp_enabled":{"type":"TypeBool","optional":true,"default":false},"share_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"smb":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"channel_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"kerberos_ticket_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"multichannel_enabled":{"type":"TypeBool","optional":true,"default":false},"versions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"shared_access_key_enabled":{"type":"TypeBool","optional":true,"default":true},"static_website":{"type":"TypeList","optional":true,"elem":{"schema":{"error_404_document":{"type":"TypeString","optional":true},"index_document":{"type":"TypeString","optional":true}}},"maxItems":1},"table_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_account_customer_managed_key":{"schema":{"federated_identity_client_id":{"type":"TypeString","optional":true},"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"key_vault_uri":{"type":"TypeString","optional":true,"computed":true},"key_version":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_local_user":{"schema":{"home_directory":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","computed":true},"permission_scope":{"type":"TypeList","optional":true,"elem":{"schema":{"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"create":{"type":"TypeBool","optional":true,"default":false},"delete":{"type":"TypeBool","optional":true,"default":false},"list":{"type":"TypeBool","optional":true,"default":false},"read":{"type":"TypeBool","optional":true,"default":false},"write":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_name":{"type":"TypeString","required":true},"service":{"type":"TypeString","required":true}}}},"sid":{"type":"TypeString","computed":true},"ssh_authorized_key":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true}}}},"ssh_key_enabled":{"type":"TypeBool","optional":true,"default":false},"ssh_password_enabled":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_network_rules":{"schema":{"bypass":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_subnet_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"cache_control":{"type":"TypeString","optional":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallelism":{"type":"TypeInt","optional":true,"default":8,"forceNew":true},"size":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"source_content":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_blob_inventory_policy":{"schema":{"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"exclude_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"include_blob_versions":{"type":"TypeBool","optional":true,"default":false},"include_deleted":{"type":"TypeBool","optional":true,"default":false},"include_snapshots":{"type":"TypeBool","optional":true,"default":false},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10}}},"maxItems":1},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true},"schema_fields":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","optional":true,"default":"private"},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_filesystem":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"group":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"owner":{"type":"TypeString","optional":true,"computed":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_path":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"filesystem_name":{"type":"TypeString","required":true,"forceNew":true},"group":{"type":"TypeString","optional":true,"computed":true},"owner":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","required":true,"forceNew":true},"resource":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_encryption_scope":{"schema":{"infrastructure_encryption_required":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"base_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","optional":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"snapshot":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"version":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"filters":{"type":"TypeList","required":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operation":{"type":"TypeString","optional":true,"default":"=="},"value":{"type":"TypeString","required":true}}}},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_agent":{"schema":{"arc_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"arc_virtual_machine_uuid":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_job_definition":{"schema":{"agent_name":{"type":"TypeString","optional":true},"copy_mode":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source_name":{"type":"TypeString","required":true,"forceNew":true},"source_sub_path":{"type":"TypeString","optional":true,"forceNew":true},"storage_mover_project_id":{"type":"TypeString","required":true,"forceNew":true},"target_name":{"type":"TypeString","required":true,"forceNew":true},"target_sub_path":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_project":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_source_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"export":{"type":"TypeString","optional":true,"forceNew":true},"host":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nfs_version":{"type":"TypeString","optional":true,"default":"NFSauto","forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_target_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_object_replication":{"schema":{"destination_object_replication_id":{"type":"TypeString","computed":true},"destination_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"copy_blobs_created_after":{"type":"TypeString","optional":true,"default":"OnlyNewObjects"},"destination_container_name":{"type":"TypeString","required":true,"forceNew":true},"filter_out_blobs_with_prefix":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"source_container_name":{"type":"TypeString","required":true,"forceNew":true}}}},"source_object_replication_id":{"type":"TypeString","computed":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_queue":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}}},"id":{"type":"TypeString","required":true}}}},"enabled_protocol":{"type":"TypeString","optional":true,"default":"SMB","forceNew":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeInt","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_directory":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"share_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_file":{"schema":{"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_length":{"type":"TypeInt","computed":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","optional":true,"default":"","forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"storage_share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","optional":true,"default":"AllowAllTraffic"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync_cloud_endpoint":{"schema":{"file_share_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_sync_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"storage_sync_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_storage_table":{"schema":{"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","required":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"streaming_capacity":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_stream_analytics_function_javascript_uda":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"script":{"type":"TypeString","required":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_function_javascript_udf":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","optional":true,"computed":true},"content_storage_policy":{"type":"TypeString","optional":true,"default":"SystemAccount"},"data_locale":{"type":"TypeString","optional":true,"computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":5},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":0},"events_out_of_order_policy":{"type":"TypeString","optional":true,"default":"Adjust"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"job_id":{"type":"TypeString","computed":true},"job_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_error_policy":{"type":"TypeString","optional":true,"default":"Drop"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_id":{"type":"TypeString","optional":true},"streaming_units":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transformation_query":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true,"default":"Cloud","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job_schedule":{"schema":{"last_output_time":{"type":"TypeString","computed":true},"start_mode":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5}},"azurerm_stream_analytics_output_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"batch_max_wait_time":{"type":"TypeString","optional":true},"batch_min_rows":{"type":"TypeInt","optional":true},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_cosmosdb":{"schema":{"container_name":{"type":"TypeString","required":true},"cosmosdb_account_key":{"type":"TypeString","required":true},"cosmosdb_sql_database_id":{"type":"TypeString","required":true},"document_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_function":{"schema":{"api_key":{"type":"TypeString","required":true},"batch_max_count":{"type":"TypeInt","optional":true,"default":100},"batch_max_in_bytes":{"type":"TypeInt","optional":true,"default":262144},"function_app":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_mssql":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"database":{"type":"TypeString","required":true,"forceNew":true},"max_batch_count":{"type":"TypeFloat","optional":true,"default":10000},"max_writer_count":{"type":"TypeFloat","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_powerbi":{"schema":{"dataset":{"type":"TypeString","required":true},"group_id":{"type":"TypeString","required":true},"group_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true},"token_user_display_name":{"type":"TypeString","optional":true},"token_user_principal_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_queue":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"queue_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_topic":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_synapse":{"schema":{"database":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_table":{"schema":{"batch_size":{"type":"TypeInt","required":true},"columns_to_remove":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_mssql":{"schema":{"database":{"type":"TypeString","required":true},"delta_snapshot_query":{"type":"TypeString","optional":true},"full_snapshot_query":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"refresh_interval_duration":{"type":"TypeString","optional":true},"refresh_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_blob":{"schema":{"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub_v2":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_iothub":{"schema":{"endpoint":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"iothub_namespace":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"shared_access_policy_key":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"delegation":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"service_delegation":{"type":"TypeList","required":true,"elem":{"schema":{"actions":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}},"maxItems":1}}}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","optional":true,"computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_endpoint_policy_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"service_endpoints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_nat_gateway_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_network_security_group_association":{"schema":{"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_route_table_association":{"schema":{"route_table_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_service_endpoint_storage_policy":{"schema":{"definition":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"service":{"type":"TypeString","optional":true,"default":"Microsoft.Storage"},"service_resources":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription":{"schema":{"alias":{"type":"TypeString","optional":true,"description":"The Alias Name of the subscription. If omitted a new UUID will be generated for this property.","computed":true,"forceNew":true},"billing_scope_id":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true,"description":"The GUID of the Subscription.","computed":true,"forceNew":true},"subscription_name":{"type":"TypeString","required":true,"description":"The Display Name for the Subscription."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID to which the subscription belongs","computed":true},"workload":{"type":"TypeString","optional":true,"description":"The workload type for the Subscription. Possible values are `Production` (default) and `DevTest`.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_synapse_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_azure":{"schema":{"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_self_hosted":{"schema":{"authorization_key_primary":{"type":"TypeString","computed":true},"authorization_key_secondary":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_linked_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_private_link_hub":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_role_assignment":{"schema":{"principal_id":{"type":"TypeString","required":true,"forceNew":true},"role_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_spark_pool":{"schema":{"auto_pause":{"type":"TypeList","optional":true,"elem":{"schema":{"delay_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true},"min_node_count":{"type":"TypeInt","required":true}}},"maxItems":1},"cache_size":{"type":"TypeInt","optional":true},"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_executor_allocation_enabled":{"type":"TypeBool","optional":true,"default":false},"library_requirement":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"max_executors":{"type":"TypeInt","optional":true},"min_executors":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true},"node_size":{"type":"TypeString","required":true},"node_size_family":{"type":"TypeString","required":true},"session_level_packages_enabled":{"type":"TypeBool","optional":true,"default":false},"spark_config":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"spark_events_folder":{"type":"TypeString","optional":true,"default":"/events"},"spark_log_folder":{"type":"TypeString","optional":true,"default":"/logs"},"spark_version":{"type":"TypeString","optional":true,"default":"2.4"},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"data_encrypted":{"type":"TypeBool","optional":true},"geo_backup_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_database_id":{"type":"TypeString","optional":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"point_in_time":{"type":"TypeString","required":true,"forceNew":true},"source_database_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sql_pool_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment_baseline":{"schema":{"baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"rule_name":{"type":"TypeString","required":true},"sql_pool_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_classifier":{"schema":{"context":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"importance":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"member_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true},"workload_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_group":{"schema":{"importance":{"type":"TypeString","optional":true,"default":"normal"},"max_resource_percent":{"type":"TypeInt","required":true},"max_resource_percent_per_request":{"type":"TypeFloat","optional":true,"default":3},"min_resource_percent":{"type":"TypeInt","required":true},"min_resource_percent_per_request":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_execution_timeout_in_seconds":{"type":"TypeInt","optional":true},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace":{"schema":{"aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"azure_devops_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"last_commit_id":{"type":"TypeString","optional":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"compute_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","optional":true,"default":"cmk"},"key_versionless_id":{"type":"TypeString","required":true}}},"maxItems":1},"data_exfiltration_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"github_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","optional":true},"last_commit_id":{"type":"TypeString","optional":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"linking_allowed_for_aad_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sql_administrator_login":{"type":"TypeString","optional":true,"forceNew":true},"sql_administrator_login_password":{"type":"TypeString","optional":true},"sql_identity_control_enabled":{"type":"TypeBool","optional":true},"storage_data_lake_gen2_filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_key":{"schema":{"active":{"type":"TypeBool","required":true},"customer_managed_key_name":{"type":"TypeString","required":true},"customer_managed_key_versionless_id":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_sql_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true},"workspace_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_template_deployment":{"schema":{"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"parameters_body":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"template_body":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_tenant_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_traffic_manager_azure_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_external_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_nested_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"minimum_child_endpoints":{"type":"TypeInt","required":true},"minimum_required_child_endpoints_ipv4":{"type":"TypeInt","optional":true},"minimum_required_child_endpoints_ipv6":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","required":true,"elem":{"schema":{"relative_name":{"type":"TypeString","required":true,"forceNew":true},"ttl":{"type":"TypeInt","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","computed":true},"max_return":{"type":"TypeInt","optional":true},"monitor_config":{"type":"TypeList","required":true,"elem":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"expected_status_code_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":30},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":10},"tolerated_number_of_failures":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"profile_status":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","required":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer":{"schema":{"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer_edge_module":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"video_analyzer_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_desktop_application":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"command_line_argument_policy":{"type":"TypeString","required":true},"command_line_arguments":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true,"computed":true},"icon_index":{"type":"TypeInt","optional":true},"icon_path":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","required":true},"show_in_portal":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_application_group":{"schema":{"default_desktop_display_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"load_balancer_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_sessions_allowed":{"type":"TypeInt","optional":true,"default":999999},"name":{"type":"TypeString","required":true,"forceNew":true},"personal_desktop_assignment_type":{"type":"TypeString","optional":true,"forceNew":true},"preferred_app_group_type":{"type":"TypeString","optional":true,"default":"Desktop","description":"Preferred App Group type to display","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scheduled_agent_updates":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","required":true}}},"maxItems":2},"timezone":{"type":"TypeString","optional":true,"default":"UTC"},"use_session_host_timezone":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"start_vm_on_connect":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"validate_environment":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool_registration_info":{"schema":{"expiration_date":{"type":"TypeString","required":true},"hostpool_id":{"type":"TypeString","required":true,"forceNew":true},"token":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_desktop_scaling_plan":{"schema":{"description":{"type":"TypeString","optional":true},"exclusion_tag":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"hostpool_id":{"type":"TypeString","required":true},"scaling_plan_enabled":{"type":"TypeBool","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"off_peak_load_balancing_algorithm":{"type":"TypeString","required":true},"off_peak_start_time":{"type":"TypeString","required":true},"peak_load_balancing_algorithm":{"type":"TypeString","required":true},"peak_start_time":{"type":"TypeString","required":true},"ramp_down_capacity_threshold_percent":{"type":"TypeInt","required":true},"ramp_down_force_logoff_users":{"type":"TypeBool","required":true},"ramp_down_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_down_minimum_hosts_percent":{"type":"TypeInt","required":true},"ramp_down_notification_message":{"type":"TypeString","required":true},"ramp_down_start_time":{"type":"TypeString","required":true},"ramp_down_stop_hosts_when":{"type":"TypeString","required":true},"ramp_down_wait_time_minutes":{"type":"TypeInt","required":true},"ramp_up_capacity_threshold_percent":{"type":"TypeInt","optional":true},"ramp_up_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_up_minimum_hosts_percent":{"type":"TypeInt","optional":true},"ramp_up_start_time":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace":{"schema":{"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace_application_group_association":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","optional":true,"forceNew":true},"default_route_table_id":{"type":"TypeString","computed":true},"hub_routing_preference":{"type":"TypeString","optional":true,"default":"ExpressRoute"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"next_hop_ip_address":{"type":"TypeString","required":true}}}},"sku":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_auto_scale_min_capacity":{"type":"TypeInt","optional":true,"default":2},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_connection_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"static_vnet_local_route_override_criteria":{"type":"TypeString","optional":true,"default":"Contains","forceNew":true},"static_vnet_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true},"next_hop_ip_address":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_ip":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_route_table_route":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"},"route_table_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_routing_intent":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"routing_policy":{"type":"TypeList","required":true,"elem":{"schema":{"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_security_partner_provider":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","required":true,"forceNew":true}}},"maxItems":1},"availability_set_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"delete_data_disks_on_termination":{"type":"TypeBool","optional":true,"default":false},"delete_os_disk_on_termination":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"os_profile":{"type":"TypeSet","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","required":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true,"default":false},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":false},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"primary_network_interface_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_data_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"vhd_uri":{"type":"TypeString","optional":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"storage_image_reference":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"storage_os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"image_uri":{"type":"TypeString","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","optional":true,"computed":true},"vhd_uri":{"type":"TypeString","optional":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vm_size":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_data_disk_attachment":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Attach","forceNew":true},"lun":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_machine_scale_set":{"schema":{"automatic_os_upgrade":{"type":"TypeBool","optional":true,"default":false},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"health_probe_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeSet","required":true,"elem":{"schema":{"accelerated_networking":{"type":"TypeBool","optional":true},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"public_ip_address_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","required":true},"idle_timeout":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"subnet_id":{"type":"TypeString","required":true}}}},"ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","required":true}}}},"os_profile":{"type":"TypeList","required":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name_prefix":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","optional":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeSet","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true},"provision_vm_agent":{"type":"TypeBool","optional":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"priority":{"type":"TypeString","optional":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_batch_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","optional":true,"default":20},"pause_time_between_batches":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1},"single_placement_group":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"storage_profile_data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true}}}},"storage_profile_image_reference":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"offer":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_profile_os_disk":{"type":"TypeSet","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"image":{"type":"TypeString","optional":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"vhd_containers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_policy_mode":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_scale_set_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_scale_set_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"machine_scope":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exclude_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"include_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"bgp_community":{"type":"TypeString","optional":true},"ddos_protection_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"enable":{"type":"TypeBool","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"enforcement":{"type":"TypeString","required":true}}},"maxItems":1},"flow_timeout_in_minutes":{"type":"TypeInt","optional":true},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"security_group":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_dns_servers":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","optional":true,"computed":true},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","optional":true},"peer_weight":{"type":"TypeInt","optional":true},"peering_addresses":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"apipa_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"default_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_name":{"type":"TypeString","optional":true,"computed":true},"tunnel_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1}}},"maxItems":1},"custom_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"default_local_network_gateway_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"generation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true,"default":"vnetGatewayConfig"},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":3},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"vpn_client_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","optional":true},"aad_issuer":{"type":"TypeString","optional":true},"aad_tenant":{"type":"TypeString","optional":true},"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","optional":true},"radius_server_secret":{"type":"TypeString","optional":true},"revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"vpn_auth_types":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":3},"vpn_client_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"vpn_type":{"type":"TypeString","optional":true,"default":"RouteBased","forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"connection_protocol":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_bgp_addresses":{"type":"TypeList","optional":true,"elem":{"schema":{"primary":{"type":"TypeString","required":true},"secondary":{"type":"TypeString","optional":true}}},"maxItems":1},"dpd_timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"express_route_circuit_id":{"type":"TypeString","optional":true,"forceNew":true},"express_route_gateway_bypass":{"type":"TypeBool","optional":true,"computed":true},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_datasize":{"type":"TypeInt","optional":true,"computed":true},"sa_lifetime":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"local_network_gateway_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_virtual_network_gateway_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_weight":{"type":"TypeInt","optional":true,"computed":true},"shared_key":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true,"forceNew":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","optional":true,"computed":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway_nat_rule":{"schema":{"external_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_peering":{"schema":{"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","optional":true,"default":true},"disable_vpn_encryption":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"office365_local_breakout_category":{"type":"TypeString","optional":true,"default":"None"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"Standard"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vmware_cluster":{"schema":{"cluster_node_count":{"type":"TypeInt","required":true},"cluster_number":{"type":"TypeInt","computed":true},"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"vmware_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_vmware_express_route_authorization":{"schema":{"express_route_authorization_id":{"type":"TypeString","computed":true},"express_route_authorization_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_netapp_volume_attachment":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"netapp_volume_id":{"type":"TypeString","required":true,"forceNew":true},"vmware_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"management_cluster":{"type":"TypeList","required":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","required":true}}},"maxItems":1},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_subnet_cidr":{"type":"TypeString","required":true,"forceNew":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"nsxt_password":{"type":"TypeString","optional":true,"forceNew":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcenter_password":{"type":"TypeString","optional":true,"forceNew":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"create":600,"read":5,"delete":600,"update":600}},"azurerm_voice_services_communications_gateway":{"schema":{"api_bridge":{"type":"TypeString","optional":true},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse","forceNew":true},"codecs":{"type":"TypeString","required":true},"connectivity":{"type":"TypeString","required":true,"forceNew":true},"e911_type":{"type":"TypeString","required":true},"emergency_dial_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_teams_voicemail_pilot_number":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"on_prem_mcp_enabled":{"type":"TypeBool","optional":true},"platforms":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_location":{"type":"TypeSet","required":true,"elem":{"schema":{"allowed_media_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_signaling_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"esrp_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true},"operator_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_voice_services_communications_gateway_test_line":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"purpose":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_services_communications_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway":{"schema":{"bgp_route_translation_for_nat_enabled":{"type":"TypeBool","optional":true,"default":false},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true,"forceNew":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instance_1_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"peer_weight":{"type":"TypeInt","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scale_unit":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_gateway_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_vpn_site_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"traffic_selector_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"local_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"remote_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_link":{"type":"TypeList","required":true,"elem":{"schema":{"bandwidth_mbps":{"type":"TypeInt","optional":true,"default":10},"bgp_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default"},"custom_bgp_address":{"type":"TypeSet","optional":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"ip_configuration_id":{"type":"TypeString","required":true}}}},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"encryption_algorithm":{"type":"TypeString","required":true},"ike_encryption_algorithm":{"type":"TypeString","required":true},"ike_integrity_algorithm":{"type":"TypeString","required":true},"integrity_algorithm":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kb":{"type":"TypeInt","required":true},"sa_lifetime_sec":{"type":"TypeInt","required":true}}},"minItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"policy_based_traffic_selector_enabled":{"type":"TypeBool","optional":true,"default":false},"protocol":{"type":"TypeString","optional":true,"default":"IKEv2"},"ratelimit_enabled":{"type":"TypeBool","optional":true,"default":false},"route_weight":{"type":"TypeInt","optional":true,"default":0},"shared_key":{"type":"TypeString","optional":true},"vpn_site_link_id":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway_nat_rule":{"schema":{"external_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"external_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"internal_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_server_configuration":{"schema":{"azure_active_directory_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"issuer":{"type":"TypeString","required":true},"tenant":{"type":"TypeString","required":true}}},"minItems":1},"client_revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kilobytes":{"type":"TypeInt","required":true},"sa_lifetime_seconds":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"radius":{"type":"TypeList","optional":true,"elem":{"schema":{"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"server":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"score":{"type":"TypeInt","required":true},"secret":{"type":"TypeString","required":true}}}},"server_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vpn_authentication_types":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"vpn_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_server_configuration_policy_group":{"schema":{"is_default":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"priority":{"type":"TypeInt","optional":true,"default":0},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_site":{"schema":{"address_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"device_model":{"type":"TypeString","optional":true},"device_vendor":{"type":"TypeString","optional":true},"link":{"type":"TypeList","optional":true,"elem":{"schema":{"bgp":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"peering_address":{"type":"TypeString","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"provider_name":{"type":"TypeString","optional":true},"speed_in_mbps":{"type":"TypeInt","optional":true,"default":0}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"o365_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"traffic_category":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"default_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"optimize_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_app_hybrid_connection":{"schema":{"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true},"web_app_id":{"type":"TypeString","required":true,"description":"The ID of the Web App for this Hybrid Connection.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_application_firewall_policy":{"schema":{"custom_rules":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"group_rate_limit_by":{"type":"TypeString","optional":true},"match_conditions":{"type":"TypeList","required":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_variables":{"type":"TypeList","required":true,"elem":{"schema":{"selector":{"type":"TypeString","optional":true},"variable_name":{"type":"TypeString","required":true}}}},"negation_condition":{"type":"TypeBool","optional":true},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","required":true},"rate_limit_duration":{"type":"TypeString","optional":true},"rate_limit_threshold":{"type":"TypeInt","optional":true},"rule_type":{"type":"TypeString","required":true}}}},"http_listener_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_rules":{"type":"TypeList","required":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","optional":true,"default":"3.2"}}},"maxItems":1},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"selector_match_operator":{"type":"TypeString","required":true}}}},"managed_rule_set":{"type":"TypeList","required":true,"elem":{"schema":{"rule_group_override":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"rule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"id":{"type":"TypeString","required":true}}}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","required":true}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"path_based_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"policy_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"file_upload_limit_in_mb":{"type":"TypeInt","optional":true,"default":100},"log_scrubbing":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true,"description":"When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to."},"selector_match_operator":{"type":"TypeString","optional":true,"default":"Equals"}}}}}},"maxItems":1},"max_request_body_size_in_kb":{"type":"TypeInt","optional":true,"default":128},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"request_body_check":{"type":"TypeBool","optional":true,"default":true},"request_body_inspect_limit_in_kb":{"type":"TypeInt","optional":true,"default":128}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"capacity":{"type":"TypeInt","optional":true,"default":1},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_hub":{"schema":{"anonymous_connections_enabled":{"type":"TypeBool","optional":true,"default":false},"event_handler":{"type":"TypeList","optional":true,"elem":{"schema":{"auth":{"type":"TypeList","optional":true,"elem":{"schema":{"managed_identity_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"system_events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_event_pattern":{"type":"TypeString","optional":true}}}},"event_listener":{"type":"TypeList","optional":true,"elem":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"system_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_network_acl":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"description":"Can the Function App only be accessed via HTTPS?","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Function App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","description":"The identifier used by App Service to perform domain ownership verification via DNS TXT record.","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","description":"The default hostname of the Windows Function App Slot.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","description":"The Kind value for this Windows Function App Slot.","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Windows Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","description":"A list of outbound IP addresses. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12`.","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","description":"A list of possible outbound IP addresses, not all of which are necessarily in use. This is a superset of `outbound_ip_address_list`. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of possible outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12,52.143.43.17`. This is a superset of `outbound_ip_addresses`. For example `[\"52.23.25.3\", \"52.143.43.12\",\"52.143.43.17\"]`.","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_windows_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","required":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_web_app_slot":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"computed":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}}},"dataSources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"data_residency_location":{"type":"TypeString","description":"Location in which the B2C tenant is hosted and data resides.","computed":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix."},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","description":"Billing SKU for the B2C tenant.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"read":5}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"filtered_sync_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notifications":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","computed":true},"notify_global_admins":{"type":"TypeBool","computed":true}}}},"replica_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"external_access_enabled":{"type":"TypeBool","computed":true},"public_certificate":{"type":"TypeString","computed":true}}}},"security":{"type":"TypeList","computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","computed":true},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","computed":true},"ntlm_v1_enabled":{"type":"TypeBool","computed":true},"sync_kerberos_passwords":{"type":"TypeBool","computed":true},"sync_ntlm_passwords":{"type":"TypeBool","computed":true},"sync_on_prem_passwords":{"type":"TypeBool","computed":true},"tls_v1_enabled":{"type":"TypeBool","computed":true}}}},"sku":{"type":"TypeString","computed":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_advisor_recommendations":{"schema":{"filter_by_category":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter_by_resource_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"recommendations":{"type":"TypeList","computed":true,"elem":{"schema":{"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"impact":{"type":"TypeString","computed":true},"recommendation_name":{"type":"TypeString","computed":true},"recommendation_type_id":{"type":"TypeString","computed":true},"resource_name":{"type":"TypeString","computed":true},"resource_type":{"type":"TypeString","computed":true},"suppression_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"updated_time":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":10}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"management":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"proxy":{"type":"TypeList","computed":true,"elem":{"schema":{"default_ssl_binding":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"scm":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_api_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notification_sender_email":{"type":"TypeString","computed":true},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"publisher_email":{"type":"TypeString","computed":true},"publisher_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scm_url":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"revision":{"type":"TypeString","required":true},"service_url":{"type":"TypeString","computed":true},"soap_pass_through":{"type":"TypeBool","computed":true},"subscription_key_parameter_names":{"type":"TypeList","computed":true,"elem":{"schema":{"header":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true}}}},"subscription_required":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"version_set_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"version_header_name":{"type":"TypeString","computed":true},"version_query_name":{"type":"TypeString","computed":true},"versioning_scheme":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true},"certificate_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"request_client_certificate_enabled":{"type":"TypeBool","computed":true},"tls10_enabled":{"type":"TypeBool","computed":true},"tls11_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"external_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true},"approval_required":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"product_id":{"type":"TypeString","required":true},"published":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","computed":true},"subscriptions_limit":{"type":"TypeInt","computed":true},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true},"email":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"note":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"state":{"type":"TypeString","computed":true},"user_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","computed":true}}}},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"replica":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","required":true},"label":{"type":"TypeString","optional":true,"default":""},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_configuration_keys":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"items":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"label":{"type":"TypeString","computed":true},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}}}},"key":{"type":"TypeString","optional":true,"default":""},"label":{"type":"TypeString","optional":true,"default":""}},"timeouts":{"read":5}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_cert_enabled":{"type":"TypeBool","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","computed":true},"acr_user_managed_identity_client_id":{"type":"TypeString","computed":true},"always_on":{"type":"TypeBool","computed":true},"app_command_line":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"number_of_workers":{"type":"TypeInt","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_certificate":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","computed":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","computed":true},"distinguished_name":{"type":"TypeString","computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"product_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_environment":{"schema":{"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"front_end_scale_factor":{"type":"TypeInt","computed":true},"internal_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_ip_address":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","computed":true},"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"dedicated_host_count":{"type":"TypeInt","computed":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","computed":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"is_xenon":{"type":"TypeBool","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"per_site_scaling":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"size":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_application_gateway":{"schema":{"backend_address_pool":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeString","computed":true},"instrumentation_key":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_arc_machine":{"schema":{"active_directory_fqdn":{"type":"TypeString","computed":true},"agent":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variables":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"bool":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeBool","computed":true}}}},"datetime":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"encrypted":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"int":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeInt","computed":true}}}},"null":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"object":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"string":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"platform_update_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_backup_policy_file_share":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_backup_policy_vm":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","computed":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"ip_connect_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_units":{"type":"TypeInt","computed":true},"shareable_link_enabled":{"type":"TypeBool","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_allocation_mode":{"type":"TypeString","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true},"allow_updates":{"type":"TypeBool","computed":true},"default_version":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","computed":true},"thumbprint_algorithm":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"auto_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","computed":true},"formula":{"type":"TypeString","computed":true}}}},"certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"store_location":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","computed":true},"visibility":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","computed":true}}}},"data_disks":{"type":"TypeList","computed":true,"elem":{"schema":{"caching":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"lun":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}},"disk_encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","computed":true}}}},"display_name":{"type":"TypeString","computed":true},"extensions":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"protected_settings":{"type":"TypeString","computed":true},"provision_after_extensions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","computed":true},"settings_json":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"type_handler_version":{"type":"TypeString","computed":true}}}},"fixed_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"resize_timeout":{"type":"TypeString","computed":true},"target_dedicated_nodes":{"type":"TypeInt","computed":true},"target_low_priority_nodes":{"type":"TypeInt","computed":true}}}},"inter_node_communication":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_tasks_per_node":{"type":"TypeInt","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"blobfuse_options":{"type":"TypeString","computed":true},"container_name":{"type":"TypeString","computed":true},"identity_id":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"sas_key":{"type":"TypeString","computed":true}}}},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"azure_file_url":{"type":"TypeString","computed":true},"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true}}}},"cifs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"nfs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"network_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dynamic_vnet_assignment_scope":{"type":"TypeString","computed":true},"endpoint_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port_range":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"protocol":{"type":"TypeString","computed":true}}}},"public_address_provisioning_type":{"type":"TypeString","computed":true},"public_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","computed":true}}}},"node_agent_sku_id":{"type":"TypeString","computed":true},"node_placement":{"type":"TypeList","computed":true,"elem":{"schema":{"policy":{"type":"TypeString","computed":true}}}},"os_disk_placement":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_task":{"type":"TypeList","computed":true,"elem":{"schema":{"command_line":{"type":"TypeString","computed":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"run_options":{"type":"TypeString","computed":true},"working_directory":{"type":"TypeString","computed":true}}}},"resource_file":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","computed":true},"blob_prefix":{"type":"TypeString","computed":true},"file_mode":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"http_url":{"type":"TypeString","computed":true},"storage_container_url":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"task_retry_maximum":{"type":"TypeInt","computed":true},"user_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_user":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","computed":true}}}},"user_name":{"type":"TypeString","computed":true}}}},"wait_for_success":{"type":"TypeBool","computed":true}}}},"storage_image_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"task_scheduling_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","computed":true}}}},"user_accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"linux_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"gid":{"type":"TypeInt","computed":true},"ssh_private_key":{"type":"TypeString","computed":true},"uid":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"windows_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"login_mode":{"type":"TypeString","computed":true}}}}}}},"vm_size":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_billing_enrollment_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"enrollment_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mca_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"billing_profile_name":{"type":"TypeString","required":true},"invoice_section_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mpa_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"customer_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_blueprint_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_blueprint_published_version":{"schema":{"blueprint_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"dns_zone_id":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tls":{"type":"TypeList","computed":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","computed":true},"certificate_type":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true}}}},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"enabled":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"enabled":{"type":"TypeBool","computed":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redirect_url":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"health_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true},"request_type":{"type":"TypeString","computed":true}}}},"load_balancing":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","computed":true},"sample_size":{"type":"TypeInt","computed":true},"successful_samples_required":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","computed":true},"session_affinity_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"key_vault_certificate_id":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"read":5}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_client_config":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cognitive_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"qna_runtime_endpoint":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"certificate_based_security_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"pem_public_key":{"type":"TypeString","computed":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"resource_group_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"subscription_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","computed":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The Dapr Application Identifier.","computed":true},"app_port":{"type":"TypeInt","description":"The port which the application is listening on. This is the same as the `ingress` port.","computed":true},"app_protocol":{"type":"TypeString","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`.","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","description":"Should this ingress allow insecure connections?","computed":true},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`","computed":true},"certificate_id":{"type":"TypeString","description":"The ID of the Certificate.","computed":true},"name":{"type":"TypeString","description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate.","computed":true}}}},"external_enabled":{"type":"TypeBool","description":"Is this an external Ingress.","computed":true},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","description":"The target port on the container for the Ingress traffic.","computed":true},"traffic_weight":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","description":"The label to apply to the revision as a name prefix for routing traffic.","computed":true},"latest_revision":{"type":"TypeBool","description":"This traffic Weight relates to the latest stable Container Revision.","computed":true},"percentage":{"type":"TypeInt","description":"The percentage of traffic to send to this revision.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted.","computed":true}}}},"transport":{"type":"TypeString","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`","computed":true}}}},"latest_revision_fqdn":{"type":"TypeString","description":"The fully qualified domain name of the latest Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"identity":{"type":"TypeString","description":"ID of the System or User Managed Identity used to pull images from the Container Registry","computed":true},"password_secret_name":{"type":"TypeString","description":"The name of the Secret Reference containing the password value for this user on the Container Registry.","computed":true},"server":{"type":"TypeString","description":"The hostname for the Container Registry.","computed":true},"username":{"type":"TypeString","description":"The username to use for this Container Registry.","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"revision_mode":{"type":"TypeString","computed":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Secret name.","computed":true},"value":{"type":"TypeString","description":"The value for this secret.","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_queue_scale_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_name":{"type":"TypeString","computed":true},"trigger_parameter":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"queue_length":{"type":"TypeInt","computed":true},"queue_name":{"type":"TypeString","computed":true}}}},"container":{"type":"TypeList","computed":true,"elem":{"schema":{"args":{"type":"TypeList","description":"A list of args to pass to the container.","computed":true,"elem":{"type":"TypeString"}},"command":{"type":"TypeList","description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","computed":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`","computed":true},"env":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the environment variable for the container.","computed":true},"secret_name":{"type":"TypeString","description":"The name of the secret that contains the value for this environment variable.","computed":true},"value":{"type":"TypeString","description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used","computed":true}}}},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","description":"The image to use to create the container.","computed":true},"liveness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"initial_delay":{"type":"TypeInt","description":"The time in seconds to wait after the container has started before the probe is started.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"memory":{"type":"TypeString","description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`","computed":true},"name":{"type":"TypeString","description":"The name of the container.","computed":true},"readiness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"success_count_threshold":{"type":"TypeInt","description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"startup_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","computed":true}}}},"volume_mounts":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the Volume to be mounted in the container.","computed":true},"path":{"type":"TypeString","description":"The path in the container at which to mount this volume.","computed":true}}}}}}},"custom_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_name":{"type":"TypeString","computed":true},"trigger_parameter":{"type":"TypeString","computed":true}}}},"custom_rule_type":{"type":"TypeString","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true}}}},"http_scale_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_name":{"type":"TypeString","computed":true},"trigger_parameter":{"type":"TypeString","computed":true}}}},"concurrent_requests":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"max_replicas":{"type":"TypeInt","description":"The maximum number of replicas for this container.","computed":true},"min_replicas":{"type":"TypeInt","description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","computed":true},"tcp_scale_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_name":{"type":"TypeString","computed":true},"trigger_parameter":{"type":"TypeString","computed":true}}}},"concurrent_requests":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"volume":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"storage_name":{"type":"TypeString","computed":true},"storage_type":{"type":"TypeString","computed":true}}}}}}}},"timeouts":{"read":5}},"azurerm_container_app_environment":{"schema":{"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","description":"The existing Subnet in use by the Container Apps Control Plane.","computed":true},"internal_load_balancer_enabled":{"type":"TypeBool","description":"Does the Container Environment operate in Internal Load Balancing Mode?","computed":true},"location":{"type":"TypeString","computed":true},"log_analytics_workspace_name":{"type":"TypeString","description":"The name of the Log Analytics Workspace this Container Apps Managed Environment is linked to.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment."},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_app_environment_certificate":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"read":5}},"azurerm_container_group":{"schema":{"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","computed":true},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"data_endpoint_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"container_registry_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scope_map_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_account":{"schema":{"capabilities":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"consistency_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","computed":true},"max_interval_in_seconds":{"type":"TypeInt","computed":true},"max_staleness_prefix":{"type":"TypeInt","computed":true}}}},"enable_automatic_failover":{"type":"TypeBool","computed":true},"enable_free_tier":{"type":"TypeBool","computed":true},"enable_multiple_write_locations":{"type":"TypeBool","computed":true},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeList","computed":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true}}}},"ip_range_filter":{"type":"TypeString","computed":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","computed":true},"key_vault_key_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"offer_type":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_restorable_database_accounts":{"schema":{"accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"api_type":{"type":"TypeString","computed":true},"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"restorable_locations":{"type":"TypeList","computed":true,"elem":{"schema":{"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"regional_database_account_instance_id":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true},"autoscale_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true},"assignable_scopes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeSet","computed":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_factory":{"schema":{"github_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"git_url":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"project_name":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redundancy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"snapshot_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"recurrence":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true}}}},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","computed":true},"data_share_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"file_system_name":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"source_platform":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databricks_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_databricks_workspace_private_endpoint_connection":{"schema":{"connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"workspace_private_endpoint_id":{"type":"TypeString","computed":true}}}},"private_endpoint_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dedicated_host":{"schema":{"dedicated_host_group_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"storage_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_dev_test_virtual_network":{"schema":{"allowed_subnets":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_public_ip":{"type":"TypeString","computed":true},"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true}}}},"lab_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_overrides":{"type":"TypeList","computed":true,"elem":{"schema":{"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_in_vm_creation_permission":{"type":"TypeString","computed":true},"use_public_ip_address_permission":{"type":"TypeString","computed":true},"virtual_network_pool_name":{"type":"TypeString","computed":true}}}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_access":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"flags":{"type":"TypeInt","computed":true},"tag":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","computed":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"send_activity_logs":{"type":"TypeBool","computed":true},"send_azuread_logs":{"type":"TypeBool","computed":true},"send_subscription_logs":{"type":"TypeBool","computed":true}}}},"monitoring_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain":{"schema":{"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"inbound_ip_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"ip_mask":{"type":"TypeString","computed":true}}}},"input_mapping_default_values":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true}}}},"input_mapping_fields":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_time":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true},"topic":{"type":"TypeString","computed":true}}}},"input_schema":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_arm_resource_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventhub":{"schema":{"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"partition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"read":5}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"user_metadata":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"dedicated_cluster_id":{"type":"TypeString","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"kafka_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"maximum_throughput_units":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"sas":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_express_route_circuit":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peerings":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"peer_asn":{"type":"TypeInt","computed":true},"peering_type":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","computed":true},"shared_key":{"type":"TypeString","computed":true},"vlan_id":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_key":{"type":"TypeString","computed":true},"service_provider_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"bandwidth_in_mbps":{"type":"TypeInt","computed":true},"peering_location":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","computed":true}}}},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"family":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_extended_locations":{"schema":{"extended_locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"sku_tier":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","computed":true},"virtual_hub":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","computed":true},"virtual_hub_id":{"type":"TypeString","computed":true}}}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_firewall_policy":{"schema":{"base_policy_id":{"type":"TypeString","computed":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","computed":true,"elem":{"schema":{"network_rule_fqdn_enabled":{"type":"TypeBool","computed":true},"proxy_enabled":{"type":"TypeBool","computed":true},"servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"threat_intelligence_mode":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_cert_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_function_app_host_keys":{"schema":{"blobs_extension_key":{"type":"TypeString","computed":true},"default_function_key":{"type":"TypeString","computed":true},"durabletask_extension_key":{"type":"TypeString","computed":true},"event_grid_extension_config_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"signalr_extension_key":{"type":"TypeString","computed":true},"webpubsub_extension_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_hdinsight_cluster":{"schema":{"cluster_version":{"type":"TypeString","computed":true},"component_versions":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"edge_ssh_endpoint":{"type":"TypeString","computed":true},"gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"ssh_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","computed":true},"tls_min_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"configuration_export_storage_account_name":{"type":"TypeString","computed":true},"container_registry_login_server_url":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","computed":true},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","computed":true},"eventhub_consumer_group_name":{"type":"TypeString","computed":true},"eventhub_name":{"type":"TypeString","computed":true},"eventhub_namespace_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"cors_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","computed":true},"allowed_headers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","computed":true},"cosmosdb_throughput":{"type":"TypeInt","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_hybrid_compute_machine":{"schema":{"ad_fqdn":{"type":"TypeString","computed":true},"agent_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"error_details":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_info":{"type":"TypeList","computed":true,"elem":{"schema":{"info":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"code":{"type":"TypeString","computed":true},"message":{"type":"TypeString","computed":true},"target":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"name_regex":{"type":"TypeString","optional":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"sort_descending":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_images":{"schema":{"images":{"type":"TypeList","computed":true,"elem":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub":{"schema":{"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","computed":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_operations_host_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"iothub_dps_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_iothub_shared_access_policy":{"schema":{"iothub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","computed":true},"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","computed":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"enable_rbac_authorization":{"type":"TypeBool","computed":true},"enabled_for_deployment":{"type":"TypeBool","computed":true},"enabled_for_disk_encryption":{"type":"TypeBool","computed":true},"enabled_for_template_deployment":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_acls":{"type":"TypeList","computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","computed":true},"default_action":{"type":"TypeString","computed":true},"ip_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_access_policy":{"schema":{"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_certificate":{"schema":{"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"key_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"curve":{"type":"TypeString","computed":true},"exportable":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"reuse_key":{"type":"TypeBool","computed":true}}}},"lifetime_action":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","computed":true},"lifetime_percentage":{"type":"TypeInt","computed":true}}}}}}},"secret_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true}}}},"x509_certificate_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"validity_in_months":{"type":"TypeInt","computed":true}}}}}}},"expires":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true,"computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_certificate_data":{"schema":{"certificates_count":{"type":"TypeInt","computed":true},"expires":{"type":"TypeString","computed":true},"hex":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"pem":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","computed":true},"admin":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"phone":{"type":"TypeString","computed":true}}}},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"org_id":{"type":"TypeString","computed":true},"provider_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificates":{"schema":{"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"include_pending":{"type":"TypeBool","optional":true,"default":true},"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_encrypted_value":{"schema":{"algorithm":{"type":"TypeString","required":true},"decoded_plain_text_value":{"type":"TypeString","computed":true},"encrypted_data":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"plain_text_value":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","computed":true},"e":{"type":"TypeString","computed":true},"key_opts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before_date":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_secrets":{"schema":{"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","computed":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","computed":true}}}},"agent_pool_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"api_server_authorized_ip_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"azure_active_directory_role_based_access_control":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","computed":true},"client_app_id":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"server_app_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"azure_policy_enabled":{"type":"TypeBool","computed":true},"current_kubernetes_version":{"type":"TypeString","computed":true},"custom_ca_trust_certificates_base64":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"disk_encryption_set_id":{"type":"TypeString","computed":true},"dns_prefix":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","computed":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress_application_gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","computed":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"key_management_service":{"type":"TypeList","computed":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"key_vault_network_access":{"type":"TypeString","computed":true}}}},"key_vault_secrets_provider":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","computed":true},"secret_rotation_interval":{"type":"TypeString","computed":true}}}},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"kubernetes_version":{"type":"TypeString","computed":true},"linux_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true},"ssh_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_data":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","computed":true},"microsoft_defender":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"network_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","computed":true},"docker_bridge_cidr":{"type":"TypeString","computed":true},"load_balancer_sku":{"type":"TypeString","computed":true},"network_plugin":{"type":"TypeString","computed":true},"network_policy":{"type":"TypeString","computed":true},"pod_cidr":{"type":"TypeString","computed":true},"service_cidr":{"type":"TypeString","computed":true}}}},"node_resource_group":{"type":"TypeString","computed":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","computed":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","computed":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}}},"open_service_mesh_enabled":{"type":"TypeBool","computed":true},"private_cluster_enabled":{"type":"TypeBool","computed":true},"private_fqdn":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"role_based_access_control_enabled":{"type":"TypeBool","computed":true},"service_mesh_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"mode":{"type":"TypeString","computed":true}}}},"service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true}}}},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_version":{"type":"TypeString","computed":true},"file_driver_enabled":{"type":"TypeBool","computed":true},"snapshot_controller_enabled":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"eviction_policy":{"type":"TypeString","computed":true},"kubernetes_cluster_name":{"type":"TypeString","required":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_disk_type":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"priority":{"type":"TypeString","computed":true},"proximity_placement_group_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"spot_max_price":{"type":"TypeFloat","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_node_pool_snapshot":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_node_pool_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_service_versions":{"schema":{"include_preview":{"type":"TypeBool","optional":true,"default":true},"latest_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"version_prefix":{"type":"TypeString","optional":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kusto_cluster":{"schema":{"data_ingestion_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true},"hot_cache_period":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_lb":{"schema":{"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_backend_address_pool":{"schema":{"backend_address":{"type":"TypeList","computed":true,"elem":{"schema":{"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"virtual_network_id":{"type":"TypeString","computed":true}}}},"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","computed":true},"backend_address_pool_id":{"type":"TypeString","computed":true},"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","computed":true},"tcp_reset_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_lb_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","computed":true},"disable_outbound_snat":{"type":"TypeBool","computed":true},"enable_floating_ip":{"type":"TypeBool","computed":true},"enable_tcp_reset":{"type":"TypeBool","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"load_distribution":{"type":"TypeString","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"probe_id":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"image_tag":{"type":"TypeString","computed":true},"registry_password":{"type":"TypeString","computed":true},"registry_url":{"type":"TypeString","computed":true},"registry_username":{"type":"TypeString","computed":true}}}},"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":25}},"azurerm_linux_web_app":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_reference_identity_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_image_tag":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"go_version":{"type":"TypeString","computed":true},"java_server":{"type":"TypeString","computed":true},"java_server_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"ruby_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","computed":true}}}},"gateway_address":{"type":"TypeString","computed":true},"gateway_fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_log_analytics_workspace":{"schema":{"daily_quota_gb":{"type":"TypeFloat","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_shared_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_integration_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","computed":true},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_account_share_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_workflow":{"schema":{"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"logic_app_integration_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","computed":true},"workflow_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_machine_learning_workspace":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","computed":true},"install_patches":{"type":"TypeList","computed":true,"elem":{"schema":{"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"reboot":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","computed":true},"window":{"type":"TypeList","computed":true,"elem":{"schema":{"duration":{"type":"TypeString","computed":true},"expiration_date_time":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"start_date_time":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_managed_api":{"schema":{"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_managed_application_definition":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","computed":true},"disk_access_id":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"disk_iops_read_write":{"type":"TypeInt","computed":true},"disk_mbps_read_write":{"type":"TypeInt","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"image_reference_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_access_policy":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group":{"schema":{"all_management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"all_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true,"computed":true},"parent_management_group_id":{"type":"TypeString","computed":true},"subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group_template_deployment":{"schema":{"management_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement":{"type":"TypeString","computed":true},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"geo_redundant_backup":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true},"plan":{"type":"TypeString","required":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_country_code":{"type":"TypeString","computed":true},"mobile_network_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"mobile_network_data_network_name":{"type":"TypeString","required":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true},"network_address_port_translation":{"type":"TypeList","computed":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"pinhole_maximum_number":{"type":"TypeInt","optional":true},"port_range":{"type":"TypeList","computed":true,"elem":{"schema":{"maximum":{"type":"TypeInt","computed":true},"minimum":{"type":"TypeInt","computed":true}}}},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","computed":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"control_plane_access_name":{"type":"TypeString","computed":true},"core_network_technology":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"interoperability_settings_json":{"type":"TypeString","computed":true},"local_diagnostics_access":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","computed":true},"https_server_certificate_url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform":{"type":"TypeList","computed":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","computed":true},"custom_location_id":{"type":"TypeString","computed":true},"edge_device_id":{"type":"TypeString","computed":true},"stack_hci_cluster_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"pcc_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"precedence":{"type":"TypeInt","computed":true},"qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"guaranteed_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"service_data_flow_template":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","computed":true}}}},"service_precedence":{"type":"TypeInt","computed":true},"service_qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim":{"schema":{"device_type":{"type":"TypeString","computed":true},"integrated_circuit_card_identifier":{"type":"TypeString","computed":true},"international_mobile_subscriber_identity":{"type":"TypeString","computed":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","computed":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true},"static_ipv4_address":{"type":"TypeString","computed":true}}}},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","computed":true},"registration_timer_in_seconds":{"type":"TypeInt","computed":true},"slice":{"type":"TypeList","computed":true,"elem":{"schema":{"data_network":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"allowed_services_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","computed":true},"default_session_type":{"type":"TypeString","computed":true},"max_buffered_packets":{"type":"TypeInt","computed":true},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}}}},"default_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","computed":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","computed":true},"slice_service_type":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"role_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"automation_runbook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","computed":true},"is_global_runbook":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"runbook_name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true},"webhook_resource_id":{"type":"TypeString","computed":true}}}},"azure_app_push_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"azure_function_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","computed":true},"function_name":{"type":"TypeString","computed":true},"http_trigger_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"email_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"event_hub_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true},"ticket_configuration":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","computed":true}}}},"logic_app_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"callback_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"short_name":{"type":"TypeString","computed":true},"sms_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"voice_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"webhook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","computed":true},"data_flow":{"type":"TypeList","computed":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"output_stream":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"transform_kql":{"type":"TypeString","computed":true}}}},"data_sources":{"type":"TypeList","computed":true,"elem":{"schema":{"data_import":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"stream":{"type":"TypeString","computed":true}}}}}}},"extension":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_json":{"type":"TypeString","computed":true},"extension_name":{"type":"TypeString","computed":true},"input_data_sources":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"iis_log":{"type":"TypeList","computed":true,"elem":{"schema":{"log_directories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"settings":{"type":"TypeList","computed":true,"elem":{"schema":{"text":{"type":"TypeList","computed":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","computed":true}}}}}}},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"performance_counter":{"type":"TypeList","computed":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"sampling_frequency_in_seconds":{"type":"TypeInt","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"prometheus_forwarder":{"type":"TypeList","computed":true,"elem":{"schema":{"label_include_filter":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"syslog":{"type":"TypeList","computed":true,"elem":{"schema":{"facility_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"log_levels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_event_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"x_path_queries":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_firewall_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"description":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"workspace_resource_id":{"type":"TypeString","computed":true}}}},"monitor_account":{"type":"TypeList","computed":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"storage_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_blob_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_table_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"table_name":{"type":"TypeString","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"stream_declaration":{"type":"TypeList","computed":true,"elem":{"schema":{"column":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"stream_name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_diagnostic_categories":{"schema":{"log_category_groups":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"log_category_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"logs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"metrics":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"days":{"type":"TypeInt","computed":true},"enabled":{"type":"TypeBool","computed":true}}}},"servicebus_rule_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeSet","computed":true,"elem":{"schema":{"action_group":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","computed":true},"email_subject":{"type":"TypeString","computed":true}}}},"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"query":{"type":"TypeString","computed":true},"query_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"severity":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","computed":true},"time_window":{"type":"TypeInt","computed":true},"trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_column":{"type":"TypeString","computed":true},"metric_trigger_type":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeSet","computed":true,"elem":{"schema":{"dimension":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","computed":true}}}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mssql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"elastic_pool_id":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_size_gb":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"read_replica_count":{"type":"TypeInt","computed":true},"read_scale":{"type":"TypeBool","computed":true},"server_id":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"max_size_bytes":{"type":"TypeInt","computed":true},"max_size_gb":{"type":"TypeFloat","computed":true},"name":{"type":"TypeString","required":true},"per_db_max_capacity":{"type":"TypeInt","computed":true},"per_db_min_capacity":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"family":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"customer_managed_key_id":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"high_availability":{"type":"TypeList","computed":true,"elem":{"schema":{"mode":{"type":"TypeString","computed":true},"standby_availability_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","computed":true},"start_hour":{"type":"TypeInt","computed":true},"start_minute":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"storage":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","computed":true},"iops":{"type":"TypeInt","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement_enabled":{"type":"TypeBool","computed":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","computed":true},"email_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"retention_days":{"type":"TypeInt","computed":true},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_endpoint":{"type":"TypeString","computed":true}}}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_ip_address_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"public_ip_prefix_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_netapp_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_level":{"type":"TypeString","computed":true},"size_in_tb":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"volume_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true},"daily_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"hourly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"monthly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","computed":true,"elem":{"type":"TypeInt"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"network_features":{"type":"TypeString","computed":true},"pool_name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"security_style":{"type":"TypeString","optional":true},"service_level":{"type":"TypeString","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"volume_path":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true},"application_identifier":{"type":"TypeString","computed":true},"group_description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","computed":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"data_protection_snapshot_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","computed":true}}}},"export_policy_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","computed":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"nfsv41_enabled":{"type":"TypeBool","computed":true},"root_access_enabled":{"type":"TypeBool","computed":true},"rule_index":{"type":"TypeInt","computed":true},"unix_read_only":{"type":"TypeBool","computed":true},"unix_read_write":{"type":"TypeBool","computed":true}}}},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proximity_placement_group_id":{"type":"TypeString","computed":true},"security_style":{"type":"TypeString","computed":true},"service_level":{"type":"TypeString","computed":true},"snapshot_directory_visible":{"type":"TypeBool","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","computed":true},"volume_spec_name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume_quota_rule":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"quota_size_in_kib":{"type":"TypeInt","computed":true},"quota_target":{"type":"TypeString","computed":true},"quota_type":{"type":"TypeString","computed":true},"volume_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"internal_dns_name_label":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","computed":true},"load_balancer_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_manager_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"security_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"destination_address_prefix":{"type":"TypeString","computed":true},"destination_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","computed":true},"destination_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_service_tags":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv4_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv6_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"location_filter":{"type":"TypeString","optional":true,"forceNew":true},"service":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"application_mode":{"type":"TypeString","computed":true},"bundle_id":{"type":"TypeString","computed":true},"key_id":{"type":"TypeString","computed":true},"team_id":{"type":"TypeString","computed":true},"token":{"type":"TypeString","computed":true}}}},"gcm_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"api_key":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"ip_forwarding_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","computed":true},"anti_virus_profile":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"dns_subscription":{"type":"TypeString","computed":true},"file_blocking_profile":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_trust_certificate":{"type":"TypeString","computed":true},"outbound_untrust_certificate":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"url_filtering_profile":{"type":"TypeString","computed":true},"vulnerability_profile":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_platform_image":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"offer":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_policy_assignment":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"enforce":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","computed":true,"elem":{"schema":{"content":{"type":"TypeString","computed":true},"policy_definition_reference_id":{"type":"TypeString","computed":true}}}},"not_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeString","computed":true},"policy_definition_id":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_definition_built_in":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_definition_group":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","computed":true},"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"policy_definition_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"policy_definition_id":{"type":"TypeString","computed":true},"policy_group_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","computed":true}}}},"policy_definitions":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"assignment_hash":{"type":"TypeString","computed":true},"compliance_status":{"type":"TypeString","computed":true},"content_hash":{"type":"TypeString","computed":true},"content_uri":{"type":"TypeString","computed":true},"last_compliance_status_checked":{"type":"TypeString","computed":true},"latest_report_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"virtual_machine_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_dns_servers":{"type":"TypeList","computed":true,"elem":{"schema":{"ip_address":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true},"private_dns_zone_name":{"type":"TypeString","required":true},"registration_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_endpoint_connection":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_service_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"request_response":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","computed":true},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"nat_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_link_service_endpoint_connections":{"schema":{"location":{"type":"TypeString","computed":true},"private_endpoint_connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"connection_id":{"type":"TypeString","computed":true},"connection_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"private_endpoint_id":{"type":"TypeString","computed":true},"private_endpoint_name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_id":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_proximity_placement_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","computed":true},"ddos_protection_mode":{"type":"TypeString","computed":true},"ddos_protection_plan_id":{"type":"TypeString","computed":true},"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"reverse_fqdn":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"prefix_length":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ips":{"schema":{"allocation_type":{"type":"TypeString","optional":true},"attachment_status":{"type":"TypeString","optional":true},"name_prefix":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_public_maintenance_configurations":{"schema":{"configs":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"duration":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maintenance_scope":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_recovery_services_vault":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","computed":true},"enable_non_ssl_port":{"type":"TypeBool","computed":true},"family":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patch_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeString","computed":true},"start_hour_utc":{"type":"TypeInt","computed":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","computed":true},"redis_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","computed":true},"aof_storage_connection_string_0":{"type":"TypeString","computed":true},"aof_storage_connection_string_1":{"type":"TypeString","computed":true},"enable_authentication":{"type":"TypeBool","computed":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","computed":true},"maxmemory_delta":{"type":"TypeInt","computed":true},"maxmemory_policy":{"type":"TypeString","computed":true},"maxmemory_reserved":{"type":"TypeInt","computed":true},"notify_keyspace_events":{"type":"TypeString","computed":true},"rdb_backup_enabled":{"type":"TypeBool","computed":true},"rdb_backup_frequency":{"type":"TypeInt","computed":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","computed":true},"rdb_storage_connection_string":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_enterprise_database":{"schema":{"cluster_id":{"type":"TypeString","required":true},"linked_database_group_nickname":{"type":"TypeString","computed":true},"linked_database_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","computed":true},"managed_by":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_resource_group_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_resources":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true},"required_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"resources":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"permissions":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true},"scope":{"type":"TypeString","optional":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"communities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"rule_type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_route_table":{"schema":{"bgp_route_propagation_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop_in_ip_address":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_search_service":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_anomaly":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"mode":{"type":"TypeString","computed":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_template":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true},"nrt_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"scheduled_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"query_frequency":{"type":"TypeString","computed":true},"query_period":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","computed":true},"trigger_threshold":{"type":"TypeInt","computed":true}}}},"security_incident_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"product_filter":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"per_site_scaling_enabled":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","computed":true},"zone_balancing_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"partner_namespace_id":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","optional":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"support_ordering":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_shared_image":{"schema":{"architecture":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"eula":{"type":"TypeString","computed":true},"gallery_name":{"type":"TypeString","required":true},"hyper_v_generation":{"type":"TypeString","computed":true},"identifier":{"type":"TypeList","computed":true,"elem":{"schema":{"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"privacy_statement_uri":{"type":"TypeString","computed":true},"purchase_plan":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true}}}},"release_note_uri":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"specialized":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_shared_image_version":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_disk_image_size_gb":{"type":"TypeInt","computed":true},"os_disk_snapshot_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sort_versions_by_semver":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_shared_image_versions":{"schema":{"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"images":{"type":"TypeList","computed":true,"elem":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"hostname":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true},"recovery_fabric_name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","computed":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","computed":true},"primary_zone":{"type":"TypeString","computed":true},"recovery_edge_zone":{"type":"TypeString","computed":true},"recovery_zone":{"type":"TypeString","computed":true}}}},"failover_deployment_model":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_group":{"type":"TypeSet","computed":true,"elem":{"schema":{"post_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"pre_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"replicated_protected_items":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"recovery_vault_id":{"type":"TypeString","required":true},"source_recovery_fabric_id":{"type":"TypeString","computed":true},"target_recovery_fabric_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_snapshot":{"schema":{"creation_option":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","computed":true},"token_secret":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_spring_cloud_app":{"schema":{"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"is_public":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"persistent_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","computed":true},"size_in_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"tls_enabled":{"type":"TypeBool","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_spring_cloud_service":{"schema":{"config_server_git_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"repository":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"pattern":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","computed":true},"elastic_pool_name":{"type":"TypeString","computed":true},"failover_group_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"read_scale":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ssh_public_key":{"schema":{"name":{"type":"TypeString","required":true},"public_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","computed":true},"account_kind":{"type":"TypeString","computed":true},"account_replication_type":{"type":"TypeString","computed":true},"account_tier":{"type":"TypeString","computed":true},"allow_nested_items_to_be_public":{"type":"TypeBool","computed":true},"azure_files_authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"domain_sid":{"type":"TypeString","computed":true},"forest_name":{"type":"TypeString","computed":true},"netbios_domain_name":{"type":"TypeString","computed":true},"storage_sid":{"type":"TypeString","computed":true}}}},"directory_type":{"type":"TypeString","computed":true}}}},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"enable_https_traffic_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"is_hns_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"queue_encryption_key_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"table_encryption_key_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account_blob_container_sas":{"schema":{"cache_control":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_language":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_address":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_account_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_addresses":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"filter":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"process":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"tag":{"type":"TypeBool","required":true},"update":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"resource_types":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeBool","required":true},"object":{"type":"TypeBool","required":true},"service":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"services":{"type":"TypeList","required":true,"elem":{"schema":{"blob":{"type":"TypeBool","required":true},"file":{"type":"TypeBool","required":true},"queue":{"type":"TypeBool","required":true},"table":{"type":"TypeBool","required":true}}},"maxItems":1},"signed_version":{"type":"TypeString","optional":true,"default":"2017-07-29"},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","computed":true},"content_md5":{"type":"TypeString","computed":true},"content_type":{"type":"TypeString","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","computed":true},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_encryption_scope":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"schema":{"base_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true}}}},"snapshot":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}},"version":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}}}}},"enabled":{"type":"TypeBool","computed":true},"filters":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operation":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"prefix_match":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true}}}},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_share":{"schema":{"acl":{"type":"TypeList","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"expiry":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"start":{"type":"TypeString","computed":true}}}},"id":{"type":"TypeString","computed":true}}}},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"quota":{"type":"TypeInt","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true},"storage_sync_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true},"row_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","computed":true},"data_locale":{"type":"TypeString","computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_policy":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"job_id":{"type":"TypeString","computed":true},"last_output_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"output_error_policy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_mode":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true},"streaming_units":{"type":"TypeInt","computed":true},"transformation_query":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subnet":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"route_table_id":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_subscription":{"schema":{"display_name":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscription_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscriptions":{"schema":{"display_name_contains":{"type":"TypeString","optional":true},"display_name_prefix":{"type":"TypeString","optional":true},"subscriptions":{"type":"TypeList","computed":true,"elem":{"schema":{"display_name":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_synapse_workspace":{"schema":{"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_template_spec_version":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template_body":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_tenant_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_geographical_location":{"schema":{"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","computed":true,"elem":{"schema":{"relative_name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true}}}},"fqdn":{"type":"TypeString","computed":true},"monitor_config":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"expected_status_code_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"timeout_in_seconds":{"type":"TypeInt","computed":true},"tolerated_number_of_failures":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_status":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","computed":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"read":5}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"load_balancer_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_sessions_allowed":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"personal_desktop_assignment_type":{"type":"TypeString","computed":true},"preferred_app_group_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scheduled_agent_updates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"hour_of_day":{"type":"TypeInt","computed":true}}}},"timezone":{"type":"TypeString","computed":true},"use_session_host_timezone":{"type":"TypeBool","computed":true}}}},"start_vm_on_connect":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"validate_environment":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"default_route_table_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"remote_virtual_network_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"routing":{"type":"TypeList","computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","computed":true},"propagated_route_table":{"type":"TypeList","computed":true,"elem":{"schema":{"labels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"static_vnet_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"next_hop_ip_address":{"type":"TypeString","computed":true}}}}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"instances":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"instance_id":{"type":"TypeString","computed":true},"latest_model_applied":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnets":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","computed":true},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"peer_weight":{"type":"TypeInt","computed":true},"peering_address":{"type":"TypeString","computed":true}}}},"custom_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"default_local_network_gateway_id":{"type":"TypeString","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"generation":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"vpn_client_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","computed":true},"aad_issuer":{"type":"TypeString","computed":true},"aad_tenant":{"type":"TypeString","computed":true},"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","computed":true},"radius_server_secret":{"type":"TypeString","computed":true},"revoked_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"root_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"vpn_client_protocols":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"vpn_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"connection_protocol":{"type":"TypeString","computed":true},"dpd_timeout_seconds":{"type":"TypeInt","computed":true},"egress_bytes_transferred":{"type":"TypeInt","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"express_route_circuit_id":{"type":"TypeString","computed":true},"express_route_gateway_bypass":{"type":"TypeBool","computed":true},"ingress_bytes_transferred":{"type":"TypeInt","computed":true},"ipsec_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"dh_group":{"type":"TypeString","computed":true},"ike_encryption":{"type":"TypeString","computed":true},"ike_integrity":{"type":"TypeString","computed":true},"ipsec_encryption":{"type":"TypeString","computed":true},"ipsec_integrity":{"type":"TypeString","computed":true},"pfs_group":{"type":"TypeString","computed":true},"sa_datasize":{"type":"TypeInt","computed":true},"sa_lifetime":{"type":"TypeInt","computed":true}}}},"local_azure_ip_address_enabled":{"type":"TypeBool","computed":true},"local_network_gateway_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peer_virtual_network_gateway_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"routing_weight":{"type":"TypeInt","computed":true},"shared_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","computed":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","computed":true},"virtual_network_gateway_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","computed":true},"disable_vpn_encryption":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"office365_local_breakout_category":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vpn_site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"management_cluster":{"type":"TypeList","computed":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","computed":true}}}},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_subnet_cidr":{"type":"TypeString","computed":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_vpn_gateway":{"schema":{"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"instance_1_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"peer_weight":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_unit":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_application_firewall_policy":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_pubsub_private_link_resource":{"schema":{"shared_private_link_resource_types":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","computed":true}}}},"web_pubsub_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","computed":true},"docker_container_name":{"type":"TypeString","computed":true},"docker_container_registry":{"type":"TypeString","computed":true},"docker_container_tag":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_core_version":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_embedded_server_enabled":{"type":"TypeBool","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python":{"type":"TypeBool","computed":true},"python_version":{"type":"TypeString","computed":true},"tomcat_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"custom_action":{"type":"TypeList","computed":true,"elem":{"schema":{"executable":{"type":"TypeString","computed":true},"parameters":{"type":"TypeString","computed":true}}}},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","computed":true},"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"virtual_application":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"preload":{"type":"TypeBool","computed":true},"virtual_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"virtual_path":{"type":"TypeString","computed":true}}}},"virtual_path":{"type":"TypeString","computed":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}}}}} +{"providerName":"azurerm","schemaVersion":"1","providerSchema":{"schema":{"auxiliary_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":3},"client_certificate":{"type":"TypeString","optional":true,"description":"Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_password":{"type":"TypeString","optional":true,"description":"The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client Certificate"},"client_certificate_path":{"type":"TypeString","optional":true,"description":"The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service Principal using a Client Certificate."},"client_id":{"type":"TypeString","optional":true,"description":"The Client ID which should be used."},"client_id_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client ID which should be used."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"client_secret_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret."},"disable_correlation_request_id":{"type":"TypeBool","optional":true,"description":"This will disable the x-ms-correlation-request-id header."},"disable_terraform_partner_id":{"type":"TypeBool","optional":true,"description":"This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified."},"environment":{"type":"TypeString","required":true,"description":"The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public."},"features":{"type":"TypeList","required":true,"elem":{"schema":{"api_management":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"app_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true},"recover_soft_deleted":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"application_insights":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_generated_rule":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cognitive_account":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"purge_soft_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_certificates_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_hardware_security_modules_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_managed_hardware_security_module` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_keys_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be permanently deleted (e.g purged), when destroyed"},"purge_soft_deleted_secrets_on_destroy":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be permanently deleted (e.g purged), when destroyed"},"recover_soft_deleted_certificates":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_certificate` resources will be restored, instead of creating new ones"},"recover_soft_deleted_key_vaults":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault` resources will be restored, instead of creating new ones"},"recover_soft_deleted_keys":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_key` resources will be restored, instead of creating new ones"},"recover_soft_deleted_secrets":{"type":"TypeBool","optional":true,"default":true,"description":"When enabled soft-deleted `azurerm_key_vault_secret` resources will be restored, instead of creating new ones"}}},"maxItems":1},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"permanently_delete_on_destroy":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"managed_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"expand_without_downtime":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_deletion_if_contains_resources":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"prevent_cancellation_on_destroy":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"template_deployment":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_nested_items_during_deletion":{"type":"TypeBool","required":true}}},"maxItems":1},"virtual_machine":{"type":"TypeList","optional":true,"elem":{"schema":{"delete_os_disk_on_deletion":{"type":"TypeBool","optional":true,"default":false},"graceful_shutdown":{"type":"TypeBool","optional":true,"default":false},"skip_shutdown_and_force_delete":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"virtual_machine_scale_set":{"type":"TypeList","optional":true,"elem":{"schema":{"force_delete":{"type":"TypeBool","optional":true,"default":false},"roll_instances_when_required":{"type":"TypeBool","required":true},"scale_to_zero_before_deletion":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1,"minItems":1},"metadata_host":{"type":"TypeString","required":true,"description":"The Hostname which should be used for the Azure Metadata Service."},"msi_endpoint":{"type":"TypeString","optional":true,"description":"The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected automatically. "},"oidc_request_token":{"type":"TypeString","optional":true,"description":"The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_request_url":{"type":"TypeString","optional":true,"description":"The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal using OpenID Connect."},"oidc_token":{"type":"TypeString","optional":true,"description":"The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"oidc_token_file_path":{"type":"TypeString","optional":true,"description":"The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect."},"partner_id":{"type":"TypeString","optional":true,"description":"A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution."},"skip_provider_registration":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already registered?"},"storage_use_azuread":{"type":"TypeBool","optional":true,"description":"Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?"},"subscription_id":{"type":"TypeString","optional":true,"description":"The Subscription ID which should be used."},"tenant_id":{"type":"TypeString","optional":true,"description":"The Tenant ID which should be used."},"use_cli":{"type":"TypeBool","optional":true,"default":true,"description":"Allow Azure CLI to be used for Authentication."},"use_msi":{"type":"TypeBool","optional":true,"description":"Allow Managed Service Identity to be used for Authentication."},"use_oidc":{"type":"TypeBool","optional":true,"description":"Allow OpenID Connect to be used for authentication"}},"resources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"country_code":{"type":"TypeString","optional":true,"description":"Country code of the B2C tenant. See https://aka.ms/B2CDataResidency for valid country codes.","computed":true,"forceNew":true},"data_residency_location":{"type":"TypeString","required":true,"description":"Location in which the B2C tenant is hosted and data resides. See https://aka.ms/B2CDataResidency for more information.","forceNew":true},"display_name":{"type":"TypeString","optional":true,"description":"The initial display name of the B2C tenant.","computed":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix.","forceNew":true},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"description":"Billing SKU for the B2C tenant. See https://aka.ms/b2cBilling for more information."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","optional":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"filtered_sync_enabled":{"type":"TypeBool","optional":true,"default":false},"initial_replica_set":{"type":"TypeList","required":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notifications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","optional":true,"default":false},"notify_global_admins":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","required":true},"external_access_enabled":{"type":"TypeBool","optional":true,"default":false},"pfx_certificate":{"type":"TypeString","required":true},"pfx_certificate_password":{"type":"TypeString","required":true},"public_certificate":{"type":"TypeString","computed":true}}},"maxItems":1},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","optional":true,"default":false},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"ntlm_v1_enabled":{"type":"TypeBool","optional":true,"default":false},"sync_kerberos_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_ntlm_passwords":{"type":"TypeBool","optional":true,"default":false},"sync_on_prem_passwords":{"type":"TypeBool","optional":true,"default":false},"tls_v1_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_replica_set":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"external_access_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":180,"read":5,"delete":60,"update":120}},"azurerm_active_directory_domain_service_trust":{"schema":{"domain_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"trusted_domain_dns_ips":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":2},"trusted_domain_fqdn":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_advanced_threat_protection":{"schema":{"enabled":{"type":"TypeBool","required":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_analysis_services_server":{"schema":{"admin_users":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"backup_blob_container_uri":{"type":"TypeString","optional":true},"enable_power_bi_service":{"type":"TypeBool","optional":true},"ipv4_firewall_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"range_end":{"type":"TypeString","required":true},"range_start":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"querypool_connection_mode":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_full_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_connection":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}}},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_password":{"type":"TypeString","optional":true},"encoded_certificate":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","required":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}},"maxItems":10},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"delegation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"subscriptions_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","optional":true},"user_registration_enabled":{"type":"TypeBool","optional":true,"default":false},"validation_key":{"type":"TypeString","optional":true}}},"maxItems":1},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_disabled":{"type":"TypeBool","optional":true,"default":false},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"management_api_url":{"type":"TypeString","computed":true},"min_api_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_sender_email":{"type":"TypeString","optional":true,"computed":true},"policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}}},"maxItems":1},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocols":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_http2":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_ip_address_id":{"type":"TypeString","optional":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"publisher_email":{"type":"TypeString","required":true},"publisher_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scm_url":{"type":"TypeString","computed":true},"security":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enable_backend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_backend_tls11":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_ssl30":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls10":{"type":"TypeBool","optional":true,"default":false},"enable_frontend_tls11":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_ecdsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_ecdhe_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes128_gcm_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha256_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_cbc_sha_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"tls_rsa_with_aes256_gcm_sha384_ciphers_enabled":{"type":"TypeBool","optional":true,"default":false},"triple_des_ciphers_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"sign_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"sign_up":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"terms_of_service":{"type":"TypeList","required":true,"elem":{"schema":{"consent_required":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","required":true},"text":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_network_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"virtual_network_type":{"type":"TypeString","optional":true,"default":"None"},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_type":{"type":"TypeString","optional":true,"computed":true},"contact":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"content_format":{"type":"TypeString","required":true},"content_value":{"type":"TypeString","required":true},"wsdl_selector":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"license":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"oauth2_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization_server_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true}}},"maxItems":1},"openid_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"openid_provider_name":{"type":"TypeString","required":true}}},"maxItems":1},"path":{"type":"TypeString","optional":true,"computed":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision":{"type":"TypeString","required":true,"forceNew":true},"revision_description":{"type":"TypeString","optional":true},"service_url":{"type":"TypeString","optional":true,"computed":true},"soap_pass_through":{"type":"TypeBool","optional":true,"computed":true},"source_api_id":{"type":"TypeString","optional":true},"subscription_key_parameter_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"header":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true}}},"maxItems":1},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"terms_of_service_url":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"computed":true},"version_description":{"type":"TypeString","optional":true},"version_set_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"method":{"type":"TypeString","required":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"query_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"response":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"representation":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"form_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"schema_id":{"type":"TypeString","optional":true},"type_name":{"type":"TypeString","optional":true}}}},"status_code":{"type":"TypeInt","required":true}}}},"template_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"example":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"external_value":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"summary":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"required":{"type":"TypeBool","required":true},"schema_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_name":{"type":"TypeString","optional":true},"values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"url_template":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"operation_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_operation_tag":{"schema":{"api_operation_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_release":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"components":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","required":true},"definitions":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_tag":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_api_tag_description":{"schema":{"api_tag_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"external_documentation_description":{"type":"TypeString","optional":true},"external_documentation_url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"version_header_name":{"type":"TypeString","optional":true},"version_query_name":{"type":"TypeString","optional":true},"versioning_scheme":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_authorization_server":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authorization_endpoint":{"type":"TypeString","required":true},"authorization_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"bearer_token_sending_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_authentication_method":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_registration_endpoint":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"default_scope":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"grant_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_owner_password":{"type":"TypeString","optional":true},"resource_owner_username":{"type":"TypeString","optional":true},"support_state":{"type":"TypeBool","optional":true},"token_body_parameter":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"token_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_backend":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"credentials":{"type":"TypeList","optional":true,"elem":{"schema":{"authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","optional":true},"scheme":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"header":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"query":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true},"service_fabric_cluster":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_id":{"type":"TypeString","optional":true,"computed":true},"client_certificate_thumbprint":{"type":"TypeString","optional":true,"computed":true},"management_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"max_partition_resolution_retries":{"type":"TypeInt","required":true},"server_certificate_thumbprints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"server_x509_name":{"type":"TypeSet","optional":true,"elem":{"schema":{"issuer_certificate_thumbprint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"title":{"type":"TypeString","optional":true},"tls":{"type":"TypeList","optional":true,"elem":{"schema":{"validate_certificate_chain":{"type":"TypeBool","optional":true},"validate_certificate_name":{"type":"TypeBool","optional":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_certificate":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"data":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","computed":true},"key_vault_identity_client_id":{"type":"TypeString","optional":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_custom_domain":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"developer_portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"default_ssl_binding":{"type":"TypeBool","optional":true,"computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"management":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"portal":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"scm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"certificate_password":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","computed":true},"certificate_status":{"type":"TypeString","computed":true},"expiry":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"negotiate_client_certificate":{"type":"TypeBool","optional":true,"default":false},"ssl_keyvault_identity_client_id":{"type":"TypeString","optional":true},"subject":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_api_management_diagnostic":{"schema":{"always_log_errors":{"type":"TypeBool","optional":true,"computed":true},"api_management_logger_id":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"backend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"backend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_request":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"frontend_response":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"body_bytes":{"type":"TypeInt","optional":true},"data_masking":{"type":"TypeList","optional":true,"elem":{"schema":{"headers":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"query_params":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}},"maxItems":1},"headers_to_log":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"http_correlation_protocol":{"type":"TypeString","optional":true,"computed":true},"identifier":{"type":"TypeString","required":true,"forceNew":true},"log_client_ip":{"type":"TypeBool","optional":true,"computed":true},"operation_name_format":{"type":"TypeString","optional":true,"default":"Name"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sampling_percentage":{"type":"TypeFloat","optional":true,"computed":true},"verbosity":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_email_template":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true},"template_name":{"type":"TypeString","required":true,"forceNew":true},"title":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location_data":{"type":"TypeList","required":true,"elem":{"schema":{"city":{"type":"TypeString","optional":true},"district":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_api":{"schema":{"api_id":{"type":"TypeString","required":true,"forceNew":true},"gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_certificate_authority":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"is_trusted":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_id":{"type":"TypeString","required":true},"gateway_name":{"type":"TypeString","required":true,"forceNew":true},"host_name":{"type":"TypeString","required":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request_client_certificate_enabled":{"type":"TypeBool","optional":true},"tls10_enabled":{"type":"TypeBool","optional":true},"tls11_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_global_schema":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schema_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"external_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"custom","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_group_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aad":{"schema":{"allowed_tenants":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_tenant":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_aadb2c":{"schema":{"allowed_tenant":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"authority":{"type":"TypeString","required":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"password_reset_policy":{"type":"TypeString","optional":true},"profile_editing_policy":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signin_policy":{"type":"TypeString","required":true},"signin_tenant":{"type":"TypeString","required":true},"signup_policy":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_facebook":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_google":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_microsoft":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_identity_provider_twitter":{"schema":{"api_key":{"type":"TypeString","required":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_secret_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_logger":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"application_insights":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"instrumentation_key":{"type":"TypeString","required":true}}},"maxItems":1},"buffered":{"type":"TypeBool","optional":true,"default":true},"description":{"type":"TypeString","optional":true},"eventhub":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_named_value":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","optional":true},"value_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"secret_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_notification_recipient_email":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"email":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_notification_recipient_user":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"notification_type":{"type":"TypeString","required":true,"forceNew":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_api_management_openid_connect_provider":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"metadata_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_policy":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"approval_required":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"published":{"type":"TypeBool","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","optional":true,"default":true},"subscriptions_limit":{"type":"TypeInt","optional":true},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_api":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_group":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"group_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_policy":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"product_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"xml_content":{"type":"TypeString","optional":true,"computed":true},"xml_link":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_product_tag":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"api_management_product_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_redis_cache":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"cache_location":{"type":"TypeString","optional":true,"default":"default"},"connection_string":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_subscription":{"schema":{"allow_tracing":{"type":"TypeBool","optional":true,"default":true},"api_id":{"type":"TypeString","optional":true,"forceNew":true},"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","optional":true,"computed":true},"product_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true,"computed":true},"state":{"type":"TypeString","optional":true,"default":"submitted"},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_tag":{"schema":{"api_management_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true,"forceNew":true},"confirmation":{"type":"TypeString","optional":true,"forceNew":true},"email":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","required":true},"last_name":{"type":"TypeString","required":true},"note":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","optional":true,"computed":true},"user_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_identifier":{"type":"TypeString","optional":true}}},"maxItems":1},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","optional":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"replica":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","optional":true,"default":"free"},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":7,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_app_configuration_feature":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"percentage_filter_value":{"type":"TypeFloat","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"targeting_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"default_rollout_percentage":{"type":"TypeInt","required":true},"groups":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"rollout_percentage":{"type":"TypeInt","required":true}}}},"users":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"timewindow_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","optional":true},"start":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"computed":true},"etag":{"type":"TypeString","optional":true,"computed":true},"key":{"type":"TypeString","required":true,"forceNew":true},"label":{"type":"TypeString","optional":true,"forceNew":true},"locked":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"kv"},"value":{"type":"TypeString","optional":true,"computed":true},"vault_key_reference":{"type":"TypeString","optional":true}},"timeouts":{"create":45,"read":5,"delete":30,"update":30}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true},"frequency_unit":{"type":"TypeString","required":true},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false},"retention_period_in_days":{"type":"TypeInt","optional":true,"default":30},"start_time":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"client_cert_mode":{"type":"TypeString","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_active_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_slot_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate":{"schema":{"app_service_plan_id":{"type":"TypeString","optional":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hosting_environment_profile_id":{"type":"TypeString","computed":true},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"pfx_blob":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_certificate_binding":{"schema":{"app_service_name":{"type":"TypeString","computed":true},"certificate_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","computed":true},"hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","optional":true,"default":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","optional":true,"computed":true},"distinguished_name":{"type":"TypeString","optional":true,"computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","optional":true,"default":2048},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_type":{"type":"TypeString","optional":true,"default":"Standard"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","optional":true,"default":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_custom_hostname_binding":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_environment":{"schema":{"allowed_user_ip_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"front_end_scale_factor":{"type":"TypeInt","optional":true,"default":15},"internal_ip_address":{"type":"TypeString","computed":true},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","optional":true,"default":"I1"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_ip_address":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","optional":true,"default":true},"cluster_setting":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dedicated_host_count":{"type":"TypeInt","optional":true,"forceNew":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_app_service_hybrid_connection":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","required":true},"relay_id":{"type":"TypeString","required":true,"forceNew":true},"relay_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey"},"send_key_value":{"type":"TypeString","computed":true},"service_bus_namespace":{"type":"TypeString","computed":true},"service_bus_suffix":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_managed_certificate":{"schema":{"canonical_name":{"type":"TypeString","computed":true},"custom_hostname_binding_id":{"type":"TypeString","required":true,"forceNew":true},"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"is_xenon":{"type":"TypeBool","optional":true},"kind":{"type":"TypeString","optional":true,"default":"Windows","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling":{"type":"TypeBool","optional":true},"reserved":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"size":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_app_service_public_certificate":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"blob":{"type":"TypeString","required":true,"forceNew":true},"certificate_location":{"type":"TypeString","required":true,"forceNew":true},"certificate_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot":{"schema":{"app_service_name":{"type":"TypeString","required":true,"forceNew":true},"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","optional":true,"default":"Off"}}},"maxItems":1},"detailed_error_messages_enabled":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing_enabled":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","optional":true,"default":false},"acr_user_managed_identity_client_id":{"type":"TypeString","optional":true},"always_on":{"type":"TypeBool","optional":true,"default":false},"app_command_line":{"type":"TypeString","optional":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"local_mysql_enabled":{"type":"TypeBool","optional":true,"computed":true},"managed_pipeline_mode":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"number_of_workers":{"type":"TypeInt","optional":true,"computed":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"computed":true},"windows_fx_version":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_slot_custom_hostname_binding":{"schema":{"app_service_slot_id":{"type":"TypeString","required":true,"forceNew":true},"hostname":{"type":"TypeString","required":true,"forceNew":true},"ssl_state":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_ip":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_slot_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"slot_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_source_control":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows or Linux Web App.","forceNew":true},"branch":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The URL for the repository.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`.","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the App use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `false` to enable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`.","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_slot":{"schema":{"branch":{"type":"TypeString","optional":true,"description":"The URL for the repository","computed":true,"forceNew":true},"github_action_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"code_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"runtime_stack":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Stack in the workflow file content for code base apps.","forceNew":true},"runtime_version":{"type":"TypeString","required":true,"description":"The value to use for the Runtime Version in the workflow file content for code base apps.","forceNew":true}}},"maxItems":1},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The image name for the build.","forceNew":true},"registry_password":{"type":"TypeString","optional":true,"description":"The password used to upload the image to the container registry.","forceNew":true},"registry_url":{"type":"TypeString","required":true,"description":"The server URL for the container registry where the build will be hosted.","forceNew":true},"registry_username":{"type":"TypeString","optional":true,"description":"The username used to upload the image to the container registry.","forceNew":true}}},"maxItems":1},"generate_workflow_file":{"type":"TypeBool","optional":true,"default":true,"description":"Should the service generate the GitHub Action Workflow file. Defaults to `true`","forceNew":true},"linux_action":{"type":"TypeBool","description":"Denotes this action uses a Linux base image.","computed":true}}},"maxItems":1},"repo_url":{"type":"TypeString","optional":true,"description":"The branch name to use for deployments.","computed":true,"forceNew":true},"rollback_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Deployment Rollback be enabled? Defaults to `false`","forceNew":true},"scm_type":{"type":"TypeString","description":"The SCM Type in use. This value is decoded by the service from the repository information supplied.","computed":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Linux or Windows Web App Slot.","forceNew":true},"use_local_git":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Slot use local Git configuration.","forceNew":true},"use_manual_integration":{"type":"TypeBool","optional":true,"default":false,"description":"Should code be deployed manually. Set to `true` to disable continuous integration, such as webhooks into online repos such as GitHub. Defaults to `false`","forceNew":true},"use_mercurial":{"type":"TypeBool","optional":true,"default":false,"description":"The repository specified is Mercurial. Defaults to `false`.","forceNew":true},"uses_github_action":{"type":"TypeBool","description":"Indicates if the Slot uses a GitHub action for deployment. This value is decoded by the service from the repository information supplied.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_app_service_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_app_service_virtual_network_swift_connection":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_gateway":{"schema":{"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"autoscale_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"max_capacity":{"type":"TypeInt","optional":true},"min_capacity":{"type":"TypeInt","required":true}}},"maxItems":1},"backend_address_pool":{"type":"TypeSet","required":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"backend_http_settings":{"type":"TypeSet","required":true,"elem":{"schema":{"affinity_cookie_name":{"type":"TypeString","optional":true},"authentication_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"connection_draining":{"type":"TypeList","optional":true,"elem":{"schema":{"drain_timeout_sec":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"cookie_based_affinity":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"pick_host_name_from_backend_address":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","required":true},"probe_id":{"type":"TypeString","computed":true},"probe_name":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"request_timeout":{"type":"TypeInt","optional":true,"default":30},"trusted_root_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"enable_http2":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"force_firewall_policy_association":{"type":"TypeBool","optional":true},"frontend_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"private_link_configuration_id":{"type":"TypeString","computed":true},"private_link_configuration_name":{"type":"TypeString","optional":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"minItems":1},"frontend_port":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true}}}},"gateway_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":2},"global":{"type":"TypeList","optional":true,"elem":{"schema":{"request_buffering_enabled":{"type":"TypeBool","required":true},"response_buffering_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"http_listener":{"type":"TypeSet","required":true,"elem":{"schema":{"custom_error_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_error_page_url":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"status_code":{"type":"TypeString","required":true}}}},"firewall_policy_id":{"type":"TypeString","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_id":{"type":"TypeString","computed":true},"frontend_port_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","optional":true},"host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"require_sni":{"type":"TypeBool","optional":true},"ssl_certificate_id":{"type":"TypeString","computed":true},"ssl_certificate_name":{"type":"TypeString","optional":true},"ssl_profile_id":{"type":"TypeString","computed":true},"ssl_profile_name":{"type":"TypeString","optional":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_link_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true}}}},"probe":{"type":"TypeSet","optional":true,"elem":{"schema":{"host":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"interval":{"type":"TypeInt","required":true},"match":{"type":"TypeList","optional":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"status_code":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"minimum_servers":{"type":"TypeInt","optional":true,"default":0},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"pick_host_name_from_backend_http_settings":{"type":"TypeBool","optional":true,"default":false},"port":{"type":"TypeInt","optional":true},"protocol":{"type":"TypeString","required":true},"timeout":{"type":"TypeInt","required":true},"unhealthy_threshold":{"type":"TypeInt","required":true}}}},"redirect_configuration":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"include_path":{"type":"TypeBool","optional":true,"default":false},"include_query_string":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true},"target_listener_id":{"type":"TypeString","computed":true},"target_listener_name":{"type":"TypeString","optional":true},"target_url":{"type":"TypeString","optional":true}}}},"request_routing_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"http_listener_id":{"type":"TypeString","computed":true},"http_listener_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true},"rule_type":{"type":"TypeString","required":true},"url_path_map_id":{"type":"TypeString","computed":true},"url_path_map_name":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rewrite_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"rewrite_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"ignore_case":{"type":"TypeBool","optional":true,"default":false},"negate":{"type":"TypeBool","optional":true,"default":false},"pattern":{"type":"TypeString","required":true},"variable":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"request_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"response_header_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"header_value":{"type":"TypeString","required":true}}}},"rule_sequence":{"type":"TypeInt","required":true},"url":{"type":"TypeList","optional":true,"elem":{"schema":{"components":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","optional":true},"query_string":{"type":"TypeString","optional":true},"reroute":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"ssl_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"ssl_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"ssl_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"ssl_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"cipher_suites":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"disabled_protocols":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"min_protocol_version":{"type":"TypeString","optional":true},"policy_name":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","optional":true}}},"maxItems":1},"trusted_client_certificate_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verify_client_cert_issuer_dn":{"type":"TypeBool","optional":true,"default":false},"verify_client_certificate_revocation":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_client_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}}},"trusted_root_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"url_path_map":{"type":"TypeList","optional":true,"elem":{"schema":{"default_backend_address_pool_id":{"type":"TypeString","computed":true},"default_backend_address_pool_name":{"type":"TypeString","optional":true},"default_backend_http_settings_id":{"type":"TypeString","computed":true},"default_backend_http_settings_name":{"type":"TypeString","optional":true},"default_redirect_configuration_id":{"type":"TypeString","computed":true},"default_redirect_configuration_name":{"type":"TypeString","optional":true},"default_rewrite_rule_set_id":{"type":"TypeString","computed":true},"default_rewrite_rule_set_name":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"path_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_address_pool_name":{"type":"TypeString","optional":true},"backend_http_settings_id":{"type":"TypeString","computed":true},"backend_http_settings_name":{"type":"TypeString","optional":true},"firewall_policy_id":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"paths":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"redirect_configuration_id":{"type":"TypeString","computed":true},"redirect_configuration_name":{"type":"TypeString","optional":true},"rewrite_rule_set_id":{"type":"TypeString","computed":true},"rewrite_rule_set_name":{"type":"TypeString","optional":true}}}}}}},"waf_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group_name":{"type":"TypeString","required":true},"rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}}}}},"enabled":{"type":"TypeBool","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"selector_match_operator":{"type":"TypeString","optional":true}}}},"file_upload_limit_mb":{"type":"TypeInt","optional":true,"default":100},"firewall_mode":{"type":"TypeString","required":true},"max_request_body_size_kb":{"type":"TypeInt","optional":true,"default":128},"request_body_check":{"type":"TypeBool","optional":true,"default":true},"rule_set_type":{"type":"TypeString","optional":true,"default":"OWASP"},"rule_set_version":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","required":true,"forceNew":true},"connection_string":{"type":"TypeString","computed":true},"daily_data_cap_in_gb":{"type":"TypeFloat","optional":true,"computed":true},"daily_data_cap_notifications_disabled":{"type":"TypeBool","optional":true,"computed":true},"disable_ip_masking":{"type":"TypeBool","optional":true,"default":false},"force_customer_storage_for_profiler":{"type":"TypeBool","optional":true,"default":false},"instrumentation_key":{"type":"TypeString","computed":true},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":90},"sampling_percentage":{"type":"TypeFloat","optional":true,"default":100},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_application_insights_analytics_item":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","required":true},"function_alias":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"time_created":{"type":"TypeString","computed":true},"time_modified":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_api_key":{"schema":{"api_key":{"type":"TypeString","computed":true},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"write_permissions":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_smart_detection_rule":{"schema":{"additional_email_recipients":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"send_emails_to_subscription_owners":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_standard_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"request":{"type":"TypeList","required":true,"elem":{"schema":{"body":{"type":"TypeString","optional":true},"follow_redirects_enabled":{"type":"TypeBool","optional":true,"default":true},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"http_verb":{"type":"TypeString","optional":true,"default":"GET"},"parse_dependent_requests_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30},"validation_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"content":{"type":"TypeList","optional":true,"elem":{"schema":{"content_match":{"type":"TypeString","required":true},"ignore_case":{"type":"TypeBool","optional":true,"default":false},"pass_if_text_found":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"expected_status_code":{"type":"TypeInt","optional":true,"default":200},"ssl_cert_remaining_lifetime":{"type":"TypeInt","optional":true},"ssl_check_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_web_test":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"configuration":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"frequency":{"type":"TypeInt","optional":true,"default":300},"geo_locations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_enabled":{"type":"TypeBool","optional":true},"synthetic_monitor_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeInt","optional":true,"default":30}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook":{"schema":{"category":{"type":"TypeString","optional":true,"default":"workbook"},"data_json":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_id":{"type":"TypeString","optional":true,"default":"azure monitor"},"storage_container_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_insights_workbook_template":{"schema":{"author":{"type":"TypeString","optional":true},"galleries":{"type":"TypeList","required":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","optional":true,"default":0},"resource_type":{"type":"TypeString","optional":true,"default":"Azure Monitor"},"type":{"type":"TypeString","optional":true,"default":"workbook"}}},"minItems":1},"localized":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_data":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_load_balancer":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_configuration_endpoint":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster":{"schema":{"agent_public_key_certificate":{"type":"TypeString","required":true,"forceNew":true},"agent_version":{"type":"TypeString","computed":true},"distribution":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"infrastructure":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"offering":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"total_core_count":{"type":"TypeInt","computed":true},"total_node_count":{"type":"TypeInt","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_cluster_extension":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_machine_extension":{"schema":{"arc_machine_id":{"type":"TypeString","required":true,"forceNew":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true,"default":true},"force_update_tag":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_private_link_scope":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_arc_resource_bridge_appliance":{"schema":{"distro":{"type":"TypeString","required":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"infrastructure_provider":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_key_base64":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"open_enclave_policy_base64":{"type":"TypeString","optional":true},"policy":{"type":"TypeList","optional":true,"elem":{"schema":{"data":{"type":"TypeString","optional":true},"environment_type":{"type":"TypeString","optional":true}}}},"policy_signing_certificate_data":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sev_snp_policy_base64":{"type":"TypeString","optional":true},"sgx_enclave_policy_base64":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tpm_policy_base64":{"type":"TypeString","optional":true},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automanage_configuration":{"schema":{"antimalware":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusions":{"type":"TypeList","optional":true,"elem":{"schema":{"extensions":{"type":"TypeString","optional":true},"paths":{"type":"TypeString","optional":true},"processes":{"type":"TypeString","optional":true}}},"maxItems":1},"real_time_protection_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_day":{"type":"TypeInt","optional":true,"default":8},"scheduled_scan_enabled":{"type":"TypeBool","optional":true,"default":false},"scheduled_scan_time_in_minutes":{"type":"TypeInt","optional":true,"default":0},"scheduled_scan_type":{"type":"TypeString","optional":true,"default":"Quick"}}},"maxItems":1},"automation_account_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_security_baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true,"default":"ApplyAndAutoCorrect"}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"instant_rp_retention_range_in_days":{"type":"TypeInt","optional":true,"default":5},"policy_name":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"daily_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Days"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_policy_type":{"type":"TypeString","optional":true,"default":"LongTermRetentionPolicy"},"weekly_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_duration":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"duration_type":{"type":"TypeString","optional":true,"default":"Weeks"}}},"maxItems":1},"retention_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"schedule_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule_policy_type":{"type":"TypeString","optional":true,"default":"SimpleSchedulePolicy"},"schedule_run_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"schedule_run_frequency":{"type":"TypeString","optional":true,"default":"Daily"},"schedule_run_times":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"boot_diagnostics_enabled":{"type":"TypeBool","optional":true,"default":false},"defender_for_cloud_enabled":{"type":"TypeBool","optional":true,"default":false},"guest_configuration_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status_change_alert_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_account":{"schema":{"dsc_primary_access_key":{"type":"TypeString","computed":true},"dsc_secondary_access_key":{"type":"TypeString","computed":true},"dsc_server_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"key_source":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"base64":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"exportable":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"values":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"automation_certificate_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_classic_certificate":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_asset_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"subscription_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_service_principal":{"schema":{"application_id":{"type":"TypeString","required":true},"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate_thumbprint":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_connection_type":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"field":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"is_encrypted":{"type":"TypeBool","optional":true},"is_optional":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"is_global":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_credential":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_configuration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_embedded":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_verbose":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_dsc_nodeconfiguration":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"configuration_name":{"type":"TypeString","computed":true},"content_embedded":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_hybrid_runbook_worker":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"ip":{"type":"TypeString","computed":true},"last_seen_date_time":{"type":"TypeString","computed":true},"registration_date_time":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"worker_group_name":{"type":"TypeString","required":true,"forceNew":true},"worker_id":{"type":"TypeString","required":true,"forceNew":true},"worker_name":{"type":"TypeString","computed":true},"worker_type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_automation_hybrid_runbook_worker_group":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"credential_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_job_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"job_schedule_id":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on":{"type":"TypeString","optional":true,"forceNew":true},"runbook_name":{"type":"TypeString","required":true,"forceNew":true},"schedule_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_module":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"module_link":{"type":"TypeList","required":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_python3_package":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content_uri":{"type":"TypeString","required":true,"forceNew":true},"content_version":{"type":"TypeString","optional":true,"forceNew":true},"hash_algorithm":{"type":"TypeString","optional":true,"forceNew":true},"hash_value":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_runbook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"content":{"type":"TypeString","optional":true,"computed":true},"description":{"type":"TypeString","optional":true},"draft":{"type":"TypeList","optional":true,"elem":{"schema":{"content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"creation_time":{"type":"TypeString","computed":true},"edit_mode_enabled":{"type":"TypeBool","optional":true},"last_modified_time":{"type":"TypeString","computed":true},"output_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeList","optional":true,"elem":{"schema":{"default_value":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true},"mandatory":{"type":"TypeBool","optional":true,"default":false},"position":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"job_schedule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"job_schedule_id":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_on":{"type":"TypeString","optional":true},"schedule_name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_activity_trace_level":{"type":"TypeInt","optional":true},"log_progress":{"type":"TypeBool","required":true},"log_verbose":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_content_link":{"type":"TypeList","optional":true,"elem":{"schema":{"hash":{"type":"TypeList","optional":true,"elem":{"schema":{"algorithm":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"runbook_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_schedule":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true,"computed":true},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"timezone":{"type":"TypeString","optional":true,"default":"Etc/UTC"},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_software_update_configuration":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"duration":{"type":"TypeString","optional":true,"default":"PT2H"},"error_code":{"type":"TypeString","computed":true},"error_meesage":{"type":"TypeString","computed":true},"error_message":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_packages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"non_azure_computer_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operating_system":{"type":"TypeString","optional":true,"computed":true},"post_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"pre_task":{"type":"TypeList","optional":true,"elem":{"schema":{"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true}}},"maxItems":1},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"advanced_month_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"advanced_week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"creation_time":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"expiry_time":{"type":"TypeString","optional":true,"computed":true},"expiry_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"is_enabled":{"type":"TypeBool","optional":true,"default":true},"last_modified_time":{"type":"TypeString","computed":true},"monthly_occurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"occurrence":{"type":"TypeInt","required":true}}},"maxItems":1},"next_run":{"type":"TypeString","optional":true,"computed":true},"next_run_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"start_time_offset_minutes":{"type":"TypeFloat","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true,"default":"Etc/UTC"}}},"maxItems":1},"target":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"locations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tag_filter":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeList","optional":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}}},"non_azure_query":{"type":"TypeList","optional":true,"elem":{"schema":{"function_alias":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_machine_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classification_included":{"type":"TypeString","optional":true,"computed":true},"classifications_included":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"excluded_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"included_knowledge_base_numbers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"reboot":{"type":"TypeString","optional":true,"default":"IfRequired"}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_automation_source_control":{"schema":{"automatic_sync":{"type":"TypeBool","optional":true,"default":false},"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"branch":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"folder_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"publish_runbook_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_url":{"type":"TypeString","required":true},"security":{"type":"TypeList","required":true,"elem":{"schema":{"refresh_token":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"source_control_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_automation_watcher":{"schema":{"automation_account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"etag":{"type":"TypeString","optional":true},"execution_frequency_in_seconds":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script_name":{"type":"TypeString","required":true,"forceNew":true},"script_parameters":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"script_run_on":{"type":"TypeString","required":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_automation_webhook":{"schema":{"automation_account_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiry_time":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"run_on_worker_group":{"type":"TypeString","optional":true},"runbook_name":{"type":"TypeString","required":true},"uri":{"type":"TypeString","configMode":"Auto","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"default":3,"forceNew":true},"platform_update_domain_count":{"type":"TypeInt","optional":true,"default":5,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_container_storage_account":{"schema":{"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_file_share":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hourly":{"type":"TypeList","optional":true,"elem":{"schema":{"interval":{"type":"TypeInt","required":true},"start_time":{"type":"TypeString","required":true},"window_duration":{"type":"TypeInt","required":true}}},"maxItems":1},"time":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","required":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","required":true},"hour_duration":{"type":"TypeInt","optional":true},"hour_interval":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","required":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instant_restore_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"prefix":{"type":"TypeString","required":true},"suffix":{"type":"TypeString","optional":true}}},"maxItems":1},"instant_restore_retention_days":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_type":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_last_days":{"type":"TypeBool","optional":true,"default":false},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_policy_vm_workload":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"protection_policy":{"type":"TypeSet","required":true,"elem":{"schema":{"backup":{"type":"TypeList","required":true,"elem":{"schema":{"frequency":{"type":"TypeString","optional":true},"frequency_in_minutes":{"type":"TypeInt","optional":true},"time":{"type":"TypeString","optional":true},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"policy_type":{"type":"TypeString","required":true},"retention_daily":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"weekdays":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retention_yearly":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"format_type":{"type":"TypeString","required":true},"monthdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"months":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"weekdays":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"weeks":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"simple_retention":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true}}},"maxItems":1}}}},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeList","required":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1},"workload_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_backup_protected_file_share":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_file_share_name":{"type":"TypeString","required":true,"forceNew":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":80,"read":5,"delete":80,"update":80}},"azurerm_backup_protected_vm":{"schema":{"backup_policy_id":{"type":"TypeString","optional":true},"exclude_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"include_disk_luns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"protection_state":{"type":"TypeString","optional":true,"computed":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":80,"update":120}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","optional":true,"default":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ip_connect_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","optional":true,"default":2},"shareable_link_enabled":{"type":"TypeBool","optional":true,"default":false},"sku":{"type":"TypeString","optional":true,"default":"Basic"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"allowed_authentication_modes":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"account_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1},"node_management_access":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_range":{"type":"TypeString","required":true}}}}}},"maxItems":1}}},"maxItems":1},"pool_allocation_mode":{"type":"TypeString","optional":true,"default":"BatchService"},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_authentication_mode":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_account_node_identity":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"allow_updates":{"type":"TypeBool","optional":true,"default":true},"default_version":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"certificate":{"type":"TypeString","required":true},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","optional":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","required":true,"forceNew":true},"thumbprint_algorithm":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_batch_job":{"schema":{"batch_pool_id":{"type":"TypeString","required":true,"forceNew":true},"common_environment_properties":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"default":0},"task_retry_maximum":{"type":"TypeInt","optional":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","optional":true,"default":"PT15M"},"formula":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"store_location":{"type":"TypeString","required":true},"store_name":{"type":"TypeString","optional":true},"visibility":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"type":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"data_disks":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"default":"ReadOnly"},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","required":true}}}},"display_name":{"type":"TypeString","optional":true,"forceNew":true},"extensions":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","optional":true}}}},"fixed_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"node_deallocation_method":{"type":"TypeString","optional":true},"resize_timeout":{"type":"TypeString","optional":true,"default":"PT15M"},"target_dedicated_nodes":{"type":"TypeInt","optional":true,"default":1},"target_low_priority_nodes":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inter_node_communication":{"type":"TypeString","optional":true,"default":"Enabled"},"license_type":{"type":"TypeString","optional":true},"max_tasks_per_node":{"type":"TypeInt","optional":true,"default":1,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"account_name":{"type":"TypeString","required":true},"blobfuse_options":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"identity_id":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"sas_key":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"azure_file_url":{"type":"TypeString","required":true},"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true}}}},"cifs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"nfs_mount":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeString","optional":true},"relative_mount_path":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"dynamic_vnet_assignment_scope":{"type":"TypeString","optional":true,"default":"none","forceNew":true},"endpoint_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port_range":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"access":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","required":true,"forceNew":true},"source_port_ranges":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString","default":"*"}}}}},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"public_address_provisioning_type":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"node_agent_sku_id":{"type":"TypeString","required":true,"forceNew":true},"node_placement":{"type":"TypeList","optional":true,"elem":{"schema":{"policy":{"type":"TypeString","optional":true,"default":"Regional"}}}},"os_disk_placement":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_task":{"type":"TypeList","optional":true,"elem":{"schema":{"command_line":{"type":"TypeString","required":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","optional":true,"elem":{"schema":{"image_name":{"type":"TypeString","required":true},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"registry_server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"user_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"run_options":{"type":"TypeString","optional":true},"working_directory":{"type":"TypeString","optional":true}}}},"resource_file":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","optional":true},"blob_prefix":{"type":"TypeString","optional":true},"file_mode":{"type":"TypeString","optional":true},"file_path":{"type":"TypeString","optional":true},"http_url":{"type":"TypeString","optional":true},"storage_container_url":{"type":"TypeString","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}},"task_retry_maximum":{"type":"TypeInt","optional":true},"user_identity":{"type":"TypeList","required":true,"elem":{"schema":{"auto_user":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","optional":true,"default":"NonAdmin"},"scope":{"type":"TypeString","optional":true,"default":"Task"}}},"maxItems":1},"user_name":{"type":"TypeString","optional":true}}},"maxItems":1},"wait_for_success":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"stop_pending_resize_operation":{"type":"TypeBool","optional":true,"default":false},"storage_image_reference":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"target_node_communication_mode":{"type":"TypeString","optional":true},"task_scheduling_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","optional":true,"computed":true}}}},"user_accounts":{"type":"TypeList","optional":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","required":true},"linux_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gid":{"type":"TypeInt","optional":true},"ssh_private_key":{"type":"TypeString","optional":true},"uid":{"type":"TypeInt","optional":true}}}},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"windows_user_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}}}}}},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_billing_account_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"billing_account_id":{"type":"TypeString","required":true,"forceNew":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_blueprint_assignment":{"schema":{"blueprint_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_exclude_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":200},"lock_exclude_principals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"lock_mode":{"type":"TypeString","optional":true,"default":"None"},"name":{"type":"TypeString","required":true,"forceNew":true},"parameter_values":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeString","optional":true},"target_subscription_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","computed":true},"version_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_bot_channel_alexa":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skill_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_direct_line_speech":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"cognitive_account_id":{"type":"TypeString","optional":true},"cognitive_service_access_key":{"type":"TypeString","required":true},"cognitive_service_location":{"type":"TypeString","required":true},"custom_speech_model_id":{"type":"TypeString","optional":true},"custom_voice_deployment_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_directline":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site":{"type":"TypeSet","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_parameters_enabled":{"type":"TypeBool","optional":true},"enhanced_authentication_enabled":{"type":"TypeBool","optional":true,"default":false},"id":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key2":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"storage_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"user_upload_enabled":{"type":"TypeBool","optional":true,"default":true},"v1_allowed":{"type":"TypeBool","optional":true,"default":true},"v3_allowed":{"type":"TypeBool","optional":true,"default":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_email":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"email_address":{"type":"TypeString","required":true},"email_password":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_facebook":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"facebook_application_id":{"type":"TypeString","required":true},"facebook_application_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"page":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_line":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"line_channel":{"type":"TypeSet","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","required":true},"secret":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_ms_teams":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"calling_web_hook":{"type":"TypeString","optional":true,"computed":true},"deployment_environment":{"type":"TypeString","optional":true,"default":"CommercialDeployment"},"enable_calling":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_slack":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"landing_page_url":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"signing_secret":{"type":"TypeString","optional":true},"verification_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_sms":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sms_channel_account_security_id":{"type":"TypeString","required":true},"sms_channel_auth_token":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channel_web_chat":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"endpoint_parameters_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"storage_enabled":{"type":"TypeBool","optional":true,"default":true},"user_upload_enabled":{"type":"TypeBool","optional":true,"default":true}}}},"site_names":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_channels_registration":{"schema":{"cmk_key_vault_url":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"icon_url":{"type":"TypeString","optional":true,"computed":true},"isolated_network_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_connection":{"schema":{"bot_name":{"type":"TypeString","required":true,"forceNew":true},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeString","optional":true},"service_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_service_azure_bot":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true},"developer_app_insights_key":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"icon_url":{"type":"TypeString","optional":true,"default":"https://docs.botframework.com/static/devportal/client/images/bot-framework-default.png"},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_app_msi_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"microsoft_app_type":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"streaming_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_bot_web_app":{"schema":{"developer_app_insights_api_key":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_application_id":{"type":"TypeString","optional":true,"computed":true},"developer_app_insights_key":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"endpoint":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"luis_app_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"luis_key":{"type":"TypeString","optional":true},"microsoft_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_capacity_reservation_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint":{"schema":{"content_types_to_compress":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"name":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"post_arg_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}},"maxItems":1},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_file_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}}},"fqdn":{"type":"TypeString","computed":true},"geo_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"country_codes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"relative_path":{"type":"TypeString","required":true}}}},"global_delivery_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_expiration_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"duration":{"type":"TypeString","optional":true}}},"maxItems":1},"cache_key_query_string_action":{"type":"TypeList","optional":true,"elem":{"schema":{"behavior":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"modify_request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"modify_response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fragment":{"type":"TypeString","optional":true},"hostname":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"query_string":{"type":"TypeString","optional":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":true},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"is_compression_enabled":{"type":"TypeBool","optional":true},"is_http_allowed":{"type":"TypeBool","optional":true,"default":true},"is_https_allowed":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimization_type":{"type":"TypeString","optional":true},"origin":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true,"forceNew":true},"http_port":{"type":"TypeInt","optional":true,"default":80,"forceNew":true},"https_port":{"type":"TypeInt","optional":true,"default":443,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"origin_host_header":{"type":"TypeString","optional":true},"origin_path":{"type":"TypeString","optional":true,"computed":true},"probe_path":{"type":"TypeString","optional":true,"computed":true},"profile_name":{"type":"TypeString","required":true,"forceNew":true},"querystring_caching_behaviour":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_endpoint_custom_domain":{"schema":{"cdn_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_type":{"type":"TypeString","required":true},"protocol_type":{"type":"TypeString","required":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"user_managed_https":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","optional":true,"computed":true},"key_vault_secret_id":{"type":"TypeString","optional":true,"computed":true},"tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1,"minItems":1}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"dns_zone_id":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tls":{"type":"TypeList","required":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","optional":true,"computed":true},"certificate_type":{"type":"TypeString","optional":true,"default":"ManagedCertificate"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"TLS12"}}},"maxItems":1},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"create":720,"read":5,"delete":720,"update":1440}},"azurerm_cdn_frontdoor_custom_domain_association":{"schema":{"cdn_frontdoor_custom_domain_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_route_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin":{"schema":{"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true,"forceNew":true},"certificate_name_check_enabled":{"type":"TypeBool","required":true},"enabled":{"type":"TypeBool","optional":true,"computed":true},"health_probes_enabled":{"type":"TypeBool","optional":true,"computed":true},"host_name":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","optional":true,"default":80},"https_port":{"type":"TypeInt","optional":true,"default":443},"name":{"type":"TypeString","required":true,"forceNew":true},"origin_host_header":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","optional":true,"default":1},"private_link":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"private_link_target_id":{"type":"TypeString","required":true},"request_message":{"type":"TypeString","optional":true,"default":"Access request for CDN FrontDoor Private Link Origin"},"target_type":{"type":"TypeString","optional":true}}},"maxItems":1},"weight":{"type":"TypeInt","optional":true,"default":500}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"health_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"protocol":{"type":"TypeString","required":true},"request_type":{"type":"TypeString","optional":true,"default":"HEAD"}}},"maxItems":1},"load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","optional":true,"default":50},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","optional":true,"default":10},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","optional":true,"default":120},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route":{"schema":{"cache":{"type":"TypeList","optional":true,"elem":{"schema":{"compression_enabled":{"type":"TypeBool","optional":true,"default":false},"content_types_to_compress":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"query_string_caching_behavior":{"type":"TypeString","optional":true,"default":"IgnoreQueryString"},"query_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"cdn_frontdoor_custom_domain_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_endpoint_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","required":true},"cdn_frontdoor_origin_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_origin_path":{"type":"TypeString","optional":true},"cdn_frontdoor_rule_set_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"https_redirect_enabled":{"type":"TypeBool","optional":true,"default":true},"link_to_default_domain":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"supported_protocols":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_route_disable_link_to_default_domain":{"schema":{"cdn_frontdoor_custom_domain_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"cdn_frontdoor_route_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"request_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"response_header_action":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action":{"type":"TypeString","required":true},"header_name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"route_configuration_override_action":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_behavior":{"type":"TypeString","optional":true},"cache_duration":{"type":"TypeString","optional":true},"cdn_frontdoor_origin_group_id":{"type":"TypeString","optional":true},"compression_enabled":{"type":"TypeBool","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true},"query_string_caching_behavior":{"type":"TypeString","optional":true},"query_string_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":100}}},"maxItems":1},"url_redirect_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_fragment":{"type":"TypeString","optional":true,"default":""},"destination_hostname":{"type":"TypeString","required":true},"destination_path":{"type":"TypeString","optional":true,"default":""},"query_string":{"type":"TypeString","optional":true,"default":""},"redirect_protocol":{"type":"TypeString","optional":true,"default":"MatchRequest"},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1},"url_rewrite_action":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeString","required":true},"preserve_unmatched_path":{"type":"TypeBool","optional":true,"default":false},"source_pattern":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"behavior_on_match":{"type":"TypeString","optional":true,"default":"Continue"},"cdn_frontdoor_rule_set_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_rule_set_name":{"type":"TypeString","computed":true},"conditions":{"type":"TypeList","optional":true,"elem":{"schema":{"client_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"cookies_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"cookie_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"host_name_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"http_version_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":4},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"is_device_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"post_args_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"post_args_name":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"query_string_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"remote_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"request_body_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_header_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"request_method_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_scheme_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString","default":"HTTP"},"maxItems":1},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"request_uri_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"server_port_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":2},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true}}}},"socket_address_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"IPMatch"}}}},"ssl_protocol_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":3},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","optional":true,"default":"Equal"}}}},"url_file_extension_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_filename_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}},"url_path_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":4}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"cdn_frontdoor_profile_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"key_vault_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_frontdoor_security_policy":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"security_policies":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"firewall":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"association":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"domain":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"active":{"type":"TypeBool","computed":true},"cdn_frontdoor_domain_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":500},"patterns_to_match":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}}},"maxItems":1},"cdn_frontdoor_firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account":{"schema":{"custom_question_answering_search_service_id":{"type":"TypeString","optional":true},"custom_question_answering_search_service_key":{"type":"TypeString","optional":true},"custom_subdomain_name":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"dynamic_throttling_enabled":{"type":"TypeBool","optional":true},"endpoint":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","required":true,"forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metrics_advisor_aad_client_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_aad_tenant_id":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_super_user_name":{"type":"TypeString","optional":true,"forceNew":true},"metrics_advisor_website_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"qna_runtime_endpoint":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"storage":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_account_customer_managed_key":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"identity_client_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cognitive_deployment":{"schema":{"cognitive_account_id":{"type":"TypeString","required":true,"forceNew":true},"model":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"format":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"rai_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"scale":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":1},"family":{"type":"TypeString","optional":true,"forceNew":true},"size":{"type":"TypeString","optional":true,"forceNew":true},"tier":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","optional":true,"default":"United States","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","required":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"minItems":1},"certificate_based_security_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","required":true},"pem_public_key":{"type":"TypeString","required":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_management_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","required":true},"etag":{"type":"TypeString","optional":true,"computed":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"not":{"type":"TypeList","optional":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"tag":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"In"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeSet","required":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeInt","required":true},"threshold_type":{"type":"TypeString","optional":true,"default":"Actual","forceNew":true}}},"maxItems":5,"minItems":1},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"time_grain":{"type":"TypeString","optional":true,"default":"Monthly","forceNew":true},"time_period":{"type":"TypeList","required":true,"elem":{"schema":{"end_date":{"type":"TypeString","optional":true,"computed":true},"start_date":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to host this Container App.","forceNew":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The Dapr Application Identifier."},"app_port":{"type":"TypeInt","optional":true,"description":"The port which the application is listening on. This is the same as the `ingress` port."},"app_protocol":{"type":"TypeString","optional":true,"default":"http","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`."}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","optional":true,"default":false,"description":"Should this ingress allow insecure connections?"},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","optional":true,"default":"Disabled","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`"},"certificate_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate."}}},"maxItems":1},"external_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Is this an external Ingress."},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","required":true,"description":"The target port on the container for the Ingress traffic."},"traffic_weight":{"type":"TypeList","required":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"description":"The label to apply to the revision as a name prefix for routing traffic."},"latest_revision":{"type":"TypeBool","optional":true,"default":false,"description":"This traffic Weight relates to the latest stable Container Revision."},"percentage":{"type":"TypeInt","required":true,"description":"The percentage of traffic to send to this revision."},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted."}}}},"transport":{"type":"TypeString","optional":true,"default":"auto","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`"}}},"maxItems":1},"latest_revision_fqdn":{"type":"TypeString","description":"The FQDN of the Latest Revision of the Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"The name for this Container App.","forceNew":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true,"description":"ID of the System or User Managed Identity used to pull images from the Container Registry"},"password_secret_name":{"type":"TypeString","optional":true,"description":"The name of the Secret Reference containing the password value for this user on the Container Registry."},"server":{"type":"TypeString","required":true,"description":"The hostname for the Container Registry."},"username":{"type":"TypeString","optional":true,"description":"The username to use for this Container Registry."}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"revision_mode":{"type":"TypeString","required":true},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","required":true,"elem":{"schema":{"azure_queue_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"secret_name":{"type":"TypeString","required":true},"trigger_parameter":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true},"queue_length":{"type":"TypeInt","required":true},"queue_name":{"type":"TypeString","required":true}}}},"container":{"type":"TypeList","required":true,"elem":{"schema":{"args":{"type":"TypeList","optional":true,"description":"A list of args to pass to the container.","elem":{"type":"TypeString"}},"command":{"type":"TypeList","optional":true,"description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`"},"env":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the environment variable for the container."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of the secret that contains the value for this environment variable."},"value":{"type":"TypeString","optional":true,"description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used"}}},"minItems":1},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","required":true,"description":"The image to use to create the container."},"liveness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"initial_delay":{"type":"TypeInt","optional":true,"default":1,"description":"The time in seconds to wait after the container has started before the probe is started."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"memory":{"type":"TypeString","required":true,"description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`"},"name":{"type":"TypeString","required":true,"description":"The name of the container."},"readiness_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"success_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`."},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"startup_probe":{"type":"TypeList","optional":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","optional":true,"default":3,"description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`."},"header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The HTTP Header Name."},"value":{"type":"TypeString","required":true,"description":"The HTTP Header value."}}}},"host":{"type":"TypeString","optional":true,"description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes."},"interval_seconds":{"type":"TypeInt","optional":true,"default":10,"description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`"},"path":{"type":"TypeString","optional":true,"description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port number on which to connect. Possible values are between `1` and `65535`."},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","optional":true,"default":1,"description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`."},"transport":{"type":"TypeString","required":true,"description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`."}}},"minItems":1},"volume_mounts":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Volume to be mounted in the container."},"path":{"type":"TypeString","required":true,"description":"The path in the container at which to mount this volume."}}}}}},"minItems":1},"custom_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_name":{"type":"TypeString","required":true},"trigger_parameter":{"type":"TypeString","required":true}}},"minItems":1},"custom_rule_type":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"http_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_name":{"type":"TypeString","required":true},"trigger_parameter":{"type":"TypeString","optional":true}}},"minItems":1},"concurrent_requests":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"max_replicas":{"type":"TypeInt","optional":true,"default":10,"description":"The maximum number of replicas for this container."},"min_replicas":{"type":"TypeInt","optional":true,"description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","optional":true,"description":"The suffix for the revision. This value must be unique for the lifetime of the Resource. If omitted the service will use a hash function to create one.","computed":true},"tcp_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_name":{"type":"TypeString","required":true},"trigger_parameter":{"type":"TypeString","optional":true}}},"minItems":1},"concurrent_requests":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"volume":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the volume."},"storage_name":{"type":"TypeString","optional":true,"description":"The name of the `AzureFile` storage. Required when `storage_type` is `AzureFile`"},"storage_type":{"type":"TypeString","optional":true,"default":"EmptyDir","description":"The type of storage volume. Possible values include `AzureFile` and `EmptyDir`. Defaults to `EmptyDir`."}}},"minItems":1}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment":{"schema":{"dapr_application_insights_connection_string":{"type":"TypeString","optional":true,"description":"Application Insights connection string used by Dapr to export Service to Service communication telemetry.","forceNew":true},"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","optional":true,"description":"The existing Subnet to use for the Container Apps Control Plane. **NOTE:** The Subnet must have a `/21` or larger address space.","forceNew":true},"internal_load_balancer_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Container Environment operate in Internal Load Balancing Mode? Defaults to `false`. **Note:** can only be set to `true` if `infrastructure_subnet_id` is specified.","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true,"description":"The ID for the Log Analytics Workspace to link this Container Apps Managed Environment to.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment.","forceNew":true},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_certificate":{"schema":{"certificate_blob_base64":{"type":"TypeString","required":true,"description":"The Certificate Private Key as a base64 encoded PFX or PEM.","forceNew":true},"certificate_password":{"type":"TypeString","required":true,"description":"The password for the Certificate.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Environment Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_dapr_component":{"schema":{"component_type":{"type":"TypeString","required":true,"description":"The Dapr Component Type. For example `state.azure.blobstorage`.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Dapr component on.","forceNew":true},"ignore_errors":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Dapr sidecar to continue initialisation if the component fails to load. Defaults to `false`"},"init_timeout":{"type":"TypeString","optional":true,"default":"5s","description":"The component initialisation timeout in ISO8601 format. e.g. `5s`, `2h`, `1m`. Defaults to `5s`."},"metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name of the Metadata configuration item."},"secret_name":{"type":"TypeString","optional":true,"description":"The name of a secret specified in the `secrets` block that contains the value for this metadata configuration item."},"value":{"type":"TypeString","optional":true,"description":"The value for this metadata configuration item."}}},"minItems":1},"name":{"type":"TypeString","required":true,"description":"The name for this Dapr Component.","forceNew":true},"scopes":{"type":"TypeList","optional":true,"description":"A list of scopes to which this component applies. e.g. a Container App's `dapr.app_id` value.","elem":{"type":"TypeString"},"minItems":1},"secret":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The Secret name."},"value":{"type":"TypeString","required":true,"description":"The value for this secret."}}}},"version":{"type":"TypeString","required":true,"description":"The version of the component."}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_app_environment_storage":{"schema":{"access_key":{"type":"TypeString","required":true,"description":"The Storage Account Access Key."},"access_mode":{"type":"TypeString","required":true,"description":"The access mode to connect this storage to the Container App. Possible values include `ReadOnly` and `ReadWrite`.","forceNew":true},"account_name":{"type":"TypeString","required":true,"description":"The Azure Storage Account in which the Share to be used is located.","forceNew":true},"container_app_environment_id":{"type":"TypeString","required":true,"description":"The ID of the Container App Environment to which this storage belongs.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The name for this Storage.","forceNew":true},"share_name":{"type":"TypeString","required":true,"description":"The name of the Azure Storage Share to use.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_connected_registry":{"schema":{"audit_log_enabled":{"type":"TypeBool","optional":true,"default":false},"client_token_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"log_level":{"type":"TypeString","optional":true,"default":"None"},"mode":{"type":"TypeString","optional":true,"default":"ReadWrite","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"digest":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tag":{"type":"TypeString","optional":true}}}},"parent_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"sync_message_ttl":{"type":"TypeString","optional":true,"default":"P1D"},"sync_schedule":{"type":"TypeString","optional":true,"default":"* * * * *"},"sync_token_id":{"type":"TypeString","required":true,"forceNew":true},"sync_window":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_group":{"schema":{"container":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","required":true,"forceNew":true},"cpu_limit":{"type":"TypeFloat","optional":true},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"gpu":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"gpu_limit":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","optional":true},"sku":{"type":"TypeString","optional":true}}},"maxItems":1},"image":{"type":"TypeString","required":true,"forceNew":true},"liveness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"memory":{"type":"TypeFloat","required":true,"forceNew":true},"memory_limit":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ports":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"readiness_probe":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exec":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"failure_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"http_get":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"http_headers":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"scheme":{"type":"TypeString","optional":true,"forceNew":true}}}},"initial_delay_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"period_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"success_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"diagnostics":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"log_analytics":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"log_type":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_key":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"dns_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"nameservers":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"options":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"search_domains":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"dns_name_label":{"type":"TypeString","optional":true,"forceNew":true},"dns_name_label_reuse_policy":{"type":"TypeString","optional":true,"default":"Unsecure"},"exposed_port":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","optional":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"TCP","forceNew":true}}}},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_registry_credential":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Container Registry access.","forceNew":true},"username":{"type":"TypeString","optional":true,"forceNew":true}}}},"init_container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"commands":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secure_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"security":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"privilege_enabled":{"type":"TypeBool","required":true,"forceNew":true}}}},"volume":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"empty_dir":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"git_repo":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"directory":{"type":"TypeString","optional":true,"forceNew":true},"revision":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"mount_path":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_only":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"secret":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"share_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"forceNew":true}}}}}}},"ip_address":{"type":"TypeString","computed":true},"ip_address_type":{"type":"TypeString","optional":true,"default":"Public","forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"key_vault_user_assigned_identity_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile_id":{"type":"TypeString","optional":true,"computed":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restart_policy":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"subnet_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"anonymous_pull_enabled":{"type":"TypeBool","optional":true},"data_endpoint_enabled":{"type":"TypeBool","optional":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"identity_client_id":{"type":"TypeString","required":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"georeplications":{"type":"TypeList","optional":true,"elem":{"schema":{"location":{"type":"TypeString","required":true},"regional_endpoint_enabled":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_bypass_option":{"type":"TypeString","optional":true,"default":"AzureServices"},"network_rule_set":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_range":{"type":"TypeString","required":true}}}},"virtual_network":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"quarantine_policy_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trust_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_agent_pool":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"default":"S1","forceNew":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task":{"schema":{"agent_pool_name":{"type":"TypeString","optional":true},"agent_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"cpu":{"type":"TypeInt","required":true}}},"maxItems":1},"base_image_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"update_trigger_endpoint":{"type":"TypeString","optional":true},"update_trigger_payload_type":{"type":"TypeString","optional":true}}},"maxItems":1},"container_registry_id":{"type":"TypeString","required":true,"forceNew":true},"docker_step":{"type":"TypeList","optional":true,"elem":{"schema":{"arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"cache_enabled":{"type":"TypeBool","optional":true,"default":true},"context_access_token":{"type":"TypeString","required":true},"context_path":{"type":"TypeString","required":true},"dockerfile_path":{"type":"TypeString","required":true},"image_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"push_enabled":{"type":"TypeBool","optional":true,"default":true},"secret_arguments":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target":{"type":"TypeString","optional":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"encoded_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_content":{"type":"TypeString","required":true},"value_content":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"file_step":{"type":"TypeList","optional":true,"elem":{"schema":{"context_access_token":{"type":"TypeString","optional":true},"context_path":{"type":"TypeString","optional":true},"secret_values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_file_path":{"type":"TypeString","required":true},"value_file_path":{"type":"TypeString","optional":true},"values":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"is_system_task":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"log_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"architecture":{"type":"TypeString","optional":true},"os":{"type":"TypeString","required":true},"variant":{"type":"TypeString","optional":true}}},"maxItems":1},"registry_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"custom":{"type":"TypeSet","optional":true,"elem":{"schema":{"identity":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"username":{"type":"TypeString","optional":true}}}},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"login_mode":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"source_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"expire_in_seconds":{"type":"TypeInt","optional":true},"refresh_token":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true},"token":{"type":"TypeString","required":true},"token_type":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"repository_url":{"type":"TypeString","required":true},"source_type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":3600},"timer_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_task_schedule_run_now":{"schema":{"container_registry_task_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_map_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_token_password":{"schema":{"container_registry_token_id":{"type":"TypeString","required":true,"forceNew":true},"password1":{"type":"TypeList","required":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1},"password2":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","computed":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_container_registry_webhook":{"schema":{"actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"custom_headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"registry_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":""},"service_uri":{"type":"TypeString","required":true},"status":{"type":"TypeString","optional":true,"default":"enabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_account":{"schema":{"access_key_metadata_writes_enabled":{"type":"TypeBool","optional":true,"default":true},"analytical_storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"schema_type":{"type":"TypeString","required":true}}},"maxItems":1},"analytical_storage_enabled":{"type":"TypeBool","optional":true,"default":false},"backup":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"interval_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"retention_in_hours":{"type":"TypeInt","optional":true,"computed":true},"storage_redundancy":{"type":"TypeString","optional":true,"computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"capabilities":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}},"capacity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"total_throughput_limit":{"type":"TypeInt","required":true}}},"maxItems":1},"connection_strings":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"consistency_policy":{"type":"TypeList","required":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","required":true},"max_interval_in_seconds":{"type":"TypeInt","optional":true,"computed":true},"max_staleness_prefix":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"create_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"default_identity_type":{"type":"TypeString","optional":true,"default":"FirstPartyIdentity"},"enable_automatic_failover":{"type":"TypeBool","optional":true,"default":false},"enable_free_tier":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"enable_multiple_write_locations":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeSet","required":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","required":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_range_filter":{"type":"TypeString","optional":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true,"forceNew":true},"kind":{"type":"TypeString","optional":true,"default":"GlobalDocumentDB","forceNew":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"mongo_server_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acl_bypass_for_azure_services":{"type":"TypeBool","optional":true,"default":false},"network_acl_bypass_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"offer_type":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"primary_mongodb_connection_string":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"primary_readonly_mongodb_connection_string":{"type":"TypeString","computed":true},"primary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"primary_sql_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"elem":{"schema":{"database":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"collection_names":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"restore_timestamp_in_utc":{"type":"TypeString","required":true,"forceNew":true},"source_cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"secondary_key":{"type":"TypeString","computed":true},"secondary_mongodb_connection_string":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"secondary_readonly_mongodb_connection_string":{"type":"TypeString","computed":true},"secondary_readonly_sql_connection_string":{"type":"TypeString","computed":true},"secondary_sql_connection_string":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_cassandra_cluster":{"schema":{"authentication_method":{"type":"TypeString","optional":true,"default":"Cassandra"},"client_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_admin_password":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"external_gossip_certificate_pems":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"external_seed_node_ip_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"hours_between_backups":{"type":"TypeInt","optional":true,"default":24},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repair_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"3.11","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_datacenter":{"schema":{"availability_zones_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_storage_customer_key_uri":{"type":"TypeString","optional":true},"base64_encoded_yaml_fragment":{"type":"TypeString","optional":true},"cassandra_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"delegated_management_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"disk_count":{"type":"TypeInt","optional":true},"disk_sku":{"type":"TypeString","optional":true,"default":"P30"},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_customer_key_uri":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"default":3},"sku_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_cosmosdb_cassandra_keyspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_cassandra_table":{"schema":{"analytical_storage_ttl":{"type":"TypeInt","optional":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"cassandra_keyspace_id":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schema":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_key":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"order_by":{"type":"TypeString","required":true}}}},"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"partition_key":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_gremlin_graph":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"index_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"automatic":{"type":"TypeBool","optional":true,"default":true},"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"included_paths":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"indexing_mode":{"type":"TypeString","required":true},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_collection":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl_seconds":{"type":"TypeInt","optional":true},"index":{"type":"TypeSet","optional":true,"elem":{"schema":{"keys":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","optional":true,"default":false}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shard_key":{"type":"TypeString","optional":true,"forceNew":true},"system_indexes":{"type":"TypeList","computed":true,"elem":{"schema":{"keys":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"unique":{"type":"TypeBool","computed":true}}}},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_role_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"privilege":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource":{"type":"TypeList","required":true,"elem":{"schema":{"collection_name":{"type":"TypeString","optional":true},"db_name":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"role_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_mongo_user_definition":{"schema":{"cosmos_mongo_database_id":{"type":"TypeString","required":true,"forceNew":true},"inherited_role_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_notebook_workspace":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_endpoint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_postgresql_cluster":{"schema":{"administrator_login_password":{"type":"TypeString","required":true},"citus_version":{"type":"TypeString","optional":true,"computed":true},"coordinator_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":true},"coordinator_server_edition":{"type":"TypeString","optional":true,"default":"GeneralPurpose"},"coordinator_storage_quota_in_mb":{"type":"TypeInt","required":true},"coordinator_vcore_count":{"type":"TypeInt","required":true},"earliest_restore_time":{"type":"TypeString","computed":true},"ha_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","required":true},"node_public_ip_access_enabled":{"type":"TypeBool","optional":true,"default":false},"node_server_edition":{"type":"TypeString","optional":true,"default":"MemoryOptimized"},"node_storage_quota_in_mb":{"type":"TypeInt","optional":true,"computed":true},"node_vcores":{"type":"TypeInt","optional":true,"computed":true},"point_in_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"preferred_primary_zone":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shards_on_coordinator_enabled":{"type":"TypeBool","optional":true,"computed":true},"source_location":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"sql_version":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_cosmosdb_postgresql_coordinator_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_firewall_rule":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_node_configuration":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_postgresql_role":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_cosmosdb_sql_container":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"analytical_storage_ttl":{"type":"TypeInt","optional":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"conflict_resolution_policy":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"conflict_resolution_path":{"type":"TypeString","optional":true},"conflict_resolution_procedure":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_ttl":{"type":"TypeInt","optional":true,"computed":true},"indexing_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"composite_index":{"type":"TypeList","optional":true,"elem":{"schema":{"index":{"type":"TypeList","required":true,"elem":{"schema":{"order":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"minItems":1}}}},"excluded_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"included_path":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true}}}},"indexing_mode":{"type":"TypeString","optional":true,"default":"consistent"},"spatial_index":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","required":true},"types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_path":{"type":"TypeString","required":true,"forceNew":true},"partition_key_version":{"type":"TypeInt","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true},"unique_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"paths":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_dedicated_gateway":{"schema":{"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"instance_count":{"type":"TypeInt","required":true},"instance_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_function":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_assignment":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"assignable_scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeSet","required":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"CustomRole","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_stored_procedure":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"body":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_sql_trigger":{"schema":{"body":{"type":"TypeString","required":true},"container_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operation":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cosmosdb_table":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"autoscale_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_anomaly_alert":{"schema":{"display_name":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"email_subject":{"type":"TypeString","required":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_cost_management_scheduled_action":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name":{"type":"TypeString","required":true},"email_address_sender":{"type":"TypeString","required":true},"email_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":20,"minItems":1},"email_subject":{"type":"TypeString","required":true},"end_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","optional":true},"message":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_date":{"type":"TypeString","required":true},"view_id":{"type":"TypeString","required":true,"forceNew":true},"weeks_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_custom_ip_prefix":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"commissioning_enabled":{"type":"TypeBool","optional":true,"default":false},"internet_advertising_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_custom_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roa_validity_end_date":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wan_validation_signed_message":{"type":"TypeString","optional":true,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":540,"read":5,"delete":1020,"update":1020}},"azurerm_custom_provider":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_type":{"type":"TypeSet","optional":true,"elem":{"schema":{"endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"routing_type":{"type":"TypeString","optional":true,"default":"Proxy"}}}},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validation":{"type":"TypeSet","optional":true,"elem":{"schema":{"specification":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dashboard_grafana":{"schema":{"api_key_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse"},"azure_monitor_workspace_integrations":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"deterministic_outbound_ip_enabled":{"type":"TypeBool","optional":true,"default":false},"endpoint":{"type":"TypeString","computed":true},"grafana_version":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundancy_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory":{"schema":{"customer_managed_key_id":{"type":"TypeString","optional":true},"customer_managed_key_identity_id":{"type":"TypeString","optional":true},"github_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","required":true},"publishing_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"global_parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"project_name":{"type":"TypeString","required":true},"publishing_enabled":{"type":"TypeBool","optional":true,"default":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_custom_dataset":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_json":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_azure_blob":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"path":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_azure_sql_table":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_binary":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sftp_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_cosmosdb_sqlapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"collection_name":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_delimited_text":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_fs_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_file_system_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"file_system":{"type":"TypeString","optional":true},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"column_delimiter":{"type":"TypeString","optional":true,"default":","},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"escape_character":{"type":"TypeString","optional":true,"default":"\\"},"first_row_as_header":{"type":"TypeBool","optional":true,"default":false},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"null_value":{"type":"TypeString","optional":true,"default":""},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"quote_character":{"type":"TypeString","optional":true,"default":"\""},"row_delimiter":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_http":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"relative_url":{"type":"TypeString","optional":true},"request_body":{"type":"TypeString","optional":true},"request_method":{"type":"TypeString","optional":true},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_json":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_parquet":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_blob_fs_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_file_system_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"file_system":{"type":"TypeString","optional":true},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"azure_blob_storage_location":{"type":"TypeList","optional":true,"elem":{"schema":{"container":{"type":"TypeString","required":true},"dynamic_container_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","optional":true},"path":{"type":"TypeString","optional":true}}},"maxItems":1},"compression_codec":{"type":"TypeString","optional":true},"compression_level":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"http_server_location":{"type":"TypeList","optional":true,"elem":{"schema":{"dynamic_filename_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_path_enabled":{"type":"TypeBool","optional":true,"default":false},"filename":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"relative_url":{"type":"TypeString","required":true}}},"maxItems":1},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precision":{"type":"TypeInt","optional":true},"scale":{"type":"TypeInt","optional":true},"type":{"type":"TypeString","optional":true}}}},"schema_name":{"type":"TypeString","optional":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_dataset_sql_server_table":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"schema_column":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true}}}},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_flowlet_data_flow":{"schema":{"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","optional":true},"script_lines":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sink":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"source":{"type":"TypeList","required":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true},"rejected_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"schema_linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}}},"transformation":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"flowlet":{"type":"TypeList","optional":true,"elem":{"schema":{"dataset_parameters":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"linked_service":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure":{"schema":{"cleanup_enabled":{"type":"TypeBool","optional":true,"computed":true},"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0},"virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_azure_ssis":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"dual_standby_pair_name":{"type":"TypeString","optional":true},"elastic_pool_name":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"express_custom_setup":{"type":"TypeList","optional":true,"elem":{"schema":{"command_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"password":{"type":"TypeString","optional":true},"target_name":{"type":"TypeString","required":true},"user_name":{"type":"TypeString","required":true}}}},"component":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_license":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secret_name":{"type":"TypeString","required":true},"secret_version":{"type":"TypeString","optional":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"environment":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"powershell_version":{"type":"TypeString","optional":true}}},"maxItems":1},"express_vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"package_store":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"path":{"type":"TypeString","optional":true},"self_hosted_integration_runtime_name":{"type":"TypeString","required":true},"staging_storage_linked_service_name":{"type":"TypeString","required":true}}},"maxItems":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"public_ips":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2},"subnet_id":{"type":"TypeString","optional":true},"subnet_name":{"type":"TypeString","optional":true},"vnet_id":{"type":"TypeString","optional":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_managed":{"schema":{"catalog_info":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","optional":true},"administrator_password":{"type":"TypeString","optional":true},"pricing_tier":{"type":"TypeString","optional":true,"default":"Basic"},"server_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"custom_setup_script":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_container_uri":{"type":"TypeString","required":true},"sas_token":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"edition":{"type":"TypeString","optional":true,"default":"Standard"},"license_type":{"type":"TypeString","optional":true,"default":"LicenseIncluded"},"location":{"type":"TypeString","required":true,"forceNew":true},"max_parallel_executions_per_node":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"node_size":{"type":"TypeString","required":true},"number_of_nodes":{"type":"TypeInt","optional":true,"default":1},"vnet_integration":{"type":"TypeList","optional":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","required":true},"vnet_id":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_integration_runtime_self_hosted":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_authorization_key":{"type":"TypeString","computed":true},"rbac_authorization":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true}}}},"secondary_authorization_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_custom_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_blob_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"connection_string_insecure":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_sas_token":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"sas_uri":{"type":"TypeString","optional":true},"service_endpoint":{"type":"TypeString","optional":true},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"service_principal_linked_key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_kind":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_databricks":{"schema":{"access_token":{"type":"TypeString","optional":true},"adb_domain":{"type":"TypeString","required":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"existing_cluster_id":{"type":"TypeString","optional":true},"instance_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"instance_pool_id":{"type":"TypeString","required":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":1}}},"maxItems":1},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"msi_work_space_resource_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"new_cluster_config":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_version":{"type":"TypeString","required":true},"custom_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"driver_node_type":{"type":"TypeString","optional":true},"init_scripts":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"log_destination":{"type":"TypeString","optional":true},"max_number_of_workers":{"type":"TypeInt","optional":true},"min_number_of_workers":{"type":"TypeInt","optional":true,"default":"1"},"node_type":{"type":"TypeString","required":true},"spark_config":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"spark_environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_file_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"file_share":{"type":"TypeString","optional":true},"host":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"user_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_function":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key":{"type":"TypeString","optional":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_search":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"encrypted_credential":{"type":"TypeString","computed":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"search_service_key":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_sql_database":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_azure_table_storage":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb":{"schema":{"account_endpoint":{"type":"TypeString","optional":true},"account_key":{"type":"TypeString","optional":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_cosmosdb_mongoapi":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"database":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"server_version_is_32_or_higher":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_data_lake_storage_gen2":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"storage_account_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_key_vault":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_kusto":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"kusto_database_name":{"type":"TypeString","required":true},"kusto_endpoint":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_principal_id":{"type":"TypeString","optional":true},"service_principal_key":{"type":"TypeString","optional":true},"tenant":{"type":"TypeString","optional":true},"use_managed_identity":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_mysql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odata":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"url":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_odbc":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"basic_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_postgresql":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sftp":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"host":{"type":"TypeString","required":true},"host_key_fingerprint":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","required":true},"port":{"type":"TypeInt","required":true},"skip_host_key_validation":{"type":"TypeBool","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_snowflake":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_sql_server":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_connection_string":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_synapse":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"connection_string":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"key_vault_password":{"type":"TypeList","optional":true,"elem":{"schema":{"linked_service_name":{"type":"TypeString","required":true},"secret_name":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_linked_service_web":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"authentication_type":{"type":"TypeString","required":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"integration_runtime_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"password":{"type":"TypeString","optional":true},"url":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_managed_private_endpoint":{"schema":{"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"fqdns":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_factory_pipeline":{"schema":{"activities_json":{"type":"TypeString","optional":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"concurrency":{"type":"TypeInt","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"folder":{"type":"TypeString","optional":true},"moniter_metrics_after_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_blob_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"blob_path_begins_with":{"type":"TypeString","optional":true},"blob_path_ends_with":{"type":"TypeString","optional":true},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"ignore_empty_blobs":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_custom_event":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"eventgrid_topic_id":{"type":"TypeString","required":true,"forceNew":true},"events":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_schedule":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","optional":true,"default":"Minute"},"interval":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"pipeline_name":{"type":"TypeString","optional":true,"computed":true},"pipeline_parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"days_of_week":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":7},"hours":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeList","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","optional":true},"weekday":{"type":"TypeString","required":true}}},"minItems":1}}},"maxItems":1,"minItems":1},"start_time":{"type":"TypeString","optional":true,"computed":true},"time_zone":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_factory_trigger_tumbling_window":{"schema":{"activated":{"type":"TypeBool","optional":true,"default":true},"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_factory_id":{"type":"TypeString","required":true,"forceNew":true},"delay":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true,"forceNew":true},"interval":{"type":"TypeInt","required":true,"forceNew":true},"max_concurrency":{"type":"TypeInt","optional":true,"default":50},"name":{"type":"TypeString","required":true,"forceNew":true},"pipeline":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"retry":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeInt","optional":true,"default":30}}},"maxItems":1},"start_time":{"type":"TypeString","required":true,"forceNew":true},"trigger_dependency":{"type":"TypeSet","optional":true,"elem":{"schema":{"offset":{"type":"TypeString","optional":true},"size":{"type":"TypeString","optional":true},"trigger_name":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_blob_storage":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_disk":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"disk_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_instance_postgresql":{"schema":{"backup_policy_id":{"type":"TypeString","required":true},"database_credential_key_vault_secret_id":{"type":"TypeString","optional":true},"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_blob_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"retention_duration":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_disk":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_policy_postgresql":{"schema":{"backup_repeating_time_intervals":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"default_retention_duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_rule":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"criteria":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"absolute_criteria":{"type":"TypeString","optional":true,"forceNew":true},"days_of_week":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"months_of_year":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"scheduled_backup_times":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1},"weeks_of_month":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"duration":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true,"forceNew":true}}}},"vault_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","required":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redundancy":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_protection_resource_guard":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vault_critical_operation_exclusion_list":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"snapshot_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}},"maxItems":1},"terms":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","required":true,"forceNew":true},"data_share_id":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","optional":true,"forceNew":true},"file_system_name":{"type":"TypeString","required":true,"forceNew":true},"folder_path":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"source_platform":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databox_edge_order":{"schema":{"contact":{"type":"TypeList","required":true,"elem":{"schema":{"company_name":{"type":"TypeString","required":true,"forceNew":true},"emails":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"device_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"return_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"serial_number":{"type":"TypeString","computed":true},"shipment_address":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3},"city":{"type":"TypeString","required":true,"forceNew":true},"country":{"type":"TypeString","required":true,"forceNew":true},"postal_code":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"shipment_history":{"type":"TypeSet","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}},"shipment_tracking":{"type":"TypeSet","computed":true,"elem":{"schema":{"carrier_name":{"type":"TypeString","computed":true},"serial_number":{"type":"TypeString","computed":true},"tracking_id":{"type":"TypeString","computed":true},"tracking_url":{"type":"TypeString","computed":true}}}},"status":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_details":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"comments":{"type":"TypeString","computed":true},"info":{"type":"TypeString","computed":true},"last_update":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_access_connector":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_virtual_network_peering":{"schema":{"address_space_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_address_space_prefixes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_id":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace":{"schema":{"custom_parameters":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"machine_learning_workspace_id":{"type":"TypeString","optional":true,"forceNew":true},"nat_gateway_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"no_public_ip":{"type":"TypeBool","optional":true,"computed":true},"private_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"private_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"public_ip_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_subnet_name":{"type":"TypeString","optional":true,"forceNew":true},"public_subnet_network_security_group_association_id":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_sku_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vnet_address_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_encryption_set_id":{"type":"TypeString","computed":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"load_balancer_backend_address_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"managed_disk_cmk_rotation_to_latest_version_enabled":{"type":"TypeBool","optional":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"managed_resource_group_id":{"type":"TypeString","computed":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_services_cmk_key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_rules_required":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_databricks_workspace_root_dbfs_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor":{"schema":{"datadog_organization":{"type":"TypeList","required":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true,"forceNew":true},"application_key":{"type":"TypeString","required":true,"forceNew":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","computed":true},"linking_auth_code":{"type":"TypeString","optional":true,"forceNew":true},"linking_client_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"redirect_uri":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"marketplace_subscription_status":{"type":"TypeString","computed":true},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_sso_configuration":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"enterprise_application_id":{"type":"TypeString","required":true},"login_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"default"},"single_sign_on_enabled":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_datadog_monitor_tag_rule":{"schema":{"datadog_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"log":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_log_enabled":{"type":"TypeBool","optional":true},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_log_enabled":{"type":"TypeBool","optional":true},"subscription_log_enabled":{"type":"TypeBool","optional":true}}}},"metric":{"type":"TypeList","optional":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}},"name":{"type":"TypeString","optional":true,"default":"default"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_hardware_security_module":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"management_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"network_interface_private_ip_addresses":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"stamp_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host":{"schema":{"auto_replace_on_failure":{"type":"TypeBool","optional":true,"default":true},"dedicated_host_group_id":{"type":"TypeString","required":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain":{"type":"TypeInt","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_global_vm_shutdown_schedule":{"schema":{"daily_recurrence_time":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"time_in_minutes":{"type":"TypeInt","optional":true,"default":30},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","optional":true,"default":"Premium"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_linux_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeString","optional":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_policy":{"schema":{"description":{"type":"TypeString","optional":true},"evaluator_type":{"type":"TypeString","required":true,"forceNew":true},"fact_data":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_set_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threshold":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_schedule":{"schema":{"daily_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true}}},"maxItems":1},"hourly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true}}},"maxItems":1},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification_settings":{"type":"TypeList","required":true,"elem":{"schema":{"status":{"type":"TypeString","optional":true,"default":"Disabled"},"time_in_minutes":{"type":"TypeInt","optional":true},"webhook_url":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Disabled"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"task_type":{"type":"TypeString","required":true},"time_zone_id":{"type":"TypeString","required":true},"weekly_recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"time":{"type":"TypeString","required":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_virtual_network":{"schema":{"description":{"type":"TypeString","optional":true},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"use_in_virtual_machine_creation":{"type":"TypeString","optional":true,"default":"Allow"},"use_public_ip_address":{"type":"TypeString","optional":true,"default":"Allow"}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dev_test_windows_virtual_machine":{"schema":{"allow_claim":{"type":"TypeBool","optional":true,"default":true},"disallow_public_ip_address":{"type":"TypeBool","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"gallery_image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"inbound_nat_rule":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true,"forceNew":true},"frontend_port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","required":true}}}},"lab_name":{"type":"TypeString","required":true,"forceNew":true},"lab_subnet_name":{"type":"TypeString","required":true,"forceNew":true},"lab_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeString","required":true,"forceNew":true},"storage_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true},"username":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventgrid":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventgrid_topic_endpoint":{"type":"TypeString","required":true},"eventgrid_topic_primary_access_key":{"type":"TypeString","required":true},"eventgrid_topic_secondary_access_key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_eventhub":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_primary_connection_string":{"type":"TypeString","required":true},"eventhub_secondary_connection_string":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_endpoint_servicebus":{"schema":{"dead_letter_storage_secret":{"type":"TypeString","optional":true},"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_primary_connection_string":{"type":"TypeString","required":true},"servicebus_secondary_connection_string":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_digital_twins_time_series_database_connection":{"schema":{"digital_twins_id":{"type":"TypeString","required":true,"forceNew":true},"eventhub_consumer_group_name":{"type":"TypeString","optional":true,"default":"$Default","forceNew":true},"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_cluster_uri":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_name":{"type":"TypeString","required":true,"forceNew":true},"kusto_table_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_disk_access":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_type":{"type":"TypeString","optional":true,"default":"EncryptionAtRestWithCustomerKey","forceNew":true},"federated_client_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_disk_pool":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_disk_pool_iscsi_target":{"schema":{"acl_mode":{"type":"TypeString","required":true,"forceNew":true},"disks_pool_id":{"type":"TypeString","required":true,"forceNew":true},"endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","computed":true},"target_iqn":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_iscsi_target_lun":{"schema":{"disk_pool_managed_disk_attachment_id":{"type":"TypeString","required":true,"forceNew":true},"iscsi_target_id":{"type":"TypeString","required":true,"forceNew":true},"lun":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_disk_pool_managed_disk_attachment":{"schema":{"disk_pool_id":{"type":"TypeString","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"flags":{"type":"TypeInt","required":true},"tag":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","optional":true},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","optional":true,"computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":300},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","required":true,"forceNew":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_azuread_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"monitoring_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_email_communication_service":{"schema":{"data_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain":{"schema":{"auto_create_topic_with_first_subscription":{"type":"TypeBool","optional":true,"default":true},"auto_delete_topic_with_last_subscription":{"type":"TypeBool","optional":true,"default":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_eventgrid_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_arm_resource_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_system_topic_event_subscription":{"schema":{"advanced_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"bool_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeBool","required":true}}}},"is_not_null":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"is_null_or_undefined":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true}}}},"number_greater_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_greater_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"number_less_than":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_less_than_or_equals":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"value":{"type":"TypeFloat","required":true}}}},"number_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeFloat"},"maxItems":25}}}},"number_not_in_range":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeList","elem":{"type":"TypeFloat"},"maxItems":2,"minItems":2},"maxItems":25}}}},"string_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_begins_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_contains":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_ends_with":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}},"string_not_in":{"type":"TypeList","optional":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25}}}}}},"maxItems":1},"advanced_filtering_on_arrays_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_function_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"function_id":{"type":"TypeString","required":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true}}},"maxItems":1},"dead_letter_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true},"user_assigned_identity":{"type":"TypeString","optional":true}}},"maxItems":1},"delivery_property":{"type":"TypeList","optional":true,"elem":{"schema":{"header_name":{"type":"TypeString","required":true},"secret":{"type":"TypeBool","optional":true},"source_field":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}}},"event_delivery_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"eventhub_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"expiration_time_utc":{"type":"TypeString","optional":true},"hybrid_connection_endpoint_id":{"type":"TypeString","optional":true,"computed":true},"included_event_types":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retry_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"event_time_to_live":{"type":"TypeInt","required":true},"max_delivery_attempts":{"type":"TypeInt","required":true}}},"maxItems":1},"service_bus_queue_endpoint_id":{"type":"TypeString","optional":true},"service_bus_topic_endpoint_id":{"type":"TypeString","optional":true},"storage_blob_dead_letter_destination":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_id":{"type":"TypeString","required":true},"storage_blob_container_name":{"type":"TypeString","required":true}}},"maxItems":1},"storage_queue_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"queue_message_time_to_live_in_seconds":{"type":"TypeInt","optional":true},"queue_name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"subject_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"case_sensitive":{"type":"TypeBool","optional":true},"subject_begins_with":{"type":"TypeString","optional":true},"subject_ends_with":{"type":"TypeString","optional":true}}},"maxItems":1},"system_topic":{"type":"TypeString","required":true,"forceNew":true},"webhook_endpoint":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_app_id_or_uri":{"type":"TypeString","optional":true},"active_directory_tenant_id":{"type":"TypeString","optional":true},"base_url":{"type":"TypeString","computed":true},"max_events_per_batch":{"type":"TypeInt","optional":true},"preferred_batch_size_in_kilobytes":{"type":"TypeInt","optional":true},"url":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"inbound_ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"input_mapping_default_values":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_mapping_fields":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_version":{"type":"TypeString","optional":true,"forceNew":true},"event_time":{"type":"TypeString","optional":true,"forceNew":true},"event_type":{"type":"TypeString","optional":true,"forceNew":true},"id":{"type":"TypeString","optional":true,"forceNew":true},"subject":{"type":"TypeString","optional":true,"forceNew":true},"topic":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"input_schema":{"type":"TypeString","optional":true,"default":"EventGridSchema","forceNew":true},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub":{"schema":{"capture_description":{"type":"TypeList","optional":true,"elem":{"schema":{"destination":{"type":"TypeList","required":true,"elem":{"schema":{"archive_name_format":{"type":"TypeString","required":true},"blob_container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"encoding":{"type":"TypeString","required":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":300},"size_limit_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"skip_empty_archives":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"message_retention":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","required":true,"forceNew":true},"partition_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":300,"update":30}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity":{"type":"TypeInt","optional":true,"default":1},"dedicated_cluster_id":{"type":"TypeString","optional":true,"forceNew":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_throughput_units":{"type":"TypeInt","optional":true,"computed":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rulesets":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","required":true},"ip_rule":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true}}},"maxItems":128},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_service_access_enabled":{"type":"TypeBool","optional":true},"virtual_network_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"elem":{"schema":{"ignore_missing_virtual_network_service_endpoint":{"type":"TypeBool","optional":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":128}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_customer_managed_key":{"schema":{"eventhub_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"key_vault_key_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_disaster_recovery_config":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_eventhub_namespace_schema_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"schema_compatibility":{"type":"TypeString","required":true,"forceNew":true},"schema_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_express_route_circuit":{"schema":{"allow_classic_operations":{"type":"TypeBool","optional":true,"default":false},"authorization_key":{"type":"TypeString","optional":true},"bandwidth_in_gbps":{"type":"TypeFloat","optional":true},"bandwidth_in_mbps":{"type":"TypeInt","optional":true},"express_route_port_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","optional":true,"forceNew":true},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"family":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_connection":{"schema":{"address_prefix_ipv4":{"type":"TypeString","required":true,"forceNew":true},"address_prefix_ipv6":{"type":"TypeString","optional":true},"authorization_key":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_peering_id":{"type":"TypeString","required":true,"forceNew":true},"peering_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_circuit_peering":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"express_route_circuit_name":{"type":"TypeString","required":true,"forceNew":true},"gateway_manager_etag":{"type":"TypeString","computed":true},"ipv4_enabled":{"type":"TypeBool","optional":true,"default":true},"ipv6":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"microsoft_peering":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"primary_peer_address_prefix":{"type":"TypeString","required":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_peer_address_prefix":{"type":"TypeString","required":true}}},"maxItems":1},"microsoft_peering_config":{"type":"TypeList","optional":true,"elem":{"schema":{"advertised_communities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"advertised_public_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"customer_asn":{"type":"TypeInt","optional":true,"default":0},"routing_registry_name":{"type":"TypeString","optional":true,"default":"NONE"}}},"maxItems":1},"peer_asn":{"type":"TypeInt","optional":true,"computed":true},"peering_type":{"type":"TypeString","required":true},"primary_azure_port":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_filter_id":{"type":"TypeString","optional":true},"secondary_azure_port":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","optional":true},"shared_key":{"type":"TypeString","optional":true},"vlan_id":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"enable_internet_security":{"type":"TypeBool","optional":true},"express_route_circuit_peering_id":{"type":"TypeString","required":true,"forceNew":true},"express_route_gateway_bypass_enabled":{"type":"TypeBool","optional":true,"default":false},"express_route_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"routing_weight":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_gateway":{"schema":{"allow_non_virtual_wan_traffic":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_express_route_port":{"schema":{"bandwidth_in_gbps":{"type":"TypeInt","required":true,"forceNew":true},"billing_type":{"type":"TypeString","optional":true,"computed":true},"encapsulation":{"type":"TypeString","required":true,"forceNew":true},"ethertype":{"type":"TypeString","computed":true},"guid":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"link1":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"link2":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_enabled":{"type":"TypeBool","optional":true,"default":false},"connector_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"interface_name":{"type":"TypeString","computed":true},"macsec_cak_keyvault_secret_id":{"type":"TypeString","optional":true},"macsec_cipher":{"type":"TypeString","optional":true,"default":"GcmAes128"},"macsec_ckn_keyvault_secret_id":{"type":"TypeString","optional":true},"patch_panel_id":{"type":"TypeString","computed":true},"rack_id":{"type":"TypeString","computed":true},"router_name":{"type":"TypeString","computed":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mtu":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peering_location":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_express_route_port_authorization":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"authorization_use_status":{"type":"TypeString","computed":true},"express_route_port_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_federated_identity_credential":{"schema":{"audience":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1},"issuer":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subject":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"firewall_policy_id":{"type":"TypeString","optional":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_ip_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"sku_tier":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","optional":true,"computed":true},"virtual_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","optional":true,"default":1},"virtual_hub_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_firewall_application_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"target_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_nat_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","required":true},"translated_port":{"type":"TypeString","required":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_network_rule_collection":{"schema":{"action":{"type":"TypeString","required":true},"azure_firewall_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy":{"schema":{"auto_learn_private_ranges_enabled":{"type":"TypeBool","optional":true},"base_policy_id":{"type":"TypeString","optional":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"proxy_enabled":{"type":"TypeBool","optional":true,"default":false},"servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"explicit_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"enable_pac_file":{"type":"TypeBool","optional":true},"enabled":{"type":"TypeBool","optional":true},"http_port":{"type":"TypeInt","optional":true},"https_port":{"type":"TypeInt","optional":true},"pac_file":{"type":"TypeString","optional":true},"pac_file_port":{"type":"TypeInt","optional":true}}},"maxItems":1},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"insights":{"type":"TypeList","optional":true,"elem":{"schema":{"default_log_analytics_workspace_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"log_analytics_workspace":{"type":"TypeList","optional":true,"elem":{"schema":{"firewall_location":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}}},"retention_in_days":{"type":"TypeInt","optional":true}}},"maxItems":1},"intrusion_detection":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true},"private_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"signature_overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"state":{"type":"TypeString","optional":true}}}},"traffic_bypass":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true},"source_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"sql_redirect_allowed":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","optional":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"threat_intelligence_mode":{"type":"TypeString","optional":true,"default":"Alert"},"tls_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_secret_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_firewall_policy_rule_collection_group":{"schema":{"application_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdn_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"terminate_tls":{"type":"TypeBool","optional":true},"web_categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"firewall_policy_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_address":{"type":"TypeString","optional":true},"destination_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"translated_address":{"type":"TypeString","optional":true},"translated_fqdn":{"type":"TypeString","optional":true},"translated_port":{"type":"TypeInt","required":true}}},"minItems":1}}},"minItems":1},"network_rule_collection":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"destination_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_ports":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source_ip_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"minItems":1},"priority":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_fluid_relay_server":{"schema":{"frs_tenant_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"orderer_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_frontdoor":{"schema":{"backend_pool":{"type":"TypeList","required":true,"elem":{"schema":{"backend":{"type":"TypeList","required":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"host_header":{"type":"TypeString","required":true},"http_port":{"type":"TypeInt","required":true},"https_port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"weight":{"type":"TypeInt","optional":true,"default":50}}},"maxItems":500},"health_probe_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"load_balancing_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"backend_pool_health_probe":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"id":{"type":"TypeString","computed":true},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":120},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true,"default":"/"},"probe_method":{"type":"TypeString","optional":true,"default":"GET"},"protocol":{"type":"TypeString","optional":true,"default":"Http"}}},"maxItems":5000},"backend_pool_health_probes":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing":{"type":"TypeList","required":true,"elem":{"schema":{"additional_latency_milliseconds":{"type":"TypeInt","optional":true,"default":0},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"sample_size":{"type":"TypeInt","optional":true,"default":4},"successful_samples_required":{"type":"TypeInt","optional":true,"default":2}}},"maxItems":5000},"backend_pool_load_balancing_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"backend_pool_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pools_send_receive_timeout_seconds":{"type":"TypeInt","optional":true,"default":60},"enforce_backend_pools_certificate_name_check":{"type":"TypeBool","required":true}}}},"backend_pools":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"cname":{"type":"TypeString","computed":true},"explicit_resource_order":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_pool_health_probe_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"backend_pool_load_balancing_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"routing_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"friendly_name":{"type":"TypeString","optional":true},"frontend_endpoint":{"type":"TypeList","required":true,"elem":{"schema":{"host_name":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"session_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"session_affinity_ttl_seconds":{"type":"TypeInt","optional":true,"default":0},"web_application_firewall_policy_link_id":{"type":"TypeString","optional":true}}},"maxItems":500},"frontend_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"header_frontdoor_id":{"type":"TypeString","computed":true},"load_balancer_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_rule":{"type":"TypeList","required":true,"elem":{"schema":{"accepted_protocols":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":2},"enabled":{"type":"TypeBool","optional":true,"default":true},"forwarding_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_pool_name":{"type":"TypeString","required":true},"cache_duration":{"type":"TypeString","optional":true},"cache_enabled":{"type":"TypeBool","optional":true,"default":false},"cache_query_parameter_strip_directive":{"type":"TypeString","optional":true,"default":"StripAll"},"cache_query_parameters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"cache_use_dynamic_compression":{"type":"TypeBool","optional":true,"default":false},"custom_forwarding_path":{"type":"TypeString","optional":true},"forwarding_protocol":{"type":"TypeString","optional":true,"default":"HttpsOnly"}}},"maxItems":1},"frontend_endpoints":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":500},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patterns_to_match":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":25},"redirect_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_fragment":{"type":"TypeString","optional":true},"custom_host":{"type":"TypeString","optional":true},"custom_path":{"type":"TypeString","optional":true},"custom_query_string":{"type":"TypeString","optional":true},"redirect_protocol":{"type":"TypeString","required":true},"redirect_type":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":500},"routing_rules":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_custom_https_configuration":{"schema":{"custom_https_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_key_vault_certificate_secret_name":{"type":"TypeString","optional":true},"azure_key_vault_certificate_secret_version":{"type":"TypeString","optional":true},"azure_key_vault_certificate_vault_id":{"type":"TypeString","optional":true},"certificate_source":{"type":"TypeString","optional":true,"default":"FrontDoor"},"minimum_tls_version":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true},"provisioning_substate":{"type":"TypeString","computed":true}}},"maxItems":1},"custom_https_provisioning_enabled":{"type":"TypeBool","required":true},"frontend_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_frontdoor_firewall_policy":{"schema":{"custom_block_response_body":{"type":"TypeString","optional":true},"custom_block_response_status_code":{"type":"TypeInt","optional":true},"custom_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"match_values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":600},"match_variable":{"type":"TypeString","required":true},"negation_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transforms":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":5}}},"maxItems":10},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","optional":true,"default":1},"rate_limit_duration_in_minutes":{"type":"TypeInt","optional":true,"default":1},"rate_limit_threshold":{"type":"TypeInt","optional":true,"default":10},"type":{"type":"TypeString","required":true}}},"maxItems":100},"enabled":{"type":"TypeBool","optional":true,"default":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"managed_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"override":{"type":"TypeList","optional":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"match_variable":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true}}},"maxItems":100},"rule_id":{"type":"TypeString","required":true}}},"maxItems":1000},"rule_group_name":{"type":"TypeString","required":true}}},"maxItems":100},"type":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":100},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"name":{"type":"TypeString","required":true,"forceNew":true},"redirect_url":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_frontdoor_rules_engine":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"frontdoor_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"request_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100},"response_header":{"type":"TypeList","optional":true,"elem":{"schema":{"header_action_type":{"type":"TypeString","optional":true},"header_name":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}},"maxItems":100}}},"maxItems":1},"match_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"negate_condition":{"type":"TypeBool","optional":true,"default":false},"operator":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true},"transform":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":6},"value":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":25},"variable":{"type":"TypeString","optional":true}}},"maxItems":100},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true}}},"maxItems":100}},"timeouts":{"create":360,"read":5,"delete":360,"update":360}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"client_cert_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"","forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"branch":{"type":"TypeString","optional":true,"computed":true},"manual_integration":{"type":"TypeBool","optional":true,"computed":true},"repo_url":{"type":"TypeString","optional":true,"computed":true},"rollback_enabled":{"type":"TypeBool","optional":true,"computed":true},"use_mercurial":{"type":"TypeBool","optional":true,"computed":true}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_function_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_connection":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"function_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_function_app_function":{"schema":{"config_json":{"type":"TypeString","required":true,"description":"The config for this Function in JSON format."},"config_url":{"type":"TypeString","description":"The URL of the configuration JSON.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this function be enabled. Defaults to `true`."},"file":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"description":"The content of the file.","forceNew":true},"name":{"type":"TypeString","required":true,"description":"The filename of the file to be uploaded.","forceNew":true}}},"minItems":1},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App in which this function should reside.","forceNew":true},"invocation_url":{"type":"TypeString","description":"The invocation URL.","computed":true},"language":{"type":"TypeString","optional":true,"description":"The language the Function is written in."},"name":{"type":"TypeString","required":true,"description":"The name of the function.","forceNew":true},"script_root_path_url":{"type":"TypeString","description":"The Script root path URL.","computed":true},"script_url":{"type":"TypeString","description":"The script URL.","computed":true},"secrets_file_url":{"type":"TypeString","description":"The URL for the Secrets File.","computed":true},"test_data":{"type":"TypeString","optional":true,"description":"The test data for the function."},"test_data_url":{"type":"TypeString","description":"The Test data URL.","computed":true},"url":{"type":"TypeString","description":"The function URL.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_hybrid_connection":{"schema":{"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Function App for this Hybrid Connection.","forceNew":true},"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_function_app_slot":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true}}},"maxItems":1},"additional_login_params":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","required":true},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true},"app_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true},"oauth_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true},"consumer_secret":{"type":"TypeString","required":true}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"daily_memory_time_quota":{"type":"TypeInt","optional":true},"default_hostname":{"type":"TypeString","computed":true},"enable_builtin_logging":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"function_app_name":{"type":"TypeString","required":true,"forceNew":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"java_version":{"type":"TypeString","optional":true},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"default":"~1"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application":{"schema":{"description":{"type":"TypeString","optional":true},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true},"gallery_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true},"release_note_uri":{"type":"TypeString","optional":true},"supported_os_type":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_gallery_application_version":{"schema":{"enable_health_check":{"type":"TypeBool","optional":true,"default":false},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_application_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"manage_action":{"type":"TypeList","required":true,"elem":{"schema":{"install":{"type":"TypeString","required":true,"forceNew":true},"remove":{"type":"TypeString","required":true,"forceNew":true},"update":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"default_configuration_link":{"type":"TypeString","optional":true,"forceNew":true},"media_link":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_graph_services_account":{"schema":{"application_id":{"type":"TypeString","required":true,"forceNew":true},"billing_plan_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hdinsight_hadoop_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hadoop":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"edge_node":{"type":"TypeList","optional":true,"elem":{"schema":{"https_endpoints":{"type":"TypeList","optional":true,"elem":{"schema":{"access_modes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"destination_port":{"type":"TypeInt","optional":true},"disable_gateway_auth":{"type":"TypeBool","optional":true},"private_ip_address":{"type":"TypeString","optional":true},"sub_domain_suffix":{"type":"TypeString","optional":true}}}},"install_script_action":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"target_instance_count":{"type":"TypeInt","required":true},"uninstall_script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"vm_size":{"type":"TypeString","required":true}}},"maxItems":1},"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_hbase_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"hbase":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_interactive_query_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"interactive_hive":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_kafka_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"kafka":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rest_proxy":{"type":"TypeList","optional":true,"elem":{"schema":{"security_group_id":{"type":"TypeString","required":true,"forceNew":true},"security_group_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kafka_management_node":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"number_of_disks_per_node":{"type":"TypeInt","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hdinsight_spark_cluster":{"schema":{"cluster_version":{"type":"TypeString","required":true,"forceNew":true},"component_version":{"type":"TypeList","required":true,"elem":{"schema":{"spark":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"compute_isolation":{"type":"TypeList","optional":true,"elem":{"schema":{"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"host_sku":{"type":"TypeString","optional":true}}},"maxItems":1},"disk_encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_algorithm":{"type":"TypeString","optional":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"key_vault_managed_identity_id":{"type":"TypeString","optional":true}}}},"encryption_in_transit_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"gateway":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"https_endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"metastores":{"type":"TypeList","optional":true,"elem":{"schema":{"ambari":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"hive":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"oozie":{"type":"TypeList","optional":true,"elem":{"schema":{"database_name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_direction":{"type":"TypeString","optional":true,"default":"Inbound","forceNew":true},"private_link_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"schema":{"head_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"worker_node":{"type":"TypeList","required":true,"elem":{"schema":{"autoscale":{"type":"TypeList","optional":true,"elem":{"schema":{"capacity":{"type":"TypeList","optional":true,"elem":{"schema":{"max_instance_count":{"type":"TypeInt","required":true},"min_instance_count":{"type":"TypeInt","required":true}}},"maxItems":1},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"target_instance_count":{"type":"TypeInt","required":true},"time":{"type":"TypeString","required":true}}},"minItems":1},"timezone":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"target_instance_count":{"type":"TypeInt","required":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"zookeeper_node":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","optional":true,"forceNew":true},"script_actions":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true},"uri":{"type":"TypeString","required":true}}},"minItems":1},"ssh_keys":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"security_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"aadds_resource_id":{"type":"TypeString","required":true,"forceNew":true},"cluster_users_group_dns":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"domain_user_password":{"type":"TypeString","required":true,"forceNew":true},"domain_username":{"type":"TypeString","required":true,"forceNew":true},"ldaps_urls":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"msi_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh_endpoint":{"type":"TypeString","computed":true},"storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"is_default":{"type":"TypeBool","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","optional":true,"forceNew":true}}}},"storage_account_gen2":{"type":"TypeList","optional":true,"elem":{"schema":{"filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"is_default":{"type":"TypeBool","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","required":true,"forceNew":true},"storage_resource_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","required":true,"forceNew":true},"tls_min_version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_healthbot":{"schema":{"bot_management_portal_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"authority":{"type":"TypeString","required":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"configuration_export_storage_account_name":{"type":"TypeString","optional":true},"container_registry_login_server_url":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":64},"credentials_allowed":{"type":"TypeBool","optional":true,"default":false},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","optional":true,"default":"fhir-R4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"oci_artifact":{"type":"TypeList","optional":true,"elem":{"schema":{"digest":{"type":"TypeString","optional":true},"image_name":{"type":"TypeString","optional":true},"login_server":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":30,"update":90}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_medtech_service_fhir_destination":{"schema":{"destination_fhir_mapping_json":{"type":"TypeString","required":true},"destination_fhir_service_id":{"type":"TypeString","required":true},"destination_identity_resolution_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"medtech_service_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"audience":{"type":"TypeString","optional":true},"authority":{"type":"TypeString","optional":true},"smart_proxy_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","optional":true},"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_methods":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":64},"max_age_in_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","optional":true,"forceNew":true},"cosmosdb_throughput":{"type":"TypeInt","optional":true,"default":1000},"kind":{"type":"TypeString","optional":true,"default":"fhir"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_connection":{"type":"TypeSet","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache":{"schema":{"automatically_rotate_key_to_latest_enabled":{"type":"TypeBool","optional":true},"cache_size_in_gb":{"type":"TypeInt","required":true,"forceNew":true},"default_access_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1}}},"maxItems":1,"minItems":1},"directory_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"cache_netbios_name":{"type":"TypeString","required":true},"dns_primary_ip":{"type":"TypeString","required":true},"dns_secondary_ip":{"type":"TypeString","optional":true},"domain_name":{"type":"TypeString","required":true},"domain_netbios_name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"directory_flat_file":{"type":"TypeList","optional":true,"elem":{"schema":{"group_file_uri":{"type":"TypeString","required":true},"password_file_uri":{"type":"TypeString","required":true}}},"maxItems":1},"directory_ldap":{"type":"TypeList","optional":true,"elem":{"schema":{"base_dn":{"type":"TypeString","required":true},"bind":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dn":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_validation_uri":{"type":"TypeString","optional":true},"download_certificate_automatically":{"type":"TypeBool","optional":true},"encrypted":{"type":"TypeBool","optional":true},"server":{"type":"TypeString","required":true}}},"maxItems":1},"dns":{"type":"TypeList","optional":true,"elem":{"schema":{"search_domain":{"type":"TypeString","optional":true},"servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":3}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_vault_key_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mtu":{"type":"TypeInt","optional":true,"default":1500},"name":{"type":"TypeString","required":true,"forceNew":true},"ntp_server":{"type":"TypeString","optional":true,"default":"time.windows.com"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_hpc_cache_access_policy":{"schema":{"access_rule":{"type":"TypeSet","required":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"anonymous_gid":{"type":"TypeInt","optional":true},"anonymous_uid":{"type":"TypeInt","optional":true},"filter":{"type":"TypeString","optional":true},"root_squash_enabled":{"type":"TypeBool","optional":true},"scope":{"type":"TypeString","required":true},"submount_access_enabled":{"type":"TypeBool","optional":true},"suid_enabled":{"type":"TypeBool","optional":true}}},"maxItems":3,"minItems":1},"hpc_cache_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_nfs_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_blob_target":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_path":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_hpc_cache_nfs_target":{"schema":{"cache_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_junction":{"type":"TypeSet","required":true,"elem":{"schema":{"access_policy_name":{"type":"TypeString","optional":true,"default":"default"},"namespace_path":{"type":"TypeString","required":true},"nfs_export":{"type":"TypeString","required":true},"target_path":{"type":"TypeString","optional":true,"default":""}}},"maxItems":10,"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"target_host_name":{"type":"TypeString","required":true,"forceNew":true},"usage_model":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"lun":{"type":"TypeInt","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}}},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"caching":{"type":"TypeString","optional":true,"default":"None"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"os_state":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_virtual_machine_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_integration_service_environment":{"schema":{"access_endpoint_type":{"type":"TypeString","required":true,"forceNew":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Developer_0"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":4,"minItems":4},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_iot_security_device_group":{"schema":{"allow_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_from_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"connection_to_ips_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"local_users_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"processes_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"range_rule":{"type":"TypeSet","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"max":{"type":"TypeInt","required":true},"min":{"type":"TypeInt","required":true},"type":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_security_solution":{"schema":{"additional_workspace":{"type":"TypeSet","optional":true,"elem":{"schema":{"data_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}}}},"disabled_data_sources":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"events_to_export":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"iothub_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"log_unmasked_ips_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"query_for_resources":{"type":"TypeString","optional":true,"computed":true},"query_subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"recommendations_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"acr_authentication":{"type":"TypeBool","optional":true,"default":true},"agent_send_unutilized_msg":{"type":"TypeBool","optional":true,"default":true},"baseline":{"type":"TypeBool","optional":true,"default":true},"edge_hub_mem_optimize":{"type":"TypeBool","optional":true,"default":true},"edge_logging_option":{"type":"TypeBool","optional":true,"default":true},"inconsistent_module_settings":{"type":"TypeBool","optional":true,"default":true},"install_agent":{"type":"TypeBool","optional":true,"default":true},"ip_filter_deny_all":{"type":"TypeBool","optional":true,"default":true},"ip_filter_permissive_rule":{"type":"TypeBool","optional":true,"default":true},"open_ports":{"type":"TypeBool","optional":true,"default":true},"permissive_firewall_policy":{"type":"TypeBool","optional":true,"default":true},"permissive_input_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"permissive_output_firewall_rules":{"type":"TypeBool","optional":true,"default":true},"privileged_docker_options":{"type":"TypeBool","optional":true,"default":true},"shared_credentials":{"type":"TypeBool","optional":true,"default":true},"vulnerable_tls_cipher_suite":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_access_policy":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_object_id":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_eventhub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"eventhub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_event_source_iothub":{"schema":{"consumer_group_name":{"type":"TypeString","required":true},"environment_id":{"type":"TypeString","required":true,"forceNew":true},"event_source_resource_id":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_key":{"type":"TypeString","required":true},"shared_access_key_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timestamp_property_name":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_gen2_environment":{"schema":{"data_access_fqdn":{"type":"TypeString","computed":true},"id_properties":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage":{"type":"TypeList","required":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"warm_store_data_retention_time":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_reference_data_set":{"schema":{"data_string_comparison_behavior":{"type":"TypeString","optional":true,"default":"Ordinal","forceNew":true},"key_property":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_series_insights_environment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iot_time_series_insights_standard_environment":{"schema":{"data_retention_time":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_limit_exceeded_behavior":{"type":"TypeString","optional":true,"default":"PurgeOldData"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"ST1"},"sub_domain":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iotcentral_application_network_rule_set":{"schema":{"apply_to_device":{"type":"TypeBool","optional":true,"default":true},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"iotcentral_application_id":{"type":"TypeString","required":true,"forceNew":true},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub":{"schema":{"cloud_to_device":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"feedback":{"type":"TypeList","optional":true,"elem":{"schema":{"lock_duration":{"type":"TypeString","optional":true,"default":"PT60S"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"time_to_live":{"type":"TypeString","optional":true,"default":"PT1H"}}}},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10}}},"maxItems":1},"endpoint":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","optional":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"enrichment":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":10},"event_hub_events_endpoint":{"type":"TypeString","computed":true},"event_hub_events_namespace":{"type":"TypeString","computed":true},"event_hub_events_path":{"type":"TypeString","computed":true},"event_hub_operations_endpoint":{"type":"TypeString","computed":true},"event_hub_operations_path":{"type":"TypeString","computed":true},"event_hub_partition_count":{"type":"TypeInt","optional":true,"computed":true},"event_hub_retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"fallback_route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","optional":true,"computed":true},"endpoint_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}}},"maxItems":1},"file_upload":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"computed":true},"identity_id":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"apply_to_builtin_eventhub_endpoint":{"type":"TypeBool","optional":true,"default":false},"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"ip_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","required":true}}}},"shared_access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"key_name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_consumer_group":{"schema":{"eventhub_endpoint_name":{"type":"TypeString","required":true,"forceNew":true},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_account":{"schema":{"host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_device_update_instance":{"schema":{"device_update_account_id":{"type":"TypeString","required":true,"forceNew":true},"diagnostic_enabled":{"type":"TypeBool","optional":true,"default":false},"diagnostic_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","optional":true,"default":"Hashed"},"data_residency_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"ip_filter_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"ip_mask":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"target":{"type":"TypeString","optional":true}}}},"linked_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_weight":{"type":"TypeInt","optional":true,"default":1},"apply_allocation_policy":{"type":"TypeBool","optional":true,"default":true},"connection_string":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_operations_host_name":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_certificate":{"schema":{"certificate_content":{"type":"TypeString","required":true},"iot_dps_name":{"type":"TypeString","required":true,"forceNew":true},"is_verified":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"enrollment_read":{"type":"TypeBool","optional":true,"default":false},"enrollment_write":{"type":"TypeBool","optional":true,"default":false},"iothub_dps_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registration_read":{"type":"TypeBool","optional":true,"default":false},"registration_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_config":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_cosmosdb_account":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"container_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"endpoint_uri":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key_name":{"type":"TypeString","optional":true},"partition_key_template":{"type":"TypeString","optional":true},"primary_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_eventhub":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_queue":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_servicebus_topic":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","optional":true},"endpoint_uri":{"type":"TypeString","optional":true},"entity_path":{"type":"TypeString","optional":true},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_endpoint_storage_container":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"batch_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":300},"connection_string":{"type":"TypeString","optional":true},"container_name":{"type":"TypeString","required":true},"encoding":{"type":"TypeString","optional":true,"default":"Avro","forceNew":true},"endpoint_uri":{"type":"TypeString","optional":true},"file_name_format":{"type":"TypeString","optional":true,"default":"{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"max_chunk_size_in_bytes":{"type":"TypeInt","optional":true,"default":314572800},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_enrichment":{"schema":{"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":100},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"key":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_fallback_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","optional":true,"default":"DeviceMessages"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_file_upload":{"schema":{"authentication_type":{"type":"TypeString","optional":true,"default":"keyBased"},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"default_ttl":{"type":"TypeString","optional":true,"default":"PT1H"},"identity_id":{"type":"TypeString","optional":true},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"lock_duration":{"type":"TypeString","optional":true,"default":"PT1M"},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"notifications_enabled":{"type":"TypeBool","optional":true,"default":false},"sas_ttl":{"type":"TypeString","optional":true,"default":"PT1H"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_route":{"schema":{"condition":{"type":"TypeString","optional":true,"default":"true"},"enabled":{"type":"TypeBool","required":true},"endpoint_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":1},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_iothub_shared_access_policy":{"schema":{"device_connect":{"type":"TypeBool","optional":true,"default":false},"iothub_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"registry_read":{"type":"TypeBool","optional":true,"default":false},"registry_write":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"service_connect":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"firewall_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ip_group_cidr":{"schema":{"cidr":{"type":"TypeString","required":true,"forceNew":true},"ip_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","optional":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1024},"contact":{"type":"TypeSet","optional":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"enable_rbac_authorization":{"type":"TypeBool","optional":true},"enabled_for_deployment":{"type":"TypeBool","optional":true},"enabled_for_disk_encryption":{"type":"TypeBool","optional":true},"enabled_for_template_deployment":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_protection_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_access_policy":{"schema":{"application_id":{"type":"TypeString","optional":true,"forceNew":true},"certificate_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true,"forceNew":true},"secret_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate":{"schema":{"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"contents":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true}}},"maxItems":1},"certificate_attribute":{"type":"TypeList","computed":true,"elem":{"schema":{"created":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"expires":{"type":"TypeString","computed":true},"not_before":{"type":"TypeString","computed":true},"recovery_level":{"type":"TypeString","computed":true},"updated":{"type":"TypeString","computed":true}}}},"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"key_properties":{"type":"TypeList","required":true,"elem":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true},"exportable":{"type":"TypeBool","required":true},"key_size":{"type":"TypeInt","optional":true,"computed":true},"key_type":{"type":"TypeString","required":true},"reuse_key":{"type":"TypeBool","required":true}}},"maxItems":1},"lifetime_action":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","optional":true},"lifetime_percentage":{"type":"TypeInt","optional":true}}},"maxItems":1}}}},"secret_properties":{"type":"TypeList","required":true,"elem":{"schema":{"content_type":{"type":"TypeString","required":true}}},"maxItems":1},"x509_certificate_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","required":true},"subject_alternative_names":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dns_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"validity_in_months":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":30,"delete":30,"update":30}},"azurerm_key_vault_certificate_contacts":{"schema":{"contact":{"type":"TypeSet","required":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","optional":true},"admin":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"first_name":{"type":"TypeString","optional":true},"last_name":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true}}}},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_id":{"type":"TypeString","optional":true},"password":{"type":"TypeString","optional":true},"provider_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"e":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","optional":true},"key_opts":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","optional":true,"forceNew":true},"key_type":{"type":"TypeString","required":true,"forceNew":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"rotation_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"automatic":{"type":"TypeList","optional":true,"elem":{"schema":{"time_after_creation":{"type":"TypeString","optional":true},"time_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"expire_after":{"type":"TypeString","optional":true},"notify_before_expiry":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_acls":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","required":true},"default_action":{"type":"TypeString","required":true}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"purge_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_domain_encrypted_data":{"type":"TypeString","computed":true},"security_domain_key_vault_certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10,"minItems":3},"security_domain_quorum":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"soft_delete_retention_days":{"type":"TypeInt","optional":true,"default":90,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":30}},"azurerm_key_vault_managed_storage_account":{"schema":{"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"regenerate_key_automatically":{"type":"TypeBool","optional":true,"default":false},"regeneration_period":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_managed_storage_account_sas_token_definition":{"schema":{"managed_storage_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sas_template_uri":{"type":"TypeString","required":true},"sas_type":{"type":"TypeString","required":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"validity_period":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"not_before_date":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":30,"delete":30,"update":30}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","optional":true,"elem":{"schema":{"connector_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_name":{"type":"TypeString","required":true}}},"maxItems":1},"api_server_access_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","optional":true},"vnet_integration_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"api_server_authorized_ip_ranges":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"auto_scaler_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"balance_similar_node_groups":{"type":"TypeBool","optional":true,"default":false},"empty_bulk_delete_max":{"type":"TypeString","optional":true,"computed":true},"expander":{"type":"TypeString","optional":true,"default":"random"},"max_graceful_termination_sec":{"type":"TypeString","optional":true,"computed":true},"max_node_provisioning_time":{"type":"TypeString","optional":true,"default":"15m"},"max_unready_nodes":{"type":"TypeInt","optional":true,"default":3},"max_unready_percentage":{"type":"TypeFloat","optional":true,"default":45},"new_pod_scale_up_delay":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_add":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_delete":{"type":"TypeString","optional":true,"computed":true},"scale_down_delay_after_failure":{"type":"TypeString","optional":true,"computed":true},"scale_down_unneeded":{"type":"TypeString","optional":true,"computed":true},"scale_down_unready":{"type":"TypeString","optional":true,"computed":true},"scale_down_utilization_threshold":{"type":"TypeString","optional":true,"computed":true},"scan_interval":{"type":"TypeString","optional":true,"computed":true},"skip_nodes_with_local_storage":{"type":"TypeBool","optional":true,"default":true},"skip_nodes_with_system_pods":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"automatic_channel_upgrade":{"type":"TypeString","optional":true},"azure_active_directory_role_based_access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","optional":true},"client_app_id":{"type":"TypeString","optional":true},"managed":{"type":"TypeBool","optional":true},"server_app_id":{"type":"TypeString","optional":true},"server_app_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"azure_policy_enabled":{"type":"TypeBool","optional":true},"confidential_computing":{"type":"TypeList","optional":true,"elem":{"schema":{"sgx_quote_helper_enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"custom_ca_trust_certificates_base64":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"default_node_pool":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true},"enable_node_public_ip":{"type":"TypeBool","optional":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false},"cpu_cfs_quota_period":{"type":"TypeString","optional":true},"cpu_manager_policy":{"type":"TypeString","optional":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true},"pod_max_pid":{"type":"TypeInt","optional":true},"topology_manager_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"linux_os_config":{"type":"TypeList","optional":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"only_critical_addons_enabled":{"type":"TypeBool","optional":true},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed"},"os_sku":{"type":"TypeString","optional":true,"computed":true},"pod_subnet_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"temporary_name_for_rotation":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"VirtualMachineScaleSets","forceNew":true},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true},"vnet_subnet_id":{"type":"TypeString","optional":true},"workload_runtime":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix":{"type":"TypeString","optional":true,"forceNew":true},"dns_prefix_private_cluster":{"type":"TypeString","optional":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_pod_security_policy":{"type":"TypeBool","optional":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","optional":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"http_proxy_config":{"type":"TypeList","optional":true,"elem":{"schema":{"http_proxy":{"type":"TypeString","optional":true,"forceNew":true},"https_proxy":{"type":"TypeString","optional":true,"forceNew":true},"no_proxy":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trusted_ca":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_cleaner_enabled":{"type":"TypeBool","optional":true,"default":false},"image_cleaner_interval_hours":{"type":"TypeInt","optional":true,"default":48},"ingress_application_gateway":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","optional":true},"gateway_name":{"type":"TypeString","optional":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"key_management_service":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"key_vault_network_access":{"type":"TypeString","optional":true,"default":"Public"}}},"maxItems":1},"key_vault_secrets_provider":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"secret_rotation_interval":{"type":"TypeString","optional":true,"default":"2m"}}},"maxItems":1},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"object_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"kubernetes_version":{"type":"TypeString","optional":true,"computed":true},"linux_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_username":{"type":"TypeString","required":true,"forceNew":true},"ssh_key":{"type":"TypeList","required":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"local_account_disabled":{"type":"TypeBool","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"day":{"type":"TypeString","required":true},"hours":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"minItems":1}}}},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}}}},"maxItems":1},"maintenance_window_auto_upgrade":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"maintenance_window_node_os":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_month":{"type":"TypeInt","optional":true},"day_of_week":{"type":"TypeString","optional":true},"duration":{"type":"TypeInt","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"not_allowed":{"type":"TypeSet","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"start_date":{"type":"TypeString","optional":true,"computed":true},"start_time":{"type":"TypeString","optional":true},"utc_offset":{"type":"TypeString","optional":true},"week_index":{"type":"TypeString","optional":true}}},"maxItems":1},"microsoft_defender":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true}}},"maxItems":1},"monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"annotations_allowed":{"type":"TypeString","optional":true},"labels_allowed":{"type":"TypeString","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"docker_bridge_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ebpf_data_plane":{"type":"TypeString","optional":true},"ip_versions":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"load_balancer_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":30},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true},"managed_outbound_ipv6_count":{"type":"TypeInt","optional":true,"computed":true},"outbound_ip_address_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ip_prefix_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"outbound_ports_allocated":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"load_balancer_sku":{"type":"TypeString","optional":true,"default":"standard","forceNew":true},"nat_gateway_profile":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"effective_outbound_ips":{"type":"TypeSet","configMode":"Auto","computed":true,"elem":{"type":"TypeString"}},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"managed_outbound_ip_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"network_mode":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"network_plugin":{"type":"TypeString","required":true,"forceNew":true},"network_plugin_mode":{"type":"TypeString","optional":true},"network_policy":{"type":"TypeString","optional":true,"computed":true},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"pod_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pod_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}},"service_cidr":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_cidrs":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_os_channel_upgrade":{"type":"TypeString","optional":true},"node_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","optional":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","optional":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","optional":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"open_service_mesh_enabled":{"type":"TypeBool","optional":true},"portal_fqdn":{"type":"TypeString","computed":true},"private_cluster_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"private_cluster_public_fqdn_enabled":{"type":"TypeBool","optional":true,"default":false},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"private_fqdn":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_based_access_control_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"run_command_enabled":{"type":"TypeBool","optional":true,"default":true},"service_mesh_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","required":true}}},"maxItems":1},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"storage_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","optional":true,"default":false},"disk_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"disk_driver_version":{"type":"TypeString","optional":true,"default":"v1"},"file_driver_enabled":{"type":"TypeBool","optional":true,"default":true},"snapshot_controller_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"web_app_routing":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_zone_id":{"type":"TypeString","required":true},"web_app_routing_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}},"maxItems":1},"windows_profile":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"gmsa":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_server":{"type":"TypeString","required":true},"root_domain":{"type":"TypeString","required":true}}},"maxItems":1},"license":{"type":"TypeString","optional":true}}},"maxItems":1},"workload_autoscaler_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"keda_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_controlled_values":{"type":"TypeString","computed":true},"vertical_pod_autoscaler_enabled":{"type":"TypeBool","optional":true,"default":false},"vertical_pod_autoscaler_update_mode":{"type":"TypeString","computed":true}}},"maxItems":1},"workload_identity_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_kubernetes_cluster_extension":{"schema":{"aks_assigned_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"configuration_protected_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"configuration_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"current_version":{"type":"TypeString","computed":true},"extension_type":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"release_train":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"target_namespace":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"custom_ca_trust_enabled":{"type":"TypeBool","optional":true},"enable_auto_scaling":{"type":"TypeBool","optional":true},"enable_host_encryption":{"type":"TypeBool","optional":true,"forceNew":true},"enable_node_public_ip":{"type":"TypeBool","optional":true,"forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"fips_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"kubelet_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allowed_unsafe_sysctls":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"container_log_max_line":{"type":"TypeInt","optional":true,"forceNew":true},"container_log_max_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"cpu_cfs_quota_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"cpu_cfs_quota_period":{"type":"TypeString","optional":true,"forceNew":true},"cpu_manager_policy":{"type":"TypeString","optional":true,"forceNew":true},"image_gc_high_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"image_gc_low_threshold":{"type":"TypeInt","optional":true,"forceNew":true},"pod_max_pid":{"type":"TypeInt","optional":true,"forceNew":true},"topology_manager_policy":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"kubelet_disk_type":{"type":"TypeString","optional":true,"computed":true},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"linux_os_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"swap_file_size_mb":{"type":"TypeInt","optional":true,"forceNew":true},"sysctl_config":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"fs_aio_max_nr":{"type":"TypeInt","optional":true,"forceNew":true},"fs_file_max":{"type":"TypeInt","optional":true,"forceNew":true},"fs_inotify_max_user_watches":{"type":"TypeInt","optional":true,"forceNew":true},"fs_nr_open":{"type":"TypeInt","optional":true,"forceNew":true},"kernel_threads_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_netdev_max_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_optmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_rmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_somaxconn":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_default":{"type":"TypeInt","optional":true,"forceNew":true},"net_core_wmem_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_max":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_ip_local_port_range_min":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh1":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh2":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_neigh_default_gc_thresh3":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_fin_timeout":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_intvl":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_probes":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_keepalive_time":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_syn_backlog":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_max_tw_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_ipv4_tcp_tw_reuse":{"type":"TypeBool","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_buckets":{"type":"TypeInt","optional":true,"forceNew":true},"net_netfilter_nf_conntrack_max":{"type":"TypeInt","optional":true,"forceNew":true},"vm_max_map_count":{"type":"TypeInt","optional":true,"forceNew":true},"vm_swappiness":{"type":"TypeInt","optional":true,"forceNew":true},"vm_vfs_cache_pressure":{"type":"TypeInt","optional":true,"forceNew":true}}},"maxItems":1},"transparent_huge_page_defrag":{"type":"TypeString","optional":true,"forceNew":true},"transparent_huge_page_enabled":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"max_count":{"type":"TypeInt","optional":true},"max_pods":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"message_of_the_day":{"type":"TypeString","optional":true,"forceNew":true},"min_count":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","optional":true,"default":"User"},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true,"computed":true},"node_labels":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"node_network_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"node_public_ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"node_public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"node_taints":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","optional":true,"computed":true},"os_disk_size_gb":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"os_disk_type":{"type":"TypeString","optional":true,"default":"Managed","forceNew":true},"os_sku":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"os_type":{"type":"TypeString","optional":true,"default":"Linux","forceNew":true},"pod_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"scale_down_mode":{"type":"TypeString","optional":true,"default":"Delete"},"snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"spot_max_price":{"type":"TypeFloat","optional":true,"default":-1,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"upgrade_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"max_surge":{"type":"TypeString","required":true}}},"maxItems":1},"vm_size":{"type":"TypeString","required":true,"forceNew":true},"vnet_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"windows_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"outbound_nat_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"workload_runtime":{"type":"TypeString","optional":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kubernetes_cluster_trusted_access_role_binding":{"schema":{"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"roles":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"source_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_fleet_manager":{"schema":{"hub_profile":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dns_prefix":{"type":"TypeString","required":true},"fqdn":{"type":"TypeString","computed":true},"kubernetes_version":{"type":"TypeString","computed":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kubernetes_flux_configuration":{"schema":{"blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","optional":true},"container_id":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true}}},"maxItems":1},"sas_token":{"type":"TypeString","optional":true},"service_principal":{"type":"TypeList","optional":true,"elem":{"schema":{"client_certificate_base64":{"type":"TypeString","optional":true},"client_certificate_password":{"type":"TypeString","optional":true},"client_certificate_send_chain":{"type":"TypeBool","optional":true,"default":false},"client_id":{"type":"TypeString","required":true},"client_secret":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"maxItems":1},"bucket":{"type":"TypeList","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","optional":true},"bucket_name":{"type":"TypeString","required":true},"local_auth_reference":{"type":"TypeString","optional":true},"secret_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"tls_enabled":{"type":"TypeBool","optional":true,"default":true},"url":{"type":"TypeString","required":true}}},"maxItems":1},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"continuous_reconciliation_enabled":{"type":"TypeBool","optional":true,"default":true},"git_repository":{"type":"TypeList","optional":true,"elem":{"schema":{"https_ca_cert_base64":{"type":"TypeString","optional":true},"https_key_base64":{"type":"TypeString","optional":true},"https_user":{"type":"TypeString","optional":true},"local_auth_reference":{"type":"TypeString","optional":true},"reference_type":{"type":"TypeString","required":true},"reference_value":{"type":"TypeString","required":true},"ssh_known_hosts_base64":{"type":"TypeString","optional":true},"ssh_private_key_base64":{"type":"TypeString","optional":true},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600},"url":{"type":"TypeString","required":true}}},"maxItems":1},"kustomizations":{"type":"TypeSet","required":true,"elem":{"schema":{"depends_on":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"garbage_collection_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"recreating_enabled":{"type":"TypeBool","optional":true,"default":false},"retry_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"sync_interval_in_seconds":{"type":"TypeInt","optional":true,"default":600},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":600}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","optional":true,"default":"namespace","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_attached_database_configuration":{"schema":{"attached_database_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"cluster_resource_id":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"default_principal_modification_kind":{"type":"TypeString","optional":true,"default":"None"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"elem":{"schema":{"external_tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"external_tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"materialized_views_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_exclude":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"tables_to_include":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster":{"schema":{"allowed_fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allowed_ip_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"auto_stop_enabled":{"type":"TypeBool","optional":true,"default":true},"data_ingestion_uri":{"type":"TypeString","computed":true},"disk_encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"double_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"engine":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"language_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"optimized_auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum_instances":{"type":"TypeInt","required":true},"minimum_instances":{"type":"TypeInt","required":true}}},"maxItems":1},"outbound_network_access_restricted":{"type":"TypeBool","optional":true,"default":false},"public_ip_type":{"type":"TypeString","optional":true,"default":"IPv4"},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purge_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"streaming_ingestion_enabled":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_external_tenants":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true},"virtual_network_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"data_management_public_ip_id":{"type":"TypeString","required":true},"engine_public_ip_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":1},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_customer_managed_key":{"schema":{"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true},"user_identity":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_kusto_cluster_managed_private_endpoint":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_id":{"type":"TypeString","required":true,"forceNew":true},"private_link_resource_region":{"type":"TypeString","optional":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cluster_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_cosmosdb_data_connection":{"schema":{"cosmosdb_container_id":{"type":"TypeString","required":true,"forceNew":true},"kusto_database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_id":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"retrieval_start_date":{"type":"TypeString","optional":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"hot_cache_period":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_database_principal_assignment":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","computed":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_name":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_eventgrid_data_connection":{"schema":{"blob_storage_event_type":{"type":"TypeString","optional":true,"default":"Microsoft.Storage.BlobCreated"},"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"eventgrid_resource_id":{"type":"TypeString","optional":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true,"forceNew":true},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_identity_resource_id":{"type":"TypeString","optional":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"skip_first_record":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_eventhub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"compression":{"type":"TypeString","optional":true,"default":"None","forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"eventhub_id":{"type":"TypeString","required":true,"forceNew":true},"identity_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_kusto_iothub_data_connection":{"schema":{"cluster_name":{"type":"TypeString","required":true,"forceNew":true},"consumer_group":{"type":"TypeString","required":true,"forceNew":true},"data_format":{"type":"TypeString","optional":true,"forceNew":true},"database_name":{"type":"TypeString","required":true,"forceNew":true},"database_routing_type":{"type":"TypeString","optional":true,"default":"Single","forceNew":true},"event_system_properties":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"iothub_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mapping_rule_name":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_kusto_script":{"schema":{"continue_on_errors_enabled":{"type":"TypeBool","optional":true,"default":false},"database_id":{"type":"TypeString","required":true,"forceNew":true},"force_an_update_when_value_changed":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sas_token":{"type":"TypeString","optional":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"url":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_lab":{"schema":{"auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"connection_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"lab_plan_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","computed":true},"public_ip_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","optional":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"roster":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_group_id":{"type":"TypeString","optional":true},"lms_instance":{"type":"TypeString","optional":true},"lti_client_id":{"type":"TypeString","optional":true},"lti_context_id":{"type":"TypeString","optional":true},"lti_roster_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"security":{"type":"TypeList","required":true,"elem":{"schema":{"open_access_enabled":{"type":"TypeBool","required":true},"registration_code":{"type":"TypeString","computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title":{"type":"TypeString","required":true},"virtual_machine":{"type":"TypeList","required":true,"elem":{"schema":{"additional_capability_gpu_drivers_installed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"admin_user":{"type":"TypeList","required":true,"elem":{"schema":{"password":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"create_option":{"type":"TypeString","optional":true,"default":"Image","forceNew":true},"image_reference":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"non_admin_user":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"shared_password_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_lab_service_plan":{"schema":{"allowed_regions":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":28,"minItems":1},"default_auto_shutdown":{"type":"TypeList","optional":true,"elem":{"schema":{"disconnect_delay":{"type":"TypeString","optional":true},"idle_delay":{"type":"TypeString","optional":true},"no_connect_delay":{"type":"TypeString","optional":true},"shutdown_on_idle":{"type":"TypeString","optional":true}}},"maxItems":1},"default_connection":{"type":"TypeList","optional":true,"elem":{"schema":{"client_rdp_access":{"type":"TypeString","optional":true},"client_ssh_access":{"type":"TypeString","optional":true},"web_rdp_access":{"type":"TypeString","optional":true},"web_ssh_access":{"type":"TypeString","optional":true}}},"maxItems":1},"default_network_subnet_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"shared_gallery_id":{"type":"TypeString","optional":true},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"instructions":{"type":"TypeString","optional":true},"phone":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_schedule":{"schema":{"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","required":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","optional":true},"week_days":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"stop_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lab_service_user":{"schema":{"additional_usage_quota":{"type":"TypeString","optional":true,"default":"PT0S"},"email":{"type":"TypeString","required":true,"forceNew":true},"lab_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb":{"schema":{"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"id":{"type":"TypeString","computed":true},"inbound_nat_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_version":{"type":"TypeString","optional":true,"computed":true},"public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"computed":true},"subnet_id":{"type":"TypeString","optional":true,"computed":true},"zones":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool":{"schema":{"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tunnel_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier":{"type":"TypeInt","required":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"virtual_network_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_backend_address_pool_address":{"schema":{"backend_address_ip_configuration_id":{"type":"TypeString","optional":true,"description":"For global load balancer, user needs to specify the `backend_address_ip_configuration_id` of the added regional load balancers"},"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","optional":true,"description":"For regional load balancer, user needs to specify `virtual_network_id` and `ip_address`"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_pool":{"schema":{"backend_port":{"type":"TypeInt","required":true},"floating_ip_enabled":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port_end":{"type":"TypeInt","required":true},"frontend_port_start":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tcp_reset_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_nat_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","optional":true},"backend_ip_configuration_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","required":true},"enable_floating_ip":{"type":"TypeBool","optional":true,"computed":true},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","optional":true},"frontend_port_end":{"type":"TypeInt","optional":true},"frontend_port_start":{"type":"TypeInt","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","optional":true,"default":1024},"backend_address_pool_id":{"type":"TypeString","required":true},"enable_tcp_reset":{"type":"TypeBool","optional":true,"default":false},"frontend_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_probe":{"schema":{"interval_in_seconds":{"type":"TypeInt","optional":true,"default":15},"load_balancer_rules":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_probes":{"type":"TypeInt","optional":true,"default":2},"port":{"type":"TypeInt","required":true},"probe_threshold":{"type":"TypeInt","optional":true,"default":1},"protocol":{"type":"TypeString","optional":true,"computed":true},"request_path":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lb_rule":{"schema":{"backend_address_pool_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":1},"backend_port":{"type":"TypeInt","required":true},"disable_outbound_snat":{"type":"TypeBool","optional":true,"default":false},"enable_floating_ip":{"type":"TypeBool","optional":true,"default":false},"enable_tcp_reset":{"type":"TypeBool","optional":true},"frontend_ip_configuration_id":{"type":"TypeString","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","required":true},"frontend_port":{"type":"TypeInt","required":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"load_distribution":{"type":"TypeString","optional":true,"computed":true},"loadbalancer_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"probe_id":{"type":"TypeString","optional":true,"computed":true},"protocol":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_lighthouse_assignment":{"schema":{"lighthouse_definition_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_lighthouse_definition":{"schema":{"authorization":{"type":"TypeSet","required":true,"elem":{"schema":{"delegated_role_definition_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"eligible_authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"just_in_time_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"approver":{"type":"TypeSet","optional":true,"elem":{"schema":{"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true}}}},"maximum_activation_duration":{"type":"TypeString","optional":true,"default":"PT8H"},"multi_factor_auth_provider":{"type":"TypeString","optional":true}}},"maxItems":1},"principal_display_name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","required":true},"role_definition_id":{"type":"TypeString","required":true}}}},"lighthouse_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managing_tenant_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022``","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Function App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Linux Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Linux Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Linux Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Linux Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Linux Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Linux Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Linux Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"elem":{"schema":{"docker":{"type":"TypeList","optional":true,"description":"A docker block","elem":{"schema":{"image_name":{"type":"TypeString","required":true,"description":"The name of the Docker image to use."},"image_tag":{"type":"TypeString","required":true,"description":"The image tag of the image to use."},"registry_password":{"type":"TypeString","optional":true,"description":"The password for the account to use to connect to the registry."},"registry_url":{"type":"TypeString","required":true,"description":"The URL of the docker registry."},"registry_username":{"type":"TypeString","optional":true,"description":"The username to use for connections to the registry."}}}},"dotnet_version":{"type":"TypeString","optional":true,"description":"The version of .Net. Possible values are `3.1`, `6.0` and `7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `8`, `11`, and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The version of PowerShell Core to use. Possibles values are `7`, and `7.2`"},"python_version":{"type":"TypeString","optional":true,"description":"The version of Python to use. Possible values include `3.11`, `3.10`, `3.9`, `3.8`, and `3.7`."},"use_custom_runtime":{"type":"TypeBool","optional":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"default":false,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`."}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true,"description":"The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry."},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should connections for Azure Container Registry use Managed Identity."},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Linux Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Linux Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","description":"The Linux FX Version","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Linux Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Linux Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Linux Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_linux_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"default":0},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_linux_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Linux Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_linux_web_app_slot":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_service_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_image_tag":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_version":{"type":"TypeString","optional":true},"go_version":{"type":"TypeString","optional":true},"java_server":{"type":"TypeString","optional":true},"java_server_version":{"type":"TypeString","optional":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true},"python_version":{"type":"TypeString","optional":true},"ruby_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_load_test":{"schema":{"data_plane_uri":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"gateway_address":{"type":"TypeString","optional":true},"gateway_fqdn":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_cluster":{"schema":{"cluster_id":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"size_gb":{"type":"TypeInt","optional":true,"default":1000},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_cluster_customer_managed_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"log_analytics_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":360,"read":5,"delete":30,"update":360}},"azurerm_log_analytics_data_export_rule":{"schema":{"destination_resource_id":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":false},"export_rule_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"table_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_event":{"schema":{"event_log_name":{"type":"TypeString","required":true},"event_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_datasource_windows_performance_counter":{"schema":{"counter_name":{"type":"TypeString","required":true},"instance_name":{"type":"TypeString","required":true},"interval_seconds":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"object_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_service":{"schema":{"name":{"type":"TypeString","computed":true},"read_access_id":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true},"write_access_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_linked_storage_account":{"schema":{"data_source_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_query_pack_query":{"schema":{"additional_settings_json":{"type":"TypeString","optional":true},"body":{"type":"TypeString","required":true},"categories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"query_pack_id":{"type":"TypeString","required":true,"forceNew":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"solutions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_saved_search":{"schema":{"category":{"type":"TypeString","required":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"function_alias":{"type":"TypeString","optional":true,"forceNew":true},"function_parameters":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_solution":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"solution_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_name":{"type":"TypeString","required":true,"forceNew":true},"workspace_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_storage_insights":{"schema":{"blob_container_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"table_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_log_analytics_workspace":{"schema":{"allow_resource_only_permissions":{"type":"TypeBool","optional":true,"default":true},"cmk_for_query_forced":{"type":"TypeBool","optional":true},"daily_quota_gb":{"type":"TypeFloat","optional":true,"default":-1},"data_collection_rule_id":{"type":"TypeString","optional":true},"internet_ingestion_enabled":{"type":"TypeBool","optional":true,"default":true},"internet_query_enabled":{"type":"TypeBool","optional":true,"default":true},"local_authentication_disabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_shared_key":{"type":"TypeString","computed":true},"reservation_capacity_in_gb_per_day":{"type":"TypeInt","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_in_days":{"type":"TypeInt","optional":true,"computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_action_http":{"schema":{"body":{"type":"TypeString","optional":true},"headers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"queries":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"run_after":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_name":{"type":"TypeString","required":true},"action_result":{"type":"TypeString","required":true}}},"minItems":1},"uri":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account":{"schema":{"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_agreement":{"schema":{"agreement_type":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"guest_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"guest_partner_name":{"type":"TypeString","required":true},"host_identity":{"type":"TypeList","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}},"maxItems":1},"host_partner_name":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_assembly":{"schema":{"assembly_name":{"type":"TypeString","required":true},"assembly_version":{"type":"TypeString","optional":true,"default":"0.0.0.0"},"content":{"type":"TypeString","optional":true},"content_link_uri":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_batch_configuration":{"schema":{"batch_group_name":{"type":"TypeString","required":true,"forceNew":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"release_criteria":{"type":"TypeList","required":true,"elem":{"schema":{"batch_size":{"type":"TypeInt","optional":true},"message_count":{"type":"TypeInt","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","optional":true},"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"month_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"monthly":{"type":"TypeSet","optional":true,"elem":{"schema":{"week":{"type":"TypeInt","required":true},"weekday":{"type":"TypeString","required":true}}}},"week_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_certificate":{"schema":{"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"key_vault_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"key_version":{"type":"TypeString","optional":true}}},"maxItems":1},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_certificate":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_map":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"map_type":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_partner":{"schema":{"business_identity":{"type":"TypeSet","required":true,"elem":{"schema":{"qualifier":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_schema":{"schema":{"content":{"type":"TypeString","required":true},"file_name":{"type":"TypeString","optional":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_integration_account_session":{"schema":{"content":{"type":"TypeString","required":true},"integration_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","required":true},"app_settings":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","optional":true,"default":"[1.*, 2.0.0)"},"client_affinity_enabled":{"type":"TypeBool","optional":true,"computed":true},"client_certificate_mode":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_share_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","optional":true,"default":true},"version":{"type":"TypeString","optional":true,"default":"~3"},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_custom":{"schema":{"body":{"type":"TypeString","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_http_request":{"schema":{"callback_url":{"type":"TypeString","computed":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"method":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"relative_path":{"type":"TypeString","optional":true},"schema":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_trigger_recurrence":{"schema":{"frequency":{"type":"TypeString","required":true},"interval":{"type":"TypeInt","required":true},"logic_app_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"at_these_hours":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"at_these_minutes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"}},"on_these_days":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"start_time":{"type":"TypeString","optional":true},"time_zone":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logic_app_workflow":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"open_authentication_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"claim":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"workflow_management":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_caller_ip_address_range":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"integration_service_environment_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logic_app_integration_account_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","optional":true,"default":"https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#","forceNew":true},"workflow_version":{"type":"TypeString","optional":true,"default":"1.0.0.0","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_monitor":{"schema":{"company_name":{"type":"TypeString","optional":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"enterprise_app_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logz_organization_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","required":true,"forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"100gb14days","forceNew":true},"usage_type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_sign_on_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_sub_account_tag_rule":{"schema":{"logz_sub_account_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_logz_tag_rule":{"schema":{"logz_monitor_id":{"type":"TypeString","required":true,"forceNew":true},"send_aad_logs":{"type":"TypeBool","optional":true,"default":false},"send_activity_logs":{"type":"TypeBool","optional":true,"default":false},"send_subscription_logs":{"type":"TypeBool","optional":true,"default":false},"tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","optional":true}}},"maxItems":10}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_compute_cluster":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"scale_settings":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true,"forceNew":true},"min_node_count":{"type":"TypeInt","required":true,"forceNew":true},"scale_down_nodes_after_idle_duration":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"key_value":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"ssh_public_access_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"vm_priority":{"type":"TypeString","required":true,"forceNew":true},"vm_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_compute_instance":{"schema":{"assign_to_user":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"object_id":{"type":"TypeString","optional":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"authorization_type":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_public_ip_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"ssh":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","computed":true}}},"maxItems":1},"subnet_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"virtual_machine_size":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_datastore_blobstorage":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_auth_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_datalake_gen2":{"schema":{"authority_url":{"type":"TypeString","optional":true,"computed":true},"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"storage_container_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_datastore_fileshare":{"schema":{"account_key":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"is_default":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"service_data_identity":{"type":"TypeString","optional":true,"default":"None"},"shared_access_signature":{"type":"TypeString","optional":true},"storage_fileshare_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_inference_cluster":{"schema":{"cluster_purpose":{"type":"TypeString","optional":true,"default":"FastProd","forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"kubernetes_cluster_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"ssl":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cert":{"type":"TypeString","optional":true,"default":"","forceNew":true},"cname":{"type":"TypeString","optional":true,"default":"","forceNew":true},"key":{"type":"TypeString","optional":true,"default":"","forceNew":true},"leaf_domain_label":{"type":"TypeString","optional":true,"default":"","forceNew":true},"overwrite_existing_domain":{"type":"TypeBool","optional":true,"default":"","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_machine_learning_synapse_spark":{"schema":{"description":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"machine_learning_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_machine_learning_workspace":{"schema":{"application_insights_id":{"type":"TypeString","required":true,"forceNew":true},"container_registry_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"discovery_url":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key_id":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"friendly_name":{"type":"TypeString","optional":true},"high_business_impact":{"type":"TypeBool","optional":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"image_build_compute_name":{"type":"TypeString","optional":true},"key_vault_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_user_assigned_identity":{"type":"TypeString","optional":true},"public_access_behind_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"default":"Basic"},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"v1_legacy_mode_enabled":{"type":"TypeBool","optional":true,"default":false},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maintenance_assignment_dedicated_host":{"schema":{"dedicated_host_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_assignment_virtual_machine_scale_set":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","optional":true},"install_patches":{"type":"TypeList","optional":true,"elem":{"schema":{"linux":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"reboot":{"type":"TypeString","optional":true},"windows":{"type":"TypeList","optional":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","optional":true,"default":"Custom"},"window":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","optional":true},"expiration_date_time":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"start_date_time":{"type":"TypeString","required":true},"time_zone":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application":{"schema":{"application_definition_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameter_values":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"promotion_code":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_application_definition":{"schema":{"authorization":{"type":"TypeSet","optional":true,"elem":{"schema":{"role_definition_id":{"type":"TypeString","required":true},"service_principal_id":{"type":"TypeString","required":true}}},"minItems":1},"create_ui_definition":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"lock_level":{"type":"TypeString","required":true,"forceNew":true},"main_template":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"package_enabled":{"type":"TypeBool","optional":true,"default":true},"package_file_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","required":true,"forceNew":true},"disk_access_id":{"type":"TypeString","optional":true},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_iops_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_only":{"type":"TypeInt","optional":true,"computed":true},"disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"gallery_image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"forceNew":true},"image_reference_id":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logical_sector_size":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"max_shares":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_access_policy":{"type":"TypeString","optional":true},"on_demand_bursting_enabled":{"type":"TypeBool","optional":true},"optimized_frequent_attach_enabled":{"type":"TypeBool","optional":true,"default":false},"os_type":{"type":"TypeString","optional":true},"performance_plus_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_type":{"type":"TypeString","optional":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","optional":true,"computed":true},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"upload_size_bytes":{"type":"TypeInt","optional":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_managed_disk_sas_token":{"schema":{"access_level":{"type":"TypeString","required":true,"forceNew":true},"duration_in_seconds":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"sas_url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_managed_lustre_file_system":{"schema":{"encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"hsm_setting":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"import_prefix":{"type":"TypeString","optional":true,"forceNew":true},"logging_container_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","required":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"time_of_day_in_utc":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"storage_capacity_in_tb":{"type":"TypeInt","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"parent_management_group_id":{"type":"TypeString","optional":true,"computed":true},"subscription_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_management_group_subscription_association":{"schema":{"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5}},"azurerm_management_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_management_lock":{"schema":{"lock_level":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_maps_account":{"schema":{"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_maps_creator":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"maps_account_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_units":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mariadb_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_mariadb_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true,"forceNew":true},"plan":{"type":"TypeString","required":true,"forceNew":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_marketplace_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_asset":{"schema":{"alternate_id":{"type":"TypeString","optional":true},"container":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_asset_filter":{"schema":{"asset_id":{"type":"TypeString","required":true,"forceNew":true},"first_quality_bitrate":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_miliseconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","optional":true},"property":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_content_key_policy":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_option":{"type":"TypeSet","required":true,"elem":{"schema":{"clear_key_configuration_enabled":{"type":"TypeBool","optional":true},"fairplay_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"ask":{"type":"TypeString","optional":true},"offline_rental_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"playback_duration_seconds":{"type":"TypeInt","optional":true},"storage_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"pfx":{"type":"TypeString","optional":true},"pfx_password":{"type":"TypeString","optional":true},"rental_and_lease_key_type":{"type":"TypeString","optional":true},"rental_duration_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"open_restriction_enabled":{"type":"TypeBool","optional":true},"playready_configuration_license":{"type":"TypeList","optional":true,"elem":{"schema":{"allow_test_devices":{"type":"TypeBool","optional":true},"begin_date":{"type":"TypeString","optional":true},"content_key_location_from_header_enabled":{"type":"TypeBool","optional":true},"content_key_location_from_key_id":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiration_date":{"type":"TypeString","optional":true},"grace_period":{"type":"TypeString","optional":true},"license_type":{"type":"TypeString","optional":true},"play_right":{"type":"TypeList","optional":true,"elem":{"schema":{"agc_and_color_stripe_restriction":{"type":"TypeInt","optional":true},"allow_passing_video_content_to_unknown_output":{"type":"TypeString","optional":true},"analog_video_opl":{"type":"TypeInt","optional":true},"compressed_digital_audio_opl":{"type":"TypeInt","optional":true},"compressed_digital_video_opl":{"type":"TypeInt","optional":true},"digital_video_only_content_restriction":{"type":"TypeBool","optional":true},"explicit_analog_television_output_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"best_effort_enforced":{"type":"TypeBool","optional":true,"default":false},"control_bits":{"type":"TypeInt","required":true}}},"maxItems":1},"first_play_expiration":{"type":"TypeString","optional":true},"image_constraint_for_analog_component_video_restriction":{"type":"TypeBool","optional":true},"image_constraint_for_analog_computer_monitor_restriction":{"type":"TypeBool","optional":true},"scms_restriction":{"type":"TypeInt","optional":true},"uncompressed_digital_audio_opl":{"type":"TypeInt","optional":true},"uncompressed_digital_video_opl":{"type":"TypeInt","optional":true}}},"maxItems":1},"relative_begin_date":{"type":"TypeString","optional":true},"relative_expiration_date":{"type":"TypeString","optional":true},"security_level":{"type":"TypeString","optional":true}}}},"playready_response_custom_data":{"type":"TypeString","optional":true},"token_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"alternate_key":{"type":"TypeList","optional":true,"elem":{"schema":{"rsa_token_key_exponent":{"type":"TypeString","optional":true},"rsa_token_key_modulus":{"type":"TypeString","optional":true},"symmetric_token_key":{"type":"TypeString","optional":true},"x509_token_key_raw":{"type":"TypeString","optional":true}}}},"audience":{"type":"TypeString","optional":true},"issuer":{"type":"TypeString","optional":true},"open_id_connect_discovery_document":{"type":"TypeString","optional":true},"primary_rsa_token_key_exponent":{"type":"TypeString","optional":true},"primary_rsa_token_key_modulus":{"type":"TypeString","optional":true},"primary_symmetric_token_key":{"type":"TypeString","optional":true},"primary_x509_token_key_raw":{"type":"TypeString","optional":true},"required_claim":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"token_type":{"type":"TypeString","optional":true}}},"maxItems":1},"widevine_configuration_template":{"type":"TypeString","optional":true}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_job":{"schema":{"description":{"type":"TypeString","optional":true},"input_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_asset":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1},"priority":{"type":"TypeString","optional":true,"default":"Normal","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"transform_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event":{"schema":{"auto_start_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true},"cross_domain_policy":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"encoding":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"preset_name":{"type":"TypeString","optional":true,"forceNew":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"None"},"type":{"type":"TypeString","optional":true,"default":"None","forceNew":true}}},"maxItems":1},"hostname_prefix":{"type":"TypeString","optional":true},"input":{"type":"TypeList","required":true,"elem":{"schema":{"access_token":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"key_frame_interval_duration":{"type":"TypeString","optional":true},"streaming_protocol":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"preview":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true},"endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"protocol":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"ip_access_control_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}},"preview_locator":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_options":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transcription_languages":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"use_static_hostname":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_live_event_output":{"schema":{"archive_window_duration":{"type":"TypeString","required":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"hls_fragments_per_ts_segment":{"type":"TypeInt","optional":true,"forceNew":true},"live_event_id":{"type":"TypeString","required":true,"forceNew":true},"manifest_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_snap_time_in_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"rewind_window_duration":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account":{"schema":{"encryption":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_key_identifier":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","optional":true},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"type":{"type":"TypeString","optional":true,"default":"SystemKey"}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_delivery_access_control":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true},"ip_allow_list":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeSet","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"managed_identity":{"type":"TypeList","optional":true,"elem":{"schema":{"use_system_assigned_identity":{"type":"TypeBool","optional":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1}}}},"storage_authentication_type":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_services_account_filter":{"schema":{"first_quality_bitrate":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"presentation_time_range":{"type":"TypeList","optional":true,"elem":{"schema":{"end_in_units":{"type":"TypeInt","optional":true},"force_end":{"type":"TypeBool","optional":true},"live_backoff_in_units":{"type":"TypeInt","optional":true},"presentation_window_in_units":{"type":"TypeInt","optional":true},"start_in_units":{"type":"TypeInt","optional":true},"unit_timescale_in_milliseconds":{"type":"TypeInt","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"track_selection":{"type":"TypeList","optional":true,"elem":{"schema":{"condition":{"type":"TypeList","required":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_endpoint":{"schema":{"access_control":{"type":"TypeList","optional":true,"elem":{"schema":{"akamai_signature_header_authentication_key":{"type":"TypeList","optional":true,"elem":{"schema":{"base64_key":{"type":"TypeString","optional":true},"expiration":{"type":"TypeString","optional":true},"identifier":{"type":"TypeString","optional":true}}}},"ip_allow":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"subnet_prefix_length":{"type":"TypeInt","optional":true}}}}}},"maxItems":1},"auto_start_enabled":{"type":"TypeBool","optional":true,"computed":true},"cdn_enabled":{"type":"TypeBool","optional":true},"cdn_profile":{"type":"TypeString","optional":true,"computed":true},"cdn_provider":{"type":"TypeString","optional":true,"computed":true},"cross_site_access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"client_access_policy":{"type":"TypeString","optional":true,"computed":true},"cross_domain_policy":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"custom_host_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_cache_age_seconds":{"type":"TypeInt","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scale_units":{"type":"TypeInt","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_media_streaming_locator":{"schema":{"alternative_media_id":{"type":"TypeString","optional":true,"forceNew":true},"asset_name":{"type":"TypeString","required":true,"forceNew":true},"content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content_key_id":{"type":"TypeString","optional":true,"forceNew":true},"label_reference_in_streaming_policy":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"forceNew":true},"value":{"type":"TypeString","optional":true,"forceNew":true}}}},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"end_time":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"filter_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true,"forceNew":true},"streaming_locator_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"streaming_policy_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_streaming_policy":{"schema":{"common_encryption_cbcs":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_fairplay":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_persistent_license":{"type":"TypeBool","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"common_encryption_cenc":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"clear_key_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"clear_track":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}},"content_key_to_track_mapping":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true},"track":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"condition":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"operation":{"type":"TypeString","required":true,"forceNew":true},"property":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}}}}}}}}}},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_playready":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_attributes":{"type":"TypeString","optional":true,"forceNew":true},"custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"drm_widevine_custom_license_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"default_content_key_policy_name":{"type":"TypeString","optional":true,"forceNew":true},"envelope_encryption":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"custom_keys_acquisition_url_template":{"type":"TypeString","optional":true,"forceNew":true},"default_content_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true,"forceNew":true},"policy_name":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"no_encryption_enabled_protocols":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"dash":{"type":"TypeBool","optional":true,"forceNew":true},"download":{"type":"TypeBool","optional":true,"forceNew":true},"hls":{"type":"TypeBool","optional":true,"forceNew":true},"smooth_streaming":{"type":"TypeBool","optional":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_media_transform":{"schema":{"description":{"type":"TypeString","optional":true},"media_services_account_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"builtin_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"preset_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true},"interleave_output":{"type":"TypeString","optional":true},"key_frame_interval_in_seconds":{"type":"TypeFloat","optional":true},"max_bitrate_bps":{"type":"TypeInt","optional":true},"max_height":{"type":"TypeInt","optional":true},"max_layers":{"type":"TypeInt","optional":true},"min_bitrate_bps":{"type":"TypeInt","optional":true},"min_height":{"type":"TypeInt","optional":true}}},"maxItems":1},"preset_name":{"type":"TypeString","required":true}}},"maxItems":1},"custom_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"codec":{"type":"TypeList","required":true,"elem":{"schema":{"aac_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":128000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"profile":{"type":"TypeString","optional":true,"default":"AacLc"},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"copy_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"copy_video":{"type":"TypeList","optional":true,"elem":{"schema":{"label":{"type":"TypeString","optional":true}}},"maxItems":1},"dd_audio":{"type":"TypeList","optional":true,"elem":{"schema":{"bitrate":{"type":"TypeInt","optional":true,"default":192000},"channels":{"type":"TypeInt","optional":true,"default":2},"label":{"type":"TypeString","optional":true},"sampling_rate":{"type":"TypeInt","optional":true,"default":48000}}},"maxItems":1},"h264_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":23},"entropy_mode":{"type":"TypeString","optional":true,"computed":true},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"rate_control_mode":{"type":"TypeString","optional":true,"default":"ABR"},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"h265_video":{"type":"TypeList","optional":true,"elem":{"schema":{"complexity":{"type":"TypeString","optional":true,"default":"Balanced"},"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"adaptive_b_frame_enabled":{"type":"TypeBool","optional":true,"default":true},"b_frames":{"type":"TypeInt","optional":true,"computed":true},"bitrate":{"type":"TypeInt","required":true},"buffer_window":{"type":"TypeString","optional":true,"default":"PT5S"},"crf":{"type":"TypeFloat","optional":true,"default":28},"frame_rate":{"type":"TypeString","optional":true},"height":{"type":"TypeString","optional":true,"computed":true},"label":{"type":"TypeString","optional":true},"level":{"type":"TypeString","optional":true,"default":"auto"},"max_bitrate":{"type":"TypeInt","optional":true,"computed":true},"profile":{"type":"TypeString","optional":true,"default":"Auto"},"reference_frames":{"type":"TypeInt","optional":true,"computed":true},"slices":{"type":"TypeInt","optional":true,"computed":true},"width":{"type":"TypeString","optional":true,"computed":true}}},"minItems":1},"scene_change_detection_enabled":{"type":"TypeBool","optional":true,"default":false},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"jpg_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"quality":{"type":"TypeInt","optional":true,"default":70},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"sprite_column":{"type":"TypeInt","optional":true,"default":0},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"png_image":{"type":"TypeList","optional":true,"elem":{"schema":{"key_frame_interval":{"type":"TypeString","optional":true,"default":"PT2S"},"label":{"type":"TypeString","optional":true},"layer":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"minItems":1},"range":{"type":"TypeString","optional":true,"default":"100%"},"start":{"type":"TypeString","required":true},"step":{"type":"TypeString","optional":true},"stretch_mode":{"type":"TypeString","optional":true,"default":"AutoSize"},"sync_mode":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1}}},"minItems":1},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"deinterlace":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","optional":true,"default":"AutoPixelAdaptive"},"parity":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"fade_in":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"fade_out":{"type":"TypeList","optional":true,"elem":{"schema":{"duration":{"type":"TypeString","required":true},"fade_color":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true,"default":"0"}}},"maxItems":1},"overlay":{"type":"TypeList","optional":true,"elem":{"schema":{"audio":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}},"maxItems":1},"video":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_gain_level":{"type":"TypeFloat","optional":true,"default":1},"crop_rectangle":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"end":{"type":"TypeString","optional":true},"fade_in_duration":{"type":"TypeString","optional":true},"fade_out_duration":{"type":"TypeString","optional":true},"input_label":{"type":"TypeString","required":true},"opacity":{"type":"TypeFloat","optional":true,"default":1},"position":{"type":"TypeList","optional":true,"elem":{"schema":{"height":{"type":"TypeString","optional":true},"left":{"type":"TypeString","optional":true},"top":{"type":"TypeString","optional":true},"width":{"type":"TypeString","optional":true}}},"maxItems":1},"start":{"type":"TypeString","optional":true}}},"maxItems":1}}},"minItems":1},"rotation":{"type":"TypeString","optional":true,"default":"Auto"}}},"maxItems":1},"format":{"type":"TypeList","required":true,"elem":{"schema":{"jpg":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"mp4":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1},"png":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true}}},"maxItems":1},"transport_stream":{"type":"TypeList","optional":true,"elem":{"schema":{"filename_pattern":{"type":"TypeString","required":true},"output_file":{"type":"TypeList","optional":true,"elem":{"schema":{"labels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}},"minItems":1}}},"maxItems":1}}},"minItems":1}}},"maxItems":1},"face_detector_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"analysis_resolution":{"type":"TypeString","optional":true,"default":"SourceResolution"},"blur_type":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"face_redactor_mode":{"type":"TypeString","optional":true,"default":"Analyze"}}},"maxItems":1},"on_error_action":{"type":"TypeString","optional":true,"default":"StopProcessingJob"},"relative_priority":{"type":"TypeString","optional":true,"default":"Normal"},"video_analyzer_preset":{"type":"TypeList","optional":true,"elem":{"schema":{"audio_analysis_mode":{"type":"TypeString","optional":true,"default":"Standard"},"audio_language":{"type":"TypeString","optional":true},"experimental_options":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"insights_type":{"type":"TypeString","optional":true,"default":"AllInsights"}}},"maxItems":1}}},"minItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_country_code":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_code":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_data_network_name":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true,"forceNew":true},"network_address_port_translation":{"type":"TypeList","optional":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"pinhole_maximum_number":{"type":"TypeInt","optional":true,"default":65536},"port_range":{"type":"TypeList","optional":true,"elem":{"schema":{"maximum":{"type":"TypeInt","optional":true,"default":49999},"minimum":{"type":"TypeInt","optional":true,"default":1024}}},"maxItems":1},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":120},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":180},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","optional":true,"default":60}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","optional":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"control_plane_access_name":{"type":"TypeString","optional":true},"core_network_technology":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"interoperability_settings_json":{"type":"TypeString","optional":true},"local_diagnostics_access":{"type":"TypeList","required":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","required":true},"https_server_certificate_url":{"type":"TypeString","optional":true}}},"maxItems":1,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"platform":{"type":"TypeList","optional":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","optional":true},"custom_location_id":{"type":"TypeString","optional":true},"edge_device_id":{"type":"TypeString","optional":true},"stack_hci_cluster_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"sku":{"type":"TypeString","required":true},"software_version":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","optional":true,"default":1440}},"timeouts":{"create":180,"read":5,"delete":180,"update":30}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","optional":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","optional":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","optional":true},"user_plane_access_name":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pcc_rule":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"precedence":{"type":"TypeInt","required":true},"qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true},"guaranteed_bit_rate":{"type":"TypeList","optional":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"Preemptable"},"qos_indicator":{"type":"TypeInt","required":true}}},"maxItems":1},"service_data_flow_template":{"type":"TypeList","required":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","optional":true,"default":true}}}},"service_precedence":{"type":"TypeInt","required":true},"service_qos_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":9},"maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1},"preemption_capability":{"type":"TypeString","optional":true},"preemption_vulnerability":{"type":"TypeString","optional":true},"qos_indicator":{"type":"TypeInt","optional":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim":{"schema":{"authentication_key":{"type":"TypeString","required":true},"device_type":{"type":"TypeString","optional":true},"integrated_circuit_card_identifier":{"type":"TypeString","required":true,"forceNew":true},"international_mobile_subscriber_identity":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"operator_key_code":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","optional":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true},"static_ipv4_address":{"type":"TypeString","optional":true}}},"minItems":1},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","optional":true},"registration_timer_in_seconds":{"type":"TypeInt","optional":true,"default":3240},"slice":{"type":"TypeList","required":true,"elem":{"schema":{"data_network":{"type":"TypeList","required":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","optional":true,"default":0},"allowed_services_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","required":true},"default_session_type":{"type":"TypeString","optional":true,"default":"IPv4"},"max_buffered_packets":{"type":"TypeInt","optional":true,"default":10},"preemption_capability":{"type":"TypeString","optional":true,"default":"NotPreempt"},"preemption_vulnerability":{"type":"TypeString","optional":true,"default":"NotPreemptable"},"qos_indicator":{"type":"TypeInt","required":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}}}},"default_data_network_id":{"type":"TypeString","required":true},"slice_id":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","required":true,"elem":{"schema":{"downlink":{"type":"TypeString","required":true},"uplink":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":180,"read":5,"delete":180,"update":60}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mobile_network_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","required":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","optional":true},"slice_service_type":{"type":"TypeInt","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_monitor_aad_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true,"forceNew":true},"eventhub_name":{"type":"TypeString","optional":true,"forceNew":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}}},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"role_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"automation_runbook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"is_global_runbook":{"type":"TypeBool","required":true},"name":{"type":"TypeString","required":true},"runbook_name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true,"default":false},"webhook_resource_id":{"type":"TypeString","required":true}}}},"azure_app_push_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"azure_function_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"http_trigger_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"email_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"email_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"event_hub_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"region":{"type":"TypeString","required":true},"ticket_configuration":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","optional":true,"default":"global","forceNew":true},"logic_app_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"callback_url":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"short_name":{"type":"TypeString","required":true},"sms_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"country_code":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"phone_number":{"type":"TypeString","required":true}}}},"webhook_receiver":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","optional":true,"computed":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"service_uri":{"type":"TypeString","required":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_action_group":{"schema":{"action_group_id":{"type":"TypeString","required":true},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_action_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"suppression":{"type":"TypeList","required":true,"elem":{"schema":{"recurrence_type":{"type":"TypeString","required":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"end_date_utc":{"type":"TypeString","required":true},"recurrence_monthly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeInt"},"minItems":1},"recurrence_weekly":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"start_date_utc":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_activity_log_alert":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"caller":{"type":"TypeString","optional":true},"category":{"type":"TypeString","required":true},"level":{"type":"TypeString","optional":true},"levels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"operation_name":{"type":"TypeString","optional":true},"recommendation_category":{"type":"TypeString","optional":true},"recommendation_impact":{"type":"TypeString","optional":true},"recommendation_type":{"type":"TypeString","optional":true},"resource_group":{"type":"TypeString","optional":true},"resource_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"previous":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reason":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_id":{"type":"TypeString","optional":true},"resource_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_provider":{"type":"TypeString","optional":true},"resource_providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_type":{"type":"TypeString","optional":true},"resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"service_health":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"services":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"status":{"type":"TypeString","optional":true},"statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"sub_status":{"type":"TypeString","optional":true},"sub_statuses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_action_group":{"schema":{"add_action_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_processing_rule_suppression":{"schema":{"condition":{"type":"TypeList","optional":true,"elem":{"schema":{"alert_context":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_id":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"alert_rule_name":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"description":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_condition":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"monitor_service":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"severity":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signal_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_group":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"target_resource_type":{"type":"TypeList","optional":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"effective_from":{"type":"TypeString","optional":true},"effective_until":{"type":"TypeString","optional":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"daily":{"type":"TypeList","optional":true,"elem":{"schema":{"end_time":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","required":true}}}},"monthly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_month":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}},"weekly":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"end_time":{"type":"TypeString","optional":true},"start_time":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"time_zone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_alert_prometheus_rule_group":{"schema":{"cluster_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"interval":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","required":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"action_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":5},"alert":{"type":"TypeString","optional":true},"alert_resolution":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_resolved":{"type":"TypeBool","optional":true},"time_to_resolve":{"type":"TypeString","optional":true}}},"maxItems":1},"annotations":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"expression":{"type":"TypeString","required":true},"for":{"type":"TypeString","optional":true},"labels":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"record":{"type":"TypeString","optional":true},"severity":{"type":"TypeInt","optional":true}}}},"rule_group_enabled":{"type":"TypeBool","optional":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_autoscale_setting":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"notification":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"send_to_subscription_administrator":{"type":"TypeBool","optional":true,"default":false},"send_to_subscription_co_administrator":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"webhook":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"service_uri":{"type":"TypeString","required":true}}}}}},"maxItems":1},"predictive":{"type":"TypeList","optional":true,"elem":{"schema":{"look_ahead_time":{"type":"TypeString","optional":true},"scale_mode":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"profile":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeList","required":true,"elem":{"schema":{"default":{"type":"TypeInt","required":true},"maximum":{"type":"TypeInt","required":true},"minimum":{"type":"TypeInt","required":true}}},"maxItems":1},"fixed_date":{"type":"TypeList","optional":true,"elem":{"schema":{"end":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"name":{"type":"TypeString","required":true},"recurrence":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hours":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"minutes":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"default":"UTC"}}},"maxItems":1},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","required":true,"elem":{"schema":{"dimensions":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"divide_by_instance_count":{"type":"TypeBool","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","optional":true},"metric_resource_id":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"statistic":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","required":true},"time_window":{"type":"TypeString","required":true}}},"maxItems":1},"scale_action":{"type":"TypeList","required":true,"elem":{"schema":{"cooldown":{"type":"TypeString","required":true},"direction":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":10}}},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_flow":{"type":"TypeList","required":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"output_stream":{"type":"TypeString","optional":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"transform_kql":{"type":"TypeString","optional":true}}},"minItems":1},"data_sources":{"type":"TypeList","optional":true,"elem":{"schema":{"data_import":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","required":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"stream":{"type":"TypeString","required":true}}}}}},"maxItems":1},"extension":{"type":"TypeList","optional":true,"elem":{"schema":{"extension_json":{"type":"TypeString","optional":true},"extension_name":{"type":"TypeString","required":true},"input_data_sources":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"iis_log":{"type":"TypeList","optional":true,"elem":{"schema":{"log_directories":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"settings":{"type":"TypeList","optional":true,"elem":{"schema":{"text":{"type":"TypeList","required":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"performance_counter":{"type":"TypeList","optional":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"sampling_frequency_in_seconds":{"type":"TypeInt","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"prometheus_forwarder":{"type":"TypeList","optional":true,"elem":{"schema":{"label_include_filter":{"type":"TypeSet","optional":true,"elem":{"schema":{"label":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"syslog":{"type":"TypeList","optional":true,"elem":{"schema":{"facility_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"log_levels":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_event_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"x_path_queries":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"windows_firewall_log":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"streams":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"destinations":{"type":"TypeList","required":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}}},"monitor_account":{"type":"TypeList","optional":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}},"storage_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_blob_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true}}}},"storage_table_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_declaration":{"type":"TypeSet","optional":true,"elem":{"schema":{"column":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"stream_name":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_data_collection_rule_association":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","optional":true},"data_collection_rule_id":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"default":"configurationAccessEndpoint","forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_diagnostic_setting":{"schema":{"enabled_log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"eventhub_authorization_rule_id":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","optional":true},"log":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"category":{"type":"TypeString","optional":true},"category_group":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"log_analytics_destination_type":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","optional":true},"metric":{"type":"TypeSet","optional":true,"elem":{"schema":{"category":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_solution_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"locations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":0},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"servicebus_rule_id":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_metric_alert":{"schema":{"action":{"type":"TypeSet","optional":true,"elem":{"schema":{"action_group_id":{"type":"TypeString","required":true},"webhook_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"application_insights_web_test_location_availability_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"component_id":{"type":"TypeString","required":true},"failed_location_count":{"type":"TypeInt","required":true},"web_test_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"auto_mitigate":{"type":"TypeBool","optional":true,"default":true},"criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true,"default":false},"threshold":{"type":"TypeFloat","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"dynamic_criteria":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation":{"type":"TypeString","required":true},"alert_sensitivity":{"type":"TypeString","required":true},"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1}}}},"evaluation_failure_count":{"type":"TypeInt","optional":true,"default":4},"evaluation_total_count":{"type":"TypeInt","optional":true,"default":4},"ignore_data_before":{"type":"TypeString","optional":true},"metric_name":{"type":"TypeString","required":true},"metric_namespace":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"skip_metric_validation":{"type":"TypeBool","optional":true}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","optional":true,"default":"PT1M"},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1},"severity":{"type":"TypeInt","optional":true,"default":3},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_location":{"type":"TypeString","optional":true,"description":"The location of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"target_resource_type":{"type":"TypeString","optional":true,"description":"The resource type (e.g. Microsoft.Compute/virtualMachines) of the target pluginsdk. Required when using subscription, resource group scope or multiple scopes.","computed":true},"window_size":{"type":"TypeString","optional":true,"default":"PT5M"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scope":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_private_link_scoped_service":{"schema":{"linked_resource_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_group":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","optional":true},"email_subject":{"type":"TypeString","optional":true}}},"maxItems":1},"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":100},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeInt","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_type":{"type":"TypeString","optional":true,"default":"ResultCount"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"severity":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","optional":true},"time_window":{"type":"TypeInt","required":true},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"metric_trigger":{"type":"TypeList","optional":true,"elem":{"schema":{"metric_column":{"type":"TypeString","optional":true},"metric_trigger_type":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1},"operator":{"type":"TypeString","required":true},"threshold":{"type":"TypeFloat","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_alert_v2":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"action_groups":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"custom_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auto_mitigation_enabled":{"type":"TypeBool","optional":true,"default":false},"created_with_api_version":{"type":"TypeString","computed":true},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"failing_periods":{"type":"TypeList","optional":true,"elem":{"schema":{"minimum_failing_periods_to_trigger_alert":{"type":"TypeInt","required":true},"number_of_evaluation_periods":{"type":"TypeInt","required":true}}},"maxItems":1},"metric_measure_column":{"type":"TypeString","optional":true},"operator":{"type":"TypeString","required":true},"query":{"type":"TypeString","required":true},"resource_id_column":{"type":"TypeString","optional":true},"threshold":{"type":"TypeFloat","required":true},"time_aggregation_method":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"evaluation_frequency":{"type":"TypeString","optional":true},"is_a_legacy_log_analytics_rule":{"type":"TypeBool","computed":true},"is_workspace_alerts_storage_configured":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"mute_actions_after_alert_duration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_time_range_override":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"severity":{"type":"TypeInt","required":true},"skip_query_validation":{"type":"TypeBool","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_resource_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"window_duration":{"type":"TypeString","required":true},"workspace_alerts_storage_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeList","required":true,"elem":{"schema":{"dimension":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operator":{"type":"TypeString","optional":true,"default":"Include"},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","required":true}}},"maxItems":1},"data_source_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_smart_detector_alert_rule":{"schema":{"action_group":{"type":"TypeList","required":true,"elem":{"schema":{"email_subject":{"type":"TypeString","optional":true},"ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"webhook_payload":{"type":"TypeString","optional":true}}},"maxItems":1},"description":{"type":"TypeString","optional":true},"detector_type":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"frequency":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope_resource_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"severity":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throttling_duration":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_monitor_workspace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database":{"schema":{"auto_pause_delay_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"creation_source_database_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"elastic_pool_id":{"type":"TypeString","optional":true},"geo_backup_enabled":{"type":"TypeBool","optional":true,"default":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"ledger_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"license_type":{"type":"TypeString","optional":true,"computed":true},"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"maintenance_configuration_name":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeInt","optional":true,"computed":true},"min_capacity":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_replica_count":{"type":"TypeInt","optional":true,"computed":true},"read_scale":{"type":"TypeBool","optional":true,"computed":true},"recover_database_id":{"type":"TypeString","optional":true},"restore_dropped_database_id":{"type":"TypeString","optional":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"sample_name":{"type":"TypeString","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backup_interval_in_hours":{"type":"TypeInt","optional":true,"default":12},"retention_days":{"type":"TypeInt","required":true}}},"maxItems":1},"sku_name":{"type":"TypeString","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Geo"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"transparent_data_encryption_enabled":{"type":"TypeBool","optional":true,"default":true},"zone_redundant":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_database_extended_auditing_policy":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_database_vulnerability_assessment_rule_baseline":{"schema":{"baseline_name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"baseline_result":{"type":"TypeSet","required":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"database_name":{"type":"TypeString","required":true,"forceNew":true},"rule_id":{"type":"TypeString","required":true,"forceNew":true},"server_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"max_size_bytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_gb":{"type":"TypeFloat","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"per_database_settings":{"type":"TypeList","required":true,"elem":{"schema":{"max_capacity":{"type":"TypeFloat","required":true},"min_capacity":{"type":"TypeFloat","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"family":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_server":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}},"minItems":1},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"computed":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_job_agent":{"schema":{"database_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_job_credential":{"schema":{"job_agent_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_managed_database":{"schema":{"long_term_retention_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"monthly_retention":{"type":"TypeString","optional":true,"computed":true},"week_of_year":{"type":"TypeInt","optional":true,"computed":true},"weekly_retention":{"type":"TypeString","optional":true,"computed":true},"yearly_retention":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"short_term_retention_days":{"type":"TypeInt","optional":true,"default":7}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_configuration_name":{"type":"TypeString","optional":true,"default":"SQL_Default"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_mssql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true},"login_username":{"type":"TypeString","required":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_managed_instance_vulnerability_assessment":{"schema":{"managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":true},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_outbound_firewall_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"azuread_administrator":{"type":"TypeList","optional":true,"elem":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login_username":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1,"minItems":1},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_network_restriction_enabled":{"type":"TypeBool","optional":true,"default":false},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true,"computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transparent_data_encryption_key_vault_key_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_server_dns_alias":{"schema":{"dns_record":{"type":"TypeString","computed":true},"mssql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10}},"azurerm_mssql_server_extended_auditing_policy":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_account_subscription_id":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_microsoft_support_auditing_policy":{"schema":{"blob_storage_endpoint":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_subscription_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"server_name":{"type":"TypeString","required":true,"forceNew":true},"state":{"type":"TypeString","required":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_transparent_data_encryption":{"schema":{"auto_rotation_enabled":{"type":"TypeBool","optional":true,"default":false},"key_vault_key_id":{"type":"TypeString","optional":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_server_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"server_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_machine":{"schema":{"assessment":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"run_immediately":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"monthly_occurrence":{"type":"TypeInt","optional":true},"start_time":{"type":"TypeString","required":true},"weekly_interval":{"type":"TypeInt","optional":true}}},"maxItems":1}}},"maxItems":1},"auto_backup":{"type":"TypeList","optional":true,"elem":{"schema":{"encryption_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption_password":{"type":"TypeString","optional":true},"manual_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"full_backup_frequency":{"type":"TypeString","required":true},"full_backup_start_hour":{"type":"TypeInt","required":true},"full_backup_window_in_hours":{"type":"TypeInt","required":true},"log_backup_frequency_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"retention_period_in_days":{"type":"TypeInt","required":true},"storage_account_access_key":{"type":"TypeString","required":true},"storage_blob_endpoint":{"type":"TypeString","required":true},"system_databases_backup_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"auto_patching":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window_duration_in_minutes":{"type":"TypeInt","required":true},"maintenance_window_starting_hour":{"type":"TypeInt","required":true}}},"maxItems":1},"key_vault_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_url":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"service_principal_name":{"type":"TypeString","required":true,"forceNew":true},"service_principal_secret":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"r_services_enabled":{"type":"TypeBool","optional":true},"sql_connectivity_port":{"type":"TypeInt","optional":true,"default":1433},"sql_connectivity_type":{"type":"TypeString","optional":true,"default":"PRIVATE"},"sql_connectivity_update_password":{"type":"TypeString","optional":true},"sql_connectivity_update_username":{"type":"TypeString","optional":true},"sql_instance":{"type":"TypeList","optional":true,"elem":{"schema":{"adhoc_workloads_optimization_enabled":{"type":"TypeBool","optional":true,"default":false},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"instant_file_initialization_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"lock_pages_in_memory_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"max_dop":{"type":"TypeInt","optional":true,"default":0},"max_server_memory_mb":{"type":"TypeInt","optional":true,"default":2147483647},"min_server_memory_mb":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"sql_license_type":{"type":"TypeString","optional":true,"forceNew":true},"sql_virtual_machine_group_id":{"type":"TypeString","optional":true},"storage_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"data_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"disk_type":{"type":"TypeString","required":true},"log_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"default_file_path":{"type":"TypeString","required":true},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1},"storage_workload_type":{"type":"TypeString","required":true},"system_db_on_data_disk_enabled":{"type":"TypeBool","optional":true,"default":false},"temp_db_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"data_file_count":{"type":"TypeInt","optional":true,"default":8},"data_file_growth_in_mb":{"type":"TypeInt","optional":true,"default":512},"data_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"default_file_path":{"type":"TypeString","required":true},"log_file_growth_mb":{"type":"TypeInt","optional":true,"default":512},"log_file_size_mb":{"type":"TypeInt","optional":true,"default":256},"luns":{"type":"TypeList","required":true,"elem":{"type":"TypeInt"}}}},"maxItems":1}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"wsfc_domain_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"cluster_bootstrap_account_password":{"type":"TypeString","required":true},"cluster_operator_account_password":{"type":"TypeString","required":true},"sql_service_account_password":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mssql_virtual_machine_availability_group_listener":{"schema":{"availability_group_name":{"type":"TypeString","optional":true,"forceNew":true},"load_balancer_configuration":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"load_balancer_id":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"probe_port":{"type":"TypeInt","required":true,"forceNew":true},"sql_virtual_machine_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"multi_subnet_ip_configuration":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"port":{"type":"TypeInt","optional":true,"forceNew":true},"replica":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"schema":{"commit":{"type":"TypeString","required":true,"forceNew":true},"failover_mode":{"type":"TypeString","required":true,"forceNew":true},"readable_secondary":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","required":true,"forceNew":true},"sql_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}}}},"sql_virtual_machine_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_mssql_virtual_machine_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_image_offer":{"type":"TypeString","required":true,"forceNew":true},"sql_image_sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"wsfc_domain_profile":{"type":"TypeList","required":true,"elem":{"schema":{"cluster_bootstrap_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_operator_account_name":{"type":"TypeString","optional":true,"forceNew":true},"cluster_subnet_type":{"type":"TypeString","required":true,"forceNew":true},"fqdn":{"type":"TypeString","required":true,"forceNew":true},"organizational_unit_path":{"type":"TypeString","optional":true,"forceNew":true},"sql_service_account_name":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_primary_key":{"type":"TypeString","optional":true},"storage_account_url":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mssql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_password":{"type":"TypeString","optional":true},"backup_retention_days":{"type":"TypeInt","optional":true,"default":7},"create_mode":{"type":"TypeString","optional":true,"forceNew":true},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"io_scaling_enabled":{"type":"TypeBool","optional":true,"default":false},"iops":{"type":"TypeInt","optional":true,"computed":true},"size_gb":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_flexible_server_active_directory_administrator":{"schema":{"identity_id":{"type":"TypeString","required":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_mysql_virtual_network_rule":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"Standard"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_nat_gateway_public_ip_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_nat_gateway_public_ip_prefix_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_netapp_account":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"domain":{"type":"TypeString","required":true},"organizational_unit":{"type":"TypeString","optional":true},"password":{"type":"TypeString","required":true},"smb_server_name":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"qos_type":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"size_in_tb":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"daily_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"hourly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"monthly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","required":true,"elem":{"type":"TypeInt"},"maxItems":30},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":7},"hour":{"type":"TypeInt","required":true},"minute":{"type":"TypeInt","required":true},"snapshots_to_keep":{"type":"TypeInt","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"azure_vmware_data_store_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"create_from_snapshot_resource_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true,"forceNew":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_clients":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"protocols_enabled":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"root_access_enabled":{"type":"TypeBool","optional":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true},"unix_read_write":{"type":"TypeBool","optional":true}}},"maxItems":5},"location":{"type":"TypeString","required":true,"forceNew":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_features":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"pool_name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_style":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","optional":true,"computed":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","optional":true,"computed":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true,"forceNew":true},"application_identifier":{"type":"TypeString","required":true,"forceNew":true},"group_description":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","required":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","required":true,"forceNew":true},"data_protection_replication":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","optional":true,"default":"dst"},"remote_volume_location":{"type":"TypeString","required":true},"remote_volume_resource_id":{"type":"TypeString","required":true},"replication_frequency":{"type":"TypeString","required":true}}},"maxItems":1},"data_protection_snapshot_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","required":true}}},"maxItems":1},"export_policy_rule":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","required":true},"nfsv41_enabled":{"type":"TypeBool","required":true},"root_access_enabled":{"type":"TypeBool","optional":true,"default":true},"rule_index":{"type":"TypeInt","required":true},"unix_read_only":{"type":"TypeBool","optional":true,"default":false},"unix_read_write":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":5,"minItems":1},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"protocols":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1,"minItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"security_style":{"type":"TypeString","required":true,"forceNew":true},"service_level":{"type":"TypeString","required":true,"forceNew":true},"snapshot_directory_visible":{"type":"TypeBool","required":true,"forceNew":true},"storage_quota_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","required":true,"forceNew":true},"volume_spec_name":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":5,"minItems":2}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_netapp_volume_quota_rule":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota_size_in_kib":{"type":"TypeInt","required":true},"quota_target":{"type":"TypeString","optional":true,"forceNew":true},"quota_type":{"type":"TypeString","required":true,"forceNew":true},"volume_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":120,"update":120}},"azurerm_network_connection_monitor":{"schema":{"endpoint":{"type":"TypeSet","required":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"coverage_level":{"type":"TypeString","optional":true},"excluded_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"item":{"type":"TypeSet","optional":true,"elem":{"schema":{"address":{"type":"TypeString","optional":true},"type":{"type":"TypeString","optional":true,"default":"AgentAddress"}}}},"type":{"type":"TypeString","optional":true,"default":"Include"}}},"maxItems":1},"included_ip_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_resource_id":{"type":"TypeString","optional":true,"computed":true},"target_resource_type":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"notes":{"type":"TypeString","optional":true},"output_workspace_resource_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"test_configuration":{"type":"TypeSet","required":true,"elem":{"schema":{"http_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"method":{"type":"TypeString","optional":true,"default":"Get"},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","optional":true},"prefer_https":{"type":"TypeBool","optional":true,"default":false},"request_header":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"valid_status_code_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"icmp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"preferred_ip_version":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true},"success_threshold":{"type":"TypeList","optional":true,"elem":{"schema":{"checks_failed_percent":{"type":"TypeInt","optional":true},"round_trip_time_ms":{"type":"TypeFloat","optional":true}}},"maxItems":1},"tcp_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"destination_port_behavior":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"trace_route_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"test_frequency_in_seconds":{"type":"TypeInt","optional":true,"default":60}}}},"test_group":{"type":"TypeSet","required":true,"elem":{"schema":{"destination_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"source_endpoints":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"test_configuration_names":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_function_azure_traffic_collector":{"schema":{"collector_policy_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auxiliary_mode":{"type":"TypeString","optional":true},"auxiliary_sku":{"type":"TypeString","optional":true},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"internal_dns_name_label":{"type":"TypeString","optional":true,"computed":true},"internal_domain_name_suffix":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"computed":true},"private_ip_address":{"type":"TypeString","optional":true,"computed":true},"private_ip_address_allocation":{"type":"TypeString","required":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"public_ip_address_id":{"type":"TypeString","optional":true},"subnet_id":{"type":"TypeString","optional":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_gateway_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_backend_address_pool_association":{"schema":{"backend_address_pool_id":{"type":"TypeString","required":true,"forceNew":true},"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_nat_rule_association":{"schema":{"ip_configuration_name":{"type":"TypeString","required":true,"forceNew":true},"nat_rule_id":{"type":"TypeString","required":true,"forceNew":true},"network_interface_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_interface_security_group_association":{"schema":{"network_interface_id":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager":{"schema":{"cross_tenant_scopes":{"type":"TypeList","computed":true,"elem":{"schema":{"management_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subscriptions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scope":{"type":"TypeList","required":true,"elem":{"schema":{"management_group_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"scope_accesses":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule":{"schema":{"action":{"type":"TypeString","required":true},"admin_rule_collection_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"destination_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"address_prefix_type":{"type":"TypeString","required":true}}}},"source_port_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_admin_rule_collection":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"security_admin_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_connectivity_configuration":{"schema":{"applies_to_group":{"type":"TypeList","required":true,"elem":{"schema":{"global_mesh_enabled":{"type":"TypeBool","optional":true},"group_connectivity":{"type":"TypeString","required":true},"network_group_id":{"type":"TypeString","required":true},"use_hub_gateway":{"type":"TypeBool","optional":true}}}},"connectivity_topology":{"type":"TypeString","required":true},"delete_existing_peering_enabled":{"type":"TypeBool","optional":true},"description":{"type":"TypeString","optional":true},"global_mesh_enabled":{"type":"TypeBool","optional":true},"hub":{"type":"TypeList","optional":true,"elem":{"schema":{"resource_id":{"type":"TypeString","required":true},"resource_type":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_deployment":{"schema":{"configuration_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"scope_access":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_network_manager_management_group_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"management_group_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_scope_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true},"target_scope_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_security_admin_configuration":{"schema":{"apply_on_network_intent_policy_based_services":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_manager_static_member":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"network_group_id":{"type":"TypeString","required":true,"forceNew":true},"region":{"type":"TypeString","computed":true},"target_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_network_manager_subscription_connection":{"schema":{"connection_state":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_manager_id":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_profile":{"schema":{"container_network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true}}},"maxItems":1},"container_network_interface_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_rule":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_security_rule":{"schema":{"access":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"destination_address_prefix":{"type":"TypeString","optional":true},"destination_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"destination_port_range":{"type":"TypeString","optional":true},"destination_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_address_prefix":{"type":"TypeString","optional":true},"source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"source_port_range":{"type":"TypeString","optional":true},"source_port_ranges":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_network_watcher_flow_log":{"schema":{"enabled":{"type":"TypeBool","required":true},"location":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_policy":{"type":"TypeList","required":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true},"enabled":{"type":"TypeBool","required":true}}},"maxItems":1},"storage_account_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_analytics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"interval_in_minutes":{"type":"TypeInt","optional":true,"default":60},"workspace_id":{"type":"TypeString","required":true},"workspace_region":{"type":"TypeString","required":true},"workspace_resource_id":{"type":"TypeString","required":true}}},"maxItems":1},"version":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_new_relic_monitor":{"schema":{"account_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"account_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ingestion_key":{"type":"TypeString","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"org_creation_source":{"type":"TypeString","optional":true,"default":"LIFTR","forceNew":true},"organization_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"plan":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"billing_cycle":{"type":"TypeString","optional":true,"default":"MONTHLY","forceNew":true},"effective_date":{"type":"TypeString","required":true,"forceNew":true},"plan_id":{"type":"TypeString","optional":true,"default":"newrelic-pay-as-you-go-free-live","forceNew":true},"usage_type":{"type":"TypeString","optional":true,"default":"PAYG","forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true,"forceNew":true},"first_name":{"type":"TypeString","required":true,"forceNew":true},"last_name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"user_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_new_relic_tag_rule":{"schema":{"activity_log_enabled":{"type":"TypeBool","optional":true,"default":false},"azure_active_directory_log_enabled":{"type":"TypeBool","optional":true,"default":false},"log_tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"metric_enabled":{"type":"TypeBool","optional":true,"default":false},"metric_tag_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"monitor_id":{"type":"TypeString","required":true,"forceNew":true},"subscription_log_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_nginx_certificate":{"schema":{"certificate_virtual_path":{"type":"TypeString","required":true},"key_vault_secret_id":{"type":"TypeString","required":true},"key_virtual_path":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":30}},"azurerm_nginx_configuration":{"schema":{"config_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"nginx_deployment_id":{"type":"TypeString","required":true,"forceNew":true},"package_data":{"type":"TypeString","optional":true},"protected_file":{"type":"TypeSet","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"virtual_path":{"type":"TypeString","required":true}}}},"root_file":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":10,"update":10}},"azurerm_nginx_deployment":{"schema":{"diagnose_support_enabled":{"type":"TypeBool","optional":true},"frontend_private":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}}},"frontend_public":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"ip_address":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logging_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"container_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}}},"managed_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"subnet_id":{"type":"TypeString","required":true}}}},"nginx_version":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"application_mode":{"type":"TypeString","required":true},"bundle_id":{"type":"TypeString","required":true},"key_id":{"type":"TypeString","required":true},"team_id":{"type":"TypeString","required":true},"token":{"type":"TypeString","required":true}}},"maxItems":1},"gcm_credential":{"type":"TypeList","optional":true,"elem":{"schema":{"api_key":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"notification_hub_name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_contact":{"schema":{"contact_profile_id":{"type":"TypeString","required":true,"forceNew":true},"ground_station_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"reservation_end_time":{"type":"TypeString","required":true,"forceNew":true},"reservation_start_time":{"type":"TypeString","required":true,"forceNew":true},"spacecraft_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_orbital_contact_profile":{"schema":{"auto_tracking":{"type":"TypeString","required":true},"event_hub_uri":{"type":"TypeString","optional":true},"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"channels":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"demodulation_configuration":{"type":"TypeString","optional":true},"end_point":{"type":"TypeSet","required":true,"elem":{"schema":{"end_point_name":{"type":"TypeString","required":true},"ip_address":{"type":"TypeString","optional":true},"port":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"modulation_configuration":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}},"minItems":1},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_elevation_degrees":{"type":"TypeFloat","optional":true},"minimum_variable_contact_duration":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_configuration_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orbital_spacecraft":{"schema":{"links":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"bandwidth_mhz":{"type":"TypeFloat","required":true},"center_frequency_mhz":{"type":"TypeFloat","required":true},"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"polarization":{"type":"TypeString","required":true}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"norad_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"title_line":{"type":"TypeString","required":true},"two_line_elements":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":2,"minItems":2}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version_enabled":{"type":"TypeBool","optional":true,"default":true},"extensions_to_provision_after_vm_creation":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"failure_suppression_enabled":{"type":"TypeBool","optional":true},"force_extension_execution_on_change":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","optional":true,"computed":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"os_profile":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_data":{"type":"TypeString","optional":true},"linux_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true,"forceNew":true},"admin_ssh_key":{"type":"TypeSet","optional":true,"elem":{"schema":{"public_key":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"disable_password_authentication":{"type":"TypeBool","optional":true,"default":true},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}}}},"maxItems":1},"windows_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"timezone":{"type":"TypeString","optional":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}}}},"maxItems":1}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","required":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"priority_mix":{"type":"TypeList","optional":true,"elem":{"schema":{"base_regular_count":{"type":"TypeInt","optional":true,"default":0},"regular_percentage_above_base":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"computed":true},"sku_name":{"type":"TypeString","optional":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"unique_id":{"type":"TypeString","computed":true},"user_data_base64":{"type":"TypeString","optional":true},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","optional":true},"anti_virus_profile":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"dns_subscription":{"type":"TypeString","optional":true},"file_blocking_profile":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"url_filtering_profile":{"type":"TypeString","optional":true},"vulnerability_profile":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_certificate":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"self_signed":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_fqdn_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"fully_qualified_domain_names":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_outbound_trust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_outbound_untrust_certificate_association":{"schema":{"certificate_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_palo_alto_local_rulestack_prefix_list":{"schema":{"audit_comment":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prefix_list":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_local_rulestack_rule":{"schema":{"action":{"type":"TypeString","required":true},"applications":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"audit_comment":{"type":"TypeString","optional":true},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"custom_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1,"minItems":1},"decryption_rule_type":{"type":"TypeString","optional":true,"default":"None"},"description":{"type":"TypeString","optional":true},"destination":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_fqdn_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"inspection_certificate_id":{"type":"TypeString","optional":true},"logging_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"negate_destination":{"type":"TypeBool","optional":true,"default":false},"negate_source":{"type":"TypeBool","optional":true,"default":false},"priority":{"type":"TypeInt","required":true,"forceNew":true},"protocol":{"type":"TypeString","optional":true,"default":"application-default"},"protocol_ports":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"rulestack_id":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","required":true,"elem":{"schema":{"cidrs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"countries":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"feeds":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"local_rulestack_prefix_list_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1,"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_hub_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"network_virtual_appliance_id":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trusted_subnet_id":{"type":"TypeString","computed":true},"untrusted_subnet_id":{"type":"TypeString","computed":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_local_rulestack":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rulestack_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":120,"update":120}},"azurerm_palo_alto_next_generation_firewall_virtual_network_panorama":{"schema":{"destination_nat":{"type":"TypeList","optional":true,"elem":{"schema":{"backend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address":{"type":"TypeString","required":true}}},"maxItems":1},"frontend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"public_ip_address_id":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","required":true}}}},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":2},"use_azure_dns":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeList","required":true,"elem":{"schema":{"egress_nat_ip_address_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"egress_nat_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vnet_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"ip_of_trust_for_user_defined_routes":{"type":"TypeString","computed":true},"trusted_subnet_id":{"type":"TypeString","optional":true},"untrusted_subnet_id":{"type":"TypeString","optional":true},"virtual_network_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"panorama":{"type":"TypeList","computed":true,"elem":{"schema":{"device_group_name":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"panorama_server_1":{"type":"TypeString","computed":true},"panorama_server_2":{"type":"TypeString","computed":true},"template_name":{"type":"TypeString","computed":true},"virtual_machine_ssh_key":{"type":"TypeString","computed":true}}}},"panorama_base64_config":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_palo_alto_virtual_network_appliance":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_active_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"The ticket details.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_pim_eligible_role_assignment":{"schema":{"justification":{"type":"TypeString","optional":true,"description":"The justification of the eligible role assignment.","forceNew":true},"principal_id":{"type":"TypeString","required":true,"description":"The principal id.","forceNew":true},"principal_type":{"type":"TypeString","description":"The type of principal.","computed":true},"role_definition_id":{"type":"TypeString","required":true,"description":"The role definition id.","forceNew":true},"schedule":{"type":"TypeList","optional":true,"description":"The schedule details of this eligible role assignment.","forceNew":true,"elem":{"schema":{"expiration":{"type":"TypeList","optional":true,"elem":{"schema":{"duration_days":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in days.","computed":true,"forceNew":true},"duration_hours":{"type":"TypeInt","optional":true,"description":"The duration of the assignment in hours.","computed":true,"forceNew":true},"end_date_time":{"type":"TypeString","optional":true,"description":"The end date time of the assignment.","computed":true,"forceNew":true}}},"maxItems":1},"start_date_time":{"type":"TypeString","optional":true,"description":"The start date time.","computed":true,"forceNew":true}}},"maxItems":1},"scope":{"type":"TypeString","required":true,"description":"The scope.","forceNew":true},"ticket":{"type":"TypeList","optional":true,"description":"Ticket details relating to the assignment.","forceNew":true,"elem":{"schema":{"number":{"type":"TypeString","optional":true,"description":"The ticket number."},"system":{"type":"TypeString","optional":true,"description":"The ticket system."}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_point_to_site_vpn_gateway":{"schema":{"connection_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true},"route":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"elem":{"schema":{"ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"vpn_client_address_pool":{"type":"TypeList","required":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference_internet_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"scale_unit":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_rule":{"type":"TypeString","optional":true},"policy_type":{"type":"TypeString","required":true,"forceNew":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"management_group_id":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeString","optional":true},"policy_definition_group":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","optional":true},"category":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true}}}},"policy_definition_reference":{"type":"TypeList","required":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true},"policy_group_names":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","optional":true,"computed":true}}}},"policy_type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"configuration":{"type":"TypeList","required":true,"elem":{"schema":{"assignment_type":{"type":"TypeString","optional":true},"content_hash":{"type":"TypeString","optional":true,"computed":true},"content_uri":{"type":"TypeString","optional":true,"computed":true},"parameter":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_portal_tenant_configuration":{"schema":{"private_markdown_storage_enforced":{"type":"TypeBool","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_active_directory_administrator":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_database":{"schema":{"charset":{"type":"TypeString","required":true,"forceNew":true},"collation":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true},"administrator_password":{"type":"TypeString","optional":true},"authentication":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"active_directory_auth_enabled":{"type":"TypeBool","optional":true,"default":false},"password_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":false},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true},"customer_managed_key":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"geo_backup_key_vault_key_id":{"type":"TypeString","optional":true},"geo_backup_user_assigned_identity_id":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","optional":true},"primary_user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"delegated_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"high_availability":{"type":"TypeList","optional":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true},"standby_availability_zone":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"maintenance_window":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","optional":true,"default":0},"start_hour":{"type":"TypeInt","optional":true,"default":0},"start_minute":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"point_in_time_restore_time_in_utc":{"type":"TypeString","optional":true,"forceNew":true},"private_dns_zone_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replication_role":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","optional":true,"computed":true},"source_server_id":{"type":"TypeString","optional":true,"forceNew":true},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true},"zone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_flexible_server_active_directory_administrator":{"schema":{"object_id":{"type":"TypeString","required":true,"forceNew":true},"principal_name":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_configuration":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_flexible_server_database":{"schema":{"charset":{"type":"TypeString","optional":true,"default":"UTF8","forceNew":true},"collation":{"type":"TypeString","optional":true,"default":"en_US.utf8","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_postgresql_flexible_server_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"server_id":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","optional":true},"auto_grow_enabled":{"type":"TypeBool","optional":true,"default":true},"backup_retention_days":{"type":"TypeInt","optional":true,"computed":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_source_server_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_enforcement_enabled":{"type":"TypeBool","required":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","optional":true,"default":"TLS1_2"},"storage_mb":{"type":"TypeInt","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true},"retention_days":{"type":"TypeInt","optional":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_server_key":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_postgresql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_powerbi_embedded":{"schema":{"administrators":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","optional":true,"default":"Gen1","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"maxItems":20},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"default":"@","forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"exchange":{"type":"TypeString","required":true},"preference":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"records":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"domain_name":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"target_dns_servers":{"type":"TypeList","required":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"port":{"type":"TypeInt","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","required":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"subnet_id":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_resolver_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true,"forceNew":true},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"port":{"type":"TypeInt","required":true},"priority":{"type":"TypeInt","required":true},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"record":{"type":"TypeSet","required":true,"elem":{"schema":{"value":{"type":"TypeString","required":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","required":true},"zone_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"soa_record":{"type":"TypeList","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"email":{"type":"TypeString","required":true},"expire_time":{"type":"TypeInt","optional":true,"default":2419200},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","optional":true,"default":10},"refresh_time":{"type":"TypeInt","optional":true,"default":3600},"retry_time":{"type":"TypeInt","optional":true,"default":300},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","optional":true,"default":3600}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_dns_zone_name":{"type":"TypeString","required":true,"forceNew":true},"registration_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_private_endpoint":{"schema":{"custom_dns_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"custom_network_interface_name":{"type":"TypeString","optional":true,"forceNew":true},"ip_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"member_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","optional":true,"forceNew":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_dns_zone_configs":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"record_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdn":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"type":{"type":"TypeString","computed":true}}}}}}},"private_dns_zone_group":{"type":"TypeList","optional":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_zone_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"private_service_connection":{"type":"TypeList","required":true,"elem":{"schema":{"is_manual_connection":{"type":"TypeBool","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_connection_resource_alias":{"type":"TypeString","optional":true,"forceNew":true},"private_connection_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"request_message":{"type":"TypeString","optional":true},"subresource_names":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_private_endpoint_application_security_group_association":{"schema":{"application_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","optional":true},"fqdns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nat_ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"primary":{"type":"TypeBool","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_address_version":{"type":"TypeString","optional":true,"default":"IPv4"},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":8},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_proximity_placement_group":{"schema":{"allowed_vm_sizes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","required":true},"ddos_protection_mode":{"type":"TypeString","optional":true,"default":"VirtualNetworkInherited"},"ddos_protection_plan_id":{"type":"TypeString","optional":true},"domain_name_label":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"default":4},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_fqdn":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"sku_tier":{"type":"TypeString","optional":true,"default":"Regional","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"ip_version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"prefix_length":{"type":"TypeInt","optional":true,"default":28,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Standard","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_purview_account":{"schema":{"atlas_kafka_endpoint_primary_connection_string":{"type":"TypeString","computed":true},"atlas_kafka_endpoint_secondary_connection_string":{"type":"TypeString","computed":true},"catalog_endpoint":{"type":"TypeString","computed":true},"guardian_endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_resources":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_namespace_id":{"type":"TypeString","computed":true},"resource_group_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scan_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_recovery_services_vault":{"schema":{"classic_vmware_replication_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"cross_region_restore_enabled":{"type":"TypeBool","optional":true,"default":false},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"infrastructure_encryption_enabled":{"type":"TypeBool","required":true},"key_id":{"type":"TypeString","required":true},"use_system_assigned_identity":{"type":"TypeBool","optional":true,"default":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"monitoring":{"type":"TypeList","optional":true,"elem":{"schema":{"alerts_for_all_job_failures_enabled":{"type":"TypeBool","optional":true,"default":true},"alerts_for_critical_operation_failures_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"soft_delete_enabled":{"type":"TypeBool","optional":true,"default":true},"storage_mode_type":{"type":"TypeString","optional":true,"default":"GeoRedundant"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":120,"read":5,"delete":30,"update":60}},"azurerm_recovery_services_vault_resource_guard_association":{"schema":{"name":{"type":"TypeString","optional":true,"default":"VaultProxy","forceNew":true},"resource_guard_id":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","required":true},"enable_non_ssl_port":{"type":"TypeBool","optional":true,"default":false},"family":{"type":"TypeString","required":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"patch_schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"maintenance_window":{"type":"TypeString","optional":true,"default":"PT5H"},"start_hour_utc":{"type":"TypeInt","optional":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"redis_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","optional":true},"aof_storage_connection_string_0":{"type":"TypeString","optional":true},"aof_storage_connection_string_1":{"type":"TypeString","optional":true},"enable_authentication":{"type":"TypeBool","optional":true,"default":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_delta":{"type":"TypeInt","optional":true,"computed":true},"maxmemory_policy":{"type":"TypeString","optional":true,"default":"volatile-lru"},"maxmemory_reserved":{"type":"TypeInt","optional":true,"computed":true},"notify_keyspace_events":{"type":"TypeString","optional":true},"rdb_backup_enabled":{"type":"TypeBool","optional":true},"rdb_backup_frequency":{"type":"TypeInt","optional":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","optional":true},"rdb_storage_connection_string":{"type":"TypeString","optional":true}}},"maxItems":1},"redis_version":{"type":"TypeString","optional":true,"computed":true},"replicas_per_master":{"type":"TypeInt","optional":true,"computed":true},"replicas_per_primary":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","optional":true},"sku_name":{"type":"TypeString","required":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_redis_enterprise_cluster":{"schema":{"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_enterprise_database":{"schema":{"client_protocol":{"type":"TypeString","optional":true,"default":"Encrypted","forceNew":true},"cluster_id":{"type":"TypeString","required":true,"forceNew":true},"clustering_policy":{"type":"TypeString","optional":true,"default":"OSSCluster","forceNew":true},"eviction_policy":{"type":"TypeString","optional":true,"default":"VolatileLRU","forceNew":true},"linked_database_group_nickname":{"type":"TypeString","optional":true,"forceNew":true},"linked_database_id":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":5},"module":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"args":{"type":"TypeString","optional":true,"default":"","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","computed":true}}},"maxItems":4},"name":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"port":{"type":"TypeInt","optional":true,"default":10000,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_firewall_rule":{"schema":{"end_ip":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"redis_cache_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_redis_linked_server":{"schema":{"linked_redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"linked_redis_cache_location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_role":{"type":"TypeString","required":true,"forceNew":true},"target_redis_cache_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_relay_hybrid_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"relay_namespace_name":{"type":"TypeString","required":true,"forceNew":true},"requires_client_authorization":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"user_metadata":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_hybrid_connection_authorization_rule":{"schema":{"hybrid_connection_name":{"type":"TypeString","required":true,"forceNew":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_relay_namespace":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"metric_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":60,"update":30}},"azurerm_relay_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_cli":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_deployment_script_azure_power_shell":{"schema":{"cleanup_preference":{"type":"TypeString","optional":true,"default":"Always","forceNew":true},"command_line":{"type":"TypeString","optional":true,"forceNew":true},"container":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"container_group_name":{"type":"TypeString","optional":true}}},"maxItems":1},"environment_variable":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"secure_value":{"type":"TypeString","optional":true},"value":{"type":"TypeString","optional":true}}}},"force_update_tag":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"forceNew":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeString","computed":true},"primary_script_uri":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"retention_interval":{"type":"TypeString","required":true,"forceNew":true},"script_content":{"type":"TypeString","optional":true,"forceNew":true},"storage_account":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"key":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"supporting_script_uris":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timeout":{"type":"TypeString","optional":true,"default":"P1D","forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_by":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_resource_group_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_group_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_resource_management_private_link":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_resource_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_resource_provider_registration":{"schema":{"feature":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"registered":{"type":"TypeBool","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":120,"read":5,"delete":30,"update":120}},"azurerm_role_assignment":{"schema":{"condition":{"type":"TypeString","optional":true,"forceNew":true},"condition_version":{"type":"TypeString","optional":true,"forceNew":true},"delegated_managed_identity_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"principal_id":{"type":"TypeString","required":true,"forceNew":true},"principal_type":{"type":"TypeString","computed":true},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scope":{"type":"TypeString","required":true,"forceNew":true},"skip_service_principal_aad_check":{"type":"TypeBool","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"permissions":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"role_definition_resource_id":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":60}},"azurerm_route":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route_table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"access":{"type":"TypeString","required":true},"communities":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true},"rule_type":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_map":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeList","required":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true}}}},"match_criterion":{"type":"TypeList","optional":true,"elem":{"schema":{"as_path":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"community":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_condition":{"type":"TypeString","required":true},"route_prefix":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"next_step_if_matched":{"type":"TypeString","optional":true,"default":"Unknown"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_route_server":{"schema":{"branch_to_branch_traffic_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_route_server_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"route_server_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_route_table":{"schema":{"disable_bgp_route_propagation":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop_in_ip_address":{"type":"TypeString","optional":true},"next_hop_type":{"type":"TypeString","required":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_search_service":{"schema":{"allowed_ips":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"authentication_failure_mode":{"type":"TypeString","optional":true},"customer_managed_key_enforcement_enabled":{"type":"TypeBool","optional":true,"default":false},"hosting_mode":{"type":"TypeString","optional":true,"default":"default","forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_authentication_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_count":{"type":"TypeInt","optional":true,"default":1},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","optional":true,"default":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_search_shared_private_link_service":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"search_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_assessment":{"schema":{"additional_data":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"assessment_policy_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeList","required":true,"elem":{"schema":{"cause":{"type":"TypeString","optional":true},"code":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true}}},"maxItems":1},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_assessment_policy":{"schema":{"categories":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"implementation_effort":{"type":"TypeString","optional":true},"name":{"type":"TypeString","computed":true},"remediation_description":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true,"default":"Medium"},"threats":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"user_impact":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_auto_provisioning":{"schema":{"auto_provision":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_automation":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"resource_id":{"type":"TypeString","required":true},"trigger_url":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"minItems":1},"description":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scopes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"source":{"type":"TypeList","required":true,"elem":{"schema":{"event_source":{"type":"TypeString","required":true},"rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule":{"type":"TypeList","required":true,"elem":{"schema":{"expected_value":{"type":"TypeString","required":true},"operator":{"type":"TypeString","required":true},"property_path":{"type":"TypeString","required":true},"property_type":{"type":"TypeString","required":true}}}}}}}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_security_center_contact":{"schema":{"alert_notifications":{"type":"TypeBool","required":true},"alerts_to_admins":{"type":"TypeBool","required":true},"email":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"default":"default1"},"phone":{"type":"TypeString","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_server_vulnerability_assessment":{"schema":{"hybrid_machine_id":{"type":"TypeString","optional":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_server_vulnerability_assessment_virtual_machine":{"schema":{"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":5,"read":5,"delete":10}},"azurerm_security_center_setting":{"schema":{"enabled":{"type":"TypeBool","required":true},"setting_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":10,"read":5,"delete":10,"update":10}},"azurerm_security_center_subscription_pricing":{"schema":{"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_extension_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}}},"resource_type":{"type":"TypeString","optional":true,"default":"VirtualMachines"},"subplan":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_security_center_workspace":{"schema":{"scope":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sentinel_alert_rule_anomaly_built_in":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_anomaly_duplicate":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"built_in_rule_id":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","required":true},"frequency":{"type":"TypeString","computed":true},"is_default_settings":{"type":"TypeBool","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"mode":{"type":"TypeString","required":true},"multi_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true},"prioritized_exclude_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"prioritize":{"type":"TypeString","optional":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","required":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_sentinel_alert_rule_fusion":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"sub_type":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true},"severities_allowed":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}}}}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_machine_learning_behavior_analytics":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_ms_security_incident":{"schema":{"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"display_name_exclude_filter":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"display_name_filter":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"minItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"product_filter":{"type":"TypeString","required":true},"severity_filter":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_nrt":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident_enabled":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_scheduled":{"schema":{"alert_details_override":{"type":"TypeList","optional":true,"elem":{"schema":{"description_format":{"type":"TypeString","optional":true},"display_name_format":{"type":"TypeString","optional":true},"dynamic_property":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"severity_column_name":{"type":"TypeString","optional":true},"tactics_column_name":{"type":"TypeString","optional":true}}}},"alert_rule_template_guid":{"type":"TypeString","optional":true,"forceNew":true},"alert_rule_template_version":{"type":"TypeString","optional":true,"forceNew":true},"custom_details":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"entity_type":{"type":"TypeString","required":true},"field_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true},"identifier":{"type":"TypeString","required":true}}},"maxItems":3}}},"maxItems":5},"event_grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"aggregation_method":{"type":"TypeString","required":true}}},"maxItems":1},"incident_configuration":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"create_incident":{"type":"TypeBool","required":true},"grouping":{"type":"TypeList","required":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"entity_matching_method":{"type":"TypeString","optional":true,"default":"AnyAlert"},"group_by_alert_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_custom_details":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"group_by_entities":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"lookback_duration":{"type":"TypeString","optional":true,"default":"PT5M"},"reopen_closed_incidents":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1}}},"maxItems":1,"minItems":1},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query":{"type":"TypeString","required":true},"query_frequency":{"type":"TypeString","optional":true,"default":"PT5H"},"query_period":{"type":"TypeString","optional":true,"default":"PT5H"},"sentinel_entity_mapping":{"type":"TypeList","optional":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true}}},"maxItems":5},"severity":{"type":"TypeString","required":true},"suppression_duration":{"type":"TypeString","optional":true,"default":"PT5H"},"suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"tactics":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","optional":true,"default":"GreaterThan"},"trigger_threshold":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_alert_rule_threat_intelligence":{"schema":{"alert_rule_template_guid":{"type":"TypeString","required":true,"forceNew":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_automation_rule":{"schema":{"action_incident":{"type":"TypeList","optional":true,"elem":{"schema":{"classification":{"type":"TypeString","optional":true},"classification_comment":{"type":"TypeString","optional":true},"labels":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"owner_id":{"type":"TypeString","optional":true},"severity":{"type":"TypeString","optional":true},"status":{"type":"TypeString","optional":true}}}},"action_playbook":{"type":"TypeList","optional":true,"elem":{"schema":{"logic_app_id":{"type":"TypeString","required":true},"order":{"type":"TypeInt","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"condition":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"operator":{"type":"TypeString","required":true},"property":{"type":"TypeString","required":true},"values":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"condition_json":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"expiration":{"type":"TypeString","optional":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"order":{"type":"TypeInt","required":true},"triggers_on":{"type":"TypeString","optional":true,"default":"Incidents"},"triggers_when":{"type":"TypeString","optional":true,"default":"Created"}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_sentinel_data_connector_aws_cloud_trail":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_aws_s3":{"schema":{"aws_role_arn":{"type":"TypeString","required":true},"destination_table":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sqs_urls":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_azure_active_directory":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_azure_security_center":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_dynamics_365":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_iot":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_cloud_app_security":{"schema":{"alerts_enabled":{"type":"TypeBool","optional":true,"default":true},"discovery_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_microsoft_defender_advanced_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_intelligence":{"schema":{"bing_safety_phishing_url_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"microsoft_emerging_threat_feed_lookback_date":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_microsoft_threat_protection":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_365":{"schema":{"exchange_enabled":{"type":"TypeBool","optional":true,"default":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sharepoint_enabled":{"type":"TypeBool","optional":true,"default":true},"teams_enabled":{"type":"TypeBool","optional":true,"default":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_data_connector_office_365_project":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_atp":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_irm":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_office_power_bi":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_data_connector_threat_intelligence_taxii":{"schema":{"api_root_url":{"type":"TypeString","required":true},"collection_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","required":true},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"lookback_date":{"type":"TypeString","optional":true,"default":"1970-01-01T00:00:00Z"},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"polling_frequency":{"type":"TypeString","optional":true,"default":"OnceAnHour"},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"user_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_log_analytics_workspace_onboarding":{"schema":{"customer_managed_key_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"workspace_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_metadata":{"schema":{"author":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"category":{"type":"TypeList","optional":true,"elem":{"schema":{"domains":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verticals":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"content_id":{"type":"TypeString","required":true},"content_schema_version":{"type":"TypeString","optional":true,"default":"2.0"},"custom_version":{"type":"TypeString","optional":true},"dependency":{"type":"TypeString","optional":true},"first_publish_date":{"type":"TypeString","optional":true},"icon_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"last_publish_date":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"parent_id":{"type":"TypeString","required":true},"preview_images":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"preview_images_dark":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"providers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"source":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true}}},"maxItems":1},"support":{"type":"TypeList","optional":true,"elem":{"schema":{"email":{"type":"TypeString","optional":true},"link":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"tier":{"type":"TypeString","required":true}}},"maxItems":1},"threat_analysis_tactics":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_analysis_techniques":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_threat_intelligence_indicator":{"schema":{"confidence":{"type":"TypeInt","optional":true,"default":-1},"created_by":{"type":"TypeString","optional":true},"created_on":{"type":"TypeString","computed":true},"defanged":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","required":true},"extension":{"type":"TypeString","optional":true,"computed":true},"external_id":{"type":"TypeString","computed":true},"external_last_updated_time_utc":{"type":"TypeString","computed":true},"external_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"hashes":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"source_name":{"type":"TypeString","optional":true},"url":{"type":"TypeString","optional":true}}}},"granular_marking":{"type":"TypeList","optional":true,"elem":{"schema":{"language":{"type":"TypeString","optional":true},"marking_ref":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"guid":{"type":"TypeString","computed":true},"indicator_type":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kill_chain_phase":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true}}}},"language":{"type":"TypeString","optional":true},"last_updated_time_utc":{"type":"TypeString","computed":true},"object_marking_refs":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"parsed_pattern":{"type":"TypeList","computed":true,"elem":{"schema":{"pattern_type_key":{"type":"TypeString","computed":true},"pattern_type_values":{"type":"TypeList","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true},"value_type":{"type":"TypeString","computed":true}}}}}}},"pattern":{"type":"TypeString","required":true},"pattern_type":{"type":"TypeString","required":true},"pattern_version":{"type":"TypeString","optional":true},"revoked":{"type":"TypeBool","optional":true,"default":false},"source":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"threat_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"validate_from_utc":{"type":"TypeString","required":true},"validate_until_utc":{"type":"TypeString","optional":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sentinel_watchlist":{"schema":{"default_duration":{"type":"TypeString","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true,"forceNew":true},"display_name":{"type":"TypeString","required":true,"forceNew":true},"item_search_key":{"type":"TypeString","required":true,"forceNew":true},"labels":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"log_analytics_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_sentinel_watchlist_item":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"properties":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"watchlist_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_cluster":{"schema":{"add_on_features":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"azure_active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"client_certificate_common_name":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","required":true},"is_admin":{"type":"TypeBool","required":true},"issuer_thumbprint":{"type":"TypeString","optional":true}}}},"client_certificate_thumbprint":{"type":"TypeList","optional":true,"elem":{"schema":{"is_admin":{"type":"TypeBool","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"cluster_code_version":{"type":"TypeString","optional":true,"computed":true},"cluster_endpoint":{"type":"TypeString","computed":true},"diagnostics_config":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_endpoint":{"type":"TypeString","required":true},"protected_account_key_name":{"type":"TypeString","required":true},"queue_endpoint":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_endpoint":{"type":"TypeString","required":true}}},"maxItems":1},"fabric_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"management_endpoint":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","required":true,"elem":{"schema":{"application_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"client_endpoint_port":{"type":"TypeInt","required":true},"durability_level":{"type":"TypeString","optional":true,"default":"Bronze"},"ephemeral_ports":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"end_port":{"type":"TypeInt","required":true},"start_port":{"type":"TypeInt","required":true}}},"maxItems":1},"http_endpoint_port":{"type":"TypeInt","required":true},"instance_count":{"type":"TypeInt","required":true},"is_primary":{"type":"TypeBool","required":true},"is_stateless":{"type":"TypeBool","optional":true},"multiple_availability_zones":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reverse_proxy_endpoint_port":{"type":"TypeInt","optional":true}}}},"reliability_level":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"reverse_proxy_certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"thumbprint":{"type":"TypeString","required":true},"thumbprint_secondary":{"type":"TypeString","optional":true},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"reverse_proxy_certificate_common_names":{"type":"TypeList","optional":true,"elem":{"schema":{"common_names":{"type":"TypeSet","required":true,"elem":{"schema":{"certificate_common_name":{"type":"TypeString","required":true},"certificate_issuer_thumbprint":{"type":"TypeString","optional":true}}},"minItems":1},"x509_store_name":{"type":"TypeString","required":true}}},"maxItems":1},"service_fabric_zonal_upgrade_mode":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_mode":{"type":"TypeString","required":true},"upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"delta_health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_delta_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0},"max_upgrade_domain_delta_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"force_restart_enabled":{"type":"TypeBool","optional":true},"health_check_retry_timeout":{"type":"TypeString","optional":true,"default":"00:45:00"},"health_check_stable_duration":{"type":"TypeString","optional":true,"default":"00:01:00"},"health_check_wait_duration":{"type":"TypeString","optional":true,"default":"00:00:30"},"health_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_unhealthy_applications_percent":{"type":"TypeInt","optional":true,"default":0},"max_unhealthy_nodes_percent":{"type":"TypeInt","optional":true,"default":0}}},"maxItems":1},"upgrade_domain_timeout":{"type":"TypeString","optional":true,"default":"02:00:00"},"upgrade_replica_set_check_timeout":{"type":"TypeString","optional":true,"default":"10675199.02:48:05.4775807"},"upgrade_timeout":{"type":"TypeString","optional":true,"default":"12:00:00"}}},"maxItems":1},"vm_image":{"type":"TypeString","required":true,"forceNew":true},"vmss_zonal_upgrade_mode":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_service_fabric_managed_cluster":{"schema":{"authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"client_application_id":{"type":"TypeString","required":true},"cluster_application_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"certificate":{"type":"TypeList","optional":true,"elem":{"schema":{"common_name":{"type":"TypeString","optional":true},"thumbprint":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1},"backup_service_enabled":{"type":"TypeBool","optional":true},"client_connection_port":{"type":"TypeInt","required":true},"custom_fabric_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"parameter":{"type":"TypeString","required":true},"section":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"dns_name":{"type":"TypeString","optional":true,"computed":true},"dns_service_enabled":{"type":"TypeBool","optional":true},"http_gateway_port":{"type":"TypeInt","required":true},"lb_rule":{"type":"TypeList","required":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","required":true},"frontend_port":{"type":"TypeInt","required":true},"probe_protocol":{"type":"TypeString","required":true},"probe_request_path":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_type":{"type":"TypeList","optional":true,"elem":{"schema":{"application_port_range":{"type":"TypeString","required":true},"capacities":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"data_disk_size_gb":{"type":"TypeInt","required":true},"data_disk_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"},"ephemeral_port_range":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"multiple_placement_groups_enabled":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"placement_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"primary":{"type":"TypeBool","optional":true},"stateless":{"type":"TypeBool","optional":true},"vm_image_offer":{"type":"TypeString","required":true},"vm_image_publisher":{"type":"TypeString","required":true},"vm_image_sku":{"type":"TypeString","required":true},"vm_image_version":{"type":"TypeString","required":true},"vm_instance_count":{"type":"TypeInt","required":true},"vm_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"certificates":{"type":"TypeList","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}}},"vault_id":{"type":"TypeString","required":true}}}},"vm_size":{"type":"TypeString","required":true}}}},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"default":"Basic","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_wave":{"type":"TypeString","optional":true,"default":"Wave0"},"username":{"type":"TypeString","optional":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","optional":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_elastic_worker_count":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"per_site_scaling_enabled":{"type":"TypeBool","optional":true,"default":false},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","optional":true,"computed":true},"zone_balancing_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","optional":true,"default":0},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_id":{"type":"TypeString","required":true},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rule_set":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_namespace_id":{"type":"TypeString","required":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_namespace_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_namespace_network_rule_set":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Allow"},"ip_rules":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeSet","optional":true,"elem":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"subnet_id":{"type":"TypeString","required":true}}}},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"trusted_services_allowed":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true,"default":false},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true,"default":true},"enable_express":{"type":"TypeBool","optional":true,"default":false},"enable_partitioning":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","optional":true,"default":10},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","required":true,"forceNew":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"client_scoped_subscription":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true,"forceNew":true},"is_client_scoped_subscription_durable":{"type":"TypeBool","computed":true},"is_client_scoped_subscription_shareable":{"type":"TypeBool","optional":true,"default":true,"forceNew":true}}},"maxItems":1},"client_scoped_subscription_enabled":{"type":"TypeBool","optional":true,"default":false},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","optional":true,"default":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","optional":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"forward_dead_lettered_messages_to":{"type":"TypeString","optional":true},"forward_to":{"type":"TypeString","optional":true},"lock_duration":{"type":"TypeString","optional":true,"computed":true},"max_delivery_count":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"requires_session":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_subscription_rule":{"schema":{"action":{"type":"TypeString","optional":true},"correlation_filter":{"type":"TypeList","optional":true,"elem":{"schema":{"content_type":{"type":"TypeString","optional":true},"correlation_id":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"message_id":{"type":"TypeString","optional":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"reply_to":{"type":"TypeString","optional":true},"reply_to_session_id":{"type":"TypeString","optional":true},"session_id":{"type":"TypeString","optional":true},"to":{"type":"TypeString","optional":true}}},"maxItems":1},"filter_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_filter":{"type":"TypeString","optional":true},"sql_filter_compatibility_level":{"type":"TypeInt","computed":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","optional":true,"computed":true},"default_message_ttl":{"type":"TypeString","optional":true,"computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","optional":true,"computed":true},"enable_batched_operations":{"type":"TypeBool","optional":true},"enable_express":{"type":"TypeBool","optional":true},"enable_partitioning":{"type":"TypeBool","optional":true,"forceNew":true},"max_message_size_in_kilobytes":{"type":"TypeInt","optional":true,"computed":true},"max_size_in_megabytes":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"namespace_id":{"type":"TypeString","required":true,"forceNew":true},"requires_duplicate_detection":{"type":"TypeBool","optional":true,"forceNew":true},"status":{"type":"TypeString","optional":true,"default":"Active"},"support_ordering":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false},"topic_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image":{"schema":{"accelerated_network_support_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"architecture":{"type":"TypeString","optional":true,"default":"x64","forceNew":true},"confidential_vm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"confidential_vm_supported":{"type":"TypeBool","optional":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"disk_types_not_allowed":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"end_of_life_date":{"type":"TypeString","optional":true},"eula":{"type":"TypeString","optional":true,"forceNew":true},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"hyper_v_generation":{"type":"TypeString","optional":true,"default":"V1","forceNew":true},"identifier":{"type":"TypeList","required":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"max_recommended_vcpu_count":{"type":"TypeInt","optional":true},"min_recommended_memory_in_gb":{"type":"TypeInt","optional":true},"min_recommended_vcpu_count":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_type":{"type":"TypeString","required":true,"forceNew":true},"privacy_statement_uri":{"type":"TypeString","optional":true,"forceNew":true},"purchase_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"release_note_uri":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"specialized":{"type":"TypeBool","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sharing":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"community_gallery":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"eula":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","computed":true},"prefix":{"type":"TypeString","required":true,"forceNew":true},"publisher_email":{"type":"TypeString","required":true,"forceNew":true},"publisher_uri":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"permission":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_shared_image_version":{"schema":{"blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"deletion_of_replicated_locations_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"end_of_life_date":{"type":"TypeString","optional":true},"exclude_from_latest":{"type":"TypeBool","optional":true,"default":false},"gallery_name":{"type":"TypeString","required":true,"forceNew":true},"image_name":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_image_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"os_disk_snapshot_id":{"type":"TypeString","optional":true,"forceNew":true},"replication_mode":{"type":"TypeString","optional":true,"default":"Full","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","required":true,"elem":{"schema":{"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"exclude_from_latest_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"regional_replica_count":{"type":"TypeInt","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"Standard_LRS"}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"hostname":{"type":"TypeString","computed":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"live_trace_enabled":{"type":"TypeBool","optional":true,"default":false},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":30},"service_mode":{"type":"TypeString","optional":true,"default":"Default"},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"upstream_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"category_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"event_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"hub_pattern":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}}}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_service_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"signalr_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_signalr_service_network_acl":{"schema":{"default_action":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_signalr_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"signalr_service_id":{"type":"TypeString","required":true,"forceNew":true},"status":{"type":"TypeString","computed":true},"sub_resource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"source_network_name":{"type":"TypeString","required":true,"forceNew":true},"source_system_center_virtual_machine_manager_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_site_recovery_hyperv_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_hours":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_hours":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"replication_interval_in_seconds":{"type":"TypeInt","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_hyperv_replication_policy_association":{"schema":{"hyperv_site_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60}},"azurerm_site_recovery_network_mapping":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_network_id":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"target_network_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_protection_container_mapping":{"schema":{"automatic_update":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","optional":true},"automation_account_id":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_source_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"recovery_target_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replicated_vm":{"schema":{"managed_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_id":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_disk_encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","configMode":"Auto","required":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"key_encryption_key":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true,"forceNew":true},"vault_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1}}},"maxItems":1},"target_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"target_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_replica_disk_type":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true}}}},"multi_vm_group_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"failover_test_public_ip_address_id":{"type":"TypeString","optional":true,"computed":true},"failover_test_static_ip":{"type":"TypeString","optional":true,"computed":true},"failover_test_subnet_name":{"type":"TypeString","optional":true,"computed":true},"is_primary":{"type":"TypeBool","optional":true,"default":false},"recovery_public_ip_address_id":{"type":"TypeString","optional":true},"source_network_interface_id":{"type":"TypeString","optional":true,"computed":true},"target_static_ip":{"type":"TypeString","optional":true},"target_subnet_name":{"type":"TypeString","optional":true}}}},"recovery_replication_policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_fabric_name":{"type":"TypeString","required":true,"forceNew":true},"source_recovery_protection_container_name":{"type":"TypeString","required":true,"forceNew":true},"source_vm_id":{"type":"TypeString","required":true,"forceNew":true},"target_availability_set_id":{"type":"TypeString","optional":true},"target_boot_diagnostic_storage_account_id":{"type":"TypeString","optional":true},"target_capacity_reservation_group_id":{"type":"TypeString","optional":true},"target_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"target_network_id":{"type":"TypeString","optional":true,"computed":true},"target_proximity_placement_group_id":{"type":"TypeString","optional":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_protection_container_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_group_id":{"type":"TypeString","required":true,"forceNew":true},"target_virtual_machine_scale_set_id":{"type":"TypeString","optional":true},"target_zone":{"type":"TypeString","optional":true,"forceNew":true},"test_network_id":{"type":"TypeString","optional":true,"computed":true},"unmanaged_disk":{"type":"TypeSet","configMode":"Auto","optional":true,"forceNew":true,"elem":{"schema":{"disk_uri":{"type":"TypeString","required":true,"forceNew":true},"staging_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"target_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}}}}},"timeouts":{"create":180,"read":5,"delete":80,"update":80}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"primary_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"recovery_zone":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":1},"boot_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}},"minItems":1},"failover_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_group":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"replicated_protected_items":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"minItems":3},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true},"shutdown_recovery_group":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"post_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}},"pre_action":{"type":"TypeList","optional":true,"elem":{"schema":{"fabric_location":{"type":"TypeString","optional":true},"fail_over_directions":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"runbook_id":{"type":"TypeString","optional":true},"script_path":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}}}}},"maxItems":1,"minItems":1},"source_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true},"target_recovery_fabric_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_services_vault_hyperv_site":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":180}},"azurerm_site_recovery_vmware_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","required":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_site_recovery_vmware_replication_policy_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"policy_id":{"type":"TypeString","required":true,"forceNew":true},"recovery_vault_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_snapshot":{"schema":{"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"encryption_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"enabled":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"key_encryption_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"incremental_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"source_resource_id":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_id":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","required":true},"token_secret":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}},"timeouts":{"create":5,"read":5,"delete":5,"update":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_accelerator":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_active_deployment":{"schema":{"deployment_name":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_api_portal":{"schema":{"gateway_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"https_only_enabled":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_spring_cloud_api_portal_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_api_portal_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"custom_persistent_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"mount_options":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"mount_path":{"type":"TypeString","required":true},"read_only_enabled":{"type":"TypeBool","optional":true,"default":false},"share_name":{"type":"TypeString","required":true},"storage_name":{"type":"TypeString","required":true}}},"minItems":1},"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"ingress_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"backend_protocol":{"type":"TypeString","optional":true,"default":"Default"},"read_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":300},"send_timeout_in_seconds":{"type":"TypeInt","optional":true,"default":60},"session_affinity":{"type":"TypeString","optional":true,"default":"None"},"session_cookie_max_age":{"type":"TypeInt","optional":true}}},"maxItems":1},"is_public":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"persistent_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","optional":true,"default":"/persistent"},"size_in_gb":{"type":"TypeInt","required":true}}},"maxItems":1},"public_endpoint_enabled":{"type":"TypeBool","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"tls_enabled":{"type":"TypeBool","optional":true,"default":false},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_cosmosdb_association":{"schema":{"api_type":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_access_key":{"type":"TypeString","required":true},"cosmosdb_account_id":{"type":"TypeString","required":true,"forceNew":true},"cosmosdb_cassandra_keyspace_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_database_name":{"type":"TypeString","optional":true},"cosmosdb_gremlin_graph_name":{"type":"TypeString","optional":true},"cosmosdb_mongo_database_name":{"type":"TypeString","optional":true},"cosmosdb_sql_database_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_mysql_association":{"schema":{"database_name":{"type":"TypeString","required":true},"mysql_server_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_app_redis_association":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"redis_access_key":{"type":"TypeString","required":true},"redis_cache_id":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"ssl_enabled":{"type":"TypeBool","optional":true,"default":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_application_live_view":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_build_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"build_result_id":{"type":"TypeString","required":true},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_build_pack_binding":{"schema":{"binding_type":{"type":"TypeString","optional":true},"launch":{"type":"TypeList","optional":true,"elem":{"schema":{"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_builder_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_builder":{"schema":{"build_pack_group":{"type":"TypeSet","required":true,"elem":{"schema":{"build_pack_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"stack":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_certificate":{"schema":{"certificate_content":{"type":"TypeString","optional":true,"forceNew":true},"exclude_private_key":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_certificate_id":{"type":"TypeString","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_name":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_spring_cloud_configuration_service":{"schema":{"generation":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"ca_certificate_id":{"type":"TypeString","optional":true},"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"label":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","optional":true},"patterns":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"private_key":{"type":"TypeString","optional":true},"search_paths":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"strict_host_key_checking":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","required":true},"username":{"type":"TypeString","optional":true}}}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_connection":{"schema":{"authentication":{"type":"TypeList","required":true,"elem":{"schema":{"certificate":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true},"principal_id":{"type":"TypeString","optional":true},"secret":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"client_type":{"type":"TypeString","optional":true,"default":"none"},"name":{"type":"TypeString","required":true,"forceNew":true},"secret_store":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"spring_cloud_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"vnet_solution":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_container_deployment":{"schema":{"addon_json":{"type":"TypeString","optional":true,"computed":true},"arguments":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"commands":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"image":{"type":"TypeString","required":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"language_framework":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"server":{"type":"TypeString","required":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_custom_domain":{"schema":{"certificate_name":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_customized_accelerator":{"schema":{"accelerator_tags":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"git_repository":{"type":"TypeList","required":true,"elem":{"schema":{"basic_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"branch":{"type":"TypeString","optional":true},"ca_certificate_id":{"type":"TypeString","optional":true},"commit":{"type":"TypeString","optional":true},"git_tag":{"type":"TypeString","optional":true},"interval_in_seconds":{"type":"TypeInt","optional":true},"ssh_auth":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true}}},"maxItems":1},"url":{"type":"TypeString","required":true}}},"maxItems":1},"icon_url":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_accelerator_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_dev_tool_portal":{"schema":{"application_accelerator_enabled":{"type":"TypeBool","optional":true,"computed":true},"application_live_view_enabled":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"metadata_url":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway":{"schema":{"api_metadata":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"documentation_url":{"type":"TypeString","optional":true},"server_url":{"type":"TypeString","optional":true},"title":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"application_performance_monitoring_types":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"client_authorization":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"verification_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origin_patterns":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","optional":true},"exposed_headers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"max_age_seconds":{"type":"TypeInt","optional":true}}},"maxItems":1},"environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"https_only":{"type":"TypeBool","optional":true},"instance_count":{"type":"TypeInt","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"default":"1"},"memory":{"type":"TypeString","optional":true,"default":"2Gi"}}},"maxItems":1},"sensitive_environment_variables":{"type":"TypeMap","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"sso":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","optional":true},"client_secret":{"type":"TypeString","optional":true},"issuer_uri":{"type":"TypeString","optional":true},"scope":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_custom_domain":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"thumbprint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_gateway_route_config":{"schema":{"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"open_api":{"type":"TypeList","optional":true,"elem":{"schema":{"uri":{"type":"TypeString","optional":true}}},"maxItems":1},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeString","optional":true,"default":"HTTP"},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"classification_tags":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"filters":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"order":{"type":"TypeInt","required":true},"predicates":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"sso_validation_enabled":{"type":"TypeBool","optional":true},"title":{"type":"TypeString","optional":true},"token_relay":{"type":"TypeBool","optional":true},"uri":{"type":"TypeString","optional":true}}}},"spring_cloud_app_id":{"type":"TypeString","optional":true},"spring_cloud_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"sso_validation_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_java_deployment":{"schema":{"environment_variables":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"instance_count":{"type":"TypeInt","optional":true,"default":1},"jvm_options":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cpu":{"type":"TypeString","optional":true,"computed":true},"memory":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"default":"Java_8"},"spring_cloud_app_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_service":{"schema":{"build_agent_pool_size":{"type":"TypeString","optional":true},"config_server_git_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"repository":{"type":"TypeList","optional":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"password":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}},"maxItems":1},"label":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"pattern":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}}},"search_paths":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","optional":true,"elem":{"schema":{"host_key":{"type":"TypeString","optional":true},"host_key_algorithm":{"type":"TypeString","optional":true},"private_key":{"type":"TypeString","required":true},"strict_host_key_checking_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"uri":{"type":"TypeString","required":true}}},"maxItems":1},"container_registry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"password":{"type":"TypeString","required":true},"server":{"type":"TypeString","required":true},"username":{"type":"TypeString","required":true}}}},"default_build_service":{"type":"TypeList","optional":true,"elem":{"schema":{"container_registry_name":{"type":"TypeString","optional":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"log_stream_public_endpoint_enabled":{"type":"TypeBool","optional":true},"marketplace":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"plan":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"network":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"app_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"app_subnet_id":{"type":"TypeString","required":true,"forceNew":true},"cidr_ranges":{"type":"TypeList","required":true,"forceNew":true,"elem":{"type":"TypeString"},"minItems":3},"outbound_type":{"type":"TypeString","optional":true,"default":"loadBalancer","forceNew":true},"read_timeout_seconds":{"type":"TypeInt","optional":true},"service_runtime_network_resource_group":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"service_runtime_subnet_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_registry_enabled":{"type":"TypeBool","optional":true},"service_registry_id":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","optional":true,"default":"S0","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connection_string":{"type":"TypeString","optional":true},"sample_rate":{"type":"TypeFloat","optional":true,"default":10}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":30,"update":30}},"azurerm_spring_cloud_storage":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"spring_cloud_service_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"computed":true},"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default"},"creation_date":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","optional":true,"computed":true},"elastic_pool_name":{"type":"TypeString","optional":true,"computed":true},"encryption":{"type":"TypeString","computed":true},"import":{"type":"TypeList","optional":true,"elem":{"schema":{"administrator_login":{"type":"TypeString","required":true},"administrator_login_password":{"type":"TypeString","required":true},"authentication_type":{"type":"TypeString","required":true},"operation_mode":{"type":"TypeString","optional":true,"default":"Import"},"storage_key":{"type":"TypeString","required":true},"storage_key_type":{"type":"TypeString","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"max_size_bytes":{"type":"TypeString","optional":true,"computed":true},"max_size_gb":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"read_scale":{"type":"TypeBool","optional":true,"default":false},"requested_service_objective_id":{"type":"TypeString","optional":true,"computed":true},"requested_service_objective_name":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"restore_point_in_time":{"type":"TypeString","optional":true,"computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"source_database_deletion_date":{"type":"TypeString","optional":true,"computed":true},"source_database_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeString","optional":true,"default":"Disabled"},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"zone_redundant":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_elasticpool":{"schema":{"creation_date":{"type":"TypeString","computed":true},"db_dtu_max":{"type":"TypeInt","optional":true,"computed":true},"db_dtu_min":{"type":"TypeInt","optional":true,"computed":true},"dtu":{"type":"TypeInt","required":true},"edition":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"pool_size":{"type":"TypeInt","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_failover_group":{"schema":{"databases":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_servers":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"mode":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_database":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"sql_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"collation":{"type":"TypeString","optional":true,"default":"SQL_Latin1_General_CP1_CI_AS","forceNew":true},"dns_zone_partner_id":{"type":"TypeString","optional":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"name":{"type":"TypeString","required":true,"forceNew":true},"proxy_override":{"type":"TypeString","optional":true,"default":"Default"},"public_data_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"storage_size_in_gb":{"type":"TypeInt","required":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","optional":true,"default":"UTC","forceNew":true},"vcores":{"type":"TypeInt","required":true}},"timeouts":{"create":1440,"read":5,"delete":1440,"update":1440}},"azurerm_sql_managed_instance_active_directory_administrator":{"schema":{"azuread_authentication_only":{"type":"TypeBool","optional":true,"default":false},"login":{"type":"TypeString","required":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"object_id":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_managed_instance_failover_group":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"managed_instance_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partner_managed_instance_id":{"type":"TypeString","required":true,"forceNew":true},"partner_region":{"type":"TypeList","computed":true,"elem":{"schema":{"location":{"type":"TypeString","computed":true},"role":{"type":"TypeString","computed":true}}}},"read_write_endpoint_failover_policy":{"type":"TypeList","required":true,"elem":{"schema":{"grace_minutes":{"type":"TypeInt","optional":true},"mode":{"type":"TypeString","required":true}}},"maxItems":1},"readonly_endpoint_failover_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","required":true,"forceNew":true},"administrator_login_password":{"type":"TypeString","required":true},"connection_policy":{"type":"TypeString","optional":true,"default":"Default"},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","optional":true,"computed":true},"email_addresses":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"retention_days":{"type":"TypeInt","optional":true},"state":{"type":"TypeString","optional":true,"default":"Disabled"},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}}},"maxItems":1},"version":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_sql_virtual_network_rule":{"schema":{"ignore_missing_vnet_service_endpoint":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server_name":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_ssh_public_key":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_stack_hci_cluster":{"schema":{"automanage_configuration_id":{"type":"TypeString","optional":true},"client_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site":{"schema":{"api_key":{"type":"TypeString","computed":true},"default_host_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_size":{"type":"TypeString","optional":true,"default":"Free"},"sku_tier":{"type":"TypeString","optional":true,"default":"Free"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_static_site_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"static_site_id":{"type":"TypeString","required":true,"forceNew":true},"validation_token":{"type":"TypeString","computed":true},"validation_type":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"account_kind":{"type":"TypeString","optional":true,"default":"StorageV2"},"account_replication_type":{"type":"TypeString","required":true},"account_tier":{"type":"TypeString","required":true,"forceNew":true},"allow_nested_items_to_be_public":{"type":"TypeBool","optional":true,"default":true},"allowed_copy_scope":{"type":"TypeString","optional":true},"azure_files_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","required":true},"domain_sid":{"type":"TypeString","optional":true},"forest_name":{"type":"TypeString","optional":true},"netbios_domain_name":{"type":"TypeString","optional":true},"storage_sid":{"type":"TypeString","optional":true}}},"maxItems":1},"directory_type":{"type":"TypeString","required":true}}},"maxItems":1},"blob_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"change_feed_enabled":{"type":"TypeBool","optional":true,"default":false},"change_feed_retention_in_days":{"type":"TypeInt","optional":true},"container_delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"default_service_version":{"type":"TypeString","optional":true,"computed":true},"delete_retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"last_access_time_enabled":{"type":"TypeBool","optional":true,"default":false},"restore_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","required":true}}},"maxItems":1},"versioning_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"cross_tenant_replication_enabled":{"type":"TypeBool","optional":true,"default":true},"custom_domain":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"use_subdomain":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"default_to_oauth_authentication":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_https_traffic_only":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"immutability_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"allow_protected_append_writes":{"type":"TypeBool","required":true},"period_since_creation_in_days":{"type":"TypeInt","required":true},"state":{"type":"TypeString","required":true}}},"maxItems":1},"infrastructure_encryption_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"is_hns_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"large_file_share_enabled":{"type":"TypeBool","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"min_tls_version":{"type":"TypeString","optional":true,"default":"TLS1_2"},"name":{"type":"TypeString","required":true,"forceNew":true},"network_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"bypass":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"virtual_network_subnet_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"nfsv3_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"queue_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"queue_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"hour_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"logging":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"delete":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"minute_metrics":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"include_apis":{"type":"TypeBool","optional":true},"retention_policy_days":{"type":"TypeInt","optional":true},"version":{"type":"TypeString","required":true}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"choice":{"type":"TypeString","optional":true,"default":"MicrosoftRouting"},"publish_internet_endpoints":{"type":"TypeBool","optional":true,"default":false},"publish_microsoft_endpoints":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sas_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiration_action":{"type":"TypeString","optional":true,"default":"Log"},"expiration_period":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"sftp_enabled":{"type":"TypeBool","optional":true,"default":false},"share_properties":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"cors_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"allowed_methods":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"allowed_origins":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64},"exposed_headers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"maxItems":64,"minItems":1},"max_age_in_seconds":{"type":"TypeInt","required":true}}},"maxItems":5},"retention_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"days":{"type":"TypeInt","optional":true,"default":7}}},"maxItems":1},"smb":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"channel_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"kerberos_ticket_encryption_type":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"multichannel_enabled":{"type":"TypeBool","optional":true,"default":false},"versions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"shared_access_key_enabled":{"type":"TypeBool","optional":true,"default":true},"static_website":{"type":"TypeList","optional":true,"elem":{"schema":{"error_404_document":{"type":"TypeString","optional":true},"index_document":{"type":"TypeString","optional":true}}},"maxItems":1},"table_encryption_key_type":{"type":"TypeString","optional":true,"default":"Service","forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_account_customer_managed_key":{"schema":{"federated_identity_client_id":{"type":"TypeString","optional":true},"key_name":{"type":"TypeString","required":true},"key_vault_id":{"type":"TypeString","optional":true},"key_vault_uri":{"type":"TypeString","optional":true,"computed":true},"key_version":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"user_assigned_identity_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_local_user":{"schema":{"home_directory":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","computed":true},"permission_scope":{"type":"TypeList","optional":true,"elem":{"schema":{"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"create":{"type":"TypeBool","optional":true,"default":false},"delete":{"type":"TypeBool","optional":true,"default":false},"list":{"type":"TypeBool","optional":true,"default":false},"read":{"type":"TypeBool","optional":true,"default":false},"write":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"resource_name":{"type":"TypeString","required":true},"service":{"type":"TypeString","required":true}}}},"sid":{"type":"TypeString","computed":true},"ssh_authorized_key":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"key":{"type":"TypeString","required":true}}}},"ssh_key_enabled":{"type":"TypeBool","optional":true,"default":false},"ssh_password_enabled":{"type":"TypeBool","optional":true,"default":false},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_account_network_rules":{"schema":{"bypass":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"default_action":{"type":"TypeString","required":true},"ip_rules":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}},"private_link_access":{"type":"TypeList","optional":true,"elem":{"schema":{"endpoint_resource_id":{"type":"TypeString","required":true},"endpoint_tenant_id":{"type":"TypeString","optional":true,"computed":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_subnet_ids":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"cache_control":{"type":"TypeString","optional":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallelism":{"type":"TypeInt","optional":true,"default":8,"forceNew":true},"size":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"source_content":{"type":"TypeString","optional":true,"forceNew":true},"source_uri":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_blob_inventory_policy":{"schema":{"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"filter":{"type":"TypeList","optional":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"exclude_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10},"include_blob_versions":{"type":"TypeBool","optional":true,"default":false},"include_deleted":{"type":"TypeBool","optional":true,"default":false},"include_snapshots":{"type":"TypeBool","optional":true,"default":false},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":10}}},"maxItems":1},"format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"schedule":{"type":"TypeString","required":true},"schema_fields":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"scope":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true}}}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","optional":true,"default":"private"},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_filesystem":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"group":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"owner":{"type":"TypeString","optional":true,"computed":true},"properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_data_lake_gen2_path":{"schema":{"ace":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"scope":{"type":"TypeString","optional":true,"default":"access"},"type":{"type":"TypeString","required":true}}}},"filesystem_name":{"type":"TypeString","required":true,"forceNew":true},"group":{"type":"TypeString","optional":true,"computed":true},"owner":{"type":"TypeString","optional":true,"computed":true},"path":{"type":"TypeString","required":true,"forceNew":true},"resource":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_encryption_scope":{"schema":{"infrastructure_encryption_required":{"type":"TypeBool","optional":true,"forceNew":true},"key_vault_key_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"actions":{"type":"TypeList","required":true,"elem":{"schema":{"base_blob":{"type":"TypeList","optional":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","optional":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"snapshot":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1},"version":{"type":"TypeList","optional":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"delete_after_days_since_creation":{"type":"TypeInt","optional":true,"default":-1},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","optional":true,"default":-1}}},"maxItems":1}}},"maxItems":1},"enabled":{"type":"TypeBool","required":true},"filters":{"type":"TypeList","required":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"operation":{"type":"TypeString","optional":true,"default":"=="},"value":{"type":"TypeString","required":true}}}},"prefix_match":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true}}},"minItems":1},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover":{"schema":{"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_agent":{"schema":{"arc_virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"arc_virtual_machine_uuid":{"type":"TypeString","required":true,"forceNew":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_job_definition":{"schema":{"agent_name":{"type":"TypeString","optional":true},"copy_mode":{"type":"TypeString","required":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"source_name":{"type":"TypeString","required":true,"forceNew":true},"source_sub_path":{"type":"TypeString","optional":true,"forceNew":true},"storage_mover_project_id":{"type":"TypeString","required":true,"forceNew":true},"target_name":{"type":"TypeString","required":true,"forceNew":true},"target_sub_path":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_project":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_source_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"export":{"type":"TypeString","optional":true,"forceNew":true},"host":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"nfs_version":{"type":"TypeString","optional":true,"default":"NFSauto","forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_mover_target_endpoint":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_container_name":{"type":"TypeString","required":true,"forceNew":true},"storage_mover_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_object_replication":{"schema":{"destination_object_replication_id":{"type":"TypeString","computed":true},"destination_storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"rules":{"type":"TypeSet","required":true,"elem":{"schema":{"copy_blobs_created_after":{"type":"TypeString","optional":true,"default":"OnlyNewObjects"},"destination_container_name":{"type":"TypeString","required":true,"forceNew":true},"filter_out_blobs_with_prefix":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"source_container_name":{"type":"TypeString","required":true,"forceNew":true}}}},"source_object_replication_id":{"type":"TypeString","computed":true},"source_storage_account_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_queue":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share":{"schema":{"access_tier":{"type":"TypeString","optional":true,"computed":true},"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","optional":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","optional":true}}}},"id":{"type":"TypeString","required":true}}}},"enabled_protocol":{"type":"TypeString","optional":true,"default":"SMB","forceNew":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"quota":{"type":"TypeInt","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_directory":{"schema":{"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"share_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_share_file":{"schema":{"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_length":{"type":"TypeInt","computed":true},"content_md5":{"type":"TypeString","optional":true,"forceNew":true},"content_type":{"type":"TypeString","optional":true,"default":"application/octet-stream"},"metadata":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","optional":true,"default":"","forceNew":true},"source":{"type":"TypeString","optional":true,"forceNew":true},"storage_share_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","optional":true,"default":"AllowAllTraffic"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_sync_cloud_endpoint":{"schema":{"file_share_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_tenant_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"storage_sync_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"storage_sync_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_storage_table":{"schema":{"acl":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"expiry":{"type":"TypeString","required":true},"permissions":{"type":"TypeString","required":true},"start":{"type":"TypeString","required":true}}}},"id":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","required":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true,"forceNew":true},"storage_account_name":{"type":"TypeString","required":true,"forceNew":true},"table_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_cluster":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"streaming_capacity":{"type":"TypeInt","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_stream_analytics_function_javascript_uda":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"script":{"type":"TypeString","required":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_function_javascript_udf":{"schema":{"input":{"type":"TypeList","required":true,"elem":{"schema":{"configuration_parameter":{"type":"TypeBool","optional":true,"default":false},"type":{"type":"TypeString","required":true}}},"minItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"output":{"type":"TypeList","required":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"script":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","optional":true,"computed":true},"content_storage_policy":{"type":"TypeString","optional":true,"default":"SystemAccount"},"data_locale":{"type":"TypeString","optional":true,"computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":5},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","optional":true,"default":0},"events_out_of_order_policy":{"type":"TypeString","optional":true,"default":"Adjust"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"job_id":{"type":"TypeString","computed":true},"job_storage_account":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_error_policy":{"type":"TypeString","optional":true,"default":"Drop"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_id":{"type":"TypeString","optional":true},"streaming_units":{"type":"TypeInt","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"transformation_query":{"type":"TypeString","required":true},"type":{"type":"TypeString","optional":true,"default":"Cloud","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_job_schedule":{"schema":{"last_output_time":{"type":"TypeString","computed":true},"start_mode":{"type":"TypeString","required":true},"start_time":{"type":"TypeString","optional":true,"computed":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_cluster_name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5}},"azurerm_stream_analytics_output_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"batch_max_wait_time":{"type":"TypeString","optional":true},"batch_min_rows":{"type":"TypeInt","optional":true},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_cosmosdb":{"schema":{"container_name":{"type":"TypeString","required":true},"cosmosdb_account_key":{"type":"TypeString","required":true},"cosmosdb_sql_database_id":{"type":"TypeString","required":true},"document_id":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_function":{"schema":{"api_key":{"type":"TypeString","required":true},"batch_max_count":{"type":"TypeInt","optional":true,"default":100},"batch_max_in_bytes":{"type":"TypeInt","optional":true,"default":262144},"function_app":{"type":"TypeString","required":true},"function_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_mssql":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"database":{"type":"TypeString","required":true,"forceNew":true},"max_batch_count":{"type":"TypeFloat","optional":true,"default":10000},"max_writer_count":{"type":"TypeFloat","optional":true,"default":1},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_powerbi":{"schema":{"dataset":{"type":"TypeString","required":true},"group_id":{"type":"TypeString","required":true},"group_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true},"token_user_display_name":{"type":"TypeString","optional":true},"token_user_principal_name":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_queue":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"queue_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_servicebus_topic":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"name":{"type":"TypeString","required":true,"forceNew":true},"property_columns":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"format":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"system_property_columns":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"topic_name":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_synapse":{"schema":{"database":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true,"forceNew":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true,"forceNew":true},"user":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_output_table":{"schema":{"batch_size":{"type":"TypeInt","required":true},"columns_to_remove":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"row_key":{"type":"TypeString","required":true},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_blob":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","optional":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_reference_input_mssql":{"schema":{"database":{"type":"TypeString","required":true},"delta_snapshot_query":{"type":"TypeString","optional":true},"full_snapshot_query":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"password":{"type":"TypeString","required":true},"refresh_interval_duration":{"type":"TypeString","optional":true},"refresh_type":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"server":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"table":{"type":"TypeString","optional":true},"username":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_blob":{"schema":{"date_format":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path_pattern":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"storage_account_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true},"time_format":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_eventhub_v2":{"schema":{"authentication_mode":{"type":"TypeString","optional":true,"default":"ConnectionString"},"eventhub_consumer_group_name":{"type":"TypeString","optional":true},"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"partition_key":{"type":"TypeString","optional":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"servicebus_namespace":{"type":"TypeString","required":true},"shared_access_policy_key":{"type":"TypeString","optional":true},"shared_access_policy_name":{"type":"TypeString","optional":true},"stream_analytics_job_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_stream_analytics_stream_input_iothub":{"schema":{"endpoint":{"type":"TypeString","required":true},"eventhub_consumer_group_name":{"type":"TypeString","required":true},"iothub_namespace":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"serialization":{"type":"TypeList","required":true,"elem":{"schema":{"encoding":{"type":"TypeString","optional":true},"field_delimiter":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"shared_access_policy_key":{"type":"TypeString","required":true,"forceNew":true},"shared_access_policy_name":{"type":"TypeString","required":true},"stream_analytics_job_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"delegation":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"service_delegation":{"type":"TypeList","required":true,"elem":{"schema":{"actions":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true}}},"maxItems":1}}}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","optional":true,"computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_endpoint_policy_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"minItems":1},"service_endpoints":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_nat_gateway_association":{"schema":{"nat_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_network_security_group_association":{"schema":{"network_security_group_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_route_table_association":{"schema":{"route_table_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subnet_service_endpoint_storage_policy":{"schema":{"definition":{"type":"TypeList","optional":true,"elem":{"schema":{"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"service":{"type":"TypeString","optional":true,"default":"Microsoft.Storage"},"service_resources":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription":{"schema":{"alias":{"type":"TypeString","optional":true,"description":"The Alias Name of the subscription. If omitted a new UUID will be generated for this property.","computed":true,"forceNew":true},"billing_scope_id":{"type":"TypeString","optional":true},"subscription_id":{"type":"TypeString","optional":true,"description":"The GUID of the Subscription.","computed":true,"forceNew":true},"subscription_name":{"type":"TypeString","required":true,"description":"The Display Name for the Subscription."},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID to which the subscription belongs","computed":true},"workload":{"type":"TypeString","optional":true,"description":"The workload type for the Subscription. Possible values are `Production` (default) and `DevTest`.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_export":{"schema":{"active":{"type":"TypeBool","optional":true,"default":true},"export_data_options":{"type":"TypeList","required":true,"elem":{"schema":{"time_frame":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"export_data_storage_location":{"type":"TypeList","required":true,"elem":{"schema":{"container_id":{"type":"TypeString","required":true,"forceNew":true},"root_folder_path":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"recurrence_period_end_date":{"type":"TypeString","required":true},"recurrence_period_start_date":{"type":"TypeString","required":true},"recurrence_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_cost_management_view":{"schema":{"accumulated":{"type":"TypeBool","required":true,"forceNew":true},"chart_type":{"type":"TypeString","required":true},"dataset":{"type":"TypeList","required":true,"elem":{"schema":{"aggregation":{"type":"TypeSet","required":true,"elem":{"schema":{"column_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true}}}},"granularity":{"type":"TypeString","required":true},"grouping":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"sorting":{"type":"TypeList","optional":true,"elem":{"schema":{"direction":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}}}}}},"maxItems":1},"display_name":{"type":"TypeString","required":true},"kpi":{"type":"TypeList","optional":true,"elem":{"schema":{"type":{"type":"TypeString","required":true}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"pivot":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"report_type":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","required":true,"forceNew":true},"timeframe":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_assignment":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"enforce":{"type":"TypeBool","optional":true,"default":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","optional":true,"forceNew":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"policy_definition_reference_id":{"type":"TypeString","optional":true}}}},"not_scopes":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"overrides":{"type":"TypeList","optional":true,"elem":{"schema":{"selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","computed":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"value":{"type":"TypeString","required":true}}}},"parameters":{"type":"TypeString","optional":true},"policy_definition_id":{"type":"TypeString","required":true,"forceNew":true},"resource_selectors":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true},"selectors":{"type":"TypeList","required":true,"elem":{"schema":{"in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"kind":{"type":"TypeString","required":true},"not_in":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}}}}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_exemption":{"schema":{"description":{"type":"TypeString","optional":true},"display_name":{"type":"TypeString","optional":true},"exemption_category":{"type":"TypeString","required":true},"expires_on":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy_assignment_id":{"type":"TypeString","required":true,"forceNew":true},"policy_definition_reference_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_policy_remediation":{"schema":{"failure_percentage":{"type":"TypeFloat","optional":true},"location_filters":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"parallel_deployments":{"type":"TypeInt","optional":true},"policy_assignment_id":{"type":"TypeString","required":true},"policy_definition_id":{"type":"TypeString","optional":true},"policy_definition_reference_id":{"type":"TypeString","optional":true},"resource_count":{"type":"TypeInt","optional":true},"resource_discovery_mode":{"type":"TypeString","optional":true,"default":"ExistingNonCompliant"},"subscription_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_subscription_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_synapse_firewall_rule":{"schema":{"end_ip_address":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_ip_address":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_azure":{"schema":{"compute_type":{"type":"TypeString","optional":true,"default":"General"},"core_count":{"type":"TypeInt","optional":true,"default":8},"description":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"time_to_live_min":{"type":"TypeInt","optional":true,"default":0}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_integration_runtime_self_hosted":{"schema":{"authorization_key_primary":{"type":"TypeString","computed":true},"authorization_key_secondary":{"type":"TypeString","computed":true},"description":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_linked_service":{"schema":{"additional_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"annotations":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","optional":true},"integration_runtime":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_properties_json":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_managed_private_endpoint":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_private_link_hub":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_role_assignment":{"schema":{"principal_id":{"type":"TypeString","required":true,"forceNew":true},"role_name":{"type":"TypeString","required":true,"forceNew":true},"synapse_spark_pool_id":{"type":"TypeString","optional":true,"forceNew":true},"synapse_workspace_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_synapse_spark_pool":{"schema":{"auto_pause":{"type":"TypeList","optional":true,"elem":{"schema":{"delay_in_minutes":{"type":"TypeInt","required":true}}},"maxItems":1},"auto_scale":{"type":"TypeList","optional":true,"elem":{"schema":{"max_node_count":{"type":"TypeInt","required":true},"min_node_count":{"type":"TypeInt","required":true}}},"maxItems":1},"cache_size":{"type":"TypeInt","optional":true},"compute_isolation_enabled":{"type":"TypeBool","optional":true,"default":false},"dynamic_executor_allocation_enabled":{"type":"TypeBool","optional":true,"default":false},"library_requirement":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"max_executors":{"type":"TypeInt","optional":true},"min_executors":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"node_count":{"type":"TypeInt","optional":true},"node_size":{"type":"TypeString","required":true},"node_size_family":{"type":"TypeString","required":true},"session_level_packages_enabled":{"type":"TypeBool","optional":true,"default":false},"spark_config":{"type":"TypeList","optional":true,"elem":{"schema":{"content":{"type":"TypeString","required":true},"filename":{"type":"TypeString","required":true}}},"maxItems":1},"spark_events_folder":{"type":"TypeString","optional":true,"default":"/events"},"spark_log_folder":{"type":"TypeString","optional":true,"default":"/logs"},"spark_version":{"type":"TypeString","optional":true,"default":"2.4"},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool":{"schema":{"collation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"create_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"data_encrypted":{"type":"TypeBool","optional":true},"geo_backup_policy_enabled":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"recovery_database_id":{"type":"TypeString","optional":true,"forceNew":true},"restore":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"point_in_time":{"type":"TypeString","required":true,"forceNew":true},"source_database_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"sku_name":{"type":"TypeString","required":true},"storage_account_type":{"type":"TypeString","optional":true,"default":"GRS","forceNew":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"sql_pool_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_vulnerability_assessment_baseline":{"schema":{"baseline":{"type":"TypeList","optional":true,"elem":{"schema":{"result":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true},"rule_name":{"type":"TypeString","required":true},"sql_pool_vulnerability_assessment_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_classifier":{"schema":{"context":{"type":"TypeString","optional":true},"end_time":{"type":"TypeString","optional":true},"importance":{"type":"TypeString","optional":true},"label":{"type":"TypeString","optional":true},"member_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"start_time":{"type":"TypeString","optional":true},"workload_group_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_sql_pool_workload_group":{"schema":{"importance":{"type":"TypeString","optional":true,"default":"normal"},"max_resource_percent":{"type":"TypeInt","required":true},"max_resource_percent_per_request":{"type":"TypeFloat","optional":true,"default":3},"min_resource_percent":{"type":"TypeInt","required":true},"min_resource_percent_per_request":{"type":"TypeFloat","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"query_execution_timeout_in_seconds":{"type":"TypeInt","optional":true},"sql_pool_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace":{"schema":{"aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"azure_devops_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"last_commit_id":{"type":"TypeString","optional":true},"project_name":{"type":"TypeString","required":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"compute_subnet_id":{"type":"TypeString","optional":true,"forceNew":true},"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"customer_managed_key":{"type":"TypeList","optional":true,"elem":{"schema":{"key_name":{"type":"TypeString","optional":true,"default":"cmk"},"key_versionless_id":{"type":"TypeString","required":true}}},"maxItems":1},"data_exfiltration_protection_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"github_repo":{"type":"TypeList","optional":true,"elem":{"schema":{"account_name":{"type":"TypeString","required":true},"branch_name":{"type":"TypeString","required":true},"git_url":{"type":"TypeString","optional":true},"last_commit_id":{"type":"TypeString","optional":true},"repository_name":{"type":"TypeString","required":true},"root_folder":{"type":"TypeString","required":true}}},"maxItems":1},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"linking_allowed_for_aad_tenant_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_resource_group_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_virtual_network_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"purview_id":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sql_aad_admin":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}}},"maxItems":1},"sql_administrator_login":{"type":"TypeString","optional":true,"forceNew":true},"sql_administrator_login_password":{"type":"TypeString","optional":true},"sql_identity_control_enabled":{"type":"TypeBool","optional":true},"storage_data_lake_gen2_filesystem_id":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_extended_auditing_policy":{"schema":{"log_monitoring_enabled":{"type":"TypeBool","optional":true,"default":true},"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_account_access_key_is_secondary":{"type":"TypeBool","optional":true,"default":false},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_key":{"schema":{"active":{"type":"TypeBool","required":true},"customer_managed_key_name":{"type":"TypeString","required":true},"customer_managed_key_versionless_id":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_security_alert_policy":{"schema":{"disabled_alerts":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"email_account_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"email_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"policy_state":{"type":"TypeString","required":true},"retention_days":{"type":"TypeInt","optional":true,"default":0},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_endpoint":{"type":"TypeString","optional":true},"synapse_workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_sql_aad_admin":{"schema":{"login":{"type":"TypeString","required":true},"object_id":{"type":"TypeString","required":true},"synapse_workspace_id":{"type":"TypeString","required":true},"tenant_id":{"type":"TypeString","required":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_synapse_workspace_vulnerability_assessment":{"schema":{"recurring_scans":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"email_subscription_admins_enabled":{"type":"TypeBool","optional":true,"default":false},"emails":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"storage_account_access_key":{"type":"TypeString","optional":true},"storage_container_path":{"type":"TypeString","required":true},"storage_container_sas_key":{"type":"TypeString","optional":true},"workspace_security_alert_policy_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_template_deployment":{"schema":{"deployment_mode":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"outputs":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"parameters_body":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"template_body":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_tenant_template_deployment":{"schema":{"debug_level":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"output_content":{"type":"TypeString","computed":true},"parameters_content":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"template_content":{"type":"TypeString","optional":true,"computed":true},"template_spec_version_id":{"type":"TypeString","optional":true}},"timeouts":{"create":180,"read":5,"delete":180,"update":180}},"azurerm_traffic_manager_azure_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_external_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_nested_endpoint":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"enabled":{"type":"TypeBool","optional":true,"default":true},"endpoint_location":{"type":"TypeString","optional":true,"computed":true},"geo_mappings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"minimum_child_endpoints":{"type":"TypeInt","required":true},"minimum_required_child_endpoints_ipv4":{"type":"TypeInt","optional":true},"minimum_required_child_endpoints_ipv6":{"type":"TypeInt","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"priority":{"type":"TypeInt","optional":true,"computed":true},"profile_id":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"first":{"type":"TypeString","required":true},"last":{"type":"TypeString","optional":true},"scope":{"type":"TypeInt","optional":true}}}},"target_resource_id":{"type":"TypeString","required":true},"weight":{"type":"TypeInt","optional":true,"computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","required":true,"elem":{"schema":{"relative_name":{"type":"TypeString","required":true,"forceNew":true},"ttl":{"type":"TypeInt","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","computed":true},"max_return":{"type":"TypeInt","optional":true},"monitor_config":{"type":"TypeList","required":true,"elem":{"schema":{"custom_header":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"expected_status_code_ranges":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","optional":true,"default":30},"path":{"type":"TypeString","optional":true},"port":{"type":"TypeInt","required":true},"protocol":{"type":"TypeString","required":true},"timeout_in_seconds":{"type":"TypeInt","optional":true,"default":10},"tolerated_number_of_failures":{"type":"TypeInt","optional":true,"default":3}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"profile_status":{"type":"TypeString","optional":true,"computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","required":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer":{"schema":{"identity":{"type":"TypeList","required":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_account":{"type":"TypeList","required":true,"elem":{"schema":{"id":{"type":"TypeString","required":true},"user_assigned_identity_id":{"type":"TypeString","required":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_video_analyzer_edge_module":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"video_analyzer_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_desktop_application":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"command_line_argument_policy":{"type":"TypeString","required":true},"command_line_arguments":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true,"computed":true},"icon_index":{"type":"TypeInt","optional":true},"icon_path":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"path":{"type":"TypeString","required":true},"show_in_portal":{"type":"TypeBool","optional":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_application_group":{"schema":{"default_desktop_display_name":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool_id":{"type":"TypeString","required":true,"forceNew":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","optional":true},"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"load_balancer_type":{"type":"TypeString","required":true},"location":{"type":"TypeString","required":true,"forceNew":true},"maximum_sessions_allowed":{"type":"TypeInt","optional":true,"default":999999},"name":{"type":"TypeString","required":true,"forceNew":true},"personal_desktop_assignment_type":{"type":"TypeString","optional":true,"forceNew":true},"preferred_app_group_type":{"type":"TypeString","optional":true,"default":"Desktop","description":"Preferred App Group type to display","forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"scheduled_agent_updates":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false},"schedule":{"type":"TypeList","optional":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","required":true},"hour_of_day":{"type":"TypeInt","required":true}}},"maxItems":2},"timezone":{"type":"TypeString","optional":true,"default":"UTC"},"use_session_host_timezone":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"start_vm_on_connect":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"validate_environment":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_host_pool_registration_info":{"schema":{"expiration_date":{"type":"TypeString","required":true},"hostpool_id":{"type":"TypeString","required":true,"forceNew":true},"token":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_desktop_scaling_plan":{"schema":{"description":{"type":"TypeString","optional":true},"exclusion_tag":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"host_pool":{"type":"TypeList","optional":true,"elem":{"schema":{"hostpool_id":{"type":"TypeString","required":true},"scaling_plan_enabled":{"type":"TypeBool","required":true}}}},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"off_peak_load_balancing_algorithm":{"type":"TypeString","required":true},"off_peak_start_time":{"type":"TypeString","required":true},"peak_load_balancing_algorithm":{"type":"TypeString","required":true},"peak_start_time":{"type":"TypeString","required":true},"ramp_down_capacity_threshold_percent":{"type":"TypeInt","required":true},"ramp_down_force_logoff_users":{"type":"TypeBool","required":true},"ramp_down_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_down_minimum_hosts_percent":{"type":"TypeInt","required":true},"ramp_down_notification_message":{"type":"TypeString","required":true},"ramp_down_start_time":{"type":"TypeString","required":true},"ramp_down_stop_hosts_when":{"type":"TypeString","required":true},"ramp_down_wait_time_minutes":{"type":"TypeInt","required":true},"ramp_up_capacity_threshold_percent":{"type":"TypeInt","optional":true},"ramp_up_load_balancing_algorithm":{"type":"TypeString","required":true},"ramp_up_minimum_hosts_percent":{"type":"TypeInt","optional":true},"ramp_up_start_time":{"type":"TypeString","required":true}}},"minItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"time_zone":{"type":"TypeString","required":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace":{"schema":{"description":{"type":"TypeString","optional":true},"friendly_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_desktop_workspace_application_group_association":{"schema":{"application_group_id":{"type":"TypeString","required":true,"forceNew":true},"workspace_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","optional":true,"forceNew":true},"default_route_table_id":{"type":"TypeString","computed":true},"hub_routing_preference":{"type":"TypeString","optional":true,"default":"ExpressRoute"},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"next_hop_ip_address":{"type":"TypeString","required":true}}}},"sku":{"type":"TypeString","optional":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_auto_scale_min_capacity":{"type":"TypeInt","optional":true,"default":2},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_bgp_connection":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"peer_asn":{"type":"TypeInt","required":true,"forceNew":true},"peer_ip":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_network_connection_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","optional":true,"computed":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"static_vnet_local_route_override_criteria":{"type":"TypeString","optional":true,"default":"Contains","forceNew":true},"static_vnet_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true},"next_hop_ip_address":{"type":"TypeString","optional":true}}}}}},"maxItems":1},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_ip":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address":{"type":"TypeString","optional":true},"private_ip_allocation_method":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true,"forceNew":true},"subnet_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"route":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_route_table_route":{"schema":{"destinations":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true,"forceNew":true},"next_hop":{"type":"TypeString","required":true},"next_hop_type":{"type":"TypeString","optional":true,"default":"ResourceId"},"route_table_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_routing_intent":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"routing_policy":{"type":"TypeList","required":true,"elem":{"schema":{"destinations":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"next_hop":{"type":"TypeString","required":true}}}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_hub_security_partner_provider":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"security_provider_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","required":true,"forceNew":true}}},"maxItems":1},"availability_set_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"delete_data_disks_on_termination":{"type":"TypeBool","optional":true,"default":false},"delete_os_disk_on_termination":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"os_profile":{"type":"TypeSet","optional":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","required":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","required":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeList","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true,"default":false},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":false},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"plan":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"primary_network_interface_id":{"type":"TypeString","optional":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"storage_data_disk":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"vhd_uri":{"type":"TypeString","optional":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"storage_image_reference":{"type":"TypeSet","optional":true,"computed":true,"forceNew":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true,"forceNew":true},"offer":{"type":"TypeString","optional":true,"forceNew":true},"publisher":{"type":"TypeString","optional":true,"forceNew":true},"sku":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"computed":true,"forceNew":true}}},"maxItems":1},"storage_os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"image_uri":{"type":"TypeString","optional":true},"managed_disk_id":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","optional":true,"computed":true},"vhd_uri":{"type":"TypeString","optional":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vm_size":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"},"maxItems":1}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_data_disk_attachment":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Attach","forceNew":true},"lun":{"type":"TypeInt","required":true,"forceNew":true},"managed_disk_id":{"type":"TypeString","required":true,"forceNew":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_machine_scale_set":{"schema":{"automatic_os_upgrade":{"type":"TypeBool","optional":true,"default":false},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"storage_uri":{"type":"TypeString","required":true}}},"maxItems":1},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"provision_after_extensions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"health_probe_id":{"type":"TypeString","optional":true},"identity":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true,"computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_profile":{"type":"TypeSet","required":true,"elem":{"schema":{"accelerated_networking":{"type":"TypeBool","optional":true},"dns_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","required":true},"public_ip_address_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","required":true},"idle_timeout":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true}}},"maxItems":1},"subnet_id":{"type":"TypeString","required":true}}}},"ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","required":true}}}},"os_profile":{"type":"TypeList","required":true,"elem":{"schema":{"admin_password":{"type":"TypeString","optional":true},"admin_username":{"type":"TypeString","required":true},"computer_name_prefix":{"type":"TypeString","required":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true}}},"maxItems":1},"os_profile_linux_config":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"disable_password_authentication":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"ssh_keys":{"type":"TypeList","optional":true,"elem":{"schema":{"key_data":{"type":"TypeString","optional":true},"path":{"type":"TypeString","required":true}}}}}},"maxItems":1},"os_profile_secrets":{"type":"TypeSet","optional":true,"elem":{"schema":{"source_vault_id":{"type":"TypeString","required":true},"vault_certificates":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_store":{"type":"TypeString","optional":true},"certificate_url":{"type":"TypeString","required":true}}}}}}},"os_profile_windows_config":{"type":"TypeSet","optional":true,"elem":{"schema":{"additional_unattend_config":{"type":"TypeList","optional":true,"elem":{"schema":{"component":{"type":"TypeString","required":true},"content":{"type":"TypeString","required":true},"pass":{"type":"TypeString","required":true},"setting_name":{"type":"TypeString","required":true}}}},"enable_automatic_upgrades":{"type":"TypeBool","optional":true},"provision_vm_agent":{"type":"TypeBool","optional":true},"winrm":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true},"protocol":{"type":"TypeString","required":true}}}}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"product":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true}}},"maxItems":1},"priority":{"type":"TypeString","optional":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"max_batch_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_instance_percent":{"type":"TypeInt","optional":true,"default":20},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","optional":true,"default":20},"pause_time_between_batches":{"type":"TypeString","optional":true,"default":"PT0S"}}},"maxItems":1},"single_placement_group":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"sku":{"type":"TypeList","required":true,"elem":{"schema":{"capacity":{"type":"TypeInt","required":true},"name":{"type":"TypeString","required":true},"tier":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"storage_profile_data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"lun":{"type":"TypeInt","required":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true}}}},"storage_profile_image_reference":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"id":{"type":"TypeString","optional":true},"offer":{"type":"TypeString","optional":true},"publisher":{"type":"TypeString","optional":true},"sku":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true}}},"maxItems":1},"storage_profile_os_disk":{"type":"TypeSet","required":true,"elem":{"schema":{"caching":{"type":"TypeString","optional":true,"computed":true},"create_option":{"type":"TypeString","required":true},"image":{"type":"TypeString","optional":true},"managed_disk_type":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","optional":true},"os_type":{"type":"TypeString","optional":true},"vhd_containers":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"upgrade_policy_mode":{"type":"TypeString","required":true},"zones":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_virtual_machine_scale_set_extension":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"failure_suppression_enabled":{"type":"TypeBool","optional":true,"default":false},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true,"forceNew":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true,"forceNew":true},"type_handler_version":{"type":"TypeString","required":true},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_machine_scale_set_packet_capture":{"schema":{"filter":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"local_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"local_port":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true},"remote_ip_address":{"type":"TypeString","optional":true,"forceNew":true},"remote_port":{"type":"TypeString","optional":true,"forceNew":true}}}},"machine_scope":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"exclude_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}},"include_instance_ids":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"maximum_bytes_per_packet":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"maximum_bytes_per_session":{"type":"TypeInt","optional":true,"default":1073741824,"forceNew":true},"maximum_capture_duration_in_seconds":{"type":"TypeInt","optional":true,"default":18000,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_watcher_id":{"type":"TypeString","required":true,"forceNew":true},"storage_location":{"type":"TypeList","required":true,"forceNew":true,"elem":{"schema":{"file_path":{"type":"TypeString","optional":true},"storage_account_id":{"type":"TypeString","optional":true},"storage_path":{"type":"TypeString","computed":true}}},"maxItems":1},"virtual_machine_scale_set_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"bgp_community":{"type":"TypeString","optional":true},"ddos_protection_plan":{"type":"TypeList","optional":true,"elem":{"schema":{"enable":{"type":"TypeBool","required":true},"id":{"type":"TypeString","required":true}}},"maxItems":1},"dns_servers":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"encryption":{"type":"TypeList","optional":true,"elem":{"schema":{"enforcement":{"type":"TypeString","required":true}}},"maxItems":1},"flow_timeout_in_minutes":{"type":"TypeInt","optional":true},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subnet":{"type":"TypeSet","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","required":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"security_group":{"type":"TypeString","optional":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_dns_servers":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","optional":true,"computed":true},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","optional":true},"peer_weight":{"type":"TypeInt","optional":true},"peering_addresses":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"apipa_addresses":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"default_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_name":{"type":"TypeString","optional":true,"computed":true},"tunnel_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":2,"minItems":1}}},"maxItems":1},"custom_route":{"type":"TypeList","optional":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"default_local_network_gateway_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"generation":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"name":{"type":"TypeString","optional":true,"default":"vnetGatewayConfig"},"private_ip_address_allocation":{"type":"TypeString","optional":true,"default":"Dynamic"},"public_ip_address_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","required":true}}},"maxItems":3},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","required":true,"forceNew":true},"vpn_client_configuration":{"type":"TypeList","optional":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","optional":true},"aad_issuer":{"type":"TypeString","optional":true},"aad_tenant":{"type":"TypeString","optional":true},"address_space":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","optional":true},"radius_server_secret":{"type":"TypeString","optional":true},"revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"vpn_auth_types":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"},"maxItems":3},"vpn_client_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"vpn_type":{"type":"TypeString","optional":true,"default":"RouteBased","forceNew":true}},"timeouts":{"create":90,"read":5,"delete":60,"update":60}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","optional":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default","forceNew":true},"connection_protocol":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_bgp_addresses":{"type":"TypeList","optional":true,"elem":{"schema":{"primary":{"type":"TypeString","required":true},"secondary":{"type":"TypeString","optional":true}}},"maxItems":1},"dpd_timeout_seconds":{"type":"TypeInt","optional":true,"forceNew":true},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"enable_bgp":{"type":"TypeBool","optional":true,"computed":true},"express_route_circuit_id":{"type":"TypeString","optional":true,"forceNew":true},"express_route_gateway_bypass":{"type":"TypeBool","optional":true,"computed":true},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_datasize":{"type":"TypeInt","optional":true,"computed":true},"sa_lifetime":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"local_network_gateway_id":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"peer_virtual_network_gateway_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_weight":{"type":"TypeInt","optional":true,"computed":true},"shared_key":{"type":"TypeString","optional":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","required":true,"forceNew":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","optional":true,"computed":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_gateway_nat_rule":{"schema":{"external_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_mapping":{"type":"TypeList","required":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"virtual_network_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_network_peering":{"schema":{"allow_forwarded_traffic":{"type":"TypeBool","optional":true,"default":false},"allow_gateway_transit":{"type":"TypeBool","optional":true,"default":false},"allow_virtual_network_access":{"type":"TypeBool","optional":true,"default":true},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_virtual_network_id":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"triggers":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_remote_gateways":{"type":"TypeBool","optional":true,"default":false},"virtual_network_name":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","optional":true,"default":true},"disable_vpn_encryption":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"office365_local_breakout_category":{"type":"TypeString","optional":true,"default":"None"},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","optional":true,"default":"Standard"}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vmware_cluster":{"schema":{"cluster_node_count":{"type":"TypeInt","required":true},"cluster_number":{"type":"TypeInt","computed":true},"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"vmware_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":300,"read":5,"delete":300,"update":300}},"azurerm_vmware_express_route_authorization":{"schema":{"express_route_authorization_id":{"type":"TypeString","computed":true},"express_route_authorization_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"private_cloud_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_netapp_volume_attachment":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"netapp_volume_id":{"type":"TypeString","required":true,"forceNew":true},"vmware_cluster_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","optional":true,"default":false},"location":{"type":"TypeString","required":true,"forceNew":true},"management_cluster":{"type":"TypeList","required":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","required":true}}},"maxItems":1},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"network_subnet_cidr":{"type":"TypeString","required":true,"forceNew":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"nsxt_password":{"type":"TypeString","optional":true,"forceNew":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcenter_password":{"type":"TypeString","optional":true,"forceNew":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"create":600,"read":5,"delete":600,"update":600}},"azurerm_voice_services_communications_gateway":{"schema":{"api_bridge":{"type":"TypeString","optional":true},"auto_generated_domain_name_label_scope":{"type":"TypeString","optional":true,"default":"TenantReuse","forceNew":true},"codecs":{"type":"TypeString","required":true},"connectivity":{"type":"TypeString","required":true,"forceNew":true},"e911_type":{"type":"TypeString","required":true},"emergency_dial_strings":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"microsoft_teams_voicemail_pilot_number":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true,"forceNew":true},"on_prem_mcp_enabled":{"type":"TypeBool","optional":true},"platforms":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_location":{"type":"TypeSet","required":true,"elem":{"schema":{"allowed_media_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"allowed_signaling_source_address_prefixes":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"esrp_addresses":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true},"operator_addresses":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_voice_services_communications_gateway_test_line":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"phone_number":{"type":"TypeString","required":true},"purpose":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"voice_services_communications_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway":{"schema":{"bgp_route_translation_for_nat_enabled":{"type":"TypeBool","optional":true,"default":false},"bgp_settings":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true,"forceNew":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"instance_1_bgp_peering_address":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"peer_weight":{"type":"TypeInt","required":true,"forceNew":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"routing_preference":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"scale_unit":{"type":"TypeInt","optional":true,"default":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_gateway_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true,"forceNew":true},"remote_vpn_site_id":{"type":"TypeString","required":true,"forceNew":true},"routing":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"associated_route_table":{"type":"TypeString","required":true},"inbound_route_map_id":{"type":"TypeString","optional":true},"outbound_route_map_id":{"type":"TypeString","optional":true},"propagated_route_table":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"labels":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}}}},"maxItems":1}}},"maxItems":1},"traffic_selector_policy":{"type":"TypeSet","optional":true,"elem":{"schema":{"local_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"remote_address_ranges":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}}}}},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true},"vpn_link":{"type":"TypeList","required":true,"elem":{"schema":{"bandwidth_mbps":{"type":"TypeInt","optional":true,"default":10},"bgp_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"connection_mode":{"type":"TypeString","optional":true,"default":"Default"},"custom_bgp_address":{"type":"TypeSet","optional":true,"elem":{"schema":{"ip_address":{"type":"TypeString","required":true},"ip_configuration_id":{"type":"TypeString","required":true}}}},"egress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ingress_nat_rule_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"encryption_algorithm":{"type":"TypeString","required":true},"ike_encryption_algorithm":{"type":"TypeString","required":true},"ike_integrity_algorithm":{"type":"TypeString","required":true},"integrity_algorithm":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kb":{"type":"TypeInt","required":true},"sa_lifetime_sec":{"type":"TypeInt","required":true}}},"minItems":1},"local_azure_ip_address_enabled":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"policy_based_traffic_selector_enabled":{"type":"TypeBool","optional":true,"default":false},"protocol":{"type":"TypeString","optional":true,"default":"IKEv2"},"ratelimit_enabled":{"type":"TypeBool","optional":true,"default":false},"route_weight":{"type":"TypeInt","optional":true,"default":0},"shared_key":{"type":"TypeString","optional":true},"vpn_site_link_id":{"type":"TypeString","required":true,"forceNew":true}}},"minItems":1}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_gateway_nat_rule":{"schema":{"external_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"external_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"internal_address_space_mappings":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"internal_mapping":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"address_space":{"type":"TypeString","required":true},"port_range":{"type":"TypeString","optional":true}}}},"ip_configuration_id":{"type":"TypeString","optional":true},"mode":{"type":"TypeString","optional":true,"default":"EgressSnat","forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","optional":true,"default":"Static","forceNew":true},"vpn_gateway_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_server_configuration":{"schema":{"azure_active_directory_authentication":{"type":"TypeList","optional":true,"elem":{"schema":{"audience":{"type":"TypeString","required":true},"issuer":{"type":"TypeString","required":true},"tenant":{"type":"TypeString","required":true}}},"minItems":1},"client_revoked_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}},"ipsec_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"dh_group":{"type":"TypeString","required":true},"ike_encryption":{"type":"TypeString","required":true},"ike_integrity":{"type":"TypeString","required":true},"ipsec_encryption":{"type":"TypeString","required":true},"ipsec_integrity":{"type":"TypeString","required":true},"pfs_group":{"type":"TypeString","required":true},"sa_data_size_kilobytes":{"type":"TypeInt","required":true},"sa_lifetime_seconds":{"type":"TypeInt","required":true}}},"maxItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"radius":{"type":"TypeList","optional":true,"elem":{"schema":{"client_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","required":true}}}},"server":{"type":"TypeList","optional":true,"elem":{"schema":{"address":{"type":"TypeString","required":true},"score":{"type":"TypeInt","required":true},"secret":{"type":"TypeString","required":true}}}},"server_root_certificate":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"public_cert_data":{"type":"TypeString","required":true}}}}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"vpn_authentication_types":{"type":"TypeList","required":true,"elem":{"type":"TypeString"}},"vpn_protocols":{"type":"TypeSet","optional":true,"computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":90,"read":5,"delete":90,"update":90}},"azurerm_vpn_server_configuration_policy_group":{"schema":{"is_default":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"policy":{"type":"TypeSet","required":true,"elem":{"schema":{"name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true},"value":{"type":"TypeString","required":true}}}},"priority":{"type":"TypeInt","optional":true,"default":0},"vpn_server_configuration_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_vpn_site":{"schema":{"address_cidrs":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"device_model":{"type":"TypeString","optional":true},"device_vendor":{"type":"TypeString","optional":true},"link":{"type":"TypeList","optional":true,"elem":{"schema":{"bgp":{"type":"TypeList","optional":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"peering_address":{"type":"TypeString","required":true}}},"maxItems":1},"fqdn":{"type":"TypeString","optional":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"provider_name":{"type":"TypeString","optional":true},"speed_in_mbps":{"type":"TypeInt","optional":true,"default":0}}},"minItems":1},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"o365_policy":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"traffic_category":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allow_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"default_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false},"optimize_endpoint_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_app_active_slot":{"schema":{"last_successful_swap":{"type":"TypeString","description":"The timestamp of the last successful swap with `Production`","computed":true},"overwrite_network_config":{"type":"TypeBool","optional":true,"default":true,"description":"The swap action should overwrite the Production slot's network configuration with the configuration from this slot. Defaults to `true`.","forceNew":true},"slot_id":{"type":"TypeString","required":true,"description":"The ID of the Slot to swap with `Production`."}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_app_hybrid_connection":{"schema":{"hostname":{"type":"TypeString","required":true,"description":"The hostname of the endpoint."},"namespace_name":{"type":"TypeString","description":"The name of the Relay Namespace.","computed":true},"port":{"type":"TypeInt","required":true,"description":"The port to use for the endpoint"},"relay_id":{"type":"TypeString","required":true,"description":"The ID of the Relay Hybrid Connection to use.","forceNew":true},"relay_name":{"type":"TypeString","description":"The name of the Relay in use.","computed":true},"send_key_name":{"type":"TypeString","optional":true,"default":"RootManageSharedAccessKey","description":"The name of the Relay key with `Send` permission to use. Defaults to `RootManageSharedAccessKey`"},"send_key_value":{"type":"TypeString","description":"The Primary Access Key for the `send_key_name`","computed":true},"service_bus_namespace":{"type":"TypeString","description":"The Service Bus Namespace.","computed":true},"service_bus_suffix":{"type":"TypeString","description":"The suffix for the endpoint.","computed":true},"web_app_id":{"type":"TypeString","required":true,"description":"The ID of the Web App for this Hybrid Connection.","forceNew":true}},"timeouts":{"create":30,"read":5,"delete":5,"update":30}},"azurerm_web_application_firewall_policy":{"schema":{"custom_rules":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"group_rate_limit_by":{"type":"TypeString","optional":true},"match_conditions":{"type":"TypeList","required":true,"elem":{"schema":{"match_values":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"match_variables":{"type":"TypeList","required":true,"elem":{"schema":{"selector":{"type":"TypeString","optional":true},"variable_name":{"type":"TypeString","required":true}}}},"negation_condition":{"type":"TypeBool","optional":true},"operator":{"type":"TypeString","required":true},"transforms":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true},"priority":{"type":"TypeInt","required":true},"rate_limit_duration":{"type":"TypeString","optional":true},"rate_limit_threshold":{"type":"TypeInt","optional":true},"rule_type":{"type":"TypeString","required":true}}}},"http_listener_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"managed_rules":{"type":"TypeList","required":true,"elem":{"schema":{"exclusion":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rule_set":{"type":"TypeList","optional":true,"elem":{"schema":{"rule_group":{"type":"TypeList","optional":true,"elem":{"schema":{"excluded_rules":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","optional":true,"default":"3.2"}}},"maxItems":1},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","required":true},"selector_match_operator":{"type":"TypeString","required":true}}}},"managed_rule_set":{"type":"TypeList","required":true,"elem":{"schema":{"rule_group_override":{"type":"TypeList","optional":true,"elem":{"schema":{"disabled_rules":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"rule":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true},"enabled":{"type":"TypeBool","optional":true},"id":{"type":"TypeString","required":true}}}},"rule_group_name":{"type":"TypeString","required":true}}}},"type":{"type":"TypeString","optional":true,"default":"OWASP"},"version":{"type":"TypeString","required":true}}}}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"path_based_rule_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"policy_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"file_upload_limit_in_mb":{"type":"TypeInt","optional":true,"default":100},"log_scrubbing":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"rule":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true},"match_variable":{"type":"TypeString","required":true},"selector":{"type":"TypeString","optional":true,"description":"When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to."},"selector_match_operator":{"type":"TypeString","optional":true,"default":"Equals"}}}}}},"maxItems":1},"max_request_body_size_in_kb":{"type":"TypeInt","optional":true,"default":128},"mode":{"type":"TypeString","optional":true,"default":"Prevention"},"request_body_check":{"type":"TypeBool","optional":true,"default":true},"request_body_inspect_limit_in_kb":{"type":"TypeInt","optional":true,"default":128}}},"maxItems":1},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"capacity":{"type":"TypeInt","optional":true,"default":1},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"live_trace":{"type":"TypeList","optional":true,"elem":{"schema":{"connectivity_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"http_request_logs_enabled":{"type":"TypeBool","optional":true,"default":true},"messaging_logs_enabled":{"type":"TypeBool","optional":true,"default":true}}},"maxItems":1},"local_auth_enabled":{"type":"TypeBool","optional":true,"default":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","optional":true,"default":false},"version":{"type":"TypeString","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_custom_certificate":{"schema":{"certificate_version":{"type":"TypeString","computed":true},"custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_custom_domain":{"schema":{"domain_name":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_custom_certificate_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30}},"azurerm_web_pubsub_hub":{"schema":{"anonymous_connections_enabled":{"type":"TypeBool","optional":true,"default":false},"event_handler":{"type":"TypeList","optional":true,"elem":{"schema":{"auth":{"type":"TypeList","optional":true,"elem":{"schema":{"managed_identity_id":{"type":"TypeString","required":true}}},"maxItems":1,"minItems":1},"system_events":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"url_template":{"type":"TypeString","required":true},"user_event_pattern":{"type":"TypeString","optional":true}}}},"event_listener":{"type":"TypeList","optional":true,"elem":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"eventhub_namespace_name":{"type":"TypeString","required":true},"system_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"user_event_name_filter":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_network_acl":{"schema":{"default_action":{"type":"TypeString","optional":true,"default":"Deny"},"private_endpoint":{"type":"TypeSet","optional":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","required":true}}}},"public_network":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"denied_request_types":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_web_pubsub_shared_private_link_resource":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"request_message":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","required":true,"forceNew":true},"target_resource_id":{"type":"TypeString","required":true,"forceNew":true},"web_pubsub_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting"},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the function app use Client Certificates"},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser` "},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App enabled."},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"description":"Can the Function App only be accessed via HTTPS?","computed":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Function App.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true,"description":"The ID of the App Service Plan within which to create this Function App"},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Function App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_function_app_slot":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs for [App Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.","elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"builtin_logging_enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting."},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use Client Certificates."},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Optional","description":"The mode of the Function App Slot's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`."},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"content_share_force_disabled":{"type":"TypeBool","optional":true,"default":false,"description":"Force disable the content share settings."},"custom_domain_verification_id":{"type":"TypeString","description":"The identifier used by App Service to perform domain ownership verification via DNS TXT record.","computed":true},"daily_memory_time_quota":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps in Consumption Plans."},"default_hostname":{"type":"TypeString","description":"The default hostname of the Windows Function App Slot.","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Is the Windows Function App Slot enabled."},"function_app_id":{"type":"TypeString","required":true,"description":"The ID of the Windows Function App this Slot is a member of.","forceNew":true},"functions_extension_version":{"type":"TypeString","optional":true,"default":"~4","description":"The runtime version associated with the Function App Slot."},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false,"description":"Can the Function App Slot only be accessed via HTTPS?"},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"description":"The User Assigned Identity to use for Key Vault access.","computed":true},"kind":{"type":"TypeString","description":"The Kind value for this Windows Function App Slot.","computed":true},"name":{"type":"TypeString","required":true,"description":"Specifies the name of the Windows Function App Slot.","forceNew":true},"outbound_ip_address_list":{"type":"TypeList","description":"A list of outbound IP addresses. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12`.","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","description":"A list of possible outbound IP addresses, not all of which are necessarily in use. This is a superset of `outbound_ip_address_list`. For example `[\"52.23.25.3\", \"52.143.43.12\"]`.","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","description":"A comma separated list of possible outbound IP addresses as a string. For example `52.23.25.3,52.143.43.12,52.143.43.17`. This is a superset of `outbound_ip_addresses`. For example `[\"52.23.25.3\", \"52.143.43.12\",\"52.143.43.17\"]`.","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"description":"If this Windows Web App is Always On enabled. Defaults to `false`.","computed":true},"api_definition_url":{"type":"TypeString","optional":true,"description":"The URL of the API definition that describes this Windows Function App."},"api_management_api_id":{"type":"TypeString","optional":true,"description":"The ID of the API Management API for this Windows Function App."},"app_command_line":{"type":"TypeString","optional":true,"description":"The program and any arguments used to launch this app via the command line. (Example `node myapp.js`)."},"app_scale_limit":{"type":"TypeInt","optional":true,"description":"The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.","computed":true},"app_service_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","optional":true,"default":35,"description":"The amount of disk space to use for logs. Valid values are between `25` and `100`."},"retention_period_days":{"type":"TypeInt","optional":true,"description":"The retention period for logs in days. Valid values are between `0` and `99999`. Defaults to `0` (never delete)."}}},"maxItems":1},"application_insights_connection_string":{"type":"TypeString","optional":true,"description":"The Connection String for linking the Windows Function App to Application Insights."},"application_insights_key":{"type":"TypeString","optional":true,"description":"The Instrumentation Key for connecting the Windows Function App to Application Insights."},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","optional":true,"default":"v4.0","description":"The version of .Net. Possible values are `v3.0`, `v4.0`, `v6.0` and `v7.0`"},"java_version":{"type":"TypeString","optional":true,"description":"The version of Java to use. Possible values are `1.8`, `11` and `17`"},"node_version":{"type":"TypeString","optional":true,"description":"The version of Node to use. Possible values include `12`, `14`, `16` and `18`"},"powershell_core_version":{"type":"TypeString","optional":true,"description":"The PowerShell Core version to use. Possible values are `7`, and `7.2`"},"use_custom_runtime":{"type":"TypeBool","optional":true,"description":"Does the Function App use a custom Application Stack?","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","optional":true,"description":"Should the DotNet process use an isolated runtime. Defaults to `false`.","computed":true}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"description":"Specifies a list of Default Documents for the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","description":"Is detailed error logging enabled","computed":true},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"description":"The number of minimum instances for this Windows Function App. Only affects apps on Elastic Premium plans.","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled","description":"State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `Disabled`."},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"default":0,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`"},"health_check_path":{"type":"TypeString","optional":true,"description":"The path to be checked for this function app health."},"http2_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Specifies if the http2 protocol should be enabled. Defaults to `false`."},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests","description":"The Site load balancing mode. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted."},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated","description":"The Managed Pipeline mode. Possible values include: `Integrated`, `Classic`. Defaults to `Integrated`."},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"description":"The number of pre-warmed instances for this function app. Only affects apps on an Elastic Premium plan.","computed":true},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Remote Debugging be enabled. Defaults to `false`."},"remote_debugging_version":{"type":"TypeString","optional":true,"description":"The Remote Debugging Version. Possible values include `VS2017`, `VS2019`, and `VS2022`","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"description":"Should Functions Runtime Scale Monitoring be enabled."},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2","description":"Configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`."},"scm_type":{"type":"TypeString","description":"The SCM Type in use by the Windows Function App.","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Function App `ip_restriction` configuration be used for the SCM also."},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true,"description":"Should the Windows Web App use a 32-bit worker."},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should Web Sockets be enabled. Defaults to `false`."},"windows_fx_version":{"type":"TypeString","description":"The Windows FX Version string.","computed":true},"worker_count":{"type":"TypeInt","optional":true,"description":"The number of Workers for this Windows Function App.","computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"storage_account_access_key":{"type":"TypeString","optional":true,"description":"The access key which will be used to access the storage account for the Function App Slot."},"storage_account_name":{"type":"TypeString","optional":true,"description":"The backend storage account name which will be used by this Function App Slot."},"storage_key_vault_secret_id":{"type":"TypeString","optional":true,"description":"The Key Vault Secret ID, including version, that contains the Connection String to connect to the storage account for this Function App."},"storage_uses_managed_identity":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Function App Slot use its Managed Identity to access storage?"},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_virtual_machine":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"allow_extension_operations":{"type":"TypeBool","optional":true,"default":true},"availability_set_id":{"type":"TypeString","optional":true,"forceNew":true},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"bypass_platform_safety_checks_on_user_schedule_enabled":{"type":"TypeBool","optional":true,"default":false},"capacity_reservation_group_id":{"type":"TypeString","optional":true},"computer_name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true,"forceNew":true},"dedicated_host_group_id":{"type":"TypeString","optional":true},"dedicated_host_id":{"type":"TypeString","optional":true},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true},"order":{"type":"TypeInt","optional":true,"default":0},"tag":{"type":"TypeString","optional":true},"version_id":{"type":"TypeString","required":true}}},"maxItems":100},"hotpatching_enabled":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface_ids":{"type":"TypeList","required":true,"elem":{"type":"TypeString"},"minItems":1},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"name":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"patch_assessment_mode":{"type":"TypeString","optional":true,"default":"ImageDefault"},"patch_mode":{"type":"TypeString","optional":true,"default":"AutomaticByOS"},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain":{"type":"TypeInt","optional":true,"default":-1,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reboot_setting":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"size":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true,"forceNew":true},"source_image_reference":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true,"forceNew":true},"version":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true,"forceNew":true},"user_data":{"type":"TypeString","optional":true},"virtual_machine_id":{"type":"TypeString","computed":true},"virtual_machine_scale_set_id":{"type":"TypeString","optional":true,"forceNew":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone":{"type":"TypeString","optional":true,"forceNew":true}},"timeouts":{"create":45,"read":5,"delete":45,"update":45}},"azurerm_windows_virtual_machine_scale_set":{"schema":{"additional_capabilities":{"type":"TypeList","optional":true,"elem":{"schema":{"ultra_ssd_enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true}}},"maxItems":1},"additional_unattend_content":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"content":{"type":"TypeString","required":true,"forceNew":true},"setting":{"type":"TypeString","required":true,"forceNew":true}}}},"admin_password":{"type":"TypeString","required":true,"forceNew":true},"admin_username":{"type":"TypeString","required":true,"forceNew":true},"automatic_instance_repair":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"grace_period":{"type":"TypeString","optional":true,"default":"PT30M"}}},"maxItems":1},"automatic_os_upgrade_policy":{"type":"TypeList","optional":true,"elem":{"schema":{"disable_automatic_rollback":{"type":"TypeBool","required":true},"enable_automatic_os_upgrade":{"type":"TypeBool","required":true}}},"maxItems":1},"boot_diagnostics":{"type":"TypeList","optional":true,"elem":{"schema":{"storage_account_uri":{"type":"TypeString","optional":true}}},"maxItems":1},"capacity_reservation_group_id":{"type":"TypeString","optional":true,"forceNew":true},"computer_name_prefix":{"type":"TypeString","optional":true,"computed":true,"forceNew":true},"custom_data":{"type":"TypeString","optional":true},"data_disk":{"type":"TypeList","optional":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"create_option":{"type":"TypeString","optional":true,"default":"Empty"},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","required":true},"lun":{"type":"TypeInt","required":true},"name":{"type":"TypeString","optional":true},"storage_account_type":{"type":"TypeString","required":true},"ultra_ssd_disk_iops_read_write":{"type":"TypeInt","optional":true,"computed":true},"ultra_ssd_disk_mbps_read_write":{"type":"TypeInt","optional":true,"computed":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}}},"do_not_run_extensions_on_overprovisioned_machines":{"type":"TypeBool","optional":true,"default":false},"edge_zone":{"type":"TypeString","optional":true,"forceNew":true},"enable_automatic_updates":{"type":"TypeBool","optional":true,"default":true},"encryption_at_host_enabled":{"type":"TypeBool","optional":true},"eviction_policy":{"type":"TypeString","optional":true,"forceNew":true},"extension":{"type":"TypeSet","optional":true,"computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","optional":true,"default":true},"automatic_upgrade_enabled":{"type":"TypeBool","optional":true},"force_update_tag":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"protected_settings":{"type":"TypeString","optional":true},"protected_settings_from_key_vault":{"type":"TypeList","optional":true,"elem":{"schema":{"secret_url":{"type":"TypeString","required":true},"source_vault_id":{"type":"TypeString","required":true}}},"maxItems":1},"provision_after_extensions":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","required":true},"settings":{"type":"TypeString","optional":true},"type":{"type":"TypeString","required":true},"type_handler_version":{"type":"TypeString","required":true}}}},"extension_operations_enabled":{"type":"TypeBool","optional":true,"computed":true,"forceNew":true},"extensions_time_budget":{"type":"TypeString","optional":true,"default":"PT1H30M"},"gallery_application":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true},"version_id":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":100},"gallery_applications":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"configuration_reference_blob_uri":{"type":"TypeString","optional":true,"forceNew":true},"order":{"type":"TypeInt","optional":true,"default":0,"forceNew":true},"package_reference_id":{"type":"TypeString","required":true,"forceNew":true},"tag":{"type":"TypeString","optional":true,"forceNew":true}}},"maxItems":100},"health_probe_id":{"type":"TypeString","optional":true},"host_group_id":{"type":"TypeString","optional":true,"forceNew":true},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"instances":{"type":"TypeInt","required":true},"license_type":{"type":"TypeString","optional":true},"location":{"type":"TypeString","required":true,"forceNew":true},"max_bid_price":{"type":"TypeFloat","optional":true,"default":-1},"name":{"type":"TypeString","required":true,"forceNew":true},"network_interface":{"type":"TypeList","required":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","optional":true,"default":false},"enable_ip_forwarding":{"type":"TypeBool","optional":true,"default":false},"ip_configuration":{"type":"TypeList","required":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":20},"load_balancer_backend_address_pool_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary":{"type":"TypeBool","optional":true,"default":false},"public_ip_address":{"type":"TypeList","optional":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","optional":true},"idle_timeout_in_minutes":{"type":"TypeInt","optional":true,"computed":true},"ip_tag":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"tag":{"type":"TypeString","required":true,"forceNew":true},"type":{"type":"TypeString","required":true,"forceNew":true}}}},"name":{"type":"TypeString","required":true},"public_ip_prefix_id":{"type":"TypeString","optional":true,"forceNew":true},"version":{"type":"TypeString","optional":true,"default":"IPv4","forceNew":true}}}},"subnet_id":{"type":"TypeString","optional":true},"version":{"type":"TypeString","optional":true,"default":"IPv4"}}}},"name":{"type":"TypeString","required":true,"forceNew":true},"network_security_group_id":{"type":"TypeString","optional":true},"primary":{"type":"TypeBool","optional":true,"default":false}}}},"os_disk":{"type":"TypeList","required":true,"elem":{"schema":{"caching":{"type":"TypeString","required":true},"diff_disk_settings":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"option":{"type":"TypeString","required":true,"forceNew":true},"placement":{"type":"TypeString","optional":true,"default":"CacheDisk","forceNew":true}}},"maxItems":1},"disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"disk_size_gb":{"type":"TypeInt","optional":true,"computed":true},"secure_vm_disk_encryption_set_id":{"type":"TypeString","optional":true,"forceNew":true},"security_encryption_type":{"type":"TypeString","optional":true,"forceNew":true},"storage_account_type":{"type":"TypeString","required":true,"forceNew":true},"write_accelerator_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"overprovision":{"type":"TypeBool","optional":true,"default":true},"plan":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"forceNew":true},"product":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true}}},"maxItems":1},"platform_fault_domain_count":{"type":"TypeInt","optional":true,"computed":true,"forceNew":true},"priority":{"type":"TypeString","optional":true,"default":"Regular","forceNew":true},"provision_vm_agent":{"type":"TypeBool","optional":true,"default":true,"forceNew":true},"proximity_placement_group_id":{"type":"TypeString","optional":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"rolling_upgrade_policy":{"type":"TypeList","optional":true,"forceNew":true,"elem":{"schema":{"cross_zone_upgrades_enabled":{"type":"TypeBool","optional":true},"max_batch_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_instance_percent":{"type":"TypeInt","required":true},"max_unhealthy_upgraded_instance_percent":{"type":"TypeInt","required":true},"pause_time_between_batches":{"type":"TypeString","required":true},"prioritize_unhealthy_instances_enabled":{"type":"TypeBool","optional":true}}},"maxItems":1},"scale_in":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"force_deletion_enabled":{"type":"TypeBool","optional":true,"default":false},"rule":{"type":"TypeString","optional":true,"default":"Default"}}},"maxItems":1},"scale_in_policy":{"type":"TypeString","optional":true,"computed":true},"secret":{"type":"TypeList","optional":true,"elem":{"schema":{"certificate":{"type":"TypeSet","required":true,"elem":{"schema":{"store":{"type":"TypeString","required":true},"url":{"type":"TypeString","required":true}}},"minItems":1},"key_vault_id":{"type":"TypeString","required":true}}}},"secure_boot_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"single_placement_group":{"type":"TypeBool","optional":true,"default":true},"sku":{"type":"TypeString","required":true},"source_image_id":{"type":"TypeString","optional":true},"source_image_reference":{"type":"TypeList","optional":true,"elem":{"schema":{"offer":{"type":"TypeString","required":true,"forceNew":true},"publisher":{"type":"TypeString","required":true,"forceNew":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","required":true}}},"maxItems":1},"spot_restore":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"timeout":{"type":"TypeString","optional":true,"default":"PT1H","forceNew":true}}},"maxItems":1},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"terminate_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"termination_notification":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","required":true},"timeout":{"type":"TypeString","optional":true,"default":"PT5M"}}},"maxItems":1},"timezone":{"type":"TypeString","optional":true},"unique_id":{"type":"TypeString","computed":true},"upgrade_mode":{"type":"TypeString","optional":true,"default":"Manual","forceNew":true},"user_data":{"type":"TypeString","optional":true},"vtpm_enabled":{"type":"TypeBool","optional":true,"forceNew":true},"winrm_listener":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"schema":{"certificate_url":{"type":"TypeString","optional":true,"forceNew":true},"protocol":{"type":"TypeString","required":true,"forceNew":true}}}},"zone_balance":{"type":"TypeBool","optional":true,"default":false,"forceNew":true},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"create":60,"read":5,"delete":60,"update":60}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_plan_id":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"default":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1},"connection_string_names":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"minItems":1}}},"maxItems":1},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}},"azurerm_windows_web_app_slot":{"schema":{"app_service_id":{"type":"TypeString","required":true,"forceNew":true},"app_settings":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret for the Client ID. Cannot be used with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client. Cannot be used with `client_secret`."}}},"maxItems":1},"additional_login_parameters":{"type":"TypeMap","optional":true,"description":"Specifies a map of Login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.","elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","optional":true,"description":"The default authentication provider to use when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","required":true,"description":"Should the Authentication / Authorization feature be enabled?"},"facebook":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret":{"type":"TypeString","optional":true,"description":"The App Secret of the Facebook app used for Facebook Login. Cannot be specified with `app_secret_setting_name`."},"app_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login. Cannot be specified with `app_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"github":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret":{"type":"TypeString","optional":true,"description":"The Client Secret of the GitHub app used for GitHub Login. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret":{"type":"TypeString","optional":true,"description":"The client secret associated with the Google web application. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the `client_secret` value used for Google Login. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","elem":{"type":"TypeString"}}}},"maxItems":1},"issuer":{"type":"TypeString","optional":true,"description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens."},"microsoft":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret":{"type":"TypeString","optional":true,"description":"The OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret_setting_name`."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication. Cannot be specified with `client_secret`."},"oauth_scopes":{"type":"TypeList","optional":true,"description":"The list of OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication. If not specified, `wl.basic` is used as the default scope.","elem":{"type":"TypeString"}}}},"maxItems":1},"runtime_version":{"type":"TypeString","optional":true,"description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Windows Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`."},"twitter":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret":{"type":"TypeString","optional":true,"description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret_setting_name`."},"consumer_secret_setting_name":{"type":"TypeString","optional":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in. Cannot be specified with `consumer_secret`."}}},"maxItems":1},"unauthenticated_client_action":{"type":"TypeString","optional":true,"description":"The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.","computed":true}}},"maxItems":1},"auth_settings_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","optional":true,"description":"The list of allowed Applications for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","optional":true,"description":"The list of allowed Group Names for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","optional":true,"description":"The list of allowed Identities for the Default Authorisation Policy.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Active Directory."},"client_secret_certificate_thumbprint":{"type":"TypeString","optional":true,"description":"The thumbprint of the certificate used for signing purposes."},"client_secret_setting_name":{"type":"TypeString","optional":true,"description":"The App Setting name that contains the client secret of the Client."},"jwt_allowed_client_applications":{"type":"TypeList","optional":true,"description":"A list of Allowed Client Applications in the JWT Claim.","elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","optional":true,"description":"A list of Allowed Groups in the JWT Claim.","elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","optional":true,"description":"A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.","elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","required":true,"description":"The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`."},"www_authentication_disabled":{"type":"TypeBool","optional":true,"description":"Should the www-authenticate provider should be omitted from the request? Defaults to `false`"}}},"maxItems":1},"apple_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Apple web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Apple Login."},"login_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"auth_enabled":{"type":"TypeBool","optional":true,"description":"Should the AuthV2 Settings be enabled. Defaults to `false`"},"azure_static_web_app_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with Azure Static Web App Authentication."}}},"maxItems":1},"config_file_path":{"type":"TypeString","optional":true,"description":"The path to the App Auth settings. **Note:** Relative Paths are evaluated from the Site Root directory."},"custom_oidc_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`.","computed":true},"client_id":{"type":"TypeString","required":true,"description":"The ID of the Client to use to authenticate with this Custom OIDC."},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Custom OIDC Authentication Provider."},"name_claim_type":{"type":"TypeString","optional":true,"description":"The name of the claim that contains the users name."},"openid_configuration_endpoint":{"type":"TypeString","required":true,"description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider."},"scopes":{"type":"TypeList","optional":true,"description":"The list of the scopes that should be requested while authenticating.","elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","optional":true,"description":"The Default Authentication Provider to use when the `unauthenticated_action` is set to `RedirectToLoginPage`. Possible values include: `apple`, `azureactivedirectory`, `facebook`, `github`, `google`, `twitter` and the `name` of your `custom_oidc_v2` provider."},"excluded_paths":{"type":"TypeList","optional":true,"description":"The paths which should be excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"app_id":{"type":"TypeString","required":true,"description":"The App ID of the Facebook app used for login."},"app_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `app_secret` value used for Facebook Login."},"graph_api_version":{"type":"TypeString","optional":true,"description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of scopes to be requested as part of Facebook Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"forward_proxy_convention":{"type":"TypeString","optional":true,"default":"NoProxy","description":"The convention used to determine the url of the request made. Possible values include `ForwardProxyConventionNoProxy`, `ForwardProxyConventionStandard`, `ForwardProxyConventionCustom`. Defaults to `ForwardProxyConventionNoProxy`"},"forward_proxy_custom_host_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the host of the request."},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","optional":true,"description":"The name of the header containing the scheme of the request."},"github_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"client_id":{"type":"TypeString","required":true,"description":"The ID of the GitHub app used for login."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for GitHub Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"google_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OpenID Connect Client ID for the Google web application."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the `client_secret` value used for Google Login."},"login_scopes":{"type":"TypeList","optional":true,"description":"Specifies a list of Login scopes that will be requested as part of Google Sign-In authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"http_route_api_prefix":{"type":"TypeString","optional":true,"default":"/.auth","description":"The prefix that should precede all the authentication and authorisation paths. Defaults to `/.auth`"},"login":{"type":"TypeList","required":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","optional":true,"description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","optional":true,"default":"FixedTime","description":"The method by which cookies expire. Possible values include: `FixedTime`, and `IdentityProviderDerived`. Defaults to `FixedTime`."},"cookie_expiration_time":{"type":"TypeString","optional":true,"default":"08:00:00","description":"The time after the request is made when the session cookie should expire. Defaults to `08:00:00`."},"logout_endpoint":{"type":"TypeString","optional":true,"description":"The endpoint to which logout requests should be made."},"nonce_expiration_time":{"type":"TypeString","optional":true,"default":"00:05:00","description":"The time after the request is made when the nonce should expire. Defaults to `00:05:00`."},"preserve_url_fragments_for_logins":{"type":"TypeBool","optional":true,"default":false,"description":"Should the fragments from the request be preserved after the login request is made. Defaults to `false`."},"token_refresh_extension_time":{"type":"TypeFloat","optional":true,"default":72,"description":"The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours."},"token_store_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should the Token Store configuration Enabled. Defaults to `false`"},"token_store_path":{"type":"TypeString","optional":true,"description":"The directory path in the App Filesystem in which the tokens will be stored."},"token_store_sas_setting_name":{"type":"TypeString","optional":true,"description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens."},"validate_nonce":{"type":"TypeBool","optional":true,"default":true,"description":"Should the nonce be validated while completing the login flow. Defaults to `true`."}}},"maxItems":1},"microsoft_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","optional":true,"description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","required":true,"description":"The OAuth 2.0 client ID that was created for the app used for authentication."},"client_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication."},"login_scopes":{"type":"TypeList","optional":true,"description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","elem":{"type":"TypeString"}}}},"maxItems":1},"require_authentication":{"type":"TypeBool","optional":true,"description":"Should the authentication flow be used for all requests."},"require_https":{"type":"TypeBool","optional":true,"default":true,"description":"Should HTTPS be required on connections? Defaults to true."},"runtime_version":{"type":"TypeString","optional":true,"default":"~1","description":"The Runtime Version of the Authentication and Authorisation feature of this App. Defaults to `~1`"},"twitter_v2":{"type":"TypeList","optional":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","required":true,"description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in."},"consumer_secret_setting_name":{"type":"TypeString","required":true,"description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in."}}},"maxItems":1},"unauthenticated_action":{"type":"TypeString","optional":true,"default":"RedirectToLoginPage","description":"The action to take for requests made without authentication. Possible values include `RedirectToLoginPage`, `AllowAnonymous`, `Return401`, and `Return403`. Defaults to `RedirectToLoginPage`."}}},"maxItems":1},"backup":{"type":"TypeList","optional":true,"elem":{"schema":{"enabled":{"type":"TypeBool","optional":true,"default":true,"description":"Should this backup job be enabled?"},"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Backup."},"schedule":{"type":"TypeList","required":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","required":true,"description":"How often the backup should be executed (e.g. for weekly backup, this should be set to `7` and `frequency_unit` should be set to `Day`)."},"frequency_unit":{"type":"TypeString","required":true,"description":"The unit of time for how often the backup should take place. Possible values include: `Day` and `Hour`."},"keep_at_least_one_backup":{"type":"TypeBool","optional":true,"default":false,"description":"Should the service keep at least one backup, regardless of age of backup. Defaults to `false`."},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","optional":true,"default":30,"description":"After how many days backups should be deleted."},"start_time":{"type":"TypeString","optional":true,"description":"When the schedule should start working in RFC-3339 format.","computed":true}}},"maxItems":1},"storage_account_url":{"type":"TypeString","required":true,"description":"The SAS URL to the container."}}},"maxItems":1},"client_affinity_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_enabled":{"type":"TypeBool","optional":true,"default":false},"client_certificate_exclusion_paths":{"type":"TypeString","optional":true,"description":"Paths to exclude when using client certificates, separated by ;"},"client_certificate_mode":{"type":"TypeString","optional":true,"default":"Required"},"connection_string":{"type":"TypeSet","optional":true,"elem":{"schema":{"name":{"type":"TypeString","required":true,"description":"The name which should be used for this Connection."},"type":{"type":"TypeString","required":true,"description":"Type of database. Possible values include: `MySQL`, `SQLServer`, `SQLAzure`, `Custom`, `NotificationHub`, `ServiceBus`, `EventHub`, `APIHub`, `DocDb`, `RedisCache`, and `PostgreSQL`."},"value":{"type":"TypeString","required":true,"description":"The connection string value."}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","optional":true,"default":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","optional":true,"default":false},"identity":{"type":"TypeList","optional":true,"elem":{"schema":{"identity_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference_identity_id":{"type":"TypeString","optional":true,"computed":true},"kind":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"elem":{"schema":{"application_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"level":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","required":true},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system_level":{"type":"TypeString","required":true}}},"maxItems":1},"detailed_error_messages":{"type":"TypeBool","optional":true,"default":false},"failed_request_tracing":{"type":"TypeBool","optional":true,"default":false},"http_logs":{"type":"TypeList","optional":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","optional":true,"default":0},"sas_url":{"type":"TypeString","required":true}}},"maxItems":1},"file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","required":true},"retention_in_mb":{"type":"TypeInt","required":true}}},"maxItems":1}}},"maxItems":1}}},"maxItems":1},"name":{"type":"TypeString","required":true,"forceNew":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","optional":true,"default":true},"service_plan_id":{"type":"TypeString","optional":true},"site_config":{"type":"TypeList","required":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":true},"api_definition_url":{"type":"TypeString","optional":true},"api_management_api_id":{"type":"TypeString","optional":true},"app_command_line":{"type":"TypeString","optional":true},"application_stack":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","optional":true,"computed":true},"docker_container_name":{"type":"TypeString","optional":true},"docker_container_registry":{"type":"TypeString","optional":true},"docker_container_tag":{"type":"TypeString","optional":true},"docker_image_name":{"type":"TypeString","optional":true},"docker_registry_password":{"type":"TypeString","optional":true,"computed":true},"docker_registry_url":{"type":"TypeString","optional":true,"computed":true},"docker_registry_username":{"type":"TypeString","optional":true,"computed":true},"dotnet_core_version":{"type":"TypeString","optional":true,"description":"The version of DotNetCore to use."},"dotnet_version":{"type":"TypeString","optional":true,"computed":true},"java_container":{"type":"TypeString","optional":true},"java_container_version":{"type":"TypeString","optional":true},"java_embedded_server_enabled":{"type":"TypeBool","optional":true,"description":"Should the application use the embedded web server for the version of Java in use.","computed":true},"java_version":{"type":"TypeString","optional":true},"node_version":{"type":"TypeString","optional":true},"php_version":{"type":"TypeString","optional":true,"computed":true},"python":{"type":"TypeBool","optional":true,"default":false},"python_version":{"type":"TypeString","optional":true,"computed":true},"tomcat_version":{"type":"TypeString","optional":true}}},"maxItems":1},"auto_heal_enabled":{"type":"TypeBool","optional":true,"default":false},"auto_heal_setting":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeList","required":true,"elem":{"schema":{"action_type":{"type":"TypeString","required":true},"custom_action":{"type":"TypeList","optional":true,"elem":{"schema":{"executable":{"type":"TypeString","required":true},"parameters":{"type":"TypeString","optional":true}}},"maxItems":1},"minimum_process_execution_time":{"type":"TypeString","optional":true,"computed":true}}},"maxItems":1},"trigger":{"type":"TypeList","required":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","optional":true},"requests":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true}}},"maxItems":1},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"time_taken":{"type":"TypeString","required":true}}},"maxItems":1},"status_code":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","required":true},"interval":{"type":"TypeString","required":true},"path":{"type":"TypeString","optional":true},"status_code_range":{"type":"TypeString","required":true},"sub_status":{"type":"TypeInt","optional":true},"win32_status_code":{"type":"TypeInt","optional":true}}}}}},"maxItems":1}}},"maxItems":1},"auto_swap_slot_name":{"type":"TypeString","optional":true},"container_registry_managed_identity_client_id":{"type":"TypeString","optional":true},"container_registry_use_managed_identity":{"type":"TypeBool","optional":true,"default":false},"cors":{"type":"TypeList","optional":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","optional":true,"description":"Specifies a list of origins that should be allowed to make cross-origin calls.","elem":{"type":"TypeString"},"minItems":1},"support_credentials":{"type":"TypeBool","optional":true,"default":false,"description":"Are credentials allowed in CORS requests? Defaults to `false`."}}},"maxItems":1},"default_documents":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","optional":true,"default":"Disabled"},"health_check_eviction_time_in_min":{"type":"TypeInt","optional":true,"description":"The amount of time in minutes that a node is unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Defaults to `10`. Only valid in conjunction with `health_check_path`","computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"load_balancing_mode":{"type":"TypeString","optional":true,"default":"LeastRequests"},"local_mysql_enabled":{"type":"TypeBool","optional":true,"default":false},"managed_pipeline_mode":{"type":"TypeString","optional":true,"default":"Integrated"},"minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"remote_debugging_enabled":{"type":"TypeBool","optional":true,"default":false},"remote_debugging_version":{"type":"TypeString","optional":true,"computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow","description":"The action to take. Possible values are `Allow` or `Deny`."},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","optional":true,"description":"Specifies a list of Azure Front Door IDs.","elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeList","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeList","optional":true,"description":"Specifies a list of addresses for which matching should be applied. Omitting this value means allow any.","elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeList","optional":true,"description":"Specifies a list of Hosts for which matching should be applied.","elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true,"description":"The CIDR notation of the IP or IP Range to match. For example: `10.0.0.0/24` or `192.168.10.1/32` or `fe80::/64` or `13.107.6.152/31,13.107.128.0/22`"},"name":{"type":"TypeString","optional":true,"description":"The name which should be used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000,"description":"The priority value of this `ip_restriction`."},"service_tag":{"type":"TypeString","optional":true,"description":"The Service Tag used for this IP Restriction."},"virtual_network_subnet_id":{"type":"TypeString","optional":true,"description":"The Virtual Network Subnet ID used for this IP Restriction."}}}},"scm_minimum_tls_version":{"type":"TypeString","optional":true,"default":"1.2"},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker":{"type":"TypeBool","optional":true,"computed":true},"virtual_application":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","required":true},"preload":{"type":"TypeBool","required":true},"virtual_directory":{"type":"TypeSet","optional":true,"elem":{"schema":{"physical_path":{"type":"TypeString","optional":true},"virtual_path":{"type":"TypeString","optional":true}}}},"virtual_path":{"type":"TypeString","required":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"default":false,"description":"Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied? Defaults to `false`."},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","optional":true,"computed":true}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"storage_account":{"type":"TypeSet","optional":true,"elem":{"schema":{"access_key":{"type":"TypeString","required":true},"account_name":{"type":"TypeString","required":true},"mount_path":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"share_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","required":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","optional":true},"zip_deploy_file":{"type":"TypeString","optional":true,"description":"The local path and filename of the Zip packaged application to deploy to this Windows Web App. **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` on the App in `app_settings`.","computed":true}},"timeouts":{"create":30,"read":5,"delete":30,"update":30}}},"dataSources":{"azurerm_aadb2c_directory":{"schema":{"billing_type":{"type":"TypeString","description":"The type of billing for the B2C tenant. Possible values include: `MAU` or `Auths`.","computed":true},"data_residency_location":{"type":"TypeString","description":"Location in which the B2C tenant is hosted and data resides.","computed":true},"domain_name":{"type":"TypeString","required":true,"description":"Domain name of the B2C tenant, including onmicrosoft.com suffix."},"effective_start_date":{"type":"TypeString","description":"The date from which the billing type took effect. May not be populated until after the first billing cycle.","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","description":"Billing SKU for the B2C tenant.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","description":"The Tenant ID for the B2C tenant.","computed":true}},"timeouts":{"read":5}},"azurerm_active_directory_domain_service":{"schema":{"deployment_id":{"type":"TypeString","computed":true},"domain_configuration_type":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"filtered_sync_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notifications":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_recipients":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"notify_dc_admins":{"type":"TypeBool","computed":true},"notify_global_admins":{"type":"TypeBool","computed":true}}}},"replica_sets":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_controller_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"external_access_ip_address":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true},"service_status":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"resource_id":{"type":"TypeString","computed":true},"secure_ldap":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_expiry":{"type":"TypeString","computed":true},"certificate_thumbprint":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"external_access_enabled":{"type":"TypeBool","computed":true},"public_certificate":{"type":"TypeString","computed":true}}}},"security":{"type":"TypeList","computed":true,"elem":{"schema":{"kerberos_armoring_enabled":{"type":"TypeBool","computed":true},"kerberos_rc4_encryption_enabled":{"type":"TypeBool","computed":true},"ntlm_v1_enabled":{"type":"TypeBool","computed":true},"sync_kerberos_passwords":{"type":"TypeBool","computed":true},"sync_ntlm_passwords":{"type":"TypeBool","computed":true},"sync_on_prem_passwords":{"type":"TypeBool","computed":true},"tls_v1_enabled":{"type":"TypeBool","computed":true}}}},"sku":{"type":"TypeString","computed":true},"sync_owner":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"version":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_advisor_recommendations":{"schema":{"filter_by_category":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"filter_by_resource_groups":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"recommendations":{"type":"TypeList","computed":true,"elem":{"schema":{"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"impact":{"type":"TypeString","computed":true},"recommendation_name":{"type":"TypeString","computed":true},"recommendation_type_id":{"type":"TypeString","computed":true},"resource_name":{"type":"TypeString","computed":true},"resource_type":{"type":"TypeString","computed":true},"suppression_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"updated_time":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":10}},"azurerm_api_management":{"schema":{"additional_location":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"developer_portal_url":{"type":"TypeString","computed":true},"gateway_regional_url":{"type":"TypeString","computed":true},"gateway_url":{"type":"TypeString","computed":true},"hostname_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"developer_portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"management":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"portal":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"proxy":{"type":"TypeList","computed":true,"elem":{"schema":{"default_ssl_binding":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}},"scm":{"type":"TypeList","computed":true,"elem":{"schema":{"host_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"negotiate_client_certificate":{"type":"TypeBool","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_api_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"notification_sender_email":{"type":"TypeString","computed":true},"portal_url":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address_id":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"publisher_email":{"type":"TypeString","computed":true},"publisher_name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scm_url":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"tenant_access":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"primary_key":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_api_management_api":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"is_current":{"type":"TypeBool","computed":true},"is_online":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"path":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"revision":{"type":"TypeString","required":true},"service_url":{"type":"TypeString","computed":true},"soap_pass_through":{"type":"TypeBool","computed":true},"subscription_key_parameter_names":{"type":"TypeList","computed":true,"elem":{"schema":{"header":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true}}}},"subscription_required":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"version_set_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_api_version_set":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"version_header_name":{"type":"TypeString","computed":true},"version_query_name":{"type":"TypeString","computed":true},"versioning_scheme":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway":{"schema":{"api_management_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_api_management_gateway_host_name_configuration":{"schema":{"api_management_id":{"type":"TypeString","required":true},"certificate_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","required":true},"host_name":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"request_client_certificate_enabled":{"type":"TypeBool","computed":true},"tls10_enabled":{"type":"TypeBool","computed":true},"tls11_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_group":{"schema":{"api_management_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"external_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_product":{"schema":{"api_management_name":{"type":"TypeString","required":true},"approval_required":{"type":"TypeBool","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"product_id":{"type":"TypeString","required":true},"published":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"subscription_required":{"type":"TypeBool","computed":true},"subscriptions_limit":{"type":"TypeInt","computed":true},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_api_management_user":{"schema":{"api_management_name":{"type":"TypeString","required":true},"email":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"note":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"state":{"type":"TypeString","computed":true},"user_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_app_configuration":{"schema":{"encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_client_id":{"type":"TypeString","computed":true},"key_vault_key_identifier":{"type":"TypeString","computed":true}}}},"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"primary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"public_network_access":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"replica":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_read_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"secondary_write_key":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_string":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"secret":{"type":"TypeString","computed":true}}}},"sku":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_configuration_key":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","required":true},"label":{"type":"TypeString","optional":true,"default":""},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_configuration_keys":{"schema":{"configuration_store_id":{"type":"TypeString","required":true},"items":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true},"etag":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"label":{"type":"TypeString","computed":true},"locked":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true},"vault_key_reference":{"type":"TypeString","computed":true}}}},"key":{"type":"TypeString","optional":true,"default":""},"label":{"type":"TypeString","optional":true,"default":""}},"timeouts":{"read":5}},"azurerm_app_service":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_cert_enabled":{"type":"TypeBool","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_site_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"acr_use_managed_identity_credentials":{"type":"TypeBool","computed":true},"acr_user_managed_identity_client_id":{"type":"TypeString","computed":true},"always_on":{"type":"TypeBool","computed":true},"app_command_line":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dotnet_framework_version":{"type":"TypeString","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"number_of_workers":{"type":"TypeInt","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_certificate":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"host_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"issue_date":{"type":"TypeString","computed":true},"issuer":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subject_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_certificate_order":{"schema":{"app_service_certificate_not_renewable_reasons":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"auto_renew":{"type":"TypeBool","computed":true},"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_name":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"key_vault_secret_name":{"type":"TypeString","computed":true},"provisioning_state":{"type":"TypeString","computed":true}}}},"csr":{"type":"TypeString","computed":true},"distinguished_name":{"type":"TypeString","computed":true},"domain_verification_token":{"type":"TypeString","computed":true},"expiration_time":{"type":"TypeString","computed":true},"intermediate_thumbprint":{"type":"TypeString","computed":true},"is_private_key_external":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"product_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"root_thumbprint":{"type":"TypeString","computed":true},"signed_certificate_thumbprint":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"validity_in_years":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_environment":{"schema":{"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"front_end_scale_factor":{"type":"TypeInt","computed":true},"internal_ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_ip_address":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_app_service_environment_v3":{"schema":{"allow_new_private_endpoint_connections":{"type":"TypeBool","computed":true},"cluster_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"dedicated_host_count":{"type":"TypeInt","computed":true},"dns_suffix":{"type":"TypeString","computed":true},"external_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"inbound_network_dependencies":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"internal_inbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"internal_load_balancing_mode":{"type":"TypeString","computed":true},"ip_ssl_address_count":{"type":"TypeInt","computed":true},"linux_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pricing_tier":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_app_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"is_xenon":{"type":"TypeBool","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"maximum_number_of_workers":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"per_site_scaling":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"size":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_application_gateway":{"schema":{"backend_address_pool":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeString","computed":true},"ip_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_application_insights":{"schema":{"app_id":{"type":"TypeString","computed":true},"application_type":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeString","computed":true},"instrumentation_key":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_application_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_arc_machine":{"schema":{"active_directory_fqdn":{"type":"TypeString","computed":true},"agent":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"patch":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_attestation_provider":{"schema":{"attestation_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"trust_model":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"hybrid_service_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"private_endpoint_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_bool":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_datetime":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_int":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_object":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variable_string":{"schema":{"automation_account_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"value":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_automation_variables":{"schema":{"automation_account_id":{"type":"TypeString","required":true},"bool":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeBool","computed":true}}}},"datetime":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"encrypted":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"int":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeInt","computed":true}}}},"null":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"object":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"string":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"encrypted":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_availability_set":{"schema":{"location":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"platform_update_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_backup_policy_file_share":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_backup_policy_vm":{"schema":{"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_bastion_host":{"schema":{"copy_paste_enabled":{"type":"TypeBool","computed":true},"dns_name":{"type":"TypeString","computed":true},"file_copy_enabled":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"ip_connect_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_units":{"type":"TypeInt","computed":true},"shareable_link_enabled":{"type":"TypeBool","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tunneling_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_batch_account":{"schema":{"account_endpoint":{"type":"TypeString","computed":true},"encryption":{"type":"TypeList","configMode":"Auto","optional":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","required":true}}},"maxItems":1},"key_vault_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_allocation_mode":{"type":"TypeString","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_batch_application":{"schema":{"account_name":{"type":"TypeString","required":true},"allow_updates":{"type":"TypeBool","computed":true},"default_version":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_batch_certificate":{"schema":{"account_name":{"type":"TypeString","required":true},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_data":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"thumbprint":{"type":"TypeString","computed":true},"thumbprint_algorithm":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_batch_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"auto_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"evaluation_interval":{"type":"TypeString","computed":true},"formula":{"type":"TypeString","computed":true}}}},"certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"store_location":{"type":"TypeString","computed":true},"store_name":{"type":"TypeString","computed":true},"visibility":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"container_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"container_image_names":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"container_registries":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","computed":true}}}},"data_disks":{"type":"TypeList","computed":true,"elem":{"schema":{"caching":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"lun":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}},"disk_encryption":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_target":{"type":"TypeString","computed":true}}}},"display_name":{"type":"TypeString","computed":true},"extensions":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_upgrade_minor_version":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"protected_settings":{"type":"TypeString","computed":true},"provision_after_extensions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"publisher":{"type":"TypeString","computed":true},"settings_json":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"type_handler_version":{"type":"TypeString","computed":true}}}},"fixed_scale":{"type":"TypeList","computed":true,"elem":{"schema":{"resize_timeout":{"type":"TypeString","computed":true},"target_dedicated_nodes":{"type":"TypeInt","computed":true},"target_low_priority_nodes":{"type":"TypeInt","computed":true}}}},"inter_node_communication":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_tasks_per_node":{"type":"TypeInt","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"mount":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_file_system":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"blobfuse_options":{"type":"TypeString","computed":true},"container_name":{"type":"TypeString","computed":true},"identity_id":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"sas_key":{"type":"TypeString","computed":true}}}},"azure_file_share":{"type":"TypeList","optional":true,"elem":{"schema":{"account_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"azure_file_url":{"type":"TypeString","computed":true},"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true}}}},"cifs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"nfs_mount":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_options":{"type":"TypeString","computed":true},"relative_mount_path":{"type":"TypeString","computed":true},"source":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"network_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dynamic_vnet_assignment_scope":{"type":"TypeString","computed":true},"endpoint_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port_range":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"protocol":{"type":"TypeString","computed":true}}}},"public_address_provisioning_type":{"type":"TypeString","computed":true},"public_ips":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"subnet_id":{"type":"TypeString","computed":true}}}},"node_agent_sku_id":{"type":"TypeString","computed":true},"node_placement":{"type":"TypeList","computed":true,"elem":{"schema":{"policy":{"type":"TypeString","computed":true}}}},"os_disk_placement":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_task":{"type":"TypeList","computed":true,"elem":{"schema":{"command_line":{"type":"TypeString","computed":true},"common_environment_properties":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"container":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"registry_server":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true},"user_name":{"type":"TypeString","computed":true}}}},"run_options":{"type":"TypeString","computed":true},"working_directory":{"type":"TypeString","computed":true}}}},"resource_file":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_storage_container_name":{"type":"TypeString","computed":true},"blob_prefix":{"type":"TypeString","computed":true},"file_mode":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"http_url":{"type":"TypeString","computed":true},"storage_container_url":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"task_retry_maximum":{"type":"TypeInt","computed":true},"user_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_user":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"scope":{"type":"TypeString","computed":true}}}},"user_name":{"type":"TypeString","computed":true}}}},"wait_for_success":{"type":"TypeBool","computed":true}}}},"storage_image_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"task_scheduling_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"node_fill_type":{"type":"TypeString","computed":true}}}},"user_accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"elevation_level":{"type":"TypeString","computed":true},"linux_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"gid":{"type":"TypeInt","computed":true},"ssh_private_key":{"type":"TypeString","computed":true},"uid":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"windows_user_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"login_mode":{"type":"TypeString","computed":true}}}}}}},"vm_size":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"enable_automatic_updates":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_billing_enrollment_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"enrollment_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mca_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"billing_profile_name":{"type":"TypeString","required":true},"invoice_section_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_billing_mpa_account_scope":{"schema":{"billing_account_name":{"type":"TypeString","required":true},"customer_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_blueprint_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_blueprint_published_version":{"schema":{"blueprint_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"last_modified":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true},"target_scope":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_custom_domain":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"dns_zone_id":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tls":{"type":"TypeList","computed":true,"elem":{"schema":{"cdn_frontdoor_secret_id":{"type":"TypeString","computed":true},"certificate_type":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true}}}},"validation_token":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_endpoint":{"schema":{"enabled":{"type":"TypeBool","computed":true},"host_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_firewall_policy":{"schema":{"enabled":{"type":"TypeBool","computed":true},"frontend_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redirect_url":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_origin_group":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"health_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true},"request_type":{"type":"TypeString","computed":true}}}},"load_balancing":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_latency_in_milliseconds":{"type":"TypeInt","computed":true},"sample_size":{"type":"TypeInt","computed":true},"successful_samples_required":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restore_traffic_time_to_healed_or_new_endpoint_in_minutes":{"type":"TypeInt","computed":true},"session_affinity_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_profile":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"response_timeout_seconds":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_rule_set":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cdn_frontdoor_secret":{"schema":{"cdn_frontdoor_profile_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"profile_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"customer_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"expiration_date":{"type":"TypeString","computed":true},"key_vault_certificate_id":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}}},"timeouts":{"read":5}},"azurerm_cdn_profile":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_client_config":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cognitive_account":{"schema":{"endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"qna_runtime_endpoint":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_communication_service":{"schema":{"data_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_confidential_ledger":{"schema":{"azuread_based_service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"certificate_based_security_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"ledger_role_name":{"type":"TypeString","computed":true},"pem_public_key":{"type":"TypeString","computed":true}}}},"identity_service_endpoint":{"type":"TypeString","computed":true},"ledger_endpoint":{"type":"TypeString","computed":true},"ledger_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_consumption_budget_resource_group":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"resource_group_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_consumption_budget_subscription":{"schema":{"amount":{"type":"TypeFloat","computed":true},"filter":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"not":{"type":"TypeList","computed":true,"elem":{"schema":{"dimension":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"name":{"type":"TypeString","required":true},"notification":{"type":"TypeList","computed":true,"elem":{"schema":{"contact_emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"contact_roles":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeInt","computed":true},"threshold_type":{"type":"TypeString","computed":true}}}},"subscription_id":{"type":"TypeString","required":true},"time_grain":{"type":"TypeString","computed":true},"time_period":{"type":"TypeList","computed":true,"elem":{"schema":{"end_date":{"type":"TypeString","computed":true},"start_date":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_container_app":{"schema":{"container_app_environment_id":{"type":"TypeString","computed":true},"custom_domain_verification_id":{"type":"TypeString","description":"The ID of the Custom Domain Verification for this Container App.","computed":true},"dapr":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The Dapr Application Identifier.","computed":true},"app_port":{"type":"TypeInt","description":"The port which the application is listening on. This is the same as the `ingress` port.","computed":true},"app_protocol":{"type":"TypeString","description":"The protocol for the app. Possible values include `http` and `grpc`. Defaults to `http`.","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_insecure_connections":{"type":"TypeBool","description":"Should this ingress allow insecure connections?","computed":true},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"certificate_binding_type":{"type":"TypeString","description":"The Binding type. Possible values include `Disabled` and `SniEnabled`. Defaults to `Disabled`","computed":true},"certificate_id":{"type":"TypeString","description":"The ID of the Certificate.","computed":true},"name":{"type":"TypeString","description":"The hostname of the Certificate. Must be the CN or a named SAN in the certificate.","computed":true}}}},"external_enabled":{"type":"TypeBool","description":"Is this an external Ingress.","computed":true},"fqdn":{"type":"TypeString","description":"The FQDN of the ingress.","computed":true},"target_port":{"type":"TypeInt","description":"The target port on the container for the Ingress traffic.","computed":true},"traffic_weight":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","description":"The label to apply to the revision as a name prefix for routing traffic.","computed":true},"latest_revision":{"type":"TypeBool","description":"This traffic Weight relates to the latest stable Container Revision.","computed":true},"percentage":{"type":"TypeInt","description":"The percentage of traffic to send to this revision.","computed":true},"revision_suffix":{"type":"TypeString","description":"The suffix string to append to the revision. This must be unique for the Container App's lifetime. A default hash created by the service will be used if this value is omitted.","computed":true}}}},"transport":{"type":"TypeString","description":"The transport method for the Ingress. Possible values include `auto`, `http`, and `http2`. Defaults to `auto`","computed":true}}}},"latest_revision_fqdn":{"type":"TypeString","description":"The fully qualified domain name of the latest Container App.","computed":true},"latest_revision_name":{"type":"TypeString","description":"The name of the latest Container Revision.","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"registry":{"type":"TypeList","computed":true,"elem":{"schema":{"identity":{"type":"TypeString","description":"ID of the System or User Managed Identity used to pull images from the Container Registry","computed":true},"password_secret_name":{"type":"TypeString","description":"The name of the Secret Reference containing the password value for this user on the Container Registry.","computed":true},"server":{"type":"TypeString","description":"The hostname for the Container Registry.","computed":true},"username":{"type":"TypeString","description":"The username to use for this Container Registry.","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"revision_mode":{"type":"TypeString","computed":true},"secret":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Secret name.","computed":true},"value":{"type":"TypeString","description":"The value for this secret.","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_queue_scale_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_name":{"type":"TypeString","computed":true},"trigger_parameter":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"queue_length":{"type":"TypeInt","computed":true},"queue_name":{"type":"TypeString","computed":true}}}},"container":{"type":"TypeList","computed":true,"elem":{"schema":{"args":{"type":"TypeList","description":"A list of args to pass to the container.","computed":true,"elem":{"type":"TypeString"}},"command":{"type":"TypeList","description":"A command to pass to the container to override the default. This is provided as a list of command line elements without spaces.","computed":true,"elem":{"type":"TypeString"}},"cpu":{"type":"TypeFloat","description":"The amount of vCPU to allocate to the container. Possible values include `0.25`, `0.5`, `0.75`, `1.0`, `1.25`, `1.5`, `1.75`, and `2.0`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.0` / `2.0` or `0.5` / `1.0`","computed":true},"env":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the environment variable for the container.","computed":true},"secret_name":{"type":"TypeString","description":"The name of the secret that contains the value for this environment variable.","computed":true},"value":{"type":"TypeString","description":"The value for this environment variable. **NOTE:** This value is ignored if `secret_name` is used","computed":true}}}},"ephemeral_storage":{"type":"TypeString","description":"The amount of ephemeral storage available to the Container App.","computed":true},"image":{"type":"TypeString","description":"The image to use to create the container.","computed":true},"liveness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"initial_delay":{"type":"TypeInt","description":"The time in seconds to wait after the container has started before the probe is started.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use with the `host` for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"memory":{"type":"TypeString","description":"The amount of memory to allocate to the container. Possible values include `0.5Gi`, `1.0Gi`, `1.5Gi`, `2.0Gi`, `2.5Gi`, `3.0Gi`, `3.5Gi`, and `4.0Gi`. **NOTE:** `cpu` and `memory` must be specified in `0.25'/'0.5Gi` combination increments. e.g. `1.25` / `2.5Gi` or `0.75` / `1.5Gi`","computed":true},"name":{"type":"TypeString","description":"The name of the container.","computed":true},"readiness_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","description":"The probe hostname. Defaults to the pod IP address. Setting a value for `Host` in `headers` can be used to override this for `http` and `https` type probes.","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","description":"The URI to use for http type probes. Not valid for `TCP` type probes. Defaults to `/`.","computed":true},"port":{"type":"TypeInt","description":"The port number on which to connect. Possible values are between `1` and `65535`.","computed":true},"success_count_threshold":{"type":"TypeInt","description":"The number of consecutive successful responses required to consider this probe as successful. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","description":"Type of probe. Possible values are `TCP`, `HTTP`, and `HTTPS`.","computed":true}}}},"startup_probe":{"type":"TypeList","computed":true,"elem":{"schema":{"failure_count_threshold":{"type":"TypeInt","description":"The number of consecutive failures required to consider this probe as failed. Possible values are between `1` and `10`. Defaults to `3`.","computed":true},"header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The HTTP Header Name.","computed":true},"value":{"type":"TypeString","description":"The HTTP Header value.","computed":true}}}},"host":{"type":"TypeString","computed":true},"interval_seconds":{"type":"TypeInt","description":"How often, in seconds, the probe should run. Possible values are between `1` and `240`. Defaults to `10`","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"termination_grace_period_seconds":{"type":"TypeInt","description":"The time in seconds after the container is sent the termination signal before the process if forcibly killed.","computed":true},"timeout":{"type":"TypeInt","description":"Time in seconds after which the probe times out. Possible values are between `1` an `240`. Defaults to `1`.","computed":true},"transport":{"type":"TypeString","computed":true}}}},"volume_mounts":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of the Volume to be mounted in the container.","computed":true},"path":{"type":"TypeString","description":"The path in the container at which to mount this volume.","computed":true}}}}}}},"custom_scale_rule":{"type":"TypeList","optional":true,"elem":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_name":{"type":"TypeString","computed":true},"trigger_parameter":{"type":"TypeString","computed":true}}}},"custom_rule_type":{"type":"TypeString","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true}}}},"http_scale_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_name":{"type":"TypeString","computed":true},"trigger_parameter":{"type":"TypeString","computed":true}}}},"concurrent_requests":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"max_replicas":{"type":"TypeInt","description":"The maximum number of replicas for this container.","computed":true},"min_replicas":{"type":"TypeInt","description":"The minimum number of replicas for this container.","computed":true},"revision_suffix":{"type":"TypeString","computed":true},"tcp_scale_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_name":{"type":"TypeString","computed":true},"trigger_parameter":{"type":"TypeString","computed":true}}}},"concurrent_requests":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"volume":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"storage_name":{"type":"TypeString","computed":true},"storage_type":{"type":"TypeString","computed":true}}}}}}}},"timeouts":{"read":5}},"azurerm_container_app_environment":{"schema":{"default_domain":{"type":"TypeString","description":"The default publicly resolvable name of this Container App Environment","computed":true},"docker_bridge_cidr":{"type":"TypeString","description":"The network addressing in which the Container Apps in this Container App Environment will reside in CIDR notation.","computed":true},"infrastructure_subnet_id":{"type":"TypeString","description":"The existing Subnet in use by the Container Apps Control Plane.","computed":true},"internal_load_balancer_enabled":{"type":"TypeBool","description":"Does the Container Environment operate in Internal Load Balancing Mode?","computed":true},"location":{"type":"TypeString","computed":true},"log_analytics_workspace_name":{"type":"TypeString","description":"The name of the Log Analytics Workspace this Container Apps Managed Environment is linked to.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Managed Environment."},"platform_reserved_cidr":{"type":"TypeString","description":"The IP range, in CIDR notation, that is reserved for environment infrastructure IP addresses.","computed":true},"platform_reserved_dns_ip_address":{"type":"TypeString","description":"The IP address from the IP range defined by `platform_reserved_cidr` that is reserved for the internal DNS server.","computed":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"static_ip_address":{"type":"TypeString","description":"The Static IP Address of the Environment.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_app_environment_certificate":{"schema":{"container_app_environment_id":{"type":"TypeString","required":true,"description":"The Container App Managed Environment ID to configure this Certificate on.","forceNew":true},"expiration_date":{"type":"TypeString","description":"The expiration date for the Certificate.","computed":true},"issue_date":{"type":"TypeString","description":"The date of issue for the Certificate.","computed":true},"issuer":{"type":"TypeString","description":"The Certificate Issuer.","computed":true},"name":{"type":"TypeString","required":true,"description":"The name of the Container Apps Certificate.","forceNew":true},"subject_name":{"type":"TypeString","description":"The Subject Name for the Certificate.","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","description":"The Thumbprint of the Certificate.","computed":true}},"timeouts":{"read":5}},"azurerm_container_group":{"schema":{"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeSet","optional":true,"forceNew":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry":{"schema":{"admin_enabled":{"type":"TypeBool","computed":true},"admin_password":{"type":"TypeString","computed":true},"admin_username":{"type":"TypeString","computed":true},"data_endpoint_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"login_server":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_container_registry_scope_map":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"container_registry_name":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_container_registry_token":{"schema":{"container_registry_name":{"type":"TypeString","required":true},"enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scope_map_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_account":{"schema":{"capabilities":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"consistency_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"consistency_level":{"type":"TypeString","computed":true},"max_interval_in_seconds":{"type":"TypeInt","computed":true},"max_staleness_prefix":{"type":"TypeInt","computed":true}}}},"enable_automatic_failover":{"type":"TypeBool","computed":true},"enable_free_tier":{"type":"TypeBool","computed":true},"enable_multiple_write_locations":{"type":"TypeBool","computed":true},"endpoint":{"type":"TypeString","computed":true},"geo_location":{"type":"TypeList","computed":true,"elem":{"schema":{"failover_priority":{"type":"TypeInt","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true}}}},"ip_range_filter":{"type":"TypeString","computed":true},"is_virtual_network_filter_enabled":{"type":"TypeBool","computed":true},"key_vault_key_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"offer_type":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"primary_readonly_key":{"type":"TypeString","computed":true},"read_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true},"secondary_readonly_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"write_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_mongo_database":{"schema":{"account_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_cosmosdb_restorable_database_accounts":{"schema":{"accounts":{"type":"TypeList","computed":true,"elem":{"schema":{"api_type":{"type":"TypeString","computed":true},"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"restorable_locations":{"type":"TypeList","computed":true,"elem":{"schema":{"creation_time":{"type":"TypeString","computed":true},"deletion_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"regional_database_account_instance_id":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_database":{"schema":{"account_name":{"type":"TypeString","required":true},"autoscale_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_throughput":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"throughput":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_cosmosdb_sql_role_definition":{"schema":{"account_name":{"type":"TypeString","required":true},"assignable_scopes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"permissions":{"type":"TypeSet","computed":true,"elem":{"schema":{"data_actions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"role_definition_id":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_factory":{"schema":{"github_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"git_url":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vsts_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"account_name":{"type":"TypeString","computed":true},"branch_name":{"type":"TypeString","computed":true},"project_name":{"type":"TypeString","computed":true},"repository_name":{"type":"TypeString","computed":true},"root_folder":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_protection_backup_vault":{"schema":{"datastore_type":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"redundancy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share":{"schema":{"account_id":{"type":"TypeString","required":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"snapshot_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"recurrence":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true}}}},"terms":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_account":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_blob_storage":{"schema":{"container_name":{"type":"TypeString","computed":true},"data_share_id":{"type":"TypeString","required":true},"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_data_share_dataset_data_lake_gen2":{"schema":{"display_name":{"type":"TypeString","computed":true},"file_path":{"type":"TypeString","computed":true},"file_system_name":{"type":"TypeString","computed":true},"folder_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_cluster":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_id":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_data_share_dataset_kusto_database":{"schema":{"display_name":{"type":"TypeString","computed":true},"kusto_cluster_location":{"type":"TypeString","computed":true},"kusto_database_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"share_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_database_migration_project":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"source_platform":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_platform":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_database_migration_service":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databox_edge_device":{"schema":{"device_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"configured_role_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"culture":{"type":"TypeString","computed":true},"hcs_version":{"type":"TypeString","computed":true},"model":{"type":"TypeString","computed":true},"node_count":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_databricks_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"managed_disk_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"storage_account_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true},"workspace_url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_databricks_workspace_private_endpoint_connection":{"schema":{"connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true},"workspace_private_endpoint_id":{"type":"TypeString","computed":true}}}},"private_endpoint_id":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dedicated_host":{"schema":{"dedicated_host_group_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dedicated_host_group":{"schema":{"automatic_placement_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform_fault_domain_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dev_test_lab":{"schema":{"artifacts_storage_account_id":{"type":"TypeString","computed":true},"default_premium_storage_account_id":{"type":"TypeString","computed":true},"default_storage_account_id":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"premium_data_disk_storage_account_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"storage_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_dev_test_virtual_network":{"schema":{"allowed_subnets":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_public_ip":{"type":"TypeString","computed":true},"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true}}}},"lab_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnet_overrides":{"type":"TypeList","computed":true,"elem":{"schema":{"lab_subnet_name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_in_vm_creation_permission":{"type":"TypeString","computed":true},"use_public_ip_address_permission":{"type":"TypeString","computed":true},"virtual_network_pool_name":{"type":"TypeString","computed":true}}}},"unique_identifier":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_digital_twins_instance":{"schema":{"host_name":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_access":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_disk_encryption_set":{"schema":{"auto_key_rotation_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_key_url":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_caa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"flags":{"type":"TypeInt","computed":true},"tag":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ns_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"name_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_elastic_cloud_elasticsearch":{"schema":{"elastic_cloud_deployment_id":{"type":"TypeString","computed":true},"elastic_cloud_email_address":{"type":"TypeString","computed":true},"elastic_cloud_sso_default_url":{"type":"TypeString","computed":true},"elastic_cloud_user_id":{"type":"TypeString","computed":true},"elasticsearch_service_url":{"type":"TypeString","computed":true},"kibana_service_url":{"type":"TypeString","computed":true},"kibana_sso_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"filtering_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"send_activity_logs":{"type":"TypeBool","computed":true},"send_azuread_logs":{"type":"TypeBool","computed":true},"send_subscription_logs":{"type":"TypeBool","computed":true}}}},"monitoring_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain":{"schema":{"endpoint":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"inbound_ip_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"ip_mask":{"type":"TypeString","computed":true}}}},"input_mapping_default_values":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true}}}},"input_mapping_fields":{"type":"TypeList","computed":true,"elem":{"schema":{"data_version":{"type":"TypeString","computed":true},"event_time":{"type":"TypeString","computed":true},"event_type":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"subject":{"type":"TypeString","computed":true},"topic":{"type":"TypeString","computed":true}}}},"input_schema":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventgrid_domain_topic":{"schema":{"domain_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventgrid_system_topic":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metric_arm_resource_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_arm_resource_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"topic_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventgrid_topic":{"schema":{"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_eventhub":{"schema":{"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"partition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_eventhub_authorization_rule":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"listen":{"type":"TypeBool","optional":true,"default":false},"manage":{"type":"TypeBool","optional":true,"default":false},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","optional":true,"default":false}},"timeouts":{"read":5}},"azurerm_eventhub_cluster":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_consumer_group":{"schema":{"eventhub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"user_metadata":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace":{"schema":{"auto_inflate_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"dedicated_cluster_id":{"type":"TypeString","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_connection_string_alias":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_connection_string_alias":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"kafka_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"maximum_throughput_units":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_namespace_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_eventhub_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"sas":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_express_route_circuit":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peerings":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_asn":{"type":"TypeInt","computed":true},"peer_asn":{"type":"TypeInt","computed":true},"peering_type":{"type":"TypeString","computed":true},"primary_peer_address_prefix":{"type":"TypeString","computed":true},"secondary_peer_address_prefix":{"type":"TypeString","computed":true},"shared_key":{"type":"TypeString","computed":true},"vlan_id":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_key":{"type":"TypeString","computed":true},"service_provider_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"bandwidth_in_mbps":{"type":"TypeInt","computed":true},"peering_location":{"type":"TypeString","computed":true},"service_provider_name":{"type":"TypeString","computed":true}}}},"service_provider_provisioning_state":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"family":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_extended_locations":{"schema":{"extended_locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_firewall":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"firewall_policy_id":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"management_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"sku_tier":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intel_mode":{"type":"TypeString","computed":true},"virtual_hub":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_count":{"type":"TypeInt","computed":true},"virtual_hub_id":{"type":"TypeString","computed":true}}}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_firewall_policy":{"schema":{"base_policy_id":{"type":"TypeString","computed":true},"child_policies":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns":{"type":"TypeList","computed":true,"elem":{"schema":{"network_rule_fqdn_enabled":{"type":"TypeBool","computed":true},"proxy_enabled":{"type":"TypeBool","computed":true},"servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"firewalls":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule_collection_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_intelligence_allowlist":{"type":"TypeList","computed":true,"elem":{"schema":{"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"threat_intelligence_mode":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_function_app":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"client_cert_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"java_version":{"type":"TypeString","computed":true},"linux_fx_version":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeString","computed":true},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}},"maxItems":1},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"service_tag":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}}}},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker_process":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"source_control":{"type":"TypeList","computed":true,"elem":{"schema":{"branch":{"type":"TypeString","computed":true},"manual_integration":{"type":"TypeBool","computed":true},"repo_url":{"type":"TypeString","computed":true},"rollback_enabled":{"type":"TypeBool","computed":true},"use_mercurial":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_function_app_host_keys":{"schema":{"blobs_extension_key":{"type":"TypeString","computed":true},"default_function_key":{"type":"TypeString","computed":true},"durabletask_extension_key":{"type":"TypeString","computed":true},"event_grid_extension_config_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"signalr_extension_key":{"type":"TypeString","computed":true},"webpubsub_extension_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_hdinsight_cluster":{"schema":{"cluster_version":{"type":"TypeString","computed":true},"component_versions":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"edge_ssh_endpoint":{"type":"TypeString","computed":true},"gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"https_endpoint":{"type":"TypeString","computed":true},"kafka_rest_proxy_endpoint":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"ssh_endpoint":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tier":{"type":"TypeString","computed":true},"tls_min_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_healthcare_dicom_service":{"schema":{"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authority":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_endpoint":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"service_url":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_fhir_service":{"schema":{"access_policy_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"configuration_export_storage_account_name":{"type":"TypeString","computed":true},"container_registry_login_server_url":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_headers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"credentials_allowed":{"type":"TypeBool","computed":true},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_medtech_service":{"schema":{"device_mapping_json":{"type":"TypeString","computed":true},"eventhub_consumer_group_name":{"type":"TypeString","computed":true},"eventhub_name":{"type":"TypeString","computed":true},"eventhub_namespace_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"workspace_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_healthcare_service":{"schema":{"access_policy_object_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"authentication_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"audience":{"type":"TypeString","computed":true},"authority":{"type":"TypeString","computed":true},"smart_proxy_enabled":{"type":"TypeBool","computed":true}}}},"cors_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"allow_credentials":{"type":"TypeBool","computed":true},"allowed_headers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"allowed_methods":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_origins":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"max_age_in_seconds":{"type":"TypeInt","computed":true}}}},"cosmosdb_key_vault_key_versionless_id":{"type":"TypeString","computed":true},"cosmosdb_throughput":{"type":"TypeInt","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_healthcare_workspace":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_hybrid_compute_machine":{"schema":{"ad_fqdn":{"type":"TypeString","computed":true},"agent_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"extensions_allow_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_block_list":{"type":"TypeList","computed":true,"elem":{"schema":{"publisher":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"extensions_enabled":{"type":"TypeBool","computed":true},"guest_configuration_enabled":{"type":"TypeBool","computed":true},"incoming_connections_ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_bypass":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proxy_url":{"type":"TypeString","computed":true}}}},"agent_version":{"type":"TypeString","computed":true},"client_public_key":{"type":"TypeString","computed":true},"cloud_metadata":{"type":"TypeList","computed":true,"elem":{"schema":{"provider":{"type":"TypeString","computed":true}}}},"detected_properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","computed":true},"dns_fqdn":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"error_details":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_info":{"type":"TypeList","computed":true,"elem":{"schema":{"info":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"code":{"type":"TypeString","computed":true},"message":{"type":"TypeString","computed":true},"target":{"type":"TypeString","computed":true}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"last_status_change":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"location_data":{"type":"TypeList","computed":true,"elem":{"schema":{"city":{"type":"TypeString","computed":true},"country_or_region":{"type":"TypeString","computed":true},"district":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"machine_fqdn":{"type":"TypeString","computed":true},"mssql_discovered":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"os_name":{"type":"TypeString","computed":true},"os_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"linux_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}},"windows_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"patch_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"assessment_mode":{"type":"TypeString","computed":true},"patch_mode":{"type":"TypeString","computed":true}}}}}}}}}},"os_sku":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"os_version":{"type":"TypeString","computed":true},"parent_cluster_resource_id":{"type":"TypeString","computed":true},"private_link_scope_resource_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_status":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"guest_configuration_service":{"type":"TypeList","computed":true,"elem":{"schema":{"startup_type":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}}}}},"status":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vm_id":{"type":"TypeString","computed":true},"vm_uuid":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_image":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"name_regex":{"type":"TypeString","optional":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"sort_descending":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_images":{"schema":{"images":{"type":"TypeList","computed":true,"elem":{"schema":{"data_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"lun":{"type":"TypeInt","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"os_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_uri":{"type":"TypeString","computed":true},"caching":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"managed_disk_id":{"type":"TypeString","computed":true},"os_state":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_resilient":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub":{"schema":{"hostname":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps":{"schema":{"allocation_policy":{"type":"TypeString","computed":true},"device_provisioning_host_name":{"type":"TypeString","computed":true},"id_scope":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_operations_host_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_iothub_dps_shared_access_policy":{"schema":{"iothub_dps_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_iothub_shared_access_policy":{"schema":{"iothub_name":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ip_group":{"schema":{"cidrs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"application_id":{"type":"TypeString","computed":true},"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"object_id":{"type":"TypeString","computed":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"storage_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}},"enable_rbac_authorization":{"type":"TypeBool","computed":true},"enabled_for_deployment":{"type":"TypeBool","computed":true},"enabled_for_disk_encryption":{"type":"TypeBool","computed":true},"enabled_for_template_deployment":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_acls":{"type":"TypeList","computed":true,"elem":{"schema":{"bypass":{"type":"TypeString","computed":true},"default_action":{"type":"TypeString","computed":true},"ip_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"public_network_access_enabled":{"type":"TypeBool","computed":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true},"vault_uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_access_policy":{"schema":{"certificate_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"secret_permissions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_certificate":{"schema":{"certificate_data":{"type":"TypeString","computed":true},"certificate_data_base64":{"type":"TypeString","computed":true},"certificate_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"issuer_parameters":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"key_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"curve":{"type":"TypeString","computed":true},"exportable":{"type":"TypeBool","computed":true},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"reuse_key":{"type":"TypeBool","computed":true}}}},"lifetime_action":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"days_before_expiry":{"type":"TypeInt","computed":true},"lifetime_percentage":{"type":"TypeInt","computed":true}}}}}}},"secret_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"content_type":{"type":"TypeString","computed":true}}}},"x509_certificate_properties":{"type":"TypeList","computed":true,"elem":{"schema":{"extended_key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_usage":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"subject":{"type":"TypeString","computed":true},"subject_alternative_names":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"emails":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"upns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"validity_in_months":{"type":"TypeInt","computed":true}}}}}}},"expires":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"resource_manager_versionless_id":{"type":"TypeString","computed":true},"secret_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"thumbprint":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true,"computed":true},"versionless_id":{"type":"TypeString","computed":true},"versionless_secret_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_certificate_data":{"schema":{"certificates_count":{"type":"TypeInt","computed":true},"expires":{"type":"TypeString","computed":true},"hex":{"type":"TypeString","computed":true},"key":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before":{"type":"TypeString","computed":true},"pem":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificate_issuer":{"schema":{"account_id":{"type":"TypeString","computed":true},"admin":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"first_name":{"type":"TypeString","computed":true},"last_name":{"type":"TypeString","computed":true},"phone":{"type":"TypeString","computed":true}}}},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"org_id":{"type":"TypeString","computed":true},"provider_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_certificates":{"schema":{"certificates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"include_pending":{"type":"TypeBool","optional":true,"default":true},"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_key_vault_encrypted_value":{"schema":{"algorithm":{"type":"TypeString","required":true},"decoded_plain_text_value":{"type":"TypeString","computed":true},"encrypted_data":{"type":"TypeString","optional":true},"key_vault_key_id":{"type":"TypeString","required":true},"plain_text_value":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_key_vault_key":{"schema":{"curve":{"type":"TypeString","computed":true},"e":{"type":"TypeString","computed":true},"key_opts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"key_size":{"type":"TypeInt","computed":true},"key_type":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"n":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_key_openssh":{"type":"TypeString","computed":true},"public_key_pem":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"versionless_id":{"type":"TypeString","computed":true},"x":{"type":"TypeString","computed":true},"y":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_managed_hardware_security_module":{"schema":{"admin_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"hsm_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"purge_protection_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"soft_delete_retention_days":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_key_vault_secret":{"schema":{"content_type":{"type":"TypeString","computed":true},"expiration_date":{"type":"TypeString","computed":true},"key_vault_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"not_before_date":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"resource_versionless_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true},"version":{"type":"TypeString","optional":true},"versionless_id":{"type":"TypeString","computed":true}},"timeouts":{"read":30}},"azurerm_key_vault_secrets":{"schema":{"key_vault_id":{"type":"TypeString","required":true},"names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"secrets":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster":{"schema":{"aci_connector_linux":{"type":"TypeList","computed":true,"elem":{"schema":{"subnet_name":{"type":"TypeString","computed":true}}}},"agent_pool_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"api_server_authorized_ip_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"azure_active_directory_role_based_access_control":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_group_object_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"azure_rbac_enabled":{"type":"TypeBool","computed":true},"client_app_id":{"type":"TypeString","computed":true},"managed":{"type":"TypeBool","computed":true},"server_app_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"azure_policy_enabled":{"type":"TypeBool","computed":true},"current_kubernetes_version":{"type":"TypeString","computed":true},"custom_ca_trust_certificates_base64":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"disk_encryption_set_id":{"type":"TypeString","computed":true},"dns_prefix":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"http_application_routing_enabled":{"type":"TypeBool","computed":true},"http_application_routing_zone_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"ingress_application_gateway":{"type":"TypeList","computed":true,"elem":{"schema":{"effective_gateway_id":{"type":"TypeString","computed":true},"gateway_id":{"type":"TypeString","computed":true},"gateway_name":{"type":"TypeString","computed":true},"ingress_application_gateway_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"subnet_cidr":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"key_management_service":{"type":"TypeList","computed":true,"elem":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"key_vault_network_access":{"type":"TypeString","computed":true}}}},"key_vault_secrets_provider":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"secret_rotation_enabled":{"type":"TypeBool","computed":true},"secret_rotation_interval":{"type":"TypeString","computed":true}}}},"kube_admin_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_admin_config_raw":{"type":"TypeString","computed":true},"kube_config":{"type":"TypeList","computed":true,"elem":{"schema":{"client_certificate":{"type":"TypeString","computed":true},"client_key":{"type":"TypeString","computed":true},"cluster_ca_certificate":{"type":"TypeString","computed":true},"host":{"type":"TypeString","computed":true},"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"kube_config_raw":{"type":"TypeString","computed":true},"kubelet_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}},"kubernetes_version":{"type":"TypeString","computed":true},"linux_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true},"ssh_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_data":{"type":"TypeString","computed":true}}}}}}},"location":{"type":"TypeString","computed":true},"microsoft_defender":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"network_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_service_ip":{"type":"TypeString","computed":true},"docker_bridge_cidr":{"type":"TypeString","computed":true},"load_balancer_sku":{"type":"TypeString","computed":true},"network_plugin":{"type":"TypeString","computed":true},"network_policy":{"type":"TypeString","computed":true},"pod_cidr":{"type":"TypeString","computed":true},"service_cidr":{"type":"TypeString","computed":true}}}},"node_resource_group":{"type":"TypeString","computed":true},"node_resource_group_id":{"type":"TypeString","computed":true},"oidc_issuer_enabled":{"type":"TypeBool","computed":true},"oidc_issuer_url":{"type":"TypeString","computed":true},"oms_agent":{"type":"TypeList","computed":true,"elem":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","computed":true},"msi_auth_for_monitoring_enabled":{"type":"TypeBool","computed":true},"oms_agent_identity":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"user_assigned_identity_id":{"type":"TypeString","computed":true}}}}}}},"open_service_mesh_enabled":{"type":"TypeBool","computed":true},"private_cluster_enabled":{"type":"TypeBool","computed":true},"private_fqdn":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"role_based_access_control_enabled":{"type":"TypeBool","computed":true},"service_mesh_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"external_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"internal_ingress_gateway_enabled":{"type":"TypeBool","computed":true},"mode":{"type":"TypeString","computed":true}}}},"service_principal":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","computed":true}}}},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_enabled":{"type":"TypeBool","computed":true},"disk_driver_version":{"type":"TypeString","computed":true},"file_driver_enabled":{"type":"TypeBool","computed":true},"snapshot_controller_enabled":{"type":"TypeBool","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"windows_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"admin_username":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_kubernetes_cluster_node_pool":{"schema":{"enable_auto_scaling":{"type":"TypeBool","computed":true},"enable_node_public_ip":{"type":"TypeBool","computed":true},"eviction_policy":{"type":"TypeString","computed":true},"kubernetes_cluster_name":{"type":"TypeString","required":true},"max_count":{"type":"TypeInt","computed":true},"max_pods":{"type":"TypeInt","computed":true},"min_count":{"type":"TypeInt","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"node_count":{"type":"TypeInt","computed":true},"node_labels":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"node_public_ip_prefix_id":{"type":"TypeString","computed":true},"node_taints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"orchestrator_version":{"type":"TypeString","computed":true},"os_disk_size_gb":{"type":"TypeInt","computed":true},"os_disk_type":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"priority":{"type":"TypeString","computed":true},"proximity_placement_group_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"spot_max_price":{"type":"TypeFloat","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"upgrade_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"max_surge":{"type":"TypeString","computed":true}}}},"vm_size":{"type":"TypeString","computed":true},"vnet_subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_node_pool_snapshot":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"source_node_pool_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kubernetes_service_versions":{"schema":{"include_preview":{"type":"TypeBool","optional":true,"default":true},"latest_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","required":true,"forceNew":true},"version_prefix":{"type":"TypeString","optional":true},"versions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_kusto_cluster":{"schema":{"data_ingestion_uri":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"uri":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_kusto_database":{"schema":{"cluster_name":{"type":"TypeString","required":true},"hot_cache_period":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"size":{"type":"TypeFloat","computed":true},"soft_delete_period":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_lb":{"schema":{"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_backend_address_pool":{"schema":{"backend_address":{"type":"TypeList","computed":true,"elem":{"schema":{"inbound_nat_rule_port_mapping":{"type":"TypeList","computed":true,"elem":{"schema":{"backend_port":{"type":"TypeInt","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"inbound_nat_rule_name":{"type":"TypeString","computed":true}}}},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"virtual_network_id":{"type":"TypeString","computed":true}}}},"backend_ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true}}}},"inbound_nat_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancing_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"outbound_rules":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_lb_outbound_rule":{"schema":{"allocated_outbound_ports":{"type":"TypeInt","computed":true},"backend_address_pool_id":{"type":"TypeString","computed":true},"frontend_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"protocol":{"type":"TypeString","computed":true},"tcp_reset_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_lb_rule":{"schema":{"backend_address_pool_id":{"type":"TypeString","computed":true},"backend_port":{"type":"TypeInt","computed":true},"disable_outbound_snat":{"type":"TypeBool","computed":true},"enable_floating_ip":{"type":"TypeBool","computed":true},"enable_tcp_reset":{"type":"TypeBool","computed":true},"frontend_ip_configuration_name":{"type":"TypeString","computed":true},"frontend_port":{"type":"TypeInt","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"load_distribution":{"type":"TypeString","computed":true},"loadbalancer_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"probe_id":{"type":"TypeString","computed":true},"protocol":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_linux_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker":{"type":"TypeList","computed":true,"elem":{"schema":{"image_name":{"type":"TypeString","computed":true},"image_tag":{"type":"TypeString","computed":true},"registry_password":{"type":"TypeString","computed":true},"registry_url":{"type":"TypeString","computed":true},"registry_username":{"type":"TypeString","computed":true}}}},"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":25}},"azurerm_linux_web_app":{"schema":{"app_metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"availability":{"type":"TypeString","computed":true},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"key_vault_reference_identity_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"docker_image":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_image_tag":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"go_version":{"type":"TypeString","computed":true},"java_server":{"type":"TypeString","computed":true},"java_server_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python_version":{"type":"TypeString","computed":true},"ruby_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","optional":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"linux_fx_version":{"type":"TypeString","computed":true},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"usage":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_local_network_gateway":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","required":true},"bgp_peering_address":{"type":"TypeString","required":true},"peer_weight":{"type":"TypeInt","computed":true}}}},"gateway_address":{"type":"TypeString","computed":true},"gateway_fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_log_analytics_workspace":{"schema":{"daily_quota_gb":{"type":"TypeFloat","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_shared_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retention_in_days":{"type":"TypeInt","computed":true},"secondary_shared_key":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workspace_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_integration_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_logic_app_standard":{"schema":{"app_service_plan_id":{"type":"TypeString","computed":true},"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"bundle_version":{"type":"TypeString","computed":true},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"site_config":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","optional":true,"default":false},"app_scale_limit":{"type":"TypeInt","optional":true,"computed":true},"auto_swap_slot_name":{"type":"TypeString","computed":true},"cors":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeSet","required":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"dotnet_framework_version":{"type":"TypeString","optional":true,"default":"v4.0"},"elastic_instance_minimum":{"type":"TypeInt","optional":true,"computed":true},"ftps_state":{"type":"TypeString","optional":true,"computed":true},"health_check_path":{"type":"TypeString","optional":true},"http2_enabled":{"type":"TypeBool","optional":true,"default":false},"ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"linux_fx_version":{"type":"TypeString","optional":true,"computed":true},"min_tls_version":{"type":"TypeString","optional":true,"computed":true},"pre_warmed_instance_count":{"type":"TypeInt","optional":true,"computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","optional":true,"default":false},"scm_ip_restriction":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","optional":true,"default":"Allow"},"headers":{"type":"TypeList","configMode":"Auto","optional":true,"computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_fd_health_probe":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":1},"x_forwarded_for":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8},"x_forwarded_host":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"},"maxItems":8}}},"maxItems":1},"ip_address":{"type":"TypeString","optional":true},"name":{"type":"TypeString","optional":true,"computed":true},"priority":{"type":"TypeInt","optional":true,"default":65000},"service_tag":{"type":"TypeString","optional":true},"virtual_network_subnet_id":{"type":"TypeString","optional":true}}}},"scm_min_tls_version":{"type":"TypeString","optional":true,"computed":true},"scm_type":{"type":"TypeString","optional":true,"computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","optional":true,"default":false},"use_32_bit_worker_process":{"type":"TypeBool","optional":true,"default":true},"vnet_route_all_enabled":{"type":"TypeBool","optional":true,"computed":true},"websockets_enabled":{"type":"TypeBool","optional":true,"default":false}}},"maxItems":1},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_account_share_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"use_extension_bundle":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_logic_app_workflow":{"schema":{"access_endpoint":{"type":"TypeString","computed":true},"connector_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connector_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"logic_app_integration_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"workflow_endpoint_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_outbound_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"workflow_schema":{"type":"TypeString","computed":true},"workflow_version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_machine_learning_workspace":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_maintenance_configuration":{"schema":{"in_guest_user_patch_mode":{"type":"TypeString","computed":true},"install_patches":{"type":"TypeList","computed":true,"elem":{"schema":{"linux":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"package_names_mask_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"reboot":{"type":"TypeString","computed":true},"windows":{"type":"TypeList","computed":true,"elem":{"schema":{"classifications_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_exclude":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"kb_numbers_to_include":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"properties":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"scope":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility":{"type":"TypeString","computed":true},"window":{"type":"TypeList","computed":true,"elem":{"schema":{"duration":{"type":"TypeString","computed":true},"expiration_date_time":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"start_date_time":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_managed_api":{"schema":{"location":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_managed_application_definition":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_managed_disk":{"schema":{"create_option":{"type":"TypeString","computed":true},"disk_access_id":{"type":"TypeString","computed":true},"disk_encryption_set_id":{"type":"TypeString","computed":true},"disk_iops_read_write":{"type":"TypeInt","computed":true},"disk_mbps_read_write":{"type":"TypeInt","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"image_reference_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_access_policy":{"type":"TypeString","computed":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group":{"schema":{"all_management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"all_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","optional":true,"computed":true},"parent_management_group_id":{"type":"TypeString","computed":true},"subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_management_group_template_deployment":{"schema":{"management_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_maps_account":{"schema":{"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"x_ms_client_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mariadb_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement":{"type":"TypeString","computed":true},"storage_profile":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"geo_redundant_backup":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_marketplace_agreement":{"schema":{"license_text_link":{"type":"TypeString","computed":true},"offer":{"type":"TypeString","required":true},"plan":{"type":"TypeString","required":true},"privacy_policy_link":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_mobile_network":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_country_code":{"type":"TypeString","computed":true},"mobile_network_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"service_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_attached_data_network":{"schema":{"dns_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"mobile_network_data_network_name":{"type":"TypeString","required":true},"mobile_network_packet_core_data_plane_id":{"type":"TypeString","required":true},"network_address_port_translation":{"type":"TypeList","computed":true,"elem":{"schema":{"icmp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"pinhole_maximum_number":{"type":"TypeInt","optional":true},"port_range":{"type":"TypeList","computed":true,"elem":{"schema":{"maximum":{"type":"TypeInt","computed":true},"minimum":{"type":"TypeInt","computed":true}}}},"tcp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"tcp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true},"udp_pinhole_timeout_in_seconds":{"type":"TypeInt","computed":true},"udp_port_reuse_minimum_hold_time_in_seconds":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_equipment_static_address_pool_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_data_network":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_control_plane":{"schema":{"control_plane_access_ipv4_address":{"type":"TypeString","computed":true},"control_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"control_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"control_plane_access_name":{"type":"TypeString","computed":true},"core_network_technology":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"interoperability_settings_json":{"type":"TypeString","computed":true},"local_diagnostics_access":{"type":"TypeList","computed":true,"elem":{"schema":{"authentication_type":{"type":"TypeString","computed":true},"https_server_certificate_url":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"platform":{"type":"TypeList","computed":true,"elem":{"schema":{"arc_kubernetes_cluster_id":{"type":"TypeString","computed":true},"custom_location_id":{"type":"TypeString","computed":true},"edge_device_id":{"type":"TypeString","computed":true},"stack_hci_cluster_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"sku":{"type":"TypeString","computed":true},"software_version":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_mtu_in_bytes":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_packet_core_data_plane":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_packet_core_control_plane_id":{"type":"TypeString","required":true,"forceNew":true},"name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_plane_access_ipv4_address":{"type":"TypeString","computed":true},"user_plane_access_ipv4_gateway":{"type":"TypeString","computed":true},"user_plane_access_ipv4_subnet":{"type":"TypeString","computed":true},"user_plane_access_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_service":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"pcc_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"precedence":{"type":"TypeInt","computed":true},"qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"guaranteed_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"service_data_flow_template":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"ports":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"protocol":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_ip_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"traffic_control_enabled":{"type":"TypeBool","computed":true}}}},"service_precedence":{"type":"TypeInt","computed":true},"service_qos_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim":{"schema":{"device_type":{"type":"TypeString","computed":true},"integrated_circuit_card_identifier":{"type":"TypeString","computed":true},"international_mobile_subscriber_identity":{"type":"TypeString","computed":true},"mobile_network_sim_group_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"sim_policy_id":{"type":"TypeString","computed":true},"sim_state":{"type":"TypeString","computed":true},"static_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"attached_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true},"static_ipv4_address":{"type":"TypeString","computed":true}}}},"vendor_key_fingerprint":{"type":"TypeString","computed":true},"vendor_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_group":{"schema":{"encryption_key_url":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_sim_policy":{"schema":{"default_slice_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"rat_frequency_selection_priority_index":{"type":"TypeInt","computed":true},"registration_timer_in_seconds":{"type":"TypeInt","computed":true},"slice":{"type":"TypeList","computed":true,"elem":{"schema":{"data_network":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_allowed_session_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allocation_and_retention_priority_level":{"type":"TypeInt","computed":true},"allowed_services_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_network_id":{"type":"TypeString","computed":true},"default_session_type":{"type":"TypeString","computed":true},"max_buffered_packets":{"type":"TypeInt","computed":true},"preemption_capability":{"type":"TypeString","computed":true},"preemption_vulnerability":{"type":"TypeString","computed":true},"qos_indicator":{"type":"TypeInt","computed":true},"session_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}}}},"default_data_network_id":{"type":"TypeString","computed":true},"slice_id":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"user_equipment_aggregate_maximum_bit_rate":{"type":"TypeList","computed":true,"elem":{"schema":{"downlink":{"type":"TypeString","computed":true},"uplink":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_mobile_network_site":{"schema":{"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"network_function_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mobile_network_slice":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"mobile_network_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true},"single_network_slice_selection_assistance_information":{"type":"TypeList","computed":true,"elem":{"schema":{"slice_differentiator":{"type":"TypeString","computed":true},"slice_service_type":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_action_group":{"schema":{"arm_role_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"role_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"automation_runbook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"automation_account_id":{"type":"TypeString","computed":true},"is_global_runbook":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"runbook_name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true},"webhook_resource_id":{"type":"TypeString","computed":true}}}},"azure_app_push_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"azure_function_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"function_app_resource_id":{"type":"TypeString","computed":true},"function_name":{"type":"TypeString","computed":true},"http_trigger_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"email_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"email_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"event_hub_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","optional":true,"computed":true},"event_hub_name":{"type":"TypeString","optional":true,"computed":true},"event_hub_namespace":{"type":"TypeString","optional":true,"computed":true},"name":{"type":"TypeString","required":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tenant_id":{"type":"TypeString","optional":true,"computed":true},"use_common_alert_schema":{"type":"TypeBool","optional":true}}}},"itsm_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"connection_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"region":{"type":"TypeString","computed":true},"ticket_configuration":{"type":"TypeString","computed":true},"workspace_id":{"type":"TypeString","computed":true}}}},"logic_app_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"callback_url":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_id":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"short_name":{"type":"TypeString","computed":true},"sms_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"voice_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"country_code":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"phone_number":{"type":"TypeString","computed":true}}}},"webhook_receiver":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"identifier_uri":{"type":"TypeString","computed":true},"object_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"service_uri":{"type":"TypeString","computed":true},"use_common_alert_schema":{"type":"TypeBool","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_endpoint":{"schema":{"configuration_access_endpoint":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs_ingestion_endpoint":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_data_collection_rule":{"schema":{"data_collection_endpoint_id":{"type":"TypeString","computed":true},"data_flow":{"type":"TypeList","computed":true,"elem":{"schema":{"built_in_transform":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"output_stream":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"transform_kql":{"type":"TypeString","computed":true}}}},"data_sources":{"type":"TypeList","computed":true,"elem":{"schema":{"data_import":{"type":"TypeList","computed":true,"elem":{"schema":{"event_hub_data_source":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_group":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"stream":{"type":"TypeString","computed":true}}}}}}},"extension":{"type":"TypeList","computed":true,"elem":{"schema":{"extension_json":{"type":"TypeString","computed":true},"extension_name":{"type":"TypeString","computed":true},"input_data_sources":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"iis_log":{"type":"TypeList","computed":true,"elem":{"schema":{"log_directories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"log_file":{"type":"TypeList","optional":true,"elem":{"schema":{"file_patterns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"format":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"settings":{"type":"TypeList","computed":true,"elem":{"schema":{"text":{"type":"TypeList","computed":true,"elem":{"schema":{"record_start_timestamp_format":{"type":"TypeString","computed":true}}}}}}},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"performance_counter":{"type":"TypeList","computed":true,"elem":{"schema":{"counter_specifiers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"sampling_frequency_in_seconds":{"type":"TypeInt","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"platform_telemetry":{"type":"TypeList","optional":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"prometheus_forwarder":{"type":"TypeList","computed":true,"elem":{"schema":{"label_include_filter":{"type":"TypeList","computed":true,"elem":{"schema":{"label":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"syslog":{"type":"TypeList","computed":true,"elem":{"schema":{"facility_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"log_levels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_event_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"x_path_queries":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"windows_firewall_log":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"streams":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}}}}},"description":{"type":"TypeString","computed":true},"destinations":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_monitor_metrics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"event_hub":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"event_hub_direct":{"type":"TypeList","optional":true,"elem":{"schema":{"event_hub_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}},"maxItems":1},"log_analytics":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"workspace_resource_id":{"type":"TypeString","computed":true}}}},"monitor_account":{"type":"TypeList","computed":true,"elem":{"schema":{"monitor_account_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"storage_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_blob_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"container_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}}}},"storage_table_direct":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"table_name":{"type":"TypeString","computed":true}}}}}}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"immutable_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"stream_declaration":{"type":"TypeList","computed":true,"elem":{"schema":{"column":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"stream_name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_monitor_diagnostic_categories":{"schema":{"log_category_groups":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"log_category_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"logs":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"metrics":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_monitor_log_profile":{"schema":{"categories":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"locations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"retention_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"days":{"type":"TypeInt","computed":true},"enabled":{"type":"TypeBool","computed":true}}}},"servicebus_rule_id":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_alert":{"schema":{"action":{"type":"TypeSet","computed":true,"elem":{"schema":{"action_group":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"custom_webhook_payload":{"type":"TypeString","computed":true},"email_subject":{"type":"TypeString","computed":true}}}},"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"query":{"type":"TypeString","computed":true},"query_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"severity":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throttling":{"type":"TypeInt","computed":true},"time_window":{"type":"TypeInt","computed":true},"trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_trigger":{"type":"TypeSet","computed":true,"elem":{"schema":{"metric_column":{"type":"TypeString","computed":true},"metric_trigger_type":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}},"operator":{"type":"TypeString","computed":true},"threshold":{"type":"TypeFloat","computed":true}}}}},"timeouts":{"read":5}},"azurerm_monitor_scheduled_query_rules_log":{"schema":{"authorized_resource_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"criteria":{"type":"TypeSet","computed":true,"elem":{"schema":{"dimension":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operator":{"type":"TypeString","computed":true},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"metric_name":{"type":"TypeString","computed":true}}}},"data_source_id":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_mssql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"elastic_pool_id":{"type":"TypeString","computed":true},"license_type":{"type":"TypeString","computed":true},"max_size_gb":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"read_replica_count":{"type":"TypeInt","computed":true},"read_scale":{"type":"TypeBool","computed":true},"server_id":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_elasticpool":{"schema":{"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"max_size_bytes":{"type":"TypeInt","computed":true},"max_size_gb":{"type":"TypeFloat","computed":true},"name":{"type":"TypeString","required":true},"per_db_max_capacity":{"type":"TypeInt","computed":true},"per_db_min_capacity":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity":{"type":"TypeInt","computed":true},"family":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tier":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"customer_managed_key_id":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_mssql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fully_qualified_domain_name":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"restorable_dropped_database_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"high_availability":{"type":"TypeList","computed":true,"elem":{"schema":{"mode":{"type":"TypeString","computed":true},"standby_availability_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeInt","computed":true},"start_hour":{"type":"TypeInt","computed":true},"start_minute":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"private_dns_zone_id":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"replica_capacity":{"type":"TypeInt","computed":true},"replication_role":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"storage":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_grow_enabled":{"type":"TypeBool","computed":true},"io_scaling_enabled":{"type":"TypeBool","computed":true},"iops":{"type":"TypeInt","computed":true},"size_gb":{"type":"TypeInt","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_mysql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"geo_redundant_backup_enabled":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"restore_point_in_time":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_enforcement_enabled":{"type":"TypeBool","computed":true},"ssl_minimal_tls_version_enforced":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"threat_detection_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"disabled_alerts":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"email_account_admins":{"type":"TypeBool","computed":true},"email_addresses":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enabled":{"type":"TypeBool","computed":true},"retention_days":{"type":"TypeInt","computed":true},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_endpoint":{"type":"TypeString","computed":true}}}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_nat_gateway":{"schema":{"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_ip_address_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"public_ip_prefix_ids":{"type":"TypeList","optional":true,"computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_netapp_account":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_pool":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"service_level":{"type":"TypeString","computed":true},"size_in_tb":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot":{"schema":{"account_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"pool_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"volume_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_netapp_snapshot_policy":{"schema":{"account_name":{"type":"TypeString","required":true},"daily_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"hourly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"monthly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_month":{"type":"TypeSet","computed":true,"elem":{"type":"TypeInt"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"weekly_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"days_of_week":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"hour":{"type":"TypeInt","computed":true},"minute":{"type":"TypeInt","computed":true},"snapshots_to_keep":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume":{"schema":{"account_name":{"type":"TypeString","required":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"network_features":{"type":"TypeString","computed":true},"pool_name":{"type":"TypeString","required":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"security_style":{"type":"TypeString","optional":true},"service_level":{"type":"TypeString","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"volume_path":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_netapp_volume_group_sap_hana":{"schema":{"account_name":{"type":"TypeString","required":true},"application_identifier":{"type":"TypeString","computed":true},"group_description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"volume":{"type":"TypeList","computed":true,"elem":{"schema":{"capacity_pool_id":{"type":"TypeString","computed":true},"data_protection_replication":{"type":"TypeList","computed":true,"elem":{"schema":{"endpoint_type":{"type":"TypeString","computed":true},"remote_volume_location":{"type":"TypeString","computed":true},"remote_volume_resource_id":{"type":"TypeString","computed":true},"replication_frequency":{"type":"TypeString","computed":true}}}},"data_protection_snapshot_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"snapshot_policy_id":{"type":"TypeString","computed":true}}}},"export_policy_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_clients":{"type":"TypeString","computed":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"nfsv41_enabled":{"type":"TypeBool","computed":true},"root_access_enabled":{"type":"TypeBool","computed":true},"rule_index":{"type":"TypeInt","computed":true},"unix_read_only":{"type":"TypeBool","computed":true},"unix_read_write":{"type":"TypeBool","computed":true}}}},"id":{"type":"TypeString","computed":true},"mount_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"protocols":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"proximity_placement_group_id":{"type":"TypeString","computed":true},"security_style":{"type":"TypeString","computed":true},"service_level":{"type":"TypeString","computed":true},"snapshot_directory_visible":{"type":"TypeBool","computed":true},"storage_quota_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"throughput_in_mibps":{"type":"TypeFloat","required":true},"volume_path":{"type":"TypeString","computed":true},"volume_spec_name":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_netapp_volume_quota_rule":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"quota_size_in_kib":{"type":"TypeInt","computed":true},"quota_target":{"type":"TypeString","computed":true},"quota_type":{"type":"TypeString","computed":true},"volume_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_network_ddos_protection_plan":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"virtual_network_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_interface":{"schema":{"applied_dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"internal_dns_name_label":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"gateway_load_balancer_frontend_ip_configuration_id":{"type":"TypeString","computed":true},"load_balancer_backend_address_pools_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"mac_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_network_manager_network_group":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_manager_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_security_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"security_rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"destination_address_prefix":{"type":"TypeString","computed":true},"destination_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"destination_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"destination_port_range":{"type":"TypeString","computed":true},"destination_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"direction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"priority":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"source_address_prefix":{"type":"TypeString","computed":true},"source_address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"source_application_security_group_ids":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"source_port_range":{"type":"TypeString","computed":true},"source_port_ranges":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_network_service_tags":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv4_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ipv6_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","required":true,"forceNew":true},"location_filter":{"type":"TypeString","optional":true,"forceNew":true},"service":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_network_watcher":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub":{"schema":{"apns_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"application_mode":{"type":"TypeString","computed":true},"bundle_id":{"type":"TypeString","computed":true},"key_id":{"type":"TypeString","computed":true},"team_id":{"type":"TypeString","computed":true},"token":{"type":"TypeString","computed":true}}}},"gcm_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"api_key":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_notification_hub_namespace":{"schema":{"enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"servicebus_endpoint":{"type":"TypeString","computed":true},"sku":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_orchestrated_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"accelerated_networking_enabled":{"type":"TypeBool","computed":true},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"ip_forwarding_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_palo_alto_local_rulestack":{"schema":{"anti_spyware_profile":{"type":"TypeString","computed":true},"anti_virus_profile":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"dns_subscription":{"type":"TypeString","computed":true},"file_blocking_profile":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_trust_certificate":{"type":"TypeString","computed":true},"outbound_untrust_certificate":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"url_filtering_profile":{"type":"TypeString","computed":true},"vulnerability_profile":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_platform_image":{"schema":{"location":{"type":"TypeString","required":true,"forceNew":true},"offer":{"type":"TypeString","required":true},"publisher":{"type":"TypeString","required":true},"sku":{"type":"TypeString","required":true},"version":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_policy_assignment":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"enforce":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true,"forceNew":true},"non_compliance_message":{"type":"TypeList","computed":true,"elem":{"schema":{"content":{"type":"TypeString","computed":true},"policy_definition_reference_id":{"type":"TypeString","computed":true}}}},"not_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"parameters":{"type":"TypeString","computed":true},"policy_definition_id":{"type":"TypeString","computed":true},"scope_id":{"type":"TypeString","required":true,"forceNew":true}},"timeouts":{"read":5}},"azurerm_policy_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_definition_built_in":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"mode":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_rule":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true},"role_definition_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_set_definition":{"schema":{"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"management_group_name":{"type":"TypeString","optional":true},"metadata":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"parameters":{"type":"TypeString","computed":true},"policy_definition_group":{"type":"TypeList","computed":true,"elem":{"schema":{"additional_metadata_resource_id":{"type":"TypeString","computed":true},"category":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"policy_definition_reference":{"type":"TypeList","computed":true,"elem":{"schema":{"parameter_values":{"type":"TypeString","computed":true},"parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"policy_definition_id":{"type":"TypeString","computed":true},"policy_group_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"reference_id":{"type":"TypeString","computed":true}}}},"policy_definitions":{"type":"TypeString","computed":true},"policy_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_policy_virtual_machine_configuration_assignment":{"schema":{"assignment_hash":{"type":"TypeString","computed":true},"compliance_status":{"type":"TypeString","computed":true},"content_hash":{"type":"TypeString","computed":true},"content_uri":{"type":"TypeString","computed":true},"last_compliance_status_checked":{"type":"TypeString","computed":true},"latest_report_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"virtual_machine_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_portal_dashboard":{"schema":{"dashboard_properties":{"type":"TypeString","optional":true,"computed":true},"display_name":{"type":"TypeString","optional":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_postgresql_flexible_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"auto_grow_enabled":{"type":"TypeBool","computed":true},"backup_retention_days":{"type":"TypeInt","computed":true},"delegated_subnet_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_mb":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_postgresql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_private_dns_a_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_aaaa_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_cname_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_resource_id":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_mx_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"exchange":{"type":"TypeString","computed":true},"preference":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_ptr_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"records":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_dns_forwarding_ruleset":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_outbound_endpoint_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true,"forceNew":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_forwarding_rule":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"domain_name":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"target_dns_servers":{"type":"TypeList","computed":true,"elem":{"schema":{"ip_address":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true}}}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_inbound_endpoint":{"schema":{"ip_configurations":{"type":"TypeList","computed":true,"elem":{"schema":{"private_ip_address":{"type":"TypeString","computed":true},"private_ip_allocation_method":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_outbound_endpoint":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_dns_resolver_id":{"type":"TypeString","required":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_resolver_virtual_network_link":{"schema":{"dns_forwarding_ruleset_id":{"type":"TypeString","required":true},"metadata":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_dns_soa_record":{"schema":{"email":{"type":"TypeString","computed":true},"expire_time":{"type":"TypeInt","computed":true},"fqdn":{"type":"TypeString","computed":true},"host_name":{"type":"TypeString","computed":true},"minimum_ttl":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","optional":true,"default":"@"},"refresh_time":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"retry_time":{"type":"TypeInt","computed":true},"serial_number":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_srv_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"port":{"type":"TypeInt","computed":true},"priority":{"type":"TypeInt","computed":true},"target":{"type":"TypeString","computed":true},"weight":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_txt_record":{"schema":{"fqdn":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"record":{"type":"TypeSet","computed":true,"elem":{"schema":{"value":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ttl":{"type":"TypeInt","computed":true},"zone_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_dns_zone":{"schema":{"max_number_of_record_sets":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links":{"type":"TypeInt","computed":true},"max_number_of_virtual_network_links_with_registration":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"number_of_record_sets":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_dns_zone_virtual_network_link":{"schema":{"name":{"type":"TypeString","required":true},"private_dns_zone_name":{"type":"TypeString","required":true},"registration_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_private_endpoint_connection":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"private_service_connection":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"request_response":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_private_link_service":{"schema":{"alias":{"type":"TypeString","computed":true},"auto_approval_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_proxy_protocol":{"type":"TypeBool","computed":true},"load_balancer_frontend_ip_configuration_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"nat_ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_version":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"visibility_subscription_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_private_link_service_endpoint_connections":{"schema":{"location":{"type":"TypeString","computed":true},"private_endpoint_connections":{"type":"TypeList","computed":true,"elem":{"schema":{"action_required":{"type":"TypeString","computed":true},"connection_id":{"type":"TypeString","computed":true},"connection_name":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"private_endpoint_id":{"type":"TypeString","computed":true},"private_endpoint_name":{"type":"TypeString","computed":true},"status":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_id":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_proximity_placement_group":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip":{"schema":{"allocation_method":{"type":"TypeString","computed":true},"ddos_protection_mode":{"type":"TypeString","computed":true},"ddos_protection_plan_id":{"type":"TypeString","computed":true},"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_address":{"type":"TypeString","computed":true},"ip_tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"ip_version":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"reverse_fqdn":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ip_prefix":{"schema":{"ip_prefix":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"prefix_length":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_public_ips":{"schema":{"allocation_type":{"type":"TypeString","optional":true},"attachment_status":{"type":"TypeString","optional":true},"name_prefix":{"type":"TypeString","optional":true},"public_ips":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_public_maintenance_configurations":{"schema":{"configs":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"duration":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maintenance_scope":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"recur_every":{"type":"TypeString","computed":true},"time_zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","optional":true},"recur_every":{"type":"TypeString","optional":true},"scope":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_recovery_services_vault":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_cache":{"schema":{"capacity":{"type":"TypeInt","computed":true},"enable_non_ssl_port":{"type":"TypeBool","computed":true},"family":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"patch_schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"maintenance_window":{"type":"TypeString","computed":true},"start_hour_utc":{"type":"TypeInt","computed":true}}}},"port":{"type":"TypeInt","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"private_static_ip_address":{"type":"TypeString","computed":true},"redis_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aof_backup_enabled":{"type":"TypeBool","computed":true},"aof_storage_connection_string_0":{"type":"TypeString","computed":true},"aof_storage_connection_string_1":{"type":"TypeString","computed":true},"enable_authentication":{"type":"TypeBool","computed":true},"maxclients":{"type":"TypeInt","computed":true},"maxfragmentationmemory_reserved":{"type":"TypeInt","computed":true},"maxmemory_delta":{"type":"TypeInt","computed":true},"maxmemory_policy":{"type":"TypeString","computed":true},"maxmemory_reserved":{"type":"TypeInt","computed":true},"notify_keyspace_events":{"type":"TypeString","computed":true},"rdb_backup_enabled":{"type":"TypeBool","computed":true},"rdb_backup_frequency":{"type":"TypeInt","computed":true},"rdb_backup_max_snapshot_count":{"type":"TypeInt","computed":true},"rdb_storage_connection_string":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"shard_count":{"type":"TypeInt","computed":true},"sku_name":{"type":"TypeString","computed":true},"ssl_port":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zones":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_redis_enterprise_database":{"schema":{"cluster_id":{"type":"TypeString","required":true},"linked_database_group_nickname":{"type":"TypeString","computed":true},"linked_database_id":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"secondary_access_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_resource_group":{"schema":{"location":{"type":"TypeString","computed":true},"managed_by":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_resource_group_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_resources":{"schema":{"name":{"type":"TypeString","optional":true,"computed":true},"required_tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","optional":true,"computed":true},"resources":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"type":{"type":"TypeString","optional":true,"computed":true}},"timeouts":{"read":5}},"azurerm_role_definition":{"schema":{"assignable_scopes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","optional":true,"computed":true},"permissions":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}},"not_actions":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"not_data_actions":{"type":"TypeSet","optional":true,"elem":{"type":"TypeString"}}}}},"role_definition_id":{"type":"TypeString","optional":true,"computed":true},"scope":{"type":"TypeString","optional":true},"type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_route_filter":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"access":{"type":"TypeString","computed":true},"communities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"rule_type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_route_table":{"schema":{"bgp_route_propagation_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop_in_ip_address":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"subnets":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_search_service":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","required":true},"partition_count":{"type":"TypeInt","computed":true},"primary_key":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"query_keys":{"type":"TypeList","computed":true,"elem":{"schema":{"key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true}}}},"replica_count":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule":{"schema":{"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_anomaly":{"schema":{"anomaly_settings_version":{"type":"TypeInt","computed":true},"anomaly_version":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"display_name":{"type":"TypeString","optional":true,"computed":true},"enabled":{"type":"TypeBool","computed":true},"frequency":{"type":"TypeString","computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"mode":{"type":"TypeString","computed":true},"multi_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","optional":true,"computed":true},"prioritized_exclude_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"exclude":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"prioritize":{"type":"TypeString","computed":true}}}},"required_data_connector":{"type":"TypeList","computed":true,"elem":{"schema":{"connector_id":{"type":"TypeString","computed":true},"data_types":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"settings_definition_id":{"type":"TypeString","computed":true},"single_select_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"supported_values":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"value":{"type":"TypeString","computed":true}}}},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"techniques":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"threshold_observation":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"max":{"type":"TypeString","computed":true},"min":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_sentinel_alert_rule_template":{"schema":{"display_name":{"type":"TypeString","optional":true,"computed":true},"log_analytics_workspace_id":{"type":"TypeString","required":true},"name":{"type":"TypeString","optional":true,"computed":true},"nrt_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"scheduled_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"query":{"type":"TypeString","computed":true},"query_frequency":{"type":"TypeString","computed":true},"query_period":{"type":"TypeString","computed":true},"severity":{"type":"TypeString","computed":true},"tactics":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"trigger_operator":{"type":"TypeString","computed":true},"trigger_threshold":{"type":"TypeInt","computed":true}}}},"security_incident_template":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"product_filter":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_service_plan":{"schema":{"app_service_environment_id":{"type":"TypeString","computed":true},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_elastic_worker_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"per_site_scaling_enabled":{"type":"TypeBool","computed":true},"reserved":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"worker_count":{"type":"TypeInt","computed":true},"zone_balancing_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace":{"schema":{"capacity":{"type":"TypeInt","computed":true},"default_primary_connection_string":{"type":"TypeString","computed":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_connection_string":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"endpoint":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"zone_redundant":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_authorization_rule":{"schema":{"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_namespace_disaster_recovery_config":{"schema":{"alias_authorization_rule_id":{"type":"TypeString","optional":true},"default_primary_key":{"type":"TypeString","computed":true},"default_secondary_key":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"partner_namespace_id":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_queue_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_id":{"type":"TypeString","optional":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_subscription":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"dead_lettering_on_filter_evaluation_error":{"type":"TypeBool","computed":true},"dead_lettering_on_message_expiration":{"type":"TypeBool","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"forward_dead_lettered_messages_to":{"type":"TypeString","computed":true},"forward_to":{"type":"TypeString","computed":true},"lock_duration":{"type":"TypeString","computed":true},"max_delivery_count":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"requires_session":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic":{"schema":{"auto_delete_on_idle":{"type":"TypeString","computed":true},"default_message_ttl":{"type":"TypeString","computed":true},"duplicate_detection_history_time_window":{"type":"TypeString","computed":true},"enable_batched_operations":{"type":"TypeBool","computed":true},"enable_express":{"type":"TypeBool","computed":true},"enable_partitioning":{"type":"TypeBool","computed":true},"max_size_in_megabytes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"namespace_id":{"type":"TypeString","optional":true},"namespace_name":{"type":"TypeString","optional":true},"requires_duplicate_detection":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","optional":true},"status":{"type":"TypeString","computed":true},"support_ordering":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_servicebus_topic_authorization_rule":{"schema":{"listen":{"type":"TypeBool","computed":true},"manage":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"namespace_name":{"type":"TypeString","optional":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_connection_string_alias":{"type":"TypeString","computed":true},"primary_key":{"type":"TypeString","computed":true},"queue_name":{"type":"TypeString","optional":true},"resource_group_name":{"type":"TypeString","optional":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_connection_string_alias":{"type":"TypeString","computed":true},"secondary_key":{"type":"TypeString","computed":true},"send":{"type":"TypeBool","computed":true},"topic_id":{"type":"TypeString","optional":true},"topic_name":{"type":"TypeString","optional":true}},"timeouts":{"read":5}},"azurerm_shared_image":{"schema":{"architecture":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"eula":{"type":"TypeString","computed":true},"gallery_name":{"type":"TypeString","required":true},"hyper_v_generation":{"type":"TypeString","computed":true},"identifier":{"type":"TypeList","computed":true,"elem":{"schema":{"offer":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true},"sku":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"privacy_statement_uri":{"type":"TypeString","computed":true},"purchase_plan":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"product":{"type":"TypeString","computed":true},"publisher":{"type":"TypeString","computed":true}}}},"release_note_uri":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"specialized":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_shared_image_gallery":{"schema":{"description":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"unique_name":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_shared_image_version":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"os_disk_image_size_gb":{"type":"TypeInt","computed":true},"os_disk_snapshot_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sort_versions_by_semver":{"type":"TypeBool","optional":true,"default":false},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_shared_image_versions":{"schema":{"gallery_name":{"type":"TypeString","required":true},"image_name":{"type":"TypeString","required":true},"images":{"type":"TypeList","computed":true,"elem":{"schema":{"exclude_from_latest":{"type":"TypeBool","computed":true},"id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"managed_image_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"target_region":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"regional_replica_count":{"type":"TypeInt","computed":true},"storage_account_type":{"type":"TypeString","computed":true}}}}}}},"resource_group_name":{"type":"TypeString","required":true},"tags_filter":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_signalr_service":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"hostname":{"type":"TypeString","computed":true},"ip_address":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"serverless_connection_timeout_in_seconds":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_site_recovery_fabric":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_protection_container":{"schema":{"name":{"type":"TypeString","required":true},"recovery_fabric_name":{"type":"TypeString","required":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_policy":{"schema":{"application_consistent_snapshot_frequency_in_minutes":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"recovery_point_retention_in_minutes":{"type":"TypeInt","computed":true},"recovery_vault_name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_site_recovery_replication_recovery_plan":{"schema":{"azure_to_azure_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"primary_edge_zone":{"type":"TypeString","computed":true},"primary_zone":{"type":"TypeString","computed":true},"recovery_edge_zone":{"type":"TypeString","computed":true},"recovery_zone":{"type":"TypeString","computed":true}}}},"failover_deployment_model":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"recovery_group":{"type":"TypeSet","computed":true,"elem":{"schema":{"post_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"pre_action":{"type":"TypeSet","computed":true,"elem":{"type":"TypeList","elem":{"schema":{"fabric_location":{"type":"TypeString","computed":true},"fail_over_directions":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"fail_over_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"manual_action_instruction":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"runbook_id":{"type":"TypeString","computed":true},"script_path":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}}},"replicated_protected_items":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true}}}},"recovery_vault_id":{"type":"TypeString","required":true},"source_recovery_fabric_id":{"type":"TypeString","computed":true},"target_recovery_fabric_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_snapshot":{"schema":{"creation_option":{"type":"TypeString","computed":true},"disk_size_gb":{"type":"TypeInt","computed":true},"encryption_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"secret_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}},"enabled":{"type":"TypeBool","computed":true},"key_encryption_key":{"type":"TypeList","computed":true,"elem":{"schema":{"key_url":{"type":"TypeString","computed":true},"source_vault_id":{"type":"TypeString","computed":true}}}}}}},"name":{"type":"TypeString","required":true},"os_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"source_resource_id":{"type":"TypeString","computed":true},"source_uri":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","computed":true},"time_created":{"type":"TypeString","computed":true},"trusted_launch_enabled":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_source_control_token":{"schema":{"token":{"type":"TypeString","computed":true},"token_secret":{"type":"TypeString","computed":true},"type":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_spatial_anchors_account":{"schema":{"account_domain":{"type":"TypeString","computed":true},"account_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_spring_cloud_app":{"schema":{"fqdn":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"is_public":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"persistent_disk":{"type":"TypeList","computed":true,"elem":{"schema":{"mount_path":{"type":"TypeString","computed":true},"size_in_gb":{"type":"TypeInt","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"service_name":{"type":"TypeString","required":true},"tls_enabled":{"type":"TypeBool","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_spring_cloud_service":{"schema":{"config_server_git_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"repository":{"type":"TypeList","computed":true,"elem":{"schema":{"http_basic_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"password":{"type":"TypeString","computed":true},"username":{"type":"TypeString","computed":true}}}},"label":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"pattern":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"search_paths":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ssh_auth":{"type":"TypeList","computed":true,"elem":{"schema":{"host_key":{"type":"TypeString","computed":true},"host_key_algorithm":{"type":"TypeString","computed":true},"private_key":{"type":"TypeString","computed":true},"strict_host_key_checking_enabled":{"type":"TypeBool","computed":true}}}},"uri":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"required_network_traffic_rules":{"type":"TypeList","computed":true,"elem":{"schema":{"direction":{"type":"TypeString","computed":true},"fqdns":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_database":{"schema":{"collation":{"type":"TypeString","computed":true},"default_secondary_location":{"type":"TypeString","computed":true},"edition":{"type":"TypeString","computed":true},"elastic_pool_name":{"type":"TypeString","computed":true},"failover_group_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"read_scale":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"server_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_sql_managed_instance":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"collation":{"type":"TypeString","computed":true},"dns_zone_partner_id":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"license_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"proxy_override":{"type":"TypeString","computed":true},"public_data_endpoint_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"storage_account_type":{"type":"TypeString","computed":true},"storage_size_in_gb":{"type":"TypeInt","computed":true},"subnet_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"timezone_id":{"type":"TypeString","computed":true},"vcores":{"type":"TypeInt","computed":true}},"timeouts":{"read":5}},"azurerm_sql_server":{"schema":{"administrator_login":{"type":"TypeString","computed":true},"fqdn":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_ssh_public_key":{"schema":{"name":{"type":"TypeString","required":true},"public_key":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account":{"schema":{"access_tier":{"type":"TypeString","computed":true},"account_kind":{"type":"TypeString","computed":true},"account_replication_type":{"type":"TypeString","computed":true},"account_tier":{"type":"TypeString","computed":true},"allow_nested_items_to_be_public":{"type":"TypeBool","computed":true},"azure_files_authentication":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_guid":{"type":"TypeString","computed":true},"domain_name":{"type":"TypeString","computed":true},"domain_sid":{"type":"TypeString","computed":true},"forest_name":{"type":"TypeString","computed":true},"netbios_domain_name":{"type":"TypeString","computed":true},"storage_sid":{"type":"TypeString","computed":true}}}},"directory_type":{"type":"TypeString","computed":true}}}},"custom_domain":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true}}}},"enable_https_traffic_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"infrastructure_encryption_enabled":{"type":"TypeBool","computed":true},"is_hns_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"min_tls_version":{"type":"TypeString","optional":true},"name":{"type":"TypeString","required":true},"nfsv3_enabled":{"type":"TypeBool","computed":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_blob_connection_string":{"type":"TypeString","computed":true},"primary_blob_endpoint":{"type":"TypeString","computed":true},"primary_blob_host":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"primary_dfs_endpoint":{"type":"TypeString","computed":true},"primary_dfs_host":{"type":"TypeString","computed":true},"primary_file_endpoint":{"type":"TypeString","computed":true},"primary_file_host":{"type":"TypeString","computed":true},"primary_location":{"type":"TypeString","computed":true},"primary_queue_endpoint":{"type":"TypeString","computed":true},"primary_queue_host":{"type":"TypeString","computed":true},"primary_table_endpoint":{"type":"TypeString","computed":true},"primary_table_host":{"type":"TypeString","computed":true},"primary_web_endpoint":{"type":"TypeString","computed":true},"primary_web_host":{"type":"TypeString","computed":true},"queue_encryption_key_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_blob_connection_string":{"type":"TypeString","computed":true},"secondary_blob_endpoint":{"type":"TypeString","computed":true},"secondary_blob_host":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"secondary_dfs_endpoint":{"type":"TypeString","computed":true},"secondary_dfs_host":{"type":"TypeString","computed":true},"secondary_file_endpoint":{"type":"TypeString","computed":true},"secondary_file_host":{"type":"TypeString","computed":true},"secondary_location":{"type":"TypeString","computed":true},"secondary_queue_endpoint":{"type":"TypeString","computed":true},"secondary_queue_host":{"type":"TypeString","computed":true},"secondary_table_endpoint":{"type":"TypeString","computed":true},"secondary_table_host":{"type":"TypeString","computed":true},"secondary_web_endpoint":{"type":"TypeString","computed":true},"secondary_web_host":{"type":"TypeString","computed":true},"table_encryption_key_type":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_account_blob_container_sas":{"schema":{"cache_control":{"type":"TypeString","optional":true},"connection_string":{"type":"TypeString","required":true},"container_name":{"type":"TypeString","required":true},"content_disposition":{"type":"TypeString","optional":true},"content_encoding":{"type":"TypeString","optional":true},"content_language":{"type":"TypeString","optional":true},"content_type":{"type":"TypeString","optional":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_address":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_account_sas":{"schema":{"connection_string":{"type":"TypeString","required":true},"expiry":{"type":"TypeString","required":true},"https_only":{"type":"TypeBool","optional":true,"default":true},"ip_addresses":{"type":"TypeString","optional":true},"permissions":{"type":"TypeList","required":true,"elem":{"schema":{"add":{"type":"TypeBool","required":true},"create":{"type":"TypeBool","required":true},"delete":{"type":"TypeBool","required":true},"filter":{"type":"TypeBool","required":true},"list":{"type":"TypeBool","required":true},"process":{"type":"TypeBool","required":true},"read":{"type":"TypeBool","required":true},"tag":{"type":"TypeBool","required":true},"update":{"type":"TypeBool","required":true},"write":{"type":"TypeBool","required":true}}},"maxItems":1},"resource_types":{"type":"TypeList","required":true,"elem":{"schema":{"container":{"type":"TypeBool","required":true},"object":{"type":"TypeBool","required":true},"service":{"type":"TypeBool","required":true}}},"maxItems":1},"sas":{"type":"TypeString","computed":true},"services":{"type":"TypeList","required":true,"elem":{"schema":{"blob":{"type":"TypeBool","required":true},"file":{"type":"TypeBool","required":true},"queue":{"type":"TypeBool","required":true},"table":{"type":"TypeBool","required":true}}},"maxItems":1},"signed_version":{"type":"TypeString","optional":true,"default":"2017-07-29"},"start":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_blob":{"schema":{"access_tier":{"type":"TypeString","computed":true},"content_md5":{"type":"TypeString","computed":true},"content_type":{"type":"TypeString","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"storage_container_name":{"type":"TypeString","required":true},"type":{"type":"TypeString","computed":true},"url":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_storage_container":{"schema":{"container_access_type":{"type":"TypeString","computed":true},"has_immutability_policy":{"type":"TypeBool","computed":true},"has_legal_hold":{"type":"TypeBool","computed":true},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_encryption_scope":{"schema":{"key_vault_key_id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"source":{"type":"TypeString","computed":true},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_management_policy":{"schema":{"rule":{"type":"TypeList","computed":true,"elem":{"schema":{"actions":{"type":"TypeList","computed":true,"elem":{"schema":{"base_blob":{"type":"TypeList","computed":true,"elem":{"schema":{"auto_tier_to_hot_from_cool_enabled":{"type":"TypeBool","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"delete_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_last_access_time_greater_than":{"type":"TypeInt","computed":true},"tier_to_cool_after_days_since_modification_greater_than":{"type":"TypeInt","computed":true}}}},"snapshot":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation_greater_than":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}},"version":{"type":"TypeList","computed":true,"elem":{"schema":{"change_tier_to_archive_after_days_since_creation":{"type":"TypeInt","computed":true},"change_tier_to_cool_after_days_since_creation":{"type":"TypeInt","computed":true},"delete_after_days_since_creation":{"type":"TypeInt","computed":true},"tier_to_archive_after_days_since_last_tier_change_greater_than":{"type":"TypeInt","computed":true}}}}}}},"enabled":{"type":"TypeBool","computed":true},"filters":{"type":"TypeList","computed":true,"elem":{"schema":{"blob_types":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"match_blob_index_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"operation":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"prefix_match":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"name":{"type":"TypeString","computed":true}}}},"storage_account_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_share":{"schema":{"acl":{"type":"TypeList","optional":true,"elem":{"schema":{"access_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"expiry":{"type":"TypeString","computed":true},"permissions":{"type":"TypeString","computed":true},"start":{"type":"TypeString","computed":true}}}},"id":{"type":"TypeString","computed":true}}}},"metadata":{"type":"TypeMap","optional":true,"computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"quota":{"type":"TypeInt","computed":true},"resource_manager_id":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_sync":{"schema":{"incoming_traffic_policy":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_storage_sync_group":{"schema":{"name":{"type":"TypeString","required":true},"storage_sync_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_storage_table_entity":{"schema":{"entity":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"partition_key":{"type":"TypeString","required":true},"row_key":{"type":"TypeString","required":true},"storage_account_name":{"type":"TypeString","required":true},"table_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_stream_analytics_job":{"schema":{"compatibility_level":{"type":"TypeString","computed":true},"data_locale":{"type":"TypeString","computed":true},"events_late_arrival_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_max_delay_in_seconds":{"type":"TypeInt","computed":true},"events_out_of_order_policy":{"type":"TypeString","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"job_id":{"type":"TypeString","computed":true},"last_output_time":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"output_error_policy":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"start_mode":{"type":"TypeString","computed":true},"start_time":{"type":"TypeString","computed":true},"streaming_units":{"type":"TypeInt","computed":true},"transformation_query":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subnet":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enforce_private_link_endpoint_network_policies":{"type":"TypeBool","computed":true},"enforce_private_link_service_network_policies":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"network_security_group_id":{"type":"TypeString","computed":true},"private_endpoint_network_policies_enabled":{"type":"TypeBool","computed":true},"private_link_service_network_policies_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"route_table_id":{"type":"TypeString","computed":true},"service_endpoints":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_network_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_subscription":{"schema":{"display_name":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","optional":true,"computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscription_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_subscriptions":{"schema":{"display_name_contains":{"type":"TypeString","optional":true},"display_name_prefix":{"type":"TypeString","optional":true},"subscriptions":{"type":"TypeList","computed":true,"elem":{"schema":{"display_name":{"type":"TypeString","computed":true},"id":{"type":"TypeString","computed":true},"location_placement_id":{"type":"TypeString","computed":true},"quota_id":{"type":"TypeString","computed":true},"spending_limit":{"type":"TypeString","computed":true},"state":{"type":"TypeString","computed":true},"subscription_id":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}}}}},"timeouts":{"read":5}},"azurerm_synapse_workspace":{"schema":{"connectivity_endpoints":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_template_spec_version":{"schema":{"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"template_body":{"type":"TypeString","computed":true},"version":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_tenant_template_deployment":{"schema":{"name":{"type":"TypeString","required":true},"output_content":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_geographical_location":{"schema":{"name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_traffic_manager_profile":{"schema":{"dns_config":{"type":"TypeList","computed":true,"elem":{"schema":{"relative_name":{"type":"TypeString","computed":true},"ttl":{"type":"TypeInt","computed":true}}}},"fqdn":{"type":"TypeString","computed":true},"monitor_config":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_header":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"value":{"type":"TypeString","computed":true}}}},"expected_status_code_ranges":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"interval_in_seconds":{"type":"TypeInt","computed":true},"path":{"type":"TypeString","computed":true},"port":{"type":"TypeInt","computed":true},"protocol":{"type":"TypeString","computed":true},"timeout_in_seconds":{"type":"TypeInt","computed":true},"tolerated_number_of_failures":{"type":"TypeInt","computed":true}}}},"name":{"type":"TypeString","required":true},"profile_status":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}},"traffic_routing_method":{"type":"TypeString","computed":true},"traffic_view_enabled":{"type":"TypeBool","optional":true}},"timeouts":{"read":5}},"azurerm_user_assigned_identity":{"schema":{"client_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"principal_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_desktop_host_pool":{"schema":{"custom_rdp_properties":{"type":"TypeString","computed":true},"description":{"type":"TypeString","computed":true},"friendly_name":{"type":"TypeString","computed":true},"load_balancer_type":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"maximum_sessions_allowed":{"type":"TypeInt","computed":true},"name":{"type":"TypeString","required":true},"personal_desktop_assignment_type":{"type":"TypeString","computed":true},"preferred_app_group_type":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"scheduled_agent_updates":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"day_of_week":{"type":"TypeString","computed":true},"hour_of_day":{"type":"TypeInt","computed":true}}}},"timezone":{"type":"TypeString","computed":true},"use_session_host_timezone":{"type":"TypeBool","computed":true}}}},"start_vm_on_connect":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"validate_environment":{"type":"TypeBool","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub":{"schema":{"address_prefix":{"type":"TypeString","computed":true},"default_route_table_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_router_asn":{"type":"TypeInt","computed":true},"virtual_router_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_wan_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_connection":{"schema":{"internet_security_enabled":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","required":true},"remote_virtual_network_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"routing":{"type":"TypeList","computed":true,"elem":{"schema":{"associated_route_table_id":{"type":"TypeString","computed":true},"propagated_route_table":{"type":"TypeList","computed":true,"elem":{"schema":{"labels":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"route_table_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"static_vnet_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"next_hop_ip_address":{"type":"TypeString","computed":true}}}}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_hub_route_table":{"schema":{"labels":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"route":{"type":"TypeList","computed":true,"elem":{"schema":{"destinations":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"destinations_type":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"next_hop":{"type":"TypeString","computed":true},"next_hop_type":{"type":"TypeString","computed":true}}}},"virtual_hub_id":{"type":"TypeString","computed":true},"virtual_hub_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_machine_scale_set":{"schema":{"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"instances":{"type":"TypeList","computed":true,"elem":{"schema":{"computer_name":{"type":"TypeString","computed":true},"instance_id":{"type":"TypeString","computed":true},"latest_model_applied":{"type":"TypeBool","computed":true},"name":{"type":"TypeString","computed":true},"power_state":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"public_ip_address":{"type":"TypeString","computed":true},"public_ip_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"virtual_machine_id":{"type":"TypeString","computed":true},"zone":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_interface":{"type":"TypeList","computed":true,"elem":{"schema":{"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"enable_accelerated_networking":{"type":"TypeBool","computed":true},"enable_ip_forwarding":{"type":"TypeBool","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"application_gateway_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"application_security_group_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_backend_address_pool_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"load_balancer_inbound_nat_rules_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"name":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true},"public_ip_address":{"type":"TypeList","computed":true,"elem":{"schema":{"domain_name_label":{"type":"TypeString","computed":true},"idle_timeout_in_minutes":{"type":"TypeInt","computed":true},"ip_tag":{"type":"TypeList","computed":true,"elem":{"schema":{"tag":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"public_ip_prefix_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"subnet_id":{"type":"TypeString","computed":true},"version":{"type":"TypeString","computed":true}}}},"name":{"type":"TypeString","computed":true},"network_security_group_id":{"type":"TypeString","computed":true},"primary":{"type":"TypeBool","computed":true}}}},"resource_group_name":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_virtual_network":{"schema":{"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"dns_servers":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"guid":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"subnets":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vnet_peerings_addresses":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway":{"schema":{"active_active":{"type":"TypeBool","computed":true},"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"peer_weight":{"type":"TypeInt","computed":true},"peering_address":{"type":"TypeString","computed":true}}}},"custom_route":{"type":"TypeList","computed":true,"elem":{"schema":{"address_prefixes":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"default_local_network_gateway_id":{"type":"TypeString","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"generation":{"type":"TypeString","computed":true},"ip_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"id":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"private_ip_address":{"type":"TypeString","computed":true},"private_ip_address_allocation":{"type":"TypeString","computed":true},"public_ip_address_id":{"type":"TypeString","computed":true},"subnet_id":{"type":"TypeString","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"private_ip_address_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"type":{"type":"TypeString","computed":true},"vpn_client_configuration":{"type":"TypeList","computed":true,"elem":{"schema":{"aad_audience":{"type":"TypeString","computed":true},"aad_issuer":{"type":"TypeString","computed":true},"aad_tenant":{"type":"TypeString","computed":true},"address_space":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"radius_server_address":{"type":"TypeString","computed":true},"radius_server_secret":{"type":"TypeString","computed":true},"revoked_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"thumbprint":{"type":"TypeString","computed":true}}}},"root_certificate":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","computed":true},"public_cert_data":{"type":"TypeString","computed":true}}}},"vpn_client_protocols":{"type":"TypeSet","computed":true,"elem":{"type":"TypeString"}}}}},"vpn_type":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_network_gateway_connection":{"schema":{"authorization_key":{"type":"TypeString","computed":true},"connection_protocol":{"type":"TypeString","computed":true},"dpd_timeout_seconds":{"type":"TypeInt","computed":true},"egress_bytes_transferred":{"type":"TypeInt","computed":true},"enable_bgp":{"type":"TypeBool","computed":true},"express_route_circuit_id":{"type":"TypeString","computed":true},"express_route_gateway_bypass":{"type":"TypeBool","computed":true},"ingress_bytes_transferred":{"type":"TypeInt","computed":true},"ipsec_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"dh_group":{"type":"TypeString","computed":true},"ike_encryption":{"type":"TypeString","computed":true},"ike_integrity":{"type":"TypeString","computed":true},"ipsec_encryption":{"type":"TypeString","computed":true},"ipsec_integrity":{"type":"TypeString","computed":true},"pfs_group":{"type":"TypeString","computed":true},"sa_datasize":{"type":"TypeInt","computed":true},"sa_lifetime":{"type":"TypeInt","computed":true}}}},"local_azure_ip_address_enabled":{"type":"TypeBool","computed":true},"local_network_gateway_id":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"peer_virtual_network_gateway_id":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"resource_guid":{"type":"TypeString","computed":true},"routing_weight":{"type":"TypeInt","computed":true},"shared_key":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"traffic_selector_policy":{"type":"TypeList","computed":true,"elem":{"schema":{"local_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"remote_address_cidrs":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"type":{"type":"TypeString","computed":true},"use_policy_based_traffic_selectors":{"type":"TypeBool","computed":true},"virtual_network_gateway_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_virtual_wan":{"schema":{"allow_branch_to_branch_traffic":{"type":"TypeBool","computed":true},"disable_vpn_encryption":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"office365_local_breakout_category":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"vpn_site_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_vmware_private_cloud":{"schema":{"circuit":{"type":"TypeList","computed":true,"elem":{"schema":{"express_route_id":{"type":"TypeString","computed":true},"express_route_private_peering_id":{"type":"TypeString","computed":true},"primary_subnet_cidr":{"type":"TypeString","computed":true},"secondary_subnet_cidr":{"type":"TypeString","computed":true}}}},"hcx_cloud_manager_endpoint":{"type":"TypeString","computed":true},"internet_connection_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"management_cluster":{"type":"TypeList","computed":true,"elem":{"schema":{"hosts":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"id":{"type":"TypeInt","computed":true},"size":{"type":"TypeInt","computed":true}}}},"management_subnet_cidr":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"network_subnet_cidr":{"type":"TypeString","computed":true},"nsxt_certificate_thumbprint":{"type":"TypeString","computed":true},"nsxt_manager_endpoint":{"type":"TypeString","computed":true},"provisioning_subnet_cidr":{"type":"TypeString","computed":true},"resource_group_name":{"type":"TypeString","required":true},"sku_name":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"vcenter_certificate_thumbprint":{"type":"TypeString","computed":true},"vcsa_endpoint":{"type":"TypeString","computed":true},"vmotion_subnet_cidr":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_vpn_gateway":{"schema":{"bgp_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"asn":{"type":"TypeInt","computed":true},"bgp_peering_address":{"type":"TypeString","computed":true},"instance_0_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"instance_1_bgp_peering_address":{"type":"TypeList","computed":true,"elem":{"schema":{"custom_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"default_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"ip_configuration_id":{"type":"TypeString","computed":true},"tunnel_ips":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"peer_weight":{"type":"TypeInt","computed":true}}}},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"scale_unit":{"type":"TypeInt","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_hub_id":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_application_firewall_policy":{"schema":{"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"resource_group_name":{"type":"TypeString","required":true},"tags":{"type":"TypeMap","optional":true,"elem":{"type":"TypeString"}}},"timeouts":{"read":5}},"azurerm_web_pubsub":{"schema":{"aad_auth_enabled":{"type":"TypeBool","computed":true},"capacity":{"type":"TypeInt","computed":true},"external_ip":{"type":"TypeString","computed":true},"hostname":{"type":"TypeString","computed":true},"local_auth_enabled":{"type":"TypeBool","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"primary_access_key":{"type":"TypeString","computed":true},"primary_connection_string":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"public_port":{"type":"TypeInt","computed":true},"resource_group_name":{"type":"TypeString","required":true},"secondary_access_key":{"type":"TypeString","computed":true},"secondary_connection_string":{"type":"TypeString","computed":true},"server_port":{"type":"TypeInt","computed":true},"sku":{"type":"TypeString","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tls_client_cert_enabled":{"type":"TypeBool","computed":true},"version":{"type":"TypeString","computed":true}},"timeouts":{"read":5}},"azurerm_web_pubsub_private_link_resource":{"schema":{"shared_private_link_resource_types":{"type":"TypeList","computed":true,"elem":{"schema":{"description":{"type":"TypeString","computed":true},"subresource_name":{"type":"TypeString","computed":true}}}},"web_pubsub_id":{"type":"TypeString","required":true}},"timeouts":{"read":5}},"azurerm_windows_function_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"builtin_logging_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"content_share_force_disabled":{"type":"TypeBool","computed":true},"custom_domain_verification_id":{"type":"TypeString","computed":true},"daily_memory_time_quota":{"type":"TypeInt","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"functions_extension_version":{"type":"TypeString","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"app_scale_limit":{"type":"TypeInt","computed":true},"app_service_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"disk_quota_mb":{"type":"TypeInt","computed":true},"retention_period_days":{"type":"TypeInt","computed":true}}}},"application_insights_connection_string":{"type":"TypeString","computed":true},"application_insights_key":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"dotnet_version":{"type":"TypeString","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"powershell_core_version":{"type":"TypeString","computed":true},"use_custom_runtime":{"type":"TypeBool","computed":true},"use_dotnet_isolated_runtime":{"type":"TypeBool","computed":true}}}},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"elastic_instance_minimum":{"type":"TypeInt","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"pre_warmed_instance_count":{"type":"TypeInt","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"runtime_scale_monitoring_enabled":{"type":"TypeBool","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account_access_key":{"type":"TypeString","computed":true},"storage_account_name":{"type":"TypeString","computed":true},"storage_key_vault_secret_id":{"type":"TypeString","description":"The Key Vault Secret ID, including version, that contains the Connection String used to connect to the storage account for this Function App.","computed":true},"storage_uses_managed_identity":{"type":"TypeBool","computed":true},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}},"azurerm_windows_web_app":{"schema":{"app_settings":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"auth_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"The list of Allowed audience values considered when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret for the Client ID.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true}}}},"additional_login_parameters":{"type":"TypeMap","description":"The map of Login Parameters sent to the OpenID Connect authorization endpoint when a user logs in.","computed":true,"elem":{"type":"TypeString"}},"allowed_external_redirect_urls":{"type":"TypeList","description":"Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Windows Web App.","computed":true,"elem":{"type":"TypeString"}},"default_provider":{"type":"TypeString","description":"The default authentication provider used when multiple providers are configured. Possible values include: `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount`, `Twitter`, `Github`.","computed":true},"enabled":{"type":"TypeBool","description":"Is the Authentication / Authorization feature enabled?","computed":true},"facebook":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret":{"type":"TypeString","description":"The App Secret of the Facebook app used for Facebook Login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"github":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret":{"type":"TypeString","description":"The Client Secret of the GitHub app used for GitHub Login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret":{"type":"TypeString","description":"The client secret associated with the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes that requested as part of Google Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"issuer":{"type":"TypeString","description":"The OpenID Connect Issuer URI that represents the entity which issues access tokens.","computed":true},"microsoft":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret":{"type":"TypeString","description":"The OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"oauth_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"runtime_version":{"type":"TypeString","description":"The RuntimeVersion of the Authentication / Authorization feature in use.","computed":true},"token_refresh_extension_hours":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Are platform-specific security tokens that are obtained during login flows durably stored?","computed":true},"twitter":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret":{"type":"TypeString","description":"The OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_client_action":{"type":"TypeString","description":"The action taken when an unauthenticated client attempts to access the app.","computed":true}}}},"auth_settings_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"active_directory_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_applications":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.","computed":true,"elem":{"type":"TypeString"}},"allowed_groups":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"allowed_identities":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The ID of the Client to use to authenticate with Azure Active Directory.","computed":true},"client_secret_certificate_thumbprint":{"type":"TypeString","description":"The thumbprint of the certificate used for signing purposes.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the client secret of the Client.","computed":true},"jwt_allowed_client_applications":{"type":"TypeList","description":"A list of Allowed Client Applications in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"jwt_allowed_groups":{"type":"TypeList","description":"A list of Allowed Groups in the JWT Claim.","computed":true,"elem":{"type":"TypeString"}},"login_parameters":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"tenant_auth_endpoint":{"type":"TypeString","description":"The Azure Tenant URI for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/v2.0/{tenant-guid}/`","computed":true},"www_authentication_disabled":{"type":"TypeBool","description":"Is the www-authenticate provider omitted from the request?","computed":true}}}},"apple_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Apple web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Apple Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of Apple Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"auth_enabled":{"type":"TypeBool","description":"Is the AuthV2 Settings be enabled.","computed":true},"azure_static_web_app_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with Azure Static Web App Authentication.","computed":true}}}},"config_file_path":{"type":"TypeString","description":"The path to the App Auth settings.","computed":true},"custom_oidc_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"authorisation_endpoint":{"type":"TypeString","description":"The endpoint to make the Authorisation Request.","computed":true},"certification_uri":{"type":"TypeString","description":"The endpoint that provides the keys necessary to validate the token.","computed":true},"client_credential_method":{"type":"TypeString","description":"The Client Credential Method used. Currently the only supported value is `ClientSecretPost`","computed":true},"client_id":{"type":"TypeString","description":"The ID of the Client used to authenticate with this Custom OIDC.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The App Setting name that contains the secret for this Custom OIDC Client.","computed":true},"issuer_endpoint":{"type":"TypeString","description":"The endpoint that issued the Token.","computed":true},"name":{"type":"TypeString","description":"The name of the Custom OIDC Authentication Provider.","computed":true},"name_claim_type":{"type":"TypeString","description":"The name of the claim that contains the users name.","computed":true},"openid_configuration_endpoint":{"type":"TypeString","description":"The endpoint that contains all the configuration endpoints for this Custom OIDC provider.","computed":true},"scopes":{"type":"TypeList","description":"The list of the scopes that should be requested while authenticating.","computed":true,"elem":{"type":"TypeString"}},"token_endpoint":{"type":"TypeString","description":"The endpoint used to request a Token.","computed":true}}}},"default_provider":{"type":"TypeString","description":"The Default Authentication Provider used when the `unauthenticated_action` is set to `RedirectToLoginPage`.","computed":true},"excluded_paths":{"type":"TypeList","description":"The paths which are excluded from the `unauthenticated_action` when it is set to `RedirectToLoginPage`.","computed":true,"elem":{"type":"TypeString"}},"facebook_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"app_id":{"type":"TypeString","description":"The App ID of the Facebook app used for login.","computed":true},"app_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `app_secret` value used for Facebook Login.","computed":true},"graph_api_version":{"type":"TypeString","description":"The version of the Facebook API to be used while logging in.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes to be requested as part of Facebook Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"forward_proxy_convention":{"type":"TypeString","description":"The convention used to determine the url of the request made.","computed":true},"forward_proxy_custom_host_header_name":{"type":"TypeString","description":"The name of the header containing the host of the request.","computed":true},"forward_proxy_custom_scheme_header_name":{"type":"TypeString","description":"The name of the header containing the scheme of the request.","computed":true},"github_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"client_id":{"type":"TypeString","description":"The ID of the GitHub app used for login.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for GitHub Login.","computed":true},"login_scopes":{"type":"TypeList","description":"Specifies a list of OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"google_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OpenID Connect Client ID for the Google web application.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the `client_secret` value used for Google Login.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of OAuth 2.0 scopes requested as part of Google Sign-In authentication. If not specified, \"openid\", \"profile\", and \"email\" are used as default scopes.","computed":true,"elem":{"type":"TypeString"}}}}},"http_route_api_prefix":{"type":"TypeString","description":"The prefix that precedes all the authentication and authorisation paths.","computed":true},"login":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_external_redirect_urls":{"type":"TypeList","description":"External URLs that can be redirected to as part of logging in or logging out of the app. This is an advanced setting typically only needed by Windows Store application backends. **Note:** URLs within the current domain are always implicitly allowed.","computed":true,"elem":{"type":"TypeString"}},"cookie_expiration_convention":{"type":"TypeString","computed":true},"cookie_expiration_time":{"type":"TypeString","description":"The time after the request is made when the session cookie will expire.","computed":true},"logout_endpoint":{"type":"TypeString","description":"The endpoint to which logout requests are made.","computed":true},"nonce_expiration_time":{"type":"TypeString","description":"The time after the request is made when the nonce will expire.","computed":true},"preserve_url_fragments_for_logins":{"type":"TypeBool","description":"Are the fragments from the request be preserved after the login request is made.","computed":true},"token_refresh_extension_time":{"type":"TypeFloat","description":"The number of hours after session token expiration that a session token can be used to call the token refresh API.","computed":true},"token_store_enabled":{"type":"TypeBool","description":"Is the Token Store configuration Enabled.","computed":true},"token_store_path":{"type":"TypeString","description":"The directory path in the App Filesystem in which the tokens are stored.","computed":true},"token_store_sas_setting_name":{"type":"TypeString","description":"The name of the app setting which contains the SAS URL of the blob storage containing the tokens.","computed":true},"validate_nonce":{"type":"TypeBool","description":"Is the nonce be validated while completing the login flow.","computed":true}}}},"microsoft_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_audiences":{"type":"TypeList","description":"Specifies a list of Allowed Audiences that will be requested as part of Microsoft Sign-In authentication.","computed":true,"elem":{"type":"TypeString"}},"client_id":{"type":"TypeString","description":"The OAuth 2.0 client ID that was created for the app used for authentication.","computed":true},"client_secret_setting_name":{"type":"TypeString","description":"The app setting name containing the OAuth 2.0 client secret that was created for the app used for authentication.","computed":true},"login_scopes":{"type":"TypeList","description":"The list of Login scopes that will be requested as part of Microsoft Account authentication.","computed":true,"elem":{"type":"TypeString"}}}}},"require_authentication":{"type":"TypeBool","description":"Is the authentication flow used for all requests.","computed":true},"require_https":{"type":"TypeBool","description":"Is HTTPS required on connections?","computed":true},"runtime_version":{"type":"TypeString","description":"The Runtime Version of the Authentication and Authorisation feature of this App.","computed":true},"twitter_v2":{"type":"TypeList","computed":true,"elem":{"schema":{"consumer_key":{"type":"TypeString","description":"The OAuth 1.0a consumer key of the Twitter application used for sign-in.","computed":true},"consumer_secret_setting_name":{"type":"TypeString","description":"The app setting name that contains the OAuth 1.0a consumer secret of the Twitter application used for sign-in.","computed":true}}}},"unauthenticated_action":{"type":"TypeString","computed":true}}}},"backup":{"type":"TypeList","computed":true,"elem":{"schema":{"enabled":{"type":"TypeBool","description":"Is this backup job enabled?","computed":true},"name":{"type":"TypeString","description":"The name of this Backup.","computed":true},"schedule":{"type":"TypeList","computed":true,"elem":{"schema":{"frequency_interval":{"type":"TypeInt","description":"How often the backup should is executed in multiples of the `frequency_unit`.","computed":true},"frequency_unit":{"type":"TypeString","description":"The unit of time for how often the backup takes place.","computed":true},"keep_at_least_one_backup":{"type":"TypeBool","description":"Does the service keep at least one backup, regardless of age of backup.","computed":true},"last_execution_time":{"type":"TypeString","description":"The time the backup was last attempted.","computed":true},"retention_period_days":{"type":"TypeInt","description":"After how many days are backups deleted.","computed":true},"start_time":{"type":"TypeString","description":"When the schedule should start working in RFC-3339 format.","computed":true}}}},"storage_account_url":{"type":"TypeString","description":"The SAS URL to the container.","computed":true}}}},"client_affinity_enabled":{"type":"TypeBool","computed":true},"client_certificate_enabled":{"type":"TypeBool","computed":true},"client_certificate_exclusion_paths":{"type":"TypeString","description":"Paths to exclude when using client certificates, separated by ;","computed":true},"client_certificate_mode":{"type":"TypeString","computed":true},"connection_string":{"type":"TypeSet","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The name of this Connection.","computed":true},"type":{"type":"TypeString","description":"The type of database.","computed":true},"value":{"type":"TypeString","description":"The connection string value.","computed":true}}}},"custom_domain_verification_id":{"type":"TypeString","computed":true},"default_hostname":{"type":"TypeString","computed":true},"enabled":{"type":"TypeBool","computed":true},"hosting_environment_id":{"type":"TypeString","computed":true},"https_only":{"type":"TypeBool","computed":true},"identity":{"type":"TypeList","computed":true,"elem":{"schema":{"identity_ids":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"principal_id":{"type":"TypeString","computed":true},"tenant_id":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"kind":{"type":"TypeString","computed":true},"location":{"type":"TypeString","computed":true},"logs":{"type":"TypeList","computed":true,"elem":{"schema":{"application_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"level":{"type":"TypeString","computed":true},"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system_level":{"type":"TypeString","computed":true}}}},"detailed_error_messages":{"type":"TypeBool","computed":true},"failed_request_tracing":{"type":"TypeBool","computed":true},"http_logs":{"type":"TypeList","computed":true,"elem":{"schema":{"azure_blob_storage":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"sas_url":{"type":"TypeString","computed":true}}}},"file_system":{"type":"TypeList","computed":true,"elem":{"schema":{"retention_in_days":{"type":"TypeInt","computed":true},"retention_in_mb":{"type":"TypeInt","computed":true}}}}}}}}}},"name":{"type":"TypeString","required":true},"outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"outbound_ip_addresses":{"type":"TypeString","computed":true},"possible_outbound_ip_address_list":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"possible_outbound_ip_addresses":{"type":"TypeString","computed":true},"public_network_access_enabled":{"type":"TypeBool","computed":true},"resource_group_name":{"type":"TypeString","required":true},"service_plan_id":{"type":"TypeString","computed":true},"site_config":{"type":"TypeList","computed":true,"elem":{"schema":{"always_on":{"type":"TypeBool","computed":true},"api_definition_url":{"type":"TypeString","computed":true},"api_management_api_id":{"type":"TypeString","computed":true},"app_command_line":{"type":"TypeString","computed":true},"application_stack":{"type":"TypeList","computed":true,"elem":{"schema":{"current_stack":{"type":"TypeString","computed":true},"docker_container_name":{"type":"TypeString","computed":true},"docker_container_registry":{"type":"TypeString","computed":true},"docker_container_tag":{"type":"TypeString","computed":true},"docker_image_name":{"type":"TypeString","computed":true},"docker_registry_password":{"type":"TypeString","computed":true},"docker_registry_url":{"type":"TypeString","computed":true},"docker_registry_username":{"type":"TypeString","computed":true},"dotnet_core_version":{"type":"TypeString","computed":true},"dotnet_version":{"type":"TypeString","computed":true},"java_container":{"type":"TypeString","computed":true},"java_container_version":{"type":"TypeString","computed":true},"java_embedded_server_enabled":{"type":"TypeBool","computed":true},"java_version":{"type":"TypeString","computed":true},"node_version":{"type":"TypeString","computed":true},"php_version":{"type":"TypeString","computed":true},"python":{"type":"TypeBool","computed":true},"python_version":{"type":"TypeString","computed":true},"tomcat_version":{"type":"TypeString","computed":true}}}},"auto_heal_enabled":{"type":"TypeBool","computed":true},"auto_heal_setting":{"type":"TypeList","computed":true,"elem":{"schema":{"action":{"type":"TypeList","computed":true,"elem":{"schema":{"action_type":{"type":"TypeString","computed":true},"custom_action":{"type":"TypeList","computed":true,"elem":{"schema":{"executable":{"type":"TypeString","computed":true},"parameters":{"type":"TypeString","computed":true}}}},"minimum_process_execution_time":{"type":"TypeString","computed":true}}}},"trigger":{"type":"TypeList","computed":true,"elem":{"schema":{"private_memory_kb":{"type":"TypeInt","computed":true},"requests":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true}}}},"slow_request":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"time_taken":{"type":"TypeString","computed":true}}}},"status_code":{"type":"TypeList","computed":true,"elem":{"schema":{"count":{"type":"TypeInt","computed":true},"interval":{"type":"TypeString","computed":true},"path":{"type":"TypeString","computed":true},"status_code_range":{"type":"TypeString","computed":true},"sub_status":{"type":"TypeInt","computed":true},"win32_status_code":{"type":"TypeInt","computed":true}}}}}}}}}},"container_registry_managed_identity_client_id":{"type":"TypeString","computed":true},"container_registry_use_managed_identity":{"type":"TypeBool","computed":true},"cors":{"type":"TypeList","computed":true,"elem":{"schema":{"allowed_origins":{"type":"TypeList","description":"The list of origins that are allowed to make cross-origin calls.","computed":true,"elem":{"type":"TypeString"}},"support_credentials":{"type":"TypeBool","description":"Are credentials allowed in CORS requests?","computed":true}}}},"default_documents":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"detailed_error_logging_enabled":{"type":"TypeBool","computed":true},"ftps_state":{"type":"TypeString","computed":true},"health_check_eviction_time_in_min":{"type":"TypeInt","computed":true},"health_check_path":{"type":"TypeString","computed":true},"http2_enabled":{"type":"TypeBool","computed":true},"ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"load_balancing_mode":{"type":"TypeString","computed":true},"local_mysql_enabled":{"type":"TypeBool","computed":true},"managed_pipeline_mode":{"type":"TypeString","computed":true},"minimum_tls_version":{"type":"TypeString","computed":true},"remote_debugging_enabled":{"type":"TypeBool","computed":true},"remote_debugging_version":{"type":"TypeString","computed":true},"scm_ip_restriction":{"type":"TypeList","optional":true,"computed":true,"elem":{"schema":{"action":{"type":"TypeString","description":"The action to take.","computed":true},"headers":{"type":"TypeList","computed":true,"elem":{"schema":{"x_azure_fdid":{"type":"TypeList","description":"The list of Azure Front Door IDs.","computed":true,"elem":{"type":"TypeString"}},"x_fd_health_probe":{"type":"TypeList","description":"Specifies if a Front Door Health Probe is expected.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_for":{"type":"TypeList","description":"The list of addresses for which matching is applied.","computed":true,"elem":{"type":"TypeString"}},"x_forwarded_host":{"type":"TypeList","description":"The list of Hosts for which matching will be applied.","computed":true,"elem":{"type":"TypeString"}}}}},"ip_address":{"type":"TypeString","description":"The CIDR notation of the IP or IP Range to match.","computed":true},"name":{"type":"TypeString","description":"The name used for this `ip_restriction`.","computed":true},"priority":{"type":"TypeInt","description":"The priority value of this `ip_restriction`.","computed":true},"service_tag":{"type":"TypeString","description":"The Service Tag used for this IP Restriction.","computed":true},"virtual_network_subnet_id":{"type":"TypeString","description":"The Virtual Network Subnet ID used for this IP Restriction.","computed":true}}}},"scm_minimum_tls_version":{"type":"TypeString","computed":true},"scm_type":{"type":"TypeString","computed":true},"scm_use_main_ip_restriction":{"type":"TypeBool","computed":true},"use_32_bit_worker":{"type":"TypeBool","computed":true},"virtual_application":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"preload":{"type":"TypeBool","computed":true},"virtual_directory":{"type":"TypeList","computed":true,"elem":{"schema":{"physical_path":{"type":"TypeString","computed":true},"virtual_path":{"type":"TypeString","computed":true}}}},"virtual_path":{"type":"TypeString","computed":true}}}},"vnet_route_all_enabled":{"type":"TypeBool","computed":true},"websockets_enabled":{"type":"TypeBool","computed":true},"windows_fx_version":{"type":"TypeString","computed":true},"worker_count":{"type":"TypeInt","computed":true}}}},"site_credential":{"type":"TypeList","computed":true,"elem":{"schema":{"name":{"type":"TypeString","description":"The Site Credentials Username used for publishing.","computed":true},"password":{"type":"TypeString","description":"The Site Credentials Password used for publishing.","computed":true}}}},"sticky_settings":{"type":"TypeList","computed":true,"elem":{"schema":{"app_setting_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}},"connection_string_names":{"type":"TypeList","computed":true,"elem":{"type":"TypeString"}}}}},"storage_account":{"type":"TypeList","computed":true,"elem":{"schema":{"access_key":{"type":"TypeString","computed":true},"account_name":{"type":"TypeString","computed":true},"mount_path":{"type":"TypeString","computed":true},"name":{"type":"TypeString","computed":true},"share_name":{"type":"TypeString","computed":true},"type":{"type":"TypeString","computed":true}}}},"tags":{"type":"TypeMap","computed":true,"elem":{"type":"TypeString"}},"virtual_network_subnet_id":{"type":"TypeString","computed":true}},"timeouts":{"read":10}}}}} diff --git a/CHANGELOG.md b/CHANGELOG.md index 92b657e6bae6..c65bc0676e30 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,35 +1,35 @@ -## 3.75.0 (Unreleased) +## 3.75.0 (September 28, 2023) FEATURES: -* New Resource: `azurerm_application_load_balancer` [GH-22517] -* New Resource: `azurerm_resource_management_private_link` [GH-23098] +* New Resource: `azurerm_application_load_balancer` ([#22517](https://github.com/hashicorp/terraform-provider-azurerm/issues/22517)) +* New Resource: `azurerm_resource_management_private_link` ([#23098](https://github.com/hashicorp/terraform-provider-azurerm/issues/23098)) ENHANCEMENTS: -* dependencies: `firewall` migrated to `hashicorp/go-azure-sdk` [GH-22863] -* `azurerm_bot_service_azure_bot` - add support for the `icon_url` property [GH-23114] -* `azurerm_cognitive_deployment` - `capacity` property is now updateable [GH-23251] -* `azurerm_container_group` - added support for `key_vault_user_identity_id` [GH-23332] -* `azurerm_data_factory` - added support for the `publish_enabled` property [GH-2334] -* `azurerm_firewall_policy_rule_collection_group` - add support for the `description` property [GH-23354] -* `azurerm_kubernetes_cluster` - `network_profile.network_policy` can be migrated to `cilium` [GH-23342] -* `azurerm_log_analytics_workspace` - add support for the `data_collection_rule_id` property [GH-23347] -* `azurerm_mysql_flexible_server` - add support for the `io_scaling_enabled` property [GH-23329] +* dependencies: `firewall` migrated to `hashicorp/go-azure-sdk` ([#22863](https://github.com/hashicorp/terraform-provider-azurerm/issues/22863)) +* `azurerm_bot_service_azure_bot` - add support for the `icon_url` property ([#23114](https://github.com/hashicorp/terraform-provider-azurerm/issues/23114)) +* `azurerm_cognitive_deployment` - `capacity` property is now updateable ([#23251](https://github.com/hashicorp/terraform-provider-azurerm/issues/23251)) +* `azurerm_container_group` - added support for `key_vault_user_identity_id` ([#23332](https://github.com/hashicorp/terraform-provider-azurerm/issues/23332)) +* `azurerm_data_factory` - added support for the `publish_enabled` property ([#2334](https://github.com/hashicorp/terraform-provider-azurerm/issues/2334)) +* `azurerm_firewall_policy_rule_collection_group` - add support for the `description` property ([#23354](https://github.com/hashicorp/terraform-provider-azurerm/issues/23354)) +* `azurerm_kubernetes_cluster` - `network_profile.network_policy` can be migrated to `cilium` ([#23342](https://github.com/hashicorp/terraform-provider-azurerm/issues/23342)) +* `azurerm_log_analytics_workspace` - add support for the `data_collection_rule_id` property ([#23347](https://github.com/hashicorp/terraform-provider-azurerm/issues/23347)) +* `azurerm_mysql_flexible_server` - add support for the `io_scaling_enabled` property ([#23329](https://github.com/hashicorp/terraform-provider-azurerm/issues/23329)) BUG FIXES: -* `azurerm_api_management_api` - fix importing `openapi` format content file issue [GH-23348] -* `azurerm_cdn_frontdoor_rule` - allow a `cache_duration` of `00:00:00` [GH-23384] -* `azurerm_cosmosdb_cassandra_datacenter` - `sku_name` is now updatable [GH-23419] -* `azurerm_key_vault_certificate` - fix a bug that prevented soft-deleted certificates from being recovered [GH-23204] -* `azurerm_log_analytics_solution` - fix create and update lifecycle of resource by splitting methods [GH-23333] -* `azurerm_management_group_subscription_association` - mark resource as gone correctly if not found when retrieving [GH-23335] -* `azurerm_management_lock` - add polling after create and delete to check for RP propagation [GH-23345] -* `azurerm_monitor_diagnostic_setting` - added validation to ensure at least one of `category` or `category_group` is supplied [GH-23308] -* `azurerm_palo_alto_local_rulestack_prefix_list` - fix rulestack not being committed on delete [GH-23362] -* `azurerm_palo_alto_local_rulestack_fqdn_list` - fix rulestack not being committed on delete [GH-23362] -* `security_center_subscription_pricing_resource` - disabled extensions logic now works as expected [GH-22997] +* `azurerm_api_management_api` - fix importing `openapi` format content file issue ([#23348](https://github.com/hashicorp/terraform-provider-azurerm/issues/23348)) +* `azurerm_cdn_frontdoor_rule` - allow a `cache_duration` of `00:00:00` ([#23384](https://github.com/hashicorp/terraform-provider-azurerm/issues/23384)) +* `azurerm_cosmosdb_cassandra_datacenter` - `sku_name` is now updatable ([#23419](https://github.com/hashicorp/terraform-provider-azurerm/issues/23419)) +* `azurerm_key_vault_certificate` - fix a bug that prevented soft-deleted certificates from being recovered ([#23204](https://github.com/hashicorp/terraform-provider-azurerm/issues/23204)) +* `azurerm_log_analytics_solution` - fix create and update lifecycle of resource by splitting methods ([#23333](https://github.com/hashicorp/terraform-provider-azurerm/issues/23333)) +* `azurerm_management_group_subscription_association` - mark resource as gone correctly if not found when retrieving ([#23335](https://github.com/hashicorp/terraform-provider-azurerm/issues/23335)) +* `azurerm_management_lock` - add polling after create and delete to check for RP propagation ([#23345](https://github.com/hashicorp/terraform-provider-azurerm/issues/23345)) +* `azurerm_monitor_diagnostic_setting` - added validation to ensure at least one of `category` or `category_group` is supplied ([#23308](https://github.com/hashicorp/terraform-provider-azurerm/issues/23308)) +* `azurerm_palo_alto_local_rulestack_prefix_list` - fix rulestack not being committed on delete ([#23362](https://github.com/hashicorp/terraform-provider-azurerm/issues/23362)) +* `azurerm_palo_alto_local_rulestack_fqdn_list` - fix rulestack not being committed on delete ([#23362](https://github.com/hashicorp/terraform-provider-azurerm/issues/23362)) +* `security_center_subscription_pricing_resource` - disabled extensions logic now works as expected ([#22997](https://github.com/hashicorp/terraform-provider-azurerm/issues/22997)) ## 3.74.0 (September 21, 2023) From 5ead1b7c44f7416580c98cf02ac6bfe59f3e67c2 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Fri, 29 Sep 2023 12:39:49 -0700 Subject: [PATCH 303/336] `azurerm_static_site` - Add support for `app_settings` (#23421) --- internal/services/web/static_site_resource.go | 38 +++++++++ .../services/web/static_site_resource_test.go | 78 +++++++++++++++++++ website/docs/r/static_site.html.markdown | 2 + 3 files changed, 118 insertions(+) diff --git a/internal/services/web/static_site_resource.go b/internal/services/web/static_site_resource.go index 0d048422cf50..752fe3195337 100644 --- a/internal/services/web/static_site_resource.go +++ b/internal/services/web/static_site_resource.go @@ -74,6 +74,14 @@ func resourceStaticSite() *pluginsdk.Resource { }, false), }, + "app_settings": { + Type: pluginsdk.TypeMap, + Optional: true, + Elem: &pluginsdk.Schema{ + Type: pluginsdk.TypeString, + }, + }, + "default_host_name": { Type: pluginsdk.TypeString, Computed: true, @@ -150,6 +158,16 @@ func resourceStaticSiteCreateOrUpdate(d *pluginsdk.ResourceData, meta interface{ d.SetId(id.ID()) + if d.HasChange("app_settings") { + settings := web.StringDictionary{ + Properties: expandStaticSiteAppSettings(d), + } + + if _, err := client.CreateOrUpdateStaticSiteAppSettings(ctx, id.ResourceGroup, id.Name, settings); err != nil { + return fmt.Errorf("updating Application Settings for %s: %+v", id, err) + } + } + return resourceStaticSiteRead(d, meta) } @@ -216,6 +234,15 @@ func resourceStaticSiteRead(d *pluginsdk.ResourceData, meta interface{}) error { } d.Set("api_key", apiKey) + appSettingsResp, err := client.ListStaticSiteAppSettings(ctx, id.ResourceGroup, id.Name) + if err != nil { + return fmt.Errorf("making Read request for app settings on %s: %+v", id, err) + } + + if err := d.Set("app_settings", appSettingsResp.Properties); err != nil { + return fmt.Errorf("setting `app_settings`: %s", err) + } + return tags.FlattenAndSet(d, resp.Tags) } @@ -290,3 +317,14 @@ func flattenStaticSiteIdentity(input *web.ManagedServiceIdentity) (*[]interface{ return identity.FlattenSystemAndUserAssignedMap(transform) } + +func expandStaticSiteAppSettings(d *pluginsdk.ResourceData) map[string]*string { + input := d.Get("app_settings").(map[string]interface{}) + output := make(map[string]*string, len(input)) + + for k, v := range input { + output[k] = utils.String(v.(string)) + } + + return output +} diff --git a/internal/services/web/static_site_resource_test.go b/internal/services/web/static_site_resource_test.go index 11cd41fbf1ae..19b92aa4571f 100644 --- a/internal/services/web/static_site_resource_test.go +++ b/internal/services/web/static_site_resource_test.go @@ -169,6 +169,37 @@ func TestAccAzureStaticSite_requiresImport(t *testing.T) { }) } +func TestAccStaticSite_appSettings(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_static_site", "test") + r := StaticSiteResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.appSettings(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("app_settings.foo").HasValue("bar"), + ), + }, + data.ImportStep(), + { + Config: r.appSettingsUpdate(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("app_settings.foo").HasValue("bar"), + ), + }, + data.ImportStep(), + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func (r StaticSiteResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := parse.StaticSiteID(state.ID) if err != nil { @@ -338,3 +369,50 @@ resource "azurerm_static_site" "import" { } `, template) } + +func (r StaticSiteResource) appSettings(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_static_site" "test" { + name = "acctestSS-%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + + app_settings = { + "foo" = "bar" + } +} +`, data.RandomInteger, data.Locations.Secondary, data.RandomInteger) +} + +func (r StaticSiteResource) appSettingsUpdate(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_static_site" "test" { + name = "acctestSS-%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + + app_settings = { + "foo" = "bar" + "baz" = "foo" + } +} +`, data.RandomInteger, data.Locations.Secondary, data.RandomInteger) +} diff --git a/website/docs/r/static_site.html.markdown b/website/docs/r/static_site.html.markdown index d792d1386b6d..1f3e6bf6f981 100644 --- a/website/docs/r/static_site.html.markdown +++ b/website/docs/r/static_site.html.markdown @@ -38,6 +38,8 @@ The following arguments are supported: * `identity` - (Optional) An `identity` block as defined below. +* `app_settings` - (Optional) A key-value pair of App Settings. + * `tags` - (Optional) A mapping of tags to assign to the resource. --- From 1b4888c0d53ee6e4f8e0d826d4eab42a119058e5 Mon Sep 17 00:00:00 2001 From: Matthew Frahry Date: Fri, 29 Sep 2023 12:40:36 -0700 Subject: [PATCH 304/336] Update CHANGELOG.md for #23421 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c65bc0676e30..8555a664bac4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 3.76.0 (Unreleased) + +ENHANCEMENTS: + +* `azurerm_static_site` - Add support for `app_settings` [GH-23421] + ## 3.75.0 (September 28, 2023) FEATURES: From a1537c3335e71245b105dcc7ce58e1edd3c1e7ab Mon Sep 17 00:00:00 2001 From: Victor Szabo <54809586+vszabo2@users.noreply.github.com> Date: Mon, 2 Oct 2023 04:15:24 -0400 Subject: [PATCH 305/336] Update frontdoor.html.markdown (#23429) https://github.com/hashicorp/terraform-provider-azurerm/blob/da7468226f353d7933e09686604309899ff3a528/internal/services/frontdoor/frontdoor_resource.go#L1989-L1990 --- website/docs/r/frontdoor.html.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/docs/r/frontdoor.html.markdown b/website/docs/r/frontdoor.html.markdown index 6086a640790d..6b06ca628f3f 100644 --- a/website/docs/r/frontdoor.html.markdown +++ b/website/docs/r/frontdoor.html.markdown @@ -171,9 +171,9 @@ The `backend_pool_health_probe` block supports the following: * `protocol` - (Optional) Protocol scheme to use for the Health Probe. Possible values are `Http` and `Https`. Defaults to `Http`. -* `probe_method` - (Optional) Specifies HTTP method the health probe uses when querying the backend pool instances. Possible values include: `Get` and `Head`. Defaults to `GET`. +* `probe_method` - (Optional) Specifies HTTP method the health probe uses when querying the backend pool instances. Possible values include: `GET` and `HEAD`. Defaults to `GET`. --> **NOTE:** Use the `Head` method if you do not need to check the response body of your health probe. +-> **NOTE:** Use the `HEAD` method if you do not need to check the response body of your health probe. * `interval_in_seconds` - (Optional) The number of seconds between each Health Probe. Defaults to `120`. From 0963d65cb6071b981ec1639b7af6c47775a5dbf9 Mon Sep 17 00:00:00 2001 From: Heng Lu <79895375+ms-henglu@users.noreply.github.com> Date: Mon, 2 Oct 2023 17:43:24 +0800 Subject: [PATCH 306/336] new resource: `azurerm_spring_cloud_application_insights_application_performance_monitoring` (#23107) --- .github/labeler-issue-triage.yml | 2 +- internal/clients/client.go | 4 +- .../services/springcloud/client/client.go | 19 +- internal/services/springcloud/registration.go | 1 + ...ication_performance_monitoring_resource.go | 335 +++ ...on_performance_monitoring_resource_test.go | 177 ++ .../2023-07-01-preview/appplatform/README.md | 2669 +++++++++++++++++ .../2023-07-01-preview/appplatform/client.go | 26 + .../appplatform/constants.go | 2465 +++++++++++++++ .../appplatform/id_agentpool.go | 153 + .../appplatform/id_apiportal.go | 140 + .../appplatform/id_apiportaldomain.go | 153 + .../2023-07-01-preview/appplatform/id_apm.go | 140 + .../2023-07-01-preview/appplatform/id_app.go | 140 + .../appplatform/id_applicationaccelerator.go | 140 + .../appplatform/id_applicationliveview.go | 140 + .../appplatform/id_binding.go | 153 + .../appplatform/id_build.go | 153 + .../appplatform/id_builder.go | 153 + .../appplatform/id_buildpackbinding.go | 166 + .../appplatform/id_buildservice.go | 140 + .../appplatform/id_certificate.go | 140 + .../appplatform/id_configurationservice.go | 140 + .../appplatform/id_containerregistry.go | 140 + .../appplatform/id_customizedaccelerator.go | 153 + .../appplatform/id_deployment.go | 153 + .../appplatform/id_devtoolportal.go | 140 + .../appplatform/id_domain.go | 153 + .../appplatform/id_gateway.go | 140 + .../appplatform/id_gatewaydomain.go | 153 + .../appplatform/id_location.go | 114 + .../appplatform/id_predefinedaccelerator.go | 153 + .../appplatform/id_result.go | 166 + .../appplatform/id_routeconfig.go | 153 + .../appplatform/id_serviceregistry.go | 140 + .../appplatform/id_spring.go | 127 + .../appplatform/id_storage.go | 140 + .../appplatform/id_supportedbuildpack.go | 153 + .../appplatform/id_supportedstack.go | 153 + ...od_apiportalcustomdomainscreateorupdate.go | 74 + .../method_apiportalcustomdomainsdelete.go | 71 + .../method_apiportalcustomdomainsget.go | 51 + .../method_apiportalcustomdomainslist.go | 89 + .../method_apiportalscreateorupdate.go | 74 + .../appplatform/method_apiportalsdelete.go | 71 + .../appplatform/method_apiportalsget.go | 51 + .../appplatform/method_apiportalslist.go | 89 + .../method_apiportalsvalidatedomain.go | 56 + .../appplatform/method_apmscreateorupdate.go | 74 + .../appplatform/method_apmsdelete.go | 71 + .../appplatform/method_apmsget.go | 51 + .../appplatform/method_apmslist.go | 89 + .../appplatform/method_apmslistsecretkeys.go | 52 + ...d_applicationacceleratorscreateorupdate.go | 74 + .../method_applicationacceleratorsdelete.go | 71 + .../method_applicationacceleratorsget.go | 51 + .../method_applicationacceleratorslist.go | 89 + ...thod_applicationliveviewscreateorupdate.go | 74 + .../method_applicationliveviewsdelete.go | 71 + .../method_applicationliveviewsget.go | 51 + .../method_applicationliveviewslist.go | 89 + .../appplatform/method_appscreateorupdate.go | 75 + .../appplatform/method_appsdelete.go | 71 + .../appplatform/method_appsget.go | 80 + .../method_appsgetresourceuploadurl.go | 52 + .../appplatform/method_appslist.go | 89 + .../method_appssetactivedeployments.go | 74 + .../appplatform/method_appsupdate.go | 74 + .../appplatform/method_appsvalidatedomain.go | 56 + .../method_bindingscreateorupdate.go | 75 + .../appplatform/method_bindingsdelete.go | 71 + .../appplatform/method_bindingsget.go | 51 + .../appplatform/method_bindingslist.go | 89 + .../appplatform/method_bindingsupdate.go | 74 + .../method_buildpackbindingcreateorupdate.go | 74 + .../method_buildpackbindingdelete.go | 71 + .../appplatform/method_buildpackbindingget.go | 51 + .../method_buildpackbindinglist.go | 89 + .../method_buildpackbindinglistforcluster.go | 89 + .../method_buildserviceagentpoolget.go | 51 + .../method_buildserviceagentpoollist.go | 89 + .../method_buildserviceagentpoolupdateput.go | 74 + ...ethod_buildservicebuildercreateorupdate.go | 74 + .../method_buildservicebuilderdelete.go | 71 + .../method_buildservicebuilderget.go | 51 + .../method_buildservicebuilderlist.go | 89 + ...thod_buildservicebuilderlistdeployments.go | 52 + .../method_buildservicecreateorupdate.go | 74 + .../method_buildservicecreateorupdatebuild.go | 56 + .../method_buildservicedeletebuild.go | 71 + .../method_buildservicegetbuild.go | 51 + .../method_buildservicegetbuildresult.go | 51 + .../method_buildservicegetbuildresultlog.go | 52 + .../method_buildservicegetbuildservice.go | 51 + ...method_buildservicegetresourceuploadurl.go | 52 + ...ethod_buildservicegetsupportedbuildpack.go | 51 + .../method_buildservicegetsupportedstack.go | 51 + .../method_buildservicelistbuildresults.go | 89 + .../method_buildservicelistbuilds.go | 89 + .../method_buildservicelistbuildservices.go | 89 + ...hod_buildservicelistsupportedbuildpacks.go | 52 + .../method_buildservicelistsupportedstacks.go | 52 + .../method_certificatescreateorupdate.go | 75 + .../appplatform/method_certificatesdelete.go | 71 + .../appplatform/method_certificatesget.go | 51 + .../appplatform/method_certificateslist.go | 89 + .../appplatform/method_configserversget.go | 52 + .../method_configserversupdatepatch.go | 74 + .../method_configserversupdateput.go | 74 + .../method_configserversvalidate.go | 74 + ...hod_configurationservicescreateorupdate.go | 74 + .../method_configurationservicesdelete.go | 71 + .../method_configurationservicesget.go | 51 + .../method_configurationserviceslist.go | 89 + .../method_configurationservicesvalidate.go | 74 + ...d_configurationservicesvalidateresource.go | 74 + ...ethod_containerregistriescreateorupdate.go | 74 + .../method_containerregistriesdelete.go | 71 + .../method_containerregistriesget.go | 51 + .../method_containerregistrieslist.go | 89 + .../method_containerregistriesvalidate.go | 74 + .../method_customdomainscreateorupdate.go | 75 + .../appplatform/method_customdomainsdelete.go | 71 + .../appplatform/method_customdomainsget.go | 51 + .../appplatform/method_customdomainslist.go | 89 + .../appplatform/method_customdomainsupdate.go | 74 + ...od_customizedacceleratorscreateorupdate.go | 74 + .../method_customizedacceleratorsdelete.go | 71 + .../method_customizedacceleratorsget.go | 51 + .../method_customizedacceleratorslist.go | 89 + .../method_customizedacceleratorsvalidate.go | 57 + .../method_deploymentscreateorupdate.go | 75 + .../appplatform/method_deploymentsdelete.go | 71 + ...ethod_deploymentsdisableremotedebugging.go | 70 + ...method_deploymentsenableremotedebugging.go | 74 + .../method_deploymentsgenerateheapdump.go | 74 + .../method_deploymentsgeneratethreaddump.go | 74 + .../appplatform/method_deploymentsget.go | 51 + .../method_deploymentsgetlogfileurl.go | 53 + ...hod_deploymentsgetremotedebuggingconfig.go | 52 + .../appplatform/method_deploymentslist.go | 117 + .../method_deploymentslistforcluster.go | 117 + .../appplatform/method_deploymentsrestart.go | 70 + .../appplatform/method_deploymentsstart.go | 70 + .../appplatform/method_deploymentsstartjfr.go | 74 + .../appplatform/method_deploymentsstop.go | 70 + .../appplatform/method_deploymentsupdate.go | 74 + .../method_devtoolportalscreateorupdate.go | 74 + .../method_devtoolportalsdelete.go | 71 + .../appplatform/method_devtoolportalsget.go | 51 + .../appplatform/method_devtoolportalslist.go | 89 + .../appplatform/method_eurekaserversget.go | 52 + .../appplatform/method_eurekaserverslist.go | 52 + .../method_eurekaserversupdatepatch.go | 74 + .../method_eurekaserversupdateput.go | 74 + ...thod_gatewaycustomdomainscreateorupdate.go | 74 + .../method_gatewaycustomdomainsdelete.go | 71 + .../method_gatewaycustomdomainsget.go | 51 + .../method_gatewaycustomdomainslist.go | 89 + ...ethod_gatewayrouteconfigscreateorupdate.go | 74 + .../method_gatewayrouteconfigsdelete.go | 71 + .../method_gatewayrouteconfigsget.go | 51 + .../method_gatewayrouteconfigslist.go | 89 + .../method_gatewayscreateorupdate.go | 74 + .../appplatform/method_gatewaysdelete.go | 71 + .../appplatform/method_gatewaysget.go | 51 + .../appplatform/method_gatewayslist.go | 89 + .../method_gatewayslistenvsecrets.go | 52 + .../appplatform/method_gatewaysrestart.go | 70 + .../method_gatewaysupdatecapacity.go | 74 + .../method_gatewaysvalidatedomain.go | 56 + .../method_monitoringsettingsget.go | 52 + .../method_monitoringsettingsupdatepatch.go | 74 + .../method_monitoringsettingsupdateput.go | 74 + .../method_predefinedacceleratorsdisable.go | 70 + .../method_predefinedacceleratorsenable.go | 70 + .../method_predefinedacceleratorsget.go | 51 + .../method_predefinedacceleratorslist.go | 89 + ...thod_runtimeversionslistruntimeversions.go | 51 + .../method_serviceregistriescreateorupdate.go | 70 + .../method_serviceregistriesdelete.go | 71 + .../method_serviceregistriesget.go | 51 + .../method_serviceregistrieslist.go | 89 + .../method_serviceschecknameavailability.go | 56 + .../method_servicescreateorupdate.go | 75 + .../appplatform/method_servicesdelete.go | 71 + .../method_servicesdisableapmglobally.go | 74 + .../method_servicesdisabletestendpoint.go | 47 + .../method_servicesenableapmglobally.go | 74 + .../method_servicesenabletestendpoint.go | 52 + .../method_servicesflushvnetdnssetting.go | 70 + .../appplatform/method_servicesget.go | 51 + .../appplatform/method_serviceslist.go | 90 + .../method_serviceslistbysubscription.go | 90 + .../method_serviceslistgloballyenabledapms.go | 52 + .../method_serviceslistsupportedapmtypes.go | 89 + .../method_serviceslisttestkeys.go | 52 + .../method_servicesregeneratetestkey.go | 56 + .../appplatform/method_servicesstart.go | 69 + .../appplatform/method_servicesstop.go | 69 + .../appplatform/method_servicesupdate.go | 74 + .../appplatform/method_skuslist.go | 90 + .../method_storagescreateorupdate.go | 75 + .../appplatform/method_storagesdelete.go | 71 + .../appplatform/method_storagesget.go | 51 + .../appplatform/method_storageslist.go | 89 + .../model_acceleratorauthsetting.go | 69 + .../model_acceleratorbasicauthsetting.go | 43 + .../model_acceleratorgitrepository.go | 48 + .../model_acceleratorpublicsetting.go | 41 + .../model_acceleratorsshsetting.go | 43 + .../model_activedeploymentcollection.go | 8 + .../model_apiportalcustomdomainproperties.go | 8 + .../model_apiportalcustomdomainresource.go | 16 + .../appplatform/model_apiportalinstance.go | 9 + .../appplatform/model_apiportalproperties.go | 16 + .../appplatform/model_apiportalresource.go | 17 + .../model_apiportalresourcerequests.go | 9 + .../appplatform/model_apmproperties.go | 11 + .../appplatform/model_apmreference.go | 8 + .../appplatform/model_apmresource.go | 16 + .../appplatform/model_apmsecretkeys.go | 8 + .../model_applicationacceleratorcomponent.go | 10 + .../model_applicationacceleratorinstance.go | 9 + .../model_applicationacceleratorproperties.go | 9 + .../model_applicationacceleratorresource.go | 17 + ..._applicationacceleratorresourcerequests.go | 10 + .../model_applicationinsightsagentversions.go | 8 + .../model_applicationliveviewcomponent.go | 10 + .../model_applicationliveviewinstance.go | 9 + .../model_applicationliveviewproperties.go | 9 + .../model_applicationliveviewresource.go | 16 + ...del_applicationliveviewresourcerequests.go | 10 + .../appplatform/model_appresource.go | 19 + .../model_appresourceproperties.go | 22 + .../appplatform/model_appvnetaddons.go | 9 + .../model_availableruntimeversions.go | 8 + .../appplatform/model_azurefilevolume.go | 45 + .../appplatform/model_bindingresource.go | 16 + .../model_bindingresourceproperties.go | 15 + .../appplatform/model_build.go | 16 + .../appplatform/model_builderproperties.go | 10 + .../appplatform/model_builderresource.go | 16 + .../model_buildpackbindinglaunchproperties.go | 9 + .../model_buildpackbindingproperties.go | 10 + .../model_buildpackbindingresource.go | 16 + .../appplatform/model_buildpackproperties.go | 8 + .../model_buildpacksgroupproperties.go | 9 + .../appplatform/model_buildproperties.go | 16 + .../model_buildresourcerequests.go | 9 + .../appplatform/model_buildresult.go | 16 + .../appplatform/model_buildresultlog.go | 8 + .../model_buildresultproperties.go | 13 + .../model_buildresultusersourceinfo.go | 42 + .../appplatform/model_buildservice.go | 16 + .../model_buildserviceagentpoolproperties.go | 9 + .../model_buildserviceagentpoolresource.go | 16 + ...del_buildserviceagentpoolsizeproperties.go | 10 + .../model_buildserviceproperties.go | 11 + ..._buildservicepropertiesresourcerequests.go | 9 + .../appplatform/model_buildstageproperties.go | 11 + .../model_certificateproperties.go | 61 + .../appplatform/model_certificatereference.go | 8 + .../appplatform/model_certificateresource.go | 48 + .../model_clusterresourceproperties.go | 60 + .../model_configservergitproperty.go | 17 + .../model_configserverproperties.go | 11 + .../appplatform/model_configserverresource.go | 16 + .../appplatform/model_configserversettings.go | 8 + .../model_configserversettingserrorrecord.go | 10 + ...odel_configserversettingsvalidateresult.go | 9 + .../model_configurationservicegitproperty.go | 8 + ...urationservicegitpropertyvalidateresult.go | 9 + ...model_configurationservicegitrepository.go | 20 + .../model_configurationserviceinstance.go | 9 + .../model_configurationserviceproperties.go | 12 + .../model_configurationserviceresource.go | 16 + ...el_configurationserviceresourcerequests.go | 10 + .../model_configurationservicesettings.go | 8 + ...figurationservicesettingsvalidateresult.go | 8 + .../model_containerprobesettings.go | 8 + ...model_containerregistrybasiccredentials.go | 43 + .../model_containerregistrycredentials.go | 53 + .../model_containerregistryproperties.go | 40 + .../model_containerregistryresource.go | 16 + .../model_containerregistryvalidateresult.go | 9 + .../model_contentcertificateproperties.go | 49 + .../appplatform/model_customcontainer.go | 13 + .../model_customcontainerusersourceinfo.go | 42 + .../model_customdomainproperties.go | 11 + .../appplatform/model_customdomainresource.go | 16 + .../model_customdomainvalidatepayload.go | 8 + .../model_customdomainvalidateresult.go | 9 + .../model_customizedacceleratorproperties.go | 13 + .../model_customizedacceleratorresource.go | 17 + ...del_customizedacceleratorvalidateresult.go | 9 + .../model_custompersistentdiskproperties.go | 53 + .../model_custompersistentdiskresource.go | 40 + .../appplatform/model_customscalerule.go | 10 + .../appplatform/model_deploymentinstance.go | 13 + .../appplatform/model_deploymentlist.go | 8 + .../appplatform/model_deploymentresource.go | 17 + .../model_deploymentresourceproperties.go | 48 + .../appplatform/model_deploymentsettings.go | 17 + .../model_devtoolportalcomponent.go | 10 + .../model_devtoolportalfeaturedetail.go | 9 + .../model_devtoolportalfeaturesettings.go | 9 + .../model_devtoolportalinstance.go | 9 + .../model_devtoolportalproperties.go | 13 + .../model_devtoolportalresource.go | 16 + .../model_devtoolportalresourcerequests.go | 10 + .../model_devtoolportalssoproperties.go | 11 + .../appplatform/model_diagnosticparameters.go | 10 + .../appplatform/model_error.go | 9 + .../model_eurekaserverproperties.go | 10 + .../appplatform/model_eurekaserverresource.go | 16 + .../model_eurekaserverresourcecollection.go | 9 + .../appplatform/model_execaction.go | 41 + .../model_gatewayapimetadataproperties.go | 12 + .../appplatform/model_gatewayapiroute.go | 16 + .../model_gatewaycorsproperties.go | 14 + .../model_gatewaycustomdomainproperties.go | 8 + .../model_gatewaycustomdomainresource.go | 16 + .../appplatform/model_gatewayinstance.go | 9 + .../model_gatewayoperatorproperties.go | 9 + .../model_gatewayoperatorresourcerequests.go | 10 + .../appplatform/model_gatewayproperties.go | 21 + .../model_gatewaypropertiesclientauth.go | 9 + ...l_gatewaypropertiesenvironmentvariables.go | 9 + .../appplatform/model_gatewayresource.go | 17 + .../model_gatewayresourcerequests.go | 9 + ...del_gatewayrouteconfigopenapiproperties.go | 8 + .../model_gatewayrouteconfigproperties.go | 15 + .../model_gatewayrouteconfigresource.go | 16 + .../appplatform/model_gitpatternrepository.go | 18 + .../appplatform/model_globallyenabledapms.go | 8 + .../appplatform/model_httpgetaction.go | 42 + .../appplatform/model_httpscalerule.go | 9 + .../model_imageregistrycredential.go | 9 + .../appplatform/model_ingressconfig.go | 8 + .../appplatform/model_ingresssettings.go | 13 + .../model_ingresssettingsclientauth.go | 8 + .../model_jaruploadedusersourceinfo.go | 44 + .../model_keyvaultcertificateproperties.go | 52 + .../appplatform/model_loadedcertificate.go | 9 + .../appplatform/model_logfileurlresponse.go | 8 + .../model_maintenancescheduleconfiguration.go | 53 + .../appplatform/model_marketplaceresource.go | 10 + .../model_monitoringsettingproperties.go | 13 + .../model_monitoringsettingresource.go | 16 + .../appplatform/model_nameavailability.go | 10 + .../model_nameavailabilityparameters.go | 9 + .../model_netcorezipuploadedusersourceinfo.go | 44 + .../appplatform/model_networkprofile.go | 16 + .../model_networkprofileoutboundips.go | 8 + .../appplatform/model_persistentdisk.go | 10 + .../model_predefinedacceleratorproperties.go | 13 + .../model_predefinedacceleratorresource.go | 17 + .../appplatform/model_probe.go | 50 + .../appplatform/model_probeaction.go | 69 + .../appplatform/model_queuescalerule.go | 10 + .../model_regeneratetestkeyrequestpayload.go | 8 + .../appplatform/model_remotedebugging.go | 9 + .../model_remotedebuggingpayload.go | 8 + .../appplatform/model_requiredtraffic.go | 12 + .../appplatform/model_resourcerequests.go | 9 + .../appplatform/model_resourcesku.go | 14 + .../model_resourceskucapabilities.go | 9 + .../model_resourceskulocationinfo.go | 14 + .../model_resourceskurestrictioninfo.go | 13 + .../model_resourceskurestrictions.go | 11 + .../model_resourceskuzonedetails.go | 9 + .../model_resourceuploaddefinition.go | 9 + .../appplatform/model_scale.go | 10 + .../appplatform/model_scalerule.go | 12 + .../appplatform/model_scaleruleauth.go | 9 + .../appplatform/model_secret.go | 9 + .../model_serviceregistryinstance.go | 9 + .../model_serviceregistryproperties.go | 10 + .../model_serviceregistryresource.go | 16 + .../model_serviceregistryresourcerequests.go | 10 + .../appplatform/model_serviceresource.go | 19 + .../appplatform/model_servicevnetaddons.go | 9 + .../appplatform/model_sku.go | 10 + .../appplatform/model_skucapacity.go | 11 + .../appplatform/model_skuobject.go | 8 + .../model_sourceuploadedusersourceinfo.go | 44 + .../appplatform/model_ssoproperties.go | 11 + .../appplatform/model_stackproperties.go | 9 + .../appplatform/model_storageaccount.go | 42 + .../appplatform/model_storageproperties.go | 53 + .../appplatform/model_storageresource.go | 48 + .../appplatform/model_supportedapmtype.go | 8 + .../model_supportedbuildpackresource.go | 16 + ...el_supportedbuildpackresourceproperties.go | 8 + .../model_supportedbuildpackscollection.go | 9 + .../model_supportedruntimeversion.go | 10 + .../model_supportedstackresource.go | 16 + .../model_supportedstackresourceproperties.go | 9 + .../model_supportedstackscollection.go | 9 + .../appplatform/model_tcpscalerule.go | 9 + .../appplatform/model_tcpsocketaction.go | 40 + .../appplatform/model_temporarydisk.go | 9 + .../appplatform/model_testkeys.go | 12 + .../appplatform/model_triggeredbuildresult.go | 8 + .../appplatform/model_usersourceinfo.go | 85 + .../appplatform/model_validationmessages.go | 9 + ..._weeklymaintenancescheduleconfiguration.go | 43 + .../appplatform/predicates.go | 671 +++++ .../2023-07-01-preview/appplatform/version.go | 12 + vendor/modules.txt | 1 + ...ation_performance_monitoring.html.markdown | 96 + 412 files changed, 26000 insertions(+), 4 deletions(-) create mode 100644 internal/services/springcloud/spring_cloud_application_insights_application_performance_monitoring_resource.go create mode 100644 internal/services/springcloud/spring_cloud_application_insights_application_performance_monitoring_resource_test.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/README.md create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/constants.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_agentpool.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_apiportal.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_apiportaldomain.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_apm.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_app.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_applicationaccelerator.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_applicationliveview.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_binding.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_build.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_builder.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_buildpackbinding.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_buildservice.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_certificate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_configurationservice.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_containerregistry.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_customizedaccelerator.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_deployment.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_devtoolportal.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_domain.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_gateway.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_gatewaydomain.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_location.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_predefinedaccelerator.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_result.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_routeconfig.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_serviceregistry.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_spring.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_storage.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_supportedbuildpack.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_supportedstack.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainscreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainsdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalscreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalsdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalsvalidatedomain.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmscreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmsdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmslistsecretkeys.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorscreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorsdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewscreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewsdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appscreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsgetresourceuploadurl.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appssetactivedeployments.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsvalidatedomain.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingscreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingsdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingsupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindingcreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindingdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindingget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindinglist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindinglistforcluster.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildserviceagentpoolget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildserviceagentpoollist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildserviceagentpoolupdateput.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuildercreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderlist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderlistdeployments.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicecreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicecreateorupdatebuild.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicedeletebuild.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuild.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuildresult.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuildresultlog.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuildservice.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetresourceuploadurl.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetsupportedbuildpack.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetsupportedstack.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistbuildresults.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistbuilds.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistbuildservices.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistsupportedbuildpacks.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistsupportedstacks.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificatescreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificatesdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificatesget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificateslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversupdatepatch.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversupdateput.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversvalidate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicescreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationserviceslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesvalidate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesvalidateresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriescreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriesdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriesget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistrieslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriesvalidate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainscreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainsdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainsupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorscreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorsdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorsvalidate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentscreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsdisableremotedebugging.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsenableremotedebugging.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgenerateheapdump.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgeneratethreaddump.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgetlogfileurl.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgetremotedebuggingconfig.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentslistforcluster.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsrestart.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsstart.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsstartjfr.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsstop.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalscreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalsdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserversget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserverslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserversupdatepatch.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserversupdateput.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainscreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainsdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigscreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigsdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayscreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayslistenvsecrets.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysrestart.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysupdatecapacity.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysvalidatedomain.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_monitoringsettingsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_monitoringsettingsupdatepatch.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_monitoringsettingsupdateput.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorsdisable.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorsenable.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorsget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_runtimeversionslistruntimeversions.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistriescreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistriesdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistriesget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistrieslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceschecknameavailability.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicescreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesdisableapmglobally.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesdisabletestendpoint.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesenableapmglobally.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesenabletestendpoint.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesflushvnetdnssetting.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslistbysubscription.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslistgloballyenabledapms.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslistsupportedapmtypes.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslisttestkeys.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesregeneratetestkey.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesstart.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesstop.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_skuslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storagescreateorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storagesdelete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storagesget.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storageslist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorauthsetting.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorbasicauthsetting.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorgitrepository.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorpublicsetting.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorsshsetting.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_activedeploymentcollection.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalcustomdomainproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalcustomdomainresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalinstance.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalresourcerequests.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmreference.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmsecretkeys.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorcomponent.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorinstance.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorresourcerequests.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationinsightsagentversions.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewcomponent.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewinstance.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewresourcerequests.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_appresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_appresourceproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_appvnetaddons.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_availableruntimeversions.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_azurefilevolume.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_bindingresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_bindingresourceproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_build.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_builderproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_builderresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackbindinglaunchproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackbindingproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackbindingresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpacksgroupproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresourcerequests.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresult.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresultlog.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresultproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresultusersourceinfo.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildservice.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceagentpoolproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceagentpoolresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceagentpoolsizeproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildservicepropertiesresourcerequests.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildstageproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_certificateproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_certificatereference.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_certificateresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_clusterresourceproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configservergitproperty.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserverproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserverresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserversettings.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserversettingserrorrecord.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserversettingsvalidateresult.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicegitproperty.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicegitpropertyvalidateresult.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicegitrepository.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceinstance.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceresourcerequests.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicesettings.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicesettingsvalidateresult.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerprobesettings.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistrybasiccredentials.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistrycredentials.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistryproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistryresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistryvalidateresult.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_contentcertificateproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customcontainer.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customcontainerusersourceinfo.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainvalidatepayload.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainvalidateresult.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customizedacceleratorproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customizedacceleratorresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customizedacceleratorvalidateresult.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_custompersistentdiskproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_custompersistentdiskresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customscalerule.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentinstance.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentlist.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentresourceproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentsettings.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalcomponent.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalfeaturedetail.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalfeaturesettings.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalinstance.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalresourcerequests.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalssoproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_diagnosticparameters.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_error.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_eurekaserverproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_eurekaserverresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_eurekaserverresourcecollection.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_execaction.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayapimetadataproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayapiroute.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaycorsproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaycustomdomainproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaycustomdomainresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayinstance.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayoperatorproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayoperatorresourcerequests.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaypropertiesclientauth.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaypropertiesenvironmentvariables.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayresourcerequests.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayrouteconfigopenapiproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayrouteconfigproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayrouteconfigresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gitpatternrepository.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_globallyenabledapms.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_httpgetaction.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_httpscalerule.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_imageregistrycredential.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ingressconfig.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ingresssettings.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ingresssettingsclientauth.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_jaruploadedusersourceinfo.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_keyvaultcertificateproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_loadedcertificate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_logfileurlresponse.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_maintenancescheduleconfiguration.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_marketplaceresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_monitoringsettingproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_monitoringsettingresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_nameavailability.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_nameavailabilityparameters.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_netcorezipuploadedusersourceinfo.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_networkprofile.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_networkprofileoutboundips.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_persistentdisk.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_predefinedacceleratorproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_predefinedacceleratorresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_probe.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_probeaction.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_queuescalerule.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_regeneratetestkeyrequestpayload.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_remotedebugging.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_remotedebuggingpayload.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_requiredtraffic.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourcerequests.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourcesku.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskucapabilities.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskulocationinfo.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskurestrictioninfo.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskurestrictions.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskuzonedetails.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceuploaddefinition.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_scale.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_scalerule.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_scaleruleauth.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_secret.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryinstance.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryresourcerequests.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_servicevnetaddons.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_sku.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_skucapacity.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_skuobject.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_sourceuploadedusersourceinfo.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ssoproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_stackproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_storageaccount.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_storageproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_storageresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedapmtype.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedbuildpackresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedbuildpackresourceproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedbuildpackscollection.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedruntimeversion.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedstackresource.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedstackresourceproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedstackscollection.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_tcpscalerule.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_tcpsocketaction.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_temporarydisk.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_testkeys.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_triggeredbuildresult.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_usersourceinfo.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_validationmessages.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_weeklymaintenancescheduleconfiguration.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/predicates.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/version.go create mode 100644 website/docs/r/spring_cloud_application_insights_application_performance_monitoring.html.markdown diff --git a/.github/labeler-issue-triage.yml b/.github/labeler-issue-triage.yml index a44d3b316de4..aac8e90bff0a 100644 --- a/.github/labeler-issue-triage.yml +++ b/.github/labeler-issue-triage.yml @@ -316,7 +316,7 @@ service/signalr: - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_(signalr_s|web_pubsub)((.|\n)*)###' service/spring: - - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_(spring_cloud_accelerator\W+|spring_cloud_active_deployment\W+|spring_cloud_api_portal\W+|spring_cloud_api_portal_custom_domain\W+|spring_cloud_app\W+|spring_cloud_app_cosmosdb_association\W+|spring_cloud_app_mysql_association\W+|spring_cloud_app_redis_association\W+|spring_cloud_application_live_view\W+|spring_cloud_build_deployment\W+|spring_cloud_build_pack_binding\W+|spring_cloud_builder\W+|spring_cloud_certificate\W+|spring_cloud_configuration_service\W+|spring_cloud_container_deployment\W+|spring_cloud_custom_domain\W+|spring_cloud_customized_accelerator\W+|spring_cloud_dev_tool_portal\W+|spring_cloud_gateway\W+|spring_cloud_gateway_custom_domain\W+|spring_cloud_gateway_route_config\W+|spring_cloud_java_deployment\W+|spring_cloud_service\W+|spring_cloud_storage\W+)((.|\n)*)###' + - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_(spring_cloud_accelerator\W+|spring_cloud_active_deployment\W+|spring_cloud_api_portal\W+|spring_cloud_api_portal_custom_domain\W+|spring_cloud_app\W+|spring_cloud_app_cosmosdb_association\W+|spring_cloud_app_mysql_association\W+|spring_cloud_app_redis_association\W+|spring_cloud_application_insights_application_performance_monitoring\W+|spring_cloud_application_live_view\W+|spring_cloud_build_deployment\W+|spring_cloud_build_pack_binding\W+|spring_cloud_builder\W+|spring_cloud_certificate\W+|spring_cloud_configuration_service\W+|spring_cloud_container_deployment\W+|spring_cloud_custom_domain\W+|spring_cloud_customized_accelerator\W+|spring_cloud_dev_tool_portal\W+|spring_cloud_gateway\W+|spring_cloud_gateway_custom_domain\W+|spring_cloud_gateway_route_config\W+|spring_cloud_java_deployment\W+|spring_cloud_service\W+|spring_cloud_storage\W+)((.|\n)*)###' service/sql: - '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_sql_((.|\n)*)###' diff --git a/internal/clients/client.go b/internal/clients/client.go index bf88852736a2..e281e1130d43 100644 --- a/internal/clients/client.go +++ b/internal/clients/client.go @@ -314,7 +314,9 @@ func (client *Client) Build(ctx context.Context, o *common.ClientOptions) error if client.AppInsights, err = applicationInsights.NewClient(o); err != nil { return fmt.Errorf("building clients for ApplicationInsights: %+v", err) } - client.AppPlatform = appPlatform.NewClient(o) + if client.AppPlatform, err = appPlatform.NewClient(o); err != nil { + return fmt.Errorf("building clients for AppPlatform: %+v", err) + } client.AppService = appService.NewClient(o) if client.ArcKubernetes, err = arckubernetes.NewClient(o); err != nil { return fmt.Errorf("building clients for ArcKubernetes: %+v", err) diff --git a/internal/services/springcloud/client/client.go b/internal/services/springcloud/client/client.go index d842260e6bf7..bdc2a8b4e84b 100644 --- a/internal/services/springcloud/client/client.go +++ b/internal/services/springcloud/client/client.go @@ -4,11 +4,17 @@ package client import ( + "fmt" + + appplatform2 "github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform" "github.com/hashicorp/terraform-provider-azurerm/internal/common" "github.com/tombuildsstuff/kermit/sdk/appplatform/2023-05-01-preview/appplatform" ) type Client struct { + AppPlatformClient *appplatform2.AppPlatformClient + + // TODO: convert to using hashicorp/go-azure-sdk APIPortalClient *appplatform.APIPortalsClient APIPortalCustomDomainClient *appplatform.APIPortalCustomDomainsClient ApplicationAcceleratorClient *appplatform.ApplicationAcceleratorsClient @@ -36,7 +42,13 @@ type Client struct { StoragesClient *appplatform.StoragesClient } -func NewClient(o *common.ClientOptions) *Client { +func NewClient(o *common.ClientOptions) (*Client, error) { + appPlatformClient, err := appplatform2.NewAppPlatformClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building AppPlatform client: %+v", err) + } + o.Configure(appPlatformClient.Client, o.Authorizers.ResourceManager) + apiPortalClient := appplatform.NewAPIPortalsClientWithBaseURI(o.ResourceManagerEndpoint, o.SubscriptionId) o.ConfigureClient(&apiPortalClient.Client, o.ResourceManagerAuthorizer) @@ -113,6 +125,9 @@ func NewClient(o *common.ClientOptions) *Client { o.ConfigureClient(&storageClient.Client, o.ResourceManagerAuthorizer) return &Client{ + AppPlatformClient: appPlatformClient, + + // TODO: port to `hashicorp/go-azure-sdk` APIPortalClient: &apiPortalClient, APIPortalCustomDomainClient: &apiPortalCustomDomainClient, ApplicationAcceleratorClient: &applicationAcceleratorClient, @@ -138,5 +153,5 @@ func NewClient(o *common.ClientOptions) *Client { ServicesClient: &servicesClient, ServiceRegistryClient: &serviceRegistryClient, StoragesClient: &storageClient, - } + }, nil } diff --git a/internal/services/springcloud/registration.go b/internal/services/springcloud/registration.go index acacd6c1f383..dd27876dad11 100644 --- a/internal/services/springcloud/registration.go +++ b/internal/services/springcloud/registration.go @@ -71,6 +71,7 @@ func (r Registration) DataSources() []sdk.DataSource { func (r Registration) Resources() []sdk.Resource { return []sdk.Resource{ + SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource{}, SpringCloudAcceleratorResource{}, SpringCloudApplicationLiveViewResource{}, SpringCloudDevToolPortalResource{}, diff --git a/internal/services/springcloud/spring_cloud_application_insights_application_performance_monitoring_resource.go b/internal/services/springcloud/spring_cloud_application_insights_application_performance_monitoring_resource.go new file mode 100644 index 000000000000..00dd88c43bf3 --- /dev/null +++ b/internal/services/springcloud/spring_cloud_application_insights_application_performance_monitoring_resource.go @@ -0,0 +1,335 @@ +package springcloud + +import ( + "context" + "fmt" + "strconv" + "time" + + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/services/springcloud/validate" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" + "github.com/hashicorp/terraform-provider-azurerm/utils" +) + +type SpringCloudApplicationInsightsApplicationPerformanceMonitoringModel struct { + Name string `tfschema:"name"` + SpringCloudServiceId string `tfschema:"spring_cloud_service_id"` + GloballyEnabled bool `tfschema:"globally_enabled"` + ConnectionString string `tfschema:"connection_string"` + RoleName string `tfschema:"role_name"` + RoleInstance string `tfschema:"role_instance"` + SamplingRequestsPerSecond int64 `tfschema:"sampling_requests_per_second"` + SamplingPercentage int64 `tfschema:"sampling_percentage"` +} + +type SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource struct{} + +var _ sdk.ResourceWithUpdate = SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource{} + +func (s SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource) ResourceType() string { + return "azurerm_spring_cloud_application_insights_application_performance_monitoring" +} + +func (s SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource) ModelObject() interface{} { + return &SpringCloudApplicationInsightsApplicationPerformanceMonitoringModel{} +} + +func (s SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return appplatform.ValidateApmID +} + +func (s SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource) Arguments() map[string]*schema.Schema { + return map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "spring_cloud_service_id": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validate.SpringCloudServiceID, + }, + + "globally_enabled": { + Type: pluginsdk.TypeBool, + Optional: true, + Default: false, + }, + + "connection_string": { + Type: pluginsdk.TypeString, + Optional: true, + }, + + "role_name": { + Type: pluginsdk.TypeString, + Optional: true, + }, + + "role_instance": { + Type: pluginsdk.TypeString, + Optional: true, + }, + + "sampling_requests_per_second": { + Type: pluginsdk.TypeInt, + Optional: true, + ValidateFunc: validation.IntAtLeast(0), + }, + + "sampling_percentage": { + Type: pluginsdk.TypeInt, + Optional: true, + ValidateFunc: validation.IntBetween(0, 100), + }, + } +} + +func (s SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource) Attributes() map[string]*schema.Schema { + return map[string]*pluginsdk.Schema{} +} + +func (s SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource) Create() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + var model SpringCloudApplicationInsightsApplicationPerformanceMonitoringModel + if err := metadata.Decode(&model); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + client := metadata.Client.AppPlatform.AppPlatformClient + springId, err := appplatform.ParseSpringID(model.SpringCloudServiceId) + if err != nil { + return fmt.Errorf("parsing spring service ID: %+v", err) + } + id := appplatform.NewApmID(springId.SubscriptionId, springId.ResourceGroupName, springId.SpringName, model.Name) + + existing, err := client.ApmsGet(ctx, id) + if err != nil && !response.WasNotFound(existing.HttpResponse) { + return fmt.Errorf("checking for existing %s: %+v", id, err) + } + if !response.WasNotFound(existing.HttpResponse) { + return metadata.ResourceRequiresImport(s.ResourceType(), id) + } + + resource := appplatform.ApmResource{ + Properties: &appplatform.ApmProperties{ + Type: "ApplicationInsights", + Properties: utils.ToPtr(map[string]string{ + "role_name": model.RoleName, + "role_instance": model.RoleInstance, + "sampling_requests_per_second": fmt.Sprintf("%d", model.SamplingRequestsPerSecond), + "sampling_percentage": fmt.Sprintf("%d", model.SamplingPercentage), + }), + Secrets: utils.ToPtr(map[string]string{ + "connection_string": model.ConnectionString, + }), + }, + } + err = client.ApmsCreateOrUpdateThenPoll(ctx, id, resource) + if err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + + if model.GloballyEnabled { + apmReference := appplatform.ApmReference{ + ResourceId: id.ID(), + } + err = client.ServicesEnableApmGloballyThenPoll(ctx, *springId, apmReference) + if err != nil { + return fmt.Errorf("enabling %s globally: %+v", id, err) + } + } + + metadata.SetID(id) + return nil + }, + } +} + +func (s SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource) Update() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.AppPlatform.AppPlatformClient + + id, err := appplatform.ParseApmID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + var model SpringCloudApplicationInsightsApplicationPerformanceMonitoringModel + if err := metadata.Decode(&model); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + resp, err := client.ApmsGet(ctx, *id) + if err != nil { + return fmt.Errorf("retrieving %s: %+v", *id, err) + } + + properties := resp.Model.Properties + if properties == nil { + return fmt.Errorf("retrieving %s: properties was nil", id) + } + + if metadata.ResourceData.HasChange("role_name") { + (*properties.Properties)["role_name"] = model.RoleName + } + + if metadata.ResourceData.HasChange("role_instance") { + (*properties.Properties)["role_instance"] = model.RoleInstance + } + + if metadata.ResourceData.HasChange("sampling_requests_per_second") { + (*properties.Properties)["sampling_requests_per_second"] = fmt.Sprintf("%d", model.SamplingRequestsPerSecond) + } + + if metadata.ResourceData.HasChange("sampling_percentage") { + (*properties.Properties)["sampling_percentage"] = fmt.Sprintf("%d", model.SamplingPercentage) + } + + if metadata.ResourceData.HasChange("connection_string") { + (*properties.Secrets)["connection_string"] = model.ConnectionString + } + + resource := appplatform.ApmResource{ + Properties: properties, + } + + err = client.ApmsCreateOrUpdateThenPoll(ctx, *id, resource) + if err != nil { + return fmt.Errorf("updating %s: %+v", id, err) + } + + if metadata.ResourceData.HasChange("globally_enabled") { + apmReference := appplatform.ApmReference{ + ResourceId: id.ID(), + } + springId := appplatform.NewSpringID(id.SubscriptionId, id.ResourceGroupName, id.SpringName) + if model.GloballyEnabled { + err := client.ServicesEnableApmGloballyThenPoll(ctx, springId, apmReference) + if err != nil { + return fmt.Errorf("enabling %s globally: %+v", id, err) + } + } else { + err := client.ServicesDisableApmGloballyThenPoll(ctx, springId, apmReference) + if err != nil { + return fmt.Errorf("disabling %s globally: %+v", id, err) + } + } + } + + return nil + }, + } +} + +func (s SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 5 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.AppPlatform.AppPlatformClient + + id, err := appplatform.ParseApmID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + resp, err := client.ApmsGet(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return metadata.MarkAsGone(id) + } + + return fmt.Errorf("retrieving %s: %+v", *id, err) + } + + springId := appplatform.NewSpringID(id.SubscriptionId, id.ResourceGroupName, id.SpringName) + result, err := client.ServicesListGloballyEnabledApms(ctx, springId) + if err != nil { + return fmt.Errorf("listing globally enabled apms: %+v", err) + } + globallyEnabled := false + if result.Model != nil && result.Model.Value != nil { + for _, value := range *result.Model.Value { + apmId, err := appplatform.ParseApmIDInsensitively(value) + if err == nil && apmId.ID() == id.ID() { + globallyEnabled = true + break + } + } + } + + var model SpringCloudApplicationInsightsApplicationPerformanceMonitoringModel + if err := metadata.Decode(&model); err != nil { + return fmt.Errorf("decoding: %+v", err) + } + + state := SpringCloudApplicationInsightsApplicationPerformanceMonitoringModel{ + Name: id.ApmName, + SpringCloudServiceId: springId.ID(), + ConnectionString: model.ConnectionString, + GloballyEnabled: globallyEnabled, + } + + if props := resp.Model.Properties; props != nil { + if props.Type != "ApplicationInsights" { + return fmt.Errorf("retrieving %s: type was not ApplicationInsights", *id) + } + if props.Properties != nil { + if value, ok := (*props.Properties)["role_name"]; ok { + state.RoleName = value + } + if value, ok := (*props.Properties)["role_instance"]; ok { + state.RoleInstance = value + } + if value, ok := (*props.Properties)["sampling_requests_per_second"]; ok { + if samplingRequestsPerSecond, err := strconv.ParseInt(value, 10, 64); err == nil { + state.SamplingRequestsPerSecond = samplingRequestsPerSecond + } + } + if value, ok := (*props.Properties)["sampling_percentage"]; ok { + if samplingPercentage, err := strconv.ParseInt(value, 10, 64); err == nil { + state.SamplingPercentage = samplingPercentage + } + } + + } + } + + return metadata.Encode(&state) + }, + } +} + +func (s SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource) Delete() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.AppPlatform.AppPlatformClient + + id, err := appplatform.ParseApmID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + err = client.ApmsDeleteThenPoll(ctx, *id) + if err != nil { + return fmt.Errorf("deleting %s: %+v", *id, err) + } + + return nil + }, + } +} diff --git a/internal/services/springcloud/spring_cloud_application_insights_application_performance_monitoring_resource_test.go b/internal/services/springcloud/spring_cloud_application_insights_application_performance_monitoring_resource_test.go new file mode 100644 index 000000000000..31aa54199a14 --- /dev/null +++ b/internal/services/springcloud/spring_cloud_application_insights_application_performance_monitoring_resource_test.go @@ -0,0 +1,177 @@ +package springcloud_test + +import ( + "context" + "fmt" + "testing" + + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/utils" +) + +type SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource struct{} + +func TestAccSpringCloudApplicationInsightsApplicationPerformanceMonitoringrformanceMonitoring_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_spring_cloud_application_insights_application_performance_monitoring", "test") + r := SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("connection_string"), + }) +} + +func TestAccSpringCloudApplicationInsightsApplicationPerformanceMonitoringrformanceMonitoring_requiresImport(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_spring_cloud_application_insights_application_performance_monitoring", "test") + r := SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.RequiresImportErrorStep(r.requiresImport), + }) +} + +func TestAccSpringCloudApplicationInsightsApplicationPerformanceMonitoringrformanceMonitoring_complete(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_spring_cloud_application_insights_application_performance_monitoring", "test") + r := SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.complete(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("connection_string"), + }) +} + +func TestAccSpringCloudApplicationInsightsApplicationPerformanceMonitoringrformanceMonitoring_update(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_spring_cloud_application_insights_application_performance_monitoring", "test") + r := SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("connection_string"), + { + Config: r.complete(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("connection_string"), + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep("connection_string"), + }) +} + +func (r SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource) Exists(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { + id, err := appplatform.ParseApmID(state.ID) + if err != nil { + return nil, err + } + resp, err := client.AppPlatform.AppPlatformClient.ApmsGet(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return utils.Bool(false), nil + } + return nil, fmt.Errorf("retrieving %s: %+v", id, err) + } + return utils.Bool(true), nil +} + +func (r SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource) template(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features { + resource_group { + prevent_deletion_if_contains_resources = false + } + } +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-spring-%[2]d" + location = "%[1]s" +} + +resource "azurerm_application_insights" "test" { + name = "acctest-ai-%[2]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + application_type = "web" +} + +resource "azurerm_spring_cloud_service" "test" { + name = "acctest-sc-%[2]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + sku_name = "E0" +} +`, data.Locations.Primary, data.RandomInteger) +} + +func (r SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource) basic(data acceptance.TestData) string { + template := r.template(data) + return fmt.Sprintf(` +%s + +resource "azurerm_spring_cloud_application_insights_application_performance_monitoring" "test" { + name = "acctest-apm-%[2]d" + spring_cloud_service_id = azurerm_spring_cloud_service.test.id + connection_string = azurerm_application_insights.test.instrumentation_key +} +`, template, data.RandomInteger) +} + +func (r SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource) requiresImport(data acceptance.TestData) string { + config := r.basic(data) + return fmt.Sprintf(` +%s + +resource "azurerm_spring_cloud_application_insights_application_performance_monitoring" "import" { + name = azurerm_spring_cloud_application_insights_application_performance_monitoring.test.name + spring_cloud_service_id = azurerm_spring_cloud_application_insights_application_performance_monitoring.test.spring_cloud_service_id + connection_string = azurerm_spring_cloud_application_insights_application_performance_monitoring.test.connection_string +} +`, config) +} + +func (r SpringCloudApplicationInsightsApplicationPerformanceMonitoringResource) complete(data acceptance.TestData) string { + template := r.template(data) + return fmt.Sprintf(` +%s + +resource "azurerm_spring_cloud_application_insights_application_performance_monitoring" "test" { + name = "acctest-apm-%[2]d" + spring_cloud_service_id = azurerm_spring_cloud_service.test.id + connection_string = azurerm_application_insights.test.instrumentation_key + globally_enabled = true + role_name = "test-role" + role_instance = "test-instance" + sampling_percentage = 50 + sampling_requests_per_second = 10 +} +`, template, data.RandomInteger) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/README.md new file mode 100644 index 000000000000..4c9cd9d2fe59 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/README.md @@ -0,0 +1,2669 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform` Documentation + +The `appplatform` SDK allows for interaction with the Azure Resource Manager Service `appplatform` (API Version `2023-07-01-preview`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform" +``` + + +### Client Initialization + +```go +client := appplatform.NewAppPlatformClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `AppPlatformClient.ApiPortalCustomDomainsCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewApiPortalDomainID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "apiPortalValue", "domainValue") + +payload := appplatform.ApiPortalCustomDomainResource{ + // ... +} + + +if err := client.ApiPortalCustomDomainsCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ApiPortalCustomDomainsDelete` + +```go +ctx := context.TODO() +id := appplatform.NewApiPortalDomainID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "apiPortalValue", "domainValue") + +if err := client.ApiPortalCustomDomainsDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ApiPortalCustomDomainsGet` + +```go +ctx := context.TODO() +id := appplatform.NewApiPortalDomainID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "apiPortalValue", "domainValue") + +read, err := client.ApiPortalCustomDomainsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ApiPortalCustomDomainsList` + +```go +ctx := context.TODO() +id := appplatform.NewApiPortalID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "apiPortalValue") + +// alternatively `client.ApiPortalCustomDomainsList(ctx, id)` can be used to do batched pagination +items, err := client.ApiPortalCustomDomainsListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.ApiPortalsCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewApiPortalID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "apiPortalValue") + +payload := appplatform.ApiPortalResource{ + // ... +} + + +if err := client.ApiPortalsCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ApiPortalsDelete` + +```go +ctx := context.TODO() +id := appplatform.NewApiPortalID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "apiPortalValue") + +if err := client.ApiPortalsDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ApiPortalsGet` + +```go +ctx := context.TODO() +id := appplatform.NewApiPortalID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "apiPortalValue") + +read, err := client.ApiPortalsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ApiPortalsList` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.ApiPortalsList(ctx, id)` can be used to do batched pagination +items, err := client.ApiPortalsListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.ApiPortalsValidateDomain` + +```go +ctx := context.TODO() +id := appplatform.NewApiPortalID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "apiPortalValue") + +payload := appplatform.CustomDomainValidatePayload{ + // ... +} + + +read, err := client.ApiPortalsValidateDomain(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ApmsCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewApmID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "apmValue") + +payload := appplatform.ApmResource{ + // ... +} + + +if err := client.ApmsCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ApmsDelete` + +```go +ctx := context.TODO() +id := appplatform.NewApmID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "apmValue") + +if err := client.ApmsDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ApmsGet` + +```go +ctx := context.TODO() +id := appplatform.NewApmID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "apmValue") + +read, err := client.ApmsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ApmsList` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.ApmsList(ctx, id)` can be used to do batched pagination +items, err := client.ApmsListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.ApmsListSecretKeys` + +```go +ctx := context.TODO() +id := appplatform.NewApmID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "apmValue") + +read, err := client.ApmsListSecretKeys(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ApplicationAcceleratorsCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewApplicationAcceleratorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationAcceleratorValue") + +payload := appplatform.ApplicationAcceleratorResource{ + // ... +} + + +if err := client.ApplicationAcceleratorsCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ApplicationAcceleratorsDelete` + +```go +ctx := context.TODO() +id := appplatform.NewApplicationAcceleratorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationAcceleratorValue") + +if err := client.ApplicationAcceleratorsDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ApplicationAcceleratorsGet` + +```go +ctx := context.TODO() +id := appplatform.NewApplicationAcceleratorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationAcceleratorValue") + +read, err := client.ApplicationAcceleratorsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ApplicationAcceleratorsList` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.ApplicationAcceleratorsList(ctx, id)` can be used to do batched pagination +items, err := client.ApplicationAcceleratorsListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.ApplicationLiveViewsCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewApplicationLiveViewID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationLiveViewValue") + +payload := appplatform.ApplicationLiveViewResource{ + // ... +} + + +if err := client.ApplicationLiveViewsCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ApplicationLiveViewsDelete` + +```go +ctx := context.TODO() +id := appplatform.NewApplicationLiveViewID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationLiveViewValue") + +if err := client.ApplicationLiveViewsDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ApplicationLiveViewsGet` + +```go +ctx := context.TODO() +id := appplatform.NewApplicationLiveViewID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationLiveViewValue") + +read, err := client.ApplicationLiveViewsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ApplicationLiveViewsList` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.ApplicationLiveViewsList(ctx, id)` can be used to do batched pagination +items, err := client.ApplicationLiveViewsListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.AppsCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue") + +payload := appplatform.AppResource{ + // ... +} + + +if err := client.AppsCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.AppsDelete` + +```go +ctx := context.TODO() +id := appplatform.NewAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue") + +if err := client.AppsDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.AppsGet` + +```go +ctx := context.TODO() +id := appplatform.NewAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue") + +read, err := client.AppsGet(ctx, id, appplatform.DefaultAppsGetOperationOptions()) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.AppsGetResourceUploadUrl` + +```go +ctx := context.TODO() +id := appplatform.NewAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue") + +read, err := client.AppsGetResourceUploadUrl(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.AppsList` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.AppsList(ctx, id)` can be used to do batched pagination +items, err := client.AppsListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.AppsSetActiveDeployments` + +```go +ctx := context.TODO() +id := appplatform.NewAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue") + +payload := appplatform.ActiveDeploymentCollection{ + // ... +} + + +if err := client.AppsSetActiveDeploymentsThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.AppsUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue") + +payload := appplatform.AppResource{ + // ... +} + + +if err := client.AppsUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.AppsValidateDomain` + +```go +ctx := context.TODO() +id := appplatform.NewAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue") + +payload := appplatform.CustomDomainValidatePayload{ + // ... +} + + +read, err := client.AppsValidateDomain(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BindingsCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewBindingID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "bindingValue") + +payload := appplatform.BindingResource{ + // ... +} + + +if err := client.BindingsCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.BindingsDelete` + +```go +ctx := context.TODO() +id := appplatform.NewBindingID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "bindingValue") + +if err := client.BindingsDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.BindingsGet` + +```go +ctx := context.TODO() +id := appplatform.NewBindingID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "bindingValue") + +read, err := client.BindingsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BindingsList` + +```go +ctx := context.TODO() +id := appplatform.NewAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue") + +// alternatively `client.BindingsList(ctx, id)` can be used to do batched pagination +items, err := client.BindingsListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.BindingsUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewBindingID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "bindingValue") + +payload := appplatform.BindingResource{ + // ... +} + + +if err := client.BindingsUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceAgentPoolGet` + +```go +ctx := context.TODO() +id := appplatform.NewAgentPoolID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "agentPoolValue") + +read, err := client.BuildServiceAgentPoolGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceAgentPoolList` + +```go +ctx := context.TODO() +id := appplatform.NewBuildServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue") + +// alternatively `client.BuildServiceAgentPoolList(ctx, id)` can be used to do batched pagination +items, err := client.BuildServiceAgentPoolListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceAgentPoolUpdatePut` + +```go +ctx := context.TODO() +id := appplatform.NewAgentPoolID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "agentPoolValue") + +payload := appplatform.BuildServiceAgentPoolResource{ + // ... +} + + +if err := client.BuildServiceAgentPoolUpdatePutThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceBuilderCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewBuilderID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "builderValue") + +payload := appplatform.BuilderResource{ + // ... +} + + +if err := client.BuildServiceBuilderCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceBuilderDelete` + +```go +ctx := context.TODO() +id := appplatform.NewBuilderID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "builderValue") + +if err := client.BuildServiceBuilderDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceBuilderGet` + +```go +ctx := context.TODO() +id := appplatform.NewBuilderID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "builderValue") + +read, err := client.BuildServiceBuilderGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceBuilderList` + +```go +ctx := context.TODO() +id := appplatform.NewBuildServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue") + +// alternatively `client.BuildServiceBuilderList(ctx, id)` can be used to do batched pagination +items, err := client.BuildServiceBuilderListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceBuilderListDeployments` + +```go +ctx := context.TODO() +id := appplatform.NewBuilderID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "builderValue") + +read, err := client.BuildServiceBuilderListDeployments(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewBuildServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue") + +payload := appplatform.BuildService{ + // ... +} + + +if err := client.BuildServiceCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceCreateOrUpdateBuild` + +```go +ctx := context.TODO() +id := appplatform.NewBuildID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "buildValue") + +payload := appplatform.Build{ + // ... +} + + +read, err := client.BuildServiceCreateOrUpdateBuild(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceDeleteBuild` + +```go +ctx := context.TODO() +id := appplatform.NewBuildID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "buildValue") + +if err := client.BuildServiceDeleteBuildThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceGetBuild` + +```go +ctx := context.TODO() +id := appplatform.NewBuildID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "buildValue") + +read, err := client.BuildServiceGetBuild(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceGetBuildResult` + +```go +ctx := context.TODO() +id := appplatform.NewResultID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "buildValue", "resultValue") + +read, err := client.BuildServiceGetBuildResult(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceGetBuildResultLog` + +```go +ctx := context.TODO() +id := appplatform.NewResultID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "buildValue", "resultValue") + +read, err := client.BuildServiceGetBuildResultLog(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceGetBuildService` + +```go +ctx := context.TODO() +id := appplatform.NewBuildServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue") + +read, err := client.BuildServiceGetBuildService(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceGetResourceUploadUrl` + +```go +ctx := context.TODO() +id := appplatform.NewBuildServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue") + +read, err := client.BuildServiceGetResourceUploadUrl(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceGetSupportedBuildpack` + +```go +ctx := context.TODO() +id := appplatform.NewSupportedBuildPackID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "supportedBuildPackValue") + +read, err := client.BuildServiceGetSupportedBuildpack(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceGetSupportedStack` + +```go +ctx := context.TODO() +id := appplatform.NewSupportedStackID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "supportedStackValue") + +read, err := client.BuildServiceGetSupportedStack(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceListBuildResults` + +```go +ctx := context.TODO() +id := appplatform.NewBuildID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "buildValue") + +// alternatively `client.BuildServiceListBuildResults(ctx, id)` can be used to do batched pagination +items, err := client.BuildServiceListBuildResultsComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceListBuildServices` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.BuildServiceListBuildServices(ctx, id)` can be used to do batched pagination +items, err := client.BuildServiceListBuildServicesComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceListBuilds` + +```go +ctx := context.TODO() +id := appplatform.NewBuildServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue") + +// alternatively `client.BuildServiceListBuilds(ctx, id)` can be used to do batched pagination +items, err := client.BuildServiceListBuildsComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceListSupportedBuildpacks` + +```go +ctx := context.TODO() +id := appplatform.NewBuildServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue") + +read, err := client.BuildServiceListSupportedBuildpacks(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BuildServiceListSupportedStacks` + +```go +ctx := context.TODO() +id := appplatform.NewBuildServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue") + +read, err := client.BuildServiceListSupportedStacks(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BuildpackBindingCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewBuildPackBindingID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "builderValue", "buildPackBindingValue") + +payload := appplatform.BuildpackBindingResource{ + // ... +} + + +if err := client.BuildpackBindingCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.BuildpackBindingDelete` + +```go +ctx := context.TODO() +id := appplatform.NewBuildPackBindingID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "builderValue", "buildPackBindingValue") + +if err := client.BuildpackBindingDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.BuildpackBindingGet` + +```go +ctx := context.TODO() +id := appplatform.NewBuildPackBindingID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "builderValue", "buildPackBindingValue") + +read, err := client.BuildpackBindingGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.BuildpackBindingList` + +```go +ctx := context.TODO() +id := appplatform.NewBuilderID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "buildServiceValue", "builderValue") + +// alternatively `client.BuildpackBindingList(ctx, id)` can be used to do batched pagination +items, err := client.BuildpackBindingListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.BuildpackBindingListForCluster` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.BuildpackBindingListForCluster(ctx, id)` can be used to do batched pagination +items, err := client.BuildpackBindingListForClusterComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.CertificatesCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "certificateValue") + +payload := appplatform.CertificateResource{ + // ... +} + + +if err := client.CertificatesCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.CertificatesDelete` + +```go +ctx := context.TODO() +id := appplatform.NewCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "certificateValue") + +if err := client.CertificatesDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.CertificatesGet` + +```go +ctx := context.TODO() +id := appplatform.NewCertificateID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "certificateValue") + +read, err := client.CertificatesGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.CertificatesList` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.CertificatesList(ctx, id)` can be used to do batched pagination +items, err := client.CertificatesListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.ConfigServersGet` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +read, err := client.ConfigServersGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ConfigServersUpdatePatch` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +payload := appplatform.ConfigServerResource{ + // ... +} + + +if err := client.ConfigServersUpdatePatchThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ConfigServersUpdatePut` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +payload := appplatform.ConfigServerResource{ + // ... +} + + +if err := client.ConfigServersUpdatePutThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ConfigServersValidate` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +payload := appplatform.ConfigServerSettings{ + // ... +} + + +if err := client.ConfigServersValidateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ConfigurationServicesCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewConfigurationServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "configurationServiceValue") + +payload := appplatform.ConfigurationServiceResource{ + // ... +} + + +if err := client.ConfigurationServicesCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ConfigurationServicesDelete` + +```go +ctx := context.TODO() +id := appplatform.NewConfigurationServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "configurationServiceValue") + +if err := client.ConfigurationServicesDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ConfigurationServicesGet` + +```go +ctx := context.TODO() +id := appplatform.NewConfigurationServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "configurationServiceValue") + +read, err := client.ConfigurationServicesGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ConfigurationServicesList` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.ConfigurationServicesList(ctx, id)` can be used to do batched pagination +items, err := client.ConfigurationServicesListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.ConfigurationServicesValidate` + +```go +ctx := context.TODO() +id := appplatform.NewConfigurationServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "configurationServiceValue") + +payload := appplatform.ConfigurationServiceSettings{ + // ... +} + + +if err := client.ConfigurationServicesValidateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ConfigurationServicesValidateResource` + +```go +ctx := context.TODO() +id := appplatform.NewConfigurationServiceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "configurationServiceValue") + +payload := appplatform.ConfigurationServiceResource{ + // ... +} + + +if err := client.ConfigurationServicesValidateResourceThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ContainerRegistriesCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewContainerRegistryID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "containerRegistryValue") + +payload := appplatform.ContainerRegistryResource{ + // ... +} + + +if err := client.ContainerRegistriesCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ContainerRegistriesDelete` + +```go +ctx := context.TODO() +id := appplatform.NewContainerRegistryID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "containerRegistryValue") + +if err := client.ContainerRegistriesDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ContainerRegistriesGet` + +```go +ctx := context.TODO() +id := appplatform.NewContainerRegistryID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "containerRegistryValue") + +read, err := client.ContainerRegistriesGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ContainerRegistriesList` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.ContainerRegistriesList(ctx, id)` can be used to do batched pagination +items, err := client.ContainerRegistriesListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.ContainerRegistriesValidate` + +```go +ctx := context.TODO() +id := appplatform.NewContainerRegistryID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "containerRegistryValue") + +payload := appplatform.ContainerRegistryProperties{ + // ... +} + + +if err := client.ContainerRegistriesValidateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.CustomDomainsCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewDomainID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "domainValue") + +payload := appplatform.CustomDomainResource{ + // ... +} + + +if err := client.CustomDomainsCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.CustomDomainsDelete` + +```go +ctx := context.TODO() +id := appplatform.NewDomainID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "domainValue") + +if err := client.CustomDomainsDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.CustomDomainsGet` + +```go +ctx := context.TODO() +id := appplatform.NewDomainID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "domainValue") + +read, err := client.CustomDomainsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.CustomDomainsList` + +```go +ctx := context.TODO() +id := appplatform.NewAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue") + +// alternatively `client.CustomDomainsList(ctx, id)` can be used to do batched pagination +items, err := client.CustomDomainsListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.CustomDomainsUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewDomainID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "domainValue") + +payload := appplatform.CustomDomainResource{ + // ... +} + + +if err := client.CustomDomainsUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.CustomizedAcceleratorsCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewCustomizedAcceleratorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationAcceleratorValue", "customizedAcceleratorValue") + +payload := appplatform.CustomizedAcceleratorResource{ + // ... +} + + +if err := client.CustomizedAcceleratorsCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.CustomizedAcceleratorsDelete` + +```go +ctx := context.TODO() +id := appplatform.NewCustomizedAcceleratorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationAcceleratorValue", "customizedAcceleratorValue") + +if err := client.CustomizedAcceleratorsDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.CustomizedAcceleratorsGet` + +```go +ctx := context.TODO() +id := appplatform.NewCustomizedAcceleratorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationAcceleratorValue", "customizedAcceleratorValue") + +read, err := client.CustomizedAcceleratorsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.CustomizedAcceleratorsList` + +```go +ctx := context.TODO() +id := appplatform.NewApplicationAcceleratorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationAcceleratorValue") + +// alternatively `client.CustomizedAcceleratorsList(ctx, id)` can be used to do batched pagination +items, err := client.CustomizedAcceleratorsListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.CustomizedAcceleratorsValidate` + +```go +ctx := context.TODO() +id := appplatform.NewCustomizedAcceleratorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationAcceleratorValue", "customizedAcceleratorValue") + +payload := appplatform.CustomizedAcceleratorProperties{ + // ... +} + + +read, err := client.CustomizedAcceleratorsValidate(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewDeploymentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "deploymentValue") + +payload := appplatform.DeploymentResource{ + // ... +} + + +if err := client.DeploymentsCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsDelete` + +```go +ctx := context.TODO() +id := appplatform.NewDeploymentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "deploymentValue") + +if err := client.DeploymentsDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsDisableRemoteDebugging` + +```go +ctx := context.TODO() +id := appplatform.NewDeploymentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "deploymentValue") + +if err := client.DeploymentsDisableRemoteDebuggingThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsEnableRemoteDebugging` + +```go +ctx := context.TODO() +id := appplatform.NewDeploymentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "deploymentValue") + +payload := appplatform.RemoteDebuggingPayload{ + // ... +} + + +if err := client.DeploymentsEnableRemoteDebuggingThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsGenerateHeapDump` + +```go +ctx := context.TODO() +id := appplatform.NewDeploymentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "deploymentValue") + +payload := appplatform.DiagnosticParameters{ + // ... +} + + +if err := client.DeploymentsGenerateHeapDumpThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsGenerateThreadDump` + +```go +ctx := context.TODO() +id := appplatform.NewDeploymentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "deploymentValue") + +payload := appplatform.DiagnosticParameters{ + // ... +} + + +if err := client.DeploymentsGenerateThreadDumpThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsGet` + +```go +ctx := context.TODO() +id := appplatform.NewDeploymentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "deploymentValue") + +read, err := client.DeploymentsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsGetLogFileUrl` + +```go +ctx := context.TODO() +id := appplatform.NewDeploymentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "deploymentValue") + +read, err := client.DeploymentsGetLogFileUrl(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsGetRemoteDebuggingConfig` + +```go +ctx := context.TODO() +id := appplatform.NewDeploymentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "deploymentValue") + +read, err := client.DeploymentsGetRemoteDebuggingConfig(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsList` + +```go +ctx := context.TODO() +id := appplatform.NewAppID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue") + +// alternatively `client.DeploymentsList(ctx, id, appplatform.DefaultDeploymentsListOperationOptions())` can be used to do batched pagination +items, err := client.DeploymentsListComplete(ctx, id, appplatform.DefaultDeploymentsListOperationOptions()) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsListForCluster` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.DeploymentsListForCluster(ctx, id, appplatform.DefaultDeploymentsListForClusterOperationOptions())` can be used to do batched pagination +items, err := client.DeploymentsListForClusterComplete(ctx, id, appplatform.DefaultDeploymentsListForClusterOperationOptions()) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsRestart` + +```go +ctx := context.TODO() +id := appplatform.NewDeploymentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "deploymentValue") + +if err := client.DeploymentsRestartThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsStart` + +```go +ctx := context.TODO() +id := appplatform.NewDeploymentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "deploymentValue") + +if err := client.DeploymentsStartThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsStartJFR` + +```go +ctx := context.TODO() +id := appplatform.NewDeploymentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "deploymentValue") + +payload := appplatform.DiagnosticParameters{ + // ... +} + + +if err := client.DeploymentsStartJFRThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsStop` + +```go +ctx := context.TODO() +id := appplatform.NewDeploymentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "deploymentValue") + +if err := client.DeploymentsStopThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.DeploymentsUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewDeploymentID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "appValue", "deploymentValue") + +payload := appplatform.DeploymentResource{ + // ... +} + + +if err := client.DeploymentsUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.DevToolPortalsCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewDevToolPortalID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "devToolPortalValue") + +payload := appplatform.DevToolPortalResource{ + // ... +} + + +if err := client.DevToolPortalsCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.DevToolPortalsDelete` + +```go +ctx := context.TODO() +id := appplatform.NewDevToolPortalID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "devToolPortalValue") + +if err := client.DevToolPortalsDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.DevToolPortalsGet` + +```go +ctx := context.TODO() +id := appplatform.NewDevToolPortalID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "devToolPortalValue") + +read, err := client.DevToolPortalsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.DevToolPortalsList` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.DevToolPortalsList(ctx, id)` can be used to do batched pagination +items, err := client.DevToolPortalsListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.EurekaServersGet` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +read, err := client.EurekaServersGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.EurekaServersList` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +read, err := client.EurekaServersList(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.EurekaServersUpdatePatch` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +payload := appplatform.EurekaServerResource{ + // ... +} + + +if err := client.EurekaServersUpdatePatchThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.EurekaServersUpdatePut` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +payload := appplatform.EurekaServerResource{ + // ... +} + + +if err := client.EurekaServersUpdatePutThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.GatewayCustomDomainsCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewGatewayDomainID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue", "domainValue") + +payload := appplatform.GatewayCustomDomainResource{ + // ... +} + + +if err := client.GatewayCustomDomainsCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.GatewayCustomDomainsDelete` + +```go +ctx := context.TODO() +id := appplatform.NewGatewayDomainID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue", "domainValue") + +if err := client.GatewayCustomDomainsDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.GatewayCustomDomainsGet` + +```go +ctx := context.TODO() +id := appplatform.NewGatewayDomainID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue", "domainValue") + +read, err := client.GatewayCustomDomainsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.GatewayCustomDomainsList` + +```go +ctx := context.TODO() +id := appplatform.NewGatewayID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue") + +// alternatively `client.GatewayCustomDomainsList(ctx, id)` can be used to do batched pagination +items, err := client.GatewayCustomDomainsListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.GatewayRouteConfigsCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewRouteConfigID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue", "routeConfigValue") + +payload := appplatform.GatewayRouteConfigResource{ + // ... +} + + +if err := client.GatewayRouteConfigsCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.GatewayRouteConfigsDelete` + +```go +ctx := context.TODO() +id := appplatform.NewRouteConfigID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue", "routeConfigValue") + +if err := client.GatewayRouteConfigsDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.GatewayRouteConfigsGet` + +```go +ctx := context.TODO() +id := appplatform.NewRouteConfigID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue", "routeConfigValue") + +read, err := client.GatewayRouteConfigsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.GatewayRouteConfigsList` + +```go +ctx := context.TODO() +id := appplatform.NewGatewayID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue") + +// alternatively `client.GatewayRouteConfigsList(ctx, id)` can be used to do batched pagination +items, err := client.GatewayRouteConfigsListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.GatewaysCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewGatewayID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue") + +payload := appplatform.GatewayResource{ + // ... +} + + +if err := client.GatewaysCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.GatewaysDelete` + +```go +ctx := context.TODO() +id := appplatform.NewGatewayID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue") + +if err := client.GatewaysDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.GatewaysGet` + +```go +ctx := context.TODO() +id := appplatform.NewGatewayID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue") + +read, err := client.GatewaysGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.GatewaysList` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.GatewaysList(ctx, id)` can be used to do batched pagination +items, err := client.GatewaysListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.GatewaysListEnvSecrets` + +```go +ctx := context.TODO() +id := appplatform.NewGatewayID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue") + +read, err := client.GatewaysListEnvSecrets(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.GatewaysRestart` + +```go +ctx := context.TODO() +id := appplatform.NewGatewayID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue") + +if err := client.GatewaysRestartThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.GatewaysUpdateCapacity` + +```go +ctx := context.TODO() +id := appplatform.NewGatewayID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue") + +payload := appplatform.SkuObject{ + // ... +} + + +if err := client.GatewaysUpdateCapacityThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.GatewaysValidateDomain` + +```go +ctx := context.TODO() +id := appplatform.NewGatewayID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "gatewayValue") + +payload := appplatform.CustomDomainValidatePayload{ + // ... +} + + +read, err := client.GatewaysValidateDomain(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.MonitoringSettingsGet` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +read, err := client.MonitoringSettingsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.MonitoringSettingsUpdatePatch` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +payload := appplatform.MonitoringSettingResource{ + // ... +} + + +if err := client.MonitoringSettingsUpdatePatchThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.MonitoringSettingsUpdatePut` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +payload := appplatform.MonitoringSettingResource{ + // ... +} + + +if err := client.MonitoringSettingsUpdatePutThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.PredefinedAcceleratorsDisable` + +```go +ctx := context.TODO() +id := appplatform.NewPredefinedAcceleratorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationAcceleratorValue", "predefinedAcceleratorValue") + +if err := client.PredefinedAcceleratorsDisableThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.PredefinedAcceleratorsEnable` + +```go +ctx := context.TODO() +id := appplatform.NewPredefinedAcceleratorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationAcceleratorValue", "predefinedAcceleratorValue") + +if err := client.PredefinedAcceleratorsEnableThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.PredefinedAcceleratorsGet` + +```go +ctx := context.TODO() +id := appplatform.NewPredefinedAcceleratorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationAcceleratorValue", "predefinedAcceleratorValue") + +read, err := client.PredefinedAcceleratorsGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.PredefinedAcceleratorsList` + +```go +ctx := context.TODO() +id := appplatform.NewApplicationAcceleratorID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "applicationAcceleratorValue") + +// alternatively `client.PredefinedAcceleratorsList(ctx, id)` can be used to do batched pagination +items, err := client.PredefinedAcceleratorsListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.RuntimeVersionsListRuntimeVersions` + +```go +ctx := context.TODO() + + +read, err := client.RuntimeVersionsListRuntimeVersions(ctx) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ServiceRegistriesCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewServiceRegistryID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "serviceRegistryValue") + +if err := client.ServiceRegistriesCreateOrUpdateThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ServiceRegistriesDelete` + +```go +ctx := context.TODO() +id := appplatform.NewServiceRegistryID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "serviceRegistryValue") + +if err := client.ServiceRegistriesDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ServiceRegistriesGet` + +```go +ctx := context.TODO() +id := appplatform.NewServiceRegistryID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "serviceRegistryValue") + +read, err := client.ServiceRegistriesGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ServiceRegistriesList` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.ServiceRegistriesList(ctx, id)` can be used to do batched pagination +items, err := client.ServiceRegistriesListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.ServicesCheckNameAvailability` + +```go +ctx := context.TODO() +id := appplatform.NewLocationID("12345678-1234-9876-4563-123456789012", "locationValue") + +payload := appplatform.NameAvailabilityParameters{ + // ... +} + + +read, err := client.ServicesCheckNameAvailability(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ServicesCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +payload := appplatform.ServiceResource{ + // ... +} + + +if err := client.ServicesCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ServicesDelete` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +if err := client.ServicesDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ServicesDisableApmGlobally` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +payload := appplatform.ApmReference{ + // ... +} + + +if err := client.ServicesDisableApmGloballyThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ServicesDisableTestEndpoint` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +read, err := client.ServicesDisableTestEndpoint(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ServicesEnableApmGlobally` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +payload := appplatform.ApmReference{ + // ... +} + + +if err := client.ServicesEnableApmGloballyThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ServicesEnableTestEndpoint` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +read, err := client.ServicesEnableTestEndpoint(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ServicesFlushVnetDnsSetting` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +if err := client.ServicesFlushVnetDnsSettingThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ServicesGet` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +read, err := client.ServicesGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ServicesList` + +```go +ctx := context.TODO() +id := appplatform.NewResourceGroupID("12345678-1234-9876-4563-123456789012", "example-resource-group") + +// alternatively `client.ServicesList(ctx, id)` can be used to do batched pagination +items, err := client.ServicesListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.ServicesListBySubscription` + +```go +ctx := context.TODO() +id := appplatform.NewSubscriptionID("12345678-1234-9876-4563-123456789012") + +// alternatively `client.ServicesListBySubscription(ctx, id)` can be used to do batched pagination +items, err := client.ServicesListBySubscriptionComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.ServicesListGloballyEnabledApms` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +read, err := client.ServicesListGloballyEnabledApms(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ServicesListSupportedApmTypes` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.ServicesListSupportedApmTypes(ctx, id)` can be used to do batched pagination +items, err := client.ServicesListSupportedApmTypesComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.ServicesListTestKeys` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +read, err := client.ServicesListTestKeys(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ServicesRegenerateTestKey` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +payload := appplatform.RegenerateTestKeyRequestPayload{ + // ... +} + + +read, err := client.ServicesRegenerateTestKey(ctx, id, payload) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.ServicesStart` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +if err := client.ServicesStartThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ServicesStop` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +if err := client.ServicesStopThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.ServicesUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +payload := appplatform.ServiceResource{ + // ... +} + + +if err := client.ServicesUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.SkusList` + +```go +ctx := context.TODO() +id := appplatform.NewSubscriptionID("12345678-1234-9876-4563-123456789012") + +// alternatively `client.SkusList(ctx, id)` can be used to do batched pagination +items, err := client.SkusListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `AppPlatformClient.StoragesCreateOrUpdate` + +```go +ctx := context.TODO() +id := appplatform.NewStorageID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "storageValue") + +payload := appplatform.StorageResource{ + // ... +} + + +if err := client.StoragesCreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.StoragesDelete` + +```go +ctx := context.TODO() +id := appplatform.NewStorageID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "storageValue") + +if err := client.StoragesDeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `AppPlatformClient.StoragesGet` + +```go +ctx := context.TODO() +id := appplatform.NewStorageID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue", "storageValue") + +read, err := client.StoragesGet(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `AppPlatformClient.StoragesList` + +```go +ctx := context.TODO() +id := appplatform.NewSpringID("12345678-1234-9876-4563-123456789012", "example-resource-group", "springValue") + +// alternatively `client.StoragesList(ctx, id)` can be used to do batched pagination +items, err := client.StoragesListComplete(ctx, id) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/client.go new file mode 100644 index 000000000000..c09305ed3710 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/client.go @@ -0,0 +1,26 @@ +package appplatform + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AppPlatformClient struct { + Client *resourcemanager.Client +} + +func NewAppPlatformClientWithBaseURI(sdkApi sdkEnv.Api) (*AppPlatformClient, error) { + client, err := resourcemanager.NewResourceManagerClient(sdkApi, "appplatform", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating AppPlatformClient: %+v", err) + } + + return &AppPlatformClient{ + Client: client, + }, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/constants.go new file mode 100644 index 000000000000..1f60d8b43bac --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/constants.go @@ -0,0 +1,2465 @@ +package appplatform + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalProvisioningState string + +const ( + ApiPortalProvisioningStateCreating ApiPortalProvisioningState = "Creating" + ApiPortalProvisioningStateDeleting ApiPortalProvisioningState = "Deleting" + ApiPortalProvisioningStateFailed ApiPortalProvisioningState = "Failed" + ApiPortalProvisioningStateSucceeded ApiPortalProvisioningState = "Succeeded" + ApiPortalProvisioningStateUpdating ApiPortalProvisioningState = "Updating" +) + +func PossibleValuesForApiPortalProvisioningState() []string { + return []string{ + string(ApiPortalProvisioningStateCreating), + string(ApiPortalProvisioningStateDeleting), + string(ApiPortalProvisioningStateFailed), + string(ApiPortalProvisioningStateSucceeded), + string(ApiPortalProvisioningStateUpdating), + } +} + +func (s *ApiPortalProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseApiPortalProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseApiPortalProvisioningState(input string) (*ApiPortalProvisioningState, error) { + vals := map[string]ApiPortalProvisioningState{ + "creating": ApiPortalProvisioningStateCreating, + "deleting": ApiPortalProvisioningStateDeleting, + "failed": ApiPortalProvisioningStateFailed, + "succeeded": ApiPortalProvisioningStateSucceeded, + "updating": ApiPortalProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ApiPortalProvisioningState(input) + return &out, nil +} + +type ApmProvisioningState string + +const ( + ApmProvisioningStateCanceled ApmProvisioningState = "Canceled" + ApmProvisioningStateCreating ApmProvisioningState = "Creating" + ApmProvisioningStateDeleting ApmProvisioningState = "Deleting" + ApmProvisioningStateFailed ApmProvisioningState = "Failed" + ApmProvisioningStateSucceeded ApmProvisioningState = "Succeeded" + ApmProvisioningStateUpdating ApmProvisioningState = "Updating" +) + +func PossibleValuesForApmProvisioningState() []string { + return []string{ + string(ApmProvisioningStateCanceled), + string(ApmProvisioningStateCreating), + string(ApmProvisioningStateDeleting), + string(ApmProvisioningStateFailed), + string(ApmProvisioningStateSucceeded), + string(ApmProvisioningStateUpdating), + } +} + +func (s *ApmProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseApmProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseApmProvisioningState(input string) (*ApmProvisioningState, error) { + vals := map[string]ApmProvisioningState{ + "canceled": ApmProvisioningStateCanceled, + "creating": ApmProvisioningStateCreating, + "deleting": ApmProvisioningStateDeleting, + "failed": ApmProvisioningStateFailed, + "succeeded": ApmProvisioningStateSucceeded, + "updating": ApmProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ApmProvisioningState(input) + return &out, nil +} + +type ApmType string + +const ( + ApmTypeAppDynamics ApmType = "AppDynamics" + ApmTypeApplicationInsights ApmType = "ApplicationInsights" + ApmTypeDynatrace ApmType = "Dynatrace" + ApmTypeElasticAPM ApmType = "ElasticAPM" + ApmTypeNewRelic ApmType = "NewRelic" +) + +func PossibleValuesForApmType() []string { + return []string{ + string(ApmTypeAppDynamics), + string(ApmTypeApplicationInsights), + string(ApmTypeDynatrace), + string(ApmTypeElasticAPM), + string(ApmTypeNewRelic), + } +} + +func (s *ApmType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseApmType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseApmType(input string) (*ApmType, error) { + vals := map[string]ApmType{ + "appdynamics": ApmTypeAppDynamics, + "applicationinsights": ApmTypeApplicationInsights, + "dynatrace": ApmTypeDynatrace, + "elasticapm": ApmTypeElasticAPM, + "newrelic": ApmTypeNewRelic, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ApmType(input) + return &out, nil +} + +type AppResourceProvisioningState string + +const ( + AppResourceProvisioningStateCreating AppResourceProvisioningState = "Creating" + AppResourceProvisioningStateDeleting AppResourceProvisioningState = "Deleting" + AppResourceProvisioningStateFailed AppResourceProvisioningState = "Failed" + AppResourceProvisioningStateSucceeded AppResourceProvisioningState = "Succeeded" + AppResourceProvisioningStateUpdating AppResourceProvisioningState = "Updating" +) + +func PossibleValuesForAppResourceProvisioningState() []string { + return []string{ + string(AppResourceProvisioningStateCreating), + string(AppResourceProvisioningStateDeleting), + string(AppResourceProvisioningStateFailed), + string(AppResourceProvisioningStateSucceeded), + string(AppResourceProvisioningStateUpdating), + } +} + +func (s *AppResourceProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseAppResourceProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseAppResourceProvisioningState(input string) (*AppResourceProvisioningState, error) { + vals := map[string]AppResourceProvisioningState{ + "creating": AppResourceProvisioningStateCreating, + "deleting": AppResourceProvisioningStateDeleting, + "failed": AppResourceProvisioningStateFailed, + "succeeded": AppResourceProvisioningStateSucceeded, + "updating": AppResourceProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := AppResourceProvisioningState(input) + return &out, nil +} + +type ApplicationAcceleratorProvisioningState string + +const ( + ApplicationAcceleratorProvisioningStateCreating ApplicationAcceleratorProvisioningState = "Creating" + ApplicationAcceleratorProvisioningStateDeleting ApplicationAcceleratorProvisioningState = "Deleting" + ApplicationAcceleratorProvisioningStateFailed ApplicationAcceleratorProvisioningState = "Failed" + ApplicationAcceleratorProvisioningStateSucceeded ApplicationAcceleratorProvisioningState = "Succeeded" + ApplicationAcceleratorProvisioningStateUpdating ApplicationAcceleratorProvisioningState = "Updating" +) + +func PossibleValuesForApplicationAcceleratorProvisioningState() []string { + return []string{ + string(ApplicationAcceleratorProvisioningStateCreating), + string(ApplicationAcceleratorProvisioningStateDeleting), + string(ApplicationAcceleratorProvisioningStateFailed), + string(ApplicationAcceleratorProvisioningStateSucceeded), + string(ApplicationAcceleratorProvisioningStateUpdating), + } +} + +func (s *ApplicationAcceleratorProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseApplicationAcceleratorProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseApplicationAcceleratorProvisioningState(input string) (*ApplicationAcceleratorProvisioningState, error) { + vals := map[string]ApplicationAcceleratorProvisioningState{ + "creating": ApplicationAcceleratorProvisioningStateCreating, + "deleting": ApplicationAcceleratorProvisioningStateDeleting, + "failed": ApplicationAcceleratorProvisioningStateFailed, + "succeeded": ApplicationAcceleratorProvisioningStateSucceeded, + "updating": ApplicationAcceleratorProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ApplicationAcceleratorProvisioningState(input) + return &out, nil +} + +type ApplicationLiveViewProvisioningState string + +const ( + ApplicationLiveViewProvisioningStateCanceled ApplicationLiveViewProvisioningState = "Canceled" + ApplicationLiveViewProvisioningStateCreating ApplicationLiveViewProvisioningState = "Creating" + ApplicationLiveViewProvisioningStateDeleting ApplicationLiveViewProvisioningState = "Deleting" + ApplicationLiveViewProvisioningStateFailed ApplicationLiveViewProvisioningState = "Failed" + ApplicationLiveViewProvisioningStateSucceeded ApplicationLiveViewProvisioningState = "Succeeded" + ApplicationLiveViewProvisioningStateUpdating ApplicationLiveViewProvisioningState = "Updating" +) + +func PossibleValuesForApplicationLiveViewProvisioningState() []string { + return []string{ + string(ApplicationLiveViewProvisioningStateCanceled), + string(ApplicationLiveViewProvisioningStateCreating), + string(ApplicationLiveViewProvisioningStateDeleting), + string(ApplicationLiveViewProvisioningStateFailed), + string(ApplicationLiveViewProvisioningStateSucceeded), + string(ApplicationLiveViewProvisioningStateUpdating), + } +} + +func (s *ApplicationLiveViewProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseApplicationLiveViewProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseApplicationLiveViewProvisioningState(input string) (*ApplicationLiveViewProvisioningState, error) { + vals := map[string]ApplicationLiveViewProvisioningState{ + "canceled": ApplicationLiveViewProvisioningStateCanceled, + "creating": ApplicationLiveViewProvisioningStateCreating, + "deleting": ApplicationLiveViewProvisioningStateDeleting, + "failed": ApplicationLiveViewProvisioningStateFailed, + "succeeded": ApplicationLiveViewProvisioningStateSucceeded, + "updating": ApplicationLiveViewProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ApplicationLiveViewProvisioningState(input) + return &out, nil +} + +type BackendProtocol string + +const ( + BackendProtocolDefault BackendProtocol = "Default" + BackendProtocolGRPC BackendProtocol = "GRPC" +) + +func PossibleValuesForBackendProtocol() []string { + return []string{ + string(BackendProtocolDefault), + string(BackendProtocolGRPC), + } +} + +func (s *BackendProtocol) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseBackendProtocol(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseBackendProtocol(input string) (*BackendProtocol, error) { + vals := map[string]BackendProtocol{ + "default": BackendProtocolDefault, + "grpc": BackendProtocolGRPC, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := BackendProtocol(input) + return &out, nil +} + +type BindingType string + +const ( + BindingTypeApacheSkyWalking BindingType = "ApacheSkyWalking" + BindingTypeAppDynamics BindingType = "AppDynamics" + BindingTypeApplicationInsights BindingType = "ApplicationInsights" + BindingTypeCACertificates BindingType = "CACertificates" + BindingTypeDynatrace BindingType = "Dynatrace" + BindingTypeElasticAPM BindingType = "ElasticAPM" + BindingTypeNewRelic BindingType = "NewRelic" +) + +func PossibleValuesForBindingType() []string { + return []string{ + string(BindingTypeApacheSkyWalking), + string(BindingTypeAppDynamics), + string(BindingTypeApplicationInsights), + string(BindingTypeCACertificates), + string(BindingTypeDynatrace), + string(BindingTypeElasticAPM), + string(BindingTypeNewRelic), + } +} + +func (s *BindingType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseBindingType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseBindingType(input string) (*BindingType, error) { + vals := map[string]BindingType{ + "apacheskywalking": BindingTypeApacheSkyWalking, + "appdynamics": BindingTypeAppDynamics, + "applicationinsights": BindingTypeApplicationInsights, + "cacertificates": BindingTypeCACertificates, + "dynatrace": BindingTypeDynatrace, + "elasticapm": BindingTypeElasticAPM, + "newrelic": BindingTypeNewRelic, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := BindingType(input) + return &out, nil +} + +type BuildProvisioningState string + +const ( + BuildProvisioningStateCreating BuildProvisioningState = "Creating" + BuildProvisioningStateDeleting BuildProvisioningState = "Deleting" + BuildProvisioningStateFailed BuildProvisioningState = "Failed" + BuildProvisioningStateSucceeded BuildProvisioningState = "Succeeded" + BuildProvisioningStateUpdating BuildProvisioningState = "Updating" +) + +func PossibleValuesForBuildProvisioningState() []string { + return []string{ + string(BuildProvisioningStateCreating), + string(BuildProvisioningStateDeleting), + string(BuildProvisioningStateFailed), + string(BuildProvisioningStateSucceeded), + string(BuildProvisioningStateUpdating), + } +} + +func (s *BuildProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseBuildProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseBuildProvisioningState(input string) (*BuildProvisioningState, error) { + vals := map[string]BuildProvisioningState{ + "creating": BuildProvisioningStateCreating, + "deleting": BuildProvisioningStateDeleting, + "failed": BuildProvisioningStateFailed, + "succeeded": BuildProvisioningStateSucceeded, + "updating": BuildProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := BuildProvisioningState(input) + return &out, nil +} + +type BuildResultProvisioningState string + +const ( + BuildResultProvisioningStateBuilding BuildResultProvisioningState = "Building" + BuildResultProvisioningStateDeleting BuildResultProvisioningState = "Deleting" + BuildResultProvisioningStateFailed BuildResultProvisioningState = "Failed" + BuildResultProvisioningStateQueuing BuildResultProvisioningState = "Queuing" + BuildResultProvisioningStateSucceeded BuildResultProvisioningState = "Succeeded" +) + +func PossibleValuesForBuildResultProvisioningState() []string { + return []string{ + string(BuildResultProvisioningStateBuilding), + string(BuildResultProvisioningStateDeleting), + string(BuildResultProvisioningStateFailed), + string(BuildResultProvisioningStateQueuing), + string(BuildResultProvisioningStateSucceeded), + } +} + +func (s *BuildResultProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseBuildResultProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseBuildResultProvisioningState(input string) (*BuildResultProvisioningState, error) { + vals := map[string]BuildResultProvisioningState{ + "building": BuildResultProvisioningStateBuilding, + "deleting": BuildResultProvisioningStateDeleting, + "failed": BuildResultProvisioningStateFailed, + "queuing": BuildResultProvisioningStateQueuing, + "succeeded": BuildResultProvisioningStateSucceeded, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := BuildResultProvisioningState(input) + return &out, nil +} + +type BuildServiceProvisioningState string + +const ( + BuildServiceProvisioningStateCreating BuildServiceProvisioningState = "Creating" + BuildServiceProvisioningStateDeleting BuildServiceProvisioningState = "Deleting" + BuildServiceProvisioningStateFailed BuildServiceProvisioningState = "Failed" + BuildServiceProvisioningStateSucceeded BuildServiceProvisioningState = "Succeeded" + BuildServiceProvisioningStateUpdating BuildServiceProvisioningState = "Updating" +) + +func PossibleValuesForBuildServiceProvisioningState() []string { + return []string{ + string(BuildServiceProvisioningStateCreating), + string(BuildServiceProvisioningStateDeleting), + string(BuildServiceProvisioningStateFailed), + string(BuildServiceProvisioningStateSucceeded), + string(BuildServiceProvisioningStateUpdating), + } +} + +func (s *BuildServiceProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseBuildServiceProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseBuildServiceProvisioningState(input string) (*BuildServiceProvisioningState, error) { + vals := map[string]BuildServiceProvisioningState{ + "creating": BuildServiceProvisioningStateCreating, + "deleting": BuildServiceProvisioningStateDeleting, + "failed": BuildServiceProvisioningStateFailed, + "succeeded": BuildServiceProvisioningStateSucceeded, + "updating": BuildServiceProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := BuildServiceProvisioningState(input) + return &out, nil +} + +type BuilderProvisioningState string + +const ( + BuilderProvisioningStateCreating BuilderProvisioningState = "Creating" + BuilderProvisioningStateDeleting BuilderProvisioningState = "Deleting" + BuilderProvisioningStateFailed BuilderProvisioningState = "Failed" + BuilderProvisioningStateSucceeded BuilderProvisioningState = "Succeeded" + BuilderProvisioningStateUpdating BuilderProvisioningState = "Updating" +) + +func PossibleValuesForBuilderProvisioningState() []string { + return []string{ + string(BuilderProvisioningStateCreating), + string(BuilderProvisioningStateDeleting), + string(BuilderProvisioningStateFailed), + string(BuilderProvisioningStateSucceeded), + string(BuilderProvisioningStateUpdating), + } +} + +func (s *BuilderProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseBuilderProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseBuilderProvisioningState(input string) (*BuilderProvisioningState, error) { + vals := map[string]BuilderProvisioningState{ + "creating": BuilderProvisioningStateCreating, + "deleting": BuilderProvisioningStateDeleting, + "failed": BuilderProvisioningStateFailed, + "succeeded": BuilderProvisioningStateSucceeded, + "updating": BuilderProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := BuilderProvisioningState(input) + return &out, nil +} + +type BuildpackBindingProvisioningState string + +const ( + BuildpackBindingProvisioningStateCreating BuildpackBindingProvisioningState = "Creating" + BuildpackBindingProvisioningStateDeleting BuildpackBindingProvisioningState = "Deleting" + BuildpackBindingProvisioningStateFailed BuildpackBindingProvisioningState = "Failed" + BuildpackBindingProvisioningStateSucceeded BuildpackBindingProvisioningState = "Succeeded" + BuildpackBindingProvisioningStateUpdating BuildpackBindingProvisioningState = "Updating" +) + +func PossibleValuesForBuildpackBindingProvisioningState() []string { + return []string{ + string(BuildpackBindingProvisioningStateCreating), + string(BuildpackBindingProvisioningStateDeleting), + string(BuildpackBindingProvisioningStateFailed), + string(BuildpackBindingProvisioningStateSucceeded), + string(BuildpackBindingProvisioningStateUpdating), + } +} + +func (s *BuildpackBindingProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseBuildpackBindingProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseBuildpackBindingProvisioningState(input string) (*BuildpackBindingProvisioningState, error) { + vals := map[string]BuildpackBindingProvisioningState{ + "creating": BuildpackBindingProvisioningStateCreating, + "deleting": BuildpackBindingProvisioningStateDeleting, + "failed": BuildpackBindingProvisioningStateFailed, + "succeeded": BuildpackBindingProvisioningStateSucceeded, + "updating": BuildpackBindingProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := BuildpackBindingProvisioningState(input) + return &out, nil +} + +type CertificateResourceProvisioningState string + +const ( + CertificateResourceProvisioningStateCreating CertificateResourceProvisioningState = "Creating" + CertificateResourceProvisioningStateDeleting CertificateResourceProvisioningState = "Deleting" + CertificateResourceProvisioningStateFailed CertificateResourceProvisioningState = "Failed" + CertificateResourceProvisioningStateSucceeded CertificateResourceProvisioningState = "Succeeded" + CertificateResourceProvisioningStateUpdating CertificateResourceProvisioningState = "Updating" +) + +func PossibleValuesForCertificateResourceProvisioningState() []string { + return []string{ + string(CertificateResourceProvisioningStateCreating), + string(CertificateResourceProvisioningStateDeleting), + string(CertificateResourceProvisioningStateFailed), + string(CertificateResourceProvisioningStateSucceeded), + string(CertificateResourceProvisioningStateUpdating), + } +} + +func (s *CertificateResourceProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseCertificateResourceProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseCertificateResourceProvisioningState(input string) (*CertificateResourceProvisioningState, error) { + vals := map[string]CertificateResourceProvisioningState{ + "creating": CertificateResourceProvisioningStateCreating, + "deleting": CertificateResourceProvisioningStateDeleting, + "failed": CertificateResourceProvisioningStateFailed, + "succeeded": CertificateResourceProvisioningStateSucceeded, + "updating": CertificateResourceProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := CertificateResourceProvisioningState(input) + return &out, nil +} + +type ConfigServerEnabledState string + +const ( + ConfigServerEnabledStateDisabled ConfigServerEnabledState = "Disabled" + ConfigServerEnabledStateEnabled ConfigServerEnabledState = "Enabled" +) + +func PossibleValuesForConfigServerEnabledState() []string { + return []string{ + string(ConfigServerEnabledStateDisabled), + string(ConfigServerEnabledStateEnabled), + } +} + +func (s *ConfigServerEnabledState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseConfigServerEnabledState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseConfigServerEnabledState(input string) (*ConfigServerEnabledState, error) { + vals := map[string]ConfigServerEnabledState{ + "disabled": ConfigServerEnabledStateDisabled, + "enabled": ConfigServerEnabledStateEnabled, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ConfigServerEnabledState(input) + return &out, nil +} + +type ConfigServerState string + +const ( + ConfigServerStateDeleted ConfigServerState = "Deleted" + ConfigServerStateFailed ConfigServerState = "Failed" + ConfigServerStateNotAvailable ConfigServerState = "NotAvailable" + ConfigServerStateSucceeded ConfigServerState = "Succeeded" + ConfigServerStateUpdating ConfigServerState = "Updating" +) + +func PossibleValuesForConfigServerState() []string { + return []string{ + string(ConfigServerStateDeleted), + string(ConfigServerStateFailed), + string(ConfigServerStateNotAvailable), + string(ConfigServerStateSucceeded), + string(ConfigServerStateUpdating), + } +} + +func (s *ConfigServerState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseConfigServerState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseConfigServerState(input string) (*ConfigServerState, error) { + vals := map[string]ConfigServerState{ + "deleted": ConfigServerStateDeleted, + "failed": ConfigServerStateFailed, + "notavailable": ConfigServerStateNotAvailable, + "succeeded": ConfigServerStateSucceeded, + "updating": ConfigServerStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ConfigServerState(input) + return &out, nil +} + +type ConfigurationServiceGeneration string + +const ( + ConfigurationServiceGenerationGenOne ConfigurationServiceGeneration = "Gen1" + ConfigurationServiceGenerationGenTwo ConfigurationServiceGeneration = "Gen2" +) + +func PossibleValuesForConfigurationServiceGeneration() []string { + return []string{ + string(ConfigurationServiceGenerationGenOne), + string(ConfigurationServiceGenerationGenTwo), + } +} + +func (s *ConfigurationServiceGeneration) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseConfigurationServiceGeneration(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseConfigurationServiceGeneration(input string) (*ConfigurationServiceGeneration, error) { + vals := map[string]ConfigurationServiceGeneration{ + "gen1": ConfigurationServiceGenerationGenOne, + "gen2": ConfigurationServiceGenerationGenTwo, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ConfigurationServiceGeneration(input) + return &out, nil +} + +type ConfigurationServiceProvisioningState string + +const ( + ConfigurationServiceProvisioningStateCreating ConfigurationServiceProvisioningState = "Creating" + ConfigurationServiceProvisioningStateDeleting ConfigurationServiceProvisioningState = "Deleting" + ConfigurationServiceProvisioningStateFailed ConfigurationServiceProvisioningState = "Failed" + ConfigurationServiceProvisioningStateSucceeded ConfigurationServiceProvisioningState = "Succeeded" + ConfigurationServiceProvisioningStateUpdating ConfigurationServiceProvisioningState = "Updating" +) + +func PossibleValuesForConfigurationServiceProvisioningState() []string { + return []string{ + string(ConfigurationServiceProvisioningStateCreating), + string(ConfigurationServiceProvisioningStateDeleting), + string(ConfigurationServiceProvisioningStateFailed), + string(ConfigurationServiceProvisioningStateSucceeded), + string(ConfigurationServiceProvisioningStateUpdating), + } +} + +func (s *ConfigurationServiceProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseConfigurationServiceProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseConfigurationServiceProvisioningState(input string) (*ConfigurationServiceProvisioningState, error) { + vals := map[string]ConfigurationServiceProvisioningState{ + "creating": ConfigurationServiceProvisioningStateCreating, + "deleting": ConfigurationServiceProvisioningStateDeleting, + "failed": ConfigurationServiceProvisioningStateFailed, + "succeeded": ConfigurationServiceProvisioningStateSucceeded, + "updating": ConfigurationServiceProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ConfigurationServiceProvisioningState(input) + return &out, nil +} + +type ContainerRegistryProvisioningState string + +const ( + ContainerRegistryProvisioningStateCanceled ContainerRegistryProvisioningState = "Canceled" + ContainerRegistryProvisioningStateCreating ContainerRegistryProvisioningState = "Creating" + ContainerRegistryProvisioningStateDeleting ContainerRegistryProvisioningState = "Deleting" + ContainerRegistryProvisioningStateFailed ContainerRegistryProvisioningState = "Failed" + ContainerRegistryProvisioningStateSucceeded ContainerRegistryProvisioningState = "Succeeded" + ContainerRegistryProvisioningStateUpdating ContainerRegistryProvisioningState = "Updating" +) + +func PossibleValuesForContainerRegistryProvisioningState() []string { + return []string{ + string(ContainerRegistryProvisioningStateCanceled), + string(ContainerRegistryProvisioningStateCreating), + string(ContainerRegistryProvisioningStateDeleting), + string(ContainerRegistryProvisioningStateFailed), + string(ContainerRegistryProvisioningStateSucceeded), + string(ContainerRegistryProvisioningStateUpdating), + } +} + +func (s *ContainerRegistryProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseContainerRegistryProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseContainerRegistryProvisioningState(input string) (*ContainerRegistryProvisioningState, error) { + vals := map[string]ContainerRegistryProvisioningState{ + "canceled": ContainerRegistryProvisioningStateCanceled, + "creating": ContainerRegistryProvisioningStateCreating, + "deleting": ContainerRegistryProvisioningStateDeleting, + "failed": ContainerRegistryProvisioningStateFailed, + "succeeded": ContainerRegistryProvisioningStateSucceeded, + "updating": ContainerRegistryProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ContainerRegistryProvisioningState(input) + return &out, nil +} + +type CustomDomainResourceProvisioningState string + +const ( + CustomDomainResourceProvisioningStateCreating CustomDomainResourceProvisioningState = "Creating" + CustomDomainResourceProvisioningStateDeleting CustomDomainResourceProvisioningState = "Deleting" + CustomDomainResourceProvisioningStateFailed CustomDomainResourceProvisioningState = "Failed" + CustomDomainResourceProvisioningStateSucceeded CustomDomainResourceProvisioningState = "Succeeded" + CustomDomainResourceProvisioningStateUpdating CustomDomainResourceProvisioningState = "Updating" +) + +func PossibleValuesForCustomDomainResourceProvisioningState() []string { + return []string{ + string(CustomDomainResourceProvisioningStateCreating), + string(CustomDomainResourceProvisioningStateDeleting), + string(CustomDomainResourceProvisioningStateFailed), + string(CustomDomainResourceProvisioningStateSucceeded), + string(CustomDomainResourceProvisioningStateUpdating), + } +} + +func (s *CustomDomainResourceProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseCustomDomainResourceProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseCustomDomainResourceProvisioningState(input string) (*CustomDomainResourceProvisioningState, error) { + vals := map[string]CustomDomainResourceProvisioningState{ + "creating": CustomDomainResourceProvisioningStateCreating, + "deleting": CustomDomainResourceProvisioningStateDeleting, + "failed": CustomDomainResourceProvisioningStateFailed, + "succeeded": CustomDomainResourceProvisioningStateSucceeded, + "updating": CustomDomainResourceProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := CustomDomainResourceProvisioningState(input) + return &out, nil +} + +type CustomizedAcceleratorProvisioningState string + +const ( + CustomizedAcceleratorProvisioningStateCreating CustomizedAcceleratorProvisioningState = "Creating" + CustomizedAcceleratorProvisioningStateDeleting CustomizedAcceleratorProvisioningState = "Deleting" + CustomizedAcceleratorProvisioningStateFailed CustomizedAcceleratorProvisioningState = "Failed" + CustomizedAcceleratorProvisioningStateSucceeded CustomizedAcceleratorProvisioningState = "Succeeded" + CustomizedAcceleratorProvisioningStateUpdating CustomizedAcceleratorProvisioningState = "Updating" +) + +func PossibleValuesForCustomizedAcceleratorProvisioningState() []string { + return []string{ + string(CustomizedAcceleratorProvisioningStateCreating), + string(CustomizedAcceleratorProvisioningStateDeleting), + string(CustomizedAcceleratorProvisioningStateFailed), + string(CustomizedAcceleratorProvisioningStateSucceeded), + string(CustomizedAcceleratorProvisioningStateUpdating), + } +} + +func (s *CustomizedAcceleratorProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseCustomizedAcceleratorProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseCustomizedAcceleratorProvisioningState(input string) (*CustomizedAcceleratorProvisioningState, error) { + vals := map[string]CustomizedAcceleratorProvisioningState{ + "creating": CustomizedAcceleratorProvisioningStateCreating, + "deleting": CustomizedAcceleratorProvisioningStateDeleting, + "failed": CustomizedAcceleratorProvisioningStateFailed, + "succeeded": CustomizedAcceleratorProvisioningStateSucceeded, + "updating": CustomizedAcceleratorProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := CustomizedAcceleratorProvisioningState(input) + return &out, nil +} + +type CustomizedAcceleratorValidateResultState string + +const ( + CustomizedAcceleratorValidateResultStateInvalid CustomizedAcceleratorValidateResultState = "Invalid" + CustomizedAcceleratorValidateResultStateValid CustomizedAcceleratorValidateResultState = "Valid" +) + +func PossibleValuesForCustomizedAcceleratorValidateResultState() []string { + return []string{ + string(CustomizedAcceleratorValidateResultStateInvalid), + string(CustomizedAcceleratorValidateResultStateValid), + } +} + +func (s *CustomizedAcceleratorValidateResultState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseCustomizedAcceleratorValidateResultState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseCustomizedAcceleratorValidateResultState(input string) (*CustomizedAcceleratorValidateResultState, error) { + vals := map[string]CustomizedAcceleratorValidateResultState{ + "invalid": CustomizedAcceleratorValidateResultStateInvalid, + "valid": CustomizedAcceleratorValidateResultStateValid, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := CustomizedAcceleratorValidateResultState(input) + return &out, nil +} + +type DeploymentResourceProvisioningState string + +const ( + DeploymentResourceProvisioningStateCreating DeploymentResourceProvisioningState = "Creating" + DeploymentResourceProvisioningStateFailed DeploymentResourceProvisioningState = "Failed" + DeploymentResourceProvisioningStateSucceeded DeploymentResourceProvisioningState = "Succeeded" + DeploymentResourceProvisioningStateUpdating DeploymentResourceProvisioningState = "Updating" +) + +func PossibleValuesForDeploymentResourceProvisioningState() []string { + return []string{ + string(DeploymentResourceProvisioningStateCreating), + string(DeploymentResourceProvisioningStateFailed), + string(DeploymentResourceProvisioningStateSucceeded), + string(DeploymentResourceProvisioningStateUpdating), + } +} + +func (s *DeploymentResourceProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseDeploymentResourceProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseDeploymentResourceProvisioningState(input string) (*DeploymentResourceProvisioningState, error) { + vals := map[string]DeploymentResourceProvisioningState{ + "creating": DeploymentResourceProvisioningStateCreating, + "failed": DeploymentResourceProvisioningStateFailed, + "succeeded": DeploymentResourceProvisioningStateSucceeded, + "updating": DeploymentResourceProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := DeploymentResourceProvisioningState(input) + return &out, nil +} + +type DeploymentResourceStatus string + +const ( + DeploymentResourceStatusRunning DeploymentResourceStatus = "Running" + DeploymentResourceStatusStopped DeploymentResourceStatus = "Stopped" +) + +func PossibleValuesForDeploymentResourceStatus() []string { + return []string{ + string(DeploymentResourceStatusRunning), + string(DeploymentResourceStatusStopped), + } +} + +func (s *DeploymentResourceStatus) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseDeploymentResourceStatus(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseDeploymentResourceStatus(input string) (*DeploymentResourceStatus, error) { + vals := map[string]DeploymentResourceStatus{ + "running": DeploymentResourceStatusRunning, + "stopped": DeploymentResourceStatusStopped, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := DeploymentResourceStatus(input) + return &out, nil +} + +type DevToolPortalFeatureState string + +const ( + DevToolPortalFeatureStateDisabled DevToolPortalFeatureState = "Disabled" + DevToolPortalFeatureStateEnabled DevToolPortalFeatureState = "Enabled" +) + +func PossibleValuesForDevToolPortalFeatureState() []string { + return []string{ + string(DevToolPortalFeatureStateDisabled), + string(DevToolPortalFeatureStateEnabled), + } +} + +func (s *DevToolPortalFeatureState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseDevToolPortalFeatureState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseDevToolPortalFeatureState(input string) (*DevToolPortalFeatureState, error) { + vals := map[string]DevToolPortalFeatureState{ + "disabled": DevToolPortalFeatureStateDisabled, + "enabled": DevToolPortalFeatureStateEnabled, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := DevToolPortalFeatureState(input) + return &out, nil +} + +type DevToolPortalProvisioningState string + +const ( + DevToolPortalProvisioningStateCanceled DevToolPortalProvisioningState = "Canceled" + DevToolPortalProvisioningStateCreating DevToolPortalProvisioningState = "Creating" + DevToolPortalProvisioningStateDeleting DevToolPortalProvisioningState = "Deleting" + DevToolPortalProvisioningStateFailed DevToolPortalProvisioningState = "Failed" + DevToolPortalProvisioningStateSucceeded DevToolPortalProvisioningState = "Succeeded" + DevToolPortalProvisioningStateUpdating DevToolPortalProvisioningState = "Updating" +) + +func PossibleValuesForDevToolPortalProvisioningState() []string { + return []string{ + string(DevToolPortalProvisioningStateCanceled), + string(DevToolPortalProvisioningStateCreating), + string(DevToolPortalProvisioningStateDeleting), + string(DevToolPortalProvisioningStateFailed), + string(DevToolPortalProvisioningStateSucceeded), + string(DevToolPortalProvisioningStateUpdating), + } +} + +func (s *DevToolPortalProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseDevToolPortalProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseDevToolPortalProvisioningState(input string) (*DevToolPortalProvisioningState, error) { + vals := map[string]DevToolPortalProvisioningState{ + "canceled": DevToolPortalProvisioningStateCanceled, + "creating": DevToolPortalProvisioningStateCreating, + "deleting": DevToolPortalProvisioningStateDeleting, + "failed": DevToolPortalProvisioningStateFailed, + "succeeded": DevToolPortalProvisioningStateSucceeded, + "updating": DevToolPortalProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := DevToolPortalProvisioningState(input) + return &out, nil +} + +type EurekaServerEnabledState string + +const ( + EurekaServerEnabledStateDisabled EurekaServerEnabledState = "Disabled" + EurekaServerEnabledStateEnabled EurekaServerEnabledState = "Enabled" +) + +func PossibleValuesForEurekaServerEnabledState() []string { + return []string{ + string(EurekaServerEnabledStateDisabled), + string(EurekaServerEnabledStateEnabled), + } +} + +func (s *EurekaServerEnabledState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseEurekaServerEnabledState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseEurekaServerEnabledState(input string) (*EurekaServerEnabledState, error) { + vals := map[string]EurekaServerEnabledState{ + "disabled": EurekaServerEnabledStateDisabled, + "enabled": EurekaServerEnabledStateEnabled, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := EurekaServerEnabledState(input) + return &out, nil +} + +type EurekaServerState string + +const ( + EurekaServerStateCanceled EurekaServerState = "Canceled" + EurekaServerStateFailed EurekaServerState = "Failed" + EurekaServerStateSucceeded EurekaServerState = "Succeeded" + EurekaServerStateUpdating EurekaServerState = "Updating" +) + +func PossibleValuesForEurekaServerState() []string { + return []string{ + string(EurekaServerStateCanceled), + string(EurekaServerStateFailed), + string(EurekaServerStateSucceeded), + string(EurekaServerStateUpdating), + } +} + +func (s *EurekaServerState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseEurekaServerState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseEurekaServerState(input string) (*EurekaServerState, error) { + vals := map[string]EurekaServerState{ + "canceled": EurekaServerStateCanceled, + "failed": EurekaServerStateFailed, + "succeeded": EurekaServerStateSucceeded, + "updating": EurekaServerStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := EurekaServerState(input) + return &out, nil +} + +type Frequency string + +const ( + FrequencyWeekly Frequency = "Weekly" +) + +func PossibleValuesForFrequency() []string { + return []string{ + string(FrequencyWeekly), + } +} + +func (s *Frequency) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseFrequency(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseFrequency(input string) (*Frequency, error) { + vals := map[string]Frequency{ + "weekly": FrequencyWeekly, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Frequency(input) + return &out, nil +} + +type GatewayCertificateVerification string + +const ( + GatewayCertificateVerificationDisabled GatewayCertificateVerification = "Disabled" + GatewayCertificateVerificationEnabled GatewayCertificateVerification = "Enabled" +) + +func PossibleValuesForGatewayCertificateVerification() []string { + return []string{ + string(GatewayCertificateVerificationDisabled), + string(GatewayCertificateVerificationEnabled), + } +} + +func (s *GatewayCertificateVerification) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseGatewayCertificateVerification(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseGatewayCertificateVerification(input string) (*GatewayCertificateVerification, error) { + vals := map[string]GatewayCertificateVerification{ + "disabled": GatewayCertificateVerificationDisabled, + "enabled": GatewayCertificateVerificationEnabled, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := GatewayCertificateVerification(input) + return &out, nil +} + +type GatewayProvisioningState string + +const ( + GatewayProvisioningStateCreating GatewayProvisioningState = "Creating" + GatewayProvisioningStateDeleting GatewayProvisioningState = "Deleting" + GatewayProvisioningStateFailed GatewayProvisioningState = "Failed" + GatewayProvisioningStateSucceeded GatewayProvisioningState = "Succeeded" + GatewayProvisioningStateUpdating GatewayProvisioningState = "Updating" +) + +func PossibleValuesForGatewayProvisioningState() []string { + return []string{ + string(GatewayProvisioningStateCreating), + string(GatewayProvisioningStateDeleting), + string(GatewayProvisioningStateFailed), + string(GatewayProvisioningStateSucceeded), + string(GatewayProvisioningStateUpdating), + } +} + +func (s *GatewayProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseGatewayProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseGatewayProvisioningState(input string) (*GatewayProvisioningState, error) { + vals := map[string]GatewayProvisioningState{ + "creating": GatewayProvisioningStateCreating, + "deleting": GatewayProvisioningStateDeleting, + "failed": GatewayProvisioningStateFailed, + "succeeded": GatewayProvisioningStateSucceeded, + "updating": GatewayProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := GatewayProvisioningState(input) + return &out, nil +} + +type GatewayRouteConfigProtocol string + +const ( + GatewayRouteConfigProtocolHTTP GatewayRouteConfigProtocol = "HTTP" + GatewayRouteConfigProtocolHTTPS GatewayRouteConfigProtocol = "HTTPS" +) + +func PossibleValuesForGatewayRouteConfigProtocol() []string { + return []string{ + string(GatewayRouteConfigProtocolHTTP), + string(GatewayRouteConfigProtocolHTTPS), + } +} + +func (s *GatewayRouteConfigProtocol) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseGatewayRouteConfigProtocol(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseGatewayRouteConfigProtocol(input string) (*GatewayRouteConfigProtocol, error) { + vals := map[string]GatewayRouteConfigProtocol{ + "http": GatewayRouteConfigProtocolHTTP, + "https": GatewayRouteConfigProtocolHTTPS, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := GatewayRouteConfigProtocol(input) + return &out, nil +} + +type GitImplementation string + +const ( + GitImplementationGoNegativegit GitImplementation = "go-git" + GitImplementationLibgitTwo GitImplementation = "libgit2" +) + +func PossibleValuesForGitImplementation() []string { + return []string{ + string(GitImplementationGoNegativegit), + string(GitImplementationLibgitTwo), + } +} + +func (s *GitImplementation) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseGitImplementation(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseGitImplementation(input string) (*GitImplementation, error) { + vals := map[string]GitImplementation{ + "go-git": GitImplementationGoNegativegit, + "libgit2": GitImplementationLibgitTwo, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := GitImplementation(input) + return &out, nil +} + +type HTTPSchemeType string + +const ( + HTTPSchemeTypeHTTP HTTPSchemeType = "HTTP" + HTTPSchemeTypeHTTPS HTTPSchemeType = "HTTPS" +) + +func PossibleValuesForHTTPSchemeType() []string { + return []string{ + string(HTTPSchemeTypeHTTP), + string(HTTPSchemeTypeHTTPS), + } +} + +func (s *HTTPSchemeType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseHTTPSchemeType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseHTTPSchemeType(input string) (*HTTPSchemeType, error) { + vals := map[string]HTTPSchemeType{ + "http": HTTPSchemeTypeHTTP, + "https": HTTPSchemeTypeHTTPS, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := HTTPSchemeType(input) + return &out, nil +} + +type KPackBuildStageProvisioningState string + +const ( + KPackBuildStageProvisioningStateFailed KPackBuildStageProvisioningState = "Failed" + KPackBuildStageProvisioningStateNotStarted KPackBuildStageProvisioningState = "NotStarted" + KPackBuildStageProvisioningStateRunning KPackBuildStageProvisioningState = "Running" + KPackBuildStageProvisioningStateSucceeded KPackBuildStageProvisioningState = "Succeeded" +) + +func PossibleValuesForKPackBuildStageProvisioningState() []string { + return []string{ + string(KPackBuildStageProvisioningStateFailed), + string(KPackBuildStageProvisioningStateNotStarted), + string(KPackBuildStageProvisioningStateRunning), + string(KPackBuildStageProvisioningStateSucceeded), + } +} + +func (s *KPackBuildStageProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseKPackBuildStageProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseKPackBuildStageProvisioningState(input string) (*KPackBuildStageProvisioningState, error) { + vals := map[string]KPackBuildStageProvisioningState{ + "failed": KPackBuildStageProvisioningStateFailed, + "notstarted": KPackBuildStageProvisioningStateNotStarted, + "running": KPackBuildStageProvisioningStateRunning, + "succeeded": KPackBuildStageProvisioningStateSucceeded, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := KPackBuildStageProvisioningState(input) + return &out, nil +} + +type MonitoringSettingState string + +const ( + MonitoringSettingStateFailed MonitoringSettingState = "Failed" + MonitoringSettingStateNotAvailable MonitoringSettingState = "NotAvailable" + MonitoringSettingStateSucceeded MonitoringSettingState = "Succeeded" + MonitoringSettingStateUpdating MonitoringSettingState = "Updating" +) + +func PossibleValuesForMonitoringSettingState() []string { + return []string{ + string(MonitoringSettingStateFailed), + string(MonitoringSettingStateNotAvailable), + string(MonitoringSettingStateSucceeded), + string(MonitoringSettingStateUpdating), + } +} + +func (s *MonitoringSettingState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseMonitoringSettingState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseMonitoringSettingState(input string) (*MonitoringSettingState, error) { + vals := map[string]MonitoringSettingState{ + "failed": MonitoringSettingStateFailed, + "notavailable": MonitoringSettingStateNotAvailable, + "succeeded": MonitoringSettingStateSucceeded, + "updating": MonitoringSettingStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := MonitoringSettingState(input) + return &out, nil +} + +type PowerState string + +const ( + PowerStateRunning PowerState = "Running" + PowerStateStopped PowerState = "Stopped" +) + +func PossibleValuesForPowerState() []string { + return []string{ + string(PowerStateRunning), + string(PowerStateStopped), + } +} + +func (s *PowerState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parsePowerState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parsePowerState(input string) (*PowerState, error) { + vals := map[string]PowerState{ + "running": PowerStateRunning, + "stopped": PowerStateStopped, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := PowerState(input) + return &out, nil +} + +type PredefinedAcceleratorProvisioningState string + +const ( + PredefinedAcceleratorProvisioningStateCreating PredefinedAcceleratorProvisioningState = "Creating" + PredefinedAcceleratorProvisioningStateFailed PredefinedAcceleratorProvisioningState = "Failed" + PredefinedAcceleratorProvisioningStateSucceeded PredefinedAcceleratorProvisioningState = "Succeeded" + PredefinedAcceleratorProvisioningStateUpdating PredefinedAcceleratorProvisioningState = "Updating" +) + +func PossibleValuesForPredefinedAcceleratorProvisioningState() []string { + return []string{ + string(PredefinedAcceleratorProvisioningStateCreating), + string(PredefinedAcceleratorProvisioningStateFailed), + string(PredefinedAcceleratorProvisioningStateSucceeded), + string(PredefinedAcceleratorProvisioningStateUpdating), + } +} + +func (s *PredefinedAcceleratorProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parsePredefinedAcceleratorProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parsePredefinedAcceleratorProvisioningState(input string) (*PredefinedAcceleratorProvisioningState, error) { + vals := map[string]PredefinedAcceleratorProvisioningState{ + "creating": PredefinedAcceleratorProvisioningStateCreating, + "failed": PredefinedAcceleratorProvisioningStateFailed, + "succeeded": PredefinedAcceleratorProvisioningStateSucceeded, + "updating": PredefinedAcceleratorProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := PredefinedAcceleratorProvisioningState(input) + return &out, nil +} + +type PredefinedAcceleratorState string + +const ( + PredefinedAcceleratorStateDisabled PredefinedAcceleratorState = "Disabled" + PredefinedAcceleratorStateEnabled PredefinedAcceleratorState = "Enabled" +) + +func PossibleValuesForPredefinedAcceleratorState() []string { + return []string{ + string(PredefinedAcceleratorStateDisabled), + string(PredefinedAcceleratorStateEnabled), + } +} + +func (s *PredefinedAcceleratorState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parsePredefinedAcceleratorState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parsePredefinedAcceleratorState(input string) (*PredefinedAcceleratorState, error) { + vals := map[string]PredefinedAcceleratorState{ + "disabled": PredefinedAcceleratorStateDisabled, + "enabled": PredefinedAcceleratorStateEnabled, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := PredefinedAcceleratorState(input) + return &out, nil +} + +type ProbeActionType string + +const ( + ProbeActionTypeExecAction ProbeActionType = "ExecAction" + ProbeActionTypeHTTPGetAction ProbeActionType = "HTTPGetAction" + ProbeActionTypeTCPSocketAction ProbeActionType = "TCPSocketAction" +) + +func PossibleValuesForProbeActionType() []string { + return []string{ + string(ProbeActionTypeExecAction), + string(ProbeActionTypeHTTPGetAction), + string(ProbeActionTypeTCPSocketAction), + } +} + +func (s *ProbeActionType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseProbeActionType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseProbeActionType(input string) (*ProbeActionType, error) { + vals := map[string]ProbeActionType{ + "execaction": ProbeActionTypeExecAction, + "httpgetaction": ProbeActionTypeHTTPGetAction, + "tcpsocketaction": ProbeActionTypeTCPSocketAction, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ProbeActionType(input) + return &out, nil +} + +type ProvisioningState string + +const ( + ProvisioningStateCreating ProvisioningState = "Creating" + ProvisioningStateDeleted ProvisioningState = "Deleted" + ProvisioningStateDeleting ProvisioningState = "Deleting" + ProvisioningStateFailed ProvisioningState = "Failed" + ProvisioningStateMoveFailed ProvisioningState = "MoveFailed" + ProvisioningStateMoved ProvisioningState = "Moved" + ProvisioningStateMoving ProvisioningState = "Moving" + ProvisioningStateStarting ProvisioningState = "Starting" + ProvisioningStateStopping ProvisioningState = "Stopping" + ProvisioningStateSucceeded ProvisioningState = "Succeeded" + ProvisioningStateUpdating ProvisioningState = "Updating" +) + +func PossibleValuesForProvisioningState() []string { + return []string{ + string(ProvisioningStateCreating), + string(ProvisioningStateDeleted), + string(ProvisioningStateDeleting), + string(ProvisioningStateFailed), + string(ProvisioningStateMoveFailed), + string(ProvisioningStateMoved), + string(ProvisioningStateMoving), + string(ProvisioningStateStarting), + string(ProvisioningStateStopping), + string(ProvisioningStateSucceeded), + string(ProvisioningStateUpdating), + } +} + +func (s *ProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseProvisioningState(input string) (*ProvisioningState, error) { + vals := map[string]ProvisioningState{ + "creating": ProvisioningStateCreating, + "deleted": ProvisioningStateDeleted, + "deleting": ProvisioningStateDeleting, + "failed": ProvisioningStateFailed, + "movefailed": ProvisioningStateMoveFailed, + "moved": ProvisioningStateMoved, + "moving": ProvisioningStateMoving, + "starting": ProvisioningStateStarting, + "stopping": ProvisioningStateStopping, + "succeeded": ProvisioningStateSucceeded, + "updating": ProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ProvisioningState(input) + return &out, nil +} + +type ResourceSkuRestrictionsReasonCode string + +const ( + ResourceSkuRestrictionsReasonCodeNotAvailableForSubscription ResourceSkuRestrictionsReasonCode = "NotAvailableForSubscription" + ResourceSkuRestrictionsReasonCodeQuotaId ResourceSkuRestrictionsReasonCode = "QuotaId" +) + +func PossibleValuesForResourceSkuRestrictionsReasonCode() []string { + return []string{ + string(ResourceSkuRestrictionsReasonCodeNotAvailableForSubscription), + string(ResourceSkuRestrictionsReasonCodeQuotaId), + } +} + +func (s *ResourceSkuRestrictionsReasonCode) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseResourceSkuRestrictionsReasonCode(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseResourceSkuRestrictionsReasonCode(input string) (*ResourceSkuRestrictionsReasonCode, error) { + vals := map[string]ResourceSkuRestrictionsReasonCode{ + "notavailableforsubscription": ResourceSkuRestrictionsReasonCodeNotAvailableForSubscription, + "quotaid": ResourceSkuRestrictionsReasonCodeQuotaId, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ResourceSkuRestrictionsReasonCode(input) + return &out, nil +} + +type ResourceSkuRestrictionsType string + +const ( + ResourceSkuRestrictionsTypeLocation ResourceSkuRestrictionsType = "Location" + ResourceSkuRestrictionsTypeZone ResourceSkuRestrictionsType = "Zone" +) + +func PossibleValuesForResourceSkuRestrictionsType() []string { + return []string{ + string(ResourceSkuRestrictionsTypeLocation), + string(ResourceSkuRestrictionsTypeZone), + } +} + +func (s *ResourceSkuRestrictionsType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseResourceSkuRestrictionsType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseResourceSkuRestrictionsType(input string) (*ResourceSkuRestrictionsType, error) { + vals := map[string]ResourceSkuRestrictionsType{ + "location": ResourceSkuRestrictionsTypeLocation, + "zone": ResourceSkuRestrictionsTypeZone, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ResourceSkuRestrictionsType(input) + return &out, nil +} + +type ServiceRegistryProvisioningState string + +const ( + ServiceRegistryProvisioningStateCreating ServiceRegistryProvisioningState = "Creating" + ServiceRegistryProvisioningStateDeleting ServiceRegistryProvisioningState = "Deleting" + ServiceRegistryProvisioningStateFailed ServiceRegistryProvisioningState = "Failed" + ServiceRegistryProvisioningStateSucceeded ServiceRegistryProvisioningState = "Succeeded" + ServiceRegistryProvisioningStateUpdating ServiceRegistryProvisioningState = "Updating" +) + +func PossibleValuesForServiceRegistryProvisioningState() []string { + return []string{ + string(ServiceRegistryProvisioningStateCreating), + string(ServiceRegistryProvisioningStateDeleting), + string(ServiceRegistryProvisioningStateFailed), + string(ServiceRegistryProvisioningStateSucceeded), + string(ServiceRegistryProvisioningStateUpdating), + } +} + +func (s *ServiceRegistryProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseServiceRegistryProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseServiceRegistryProvisioningState(input string) (*ServiceRegistryProvisioningState, error) { + vals := map[string]ServiceRegistryProvisioningState{ + "creating": ServiceRegistryProvisioningStateCreating, + "deleting": ServiceRegistryProvisioningStateDeleting, + "failed": ServiceRegistryProvisioningStateFailed, + "succeeded": ServiceRegistryProvisioningStateSucceeded, + "updating": ServiceRegistryProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := ServiceRegistryProvisioningState(input) + return &out, nil +} + +type SessionAffinity string + +const ( + SessionAffinityCookie SessionAffinity = "Cookie" + SessionAffinityNone SessionAffinity = "None" +) + +func PossibleValuesForSessionAffinity() []string { + return []string{ + string(SessionAffinityCookie), + string(SessionAffinityNone), + } +} + +func (s *SessionAffinity) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseSessionAffinity(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseSessionAffinity(input string) (*SessionAffinity, error) { + vals := map[string]SessionAffinity{ + "cookie": SessionAffinityCookie, + "none": SessionAffinityNone, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := SessionAffinity(input) + return &out, nil +} + +type SkuScaleType string + +const ( + SkuScaleTypeAutomatic SkuScaleType = "Automatic" + SkuScaleTypeManual SkuScaleType = "Manual" + SkuScaleTypeNone SkuScaleType = "None" +) + +func PossibleValuesForSkuScaleType() []string { + return []string{ + string(SkuScaleTypeAutomatic), + string(SkuScaleTypeManual), + string(SkuScaleTypeNone), + } +} + +func (s *SkuScaleType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseSkuScaleType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseSkuScaleType(input string) (*SkuScaleType, error) { + vals := map[string]SkuScaleType{ + "automatic": SkuScaleTypeAutomatic, + "manual": SkuScaleTypeManual, + "none": SkuScaleTypeNone, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := SkuScaleType(input) + return &out, nil +} + +type StorageType string + +const ( + StorageTypeStorageAccount StorageType = "StorageAccount" +) + +func PossibleValuesForStorageType() []string { + return []string{ + string(StorageTypeStorageAccount), + } +} + +func (s *StorageType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseStorageType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseStorageType(input string) (*StorageType, error) { + vals := map[string]StorageType{ + "storageaccount": StorageTypeStorageAccount, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := StorageType(input) + return &out, nil +} + +type SupportedRuntimePlatform string + +const ( + SupportedRuntimePlatformJava SupportedRuntimePlatform = "Java" + SupportedRuntimePlatformPointNETCore SupportedRuntimePlatform = ".NET Core" +) + +func PossibleValuesForSupportedRuntimePlatform() []string { + return []string{ + string(SupportedRuntimePlatformJava), + string(SupportedRuntimePlatformPointNETCore), + } +} + +func (s *SupportedRuntimePlatform) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseSupportedRuntimePlatform(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseSupportedRuntimePlatform(input string) (*SupportedRuntimePlatform, error) { + vals := map[string]SupportedRuntimePlatform{ + "java": SupportedRuntimePlatformJava, + ".net core": SupportedRuntimePlatformPointNETCore, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := SupportedRuntimePlatform(input) + return &out, nil +} + +type SupportedRuntimeValue string + +const ( + SupportedRuntimeValueJavaEight SupportedRuntimeValue = "Java_8" + SupportedRuntimeValueJavaOneOne SupportedRuntimeValue = "Java_11" + SupportedRuntimeValueJavaOneSeven SupportedRuntimeValue = "Java_17" + SupportedRuntimeValueNetCoreThreeOne SupportedRuntimeValue = "NetCore_31" +) + +func PossibleValuesForSupportedRuntimeValue() []string { + return []string{ + string(SupportedRuntimeValueJavaEight), + string(SupportedRuntimeValueJavaOneOne), + string(SupportedRuntimeValueJavaOneSeven), + string(SupportedRuntimeValueNetCoreThreeOne), + } +} + +func (s *SupportedRuntimeValue) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseSupportedRuntimeValue(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseSupportedRuntimeValue(input string) (*SupportedRuntimeValue, error) { + vals := map[string]SupportedRuntimeValue{ + "java_8": SupportedRuntimeValueJavaEight, + "java_11": SupportedRuntimeValueJavaOneOne, + "java_17": SupportedRuntimeValueJavaOneSeven, + "netcore_31": SupportedRuntimeValueNetCoreThreeOne, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := SupportedRuntimeValue(input) + return &out, nil +} + +type TestKeyType string + +const ( + TestKeyTypePrimary TestKeyType = "Primary" + TestKeyTypeSecondary TestKeyType = "Secondary" +) + +func PossibleValuesForTestKeyType() []string { + return []string{ + string(TestKeyTypePrimary), + string(TestKeyTypeSecondary), + } +} + +func (s *TestKeyType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseTestKeyType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseTestKeyType(input string) (*TestKeyType, error) { + vals := map[string]TestKeyType{ + "primary": TestKeyTypePrimary, + "secondary": TestKeyTypeSecondary, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := TestKeyType(input) + return &out, nil +} + +type TrafficDirection string + +const ( + TrafficDirectionInbound TrafficDirection = "Inbound" + TrafficDirectionOutbound TrafficDirection = "Outbound" +) + +func PossibleValuesForTrafficDirection() []string { + return []string{ + string(TrafficDirectionInbound), + string(TrafficDirectionOutbound), + } +} + +func (s *TrafficDirection) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseTrafficDirection(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseTrafficDirection(input string) (*TrafficDirection, error) { + vals := map[string]TrafficDirection{ + "inbound": TrafficDirectionInbound, + "outbound": TrafficDirectionOutbound, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := TrafficDirection(input) + return &out, nil +} + +type Type string + +const ( + TypeAzureFileVolume Type = "AzureFileVolume" +) + +func PossibleValuesForType() []string { + return []string{ + string(TypeAzureFileVolume), + } +} + +func (s *Type) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseType(input string) (*Type, error) { + vals := map[string]Type{ + "azurefilevolume": TypeAzureFileVolume, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := Type(input) + return &out, nil +} + +type WeekDay string + +const ( + WeekDayFriday WeekDay = "Friday" + WeekDayMonday WeekDay = "Monday" + WeekDaySaturday WeekDay = "Saturday" + WeekDaySunday WeekDay = "Sunday" + WeekDayThursday WeekDay = "Thursday" + WeekDayTuesday WeekDay = "Tuesday" + WeekDayWednesday WeekDay = "Wednesday" +) + +func PossibleValuesForWeekDay() []string { + return []string{ + string(WeekDayFriday), + string(WeekDayMonday), + string(WeekDaySaturday), + string(WeekDaySunday), + string(WeekDayThursday), + string(WeekDayTuesday), + string(WeekDayWednesday), + } +} + +func (s *WeekDay) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseWeekDay(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseWeekDay(input string) (*WeekDay, error) { + vals := map[string]WeekDay{ + "friday": WeekDayFriday, + "monday": WeekDayMonday, + "saturday": WeekDaySaturday, + "sunday": WeekDaySunday, + "thursday": WeekDayThursday, + "tuesday": WeekDayTuesday, + "wednesday": WeekDayWednesday, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := WeekDay(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_agentpool.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_agentpool.go new file mode 100644 index 000000000000..2c3d6545f54d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_agentpool.go @@ -0,0 +1,153 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = AgentPoolId{} + +// AgentPoolId is a struct representing the Resource ID for a Agent Pool +type AgentPoolId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + BuildServiceName string + AgentPoolName string +} + +// NewAgentPoolID returns a new AgentPoolId struct +func NewAgentPoolID(subscriptionId string, resourceGroupName string, springName string, buildServiceName string, agentPoolName string) AgentPoolId { + return AgentPoolId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + BuildServiceName: buildServiceName, + AgentPoolName: agentPoolName, + } +} + +// ParseAgentPoolID parses 'input' into a AgentPoolId +func ParseAgentPoolID(input string) (*AgentPoolId, error) { + parser := resourceids.NewParserFromResourceIdType(AgentPoolId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := AgentPoolId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + if id.AgentPoolName, ok = parsed.Parsed["agentPoolName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "agentPoolName", *parsed) + } + + return &id, nil +} + +// ParseAgentPoolIDInsensitively parses 'input' case-insensitively into a AgentPoolId +// note: this method should only be used for API response data and not user input +func ParseAgentPoolIDInsensitively(input string) (*AgentPoolId, error) { + parser := resourceids.NewParserFromResourceIdType(AgentPoolId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := AgentPoolId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + if id.AgentPoolName, ok = parsed.Parsed["agentPoolName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "agentPoolName", *parsed) + } + + return &id, nil +} + +// ValidateAgentPoolID checks that 'input' can be parsed as a Agent Pool ID +func ValidateAgentPoolID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseAgentPoolID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Agent Pool ID +func (id AgentPoolId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/buildServices/%s/agentPools/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.BuildServiceName, id.AgentPoolName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Agent Pool ID +func (id AgentPoolId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticBuildServices", "buildServices", "buildServices"), + resourceids.UserSpecifiedSegment("buildServiceName", "buildServiceValue"), + resourceids.StaticSegment("staticAgentPools", "agentPools", "agentPools"), + resourceids.UserSpecifiedSegment("agentPoolName", "agentPoolValue"), + } +} + +// String returns a human-readable description of this Agent Pool ID +func (id AgentPoolId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Build Service Name: %q", id.BuildServiceName), + fmt.Sprintf("Agent Pool Name: %q", id.AgentPoolName), + } + return fmt.Sprintf("Agent Pool (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_apiportal.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_apiportal.go new file mode 100644 index 000000000000..a503b92a2872 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_apiportal.go @@ -0,0 +1,140 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ApiPortalId{} + +// ApiPortalId is a struct representing the Resource ID for a Api Portal +type ApiPortalId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + ApiPortalName string +} + +// NewApiPortalID returns a new ApiPortalId struct +func NewApiPortalID(subscriptionId string, resourceGroupName string, springName string, apiPortalName string) ApiPortalId { + return ApiPortalId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + ApiPortalName: apiPortalName, + } +} + +// ParseApiPortalID parses 'input' into a ApiPortalId +func ParseApiPortalID(input string) (*ApiPortalId, error) { + parser := resourceids.NewParserFromResourceIdType(ApiPortalId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ApiPortalId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ApiPortalName, ok = parsed.Parsed["apiPortalName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "apiPortalName", *parsed) + } + + return &id, nil +} + +// ParseApiPortalIDInsensitively parses 'input' case-insensitively into a ApiPortalId +// note: this method should only be used for API response data and not user input +func ParseApiPortalIDInsensitively(input string) (*ApiPortalId, error) { + parser := resourceids.NewParserFromResourceIdType(ApiPortalId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ApiPortalId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ApiPortalName, ok = parsed.Parsed["apiPortalName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "apiPortalName", *parsed) + } + + return &id, nil +} + +// ValidateApiPortalID checks that 'input' can be parsed as a Api Portal ID +func ValidateApiPortalID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseApiPortalID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Api Portal ID +func (id ApiPortalId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/apiPortals/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.ApiPortalName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Api Portal ID +func (id ApiPortalId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticApiPortals", "apiPortals", "apiPortals"), + resourceids.UserSpecifiedSegment("apiPortalName", "apiPortalValue"), + } +} + +// String returns a human-readable description of this Api Portal ID +func (id ApiPortalId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Api Portal Name: %q", id.ApiPortalName), + } + return fmt.Sprintf("Api Portal (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_apiportaldomain.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_apiportaldomain.go new file mode 100644 index 000000000000..7772d26d4f65 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_apiportaldomain.go @@ -0,0 +1,153 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ApiPortalDomainId{} + +// ApiPortalDomainId is a struct representing the Resource ID for a Api Portal Domain +type ApiPortalDomainId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + ApiPortalName string + DomainName string +} + +// NewApiPortalDomainID returns a new ApiPortalDomainId struct +func NewApiPortalDomainID(subscriptionId string, resourceGroupName string, springName string, apiPortalName string, domainName string) ApiPortalDomainId { + return ApiPortalDomainId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + ApiPortalName: apiPortalName, + DomainName: domainName, + } +} + +// ParseApiPortalDomainID parses 'input' into a ApiPortalDomainId +func ParseApiPortalDomainID(input string) (*ApiPortalDomainId, error) { + parser := resourceids.NewParserFromResourceIdType(ApiPortalDomainId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ApiPortalDomainId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ApiPortalName, ok = parsed.Parsed["apiPortalName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "apiPortalName", *parsed) + } + + if id.DomainName, ok = parsed.Parsed["domainName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "domainName", *parsed) + } + + return &id, nil +} + +// ParseApiPortalDomainIDInsensitively parses 'input' case-insensitively into a ApiPortalDomainId +// note: this method should only be used for API response data and not user input +func ParseApiPortalDomainIDInsensitively(input string) (*ApiPortalDomainId, error) { + parser := resourceids.NewParserFromResourceIdType(ApiPortalDomainId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ApiPortalDomainId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ApiPortalName, ok = parsed.Parsed["apiPortalName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "apiPortalName", *parsed) + } + + if id.DomainName, ok = parsed.Parsed["domainName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "domainName", *parsed) + } + + return &id, nil +} + +// ValidateApiPortalDomainID checks that 'input' can be parsed as a Api Portal Domain ID +func ValidateApiPortalDomainID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseApiPortalDomainID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Api Portal Domain ID +func (id ApiPortalDomainId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/apiPortals/%s/domains/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.ApiPortalName, id.DomainName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Api Portal Domain ID +func (id ApiPortalDomainId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticApiPortals", "apiPortals", "apiPortals"), + resourceids.UserSpecifiedSegment("apiPortalName", "apiPortalValue"), + resourceids.StaticSegment("staticDomains", "domains", "domains"), + resourceids.UserSpecifiedSegment("domainName", "domainValue"), + } +} + +// String returns a human-readable description of this Api Portal Domain ID +func (id ApiPortalDomainId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Api Portal Name: %q", id.ApiPortalName), + fmt.Sprintf("Domain Name: %q", id.DomainName), + } + return fmt.Sprintf("Api Portal Domain (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_apm.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_apm.go new file mode 100644 index 000000000000..df03f3b0ad8e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_apm.go @@ -0,0 +1,140 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ApmId{} + +// ApmId is a struct representing the Resource ID for a Apm +type ApmId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + ApmName string +} + +// NewApmID returns a new ApmId struct +func NewApmID(subscriptionId string, resourceGroupName string, springName string, apmName string) ApmId { + return ApmId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + ApmName: apmName, + } +} + +// ParseApmID parses 'input' into a ApmId +func ParseApmID(input string) (*ApmId, error) { + parser := resourceids.NewParserFromResourceIdType(ApmId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ApmId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ApmName, ok = parsed.Parsed["apmName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "apmName", *parsed) + } + + return &id, nil +} + +// ParseApmIDInsensitively parses 'input' case-insensitively into a ApmId +// note: this method should only be used for API response data and not user input +func ParseApmIDInsensitively(input string) (*ApmId, error) { + parser := resourceids.NewParserFromResourceIdType(ApmId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ApmId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ApmName, ok = parsed.Parsed["apmName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "apmName", *parsed) + } + + return &id, nil +} + +// ValidateApmID checks that 'input' can be parsed as a Apm ID +func ValidateApmID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseApmID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Apm ID +func (id ApmId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/apms/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.ApmName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Apm ID +func (id ApmId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticApms", "apms", "apms"), + resourceids.UserSpecifiedSegment("apmName", "apmValue"), + } +} + +// String returns a human-readable description of this Apm ID +func (id ApmId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Apm Name: %q", id.ApmName), + } + return fmt.Sprintf("Apm (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_app.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_app.go new file mode 100644 index 000000000000..0c9cf467702f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_app.go @@ -0,0 +1,140 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = AppId{} + +// AppId is a struct representing the Resource ID for a App +type AppId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + AppName string +} + +// NewAppID returns a new AppId struct +func NewAppID(subscriptionId string, resourceGroupName string, springName string, appName string) AppId { + return AppId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + AppName: appName, + } +} + +// ParseAppID parses 'input' into a AppId +func ParseAppID(input string) (*AppId, error) { + parser := resourceids.NewParserFromResourceIdType(AppId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := AppId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.AppName, ok = parsed.Parsed["appName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "appName", *parsed) + } + + return &id, nil +} + +// ParseAppIDInsensitively parses 'input' case-insensitively into a AppId +// note: this method should only be used for API response data and not user input +func ParseAppIDInsensitively(input string) (*AppId, error) { + parser := resourceids.NewParserFromResourceIdType(AppId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := AppId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.AppName, ok = parsed.Parsed["appName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "appName", *parsed) + } + + return &id, nil +} + +// ValidateAppID checks that 'input' can be parsed as a App ID +func ValidateAppID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseAppID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted App ID +func (id AppId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/apps/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.AppName) +} + +// Segments returns a slice of Resource ID Segments which comprise this App ID +func (id AppId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticApps", "apps", "apps"), + resourceids.UserSpecifiedSegment("appName", "appValue"), + } +} + +// String returns a human-readable description of this App ID +func (id AppId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("App Name: %q", id.AppName), + } + return fmt.Sprintf("App (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_applicationaccelerator.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_applicationaccelerator.go new file mode 100644 index 000000000000..a154cd0e3160 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_applicationaccelerator.go @@ -0,0 +1,140 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ApplicationAcceleratorId{} + +// ApplicationAcceleratorId is a struct representing the Resource ID for a Application Accelerator +type ApplicationAcceleratorId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + ApplicationAcceleratorName string +} + +// NewApplicationAcceleratorID returns a new ApplicationAcceleratorId struct +func NewApplicationAcceleratorID(subscriptionId string, resourceGroupName string, springName string, applicationAcceleratorName string) ApplicationAcceleratorId { + return ApplicationAcceleratorId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + ApplicationAcceleratorName: applicationAcceleratorName, + } +} + +// ParseApplicationAcceleratorID parses 'input' into a ApplicationAcceleratorId +func ParseApplicationAcceleratorID(input string) (*ApplicationAcceleratorId, error) { + parser := resourceids.NewParserFromResourceIdType(ApplicationAcceleratorId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ApplicationAcceleratorId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ApplicationAcceleratorName, ok = parsed.Parsed["applicationAcceleratorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "applicationAcceleratorName", *parsed) + } + + return &id, nil +} + +// ParseApplicationAcceleratorIDInsensitively parses 'input' case-insensitively into a ApplicationAcceleratorId +// note: this method should only be used for API response data and not user input +func ParseApplicationAcceleratorIDInsensitively(input string) (*ApplicationAcceleratorId, error) { + parser := resourceids.NewParserFromResourceIdType(ApplicationAcceleratorId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ApplicationAcceleratorId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ApplicationAcceleratorName, ok = parsed.Parsed["applicationAcceleratorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "applicationAcceleratorName", *parsed) + } + + return &id, nil +} + +// ValidateApplicationAcceleratorID checks that 'input' can be parsed as a Application Accelerator ID +func ValidateApplicationAcceleratorID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseApplicationAcceleratorID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Application Accelerator ID +func (id ApplicationAcceleratorId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/applicationAccelerators/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.ApplicationAcceleratorName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Application Accelerator ID +func (id ApplicationAcceleratorId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticApplicationAccelerators", "applicationAccelerators", "applicationAccelerators"), + resourceids.UserSpecifiedSegment("applicationAcceleratorName", "applicationAcceleratorValue"), + } +} + +// String returns a human-readable description of this Application Accelerator ID +func (id ApplicationAcceleratorId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Application Accelerator Name: %q", id.ApplicationAcceleratorName), + } + return fmt.Sprintf("Application Accelerator (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_applicationliveview.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_applicationliveview.go new file mode 100644 index 000000000000..fe403dece927 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_applicationliveview.go @@ -0,0 +1,140 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ApplicationLiveViewId{} + +// ApplicationLiveViewId is a struct representing the Resource ID for a Application Live View +type ApplicationLiveViewId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + ApplicationLiveViewName string +} + +// NewApplicationLiveViewID returns a new ApplicationLiveViewId struct +func NewApplicationLiveViewID(subscriptionId string, resourceGroupName string, springName string, applicationLiveViewName string) ApplicationLiveViewId { + return ApplicationLiveViewId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + ApplicationLiveViewName: applicationLiveViewName, + } +} + +// ParseApplicationLiveViewID parses 'input' into a ApplicationLiveViewId +func ParseApplicationLiveViewID(input string) (*ApplicationLiveViewId, error) { + parser := resourceids.NewParserFromResourceIdType(ApplicationLiveViewId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ApplicationLiveViewId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ApplicationLiveViewName, ok = parsed.Parsed["applicationLiveViewName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "applicationLiveViewName", *parsed) + } + + return &id, nil +} + +// ParseApplicationLiveViewIDInsensitively parses 'input' case-insensitively into a ApplicationLiveViewId +// note: this method should only be used for API response data and not user input +func ParseApplicationLiveViewIDInsensitively(input string) (*ApplicationLiveViewId, error) { + parser := resourceids.NewParserFromResourceIdType(ApplicationLiveViewId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ApplicationLiveViewId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ApplicationLiveViewName, ok = parsed.Parsed["applicationLiveViewName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "applicationLiveViewName", *parsed) + } + + return &id, nil +} + +// ValidateApplicationLiveViewID checks that 'input' can be parsed as a Application Live View ID +func ValidateApplicationLiveViewID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseApplicationLiveViewID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Application Live View ID +func (id ApplicationLiveViewId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/applicationLiveViews/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.ApplicationLiveViewName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Application Live View ID +func (id ApplicationLiveViewId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticApplicationLiveViews", "applicationLiveViews", "applicationLiveViews"), + resourceids.UserSpecifiedSegment("applicationLiveViewName", "applicationLiveViewValue"), + } +} + +// String returns a human-readable description of this Application Live View ID +func (id ApplicationLiveViewId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Application Live View Name: %q", id.ApplicationLiveViewName), + } + return fmt.Sprintf("Application Live View (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_binding.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_binding.go new file mode 100644 index 000000000000..7978075b54ba --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_binding.go @@ -0,0 +1,153 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = BindingId{} + +// BindingId is a struct representing the Resource ID for a Binding +type BindingId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + AppName string + BindingName string +} + +// NewBindingID returns a new BindingId struct +func NewBindingID(subscriptionId string, resourceGroupName string, springName string, appName string, bindingName string) BindingId { + return BindingId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + AppName: appName, + BindingName: bindingName, + } +} + +// ParseBindingID parses 'input' into a BindingId +func ParseBindingID(input string) (*BindingId, error) { + parser := resourceids.NewParserFromResourceIdType(BindingId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := BindingId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.AppName, ok = parsed.Parsed["appName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "appName", *parsed) + } + + if id.BindingName, ok = parsed.Parsed["bindingName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "bindingName", *parsed) + } + + return &id, nil +} + +// ParseBindingIDInsensitively parses 'input' case-insensitively into a BindingId +// note: this method should only be used for API response data and not user input +func ParseBindingIDInsensitively(input string) (*BindingId, error) { + parser := resourceids.NewParserFromResourceIdType(BindingId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := BindingId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.AppName, ok = parsed.Parsed["appName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "appName", *parsed) + } + + if id.BindingName, ok = parsed.Parsed["bindingName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "bindingName", *parsed) + } + + return &id, nil +} + +// ValidateBindingID checks that 'input' can be parsed as a Binding ID +func ValidateBindingID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseBindingID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Binding ID +func (id BindingId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/apps/%s/bindings/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.AppName, id.BindingName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Binding ID +func (id BindingId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticApps", "apps", "apps"), + resourceids.UserSpecifiedSegment("appName", "appValue"), + resourceids.StaticSegment("staticBindings", "bindings", "bindings"), + resourceids.UserSpecifiedSegment("bindingName", "bindingValue"), + } +} + +// String returns a human-readable description of this Binding ID +func (id BindingId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("App Name: %q", id.AppName), + fmt.Sprintf("Binding Name: %q", id.BindingName), + } + return fmt.Sprintf("Binding (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_build.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_build.go new file mode 100644 index 000000000000..2fed396fb881 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_build.go @@ -0,0 +1,153 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = BuildId{} + +// BuildId is a struct representing the Resource ID for a Build +type BuildId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + BuildServiceName string + BuildName string +} + +// NewBuildID returns a new BuildId struct +func NewBuildID(subscriptionId string, resourceGroupName string, springName string, buildServiceName string, buildName string) BuildId { + return BuildId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + BuildServiceName: buildServiceName, + BuildName: buildName, + } +} + +// ParseBuildID parses 'input' into a BuildId +func ParseBuildID(input string) (*BuildId, error) { + parser := resourceids.NewParserFromResourceIdType(BuildId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := BuildId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + if id.BuildName, ok = parsed.Parsed["buildName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildName", *parsed) + } + + return &id, nil +} + +// ParseBuildIDInsensitively parses 'input' case-insensitively into a BuildId +// note: this method should only be used for API response data and not user input +func ParseBuildIDInsensitively(input string) (*BuildId, error) { + parser := resourceids.NewParserFromResourceIdType(BuildId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := BuildId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + if id.BuildName, ok = parsed.Parsed["buildName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildName", *parsed) + } + + return &id, nil +} + +// ValidateBuildID checks that 'input' can be parsed as a Build ID +func ValidateBuildID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseBuildID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Build ID +func (id BuildId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/buildServices/%s/builds/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.BuildServiceName, id.BuildName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Build ID +func (id BuildId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticBuildServices", "buildServices", "buildServices"), + resourceids.UserSpecifiedSegment("buildServiceName", "buildServiceValue"), + resourceids.StaticSegment("staticBuilds", "builds", "builds"), + resourceids.UserSpecifiedSegment("buildName", "buildValue"), + } +} + +// String returns a human-readable description of this Build ID +func (id BuildId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Build Service Name: %q", id.BuildServiceName), + fmt.Sprintf("Build Name: %q", id.BuildName), + } + return fmt.Sprintf("Build (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_builder.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_builder.go new file mode 100644 index 000000000000..1a3a013ed4b9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_builder.go @@ -0,0 +1,153 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = BuilderId{} + +// BuilderId is a struct representing the Resource ID for a Builder +type BuilderId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + BuildServiceName string + BuilderName string +} + +// NewBuilderID returns a new BuilderId struct +func NewBuilderID(subscriptionId string, resourceGroupName string, springName string, buildServiceName string, builderName string) BuilderId { + return BuilderId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + BuildServiceName: buildServiceName, + BuilderName: builderName, + } +} + +// ParseBuilderID parses 'input' into a BuilderId +func ParseBuilderID(input string) (*BuilderId, error) { + parser := resourceids.NewParserFromResourceIdType(BuilderId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := BuilderId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + if id.BuilderName, ok = parsed.Parsed["builderName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "builderName", *parsed) + } + + return &id, nil +} + +// ParseBuilderIDInsensitively parses 'input' case-insensitively into a BuilderId +// note: this method should only be used for API response data and not user input +func ParseBuilderIDInsensitively(input string) (*BuilderId, error) { + parser := resourceids.NewParserFromResourceIdType(BuilderId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := BuilderId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + if id.BuilderName, ok = parsed.Parsed["builderName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "builderName", *parsed) + } + + return &id, nil +} + +// ValidateBuilderID checks that 'input' can be parsed as a Builder ID +func ValidateBuilderID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseBuilderID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Builder ID +func (id BuilderId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/buildServices/%s/builders/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.BuildServiceName, id.BuilderName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Builder ID +func (id BuilderId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticBuildServices", "buildServices", "buildServices"), + resourceids.UserSpecifiedSegment("buildServiceName", "buildServiceValue"), + resourceids.StaticSegment("staticBuilders", "builders", "builders"), + resourceids.UserSpecifiedSegment("builderName", "builderValue"), + } +} + +// String returns a human-readable description of this Builder ID +func (id BuilderId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Build Service Name: %q", id.BuildServiceName), + fmt.Sprintf("Builder Name: %q", id.BuilderName), + } + return fmt.Sprintf("Builder (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_buildpackbinding.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_buildpackbinding.go new file mode 100644 index 000000000000..0c0969bf728e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_buildpackbinding.go @@ -0,0 +1,166 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = BuildPackBindingId{} + +// BuildPackBindingId is a struct representing the Resource ID for a Build Pack Binding +type BuildPackBindingId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + BuildServiceName string + BuilderName string + BuildPackBindingName string +} + +// NewBuildPackBindingID returns a new BuildPackBindingId struct +func NewBuildPackBindingID(subscriptionId string, resourceGroupName string, springName string, buildServiceName string, builderName string, buildPackBindingName string) BuildPackBindingId { + return BuildPackBindingId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + BuildServiceName: buildServiceName, + BuilderName: builderName, + BuildPackBindingName: buildPackBindingName, + } +} + +// ParseBuildPackBindingID parses 'input' into a BuildPackBindingId +func ParseBuildPackBindingID(input string) (*BuildPackBindingId, error) { + parser := resourceids.NewParserFromResourceIdType(BuildPackBindingId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := BuildPackBindingId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + if id.BuilderName, ok = parsed.Parsed["builderName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "builderName", *parsed) + } + + if id.BuildPackBindingName, ok = parsed.Parsed["buildPackBindingName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildPackBindingName", *parsed) + } + + return &id, nil +} + +// ParseBuildPackBindingIDInsensitively parses 'input' case-insensitively into a BuildPackBindingId +// note: this method should only be used for API response data and not user input +func ParseBuildPackBindingIDInsensitively(input string) (*BuildPackBindingId, error) { + parser := resourceids.NewParserFromResourceIdType(BuildPackBindingId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := BuildPackBindingId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + if id.BuilderName, ok = parsed.Parsed["builderName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "builderName", *parsed) + } + + if id.BuildPackBindingName, ok = parsed.Parsed["buildPackBindingName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildPackBindingName", *parsed) + } + + return &id, nil +} + +// ValidateBuildPackBindingID checks that 'input' can be parsed as a Build Pack Binding ID +func ValidateBuildPackBindingID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseBuildPackBindingID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Build Pack Binding ID +func (id BuildPackBindingId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/buildServices/%s/builders/%s/buildPackBindings/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.BuildServiceName, id.BuilderName, id.BuildPackBindingName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Build Pack Binding ID +func (id BuildPackBindingId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticBuildServices", "buildServices", "buildServices"), + resourceids.UserSpecifiedSegment("buildServiceName", "buildServiceValue"), + resourceids.StaticSegment("staticBuilders", "builders", "builders"), + resourceids.UserSpecifiedSegment("builderName", "builderValue"), + resourceids.StaticSegment("staticBuildPackBindings", "buildPackBindings", "buildPackBindings"), + resourceids.UserSpecifiedSegment("buildPackBindingName", "buildPackBindingValue"), + } +} + +// String returns a human-readable description of this Build Pack Binding ID +func (id BuildPackBindingId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Build Service Name: %q", id.BuildServiceName), + fmt.Sprintf("Builder Name: %q", id.BuilderName), + fmt.Sprintf("Build Pack Binding Name: %q", id.BuildPackBindingName), + } + return fmt.Sprintf("Build Pack Binding (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_buildservice.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_buildservice.go new file mode 100644 index 000000000000..b6331a77da46 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_buildservice.go @@ -0,0 +1,140 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = BuildServiceId{} + +// BuildServiceId is a struct representing the Resource ID for a Build Service +type BuildServiceId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + BuildServiceName string +} + +// NewBuildServiceID returns a new BuildServiceId struct +func NewBuildServiceID(subscriptionId string, resourceGroupName string, springName string, buildServiceName string) BuildServiceId { + return BuildServiceId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + BuildServiceName: buildServiceName, + } +} + +// ParseBuildServiceID parses 'input' into a BuildServiceId +func ParseBuildServiceID(input string) (*BuildServiceId, error) { + parser := resourceids.NewParserFromResourceIdType(BuildServiceId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := BuildServiceId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + return &id, nil +} + +// ParseBuildServiceIDInsensitively parses 'input' case-insensitively into a BuildServiceId +// note: this method should only be used for API response data and not user input +func ParseBuildServiceIDInsensitively(input string) (*BuildServiceId, error) { + parser := resourceids.NewParserFromResourceIdType(BuildServiceId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := BuildServiceId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + return &id, nil +} + +// ValidateBuildServiceID checks that 'input' can be parsed as a Build Service ID +func ValidateBuildServiceID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseBuildServiceID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Build Service ID +func (id BuildServiceId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/buildServices/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.BuildServiceName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Build Service ID +func (id BuildServiceId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticBuildServices", "buildServices", "buildServices"), + resourceids.UserSpecifiedSegment("buildServiceName", "buildServiceValue"), + } +} + +// String returns a human-readable description of this Build Service ID +func (id BuildServiceId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Build Service Name: %q", id.BuildServiceName), + } + return fmt.Sprintf("Build Service (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_certificate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_certificate.go new file mode 100644 index 000000000000..7b21881fbcf7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_certificate.go @@ -0,0 +1,140 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = CertificateId{} + +// CertificateId is a struct representing the Resource ID for a Certificate +type CertificateId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + CertificateName string +} + +// NewCertificateID returns a new CertificateId struct +func NewCertificateID(subscriptionId string, resourceGroupName string, springName string, certificateName string) CertificateId { + return CertificateId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + CertificateName: certificateName, + } +} + +// ParseCertificateID parses 'input' into a CertificateId +func ParseCertificateID(input string) (*CertificateId, error) { + parser := resourceids.NewParserFromResourceIdType(CertificateId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := CertificateId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.CertificateName, ok = parsed.Parsed["certificateName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "certificateName", *parsed) + } + + return &id, nil +} + +// ParseCertificateIDInsensitively parses 'input' case-insensitively into a CertificateId +// note: this method should only be used for API response data and not user input +func ParseCertificateIDInsensitively(input string) (*CertificateId, error) { + parser := resourceids.NewParserFromResourceIdType(CertificateId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := CertificateId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.CertificateName, ok = parsed.Parsed["certificateName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "certificateName", *parsed) + } + + return &id, nil +} + +// ValidateCertificateID checks that 'input' can be parsed as a Certificate ID +func ValidateCertificateID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseCertificateID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Certificate ID +func (id CertificateId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/certificates/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.CertificateName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Certificate ID +func (id CertificateId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticCertificates", "certificates", "certificates"), + resourceids.UserSpecifiedSegment("certificateName", "certificateValue"), + } +} + +// String returns a human-readable description of this Certificate ID +func (id CertificateId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Certificate Name: %q", id.CertificateName), + } + return fmt.Sprintf("Certificate (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_configurationservice.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_configurationservice.go new file mode 100644 index 000000000000..33ee1ed5932b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_configurationservice.go @@ -0,0 +1,140 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ConfigurationServiceId{} + +// ConfigurationServiceId is a struct representing the Resource ID for a Configuration Service +type ConfigurationServiceId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + ConfigurationServiceName string +} + +// NewConfigurationServiceID returns a new ConfigurationServiceId struct +func NewConfigurationServiceID(subscriptionId string, resourceGroupName string, springName string, configurationServiceName string) ConfigurationServiceId { + return ConfigurationServiceId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + ConfigurationServiceName: configurationServiceName, + } +} + +// ParseConfigurationServiceID parses 'input' into a ConfigurationServiceId +func ParseConfigurationServiceID(input string) (*ConfigurationServiceId, error) { + parser := resourceids.NewParserFromResourceIdType(ConfigurationServiceId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ConfigurationServiceId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ConfigurationServiceName, ok = parsed.Parsed["configurationServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "configurationServiceName", *parsed) + } + + return &id, nil +} + +// ParseConfigurationServiceIDInsensitively parses 'input' case-insensitively into a ConfigurationServiceId +// note: this method should only be used for API response data and not user input +func ParseConfigurationServiceIDInsensitively(input string) (*ConfigurationServiceId, error) { + parser := resourceids.NewParserFromResourceIdType(ConfigurationServiceId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ConfigurationServiceId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ConfigurationServiceName, ok = parsed.Parsed["configurationServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "configurationServiceName", *parsed) + } + + return &id, nil +} + +// ValidateConfigurationServiceID checks that 'input' can be parsed as a Configuration Service ID +func ValidateConfigurationServiceID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseConfigurationServiceID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Configuration Service ID +func (id ConfigurationServiceId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/configurationServices/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.ConfigurationServiceName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Configuration Service ID +func (id ConfigurationServiceId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticConfigurationServices", "configurationServices", "configurationServices"), + resourceids.UserSpecifiedSegment("configurationServiceName", "configurationServiceValue"), + } +} + +// String returns a human-readable description of this Configuration Service ID +func (id ConfigurationServiceId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Configuration Service Name: %q", id.ConfigurationServiceName), + } + return fmt.Sprintf("Configuration Service (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_containerregistry.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_containerregistry.go new file mode 100644 index 000000000000..1066b5961767 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_containerregistry.go @@ -0,0 +1,140 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ContainerRegistryId{} + +// ContainerRegistryId is a struct representing the Resource ID for a Container Registry +type ContainerRegistryId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + ContainerRegistryName string +} + +// NewContainerRegistryID returns a new ContainerRegistryId struct +func NewContainerRegistryID(subscriptionId string, resourceGroupName string, springName string, containerRegistryName string) ContainerRegistryId { + return ContainerRegistryId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + ContainerRegistryName: containerRegistryName, + } +} + +// ParseContainerRegistryID parses 'input' into a ContainerRegistryId +func ParseContainerRegistryID(input string) (*ContainerRegistryId, error) { + parser := resourceids.NewParserFromResourceIdType(ContainerRegistryId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ContainerRegistryId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ContainerRegistryName, ok = parsed.Parsed["containerRegistryName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "containerRegistryName", *parsed) + } + + return &id, nil +} + +// ParseContainerRegistryIDInsensitively parses 'input' case-insensitively into a ContainerRegistryId +// note: this method should only be used for API response data and not user input +func ParseContainerRegistryIDInsensitively(input string) (*ContainerRegistryId, error) { + parser := resourceids.NewParserFromResourceIdType(ContainerRegistryId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ContainerRegistryId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ContainerRegistryName, ok = parsed.Parsed["containerRegistryName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "containerRegistryName", *parsed) + } + + return &id, nil +} + +// ValidateContainerRegistryID checks that 'input' can be parsed as a Container Registry ID +func ValidateContainerRegistryID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseContainerRegistryID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Container Registry ID +func (id ContainerRegistryId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/containerRegistries/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.ContainerRegistryName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Container Registry ID +func (id ContainerRegistryId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticContainerRegistries", "containerRegistries", "containerRegistries"), + resourceids.UserSpecifiedSegment("containerRegistryName", "containerRegistryValue"), + } +} + +// String returns a human-readable description of this Container Registry ID +func (id ContainerRegistryId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Container Registry Name: %q", id.ContainerRegistryName), + } + return fmt.Sprintf("Container Registry (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_customizedaccelerator.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_customizedaccelerator.go new file mode 100644 index 000000000000..82fa4c4fbfe2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_customizedaccelerator.go @@ -0,0 +1,153 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = CustomizedAcceleratorId{} + +// CustomizedAcceleratorId is a struct representing the Resource ID for a Customized Accelerator +type CustomizedAcceleratorId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + ApplicationAcceleratorName string + CustomizedAcceleratorName string +} + +// NewCustomizedAcceleratorID returns a new CustomizedAcceleratorId struct +func NewCustomizedAcceleratorID(subscriptionId string, resourceGroupName string, springName string, applicationAcceleratorName string, customizedAcceleratorName string) CustomizedAcceleratorId { + return CustomizedAcceleratorId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + ApplicationAcceleratorName: applicationAcceleratorName, + CustomizedAcceleratorName: customizedAcceleratorName, + } +} + +// ParseCustomizedAcceleratorID parses 'input' into a CustomizedAcceleratorId +func ParseCustomizedAcceleratorID(input string) (*CustomizedAcceleratorId, error) { + parser := resourceids.NewParserFromResourceIdType(CustomizedAcceleratorId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := CustomizedAcceleratorId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ApplicationAcceleratorName, ok = parsed.Parsed["applicationAcceleratorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "applicationAcceleratorName", *parsed) + } + + if id.CustomizedAcceleratorName, ok = parsed.Parsed["customizedAcceleratorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "customizedAcceleratorName", *parsed) + } + + return &id, nil +} + +// ParseCustomizedAcceleratorIDInsensitively parses 'input' case-insensitively into a CustomizedAcceleratorId +// note: this method should only be used for API response data and not user input +func ParseCustomizedAcceleratorIDInsensitively(input string) (*CustomizedAcceleratorId, error) { + parser := resourceids.NewParserFromResourceIdType(CustomizedAcceleratorId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := CustomizedAcceleratorId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ApplicationAcceleratorName, ok = parsed.Parsed["applicationAcceleratorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "applicationAcceleratorName", *parsed) + } + + if id.CustomizedAcceleratorName, ok = parsed.Parsed["customizedAcceleratorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "customizedAcceleratorName", *parsed) + } + + return &id, nil +} + +// ValidateCustomizedAcceleratorID checks that 'input' can be parsed as a Customized Accelerator ID +func ValidateCustomizedAcceleratorID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseCustomizedAcceleratorID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Customized Accelerator ID +func (id CustomizedAcceleratorId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/applicationAccelerators/%s/customizedAccelerators/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.ApplicationAcceleratorName, id.CustomizedAcceleratorName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Customized Accelerator ID +func (id CustomizedAcceleratorId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticApplicationAccelerators", "applicationAccelerators", "applicationAccelerators"), + resourceids.UserSpecifiedSegment("applicationAcceleratorName", "applicationAcceleratorValue"), + resourceids.StaticSegment("staticCustomizedAccelerators", "customizedAccelerators", "customizedAccelerators"), + resourceids.UserSpecifiedSegment("customizedAcceleratorName", "customizedAcceleratorValue"), + } +} + +// String returns a human-readable description of this Customized Accelerator ID +func (id CustomizedAcceleratorId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Application Accelerator Name: %q", id.ApplicationAcceleratorName), + fmt.Sprintf("Customized Accelerator Name: %q", id.CustomizedAcceleratorName), + } + return fmt.Sprintf("Customized Accelerator (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_deployment.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_deployment.go new file mode 100644 index 000000000000..761bbbcb7e90 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_deployment.go @@ -0,0 +1,153 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = DeploymentId{} + +// DeploymentId is a struct representing the Resource ID for a Deployment +type DeploymentId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + AppName string + DeploymentName string +} + +// NewDeploymentID returns a new DeploymentId struct +func NewDeploymentID(subscriptionId string, resourceGroupName string, springName string, appName string, deploymentName string) DeploymentId { + return DeploymentId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + AppName: appName, + DeploymentName: deploymentName, + } +} + +// ParseDeploymentID parses 'input' into a DeploymentId +func ParseDeploymentID(input string) (*DeploymentId, error) { + parser := resourceids.NewParserFromResourceIdType(DeploymentId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DeploymentId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.AppName, ok = parsed.Parsed["appName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "appName", *parsed) + } + + if id.DeploymentName, ok = parsed.Parsed["deploymentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "deploymentName", *parsed) + } + + return &id, nil +} + +// ParseDeploymentIDInsensitively parses 'input' case-insensitively into a DeploymentId +// note: this method should only be used for API response data and not user input +func ParseDeploymentIDInsensitively(input string) (*DeploymentId, error) { + parser := resourceids.NewParserFromResourceIdType(DeploymentId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DeploymentId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.AppName, ok = parsed.Parsed["appName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "appName", *parsed) + } + + if id.DeploymentName, ok = parsed.Parsed["deploymentName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "deploymentName", *parsed) + } + + return &id, nil +} + +// ValidateDeploymentID checks that 'input' can be parsed as a Deployment ID +func ValidateDeploymentID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseDeploymentID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Deployment ID +func (id DeploymentId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/apps/%s/deployments/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.AppName, id.DeploymentName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Deployment ID +func (id DeploymentId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticApps", "apps", "apps"), + resourceids.UserSpecifiedSegment("appName", "appValue"), + resourceids.StaticSegment("staticDeployments", "deployments", "deployments"), + resourceids.UserSpecifiedSegment("deploymentName", "deploymentValue"), + } +} + +// String returns a human-readable description of this Deployment ID +func (id DeploymentId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("App Name: %q", id.AppName), + fmt.Sprintf("Deployment Name: %q", id.DeploymentName), + } + return fmt.Sprintf("Deployment (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_devtoolportal.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_devtoolportal.go new file mode 100644 index 000000000000..9bbc984db7c3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_devtoolportal.go @@ -0,0 +1,140 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = DevToolPortalId{} + +// DevToolPortalId is a struct representing the Resource ID for a Dev Tool Portal +type DevToolPortalId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + DevToolPortalName string +} + +// NewDevToolPortalID returns a new DevToolPortalId struct +func NewDevToolPortalID(subscriptionId string, resourceGroupName string, springName string, devToolPortalName string) DevToolPortalId { + return DevToolPortalId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + DevToolPortalName: devToolPortalName, + } +} + +// ParseDevToolPortalID parses 'input' into a DevToolPortalId +func ParseDevToolPortalID(input string) (*DevToolPortalId, error) { + parser := resourceids.NewParserFromResourceIdType(DevToolPortalId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DevToolPortalId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.DevToolPortalName, ok = parsed.Parsed["devToolPortalName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "devToolPortalName", *parsed) + } + + return &id, nil +} + +// ParseDevToolPortalIDInsensitively parses 'input' case-insensitively into a DevToolPortalId +// note: this method should only be used for API response data and not user input +func ParseDevToolPortalIDInsensitively(input string) (*DevToolPortalId, error) { + parser := resourceids.NewParserFromResourceIdType(DevToolPortalId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DevToolPortalId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.DevToolPortalName, ok = parsed.Parsed["devToolPortalName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "devToolPortalName", *parsed) + } + + return &id, nil +} + +// ValidateDevToolPortalID checks that 'input' can be parsed as a Dev Tool Portal ID +func ValidateDevToolPortalID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseDevToolPortalID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Dev Tool Portal ID +func (id DevToolPortalId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/devToolPortals/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.DevToolPortalName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Dev Tool Portal ID +func (id DevToolPortalId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticDevToolPortals", "devToolPortals", "devToolPortals"), + resourceids.UserSpecifiedSegment("devToolPortalName", "devToolPortalValue"), + } +} + +// String returns a human-readable description of this Dev Tool Portal ID +func (id DevToolPortalId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Dev Tool Portal Name: %q", id.DevToolPortalName), + } + return fmt.Sprintf("Dev Tool Portal (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_domain.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_domain.go new file mode 100644 index 000000000000..cc296a7d0a81 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_domain.go @@ -0,0 +1,153 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = DomainId{} + +// DomainId is a struct representing the Resource ID for a Domain +type DomainId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + AppName string + DomainName string +} + +// NewDomainID returns a new DomainId struct +func NewDomainID(subscriptionId string, resourceGroupName string, springName string, appName string, domainName string) DomainId { + return DomainId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + AppName: appName, + DomainName: domainName, + } +} + +// ParseDomainID parses 'input' into a DomainId +func ParseDomainID(input string) (*DomainId, error) { + parser := resourceids.NewParserFromResourceIdType(DomainId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DomainId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.AppName, ok = parsed.Parsed["appName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "appName", *parsed) + } + + if id.DomainName, ok = parsed.Parsed["domainName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "domainName", *parsed) + } + + return &id, nil +} + +// ParseDomainIDInsensitively parses 'input' case-insensitively into a DomainId +// note: this method should only be used for API response data and not user input +func ParseDomainIDInsensitively(input string) (*DomainId, error) { + parser := resourceids.NewParserFromResourceIdType(DomainId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := DomainId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.AppName, ok = parsed.Parsed["appName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "appName", *parsed) + } + + if id.DomainName, ok = parsed.Parsed["domainName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "domainName", *parsed) + } + + return &id, nil +} + +// ValidateDomainID checks that 'input' can be parsed as a Domain ID +func ValidateDomainID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseDomainID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Domain ID +func (id DomainId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/apps/%s/domains/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.AppName, id.DomainName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Domain ID +func (id DomainId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticApps", "apps", "apps"), + resourceids.UserSpecifiedSegment("appName", "appValue"), + resourceids.StaticSegment("staticDomains", "domains", "domains"), + resourceids.UserSpecifiedSegment("domainName", "domainValue"), + } +} + +// String returns a human-readable description of this Domain ID +func (id DomainId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("App Name: %q", id.AppName), + fmt.Sprintf("Domain Name: %q", id.DomainName), + } + return fmt.Sprintf("Domain (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_gateway.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_gateway.go new file mode 100644 index 000000000000..dadc41b3cd78 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_gateway.go @@ -0,0 +1,140 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = GatewayId{} + +// GatewayId is a struct representing the Resource ID for a Gateway +type GatewayId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + GatewayName string +} + +// NewGatewayID returns a new GatewayId struct +func NewGatewayID(subscriptionId string, resourceGroupName string, springName string, gatewayName string) GatewayId { + return GatewayId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + GatewayName: gatewayName, + } +} + +// ParseGatewayID parses 'input' into a GatewayId +func ParseGatewayID(input string) (*GatewayId, error) { + parser := resourceids.NewParserFromResourceIdType(GatewayId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := GatewayId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.GatewayName, ok = parsed.Parsed["gatewayName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "gatewayName", *parsed) + } + + return &id, nil +} + +// ParseGatewayIDInsensitively parses 'input' case-insensitively into a GatewayId +// note: this method should only be used for API response data and not user input +func ParseGatewayIDInsensitively(input string) (*GatewayId, error) { + parser := resourceids.NewParserFromResourceIdType(GatewayId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := GatewayId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.GatewayName, ok = parsed.Parsed["gatewayName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "gatewayName", *parsed) + } + + return &id, nil +} + +// ValidateGatewayID checks that 'input' can be parsed as a Gateway ID +func ValidateGatewayID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseGatewayID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Gateway ID +func (id GatewayId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/gateways/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.GatewayName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Gateway ID +func (id GatewayId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticGateways", "gateways", "gateways"), + resourceids.UserSpecifiedSegment("gatewayName", "gatewayValue"), + } +} + +// String returns a human-readable description of this Gateway ID +func (id GatewayId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Gateway Name: %q", id.GatewayName), + } + return fmt.Sprintf("Gateway (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_gatewaydomain.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_gatewaydomain.go new file mode 100644 index 000000000000..9092fa947925 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_gatewaydomain.go @@ -0,0 +1,153 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = GatewayDomainId{} + +// GatewayDomainId is a struct representing the Resource ID for a Gateway Domain +type GatewayDomainId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + GatewayName string + DomainName string +} + +// NewGatewayDomainID returns a new GatewayDomainId struct +func NewGatewayDomainID(subscriptionId string, resourceGroupName string, springName string, gatewayName string, domainName string) GatewayDomainId { + return GatewayDomainId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + GatewayName: gatewayName, + DomainName: domainName, + } +} + +// ParseGatewayDomainID parses 'input' into a GatewayDomainId +func ParseGatewayDomainID(input string) (*GatewayDomainId, error) { + parser := resourceids.NewParserFromResourceIdType(GatewayDomainId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := GatewayDomainId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.GatewayName, ok = parsed.Parsed["gatewayName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "gatewayName", *parsed) + } + + if id.DomainName, ok = parsed.Parsed["domainName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "domainName", *parsed) + } + + return &id, nil +} + +// ParseGatewayDomainIDInsensitively parses 'input' case-insensitively into a GatewayDomainId +// note: this method should only be used for API response data and not user input +func ParseGatewayDomainIDInsensitively(input string) (*GatewayDomainId, error) { + parser := resourceids.NewParserFromResourceIdType(GatewayDomainId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := GatewayDomainId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.GatewayName, ok = parsed.Parsed["gatewayName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "gatewayName", *parsed) + } + + if id.DomainName, ok = parsed.Parsed["domainName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "domainName", *parsed) + } + + return &id, nil +} + +// ValidateGatewayDomainID checks that 'input' can be parsed as a Gateway Domain ID +func ValidateGatewayDomainID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseGatewayDomainID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Gateway Domain ID +func (id GatewayDomainId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/gateways/%s/domains/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.GatewayName, id.DomainName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Gateway Domain ID +func (id GatewayDomainId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticGateways", "gateways", "gateways"), + resourceids.UserSpecifiedSegment("gatewayName", "gatewayValue"), + resourceids.StaticSegment("staticDomains", "domains", "domains"), + resourceids.UserSpecifiedSegment("domainName", "domainValue"), + } +} + +// String returns a human-readable description of this Gateway Domain ID +func (id GatewayDomainId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Gateway Name: %q", id.GatewayName), + fmt.Sprintf("Domain Name: %q", id.DomainName), + } + return fmt.Sprintf("Gateway Domain (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_location.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_location.go new file mode 100644 index 000000000000..921d61c37e1f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_location.go @@ -0,0 +1,114 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = LocationId{} + +// LocationId is a struct representing the Resource ID for a Location +type LocationId struct { + SubscriptionId string + LocationName string +} + +// NewLocationID returns a new LocationId struct +func NewLocationID(subscriptionId string, locationName string) LocationId { + return LocationId{ + SubscriptionId: subscriptionId, + LocationName: locationName, + } +} + +// ParseLocationID parses 'input' into a LocationId +func ParseLocationID(input string) (*LocationId, error) { + parser := resourceids.NewParserFromResourceIdType(LocationId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := LocationId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.LocationName, ok = parsed.Parsed["locationName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "locationName", *parsed) + } + + return &id, nil +} + +// ParseLocationIDInsensitively parses 'input' case-insensitively into a LocationId +// note: this method should only be used for API response data and not user input +func ParseLocationIDInsensitively(input string) (*LocationId, error) { + parser := resourceids.NewParserFromResourceIdType(LocationId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := LocationId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.LocationName, ok = parsed.Parsed["locationName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "locationName", *parsed) + } + + return &id, nil +} + +// ValidateLocationID checks that 'input' can be parsed as a Location ID +func ValidateLocationID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseLocationID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Location ID +func (id LocationId) ID() string { + fmtString := "/subscriptions/%s/providers/Microsoft.AppPlatform/locations/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.LocationName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Location ID +func (id LocationId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticLocations", "locations", "locations"), + resourceids.UserSpecifiedSegment("locationName", "locationValue"), + } +} + +// String returns a human-readable description of this Location ID +func (id LocationId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Location Name: %q", id.LocationName), + } + return fmt.Sprintf("Location (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_predefinedaccelerator.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_predefinedaccelerator.go new file mode 100644 index 000000000000..48e7aa984b6b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_predefinedaccelerator.go @@ -0,0 +1,153 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = PredefinedAcceleratorId{} + +// PredefinedAcceleratorId is a struct representing the Resource ID for a Predefined Accelerator +type PredefinedAcceleratorId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + ApplicationAcceleratorName string + PredefinedAcceleratorName string +} + +// NewPredefinedAcceleratorID returns a new PredefinedAcceleratorId struct +func NewPredefinedAcceleratorID(subscriptionId string, resourceGroupName string, springName string, applicationAcceleratorName string, predefinedAcceleratorName string) PredefinedAcceleratorId { + return PredefinedAcceleratorId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + ApplicationAcceleratorName: applicationAcceleratorName, + PredefinedAcceleratorName: predefinedAcceleratorName, + } +} + +// ParsePredefinedAcceleratorID parses 'input' into a PredefinedAcceleratorId +func ParsePredefinedAcceleratorID(input string) (*PredefinedAcceleratorId, error) { + parser := resourceids.NewParserFromResourceIdType(PredefinedAcceleratorId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := PredefinedAcceleratorId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ApplicationAcceleratorName, ok = parsed.Parsed["applicationAcceleratorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "applicationAcceleratorName", *parsed) + } + + if id.PredefinedAcceleratorName, ok = parsed.Parsed["predefinedAcceleratorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "predefinedAcceleratorName", *parsed) + } + + return &id, nil +} + +// ParsePredefinedAcceleratorIDInsensitively parses 'input' case-insensitively into a PredefinedAcceleratorId +// note: this method should only be used for API response data and not user input +func ParsePredefinedAcceleratorIDInsensitively(input string) (*PredefinedAcceleratorId, error) { + parser := resourceids.NewParserFromResourceIdType(PredefinedAcceleratorId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := PredefinedAcceleratorId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ApplicationAcceleratorName, ok = parsed.Parsed["applicationAcceleratorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "applicationAcceleratorName", *parsed) + } + + if id.PredefinedAcceleratorName, ok = parsed.Parsed["predefinedAcceleratorName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "predefinedAcceleratorName", *parsed) + } + + return &id, nil +} + +// ValidatePredefinedAcceleratorID checks that 'input' can be parsed as a Predefined Accelerator ID +func ValidatePredefinedAcceleratorID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParsePredefinedAcceleratorID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Predefined Accelerator ID +func (id PredefinedAcceleratorId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/applicationAccelerators/%s/predefinedAccelerators/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.ApplicationAcceleratorName, id.PredefinedAcceleratorName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Predefined Accelerator ID +func (id PredefinedAcceleratorId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticApplicationAccelerators", "applicationAccelerators", "applicationAccelerators"), + resourceids.UserSpecifiedSegment("applicationAcceleratorName", "applicationAcceleratorValue"), + resourceids.StaticSegment("staticPredefinedAccelerators", "predefinedAccelerators", "predefinedAccelerators"), + resourceids.UserSpecifiedSegment("predefinedAcceleratorName", "predefinedAcceleratorValue"), + } +} + +// String returns a human-readable description of this Predefined Accelerator ID +func (id PredefinedAcceleratorId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Application Accelerator Name: %q", id.ApplicationAcceleratorName), + fmt.Sprintf("Predefined Accelerator Name: %q", id.PredefinedAcceleratorName), + } + return fmt.Sprintf("Predefined Accelerator (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_result.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_result.go new file mode 100644 index 000000000000..1e910fa56811 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_result.go @@ -0,0 +1,166 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ResultId{} + +// ResultId is a struct representing the Resource ID for a Result +type ResultId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + BuildServiceName string + BuildName string + ResultName string +} + +// NewResultID returns a new ResultId struct +func NewResultID(subscriptionId string, resourceGroupName string, springName string, buildServiceName string, buildName string, resultName string) ResultId { + return ResultId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + BuildServiceName: buildServiceName, + BuildName: buildName, + ResultName: resultName, + } +} + +// ParseResultID parses 'input' into a ResultId +func ParseResultID(input string) (*ResultId, error) { + parser := resourceids.NewParserFromResourceIdType(ResultId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ResultId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + if id.BuildName, ok = parsed.Parsed["buildName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildName", *parsed) + } + + if id.ResultName, ok = parsed.Parsed["resultName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resultName", *parsed) + } + + return &id, nil +} + +// ParseResultIDInsensitively parses 'input' case-insensitively into a ResultId +// note: this method should only be used for API response data and not user input +func ParseResultIDInsensitively(input string) (*ResultId, error) { + parser := resourceids.NewParserFromResourceIdType(ResultId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ResultId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + if id.BuildName, ok = parsed.Parsed["buildName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildName", *parsed) + } + + if id.ResultName, ok = parsed.Parsed["resultName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resultName", *parsed) + } + + return &id, nil +} + +// ValidateResultID checks that 'input' can be parsed as a Result ID +func ValidateResultID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseResultID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Result ID +func (id ResultId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/buildServices/%s/builds/%s/results/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.BuildServiceName, id.BuildName, id.ResultName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Result ID +func (id ResultId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticBuildServices", "buildServices", "buildServices"), + resourceids.UserSpecifiedSegment("buildServiceName", "buildServiceValue"), + resourceids.StaticSegment("staticBuilds", "builds", "builds"), + resourceids.UserSpecifiedSegment("buildName", "buildValue"), + resourceids.StaticSegment("staticResults", "results", "results"), + resourceids.UserSpecifiedSegment("resultName", "resultValue"), + } +} + +// String returns a human-readable description of this Result ID +func (id ResultId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Build Service Name: %q", id.BuildServiceName), + fmt.Sprintf("Build Name: %q", id.BuildName), + fmt.Sprintf("Result Name: %q", id.ResultName), + } + return fmt.Sprintf("Result (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_routeconfig.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_routeconfig.go new file mode 100644 index 000000000000..c4321531ea61 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_routeconfig.go @@ -0,0 +1,153 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = RouteConfigId{} + +// RouteConfigId is a struct representing the Resource ID for a Route Config +type RouteConfigId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + GatewayName string + RouteConfigName string +} + +// NewRouteConfigID returns a new RouteConfigId struct +func NewRouteConfigID(subscriptionId string, resourceGroupName string, springName string, gatewayName string, routeConfigName string) RouteConfigId { + return RouteConfigId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + GatewayName: gatewayName, + RouteConfigName: routeConfigName, + } +} + +// ParseRouteConfigID parses 'input' into a RouteConfigId +func ParseRouteConfigID(input string) (*RouteConfigId, error) { + parser := resourceids.NewParserFromResourceIdType(RouteConfigId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := RouteConfigId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.GatewayName, ok = parsed.Parsed["gatewayName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "gatewayName", *parsed) + } + + if id.RouteConfigName, ok = parsed.Parsed["routeConfigName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "routeConfigName", *parsed) + } + + return &id, nil +} + +// ParseRouteConfigIDInsensitively parses 'input' case-insensitively into a RouteConfigId +// note: this method should only be used for API response data and not user input +func ParseRouteConfigIDInsensitively(input string) (*RouteConfigId, error) { + parser := resourceids.NewParserFromResourceIdType(RouteConfigId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := RouteConfigId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.GatewayName, ok = parsed.Parsed["gatewayName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "gatewayName", *parsed) + } + + if id.RouteConfigName, ok = parsed.Parsed["routeConfigName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "routeConfigName", *parsed) + } + + return &id, nil +} + +// ValidateRouteConfigID checks that 'input' can be parsed as a Route Config ID +func ValidateRouteConfigID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseRouteConfigID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Route Config ID +func (id RouteConfigId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/gateways/%s/routeConfigs/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.GatewayName, id.RouteConfigName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Route Config ID +func (id RouteConfigId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticGateways", "gateways", "gateways"), + resourceids.UserSpecifiedSegment("gatewayName", "gatewayValue"), + resourceids.StaticSegment("staticRouteConfigs", "routeConfigs", "routeConfigs"), + resourceids.UserSpecifiedSegment("routeConfigName", "routeConfigValue"), + } +} + +// String returns a human-readable description of this Route Config ID +func (id RouteConfigId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Gateway Name: %q", id.GatewayName), + fmt.Sprintf("Route Config Name: %q", id.RouteConfigName), + } + return fmt.Sprintf("Route Config (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_serviceregistry.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_serviceregistry.go new file mode 100644 index 000000000000..32eab236c943 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_serviceregistry.go @@ -0,0 +1,140 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = ServiceRegistryId{} + +// ServiceRegistryId is a struct representing the Resource ID for a Service Registry +type ServiceRegistryId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + ServiceRegistryName string +} + +// NewServiceRegistryID returns a new ServiceRegistryId struct +func NewServiceRegistryID(subscriptionId string, resourceGroupName string, springName string, serviceRegistryName string) ServiceRegistryId { + return ServiceRegistryId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + ServiceRegistryName: serviceRegistryName, + } +} + +// ParseServiceRegistryID parses 'input' into a ServiceRegistryId +func ParseServiceRegistryID(input string) (*ServiceRegistryId, error) { + parser := resourceids.NewParserFromResourceIdType(ServiceRegistryId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ServiceRegistryId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ServiceRegistryName, ok = parsed.Parsed["serviceRegistryName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "serviceRegistryName", *parsed) + } + + return &id, nil +} + +// ParseServiceRegistryIDInsensitively parses 'input' case-insensitively into a ServiceRegistryId +// note: this method should only be used for API response data and not user input +func ParseServiceRegistryIDInsensitively(input string) (*ServiceRegistryId, error) { + parser := resourceids.NewParserFromResourceIdType(ServiceRegistryId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := ServiceRegistryId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.ServiceRegistryName, ok = parsed.Parsed["serviceRegistryName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "serviceRegistryName", *parsed) + } + + return &id, nil +} + +// ValidateServiceRegistryID checks that 'input' can be parsed as a Service Registry ID +func ValidateServiceRegistryID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseServiceRegistryID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Service Registry ID +func (id ServiceRegistryId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/serviceRegistries/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.ServiceRegistryName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Service Registry ID +func (id ServiceRegistryId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticServiceRegistries", "serviceRegistries", "serviceRegistries"), + resourceids.UserSpecifiedSegment("serviceRegistryName", "serviceRegistryValue"), + } +} + +// String returns a human-readable description of this Service Registry ID +func (id ServiceRegistryId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Service Registry Name: %q", id.ServiceRegistryName), + } + return fmt.Sprintf("Service Registry (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_spring.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_spring.go new file mode 100644 index 000000000000..9241aa92627c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_spring.go @@ -0,0 +1,127 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = SpringId{} + +// SpringId is a struct representing the Resource ID for a Spring +type SpringId struct { + SubscriptionId string + ResourceGroupName string + SpringName string +} + +// NewSpringID returns a new SpringId struct +func NewSpringID(subscriptionId string, resourceGroupName string, springName string) SpringId { + return SpringId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + } +} + +// ParseSpringID parses 'input' into a SpringId +func ParseSpringID(input string) (*SpringId, error) { + parser := resourceids.NewParserFromResourceIdType(SpringId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := SpringId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + return &id, nil +} + +// ParseSpringIDInsensitively parses 'input' case-insensitively into a SpringId +// note: this method should only be used for API response data and not user input +func ParseSpringIDInsensitively(input string) (*SpringId, error) { + parser := resourceids.NewParserFromResourceIdType(SpringId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := SpringId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + return &id, nil +} + +// ValidateSpringID checks that 'input' can be parsed as a Spring ID +func ValidateSpringID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseSpringID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Spring ID +func (id SpringId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Spring ID +func (id SpringId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + } +} + +// String returns a human-readable description of this Spring ID +func (id SpringId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + } + return fmt.Sprintf("Spring (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_storage.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_storage.go new file mode 100644 index 000000000000..423ed3464973 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_storage.go @@ -0,0 +1,140 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = StorageId{} + +// StorageId is a struct representing the Resource ID for a Storage +type StorageId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + StorageName string +} + +// NewStorageID returns a new StorageId struct +func NewStorageID(subscriptionId string, resourceGroupName string, springName string, storageName string) StorageId { + return StorageId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + StorageName: storageName, + } +} + +// ParseStorageID parses 'input' into a StorageId +func ParseStorageID(input string) (*StorageId, error) { + parser := resourceids.NewParserFromResourceIdType(StorageId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := StorageId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.StorageName, ok = parsed.Parsed["storageName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "storageName", *parsed) + } + + return &id, nil +} + +// ParseStorageIDInsensitively parses 'input' case-insensitively into a StorageId +// note: this method should only be used for API response data and not user input +func ParseStorageIDInsensitively(input string) (*StorageId, error) { + parser := resourceids.NewParserFromResourceIdType(StorageId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := StorageId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.StorageName, ok = parsed.Parsed["storageName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "storageName", *parsed) + } + + return &id, nil +} + +// ValidateStorageID checks that 'input' can be parsed as a Storage ID +func ValidateStorageID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseStorageID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Storage ID +func (id StorageId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/storages/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.StorageName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Storage ID +func (id StorageId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticStorages", "storages", "storages"), + resourceids.UserSpecifiedSegment("storageName", "storageValue"), + } +} + +// String returns a human-readable description of this Storage ID +func (id StorageId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Storage Name: %q", id.StorageName), + } + return fmt.Sprintf("Storage (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_supportedbuildpack.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_supportedbuildpack.go new file mode 100644 index 000000000000..5ba143a83892 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_supportedbuildpack.go @@ -0,0 +1,153 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = SupportedBuildPackId{} + +// SupportedBuildPackId is a struct representing the Resource ID for a Supported Build Pack +type SupportedBuildPackId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + BuildServiceName string + SupportedBuildPackName string +} + +// NewSupportedBuildPackID returns a new SupportedBuildPackId struct +func NewSupportedBuildPackID(subscriptionId string, resourceGroupName string, springName string, buildServiceName string, supportedBuildPackName string) SupportedBuildPackId { + return SupportedBuildPackId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + BuildServiceName: buildServiceName, + SupportedBuildPackName: supportedBuildPackName, + } +} + +// ParseSupportedBuildPackID parses 'input' into a SupportedBuildPackId +func ParseSupportedBuildPackID(input string) (*SupportedBuildPackId, error) { + parser := resourceids.NewParserFromResourceIdType(SupportedBuildPackId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := SupportedBuildPackId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + if id.SupportedBuildPackName, ok = parsed.Parsed["supportedBuildPackName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "supportedBuildPackName", *parsed) + } + + return &id, nil +} + +// ParseSupportedBuildPackIDInsensitively parses 'input' case-insensitively into a SupportedBuildPackId +// note: this method should only be used for API response data and not user input +func ParseSupportedBuildPackIDInsensitively(input string) (*SupportedBuildPackId, error) { + parser := resourceids.NewParserFromResourceIdType(SupportedBuildPackId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := SupportedBuildPackId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + if id.SupportedBuildPackName, ok = parsed.Parsed["supportedBuildPackName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "supportedBuildPackName", *parsed) + } + + return &id, nil +} + +// ValidateSupportedBuildPackID checks that 'input' can be parsed as a Supported Build Pack ID +func ValidateSupportedBuildPackID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseSupportedBuildPackID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Supported Build Pack ID +func (id SupportedBuildPackId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/buildServices/%s/supportedBuildPacks/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.BuildServiceName, id.SupportedBuildPackName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Supported Build Pack ID +func (id SupportedBuildPackId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticBuildServices", "buildServices", "buildServices"), + resourceids.UserSpecifiedSegment("buildServiceName", "buildServiceValue"), + resourceids.StaticSegment("staticSupportedBuildPacks", "supportedBuildPacks", "supportedBuildPacks"), + resourceids.UserSpecifiedSegment("supportedBuildPackName", "supportedBuildPackValue"), + } +} + +// String returns a human-readable description of this Supported Build Pack ID +func (id SupportedBuildPackId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Build Service Name: %q", id.BuildServiceName), + fmt.Sprintf("Supported Build Pack Name: %q", id.SupportedBuildPackName), + } + return fmt.Sprintf("Supported Build Pack (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_supportedstack.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_supportedstack.go new file mode 100644 index 000000000000..b840619a7c5e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/id_supportedstack.go @@ -0,0 +1,153 @@ +package appplatform + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ resourceids.ResourceId = SupportedStackId{} + +// SupportedStackId is a struct representing the Resource ID for a Supported Stack +type SupportedStackId struct { + SubscriptionId string + ResourceGroupName string + SpringName string + BuildServiceName string + SupportedStackName string +} + +// NewSupportedStackID returns a new SupportedStackId struct +func NewSupportedStackID(subscriptionId string, resourceGroupName string, springName string, buildServiceName string, supportedStackName string) SupportedStackId { + return SupportedStackId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + SpringName: springName, + BuildServiceName: buildServiceName, + SupportedStackName: supportedStackName, + } +} + +// ParseSupportedStackID parses 'input' into a SupportedStackId +func ParseSupportedStackID(input string) (*SupportedStackId, error) { + parser := resourceids.NewParserFromResourceIdType(SupportedStackId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := SupportedStackId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + if id.SupportedStackName, ok = parsed.Parsed["supportedStackName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "supportedStackName", *parsed) + } + + return &id, nil +} + +// ParseSupportedStackIDInsensitively parses 'input' case-insensitively into a SupportedStackId +// note: this method should only be used for API response data and not user input +func ParseSupportedStackIDInsensitively(input string) (*SupportedStackId, error) { + parser := resourceids.NewParserFromResourceIdType(SupportedStackId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + var ok bool + id := SupportedStackId{} + + if id.SubscriptionId, ok = parsed.Parsed["subscriptionId"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", *parsed) + } + + if id.ResourceGroupName, ok = parsed.Parsed["resourceGroupName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", *parsed) + } + + if id.SpringName, ok = parsed.Parsed["springName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "springName", *parsed) + } + + if id.BuildServiceName, ok = parsed.Parsed["buildServiceName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "buildServiceName", *parsed) + } + + if id.SupportedStackName, ok = parsed.Parsed["supportedStackName"]; !ok { + return nil, resourceids.NewSegmentNotSpecifiedError(id, "supportedStackName", *parsed) + } + + return &id, nil +} + +// ValidateSupportedStackID checks that 'input' can be parsed as a Supported Stack ID +func ValidateSupportedStackID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseSupportedStackID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Supported Stack ID +func (id SupportedStackId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.AppPlatform/spring/%s/buildServices/%s/supportedStacks/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.SpringName, id.BuildServiceName, id.SupportedStackName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Supported Stack ID +func (id SupportedStackId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftAppPlatform", "Microsoft.AppPlatform", "Microsoft.AppPlatform"), + resourceids.StaticSegment("staticSpring", "spring", "spring"), + resourceids.UserSpecifiedSegment("springName", "springValue"), + resourceids.StaticSegment("staticBuildServices", "buildServices", "buildServices"), + resourceids.UserSpecifiedSegment("buildServiceName", "buildServiceValue"), + resourceids.StaticSegment("staticSupportedStacks", "supportedStacks", "supportedStacks"), + resourceids.UserSpecifiedSegment("supportedStackName", "supportedStackValue"), + } +} + +// String returns a human-readable description of this Supported Stack ID +func (id SupportedStackId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Spring Name: %q", id.SpringName), + fmt.Sprintf("Build Service Name: %q", id.BuildServiceName), + fmt.Sprintf("Supported Stack Name: %q", id.SupportedStackName), + } + return fmt.Sprintf("Supported Stack (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainscreateorupdate.go new file mode 100644 index 000000000000..343840555b6b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainscreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalCustomDomainsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ApiPortalCustomDomainsCreateOrUpdate ... +func (c AppPlatformClient) ApiPortalCustomDomainsCreateOrUpdate(ctx context.Context, id ApiPortalDomainId, input ApiPortalCustomDomainResource) (result ApiPortalCustomDomainsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ApiPortalCustomDomainsCreateOrUpdateThenPoll performs ApiPortalCustomDomainsCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) ApiPortalCustomDomainsCreateOrUpdateThenPoll(ctx context.Context, id ApiPortalDomainId, input ApiPortalCustomDomainResource) error { + result, err := c.ApiPortalCustomDomainsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ApiPortalCustomDomainsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ApiPortalCustomDomainsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainsdelete.go new file mode 100644 index 000000000000..d3a53d5848ed --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainsdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalCustomDomainsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ApiPortalCustomDomainsDelete ... +func (c AppPlatformClient) ApiPortalCustomDomainsDelete(ctx context.Context, id ApiPortalDomainId) (result ApiPortalCustomDomainsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ApiPortalCustomDomainsDeleteThenPoll performs ApiPortalCustomDomainsDelete then polls until it's completed +func (c AppPlatformClient) ApiPortalCustomDomainsDeleteThenPoll(ctx context.Context, id ApiPortalDomainId) error { + result, err := c.ApiPortalCustomDomainsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing ApiPortalCustomDomainsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ApiPortalCustomDomainsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainsget.go new file mode 100644 index 000000000000..1aaeaca282af --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainsget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalCustomDomainsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ApiPortalCustomDomainResource +} + +// ApiPortalCustomDomainsGet ... +func (c AppPlatformClient) ApiPortalCustomDomainsGet(ctx context.Context, id ApiPortalDomainId) (result ApiPortalCustomDomainsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainslist.go new file mode 100644 index 000000000000..dd24cfdcaa60 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalcustomdomainslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalCustomDomainsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]ApiPortalCustomDomainResource +} + +type ApiPortalCustomDomainsListCompleteResult struct { + Items []ApiPortalCustomDomainResource +} + +// ApiPortalCustomDomainsList ... +func (c AppPlatformClient) ApiPortalCustomDomainsList(ctx context.Context, id ApiPortalId) (result ApiPortalCustomDomainsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/domains", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]ApiPortalCustomDomainResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ApiPortalCustomDomainsListComplete retrieves all the results into a single object +func (c AppPlatformClient) ApiPortalCustomDomainsListComplete(ctx context.Context, id ApiPortalId) (ApiPortalCustomDomainsListCompleteResult, error) { + return c.ApiPortalCustomDomainsListCompleteMatchingPredicate(ctx, id, ApiPortalCustomDomainResourceOperationPredicate{}) +} + +// ApiPortalCustomDomainsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) ApiPortalCustomDomainsListCompleteMatchingPredicate(ctx context.Context, id ApiPortalId, predicate ApiPortalCustomDomainResourceOperationPredicate) (result ApiPortalCustomDomainsListCompleteResult, err error) { + items := make([]ApiPortalCustomDomainResource, 0) + + resp, err := c.ApiPortalCustomDomainsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ApiPortalCustomDomainsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalscreateorupdate.go new file mode 100644 index 000000000000..1a3a3b851229 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalscreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ApiPortalsCreateOrUpdate ... +func (c AppPlatformClient) ApiPortalsCreateOrUpdate(ctx context.Context, id ApiPortalId, input ApiPortalResource) (result ApiPortalsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ApiPortalsCreateOrUpdateThenPoll performs ApiPortalsCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) ApiPortalsCreateOrUpdateThenPoll(ctx context.Context, id ApiPortalId, input ApiPortalResource) error { + result, err := c.ApiPortalsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ApiPortalsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ApiPortalsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalsdelete.go new file mode 100644 index 000000000000..3976b7c230b8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalsdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ApiPortalsDelete ... +func (c AppPlatformClient) ApiPortalsDelete(ctx context.Context, id ApiPortalId) (result ApiPortalsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ApiPortalsDeleteThenPoll performs ApiPortalsDelete then polls until it's completed +func (c AppPlatformClient) ApiPortalsDeleteThenPoll(ctx context.Context, id ApiPortalId) error { + result, err := c.ApiPortalsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing ApiPortalsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ApiPortalsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalsget.go new file mode 100644 index 000000000000..3948bf536be0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalsget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ApiPortalResource +} + +// ApiPortalsGet ... +func (c AppPlatformClient) ApiPortalsGet(ctx context.Context, id ApiPortalId) (result ApiPortalsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalslist.go new file mode 100644 index 000000000000..4fe7fa338871 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]ApiPortalResource +} + +type ApiPortalsListCompleteResult struct { + Items []ApiPortalResource +} + +// ApiPortalsList ... +func (c AppPlatformClient) ApiPortalsList(ctx context.Context, id SpringId) (result ApiPortalsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/apiPortals", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]ApiPortalResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ApiPortalsListComplete retrieves all the results into a single object +func (c AppPlatformClient) ApiPortalsListComplete(ctx context.Context, id SpringId) (ApiPortalsListCompleteResult, error) { + return c.ApiPortalsListCompleteMatchingPredicate(ctx, id, ApiPortalResourceOperationPredicate{}) +} + +// ApiPortalsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) ApiPortalsListCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate ApiPortalResourceOperationPredicate) (result ApiPortalsListCompleteResult, err error) { + items := make([]ApiPortalResource, 0) + + resp, err := c.ApiPortalsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ApiPortalsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalsvalidatedomain.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalsvalidatedomain.go new file mode 100644 index 000000000000..2e3193bcefad --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apiportalsvalidatedomain.go @@ -0,0 +1,56 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalsValidateDomainOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *CustomDomainValidateResult +} + +// ApiPortalsValidateDomain ... +func (c AppPlatformClient) ApiPortalsValidateDomain(ctx context.Context, id ApiPortalId, input CustomDomainValidatePayload) (result ApiPortalsValidateDomainOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/validateDomain", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmscreateorupdate.go new file mode 100644 index 000000000000..b69179d2ba00 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmscreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApmsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ApmsCreateOrUpdate ... +func (c AppPlatformClient) ApmsCreateOrUpdate(ctx context.Context, id ApmId, input ApmResource) (result ApmsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ApmsCreateOrUpdateThenPoll performs ApmsCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) ApmsCreateOrUpdateThenPoll(ctx context.Context, id ApmId, input ApmResource) error { + result, err := c.ApmsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ApmsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ApmsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmsdelete.go new file mode 100644 index 000000000000..40545193b5ec --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmsdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApmsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ApmsDelete ... +func (c AppPlatformClient) ApmsDelete(ctx context.Context, id ApmId) (result ApmsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ApmsDeleteThenPoll performs ApmsDelete then polls until it's completed +func (c AppPlatformClient) ApmsDeleteThenPoll(ctx context.Context, id ApmId) error { + result, err := c.ApmsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing ApmsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ApmsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmsget.go new file mode 100644 index 000000000000..59da90abeca8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmsget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApmsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ApmResource +} + +// ApmsGet ... +func (c AppPlatformClient) ApmsGet(ctx context.Context, id ApmId) (result ApmsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmslist.go new file mode 100644 index 000000000000..66b4c2545b99 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApmsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]ApmResource +} + +type ApmsListCompleteResult struct { + Items []ApmResource +} + +// ApmsList ... +func (c AppPlatformClient) ApmsList(ctx context.Context, id SpringId) (result ApmsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/apms", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]ApmResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ApmsListComplete retrieves all the results into a single object +func (c AppPlatformClient) ApmsListComplete(ctx context.Context, id SpringId) (ApmsListCompleteResult, error) { + return c.ApmsListCompleteMatchingPredicate(ctx, id, ApmResourceOperationPredicate{}) +} + +// ApmsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) ApmsListCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate ApmResourceOperationPredicate) (result ApmsListCompleteResult, err error) { + items := make([]ApmResource, 0) + + resp, err := c.ApmsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ApmsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmslistsecretkeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmslistsecretkeys.go new file mode 100644 index 000000000000..b7f624bbac5f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_apmslistsecretkeys.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApmsListSecretKeysOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ApmSecretKeys +} + +// ApmsListSecretKeys ... +func (c AppPlatformClient) ApmsListSecretKeys(ctx context.Context, id ApmId) (result ApmsListSecretKeysOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/listSecretKeys", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorscreateorupdate.go new file mode 100644 index 000000000000..f1835b244fac --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorscreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationAcceleratorsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ApplicationAcceleratorsCreateOrUpdate ... +func (c AppPlatformClient) ApplicationAcceleratorsCreateOrUpdate(ctx context.Context, id ApplicationAcceleratorId, input ApplicationAcceleratorResource) (result ApplicationAcceleratorsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ApplicationAcceleratorsCreateOrUpdateThenPoll performs ApplicationAcceleratorsCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) ApplicationAcceleratorsCreateOrUpdateThenPoll(ctx context.Context, id ApplicationAcceleratorId, input ApplicationAcceleratorResource) error { + result, err := c.ApplicationAcceleratorsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ApplicationAcceleratorsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ApplicationAcceleratorsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorsdelete.go new file mode 100644 index 000000000000..109d73e6b1b5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorsdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationAcceleratorsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ApplicationAcceleratorsDelete ... +func (c AppPlatformClient) ApplicationAcceleratorsDelete(ctx context.Context, id ApplicationAcceleratorId) (result ApplicationAcceleratorsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ApplicationAcceleratorsDeleteThenPoll performs ApplicationAcceleratorsDelete then polls until it's completed +func (c AppPlatformClient) ApplicationAcceleratorsDeleteThenPoll(ctx context.Context, id ApplicationAcceleratorId) error { + result, err := c.ApplicationAcceleratorsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing ApplicationAcceleratorsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ApplicationAcceleratorsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorsget.go new file mode 100644 index 000000000000..70695e78c802 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorsget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationAcceleratorsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ApplicationAcceleratorResource +} + +// ApplicationAcceleratorsGet ... +func (c AppPlatformClient) ApplicationAcceleratorsGet(ctx context.Context, id ApplicationAcceleratorId) (result ApplicationAcceleratorsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorslist.go new file mode 100644 index 000000000000..1ac404cdd4db --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationacceleratorslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationAcceleratorsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]ApplicationAcceleratorResource +} + +type ApplicationAcceleratorsListCompleteResult struct { + Items []ApplicationAcceleratorResource +} + +// ApplicationAcceleratorsList ... +func (c AppPlatformClient) ApplicationAcceleratorsList(ctx context.Context, id SpringId) (result ApplicationAcceleratorsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/applicationAccelerators", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]ApplicationAcceleratorResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ApplicationAcceleratorsListComplete retrieves all the results into a single object +func (c AppPlatformClient) ApplicationAcceleratorsListComplete(ctx context.Context, id SpringId) (ApplicationAcceleratorsListCompleteResult, error) { + return c.ApplicationAcceleratorsListCompleteMatchingPredicate(ctx, id, ApplicationAcceleratorResourceOperationPredicate{}) +} + +// ApplicationAcceleratorsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) ApplicationAcceleratorsListCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate ApplicationAcceleratorResourceOperationPredicate) (result ApplicationAcceleratorsListCompleteResult, err error) { + items := make([]ApplicationAcceleratorResource, 0) + + resp, err := c.ApplicationAcceleratorsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ApplicationAcceleratorsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewscreateorupdate.go new file mode 100644 index 000000000000..ecf20a391ae6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewscreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationLiveViewsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ApplicationLiveViewsCreateOrUpdate ... +func (c AppPlatformClient) ApplicationLiveViewsCreateOrUpdate(ctx context.Context, id ApplicationLiveViewId, input ApplicationLiveViewResource) (result ApplicationLiveViewsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ApplicationLiveViewsCreateOrUpdateThenPoll performs ApplicationLiveViewsCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) ApplicationLiveViewsCreateOrUpdateThenPoll(ctx context.Context, id ApplicationLiveViewId, input ApplicationLiveViewResource) error { + result, err := c.ApplicationLiveViewsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ApplicationLiveViewsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ApplicationLiveViewsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewsdelete.go new file mode 100644 index 000000000000..c2ebcecd89f9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewsdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationLiveViewsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ApplicationLiveViewsDelete ... +func (c AppPlatformClient) ApplicationLiveViewsDelete(ctx context.Context, id ApplicationLiveViewId) (result ApplicationLiveViewsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ApplicationLiveViewsDeleteThenPoll performs ApplicationLiveViewsDelete then polls until it's completed +func (c AppPlatformClient) ApplicationLiveViewsDeleteThenPoll(ctx context.Context, id ApplicationLiveViewId) error { + result, err := c.ApplicationLiveViewsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing ApplicationLiveViewsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ApplicationLiveViewsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewsget.go new file mode 100644 index 000000000000..4b6a02feb1fe --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewsget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationLiveViewsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ApplicationLiveViewResource +} + +// ApplicationLiveViewsGet ... +func (c AppPlatformClient) ApplicationLiveViewsGet(ctx context.Context, id ApplicationLiveViewId) (result ApplicationLiveViewsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewslist.go new file mode 100644 index 000000000000..f17b635aa336 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_applicationliveviewslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationLiveViewsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]ApplicationLiveViewResource +} + +type ApplicationLiveViewsListCompleteResult struct { + Items []ApplicationLiveViewResource +} + +// ApplicationLiveViewsList ... +func (c AppPlatformClient) ApplicationLiveViewsList(ctx context.Context, id SpringId) (result ApplicationLiveViewsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/applicationLiveViews", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]ApplicationLiveViewResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ApplicationLiveViewsListComplete retrieves all the results into a single object +func (c AppPlatformClient) ApplicationLiveViewsListComplete(ctx context.Context, id SpringId) (ApplicationLiveViewsListCompleteResult, error) { + return c.ApplicationLiveViewsListCompleteMatchingPredicate(ctx, id, ApplicationLiveViewResourceOperationPredicate{}) +} + +// ApplicationLiveViewsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) ApplicationLiveViewsListCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate ApplicationLiveViewResourceOperationPredicate) (result ApplicationLiveViewsListCompleteResult, err error) { + items := make([]ApplicationLiveViewResource, 0) + + resp, err := c.ApplicationLiveViewsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ApplicationLiveViewsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appscreateorupdate.go new file mode 100644 index 000000000000..1062b44cf5d8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appscreateorupdate.go @@ -0,0 +1,75 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AppsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// AppsCreateOrUpdate ... +func (c AppPlatformClient) AppsCreateOrUpdate(ctx context.Context, id AppId, input AppResource) (result AppsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// AppsCreateOrUpdateThenPoll performs AppsCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) AppsCreateOrUpdateThenPoll(ctx context.Context, id AppId, input AppResource) error { + result, err := c.AppsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing AppsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after AppsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsdelete.go new file mode 100644 index 000000000000..79fa43f0e424 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AppsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// AppsDelete ... +func (c AppPlatformClient) AppsDelete(ctx context.Context, id AppId) (result AppsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// AppsDeleteThenPoll performs AppsDelete then polls until it's completed +func (c AppPlatformClient) AppsDeleteThenPoll(ctx context.Context, id AppId) error { + result, err := c.AppsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing AppsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after AppsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsget.go new file mode 100644 index 000000000000..caae588b1350 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsget.go @@ -0,0 +1,80 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AppsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *AppResource +} + +type AppsGetOperationOptions struct { + SyncStatus *string +} + +func DefaultAppsGetOperationOptions() AppsGetOperationOptions { + return AppsGetOperationOptions{} +} + +func (o AppsGetOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o AppsGetOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o AppsGetOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.SyncStatus != nil { + out.Append("syncStatus", fmt.Sprintf("%v", *o.SyncStatus)) + } + return &out +} + +// AppsGet ... +func (c AppPlatformClient) AppsGet(ctx context.Context, id AppId, options AppsGetOperationOptions) (result AppsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsgetresourceuploadurl.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsgetresourceuploadurl.go new file mode 100644 index 000000000000..11e6757dc49e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsgetresourceuploadurl.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AppsGetResourceUploadUrlOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ResourceUploadDefinition +} + +// AppsGetResourceUploadUrl ... +func (c AppPlatformClient) AppsGetResourceUploadUrl(ctx context.Context, id AppId) (result AppsGetResourceUploadUrlOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/getResourceUploadUrl", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appslist.go new file mode 100644 index 000000000000..b21ccab45fd7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AppsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]AppResource +} + +type AppsListCompleteResult struct { + Items []AppResource +} + +// AppsList ... +func (c AppPlatformClient) AppsList(ctx context.Context, id SpringId) (result AppsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/apps", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]AppResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// AppsListComplete retrieves all the results into a single object +func (c AppPlatformClient) AppsListComplete(ctx context.Context, id SpringId) (AppsListCompleteResult, error) { + return c.AppsListCompleteMatchingPredicate(ctx, id, AppResourceOperationPredicate{}) +} + +// AppsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) AppsListCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate AppResourceOperationPredicate) (result AppsListCompleteResult, err error) { + items := make([]AppResource, 0) + + resp, err := c.AppsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = AppsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appssetactivedeployments.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appssetactivedeployments.go new file mode 100644 index 000000000000..de604b2c7708 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appssetactivedeployments.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AppsSetActiveDeploymentsOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// AppsSetActiveDeployments ... +func (c AppPlatformClient) AppsSetActiveDeployments(ctx context.Context, id AppId, input ActiveDeploymentCollection) (result AppsSetActiveDeploymentsOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/setActiveDeployments", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// AppsSetActiveDeploymentsThenPoll performs AppsSetActiveDeployments then polls until it's completed +func (c AppPlatformClient) AppsSetActiveDeploymentsThenPoll(ctx context.Context, id AppId, input ActiveDeploymentCollection) error { + result, err := c.AppsSetActiveDeployments(ctx, id, input) + if err != nil { + return fmt.Errorf("performing AppsSetActiveDeployments: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after AppsSetActiveDeployments: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsupdate.go new file mode 100644 index 000000000000..2175545ba4bf --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AppsUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// AppsUpdate ... +func (c AppPlatformClient) AppsUpdate(ctx context.Context, id AppId, input AppResource) (result AppsUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// AppsUpdateThenPoll performs AppsUpdate then polls until it's completed +func (c AppPlatformClient) AppsUpdateThenPoll(ctx context.Context, id AppId, input AppResource) error { + result, err := c.AppsUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing AppsUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after AppsUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsvalidatedomain.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsvalidatedomain.go new file mode 100644 index 000000000000..f4d00124884d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_appsvalidatedomain.go @@ -0,0 +1,56 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AppsValidateDomainOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *CustomDomainValidateResult +} + +// AppsValidateDomain ... +func (c AppPlatformClient) AppsValidateDomain(ctx context.Context, id AppId, input CustomDomainValidatePayload) (result AppsValidateDomainOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/validateDomain", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingscreateorupdate.go new file mode 100644 index 000000000000..2084997079d1 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingscreateorupdate.go @@ -0,0 +1,75 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BindingsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// BindingsCreateOrUpdate ... +func (c AppPlatformClient) BindingsCreateOrUpdate(ctx context.Context, id BindingId, input BindingResource) (result BindingsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// BindingsCreateOrUpdateThenPoll performs BindingsCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) BindingsCreateOrUpdateThenPoll(ctx context.Context, id BindingId, input BindingResource) error { + result, err := c.BindingsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing BindingsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after BindingsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingsdelete.go new file mode 100644 index 000000000000..d300c757a847 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingsdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BindingsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// BindingsDelete ... +func (c AppPlatformClient) BindingsDelete(ctx context.Context, id BindingId) (result BindingsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// BindingsDeleteThenPoll performs BindingsDelete then polls until it's completed +func (c AppPlatformClient) BindingsDeleteThenPoll(ctx context.Context, id BindingId) error { + result, err := c.BindingsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing BindingsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after BindingsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingsget.go new file mode 100644 index 000000000000..4ce26da83324 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingsget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BindingsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *BindingResource +} + +// BindingsGet ... +func (c AppPlatformClient) BindingsGet(ctx context.Context, id BindingId) (result BindingsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingslist.go new file mode 100644 index 000000000000..392f353b7495 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BindingsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]BindingResource +} + +type BindingsListCompleteResult struct { + Items []BindingResource +} + +// BindingsList ... +func (c AppPlatformClient) BindingsList(ctx context.Context, id AppId) (result BindingsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/bindings", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]BindingResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// BindingsListComplete retrieves all the results into a single object +func (c AppPlatformClient) BindingsListComplete(ctx context.Context, id AppId) (BindingsListCompleteResult, error) { + return c.BindingsListCompleteMatchingPredicate(ctx, id, BindingResourceOperationPredicate{}) +} + +// BindingsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) BindingsListCompleteMatchingPredicate(ctx context.Context, id AppId, predicate BindingResourceOperationPredicate) (result BindingsListCompleteResult, err error) { + items := make([]BindingResource, 0) + + resp, err := c.BindingsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = BindingsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingsupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingsupdate.go new file mode 100644 index 000000000000..8601d5852ae8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_bindingsupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BindingsUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// BindingsUpdate ... +func (c AppPlatformClient) BindingsUpdate(ctx context.Context, id BindingId, input BindingResource) (result BindingsUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// BindingsUpdateThenPoll performs BindingsUpdate then polls until it's completed +func (c AppPlatformClient) BindingsUpdateThenPoll(ctx context.Context, id BindingId, input BindingResource) error { + result, err := c.BindingsUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing BindingsUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after BindingsUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindingcreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindingcreateorupdate.go new file mode 100644 index 000000000000..7e02eaf0f1d4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindingcreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildpackBindingCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// BuildpackBindingCreateOrUpdate ... +func (c AppPlatformClient) BuildpackBindingCreateOrUpdate(ctx context.Context, id BuildPackBindingId, input BuildpackBindingResource) (result BuildpackBindingCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// BuildpackBindingCreateOrUpdateThenPoll performs BuildpackBindingCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) BuildpackBindingCreateOrUpdateThenPoll(ctx context.Context, id BuildPackBindingId, input BuildpackBindingResource) error { + result, err := c.BuildpackBindingCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing BuildpackBindingCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after BuildpackBindingCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindingdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindingdelete.go new file mode 100644 index 000000000000..59cb3110b065 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindingdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildpackBindingDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// BuildpackBindingDelete ... +func (c AppPlatformClient) BuildpackBindingDelete(ctx context.Context, id BuildPackBindingId) (result BuildpackBindingDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// BuildpackBindingDeleteThenPoll performs BuildpackBindingDelete then polls until it's completed +func (c AppPlatformClient) BuildpackBindingDeleteThenPoll(ctx context.Context, id BuildPackBindingId) error { + result, err := c.BuildpackBindingDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing BuildpackBindingDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after BuildpackBindingDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindingget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindingget.go new file mode 100644 index 000000000000..f59808f54799 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindingget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildpackBindingGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *BuildpackBindingResource +} + +// BuildpackBindingGet ... +func (c AppPlatformClient) BuildpackBindingGet(ctx context.Context, id BuildPackBindingId) (result BuildpackBindingGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindinglist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindinglist.go new file mode 100644 index 000000000000..5b305306af25 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindinglist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildpackBindingListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]BuildpackBindingResource +} + +type BuildpackBindingListCompleteResult struct { + Items []BuildpackBindingResource +} + +// BuildpackBindingList ... +func (c AppPlatformClient) BuildpackBindingList(ctx context.Context, id BuilderId) (result BuildpackBindingListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/buildPackBindings", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]BuildpackBindingResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// BuildpackBindingListComplete retrieves all the results into a single object +func (c AppPlatformClient) BuildpackBindingListComplete(ctx context.Context, id BuilderId) (BuildpackBindingListCompleteResult, error) { + return c.BuildpackBindingListCompleteMatchingPredicate(ctx, id, BuildpackBindingResourceOperationPredicate{}) +} + +// BuildpackBindingListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) BuildpackBindingListCompleteMatchingPredicate(ctx context.Context, id BuilderId, predicate BuildpackBindingResourceOperationPredicate) (result BuildpackBindingListCompleteResult, err error) { + items := make([]BuildpackBindingResource, 0) + + resp, err := c.BuildpackBindingList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = BuildpackBindingListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindinglistforcluster.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindinglistforcluster.go new file mode 100644 index 000000000000..d10f4f45cf84 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildpackbindinglistforcluster.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildpackBindingListForClusterOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]BuildpackBindingResource +} + +type BuildpackBindingListForClusterCompleteResult struct { + Items []BuildpackBindingResource +} + +// BuildpackBindingListForCluster ... +func (c AppPlatformClient) BuildpackBindingListForCluster(ctx context.Context, id SpringId) (result BuildpackBindingListForClusterOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/buildPackBindings", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]BuildpackBindingResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// BuildpackBindingListForClusterComplete retrieves all the results into a single object +func (c AppPlatformClient) BuildpackBindingListForClusterComplete(ctx context.Context, id SpringId) (BuildpackBindingListForClusterCompleteResult, error) { + return c.BuildpackBindingListForClusterCompleteMatchingPredicate(ctx, id, BuildpackBindingResourceOperationPredicate{}) +} + +// BuildpackBindingListForClusterCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) BuildpackBindingListForClusterCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate BuildpackBindingResourceOperationPredicate) (result BuildpackBindingListForClusterCompleteResult, err error) { + items := make([]BuildpackBindingResource, 0) + + resp, err := c.BuildpackBindingListForCluster(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = BuildpackBindingListForClusterCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildserviceagentpoolget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildserviceagentpoolget.go new file mode 100644 index 000000000000..04c445ca9607 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildserviceagentpoolget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceAgentPoolGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *BuildServiceAgentPoolResource +} + +// BuildServiceAgentPoolGet ... +func (c AppPlatformClient) BuildServiceAgentPoolGet(ctx context.Context, id AgentPoolId) (result BuildServiceAgentPoolGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildserviceagentpoollist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildserviceagentpoollist.go new file mode 100644 index 000000000000..31f3c55edcca --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildserviceagentpoollist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceAgentPoolListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]BuildServiceAgentPoolResource +} + +type BuildServiceAgentPoolListCompleteResult struct { + Items []BuildServiceAgentPoolResource +} + +// BuildServiceAgentPoolList ... +func (c AppPlatformClient) BuildServiceAgentPoolList(ctx context.Context, id BuildServiceId) (result BuildServiceAgentPoolListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/agentPools", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]BuildServiceAgentPoolResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// BuildServiceAgentPoolListComplete retrieves all the results into a single object +func (c AppPlatformClient) BuildServiceAgentPoolListComplete(ctx context.Context, id BuildServiceId) (BuildServiceAgentPoolListCompleteResult, error) { + return c.BuildServiceAgentPoolListCompleteMatchingPredicate(ctx, id, BuildServiceAgentPoolResourceOperationPredicate{}) +} + +// BuildServiceAgentPoolListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) BuildServiceAgentPoolListCompleteMatchingPredicate(ctx context.Context, id BuildServiceId, predicate BuildServiceAgentPoolResourceOperationPredicate) (result BuildServiceAgentPoolListCompleteResult, err error) { + items := make([]BuildServiceAgentPoolResource, 0) + + resp, err := c.BuildServiceAgentPoolList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = BuildServiceAgentPoolListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildserviceagentpoolupdateput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildserviceagentpoolupdateput.go new file mode 100644 index 000000000000..af74a280944a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildserviceagentpoolupdateput.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceAgentPoolUpdatePutOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// BuildServiceAgentPoolUpdatePut ... +func (c AppPlatformClient) BuildServiceAgentPoolUpdatePut(ctx context.Context, id AgentPoolId, input BuildServiceAgentPoolResource) (result BuildServiceAgentPoolUpdatePutOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// BuildServiceAgentPoolUpdatePutThenPoll performs BuildServiceAgentPoolUpdatePut then polls until it's completed +func (c AppPlatformClient) BuildServiceAgentPoolUpdatePutThenPoll(ctx context.Context, id AgentPoolId, input BuildServiceAgentPoolResource) error { + result, err := c.BuildServiceAgentPoolUpdatePut(ctx, id, input) + if err != nil { + return fmt.Errorf("performing BuildServiceAgentPoolUpdatePut: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after BuildServiceAgentPoolUpdatePut: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuildercreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuildercreateorupdate.go new file mode 100644 index 000000000000..f47ea0e16a0f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuildercreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceBuilderCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// BuildServiceBuilderCreateOrUpdate ... +func (c AppPlatformClient) BuildServiceBuilderCreateOrUpdate(ctx context.Context, id BuilderId, input BuilderResource) (result BuildServiceBuilderCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// BuildServiceBuilderCreateOrUpdateThenPoll performs BuildServiceBuilderCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) BuildServiceBuilderCreateOrUpdateThenPoll(ctx context.Context, id BuilderId, input BuilderResource) error { + result, err := c.BuildServiceBuilderCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing BuildServiceBuilderCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after BuildServiceBuilderCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderdelete.go new file mode 100644 index 000000000000..9fe5316588a1 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceBuilderDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// BuildServiceBuilderDelete ... +func (c AppPlatformClient) BuildServiceBuilderDelete(ctx context.Context, id BuilderId) (result BuildServiceBuilderDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// BuildServiceBuilderDeleteThenPoll performs BuildServiceBuilderDelete then polls until it's completed +func (c AppPlatformClient) BuildServiceBuilderDeleteThenPoll(ctx context.Context, id BuilderId) error { + result, err := c.BuildServiceBuilderDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing BuildServiceBuilderDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after BuildServiceBuilderDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderget.go new file mode 100644 index 000000000000..ea83f7aeaa67 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceBuilderGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *BuilderResource +} + +// BuildServiceBuilderGet ... +func (c AppPlatformClient) BuildServiceBuilderGet(ctx context.Context, id BuilderId) (result BuildServiceBuilderGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderlist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderlist.go new file mode 100644 index 000000000000..ec7975184b61 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderlist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceBuilderListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]BuilderResource +} + +type BuildServiceBuilderListCompleteResult struct { + Items []BuilderResource +} + +// BuildServiceBuilderList ... +func (c AppPlatformClient) BuildServiceBuilderList(ctx context.Context, id BuildServiceId) (result BuildServiceBuilderListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/builders", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]BuilderResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// BuildServiceBuilderListComplete retrieves all the results into a single object +func (c AppPlatformClient) BuildServiceBuilderListComplete(ctx context.Context, id BuildServiceId) (BuildServiceBuilderListCompleteResult, error) { + return c.BuildServiceBuilderListCompleteMatchingPredicate(ctx, id, BuilderResourceOperationPredicate{}) +} + +// BuildServiceBuilderListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) BuildServiceBuilderListCompleteMatchingPredicate(ctx context.Context, id BuildServiceId, predicate BuilderResourceOperationPredicate) (result BuildServiceBuilderListCompleteResult, err error) { + items := make([]BuilderResource, 0) + + resp, err := c.BuildServiceBuilderList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = BuildServiceBuilderListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderlistdeployments.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderlistdeployments.go new file mode 100644 index 000000000000..291b37d66a81 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicebuilderlistdeployments.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceBuilderListDeploymentsOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *DeploymentList +} + +// BuildServiceBuilderListDeployments ... +func (c AppPlatformClient) BuildServiceBuilderListDeployments(ctx context.Context, id BuilderId) (result BuildServiceBuilderListDeploymentsOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/listUsingDeployments", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicecreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicecreateorupdate.go new file mode 100644 index 000000000000..d464d7238506 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicecreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// BuildServiceCreateOrUpdate ... +func (c AppPlatformClient) BuildServiceCreateOrUpdate(ctx context.Context, id BuildServiceId, input BuildService) (result BuildServiceCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// BuildServiceCreateOrUpdateThenPoll performs BuildServiceCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) BuildServiceCreateOrUpdateThenPoll(ctx context.Context, id BuildServiceId, input BuildService) error { + result, err := c.BuildServiceCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing BuildServiceCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after BuildServiceCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicecreateorupdatebuild.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicecreateorupdatebuild.go new file mode 100644 index 000000000000..3b2c867a59cf --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicecreateorupdatebuild.go @@ -0,0 +1,56 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceCreateOrUpdateBuildOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Build +} + +// BuildServiceCreateOrUpdateBuild ... +func (c AppPlatformClient) BuildServiceCreateOrUpdateBuild(ctx context.Context, id BuildId, input Build) (result BuildServiceCreateOrUpdateBuildOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicedeletebuild.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicedeletebuild.go new file mode 100644 index 000000000000..6ff40b00877b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicedeletebuild.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceDeleteBuildOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// BuildServiceDeleteBuild ... +func (c AppPlatformClient) BuildServiceDeleteBuild(ctx context.Context, id BuildId) (result BuildServiceDeleteBuildOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// BuildServiceDeleteBuildThenPoll performs BuildServiceDeleteBuild then polls until it's completed +func (c AppPlatformClient) BuildServiceDeleteBuildThenPoll(ctx context.Context, id BuildId) error { + result, err := c.BuildServiceDeleteBuild(ctx, id) + if err != nil { + return fmt.Errorf("performing BuildServiceDeleteBuild: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after BuildServiceDeleteBuild: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuild.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuild.go new file mode 100644 index 000000000000..2d0a116c8965 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuild.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceGetBuildOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *Build +} + +// BuildServiceGetBuild ... +func (c AppPlatformClient) BuildServiceGetBuild(ctx context.Context, id BuildId) (result BuildServiceGetBuildOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuildresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuildresult.go new file mode 100644 index 000000000000..42f7b3574b92 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuildresult.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceGetBuildResultOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *BuildResult +} + +// BuildServiceGetBuildResult ... +func (c AppPlatformClient) BuildServiceGetBuildResult(ctx context.Context, id ResultId) (result BuildServiceGetBuildResultOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuildresultlog.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuildresultlog.go new file mode 100644 index 000000000000..308c183ca38a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuildresultlog.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceGetBuildResultLogOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *BuildResultLog +} + +// BuildServiceGetBuildResultLog ... +func (c AppPlatformClient) BuildServiceGetBuildResultLog(ctx context.Context, id ResultId) (result BuildServiceGetBuildResultLogOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/getLogFileUrl", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuildservice.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuildservice.go new file mode 100644 index 000000000000..ea12d2e5cb1b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetbuildservice.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceGetBuildServiceOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *BuildService +} + +// BuildServiceGetBuildService ... +func (c AppPlatformClient) BuildServiceGetBuildService(ctx context.Context, id BuildServiceId) (result BuildServiceGetBuildServiceOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetresourceuploadurl.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetresourceuploadurl.go new file mode 100644 index 000000000000..85da59906227 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetresourceuploadurl.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceGetResourceUploadUrlOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ResourceUploadDefinition +} + +// BuildServiceGetResourceUploadUrl ... +func (c AppPlatformClient) BuildServiceGetResourceUploadUrl(ctx context.Context, id BuildServiceId) (result BuildServiceGetResourceUploadUrlOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/getResourceUploadUrl", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetsupportedbuildpack.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetsupportedbuildpack.go new file mode 100644 index 000000000000..5ca3d89e71a1 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetsupportedbuildpack.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceGetSupportedBuildpackOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *SupportedBuildpackResource +} + +// BuildServiceGetSupportedBuildpack ... +func (c AppPlatformClient) BuildServiceGetSupportedBuildpack(ctx context.Context, id SupportedBuildPackId) (result BuildServiceGetSupportedBuildpackOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetsupportedstack.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetsupportedstack.go new file mode 100644 index 000000000000..5776631756be --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicegetsupportedstack.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceGetSupportedStackOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *SupportedStackResource +} + +// BuildServiceGetSupportedStack ... +func (c AppPlatformClient) BuildServiceGetSupportedStack(ctx context.Context, id SupportedStackId) (result BuildServiceGetSupportedStackOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistbuildresults.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistbuildresults.go new file mode 100644 index 000000000000..b46aec3d5d7e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistbuildresults.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceListBuildResultsOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]BuildResult +} + +type BuildServiceListBuildResultsCompleteResult struct { + Items []BuildResult +} + +// BuildServiceListBuildResults ... +func (c AppPlatformClient) BuildServiceListBuildResults(ctx context.Context, id BuildId) (result BuildServiceListBuildResultsOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/results", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]BuildResult `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// BuildServiceListBuildResultsComplete retrieves all the results into a single object +func (c AppPlatformClient) BuildServiceListBuildResultsComplete(ctx context.Context, id BuildId) (BuildServiceListBuildResultsCompleteResult, error) { + return c.BuildServiceListBuildResultsCompleteMatchingPredicate(ctx, id, BuildResultOperationPredicate{}) +} + +// BuildServiceListBuildResultsCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) BuildServiceListBuildResultsCompleteMatchingPredicate(ctx context.Context, id BuildId, predicate BuildResultOperationPredicate) (result BuildServiceListBuildResultsCompleteResult, err error) { + items := make([]BuildResult, 0) + + resp, err := c.BuildServiceListBuildResults(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = BuildServiceListBuildResultsCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistbuilds.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistbuilds.go new file mode 100644 index 000000000000..bc01562c819a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistbuilds.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceListBuildsOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]Build +} + +type BuildServiceListBuildsCompleteResult struct { + Items []Build +} + +// BuildServiceListBuilds ... +func (c AppPlatformClient) BuildServiceListBuilds(ctx context.Context, id BuildServiceId) (result BuildServiceListBuildsOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/builds", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]Build `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// BuildServiceListBuildsComplete retrieves all the results into a single object +func (c AppPlatformClient) BuildServiceListBuildsComplete(ctx context.Context, id BuildServiceId) (BuildServiceListBuildsCompleteResult, error) { + return c.BuildServiceListBuildsCompleteMatchingPredicate(ctx, id, BuildOperationPredicate{}) +} + +// BuildServiceListBuildsCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) BuildServiceListBuildsCompleteMatchingPredicate(ctx context.Context, id BuildServiceId, predicate BuildOperationPredicate) (result BuildServiceListBuildsCompleteResult, err error) { + items := make([]Build, 0) + + resp, err := c.BuildServiceListBuilds(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = BuildServiceListBuildsCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistbuildservices.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistbuildservices.go new file mode 100644 index 000000000000..633702ea3ff3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistbuildservices.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceListBuildServicesOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]BuildService +} + +type BuildServiceListBuildServicesCompleteResult struct { + Items []BuildService +} + +// BuildServiceListBuildServices ... +func (c AppPlatformClient) BuildServiceListBuildServices(ctx context.Context, id SpringId) (result BuildServiceListBuildServicesOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/buildServices", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]BuildService `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// BuildServiceListBuildServicesComplete retrieves all the results into a single object +func (c AppPlatformClient) BuildServiceListBuildServicesComplete(ctx context.Context, id SpringId) (BuildServiceListBuildServicesCompleteResult, error) { + return c.BuildServiceListBuildServicesCompleteMatchingPredicate(ctx, id, BuildServiceOperationPredicate{}) +} + +// BuildServiceListBuildServicesCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) BuildServiceListBuildServicesCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate BuildServiceOperationPredicate) (result BuildServiceListBuildServicesCompleteResult, err error) { + items := make([]BuildService, 0) + + resp, err := c.BuildServiceListBuildServices(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = BuildServiceListBuildServicesCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistsupportedbuildpacks.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistsupportedbuildpacks.go new file mode 100644 index 000000000000..6a4aa2e5655b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistsupportedbuildpacks.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceListSupportedBuildpacksOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *SupportedBuildpacksCollection +} + +// BuildServiceListSupportedBuildpacks ... +func (c AppPlatformClient) BuildServiceListSupportedBuildpacks(ctx context.Context, id BuildServiceId) (result BuildServiceListSupportedBuildpacksOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/supportedBuildPacks", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistsupportedstacks.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistsupportedstacks.go new file mode 100644 index 000000000000..7c4cec95213c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_buildservicelistsupportedstacks.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceListSupportedStacksOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *SupportedStacksCollection +} + +// BuildServiceListSupportedStacks ... +func (c AppPlatformClient) BuildServiceListSupportedStacks(ctx context.Context, id BuildServiceId) (result BuildServiceListSupportedStacksOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/supportedStacks", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificatescreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificatescreateorupdate.go new file mode 100644 index 000000000000..be12226f9dbb --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificatescreateorupdate.go @@ -0,0 +1,75 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CertificatesCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CertificatesCreateOrUpdate ... +func (c AppPlatformClient) CertificatesCreateOrUpdate(ctx context.Context, id CertificateId, input CertificateResource) (result CertificatesCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CertificatesCreateOrUpdateThenPoll performs CertificatesCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) CertificatesCreateOrUpdateThenPoll(ctx context.Context, id CertificateId, input CertificateResource) error { + result, err := c.CertificatesCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CertificatesCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CertificatesCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificatesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificatesdelete.go new file mode 100644 index 000000000000..e8e5065bf5d3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificatesdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CertificatesDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CertificatesDelete ... +func (c AppPlatformClient) CertificatesDelete(ctx context.Context, id CertificateId) (result CertificatesDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CertificatesDeleteThenPoll performs CertificatesDelete then polls until it's completed +func (c AppPlatformClient) CertificatesDeleteThenPoll(ctx context.Context, id CertificateId) error { + result, err := c.CertificatesDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing CertificatesDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CertificatesDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificatesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificatesget.go new file mode 100644 index 000000000000..ac688c2e6908 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificatesget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CertificatesGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *CertificateResource +} + +// CertificatesGet ... +func (c AppPlatformClient) CertificatesGet(ctx context.Context, id CertificateId) (result CertificatesGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificateslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificateslist.go new file mode 100644 index 000000000000..fe84f9db14cc --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_certificateslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CertificatesListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]CertificateResource +} + +type CertificatesListCompleteResult struct { + Items []CertificateResource +} + +// CertificatesList ... +func (c AppPlatformClient) CertificatesList(ctx context.Context, id SpringId) (result CertificatesListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/certificates", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]CertificateResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// CertificatesListComplete retrieves all the results into a single object +func (c AppPlatformClient) CertificatesListComplete(ctx context.Context, id SpringId) (CertificatesListCompleteResult, error) { + return c.CertificatesListCompleteMatchingPredicate(ctx, id, CertificateResourceOperationPredicate{}) +} + +// CertificatesListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) CertificatesListCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate CertificateResourceOperationPredicate) (result CertificatesListCompleteResult, err error) { + items := make([]CertificateResource, 0) + + resp, err := c.CertificatesList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = CertificatesListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversget.go new file mode 100644 index 000000000000..a66bca827bc0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversget.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigServersGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ConfigServerResource +} + +// ConfigServersGet ... +func (c AppPlatformClient) ConfigServersGet(ctx context.Context, id SpringId) (result ConfigServersGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/configServers/default", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversupdatepatch.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversupdatepatch.go new file mode 100644 index 000000000000..686c318e87d6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversupdatepatch.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigServersUpdatePatchOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ConfigServersUpdatePatch ... +func (c AppPlatformClient) ConfigServersUpdatePatch(ctx context.Context, id SpringId, input ConfigServerResource) (result ConfigServersUpdatePatchOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: fmt.Sprintf("%s/configServers/default", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ConfigServersUpdatePatchThenPoll performs ConfigServersUpdatePatch then polls until it's completed +func (c AppPlatformClient) ConfigServersUpdatePatchThenPoll(ctx context.Context, id SpringId, input ConfigServerResource) error { + result, err := c.ConfigServersUpdatePatch(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ConfigServersUpdatePatch: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ConfigServersUpdatePatch: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversupdateput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversupdateput.go new file mode 100644 index 000000000000..da686c70098e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversupdateput.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigServersUpdatePutOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ConfigServersUpdatePut ... +func (c AppPlatformClient) ConfigServersUpdatePut(ctx context.Context, id SpringId, input ConfigServerResource) (result ConfigServersUpdatePutOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: fmt.Sprintf("%s/configServers/default", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ConfigServersUpdatePutThenPoll performs ConfigServersUpdatePut then polls until it's completed +func (c AppPlatformClient) ConfigServersUpdatePutThenPoll(ctx context.Context, id SpringId, input ConfigServerResource) error { + result, err := c.ConfigServersUpdatePut(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ConfigServersUpdatePut: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ConfigServersUpdatePut: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversvalidate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversvalidate.go new file mode 100644 index 000000000000..93b1722d6eba --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configserversvalidate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigServersValidateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ConfigServersValidate ... +func (c AppPlatformClient) ConfigServersValidate(ctx context.Context, id SpringId, input ConfigServerSettings) (result ConfigServersValidateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/configServers/validate", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ConfigServersValidateThenPoll performs ConfigServersValidate then polls until it's completed +func (c AppPlatformClient) ConfigServersValidateThenPoll(ctx context.Context, id SpringId, input ConfigServerSettings) error { + result, err := c.ConfigServersValidate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ConfigServersValidate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ConfigServersValidate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicescreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicescreateorupdate.go new file mode 100644 index 000000000000..c1d292bdd420 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicescreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServicesCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ConfigurationServicesCreateOrUpdate ... +func (c AppPlatformClient) ConfigurationServicesCreateOrUpdate(ctx context.Context, id ConfigurationServiceId, input ConfigurationServiceResource) (result ConfigurationServicesCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ConfigurationServicesCreateOrUpdateThenPoll performs ConfigurationServicesCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) ConfigurationServicesCreateOrUpdateThenPoll(ctx context.Context, id ConfigurationServiceId, input ConfigurationServiceResource) error { + result, err := c.ConfigurationServicesCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ConfigurationServicesCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ConfigurationServicesCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesdelete.go new file mode 100644 index 000000000000..84e57b139689 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServicesDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ConfigurationServicesDelete ... +func (c AppPlatformClient) ConfigurationServicesDelete(ctx context.Context, id ConfigurationServiceId) (result ConfigurationServicesDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ConfigurationServicesDeleteThenPoll performs ConfigurationServicesDelete then polls until it's completed +func (c AppPlatformClient) ConfigurationServicesDeleteThenPoll(ctx context.Context, id ConfigurationServiceId) error { + result, err := c.ConfigurationServicesDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing ConfigurationServicesDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ConfigurationServicesDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesget.go new file mode 100644 index 000000000000..97ddb3204eee --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServicesGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ConfigurationServiceResource +} + +// ConfigurationServicesGet ... +func (c AppPlatformClient) ConfigurationServicesGet(ctx context.Context, id ConfigurationServiceId) (result ConfigurationServicesGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationserviceslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationserviceslist.go new file mode 100644 index 000000000000..de46615ecc9b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationserviceslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServicesListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]ConfigurationServiceResource +} + +type ConfigurationServicesListCompleteResult struct { + Items []ConfigurationServiceResource +} + +// ConfigurationServicesList ... +func (c AppPlatformClient) ConfigurationServicesList(ctx context.Context, id SpringId) (result ConfigurationServicesListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/configurationServices", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]ConfigurationServiceResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ConfigurationServicesListComplete retrieves all the results into a single object +func (c AppPlatformClient) ConfigurationServicesListComplete(ctx context.Context, id SpringId) (ConfigurationServicesListCompleteResult, error) { + return c.ConfigurationServicesListCompleteMatchingPredicate(ctx, id, ConfigurationServiceResourceOperationPredicate{}) +} + +// ConfigurationServicesListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) ConfigurationServicesListCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate ConfigurationServiceResourceOperationPredicate) (result ConfigurationServicesListCompleteResult, err error) { + items := make([]ConfigurationServiceResource, 0) + + resp, err := c.ConfigurationServicesList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ConfigurationServicesListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesvalidate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesvalidate.go new file mode 100644 index 000000000000..d8953aedc660 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesvalidate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServicesValidateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ConfigurationServicesValidate ... +func (c AppPlatformClient) ConfigurationServicesValidate(ctx context.Context, id ConfigurationServiceId, input ConfigurationServiceSettings) (result ConfigurationServicesValidateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/validate", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ConfigurationServicesValidateThenPoll performs ConfigurationServicesValidate then polls until it's completed +func (c AppPlatformClient) ConfigurationServicesValidateThenPoll(ctx context.Context, id ConfigurationServiceId, input ConfigurationServiceSettings) error { + result, err := c.ConfigurationServicesValidate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ConfigurationServicesValidate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ConfigurationServicesValidate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesvalidateresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesvalidateresource.go new file mode 100644 index 000000000000..4fb3f1b39230 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_configurationservicesvalidateresource.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServicesValidateResourceOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ConfigurationServicesValidateResource ... +func (c AppPlatformClient) ConfigurationServicesValidateResource(ctx context.Context, id ConfigurationServiceId, input ConfigurationServiceResource) (result ConfigurationServicesValidateResourceOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/validateResource", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ConfigurationServicesValidateResourceThenPoll performs ConfigurationServicesValidateResource then polls until it's completed +func (c AppPlatformClient) ConfigurationServicesValidateResourceThenPoll(ctx context.Context, id ConfigurationServiceId, input ConfigurationServiceResource) error { + result, err := c.ConfigurationServicesValidateResource(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ConfigurationServicesValidateResource: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ConfigurationServicesValidateResource: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriescreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriescreateorupdate.go new file mode 100644 index 000000000000..d0a55993c01c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriescreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerRegistriesCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ContainerRegistriesCreateOrUpdate ... +func (c AppPlatformClient) ContainerRegistriesCreateOrUpdate(ctx context.Context, id ContainerRegistryId, input ContainerRegistryResource) (result ContainerRegistriesCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ContainerRegistriesCreateOrUpdateThenPoll performs ContainerRegistriesCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) ContainerRegistriesCreateOrUpdateThenPoll(ctx context.Context, id ContainerRegistryId, input ContainerRegistryResource) error { + result, err := c.ContainerRegistriesCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ContainerRegistriesCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ContainerRegistriesCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriesdelete.go new file mode 100644 index 000000000000..2848b29bbf5f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriesdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerRegistriesDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ContainerRegistriesDelete ... +func (c AppPlatformClient) ContainerRegistriesDelete(ctx context.Context, id ContainerRegistryId) (result ContainerRegistriesDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ContainerRegistriesDeleteThenPoll performs ContainerRegistriesDelete then polls until it's completed +func (c AppPlatformClient) ContainerRegistriesDeleteThenPoll(ctx context.Context, id ContainerRegistryId) error { + result, err := c.ContainerRegistriesDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing ContainerRegistriesDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ContainerRegistriesDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriesget.go new file mode 100644 index 000000000000..1066b2c32b05 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriesget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerRegistriesGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ContainerRegistryResource +} + +// ContainerRegistriesGet ... +func (c AppPlatformClient) ContainerRegistriesGet(ctx context.Context, id ContainerRegistryId) (result ContainerRegistriesGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistrieslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistrieslist.go new file mode 100644 index 000000000000..0caab9be8d28 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistrieslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerRegistriesListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]ContainerRegistryResource +} + +type ContainerRegistriesListCompleteResult struct { + Items []ContainerRegistryResource +} + +// ContainerRegistriesList ... +func (c AppPlatformClient) ContainerRegistriesList(ctx context.Context, id SpringId) (result ContainerRegistriesListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/containerRegistries", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]ContainerRegistryResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ContainerRegistriesListComplete retrieves all the results into a single object +func (c AppPlatformClient) ContainerRegistriesListComplete(ctx context.Context, id SpringId) (ContainerRegistriesListCompleteResult, error) { + return c.ContainerRegistriesListCompleteMatchingPredicate(ctx, id, ContainerRegistryResourceOperationPredicate{}) +} + +// ContainerRegistriesListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) ContainerRegistriesListCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate ContainerRegistryResourceOperationPredicate) (result ContainerRegistriesListCompleteResult, err error) { + items := make([]ContainerRegistryResource, 0) + + resp, err := c.ContainerRegistriesList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ContainerRegistriesListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriesvalidate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriesvalidate.go new file mode 100644 index 000000000000..8686ce71b98d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_containerregistriesvalidate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerRegistriesValidateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ContainerRegistriesValidate ... +func (c AppPlatformClient) ContainerRegistriesValidate(ctx context.Context, id ContainerRegistryId, input ContainerRegistryProperties) (result ContainerRegistriesValidateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/validate", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ContainerRegistriesValidateThenPoll performs ContainerRegistriesValidate then polls until it's completed +func (c AppPlatformClient) ContainerRegistriesValidateThenPoll(ctx context.Context, id ContainerRegistryId, input ContainerRegistryProperties) error { + result, err := c.ContainerRegistriesValidate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ContainerRegistriesValidate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ContainerRegistriesValidate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainscreateorupdate.go new file mode 100644 index 000000000000..f2aa593f612d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainscreateorupdate.go @@ -0,0 +1,75 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomDomainsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CustomDomainsCreateOrUpdate ... +func (c AppPlatformClient) CustomDomainsCreateOrUpdate(ctx context.Context, id DomainId, input CustomDomainResource) (result CustomDomainsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CustomDomainsCreateOrUpdateThenPoll performs CustomDomainsCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) CustomDomainsCreateOrUpdateThenPoll(ctx context.Context, id DomainId, input CustomDomainResource) error { + result, err := c.CustomDomainsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CustomDomainsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CustomDomainsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainsdelete.go new file mode 100644 index 000000000000..299f937e354b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainsdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomDomainsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CustomDomainsDelete ... +func (c AppPlatformClient) CustomDomainsDelete(ctx context.Context, id DomainId) (result CustomDomainsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CustomDomainsDeleteThenPoll performs CustomDomainsDelete then polls until it's completed +func (c AppPlatformClient) CustomDomainsDeleteThenPoll(ctx context.Context, id DomainId) error { + result, err := c.CustomDomainsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing CustomDomainsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CustomDomainsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainsget.go new file mode 100644 index 000000000000..f28790341ec5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainsget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomDomainsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *CustomDomainResource +} + +// CustomDomainsGet ... +func (c AppPlatformClient) CustomDomainsGet(ctx context.Context, id DomainId) (result CustomDomainsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainslist.go new file mode 100644 index 000000000000..0e152044ecc0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomDomainsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]CustomDomainResource +} + +type CustomDomainsListCompleteResult struct { + Items []CustomDomainResource +} + +// CustomDomainsList ... +func (c AppPlatformClient) CustomDomainsList(ctx context.Context, id AppId) (result CustomDomainsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/domains", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]CustomDomainResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// CustomDomainsListComplete retrieves all the results into a single object +func (c AppPlatformClient) CustomDomainsListComplete(ctx context.Context, id AppId) (CustomDomainsListCompleteResult, error) { + return c.CustomDomainsListCompleteMatchingPredicate(ctx, id, CustomDomainResourceOperationPredicate{}) +} + +// CustomDomainsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) CustomDomainsListCompleteMatchingPredicate(ctx context.Context, id AppId, predicate CustomDomainResourceOperationPredicate) (result CustomDomainsListCompleteResult, err error) { + items := make([]CustomDomainResource, 0) + + resp, err := c.CustomDomainsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = CustomDomainsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainsupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainsupdate.go new file mode 100644 index 000000000000..c00912b26443 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customdomainsupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomDomainsUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CustomDomainsUpdate ... +func (c AppPlatformClient) CustomDomainsUpdate(ctx context.Context, id DomainId, input CustomDomainResource) (result CustomDomainsUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CustomDomainsUpdateThenPoll performs CustomDomainsUpdate then polls until it's completed +func (c AppPlatformClient) CustomDomainsUpdateThenPoll(ctx context.Context, id DomainId, input CustomDomainResource) error { + result, err := c.CustomDomainsUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CustomDomainsUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CustomDomainsUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorscreateorupdate.go new file mode 100644 index 000000000000..f521008665c4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorscreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomizedAcceleratorsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CustomizedAcceleratorsCreateOrUpdate ... +func (c AppPlatformClient) CustomizedAcceleratorsCreateOrUpdate(ctx context.Context, id CustomizedAcceleratorId, input CustomizedAcceleratorResource) (result CustomizedAcceleratorsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CustomizedAcceleratorsCreateOrUpdateThenPoll performs CustomizedAcceleratorsCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) CustomizedAcceleratorsCreateOrUpdateThenPoll(ctx context.Context, id CustomizedAcceleratorId, input CustomizedAcceleratorResource) error { + result, err := c.CustomizedAcceleratorsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CustomizedAcceleratorsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CustomizedAcceleratorsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorsdelete.go new file mode 100644 index 000000000000..752522a7d35a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorsdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomizedAcceleratorsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// CustomizedAcceleratorsDelete ... +func (c AppPlatformClient) CustomizedAcceleratorsDelete(ctx context.Context, id CustomizedAcceleratorId) (result CustomizedAcceleratorsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CustomizedAcceleratorsDeleteThenPoll performs CustomizedAcceleratorsDelete then polls until it's completed +func (c AppPlatformClient) CustomizedAcceleratorsDeleteThenPoll(ctx context.Context, id CustomizedAcceleratorId) error { + result, err := c.CustomizedAcceleratorsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing CustomizedAcceleratorsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CustomizedAcceleratorsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorsget.go new file mode 100644 index 000000000000..015471ff065a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorsget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomizedAcceleratorsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *CustomizedAcceleratorResource +} + +// CustomizedAcceleratorsGet ... +func (c AppPlatformClient) CustomizedAcceleratorsGet(ctx context.Context, id CustomizedAcceleratorId) (result CustomizedAcceleratorsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorslist.go new file mode 100644 index 000000000000..5f68abc0b1ae --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomizedAcceleratorsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]CustomizedAcceleratorResource +} + +type CustomizedAcceleratorsListCompleteResult struct { + Items []CustomizedAcceleratorResource +} + +// CustomizedAcceleratorsList ... +func (c AppPlatformClient) CustomizedAcceleratorsList(ctx context.Context, id ApplicationAcceleratorId) (result CustomizedAcceleratorsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/customizedAccelerators", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]CustomizedAcceleratorResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// CustomizedAcceleratorsListComplete retrieves all the results into a single object +func (c AppPlatformClient) CustomizedAcceleratorsListComplete(ctx context.Context, id ApplicationAcceleratorId) (CustomizedAcceleratorsListCompleteResult, error) { + return c.CustomizedAcceleratorsListCompleteMatchingPredicate(ctx, id, CustomizedAcceleratorResourceOperationPredicate{}) +} + +// CustomizedAcceleratorsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) CustomizedAcceleratorsListCompleteMatchingPredicate(ctx context.Context, id ApplicationAcceleratorId, predicate CustomizedAcceleratorResourceOperationPredicate) (result CustomizedAcceleratorsListCompleteResult, err error) { + items := make([]CustomizedAcceleratorResource, 0) + + resp, err := c.CustomizedAcceleratorsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = CustomizedAcceleratorsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorsvalidate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorsvalidate.go new file mode 100644 index 000000000000..2d554d0d7906 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_customizedacceleratorsvalidate.go @@ -0,0 +1,57 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomizedAcceleratorsValidateOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *CustomizedAcceleratorValidateResult +} + +// CustomizedAcceleratorsValidate ... +func (c AppPlatformClient) CustomizedAcceleratorsValidate(ctx context.Context, id CustomizedAcceleratorId, input CustomizedAcceleratorProperties) (result CustomizedAcceleratorsValidateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/validate", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentscreateorupdate.go new file mode 100644 index 000000000000..862d371bc993 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentscreateorupdate.go @@ -0,0 +1,75 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// DeploymentsCreateOrUpdate ... +func (c AppPlatformClient) DeploymentsCreateOrUpdate(ctx context.Context, id DeploymentId, input DeploymentResource) (result DeploymentsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeploymentsCreateOrUpdateThenPoll performs DeploymentsCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) DeploymentsCreateOrUpdateThenPoll(ctx context.Context, id DeploymentId, input DeploymentResource) error { + result, err := c.DeploymentsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing DeploymentsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after DeploymentsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsdelete.go new file mode 100644 index 000000000000..e77d73e3b30f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// DeploymentsDelete ... +func (c AppPlatformClient) DeploymentsDelete(ctx context.Context, id DeploymentId) (result DeploymentsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeploymentsDeleteThenPoll performs DeploymentsDelete then polls until it's completed +func (c AppPlatformClient) DeploymentsDeleteThenPoll(ctx context.Context, id DeploymentId) error { + result, err := c.DeploymentsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing DeploymentsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after DeploymentsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsdisableremotedebugging.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsdisableremotedebugging.go new file mode 100644 index 000000000000..110722c2a9fe --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsdisableremotedebugging.go @@ -0,0 +1,70 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsDisableRemoteDebuggingOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// DeploymentsDisableRemoteDebugging ... +func (c AppPlatformClient) DeploymentsDisableRemoteDebugging(ctx context.Context, id DeploymentId) (result DeploymentsDisableRemoteDebuggingOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/disableRemoteDebugging", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeploymentsDisableRemoteDebuggingThenPoll performs DeploymentsDisableRemoteDebugging then polls until it's completed +func (c AppPlatformClient) DeploymentsDisableRemoteDebuggingThenPoll(ctx context.Context, id DeploymentId) error { + result, err := c.DeploymentsDisableRemoteDebugging(ctx, id) + if err != nil { + return fmt.Errorf("performing DeploymentsDisableRemoteDebugging: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after DeploymentsDisableRemoteDebugging: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsenableremotedebugging.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsenableremotedebugging.go new file mode 100644 index 000000000000..5dac45912522 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsenableremotedebugging.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsEnableRemoteDebuggingOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// DeploymentsEnableRemoteDebugging ... +func (c AppPlatformClient) DeploymentsEnableRemoteDebugging(ctx context.Context, id DeploymentId, input RemoteDebuggingPayload) (result DeploymentsEnableRemoteDebuggingOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/enableRemoteDebugging", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeploymentsEnableRemoteDebuggingThenPoll performs DeploymentsEnableRemoteDebugging then polls until it's completed +func (c AppPlatformClient) DeploymentsEnableRemoteDebuggingThenPoll(ctx context.Context, id DeploymentId, input RemoteDebuggingPayload) error { + result, err := c.DeploymentsEnableRemoteDebugging(ctx, id, input) + if err != nil { + return fmt.Errorf("performing DeploymentsEnableRemoteDebugging: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after DeploymentsEnableRemoteDebugging: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgenerateheapdump.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgenerateheapdump.go new file mode 100644 index 000000000000..44da556d6025 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgenerateheapdump.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsGenerateHeapDumpOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// DeploymentsGenerateHeapDump ... +func (c AppPlatformClient) DeploymentsGenerateHeapDump(ctx context.Context, id DeploymentId, input DiagnosticParameters) (result DeploymentsGenerateHeapDumpOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/generateHeapDump", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeploymentsGenerateHeapDumpThenPoll performs DeploymentsGenerateHeapDump then polls until it's completed +func (c AppPlatformClient) DeploymentsGenerateHeapDumpThenPoll(ctx context.Context, id DeploymentId, input DiagnosticParameters) error { + result, err := c.DeploymentsGenerateHeapDump(ctx, id, input) + if err != nil { + return fmt.Errorf("performing DeploymentsGenerateHeapDump: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after DeploymentsGenerateHeapDump: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgeneratethreaddump.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgeneratethreaddump.go new file mode 100644 index 000000000000..c54c5f2391f4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgeneratethreaddump.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsGenerateThreadDumpOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// DeploymentsGenerateThreadDump ... +func (c AppPlatformClient) DeploymentsGenerateThreadDump(ctx context.Context, id DeploymentId, input DiagnosticParameters) (result DeploymentsGenerateThreadDumpOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/generateThreadDump", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeploymentsGenerateThreadDumpThenPoll performs DeploymentsGenerateThreadDump then polls until it's completed +func (c AppPlatformClient) DeploymentsGenerateThreadDumpThenPoll(ctx context.Context, id DeploymentId, input DiagnosticParameters) error { + result, err := c.DeploymentsGenerateThreadDump(ctx, id, input) + if err != nil { + return fmt.Errorf("performing DeploymentsGenerateThreadDump: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after DeploymentsGenerateThreadDump: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsget.go new file mode 100644 index 000000000000..dfca6ee3b05f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *DeploymentResource +} + +// DeploymentsGet ... +func (c AppPlatformClient) DeploymentsGet(ctx context.Context, id DeploymentId) (result DeploymentsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgetlogfileurl.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgetlogfileurl.go new file mode 100644 index 000000000000..0970437d346e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgetlogfileurl.go @@ -0,0 +1,53 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsGetLogFileUrlOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *LogFileUrlResponse +} + +// DeploymentsGetLogFileUrl ... +func (c AppPlatformClient) DeploymentsGetLogFileUrl(ctx context.Context, id DeploymentId) (result DeploymentsGetLogFileUrlOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/getLogFileUrl", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgetremotedebuggingconfig.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgetremotedebuggingconfig.go new file mode 100644 index 000000000000..fdd9485e6d47 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsgetremotedebuggingconfig.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsGetRemoteDebuggingConfigOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *RemoteDebugging +} + +// DeploymentsGetRemoteDebuggingConfig ... +func (c AppPlatformClient) DeploymentsGetRemoteDebuggingConfig(ctx context.Context, id DeploymentId) (result DeploymentsGetRemoteDebuggingConfigOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/getRemoteDebuggingConfig", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentslist.go new file mode 100644 index 000000000000..19039606affb --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentslist.go @@ -0,0 +1,117 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]DeploymentResource +} + +type DeploymentsListCompleteResult struct { + Items []DeploymentResource +} + +type DeploymentsListOperationOptions struct { + Version *[]string +} + +func DefaultDeploymentsListOperationOptions() DeploymentsListOperationOptions { + return DeploymentsListOperationOptions{} +} + +func (o DeploymentsListOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o DeploymentsListOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o DeploymentsListOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.Version != nil { + out.Append("version", fmt.Sprintf("%v", *o.Version)) + } + return &out +} + +// DeploymentsList ... +func (c AppPlatformClient) DeploymentsList(ctx context.Context, id AppId, options DeploymentsListOperationOptions) (result DeploymentsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/deployments", id.ID()), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]DeploymentResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// DeploymentsListComplete retrieves all the results into a single object +func (c AppPlatformClient) DeploymentsListComplete(ctx context.Context, id AppId, options DeploymentsListOperationOptions) (DeploymentsListCompleteResult, error) { + return c.DeploymentsListCompleteMatchingPredicate(ctx, id, options, DeploymentResourceOperationPredicate{}) +} + +// DeploymentsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) DeploymentsListCompleteMatchingPredicate(ctx context.Context, id AppId, options DeploymentsListOperationOptions, predicate DeploymentResourceOperationPredicate) (result DeploymentsListCompleteResult, err error) { + items := make([]DeploymentResource, 0) + + resp, err := c.DeploymentsList(ctx, id, options) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = DeploymentsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentslistforcluster.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentslistforcluster.go new file mode 100644 index 000000000000..8a02aa8f45f1 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentslistforcluster.go @@ -0,0 +1,117 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsListForClusterOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]DeploymentResource +} + +type DeploymentsListForClusterCompleteResult struct { + Items []DeploymentResource +} + +type DeploymentsListForClusterOperationOptions struct { + Version *[]string +} + +func DefaultDeploymentsListForClusterOperationOptions() DeploymentsListForClusterOperationOptions { + return DeploymentsListForClusterOperationOptions{} +} + +func (o DeploymentsListForClusterOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o DeploymentsListForClusterOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + return &out +} + +func (o DeploymentsListForClusterOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.Version != nil { + out.Append("version", fmt.Sprintf("%v", *o.Version)) + } + return &out +} + +// DeploymentsListForCluster ... +func (c AppPlatformClient) DeploymentsListForCluster(ctx context.Context, id SpringId, options DeploymentsListForClusterOperationOptions) (result DeploymentsListForClusterOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/deployments", id.ID()), + OptionsObject: options, + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]DeploymentResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// DeploymentsListForClusterComplete retrieves all the results into a single object +func (c AppPlatformClient) DeploymentsListForClusterComplete(ctx context.Context, id SpringId, options DeploymentsListForClusterOperationOptions) (DeploymentsListForClusterCompleteResult, error) { + return c.DeploymentsListForClusterCompleteMatchingPredicate(ctx, id, options, DeploymentResourceOperationPredicate{}) +} + +// DeploymentsListForClusterCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) DeploymentsListForClusterCompleteMatchingPredicate(ctx context.Context, id SpringId, options DeploymentsListForClusterOperationOptions, predicate DeploymentResourceOperationPredicate) (result DeploymentsListForClusterCompleteResult, err error) { + items := make([]DeploymentResource, 0) + + resp, err := c.DeploymentsListForCluster(ctx, id, options) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = DeploymentsListForClusterCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsrestart.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsrestart.go new file mode 100644 index 000000000000..a613c56f497b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsrestart.go @@ -0,0 +1,70 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsRestartOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// DeploymentsRestart ... +func (c AppPlatformClient) DeploymentsRestart(ctx context.Context, id DeploymentId) (result DeploymentsRestartOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/restart", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeploymentsRestartThenPoll performs DeploymentsRestart then polls until it's completed +func (c AppPlatformClient) DeploymentsRestartThenPoll(ctx context.Context, id DeploymentId) error { + result, err := c.DeploymentsRestart(ctx, id) + if err != nil { + return fmt.Errorf("performing DeploymentsRestart: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after DeploymentsRestart: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsstart.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsstart.go new file mode 100644 index 000000000000..79ae2deacb69 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsstart.go @@ -0,0 +1,70 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsStartOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// DeploymentsStart ... +func (c AppPlatformClient) DeploymentsStart(ctx context.Context, id DeploymentId) (result DeploymentsStartOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/start", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeploymentsStartThenPoll performs DeploymentsStart then polls until it's completed +func (c AppPlatformClient) DeploymentsStartThenPoll(ctx context.Context, id DeploymentId) error { + result, err := c.DeploymentsStart(ctx, id) + if err != nil { + return fmt.Errorf("performing DeploymentsStart: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after DeploymentsStart: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsstartjfr.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsstartjfr.go new file mode 100644 index 000000000000..58158f371b99 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsstartjfr.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsStartJFROperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// DeploymentsStartJFR ... +func (c AppPlatformClient) DeploymentsStartJFR(ctx context.Context, id DeploymentId, input DiagnosticParameters) (result DeploymentsStartJFROperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/startJFR", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeploymentsStartJFRThenPoll performs DeploymentsStartJFR then polls until it's completed +func (c AppPlatformClient) DeploymentsStartJFRThenPoll(ctx context.Context, id DeploymentId, input DiagnosticParameters) error { + result, err := c.DeploymentsStartJFR(ctx, id, input) + if err != nil { + return fmt.Errorf("performing DeploymentsStartJFR: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after DeploymentsStartJFR: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsstop.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsstop.go new file mode 100644 index 000000000000..da31db3f34db --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsstop.go @@ -0,0 +1,70 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsStopOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// DeploymentsStop ... +func (c AppPlatformClient) DeploymentsStop(ctx context.Context, id DeploymentId) (result DeploymentsStopOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/stop", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeploymentsStopThenPoll performs DeploymentsStop then polls until it's completed +func (c AppPlatformClient) DeploymentsStopThenPoll(ctx context.Context, id DeploymentId) error { + result, err := c.DeploymentsStop(ctx, id) + if err != nil { + return fmt.Errorf("performing DeploymentsStop: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after DeploymentsStop: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsupdate.go new file mode 100644 index 000000000000..d86d49febefd --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_deploymentsupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentsUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// DeploymentsUpdate ... +func (c AppPlatformClient) DeploymentsUpdate(ctx context.Context, id DeploymentId, input DeploymentResource) (result DeploymentsUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeploymentsUpdateThenPoll performs DeploymentsUpdate then polls until it's completed +func (c AppPlatformClient) DeploymentsUpdateThenPoll(ctx context.Context, id DeploymentId, input DeploymentResource) error { + result, err := c.DeploymentsUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing DeploymentsUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after DeploymentsUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalscreateorupdate.go new file mode 100644 index 000000000000..9f5620090970 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalscreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DevToolPortalsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// DevToolPortalsCreateOrUpdate ... +func (c AppPlatformClient) DevToolPortalsCreateOrUpdate(ctx context.Context, id DevToolPortalId, input DevToolPortalResource) (result DevToolPortalsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DevToolPortalsCreateOrUpdateThenPoll performs DevToolPortalsCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) DevToolPortalsCreateOrUpdateThenPoll(ctx context.Context, id DevToolPortalId, input DevToolPortalResource) error { + result, err := c.DevToolPortalsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing DevToolPortalsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after DevToolPortalsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalsdelete.go new file mode 100644 index 000000000000..5075cefae3dc --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalsdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DevToolPortalsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// DevToolPortalsDelete ... +func (c AppPlatformClient) DevToolPortalsDelete(ctx context.Context, id DevToolPortalId) (result DevToolPortalsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DevToolPortalsDeleteThenPoll performs DevToolPortalsDelete then polls until it's completed +func (c AppPlatformClient) DevToolPortalsDeleteThenPoll(ctx context.Context, id DevToolPortalId) error { + result, err := c.DevToolPortalsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing DevToolPortalsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after DevToolPortalsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalsget.go new file mode 100644 index 000000000000..d20634e1c147 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalsget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DevToolPortalsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *DevToolPortalResource +} + +// DevToolPortalsGet ... +func (c AppPlatformClient) DevToolPortalsGet(ctx context.Context, id DevToolPortalId) (result DevToolPortalsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalslist.go new file mode 100644 index 000000000000..b2117c20bea2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_devtoolportalslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DevToolPortalsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]DevToolPortalResource +} + +type DevToolPortalsListCompleteResult struct { + Items []DevToolPortalResource +} + +// DevToolPortalsList ... +func (c AppPlatformClient) DevToolPortalsList(ctx context.Context, id SpringId) (result DevToolPortalsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/devToolPortals", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]DevToolPortalResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// DevToolPortalsListComplete retrieves all the results into a single object +func (c AppPlatformClient) DevToolPortalsListComplete(ctx context.Context, id SpringId) (DevToolPortalsListCompleteResult, error) { + return c.DevToolPortalsListCompleteMatchingPredicate(ctx, id, DevToolPortalResourceOperationPredicate{}) +} + +// DevToolPortalsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) DevToolPortalsListCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate DevToolPortalResourceOperationPredicate) (result DevToolPortalsListCompleteResult, err error) { + items := make([]DevToolPortalResource, 0) + + resp, err := c.DevToolPortalsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = DevToolPortalsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserversget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserversget.go new file mode 100644 index 000000000000..415180a98fc2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserversget.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type EurekaServersGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *EurekaServerResource +} + +// EurekaServersGet ... +func (c AppPlatformClient) EurekaServersGet(ctx context.Context, id SpringId) (result EurekaServersGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/eurekaServers/default", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserverslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserverslist.go new file mode 100644 index 000000000000..66b46ae1c9f4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserverslist.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type EurekaServersListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *EurekaServerResourceCollection +} + +// EurekaServersList ... +func (c AppPlatformClient) EurekaServersList(ctx context.Context, id SpringId) (result EurekaServersListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/eurekaServers", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserversupdatepatch.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserversupdatepatch.go new file mode 100644 index 000000000000..fa49094d5931 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserversupdatepatch.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type EurekaServersUpdatePatchOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// EurekaServersUpdatePatch ... +func (c AppPlatformClient) EurekaServersUpdatePatch(ctx context.Context, id SpringId, input EurekaServerResource) (result EurekaServersUpdatePatchOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: fmt.Sprintf("%s/eurekaServers/default", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// EurekaServersUpdatePatchThenPoll performs EurekaServersUpdatePatch then polls until it's completed +func (c AppPlatformClient) EurekaServersUpdatePatchThenPoll(ctx context.Context, id SpringId, input EurekaServerResource) error { + result, err := c.EurekaServersUpdatePatch(ctx, id, input) + if err != nil { + return fmt.Errorf("performing EurekaServersUpdatePatch: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after EurekaServersUpdatePatch: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserversupdateput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserversupdateput.go new file mode 100644 index 000000000000..dbc71ff1c379 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_eurekaserversupdateput.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type EurekaServersUpdatePutOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// EurekaServersUpdatePut ... +func (c AppPlatformClient) EurekaServersUpdatePut(ctx context.Context, id SpringId, input EurekaServerResource) (result EurekaServersUpdatePutOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: fmt.Sprintf("%s/eurekaServers/default", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// EurekaServersUpdatePutThenPoll performs EurekaServersUpdatePut then polls until it's completed +func (c AppPlatformClient) EurekaServersUpdatePutThenPoll(ctx context.Context, id SpringId, input EurekaServerResource) error { + result, err := c.EurekaServersUpdatePut(ctx, id, input) + if err != nil { + return fmt.Errorf("performing EurekaServersUpdatePut: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after EurekaServersUpdatePut: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainscreateorupdate.go new file mode 100644 index 000000000000..4c6dba0e8de3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainscreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayCustomDomainsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// GatewayCustomDomainsCreateOrUpdate ... +func (c AppPlatformClient) GatewayCustomDomainsCreateOrUpdate(ctx context.Context, id GatewayDomainId, input GatewayCustomDomainResource) (result GatewayCustomDomainsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// GatewayCustomDomainsCreateOrUpdateThenPoll performs GatewayCustomDomainsCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) GatewayCustomDomainsCreateOrUpdateThenPoll(ctx context.Context, id GatewayDomainId, input GatewayCustomDomainResource) error { + result, err := c.GatewayCustomDomainsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing GatewayCustomDomainsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after GatewayCustomDomainsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainsdelete.go new file mode 100644 index 000000000000..b3043f74ad96 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainsdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayCustomDomainsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// GatewayCustomDomainsDelete ... +func (c AppPlatformClient) GatewayCustomDomainsDelete(ctx context.Context, id GatewayDomainId) (result GatewayCustomDomainsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// GatewayCustomDomainsDeleteThenPoll performs GatewayCustomDomainsDelete then polls until it's completed +func (c AppPlatformClient) GatewayCustomDomainsDeleteThenPoll(ctx context.Context, id GatewayDomainId) error { + result, err := c.GatewayCustomDomainsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing GatewayCustomDomainsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after GatewayCustomDomainsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainsget.go new file mode 100644 index 000000000000..3d7f2a0ad0c0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainsget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayCustomDomainsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *GatewayCustomDomainResource +} + +// GatewayCustomDomainsGet ... +func (c AppPlatformClient) GatewayCustomDomainsGet(ctx context.Context, id GatewayDomainId) (result GatewayCustomDomainsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainslist.go new file mode 100644 index 000000000000..605f1edcffa7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaycustomdomainslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayCustomDomainsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]GatewayCustomDomainResource +} + +type GatewayCustomDomainsListCompleteResult struct { + Items []GatewayCustomDomainResource +} + +// GatewayCustomDomainsList ... +func (c AppPlatformClient) GatewayCustomDomainsList(ctx context.Context, id GatewayId) (result GatewayCustomDomainsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/domains", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]GatewayCustomDomainResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// GatewayCustomDomainsListComplete retrieves all the results into a single object +func (c AppPlatformClient) GatewayCustomDomainsListComplete(ctx context.Context, id GatewayId) (GatewayCustomDomainsListCompleteResult, error) { + return c.GatewayCustomDomainsListCompleteMatchingPredicate(ctx, id, GatewayCustomDomainResourceOperationPredicate{}) +} + +// GatewayCustomDomainsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) GatewayCustomDomainsListCompleteMatchingPredicate(ctx context.Context, id GatewayId, predicate GatewayCustomDomainResourceOperationPredicate) (result GatewayCustomDomainsListCompleteResult, err error) { + items := make([]GatewayCustomDomainResource, 0) + + resp, err := c.GatewayCustomDomainsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = GatewayCustomDomainsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigscreateorupdate.go new file mode 100644 index 000000000000..87b4418df8ff --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigscreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayRouteConfigsCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// GatewayRouteConfigsCreateOrUpdate ... +func (c AppPlatformClient) GatewayRouteConfigsCreateOrUpdate(ctx context.Context, id RouteConfigId, input GatewayRouteConfigResource) (result GatewayRouteConfigsCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// GatewayRouteConfigsCreateOrUpdateThenPoll performs GatewayRouteConfigsCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) GatewayRouteConfigsCreateOrUpdateThenPoll(ctx context.Context, id RouteConfigId, input GatewayRouteConfigResource) error { + result, err := c.GatewayRouteConfigsCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing GatewayRouteConfigsCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after GatewayRouteConfigsCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigsdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigsdelete.go new file mode 100644 index 000000000000..b0d63e076fb8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigsdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayRouteConfigsDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// GatewayRouteConfigsDelete ... +func (c AppPlatformClient) GatewayRouteConfigsDelete(ctx context.Context, id RouteConfigId) (result GatewayRouteConfigsDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// GatewayRouteConfigsDeleteThenPoll performs GatewayRouteConfigsDelete then polls until it's completed +func (c AppPlatformClient) GatewayRouteConfigsDeleteThenPoll(ctx context.Context, id RouteConfigId) error { + result, err := c.GatewayRouteConfigsDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing GatewayRouteConfigsDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after GatewayRouteConfigsDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigsget.go new file mode 100644 index 000000000000..a85e19602171 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigsget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayRouteConfigsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *GatewayRouteConfigResource +} + +// GatewayRouteConfigsGet ... +func (c AppPlatformClient) GatewayRouteConfigsGet(ctx context.Context, id RouteConfigId) (result GatewayRouteConfigsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigslist.go new file mode 100644 index 000000000000..1cbc1f62138d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayrouteconfigslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayRouteConfigsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]GatewayRouteConfigResource +} + +type GatewayRouteConfigsListCompleteResult struct { + Items []GatewayRouteConfigResource +} + +// GatewayRouteConfigsList ... +func (c AppPlatformClient) GatewayRouteConfigsList(ctx context.Context, id GatewayId) (result GatewayRouteConfigsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/routeConfigs", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]GatewayRouteConfigResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// GatewayRouteConfigsListComplete retrieves all the results into a single object +func (c AppPlatformClient) GatewayRouteConfigsListComplete(ctx context.Context, id GatewayId) (GatewayRouteConfigsListCompleteResult, error) { + return c.GatewayRouteConfigsListCompleteMatchingPredicate(ctx, id, GatewayRouteConfigResourceOperationPredicate{}) +} + +// GatewayRouteConfigsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) GatewayRouteConfigsListCompleteMatchingPredicate(ctx context.Context, id GatewayId, predicate GatewayRouteConfigResourceOperationPredicate) (result GatewayRouteConfigsListCompleteResult, err error) { + items := make([]GatewayRouteConfigResource, 0) + + resp, err := c.GatewayRouteConfigsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = GatewayRouteConfigsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayscreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayscreateorupdate.go new file mode 100644 index 000000000000..6f91e101a93d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayscreateorupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewaysCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// GatewaysCreateOrUpdate ... +func (c AppPlatformClient) GatewaysCreateOrUpdate(ctx context.Context, id GatewayId, input GatewayResource) (result GatewaysCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// GatewaysCreateOrUpdateThenPoll performs GatewaysCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) GatewaysCreateOrUpdateThenPoll(ctx context.Context, id GatewayId, input GatewayResource) error { + result, err := c.GatewaysCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing GatewaysCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after GatewaysCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysdelete.go new file mode 100644 index 000000000000..2b64350914bc --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewaysDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// GatewaysDelete ... +func (c AppPlatformClient) GatewaysDelete(ctx context.Context, id GatewayId) (result GatewaysDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// GatewaysDeleteThenPoll performs GatewaysDelete then polls until it's completed +func (c AppPlatformClient) GatewaysDeleteThenPoll(ctx context.Context, id GatewayId) error { + result, err := c.GatewaysDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing GatewaysDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after GatewaysDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysget.go new file mode 100644 index 000000000000..d587da1eb0f9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewaysGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *GatewayResource +} + +// GatewaysGet ... +func (c AppPlatformClient) GatewaysGet(ctx context.Context, id GatewayId) (result GatewaysGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayslist.go new file mode 100644 index 000000000000..e075aa3db13f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewaysListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]GatewayResource +} + +type GatewaysListCompleteResult struct { + Items []GatewayResource +} + +// GatewaysList ... +func (c AppPlatformClient) GatewaysList(ctx context.Context, id SpringId) (result GatewaysListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/gateways", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]GatewayResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// GatewaysListComplete retrieves all the results into a single object +func (c AppPlatformClient) GatewaysListComplete(ctx context.Context, id SpringId) (GatewaysListCompleteResult, error) { + return c.GatewaysListCompleteMatchingPredicate(ctx, id, GatewayResourceOperationPredicate{}) +} + +// GatewaysListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) GatewaysListCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate GatewayResourceOperationPredicate) (result GatewaysListCompleteResult, err error) { + items := make([]GatewayResource, 0) + + resp, err := c.GatewaysList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = GatewaysListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayslistenvsecrets.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayslistenvsecrets.go new file mode 100644 index 000000000000..9b3828a6b472 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewayslistenvsecrets.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewaysListEnvSecretsOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *map[string]string +} + +// GatewaysListEnvSecrets ... +func (c AppPlatformClient) GatewaysListEnvSecrets(ctx context.Context, id GatewayId) (result GatewaysListEnvSecretsOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/listEnvSecrets", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysrestart.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysrestart.go new file mode 100644 index 000000000000..17b75ab261b7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysrestart.go @@ -0,0 +1,70 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewaysRestartOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// GatewaysRestart ... +func (c AppPlatformClient) GatewaysRestart(ctx context.Context, id GatewayId) (result GatewaysRestartOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/restart", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// GatewaysRestartThenPoll performs GatewaysRestart then polls until it's completed +func (c AppPlatformClient) GatewaysRestartThenPoll(ctx context.Context, id GatewayId) error { + result, err := c.GatewaysRestart(ctx, id) + if err != nil { + return fmt.Errorf("performing GatewaysRestart: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after GatewaysRestart: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysupdatecapacity.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysupdatecapacity.go new file mode 100644 index 000000000000..78466da69b42 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysupdatecapacity.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewaysUpdateCapacityOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// GatewaysUpdateCapacity ... +func (c AppPlatformClient) GatewaysUpdateCapacity(ctx context.Context, id GatewayId, input SkuObject) (result GatewaysUpdateCapacityOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// GatewaysUpdateCapacityThenPoll performs GatewaysUpdateCapacity then polls until it's completed +func (c AppPlatformClient) GatewaysUpdateCapacityThenPoll(ctx context.Context, id GatewayId, input SkuObject) error { + result, err := c.GatewaysUpdateCapacity(ctx, id, input) + if err != nil { + return fmt.Errorf("performing GatewaysUpdateCapacity: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after GatewaysUpdateCapacity: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysvalidatedomain.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysvalidatedomain.go new file mode 100644 index 000000000000..87e7b58852e8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_gatewaysvalidatedomain.go @@ -0,0 +1,56 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewaysValidateDomainOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *CustomDomainValidateResult +} + +// GatewaysValidateDomain ... +func (c AppPlatformClient) GatewaysValidateDomain(ctx context.Context, id GatewayId, input CustomDomainValidatePayload) (result GatewaysValidateDomainOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/validateDomain", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_monitoringsettingsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_monitoringsettingsget.go new file mode 100644 index 000000000000..7930bfa37d94 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_monitoringsettingsget.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type MonitoringSettingsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *MonitoringSettingResource +} + +// MonitoringSettingsGet ... +func (c AppPlatformClient) MonitoringSettingsGet(ctx context.Context, id SpringId) (result MonitoringSettingsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/monitoringSettings/default", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_monitoringsettingsupdatepatch.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_monitoringsettingsupdatepatch.go new file mode 100644 index 000000000000..bd83d6e77d73 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_monitoringsettingsupdatepatch.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type MonitoringSettingsUpdatePatchOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// MonitoringSettingsUpdatePatch ... +func (c AppPlatformClient) MonitoringSettingsUpdatePatch(ctx context.Context, id SpringId, input MonitoringSettingResource) (result MonitoringSettingsUpdatePatchOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: fmt.Sprintf("%s/monitoringSettings/default", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// MonitoringSettingsUpdatePatchThenPoll performs MonitoringSettingsUpdatePatch then polls until it's completed +func (c AppPlatformClient) MonitoringSettingsUpdatePatchThenPoll(ctx context.Context, id SpringId, input MonitoringSettingResource) error { + result, err := c.MonitoringSettingsUpdatePatch(ctx, id, input) + if err != nil { + return fmt.Errorf("performing MonitoringSettingsUpdatePatch: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after MonitoringSettingsUpdatePatch: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_monitoringsettingsupdateput.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_monitoringsettingsupdateput.go new file mode 100644 index 000000000000..1a295e0ecb80 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_monitoringsettingsupdateput.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type MonitoringSettingsUpdatePutOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// MonitoringSettingsUpdatePut ... +func (c AppPlatformClient) MonitoringSettingsUpdatePut(ctx context.Context, id SpringId, input MonitoringSettingResource) (result MonitoringSettingsUpdatePutOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: fmt.Sprintf("%s/monitoringSettings/default", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// MonitoringSettingsUpdatePutThenPoll performs MonitoringSettingsUpdatePut then polls until it's completed +func (c AppPlatformClient) MonitoringSettingsUpdatePutThenPoll(ctx context.Context, id SpringId, input MonitoringSettingResource) error { + result, err := c.MonitoringSettingsUpdatePut(ctx, id, input) + if err != nil { + return fmt.Errorf("performing MonitoringSettingsUpdatePut: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after MonitoringSettingsUpdatePut: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorsdisable.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorsdisable.go new file mode 100644 index 000000000000..dd919341e790 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorsdisable.go @@ -0,0 +1,70 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PredefinedAcceleratorsDisableOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// PredefinedAcceleratorsDisable ... +func (c AppPlatformClient) PredefinedAcceleratorsDisable(ctx context.Context, id PredefinedAcceleratorId) (result PredefinedAcceleratorsDisableOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/disable", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// PredefinedAcceleratorsDisableThenPoll performs PredefinedAcceleratorsDisable then polls until it's completed +func (c AppPlatformClient) PredefinedAcceleratorsDisableThenPoll(ctx context.Context, id PredefinedAcceleratorId) error { + result, err := c.PredefinedAcceleratorsDisable(ctx, id) + if err != nil { + return fmt.Errorf("performing PredefinedAcceleratorsDisable: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after PredefinedAcceleratorsDisable: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorsenable.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorsenable.go new file mode 100644 index 000000000000..10e40305bf8d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorsenable.go @@ -0,0 +1,70 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PredefinedAcceleratorsEnableOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// PredefinedAcceleratorsEnable ... +func (c AppPlatformClient) PredefinedAcceleratorsEnable(ctx context.Context, id PredefinedAcceleratorId) (result PredefinedAcceleratorsEnableOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/enable", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// PredefinedAcceleratorsEnableThenPoll performs PredefinedAcceleratorsEnable then polls until it's completed +func (c AppPlatformClient) PredefinedAcceleratorsEnableThenPoll(ctx context.Context, id PredefinedAcceleratorId) error { + result, err := c.PredefinedAcceleratorsEnable(ctx, id) + if err != nil { + return fmt.Errorf("performing PredefinedAcceleratorsEnable: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after PredefinedAcceleratorsEnable: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorsget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorsget.go new file mode 100644 index 000000000000..abeef0c4cf23 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorsget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PredefinedAcceleratorsGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *PredefinedAcceleratorResource +} + +// PredefinedAcceleratorsGet ... +func (c AppPlatformClient) PredefinedAcceleratorsGet(ctx context.Context, id PredefinedAcceleratorId) (result PredefinedAcceleratorsGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorslist.go new file mode 100644 index 000000000000..18a6d8dc2b6f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_predefinedacceleratorslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PredefinedAcceleratorsListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]PredefinedAcceleratorResource +} + +type PredefinedAcceleratorsListCompleteResult struct { + Items []PredefinedAcceleratorResource +} + +// PredefinedAcceleratorsList ... +func (c AppPlatformClient) PredefinedAcceleratorsList(ctx context.Context, id ApplicationAcceleratorId) (result PredefinedAcceleratorsListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/predefinedAccelerators", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]PredefinedAcceleratorResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// PredefinedAcceleratorsListComplete retrieves all the results into a single object +func (c AppPlatformClient) PredefinedAcceleratorsListComplete(ctx context.Context, id ApplicationAcceleratorId) (PredefinedAcceleratorsListCompleteResult, error) { + return c.PredefinedAcceleratorsListCompleteMatchingPredicate(ctx, id, PredefinedAcceleratorResourceOperationPredicate{}) +} + +// PredefinedAcceleratorsListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) PredefinedAcceleratorsListCompleteMatchingPredicate(ctx context.Context, id ApplicationAcceleratorId, predicate PredefinedAcceleratorResourceOperationPredicate) (result PredefinedAcceleratorsListCompleteResult, err error) { + items := make([]PredefinedAcceleratorResource, 0) + + resp, err := c.PredefinedAcceleratorsList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = PredefinedAcceleratorsListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_runtimeversionslistruntimeversions.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_runtimeversionslistruntimeversions.go new file mode 100644 index 000000000000..fb03b3d3f674 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_runtimeversionslistruntimeversions.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type RuntimeVersionsListRuntimeVersionsOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *AvailableRuntimeVersions +} + +// RuntimeVersionsListRuntimeVersions ... +func (c AppPlatformClient) RuntimeVersionsListRuntimeVersions(ctx context.Context) (result RuntimeVersionsListRuntimeVersionsOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: "/providers/Microsoft.AppPlatform/runtimeVersions", + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistriescreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistriescreateorupdate.go new file mode 100644 index 000000000000..33fd0974d247 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistriescreateorupdate.go @@ -0,0 +1,70 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServiceRegistriesCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ServiceRegistriesCreateOrUpdate ... +func (c AppPlatformClient) ServiceRegistriesCreateOrUpdate(ctx context.Context, id ServiceRegistryId) (result ServiceRegistriesCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ServiceRegistriesCreateOrUpdateThenPoll performs ServiceRegistriesCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) ServiceRegistriesCreateOrUpdateThenPoll(ctx context.Context, id ServiceRegistryId) error { + result, err := c.ServiceRegistriesCreateOrUpdate(ctx, id) + if err != nil { + return fmt.Errorf("performing ServiceRegistriesCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ServiceRegistriesCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistriesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistriesdelete.go new file mode 100644 index 000000000000..147e74dffb4e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistriesdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServiceRegistriesDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ServiceRegistriesDelete ... +func (c AppPlatformClient) ServiceRegistriesDelete(ctx context.Context, id ServiceRegistryId) (result ServiceRegistriesDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ServiceRegistriesDeleteThenPoll performs ServiceRegistriesDelete then polls until it's completed +func (c AppPlatformClient) ServiceRegistriesDeleteThenPoll(ctx context.Context, id ServiceRegistryId) error { + result, err := c.ServiceRegistriesDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing ServiceRegistriesDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ServiceRegistriesDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistriesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistriesget.go new file mode 100644 index 000000000000..b1e889fae98d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistriesget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServiceRegistriesGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ServiceRegistryResource +} + +// ServiceRegistriesGet ... +func (c AppPlatformClient) ServiceRegistriesGet(ctx context.Context, id ServiceRegistryId) (result ServiceRegistriesGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistrieslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistrieslist.go new file mode 100644 index 000000000000..671e16d7d876 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceregistrieslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServiceRegistriesListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]ServiceRegistryResource +} + +type ServiceRegistriesListCompleteResult struct { + Items []ServiceRegistryResource +} + +// ServiceRegistriesList ... +func (c AppPlatformClient) ServiceRegistriesList(ctx context.Context, id SpringId) (result ServiceRegistriesListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/serviceRegistries", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]ServiceRegistryResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ServiceRegistriesListComplete retrieves all the results into a single object +func (c AppPlatformClient) ServiceRegistriesListComplete(ctx context.Context, id SpringId) (ServiceRegistriesListCompleteResult, error) { + return c.ServiceRegistriesListCompleteMatchingPredicate(ctx, id, ServiceRegistryResourceOperationPredicate{}) +} + +// ServiceRegistriesListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) ServiceRegistriesListCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate ServiceRegistryResourceOperationPredicate) (result ServiceRegistriesListCompleteResult, err error) { + items := make([]ServiceRegistryResource, 0) + + resp, err := c.ServiceRegistriesList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ServiceRegistriesListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceschecknameavailability.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceschecknameavailability.go new file mode 100644 index 000000000000..9601efeb45d4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceschecknameavailability.go @@ -0,0 +1,56 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesCheckNameAvailabilityOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *NameAvailability +} + +// ServicesCheckNameAvailability ... +func (c AppPlatformClient) ServicesCheckNameAvailability(ctx context.Context, id LocationId, input NameAvailabilityParameters) (result ServicesCheckNameAvailabilityOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/checkNameAvailability", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicescreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicescreateorupdate.go new file mode 100644 index 000000000000..c1aff084578f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicescreateorupdate.go @@ -0,0 +1,75 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ServicesCreateOrUpdate ... +func (c AppPlatformClient) ServicesCreateOrUpdate(ctx context.Context, id SpringId, input ServiceResource) (result ServicesCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ServicesCreateOrUpdateThenPoll performs ServicesCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) ServicesCreateOrUpdateThenPoll(ctx context.Context, id SpringId, input ServiceResource) error { + result, err := c.ServicesCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ServicesCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ServicesCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesdelete.go new file mode 100644 index 000000000000..7378bf6852e1 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ServicesDelete ... +func (c AppPlatformClient) ServicesDelete(ctx context.Context, id SpringId) (result ServicesDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ServicesDeleteThenPoll performs ServicesDelete then polls until it's completed +func (c AppPlatformClient) ServicesDeleteThenPoll(ctx context.Context, id SpringId) error { + result, err := c.ServicesDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing ServicesDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ServicesDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesdisableapmglobally.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesdisableapmglobally.go new file mode 100644 index 000000000000..f0dc69a5fb47 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesdisableapmglobally.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesDisableApmGloballyOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ServicesDisableApmGlobally ... +func (c AppPlatformClient) ServicesDisableApmGlobally(ctx context.Context, id SpringId, input ApmReference) (result ServicesDisableApmGloballyOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/disableApmGlobally", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ServicesDisableApmGloballyThenPoll performs ServicesDisableApmGlobally then polls until it's completed +func (c AppPlatformClient) ServicesDisableApmGloballyThenPoll(ctx context.Context, id SpringId, input ApmReference) error { + result, err := c.ServicesDisableApmGlobally(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ServicesDisableApmGlobally: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ServicesDisableApmGlobally: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesdisabletestendpoint.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesdisabletestendpoint.go new file mode 100644 index 000000000000..d71c35a91788 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesdisabletestendpoint.go @@ -0,0 +1,47 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesDisableTestEndpointOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData +} + +// ServicesDisableTestEndpoint ... +func (c AppPlatformClient) ServicesDisableTestEndpoint(ctx context.Context, id SpringId) (result ServicesDisableTestEndpointOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/disableTestEndpoint", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesenableapmglobally.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesenableapmglobally.go new file mode 100644 index 000000000000..af69f7f57d5c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesenableapmglobally.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesEnableApmGloballyOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ServicesEnableApmGlobally ... +func (c AppPlatformClient) ServicesEnableApmGlobally(ctx context.Context, id SpringId, input ApmReference) (result ServicesEnableApmGloballyOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/enableApmGlobally", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ServicesEnableApmGloballyThenPoll performs ServicesEnableApmGlobally then polls until it's completed +func (c AppPlatformClient) ServicesEnableApmGloballyThenPoll(ctx context.Context, id SpringId, input ApmReference) error { + result, err := c.ServicesEnableApmGlobally(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ServicesEnableApmGlobally: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ServicesEnableApmGlobally: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesenabletestendpoint.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesenabletestendpoint.go new file mode 100644 index 000000000000..3957b11622ca --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesenabletestendpoint.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesEnableTestEndpointOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *TestKeys +} + +// ServicesEnableTestEndpoint ... +func (c AppPlatformClient) ServicesEnableTestEndpoint(ctx context.Context, id SpringId) (result ServicesEnableTestEndpointOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/enableTestEndpoint", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesflushvnetdnssetting.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesflushvnetdnssetting.go new file mode 100644 index 000000000000..661a186444d6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesflushvnetdnssetting.go @@ -0,0 +1,70 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesFlushVnetDnsSettingOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ServicesFlushVnetDnsSetting ... +func (c AppPlatformClient) ServicesFlushVnetDnsSetting(ctx context.Context, id SpringId) (result ServicesFlushVnetDnsSettingOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/flushVirtualNetworkDnsSettings", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ServicesFlushVnetDnsSettingThenPoll performs ServicesFlushVnetDnsSetting then polls until it's completed +func (c AppPlatformClient) ServicesFlushVnetDnsSettingThenPoll(ctx context.Context, id SpringId) error { + result, err := c.ServicesFlushVnetDnsSetting(ctx, id) + if err != nil { + return fmt.Errorf("performing ServicesFlushVnetDnsSetting: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ServicesFlushVnetDnsSetting: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesget.go new file mode 100644 index 000000000000..b6caff509ea3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *ServiceResource +} + +// ServicesGet ... +func (c AppPlatformClient) ServicesGet(ctx context.Context, id SpringId) (result ServicesGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslist.go new file mode 100644 index 000000000000..293d414c9afd --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslist.go @@ -0,0 +1,90 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]ServiceResource +} + +type ServicesListCompleteResult struct { + Items []ServiceResource +} + +// ServicesList ... +func (c AppPlatformClient) ServicesList(ctx context.Context, id commonids.ResourceGroupId) (result ServicesListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.AppPlatform/spring", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]ServiceResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ServicesListComplete retrieves all the results into a single object +func (c AppPlatformClient) ServicesListComplete(ctx context.Context, id commonids.ResourceGroupId) (ServicesListCompleteResult, error) { + return c.ServicesListCompleteMatchingPredicate(ctx, id, ServiceResourceOperationPredicate{}) +} + +// ServicesListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) ServicesListCompleteMatchingPredicate(ctx context.Context, id commonids.ResourceGroupId, predicate ServiceResourceOperationPredicate) (result ServicesListCompleteResult, err error) { + items := make([]ServiceResource, 0) + + resp, err := c.ServicesList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ServicesListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslistbysubscription.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslistbysubscription.go new file mode 100644 index 000000000000..7f937551679a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslistbysubscription.go @@ -0,0 +1,90 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesListBySubscriptionOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]ServiceResource +} + +type ServicesListBySubscriptionCompleteResult struct { + Items []ServiceResource +} + +// ServicesListBySubscription ... +func (c AppPlatformClient) ServicesListBySubscription(ctx context.Context, id commonids.SubscriptionId) (result ServicesListBySubscriptionOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.AppPlatform/spring", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]ServiceResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ServicesListBySubscriptionComplete retrieves all the results into a single object +func (c AppPlatformClient) ServicesListBySubscriptionComplete(ctx context.Context, id commonids.SubscriptionId) (ServicesListBySubscriptionCompleteResult, error) { + return c.ServicesListBySubscriptionCompleteMatchingPredicate(ctx, id, ServiceResourceOperationPredicate{}) +} + +// ServicesListBySubscriptionCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) ServicesListBySubscriptionCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate ServiceResourceOperationPredicate) (result ServicesListBySubscriptionCompleteResult, err error) { + items := make([]ServiceResource, 0) + + resp, err := c.ServicesListBySubscription(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ServicesListBySubscriptionCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslistgloballyenabledapms.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslistgloballyenabledapms.go new file mode 100644 index 000000000000..9d11d817f32d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslistgloballyenabledapms.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesListGloballyEnabledApmsOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *GloballyEnabledApms +} + +// ServicesListGloballyEnabledApms ... +func (c AppPlatformClient) ServicesListGloballyEnabledApms(ctx context.Context, id SpringId) (result ServicesListGloballyEnabledApmsOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/listGloballyEnabledApms", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslistsupportedapmtypes.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslistsupportedapmtypes.go new file mode 100644 index 000000000000..f71475456232 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslistsupportedapmtypes.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesListSupportedApmTypesOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]SupportedApmType +} + +type ServicesListSupportedApmTypesCompleteResult struct { + Items []SupportedApmType +} + +// ServicesListSupportedApmTypes ... +func (c AppPlatformClient) ServicesListSupportedApmTypes(ctx context.Context, id SpringId) (result ServicesListSupportedApmTypesOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/supportedApmTypes", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]SupportedApmType `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ServicesListSupportedApmTypesComplete retrieves all the results into a single object +func (c AppPlatformClient) ServicesListSupportedApmTypesComplete(ctx context.Context, id SpringId) (ServicesListSupportedApmTypesCompleteResult, error) { + return c.ServicesListSupportedApmTypesCompleteMatchingPredicate(ctx, id, SupportedApmTypeOperationPredicate{}) +} + +// ServicesListSupportedApmTypesCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) ServicesListSupportedApmTypesCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate SupportedApmTypeOperationPredicate) (result ServicesListSupportedApmTypesCompleteResult, err error) { + items := make([]SupportedApmType, 0) + + resp, err := c.ServicesListSupportedApmTypes(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ServicesListSupportedApmTypesCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslisttestkeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslisttestkeys.go new file mode 100644 index 000000000000..ba7e05414baa --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_serviceslisttestkeys.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesListTestKeysOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *TestKeys +} + +// ServicesListTestKeys ... +func (c AppPlatformClient) ServicesListTestKeys(ctx context.Context, id SpringId) (result ServicesListTestKeysOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/listTestKeys", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesregeneratetestkey.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesregeneratetestkey.go new file mode 100644 index 000000000000..0d5b44d33dad --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesregeneratetestkey.go @@ -0,0 +1,56 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesRegenerateTestKeyOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *TestKeys +} + +// ServicesRegenerateTestKey ... +func (c AppPlatformClient) ServicesRegenerateTestKey(ctx context.Context, id SpringId, input RegenerateTestKeyRequestPayload) (result ServicesRegenerateTestKeyOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/regenerateTestKey", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesstart.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesstart.go new file mode 100644 index 000000000000..b417957895f8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesstart.go @@ -0,0 +1,69 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesStartOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ServicesStart ... +func (c AppPlatformClient) ServicesStart(ctx context.Context, id SpringId) (result ServicesStartOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/start", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ServicesStartThenPoll performs ServicesStart then polls until it's completed +func (c AppPlatformClient) ServicesStartThenPoll(ctx context.Context, id SpringId) error { + result, err := c.ServicesStart(ctx, id) + if err != nil { + return fmt.Errorf("performing ServicesStart: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ServicesStart: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesstop.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesstop.go new file mode 100644 index 000000000000..e7ac1c429b6a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesstop.go @@ -0,0 +1,69 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesStopOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ServicesStop ... +func (c AppPlatformClient) ServicesStop(ctx context.Context, id SpringId) (result ServicesStopOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/stop", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ServicesStopThenPoll performs ServicesStop then polls until it's completed +func (c AppPlatformClient) ServicesStopThenPoll(ctx context.Context, id SpringId) error { + result, err := c.ServicesStop(ctx, id) + if err != nil { + return fmt.Errorf("performing ServicesStop: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ServicesStop: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesupdate.go new file mode 100644 index 000000000000..1a302a49a720 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_servicesupdate.go @@ -0,0 +1,74 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServicesUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// ServicesUpdate ... +func (c AppPlatformClient) ServicesUpdate(ctx context.Context, id SpringId, input ServiceResource) (result ServicesUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// ServicesUpdateThenPoll performs ServicesUpdate then polls until it's completed +func (c AppPlatformClient) ServicesUpdateThenPoll(ctx context.Context, id SpringId, input ServiceResource) error { + result, err := c.ServicesUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing ServicesUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after ServicesUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_skuslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_skuslist.go new file mode 100644 index 000000000000..1edc48d36c35 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_skuslist.go @@ -0,0 +1,90 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SkusListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]ResourceSku +} + +type SkusListCompleteResult struct { + Items []ResourceSku +} + +// SkusList ... +func (c AppPlatformClient) SkusList(ctx context.Context, id commonids.SubscriptionId) (result SkusListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/providers/Microsoft.AppPlatform/skus", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]ResourceSku `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// SkusListComplete retrieves all the results into a single object +func (c AppPlatformClient) SkusListComplete(ctx context.Context, id commonids.SubscriptionId) (SkusListCompleteResult, error) { + return c.SkusListCompleteMatchingPredicate(ctx, id, ResourceSkuOperationPredicate{}) +} + +// SkusListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) SkusListCompleteMatchingPredicate(ctx context.Context, id commonids.SubscriptionId, predicate ResourceSkuOperationPredicate) (result SkusListCompleteResult, err error) { + items := make([]ResourceSku, 0) + + resp, err := c.SkusList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = SkusListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storagescreateorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storagescreateorupdate.go new file mode 100644 index 000000000000..d27ceb67debe --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storagescreateorupdate.go @@ -0,0 +1,75 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type StoragesCreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// StoragesCreateOrUpdate ... +func (c AppPlatformClient) StoragesCreateOrUpdate(ctx context.Context, id StorageId, input StorageResource) (result StoragesCreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// StoragesCreateOrUpdateThenPoll performs StoragesCreateOrUpdate then polls until it's completed +func (c AppPlatformClient) StoragesCreateOrUpdateThenPoll(ctx context.Context, id StorageId, input StorageResource) error { + result, err := c.StoragesCreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing StoragesCreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after StoragesCreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storagesdelete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storagesdelete.go new file mode 100644 index 000000000000..77a32530ec3f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storagesdelete.go @@ -0,0 +1,71 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type StoragesDeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// StoragesDelete ... +func (c AppPlatformClient) StoragesDelete(ctx context.Context, id StorageId) (result StoragesDeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// StoragesDeleteThenPoll performs StoragesDelete then polls until it's completed +func (c AppPlatformClient) StoragesDeleteThenPoll(ctx context.Context, id StorageId) error { + result, err := c.StoragesDelete(ctx, id) + if err != nil { + return fmt.Errorf("performing StoragesDelete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after StoragesDelete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storagesget.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storagesget.go new file mode 100644 index 000000000000..73eaccf2f75f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storagesget.go @@ -0,0 +1,51 @@ +package appplatform + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type StoragesGetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *StorageResource +} + +// StoragesGet ... +func (c AppPlatformClient) StoragesGet(ctx context.Context, id StorageId) (result StoragesGetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + if err = resp.Unmarshal(&result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storageslist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storageslist.go new file mode 100644 index 000000000000..07e325a7072e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/method_storageslist.go @@ -0,0 +1,89 @@ +package appplatform + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type StoragesListOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]StorageResource +} + +type StoragesListCompleteResult struct { + Items []StorageResource +} + +// StoragesList ... +func (c AppPlatformClient) StoragesList(ctx context.Context, id SpringId) (result StoragesListOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: fmt.Sprintf("%s/storages", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]StorageResource `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// StoragesListComplete retrieves all the results into a single object +func (c AppPlatformClient) StoragesListComplete(ctx context.Context, id SpringId) (StoragesListCompleteResult, error) { + return c.StoragesListCompleteMatchingPredicate(ctx, id, StorageResourceOperationPredicate{}) +} + +// StoragesListCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c AppPlatformClient) StoragesListCompleteMatchingPredicate(ctx context.Context, id SpringId, predicate StorageResourceOperationPredicate) (result StoragesListCompleteResult, err error) { + items := make([]StorageResource, 0) + + resp, err := c.StoragesList(ctx, id) + if err != nil { + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = StoragesListCompleteResult{ + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorauthsetting.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorauthsetting.go new file mode 100644 index 000000000000..9f035ed61a38 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorauthsetting.go @@ -0,0 +1,69 @@ +package appplatform + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AcceleratorAuthSetting interface { +} + +// RawAcceleratorAuthSettingImpl is returned when the Discriminated Value +// doesn't match any of the defined types +// NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) +// and is used only for Deserialization (e.g. this cannot be used as a Request Payload). +type RawAcceleratorAuthSettingImpl struct { + Type string + Values map[string]interface{} +} + +func unmarshalAcceleratorAuthSettingImplementation(input []byte) (AcceleratorAuthSetting, error) { + if input == nil { + return nil, nil + } + + var temp map[string]interface{} + if err := json.Unmarshal(input, &temp); err != nil { + return nil, fmt.Errorf("unmarshaling AcceleratorAuthSetting into map[string]interface: %+v", err) + } + + value, ok := temp["authType"].(string) + if !ok { + return nil, nil + } + + if strings.EqualFold(value, "BasicAuth") { + var out AcceleratorBasicAuthSetting + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into AcceleratorBasicAuthSetting: %+v", err) + } + return out, nil + } + + if strings.EqualFold(value, "Public") { + var out AcceleratorPublicSetting + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into AcceleratorPublicSetting: %+v", err) + } + return out, nil + } + + if strings.EqualFold(value, "SSH") { + var out AcceleratorSshSetting + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into AcceleratorSshSetting: %+v", err) + } + return out, nil + } + + out := RawAcceleratorAuthSettingImpl{ + Type: value, + Values: temp, + } + return out, nil + +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorbasicauthsetting.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorbasicauthsetting.go new file mode 100644 index 000000000000..c26e9b760093 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorbasicauthsetting.go @@ -0,0 +1,43 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ AcceleratorAuthSetting = AcceleratorBasicAuthSetting{} + +type AcceleratorBasicAuthSetting struct { + CaCertResourceId *string `json:"caCertResourceId,omitempty"` + Password *string `json:"password,omitempty"` + Username string `json:"username"` + + // Fields inherited from AcceleratorAuthSetting +} + +var _ json.Marshaler = AcceleratorBasicAuthSetting{} + +func (s AcceleratorBasicAuthSetting) MarshalJSON() ([]byte, error) { + type wrapper AcceleratorBasicAuthSetting + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling AcceleratorBasicAuthSetting: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling AcceleratorBasicAuthSetting: %+v", err) + } + decoded["authType"] = "BasicAuth" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling AcceleratorBasicAuthSetting: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorgitrepository.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorgitrepository.go new file mode 100644 index 000000000000..83d44097c41d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorgitrepository.go @@ -0,0 +1,48 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AcceleratorGitRepository struct { + AuthSetting AcceleratorAuthSetting `json:"authSetting"` + Branch *string `json:"branch,omitempty"` + Commit *string `json:"commit,omitempty"` + GitTag *string `json:"gitTag,omitempty"` + IntervalInSeconds *int64 `json:"intervalInSeconds,omitempty"` + Url string `json:"url"` +} + +var _ json.Unmarshaler = &AcceleratorGitRepository{} + +func (s *AcceleratorGitRepository) UnmarshalJSON(bytes []byte) error { + type alias AcceleratorGitRepository + var decoded alias + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling into AcceleratorGitRepository: %+v", err) + } + + s.Branch = decoded.Branch + s.Commit = decoded.Commit + s.GitTag = decoded.GitTag + s.IntervalInSeconds = decoded.IntervalInSeconds + s.Url = decoded.Url + + var temp map[string]json.RawMessage + if err := json.Unmarshal(bytes, &temp); err != nil { + return fmt.Errorf("unmarshaling AcceleratorGitRepository into map[string]json.RawMessage: %+v", err) + } + + if v, ok := temp["authSetting"]; ok { + impl, err := unmarshalAcceleratorAuthSettingImplementation(v) + if err != nil { + return fmt.Errorf("unmarshaling field 'AuthSetting' for 'AcceleratorGitRepository': %+v", err) + } + s.AuthSetting = impl + } + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorpublicsetting.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorpublicsetting.go new file mode 100644 index 000000000000..8f2526b39b90 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorpublicsetting.go @@ -0,0 +1,41 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ AcceleratorAuthSetting = AcceleratorPublicSetting{} + +type AcceleratorPublicSetting struct { + CaCertResourceId *string `json:"caCertResourceId,omitempty"` + + // Fields inherited from AcceleratorAuthSetting +} + +var _ json.Marshaler = AcceleratorPublicSetting{} + +func (s AcceleratorPublicSetting) MarshalJSON() ([]byte, error) { + type wrapper AcceleratorPublicSetting + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling AcceleratorPublicSetting: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling AcceleratorPublicSetting: %+v", err) + } + decoded["authType"] = "Public" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling AcceleratorPublicSetting: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorsshsetting.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorsshsetting.go new file mode 100644 index 000000000000..257c4615505f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_acceleratorsshsetting.go @@ -0,0 +1,43 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ AcceleratorAuthSetting = AcceleratorSshSetting{} + +type AcceleratorSshSetting struct { + HostKey *string `json:"hostKey,omitempty"` + HostKeyAlgorithm *string `json:"hostKeyAlgorithm,omitempty"` + PrivateKey *string `json:"privateKey,omitempty"` + + // Fields inherited from AcceleratorAuthSetting +} + +var _ json.Marshaler = AcceleratorSshSetting{} + +func (s AcceleratorSshSetting) MarshalJSON() ([]byte, error) { + type wrapper AcceleratorSshSetting + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling AcceleratorSshSetting: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling AcceleratorSshSetting: %+v", err) + } + decoded["authType"] = "SSH" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling AcceleratorSshSetting: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_activedeploymentcollection.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_activedeploymentcollection.go new file mode 100644 index 000000000000..76114f30f503 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_activedeploymentcollection.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ActiveDeploymentCollection struct { + ActiveDeploymentNames *[]string `json:"activeDeploymentNames,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalcustomdomainproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalcustomdomainproperties.go new file mode 100644 index 000000000000..fa67fc3ac50f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalcustomdomainproperties.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalCustomDomainProperties struct { + Thumbprint *string `json:"thumbprint,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalcustomdomainresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalcustomdomainresource.go new file mode 100644 index 000000000000..95465bb19836 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalcustomdomainresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalCustomDomainResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *ApiPortalCustomDomainProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalinstance.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalinstance.go new file mode 100644 index 000000000000..e9e2614923b0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalinstance.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalInstance struct { + Name *string `json:"name,omitempty"` + Status *string `json:"status,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalproperties.go new file mode 100644 index 000000000000..b34dffe4b518 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalproperties.go @@ -0,0 +1,16 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalProperties struct { + GatewayIds *[]string `json:"gatewayIds,omitempty"` + HTTPSOnly *bool `json:"httpsOnly,omitempty"` + Instances *[]ApiPortalInstance `json:"instances,omitempty"` + ProvisioningState *ApiPortalProvisioningState `json:"provisioningState,omitempty"` + Public *bool `json:"public,omitempty"` + ResourceRequests *ApiPortalResourceRequests `json:"resourceRequests,omitempty"` + SourceUrls *[]string `json:"sourceUrls,omitempty"` + SsoProperties *SsoProperties `json:"ssoProperties,omitempty"` + Url *string `json:"url,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalresource.go new file mode 100644 index 000000000000..9902c67d6d74 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalresource.go @@ -0,0 +1,17 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *ApiPortalProperties `json:"properties,omitempty"` + Sku *Sku `json:"sku,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalresourcerequests.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalresourcerequests.go new file mode 100644 index 000000000000..45f9885cc643 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apiportalresourcerequests.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalResourceRequests struct { + Cpu *string `json:"cpu,omitempty"` + Memory *string `json:"memory,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmproperties.go new file mode 100644 index 000000000000..526b061df7de --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmproperties.go @@ -0,0 +1,11 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApmProperties struct { + Properties *map[string]string `json:"properties,omitempty"` + ProvisioningState *ApmProvisioningState `json:"provisioningState,omitempty"` + Secrets *map[string]string `json:"secrets,omitempty"` + Type string `json:"type"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmreference.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmreference.go new file mode 100644 index 000000000000..a641ae501f65 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmreference.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApmReference struct { + ResourceId string `json:"resourceId"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmresource.go new file mode 100644 index 000000000000..72e79bc0a1ed --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApmResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *ApmProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmsecretkeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmsecretkeys.go new file mode 100644 index 000000000000..3b23532f46f7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_apmsecretkeys.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApmSecretKeys struct { + Value *[]string `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorcomponent.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorcomponent.go new file mode 100644 index 000000000000..96286a73270e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorcomponent.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationAcceleratorComponent struct { + Instances *[]ApplicationAcceleratorInstance `json:"instances,omitempty"` + Name *string `json:"name,omitempty"` + ResourceRequests *ApplicationAcceleratorResourceRequests `json:"resourceRequests,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorinstance.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorinstance.go new file mode 100644 index 000000000000..70b09a93392c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorinstance.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationAcceleratorInstance struct { + Name *string `json:"name,omitempty"` + Status *string `json:"status,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorproperties.go new file mode 100644 index 000000000000..1af4f2f10bec --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorproperties.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationAcceleratorProperties struct { + Components *[]ApplicationAcceleratorComponent `json:"components,omitempty"` + ProvisioningState *ApplicationAcceleratorProvisioningState `json:"provisioningState,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorresource.go new file mode 100644 index 000000000000..12098d9b12ee --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorresource.go @@ -0,0 +1,17 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationAcceleratorResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *ApplicationAcceleratorProperties `json:"properties,omitempty"` + Sku *Sku `json:"sku,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorresourcerequests.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorresourcerequests.go new file mode 100644 index 000000000000..d134a20fc99f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationacceleratorresourcerequests.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationAcceleratorResourceRequests struct { + Cpu *string `json:"cpu,omitempty"` + InstanceCount *int64 `json:"instanceCount,omitempty"` + Memory *string `json:"memory,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationinsightsagentversions.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationinsightsagentversions.go new file mode 100644 index 000000000000..154d2c1477bf --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationinsightsagentversions.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationInsightsAgentVersions struct { + Java *string `json:"java,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewcomponent.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewcomponent.go new file mode 100644 index 000000000000..c064fde6d7a1 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewcomponent.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationLiveViewComponent struct { + Instances *[]ApplicationLiveViewInstance `json:"instances,omitempty"` + Name *interface{} `json:"name,omitempty"` + ResourceRequests *ApplicationLiveViewResourceRequests `json:"resourceRequests,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewinstance.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewinstance.go new file mode 100644 index 000000000000..1636412b5ae4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewinstance.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationLiveViewInstance struct { + Name *string `json:"name,omitempty"` + Status *string `json:"status,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewproperties.go new file mode 100644 index 000000000000..6782d1e5065c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewproperties.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationLiveViewProperties struct { + Components *[]ApplicationLiveViewComponent `json:"components,omitempty"` + ProvisioningState *ApplicationLiveViewProvisioningState `json:"provisioningState,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewresource.go new file mode 100644 index 000000000000..f461efed664b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationLiveViewResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *ApplicationLiveViewProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewresourcerequests.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewresourcerequests.go new file mode 100644 index 000000000000..1d1e3f8f1a8b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_applicationliveviewresourcerequests.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApplicationLiveViewResourceRequests struct { + Cpu *string `json:"cpu,omitempty"` + InstanceCount *int64 `json:"instanceCount,omitempty"` + Memory *string `json:"memory,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_appresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_appresource.go new file mode 100644 index 000000000000..a192f643caee --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_appresource.go @@ -0,0 +1,19 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/identity" + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AppResource struct { + Id *string `json:"id,omitempty"` + Identity *identity.LegacySystemAndUserAssignedMap `json:"identity,omitempty"` + Location *string `json:"location,omitempty"` + Name *string `json:"name,omitempty"` + Properties *AppResourceProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_appresourceproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_appresourceproperties.go new file mode 100644 index 000000000000..10466aa363ca --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_appresourceproperties.go @@ -0,0 +1,22 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AppResourceProperties struct { + AddonConfigs *map[string]interface{} `json:"addonConfigs,omitempty"` + CustomPersistentDisks *[]CustomPersistentDiskResource `json:"customPersistentDisks,omitempty"` + EnableEndToEndTLS *bool `json:"enableEndToEndTLS,omitempty"` + Fqdn *string `json:"fqdn,omitempty"` + HTTPSOnly *bool `json:"httpsOnly,omitempty"` + IngressSettings *IngressSettings `json:"ingressSettings,omitempty"` + LoadedCertificates *[]LoadedCertificate `json:"loadedCertificates,omitempty"` + PersistentDisk *PersistentDisk `json:"persistentDisk,omitempty"` + ProvisioningState *AppResourceProvisioningState `json:"provisioningState,omitempty"` + Public *bool `json:"public,omitempty"` + Secrets *[]Secret `json:"secrets,omitempty"` + TemporaryDisk *TemporaryDisk `json:"temporaryDisk,omitempty"` + Url *string `json:"url,omitempty"` + VnetAddons *AppVNetAddons `json:"vnetAddons,omitempty"` + WorkloadProfileName *string `json:"workloadProfileName,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_appvnetaddons.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_appvnetaddons.go new file mode 100644 index 000000000000..baf72c52de1c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_appvnetaddons.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AppVNetAddons struct { + PublicEndpoint *bool `json:"publicEndpoint,omitempty"` + PublicEndpointUrl *string `json:"publicEndpointUrl,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_availableruntimeversions.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_availableruntimeversions.go new file mode 100644 index 000000000000..fd5ac242c748 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_availableruntimeversions.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type AvailableRuntimeVersions struct { + Value *[]SupportedRuntimeVersion `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_azurefilevolume.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_azurefilevolume.go new file mode 100644 index 000000000000..6111b3c03211 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_azurefilevolume.go @@ -0,0 +1,45 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ CustomPersistentDiskProperties = AzureFileVolume{} + +type AzureFileVolume struct { + ShareName *string `json:"shareName,omitempty"` + + // Fields inherited from CustomPersistentDiskProperties + EnableSubPath *bool `json:"enableSubPath,omitempty"` + MountOptions *[]string `json:"mountOptions,omitempty"` + MountPath string `json:"mountPath"` + ReadOnly *bool `json:"readOnly,omitempty"` +} + +var _ json.Marshaler = AzureFileVolume{} + +func (s AzureFileVolume) MarshalJSON() ([]byte, error) { + type wrapper AzureFileVolume + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling AzureFileVolume: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling AzureFileVolume: %+v", err) + } + decoded["type"] = "AzureFileVolume" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling AzureFileVolume: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_bindingresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_bindingresource.go new file mode 100644 index 000000000000..ca9f21a1c017 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_bindingresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BindingResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *BindingResourceProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_bindingresourceproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_bindingresourceproperties.go new file mode 100644 index 000000000000..abce68a17b92 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_bindingresourceproperties.go @@ -0,0 +1,15 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BindingResourceProperties struct { + BindingParameters *map[string]string `json:"bindingParameters,omitempty"` + CreatedAt *string `json:"createdAt,omitempty"` + GeneratedProperties *string `json:"generatedProperties,omitempty"` + Key *string `json:"key,omitempty"` + ResourceId *string `json:"resourceId,omitempty"` + ResourceName *string `json:"resourceName,omitempty"` + ResourceType *string `json:"resourceType,omitempty"` + UpdatedAt *string `json:"updatedAt,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_build.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_build.go new file mode 100644 index 000000000000..bd160974233f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_build.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Build struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *BuildProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_builderproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_builderproperties.go new file mode 100644 index 000000000000..cb3c692584d4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_builderproperties.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuilderProperties struct { + BuildpackGroups *[]BuildpacksGroupProperties `json:"buildpackGroups,omitempty"` + ProvisioningState *BuilderProvisioningState `json:"provisioningState,omitempty"` + Stack *StackProperties `json:"stack,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_builderresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_builderresource.go new file mode 100644 index 000000000000..8462dfdd37ec --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_builderresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuilderResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *BuilderProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackbindinglaunchproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackbindinglaunchproperties.go new file mode 100644 index 000000000000..254a769dd3f2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackbindinglaunchproperties.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildpackBindingLaunchProperties struct { + Properties *map[string]string `json:"properties,omitempty"` + Secrets *map[string]string `json:"secrets,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackbindingproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackbindingproperties.go new file mode 100644 index 000000000000..fad1a4a6f5ca --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackbindingproperties.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildpackBindingProperties struct { + BindingType *BindingType `json:"bindingType,omitempty"` + LaunchProperties *BuildpackBindingLaunchProperties `json:"launchProperties,omitempty"` + ProvisioningState *BuildpackBindingProvisioningState `json:"provisioningState,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackbindingresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackbindingresource.go new file mode 100644 index 000000000000..ae0cf6904dfa --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackbindingresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildpackBindingResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *BuildpackBindingProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackproperties.go new file mode 100644 index 000000000000..5368530c32ba --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpackproperties.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildpackProperties struct { + Id *string `json:"id,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpacksgroupproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpacksgroupproperties.go new file mode 100644 index 000000000000..4d6c242f3d03 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildpacksgroupproperties.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildpacksGroupProperties struct { + Buildpacks *[]BuildpackProperties `json:"buildpacks,omitempty"` + Name *string `json:"name,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildproperties.go new file mode 100644 index 000000000000..f8edddb3e938 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildproperties.go @@ -0,0 +1,16 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildProperties struct { + AgentPool *string `json:"agentPool,omitempty"` + Apms *[]ApmReference `json:"apms,omitempty"` + Builder *string `json:"builder,omitempty"` + Certificates *[]CertificateReference `json:"certificates,omitempty"` + Env *map[string]string `json:"env,omitempty"` + ProvisioningState *BuildProvisioningState `json:"provisioningState,omitempty"` + RelativePath *string `json:"relativePath,omitempty"` + ResourceRequests *BuildResourceRequests `json:"resourceRequests,omitempty"` + TriggeredBuildResult *TriggeredBuildResult `json:"triggeredBuildResult,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresourcerequests.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresourcerequests.go new file mode 100644 index 000000000000..e86ba1c43c27 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresourcerequests.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildResourceRequests struct { + Cpu *string `json:"cpu,omitempty"` + Memory *string `json:"memory,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresult.go new file mode 100644 index 000000000000..a4c0a6157891 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresult.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildResult struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *BuildResultProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresultlog.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresultlog.go new file mode 100644 index 000000000000..ae9e019d802a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresultlog.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildResultLog struct { + BlobUrl *string `json:"blobUrl,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresultproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresultproperties.go new file mode 100644 index 000000000000..8bfe17264104 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresultproperties.go @@ -0,0 +1,13 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildResultProperties struct { + BuildPodName *string `json:"buildPodName,omitempty"` + BuildStages *[]BuildStageProperties `json:"buildStages,omitempty"` + Error *Error `json:"error,omitempty"` + Image *string `json:"image,omitempty"` + Name *string `json:"name,omitempty"` + ProvisioningState *BuildResultProvisioningState `json:"provisioningState,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresultusersourceinfo.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresultusersourceinfo.go new file mode 100644 index 000000000000..8591e1591863 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildresultusersourceinfo.go @@ -0,0 +1,42 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ UserSourceInfo = BuildResultUserSourceInfo{} + +type BuildResultUserSourceInfo struct { + BuildResultId *string `json:"buildResultId,omitempty"` + + // Fields inherited from UserSourceInfo + Version *string `json:"version,omitempty"` +} + +var _ json.Marshaler = BuildResultUserSourceInfo{} + +func (s BuildResultUserSourceInfo) MarshalJSON() ([]byte, error) { + type wrapper BuildResultUserSourceInfo + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling BuildResultUserSourceInfo: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling BuildResultUserSourceInfo: %+v", err) + } + decoded["type"] = "BuildResult" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling BuildResultUserSourceInfo: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildservice.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildservice.go new file mode 100644 index 000000000000..3205837f88c9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildservice.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildService struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *BuildServiceProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceagentpoolproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceagentpoolproperties.go new file mode 100644 index 000000000000..ae8dab0b5392 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceagentpoolproperties.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceAgentPoolProperties struct { + PoolSize *BuildServiceAgentPoolSizeProperties `json:"poolSize,omitempty"` + ProvisioningState *string `json:"provisioningState,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceagentpoolresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceagentpoolresource.go new file mode 100644 index 000000000000..fc05e8fc197d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceagentpoolresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceAgentPoolResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *BuildServiceAgentPoolProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceagentpoolsizeproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceagentpoolsizeproperties.go new file mode 100644 index 000000000000..b8e07c190391 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceagentpoolsizeproperties.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceAgentPoolSizeProperties struct { + Cpu *string `json:"cpu,omitempty"` + Memory *string `json:"memory,omitempty"` + Name *string `json:"name,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceproperties.go new file mode 100644 index 000000000000..d8f34b745780 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildserviceproperties.go @@ -0,0 +1,11 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServiceProperties struct { + ContainerRegistry *string `json:"containerRegistry,omitempty"` + KPackVersion *string `json:"kPackVersion,omitempty"` + ProvisioningState *BuildServiceProvisioningState `json:"provisioningState,omitempty"` + ResourceRequests *BuildServicePropertiesResourceRequests `json:"resourceRequests,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildservicepropertiesresourcerequests.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildservicepropertiesresourcerequests.go new file mode 100644 index 000000000000..42baabe9e2f3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildservicepropertiesresourcerequests.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildServicePropertiesResourceRequests struct { + Cpu *string `json:"cpu,omitempty"` + Memory *string `json:"memory,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildstageproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildstageproperties.go new file mode 100644 index 000000000000..3c21299fb455 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_buildstageproperties.go @@ -0,0 +1,11 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type BuildStageProperties struct { + ExitCode *string `json:"exitCode,omitempty"` + Name *string `json:"name,omitempty"` + Reason *string `json:"reason,omitempty"` + Status *KPackBuildStageProvisioningState `json:"status,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_certificateproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_certificateproperties.go new file mode 100644 index 000000000000..804bcf829628 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_certificateproperties.go @@ -0,0 +1,61 @@ +package appplatform + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CertificateProperties interface { +} + +// RawCertificatePropertiesImpl is returned when the Discriminated Value +// doesn't match any of the defined types +// NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) +// and is used only for Deserialization (e.g. this cannot be used as a Request Payload). +type RawCertificatePropertiesImpl struct { + Type string + Values map[string]interface{} +} + +func unmarshalCertificatePropertiesImplementation(input []byte) (CertificateProperties, error) { + if input == nil { + return nil, nil + } + + var temp map[string]interface{} + if err := json.Unmarshal(input, &temp); err != nil { + return nil, fmt.Errorf("unmarshaling CertificateProperties into map[string]interface: %+v", err) + } + + value, ok := temp["type"].(string) + if !ok { + return nil, nil + } + + if strings.EqualFold(value, "ContentCertificate") { + var out ContentCertificateProperties + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into ContentCertificateProperties: %+v", err) + } + return out, nil + } + + if strings.EqualFold(value, "KeyVaultCertificate") { + var out KeyVaultCertificateProperties + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into KeyVaultCertificateProperties: %+v", err) + } + return out, nil + } + + out := RawCertificatePropertiesImpl{ + Type: value, + Values: temp, + } + return out, nil + +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_certificatereference.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_certificatereference.go new file mode 100644 index 000000000000..5065589b920e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_certificatereference.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CertificateReference struct { + ResourceId string `json:"resourceId"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_certificateresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_certificateresource.go new file mode 100644 index 000000000000..440cbc2881f7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_certificateresource.go @@ -0,0 +1,48 @@ +package appplatform + +import ( + "encoding/json" + "fmt" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CertificateResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties CertificateProperties `json:"properties"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} + +var _ json.Unmarshaler = &CertificateResource{} + +func (s *CertificateResource) UnmarshalJSON(bytes []byte) error { + type alias CertificateResource + var decoded alias + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling into CertificateResource: %+v", err) + } + + s.Id = decoded.Id + s.Name = decoded.Name + s.SystemData = decoded.SystemData + s.Type = decoded.Type + + var temp map[string]json.RawMessage + if err := json.Unmarshal(bytes, &temp); err != nil { + return fmt.Errorf("unmarshaling CertificateResource into map[string]json.RawMessage: %+v", err) + } + + if v, ok := temp["properties"]; ok { + impl, err := unmarshalCertificatePropertiesImplementation(v) + if err != nil { + return fmt.Errorf("unmarshaling field 'Properties' for 'CertificateResource': %+v", err) + } + s.Properties = impl + } + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_clusterresourceproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_clusterresourceproperties.go new file mode 100644 index 000000000000..2f5fcf95be55 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_clusterresourceproperties.go @@ -0,0 +1,60 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ClusterResourceProperties struct { + Fqdn *string `json:"fqdn,omitempty"` + InfraResourceGroup *string `json:"infraResourceGroup,omitempty"` + MaintenanceScheduleConfiguration MaintenanceScheduleConfiguration `json:"maintenanceScheduleConfiguration"` + ManagedEnvironmentId *string `json:"managedEnvironmentId,omitempty"` + MarketplaceResource *MarketplaceResource `json:"marketplaceResource,omitempty"` + NetworkProfile *NetworkProfile `json:"networkProfile,omitempty"` + PowerState *PowerState `json:"powerState,omitempty"` + ProvisioningState *ProvisioningState `json:"provisioningState,omitempty"` + ServiceId *string `json:"serviceId,omitempty"` + Version *int64 `json:"version,omitempty"` + VnetAddons *ServiceVNetAddons `json:"vnetAddons,omitempty"` + ZoneRedundant *bool `json:"zoneRedundant,omitempty"` +} + +var _ json.Unmarshaler = &ClusterResourceProperties{} + +func (s *ClusterResourceProperties) UnmarshalJSON(bytes []byte) error { + type alias ClusterResourceProperties + var decoded alias + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling into ClusterResourceProperties: %+v", err) + } + + s.Fqdn = decoded.Fqdn + s.InfraResourceGroup = decoded.InfraResourceGroup + s.ManagedEnvironmentId = decoded.ManagedEnvironmentId + s.MarketplaceResource = decoded.MarketplaceResource + s.NetworkProfile = decoded.NetworkProfile + s.PowerState = decoded.PowerState + s.ProvisioningState = decoded.ProvisioningState + s.ServiceId = decoded.ServiceId + s.Version = decoded.Version + s.VnetAddons = decoded.VnetAddons + s.ZoneRedundant = decoded.ZoneRedundant + + var temp map[string]json.RawMessage + if err := json.Unmarshal(bytes, &temp); err != nil { + return fmt.Errorf("unmarshaling ClusterResourceProperties into map[string]json.RawMessage: %+v", err) + } + + if v, ok := temp["maintenanceScheduleConfiguration"]; ok { + impl, err := unmarshalMaintenanceScheduleConfigurationImplementation(v) + if err != nil { + return fmt.Errorf("unmarshaling field 'MaintenanceScheduleConfiguration' for 'ClusterResourceProperties': %+v", err) + } + s.MaintenanceScheduleConfiguration = impl + } + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configservergitproperty.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configservergitproperty.go new file mode 100644 index 000000000000..0a5f30cc8d50 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configservergitproperty.go @@ -0,0 +1,17 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigServerGitProperty struct { + HostKey *string `json:"hostKey,omitempty"` + HostKeyAlgorithm *string `json:"hostKeyAlgorithm,omitempty"` + Label *string `json:"label,omitempty"` + Password *string `json:"password,omitempty"` + PrivateKey *string `json:"privateKey,omitempty"` + Repositories *[]GitPatternRepository `json:"repositories,omitempty"` + SearchPaths *[]string `json:"searchPaths,omitempty"` + StrictHostKeyChecking *bool `json:"strictHostKeyChecking,omitempty"` + Uri string `json:"uri"` + Username *string `json:"username,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserverproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserverproperties.go new file mode 100644 index 000000000000..ebd15fcd5c24 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserverproperties.go @@ -0,0 +1,11 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigServerProperties struct { + ConfigServer *ConfigServerSettings `json:"configServer,omitempty"` + EnabledState *ConfigServerEnabledState `json:"enabledState,omitempty"` + Error *Error `json:"error,omitempty"` + ProvisioningState *ConfigServerState `json:"provisioningState,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserverresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserverresource.go new file mode 100644 index 000000000000..c9d664e279e0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserverresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigServerResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *ConfigServerProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserversettings.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserversettings.go new file mode 100644 index 000000000000..ad971c3b34af --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserversettings.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigServerSettings struct { + GitProperty *ConfigServerGitProperty `json:"gitProperty,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserversettingserrorrecord.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserversettingserrorrecord.go new file mode 100644 index 000000000000..69b1a5dc59ae --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserversettingserrorrecord.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigServerSettingsErrorRecord struct { + Messages *[]string `json:"messages,omitempty"` + Name *string `json:"name,omitempty"` + Uri *string `json:"uri,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserversettingsvalidateresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserversettingsvalidateresult.go new file mode 100644 index 000000000000..a7d1352c4a17 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configserversettingsvalidateresult.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigServerSettingsValidateResult struct { + Details *[]ConfigServerSettingsErrorRecord `json:"details,omitempty"` + IsValid *bool `json:"isValid,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicegitproperty.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicegitproperty.go new file mode 100644 index 000000000000..8f78b230a5f9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicegitproperty.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServiceGitProperty struct { + Repositories *[]ConfigurationServiceGitRepository `json:"repositories,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicegitpropertyvalidateresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicegitpropertyvalidateresult.go new file mode 100644 index 000000000000..fe5c13fee7c3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicegitpropertyvalidateresult.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServiceGitPropertyValidateResult struct { + GitReposValidationResult *[]ValidationMessages `json:"gitReposValidationResult,omitempty"` + IsValid *bool `json:"isValid,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicegitrepository.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicegitrepository.go new file mode 100644 index 000000000000..38c61dd77f10 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicegitrepository.go @@ -0,0 +1,20 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServiceGitRepository struct { + CaCertResourceId *string `json:"caCertResourceId,omitempty"` + GitImplementation *GitImplementation `json:"gitImplementation,omitempty"` + HostKey *string `json:"hostKey,omitempty"` + HostKeyAlgorithm *string `json:"hostKeyAlgorithm,omitempty"` + Label string `json:"label"` + Name string `json:"name"` + Password *string `json:"password,omitempty"` + Patterns []string `json:"patterns"` + PrivateKey *string `json:"privateKey,omitempty"` + SearchPaths *[]string `json:"searchPaths,omitempty"` + StrictHostKeyChecking *bool `json:"strictHostKeyChecking,omitempty"` + Uri string `json:"uri"` + Username *string `json:"username,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceinstance.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceinstance.go new file mode 100644 index 000000000000..4542e6557cf0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceinstance.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServiceInstance struct { + Name *string `json:"name,omitempty"` + Status *string `json:"status,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceproperties.go new file mode 100644 index 000000000000..da9b34f44450 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceproperties.go @@ -0,0 +1,12 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServiceProperties struct { + Generation *ConfigurationServiceGeneration `json:"generation,omitempty"` + Instances *[]ConfigurationServiceInstance `json:"instances,omitempty"` + ProvisioningState *ConfigurationServiceProvisioningState `json:"provisioningState,omitempty"` + ResourceRequests *ConfigurationServiceResourceRequests `json:"resourceRequests,omitempty"` + Settings *ConfigurationServiceSettings `json:"settings,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceresource.go new file mode 100644 index 000000000000..c9c6ed459e9f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServiceResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *ConfigurationServiceProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceresourcerequests.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceresourcerequests.go new file mode 100644 index 000000000000..087c114a134a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationserviceresourcerequests.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServiceResourceRequests struct { + Cpu *string `json:"cpu,omitempty"` + InstanceCount *int64 `json:"instanceCount,omitempty"` + Memory *string `json:"memory,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicesettings.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicesettings.go new file mode 100644 index 000000000000..d54123ffb245 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicesettings.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServiceSettings struct { + GitProperty *ConfigurationServiceGitProperty `json:"gitProperty,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicesettingsvalidateresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicesettingsvalidateresult.go new file mode 100644 index 000000000000..075cbd23ea9d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_configurationservicesettingsvalidateresult.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ConfigurationServiceSettingsValidateResult struct { + GitPropertyValidationResult *ConfigurationServiceGitPropertyValidateResult `json:"gitPropertyValidationResult,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerprobesettings.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerprobesettings.go new file mode 100644 index 000000000000..b858f312a1a3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerprobesettings.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerProbeSettings struct { + DisableProbe *bool `json:"disableProbe,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistrybasiccredentials.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistrybasiccredentials.go new file mode 100644 index 000000000000..af8eb0534096 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistrybasiccredentials.go @@ -0,0 +1,43 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ ContainerRegistryCredentials = ContainerRegistryBasicCredentials{} + +type ContainerRegistryBasicCredentials struct { + Password string `json:"password"` + Server string `json:"server"` + Username string `json:"username"` + + // Fields inherited from ContainerRegistryCredentials +} + +var _ json.Marshaler = ContainerRegistryBasicCredentials{} + +func (s ContainerRegistryBasicCredentials) MarshalJSON() ([]byte, error) { + type wrapper ContainerRegistryBasicCredentials + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling ContainerRegistryBasicCredentials: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling ContainerRegistryBasicCredentials: %+v", err) + } + decoded["type"] = "BasicAuth" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling ContainerRegistryBasicCredentials: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistrycredentials.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistrycredentials.go new file mode 100644 index 000000000000..84918f1d125d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistrycredentials.go @@ -0,0 +1,53 @@ +package appplatform + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerRegistryCredentials interface { +} + +// RawContainerRegistryCredentialsImpl is returned when the Discriminated Value +// doesn't match any of the defined types +// NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) +// and is used only for Deserialization (e.g. this cannot be used as a Request Payload). +type RawContainerRegistryCredentialsImpl struct { + Type string + Values map[string]interface{} +} + +func unmarshalContainerRegistryCredentialsImplementation(input []byte) (ContainerRegistryCredentials, error) { + if input == nil { + return nil, nil + } + + var temp map[string]interface{} + if err := json.Unmarshal(input, &temp); err != nil { + return nil, fmt.Errorf("unmarshaling ContainerRegistryCredentials into map[string]interface: %+v", err) + } + + value, ok := temp["type"].(string) + if !ok { + return nil, nil + } + + if strings.EqualFold(value, "BasicAuth") { + var out ContainerRegistryBasicCredentials + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into ContainerRegistryBasicCredentials: %+v", err) + } + return out, nil + } + + out := RawContainerRegistryCredentialsImpl{ + Type: value, + Values: temp, + } + return out, nil + +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistryproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistryproperties.go new file mode 100644 index 000000000000..4a1e18b8583d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistryproperties.go @@ -0,0 +1,40 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerRegistryProperties struct { + Credentials ContainerRegistryCredentials `json:"credentials"` + ProvisioningState *ContainerRegistryProvisioningState `json:"provisioningState,omitempty"` +} + +var _ json.Unmarshaler = &ContainerRegistryProperties{} + +func (s *ContainerRegistryProperties) UnmarshalJSON(bytes []byte) error { + type alias ContainerRegistryProperties + var decoded alias + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling into ContainerRegistryProperties: %+v", err) + } + + s.ProvisioningState = decoded.ProvisioningState + + var temp map[string]json.RawMessage + if err := json.Unmarshal(bytes, &temp); err != nil { + return fmt.Errorf("unmarshaling ContainerRegistryProperties into map[string]json.RawMessage: %+v", err) + } + + if v, ok := temp["credentials"]; ok { + impl, err := unmarshalContainerRegistryCredentialsImplementation(v) + if err != nil { + return fmt.Errorf("unmarshaling field 'Credentials' for 'ContainerRegistryProperties': %+v", err) + } + s.Credentials = impl + } + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistryresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistryresource.go new file mode 100644 index 000000000000..728b82001f91 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistryresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerRegistryResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *ContainerRegistryProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistryvalidateresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistryvalidateresult.go new file mode 100644 index 000000000000..566ef14c3017 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_containerregistryvalidateresult.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ContainerRegistryValidateResult struct { + IsValid *bool `json:"isValid,omitempty"` + Message *string `json:"message,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_contentcertificateproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_contentcertificateproperties.go new file mode 100644 index 000000000000..d6f7a6110fd4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_contentcertificateproperties.go @@ -0,0 +1,49 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ CertificateProperties = ContentCertificateProperties{} + +type ContentCertificateProperties struct { + Content *string `json:"content,omitempty"` + + // Fields inherited from CertificateProperties + ActivateDate *string `json:"activateDate,omitempty"` + DnsNames *[]string `json:"dnsNames,omitempty"` + ExpirationDate *string `json:"expirationDate,omitempty"` + IssuedDate *string `json:"issuedDate,omitempty"` + Issuer *string `json:"issuer,omitempty"` + ProvisioningState *CertificateResourceProvisioningState `json:"provisioningState,omitempty"` + SubjectName *string `json:"subjectName,omitempty"` + Thumbprint *string `json:"thumbprint,omitempty"` +} + +var _ json.Marshaler = ContentCertificateProperties{} + +func (s ContentCertificateProperties) MarshalJSON() ([]byte, error) { + type wrapper ContentCertificateProperties + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling ContentCertificateProperties: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling ContentCertificateProperties: %+v", err) + } + decoded["type"] = "ContentCertificate" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling ContentCertificateProperties: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customcontainer.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customcontainer.go new file mode 100644 index 000000000000..d67ee680ca14 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customcontainer.go @@ -0,0 +1,13 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomContainer struct { + Args *[]string `json:"args,omitempty"` + Command *[]string `json:"command,omitempty"` + ContainerImage *string `json:"containerImage,omitempty"` + ImageRegistryCredential *ImageRegistryCredential `json:"imageRegistryCredential,omitempty"` + LanguageFramework *string `json:"languageFramework,omitempty"` + Server *string `json:"server,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customcontainerusersourceinfo.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customcontainerusersourceinfo.go new file mode 100644 index 000000000000..8411b51a62ce --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customcontainerusersourceinfo.go @@ -0,0 +1,42 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ UserSourceInfo = CustomContainerUserSourceInfo{} + +type CustomContainerUserSourceInfo struct { + CustomContainer *CustomContainer `json:"customContainer,omitempty"` + + // Fields inherited from UserSourceInfo + Version *string `json:"version,omitempty"` +} + +var _ json.Marshaler = CustomContainerUserSourceInfo{} + +func (s CustomContainerUserSourceInfo) MarshalJSON() ([]byte, error) { + type wrapper CustomContainerUserSourceInfo + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling CustomContainerUserSourceInfo: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling CustomContainerUserSourceInfo: %+v", err) + } + decoded["type"] = "Container" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling CustomContainerUserSourceInfo: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainproperties.go new file mode 100644 index 000000000000..fbe6f58fed4e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainproperties.go @@ -0,0 +1,11 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomDomainProperties struct { + AppName *string `json:"appName,omitempty"` + CertName *string `json:"certName,omitempty"` + ProvisioningState *CustomDomainResourceProvisioningState `json:"provisioningState,omitempty"` + Thumbprint *string `json:"thumbprint,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainresource.go new file mode 100644 index 000000000000..c98396bfc642 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomDomainResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *CustomDomainProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainvalidatepayload.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainvalidatepayload.go new file mode 100644 index 000000000000..3f88f30febf6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainvalidatepayload.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomDomainValidatePayload struct { + Name string `json:"name"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainvalidateresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainvalidateresult.go new file mode 100644 index 000000000000..f0b328670af3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customdomainvalidateresult.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomDomainValidateResult struct { + IsValid *bool `json:"isValid,omitempty"` + Message *string `json:"message,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customizedacceleratorproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customizedacceleratorproperties.go new file mode 100644 index 000000000000..f8c4ee56ce02 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customizedacceleratorproperties.go @@ -0,0 +1,13 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomizedAcceleratorProperties struct { + AcceleratorTags *[]string `json:"acceleratorTags,omitempty"` + Description *string `json:"description,omitempty"` + DisplayName *string `json:"displayName,omitempty"` + GitRepository AcceleratorGitRepository `json:"gitRepository"` + IconUrl *string `json:"iconUrl,omitempty"` + ProvisioningState *CustomizedAcceleratorProvisioningState `json:"provisioningState,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customizedacceleratorresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customizedacceleratorresource.go new file mode 100644 index 000000000000..94e7f5059ea3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customizedacceleratorresource.go @@ -0,0 +1,17 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomizedAcceleratorResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *CustomizedAcceleratorProperties `json:"properties,omitempty"` + Sku *Sku `json:"sku,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customizedacceleratorvalidateresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customizedacceleratorvalidateresult.go new file mode 100644 index 000000000000..c50eabb29df8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customizedacceleratorvalidateresult.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomizedAcceleratorValidateResult struct { + ErrorMessage *string `json:"errorMessage,omitempty"` + State *CustomizedAcceleratorValidateResultState `json:"state,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_custompersistentdiskproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_custompersistentdiskproperties.go new file mode 100644 index 000000000000..be9da2ff0536 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_custompersistentdiskproperties.go @@ -0,0 +1,53 @@ +package appplatform + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomPersistentDiskProperties interface { +} + +// RawCustomPersistentDiskPropertiesImpl is returned when the Discriminated Value +// doesn't match any of the defined types +// NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) +// and is used only for Deserialization (e.g. this cannot be used as a Request Payload). +type RawCustomPersistentDiskPropertiesImpl struct { + Type string + Values map[string]interface{} +} + +func unmarshalCustomPersistentDiskPropertiesImplementation(input []byte) (CustomPersistentDiskProperties, error) { + if input == nil { + return nil, nil + } + + var temp map[string]interface{} + if err := json.Unmarshal(input, &temp); err != nil { + return nil, fmt.Errorf("unmarshaling CustomPersistentDiskProperties into map[string]interface: %+v", err) + } + + value, ok := temp["type"].(string) + if !ok { + return nil, nil + } + + if strings.EqualFold(value, "AzureFileVolume") { + var out AzureFileVolume + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into AzureFileVolume: %+v", err) + } + return out, nil + } + + out := RawCustomPersistentDiskPropertiesImpl{ + Type: value, + Values: temp, + } + return out, nil + +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_custompersistentdiskresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_custompersistentdiskresource.go new file mode 100644 index 000000000000..7a111d5c2505 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_custompersistentdiskresource.go @@ -0,0 +1,40 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomPersistentDiskResource struct { + CustomPersistentDiskProperties CustomPersistentDiskProperties `json:"customPersistentDiskProperties"` + StorageId string `json:"storageId"` +} + +var _ json.Unmarshaler = &CustomPersistentDiskResource{} + +func (s *CustomPersistentDiskResource) UnmarshalJSON(bytes []byte) error { + type alias CustomPersistentDiskResource + var decoded alias + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling into CustomPersistentDiskResource: %+v", err) + } + + s.StorageId = decoded.StorageId + + var temp map[string]json.RawMessage + if err := json.Unmarshal(bytes, &temp); err != nil { + return fmt.Errorf("unmarshaling CustomPersistentDiskResource into map[string]json.RawMessage: %+v", err) + } + + if v, ok := temp["customPersistentDiskProperties"]; ok { + impl, err := unmarshalCustomPersistentDiskPropertiesImplementation(v) + if err != nil { + return fmt.Errorf("unmarshaling field 'CustomPersistentDiskProperties' for 'CustomPersistentDiskResource': %+v", err) + } + s.CustomPersistentDiskProperties = impl + } + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customscalerule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customscalerule.go new file mode 100644 index 000000000000..2fca883c77c1 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_customscalerule.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CustomScaleRule struct { + Auth *[]ScaleRuleAuth `json:"auth,omitempty"` + Metadata *map[string]string `json:"metadata,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentinstance.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentinstance.go new file mode 100644 index 000000000000..b58ef075e018 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentinstance.go @@ -0,0 +1,13 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentInstance struct { + DiscoveryStatus *string `json:"discoveryStatus,omitempty"` + Name *string `json:"name,omitempty"` + Reason *string `json:"reason,omitempty"` + StartTime *string `json:"startTime,omitempty"` + Status *string `json:"status,omitempty"` + Zone *string `json:"zone,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentlist.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentlist.go new file mode 100644 index 000000000000..025ebeed99ec --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentlist.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentList struct { + Deployments *[]string `json:"deployments,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentresource.go new file mode 100644 index 000000000000..08df95eb990f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentresource.go @@ -0,0 +1,17 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *DeploymentResourceProperties `json:"properties,omitempty"` + Sku *Sku `json:"sku,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentresourceproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentresourceproperties.go new file mode 100644 index 000000000000..145d01978431 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentresourceproperties.go @@ -0,0 +1,48 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentResourceProperties struct { + Active *bool `json:"active,omitempty"` + DeploymentSettings *DeploymentSettings `json:"deploymentSettings,omitempty"` + Instances *[]DeploymentInstance `json:"instances,omitempty"` + ProvisioningState *DeploymentResourceProvisioningState `json:"provisioningState,omitempty"` + Source UserSourceInfo `json:"source"` + Status *DeploymentResourceStatus `json:"status,omitempty"` +} + +var _ json.Unmarshaler = &DeploymentResourceProperties{} + +func (s *DeploymentResourceProperties) UnmarshalJSON(bytes []byte) error { + type alias DeploymentResourceProperties + var decoded alias + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling into DeploymentResourceProperties: %+v", err) + } + + s.Active = decoded.Active + s.DeploymentSettings = decoded.DeploymentSettings + s.Instances = decoded.Instances + s.ProvisioningState = decoded.ProvisioningState + s.Status = decoded.Status + + var temp map[string]json.RawMessage + if err := json.Unmarshal(bytes, &temp); err != nil { + return fmt.Errorf("unmarshaling DeploymentResourceProperties into map[string]json.RawMessage: %+v", err) + } + + if v, ok := temp["source"]; ok { + impl, err := unmarshalUserSourceInfoImplementation(v) + if err != nil { + return fmt.Errorf("unmarshaling field 'Source' for 'DeploymentResourceProperties': %+v", err) + } + s.Source = impl + } + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentsettings.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentsettings.go new file mode 100644 index 000000000000..d6306cd7a8b2 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_deploymentsettings.go @@ -0,0 +1,17 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeploymentSettings struct { + AddonConfigs *map[string]interface{} `json:"addonConfigs,omitempty"` + Apms *[]ApmReference `json:"apms,omitempty"` + ContainerProbeSettings *ContainerProbeSettings `json:"containerProbeSettings,omitempty"` + EnvironmentVariables *map[string]string `json:"environmentVariables,omitempty"` + LivenessProbe *Probe `json:"livenessProbe,omitempty"` + ReadinessProbe *Probe `json:"readinessProbe,omitempty"` + ResourceRequests *ResourceRequests `json:"resourceRequests,omitempty"` + Scale *Scale `json:"scale,omitempty"` + StartupProbe *Probe `json:"startupProbe,omitempty"` + TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalcomponent.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalcomponent.go new file mode 100644 index 000000000000..00e75136953d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalcomponent.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DevToolPortalComponent struct { + Instances *[]DevToolPortalInstance `json:"instances,omitempty"` + Name *string `json:"name,omitempty"` + ResourceRequests *DevToolPortalResourceRequests `json:"resourceRequests,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalfeaturedetail.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalfeaturedetail.go new file mode 100644 index 000000000000..ed071e9fe9ec --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalfeaturedetail.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DevToolPortalFeatureDetail struct { + Route *string `json:"route,omitempty"` + State *DevToolPortalFeatureState `json:"state,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalfeaturesettings.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalfeaturesettings.go new file mode 100644 index 000000000000..1ce0b56e745b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalfeaturesettings.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DevToolPortalFeatureSettings struct { + ApplicationAccelerator *DevToolPortalFeatureDetail `json:"applicationAccelerator,omitempty"` + ApplicationLiveView *DevToolPortalFeatureDetail `json:"applicationLiveView,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalinstance.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalinstance.go new file mode 100644 index 000000000000..4d118f5bc9e1 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalinstance.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DevToolPortalInstance struct { + Name *string `json:"name,omitempty"` + Status *string `json:"status,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalproperties.go new file mode 100644 index 000000000000..54af1b580cdd --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalproperties.go @@ -0,0 +1,13 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DevToolPortalProperties struct { + Components *[]DevToolPortalComponent `json:"components,omitempty"` + Features *DevToolPortalFeatureSettings `json:"features,omitempty"` + ProvisioningState *DevToolPortalProvisioningState `json:"provisioningState,omitempty"` + Public *bool `json:"public,omitempty"` + SsoProperties *DevToolPortalSsoProperties `json:"ssoProperties,omitempty"` + Url *string `json:"url,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalresource.go new file mode 100644 index 000000000000..266723f07900 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DevToolPortalResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *DevToolPortalProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalresourcerequests.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalresourcerequests.go new file mode 100644 index 000000000000..acf05c684661 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalresourcerequests.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DevToolPortalResourceRequests struct { + Cpu *string `json:"cpu,omitempty"` + InstanceCount *int64 `json:"instanceCount,omitempty"` + Memory *string `json:"memory,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalssoproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalssoproperties.go new file mode 100644 index 000000000000..71dc00f40623 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_devtoolportalssoproperties.go @@ -0,0 +1,11 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DevToolPortalSsoProperties struct { + ClientId *string `json:"clientId,omitempty"` + ClientSecret *string `json:"clientSecret,omitempty"` + MetadataUrl *string `json:"metadataUrl,omitempty"` + Scopes *[]string `json:"scopes,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_diagnosticparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_diagnosticparameters.go new file mode 100644 index 000000000000..56c211505937 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_diagnosticparameters.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DiagnosticParameters struct { + AppInstance *string `json:"appInstance,omitempty"` + Duration *string `json:"duration,omitempty"` + FilePath *string `json:"filePath,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_error.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_error.go new file mode 100644 index 000000000000..2771d3727498 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_error.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Error struct { + Code *string `json:"code,omitempty"` + Message *string `json:"message,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_eurekaserverproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_eurekaserverproperties.go new file mode 100644 index 000000000000..9e377f924388 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_eurekaserverproperties.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type EurekaServerProperties struct { + EnabledState *EurekaServerEnabledState `json:"enabledState,omitempty"` + Error *Error `json:"error,omitempty"` + ProvisioningState *EurekaServerState `json:"provisioningState,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_eurekaserverresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_eurekaserverresource.go new file mode 100644 index 000000000000..73eb7b1b697e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_eurekaserverresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type EurekaServerResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *EurekaServerProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_eurekaserverresourcecollection.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_eurekaserverresourcecollection.go new file mode 100644 index 000000000000..6a07e6f8ecf4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_eurekaserverresourcecollection.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type EurekaServerResourceCollection struct { + NextLink *string `json:"nextLink,omitempty"` + Value *[]EurekaServerResource `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_execaction.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_execaction.go new file mode 100644 index 000000000000..6a220bef9b94 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_execaction.go @@ -0,0 +1,41 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ ProbeAction = ExecAction{} + +type ExecAction struct { + Command *[]string `json:"command,omitempty"` + + // Fields inherited from ProbeAction +} + +var _ json.Marshaler = ExecAction{} + +func (s ExecAction) MarshalJSON() ([]byte, error) { + type wrapper ExecAction + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling ExecAction: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling ExecAction: %+v", err) + } + decoded["type"] = "ExecAction" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling ExecAction: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayapimetadataproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayapimetadataproperties.go new file mode 100644 index 000000000000..860b99631e79 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayapimetadataproperties.go @@ -0,0 +1,12 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayApiMetadataProperties struct { + Description *string `json:"description,omitempty"` + Documentation *string `json:"documentation,omitempty"` + ServerUrl *string `json:"serverUrl,omitempty"` + Title *string `json:"title,omitempty"` + Version *string `json:"version,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayapiroute.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayapiroute.go new file mode 100644 index 000000000000..eafc486c45f5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayapiroute.go @@ -0,0 +1,16 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayApiRoute struct { + Description *string `json:"description,omitempty"` + Filters *[]string `json:"filters,omitempty"` + Order *int64 `json:"order,omitempty"` + Predicates *[]string `json:"predicates,omitempty"` + SsoEnabled *bool `json:"ssoEnabled,omitempty"` + Tags *[]string `json:"tags,omitempty"` + Title *string `json:"title,omitempty"` + TokenRelay *bool `json:"tokenRelay,omitempty"` + Uri *string `json:"uri,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaycorsproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaycorsproperties.go new file mode 100644 index 000000000000..181b9b32de42 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaycorsproperties.go @@ -0,0 +1,14 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayCorsProperties struct { + AllowCredentials *bool `json:"allowCredentials,omitempty"` + AllowedHeaders *[]string `json:"allowedHeaders,omitempty"` + AllowedMethods *[]string `json:"allowedMethods,omitempty"` + AllowedOriginPatterns *[]string `json:"allowedOriginPatterns,omitempty"` + AllowedOrigins *[]string `json:"allowedOrigins,omitempty"` + ExposedHeaders *[]string `json:"exposedHeaders,omitempty"` + MaxAge *int64 `json:"maxAge,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaycustomdomainproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaycustomdomainproperties.go new file mode 100644 index 000000000000..49b3b1e778eb --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaycustomdomainproperties.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayCustomDomainProperties struct { + Thumbprint *string `json:"thumbprint,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaycustomdomainresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaycustomdomainresource.go new file mode 100644 index 000000000000..1adab8f5fbf9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaycustomdomainresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayCustomDomainResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *GatewayCustomDomainProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayinstance.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayinstance.go new file mode 100644 index 000000000000..0c3c2e33405f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayinstance.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayInstance struct { + Name *string `json:"name,omitempty"` + Status *string `json:"status,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayoperatorproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayoperatorproperties.go new file mode 100644 index 000000000000..ca404d33b4ee --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayoperatorproperties.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayOperatorProperties struct { + Instances *[]GatewayInstance `json:"instances,omitempty"` + ResourceRequests *GatewayOperatorResourceRequests `json:"resourceRequests,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayoperatorresourcerequests.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayoperatorresourcerequests.go new file mode 100644 index 000000000000..582890dfe326 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayoperatorresourcerequests.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayOperatorResourceRequests struct { + Cpu *string `json:"cpu,omitempty"` + InstanceCount *int64 `json:"instanceCount,omitempty"` + Memory *string `json:"memory,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayproperties.go new file mode 100644 index 000000000000..ca99121c8984 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayproperties.go @@ -0,0 +1,21 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayProperties struct { + AddonConfigs *map[string]interface{} `json:"addonConfigs,omitempty"` + ApiMetadataProperties *GatewayApiMetadataProperties `json:"apiMetadataProperties,omitempty"` + ApmTypes *[]ApmType `json:"apmTypes,omitempty"` + ClientAuth *GatewayPropertiesClientAuth `json:"clientAuth,omitempty"` + CorsProperties *GatewayCorsProperties `json:"corsProperties,omitempty"` + EnvironmentVariables *GatewayPropertiesEnvironmentVariables `json:"environmentVariables,omitempty"` + HTTPSOnly *bool `json:"httpsOnly,omitempty"` + Instances *[]GatewayInstance `json:"instances,omitempty"` + OperatorProperties *GatewayOperatorProperties `json:"operatorProperties,omitempty"` + ProvisioningState *GatewayProvisioningState `json:"provisioningState,omitempty"` + Public *bool `json:"public,omitempty"` + ResourceRequests *GatewayResourceRequests `json:"resourceRequests,omitempty"` + SsoProperties *SsoProperties `json:"ssoProperties,omitempty"` + Url *string `json:"url,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaypropertiesclientauth.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaypropertiesclientauth.go new file mode 100644 index 000000000000..019b1f292156 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaypropertiesclientauth.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayPropertiesClientAuth struct { + CertificateVerification *GatewayCertificateVerification `json:"certificateVerification,omitempty"` + Certificates *[]string `json:"certificates,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaypropertiesenvironmentvariables.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaypropertiesenvironmentvariables.go new file mode 100644 index 000000000000..19370e884cb3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewaypropertiesenvironmentvariables.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayPropertiesEnvironmentVariables struct { + Properties *map[string]string `json:"properties,omitempty"` + Secrets *map[string]string `json:"secrets,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayresource.go new file mode 100644 index 000000000000..80caf5d2e020 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayresource.go @@ -0,0 +1,17 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *GatewayProperties `json:"properties,omitempty"` + Sku *Sku `json:"sku,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayresourcerequests.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayresourcerequests.go new file mode 100644 index 000000000000..908bc1bdea64 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayresourcerequests.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayResourceRequests struct { + Cpu *string `json:"cpu,omitempty"` + Memory *string `json:"memory,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayrouteconfigopenapiproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayrouteconfigopenapiproperties.go new file mode 100644 index 000000000000..6eeda31eddbc --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayrouteconfigopenapiproperties.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayRouteConfigOpenApiProperties struct { + Uri *string `json:"uri,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayrouteconfigproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayrouteconfigproperties.go new file mode 100644 index 000000000000..e77414d826bb --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayrouteconfigproperties.go @@ -0,0 +1,15 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayRouteConfigProperties struct { + AppResourceId *string `json:"appResourceId,omitempty"` + Filters *[]string `json:"filters,omitempty"` + OpenApi *GatewayRouteConfigOpenApiProperties `json:"openApi,omitempty"` + Predicates *[]string `json:"predicates,omitempty"` + Protocol *GatewayRouteConfigProtocol `json:"protocol,omitempty"` + ProvisioningState *GatewayProvisioningState `json:"provisioningState,omitempty"` + Routes *[]GatewayApiRoute `json:"routes,omitempty"` + SsoEnabled *bool `json:"ssoEnabled,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayrouteconfigresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayrouteconfigresource.go new file mode 100644 index 000000000000..927ad10c2497 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gatewayrouteconfigresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GatewayRouteConfigResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *GatewayRouteConfigProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gitpatternrepository.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gitpatternrepository.go new file mode 100644 index 000000000000..130e4b73b805 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_gitpatternrepository.go @@ -0,0 +1,18 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GitPatternRepository struct { + HostKey *string `json:"hostKey,omitempty"` + HostKeyAlgorithm *string `json:"hostKeyAlgorithm,omitempty"` + Label *string `json:"label,omitempty"` + Name string `json:"name"` + Password *string `json:"password,omitempty"` + Pattern *[]string `json:"pattern,omitempty"` + PrivateKey *string `json:"privateKey,omitempty"` + SearchPaths *[]string `json:"searchPaths,omitempty"` + StrictHostKeyChecking *bool `json:"strictHostKeyChecking,omitempty"` + Uri string `json:"uri"` + Username *string `json:"username,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_globallyenabledapms.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_globallyenabledapms.go new file mode 100644 index 000000000000..e86c1ddc1a18 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_globallyenabledapms.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GloballyEnabledApms struct { + Value *[]string `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_httpgetaction.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_httpgetaction.go new file mode 100644 index 000000000000..702c4d0f29d7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_httpgetaction.go @@ -0,0 +1,42 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ ProbeAction = HTTPGetAction{} + +type HTTPGetAction struct { + Path *string `json:"path,omitempty"` + Scheme *HTTPSchemeType `json:"scheme,omitempty"` + + // Fields inherited from ProbeAction +} + +var _ json.Marshaler = HTTPGetAction{} + +func (s HTTPGetAction) MarshalJSON() ([]byte, error) { + type wrapper HTTPGetAction + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling HTTPGetAction: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling HTTPGetAction: %+v", err) + } + decoded["type"] = "HTTPGetAction" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling HTTPGetAction: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_httpscalerule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_httpscalerule.go new file mode 100644 index 000000000000..e0a300a53d3a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_httpscalerule.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type HTTPScaleRule struct { + Auth *[]ScaleRuleAuth `json:"auth,omitempty"` + Metadata *map[string]string `json:"metadata,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_imageregistrycredential.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_imageregistrycredential.go new file mode 100644 index 000000000000..94706ca594ed --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_imageregistrycredential.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ImageRegistryCredential struct { + Password *string `json:"password,omitempty"` + Username *string `json:"username,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ingressconfig.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ingressconfig.go new file mode 100644 index 000000000000..d258752f4e87 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ingressconfig.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type IngressConfig struct { + ReadTimeoutInSeconds *int64 `json:"readTimeoutInSeconds,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ingresssettings.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ingresssettings.go new file mode 100644 index 000000000000..5292d5d8fac9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ingresssettings.go @@ -0,0 +1,13 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type IngressSettings struct { + BackendProtocol *BackendProtocol `json:"backendProtocol,omitempty"` + ClientAuth *IngressSettingsClientAuth `json:"clientAuth,omitempty"` + ReadTimeoutInSeconds *int64 `json:"readTimeoutInSeconds,omitempty"` + SendTimeoutInSeconds *int64 `json:"sendTimeoutInSeconds,omitempty"` + SessionAffinity *SessionAffinity `json:"sessionAffinity,omitempty"` + SessionCookieMaxAge *int64 `json:"sessionCookieMaxAge,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ingresssettingsclientauth.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ingresssettingsclientauth.go new file mode 100644 index 000000000000..2c5720c5dd66 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ingresssettingsclientauth.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type IngressSettingsClientAuth struct { + Certificates *[]string `json:"certificates,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_jaruploadedusersourceinfo.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_jaruploadedusersourceinfo.go new file mode 100644 index 000000000000..2047480ff519 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_jaruploadedusersourceinfo.go @@ -0,0 +1,44 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ UserSourceInfo = JarUploadedUserSourceInfo{} + +type JarUploadedUserSourceInfo struct { + JVMOptions *string `json:"jvmOptions,omitempty"` + RelativePath *string `json:"relativePath,omitempty"` + RuntimeVersion *string `json:"runtimeVersion,omitempty"` + + // Fields inherited from UserSourceInfo + Version *string `json:"version,omitempty"` +} + +var _ json.Marshaler = JarUploadedUserSourceInfo{} + +func (s JarUploadedUserSourceInfo) MarshalJSON() ([]byte, error) { + type wrapper JarUploadedUserSourceInfo + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling JarUploadedUserSourceInfo: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling JarUploadedUserSourceInfo: %+v", err) + } + decoded["type"] = "Jar" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling JarUploadedUserSourceInfo: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_keyvaultcertificateproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_keyvaultcertificateproperties.go new file mode 100644 index 000000000000..cfad718f4d23 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_keyvaultcertificateproperties.go @@ -0,0 +1,52 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ CertificateProperties = KeyVaultCertificateProperties{} + +type KeyVaultCertificateProperties struct { + CertVersion *string `json:"certVersion,omitempty"` + ExcludePrivateKey *bool `json:"excludePrivateKey,omitempty"` + KeyVaultCertName string `json:"keyVaultCertName"` + VaultUri string `json:"vaultUri"` + + // Fields inherited from CertificateProperties + ActivateDate *string `json:"activateDate,omitempty"` + DnsNames *[]string `json:"dnsNames,omitempty"` + ExpirationDate *string `json:"expirationDate,omitempty"` + IssuedDate *string `json:"issuedDate,omitempty"` + Issuer *string `json:"issuer,omitempty"` + ProvisioningState *CertificateResourceProvisioningState `json:"provisioningState,omitempty"` + SubjectName *string `json:"subjectName,omitempty"` + Thumbprint *string `json:"thumbprint,omitempty"` +} + +var _ json.Marshaler = KeyVaultCertificateProperties{} + +func (s KeyVaultCertificateProperties) MarshalJSON() ([]byte, error) { + type wrapper KeyVaultCertificateProperties + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling KeyVaultCertificateProperties: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling KeyVaultCertificateProperties: %+v", err) + } + decoded["type"] = "KeyVaultCertificate" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling KeyVaultCertificateProperties: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_loadedcertificate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_loadedcertificate.go new file mode 100644 index 000000000000..92408a0cad48 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_loadedcertificate.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type LoadedCertificate struct { + LoadTrustStore *bool `json:"loadTrustStore,omitempty"` + ResourceId string `json:"resourceId"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_logfileurlresponse.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_logfileurlresponse.go new file mode 100644 index 000000000000..444d30751f65 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_logfileurlresponse.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type LogFileUrlResponse struct { + Url string `json:"url"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_maintenancescheduleconfiguration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_maintenancescheduleconfiguration.go new file mode 100644 index 000000000000..20d0e309f570 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_maintenancescheduleconfiguration.go @@ -0,0 +1,53 @@ +package appplatform + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type MaintenanceScheduleConfiguration interface { +} + +// RawMaintenanceScheduleConfigurationImpl is returned when the Discriminated Value +// doesn't match any of the defined types +// NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) +// and is used only for Deserialization (e.g. this cannot be used as a Request Payload). +type RawMaintenanceScheduleConfigurationImpl struct { + Type string + Values map[string]interface{} +} + +func unmarshalMaintenanceScheduleConfigurationImplementation(input []byte) (MaintenanceScheduleConfiguration, error) { + if input == nil { + return nil, nil + } + + var temp map[string]interface{} + if err := json.Unmarshal(input, &temp); err != nil { + return nil, fmt.Errorf("unmarshaling MaintenanceScheduleConfiguration into map[string]interface: %+v", err) + } + + value, ok := temp["frequency"].(string) + if !ok { + return nil, nil + } + + if strings.EqualFold(value, "Weekly") { + var out WeeklyMaintenanceScheduleConfiguration + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into WeeklyMaintenanceScheduleConfiguration: %+v", err) + } + return out, nil + } + + out := RawMaintenanceScheduleConfigurationImpl{ + Type: value, + Values: temp, + } + return out, nil + +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_marketplaceresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_marketplaceresource.go new file mode 100644 index 000000000000..4f27db378971 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_marketplaceresource.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type MarketplaceResource struct { + Plan *string `json:"plan,omitempty"` + Product *string `json:"product,omitempty"` + Publisher *string `json:"publisher,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_monitoringsettingproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_monitoringsettingproperties.go new file mode 100644 index 000000000000..57067eaae23b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_monitoringsettingproperties.go @@ -0,0 +1,13 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type MonitoringSettingProperties struct { + AppInsightsAgentVersions *ApplicationInsightsAgentVersions `json:"appInsightsAgentVersions,omitempty"` + AppInsightsInstrumentationKey *string `json:"appInsightsInstrumentationKey,omitempty"` + AppInsightsSamplingRate *float64 `json:"appInsightsSamplingRate,omitempty"` + Error *Error `json:"error,omitempty"` + ProvisioningState *MonitoringSettingState `json:"provisioningState,omitempty"` + TraceEnabled *bool `json:"traceEnabled,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_monitoringsettingresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_monitoringsettingresource.go new file mode 100644 index 000000000000..4dc0f0ef4e06 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_monitoringsettingresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type MonitoringSettingResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *MonitoringSettingProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_nameavailability.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_nameavailability.go new file mode 100644 index 000000000000..e3b93e3ffbef --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_nameavailability.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type NameAvailability struct { + Message *string `json:"message,omitempty"` + NameAvailable *bool `json:"nameAvailable,omitempty"` + Reason *string `json:"reason,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_nameavailabilityparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_nameavailabilityparameters.go new file mode 100644 index 000000000000..a831cfda0e61 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_nameavailabilityparameters.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type NameAvailabilityParameters struct { + Name string `json:"name"` + Type string `json:"type"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_netcorezipuploadedusersourceinfo.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_netcorezipuploadedusersourceinfo.go new file mode 100644 index 000000000000..b09513197154 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_netcorezipuploadedusersourceinfo.go @@ -0,0 +1,44 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ UserSourceInfo = NetCoreZipUploadedUserSourceInfo{} + +type NetCoreZipUploadedUserSourceInfo struct { + NetCoreMainEntryPath *string `json:"netCoreMainEntryPath,omitempty"` + RelativePath *string `json:"relativePath,omitempty"` + RuntimeVersion *string `json:"runtimeVersion,omitempty"` + + // Fields inherited from UserSourceInfo + Version *string `json:"version,omitempty"` +} + +var _ json.Marshaler = NetCoreZipUploadedUserSourceInfo{} + +func (s NetCoreZipUploadedUserSourceInfo) MarshalJSON() ([]byte, error) { + type wrapper NetCoreZipUploadedUserSourceInfo + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling NetCoreZipUploadedUserSourceInfo: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling NetCoreZipUploadedUserSourceInfo: %+v", err) + } + decoded["type"] = "NetCoreZip" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling NetCoreZipUploadedUserSourceInfo: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_networkprofile.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_networkprofile.go new file mode 100644 index 000000000000..24ac5049313b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_networkprofile.go @@ -0,0 +1,16 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type NetworkProfile struct { + AppNetworkResourceGroup *string `json:"appNetworkResourceGroup,omitempty"` + AppSubnetId *string `json:"appSubnetId,omitempty"` + IngressConfig *IngressConfig `json:"ingressConfig,omitempty"` + OutboundIPs *NetworkProfileOutboundIPs `json:"outboundIPs,omitempty"` + OutboundType *string `json:"outboundType,omitempty"` + RequiredTraffics *[]RequiredTraffic `json:"requiredTraffics,omitempty"` + ServiceCidr *string `json:"serviceCidr,omitempty"` + ServiceRuntimeNetworkResourceGroup *string `json:"serviceRuntimeNetworkResourceGroup,omitempty"` + ServiceRuntimeSubnetId *string `json:"serviceRuntimeSubnetId,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_networkprofileoutboundips.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_networkprofileoutboundips.go new file mode 100644 index 000000000000..c5fc3ebbae4e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_networkprofileoutboundips.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type NetworkProfileOutboundIPs struct { + PublicIPs *[]string `json:"publicIPs,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_persistentdisk.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_persistentdisk.go new file mode 100644 index 000000000000..2478dd8579d7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_persistentdisk.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PersistentDisk struct { + MountPath *string `json:"mountPath,omitempty"` + SizeInGB *int64 `json:"sizeInGB,omitempty"` + UsedInGB *int64 `json:"usedInGB,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_predefinedacceleratorproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_predefinedacceleratorproperties.go new file mode 100644 index 000000000000..2449929660c7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_predefinedacceleratorproperties.go @@ -0,0 +1,13 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PredefinedAcceleratorProperties struct { + AcceleratorTags *[]string `json:"acceleratorTags,omitempty"` + Description *string `json:"description,omitempty"` + DisplayName *string `json:"displayName,omitempty"` + IconUrl *string `json:"iconUrl,omitempty"` + ProvisioningState *PredefinedAcceleratorProvisioningState `json:"provisioningState,omitempty"` + State *PredefinedAcceleratorState `json:"state,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_predefinedacceleratorresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_predefinedacceleratorresource.go new file mode 100644 index 000000000000..ec9c1d50e44e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_predefinedacceleratorresource.go @@ -0,0 +1,17 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type PredefinedAcceleratorResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *PredefinedAcceleratorProperties `json:"properties,omitempty"` + Sku *Sku `json:"sku,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_probe.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_probe.go new file mode 100644 index 000000000000..c59cb8825f17 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_probe.go @@ -0,0 +1,50 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Probe struct { + DisableProbe bool `json:"disableProbe"` + FailureThreshold *int64 `json:"failureThreshold,omitempty"` + InitialDelaySeconds *int64 `json:"initialDelaySeconds,omitempty"` + PeriodSeconds *int64 `json:"periodSeconds,omitempty"` + ProbeAction ProbeAction `json:"probeAction"` + SuccessThreshold *int64 `json:"successThreshold,omitempty"` + TimeoutSeconds *int64 `json:"timeoutSeconds,omitempty"` +} + +var _ json.Unmarshaler = &Probe{} + +func (s *Probe) UnmarshalJSON(bytes []byte) error { + type alias Probe + var decoded alias + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling into Probe: %+v", err) + } + + s.DisableProbe = decoded.DisableProbe + s.FailureThreshold = decoded.FailureThreshold + s.InitialDelaySeconds = decoded.InitialDelaySeconds + s.PeriodSeconds = decoded.PeriodSeconds + s.SuccessThreshold = decoded.SuccessThreshold + s.TimeoutSeconds = decoded.TimeoutSeconds + + var temp map[string]json.RawMessage + if err := json.Unmarshal(bytes, &temp); err != nil { + return fmt.Errorf("unmarshaling Probe into map[string]json.RawMessage: %+v", err) + } + + if v, ok := temp["probeAction"]; ok { + impl, err := unmarshalProbeActionImplementation(v) + if err != nil { + return fmt.Errorf("unmarshaling field 'ProbeAction' for 'Probe': %+v", err) + } + s.ProbeAction = impl + } + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_probeaction.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_probeaction.go new file mode 100644 index 000000000000..c6bb9d81bc24 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_probeaction.go @@ -0,0 +1,69 @@ +package appplatform + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ProbeAction interface { +} + +// RawProbeActionImpl is returned when the Discriminated Value +// doesn't match any of the defined types +// NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) +// and is used only for Deserialization (e.g. this cannot be used as a Request Payload). +type RawProbeActionImpl struct { + Type string + Values map[string]interface{} +} + +func unmarshalProbeActionImplementation(input []byte) (ProbeAction, error) { + if input == nil { + return nil, nil + } + + var temp map[string]interface{} + if err := json.Unmarshal(input, &temp); err != nil { + return nil, fmt.Errorf("unmarshaling ProbeAction into map[string]interface: %+v", err) + } + + value, ok := temp["type"].(string) + if !ok { + return nil, nil + } + + if strings.EqualFold(value, "ExecAction") { + var out ExecAction + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into ExecAction: %+v", err) + } + return out, nil + } + + if strings.EqualFold(value, "HTTPGetAction") { + var out HTTPGetAction + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into HTTPGetAction: %+v", err) + } + return out, nil + } + + if strings.EqualFold(value, "TCPSocketAction") { + var out TCPSocketAction + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into TCPSocketAction: %+v", err) + } + return out, nil + } + + out := RawProbeActionImpl{ + Type: value, + Values: temp, + } + return out, nil + +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_queuescalerule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_queuescalerule.go new file mode 100644 index 000000000000..3681374b1743 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_queuescalerule.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type QueueScaleRule struct { + Auth *[]ScaleRuleAuth `json:"auth,omitempty"` + QueueLength *int64 `json:"queueLength,omitempty"` + QueueName *string `json:"queueName,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_regeneratetestkeyrequestpayload.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_regeneratetestkeyrequestpayload.go new file mode 100644 index 000000000000..3f6a1c7d4e12 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_regeneratetestkeyrequestpayload.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type RegenerateTestKeyRequestPayload struct { + KeyType TestKeyType `json:"keyType"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_remotedebugging.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_remotedebugging.go new file mode 100644 index 000000000000..6977018bcf27 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_remotedebugging.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type RemoteDebugging struct { + Enabled *bool `json:"enabled,omitempty"` + Port *int64 `json:"port,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_remotedebuggingpayload.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_remotedebuggingpayload.go new file mode 100644 index 000000000000..25b3372481dd --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_remotedebuggingpayload.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type RemoteDebuggingPayload struct { + Port *int64 `json:"port,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_requiredtraffic.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_requiredtraffic.go new file mode 100644 index 000000000000..8ea811b30640 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_requiredtraffic.go @@ -0,0 +1,12 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type RequiredTraffic struct { + Direction *TrafficDirection `json:"direction,omitempty"` + Fqdns *[]string `json:"fqdns,omitempty"` + IPs *[]string `json:"ips,omitempty"` + Port *int64 `json:"port,omitempty"` + Protocol *string `json:"protocol,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourcerequests.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourcerequests.go new file mode 100644 index 000000000000..08ca71575ad8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourcerequests.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ResourceRequests struct { + Cpu *string `json:"cpu,omitempty"` + Memory *string `json:"memory,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourcesku.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourcesku.go new file mode 100644 index 000000000000..3bc7d5f7838a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourcesku.go @@ -0,0 +1,14 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ResourceSku struct { + Capacity *SkuCapacity `json:"capacity,omitempty"` + LocationInfo *[]ResourceSkuLocationInfo `json:"locationInfo,omitempty"` + Locations *[]string `json:"locations,omitempty"` + Name *string `json:"name,omitempty"` + ResourceType *string `json:"resourceType,omitempty"` + Restrictions *[]ResourceSkuRestrictions `json:"restrictions,omitempty"` + Tier *string `json:"tier,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskucapabilities.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskucapabilities.go new file mode 100644 index 000000000000..731a8c5986a9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskucapabilities.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ResourceSkuCapabilities struct { + Name *string `json:"name,omitempty"` + Value *string `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskulocationinfo.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskulocationinfo.go new file mode 100644 index 000000000000..4e176631c15c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskulocationinfo.go @@ -0,0 +1,14 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/zones" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ResourceSkuLocationInfo struct { + Location *string `json:"location,omitempty"` + ZoneDetails *[]ResourceSkuZoneDetails `json:"zoneDetails,omitempty"` + Zones *zones.Schema `json:"zones,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskurestrictioninfo.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskurestrictioninfo.go new file mode 100644 index 000000000000..5edc7c0a93b6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskurestrictioninfo.go @@ -0,0 +1,13 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/zones" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ResourceSkuRestrictionInfo struct { + Locations *[]string `json:"locations,omitempty"` + Zones *zones.Schema `json:"zones,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskurestrictions.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskurestrictions.go new file mode 100644 index 000000000000..6fe2faab5a89 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskurestrictions.go @@ -0,0 +1,11 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ResourceSkuRestrictions struct { + ReasonCode *ResourceSkuRestrictionsReasonCode `json:"reasonCode,omitempty"` + RestrictionInfo *ResourceSkuRestrictionInfo `json:"restrictionInfo,omitempty"` + Type *ResourceSkuRestrictionsType `json:"type,omitempty"` + Values *[]string `json:"values,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskuzonedetails.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskuzonedetails.go new file mode 100644 index 000000000000..da6c8e0446de --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceskuzonedetails.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ResourceSkuZoneDetails struct { + Capabilities *[]ResourceSkuCapabilities `json:"capabilities,omitempty"` + Name *[]string `json:"name,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceuploaddefinition.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceuploaddefinition.go new file mode 100644 index 000000000000..6c04602e5d48 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_resourceuploaddefinition.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ResourceUploadDefinition struct { + RelativePath *string `json:"relativePath,omitempty"` + UploadUrl *string `json:"uploadUrl,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_scale.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_scale.go new file mode 100644 index 000000000000..dfbb52847eca --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_scale.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Scale struct { + MaxReplicas *int64 `json:"maxReplicas,omitempty"` + MinReplicas *int64 `json:"minReplicas,omitempty"` + Rules *[]ScaleRule `json:"rules,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_scalerule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_scalerule.go new file mode 100644 index 000000000000..cc54e843e819 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_scalerule.go @@ -0,0 +1,12 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ScaleRule struct { + AzureQueue *QueueScaleRule `json:"azureQueue,omitempty"` + Custom *CustomScaleRule `json:"custom,omitempty"` + HTTP *HTTPScaleRule `json:"http,omitempty"` + Name *string `json:"name,omitempty"` + Tcp *TcpScaleRule `json:"tcp,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_scaleruleauth.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_scaleruleauth.go new file mode 100644 index 000000000000..ad077d61e60e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_scaleruleauth.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ScaleRuleAuth struct { + SecretRef *string `json:"secretRef,omitempty"` + TriggerParameter *string `json:"triggerParameter,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_secret.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_secret.go new file mode 100644 index 000000000000..eaf651889989 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_secret.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Secret struct { + Name *string `json:"name,omitempty"` + Value *string `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryinstance.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryinstance.go new file mode 100644 index 000000000000..95d049a2767b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryinstance.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServiceRegistryInstance struct { + Name *string `json:"name,omitempty"` + Status *string `json:"status,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryproperties.go new file mode 100644 index 000000000000..3de247cb4f78 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryproperties.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServiceRegistryProperties struct { + Instances *[]ServiceRegistryInstance `json:"instances,omitempty"` + ProvisioningState *ServiceRegistryProvisioningState `json:"provisioningState,omitempty"` + ResourceRequests *ServiceRegistryResourceRequests `json:"resourceRequests,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryresource.go new file mode 100644 index 000000000000..581f7da5c1d7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServiceRegistryResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *ServiceRegistryProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryresourcerequests.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryresourcerequests.go new file mode 100644 index 000000000000..f032d062935c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceregistryresourcerequests.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServiceRegistryResourceRequests struct { + Cpu *string `json:"cpu,omitempty"` + InstanceCount *int64 `json:"instanceCount,omitempty"` + Memory *string `json:"memory,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceresource.go new file mode 100644 index 000000000000..0ea2cc3b1835 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_serviceresource.go @@ -0,0 +1,19 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServiceResource struct { + Id *string `json:"id,omitempty"` + Location *string `json:"location,omitempty"` + Name *string `json:"name,omitempty"` + Properties *ClusterResourceProperties `json:"properties,omitempty"` + Sku *Sku `json:"sku,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Tags *map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_servicevnetaddons.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_servicevnetaddons.go new file mode 100644 index 000000000000..44fae52128f6 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_servicevnetaddons.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ServiceVNetAddons struct { + DataPlanePublicEndpoint *bool `json:"dataPlanePublicEndpoint,omitempty"` + LogStreamPublicEndpoint *bool `json:"logStreamPublicEndpoint,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_sku.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_sku.go new file mode 100644 index 000000000000..a596965357fc --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_sku.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type Sku struct { + Capacity *int64 `json:"capacity,omitempty"` + Name *string `json:"name,omitempty"` + Tier *string `json:"tier,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_skucapacity.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_skucapacity.go new file mode 100644 index 000000000000..1d7277168f3b --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_skucapacity.go @@ -0,0 +1,11 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SkuCapacity struct { + Default *int64 `json:"default,omitempty"` + Maximum *int64 `json:"maximum,omitempty"` + Minimum int64 `json:"minimum"` + ScaleType *SkuScaleType `json:"scaleType,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_skuobject.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_skuobject.go new file mode 100644 index 000000000000..49c4a39063b3 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_skuobject.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SkuObject struct { + Sku *Sku `json:"sku,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_sourceuploadedusersourceinfo.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_sourceuploadedusersourceinfo.go new file mode 100644 index 000000000000..62fe9835ba03 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_sourceuploadedusersourceinfo.go @@ -0,0 +1,44 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ UserSourceInfo = SourceUploadedUserSourceInfo{} + +type SourceUploadedUserSourceInfo struct { + ArtifactSelector *string `json:"artifactSelector,omitempty"` + RelativePath *string `json:"relativePath,omitempty"` + RuntimeVersion *string `json:"runtimeVersion,omitempty"` + + // Fields inherited from UserSourceInfo + Version *string `json:"version,omitempty"` +} + +var _ json.Marshaler = SourceUploadedUserSourceInfo{} + +func (s SourceUploadedUserSourceInfo) MarshalJSON() ([]byte, error) { + type wrapper SourceUploadedUserSourceInfo + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling SourceUploadedUserSourceInfo: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling SourceUploadedUserSourceInfo: %+v", err) + } + decoded["type"] = "Source" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling SourceUploadedUserSourceInfo: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ssoproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ssoproperties.go new file mode 100644 index 000000000000..60c9ef373ae8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_ssoproperties.go @@ -0,0 +1,11 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SsoProperties struct { + ClientId *string `json:"clientId,omitempty"` + ClientSecret *string `json:"clientSecret,omitempty"` + IssuerUri *string `json:"issuerUri,omitempty"` + Scope *[]string `json:"scope,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_stackproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_stackproperties.go new file mode 100644 index 000000000000..1147b7659852 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_stackproperties.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type StackProperties struct { + Id *string `json:"id,omitempty"` + Version *string `json:"version,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_storageaccount.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_storageaccount.go new file mode 100644 index 000000000000..3dc49e5a0745 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_storageaccount.go @@ -0,0 +1,42 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ StorageProperties = StorageAccount{} + +type StorageAccount struct { + AccountKey string `json:"accountKey"` + AccountName string `json:"accountName"` + + // Fields inherited from StorageProperties +} + +var _ json.Marshaler = StorageAccount{} + +func (s StorageAccount) MarshalJSON() ([]byte, error) { + type wrapper StorageAccount + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling StorageAccount: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling StorageAccount: %+v", err) + } + decoded["storageType"] = "StorageAccount" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling StorageAccount: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_storageproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_storageproperties.go new file mode 100644 index 000000000000..b73ed4d4d42d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_storageproperties.go @@ -0,0 +1,53 @@ +package appplatform + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type StorageProperties interface { +} + +// RawStoragePropertiesImpl is returned when the Discriminated Value +// doesn't match any of the defined types +// NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) +// and is used only for Deserialization (e.g. this cannot be used as a Request Payload). +type RawStoragePropertiesImpl struct { + Type string + Values map[string]interface{} +} + +func unmarshalStoragePropertiesImplementation(input []byte) (StorageProperties, error) { + if input == nil { + return nil, nil + } + + var temp map[string]interface{} + if err := json.Unmarshal(input, &temp); err != nil { + return nil, fmt.Errorf("unmarshaling StorageProperties into map[string]interface: %+v", err) + } + + value, ok := temp["storageType"].(string) + if !ok { + return nil, nil + } + + if strings.EqualFold(value, "StorageAccount") { + var out StorageAccount + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into StorageAccount: %+v", err) + } + return out, nil + } + + out := RawStoragePropertiesImpl{ + Type: value, + Values: temp, + } + return out, nil + +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_storageresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_storageresource.go new file mode 100644 index 000000000000..f09c491658e7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_storageresource.go @@ -0,0 +1,48 @@ +package appplatform + +import ( + "encoding/json" + "fmt" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type StorageResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties StorageProperties `json:"properties"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} + +var _ json.Unmarshaler = &StorageResource{} + +func (s *StorageResource) UnmarshalJSON(bytes []byte) error { + type alias StorageResource + var decoded alias + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling into StorageResource: %+v", err) + } + + s.Id = decoded.Id + s.Name = decoded.Name + s.SystemData = decoded.SystemData + s.Type = decoded.Type + + var temp map[string]json.RawMessage + if err := json.Unmarshal(bytes, &temp); err != nil { + return fmt.Errorf("unmarshaling StorageResource into map[string]json.RawMessage: %+v", err) + } + + if v, ok := temp["properties"]; ok { + impl, err := unmarshalStoragePropertiesImplementation(v) + if err != nil { + return fmt.Errorf("unmarshaling field 'Properties' for 'StorageResource': %+v", err) + } + s.Properties = impl + } + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedapmtype.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedapmtype.go new file mode 100644 index 000000000000..76bb17c95071 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedapmtype.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SupportedApmType struct { + Name *string `json:"name,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedbuildpackresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedbuildpackresource.go new file mode 100644 index 000000000000..38af4b5dc13f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedbuildpackresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SupportedBuildpackResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *SupportedBuildpackResourceProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedbuildpackresourceproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedbuildpackresourceproperties.go new file mode 100644 index 000000000000..f308e062e775 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedbuildpackresourceproperties.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SupportedBuildpackResourceProperties struct { + BuildpackId *string `json:"buildpackId,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedbuildpackscollection.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedbuildpackscollection.go new file mode 100644 index 000000000000..cff222617758 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedbuildpackscollection.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SupportedBuildpacksCollection struct { + NextLink *string `json:"nextLink,omitempty"` + Value *[]SupportedBuildpackResource `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedruntimeversion.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedruntimeversion.go new file mode 100644 index 000000000000..b111a877c261 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedruntimeversion.go @@ -0,0 +1,10 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SupportedRuntimeVersion struct { + Platform *SupportedRuntimePlatform `json:"platform,omitempty"` + Value *SupportedRuntimeValue `json:"value,omitempty"` + Version *string `json:"version,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedstackresource.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedstackresource.go new file mode 100644 index 000000000000..c2f8040e25c0 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedstackresource.go @@ -0,0 +1,16 @@ +package appplatform + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SupportedStackResource struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *SupportedStackResourceProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedstackresourceproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedstackresourceproperties.go new file mode 100644 index 000000000000..4c3d40f4120c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedstackresourceproperties.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SupportedStackResourceProperties struct { + StackId *string `json:"stackId,omitempty"` + Version *string `json:"version,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedstackscollection.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedstackscollection.go new file mode 100644 index 000000000000..e0f576b45f48 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_supportedstackscollection.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type SupportedStacksCollection struct { + NextLink *string `json:"nextLink,omitempty"` + Value *[]SupportedStackResource `json:"value,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_tcpscalerule.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_tcpscalerule.go new file mode 100644 index 000000000000..31d915cc9f48 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_tcpscalerule.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TcpScaleRule struct { + Auth *[]ScaleRuleAuth `json:"auth,omitempty"` + Metadata *map[string]string `json:"metadata,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_tcpsocketaction.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_tcpsocketaction.go new file mode 100644 index 000000000000..a1edd6797d1a --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_tcpsocketaction.go @@ -0,0 +1,40 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ ProbeAction = TCPSocketAction{} + +type TCPSocketAction struct { + + // Fields inherited from ProbeAction +} + +var _ json.Marshaler = TCPSocketAction{} + +func (s TCPSocketAction) MarshalJSON() ([]byte, error) { + type wrapper TCPSocketAction + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling TCPSocketAction: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling TCPSocketAction: %+v", err) + } + decoded["type"] = "TCPSocketAction" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling TCPSocketAction: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_temporarydisk.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_temporarydisk.go new file mode 100644 index 000000000000..c373f759b6f7 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_temporarydisk.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TemporaryDisk struct { + MountPath *string `json:"mountPath,omitempty"` + SizeInGB *int64 `json:"sizeInGB,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_testkeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_testkeys.go new file mode 100644 index 000000000000..7f0cd5ce47c5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_testkeys.go @@ -0,0 +1,12 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TestKeys struct { + Enabled *bool `json:"enabled,omitempty"` + PrimaryKey *string `json:"primaryKey,omitempty"` + PrimaryTestEndpoint *string `json:"primaryTestEndpoint,omitempty"` + SecondaryKey *string `json:"secondaryKey,omitempty"` + SecondaryTestEndpoint *string `json:"secondaryTestEndpoint,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_triggeredbuildresult.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_triggeredbuildresult.go new file mode 100644 index 000000000000..8f3fd19c5ea8 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_triggeredbuildresult.go @@ -0,0 +1,8 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TriggeredBuildResult struct { + Id *string `json:"id,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_usersourceinfo.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_usersourceinfo.go new file mode 100644 index 000000000000..896fc74a091c --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_usersourceinfo.go @@ -0,0 +1,85 @@ +package appplatform + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UserSourceInfo interface { +} + +// RawUserSourceInfoImpl is returned when the Discriminated Value +// doesn't match any of the defined types +// NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) +// and is used only for Deserialization (e.g. this cannot be used as a Request Payload). +type RawUserSourceInfoImpl struct { + Type string + Values map[string]interface{} +} + +func unmarshalUserSourceInfoImplementation(input []byte) (UserSourceInfo, error) { + if input == nil { + return nil, nil + } + + var temp map[string]interface{} + if err := json.Unmarshal(input, &temp); err != nil { + return nil, fmt.Errorf("unmarshaling UserSourceInfo into map[string]interface: %+v", err) + } + + value, ok := temp["type"].(string) + if !ok { + return nil, nil + } + + if strings.EqualFold(value, "BuildResult") { + var out BuildResultUserSourceInfo + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into BuildResultUserSourceInfo: %+v", err) + } + return out, nil + } + + if strings.EqualFold(value, "Container") { + var out CustomContainerUserSourceInfo + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into CustomContainerUserSourceInfo: %+v", err) + } + return out, nil + } + + if strings.EqualFold(value, "Jar") { + var out JarUploadedUserSourceInfo + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into JarUploadedUserSourceInfo: %+v", err) + } + return out, nil + } + + if strings.EqualFold(value, "NetCoreZip") { + var out NetCoreZipUploadedUserSourceInfo + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into NetCoreZipUploadedUserSourceInfo: %+v", err) + } + return out, nil + } + + if strings.EqualFold(value, "Source") { + var out SourceUploadedUserSourceInfo + if err := json.Unmarshal(input, &out); err != nil { + return nil, fmt.Errorf("unmarshaling into SourceUploadedUserSourceInfo: %+v", err) + } + return out, nil + } + + out := RawUserSourceInfoImpl{ + Type: value, + Values: temp, + } + return out, nil + +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_validationmessages.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_validationmessages.go new file mode 100644 index 000000000000..e570fddc984f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_validationmessages.go @@ -0,0 +1,9 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ValidationMessages struct { + Messages *[]string `json:"messages,omitempty"` + Name *string `json:"name,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_weeklymaintenancescheduleconfiguration.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_weeklymaintenancescheduleconfiguration.go new file mode 100644 index 000000000000..db1a4c4c91e9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/model_weeklymaintenancescheduleconfiguration.go @@ -0,0 +1,43 @@ +package appplatform + +import ( + "encoding/json" + "fmt" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +var _ MaintenanceScheduleConfiguration = WeeklyMaintenanceScheduleConfiguration{} + +type WeeklyMaintenanceScheduleConfiguration struct { + Day WeekDay `json:"day"` + Duration *string `json:"duration,omitempty"` + Hour int64 `json:"hour"` + + // Fields inherited from MaintenanceScheduleConfiguration +} + +var _ json.Marshaler = WeeklyMaintenanceScheduleConfiguration{} + +func (s WeeklyMaintenanceScheduleConfiguration) MarshalJSON() ([]byte, error) { + type wrapper WeeklyMaintenanceScheduleConfiguration + wrapped := wrapper(s) + encoded, err := json.Marshal(wrapped) + if err != nil { + return nil, fmt.Errorf("marshaling WeeklyMaintenanceScheduleConfiguration: %+v", err) + } + + var decoded map[string]interface{} + if err := json.Unmarshal(encoded, &decoded); err != nil { + return nil, fmt.Errorf("unmarshaling WeeklyMaintenanceScheduleConfiguration: %+v", err) + } + decoded["frequency"] = "Weekly" + + encoded, err = json.Marshal(decoded) + if err != nil { + return nil, fmt.Errorf("re-marshaling WeeklyMaintenanceScheduleConfiguration: %+v", err) + } + + return encoded, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/predicates.go new file mode 100644 index 000000000000..626c64ea2140 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/predicates.go @@ -0,0 +1,671 @@ +package appplatform + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ApiPortalCustomDomainResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p ApiPortalCustomDomainResourceOperationPredicate) Matches(input ApiPortalCustomDomainResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type ApiPortalResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p ApiPortalResourceOperationPredicate) Matches(input ApiPortalResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type ApmResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p ApmResourceOperationPredicate) Matches(input ApmResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type AppResourceOperationPredicate struct { + Id *string + Location *string + Name *string + Type *string +} + +func (p AppResourceOperationPredicate) Matches(input AppResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Location != nil && (input.Location == nil || *p.Location != *input.Location) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type ApplicationAcceleratorResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p ApplicationAcceleratorResourceOperationPredicate) Matches(input ApplicationAcceleratorResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type ApplicationLiveViewResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p ApplicationLiveViewResourceOperationPredicate) Matches(input ApplicationLiveViewResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type BindingResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p BindingResourceOperationPredicate) Matches(input BindingResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type BuildOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p BuildOperationPredicate) Matches(input Build) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type BuildResultOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p BuildResultOperationPredicate) Matches(input BuildResult) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type BuildServiceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p BuildServiceOperationPredicate) Matches(input BuildService) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type BuildServiceAgentPoolResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p BuildServiceAgentPoolResourceOperationPredicate) Matches(input BuildServiceAgentPoolResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type BuilderResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p BuilderResourceOperationPredicate) Matches(input BuilderResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type BuildpackBindingResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p BuildpackBindingResourceOperationPredicate) Matches(input BuildpackBindingResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type CertificateResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p CertificateResourceOperationPredicate) Matches(input CertificateResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type ConfigurationServiceResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p ConfigurationServiceResourceOperationPredicate) Matches(input ConfigurationServiceResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type ContainerRegistryResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p ContainerRegistryResourceOperationPredicate) Matches(input ContainerRegistryResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type CustomDomainResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p CustomDomainResourceOperationPredicate) Matches(input CustomDomainResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type CustomizedAcceleratorResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p CustomizedAcceleratorResourceOperationPredicate) Matches(input CustomizedAcceleratorResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type DeploymentResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p DeploymentResourceOperationPredicate) Matches(input DeploymentResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type DevToolPortalResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p DevToolPortalResourceOperationPredicate) Matches(input DevToolPortalResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type GatewayCustomDomainResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p GatewayCustomDomainResourceOperationPredicate) Matches(input GatewayCustomDomainResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type GatewayResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p GatewayResourceOperationPredicate) Matches(input GatewayResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type GatewayRouteConfigResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p GatewayRouteConfigResourceOperationPredicate) Matches(input GatewayRouteConfigResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type PredefinedAcceleratorResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p PredefinedAcceleratorResourceOperationPredicate) Matches(input PredefinedAcceleratorResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type ResourceSkuOperationPredicate struct { + Name *string + ResourceType *string + Tier *string +} + +func (p ResourceSkuOperationPredicate) Matches(input ResourceSku) bool { + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.ResourceType != nil && (input.ResourceType == nil || *p.ResourceType != *input.ResourceType) { + return false + } + + if p.Tier != nil && (input.Tier == nil || *p.Tier != *input.Tier) { + return false + } + + return true +} + +type ServiceRegistryResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p ServiceRegistryResourceOperationPredicate) Matches(input ServiceRegistryResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type ServiceResourceOperationPredicate struct { + Id *string + Location *string + Name *string + Type *string +} + +func (p ServiceResourceOperationPredicate) Matches(input ServiceResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Location != nil && (input.Location == nil || *p.Location != *input.Location) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type StorageResourceOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p StorageResourceOperationPredicate) Matches(input StorageResource) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} + +type SupportedApmTypeOperationPredicate struct { + Name *string +} + +func (p SupportedApmTypeOperationPredicate) Matches(input SupportedApmType) bool { + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + return true +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/version.go new file mode 100644 index 000000000000..f82647d64188 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform/version.go @@ -0,0 +1,12 @@ +package appplatform + +import "fmt" + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +const defaultApiVersion = "2023-07-01-preview" + +func userAgent() string { + return fmt.Sprintf("hashicorp/go-azure-sdk/appplatform/%s", defaultApiVersion) +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 5ac0dce13de8..9472d3d70731 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -220,6 +220,7 @@ github.com/hashicorp/go-azure-sdk/resource-manager/appconfiguration/2023-03-01/r github.com/hashicorp/go-azure-sdk/resource-manager/applicationinsights/2020-11-20/workbooktemplatesapis github.com/hashicorp/go-azure-sdk/resource-manager/applicationinsights/2022-04-01/workbooksapis github.com/hashicorp/go-azure-sdk/resource-manager/applicationinsights/2022-06-15/webtestsapis +github.com/hashicorp/go-azure-sdk/resource-manager/appplatform/2023-07-01-preview/appplatform github.com/hashicorp/go-azure-sdk/resource-manager/attestation/2020-10-01/attestationproviders github.com/hashicorp/go-azure-sdk/resource-manager/authorization/2020-10-01/roleassignmentscheduleinstances github.com/hashicorp/go-azure-sdk/resource-manager/authorization/2020-10-01/roleassignmentschedulerequests diff --git a/website/docs/r/spring_cloud_application_insights_application_performance_monitoring.html.markdown b/website/docs/r/spring_cloud_application_insights_application_performance_monitoring.html.markdown new file mode 100644 index 000000000000..e52422da9126 --- /dev/null +++ b/website/docs/r/spring_cloud_application_insights_application_performance_monitoring.html.markdown @@ -0,0 +1,96 @@ +--- +subcategory: "Spring Cloud" +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_spring_cloud_application_insights_application_performance_monitoring" +description: |- + Manages a Spring Cloud Application Performance Monitoring resource for Application Insights. +--- + +# azurerm_spring_cloud_application_insights_application_performance_monitoring + +-> **NOTE:** This resource is only applicable for Spring Cloud Service enterprise tier + +Manages a Spring Cloud Application Performance Monitoring resource for Application Insights. + +## Example Usage + +```hcl +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "example" { + name = "example" + location = "West Europe" +} + +resource "azurerm_application_insights" "example" { + name = "example" + location = azurerm_resource_group.example.location + resource_group_name = azurerm_resource_group.example.name + application_type = "web" +} + +resource "azurerm_spring_cloud_service" "example" { + name = "example" + location = azurerm_resource_group.example.location + resource_group_name = azurerm_resource_group.example.name + sku_name = "E0" +} + +resource "azurerm_spring_cloud_application_insights_application_performance_monitoring" "example" { + name = "example" + spring_cloud_service_id = azurerm_spring_cloud_service.example.id + connection_string = azurerm_application_insights.example.instrumentation_key + globally_enabled = true + role_name = "test-role" + role_instance = "test-instance" + sampling_percentage = 50 + sampling_requests_per_second = 10 +} +``` + +## Arguments Reference + +The following arguments are supported: + +* `name` - (Required) The name which should be used for this Spring Cloud Application Performance Monitoring resource for Application Insights. Changing this forces a new resource to be created. + +* `spring_cloud_service_id` - (Required) The ID of the Spring Cloud Service. Changing this forces a new resource to be created. + +--- + +* `globally_enabled` - (Optional) Specifies whether the Spring Cloud Application Performance Monitoring resource for Application Insights is enabled globally. Defaults to `false`. + +* `connection_string` - (Optional) The instrumentation key used to push data to Application Insights. + +* `role_name` - (Optional) Specifies the cloud role name used to label the component on the application map. + +* `role_instance` - (Optional) Specifies the cloud role instance. + +* `sampling_percentage` - (Optional) Specifies the percentage for fixed-percentage sampling. + +* `sampling_requests_per_second` - (Optional) Specifies the number of requests per second for the rate-limited sampling. + +## Attributes Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the Spring Cloud Application Performance Monitoring resource for Application Insights. + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: + +* `create` - (Defaults to 30 minutes) Used when creating the Spring Cloud Application Performance Monitoring resource for Application Insights. +* `read` - (Defaults to 5 minutes) Used when retrieving the Spring Cloud Application Performance Monitoring resource for Application Insights. +* `update` - (Defaults to 30 minutes) Used when updating the Spring Cloud Application Performance Monitoring resource for Application Insights. +* `delete` - (Defaults to 30 minutes) Used when deleting the Spring Cloud Application Performance Monitoring resource for Application Insights. + +## Import + +Spring Cloud Application Performance Monitoring resource for Application Insights can be imported using the `resource id`, e.g. + +```shell +terraform import azurerm_spring_cloud_application_insights_application_performance_monitoring.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.AppPlatform/spring/service1/apms/apm1 +``` From 1bd5b7c2a17b1708b23bca84d3ab37b51f5f47bb Mon Sep 17 00:00:00 2001 From: kt Date: Mon, 2 Oct 2023 02:45:59 -0700 Subject: [PATCH 307/336] Update CHANGELOG.md #23107 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8555a664bac4..954b78824ddc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## 3.76.0 (Unreleased) +FEATURES: + +* New Resource: `azurerm_spring_cloud_application_insights_application_performance_monitoring` [GH-23107] + ENHANCEMENTS: * `azurerm_static_site` - Add support for `app_settings` [GH-23421] From b7b186256047c23f5535c8ef133162a1d3a94675 Mon Sep 17 00:00:00 2001 From: chouse-qumodity <137554800+chouse-qumodity@users.noreply.github.com> Date: Tue, 3 Oct 2023 17:08:13 -0400 Subject: [PATCH 308/336] Update kubernetes_cluster.html.markdown fix exports/supports `allowed` and `not_allowed` were described as "block exports the following" when they should say "block supports the following" --- website/docs/r/kubernetes_cluster.html.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/docs/r/kubernetes_cluster.html.markdown b/website/docs/r/kubernetes_cluster.html.markdown index 351e187b8bc9..6cbfb471a1f5 100644 --- a/website/docs/r/kubernetes_cluster.html.markdown +++ b/website/docs/r/kubernetes_cluster.html.markdown @@ -629,7 +629,7 @@ A `maintenance_window_node_os` block supports the following: --- -An `allowed` block exports the following: +An `allowed` block supports the following: * `day` - (Required) A day in a week. Possible values are `Sunday`, `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday` and `Saturday`. @@ -637,7 +637,7 @@ An `allowed` block exports the following: --- -A `not_allowed` block exports the following: +A `not_allowed` block supports the following: * `end` - (Required) The end of a time span, formatted as an RFC3339 string. From 0b84d31c9c97ad8920a54d47e09274155c8353ec Mon Sep 17 00:00:00 2001 From: jackofallops <11830746+jackofallops@users.noreply.github.com> Date: Mon, 9 Oct 2023 05:43:09 +0100 Subject: [PATCH 309/336] `TypedSDK` - add filtering tag for removed schema items (#23415) --- contributing/topics/guide-new-fields-to-resource.md | 12 ++++++++++-- internal/sdk/resource_encode.go | 6 +++++- internal/services/appservice/helpers/app_stack.go | 10 +++++----- ...omation_software_update_configuration_resource.go | 5 ++--- ...te_recovery_replication_recovery_plan_resource.go | 2 +- ...tinel_log_analytics_workspace_onboard_resource.go | 4 ++-- 6 files changed, 25 insertions(+), 14 deletions(-) diff --git a/contributing/topics/guide-new-fields-to-resource.md b/contributing/topics/guide-new-fields-to-resource.md index 4bf410977720..1ab28e86820e 100755 --- a/contributing/topics/guide-new-fields-to-resource.md +++ b/contributing/topics/guide-new-fields-to-resource.md @@ -118,8 +118,6 @@ Schema: map[string]*pluginsdk.Schema{ After deprecation the schema might look like the example below. -TODO: how is this done for typed resources? - ```go func resource() *pluginsdk.Resource { resource := &pluginsdk.Resource{ @@ -185,3 +183,13 @@ func read() { ... } ``` + +When deprecating a property in a Typed Resource it is important to ensure that the Go struct representing the schema is correctly tagged to prevent the SDK decoding the removed property when the major version beta / feature flag is in use. In these cases the struct tags must be updated to include `,removedInNextMajorVersion`. + +```go +type ExampleResourceModel struct { + Name string `tfschema:"name"` + EnablePublicNetworkAccess bool `tfschema:"enable_public_network_access,removedInNextMajorVersion"` + PublicNetworkAccessEnabled bool `tfschema:"public_network_access_enabled"` +} +``` \ No newline at end of file diff --git a/internal/sdk/resource_encode.go b/internal/sdk/resource_encode.go index eca58016fd9a..9a93345f22d1 100644 --- a/internal/sdk/resource_encode.go +++ b/internal/sdk/resource_encode.go @@ -6,6 +6,9 @@ package sdk import ( "fmt" "reflect" + "strings" + + "github.com/hashicorp/terraform-provider-azurerm/internal/features" ) // Encode will encode the specified object into the Terraform State @@ -51,7 +54,8 @@ func recurse(objType reflect.Type, objVal reflect.Value, fieldName string, debug for i := 0; i < objType.NumField(); i++ { field := objType.Field(i) fieldVal := objVal.Field(i) - if tfschemaTag, exists := field.Tag.Lookup("tfschema"); exists { + if tfschemaTag, exists := field.Tag.Lookup("tfschema"); exists && !(strings.Contains(tfschemaTag, "removedInNextMajorVersion") && features.FourPointOh()) { + tfschemaTag = strings.TrimSuffix(tfschemaTag, ",removedInNextMajorVersion") switch field.Type.Kind() { case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: iv := fieldVal.Int() diff --git a/internal/services/appservice/helpers/app_stack.go b/internal/services/appservice/helpers/app_stack.go index 2a7044429c39..ff9c74aafdb6 100644 --- a/internal/services/appservice/helpers/app_stack.go +++ b/internal/services/appservice/helpers/app_stack.go @@ -31,9 +31,9 @@ const ( type ApplicationStackWindows struct { CurrentStack string `tfschema:"current_stack"` - DockerContainerName string `tfschema:"docker_container_name"` - DockerContainerRegistry string `tfschema:"docker_container_registry"` - DockerContainerTag string `tfschema:"docker_container_tag"` + DockerContainerName string `tfschema:"docker_container_name,removedInNextMajorVersion"` + DockerContainerRegistry string `tfschema:"docker_container_registry,removedInNextMajorVersion"` + DockerContainerTag string `tfschema:"docker_container_tag,removedInNextMajorVersion"` JavaContainer string `tfschema:"java_container"` JavaContainerVersion string `tfschema:"java_container_version"` JavaEmbeddedServer bool `tfschema:"java_embedded_server_enabled"` @@ -418,8 +418,8 @@ type ApplicationStackLinux struct { JavaVersion string `tfschema:"java_version"` JavaServer string `tfschema:"java_server"` JavaServerVersion string `tfschema:"java_server_version"` - DockerImageTag string `tfschema:"docker_image_tag"` - DockerImage string `tfschema:"docker_image"` + DockerImageTag string `tfschema:"docker_image_tag,removedInNextMajorVersion"` + DockerImage string `tfschema:"docker_image,removedInNextMajorVersion"` RubyVersion string `tfschema:"ruby_version"` DockerRegistryUrl string `tfschema:"docker_registry_url"` diff --git a/internal/services/automation/automation_software_update_configuration_resource.go b/internal/services/automation/automation_software_update_configuration_resource.go index d79d95170083..08309215c461 100644 --- a/internal/services/automation/automation_software_update_configuration_resource.go +++ b/internal/services/automation/automation_software_update_configuration_resource.go @@ -63,7 +63,7 @@ type Linux struct { ExcludedPackages []string `tfschema:"excluded_packages"` IncludedPackages []string `tfschema:"included_packages"` - Classification string `tfschema:"classification_included"` // Deprecated use Classifications instead + Classification string `tfschema:"classification_included,removedInNextMajorVersion"` } type MonthlyOccurrence struct { @@ -111,8 +111,7 @@ type Windows struct { IncludedKbs []string `tfschema:"included_knowledge_base_numbers"` RebootSetting string `tfschema:"reboot"` - Classification string `tfschema:"classification_included"` // Deprecated use Classifications instead - + Classification string `tfschema:"classification_included,removedInNextMajorVersion"` } type SoftwareUpdateConfigurationModel struct { diff --git a/internal/services/recoveryservices/site_recovery_replication_recovery_plan_resource.go b/internal/services/recoveryservices/site_recovery_replication_recovery_plan_resource.go index 0c591ba060cf..626f5691bb93 100644 --- a/internal/services/recoveryservices/site_recovery_replication_recovery_plan_resource.go +++ b/internal/services/recoveryservices/site_recovery_replication_recovery_plan_resource.go @@ -29,7 +29,7 @@ type SiteRecoveryReplicationRecoveryPlanModel struct { ShutdownRecoveryGroup []GenericRecoveryGroupModel `tfschema:"shutdown_recovery_group"` FailoverRecoveryGroup []GenericRecoveryGroupModel `tfschema:"failover_recovery_group"` BootRecoveryGroup []BootRecoveryGroupModel `tfschema:"boot_recovery_group"` - RecoveryGroup []RecoveryGroupModel `tfschema:"recovery_group"` + RecoveryGroup []RecoveryGroupModel `tfschema:"recovery_group,removedInNextMajorVersion"` RecoveryVaultId string `tfschema:"recovery_vault_id"` SourceRecoveryFabricId string `tfschema:"source_recovery_fabric_id"` TargetRecoveryFabricId string `tfschema:"target_recovery_fabric_id"` diff --git a/internal/services/sentinel/sentinel_log_analytics_workspace_onboard_resource.go b/internal/services/sentinel/sentinel_log_analytics_workspace_onboard_resource.go index ff3d5377ad58..80f779d8545e 100644 --- a/internal/services/sentinel/sentinel_log_analytics_workspace_onboard_resource.go +++ b/internal/services/sentinel/sentinel_log_analytics_workspace_onboard_resource.go @@ -21,8 +21,8 @@ import ( ) type SecurityInsightsSentinelOnboardingStateModel struct { - ResourceGroupName string `tfschema:"resource_group_name"` - WorkspaceName string `tfschema:"workspace_name"` + ResourceGroupName string `tfschema:"resource_group_name,removedInNextMajorVersion"` + WorkspaceName string `tfschema:"workspace_name,removedInNextMajorVersion"` CustomerManagedKeyEnabled bool `tfschema:"customer_managed_key_enabled"` WorkspaceId string `tfschema:"workspace_id"` } From 54ba8e2c32c5f541f9111752d15899643e79defc Mon Sep 17 00:00:00 2001 From: xuwu1 Date: Mon, 9 Oct 2023 15:03:57 +0800 Subject: [PATCH 310/336] use normalize location for local rulestack resource --- internal/services/paloalto/local_rulestack_resource.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/services/paloalto/local_rulestack_resource.go b/internal/services/paloalto/local_rulestack_resource.go index a43940b9f845..e7d395a1ebc7 100644 --- a/internal/services/paloalto/local_rulestack_resource.go +++ b/internal/services/paloalto/local_rulestack_resource.go @@ -185,7 +185,7 @@ func (r LocalRuleStack) Create() sdk.ResourceFunc { } localRuleStack := localrulestacks.LocalRulestackResource{ - Location: model.Location, + Location: location.Normalize(model.Location), Properties: localrulestacks.RulestackProperties{ DefaultMode: pointer.To(localrulestacks.DefaultModeNONE), Description: pointer.To(model.Description), From ed2753a1ed77ae2ecda5fa0a7f375a24a48f1210 Mon Sep 17 00:00:00 2001 From: "hashicorp-tsccr[bot]" Date: Mon, 9 Oct 2023 10:50:30 +0000 Subject: [PATCH 311/336] Result of tsccr-helper -log-level=info -pin-all-workflows . --- .github/workflows/add-waiting-response-on-fail.yaml | 2 +- .github/workflows/automation-open-pull-request.yaml | 2 +- .github/workflows/breaking-change-detection.yaml | 2 +- .github/workflows/depscheck.yaml | 2 +- .github/workflows/gencheck.yaml | 2 +- .github/workflows/golint.yaml | 2 +- .github/workflows/gradually-deprecated.yaml | 2 +- .github/workflows/increment-milestone.yaml | 2 +- .github/workflows/issue-opened.yaml | 2 +- .github/workflows/mkdocs.yaml | 2 +- .github/workflows/provider-test.yaml | 2 +- .github/workflows/pull-request-reviewed-workflow.yaml | 2 +- .github/workflows/release.yaml | 4 ++-- .github/workflows/teamcity-test.yaml | 4 ++-- .github/workflows/tflint.yaml | 2 +- .github/workflows/thirty-two-bit.yaml | 2 +- .github/workflows/unit-test.yaml | 2 +- .github/workflows/validate-examples.yaml | 2 +- .github/workflows/website-lint.yaml | 2 +- 19 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/add-waiting-response-on-fail.yaml b/.github/workflows/add-waiting-response-on-fail.yaml index bc141630c097..71d8323fbb17 100644 --- a/.github/workflows/add-waiting-response-on-fail.yaml +++ b/.github/workflows/add-waiting-response-on-fail.yaml @@ -16,7 +16,7 @@ jobs: steps: - name: Get Artifact id: get_artifact - uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2.27.0 + uses: dawidd6/action-download-artifact@268677152d06ba59fcec7a7f0b5d961b6ccd7e1e # v2.28.0 with: github_token: ${{secrets.GITHUB_TOKEN}} run_id: ${{ github.event.workflow_run.id }} diff --git a/.github/workflows/automation-open-pull-request.yaml b/.github/workflows/automation-open-pull-request.yaml index 2a6d33dfbfd3..2a1711647975 100644 --- a/.github/workflows/automation-open-pull-request.yaml +++ b/.github/workflows/automation-open-pull-request.yaml @@ -12,7 +12,7 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: "open a pull request" id: open-pr diff --git a/.github/workflows/breaking-change-detection.yaml b/.github/workflows/breaking-change-detection.yaml index e4d475cb377c..51ef40c805ce 100644 --- a/.github/workflows/breaking-change-detection.yaml +++ b/.github/workflows/breaking-change-detection.yaml @@ -22,7 +22,7 @@ jobs: detect: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/depscheck.yaml b/.github/workflows/depscheck.yaml index be8571fe19fe..df9c6299a74e 100644 --- a/.github/workflows/depscheck.yaml +++ b/.github/workflows/depscheck.yaml @@ -16,7 +16,7 @@ jobs: depscheck: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/gencheck.yaml b/.github/workflows/gencheck.yaml index e5e2d6af9960..cafaa5edbdf7 100644 --- a/.github/workflows/gencheck.yaml +++ b/.github/workflows/gencheck.yaml @@ -19,7 +19,7 @@ jobs: gencheck: runs-on: [custom, linux, large] steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/golint.yaml b/.github/workflows/golint.yaml index d0a37548695d..ea4d4d27c0a1 100644 --- a/.github/workflows/golint.yaml +++ b/.github/workflows/golint.yaml @@ -20,7 +20,7 @@ jobs: golint: runs-on: [custom, linux, large] steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/gradually-deprecated.yaml b/.github/workflows/gradually-deprecated.yaml index 442c5c9a8d58..43e7e4c750fd 100644 --- a/.github/workflows/gradually-deprecated.yaml +++ b/.github/workflows/gradually-deprecated.yaml @@ -16,7 +16,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 with: fetch-depth: 0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 diff --git a/.github/workflows/increment-milestone.yaml b/.github/workflows/increment-milestone.yaml index 4e130b591af9..4db46978369e 100644 --- a/.github/workflows/increment-milestone.yaml +++ b/.github/workflows/increment-milestone.yaml @@ -14,7 +14,7 @@ jobs: increment-milestone: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 with: fetch-depth: 0 - name: "Increment Milestone" diff --git a/.github/workflows/issue-opened.yaml b/.github/workflows/issue-opened.yaml index 25008ab534b2..6f8ee2de64c7 100644 --- a/.github/workflows/issue-opened.yaml +++ b/.github/workflows/issue-opened.yaml @@ -12,7 +12,7 @@ jobs: issue_triage: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - uses: github/issue-labeler@98b5412841f6c4b0b3d9c29d53c13fad16bd7de2 # v3.2 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/mkdocs.yaml b/.github/workflows/mkdocs.yaml index 7de4d2f5fd35..d3298adeacc8 100644 --- a/.github/workflows/mkdocs.yaml +++ b/.github/workflows/mkdocs.yaml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Publish uses: mhausenblas/mkdocs-deploy-gh-pages@d77dd03172e96abbcdb081d8c948224762033653 # 1.26 diff --git a/.github/workflows/provider-test.yaml b/.github/workflows/provider-test.yaml index f2e508690a0e..30501ef230a2 100644 --- a/.github/workflows/provider-test.yaml +++ b/.github/workflows/provider-test.yaml @@ -36,7 +36,7 @@ jobs: if: needs.secrets-check.outputs.available == 'true' steps: - name: Checkout - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Install Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 diff --git a/.github/workflows/pull-request-reviewed-workflow.yaml b/.github/workflows/pull-request-reviewed-workflow.yaml index 6eee04516652..cc51fe0acd7d 100644 --- a/.github/workflows/pull-request-reviewed-workflow.yaml +++ b/.github/workflows/pull-request-reviewed-workflow.yaml @@ -24,7 +24,7 @@ jobs: - name: Get Artifact id: get_artifact continue-on-error: true - uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2.27.0 + uses: dawidd6/action-download-artifact@268677152d06ba59fcec7a7f0b5d961b6ccd7e1e # v2.28.0 with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: pull-request-reviewed.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 74ae22c4f7ad..87c849becd1c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -15,13 +15,13 @@ jobs: outputs: version: ${{ steps.go-version.outputs.version }} steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - id: go-version run: echo "version=$(cat ./.go-version)" >>${GITHUB_OUTPUT} release-notes: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 with: fetch-depth: 0 - name: Generate Release Notes diff --git a/.github/workflows/teamcity-test.yaml b/.github/workflows/teamcity-test.yaml index 646c0b4009a1..3076e50f0699 100644 --- a/.github/workflows/teamcity-test.yaml +++ b/.github/workflows/teamcity-test.yaml @@ -21,8 +21,8 @@ jobs: teamcity-test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - - uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3.12.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + - uses: actions/setup-java@0ab4596768b603586c0de567f2430c30f5b0d2b0 # v3.13.0 with: distribution: zulu java-version: 17 diff --git a/.github/workflows/tflint.yaml b/.github/workflows/tflint.yaml index 0768b8322644..ba0aab7bbab2 100644 --- a/.github/workflows/tflint.yaml +++ b/.github/workflows/tflint.yaml @@ -20,7 +20,7 @@ jobs: tflint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/thirty-two-bit.yaml b/.github/workflows/thirty-two-bit.yaml index 9892137d419b..a0c484814b78 100644 --- a/.github/workflows/thirty-two-bit.yaml +++ b/.github/workflows/thirty-two-bit.yaml @@ -21,7 +21,7 @@ jobs: compatibility-32bit-test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/unit-test.yaml b/.github/workflows/unit-test.yaml index ab17db22f3bf..18ffc27c1c23 100644 --- a/.github/workflows/unit-test.yaml +++ b/.github/workflows/unit-test.yaml @@ -21,7 +21,7 @@ jobs: test: runs-on: [custom, linux, large] steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/validate-examples.yaml b/.github/workflows/validate-examples.yaml index 16f47cf87c1a..930d7c6ce4ba 100644 --- a/.github/workflows/validate-examples.yaml +++ b/.github/workflows/validate-examples.yaml @@ -20,7 +20,7 @@ jobs: website-lint: runs-on: [custom, linux, large] steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version diff --git a/.github/workflows/website-lint.yaml b/.github/workflows/website-lint.yaml index 81c401acfc9c..99d85a7843f6 100644 --- a/.github/workflows/website-lint.yaml +++ b/.github/workflows/website-lint.yaml @@ -16,7 +16,7 @@ jobs: website-lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: ./.go-version From a2e3d9c8b559502c5355d4d04c457c783f500f7e Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Mon, 9 Oct 2023 11:13:14 +0200 Subject: [PATCH 312/336] New Tool: `update-go-azure-sdk` This tool is intended to update the `hashicorp/go-azure-sdk` dependency within the Provider - and then update the codebase to take advantage of any new API Versions that are present within this version of `hashicorp/go-azure-sdk`, if used in the Provider and the API versions are compatible (e.g. the tests pass when updating the API Version). This tool makes a considerable number of assumptions about the working directory and environment this is being run in and is primarily intended to be run in automation - and whilst will not be automatically configured initially, in time should mean that both SDK upgrades and new API Version upgrades are (mostly) automated. In the event that an SDK/API Version is _not_ compatible, the automated process will fail - and manual intervention is required - which is desired (since this should be the edge-case and/or requires additional thought). --- internal/tools/update-go-azure-sdk/.gitignore | 3 + internal/tools/update-go-azure-sdk/README.md | 47 ++ internal/tools/update-go-azure-sdk/go.mod | 37 + internal/tools/update-go-azure-sdk/go.sum | 165 ++++ internal/tools/update-go-azure-sdk/main.go | 729 ++++++++++++++++++ 5 files changed, 981 insertions(+) create mode 100644 internal/tools/update-go-azure-sdk/.gitignore create mode 100644 internal/tools/update-go-azure-sdk/README.md create mode 100644 internal/tools/update-go-azure-sdk/go.mod create mode 100644 internal/tools/update-go-azure-sdk/go.sum create mode 100644 internal/tools/update-go-azure-sdk/main.go diff --git a/internal/tools/update-go-azure-sdk/.gitignore b/internal/tools/update-go-azure-sdk/.gitignore new file mode 100644 index 000000000000..ecb1c39d6a0a --- /dev/null +++ b/internal/tools/update-go-azure-sdk/.gitignore @@ -0,0 +1,3 @@ +tmp/ +vendor/ +update-go-azure-sdk \ No newline at end of file diff --git a/internal/tools/update-go-azure-sdk/README.md b/internal/tools/update-go-azure-sdk/README.md new file mode 100644 index 000000000000..2c2796d28a5f --- /dev/null +++ b/internal/tools/update-go-azure-sdk/README.md @@ -0,0 +1,47 @@ +## Tool: `update-go-azure-sdk` + +This tool updates the version of `hashicorp/go-azure-sdk` which is vendored in this repository, and then subsequently tries to update the Provider to account for any new API Versions. + +Whilst this isn't going to be infallible, the intention is that when a new API Version is added to `hashicorp/go-azure-sdk` (via `hashicorp/pandora`) then the AzureRM Provider can be automatically updated to use that API Version - with any errors output for human review. + +This tool makes a number of assumptions about the repository design, namely that an `internal` folder exists and that `hashicorp/go-azure-sdk` is not referenced outside of this directory - and in addition also tool assumes that Git is available and pre-configured. + +Whilst this tool is intended to primarily be run in automation - [the `update-api-version` tool](../update-api-version) is better suited for interactive usage (since it won't perform rollbacks, and assumes the `hashicorp/go-azure-sdk` dependency is up-to-date). + +### Example Usage + +```bash +$ go build . && ./update-go-azure-sdk --old-sdk-version=v0.20230918.1115907 --new-sdk-version=v0.20231005.1153009 --working-directory=../../../ --output-file=pr-description.txt +2023-10-10T15:14:12.249+0200 [INFO] Old SDK Version is "v0.20230918.1115907" +2023-10-10T15:14:12.249+0200 [INFO] New SDK Version is "v0.20231005.1153009" +2023-10-10T15:14:12.249+0200 [INFO] Output File Name is "pr-description.txt" +2023-10-10T15:14:12.249+0200 [INFO] Working Directory is "../../../" +2023-10-10T15:14:12.249+0200 [INFO] Checking the changes between "v0.20230918.1115907" and "v0.20231005.1153009" of `hashicorp/go-azure-sdk`.. +2023-10-10T15:14:34.275+0200 [INFO] Updating `hashicorp/go-azure-sdk`.. +2023-10-10T15:14:50.939+0200 [INFO] Committed as "b5b40b0b49d9f192f9d65d620ecba98862764e6b" +2023-10-10T15:14:53.958+0200 [INFO] Processing Service "connectedvmware".. +2023-10-10T15:14:54.552+0200 [INFO] Processed Service "connectedvmware". +2023-10-10T15:14:57.578+0200 [INFO] Processing Service "cosmosdb".. +2023-10-10T15:14:58.148+0200 [INFO] Attempting to update API Version "2022-05-15" to "2023-09-15" for Service "cosmosdb".. +2023-10-10T15:15:03.823+0200 [INFO] Updated the Imports for Service "cosmosdb" to use API Version "2023-09-15" rather than "2022-05-15".. +2023-10-10T15:15:03.823+0200 [INFO] Running `go mod tidy` / `go mod vendor`.. +2023-10-10T15:15:15.022+0200 [INFO] Running `make test` within "../../../".. +2023-10-10T15:18:04.450+0200 [INFO] Committed as "a88ab1b1be8344a07bcf316a62c3ea31a87be507" +2023-10-10T15:18:04.450+0200 [INFO] Updated Service "cosmosdb" from "2022-05-15" to "2023-09-15" +2023-10-10T15:18:04.450+0200 [INFO] Attempting to update API Version "2022-11-15" to "2023-09-15" for Service "cosmosdb".. +2023-10-10T15:18:10.035+0200 [INFO] Updated the Imports for Service "cosmosdb" to use API Version "2023-09-15" rather than "2022-11-15".. +2023-10-10T15:18:10.035+0200 [INFO] Running `go mod tidy` / `go mod vendor`.. +2023-10-10T15:18:22.087+0200 [INFO] Running `make test` within "../../../".. +2023-10-10T15:19:46.236+0200 [INFO] Resetting the working directory since `make test` failed.. +2023-10-10T15:19:56.549+0200 [INFO] Attempting to update API Version "2023-04-15" to "2023-09-15" for Service "cosmosdb".. +2023-10-10T15:20:02.211+0200 [INFO] Updated the Imports for Service "cosmosdb" to use API Version "2023-09-15" rather than "2023-04-15".. +2023-10-10T15:20:02.211+0200 [INFO] Running `go mod tidy` / `go mod vendor`.. +2023-10-10T15:20:12.584+0200 [INFO] Running `make test` within "../../../".. +``` + +### Command Line Arguments + +* `--old-sdk-version` - (Required) - Specifies the current (out of date) version of `hashicorp/go-azure-sdk` being used by the Provider. Example: `v0.20230918.1115907`. +* `--new-sdk-version` - (Required) - Specifies the version of `hashicorp/go-azure-sdk` that the Provider should be updated to. Example: `v0.20231005.1153009`. +* `--working-directory` - (Required) - Specifies the path to the root of the Provider repository (typically this is `../../../`, when run from this repository). Example: `../../../`. +* `--output-file` - (Required) - Specifies the path to the output file containing the summary of changes performed by this tool, primarily intended to be used as a Pull Request body. Example: `pr-description.txt`. diff --git a/internal/tools/update-go-azure-sdk/go.mod b/internal/tools/update-go-azure-sdk/go.mod new file mode 100644 index 000000000000..a508a9a2c97d --- /dev/null +++ b/internal/tools/update-go-azure-sdk/go.mod @@ -0,0 +1,37 @@ +module github.com/hashicorp/terraform-provider-azurerm/internal/tools/update-go-azure-sdk + +go 1.21.0 + +require ( + github.com/go-git/go-git/v5 v5.9.0 + github.com/hashicorp/go-azure-helpers v0.61.0 + github.com/hashicorp/go-hclog v1.5.0 + golang.org/x/tools v0.13.0 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect + github.com/acomagu/bufpipe v1.0.4 // indirect + github.com/cloudflare/circl v1.3.3 // indirect + github.com/cyphar/filepath-securejoin v0.2.4 // indirect + github.com/emirpasic/gods v1.18.1 // indirect + github.com/fatih/color v1.13.0 // indirect + github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect + github.com/go-git/go-billy/v5 v5.5.0 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect + github.com/kevinburke/ssh_config v1.2.0 // indirect + github.com/mattn/go-colorable v0.1.12 // indirect + github.com/mattn/go-isatty v0.0.14 // indirect + github.com/pjbgf/sha1cd v0.3.0 // indirect + github.com/sergi/go-diff v1.1.0 // indirect + github.com/skeema/knownhosts v1.2.0 // indirect + github.com/xanzy/ssh-agent v0.3.3 // indirect + golang.org/x/crypto v0.13.0 // indirect + golang.org/x/mod v0.12.0 // indirect + golang.org/x/net v0.15.0 // indirect + golang.org/x/sys v0.12.0 // indirect + gopkg.in/warnings.v0 v0.1.2 // indirect +) diff --git a/internal/tools/update-go-azure-sdk/go.sum b/internal/tools/update-go-azure-sdk/go.sum new file mode 100644 index 000000000000..7b01f9be1ede --- /dev/null +++ b/internal/tools/update-go-azure-sdk/go.sum @@ -0,0 +1,165 @@ +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg= +github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= +github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= +github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= +github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= +github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= +github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= +github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= +github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= +github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= +github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= +github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= +github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= +github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= +github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20230305113008-0c11038e723f h1:Pz0DHeFij3XFhoBRGUDPzSJ+w2UcK5/0JvF8DRI58r8= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20230305113008-0c11038e723f/go.mod h1:8LHG1a3SRW71ettAD/jW13h8c6AqjVSeL11RAdgaqpo= +github.com/go-git/go-git/v5 v5.9.0 h1:cD9SFA7sHVRdJ7AYck1ZaAa/yeuBvGPxwXDL8cxrObY= +github.com/go-git/go-git/v5 v5.9.0/go.mod h1:RKIqga24sWdMGZF+1Ekv9kylsDz6LzdTSI2s/OsZWE0= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/hashicorp/go-azure-helpers v0.61.0 h1:dIz23Vp8LdErxuImc6V5QIPtJcWjMgqP75bfp8o1Lro= +github.com/hashicorp/go-azure-helpers v0.61.0/go.mod h1:BQUQp5udwbJ8pnzl0wByCLVEEyPMAFpJ9vOREiCzObo= +github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= +github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= +github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A= +github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= +github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= +github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= +github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= +github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/skeema/knownhosts v1.2.0 h1:h9r9cf0+u7wSE+M183ZtMGgOJKiL96brpaz5ekfJCpM= +github.com/skeema/knownhosts v1.2.0/go.mod h1:g4fPeYpque7P0xefxtGzV81ihjC8sX2IqpAoNkjxbMo= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= +github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= +github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/tools/update-go-azure-sdk/main.go b/internal/tools/update-go-azure-sdk/main.go new file mode 100644 index 000000000000..286704d1f3e7 --- /dev/null +++ b/internal/tools/update-go-azure-sdk/main.go @@ -0,0 +1,729 @@ +package main + +import ( + "bytes" + "context" + "flag" + "fmt" + "go/ast" + "go/format" + "go/parser" + "go/token" + "io/fs" + "log" + "os" + "os/exec" + "path" + "path/filepath" + "sort" + "strings" + + "github.com/go-git/go-git/v5" + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-hclog" + "golang.org/x/tools/go/ast/astutil" +) + +var logger = hclog.New(hclog.DefaultOptions) + +func main() { + // NOTE: this tool has a number of assumptions both about the environment this is being run in, and + // about the design of this repository - namely that an `internal` folder exists and that Git is configured. + + if v := os.Getenv("LOG_LEVEL"); v != "" { + level := hclog.LevelFromString(v) + logger.SetLevel(level) + } + + input := config{} + + f := flag.NewFlagSet("update-go-azure-sdk", flag.PanicOnError) + f.StringVar(&input.oldSdkVersion, "old-sdk-version", "", "--old-sdk-version=1.2.0") + f.StringVar(&input.outputFileName, "output-file", "", "--output-file=pr-description.txt") + f.StringVar(&input.newSdkVersion, "new-sdk-version", "", "--new-sdk-version=1.4.0") + f.StringVar(&input.workingDirectory, "working-directory", "", "--working-directory=../../../") + f.Parse(os.Args[1:]) + + if err := input.validate(); err != nil { + log.Fatalf("validating input: %+v", err) + } + + if err := run(context.Background(), input); err != nil { + log.Fatalf(err.Error()) + } +} + +type config struct { + oldSdkVersion string + outputFileName string + newSdkVersion string + workingDirectory string +} + +func (c config) validate() error { + if c.oldSdkVersion == "" { + return fmt.Errorf("`--old-sdk-version` must be specified") + } + if c.outputFileName == "" { + return fmt.Errorf("`--output-file` must be specified") + } + if c.newSdkVersion == "" { + return fmt.Errorf("`--new-sdk-version` must be specified") + } + if c.workingDirectory == "" { + return fmt.Errorf("`--working-directory` must be specified") + } + + return nil +} + +func run(ctx context.Context, input config) error { + // Clone the repository + // Determine what's changed in this + //// git diff --name-only --diff-filter=A v0.20220711.1181406...v0.20220712.1062733 + // ^ gives a list of paths which wants translating into `service[oldapi-newapi]` + + logger.Info(fmt.Sprintf("Old SDK Version is %q", input.oldSdkVersion)) + logger.Info(fmt.Sprintf("New SDK Version is %q", input.newSdkVersion)) + logger.Info(fmt.Sprintf("Output File Name is %q", input.outputFileName)) + logger.Info(fmt.Sprintf("Working Directory is %q", input.workingDirectory)) + + // 1. First determine the changes present in this version of the Go SDK + // if there's no changes to the `resource-manager` or `sdk` folders, we can ignore it for now. + logger.Info(fmt.Sprintf("Checking the changes between %q and %q of `hashicorp/go-azure-sdk`..", input.oldSdkVersion, input.newSdkVersion)) + changes, err := determineChangesBetweenVersionsOfGoAzureSDK(ctx, input.oldSdkVersion, input.newSdkVersion) + if err != nil { + return fmt.Errorf("determining the changes between version %q and %q of `hashicorp/go-azure-sdk`: %+v", input.oldSdkVersion, input.newSdkVersion, err) + } + if !changes.hasChangesToSdk && !changes.hasChangesToResourceManager { + logger.Info("No changes to either the SDK or Resource Manager - skipping updating") + return nil + } + + // 2. Update the version of `hashicorp/go-azure-sdk` used in `terraform-provider-azurerm` + logger.Info("Updating `hashicorp/go-azure-sdk`..") + if err := updateVersionOfGoAzureSDK(ctx, input.workingDirectory, input.newSdkVersion); err != nil { + return fmt.Errorf("updating the version of go-azure-sdk: %+v", err) + } + + // 3. Then for each new Service/API Version: + // a. Try updating to the new API Version + // b. `go mod tidy && go mod vendor` + // c. `go test -v ./internal/services/{serviceName}/... + // d. Commit if it works - otherwise reset it and track it on a list + logger.Debug("Attempting to update any existing Services present within the Provider..") + // from the services we've got, work through and determine which API Versions exist for this service + results := make([]updatedServiceSummary, 0) + if changes.hasChangesToResourceManager { + // sort the service names for consistency in output + serviceNames := make([]string, 0) + for serviceName := range changes.newServicesToApiVersions { + serviceNames = append(serviceNames, serviceName) + } + sort.Strings(serviceNames) + + for _, serviceName := range serviceNames { + availableApiVersions := changes.newServicesToApiVersions[serviceName] + hasPendingChanges, err := directoryHasPendingChanges(input.workingDirectory) + if err != nil { + return fmt.Errorf("checking for pending changes in %q: %+v", input.workingDirectory, err) + } + if *hasPendingChanges { + return fmt.Errorf("internal-error: working directory was not clean before starting service %q", serviceName) + } + + logger.Info(fmt.Sprintf("Processing Service %q..", serviceName)) + apiVersionsCurrentlyUsedForService, err := determineApiVersionsCurrentlyUsedForService(ctx, input.workingDirectory, serviceName) + if err != nil { + return fmt.Errorf("determining the api versions currently used for service %q: %+v", serviceName, err) + } + for _, existingVersion := range *apiVersionsCurrentlyUsedForService { + for _, newApiVersion := range availableApiVersions { + if !shouldUpdateFrom(existingVersion, newApiVersion) { + logger.Info(fmt.Sprintf("Skipping update from API Version %q to %q for Service %q", existingVersion, newApiVersion, serviceName)) + continue + } + + logger.Info(fmt.Sprintf("Attempting to update API Version %q to %q for Service %q..", existingVersion, newApiVersion, serviceName)) + internalDirectory := path.Join(input.workingDirectory, "internal") + if err := updateImportsWithinDirectory(serviceName, existingVersion, newApiVersion, internalDirectory); err != nil { + return fmt.Errorf("updating the imports within %q: %+v", internalDirectory, err) + } + logger.Info(fmt.Sprintf("Updated the Imports for Service %q to use API Version %q rather than %q..", serviceName, newApiVersion, existingVersion)) + + logger.Info("Running `go mod tidy` / `go mod vendor`..") + goModTidyAndVendor(ctx, input.workingDirectory) + + logger.Debug("Checking for pending changes..") + hasPendingChanges, err := directoryHasPendingChanges(input.workingDirectory) + if err != nil { + return fmt.Errorf("checking for pending changes in %q: %+v", input.workingDirectory, err) + } + if !*hasPendingChanges { + logger.Info(fmt.Sprintf("No pending changes after attempting to update API Version %q to %q for Service %q - skipping", existingVersion, newApiVersion, serviceName)) + continue + } + + logger.Info(fmt.Sprintf("Running `make test` within %q..", input.workingDirectory)) + if err := runMakeTest(ctx, input.workingDirectory); err != nil { + results = append(results, updatedServiceSummary{ + serviceName: serviceName, + olderApiVersion: existingVersion, + newApiVersion: newApiVersion, + error: pointer.To(err.Error()), + }) + + // when the tests fail, we need to reset the working directory to ensure that there aren't any unstaged changes + logger.Info("Resetting the working directory since `make test` failed..") + if err := resetWorkingDirectory(ctx, input.workingDirectory); err != nil { + return fmt.Errorf("resetting the working directory: %+v", err) + } + goModTidyAndVendor(ctx, input.workingDirectory) + continue + } + + logger.Debug("Committing changes..") + message := fmt.Sprintf("dependencies: updating `%s` to API Version %q from %q", serviceName, newApiVersion, existingVersion) + if err := stageAndCommitChanges(input.workingDirectory, message); err != nil { + return fmt.Errorf("staging/committing changes when updating to API Version %q for %q: %+v", newApiVersion, serviceName, err) + } + + logger.Info(fmt.Sprintf("Updated Service %q from %q to %q", serviceName, existingVersion, newApiVersion)) + results = append(results, updatedServiceSummary{ + serviceName: serviceName, + olderApiVersion: existingVersion, + newApiVersion: newApiVersion, + error: nil, + }) + break + } + } + + logger.Info(fmt.Sprintf("Processed Service %q.", serviceName)) + } + } + + // 4. Build up a summary which can be used as a PR description + logger.Debug("Building and outputting the PR description..") + description := buildPullRequestDescription(results, input.newSdkVersion) + if err := os.WriteFile(input.outputFileName, []byte(description), 0644); err != nil { + return fmt.Errorf("writing description to `%s`: %+v", input.outputFileName, err) + } + // Let's also output it for good measure + logger.Info("Processing completed - summary of changes:") + logger.Info(description) + return nil +} + +func resetWorkingDirectory(ctx context.Context, workingDirectory string) error { + repo, err := git.PlainOpen(workingDirectory) + if err != nil { + return fmt.Errorf("opening repository at %q: %+v", workingDirectory, err) + } + worktree, err := repo.Worktree() + if err != nil { + return fmt.Errorf("obtaining worktree: %+v", err) + } + + logger.Trace(fmt.Sprintf("Performing `git reset --hard` in %s..", workingDirectory)) + opts := &git.ResetOptions{ + Mode: git.HardReset, + } + if err := worktree.Reset(opts); err != nil { + return fmt.Errorf("performing reset: %+v", err) + } + + // Whilst the git library exposes a `clean`, it doesn't support `clean -xdf` + // so we'll have to shell out for that + logger.Trace(fmt.Sprintf("Performing `git clean` in %s..", workingDirectory)) + args := []string{ + "clean", + "-xdf", + } + cmd := exec.CommandContext(ctx, "git", args...) + cmd.Dir = workingDirectory + _ = cmd.Start() + _ = cmd.Wait() + return nil +} + +func shouldUpdateFrom(existing string, new string) bool { + if strings.EqualFold(existing, new) { + logger.Trace("Versions are the same") + return false + } + lowered := strings.ToLower(new) + if strings.Contains(lowered, "alpha") { + logger.Trace("Is an alpha..") + return false + } + if strings.Contains(lowered, "beta") { + logger.Trace("Is a beta..") + return false + } + if strings.Contains(lowered, "preview") { + logger.Trace("Is a preview..") + return false + } + + return new > existing +} + +func runMakeTest(ctx context.Context, workingDirectory string) error { + absPath, err := filepath.Abs(workingDirectory) + if err != nil { + return fmt.Errorf("determining absolute path for %q: %+v", workingDirectory, err) + } + + logger.Trace("Running `make test`..") + args := []string{ + "test", + } + var stdout bytes.Buffer + var stderr bytes.Buffer + cmd := exec.CommandContext(ctx, "make", args...) + cmd.Dir = absPath + cmd.Stderr = &stderr + cmd.Stdout = &stdout + _ = cmd.Start() + _ = cmd.Wait() + if stderr.Len() > 0 { + output := fmt.Sprintf(`stdout: +--- +%s +--- + +stderr: +--- +%s +--- +`, stdout.String(), stderr.String()) + return fmt.Errorf("running `make test` in %q: %s", workingDirectory, output) + } + + return nil +} + +type updatedServiceSummary struct { + serviceName string + olderApiVersion string + newApiVersion string + error *string +} + +func (s updatedServiceSummary) successful() bool { + return s.error == nil +} + +func determineApiVersionsCurrentlyUsedForService(ctx context.Context, workingDirectory string, serviceName string) (*[]string, error) { + absPath, err := filepath.Abs(workingDirectory) + if err != nil { + return nil, fmt.Errorf("determining absolute path for %q: %+v", workingDirectory, err) + } + + logger.Debug(fmt.Sprintf("Determining the API Versions used for `hashicorp/go-azure-sdk` Service %q..", serviceName)) + diffArgs := []string{ + "-hR", + fmt.Sprintf("github.com/hashicorp/go-azure-sdk/resource-manager/%s/", serviceName), + "--include=*.go", + "./internal/services/..", + } + var stdout bytes.Buffer + var stderr bytes.Buffer + cmd := exec.CommandContext(ctx, "grep", diffArgs...) + cmd.Dir = absPath + cmd.Stderr = &stderr + cmd.Stdout = &stdout + _ = cmd.Start() + _ = cmd.Wait() + if stderr.Len() > 0 { + return nil, fmt.Errorf("determining the API Versions used for `hashicorp/go-azure-sdk` Service %q: %s", serviceName, stderr.String()) + } + + linesRaw := strings.Split(stdout.String(), "\n") + lines := make(map[string]struct{}) + for _, line := range linesRaw { + line = strings.TrimSpace(line) + if line == "" { + continue + } + + // if there's an alias then we need to remove that + if !strings.HasPrefix(line, `"`) { + index := strings.IndexAny(line, `"`) + if index == -1 { + return nil, fmt.Errorf("skipping the alias for %q: quote mark was not found", line) + } + line = line[index:] + } + + // pull out the api version, which is predictable + line = strings.TrimPrefix(line, `"`) + line = strings.TrimPrefix(line, fmt.Sprintf("github.com/hashicorp/go-azure-sdk/resource-manager/%s/", serviceName)) + line = strings.TrimSuffix(line, `"`) + components := strings.Split(line, "/") + apiVersion := components[0] + lines[apiVersion] = struct{}{} + } + + linesSorted := make([]string, 0) + for line := range lines { + linesSorted = append(linesSorted, line) + } + sort.Strings(linesSorted) + return &linesSorted, nil +} + +type changes struct { + // hasChangesToResourceManager specifies that there are changes to the `resource-manager` directory + hasChangesToResourceManager bool + + // hasChangesToSdk specifies that there are changes to the base layer/SDK + hasChangesToSdk bool + + // newServicesToApiVersions contains a list of new API versions (value) for the given service (key) + newServicesToApiVersions map[string][]string +} + +func determineChangesBetweenVersionsOfGoAzureSDK(ctx context.Context, oldSDKVersion, newSDKVersion string) (*changes, error) { + tempDirectory := os.TempDir() + logger.Debug(fmt.Sprintf("Creating Temp Directory at %q..", tempDirectory)) + _ = os.MkdirAll(tempDirectory, 755) + workingDirectory := path.Join(tempDirectory, "go-azure-sdk") + defer func() { + logger.Debug(fmt.Sprintf("Cleaning up the temp directory at %q..", workingDirectory)) + _ = os.RemoveAll(workingDirectory) + }() + + logger.Debug(fmt.Sprintf("Cloning `hashicorp/go-azure-sdk` into %q..", workingDirectory)) + args := []string{ + "clone", + "https://github.com/hashicorp/go-azure-sdk.git", + workingDirectory, + } + cmd := exec.CommandContext(ctx, "git", args...) + cmd.Dir = tempDirectory + _ = cmd.Start() + _ = cmd.Wait() + + // Obtain the file paths which have changed + // For now this should be sufficient to pull any changes and iterate over those e.g.: + // > git diff --name-only v0.20220711.1181406...v0.20220712.1062733 + // + // There's probably a performance enhancement here using the additional flags on + // `--diff-filter` which supports Added (A) - but there's also Changed (C), Deleted (D) + // and Renamed (R) - and can be used like so: + // > git diff --name-only --diff-filter=A v0.20220711.1181406...v0.20220712.1062733 + // however doing so will come with edge-cases, so it's simplest to pull all changes for now. + logger.Debug(fmt.Sprintf("Determining the changes between %q and %q..", oldSDKVersion, newSDKVersion)) + diffArgs := []string{ + "diff", + "--name-only", + fmt.Sprintf("%s...%s", oldSDKVersion, newSDKVersion), + } + var stdout bytes.Buffer + var stderr bytes.Buffer + diffCmd := exec.CommandContext(ctx, "git", diffArgs...) + diffCmd.Dir = workingDirectory + diffCmd.Stderr = &stderr + diffCmd.Stdout = &stdout + _ = diffCmd.Start() + _ = diffCmd.Wait() + if stderr.Len() > 0 { + return nil, fmt.Errorf("determining the changes between `hashicorp/go-azure-sdk` version %q and %q: %s", oldSDKVersion, newSDKVersion, stderr.String()) + } + + logger.Debug("Parsing changes from the Git Diff..") + lines := strings.Split(stdout.String(), "\n") + parsed := parseChangesFromGitDiff(lines) + return &parsed, nil +} + +func parseChangesFromGitDiff(lines []string) changes { + out := changes{ + hasChangesToResourceManager: false, + hasChangesToSdk: false, + newServicesToApiVersions: make(map[string][]string), + } + for _, line := range lines { + if strings.HasPrefix(line, "sdk/") { + out.hasChangesToSdk = true + continue + } + + if strings.HasPrefix(line, "resource-manager/") { + out.hasChangesToResourceManager = true + + // resource-manager/connectedvmware/2023-10-01/datastores/method_update.go + split := strings.Split(line, "/") + if len(split) < 3 { + logger.Debug(fmt.Sprintf("Ignoring line %q - not in the format `resource-manager/{serviceName}/{apiVersion}", line)) + continue + } + + serviceName := split[1] + apiVersion := split[2] + existing, ok := out.newServicesToApiVersions[serviceName] + if !ok { + existing = make([]string, 0) + } + containsExistingValue := false + for _, val := range existing { + if val == apiVersion { + containsExistingValue = true + break + } + } + if !containsExistingValue { + existing = append(existing, apiVersion) + } + + out.newServicesToApiVersions[serviceName] = existing + + continue + } + } + return out +} + +func updateVersionOfGoAzureSDK(ctx context.Context, workingDirectory, newApiVersion string) error { + logger.Debug(fmt.Sprintf("Updating the version of `go-azure-sdk` to %q", newApiVersion)) + args := []string{ + "get", + fmt.Sprintf("github.com/hashicorp/go-azure-sdk@%s", newApiVersion), + } + cmd := exec.CommandContext(ctx, "go", args...) + cmd.Dir = workingDirectory + _ = cmd.Start() + _ = cmd.Wait() + logger.Debug(fmt.Sprintf("Updated the version of `go-azure-sdk` to %q", newApiVersion)) + + logger.Debug("Vendoring the changes..") + goModTidyAndVendor(ctx, workingDirectory) + + logger.Debug("Committing the changes..") + message := fmt.Sprintf("dependencies: updating to version `%s` of `github.com/hashicorp/go-azure-sdk`", newApiVersion) + if err := stageAndCommitChanges(workingDirectory, message); err != nil { + return fmt.Errorf("staging/committing changes to %q: %+v", workingDirectory, err) + } + return nil +} + +func goModTidyAndVendor(ctx context.Context, workingDirectory string) { + logger.Debug(fmt.Sprintf("Running `go mod tidy` in %q..", workingDirectory)) + tidyArgs := []string{ + "mod", + "tidy", + } + tidyCmd := exec.CommandContext(ctx, "go", tidyArgs...) + tidyCmd.Dir = workingDirectory + _ = tidyCmd.Start() + _ = tidyCmd.Wait() + logger.Debug(fmt.Sprintf("Run `go mod tidy` in %q.", workingDirectory)) + + logger.Debug(fmt.Sprintf("Running `go mod vendor` in %q..", workingDirectory)) + vendorArgs := []string{ + "mod", + "vendor", + } + vendorCmd := exec.CommandContext(ctx, "go", vendorArgs...) + vendorCmd.Dir = workingDirectory + _ = vendorCmd.Start() + _ = vendorCmd.Wait() + logger.Debug(fmt.Sprintf("Run `go mod vendor` in %q.", workingDirectory)) + return +} + +func stageAndCommitChanges(workingDirectory string, message string) error { + repo, err := git.PlainOpen(workingDirectory) + if err != nil { + return fmt.Errorf("opening %q: %+v", workingDirectory, err) + } + worktree, err := repo.Worktree() + if err != nil { + return fmt.Errorf("opening worktree: %+v", err) + } + + // Whilst `Commit` has an add below it doesn't capture all changes, hence we need + // to explicitly stage all changes (including the vendored changes) + logger.Trace(fmt.Sprintf("Staging all changes in %q..", workingDirectory)) + addOpts := &git.AddOptions{ + All: true, + Glob: "**", + } + if err := worktree.AddWithOptions(addOpts); err != nil { + return fmt.Errorf("staging changes: %+v", err) + } + + logger.Trace(fmt.Sprintf("Committing all changes in %q..", workingDirectory)) + opts := &git.CommitOptions{ + All: true, + } + hash, err := worktree.Commit(message, opts) + if err != nil { + return fmt.Errorf("commiting changes to %q: %+v", workingDirectory, err) + } + + logger.Info(fmt.Sprintf("Committed as %q", hash)) + return nil +} + +func directoryHasPendingChanges(workingDirectory string) (*bool, error) { + repo, err := git.PlainOpen(workingDirectory) + if err != nil { + return nil, fmt.Errorf("opening %q: %+v", workingDirectory, err) + } + + worktree, err := repo.Worktree() + if err != nil { + return nil, fmt.Errorf("opening worktree at %q: %+v", workingDirectory, err) + } + + status, err := worktree.Status() + if err != nil { + return nil, fmt.Errorf("obtaining status for %q: %+v", workingDirectory, err) + } + + return pointer.To(!status.IsClean()), nil +} + +func updateImportsWithinDirectory(serviceName string, oldApiVersion string, newApiVersion string, workingDirectory string) error { + absPath, err := filepath.Abs(workingDirectory) + if err != nil { + return fmt.Errorf("obtaining absolute path for %q: %+v", workingDirectory, err) + } + + // because we want to process all nested directories, we need to first pull out a complete list of directories + fileSet := token.NewFileSet() + directories := make([]string, 0) + _ = filepath.WalkDir(absPath, func(path string, d fs.DirEntry, err error) error { + if d.IsDir() { + directories = append(directories, path) + } + return nil + }) + sort.Strings(directories) + + // over which we can then iterate to get a list of files within that directory + for _, directory := range directories { + logger.Trace(fmt.Sprintf("Processing directory %q..", directory)) + files, err := parser.ParseDir(fileSet, directory, func(info fs.FileInfo) bool { + return true + }, parser.ParseComments) + if err != nil { + return fmt.Errorf("parsing files within %q: %+v", directory, err) + } + // to be able to update the imports for said directory + for pkgName, pkg := range files { + logger.Trace(fmt.Sprintf("Processing Go Package %q", pkgName)) + for fileName, file := range pkg.Files { + logger.Trace(fmt.Sprintf("Updating imports for File %q..", fileName)) + updateImportsForFile(fileSet, file, serviceName, oldApiVersion, newApiVersion) + + var buf bytes.Buffer + if err = format.Node(&buf, fileSet, file); err != nil { + return fmt.Errorf("error formatting new code: %w", err) + } + _ = os.WriteFile(fileName, buf.Bytes(), 0644) + } + } + logger.Trace(fmt.Sprintf("Processed directory %q.", directory)) + } + return nil +} + +func updateImportsForFile(fileSet *token.FileSet, file *ast.File, serviceName string, oldApiVersion string, newApiVersion string) { + importLineForPreviousApiVersion := fmt.Sprintf("github.com/hashicorp/go-azure-sdk/resource-manager/%s/%s", serviceName, oldApiVersion) + importLineForNewApiVersion := fmt.Sprintf("github.com/hashicorp/go-azure-sdk/resource-manager/%s/%s", serviceName, newApiVersion) + + // first update the imports themselves + existingImports := astutil.Imports(fileSet, file) + aliasesToReplace := make(map[string]string) + for _, val := range existingImports { + for _, item := range val { + logger.Trace(fmt.Sprintf("Processing Import %q", item.Path.Value)) + existingImportLine := item.Path.Value + if !strings.Contains(existingImportLine, importLineForPreviousApiVersion) { + continue + } + + updatedImportLine := strings.Replace(existingImportLine, importLineForPreviousApiVersion, importLineForNewApiVersion, 1) + logger.Trace(fmt.Sprintf("Updating Import URI from %q to %q", existingImportLine, updatedImportLine)) + item.Path.Value = updatedImportLine + + // if we're importing the meta client (e.g. the api version directly) then we also need to update the alias + importsMetaClient := strings.ReplaceAll(existingImportLine, "\"", "") == importLineForPreviousApiVersion + if importsMetaClient && item.Name != nil { + if existingAlias := item.Name.Name; existingAlias != "" { + updatedAlias := strings.ToLower(fmt.Sprintf("%s_%s", serviceName, strings.ReplaceAll(newApiVersion, "-", "_"))) + + logger.Trace(fmt.Sprintf("Updating Import Alias from %q to %q", existingAlias, updatedAlias)) + aliasesToReplace[existingAlias] = updatedAlias + item.Name.Name = updatedAlias + } + } + + // finally, remove any comments which will be stragglers/lintignores which shouldn't be present + if item.Comment != nil { + item.Comment.List = []*ast.Comment{} + } + } + } + + // then update any references to the aliases we've updated + ast.Inspect(file, func(n ast.Node) bool { + v, ok := n.(*ast.Ident) + if ok { + for alias, replacement := range aliasesToReplace { + if v.Name == alias { + v.Name = replacement + } + } + } + + return true + }) +} + +func buildPullRequestDescription(input []updatedServiceSummary, newSdkVersion string) string { + succeeded := make([]updatedServiceSummary, 0) + failed := make([]updatedServiceSummary, 0) + for _, v := range input { + if v.successful() { + succeeded = append(succeeded, v) + continue + } + + failed = append(failed, v) + continue + } + + succeededLines := make([]string, 0) + if len(succeeded) > 0 { + // we're intentionally omitting a header tag here to make it clearer when something has failed + succeededLines = append(succeededLines, fmt.Sprintf(`This updates the following Services and API Versions:`)) + for _, result := range succeeded { + succeededLines = append(succeededLines, fmt.Sprintf("* The service `%s` was updated to API Version `%s` (from `%s`).", result.serviceName, result.newApiVersion, result.olderApiVersion)) + } + } + + failedLines := make([]string, 0) + if len(failed) > 0 { + failedLines = append(failedLines, `## FAILED - API Versions`) + failedLines = append(failedLines, fmt.Sprintf(`The following new API Versions are available but had compile-time errors when updating:`)) + for i, result := range failed { + failedLines = append(failedLines, fmt.Sprintf("* The service `%s` - updating to API Version `%s` from `%s`.", result.serviceName, result.newApiVersion, result.olderApiVersion)) + failedLines = append(failedLines, fmt.Sprintf("```\n%s\n```", *result.error)) + if i != len(failed)-1 { + failedLines = append(failedLines, "\n---") + } + } + } + + lines := []string{ + fmt.Sprintf("This PR updates the version of `hashicorp/go-azure-sdk` to `%s`.", newSdkVersion), + strings.Join(succeededLines, "\n"), + strings.Join(failedLines, "\n"), + } + return strings.Join(lines, "\n\n") +} From 558fb18fe1c5d3e0b3c45174f606c70c8f328f64 Mon Sep 17 00:00:00 2001 From: Neil Ye Date: Tue, 10 Oct 2023 23:35:55 +0800 Subject: [PATCH 313/336] azurerm_cosmosdb_postgresql_cluster - update the validation of sql_version and citus_version (#23476) * azurerm_cosmosdb_postgresql_cluster - update the validation of sql_version and citus_version * update code --- .../services/cosmos/cosmosdb_postgresql_cluster_resource.go | 2 ++ .../cosmos/cosmosdb_postgresql_cluster_resource_test.go | 4 ++-- website/docs/r/cosmosdb_postgresql_cluster.html.markdown | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/services/cosmos/cosmosdb_postgresql_cluster_resource.go b/internal/services/cosmos/cosmosdb_postgresql_cluster_resource.go index 57fb801cd897..ba8cb8467efc 100644 --- a/internal/services/cosmos/cosmosdb_postgresql_cluster_resource.go +++ b/internal/services/cosmos/cosmosdb_postgresql_cluster_resource.go @@ -142,6 +142,7 @@ func (r CosmosDbPostgreSQLClusterResource) Arguments() map[string]*pluginsdk.Sch "11.1", "11.2", "11.3", + "12.1", }, false), }, @@ -289,6 +290,7 @@ func (r CosmosDbPostgreSQLClusterResource) Arguments() map[string]*pluginsdk.Sch "13", "14", "15", + "16", }, false), }, diff --git a/internal/services/cosmos/cosmosdb_postgresql_cluster_resource_test.go b/internal/services/cosmos/cosmosdb_postgresql_cluster_resource_test.go index 4d35e0416d0e..74f24cb79655 100644 --- a/internal/services/cosmos/cosmosdb_postgresql_cluster_resource_test.go +++ b/internal/services/cosmos/cosmosdb_postgresql_cluster_resource_test.go @@ -226,7 +226,7 @@ resource "azurerm_cosmosdb_postgresql_cluster" "test" { coordinator_vcore_count = 4 node_count = 2 - citus_version = "11.3" + citus_version = "12.1" coordinator_public_ip_access_enabled = false ha_enabled = true coordinator_server_edition = "MemoryOptimized" @@ -239,7 +239,7 @@ resource "azurerm_cosmosdb_postgresql_cluster" "test" { node_public_ip_access_enabled = true node_server_edition = "GeneralPurpose" - sql_version = "15" + sql_version = "16" preferred_primary_zone = 2 node_storage_quota_in_mb = 262144 node_vcores = 4 diff --git a/website/docs/r/cosmosdb_postgresql_cluster.html.markdown b/website/docs/r/cosmosdb_postgresql_cluster.html.markdown index ba6f155555b1..a2d8e8c0fa85 100644 --- a/website/docs/r/cosmosdb_postgresql_cluster.html.markdown +++ b/website/docs/r/cosmosdb_postgresql_cluster.html.markdown @@ -49,7 +49,7 @@ The following arguments are supported: * `node_count` - (Required) The worker node count of the Azure Cosmos DB for PostgreSQL Cluster. Possible value is between `0` and `20` except `1`. -* `citus_version` - (Optional) The citus extension version on the Azure Cosmos DB for PostgreSQL Cluster. Possible values are `8.3`, `9.0`, `9.1`, `9.2`, `9.3`, `9.4`, `9.5`, `10.0`, `10.1`, `10.2`, `11.0`, `11.1`, `11.2` and `11.3`. +* `citus_version` - (Optional) The citus extension version on the Azure Cosmos DB for PostgreSQL Cluster. Possible values are `8.3`, `9.0`, `9.1`, `9.2`, `9.3`, `9.4`, `9.5`, `10.0`, `10.1`, `10.2`, `11.0`, `11.1`, `11.2`, `11.3` and `12.1`. * `coordinator_public_ip_access_enabled` - (Optional) Is public access enabled on coordinator? Defaults to `true`. @@ -77,7 +77,7 @@ The following arguments are supported: * `source_resource_id` - (Optional) The resource ID of the source Azure Cosmos DB for PostgreSQL cluster for read replica clusters. Changing this forces a new resource to be created. -* `sql_version` - (Optional) The major PostgreSQL version on the Azure Cosmos DB for PostgreSQL cluster. Possible values are `11`, `12`, `13`, `14` and `15`. +* `sql_version` - (Optional) The major PostgreSQL version on the Azure Cosmos DB for PostgreSQL cluster. Possible values are `11`, `12`, `13`, `14`, `15` and `16`. * `tags` - (Optional) A mapping of tags which should be assigned to the Azure Cosmos DB for PostgreSQL Cluster. From b1fa7a4ddb96e01684853158ec9908373cecb695 Mon Sep 17 00:00:00 2001 From: Tom Bamford Date: Tue, 10 Oct 2023 16:48:59 +0100 Subject: [PATCH 314/336] Changelog for #23476 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 954b78824ddc..972f47d95592 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,8 @@ FEATURES: ENHANCEMENTS: -* `azurerm_static_site` - Add support for `app_settings` [GH-23421] +* `azurerm_cosmosdb_postgresql_cluster` - add support for `sql_version` of `16` and `citus_version` of `12.1` [GH-23476] +* `azurerm_static_site` - add support for `app_settings` [GH-23421] ## 3.75.0 (September 28, 2023) From 4bd46f4e8b356db9627291902d59a38dc1619cb4 Mon Sep 17 00:00:00 2001 From: ergihu <59377244+ergihu@users.noreply.github.com> Date: Tue, 10 Oct 2023 19:01:31 +0300 Subject: [PATCH 315/336] Update nat_gateway.html.markdown to add ip association examples --- website/docs/r/nat_gateway.html.markdown | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/website/docs/r/nat_gateway.html.markdown b/website/docs/r/nat_gateway.html.markdown index c4fdd0905432..4205fbf594ac 100644 --- a/website/docs/r/nat_gateway.html.markdown +++ b/website/docs/r/nat_gateway.html.markdown @@ -42,6 +42,16 @@ resource "azurerm_nat_gateway" "example" { idle_timeout_in_minutes = 10 zones = ["1"] } + +resource "azurerm_nat_gateway_public_ip_association" "example" { + nat_gateway_id = azurerm_nat_gateway.example.id + public_ip_address_id = azurerm_public_ip.example.id +} + +resource "azurerm_nat_gateway_public_ip_prefix_association" "example" { + nat_gateway_id = azurerm_nat_gateway.example.id + public_ip_prefix_id = azurerm_public_ip_prefix.example.id +} ``` ## Argument Reference From af79072e62eb3161c3db27fc9d8edb4411da84f3 Mon Sep 17 00:00:00 2001 From: Tom Bamford Date: Tue, 10 Oct 2023 21:52:06 +0100 Subject: [PATCH 316/336] Changelog for #23483 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 972f47d95592..57a6667989f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ FEATURES: ENHANCEMENTS: * `azurerm_cosmosdb_postgresql_cluster` - add support for `sql_version` of `16` and `citus_version` of `12.1` [GH-23476] +* `azurerm_palo_alto_local_rulestack` - correctly normalize the `location` property [GH-23483] * `azurerm_static_site` - add support for `app_settings` [GH-23421] ## 3.75.0 (September 28, 2023) From 1e050f728f1f884e3d5c96c96cf797b9a882a622 Mon Sep 17 00:00:00 2001 From: Tom Bamford Date: Tue, 10 Oct 2023 23:15:20 +0100 Subject: [PATCH 317/336] Update nat_gateway.html.markdown to link to nat_gateway_public_ip_association and nat_gateway_public_ip_prefix_association resources --- website/docs/r/nat_gateway.html.markdown | 31 +++--------------------- 1 file changed, 3 insertions(+), 28 deletions(-) diff --git a/website/docs/r/nat_gateway.html.markdown b/website/docs/r/nat_gateway.html.markdown index 4205fbf594ac..9578f2b63784 100644 --- a/website/docs/r/nat_gateway.html.markdown +++ b/website/docs/r/nat_gateway.html.markdown @@ -7,7 +7,7 @@ description: |- --- # azurerm_nat_gateway -Manages a Azure NAT Gateway. +Manages an Azure NAT Gateway. ## Example Usage @@ -17,23 +17,6 @@ resource "azurerm_resource_group" "example" { location = "West Europe" } -resource "azurerm_public_ip" "example" { - name = "nat-gateway-publicIP" - location = azurerm_resource_group.example.location - resource_group_name = azurerm_resource_group.example.name - allocation_method = "Static" - sku = "Standard" - zones = ["1"] -} - -resource "azurerm_public_ip_prefix" "example" { - name = "nat-gateway-publicIPPrefix" - location = azurerm_resource_group.example.location - resource_group_name = azurerm_resource_group.example.name - prefix_length = 30 - zones = ["1"] -} - resource "azurerm_nat_gateway" "example" { name = "nat-Gateway" location = azurerm_resource_group.example.location @@ -42,18 +25,10 @@ resource "azurerm_nat_gateway" "example" { idle_timeout_in_minutes = 10 zones = ["1"] } - -resource "azurerm_nat_gateway_public_ip_association" "example" { - nat_gateway_id = azurerm_nat_gateway.example.id - public_ip_address_id = azurerm_public_ip.example.id -} - -resource "azurerm_nat_gateway_public_ip_prefix_association" "example" { - nat_gateway_id = azurerm_nat_gateway.example.id - public_ip_prefix_id = azurerm_public_ip_prefix.example.id -} ``` +For more complete examples, please see the [azurerm_nat_gateway_public_ip_association](nat_gateway_public_ip_association.html) and [azurerm_nat_gateway_public_ip_prefix_association](nat_gateway_public_ip_prefix_association.html) resources. + ## Argument Reference The following arguments are supported: From 552fb830b07da90e655a98c13c7825d7b6c313a0 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 11 Oct 2023 10:15:08 +0200 Subject: [PATCH 318/336] tools/update-go-azure-sdk: `output-file` is now optional and `old-sdk-version` is now auto-detected --- internal/tools/update-go-azure-sdk/README.md | 7 +- internal/tools/update-go-azure-sdk/main.go | 67 ++++++++++++++------ 2 files changed, 52 insertions(+), 22 deletions(-) diff --git a/internal/tools/update-go-azure-sdk/README.md b/internal/tools/update-go-azure-sdk/README.md index 2c2796d28a5f..8235491ffe44 100644 --- a/internal/tools/update-go-azure-sdk/README.md +++ b/internal/tools/update-go-azure-sdk/README.md @@ -11,11 +11,11 @@ Whilst this tool is intended to primarily be run in automation - [the `update-ap ### Example Usage ```bash -$ go build . && ./update-go-azure-sdk --old-sdk-version=v0.20230918.1115907 --new-sdk-version=v0.20231005.1153009 --working-directory=../../../ --output-file=pr-description.txt -2023-10-10T15:14:12.249+0200 [INFO] Old SDK Version is "v0.20230918.1115907" +$ go build . && ./update-go-azure-sdk --new-sdk-version=v0.20231005.1153009 --working-directory=../../../ --output-file=pr-description.txt 2023-10-10T15:14:12.249+0200 [INFO] New SDK Version is "v0.20231005.1153009" 2023-10-10T15:14:12.249+0200 [INFO] Output File Name is "pr-description.txt" 2023-10-10T15:14:12.249+0200 [INFO] Working Directory is "../../../" +2023-10-10T15:14:12.249+0200 [INFO] Old SDK Version is "v0.20230918.1115907" 2023-10-10T15:14:12.249+0200 [INFO] Checking the changes between "v0.20230918.1115907" and "v0.20231005.1153009" of `hashicorp/go-azure-sdk`.. 2023-10-10T15:14:34.275+0200 [INFO] Updating `hashicorp/go-azure-sdk`.. 2023-10-10T15:14:50.939+0200 [INFO] Committed as "b5b40b0b49d9f192f9d65d620ecba98862764e6b" @@ -41,7 +41,6 @@ $ go build . && ./update-go-azure-sdk --old-sdk-version=v0.20230918.1115907 --ne ### Command Line Arguments -* `--old-sdk-version` - (Required) - Specifies the current (out of date) version of `hashicorp/go-azure-sdk` being used by the Provider. Example: `v0.20230918.1115907`. * `--new-sdk-version` - (Required) - Specifies the version of `hashicorp/go-azure-sdk` that the Provider should be updated to. Example: `v0.20231005.1153009`. * `--working-directory` - (Required) - Specifies the path to the root of the Provider repository (typically this is `../../../`, when run from this repository). Example: `../../../`. -* `--output-file` - (Required) - Specifies the path to the output file containing the summary of changes performed by this tool, primarily intended to be used as a Pull Request body. Example: `pr-description.txt`. +* `--output-file` - (Optional) - Specifies the path to the output file containing the summary of changes performed by this tool, primarily intended to be used as a Pull Request body. Example: `pr-description.txt`. diff --git a/internal/tools/update-go-azure-sdk/main.go b/internal/tools/update-go-azure-sdk/main.go index 286704d1f3e7..5ce1cb97ed3a 100644 --- a/internal/tools/update-go-azure-sdk/main.go +++ b/internal/tools/update-go-azure-sdk/main.go @@ -21,6 +21,7 @@ import ( "github.com/go-git/go-git/v5" "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-hclog" + "golang.org/x/mod/modfile" "golang.org/x/tools/go/ast/astutil" ) @@ -38,7 +39,6 @@ func main() { input := config{} f := flag.NewFlagSet("update-go-azure-sdk", flag.PanicOnError) - f.StringVar(&input.oldSdkVersion, "old-sdk-version", "", "--old-sdk-version=1.2.0") f.StringVar(&input.outputFileName, "output-file", "", "--output-file=pr-description.txt") f.StringVar(&input.newSdkVersion, "new-sdk-version", "", "--new-sdk-version=1.4.0") f.StringVar(&input.workingDirectory, "working-directory", "", "--working-directory=../../../") @@ -54,19 +54,12 @@ func main() { } type config struct { - oldSdkVersion string outputFileName string newSdkVersion string workingDirectory string } func (c config) validate() error { - if c.oldSdkVersion == "" { - return fmt.Errorf("`--old-sdk-version` must be specified") - } - if c.outputFileName == "" { - return fmt.Errorf("`--output-file` must be specified") - } if c.newSdkVersion == "" { return fmt.Errorf("`--new-sdk-version` must be specified") } @@ -83,30 +76,37 @@ func run(ctx context.Context, input config) error { //// git diff --name-only --diff-filter=A v0.20220711.1181406...v0.20220712.1062733 // ^ gives a list of paths which wants translating into `service[oldapi-newapi]` - logger.Info(fmt.Sprintf("Old SDK Version is %q", input.oldSdkVersion)) logger.Info(fmt.Sprintf("New SDK Version is %q", input.newSdkVersion)) logger.Info(fmt.Sprintf("Output File Name is %q", input.outputFileName)) logger.Info(fmt.Sprintf("Working Directory is %q", input.workingDirectory)) - // 1. First determine the changes present in this version of the Go SDK + // 1. Determine the current version of `hashicorp/go-azure-sdk` vendored into the Provider + logger.Info("Determining the current version of `hashicorp/go-azure-sdk` being used..") + oldSdkVersion, err := determineCurrentVersionOfGoAzureSDK(input.workingDirectory) + if err != nil { + return fmt.Errorf("determining the current version of `hashicorp/go-azure-sdk` being used in %q: %+v", input.workingDirectory, err) + } + logger.Info(fmt.Sprintf("Old SDK Version is %q", *oldSdkVersion)) + + // 2. First determine the changes present in this version of the Go SDK // if there's no changes to the `resource-manager` or `sdk` folders, we can ignore it for now. - logger.Info(fmt.Sprintf("Checking the changes between %q and %q of `hashicorp/go-azure-sdk`..", input.oldSdkVersion, input.newSdkVersion)) - changes, err := determineChangesBetweenVersionsOfGoAzureSDK(ctx, input.oldSdkVersion, input.newSdkVersion) + logger.Info(fmt.Sprintf("Checking the changes between %q and %q of `hashicorp/go-azure-sdk`..", *oldSdkVersion, input.newSdkVersion)) + changes, err := determineChangesBetweenVersionsOfGoAzureSDK(ctx, *oldSdkVersion, input.newSdkVersion) if err != nil { - return fmt.Errorf("determining the changes between version %q and %q of `hashicorp/go-azure-sdk`: %+v", input.oldSdkVersion, input.newSdkVersion, err) + return fmt.Errorf("determining the changes between version %q and %q of `hashicorp/go-azure-sdk`: %+v", *oldSdkVersion, input.newSdkVersion, err) } if !changes.hasChangesToSdk && !changes.hasChangesToResourceManager { logger.Info("No changes to either the SDK or Resource Manager - skipping updating") return nil } - // 2. Update the version of `hashicorp/go-azure-sdk` used in `terraform-provider-azurerm` + // 3. Update the version of `hashicorp/go-azure-sdk` used in `terraform-provider-azurerm` logger.Info("Updating `hashicorp/go-azure-sdk`..") if err := updateVersionOfGoAzureSDK(ctx, input.workingDirectory, input.newSdkVersion); err != nil { return fmt.Errorf("updating the version of go-azure-sdk: %+v", err) } - // 3. Then for each new Service/API Version: + // 4. Then for each new Service/API Version: // a. Try updating to the new API Version // b. `go mod tidy && go mod vendor` // c. `go test -v ./internal/services/{serviceName}/... @@ -203,11 +203,16 @@ func run(ctx context.Context, input config) error { } } - // 4. Build up a summary which can be used as a PR description + // 5. Build up a summary which can be used as a PR description logger.Debug("Building and outputting the PR description..") description := buildPullRequestDescription(results, input.newSdkVersion) - if err := os.WriteFile(input.outputFileName, []byte(description), 0644); err != nil { - return fmt.Errorf("writing description to `%s`: %+v", input.outputFileName, err) + if input.outputFileName != "" { + logger.Info(fmt.Sprintf("Writing PR description to %q..", input.outputFileName)) + if err := os.WriteFile(input.outputFileName, []byte(description), 0644); err != nil { + return fmt.Errorf("writing description to `%s`: %+v", input.outputFileName, err) + } + } else { + logger.Info("Skipping writing PR description since an output file was not specified") } // Let's also output it for good measure logger.Info("Processing completed - summary of changes:") @@ -215,6 +220,32 @@ func run(ctx context.Context, input config) error { return nil } +func determineCurrentVersionOfGoAzureSDK(workingDirectory string) (*string, error) { + filePath := path.Join(workingDirectory, "go.mod") + logger.Trace(fmt.Sprintf("Parsing the go.mod at %q..", filePath)) + file, err := os.ReadFile(filePath) + if err != nil { + return nil, fmt.Errorf("reading go.mod at %q: %+v", filePath, err) + } + + module, err := modfile.Parse(filePath, file, nil) + if err != nil { + return nil, fmt.Errorf("parsing the go.mod at %q: %+v", filePath, err) + } + + for _, v := range module.Require { + if v == nil { + continue + } + + if strings.EqualFold(v.Mod.Path, "github.com/hashicorp/go-azure-sdk") { + return pointer.To(v.Mod.Version), nil + } + } + + return nil, fmt.Errorf("couldn't find the go module version for `github.com/hashicorp/go-azure-sdk` in %q", filePath) +} + func resetWorkingDirectory(ctx context.Context, workingDirectory string) error { repo, err := git.PlainOpen(workingDirectory) if err != nil { From 4853003068e3d032e88ea4841e51d183e9e5cc8a Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 11 Oct 2023 10:28:35 +0200 Subject: [PATCH 319/336] tools/update-go-azure-sdk: `--working-directory` is now `--azurerm-repo-path` --- internal/tools/update-go-azure-sdk/README.md | 4 +- internal/tools/update-go-azure-sdk/main.go | 48 ++++++++++---------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/internal/tools/update-go-azure-sdk/README.md b/internal/tools/update-go-azure-sdk/README.md index 8235491ffe44..035b6683edc8 100644 --- a/internal/tools/update-go-azure-sdk/README.md +++ b/internal/tools/update-go-azure-sdk/README.md @@ -11,7 +11,7 @@ Whilst this tool is intended to primarily be run in automation - [the `update-ap ### Example Usage ```bash -$ go build . && ./update-go-azure-sdk --new-sdk-version=v0.20231005.1153009 --working-directory=../../../ --output-file=pr-description.txt +$ go build . && ./update-go-azure-sdk --new-sdk-version=v0.20231005.1153009 --azurerm-repo-path=../../../ --output-file=pr-description.txt 2023-10-10T15:14:12.249+0200 [INFO] New SDK Version is "v0.20231005.1153009" 2023-10-10T15:14:12.249+0200 [INFO] Output File Name is "pr-description.txt" 2023-10-10T15:14:12.249+0200 [INFO] Working Directory is "../../../" @@ -41,6 +41,6 @@ $ go build . && ./update-go-azure-sdk --new-sdk-version=v0.20231005.1153009 --wo ### Command Line Arguments +* `--azurerm-repo-path` - (Required) - Specifies the path to the root of the AzureRM Provider repository (typically this is `../../../`, when run from this repository). Example: `../../../`. * `--new-sdk-version` - (Required) - Specifies the version of `hashicorp/go-azure-sdk` that the Provider should be updated to. Example: `v0.20231005.1153009`. -* `--working-directory` - (Required) - Specifies the path to the root of the Provider repository (typically this is `../../../`, when run from this repository). Example: `../../../`. * `--output-file` - (Optional) - Specifies the path to the output file containing the summary of changes performed by this tool, primarily intended to be used as a Pull Request body. Example: `pr-description.txt`. diff --git a/internal/tools/update-go-azure-sdk/main.go b/internal/tools/update-go-azure-sdk/main.go index 5ce1cb97ed3a..c9f5db139f57 100644 --- a/internal/tools/update-go-azure-sdk/main.go +++ b/internal/tools/update-go-azure-sdk/main.go @@ -39,9 +39,9 @@ func main() { input := config{} f := flag.NewFlagSet("update-go-azure-sdk", flag.PanicOnError) - f.StringVar(&input.outputFileName, "output-file", "", "--output-file=pr-description.txt") + f.StringVar(&input.azurermRepoPath, "azurerm-repo-path", "", "--azurerm-repo-path=../../../") f.StringVar(&input.newSdkVersion, "new-sdk-version", "", "--new-sdk-version=1.4.0") - f.StringVar(&input.workingDirectory, "working-directory", "", "--working-directory=../../../") + f.StringVar(&input.outputFileName, "output-file", "", "--output-file=pr-description.txt") f.Parse(os.Args[1:]) if err := input.validate(); err != nil { @@ -54,18 +54,18 @@ func main() { } type config struct { - outputFileName string - newSdkVersion string - workingDirectory string + azurermRepoPath string + newSdkVersion string + outputFileName string } func (c config) validate() error { + if c.azurermRepoPath == "" { + return fmt.Errorf("`--azurerm-repo-path` must be specified") + } if c.newSdkVersion == "" { return fmt.Errorf("`--new-sdk-version` must be specified") } - if c.workingDirectory == "" { - return fmt.Errorf("`--working-directory` must be specified") - } return nil } @@ -78,13 +78,13 @@ func run(ctx context.Context, input config) error { logger.Info(fmt.Sprintf("New SDK Version is %q", input.newSdkVersion)) logger.Info(fmt.Sprintf("Output File Name is %q", input.outputFileName)) - logger.Info(fmt.Sprintf("Working Directory is %q", input.workingDirectory)) + logger.Info(fmt.Sprintf("AzureRM Repository is located at %q", input.azurermRepoPath)) // 1. Determine the current version of `hashicorp/go-azure-sdk` vendored into the Provider logger.Info("Determining the current version of `hashicorp/go-azure-sdk` being used..") - oldSdkVersion, err := determineCurrentVersionOfGoAzureSDK(input.workingDirectory) + oldSdkVersion, err := determineCurrentVersionOfGoAzureSDK(input.azurermRepoPath) if err != nil { - return fmt.Errorf("determining the current version of `hashicorp/go-azure-sdk` being used in %q: %+v", input.workingDirectory, err) + return fmt.Errorf("determining the current version of `hashicorp/go-azure-sdk` being used in %q: %+v", input.azurermRepoPath, err) } logger.Info(fmt.Sprintf("Old SDK Version is %q", *oldSdkVersion)) @@ -102,7 +102,7 @@ func run(ctx context.Context, input config) error { // 3. Update the version of `hashicorp/go-azure-sdk` used in `terraform-provider-azurerm` logger.Info("Updating `hashicorp/go-azure-sdk`..") - if err := updateVersionOfGoAzureSDK(ctx, input.workingDirectory, input.newSdkVersion); err != nil { + if err := updateVersionOfGoAzureSDK(ctx, input.azurermRepoPath, input.newSdkVersion); err != nil { return fmt.Errorf("updating the version of go-azure-sdk: %+v", err) } @@ -124,16 +124,16 @@ func run(ctx context.Context, input config) error { for _, serviceName := range serviceNames { availableApiVersions := changes.newServicesToApiVersions[serviceName] - hasPendingChanges, err := directoryHasPendingChanges(input.workingDirectory) + hasPendingChanges, err := directoryHasPendingChanges(input.azurermRepoPath) if err != nil { - return fmt.Errorf("checking for pending changes in %q: %+v", input.workingDirectory, err) + return fmt.Errorf("checking for pending changes in %q: %+v", input.azurermRepoPath, err) } if *hasPendingChanges { return fmt.Errorf("internal-error: working directory was not clean before starting service %q", serviceName) } logger.Info(fmt.Sprintf("Processing Service %q..", serviceName)) - apiVersionsCurrentlyUsedForService, err := determineApiVersionsCurrentlyUsedForService(ctx, input.workingDirectory, serviceName) + apiVersionsCurrentlyUsedForService, err := determineApiVersionsCurrentlyUsedForService(ctx, input.azurermRepoPath, serviceName) if err != nil { return fmt.Errorf("determining the api versions currently used for service %q: %+v", serviceName, err) } @@ -145,27 +145,27 @@ func run(ctx context.Context, input config) error { } logger.Info(fmt.Sprintf("Attempting to update API Version %q to %q for Service %q..", existingVersion, newApiVersion, serviceName)) - internalDirectory := path.Join(input.workingDirectory, "internal") + internalDirectory := path.Join(input.azurermRepoPath, "internal") if err := updateImportsWithinDirectory(serviceName, existingVersion, newApiVersion, internalDirectory); err != nil { return fmt.Errorf("updating the imports within %q: %+v", internalDirectory, err) } logger.Info(fmt.Sprintf("Updated the Imports for Service %q to use API Version %q rather than %q..", serviceName, newApiVersion, existingVersion)) logger.Info("Running `go mod tidy` / `go mod vendor`..") - goModTidyAndVendor(ctx, input.workingDirectory) + goModTidyAndVendor(ctx, input.azurermRepoPath) logger.Debug("Checking for pending changes..") - hasPendingChanges, err := directoryHasPendingChanges(input.workingDirectory) + hasPendingChanges, err := directoryHasPendingChanges(input.azurermRepoPath) if err != nil { - return fmt.Errorf("checking for pending changes in %q: %+v", input.workingDirectory, err) + return fmt.Errorf("checking for pending changes in %q: %+v", input.azurermRepoPath, err) } if !*hasPendingChanges { logger.Info(fmt.Sprintf("No pending changes after attempting to update API Version %q to %q for Service %q - skipping", existingVersion, newApiVersion, serviceName)) continue } - logger.Info(fmt.Sprintf("Running `make test` within %q..", input.workingDirectory)) - if err := runMakeTest(ctx, input.workingDirectory); err != nil { + logger.Info(fmt.Sprintf("Running `make test` within %q..", input.azurermRepoPath)) + if err := runMakeTest(ctx, input.azurermRepoPath); err != nil { results = append(results, updatedServiceSummary{ serviceName: serviceName, olderApiVersion: existingVersion, @@ -175,16 +175,16 @@ func run(ctx context.Context, input config) error { // when the tests fail, we need to reset the working directory to ensure that there aren't any unstaged changes logger.Info("Resetting the working directory since `make test` failed..") - if err := resetWorkingDirectory(ctx, input.workingDirectory); err != nil { + if err := resetWorkingDirectory(ctx, input.azurermRepoPath); err != nil { return fmt.Errorf("resetting the working directory: %+v", err) } - goModTidyAndVendor(ctx, input.workingDirectory) + goModTidyAndVendor(ctx, input.azurermRepoPath) continue } logger.Debug("Committing changes..") message := fmt.Sprintf("dependencies: updating `%s` to API Version %q from %q", serviceName, newApiVersion, existingVersion) - if err := stageAndCommitChanges(input.workingDirectory, message); err != nil { + if err := stageAndCommitChanges(input.azurermRepoPath, message); err != nil { return fmt.Errorf("staging/committing changes when updating to API Version %q for %q: %+v", newApiVersion, serviceName, err) } From 897abea7a84d59665e68a43e6b63b717d59e571d Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 11 Oct 2023 10:33:54 +0200 Subject: [PATCH 320/336] tools/update-go-azure-sdk: support for `--go-sdk-repo-path` This allows for reusing an existing checkout, rather than cloning a fresh copy of `hashicorp/go-azure-sdk` useful both for automation, and when working with an offline copy --- internal/tools/update-go-azure-sdk/README.md | 1 + internal/tools/update-go-azure-sdk/main.go | 53 ++++++++++++-------- 2 files changed, 33 insertions(+), 21 deletions(-) diff --git a/internal/tools/update-go-azure-sdk/README.md b/internal/tools/update-go-azure-sdk/README.md index 035b6683edc8..602f6ce89904 100644 --- a/internal/tools/update-go-azure-sdk/README.md +++ b/internal/tools/update-go-azure-sdk/README.md @@ -42,5 +42,6 @@ $ go build . && ./update-go-azure-sdk --new-sdk-version=v0.20231005.1153009 --az ### Command Line Arguments * `--azurerm-repo-path` - (Required) - Specifies the path to the root of the AzureRM Provider repository (typically this is `../../../`, when run from this repository). Example: `../../../`. +* `--go-sdk-repo-path` - (Optional) - Specifies the path to the root of the `hashicorp/go-azure-sdk` repository, if provided this path is used - if not a fresh copy is cloned into a temp directory. Example: `../../../../go-azure-sdk`. * `--new-sdk-version` - (Required) - Specifies the version of `hashicorp/go-azure-sdk` that the Provider should be updated to. Example: `v0.20231005.1153009`. * `--output-file` - (Optional) - Specifies the path to the output file containing the summary of changes performed by this tool, primarily intended to be used as a Pull Request body. Example: `pr-description.txt`. diff --git a/internal/tools/update-go-azure-sdk/main.go b/internal/tools/update-go-azure-sdk/main.go index c9f5db139f57..8270ba2ee7bb 100644 --- a/internal/tools/update-go-azure-sdk/main.go +++ b/internal/tools/update-go-azure-sdk/main.go @@ -40,6 +40,7 @@ func main() { f := flag.NewFlagSet("update-go-azure-sdk", flag.PanicOnError) f.StringVar(&input.azurermRepoPath, "azurerm-repo-path", "", "--azurerm-repo-path=../../../") + f.StringVar(&input.goSdkRepoPath, "go-sdk-repo-path", "", "--go-sdk-repo-path=../../../../go-azure-sdk") f.StringVar(&input.newSdkVersion, "new-sdk-version", "", "--new-sdk-version=1.4.0") f.StringVar(&input.outputFileName, "output-file", "", "--output-file=pr-description.txt") f.Parse(os.Args[1:]) @@ -55,6 +56,7 @@ func main() { type config struct { azurermRepoPath string + goSdkRepoPath string newSdkVersion string outputFileName string } @@ -78,7 +80,13 @@ func run(ctx context.Context, input config) error { logger.Info(fmt.Sprintf("New SDK Version is %q", input.newSdkVersion)) logger.Info(fmt.Sprintf("Output File Name is %q", input.outputFileName)) - logger.Info(fmt.Sprintf("AzureRM Repository is located at %q", input.azurermRepoPath)) + logger.Info(fmt.Sprintf("The `hashicorp/terraform-provider-azurerm` repository is located at %q", input.azurermRepoPath)) + + if input.goSdkRepoPath != "" { + logger.Info(fmt.Sprintf("The `hashicorp/go-azure-sdk` repository is located at %q", input.goSdkRepoPath)) + } else { + logger.Info("A path to the `hashicorp/go-azure-sdk` repository was not provided - will clone on-demand") + } // 1. Determine the current version of `hashicorp/go-azure-sdk` vendored into the Provider logger.Info("Determining the current version of `hashicorp/go-azure-sdk` being used..") @@ -91,7 +99,7 @@ func run(ctx context.Context, input config) error { // 2. First determine the changes present in this version of the Go SDK // if there's no changes to the `resource-manager` or `sdk` folders, we can ignore it for now. logger.Info(fmt.Sprintf("Checking the changes between %q and %q of `hashicorp/go-azure-sdk`..", *oldSdkVersion, input.newSdkVersion)) - changes, err := determineChangesBetweenVersionsOfGoAzureSDK(ctx, *oldSdkVersion, input.newSdkVersion) + changes, err := determineChangesBetweenVersionsOfGoAzureSDK(ctx, *oldSdkVersion, input.newSdkVersion, input.goSdkRepoPath) if err != nil { return fmt.Errorf("determining the changes between version %q and %q of `hashicorp/go-azure-sdk`: %+v", *oldSdkVersion, input.newSdkVersion, err) } @@ -416,26 +424,29 @@ type changes struct { newServicesToApiVersions map[string][]string } -func determineChangesBetweenVersionsOfGoAzureSDK(ctx context.Context, oldSDKVersion, newSDKVersion string) (*changes, error) { - tempDirectory := os.TempDir() - logger.Debug(fmt.Sprintf("Creating Temp Directory at %q..", tempDirectory)) - _ = os.MkdirAll(tempDirectory, 755) - workingDirectory := path.Join(tempDirectory, "go-azure-sdk") - defer func() { - logger.Debug(fmt.Sprintf("Cleaning up the temp directory at %q..", workingDirectory)) - _ = os.RemoveAll(workingDirectory) - }() - - logger.Debug(fmt.Sprintf("Cloning `hashicorp/go-azure-sdk` into %q..", workingDirectory)) - args := []string{ - "clone", - "https://github.com/hashicorp/go-azure-sdk.git", - workingDirectory, +func determineChangesBetweenVersionsOfGoAzureSDK(ctx context.Context, oldSDKVersion, newSDKVersion, goSdkRepositoryPath string) (*changes, error) { + workingDirectory := goSdkRepositoryPath + if goSdkRepositoryPath == "" { + tempDirectory := os.TempDir() + logger.Debug(fmt.Sprintf("Creating Temp Directory at %q..", tempDirectory)) + _ = os.MkdirAll(tempDirectory, 755) + workingDirectory = path.Join(tempDirectory, "go-azure-sdk") + defer func() { + logger.Debug(fmt.Sprintf("Cleaning up the temp directory at %q..", workingDirectory)) + _ = os.RemoveAll(workingDirectory) + }() + + logger.Debug(fmt.Sprintf("Cloning `hashicorp/go-azure-sdk` into %q..", workingDirectory)) + args := []string{ + "clone", + "https://github.com/hashicorp/go-azure-sdk.git", + workingDirectory, + } + cmd := exec.CommandContext(ctx, "git", args...) + cmd.Dir = tempDirectory + _ = cmd.Start() + _ = cmd.Wait() } - cmd := exec.CommandContext(ctx, "git", args...) - cmd.Dir = tempDirectory - _ = cmd.Start() - _ = cmd.Wait() // Obtain the file paths which have changed // For now this should be sufficient to pull any changes and iterate over those e.g.: From 5b1d3ffff0caa83750da80502bf7c0f832fcaa5a Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 11 Oct 2023 10:38:32 +0200 Subject: [PATCH 321/336] tools/update-go-azure-sdk: outputting a message when no services were updated --- internal/tools/update-go-azure-sdk/main.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/tools/update-go-azure-sdk/main.go b/internal/tools/update-go-azure-sdk/main.go index 8270ba2ee7bb..589de1f0bd4a 100644 --- a/internal/tools/update-go-azure-sdk/main.go +++ b/internal/tools/update-go-azure-sdk/main.go @@ -762,10 +762,16 @@ func buildPullRequestDescription(input []updatedServiceSummary, newSdkVersion st } } + otherLines := make([]string, 0) + if len(succeeded) == 0 && len(failed) == 0 { + otherLines = append(otherLines, "This version contains no new API Versions - so no upgrades were attempted.") + } + lines := []string{ fmt.Sprintf("This PR updates the version of `hashicorp/go-azure-sdk` to `%s`.", newSdkVersion), strings.Join(succeededLines, "\n"), strings.Join(failedLines, "\n"), + strings.Join(otherLines, "\n"), } return strings.Join(lines, "\n\n") } From 4b5daa565f59ecafcd3f297bd419553b587978b5 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 11 Oct 2023 11:00:09 +0200 Subject: [PATCH 322/336] tools/update-go-azure-sdk: updating the readme example/fmt --- internal/tools/update-go-azure-sdk/README.md | 93 ++++++++++++++------ internal/tools/update-go-azure-sdk/main.go | 7 +- 2 files changed, 73 insertions(+), 27 deletions(-) diff --git a/internal/tools/update-go-azure-sdk/README.md b/internal/tools/update-go-azure-sdk/README.md index 602f6ce89904..69a45fcddb77 100644 --- a/internal/tools/update-go-azure-sdk/README.md +++ b/internal/tools/update-go-azure-sdk/README.md @@ -11,34 +11,75 @@ Whilst this tool is intended to primarily be run in automation - [the `update-ap ### Example Usage ```bash -$ go build . && ./update-go-azure-sdk --new-sdk-version=v0.20231005.1153009 --azurerm-repo-path=../../../ --output-file=pr-description.txt -2023-10-10T15:14:12.249+0200 [INFO] New SDK Version is "v0.20231005.1153009" -2023-10-10T15:14:12.249+0200 [INFO] Output File Name is "pr-description.txt" -2023-10-10T15:14:12.249+0200 [INFO] Working Directory is "../../../" -2023-10-10T15:14:12.249+0200 [INFO] Old SDK Version is "v0.20230918.1115907" -2023-10-10T15:14:12.249+0200 [INFO] Checking the changes between "v0.20230918.1115907" and "v0.20231005.1153009" of `hashicorp/go-azure-sdk`.. -2023-10-10T15:14:34.275+0200 [INFO] Updating `hashicorp/go-azure-sdk`.. -2023-10-10T15:14:50.939+0200 [INFO] Committed as "b5b40b0b49d9f192f9d65d620ecba98862764e6b" -2023-10-10T15:14:53.958+0200 [INFO] Processing Service "connectedvmware".. -2023-10-10T15:14:54.552+0200 [INFO] Processed Service "connectedvmware". -2023-10-10T15:14:57.578+0200 [INFO] Processing Service "cosmosdb".. -2023-10-10T15:14:58.148+0200 [INFO] Attempting to update API Version "2022-05-15" to "2023-09-15" for Service "cosmosdb".. -2023-10-10T15:15:03.823+0200 [INFO] Updated the Imports for Service "cosmosdb" to use API Version "2023-09-15" rather than "2022-05-15".. -2023-10-10T15:15:03.823+0200 [INFO] Running `go mod tidy` / `go mod vendor`.. -2023-10-10T15:15:15.022+0200 [INFO] Running `make test` within "../../../".. -2023-10-10T15:18:04.450+0200 [INFO] Committed as "a88ab1b1be8344a07bcf316a62c3ea31a87be507" -2023-10-10T15:18:04.450+0200 [INFO] Updated Service "cosmosdb" from "2022-05-15" to "2023-09-15" -2023-10-10T15:18:04.450+0200 [INFO] Attempting to update API Version "2022-11-15" to "2023-09-15" for Service "cosmosdb".. -2023-10-10T15:18:10.035+0200 [INFO] Updated the Imports for Service "cosmosdb" to use API Version "2023-09-15" rather than "2022-11-15".. -2023-10-10T15:18:10.035+0200 [INFO] Running `go mod tidy` / `go mod vendor`.. -2023-10-10T15:18:22.087+0200 [INFO] Running `make test` within "../../../".. -2023-10-10T15:19:46.236+0200 [INFO] Resetting the working directory since `make test` failed.. -2023-10-10T15:19:56.549+0200 [INFO] Attempting to update API Version "2023-04-15" to "2023-09-15" for Service "cosmosdb".. -2023-10-10T15:20:02.211+0200 [INFO] Updated the Imports for Service "cosmosdb" to use API Version "2023-09-15" rather than "2023-04-15".. -2023-10-10T15:20:02.211+0200 [INFO] Running `go mod tidy` / `go mod vendor`.. -2023-10-10T15:20:12.584+0200 [INFO] Running `make test` within "../../../".. + $ go build . && ./update-go-azure-sdk --new-sdk-version=v0.20231005.1153009 --azurerm-repo-path=../../../ (tool/update-go-azure-sdk ⚡) +2023-10-11T10:47:53.665+0200 [INFO] New SDK Version is "v0.20231005.1153009" +2023-10-11T10:47:53.665+0200 [INFO] The `hashicorp/terraform-provider-azurerm` repository is located at "../../../" +2023-10-11T10:47:53.665+0200 [INFO] A path to the `hashicorp/go-azure-sdk` repository was not provided - will clone on-demand +2023-10-11T10:47:53.665+0200 [INFO] No output file was specified so the PR description will only be output to the console +2023-10-11T10:47:53.665+0200 [INFO] Determining the current version of `hashicorp/go-azure-sdk` being used.. +2023-10-11T10:47:53.665+0200 [INFO] Old SDK Version is "v0.20230918.1115907" +2023-10-11T10:47:53.665+0200 [INFO] Checking the changes between "v0.20230918.1115907" and "v0.20231005.1153009" of `hashicorp/go-azure-sdk`.. +2023-10-11T10:48:14.806+0200 [INFO] Updating `hashicorp/go-azure-sdk`.. +2023-10-11T10:48:30.497+0200 [INFO] Committed as "a0d657666ba969ca30154a9aec14f157a4a5e10d" +2023-10-11T10:48:33.434+0200 [INFO] Processing Service "connectedvmware".. +2023-10-11T10:48:34.052+0200 [INFO] Processed Service "connectedvmware". +2023-10-11T10:48:37.045+0200 [INFO] Processing Service "cosmosdb".. +2023-10-11T10:48:37.621+0200 [INFO] Attempting to update API Version "2022-05-15" to "2023-09-15" for Service "cosmosdb".. +2023-10-11T10:48:43.271+0200 [INFO] Updated the Imports for Service "cosmosdb" to use API Version "2023-09-15" rather than "2022-05-15".. +2023-10-11T10:48:43.271+0200 [INFO] Running `go mod tidy` / `go mod vendor`.. +2023-10-11T10:48:54.889+0200 [INFO] Running `make test` within "../../../".. +2023-10-11T10:51:45.702+0200 [INFO] Committed as "cdb7749d478e961c10fb70e63f624f829d3dc639" +2023-10-11T10:51:45.702+0200 [INFO] Updated Service "cosmosdb" from "2022-05-15" to "2023-09-15" +2023-10-11T10:51:45.702+0200 [INFO] Attempting to update API Version "2022-11-15" to "2023-09-15" for Service "cosmosdb".. +2023-10-11T10:51:53.210+0200 [INFO] Updated the Imports for Service "cosmosdb" to use API Version "2023-09-15" rather than "2022-11-15".. +2023-10-11T10:51:53.210+0200 [INFO] Running `go mod tidy` / `go mod vendor`.. +2023-10-11T10:52:18.365+0200 [INFO] Running `make test` within "../../../".. +2023-10-11T10:53:38.033+0200 [INFO] Resetting the working directory since `make test` failed.. +2023-10-11T10:53:49.732+0200 [INFO] Attempting to update API Version "2023-04-15" to "2023-09-15" for Service "cosmosdb".. +2023-10-11T10:53:55.432+0200 [INFO] Updated the Imports for Service "cosmosdb" to use API Version "2023-09-15" rather than "2023-04-15".. +2023-10-11T10:53:55.432+0200 [INFO] Running `go mod tidy` / `go mod vendor`.. +2023-10-11T10:54:05.676+0200 [INFO] Running `make test` within "../../../".. +2023-10-11T10:57:08.025+0200 [INFO] Committed as "38ea9bc573d99a0a8ff512ae380ad7184c375f37" +2023-10-11T10:57:08.025+0200 [INFO] Updated Service "cosmosdb" from "2023-04-15" to "2023-09-15" +2023-10-11T10:57:08.025+0200 [INFO] Processed Service "cosmosdb". +2023-10-11T10:57:08.025+0200 [INFO] Skipping writing PR description since an output file was not specified +2023-10-11T10:57:08.025+0200 [INFO] Processing completed - summary of changes: +2023-10-11T10:57:08.025+0200 [INFO] This PR updates the version of `hashicorp/go-azure-sdk` to `v0.20231005.1153009`. + +This updates the following Services and API Versions: +* The service `cosmosdb` was updated to API Version `2023-09-15` (from `2022-05-15`). +* The service `cosmosdb` was updated to API Version `2023-09-15` (from `2023-04-15`). + +## FAILED - API Versions +The following new API Versions are available but had compile-time errors when updating: +* The service `cosmosdb` - updating to API Version `2023-09-15` from `2022-11-15`. +[][][] +running `make test` in "../../../": stdout: +--- +==> Checking that code complies with gofmt requirements... +==> Checking that Custom Timeouts are used... +==> Checking that acceptance test packages are used... +==> Checking for use of gradually deprecated functions... +==> Checking for use of deprecated functions... +==> Running Unit Tests... + +--- + +stderr: +--- +# github.com/hashicorp/terraform-provider-azurerm/internal/services/cosmos +internal/services/cosmos/cosmosdb_mongo_role_definition_resource.go:154:27: undefined: mongorbacs.MongoRoleDefinitionTypeOne +internal/services/cosmos/cosmosdb_mongo_role_definition_resource.go:161:30: cannot infer T (/Users/tharvey/code/src/github.com/hashicorp/terraform-provider-azurerm/vendor/github.com/hashicorp/go-azure-helpers/lang/pointer/generic.go:17:9) +internal/services/cosmos/cosmosdb_mongo_role_definition_resource.go:209:27: undefined: mongorbacs.MongoRoleDefinitionTypeOne +internal/services/cosmos/cosmosdb_mongo_role_definition_resource.go:216:30: cannot infer T (/Users/tharvey/code/src/github.com/hashicorp/terraform-provider-azurerm/vendor/github.com/hashicorp/go-azure-helpers/lang/pointer/generic.go:17:9) +make: *** [test] Error 1 + +--- +[][][] ``` +(note: `[][][]` in the output above is three backticks, replaced to not break the markdown layout.) + ### Command Line Arguments * `--azurerm-repo-path` - (Required) - Specifies the path to the root of the AzureRM Provider repository (typically this is `../../../`, when run from this repository). Example: `../../../`. diff --git a/internal/tools/update-go-azure-sdk/main.go b/internal/tools/update-go-azure-sdk/main.go index 589de1f0bd4a..a568591f2678 100644 --- a/internal/tools/update-go-azure-sdk/main.go +++ b/internal/tools/update-go-azure-sdk/main.go @@ -79,7 +79,6 @@ func run(ctx context.Context, input config) error { // ^ gives a list of paths which wants translating into `service[oldapi-newapi]` logger.Info(fmt.Sprintf("New SDK Version is %q", input.newSdkVersion)) - logger.Info(fmt.Sprintf("Output File Name is %q", input.outputFileName)) logger.Info(fmt.Sprintf("The `hashicorp/terraform-provider-azurerm` repository is located at %q", input.azurermRepoPath)) if input.goSdkRepoPath != "" { @@ -88,6 +87,12 @@ func run(ctx context.Context, input config) error { logger.Info("A path to the `hashicorp/go-azure-sdk` repository was not provided - will clone on-demand") } + if input.outputFileName != "" { + logger.Info(fmt.Sprintf("Output File Name is %q", input.outputFileName)) + } else { + logger.Info("No output file was specified so the PR description will only be output to the console") + } + // 1. Determine the current version of `hashicorp/go-azure-sdk` vendored into the Provider logger.Info("Determining the current version of `hashicorp/go-azure-sdk` being used..") oldSdkVersion, err := determineCurrentVersionOfGoAzureSDK(input.azurermRepoPath) From 885e9309572fa02f699a5b56f00204e1777ef431 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 11 Oct 2023 11:05:32 +0200 Subject: [PATCH 323/336] go mod tidy --- internal/tools/update-go-azure-sdk/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/tools/update-go-azure-sdk/go.mod b/internal/tools/update-go-azure-sdk/go.mod index a508a9a2c97d..c704ff243655 100644 --- a/internal/tools/update-go-azure-sdk/go.mod +++ b/internal/tools/update-go-azure-sdk/go.mod @@ -6,6 +6,7 @@ require ( github.com/go-git/go-git/v5 v5.9.0 github.com/hashicorp/go-azure-helpers v0.61.0 github.com/hashicorp/go-hclog v1.5.0 + golang.org/x/mod v0.12.0 golang.org/x/tools v0.13.0 ) @@ -30,7 +31,6 @@ require ( github.com/skeema/knownhosts v1.2.0 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect golang.org/x/crypto v0.13.0 // indirect - golang.org/x/mod v0.12.0 // indirect golang.org/x/net v0.15.0 // indirect golang.org/x/sys v0.12.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect From fa1f080b6c7a714ed3387ce654db7b05fc904828 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 11 Oct 2023 11:07:38 +0200 Subject: [PATCH 324/336] tools/update-go-azure-sdk: updating the commit logic --- internal/tools/update-go-azure-sdk/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/tools/update-go-azure-sdk/main.go b/internal/tools/update-go-azure-sdk/main.go index a568591f2678..2b7ba81c7744 100644 --- a/internal/tools/update-go-azure-sdk/main.go +++ b/internal/tools/update-go-azure-sdk/main.go @@ -595,6 +595,7 @@ func stageAndCommitChanges(workingDirectory string, message string) error { // to explicitly stage all changes (including the vendored changes) logger.Trace(fmt.Sprintf("Staging all changes in %q..", workingDirectory)) addOpts := &git.AddOptions{ + // NOTE: Glob is needed to add all untracked files too, else the vendor directory isn't committed All: true, Glob: "**", } @@ -604,7 +605,6 @@ func stageAndCommitChanges(workingDirectory string, message string) error { logger.Trace(fmt.Sprintf("Committing all changes in %q..", workingDirectory)) opts := &git.CommitOptions{ - All: true, } hash, err := worktree.Commit(message, opts) if err != nil { From db54e2fc42ecd6d2f8c3e1219d8b9912784f3e6b Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 11 Oct 2023 12:51:18 +0200 Subject: [PATCH 325/336] tools/update-go-azure-sdk: updating the import search to use asts --- internal/tools/update-go-azure-sdk/main.go | 147 +++++++++++++-------- 1 file changed, 95 insertions(+), 52 deletions(-) diff --git a/internal/tools/update-go-azure-sdk/main.go b/internal/tools/update-go-azure-sdk/main.go index 2b7ba81c7744..44f2425fc918 100644 --- a/internal/tools/update-go-azure-sdk/main.go +++ b/internal/tools/update-go-azure-sdk/main.go @@ -146,7 +146,7 @@ func run(ctx context.Context, input config) error { } logger.Info(fmt.Sprintf("Processing Service %q..", serviceName)) - apiVersionsCurrentlyUsedForService, err := determineApiVersionsCurrentlyUsedForService(ctx, input.azurermRepoPath, serviceName) + apiVersionsCurrentlyUsedForService, err := determineApiVersionsCurrentlyUsedForService(input.azurermRepoPath, serviceName) if err != nil { return fmt.Errorf("determining the api versions currently used for service %q: %+v", serviceName, err) } @@ -208,7 +208,6 @@ func run(ctx context.Context, input config) error { newApiVersion: newApiVersion, error: nil, }) - break } } @@ -359,47 +358,23 @@ func (s updatedServiceSummary) successful() bool { return s.error == nil } -func determineApiVersionsCurrentlyUsedForService(ctx context.Context, workingDirectory string, serviceName string) (*[]string, error) { +func determineApiVersionsCurrentlyUsedForService(workingDirectory string, serviceName string) (*[]string, error) { absPath, err := filepath.Abs(workingDirectory) if err != nil { return nil, fmt.Errorf("determining absolute path for %q: %+v", workingDirectory, err) } logger.Debug(fmt.Sprintf("Determining the API Versions used for `hashicorp/go-azure-sdk` Service %q..", serviceName)) - diffArgs := []string{ - "-hR", - fmt.Sprintf("github.com/hashicorp/go-azure-sdk/resource-manager/%s/", serviceName), - "--include=*.go", - "./internal/services/..", - } - var stdout bytes.Buffer - var stderr bytes.Buffer - cmd := exec.CommandContext(ctx, "grep", diffArgs...) - cmd.Dir = absPath - cmd.Stderr = &stderr - cmd.Stdout = &stdout - _ = cmd.Start() - _ = cmd.Wait() - if stderr.Len() > 0 { - return nil, fmt.Errorf("determining the API Versions used for `hashicorp/go-azure-sdk` Service %q: %s", serviceName, stderr.String()) + servicesDirectory := path.Join(absPath, "internal", "services") + imports, err := findImportsWithinDirectory(servicesDirectory) + if err != nil { + return nil, fmt.Errorf("finding imports within %q: %+v", servicesDirectory, err) } - linesRaw := strings.Split(stdout.String(), "\n") - lines := make(map[string]struct{}) - for _, line := range linesRaw { - line = strings.TrimSpace(line) - if line == "" { - continue - } - - // if there's an alias then we need to remove that - if !strings.HasPrefix(line, `"`) { - index := strings.IndexAny(line, `"`) - if index == -1 { - return nil, fmt.Errorf("skipping the alias for %q: quote mark was not found", line) - } - line = line[index:] - } + // now that we have a canonical list, unique these + apiVersions := make(map[string]struct{}, 0) + for _, line := range *imports { + logger.Trace(fmt.Sprintf("Parsing import line %q..", line)) // pull out the api version, which is predictable line = strings.TrimPrefix(line, `"`) @@ -407,15 +382,15 @@ func determineApiVersionsCurrentlyUsedForService(ctx context.Context, workingDir line = strings.TrimSuffix(line, `"`) components := strings.Split(line, "/") apiVersion := components[0] - lines[apiVersion] = struct{}{} + apiVersions[apiVersion] = struct{}{} } - linesSorted := make([]string, 0) - for line := range lines { - linesSorted = append(linesSorted, line) + out := make([]string, 0) + for k := range apiVersions { + out = append(out, k) } - sort.Strings(linesSorted) - return &linesSorted, nil + sort.Strings(out) + return &out, nil } type changes struct { @@ -604,8 +579,7 @@ func stageAndCommitChanges(workingDirectory string, message string) error { } logger.Trace(fmt.Sprintf("Committing all changes in %q..", workingDirectory)) - opts := &git.CommitOptions{ - } + opts := &git.CommitOptions{} hash, err := worktree.Commit(message, opts) if err != nil { return fmt.Errorf("commiting changes to %q: %+v", workingDirectory, err) @@ -642,17 +616,10 @@ func updateImportsWithinDirectory(serviceName string, oldApiVersion string, newA // because we want to process all nested directories, we need to first pull out a complete list of directories fileSet := token.NewFileSet() - directories := make([]string, 0) - _ = filepath.WalkDir(absPath, func(path string, d fs.DirEntry, err error) error { - if d.IsDir() { - directories = append(directories, path) - } - return nil - }) - sort.Strings(directories) + nestedDirectories := findDirectoriesNestedWithin(absPath) // over which we can then iterate to get a list of files within that directory - for _, directory := range directories { + for _, directory := range nestedDirectories { logger.Trace(fmt.Sprintf("Processing directory %q..", directory)) files, err := parser.ParseDir(fileSet, directory, func(info fs.FileInfo) bool { return true @@ -732,6 +699,82 @@ func updateImportsForFile(fileSet *token.FileSet, file *ast.File, serviceName st }) } +func findImportsWithinDirectory(workingDirectory string) (*[]string, error) { + absPath, err := filepath.Abs(workingDirectory) + if err != nil { + return nil, fmt.Errorf("obtaining absolute path for %q: %+v", workingDirectory, err) + } + + imports := make(map[string]struct{}) + nestedDirectories := findDirectoriesNestedWithin(absPath) + for _, directory := range nestedDirectories { + logger.Trace(fmt.Sprintf("Processing directory %q..", absPath)) + + fileSet := token.NewFileSet() + files, err := parser.ParseDir(fileSet, directory, func(info fs.FileInfo) bool { + return true + }, parser.ParseComments) + if err != nil { + return nil, fmt.Errorf("parsing files within %q: %+v", directory, err) + } + + for pkgName, pkg := range files { + logger.Trace(fmt.Sprintf("Processing Go Package %q", pkgName)) + for fileName, file := range pkg.Files { + logger.Trace(fmt.Sprintf("Finding imports within File %q..", fileName)) + importsInFile := findImportsWithinFile(fileSet, file) + for _, item := range importsInFile { + imports[item] = struct{}{} + } + } + } + logger.Trace(fmt.Sprintf("Processed directory %q.", directory)) + } + + out := make([]string, 0) + for k := range imports { + out = append(out, k) + } + sort.Strings(out) + return &out, nil +} + +func findDirectoriesNestedWithin(workingDirectory string) []string { + // because we want to process all nested directories, we need to first pull out a complete list of directories + directories := make([]string, 0) + _ = filepath.WalkDir(workingDirectory, func(path string, d fs.DirEntry, err error) error { + if d.IsDir() { + directories = append(directories, path) + } + return nil + }) + sort.Strings(directories) + return directories +} + +func findImportsWithinFile(fileSet *token.FileSet, file *ast.File) []string { + existingImports := astutil.Imports(fileSet, file) + imports := make(map[string]struct{}) + for _, val := range existingImports { + for _, item := range val { + logger.Trace(fmt.Sprintf("Processing Import %q", item.Path.Value)) + existingImportLine := item.Path.Value + if !strings.Contains(existingImportLine, "github.com/hashicorp/go-azure-sdk/resource-manager/") { + continue + } + + imports[item.Path.Value] = struct{}{} + } + } + + out := make([]string, 0) + for k := range imports { + out = append(out, k) + } + sort.Strings(out) + return out +} + func buildPullRequestDescription(input []updatedServiceSummary, newSdkVersion string) string { succeeded := make([]updatedServiceSummary, 0) failed := make([]updatedServiceSummary, 0) From 7eb1287063baa20fba567996a255a182f2904585 Mon Sep 17 00:00:00 2001 From: catriona-m <86247157+catriona-m@users.noreply.github.com> Date: Wed, 11 Oct 2023 13:52:55 +0100 Subject: [PATCH 326/336] `azurerm_eventhub` - remove ForceNew and check `partition_count` is not decreased (#23499) * remove ForceNew and check partition_count is not decreased * update doc --- internal/services/eventhub/eventhub_resource.go | 7 ++++++- website/docs/r/eventhub.html.markdown | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/internal/services/eventhub/eventhub_resource.go b/internal/services/eventhub/eventhub_resource.go index eef951107223..b3cb1e5f8465 100644 --- a/internal/services/eventhub/eventhub_resource.go +++ b/internal/services/eventhub/eventhub_resource.go @@ -63,7 +63,6 @@ func resourceEventHub() *pluginsdk.Resource { "partition_count": { Type: pluginsdk.TypeInt, Required: true, - ForceNew: true, ValidateFunc: validate.ValidateEventHubPartitionCount, }, @@ -222,6 +221,12 @@ func resourceEventHubUpdate(d *pluginsdk.ResourceData, meta interface{}) error { id := eventhubs.NewEventhubID(subscriptionId, d.Get("resource_group_name").(string), d.Get("namespace_name").(string), d.Get("name").(string)) if d.HasChange("partition_count") { + + o, n := d.GetChange("partition_count") + if o.(int) > n.(int) { + return fmt.Errorf("`partition_count` cannot be decreased") + } + client := meta.(*clients.Client).Eventhub.NamespacesClient namespaceId := namespaces.NewNamespaceID(subscriptionId, id.ResourceGroupName, id.NamespaceName) resp, err := client.Get(ctx, namespaceId) diff --git a/website/docs/r/eventhub.html.markdown b/website/docs/r/eventhub.html.markdown index d555e46ebc1c..58571f2496ff 100644 --- a/website/docs/r/eventhub.html.markdown +++ b/website/docs/r/eventhub.html.markdown @@ -49,9 +49,9 @@ The following arguments are supported: * `resource_group_name` - (Required) The name of the resource group in which the EventHub's parent Namespace exists. Changing this forces a new resource to be created. -* `partition_count` - (Required) Specifies the current number of shards on the Event Hub. Changing this will force-recreate the resource. +* `partition_count` - (Required) Specifies the current number of shards on the Event Hub. -~> **Note:** `partition_count` cannot be changed unless Eventhub Namespace SKU is `Premium`. +~> **Note:** `partition_count` cannot be changed unless Eventhub Namespace SKU is `Premium` and cannot be decreased. ~> **Note:** When using a dedicated Event Hubs cluster, maximum value of `partition_count` is 1024. When using a shared parent EventHub Namespace, maximum value is 32. From 5961d3da3f4a9a1dcd37340800e3b7b36b1fbf9e Mon Sep 17 00:00:00 2001 From: catriona-m <86247157+catriona-m@users.noreply.github.com> Date: Wed, 11 Oct 2023 13:54:50 +0100 Subject: [PATCH 327/336] Update CHANGELOG.md #23499 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57a6667989f8..d76c7e22a0e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,10 @@ ENHANCEMENTS: * `azurerm_palo_alto_local_rulestack` - correctly normalize the `location` property [GH-23483] * `azurerm_static_site` - add support for `app_settings` [GH-23421] +BUG FIXES: + +* `azurerm_eventhub` - remove ForceNew and check `partition_count` is not decreased [GH-23499] + ## 3.75.0 (September 28, 2023) FEATURES: From 39100dc5968ed02930b900a62d059b47f3a1be20 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 11 Oct 2023 15:46:27 +0200 Subject: [PATCH 328/336] dependencies: updating to Go 1.21.3 --- .github/workflows/link-milestone.yaml | 2 +- .go-version | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/link-milestone.yaml b/.github/workflows/link-milestone.yaml index 5525df084341..34546ef47962 100644 --- a/.github/workflows/link-milestone.yaml +++ b/.github/workflows/link-milestone.yaml @@ -18,7 +18,7 @@ jobs: - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: # we cannot use go-version-file here because no repositories are checked out so there is no file to reference - go-version: '1.20.5' + go-version: '1.21.3' - run: | go install github.com/stephybun/link-milestone@latest link-milestone diff --git a/.go-version b/.go-version index ae45fe86ffb2..49340f5ac7b4 100644 --- a/.go-version +++ b/.go-version @@ -1 +1 @@ -1.20.5 \ No newline at end of file +1.21.3 \ No newline at end of file From b1c60be95b23d2fb841790c68fff3fa48488bfb3 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 11 Oct 2023 15:46:53 +0200 Subject: [PATCH 329/336] go mod tidy --- go.mod | 2 +- go.sum | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index a8a1abc89d86..91754af4ae7d 100644 --- a/go.mod +++ b/go.mod @@ -86,4 +86,4 @@ require ( software.sslmate.com/src/go-pkcs12 v0.2.1 // indirect ) -go 1.20 +go 1.21 diff --git a/go.sum b/go.sum index 76fae18e20e3..524fc13a8c01 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,5 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/Azure/azure-sdk-for-go v45.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v56.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v66.0.0+incompatible h1:bmmC38SlE8/E81nNADlgmVGurPWMHDX2YNXVQMrBpEE= @@ -35,9 +36,11 @@ github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZ github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg= github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= +github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= @@ -51,6 +54,7 @@ github.com/bsm/go-vlq v0.0.0-20150828105119-ec6e8d4f5f4e/go.mod h1:N+BjUcTjSxc2m github.com/btubbs/datetime v0.1.1 h1:KuV+F9tyq/hEnezmKZNGk8dzqMVsId6EpFVrQCfA3To= github.com/btubbs/datetime v0.1.1/go.mod h1:n2BZ/2ltnRzNiz27aE3wUb2onNttQdC+WFxAoks5jJM= github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= +github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= @@ -63,6 +67,7 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= +github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= @@ -70,8 +75,11 @@ github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoD github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= +github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= github.com/go-git/go-billy/v5 v5.4.1 h1:Uwp5tDRkPr+l/TnbHOQzp+tmJfLceOlbVucgpTz8ix4= +github.com/go-git/go-billy/v5 v5.4.1/go.mod h1:vjbugF6Fz7JIflbVpl1hJsGjSHNltrSw45YK/ukIvQg= github.com/go-git/go-git/v5 v5.8.1 h1:Zo79E4p7TRk0xoRgMq0RShiTHGKcKI4+DI6BfJc/Q+A= +github.com/go-git/go-git/v5 v5.8.1/go.mod h1:FHFuoD6yGz5OSKEBK+aWN9Oah0q54Jxl0abmj6GnqAo= github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68= github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= @@ -80,6 +88,7 @@ github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzw github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= @@ -154,9 +163,12 @@ github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= +github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= +github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -164,6 +176,7 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/magodo/terraform-provider-azurerm-example-gen v0.0.0-20220407025246-3a3ee0ab24a8 h1:HHSqLmPZaa8U66U7N2Gtx3gYptSHrUB/rB5t+6fZTkQ= github.com/magodo/terraform-provider-azurerm-example-gen v0.0.0-20220407025246-3a3ee0ab24a8/go.mod h1:iMzpAzVr2v/NUVie/apAYtZlFZYFndPcp6/E0VLxgAM= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= @@ -194,6 +207,7 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= +github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rickb777/date v1.12.5-0.20200422084442-6300e543c4d9 h1:czJCcoUR3FMpHnRQow2E84H/0CPrX1fMAGn9HugzyI4= @@ -205,6 +219,7 @@ github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAm github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/skeema/knownhosts v1.2.0 h1:h9r9cf0+u7wSE+M183ZtMGgOJKiL96brpaz5ekfJCpM= +github.com/skeema/knownhosts v1.2.0/go.mod h1:g4fPeYpque7P0xefxtGzV81ihjC8sX2IqpAoNkjxbMo= github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -230,6 +245,7 @@ github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= +github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= @@ -277,6 +293,7 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -305,6 +322,7 @@ golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -345,6 +363,7 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From 9f1ab981ce3593a33b4632204e961d73a46e2c52 Mon Sep 17 00:00:00 2001 From: Tom Harvey Date: Wed, 11 Oct 2023 18:14:25 +0200 Subject: [PATCH 330/336] updating to include #23514 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d76c7e22a0e8..31a6f9c3c7c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ FEATURES: ENHANCEMENTS: +* provider: updating to build using Go `1.21.3` [GH-23514] * `azurerm_cosmosdb_postgresql_cluster` - add support for `sql_version` of `16` and `citus_version` of `12.1` [GH-23476] * `azurerm_palo_alto_local_rulestack` - correctly normalize the `location` property [GH-23483] * `azurerm_static_site` - add support for `app_settings` [GH-23421] From e9eb2b50d4377be853609fb003e591b621bac65c Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Thu, 28 Sep 2023 13:49:02 +0800 Subject: [PATCH 331/336] New Resource: `azurerm_application_load_balancer_frontend` Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --- .../servicenetworking/registration.go | 1 + ...ication_load_balancer_frontend_resource.go | 219 ++++++++++++++++++ ...on_load_balancer_frontend_resource_test.go | 169 ++++++++++++++ ...ing_application_load_balancer_resource.go} | 36 ++- ...pplication_load_balancer_resource_test.go} | 0 ...ng_application_load_balancer.html.markdown | 62 +++++ ...ation_load_balancer_frontend.html.markdown | 66 ++++++ 7 files changed, 551 insertions(+), 2 deletions(-) create mode 100644 internal/services/servicenetworking/service_networking_application_load_balancer_frontend_resource.go create mode 100644 internal/services/servicenetworking/service_networking_application_load_balancer_frontend_resource_test.go rename internal/services/servicenetworking/{application_load_balancer_resource.go => service_networking_application_load_balancer_resource.go} (83%) rename internal/services/servicenetworking/{application_load_balancer_resource_test.go => service_networking_application_load_balancer_resource_test.go} (100%) create mode 100644 website/docs/r/service_networking_application_load_balancer.html.markdown create mode 100644 website/docs/r/service_networking_application_load_balancer_frontend.html.markdown diff --git a/internal/services/servicenetworking/registration.go b/internal/services/servicenetworking/registration.go index 4af6218b5f07..52f9f267fee9 100644 --- a/internal/services/servicenetworking/registration.go +++ b/internal/services/servicenetworking/registration.go @@ -19,6 +19,7 @@ func (r Registration) DataSources() []sdk.DataSource { func (r Registration) Resources() []sdk.Resource { return []sdk.Resource{ ApplicationLoadBalancerResource{}, + FrontendsResource{}, } } diff --git a/internal/services/servicenetworking/service_networking_application_load_balancer_frontend_resource.go b/internal/services/servicenetworking/service_networking_application_load_balancer_frontend_resource.go new file mode 100644 index 000000000000..664b4ab08a78 --- /dev/null +++ b/internal/services/servicenetworking/service_networking_application_load_balancer_frontend_resource.go @@ -0,0 +1,219 @@ +package servicenetworking + +import ( + "context" + "fmt" + "time" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" + "github.com/hashicorp/go-azure-helpers/resourcemanager/location" + "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" + "github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" +) + +type FrontendsResource struct{} + +type FrontendsModel struct { + Name string `tfschema:"name"` + ApplicationLoadBalancerId string `tfschema:"application_load_balancer_id"` + Location string `tfschema:"location"` + Fqdn string `tfschema:"fully_qualified_domain_name"` + Tags map[string]interface{} `tfschema:"tags"` +} + +var _ sdk.Resource = FrontendsResource{} + +func (f FrontendsResource) Arguments() map[string]*schema.Schema { + return map[string]*schema.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.StringIsNotEmpty, + }, + + "application_load_balancer_id": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: frontendsinterface.ValidateTrafficControllerID, + }, + + "location": commonschema.Location(), + + "tags": commonschema.Tags(), + } +} + +func (f FrontendsResource) Attributes() map[string]*schema.Schema { + return map[string]*schema.Schema{ + "fully_qualified_domain_name": { + Type: pluginsdk.TypeString, + Computed: true, + }, + } +} + +func (f FrontendsResource) ModelObject() interface{} { + return &FrontendsModel{} +} + +func (f FrontendsResource) ResourceType() string { + return "azurerm_application_load_balancer_frontend" +} + +func (f FrontendsResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return frontendsinterface.ValidateFrontendID +} + +func (f FrontendsResource) Create() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.ServiceNetworking.FrontendsInterface + + var config FrontendsModel + if err := metadata.Decode(&config); err != nil { + return fmt.Errorf("decoding %v", err) + } + + trafficControllerId, err := frontendsinterface.ParseTrafficControllerID(config.ApplicationLoadBalancerId) + if err != nil { + return err + } + + id := frontendsinterface.NewFrontendID(trafficControllerId.SubscriptionId, trafficControllerId.ResourceGroupName, trafficControllerId.TrafficControllerName, config.Name) + + resp, err := client.Get(ctx, id) + if err != nil { + if !response.WasNotFound(resp.HttpResponse) { + return fmt.Errorf("checking for presence of existing %s: %+v", id, err) + } + } + + if !response.WasNotFound(resp.HttpResponse) { + return tf.ImportAsExistsError(f.ResourceType(), id.ID()) + } + + frontend := frontendsinterface.Frontend{ + Location: location.Normalize(config.Location), + Properties: &frontendsinterface.FrontendProperties{}, + Tags: tags.Expand(config.Tags), + } + + if err := client.CreateOrUpdateThenPoll(ctx, id, frontend); err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + + metadata.SetID(id) + return nil + }, + } +} + +func (f FrontendsResource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 5 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.ServiceNetworking.FrontendsInterface + + id, err := frontendsinterface.ParseFrontendID(metadata.ResourceData.Id()) + if err != nil { + return fmt.Errorf("parsing %s: %+v", metadata.ResourceData.Id(), err) + } + + resp, err := client.Get(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return metadata.MarkAsGone(id) + } + return fmt.Errorf("retrieving %s: %+v", metadata.ResourceData.Id(), err) + } + + trafficControllerId := frontendsinterface.NewTrafficControllerID(id.SubscriptionId, id.ResourceGroupName, id.TrafficControllerName) + + state := FrontendsModel{ + Name: id.FrontendName, + ApplicationLoadBalancerId: trafficControllerId.ID(), + } + + if model := resp.Model; model != nil { + state.Location = location.NormalizeNilable(pointer.To(model.Location)) + state.Tags = tags.Flatten(model.Tags) + + if prop := model.Properties; prop != nil { + state.Fqdn = pointer.From(prop.Fqdn) + } + } + + return metadata.Encode(&state) + }, + } +} + +func (f FrontendsResource) Update() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.ServiceNetworking.FrontendsInterface + + id, err := frontendsinterface.ParseFrontendID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + var config FrontendsModel + if err := metadata.Decode(&config); err != nil { + return fmt.Errorf("decoding %v", err) + } + + resp, err := client.Get(ctx, *id) + if err != nil { + return fmt.Errorf("retiring %s: %+v", *id, err) + } + + if resp.Model == nil { + return fmt.Errorf("retiring %s: Model was nil", *id) + } + + model := *resp.Model + + if metadata.ResourceData.HasChange("tags") { + model.Tags = tags.Expand(config.Tags) + } + + if err := client.CreateOrUpdateThenPoll(ctx, *id, model); err != nil { + return fmt.Errorf("updating `azurerm_alb_frontend` %s: %+v", *id, err) + } + + return nil + }, + } +} + +func (f FrontendsResource) Delete() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.ServiceNetworking.FrontendsInterface + + id, err := frontendsinterface.ParseFrontendID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + if err = client.DeleteThenPoll(ctx, *id); err != nil { + return fmt.Errorf("deleting %q: %+v", id.ID(), err) + } + + return nil + }, + } +} diff --git a/internal/services/servicenetworking/service_networking_application_load_balancer_frontend_resource_test.go b/internal/services/servicenetworking/service_networking_application_load_balancer_frontend_resource_test.go new file mode 100644 index 000000000000..4fa98be27879 --- /dev/null +++ b/internal/services/servicenetworking/service_networking_application_load_balancer_frontend_resource_test.go @@ -0,0 +1,169 @@ +package servicenetworking_test + +import ( + "context" + "fmt" + "testing" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" +) + +type ApplicationLoadBalancerFrontendResource struct{} + +func (r ApplicationLoadBalancerFrontendResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { + id, err := frontendsinterface.ParseFrontendID(state.ID) + if err != nil { + return nil, fmt.Errorf("while parsing resource ID: %+v", err) + } + + resp, err := clients.ServiceNetworking.FrontendsInterface.Get(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return pointer.To(false), nil + } + return nil, fmt.Errorf("while checking existence for %q: %+v", id.String(), err) + } + return pointer.To(resp.Model != nil), nil +} + +func TestAccApplicationLoadBalancerFrontend_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_application_load_balancer_frontend", "test") + + r := ApplicationLoadBalancerFrontendResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("fully_qualified_domain_name").Exists(), + ), + }, + data.ImportStep(), + }) +} + +func TestAccApplicationLoadBalancerFrontend_complete(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_application_load_balancer_frontend", "test") + + r := ApplicationLoadBalancerFrontendResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.complete(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("fully_qualified_domain_name").Exists(), + ), + }, + data.ImportStep(), + }) +} + +func TestAccApplicationLoadBalancerFrontend_update(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_application_load_balancer_frontend", "test") + + r := ApplicationLoadBalancerFrontendResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("fully_qualified_domain_name").Exists(), + ), + }, + data.ImportStep(), + { + Config: r.complete(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("fully_qualified_domain_name").Exists(), + ), + }, + data.ImportStep(), + }) +} + +func TestAccApplicationLoadBalancerFrontend_requiresImport(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_application_load_balancer_frontend", "test") + + r := ApplicationLoadBalancerFrontendResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.RequiresImportErrorStep(r.requiresImport), + }) +} + +func (r ApplicationLoadBalancerFrontendResource) template(data acceptance.TestData) string { + return fmt.Sprintf(` +resource "azurerm_resource_group" "test" { + name = "acctestrg-alb-%[1]d" + location = "%[2]s" +} + +resource "azurerm_application_load_balancer" "test" { + name = "acctestalb-%[1]d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name +} +`, data.RandomInteger, data.Locations.Primary) +} + +func (r ApplicationLoadBalancerFrontendResource) basic(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features { + } +} + + %s + +resource "azurerm_application_load_balancer_frontend" "test" { + name = "acct-frnt-%d" + application_load_balancer_id = azurerm_application_load_balancer.test.id + location = azurerm_application_load_balancer.test.location +} +`, r.template(data), data.RandomInteger) +} + +func (r ApplicationLoadBalancerFrontendResource) complete(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features { + } +} + + %s + +resource "azurerm_application_load_balancer_frontend" "test" { + name = "acct-frnt-%d" + application_load_balancer_id = azurerm_application_load_balancer.test.id + location = azurerm_application_load_balancer.test.location + tags = { + "tag1" = "value1" + } +} +`, r.template(data), data.RandomInteger) +} + +func (r ApplicationLoadBalancerFrontendResource) requiresImport(data acceptance.TestData) string { + return fmt.Sprintf(` + %s + +resource "azurerm_application_load_balancer_frontend" "import" { + name = azurerm_application_load_balancer_frontend.test.name + application_load_balancer_id = azurerm_application_load_balancer_frontend.test.application_load_balancer_id + location = azurerm_application_load_balancer_frontend.test.location +} + +`, r.basic(data)) +} diff --git a/internal/services/servicenetworking/application_load_balancer_resource.go b/internal/services/servicenetworking/service_networking_application_load_balancer_resource.go similarity index 83% rename from internal/services/servicenetworking/application_load_balancer_resource.go rename to internal/services/servicenetworking/service_networking_application_load_balancer_resource.go index f90aec3770ab..5b1516a869df 100644 --- a/internal/services/servicenetworking/application_load_balancer_resource.go +++ b/internal/services/servicenetworking/service_networking_application_load_balancer_resource.go @@ -3,6 +3,7 @@ package servicenetworking import ( "context" "fmt" + "net/http" "regexp" "time" @@ -186,8 +187,39 @@ func (t ApplicationLoadBalancerResource) Delete() sdk.ResourceFunc { if err != nil { return err } - if err := client.DeleteThenPoll(ctx, *id); err != nil { - return fmt.Errorf("deleting %s: %+v", *id, err) + + // a workaround for that some child resources may still exist for seconds before it fully deleted. + // tracked o https://github.com/Azure/azure-rest-api-specs/issues/26000n + // it will cause the error "Can not delete resource before nested resources are deleted." + deadline, ok := ctx.Deadline() + if !ok { + return fmt.Errorf("could not retrieve context deadline for %s", id.ID()) + } + stateConf := &pluginsdk.StateChangeConf{ + Delay: 5 * time.Minute, + Pending: []string{"409"}, + Target: []string{"200", "202"}, + Refresh: func() (result interface{}, state string, err error) { + resp, err := client.Delete(ctx, *id) + if err != nil { + if resp.HttpResponse.StatusCode == http.StatusConflict { + return nil, "409", nil + } + return nil, "", err + } + return resp, "200", nil + }, + MinTimeout: 15 * time.Second, + Timeout: time.Until(deadline), + } + + if future, err := stateConf.WaitForStateContext(ctx); err != nil { + return fmt.Errorf("waiting for deleting of %s: %+v", id, err) + } else { + poller := future.(trafficcontrollerinterface.DeleteOperationResponse).Poller + if err := poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("deleting %s: %+v", id, err) + } } return nil diff --git a/internal/services/servicenetworking/application_load_balancer_resource_test.go b/internal/services/servicenetworking/service_networking_application_load_balancer_resource_test.go similarity index 100% rename from internal/services/servicenetworking/application_load_balancer_resource_test.go rename to internal/services/servicenetworking/service_networking_application_load_balancer_resource_test.go diff --git a/website/docs/r/service_networking_application_load_balancer.html.markdown b/website/docs/r/service_networking_application_load_balancer.html.markdown new file mode 100644 index 000000000000..eaa4e35e5189 --- /dev/null +++ b/website/docs/r/service_networking_application_load_balancer.html.markdown @@ -0,0 +1,62 @@ +--- +subcategory: "Service Networking" +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_application_load_balancer" +description: |- + Manages an Application Gateway for Containers (ALB). +--- + +# azurerm_application_load_balancer + +Manages an Application Gateway for Containers (ALB). + +## Example Usage + +```hcl +resource "azurerm_application_load_balancer" "example" { + name = "example" + resource_group_name = "example" + location = "West Europe" +} +``` + +## Arguments Reference + +The following arguments are supported: + +* `name` - (Required) The name which should be used for this resource. Changing this forces a new resource to be created. + +* `resource_group_name` - (Required) The name of the Resource Group where the resource should exist. Changing this forces a new resource to be created. + +* `location` - (Required) The Azure Region where the resource should exist. Changing this forces a new resource to be created. Available regions can be found [here](https://learn.microsoft.com/en-us/azure/application-gateway/for-containers/overview#supported-regions) + +**Note:** The available values of `location` are `northeurope` and `north central us`. + +--- + +* `tags` - (Optional) A mapping of tags which should be assigned to the Application Gateway for Containers. + +## Attributes Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the resource. + +* `configuration_endpoint` - The list of configuration endpoints for the resource. + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: + +* `create` - (Defaults to 30 minutes) Used when creating the Application Gateway for Containers resource +* `read` - (Defaults to 5 minutes) Used when retrieving the Application Gateway for Containers resource. +* `update` - (Defaults to 30 minutes) Used when updating the Application Gateway for Containers resource +* `delete` - (Defaults to 30 minutes) Used when deleting the Application Gateway for Containers resource. + +## Import + +Application Gateway for Containers (ALB) can be imported using the `resource id`, e.g. + +```shell +terraform import azurerm_application_load_balancer.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ServiceNetworking/trafficControllers/alb1 +``` diff --git a/website/docs/r/service_networking_application_load_balancer_frontend.html.markdown b/website/docs/r/service_networking_application_load_balancer_frontend.html.markdown new file mode 100644 index 000000000000..696012d636ba --- /dev/null +++ b/website/docs/r/service_networking_application_load_balancer_frontend.html.markdown @@ -0,0 +1,66 @@ +--- +subcategory: "Service Networking" +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_application_load_balancer_frontend" +description: |- + Manages an Application Gateway for Containers Frontend. +--- + +# azurerm_application_load_balancer_frontend + +Manages an Application Gateway for Containers Frontend. + +## Example Usage + +```hcl +resource "azurerm_application_load_balancer" "example" { + name = "example" + resource_group_name = "example" + location = "West Europe" +} + +resource "azurerm_application_load_balancer_frontend" "example" { + name = "example" + location = "West Europe" + application_load_balancer_id = azurerm_application_load_balancer.example.id +} +``` + +## Arguments Reference + +The following arguments are supported: + +* `name` - (Required) The name which should be used for this Application Gateway for Containers Frontend. Changing this forces a new resource to be created. + +* `location` - (Required) The Azure Region where the Application Gateway for Containers Frontend should exist. Changing this forces a new resource to be created. Available regions can be found [here](https://learn.microsoft.com/en-us/azure/application-gateway/for-containers/overview#supported-regions). + +* `application_load_balancer_id` - (Required) The ID of the Application Gateway for Containers. Changing this forces a new resource to be created. + +--- + +* `tags` - (Optional) A mapping of tags which should be assigned to the Application Gateway for Containers Frontend. + +## Attributes Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the Application Gateway for Containers Frontend. + +* `fully_qualified_domain_name` - The Fully Qualified Domain Name of the DNS record associated to an Application Gateway for Containers Frontend. + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: + +* `create` - (Defaults to 30 minutes) Used when creating the Application Gateway for Containers Frontend. +* `read` - (Defaults to 5 minutes) Used when retrieving the Application Gateway for Containers Frontend. +* `update` - (Defaults to 30 minutes) Used when updating the Application Gateway for Containers Frontend. +* `delete` - (Defaults to 30 minutes) Used when deleting the Application Gateway for Containers Frontend. + +## Import + +Application Gateway for Containers Frontend can be imported using the `resource id`, e.g. + +```shell +terraform import azurerm_application_load_balancer_frontend.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ServiceNetworking/trafficControllers/alb1/frontends/frontend1 +``` From 1f466064d362b7dd6de54b81678e54e3ec43769d Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Thu, 12 Oct 2023 10:29:36 +0800 Subject: [PATCH 332/336] update per comments Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --- ... => application_load_balancer_frontend.go} | 37 +++++------ ...pplication_load_balancer_frontend_test.go} | 3 - ... => application_load_balancer_resource.go} | 0 ...pplication_load_balancer_resource_test.go} | 0 ...tion_load_balancer_frontend.html.markdown} | 0 ...ng_application_load_balancer.html.markdown | 62 ------------------- 6 files changed, 19 insertions(+), 83 deletions(-) rename internal/services/servicenetworking/{service_networking_application_load_balancer_frontend_resource.go => application_load_balancer_frontend.go} (87%) rename internal/services/servicenetworking/{service_networking_application_load_balancer_frontend_resource_test.go => application_load_balancer_frontend_test.go} (95%) rename internal/services/servicenetworking/{service_networking_application_load_balancer_resource.go => application_load_balancer_resource.go} (100%) rename internal/services/servicenetworking/{service_networking_application_load_balancer_resource_test.go => application_load_balancer_resource_test.go} (100%) rename website/docs/r/{service_networking_application_load_balancer_frontend.html.markdown => application_load_balancer_frontend.html.markdown} (100%) delete mode 100644 website/docs/r/service_networking_application_load_balancer.html.markdown diff --git a/internal/services/servicenetworking/service_networking_application_load_balancer_frontend_resource.go b/internal/services/servicenetworking/application_load_balancer_frontend.go similarity index 87% rename from internal/services/servicenetworking/service_networking_application_load_balancer_frontend_resource.go rename to internal/services/servicenetworking/application_load_balancer_frontend.go index 664b4ab08a78..ce7377add3c4 100644 --- a/internal/services/servicenetworking/service_networking_application_load_balancer_frontend_resource.go +++ b/internal/services/servicenetworking/application_load_balancer_frontend.go @@ -8,9 +8,9 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema" - "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-helpers/resourcemanager/tags" "github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/frontendsinterface" + "github.com/hashicorp/go-azure-sdk/resource-manager/servicenetworking/2023-05-01-preview/trafficcontrollerinterface" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-azurerm/helpers/tf" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" @@ -23,7 +23,6 @@ type FrontendsResource struct{} type FrontendsModel struct { Name string `tfschema:"name"` ApplicationLoadBalancerId string `tfschema:"application_load_balancer_id"` - Location string `tfschema:"location"` Fqdn string `tfschema:"fully_qualified_domain_name"` Tags map[string]interface{} `tfschema:"tags"` } @@ -46,8 +45,6 @@ func (f FrontendsResource) Arguments() map[string]*schema.Schema { ValidateFunc: frontendsinterface.ValidateTrafficControllerID, }, - "location": commonschema.Location(), - "tags": commonschema.Tags(), } } @@ -77,6 +74,7 @@ func (f FrontendsResource) Create() sdk.ResourceFunc { return sdk.ResourceFunc{ Timeout: 30 * time.Minute, Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + trafficControllerClient := metadata.Client.ServiceNetworking.TrafficControllerInterface client := metadata.Client.ServiceNetworking.FrontendsInterface var config FrontendsModel @@ -89,6 +87,19 @@ func (f FrontendsResource) Create() sdk.ResourceFunc { return err } + controllerId := trafficcontrollerinterface.NewTrafficControllerID(trafficControllerId.SubscriptionId, trafficControllerId.ResourceGroupName, trafficControllerId.TrafficControllerName) + + controller, err := trafficControllerClient.Get(ctx, controllerId) + if err != nil { + return fmt.Errorf("retrieving %s: %+v", controllerId, err) + } + + if controller.Model == nil { + return fmt.Errorf("retrieving %s: Model was nil", controllerId) + } + + loc := controller.Model.Location + id := frontendsinterface.NewFrontendID(trafficControllerId.SubscriptionId, trafficControllerId.ResourceGroupName, trafficControllerId.TrafficControllerName, config.Name) resp, err := client.Get(ctx, id) @@ -103,7 +114,7 @@ func (f FrontendsResource) Create() sdk.ResourceFunc { } frontend := frontendsinterface.Frontend{ - Location: location.Normalize(config.Location), + Location: loc, Properties: &frontendsinterface.FrontendProperties{}, Tags: tags.Expand(config.Tags), } @@ -145,7 +156,6 @@ func (f FrontendsResource) Read() sdk.ResourceFunc { } if model := resp.Model; model != nil { - state.Location = location.NormalizeNilable(pointer.To(model.Location)) state.Tags = tags.Flatten(model.Tags) if prop := model.Properties; prop != nil { @@ -174,22 +184,13 @@ func (f FrontendsResource) Update() sdk.ResourceFunc { return fmt.Errorf("decoding %v", err) } - resp, err := client.Get(ctx, *id) - if err != nil { - return fmt.Errorf("retiring %s: %+v", *id, err) - } - - if resp.Model == nil { - return fmt.Errorf("retiring %s: Model was nil", *id) - } - - model := *resp.Model + update := frontendsinterface.FrontendUpdate{} if metadata.ResourceData.HasChange("tags") { - model.Tags = tags.Expand(config.Tags) + update.Tags = tags.Expand(config.Tags) } - if err := client.CreateOrUpdateThenPoll(ctx, *id, model); err != nil { + if _, err := client.Update(ctx, *id, update); err != nil { return fmt.Errorf("updating `azurerm_alb_frontend` %s: %+v", *id, err) } diff --git a/internal/services/servicenetworking/service_networking_application_load_balancer_frontend_resource_test.go b/internal/services/servicenetworking/application_load_balancer_frontend_test.go similarity index 95% rename from internal/services/servicenetworking/service_networking_application_load_balancer_frontend_resource_test.go rename to internal/services/servicenetworking/application_load_balancer_frontend_test.go index 4fa98be27879..21520100dc2e 100644 --- a/internal/services/servicenetworking/service_networking_application_load_balancer_frontend_resource_test.go +++ b/internal/services/servicenetworking/application_load_balancer_frontend_test.go @@ -130,7 +130,6 @@ provider "azurerm" { resource "azurerm_application_load_balancer_frontend" "test" { name = "acct-frnt-%d" application_load_balancer_id = azurerm_application_load_balancer.test.id - location = azurerm_application_load_balancer.test.location } `, r.template(data), data.RandomInteger) } @@ -147,7 +146,6 @@ provider "azurerm" { resource "azurerm_application_load_balancer_frontend" "test" { name = "acct-frnt-%d" application_load_balancer_id = azurerm_application_load_balancer.test.id - location = azurerm_application_load_balancer.test.location tags = { "tag1" = "value1" } @@ -162,7 +160,6 @@ func (r ApplicationLoadBalancerFrontendResource) requiresImport(data acceptance. resource "azurerm_application_load_balancer_frontend" "import" { name = azurerm_application_load_balancer_frontend.test.name application_load_balancer_id = azurerm_application_load_balancer_frontend.test.application_load_balancer_id - location = azurerm_application_load_balancer_frontend.test.location } `, r.basic(data)) diff --git a/internal/services/servicenetworking/service_networking_application_load_balancer_resource.go b/internal/services/servicenetworking/application_load_balancer_resource.go similarity index 100% rename from internal/services/servicenetworking/service_networking_application_load_balancer_resource.go rename to internal/services/servicenetworking/application_load_balancer_resource.go diff --git a/internal/services/servicenetworking/service_networking_application_load_balancer_resource_test.go b/internal/services/servicenetworking/application_load_balancer_resource_test.go similarity index 100% rename from internal/services/servicenetworking/service_networking_application_load_balancer_resource_test.go rename to internal/services/servicenetworking/application_load_balancer_resource_test.go diff --git a/website/docs/r/service_networking_application_load_balancer_frontend.html.markdown b/website/docs/r/application_load_balancer_frontend.html.markdown similarity index 100% rename from website/docs/r/service_networking_application_load_balancer_frontend.html.markdown rename to website/docs/r/application_load_balancer_frontend.html.markdown diff --git a/website/docs/r/service_networking_application_load_balancer.html.markdown b/website/docs/r/service_networking_application_load_balancer.html.markdown deleted file mode 100644 index eaa4e35e5189..000000000000 --- a/website/docs/r/service_networking_application_load_balancer.html.markdown +++ /dev/null @@ -1,62 +0,0 @@ ---- -subcategory: "Service Networking" -layout: "azurerm" -page_title: "Azure Resource Manager: azurerm_application_load_balancer" -description: |- - Manages an Application Gateway for Containers (ALB). ---- - -# azurerm_application_load_balancer - -Manages an Application Gateway for Containers (ALB). - -## Example Usage - -```hcl -resource "azurerm_application_load_balancer" "example" { - name = "example" - resource_group_name = "example" - location = "West Europe" -} -``` - -## Arguments Reference - -The following arguments are supported: - -* `name` - (Required) The name which should be used for this resource. Changing this forces a new resource to be created. - -* `resource_group_name` - (Required) The name of the Resource Group where the resource should exist. Changing this forces a new resource to be created. - -* `location` - (Required) The Azure Region where the resource should exist. Changing this forces a new resource to be created. Available regions can be found [here](https://learn.microsoft.com/en-us/azure/application-gateway/for-containers/overview#supported-regions) - -**Note:** The available values of `location` are `northeurope` and `north central us`. - ---- - -* `tags` - (Optional) A mapping of tags which should be assigned to the Application Gateway for Containers. - -## Attributes Reference - -In addition to the Arguments listed above - the following Attributes are exported: - -* `id` - The ID of the resource. - -* `configuration_endpoint` - The list of configuration endpoints for the resource. - -## Timeouts - -The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: - -* `create` - (Defaults to 30 minutes) Used when creating the Application Gateway for Containers resource -* `read` - (Defaults to 5 minutes) Used when retrieving the Application Gateway for Containers resource. -* `update` - (Defaults to 30 minutes) Used when updating the Application Gateway for Containers resource -* `delete` - (Defaults to 30 minutes) Used when deleting the Application Gateway for Containers resource. - -## Import - -Application Gateway for Containers (ALB) can be imported using the `resource id`, e.g. - -```shell -terraform import azurerm_application_load_balancer.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.ServiceNetworking/trafficControllers/alb1 -``` From f95d93df1dc5f8d585ceda0caba4fda156544f6f Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Thu, 12 Oct 2023 10:32:47 +0800 Subject: [PATCH 333/336] file renaming Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --- ...frontend.go => application_load_balancer_frontend_resource.go} | 0 ...est.go => application_load_balancer_frontend_resource_test.go} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename internal/services/servicenetworking/{application_load_balancer_frontend.go => application_load_balancer_frontend_resource.go} (100%) rename internal/services/servicenetworking/{application_load_balancer_frontend_test.go => application_load_balancer_frontend_resource_test.go} (100%) diff --git a/internal/services/servicenetworking/application_load_balancer_frontend.go b/internal/services/servicenetworking/application_load_balancer_frontend_resource.go similarity index 100% rename from internal/services/servicenetworking/application_load_balancer_frontend.go rename to internal/services/servicenetworking/application_load_balancer_frontend_resource.go diff --git a/internal/services/servicenetworking/application_load_balancer_frontend_test.go b/internal/services/servicenetworking/application_load_balancer_frontend_resource_test.go similarity index 100% rename from internal/services/servicenetworking/application_load_balancer_frontend_test.go rename to internal/services/servicenetworking/application_load_balancer_frontend_resource_test.go From f8353728838e1d5737cbb6d3dd469d07f3f2a657 Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Fri, 13 Oct 2023 10:27:42 +0800 Subject: [PATCH 334/336] re-trigger ci Signed-off-by: ziyeqf <51212351+ziyeqf@users.noreply.github.com> --- .../application_load_balancer_frontend_resource_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/services/servicenetworking/application_load_balancer_frontend_resource_test.go b/internal/services/servicenetworking/application_load_balancer_frontend_resource_test.go index 21520100dc2e..82a54f87a4e1 100644 --- a/internal/services/servicenetworking/application_load_balancer_frontend_resource_test.go +++ b/internal/services/servicenetworking/application_load_balancer_frontend_resource_test.go @@ -161,6 +161,5 @@ resource "azurerm_application_load_balancer_frontend" "import" { name = azurerm_application_load_balancer_frontend.test.name application_load_balancer_id = azurerm_application_load_balancer_frontend.test.application_load_balancer_id } - `, r.basic(data)) } From 14f5db13d46c6d8c4fa4233ae860b1faec456be6 Mon Sep 17 00:00:00 2001 From: kt Date: Thu, 19 Oct 2023 08:32:55 -0700 Subject: [PATCH 335/336] Update internal/services/servicenetworking/application_load_balancer_frontend_resource.go Co-authored-by: catriona-m <86247157+catriona-m@users.noreply.github.com> --- .../application_load_balancer_frontend_resource.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/services/servicenetworking/application_load_balancer_frontend_resource.go b/internal/services/servicenetworking/application_load_balancer_frontend_resource.go index ce7377add3c4..eb22fefdcdbe 100644 --- a/internal/services/servicenetworking/application_load_balancer_frontend_resource.go +++ b/internal/services/servicenetworking/application_load_balancer_frontend_resource.go @@ -191,7 +191,7 @@ func (f FrontendsResource) Update() sdk.ResourceFunc { } if _, err := client.Update(ctx, *id, update); err != nil { - return fmt.Errorf("updating `azurerm_alb_frontend` %s: %+v", *id, err) + return fmt.Errorf("updating `azurerm_application_load_balancer_frontend` %s: %+v", *id, err) } return nil From a04bb37ca60c523a7feaeb29466c7a1896f14f68 Mon Sep 17 00:00:00 2001 From: kt Date: Thu, 19 Oct 2023 08:33:07 -0700 Subject: [PATCH 336/336] Update internal/services/servicenetworking/application_load_balancer_frontend_resource.go Co-authored-by: catriona-m <86247157+catriona-m@users.noreply.github.com> --- .../application_load_balancer_frontend_resource.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/services/servicenetworking/application_load_balancer_frontend_resource.go b/internal/services/servicenetworking/application_load_balancer_frontend_resource.go index eb22fefdcdbe..74911b3710d7 100644 --- a/internal/services/servicenetworking/application_load_balancer_frontend_resource.go +++ b/internal/services/servicenetworking/application_load_balancer_frontend_resource.go @@ -137,7 +137,7 @@ func (f FrontendsResource) Read() sdk.ResourceFunc { id, err := frontendsinterface.ParseFrontendID(metadata.ResourceData.Id()) if err != nil { - return fmt.Errorf("parsing %s: %+v", metadata.ResourceData.Id(), err) + return err } resp, err := client.Get(ctx, *id)